Files
WarehouseClient/public/www.wxb3d.com/saas/sdk/v2.0/VgoMap.umd.js

13 lines
1.9 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).VgoMap=e()}(this,function(){"use strict";var __defProp=Object.defineProperty,__defNormalProp=(t,e,n)=>e in t?__defProp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,__publicField=(t,e,n)=>__defNormalProp(t,"symbol"!=typeof e?e+"":e,n),_a2,_b2,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l,_m,_n,_o,_p,_q2,_r,_s,_t2,_u,_v,_w,_x2,_y2,_z2,_A,_B,_C,_D,_E,_F,_G,_H,_I,_J,_K,_L,_M,_N,_O,_P,_Q,_R,_S,_T,_U,_V,_W,_X,_Y,_Z,__,_$,_aa,_ba,_ca,_da,_ea,_fa,_ga,_ha,_ia,_ja,_ka,_la,_ma,_na,_oa,_pa,_qa,_ra,_sa,_ta,_ua,_va,_wa,_xa,_ya,_za,_Aa,_Ba,_Ca,_Da,_Ea,_Fa,_Ga,_Ha,_Ia,_Ja,_Ka,_La,_Ma,_Na,_Oa,_Pa,_Qa,_Ra,_Sa,_Ta,_Ua,_Va,_Wa,_Xa,_Ya,_Za,__a,_$a,_ab,_bb,_cb,_db,_eb,_fb,_gb,_hb,_ib,_jb,_kb,_lb,_mb,_nb,_ob,_pb,_qb,_rb,_sb,_tb,_ub,_vb,_wb,_xb,_yb,_zb,_Ab,_Bb,_Cb,_Db,_Eb,_Fb,_Gb,_Hb,_Ib,_Jb,_Kb,_Lb,_Mb,_Nb,_Ob,_Pb,_Qb,_Rb,_Sb,_Tb,_Ub,_Vb,_Wb,_Xb,_Yb,_Zb,__b,_$b,_ac,_bc,_cc,_dc,_ec,_fc,_gc,_hc,_ic,_jc,_kc,_lc,_mc,_nc,_oc,_pc,_qc,_rc,_sc,_tc,_uc,_vc,_wc,_xc,_yc,_zc,_Ac,_Bc,_Cc,_Dc,_Ec,_Fc,_Gc,_Hc,_Ic,_Jc,_Kc,_Lc,_Mc,_Nc,_Oc,_Pc,_Qc,_Rc,_Sc,_Tc,_Uc,_Vc,_Wc,_Xc,_Yc,_Zc,__c,_$c,_ad,_bd,_cd,_dd,_ed,_fd,_gd,_hd,_id2,_jd,_kd,_ld,_md,_nd,_od,_pd,_qd,_rd,_sd,_td,_ud,_vd,_wd,_xd,_yd,_zd,_Ad,_Bd,_Cd,_Dd,_Ed,_Fd,_Gd,_Hd,_Id,_Jd,_Kd,_Ld,_Md,_Nd,_Od,_Pd,_Qd,_Rd,_Sd,_Td,_Ud,_Vd,_Wd,_Xd,_Yd,_Zd,__d,_$d,_ae,_be,_ce,_de,_ee,_fe,_ge,_he,_ie,_je,_ke,_le,_me,_ne,_oe,_pe,_qe,_re,_se,_te,_ue,_ve,_we,_xe,_ye,_ze,_Ae,_Be,_Ce,_De,_Ee,_Fe,_Ge,_He,_Ie,_Je,_Ke,_Le,_Me,_Ne,_Oe,_Pe,_Qe,_Re,_Se,_Te,_Ue,_Ve,_We,_Xe,_Ye,_Ze,__e,_$e,_af,_bf,_cf,_df,_ef,_ff,_gf,_hf,_if,_jf,_kf,_lf,_mf,_nf,_of,_pf,_qf,_rf,_sf,_tf,_uf,_vf,_wf,_xf,_yf,_zf,_Af,_Bf,_Cf,_Df,_Ef,_Ff,_Gf,_Hf,_If,_Jf,_Kf,_Lf,_Mf,_Nf,_Of,_Pf,_Qf,_Rf,_Sf,_Tf,_Uf,_Vf,_Wf,_Xf,_Yf,_Zf,__f,_$f,_ag,_bg,_cg,_dg,_eg,_fg,_gg,_hg,_ig,_jg,_kg,_lg,_mg,_ng,_og,_pg,_qg,_rg,_sg,_tg,_ug,_vg,_wg,_xg,_yg,_zg,_Ag,_Bg,_Cg,_Dg,_Eg,_Fg,_Gg,_Hg,_Ig,_Jg,_Kg,_Lg,_Mg,_Ng,_Og,_Pg,_Qg,_Rg,_Sg,_Tg,_Ug,_Vg,_Wg,_Xg,_Yg,_Zg,__g,_$g,_ah,_bh,_ch,_dh,_eh,_fh,_gh,_hh,_ih,_jh,_kh,_lh,_mh,_nh,_oh,_ph,_qh,_rh,_sh,_th,_uh,_vh,_wh,_xh,_yh,_zh,_Ah,_Bh,_Ch;const REVISION="166",MOUSE={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},TOUCH={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},CullFaceNone=0,CullFaceBack=1,CullFaceFront=2,CullFaceFrontBack=3,BasicShadowMap=0,PCFShadowMap=1,PCFSoftShadowMap=2,VSMShadowMap=3,FrontSide=0,BackSide=1,DoubleSide=2,NoBlending=0,NormalBlending=1,AdditiveBlending=2,SubtractiveBlending=3,MultiplyBlending=4,CustomBlending=5,AddEquation=100,SubtractEquation=101,ReverseSubtractEquation=102,MinEquation=103,MaxEquation=104,ZeroFactor=200,OneFactor=201,SrcColorFactor=202,OneMinusSrcColorFactor=203,SrcAlphaFactor=204,OneMinusSrcAlphaFactor=205,DstAlphaFactor=206,OneMinusDstAlphaFactor=207,DstColorFactor=208,OneMinusDstColorFactor=209,SrcAlphaSaturateFactor=210,ConstantColorFactor=211,OneMinusConstantColorFactor=212,ConstantAlphaFactor=213,OneMinusConstantAlphaFactor=214,NeverDepth=0,AlwaysDepth=1,LessDepth=2,LessEqualDepth=3,EqualDepth=4,GreaterEqualDepth=5,GreaterDepth=6,NotEqualDepth=7,MultiplyOperation=0,MixOperation=1,AddOperation=2,NoToneMapping=0,LinearToneMapping=1,ReinhardToneMapping=2,CineonToneMapping=3,ACESFilmicToneMapping=4,CustomToneMapping=5,AgXToneMapping=6,NeutralToneMapping=7,AttachedBindMode="attached",DetachedBindMode="detached",UVMapping=300,CubeReflectionMapping=301,CubeRefractionMapping=302,EquirectangularReflectionMapping=303,EquirectangularRefractionMapping=304,CubeUVReflectionMapping=306,RepeatWrapping=1e3,ClampToEdgeWrapping=1001,MirroredRepeatWrapping=1002,NearestFilter=1003,NearestMipmapNearestFilter=1004,NearestMipMapNearestFilter=1004,NearestMipmapLinearFilter=1005,NearestMipMapLinearFilter=1005,LinearFilter=1006,LinearMipmapNearestFilter=1007,LinearMipMapNearestFilter=1007,LinearMipmapLinearFilter=1008,LinearMipMapLinearFilter=1008,UnsignedByteType=1009,ByteType=1010,ShortType=1011,UnsignedShortType=1012,IntType=1013,UnsignedIntType=1014,FloatType=1015,HalfFloatType=1016,UnsignedShort4444Type=1017,UnsignedShort5551Type=1018,UnsignedInt248Type=1020,UnsignedInt5999Type=35902,AlphaFormat=1021,RGBFormat=1022,RGBAFormat=1023,LuminanceFormat=1024,LuminanceAlphaFormat=1025,DepthFormat=1026,DepthStencilFormat=1027,RedFormat=1028,RedIntegerFormat=1029,RGFormat=1030,RGIntegerFormat=1031,RGBIntegerFormat=1032,RGBAIntegerFormat=1033,RGB_S3TC_DXT1_Format=33776,RGBA_S3TC_DXT1_Format=33777,RGBA_S3TC_DXT3_Format=33778,RGBA_S3TC_DXT5_Format=33779,RGB_PVRTC_4BPPV1_Format=35840,RGB_PVRTC_2BPPV1_Format=35841,RGBA_PVRTC_4BPPV1_Format=35842,RGBA_PVRTC_2BPPV1_Format=35843,RGB_ETC1_Format=36196,RGB_ETC2_Format=37492,RGBA_ETC2_EAC_Format=37496,RGBA_ASTC_4x4_Format=37808,RGBA_ASTC_5x4_Format=37809,RGBA_ASTC_5x5_Format=37810,RGBA_ASTC_6x5_Format=37811,RGBA_ASTC_6x6_Format=37812,RGBA_ASTC_8x5_Format=37813,RGBA_ASTC_8x6_Format=37814,RGBA_ASTC_8x8_Format=37815,RGBA_ASTC_10x5_Format=37816,RGBA_ASTC_10x6_Format=37817,RGBA_ASTC_10x8_Format=37818,RGBA_ASTC_10x10_Format=37819,RGBA_ASTC_12x10_Format=37820,RGBA_ASTC_12x12_Format=37821,RGBA_BPTC_Format=36492,RGB_BPTC_SIGNED_Format=36494,RGB_BPTC_UNSIGNED_Format=36495,RED_RGTC1_Format=36283,SIGNED_RED_RGTC1_Format=36284,RED_GREEN_RGTC2_Format=36285,SIGNED_RED_GREEN_RGTC2_Format=36286,LoopOnce=2200,LoopRepeat=2201,LoopPingPong=2202,InterpolateDiscrete=2300,InterpolateLinear=2301,InterpolateSmooth=2302,ZeroCurvatureEnding=2400,ZeroSlopeEnding=2401,WrapAroundEnding=2402,NormalAnimationBlendMode=2500,AdditiveAnimationBlendMode=2501,TrianglesDrawMode=0,TriangleStripDrawMode=1,TriangleFanDrawMode=2,BasicDepthPacking=3200,RGBADepthPacking=3201,TangentSpaceNormalMap=0,ObjectSpaceNormalMap=1,NoColorSpace="",SRGBColorSpace="srgb",LinearSRGBColorSpace="srgb-linear",DisplayP3ColorSpace="display-p3",LinearDisplayP3ColorSpace="display-p3-linear",LinearTransfer="linear",SRGBTransfer="srgb",Rec709Primaries="rec709",P3Primaries="p3",ZeroStencilOp=0,KeepStencilOp=7680,ReplaceStencilOp=7681,IncrementStencilOp=7682,DecrementStencilOp=7683,IncrementWrapStencilOp=34055,DecrementWrapStencilOp=34056,InvertStencilOp=5386,NeverStencilFunc=512,LessStencilFunc=513,EqualStencilFunc=514,LessEqualStencilFunc=515,GreaterStencilFunc=516,NotEqualStencilFunc=517,GreaterEqualStencilFunc=518,AlwaysStencilFunc=519,NeverCompare=512,LessCompare=513,EqualCompare=514,LessEqualCompare=515,GreaterCompare=516,NotEqualCompare=517,GreaterEqualCompare=518,AlwaysCompare=519,StaticDrawUsage=35044,DynamicDrawUsage=35048,StreamDrawUsage=35040,StaticReadUsage=35045,DynamicReadUsage=35049,StreamReadUsage=35041,StaticCopyUsage=35046,DynamicCopyUsage=35050,StreamCopyUsage=35042,GLSL1="100",GLSL3="300 es",WebGLCoordinateSystem=2e3,WebGPUCoordinateSystem=2001;class EventDispatcher{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(void 0!==n){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);for(let e=0,i=n.length;e<i;e++)n[e].call(this,t);t.target=null}}}const _lut=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"];let _seed=1234567;const DEG2RAD$1=Math.PI/180,RAD2DEG$1=180/Math.PI;function generateUUID(){const t=4294967295*Math.random()|0,e=4294967295*Math.random()|0,n=4294967295*Math.random()|0,i=4294967295*Math.random()|0;return(_lut[255&t]+_lut[t>>8&255]+_lut[t>>16&255]+_lut[t>>24&255]+"-"+_lut[255&e]+_lut[e>>8&255]+"-"+_lut[e>>16&15|64]+_lut[e>>24&255]+"-"+_lut[63&n|128]+_lut[n>>8&255]+"-"+_lut[n>>16&255]+_lut[n>>24&255]+_lut[255&i]+_lut[i>>8&255]+_lut[i>>16&255]+_lut[i>>24&255]).toLowerCase()}function clamp$1(t,e,n){return Math.max(e,Math.min(n,t))}function euclideanModulo(t,e){return(t%e+e)%e}function mapLinear(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)}function inverseLerp(t,e,n){return t!==e?(n-t)/(e-t):0}function lerp(t,e,n){return(1-n)*t+n*e}function damp(t,e,n,i){return lerp(t,e,1-Math.exp(-n*i))}function pingpong(t,e=1){return e-Math.abs(euclideanModulo(t,2*e)-e)}function smoothstep(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)}function smootherstep(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)}function randInt(t,e){return t+Math.floor(Math.random()*(e-t+1))}function randFloat(t,e){return t+Math.random()*(e-t)}function randFloatSpread(t){return t*(.5-Math.random())}function seededRandom(t){void 0!==t&&(_seed=t);let e=_seed+=1831565813;return e=Math.imul(e^e>>>15,1|e),e^=e+Math.imul(e^e>>>7,61|e),((e^e>>>14)>>>0)/4294967296}function degToRad(t){return t*DEG2RAD$1}function radToDeg(t){return t*RAD2DEG$1}function isPowerOfTwo(t){return!(t&t-1)&&0!==t}function ceilPowerOfTwo(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function floorPowerOfTwo(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function setQuaternionFromProperEuler(t,e,n,i,r){const s=Math.cos,a=Math.sin,o=s(n/2),c=a(n/2),l=s((e+i)/2),u=a((e+i)/2),h=s((e-i)/2),d=a((e-i)/2),p=s((i-e)/2),f=a((i-e)/2);switch(r){case"XYX":t.set(o*u,c*h,c*d,o*l);break;case"YZY":t.set(c*d,o*u,c*h,o*l);break;case"ZXZ":t.set(c*h,c*d,o*u,o*l);break;case"XZX":t.set(o*u,c*f,c*p,o*l);break;case"YXY":t.set(c*p,o*u,c*f,o*l);break;case"ZYZ":t.set(c*f,c*p,o*u,o*l);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function denormalize(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return t/4294967295;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int32Array:return Math.max(t/2147483647,-1);case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error("Invalid component type.")}}function normalize(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return Math.round(4294967295*t);case Uint16Array:return Math.round(65535*t);case Uint8Array:return Math.round(255*t);case Int32Array:return Math.round(2147483647*t);case Int16Array:return Math.round(32767*t);case Int8Array:return Math.round(127*t);default:throw new Error("Invalid component type.")}}const MathUtils={DEG2RAD:DEG2RAD$1,RAD2DEG:RAD2DEG$1,generateUUID,clamp:clamp$1,euclideanModulo,mapLinear,inverseLerp,lerp,damp,pingpong,smoothstep,smootherstep,randInt,randFloat,randFloatSpread,seededRandom,degToRad,radToDeg,isPowerOfTwo,ceilPowerOfTwo,floorPowerOfTwo,setQuaternionFromProperEuler,normalize,denormalize};class Vector2{constructor(t=0,e=0){Vector2.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(clamp$1(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Matrix3{constructor(t,e,n,i,r,s,a,o,c){Matrix3.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==t&&this.set(t,e,n,i,r,s,a,o,c)}set(t,e,n,i,r,s,a,o,c){const l=this.elements;return l[0]=t,l[1]=i,l[2]=a,l[3]=e,l[4]=r,l[5]=o,l[6]=n,l[7]=s,l[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],c=n[1],l=n[4],u=n[7],h=n[2],d=n[5],p=n[8],f=i[0],m=i[3],g=i[6],A=i[1],y=i[4],v=i[7],S=i[2],x=i[5],b=i[8];return r[0]=s*f+a*A+o*S,r[3]=s*m+a*y+o*x,r[6]=s*g+a*v+o*b,r[1]=c*f+l*A+u*S,r[4]=c*m+l*y+u*x,r[7]=c*g+l*v+u*b,r[2]=h*f+d*A+p*S,r[5]=h*m+d*y+p*x,r[8]=h*g+d*v+p*b,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],c=t[7],l=t[8];return e*s*l-e*a*c-n*r*l+n*a*o+i*r*c-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],c=t[7],l=t[8],u=l*s-a*c,h=a*o-l*r,d=c*r-s*o,p=e*u+n*h+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const f=1/p;return t[0]=u*f,t[1]=(i*c-l*n)*f,t[2]=(a*n-i*s)*f,t[3]=h*f,t[4]=(l*e-i*o)*f,t[5]=(i*r-a*e)*f,t[6]=d*f,t[7]=(n*o-c*e)*f,t[8]=(s*e-n*r)*f,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),c=Math.sin(r);return this.set(n*o,n*c,-n*(o*s+c*a)+s+t,-i*c,i*o,-i*(-c*s+o*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(_m3.makeScale(t,e)),this}rotate(t){return this.premultiply(_m3.makeRotation(-t)),this}translate(t,e){return this.premultiply(_m3.makeTranslation(t,e)),this}makeTranslation(t,e){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,n=t.elements;for(let i=0;i<9;i++)if(e[i]!==n[i])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}const _m3=new Matrix3;function arrayNeedsUint32(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return!0;return!1}const TYPED_ARRAYS={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function getTypedArray(t,e){return new TYPED_ARRAYS[t](e)}function createElementNS(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}function createCanvasElement(){const t=createElementNS("canvas");return t.style.display="block",t}const _cache={};function warnOnce(t){t in _cache||(_cache[t]=!0,console.warn(t))}function probeAsync(t,e,n){return new Promise(function(i,r){setTimeout(function s(){switch(t.clientWaitSync(e,t.SYNC_FLUSH_COMMANDS_BIT,0)){case t.WAIT_FAILED:r();break;case t.TIMEOUT_EXPIRED:setTimeout(s,n);break;default:i()}},n)})}const LINEAR_SRGB_TO_LINEAR_DISPLAY_P3=(new Matrix3).set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),LINEAR_DISPLAY_P3_TO_LINEAR_SRGB=(new Matrix3).set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),COLOR_SPACES={[LinearSRGBColorSpace]:{transfer:LinearTransfer,primaries:Rec709Primaries,toReference:t=>t,fromReference:t=>t},[SRGBColorSpace]:{transfer:SRGBTransfer,primaries:Rec709Primaries,toReference:t=>t.convertSRGBToLinear(),fromReference:t=>t.convertLinearToSRGB()},[LinearDisplayP3ColorSpace]:{transfer:LinearTransfer,primaries:P3Primaries,toReference:t=>t.applyMatrix3(LINEAR_DISPLAY_P3_TO_LINEAR_SRGB),fromReference:t=>t.applyMatrix3(LINEAR_SRGB_TO_LINEAR_DISPLAY_P3)},[DisplayP3ColorSpace]:{transfer:SRGBTransfer,primaries:P3Primaries,toReference:t=>t.convertSRGBToLinear().applyMatrix3(LINEAR_DISPLAY_P3_TO_LINEAR_SRGB),fromReference:t=>t.applyMatrix3(LINEAR_SRGB_TO_LINEAR_DISPLAY_P3).convertLinearToSRGB()}},SUPPORTED_WORKING_COLOR_SPACES=new Set([LinearSRGBColorSpace,LinearDisplayP3ColorSpace]),ColorManagement={enabled:!0,_workingColorSpace:LinearSRGBColorSpace,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(t){if(!SUPPORTED_WORKING_COLOR_SPACES.has(t))throw new Error(`Unsupported working color space, "${t}".`);this._workingColorSpace=t},convert:function(t,e,n){if(!1===this.enabled||e===n||!e||!n)return t;const i=COLOR_SPACES[e].toReference;return(0,COLOR_SPACES[n].fromReference)(i(t))},fromWorkingColorSpace:function(t,e){return this.convert(t,this._workingColorSpace,e)},toWorkingColorSpace:function(t,e){return this.convert(t,e,this._workingColorSpace)},getPrimaries:function(t){return COLOR_SPACES[t].primaries},getTransfer:function(t){return t===NoColorSpace?LinearTransfer:COLOR_SPACES[t].transfer}};function SRGBToLinear(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function LinearToSRGB(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}let _canvas;class ImageUtils{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if("undefined"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===_canvas&&(_canvas=createElementNS("canvas")),_canvas.width=t.width,_canvas.height=t.height;const n=_canvas.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=_canvas}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const e=createElementNS("canvas");e.width=t.width,e.height=t.height;const n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);const i=n.getImageData(0,0,t.width,t.height),r=i.data;for(let t=0;t<r.length;t++)r[t]=255*SRGBToLinear(r[t]/255);return n.putImageData(i,0,0),e}if(t.data){const e=t.data.slice(0);for(let t=0;t<e.length;t++)e instanceof Uint8Array||e instanceof Uint8ClampedArray?e[t]=Math.floor(255*SRGBToLinear(e[t]/255)):e[t]=SRGBToLinear(e[t]);return{data:e,width:t.width,height:t.height}}return console.warn("THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied."),t}}let _sourceId=0;class Source{constructor(t=null){this.isSource=!0,Object.defineProperty(this,"id",{value:_sourceId++}),this.uuid=generateUUID(),this.data=t,this.dataReady=!0,this.version=0}set needsUpdate(t){!0===t&&this.version++}toJSON(t){const e=void 0===t||"string"==typeof t;if(!e&&void 0!==t.images[this.uuid])return t.images[this.uuid];const n={uuid:this.uuid,url:""},i=this.data;if(null!==i){let t;if(Array.isArray(i)){t=[];for(let e=0,n=i.length;e<n;e++)i[e].isDataTexture?t.push(serializeImage(i[e].image)):t.push(serializeImage(i[e]))}else t=serializeImage(i);n.url=t}return e||(t.images[this.uuid]=n),n}}function serializeImage(t){return"undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap?ImageUtils.getDataURL(t):t.data?{data:Array.from(t.data),width:t.width,height:t.height,type:t.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}let _textureId=0;class Texture extends EventDispatcher{constructor(t=Texture.DEFAULT_IMAGE,e=Texture.DEFAULT_MAPPING,n=ClampToEdgeWrapping,i=ClampToEdgeWrapping,r=LinearFilter,s=LinearMipmapLinearFilter,a=RGBAFormat,o=UnsignedByteType,c=Texture.DEFAULT_ANISOTROPY,l=NoColorSpace){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:_textureId++}),this.uuid=generateUUID(),this.name="",this.source=new Source(t),this.mipmaps=[],this.mapping=e,this.channel=0,this.wrapS=n,this.wrapT=i,this.magFilter=r,this.minFilter=s,this.anisotropy=c,this.format=a,this.internalFormat=null,this.type=o,this.offset=new Vector2(0,0),this.repeat=new Vector2(1,1),this.center=new Vector2(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Matrix3,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=l,this.userData={},this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1,this.pmremVersion=0}get image(){return this.source.data}set image(t=null){this.source.data=t}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(t){return this.name=t.name,this.source=t.source,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.channel=t.channel,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.colorSpace=t.colorSpace,this.userData=JSON.parse(JSON.stringify(t.userData)),this.needsUpdate=!0,this}toJSON(t){const e=void 0===t||"string"==typeof t;if(!e&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];const n={metadata:{version:4.6,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(t).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==UVMapping)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case RepeatWrapping:t.x=t.x-Math.floor(t.x);break;case ClampToEdgeWrapping:t.x=t.x<0?0:1;break;case MirroredRepeatWrapping:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case RepeatWrapping:t.y=t.y-Math.floor(t.y);break;case ClampToEdgeWrapping:t.y=t.y<0?0:1;break;case MirroredRepeatWrapping:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(t){!0===t&&this.pmremVersion++}}Texture.DEFAULT_IMAGE=null,Texture.DEFAULT_MAPPING=UVMapping,Texture.DEFAULT_ANISOTROPY=1;class Vector4{constructor(t=0,e=0,n=0,i=1){Vector4.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,c=o[0],l=o[4],u=o[8],h=o[1],d=o[5],p=o[9],f=o[2],m=o[6],g=o[10];if(Math.abs(l-h)<s&&Math.abs(u-f)<s&&Math.abs(p-m)<s){if(Math.abs(l+h)<a&&Math.abs(u+f)<a&&Math.abs(p+m)<a&&Math.abs(c+d+g-3)<a)return this.set(1,0,0,0),this;e=Math.PI;const t=(c+1)/2,o=(d+1)/2,A=(g+1)/2,y=(l+h)/4,v=(u+f)/4,S=(p+m)/4;return t>o&&t>A?t<s?(n=0,i=.707106781,r=.707106781):(n=Math.sqrt(t),i=y/n,r=v/n):o>A?o<s?(n=.707106781,i=0,r=.707106781):(i=Math.sqrt(o),n=y/i,r=S/i):A<s?(n=.707106781,i=.707106781,r=0):(r=Math.sqrt(A),n=v/r,i=S/r),this.set(n,i,r,e),this}let A=Math.sqrt((m-p)*(m-p)+(u-f)*(u-f)+(h-l)*(h-l));return Math.abs(A)<.001&&(A=1),this.x=(m-p)/A,this.y=(u-f)/A,this.z=(h-l)/A,this.w=Math.acos((c+d+g-1)/2),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this.w=e[15],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class RenderTarget extends EventDispatcher{constructor(t=1,e=1,n={}){super(),this.isRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new Vector4(0,0,t,e),this.scissorTest=!1,this.viewport=new Vector4(0,0,t,e);const i={width:t,height:e,depth:1};n=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:LinearFilter,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},n);const r=new Texture(i,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace);r.flipY=!1,r.generateMipmaps=n.generateMipmaps,r.internalFormat=n.internalFormat,this.textures=[];const s=n.count;for(let a=0;a<s;a++)this.textures[a]=r.clone(),this.textures[a].isRenderTargetTexture=!0;this.depthBuffer=n.depthBuffer,this.stencilBuffer=n.stencilBuffer,this.resolveDepthBuffer=n.resolveDepthBuffer,this.resolveStencilBuffer=n.resolveStencilBuffer,this.depthTexture=n.depthTexture,this.samples=n.samples}get texture(){return this.textures[0]}set texture(t){this.textures[0]=t}setSize(t,e,n=1){if(this.width!==t||this.height!==e||this.depth!==n){this.width=t,this.height=e,this.depth=n;for(let i=0,r=this.textures.length;i<r;i++)this.textures[i].image.width=t,this.textures[i].image.height=e,this.textures[i].image.depth=n;this.dispose()}this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return(new this.constructor).copy(this)}copy(t){this.width=t.width,this.height=t.height,this.depth=t.depth,this.scissor.copy(t.scissor),this.scissorTest=t.scissorTest,this.viewport.copy(t.viewport),this.textures.length=0;for(let n=0,i=t.textures.length;n<i;n++)this.textures[n]=t.textures[n].clone(),this.textures[n].isRenderTargetTexture=!0;const e=Object.assign({},t.texture.image);return this.texture.source=new Source(e),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.resolveDepthBuffer=t.resolveDepthBuffer,this.resolveStencilBuffer=t.resolveStencilBuffer,null!==t.depthTexture&&(this.depthTexture=t.depthTexture.clone()),this.samples=t.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class WebGLRenderTarget extends RenderTarget{constructor(t=1,e=1,n={}){super(t,e,n),this.isWebGLRenderTarget=!0}}class DataArrayTexture extends Texture{constructor(t=null,e=1,n=1,i=1){super(null),this.isDataArrayTexture=!0,this.image={data:t,width:e,height:n,depth:i},this.magFilter=NearestFilter,this.minFilter=NearestFilter,this.wrapR=ClampToEdgeWrapping,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.layerUpdates=new Set}addLayerUpdate(t){this.layerUpdates.add(t)}clearLayerUpdates(){this.layerUpdates.clear()}}class WebGLArrayRenderTarget extends WebGLRenderTarget{constructor(t=1,e=1,n=1,i={}){super(t,e,i),this.isWebGLArrayRenderTarget=!0,this.depth=n,this.texture=new DataArrayTexture(null,t,e,n),this.texture.isRenderTargetTexture=!0}}class Data3DTexture extends Texture{constructor(t=null,e=1,n=1,i=1){super(null),this.isData3DTexture=!0,this.image={data:t,width:e,height:n,depth:i},this.magFilter=NearestFilter,this.minFilter=NearestFilter,this.wrapR=ClampToEdgeWrapping,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class WebGL3DRenderTarget extends WebGLRenderTarget{constructor(t=1,e=1,n=1,i={}){super(t,e,i),this.isWebGL3DRenderTarget=!0,this.depth=n,this.texture=new Data3DTexture(null,t,e,n),this.texture.isRenderTargetTexture=!0}}class Quaternion{constructor(t=0,e=0,n=0,i=1){this.isQuaternion=!0,this._x=t,this._y=e,this._z=n,this._w=i}static slerpFlat(t,e,n,i,r,s,a){let o=n[i+0],c=n[i+1],l=n[i+2],u=n[i+3];const h=r[s+0],d=r[s+1],p=r[s+2],f=r[s+3];if(0===a)return t[e+0]=o,t[e+1]=c,t[e+2]=l,void(t[e+3]=u);if(1===a)return t[e+0]=h,t[e+1]=d,t[e+2]=p,void(t[e+3]=f);if(u!==f||o!==h||c!==d||l!==p){let t=1-a;const e=o*h+c*d+l*p+u*f,n=e>=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+h*r,c=c*t+d*r,l=l*t+p*r,u=u*t+f*r,t===1-a){const t=1/Math.sqrt(o*o+c*c+l*l+u*u);o*=t,c*=t,l*=t,u*=t}}t[e]=o,t[e+1]=c,t[e+2]=l,t[e+3]=u}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],c=n[i+2],l=n[i+3],u=r[s],h=r[s+1],d=r[s+2],p=r[s+3];return t[e]=a*p+l*u+o*d-c*h,t[e+1]=o*p+l*h+c*u-a*d,t[e+2]=c*p+l*d+a*h-o*u,t[e+3]=l*p-a*u-o*h-c*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e=!0){const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,c=a(n/2),l=a(i/2),u=a(r/2),h=o(n/2),d=o(i/2),p=o(r/2);switch(s){case"XYZ":this._x=h*l*u+c*d*p,this._y=c*d*u-h*l*p,this._z=c*l*p+h*d*u,this._w=c*l*u-h*d*p;break;case"YXZ":this._x=h*l*u+c*d*p,this._y=c*d*u-h*l*p,this._z=c*l*p-h*d*u,this._w=c*l*u+h*d*p;break;case"ZXY":this._x=h*l*u-c*d*p,this._y=c*d*u+h*l*p,this._z=c*l*p+h*d*u,this._w=c*l*u-h*d*p;break;case"ZYX":this._x=h*l*u-c*d*p,this._y=c*d*u+h*l*p,this._z=c*l*p-h*d*u,this._w=c*l*u+h*d*p;break;case"YZX":this._x=h*l*u+c*d*p,this._y=c*d*u+h*l*p,this._z=c*l*p-h*d*u,this._w=c*l*u-h*d*p;break;case"XZY":this._x=h*l*u-c*d*p,this._y=c*d*u-h*l*p,this._z=c*l*p+h*d*u,this._w=c*l*u+h*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!0===e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],c=e[2],l=e[6],u=e[10],h=n+a+u;if(h>0){const t=.5/Math.sqrt(h+1);this._w=.25/t,this._x=(l-o)*t,this._y=(r-c)*t,this._z=(s-i)*t}else if(n>a&&n>u){const t=2*Math.sqrt(1+n-a-u);this._w=(l-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+c)/t}else if(a>u){const t=2*Math.sqrt(1+a-n-u);this._w=(r-c)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+l)/t}else{const t=2*Math.sqrt(1+u-n-a);this._w=(s-i)/t,this._x=(r+c)/t,this._y=(o+l)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return n<Number.EPSILON?(n=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(clamp$1(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,c=e._z,l=e._w;return this._x=n*l+s*a+i*c-r*o,this._y=i*l+s*o+r*a-n*c,this._z=r*l+s*c+n*o-i*a,this._w=s*l-n*a-i*o-r*c,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this}const c=Math.sqrt(o),l=Math.atan2(c,a),u=Math.sin((1-e)*l)/c,h=Math.sin(e*l)/c;return this._w=s*u+this._w*h,this._x=n*u+this._x*h,this._y=i*u+this._y*h,this._z=r*u+this._z*h,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=2*Math.PI*Math.random(),e=2*Math.PI*Math.random(),n=Math.random(),i=Math.sqrt(1-n),r=Math.sqrt(n);return this.set(i*Math.sin(t),i*Math.cos(t),r*Math.sin(e),r*Math.cos(e))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class Vector3{constructor(t=0,e=0,n=0){Vector3.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(_quaternion$4.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(_quaternion$4.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,c=2*(s*i-a*n),l=2*(a*e-r*i),u=2*(r*n-s*e);return this.x=e+o*c+s*u-a*l,this.y=n+o*l+a*c-r*u,this.z=i+o*u+r*l-s*c,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return _vector$c.copy(this).projectOnVector(t),this.sub(_vector$c)}reflect(t){return this.sub(_vector$c.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(clamp$1(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=Math.random()*Math.PI*2,e=2*Math.random()-1,n=Math.sqrt(1-e*e);return this.x=n*Math.cos(t),this.y=e,this.z=n*Math.sin(t),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const _vector$c=new Vector3,_quaternion$4=new Quaternion;class Box3{constructor(t=new Vector3(1/0,1/0,1/0),e=new Vector3(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e+=3)this.expandByPoint(_vector$b.fromArray(t,e));return this}setFromBufferAttribute(t){this.makeEmpty();for(let e=0,n=t.count;e<n;e++)this.expandByPoint(_vector$b.fromBufferAttribute(t,e));return this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=_vector$b.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}setFromObject(t,e=!1){return this.makeEmpty(),this.expandByObject(t,e)}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(t){return this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}expandByObject(t,e=!1){t.updateWorldMatrix(!1,!1);const n=t.geometry;if(void 0!==n){const i=n.getAttribute("position");if(!0===e&&void 0!==i&&!0!==t.isInstancedMesh)for(let e=0,n=i.count;e<n;e++)!0===t.isMesh?t.getVertexPosition(e,_vector$b):_vector$b.fromBufferAttribute(i,e),_vector$b.applyMatrix4(t.matrixWorld),this.expandByPoint(_vector$b);else void 0!==t.boundingBox?(null===t.boundingBox&&t.computeBoundingBox(),_box$4.copy(t.boundingBox)):(null===n.boundingBox&&n.computeBoundingBox(),_box$4.copy(n.boundingBox)),_box$4.applyMatrix4(t.matrixWorld),this.union(_box$4)}const i=t.children;for(let r=0,s=i.length;r<s;r++)this.expandByObject(i[r],e);return this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)}intersectsSphere(t){return this.clampPoint(t.center,_vector$b),_vector$b.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(_center),_extents.subVectors(this.max,_center),_v0$2.subVectors(t.a,_center),_v1$7.subVectors(t.b,_center),_v2$4.subVectors(t.c,_center),_f0.subVectors(_v1$7,_v0$2),_f1.subVectors(_v2$4,_v1$7),_f2.subVectors(_v0$2,_v2$4);let e=[0,-_f0.z,_f0.y,0,-_f1.z,_f1.y,0,-_f2.z,_f2.y,_f0.z,0,-_f0.x,_f1.z,0,-_f1.x,_f2.z,0,-_f2.x,-_f0.y,_f0.x,0,-_f1.y,_f1.x,0,-_f2.y,_f2.x,0];return!!satForAxes(e,_v0$2,_v1$7,_v2$4,_extents)&&(e=[1,0,0,0,1,0,0,0,1],!!satForAxes(e,_v0$2,_v1$7,_v2$4,_extents)&&(_triangleNormal.crossVectors(_f0,_f1),e=[_triangleNormal.x,_triangleNormal.y,_triangleNormal.z],satForAxes(e,_v0$2,_v1$7,_v2$4,_extents)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,_vector$b).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=.5*this.getSize(_vector$b).length()),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(_points[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),_points[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),_points[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),_points[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),_points[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),_points[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),_points[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),_points[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(_points)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const _points=[new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3],_vector$b=new Vector3,_box$4=new Box3,_v0$2=new Vector3,_v1$7=new Vector3,_v2$4=new Vector3,_f0=new Vector3,_f1=new Vector3,_f2=new Vector3,_center=new Vector3,_extents=new Vector3,_triangleNormal=new Vector3,_testAxis=new Vector3;function satForAxes(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){_testAxis.fromArray(t,s);const a=r.x*Math.abs(_testAxis.x)+r.y*Math.abs(_testAxis.y)+r.z*Math.abs(_testAxis.z),o=e.dot(_testAxis),c=n.dot(_testAxis),l=i.dot(_testAxis);if(Math.max(-Math.max(o,c,l),Math.min(o,c,l))>a)return!1}return!0}const _box$3=new Box3,_v1$6=new Vector3,_v2$3=new Vector3;class Sphere{constructor(t=new Vector3,e=-1){this.isSphere=!0,this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):_box$3.setFromPoints(t).getCenter(n);let i=0;for(let r=0,s=t.length;r<s;r++)i=Math.max(i,n.distanceToSquared(t[r]));return this.radius=Math.sqrt(i),this}copy(t){return this.center.copy(t.center),this.radius=t.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(t){return t.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(t){return t.distanceTo(this.center)-this.radius}intersectsSphere(t){const e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e}intersectsBox(t){return t.intersectsSphere(this)}intersectsPlane(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius}clampPoint(t,e){const n=this.center.distanceToSquared(t);return e.copy(t),n>this.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;_v1$6.subVectors(t,this.center);const e=_v1$6.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.addScaledVector(_v1$6,n/t),this.radius+=n}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(!0===this.center.equals(t.center)?this.radius=Math.max(this.radius,t.radius):(_v2$3.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(_v1$6.copy(t.center).add(_v2$3)),this.expandByPoint(_v1$6.copy(t.center).sub(_v2$3))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const _vector$a=new Vector3,_segCenter=new Vector3,_segDir=new Vector3,_diff=new Vector3,_edge1=new Vector3,_edge2=new Vector3,_normal$1=new Vector3;class Ray{constructor(t=new Vector3,e=new Vector3(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,_vector$a)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=_vector$a.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(_vector$a.copy(this.origin).addScaledVector(this.direction,e),_vector$a.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){_segCenter.copy(t).add(e).multiplyScalar(.5),_segDir.copy(e).sub(t).normalize(),_diff.copy(this.origin).sub(_segCenter);const r=.5*t.distanceTo(e),s=-this.direction.dot(_segDir),a=_diff.dot(this.direction),o=-_diff.dot(_segDir),c=_diff.lengthSq(),l=Math.abs(1-s*s);let u,h,d,p;if(l>0)if(u=s*o-a,h=s*a-o,p=r*l,u>=0)if(h>=-p)if(h<=p){const t=1/l;u*=t,h*=t,d=u*(u+s*h+2*a)+h*(s*u+h+2*o)+c}else h=r,u=Math.max(0,-(s*h+a)),d=-u*u+h*(h+2*o)+c;else h=-r,u=Math.max(0,-(s*h+a)),d=-u*u+h*(h+2*o)+c;else h<=-p?(u=Math.max(0,-(-s*r+a)),h=u>0?-r:Math.min(Math.max(-r,-o),r),d=-u*u+h*(h+2*o)+c):h<=p?(u=0,h=Math.min(Math.max(-r,-o),r),d=h*(h+2*o)+c):(u=Math.max(0,-(s*r+a)),h=u>0?r:Math.min(Math.max(-r,-o),r),d=-u*u+h*(h+2*o)+c);else h=s>0?-r:r,u=Math.max(0,-(s*h+a)),d=-u*u+h*(h+2*o)+c;return n&&n.copy(this.origin).addScaledVector(this.direction,u),i&&i.copy(_segCenter).addScaledVector(_segDir,h),d}intersectSphere(t,e){_vector$a.subVectors(t.center,this.origin);const n=_vector$a.dot(this.direction),i=_vector$a.dot(_vector$a)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,s,a,o;const c=1/this.direction.x,l=1/this.direction.y,u=1/this.direction.z,h=this.origin;return c>=0?(n=(t.min.x-h.x)*c,i=(t.max.x-h.x)*c):(n=(t.max.x-h.x)*c,i=(t.min.x-h.x)*c),l>=0?(r=(t.min.y-h.y)*l,s=(t.max.y-h.y)*l):(r=(t.max.y-h.y)*l,s=(t.min.y-h.y)*l),n>s||r>i?null:((r>n||isNaN(n))&&(n=r),(s<i||isNaN(i))&&(i=s),u>=0?(a=(t.min.z-h.z)*u,o=(t.max.z-h.z)*u):(a=(t.max.z-h.z)*u,o=(t.min.z-h.z)*u),n>o||a>i?null:((a>n||n!=n)&&(n=a),(o<i||i!=i)&&(i=o),i<0?null:this.at(n>=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,_vector$a)}intersectTriangle(t,e,n,i,r){_edge1.subVectors(e,t),_edge2.subVectors(n,t),_normal$1.crossVectors(_edge1,_edge2);let s,a=this.direction.dot(_normal$1);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}_diff.subVectors(this.origin,t);const o=s*this.direction.dot(_edge2.crossVectors(_diff,_edge2));if(o<0)return null;const c=s*this.direction.dot(_edge1.cross(_diff));if(c<0)return null;if(o+c>a)return null;const l=-s*_diff.dot(_normal$1);return l<0?null:this.at(l/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class Matrix4{constructor(t,e,n,i,r,s,a,o,c,l,u,h,d,p,f,m){Matrix4.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],void 0!==t&&this.set(t,e,n,i,r,s,a,o,c,l,u,h,d,p,f,m)}set(t,e,n,i,r,s,a,o,c,l,u,h,d,p,f,m){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=s,g[9]=a,g[13]=o,g[2]=c,g[6]=l,g[10]=u,g[14]=h,g[3]=d,g[7]=p,g[11]=f,g[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new Matrix4).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/_v1$5.setFromMatrixColumn(t,0).length(),r=1/_v1$5.setFromMatrixColumn(t,1).length(),s=1/_v1$5.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),c=Math.sin(i),l=Math.cos(r),u=Math.sin(r);if("XYZ"===t.order){const t=s*l,n=s*u,i=a*l,r=a*u;e[0]=o*l,e[4]=-o*u,e[8]=c,e[1]=n+i*c,e[5]=t-r*c,e[9]=-a*o,e[2]=r-t*c,e[6]=i+n*c,e[10]=s*o}else if("YXZ"===t.order){const t=o*l,n=o*u,i=c*l,r=c*u;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*c,e[1]=s*u,e[5]=s*l,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if("ZXY"===t.order){const t=o*l,n=o*u,i=c*l,r=c*u;e[0]=t-r*a,e[4]=-s*u,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*l,e[9]=r-t*a,e[2]=-s*c,e[6]=a,e[10]=s*o}else if("ZYX"===t.order){const t=s*l,n=s*u,i=a*l,r=a*u;e[0]=o*l,e[4]=i*c-n,e[8]=t*c+r,e[1]=o*u,e[5]=r*c+t,e[9]=n*c-i,e[2]=-c,e[6]=a*o,e[10]=s*o}else if("YZX"===t.order){const t=s*o,n=s*c,i=a*o,r=a*c;e[0]=o*l,e[4]=r-t*u,e[8]=i*u+n,e[1]=u,e[5]=s*l,e[9]=-a*l,e[2]=-c*l,e[6]=n*u+i,e[10]=t-r*u}else if("XZY"===t.order){const t=s*o,n=s*c,i=a*o,r=a*c;e[0]=o*l,e[4]=-u,e[8]=c*l,e[1]=t*u+r,e[5]=s*l,e[9]=n*u-i,e[2]=i*u-n,e[6]=a*l,e[10]=r*u+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(_zero,t,_one)}lookAt(t,e,n){const i=this.elements;return _z.subVectors(t,e),0===_z.lengthSq()&&(_z.z=1),_z.normalize(),_x.crossVectors(n,_z),0===_x.lengthSq()&&(1===Math.abs(n.z)?_z.x+=1e-4:_z.z+=1e-4,_z.normalize(),_x.crossVectors(n,_z)),_x.normalize(),_y.crossVectors(_z,_x),i[0]=_x.x,i[4]=_y.x,i[8]=_z.x,i[1]=_x.y,i[5]=_y.y,i[9]=_z.y,i[2]=_x.z,i[6]=_y.z,i[10]=_z.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],c=n[12],l=n[1],u=n[5],h=n[9],d=n[13],p=n[2],f=n[6],m=n[10],g=n[14],A=n[3],y=n[7],v=n[11],S=n[15],x=i[0],b=i[4],T=i[8],I=i[12],M=i[1],E=i[5],w=i[9],R=i[13],C=i[2],k=i[6],_=i[10],L=i[14],U=i[3],N=i[7],F=i[11],B=i[15];return r[0]=s*x+a*M+o*C+c*U,r[4]=s*b+a*E+o*k+c*N,r[8]=s*T+a*w+o*_+c*F,r[12]=s*I+a*R+o*L+c*B,r[1]=l*x+u*M+h*C+d*U,r[5]=l*b+u*E+h*k+d*N,r[9]=l*T+u*w+h*_+d*F,r[13]=l*I+u*R+h*L+d*B,r[2]=p*x+f*M+m*C+g*U,r[6]=p*b+f*E+m*k+g*N,r[10]=p*T+f*w+m*_+g*F,r[14]=p*I+f*R+m*L+g*B,r[3]=A*x+y*M+v*C+S*U,r[7]=A*b+y*E+v*k+S*N,r[11]=A*T+y*w+v*_+S*F,r[15]=A*I+y*R+v*L+S*B,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],c=t[13],l=t[2],u=t[6],h=t[10],d=t[14];return t[3]*(+r*o*u-i*c*u-r*a*h+n*c*h+i*a*d-n*o*d)+t[7]*(+e*o*d-e*c*h+r*s*h-i*s*d+i*c*l-r*o*l)+t[11]*(+e*c*u-e*a*d-r*s*u+n*s*d+r*a*l-n*c*l)+t[15]*(-i*a*l-e*o*u+e*a*h+i*s*u-n*s*h+n*o*l)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],c=t[7],l=t[8],u=t[9],h=t[10],d=t[11],p=t[12],f=t[13],m=t[14],g=t[15],A=u*m*c-f*h*c+f*o*d-a*m*d-u*o*g+a*h*g,y=p*h*c-l*m*c-p*o*d+s*m*d+l*o*g-s*h*g,v=l*f*c-p*u*c+p*a*d-s*f*d-l*a*g+s*u*g,S=p*u*o-l*f*o-p*a*h+s*f*h+l*a*m-s*u*m,x=e*A+n*y+i*v+r*S;if(0===x)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const b=1/x;return t[0]=A*b,t[1]=(f*h*r-u*m*r-f*i*d+n*m*d+u*i*g-n*h*g)*b,t[2]=(a*m*r-f*o*r+f*i*c-n*m*c-a*i*g+n*o*g)*b,t[3]=(u*o*r-a*h*r-u*i*c+n*h*c+a*i*d-n*o*d)*b,t[4]=y*b,t[5]=(l*m*r-p*h*r+p*i*d-e*m*d-l*i*g+e*h*g)*b,t[6]=(p*o*r-s*m*r-p*i*c+e*m*c+s*i*g-e*o*g)*b,t[7]=(s*h*r-l*o*r+l*i*c-e*h*c-s*i*d+e*o*d)*b,t[8]=v*b,t[9]=(p*u*r-l*f*r-p*n*d+e*f*d+l*n*g-e*u*g)*b,t[10]=(s*f*r-p*a*r+p*n*c-e*f*c-s*n*g+e*a*g)*b,t[11]=(l*a*r-s*u*r-l*n*c+e*u*c+s*n*d-e*a*d)*b,t[12]=S*b,t[13]=(l*f*i-p*u*i+p*n*h-e*f*h-l*n*m+e*u*m)*b,t[14]=(p*a*i-s*f*i-p*n*o+e*f*o+s*n*m-e*a*m)*b,t[15]=(s*u*i-l*a*i+l*n*o-e*u*o-s*n*h+e*a*h)*b,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return t.isVector3?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,c=r*s,l=r*a;return this.set(c*s+n,c*a-i*o,c*o+i*a,0,c*a+i*o,l*a+n,l*o-i*s,0,c*o-i*a,l*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,r,s){return this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,c=r+r,l=s+s,u=a+a,h=r*c,d=r*l,p=r*u,f=s*l,m=s*u,g=a*u,A=o*c,y=o*l,v=o*u,S=n.x,x=n.y,b=n.z;return i[0]=(1-(f+g))*S,i[1]=(d+v)*S,i[2]=(p-y)*S,i[3]=0,i[4]=(d-v)*x,i[5]=(1-(h+g))*x,i[6]=(m+A)*x,i[7]=0,i[8]=(p+y)*b,i[9]=(m-A)*b,i[10]=(1-(h+f))*b,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=_v1$5.set(i[0],i[1],i[2]).length();const s=_v1$5.set(i[4],i[5],i[6]).length(),a=_v1$5.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],_m1$4.copy(this);const o=1/r,c=1/s,l=1/a;return _m1$4.elements[0]*=o,_m1$4.elements[1]*=o,_m1$4.elements[2]*=o,_m1$4.elements[4]*=c,_m1$4.elements[5]*=c,_m1$4.elements[6]*=c,_m1$4.elements[8]*=l,_m1$4.elements[9]*=l,_m1$4.elements[10]*=l,e.setFromRotationMatrix(_m1$4),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s,a=WebGLCoordinateSystem){const o=this.elements,c=2*r/(e-t),l=2*r/(n-i),u=(e+t)/(e-t),h=(n+i)/(n-i);let d,p;if(a===WebGLCoordinateSystem)d=-(s+r)/(s-r),p=-2*s*r/(s-r);else{if(a!==WebGPUCoordinateSystem)throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);d=-s/(s-r),p=-s*r/(s-r)}return o[0]=c,o[4]=0,o[8]=u,o[12]=0,o[1]=0,o[5]=l,o[9]=h,o[13]=0,o[2]=0,o[6]=0,o[10]=d,o[14]=p,o[3]=0,o[7]=0,o[11]=-1,o[15]=0,this}makeOrthographic(t,e,n,i,r,s,a=WebGLCoordinateSystem){const o=this.elements,c=1/(e-t),l=1/(n-i),u=1/(s-r),h=(e+t)*c,d=(n+i)*l;let p,f;if(a===WebGLCoordinateSystem)p=(s+r)*u,f=-2*u;else{if(a!==WebGPUCoordinateSystem)throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);p=r*u,f=-1*u}return o[0]=2*c,o[4]=0,o[8]=0,o[12]=-h,o[1]=0,o[5]=2*l,o[9]=0,o[13]=-d,o[2]=0,o[6]=0,o[10]=f,o[14]=-p,o[3]=0,o[7]=0,o[11]=0,o[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let i=0;i<16;i++)if(e[i]!==n[i])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}const _v1$5=new Vector3,_m1$4=new Matrix4,_zero=new Vector3(0,0,0),_one=new Vector3(1,1,1),_x=new Vector3,_y=new Vector3,_z=new Vector3,_matrix$2=new Matrix4,_quaternion$3=new Quaternion;class Euler{constructor(t=0,e=0,n=0,i=Euler.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],c=i[5],l=i[9],u=i[2],h=i[6],d=i[10];switch(e){case"XYZ":this._y=Math.asin(clamp$1(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-l,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(h,c),this._z=0);break;case"YXZ":this._x=Math.asin(-clamp$1(l,-1,1)),Math.abs(l)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,c)):(this._y=Math.atan2(-u,r),this._z=0);break;case"ZXY":this._x=Math.asin(clamp$1(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(-u,d),this._z=Math.atan2(-s,c)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-clamp$1(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(h,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,c));break;case"YZX":this._z=Math.asin(clamp$1(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-l,c),this._y=Math.atan2(-u,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-clamp$1(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(h,c),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-l,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return _matrix$2.makeRotationFromQuaternion(t),this.setFromRotationMatrix(_matrix$2,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return _quaternion$3.setFromEuler(this),this.setFromQuaternion(_quaternion$3,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Euler.DEFAULT_ORDER="XYZ";class Layers{constructor(){this.mask=1}set(t){this.mask=1<<t>>>0}enable(t){this.mask|=1<<t}enableAll(){this.mask=-1}toggle(t){this.mask^=1<<t}disable(t){this.mask&=~(1<<t)}disableAll(){this.mask=0}test(t){return 0!==(this.mask&t.mask)}isEnabled(t){return!!(this.mask&1<<t)}}let _object3DId=0;const _v1$4=new Vector3,_q1=new Quaternion,_m1$3=new Matrix4,_target=new Vector3,_position$3=new Vector3,_scale$2=new Vector3,_quaternion$2=new Quaternion,_xAxis=new Vector3(1,0,0),_yAxis=new Vector3(0,1,0),_zAxis=new Vector3(0,0,1),_addedEvent={type:"added"},_removedEvent={type:"removed"},_childaddedEvent={type:"childadded",child:null},_childremovedEvent={type:"childremoved",child:null};class Object3D extends EventDispatcher{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:_object3DId++}),this.uuid=generateUUID(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=Object3D.DEFAULT_UP.clone();const t=new Vector3,e=new Euler,n=new Quaternion,i=new Vector3(1,1,1);e._onChange(function(){n.setFromEuler(e,!1)}),n._onChange(function(){e.setFromQuaternion(n,void 0,!1)}),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:e},quaternion:{configurable:!0,enumerable:!0,value:n},scale:{configurable:!0,enumerable:!0,value:i},modelViewMatrix:{value:new Matrix4},normalMatrix:{value:new Matrix3}}),this.matrix=new Matrix4,this.matrixWorld=new Matrix4,this.matrixAutoUpdate=Object3D.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new Layers,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(t){return this.quaternion.premultiply(t),this}setRotationFromAxisAngle(t,e){this.quaternion.setFromAxisAngle(t,e)}setRotationFromEuler(t){this.quaternion.setFromEuler(t,!0)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}setRotationFromQuaternion(t){this.quaternion.copy(t)}rotateOnAxis(t,e){return _q1.setFromAxisAngle(t,e),this.quaternion.multiply(_q1),this}rotateOnWorldAxis(t,e){return _q1.setFromAxisAngle(t,e),this.quaternion.premultiply(_q1),this}rotateX(t){return this.rotateOnAxis(_xAxis,t)}rotateY(t){return this.rotateOnAxis(_yAxis,t)}rotateZ(t){return this.rotateOnAxis(_zAxis,t)}translateOnAxis(t,e){return _v1$4.copy(t).applyQuaternion(this.quaternion),this.position.add(_v1$4.multiplyScalar(e)),this}translateX(t){return this.translateOnAxis(_xAxis,t)}translateY(t){return this.translateOnAxis(_yAxis,t)}translateZ(t){return this.translateOnAxis(_zAxis,t)}localToWorld(t){return this.updateWorldMatrix(!0,!1),t.applyMatrix4(this.matrixWorld)}worldToLocal(t){return this.updateWorldMatrix(!0,!1),t.applyMatrix4(_m1$3.copy(this.matrixWorld).invert())}lookAt(t,e,n){t.isVector3?_target.copy(t):_target.set(t,e,n);const i=this.parent;this.updateWorldMatrix(!0,!1),_position$3.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?_m1$3.lookAt(_position$3,_target,this.up):_m1$3.lookAt(_target,_position$3,this.up),this.quaternion.setFromRotationMatrix(_m1$3),i&&(_m1$3.extractRotation(i.matrixWorld),_q1.setFromRotationMatrix(_m1$3),this.quaternion.premultiply(_q1.invert()))}add(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return t===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",t),this):(t&&t.isObject3D?(t.removeFromParent(),t.parent=this,this.children.push(t),t.dispatchEvent(_addedEvent),_childaddedEvent.child=t,this.dispatchEvent(_childaddedEvent),_childaddedEvent.child=null):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",t),this)}remove(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.remove(arguments[t]);return this}const e=this.children.indexOf(t);return-1!==e&&(t.parent=null,this.children.splice(e,1),t.dispatchEvent(_removedEvent),_childremovedEvent.child=t,this.dispatchEvent(_childremovedEvent),_childremovedEvent.child=null),this}removeFromParent(){const t=this.parent;return null!==t&&t.remove(this),this}clear(){return this.remove(...this.children)}attach(t){return this.updateWorldMatrix(!0,!1),_m1$3.copy(this.matrixWorld).invert(),null!==t.parent&&(t.parent.updateWorldMatrix(!0,!1),_m1$3.multiply(t.parent.matrixWorld)),t.applyMatrix4(_m1$3),t.removeFromParent(),t.parent=this,this.children.push(t),t.updateWorldMatrix(!1,!0),t.dispatchEvent(_addedEvent),_childaddedEvent.child=t,this.dispatchEvent(_childaddedEvent),_childaddedEvent.child=null,this}getObjectById(t){return this.getObjectByProperty("id",t)}getObjectByName(t){return this.getObjectByProperty("name",t)}getObjectByProperty(t,e){if(this[t]===e)return this;for(let n=0,i=this.children.length;n<i;n++){const i=this.children[n].getObjectByProperty(t,e);if(void 0!==i)return i}}getObjectsByProperty(t,e,n=[]){this[t]===e&&n.push(this);const i=this.children;for(let r=0,s=i.length;r<s;r++)i[r].getObjectsByProperty(t,e,n);return n}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(_position$3,t,_scale$2),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(_position$3,_quaternion$2,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverse(t)}traverseVisible(t){if(!1===this.visible)return;t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverseVisible(t)}traverseAncestors(t){const e=this.parent;null!==e&&(t(e),e.traverseAncestors(t))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(!0===this.matrixWorldAutoUpdate&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,t=!0);const e=this.children;for(let n=0,i=e.length;n<i;n++){e[n].updateMatrixWorld(t)}}updateWorldMatrix(t,e){const n=this.parent;if(!0===t&&null!==n&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),!0===this.matrixWorldAutoUpdate&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),!0===e){const t=this.children;for(let e=0,n=t.length;e<n;e++){t[e].updateWorldMatrix(!1,!0)}}}toJSON(t){const e=void 0===t||"string"==typeof t,n={};e&&(t={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}},n.metadata={version:4.6,type:"Object",generator:"Object3D.toJSON"});const i={};function r(e,n){return void 0===e[n.uuid]&&(e[n.uuid]=n.toJSON(t)),n.uuid}if(i.uuid=this.uuid,i.type=this.type,""!==this.name&&(i.name=this.name),!0===this.castShadow&&(i.castShadow=!0),!0===this.receiveShadow&&(i.receiveShadow=!0),!1===this.visible&&(i.visible=!1),!1===this.frustumCulled&&(i.frustumCulled=!1),0!==this.renderOrder&&(i.renderOrder=this.renderOrder),Object.keys(this.userData).length>0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(i.type="BatchedMesh",i.perObjectFrustumCulled=this.perObjectFrustumCulled,i.sortObjects=this.sortObjects,i.drawRanges=this._drawRanges,i.reservedRanges=this._reservedRanges,i.visibility=this._visibility,i.active=this._active,i.bounds=this._bounds.map(t=>({boxInitialized:t.boxInitialized,boxMin:t.box.min.toArray(),boxMax:t.box.max.toArray(),sphereInitialized:t.sphereInitialized,sphereRadius:t.sphere.radius,sphereCenter:t.sphere.center.toArray()})),i.maxInstanceCount=this._maxInstanceCount,i.maxVertexCount=this._maxVertexCount,i.maxIndexCount=this._maxIndexCount,i.geometryInitialized=this._geometryInitialized,i.geometryCount=this._geometryCount,i.matricesTexture=this._matricesTexture.toJSON(t),null!==this._colorsTexture&&(i.colorsTexture=this._colorsTexture.toJSON(t)),null!==this.boundingSphere&&(i.boundingSphere={center:i.boundingSphere.center.toArray(),radius:i.boundingSphere.radius}),null!==this.boundingBox&&(i.boundingBox={min:i.boundingBox.min.toArray(),max:i.boundingBox.max.toArray()})),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e<i;e++){const i=n[e];r(t.shapes,i)}else r(t.shapes,n)}}if(this.isSkinnedMesh&&(i.bindMode=this.bindMode,i.bindMatrix=this.bindMatrix.toArray(),void 0!==this.skeleton&&(r(t.skeletons,this.skeleton),i.skeleton=this.skeleton.uuid)),void 0!==this.material)if(Array.isArray(this.material)){const e=[];for(let n=0,i=this.material.length;n<i;n++)e.push(r(t.materials,this.material[n]));i.material=e}else i.material=r(t.materials,this.material);if(this.children.length>0){i.children=[];for(let e=0;e<this.children.length;e++)i.children.push(this.children[e].toJSON(t).object)}if(this.animations.length>0){i.animations=[];for(let e=0;e<this.animations.length;e++){const n=this.animations[e];i.animations.push(r(t.animations,n))}}if(e){const e=s(t.geometries),i=s(t.materials),r=s(t.textures),a=s(t.images),o=s(t.shapes),c=s(t.skeletons),l=s(t.animations),u=s(t.nodes);e.length>0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),c.length>0&&(n.skeletons=c),l.length>0&&(n.animations=l),u.length>0&&(n.nodes=u)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.animations=t.animations.slice(),this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let n=0;n<t.children.length;n++){const e=t.children[n];this.add(e.clone())}return this}}Object3D.DEFAULT_UP=new Vector3(0,1,0),Object3D.DEFAULT_MATRIX_AUTO_UPDATE=!0,Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=!0;const _v0$1=new Vector3,_v1$3=new Vector3,_v2$2=new Vector3,_v3$2=new Vector3,_vab=new Vector3,_vac=new Vector3,_vbc=new Vector3,_vap=new Vector3,_vbp=new Vector3,_vcp=new Vector3;class Triangle{constructor(t=new Vector3,e=new Vector3,n=new Vector3){this.a=t,this.b=e,this.c=n}static getNormal(t,e,n,i){i.subVectors(n,e),_v0$1.subVectors(t,e),i.cross(_v0$1);const r=i.lengthSq();return r>0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){_v0$1.subVectors(i,e),_v1$3.subVectors(n,e),_v2$2.subVectors(t,e);const s=_v0$1.dot(_v0$1),a=_v0$1.dot(_v1$3),o=_v0$1.dot(_v2$2),c=_v1$3.dot(_v1$3),l=_v1$3.dot(_v2$2),u=s*c-a*a;if(0===u)return r.set(0,0,0),null;const h=1/u,d=(c*o-a*l)*h,p=(s*l-a*o)*h;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return null!==this.getBarycoord(t,e,n,i,_v3$2)&&(_v3$2.x>=0&&_v3$2.y>=0&&_v3$2.x+_v3$2.y<=1)}static getInterpolation(t,e,n,i,r,s,a,o){return null===this.getBarycoord(t,e,n,i,_v3$2)?(o.x=0,o.y=0,"z"in o&&(o.z=0),"w"in o&&(o.w=0),null):(o.setScalar(0),o.addScaledVector(r,_v3$2.x),o.addScaledVector(s,_v3$2.y),o.addScaledVector(a,_v3$2.z),o)}static isFrontFacing(t,e,n,i){return _v0$1.subVectors(n,e),_v1$3.subVectors(t,e),_v0$1.cross(_v1$3).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return _v0$1.subVectors(this.c,this.b),_v1$3.subVectors(this.a,this.b),.5*_v0$1.cross(_v1$3).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Triangle.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Triangle.getBarycoord(t,this.a,this.b,this.c,e)}getInterpolation(t,e,n,i,r){return Triangle.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return Triangle.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Triangle.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;_vab.subVectors(i,n),_vac.subVectors(r,n),_vap.subVectors(t,n);const o=_vab.dot(_vap),c=_vac.dot(_vap);if(o<=0&&c<=0)return e.copy(n);_vbp.subVectors(t,i);const l=_vab.dot(_vbp),u=_vac.dot(_vbp);if(l>=0&&u<=l)return e.copy(i);const h=o*u-l*c;if(h<=0&&o>=0&&l<=0)return s=o/(o-l),e.copy(n).addScaledVector(_vab,s);_vcp.subVectors(t,r);const d=_vab.dot(_vcp),p=_vac.dot(_vcp);if(p>=0&&d<=p)return e.copy(r);const f=d*c-o*p;if(f<=0&&c>=0&&p<=0)return a=c/(c-p),e.copy(n).addScaledVector(_vac,a);const m=l*p-d*u;if(m<=0&&u-l>=0&&d-p>=0)return _vbc.subVectors(r,i),a=(u-l)/(u-l+(d-p)),e.copy(i).addScaledVector(_vbc,a);const g=1/(m+f+h);return s=f*g,a=h*g,e.copy(n).addScaledVector(_vab,s).addScaledVector(_vac,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}const _colorKeywords={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},_hslA={h:0,s:0,l:0},_hslB={h:0,s:0,l:0};function hue2rgb(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}class Color{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,e,n)}set(t,e,n){if(void 0===e&&void 0===n){const e=t;e&&e.isColor?this.copy(e):"number"==typeof e?this.setHex(e):"string"==typeof e&&this.setStyle(e)}else this.setRGB(t,e,n);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=SRGBColorSpace){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,ColorManagement.toWorkingColorSpace(this,e),this}setRGB(t,e,n,i=ColorManagement.workingColorSpace){return this.r=t,this.g=e,this.b=n,ColorManagement.toWorkingColorSpace(this,i),this}setHSL(t,e,n,i=ColorManagement.workingColorSpace){if(t=euclideanModulo(t,1),e=clamp$1(e,0,1),n=clamp$1(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=hue2rgb(r,i,t+1/3),this.g=hue2rgb(r,i,t),this.b=hue2rgb(r,i,t-1/3)}return ColorManagement.toWorkingColorSpace(this,i),this}setStyle(t,e=SRGBColorSpace){function n(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let i;if(i=/^(\w+)\(([^\)]*)\)/.exec(t)){let r;const s=i[1],a=i[2];switch(s){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,e);if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,e);break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(i=/^\#([A-Fa-f\d]+)$/.exec(t)){const n=i[1],r=n.length;if(3===r)return this.setRGB(parseInt(n.charAt(0),16)/15,parseInt(n.charAt(1),16)/15,parseInt(n.charAt(2),16)/15,e);if(6===r)return this.setHex(parseInt(n,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=SRGBColorSpace){const n=_colorKeywords[t.toLowerCase()];return void 0!==n?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=SRGBToLinear(t.r),this.g=SRGBToLinear(t.g),this.b=SRGBToLinear(t.b),this}copyLinearToSRGB(t){return this.r=LinearToSRGB(t.r),this.g=LinearToSRGB(t.g),this.b=LinearToSRGB(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=SRGBColorSpace){return ColorManagement.fromWorkingColorSpace(_color.copy(this),t),65536*Math.round(clamp$1(255*_color.r,0,255))+256*Math.round(clamp$1(255*_color.g,0,255))+Math.round(clamp$1(255*_color.b,0,255))}getHexString(t=SRGBColorSpace){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=ColorManagement.workingColorSpace){ColorManagement.fromWorkingColorSpace(_color.copy(this),e);const n=_color.r,i=_color.g,r=_color.b,s=Math.max(n,i,r),a=Math.min(n,i,r);let o,c;const l=(a+s)/2;if(a===s)o=0,c=0;else{const t=s-a;switch(c=l<=.5?t/(s+a):t/(2-s-a),s){case n:o=(i-r)/t+(i<r?6:0);break;case i:o=(r-n)/t+2;break;case r:o=(n-i)/t+4}o/=6}return t.h=o,t.s=c,t.l=l,t}getRGB(t,e=ColorManagement.workingColorSpace){return ColorManagement.fromWorkingColorSpace(_color.copy(this),e),t.r=_color.r,t.g=_color.g,t.b=_color.b,t}getStyle(t=SRGBColorSpace){ColorManagement.fromWorkingColorSpace(_color.copy(this),t);const e=_color.r,n=_color.g,i=_color.b;return t!==SRGBColorSpace?`color(${t} ${e.toFixed(3)} ${n.toFixed(3)} ${i.toFixed(3)})`:`rgb(${Math.round(255*e)},${Math.round(255*n)},${Math.round(255*i)})`}offsetHSL(t,e,n){return this.getHSL(_hslA),this.setHSL(_hslA.h+t,_hslA.s+e,_hslA.l+n)}add(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this}addColors(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this}addScalar(t){return this.r+=t,this.g+=t,this.b+=t,this}sub(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this}multiply(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this}multiplyScalar(t){return this.r*=t,this.g*=t,this.b*=t,this}lerp(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this}lerpColors(t,e,n){return this.r=t.r+(e.r-t.r)*n,this.g=t.g+(e.g-t.g)*n,this.b=t.b+(e.b-t.b)*n,this}lerpHSL(t,e){this.getHSL(_hslA),t.getHSL(_hslB);const n=lerp(_hslA.h,_hslB.h,e),i=lerp(_hslA.s,_hslB.s,e),r=lerp(_hslA.l,_hslB.l,e);return this.setHSL(n,i,r),this}setFromVector3(t){return this.r=t.x,this.g=t.y,this.b=t.z,this}applyMatrix3(t){const e=this.r,n=this.g,i=this.b,r=t.elements;return this.r=r[0]*e+r[3]*n+r[6]*i,this.g=r[1]*e+r[4]*n+r[7]*i,this.b=r[2]*e+r[5]*n+r[8]*i,this}equals(t){return t.r===this.r&&t.g===this.g&&t.b===this.b}fromArray(t,e=0){return this.r=t[e],this.g=t[e+1],this.b=t[e+2],this}toArray(t=[],e=0){return t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t}fromBufferAttribute(t,e){return this.r=t.getX(e),this.g=t.getY(e),this.b=t.getZ(e),this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r,yield this.g,yield this.b}}const _color=new Color;Color.NAMES=_colorKeywords;let _materialId=0;class Material extends EventDispatcher{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:_materialId++}),this.uuid=generateUUID(),this.name="",this.type="Material",this.blending=NormalBlending,this.side=FrontSide,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=SrcAlphaFactor,this.blendDst=OneMinusSrcAlphaFactor,this.blendEquation=AddEquation,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.blendColor=new Color(0,0,0),this.blendAlpha=0,this.depthFunc=LessEqualDepth,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=AlwaysStencilFunc,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=KeepStencilOp,this.stencilZFail=KeepStencilOp,this.stencilZPass=KeepStencilOp,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`)}}toJSON(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),void 0!==this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.dispersion&&(n.dispersion=this.dispersion),void 0!==this.iridescence&&(n.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(n.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),void 0!==this.anisotropy&&(n.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapRotation&&(n.envMapRotation=this.envMapRotation.toArray()),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==NormalBlending&&(n.blending=this.blending),this.side!==FrontSide&&(n.side=this.side),!0===this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=!0),this.blendSrc!==SrcAlphaFactor&&(n.blendSrc=this.blendSrc),this.blendDst!==OneMinusSrcAlphaFactor&&(n.blendDst=this.blendDst),this.blendEquation!==AddEquation&&(n.blendEquation=this.blendEquation),null!==this.blendSrcAlpha&&(n.blendSrcAlpha=this.blendSrcAlpha),null!==this.blendDstAlpha&&(n.blendDstAlpha=this.blendDstAlpha),null!==this.blendEquationAlpha&&(n.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex()),0!==this.blendAlpha&&(n.blendAlpha=this.blendAlpha),this.depthFunc!==LessEqualDepth&&(n.depthFunc=this.depthFunc),!1===this.depthTest&&(n.depthTest=this.depthTest),!1===this.depthWrite&&(n.depthWrite=this.depthWrite),!1===this.colorWrite&&(n.colorWrite=this.colorWrite),255!==this.stencilWriteMask&&(n.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==AlwaysStencilFunc&&(n.stencilFunc=this.stencilFunc),0!==this.stencilRef&&(n.stencilRef=this.stencilRef),255!==this.stencilFuncMask&&(n.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==KeepStencilOp&&(n.stencilFail=this.stencilFail),this.stencilZFail!==KeepStencilOp&&(n.stencilZFail=this.stencilZFail),this.stencilZPass!==KeepStencilOp&&(n.stencilZPass=this.stencilZPass),!0===this.stencilWrite&&(n.stencilWrite=this.stencilWrite),void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaHash&&(n.alphaHash=!0),!0===this.alphaToCoverage&&(n.alphaToCoverage=!0),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=!0),!0===this.forceSinglePass&&(n.forceSinglePass=!0),!0===this.wireframe&&(n.wireframe=!0),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=!0),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.blendColor.copy(t.blendColor),this.blendAlpha=t.blendAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaHash=t.alphaHash,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}onBuild(){console.warn("Material: onBuild() has been removed.")}onBeforeRender(){console.warn("Material: onBeforeRender() has been removed.")}}class MeshBasicMaterial extends Material{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Color(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}const _tables=_generateTables();function _generateTables(){const t=new ArrayBuffer(4),e=new Float32Array(t),n=new Uint32Array(t),i=new Uint32Array(512),r=new Uint32Array(512);for(let c=0;c<256;++c){const t=c-127;t<-27?(i[c]=0,i[256|c]=32768,r[c]=24,r[256|c]=24):t<-14?(i[c]=1024>>-t-14,i[256|c]=1024>>-t-14|32768,r[c]=-t-1,r[256|c]=-t-1):t<=15?(i[c]=t+15<<10,i[256|c]=t+15<<10|32768,r[c]=13,r[256|c]=13):t<128?(i[c]=31744,i[256|c]=64512,r[c]=24,r[256|c]=24):(i[c]=31744,i[256|c]=64512,r[c]=13,r[256|c]=13)}const s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let c=1;c<1024;++c){let t=c<<13,e=0;for(;!(8388608&t);)t<<=1,e-=8388608;t&=-8388609,e+=947912704,s[c]=t|e}for(let c=1024;c<2048;++c)s[c]=939524096+(c-1024<<13);for(let c=1;c<31;++c)a[c]=c<<23;a[31]=1199570944,a[32]=2147483648;for(let c=33;c<63;++c)a[c]=2147483648+(c-32<<23);a[63]=3347054592;for(let c=1;c<64;++c)32!==c&&(o[c]=1024);return{floatView:e,uint32View:n,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:a,offsetTable:o}}function toHalfFloat(t){Math.abs(t)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),t=clamp$1(t,-65504,65504),_tables.floatView[0]=t;const e=_tables.uint32View[0],n=e>>23&511;return _tables.baseTable[n]+((8388607&e)>>_tables.shiftTable[n])}function fromHalfFloat(t){const e=t>>10;return _tables.uint32View[0]=_tables.mantissaTable[_tables.offsetTable[e]+(1023&t)]+_tables.exponentTable[e],_tables.floatView[0]}const DataUtils={toHalfFloat,fromHalfFloat},_vector$9=new Vector3,_vector2$1=new Vector2;class BufferAttribute{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=n,this.usage=StaticDrawUsage,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=FloatType,this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}get updateRange(){return warnOnce("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this.gpuType=t.gpuType,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i<r;i++)this.array[t+i]=e.array[n+i];return this}copyArray(t){return this.array.set(t),this}applyMatrix3(t){if(2===this.itemSize)for(let e=0,n=this.count;e<n;e++)_vector2$1.fromBufferAttribute(this,e),_vector2$1.applyMatrix3(t),this.setXY(e,_vector2$1.x,_vector2$1.y);else if(3===this.itemSize)for(let e=0,n=this.count;e<n;e++)_vector$9.fromBufferAttribute(this,e),_vector$9.applyMatrix3(t),this.setXYZ(e,_vector$9.x,_vector$9.y,_vector$9.z);return this}applyMatrix4(t){for(let e=0,n=this.count;e<n;e++)_vector$9.fromBufferAttribute(this,e),_vector$9.applyMatrix4(t),this.setXYZ(e,_vector$9.x,_vector$9.y,_vector$9.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)_vector$9.fromBufferAttribute(this,e),_vector$9.applyNormalMatrix(t),this.setXYZ(e,_vector$9.x,_vector$9.y,_vector$9.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)_vector$9.fromBufferAttribute(this,e),_vector$9.transformDirection(t),this.setXYZ(e,_vector$9.x,_vector$9.y,_vector$9.z);return this}set(t,e=0){return this.array.set(t,e),this}getComponent(t,e){let n=this.array[t*this.itemSize+e];return this.normalized&&(n=denormalize(n,this.array)),n}setComponent(t,e,n){return this.normalized&&(n=normalize(n,this.array)),this.array[t*this.itemSize+e]=n,this}getX(t){let e=this.array[t*this.itemSize];return this.normalized&&(e=denormalize(e,this.array)),e}setX(t,e){return this.normalized&&(e=normalize(e,this.array)),this.array[t*this.itemSize]=e,this}getY(t){let e=this.array[t*this.itemSize+1];return this.normalized&&(e=denormalize(e,this.array)),e}setY(t,e){return this.normalized&&(e=normalize(e,this.array)),this.array[t*this.itemSize+1]=e,this}getZ(t){let e=this.array[t*this.itemSize+2];return this.normalized&&(e=denormalize(e,this.array)),e}setZ(t,e){return this.normalized&&(e=normalize(e,this.array)),this.array[t*this.itemSize+2]=e,this}getW(t){let e=this.array[t*this.itemSize+3];return this.normalized&&(e=denormalize(e,this.array)),e}setW(t,e){return this.normalized&&(e=normalize(e,this.array)),this.array[t*this.itemSize+3]=e,this}setXY(t,e,n){return t*=this.itemSize,this.normalized&&(e=normalize(e,this.array),n=normalize(n,this.array)),this.array[t+0]=e,this.array[t+1]=n,this}setXYZ(t,e,n,i){return t*=this.itemSize,this.normalized&&(e=normalize(e,this.array),n=normalize(n,this.array),i=normalize(i,this.array)),this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=i,this}setXYZW(t,e,n,i,r){return t*=this.itemSize,this.normalized&&(e=normalize(e,this.array),n=normalize(n,this.array),i=normalize(i,this.array),r=normalize(r,this.array)),this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=i,this.array[t+3]=r,this}onUpload(t){return this.onUploadCallback=t,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const t={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.from(this.array),normalized:this.normalized};return""!==this.name&&(t.name=this.name),this.usage!==StaticDrawUsage&&(t.usage=this.usage),t}}class Int8BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Int8Array(t),e,n)}}class Uint8BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint8Array(t),e,n)}}class Uint8ClampedBufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint8ClampedArray(t),e,n)}}class Int16BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Int16Array(t),e,n)}}class Uint16BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint16Array(t),e,n)}}class Int32BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Int32Array(t),e,n)}}class Uint32BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint32Array(t),e,n)}}class Float16BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint16Array(t),e,n),this.isFloat16BufferAttribute=!0}getX(t){let e=fromHalfFloat(this.array[t*this.itemSize]);return this.normalized&&(e=denormalize(e,this.array)),e}setX(t,e){return this.normalized&&(e=normalize(e,this.array)),this.array[t*this.itemSize]=toHalfFloat(e),this}getY(t){let e=fromHalfFloat(this.array[t*this.itemSize+1]);return this.normalized&&(e=denormalize(e,this.array)),e}setY(t,e){return this.normalized&&(e=normalize(e,this.array)),this.array[t*this.itemSize+1]=toHalfFloat(e),this}getZ(t){let e=fromHalfFloat(this.array[t*this.itemSize+2]);return this.normalized&&(e=denormalize(e,this.array)),e}setZ(t,e){return this.normalized&&(e=normalize(e,this.array)),this.array[t*this.itemSize+2]=toHalfFloat(e),this}getW(t){let e=fromHalfFloat(this.array[t*this.itemSize+3]);return this.normalized&&(e=denormalize(e,this.array)),e}setW(t,e){return this.normalized&&(e=normalize(e,this.array)),this.array[t*this.itemSize+3]=toHalfFloat(e),this}setXY(t,e,n){return t*=this.itemSize,this.normalized&&(e=normalize(e,this.array),n=normalize(n,this.array)),this.array[t+0]=toHalfFloat(e),this.array[t+1]=toHalfFloat(n),this}setXYZ(t,e,n,i){return t*=this.itemSize,this.normalized&&(e=normalize(e,this.array),n=normalize(n,this.array),i=normalize(i,this.array)),this.array[t+0]=toHalfFloat(e),this.array[t+1]=toHalfFloat(n),this.array[t+2]=toHalfFloat(i),this}setXYZW(t,e,n,i,r){return t*=this.itemSize,this.normalized&&(e=normalize(e,this.array),n=normalize(n,this.array),i=normalize(i,this.array),r=normalize(r,this.array)),this.array[t+0]=toHalfFloat(e),this.array[t+1]=toHalfFloat(n),this.array[t+2]=toHalfFloat(i),this.array[t+3]=toHalfFloat(r),this}}class Float32BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Float32Array(t),e,n)}}let _id$2=0;const _m1$2=new Matrix4,_obj=new Object3D,_offset=new Vector3,_box$2=new Box3,_boxMorphTargets=new Box3,_vector$8=new Vector3;class BufferGeometry extends EventDispatcher{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:_id$2++}),this.uuid=generateUUID(),this.name="",this.type="BufferGeometry",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(t){return Array.isArray(t)?this.index=new(arrayNeedsUint32(t)?Uint32BufferAttribute:Uint16BufferAttribute)(t,1):this.index=t,this}getAttribute(t){return this.attributes[t]}setAttribute(t,e){return this.attributes[t]=e,this}deleteAttribute(t){return delete this.attributes[t],this}hasAttribute(t){return void 0!==this.attributes[t]}addGroup(t,e,n=0){this.groups.push({start:t,count:e,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(t,e){this.drawRange.start=t,this.drawRange.count=e}applyMatrix4(t){const e=this.attributes.position;void 0!==e&&(e.applyMatrix4(t),e.needsUpdate=!0);const n=this.attributes.normal;if(void 0!==n){const e=(new Matrix3).getNormalMatrix(t);n.applyNormalMatrix(e),n.needsUpdate=!0}const i=this.attributes.tangent;return void 0!==i&&(i.transformDirection(t),i.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}applyQuaternion(t){return _m1$2.makeRotationFromQuaternion(t),this.applyMatrix4(_m1$2),this}rotateX(t){return _m1$2.makeRotationX(t),this.applyMatrix4(_m1$2),this}rotateY(t){return _m1$2.makeRotationY(t),this.applyMatrix4(_m1$2),this}rotateZ(t){return _m1$2.makeRotationZ(t),this.applyMatrix4(_m1$2),this}translate(t,e,n){return _m1$2.makeTranslation(t,e,n),this.applyMatrix4(_m1$2),this}scale(t,e,n){return _m1$2.makeScale(t,e,n),this.applyMatrix4(_m1$2),this}lookAt(t){return _obj.lookAt(t),_obj.updateMatrix(),this.applyMatrix4(_obj.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(_offset).negate(),this.translate(_offset.x,_offset.y,_offset.z),this}setFromPoints(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n];e.push(i.x,i.y,i.z||0)}return this.setAttribute("position",new Float32BufferAttribute(e,3)),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new Box3);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error("THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),void this.boundingBox.set(new Vector3(-1/0,-1/0,-1/0),new Vector3(1/0,1/0,1/0));if(void 0!==t){if(this.boundingBox.setFromBufferAttribute(t),e)for(let n=0,i=e.length;n<i;n++){const t=e[n];_box$2.setFromBufferAttribute(t),this.morphTargetsRelative?(_vector$8.addVectors(this.boundingBox.min,_box$2.min),this.boundingBox.expandByPoint(_vector$8),_vector$8.addVectors(this.boundingBox.max,_box$2.max),this.boundingBox.expandByPoint(_vector$8)):(this.boundingBox.expandByPoint(_box$2.min),this.boundingBox.expandByPoint(_box$2.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new Sphere);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error("THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.",this),void this.boundingSphere.set(new Vector3,1/0);if(t){const n=this.boundingSphere.center;if(_box$2.setFromBufferAttribute(t),e)for(let t=0,r=e.length;t<r;t++){const n=e[t];_boxMorphTargets.setFromBufferAttribute(n),this.morphTargetsRelative?(_vector$8.addVectors(_box$2.min,_boxMorphTargets.min),_box$2.expandByPoint(_vector$8),_vector$8.addVectors(_box$2.max,_boxMorphTargets.max),_box$2.expandByPoint(_vector$8)):(_box$2.expandByPoint(_boxMorphTargets.min),_box$2.expandByPoint(_boxMorphTargets.max))}_box$2.getCenter(n);let i=0;for(let e=0,r=t.count;e<r;e++)_vector$8.fromBufferAttribute(t,e),i=Math.max(i,n.distanceToSquared(_vector$8));if(e)for(let r=0,s=e.length;r<s;r++){const s=e[r],a=this.morphTargetsRelative;for(let e=0,r=s.count;e<r;e++)_vector$8.fromBufferAttribute(s,e),a&&(_offset.fromBufferAttribute(t,e),_vector$8.add(_offset)),i=Math.max(i,n.distanceToSquared(_vector$8))}this.boundingSphere.radius=Math.sqrt(i),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}}computeTangents(){const t=this.index,e=this.attributes;if(null===t||void 0===e.position||void 0===e.normal||void 0===e.uv)return void console.error("THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");const n=e.position,i=e.normal,r=e.uv;!1===this.hasAttribute("tangent")&&this.setAttribute("tangent",new BufferAttribute(new Float32Array(4*n.count),4));const s=this.getAttribute("tangent"),a=[],o=[];for(let T=0;T<n.count;T++)a[T]=new Vector3,o[T]=new Vector3;const c=new Vector3,l=new Vector3,u=new Vector3,h=new Vector2,d=new Vector2,p=new Vector2,f=new Vector3,m=new Vector3;function g(t,e,i){c.fromBufferAttribute(n,t),l.fromBufferAttribute(n,e),u.fromBufferAttribute(n,i),h.fromBufferAttribute(r,t),d.fromBufferAttribute(r,e),p.fromBufferAttribute(r,i),l.sub(c),u.sub(c),d.sub(h),p.sub(h);const s=1/(d.x*p.y-p.x*d.y);isFinite(s)&&(f.copy(l).multiplyScalar(p.y).addScaledVector(u,-d.y).multiplyScalar(s),m.copy(u).multiplyScalar(d.x).addScaledVector(l,-p.x).multiplyScalar(s),a[t].add(f),a[e].add(f),a[i].add(f),o[t].add(m),o[e].add(m),o[i].add(m))}let A=this.groups;0===A.length&&(A=[{start:0,count:t.count}]);for(let T=0,I=A.length;T<I;++T){const e=A[T],n=e.start;for(let i=n,r=n+e.count;i<r;i+=3)g(t.getX(i+0),t.getX(i+1),t.getX(i+2))}const y=new Vector3,v=new Vector3,S=new Vector3,x=new Vector3;function b(t){S.fromBufferAttribute(i,t),x.copy(S);const e=a[t];y.copy(e),y.sub(S.multiplyScalar(S.dot(e))).normalize(),v.crossVectors(x,e);const n=v.dot(o[t])<0?-1:1;s.setXYZW(t,y.x,y.y,y.z,n)}for(let T=0,I=A.length;T<I;++T){const e=A[T],n=e.start;for(let i=n,r=n+e.count;i<r;i+=3)b(t.getX(i+0)),b(t.getX(i+1)),b(t.getX(i+2))}}computeVertexNormals(){const t=this.index,e=this.getAttribute("position");if(void 0!==e){let n=this.getAttribute("normal");if(void 0===n)n=new BufferAttribute(new Float32Array(3*e.count),3),this.setAttribute("normal",n);else for(let t=0,e=n.count;t<e;t++)n.setXYZ(t,0,0,0);const i=new Vector3,r=new Vector3,s=new Vector3,a=new Vector3,o=new Vector3,c=new Vector3,l=new Vector3,u=new Vector3;if(t)for(let h=0,d=t.count;h<d;h+=3){const d=t.getX(h+0),p=t.getX(h+1),f=t.getX(h+2);i.fromBufferAttribute(e,d),r.fromBufferAttribute(e,p),s.fromBufferAttribute(e,f),l.subVectors(s,r),u.subVectors(i,r),l.cross(u),a.fromBufferAttribute(n,d),o.fromBufferAttribute(n,p),c.fromBufferAttribute(n,f),a.add(l),o.add(l),c.add(l),n.setXYZ(d,a.x,a.y,a.z),n.setXYZ(p,o.x,o.y,o.z),n.setXYZ(f,c.x,c.y,c.z)}else for(let t=0,h=e.count;t<h;t+=3)i.fromBufferAttribute(e,t+0),r.fromBufferAttribute(e,t+1),s.fromBufferAttribute(e,t+2),l.subVectors(s,r),u.subVectors(i,r),l.cross(u),n.setXYZ(t+0,l.x,l.y,l.z),n.setXYZ(t+1,l.x,l.y,l.z),n.setXYZ(t+2,l.x,l.y,l.z);this.normalizeNormals(),n.needsUpdate=!0}}normalizeNormals(){const t=this.attributes.normal;for(let e=0,n=t.count;e<n;e++)_vector$8.fromBufferAttribute(t,e),_vector$8.normalize(),t.setXYZ(e,_vector$8.x,_vector$8.y,_vector$8.z)}toNonIndexed(){function t(t,e){const n=t.array,i=t.itemSize,r=t.normalized,s=new n.constructor(e.length*i);let a=0,o=0;for(let c=0,l=e.length;c<l;c++){a=t.isInterleavedBufferAttribute?e[c]*t.data.stride+t.offset:e[c]*i;for(let t=0;t<i;t++)s[o++]=n[a++]}return new BufferAttribute(s,i,r)}if(null===this.index)return console.warn("THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;const e=new BufferGeometry,n=this.index.array,i=this.attributes;for(const a in i){const r=t(i[a],n);e.setAttribute(a,r)}const r=this.morphAttributes;for(const a in r){const i=[],s=r[a];for(let e=0,r=s.length;e<r;e++){const r=t(s[e],n);i.push(r)}e.morphAttributes[a]=i}e.morphTargetsRelative=this.morphTargetsRelative;const s=this.groups;for(let a=0,o=s.length;a<o;a++){const t=s[a];e.addGroup(t.start,t.count,t.materialIndex)}return e}toJSON(){const t={metadata:{version:4.6,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,""!==this.name&&(t.name=this.name),Object.keys(this.userData).length>0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const o in n){const e=n[o];t.data.attributes[o]=e.toJSON(t.data)}const i={};let r=!1;for(const o in this.morphAttributes){const e=this.morphAttributes[o],n=[];for(let i=0,r=e.length;i<r;i++){const r=e[i];n.push(r.toJSON(t.data))}n.length>0&&(i[o]=n,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const c in i){const t=i[c];this.setAttribute(c,t.clone(e))}const r=t.morphAttributes;for(const c in r){const t=[],n=r[c];for(let i=0,r=n.length;i<r;i++)t.push(n[i].clone(e));this.morphAttributes[c]=t}this.morphTargetsRelative=t.morphTargetsRelative;const s=t.groups;for(let c=0,l=s.length;c<l;c++){const t=s[c];this.addGroup(t.start,t.count,t.materialIndex)}const a=t.boundingBox;null!==a&&(this.boundingBox=a.clone());const o=t.boundingSphere;return null!==o&&(this.boundingSphere=o.clone()),this.drawRange.start=t.drawRange.start,this.drawRange.count=t.drawRange.count,this.userData=t.userData,this}dispose(){this.dispatchEvent({type:"dispose"})}}const _inverseMatrix$3=new Matrix4,_ray$3=new Ray,_sphere$6=new Sphere,_sphereHitAt=new Vector3,_vA$1=new Vector3,_vB$1=new Vector3,_vC$1=new Vector3,_tempA=new Vector3,_morphA=new Vector3,_uvA$1=new Vector2,_uvB$1=new Vector2,_uvC$1=new Vector2,_normalA=new Vector3,_normalB=new Vector3,_normalC=new Vector3,_intersectionPoint=new Vector3,_intersectionPointWorld=new Vector3;class Mesh extends Object3D{constructor(t=new BufferGeometry,e=new MeshBasicMaterial){super(),this.isMesh=!0,this.type="Mesh",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t,e){return super.copy(t,e),void 0!==t.morphTargetInfluences&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),void 0!==t.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}updateMorphTargets(){const t=this.geometry.morphAttributes,e=Object.keys(t);if(e.length>0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t<e;t++){const e=n[t].name||String(t);this.morphTargetInfluences.push(0),this.morphTargetDictionary[e]=t}}}}getVertexPosition(t,e){const n=this.geometry,i=n.attributes.position,r=n.morphAttributes.position,s=n.morphTargetsRelative;e.fromBufferAttribute(i,t);const a=this.morphTargetInfluences;if(r&&a){_morphA.set(0,0,0);for(let n=0,i=r.length;n<i;n++){const i=a[n],o=r[n];0!==i&&(_tempA.fromBufferAttribute(o,t),s?_morphA.addScaledVector(_tempA,i):_morphA.addScaledVector(_tempA.sub(e),i))}e.add(_morphA)}return e}raycast(t,e){const n=this.geometry,i=this.material,r=this.matrixWorld;if(void 0!==i){if(null===n.boundingSphere&&n.computeBoundingSphere(),_sphere$6.copy(n.boundingSphere),_sphere$6.applyMatrix4(r),_ray$3.copy(t.ray).recast(t.near),!1===_sphere$6.containsPoint(_ray$3.origin)){if(null===_ray$3.intersectSphere(_sphere$6,_sphereHitAt))return;if(_ray$3.origin.distanceToSquared(_sphereHitAt)>(t.far-t.near)**2)return}_inverseMatrix$3.copy(r).invert(),_ray$3.copy(t.ray).applyMatrix4(_inverseMatrix$3),null!==n.boundingBox&&!1===_ray$3.intersectsBox(n.boundingBox)||this._computeIntersections(t,e,_ray$3)}}_computeIntersections(t,e,n){let i;const r=this.geometry,s=this.material,a=r.index,o=r.attributes.position,c=r.attributes.uv,l=r.attributes.uv1,u=r.attributes.normal,h=r.groups,d=r.drawRange;if(null!==a)if(Array.isArray(s))for(let p=0,f=h.length;p<f;p++){const r=h[p],o=s[r.materialIndex];for(let s=Math.max(r.start,d.start),h=Math.min(a.count,Math.min(r.start+r.count,d.start+d.count));s<h;s+=3){i=checkGeometryIntersection(this,o,t,n,c,l,u,a.getX(s),a.getX(s+1),a.getX(s+2)),i&&(i.faceIndex=Math.floor(s/3),i.face.materialIndex=r.materialIndex,e.push(i))}}else{for(let r=Math.max(0,d.start),o=Math.min(a.count,d.start+d.count);r<o;r+=3){i=checkGeometryIntersection(this,s,t,n,c,l,u,a.getX(r),a.getX(r+1),a.getX(r+2)),i&&(i.faceIndex=Math.floor(r/3),e.push(i))}}else if(void 0!==o)if(Array.isArray(s))for(let p=0,f=h.length;p<f;p++){const r=h[p],a=s[r.materialIndex];for(let s=Math.max(r.start,d.start),h=Math.min(o.count,Math.min(r.start+r.count,d.start+d.count));s<h;s+=3){i=checkGeometryIntersection(this,a,t,n,c,l,u,s,s+1,s+2),i&&(i.faceIndex=Math.floor(s/3),i.face.materialIndex=r.materialIndex,e.push(i))}}else{for(let r=Math.max(0,d.start),a=Math.min(o.count,d.start+d.count);r<a;r+=3){i=checkGeometryIntersection(this,s,t,n,c,l,u,r,r+1,r+2),i&&(i.faceIndex=Math.floor(r/3),e.push(i))}}}}function checkIntersection$1(t,e,n,i,r,s,a,o){let c;if(c=e.side===BackSide?i.intersectTriangle(a,s,r,!0,o):i.intersectTriangle(r,s,a,e.side===FrontSide,o),null===c)return null;_intersectionPointWorld.copy(o),_intersectionPointWorld.applyMatrix4(t.matrixWorld);const l=n.ray.origin.distanceTo(_intersectionPointWorld);return l<n.near||l>n.far?null:{distance:l,point:_intersectionPointWorld.clone(),object:t}}function checkGeometryIntersection(t,e,n,i,r,s,a,o,c,l){t.getVertexPosition(o,_vA$1),t.getVertexPosition(c,_vB$1),t.getVertexPosition(l,_vC$1);const u=checkIntersection$1(t,e,n,i,_vA$1,_vB$1,_vC$1,_intersectionPoint);if(u){r&&(_uvA$1.fromBufferAttribute(r,o),_uvB$1.fromBufferAttribute(r,c),_uvC$1.fromBufferAttribute(r,l),u.uv=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_uvA$1,_uvB$1,_uvC$1,new Vector2)),s&&(_uvA$1.fromBufferAttribute(s,o),_uvB$1.fromBufferAttribute(s,c),_uvC$1.fromBufferAttribute(s,l),u.uv1=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_uvA$1,_uvB$1,_uvC$1,new Vector2)),a&&(_normalA.fromBufferAttribute(a,o),_normalB.fromBufferAttribute(a,c),_normalC.fromBufferAttribute(a,l),u.normal=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_normalA,_normalB,_normalC,new Vector3),u.normal.dot(i.direction)>0&&u.normal.multiplyScalar(-1));const t={a:o,b:c,c:l,normal:new Vector3,materialIndex:0};Triangle.getNormal(_vA$1,_vB$1,_vC$1,t.normal),u.face=t}return u}class BoxGeometry extends BufferGeometry{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],c=[],l=[],u=[];let h=0,d=0;function p(t,e,n,i,r,s,p,f,m,g,A){const y=s/m,v=p/g,S=s/2,x=p/2,b=f/2,T=m+1,I=g+1;let M=0,E=0;const w=new Vector3;for(let a=0;a<I;a++){const s=a*v-x;for(let o=0;o<T;o++){const h=o*y-S;w[t]=h*i,w[e]=s*r,w[n]=b,c.push(w.x,w.y,w.z),w[t]=0,w[e]=0,w[n]=f>0?1:-1,l.push(w.x,w.y,w.z),u.push(o/m),u.push(1-a/g),M+=1}}for(let a=0;a<g;a++)for(let t=0;t<m;t++){const e=h+t+T*a,n=h+t+T*(a+1),i=h+(t+1)+T*(a+1),r=h+(t+1)+T*a;o.push(e,n,r),o.push(n,i,r),E+=6}a.addGroup(d,E,A),d+=E,h+=M}p("z","y","x",-1,-1,n,e,t,s,r,0),p("z","y","x",1,-1,n,e,-t,s,r,1),p("x","z","y",1,1,t,n,e,i,s,2),p("x","z","y",1,-1,t,n,-e,i,s,3),p("x","y","z",1,-1,t,e,n,i,r,4),p("x","y","z",-1,-1,t,e,-n,i,r,5),this.setIndex(o),this.setAttribute("position",new Float32BufferAttribute(c,3)),this.setAttribute("normal",new Float32BufferAttribute(l,3)),this.setAttribute("uv",new Float32BufferAttribute(u,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new BoxGeometry(t.width,t.height,t.depth,t.widthSegments,t.heightSegments,t.depthSegments)}}function cloneUniforms(t){const e={};for(const n in t){e[n]={};for(const i in t[n]){const r=t[n][i];r&&(r.isColor||r.isMatrix3||r.isMatrix4||r.isVector2||r.isVector3||r.isVector4||r.isTexture||r.isQuaternion)?r.isRenderTargetTexture?(console.warn("UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms()."),e[n][i]=null):e[n][i]=r.clone():Array.isArray(r)?e[n][i]=r.slice():e[n][i]=r}}return e}function mergeUniforms(t){const e={};for(let n=0;n<t.length;n++){const i=cloneUniforms(t[n]);for(const t in i)e[t]=i[t]}return e}function cloneUniformsGroups(t){const e=[];for(let n=0;n<t.length;n++)e.push(t[n].clone());return e}function getUnlitUniformColorSpace(t){const e=t.getRenderTarget();return null===e?t.outputColorSpace:!0===e.isXRRenderTarget?e.texture.colorSpace:ColorManagement.workingColorSpace}const UniformsUtils={clone:cloneUniforms,merge:mergeUniforms};var default_vertex="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",default_fragment="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}";class ShaderMaterial extends Material{constructor(t){super(),this.isShaderMaterial=!0,this.type="ShaderMaterial",this.defines={},this.uniforms={},this.uniformsGroups=[],this.vertexShader=default_vertex,this.fragmentShader=default_fragment,this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.forceSinglePass=!0,this.extensions={clipCullDistance:!1,multiDraw:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv1:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,void 0!==t&&this.setValues(t)}copy(t){return super.copy(t),this.fragmentShader=t.fragmentShader,this.vertexShader=t.vertexShader,this.uniforms=cloneUniforms(t.uniforms),this.uniformsGroups=cloneUniformsGroups(t.uniformsGroups),this.defines=Object.assign({},t.defines),this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.fog=t.fog,this.lights=t.lights,this.clipping=t.clipping,this.extensions=Object.assign({},t.extensions),this.glslVersion=t.glslVersion,this}toJSON(t){const e=super.toJSON(t);e.glslVersion=this.glslVersion,e.uniforms={};for(const i in this.uniforms){const n=this.uniforms[i].value;n&&n.isTexture?e.uniforms[i]={type:"t",value:n.toJSON(t).uuid}:n&&n.isColor?e.uniforms[i]={type:"c",value:n.getHex()}:n&&n.isVector2?e.uniforms[i]={type:"v2",value:n.toArray()}:n&&n.isVector3?e.uniforms[i]={type:"v3",value:n.toArray()}:n&&n.isVector4?e.uniforms[i]={type:"v4",value:n.toArray()}:n&&n.isMatrix3?e.uniforms[i]={type:"m3",value:n.toArray()}:n&&n.isMatrix4?e.uniforms[i]={type:"m4",value:n.toArray()}:e.uniforms[i]={value:n}}Object.keys(this.defines).length>0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.lights=this.lights,e.clipping=this.clipping;const n={};for(const i in this.extensions)!0===this.extensions[i]&&(n[i]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}class Camera extends Object3D{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Matrix4,this.projectionMatrix=new Matrix4,this.projectionMatrixInverse=new Matrix4,this.coordinateSystem=WebGLCoordinateSystem}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this.coordinateSystem=t.coordinateSystem,this}getWorldDirection(t){return super.getWorldDirection(t).negate()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}const _v3$1=new Vector3,_minTarget=new Vector2,_maxTarget=new Vector2;class PerspectiveCamera extends Camera{constructor(t=50,e=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*RAD2DEG$1*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*DEG2RAD$1*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*RAD2DEG$1*Math.atan(Math.tan(.5*DEG2RAD$1*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(t,e,n){_v3$1.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),e.set(_v3$1.x,_v3$1.y).multiplyScalar(-t/_v3$1.z),_v3$1.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(_v3$1.x,_v3$1.y).multiplyScalar(-t/_v3$1.z)}getViewSize(t,e){return this.getViewBounds(t,_minTarget,_maxTarget),e.subVectors(_maxTarget,_minTarget)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,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=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*DEG2RAD$1*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}const fov=-90,aspect=1;class CubeCamera extends Object3D{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null,this.activeMipmapLevel=0;const i=new PerspectiveCamera(fov,aspect,t,e);i.layers=this.layers,this.add(i);const r=new PerspectiveCamera(fov,aspect,t,e);r.layers=this.layers,this.add(r);const s=new PerspectiveCamera(fov,aspect,t,e);s.layers=this.layers,this.add(s);const a=new PerspectiveCamera(fov,aspect,t,e);a.layers=this.layers,this.add(a);const o=new PerspectiveCamera(fov,aspect,t,e);o.layers=this.layers,this.add(o);const c=new PerspectiveCamera(fov,aspect,t,e);c.layers=this.layers,this.add(c)}updateCoordinateSystem(){const t=this.coordinateSystem,e=this.children.concat(),[n,i,r,s,a,o]=e;for(const c of e)this.remove(c);if(t===WebGLCoordinateSystem)n.up.set(0,1,0),n.lookAt(1,0,0),i.up.set(0,1,0),i.lookAt(-1,0,0),r.up.set(0,0,-1),r.lookAt(0,1,0),s.up.set(0,0,1),s.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),o.up.set(0,1,0),o.lookAt(0,0,-1);else{if(t!==WebGPUCoordinateSystem)throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+t);n.up.set(0,-1,0),n.lookAt(-1,0,0),i.up.set(0,-1,0),i.lookAt(1,0,0),r.up.set(0,0,1),r.lookAt(0,1,0),s.up.set(0,0,-1),s.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),o.up.set(0,-1,0),o.lookAt(0,0,-1)}for(const c of e)this.add(c),c.updateMatrixWorld()}update(t,e){null===this.parent&&this.updateMatrixWorld();const{renderTarget:n,activeMipmapLevel:i}=this;this.coordinateSystem!==t.coordinateSystem&&(this.coordinateSystem=t.coordinateSystem,this.updateCoordinateSystem());const[r,s,a,o,c,l]=this.children,u=t.getRenderTarget(),h=t.getActiveCubeFace(),d=t.getActiveMipmapLevel(),p=t.xr.enabled;t.xr.enabled=!1;const f=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0,i),t.render(e,r),t.setRenderTarget(n,1,i),t.render(e,s),t.setRenderTarget(n,2,i),t.render(e,a),t.setRenderTarget(n,3,i),t.render(e,o),t.setRenderTarget(n,4,i),t.render(e,c),n.texture.generateMipmaps=f,t.setRenderTarget(n,5,i),t.render(e,l),t.setRenderTarget(u,h,d),t.xr.enabled=p,n.texture.needsPMREMUpdate=!0}}class CubeTexture extends Texture{constructor(t,e,n,i,r,s,a,o,c,l){super(t=void 0!==t?t:[],e=void 0!==e?e:CubeReflectionMapping,n,i,r,s,a,o,c,l),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class WebGLCubeRenderTarget extends WebGLRenderTarget{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];this.texture=new CubeTexture(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:LinearFilter}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.colorSpace=e.colorSpace,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include <begin_vertex>\n\t\t\t\t\t#include <project_vertex>\n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include <common>\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new BoxGeometry(5,5,5),r=new ShaderMaterial({name:"CubemapFromEquirect",uniforms:cloneUniforms(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:BackSide,blending:NoBlending});r.uniforms.tEquirect.value=e;const s=new Mesh(i,r),a=e.minFilter;e.minFilter===LinearMipmapLinearFilter&&(e.minFilter=LinearFilter);return new CubeCamera(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let s=0;s<6;s++)t.setRenderTarget(this,s),t.clear(e,n,i);t.setRenderTarget(r)}}const _vector1=new Vector3,_vector2=new Vector3,_normalMatrix=new Matrix3;class Plane{constructor(t=new Vector3(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=_vector1.subVectors(n,e).cross(_vector2.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){const n=t.delta(_vector1),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(t.start).addScaledVector(n,r)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||_normalMatrix.getNormalMatrix(t),i=this.coplanarPoint(_vector1).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const _sphere$5=new Sphere,_vector$7=new Vector3;class Frustum{constructor(t=new Plane,e=new Plane,n=new Plane,i=new Plane,r=new Plane,s=new Plane){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t,e=WebGLCoordinateSystem){const n=this.planes,i=t.elements,r=i[0],s=i[1],a=i[2],o=i[3],c=i[4],l=i[5],u=i[6],h=i[7],d=i[8],p=i[9],f=i[10],m=i[11],g=i[12],A=i[13],y=i[14],v=i[15];if(n[0].setComponents(o-r,h-c,m-d,v-g).normalize(),n[1].setComponents(o+r,h+c,m+d,v+g).normalize(),n[2].setComponents(o+s,h+l,m+p,v+A).normalize(),n[3].setComponents(o-s,h-l,m-p,v-A).normalize(),n[4].setComponents(o-a,h-u,m-f,v-y).normalize(),e===WebGLCoordinateSystem)n[5].setComponents(o+a,h+u,m+f,v+y).normalize();else{if(e!==WebGPUCoordinateSystem)throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+e);n[5].setComponents(a,u,f,y).normalize()}return this}intersectsObject(t){if(void 0!==t.boundingSphere)null===t.boundingSphere&&t.computeBoundingSphere(),_sphere$5.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;null===e.boundingSphere&&e.computeBoundingSphere(),_sphere$5.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(_sphere$5)}intersectsSprite(t){return _sphere$5.center.set(0,0,0),_sphere$5.radius=.7071067811865476,_sphere$5.applyMatrix4(t.matrixWorld),this.intersectsSphere(_sphere$5)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let r=0;r<6;r++){if(e[r].distanceToPoint(n)<i)return!1}return!0}intersectsBox(t){const e=this.planes;for(let n=0;n<6;n++){const i=e[n];if(_vector$7.x=i.normal.x>0?t.max.x:t.min.x,_vector$7.y=i.normal.y>0?t.max.y:t.min.y,_vector$7.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(_vector$7)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function WebGLAnimation(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function WebGLAttributes(t){const e=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),e.get(t)},remove:function(n){n.isInterleavedBufferAttribute&&(n=n.data);const i=e.get(n);i&&(t.deleteBuffer(i.buffer),e.delete(n))},update:function(n,i){if(n.isGLBufferAttribute){const t=e.get(n);return void((!t||t.version<n.version)&&e.set(n,{buffer:n.buffer,type:n.type,bytesPerElement:n.elementSize,version:n.version}))}n.isInterleavedBufferAttribute&&(n=n.data);const r=e.get(n);if(void 0===r)e.set(n,function(e,n){const i=e.array,r=e.usage,s=i.byteLength,a=t.createBuffer();let o;if(t.bindBuffer(n,a),t.bufferData(n,i,r),e.onUploadCallback(),i instanceof Float32Array)o=t.FLOAT;else if(i instanceof Uint16Array)o=e.isFloat16BufferAttribute?t.HALF_FLOAT:t.UNSIGNED_SHORT;else if(i instanceof Int16Array)o=t.SHORT;else if(i instanceof Uint32Array)o=t.UNSIGNED_INT;else if(i instanceof Int32Array)o=t.INT;else if(i instanceof Int8Array)o=t.BYTE;else if(i instanceof Uint8Array)o=t.UNSIGNED_BYTE;else{if(!(i instanceof Uint8ClampedArray))throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+i);o=t.UNSIGNED_BYTE}return{buffer:a,type:o,bytesPerElement:i.BYTES_PER_ELEMENT,version:e.version,size:s}}(n,i));else if(r.version<n.version){if(r.size!==n.array.byteLength)throw new Error("THREE.WebGLAttributes: The size of the buffer attribute's array buffer does not match the original size. Resizing buffer attributes is not supported.");!function(e,n,i){const r=n.array,s=n._updateRange,a=n.updateRanges;if(t.bindBuffer(i,e),-1===s.count&&0===a.length&&t.bufferSubData(i,0,r),0!==a.length){for(let e=0,n=a.length;e<n;e++){const n=a[e];t.bufferSubData(i,n.start*r.BYTES_PER_ELEMENT,r,n.start,n.count)}n.clearUpdateRanges()}-1!==s.count&&(t.bufferSubData(i,s.offset*r.BYTES_PER_ELEMENT,r,s.offset,s.count),s.count=-1),n.onUploadCallback()}(r.buffer,n,i),r.version=n.version}}}}class PlaneGeometry extends BufferGeometry{constructor(t=1,e=1,n=1,i=1){super(),this.type="PlaneGeometry",this.parameters={width:t,height:e,widthSegments:n,heightSegments:i};const r=t/2,s=e/2,a=Math.floor(n),o=Math.floor(i),c=a+1,l=o+1,u=t/a,h=e/o,d=[],p=[],f=[],m=[];for(let g=0;g<l;g++){const t=g*h-s;for(let e=0;e<c;e++){const n=e*u-r;p.push(n,-t,0),f.push(0,0,1),m.push(e/a),m.push(1-g/o)}}for(let g=0;g<o;g++)for(let t=0;t<a;t++){const e=t+c*g,n=t+c*(g+1),i=t+1+c*(g+1),r=t+1+c*g;d.push(e,n,r),d.push(n,i,r)}this.setIndex(d),this.setAttribute("position",new Float32BufferAttribute(p,3)),this.setAttribute("normal",new Float32BufferAttribute(f,3)),this.setAttribute("uv",new Float32BufferAttribute(m,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new PlaneGeometry(t.width,t.height,t.widthSegments,t.heightSegments)}}var alphahash_fragment="#ifdef USE_ALPHAHASH\n\tif ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\n#endif",alphahash_pars_fragment="#ifdef USE_ALPHAHASH\n\tconst float ALPHA_HASH_SCALE = 0.05;\n\tfloat hash2D( vec2 value ) {\n\t\treturn fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\n\t}\n\tfloat hash3D( vec3 value ) {\n\t\treturn hash2D( vec2( hash2D( value.xy ), value.z ) );\n\t}\n\tfloat getAlphaHashThreshold( vec3 position ) {\n\t\tfloat maxDeriv = max(\n\t\t\tlength( dFdx( position.xyz ) ),\n\t\t\tlength( dFdy( position.xyz ) )\n\t\t);\n\t\tfloat pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\n\t\tvec2 pixScales = vec2(\n\t\t\texp2( floor( log2( pixScale ) ) ),\n\t\t\texp2( ceil( log2( pixScale ) ) )\n\t\t);\n\t\tvec2 alpha = vec2(\n\t\t\thash3D( floor( pixScales.x * position.xyz ) ),\n\t\t\thash3D( floor( pixScales.y * position.xyz ) )\n\t\t);\n\t\tfloat lerpFactor = fract( log2( pixScale ) );\n\t\tfloat x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\n\t\tfloat a = min( lerpFactor, 1.0 - lerpFactor );\n\t\tvec3 cases = vec3(\n\t\t\tx * x / ( 2.0 * a * ( 1.0 - a ) ),\n\t\t\t( x - 0.5 * a ) / ( 1.0 - a ),\n\t\t\t1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\n\t\t);\n\t\tfloat threshold = ( x < ( 1.0 - a ) )\n\t\t\t? ( ( x < a ) ? cases.x : cases.y )\n\t\t\t: cases.z;\n\t\treturn clamp( threshold , 1.0e-6, 1.0 );\n\t}\n#endif",alphamap_fragment="#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\n#endif",alphamap_pars_fragment="#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",alphatest_fragment="#ifdef USE_ALPHATEST\n\t#ifdef ALPHA_TO_COVERAGE\n\tdiffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\n\tif ( diffuseColor.a == 0.0 ) discard;\n\t#else\n\tif ( diffuseColor.a < alphaTest ) discard;\n\t#endif\n#endif",alphatest_pars_fragment="#ifdef USE_ALPHATEST\n\tuniform float alphaTest;\n#endif",aomap_fragment="#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_CLEARCOAT ) \n\t\tclearcoatSpecularIndirect *= ambientOcclusion;\n\t#endif\n\t#if defined( USE_SHEEN ) \n\t\tsheenSpecularIndirect *= ambientOcclusion;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\n\t#endif\n#endif",aomap_pars_fragment="#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",batching_pars_vertex="#ifdef USE_BATCHING\n\t#if ! defined( GL_ANGLE_multi_draw )\n\t#define gl_DrawID _gl_DrawID\n\tuniform int _gl_DrawID;\n\t#endif\n\tuniform highp sampler2D batchingTexture;\n\tuniform highp usampler2D batchingIdTexture;\n\tmat4 getBatchingMatrix( const in float i ) {\n\t\tint size = textureSize( batchingTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\tvec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\t}\n\tfloat getIndirectIndex( const in int i ) {\n\t\tint size = textureSize( batchingIdTexture, 0 ).x;\n\t\tint x = i % size;\n\t\tint y = i / size;\n\t\treturn float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );\n\t}\n#endif\n#ifdef USE_BATCHING_COLOR\n\tuniform sampler2D batchingColorTexture;\n\tvec3 getBatchingColor( const in float i ) {\n\t\tint size = textureSize( batchingColorTexture, 0 ).x;\n\t\tint j = int( i );\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\treturn texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;\n\t}\n#endif",batching_vertex="#ifdef USE_BATCHING\n\tmat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );\n#endif",begin_vertex="vec3 transformed = vec3( position );\n#ifdef USE_ALPHAHASH\n\tvPosition = vec3( position );\n#endif",beginnormal_vertex="vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif",bsdfs="float G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n} // validated",iridescence_fragment="#ifdef USE_IRIDESCENCE\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t 3.2404542, -0.9692660, 0.0556434,\n\t\t-1.5371385, 1.8760108, -0.2040259,\n\t\t-0.4985314, 0.0415560, 1.0572252\n\t);\n\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n\t}\n\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n\t}\n\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n\t}\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n\t\txyz /= 1.0685e-7;\n\t\tvec3 rgb = XYZ_TO_REC709 * xyz;\n\t\treturn rgb;\n\t}\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n\t\tvec3 I;\n\t\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n\t\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\t\tif ( cosTheta2Sq < 0.0 ) {\n\t\t\treturn vec3( 1.0 );\n\t\t}\n\t\tfloat cosTheta2 = sqrt( cosTheta2Sq );\n\t\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n\t\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\n\t\tfloat T121 = 1.0 - R12;\n\t\tfloat phi12 = 0.0;\n\t\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\n\t\tfloat phi21 = PI - phi12;\n\t\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\t\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\n\t\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n\t\tvec3 phi23 = vec3( 0.0 );\n\t\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n\t\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n\t\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n\t\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n\t\tvec3 phi = vec3( phi21 ) + phi23;\n\t\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n\t\tvec3 r123 = sqrt( R123 );\n\t\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n\t\tvec3 C0 = R12 + Rs;\n\t\tI = C0;\n\t\tvec3 Cm = Rs - T121;\n\t\tfor ( int m = 1; m <= 2; ++ m ) {\n\t\t\tCm *= r123;\n\t\t\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n\t\t\tI += Cm * Sm;\n\t\t}\n\t\treturn max( I, vec3( 0.0 ) );\n\t}\n#endif",bumpmap_pars_fragment="#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vBumpMapUv );\n\t\tvec2 dSTdy = dFdy( vBumpMapUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\n\t\tvec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif",clipping_planes_fragment="#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#ifdef ALPHA_TO_COVERAGE\n\t\tfloat distanceToPlane, distanceGradient;\n\t\tfloat clipOpacity = 1.0;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\tif ( clipOpacity == 0.0 ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tfloat unionClipOpacity = 1.0;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\t\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tclipOpacity *= 1.0 - unionClipOpacity;\n\t\t#endif\n\t\tdiffuseColor.a *= clipOpacity;\n\t\tif ( diffuseColor.a == 0.0 ) discard;\n\t#else\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tbool clipped = true;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tif ( clipped ) discard;\n\t\t#endif\n\t#endif\n#endif",clipping_planes_pars_fragment="#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex="#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex="#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment="#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment="#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex="#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex="#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif\n#ifdef USE_BATCHING_COLOR\n\tvec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );\n\tvColor.xyz *= batchingColor.xyz;\n#endif",common="#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\n#ifdef USE_ALPHAHASH\n\tvarying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment="#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex="vec3 transformedNormal = objectNormal;\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = objectTangent;\n#endif\n#ifdef USE_BATCHING\n\tmat3 bm = mat3( batchingMatrix );\n\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\n\ttransformedNormal = bm * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = bm * transformedTangent;\n\t#endif\n#endif\n#ifdef USE_INSTANCING\n\tmat3 im = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\n\ttransformedNormal = im * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = im * transformedTangent;\n\t#endif\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex="#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex="#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment="#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment="#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",colorspace_fragment="gl_FragColor = linearToOutputTexel( gl_FragColor );",colorspace_pars_fragment="\nconst mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(\n\tvec3( 0.8224621, 0.177538, 0.0 ),\n\tvec3( 0.0331941, 0.9668058, 0.0 ),\n\tvec3( 0.0170827, 0.0723974, 0.9105199 )\n);\nconst mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.2249401, - 0.2249404, 0.0 ),\n\tvec3( - 0.0420569, 1.0420571, 0.0 ),\n\tvec3( - 0.0196376, - 0.0786361, 1.0982735 )\n);\nvec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );\n}\nvec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );\n}\nvec4 LinearTransferOETF( in vec4 value ) {\n\treturn value;\n}\nvec4 sRGBTransferOETF( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn sRGBTransferOETF( value );\n}",envmap_fragment="#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment="#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform mat3 envMapRotation;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment="#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex="#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_vertex="#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex="#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex="#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment="#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment="#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment="#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_pars_fragment="#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment="LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment="varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin="uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\n#if defined( USE_LIGHT_PROBES )\n\tuniform vec3 lightProbe[ 9 ];\n#endif\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\tif ( cutoffDistance > 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",envmap_physical_pars_fragment="#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif",lights_toon_fragment="ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment="varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment="BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment="varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment="PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_DISPERSION\n\tmaterial.dispersion = dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tif( material.anisotropy == 0.0 ) {\n\t\tanisotropyV = vec2( 1.0, 0.0 );\n\t} else {\n\t\tanisotropyV /= material.anisotropy;\n\t\tmaterial.anisotropy = saturate( material.anisotropy );\n\t}\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\n#endif",lights_physical_pars_fragment="struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\tfloat dispersion;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\nvec3 sheenSpecularDirect = vec3( 0.0 );\nvec3 sheenSpecularIndirect = vec3(0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometryNormal;\n\t\tvec3 viewDir = geometryViewDir;\n\t\tvec3 position = geometryPosition;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin="\nvec3 geometryPosition = - vViewPosition;\nvec3 geometryNormal = normal;\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\nvec3 geometryClearcoatNormal = vec3( 0.0 );\n#ifdef USE_CLEARCOAT\n\tgeometryClearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometryPosition, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#if defined( USE_LIGHT_PROBES )\n\t\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\n\t#endif\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps="#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometryNormal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end="#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif",logdepthbuf_fragment="#if defined( USE_LOGDEPTHBUF )\n\tgl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment="#if defined( USE_LOGDEPTHBUF )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex="#ifdef USE_LOGDEPTHBUF\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_vertex="#ifdef USE_LOGDEPTHBUF\n\tvFragDepth = 1.0 + gl_Position.w;\n\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n#endif",map_fragment="#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment="#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment="#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment="#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment="float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment="#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphinstance_vertex="#ifdef USE_INSTANCING_MORPH\n\tfloat morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tmorphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\n\t}\n#endif",morphcolor_vertex="#if defined( USE_MORPHCOLORS )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex="#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t}\n#endif",morphtarget_pars_vertex="#ifdef USE_MORPHTARGETS\n\t#ifndef USE_INSTANCING_MORPH\n\t\tuniform float morphTargetBaseInfluence;\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t#endif\n\tuniform sampler2DArray morphTargetsTexture;\n\tuniform ivec2 morphTargetsTextureSize;\n\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t}\n#endif",morphtarget_vertex="#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t}\n#endif",normal_fragment_begin="float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\n\t\t#if defined( USE_NORMALMAP )\n\t\t\tvNormalMapUv\n\t\t#elif defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tvClearcoatNormalMapUv\n\t\t#else\n\t\t\tvUv\n\t\t#endif\n\t\t);\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 nonPerturbedNormal = normal;",normal_fragment_maps="#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment="#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex="#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex="#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment="#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin="#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = nonPerturbedNormal;\n#endif",clearcoat_normal_fragment_maps="#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment="#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment="#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",opaque_fragment="#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing="vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment="#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex="vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_BATCHING\n\tmvPosition = batchingMatrix * mvPosition;\n#endif\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment="#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment="#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment="float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment="#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment="#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn mix( 1.0, shadow, shadowIntensity );\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tfloat shadow = 1.0;\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\t\n\t\tfloat lightToPositionLength = length( lightToPosition );\n\t\tif ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {\n\t\t\tfloat dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\t\tdp += shadowBias;\n\t\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\t\tshadow = (\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t\t) * ( 1.0 / 9.0 );\n\t\t\t#else\n\t\t\t\tshadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t\t#endif\n\t\t}\n\t\treturn mix( 1.0, shadow, shadowIntensity );\n\t}\n#endif",shadowmap_pars_vertex="#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex="#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment="float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex="#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex="#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tint size = textureSize( boneTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\t}\n#endif",skinning_vertex="#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex="#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment="float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment="#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment="#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment="#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.6605, - 0.1246, - 0.0182 ),\n\tvec3( - 0.5876, 1.1329, - 0.1006 ),\n\tvec3( - 0.0728, - 0.0083, 1.1187 )\n);\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\n\tvec3( 0.6274, 0.0691, 0.0164 ),\n\tvec3( 0.3293, 0.9195, 0.0880 ),\n\tvec3( 0.0433, 0.0113, 0.8956 )\n);\nvec3 agxDefaultContrastApprox( vec3 x ) {\n\tvec3 x2 = x * x;\n\tvec3 x4 = x2 * x2;\n\treturn + 15.5 * x4 * x2\n\t\t- 40.14 * x4 * x\n\t\t+ 31.96 * x4\n\t\t- 6.868 * x2 * x\n\t\t+ 0.4298 * x2\n\t\t+ 0.1191 * x\n\t\t- 0.00232;\n}\nvec3 AgXToneMapping( vec3 color ) {\n\tconst mat3 AgXInsetMatrix = mat3(\n\t\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\n\t\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\n\t\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\n\t);\n\tconst mat3 AgXOutsetMatrix = mat3(\n\t\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\n\t\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\n\t\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\n\t);\n\tconst float AgxMinEv = - 12.47393;\tconst float AgxMaxEv = 4.026069;\n\tcolor *= toneMappingExposure;\n\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\n\tcolor = AgXInsetMatrix * color;\n\tcolor = max( color, 1e-10 );\tcolor = log2( color );\n\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\n\tcolor = clamp( color, 0.0, 1.0 );\n\tcolor = agxDefaultContrastApprox( color );\n\tcolor = AgXOutsetMatrix * color;\n\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\n\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\n\tcolor = clamp( color, 0.0, 1.0 );\n\treturn color;\n}\nvec3 NeutralToneMapping( vec3 color ) {\n\tconst float StartCompression = 0.8 - 0.04;\n\tconst float Desaturation = 0.15;\n\tcolor *= toneMappingExposure;\n\tfloat x = min( color.r, min( color.g, color.b ) );\n\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\n\tcolor -= offset;\n\tfloat peak = max( color.r, max( color.g, color.b ) );\n\tif ( peak < StartCompression ) return color;\n\tfloat d = 1. - StartCompression;\n\tfloat newPeak = 1. - d * d / ( peak + d - StartCompression );\n\tcolor *= newPeak / peak;\n\tfloat g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );\n\treturn mix( color, vec3( newPeak ), g );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment="#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmitted = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif",transmission_pars_fragment="#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn vec3( 1.0 );\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec4 transmittedLight;\n\t\tvec3 transmittance;\n\t\t#ifdef USE_DISPERSION\n\t\t\tfloat halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;\n\t\t\tvec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );\n\t\t\tfor ( int i = 0; i < 3; i ++ ) {\n\t\t\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );\n\t\t\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\t\n\t\t\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\t\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\t\t\trefractionCoords += 1.0;\n\t\t\t\trefractionCoords /= 2.0;\n\t\t\n\t\t\t\tvec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );\n\t\t\t\ttransmittedLight[ i ] = transmissionSample[ i ];\n\t\t\t\ttransmittedLight.a += transmissionSample.a;\n\t\t\t\ttransmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];\n\t\t\t}\n\t\t\ttransmittedLight.a /= 3.0;\n\t\t\n\t\t#else\n\t\t\n\t\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\t\trefractionCoords += 1.0;\n\t\t\trefractionCoords /= 2.0;\n\t\t\ttransmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\t\ttransmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\t\n\t\t#endif\n\t\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n\t}\n#endif",uv_pars_fragment="#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex="#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tuniform mat3 anisotropyMapTransform;\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex="#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex="#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_BATCHING\n\t\tworldPosition = batchingMatrix * worldPosition;\n\t#endif\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif";const vertex$h="varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",fragment$h="uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}",vertex$g="varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}",fragment$g="#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nuniform mat3 backgroundRotation;\nvarying vec3 vWorldDirection;\n#include <cube_uv_reflection_fragment>\nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}",vertex$f="varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}",fragment$f="uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}",vertex$e="#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <batching_vertex>\n\t#include <skinbase_vertex>\n\t#include <morphinstance_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvHighPrecisionZW = gl_Position.zw;\n}",fragment$e="#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <clipping_planes_fragment>\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <logdepthbuf_fragment>\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",vertex$d="#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <batching_vertex>\n\t#include <skinbase_vertex>\n\t#include <morphinstance_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}",fragment$d="#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <clipping_planes_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",vertex$c="varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}",fragment$c="uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}",vertex$b="uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}",fragment$b="uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",vertex$a="#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinbase_vertex>\n\t\t#include <skinnormal_vertex>\n\t\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}",fragment$a="uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",vertex$9="#define LAMBERT\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",fragment$9="#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_lambert_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_lambert_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",vertex$8="#define MATCAP\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n\tvViewPosition = - mvPosition.xyz;\n}",fragment$8="#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",vertex$7="#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",fragment$7="#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",vertex$6="#define PHONG\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",fragment$6="#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",vertex$5="#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",fragment$5="#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_DISPERSION\n\tuniform float dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <iridescence_fragment>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_physical_pars_fragment>\n#include <transmission_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <iridescence_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include <transmission_fragment>\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\n\t#endif\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",vertex$4="#define TOON\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",fragment$4="#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_toon_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_toon_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",vertex$3="uniform float size;\nuniform float scale;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n}",fragment$3="uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",vertex$2="#include <common>\n#include <batching_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <shadowmap_pars_vertex>\nvoid main() {\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",fragment$2="uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <logdepthbuf_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\t#include <logdepthbuf_fragment>\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n}",vertex$1="uniform float rotation;\nuniform vec2 center;\n#include <common>\n#include <uv_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}",fragment$1="uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n}",ShaderChunk={alphahash_fragment,alphahash_pars_fragment,alphamap_fragment,alphamap_pars_fragment,alphatest_fragment,alphatest_pars_fragment,aomap_fragment,aomap_pars_fragment,batching_pars_vertex,batching_vertex,begin_vertex,beginnormal_vertex,bsdfs,iridescence_fragment,bumpmap_pars_fragment,clipping_planes_fragment,clipping_planes_pars_fragment,clipping_planes_pars_vertex,clipping_planes_vertex,color_fragment,color_pars_fragment,color_pars_vertex,color_vertex,common,cube_uv_reflection_fragment,defaultnormal_vertex,displacementmap_pars_vertex,displacementmap_vertex,emissivemap_fragment,emissivemap_pars_fragment,colorspace_fragment,colorspace_pars_fragment,envmap_fragment,envmap_common_pars_fragment,envmap_pars_fragment,envmap_pars_vertex,envmap_physical_pars_fragment,envmap_vertex,fog_vertex,fog_pars_vertex,fog_fragment,fog_pars_fragment,gradientmap_pars_fragment,lightmap_pars_fragment,lights_lambert_fragment,lights_lambert_pars_fragment,lights_pars_begin,lights_toon_fragment,lights_toon_pars_fragment,lights_phong_fragment,lights_phong_pars_fragment,lights_physical_fragment,lights_physical_pars_fragment,lights_fragment_begin,lights_fragment_maps,lights_fragment_end,logdepthbuf_fragment,logdepthbuf_pars_fragment,logdepthbuf_pars_vertex,logdepthbuf_vertex,map_fragment,map_pars_fragment,map_particle_fragment,map_particle_pars_fragment,metalnessmap_fragment,metalnessmap_pars_fragment,morphinstance_vertex,morphcolor_vertex,morphnormal_vertex,morphtarget_pars_vertex,morphtarget_vertex,normal_fragment_begin,normal_fragment_maps,normal_pars_fragment,normal_pars_vertex,normal_vertex,normalmap_pars_fragment,clearcoat_normal_fragment_begin,clearcoat_normal_fragment_maps,clearcoat_pars_fragment,iridescence_pars_fragment,opaque_fragment,packing,premultiplied_alpha_fragment,project_vertex,dithering_fragment,dithering_pars_fragment,roughnessmap_fragment,roughnessmap_pars_fragment,shadowmap_pars_fragment,shadowmap_pars_vertex,shadowmap_vertex,shadowmask_pars_fragment,skinbase_vertex,skinning_pars_vertex,skinning_vertex,skinnormal_vertex,specularmap_fragment,specularmap_pars_fragment,tonemapping_fragment,tonemapping_pars_fragment,transmission_fragment,transmission_pars_fragment,uv_pars_fragment,uv_pars_vertex,uv_vertex,worldpos_vertex,background_vert:vertex$h,background_frag:fragment$h,backgroundCube_vert:vertex$g,backgroundCube_frag:fragment$g,cube_vert:vertex$f,cube_frag:fragment$f,depth_vert:vertex$e,depth_frag:fragment$e,distanceRGBA_vert:vertex$d,distanceRGBA_frag:fragment$d,equirect_vert:vertex$c,equirect_frag:fragment$c,linedashed_vert:vertex$b,linedashed_frag:fragment$b,meshbasic_vert:vertex$a,meshbasic_frag:fragment$a,meshlambert_vert:vertex$9,meshlambert_frag:fragment$9,meshmatcap_vert:vertex$8,meshmatcap_frag:fragment$8,meshnormal_vert:vertex$7,meshnormal_frag:fragment$7,meshphong_vert:vertex$6,meshphong_frag:fragment$6,meshphysical_vert:vertex$5,meshphysical_frag:fragment$5,meshtoon_vert:vertex$4,meshtoon_frag:fragment$4,points_vert:vertex$3,points_frag:fragment$3,shadow_vert:vertex$2,shadow_frag:fragment$2,sprite_vert:vertex$1,sprite_frag:fragment$1},UniformsLib={common:{diffuse:{value:new Color(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Matrix3},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Matrix3}},envmap:{envMap:{value:null},envMapRotation:{value:new Matrix3},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Matrix3}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Matrix3}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Matrix3},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Matrix3},normalScale:{value:new Vector2(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Matrix3},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Matrix3}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Matrix3}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Matrix3}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Color(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Color(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0},uvTransform:{value:new Matrix3}},sprite:{diffuse:{value:new Color(16777215)},opacity:{value:1},center:{value:new Vector2(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Matrix3},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0}}},ShaderLib={basic:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.fog]),vertexShader:ShaderChunk.meshbasic_vert,fragmentShader:ShaderChunk.meshbasic_frag},lambert:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color(0)}}]),vertexShader:ShaderChunk.meshlambert_vert,fragmentShader:ShaderChunk.meshlambert_frag},phong:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color(0)},specular:{value:new Color(1118481)},shininess:{value:30}}]),vertexShader:ShaderChunk.meshphong_vert,fragmentShader:ShaderChunk.meshphong_frag},standard:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.roughnessmap,UniformsLib.metalnessmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:ShaderChunk.meshphysical_vert,fragmentShader:ShaderChunk.meshphysical_frag},toon:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.gradientmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color(0)}}]),vertexShader:ShaderChunk.meshtoon_vert,fragmentShader:ShaderChunk.meshtoon_frag},matcap:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,{matcap:{value:null}}]),vertexShader:ShaderChunk.meshmatcap_vert,fragmentShader:ShaderChunk.meshmatcap_frag},points:{uniforms:mergeUniforms([UniformsLib.points,UniformsLib.fog]),vertexShader:ShaderChunk.points_vert,fragmentShader:ShaderChunk.points_frag},dashed:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:ShaderChunk.linedashed_vert,fragmentShader:ShaderChunk.linedashed_frag},depth:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.displacementmap]),vertexShader:ShaderChunk.depth_vert,fragmentShader:ShaderChunk.depth_frag},normal:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,{opacity:{value:1}}]),vertexShader:ShaderChunk.meshnormal_vert,fragmentShader:ShaderChunk.meshnormal_frag},sprite:{uniforms:mergeUniforms([UniformsLib.sprite,UniformsLib.fog]),vertexShader:ShaderChunk.sprite_vert,fragmentShader:ShaderChunk.sprite_frag},background:{uniforms:{uvTransform:{value:new Matrix3},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:ShaderChunk.background_vert,fragmentShader:ShaderChunk.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Matrix3}},vertexShader:ShaderChunk.backgroundCube_vert,fragmentShader:ShaderChunk.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:ShaderChunk.cube_vert,fragmentShader:ShaderChunk.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:ShaderChunk.equirect_vert,fragmentShader:ShaderChunk.equirect_frag},distanceRGBA:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.displacementmap,{referencePosition:{value:new Vector3},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:ShaderChunk.distanceRGBA_vert,fragmentShader:ShaderChunk.distanceRGBA_frag},shadow:{uniforms:mergeUniforms([UniformsLib.lights,UniformsLib.fog,{color:{value:new Color(0)},opacity:{value:1}}]),vertexShader:ShaderChunk.shadow_vert,fragmentShader:ShaderChunk.shadow_frag}};ShaderLib.physical={uniforms:mergeUniforms([ShaderLib.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Matrix3},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Matrix3},clearcoatNormalScale:{value:new Vector2(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Matrix3},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Matrix3},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Matrix3},sheen:{value:0},sheenColor:{value:new Color(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Matrix3},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Matrix3},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Matrix3},transmissionSamplerSize:{value:new Vector2},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Matrix3},attenuationDistance:{value:0},attenuationColor:{value:new Color(0)},specularColor:{value:new Color(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Matrix3},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Matrix3},anisotropyVector:{value:new Vector2},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Matrix3}}]),vertexShader:ShaderChunk.meshphysical_vert,fragmentShader:ShaderChunk.meshphysical_frag};const _rgb={r:0,b:0,g:0},_e1$1=new Euler,_m1$1=new Matrix4;function WebGLBackground(t,e,n,i,r,s,a){const o=new Color(0);let c,l,u=!0===s?0:1,h=null,d=0,p=null;function f(t){let i=!0===t.isScene?t.background:null;if(i&&i.isTexture){i=(t.backgroundBlurriness>0?n:e).get(i)}return i}function m(e,n){e.getRGB(_rgb,getUnlitUniformColorSpace(t)),i.buffers.color.setClear(_rgb.r,_rgb.g,_rgb.b,n,a)}return{getClearColor:function(){return o},setClearColor:function(t,e=1){o.set(t),u=e,m(o,u)},getClearAlpha:function(){return u},setClearAlpha:function(t){u=t,m(o,u)},render:function(e){let n=!1;const r=f(e);null===r?m(o,u):r&&r.isColor&&(m(r,1),n=!0);const s=t.xr.getEnvironmentBlendMode();"additive"===s?i.buffers.color.setClear(0,0,0,1,a):"alpha-blend"===s&&i.buffers.color.setClear(0,0,0,0,a),(t.autoClear||n)&&(i.buffers.depth.setTest(!0),i.buffers.depth.setMask(!0),i.buffers.color.setMask(!0),t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil))},addToRenderList:function(e,n){const i=f(n);i&&(i.isCubeTexture||i.mapping===CubeUVReflectionMapping)?(void 0===l&&(l=new Mesh(new BoxGeometry(1,1,1),new ShaderMaterial({name:"BackgroundCubeMaterial",uniforms:cloneUniforms(ShaderLib.backgroundCube.uniforms),vertexShader:ShaderLib.backgroundCube.vertexShader,fragmentShader:ShaderLib.backgroundCube.fragmentShader,side:BackSide,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(l)),_e1$1.copy(n.backgroundRotation),_e1$1.x*=-1,_e1$1.y*=-1,_e1$1.z*=-1,i.isCubeTexture&&!1===i.isRenderTargetTexture&&(_e1$1.y*=-1,_e1$1.z*=-1),l.material.uniforms.envMap.value=i,l.material.uniforms.flipEnvMap.value=i.isCubeTexture&&!1===i.isRenderTargetTexture?-1:1,l.material.uniforms.backgroundBlurriness.value=n.backgroundBlurriness,l.material.uniforms.backgroundIntensity.value=n.backgroundIntensity,l.material.uniforms.backgroundRotation.value.setFromMatrix4(_m1$1.makeRotationFromEuler(_e1$1)),l.material.toneMapped=ColorManagement.getTransfer(i.colorSpace)!==SRGBTransfer,h===i&&d===i.version&&p===t.toneMapping||(l.material.needsUpdate=!0,h=i,d=i.version,p=t.toneMapping),l.layers.enableAll(),e.unshift(l,l.geometry,l.material,0,0,null)):i&&i.isTexture&&(void 0===c&&(c=new Mesh(new PlaneGeometry(2,2),new ShaderMaterial({name:"BackgroundMaterial",uniforms:cloneUniforms(ShaderLib.background.uniforms),vertexShader:ShaderLib.background.vertexShader,fragmentShader:ShaderLib.background.fragmentShader,side:FrontSide,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(c)),c.material.uniforms.t2D.value=i,c.material.uniforms.backgroundIntensity.value=n.backgroundIntensity,c.material.toneMapped=ColorManagement.getTransfer(i.colorSpace)!==SRGBTransfer,!0===i.matrixAutoUpdate&&i.updateMatrix(),c.material.uniforms.uvTransform.value.copy(i.matrix),h===i&&d===i.version&&p===t.toneMapping||(c.material.needsUpdate=!0,h=i,d=i.version,p=t.toneMapping),c.layers.enableAll(),e.unshift(c,c.geometry,c.material,0,0,null))}}}function WebGLBindingStates(t,e){const n=t.getParameter(t.MAX_VERTEX_ATTRIBS),i={},r=l(null);let s=r,a=!1;function o(e){return t.bindVertexArray(e)}function c(e){return t.deleteVertexArray(e)}function l(t){const e=[],i=[],r=[];for(let s=0;s<n;s++)e[s]=0,i[s]=0,r[s]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:e,enabledAttributes:i,attributeDivisors:r,object:t,attributes:{},index:null}}function u(){const t=s.newAttributes;for(let e=0,n=t.length;e<n;e++)t[e]=0}function h(t){d(t,0)}function d(e,n){const i=s.newAttributes,r=s.enabledAttributes,a=s.attributeDivisors;i[e]=1,0===r[e]&&(t.enableVertexAttribArray(e),r[e]=1),a[e]!==n&&(t.vertexAttribDivisor(e,n),a[e]=n)}function p(){const e=s.newAttributes,n=s.enabledAttributes;for(let i=0,r=n.length;i<r;i++)n[i]!==e[i]&&(t.disableVertexAttribArray(i),n[i]=0)}function f(e,n,i,r,s,a,o){!0===o?t.vertexAttribIPointer(e,n,i,s,a):t.vertexAttribPointer(e,n,i,r,s,a)}function m(){g(),a=!0,s!==r&&(s=r,o(s.object))}function g(){r.geometry=null,r.program=null,r.wireframe=!1}return{setup:function(n,r,c,m,g){let A=!1;const y=function(e,n,r){const s=!0===r.wireframe;let a=i[e.id];void 0===a&&(a={},i[e.id]=a);let o=a[n.id];void 0===o&&(o={},a[n.id]=o);let c=o[s];void 0===c&&(c=l(t.createVertexArray()),o[s]=c);return c}(m,c,r);s!==y&&(s=y,o(s.object)),A=function(t,e,n,i){const r=s.attributes,a=e.attributes;let o=0;const c=n.getAttributes();for(const s in c){if(c[s].location>=0){const e=r[s];let n=a[s];if(void 0===n&&("instanceMatrix"===s&&t.instanceMatrix&&(n=t.instanceMatrix),"instanceColor"===s&&t.instanceColor&&(n=t.instanceColor)),void 0===e)return!0;if(e.attribute!==n)return!0;if(n&&e.data!==n.data)return!0;o++}}return s.attributesNum!==o||s.index!==i}(n,m,c,g),A&&function(t,e,n,i){const r={},a=e.attributes;let o=0;const c=n.getAttributes();for(const s in c){if(c[s].location>=0){let e=a[s];void 0===e&&("instanceMatrix"===s&&t.instanceMatrix&&(e=t.instanceMatrix),"instanceColor"===s&&t.instanceColor&&(e=t.instanceColor));const n={};n.attribute=e,e&&e.data&&(n.data=e.data),r[s]=n,o++}}s.attributes=r,s.attributesNum=o,s.index=i}(n,m,c,g),null!==g&&e.update(g,t.ELEMENT_ARRAY_BUFFER),(A||a)&&(a=!1,function(n,i,r,s){u();const a=s.attributes,o=r.getAttributes(),c=i.defaultAttributeValues;for(const l in o){const i=o[l];if(i.location>=0){let r=a[l];if(void 0===r&&("instanceMatrix"===l&&n.instanceMatrix&&(r=n.instanceMatrix),"instanceColor"===l&&n.instanceColor&&(r=n.instanceColor)),void 0!==r){const a=r.normalized,o=r.itemSize,c=e.get(r);if(void 0===c)continue;const l=c.buffer,u=c.type,p=c.bytesPerElement,m=u===t.INT||u===t.UNSIGNED_INT||r.gpuType===IntType;if(r.isInterleavedBufferAttribute){const e=r.data,c=e.stride,g=r.offset;if(e.isInstancedInterleavedBuffer){for(let t=0;t<i.locationSize;t++)d(i.location+t,e.meshPerAttribute);!0!==n.isInstancedMesh&&void 0===s._maxInstanceCount&&(s._maxInstanceCount=e.meshPerAttribute*e.count)}else for(let t=0;t<i.locationSize;t++)h(i.location+t);t.bindBuffer(t.ARRAY_BUFFER,l);for(let t=0;t<i.locationSize;t++)f(i.location+t,o/i.locationSize,u,a,c*p,(g+o/i.locationSize*t)*p,m)}else{if(r.isInstancedBufferAttribute){for(let t=0;t<i.locationSize;t++)d(i.location+t,r.meshPerAttribute);!0!==n.isInstancedMesh&&void 0===s._maxInstanceCount&&(s._maxInstanceCount=r.meshPerAttribute*r.count)}else for(let t=0;t<i.locationSize;t++)h(i.location+t);t.bindBuffer(t.ARRAY_BUFFER,l);for(let t=0;t<i.locationSize;t++)f(i.location+t,o/i.locationSize,u,a,o*p,o/i.locationSize*t*p,m)}}else if(void 0!==c){const e=c[l];if(void 0!==e)switch(e.length){case 2:t.vertexAttrib2fv(i.location,e);break;case 3:t.vertexAttrib3fv(i.location,e);break;case 4:t.vertexAttrib4fv(i.location,e);break;default:t.vertexAttrib1fv(i.location,e)}}}}p()}(n,r,c,m),null!==g&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,e.get(g).buffer))},reset:m,resetDefaultState:g,dispose:function(){m();for(const t in i){const e=i[t];for(const t in e){const n=e[t];for(const t in n)c(n[t].object),delete n[t];delete e[t]}delete i[t]}},releaseStatesOfGeometry:function(t){if(void 0===i[t.id])return;const e=i[t.id];for(const n in e){const t=e[n];for(const e in t)c(t[e].object),delete t[e];delete e[n]}delete i[t.id]},releaseStatesOfProgram:function(t){for(const e in i){const n=i[e];if(void 0===n[t.id])continue;const r=n[t.id];for(const t in r)c(r[t].object),delete r[t];delete n[t.id]}},initAttributes:u,enableAttribute:h,disableUnusedAttributes:p}}function WebGLBufferRenderer(t,e,n){let i;function r(e,r,s){0!==s&&(t.drawArraysInstanced(i,e,r,s),n.update(r,i,s))}this.setMode=function(t){i=t},this.render=function(e,r){t.drawArrays(i,e,r),n.update(r,i,1)},this.renderInstances=r,this.renderMultiDraw=function(t,r,s){if(0===s)return;e.get("WEBGL_multi_draw").multiDrawArraysWEBGL(i,t,0,r,0,s);let a=0;for(let e=0;e<s;e++)a+=r[e];n.update(a,i,1)},this.renderMultiDrawInstances=function(t,s,a,o){if(0===a)return;const c=e.get("WEBGL_multi_draw");if(null===c)for(let e=0;e<t.length;e++)r(t[e],s[e],o[e]);else{c.multiDrawArraysInstancedWEBGL(i,t,0,s,0,o,0,a);let e=0;for(let t=0;t<a;t++)e+=s[t];for(let t=0;t<o.length;t++)n.update(e,i,o[t])}}}function WebGLCapabilities(t,e,n,i){let r;function s(e){if("highp"===e){if(t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.HIGH_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let a=void 0!==n.precision?n.precision:"highp";const o=s(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const c=!0===n.logarithmicDepthBuffer,l=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),u=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS);return{isWebGL2:!0,getMaxAnisotropy:function(){if(void 0!==r)return r;if(!0===e.has("EXT_texture_filter_anisotropic")){const n=e.get("EXT_texture_filter_anisotropic");r=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r},getMaxPrecision:s,textureFormatReadable:function(e){return e===RGBAFormat||i.convert(e)===t.getParameter(t.IMPLEMENTATION_COLOR_READ_FORMAT)},textureTypeReadable:function(n){const r=n===HalfFloatType&&(e.has("EXT_color_buffer_half_float")||e.has("EXT_color_buffer_float"));return!(n!==UnsignedByteType&&i.convert(n)!==t.getParameter(t.IMPLEMENTATION_COLOR_READ_TYPE)&&n!==FloatType&&!r)},precision:a,logarithmicDepthBuffer:c,maxTextures:l,maxVertexTextures:u,maxTextureSize:t.getParameter(t.MAX_TEXTURE_SIZE),maxCubemapSize:t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),maxAttributes:t.getParameter(t.MAX_VERTEX_ATTRIBS),maxVertexUniforms:t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),maxVaryings:t.getParameter(t.MAX_VARYING_VECTORS),maxFragmentUniforms:t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),vertexTextures:u>0,maxSamples:t.getParameter(t.MAX_SAMPLES)}}function WebGLClipping(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new Plane,o=new Matrix3,c={value:null,needsUpdate:!1};function l(t,n,i,r){const s=null!==t?t.length:0;let l=null;if(0!==s){if(l=c.value,!0!==r||null===l){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===l||l.length<e)&&(l=new Float32Array(e));for(let n=0,c=i;n!==s;++n,c+=4)a.copy(t[n]).applyMatrix4(r,o),a.normal.toArray(l,c),l[c+3]=a.constant}c.value=l,c.needsUpdate=!0}return e.numPlanes=s,e.numIntersection=0,l}this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(t,e){const n=0!==t.length||e||0!==i||r;return r=e,i=t.length,n},this.beginShadows=function(){s=!0,l(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(t,e){n=l(t,e,0)},this.setState=function(a,o,u){const h=a.clippingPlanes,d=a.clipIntersection,p=a.clipShadows,f=t.get(a);if(!r||null===h||0===h.length||s&&!p)s?l(null):function(){c.value!==n&&(c.value=n,c.needsUpdate=i>0);e.numPlanes=i,e.numIntersection=0}();else{const t=s?0:i,e=4*t;let r=f.clippingState||null;c.value=r,r=l(h,o,e,u);for(let i=0;i!==e;++i)r[i]=n[i];f.clippingState=r,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function WebGLCubeMaps(t){let e=new WeakMap;function n(t,e){return e===EquirectangularReflectionMapping?t.mapping=CubeReflectionMapping:e===EquirectangularRefractionMapping&&(t.mapping=CubeRefractionMapping),t}function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){const s=r.mapping;if(s===EquirectangularReflectionMapping||s===EquirectangularRefractionMapping){if(e.has(r)){return n(e.get(r).texture,r.mapping)}{const s=r.image;if(s&&s.height>0){const a=new WebGLCubeRenderTarget(s.height);return a.fromEquirectangularTexture(t,r),e.set(r,a),r.addEventListener("dispose",i),n(a.texture,r.mapping)}return null}}}return r},dispose:function(){e=new WeakMap}}}class OrthographicCamera extends Camera{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,r,s){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=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,s=n+t,a=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,s=r+t*this.view.width,a-=e*this.view.offsetY,o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}const LOD_MIN=4,EXTRA_LOD_SIGMA=[.125,.215,.35,.446,.526,.582],MAX_SAMPLES=20,_flatCamera=new OrthographicCamera,_clearColor=new Color;let _oldTarget=null,_oldActiveCubeFace=0,_oldActiveMipmapLevel=0,_oldXrEnabled=!1;const PHI=(1+Math.sqrt(5))/2,INV_PHI=1/PHI,_axisDirections=[new Vector3(-PHI,INV_PHI,0),new Vector3(PHI,INV_PHI,0),new Vector3(-INV_PHI,0,PHI),new Vector3(INV_PHI,0,PHI),new Vector3(0,PHI,-INV_PHI),new Vector3(0,PHI,INV_PHI),new Vector3(-1,1,-1),new Vector3(1,1,-1),new Vector3(-1,1,1),new Vector3(1,1,1)];class PMREMGenerator{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){_oldTarget=this._renderer.getRenderTarget(),_oldActiveCubeFace=this._renderer.getActiveCubeFace(),_oldActiveMipmapLevel=this._renderer.getActiveMipmapLevel(),_oldXrEnabled=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);const r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=_getCubemapMaterial(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=_getEquirectMaterial(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let t=0;t<this._lodPlanes.length;t++)this._lodPlanes[t].dispose()}_cleanup(t){this._renderer.setRenderTarget(_oldTarget,_oldActiveCubeFace,_oldActiveMipmapLevel),this._renderer.xr.enabled=_oldXrEnabled,t.scissorTest=!1,_setViewport(t,0,0,t.width,t.height)}_fromTexture(t,e){t.mapping===CubeReflectionMapping||t.mapping===CubeRefractionMapping?this._setSize(0===t.image.length?16:t.image[0].width||t.image[0].image.width):this._setSize(t.image.width/4),_oldTarget=this._renderer.getRenderTarget(),_oldActiveCubeFace=this._renderer.getActiveCubeFace(),_oldActiveMipmapLevel=this._renderer.getActiveMipmapLevel(),_oldXrEnabled=this._renderer.xr.enabled,this._renderer.xr.enabled=!1;const n=e||this._allocateTargets();return this._textureToCubeUV(t,n),this._applyPMREM(n),this._cleanup(n),n}_allocateTargets(){const t=3*Math.max(this._cubeSize,112),e=4*this._cubeSize,n={magFilter:LinearFilter,minFilter:LinearFilter,generateMipmaps:!1,type:HalfFloatType,format:RGBAFormat,colorSpace:LinearSRGBColorSpace,depthBuffer:!1},i=_createRenderTarget(t,e,n);if(null===this._pingPongRenderTarget||this._pingPongRenderTarget.width!==t||this._pingPongRenderTarget.height!==e){null!==this._pingPongRenderTarget&&this._dispose(),this._pingPongRenderTarget=_createRenderTarget(t,e,n);const{_lodMax:i}=this;({sizeLods:this._sizeLods,lodPlanes:this._lodPlanes,sigmas:this._sigmas}=_createPlanes(i)),this._blurMaterial=_getBlurShader(i,t,e)}return i}_compileMaterial(t){const e=new Mesh(this._lodPlanes[0],t);this._renderer.compile(e,_flatCamera)}_sceneToCubeUV(t,e,n,i){const r=new PerspectiveCamera(90,1,e,n),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],o=this._renderer,c=o.autoClear,l=o.toneMapping;o.getClearColor(_clearColor),o.toneMapping=NoToneMapping,o.autoClear=!1;const u=new MeshBasicMaterial({name:"PMREM.Background",side:BackSide,depthWrite:!1,depthTest:!1}),h=new Mesh(new BoxGeometry,u);let d=!1;const p=t.background;p?p.isColor&&(u.color.copy(p),t.background=null,d=!0):(u.color.copy(_clearColor),d=!0);for(let f=0;f<6;f++){const e=f%3;0===e?(r.up.set(0,s[f],0),r.lookAt(a[f],0,0)):1===e?(r.up.set(0,0,s[f]),r.lookAt(0,a[f],0)):(r.up.set(0,s[f],0),r.lookAt(0,0,a[f]));const n=this._cubeSize;_setViewport(i,e*n,f>2?n:0,n,n),o.setRenderTarget(i),d&&o.render(h,r),o.render(t,r)}h.geometry.dispose(),h.material.dispose(),o.toneMapping=l,o.autoClear=c,t.background=p}_textureToCubeUV(t,e){const n=this._renderer,i=t.mapping===CubeReflectionMapping||t.mapping===CubeRefractionMapping;i?(null===this._cubemapMaterial&&(this._cubemapMaterial=_getCubemapMaterial()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=_getEquirectMaterial());const r=i?this._cubemapMaterial:this._equirectMaterial,s=new Mesh(this._lodPlanes[0],r);r.uniforms.envMap.value=t;const a=this._cubeSize;_setViewport(e,0,0,3*a,2*a),n.setRenderTarget(e),n.render(s,_flatCamera)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;const i=this._lodPlanes.length;for(let r=1;r<i;r++){const e=Math.sqrt(this._sigmas[r]*this._sigmas[r]-this._sigmas[r-1]*this._sigmas[r-1]),n=_axisDirections[(i-r-1)%_axisDirections.length];this._blur(t,r-1,r,e,n)}e.autoClear=n}_blur(t,e,n,i,r){const s=this._pingPongRenderTarget;this._halfBlur(t,s,e,n,i,"latitudinal",r),this._halfBlur(s,t,n,n,i,"longitudinal",r)}_halfBlur(t,e,n,i,r,s,a){const o=this._renderer,c=this._blurMaterial;"latitudinal"!==s&&"longitudinal"!==s&&console.error("blur direction must be either latitudinal or longitudinal!");const l=new Mesh(this._lodPlanes[i],c),u=c.uniforms,h=this._sizeLods[n]-1,d=isFinite(r)?Math.PI/(2*h):2*Math.PI/(2*MAX_SAMPLES-1),p=r/d,f=isFinite(r)?1+Math.floor(3*p):MAX_SAMPLES;f>MAX_SAMPLES&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${f} samples when the maximum is set to ${MAX_SAMPLES}`);const m=[];let g=0;for(let v=0;v<MAX_SAMPLES;++v){const t=v/p,e=Math.exp(-t*t/2);m.push(e),0===v?g+=e:v<f&&(g+=2*e)}for(let v=0;v<m.length;v++)m[v]=m[v]/g;u.envMap.value=t.texture,u.samples.value=f,u.weights.value=m,u.latitudinal.value="latitudinal"===s,a&&(u.poleAxis.value=a);const{_lodMax:A}=this;u.dTheta.value=d,u.mipInt.value=A-n;const y=this._sizeLods[i];_setViewport(e,3*y*(i>A-LOD_MIN?i-A+LOD_MIN:0),4*(this._cubeSize-y),3*y,2*y),o.setRenderTarget(e),o.render(l,_flatCamera)}}function _createPlanes(t){const e=[],n=[],i=[];let r=t;const s=t-LOD_MIN+1+EXTRA_LOD_SIGMA.length;for(let a=0;a<s;a++){const s=Math.pow(2,r);n.push(s);let o=1/s;a>t-LOD_MIN?o=EXTRA_LOD_SIGMA[a-t+LOD_MIN-1]:0===a&&(o=0),i.push(o);const c=1/(s-2),l=-c,u=1+c,h=[l,l,u,l,u,u,l,l,u,u,l,u],d=6,p=6,f=3,m=2,g=1,A=new Float32Array(f*p*d),y=new Float32Array(m*p*d),v=new Float32Array(g*p*d);for(let t=0;t<d;t++){const e=t%3*2/3-1,n=t>2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];A.set(i,f*p*t),y.set(h,m*p*t);const r=[t,t,t,t,t,t];v.set(r,g*p*t)}const S=new BufferGeometry;S.setAttribute("position",new BufferAttribute(A,f)),S.setAttribute("uv",new BufferAttribute(y,m)),S.setAttribute("faceIndex",new BufferAttribute(v,g)),e.push(S),r>LOD_MIN&&r--}return{lodPlanes:e,sizeLods:n,sigmas:i}}function _createRenderTarget(t,e,n){const i=new WebGLRenderTarget(t,e,n);return i.texture.mapping=CubeUVReflectionMapping,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function _setViewport(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function _getBlurShader(t,e,n){const i=new Float32Array(MAX_SAMPLES),r=new Vector3(0,1,0);return new ShaderMaterial({name:"SphericalGaussianBlur",defines:{n:MAX_SAMPLES,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:_getCommonVertexShader(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include <cube_uv_reflection_fragment>\n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:NoBlending,depthTest:!1,depthWrite:!1})}function _getEquirectMaterial(){return new ShaderMaterial({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:_getCommonVertexShader(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include <common>\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:NoBlending,depthTest:!1,depthWrite:!1})}function _getCubemapMaterial(){return new ShaderMaterial({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:_getCommonVertexShader(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:NoBlending,depthTest:!1,depthWrite:!1})}function _getCommonVertexShader(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function WebGLCubeUVMaps(t){let e=new WeakMap,n=null;function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){const s=r.mapping,a=s===EquirectangularReflectionMapping||s===EquirectangularRefractionMapping,o=s===CubeReflectionMapping||s===CubeRefractionMapping;if(a||o){let s=e.get(r);const c=void 0!==s?s.texture.pmremVersion:0;if(r.isRenderTargetTexture&&r.pmremVersion!==c)return null===n&&(n=new PMREMGenerator(t)),s=a?n.fromEquirectangular(r,s):n.fromCubemap(r,s),s.texture.pmremVersion=r.pmremVersion,e.set(r,s),s.texture;if(void 0!==s)return s.texture;{const c=r.image;return a&&c&&c.height>0||o&&c&&function(t){let e=0;const n=6;for(let i=0;i<n;i++)void 0!==t[i]&&e++;return e===n}(c)?(null===n&&(n=new PMREMGenerator(t)),s=a?n.fromEquirectangular(r):n.fromCubemap(r),s.texture.pmremVersion=r.pmremVersion,e.set(r,s),r.addEventListener("dispose",i),s.texture):null}}}return r},dispose:function(){e=new WeakMap,null!==n&&(n.dispose(),n=null)}}}function WebGLExtensions(t){const e={};function n(n){if(void 0!==e[n])return e[n];let i;switch(n){case"WEBGL_depth_texture":i=t.getExtension("WEBGL_depth_texture")||t.getExtension("MOZ_WEBGL_depth_texture")||t.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":i=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":i=t.getExtension("WEBGL_compressed_texture_s3tc")||t.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":i=t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:i=t.getExtension(n)}return e[n]=i,i}return{has:function(t){return null!==n(t)},init:function(){n("EXT_color_buffer_float"),n("WEBGL_clip_cull_distance"),n("OES_texture_float_linear"),n("EXT_color_buffer_half_float"),n("WEBGL_multisampled_render_to_texture"),n("WEBGL_render_shared_exponent")},get:function(t){const e=n(t);return null===e&&warnOnce("THREE.WebGLRenderer: "+t+" extension not supported."),e}}}function WebGLGeometries(t,e,n,i){const r={},s=new WeakMap;function a(t){const o=t.target;null!==o.index&&e.remove(o.index);for(const n in o.attributes)e.remove(o.attributes[n]);for(const n in o.morphAttributes){const t=o.morphAttributes[n];for(let n=0,i=t.length;n<i;n++)e.remove(t[n])}o.removeEventListener("dispose",a),delete r[o.id];const c=s.get(o);c&&(e.remove(c),s.delete(o)),i.releaseStatesOfGeometry(o),!0===o.isInstancedBufferGeometry&&delete o._maxInstanceCount,n.memory.geometries--}function o(t){const n=[],i=t.index,r=t.attributes.position;let a=0;if(null!==i){const t=i.array;a=i.version;for(let e=0,i=t.length;e<i;e+=3){const i=t[e+0],r=t[e+1],s=t[e+2];n.push(i,r,r,s,s,i)}}else{if(void 0===r)return;{const t=r.array;a=r.version;for(let e=0,i=t.length/3-1;e<i;e+=3){const t=e+0,i=e+1,r=e+2;n.push(t,i,i,r,r,t)}}}const o=new(arrayNeedsUint32(n)?Uint32BufferAttribute:Uint16BufferAttribute)(n,1);o.version=a;const c=s.get(t);c&&e.remove(c),s.set(t,o)}return{get:function(t,e){return!0===r[e.id]||(e.addEventListener("dispose",a),r[e.id]=!0,n.memory.geometries++),e},update:function(n){const i=n.attributes;for(const s in i)e.update(i[s],t.ARRAY_BUFFER);const r=n.morphAttributes;for(const s in r){const n=r[s];for(let i=0,r=n.length;i<r;i++)e.update(n[i],t.ARRAY_BUFFER)}},getWireframeAttribute:function(t){const e=s.get(t);if(e){const n=t.index;null!==n&&e.version<n.version&&o(t)}else o(t);return s.get(t)}}}function WebGLIndexedBufferRenderer(t,e,n){let i,r,s;function a(e,a,o){0!==o&&(t.drawElementsInstanced(i,a,r,e*s,o),n.update(a,i,o))}this.setMode=function(t){i=t},this.setIndex=function(t){r=t.type,s=t.bytesPerElement},this.render=function(e,a){t.drawElements(i,a,r,e*s),n.update(a,i,1)},this.renderInstances=a,this.renderMultiDraw=function(t,s,a){if(0===a)return;e.get("WEBGL_multi_draw").multiDrawElementsWEBGL(i,s,0,r,t,0,a);let o=0;for(let e=0;e<a;e++)o+=s[e];n.update(o,i,1)},this.renderMultiDrawInstances=function(t,o,c,l){if(0===c)return;const u=e.get("WEBGL_multi_draw");if(null===u)for(let e=0;e<t.length;e++)a(t[e]/s,o[e],l[e]);else{u.multiDrawElementsInstancedWEBGL(i,o,0,r,t,0,l,0,c);let e=0;for(let t=0;t<c;t++)e+=o[t];for(let t=0;t<l.length;t++)n.update(e,i,l[t])}}}function WebGLInfo(t){const e={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:e,programs:null,autoReset:!0,reset:function(){e.calls=0,e.triangles=0,e.points=0,e.lines=0},update:function(n,i,r){switch(e.calls++,i){case t.TRIANGLES:e.triangles+=r*(n/3);break;case t.LINES:e.lines+=r*(n/2);break;case t.LINE_STRIP:e.lines+=r*(n-1);break;case t.LINE_LOOP:e.lines+=r*n;break;case t.POINTS:e.points+=r*n;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",i)}}}}function WebGLMorphtargets(t,e,n){const i=new WeakMap,r=new Vector4;return{update:function(s,a,o){const c=s.morphTargetInfluences,l=a.morphAttributes.position||a.morphAttributes.normal||a.morphAttributes.color,u=void 0!==l?l.length:0;let h=i.get(a);if(void 0===h||h.count!==u){let t=function(){A.dispose(),i.delete(a),a.removeEventListener("dispose",t)};void 0!==h&&h.texture.dispose();const n=void 0!==a.morphAttributes.position,s=void 0!==a.morphAttributes.normal,o=void 0!==a.morphAttributes.color,c=a.morphAttributes.position||[],l=a.morphAttributes.normal||[],d=a.morphAttributes.color||[];let p=0;!0===n&&(p=1),!0===s&&(p=2),!0===o&&(p=3);let f=a.attributes.position.count*p,m=1;f>e.maxTextureSize&&(m=Math.ceil(f/e.maxTextureSize),f=e.maxTextureSize);const g=new Float32Array(f*m*4*u),A=new DataArrayTexture(g,f,m,u);A.type=FloatType,A.needsUpdate=!0;const y=4*p;for(let e=0;e<u;e++){const t=c[e],i=l[e],a=d[e],u=f*m*4*e;for(let e=0;e<t.count;e++){const c=e*y;!0===n&&(r.fromBufferAttribute(t,e),g[u+c+0]=r.x,g[u+c+1]=r.y,g[u+c+2]=r.z,g[u+c+3]=0),!0===s&&(r.fromBufferAttribute(i,e),g[u+c+4]=r.x,g[u+c+5]=r.y,g[u+c+6]=r.z,g[u+c+7]=0),!0===o&&(r.fromBufferAttribute(a,e),g[u+c+8]=r.x,g[u+c+9]=r.y,g[u+c+10]=r.z,g[u+c+11]=4===a.itemSize?r.w:1)}}h={count:u,texture:A,size:new Vector2(f,m)},i.set(a,h),a.addEventListener("dispose",t)}if(!0===s.isInstancedMesh&&null!==s.morphTexture)o.getUniforms().setValue(t,"morphTexture",s.morphTexture,n);else{let e=0;for(let t=0;t<c.length;t++)e+=c[t];const n=a.morphTargetsRelative?1:1-e;o.getUniforms().setValue(t,"morphTargetBaseInfluence",n),o.getUniforms().setValue(t,"morphTargetInfluences",c)}o.getUniforms().setValue(t,"morphTargetsTexture",h.texture,n),o.getUniforms().setValue(t,"morphTargetsTextureSize",h.size)}}}function WebGLObjects(t,e,n,i){let r=new WeakMap;function s(t){const e=t.target;e.removeEventListener("dispose",s),n.remove(e.instanceMatrix),null!==e.instanceColor&&n.remove(e.instanceColor)}return{update:function(a){const o=i.render.frame,c=a.geometry,l=e.get(a,c);if(r.get(l)!==o&&(e.update(l),r.set(l,o)),a.isInstancedMesh&&(!1===a.hasEventListener("dispose",s)&&a.addEventListener("dispose",s),r.get(a)!==o&&(n.update(a.instanceMatrix,t.ARRAY_BUFFER),null!==a.instanceColor&&n.update(a.instanceColor,t.ARRAY_BUFFER),r.set(a,o))),a.isSkinnedMesh){const t=a.skeleton;r.get(t)!==o&&(t.update(),r.set(t,o))}return l},dispose:function(){r=new WeakMap}}}class DepthTexture extends Texture{constructor(t,e,n,i,r,s,a,o,c,l=DepthFormat){if(l!==DepthFormat&&l!==DepthStencilFormat)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&l===DepthFormat&&(n=UnsignedIntType),void 0===n&&l===DepthStencilFormat&&(n=UnsignedInt248Type),super(null,i,r,s,a,o,l,n,c),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=void 0!==a?a:NearestFilter,this.minFilter=void 0!==o?o:NearestFilter,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(t){return super.copy(t),this.compareFunction=t.compareFunction,this}toJSON(t){const e=super.toJSON(t);return null!==this.compareFunction&&(e.compareFunction=this.compareFunction),e}}const emptyTexture=new Texture,emptyShadowTexture=new DepthTexture(1,1),emptyArrayTexture=new DataArrayTexture,empty3dTexture=new Data3DTexture,emptyCubeTexture=new CubeTexture,arrayCacheF32=[],arrayCacheI32=[],mat4array=new Float32Array(16),mat3array=new Float32Array(9),mat2array=new Float32Array(4);function flatten(t,e,n){const i=t[0];if(i<=0||i>0)return t;const r=e*n;let s=arrayCacheF32[r];if(void 0===s&&(s=new Float32Array(r),arrayCacheF32[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function arraysEqual(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n<i;n++)if(t[n]!==e[n])return!1;return!0}function copyArray(t,e){for(let n=0,i=e.length;n<i;n++)t[n]=e[n]}function allocTexUnits(t,e){let n=arrayCacheI32[e];void 0===n&&(n=new Int32Array(e),arrayCacheI32[e]=n);for(let i=0;i!==e;++i)n[i]=t.allocateTextureUnit();return n}function setValueV1f(t,e){const n=this.cache;n[0]!==e&&(t.uniform1f(this.addr,e),n[0]=e)}function setValueV2f(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y||(t.uniform2f(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(arraysEqual(n,e))return;t.uniform2fv(this.addr,e),copyArray(n,e)}}function setValueV3f(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z||(t.uniform3f(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else if(void 0!==e.r)n[0]===e.r&&n[1]===e.g&&n[2]===e.b||(t.uniform3f(this.addr,e.r,e.g,e.b),n[0]=e.r,n[1]=e.g,n[2]=e.b);else{if(arraysEqual(n,e))return;t.uniform3fv(this.addr,e),copyArray(n,e)}}function setValueV4f(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z&&n[3]===e.w||(t.uniform4f(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(arraysEqual(n,e))return;t.uniform4fv(this.addr,e),copyArray(n,e)}}function setValueM2(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(arraysEqual(n,e))return;t.uniformMatrix2fv(this.addr,!1,e),copyArray(n,e)}else{if(arraysEqual(n,i))return;mat2array.set(i),t.uniformMatrix2fv(this.addr,!1,mat2array),copyArray(n,i)}}function setValueM3(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(arraysEqual(n,e))return;t.uniformMatrix3fv(this.addr,!1,e),copyArray(n,e)}else{if(arraysEqual(n,i))return;mat3array.set(i),t.uniformMatrix3fv(this.addr,!1,mat3array),copyArray(n,i)}}function setValueM4(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(arraysEqual(n,e))return;t.uniformMatrix4fv(this.addr,!1,e),copyArray(n,e)}else{if(arraysEqual(n,i))return;mat4array.set(i),t.uniformMatrix4fv(this.addr,!1,mat4array),copyArray(n,i)}}function setValueV1i(t,e){const n=this.cache;n[0]!==e&&(t.uniform1i(this.addr,e),n[0]=e)}function setValueV2i(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y||(t.uniform2i(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(arraysEqual(n,e))return;t.uniform2iv(this.addr,e),copyArray(n,e)}}function setValueV3i(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z||(t.uniform3i(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else{if(arraysEqual(n,e))return;t.uniform3iv(this.addr,e),copyArray(n,e)}}function setValueV4i(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z&&n[3]===e.w||(t.uniform4i(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(arraysEqual(n,e))return;t.uniform4iv(this.addr,e),copyArray(n,e)}}function setValueV1ui(t,e){const n=this.cache;n[0]!==e&&(t.uniform1ui(this.addr,e),n[0]=e)}function setValueV2ui(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y||(t.uniform2ui(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(arraysEqual(n,e))return;t.uniform2uiv(this.addr,e),copyArray(n,e)}}function setValueV3ui(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z||(t.uniform3ui(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else{if(arraysEqual(n,e))return;t.uniform3uiv(this.addr,e),copyArray(n,e)}}function setValueV4ui(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z&&n[3]===e.w||(t.uniform4ui(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(arraysEqual(n,e))return;t.uniform4uiv(this.addr,e),copyArray(n,e)}}function setValueT1(t,e,n){const i=this.cache,r=n.allocateTextureUnit();let s;i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),this.type===t.SAMPLER_2D_SHADOW?(emptyShadowTexture.compareFunction=LessEqualCompare,s=emptyShadowTexture):s=emptyTexture,n.setTexture2D(e||s,r)}function setValueT3D1(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture3D(e||empty3dTexture,r)}function setValueT6(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTextureCube(e||emptyCubeTexture,r)}function setValueT2DArray1(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture2DArray(e||emptyArrayTexture,r)}function getSingularSetter(t){switch(t){case 5126:return setValueV1f;case 35664:return setValueV2f;case 35665:return setValueV3f;case 35666:return setValueV4f;case 35674:return setValueM2;case 35675:return setValueM3;case 35676:return setValueM4;case 5124:case 35670:return setValueV1i;case 35667:case 35671:return setValueV2i;case 35668:case 35672:return setValueV3i;case 35669:case 35673:return setValueV4i;case 5125:return setValueV1ui;case 36294:return setValueV2ui;case 36295:return setValueV3ui;case 36296:return setValueV4ui;case 35678:case 36198:case 36298:case 36306:case 35682:return setValueT1;case 35679:case 36299:case 36307:return setValueT3D1;case 35680:case 36300:case 36308:case 36293:return setValueT6;case 36289:case 36303:case 36311:case 36292:return setValueT2DArray1}}function setValueV1fArray(t,e){t.uniform1fv(this.addr,e)}function setValueV2fArray(t,e){const n=flatten(e,this.size,2);t.uniform2fv(this.addr,n)}function setValueV3fArray(t,e){const n=flatten(e,this.size,3);t.uniform3fv(this.addr,n)}function setValueV4fArray(t,e){const n=flatten(e,this.size,4);t.uniform4fv(this.addr,n)}function setValueM2Array(t,e){const n=flatten(e,this.size,4);t.uniformMatrix2fv(this.addr,!1,n)}function setValueM3Array(t,e){const n=flatten(e,this.size,9);t.uniformMatrix3fv(this.addr,!1,n)}function setValueM4Array(t,e){const n=flatten(e,this.size,16);t.uniformMatrix4fv(this.addr,!1,n)}function setValueV1iArray(t,e){t.uniform1iv(this.addr,e)}function setValueV2iArray(t,e){t.uniform2iv(this.addr,e)}function setValueV3iArray(t,e){t.uniform3iv(this.addr,e)}function setValueV4iArray(t,e){t.uniform4iv(this.addr,e)}function setValueV1uiArray(t,e){t.uniform1uiv(this.addr,e)}function setValueV2uiArray(t,e){t.uniform2uiv(this.addr,e)}function setValueV3uiArray(t,e){t.uniform3uiv(this.addr,e)}function setValueV4uiArray(t,e){t.uniform4uiv(this.addr,e)}function setValueT1Array(t,e,n){const i=this.cache,r=e.length,s=allocTexUnits(n,r);arraysEqual(i,s)||(t.uniform1iv(this.addr,s),copyArray(i,s));for(let a=0;a!==r;++a)n.setTexture2D(e[a]||emptyTexture,s[a])}function setValueT3DArray(t,e,n){const i=this.cache,r=e.length,s=allocTexUnits(n,r);arraysEqual(i,s)||(t.uniform1iv(this.addr,s),copyArray(i,s));for(let a=0;a!==r;++a)n.setTexture3D(e[a]||empty3dTexture,s[a])}function setValueT6Array(t,e,n){const i=this.cache,r=e.length,s=allocTexUnits(n,r);arraysEqual(i,s)||(t.uniform1iv(this.addr,s),copyArray(i,s));for(let a=0;a!==r;++a)n.setTextureCube(e[a]||emptyCubeTexture,s[a])}function setValueT2DArrayArray(t,e,n){const i=this.cache,r=e.length,s=allocTexUnits(n,r);arraysEqual(i,s)||(t.uniform1iv(this.addr,s),copyArray(i,s));for(let a=0;a!==r;++a)n.setTexture2DArray(e[a]||emptyArrayTexture,s[a])}function getPureArraySetter(t){switch(t){case 5126:return setValueV1fArray;case 35664:return setValueV2fArray;case 35665:return setValueV3fArray;case 35666:return setValueV4fArray;case 35674:return setValueM2Array;case 35675:return setValueM3Array;case 35676:return setValueM4Array;case 5124:case 35670:return setValueV1iArray;case 35667:case 35671:return setValueV2iArray;case 35668:case 35672:return setValueV3iArray;case 35669:case 35673:return setValueV4iArray;case 5125:return setValueV1uiArray;case 36294:return setValueV2uiArray;case 36295:return setValueV3uiArray;case 36296:return setValueV4uiArray;case 35678:case 36198:case 36298:case 36306:case 35682:return setValueT1Array;case 35679:case 36299:case 36307:return setValueT3DArray;case 35680:case 36300:case 36308:case 36293:return setValueT6Array;case 36289:case 36303:case 36311:case 36292:return setValueT2DArrayArray}}class SingleUniform{constructor(t,e,n){this.id=t,this.addr=n,this.cache=[],this.type=e.type,this.setValue=getSingularSetter(e.type)}}class PureArrayUniform{constructor(t,e,n){this.id=t,this.addr=n,this.cache=[],this.type=e.type,this.size=e.size,this.setValue=getPureArraySetter(e.type)}}class StructuredUniform{constructor(t){this.id=t,this.seq=[],this.map={}}setValue(t,e,n){const i=this.seq;for(let r=0,s=i.length;r!==s;++r){const s=i[r];s.setValue(t,e[s.id],n)}}}const RePathPart=/(\w+)(\])?(\[|\.)?/g;function addUniform(t,e){t.seq.push(e),t.map[e.id]=e}function parseUniform(t,e,n){const i=t.name,r=i.length;for(RePathPart.lastIndex=0;;){const s=RePathPart.exec(i),a=RePathPart.lastIndex;let o=s[1];const c="]"===s[2],l=s[3];if(c&&(o|=0),void 0===l||"["===l&&a+2===r){addUniform(n,void 0===l?new SingleUniform(o,t,e):new PureArrayUniform(o,t,e));break}{let t=n.map[o];void 0===t&&(t=new StructuredUniform(o),addUniform(n,t)),n=t}}}class WebGLUniforms{constructor(t,e){this.seq=[],this.map={};const n=t.getProgramParameter(e,t.ACTIVE_UNIFORMS);for(let i=0;i<n;++i){const n=t.getActiveUniform(e,i);parseUniform(n,t.getUniformLocation(e,n.name),this)}}setValue(t,e,n,i){const r=this.map[e];void 0!==r&&r.setValue(t,n,i)}setOptional(t,e,n){const i=e[n];void 0!==i&&this.setValue(t,n,i)}static upload(t,e,n,i){for(let r=0,s=e.length;r!==s;++r){const s=e[r],a=n[s.id];!1!==a.needsUpdate&&s.setValue(t,a.value,i)}}static seqWithValue(t,e){const n=[];for(let i=0,r=t.length;i!==r;++i){const r=t[i];r.id in e&&n.push(r)}return n}}function WebGLShader(t,e,n){const i=t.createShader(e);return t.shaderSource(i,n),t.compileShader(i),i}const COMPLETION_STATUS_KHR=37297;let programIdCount=0;function handleSource(t,e){const n=t.split("\n"),i=[],r=Math.max(e-6,0),s=Math.min(e+6,n.length);for(let a=r;a<s;a++){const t=a+1;i.push(`${t===e?">":" "} ${t}: ${n[a]}`)}return i.join("\n")}function getEncodingComponents(t){const e=ColorManagement.getPrimaries(ColorManagement.workingColorSpace),n=ColorManagement.getPrimaries(t);let i;switch(e===n?i="":e===P3Primaries&&n===Rec709Primaries?i="LinearDisplayP3ToLinearSRGB":e===Rec709Primaries&&n===P3Primaries&&(i="LinearSRGBToLinearDisplayP3"),t){case LinearSRGBColorSpace:case LinearDisplayP3ColorSpace:return[i,"LinearTransferOETF"];case SRGBColorSpace:case DisplayP3ColorSpace:return[i,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",t),[i,"LinearTransferOETF"]}}function getShaderErrors(t,e,n){const i=t.getShaderParameter(e,t.COMPILE_STATUS),r=t.getShaderInfoLog(e).trim();if(i&&""===r)return"";const s=/ERROR: 0:(\d+)/.exec(r);if(s){const i=parseInt(s[1]);return n.toUpperCase()+"\n\n"+r+"\n\n"+handleSource(t.getShaderSource(e),i)}return r}function getTexelEncodingFunction(t,e){const n=getEncodingComponents(e);return`vec4 ${t}( vec4 value ) { return ${n[0]}( ${n[1]}( value ) ); }`}function getToneMappingFunction(t,e){let n;switch(e){case LinearToneMapping:n="Linear";break;case ReinhardToneMapping:n="Reinhard";break;case CineonToneMapping:n="OptimizedCineon";break;case ACESFilmicToneMapping:n="ACESFilmic";break;case AgXToneMapping:n="AgX";break;case NeutralToneMapping:n="Neutral";break;case CustomToneMapping:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function generateVertexExtensions(t){return[t.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",t.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(filterEmptyLine).join("\n")}function generateDefines(t){const e=[];for(const n in t){const i=t[n];!1!==i&&e.push("#define "+n+" "+i)}return e.join("\n")}function fetchAttributeLocations(t,e){const n={},i=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES);for(let r=0;r<i;r++){const i=t.getActiveAttrib(e,r),s=i.name;let a=1;i.type===t.FLOAT_MAT2&&(a=2),i.type===t.FLOAT_MAT3&&(a=3),i.type===t.FLOAT_MAT4&&(a=4),n[s]={type:i.type,location:t.getAttribLocation(e,s),locationSize:a}}return n}function filterEmptyLine(t){return""!==t}function replaceLightNums(t,e){const n=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function replaceClippingPlaneNums(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const includePattern=/^[ \t]*#include +<([\w\d./]+)>/gm;function resolveIncludes(t){return t.replace(includePattern,includeReplacer)}const shaderChunkMap=new Map;function includeReplacer(t,e){let n=ShaderChunk[e];if(void 0===n){const t=shaderChunkMap.get(e);if(void 0===t)throw new Error("Can not resolve #include <"+e+">");n=ShaderChunk[t],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,t)}return resolveIncludes(n)}const unrollLoopPattern=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function unrollLoops(t){return t.replace(unrollLoopPattern,loopReplacer)}function loopReplacer(t,e,n,i){let r="";for(let s=parseInt(e);s<parseInt(n);s++)r+=i.replace(/\[\s*i\s*\]/g,"[ "+s+" ]").replace(/UNROLLED_LOOP_INDEX/g,s);return r}function generatePrecision(t){let e=`precision ${t.precision} float;\n\tprecision ${t.precision} int;\n\tprecision ${t.precision} sampler2D;\n\tprecision ${t.precision} samplerCube;\n\tprecision ${t.precision} sampler3D;\n\tprecision ${t.precision} sampler2DArray;\n\tprecision ${t.precision} sampler2DShadow;\n\tprecision ${t.precision} samplerCubeShadow;\n\tprecision ${t.precision} sampler2DArrayShadow;\n\tprecision ${t.precision} isampler2D;\n\tprecision ${t.precision} isampler3D;\n\tprecision ${t.precision} isamplerCube;\n\tprecision ${t.precision} isampler2DArray;\n\tprecision ${t.precision} usampler2D;\n\tprecision ${t.precision} usampler3D;\n\tprecision ${t.precision} usamplerCube;\n\tprecision ${t.precision} usampler2DArray;\n\t`;return"highp"===t.precision?e+="\n#define HIGH_PRECISION":"mediump"===t.precision?e+="\n#define MEDIUM_PRECISION":"lowp"===t.precision&&(e+="\n#define LOW_PRECISION"),e}function generateShadowMapTypeDefine(t){let e="SHADOWMAP_TYPE_BASIC";return t.shadowMapType===PCFShadowMap?e="SHADOWMAP_TYPE_PCF":t.shadowMapType===PCFSoftShadowMap?e="SHADOWMAP_TYPE_PCF_SOFT":t.shadowMapType===VSMShadowMap&&(e="SHADOWMAP_TYPE_VSM"),e}function generateEnvMapTypeDefine(t){let e="ENVMAP_TYPE_CUBE";if(t.envMap)switch(t.envMapMode){case CubeReflectionMapping:case CubeRefractionMapping:e="ENVMAP_TYPE_CUBE";break;case CubeUVReflectionMapping:e="ENVMAP_TYPE_CUBE_UV"}return e}function generateEnvMapModeDefine(t){let e="ENVMAP_MODE_REFLECTION";if(t.envMap&&t.envMapMode===CubeRefractionMapping)e="ENVMAP_MODE_REFRACTION";return e}function generateEnvMapBlendingDefine(t){let e="ENVMAP_BLENDING_NONE";if(t.envMap)switch(t.combine){case MultiplyOperation:e="ENVMAP_BLENDING_MULTIPLY";break;case MixOperation:e="ENVMAP_BLENDING_MIX";break;case AddOperation:e="ENVMAP_BLENDING_ADD"}return e}function generateCubeUVSize(t){const e=t.envMapCubeUVHeight;if(null===e)return null;const n=Math.log2(e)-2,i=1/e;return{texelWidth:1/(3*Math.max(Math.pow(2,n),112)),texelHeight:i,maxMip:n}}function WebGLProgram(t,e,n,i){const r=t.getContext(),s=n.defines;let a=n.vertexShader,o=n.fragmentShader;const c=generateShadowMapTypeDefine(n),l=generateEnvMapTypeDefine(n),u=generateEnvMapModeDefine(n),h=generateEnvMapBlendingDefine(n),d=generateCubeUVSize(n),p=generateVertexExtensions(n),f=generateDefines(s),m=r.createProgram();let g,A,y=n.glslVersion?"#version "+n.glslVersion+"\n":"";n.isRawShaderMaterial?(g=["#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,f].filter(filterEmptyLine).join("\n"),g.length>0&&(g+="\n"),A=["#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,f].filter(filterEmptyLine).join("\n"),A.length>0&&(A+="\n")):(g=[generatePrecision(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,f,n.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",n.batching?"#define USE_BATCHING":"",n.batchingColor?"#define USE_BATCHING_COLOR":"",n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.instancingMorph?"#define USE_INSTANCING_MORPH":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+u:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+n.anisotropyMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents&&!1===n.flatShading?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+c:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH","\tuniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(filterEmptyLine).join("\n"),A=[generatePrecision(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,f,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+l:"",n.envMap?"#define "+u:"",n.envMap?"#define "+h:"",d?"#define CUBEUV_TEXEL_WIDTH "+d.texelWidth:"",d?"#define CUBEUV_TEXEL_HEIGHT "+d.texelHeight:"",d?"#define CUBEUV_MAX_MIP "+d.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.dispersion?"#define USE_DISPERSION":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents&&!1===n.flatShading?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor||n.batchingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+c:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==NoToneMapping?"#define TONE_MAPPING":"",n.toneMapping!==NoToneMapping?ShaderChunk.tonemapping_pars_fragment:"",n.toneMapping!==NoToneMapping?getToneMappingFunction("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",ShaderChunk.colorspace_pars_fragment,getTexelEncodingFunction("linearToOutputTexel",n.outputColorSpace),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(filterEmptyLine).join("\n")),a=resolveIncludes(a),a=replaceLightNums(a,n),a=replaceClippingPlaneNums(a,n),o=resolveIncludes(o),o=replaceLightNums(o,n),o=replaceClippingPlaneNums(o,n),a=unrollLoops(a),o=unrollLoops(o),!0!==n.isRawShaderMaterial&&(y="#version 300 es\n",g=[p,"#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+g,A=["#define varying in",n.glslVersion===GLSL3?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===GLSL3?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+A);const v=y+g+a,S=y+A+o,x=WebGLShader(r,r.VERTEX_SHADER,v),b=WebGLShader(r,r.FRAGMENT_SHADER,S);function T(e){if(t.debug.checkShaderErrors){const n=r.getProgramInfoLog(m).trim(),i=r.getShaderInfoLog(x).trim(),s=r.getShaderInfoLog(b).trim();let a=!0,o=!0;if(!1===r.getProgramParameter(m,r.LINK_STATUS))if(a=!1,"function"==typeof t.debug.onShaderError)t.debug.onShaderError(r,m,x,b);else{const t=getShaderErrors(r,x,"vertex"),i=getShaderErrors(r,b,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(m,r.VALIDATE_STATUS)+"\n\nMaterial Name: "+e.name+"\nMaterial Type: "+e.type+"\n\nProgram Info Log: "+n+"\n"+t+"\n"+i)}else""!==n?console.warn("THREE.WebGLProgram: Program Info Log:",n):""!==i&&""!==s||(o=!1);o&&(e.diagnostics={runnable:a,programLog:n,vertexShader:{log:i,prefix:g},fragmentShader:{log:s,prefix:A}})}r.deleteShader(x),r.deleteShader(b),I=new WebGLUniforms(r,m),M=fetchAttributeLocations(r,m)}let I,M;r.attachShader(m,x),r.attachShader(m,b),void 0!==n.index0AttributeName?r.bindAttribLocation(m,0,n.index0AttributeName):!0===n.morphTargets&&r.bindAttribLocation(m,0,"position"),r.linkProgram(m),this.getUniforms=function(){return void 0===I&&T(this),I},this.getAttributes=function(){return void 0===M&&T(this),M};let E=!1===n.rendererExtensionParallelShaderCompile;return this.isReady=function(){return!1===E&&(E=r.getProgramParameter(m,COMPLETION_STATUS_KHR)),E},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(m),this.program=void 0},this.type=n.shaderType,this.name=n.shaderName,this.id=programIdCount++,this.cacheKey=e,this.usedTimes=1,this.program=m,this.vertexShader=x,this.fragmentShader=b,this}let _id$1=0;class WebGLShaderCache{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(t){const e=t.vertexShader,n=t.fragmentShader,i=this._getShaderStage(e),r=this._getShaderStage(n),s=this._getShaderCacheForMaterial(t);return!1===s.has(i)&&(s.add(i),i.usedTimes++),!1===s.has(r)&&(s.add(r),r.usedTimes++),this}remove(t){const e=this.materialCache.get(t);for(const n of e)n.usedTimes--,0===n.usedTimes&&this.shaderCache.delete(n.code);return this.materialCache.delete(t),this}getVertexShaderID(t){return this._getShaderStage(t.vertexShader).id}getFragmentShaderID(t){return this._getShaderStage(t.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(t){const e=this.materialCache;let n=e.get(t);return void 0===n&&(n=new Set,e.set(t,n)),n}_getShaderStage(t){const e=this.shaderCache;let n=e.get(t);return void 0===n&&(n=new WebGLShaderStage(t),e.set(t,n)),n}}class WebGLShaderStage{constructor(t){this.id=_id$1++,this.code=t,this.usedTimes=0}}function WebGLPrograms(t,e,n,i,r,s,a){const o=new Layers,c=new WebGLShaderCache,l=new Set,u=[],h=r.logarithmicDepthBuffer,d=r.vertexTextures;let p=r.precision;const f={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function m(t){return l.add(t),0===t?"uv":`uv${t}`}return{getParameters:function(s,o,u,g,A){const y=g.fog,v=A.geometry,S=s.isMeshStandardMaterial?g.environment:null,x=(s.isMeshStandardMaterial?n:e).get(s.envMap||S),b=x&&x.mapping===CubeUVReflectionMapping?x.image.height:null,T=f[s.type];null!==s.precision&&(p=r.getMaxPrecision(s.precision),p!==s.precision&&console.warn("THREE.WebGLProgram.getParameters:",s.precision,"not supported, using",p,"instead."));const I=v.morphAttributes.position||v.morphAttributes.normal||v.morphAttributes.color,M=void 0!==I?I.length:0;let E,w,R,C,k=0;if(void 0!==v.morphAttributes.position&&(k=1),void 0!==v.morphAttributes.normal&&(k=2),void 0!==v.morphAttributes.color&&(k=3),T){const t=ShaderLib[T];E=t.vertexShader,w=t.fragmentShader}else E=s.vertexShader,w=s.fragmentShader,c.update(s),R=c.getVertexShaderID(s),C=c.getFragmentShaderID(s);const _=t.getRenderTarget(),L=!0===A.isInstancedMesh,U=!0===A.isBatchedMesh,N=!!s.map,F=!!s.matcap,B=!!x,V=!!s.aoMap,P=!!s.lightMap,W=!!s.bumpMap,D=!!s.normalMap,O=!!s.displacementMap,J=!!s.emissiveMap,G=!!s.metalnessMap,H=!!s.roughnessMap,q=s.anisotropy>0,j=s.clearcoat>0,K=s.dispersion>0,z=s.iridescence>0,X=s.sheen>0,Z=s.transmission>0,Q=q&&!!s.anisotropyMap,Y=j&&!!s.clearcoatMap,$=j&&!!s.clearcoatNormalMap,tt=j&&!!s.clearcoatRoughnessMap,et=z&&!!s.iridescenceMap,nt=z&&!!s.iridescenceThicknessMap,it=X&&!!s.sheenColorMap,rt=X&&!!s.sheenRoughnessMap,st=!!s.specularMap,at=!!s.specularColorMap,ot=!!s.specularIntensityMap,ct=Z&&!!s.transmissionMap,lt=Z&&!!s.thicknessMap,ut=!!s.gradientMap,ht=!!s.alphaMap,dt=s.alphaTest>0,pt=!!s.alphaHash,ft=!!s.extensions;let mt=NoToneMapping;s.toneMapped&&(null!==_&&!0!==_.isXRRenderTarget||(mt=t.toneMapping));const gt={shaderID:T,shaderType:s.type,shaderName:s.name,vertexShader:E,fragmentShader:w,defines:s.defines,customVertexShaderID:R,customFragmentShaderID:C,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:p,batching:U,batchingColor:U&&null!==A._colorsTexture,instancing:L,instancingColor:L&&null!==A.instanceColor,instancingMorph:L&&null!==A.morphTexture,supportsVertexTextures:d,outputColorSpace:null===_?t.outputColorSpace:!0===_.isXRRenderTarget?_.texture.colorSpace:LinearSRGBColorSpace,alphaToCoverage:!!s.alphaToCoverage,map:N,matcap:F,envMap:B,envMapMode:B&&x.mapping,envMapCubeUVHeight:b,aoMap:V,lightMap:P,bumpMap:W,normalMap:D,displacementMap:d&&O,emissiveMap:J,normalMapObjectSpace:D&&s.normalMapType===ObjectSpaceNormalMap,normalMapTangentSpace:D&&s.normalMapType===TangentSpaceNormalMap,metalnessMap:G,roughnessMap:H,anisotropy:q,anisotropyMap:Q,clearcoat:j,clearcoatMap:Y,clearcoatNormalMap:$,clearcoatRoughnessMap:tt,dispersion:K,iridescence:z,iridescenceMap:et,iridescenceThicknessMap:nt,sheen:X,sheenColorMap:it,sheenRoughnessMap:rt,specularMap:st,specularColorMap:at,specularIntensityMap:ot,transmission:Z,transmissionMap:ct,thicknessMap:lt,gradientMap:ut,opaque:!1===s.transparent&&s.blending===NormalBlending&&!1===s.alphaToCoverage,alphaMap:ht,alphaTest:dt,alphaHash:pt,combine:s.combine,mapUv:N&&m(s.map.channel),aoMapUv:V&&m(s.aoMap.channel),lightMapUv:P&&m(s.lightMap.channel),bumpMapUv:W&&m(s.bumpMap.channel),normalMapUv:D&&m(s.normalMap.channel),displacementMapUv:O&&m(s.displacementMap.channel),emissiveMapUv:J&&m(s.emissiveMap.channel),metalnessMapUv:G&&m(s.metalnessMap.channel),roughnessMapUv:H&&m(s.roughnessMap.channel),anisotropyMapUv:Q&&m(s.anisotropyMap.channel),clearcoatMapUv:Y&&m(s.clearcoatMap.channel),clearcoatNormalMapUv:$&&m(s.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:tt&&m(s.clearcoatRoughnessMap.channel),iridescenceMapUv:et&&m(s.iridescenceMap.channel),iridescenceThicknessMapUv:nt&&m(s.iridescenceThicknessMap.channel),sheenColorMapUv:it&&m(s.sheenColorMap.channel),sheenRoughnessMapUv:rt&&m(s.sheenRoughnessMap.channel),specularMapUv:st&&m(s.specularMap.channel),specularColorMapUv:at&&m(s.specularColorMap.channel),specularIntensityMapUv:ot&&m(s.specularIntensityMap.channel),transmissionMapUv:ct&&m(s.transmissionMap.channel),thicknessMapUv:lt&&m(s.thicknessMap.channel),alphaMapUv:ht&&m(s.alphaMap.channel),vertexTangents:!!v.attributes.tangent&&(D||q),vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!v.attributes.color&&4===v.attributes.color.itemSize,pointsUvs:!0===A.isPoints&&!!v.attributes.uv&&(N||ht),fog:!!y,useFog:!0===s.fog,fogExp2:!!y&&y.isFogExp2,flatShading:!0===s.flatShading,sizeAttenuation:!0===s.sizeAttenuation,logarithmicDepthBuffer:h,skinning:!0===A.isSkinnedMesh,morphTargets:void 0!==v.morphAttributes.position,morphNormals:void 0!==v.morphAttributes.normal,morphColors:void 0!==v.morphAttributes.color,morphTargetsCount:M,morphTextureStride:k,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numLightProbes:o.numLightProbes,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:t.shadowMap.enabled&&u.length>0,shadowMapType:t.shadowMap.type,toneMapping:mt,decodeVideoTexture:N&&!0===s.map.isVideoTexture&&ColorManagement.getTransfer(s.map.colorSpace)===SRGBTransfer,premultipliedAlpha:s.premultipliedAlpha,doubleSided:s.side===DoubleSide,flipSided:s.side===BackSide,useDepthPacking:s.depthPacking>=0,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionClipCullDistance:ft&&!0===s.extensions.clipCullDistance&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(ft&&!0===s.extensions.multiDraw||U)&&i.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:s.customProgramCacheKey()};return gt.vertexUv1s=l.has(1),gt.vertexUv2s=l.has(2),gt.vertexUv3s=l.has(3),l.clear(),gt},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.customVertexShaderID),n.push(e.customFragmentShaderID)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);return!1===e.isRawShaderMaterial&&(!function(t,e){t.push(e.precision),t.push(e.outputColorSpace),t.push(e.envMapMode),t.push(e.envMapCubeUVHeight),t.push(e.mapUv),t.push(e.alphaMapUv),t.push(e.lightMapUv),t.push(e.aoMapUv),t.push(e.bumpMapUv),t.push(e.normalMapUv),t.push(e.displacementMapUv),t.push(e.emissiveMapUv),t.push(e.metalnessMapUv),t.push(e.roughnessMapUv),t.push(e.anisotropyMapUv),t.push(e.clearcoatMapUv),t.push(e.clearcoatNormalMapUv),t.push(e.clearcoatRoughnessMapUv),t.push(e.iridescenceMapUv),t.push(e.iridescenceThicknessMapUv),t.push(e.sheenColorMapUv),t.push(e.sheenRoughnessMapUv),t.push(e.specularMapUv),t.push(e.specularColorMapUv),t.push(e.specularIntensityMapUv),t.push(e.transmissionMapUv),t.push(e.thicknessMapUv),t.push(e.combine),t.push(e.fogExp2),t.push(e.sizeAttenuation),t.push(e.morphTargetsCount),t.push(e.morphAttributeCount),t.push(e.numDirLights),t.push(e.numPointLights),t.push(e.numSpotLights),t.push(e.numSpotLightMaps),t.push(e.numHemiLights),t.push(e.numRectAreaLights),t.push(e.numDirLightShadows),t.push(e.numPointLightShadows),t.push(e.numSpotLightShadows),t.push(e.numSpotLightShadowsWithMaps),t.push(e.numLightProbes),t.push(e.shadowMapType),t.push(e.toneMapping),t.push(e.numClippingPlanes),t.push(e.numClipIntersection),t.push(e.depthPacking)}(n,e),function(t,e){o.disableAll(),e.supportsVertexTextures&&o.enable(0);e.instancing&&o.enable(1);e.instancingColor&&o.enable(2);e.instancingMorph&&o.enable(3);e.matcap&&o.enable(4);e.envMap&&o.enable(5);e.normalMapObjectSpace&&o.enable(6);e.normalMapTangentSpace&&o.enable(7);e.clearcoat&&o.enable(8);e.iridescence&&o.enable(9);e.alphaTest&&o.enable(10);e.vertexColors&&o.enable(11);e.vertexAlphas&&o.enable(12);e.vertexUv1s&&o.enable(13);e.vertexUv2s&&o.enable(14);e.vertexUv3s&&o.enable(15);e.vertexTangents&&o.enable(16);e.anisotropy&&o.enable(17);e.alphaHash&&o.enable(18);e.batching&&o.enable(19);e.dispersion&&o.enable(20);e.batchingColor&&o.enable(21);t.push(o.mask),o.disableAll(),e.fog&&o.enable(0);e.useFog&&o.enable(1);e.flatShading&&o.enable(2);e.logarithmicDepthBuffer&&o.enable(3);e.skinning&&o.enable(4);e.morphTargets&&o.enable(5);e.morphNormals&&o.enable(6);e.morphColors&&o.enable(7);e.premultipliedAlpha&&o.enable(8);e.shadowMapEnabled&&o.enable(9);e.doubleSided&&o.enable(10);e.flipSided&&o.enable(11);e.useDepthPacking&&o.enable(12);e.dithering&&o.enable(13);e.transmission&&o.enable(14);e.sheen&&o.enable(15);e.opaque&&o.enable(16);e.pointsUvs&&o.enable(17);e.decodeVideoTexture&&o.enable(18);e.alphaToCoverage&&o.enable(19);t.push(o.mask)}(n,e),n.push(t.outputColorSpace)),n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=f[t.type];let n;if(e){const t=ShaderLib[e];n=UniformsUtils.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let i;for(let t=0,r=u.length;t<r;t++){const e=u[t];if(e.cacheKey===n){i=e,++i.usedTimes;break}}return void 0===i&&(i=new WebGLProgram(t,n,e,s),u.push(i)),i},releaseProgram:function(t){if(0===--t.usedTimes){const e=u.indexOf(t);u[e]=u[u.length-1],u.pop(),t.destroy()}},releaseShaderCache:function(t){c.remove(t)},programs:u,dispose:function(){c.dispose()}}}function WebGLProperties(){let t=new WeakMap;return{get:function(e){let n=t.get(e);return void 0===n&&(n={},t.set(e,n)),n},remove:function(e){t.delete(e)},update:function(e,n,i){t.get(e)[n]=i},dispose:function(){t=new WeakMap}}}function painterSortStable(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function reversePainterSortStable(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function WebGLRenderList(){const t=[];let e=0;const n=[],i=[],r=[];function s(n,i,r,s,a,o){let c=t[e];return void 0===c?(c={id:n.id,object:n,geometry:i,material:r,groupOrder:s,renderOrder:n.renderOrder,z:a,group:o},t[e]=c):(c.id=n.id,c.object=n,c.geometry=i,c.material=r,c.groupOrder=s,c.renderOrder=n.renderOrder,c.z=a,c.group=o),e++,c}return{opaque:n,transmissive:i,transparent:r,init:function(){e=0,n.length=0,i.length=0,r.length=0},push:function(t,e,a,o,c,l){const u=s(t,e,a,o,c,l);a.transmission>0?i.push(u):!0===a.transparent?r.push(u):n.push(u)},unshift:function(t,e,a,o,c,l){const u=s(t,e,a,o,c,l);a.transmission>0?i.unshift(u):!0===a.transparent?r.unshift(u):n.unshift(u)},finish:function(){for(let n=e,i=t.length;n<i;n++){const e=t[n];if(null===e.id)break;e.id=null,e.object=null,e.geometry=null,e.material=null,e.group=null}},sort:function(t,e){n.length>1&&n.sort(t||painterSortStable),i.length>1&&i.sort(e||reversePainterSortStable),r.length>1&&r.sort(e||reversePainterSortStable)}}}function WebGLRenderLists(){let t=new WeakMap;return{get:function(e,n){const i=t.get(e);let r;return void 0===i?(r=new WebGLRenderList,t.set(e,[r])):n>=i.length?(r=new WebGLRenderList,i.push(r)):r=i[n],r},dispose:function(){t=new WeakMap}}}function UniformsCache(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new Vector3,color:new Color};break;case"SpotLight":n={position:new Vector3,direction:new Vector3,color:new Color,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new Vector3,color:new Color,distance:0,decay:0};break;case"HemisphereLight":n={direction:new Vector3,skyColor:new Color,groundColor:new Color};break;case"RectAreaLight":n={color:new Color,position:new Vector3,halfWidth:new Vector3,halfHeight:new Vector3}}return t[e.id]=n,n}}}function ShadowUniformsCache(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"PointLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}let nextVersion=0;function shadowCastingAndTexturingLightsFirst(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function WebGLLights(t){const e=new UniformsCache,n=ShadowUniformsCache(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let o=0;o<9;o++)i.probe.push(new Vector3);const r=new Vector3,s=new Matrix4,a=new Matrix4;return{setup:function(r){let s=0,a=0,o=0;for(let t=0;t<9;t++)i.probe[t].set(0,0,0);let c=0,l=0,u=0,h=0,d=0,p=0,f=0,m=0,g=0,A=0,y=0;r.sort(shadowCastingAndTexturingLightsFirst);for(let t=0,S=r.length;t<S;t++){const v=r[t],S=v.color,x=v.intensity,b=v.distance,T=v.shadow&&v.shadow.map?v.shadow.map.texture:null;if(v.isAmbientLight)s+=S.r*x,a+=S.g*x,o+=S.b*x;else if(v.isLightProbe){for(let t=0;t<9;t++)i.probe[t].addScaledVector(v.sh.coefficients[t],x);y++}else if(v.isDirectionalLight){const t=e.get(v);if(t.color.copy(v.color).multiplyScalar(v.intensity),v.castShadow){const t=v.shadow,e=n.get(v);e.shadowIntensity=t.intensity,e.shadowBias=t.bias,e.shadowNormalBias=t.normalBias,e.shadowRadius=t.radius,e.shadowMapSize=t.mapSize,i.directionalShadow[c]=e,i.directionalShadowMap[c]=T,i.directionalShadowMatrix[c]=v.shadow.matrix,p++}i.directional[c]=t,c++}else if(v.isSpotLight){const t=e.get(v);t.position.setFromMatrixPosition(v.matrixWorld),t.color.copy(S).multiplyScalar(x),t.distance=b,t.coneCos=Math.cos(v.angle),t.penumbraCos=Math.cos(v.angle*(1-v.penumbra)),t.decay=v.decay,i.spot[u]=t;const r=v.shadow;if(v.map&&(i.spotLightMap[g]=v.map,g++,r.updateMatrices(v),v.castShadow&&A++),i.spotLightMatrix[u]=r.matrix,v.castShadow){const t=n.get(v);t.shadowIntensity=r.intensity,t.shadowBias=r.bias,t.shadowNormalBias=r.normalBias,t.shadowRadius=r.radius,t.shadowMapSize=r.mapSize,i.spotShadow[u]=t,i.spotShadowMap[u]=T,m++}u++}else if(v.isRectAreaLight){const t=e.get(v);t.color.copy(S).multiplyScalar(x),t.halfWidth.set(.5*v.width,0,0),t.halfHeight.set(0,.5*v.height,0),i.rectArea[h]=t,h++}else if(v.isPointLight){const t=e.get(v);if(t.color.copy(v.color).multiplyScalar(v.intensity),t.distance=v.distance,t.decay=v.decay,v.castShadow){const t=v.shadow,e=n.get(v);e.shadowIntensity=t.intensity,e.shadowBias=t.bias,e.shadowNormalBias=t.normalBias,e.shadowRadius=t.radius,e.shadowMapSize=t.mapSize,e.shadowCameraNear=t.camera.near,e.shadowCameraFar=t.camera.far,i.pointShadow[l]=e,i.pointShadowMap[l]=T,i.pointShadowMatrix[l]=v.shadow.matrix,f++}i.point[l]=t,l++}else if(v.isHemisphereLight){const t=e.get(v);t.skyColor.copy(v.color).multiplyScalar(x),t.groundColor.copy(v.groundColor).multiplyScalar(x),i.hemi[d]=t,d++}}h>0&&(!0===t.has("OES_texture_float_linear")?(i.rectAreaLTC1=UniformsLib.LTC_FLOAT_1,i.rectAreaLTC2=UniformsLib.LTC_FLOAT_2):(i.rectAreaLTC1=UniformsLib.LTC_HALF_1,i.rectAreaLTC2=UniformsLib.LTC_HALF_2)),i.ambient[0]=s,i.ambient[1]=a,i.ambient[2]=o;const v=i.hash;v.directionalLength===c&&v.pointLength===l&&v.spotLength===u&&v.rectAreaLength===h&&v.hemiLength===d&&v.numDirectionalShadows===p&&v.numPointShadows===f&&v.numSpotShadows===m&&v.numSpotMaps===g&&v.numLightProbes===y||(i.directional.length=c,i.spot.length=u,i.rectArea.length=h,i.point.length=l,i.hemi.length=d,i.directionalShadow.length=p,i.directionalShadowMap.length=p,i.pointShadow.length=f,i.pointShadowMap.length=f,i.spotShadow.length=m,i.spotShadowMap.length=m,i.directionalShadowMatrix.length=p,i.pointShadowMatrix.length=f,i.spotLightMatrix.length=m+g-A,i.spotLightMap.length=g,i.numSpotLightShadowsWithMaps=A,i.numLightProbes=y,v.directionalLength=c,v.pointLength=l,v.spotLength=u,v.rectAreaLength=h,v.hemiLength=d,v.numDirectionalShadows=p,v.numPointShadows=f,v.numSpotShadows=m,v.numSpotMaps=g,v.numLightProbes=y,i.version=nextVersion++)},setupView:function(t,e){let n=0,o=0,c=0,l=0,u=0;const h=e.matrixWorldInverse;for(let d=0,p=t.length;d<p;d++){const e=t[d];if(e.isDirectionalLight){const t=i.directional[n];t.direction.setFromMatrixPosition(e.matrixWorld),r.setFromMatrixPosition(e.target.matrixWorld),t.direction.sub(r),t.direction.transformDirection(h),n++}else if(e.isSpotLight){const t=i.spot[c];t.position.setFromMatrixPosition(e.matrixWorld),t.position.applyMatrix4(h),t.direction.setFromMatrixPosition(e.matrixWorld),r.setFromMatrixPosition(e.target.matrixWorld),t.direction.sub(r),t.direction.transformDirection(h),c++}else if(e.isRectAreaLight){const t=i.rectArea[l];t.position.setFromMatrixPosition(e.matrixWorld),t.position.applyMatrix4(h),a.identity(),s.copy(e.matrixWorld),s.premultiply(h),a.extractRotation(s),t.halfWidth.set(.5*e.width,0,0),t.halfHeight.set(0,.5*e.height,0),t.halfWidth.applyMatrix4(a),t.halfHeight.applyMatrix4(a),l++}else if(e.isPointLight){const t=i.point[o];t.position.setFromMatrixPosition(e.matrixWorld),t.position.applyMatrix4(h),o++}else if(e.isHemisphereLight){const t=i.hemi[u];t.direction.setFromMatrixPosition(e.matrixWorld),t.direction.transformDirection(h),u++}}},state:i}}function WebGLRenderState(t){const e=new WebGLLights(t),n=[],i=[];const r={lightsArray:n,shadowsArray:i,camera:null,lights:e,transmissionRenderTarget:{}};return{init:function(t){r.camera=t,n.length=0,i.length=0},state:r,setupLights:function(){e.setup(n)},setupLightsView:function(t){e.setupView(n,t)},pushLight:function(t){n.push(t)},pushShadow:function(t){i.push(t)}}}function WebGLRenderStates(t){let e=new WeakMap;return{get:function(n,i=0){const r=e.get(n);let s;return void 0===r?(s=new WebGLRenderState(t),e.set(n,[s])):i>=r.length?(s=new WebGLRenderState(t),r.push(s)):s=r[i],s},dispose:function(){e=new WeakMap}}}class MeshDepthMaterial extends Material{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=BasicDepthPacking,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}class MeshDistanceMaterial extends Material{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}const vertex="void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragment="uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include <packing>\nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}";function WebGLShadowMap(t,e,n){let i=new Frustum;const r=new Vector2,s=new Vector2,a=new Vector4,o=new MeshDepthMaterial({depthPacking:RGBADepthPacking}),c=new MeshDistanceMaterial,l={},u=n.maxTextureSize,h={[FrontSide]:BackSide,[BackSide]:FrontSide,[DoubleSide]:DoubleSide},d=new ShaderMaterial({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Vector2},radius:{value:4}},vertexShader:vertex,fragmentShader:fragment}),p=d.clone();p.defines.HORIZONTAL_PASS=1;const f=new BufferGeometry;f.setAttribute("position",new BufferAttribute(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const m=new Mesh(f,d),g=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=PCFShadowMap;let A=this.type;function y(n,i){const s=e.update(m);d.defines.VSM_SAMPLES!==n.blurSamples&&(d.defines.VSM_SAMPLES=n.blurSamples,p.defines.VSM_SAMPLES=n.blurSamples,d.needsUpdate=!0,p.needsUpdate=!0),null===n.mapPass&&(n.mapPass=new WebGLRenderTarget(r.x,r.y)),d.uniforms.shadow_pass.value=n.map.texture,d.uniforms.resolution.value=n.mapSize,d.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,s,d,m,null),p.uniforms.shadow_pass.value=n.mapPass.texture,p.uniforms.resolution.value=n.mapSize,p.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,s,p,m,null)}function v(e,n,i,r){let s=null;const a=!0===i.isPointLight?e.customDistanceMaterial:e.customDepthMaterial;if(void 0!==a)s=a;else if(s=!0===i.isPointLight?c:o,t.localClippingEnabled&&!0===n.clipShadows&&Array.isArray(n.clippingPlanes)&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){const t=s.uuid,e=n.uuid;let i=l[t];void 0===i&&(i={},l[t]=i);let r=i[e];void 0===r&&(r=s.clone(),i[e]=r,n.addEventListener("dispose",x)),s=r}if(s.visible=n.visible,s.wireframe=n.wireframe,s.side=r===VSMShadowMap?null!==n.shadowSide?n.shadowSide:n.side:null!==n.shadowSide?n.shadowSide:h[n.side],s.alphaMap=n.alphaMap,s.alphaTest=n.alphaTest,s.map=n.map,s.clipShadows=n.clipShadows,s.clippingPlanes=n.clippingPlanes,s.clipIntersection=n.clipIntersection,s.displacementMap=n.displacementMap,s.displacementScale=n.displacementScale,s.displacementBias=n.displacementBias,s.wireframeLinewidth=n.wireframeLinewidth,s.linewidth=n.linewidth,!0===i.isPointLight&&!0===s.isMeshDistanceMaterial){t.properties.get(s).light=i}return s}function S(n,r,s,a,o){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&o===VSMShadowMap)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),c=n.material;if(Array.isArray(c)){const e=i.groups;for(let l=0,u=e.length;l<u;l++){const u=e[l],h=c[u.materialIndex];if(h&&h.visible){const e=v(n,h,a,o);n.onBeforeShadow(t,n,r,s,i,e,u),t.renderBufferDirect(s,null,i,e,n,u),n.onAfterShadow(t,n,r,s,i,e,u)}}}else if(c.visible){const e=v(n,c,a,o);n.onBeforeShadow(t,n,r,s,i,e,null),t.renderBufferDirect(s,null,i,e,n,null),n.onAfterShadow(t,n,r,s,i,e,null)}}const c=n.children;for(let t=0,e=c.length;t<e;t++)S(c[t],r,s,a,o)}function x(t){t.target.removeEventListener("dispose",x);for(const e in l){const n=l[e],i=t.target.uuid;if(i in n){n[i].dispose(),delete n[i]}}}this.render=function(e,n,o){if(!1===g.enabled)return;if(!1===g.autoUpdate&&!1===g.needsUpdate)return;if(0===e.length)return;const c=t.getRenderTarget(),l=t.getActiveCubeFace(),h=t.getActiveMipmapLevel(),d=t.state;d.setBlending(NoBlending),d.buffers.color.setClear(1,1,1,1),d.buffers.depth.setTest(!0),d.setScissorTest(!1);const p=A!==VSMShadowMap&&this.type===VSMShadowMap,f=A===VSMShadowMap&&this.type!==VSMShadowMap;for(let m=0,g=e.length;m<g;m++){const c=e[m],l=c.shadow;if(void 0===l){console.warn("THREE.WebGLShadowMap:",c,"has no shadow.");continue}if(!1===l.autoUpdate&&!1===l.needsUpdate)continue;r.copy(l.mapSize);const h=l.getFrameExtents();if(r.multiply(h),s.copy(l.mapSize),(r.x>u||r.y>u)&&(r.x>u&&(s.x=Math.floor(u/h.x),r.x=s.x*h.x,l.mapSize.x=s.x),r.y>u&&(s.y=Math.floor(u/h.y),r.y=s.y*h.y,l.mapSize.y=s.y)),null===l.map||!0===p||!0===f){const t=this.type!==VSMShadowMap?{minFilter:NearestFilter,magFilter:NearestFilter}:{};null!==l.map&&l.map.dispose(),l.map=new WebGLRenderTarget(r.x,r.y,t),l.map.texture.name=c.name+".shadowMap",l.camera.updateProjectionMatrix()}t.setRenderTarget(l.map),t.clear();const g=l.getViewportCount();for(let t=0;t<g;t++){const e=l.getViewport(t);a.set(s.x*e.x,s.y*e.y,s.x*e.z,s.y*e.w),d.viewport(a),l.updateMatrices(c,t),i=l.getFrustum(),S(n,o,l.camera,c,this.type)}!0!==l.isPointLightShadow&&this.type===VSMShadowMap&&y(l,o),l.needsUpdate=!1}A=this.type,g.needsUpdate=!1,t.setRenderTarget(c,l,h)}}function WebGLState(t){const e=new function(){let e=!1;const n=new Vector4;let i=null;const r=new Vector4(0,0,0,0);return{setMask:function(n){i===n||e||(t.colorMask(n,n,n,n),i=n)},setLocked:function(t){e=t},setClear:function(e,i,s,a,o){!0===o&&(e*=a,i*=a,s*=a),n.set(e,i,s,a),!1===r.equals(n)&&(t.clearColor(e,i,s,a),r.copy(n))},reset:function(){e=!1,i=null,r.set(-1,0,0,0)}}},n=new function(){let e=!1,n=null,i=null,r=null;return{setTest:function(e){e?W(t.DEPTH_TEST):D(t.DEPTH_TEST)},setMask:function(i){n===i||e||(t.depthMask(i),n=i)},setFunc:function(e){if(i!==e){switch(e){case NeverDepth:t.depthFunc(t.NEVER);break;case AlwaysDepth:t.depthFunc(t.ALWAYS);break;case LessDepth:t.depthFunc(t.LESS);break;case LessEqualDepth:t.depthFunc(t.LEQUAL);break;case EqualDepth:t.depthFunc(t.EQUAL);break;case GreaterEqualDepth:t.depthFunc(t.GEQUAL);break;case GreaterDepth:t.depthFunc(t.GREATER);break;case NotEqualDepth:t.depthFunc(t.NOTEQUAL);break;default:t.depthFunc(t.LEQUAL)}i=e}},setLocked:function(t){e=t},setClear:function(e){r!==e&&(t.clearDepth(e),r=e)},reset:function(){e=!1,n=null,i=null,r=null}}},i=new function(){let e=!1,n=null,i=null,r=null,s=null,a=null,o=null,c=null,l=null;return{setTest:function(n){e||(n?W(t.STENCIL_TEST):D(t.STENCIL_TEST))},setMask:function(i){n===i||e||(t.stencilMask(i),n=i)},setFunc:function(e,n,a){i===e&&r===n&&s===a||(t.stencilFunc(e,n,a),i=e,r=n,s=a)},setOp:function(e,n,i){a===e&&o===n&&c===i||(t.stencilOp(e,n,i),a=e,o=n,c=i)},setLocked:function(t){e=t},setClear:function(e){l!==e&&(t.clearStencil(e),l=e)},reset:function(){e=!1,n=null,i=null,r=null,s=null,a=null,o=null,c=null,l=null}}},r=new WeakMap,s=new WeakMap;let a={},o={},c=new WeakMap,l=[],u=null,h=!1,d=null,p=null,f=null,m=null,g=null,A=null,y=null,v=new Color(0,0,0),S=0,x=!1,b=null,T=null,I=null,M=null,E=null;const w=t.getParameter(t.MAX_COMBINED_TEXTURE_IMAGE_UNITS);let R=!1,C=0;const k=t.getParameter(t.VERSION);-1!==k.indexOf("WebGL")?(C=parseFloat(/^WebGL (\d)/.exec(k)[1]),R=C>=1):-1!==k.indexOf("OpenGL ES")&&(C=parseFloat(/^OpenGL ES (\d)/.exec(k)[1]),R=C>=2);let _=null,L={};const U=t.getParameter(t.SCISSOR_BOX),N=t.getParameter(t.VIEWPORT),F=(new Vector4).fromArray(U),B=(new Vector4).fromArray(N);function V(e,n,i,r){const s=new Uint8Array(4),a=t.createTexture();t.bindTexture(e,a),t.texParameteri(e,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(e,t.TEXTURE_MAG_FILTER,t.NEAREST);for(let o=0;o<i;o++)e===t.TEXTURE_3D||e===t.TEXTURE_2D_ARRAY?t.texImage3D(n,0,t.RGBA,1,1,r,0,t.RGBA,t.UNSIGNED_BYTE,s):t.texImage2D(n+o,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,s);return a}const P={};function W(e){!0!==a[e]&&(t.enable(e),a[e]=!0)}function D(e){!1!==a[e]&&(t.disable(e),a[e]=!1)}P[t.TEXTURE_2D]=V(t.TEXTURE_2D,t.TEXTURE_2D,1),P[t.TEXTURE_CUBE_MAP]=V(t.TEXTURE_CUBE_MAP,t.TEXTURE_CUBE_MAP_POSITIVE_X,6),P[t.TEXTURE_2D_ARRAY]=V(t.TEXTURE_2D_ARRAY,t.TEXTURE_2D_ARRAY,1,1),P[t.TEXTURE_3D]=V(t.TEXTURE_3D,t.TEXTURE_3D,1,1),e.setClear(0,0,0,1),n.setClear(1),i.setClear(0),W(t.DEPTH_TEST),n.setFunc(LessEqualDepth),H(!1),q(CullFaceBack),W(t.CULL_FACE),G(NoBlending);const O={[AddEquation]:t.FUNC_ADD,[SubtractEquation]:t.FUNC_SUBTRACT,[ReverseSubtractEquation]:t.FUNC_REVERSE_SUBTRACT};O[MinEquation]=t.MIN,O[MaxEquation]=t.MAX;const J={[ZeroFactor]:t.ZERO,[OneFactor]:t.ONE,[SrcColorFactor]:t.SRC_COLOR,[SrcAlphaFactor]:t.SRC_ALPHA,[SrcAlphaSaturateFactor]:t.SRC_ALPHA_SATURATE,[DstColorFactor]:t.DST_COLOR,[DstAlphaFactor]:t.DST_ALPHA,[OneMinusSrcColorFactor]:t.ONE_MINUS_SRC_COLOR,[OneMinusSrcAlphaFactor]:t.ONE_MINUS_SRC_ALPHA,[OneMinusDstColorFactor]:t.ONE_MINUS_DST_COLOR,[OneMinusDstAlphaFactor]:t.ONE_MINUS_DST_ALPHA,[ConstantColorFactor]:t.CONSTANT_COLOR,[OneMinusConstantColorFactor]:t.ONE_MINUS_CONSTANT_COLOR,[ConstantAlphaFactor]:t.CONSTANT_ALPHA,[OneMinusConstantAlphaFactor]:t.ONE_MINUS_CONSTANT_ALPHA};function G(e,n,i,r,s,a,o,c,l,u){if(e!==NoBlending){if(!1===h&&(W(t.BLEND),h=!0),e===CustomBlending)s=s||n,a=a||i,o=o||r,n===p&&s===g||(t.blendEquationSeparate(O[n],O[s]),p=n,g=s),i===f&&r===m&&a===A&&o===y||(t.blendFuncSeparate(J[i],J[r],J[a],J[o]),f=i,m=r,A=a,y=o),!1!==c.equals(v)&&l===S||(t.blendColor(c.r,c.g,c.b,l),v.copy(c),S=l),d=e,x=!1;else if(e!==d||u!==x){if(p===AddEquation&&g===AddEquation||(t.blendEquation(t.FUNC_ADD),p=AddEquation,g=AddEquation),u)switch(e){case NormalBlending:t.blendFuncSeparate(t.ONE,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case AdditiveBlending:t.blendFunc(t.ONE,t.ONE);break;case SubtractiveBlending:t.blendFuncSeparate(t.ZERO,t.ONE_MINUS_SRC_COLOR,t.ZERO,t.ONE);break;case MultiplyBlending:t.blendFuncSeparate(t.ZERO,t.SRC_COLOR,t.ZERO,t.SRC_ALPHA);break;default:console.error("THREE.WebGLState: Invalid blending: ",e)}else switch(e){case NormalBlending:t.blendFuncSeparate(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case AdditiveBlending:t.blendFunc(t.SRC_ALPHA,t.ONE);break;case SubtractiveBlending:t.blendFuncSeparate(t.ZERO,t.ONE_MINUS_SRC_COLOR,t.ZERO,t.ONE);break;case MultiplyBlending:t.blendFunc(t.ZERO,t.SRC_COLOR);break;default:console.error("THREE.WebGLState: Invalid blending: ",e)}f=null,m=null,A=null,y=null,v.set(0,0,0),S=0,d=e,x=u}}else!0===h&&(D(t.BLEND),h=!1)}function H(e){b!==e&&(e?t.frontFace(t.CW):t.frontFace(t.CCW),b=e)}function q(e){e!==CullFaceNone?(W(t.CULL_FACE),e!==T&&(e===CullFaceBack?t.cullFace(t.BACK):e===CullFaceFront?t.cullFace(t.FRONT):t.cullFace(t.FRONT_AND_BACK))):D(t.CULL_FACE),T=e}function j(e,n,i){e?(W(t.POLYGON_OFFSET_FILL),M===n&&E===i||(t.polygonOffset(n,i),M=n,E=i)):D(t.POLYGON_OFFSET_FILL)}return{buffers:{color:e,depth:n,stencil:i},enable:W,disable:D,bindFramebuffer:function(e,n){return o[e]!==n&&(t.bindFramebuffer(e,n),o[e]=n,e===t.DRAW_FRAMEBUFFER&&(o[t.FRAMEBUFFER]=n),e===t.FRAMEBUFFER&&(o[t.DRAW_FRAMEBUFFER]=n),!0)},drawBuffers:function(e,n){let i=l,r=!1;if(e){i=c.get(n),void 0===i&&(i=[],c.set(n,i));const s=e.textures;if(i.length!==s.length||i[0]!==t.COLOR_ATTACHMENT0){for(let e=0,n=s.length;e<n;e++)i[e]=t.COLOR_ATTACHMENT0+e;i.length=s.length,r=!0}}else i[0]!==t.BACK&&(i[0]=t.BACK,r=!0);r&&t.drawBuffers(i)},useProgram:function(e){return u!==e&&(t.useProgram(e),u=e,!0)},setBlending:G,setMaterial:function(r,s){r.side===DoubleSide?D(t.CULL_FACE):W(t.CULL_FACE);let a=r.side===BackSide;s&&(a=!a),H(a),r.blending===NormalBlending&&!1===r.transparent?G(NoBlending):G(r.blending,r.blendEquation,r.blendSrc,r.blendDst,r.blendEquationAlpha,r.blendSrcAlpha,r.blendDstAlpha,r.blendColor,r.blendAlpha,r.premultipliedAlpha),n.setFunc(r.depthFunc),n.setTest(r.depthTest),n.setMask(r.depthWrite),e.setMask(r.colorWrite);const o=r.stencilWrite;i.setTest(o),o&&(i.setMask(r.stencilWriteMask),i.setFunc(r.stencilFunc,r.stencilRef,r.stencilFuncMask),i.setOp(r.stencilFail,r.stencilZFail,r.stencilZPass)),j(r.polygonOffset,r.polygonOffsetFactor,r.polygonOffsetUnits),!0===r.alphaToCoverage?W(t.SAMPLE_ALPHA_TO_COVERAGE):D(t.SAMPLE_ALPHA_TO_COVERAGE)},setFlipSided:H,setCullFace:q,setLineWidth:function(e){e!==I&&(R&&t.lineWidth(e),I=e)},setPolygonOffset:j,setScissorTest:function(e){e?W(t.SCISSOR_TEST):D(t.SCISSOR_TEST)},activeTexture:function(e){void 0===e&&(e=t.TEXTURE0+w-1),_!==e&&(t.activeTexture(e),_=e)},bindTexture:function(e,n,i){void 0===i&&(i=null===_?t.TEXTURE0+w-1:_);let r=L[i];void 0===r&&(r={type:void 0,texture:void 0},L[i]=r),r.type===e&&r.texture===n||(_!==i&&(t.activeTexture(i),_=i),t.bindTexture(e,n||P[e]),r.type=e,r.texture=n)},unbindTexture:function(){const e=L[_];void 0!==e&&void 0!==e.type&&(t.bindTexture(e.type,null),e.type=void 0,e.texture=void 0)},compressedTexImage2D:function(){try{t.compressedTexImage2D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},compressedTexImage3D:function(){try{t.compressedTexImage3D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},texImage2D:function(){try{t.texImage2D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},texImage3D:function(){try{t.texImage3D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},updateUBOMapping:function(e,n){let i=s.get(n);void 0===i&&(i=new WeakMap,s.set(n,i));let r=i.get(e);void 0===r&&(r=t.getUniformBlockIndex(n,e.name),i.set(e,r))},uniformBlockBinding:function(e,n){const i=s.get(n).get(e);r.get(n)!==i&&(t.uniformBlockBinding(n,i,e.__bindingPointIndex),r.set(n,i))},texStorage2D:function(){try{t.texStorage2D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},texStorage3D:function(){try{t.texStorage3D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},texSubImage2D:function(){try{t.texSubImage2D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},texSubImage3D:function(){try{t.texSubImage3D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},compressedTexSubImage2D:function(){try{t.compressedTexSubImage2D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},compressedTexSubImage3D:function(){try{t.compressedTexSubImage3D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},scissor:function(e){!1===F.equals(e)&&(t.scissor(e.x,e.y,e.z,e.w),F.copy(e))},viewport:function(e){!1===B.equals(e)&&(t.viewport(e.x,e.y,e.z,e.w),B.copy(e))},reset:function(){t.disable(t.BLEND),t.disable(t.CULL_FACE),t.disable(t.DEPTH_TEST),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SCISSOR_TEST),t.disable(t.STENCIL_TEST),t.disable(t.SAMPLE_ALPHA_TO_COVERAGE),t.blendEquation(t.FUNC_ADD),t.blendFunc(t.ONE,t.ZERO),t.blendFuncSeparate(t.ONE,t.ZERO,t.ONE,t.ZERO),t.blendColor(0,0,0,0),t.colorMask(!0,!0,!0,!0),t.clearColor(0,0,0,0),t.depthMask(!0),t.depthFunc(t.LESS),t.clearDepth(1),t.stencilMask(4294967295),t.stencilFunc(t.ALWAYS,0,4294967295),t.stencilOp(t.KEEP,t.KEEP,t.KEEP),t.clearStencil(0),t.cullFace(t.BACK),t.frontFace(t.CCW),t.polygonOffset(0,0),t.activeTexture(t.TEXTURE0),t.bindFramebuffer(t.FRAMEBUFFER,null),t.bindFramebuffer(t.DRAW_FRAMEBUFFER,null),t.bindFramebuffer(t.READ_FRAMEBUFFER,null),t.useProgram(null),t.lineWidth(1),t.scissor(0,0,t.canvas.width,t.canvas.height),t.viewport(0,0,t.canvas.width,t.canvas.height),a={},_=null,L={},o={},c=new WeakMap,l=[],u=null,h=!1,d=null,p=null,f=null,m=null,g=null,A=null,y=null,v=new Color(0,0,0),S=0,x=!1,b=null,T=null,I=null,M=null,E=null,F.set(0,0,t.canvas.width,t.canvas.height),B.set(0,0,t.canvas.width,t.canvas.height),e.reset(),n.reset(),i.reset()}}}function contain(t,e){const n=t.image&&t.image.width?t.image.width/t.image.height:1;return n>e?(t.repeat.x=1,t.repeat.y=n/e,t.offset.x=0,t.offset.y=(1-t.repeat.y)/2):(t.repeat.x=e/n,t.repeat.y=1,t.offset.x=(1-t.repeat.x)/2,t.offset.y=0),t}function cover(t,e){const n=t.image&&t.image.width?t.image.width/t.image.height:1;return n>e?(t.repeat.x=e/n,t.repeat.y=1,t.offset.x=(1-t.repeat.x)/2,t.offset.y=0):(t.repeat.x=1,t.repeat.y=n/e,t.offset.x=0,t.offset.y=(1-t.repeat.y)/2),t}function fill(t){return t.repeat.x=1,t.repeat.y=1,t.offset.x=0,t.offset.y=0,t}function getByteLength(t,e,n,i){const r=getTextureTypeByteLength(i);switch(n){case AlphaFormat:case LuminanceFormat:return t*e;case LuminanceAlphaFormat:return t*e*2;case RedFormat:case RedIntegerFormat:return t*e/r.components*r.byteLength;case RGFormat:case RGIntegerFormat:return t*e*2/r.components*r.byteLength;case RGBFormat:return t*e*3/r.components*r.byteLength;case RGBAFormat:case RGBAIntegerFormat:return t*e*4/r.components*r.byteLength;case RGB_S3TC_DXT1_Format:case RGBA_S3TC_DXT1_Format:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*8;case RGBA_S3TC_DXT3_Format:case RGBA_S3TC_DXT5_Format:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*16;case RGB_PVRTC_2BPPV1_Format:case RGBA_PVRTC_2BPPV1_Format:return Math.max(t,16)*Math.max(e,8)/4;case RGB_PVRTC_4BPPV1_Format:case RGBA_PVRTC_4BPPV1_Format:return Math.max(t,8)*Math.max(e,8)/2;case RGB_ETC1_Format:case RGB_ETC2_Format:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*8;case RGBA_ETC2_EAC_Format:case RGBA_ASTC_4x4_Format:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*16;case RGBA_ASTC_5x4_Format:return Math.floor((t+4)/5)*Math.floor((e+3)/4)*16;case RGBA_ASTC_5x5_Format:return Math.floor((t+4)/5)*Math.floor((e+4)/5)*16;case RGBA_ASTC_6x5_Format:return Math.floor((t+5)/6)*Math.floor((e+4)/5)*16;case RGBA_ASTC_6x6_Format:return Math.floor((t+5)/6)*Math.floor((e+5)/6)*16;case RGBA_ASTC_8x5_Format:return Math.floor((t+7)/8)*Math.floor((e+4)/5)*16;case RGBA_ASTC_8x6_Format:return Math.floor((t+7)/8)*Math.floor((e+5)/6)*16;case RGBA_ASTC_8x8_Format:return Math.floor((t+7)/8)*Math.floor((e+7)/8)*16;case RGBA_ASTC_10x5_Format:return Math.floor((t+9)/10)*Math.floor((e+4)/5)*16;case RGBA_ASTC_10x6_Format:return Math.floor((t+9)/10)*Math.floor((e+5)/6)*16;case RGBA_ASTC_10x8_Format:return Math.floor((t+9)/10)*Math.floor((e+7)/8)*16;case RGBA_ASTC_10x10_Format:return Math.floor((t+9)/10)*Math.floor((e+9)/10)*16;case RGBA_ASTC_12x10_Format:return Math.floor((t+11)/12)*Math.floor((e+9)/10)*16;case RGBA_ASTC_12x12_Format:return Math.floor((t+11)/12)*Math.floor((e+11)/12)*16;case RGBA_BPTC_Format:case RGB_BPTC_SIGNED_Format:case RGB_BPTC_UNSIGNED_Format:return Math.ceil(t/4)*Math.ceil(e/4)*16;case RED_RGTC1_Format:case SIGNED_RED_RGTC1_Format:return Math.ceil(t/4)*Math.ceil(e/4)*8;case RED_GREEN_RGTC2_Format:case SIGNED_RED_GREEN_RGTC2_Format:return Math.ceil(t/4)*Math.ceil(e/4)*16}throw new Error(`Unable to determine texture byte length for ${n} format.`)}function getTextureTypeByteLength(t){switch(t){case UnsignedByteType:case ByteType:return{byteLength:1,components:1};case UnsignedShortType:case ShortType:case HalfFloatType:return{byteLength:2,components:1};case UnsignedShort4444Type:case UnsignedShort5551Type:return{byteLength:2,components:4};case UnsignedIntType:case IntType:case FloatType:return{byteLength:4,components:1};case UnsignedInt5999Type:return{byteLength:4,components:3}}throw new Error(`Unknown texture type ${t}.`)}const TextureUtils={contain,cover,fill,getByteLength};function WebGLTextures(t,e,n,i,r,s,a){const o=e.has("WEBGL_multisampled_render_to_texture")?e.get("WEBGL_multisampled_render_to_texture"):null,c="undefined"!=typeof navigator&&/OculusBrowser/g.test(navigator.userAgent),l=new Vector2,u=new WeakMap;let h;const d=new WeakMap;let p=!1;try{p="undefined"!=typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch(O){}function f(t,e){return p?new OffscreenCanvas(t,e):createElementNS("canvas")}function m(t,e,n){let i=1;const r=D(t);if((r.width>n||r.height>n)&&(i=n/Math.max(r.width,r.height)),i<1){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap||"undefined"!=typeof VideoFrame&&t instanceof VideoFrame){const n=Math.floor(i*r.width),s=Math.floor(i*r.height);void 0===h&&(h=f(n,s));const a=e?f(n,s):h;a.width=n,a.height=s;return a.getContext("2d").drawImage(t,0,0,n,s),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+r.width+"x"+r.height+") to ("+n+"x"+s+")."),a}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+r.width+"x"+r.height+")."),t}return t}function g(t){return t.generateMipmaps&&t.minFilter!==NearestFilter&&t.minFilter!==LinearFilter}function A(e){t.generateMipmap(e)}function y(n,i,r,s,a=!1){if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let o=i;if(i===t.RED&&(r===t.FLOAT&&(o=t.R32F),r===t.HALF_FLOAT&&(o=t.R16F),r===t.UNSIGNED_BYTE&&(o=t.R8)),i===t.RED_INTEGER&&(r===t.UNSIGNED_BYTE&&(o=t.R8UI),r===t.UNSIGNED_SHORT&&(o=t.R16UI),r===t.UNSIGNED_INT&&(o=t.R32UI),r===t.BYTE&&(o=t.R8I),r===t.SHORT&&(o=t.R16I),r===t.INT&&(o=t.R32I)),i===t.RG&&(r===t.FLOAT&&(o=t.RG32F),r===t.HALF_FLOAT&&(o=t.RG16F),r===t.UNSIGNED_BYTE&&(o=t.RG8)),i===t.RG_INTEGER&&(r===t.UNSIGNED_BYTE&&(o=t.RG8UI),r===t.UNSIGNED_SHORT&&(o=t.RG16UI),r===t.UNSIGNED_INT&&(o=t.RG32UI),r===t.BYTE&&(o=t.RG8I),r===t.SHORT&&(o=t.RG16I),r===t.INT&&(o=t.RG32I)),i===t.RGB&&r===t.UNSIGNED_INT_5_9_9_9_REV&&(o=t.RGB9_E5),i===t.RGBA){const e=a?LinearTransfer:ColorManagement.getTransfer(s);r===t.FLOAT&&(o=t.RGBA32F),r===t.HALF_FLOAT&&(o=t.RGBA16F),r===t.UNSIGNED_BYTE&&(o=e===SRGBTransfer?t.SRGB8_ALPHA8:t.RGBA8),r===t.UNSIGNED_SHORT_4_4_4_4&&(o=t.RGBA4),r===t.UNSIGNED_SHORT_5_5_5_1&&(o=t.RGB5_A1)}return o!==t.R16F&&o!==t.R32F&&o!==t.RG16F&&o!==t.RG32F&&o!==t.RGBA16F&&o!==t.RGBA32F||e.get("EXT_color_buffer_float"),o}function v(e,n){let i;return e?null===n||n===UnsignedIntType||n===UnsignedInt248Type?i=t.DEPTH24_STENCIL8:n===FloatType?i=t.DEPTH32F_STENCIL8:n===UnsignedShortType&&(i=t.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):null===n||n===UnsignedIntType||n===UnsignedInt248Type?i=t.DEPTH_COMPONENT24:n===FloatType?i=t.DEPTH_COMPONENT32F:n===UnsignedShortType&&(i=t.DEPTH_COMPONENT16),i}function S(t,e){return!0===g(t)||t.isFramebufferTexture&&t.minFilter!==NearestFilter&&t.minFilter!==LinearFilter?Math.log2(Math.max(e.width,e.height))+1:void 0!==t.mipmaps&&t.mipmaps.length>0?t.mipmaps.length:t.isCompressedTexture&&Array.isArray(t.image)?e.mipmaps.length:1}function x(t){const e=t.target;e.removeEventListener("dispose",x),function(t){const e=i.get(t);if(void 0===e.__webglInit)return;const n=t.source,r=d.get(n);if(r){const i=r[e.__cacheKey];i.usedTimes--,0===i.usedTimes&&T(t),0===Object.keys(r).length&&d.delete(n)}i.remove(t)}(e),e.isVideoTexture&&u.delete(e)}function b(e){const n=e.target;n.removeEventListener("dispose",b),function(e){const n=i.get(e);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let i=0;i<6;i++){if(Array.isArray(n.__webglFramebuffer[i]))for(let e=0;e<n.__webglFramebuffer[i].length;e++)t.deleteFramebuffer(n.__webglFramebuffer[i][e]);else t.deleteFramebuffer(n.__webglFramebuffer[i]);n.__webglDepthbuffer&&t.deleteRenderbuffer(n.__webglDepthbuffer[i])}else{if(Array.isArray(n.__webglFramebuffer))for(let e=0;e<n.__webglFramebuffer.length;e++)t.deleteFramebuffer(n.__webglFramebuffer[e]);else t.deleteFramebuffer(n.__webglFramebuffer);if(n.__webglDepthbuffer&&t.deleteRenderbuffer(n.__webglDepthbuffer),n.__webglMultisampledFramebuffer&&t.deleteFramebuffer(n.__webglMultisampledFramebuffer),n.__webglColorRenderbuffer)for(let e=0;e<n.__webglColorRenderbuffer.length;e++)n.__webglColorRenderbuffer[e]&&t.deleteRenderbuffer(n.__webglColorRenderbuffer[e]);n.__webglDepthRenderbuffer&&t.deleteRenderbuffer(n.__webglDepthRenderbuffer)}const r=e.textures;for(let s=0,o=r.length;s<o;s++){const e=i.get(r[s]);e.__webglTexture&&(t.deleteTexture(e.__webglTexture),a.memory.textures--),i.remove(r[s])}i.remove(e)}(n)}function T(e){const n=i.get(e);t.deleteTexture(n.__webglTexture);const r=e.source;delete d.get(r)[n.__cacheKey],a.memory.textures--}let I=0;function M(e,r){const s=i.get(e);if(e.isVideoTexture&&function(t){const e=a.render.frame;u.get(t)!==e&&(u.set(t,e),t.update())}(e),!1===e.isRenderTargetTexture&&e.version>0&&s.__version!==e.version){const t=e.image;if(null===t)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==t.complete)return void _(s,e,r);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.bindTexture(t.TEXTURE_2D,s.__webglTexture,t.TEXTURE0+r)}const E={[RepeatWrapping]:t.REPEAT,[ClampToEdgeWrapping]:t.CLAMP_TO_EDGE,[MirroredRepeatWrapping]:t.MIRRORED_REPEAT},w={[NearestFilter]:t.NEAREST,[NearestMipmapNearestFilter]:t.NEAREST_MIPMAP_NEAREST,[NearestMipmapLinearFilter]:t.NEAREST_MIPMAP_LINEAR,[LinearFilter]:t.LINEAR,[LinearMipmapNearestFilter]:t.LINEAR_MIPMAP_NEAREST,[LinearMipmapLinearFilter]:t.LINEAR_MIPMAP_LINEAR},R={[NeverCompare]:t.NEVER,[AlwaysCompare]:t.ALWAYS,[LessCompare]:t.LESS,[LessEqualCompare]:t.LEQUAL,[EqualCompare]:t.EQUAL,[GreaterEqualCompare]:t.GEQUAL,[GreaterCompare]:t.GREATER,[NotEqualCompare]:t.NOTEQUAL};function C(n,s){if(s.type!==FloatType||!1!==e.has("OES_texture_float_linear")||s.magFilter!==LinearFilter&&s.magFilter!==LinearMipmapNearestFilter&&s.magFilter!==NearestMipmapLinearFilter&&s.magFilter!==LinearMipmapLinearFilter&&s.minFilter!==LinearFilter&&s.minFilter!==LinearMipmapNearestFilter&&s.minFilter!==NearestMipmapLinearFilter&&s.minFilter!==LinearMipmapLinearFilter||console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),t.texParameteri(n,t.TEXTURE_WRAP_S,E[s.wrapS]),t.texParameteri(n,t.TEXTURE_WRAP_T,E[s.wrapT]),n!==t.TEXTURE_3D&&n!==t.TEXTURE_2D_ARRAY||t.texParameteri(n,t.TEXTURE_WRAP_R,E[s.wrapR]),t.texParameteri(n,t.TEXTURE_MAG_FILTER,w[s.magFilter]),t.texParameteri(n,t.TEXTURE_MIN_FILTER,w[s.minFilter]),s.compareFunction&&(t.texParameteri(n,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE),t.texParameteri(n,t.TEXTURE_COMPARE_FUNC,R[s.compareFunction])),!0===e.has("EXT_texture_filter_anisotropic")){if(s.magFilter===NearestFilter)return;if(s.minFilter!==NearestMipmapLinearFilter&&s.minFilter!==LinearMipmapLinearFilter)return;if(s.type===FloatType&&!1===e.has("OES_texture_float_linear"))return;if(s.anisotropy>1||i.get(s).__currentAnisotropy){const a=e.get("EXT_texture_filter_anisotropic");t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy}}}function k(e,n){let i=!1;void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",x));const r=n.source;let s=d.get(r);void 0===s&&(s={},d.set(r,s));const o=function(t){const e=[];return e.push(t.wrapS),e.push(t.wrapT),e.push(t.wrapR||0),e.push(t.magFilter),e.push(t.minFilter),e.push(t.anisotropy),e.push(t.internalFormat),e.push(t.format),e.push(t.type),e.push(t.generateMipmaps),e.push(t.premultiplyAlpha),e.push(t.flipY),e.push(t.unpackAlignment),e.push(t.colorSpace),e.join()}(n);if(o!==e.__cacheKey){void 0===s[o]&&(s[o]={texture:t.createTexture(),usedTimes:0},a.memory.textures++,i=!0),s[o].usedTimes++;const r=s[e.__cacheKey];void 0!==r&&(s[e.__cacheKey].usedTimes--,0===r.usedTimes&&T(n)),e.__cacheKey=o,e.__webglTexture=s[o].texture}return i}function _(e,a,o){let c=t.TEXTURE_2D;(a.isDataArrayTexture||a.isCompressedArrayTexture)&&(c=t.TEXTURE_2D_ARRAY),a.isData3DTexture&&(c=t.TEXTURE_3D);const l=k(e,a),u=a.source;n.bindTexture(c,e.__webglTexture,t.TEXTURE0+o);const h=i.get(u);if(u.version!==h.__version||!0===l){n.activeTexture(t.TEXTURE0+o);const e=ColorManagement.getPrimaries(ColorManagement.workingColorSpace),i=a.colorSpace===NoColorSpace?null:ColorManagement.getPrimaries(a.colorSpace),d=a.colorSpace===NoColorSpace||e===i?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,a.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,a.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,d);let p=m(a.image,!1,r.maxTextureSize);p=W(a,p);const f=s.convert(a.format,a.colorSpace),x=s.convert(a.type);let b,T=y(a.internalFormat,f,x,a.colorSpace,a.isVideoTexture);C(c,a);const I=a.mipmaps,M=!0!==a.isVideoTexture,E=void 0===h.__version||!0===l,w=u.dataReady,R=S(a,p);if(a.isDepthTexture)T=v(a.format===DepthStencilFormat,a.type),E&&(M?n.texStorage2D(t.TEXTURE_2D,1,T,p.width,p.height):n.texImage2D(t.TEXTURE_2D,0,T,p.width,p.height,0,f,x,null));else if(a.isDataTexture)if(I.length>0){M&&E&&n.texStorage2D(t.TEXTURE_2D,R,T,I[0].width,I[0].height);for(let e=0,i=I.length;e<i;e++)b=I[e],M?w&&n.texSubImage2D(t.TEXTURE_2D,e,0,0,b.width,b.height,f,x,b.data):n.texImage2D(t.TEXTURE_2D,e,T,b.width,b.height,0,f,x,b.data);a.generateMipmaps=!1}else M?(E&&n.texStorage2D(t.TEXTURE_2D,R,T,p.width,p.height),w&&n.texSubImage2D(t.TEXTURE_2D,0,0,0,p.width,p.height,f,x,p.data)):n.texImage2D(t.TEXTURE_2D,0,T,p.width,p.height,0,f,x,p.data);else if(a.isCompressedTexture)if(a.isCompressedArrayTexture){M&&E&&n.texStorage3D(t.TEXTURE_2D_ARRAY,R,T,I[0].width,I[0].height,p.depth);for(let e=0,i=I.length;e<i;e++)if(b=I[e],a.format!==RGBAFormat)if(null!==f)if(M){if(w)if(a.layerUpdates.size>0){const i=getByteLength(b.width,b.height,a.format,a.type);for(const r of a.layerUpdates){const s=b.data.subarray(r*i/b.data.BYTES_PER_ELEMENT,(r+1)*i/b.data.BYTES_PER_ELEMENT);n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,e,0,0,r,b.width,b.height,1,f,s,0,0)}a.clearLayerUpdates()}else n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,e,0,0,0,b.width,b.height,p.depth,f,b.data,0,0)}else n.compressedTexImage3D(t.TEXTURE_2D_ARRAY,e,T,b.width,b.height,p.depth,0,b.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else M?w&&n.texSubImage3D(t.TEXTURE_2D_ARRAY,e,0,0,0,b.width,b.height,p.depth,f,x,b.data):n.texImage3D(t.TEXTURE_2D_ARRAY,e,T,b.width,b.height,p.depth,0,f,x,b.data)}else{M&&E&&n.texStorage2D(t.TEXTURE_2D,R,T,I[0].width,I[0].height);for(let e=0,i=I.length;e<i;e++)b=I[e],a.format!==RGBAFormat?null!==f?M?w&&n.compressedTexSubImage2D(t.TEXTURE_2D,e,0,0,b.width,b.height,f,b.data):n.compressedTexImage2D(t.TEXTURE_2D,e,T,b.width,b.height,0,b.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):M?w&&n.texSubImage2D(t.TEXTURE_2D,e,0,0,b.width,b.height,f,x,b.data):n.texImage2D(t.TEXTURE_2D,e,T,b.width,b.height,0,f,x,b.data)}else if(a.isDataArrayTexture)if(M){if(E&&n.texStorage3D(t.TEXTURE_2D_ARRAY,R,T,p.width,p.height,p.depth),w)if(a.layerUpdates.size>0){const e=getByteLength(p.width,p.height,a.format,a.type);for(const i of a.layerUpdates){const r=p.data.subarray(i*e/p.data.BYTES_PER_ELEMENT,(i+1)*e/p.data.BYTES_PER_ELEMENT);n.texSubImage3D(t.TEXTURE_2D_ARRAY,0,0,0,i,p.width,p.height,1,f,x,r)}a.clearLayerUpdates()}else n.texSubImage3D(t.TEXTURE_2D_ARRAY,0,0,0,0,p.width,p.height,p.depth,f,x,p.data)}else n.texImage3D(t.TEXTURE_2D_ARRAY,0,T,p.width,p.height,p.depth,0,f,x,p.data);else if(a.isData3DTexture)M?(E&&n.texStorage3D(t.TEXTURE_3D,R,T,p.width,p.height,p.depth),w&&n.texSubImage3D(t.TEXTURE_3D,0,0,0,0,p.width,p.height,p.depth,f,x,p.data)):n.texImage3D(t.TEXTURE_3D,0,T,p.width,p.height,p.depth,0,f,x,p.data);else if(a.isFramebufferTexture){if(E)if(M)n.texStorage2D(t.TEXTURE_2D,R,T,p.width,p.height);else{let e=p.width,i=p.height;for(let r=0;r<R;r++)n.texImage2D(t.TEXTURE_2D,r,T,e,i,0,f,x,null),e>>=1,i>>=1}}else if(I.length>0){if(M&&E){const e=D(I[0]);n.texStorage2D(t.TEXTURE_2D,R,T,e.width,e.height)}for(let e=0,i=I.length;e<i;e++)b=I[e],M?w&&n.texSubImage2D(t.TEXTURE_2D,e,0,0,f,x,b):n.texImage2D(t.TEXTURE_2D,e,T,f,x,b);a.generateMipmaps=!1}else if(M){if(E){const e=D(p);n.texStorage2D(t.TEXTURE_2D,R,T,e.width,e.height)}w&&n.texSubImage2D(t.TEXTURE_2D,0,0,0,f,x,p)}else n.texImage2D(t.TEXTURE_2D,0,T,f,x,p);g(a)&&A(c),h.__version=u.version,a.onUpdate&&a.onUpdate(a)}e.__version=a.version}function L(e,r,a,c,l,u){const h=s.convert(a.format,a.colorSpace),d=s.convert(a.type),p=y(a.internalFormat,h,d,a.colorSpace);if(!i.get(r).__hasExternalTextures){const e=Math.max(1,r.width>>u),i=Math.max(1,r.height>>u);l===t.TEXTURE_3D||l===t.TEXTURE_2D_ARRAY?n.texImage3D(l,u,p,e,i,r.depth,0,h,d,null):n.texImage2D(l,u,p,e,i,0,h,d,null)}n.bindFramebuffer(t.FRAMEBUFFER,e),P(r)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,c,l,i.get(a).__webglTexture,0,V(r)):(l===t.TEXTURE_2D||l>=t.TEXTURE_CUBE_MAP_POSITIVE_X&&l<=t.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&t.framebufferTexture2D(t.FRAMEBUFFER,c,l,i.get(a).__webglTexture,u),n.bindFramebuffer(t.FRAMEBUFFER,null)}function U(e,n,i){if(t.bindRenderbuffer(t.RENDERBUFFER,e),n.depthBuffer){const r=n.depthTexture,s=r&&r.isDepthTexture?r.type:null,a=v(n.stencilBuffer,s),c=n.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,l=V(n);P(n)?o.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,l,a,n.width,n.height):i?t.renderbufferStorageMultisample(t.RENDERBUFFER,l,a,n.width,n.height):t.renderbufferStorage(t.RENDERBUFFER,a,n.width,n.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,c,t.RENDERBUFFER,e)}else{const e=n.textures;for(let r=0;r<e.length;r++){const a=e[r],c=s.convert(a.format,a.colorSpace),l=s.convert(a.type),u=y(a.internalFormat,c,l,a.colorSpace),h=V(n);i&&!1===P(n)?t.renderbufferStorageMultisample(t.RENDERBUFFER,h,u,n.width,n.height):P(n)?o.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,h,u,n.width,n.height):t.renderbufferStorage(t.RENDERBUFFER,u,n.width,n.height)}}t.bindRenderbuffer(t.RENDERBUFFER,null)}function N(e){const r=i.get(e),s=!0===e.isWebGLCubeRenderTarget;if(e.depthTexture&&!r.__autoAllocateDepthBuffer){if(s)throw new Error("target.depthTexture not supported in Cube render targets");!function(e,r){if(r&&r.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(n.bindFramebuffer(t.FRAMEBUFFER,e),!r.depthTexture||!r.depthTexture.isDepthTexture)throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");i.get(r.depthTexture).__webglTexture&&r.depthTexture.image.width===r.width&&r.depthTexture.image.height===r.height||(r.depthTexture.image.width=r.width,r.depthTexture.image.height=r.height,r.depthTexture.needsUpdate=!0),M(r.depthTexture,0);const s=i.get(r.depthTexture).__webglTexture,a=V(r);if(r.depthTexture.format===DepthFormat)P(r)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,s,0,a):t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,s,0);else{if(r.depthTexture.format!==DepthStencilFormat)throw new Error("Unknown depthTexture format");P(r)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,s,0,a):t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,s,0)}}(r.__webglFramebuffer,e)}else if(s){r.__webglDepthbuffer=[];for(let i=0;i<6;i++)n.bindFramebuffer(t.FRAMEBUFFER,r.__webglFramebuffer[i]),r.__webglDepthbuffer[i]=t.createRenderbuffer(),U(r.__webglDepthbuffer[i],e,!1)}else n.bindFramebuffer(t.FRAMEBUFFER,r.__webglFramebuffer),r.__webglDepthbuffer=t.createRenderbuffer(),U(r.__webglDepthbuffer,e,!1);n.bindFramebuffer(t.FRAMEBUFFER,null)}const F=[],B=[];function V(t){return Math.min(r.maxSamples,t.samples)}function P(t){const n=i.get(t);return t.samples>0&&!0===e.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function W(t,e){const n=t.colorSpace,i=t.format,r=t.type;return!0===t.isCompressedTexture||!0===t.isVideoTexture||n!==LinearSRGBColorSpace&&n!==NoColorSpace&&(ColorManagement.getTransfer(n)===SRGBTransfer?i===RGBAFormat&&r===UnsignedByteType||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",n)),e}function D(t){return"undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement?(l.width=t.naturalWidth||t.width,l.height=t.naturalHeight||t.height):"undefined"!=typeof VideoFrame&&t instanceof VideoFrame?(l.width=t.displayWidth,l.height=t.displayHeight):(l.width=t.width,l.height=t.height),l}this.allocateTextureUnit=function(){const t=I;return t>=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+r.maxTextures),I+=1,t},this.resetTextureUnits=function(){I=0},this.setTexture2D=M,this.setTexture2DArray=function(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?_(s,e,r):n.bindTexture(t.TEXTURE_2D_ARRAY,s.__webglTexture,t.TEXTURE0+r)},this.setTexture3D=function(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?_(s,e,r):n.bindTexture(t.TEXTURE_3D,s.__webglTexture,t.TEXTURE0+r)},this.setTextureCube=function(e,a){const o=i.get(e);e.version>0&&o.__version!==e.version?function(e,a,o){if(6!==a.image.length)return;const c=k(e,a),l=a.source;n.bindTexture(t.TEXTURE_CUBE_MAP,e.__webglTexture,t.TEXTURE0+o);const u=i.get(l);if(l.version!==u.__version||!0===c){n.activeTexture(t.TEXTURE0+o);const e=ColorManagement.getPrimaries(ColorManagement.workingColorSpace),i=a.colorSpace===NoColorSpace?null:ColorManagement.getPrimaries(a.colorSpace),h=a.colorSpace===NoColorSpace||e===i?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,a.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,a.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,h);const d=a.isCompressedTexture||a.image[0].isCompressedTexture,p=a.image[0]&&a.image[0].isDataTexture,f=[];for(let t=0;t<6;t++)f[t]=d||p?p?a.image[t].image:a.image[t]:m(a.image[t],!0,r.maxCubemapSize),f[t]=W(a,f[t]);const v=f[0],x=s.convert(a.format,a.colorSpace),b=s.convert(a.type),T=y(a.internalFormat,x,b,a.colorSpace),I=!0!==a.isVideoTexture,M=void 0===u.__version||!0===c,E=l.dataReady;let w,R=S(a,v);if(C(t.TEXTURE_CUBE_MAP,a),d){I&&M&&n.texStorage2D(t.TEXTURE_CUBE_MAP,R,T,v.width,v.height);for(let e=0;e<6;e++){w=f[e].mipmaps;for(let i=0;i<w.length;i++){const r=w[i];a.format!==RGBAFormat?null!==x?I?E&&n.compressedTexSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,0,0,r.width,r.height,x,r.data):n.compressedTexImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,T,r.width,r.height,0,r.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):I?E&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,0,0,r.width,r.height,x,b,r.data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,T,r.width,r.height,0,x,b,r.data)}}}else{if(w=a.mipmaps,I&&M){w.length>0&&R++;const e=D(f[0]);n.texStorage2D(t.TEXTURE_CUBE_MAP,R,T,e.width,e.height)}for(let e=0;e<6;e++)if(p){I?E&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,0,0,f[e].width,f[e].height,x,b,f[e].data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,T,f[e].width,f[e].height,0,x,b,f[e].data);for(let i=0;i<w.length;i++){const r=w[i].image[e].image;I?E&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,0,0,r.width,r.height,x,b,r.data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,T,r.width,r.height,0,x,b,r.data)}}else{I?E&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,0,0,x,b,f[e]):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,T,x,b,f[e]);for(let i=0;i<w.length;i++){const r=w[i];I?E&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,0,0,x,b,r.image[e]):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,T,x,b,r.image[e])}}}g(a)&&A(t.TEXTURE_CUBE_MAP),u.__version=l.version,a.onUpdate&&a.onUpdate(a)}e.__version=a.version}(o,e,a):n.bindTexture(t.TEXTURE_CUBE_MAP,o.__webglTexture,t.TEXTURE0+a)},this.rebindTextures=function(e,n,r){const s=i.get(e);void 0!==n&&L(s.__webglFramebuffer,e,e.texture,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,0),void 0!==r&&N(e)},this.setupRenderTarget=function(e){const r=e.texture,o=i.get(e),c=i.get(r);e.addEventListener("dispose",b);const l=e.textures,u=!0===e.isWebGLCubeRenderTarget,h=l.length>1;if(h||(void 0===c.__webglTexture&&(c.__webglTexture=t.createTexture()),c.__version=r.version,a.memory.textures++),u){o.__webglFramebuffer=[];for(let e=0;e<6;e++)if(r.mipmaps&&r.mipmaps.length>0){o.__webglFramebuffer[e]=[];for(let n=0;n<r.mipmaps.length;n++)o.__webglFramebuffer[e][n]=t.createFramebuffer()}else o.__webglFramebuffer[e]=t.createFramebuffer()}else{if(r.mipmaps&&r.mipmaps.length>0){o.__webglFramebuffer=[];for(let e=0;e<r.mipmaps.length;e++)o.__webglFramebuffer[e]=t.createFramebuffer()}else o.__webglFramebuffer=t.createFramebuffer();if(h)for(let e=0,n=l.length;e<n;e++){const n=i.get(l[e]);void 0===n.__webglTexture&&(n.__webglTexture=t.createTexture(),a.memory.textures++)}if(e.samples>0&&!1===P(e)){o.__webglMultisampledFramebuffer=t.createFramebuffer(),o.__webglColorRenderbuffer=[],n.bindFramebuffer(t.FRAMEBUFFER,o.__webglMultisampledFramebuffer);for(let n=0;n<l.length;n++){const i=l[n];o.__webglColorRenderbuffer[n]=t.createRenderbuffer(),t.bindRenderbuffer(t.RENDERBUFFER,o.__webglColorRenderbuffer[n]);const r=s.convert(i.format,i.colorSpace),a=s.convert(i.type),c=y(i.internalFormat,r,a,i.colorSpace,!0===e.isXRRenderTarget),u=V(e);t.renderbufferStorageMultisample(t.RENDERBUFFER,u,c,e.width,e.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+n,t.RENDERBUFFER,o.__webglColorRenderbuffer[n])}t.bindRenderbuffer(t.RENDERBUFFER,null),e.depthBuffer&&(o.__webglDepthRenderbuffer=t.createRenderbuffer(),U(o.__webglDepthRenderbuffer,e,!0)),n.bindFramebuffer(t.FRAMEBUFFER,null)}}if(u){n.bindTexture(t.TEXTURE_CUBE_MAP,c.__webglTexture),C(t.TEXTURE_CUBE_MAP,r);for(let n=0;n<6;n++)if(r.mipmaps&&r.mipmaps.length>0)for(let i=0;i<r.mipmaps.length;i++)L(o.__webglFramebuffer[n][i],e,r,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+n,i);else L(o.__webglFramebuffer[n],e,r,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+n,0);g(r)&&A(t.TEXTURE_CUBE_MAP),n.unbindTexture()}else if(h){for(let r=0,s=l.length;r<s;r++){const s=l[r],a=i.get(s);n.bindTexture(t.TEXTURE_2D,a.__webglTexture),C(t.TEXTURE_2D,s),L(o.__webglFramebuffer,e,s,t.COLOR_ATTACHMENT0+r,t.TEXTURE_2D,0),g(s)&&A(t.TEXTURE_2D)}n.unbindTexture()}else{let i=t.TEXTURE_2D;if((e.isWebGL3DRenderTarget||e.isWebGLArrayRenderTarget)&&(i=e.isWebGL3DRenderTarget?t.TEXTURE_3D:t.TEXTURE_2D_ARRAY),n.bindTexture(i,c.__webglTexture),C(i,r),r.mipmaps&&r.mipmaps.length>0)for(let n=0;n<r.mipmaps.length;n++)L(o.__webglFramebuffer[n],e,r,t.COLOR_ATTACHMENT0,i,n);else L(o.__webglFramebuffer,e,r,t.COLOR_ATTACHMENT0,i,0);g(r)&&A(i),n.unbindTexture()}e.depthBuffer&&N(e)},this.updateRenderTargetMipmap=function(e){const r=e.textures;for(let s=0,a=r.length;s<a;s++){const a=r[s];if(g(a)){const r=e.isWebGLCubeRenderTarget?t.TEXTURE_CUBE_MAP:t.TEXTURE_2D,s=i.get(a).__webglTexture;n.bindTexture(r,s),A(r),n.unbindTexture()}}},this.updateMultisampleRenderTarget=function(e){if(e.samples>0)if(!1===P(e)){const r=e.textures,s=e.width,a=e.height;let o=t.COLOR_BUFFER_BIT;const l=e.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,u=i.get(e),h=r.length>1;if(h)for(let e=0;e<r.length;e++)n.bindFramebuffer(t.FRAMEBUFFER,u.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.RENDERBUFFER,null),n.bindFramebuffer(t.FRAMEBUFFER,u.__webglFramebuffer),t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.TEXTURE_2D,null,0);n.bindFramebuffer(t.READ_FRAMEBUFFER,u.__webglMultisampledFramebuffer),n.bindFramebuffer(t.DRAW_FRAMEBUFFER,u.__webglFramebuffer);for(let n=0;n<r.length;n++){if(e.resolveDepthBuffer&&(e.depthBuffer&&(o|=t.DEPTH_BUFFER_BIT),e.stencilBuffer&&e.resolveStencilBuffer&&(o|=t.STENCIL_BUFFER_BIT)),h){t.framebufferRenderbuffer(t.READ_FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.RENDERBUFFER,u.__webglColorRenderbuffer[n]);const e=i.get(r[n]).__webglTexture;t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,e,0)}t.blitFramebuffer(0,0,s,a,0,0,s,a,o,t.NEAREST),!0===c&&(F.length=0,B.length=0,F.push(t.COLOR_ATTACHMENT0+n),e.depthBuffer&&!1===e.resolveDepthBuffer&&(F.push(l),B.push(l),t.invalidateFramebuffer(t.DRAW_FRAMEBUFFER,B)),t.invalidateFramebuffer(t.READ_FRAMEBUFFER,F))}if(n.bindFramebuffer(t.READ_FRAMEBUFFER,null),n.bindFramebuffer(t.DRAW_FRAMEBUFFER,null),h)for(let e=0;e<r.length;e++){n.bindFramebuffer(t.FRAMEBUFFER,u.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.RENDERBUFFER,u.__webglColorRenderbuffer[e]);const s=i.get(r[e]).__webglTexture;n.bindFramebuffer(t.FRAMEBUFFER,u.__webglFramebuffer),t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.TEXTURE_2D,s,0)}n.bindFramebuffer(t.DRAW_FRAMEBUFFER,u.__webglMultisampledFramebuffer)}else if(e.depthBuffer&&!1===e.resolveDepthBuffer&&c){const n=e.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT;t.invalidateFramebuffer(t.DRAW_FRAMEBUFFER,[n])}},this.setupDepthRenderbuffer=N,this.setupFrameBufferTexture=L,this.useMultisampledRTT=P}function WebGLUtils(t,e){return{convert:function(n,i=NoColorSpace){let r;const s=ColorManagement.getTransfer(i);if(n===UnsignedByteType)return t.UNSIGNED_BYTE;if(n===UnsignedShort4444Type)return t.UNSIGNED_SHORT_4_4_4_4;if(n===UnsignedShort5551Type)return t.UNSIGNED_SHORT_5_5_5_1;if(n===UnsignedInt5999Type)return t.UNSIGNED_INT_5_9_9_9_REV;if(n===ByteType)return t.BYTE;if(n===ShortType)return t.SHORT;if(n===UnsignedShortType)return t.UNSIGNED_SHORT;if(n===IntType)return t.INT;if(n===UnsignedIntType)return t.UNSIGNED_INT;if(n===FloatType)return t.FLOAT;if(n===HalfFloatType)return t.HALF_FLOAT;if(n===AlphaFormat)return t.ALPHA;if(n===RGBFormat)return t.RGB;if(n===RGBAFormat)return t.RGBA;if(n===LuminanceFormat)return t.LUMINANCE;if(n===LuminanceAlphaFormat)return t.LUMINANCE_ALPHA;if(n===DepthFormat)return t.DEPTH_COMPONENT;if(n===DepthStencilFormat)return t.DEPTH_STENCIL;if(n===RedFormat)return t.RED;if(n===RedIntegerFormat)return t.RED_INTEGER;if(n===RGFormat)return t.RG;if(n===RGIntegerFormat)return t.RG_INTEGER;if(n===RGBAIntegerFormat)return t.RGBA_INTEGER;if(n===RGB_S3TC_DXT1_Format||n===RGBA_S3TC_DXT1_Format||n===RGBA_S3TC_DXT3_Format||n===RGBA_S3TC_DXT5_Format)if(s===SRGBTransfer){if(r=e.get("WEBGL_compressed_texture_s3tc_srgb"),null===r)return null;if(n===RGB_S3TC_DXT1_Format)return r.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(n===RGBA_S3TC_DXT1_Format)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(n===RGBA_S3TC_DXT3_Format)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(n===RGBA_S3TC_DXT5_Format)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else{if(r=e.get("WEBGL_compressed_texture_s3tc"),null===r)return null;if(n===RGB_S3TC_DXT1_Format)return r.COMPRESSED_RGB_S3TC_DXT1_EXT;if(n===RGBA_S3TC_DXT1_Format)return r.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(n===RGBA_S3TC_DXT3_Format)return r.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(n===RGBA_S3TC_DXT5_Format)return r.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(n===RGB_PVRTC_4BPPV1_Format||n===RGB_PVRTC_2BPPV1_Format||n===RGBA_PVRTC_4BPPV1_Format||n===RGBA_PVRTC_2BPPV1_Format){if(r=e.get("WEBGL_compressed_texture_pvrtc"),null===r)return null;if(n===RGB_PVRTC_4BPPV1_Format)return r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(n===RGB_PVRTC_2BPPV1_Format)return r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(n===RGBA_PVRTC_4BPPV1_Format)return r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(n===RGBA_PVRTC_2BPPV1_Format)return r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(n===RGB_ETC1_Format||n===RGB_ETC2_Format||n===RGBA_ETC2_EAC_Format){if(r=e.get("WEBGL_compressed_texture_etc"),null===r)return null;if(n===RGB_ETC1_Format||n===RGB_ETC2_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ETC2:r.COMPRESSED_RGB8_ETC2;if(n===RGBA_ETC2_EAC_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:r.COMPRESSED_RGBA8_ETC2_EAC}if(n===RGBA_ASTC_4x4_Format||n===RGBA_ASTC_5x4_Format||n===RGBA_ASTC_5x5_Format||n===RGBA_ASTC_6x5_Format||n===RGBA_ASTC_6x6_Format||n===RGBA_ASTC_8x5_Format||n===RGBA_ASTC_8x6_Format||n===RGBA_ASTC_8x8_Format||n===RGBA_ASTC_10x5_Format||n===RGBA_ASTC_10x6_Format||n===RGBA_ASTC_10x8_Format||n===RGBA_ASTC_10x10_Format||n===RGBA_ASTC_12x10_Format||n===RGBA_ASTC_12x12_Format){if(r=e.get("WEBGL_compressed_texture_astc"),null===r)return null;if(n===RGBA_ASTC_4x4_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:r.COMPRESSED_RGBA_ASTC_4x4_KHR;if(n===RGBA_ASTC_5x4_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:r.COMPRESSED_RGBA_ASTC_5x4_KHR;if(n===RGBA_ASTC_5x5_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:r.COMPRESSED_RGBA_ASTC_5x5_KHR;if(n===RGBA_ASTC_6x5_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:r.COMPRESSED_RGBA_ASTC_6x5_KHR;if(n===RGBA_ASTC_6x6_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:r.COMPRESSED_RGBA_ASTC_6x6_KHR;if(n===RGBA_ASTC_8x5_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:r.COMPRESSED_RGBA_ASTC_8x5_KHR;if(n===RGBA_ASTC_8x6_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:r.COMPRESSED_RGBA_ASTC_8x6_KHR;if(n===RGBA_ASTC_8x8_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:r.COMPRESSED_RGBA_ASTC_8x8_KHR;if(n===RGBA_ASTC_10x5_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:r.COMPRESSED_RGBA_ASTC_10x5_KHR;if(n===RGBA_ASTC_10x6_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:r.COMPRESSED_RGBA_ASTC_10x6_KHR;if(n===RGBA_ASTC_10x8_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:r.COMPRESSED_RGBA_ASTC_10x8_KHR;if(n===RGBA_ASTC_10x10_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:r.COMPRESSED_RGBA_ASTC_10x10_KHR;if(n===RGBA_ASTC_12x10_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:r.COMPRESSED_RGBA_ASTC_12x10_KHR;if(n===RGBA_ASTC_12x12_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:r.COMPRESSED_RGBA_ASTC_12x12_KHR}if(n===RGBA_BPTC_Format||n===RGB_BPTC_SIGNED_Format||n===RGB_BPTC_UNSIGNED_Format){if(r=e.get("EXT_texture_compression_bptc"),null===r)return null;if(n===RGBA_BPTC_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:r.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(n===RGB_BPTC_SIGNED_Format)return r.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(n===RGB_BPTC_UNSIGNED_Format)return r.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}if(n===RED_RGTC1_Format||n===SIGNED_RED_RGTC1_Format||n===RED_GREEN_RGTC2_Format||n===SIGNED_RED_GREEN_RGTC2_Format){if(r=e.get("EXT_texture_compression_rgtc"),null===r)return null;if(n===RGBA_BPTC_Format)return r.COMPRESSED_RED_RGTC1_EXT;if(n===SIGNED_RED_RGTC1_Format)return r.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(n===RED_GREEN_RGTC2_Format)return r.COMPRESSED_RED_GREEN_RGTC2_EXT;if(n===SIGNED_RED_GREEN_RGTC2_Format)return r.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}return n===UnsignedInt248Type?t.UNSIGNED_INT_24_8:void 0!==t[n]?t[n]:null}}}class ArrayCamera extends PerspectiveCamera{constructor(t=[]){super(),this.isArrayCamera=!0,this.cameras=t}}let Group$1=class extends Object3D{constructor(){super(),this.isGroup=!0,this.type="Group"}};const _moveEvent={type:"move"};class WebXRController{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return null===this._hand&&(this._hand=new Group$1,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return null===this._targetRay&&(this._targetRay=new Group$1,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Vector3,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Vector3),this._targetRay}getGripSpace(){return null===this._grip&&(this._grip=new Group$1,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Vector3,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Vector3),this._grip}dispatchEvent(t){return null!==this._targetRay&&this._targetRay.dispatchEvent(t),null!==this._grip&&this._grip.dispatchEvent(t),null!==this._hand&&this._hand.dispatchEvent(t),this}connect(t){if(t&&t.hand){const e=this._hand;if(e)for(const n of t.hand.values())this._getHandJoint(e,n)}return this.dispatchEvent({type:"connected",data:t}),this}disconnect(t){return this.dispatchEvent({type:"disconnected",data:t}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this}update(t,e,n){let i=null,r=null,s=null;const a=this._targetRay,o=this._grip,c=this._hand;if(t&&"visible-blurred"!==e.session.visibilityState){if(c&&t.hand){s=!0;for(const s of t.hand.values()){const t=e.getJointPose(s,n),i=this._getHandJoint(c,s);null!==t&&(i.matrix.fromArray(t.transform.matrix),i.matrix.decompose(i.position,i.rotation,i.scale),i.matrixWorldNeedsUpdate=!0,i.jointRadius=t.radius),i.visible=null!==t}const i=c.joints["index-finger-tip"],r=c.joints["thumb-tip"],a=i.position.distanceTo(r.position),o=.02,l=.005;c.inputState.pinching&&a>o+l?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!c.inputState.pinching&&a<=o-l&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));null!==a&&(i=e.getPose(t.targetRaySpace,n),null===i&&null!==r&&(i=r),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(_moveEvent)))}return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==c&&(c.visible=null!==s),this}_getHandJoint(t,e){if(void 0===t.joints[e.jointName]){const n=new Group$1;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}}const _occlusion_vertex="\nvoid main() {\n\n\tgl_Position = vec4( position, 1.0 );\n\n}",_occlusion_fragment="\nuniform sampler2DArray depthColor;\nuniform float depthWidth;\nuniform float depthHeight;\n\nvoid main() {\n\n\tvec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );\n\n\tif ( coord.x >= 1.0 ) {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;\n\n\t} else {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;\n\n\t}\n\n}";class WebXRDepthSensing{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e,n){if(null===this.texture){const i=new Texture;t.properties.get(i).__webglTexture=e.texture,e.depthNear==n.depthNear&&e.depthFar==n.depthFar||(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=i}}getMesh(t){if(null!==this.texture&&null===this.mesh){const e=t.cameras[0].viewport,n=new ShaderMaterial({vertexShader:_occlusion_vertex,fragmentShader:_occlusion_fragment,uniforms:{depthColor:{value:this.texture},depthWidth:{value:e.z},depthHeight:{value:e.w}}});this.mesh=new Mesh(new PlaneGeometry(20,20),n)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class WebXRManager extends EventDispatcher{constructor(t,e){super();const n=this;let i=null,r=1,s=null,a="local-floor",o=1,c=null,l=null,u=null,h=null,d=null,p=null;const f=new WebXRDepthSensing,m=e.getContextAttributes();let g=null,A=null;const y=[],v=[],S=new Vector2;let x=null;const b=new PerspectiveCamera;b.layers.enable(1),b.viewport=new Vector4;const T=new PerspectiveCamera;T.layers.enable(2),T.viewport=new Vector4;const I=[b,T],M=new ArrayCamera;M.layers.enable(1),M.layers.enable(2);let E=null,w=null;function R(t){const e=v.indexOf(t.inputSource);if(-1===e)return;const n=y[e];void 0!==n&&(n.update(t.inputSource,t.frame,c||s),n.dispatchEvent({type:t.type,data:t.inputSource}))}function C(){i.removeEventListener("select",R),i.removeEventListener("selectstart",R),i.removeEventListener("selectend",R),i.removeEventListener("squeeze",R),i.removeEventListener("squeezestart",R),i.removeEventListener("squeezeend",R),i.removeEventListener("end",C),i.removeEventListener("inputsourceschange",k);for(let t=0;t<y.length;t++){const e=v[t];null!==e&&(v[t]=null,y[t].disconnect(e))}E=null,w=null,f.reset(),t.setRenderTarget(g),d=null,h=null,u=null,i=null,A=null,F.stop(),n.isPresenting=!1,t.setPixelRatio(x),t.setSize(S.width,S.height,!1),n.dispatchEvent({type:"sessionend"})}function k(t){for(let e=0;e<t.removed.length;e++){const n=t.removed[e],i=v.indexOf(n);i>=0&&(v[i]=null,y[i].disconnect(n))}for(let e=0;e<t.added.length;e++){const n=t.added[e];let i=v.indexOf(n);if(-1===i){for(let t=0;t<y.length;t++){if(t>=v.length){v.push(n),i=t;break}if(null===v[t]){v[t]=n,i=t;break}}if(-1===i)break}const r=y[i];r&&r.connect(n)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=y[t];return void 0===e&&(e=new WebXRController,y[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=y[t];return void 0===e&&(e=new WebXRController,y[t]=e),e.getGripSpace()},this.getHand=function(t){let e=y[t];return void 0===e&&(e=new WebXRController,y[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){r=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(t){a=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return c||s},this.setReferenceSpace=function(t){c=t},this.getBaseLayer=function(){return null!==h?h:d},this.getBinding=function(){return u},this.getFrame=function(){return p},this.getSession=function(){return i},this.setSession=async function(l){if(i=l,null!==i){if(g=t.getRenderTarget(),i.addEventListener("select",R),i.addEventListener("selectstart",R),i.addEventListener("selectend",R),i.addEventListener("squeeze",R),i.addEventListener("squeezestart",R),i.addEventListener("squeezeend",R),i.addEventListener("end",C),i.addEventListener("inputsourceschange",k),!0!==m.xrCompatible&&await e.makeXRCompatible(),x=t.getPixelRatio(),t.getSize(S),void 0===i.renderState.layers){const n={antialias:m.antialias,alpha:!0,depth:m.depth,stencil:m.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,e,n),i.updateRenderState({baseLayer:d}),t.setPixelRatio(1),t.setSize(d.framebufferWidth,d.framebufferHeight,!1),A=new WebGLRenderTarget(d.framebufferWidth,d.framebufferHeight,{format:RGBAFormat,type:UnsignedByteType,colorSpace:t.outputColorSpace,stencilBuffer:m.stencil})}else{let n=null,s=null,a=null;m.depth&&(a=m.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,n=m.stencil?DepthStencilFormat:DepthFormat,s=m.stencil?UnsignedInt248Type:UnsignedIntType);const o={colorFormat:e.RGBA8,depthFormat:a,scaleFactor:r};u=new XRWebGLBinding(i,e),h=u.createProjectionLayer(o),i.updateRenderState({layers:[h]}),t.setPixelRatio(1),t.setSize(h.textureWidth,h.textureHeight,!1),A=new WebGLRenderTarget(h.textureWidth,h.textureHeight,{format:RGBAFormat,type:UnsignedByteType,depthTexture:new DepthTexture(h.textureWidth,h.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:m.stencil,colorSpace:t.outputColorSpace,samples:m.antialias?4:0,resolveDepthBuffer:!1===h.ignoreDepthValues})}A.isXRRenderTarget=!0,this.setFoveation(o),c=null,s=await i.requestReferenceSpace(a),F.setContext(i),F.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(null!==i)return i.environmentBlendMode},this.getDepthTexture=function(){return f.getDepthTexture()};const _=new Vector3,L=new Vector3;function U(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===i)return;null!==f.texture&&(t.near=f.depthNear,t.far=f.depthFar),M.near=T.near=b.near=t.near,M.far=T.far=b.far=t.far,E===M.near&&w===M.far||(i.updateRenderState({depthNear:M.near,depthFar:M.far}),E=M.near,w=M.far,b.near=E,b.far=w,T.near=E,T.far=w,b.updateProjectionMatrix(),T.updateProjectionMatrix(),t.updateProjectionMatrix());const e=t.parent,n=M.cameras;U(M,e);for(let i=0;i<n.length;i++)U(n[i],e);2===n.length?function(t,e,n){_.setFromMatrixPosition(e.matrixWorld),L.setFromMatrixPosition(n.matrixWorld);const i=_.distanceTo(L),r=e.projectionMatrix.elements,s=n.projectionMatrix.elements,a=r[14]/(r[10]-1),o=r[14]/(r[10]+1),c=(r[9]+1)/r[5],l=(r[9]-1)/r[5],u=(r[8]-1)/r[0],h=(s[8]+1)/s[0],d=a*u,p=a*h,f=i/(-u+h),m=f*-u;e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(m),t.translateZ(f),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.copy(t.matrixWorld).invert();const g=a+f,A=o+f,y=d-m,v=p+(i-m),S=c*o/A*g,x=l*o/A*g;t.projectionMatrix.makePerspective(y,v,S,x,g,A),t.projectionMatrixInverse.copy(t.projectionMatrix).invert()}(M,b,T):M.projectionMatrix.copy(b.projectionMatrix),function(t,e,n){null===n?t.matrix.copy(e.matrixWorld):(t.matrix.copy(n.matrixWorld),t.matrix.invert(),t.matrix.multiply(e.matrixWorld));t.matrix.decompose(t.position,t.quaternion,t.scale),t.updateMatrixWorld(!0),t.projectionMatrix.copy(e.projectionMatrix),t.projectionMatrixInverse.copy(e.projectionMatrixInverse),t.isPerspectiveCamera&&(t.fov=2*RAD2DEG$1*Math.atan(1/t.projectionMatrix.elements[5]),t.zoom=1)}(t,M,e)},this.getCamera=function(){return M},this.getFoveation=function(){if(null!==h||null!==d)return o},this.setFoveation=function(t){o=t,null!==h&&(h.fixedFoveation=t),null!==d&&void 0!==d.fixedFoveation&&(d.fixedFoveation=t)},this.hasDepthSensing=function(){return null!==f.texture},this.getDepthSensingMesh=function(){return f.getMesh(M)};let N=null;const F=new WebGLAnimation;F.setAnimationLoop(function(e,r){if(l=r.getViewerPose(c||s),p=r,null!==l){const e=l.views;null!==d&&(t.setRenderTargetFramebuffer(A,d.framebuffer),t.setRenderTarget(A));let n=!1;e.length!==M.cameras.length&&(M.cameras.length=0,n=!0);for(let i=0;i<e.length;i++){const r=e[i];let s=null;if(null!==d)s=d.getViewport(r);else{const e=u.getViewSubImage(h,r);s=e.viewport,0===i&&(t.setRenderTargetTextures(A,e.colorTexture,h.ignoreDepthValues?void 0:e.depthStencilTexture),t.setRenderTarget(A))}let a=I[i];void 0===a&&(a=new PerspectiveCamera,a.layers.enable(i),a.viewport=new Vector4,I[i]=a),a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.quaternion,a.scale),a.projectionMatrix.fromArray(r.projectionMatrix),a.projectionMatrixInverse.copy(a.projectionMatrix).invert(),a.viewport.set(s.x,s.y,s.width,s.height),0===i&&(M.matrix.copy(a.matrix),M.matrix.decompose(M.position,M.quaternion,M.scale)),!0===n&&M.cameras.push(a)}const r=i.enabledFeatures;if(r&&r.includes("depth-sensing")){const n=u.getDepthInformation(e[0]);n&&n.isValid&&n.texture&&f.init(t,n,i.renderState)}}for(let t=0;t<y.length;t++){const e=v[t],n=y[t];null!==e&&void 0!==n&&n.update(e,r,c||s)}N&&N(e,r),r.detectedPlanes&&n.dispatchEvent({type:"planesdetected",data:r}),p=null}),this.setAnimationLoop=function(t){N=t},this.dispose=function(){}}}const _e1=new Euler,_m1=new Matrix4;function WebGLMaterials(t,e){function n(t,e){!0===t.matrixAutoUpdate&&t.updateMatrix(),e.value.copy(t.matrix)}function i(t,i){t.opacity.value=i.opacity,i.color&&t.diffuse.value.copy(i.color),i.emissive&&t.emissive.value.copy(i.emissive).multiplyScalar(i.emissiveIntensity),i.map&&(t.map.value=i.map,n(i.map,t.mapTransform)),i.alphaMap&&(t.alphaMap.value=i.alphaMap,n(i.alphaMap,t.alphaMapTransform)),i.bumpMap&&(t.bumpMap.value=i.bumpMap,n(i.bumpMap,t.bumpMapTransform),t.bumpScale.value=i.bumpScale,i.side===BackSide&&(t.bumpScale.value*=-1)),i.normalMap&&(t.normalMap.value=i.normalMap,n(i.normalMap,t.normalMapTransform),t.normalScale.value.copy(i.normalScale),i.side===BackSide&&t.normalScale.value.negate()),i.displacementMap&&(t.displacementMap.value=i.displacementMap,n(i.displacementMap,t.displacementMapTransform),t.displacementScale.value=i.displacementScale,t.displacementBias.value=i.displacementBias),i.emissiveMap&&(t.emissiveMap.value=i.emissiveMap,n(i.emissiveMap,t.emissiveMapTransform)),i.specularMap&&(t.specularMap.value=i.specularMap,n(i.specularMap,t.specularMapTransform)),i.alphaTest>0&&(t.alphaTest.value=i.alphaTest);const r=e.get(i),s=r.envMap,a=r.envMapRotation;s&&(t.envMap.value=s,_e1.copy(a),_e1.x*=-1,_e1.y*=-1,_e1.z*=-1,s.isCubeTexture&&!1===s.isRenderTargetTexture&&(_e1.y*=-1,_e1.z*=-1),t.envMapRotation.value.setFromMatrix4(_m1.makeRotationFromEuler(_e1)),t.flipEnvMap.value=s.isCubeTexture&&!1===s.isRenderTargetTexture?-1:1,t.reflectivity.value=i.reflectivity,t.ior.value=i.ior,t.refractionRatio.value=i.refractionRatio),i.lightMap&&(t.lightMap.value=i.lightMap,t.lightMapIntensity.value=i.lightMapIntensity,n(i.lightMap,t.lightMapTransform)),i.aoMap&&(t.aoMap.value=i.aoMap,t.aoMapIntensity.value=i.aoMapIntensity,n(i.aoMap,t.aoMapTransform))}return{refreshFogUniforms:function(e,n){n.color.getRGB(e.fogColor.value,getUnlitUniformColorSpace(t)),n.isFog?(e.fogNear.value=n.near,e.fogFar.value=n.far):n.isFogExp2&&(e.fogDensity.value=n.density)},refreshMaterialUniforms:function(t,r,s,a,o){r.isMeshBasicMaterial||r.isMeshLambertMaterial?i(t,r):r.isMeshToonMaterial?(i(t,r),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap)}(t,r)):r.isMeshPhongMaterial?(i(t,r),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4)}(t,r)):r.isMeshStandardMaterial?(i(t,r),function(t,e){t.metalness.value=e.metalness,e.metalnessMap&&(t.metalnessMap.value=e.metalnessMap,n(e.metalnessMap,t.metalnessMapTransform));t.roughness.value=e.roughness,e.roughnessMap&&(t.roughnessMap.value=e.roughnessMap,n(e.roughnessMap,t.roughnessMapTransform));e.envMap&&(t.envMapIntensity.value=e.envMapIntensity)}(t,r),r.isMeshPhysicalMaterial&&function(t,e,i){t.ior.value=e.ior,e.sheen>0&&(t.sheenColor.value.copy(e.sheenColor).multiplyScalar(e.sheen),t.sheenRoughness.value=e.sheenRoughness,e.sheenColorMap&&(t.sheenColorMap.value=e.sheenColorMap,n(e.sheenColorMap,t.sheenColorMapTransform)),e.sheenRoughnessMap&&(t.sheenRoughnessMap.value=e.sheenRoughnessMap,n(e.sheenRoughnessMap,t.sheenRoughnessMapTransform)));e.clearcoat>0&&(t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap,n(e.clearcoatMap,t.clearcoatMapTransform)),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap,n(e.clearcoatRoughnessMap,t.clearcoatRoughnessMapTransform)),e.clearcoatNormalMap&&(t.clearcoatNormalMap.value=e.clearcoatNormalMap,n(e.clearcoatNormalMap,t.clearcoatNormalMapTransform),t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),e.side===BackSide&&t.clearcoatNormalScale.value.negate()));e.dispersion>0&&(t.dispersion.value=e.dispersion);e.iridescence>0&&(t.iridescence.value=e.iridescence,t.iridescenceIOR.value=e.iridescenceIOR,t.iridescenceThicknessMinimum.value=e.iridescenceThicknessRange[0],t.iridescenceThicknessMaximum.value=e.iridescenceThicknessRange[1],e.iridescenceMap&&(t.iridescenceMap.value=e.iridescenceMap,n(e.iridescenceMap,t.iridescenceMapTransform)),e.iridescenceThicknessMap&&(t.iridescenceThicknessMap.value=e.iridescenceThicknessMap,n(e.iridescenceThicknessMap,t.iridescenceThicknessMapTransform)));e.transmission>0&&(t.transmission.value=e.transmission,t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height),e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap,n(e.transmissionMap,t.transmissionMapTransform)),t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap,n(e.thicknessMap,t.thicknessMapTransform)),t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor));e.anisotropy>0&&(t.anisotropyVector.value.set(e.anisotropy*Math.cos(e.anisotropyRotation),e.anisotropy*Math.sin(e.anisotropyRotation)),e.anisotropyMap&&(t.anisotropyMap.value=e.anisotropyMap,n(e.anisotropyMap,t.anisotropyMapTransform)));t.specularIntensity.value=e.specularIntensity,t.specularColor.value.copy(e.specularColor),e.specularColorMap&&(t.specularColorMap.value=e.specularColorMap,n(e.specularColorMap,t.specularColorMapTransform));e.specularIntensityMap&&(t.specularIntensityMap.value=e.specularIntensityMap,n(e.specularIntensityMap,t.specularIntensityMapTransform))}(t,r,o)):r.isMeshMatcapMaterial?(i(t,r),function(t,e){e.matcap&&(t.matcap.value=e.matcap)}(t,r)):r.isMeshDepthMaterial?i(t,r):r.isMeshDistanceMaterial?(i(t,r),function(t,n){const i=e.get(n).light;t.referencePosition.value.setFromMatrixPosition(i.matrixWorld),t.nearDistance.value=i.shadow.camera.near,t.farDistance.value=i.shadow.camera.far}(t,r)):r.isMeshNormalMaterial?i(t,r):r.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform))}(t,r),r.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,r)):r.isPointsMaterial?function(t,e,i,r){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*i,t.scale.value=.5*r,e.map&&(t.map.value=e.map,n(e.map,t.uvTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap,n(e.alphaMap,t.alphaMapTransform));e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r,s,a):r.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap,n(e.alphaMap,t.alphaMapTransform));e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r):r.isShadowMaterial?(t.color.value.copy(r.color),t.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function WebGLUniformsGroups(t,e,n,i){let r={},s={},a=[];const o=t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS);function c(t,e,n,i){const r=t.value,s=e+"_"+n;if(void 0===i[s])return i[s]="number"==typeof r||"boolean"==typeof r?r:r.clone(),!0;{const t=i[s];if("number"==typeof r||"boolean"==typeof r){if(t!==r)return i[s]=r,!0}else if(!1===t.equals(r))return t.copy(r),!0}return!1}function l(t){const e={boundary:0,storage:0};return"number"==typeof t||"boolean"==typeof t?(e.boundary=4,e.storage=4):t.isVector2?(e.boundary=8,e.storage=8):t.isVector3||t.isColor?(e.boundary=16,e.storage=12):t.isVector4?(e.boundary=16,e.storage=16):t.isMatrix3?(e.boundary=48,e.storage=48):t.isMatrix4?(e.boundary=64,e.storage=64):t.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",t),e}function u(e){const n=e.target;n.removeEventListener("dispose",u);const i=a.indexOf(n.__bindingPointIndex);a.splice(i,1),t.deleteBuffer(r[n.id]),delete r[n.id],delete s[n.id]}return{bind:function(t,e){const n=e.program;i.uniformBlockBinding(t,n)},update:function(n,h){let d=r[n.id];void 0===d&&(!function(t){const e=t.uniforms;let n=0;const i=16;for(let s=0,a=e.length;s<a;s++){const t=Array.isArray(e[s])?e[s]:[e[s]];for(let e=0,r=t.length;e<r;e++){const r=t[e],s=Array.isArray(r.value)?r.value:[r.value];for(let t=0,e=s.length;t<e;t++){const e=l(s[t]),a=n%i;0!==a&&i-a<e.boundary&&(n+=i-a),r.__data=new Float32Array(e.storage/Float32Array.BYTES_PER_ELEMENT),r.__offset=n,n+=e.storage}}}const r=n%i;r>0&&(n+=i-r);t.__size=n,t.__cache={}}(n),d=function(e){const n=function(){for(let t=0;t<o;t++)if(-1===a.indexOf(t))return a.push(t),t;return console.error("THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached."),0}();e.__bindingPointIndex=n;const i=t.createBuffer(),r=e.__size,s=e.usage;return t.bindBuffer(t.UNIFORM_BUFFER,i),t.bufferData(t.UNIFORM_BUFFER,r,s),t.bindBuffer(t.UNIFORM_BUFFER,null),t.bindBufferBase(t.UNIFORM_BUFFER,n,i),i}(n),r[n.id]=d,n.addEventListener("dispose",u));const p=h.program;i.updateUBOMapping(n,p);const f=e.render.frame;s[n.id]!==f&&(!function(e){const n=r[e.id],i=e.uniforms,s=e.__cache;t.bindBuffer(t.UNIFORM_BUFFER,n);for(let r=0,a=i.length;r<a;r++){const e=Array.isArray(i[r])?i[r]:[i[r]];for(let n=0,i=e.length;n<i;n++){const i=e[n];if(!0===c(i,r,n,s)){const e=i.__offset,n=Array.isArray(i.value)?i.value:[i.value];let r=0;for(let s=0;s<n.length;s++){const a=n[s],o=l(a);"number"==typeof a||"boolean"==typeof a?(i.__data[0]=a,t.bufferSubData(t.UNIFORM_BUFFER,e+r,i.__data)):a.isMatrix3?(i.__data[0]=a.elements[0],i.__data[1]=a.elements[1],i.__data[2]=a.elements[2],i.__data[3]=0,i.__data[4]=a.elements[3],i.__data[5]=a.elements[4],i.__data[6]=a.elements[5],i.__data[7]=0,i.__data[8]=a.elements[6],i.__data[9]=a.elements[7],i.__data[10]=a.elements[8],i.__data[11]=0):(a.toArray(i.__data,r),r+=o.storage/Float32Array.BYTES_PER_ELEMENT)}t.bufferSubData(t.UNIFORM_BUFFER,e,i.__data)}}}t.bindBuffer(t.UNIFORM_BUFFER,null)}(n),s[n.id]=f)},dispose:function(){for(const e in r)t.deleteBuffer(r[e]);a=[],r={},s={}}}}class WebGLRenderer{constructor(t={}){const{canvas:e=createCanvasElement(),context:n=null,depth:i=!0,stencil:r=!1,alpha:s=!1,antialias:a=!1,premultipliedAlpha:o=!0,preserveDrawingBuffer:c=!1,powerPreference:l="default",failIfMajorPerformanceCaveat:u=!1}=t;let h;if(this.isWebGLRenderer=!0,null!==n){if("undefined"!=typeof WebGLRenderingContext&&n instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");h=n.getContextAttributes().alpha}else h=s;const d=new Uint32Array(4),p=new Int32Array(4);let f=null,m=null;const g=[],A=[];this.domElement=e,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=SRGBColorSpace,this.toneMapping=NoToneMapping,this.toneMappingExposure=1;const y=this;let v=!1,S=0,x=0,b=null,T=-1,I=null;const M=new Vector4,E=new Vector4;let w=null;const R=new Color(0);let C=0,k=e.width,_=e.height,L=1,U=null,N=null;const F=new Vector4(0,0,k,_),B=new Vector4(0,0,k,_);let V=!1;const P=new Frustum;let W=!1,D=!1;const O=new Matrix4,J=new Vector3,G=new Vector4,H={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let q=!1;function j(){return null===b?L:1}let K,z,X,Z,Q,Y,$,tt,et,nt,it,rt,st,at,ot,ct,lt,ut,ht,dt,pt,ft,mt,gt,At=n;function yt(t,n){return e.getContext(t,n)}try{const t={alpha:!0,depth:i,stencil:r,antialias:a,premultipliedAlpha:o,preserveDrawingBuffer:c,powerPreference:l,failIfMajorPerformanceCaveat:u};if("setAttribute"in e&&e.setAttribute("data-engine",`three.js r${REVISION}`),e.addEventListener("webglcontextlost",xt,!1),e.addEventListener("webglcontextrestored",bt,!1),e.addEventListener("webglcontextcreationerror",Tt,!1),null===At){const e="webgl2";if(At=yt(e,t),null===At)throw yt(e)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(Pt){throw console.error("THREE.WebGLRenderer: "+Pt.message),Pt}function vt(){K=new WebGLExtensions(At),K.init(),ft=new WebGLUtils(At,K),z=new WebGLCapabilities(At,K,t,ft),X=new WebGLState(At),Z=new WebGLInfo(At),Q=new WebGLProperties,Y=new WebGLTextures(At,K,X,Q,z,ft,Z),$=new WebGLCubeMaps(y),tt=new WebGLCubeUVMaps(y),et=new WebGLAttributes(At),mt=new WebGLBindingStates(At,et),nt=new WebGLGeometries(At,et,Z,mt),it=new WebGLObjects(At,nt,et,Z),ht=new WebGLMorphtargets(At,z,Y),ct=new WebGLClipping(Q),rt=new WebGLPrograms(y,$,tt,K,z,mt,ct),st=new WebGLMaterials(y,Q),at=new WebGLRenderLists,ot=new WebGLRenderStates(K),ut=new WebGLBackground(y,$,tt,X,it,h,o),lt=new WebGLShadowMap(y,it,z),gt=new WebGLUniformsGroups(At,Z,z,X),dt=new WebGLBufferRenderer(At,K,Z),pt=new WebGLIndexedBufferRenderer(At,K,Z),Z.programs=rt.programs,y.capabilities=z,y.extensions=K,y.properties=Q,y.renderLists=at,y.shadowMap=lt,y.state=X,y.info=Z}vt();const St=new WebXRManager(y,At);function xt(t){t.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),v=!0}function bt(){console.log("THREE.WebGLRenderer: Context Restored."),v=!1;const t=Z.autoReset,e=lt.enabled,n=lt.autoUpdate,i=lt.needsUpdate,r=lt.type;vt(),Z.autoReset=t,lt.enabled=e,lt.autoUpdate=n,lt.needsUpdate=i,lt.type=r}function Tt(t){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",t.statusMessage)}function It(t){const e=t.target;e.removeEventListener("dispose",It),function(t){(function(t){const e=Q.get(t).programs;void 0!==e&&(e.forEach(function(t){rt.releaseProgram(t)}),t.isShaderMaterial&&rt.releaseShaderCache(t))})(t),Q.remove(t)}(e)}function Mt(t,e,n){!0===t.transparent&&t.side===DoubleSide&&!1===t.forceSinglePass?(t.side=BackSide,t.needsUpdate=!0,Ft(t,e,n),t.side=FrontSide,t.needsUpdate=!0,Ft(t,e,n),t.side=DoubleSide):Ft(t,e,n)}this.xr=St,this.getContext=function(){return At},this.getContextAttributes=function(){return At.getContextAttributes()},this.forceContextLoss=function(){const t=K.get("WEBGL_lose_context");t&&t.loseContext()},this.forceContextRestore=function(){const t=K.get("WEBGL_lose_context");t&&t.restoreContext()},this.getPixelRatio=function(){return L},this.setPixelRatio=function(t){void 0!==t&&(L=t,this.setSize(k,_,!1))},this.getSize=function(t){return t.set(k,_)},this.setSize=function(t,n,i=!0){St.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(k=t,_=n,e.width=Math.floor(t*L),e.height=Math.floor(n*L),!0===i&&(e.style.width=t+"px",e.style.height=n+"px"),this.setViewport(0,0,t,n))},this.getDrawingBufferSize=function(t){return t.set(k*L,_*L).floor()},this.setDrawingBufferSize=function(t,n,i){k=t,_=n,L=i,e.width=Math.floor(t*i),e.height=Math.floor(n*i),this.setViewport(0,0,t,n)},this.getCurrentViewport=function(t){return t.copy(M)},this.getViewport=function(t){return t.copy(F)},this.setViewport=function(t,e,n,i){t.isVector4?F.set(t.x,t.y,t.z,t.w):F.set(t,e,n,i),X.viewport(M.copy(F).multiplyScalar(L).round())},this.getScissor=function(t){return t.copy(B)},this.setScissor=function(t,e,n,i){t.isVector4?B.set(t.x,t.y,t.z,t.w):B.set(t,e,n,i),X.scissor(E.copy(B).multiplyScalar(L).round())},this.getScissorTest=function(){return V},this.setScissorTest=function(t){X.setScissorTest(V=t)},this.setOpaqueSort=function(t){U=t},this.setTransparentSort=function(t){N=t},this.getClearColor=function(t){return t.copy(ut.getClearColor())},this.setClearColor=function(){ut.setClearColor.apply(ut,arguments)},this.getClearAlpha=function(){return ut.getClearAlpha()},this.setClearAlpha=function(){ut.setClearAlpha.apply(ut,arguments)},this.clear=function(t=!0,e=!0,n=!0){let i=0;if(t){let t=!1;if(null!==b){const e=b.texture.format;t=e===RGBAIntegerFormat||e===RGIntegerFormat||e===RedIntegerFormat}if(t){const t=b.texture.type,e=t===UnsignedByteType||t===UnsignedIntType||t===UnsignedShortType||t===UnsignedInt248Type||t===UnsignedShort4444Type||t===UnsignedShort5551Type,n=ut.getClearColor(),i=ut.getClearAlpha(),r=n.r,s=n.g,a=n.b;e?(d[0]=r,d[1]=s,d[2]=a,d[3]=i,At.clearBufferuiv(At.COLOR,0,d)):(p[0]=r,p[1]=s,p[2]=a,p[3]=i,At.clearBufferiv(At.COLOR,0,p))}else i|=At.COLOR_BUFFER_BIT}e&&(i|=At.DEPTH_BUFFER_BIT),n&&(i|=At.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),At.clear(i)},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(){e.removeEventListener("webglcontextlost",xt,!1),e.removeEventListener("webglcontextrestored",bt,!1),e.removeEventListener("webglcontextcreationerror",Tt,!1),at.dispose(),ot.dispose(),Q.dispose(),$.dispose(),tt.dispose(),it.dispose(),mt.dispose(),gt.dispose(),rt.dispose(),St.dispose(),St.removeEventListener("sessionstart",wt),St.removeEventListener("sessionend",Rt),Ct.stop()},this.renderBufferDirect=function(t,e,n,i,r,s){null===e&&(e=H);const a=r.isMesh&&r.matrixWorld.determinant()<0,o=function(t,e,n,i,r){!0!==e.isScene&&(e=H);Y.resetTextureUnits();const s=e.fog,a=i.isMeshStandardMaterial?e.environment:null,o=null===b?y.outputColorSpace:!0===b.isXRRenderTarget?b.texture.colorSpace:LinearSRGBColorSpace,c=(i.isMeshStandardMaterial?tt:$).get(i.envMap||a),l=!0===i.vertexColors&&!!n.attributes.color&&4===n.attributes.color.itemSize,u=!!n.attributes.tangent&&(!!i.normalMap||i.anisotropy>0),h=!!n.morphAttributes.position,d=!!n.morphAttributes.normal,p=!!n.morphAttributes.color;let f=NoToneMapping;i.toneMapped&&(null!==b&&!0!==b.isXRRenderTarget||(f=y.toneMapping));const g=n.morphAttributes.position||n.morphAttributes.normal||n.morphAttributes.color,A=void 0!==g?g.length:0,v=Q.get(i),S=m.state.lights;if(!0===W&&(!0===D||t!==I)){const e=t===I&&i.id===T;ct.setState(i,t,e)}let x=!1;i.version===v.__version?v.needsLights&&v.lightsStateVersion!==S.state.version||v.outputColorSpace!==o||r.isBatchedMesh&&!1===v.batching?x=!0:r.isBatchedMesh||!0!==v.batching?r.isBatchedMesh&&!0===v.batchingColor&&null===r.colorTexture||r.isBatchedMesh&&!1===v.batchingColor&&null!==r.colorTexture||r.isInstancedMesh&&!1===v.instancing?x=!0:r.isInstancedMesh||!0!==v.instancing?r.isSkinnedMesh&&!1===v.skinning?x=!0:r.isSkinnedMesh||!0!==v.skinning?r.isInstancedMesh&&!0===v.instancingColor&&null===r.instanceColor||r.isInstancedMesh&&!1===v.instancingColor&&null!==r.instanceColor||r.isInstancedMesh&&!0===v.instancingMorph&&null===r.morphTexture||r.isInstancedMesh&&!1===v.instancingMorph&&null!==r.morphTexture||v.envMap!==c||!0===i.fog&&v.fog!==s?x=!0:void 0===v.numClippingPlanes||v.numClippingPlanes===ct.numPlanes&&v.numIntersection===ct.numIntersection?(v.vertexAlphas!==l||v.vertexTangents!==u||v.morphTargets!==h||v.morphNormals!==d||v.morphColors!==p||v.toneMapping!==f||v.morphTargetsCount!==A)&&(x=!0):x=!0:x=!0:x=!0:x=!0:(x=!0,v.__version=i.version);let M=v.currentProgram;!0===x&&(M=Ft(i,e,r));let E=!1,w=!1,R=!1;const C=M.getUniforms(),k=v.uniforms;X.useProgram(M.program)&&(E=!0,w=!0,R=!0);i.id!==T&&(T=i.id,w=!0);if(E||I!==t){C.setValue(At,"projectionMatrix",t.projectionMatrix),C.setValue(At,"viewMatrix",t.matrixWorldInverse);const e=C.map.cameraPosition;void 0!==e&&e.setValue(At,J.setFromMatrixPosition(t.matrixWorld)),z.logarithmicDepthBuffer&&C.setValue(At,"logDepthBufFC",2/(Math.log(t.far+1)/Math.LN2)),(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial)&&C.setValue(At,"isOrthographic",!0===t.isOrthographicCamera),I!==t&&(I=t,w=!0,R=!0)}if(r.isSkinnedMesh){C.setOptional(At,r,"bindMatrix"),C.setOptional(At,r,"bindMatrixInverse");const t=r.skeleton;t&&(null===t.boneTexture&&t.computeBoneTexture(),C.setValue(At,"boneTexture",t.boneTexture,Y))}r.isBatchedMesh&&(C.setOptional(At,r,"batchingTexture"),C.setValue(At,"batchingTexture",r._matricesTexture,Y),C.setOptional(At,r,"batchingIdTexture"),C.setValue(At,"batchingIdTexture",r._indirectTexture,Y),C.setOptional(At,r,"batchingColorTexture"),null!==r._colorsTexture&&C.setValue(At,"batchingColorTexture",r._colorsTexture,Y));const U=n.morphAttributes;void 0===U.position&&void 0===U.normal&&void 0===U.color||ht.update(r,n,M);(w||v.receiveShadow!==r.receiveShadow)&&(v.receiveShadow=r.receiveShadow,C.setValue(At,"receiveShadow",r.receiveShadow));i.isMeshGouraudMaterial&&null!==i.envMap&&(k.envMap.value=c,k.flipEnvMap.value=c.isCubeTexture&&!1===c.isRenderTargetTexture?-1:1);i.isMeshStandardMaterial&&null===i.envMap&&null!==e.environment&&(k.envMapIntensity.value=e.environmentIntensity);w&&(C.setValue(At,"toneMappingExposure",y.toneMappingExposure),v.needsLights&&(F=R,(N=k).ambientLightColor.needsUpdate=F,N.lightProbe.needsUpdate=F,N.directionalLights.needsUpdate=F,N.directionalLightShadows.needsUpdate=F,N.pointLights.needsUpdate=F,N.pointLightShadows.needsUpdate=F,N.spotLights.needsUpdate=F,N.spotLightShadows.needsUpdate=F,N.rectAreaLights.needsUpdate=F,N.hemisphereLights.needsUpdate=F),s&&!0===i.fog&&st.refreshFogUniforms(k,s),st.refreshMaterialUniforms(k,i,L,_,m.state.transmissionRenderTarget[t.id]),WebGLUniforms.upload(At,Bt(v),k,Y));var N,F;i.isShaderMaterial&&!0===i.uniformsNeedUpdate&&(WebGLUniforms.upload(At,Bt(v),k,Y),i.uniformsNeedUpdate=!1);i.isSpriteMaterial&&C.setValue(At,"center",r.center);if(C.setValue(At,"modelViewMatrix",r.modelViewMatrix),C.setValue(At,"normalMatrix",r.normalMatrix),C.setValue(At,"modelMatrix",r.matrixWorld),i.isShaderMaterial||i.isRawShaderMaterial){const t=i.uniformsGroups;for(let e=0,n=t.length;e<n;e++){const n=t[e];gt.update(n,M),gt.bind(n,M)}}return M}(t,e,n,i,r);X.setMaterial(i,a);let c=n.index,l=1;if(!0===i.wireframe){if(c=nt.getWireframeAttribute(n),void 0===c)return;l=2}const u=n.drawRange,h=n.attributes.position;let d=u.start*l,p=(u.start+u.count)*l;null!==s&&(d=Math.max(d,s.start*l),p=Math.min(p,(s.start+s.count)*l)),null!==c?(d=Math.max(d,0),p=Math.min(p,c.count)):null!=h&&(d=Math.max(d,0),p=Math.min(p,h.count));const f=p-d;if(f<0||f===1/0)return;let g;mt.setup(r,i,o,n,c);let A=dt;if(null!==c&&(g=et.get(c),A=pt,A.setIndex(g)),r.isMesh)!0===i.wireframe?(X.setLineWidth(i.wireframeLinewidth*j()),A.setMode(At.LINES)):A.setMode(At.TRIANGLES);else if(r.isLine){let t=i.linewidth;void 0===t&&(t=1),X.setLineWidth(t*j()),r.isLineSegments?A.setMode(At.LINES):r.isLineLoop?A.setMode(At.LINE_LOOP):A.setMode(At.LINE_STRIP)}else r.isPoints?A.setMode(At.POINTS):r.isSprite&&A.setMode(At.TRIANGLES);if(r.isBatchedMesh)if(null!==r._multiDrawInstances)A.renderMultiDrawInstances(r._multiDrawStarts,r._multiDrawCounts,r._multiDrawCount,r._multiDrawInstances);else if(K.get("WEBGL_multi_draw"))A.renderMultiDraw(r._multiDrawStarts,r._multiDrawCounts,r._multiDrawCount);else{const t=r._multiDrawStarts,e=r._multiDrawCounts,n=r._multiDrawCount,s=c?et.get(c).bytesPerElement:1,a=Q.get(i).currentProgram.getUniforms();for(let i=0;i<n;i++)a.setValue(At,"_gl_DrawID",i),A.render(t[i]/s,e[i])}else if(r.isInstancedMesh)A.renderInstances(d,f,r.count);else if(n.isInstancedBufferGeometry){const t=void 0!==n._maxInstanceCount?n._maxInstanceCount:1/0,e=Math.min(n.instanceCount,t);A.renderInstances(d,f,e)}else A.render(d,f)},this.compile=function(t,e,n=null){null===n&&(n=t),m=ot.get(n),m.init(e),A.push(m),n.traverseVisible(function(t){t.isLight&&t.layers.test(e.layers)&&(m.pushLight(t),t.castShadow&&m.pushShadow(t))}),t!==n&&t.traverseVisible(function(t){t.isLight&&t.layers.test(e.layers)&&(m.pushLight(t),t.castShadow&&m.pushShadow(t))}),m.setupLights();const i=new Set;return t.traverse(function(t){const e=t.material;if(e)if(Array.isArray(e))for(let r=0;r<e.length;r++){const s=e[r];Mt(s,n,t),i.add(s)}else Mt(e,n,t),i.add(e)}),A.pop(),m=null,i},this.compileAsync=function(t,e,n=null){const i=this.compile(t,e,n);return new Promise(e=>{function n(){i.forEach(function(t){Q.get(t).currentProgram.isReady()&&i.delete(t)}),0!==i.size?setTimeout(n,10):e(t)}null!==K.get("KHR_parallel_shader_compile")?n():setTimeout(n,10)})};let Et=null;function wt(){Ct.stop()}function Rt(){Ct.start()}const Ct=new WebGLAnimation;function kt(t,e,n,i){if(!1===t.visible)return;if(t.layers.test(e.layers))if(t.isGroup)n=t.renderOrder;else if(t.isLOD)!0===t.autoUpdate&&t.update(e);else if(t.isLight)m.pushLight(t),t.castShadow&&m.pushShadow(t);else if(t.isSprite){if(!t.frustumCulled||P.intersectsSprite(t)){i&&G.setFromMatrixPosition(t.matrixWorld).applyMatrix4(O);const e=it.update(t),r=t.material;r.visible&&f.push(t,e,r,n,G.z,null)}}else if((t.isMesh||t.isLine||t.isPoints)&&(!t.frustumCulled||P.intersectsObject(t))){const e=it.update(t),r=t.material;if(i&&(void 0!==t.boundingSphere?(null===t.boundingSphere&&t.computeBoundingSphere(),G.copy(t.boundingSphere.center)):(null===e.boundingSphere&&e.computeBoundingSphere(),G.copy(e.boundingSphere.center)),G.applyMatrix4(t.matrixWorld).applyMatrix4(O)),Array.isArray(r)){const i=e.groups;for(let s=0,a=i.length;s<a;s++){const a=i[s],o=r[a.materialIndex];o&&o.visible&&f.push(t,e,o,n,G.z,a)}}else r.visible&&f.push(t,e,r,n,G.z,null)}const r=t.children;for(let s=0,a=r.length;s<a;s++)kt(r[s],e,n,i)}function _t(t,e,n,i){const r=t.opaque,s=t.transmissive,a=t.transparent;m.setupLightsView(n),!0===W&&ct.setGlobalState(y.clippingPlanes,n),i&&X.viewport(M.copy(i)),r.length>0&&Ut(r,e,n),s.length>0&&Ut(s,e,n),a.length>0&&Ut(a,e,n),X.buffers.depth.setTest(!0),X.buffers.depth.setMask(!0),X.buffers.color.setMask(!0),X.setPolygonOffset(!1)}function Lt(t,e,n,i){if(null!==(!0===n.isScene?n.overrideMaterial:null))return;void 0===m.state.transmissionRenderTarget[i.id]&&(m.state.transmissionRenderTarget[i.id]=new WebGLRenderTarget(1,1,{generateMipmaps:!0,type:K.has("EXT_color_buffer_half_float")||K.has("EXT_color_buffer_float")?HalfFloatType:UnsignedByteType,minFilter:LinearMipmapLinearFilter,samples:4,stencilBuffer:r,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:ColorManagement.workingColorSpace}));const s=m.state.transmissionRenderTarget[i.id],a=i.viewport||M;s.setSize(a.z,a.w);const o=y.getRenderTarget();y.setRenderTarget(s),y.getClearColor(R),C=y.getClearAlpha(),C<1&&y.setClearColor(16777215,.5),q?ut.render(n):y.clear();const c=y.toneMapping;y.toneMapping=NoToneMapping;const l=i.viewport;if(void 0!==i.viewport&&(i.viewport=void 0),m.setupLightsView(i),!0===W&&ct.setGlobalState(y.clippingPlanes,i),Ut(t,n,i),Y.updateMultisampleRenderTarget(s),Y.updateRenderTargetMipmap(s),!1===K.has("WEBGL_multisampled_render_to_texture")){let t=!1;for(let r=0,s=e.length;r<s;r++){const s=e[r],a=s.object,o=s.geometry,c=s.material,l=s.group;if(c.side===DoubleSide&&a.layers.test(i.layers)){const e=c.side;c.side=BackSide,c.needsUpdate=!0,Nt(a,n,i,o,c,l),c.side=e,c.needsUpdate=!0,t=!0}}!0===t&&(Y.updateMultisampleRenderTarget(s),Y.updateRenderTargetMipmap(s))}y.setRenderTarget(o),y.setClearColor(R,C),void 0!==l&&(i.viewport=l),y.toneMapping=c}function Ut(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,s=t.length;r<s;r++){const s=t[r],a=s.object,o=s.geometry,c=null===i?s.material:i,l=s.group;a.layers.test(n.layers)&&Nt(a,e,n,o,c,l)}}function Nt(t,e,n,i,r,s){t.onBeforeRender(y,e,n,i,r,s),t.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse,t.matrixWorld),t.normalMatrix.getNormalMatrix(t.modelViewMatrix),!0===r.transparent&&r.side===DoubleSide&&!1===r.forceSinglePass?(r.side=BackSide,r.needsUpdate=!0,y.renderBufferDirect(n,e,i,r,t,s),r.side=FrontSide,r.needsUpdate=!0,y.renderBufferDirect(n,e,i,r,t,s),r.side=DoubleSide):y.renderBufferDirect(n,e,i,r,t,s),t.onAfterRender(y,e,n,i,r,s)}function Ft(t,e,n){!0!==e.isScene&&(e=H);const i=Q.get(t),r=m.state.lights,s=m.state.shadowsArray,a=r.state.version,o=rt.getParameters(t,r.state,s,e,n),c=rt.getProgramCacheKey(o);let l=i.programs;i.environment=t.isMeshStandardMaterial?e.environment:null,i.fog=e.fog,i.envMap=(t.isMeshStandardMaterial?tt:$).get(t.envMap||i.environment),i.envMapRotation=null!==i.environment&&null===t.envMap?e.environmentRotation:t.envMapRotation,void 0===l&&(t.addEventListener("dispose",It),l=new Map,i.programs=l);let u=l.get(c);if(void 0!==u){if(i.currentProgram===u&&i.lightsStateVersion===a)return Vt(t,o),u}else o.uniforms=rt.getUniforms(t),t.onBeforeCompile(o,y),u=rt.acquireProgram(o,c),l.set(c,u),i.uniforms=o.uniforms;const h=i.uniforms;return(t.isShaderMaterial||t.isRawShaderMaterial)&&!0!==t.clipping||(h.clippingPlanes=ct.uniform),Vt(t,o),i.needsLights=function(t){return t.isMeshLambertMaterial||t.isMeshToonMaterial||t.isMeshPhongMaterial||t.isMeshStandardMaterial||t.isShadowMaterial||t.isShaderMaterial&&!0===t.lights}(t),i.lightsStateVersion=a,i.needsLights&&(h.ambientLightColor.value=r.state.ambient,h.lightProbe.value=r.state.probe,h.directionalLights.value=r.state.directional,h.directionalLightShadows.value=r.state.directionalShadow,h.spotLights.value=r.state.spot,h.spotLightShadows.value=r.state.spotShadow,h.rectAreaLights.value=r.state.rectArea,h.ltc_1.value=r.state.rectAreaLTC1,h.ltc_2.value=r.state.rectAreaLTC2,h.pointLights.value=r.state.point,h.pointLightShadows.value=r.state.pointShadow,h.hemisphereLights.value=r.state.hemi,h.directionalShadowMap.value=r.state.directionalShadowMap,h.directionalShadowMatrix.value=r.state.directionalShadowMatrix,h.spotShadowMap.value=r.state.spotShadowMap,h.spotLightMatrix.value=r.state.spotLightMatrix,h.spotLightMap.value=r.state.spotLightMap,h.pointShadowMap.value=r.state.pointShadowMap,h.pointShadowMatrix.value=r.state.pointShadowMatrix),i.currentProgram=u,i.uniformsList=null,u}function Bt(t){if(null===t.uniformsList){const e=t.currentProgram.getUniforms();t.uniformsList=WebGLUniforms.seqWithValue(e.seq,t.uniforms)}return t.uniformsList}function Vt(t,e){const n=Q.get(t);n.outputColorSpace=e.outputColorSpace,n.batching=e.batching,n.batchingColor=e.batchingColor,n.instancing=e.instancing,n.instancingColor=e.instancingColor,n.instancingMorph=e.instancingMorph,n.skinning=e.skinning,n.morphTargets=e.morphTargets,n.morphNormals=e.morphNormals,n.morphColors=e.morphColors,n.morphTargetsCount=e.morphTargetsCount,n.numClippingPlanes=e.numClippingPlanes,n.numIntersection=e.numClipIntersection,n.vertexAlphas=e.vertexAlphas,n.vertexTangents=e.vertexTangents,n.toneMapping=e.toneMapping}Ct.setAnimationLoop(function(t){Et&&Et(t)}),"undefined"!=typeof self&&Ct.setContext(self),this.setAnimationLoop=function(t){Et=t,St.setAnimationLoop(t),null===t?Ct.stop():Ct.start()},St.addEventListener("sessionstart",wt),St.addEventListener("sessionend",Rt),this.render=function(t,e){if(void 0!==e&&!0!==e.isCamera)return void console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");if(!0===v)return;if(!0===t.matrixWorldAutoUpdate&&t.updateMatrixWorld(),null===e.parent&&!0===e.matrixWorldAutoUpdate&&e.updateMatrixWorld(),!0===St.enabled&&!0===St.isPresenting&&(!0===St.cameraAutoUpdate&&St.updateCamera(e),e=St.getCamera()),!0===t.isScene&&t.onBeforeRender(y,t,e,b),m=ot.get(t,A.length),m.init(e),A.push(m),O.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),P.setFromProjectionMatrix(O),D=this.localClippingEnabled,W=ct.init(this.clippingPlanes,D),f=at.get(t,g.length),f.init(),g.push(f),!0===St.enabled&&!0===St.isPresenting){const t=y.xr.getDepthSensingMesh();null!==t&&kt(t,e,-1/0,y.sortObjects)}kt(t,e,0,y.sortObjects),f.finish(),!0===y.sortObjects&&f.sort(U,N),q=!1===St.enabled||!1===St.isPresenting||!1===St.hasDepthSensing(),q&&ut.addToRenderList(f,t),this.info.render.frame++,!0===W&&ct.beginShadows();const n=m.state.shadowsArray;lt.render(n,t,e),!0===W&&ct.endShadows(),!0===this.info.autoReset&&this.info.reset();const i=f.opaque,r=f.transmissive;if(m.setupLights(),e.isArrayCamera){const n=e.cameras;if(r.length>0)for(let e=0,s=n.length;e<s;e++){Lt(i,r,t,n[e])}q&&ut.render(t);for(let e=0,i=n.length;e<i;e++){const i=n[e];_t(f,t,i,i.viewport)}}else r.length>0&&Lt(i,r,t,e),q&&ut.render(t),_t(f,t,e);null!==b&&(Y.updateMultisampleRenderTarget(b),Y.updateRenderTargetMipmap(b)),!0===t.isScene&&t.onAfterRender(y,t,e),mt.resetDefaultState(),T=-1,I=null,A.pop(),A.length>0?(m=A[A.length-1],!0===W&&ct.setGlobalState(y.clippingPlanes,m.state.camera)):m=null,g.pop(),f=g.length>0?g[g.length-1]:null},this.getActiveCubeFace=function(){return S},this.getActiveMipmapLevel=function(){return x},this.getRenderTarget=function(){return b},this.setRenderTargetTextures=function(t,e,n){Q.get(t.texture).__webglTexture=e,Q.get(t.depthTexture).__webglTexture=n;const i=Q.get(t);i.__hasExternalTextures=!0,i.__autoAllocateDepthBuffer=void 0===n,i.__autoAllocateDepthBuffer||!0===K.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),i.__useRenderToTexture=!1)},this.setRenderTargetFramebuffer=function(t,e){const n=Q.get(t);n.__webglFramebuffer=e,n.__useDefaultFramebuffer=void 0===e},this.setRenderTarget=function(t,e=0,n=0){b=t,S=e,x=n;let i=!0,r=null,s=!1,a=!1;if(t){const o=Q.get(t);void 0!==o.__useDefaultFramebuffer?(X.bindFramebuffer(At.FRAMEBUFFER,null),i=!1):void 0===o.__webglFramebuffer?Y.setupRenderTarget(t):o.__hasExternalTextures&&Y.rebindTextures(t,Q.get(t.texture).__webglTexture,Q.get(t.depthTexture).__webglTexture);const c=t.texture;(c.isData3DTexture||c.isDataArrayTexture||c.isCompressedArrayTexture)&&(a=!0);const l=Q.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(r=Array.isArray(l[e])?l[e][n]:l[e],s=!0):r=t.samples>0&&!1===Y.useMultisampledRTT(t)?Q.get(t).__webglMultisampledFramebuffer:Array.isArray(l)?l[n]:l,M.copy(t.viewport),E.copy(t.scissor),w=t.scissorTest}else M.copy(F).multiplyScalar(L).floor(),E.copy(B).multiplyScalar(L).floor(),w=V;if(X.bindFramebuffer(At.FRAMEBUFFER,r)&&i&&X.drawBuffers(t,r),X.viewport(M),X.scissor(E),X.setScissorTest(w),s){const i=Q.get(t.texture);At.framebufferTexture2D(At.FRAMEBUFFER,At.COLOR_ATTACHMENT0,At.TEXTURE_CUBE_MAP_POSITIVE_X+e,i.__webglTexture,n)}else if(a){const i=Q.get(t.texture),r=e||0;At.framebufferTextureLayer(At.FRAMEBUFFER,At.COLOR_ATTACHMENT0,i.__webglTexture,n||0,r)}T=-1},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=Q.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){X.bindFramebuffer(At.FRAMEBUFFER,o);try{const a=t.texture,o=a.format,c=a.type;if(!z.textureFormatReadable(o))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");if(!z.textureTypeReadable(c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&At.readPixels(e,n,i,r,ft.convert(o),ft.convert(c),s)}finally{const t=null!==b?Q.get(b).__webglFramebuffer:null;X.bindFramebuffer(At.FRAMEBUFFER,t)}}},this.readRenderTargetPixelsAsync=async function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=Q.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){X.bindFramebuffer(At.FRAMEBUFFER,o);try{const a=t.texture,o=a.format,c=a.type;if(!z.textureFormatReadable(o))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!z.textureTypeReadable(c))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r){const t=At.createBuffer();At.bindBuffer(At.PIXEL_PACK_BUFFER,t),At.bufferData(At.PIXEL_PACK_BUFFER,s.byteLength,At.STREAM_READ),At.readPixels(e,n,i,r,ft.convert(o),ft.convert(c),0),At.flush();const a=At.fenceSync(At.SYNC_GPU_COMMANDS_COMPLETE,0);await probeAsync(At,a,4);try{At.bindBuffer(At.PIXEL_PACK_BUFFER,t),At.getBufferSubData(At.PIXEL_PACK_BUFFER,0,s)}finally{At.deleteBuffer(t),At.deleteSync(a)}return s}}finally{const t=null!==b?Q.get(b).__webglFramebuffer:null;X.bindFramebuffer(At.FRAMEBUFFER,t)}}},this.copyFramebufferToTexture=function(t,e=null,n=0){!0!==t.isTexture&&(console.warn("WebGLRenderer: copyFramebufferToTexture function signature has changed."),e=arguments[0]||null,t=arguments[1]);const i=Math.pow(2,-n),r=Math.floor(t.image.width*i),s=Math.floor(t.image.height*i),a=null!==e?e.x:0,o=null!==e?e.y:0;Y.setTexture2D(t,0),At.copyTexSubImage2D(At.TEXTURE_2D,n,0,0,a,o,r,s),X.unbindTexture()},this.copyTextureToTexture=function(t,e,n=null,i=null,r=0){let s,a,o,c,l,u;!0!==t.isTexture&&(console.warn("WebGLRenderer: copyTextureToTexture function signature has changed."),i=arguments[0]||null,t=arguments[1],e=arguments[2],r=arguments[3]||0,n=null),null!==n?(s=n.max.x-n.min.x,a=n.max.y-n.min.y,o=n.min.x,c=n.min.y):(s=t.image.width,a=t.image.height,o=0,c=0),null!==i?(l=i.x,u=i.y):(l=0,u=0);const h=ft.convert(e.format),d=ft.convert(e.type);Y.setTexture2D(e,0),At.pixelStorei(At.UNPACK_FLIP_Y_WEBGL,e.flipY),At.pixelStorei(At.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e.premultiplyAlpha),At.pixelStorei(At.UNPACK_ALIGNMENT,e.unpackAlignment);const p=At.getParameter(At.UNPACK_ROW_LENGTH),f=At.getParameter(At.UNPACK_IMAGE_HEIGHT),m=At.getParameter(At.UNPACK_SKIP_PIXELS),g=At.getParameter(At.UNPACK_SKIP_ROWS),A=At.getParameter(At.UNPACK_SKIP_IMAGES),y=t.isCompressedTexture?t.mipmaps[r]:t.image;At.pixelStorei(At.UNPACK_ROW_LENGTH,y.width),At.pixelStorei(At.UNPACK_IMAGE_HEIGHT,y.height),At.pixelStorei(At.UNPACK_SKIP_PIXELS,o),At.pixelStorei(At.UNPACK_SKIP_ROWS,c),t.isDataTexture?At.texSubImage2D(At.TEXTURE_2D,r,l,u,s,a,h,d,y.data):t.isCompressedTexture?At.compressedTexSubImage2D(At.TEXTURE_2D,r,l,u,y.width,y.height,h,y.data):At.texSubImage2D(At.TEXTURE_2D,r,l,u,s,a,h,d,y),At.pixelStorei(At.UNPACK_ROW_LENGTH,p),At.pixelStorei(At.UNPACK_IMAGE_HEIGHT,f),At.pixelStorei(At.UNPACK_SKIP_PIXELS,m),At.pixelStorei(At.UNPACK_SKIP_ROWS,g),At.pixelStorei(At.UNPACK_SKIP_IMAGES,A),0===r&&e.generateMipmaps&&At.generateMipmap(At.TEXTURE_2D),X.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n=null,i=null,r=0){let s,a,o,c,l,u,h,d,p;!0!==t.isTexture&&(console.warn("WebGLRenderer: copyTextureToTexture3D function signature has changed."),n=arguments[0]||null,i=arguments[1]||null,t=arguments[2],e=arguments[3],r=arguments[4]||0);const f=t.isCompressedTexture?t.mipmaps[r]:t.image;null!==n?(s=n.max.x-n.min.x,a=n.max.y-n.min.y,o=n.max.z-n.min.z,c=n.min.x,l=n.min.y,u=n.min.z):(s=f.width,a=f.height,o=f.depth,c=0,l=0,u=0),null!==i?(h=i.x,d=i.y,p=i.z):(h=0,d=0,p=0);const m=ft.convert(e.format),g=ft.convert(e.type);let A;if(e.isData3DTexture)Y.setTexture3D(e,0),A=At.TEXTURE_3D;else{if(!e.isDataArrayTexture&&!e.isCompressedArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");Y.setTexture2DArray(e,0),A=At.TEXTURE_2D_ARRAY}At.pixelStorei(At.UNPACK_FLIP_Y_WEBGL,e.flipY),At.pixelStorei(At.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e.premultiplyAlpha),At.pixelStorei(At.UNPACK_ALIGNMENT,e.unpackAlignment);const y=At.getParameter(At.UNPACK_ROW_LENGTH),v=At.getParameter(At.UNPACK_IMAGE_HEIGHT),S=At.getParameter(At.UNPACK_SKIP_PIXELS),x=At.getParameter(At.UNPACK_SKIP_ROWS),b=At.getParameter(At.UNPACK_SKIP_IMAGES);At.pixelStorei(At.UNPACK_ROW_LENGTH,f.width),At.pixelStorei(At.UNPACK_IMAGE_HEIGHT,f.height),At.pixelStorei(At.UNPACK_SKIP_PIXELS,c),At.pixelStorei(At.UNPACK_SKIP_ROWS,l),At.pixelStorei(At.UNPACK_SKIP_IMAGES,u),t.isDataTexture||t.isData3DTexture?At.texSubImage3D(A,r,h,d,p,s,a,o,m,g,f.data):e.isCompressedArrayTexture?At.compressedTexSubImage3D(A,r,h,d,p,s,a,o,m,f.data):At.texSubImage3D(A,r,h,d,p,s,a,o,m,g,f),At.pixelStorei(At.UNPACK_ROW_LENGTH,y),At.pixelStorei(At.UNPACK_IMAGE_HEIGHT,v),At.pixelStorei(At.UNPACK_SKIP_PIXELS,S),At.pixelStorei(At.UNPACK_SKIP_ROWS,x),At.pixelStorei(At.UNPACK_SKIP_IMAGES,b),0===r&&e.generateMipmaps&&At.generateMipmap(A),X.unbindTexture()},this.initRenderTarget=function(t){void 0===Q.get(t).__webglFramebuffer&&Y.setupRenderTarget(t)},this.initTexture=function(t){t.isCubeTexture?Y.setTextureCube(t,0):t.isData3DTexture?Y.setTexture3D(t,0):t.isDataArrayTexture||t.isCompressedArrayTexture?Y.setTexture2DArray(t,0):Y.setTexture2D(t,0),X.unbindTexture()},this.resetState=function(){S=0,x=0,b=null,X.reset(),mt.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return WebGLCoordinateSystem}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorSpace=t===DisplayP3ColorSpace?"display-p3":"srgb",e.unpackColorSpace=ColorManagement.workingColorSpace===LinearDisplayP3ColorSpace?"display-p3":"srgb"}}class FogExp2{constructor(t,e=25e-5){this.isFogExp2=!0,this.name="",this.color=new Color(t),this.density=e}clone(){return new FogExp2(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Fog{constructor(t,e=1,n=1e3){this.isFog=!0,this.name="",this.color=new Color(t),this.near=e,this.far=n}clone(){return new Fog(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Scene extends Object3D{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new Euler,this.environmentIntensity=1,this.environmentRotation=new Euler,this.overrideMaterial=null,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,this.backgroundRotation.copy(t.backgroundRotation),this.environmentIntensity=t.environmentIntensity,this.environmentRotation.copy(t.environmentRotation),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(e.object.backgroundIntensity=this.backgroundIntensity),e.object.backgroundRotation=this.backgroundRotation.toArray(),1!==this.environmentIntensity&&(e.object.environmentIntensity=this.environmentIntensity),e.object.environmentRotation=this.environmentRotation.toArray(),e}}class InterleavedBuffer{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=StaticDrawUsage,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=generateUUID()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}get updateRange(){return warnOnce("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;i<r;i++)this.array[t+i]=e.array[n+i];return this}set(t,e=0){return this.array.set(t,e),this}clone(t){void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=generateUUID()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const e=new this.array.constructor(t.arrayBuffers[this.array.buffer._uuid]),n=new this.constructor(e,this.stride);return n.setUsage(this.usage),n}onUpload(t){return this.onUploadCallback=t,this}toJSON(t){return void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=generateUUID()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=Array.from(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}const _vector$6=new Vector3;class InterleavedBufferAttribute{constructor(t,e,n,i=!1){this.isInterleavedBufferAttribute=!0,this.name="",this.data=t,this.itemSize=e,this.offset=n,this.normalized=i}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(t){this.data.needsUpdate=t}applyMatrix4(t){for(let e=0,n=this.data.count;e<n;e++)_vector$6.fromBufferAttribute(this,e),_vector$6.applyMatrix4(t),this.setXYZ(e,_vector$6.x,_vector$6.y,_vector$6.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)_vector$6.fromBufferAttribute(this,e),_vector$6.applyNormalMatrix(t),this.setXYZ(e,_vector$6.x,_vector$6.y,_vector$6.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)_vector$6.fromBufferAttribute(this,e),_vector$6.transformDirection(t),this.setXYZ(e,_vector$6.x,_vector$6.y,_vector$6.z);return this}getComponent(t,e){let n=this.array[t*this.data.stride+this.offset+e];return this.normalized&&(n=denormalize(n,this.array)),n}setComponent(t,e,n){return this.normalized&&(n=normalize(n,this.array)),this.data.array[t*this.data.stride+this.offset+e]=n,this}setX(t,e){return this.normalized&&(e=normalize(e,this.array)),this.data.array[t*this.data.stride+this.offset]=e,this}setY(t,e){return this.normalized&&(e=normalize(e,this.array)),this.data.array[t*this.data.stride+this.offset+1]=e,this}setZ(t,e){return this.normalized&&(e=normalize(e,this.array)),this.data.array[t*this.data.stride+this.offset+2]=e,this}setW(t,e){return this.normalized&&(e=normalize(e,this.array)),this.data.array[t*this.data.stride+this.offset+3]=e,this}getX(t){let e=this.data.array[t*this.data.stride+this.offset];return this.normalized&&(e=denormalize(e,this.array)),e}getY(t){let e=this.data.array[t*this.data.stride+this.offset+1];return this.normalized&&(e=denormalize(e,this.array)),e}getZ(t){let e=this.data.array[t*this.data.stride+this.offset+2];return this.normalized&&(e=denormalize(e,this.array)),e}getW(t){let e=this.data.array[t*this.data.stride+this.offset+3];return this.normalized&&(e=denormalize(e,this.array)),e}setXY(t,e,n){return t=t*this.data.stride+this.offset,this.normalized&&(e=normalize(e,this.array),n=normalize(n,this.array)),this.data.array[t+0]=e,this.data.array[t+1]=n,this}setXYZ(t,e,n,i){return t=t*this.data.stride+this.offset,this.normalized&&(e=normalize(e,this.array),n=normalize(n,this.array),i=normalize(i,this.array)),this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=i,this}setXYZW(t,e,n,i,r){return t=t*this.data.stride+this.offset,this.normalized&&(e=normalize(e,this.array),n=normalize(n,this.array),i=normalize(i,this.array),r=normalize(r,this.array)),this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=i,this.data.array[t+3]=r,this}clone(t){if(void 0===t){console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return new BufferAttribute(new this.array.constructor(t),this.itemSize,this.normalized)}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.clone(t)),new InterleavedBufferAttribute(t.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(t){if(void 0===t){console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.toJSON(t)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}class SpriteMaterial extends Material{constructor(t){super(),this.isSpriteMaterial=!0,this.type="SpriteMaterial",this.color=new Color(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.rotation=t.rotation,this.sizeAttenuation=t.sizeAttenuation,this.fog=t.fog,this}}let _geometry$1;const _intersectPoint=new Vector3,_worldScale=new Vector3,_mvPosition=new Vector3,_alignedPosition=new Vector2,_rotatedPosition=new Vector2,_viewWorldMatrix=new Matrix4,_vA=new Vector3,_vB=new Vector3,_vC=new Vector3,_uvA=new Vector2,_uvB=new Vector2,_uvC=new Vector2;class Sprite extends Object3D{constructor(t=new SpriteMaterial){if(super(),this.isSprite=!0,this.type="Sprite",void 0===_geometry$1){_geometry$1=new BufferGeometry;const t=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),e=new InterleavedBuffer(t,5);_geometry$1.setIndex([0,1,2,0,2,3]),_geometry$1.setAttribute("position",new InterleavedBufferAttribute(e,3,0,!1)),_geometry$1.setAttribute("uv",new InterleavedBufferAttribute(e,2,3,!1))}this.geometry=_geometry$1,this.material=t,this.center=new Vector2(.5,.5)}raycast(t,e){null===t.camera&&console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'),_worldScale.setFromMatrixScale(this.matrixWorld),_viewWorldMatrix.copy(t.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse,this.matrixWorld),_mvPosition.setFromMatrixPosition(this.modelViewMatrix),t.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&_worldScale.multiplyScalar(-_mvPosition.z);const n=this.material.rotation;let i,r;0!==n&&(r=Math.cos(n),i=Math.sin(n));const s=this.center;transformVertex(_vA.set(-.5,-.5,0),_mvPosition,s,_worldScale,i,r),transformVertex(_vB.set(.5,-.5,0),_mvPosition,s,_worldScale,i,r),transformVertex(_vC.set(.5,.5,0),_mvPosition,s,_worldScale,i,r),_uvA.set(0,0),_uvB.set(1,0),_uvC.set(1,1);let a=t.ray.intersectTriangle(_vA,_vB,_vC,!1,_intersectPoint);if(null===a&&(transformVertex(_vB.set(-.5,.5,0),_mvPosition,s,_worldScale,i,r),_uvB.set(0,1),a=t.ray.intersectTriangle(_vA,_vC,_vB,!1,_intersectPoint),null===a))return;const o=t.ray.origin.distanceTo(_intersectPoint);o<t.near||o>t.far||e.push({distance:o,point:_intersectPoint.clone(),uv:Triangle.getInterpolation(_intersectPoint,_vA,_vB,_vC,_uvA,_uvB,_uvC,new Vector2),face:null,object:this})}copy(t,e){return super.copy(t,e),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function transformVertex(t,e,n,i,r,s){_alignedPosition.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(_rotatedPosition.x=s*_alignedPosition.x-r*_alignedPosition.y,_rotatedPosition.y=r*_alignedPosition.x+s*_alignedPosition.y):_rotatedPosition.copy(_alignedPosition),t.copy(e),t.x+=_rotatedPosition.x,t.y+=_rotatedPosition.y,t.applyMatrix4(_viewWorldMatrix)}const _v1$2=new Vector3,_v2$1=new Vector3;class LOD extends Object3D{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let n=0,i=e.length;n<i;n++){const t=e[n];this.addLevel(t.object.clone(),t.distance,t.hysteresis)}return this.autoUpdate=t.autoUpdate,this}addLevel(t,e=0,n=0){e=Math.abs(e);const i=this.levels;let r;for(r=0;r<i.length&&!(e<i[r].distance);r++);return i.splice(r,0,{distance:e,hysteresis:n,object:t}),this.add(t),this}getCurrentLevel(){return this._currentLevel}getObjectForDistance(t){const e=this.levels;if(e.length>0){let n,i;for(n=1,i=e.length;n<i;n++){let i=e[n].distance;if(e[n].object.visible&&(i-=i*e[n].hysteresis),t<i)break}return e[n-1].object}return null}raycast(t,e){if(this.levels.length>0){_v1$2.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(_v1$2);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){_v1$2.setFromMatrixPosition(t.matrixWorld),_v2$1.setFromMatrixPosition(this.matrixWorld);const n=_v1$2.distanceTo(_v2$1)/t.zoom;let i,r;for(e[0].object.visible=!0,i=1,r=e.length;i<r;i++){let t=e[i].distance;if(e[i].object.visible&&(t-=t*e[i].hysteresis),!(n>=t))break;e[i-1].object.visible=!1,e[i].object.visible=!0}for(this._currentLevel=i-1;i<r;i++)e[i].object.visible=!1}}toJSON(t){const e=super.toJSON(t);!1===this.autoUpdate&&(e.object.autoUpdate=!1),e.object.levels=[];const n=this.levels;for(let i=0,r=n.length;i<r;i++){const t=n[i];e.object.levels.push({object:t.object.uuid,distance:t.distance,hysteresis:t.hysteresis})}return e}}const _basePosition=new Vector3,_skinIndex=new Vector4,_skinWeight=new Vector4,_vector3=new Vector3,_matrix4=new Matrix4,_vertex=new Vector3,_sphere$4=new Sphere,_inverseMatrix$2=new Matrix4,_ray$2=new Ray;class SkinnedMesh extends Mesh{constructor(t,e){super(t,e),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode=AttachedBindMode,this.bindMatrix=new Matrix4,this.bindMatrixInverse=new Matrix4,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){const t=this.geometry;null===this.boundingBox&&(this.boundingBox=new Box3),this.boundingBox.makeEmpty();const e=t.getAttribute("position");for(let n=0;n<e.count;n++)this.getVertexPosition(n,_vertex),this.boundingBox.expandByPoint(_vertex)}computeBoundingSphere(){const t=this.geometry;null===this.boundingSphere&&(this.boundingSphere=new Sphere),this.boundingSphere.makeEmpty();const e=t.getAttribute("position");for(let n=0;n<e.count;n++)this.getVertexPosition(n,_vertex),this.boundingSphere.expandByPoint(_vertex)}copy(t,e){return super.copy(t,e),this.bindMode=t.bindMode,this.bindMatrix.copy(t.bindMatrix),this.bindMatrixInverse.copy(t.bindMatrixInverse),this.skeleton=t.skeleton,null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone()),null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),this}raycast(t,e){const n=this.material,i=this.matrixWorld;void 0!==n&&(null===this.boundingSphere&&this.computeBoundingSphere(),_sphere$4.copy(this.boundingSphere),_sphere$4.applyMatrix4(i),!1!==t.ray.intersectsSphere(_sphere$4)&&(_inverseMatrix$2.copy(i).invert(),_ray$2.copy(t.ray).applyMatrix4(_inverseMatrix$2),null!==this.boundingBox&&!1===_ray$2.intersectsBox(this.boundingBox)||this._computeIntersections(t,e,_ray$2)))}getVertexPosition(t,e){return super.getVertexPosition(t,e),this.applyBoneTransform(t,e),e}bind(t,e){this.skeleton=t,void 0===e&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),e=this.matrixWorld),this.bindMatrix.copy(e),this.bindMatrixInverse.copy(e).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const t=new Vector4,e=this.geometry.attributes.skinWeight;for(let n=0,i=e.count;n<i;n++){t.fromBufferAttribute(e,n);const i=1/t.manhattanLength();i!==1/0?t.multiplyScalar(i):t.set(1,0,0,0),e.setXYZW(n,t.x,t.y,t.z,t.w)}}updateMatrixWorld(t){super.updateMatrixWorld(t),this.bindMode===AttachedBindMode?this.bindMatrixInverse.copy(this.matrixWorld).invert():this.bindMode===DetachedBindMode?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)}applyBoneTransform(t,e){const n=this.skeleton,i=this.geometry;_skinIndex.fromBufferAttribute(i.attributes.skinIndex,t),_skinWeight.fromBufferAttribute(i.attributes.skinWeight,t),_basePosition.copy(e).applyMatrix4(this.bindMatrix),e.set(0,0,0);for(let r=0;r<4;r++){const t=_skinWeight.getComponent(r);if(0!==t){const i=_skinIndex.getComponent(r);_matrix4.multiplyMatrices(n.bones[i].matrixWorld,n.boneInverses[i]),e.addScaledVector(_vector3.copy(_basePosition).applyMatrix4(_matrix4),t)}}return e.applyMatrix4(this.bindMatrixInverse)}}class Bone extends Object3D{constructor(){super(),this.isBone=!0,this.type="Bone"}}class DataTexture extends Texture{constructor(t=null,e=1,n=1,i,r,s,a,o,c=NearestFilter,l=NearestFilter,u,h){super(null,s,a,o,c,l,i,r,u,h),this.isDataTexture=!0,this.image={data:t,width:e,height:n},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}const _offsetMatrix=new Matrix4,_identityMatrix$1=new Matrix4;class Skeleton{constructor(t=[],e=[]){this.uuid=generateUUID(),this.bones=t.slice(0),this.boneInverses=e,this.boneMatrices=null,this.boneTexture=null,this.init()}init(){const t=this.bones,e=this.boneInverses;if(this.boneMatrices=new Float32Array(16*t.length),0===e.length)this.calculateInverses();else if(t.length!==e.length){console.warn("THREE.Skeleton: Number of inverse bone matrices does not match amount of bones."),this.boneInverses=[];for(let t=0,e=this.bones.length;t<e;t++)this.boneInverses.push(new Matrix4)}}calculateInverses(){this.boneInverses.length=0;for(let t=0,e=this.bones.length;t<e;t++){const e=new Matrix4;this.bones[t]&&e.copy(this.bones[t].matrixWorld).invert(),this.boneInverses.push(e)}}pose(){for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&e.matrixWorld.copy(this.boneInverses[t]).invert()}for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&(e.parent&&e.parent.isBone?(e.matrix.copy(e.parent.matrixWorld).invert(),e.matrix.multiply(e.matrixWorld)):e.matrix.copy(e.matrixWorld),e.matrix.decompose(e.position,e.quaternion,e.scale))}}update(){const t=this.bones,e=this.boneInverses,n=this.boneMatrices,i=this.boneTexture;for(let r=0,s=t.length;r<s;r++){const i=t[r]?t[r].matrixWorld:_identityMatrix$1;_offsetMatrix.multiplyMatrices(i,e[r]),_offsetMatrix.toArray(n,16*r)}null!==i&&(i.needsUpdate=!0)}clone(){return new Skeleton(this.bones,this.boneInverses)}computeBoneTexture(){let t=Math.sqrt(4*this.bones.length);t=4*Math.ceil(t/4),t=Math.max(t,4);const e=new Float32Array(t*t*4);e.set(this.boneMatrices);const n=new DataTexture(e,t,t,RGBAFormat,FloatType);return n.needsUpdate=!0,this.boneMatrices=e,this.boneTexture=n,this}getBoneByName(t){for(let e=0,n=this.bones.length;e<n;e++){const n=this.bones[e];if(n.name===t)return n}}dispose(){null!==this.boneTexture&&(this.boneTexture.dispose(),this.boneTexture=null)}fromJSON(t,e){this.uuid=t.uuid;for(let n=0,i=t.bones.length;n<i;n++){const i=t.bones[n];let r=e[i];void 0===r&&(console.warn("THREE.Skeleton: No bone found with UUID:",i),r=new Bone),this.bones.push(r),this.boneInverses.push((new Matrix4).fromArray(t.boneInverses[n]))}return this.init(),this}toJSON(){const t={metadata:{version:4.6,type:"Skeleton",generator:"Skeleton.toJSON"},bones:[],boneInverses:[]};t.uuid=this.uuid;const e=this.bones,n=this.boneInverses;for(let i=0,r=e.length;i<r;i++){const r=e[i];t.bones.push(r.uuid);const s=n[i];t.boneInverses.push(s.toArray())}return t}}class InstancedBufferAttribute extends BufferAttribute{constructor(t,e,n,i=1){super(t,e,n),this.isInstancedBufferAttribute=!0,this.meshPerAttribute=i}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}toJSON(){const t=super.toJSON();return t.meshPerAttribute=this.meshPerAttribute,t.isInstancedBufferAttribute=!0,t}}const _instanceLocalMatrix=new Matrix4,_instanceWorldMatrix=new Matrix4,_instanceIntersects=[],_box3=new Box3,_identity=new Matrix4,_mesh$1=new Mesh,_sphere$3=new Sphere;class InstancedMesh extends Mesh{constructor(t,e,n){super(t,e),this.isInstancedMesh=!0,this.instanceMatrix=new InstancedBufferAttribute(new Float32Array(16*n),16),this.instanceColor=null,this.morphTexture=null,this.count=n,this.boundingBox=null,this.boundingSphere=null;for(let i=0;i<n;i++)this.setMatrixAt(i,_identity)}computeBoundingBox(){const t=this.geometry,e=this.count;null===this.boundingBox&&(this.boundingBox=new Box3),null===t.boundingBox&&t.computeBoundingBox(),this.boundingBox.makeEmpty();for(let n=0;n<e;n++)this.getMatrixAt(n,_instanceLocalMatrix),_box3.copy(t.boundingBox).applyMatrix4(_instanceLocalMatrix),this.boundingBox.union(_box3)}computeBoundingSphere(){const t=this.geometry,e=this.count;null===this.boundingSphere&&(this.boundingSphere=new Sphere),null===t.boundingSphere&&t.computeBoundingSphere(),this.boundingSphere.makeEmpty();for(let n=0;n<e;n++)this.getMatrixAt(n,_instanceLocalMatrix),_sphere$3.copy(t.boundingSphere).applyMatrix4(_instanceLocalMatrix),this.boundingSphere.union(_sphere$3)}copy(t,e){return super.copy(t,e),this.instanceMatrix.copy(t.instanceMatrix),null!==t.morphTexture&&(this.morphTexture=t.morphTexture.clone()),null!==t.instanceColor&&(this.instanceColor=t.instanceColor.clone()),this.count=t.count,null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone()),null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),this}getColorAt(t,e){e.fromArray(this.instanceColor.array,3*t)}getMatrixAt(t,e){e.fromArray(this.instanceMatrix.array,16*t)}getMorphAt(t,e){const n=e.morphTargetInfluences,i=this.morphTexture.source.data.data,r=t*(n.length+1)+1;for(let s=0;s<n.length;s++)n[s]=i[r+s]}raycast(t,e){const n=this.matrixWorld,i=this.count;if(_mesh$1.geometry=this.geometry,_mesh$1.material=this.material,void 0!==_mesh$1.material&&(null===this.boundingSphere&&this.computeBoundingSphere(),_sphere$3.copy(this.boundingSphere),_sphere$3.applyMatrix4(n),!1!==t.ray.intersectsSphere(_sphere$3)))for(let r=0;r<i;r++){this.getMatrixAt(r,_instanceLocalMatrix),_instanceWorldMatrix.multiplyMatrices(n,_instanceLocalMatrix),_mesh$1.matrixWorld=_instanceWorldMatrix,_mesh$1.raycast(t,_instanceIntersects);for(let t=0,n=_instanceIntersects.length;t<n;t++){const n=_instanceIntersects[t];n.instanceId=r,n.object=this,e.push(n)}_instanceIntersects.length=0}}setColorAt(t,e){null===this.instanceColor&&(this.instanceColor=new InstancedBufferAttribute(new Float32Array(3*this.instanceMatrix.count),3)),e.toArray(this.instanceColor.array,3*t)}setMatrixAt(t,e){e.toArray(this.instanceMatrix.array,16*t)}setMorphAt(t,e){const n=e.morphTargetInfluences,i=n.length+1;null===this.morphTexture&&(this.morphTexture=new DataTexture(new Float32Array(i*this.count),i,this.count,RedFormat,FloatType));const r=this.morphTexture.source.data.data;let s=0;for(let c=0;c<n.length;c++)s+=n[c];const a=this.geometry.morphTargetsRelative?1:1-s,o=i*t;r[o]=a,r.set(n,o+1)}updateMorphTargets(){}dispose(){return this.dispatchEvent({type:"dispose"}),null!==this.morphTexture&&(this.morphTexture.dispose(),this.morphTexture=null),this}}function sortOpaque(t,e){return t.z-e.z}function sortTransparent(t,e){return e.z-t.z}class MultiDrawRenderList{constructor(){this.index=0,this.pool=[],this.list=[]}push(t,e,n){const i=this.pool,r=this.list;this.index>=i.length&&i.push({start:-1,count:-1,z:-1,index:-1});const s=i[this.index];r.push(s),this.index++,s.start=t.start,s.count=t.count,s.z=e,s.index=n}reset(){this.list.length=0,this.index=0}}const _matrix$1=new Matrix4,_invMatrixWorld=new Matrix4,_identityMatrix$2=new Matrix4,_whiteColor=new Color(1,1,1),_projScreenMatrix$2=new Matrix4,_frustum=new Frustum,_box$1$1=new Box3,_sphere$2=new Sphere,_vector$5=new Vector3,_forward=new Vector3,_temp=new Vector3,_renderList=new MultiDrawRenderList,_mesh=new Mesh,_batchIntersects=[];function copyAttributeData(t,e,n=0){const i=e.itemSize;if(t.isInterleavedBufferAttribute||t.array.constructor!==e.array.constructor){const r=t.count;for(let s=0;s<r;s++)for(let r=0;r<i;r++)e.setComponent(s+n,r,t.getComponent(s,r))}else e.array.set(t.array,n*i);e.needsUpdate=!0}class BatchedMesh extends Mesh{get maxInstanceCount(){return this._maxInstanceCount}constructor(t,e,n=2*e,i){super(new BufferGeometry,i),this.isBatchedMesh=!0,this.perObjectFrustumCulled=!0,this.sortObjects=!0,this.boundingBox=null,this.boundingSphere=null,this.customSort=null,this._drawInfo=[],this._drawRanges=[],this._reservedRanges=[],this._bounds=[],this._maxInstanceCount=t,this._maxVertexCount=e,this._maxIndexCount=n,this._geometryInitialized=!1,this._geometryCount=0,this._multiDrawCounts=new Int32Array(t),this._multiDrawStarts=new Int32Array(t),this._multiDrawCount=0,this._multiDrawInstances=null,this._visibilityChanged=!0,this._matricesTexture=null,this._indirectTexture=null,this._colorsTexture=null,this._initMatricesTexture(),this._initIndirectTexture()}_initMatricesTexture(){let t=Math.sqrt(4*this._maxInstanceCount);t=4*Math.ceil(t/4),t=Math.max(t,4);const e=new Float32Array(t*t*4),n=new DataTexture(e,t,t,RGBAFormat,FloatType);this._matricesTexture=n}_initIndirectTexture(){let t=Math.sqrt(this._maxInstanceCount);t=Math.ceil(t);const e=new Uint32Array(t*t),n=new DataTexture(e,t,t,RedIntegerFormat,UnsignedIntType);this._indirectTexture=n}_initColorsTexture(){let t=Math.sqrt(this._maxIndexCount);t=Math.ceil(t);const e=new Float32Array(t*t*4).fill(1),n=new DataTexture(e,t,t,RGBAFormat,FloatType);n.colorSpace=ColorManagement.workingColorSpace,this._colorsTexture=n}_initializeGeometry(t){const e=this.geometry,n=this._maxVertexCount,i=this._maxIndexCount;if(!1===this._geometryInitialized){for(const i in t.attributes){const r=t.getAttribute(i),{array:s,itemSize:a,normalized:o}=r,c=new s.constructor(n*a),l=new BufferAttribute(c,a,o);e.setAttribute(i,l)}if(null!==t.getIndex()){const t=n>65535?new Uint32Array(i):new Uint16Array(i);e.setIndex(new BufferAttribute(t,1))}this._geometryInitialized=!0}}_validateGeometry(t){const e=this.geometry;if(Boolean(t.getIndex())!==Boolean(e.getIndex()))throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const n in e.attributes){if(!t.hasAttribute(n))throw new Error(`BatchedMesh: Added geometry missing "${n}". All geometries must have consistent attributes.`);const i=t.getAttribute(n),r=e.getAttribute(n);if(i.itemSize!==r.itemSize||i.normalized!==r.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(t){return this.customSort=t,this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new Box3);const t=this._geometryCount,e=this.boundingBox,n=this._drawInfo;e.makeEmpty();for(let i=0;i<t;i++){if(!1===n[i].active)continue;const t=n[i].geometryIndex;this.getMatrixAt(i,_matrix$1),this.getBoundingBoxAt(t,_box$1$1).applyMatrix4(_matrix$1),e.union(_box$1$1)}}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new Sphere);const t=this.boundingSphere,e=this._drawInfo;t.makeEmpty();for(let n=0,i=e.length;n<i;n++){if(!1===e[n].active)continue;const i=e[n].geometryIndex;this.getMatrixAt(n,_matrix$1),this.getBoundingSphereAt(i,_sphere$2).applyMatrix4(_matrix$1),t.union(_sphere$2)}}addInstance(t){if(this._drawInfo.length>=this._maxInstanceCount)throw new Error("BatchedMesh: Maximum item count reached.");this._drawInfo.push({visible:!0,active:!0,geometryIndex:t});const e=this._drawInfo.length-1,n=this._matricesTexture,i=n.image.data;_identityMatrix$2.toArray(i,16*e),n.needsUpdate=!0;const r=this._colorsTexture;return r&&(_whiteColor.toArray(r.image.data,4*e),r.needsUpdate=!0),e}addGeometry(t,e=-1,n=-1){if(this._initializeGeometry(t),this._validateGeometry(t),this._drawInfo.length>=this._maxInstanceCount)throw new Error("BatchedMesh: Maximum item count reached.");const i={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let r=null;const s=this._reservedRanges,a=this._drawRanges,o=this._bounds;0!==this._geometryCount&&(r=s[s.length-1]),i.vertexCount=-1===e?t.getAttribute("position").count:e,i.vertexStart=null===r?0:r.vertexStart+r.vertexCount;const c=t.getIndex(),l=null!==c;if(l&&(i.indexCount=-1===n?c.count:n,i.indexStart=null===r?0:r.indexStart+r.indexCount),-1!==i.indexStart&&i.indexStart+i.indexCount>this._maxIndexCount||i.vertexStart+i.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const u=this._geometryCount;return this._geometryCount++,s.push(i),a.push({start:l?i.indexStart:i.vertexStart,count:-1}),o.push({boxInitialized:!1,box:new Box3,sphereInitialized:!1,sphere:new Sphere}),this.setGeometryAt(u,t),u}setGeometryAt(t,e){if(t>=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(e);const n=this.geometry,i=null!==n.getIndex(),r=n.getIndex(),s=e.getIndex(),a=this._reservedRanges[t];if(i&&s.count>a.indexCount||e.attributes.position.count>a.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const o=a.vertexStart,c=a.vertexCount;for(const d in n.attributes){const t=e.getAttribute(d),i=n.getAttribute(d);copyAttributeData(t,i,o);const r=t.itemSize;for(let e=t.count,n=c;e<n;e++){const t=o+e;for(let e=0;e<r;e++)i.setComponent(t,e,0)}i.needsUpdate=!0,i.addUpdateRange(o*r,c*r)}if(i){const t=a.indexStart;for(let e=0;e<s.count;e++)r.setX(t+e,o+s.getX(e));for(let e=s.count,n=a.indexCount;e<n;e++)r.setX(t+e,o);r.needsUpdate=!0,r.addUpdateRange(t,a.indexCount)}const l=this._bounds[t];null!==e.boundingBox?(l.box.copy(e.boundingBox),l.boxInitialized=!0):l.boxInitialized=!1,null!==e.boundingSphere?(l.sphere.copy(e.boundingSphere),l.sphereInitialized=!0):l.sphereInitialized=!1;const u=this._drawRanges[t],h=e.getAttribute("position");return u.count=i?s.count:h.count,this._visibilityChanged=!0,t}getBoundingBoxAt(t,e){if(t>=this._geometryCount)return null;const n=this._bounds[t],i=n.box,r=this.geometry;if(!1===n.boxInitialized){i.makeEmpty();const e=r.index,s=r.attributes.position,a=this._drawRanges[t];for(let t=a.start,n=a.start+a.count;t<n;t++){let n=t;e&&(n=e.getX(n)),i.expandByPoint(_vector$5.fromBufferAttribute(s,n))}n.boxInitialized=!0}return e.copy(i),e}getBoundingSphereAt(t,e){if(t>=this._geometryCount)return null;const n=this._bounds[t],i=n.sphere,r=this.geometry;if(!1===n.sphereInitialized){i.makeEmpty(),this.getBoundingBoxAt(t,_box$1$1),_box$1$1.getCenter(i.center);const e=r.index,s=r.attributes.position,a=this._drawRanges[t];let o=0;for(let t=a.start,n=a.start+a.count;t<n;t++){let n=t;e&&(n=e.getX(n)),_vector$5.fromBufferAttribute(s,n),o=Math.max(o,i.center.distanceToSquared(_vector$5))}i.radius=Math.sqrt(o),n.sphereInitialized=!0}return e.copy(i),e}setMatrixAt(t,e){const n=this._drawInfo,i=this._matricesTexture,r=this._matricesTexture.image.data;return t>=n.length||!1===n[t].active||(e.toArray(r,16*t),i.needsUpdate=!0),this}getMatrixAt(t,e){const n=this._drawInfo,i=this._matricesTexture.image.data;return t>=n.length||!1===n[t].active?null:e.fromArray(i,16*t)}setColorAt(t,e){null===this._colorsTexture&&this._initColorsTexture();const n=this._colorsTexture,i=this._colorsTexture.image.data,r=this._drawInfo;return t>=r.length||!1===r[t].active||(e.toArray(i,4*t),n.needsUpdate=!0),this}getColorAt(t,e){const n=this._colorsTexture.image.data,i=this._drawInfo;return t>=i.length||!1===i[t].active?null:e.fromArray(n,4*t)}setVisibleAt(t,e){const n=this._drawInfo;return t>=n.length||!1===n[t].active||n[t].visible===e||(n[t].visible=e,this._visibilityChanged=!0),this}getVisibleAt(t){const e=this._drawInfo;return!(t>=e.length||!1===e[t].active)&&e[t].visible}raycast(t,e){const n=this._drawInfo,i=this._drawRanges,r=this.matrixWorld,s=this.geometry;_mesh.material=this.material,_mesh.geometry.index=s.index,_mesh.geometry.attributes=s.attributes,null===_mesh.geometry.boundingBox&&(_mesh.geometry.boundingBox=new Box3),null===_mesh.geometry.boundingSphere&&(_mesh.geometry.boundingSphere=new Sphere);for(let a=0,o=n.length;a<o;a++){if(!n[a].visible||!n[a].active)continue;const s=n[a].geometryIndex,o=i[s];_mesh.geometry.setDrawRange(o.start,o.count),this.getMatrixAt(a,_mesh.matrixWorld).premultiply(r),this.getBoundingBoxAt(s,_mesh.geometry.boundingBox),this.getBoundingSphereAt(s,_mesh.geometry.boundingSphere),_mesh.raycast(t,_batchIntersects);for(let t=0,n=_batchIntersects.length;t<n;t++){const n=_batchIntersects[t];n.object=this,n.batchId=a,e.push(n)}_batchIntersects.length=0}_mesh.material=null,_mesh.geometry.index=null,_mesh.geometry.attributes={},_mesh.geometry.setDrawRange(0,1/0)}copy(t){return super.copy(t),this.geometry=t.geometry.clone(),this.perObjectFrustumCulled=t.perObjectFrustumCulled,this.sortObjects=t.sortObjects,this.boundingBox=null!==t.boundingBox?t.boundingBox.clone():null,this.boundingSphere=null!==t.boundingSphere?t.boundingSphere.clone():null,this._drawRanges=t._drawRanges.map(t=>({...t})),this._reservedRanges=t._reservedRanges.map(t=>({...t})),this._drawInfo=t._drawInfo.map(t=>({...t})),this._bounds=t._bounds.map(t=>({boxInitialized:t.boxInitialized,box:t.box.clone(),sphereInitialized:t.sphereInitialized,sphere:t.sphere.clone()})),this._maxInstanceCount=t._maxInstanceCount,this._maxVertexCount=t._maxVertexCount,this._maxIndexCount=t._maxIndexCount,this._geometryInitialized=t._geometryInitialized,this._geometryCount=t._geometryCount,this._multiDrawCounts=t._multiDrawCounts.slice(),this._multiDrawStarts=t._multiDrawStarts.slice(),this._matricesTexture=t._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),null!==this._colorsTexture&&(this._colorsTexture=t._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.slice()),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._indirectTexture.dispose(),this._indirectTexture=null,null!==this._colorsTexture&&(this._colorsTexture.dispose(),this._colorsTexture=null),this}onBeforeRender(t,e,n,i,r){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const s=i.getIndex(),a=null===s?1:s.array.BYTES_PER_ELEMENT,o=this._drawInfo,c=this._multiDrawStarts,l=this._multiDrawCounts,u=this._drawRanges,h=this.perObjectFrustumCulled,d=this._indirectTexture,p=d.image.data;h&&(_projScreenMatrix$2.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse).multiply(this.matrixWorld),_frustum.setFromProjectionMatrix(_projScreenMatrix$2,t.coordinateSystem));let f=0;if(this.sortObjects){_invMatrixWorld.copy(this.matrixWorld).invert(),_vector$5.setFromMatrixPosition(n.matrixWorld).applyMatrix4(_invMatrixWorld),_forward.set(0,0,-1).transformDirection(n.matrixWorld).transformDirection(_invMatrixWorld);for(let n=0,i=o.length;n<i;n++)if(o[n].visible&&o[n].active){const t=o[n].geometryIndex;this.getMatrixAt(n,_matrix$1),this.getBoundingSphereAt(t,_sphere$2).applyMatrix4(_matrix$1);let e=!1;if(h&&(e=!_frustum.intersectsSphere(_sphere$2)),!e){const e=_temp.subVectors(_sphere$2.center,_vector$5).dot(_forward);_renderList.push(u[t],e,n)}}const t=_renderList.list,e=this.customSort;null===e?t.sort(r.transparent?sortTransparent:sortOpaque):e.call(this,t,n);for(let n=0,i=t.length;n<i;n++){const e=t[n];c[f]=e.start*a,l[f]=e.count,p[f]=e.index,f++}_renderList.reset()}else for(let m=0,g=o.length;m<g;m++)if(o[m].visible&&o[m].active){const t=o[m].geometryIndex;let e=!1;if(h&&(this.getMatrixAt(m,_matrix$1),this.getBoundingSphereAt(t,_sphere$2).applyMatrix4(_matrix$1),e=!_frustum.intersectsSphere(_sphere$2)),!e){const e=u[t];c[f]=e.start*a,l[f]=e.count,p[f]=m,f++}}d.needsUpdate=!0,this._multiDrawCount=f,this._visibilityChanged=!1}onBeforeShadow(t,e,n,i,r,s){this.onBeforeRender(t,null,i,r,s)}}class LineBasicMaterial extends Material{constructor(t){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new Color(16777215),this.map=null,this.linewidth=1,this.linecap="round",this.linejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this.fog=t.fog,this}}const _vStart=new Vector3,_vEnd=new Vector3,_inverseMatrix$1=new Matrix4,_ray$1=new Ray,_sphere$1=new Sphere,_intersectPointOnRay=new Vector3,_intersectPointOnSegment=new Vector3;class Line extends Object3D{constructor(t=new BufferGeometry,e=new LineBasicMaterial){super(),this.isLine=!0,this.type="Line",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t,e){return super.copy(t,e),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}computeLineDistances(){const t=this.geometry;if(null===t.index){const e=t.attributes.position,n=[0];for(let t=1,i=e.count;t<i;t++)_vStart.fromBufferAttribute(e,t-1),_vEnd.fromBufferAttribute(e,t),n[t]=n[t-1],n[t]+=_vStart.distanceTo(_vEnd);t.setAttribute("lineDistance",new Float32BufferAttribute(n,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}raycast(t,e){const n=this.geometry,i=this.matrixWorld,r=t.params.Line.threshold,s=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),_sphere$1.copy(n.boundingSphere),_sphere$1.applyMatrix4(i),_sphere$1.radius+=r,!1===t.ray.intersectsSphere(_sphere$1))return;_inverseMatrix$1.copy(i).invert(),_ray$1.copy(t.ray).applyMatrix4(_inverseMatrix$1);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3),o=a*a,c=this.isLineSegments?2:1,l=n.index,u=n.attributes.position;if(null!==l){const n=Math.max(0,s.start),i=Math.min(l.count,s.start+s.count);for(let r=n,s=i-1;r<s;r+=c){const n=l.getX(r),i=l.getX(r+1),s=checkIntersection(this,t,_ray$1,o,n,i);s&&e.push(s)}if(this.isLineLoop){const r=l.getX(i-1),s=l.getX(n),a=checkIntersection(this,t,_ray$1,o,r,s);a&&e.push(a)}}else{const n=Math.max(0,s.start),i=Math.min(u.count,s.start+s.count);for(let r=n,s=i-1;r<s;r+=c){const n=checkIntersection(this,t,_ray$1,o,r,r+1);n&&e.push(n)}if(this.isLineLoop){const r=checkIntersection(this,t,_ray$1,o,i-1,n);r&&e.push(r)}}}updateMorphTargets(){const t=this.geometry.morphAttributes,e=Object.keys(t);if(e.length>0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t<e;t++){const e=n[t].name||String(t);this.morphTargetInfluences.push(0),this.morphTargetDictionary[e]=t}}}}}function checkIntersection(t,e,n,i,r,s){const a=t.geometry.attributes.position;_vStart.fromBufferAttribute(a,r),_vEnd.fromBufferAttribute(a,s);if(n.distanceSqToSegment(_vStart,_vEnd,_intersectPointOnRay,_intersectPointOnSegment)>i)return;_intersectPointOnRay.applyMatrix4(t.matrixWorld);const o=e.ray.origin.distanceTo(_intersectPointOnRay);return o<e.near||o>e.far?void 0:{distance:o,point:_intersectPointOnSegment.clone().applyMatrix4(t.matrixWorld),index:r,face:null,faceIndex:null,object:t}}const _start$1=new Vector3,_end$1=new Vector3;class LineSegments extends Line{constructor(t,e){super(t,e),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const t=this.geometry;if(null===t.index){const e=t.attributes.position,n=[];for(let t=0,i=e.count;t<i;t+=2)_start$1.fromBufferAttribute(e,t),_end$1.fromBufferAttribute(e,t+1),n[t]=0===t?0:n[t-1],n[t+1]=n[t]+_start$1.distanceTo(_end$1);t.setAttribute("lineDistance",new Float32BufferAttribute(n,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}}class LineLoop extends Line{constructor(t,e){super(t,e),this.isLineLoop=!0,this.type="LineLoop"}}class PointsMaterial extends Material{constructor(t){super(),this.isPointsMaterial=!0,this.type="PointsMaterial",this.color=new Color(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this.fog=t.fog,this}}const _inverseMatrix=new Matrix4,_ray$4=new Ray,_sphere$7=new Sphere,_position$2=new Vector3;class Points extends Object3D{constructor(t=new BufferGeometry,e=new PointsMaterial){super(),this.isPoints=!0,this.type="Points",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t,e){return super.copy(t,e),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}raycast(t,e){const n=this.geometry,i=this.matrixWorld,r=t.params.Points.threshold,s=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),_sphere$7.copy(n.boundingSphere),_sphere$7.applyMatrix4(i),_sphere$7.radius+=r,!1===t.ray.intersectsSphere(_sphere$7))return;_inverseMatrix.copy(i).invert(),_ray$4.copy(t.ray).applyMatrix4(_inverseMatrix);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3),o=a*a,c=n.index,l=n.attributes.position;if(null!==c){for(let n=Math.max(0,s.start),r=Math.min(c.count,s.start+s.count);n<r;n++){const r=c.getX(n);_position$2.fromBufferAttribute(l,r),testPoint(_position$2,r,o,i,t,e,this)}}else{for(let n=Math.max(0,s.start),r=Math.min(l.count,s.start+s.count);n<r;n++)_position$2.fromBufferAttribute(l,n),testPoint(_position$2,n,o,i,t,e,this)}}updateMorphTargets(){const t=this.geometry.morphAttributes,e=Object.keys(t);if(e.length>0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t<e;t++){const e=n[t].name||String(t);this.morphTargetInfluences.push(0),this.morphTargetDictionary[e]=t}}}}}function testPoint(t,e,n,i,r,s,a){const o=_ray$4.distanceSqToPoint(t);if(o<n){const n=new Vector3;_ray$4.closestPointToPoint(t,n),n.applyMatrix4(i);const c=r.ray.origin.distanceTo(n);if(c<r.near||c>r.far)return;s.push({distance:c,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}class VideoTexture extends Texture{constructor(t,e,n,i,r,s,a,o,c){super(t,e,n,i,r,s,a,o,c),this.isVideoTexture=!0,this.minFilter=void 0!==s?s:LinearFilter,this.magFilter=void 0!==r?r:LinearFilter,this.generateMipmaps=!1;const l=this;"requestVideoFrameCallback"in t&&t.requestVideoFrameCallback(function e(){l.needsUpdate=!0,t.requestVideoFrameCallback(e)})}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;!1==="requestVideoFrameCallback"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class FramebufferTexture extends Texture{constructor(t,e){super({width:t,height:e}),this.isFramebufferTexture=!0,this.magFilter=NearestFilter,this.minFilter=NearestFilter,this.generateMipmaps=!1,this.needsUpdate=!0}}class CompressedTexture extends Texture{constructor(t,e,n,i,r,s,a,o,c,l,u,h){super(null,s,a,o,c,l,i,r,u,h),this.isCompressedTexture=!0,this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}class CompressedArrayTexture extends CompressedTexture{constructor(t,e,n,i,r,s){super(t,e,n,r,s),this.isCompressedArrayTexture=!0,this.image.depth=i,this.wrapR=ClampToEdgeWrapping,this.layerUpdates=new Set}addLayerUpdate(t){this.layerUpdates.add(t)}clearLayerUpdates(){this.layerUpdates.clear()}}class CompressedCubeTexture extends CompressedTexture{constructor(t,e,n){super(void 0,t[0].width,t[0].height,e,n,CubeReflectionMapping),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=t}}class CanvasTexture extends Texture{constructor(t,e,n,i,r,s,a,o,c){super(t,e,n,i,r,s,a,o,c),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Curve{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),r=0;e.push(0);for(let s=1;s<=t;s++)n=this.getPoint(s/t),r+=n.distanceTo(i),e.push(r),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const r=n.length;let s;s=e||t*n[r-1];let a,o=0,c=r-1;for(;o<=c;)if(i=Math.floor(o+(c-o)/2),a=n[i]-s,a<0)o=i+1;else{if(!(a>0)){c=i;break}c=i-1}if(i=c,n[i]===s)return i/(r-1);const l=n[i];return(i+(s-l)/(n[i+1]-l))/(r-1)}getTangent(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),o=e||(s.isVector2?new Vector2:new Vector3);return o.copy(a).sub(s).normalize(),o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new Vector3,i=[],r=[],s=[],a=new Vector3,o=new Matrix4;for(let d=0;d<=t;d++){const e=d/t;i[d]=this.getTangentAt(e,new Vector3)}r[0]=new Vector3,s[0]=new Vector3;let c=Number.MAX_VALUE;const l=Math.abs(i[0].x),u=Math.abs(i[0].y),h=Math.abs(i[0].z);l<=c&&(c=l,n.set(1,0,0)),u<=c&&(c=u,n.set(0,1,0)),h<=c&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let d=1;d<=t;d++){if(r[d]=r[d-1].clone(),s[d]=s[d-1].clone(),a.crossVectors(i[d-1],i[d]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(clamp$1(i[d-1].dot(i[d]),-1,1));r[d].applyMatrix4(o.makeRotationAxis(a,t))}s[d].crossVectors(i[d],r[d])}if(!0===e){let e=Math.acos(clamp$1(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n)),s[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class EllipseCurve extends Curve{constructor(t=0,e=0,n=1,i=1,r=0,s=2*Math.PI,a=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(t,e=new Vector2){const n=e,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)<Number.EPSILON;for(;r<0;)r+=i;for(;r>i;)r-=i;r<Number.EPSILON&&(r=s?0:i),!0!==this.aClockwise||s||(r===i?r=-i:r-=i);const a=this.aStartAngle+t*r;let o=this.aX+this.xRadius*Math.cos(a),c=this.aY+this.yRadius*Math.sin(a);if(0!==this.aRotation){const t=Math.cos(this.aRotation),e=Math.sin(this.aRotation),n=o-this.aX,i=c-this.aY;o=n*t-i*e+this.aX,c=n*e+i*t+this.aY}return n.set(o,c)}copy(t){return super.copy(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}toJSON(){const t=super.toJSON();return t.aX=this.aX,t.aY=this.aY,t.xRadius=this.xRadius,t.yRadius=this.yRadius,t.aStartAngle=this.aStartAngle,t.aEndAngle=this.aEndAngle,t.aClockwise=this.aClockwise,t.aRotation=this.aRotation,t}fromJSON(t){return super.fromJSON(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}}class ArcCurve extends EllipseCurve{constructor(t,e,n,i,r,s){super(t,e,n,n,i,r,s),this.isArcCurve=!0,this.type="ArcCurve"}}function CubicPoly(){let t=0,e=0,n=0,i=0;function r(r,s,a,o){t=r,e=a,n=-3*r+3*s-2*a-o,i=2*r-2*s+a+o}return{initCatmullRom:function(t,e,n,i,s){r(e,n,s*(n-t),s*(i-e))},initNonuniformCatmullRom:function(t,e,n,i,s,a,o){let c=(e-t)/s-(n-t)/(s+a)+(n-e)/a,l=(n-e)/a-(i-e)/(a+o)+(i-n)/o;c*=a,l*=a,r(e,n,c,l)},calc:function(r){const s=r*r;return t+e*r+n*s+i*(s*r)}}}const tmp=new Vector3,px=new CubicPoly,py=new CubicPoly,pz=new CubicPoly;class CatmullRomCurve3 extends Curve{constructor(t=[],e=!1,n="centripetal",i=.5){super(),this.isCatmullRomCurve3=!0,this.type="CatmullRomCurve3",this.points=t,this.closed=e,this.curveType=n,this.tension=i}getPoint(t,e=new Vector3){const n=e,i=this.points,r=i.length,s=(r-(this.closed?0:1))*t;let a,o,c=Math.floor(s),l=s-c;this.closed?c+=c>0?0:(Math.floor(Math.abs(c)/r)+1)*r:0===l&&c===r-1&&(c=r-2,l=1),this.closed||c>0?a=i[(c-1)%r]:(tmp.subVectors(i[0],i[1]).add(i[0]),a=tmp);const u=i[c%r],h=i[(c+1)%r];if(this.closed||c+2<r?o=i[(c+2)%r]:(tmp.subVectors(i[r-1],i[r-2]).add(i[r-1]),o=tmp),"centripetal"===this.curveType||"chordal"===this.curveType){const t="chordal"===this.curveType?.5:.25;let e=Math.pow(a.distanceToSquared(u),t),n=Math.pow(u.distanceToSquared(h),t),i=Math.pow(h.distanceToSquared(o),t);n<1e-4&&(n=1),e<1e-4&&(e=n),i<1e-4&&(i=n),px.initNonuniformCatmullRom(a.x,u.x,h.x,o.x,e,n,i),py.initNonuniformCatmullRom(a.y,u.y,h.y,o.y,e,n,i),pz.initNonuniformCatmullRom(a.z,u.z,h.z,o.z,e,n,i)}else"catmullrom"===this.curveType&&(px.initCatmullRom(a.x,u.x,h.x,o.x,this.tension),py.initCatmullRom(a.y,u.y,h.y,o.y,this.tension),pz.initCatmullRom(a.z,u.z,h.z,o.z,this.tension));return n.set(px.calc(l),py.calc(l),pz.calc(l)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t.closed=this.closed,t.curveType=this.curveType,t.tension=this.tension,t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new Vector3).fromArray(n))}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}}function CatmullRom(t,e,n,i,r){const s=.5*(i-e),a=.5*(r-n),o=t*t;return(2*n-2*i+s+a)*(t*o)+(-3*n+3*i-2*s-a)*o+s*t+n}function QuadraticBezierP0(t,e){const n=1-t;return n*n*e}function QuadraticBezierP1(t,e){return 2*(1-t)*t*e}function QuadraticBezierP2(t,e){return t*t*e}function QuadraticBezier(t,e,n,i){return QuadraticBezierP0(t,e)+QuadraticBezierP1(t,n)+QuadraticBezierP2(t,i)}function CubicBezierP0(t,e){const n=1-t;return n*n*n*e}function CubicBezierP1(t,e){const n=1-t;return 3*n*n*t*e}function CubicBezierP2(t,e){return 3*(1-t)*t*t*e}function CubicBezierP3(t,e){return t*t*t*e}function CubicBezier(t,e,n,i,r){return CubicBezierP0(t,e)+CubicBezierP1(t,n)+CubicBezierP2(t,i)+CubicBezierP3(t,r)}class CubicBezierCurve extends Curve{constructor(t=new Vector2,e=new Vector2,n=new Vector2,i=new Vector2){super(),this.isCubicBezierCurve=!0,this.type="CubicBezierCurve",this.v0=t,this.v1=e,this.v2=n,this.v3=i}getPoint(t,e=new Vector2){const n=e,i=this.v0,r=this.v1,s=this.v2,a=this.v3;return n.set(CubicBezier(t,i.x,r.x,s.x,a.x),CubicBezier(t,i.y,r.y,s.y,a.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}class CubicBezierCurve3 extends Curve{constructor(t=new Vector3,e=new Vector3,n=new Vector3,i=new Vector3){super(),this.isCubicBezierCurve3=!0,this.type="CubicBezierCurve3",this.v0=t,this.v1=e,this.v2=n,this.v3=i}getPoint(t,e=new Vector3){const n=e,i=this.v0,r=this.v1,s=this.v2,a=this.v3;return n.set(CubicBezier(t,i.x,r.x,s.x,a.x),CubicBezier(t,i.y,r.y,s.y,a.y),CubicBezier(t,i.z,r.z,s.z,a.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}class LineCurve extends Curve{constructor(t=new Vector2,e=new Vector2){super(),this.isLineCurve=!0,this.type="LineCurve",this.v1=t,this.v2=e}getPoint(t,e=new Vector2){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e=new Vector2){return e.subVectors(this.v2,this.v1).normalize()}getTangentAt(t,e){return this.getTangent(t,e)}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}class LineCurve3 extends Curve{constructor(t=new Vector3,e=new Vector3){super(),this.isLineCurve3=!0,this.type="LineCurve3",this.v1=t,this.v2=e}getPoint(t,e=new Vector3){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e=new Vector3){return e.subVectors(this.v2,this.v1).normalize()}getTangentAt(t,e){return this.getTangent(t,e)}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}class QuadraticBezierCurve extends Curve{constructor(t=new Vector2,e=new Vector2,n=new Vector2){super(),this.isQuadraticBezierCurve=!0,this.type="QuadraticBezierCurve",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new Vector2){const n=e,i=this.v0,r=this.v1,s=this.v2;return n.set(QuadraticBezier(t,i.x,r.x,s.x),QuadraticBezier(t,i.y,r.y,s.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}class QuadraticBezierCurve3 extends Curve{constructor(t=new Vector3,e=new Vector3,n=new Vector3){super(),this.isQuadraticBezierCurve3=!0,this.type="QuadraticBezierCurve3",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new Vector3){const n=e,i=this.v0,r=this.v1,s=this.v2;return n.set(QuadraticBezier(t,i.x,r.x,s.x),QuadraticBezier(t,i.y,r.y,s.y),QuadraticBezier(t,i.z,r.z,s.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}class SplineCurve extends Curve{constructor(t=[]){super(),this.isSplineCurve=!0,this.type="SplineCurve",this.points=t}getPoint(t,e=new Vector2){const n=e,i=this.points,r=(i.length-1)*t,s=Math.floor(r),a=r-s,o=i[0===s?s:s-1],c=i[s],l=i[s>i.length-2?i.length-1:s+1],u=i[s>i.length-3?i.length-1:s+2];return n.set(CatmullRom(a,o.x,c.x,l.x,u.x),CatmullRom(a,o.y,c.y,l.y,u.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new Vector2).fromArray(n))}return this}}var Curves=Object.freeze({__proto__:null,ArcCurve,CatmullRomCurve3,CubicBezierCurve,CubicBezierCurve3,EllipseCurve,LineCurve,LineCurve3,QuadraticBezierCurve,QuadraticBezierCurve3,SplineCurve});class CurvePath extends Curve{constructor(){super(),this.type="CurvePath",this.curves=[],this.autoClose=!1}add(t){this.curves.push(t)}closePath(){const t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);if(!t.equals(e)){const n=!0===t.isVector2?"LineCurve":"LineCurve3";this.curves.push(new Curves[n](e,t))}return this}getPoint(t,e){const n=t*this.getLength(),i=this.getCurveLengths();let r=0;for(;r<i.length;){if(i[r]>=n){const t=i[r]-n,s=this.curves[r],a=s.getLength(),o=0===a?0:1-t/a;return s.getPointAt(o,e)}r++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n<i;n++)e+=this.curves[n].getLength(),t.push(e);return this.cacheLengths=t,t}getSpacedPoints(t=40){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return this.autoClose&&e.push(e[0]),e}getPoints(t=12){const e=[];let n;for(let i=0,r=this.curves;i<r.length;i++){const s=r[i],a=s.isEllipseCurve?2*t:s.isLineCurve||s.isLineCurve3?1:s.isSplineCurve?t*s.points.length:t,o=s.getPoints(a);for(let t=0;t<o.length;t++){const i=o[t];n&&n.equals(i)||(e.push(i),n=i)}}return this.autoClose&&e.length>1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push(n.clone())}return this.autoClose=t.autoClose,this}toJSON(){const t=super.toJSON();t.autoClose=this.autoClose,t.curves=[];for(let e=0,n=this.curves.length;e<n;e++){const n=this.curves[e];t.curves.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.autoClose=t.autoClose,this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push((new Curves[n.type]).fromJSON(n))}return this}}class Path extends CurvePath{constructor(t){super(),this.type="Path",this.currentPoint=new Vector2,t&&this.setFromPoints(t)}setFromPoints(t){this.moveTo(t[0].x,t[0].y);for(let e=1,n=t.length;e<n;e++)this.lineTo(t[e].x,t[e].y);return this}moveTo(t,e){return this.currentPoint.set(t,e),this}lineTo(t,e){const n=new LineCurve(this.currentPoint.clone(),new Vector2(t,e));return this.curves.push(n),this.currentPoint.set(t,e),this}quadraticCurveTo(t,e,n,i){const r=new QuadraticBezierCurve(this.currentPoint.clone(),new Vector2(t,e),new Vector2(n,i));return this.curves.push(r),this.currentPoint.set(n,i),this}bezierCurveTo(t,e,n,i,r,s){const a=new CubicBezierCurve(this.currentPoint.clone(),new Vector2(t,e),new Vector2(n,i),new Vector2(r,s));return this.curves.push(a),this.currentPoint.set(r,s),this}splineThru(t){const e=[this.currentPoint.clone()].concat(t),n=new SplineCurve(e);return this.curves.push(n),this.currentPoint.copy(t[t.length-1]),this}arc(t,e,n,i,r,s){const a=this.currentPoint.x,o=this.currentPoint.y;return this.absarc(t+a,e+o,n,i,r,s),this}absarc(t,e,n,i,r,s){return this.absellipse(t,e,n,n,i,r,s),this}ellipse(t,e,n,i,r,s,a,o){const c=this.currentPoint.x,l=this.currentPoint.y;return this.absellipse(t+c,e+l,n,i,r,s,a,o),this}absellipse(t,e,n,i,r,s,a,o){const c=new EllipseCurve(t,e,n,i,r,s,a,o);if(this.curves.length>0){const t=c.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(c);const l=c.getPoint(1);return this.currentPoint.copy(l),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class LatheGeometry extends BufferGeometry{constructor(t=[new Vector2(0,-.5),new Vector2(.5,0),new Vector2(0,.5)],e=12,n=0,i=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:t,segments:e,phiStart:n,phiLength:i},e=Math.floor(e),i=clamp$1(i,0,2*Math.PI);const r=[],s=[],a=[],o=[],c=[],l=1/e,u=new Vector3,h=new Vector2,d=new Vector3,p=new Vector3,f=new Vector3;let m=0,g=0;for(let A=0;A<=t.length-1;A++)switch(A){case 0:m=t[A+1].x-t[A].x,g=t[A+1].y-t[A].y,d.x=1*g,d.y=-m,d.z=0*g,f.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case t.length-1:o.push(f.x,f.y,f.z);break;default:m=t[A+1].x-t[A].x,g=t[A+1].y-t[A].y,d.x=1*g,d.y=-m,d.z=0*g,p.copy(d),d.x+=f.x,d.y+=f.y,d.z+=f.z,d.normalize(),o.push(d.x,d.y,d.z),f.copy(p)}for(let A=0;A<=e;A++){const r=n+A*l*i,d=Math.sin(r),p=Math.cos(r);for(let n=0;n<=t.length-1;n++){u.x=t[n].x*d,u.y=t[n].y,u.z=t[n].x*p,s.push(u.x,u.y,u.z),h.x=A/e,h.y=n/(t.length-1),a.push(h.x,h.y);const i=o[3*n+0]*d,r=o[3*n+1],l=o[3*n+0]*p;c.push(i,r,l)}}for(let A=0;A<e;A++)for(let e=0;e<t.length-1;e++){const n=e+A*t.length,i=n,s=n+t.length,a=n+t.length+1,o=n+1;r.push(i,s,o),r.push(a,o,s)}this.setIndex(r),this.setAttribute("position",new Float32BufferAttribute(s,3)),this.setAttribute("uv",new Float32BufferAttribute(a,2)),this.setAttribute("normal",new Float32BufferAttribute(c,3))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new LatheGeometry(t.points,t.segments,t.phiStart,t.phiLength)}}class CapsuleGeometry extends LatheGeometry{constructor(t=1,e=1,n=4,i=8){const r=new Path;r.absarc(0,-e/2,t,1.5*Math.PI,0),r.absarc(0,e/2,t,0,.5*Math.PI),super(r.getPoints(n),i),this.type="CapsuleGeometry",this.parameters={radius:t,length:e,capSegments:n,radialSegments:i}}static fromJSON(t){return new CapsuleGeometry(t.radius,t.length,t.capSegments,t.radialSegments)}}class CircleGeometry extends BufferGeometry{constructor(t=1,e=32,n=0,i=2*Math.PI){super(),this.type="CircleGeometry",this.parameters={radius:t,segments:e,thetaStart:n,thetaLength:i},e=Math.max(3,e);const r=[],s=[],a=[],o=[],c=new Vector3,l=new Vector2;s.push(0,0,0),a.push(0,0,1),o.push(.5,.5);for(let u=0,h=3;u<=e;u++,h+=3){const r=n+u/e*i;c.x=t*Math.cos(r),c.y=t*Math.sin(r),s.push(c.x,c.y,c.z),a.push(0,0,1),l.x=(s[h]/t+1)/2,l.y=(s[h+1]/t+1)/2,o.push(l.x,l.y)}for(let u=1;u<=e;u++)r.push(u,u+1,0);this.setIndex(r),this.setAttribute("position",new Float32BufferAttribute(s,3)),this.setAttribute("normal",new Float32BufferAttribute(a,3)),this.setAttribute("uv",new Float32BufferAttribute(o,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new CircleGeometry(t.radius,t.segments,t.thetaStart,t.thetaLength)}}class CylinderGeometry extends BufferGeometry{constructor(t=1,e=1,n=1,i=32,r=1,s=!1,a=0,o=2*Math.PI){super(),this.type="CylinderGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:n,radialSegments:i,heightSegments:r,openEnded:s,thetaStart:a,thetaLength:o};const c=this;i=Math.floor(i),r=Math.floor(r);const l=[],u=[],h=[],d=[];let p=0;const f=[],m=n/2;let g=0;function A(n){const r=p,s=new Vector2,f=new Vector3;let A=0;const y=!0===n?t:e,v=!0===n?1:-1;for(let t=1;t<=i;t++)u.push(0,m*v,0),h.push(0,v,0),d.push(.5,.5),p++;const S=p;for(let t=0;t<=i;t++){const e=t/i*o+a,n=Math.cos(e),r=Math.sin(e);f.x=y*r,f.y=m*v,f.z=y*n,u.push(f.x,f.y,f.z),h.push(0,v,0),s.x=.5*n+.5,s.y=.5*r*v+.5,d.push(s.x,s.y),p++}for(let t=0;t<i;t++){const e=r+t,i=S+t;!0===n?l.push(i,i+1,e):l.push(i+1,i,e),A+=3}c.addGroup(g,A,!0===n?1:2),g+=A}!function(){const s=new Vector3,A=new Vector3;let y=0;const v=(e-t)/n;for(let c=0;c<=r;c++){const l=[],g=c/r,y=g*(e-t)+t;for(let t=0;t<=i;t++){const e=t/i,r=e*o+a,c=Math.sin(r),f=Math.cos(r);A.x=y*c,A.y=-g*n+m,A.z=y*f,u.push(A.x,A.y,A.z),s.set(c,v,f).normalize(),h.push(s.x,s.y,s.z),d.push(e,1-g),l.push(p++)}f.push(l)}for(let t=0;t<i;t++)for(let e=0;e<r;e++){const n=f[e][t],i=f[e+1][t],r=f[e+1][t+1],s=f[e][t+1];l.push(n,i,s),l.push(i,r,s),y+=6}c.addGroup(g,y,0),g+=y}(),!1===s&&(t>0&&A(!0),e>0&&A(!1)),this.setIndex(l),this.setAttribute("position",new Float32BufferAttribute(u,3)),this.setAttribute("normal",new Float32BufferAttribute(h,3)),this.setAttribute("uv",new Float32BufferAttribute(d,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new CylinderGeometry(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class ConeGeometry extends CylinderGeometry{constructor(t=1,e=1,n=32,i=1,r=!1,s=0,a=2*Math.PI){super(0,t,e,n,i,r,s,a),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(t){return new ConeGeometry(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class PolyhedronGeometry extends BufferGeometry{constructor(t=[],e=[],n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[],s=[];function a(t,e,n,i){const r=i+1,s=[];for(let a=0;a<=r;a++){s[a]=[];const i=t.clone().lerp(n,a/r),o=e.clone().lerp(n,a/r),c=r-a;for(let t=0;t<=c;t++)s[a][t]=0===t&&a===r?i:i.clone().lerp(o,t/c)}for(let a=0;a<r;a++)for(let t=0;t<2*(r-a)-1;t++){const e=Math.floor(t/2);t%2==0?(o(s[a][e+1]),o(s[a+1][e]),o(s[a][e])):(o(s[a][e+1]),o(s[a+1][e+1]),o(s[a+1][e]))}}function o(t){r.push(t.x,t.y,t.z)}function c(e,n){const i=3*e;n.x=t[i+0],n.y=t[i+1],n.z=t[i+2]}function l(t,e,n,i){i<0&&1===t.x&&(s[e]=t.x-1),0===n.x&&0===n.z&&(s[e]=i/2/Math.PI+.5)}function u(t){return Math.atan2(t.z,-t.x)}function h(t){return Math.atan2(-t.y,Math.sqrt(t.x*t.x+t.z*t.z))}!function(t){const n=new Vector3,i=new Vector3,r=new Vector3;for(let s=0;s<e.length;s+=3)c(e[s+0],n),c(e[s+1],i),c(e[s+2],r),a(n,i,r,t)}(i),function(t){const e=new Vector3;for(let n=0;n<r.length;n+=3)e.x=r[n+0],e.y=r[n+1],e.z=r[n+2],e.normalize().multiplyScalar(t),r[n+0]=e.x,r[n+1]=e.y,r[n+2]=e.z}(n),function(){const t=new Vector3;for(let e=0;e<r.length;e+=3){t.x=r[e+0],t.y=r[e+1],t.z=r[e+2];const n=u(t)/2/Math.PI+.5,i=h(t)/Math.PI+.5;s.push(n,1-i)}(function(){const t=new Vector3,e=new Vector3,n=new Vector3,i=new Vector3,a=new Vector2,o=new Vector2,c=new Vector2;for(let h=0,d=0;h<r.length;h+=9,d+=6){t.set(r[h+0],r[h+1],r[h+2]),e.set(r[h+3],r[h+4],r[h+5]),n.set(r[h+6],r[h+7],r[h+8]),a.set(s[d+0],s[d+1]),o.set(s[d+2],s[d+3]),c.set(s[d+4],s[d+5]),i.copy(t).add(e).add(n).divideScalar(3);const p=u(i);l(a,d+0,t,p),l(o,d+2,e,p),l(c,d+4,n,p)}})(),function(){for(let t=0;t<s.length;t+=6){const e=s[t+0],n=s[t+2],i=s[t+4],r=Math.max(e,n,i),a=Math.min(e,n,i);r>.9&&a<.1&&(e<.2&&(s[t+0]+=1),n<.2&&(s[t+2]+=1),i<.2&&(s[t+4]+=1))}}()}(),this.setAttribute("position",new Float32BufferAttribute(r,3)),this.setAttribute("normal",new Float32BufferAttribute(r.slice(),3)),this.setAttribute("uv",new Float32BufferAttribute(s,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new PolyhedronGeometry(t.vertices,t.indices,t.radius,t.details)}}class DodecahedronGeometry extends PolyhedronGeometry{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[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],t,e),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new DodecahedronGeometry(t.radius,t.detail)}}const _v0=new Vector3,_v1$1=new Vector3,_normal=new Vector3,_triangle=new Triangle;class EdgesGeometry extends BufferGeometry{constructor(t=null,e=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:t,thresholdAngle:e},null!==t){const n=4,i=Math.pow(10,n),r=Math.cos(DEG2RAD$1*e),s=t.getIndex(),a=t.getAttribute("position"),o=s?s.count:a.count,c=[0,0,0],l=["a","b","c"],u=new Array(3),h={},d=[];for(let t=0;t<o;t+=3){s?(c[0]=s.getX(t),c[1]=s.getX(t+1),c[2]=s.getX(t+2)):(c[0]=t,c[1]=t+1,c[2]=t+2);const{a:e,b:n,c:o}=_triangle;if(e.fromBufferAttribute(a,c[0]),n.fromBufferAttribute(a,c[1]),o.fromBufferAttribute(a,c[2]),_triangle.getNormal(_normal),u[0]=`${Math.round(e.x*i)},${Math.round(e.y*i)},${Math.round(e.z*i)}`,u[1]=`${Math.round(n.x*i)},${Math.round(n.y*i)},${Math.round(n.z*i)}`,u[2]=`${Math.round(o.x*i)},${Math.round(o.y*i)},${Math.round(o.z*i)}`,u[0]!==u[1]&&u[1]!==u[2]&&u[2]!==u[0])for(let t=0;t<3;t++){const e=(t+1)%3,n=u[t],i=u[e],s=_triangle[l[t]],a=_triangle[l[e]],o=`${n}_${i}`,p=`${i}_${n}`;p in h&&h[p]?(_normal.dot(h[p].normal)<=r&&(d.push(s.x,s.y,s.z),d.push(a.x,a.y,a.z)),h[p]=null):o in h||(h[o]={index0:c[t],index1:c[e],normal:_normal.clone()})}}for(const t in h)if(h[t]){const{index0:e,index1:n}=h[t];_v0.fromBufferAttribute(a,e),_v1$1.fromBufferAttribute(a,n),d.push(_v0.x,_v0.y,_v0.z),d.push(_v1$1.x,_v1$1.y,_v1$1.z)}this.setAttribute("position",new Float32BufferAttribute(d,3))}}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}}class Shape extends Path{constructor(t){super(t),this.uuid=generateUUID(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,i=this.holes.length;n<i;n++)e[n]=this.holes[n].getPoints(t);return e}extractPoints(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}}copy(t){super.copy(t),this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.uuid=this.uuid,t.holes=[];for(let e=0,n=this.holes.length;e<n;e++){const n=this.holes[e];t.holes.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.uuid=t.uuid,this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push((new Path).fromJSON(n))}return this}}const Earcut={triangulate:function(t,e,n=2){const i=e&&e.length,r=i?e[0]*n:t.length;let s=linkedList(t,0,r,n,!0);const a=[];if(!s||s.next===s.prev)return a;let o,c,l,u,h,d,p;if(i&&(s=eliminateHoles(t,e,s,n)),t.length>80*n){o=l=t[0],c=u=t[1];for(let e=n;e<r;e+=n)h=t[e],d=t[e+1],h<o&&(o=h),d<c&&(c=d),h>l&&(l=h),d>u&&(u=d);p=Math.max(l-o,u-c),p=0!==p?32767/p:0}return earcutLinked(s,a,n,o,c,p,0),a}};function linkedList(t,e,n,i,r){let s,a;if(r===signedArea(t,e,n,i)>0)for(s=e;s<n;s+=i)a=insertNode(s,t[s],t[s+1],a);else for(s=n-i;s>=e;s-=i)a=insertNode(s,t[s],t[s+1],a);return a&&equals(a,a.next)&&(removeNode(a),a=a.next),a}function filterPoints(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!equals(i,i.next)&&0!==area(i.prev,i,i.next))i=i.next;else{if(removeNode(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function earcutLinked(t,e,n,i,r,s,a){if(!t)return;!a&&s&&indexCurve(t,i,r,s);let o,c,l=t;for(;t.prev!==t.next;)if(o=t.prev,c=t.next,s?isEarHashed(t,i,r,s):isEar(t))e.push(o.i/n|0),e.push(t.i/n|0),e.push(c.i/n|0),removeNode(t),t=c.next,l=c.next;else if((t=c)===l){a?1===a?earcutLinked(t=cureLocalIntersections(filterPoints(t),e,n),e,n,i,r,s,2):2===a&&splitEarcut(t,e,n,i,r,s):earcutLinked(filterPoints(t),e,n,i,r,s,1);break}}function isEar(t){const e=t.prev,n=t,i=t.next;if(area(e,n,i)>=0)return!1;const r=e.x,s=n.x,a=i.x,o=e.y,c=n.y,l=i.y,u=r<s?r<a?r:a:s<a?s:a,h=o<c?o<l?o:l:c<l?c:l,d=r>s?r>a?r:a:s>a?s:a,p=o>c?o>l?o:l:c>l?c:l;let f=i.next;for(;f!==e;){if(f.x>=u&&f.x<=d&&f.y>=h&&f.y<=p&&pointInTriangle(r,o,s,c,a,l,f.x,f.y)&&area(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function isEarHashed(t,e,n,i){const r=t.prev,s=t,a=t.next;if(area(r,s,a)>=0)return!1;const o=r.x,c=s.x,l=a.x,u=r.y,h=s.y,d=a.y,p=o<c?o<l?o:l:c<l?c:l,f=u<h?u<d?u:d:h<d?h:d,m=o>c?o>l?o:l:c>l?c:l,g=u>h?u>d?u:d:h>d?h:d,A=zOrder(p,f,e,n,i),y=zOrder(m,g,e,n,i);let v=t.prevZ,S=t.nextZ;for(;v&&v.z>=A&&S&&S.z<=y;){if(v.x>=p&&v.x<=m&&v.y>=f&&v.y<=g&&v!==r&&v!==a&&pointInTriangle(o,u,c,h,l,d,v.x,v.y)&&area(v.prev,v,v.next)>=0)return!1;if(v=v.prevZ,S.x>=p&&S.x<=m&&S.y>=f&&S.y<=g&&S!==r&&S!==a&&pointInTriangle(o,u,c,h,l,d,S.x,S.y)&&area(S.prev,S,S.next)>=0)return!1;S=S.nextZ}for(;v&&v.z>=A;){if(v.x>=p&&v.x<=m&&v.y>=f&&v.y<=g&&v!==r&&v!==a&&pointInTriangle(o,u,c,h,l,d,v.x,v.y)&&area(v.prev,v,v.next)>=0)return!1;v=v.prevZ}for(;S&&S.z<=y;){if(S.x>=p&&S.x<=m&&S.y>=f&&S.y<=g&&S!==r&&S!==a&&pointInTriangle(o,u,c,h,l,d,S.x,S.y)&&area(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function cureLocalIntersections(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;!equals(r,s)&&intersects(r,i,i.next,s)&&locallyInside(r,s)&&locallyInside(s,r)&&(e.push(r.i/n|0),e.push(i.i/n|0),e.push(s.i/n|0),removeNode(i),removeNode(i.next),i=t=s),i=i.next}while(i!==t);return filterPoints(i)}function splitEarcut(t,e,n,i,r,s){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&isValidDiagonal(a,t)){let o=splitPolygon(a,t);return a=filterPoints(a,a.next),o=filterPoints(o,o.next),earcutLinked(a,e,n,i,r,s,0),void earcutLinked(o,e,n,i,r,s,0)}t=t.next}a=a.next}while(a!==t)}function eliminateHoles(t,e,n,i){const r=[];let s,a,o,c,l;for(s=0,a=e.length;s<a;s++)o=e[s]*i,c=s<a-1?e[s+1]*i:t.length,l=linkedList(t,o,c,i,!1),l===l.next&&(l.steiner=!0),r.push(getLeftmost(l));for(r.sort(compareX),s=0;s<r.length;s++)n=eliminateHole(r[s],n);return n}function compareX(t,e){return t.x-e.x}function eliminateHole(t,e){const n=findHoleBridge(t,e);if(!n)return e;const i=splitPolygon(n,t);return filterPoints(i,i.next),filterPoints(n,n.next)}function findHoleBridge(t,e){let n,i=e,r=-1/0;const s=t.x,a=t.y;do{if(a<=i.y&&a>=i.next.y&&i.next.y!==i.y){const t=i.x+(a-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(t<=s&&t>r&&(r=t,n=i.x<i.next.x?i:i.next,t===s))return n}i=i.next}while(i!==e);if(!n)return null;const o=n,c=n.x,l=n.y;let u,h=1/0;i=n;do{s>=i.x&&i.x>=c&&s!==i.x&&pointInTriangle(a<l?s:r,a,c,l,a<l?r:s,a,i.x,i.y)&&(u=Math.abs(a-i.y)/(s-i.x),locallyInside(i,t)&&(u<h||u===h&&(i.x>n.x||i.x===n.x&&sectorContainsSector(n,i)))&&(n=i,h=u)),i=i.next}while(i!==o);return n}function sectorContainsSector(t,e){return area(t.prev,t,e.prev)<0&&area(e.next,t,t.next)<0}function indexCurve(t,e,n,i){let r=t;do{0===r.z&&(r.z=zOrder(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,sortLinked(r)}function sortLinked(t){let e,n,i,r,s,a,o,c,l=1;do{for(n=t,t=null,s=null,a=0;n;){for(a++,i=n,o=0,e=0;e<l&&(o++,i=i.nextZ,i);e++);for(c=l;o>0||c>0&&i;)0!==o&&(0===c||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,c--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=i}s.nextZ=null,l*=2}while(a>1);return t}function zOrder(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-i)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function getLeftmost(t){let e=t,n=t;do{(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e),e=e.next}while(e!==t);return n}function pointInTriangle(t,e,n,i,r,s,a,o){return(r-a)*(e-o)>=(t-a)*(s-o)&&(t-a)*(i-o)>=(n-a)*(e-o)&&(n-a)*(s-o)>=(r-a)*(i-o)}function isValidDiagonal(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!intersectsPolygon(t,e)&&(locallyInside(t,e)&&locallyInside(e,t)&&middleInside(t,e)&&(area(t.prev,t,e.prev)||area(t,e.prev,e))||equals(t,e)&&area(t.prev,t,t.next)>0&&area(e.prev,e,e.next)>0)}function area(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function equals(t,e){return t.x===e.x&&t.y===e.y}function intersects(t,e,n,i){const r=sign(area(t,e,n)),s=sign(area(t,e,i)),a=sign(area(n,i,t)),o=sign(area(n,i,e));return r!==s&&a!==o||(!(0!==r||!onSegment(t,n,e))||(!(0!==s||!onSegment(t,i,e))||(!(0!==a||!onSegment(n,t,i))||!(0!==o||!onSegment(n,e,i)))))}function onSegment(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function sign(t){return t>0?1:t<0?-1:0}function intersectsPolygon(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&intersects(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}function locallyInside(t,e){return area(t.prev,t,t.next)<0?area(t,e,t.next)>=0&&area(t,t.prev,e)>=0:area(t,e,t.prev)<0||area(t,t.next,e)<0}function middleInside(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}function splitPolygon(t,e){const n=new Node(t.i,t.x,t.y),i=new Node(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function insertNode(t,e,n,i){const r=new Node(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function removeNode(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Node(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function signedArea(t,e,n,i){let r=0;for(let s=e,a=n-i;s<n;s+=i)r+=(t[a]-t[s])*(t[s+1]+t[a+1]),a=s;return r}class ShapeUtils{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r<e;i=r++)n+=t[i].x*t[r].y-t[r].x*t[i].y;return.5*n}static isClockWise(t){return ShapeUtils.area(t)<0}static triangulateShape(t,e){const n=[],i=[],r=[];removeDupEndPts(t),addContour(n,t);let s=t.length;e.forEach(removeDupEndPts);for(let o=0;o<e.length;o++)i.push(s),s+=e[o].length,addContour(n,e[o]);const a=Earcut.triangulate(n,i);for(let o=0;o<a.length;o+=3)r.push(a.slice(o,o+3));return r}}function removeDupEndPts(t){const e=t.length;e>2&&t[e-1].equals(t[0])&&t.pop()}function addContour(t,e){for(let n=0;n<e.length;n++)t.push(e[n].x),t.push(e[n].y)}class ExtrudeGeometry extends BufferGeometry{constructor(t=new Shape([new Vector2(.5,.5),new Vector2(-.5,.5),new Vector2(-.5,-.5),new Vector2(.5,-.5)]),e={}){super(),this.type="ExtrudeGeometry",this.parameters={shapes:t,options:e},t=Array.isArray(t)?t:[t];const n=this,i=[],r=[];for(let a=0,o=t.length;a<o;a++){s(t[a])}function s(t){const s=[],a=void 0!==e.curveSegments?e.curveSegments:12,o=void 0!==e.steps?e.steps:1,c=void 0!==e.depth?e.depth:1;let l=void 0===e.bevelEnabled||e.bevelEnabled,u=void 0!==e.bevelThickness?e.bevelThickness:.2,h=void 0!==e.bevelSize?e.bevelSize:u-.1,d=void 0!==e.bevelOffset?e.bevelOffset:0,p=void 0!==e.bevelSegments?e.bevelSegments:3;const f=e.extrudePath,m=void 0!==e.UVGenerator?e.UVGenerator:WorldUVGenerator;let g,A,y,v,S,x=!1;f&&(g=f.getSpacedPoints(o),x=!0,l=!1,A=f.computeFrenetFrames(o,!1),y=new Vector3,v=new Vector3,S=new Vector3),l||(p=0,u=0,h=0,d=0);const b=t.extractPoints(a);let T=b.shape;const I=b.holes;if(!ShapeUtils.isClockWise(T)){T=T.reverse();for(let t=0,e=I.length;t<e;t++){const e=I[t];ShapeUtils.isClockWise(e)&&(I[t]=e.reverse())}}const M=ShapeUtils.triangulateShape(T,I),E=T;for(let e=0,n=I.length;e<n;e++){const t=I[e];T=T.concat(t)}function w(t,e,n){return e||console.error("THREE.ExtrudeGeometry: vec does not exist"),t.clone().addScaledVector(e,n)}const R=T.length,C=M.length;function k(t,e,n){let i,r,s;const a=t.x-e.x,o=t.y-e.y,c=n.x-t.x,l=n.y-t.y,u=a*a+o*o,h=a*l-o*c;if(Math.abs(h)>Number.EPSILON){const h=Math.sqrt(u),d=Math.sqrt(c*c+l*l),p=e.x-o/h,f=e.y+a/h,m=((n.x-l/d-p)*l-(n.y+c/d-f)*c)/(a*l-o*c);i=p+a*m-t.x,r=f+o*m-t.y;const g=i*i+r*r;if(g<=2)return new Vector2(i,r);s=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?c>Number.EPSILON&&(t=!0):a<-Number.EPSILON?c<-Number.EPSILON&&(t=!0):Math.sign(o)===Math.sign(l)&&(t=!0),t?(i=-o,r=a,s=Math.sqrt(u)):(i=a,r=o,s=Math.sqrt(u/2))}return new Vector2(i/s,r/s)}const _=[];for(let e=0,n=E.length,i=n-1,r=e+1;e<n;e++,i++,r++)i===n&&(i=0),r===n&&(r=0),_[e]=k(E[e],E[i],E[r]);const L=[];let U,N=_.concat();for(let e=0,n=I.length;e<n;e++){const t=I[e];U=[];for(let e=0,n=t.length,i=n-1,r=e+1;e<n;e++,i++,r++)i===n&&(i=0),r===n&&(r=0),U[e]=k(t[e],t[i],t[r]);L.push(U),N=N.concat(U)}for(let e=0;e<p;e++){const t=e/p,n=u*Math.cos(t*Math.PI/2),i=h*Math.sin(t*Math.PI/2)+d;for(let e=0,r=E.length;e<r;e++){const t=w(E[e],_[e],i);V(t.x,t.y,-n)}for(let e=0,r=I.length;e<r;e++){const t=I[e];U=L[e];for(let e=0,r=t.length;e<r;e++){const r=w(t[e],U[e],i);V(r.x,r.y,-n)}}}const F=h+d;for(let e=0;e<R;e++){const t=l?w(T[e],N[e],F):T[e];x?(v.copy(A.normals[0]).multiplyScalar(t.x),y.copy(A.binormals[0]).multiplyScalar(t.y),S.copy(g[0]).add(v).add(y),V(S.x,S.y,S.z)):V(t.x,t.y,0)}for(let e=1;e<=o;e++)for(let t=0;t<R;t++){const n=l?w(T[t],N[t],F):T[t];x?(v.copy(A.normals[e]).multiplyScalar(n.x),y.copy(A.binormals[e]).multiplyScalar(n.y),S.copy(g[e]).add(v).add(y),V(S.x,S.y,S.z)):V(n.x,n.y,c/o*e)}for(let e=p-1;e>=0;e--){const t=e/p,n=u*Math.cos(t*Math.PI/2),i=h*Math.sin(t*Math.PI/2)+d;for(let e=0,r=E.length;e<r;e++){const t=w(E[e],_[e],i);V(t.x,t.y,c+n)}for(let e=0,r=I.length;e<r;e++){const t=I[e];U=L[e];for(let e=0,r=t.length;e<r;e++){const r=w(t[e],U[e],i);x?V(r.x,r.y+g[o-1].y,g[o-1].x+n):V(r.x,r.y,c+n)}}}function B(t,e){let n=t.length;for(;--n>=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+2*p;t<n;t++){const n=R*t,s=R*(t+1);W(e+i+n,e+r+n,e+r+s,e+i+s)}}}function V(t,e,n){s.push(t),s.push(e),s.push(n)}function P(t,e,r){D(t),D(e),D(r);const s=i.length/3,a=m.generateTopUV(n,i,s-3,s-2,s-1);O(a[0]),O(a[1]),O(a[2])}function W(t,e,r,s){D(t),D(e),D(s),D(e),D(r),D(s);const a=i.length/3,o=m.generateSideWallUV(n,i,a-6,a-3,a-2,a-1);O(o[0]),O(o[1]),O(o[3]),O(o[1]),O(o[2]),O(o[3])}function D(t){i.push(s[3*t+0]),i.push(s[3*t+1]),i.push(s[3*t+2])}function O(t){r.push(t.x),r.push(t.y)}!function(){const t=i.length/3;if(l){let t=0,e=R*t;for(let n=0;n<C;n++){const t=M[n];P(t[2]+e,t[1]+e,t[0]+e)}t=o+2*p,e=R*t;for(let n=0;n<C;n++){const t=M[n];P(t[0]+e,t[1]+e,t[2]+e)}}else{for(let t=0;t<C;t++){const e=M[t];P(e[2],e[1],e[0])}for(let t=0;t<C;t++){const e=M[t];P(e[0]+R*o,e[1]+R*o,e[2]+R*o)}}n.addGroup(t,i.length/3-t,0)}(),function(){const t=i.length/3;let e=0;B(E,e),e+=E.length;for(let n=0,i=I.length;n<i;n++){const t=I[n];B(t,e),e+=t.length}n.addGroup(t,i.length/3-t,1)}()}this.setAttribute("position",new Float32BufferAttribute(i,3)),this.setAttribute("uv",new Float32BufferAttribute(r,2)),this.computeVertexNormals()}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}toJSON(){const t=super.toJSON();return toJSON$1(this.parameters.shapes,this.parameters.options,t)}static fromJSON(t,e){const n=[];for(let r=0,s=t.shapes.length;r<s;r++){const i=e[t.shapes[r]];n.push(i)}const i=t.options.extrudePath;return void 0!==i&&(t.options.extrudePath=(new Curves[i.type]).fromJSON(i)),new ExtrudeGeometry(n,t.options)}}const WorldUVGenerator={generateTopUV:function(t,e,n,i,r){const s=e[3*n],a=e[3*n+1],o=e[3*i],c=e[3*i+1],l=e[3*r],u=e[3*r+1];return[new Vector2(s,a),new Vector2(o,c),new Vector2(l,u)]},generateSideWallUV:function(t,e,n,i,r,s){const a=e[3*n],o=e[3*n+1],c=e[3*n+2],l=e[3*i],u=e[3*i+1],h=e[3*i+2],d=e[3*r],p=e[3*r+1],f=e[3*r+2],m=e[3*s],g=e[3*s+1],A=e[3*s+2];return Math.abs(o-u)<Math.abs(a-l)?[new Vector2(a,1-c),new Vector2(l,1-h),new Vector2(d,1-f),new Vector2(m,1-A)]:[new Vector2(o,1-c),new Vector2(u,1-h),new Vector2(p,1-f),new Vector2(g,1-A)]}};function toJSON$1(t,e,n){if(n.shapes=[],Array.isArray(t))for(let i=0,r=t.length;i<r;i++){const e=t[i];n.shapes.push(e.uuid)}else n.shapes.push(t.uuid);return n.options=Object.assign({},e),void 0!==e.extrudePath&&(n.options.extrudePath=e.extrudePath.toJSON()),n}class IcosahedronGeometry extends PolyhedronGeometry{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2;super([-1,n,0,1,n,0,-1,-n,0,1,-n,0,0,-1,n,0,1,n,0,-1,-n,0,1,-n,n,0,-1,n,0,1,-n,0,-1,-n,0,1],[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],t,e),this.type="IcosahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new IcosahedronGeometry(t.radius,t.detail)}}class OctahedronGeometry extends PolyhedronGeometry{constructor(t=1,e=0){super([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],t,e),this.type="OctahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new OctahedronGeometry(t.radius,t.detail)}}class RingGeometry extends BufferGeometry{constructor(t=.5,e=1,n=32,i=1,r=0,s=2*Math.PI){super(),this.type="RingGeometry",this.parameters={innerRadius:t,outerRadius:e,thetaSegments:n,phiSegments:i,thetaStart:r,thetaLength:s},n=Math.max(3,n);const a=[],o=[],c=[],l=[];let u=t;const h=(e-t)/(i=Math.max(1,i)),d=new Vector3,p=new Vector2;for(let f=0;f<=i;f++){for(let t=0;t<=n;t++){const i=r+t/n*s;d.x=u*Math.cos(i),d.y=u*Math.sin(i),o.push(d.x,d.y,d.z),c.push(0,0,1),p.x=(d.x/e+1)/2,p.y=(d.y/e+1)/2,l.push(p.x,p.y)}u+=h}for(let f=0;f<i;f++){const t=f*(n+1);for(let e=0;e<n;e++){const i=e+t,r=i,s=i+n+1,o=i+n+2,c=i+1;a.push(r,s,c),a.push(s,o,c)}}this.setIndex(a),this.setAttribute("position",new Float32BufferAttribute(o,3)),this.setAttribute("normal",new Float32BufferAttribute(c,3)),this.setAttribute("uv",new Float32BufferAttribute(l,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new RingGeometry(t.innerRadius,t.outerRadius,t.thetaSegments,t.phiSegments,t.thetaStart,t.thetaLength)}}class ShapeGeometry extends BufferGeometry{constructor(t=new Shape([new Vector2(0,.5),new Vector2(-.5,-.5),new Vector2(.5,-.5)]),e=12){super(),this.type="ShapeGeometry",this.parameters={shapes:t,curveSegments:e};const n=[],i=[],r=[],s=[];let a=0,o=0;if(!1===Array.isArray(t))c(t);else for(let l=0;l<t.length;l++)c(t[l]),this.addGroup(a,o,l),a+=o,o=0;function c(t){const a=i.length/3,c=t.extractPoints(e);let l=c.shape;const u=c.holes;!1===ShapeUtils.isClockWise(l)&&(l=l.reverse());for(let e=0,n=u.length;e<n;e++){const t=u[e];!0===ShapeUtils.isClockWise(t)&&(u[e]=t.reverse())}const h=ShapeUtils.triangulateShape(l,u);for(let e=0,n=u.length;e<n;e++){const t=u[e];l=l.concat(t)}for(let e=0,n=l.length;e<n;e++){const t=l[e];i.push(t.x,t.y,0),r.push(0,0,1),s.push(t.x,t.y)}for(let e=0,i=h.length;e<i;e++){const t=h[e],i=t[0]+a,r=t[1]+a,s=t[2]+a;n.push(i,r,s),o+=3}}this.setIndex(n),this.setAttribute("position",new Float32BufferAttribute(i,3)),this.setAttribute("normal",new Float32BufferAttribute(r,3)),this.setAttribute("uv",new Float32BufferAttribute(s,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}toJSON(){const t=super.toJSON();return toJSON(this.parameters.shapes,t)}static fromJSON(t,e){const n=[];for(let i=0,r=t.shapes.length;i<r;i++){const r=e[t.shapes[i]];n.push(r)}return new ShapeGeometry(n,t.curveSegments)}}function toJSON(t,e){if(e.shapes=[],Array.isArray(t))for(let n=0,i=t.length;n<i;n++){const i=t[n];e.shapes.push(i.uuid)}else e.shapes.push(t.uuid);return e}class SphereGeometry extends BufferGeometry{constructor(t=1,e=32,n=16,i=0,r=2*Math.PI,s=0,a=Math.PI){super(),this.type="SphereGeometry",this.parameters={radius:t,widthSegments:e,heightSegments:n,phiStart:i,phiLength:r,thetaStart:s,thetaLength:a},e=Math.max(3,Math.floor(e)),n=Math.max(2,Math.floor(n));const o=Math.min(s+a,Math.PI);let c=0;const l=[],u=new Vector3,h=new Vector3,d=[],p=[],f=[],m=[];for(let g=0;g<=n;g++){const d=[],A=g/n;let y=0;0===g&&0===s?y=.5/e:g===n&&o===Math.PI&&(y=-.5/e);for(let n=0;n<=e;n++){const o=n/e;u.x=-t*Math.cos(i+o*r)*Math.sin(s+A*a),u.y=t*Math.cos(s+A*a),u.z=t*Math.sin(i+o*r)*Math.sin(s+A*a),p.push(u.x,u.y,u.z),h.copy(u).normalize(),f.push(h.x,h.y,h.z),m.push(o+y,1-A),d.push(c++)}l.push(d)}for(let g=0;g<n;g++)for(let t=0;t<e;t++){const e=l[g][t+1],i=l[g][t],r=l[g+1][t],a=l[g+1][t+1];(0!==g||s>0)&&d.push(e,i,a),(g!==n-1||o<Math.PI)&&d.push(i,r,a)}this.setIndex(d),this.setAttribute("position",new Float32BufferAttribute(p,3)),this.setAttribute("normal",new Float32BufferAttribute(f,3)),this.setAttribute("uv",new Float32BufferAttribute(m,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new SphereGeometry(t.radius,t.widthSegments,t.heightSegments,t.phiStart,t.phiLength,t.thetaStart,t.thetaLength)}}class TetrahedronGeometry extends PolyhedronGeometry{constructor(t=1,e=0){super([1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],t,e),this.type="TetrahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new TetrahedronGeometry(t.radius,t.detail)}}class TorusGeometry extends BufferGeometry{constructor(t=1,e=.4,n=12,i=48,r=2*Math.PI){super(),this.type="TorusGeometry",this.parameters={radius:t,tube:e,radialSegments:n,tubularSegments:i,arc:r},n=Math.floor(n),i=Math.floor(i);const s=[],a=[],o=[],c=[],l=new Vector3,u=new Vector3,h=new Vector3;for(let d=0;d<=n;d++)for(let s=0;s<=i;s++){const p=s/i*r,f=d/n*Math.PI*2;u.x=(t+e*Math.cos(f))*Math.cos(p),u.y=(t+e*Math.cos(f))*Math.sin(p),u.z=e*Math.sin(f),a.push(u.x,u.y,u.z),l.x=t*Math.cos(p),l.y=t*Math.sin(p),h.subVectors(u,l).normalize(),o.push(h.x,h.y,h.z),c.push(s/i),c.push(d/n)}for(let d=1;d<=n;d++)for(let t=1;t<=i;t++){const e=(i+1)*d+t-1,n=(i+1)*(d-1)+t-1,r=(i+1)*(d-1)+t,a=(i+1)*d+t;s.push(e,n,a),s.push(n,r,a)}this.setIndex(s),this.setAttribute("position",new Float32BufferAttribute(a,3)),this.setAttribute("normal",new Float32BufferAttribute(o,3)),this.setAttribute("uv",new Float32BufferAttribute(c,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new TorusGeometry(t.radius,t.tube,t.radialSegments,t.tubularSegments,t.arc)}}class TorusKnotGeometry extends BufferGeometry{constructor(t=1,e=.4,n=64,i=8,r=2,s=3){super(),this.type="TorusKnotGeometry",this.parameters={radius:t,tube:e,tubularSegments:n,radialSegments:i,p:r,q:s},n=Math.floor(n),i=Math.floor(i);const a=[],o=[],c=[],l=[],u=new Vector3,h=new Vector3,d=new Vector3,p=new Vector3,f=new Vector3,m=new Vector3,g=new Vector3;for(let y=0;y<=n;++y){const a=y/n*r*Math.PI*2;A(a,r,s,t,d),A(a+.01,r,s,t,p),m.subVectors(p,d),g.addVectors(p,d),f.crossVectors(m,g),g.crossVectors(f,m),f.normalize(),g.normalize();for(let t=0;t<=i;++t){const r=t/i*Math.PI*2,s=-e*Math.cos(r),a=e*Math.sin(r);u.x=d.x+(s*g.x+a*f.x),u.y=d.y+(s*g.y+a*f.y),u.z=d.z+(s*g.z+a*f.z),o.push(u.x,u.y,u.z),h.subVectors(u,d).normalize(),c.push(h.x,h.y,h.z),l.push(y/n),l.push(t/i)}}for(let y=1;y<=n;y++)for(let t=1;t<=i;t++){const e=(i+1)*(y-1)+(t-1),n=(i+1)*y+(t-1),r=(i+1)*y+t,s=(i+1)*(y-1)+t;a.push(e,n,s),a.push(n,r,s)}function A(t,e,n,i,r){const s=Math.cos(t),a=Math.sin(t),o=n/e*t,c=Math.cos(o);r.x=i*(2+c)*.5*s,r.y=i*(2+c)*a*.5,r.z=i*Math.sin(o)*.5}this.setIndex(a),this.setAttribute("position",new Float32BufferAttribute(o,3)),this.setAttribute("normal",new Float32BufferAttribute(c,3)),this.setAttribute("uv",new Float32BufferAttribute(l,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new TorusKnotGeometry(t.radius,t.tube,t.tubularSegments,t.radialSegments,t.p,t.q)}}class TubeGeometry extends BufferGeometry{constructor(t=new QuadraticBezierCurve3(new Vector3(-1,-1,0),new Vector3(-1,1,0),new Vector3(1,1,0)),e=64,n=1,i=8,r=!1){super(),this.type="TubeGeometry",this.parameters={path:t,tubularSegments:e,radius:n,radialSegments:i,closed:r};const s=t.computeFrenetFrames(e,r);this.tangents=s.tangents,this.normals=s.normals,this.binormals=s.binormals;const a=new Vector3,o=new Vector3,c=new Vector2;let l=new Vector3;const u=[],h=[],d=[],p=[];function f(r){l=t.getPointAt(r/e,l);const c=s.normals[r],d=s.binormals[r];for(let t=0;t<=i;t++){const e=t/i*Math.PI*2,r=Math.sin(e),s=-Math.cos(e);o.x=s*c.x+r*d.x,o.y=s*c.y+r*d.y,o.z=s*c.z+r*d.z,o.normalize(),h.push(o.x,o.y,o.z),a.x=l.x+n*o.x,a.y=l.y+n*o.y,a.z=l.z+n*o.z,u.push(a.x,a.y,a.z)}}!function(){for(let t=0;t<e;t++)f(t);f(!1===r?e:0),function(){for(let t=0;t<=e;t++)for(let n=0;n<=i;n++)c.x=t/e,c.y=n/i,d.push(c.x,c.y)}(),function(){for(let t=1;t<=e;t++)for(let e=1;e<=i;e++){const n=(i+1)*(t-1)+(e-1),r=(i+1)*t+(e-1),s=(i+1)*t+e,a=(i+1)*(t-1)+e;p.push(n,r,a),p.push(r,s,a)}}()}(),this.setIndex(p),this.setAttribute("position",new Float32BufferAttribute(u,3)),this.setAttribute("normal",new Float32BufferAttribute(h,3)),this.setAttribute("uv",new Float32BufferAttribute(d,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}toJSON(){const t=super.toJSON();return t.path=this.parameters.path.toJSON(),t}static fromJSON(t){return new TubeGeometry((new Curves[t.path.type]).fromJSON(t.path),t.tubularSegments,t.radius,t.radialSegments,t.closed)}}class WireframeGeometry extends BufferGeometry{constructor(t=null){if(super(),this.type="WireframeGeometry",this.parameters={geometry:t},null!==t){const e=[],n=new Set,i=new Vector3,r=new Vector3;if(null!==t.index){const s=t.attributes.position,a=t.index;let o=t.groups;0===o.length&&(o=[{start:0,count:a.count,materialIndex:0}]);for(let t=0,c=o.length;t<c;++t){const c=o[t],l=c.start;for(let t=l,o=l+c.count;t<o;t+=3)for(let c=0;c<3;c++){const o=a.getX(t+c),l=a.getX(t+(c+1)%3);i.fromBufferAttribute(s,o),r.fromBufferAttribute(s,l),!0===isUniqueEdge(i,r,n)&&(e.push(i.x,i.y,i.z),e.push(r.x,r.y,r.z))}}}else{const s=t.attributes.position;for(let t=0,a=s.count/3;t<a;t++)for(let o=0;o<3;o++){const a=3*t+o,c=3*t+(o+1)%3;i.fromBufferAttribute(s,a),r.fromBufferAttribute(s,c),!0===isUniqueEdge(i,r,n)&&(e.push(i.x,i.y,i.z),e.push(r.x,r.y,r.z))}}this.setAttribute("position",new Float32BufferAttribute(e,3))}}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}}function isUniqueEdge(t,e,n){const i=`${t.x},${t.y},${t.z}-${e.x},${e.y},${e.z}`,r=`${e.x},${e.y},${e.z}-${t.x},${t.y},${t.z}`;return!0!==n.has(i)&&!0!==n.has(r)&&(n.add(i),n.add(r),!0)}var Geometries=Object.freeze({__proto__:null,BoxGeometry,CapsuleGeometry,CircleGeometry,ConeGeometry,CylinderGeometry,DodecahedronGeometry,EdgesGeometry,ExtrudeGeometry,IcosahedronGeometry,LatheGeometry,OctahedronGeometry,PlaneGeometry,PolyhedronGeometry,RingGeometry,ShapeGeometry,SphereGeometry,TetrahedronGeometry,TorusGeometry,TorusKnotGeometry,TubeGeometry,WireframeGeometry});class ShadowMaterial extends Material{constructor(t){super(),this.isShadowMaterial=!0,this.type="ShadowMaterial",this.color=new Color(0),this.transparent=!0,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.fog=t.fog,this}}class RawShaderMaterial extends ShaderMaterial{constructor(t){super(t),this.isRawShaderMaterial=!0,this.type="RawShaderMaterial"}}class MeshStandardMaterial extends Material{constructor(t){super(),this.isMeshStandardMaterial=!0,this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new Color(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.envMapIntensity=1,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.defines={STANDARD:""},this.color.copy(t.color),this.roughness=t.roughness,this.metalness=t.metalness,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.roughnessMap=t.roughnessMap,this.metalnessMap=t.metalnessMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.envMapIntensity=t.envMapIntensity,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class MeshPhysicalMaterial extends MeshStandardMaterial{constructor(t){super(),this.isMeshPhysicalMaterial=!0,this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.anisotropyRotation=0,this.anisotropyMap=null,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new Vector2(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,"reflectivity",{get:function(){return clamp$1(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(t){this.ior=(1+.4*t)/(1-.4*t)}}),this.iridescenceMap=null,this.iridescenceIOR=1.3,this.iridescenceThicknessRange=[100,400],this.iridescenceThicknessMap=null,this.sheenColor=new Color(0),this.sheenColorMap=null,this.sheenRoughness=1,this.sheenRoughnessMap=null,this.transmissionMap=null,this.thickness=0,this.thicknessMap=null,this.attenuationDistance=1/0,this.attenuationColor=new Color(1,1,1),this.specularIntensity=1,this.specularIntensityMap=null,this.specularColor=new Color(1,1,1),this.specularColorMap=null,this._anisotropy=0,this._clearcoat=0,this._dispersion=0,this._iridescence=0,this._sheen=0,this._transmission=0,this.setValues(t)}get anisotropy(){return this._anisotropy}set anisotropy(t){this._anisotropy>0!=t>0&&this.version++,this._anisotropy=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get dispersion(){return this._dispersion}set dispersion(t){this._dispersion>0!=t>0&&this.version++,this._dispersion=t}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=t.anisotropy,this.anisotropyRotation=t.anisotropyRotation,this.anisotropyMap=t.anisotropyMap,this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.dispersion=t.dispersion,this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class MeshPhongMaterial extends Material{constructor(t){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Color(16777215),this.specular=new Color(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class MeshToonMaterial extends Material{constructor(t){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Color(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}class MeshNormalMaterial extends Material{constructor(t){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.flatShading=t.flatShading,this}}class MeshLambertMaterial extends Material{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Color(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class MeshMatcapMaterial extends Material{constructor(t){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Color(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.flatShading=t.flatShading,this.fog=t.fog,this}}class LineDashedMaterial extends LineBasicMaterial{constructor(t){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}function convertArray(t,e,n){return!t||!n&&t.constructor===e?t:"number"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)}function isTypedArray(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function getKeyframeOrder(t){const e=t.length,n=new Array(e);for(let i=0;i!==e;++i)n[i]=i;return n.sort(function(e,n){return t[e]-t[n]}),n}function sortedArray(t,e,n){const i=t.length,r=new t.constructor(i);for(let s=0,a=0;a!==i;++s){const i=n[s]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r}function flattenJSON(t,e,n,i){let r=1,s=t[0];for(;void 0!==s&&void 0===s[i];)s=t[r++];if(void 0===s)return;let a=s[i];if(void 0!==a)if(Array.isArray(a))do{a=s[i],void 0!==a&&(e.push(s.time),n.push.apply(n,a)),s=t[r++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[i],void 0!==a&&(e.push(s.time),a.toArray(n,n.length)),s=t[r++]}while(void 0!==s);else do{a=s[i],void 0!==a&&(e.push(s.time),n.push(a)),s=t[r++]}while(void 0!==s)}function subclip(t,e,n,i,r=30){const s=t.clone();s.name=e;const a=[];for(let c=0;c<s.tracks.length;++c){const t=s.tracks[c],e=t.getValueSize(),o=[],l=[];for(let s=0;s<t.times.length;++s){const a=t.times[s]*r;if(!(a<n||a>=i)){o.push(t.times[s]);for(let n=0;n<e;++n)l.push(t.values[s*e+n])}}0!==o.length&&(t.times=convertArray(o,t.times.constructor),t.values=convertArray(l,t.values.constructor),a.push(t))}s.tracks=a;let o=1/0;for(let c=0;c<s.tracks.length;++c)o>s.tracks[c].times[0]&&(o=s.tracks[c].times[0]);for(let c=0;c<s.tracks.length;++c)s.tracks[c].shift(-1*o);return s.resetDuration(),s}function makeClipAdditive(t,e=0,n=t,i=30){i<=0&&(i=30);const r=n.tracks.length,s=e/i;for(let a=0;a<r;++a){const e=n.tracks[a],i=e.ValueTypeName;if("bool"===i||"string"===i)continue;const r=t.tracks.find(function(t){return t.name===e.name&&t.ValueTypeName===i});if(void 0===r)continue;let o=0;const c=e.getValueSize();e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(o=c/3);let l=0;const u=r.getValueSize();r.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(l=u/3);const h=e.times.length-1;let d;if(s<=e.times[0]){const t=o,n=c-o;d=e.values.slice(t,n)}else if(s>=e.times[h]){const t=h*c+o,n=t+c-o;d=e.values.slice(t,n)}else{const t=e.createInterpolant(),n=o,i=c-o;t.evaluate(s),d=t.resultBuffer.slice(n,i)}if("quaternion"===i){(new Quaternion).fromArray(d).normalize().conjugate().toArray(d)}const p=r.times.length;for(let t=0;t<p;++t){const e=t*u+l;if("quaternion"===i)Quaternion.multiplyQuaternionsFlat(r.values,e,d,0,r.values,e);else{const t=u-2*l;for(let n=0;n<t;++n)r.values[e+n]-=d[n]}}}return t.blendMode=AdditiveAnimationBlendMode,t}const AnimationUtils={convertArray,isTypedArray,getKeyframeOrder,sortedArray,flattenJSON,subclip,makeClipAdditive};class Interpolant{constructor(t,e,n,i){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=void 0!==i?i:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,i=e[n],r=e[n-1];t:{e:{let s;n:{i:if(!(t<i)){for(let s=n+2;;){if(void 0===i){if(t<r)break i;return n=e.length,this._cachedIndex=n,this.copySampleValue_(n-1)}if(n===s)break;if(r=i,i=e[++n],t<i)break e}s=e.length;break n}if(!(t>=r)){const a=e[1];t<a&&(n=2,r=a);for(let s=n-2;;){if(void 0===r)return this._cachedIndex=0,this.copySampleValue_(0);if(n===s)break;if(i=r,r=e[--n-1],t>=r)break e}s=n,n=0;break n}break t}for(;n<s;){const i=n+s>>>1;t<e[i]?s=i:n=i+1}if(i=e[n],r=e[n-1],void 0===r)return this._cachedIndex=0,this.copySampleValue_(0);if(void 0===i)return n=e.length,this._cachedIndex=n,this.copySampleValue_(n-1)}this._cachedIndex=n,this.intervalChanged_(n,r,i)}return this.interpolate_(n,r,t,i)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(t){const e=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=t*i;for(let s=0;s!==i;++s)e[s]=n[r+s];return e}interpolate_(){throw new Error("call to abstract method")}intervalChanged_(){}}class CubicInterpolant extends Interpolant{constructor(t,e,n,i){super(t,e,n,i),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:ZeroCurvatureEnding,endingEnd:ZeroCurvatureEnding}}intervalChanged_(t,e,n){const i=this.parameterPositions;let r=t-2,s=t+1,a=i[r],o=i[s];if(void 0===a)switch(this.getSettings_().endingStart){case ZeroSlopeEnding:r=t,a=2*e-n;break;case WrapAroundEnding:r=i.length-2,a=e+i[r]-i[r+1];break;default:r=t,a=n}if(void 0===o)switch(this.getSettings_().endingEnd){case ZeroSlopeEnding:s=t,o=2*n-e;break;case WrapAroundEnding:s=1,o=n+i[1]-i[0];break;default:s=t-1,o=e}const c=.5*(n-e),l=this.valueSize;this._weightPrev=c/(e-a),this._weightNext=c/(o-n),this._offsetPrev=r*l,this._offsetNext=s*l}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=t*a,c=o-a,l=this._offsetPrev,u=this._offsetNext,h=this._weightPrev,d=this._weightNext,p=(n-e)/(i-e),f=p*p,m=f*p,g=-h*m+2*h*f-h*p,A=(1+h)*m+(-1.5-2*h)*f+(-.5+h)*p+1,y=(-1-d)*m+(1.5+d)*f+.5*p,v=d*m-d*f;for(let S=0;S!==a;++S)r[S]=g*s[l+S]+A*s[c+S]+y*s[o+S]+v*s[u+S];return r}}class LinearInterpolant extends Interpolant{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=t*a,c=o-a,l=(n-e)/(i-e),u=1-l;for(let h=0;h!==a;++h)r[h]=s[c+h]*u+s[o+h]*l;return r}}class DiscreteInterpolant extends Interpolant{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t){return this.copySampleValue_(t-1)}}class KeyframeTrack{constructor(t,e,n,i){if(void 0===t)throw new Error("THREE.KeyframeTrack: track name is undefined");if(void 0===e||0===e.length)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+t);this.name=t,this.times=convertArray(e,this.TimeBufferType),this.values=convertArray(n,this.ValueBufferType),this.setInterpolation(i||this.DefaultInterpolation)}static toJSON(t){const e=t.constructor;let n;if(e.toJSON!==this.toJSON)n=e.toJSON(t);else{n={name:t.name,times:convertArray(t.times,Array),values:convertArray(t.values,Array)};const e=t.getInterpolation();e!==t.DefaultInterpolation&&(n.interpolation=e)}return n.type=t.ValueTypeName,n}InterpolantFactoryMethodDiscrete(t){return new DiscreteInterpolant(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodLinear(t){return new LinearInterpolant(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodSmooth(t){return new CubicInterpolant(this.times,this.values,this.getValueSize(),t)}setInterpolation(t){let e;switch(t){case InterpolateDiscrete:e=this.InterpolantFactoryMethodDiscrete;break;case InterpolateLinear:e=this.InterpolantFactoryMethodLinear;break;case InterpolateSmooth:e=this.InterpolantFactoryMethodSmooth}if(void 0===e){const e="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant){if(t===this.DefaultInterpolation)throw new Error(e);this.setInterpolation(this.DefaultInterpolation)}return console.warn("THREE.KeyframeTrack:",e),this}return this.createInterpolant=e,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return InterpolateDiscrete;case this.InterpolantFactoryMethodLinear:return InterpolateLinear;case this.InterpolantFactoryMethodSmooth:return InterpolateSmooth}}getValueSize(){return this.values.length/this.times.length}shift(t){if(0!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]+=t}return this}scale(t){if(1!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]*=t}return this}trim(t,e){const n=this.times,i=n.length;let r=0,s=i-1;for(;r!==i&&n[r]<t;)++r;for(;-1!==s&&n[s]>e;)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=n.slice(r,s),this.values=this.values.slice(r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let a=0;a!==r;a++){const e=n[a];if("number"==typeof e&&isNaN(e)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,e),t=!1;break}if(null!==s&&s>e){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,e,s),t=!1;break}s=e}if(void 0!==i&&isTypedArray(i))for(let a=0,o=i.length;a!==o;++a){const e=i[a];if(isNaN(e)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,e),t=!1;break}}return t}optimize(){const t=this.times.slice(),e=this.values.slice(),n=this.getValueSize(),i=this.getInterpolation()===InterpolateSmooth,r=t.length-1;let s=1;for(let a=1;a<r;++a){let r=!1;const o=t[a];if(o!==t[a+1]&&(1!==a||o!==t[0]))if(i)r=!0;else{const t=a*n,i=t-n,s=t+n;for(let a=0;a!==n;++a){const n=e[t+a];if(n!==e[i+a]||n!==e[s+a]){r=!0;break}}}if(r){if(a!==s){t[s]=t[a];const i=a*n,r=s*n;for(let t=0;t!==n;++t)e[r+t]=e[i+t]}++s}}if(r>0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=t.slice(0,s),this.values=e.slice(0,s*n)):(this.times=t,this.values=e),this}clone(){const t=this.times.slice(),e=this.values.slice(),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}KeyframeTrack.prototype.TimeBufferType=Float32Array,KeyframeTrack.prototype.ValueBufferType=Float32Array,KeyframeTrack.prototype.DefaultInterpolation=InterpolateLinear;class BooleanKeyframeTrack extends KeyframeTrack{constructor(t,e,n){super(t,e,n)}}BooleanKeyframeTrack.prototype.ValueTypeName="bool",BooleanKeyframeTrack.prototype.ValueBufferType=Array,BooleanKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete,BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0,BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class ColorKeyframeTrack extends KeyframeTrack{}ColorKeyframeTrack.prototype.ValueTypeName="color";class NumberKeyframeTrack extends KeyframeTrack{}NumberKeyframeTrack.prototype.ValueTypeName="number";class QuaternionLinearInterpolant extends Interpolant{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let c=t*a;for(let l=c+a;c!==l;c+=4)Quaternion.slerpFlat(r,0,s,c-a,s,c,o);return r}}class QuaternionKeyframeTrack extends KeyframeTrack{InterpolantFactoryMethodLinear(t){return new QuaternionLinearInterpolant(this.times,this.values,this.getValueSize(),t)}}QuaternionKeyframeTrack.prototype.ValueTypeName="quaternion",QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class StringKeyframeTrack extends KeyframeTrack{constructor(t,e,n){super(t,e,n)}}StringKeyframeTrack.prototype.ValueTypeName="string",StringKeyframeTrack.prototype.ValueBufferType=Array,StringKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete,StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0,StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class VectorKeyframeTrack extends KeyframeTrack{}VectorKeyframeTrack.prototype.ValueTypeName="vector";class AnimationClip{constructor(t="",e=-1,n=[],i=NormalAnimationBlendMode){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=generateUUID(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let s=0,a=n.length;s!==a;++s)e.push(parseKeyframeTrack(n[s]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let r=0,s=n.length;r!==s;++r)e.push(KeyframeTrack.toJSON(n[r]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length,s=[];for(let a=0;a<r;a++){let t=[],o=[];t.push((a+r-1)%r,a,(a+1)%r),o.push(0,1,0);const c=getKeyframeOrder(t);t=sortedArray(t,1,c),o=sortedArray(o,1,c),i||0!==t[0]||(t.push(r),o.push(o[0])),s.push(new NumberKeyframeTrack(".morphTargetInfluences["+e[a].name+"]",t,o).scale(1/n))}return new this(t,-1,s)}static findByName(t,e){let n=t;if(!Array.isArray(t)){const e=t;n=e.geometry&&e.geometry.animations||e.animations}for(let i=0;i<n.length;i++)if(n[i].name===e)return n[i];return null}static CreateClipsFromMorphTargetSequences(t,e,n){const i={},r=/^([\w-]*?)([\d]+)$/;for(let a=0,o=t.length;a<o;a++){const e=t[a],n=e.name.match(r);if(n&&n.length>1){const t=n[1];let r=i[t];r||(i[t]=r=[]),r.push(e)}}const s=[];for(const a in i)s.push(this.CreateFromMorphTargetSequence(a,i[a],e,n));return s}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(t,e,n,i,r){if(0!==n.length){const s=[],a=[];flattenJSON(n,s,a,i),0!==s.length&&r.push(new t(e,s,a))}},i=[],r=t.name||"default",s=t.fps||30,a=t.blendMode;let o=t.length||-1;const c=t.hierarchy||[];for(let l=0;l<c.length;l++){const t=c[l].keys;if(t&&0!==t.length)if(t[0].morphTargets){const e={};let n;for(n=0;n<t.length;n++)if(t[n].morphTargets)for(let i=0;i<t[n].morphTargets.length;i++)e[t[n].morphTargets[i]]=-1;for(const r in e){const e=[],s=[];for(let i=0;i!==t[n].morphTargets.length;++i){const i=t[n];e.push(i.time),s.push(i.morphTarget===r?1:0)}i.push(new NumberKeyframeTrack(".morphTargetInfluence["+r+"]",e,s))}o=e.length*s}else{const r=".bones["+e[l].name+"]";n(VectorKeyframeTrack,r+".position",t,"pos",i),n(QuaternionKeyframeTrack,r+".quaternion",t,"rot",i),n(VectorKeyframeTrack,r+".scale",t,"scl",i)}}if(0===i.length)return null;return new this(r,o,i,a)}resetDuration(){let t=0;for(let e=0,n=this.tracks.length;e!==n;++e){const n=this.tracks[e];t=Math.max(t,n.times[n.times.length-1])}return this.duration=t,this}trim(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].trim(0,this.duration);return this}validate(){let t=!0;for(let e=0;e<this.tracks.length;e++)t=t&&this.tracks[e].validate();return t}optimize(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].optimize();return this}clone(){const t=[];for(let e=0;e<this.tracks.length;e++)t.push(this.tracks[e].clone());return new this.constructor(this.name,this.duration,t,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function getTrackTypeForValueTypeName(t){switch(t.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return NumberKeyframeTrack;case"vector":case"vector2":case"vector3":case"vector4":return VectorKeyframeTrack;case"color":return ColorKeyframeTrack;case"quaternion":return QuaternionKeyframeTrack;case"bool":case"boolean":return BooleanKeyframeTrack;case"string":return StringKeyframeTrack}throw new Error("THREE.KeyframeTrack: Unsupported typeName: "+t)}function parseKeyframeTrack(t){if(void 0===t.type)throw new Error("THREE.KeyframeTrack: track type undefined, can not parse");const e=getTrackTypeForValueTypeName(t.type);if(void 0===t.times){const e=[],n=[];flattenJSON(t.keys,e,n,"value"),t.times=e,t.values=n}return void 0!==e.parse?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}const Cache={enabled:!1,files:{},add:function(t,e){!1!==this.enabled&&(this.files[t]=e)},get:function(t){if(!1!==this.enabled)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}};class LoadingManager{constructor(t,e,n){const i=this;let r,s=!1,a=0,o=0;const c=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=n,this.itemStart=function(t){o++,!1===s&&void 0!==i.onStart&&i.onStart(t,a,o),s=!0},this.itemEnd=function(t){a++,void 0!==i.onProgress&&i.onProgress(t,a,o),a===o&&(s=!1,void 0!==i.onLoad&&i.onLoad())},this.itemError=function(t){void 0!==i.onError&&i.onError(t)},this.resolveURL=function(t){return r?r(t):t},this.setURLModifier=function(t){return r=t,this},this.addHandler=function(t,e){return c.push(t,e),this},this.removeHandler=function(t){const e=c.indexOf(t);return-1!==e&&c.splice(e,2),this},this.getHandler=function(t){for(let e=0,n=c.length;e<n;e+=2){const n=c[e],i=c[e+1];if(n.global&&(n.lastIndex=0),n.test(t))return i}return null}}}const DefaultLoadingManager=new LoadingManager;class Loader{constructor(t){this.manager=void 0!==t?t:DefaultLoadingManager,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(t,e){const n=this;return new Promise(function(i,r){n.load(t,i,e,r)})}parse(){}setCrossOrigin(t){return this.crossOrigin=t,this}setWithCredentials(t){return this.withCredentials=t,this}setPath(t){return this.path=t,this}setResourcePath(t){return this.resourcePath=t,this}setRequestHeader(t){return this.requestHeader=t,this}}Loader.DEFAULT_MATERIAL_NAME="__DEFAULT";const loading={};class HttpError extends Error{constructor(t,e){super(t),this.response=e}}class FileLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=Cache.get(t);if(void 0!==r)return this.manager.itemStart(t),setTimeout(()=>{e&&e(r),this.manager.itemEnd(t)},0),r;if(void 0!==loading[t])return void loading[t].push({onLoad:e,onProgress:n,onError:i});loading[t]=[],loading[t].push({onLoad:e,onProgress:n,onError:i});const s=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(s).then(e=>{if(200===e.status||0===e.status){if(0===e.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===e.body||void 0===e.body.getReader)return e;const n=loading[t],i=e.body.getReader(),r=e.headers.get("X-File-Size")||e.headers.get("Content-Length"),s=r?parseInt(r):0,a=0!==s;let o=0;const c=new ReadableStream({start(t){!function e(){i.read().then(({done:i,value:r})=>{if(i)t.close();else{o+=r.byteLength;const i=new ProgressEvent("progress",{lengthComputable:a,loaded:o,total:s});for(let t=0,e=n.length;t<e;t++){const e=n[t];e.onProgress&&e.onProgress(i)}t.enqueue(r),e()}},e=>{t.error(e)})}()}});return new Response(c)}throw new HttpError(`fetch for "${e.url}" responded with ${e.status}: ${e.statusText}`,e)}).then(t=>{switch(o){case"arraybuffer":return t.arrayBuffer();case"blob":return t.blob();case"document":return t.text().then(t=>(new DOMParser).parseFromString(t,a));case"json":return t.json();default:if(void 0===a)return t.text();{const e=/charset="?([^;"\s]*)"?/i.exec(a),n=e&&e[1]?e[1].toLowerCase():void 0,i=new TextDecoder(n);return t.arrayBuffer().then(t=>i.decode(t))}}}).then(e=>{Cache.add(t,e);const n=loading[t];delete loading[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onLoad&&i.onLoad(e)}}).catch(e=>{const n=loading[t];if(void 0===n)throw this.manager.itemError(t),e;delete loading[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onError&&i.onError(e)}this.manager.itemError(t)}).finally(()=>{this.manager.itemEnd(t)}),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class AnimationLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new FileLoader(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,function(n){try{e(r.parse(JSON.parse(n)))}catch(s){i?i(s):console.error(s),r.manager.itemError(t)}},n,i)}parse(t){const e=[];for(let n=0;n<t.length;n++){const i=AnimationClip.parse(t[n]);e.push(i)}return e}}class CompressedTextureLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this,s=[],a=new CompressedTexture,o=new FileLoader(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(r.withCredentials);let c=0;function l(l){o.load(t[l],function(t){const n=r.parse(t,!0);s[l]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps},c+=1,6===c&&(1===n.mipmapCount&&(a.minFilter=LinearFilter),a.image=s,a.format=n.format,a.needsUpdate=!0,e&&e(a))},n,i)}if(Array.isArray(t))for(let u=0,h=t.length;u<h;++u)l(u);else o.load(t,function(t){const n=r.parse(t,!0);if(n.isCubemap){const t=n.mipmaps.length/n.mipmapCount;for(let e=0;e<t;e++){s[e]={mipmaps:[]};for(let t=0;t<n.mipmapCount;t++)s[e].mipmaps.push(n.mipmaps[e*n.mipmapCount+t]),s[e].format=n.format,s[e].width=n.width,s[e].height=n.height}a.image=s}else a.image.width=n.width,a.image.height=n.height,a.mipmaps=n.mipmaps;1===n.mipmapCount&&(a.minFilter=LinearFilter),a.format=n.format,a.needsUpdate=!0,e&&e(a)},n,i);return a}}class ImageLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=Cache.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout(function(){e&&e(s),r.manager.itemEnd(t)},0),s;const a=createElementNS("img");function o(){l(),Cache.add(t,this),e&&e(this),r.manager.itemEnd(t)}function c(e){l(),i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)}function l(){a.removeEventListener("load",o,!1),a.removeEventListener("error",c,!1)}return a.addEventListener("load",o,!1),a.addEventListener("error",c,!1),"data:"!==t.slice(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin),r.manager.itemStart(t),a.src=t,a}}class CubeTextureLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=new CubeTexture;r.colorSpace=SRGBColorSpace;const s=new ImageLoader(this.manager);s.setCrossOrigin(this.crossOrigin),s.setPath(this.path);let a=0;function o(n){s.load(t[n],function(t){r.images[n]=t,a++,6===a&&(r.needsUpdate=!0,e&&e(r))},void 0,i)}for(let c=0;c<t.length;++c)o(c);return r}}class DataTextureLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new DataTexture,a=new FileLoader(this.manager);return a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setPath(this.path),a.setWithCredentials(r.withCredentials),a.load(t,function(t){let n;try{n=r.parse(t)}catch(a){if(void 0===i)return void console.error(a);i(a)}void 0!==n.image?s.image=n.image:void 0!==n.data&&(s.image.width=n.width,s.image.height=n.height,s.image.data=n.data),s.wrapS=void 0!==n.wrapS?n.wrapS:ClampToEdgeWrapping,s.wrapT=void 0!==n.wrapT?n.wrapT:ClampToEdgeWrapping,s.magFilter=void 0!==n.magFilter?n.magFilter:LinearFilter,s.minFilter=void 0!==n.minFilter?n.minFilter:LinearFilter,s.anisotropy=void 0!==n.anisotropy?n.anisotropy:1,void 0!==n.colorSpace&&(s.colorSpace=n.colorSpace),void 0!==n.flipY&&(s.flipY=n.flipY),void 0!==n.format&&(s.format=n.format),void 0!==n.type&&(s.type=n.type),void 0!==n.mipmaps&&(s.mipmaps=n.mipmaps,s.minFilter=LinearMipmapLinearFilter),1===n.mipmapCount&&(s.minFilter=LinearFilter),void 0!==n.generateMipmaps&&(s.generateMipmaps=n.generateMipmaps),s.needsUpdate=!0,e&&e(s,n)},n,i),s}}class TextureLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=new Texture,s=new ImageLoader(this.manager);return s.setCrossOrigin(this.crossOrigin),s.setPath(this.path),s.load(t,function(t){r.image=t,r.needsUpdate=!0,void 0!==e&&e(r)},n,i),r}}class Light extends Object3D{constructor(t,e=1){super(),this.isLight=!0,this.type="Light",this.color=new Color(t),this.intensity=e}dispose(){}copy(t,e){return super.copy(t,e),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),void 0!==this.target&&(e.object.target=this.target.uuid),e}}class HemisphereLight extends Light{constructor(t,e,n){super(t,n),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(Object3D.DEFAULT_UP),this.updateMatrix(),this.groundColor=new Color(e)}copy(t,e){return super.copy(t,e),this.groundColor.copy(t.groundColor),this}}const _projScreenMatrix$1=new Matrix4,_lightPositionWorld$1=new Vector3,_lookTarget$1=new Vector3;class LightShadow{constructor(t){this.camera=t,this.intensity=1,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new Vector2(512,512),this.map=null,this.mapPass=null,this.matrix=new Matrix4,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new Frustum,this._frameExtents=new Vector2(1,1),this._viewportCount=1,this._viewports=[new Vector4(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;_lightPositionWorld$1.setFromMatrixPosition(t.matrixWorld),e.position.copy(_lightPositionWorld$1),_lookTarget$1.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(_lookTarget$1),e.updateMatrixWorld(),_projScreenMatrix$1.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(_projScreenMatrix$1),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(_projScreenMatrix$1)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.intensity=t.intensity,this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};return 1!==this.intensity&&(t.intensity=this.intensity),0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class SpotLightShadow extends LightShadow{constructor(){super(new PerspectiveCamera(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(t){const e=this.camera,n=2*RAD2DEG$1*t.angle*this.focus,i=this.mapSize.width/this.mapSize.height,r=t.distance||e.far;n===e.fov&&i===e.aspect&&r===e.far||(e.fov=n,e.aspect=i,e.far=r,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}class SpotLight extends Light{constructor(t,e,n=0,i=Math.PI/3,r=0,s=2){super(t,e),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(Object3D.DEFAULT_UP),this.updateMatrix(),this.target=new Object3D,this.distance=n,this.angle=i,this.penumbra=r,this.decay=s,this.map=null,this.shadow=new SpotLightShadow}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}const _projScreenMatrix=new Matrix4,_lightPositionWorld=new Vector3,_lookTarget=new Vector3;class PointLightShadow extends LightShadow{constructor(){super(new PerspectiveCamera(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new Vector2(4,2),this._viewportCount=6,this._viewports=[new Vector4(2,1,1,1),new Vector4(0,1,1,1),new Vector4(3,1,1,1),new Vector4(1,1,1,1),new Vector4(3,0,1,1),new Vector4(1,0,1,1)],this._cubeDirections=[new Vector3(1,0,0),new Vector3(-1,0,0),new Vector3(0,0,1),new Vector3(0,0,-1),new Vector3(0,1,0),new Vector3(0,-1,0)],this._cubeUps=[new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,0,1),new Vector3(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,i=this.matrix,r=t.distance||n.far;r!==n.far&&(n.far=r,n.updateProjectionMatrix()),_lightPositionWorld.setFromMatrixPosition(t.matrixWorld),n.position.copy(_lightPositionWorld),_lookTarget.copy(n.position),_lookTarget.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(_lookTarget),n.updateMatrixWorld(),i.makeTranslation(-_lightPositionWorld.x,-_lightPositionWorld.y,-_lightPositionWorld.z),_projScreenMatrix.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(_projScreenMatrix)}}class PointLight extends Light{constructor(t,e,n=0,i=2){super(t,e),this.isPointLight=!0,this.type="PointLight",this.distance=n,this.decay=i,this.shadow=new PointLightShadow}get power(){return 4*this.intensity*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}class DirectionalLightShadow extends LightShadow{constructor(){super(new OrthographicCamera(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class DirectionalLight extends Light{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(Object3D.DEFAULT_UP),this.updateMatrix(),this.target=new Object3D,this.shadow=new DirectionalLightShadow}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}class AmbientLight extends Light{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type="AmbientLight"}}class RectAreaLight extends Light{constructor(t,e,n=10,i=10){super(t,e),this.isRectAreaLight=!0,this.type="RectAreaLight",this.width=n,this.height=i}get power(){return this.intensity*this.width*this.height*Math.PI}set power(t){this.intensity=t/(this.width*this.height*Math.PI)}copy(t){return super.copy(t),this.width=t.width,this.height=t.height,this}toJSON(t){const e=super.toJSON(t);return e.object.width=this.width,e.object.height=this.height,e}}class SphericalHarmonics3{constructor(){this.isSphericalHarmonics3=!0,this.coefficients=[];for(let t=0;t<9;t++)this.coefficients.push(new Vector3)}set(t){for(let e=0;e<9;e++)this.coefficients[e].copy(t[e]);return this}zero(){for(let t=0;t<9;t++)this.coefficients[t].set(0,0,0);return this}getAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.282095),e.addScaledVector(s[1],.488603*i),e.addScaledVector(s[2],.488603*r),e.addScaledVector(s[3],.488603*n),e.addScaledVector(s[4],n*i*1.092548),e.addScaledVector(s[5],i*r*1.092548),e.addScaledVector(s[6],.315392*(3*r*r-1)),e.addScaledVector(s[7],n*r*1.092548),e.addScaledVector(s[8],.546274*(n*n-i*i)),e}getIrradianceAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.886227),e.addScaledVector(s[1],1.023328*i),e.addScaledVector(s[2],1.023328*r),e.addScaledVector(s[3],1.023328*n),e.addScaledVector(s[4],.858086*n*i),e.addScaledVector(s[5],.858086*i*r),e.addScaledVector(s[6],.743125*r*r-.247708),e.addScaledVector(s[7],.858086*n*r),e.addScaledVector(s[8],.429043*(n*n-i*i)),e}add(t){for(let e=0;e<9;e++)this.coefficients[e].add(t.coefficients[e]);return this}addScaledSH(t,e){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(t.coefficients[n],e);return this}scale(t){for(let e=0;e<9;e++)this.coefficients[e].multiplyScalar(t);return this}lerp(t,e){for(let n=0;n<9;n++)this.coefficients[n].lerp(t.coefficients[n],e);return this}equals(t){for(let e=0;e<9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return!1;return!0}copy(t){return this.set(t.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(t,e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].fromArray(t,e+3*i);return this}toArray(t=[],e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].toArray(t,e+3*i);return t}static getBasisAt(t,e){const n=t.x,i=t.y,r=t.z;e[0]=.282095,e[1]=.488603*i,e[2]=.488603*r,e[3]=.488603*n,e[4]=1.092548*n*i,e[5]=1.092548*i*r,e[6]=.315392*(3*r*r-1),e[7]=1.092548*n*r,e[8]=.546274*(n*n-i*i)}}class LightProbe extends Light{constructor(t=new SphericalHarmonics3,e=1){super(void 0,e),this.isLightProbe=!0,this.sh=t}copy(t){return super.copy(t),this.sh.copy(t.sh),this}fromJSON(t){return this.intensity=t.intensity,this.sh.fromArray(t.sh),this}toJSON(t){const e=super.toJSON(t);return e.object.sh=this.sh.toArray(),e}}class MaterialLoader extends Loader{constructor(t){super(t),this.textures={}}load(t,e,n,i){const r=this,s=new FileLoader(r.manager);s.setPath(r.path),s.setRequestHeader(r.requestHeader),s.setWithCredentials(r.withCredentials),s.load(t,function(n){try{e(r.parse(JSON.parse(n)))}catch(s){i?i(s):console.error(s),r.manager.itemError(t)}},n,i)}parse(t){const e=this.textures;function n(t){return void 0===e[t]&&console.warn("THREE.MaterialLoader: Undefined texture",t),e[t]}const i=MaterialLoader.createMaterialFromType(t.type);if(void 0!==t.uuid&&(i.uuid=t.uuid),void 0!==t.name&&(i.name=t.name),void 0!==t.color&&void 0!==i.color&&i.color.setHex(t.color),void 0!==t.roughness&&(i.roughness=t.roughness),void 0!==t.metalness&&(i.metalness=t.metalness),void 0!==t.sheen&&(i.sheen=t.sheen),void 0!==t.sheenColor&&(i.sheenColor=(new Color).setHex(t.sheenColor)),void 0!==t.sheenRoughness&&(i.sheenRoughness=t.sheenRoughness),void 0!==t.emissive&&void 0!==i.emissive&&i.emissive.setHex(t.emissive),void 0!==t.specular&&void 0!==i.specular&&i.specular.setHex(t.specular),void 0!==t.specularIntensity&&(i.specularIntensity=t.specularIntensity),void 0!==t.specularColor&&void 0!==i.specularColor&&i.specularColor.setHex(t.specularColor),void 0!==t.shininess&&(i.shininess=t.shininess),void 0!==t.clearcoat&&(i.clearcoat=t.clearcoat),void 0!==t.clearcoatRoughness&&(i.clearcoatRoughness=t.clearcoatRoughness),void 0!==t.dispersion&&(i.dispersion=t.dispersion),void 0!==t.iridescence&&(i.iridescence=t.iridescence),void 0!==t.iridescenceIOR&&(i.iridescenceIOR=t.iridescenceIOR),void 0!==t.iridescenceThicknessRange&&(i.iridescenceThicknessRange=t.iridescenceThicknessRange),void 0!==t.transmission&&(i.transmission=t.transmission),void 0!==t.thickness&&(i.thickness=t.thickness),void 0!==t.attenuationDistance&&(i.attenuationDistance=t.attenuationDistance),void 0!==t.attenuationColor&&void 0!==i.attenuationColor&&i.attenuationColor.setHex(t.attenuationColor),void 0!==t.anisotropy&&(i.anisotropy=t.anisotropy),void 0!==t.anisotropyRotation&&(i.anisotropyRotation=t.anisotropyRotation),void 0!==t.fog&&(i.fog=t.fog),void 0!==t.flatShading&&(i.flatShading=t.flatShading),void 0!==t.blending&&(i.blending=t.blending),void 0!==t.combine&&(i.combine=t.combine),void 0!==t.side&&(i.side=t.side),void 0!==t.shadowSide&&(i.shadowSide=t.shadowSide),void 0!==t.opacity&&(i.opacity=t.opacity),void 0!==t.transparent&&(i.transparent=t.transparent),void 0!==t.alphaTest&&(i.alphaTest=t.alphaTest),void 0!==t.alphaHash&&(i.alphaHash=t.alphaHash),void 0!==t.depthFunc&&(i.depthFunc=t.depthFunc),void 0!==t.depthTest&&(i.depthTest=t.depthTest),void 0!==t.depthWrite&&(i.depthWrite=t.depthWrite),void 0!==t.colorWrite&&(i.colorWrite=t.colorWrite),void 0!==t.blendSrc&&(i.blendSrc=t.blendSrc),void 0!==t.blendDst&&(i.blendDst=t.blendDst),void 0!==t.blendEquation&&(i.blendEquation=t.blendEquation),void 0!==t.blendSrcAlpha&&(i.blendSrcAlpha=t.blendSrcAlpha),void 0!==t.blendDstAlpha&&(i.blendDstAlpha=t.blendDstAlpha),void 0!==t.blendEquationAlpha&&(i.blendEquationAlpha=t.blendEquationAlpha),void 0!==t.blendColor&&void 0!==i.blendColor&&i.blendColor.setHex(t.blendColor),void 0!==t.blendAlpha&&(i.blendAlpha=t.blendAlpha),void 0!==t.stencilWriteMask&&(i.stencilWriteMask=t.stencilWriteMask),void 0!==t.stencilFunc&&(i.stencilFunc=t.stencilFunc),void 0!==t.stencilRef&&(i.stencilRef=t.stencilRef),void 0!==t.stencilFuncMask&&(i.stencilFuncMask=t.stencilFuncMask),void 0!==t.stencilFail&&(i.stencilFail=t.stencilFail),void 0!==t.stencilZFail&&(i.stencilZFail=t.stencilZFail),void 0!==t.stencilZPass&&(i.stencilZPass=t.stencilZPass),void 0!==t.stencilWrite&&(i.stencilWrite=t.stencilWrite),void 0!==t.wireframe&&(i.wireframe=t.wireframe),void 0!==t.wireframeLinewidth&&(i.wireframeLinewidth=t.wireframeLinewidth),void 0!==t.wireframeLinecap&&(i.wireframeLinecap=t.wireframeLinecap),void 0!==t.wireframeLinejoin&&(i.wireframeLinejoin=t.wireframeLinejoin),void 0!==t.rotation&&(i.rotation=t.rotation),void 0!==t.linewidth&&(i.linewidth=t.linewidth),void 0!==t.dashSize&&(i.dashSize=t.dashSize),void 0!==t.gapSize&&(i.gapSize=t.gapSize),void 0!==t.scale&&(i.scale=t.scale),void 0!==t.polygonOffset&&(i.polygonOffset=t.polygonOffset),void 0!==t.polygonOffsetFactor&&(i.polygonOffsetFactor=t.polygonOffsetFactor),void 0!==t.polygonOffsetUnits&&(i.polygonOffsetUnits=t.polygonOffsetUnits),void 0!==t.dithering&&(i.dithering=t.dithering),void 0!==t.alphaToCoverage&&(i.alphaToCoverage=t.alphaToCoverage),void 0!==t.premultipliedAlpha&&(i.premultipliedAlpha=t.premultipliedAlpha),void 0!==t.forceSinglePass&&(i.forceSinglePass=t.forceSinglePass),void 0!==t.visible&&(i.visible=t.visible),void 0!==t.toneMapped&&(i.toneMapped=t.toneMapped),void 0!==t.userData&&(i.userData=t.userData),void 0!==t.vertexColors&&("number"==typeof t.vertexColors?i.vertexColors=t.vertexColors>0:i.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const r in t.uniforms){const e=t.uniforms[r];switch(i.uniforms[r]={},e.type){case"t":i.uniforms[r].value=n(e.value);break;case"c":i.uniforms[r].value=(new Color).setHex(e.value);break;case"v2":i.uniforms[r].value=(new Vector2).fromArray(e.value);break;case"v3":i.uniforms[r].value=(new Vector3).fromArray(e.value);break;case"v4":i.uniforms[r].value=(new Vector4).fromArray(e.value);break;case"m3":i.uniforms[r].value=(new Matrix3).fromArray(e.value);break;case"m4":i.uniforms[r].value=(new Matrix4).fromArray(e.value);break;default:i.uniforms[r].value=e.value}}if(void 0!==t.defines&&(i.defines=t.defines),void 0!==t.vertexShader&&(i.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(i.fragmentShader=t.fragmentShader),void 0!==t.glslVersion&&(i.glslVersion=t.glslVersion),void 0!==t.extensions)for(const r in t.extensions)i.extensions[r]=t.extensions[r];if(void 0!==t.lights&&(i.lights=t.lights),void 0!==t.clipping&&(i.clipping=t.clipping),void 0!==t.size&&(i.size=t.size),void 0!==t.sizeAttenuation&&(i.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(i.map=n(t.map)),void 0!==t.matcap&&(i.matcap=n(t.matcap)),void 0!==t.alphaMap&&(i.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(i.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(i.bumpScale=t.bumpScale),void 0!==t.normalMap&&(i.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(i.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),i.normalScale=(new Vector2).fromArray(e)}return void 0!==t.displacementMap&&(i.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(i.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(i.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(i.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(i.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(i.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(i.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(i.specularMap=n(t.specularMap)),void 0!==t.specularIntensityMap&&(i.specularIntensityMap=n(t.specularIntensityMap)),void 0!==t.specularColorMap&&(i.specularColorMap=n(t.specularColorMap)),void 0!==t.envMap&&(i.envMap=n(t.envMap)),void 0!==t.envMapRotation&&i.envMapRotation.fromArray(t.envMapRotation),void 0!==t.envMapIntensity&&(i.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(i.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(i.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(i.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(i.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(i.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(i.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(i.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(i.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(i.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new Vector2).fromArray(t.clearcoatNormalScale)),void 0!==t.iridescenceMap&&(i.iridescenceMap=n(t.iridescenceMap)),void 0!==t.iridescenceThicknessMap&&(i.iridescenceThicknessMap=n(t.iridescenceThicknessMap)),void 0!==t.transmissionMap&&(i.transmissionMap=n(t.transmissionMap)),void 0!==t.thicknessMap&&(i.thicknessMap=n(t.thicknessMap)),void 0!==t.anisotropyMap&&(i.anisotropyMap=n(t.anisotropyMap)),void 0!==t.sheenColorMap&&(i.sheenColorMap=n(t.sheenColorMap)),void 0!==t.sheenRoughnessMap&&(i.sheenRoughnessMap=n(t.sheenRoughnessMap)),i}setTextures(t){return this.textures=t,this}static createMaterialFromType(t){return new{ShadowMaterial,SpriteMaterial,RawShaderMaterial,ShaderMaterial,PointsMaterial,MeshPhysicalMaterial,MeshStandardMaterial,MeshPhongMaterial,MeshToonMaterial,MeshNormalMaterial,MeshLambertMaterial,MeshDepthMaterial,MeshDistanceMaterial,MeshBasicMaterial,MeshMatcapMaterial,LineDashedMaterial,LineBasicMaterial,Material}[t]}}class LoaderUtils{static decodeText(t){if(console.warn("THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead."),"undefined"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e="";for(let i=0,r=t.length;i<r;i++)e+=String.fromCharCode(t[i]);try{return decodeURIComponent(escape(e))}catch(n){return e}}static extractUrlBase(t){const e=t.lastIndexOf("/");return-1===e?"./":t.slice(0,e+1)}static resolveURL(t,e){return"string"!=typeof t||""===t?"":(/^https?:\/\//i.test(e)&&/^\//.test(t)&&(e=e.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(t)||/^data:.*,.*$/i.test(t)||/^blob:.*$/i.test(t)?t:e+t)}}class InstancedBufferGeometry extends BufferGeometry{constructor(){super(),this.isInstancedBufferGeometry=!0,this.type="InstancedBufferGeometry",this.instanceCount=1/0}copy(t){return super.copy(t),this.instanceCount=t.instanceCount,this}toJSON(){const t=super.toJSON();return t.instanceCount=this.instanceCount,t.isInstancedBufferGeometry=!0,t}}class BufferGeometryLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new FileLoader(r.manager);s.setPath(r.path),s.setRequestHeader(r.requestHeader),s.setWithCredentials(r.withCredentials),s.load(t,function(n){try{e(r.parse(JSON.parse(n)))}catch(s){i?i(s):console.error(s),r.manager.itemError(t)}},n,i)}parse(t){const e={},n={};function i(t,i){if(void 0!==e[i])return e[i];const r=t.interleavedBuffers[i],s=function(t,e){if(void 0!==n[e])return n[e];const i=t.arrayBuffers,r=i[e],s=new Uint32Array(r).buffer;return n[e]=s,s}(t,r.buffer),a=getTypedArray(r.type,s),o=new InterleavedBuffer(a,r.stride);return o.uuid=r.uuid,e[i]=o,o}const r=t.isInstancedBufferGeometry?new InstancedBufferGeometry:new BufferGeometry,s=t.data.index;if(void 0!==s){const t=getTypedArray(s.type,s.array);r.setIndex(new BufferAttribute(t,1))}const a=t.data.attributes;for(const u in a){const e=a[u];let n;if(e.isInterleavedBufferAttribute){const r=i(t.data,e.data);n=new InterleavedBufferAttribute(r,e.itemSize,e.offset,e.normalized)}else{const t=getTypedArray(e.type,e.array);n=new(e.isInstancedBufferAttribute?InstancedBufferAttribute:BufferAttribute)(t,e.itemSize,e.normalized)}void 0!==e.name&&(n.name=e.name),void 0!==e.usage&&n.setUsage(e.usage),r.setAttribute(u,n)}const o=t.data.morphAttributes;if(o)for(const u in o){const e=o[u],n=[];for(let r=0,s=e.length;r<s;r++){const s=e[r];let a;if(s.isInterleavedBufferAttribute){const e=i(t.data,s.data);a=new InterleavedBufferAttribute(e,s.itemSize,s.offset,s.normalized)}else{const t=getTypedArray(s.type,s.array);a=new BufferAttribute(t,s.itemSize,s.normalized)}void 0!==s.name&&(a.name=s.name),n.push(a)}r.morphAttributes[u]=n}t.data.morphTargetsRelative&&(r.morphTargetsRelative=!0);const c=t.data.groups||t.data.drawcalls||t.data.offsets;if(void 0!==c)for(let u=0,h=c.length;u!==h;++u){const t=c[u];r.addGroup(t.start,t.count,t.materialIndex)}const l=t.data.boundingSphere;if(void 0!==l){const t=new Vector3;void 0!==l.center&&t.fromArray(l.center),r.boundingSphere=new Sphere(t,l.radius)}return t.name&&(r.name=t.name),t.userData&&(r.userData=t.userData),r}}class ObjectLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this,s=""===this.path?LoaderUtils.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||s;const a=new FileLoader(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(t,function(n){let s=null;try{s=JSON.parse(n)}catch(o){return void 0!==i&&i(o),void console.error("THREE:ObjectLoader: Can't parse "+t+".",o.message)}const a=s.metadata;if(void 0===a||void 0===a.type||"geometry"===a.type.toLowerCase())return void 0!==i&&i(new Error("THREE.ObjectLoader: Can't load "+t)),void console.error("THREE.ObjectLoader: Can't load "+t);r.parse(s,e)},n,i)}async loadAsync(t,e){const n=""===this.path?LoaderUtils.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||n;const i=new FileLoader(this.manager);i.setPath(this.path),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials);const r=await i.loadAsync(t,e),s=JSON.parse(r),a=s.metadata;if(void 0===a||void 0===a.type||"geometry"===a.type.toLowerCase())throw new Error("THREE.ObjectLoader: Can't load "+t);return await this.parseAsync(s)}parse(t,e){const n=this.parseAnimations(t.animations),i=this.parseShapes(t.shapes),r=this.parseGeometries(t.geometries,i),s=this.parseImages(t.images,function(){void 0!==e&&e(c)}),a=this.parseTextures(t.textures,s),o=this.parseMaterials(t.materials,a),c=this.parseObject(t.object,r,o,a,n),l=this.parseSkeletons(t.skeletons,c);if(this.bindSkeletons(c,l),this.bindLightTargets(c),void 0!==e){let t=!1;for(const e in s)if(s[e].data instanceof HTMLImageElement){t=!0;break}!1===t&&e(c)}return c}async parseAsync(t){const e=this.parseAnimations(t.animations),n=this.parseShapes(t.shapes),i=this.parseGeometries(t.geometries,n),r=await this.parseImagesAsync(t.images),s=this.parseTextures(t.textures,r),a=this.parseMaterials(t.materials,s),o=this.parseObject(t.object,i,a,s,e),c=this.parseSkeletons(t.skeletons,o);return this.bindSkeletons(o,c),this.bindLightTargets(o),o}parseShapes(t){const e={};if(void 0!==t)for(let n=0,i=t.length;n<i;n++){const i=(new Shape).fromJSON(t[n]);e[i.uuid]=i}return e}parseSkeletons(t,e){const n={},i={};if(e.traverse(function(t){t.isBone&&(i[t.uuid]=t)}),void 0!==t)for(let r=0,s=t.length;r<s;r++){const e=(new Skeleton).fromJSON(t[r],i);n[e.uuid]=e}return n}parseGeometries(t,e){const n={};if(void 0!==t){const i=new BufferGeometryLoader;for(let r=0,s=t.length;r<s;r++){let s;const a=t[r];switch(a.type){case"BufferGeometry":case"InstancedBufferGeometry":s=i.parse(a);break;default:a.type in Geometries?s=Geometries[a.type].fromJSON(a,e):console.warn(`THREE.ObjectLoader: Unsupported geometry type "${a.type}"`)}s.uuid=a.uuid,void 0!==a.name&&(s.name=a.name),void 0!==a.userData&&(s.userData=a.userData),n[a.uuid]=s}}return n}parseMaterials(t,e){const n={},i={};if(void 0!==t){const r=new MaterialLoader;r.setTextures(e);for(let e=0,s=t.length;e<s;e++){const s=t[e];void 0===n[s.uuid]&&(n[s.uuid]=r.parse(s)),i[s.uuid]=n[s.uuid]}}return i}parseAnimations(t){const e={};if(void 0!==t)for(let n=0;n<t.length;n++){const i=t[n],r=AnimationClip.parse(i);e[r.uuid]=r}return e}parseImages(t,e){const n=this,i={};let r;function s(t){if("string"==typeof t){const e=t;return function(t){return n.manager.itemStart(t),r.load(t,function(){n.manager.itemEnd(t)},void 0,function(){n.manager.itemError(t),n.manager.itemEnd(t)})}(/^(\/\/)|([a-z]+:(\/\/)?)/i.test(e)?e:n.resourcePath+e)}return t.data?{data:getTypedArray(t.type,t.data),width:t.width,height:t.height}:null}if(void 0!==t&&t.length>0){const n=new LoadingManager(e);r=new ImageLoader(n),r.setCrossOrigin(this.crossOrigin);for(let e=0,r=t.length;e<r;e++){const n=t[e],r=n.url;if(Array.isArray(r)){const t=[];for(let e=0,n=r.length;e<n;e++){const n=s(r[e]);null!==n&&(n instanceof HTMLImageElement?t.push(n):t.push(new DataTexture(n.data,n.width,n.height)))}i[n.uuid]=new Source(t)}else{const t=s(n.url);i[n.uuid]=new Source(t)}}}return i}async parseImagesAsync(t){const e=this,n={};let i;async function r(t){if("string"==typeof t){const n=t,r=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(n)?n:e.resourcePath+n;return await i.loadAsync(r)}return t.data?{data:getTypedArray(t.type,t.data),width:t.width,height:t.height}:null}if(void 0!==t&&t.length>0){i=new ImageLoader(this.manager),i.setCrossOrigin(this.crossOrigin);for(let e=0,i=t.length;e<i;e++){const i=t[e],s=i.url;if(Array.isArray(s)){const t=[];for(let e=0,n=s.length;e<n;e++){const n=s[e],i=await r(n);null!==i&&(i instanceof HTMLImageElement?t.push(i):t.push(new DataTexture(i.data,i.width,i.height)))}n[i.uuid]=new Source(t)}else{const t=await r(i.url);n[i.uuid]=new Source(t)}}}return n}parseTextures(t,e){function n(t,e){return"number"==typeof t?t:(console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",t),e[t])}const i={};if(void 0!==t)for(let r=0,s=t.length;r<s;r++){const s=t[r];void 0===s.image&&console.warn('THREE.ObjectLoader: No "image" specified for',s.uuid),void 0===e[s.image]&&console.warn("THREE.ObjectLoader: Undefined image",s.image);const a=e[s.image],o=a.data;let c;Array.isArray(o)?(c=new CubeTexture,6===o.length&&(c.needsUpdate=!0)):(c=o&&o.data?new DataTexture:new Texture,o&&(c.needsUpdate=!0)),c.source=a,c.uuid=s.uuid,void 0!==s.name&&(c.name=s.name),void 0!==s.mapping&&(c.mapping=n(s.mapping,TEXTURE_MAPPING)),void 0!==s.channel&&(c.channel=s.channel),void 0!==s.offset&&c.offset.fromArray(s.offset),void 0!==s.repeat&&c.repeat.fromArray(s.repeat),void 0!==s.center&&c.center.fromArray(s.center),void 0!==s.rotation&&(c.rotation=s.rotation),void 0!==s.wrap&&(c.wrapS=n(s.wrap[0],TEXTURE_WRAPPING),c.wrapT=n(s.wrap[1],TEXTURE_WRAPPING)),void 0!==s.format&&(c.format=s.format),void 0!==s.internalFormat&&(c.internalFormat=s.internalFormat),void 0!==s.type&&(c.type=s.type),void 0!==s.colorSpace&&(c.colorSpace=s.colorSpace),void 0!==s.minFilter&&(c.minFilter=n(s.minFilter,TEXTURE_FILTER)),void 0!==s.magFilter&&(c.magFilter=n(s.magFilter,TEXTURE_FILTER)),void 0!==s.anisotropy&&(c.anisotropy=s.anisotropy),void 0!==s.flipY&&(c.flipY=s.flipY),void 0!==s.generateMipmaps&&(c.generateMipmaps=s.generateMipmaps),void 0!==s.premultiplyAlpha&&(c.premultiplyAlpha=s.premultiplyAlpha),void 0!==s.unpackAlignment&&(c.unpackAlignment=s.unpackAlignment),void 0!==s.compareFunction&&(c.compareFunction=s.compareFunction),void 0!==s.userData&&(c.userData=s.userData),i[s.uuid]=c}return i}parseObject(t,e,n,i,r){let s,a,o;function c(t){return void 0===e[t]&&console.warn("THREE.ObjectLoader: Undefined geometry",t),e[t]}function l(t){if(void 0!==t){if(Array.isArray(t)){const e=[];for(let i=0,r=t.length;i<r;i++){const r=t[i];void 0===n[r]&&console.warn("THREE.ObjectLoader: Undefined material",r),e.push(n[r])}return e}return void 0===n[t]&&console.warn("THREE.ObjectLoader: Undefined material",t),n[t]}}function u(t){return void 0===i[t]&&console.warn("THREE.ObjectLoader: Undefined texture",t),i[t]}switch(t.type){case"Scene":s=new Scene,void 0!==t.background&&(Number.isInteger(t.background)?s.background=new Color(t.background):s.background=u(t.background)),void 0!==t.environment&&(s.environment=u(t.environment)),void 0!==t.fog&&("Fog"===t.fog.type?s.fog=new Fog(t.fog.color,t.fog.near,t.fog.far):"FogExp2"===t.fog.type&&(s.fog=new FogExp2(t.fog.color,t.fog.density)),""!==t.fog.name&&(s.fog.name=t.fog.name)),void 0!==t.backgroundBlurriness&&(s.backgroundBlurriness=t.backgroundBlurriness),void 0!==t.backgroundIntensity&&(s.backgroundIntensity=t.backgroundIntensity),void 0!==t.backgroundRotation&&s.backgroundRotation.fromArray(t.backgroundRotation),void 0!==t.environmentIntensity&&(s.environmentIntensity=t.environmentIntensity),void 0!==t.environmentRotation&&s.environmentRotation.fromArray(t.environmentRotation);break;case"PerspectiveCamera":s=new PerspectiveCamera(t.fov,t.aspect,t.near,t.far),void 0!==t.focus&&(s.focus=t.focus),void 0!==t.zoom&&(s.zoom=t.zoom),void 0!==t.filmGauge&&(s.filmGauge=t.filmGauge),void 0!==t.filmOffset&&(s.filmOffset=t.filmOffset),void 0!==t.view&&(s.view=Object.assign({},t.view));break;case"OrthographicCamera":s=new OrthographicCamera(t.left,t.right,t.top,t.bottom,t.near,t.far),void 0!==t.zoom&&(s.zoom=t.zoom),void 0!==t.view&&(s.view=Object.assign({},t.view));break;case"AmbientLight":s=new AmbientLight(t.color,t.intensity);break;case"DirectionalLight":s=new DirectionalLight(t.color,t.intensity),s.target=t.target||"";break;case"PointLight":s=new PointLight(t.color,t.intensity,t.distance,t.decay);break;case"RectAreaLight":s=new RectAreaLight(t.color,t.intensity,t.width,t.height);break;case"SpotLight":s=new SpotLight(t.color,t.intensity,t.distance,t.angle,t.penumbra,t.decay),s.target=t.target||"";break;case"HemisphereLight":s=new HemisphereLight(t.color,t.groundColor,t.intensity);break;case"LightProbe":s=(new LightProbe).fromJSON(t);break;case"SkinnedMesh":a=c(t.geometry),o=l(t.material),s=new SkinnedMesh(a,o),void 0!==t.bindMode&&(s.bindMode=t.bindMode),void 0!==t.bindMatrix&&s.bindMatrix.fromArray(t.bindMatrix),void 0!==t.skeleton&&(s.skeleton=t.skeleton);break;case"Mesh":a=c(t.geometry),o=l(t.material),s=new Mesh(a,o);break;case"InstancedMesh":a=c(t.geometry),o=l(t.material);const e=t.count,n=t.instanceMatrix,i=t.instanceColor;s=new InstancedMesh(a,o,e),s.instanceMatrix=new InstancedBufferAttribute(new Float32Array(n.array),16),void 0!==i&&(s.instanceColor=new InstancedBufferAttribute(new Float32Array(i.array),i.itemSize));break;case"BatchedMesh":a=c(t.geometry),o=l(t.material),s=new BatchedMesh(t.maxInstanceCount,t.maxVertexCount,t.maxIndexCount,o),s.geometry=a,s.perObjectFrustumCulled=t.perObjectFrustumCulled,s.sortObjects=t.sortObjects,s._drawRanges=t.drawRanges,s._reservedRanges=t.reservedRanges,s._visibility=t.visibility,s._active=t.active,s._bounds=t.bounds.map(t=>{const e=new Box3;e.min.fromArray(t.boxMin),e.max.fromArray(t.boxMax);const n=new Sphere;return n.radius=t.sphereRadius,n.center.fromArray(t.sphereCenter),{boxInitialized:t.boxInitialized,box:e,sphereInitialized:t.sphereInitialized,sphere:n}}),s._maxInstanceCount=t.maxInstanceCount,s._maxVertexCount=t.maxVertexCount,s._maxIndexCount=t.maxIndexCount,s._geometryInitialized=t.geometryInitialized,s._geometryCount=t.geometryCount,s._matricesTexture=u(t.matricesTexture.uuid),void 0!==t.colorsTexture&&(s._colorsTexture=u(t.colorsTexture.uuid));break;case"LOD":s=new LOD;break;case"Line":s=new Line(c(t.geometry),l(t.material));break;case"LineLoop":s=new LineLoop(c(t.geometry),l(t.material));break;case"LineSegments":s=new LineSegments(c(t.geometry),l(t.material));break;case"PointCloud":case"Points":s=new Points(c(t.geometry),l(t.material));break;case"Sprite":s=new Sprite(l(t.material));break;case"Group":s=new Group$1;break;case"Bone":s=new Bone;break;default:s=new Object3D}if(s.uuid=t.uuid,void 0!==t.name&&(s.name=t.name),void 0!==t.matrix?(s.matrix.fromArray(t.matrix),void 0!==t.matrixAutoUpdate&&(s.matrixAutoUpdate=t.matrixAutoUpdate),s.matrixAutoUpdate&&s.matrix.decompose(s.position,s.quaternion,s.scale)):(void 0!==t.position&&s.position.fromArray(t.position),void 0!==t.rotation&&s.rotation.fromArray(t.rotation),void 0!==t.quaternion&&s.quaternion.fromArray(t.quaternion),void 0!==t.scale&&s.scale.fromArray(t.scale)),void 0!==t.up&&s.up.fromArray(t.up),void 0!==t.castShadow&&(s.castShadow=t.castShadow),void 0!==t.receiveShadow&&(s.receiveShadow=t.receiveShadow),t.shadow&&(void 0!==t.shadow.intensity&&(s.shadow.intensity=t.shadow.intensity),void 0!==t.shadow.bias&&(s.shadow.bias=t.shadow.bias),void 0!==t.shadow.normalBias&&(s.shadow.normalBias=t.shadow.normalBias),void 0!==t.shadow.radius&&(s.shadow.radius=t.shadow.radius),void 0!==t.shadow.mapSize&&s.shadow.mapSize.fromArray(t.shadow.mapSize),void 0!==t.shadow.camera&&(s.shadow.camera=this.parseObject(t.shadow.camera))),void 0!==t.visible&&(s.visible=t.visible),void 0!==t.frustumCulled&&(s.frustumCulled=t.frustumCulled),void 0!==t.renderOrder&&(s.renderOrder=t.renderOrder),void 0!==t.userData&&(s.userData=t.userData),void 0!==t.layers&&(s.layers.mask=t.layers),void 0!==t.children){const a=t.children;for(let t=0;t<a.length;t++)s.add(this.parseObject(a[t],e,n,i,r))}if(void 0!==t.animations){const e=t.animations;for(let t=0;t<e.length;t++){const n=e[t];s.animations.push(r[n])}}if("LOD"===t.type){void 0!==t.autoUpdate&&(s.autoUpdate=t.autoUpdate);const e=t.levels;for(let t=0;t<e.length;t++){const n=e[t],i=s.getObjectByProperty("uuid",n.object);void 0!==i&&s.addLevel(i,n.distance,n.hysteresis)}}return s}bindSkeletons(t,e){0!==Object.keys(e).length&&t.traverse(function(t){if(!0===t.isSkinnedMesh&&void 0!==t.skeleton){const n=e[t.skeleton];void 0===n?console.warn("THREE.ObjectLoader: No skeleton found with UUID:",t.skeleton):t.bind(n,t.bindMatrix)}})}bindLightTargets(t){t.traverse(function(e){if(e.isDirectionalLight||e.isSpotLight){const n=e.target,i=t.getObjectByProperty("uuid",n);e.target=void 0!==i?i:new Object3D}})}}const TEXTURE_MAPPING={UVMapping,CubeReflectionMapping,CubeRefractionMapping,EquirectangularReflectionMapping,EquirectangularRefractionMapping,CubeUVReflectionMapping},TEXTURE_WRAPPING={RepeatWrapping,ClampToEdgeWrapping,MirroredRepeatWrapping},TEXTURE_FILTER={NearestFilter,NearestMipmapNearestFilter,NearestMipmapLinearFilter,LinearFilter,LinearMipmapNearestFilter,LinearMipmapLinearFilter};class ImageBitmapLoader extends Loader{constructor(t){super(t),this.isImageBitmapLoader=!0,"undefined"==typeof createImageBitmap&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),"undefined"==typeof fetch&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(t){return this.options=t,this}load(t,e,n,i){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=Cache.get(t);if(void 0!==s)return r.manager.itemStart(t),s.then?void s.then(n=>{e&&e(n),r.manager.itemEnd(t)}).catch(t=>{i&&i(t)}):(setTimeout(function(){e&&e(s),r.manager.itemEnd(t)},0),s);const a={};a.credentials="anonymous"===this.crossOrigin?"same-origin":"include",a.headers=this.requestHeader;const o=fetch(t,a).then(function(t){return t.blob()}).then(function(t){return createImageBitmap(t,Object.assign(r.options,{colorSpaceConversion:"none"}))}).then(function(n){return Cache.add(t,n),e&&e(n),r.manager.itemEnd(t),n}).catch(function(e){i&&i(e),Cache.remove(t),r.manager.itemError(t),r.manager.itemEnd(t)});Cache.add(t,o),r.manager.itemStart(t)}}let _context,AudioContext$1=class{static getContext(){return void 0===_context&&(_context=new(window.AudioContext||window.webkitAudioContext)),_context}static setContext(t){_context=t}};class AudioLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new FileLoader(this.manager);function a(e){i?i(e):console.error(e),r.manager.itemError(t)}s.setResponseType("arraybuffer"),s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,function(t){try{const n=t.slice(0);AudioContext$1.getContext().decodeAudioData(n,function(t){e(t)}).catch(a)}catch(n){a(n)}},n,i)}}const _eyeRight=new Matrix4,_eyeLeft=new Matrix4,_projectionMatrix=new Matrix4;class StereoCamera{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new PerspectiveCamera,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new PerspectiveCamera,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}}update(t){const e=this._cache;if(e.focus!==t.focus||e.fov!==t.fov||e.aspect!==t.aspect*this.aspect||e.near!==t.near||e.far!==t.far||e.zoom!==t.zoom||e.eyeSep!==this.eyeSep){e.focus=t.focus,e.fov=t.fov,e.aspect=t.aspect*this.aspect,e.near=t.near,e.far=t.far,e.zoom=t.zoom,e.eyeSep=this.eyeSep,_projectionMatrix.copy(t.projectionMatrix);const n=e.eyeSep/2,i=n*e.near/e.focus,r=e.near*Math.tan(DEG2RAD$1*e.fov*.5)/e.zoom;let s,a;_eyeLeft.elements[12]=-n,_eyeRight.elements[12]=n,s=-r*e.aspect+i,a=r*e.aspect+i,_projectionMatrix.elements[0]=2*e.near/(a-s),_projectionMatrix.elements[8]=(a+s)/(a-s),this.cameraL.projectionMatrix.copy(_projectionMatrix),s=-r*e.aspect-i,a=r*e.aspect-i,_projectionMatrix.elements[0]=2*e.near/(a-s),_projectionMatrix.elements[8]=(a+s)/(a-s),this.cameraR.projectionMatrix.copy(_projectionMatrix)}this.cameraL.matrixWorld.copy(t.matrixWorld).multiply(_eyeLeft),this.cameraR.matrixWorld.copy(t.matrixWorld).multiply(_eyeRight)}}class Clock{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=now$1(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=now$1();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function now$1(){return("undefined"==typeof performance?Date:performance).now()}const _position$1=new Vector3,_quaternion$1=new Quaternion,_scale$1=new Vector3,_orientation$1=new Vector3;class AudioListener extends Object3D{constructor(){super(),this.type="AudioListener",this.context=AudioContext$1.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new Clock}getInput(){return this.gain}removeFilter(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(t){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=t,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}updateMatrixWorld(t){super.updateMatrixWorld(t);const e=this.context.listener,n=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(_position$1,_quaternion$1,_scale$1),_orientation$1.set(0,0,-1).applyQuaternion(_quaternion$1),e.positionX){const t=this.context.currentTime+this.timeDelta;e.positionX.linearRampToValueAtTime(_position$1.x,t),e.positionY.linearRampToValueAtTime(_position$1.y,t),e.positionZ.linearRampToValueAtTime(_position$1.z,t),e.forwardX.linearRampToValueAtTime(_orientation$1.x,t),e.forwardY.linearRampToValueAtTime(_orientation$1.y,t),e.forwardZ.linearRampToValueAtTime(_orientation$1.z,t),e.upX.linearRampToValueAtTime(n.x,t),e.upY.linearRampToValueAtTime(n.y,t),e.upZ.linearRampToValueAtTime(n.z,t)}else e.setPosition(_position$1.x,_position$1.y,_position$1.z),e.setOrientation(_orientation$1.x,_orientation$1.y,_orientation$1.z,n.x,n.y,n.z)}}let Audio$1=class extends Object3D{constructor(t){super(),this.type="Audio",this.listener=t,this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(t){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=t,this.connect(),this}setMediaElementSource(t){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(t),this.connect(),this}setMediaStreamSource(t){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(t),this.connect(),this}setBuffer(t){return this.buffer=t,this.sourceType="buffer",this.autoplay&&this.play(),this}play(t=0){if(!0===this.isPlaying)return void console.warn("THREE.Audio: Audio is already playing.");if(!1===this.hasPlaybackControl)return void console.warn("THREE.Audio: this Audio has no playback control.");this._startedAt=this.context.currentTime+t;const e=this.context.createBufferSource();return e.buffer=this.buffer,e.loop=this.loop,e.loopStart=this.loopStart,e.loopEnd=this.loopEnd,e.onended=this.onEnded.bind(this),e.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=e,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this;console.warn("THREE.Audio: this Audio has no playback control.")}stop(){if(!1!==this.hasPlaybackControl)return this._progress=0,null!==this.source&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this;console.warn("THREE.Audio: this Audio has no playback control.")}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].connect(this.filters[t]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this}disconnect(){if(!1!==this._connected){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].disconnect(this.filters[t]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this._connected=!1,this}}getFilters(){return this.filters}setFilters(t){return t||(t=[]),!0===this._connected?(this.disconnect(),this.filters=t.slice(),this.connect()):this.filters=t.slice(),this}setDetune(t){return this.detune=t,!0===this.isPlaying&&void 0!==this.source.detune&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(t){return this.setFilters(t?[t]:[])}setPlaybackRate(t){if(!1!==this.hasPlaybackControl)return this.playbackRate=t,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this;console.warn("THREE.Audio: this Audio has no playback control.")}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=!1}getLoop(){return!1===this.hasPlaybackControl?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop}setLoop(t){if(!1!==this.hasPlaybackControl)return this.loop=t,!0===this.isPlaying&&(this.source.loop=this.loop),this;console.warn("THREE.Audio: this Audio has no playback control.")}setLoopStart(t){return this.loopStart=t,this}setLoopEnd(t){return this.loopEnd=t,this}getVolume(){return this.gain.gain.value}setVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}};const _position=new Vector3,_quaternion=new Quaternion,_scale=new Vector3,_orientation=new Vector3;class PositionalAudio extends Audio$1{constructor(t){super(t),this.panner=this.context.createPanner(),this.panner.panningModel="HRTF",this.panner.connect(this.gain)}connect(){super.connect(),this.panner.connect(this.gain)}disconnect(){super.disconnect(),this.panner.disconnect(this.gain)}getOutput(){return this.panner}getRefDistance(){return this.panner.refDistance}setRefDistance(t){return this.panner.refDistance=t,this}getRolloffFactor(){return this.panner.rolloffFactor}setRolloffFactor(t){return this.panner.rolloffFactor=t,this}getDistanceModel(){return this.panner.distanceModel}setDistanceModel(t){return this.panner.distanceModel=t,this}getMaxDistance(){return this.panner.maxDistance}setMaxDistance(t){return this.panner.maxDistance=t,this}setDirectionalCone(t,e,n){return this.panner.coneInnerAngle=t,this.panner.coneOuterAngle=e,this.panner.coneOuterGain=n,this}updateMatrixWorld(t){if(super.updateMatrixWorld(t),!0===this.hasPlaybackControl&&!1===this.isPlaying)return;this.matrixWorld.decompose(_position,_quaternion,_scale),_orientation.set(0,0,1).applyQuaternion(_quaternion);const e=this.panner;if(e.positionX){const t=this.context.currentTime+this.listener.timeDelta;e.positionX.linearRampToValueAtTime(_position.x,t),e.positionY.linearRampToValueAtTime(_position.y,t),e.positionZ.linearRampToValueAtTime(_position.z,t),e.orientationX.linearRampToValueAtTime(_orientation.x,t),e.orientationY.linearRampToValueAtTime(_orientation.y,t),e.orientationZ.linearRampToValueAtTime(_orientation.z,t)}else e.setPosition(_position.x,_position.y,_position.z),e.setOrientation(_orientation.x,_orientation.y,_orientation.z)}}class AudioAnalyser{constructor(t,e=2048){this.analyser=t.context.createAnalyser(),this.analyser.fftSize=e,this.data=new Uint8Array(this.analyser.frequencyBinCount),t.getOutput().connect(this.analyser)}getFrequencyData(){return this.analyser.getByteFrequencyData(this.data),this.data}getAverageFrequency(){let t=0;const e=this.getFrequencyData();for(let n=0;n<e.length;n++)t+=e[n];return t/e.length}}class PropertyMixer{constructor(t,e,n){let i,r,s;switch(this.binding=t,this.valueSize=n,e){case"quaternion":i=this._slerp,r=this._slerpAdditive,s=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(6*n),this._workIndex=5;break;case"string":case"bool":i=this._select,r=this._select,s=this._setAdditiveIdentityOther,this.buffer=new Array(5*n);break;default:i=this._lerp,r=this._lerpAdditive,s=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(5*n)}this._mixBufferRegion=i,this._mixBufferRegionAdditive=r,this._setIdentity=s,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}accumulate(t,e){const n=this.buffer,i=this.valueSize,r=t*i+i;let s=this.cumulativeWeight;if(0===s){for(let t=0;t!==i;++t)n[r+t]=n[t];s=e}else{s+=e;const t=e/s;this._mixBufferRegion(n,r,0,t,i)}this.cumulativeWeight=s}accumulateAdditive(t){const e=this.buffer,n=this.valueSize,i=n*this._addIndex;0===this.cumulativeWeightAdditive&&this._setIdentity(),this._mixBufferRegionAdditive(e,i,0,t,n),this.cumulativeWeightAdditive+=t}apply(t){const e=this.valueSize,n=this.buffer,i=t*e+e,r=this.cumulativeWeight,s=this.cumulativeWeightAdditive,a=this.binding;if(this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,r<1){const t=e*this._origIndex;this._mixBufferRegion(n,i,t,1-r,e)}s>0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let o=e,c=e+e;o!==c;++o)if(n[o]!==n[o+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let r=n,s=i;r!==s;++r)e[r]=e[i+r%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n<e;n++)this.buffer[n]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){const t=this._origIndex*this.valueSize,e=this._addIndex*this.valueSize;for(let n=0;n<this.valueSize;n++)this.buffer[e+n]=this.buffer[t+n]}_select(t,e,n,i,r){if(i>=.5)for(let s=0;s!==r;++s)t[e+s]=t[n+s]}_slerp(t,e,n,i){Quaternion.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;Quaternion.multiplyQuaternionsFlat(t,s,t,e,t,n),Quaternion.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const _RESERVED_CHARS_RE="\\[\\]\\.:\\/",_reservedRe=new RegExp("["+_RESERVED_CHARS_RE+"]","g"),_wordChar="[^"+_RESERVED_CHARS_RE+"]",_wordCharOrDot="[^"+_RESERVED_CHARS_RE.replace("\\.","")+"]",_directoryRe=/((?:WC+[\/:])*)/.source.replace("WC",_wordChar),_nodeRe=/(WCOD+)?/.source.replace("WCOD",_wordCharOrDot),_objectRe=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",_wordChar),_propertyRe=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",_wordChar),_trackRe=new RegExp("^"+_directoryRe+_nodeRe+_objectRe+_propertyRe+"$"),_supportedObjectNames=["material","materials","bones","map"];class Composite{constructor(t,e,n){const i=n||PropertyBinding.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,i)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,i=this._bindings[n];void 0!==i&&i.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,r=n.length;i!==r;++i)n[i].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}}class PropertyBinding{constructor(t,e,n){this.path=e,this.parsedPath=n||PropertyBinding.parseTrackName(e),this.node=PropertyBinding.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new PropertyBinding.Composite(t,e,n):new PropertyBinding(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(_reservedRe,"")}static parseTrackName(t){const e=_trackRe.exec(t);if(null===e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==_supportedObjectNames.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(void 0===e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i<t.length;i++){const r=t[i];if(r.name===e||r.uuid===e)return r;const s=n(r.children);if(s)return s}return null},i=n(t.children);if(i)return i}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(t,e){t[e]=this.targetObject[this.propertyName]}_getValue_array(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)t[e++]=n[i]}_getValue_arrayElement(t,e){t[e]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(t,e){this.resolvedProperty.toArray(t,e)}_setValue_direct(t,e){this.targetObject[this.propertyName]=t[e]}_setValue_direct_setNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++]}_setValue_array_setNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(t,e){this.resolvedProperty[this.propertyIndex]=t[e]}_setValue_arrayElement_setNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(t,e){this.resolvedProperty.fromArray(t,e)}_setValue_fromArray_setNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(t,e){this.bind(),this.getValue(t,e)}_setValue_unbound(t,e){this.bind(),this.setValue(t,e)}bind(){let t=this.node;const e=this.parsedPath,n=e.objectName,i=e.propertyName;let r=e.propertyIndex;if(t||(t=PropertyBinding.findNode(this.rootNode,e.nodeName),this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!t)return void console.warn("THREE.PropertyBinding: No target node found for track: "+this.path+".");if(n){let i=e.objectIndex;switch(n){case"materials":if(!t.material)return void console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);if(!t.material.materials)return void console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);t=t.material.materials;break;case"bones":if(!t.skeleton)return void console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);t=t.skeleton.bones;for(let e=0;e<t.length;e++)if(t[e].name===i){i=e;break}break;case"map":if("map"in t){t=t.map;break}if(!t.material)return void console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);if(!t.material.map)return void console.error("THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.",this);t=t.material.map;break;default:if(void 0===t[n])return void console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);t=t[n]}if(void 0!==i){if(void 0===t[i])return void console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,t);t=t[i]}}const s=t[i];if(void 0===s){const n=e.nodeName;return void console.error("THREE.PropertyBinding: Trying to update property for track: "+n+"."+i+" but it wasn't found.",t)}let a=this.Versioning.None;this.targetObject=t,void 0!==t.needsUpdate?a=this.Versioning.NeedsUpdate:void 0!==t.matrixWorldNeedsUpdate&&(a=this.Versioning.MatrixWorldNeedsUpdate);let o=this.BindingType.Direct;if(void 0!==r){if("morphTargetInfluences"===i){if(!t.geometry)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);if(!t.geometry.morphAttributes)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);void 0!==t.morphTargetDictionary[r]&&(r=t.morphTargetDictionary[r])}o=this.BindingType.ArrayElement,this.resolvedProperty=s,this.propertyIndex=r}else void 0!==s.fromArray&&void 0!==s.toArray?(o=this.BindingType.HasFromToArray,this.resolvedProperty=s):Array.isArray(s)?(o=this.BindingType.EntireArray,this.resolvedProperty=s):this.propertyName=i;this.getValue=this.GetterByBindingType[o],this.setValue=this.SetterByBindingTypeAndVersioning[o][a]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}PropertyBinding.Composite=Composite,PropertyBinding.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},PropertyBinding.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},PropertyBinding.prototype.GetterByBindingType=[PropertyBinding.prototype._getValue_direct,PropertyBinding.prototype._getValue_array,PropertyBinding.prototype._getValue_arrayElement,PropertyBinding.prototype._getValue_toArray],PropertyBinding.prototype.SetterByBindingTypeAndVersioning=[[PropertyBinding.prototype._setValue_direct,PropertyBinding.prototype._setValue_direct_setNeedsUpdate,PropertyBinding.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_array,PropertyBinding.prototype._setValue_array_setNeedsUpdate,PropertyBinding.prototype._setValue_array_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_arrayElement,PropertyBinding.prototype._setValue_arrayElement_setNeedsUpdate,PropertyBinding.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_fromArray,PropertyBinding.prototype._setValue_fromArray_setNeedsUpdate,PropertyBinding.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];class AnimationObjectGroup{constructor(){this.isAnimationObjectGroup=!0,this.uuid=generateUUID(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;const t={};this._indicesByUUID=t;for(let n=0,i=arguments.length;n!==i;++n)t[arguments[n].uuid]=n;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};const e=this;this.stats={objects:{get total(){return e._objects.length},get inUse(){return this.total-e.nCachedObjects_}},get bindingsPerObject(){return e._bindings.length}}}add(){const t=this._objects,e=this._indicesByUUID,n=this._paths,i=this._parsedPaths,r=this._bindings,s=r.length;let a,o=t.length,c=this.nCachedObjects_;for(let l=0,u=arguments.length;l!==u;++l){const u=arguments[l],h=u.uuid;let d=e[h];if(void 0===d){d=o++,e[h]=d,t.push(u);for(let t=0,e=s;t!==e;++t)r[t].push(new PropertyBinding(u,n[t],i[t]))}else if(d<c){a=t[d];const o=--c,l=t[o];e[l.uuid]=d,t[d]=l,e[h]=o,t[o]=u;for(let t=0,e=s;t!==e;++t){const e=r[t],s=e[o];let a=e[d];e[d]=s,void 0===a&&(a=new PropertyBinding(u,n[t],i[t])),e[o]=a}}else t[d]!==a&&console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=c}remove(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_;for(let s=0,a=arguments.length;s!==a;++s){const a=arguments[s],o=a.uuid,c=e[o];if(void 0!==c&&c>=r){const s=r++,l=t[s];e[l.uuid]=c,t[c]=l,e[o]=s,t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[c];e[c]=i,e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,c=e[o];if(void 0!==c)if(delete e[o],c<r){const a=--r,o=t[a],l=--s,u=t[l];e[o.uuid]=c,t[c]=o,e[u.uuid]=a,t[a]=u,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[a],r=e[l];e[c]=i,e[a]=r,e.pop()}}else{const r=--s,a=t[r];r>0&&(e[a.uuid]=c),t[c]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[c]=e[r],e.pop()}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,c=o.length,l=this.nCachedObjects_,u=new Array(c);i=r.length,n[t]=i,s.push(t),a.push(e),r.push(u);for(let h=l,d=o.length;h!==d;++h){const n=o[h];u[h]=new PropertyBinding(n,t,e)}return u}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];e[t[a]]=n,s[n]=o,s.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}}class AnimationAction{constructor(t,e,n=null,i=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=i;const r=e.tracks,s=r.length,a=new Array(s),o={endingStart:ZeroCurvatureEnding,endingEnd:ZeroCurvatureEnding};for(let c=0;c!==s;++c){const t=r[c].createInterpolant(null);a[c]=t,t.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=LoopRepeat,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,i=t._clip.duration,r=i/n,s=n/i;t.warp(1,r,e),this.warp(s,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,r=i.time,s=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=i._lendControlInterpolant(),this._timeScaleInterpolant=a);const o=a.parameterPositions,c=a.sampleValues;return o[0]=r,o[1]=r+n,c[0]=t/s,c[1]=e/s,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled)return void this._updateWeight(t);const r=this._startTime;if(null!==r){const i=(t-r)*n;i<0||0===n?e=0:(this._startTime=null,e=n*i)}e*=this._updateTimeScale(t);const s=this._updateTime(e),a=this._updateWeight(t);if(a>0){const t=this._interpolants,e=this._propertyBindings;if(this.blendMode===AdditiveAnimationBlendMode)for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(s),e[n].accumulateAdditive(a);else for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(s),e[n].accumulate(i,a)}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const s=n===LoopPingPong;if(0===t)return-1===r||!s||1&~r?i:e-i;if(n===LoopOnce){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(s&&!(1&~r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=ZeroSlopeEnding,i.endingEnd=ZeroSlopeEnding):(i.endingStart=t?this.zeroSlopeAtStart?ZeroSlopeEnding:ZeroCurvatureEnding:WrapAroundEnding,i.endingEnd=e?this.zeroSlopeAtEnd?ZeroSlopeEnding:ZeroCurvatureEnding:WrapAroundEnding)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;null===s&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=r,o[0]=e,a[1]=r+t,o[1]=n,this}}const _controlInterpolantsResultBuffer=new Float32Array(1);class AnimationMixer extends EventDispatcher{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,r=i.length,s=t._propertyBindings,a=t._interpolants,o=n.uuid,c=this._bindingsByRootAndName;let l=c[o];void 0===l&&(l={},c[o]=l);for(let u=0;u!==r;++u){const t=i[u],r=t.name;let c=l[r];if(void 0!==c)++c.referenceCount,s[u]=c;else{if(c=s[u],void 0!==c){null===c._cacheIndex&&(++c.referenceCount,this._addInactiveBinding(c,o,r));continue}const i=e&&e._propertyBindings[u].binding.parsedPath;c=new PropertyMixer(PropertyBinding.create(n,r,i),t.ValueTypeName,t.getValueSize()),++c.referenceCount,this._addInactiveBinding(c,o,r),s[u]=c}a[u].resultBuffer=c.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0===n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0===--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return null!==e&&e<this._nActiveActions}_addInactiveAction(t,e,n){const i=this._actions,r=this._actionsByClip;let s=r[e];if(void 0===s)s={knownActions:[t],actionByRoot:{}},t._byClipCacheIndex=0,r[e]=s;else{const e=s.knownActions;t._byClipCacheIndex=e.length,e.push(t)}t._cacheIndex=i.length,i.push(t),s.actionByRoot[n]=t}_removeInactiveAction(t){const e=this._actions,n=e[e.length-1],i=t._cacheIndex;n._cacheIndex=i,e[i]=n,e.pop(),t._cacheIndex=null;const r=t._clip.uuid,s=this._actionsByClip,a=s[r],o=a.knownActions,c=o[o.length-1],l=t._byClipCacheIndex;c._byClipCacheIndex=l,o[l]=c,o.pop(),t._byClipCacheIndex=null;delete a.actionByRoot[(t._localRoot||this._root).uuid],0===o.length&&delete s[r],this._removeInactiveBindingsForAction(t)}_removeInactiveBindingsForAction(t){const e=t._propertyBindings;for(let n=0,i=e.length;n!==i;++n){const t=e[n];0===--t.referenceCount&&this._removeInactiveBinding(t)}}_lendAction(t){const e=this._actions,n=t._cacheIndex,i=this._nActiveActions++,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_takeBackAction(t){const e=this._actions,n=t._cacheIndex,i=--this._nActiveActions,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_addInactiveBinding(t,e,n){const i=this._bindingsByRootAndName,r=this._bindings;let s=i[e];void 0===s&&(s={},i[e]=s),s[n]=t,t._cacheIndex=r.length,r.push(t)}_removeInactiveBinding(t){const e=this._bindings,n=t.binding,i=n.rootNode.uuid,r=n.path,s=this._bindingsByRootAndName,a=s[i],o=e[e.length-1],c=t._cacheIndex;o._cacheIndex=c,e[c]=o,e.pop(),delete a[r],0===Object.keys(a).length&&delete s[i]}_lendBinding(t){const e=this._bindings,n=t._cacheIndex,i=this._nActiveBindings++,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_takeBackBinding(t){const e=this._bindings,n=t._cacheIndex,i=--this._nActiveBindings,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_lendControlInterpolant(){const t=this._controlInterpolants,e=this._nActiveControlInterpolants++;let n=t[e];return void 0===n&&(n=new LinearInterpolant(new Float32Array(2),new Float32Array(2),1,_controlInterpolantsResultBuffer),n.__cacheIndex=e,t[e]=n),n}_takeBackControlInterpolant(t){const e=this._controlInterpolants,n=t.__cacheIndex,i=--this._nActiveControlInterpolants,r=e[i];t.__cacheIndex=i,e[i]=t,r.__cacheIndex=n,e[n]=r}clipAction(t,e,n){const i=e||this._root,r=i.uuid;let s="string"==typeof t?AnimationClip.findByName(i,t):t;const a=null!==s?s.uuid:t,o=this._actionsByClip[a];let c=null;if(void 0===n&&(n=null!==s?s.blendMode:NormalAnimationBlendMode),void 0!==o){const t=o.actionByRoot[r];if(void 0!==t&&t.blendMode===n)return t;c=o.knownActions[0],null===s&&(s=c._clip)}if(null===s)return null;const l=new AnimationAction(this,s,e,n);return this._bindAction(l,c),this._addInactiveAction(l,a,r),l}existingAction(t,e){const n=e||this._root,i=n.uuid,r="string"==typeof t?AnimationClip.findByName(n,t):t,s=r?r.uuid:t,a=this._actionsByClip[s];return void 0!==a&&a.actionByRoot[i]||null}stopAllAction(){const t=this._actions;for(let e=this._nActiveActions-1;e>=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let c=0;c!==n;++c){e[c]._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let c=0;c!==o;++c)a[c].apply(s);return this}setTime(t){this.time=0;for(let e=0;e<this._actions.length;e++)this._actions[e].time=0;return this.update(t)}getRoot(){return this._root}uncacheClip(t){const e=this._actions,n=t.uuid,i=this._actionsByClip,r=i[n];if(void 0!==r){const t=r.knownActions;for(let n=0,i=t.length;n!==i;++n){const i=t[n];this._deactivateAction(i);const r=i._cacheIndex,s=e[e.length-1];i._cacheIndex=null,i._byClipCacheIndex=null,s._cacheIndex=r,e[r]=s,e.pop(),this._removeInactiveBindingsForAction(i)}delete i[n]}}uncacheRoot(t){const e=t.uuid,n=this._actionsByClip;for(const r in n){const t=n[r].actionByRoot[e];void 0!==t&&(this._deactivateAction(t),this._removeInactiveAction(t))}const i=this._bindingsByRootAndName[e];if(void 0!==i)for(const r in i){const t=i[r];t.restoreOriginalState(),this._removeInactiveBinding(t)}}uncacheAction(t,e){const n=this.existingAction(t,e);null!==n&&(this._deactivateAction(n),this._removeInactiveAction(n))}}class Uniform{constructor(t){this.value=t}clone(){return new Uniform(void 0===this.value.clone?this.value:this.value.clone())}}let _id=0;class UniformsGroup extends EventDispatcher{constructor(){super(),this.isUniformsGroup=!0,Object.defineProperty(this,"id",{value:_id++}),this.name="",this.usage=StaticDrawUsage,this.uniforms=[]}add(t){return this.uniforms.push(t),this}remove(t){const e=this.uniforms.indexOf(t);return-1!==e&&this.uniforms.splice(e,1),this}setName(t){return this.name=t,this}setUsage(t){return this.usage=t,this}dispose(){return this.dispatchEvent({type:"dispose"}),this}copy(t){this.name=t.name,this.usage=t.usage;const e=t.uniforms;this.uniforms.length=0;for(let n=0,i=e.length;n<i;n++){const t=Array.isArray(e[n])?e[n]:[e[n]];for(let e=0;e<t.length;e++)this.uniforms.push(t[e].clone())}return this}clone(){return(new this.constructor).copy(this)}}class InstancedInterleavedBuffer extends InterleavedBuffer{constructor(t,e,n=1){super(t,e),this.isInstancedInterleavedBuffer=!0,this.meshPerAttribute=n}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}clone(t){const e=super.clone(t);return e.meshPerAttribute=this.meshPerAttribute,e}toJSON(t){const e=super.toJSON(t);return e.isInstancedInterleavedBuffer=!0,e.meshPerAttribute=this.meshPerAttribute,e}}class GLBufferAttribute{constructor(t,e,n,i,r){this.isGLBufferAttribute=!0,this.name="",this.buffer=t,this.type=e,this.itemSize=n,this.elementSize=i,this.count=r,this.version=0}set needsUpdate(t){!0===t&&this.version++}setBuffer(t){return this.buffer=t,this}setType(t,e){return this.type=t,this.elementSize=e,this}setItemSize(t){return this.itemSize=t,this}setCount(t){return this.count=t,this}}const _matrix=new Matrix4;class Raycaster{constructor(t,e,n=0,i=1/0){this.ray=new Ray(t,e),this.near=n,this.far=i,this.camera=null,this.layers=new Layers,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(t,e){this.ray.set(t,e)}setFromCamera(t,e){e.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(e.matrixWorld),this.ray.direction.set(t.x,t.y,.5).unproject(e).sub(this.ray.origin).normalize(),this.camera=e):e.isOrthographicCamera?(this.ray.origin.set(t.x,t.y,(e.near+e.far)/(e.near-e.far)).unproject(e),this.ray.direction.set(0,0,-1).transformDirection(e.matrixWorld),this.camera=e):console.error("THREE.Raycaster: Unsupported camera type: "+e.type)}setFromXRController(t){return _matrix.identity().extractRotation(t.matrixWorld),this.ray.origin.setFromMatrixPosition(t.matrixWorld),this.ray.direction.set(0,0,-1).applyMatrix4(_matrix),this}intersectObject(t,e=!0,n=[]){return intersect(t,this,n,e),n.sort(ascSort),n}intersectObjects(t,e=!0,n=[]){for(let i=0,r=t.length;i<r;i++)intersect(t[i],this,n,e);return n.sort(ascSort),n}}function ascSort(t,e){return t.distance-e.distance}function intersect(t,e,n,i){let r=!0;if(t.layers.test(e.layers)){!1===t.raycast(e,n)&&(r=!1)}if(!0===r&&!0===i){const i=t.children;for(let t=0,r=i.length;t<r;t++)intersect(i[t],e,n,!0)}}class Spherical{constructor(t=1,e=0,n=0){return this.radius=t,this.phi=e,this.theta=n,this}set(t,e,n){return this.radius=t,this.phi=e,this.theta=n,this}copy(t){return this.radius=t.radius,this.phi=t.phi,this.theta=t.theta,this}makeSafe(){const t=1e-6;return this.phi=Math.max(t,Math.min(Math.PI-t,this.phi)),this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){return this.radius=Math.sqrt(t*t+e*e+n*n),0===this.radius?(this.theta=0,this.phi=0):(this.theta=Math.atan2(t,n),this.phi=Math.acos(clamp$1(e/this.radius,-1,1))),this}clone(){return(new this.constructor).copy(this)}}class Cylindrical{constructor(t=1,e=0,n=0){return this.radius=t,this.theta=e,this.y=n,this}set(t,e,n){return this.radius=t,this.theta=e,this.y=n,this}copy(t){return this.radius=t.radius,this.theta=t.theta,this.y=t.y,this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){return this.radius=Math.sqrt(t*t+n*n),this.theta=Math.atan2(t,n),this.y=e,this}clone(){return(new this.constructor).copy(this)}}const _vector$4=new Vector2;class Box2{constructor(t=new Vector2(1/0,1/0),e=new Vector2(-1/0,-1/0)){this.isBox2=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=_vector$4.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y}getCenter(t){return this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,_vector$4).distanceTo(t)}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const _startP=new Vector3,_startEnd=new Vector3;class Line3{constructor(t=new Vector3,e=new Vector3){this.start=t,this.end=e}set(t,e){return this.start.copy(t),this.end.copy(e),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){_startP.subVectors(t,this.start),_startEnd.subVectors(this.end,this.start);const n=_startEnd.dot(_startEnd);let i=_startEnd.dot(_startP)/n;return e&&(i=clamp$1(i,0,1)),i}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}const _vector$3=new Vector3;class SpotLightHelper extends Object3D{constructor(t,e){super(),this.light=t,this.matrixAutoUpdate=!1,this.color=e,this.type="SpotLightHelper";const n=new BufferGeometry,i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let s=0,a=1,o=32;s<o;s++,a++){const t=s/o*Math.PI*2,e=a/o*Math.PI*2;i.push(Math.cos(t),Math.sin(t),1,Math.cos(e),Math.sin(e),1)}n.setAttribute("position",new Float32BufferAttribute(i,3));const r=new LineBasicMaterial({fog:!1,toneMapped:!1});this.cone=new LineSegments(n,r),this.add(this.cone),this.update()}dispose(){this.cone.geometry.dispose(),this.cone.material.dispose()}update(){this.light.updateWorldMatrix(!0,!1),this.light.target.updateWorldMatrix(!0,!1),this.parent?(this.parent.updateWorldMatrix(!0),this.matrix.copy(this.parent.matrixWorld).invert().multiply(this.light.matrixWorld)):this.matrix.copy(this.light.matrixWorld),this.matrixWorld.copy(this.light.matrixWorld);const t=this.light.distance?this.light.distance:1e3,e=t*Math.tan(this.light.angle);this.cone.scale.set(e,e,t),_vector$3.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(_vector$3),void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}}const _vector$2=new Vector3,_boneMatrix=new Matrix4,_matrixWorldInv=new Matrix4;class SkeletonHelper extends LineSegments{constructor(t){const e=getBoneList(t),n=new BufferGeometry,i=[],r=[],s=new Color(0,0,1),a=new Color(0,1,0);for(let o=0;o<e.length;o++){const t=e[o];t.parent&&t.parent.isBone&&(i.push(0,0,0),i.push(0,0,0),r.push(s.r,s.g,s.b),r.push(a.r,a.g,a.b))}n.setAttribute("position",new Float32BufferAttribute(i,3)),n.setAttribute("color",new Float32BufferAttribute(r,3));super(n,new LineBasicMaterial({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0})),this.isSkeletonHelper=!0,this.type="SkeletonHelper",this.root=t,this.bones=e,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1}updateMatrixWorld(t){const e=this.bones,n=this.geometry,i=n.getAttribute("position");_matrixWorldInv.copy(this.root.matrixWorld).invert();for(let r=0,s=0;r<e.length;r++){const t=e[r];t.parent&&t.parent.isBone&&(_boneMatrix.multiplyMatrices(_matrixWorldInv,t.matrixWorld),_vector$2.setFromMatrixPosition(_boneMatrix),i.setXYZ(s,_vector$2.x,_vector$2.y,_vector$2.z),_boneMatrix.multiplyMatrices(_matrixWorldInv,t.parent.matrixWorld),_vector$2.setFromMatrixPosition(_boneMatrix),i.setXYZ(s+1,_vector$2.x,_vector$2.y,_vector$2.z),s+=2)}n.getAttribute("position").needsUpdate=!0,super.updateMatrixWorld(t)}dispose(){this.geometry.dispose(),this.material.dispose()}}function getBoneList(t){const e=[];!0===t.isBone&&e.push(t);for(let n=0;n<t.children.length;n++)e.push.apply(e,getBoneList(t.children[n]));return e}class PointLightHelper extends Mesh{constructor(t,e,n){super(new SphereGeometry(e,4,2),new MeshBasicMaterial({wireframe:!0,fog:!1,toneMapped:!1})),this.light=t,this.color=n,this.type="PointLightHelper",this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}dispose(){this.geometry.dispose(),this.material.dispose()}update(){this.light.updateWorldMatrix(!0,!1),void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)}}const _vector$1$1=new Vector3,_color1=new Color,_color2=new Color;class HemisphereLightHelper extends Object3D{constructor(t,e,n){super(),this.light=t,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n,this.type="HemisphereLightHelper";const i=new OctahedronGeometry(e);i.rotateY(.5*Math.PI),this.material=new MeshBasicMaterial({wireframe:!0,fog:!1,toneMapped:!1}),void 0===this.color&&(this.material.vertexColors=!0);const r=i.getAttribute("position"),s=new Float32Array(3*r.count);i.setAttribute("color",new BufferAttribute(s,3)),this.add(new Mesh(i,this.material)),this.update()}dispose(){this.children[0].geometry.dispose(),this.children[0].material.dispose()}update(){const t=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{const e=t.geometry.getAttribute("color");_color1.copy(this.light.color),_color2.copy(this.light.groundColor);for(let t=0,n=e.count;t<n;t++){const i=t<n/2?_color1:_color2;e.setXYZ(t,i.r,i.g,i.b)}e.needsUpdate=!0}this.light.updateWorldMatrix(!0,!1),t.lookAt(_vector$1$1.setFromMatrixPosition(this.light.matrixWorld).negate())}}class GridHelper extends LineSegments{constructor(t=10,e=10,n=4473924,i=8947848){n=new Color(n),i=new Color(i);const r=e/2,s=t/e,a=t/2,o=[],c=[];for(let u=0,h=0,d=-a;u<=e;u++,d+=s){o.push(-a,0,d,a,0,d),o.push(d,0,-a,d,0,a);const t=u===r?n:i;t.toArray(c,h),h+=3,t.toArray(c,h),h+=3,t.toArray(c,h),h+=3,t.toArray(c,h),h+=3}const l=new BufferGeometry;l.setAttribute("position",new Float32BufferAttribute(o,3)),l.setAttribute("color",new Float32BufferAttribute(c,3));super(l,new LineBasicMaterial({vertexColors:!0,toneMapped:!1})),this.type="GridHelper"}dispose(){this.geometry.dispose(),this.material.dispose()}}class PolarGridHelper extends LineSegments{constructor(t=10,e=16,n=8,i=64,r=4473924,s=8947848){r=new Color(r),s=new Color(s);const a=[],o=[];if(e>1)for(let l=0;l<e;l++){const n=l/e*(2*Math.PI),i=Math.sin(n)*t,c=Math.cos(n)*t;a.push(0,0,0),a.push(i,0,c);const u=1&l?r:s;o.push(u.r,u.g,u.b),o.push(u.r,u.g,u.b)}for(let l=0;l<n;l++){const e=1&l?r:s,c=t-t/n*l;for(let t=0;t<i;t++){let n=t/i*(2*Math.PI),r=Math.sin(n)*c,s=Math.cos(n)*c;a.push(r,0,s),o.push(e.r,e.g,e.b),n=(t+1)/i*(2*Math.PI),r=Math.sin(n)*c,s=Math.cos(n)*c,a.push(r,0,s),o.push(e.r,e.g,e.b)}}const c=new BufferGeometry;c.setAttribute("position",new Float32BufferAttribute(a,3)),c.setAttribute("color",new Float32BufferAttribute(o,3));super(c,new LineBasicMaterial({vertexColors:!0,toneMapped:!1})),this.type="PolarGridHelper"}dispose(){this.geometry.dispose(),this.material.dispose()}}const _v1=new Vector3,_v2=new Vector3,_v3=new Vector3;class DirectionalLightHelper extends Object3D{constructor(t,e,n){super(),this.light=t,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n,this.type="DirectionalLightHelper",void 0===e&&(e=1);let i=new BufferGeometry;i.setAttribute("position",new Float32BufferAttribute([-e,e,0,e,e,0,e,-e,0,-e,-e,0,-e,e,0],3));const r=new LineBasicMaterial({fog:!1,toneMapped:!1});this.lightPlane=new Line(i,r),this.add(this.lightPlane),i=new BufferGeometry,i.setAttribute("position",new Float32BufferAttribute([0,0,0,0,0,1],3)),this.targetLine=new Line(i,r),this.add(this.targetLine),this.update()}dispose(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()}update(){this.light.updateWorldMatrix(!0,!1),this.light.target.updateWorldMatrix(!0,!1),_v1.setFromMatrixPosition(this.light.matrixWorld),_v2.setFromMatrixPosition(this.light.target.matrixWorld),_v3.subVectors(_v2,_v1),this.lightPlane.lookAt(_v2),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(_v2),this.targetLine.scale.z=_v3.length()}}const _vector$d=new Vector3,_camera$1=new Camera;class CameraHelper extends LineSegments{constructor(t){const e=new BufferGeometry,n=new LineBasicMaterial({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],r=[],s={};function a(t,e){o(t),o(e)}function o(t){i.push(0,0,0),r.push(0,0,0),void 0===s[t]&&(s[t]=[]),s[t].push(i.length/3-1)}a("n1","n2"),a("n2","n4"),a("n4","n3"),a("n3","n1"),a("f1","f2"),a("f2","f4"),a("f4","f3"),a("f3","f1"),a("n1","f1"),a("n2","f2"),a("n3","f3"),a("n4","f4"),a("p","n1"),a("p","n2"),a("p","n3"),a("p","n4"),a("u1","u2"),a("u2","u3"),a("u3","u1"),a("c","t"),a("p","c"),a("cn1","cn2"),a("cn3","cn4"),a("cf1","cf2"),a("cf3","cf4"),e.setAttribute("position",new Float32BufferAttribute(i,3)),e.setAttribute("color",new Float32BufferAttribute(r,3)),super(e,n),this.type="CameraHelper",this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update();const c=new Color(16755200),l=new Color(16711680),u=new Color(43775),h=new Color(16777215),d=new Color(3355443);this.setColors(c,l,u,h,d)}setColors(t,e,n,i,r){const s=this.geometry.getAttribute("color");s.setXYZ(0,t.r,t.g,t.b),s.setXYZ(1,t.r,t.g,t.b),s.setXYZ(2,t.r,t.g,t.b),s.setXYZ(3,t.r,t.g,t.b),s.setXYZ(4,t.r,t.g,t.b),s.setXYZ(5,t.r,t.g,t.b),s.setXYZ(6,t.r,t.g,t.b),s.setXYZ(7,t.r,t.g,t.b),s.setXYZ(8,t.r,t.g,t.b),s.setXYZ(9,t.r,t.g,t.b),s.setXYZ(10,t.r,t.g,t.b),s.setXYZ(11,t.r,t.g,t.b),s.setXYZ(12,t.r,t.g,t.b),s.setXYZ(13,t.r,t.g,t.b),s.setXYZ(14,t.r,t.g,t.b),s.setXYZ(15,t.r,t.g,t.b),s.setXYZ(16,t.r,t.g,t.b),s.setXYZ(17,t.r,t.g,t.b),s.setXYZ(18,t.r,t.g,t.b),s.setXYZ(19,t.r,t.g,t.b),s.setXYZ(20,t.r,t.g,t.b),s.setXYZ(21,t.r,t.g,t.b),s.setXYZ(22,t.r,t.g,t.b),s.setXYZ(23,t.r,t.g,t.b),s.setXYZ(24,e.r,e.g,e.b),s.setXYZ(25,e.r,e.g,e.b),s.setXYZ(26,e.r,e.g,e.b),s.setXYZ(27,e.r,e.g,e.b),s.setXYZ(28,e.r,e.g,e.b),s.setXYZ(29,e.r,e.g,e.b),s.setXYZ(30,e.r,e.g,e.b),s.setXYZ(31,e.r,e.g,e.b),s.setXYZ(32,n.r,n.g,n.b),s.setXYZ(33,n.r,n.g,n.b),s.setXYZ(34,n.r,n.g,n.b),s.setXYZ(35,n.r,n.g,n.b),s.setXYZ(36,n.r,n.g,n.b),s.setXYZ(37,n.r,n.g,n.b),s.setXYZ(38,i.r,i.g,i.b),s.setXYZ(39,i.r,i.g,i.b),s.setXYZ(40,r.r,r.g,r.b),s.setXYZ(41,r.r,r.g,r.b),s.setXYZ(42,r.r,r.g,r.b),s.setXYZ(43,r.r,r.g,r.b),s.setXYZ(44,r.r,r.g,r.b),s.setXYZ(45,r.r,r.g,r.b),s.setXYZ(46,r.r,r.g,r.b),s.setXYZ(47,r.r,r.g,r.b),s.setXYZ(48,r.r,r.g,r.b),s.setXYZ(49,r.r,r.g,r.b),s.needsUpdate=!0}update(){const t=this.geometry,e=this.pointMap;_camera$1.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),setPoint("c",e,t,_camera$1,0,0,-1),setPoint("t",e,t,_camera$1,0,0,1),setPoint("n1",e,t,_camera$1,-1,-1,-1),setPoint("n2",e,t,_camera$1,1,-1,-1),setPoint("n3",e,t,_camera$1,-1,1,-1),setPoint("n4",e,t,_camera$1,1,1,-1),setPoint("f1",e,t,_camera$1,-1,-1,1),setPoint("f2",e,t,_camera$1,1,-1,1),setPoint("f3",e,t,_camera$1,-1,1,1),setPoint("f4",e,t,_camera$1,1,1,1),setPoint("u1",e,t,_camera$1,.7,1.1,-1),setPoint("u2",e,t,_camera$1,-.7,1.1,-1),setPoint("u3",e,t,_camera$1,0,2,-1),setPoint("cf1",e,t,_camera$1,-1,0,1),setPoint("cf2",e,t,_camera$1,1,0,1),setPoint("cf3",e,t,_camera$1,0,-1,1),setPoint("cf4",e,t,_camera$1,0,1,1),setPoint("cn1",e,t,_camera$1,-1,0,-1),setPoint("cn2",e,t,_camera$1,1,0,-1),setPoint("cn3",e,t,_camera$1,0,-1,-1),setPoint("cn4",e,t,_camera$1,0,1,-1),t.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}}function setPoint(t,e,n,i,r,s,a){_vector$d.set(r,s,a).unproject(i);const o=e[t];if(void 0!==o){const t=n.getAttribute("position");for(let e=0,n=o.length;e<n;e++)t.setXYZ(o[e],_vector$d.x,_vector$d.y,_vector$d.z)}}const _box$5=new Box3;class BoxHelper extends LineSegments{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new Float32Array(24),r=new BufferGeometry;r.setIndex(new BufferAttribute(n,1)),r.setAttribute("position",new BufferAttribute(i,3)),super(r,new LineBasicMaterial({color:e,toneMapped:!1})),this.object=t,this.type="BoxHelper",this.matrixAutoUpdate=!1,this.update()}update(t){if(void 0!==t&&console.warn("THREE.BoxHelper: .update() has no longer arguments."),void 0!==this.object&&_box$5.setFromObject(this.object),_box$5.isEmpty())return;const e=_box$5.min,n=_box$5.max,i=this.geometry.attributes.position,r=i.array;r[0]=n.x,r[1]=n.y,r[2]=n.z,r[3]=e.x,r[4]=n.y,r[5]=n.z,r[6]=e.x,r[7]=e.y,r[8]=n.z,r[9]=n.x,r[10]=e.y,r[11]=n.z,r[12]=n.x,r[13]=n.y,r[14]=e.z,r[15]=e.x,r[16]=n.y,r[17]=e.z,r[18]=e.x,r[19]=e.y,r[20]=e.z,r[21]=n.x,r[22]=e.y,r[23]=e.z,i.needsUpdate=!0,this.geometry.computeBoundingSphere()}setFromObject(t){return this.object=t,this.update(),this}copy(t,e){return super.copy(t,e),this.object=t.object,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class Box3Helper extends LineSegments{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new BufferGeometry;i.setIndex(new BufferAttribute(n,1)),i.setAttribute("position",new Float32BufferAttribute([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)),super(i,new LineBasicMaterial({color:e,toneMapped:!1})),this.box=t,this.type="Box3Helper",this.geometry.computeBoundingSphere()}updateMatrixWorld(t){const e=this.box;e.isEmpty()||(e.getCenter(this.position),e.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(t))}dispose(){this.geometry.dispose(),this.material.dispose()}}class PlaneHelper extends Line{constructor(t,e=1,n=16776960){const i=n,r=new BufferGeometry;r.setAttribute("position",new Float32BufferAttribute([1,-1,0,-1,1,0,-1,-1,0,1,1,0,-1,1,0,-1,-1,0,1,-1,0,1,1,0],3)),r.computeBoundingSphere(),super(r,new LineBasicMaterial({color:i,toneMapped:!1})),this.type="PlaneHelper",this.plane=t,this.size=e;const s=new BufferGeometry;s.setAttribute("position",new Float32BufferAttribute([1,1,0,-1,1,0,-1,-1,0,1,1,0,-1,-1,0,1,-1,0],3)),s.computeBoundingSphere(),this.add(new Mesh(s,new MeshBasicMaterial({color:i,opacity:.2,transparent:!0,depthWrite:!1,toneMapped:!1})))}updateMatrixWorld(t){this.position.set(0,0,0),this.scale.set(.5*this.size,.5*this.size,1),this.lookAt(this.plane.normal),this.translateZ(-this.plane.constant),super.updateMatrixWorld(t)}dispose(){this.geometry.dispose(),this.material.dispose(),this.children[0].geometry.dispose(),this.children[0].material.dispose()}}const _axis=new Vector3;let _lineGeometry,_coneGeometry;class ArrowHelper extends Object3D{constructor(t=new Vector3(0,0,1),e=new Vector3(0,0,0),n=1,i=16776960,r=.2*n,s=.2*r){super(),this.type="ArrowHelper",void 0===_lineGeometry&&(_lineGeometry=new BufferGeometry,_lineGeometry.setAttribute("position",new Float32BufferAttribute([0,0,0,0,1,0],3)),_coneGeometry=new CylinderGeometry(0,.5,1,5,1),_coneGeometry.translate(0,-.5,0)),this.position.copy(e),this.line=new Line(_lineGeometry,new LineBasicMaterial({color:i,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new Mesh(_coneGeometry,new MeshBasicMaterial({color:i,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(n,r,s)}setDirection(t){if(t.y>.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{_axis.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(_axis,e)}}setLength(t,e=.2*t,n=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class AxesHelper extends LineSegments{constructor(t=1){const e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t],n=new BufferGeometry;n.setAttribute("position",new Float32BufferAttribute(e,3)),n.setAttribute("color",new Float32BufferAttribute([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));super(n,new LineBasicMaterial({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(t,e,n){const i=new Color,r=this.geometry.attributes.color.array;return i.set(t),i.toArray(r,0),i.toArray(r,3),i.set(e),i.toArray(r,6),i.toArray(r,9),i.set(n),i.toArray(r,12),i.toArray(r,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class ShapePath{constructor(){this.type="ShapePath",this.color=new Color,this.subPaths=[],this.currentPath=null}moveTo(t,e){return this.currentPath=new Path,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath.lineTo(t,e),this}quadraticCurveTo(t,e,n,i){return this.currentPath.quadraticCurveTo(t,e,n,i),this}bezierCurveTo(t,e,n,i,r,s){return this.currentPath.bezierCurveTo(t,e,n,i,r,s),this}splineThru(t){return this.currentPath.splineThru(t),this}toShapes(t){function e(t,e){const n=e.length;let i=!1;for(let r=n-1,s=0;s<n;r=s++){let n=e[r],a=e[s],o=a.x-n.x,c=a.y-n.y;if(Math.abs(c)>Number.EPSILON){if(c<0&&(n=e[s],o=-o,a=e[r],c=-c),t.y<n.y||t.y>a.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=c*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const n=ShapeUtils.isClockWise,i=this.subPaths;if(0===i.length)return[];let r,s,a;const o=[];if(1===i.length)return s=i[0],a=new Shape,a.curves=s.curves,o.push(a),o;let c=!n(i[0].getPoints());c=t?!c:c;const l=[],u=[];let h,d,p=[],f=0;u[f]=void 0,p[f]=[];for(let m=0,g=i.length;m<g;m++)s=i[m],h=s.getPoints(),r=n(h),r=t?!r:r,r?(!c&&u[f]&&f++,u[f]={s:new Shape,p:h},u[f].s.curves=s.curves,c&&f++,p[f]=[]):p[f].push({h:s,p:h[0]});if(!u[0])return function(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n],r=new Shape;r.curves=i.curves,e.push(r)}return e}(i);if(u.length>1){let t=!1,n=0;for(let e=0,i=u.length;e<i;e++)l[e]=[];for(let i=0,r=u.length;i<r;i++){const r=p[i];for(let s=0;s<r.length;s++){const a=r[s];let o=!0;for(let r=0;r<u.length;r++)e(a.p,u[r].p)&&(i!==r&&n++,o?(o=!1,l[r].push(a)):t=!0);o&&l[i].push(a)}}n>0&&!1===t&&(p=l)}for(let m=0,g=u.length;m<g;m++){a=u[m].s,o.push(a),d=p[m];for(let t=0,e=d.length;t<e;t++)a.holes.push(d[t].h)}return o}}class WebGLMultipleRenderTargets extends WebGLRenderTarget{constructor(t=1,e=1,n=1,i={}){console.warn('THREE.WebGLMultipleRenderTargets has been deprecated and will be removed in r172. Use THREE.WebGLRenderTarget and set the "count" parameter to enable MRT.'),super(t,e,{...i,count:n}),this.isWebGLMultipleRenderTargets=!0}get texture(){return this.textures}}"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:REVISION}})),"undefined"!=typeof window&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=REVISION);const J$k=Object.freeze(Object.defineProperty({__proto__:null,ACESFilmicToneMapping,AddEquation,AddOperation,AdditiveAnimationBlendMode,AdditiveBlending,AgXToneMapping,AlphaFormat,AlwaysCompare,AlwaysDepth,AlwaysStencilFunc,AmbientLight,AnimationAction,AnimationClip,AnimationLoader,AnimationMixer,AnimationObjectGroup,AnimationUtils,ArcCurve,ArrayCamera,ArrowHelper,AttachedBindMode,Audio:Audio$1,AudioAnalyser,AudioContext:AudioContext$1,AudioListener,AudioLoader,AxesHelper,BackSide,BasicDepthPacking,BasicShadowMap,BatchedMesh,Bone,BooleanKeyframeTrack,Box2,Box3,Box3Helper,BoxGeometry,BoxHelper,BufferAttribute,BufferGeometry,BufferGeometryLoader,ByteType,Cache,Camera,CameraHelper,CanvasTexture,CapsuleGeometry,CatmullRomCurve3,CineonToneMapping,CircleGeometry,ClampToEdgeWrapping,Clock,Color,ColorKeyframeTrack,ColorManagement,CompressedArrayTexture,CompressedCubeTexture,CompressedTexture,CompressedTextureLoader,ConeGeometry,ConstantAlphaFactor,ConstantColorFactor,CubeCamera,CubeReflectionMapping,CubeRefractionMapping,CubeTexture,CubeTextureLoader,CubeUVReflectionMapping,CubicBezierCurve,CubicBezierCurve3,CubicInterpolant,CullFaceBack,CullFaceFront,CullFaceFrontBack,CullFaceNone,Curve,CurvePath,CustomBlending,CustomToneMapping,CylinderGeometry,Cylindrical,Data3DTexture,DataArrayTexture,DataTexture,DataTextureLoader,DataUtils,DecrementStencilOp,DecrementWrapStencilOp,DefaultLoadingManager,DepthFormat,DepthStencilFormat,DepthTexture,DetachedBindMode,DirectionalLight,DirectionalLightHelper,DiscreteInterpolant,DisplayP3ColorSpace,DodecahedronGeometry,DoubleSide,DstAlphaFactor,DstColorFactor,DynamicCopyUsage,DynamicDrawUsage,DynamicReadUsage,EdgesGeometry,EllipseCurve,EqualCompare,EqualDepth,EqualStencilFunc,EquirectangularReflectionMapping,EquirectangularRefractionMapping,Euler,EventDispatcher,ExtrudeGeometry,FileLoader,Float16BufferAttribute,Float32BufferAttribute,FloatType,Fog,FogExp2,FramebufferTexture,FrontSide,Frustum,GLBufferAttribute,GLSL1,GLSL3,GreaterCompare,GreaterDepth,GreaterEqualCompare,GreaterEqualDepth,GreaterEqualStencilFunc,GreaterStencilFunc,GridHelper,Group:Group$1,HalfFloatType,HemisphereLight,HemisphereLightHelper,IcosahedronGeometry,ImageBitmapLoader,ImageLoader,ImageUtils,IncrementStencilOp,IncrementWrapStencilOp,InstancedBufferAttribute,InstancedBufferGeometry,InstancedInterleavedBuffer,InstancedMesh,Int16BufferAttribute,Int32BufferAttribute,Int8BufferAttribute,IntType,InterleavedBuffer,InterleavedBufferAttribute,Interpolant,InterpolateDiscrete,InterpolateLinear,InterpolateSmooth,InvertStencilOp,KeepStencilOp,KeyframeTrack,LOD,LatheGeometry,Layers,LessCompare,LessDepth,LessEqualCompare,LessEqualDepth,LessEqualStencilFunc,LessStencilFunc,Light,LightProbe,Line,Line3,LineBasicMaterial,LineCurve,LineCurve3,LineDashedMaterial,LineLoop,LineSegments,LinearDisplayP3ColorSpace,LinearFilter,LinearInterpolant,LinearMipMapLinearFilter,LinearMipMapNearestFilter,LinearMipmapLinearFilter,LinearMipmapNearestFilter,LinearSRGBColorSpace,LinearToneMapping,LinearTransfer,Loader,LoaderUtils,LoadingManager,LoopOnce,LoopPingPong,LoopRepeat,LuminanceAlphaFormat,LuminanceFormat,MOUSE,Material,MaterialLoader,MathUtils,Matrix3,Matrix4,MaxEquation,Mesh,MeshBasicMaterial,MeshDepthMaterial,MeshDistanceMaterial,MeshLambertMaterial,MeshMatcapMaterial,MeshNormalMaterial,MeshPhongMaterial,MeshPhysicalMaterial,MeshStandardMaterial,MeshToonMaterial,MinEquation,MirroredRepeatWrapping,MixOperation,MultiplyBlending,MultiplyOperation,NearestFilter,NearestMipMapLinearFilter,NearestMipMapNearestFilter,NearestMipmapLinearFilter,NearestMipmapNearestFilter,NeutralToneMapping,NeverCompare,NeverDepth,NeverStencilFunc,NoBlending,NoColorSpace,NoToneMapping,NormalAnimationBlendMode,NormalBlending,NotEqualCompare,NotEqualDepth,NotEqualStencilFunc,NumberKeyframeTrack,Object3D,ObjectLoader,ObjectSpaceNormalMap,OctahedronGeometry,OneFactor,OneMinusConstantAlphaFactor,OneMinusConstantColorFactor,OneMinusDstAlphaFactor,OneMinusDstColorFactor,OneMinusSrcAlphaFactor,OneMinusSrcColorFactor,OrthographicCamera,P3Primaries,PCFShadowMap,PCFSoftShadowMap,PMREMGenerator,Path,PerspectiveCamera,Plane,PlaneGeometry,PlaneHelper,PointLight,PointLightHelper,Points,PointsMaterial,PolarGridHelper,PolyhedronGeometry,PositionalAudio,PropertyBinding,PropertyMixer,QuadraticBezierCurve,QuadraticBezierCurve3,Quaternion,QuaternionKeyframeTrack,QuaternionLinearInterpolant,RED_GREEN_RGTC2_Format,RED_RGTC1_Format,REVISION,RGBADepthPacking,RGBAFormat,RGBAIntegerFormat,RGBA_ASTC_10x10_Format,RGBA_ASTC_10x5_Format,RGBA_ASTC_10x6_Format,RGBA_ASTC_10x8_Format,RGBA_ASTC_12x10_Format,RGBA_ASTC_12x12_Format,RGBA_ASTC_4x4_Format,RGBA_ASTC_5x4_Format,RGBA_ASTC_5x5_Format,RGBA_ASTC_6x5_Format,RGBA_ASTC_6x6_Format,RGBA_ASTC_8x5_Format,RGBA_ASTC_8x6_Format,RGBA_ASTC_8x8_Format,RGBA_BPTC_Format,RGBA_ETC2_EAC_Format,RGBA_PVRTC_2BPPV1_Format,RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT1_Format,RGBA_S3TC_DXT3_Format,RGBA_S3TC_DXT5_Format,RGBFormat,RGBIntegerFormat,RGB_BPTC_SIGNED_Format,RGB_BPTC_UNSIGNED_Format,RGB_ETC1_Format,RGB_ETC2_Format,RGB_PVRTC_2BPPV1_Format,RGB_PVRTC_4BPPV1_Format,RGB_S3TC_DXT1_Format,RGFormat,RGIntegerFormat,RawShaderMaterial,Ray,Raycaster,Rec709Primaries,RectAreaLight,RedFormat,RedIntegerFormat,ReinhardToneMapping,RenderTarget,RepeatWrapping,ReplaceStencilOp,ReverseSubtractEquation,RingGeometry,SIGNED_RED_GREEN_RGTC2_Format,SIGNED_RED_RGTC1_Format,SRGBColorSpace,SRGBTransfer,Scene,ShaderChunk,ShaderLib,ShaderMaterial,ShadowMaterial,Shape,ShapeGeometry,ShapePath,ShapeUtils,ShortType,Skeleton,SkeletonHelper,SkinnedMesh,Source,Sphere,SphereGeometry,Spherical,SphericalHarmonics3,SplineCurve,SpotLight,SpotLightHelper,Sprite,SpriteMaterial,SrcAlphaFactor,SrcAlphaSaturateFactor,SrcColorFactor,StaticCopyUsage,StaticDrawUsage,StaticReadUsage,StereoCamera,StreamCopyUsage,StreamDrawUsage,StreamReadUsage,StringKeyframeTrack,SubtractEquation,SubtractiveBlending,TOUCH,TangentSpaceNormalMap,TetrahedronGeometry,Texture,TextureLoader,TextureUtils,TorusGeometry,TorusKnotGeometry,Triangle,TriangleFanDrawMode,TriangleStripDrawMode,TrianglesDrawMode,TubeGeometry,UVMapping,Uint16BufferAttribute,Uint32BufferAttribute,Uint8BufferAttribute,Uint8ClampedBufferAttribute,Uniform,UniformsGroup,UniformsLib,UniformsUtils,UnsignedByteType,UnsignedInt248Type,UnsignedInt5999Type,UnsignedIntType,UnsignedShort4444Type,UnsignedShort5551Type,UnsignedShortType,VSMShadowMap,Vector2,Vector3,Vector4,VectorKeyframeTrack,VideoTexture,WebGL3DRenderTarget,WebGLArrayRenderTarget,WebGLCoordinateSystem,WebGLCubeRenderTarget,WebGLMultipleRenderTargets,WebGLRenderTarget,WebGLRenderer,WebGLUtils,WebGPUCoordinateSystem,WireframeGeometry,WrapAroundEnding,ZeroCurvatureEnding,ZeroFactor,ZeroSlopeEnding,ZeroStencilOp,createCanvasElement},Symbol.toStringTag,{value:"Module"}));var o$9=N$I;function N$I(t,e){var n=E$I();return(N$I=function(t,e){return n[t-=382]})(t,e)}function E$I(){var t=["18JSeeQc","iHoAf","sqrt","2582312ylRznC","0|1|2|3|4","__colorSpace","1466030qEYdxk","concat","acos","694575HrcGSC","uTqvg","XXyRl","DXbxn","colorSpace","map","flat","prototype","disposeBoundsTree","mEiNE","6oKuvVQ","dot","forEach","_colorSpace","computeBoundsTree","wkiwE","7913097xQscpP","isArray","RJUNl","parent","type","lengthSq","split","dispose","DEFAULT_UP","_inScene","children","angleTo","979447qRksuj","1175166hpUVbw","XhlhZ","8JcoLjA","material","dispatchEvent","remove","clamp","23887100ddGJqg","Scene","geometry","slice","bJBXc","defineProperty","reduce"];return(E$I=function(){return t})()}!function(t,e){for(var n=N$I,i=t();;)try{if(604793===-parseInt(n(398))/1+-parseInt(n(427))/2*(-parseInt(n(408))/3)+-parseInt(n(392))/4+-parseInt(n(395))/5*(parseInt(n(389))/6)+parseInt(n(426))/7*(parseInt(n(429))/8)+-parseInt(n(414))/9+parseInt(n(382))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$I),Object3D[o$9(422)]=Object3D[o$9(405)].up=new Vector3(0,0,1),BufferGeometry[o$9(405)][o$9(412)]=()=>{},BufferGeometry[o$9(405)][o$9(406)]=()=>{},Object3D[o$9(405)][o$9(421)]=function(){for(var t=o$9,e={iHoAf:t(393),RJUNl:function(t,e){return t instanceof e},uTqvg:t(421)},n=e[t(390)][t(420)]("|"),i=0;;){switch(n[i++]){case"0":this[t(417)]&&this[t(417)][t(432)](this);continue;case"1":this[t(384)]&&this[t(384)][t(421)]();continue;case"2":this[t(430)]&&(e[t(416)](this[t(430)],Array)?this[t(430)][t(410)](e=>{var n=t;e[n(403)]&&e[n(403)][n(421)](),e[n(421)]()}):(this[t(430)][t(403)]&&this[t(430)][t(403)][t(421)](),this[t(430)][t(421)]()));continue;case"3":this[t(424)][t(385)]()[t(410)](e=>e[t(421)]&&e[t(421)]());continue;case"4":this[t(431)]({type:e[t(399)]});continue}break}},Object[o$9(387)](Object3D[o$9(405)],o$9(423),{get(){var t,e,n=o$9,i={wkiwE:function(t,e){return t===e},DXbxn:n(383)};return i[n(413)](this[n(418)],i[n(401)])||i[n(413)](null==(t=this[n(417)])?void 0:t[n(418)],i[n(401)])||(null==(e=this[n(417)])?void 0:e[n(423)])}}),Object[o$9(387)](Texture[o$9(405)],o$9(402),{get(){var t=o$9;return{XhlhZ:function(t,e){return t!==e}}[t(428)](this[t(394)],void 0)?this[t(394)]:this[t(411)]||SRGBColorSpace},set(t){var e=o$9;this[e(411)]={XXyRl:function(t,e){return t||e}}[e(400)](t,SRGBColorSpace)}}),Vector2[o$9(405)][o$9(425)]=function(t){var e=o$9,n={mEiNE:function(t,e){return t/e},bJBXc:function(t,e){return t*e}},i=n[e(407)](this[e(409)](t),Math[e(391)](n[e(386)](this[e(419)](),t[e(419)]())));return Math[e(397)](MathUtils[e(433)](i,-1,1))},Array[o$9(405)][o$9(404)]||(Array[o$9(405)][o$9(404)]=function(){var t=o$9;return this[t(388)]((e,n)=>e[t(396)](Array[t(415)](n)?n[t(404)]():n),[])});var Easing=Object.freeze({Linear:Object.freeze({None:function(t){return t},In:function(t){return this.None(t)},Out:function(t){return this.None(t)},InOut:function(t){return this.None(t)}}),Quadratic:Object.freeze({In:function(t){return t*t},Out:function(t){return t*(2-t)},InOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)}}),Cubic:Object.freeze({In:function(t){return t*t*t},Out:function(t){return--t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)}}),Quartic:Object.freeze({In:function(t){return t*t*t*t},Out:function(t){return 1- --t*t*t*t},InOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)}}),Quintic:Object.freeze({In:function(t){return t*t*t*t*t},Out:function(t){return--t*t*t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)}}),Sinusoidal:Object.freeze({In:function(t){return 1-Math.sin((1-t)*Math.PI/2)},Out:function(t){return Math.sin(t*Math.PI/2)},InOut:function(t){return.5*(1-Math.sin(Math.PI*(.5-t)))}}),Exponential:Object.freeze({In:function(t){return 0===t?0:Math.pow(1024,t-1)},Out:function(t){return 1===t?1:1-Math.pow(2,-10*t)},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))}}),Circular:Object.freeze({In:function(t){return 1-Math.sqrt(1-t*t)},Out:function(t){return Math.sqrt(1- --t*t)},InOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)}}),Elastic:Object.freeze({In:function(t){return 0===t?0:1===t?1:-Math.pow(2,10*(t-1))*Math.sin(5*(t-1.1)*Math.PI)},Out:function(t){return 0===t?0:1===t?1:Math.pow(2,-10*t)*Math.sin(5*(t-.1)*Math.PI)+1},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?-.5*Math.pow(2,10*(t-1))*Math.sin(5*(t-1.1)*Math.PI):.5*Math.pow(2,-10*(t-1))*Math.sin(5*(t-1.1)*Math.PI)+1}}),Back:Object.freeze({In:function(t){var e=1.70158;return 1===t?1:t*t*((e+1)*t-e)},Out:function(t){var e=1.70158;return 0===t?0:--t*t*((e+1)*t+e)+1},InOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)}}),Bounce:Object.freeze({In:function(t){return 1-Easing.Bounce.Out(1-t)},Out:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},InOut:function(t){return t<.5?.5*Easing.Bounce.In(2*t):.5*Easing.Bounce.Out(2*t-1)+.5}}),generatePow:function(t){return void 0===t&&(t=4),t=(t=t<Number.EPSILON?Number.EPSILON:t)>1e4?1e4:t,{In:function(e){return Math.pow(e,t)},Out:function(e){return 1-Math.pow(1-e,t)},InOut:function(e){return e<.5?Math.pow(2*e,t)/2:(1-Math.pow(2-2*e,t))/2+.5}}}}),now=function(){return performance.now()},Group=function(){function t(){this._tweens={},this._tweensAddedDuringUpdate={}}return t.prototype.getAll=function(){var t=this;return Object.keys(this._tweens).map(function(e){return t._tweens[e]})},t.prototype.removeAll=function(){this._tweens={}},t.prototype.add=function(t){this._tweens[t.getId()]=t,this._tweensAddedDuringUpdate[t.getId()]=t},t.prototype.remove=function(t){delete this._tweens[t.getId()],delete this._tweensAddedDuringUpdate[t.getId()]},t.prototype.update=function(t,e){void 0===t&&(t=now()),void 0===e&&(e=!1);var n=Object.keys(this._tweens);if(0===n.length)return!1;for(;n.length>0;){this._tweensAddedDuringUpdate={};for(var i=0;i<n.length;i++){var r=this._tweens[n[i]],s=!e;r&&!1===r.update(t,s)&&!e&&delete this._tweens[n[i]]}n=Object.keys(this._tweensAddedDuringUpdate)}return!0},t}(),Interpolation={Linear:function(t,e){var n=t.length-1,i=n*e,r=Math.floor(i),s=Interpolation.Utils.Linear;return e<0?s(t[0],t[1],i):e>1?s(t[n],t[n-1],n-i):s(t[r],t[r+1>n?n:r+1],i-r)},Bezier:function(t,e){for(var n=0,i=t.length-1,r=Math.pow,s=Interpolation.Utils.Bernstein,a=0;a<=i;a++)n+=r(1-e,i-a)*r(e,a)*t[a]*s(i,a);return n},CatmullRom:function(t,e){var n=t.length-1,i=n*e,r=Math.floor(i),s=Interpolation.Utils.CatmullRom;return t[0]===t[n]?(e<0&&(r=Math.floor(i=n*(1+e))),s(t[(r-1+n)%n],t[r],t[(r+1)%n],t[(r+2)%n],i-r)):e<0?t[0]-(s(t[0],t[0],t[1],t[1],-i)-t[0]):e>1?t[n]-(s(t[n],t[n],t[n-1],t[n-1],i-n)-t[n]):s(t[r?r-1:0],t[r],t[n<r+1?n:r+1],t[n<r+2?n:r+2],i-r)},Utils:{Linear:function(t,e,n){return(e-t)*n+t},Bernstein:function(t,e){var n=Interpolation.Utils.Factorial;return n(t)/n(e)/n(t-e)},Factorial:function(){var t=[1];return function(e){var n=1;if(t[e])return t[e];for(var i=e;i>1;i--)n*=i;return t[e]=n,n}}(),CatmullRom:function(t,e,n,i,r){var s=.5*(n-t),a=.5*(i-e),o=r*r;return(2*e-2*n+s+a)*(r*o)+(-3*e+3*n-2*s-a)*o+s*r+e}}},Sequence=function(){function t(){}return t.nextId=function(){return t._nextId++},t._nextId=0,t}(),mainGroup=new Group,Tween=function(){function t(t,e){void 0===e&&(e=mainGroup),this._object=t,this._group=e,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Easing.Linear.None,this._interpolationFunction=Interpolation.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=Sequence.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1}return t.prototype.getId=function(){return this._id},t.prototype.isPlaying=function(){return this._isPlaying},t.prototype.isPaused=function(){return this._isPaused},t.prototype.getDuration=function(){return this._duration},t.prototype.to=function(t,e){if(void 0===e&&(e=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=t,this._propertiesAreSetUp=!1,this._duration=e<0?0:e,this},t.prototype.duration=function(t){return void 0===t&&(t=1e3),this._duration=t<0?0:t,this},t.prototype.dynamic=function(t){return void 0===t&&(t=!1),this._isDynamic=t,this},t.prototype.start=function(t,e){if(void 0===t&&(t=now()),void 0===e&&(e=!1),this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed)for(var n in this._reversed=!1,this._valuesStartRepeat)this._swapEndStartRepeatValues(n),this._valuesStart[n]=this._valuesStartRepeat[n];if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=t,this._startTime+=this._delayTime,!this._propertiesAreSetUp||e){if(this._propertiesAreSetUp=!0,!this._isDynamic){var i={};for(var r in this._valuesEnd)i[r]=this._valuesEnd[r];this._valuesEnd=i}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,e)}return this},t.prototype.startFromCurrentValues=function(t){return this.start(t,!0)},t.prototype._setupProperties=function(t,e,n,i,r){for(var s in n){var a=t[s],o=Array.isArray(a),c=o?"array":typeof a,l=!o&&Array.isArray(n[s]);if("undefined"!==c&&"function"!==c){if(l){if(0===(g=n[s]).length)continue;for(var u=[a],h=0,d=g.length;h<d;h+=1){var p=this._handleRelativeValue(a,g[h]);if(isNaN(p)){l=!1,console.warn("Found invalid interpolation list. Skipping.");break}u.push(p)}l&&(n[s]=u)}if("object"!==c&&!o||!a||l)(void 0===e[s]||r)&&(e[s]=a),o||(e[s]*=1),i[s]=l?n[s].slice().reverse():e[s]||0;else{e[s]=o?[]:{};var f=a;for(var m in f)e[s][m]=f[m];i[s]=o?[]:{};var g=n[s];if(!this._isDynamic){var A={};for(var m in g)A[m]=g[m];n[s]=g=A}this._setupProperties(f,e[s],g,i[s],r)}}}},t.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},t.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},t.prototype.pause=function(t){return void 0===t&&(t=now()),this._isPaused||!this._isPlaying||(this._isPaused=!0,this._pauseStart=t,this._group&&this._group.remove(this)),this},t.prototype.resume=function(t){return void 0===t&&(t=now()),this._isPaused&&this._isPlaying?(this._isPaused=!1,this._startTime+=t-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this):this},t.prototype.stopChainedTweens=function(){for(var t=0,e=this._chainedTweens.length;t<e;t++)this._chainedTweens[t].stop();return this},t.prototype.group=function(t){return void 0===t&&(t=mainGroup),this._group=t,this},t.prototype.delay=function(t){return void 0===t&&(t=0),this._delayTime=t,this},t.prototype.repeat=function(t){return void 0===t&&(t=0),this._initialRepeat=t,this._repeat=t,this},t.prototype.repeatDelay=function(t){return this._repeatDelayTime=t,this},t.prototype.yoyo=function(t){return void 0===t&&(t=!1),this._yoyo=t,this},t.prototype.easing=function(t){return void 0===t&&(t=Easing.Linear.None),this._easingFunction=t,this},t.prototype.interpolation=function(t){return void 0===t&&(t=Interpolation.Linear),this._interpolationFunction=t,this},t.prototype.chain=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return this._chainedTweens=t,this},t.prototype.onStart=function(t){return this._onStartCallback=t,this},t.prototype.onEveryStart=function(t){return this._onEveryStartCallback=t,this},t.prototype.onUpdate=function(t){return this._onUpdateCallback=t,this},t.prototype.onRepeat=function(t){return this._onRepeatCallback=t,this},t.prototype.onComplete=function(t){return this._onCompleteCallback=t,this},t.prototype.onStop=function(t){return this._onStopCallback=t,this},t.prototype.update=function(t,e){var n,i,r=this;if(void 0===t&&(t=now()),void 0===e&&(e=!0),this._isPaused)return!0;var s=this._startTime+this._duration;if(!this._goToEnd&&!this._isPlaying){if(t>s)return!1;e&&this.start(t,!0)}if(this._goToEnd=!1,t<this._startTime)return!0;!1===this._onStartCallbackFired&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),!1===this._onEveryStartCallbackFired&&(this._onEveryStartCallback&&this._onEveryStartCallback(this._object),this._onEveryStartCallbackFired=!0);var a=t-this._startTime,o=this._duration+(null!==(n=this._repeatDelayTime)&&void 0!==n?n:this._delayTime),c=this._duration+this._repeat*o,l=function(){if(0===r._duration)return 1;if(a>c)return 1;var t=Math.trunc(a/o),e=a-t*o,n=Math.min(e/r._duration,1);return 0===n&&a===r._duration?1:n}(),u=this._easingFunction(l);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,u),this._onUpdateCallback&&this._onUpdateCallback(this._object,l),0===this._duration||a>=this._duration){if(this._repeat>0){var h=Math.min(Math.trunc((a-this._duration)/o)+1,this._repeat);for(i in isFinite(this._repeat)&&(this._repeat-=h),this._valuesStartRepeat)this._yoyo||"string"!=typeof this._valuesEnd[i]||(this._valuesStartRepeat[i]=this._valuesStartRepeat[i]+parseFloat(this._valuesEnd[i])),this._yoyo&&this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=o*h,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var d=0,p=this._chainedTweens.length;d<p;d++)this._chainedTweens[d].start(this._startTime+this._duration,!1);return this._isPlaying=!1,!1}return!0},t.prototype._updateProperties=function(t,e,n,i){for(var r in n)if(void 0!==e[r]){var s=e[r]||0,a=n[r],o=Array.isArray(t[r]),c=Array.isArray(a);!o&&c?t[r]=this._interpolationFunction(a,i):"object"==typeof a&&a?this._updateProperties(t[r],s,a,i):"number"==typeof(a=this._handleRelativeValue(s,a))&&(t[r]=s+(a-s)*i)}},t.prototype._handleRelativeValue=function(t,e){return"string"!=typeof e?e:"+"===e.charAt(0)||"-"===e.charAt(0)?t+parseFloat(e):parseFloat(e)},t.prototype._swapEndStartRepeatValues=function(t){var e=this._valuesStartRepeat[t],n=this._valuesEnd[t];this._valuesStartRepeat[t]="string"==typeof n?this._valuesStartRepeat[t]+parseFloat(n):this._valuesEnd[t],this._valuesEnd[t]=e},t}(),VERSION="23.1.1",nextId=Sequence.nextId,TWEEN=mainGroup,getAll=TWEEN.getAll.bind(TWEEN),removeAll=TWEEN.removeAll.bind(TWEEN),add=TWEEN.add.bind(TWEEN),remove=TWEEN.remove.bind(TWEEN),update=TWEEN.update.bind(TWEEN),exports$1={Easing,Group,Interpolation,now,Sequence,nextId,Tween,VERSION,getAll,removeAll,add,remove,update};const x$e=Object.freeze(Object.defineProperty({__proto__:null,Easing,Group,Interpolation,Sequence,Tween,VERSION,add,default:exports$1,getAll,nextId,now,remove,removeAll,update},Symbol.toStringTag,{value:"Module"}));function mergeGeometries(t,e=!1){const n=null!==t[0].index,i=new Set(Object.keys(t[0].attributes)),r=new Set(Object.keys(t[0].morphAttributes)),s={},a={},o=t[0].morphTargetsRelative,c=new BufferGeometry;let l=0;for(let u=0;u<t.length;++u){const h=t[u];let d=0;if(n!==(null!==h.index))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+u+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(const t in h.attributes){if(!i.has(t))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+u+'. All geometries must have compatible attributes; make sure "'+t+'" attribute exists among all geometries, or in none of them.'),null;void 0===s[t]&&(s[t]=[]),s[t].push(h.attributes[t]),d++}if(d!==i.size)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+u+". Make sure all geometries have the same number of attributes."),null;if(o!==h.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+u+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(const t in h.morphAttributes){if(!r.has(t))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+u+". .morphAttributes must be consistent throughout all geometries."),null;void 0===a[t]&&(a[t]=[]),a[t].push(h.morphAttributes[t])}if(e){let t;if(n)t=h.index.count;else{if(void 0===h.attributes.position)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+u+". The geometry must have either an index or a position attribute"),null;t=h.attributes.position.count}c.addGroup(l,t,u),l+=t}}if(n){let e=0;const n=[];for(let i=0;i<t.length;++i){const r=t[i].index;for(let t=0;t<r.count;++t)n.push(r.getX(t)+e);e+=t[i].attributes.position.count}c.setIndex(n)}for(const u in s){const t=mergeAttributes(s[u]);if(!t)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+u+" attribute."),null;c.setAttribute(u,t)}for(const u in a){const t=a[u][0].length;if(0===t)break;c.morphAttributes=c.morphAttributes||{},c.morphAttributes[u]=[];for(let e=0;e<t;++e){const t=[];for(let i=0;i<a[u].length;++i)t.push(a[u][i][e]);const n=mergeAttributes(t);if(!n)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+u+" morphAttribute."),null;c.morphAttributes[u].push(n)}}return c}function mergeAttributes(t){let e,n,i,r=-1,s=0;for(let l=0;l<t.length;++l){const a=t[l];if(void 0===e&&(e=a.array.constructor),e!==a.array.constructor)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null;if(void 0===n&&(n=a.itemSize),n!==a.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(void 0===i&&(i=a.normalized),i!==a.normalized)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;if(-1===r&&(r=a.gpuType),r!==a.gpuType)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."),null;s+=a.count*n}const a=new e(s),o=new BufferAttribute(a,n,i);let c=0;for(let l=0;l<t.length;++l){const e=t[l];if(e.isInterleavedBufferAttribute){const t=c/n;for(let i=0,r=e.count;i<r;i++)for(let s=0;s<n;s++){const n=e.getComponent(i,s);o.setComponent(i+t,s,n)}}else a.set(e.array,c);c+=e.count*n}return void 0!==r&&(o.gpuType=r),o}function toTrianglesDrawMode(t,e){if(e===TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),t;if(e===TriangleFanDrawMode||e===TriangleStripDrawMode){let n=t.getIndex();if(null===n){const e=[],i=t.getAttribute("position");if(void 0===i)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),t;for(let t=0;t<i.count;t++)e.push(t);t.setIndex(e),n=t.getIndex()}const i=n.count-2,r=[];if(e===TriangleFanDrawMode)for(let t=1;t<=i;t++)r.push(n.getX(0)),r.push(n.getX(t)),r.push(n.getX(t+1));else for(let t=0;t<i;t++)t%2==0?(r.push(n.getX(t)),r.push(n.getX(t+1)),r.push(n.getX(t+2))):(r.push(n.getX(t+2)),r.push(n.getX(t+1)),r.push(n.getX(t)));r.length/3!==i&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const s=t.clone();return s.setIndex(r),s.clearGroups(),s}return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",e),t}class GLTFLoader extends Loader{constructor(t){super(t),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(t){return new GLTFMaterialsClearcoatExtension(t)}),this.register(function(t){return new GLTFMaterialsDispersionExtension(t)}),this.register(function(t){return new GLTFTextureBasisUExtension(t)}),this.register(function(t){return new GLTFTextureWebPExtension(t)}),this.register(function(t){return new GLTFTextureAVIFExtension(t)}),this.register(function(t){return new GLTFMaterialsSheenExtension(t)}),this.register(function(t){return new GLTFMaterialsTransmissionExtension(t)}),this.register(function(t){return new GLTFMaterialsVolumeExtension(t)}),this.register(function(t){return new GLTFMaterialsIorExtension(t)}),this.register(function(t){return new GLTFMaterialsEmissiveStrengthExtension(t)}),this.register(function(t){return new GLTFMaterialsSpecularExtension(t)}),this.register(function(t){return new GLTFMaterialsIridescenceExtension(t)}),this.register(function(t){return new GLTFMaterialsAnisotropyExtension(t)}),this.register(function(t){return new GLTFMaterialsBumpExtension(t)}),this.register(function(t){return new GLTFLightsExtension(t)}),this.register(function(t){return new GLTFMeshoptCompression(t)}),this.register(function(t){return new GLTFMeshGpuInstancing(t)})}load(t,e,n,i){const r=this;let s;if(""!==this.resourcePath)s=this.resourcePath;else if(""!==this.path){const e=LoaderUtils.extractUrlBase(t);s=LoaderUtils.resolveURL(e,this.path)}else s=LoaderUtils.extractUrlBase(t);this.manager.itemStart(t);const a=function(e){i?i(e):console.error(e),r.manager.itemError(t),r.manager.itemEnd(t)},o=new FileLoader(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(t,function(n){try{r.parse(n,s,function(n){e(n),r.manager.itemEnd(t)},a)}catch(i){a(i)}},n,a)}setDRACOLoader(t){return this.dracoLoader=t,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(t){return this.ktx2Loader=t,this}setMeshoptDecoder(t){return this.meshoptDecoder=t,this}register(t){return-1===this.pluginCallbacks.indexOf(t)&&this.pluginCallbacks.push(t),this}unregister(t){return-1!==this.pluginCallbacks.indexOf(t)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(t),1),this}parse(t,e,n,i){let r;const s={},a={},o=new TextDecoder;if("string"==typeof t)r=JSON.parse(t);else if(t instanceof ArrayBuffer){if(o.decode(new Uint8Array(t,0,4))===BINARY_EXTENSION_HEADER_MAGIC){try{s[EXTENSIONS.KHR_BINARY_GLTF]=new GLTFBinaryExtension(t)}catch(l){return void(i&&i(l))}r=JSON.parse(s[EXTENSIONS.KHR_BINARY_GLTF].content)}else r=JSON.parse(o.decode(t))}else r=t;if(void 0===r.asset||r.asset.version[0]<2)return void(i&&i(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const c=new GLTFParser(r,{path:e||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});c.fileLoader.setRequestHeader(this.requestHeader);for(let u=0;u<this.pluginCallbacks.length;u++){const t=this.pluginCallbacks[u](c);t.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),a[t.name]=t,s[t.name]=!0}if(r.extensionsUsed)for(let u=0;u<r.extensionsUsed.length;++u){const t=r.extensionsUsed[u],e=r.extensionsRequired||[];switch(t){case EXTENSIONS.KHR_MATERIALS_UNLIT:s[t]=new GLTFMaterialsUnlitExtension;break;case EXTENSIONS.KHR_DRACO_MESH_COMPRESSION:s[t]=new GLTFDracoMeshCompressionExtension(r,this.dracoLoader);break;case EXTENSIONS.KHR_TEXTURE_TRANSFORM:s[t]=new GLTFTextureTransformExtension;break;case EXTENSIONS.KHR_MESH_QUANTIZATION:s[t]=new GLTFMeshQuantizationExtension;break;default:e.indexOf(t)>=0&&void 0===a[t]&&console.warn('THREE.GLTFLoader: Unknown extension "'+t+'".')}}c.setExtensions(s),c.setPlugins(a),c.parse(n,i)}parseAsync(t,e){const n=this;return new Promise(function(i,r){n.parse(t,e,i,r)})}}function GLTFRegistry(){let t={};return{get:function(e){return t[e]},add:function(e,n){t[e]=n},remove:function(e){delete t[e]},removeAll:function(){t={}}}}const EXTENSIONS={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class GLTFLightsExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const t=this.parser,e=this.parser.json.nodes||[];for(let n=0,i=e.length;n<i;n++){const i=e[n];i.extensions&&i.extensions[this.name]&&void 0!==i.extensions[this.name].light&&t._addNodeRef(this.cache,i.extensions[this.name].light)}}_loadLight(t){const e=this.parser,n="light:"+t;let i=e.cache.get(n);if(i)return i;const r=e.json,s=((r.extensions&&r.extensions[this.name]||{}).lights||[])[t];let a;const o=new Color(16777215);void 0!==s.color&&o.setRGB(s.color[0],s.color[1],s.color[2],LinearSRGBColorSpace);const c=void 0!==s.range?s.range:0;switch(s.type){case"directional":a=new DirectionalLight(o),a.target.position.set(0,0,-1),a.add(a.target);break;case"point":a=new PointLight(o),a.distance=c;break;case"spot":a=new SpotLight(o),a.distance=c,s.spot=s.spot||{},s.spot.innerConeAngle=void 0!==s.spot.innerConeAngle?s.spot.innerConeAngle:0,s.spot.outerConeAngle=void 0!==s.spot.outerConeAngle?s.spot.outerConeAngle:Math.PI/4,a.angle=s.spot.outerConeAngle,a.penumbra=1-s.spot.innerConeAngle/s.spot.outerConeAngle,a.target.position.set(0,0,-1),a.add(a.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+s.type)}return a.position.set(0,0,0),a.decay=2,assignExtrasToUserData(a,s),void 0!==s.intensity&&(a.intensity=s.intensity),a.name=e.createUniqueName(s.name||"light_"+t),i=Promise.resolve(a),e.cache.add(n,i),i}getDependency(t,e){if("light"===t)return this._loadLight(e)}createNodeAttachment(t){const e=this,n=this.parser,i=n.json.nodes[t],r=(i.extensions&&i.extensions[this.name]||{}).light;return void 0===r?null:this._loadLight(r).then(function(t){return n._getNodeRef(e.cache,r,t)})}}class GLTFMaterialsUnlitExtension{constructor(){this.name=EXTENSIONS.KHR_MATERIALS_UNLIT}getMaterialType(){return MeshBasicMaterial}extendParams(t,e,n){const i=[];t.color=new Color(1,1,1),t.opacity=1;const r=e.pbrMetallicRoughness;if(r){if(Array.isArray(r.baseColorFactor)){const e=r.baseColorFactor;t.color.setRGB(e[0],e[1],e[2],LinearSRGBColorSpace),t.opacity=e[3]}void 0!==r.baseColorTexture&&i.push(n.assignTexture(t,"map",r.baseColorTexture,SRGBColorSpace))}return Promise.all(i)}}class GLTFMaterialsEmissiveStrengthExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(t,e){const n=this.parser.json.materials[t];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const i=n.extensions[this.name].emissiveStrength;return void 0!==i&&(e.emissiveIntensity=i),Promise.resolve()}}class GLTFMaterialsClearcoatExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_CLEARCOAT}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser,i=n.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];if(void 0!==s.clearcoatFactor&&(e.clearcoat=s.clearcoatFactor),void 0!==s.clearcoatTexture&&r.push(n.assignTexture(e,"clearcoatMap",s.clearcoatTexture)),void 0!==s.clearcoatRoughnessFactor&&(e.clearcoatRoughness=s.clearcoatRoughnessFactor),void 0!==s.clearcoatRoughnessTexture&&r.push(n.assignTexture(e,"clearcoatRoughnessMap",s.clearcoatRoughnessTexture)),void 0!==s.clearcoatNormalTexture&&(r.push(n.assignTexture(e,"clearcoatNormalMap",s.clearcoatNormalTexture)),void 0!==s.clearcoatNormalTexture.scale)){const t=s.clearcoatNormalTexture.scale;e.clearcoatNormalScale=new Vector2(t,t)}return Promise.all(r)}}class GLTFMaterialsDispersionExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_DISPERSION}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser.json.materials[t];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const i=n.extensions[this.name];return e.dispersion=void 0!==i.dispersion?i.dispersion:0,Promise.resolve()}}class GLTFMaterialsIridescenceExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_IRIDESCENCE}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser,i=n.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];return void 0!==s.iridescenceFactor&&(e.iridescence=s.iridescenceFactor),void 0!==s.iridescenceTexture&&r.push(n.assignTexture(e,"iridescenceMap",s.iridescenceTexture)),void 0!==s.iridescenceIor&&(e.iridescenceIOR=s.iridescenceIor),void 0===e.iridescenceThicknessRange&&(e.iridescenceThicknessRange=[100,400]),void 0!==s.iridescenceThicknessMinimum&&(e.iridescenceThicknessRange[0]=s.iridescenceThicknessMinimum),void 0!==s.iridescenceThicknessMaximum&&(e.iridescenceThicknessRange[1]=s.iridescenceThicknessMaximum),void 0!==s.iridescenceThicknessTexture&&r.push(n.assignTexture(e,"iridescenceThicknessMap",s.iridescenceThicknessTexture)),Promise.all(r)}}class GLTFMaterialsSheenExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_SHEEN}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser,i=n.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[];e.sheenColor=new Color(0,0,0),e.sheenRoughness=0,e.sheen=1;const s=i.extensions[this.name];if(void 0!==s.sheenColorFactor){const t=s.sheenColorFactor;e.sheenColor.setRGB(t[0],t[1],t[2],LinearSRGBColorSpace)}return void 0!==s.sheenRoughnessFactor&&(e.sheenRoughness=s.sheenRoughnessFactor),void 0!==s.sheenColorTexture&&r.push(n.assignTexture(e,"sheenColorMap",s.sheenColorTexture,SRGBColorSpace)),void 0!==s.sheenRoughnessTexture&&r.push(n.assignTexture(e,"sheenRoughnessMap",s.sheenRoughnessTexture)),Promise.all(r)}}class GLTFMaterialsTransmissionExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_TRANSMISSION}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser,i=n.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];return void 0!==s.transmissionFactor&&(e.transmission=s.transmissionFactor),void 0!==s.transmissionTexture&&r.push(n.assignTexture(e,"transmissionMap",s.transmissionTexture)),Promise.all(r)}}class GLTFMaterialsVolumeExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_VOLUME}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser,i=n.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];e.thickness=void 0!==s.thicknessFactor?s.thicknessFactor:0,void 0!==s.thicknessTexture&&r.push(n.assignTexture(e,"thicknessMap",s.thicknessTexture)),e.attenuationDistance=s.attenuationDistance||1/0;const a=s.attenuationColor||[1,1,1];return e.attenuationColor=(new Color).setRGB(a[0],a[1],a[2],LinearSRGBColorSpace),Promise.all(r)}}class GLTFMaterialsIorExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_IOR}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser.json.materials[t];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const i=n.extensions[this.name];return e.ior=void 0!==i.ior?i.ior:1.5,Promise.resolve()}}class GLTFMaterialsSpecularExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_SPECULAR}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser,i=n.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];e.specularIntensity=void 0!==s.specularFactor?s.specularFactor:1,void 0!==s.specularTexture&&r.push(n.assignTexture(e,"specularIntensityMap",s.specularTexture));const a=s.specularColorFactor||[1,1,1];return e.specularColor=(new Color).setRGB(a[0],a[1],a[2],LinearSRGBColorSpace),void 0!==s.specularColorTexture&&r.push(n.assignTexture(e,"specularColorMap",s.specularColorTexture,SRGBColorSpace)),Promise.all(r)}}class GLTFMaterialsBumpExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.EXT_MATERIALS_BUMP}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser,i=n.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];return e.bumpScale=void 0!==s.bumpFactor?s.bumpFactor:1,void 0!==s.bumpTexture&&r.push(n.assignTexture(e,"bumpMap",s.bumpTexture)),Promise.all(r)}}class GLTFMaterialsAnisotropyExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_ANISOTROPY}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser,i=n.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];return void 0!==s.anisotropyStrength&&(e.anisotropy=s.anisotropyStrength),void 0!==s.anisotropyRotation&&(e.anisotropyRotation=s.anisotropyRotation),void 0!==s.anisotropyTexture&&r.push(n.assignTexture(e,"anisotropyMap",s.anisotropyTexture)),Promise.all(r)}}class GLTFTextureBasisUExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_TEXTURE_BASISU}loadTexture(t){const e=this.parser,n=e.json,i=n.textures[t];if(!i.extensions||!i.extensions[this.name])return null;const r=i.extensions[this.name],s=e.options.ktx2Loader;if(!s){if(n.extensionsRequired&&n.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return e.loadTextureImage(t,r.source,s)}}class GLTFTextureWebPExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(t){const e=this.name,n=this.parser,i=n.json,r=i.textures[t];if(!r.extensions||!r.extensions[e])return null;const s=r.extensions[e],a=i.images[s.source];let o=n.textureLoader;if(a.uri){const t=n.options.manager.getHandler(a.uri);null!==t&&(o=t)}return this.detectSupport().then(function(r){if(r)return n.loadTextureImage(t,s.source,o);if(i.extensionsRequired&&i.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return n.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.onload=e.onerror=function(){t(1===e.height)}})),this.isSupported}}class GLTFTextureAVIFExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(t){const e=this.name,n=this.parser,i=n.json,r=i.textures[t];if(!r.extensions||!r.extensions[e])return null;const s=r.extensions[e],a=i.images[s.source];let o=n.textureLoader;if(a.uri){const t=n.options.manager.getHandler(a.uri);null!==t&&(o=t)}return this.detectSupport().then(function(r){if(r)return n.loadTextureImage(t,s.source,o);if(i.extensionsRequired&&i.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return n.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",e.onload=e.onerror=function(){t(1===e.height)}})),this.isSupported}}class GLTFMeshoptCompression{constructor(t){this.name=EXTENSIONS.EXT_MESHOPT_COMPRESSION,this.parser=t}loadBufferView(t){const e=this.parser.json,n=e.bufferViews[t];if(n.extensions&&n.extensions[this.name]){const t=n.extensions[this.name],i=this.parser.getDependency("buffer",t.buffer),r=this.parser.options.meshoptDecoder;if(!r||!r.supported){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return i.then(function(e){const n=t.byteOffset||0,i=t.byteLength||0,s=t.count,a=t.byteStride,o=new Uint8Array(e,n,i);return r.decodeGltfBufferAsync?r.decodeGltfBufferAsync(s,a,o,t.mode,t.filter).then(function(t){return t.buffer}):r.ready.then(function(){const e=new ArrayBuffer(s*a);return r.decodeGltfBuffer(new Uint8Array(e),s,a,o,t.mode,t.filter),e})})}return null}}class GLTFMeshGpuInstancing{constructor(t){this.name=EXTENSIONS.EXT_MESH_GPU_INSTANCING,this.parser=t}createNodeMesh(t){const e=this.parser.json,n=e.nodes[t];if(!n.extensions||!n.extensions[this.name]||void 0===n.mesh)return null;const i=e.meshes[n.mesh];for(const o of i.primitives)if(o.mode!==WEBGL_CONSTANTS.TRIANGLES&&o.mode!==WEBGL_CONSTANTS.TRIANGLE_STRIP&&o.mode!==WEBGL_CONSTANTS.TRIANGLE_FAN&&void 0!==o.mode)return null;const r=n.extensions[this.name].attributes,s=[],a={};for(const o in r)s.push(this.parser.getDependency("accessor",r[o]).then(t=>(a[o]=t,a[o])));return s.length<1?null:(s.push(this.parser.createNodeMesh(t)),Promise.all(s).then(t=>{const e=t.pop(),n=e.isGroup?e.children:[e],i=t[0].count,r=[];for(const s of n){const t=new Matrix4,e=new Vector3,n=new Quaternion,o=new Vector3(1,1,1),c=new InstancedMesh(s.geometry,s.material,i);for(let r=0;r<i;r++)a.TRANSLATION&&e.fromBufferAttribute(a.TRANSLATION,r),a.ROTATION&&n.fromBufferAttribute(a.ROTATION,r),a.SCALE&&o.fromBufferAttribute(a.SCALE,r),c.setMatrixAt(r,t.compose(e,n,o));for(const i in a)if("_COLOR_0"===i){const t=a[i];c.instanceColor=new InstancedBufferAttribute(t.array,t.itemSize,t.normalized)}else"TRANSLATION"!==i&&"ROTATION"!==i&&"SCALE"!==i&&s.geometry.setAttribute(i,a[i]);Object3D.prototype.copy.call(c,s),this.parser.assignFinalMaterial(c),r.push(c)}return e.isGroup?(e.clear(),e.add(...r),e):r[0]}))}}const BINARY_EXTENSION_HEADER_MAGIC="glTF",BINARY_EXTENSION_HEADER_LENGTH=12,BINARY_EXTENSION_CHUNK_TYPES={JSON:1313821514,BIN:5130562};class GLTFBinaryExtension{constructor(t){this.name=EXTENSIONS.KHR_BINARY_GLTF,this.content=null,this.body=null;const e=new DataView(t,0,BINARY_EXTENSION_HEADER_LENGTH),n=new TextDecoder;if(this.header={magic:n.decode(new Uint8Array(t.slice(0,4))),version:e.getUint32(4,!0),length:e.getUint32(8,!0)},this.header.magic!==BINARY_EXTENSION_HEADER_MAGIC)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const i=this.header.length-BINARY_EXTENSION_HEADER_LENGTH,r=new DataView(t,BINARY_EXTENSION_HEADER_LENGTH);let s=0;for(;s<i;){const e=r.getUint32(s,!0);s+=4;const i=r.getUint32(s,!0);if(s+=4,i===BINARY_EXTENSION_CHUNK_TYPES.JSON){const i=new Uint8Array(t,BINARY_EXTENSION_HEADER_LENGTH+s,e);this.content=n.decode(i)}else if(i===BINARY_EXTENSION_CHUNK_TYPES.BIN){const n=BINARY_EXTENSION_HEADER_LENGTH+s;this.body=t.slice(n,n+e)}s+=e}if(null===this.content)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class GLTFDracoMeshCompressionExtension{constructor(t,e){if(!e)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=EXTENSIONS.KHR_DRACO_MESH_COMPRESSION,this.json=t,this.dracoLoader=e,this.dracoLoader.preload()}decodePrimitive(t,e){const n=this.json,i=this.dracoLoader,r=t.extensions[this.name].bufferView,s=t.extensions[this.name].attributes,a={},o={},c={};for(const l in s){const t=ATTRIBUTES[l]||l.toLowerCase();a[t]=s[l]}for(const l in t.attributes){const e=ATTRIBUTES[l]||l.toLowerCase();if(void 0!==s[l]){const i=n.accessors[t.attributes[l]],r=WEBGL_COMPONENT_TYPES[i.componentType];c[e]=r.name,o[e]=!0===i.normalized}}return e.getDependency("bufferView",r).then(function(t){return new Promise(function(e,n){i.decodeDracoFile(t,function(t){for(const e in t.attributes){const n=t.attributes[e],i=o[e];void 0!==i&&(n.normalized=i)}e(t)},a,c,LinearSRGBColorSpace,n)})})}}class GLTFTextureTransformExtension{constructor(){this.name=EXTENSIONS.KHR_TEXTURE_TRANSFORM}extendTexture(t,e){return void 0!==e.texCoord&&e.texCoord!==t.channel||void 0!==e.offset||void 0!==e.rotation||void 0!==e.scale?(t=t.clone(),void 0!==e.texCoord&&(t.channel=e.texCoord),void 0!==e.offset&&t.offset.fromArray(e.offset),void 0!==e.rotation&&(t.rotation=e.rotation),void 0!==e.scale&&t.repeat.fromArray(e.scale),t.needsUpdate=!0,t):t}}class GLTFMeshQuantizationExtension{constructor(){this.name=EXTENSIONS.KHR_MESH_QUANTIZATION}}class GLTFCubicSplineInterpolant extends Interpolant{constructor(t,e,n,i){super(t,e,n,i)}copySampleValue_(t){const e=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=t*i*3+i;for(let s=0;s!==i;s++)e[s]=n[r+s];return e}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=2*a,c=3*a,l=i-e,u=(n-e)/l,h=u*u,d=h*u,p=t*c,f=p-c,m=-2*d+3*h,g=d-h,A=1-m,y=g-h+u;for(let v=0;v!==a;v++){const t=s[f+v+a],e=s[f+v+o]*l,n=s[p+v+a],i=s[p+v]*l;r[v]=A*t+y*e+m*n+g*i}return r}}const _q=new Quaternion;class GLTFCubicSplineQuaternionInterpolant extends GLTFCubicSplineInterpolant{interpolate_(t,e,n,i){const r=super.interpolate_(t,e,n,i);return _q.fromArray(r).normalize().toArray(r),r}}const WEBGL_CONSTANTS={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},WEBGL_COMPONENT_TYPES={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},WEBGL_FILTERS={9728:NearestFilter,9729:LinearFilter,9984:NearestMipmapNearestFilter,9985:LinearMipmapNearestFilter,9986:NearestMipmapLinearFilter,9987:LinearMipmapLinearFilter},WEBGL_WRAPPINGS={33071:ClampToEdgeWrapping,33648:MirroredRepeatWrapping,10497:RepeatWrapping},WEBGL_TYPE_SIZES={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},ATTRIBUTES={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},PATH_PROPERTIES={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},INTERPOLATION={CUBICSPLINE:void 0,LINEAR:InterpolateLinear,STEP:InterpolateDiscrete},ALPHA_MODES={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function createDefaultMaterial(t){return void 0===t.DefaultMaterial&&(t.DefaultMaterial=new MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:FrontSide})),t.DefaultMaterial}function addUnknownExtensionsToUserData(t,e,n){for(const i in n.extensions)void 0===t[i]&&(e.userData.gltfExtensions=e.userData.gltfExtensions||{},e.userData.gltfExtensions[i]=n.extensions[i])}function assignExtrasToUserData(t,e){void 0!==e.extras&&("object"==typeof e.extras?Object.assign(t.userData,e.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+e.extras))}function addMorphTargets(t,e,n){let i=!1,r=!1,s=!1;for(let l=0,u=e.length;l<u;l++){const t=e[l];if(void 0!==t.POSITION&&(i=!0),void 0!==t.NORMAL&&(r=!0),void 0!==t.COLOR_0&&(s=!0),i&&r&&s)break}if(!i&&!r&&!s)return Promise.resolve(t);const a=[],o=[],c=[];for(let l=0,u=e.length;l<u;l++){const u=e[l];if(i){const e=void 0!==u.POSITION?n.getDependency("accessor",u.POSITION):t.attributes.position;a.push(e)}if(r){const e=void 0!==u.NORMAL?n.getDependency("accessor",u.NORMAL):t.attributes.normal;o.push(e)}if(s){const e=void 0!==u.COLOR_0?n.getDependency("accessor",u.COLOR_0):t.attributes.color;c.push(e)}}return Promise.all([Promise.all(a),Promise.all(o),Promise.all(c)]).then(function(e){const n=e[0],a=e[1],o=e[2];return i&&(t.morphAttributes.position=n),r&&(t.morphAttributes.normal=a),s&&(t.morphAttributes.color=o),t.morphTargetsRelative=!0,t})}function updateMorphTargets(t,e){if(t.updateMorphTargets(),void 0!==e.weights)for(let n=0,i=e.weights.length;n<i;n++)t.morphTargetInfluences[n]=e.weights[n];if(e.extras&&Array.isArray(e.extras.targetNames)){const n=e.extras.targetNames;if(t.morphTargetInfluences.length===n.length){t.morphTargetDictionary={};for(let e=0,i=n.length;e<i;e++)t.morphTargetDictionary[n[e]]=e}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function createPrimitiveKey(t){let e;const n=t.extensions&&t.extensions[EXTENSIONS.KHR_DRACO_MESH_COMPRESSION];if(e=n?"draco:"+n.bufferView+":"+n.indices+":"+createAttributesKey(n.attributes):t.indices+":"+createAttributesKey(t.attributes)+":"+t.mode,void 0!==t.targets)for(let i=0,r=t.targets.length;i<r;i++)e+=":"+createAttributesKey(t.targets[i]);return e}function createAttributesKey(t){let e="";const n=Object.keys(t).sort();for(let i=0,r=n.length;i<r;i++)e+=n[i]+":"+t[n[i]]+";";return e}function getNormalizedComponentScale(t){switch(t){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}function getImageURIMimeType(t){return t.search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"}const _identityMatrix=new Matrix4;class GLTFParser{constructor(t={},e={}){this.json=t,this.extensions={},this.plugins={},this.options=e,this.cache=new GLTFRegistry,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let n=!1,i=-1,r=!1,s=-1;if("undefined"!=typeof navigator){const t=navigator.userAgent;n=!0===/^((?!chrome|android).)*safari/i.test(t);const e=t.match(/Version\/(\d+)/);i=n&&e?parseInt(e[1],10):-1,r=t.indexOf("Firefox")>-1,s=r?t.match(/Firefox\/([0-9]+)\./)[1]:-1}"undefined"==typeof createImageBitmap||n&&i<17||r&&s<98?this.textureLoader=new TextureLoader(this.options.manager):this.textureLoader=new ImageBitmapLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(t){this.extensions=t}setPlugins(t){this.plugins=t}parse(t,e){const n=this,i=this.json,r=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(t){return t._markDefs&&t._markDefs()}),Promise.all(this._invokeAll(function(t){return t.beforeRoot&&t.beforeRoot()})).then(function(){return Promise.all([n.getDependencies("scene"),n.getDependencies("animation"),n.getDependencies("camera")])}).then(function(e){const s={scene:e[0][i.scene||0],scenes:e[0],animations:e[1],cameras:e[2],asset:i.asset,parser:n,userData:{}};return addUnknownExtensionsToUserData(r,s,i),assignExtrasToUserData(s,i),Promise.all(n._invokeAll(function(t){return t.afterRoot&&t.afterRoot(s)})).then(function(){for(const t of s.scenes)t.updateMatrixWorld();t(s)})}).catch(e)}_markDefs(){const t=this.json.nodes||[],e=this.json.skins||[],n=this.json.meshes||[];for(let i=0,r=e.length;i<r;i++){const n=e[i].joints;for(let e=0,i=n.length;e<i;e++)t[n[e]].isBone=!0}for(let i=0,r=t.length;i<r;i++){const e=t[i];void 0!==e.mesh&&(this._addNodeRef(this.meshCache,e.mesh),void 0!==e.skin&&(n[e.mesh].isSkinnedMesh=!0)),void 0!==e.camera&&this._addNodeRef(this.cameraCache,e.camera)}}_addNodeRef(t,e){void 0!==e&&(void 0===t.refs[e]&&(t.refs[e]=t.uses[e]=0),t.refs[e]++)}_getNodeRef(t,e,n){if(t.refs[e]<=1)return n;const i=n.clone(),r=(t,e)=>{const n=this.associations.get(t);null!=n&&this.associations.set(e,n);for(const[i,s]of t.children.entries())r(s,e.children[i])};return r(n,i),i.name+="_instance_"+t.uses[e]++,i}_invokeOne(t){const e=Object.values(this.plugins);e.push(this);for(let n=0;n<e.length;n++){const i=t(e[n]);if(i)return i}return null}_invokeAll(t){const e=Object.values(this.plugins);e.unshift(this);const n=[];for(let i=0;i<e.length;i++){const r=t(e[i]);r&&n.push(r)}return n}getDependency(t,e){const n=t+":"+e;let i=this.cache.get(n);if(!i){switch(t){case"scene":i=this.loadScene(e);break;case"node":i=this._invokeOne(function(t){return t.loadNode&&t.loadNode(e)});break;case"mesh":i=this._invokeOne(function(t){return t.loadMesh&&t.loadMesh(e)});break;case"accessor":i=this.loadAccessor(e);break;case"bufferView":i=this._invokeOne(function(t){return t.loadBufferView&&t.loadBufferView(e)});break;case"buffer":i=this.loadBuffer(e);break;case"material":i=this._invokeOne(function(t){return t.loadMaterial&&t.loadMaterial(e)});break;case"texture":i=this._invokeOne(function(t){return t.loadTexture&&t.loadTexture(e)});break;case"skin":i=this.loadSkin(e);break;case"animation":i=this._invokeOne(function(t){return t.loadAnimation&&t.loadAnimation(e)});break;case"camera":i=this.loadCamera(e);break;default:if(i=this._invokeOne(function(n){return n!=this&&n.getDependency&&n.getDependency(t,e)}),!i)throw new Error("Unknown type: "+t)}this.cache.add(n,i)}return i}getDependencies(t){let e=this.cache.get(t);if(!e){const n=this,i=this.json[t+("mesh"===t?"es":"s")]||[];e=Promise.all(i.map(function(e,i){return n.getDependency(t,i)})),this.cache.add(t,e)}return e}loadBuffer(t){const e=this.json.buffers[t],n=this.fileLoader;if(e.type&&"arraybuffer"!==e.type)throw new Error("THREE.GLTFLoader: "+e.type+" buffer type is not supported.");if(void 0===e.uri&&0===t)return Promise.resolve(this.extensions[EXTENSIONS.KHR_BINARY_GLTF].body);const i=this.options;return new Promise(function(t,r){n.load(LoaderUtils.resolveURL(e.uri,i.path),t,void 0,function(){r(new Error('THREE.GLTFLoader: Failed to load buffer "'+e.uri+'".'))})})}loadBufferView(t){const e=this.json.bufferViews[t];return this.getDependency("buffer",e.buffer).then(function(t){const n=e.byteLength||0,i=e.byteOffset||0;return t.slice(i,i+n)})}loadAccessor(t){const e=this,n=this.json,i=this.json.accessors[t];if(void 0===i.bufferView&&void 0===i.sparse){const t=WEBGL_TYPE_SIZES[i.type],e=WEBGL_COMPONENT_TYPES[i.componentType],n=!0===i.normalized,r=new e(i.count*t);return Promise.resolve(new BufferAttribute(r,t,n))}const r=[];return void 0!==i.bufferView?r.push(this.getDependency("bufferView",i.bufferView)):r.push(null),void 0!==i.sparse&&(r.push(this.getDependency("bufferView",i.sparse.indices.bufferView)),r.push(this.getDependency("bufferView",i.sparse.values.bufferView))),Promise.all(r).then(function(t){const r=t[0],s=WEBGL_TYPE_SIZES[i.type],a=WEBGL_COMPONENT_TYPES[i.componentType],o=a.BYTES_PER_ELEMENT,c=o*s,l=i.byteOffset||0,u=void 0!==i.bufferView?n.bufferViews[i.bufferView].byteStride:void 0,h=!0===i.normalized;let d,p;if(u&&u!==c){const t=Math.floor(l/u),n="InterleavedBuffer:"+i.bufferView+":"+i.componentType+":"+t+":"+i.count;let c=e.cache.get(n);c||(d=new a(r,t*u,i.count*u/o),c=new InterleavedBuffer(d,u/o),e.cache.add(n,c)),p=new InterleavedBufferAttribute(c,s,l%u/o,h)}else d=null===r?new a(i.count*s):new a(r,l,i.count*s),p=new BufferAttribute(d,s,h);if(void 0!==i.sparse){const e=WEBGL_TYPE_SIZES.SCALAR,n=WEBGL_COMPONENT_TYPES[i.sparse.indices.componentType],o=i.sparse.indices.byteOffset||0,c=i.sparse.values.byteOffset||0,l=new n(t[1],o,i.sparse.count*e),u=new a(t[2],c,i.sparse.count*s);null!==r&&(p=new BufferAttribute(p.array.slice(),p.itemSize,p.normalized));for(let t=0,i=l.length;t<i;t++){const e=l[t];if(p.setX(e,u[t*s]),s>=2&&p.setY(e,u[t*s+1]),s>=3&&p.setZ(e,u[t*s+2]),s>=4&&p.setW(e,u[t*s+3]),s>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return p})}loadTexture(t){const e=this.json,n=this.options,i=e.textures[t].source,r=e.images[i];let s=this.textureLoader;if(r.uri){const t=n.manager.getHandler(r.uri);null!==t&&(s=t)}return this.loadTextureImage(t,i,s)}loadTextureImage(t,e,n){const i=this,r=this.json,s=r.textures[t],a=r.images[e],o=(a.uri||a.bufferView)+":"+s.sampler;if(this.textureCache[o])return this.textureCache[o];const c=this.loadImageSource(e,n).then(function(e){e.flipY=!1,e.name=s.name||a.name||"",""===e.name&&"string"==typeof a.uri&&!1===a.uri.startsWith("data:image/")&&(e.name=a.uri);const n=(r.samplers||{})[s.sampler]||{};return e.magFilter=WEBGL_FILTERS[n.magFilter]||LinearFilter,e.minFilter=WEBGL_FILTERS[n.minFilter]||LinearMipmapLinearFilter,e.wrapS=WEBGL_WRAPPINGS[n.wrapS]||RepeatWrapping,e.wrapT=WEBGL_WRAPPINGS[n.wrapT]||RepeatWrapping,i.associations.set(e,{textures:t}),e}).catch(function(){return null});return this.textureCache[o]=c,c}loadImageSource(t,e){const n=this,i=this.json,r=this.options;if(void 0!==this.sourceCache[t])return this.sourceCache[t].then(t=>t.clone());const s=i.images[t],a=self.URL||self.webkitURL;let o=s.uri||"",c=!1;if(void 0!==s.bufferView)o=n.getDependency("bufferView",s.bufferView).then(function(t){c=!0;const e=new Blob([t],{type:s.mimeType});return o=a.createObjectURL(e),o});else if(void 0===s.uri)throw new Error("THREE.GLTFLoader: Image "+t+" is missing URI and bufferView");const l=Promise.resolve(o).then(function(t){return new Promise(function(n,i){let s=n;!0===e.isImageBitmapLoader&&(s=function(t){const e=new Texture(t);e.needsUpdate=!0,n(e)}),e.load(LoaderUtils.resolveURL(t,r.path),s,void 0,i)})}).then(function(t){return!0===c&&a.revokeObjectURL(o),assignExtrasToUserData(t,s),t.userData.mimeType=s.mimeType||getImageURIMimeType(s.uri),t}).catch(function(t){throw console.error("THREE.GLTFLoader: Couldn't load texture",o),t});return this.sourceCache[t]=l,l}assignTexture(t,e,n,i){const r=this;return this.getDependency("texture",n.index).then(function(s){if(!s)return null;if(void 0!==n.texCoord&&n.texCoord>0&&((s=s.clone()).channel=n.texCoord),r.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM]){const t=void 0!==n.extensions?n.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM]:void 0;if(t){const e=r.associations.get(s);s=r.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM].extendTexture(s,t),r.associations.set(s,e)}}return void 0!==i&&(s.colorSpace=i),t[e]=s,s})}assignFinalMaterial(t){const e=t.geometry;let n=t.material;const i=void 0===e.attributes.tangent,r=void 0!==e.attributes.color,s=void 0===e.attributes.normal;if(t.isPoints){const t="PointsMaterial:"+n.uuid;let e=this.cache.get(t);e||(e=new PointsMaterial,Material.prototype.copy.call(e,n),e.color.copy(n.color),e.map=n.map,e.sizeAttenuation=!1,this.cache.add(t,e)),n=e}else if(t.isLine){const t="LineBasicMaterial:"+n.uuid;let e=this.cache.get(t);e||(e=new LineBasicMaterial,Material.prototype.copy.call(e,n),e.color.copy(n.color),e.map=n.map,this.cache.add(t,e)),n=e}if(i||r||s){let t="ClonedMaterial:"+n.uuid+":";i&&(t+="derivative-tangents:"),r&&(t+="vertex-colors:"),s&&(t+="flat-shading:");let e=this.cache.get(t);e||(e=n.clone(),r&&(e.vertexColors=!0),s&&(e.flatShading=!0),i&&(e.normalScale&&(e.normalScale.y*=-1),e.clearcoatNormalScale&&(e.clearcoatNormalScale.y*=-1)),this.cache.add(t,e),this.associations.set(e,this.associations.get(n))),n=e}t.material=n}getMaterialType(){return MeshStandardMaterial}loadMaterial(t){const e=this,n=this.json,i=this.extensions,r=n.materials[t];let s;const a={},o=[];if((r.extensions||{})[EXTENSIONS.KHR_MATERIALS_UNLIT]){const t=i[EXTENSIONS.KHR_MATERIALS_UNLIT];s=t.getMaterialType(),o.push(t.extendParams(a,r,e))}else{const n=r.pbrMetallicRoughness||{};if(a.color=new Color(1,1,1),a.opacity=1,Array.isArray(n.baseColorFactor)){const t=n.baseColorFactor;a.color.setRGB(t[0],t[1],t[2],LinearSRGBColorSpace),a.opacity=t[3]}void 0!==n.baseColorTexture&&o.push(e.assignTexture(a,"map",n.baseColorTexture,SRGBColorSpace)),a.metalness=void 0!==n.metallicFactor?n.metallicFactor:1,a.roughness=void 0!==n.roughnessFactor?n.roughnessFactor:1,void 0!==n.metallicRoughnessTexture&&(o.push(e.assignTexture(a,"metalnessMap",n.metallicRoughnessTexture)),o.push(e.assignTexture(a,"roughnessMap",n.metallicRoughnessTexture))),s=this._invokeOne(function(e){return e.getMaterialType&&e.getMaterialType(t)}),o.push(Promise.all(this._invokeAll(function(e){return e.extendMaterialParams&&e.extendMaterialParams(t,a)})))}!0===r.doubleSided&&(a.side=DoubleSide);const c=r.alphaMode||ALPHA_MODES.OPAQUE;if(c===ALPHA_MODES.BLEND?(a.transparent=!0,a.depthWrite=!1):(a.transparent=!1,c===ALPHA_MODES.MASK&&(a.alphaTest=void 0!==r.alphaCutoff?r.alphaCutoff:.5)),void 0!==r.normalTexture&&s!==MeshBasicMaterial&&(o.push(e.assignTexture(a,"normalMap",r.normalTexture)),a.normalScale=new Vector2(1,1),void 0!==r.normalTexture.scale)){const t=r.normalTexture.scale;a.normalScale.set(t,t)}if(void 0!==r.occlusionTexture&&s!==MeshBasicMaterial&&(o.push(e.assignTexture(a,"aoMap",r.occlusionTexture)),void 0!==r.occlusionTexture.strength&&(a.aoMapIntensity=r.occlusionTexture.strength)),void 0!==r.emissiveFactor&&s!==MeshBasicMaterial){const t=r.emissiveFactor;a.emissive=(new Color).setRGB(t[0],t[1],t[2],LinearSRGBColorSpace)}return void 0!==r.emissiveTexture&&s!==MeshBasicMaterial&&o.push(e.assignTexture(a,"emissiveMap",r.emissiveTexture,SRGBColorSpace)),Promise.all(o).then(function(){const n=new s(a);return r.name&&(n.name=r.name),assignExtrasToUserData(n,r),e.associations.set(n,{materials:t}),r.extensions&&addUnknownExtensionsToUserData(i,n,r),n})}createUniqueName(t){const e=PropertyBinding.sanitizeNodeName(t||"");return e in this.nodeNamesUsed?e+"_"+ ++this.nodeNamesUsed[e]:(this.nodeNamesUsed[e]=0,e)}loadGeometries(t){const e=this,n=this.extensions,i=this.primitiveCache;function r(t){return n[EXTENSIONS.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(t,e).then(function(n){return addPrimitiveAttributes(n,t,e)})}const s=[];for(let a=0,o=t.length;a<o;a++){const n=t[a],o=createPrimitiveKey(n),c=i[o];if(c)s.push(c.promise);else{let t;t=n.extensions&&n.extensions[EXTENSIONS.KHR_DRACO_MESH_COMPRESSION]?r(n):addPrimitiveAttributes(new BufferGeometry,n,e),i[o]={primitive:n,promise:t},s.push(t)}}return Promise.all(s)}loadMesh(t){const e=this,n=this.json,i=this.extensions,r=n.meshes[t],s=r.primitives,a=[];for(let o=0,c=s.length;o<c;o++){const t=void 0===s[o].material?createDefaultMaterial(this.cache):this.getDependency("material",s[o].material);a.push(t)}return a.push(e.loadGeometries(s)),Promise.all(a).then(function(n){const a=n.slice(0,n.length-1),o=n[n.length-1],c=[];for(let u=0,h=o.length;u<h;u++){const n=o[u],l=s[u];let h;const d=a[u];if(l.mode===WEBGL_CONSTANTS.TRIANGLES||l.mode===WEBGL_CONSTANTS.TRIANGLE_STRIP||l.mode===WEBGL_CONSTANTS.TRIANGLE_FAN||void 0===l.mode)h=!0===r.isSkinnedMesh?new SkinnedMesh(n,d):new Mesh(n,d),!0===h.isSkinnedMesh&&h.normalizeSkinWeights(),l.mode===WEBGL_CONSTANTS.TRIANGLE_STRIP?h.geometry=toTrianglesDrawMode(h.geometry,TriangleStripDrawMode):l.mode===WEBGL_CONSTANTS.TRIANGLE_FAN&&(h.geometry=toTrianglesDrawMode(h.geometry,TriangleFanDrawMode));else if(l.mode===WEBGL_CONSTANTS.LINES)h=new LineSegments(n,d);else if(l.mode===WEBGL_CONSTANTS.LINE_STRIP)h=new Line(n,d);else if(l.mode===WEBGL_CONSTANTS.LINE_LOOP)h=new LineLoop(n,d);else{if(l.mode!==WEBGL_CONSTANTS.POINTS)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+l.mode);h=new Points(n,d)}Object.keys(h.geometry.morphAttributes).length>0&&updateMorphTargets(h,r),h.name=e.createUniqueName(r.name||"mesh_"+t),assignExtrasToUserData(h,r),l.extensions&&addUnknownExtensionsToUserData(i,h,l),e.assignFinalMaterial(h),c.push(h)}for(let i=0,r=c.length;i<r;i++)e.associations.set(c[i],{meshes:t,primitives:i});if(1===c.length)return r.extensions&&addUnknownExtensionsToUserData(i,c[0],r),c[0];const l=new Group$1;r.extensions&&addUnknownExtensionsToUserData(i,l,r),e.associations.set(l,{meshes:t});for(let t=0,e=c.length;t<e;t++)l.add(c[t]);return l})}loadCamera(t){let e;const n=this.json.cameras[t],i=n[n.type];if(i)return"perspective"===n.type?e=new PerspectiveCamera(MathUtils.radToDeg(i.yfov),i.aspectRatio||1,i.znear||1,i.zfar||2e6):"orthographic"===n.type&&(e=new OrthographicCamera(-i.xmag,i.xmag,i.ymag,-i.ymag,i.znear,i.zfar)),n.name&&(e.name=this.createUniqueName(n.name)),assignExtrasToUserData(e,n),Promise.resolve(e);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(t){const e=this.json.skins[t],n=[];for(let i=0,r=e.joints.length;i<r;i++)n.push(this._loadNodeShallow(e.joints[i]));return void 0!==e.inverseBindMatrices?n.push(this.getDependency("accessor",e.inverseBindMatrices)):n.push(null),Promise.all(n).then(function(t){const n=t.pop(),i=t,r=[],s=[];for(let a=0,o=i.length;a<o;a++){const t=i[a];if(t){r.push(t);const e=new Matrix4;null!==n&&e.fromArray(n.array,16*a),s.push(e)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',e.joints[a])}return new Skeleton(r,s)})}loadAnimation(t){const e=this.json,n=this,i=e.animations[t],r=i.name?i.name:"animation_"+t,s=[],a=[],o=[],c=[],l=[];for(let u=0,h=i.channels.length;u<h;u++){const t=i.channels[u],e=i.samplers[t.sampler],n=t.target,r=n.node,h=void 0!==i.parameters?i.parameters[e.input]:e.input,d=void 0!==i.parameters?i.parameters[e.output]:e.output;void 0!==n.node&&(s.push(this.getDependency("node",r)),a.push(this.getDependency("accessor",h)),o.push(this.getDependency("accessor",d)),c.push(e),l.push(n))}return Promise.all([Promise.all(s),Promise.all(a),Promise.all(o),Promise.all(c),Promise.all(l)]).then(function(t){const e=t[0],i=t[1],s=t[2],a=t[3],o=t[4],c=[];for(let r=0,l=e.length;r<l;r++){const t=e[r],l=i[r],u=s[r],h=a[r],d=o[r];if(void 0===t)continue;t.updateMatrix&&t.updateMatrix();const p=n._createAnimationTracks(t,l,u,h,d);if(p)for(let e=0;e<p.length;e++)c.push(p[e])}return new AnimationClip(r,void 0,c)})}createNodeMesh(t){const e=this.json,n=this,i=e.nodes[t];return void 0===i.mesh?null:n.getDependency("mesh",i.mesh).then(function(t){const e=n._getNodeRef(n.meshCache,i.mesh,t);return void 0!==i.weights&&e.traverse(function(t){if(t.isMesh)for(let e=0,n=i.weights.length;e<n;e++)t.morphTargetInfluences[e]=i.weights[e]}),e})}loadNode(t){const e=this,n=this.json.nodes[t],i=e._loadNodeShallow(t),r=[],s=n.children||[];for(let o=0,c=s.length;o<c;o++)r.push(e.getDependency("node",s[o]));const a=void 0===n.skin?Promise.resolve(null):e.getDependency("skin",n.skin);return Promise.all([i,Promise.all(r),a]).then(function(t){const e=t[0],n=t[1],i=t[2];null!==i&&e.traverse(function(t){t.isSkinnedMesh&&t.bind(i,_identityMatrix)});for(let r=0,s=n.length;r<s;r++)e.add(n[r]);return e})}_loadNodeShallow(t){const e=this.json,n=this.extensions,i=this;if(void 0!==this.nodeCache[t])return this.nodeCache[t];const r=e.nodes[t],s=r.name?i.createUniqueName(r.name):"",a=[],o=i._invokeOne(function(e){return e.createNodeMesh&&e.createNodeMesh(t)});return o&&a.push(o),void 0!==r.camera&&a.push(i.getDependency("camera",r.camera).then(function(t){return i._getNodeRef(i.cameraCache,r.camera,t)})),i._invokeAll(function(e){return e.createNodeAttachment&&e.createNodeAttachment(t)}).forEach(function(t){a.push(t)}),this.nodeCache[t]=Promise.all(a).then(function(e){let a;if(a=!0===r.isBone?new Bone:e.length>1?new Group$1:1===e.length?e[0]:new Object3D,a!==e[0])for(let t=0,n=e.length;t<n;t++)a.add(e[t]);if(r.name&&(a.userData.name=r.name,a.name=s),assignExtrasToUserData(a,r),r.extensions&&addUnknownExtensionsToUserData(n,a,r),void 0!==r.matrix){const t=new Matrix4;t.fromArray(r.matrix),a.applyMatrix4(t)}else void 0!==r.translation&&a.position.fromArray(r.translation),void 0!==r.rotation&&a.quaternion.fromArray(r.rotation),void 0!==r.scale&&a.scale.fromArray(r.scale);return i.associations.has(a)||i.associations.set(a,{}),i.associations.get(a).nodes=t,a}),this.nodeCache[t]}loadScene(t){const e=this.extensions,n=this.json.scenes[t],i=this,r=new Group$1;n.name&&(r.name=i.createUniqueName(n.name)),assignExtrasToUserData(r,n),n.extensions&&addUnknownExtensionsToUserData(e,r,n);const s=n.nodes||[],a=[];for(let o=0,c=s.length;o<c;o++)a.push(i.getDependency("node",s[o]));return Promise.all(a).then(function(t){for(let e=0,n=t.length;e<n;e++)r.add(t[e]);return i.associations=(t=>{const e=new Map;for(const[n,r]of i.associations)(n instanceof Material||n instanceof Texture)&&e.set(n,r);return t.traverse(t=>{const n=i.associations.get(t);null!=n&&e.set(t,n)}),e})(r),r})}_createAnimationTracks(t,e,n,i,r){const s=[],a=t.name?t.name:t.uuid,o=[];let c;switch(PATH_PROPERTIES[r.path]===PATH_PROPERTIES.weights?t.traverse(function(t){t.morphTargetInfluences&&o.push(t.name?t.name:t.uuid)}):o.push(a),PATH_PROPERTIES[r.path]){case PATH_PROPERTIES.weights:c=NumberKeyframeTrack;break;case PATH_PROPERTIES.rotation:c=QuaternionKeyframeTrack;break;case PATH_PROPERTIES.position:case PATH_PROPERTIES.scale:c=VectorKeyframeTrack;break;default:if(1===n.itemSize)c=NumberKeyframeTrack;else c=VectorKeyframeTrack}const l=void 0!==i.interpolation?INTERPOLATION[i.interpolation]:InterpolateLinear,u=this._getArrayFromAccessor(n);for(let h=0,d=o.length;h<d;h++){const t=new c(o[h]+"."+PATH_PROPERTIES[r.path],e.array,u,l);"CUBICSPLINE"===i.interpolation&&this._createCubicSplineTrackInterpolant(t),s.push(t)}return s}_getArrayFromAccessor(t){let e=t.array;if(t.normalized){const t=getNormalizedComponentScale(e.constructor),n=new Float32Array(e.length);for(let i=0,r=e.length;i<r;i++)n[i]=e[i]*t;e=n}return e}_createCubicSplineTrackInterpolant(t){t.createInterpolant=function(t){return new(this instanceof QuaternionKeyframeTrack?GLTFCubicSplineQuaternionInterpolant:GLTFCubicSplineInterpolant)(this.times,this.values,this.getValueSize()/3,t)},t.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function computeBounds(t,e,n){const i=e.attributes,r=new Box3;if(void 0===i.POSITION)return;{const t=n.json.accessors[i.POSITION],e=t.min,s=t.max;if(void 0===e||void 0===s)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(r.set(new Vector3(e[0],e[1],e[2]),new Vector3(s[0],s[1],s[2])),t.normalized){const e=getNormalizedComponentScale(WEBGL_COMPONENT_TYPES[t.componentType]);r.min.multiplyScalar(e),r.max.multiplyScalar(e)}}const s=e.targets;if(void 0!==s){const t=new Vector3,e=new Vector3;for(let i=0,r=s.length;i<r;i++){const r=s[i];if(void 0!==r.POSITION){const i=n.json.accessors[r.POSITION],s=i.min,a=i.max;if(void 0!==s&&void 0!==a){if(e.setX(Math.max(Math.abs(s[0]),Math.abs(a[0]))),e.setY(Math.max(Math.abs(s[1]),Math.abs(a[1]))),e.setZ(Math.max(Math.abs(s[2]),Math.abs(a[2]))),i.normalized){const t=getNormalizedComponentScale(WEBGL_COMPONENT_TYPES[i.componentType]);e.multiplyScalar(t)}t.max(e)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}r.expandByVector(t)}t.boundingBox=r;const a=new Sphere;r.getCenter(a.center),a.radius=r.min.distanceTo(r.max)/2,t.boundingSphere=a}function addPrimitiveAttributes(t,e,n){const i=e.attributes,r=[];function s(e,i){return n.getDependency("accessor",e).then(function(e){t.setAttribute(i,e)})}for(const a in i){const e=ATTRIBUTES[a]||a.toLowerCase();e in t.attributes||r.push(s(i[a],e))}if(void 0!==e.indices&&!t.index){const i=n.getDependency("accessor",e.indices).then(function(e){t.setIndex(e)});r.push(i)}return ColorManagement.workingColorSpace!==LinearSRGBColorSpace&&"COLOR_0"in i&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${ColorManagement.workingColorSpace}" not supported.`),assignExtrasToUserData(t,e),computeBounds(t,e,n),Promise.all(r).then(function(){return void 0!==e.targets?addMorphTargets(t,e.targets,n):t})}const DEG2RAD=Math.PI/180,RAD2DEG=180/Math.PI;function clamp(t,e,n){return Math.max(e,Math.min(n,t))}const v$6=N$H;function N$H(t,e){const n=E$H();return(N$H=function(t,e){return n[t-=238]})(t,e)}!function(t,e){const n=N$H,i=t();for(;;)try{if(488930===-parseInt(n(292))/1+parseInt(n(254))/2*(parseInt(n(265))/3)+-parseInt(n(243))/4*(-parseInt(n(380))/5)+parseInt(n(300))/6+-parseInt(n(353))/7*(parseInt(n(252))/8)+-parseInt(n(328))/9*(-parseInt(n(342))/10)+parseInt(n(368))/11)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$H);let debug=location[v$6(258)][v$6(340)](v$6(425))||window[v$6(401)];const texureLoader=new TextureLoader,gltfLoader=new GLTFLoader,d$t=document[v$6(414)](v$6(403));let J$j;function showMessage(t,e=3e3){const n=v$6,i={ndhmW:n(322),aUJOr:n(320),CZPkD:n(314),sYlDt:function(t,e){return t(e)},VMjEb:n(421),sSriH:n(289),aBNcO:n(274),Vfvgd:n(241),gdDYE:n(348),oFuHz:function(t,e,n){return t(e,n)},XlrlM:n(307),GOmAm:n(313)},r=i[n(272)][n(383)]("|");let s=0;for(;;){switch(r[s++]){case"0":if(!debug)return;continue;case"1":d$t[n(397)][n(363)]="0";continue;case"2":d$t[n(397)][n(286)]=i[n(357)];continue;case"3":d$t[n(371)]=""+t;continue;case"4":d$t[n(397)][n(411)]="0";continue;case"5":d$t[n(397)][n(283)]=i[n(294)];continue;case"6":i[n(333)](clearTimeout,J$j);continue;case"7":d$t[n(397)][n(359)]=i[n(306)];continue;case"8":d$t[n(397)][n(266)]=i[n(381)];continue;case"9":d$t[n(397)][n(269)]=i[n(362)];continue;case"10":document[n(329)][n(332)](d$t);continue;case"11":d$t[n(397)][n(400)]=i[n(374)];continue;case"12":d$t[n(397)][n(361)]=i[n(296)];continue;case"13":J$j=i[n(251)](setTimeout,()=>{const t=n;document[t(329)][t(377)](d$t)},e);continue;case"14":d$t[n(397)][n(331)]=i[n(423)];continue;case"15":d$t[n(397)][n(316)]=i[n(350)];continue}break}}const log=new class{constructor(){__publicField(this,_b2,document[v$6(414)](v$6(403))),__publicField(this,_a2,{});const t=v$6,e={euWio:t(323),ajYfZ:t(241),WrwOU:t(320),NQYTJ:t(310),BerNE:t(421),zPjqF:function(t,e,n){return t(e,n)},zkChU:t(314),sgKaf:t(348),UKLXs:t(289)},n=e[t(324)][t(383)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[t(403)][t(397)][t(347)]="0";continue;case"1":this[t(403)][t(397)][t(375)]="0";continue;case"2":this[t(403)][t(397)][t(400)]=e[t(406)];continue;case"3":this[t(403)][t(397)][t(286)]=e[t(341)];continue;case"4":this[t(403)][t(397)][t(269)]=e[t(295)];continue;case"5":this[t(403)][t(397)][t(359)]=e[t(244)];continue;case"6":e[t(390)](setTimeout,()=>{const e=t;document[e(329)][e(332)](this[e(403)])},3e3);continue;case"7":this[t(403)][t(397)][t(283)]=e[t(422)];continue;case"8":this[t(403)][t(397)][t(361)]=e[t(293)];continue;case"9":this[t(403)][t(397)][t(266)]=e[t(393)];continue}break}}[(_b2=v$6(403),_a2=v$6(424),v$6(385))](t,e){const n=v$6;debug&&(this[n(424)][t]=e,this[n(259)]())}[v$6(318)](t){const e=v$6;debug&&(Object[e(270)](this[e(424)],t),this[e(259)]())}[v$6(259)](){const t=v$6;if(!debug)return;let e="";for(const n in this[t(424)])e+=n+": "+this[t(424)][n]+", ";this[t(403)][t(371)]=""+e}};function setSize(t,e,n){const i=v$6,r={PgKCE:function(t,e){return t*e},vRfaZ:function(t,e){return t in e},WENdx:i(339),nDRYj:function(t,e){return t/e},vzknt:function(t,e){return t(e)}};if(e&&(t[i(303)]=r[i(388)](e,r[i(321)](r[i(242)],t[i(349)][i(312)])||isPc?1:devicePixelRatio)),!t[i(349)]||!t[i(349)][i(312)][i(278)])return;const{height:s,width:a}=t[i(349)][i(312)][i(278)];let o=r[i(287)](s,n);r[i(277)](isNaN,o)&&(o=1),t[i(338)][i(248)](o,o,1)[i(298)](r[i(287)](r[i(388)](t[i(338)].x,a),s))[i(262)](t[i(303)]||1)}class Collision{constructor(){__publicField(this,_c);this[v$6(238)]=[]}[(_c=v$6(238),v$6(335))](){const t=v$6;this[t(238)][t(309)]=0}[v$6(398)](t){const e=v$6;if({ExSYd:function(t,e){return t===e}}[e(396)](this[e(238)][e(309)],0))return this[e(238)][e(398)](t),!1;for(var n in this[e(238)]){var i=this[e(238)][n];if(this[e(344)](i,t))return!0}return this[e(238)][e(398)](t),!1}[v$6(344)](t,e){const n=v$6,i={fhSli:function(t,e){return t<e},JpbSd:function(t,e){return t+e},DaWse:function(t,e){return t>e},PBIGd:function(t,e){return t+e},gRxIp:function(t,e){return t+e},jedtY:function(t,e){return t>e}};return i[n(257)](t.x,i[n(291)](e.x,e.w))&&i[n(299)](i[n(334)](t.x,t.w),e.x)&&i[n(257)](t.y,i[n(352)](e.y,e.h))&&i[n(399)](i[n(352)](t.h,t.y),e.y)}}function convert3dTo2d(t,e,n){const i=v$6,r={NvXdP:function(t,e){return t*e},yiXBD:function(t,e){return t/e},AHVrw:function(t,e){return t+e},IwoUR:function(t,e){return t-e},wpbeZ:function(t,e){return t<=e},IIDGy:function(t,e){return t>=e},gusJg:function(t,e){return t<e}};let s=(new Vector3)[i(417)](t)[i(288)](e);const{clientWidth:a,clientHeight:o}=n;let c=r[i(317)](r[i(250)](r[i(382)](s.x,1),2),a),l=r[i(317)](r[i(268)](1,r[i(250)](r[i(382)](s.y,1),2)),o),u=r[i(260)](c,n[i(253)])&&r[i(290)](c,0)&&r[i(260)](l,n[i(279)])&&r[i(290)](l,0);return{pos:new Vector2(c,l),vector:s,trueSide:r[i(376)](s.z,1),inSight:u}}function createShortId(){const t=v$6;return Math[t(330)]()[t(404)](36)[t(311)](2,10)}function reactiveEvent(t,e){const n=v$6,i={zcBRf:function(t,e){return t!==e},FZNWR:function(t,e,n){return t(e,n)}};let r={};for(const s in t)Object[n(326)](r,s,{get:()=>t[s],set(r){const a=n;i[a(395)](r,t[s])&&(t[s]=r,i[a(343)](e,s,r))}});return r}function E$H(){const t=["zcBRf","ExSYd","style","push","jedtY","color","debug","multiplyMatrices","div","toString","wTZHn","ajYfZ","SzxyE","GTqAQ","onmessage","micromessenger","top","match","eTqfe","createElement","epORR","YJuyY","copy","trident","HnMXT","tAhsb","pre-wrap","zkChU","XlrlM","obj","log=","rects","clientY","ViCSv","#ffffff","WENdx","884NSYbMP","BerNE","changedTouches","angleTo","resolve","set","dKaRd","yiXBD","oFuHz","5496enoJUk","clientWidth","10PDZnUr","sFxLH","kTLeR","fhSli","href","update","wpbeZ","sub","multiplyScalar","VrhHT","lRAFX","38505FVdhIR","maxWidth","promise","IwoUR","backgroundColor","assign","cross","ndhmW","LOaEM","red","XgDNq","now","vzknt","image","clientHeight","fulfilled","SrNkB","ipad","pointerEvents","kZTGJ","rNkIK","zIndex","nDRYj","project","100vw","IIDGy","JpbSd","976436KXTMne","sgKaf","CZPkD","NQYTJ","gdDYE","createObjectURL","setX","DaWse","1313670VqVUVt","CTSwx","linux","_scale","bwNUU","EmUjt","VMjEb","5px","status","length","rgba(0,0,0,0.5)","substring","map","3px","none","android","borderRadius","NvXdP","showlogs","smeSF","99999","vRfaZ","0|6|12|4|1|8|7|11|5|9|15|14|2|3|10|13","8|1|0|9|5|2|7|4|3|6","euWio","toLowerCase","defineProperty","XXpKH","8273943HnpVMA","body","random","padding","appendChild","sYlDt","PBIGd","clear","Lyrqs","clientX","scale","_text","includes","WrwOU","10YOVEMl","FZNWR","collision","GSAqx","matrixWorldInverse","left","fixed","material","GOmAm","mobile","gRxIp","9037pTOrdC","jVcOP","iphone","projectionMatrix","aUJOr","touches","whiteSpace","PuusY","position","aBNcO","right","hHtpT","UOJbC","nUuYC","EViJZ","5250663XrZpjX","sqrt","postMessage","innerHTML","containsPoint","RXgwR","Vfvgd","bottom","gusJg","removeChild","obvDA","userAgent","15215UHTSHo","sSriH","AHVrw","split",")()","show","setFromProjectionMatrix","ZVQFj","PgKCE","hJUhn","zPjqF","pending","exec","UKLXs","WTDGt"];return(E$H=function(){return t})()}function getPromise(){const t=v$6,e={XXpKH:t(280),SzxyE:function(t,...e){return t(...e)},RXgwR:t(391)},n={status:e[t(373)]};return n[t(267)]=new Promise(i=>{const r=t,s={kTLeR:e[r(327)],jVcOP:function(t,...n){return e[r(407)](t,...n)}};n[r(247)]=(...t)=>{const e=r;n[e(308)]=s[e(256)],s[e(354)](i,...t)}}),n}function getURLQuery(t=location[v$6(258)]){const e=v$6,n={},i=/([^?&=]+)=([^?&=]+)/g;let r=i[e(392)](t);for(;r;)n[r[1]]=r[2],r=i[e(392)](t);return n}function fps(t,e){const n=v$6,i={ZVQFj:function(t,e){return t-e},Lyrqs:function(t,e){return t>e},sFxLH:function(t,e){return t-e},rNkIK:function(t,e){return t%e},GTqAQ:function(t){return t()},epORR:function(t,e){return t/e}};let r,s,a=Date[n(276)](),o=i[n(415)](1e3,debug?100:e);return()=>{const e=n;r=Date[e(276)](),s=i[e(387)](r,a),i[e(336)](s,o)&&(a=i[e(255)](r,i[e(285)](s,o)),i[e(408)](t))}}function getLineLength(t,e){const n=v$6,i={smeSF:function(t,e){return t in e},LOaEM:function(t,e){return t+e},ViCSv:function(t,e){return t**e},PuusY:function(t,e){return t-e},VrhHT:function(t,e){return t**e}};let r=i[n(319)]("x",t),s=r?t.x:t[0],a=r?t.y:t[1],o=i[n(319)]("x",e),c=o?e.x:e[0],l=o?e.y:e[1];return Math[n(369)](i[n(273)](i[n(240)](i[n(360)](c,s),2),i[n(263)](i[n(360)](l,a),2)))}const ua=function(){const t=v$6,e={hJUhn:t(315),XgDNq:t(302),obvDA:t(355),CTSwx:t(282),GSAqx:t(410),kZTGJ:function(t,e){return t&&e},nUuYC:t(418)},n=navigator[t(379)][t(325)]();let i=!!n[t(412)](/\(i[^;]+;( u;)? cpu.+mac os x/),r=n[t(340)](e[t(389)])||n[t(340)](e[t(275)]),s=n[t(340)](e[t(378)]),a=n[t(340)](e[t(301)]),o=n[t(340)](e[t(345)]),c=e[t(284)](!o,!a)&&!i&&!s&&!r;return{ie:n[t(340)](e[t(366)]),mobile:!c,ios:i,android:r,iphone:s,ipad:a,wx:o,pc:c}}(),isPc=!ua[v$6(351)]&&!ua[v$6(282)];function getXY(t){const e=v$6,n={SrNkB:function(t,e){return t in e},dKaRd:e(337)};return n[e(281)](n[e(249)],t)?{x:t[e(337)],y:t[e(239)]}:t[e(358)]&&t[e(358)][0]?{x:t[e(358)][0][e(337)],y:t[e(358)][0][e(239)]}:t[e(245)]&&t[e(245)][0]?{x:t[e(245)][0][e(337)],y:t[e(245)][0][e(239)]}:t}function getLineAngle(t,e,n){const i=v$6;let r=(new Vector2)[i(417)](t),s=(new Vector2)[i(417)](e),a=(new Vector2)[i(417)](n),o=r[i(261)](s),c=a[i(261)](s),l=o[i(246)](c),u=o[i(271)](c);return{deg:{WTDGt:function(t,e){return t*e}}[i(394)](l,RAD2DEG),cross:u,rad:l}}const isPointInScreen=function(){const t=new Frustum,e=new Matrix4,n=new Vector3;return function(i,r){const s=N$H,a=e[s(402)](i[s(356)],i[s(346)]);return t[s(386)](a),t[s(372)](n[s(417)](r))}}();function pointInPolygon(t,e){const n=v$6,i={EmUjt:function(t,e){return t-e},wTZHn:function(t,e){return t<e},HnMXT:function(t,e){return t!==e},lRAFX:function(t,e){return t>e},YJuyY:function(t,e){return t>e},hHtpT:function(t,e){return t<e},UOJbC:function(t,e){return t+e},EViJZ:function(t,e){return t/e},tAhsb:function(t,e){return t*e},bwNUU:function(t,e){return t-e}},r=t.x,s=t.y;let a=!1;for(let o=0,c=i[n(305)](e[n(309)],1);i[n(405)](o,e[n(309)]);c=o++){const t=e[o].x,l=e[o].y,u=e[c].x,h=e[c].y;i[n(419)](i[n(264)](l,s),i[n(416)](h,s))&&i[n(364)](r,i[n(365)](i[n(367)](i[n(420)](i[n(305)](u,t),i[n(304)](s,l)),i[n(304)](h,l)),t))&&(a=!a)}return a}function E$G(){const t=["lBNYl","9vYVRSd","plane","293786glbWbU","HflpP","off","add","_noClick","216YpAwit","dRWiO","lnglat","height","traverse","split","setFromCamera","intersectObjectsBy2D","now","BBVPE","handleIntersect","click","JcOgd","NxDtJ","sort","pointerout","ydyVn","enterList","addEventListener","camera","2007006raEKeP","100341PQQVLG","renderOrder","expkl","HRYhi","delete","pointerdown","GcegG","clientHeight","dRBCk","JeNTd","dispose","defineProperty","kHoLY","tPOCS","yEagU","WdSkI","LUYFE","emit","clientWidth","EjTQK","TECjf","button","intersectionList","MiNow","find","iWXyj","style","default","hasEvent","removeEventListener","object","dSssZ","PVRgz","OImMB","2160268HJoEWo","left","cursor","getBoundingClientRect","fDnCQ","ibHQn","parent","point","push","prototype","_listeners","isArray","bXgNd","set","vAimd","pointerenter","eNPNq","leftclick","efQtp","apply","map","MdBDp","pVDKr","top","handleEvent","has","3040215LhKxGB","uuid","visible","rightclick","AvtOY","qgCqU","ofOoH","TPfdU","length","pointermove","initListener","raycaster","intersectObjects","dwYjU","slice","RthwM","pointerup","intersectObjectsByLine","container2","canvas","handEnterOut","function","TETvd","SKyDe","ibWNu","3996755srYsZI","amap","XuNSK","abs","width","PZfYf","uqolx","coordsToLngLatWorld","_click","event","243293PLJXzP","3|2|1|4|0"];return(E$G=function(){return t})()}const e$8=N$G;!function(t,e){const n=N$G,i=t();for(;;)try{if(551437===parseInt(n(525))/1+parseInt(n(530))/2*(parseInt(n(528))/3)+parseInt(n(590))/4+-parseInt(n(490))/5+-parseInt(n(555))/6+parseInt(n(515))/7+parseInt(n(535))/8*(-parseInt(n(556))/9))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$G);const d$s=new Set;EventDispatcher[e$8(473)].on=function(t,e){const n=e$8,i={dSssZ:n(566),AvtOY:function(t,e){return t!==e},efQtp:n(511),XuNSK:function(t,e){return t instanceof e}};if(!i[n(494)](typeof e,i[n(482)])){if(this[n(553)](t,e),!d$s[n(489)](this)&&i[n(517)](this,Object3D)){d$s[n(533)](this);const t=()=>{const e=n;d$s[e(560)](this),this[e(585)](i[e(587)],t)};this[n(553)](i[n(587)],t)}return this}},EventDispatcher[e$8(473)][e$8(532)]=function(t,e){return this[e$8(585)](t,e),this},EventDispatcher[e$8(473)][e$8(573)]=function(t,...e){const n=e$8,i={WdSkI:function(t,e){return t===e},yEagU:function(t,e){return t<e}};if(i[n(571)](this[n(474)],void 0)||!this[n(474)][t])return;const r=(this[n(474)][t]||[])[n(504)](0);for(let s=0;i[n(570)](s,r[n(498)]);s++)r[s][n(483)](this,e);return this};let J$i=class extends EventDispatcher{constructor(t){var e=(...t)=>(super(...t),__publicField(this,_h),__publicField(this,_g),__publicField(this,_f),__publicField(this,_e,[]),__publicField(this,_d,new Mesh(new PlaneGeometry(1e9,1e9))),this);const n=e$8,i={TETvd:n(526)}[n(512)][n(540)]("|");let r=0;for(;;){switch(i[r++]){case"0":this[n(500)]();continue;case"1":this[n(552)]={};continue;case"2":this[n(484)]=t;continue;case"3":e();continue;case"4":this[n(501)]=new Raycaster;continue}break}}get[(_h=e$8(484),_g=e$8(501),_f=e$8(552),_e=e$8(578),_d=e$8(529),e$8(554))](){const t=e$8;return this[t(484)][t(554)]}get[e$8(509)](){const t=e$8;return this[t(484)][t(516)][t(508)]}[e$8(545)](t,e){const n=e$8,i={vAimd:n(537),ydyVn:function(t,e,n){return t(e,n)}};this[n(501)][n(541)](i[n(551)](screenPosTo3dPos,t,this[n(509)]),this[n(554)]);let r=e||[...d$s],s=[];Array[n(475)](r)?r[n(484)](t=>{const e=n;t[e(539)](t=>{const n=e;(t[n(523)]||t[n(492)])&&!t[n(534)]&&s[n(472)](t)})}):r[n(539)](t=>{const e=n;(t[e(523)]||t[e(492)])&&!t[e(534)]&&s[e(472)](t)}),this[n(578)]=this[n(501)][n(502)](s,!1)[n(549)]((t,e)=>e[n(586)][n(557)]-t[n(586)][n(557)]);let a=this[n(484)];this[n(578)][n(484)](t=>{const e=n;Object[e(567)](t,i[e(478)],{get(){const t=e;return a[t(522)](this[t(597)])}})})}[e$8(500)](){const t=e$8,e={PVRgz:function(t,e){return t(e)},GcegG:t(561),qgCqU:function(t,e){return t<=e},expkl:function(t,e){return t-e},MdBDp:function(t,e){return t-e},OImMB:t(546),TECjf:function(t,e){return t===e},bXgNd:t(481),BBVPE:function(t,e){return t===e},fDnCQ:t(493),dRWiO:t(506),PZfYf:t(499),MiNow:t(583),pVDKr:function(t){return t()},LUYFE:function(t,e){return t(e)},iWXyj:function(t,e){return t>e},TPfdU:function(t){return t()},NxDtJ:function(t,e,n){return t(e,n)}};let n;this[t(509)][t(553)](e[t(562)],i=>{const r=t;this[r(545)](i),n=e[r(588)](getXY,i),this[r(488)](i,e[r(562)])}),this[t(509)][t(553)](e[t(536)],i=>{const r=t;let s=e[r(588)](getXY,i);e[r(495)](Math[r(518)](e[r(558)](s.x,n.x)),3)&&e[r(495)](Math[r(518)](e[r(485)](s.y,n.y)),3)&&(this[r(545)](i),this[r(488)](i,e[r(589)]),this[r(573)](e[r(589)],i),e[r(576)](i[r(577)],0)?(this[r(488)](i,e[r(476)]),this[r(573)](e[r(476)],i)):e[r(544)](i[r(577)],2)&&(this[r(488)](i,e[r(594)]),this[r(573)](e[r(594)],i))),this[r(488)](i,e[r(536)])});let i,r=Date[t(543)]();ua.pc&&this[t(509)][t(553)](e[t(520)],n=>{const s=t,a={dwYjU:e[s(520)],SKyDe:e[s(579)],eNPNq:function(t){return e[s(486)](t)}};i&&e[s(572)](clearTimeout,i);const o=()=>{const t=s;this[t(545)](n),this[t(573)](a[t(503)],n),this[t(488)](n,a[t(503)]),this[t(510)](n);const e=this[t(578)][0];this[t(509)][t(582)][t(592)]=e&&e[t(586)][t(592)]||a[t(513)]};e[s(581)](e[s(485)](Date[s(543)](),r),60)&&(e[s(497)](o),r=Date[s(543)]()),i=e[s(548)](setTimeout,()=>{const t=s;a[t(480)](o),r=Date[t(543)]()},60)})}[e$8(510)](t){const e=e$8,n={RthwM:e(479),lBNYl:e(550)};this[e(578)][e(484)](i=>{const r=e;!this[r(552)][i[r(586)][r(491)]]&&(i[r(586)][r(573)](n[r(505)],{event:t,...i}),this[r(552)][i[r(586)][r(491)]]=i[r(586)])});for(const i in this[e(552)]){const r=this[e(552)][i];!this[e(578)][e(580)](t=>t[e(586)][e(491)]===i)&&(delete this[e(552)][i],r[e(573)](n[e(527)],{event:t,object:r}))}}[e$8(584)](t,e){const n=e$8;return t[n(474)]&&t[n(474)][e]&&t[n(474)][e][n(498)]}[e$8(488)](t,e){const n=e$8,i={dRBCk:function(t,e,n){return t(e,n)},ibHQn:function(t,e,n){return t(e,n)}};let r={},s=(n,a)=>{const o=N$G;if(!n)return;this[o(584)](n,e)&&!r[n.id]&&(r[n.id]=1,a[o(524)]=t,n[o(573)](e,a)),i[o(564)](s,n[o(596)],a)},a=!1;this[n(578)][n(484)](r=>{const o=n;!a&&this[o(584)](r[o(586)],e)&&(r[o(524)]=t,r[o(586)][o(573)](e,r),a=!0),i[o(595)](s,r[o(586)][o(596)],r)})}[e$8(507)](t,e,n=[]){const i=e$8;return this[i(501)][i(477)](t,e),this[i(501)][i(502)](n,!0)}[e$8(542)](t,e=[]){const n=e$8;return this[n(501)][n(541)]({EjTQK:function(t,e,n){return t(e,n)}}[n(575)](screenPosTo3dPos,t,this[n(509)]),this[n(554)]),this[n(501)][n(502)](e,!0)}};function N$G(t,e){const n=E$G();return(N$G=function(t,e){return n[t-=472]})(t,e)}function screenPosTo3dPos(t,e){const n=e$8,i={HRYhi:function(t,e){return t(e)},kHoLY:function(t,e){return t/e},tPOCS:function(t,e){return t*e},JcOgd:function(t,e){return t-e},uqolx:function(t,e){return t/e},ibWNu:function(t,e){return t*e},JeNTd:function(t,e){return t-e},HflpP:function(t,e){return t-e},ofOoH:function(t,e){return t+e}},{x:r,y:s}=i[n(559)](getXY,t),a=e[n(593)](),o={x:i[n(568)](i[n(569)](i[n(547)](r,a[n(591)]),e[n(574)]),a[n(519)]),y:i[n(521)](i[n(514)](i[n(565)](s,a[n(487)]),e[n(563)]),a[n(538)])},c=new Vector2;return c.x=i[n(531)](i[n(514)](i[n(568)](o.x,e[n(574)]),2),1),c.y=i[n(496)](i[n(514)](i[n(568)](o.y,e[n(563)]),-2),1),c}const d$r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZIAAAHyCAMAAAD2qLiSAAADI2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDJGNDIyNTVFMjIwMTFFQzhEM0JFRTRCODREQ0E5NzUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDJGNDIyNTZFMjIwMTFFQzhEM0JFRTRCODREQ0E5NzUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpEMkY0MjI1M0UyMjAxMUVDOEQzQkVFNEI4NERDQTk3NSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEMkY0MjI1NEUyMjAxMUVDOEQzQkVFNEI4NERDQTk3NSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmJkHWMAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAANlBMVEUAAAAAAAAF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",J$h="data:image/png;base64,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",x$d="data:image/png;base64,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",a$c="data:image/png;base64,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",n$b="data:image/png;base64,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",C$b="data:image/png;base64,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",o$8="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZIAAAHyCAMAAAD2qLiSAAADI2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REEzNzA1MjRFMjIwMTFFQzk5MkY4MzFFNTc1NjU3NEIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6REEzNzA1MjVFMjIwMTFFQzk5MkY4MzFFNTc1NjU3NEIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpEQTM3MDUyMkUyMjAxMUVDOTkyRjgzMUU1NzU2NTc0QiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEQTM3MDUyM0UyMjAxMUVDOTkyRjgzMUU1NzU2NTc0QiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiwRsYYAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAPFBMVEUAAAACAAAA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",t$1=N$F;function N$F(t,e){const n=E$F();return(N$F=function(t,e){return n[t-=249]})(t,e)}!function(t,e){const n=N$F,i=t();for(;;)try{if(549215===parseInt(n(262))/1+parseInt(n(249))/2+parseInt(n(251))/3+-parseInt(n(253))/4+-parseInt(n(264))/5*(parseInt(n(258))/6)+-parseInt(n(254))/7*(parseInt(n(261))/8)+parseInt(n(260))/9*(parseInt(n(263))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$F);const lowPower=getURLQuery()[t$1(252)];console[t$1(256)](t$1(265),lowPower);const b$b={api:(null==(_i=window[t$1(255)])?void 0:_i[t$1(259)])||t$1(250),api2:(null==(_j=window[t$1(255)])?void 0:_j[t$1(259)])||t$1(267),texList:{"洗手间":C$b,"卫生间":C$b,"电梯":J$h,"扶梯":a$c,"楼梯":n$b,"步梯":n$b,"大门":d$r,"停车场":o$8,"安全出口":x$d,"出入口":x$d}},u$a=5,H$a=6,w$a=7,g$7=8,U$5=9,EnterType={stairs:u$a,escalator:H$a,elevator:w$a,indoor:g$7,motorway:U$5,[u$a]:{name:"楼梯",id:u$a},[H$a]:{name:"扶梯",id:H$a},[w$a]:{name:"电梯",id:w$a},[g$7]:{name:t$1(257),id:g$7},[U$5]:{name:t$1(266),id:U$5}},z$4=0,e$7=1,y$3=2,c$3=3,f$2=4,v$5=10;function E$F(){const t=["机动车道","https://lbsapi.vgomap.com/","450646fIKysr","https://test.3dwxb.com/","844905GMMQIy","lowPower","2213716mpTIYr","77QEeXIQ","$config","log","出入口","1515918vJTRSZ","api","18027CMBRwm","286792VjdKUt","656074czTcBn","4190cEVgCU","10OAexAm","TCL: lowPower"];return(E$F=function(){return t})()}const CrossType={block:z$4,manCar:e$7,man:y$3,manOnly:c$3,car:f$2,carOnly:v$5,[z$4]:{name:"不通",id:z$4},[e$7]:{name:"人车",id:e$7},[y$3]:{name:"人",id:y$3},[f$2]:{name:"车",id:f$2},[c$3]:{name:"仅人",id:c$3},[v$5]:{name:"仅车",id:v$5}},renderOrderConfig={line:1e4,arrow:10003,positionMarker:10009,beaconDetectShow:1e5,beacon:9999,testMsgSprite:100101,startEnd:10002};function E$E(){const t=["style","add","display","childrenPool","BRypR","splice","remove","removeFromParent","4788AeHBwN","436ovKkTF","traverse","object3d","dispose","children","addFromChildrnPool","20466888jPsdbm","destory","none","8272sJRHxS","103932enWrKy","2081544jUzkjT","710eDCnjF","ySJqf","UiVjr","626mQCvjK","584230rarCrp","11XZqQaL","data","1230qhehdm","5487kVShrk","spIqX","push","map","findIndex","isCSS2DObject","element","indexOf","parent"];return(E$E=function(){return t})()}const u$9=N$E;function N$E(t,e){const n=E$E();return(N$E=function(t,e){return n[t-=334]})(t,e)}!function(t,e){const n=N$E,i=t();for(;;)try{if(456551===parseInt(n(347))/1*(-parseInt(n(351))/2)+parseInt(n(352))/3*(parseInt(n(370))/4)+parseInt(n(348))/5+parseInt(n(343))/6+parseInt(n(369))/7*(-parseInt(n(341))/8)+-parseInt(n(342))/9*(parseInt(n(344))/10)+-parseInt(n(349))/11*(-parseInt(n(338))/12))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$E);let d$q=class extends EventDispatcher{constructor(){super(...arguments),__publicField(this,_p),__publicField(this,_o,[]),__publicField(this,_n,[]),__publicField(this,_m),__publicField(this,_l),__publicField(this,_k)}[(_p=u$9(360),_o=u$9(336),_n=u$9(364),_m=u$9(334),_l=u$9(355),_k=u$9(350),u$9(362))](t){const e=u$9;t[e(360)]&&(t[e(360)]=null),{spIqX:function(t,e){return t<e}}[e(353)](this[e(336)][e(359)](t),0)&&(this[e(334)][e(362)](t[e(334)]),t[e(360)]=this,this[e(336)][e(354)](t))}[u$9(367)](t){const e=u$9,n={UiVjr:e(340),BRypR:function(t,e){return t>e}};let i=this[e(336)][e(359)](t);n[e(365)](i,-1)&&(this[e(336)][e(366)](i,1),t[e(334)][e(368)](),t[e(334)][e(371)](t=>{const i=e;t[i(357)]&&(t[i(358)][i(361)][i(363)]=n[i(346)])}),this[e(364)][e(354)](t))}[u$9(337)](t){const e=u$9;let n,i=this[e(364)][e(356)](n=>n[e(350)].id===t);return{ySJqf:function(t,e){return t>e}}[e(345)](i,-1)&&(n=this[e(364)][e(366)](i,1)[0],this[e(336)][e(354)](n),n[e(360)]=this,this[e(334)][e(362)](n[e(334)])),n}[u$9(368)](){var t;const e=u$9;null==(t=this[e(360)])||t[e(367)](this)}[u$9(339)](){const t=u$9;this[t(336)][t(355)](e=>{e[t(360)]=null}),this[t(334)][t(335)]()}};const d$p="data:image/jpeg;base64,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Ak4AAQACOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAAeOEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0EAAAAAAAAAgAAOEJJTQQCAAAAAAACAAA4QklNBDAAAAAAAAEBADhCSU0ELQAAAAAABgABAAAADThCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAANNAAAABgAAAAAAAAAAAAAEAAAABAAAAAAMAHcAYQB0AGUAcgBuAG8AcgBtAGEAbABzAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAEAAAAAABSZ2h0bG9uZwAABAAAAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNsaWNlAAAAEgAAAAdzbGljZUlEbG9uZwAAAAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVudW0AAAAMRVNsaWNlT3JpZ2luAAAADWF1dG9HZW5lcmF0ZWQAAAAAVHlwZWVudW0AAAAKRVNsaWNlVHlwZQAAAABJbWcgAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAABAAAAAAAUmdodGxvbmcAAAQAAAAAA3VybFRFWFQAAAABAAAAAAAAbnVsbFRFWFQAAAABAAAAAAAATXNnZVRFWFQAAAABAAAAAAAGYWx0VGFnVEVYVAAAAAEAAAAAAA5jZWxsVGV4dElzSFRNTGJvb2wBAAAACGNlbGxUZXh0VEVYVAAAAAEAAAAAAAlob3J6QWxpZ25lbnVtAAAAD0VTbGljZUhvcnpBbGlnbgAAAAdkZWZhdWx0AAAACXZlcnRBbGlnbmVudW0AAAAPRVNsaWNlVmVydEFsaWduAAAAB2RlZmF1bHQAAAALYmdDb2xvclR5cGVlbnVtAAAAEUVTbGljZUJHQ29sb3JUeXBlAAAAAE5vbmUAAAAJdG9wT3V0c2V0bG9uZwAAAAAAAAAKbGVmdE91dHNldGxvbmcAAAAAAAAADGJvdHRvbU91dHNldGxvbmcAAAAAAAAAC3JpZ2h0T3V0c2V0bG9uZwAAAAAAOEJJTQQoAAAAAAAMAAAAAj/wAAAAAAAAOEJJTQQUAAAAAAAEAAAADjhCSU0EDAAAAAAb5AAAAAEAAACgAAAAoAAAAeAAASwAAAAbyAAYAAH/2P/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAoACgAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8ANdXtcN43AbdwIjjvrLUYMH83U4l0TsAEBEucbq9wbNh5gQfk5VvS1a5o2uYZAkyPGP5K6UHiGuhCw6RJkfTI8XnEf9ys1sO2vduaTp2ieyL9ja4bG1CWmII4B48dycvqAh4BbH0vnqxyIMSsEem6XNPtmRofzdxPuSlOupj9NGvLLZo2Bvw1v/eQ42PQwurLTyTG0QD5fyELIp9Mt9Iv26OaAfo/DarT6r68gvbo18ckwHDQt/tJi0kbXNBI7DUJRkbu7BZhfBcpcRMif8GPyNZ7riWvaRA5IEEfHciVve4BrtpiYIBB17f1UQlrmtIEjgiIP8psJPqNZDmEOb4HnzR4hVVXZWTNVmtd1MrY5v0OOddUK7HYW6kODdARrofJWWOa4biC5p5BgSPFn9VT9Gt9bmHdtIIGoPzame4YnVrGZrU6n/moK78mpkB+4NhpYfdA/N91m5F9eYsZW3c2N3ugaoRZ6I2WHcABrBGn8pOysOINLwQBqCRoP5Lf3EiIHWh/e+Xi80gCrOmmsj6dUvqYZdL2thx94aJAP8l6jda1gBa4emNNxOsFQLmCWvaCRILhoNPzYQLMYOB2vD2idHaGPJ6QhGxZP11DLDAMgMpkgb69I/o+lm65vqtsYS7dJ14+785I22MLDJFZ/dEx/Vao491mPsBaH17oO/WD2c0/SRLa6rw8AOG2YAOgTqANEafvMk6lDgiOGIO+524pf9FRzN9YjZZtPuH0dzT5+7a9DNbG37iyGPEiSTB/qj/qkJ9bGQHuI/OYZ58Ycove30BY2w2Na4g7hq0n2w+D+9/JTxAD5dLY5RqhAHQXf93du0NxwSwuLZBEeac4oLJrf6rYMgCHNH7zWfnbVW9cODLtm1/5wLpbp+dWfzUY2W0WzTrBhzXGdDw5h0TDGV2Dr2NVouNnQG9u1cBf/9Czpja1ufZSdTt7d9rmtTv9wDqxuY/UGdR/KbH/AFChV6lTS1oG3lp1geRaiV3MYwurEAGXbfPyculNj+sfz/vNbmso0jEcVj8B+8oW2sq/SBpYD9JoDiJ+W7YpOc7YIG3yEkHuNs+xNcCK22seId7WzEGdCwkQoeozaBO0M4a07gR+7uQAG9edLeWw8UiSLqIs+Mun9ZK51jXiXbCezpIcPl7dqm4b6zqIH7oJ81UdZ7Q3WGzwZ0+asY1lJ1cXAHTcdOf++pSiQL7dm0T+sJl9B9ELoB2iTuMQeT4fTUPXNe0gugGQ1x1+H8pWcims8glswYPBHgqz69rNJLxpDvyOT4kEBgy1xEGyd6ZMzNsb40OjuSO/I+KMc81ENdQ8h/LmgHXj2vf7NyoWuc9p/R88hx8vc10KeJawt9Ik7h3JJAIG33tSliiRdIw4Y8XFMXQ9Mf0f8L+o2n3PEOZLqzq0yCY/qn/qVBmTXaGixsFuh2ANII/ODv6qa2u8dgAdQ6JBP/mSFQ0Os1ewjlszAjttS4Y8N9uoZTCJyxva+n8vmkkde+t49u5g1aSADHhuI3OVptlVjDtjcBo13cHw/NQ/T9RoZZEHVm7Vp8WobKrKHQPoTA1Bj+ruTSIkdpD8V2ScRfQeB/DiZFplpeHbSY3N1Gn8lFre15f6QMj80kA+P5yQcTLXMa1w1M6Bw/fby1Qtr3/pK3g2NGskGR9yG++n/RYsYMjfb5R0/dXe6wNLNggcgwdD/X/76qvotMmQ20j/ADh/35GFlzqwHkNLdCeZ/BQIgHa4T3EaAp8bHh5MkhwDSrrp4/1kNLKa2ltrYbOgJn5SrArxywNBEcCYOng1xQ/swsLnktc6A4gHtGod+btQ2UiXMrD2sOjiPc2f3f8AzhOOutm1uMXEes3L5j+hCA2f/9G8RJHDw8fSmZn4IW21j3VubIP0H87dPoyEzxQ5kV+0gkFkwWmZ4P0kg58jY+XRBA9pH8ks/PXSgdfzaMIGcxIjevm7H5kb6wWFrhq4yQeNf5A9rVJtG6wQ+C4aOBgH+RCnXe4tLDD/AOSRB/e+lruSfdS5h9o9vu2kiRHknXK6r+RdEGUYgRGtD8EVlf2V7S9v6I8mJI/lJ67mOJgkCdrhMtd+6fak41uZxLGkQWTIB19o/O/qoZrDH72y7uCNDH/fv7SduNd2OMOGfFKzL8u6d11ha5jgRHYQP83VAcHvbAJLhpPePNGAc7wfHOsFJ9ctLILHNOhhAEBEjGzQG2pamy4dwzxgGdENwsOljtNRv2iB4Q9harkWMO8OLm6bo1RDW17AXN3N4Lm/e3RP46WTyiIoVfl3RUuLqi0vln/RDh22oe9r7A6sEbuDJjd/1SMWUAizbq07XHvM+12xO4uY8lgaHHVwdoHNPgm3qaXGQiIyIJl2Pp/lNG1trg9u9wLTLqo2gebJUy20t1O7T87y8Ub1ybBvpPuHtI9w0+kChtY4uLDLSfogeXxQs9QB1VrIgGhGz+H91ELMqotJ91bgDEyB/wBFGaAX72d+SCTH9YITK7wHMBcWtOoggie/9VTYHEAxLu41B8/d/wCSSNeHbReJCMQBQJ9Wnh3TBpBLSBB4I5UH7K3S2O2o/i1Epcw+3cd0fQ4M/wBpOdCWOaCOziY+TUy6LWlPiFn5d+yEUAkWVccOA4+TQnDxWdu709IJA2x4FFa/03FjADGjmdx4PbCQey0FlsOsAgEgAuj3D3fRS4j1Fj8VSmTEEj0/ox/ePd//0rD7tp3NDi13YnsddHJy6p4G5pYdA4nQ6cHcPig7WNfuJ2AzuaNWn+rtRWekJFQImRqCJn83XaunIAF6+bHhiOI8IJN8I/dUW2V2exjXyJ5EmOYlQhljg7kdpABHkmBc8jeAO7WkagjRwCI6pxbuHHlrB8NEh4tiZGOJFjjJJtiGGrQtBB0E8/ekGtdofY3w8EVlQLQWmH9xrHySLZI8R3aZ0PbVLia0p6VHUnr4MPe32kyANDp/1SlWRY/a08idTBTekx0GQfI6GQhFzq3iJLBrBPb+S5LfbdWkYgDvcj/L5mVm+p/tMt7kaEfJDc6xoLgfVa3lhMGPL6O5WXj1QdriYGgMAkeTkLa0MG5xcOz4Bj+Q5EHvux0OM/yLIZQhpNQMiC8GQR4Jqg66sNbLTUSBB1H3/m+5R2tYJrA292g7TqOyky2tlw9c7dx2l8NB1+g5w9qBAANDx/kF05RExQ+XTXVGarx/K11JgfPlTayw6u+k3kcFXHUssMNjeRu4Ba8cO2IXpWVvnQDUSdQPLcEPcBHS1TzcA6DbzZUjeIfua4DaDHMeJ/OTPays+naNu7ggaqQ9Vhhx27tIE7TPh+c1NbNjPTcdR+fE/wBlqZZvwPZiHFKBN/yK1jQ1wLg2I1ce6jY8Rs3ECJaJ04+CUOaGtc9vEtkkgj+Vz7kwrrc06uAbzBn56JwrrqyxhEjXY6sHVb9rq3lrm8OiHfP+ShOfdRb74e1wBcwmTLdPY7+qivMDUOLm/IOHk5D9RriGNkPA9u8AiPJ4TxfmEZrkdvL/AH3/05PeHD1mOgO0c1+nP5zf6v56ep1znjeZHZw1H+v9ZH+zUuc4hoDSYcQ32mfov4Tuw/bNQBe0e5jfDyXT8cao/ig5Y4hUR+srt8iQs2tlxB84jlItc1xDCADyJQqrmvqDH6uB2747dvaiejYTGhjxG0gjwTNtywk6cczuBv2R7Q1x2HadDof++qcknWIOkH+CMyqtwILnV2MJBJk/9Ugvqsn3QBzIMtP8rakJAn+K3GRK5nSN7n9jHewzGrQdQpmkugNaSw6t78qTgyRp6e4aOEkT5/yVOm2lzS1zgduj2kmR5t0QMiBYB/NbPLcqANDbr/hNR1VrHCfo/iPmptxWP9zjIdyONf3tFdsx2uq3NtBAH52v/mSpWF+LYHj3s0kAkgg89kY5OMek+r7FcchQj17Mvsjnbq2uO8CWzrI+73KPpsyGBtxDSBG8D/vyha8C9j67D6biQ14Jlrj9HfuChfdYbTvra4P5e3UT4x9FOAkevj/WXY8OSUpa7H1E/ox3CRljKhsadu0nSdAT4bv3kr8i5xJr3BzNHB3BHmqptvpPu3XMOu9sSI7PbopWWWOd6rLRx7pAB07bdydwC7NHxK8Yo8JlKiAbMpa2P30tN+/9DaCx3G6ZaR2/k/8ASTuJYRsluukGQD/VQ/XbUWgv26GD3bH/AFbVP0brLYY4OFgmGE+7vx9FIgA3sF/CDjBl6IXevb9FkbGwC0ls+73AQT3/AKqb7TSf0lf0hodo0IP5pTih9byxzTYw6tJ1I/kv/eSdtDZDASNQ8CRH7rmIenzX3E2dTuyY/wBSdrHH+qN35EG191furYSzXc0CHc86nahvse2yaTtDhyJH4IlXUdlmzJ1rf9Jzmg6HTcncJGoFj91hMDuQN9B/3T//1LteRlVMgP3BsNLDrA/N91m7ai+vMWMrbubG73QNUMsFILLDuAGhgjT+UkysOINLwQBqCRoP5Lf3F0ZEDrQ/vfLxebSAjVnTTWR9OqX1MMul7WkOPvDRIB/kvUbrWsALXD0xpuJ1g8KBcwS17QSJBcNBp+bCBZjBwO14e0To7Qx5PSEI2LJ+uoZYcuMgMpkgb69I/o+lm65vqtsYS7dJ14+785I22VlhkivttEx/Vao491mPsBaH17oO/WD2c0/SRLa6rw8AOG2YAOgTqANEafvMk6lDgiOGIO+524pf9FRzN9Y27LNrvcNW7mnvPu96G6tgv3FkMeJEkmD8B/1SE+tjID3EfnMM8+MOUXvb6AsbYbGtcQdw1aT7YfB/e/kp4gB8ulsco1QgCKF3/d3btDMcEsLiyQRA8U5xQWA1v9VsGQBDmg/nNZ+dtVb1w4Mu2bX/AJwLpbp+dWfzUY2W0WzTrBhzXHseHMdomGMrsHXsarRceI6Xe29VwSQ3VkOHqe6Nu4ERx313NRgwfzdTnExOwRARLnG6vcGzZ3gQfk781VvS1a5o2uYZAkyPGP5KQPENdCF50iTI+mR4vOI/7lTWw7a925pOnaJ7In2NrhsbUJaYgjgdtddycvqAh4BbH0vnqxyIMSsEem6XNPtmRofzdxPuSlOupj9NGvLLZo2Bvw1v/eQ42PQwurLTyTG0AA+XHsQsigVlnpF5YIc0T9H4bVafVfXkF7dGvjkmA4aFv9pMWkja5oJHYahKMjfFdgswvguUuImRP+DH5Gs91xLbGkQOS0QQfE7kSux7gGugxMEAg69v6qIS1zWkCRwREH+U2En1GshzCHN8Dz5o8QqiK7Ky5qs1ruplbXN+jxzrqh20NLeQ7bwRrofJWGOa4biC5p5BgSPFn9VT9Fj63M920ggGQfm1M9wxOrWMzW+p/wCa/wD/1bb7rNHMl1Z1aZBMH+SoMya7Q0WNgt0OwBpBH5wd/VTW13jsADqHRIJQqGh1mr2EctmYEdtq6cRjw326hjMInLG9r6fy/SSOvfW8e3cwatJABjw3EbnK02yqxh2xuA0a7uD4fmofp+o0MsiDqzdq0+LUNlVlDoH0Jgagx/V3JpESO0h+K7JOIvoPA/hxMi0y0vDtpMbm6jT+Si1va8v9IGR+aSAfH85IOJlrmNa4amdA4fvt5aoW17/0lbwbGjWSDI+5DffT/osWMGRvt8o6furvdYGlmwQOQYOh/r/99VX0WmTIbaR/nD/vyMLLnVgPIaW6E8z+CgRAO1wnuI0BT42PDyZJDgGlXXTx/rIaWU1tLbWw2dATPylWBXjlgaCI0DZg6eDXFD+zCwueS1zoDiAe0ah35u1DZSJcysPaw6OI9zZ/d/8AOE4662bW4xcR6zcvmP6EIDZs6Y2tbn2UnU7e3fa5oTv9wDqxuY/UGdR/KbH/AFChV6lTS1oG3lp1geRaiV3MYwurEAGXbfPycozY/rH8/wC8x81lGkYjisfgP3lC21lX6QNLAfpNAcRPy3bFJznbBA2+Qkg9xtn2JrgRW21jxDva2YgzoWEiFD1GbQJ2hnDWncCP3dyAA3rzpby2HikSRdRFnxl0/rJXOsa8S7YT2dJDh8vbtU3DfWdRA/dBPmqjrPaG6w2eDOnzVjGspOri4A6bjpz/AN9SlEgX27Non9YTL6D6IXQDtEncYg8nw+moeua9pBdAMhrjr8P5Ss5FNZ5BLZgweCPBVn17WaSXjSHfkcnxIIDBlriINk70yZmbY3xodHckd+R8UY55rIa6h5D9C9oBE8aPf7Gqha5z2n9HzyHHy9zXQp4lrC30pO4dySQCBt97SlLFEi6Rhwx4uKYuh6Y/o/4X9R//1p0uLqi0vln/AEQ4dtqHva+wOrBG7gyY3f8AVIxZQCLNurTtce8z7XbU7i5jyWBocdXB2gc0+C6m9TXVYZCIjIgmXY+n+UkbW2uD273AtMuqjaB5slTLbS3U7tPzvLxRvXJsG+k+4e0j3DT6QKG1ji4sMtJ+iB5fFCz1AHVWsiAaEbP4f3UQsyqi0n3VuAMTIH/RRmgF+9nfkgkx/WCEyu8BzAXFrTqIIInv/VU2BxAMS7uNQfP3f+SSNeHbReJCMQBQJ9Wnh3TBpBLSBB4I5UH7K3S2O2o/i1Epcw+3cd0fQ4M/2k50JY5oI7OJj5NTLotaU+IWfl37IRQCRZVxw4Dj5NCcPFZ27vT0gkDbHgUVr/TcWMAMaOZ3Hg9sJNey0bLIdYBAJABdHuHu+ilxHqLH4qlMmIJHp/Rj+8e65EkcPDxzMzPwQdtrHurc2QfoP526fRkJnjHcyK/aQSCyYLTM/RP0kg58jY+XRBA9pH8ks/PSA6/mxQgZzEiN6+bsfmRvrBYWuGrjJB41/kD2tUm0brBD4Lho4GAf5EKdd7i0sMP/AJJEH976Wu5J91LmH2j2+7aSJEeSdcrqv5F0QZRiBEa0PwRWV/ZXtL2/ojyYkj+UnruY4mCQJ2uEy137p9qTjW5nEsaRBZMgHX2j87+qhmsMfvbLu4I0Mf8Afv7SduNd2OMOGfFKzL8u6d11ha5jgRHYQP8AN1QHB72wCS4aT3jzRgHO8HxzrBSfXLSyCxzToYQBARIxs0BtqWpsuHcM8YBnRDIs4sdpqN+0QPCH1lquRYw7w4ubpujVENbXsBc3c3gubp5t0T+Olk8oiKFX5d3/17AyhDSagZEF4MiPBNUHXVhrZaaiQIOo+/8AN9yjtawTXG3u0HadRyFJltbLh6527jtL4aDr9Bzh7V05AANDx/kGCcoiYofLQ11Rmq8fytdSYHz5U2ssOrvpN5HBVx1LLDDY3kbuAWvHDtiF6Vlb50A1EnUDy3BD3AR0tU83AOg282VI3iH7muA2gxzHifzkz2srPp2jbu4IGqkPVYYcdu7SBO0z4fnNTWzYz03HUfnxP9lqZZvwPZiHFKBN/wAitY0NcC4NiNXHuo2PEbNxAiWidOPglDmhrXPbxLZJII/lc+5MK63NOrgG8wZ+eicK66ssYRI12OrB1W/a6t5a5vDoh3z/AJKE591FsvAeHAEsJky39x39VFeYGocXN+QcPJyH6jXEMbIsA9u8AiPJ4TxfmEZrkdvL/fSPuDTuaHFjuxOsHXRycuqeBuaWHQOJ0OnB3D4oO1jX7idgM7mjVp/q7UVnpCRUCJkagiZ/N12oEADr5smGI4jwgk3wj91RbZXZ7GNfInkSY5iVCGWODuR2kAEeSYFzyN4A7taRqCNHAIjqnFu4ceWsHw0SHi2JkY4kWOMkm2IYatC0EHQTz96Qa12h9jfDwRWVAtBaYf3GsfJItkjxHdpnQ9tUuJrSnpUdSevgw97faTIA0On/AFSlWRY/a08idTBTekx0GQfI6GQhFzq3iJLBrBPb+S5LfbdWkYgDvcj/AC+ZlZvqf7TLe5GhHyQ3OsbLgfVa3lhMGPL6O5WXj1QdriYGgMAkeTkLY0M97tzezoBj+Q5EHvux0OM/yL//0Lv2Rzt1bXHcBLZ1kfd7lH02ZDA24hpAjeB/35QteBex7LDscSA8TLXH6O+QoX3Wm07q2uD+Xt1E+MfRXTASPXx/rNbHhySkddj6if0Y/MEjLGVDY07dpOk6Anw3fvJX5FziTXuDmaODuCPNVTbfSfduuYdQ9sSI7PbopWWWOd6rLe3ukAH4bdydwC7NHxK8Yo8JlKiAbMpa2P30tN+/9DaCx3G6ZaR2/k/9JO4lhGyW66QZAP8AVQ/XbXtl+3Qw7u2P+rap+lc+2GOBFgmGE+7vx9FIgA3sF/CDjBl6I3evb9FkbGwC0ls+73AQT3/qpvtNJ/SV/SGh2jQg/mlOKH1vLHNNjDq0nUj+S/8AeScGtbOzUah4EiP3XMQ9PmvuJs6ndkx/qTtY4/1Ru/Ig2vurl1VZLNZaAA7nn3Hahvse2yaTtDhyJH4IlXUdlm3J1rf9Nzmg6H85HhI1AB/qsJidyBvoP+6YveHD1q3QHaOa/TQ/nN/d2/np6nXOeN5kdnDUf6/1lY+y1Oc6GiJhxa32n91/CTsPSagC9o9zG9x5IccdvzZTljiFRH6yu3yJCza2XEHziOUi1zXEMIAPIlDqua6oMeDuB2747dvap+jYTEAx4jaQR+6mbblhJ045ncA69ke0Ncdh2nQ6H/vqnJJ1iDpB/gjMqqcCNzq7GEiTJ/6pBfVZOsAcyDLT57UhIH+1bjIlczpG9z+xjvYZjVoOoUzSXQGtJYdW9+VJzWyNPT3DRwkifP8AkqdNtLgWucDt0e0kyI7t0QMiBYB/NbPLcqANDbr/AITUdVaxwn6P4j5qbcVjvc4yHcjjX97RXLMdjq9zbWkAfnGf/MlTfvxrA8e5mkgEkEHnsjHJxj0n1K45ChHr2D//2ThCSU0EIQAAAAAAVQAAAAEBAAAADwBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8AcAAAABMAQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAIABDAFMANQAAAAEAOEJJTQQGAAAAAAAHAAQAAQABAQD/4Q74aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MCA2MS4xMzQzNDIsIDIwMTAvMDEvMTAtMTg6MDY6NDMgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgKDEyLjB4MjAxMDAxMTUgWzIwMTAwMTE1Lm0uOTk4IDIwMTAvMDEvMTU6MDI6MDA6MDAgY3V0b2ZmOyBtIGJyYW5jaF0pICBXaW5kb3dzIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxMy0xMi0wM1QyMDo0MjoxMyswMTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTMtMTItMDVUMDA6NTQ6MDkrMDE6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTMtMTItMDVUMDA6NTQ6MDkrMDE6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvanBlZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkM2MjFDQjI0M0M1REUzMTFCQ0YxOUQ3MDBBOTQzMEFCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkM1MjFDQjI0M0M1REUzMTFCQ0YxOUQ3MDBBOTQzMEFCIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6QzUyMUNCMjQzQzVERTMxMUJDRjE5RDcwMEE5NDMwQUIiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOkM1MjFDQjI0M0M1REUzMTFCQ0YxOUQ3MDBBOTQzMEFCIiBzdEV2dDp3aGVuPSIyMDEzLTEyLTAzVDIwOjQyOjEzKzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M1ICgxMi4weDIwMTAwMTE1IFsyMDEwMDExNS5tLjk5OCAyMDEwLzAxLzE1OjAyOjAwOjAwIGN1dG9mZjsgbSBicmFuY2hdKSAgV2luZG93cyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGltYWdlL3BuZyB0byBpbWFnZS9qcGVnIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpDNjIxQ0IyNDNDNURFMzExQkNGMTlENzAwQTk0MzBBQiIgc3RFdnQ6d2hlbj0iMjAxMy0xMi0wNVQwMDo1NDowOSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENTNSAoMTIuMHgyMDEwMDExNSBbMjAxMDAxMTUubS45OTggMjAxMC8wMS8xNTowMjowMDowMCBjdXRvZmY7IG0gYnJhbmNoXSkgIFdpbmRvd3MiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9InciPz7/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0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";function E$D(t,e,n){n[0]=t[0]>e[0]?e[0]:t[0],n[1]=t[1]<e[1]?e[1]:t[1],n[2]=t[2]>e[2]?e[2]:t[2],n[3]=t[3]<e[3]?e[3]:t[3],n[4]=t[4]>e[4]?e[4]:t[4],n[5]=t[5]<e[5]?e[5]:t[5]}function Z$2(t,e,n){let i=!1;const r=t[0]>e[0]?e[0]:t[0],s=t[1]<e[1]?e[1]:t[1],a=t[2]>e[2]?e[2]:t[2],o=t[3]<e[3]?e[3]:t[3],c=t[4]>e[4]?e[4]:t[4],l=t[5]<e[5]?e[5]:t[5];return n[0]>r&&(n[0]=r,i=!0),n[1]<s&&(n[1]=s,i=!0),n[2]>a&&(n[2]=a,i=!0),n[3]<o&&(n[3]=o,i=!0),n[4]>c&&(n[4]=c,i=!0),n[5]<l&&(n[5]=l,i=!0),i}function g$6(t,e){return!(e[0]>t[0]||e[1]<t[1]||e[2]>t[2]||e[3]<t[3]||e[4]>t[4]||e[5]<t[5])}function v$4(t,e){let n=!1;return e[0]>t[0]&&(e[0]=t[0],n=!0),e[1]<t[1]&&(e[1]=t[1],n=!0),e[2]>t[2]&&(e[2]=t[2],n=!0),e[3]<t[3]&&(e[3]=t[3],n=!0),e[4]>t[4]&&(e[4]=t[4],n=!0),e[5]<t[5]&&(e[5]=t[5],n=!0),n}function w$9(t,e){t[0]-=e,t[1]+=e,t[2]-=e,t[3]+=e,t[4]-=e,t[5]+=e}function S$2(t){const e=t[1]-t[0],n=t[3]-t[2],i=t[5]-t[4];return 2*(e*n+n*i+i*e)}function _(t,e){const n=t[0]>e[0]?e[0]:t[0],i=t[1]<e[1]?e[1]:t[1],r=t[2]>e[2]?e[2]:t[2],s=t[3]<e[3]?e[3]:t[3],a=t[4]>e[4]?e[4]:t[4],o=i-n,c=s-r,l=(t[5]<e[5]?e[5]:t[5])-a;return 2*(o*c+c*l+l*o)}function H$9(t){const e=t[1]-t[0],n=t[3]-t[2],i=t[5]-t[4];return e>n?e>i?0:2:n>i?1:2}function D$1(t,e){const n=t[0]-e[0],i=e[0]-t[1];let r=n>i?n:i;r<0&&(r=0);const s=t[2]-e[1],a=e[1]-t[3];let o=s>a?s:a;o<0&&(o=0);const c=t[4]-e[2],l=e[2]-t[5];let u=c>l?c:l;return u<0&&(u=0),r*r+o*o+u*u}function Y$1(t,e){let n,i,r,s,a,o;const c=t[0]-e[0],l=e[0]-t[1];c>l?(n=c,i=l):(n=l,i=c),n<0&&(n=0);const u=t[2]-e[1],h=e[1]-t[3];u>h?(r=u,s=h):(r=h,s=u),r<0&&(r=0);const d=t[4]-e[2],p=e[2]-t[5];return d>p?(a=d,o=p):(a=p,o=d),a<0&&(a=0),{min:n*n+r*r+a*a,max:i*i+s*s+o*o}}let G$2=class{constructor(){this.array=[]}clear(){this.array=[]}push(t){const e=this.array,n=t.inheritedCost,i=e.length>6?e.length-6:0;let r;for(r=e.length-1;r>=i&&!(n<=e[r].inheritedCost);r--);r>e.length-7&&e.splice(r+1,0,t)}pop(){return this.array.pop()}};class ${constructor(t=!1){this.root=null,this._sortedList=new G$2,this.count=0,this.highPrecision=t,this._typeArray=t?Float64Array:Float32Array}createFromArray(t,e,n,i=0){const r=e.length,s=this._typeArray;s!==(4===e[0].BYTES_PER_ELEMENT?Float32Array:Float64Array)&&console.warn("Different precision.");const a=new s(6);let o,c;this.root=function r(l,u,h){if(1===u){const r=e[l];i>0&&w$9(r,i);const s={box:r,object:t[l],parent:h};return n&&n(s),s}const d=function(t,n){const r=new s(6),o=t+n;r[0]=1/0,r[1]=-1/0,r[2]=1/0,r[3]=-1/0,r[4]=1/0,r[5]=-1/0,a[0]=1/0,a[1]=-1/0,a[2]=1/0,a[3]=-1/0,a[4]=1/0,a[5]=-1/0;for(let i=t;i<o;i++){const t=e[i],n=t[0],s=t[1],o=t[2],c=t[3],l=t[4],u=t[5];r[0]>n&&(r[0]=n),r[1]<s&&(r[1]=s),r[2]>o&&(r[2]=o),r[3]<c&&(r[3]=c),r[4]>l&&(r[4]=l),r[5]<u&&(r[5]=u);const h=.5*(s+n),d=.5*(c+o),p=.5*(u+l);a[0]>h&&(a[0]=h),a[1]<h&&(a[1]=h),a[2]>d&&(a[2]=d),a[3]<d&&(a[3]=d),a[4]>p&&(a[4]=p),a[5]<p&&(a[5]=p)}return r[0]-=i,r[1]+=i,r[2]-=i,r[3]+=i,r[4]-=i,r[5]+=i,r}(l,u);o=2*H$9(a),c=.5*(a[o]+a[o+1]);let p=function(n,i){let r=n,s=n+i-1;for(;r<=s;){const n=e[r];if(.5*(n[o+1]+n[o])>=c)for(;;){const n=e[s];if(.5*(n[o+1]+n[o])<c){const n=t[r];t[r]=t[s],t[s]=n;const i=e[r];e[r]=e[s],e[s]=i,s--;break}if(s--,s<=r)return r}r++}return r}(l,u);(p===l||p===l+u)&&(p=l+(u>>1));const f={box:d,parent:h};return f.left=r(l,p-l,f),f.right=r(p,u-p+l,f),f}(0,r,null)}insert(t,e,n){n>0&&w$9(e,n);const i=this.createLeafNode(t,e);return null===this.root?this.root=i:this.insertLeaf(i),this.count++,i}insertRange(t,e,n,i){console.warn("Method not optimized yet. It just calls 'insert' N times.");const r=t.length,s=n>0?n:n?null:0;for(let a=0;a<r;a++){const r=this.insert(t[a],e[a],s??n[a]);i&&i(r)}}move(t,e){if(!t.parent||g$6(t.box,t.parent.box))return void(e>0&&w$9(t.box,e));e>0&&w$9(t.box,e);const n=this.delete(t);this.insertLeaf(t,n),this.count++}delete(t){const e=t.parent;if(null===e)return this.root=null,null;const n=e.parent,i=e.left===t?e.right:e.left;return i.parent=n,t.parent=null,null===n?(this.root=i,e):(n.left===e?n.left=i:n.right=i,this.refit(n),this.count--,e)}clear(){this.root=null}insertLeaf(t,e){const n=this.findBestSibling(t.box),i=n.parent;void 0===e?e=this.createInternalNode(i,n,t):(e.parent=i,e.left=n,e.right=t),n.parent=e,t.parent=e,null===i?this.root=e:i.left===n?i.left=e:i.right=e,this.refitAndRotate(t,n)}createLeafNode(t,e){return{box:e,object:t,parent:null}}createInternalNode(t,e,n){return{parent:t,left:e,right:n,box:new this._typeArray(6)}}findBestSibling(t){const e=this.root;let n=e,i=_(t,e.box);const r=S$2(t);if(void 0!==e.object)return e;const s=this._sortedList;s.clear();let a={node:e,inheritedCost:i-S$2(e.box)};do{const{node:e,inheritedCost:o}=a;if(r+o>=i)break;const c=e.left,l=e.right,u=_(t,c.box)+o,h=u-S$2(c.box),d=_(t,l.box)+o,p=d-S$2(l.box);if(u>d?i>d&&(n=l,i=d):i>u&&(n=c,i=u),p>h){if(r+h>=i||(void 0===c.object&&s.push({node:c,inheritedCost:h}),r+p>=i))continue;void 0===l.object&&s.push({node:l,inheritedCost:p})}else{if(r+p>=i||(void 0===l.object&&s.push({node:l,inheritedCost:p}),r+h>=i))continue;void 0===c.object&&s.push({node:c,inheritedCost:h})}}while(a=s.pop());return n}refit(t){for(E$D(t.left.box,t.right.box,t.box);t=t.parent;)if(!Z$2(t.left.box,t.right.box,t.box))return}refitAndRotate(t,e){const n=t.box,i=(t=t.parent).box;for(E$D(n,e.box,i);t=t.parent;){if(!v$4(n,t.box))return;const e=t.left,i=t.right,r=e.box,s=i.box;let a=null,o=null,c=0;if(void 0===i.object){const t=i.left,n=i.right,s=S$2(i.box),l=s-_(r,t.box),u=s-_(r,n.box);l>u?l>0&&(a=e,o=n,c=l):u>0&&(a=e,o=t,c=u)}if(void 0===e.object){const t=e.left,n=e.right,r=S$2(e.box),l=r-_(s,t.box),u=r-_(s,n.box);l>u?l>c&&(a=i,o=n):u>c&&(a=i,o=t)}null!==a&&this.swap(a,o)}}swap(t,e){const n=t.parent,i=e.parent,r=i.box;n.left===t?n.left=e:n.right=e,i.left===e?i.left=t:i.right=t,t.parent=i,e.parent=n,E$D(i.left.box,i.right.box,r)}}const X$2=0,U$4=1;let V$1=class{constructor(t,e){this.coordinateSystem=e,this.array=t?new Float64Array(24):new Float32Array(24)}setFromProjectionMatrix(t){if(this.updatePlane(0,t[3]+t[0],t[7]+t[4],t[11]+t[8],t[15]+t[12]),this.updatePlane(1,t[3]-t[0],t[7]-t[4],t[11]-t[8],t[15]-t[12]),this.updatePlane(2,t[3]-t[1],t[7]-t[5],t[11]-t[9],t[15]-t[13]),this.updatePlane(3,t[3]+t[1],t[7]+t[5],t[11]+t[9],t[15]+t[13]),this.updatePlane(4,t[3]-t[2],t[7]-t[6],t[11]-t[10],t[15]-t[14]),this.coordinateSystem===X$2)this.updatePlane(5,t[3]+t[2],t[7]+t[6],t[11]+t[10],t[15]+t[14]);else{if(this.coordinateSystem!==U$4)throw new Error("Invalid coordinate system: "+this.coordinateSystem);this.updatePlane(5,t[2],t[6],t[10],t[14])}return this}updatePlane(t,e,n,i,r){const s=this.array,a=4*t,o=Math.sqrt(e*e+n*n+i*i);s[a+0]=e/o,s[a+1]=n/o,s[a+2]=i/o,s[a+3]=r/o}intersectsBoxMask(t,e){const n=this.array;let i,r,s,a,o,c;for(let l=0;l<6;l++){if(!(e&32>>l))continue;const u=4*l,h=n[u+0],d=n[u+1],p=n[u+2],f=n[u+3];if(h>0?(i=t[1],a=t[0]):(i=t[0],a=t[1]),d>0?(r=t[3],o=t[2]):(r=t[2],o=t[3]),p>0?(s=t[5],c=t[4]):(s=t[4],c=t[5]),h*i+d*r+p*s<-f)return-1;h*a+d*o+p*c>-f&&(e^=32>>l)}return e}isIntersected(t,e){const n=this.array;for(let i=0;i<6;i++){if(!(e&32>>i))continue;const r=4*i,s=n[r+0],a=n[r+1],o=n[r+2],c=n[r+3];if(s*(s>0?t[1]:t[0])+a*(a>0?t[3]:t[2])+o*(o>0?t[5]:t[4])<-c)return!1}return!0}isIntersectedMargin(t,e,n){if(0===e)return!0;const i=this.array;for(let r=0;r<6;r++){if(!(e&32>>r))continue;const s=4*r,a=i[s+0],o=i[s+1],c=i[s+2],l=i[s+3];if(a*(a>0?t[1]-n:t[0]+n)+o*(o>0?t[3]-n:t[2]+n)+c*(c>0?t[5]-n:t[4]+n)<-l)return!1}return!0}};function q$2(t,e,n,i,r,s){let a=i[0],o=e[0],c=n[0],l=(t[a]-o)*c,u=(t[1^a]-o)*c,h=l>0?l:0,d=u<1/0?u:1/0;return a=i[1],o=e[1],c=n[1],l=(t[a+2]-o)*c,!(l>d||(u=(t[3^a]-o)*c,h>u)||(h=l>h?l:h,d=u<d?u:d,a=i[2],o=e[2],c=n[2],l=(t[a+4]-o)*c,l>d)||(u=(t[5^a]-o)*c,h>u))&&(h=l>h?l:h,d=u<d?u:d,h<=s&&d>=r)}function O$2(t,e){return t[1]>=e[0]&&e[1]>=t[0]&&t[3]>=e[2]&&e[3]>=t[2]&&t[5]>=e[4]&&e[5]>=t[4]}function W$1(t,e,n){return D$1(n,t)<=e*e}let k$1=class{constructor(t,e=X$2){this._sign=new Uint8Array(3),this.builder=t;const n=t.highPrecision;this.frustum=new V$1(n,e),this._dirInv=n?new Float64Array(3):new Float32Array(3)}get root(){return this.builder.root}createFromArray(t,e,n,i){(null==t?void 0:t.length)>0&&this.builder.createFromArray(t,e,n,i)}insert(t,e,n){return this.builder.insert(t,e,n)}insertRange(t,e,n,i){(null==t?void 0:t.length)>0&&this.builder.insertRange(t,e,n,i)}move(t,e){this.builder.move(t,e)}delete(t){return this.builder.delete(t)}clear(){this.builder.clear()}traverse(t){null!==this.root&&function e(n,i){if(void 0!==n.object)return void t(n,i);t(n,i)||(e(n.left,i+1),e(n.right,i+1))}(this.root,0)}intersectsRay(t,e,n,i=0,r=1/0){if(null===this.root)return!1;const s=this._dirInv,a=this._sign;return s[0]=1/t[0],s[1]=1/t[1],s[2]=1/t[2],a[0]=s[0]<0?1:0,a[1]=s[1]<0?1:0,a[2]=s[2]<0?1:0,function t(o){return!!q$2(o.box,e,s,a,i,r)&&(void 0!==o.object?n(o.object):t(o.left)||t(o.right))}(this.root)}intersectsBox(t,e){return null!==this.root&&function n(i){return!!O$2(t,i.box)&&(void 0!==i.object?e(i.object):n(i.left)||n(i.right))}(this.root)}intersectsSphere(t,e,n){return null!==this.root&&function i(r){return!!W$1(t,e,r.box)&&(void 0!==r.object?n(r.object):i(r.left)||i(r.right))}(this.root)}isNodeIntersected(t,e){const n=t.box;let i;for(;i=t.parent;){if(r(i.left===t?i.right:i.left))return!0;t=i}return!1;function r(t){return!!O$2(n,t.box)&&(void 0!==t.object?e(t.object):r(t.left)||r(t.right))}}rayIntersections(t,e,n,i=0,r=1/0){if(null===this.root)return;const s=this._dirInv,a=this._sign;s[0]=1/t[0],s[1]=1/t[1],s[2]=1/t[2],a[0]=s[0]<0?1:0,a[1]=s[1]<0?1:0,a[2]=s[2]<0?1:0,function t(o){if(q$2(o.box,e,s,a,i,r)){if(void 0!==o.object)return void n(o.object);t(o.left),t(o.right)}}(this.root)}frustumCulling(t,e){if(null===this.root)return;const n=this.frustum.setFromProjectionMatrix(t);function i(t){void 0===t.object?(i(t.left),i(t.right)):e(t,n,0)}!function t(r,s){if(void 0!==r.object)return void(n.isIntersected(r.box,s)&&e(r,n,s));if(!((s=n.intersectsBoxMask(r.box,s))<0)){if(0===s)return i(r.left),void i(r.right);t(r.left,s),t(r.right,s)}}(this.root,63)}frustumCullingLOD(t,e,n,i){if(null===this.root)return;const r=this.frustum.setFromProjectionMatrix(t);function s(t,e){null===e&&(e=a(t.box)),void 0===t.object?(s(t.left,e),s(t.right,e)):i(t,e,r,0)}function a(t){const{min:i,max:r}=Y$1(t,e);for(let e=n.length-1;e>0;e--)if(r>=n[e])return i>=n[e]?e:null;return 0}!function t(e,n,o){const c=e.box;if(null===o&&(o=a(c)),void 0!==e.object)return void(r.isIntersected(c,n)&&i(e,o,r,n));if(!((n=r.intersectsBoxMask(c,n))<0)){if(0===n)return s(e.left,o),void s(e.right,o);t(e.left,n,o),t(e.right,n,o)}}(this.root,63,null)}closestPointToPoint(t,e){if(null===this.root)return;let n=1/0;return function i(r){if(void 0!==r.object){if(e){const i=e(r.object)??D$1(r.box,t);i<n&&(n=i)}else n=D$1(r.box,t);return}const s=D$1(r.left.box,t),a=D$1(r.right.box,t);s<a?s<n&&(i(r.left),a<n&&i(r.right)):a<n&&(i(r.right),s<n&&i(r.left))}(this.root),Math.sqrt(n)}};function m$2(t,e){return e[0]=t.x,e[1]=t.y,e[2]=t.z,e}function B$3(t,e){const n=t.min,i=t.max;return e[0]=n.x,e[1]=i.x,e[2]=n.y,e[3]=i.y,e[4]=n.z,e[5]=i.z,e}class St{constructor(t,e,n){if(this.isInstanceEntity=!0,this.position=new Vector3,this.scale=new Vector3(1,1,1),this.quaternion=new Quaternion,this.id=e,this.owner=t,n){const t=this.quaternion,e=this.rotation=new Euler;e._onChange(()=>t.setFromEuler(e,!1)),t._onChange(()=>e.setFromQuaternion(t,void 0,!1))}}get visible(){return this.owner.getVisibilityAt(this.id)}set visible(t){this.owner.setVisibilityAt(this.id,t)}get active(){return this.owner.getActiveAt(this.id)}set active(t){this.owner.setActiveAt(this.id,t)}get color(){return this.owner.getColorAt(this.id)}set color(t){this.owner.setColorAt(this.id,t)}get opacity(){return this.owner.getOpacityAt(this.id)}set opacity(t){this.owner.setOpacityAt(this.id,t)}get morph(){return this.owner.getMorphAt(this.id)}set morph(t){this.owner.setMorphAt(this.id,t)}get matrix(){return this.owner.getMatrixAt(this.id)}get matrixWorld(){return this.matrix.premultiply(this.owner.matrixWorld)}setMatrixIdentity(){var t;const e=this.owner,n=e.matricesTexture._data,i=this.id,r=16*i;n[r+0]=1,n[r+1]=0,n[r+2]=0,n[r+3]=0,n[r+4]=0,n[r+5]=1,n[r+6]=0,n[r+7]=0,n[r+8]=0,n[r+9]=0,n[r+10]=1,n[r+11]=0,n[r+12]=0,n[r+13]=0,n[r+14]=0,n[r+15]=1,e.matricesTexture.enqueueUpdate(i),null==(t=e.bvh)||t.move(i)}updateMatrix(){var t;const e=this.owner,n=this.position,i=this.quaternion,r=this.scale,s=e.matricesTexture._data,a=this.id,o=16*a,c=i._x,l=i._y,u=i._z,h=i._w,d=c+c,p=l+l,f=u+u,m=c*d,g=c*p,A=c*f,y=l*p,v=l*f,S=u*f,x=h*d,b=h*p,T=h*f,I=r.x,M=r.y,E=r.z;s[o+0]=(1-(y+S))*I,s[o+1]=(g+T)*I,s[o+2]=(A-b)*I,s[o+3]=0,s[o+4]=(g-T)*M,s[o+5]=(1-(m+S))*M,s[o+6]=(v+x)*M,s[o+7]=0,s[o+8]=(A+b)*E,s[o+9]=(v-x)*E,s[o+10]=(1-(m+y))*E,s[o+11]=0,s[o+12]=n.x,s[o+13]=n.y,s[o+14]=n.z,s[o+15]=1,e.matricesTexture.enqueueUpdate(a),null==(t=e.bvh)||t.move(a)}updateMatrixPosition(){var t;const e=this.owner,n=this.position,i=e.matricesTexture._data,r=this.id,s=16*r;i[s+12]=n.x,i[s+13]=n.y,i[s+14]=n.z,e.matricesTexture.enqueueUpdate(r),null==(t=e.bvh)||t.move(r)}getUniform(t,e){return this.owner.getUniformAt(this.id,t,e)}updateBones(t=!0,e){this.owner.setBonesAt(this.id,t,e)}setUniform(t,e){this.owner.setUniformAt(this.id,t,e)}copyTo(t){t.position.copy(this.position),t.scale.copy(this.scale),t.quaternion.copy(this.quaternion),this.rotation&&t.rotation.copy(this.rotation)}applyMatrix4(t){return this.matrix.premultiply(t).decompose(this.position,this.quaternion,this.scale),this}applyQuaternion(t){return this.quaternion.premultiply(t),this}rotateOnAxis(t,e){return X$1.setFromAxisAngle(t,e),this.quaternion.multiply(X$1),this}rotateOnWorldAxis(t,e){return X$1.setFromAxisAngle(t,e),this.quaternion.premultiply(X$1),this}rotateX(t){return this.rotateOnAxis(xt,t)}rotateY(t){return this.rotateOnAxis(mt,t)}rotateZ(t){return this.rotateOnAxis(_t,t)}translateOnAxis(t,e){return pt.copy(t).applyQuaternion(this.quaternion),this.position.add(pt.multiplyScalar(e)),this}translateX(t){return this.translateOnAxis(xt,t)}translateY(t){return this.translateOnAxis(mt,t)}translateZ(t){return this.translateOnAxis(_t,t)}remove(){return this.owner.removeInstances(this.id),this}}const X$1=new Quaternion,pt=new Vector3,xt=new Vector3(1,0,0),mt=new Vector3(0,1,0),_t=new Vector3(0,0,1);class Zt{constructor(t,e=0,n=!1,i=!0){this.nodesMap=new Map,this.LODsMap=new Map,this._geoBoundingSphere=null,this._sphereTarget=null,this.target=t,this.accurateCulling=i,this._margin=e;const r=t._geometry;if(r.boundingBox||r.computeBoundingBox(),this.geoBoundingBox=r.boundingBox,n){r.boundingSphere||r.computeBoundingSphere();const t=r.boundingSphere.center;0===t.x&&0===t.y&&0===t.z?(this._geoBoundingSphere=r.boundingSphere,this._sphereTarget={centerX:0,centerY:0,centerZ:0,maxScale:0}):(console.warn('"getBoxFromSphere" is ignored because geometry is not centered.'),n=!1)}this.bvh=new k$1(new $,X$2),this._origin=new Float32Array(3),this._dir=new Float32Array(3),this._cameraPos=new Float32Array(3),this._getBoxFromSphere=n}create(){const t=this.target._instancesCount,e=this.target._instancesArrayCount,n=new Array(t),i=new Uint32Array(t);let r=0;this.clear();for(let s=0;s<e;s++)this.target.getActiveAt(s)&&(n[r]=this.getBox(s,new Float32Array(6)),i[r]=s,r++);this.bvh.createFromArray(i,n,t=>{this.nodesMap.set(t.object,t)},this._margin)}insert(t){const e=this.bvh.insert(t,this.getBox(t,new Float32Array(6)),this._margin);this.nodesMap.set(t,e)}insertRange(t){const e=t.length,n=new Array(e);for(let i=0;i<e;i++)n[i]=this.getBox(t[i],new Float32Array(6));this.bvh.insertRange(t,n,this._margin,t=>{this.nodesMap.set(t.object,t)})}move(t){const e=this.nodesMap.get(t);e&&(this.getBox(t,e.box),this.bvh.move(e,this._margin))}delete(t){const e=this.nodesMap.get(t);e&&(this.bvh.delete(e),this.nodesMap.delete(t))}clear(){this.bvh.clear(),this.nodesMap.clear()}frustumCulling(t,e){this._margin>0&&this.accurateCulling?this.bvh.frustumCulling(t.elements,(t,n,i)=>{n.isIntersectedMargin(t.box,i,this._margin)&&e(t)}):this.bvh.frustumCulling(t.elements,e)}frustumCullingLOD(t,e,n,i){this.LODsMap.has(n)||this.LODsMap.set(n,new Float32Array(n.length));const r=this.LODsMap.get(n);for(let a=0;a<n.length;a++)r[a]=n[a].distance;const s=this._cameraPos;s[0]=e.x,s[1]=e.y,s[2]=e.z,this._margin>0&&this.accurateCulling?this.bvh.frustumCullingLOD(t.elements,s,r,(t,e,n,r)=>{n.isIntersectedMargin(t.box,r,this._margin)&&i(t,e)}):this.bvh.frustumCullingLOD(t.elements,s,r,i)}raycast(t,e){const n=t.ray,i=this._origin,r=this._dir;m$2(n.origin,i),m$2(n.direction,r),this.bvh.rayIntersections(r,i,e,t.near,t.far)}intersectBox(t,e){this._boxArray||(this._boxArray=new Float32Array(6));const n=this._boxArray;return B$3(t,n),this.bvh.intersectsBox(n,e)}getBox(t,e){if(this._getBoxFromSphere){const n=this.target.matricesTexture._data,{centerX:i,centerY:r,centerZ:s,maxScale:a}=this.getSphereFromMatrix_centeredGeometry(t,n,this._sphereTarget),o=this._geoBoundingSphere.radius*a;e[0]=i-o,e[1]=i+o,e[2]=r-o,e[3]=r+o,e[4]=s-o,e[5]=s+o}else yt.copy(this.geoBoundingBox).applyMatrix4(this.target.getMatrixAt(t)),B$3(yt,e);return e}getSphereFromMatrix_centeredGeometry(t,e,n){const i=16*t,r=e[i+0],s=e[i+1],a=e[i+2],o=e[i+4],c=e[i+5],l=e[i+6],u=e[i+8],h=e[i+9],d=e[i+10],p=r*r+s*s+a*a,f=o*o+c*c+l*l,m=u*u+h*h+d*d;return n.maxScale=Math.sqrt(Math.max(p,f,m)),n.centerX=e[i+12],n.centerY=e[i+13],n.centerZ=e[i+14],n}}const yt=new Box3;class Qt extends GLBufferAttribute{constructor(t,e,n,i,r,s=1){const a=t.createBuffer();super(a,e,n,i,r.length/n),this.isGLInstancedBufferAttribute=!0,this._needsUpdate=!1,this.isInstancedBufferAttribute=!0,this.meshPerAttribute=s,this.array=r,this._cacheArray=r,t.bindBuffer(t.ARRAY_BUFFER,a),t.bufferData(t.ARRAY_BUFFER,r,t.DYNAMIC_DRAW)}update(t,e){if(!this._needsUpdate||0===e)return;const n=t.getContext();n.bindBuffer(n.ARRAY_BUFFER,this.buffer),this.array===this._cacheArray?n.bufferSubData(n.ARRAY_BUFFER,0,this.array,0,e):(n.bufferData(n.ARRAY_BUFFER,this.array,n.DYNAMIC_DRAW),this._cacheArray=this.array),this._needsUpdate=!1}clone(){return this}}function Mt(t,e){return Math.max(e,Math.ceil(Math.sqrt(t/e))*e)}function Jt(t,e,n,i){3===e&&(console.warn('"channels" cannot be 3. Set to 4. More info: https://github.com/mrdoob/three.js/pull/23228'),e=4);const r=Mt(i,n),s=new t(r*r*e),a=t.name.includes("Float"),o=t.name.includes("Uint"),c=a?FloatType:o?UnsignedIntType:IntType;let l;switch(e){case 1:l=a?RedFormat:RedIntegerFormat;break;case 2:l=a?RGFormat:RGIntegerFormat;break;case 4:l=a?RGBAFormat:RGBAIntegerFormat}return{array:s,size:r,type:c,format:l}}let Q$2=class extends DataTexture{constructor(t,e,n,i,r,s){3===e&&(e=4);const{array:a,format:o,size:c,type:l}=Jt(t,e,n,i);super(a,c,c,o,l),this.partialUpdate=!0,this.maxUpdateCalls=1/0,this._utils=null,this._needsUpdate=!1,this._lastWidth=null,this._data=a,this._channels=e,this._pixelsPerInstance=n,this._stride=n*e,this._rowToUpdate=new Array(c),this._uniformMap=r,this._fetchUniformsInFragmentShader=s,this.needsUpdate=!0}resize(t){const e=Mt(t,this._pixelsPerInstance);if(e===this.image.width)return;const n=this._data,i=this._channels;this._rowToUpdate.length=e;const r=n.constructor,s=new r(e*e*i),a=Math.min(n.length,s.length);s.set(new r(n.buffer,0,a)),this.dispose(),this.image={data:s,height:e,width:e},this._data=s}enqueueUpdate(t){if(this._needsUpdate=!0,!this.partialUpdate)return;const e=this.image.width/this._pixelsPerInstance,n=Math.floor(t/e);this._rowToUpdate[n]=!0}update(t){const e=t.properties.get(this),n=this.version>0&&e.__version!==this.version,i=null!==this._lastWidth&&this._lastWidth!==this.image.width;if(!this._needsUpdate||!e.__webglTexture||n||i)return this._lastWidth=this.image.width,void(this._needsUpdate=!1);if(this._needsUpdate=!1,!this.partialUpdate)return void(this.needsUpdate=!0);const r=this.getUpdateRowsInfo();0!==r.length&&(r.length>this.maxUpdateCalls?this.needsUpdate=!0:this.updateRows(e,t,r),this._rowToUpdate.fill(!1))}getUpdateRowsInfo(){const t=this._rowToUpdate,e=[];for(let n=0,i=t.length;n<i;n++)if(t[n]){const r=n;for(;n<i&&t[n];n++);e.push({row:r,count:n-r})}return e}updateRows(t,e,n){const i=e.state,r=e.getContext();this._utils??(this._utils=new WebGLUtils(r,e.extensions,e.capabilities));const s=this._utils.convert(this.format),a=this._utils.convert(this.type),{data:o,width:c}=this.image,l=this._channels;i.bindTexture(r.TEXTURE_2D,t.__webglTexture);const u=ColorManagement.getPrimaries(ColorManagement.workingColorSpace),h=this.colorSpace===NoColorSpace?null:ColorManagement.getPrimaries(this.colorSpace),d=this.colorSpace===NoColorSpace||u===h?r.NONE:r.BROWSER_DEFAULT_WEBGL;r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,this.flipY),r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this.premultiplyAlpha),r.pixelStorei(r.UNPACK_ALIGNMENT,this.unpackAlignment),r.pixelStorei(r.UNPACK_COLORSPACE_CONVERSION_WEBGL,d);for(const{count:p,row:f}of n)r.texSubImage2D(r.TEXTURE_2D,0,0,f,c,p,s,a,o,f*c*l);this.onUpdate&&this.onUpdate(this)}setUniformAt(t,e,n){const{offset:i,size:r}=this._uniformMap.get(e),s=this._stride;1===r?this._data[t*s+i]=n:n.toArray(this._data,t*s+i)}getUniformAt(t,e,n){const{offset:i,size:r}=this._uniformMap.get(e),s=this._stride;return 1===r?this._data[t*s+i]:n.fromArray(this._data,t*s+i)}getUniformsGLSL(t,e,n){return{vertex:this.getUniformsVertexGLSL(t,e,n),fragment:this.getUniformsFragmentGLSL(t,e,n)}}getUniformsVertexGLSL(t,e,n){if(this._fetchUniformsInFragmentShader)return`\n flat varying ${n} ez_v${e}; \n void main() {\n ez_v${e} = ${e};`;const i=this.texelsFetchGLSL(t,e),r=this.getFromTexelsGLSL(),{assignVarying:s,declareVarying:a}=this.getVarying();return`\n uniform highp sampler2D ${t}; \n ${a}\n void main() {\n ${i}\n ${r}\n ${s}`}getUniformsFragmentGLSL(t,e,n){if(!this._fetchUniformsInFragmentShader){const{declareVarying:t,getVarying:e}=this.getVarying();return`\n ${t}\n void main() {\n ${e}`}return`\n uniform highp sampler2D ${t}; \n flat varying ${n} ez_v${e};\n void main() {\n ${this.texelsFetchGLSL(t,`ez_v${e}`)}\n ${this.getFromTexelsGLSL()}`}texelsFetchGLSL(t,e){const n=this._pixelsPerInstance;let i=`\n int size = textureSize(${t}, 0).x;\n int j = int(${e}) * ${n};\n int x = j % size;\n int y = j / size;\n `;for(let r=0;r<n;r++)i+=`vec4 ez_texel${r} = texelFetch(${t}, ivec2(x + ${r}, y), 0);\n`;return i}getFromTexelsGLSL(){const t=this._uniformMap;let e="";for(const[n,{type:i,offset:r,size:s}]of t){const t=Math.floor(r/this._channels);if("mat3"===i)e+=`mat3 ${n} = mat3(ez_texel${t}.rgb, vec3(ez_texel${t}.a, ez_texel${t+1}.rg), vec3(ez_texel${t+1}.ba, ez_texel${t+2}.r));\n`;else if("mat4"===i)e+=`mat4 ${n} = mat4(ez_texel${t}, ez_texel${t+1}, ez_texel${t+2}, ez_texel${t+3});\n`;else{e+=`${i} ${n} = ez_texel${t}.${this.getUniformComponents(r,s)};\n`}}return e}getVarying(){const t=this._uniformMap;let e="",n="",i="";for(const[r,{type:s}]of t)e+=`flat varying ${s} ez_v${r};\n`,n+=`ez_v${r} = ${r};\n`,i+=`${s} ${r} = ez_v${r};\n`;return{declareVarying:e,assignVarying:n,getVarying:i}}getUniformComponents(t,e){const n=t%this._channels;let i="";for(let r=0;r<e;r++)i+=te[n+r];return i}copy(t){return super.copy(t),this.partialUpdate=t.partialUpdate,this.maxUpdateCalls=t.maxUpdateCalls,this._channels=t._channels,this._pixelsPerInstance=t._pixelsPerInstance,this._stride=t._stride,this._rowToUpdate=t._rowToUpdate,this._uniformMap=t._uniformMap,this._fetchUniformsInFragmentShader=t._fetchUniformsInFragmentShader,this}};const te=["r","g","b","a"];let d$o=class extends Mesh{constructor(t,e,n={},i){if(!t)throw new Error('"geometry" is mandatory.');if(!e)throw new Error('"material" is mandatory.');const{allowsEuler:r,renderer:s,createEntities:a}=n;super(t,null),this.type="InstancedMesh2",this.isInstancedMesh2=!0,this.instances=null,this.instanceIndex=null,this.colorsTexture=null,this.morphTexture=null,this.boneTexture=null,this.uniformsTexture=null,this.boundingBox=null,this.boundingSphere=null,this.bvh=null,this.customSort=null,this.raycastOnlyFrustum=!1,this.LODinfo=null,this.autoUpdate=!0,this.bindMode=AttachedBindMode,this.bindMatrix=null,this.bindMatrixInverse=null,this.skeleton=null,this.onFrustumEnter=null,this._renderer=null,this._instancesCount=0,this._instancesArrayCount=0,this._perObjectFrustumCulled=!0,this._sortObjects=!1,this._indexArrayNeedsUpdate=!1,this._useOpacity=!1,this._currentMaterial=null,this._customProgramCacheKeyBase=null,this._onBeforeCompileBase=null,this._propertiesGetBase=null,this._propertiesGetMap=new WeakMap,this._properties=new WeakMap,this._freeIds=[],this.isInstancedMesh=!0,this.instanceMatrix=new InstancedBufferAttribute(new Float32Array(0),16),this.instanceColor=null,this._customProgramCacheKey=()=>`ezInstancedMesh2_${this.id}_${!!this.colorsTexture}_${this._useOpacity}_${!!this.boneTexture}_${!!this.uniformsTexture}_${this._customProgramCacheKeyBase.call(this._currentMaterial)}`,this._onBeforeCompile=(t,e)=>{if(this._onBeforeCompileBase&&this._onBeforeCompileBase.call(this._currentMaterial,t,e),t.instancing=!1,t.defines??(t.defines={}),t.defines.USE_INSTANCING_INDIRECT="",t.uniforms.matricesTexture={value:this.matricesTexture},this.uniformsTexture){t.uniforms.uniformsTexture={value:this.uniformsTexture};const{vertex:e,fragment:n}=this.uniformsTexture.getUniformsGLSL("uniformsTexture","instanceIndex","uint");t.vertexShader=t.vertexShader.replace("void main() {",e),t.fragmentShader=t.fragmentShader.replace("void main() {",n)}this.colorsTexture&&t.fragmentShader.includes("#include <color_pars_fragment>")&&(t.defines.USE_INSTANCING_COLOR_INDIRECT="",t.uniforms.colorsTexture={value:this.colorsTexture},t.vertexShader=t.vertexShader.replace("<color_vertex>","<instanced_color_vertex>"),t.vertexColors&&(t.defines.USE_VERTEX_COLOR=""),this._useOpacity?t.defines.USE_COLOR_ALPHA="":t.defines.USE_COLOR=""),this.boneTexture&&(t.defines.USE_SKINNING="",t.defines.USE_INSTANCING_SKINNING="",t.uniforms.bindMatrix={value:this.bindMatrix},t.uniforms.bindMatrixInverse={value:this.bindMatrixInverse},t.uniforms.bonesPerInstance={value:this.skeleton.bones.length},t.uniforms.boneTexture={value:this.boneTexture})};const o=n.capacity>0?n.capacity:ee;this._renderer=s,this._capacity=o,this._parentLOD=i,this._geometry=t,this.material=e,this._allowsEuler=r??!1,this._tempInstance=new St(this,-1,r),this.availabilityArray=(null==i?void 0:i.availabilityArray)??new Array(2*o),this._createEntities=a,this.initLastRenderInfo(),this.initIndexAttribute(),this.initMatricesTexture()}get capacity(){return this._capacity}get instancesCount(){return this._instancesCount}get perObjectFrustumCulled(){return this._perObjectFrustumCulled}set perObjectFrustumCulled(t){this._perObjectFrustumCulled=t,this._indexArrayNeedsUpdate=!0}get sortObjects(){return this._sortObjects}set sortObjects(t){this._sortObjects=t,this._indexArrayNeedsUpdate=!0}get geometry(){return this._geometry}set geometry(t){this._geometry=t,this.patchGeometry(t)}onBeforeShadow(t,e,n,i,r,s,a){var o,c,l;if(this.patchMaterial(t,s),!this.instanceIndex||a&&!this.isFirstGroup(a.materialIndex))return;const u=t.info.render.frame;this.autoUpdate&&!this.frustumCullingAlreadyPerformed(u,n,i)&&this.performFrustumCulling(i,n),this.instanceIndex.update(this._renderer,this.count),this.matricesTexture.update(t),null==(o=this.colorsTexture)||o.update(t),null==(c=this.uniformsTexture)||c.update(t),null==(l=this.boneTexture)||l.update(t)}onBeforeRender(t,e,n,i,r,s){var a,o,c;if(this.patchMaterial(t,r),!this.instanceIndex)return void(this._renderer=t);if(s&&!this.isFirstGroup(s.materialIndex))return;const l=t.info.render.frame;this.autoUpdate&&!this.frustumCullingAlreadyPerformed(l,n,null)&&this.performFrustumCulling(n),this.instanceIndex.update(this._renderer,this.count),this.matricesTexture.update(t),null==(a=this.colorsTexture)||a.update(t),null==(o=this.uniformsTexture)||o.update(t),null==(c=this.boneTexture)||c.update(t)}onAfterShadow(t,e,n,i,r,s,a){this.unpatchMaterial(t,s)}onAfterRender(t,e,n,i,r,s){this.unpatchMaterial(t,r),!(this.instanceIndex||s&&!this.isLastGroup(s.materialIndex))&&this.initIndexAttribute()}isFirstGroup(t){const e=this.material;for(let n=0;n<=t;n++)if(e[n].visible)return n===t}isLastGroup(t){const e=this.material;for(let n=e.length-1;n>=t;n--)if(e[n].visible)return n===t}initIndexAttribute(){if(!this._renderer)return void(this.count=0);const t=this._renderer.getContext(),e=this._capacity,n=new Uint32Array(e);for(let i=0;i<e;i++)n[i]=i;this.instanceIndex=new Qt(t,t.UNSIGNED_INT,1,4,n),this._geometry.setAttribute("instanceIndex",this.instanceIndex)}initLastRenderInfo(){this._parentLOD||(this._lastRenderInfo={frame:-1,camera:null,shadowCamera:null})}initMatricesTexture(){this._parentLOD||(this.matricesTexture=new Q$2(Float32Array,4,4,this._capacity))}initColorsTexture(){this._parentLOD||(this.colorsTexture=new Q$2(Float32Array,4,1,this._capacity),this.colorsTexture.colorSpace=ColorManagement.workingColorSpace,this.colorsTexture._data.fill(1),this.materialsNeedsUpdate())}materialsNeedsUpdate(){if(this.material.isMaterial)this.material.needsUpdate=!0;else for(const t of this.material)t.needsUpdate=!0}patchGeometry(t){const e=t.getAttribute("instanceIndex");if(e){if(e===this.instanceIndex)return;console.warn("The geometry has been cloned because it was already used."),(t=t.clone()).deleteAttribute("instanceIndex")}this.instanceIndex&&t.setAttribute("instanceIndex",this.instanceIndex)}patchMaterial(t,e){this._currentMaterial=e,this._customProgramCacheKeyBase=e.customProgramCacheKey,this._onBeforeCompileBase=e.onBeforeCompile,e.customProgramCacheKey=this._customProgramCacheKey,e.onBeforeCompile=this._onBeforeCompile;const n=t.properties;if(!this._properties.has(e)){const t={};this._properties.set(e,t);const i=this._propertiesGetBase=n.get;this._propertiesGetMap.set(e,n=>{if(n===e){if(e.isMeshDistanceMaterial){const e=i(n);t.light=e.light}return t}return i(n)})}n.get=this._propertiesGetMap.get(e)}unpatchMaterial(t,e){this._currentMaterial=null,t.properties.get=this._propertiesGetBase,e.onBeforeCompile=this._onBeforeCompileBase,e.customProgramCacheKey=this._customProgramCacheKeyBase,this._onBeforeCompileBase=null,this._customProgramCacheKeyBase=null}computeBVH(t={}){this.bvh||(this.bvh=new Zt(this,t.margin,t.getBBoxFromBSphere,t.accurateCulling)),this.bvh.clear(),this.bvh.create()}disposeBVH(){this.bvh=null}setMatrixAt(t,e){var n;if(e.toArray(this.matricesTexture._data,16*t),this.instances){const n=this.instances[t];e.decompose(n.position,n.quaternion,n.scale)}this.matricesTexture.enqueueUpdate(t),null==(n=this.bvh)||n.move(t)}getMatrixAt(t,e=ne){return e.fromArray(this.matricesTexture._data,16*t)}getPositionAt(t,e=ie){const n=16*t,i=this.matricesTexture._data;return e.x=i[n+12],e.y=i[n+13],e.z=i[n+14],e}getPositionAndMaxScaleOnAxisAt(t,e){const n=16*t,i=this.matricesTexture._data,r=i[n+0],s=i[n+1],a=i[n+2],o=r*r+s*s+a*a,c=i[n+4],l=i[n+5],u=i[n+6],h=c*c+l*l+u*u,d=i[n+8],p=i[n+9],f=i[n+10],m=d*d+p*p+f*f;return e.x=i[n+12],e.y=i[n+13],e.z=i[n+14],Math.sqrt(Math.max(o,h,m))}applyMatrixAtToSphere(t,e,n,i){const r=16*t,s=this.matricesTexture._data,a=s[r+0],o=s[r+1],c=s[r+2],l=s[r+3],u=s[r+4],h=s[r+5],d=s[r+6],p=s[r+7],f=s[r+8],m=s[r+9],g=s[r+10],A=s[r+11],y=s[r+12],v=s[r+13],S=s[r+14],x=s[r+15],b=e.center,T=n.x,I=n.y,M=n.z,E=1/(l*T+p*I+A*M+x);b.x=(a*T+u*I+f*M+y)*E,b.y=(o*T+h*I+m*M+v)*E,b.z=(c*T+d*I+g*M+S)*E;const w=a*a+o*o+c*c,R=u*u+h*h+d*d,C=f*f+m*m+g*g;e.radius=i*Math.sqrt(Math.max(w,R,C))}setVisibilityAt(t,e){this.availabilityArray[2*t]=e,this._indexArrayNeedsUpdate=!0}getVisibilityAt(t){return this.availabilityArray[2*t]}setActiveAt(t,e){this.availabilityArray[2*t+1]=e,this._indexArrayNeedsUpdate=!0}getActiveAt(t){return this.availabilityArray[2*t+1]}getActiveAndVisibilityAt(t){const e=2*t,n=this.availabilityArray;return n[e]&&n[e+1]}setActiveAndVisibilityAt(t,e){const n=2*t,i=this.availabilityArray;i[n]=e,i[n+1]=e,this._indexArrayNeedsUpdate=!0}setColorAt(t,e){null===this.colorsTexture&&this.initColorsTexture(),e.isColor?e.toArray(this.colorsTexture._data,4*t):At.set(e).toArray(this.colorsTexture._data,4*t),this.colorsTexture.enqueueUpdate(t)}getColorAt(t,e=At){return e.fromArray(this.colorsTexture._data,4*t)}setOpacityAt(t,e){this._useOpacity||(null===this.colorsTexture?this.initColorsTexture():this.materialsNeedsUpdate(),this._useOpacity=!0),this.colorsTexture._data[4*t+3]=e,this.colorsTexture.enqueueUpdate(t)}getOpacityAt(t){return this._useOpacity?this.colorsTexture._data[4*t+3]:1}copyTo(t,e){this.getMatrixAt(t,e.matrix).decompose(e.position,e.quaternion,e.scale)}computeBoundingBox(){const t=this._geometry,e=this._instancesArrayCount;this.boundingBox??(this.boundingBox=new Box3),null===t.boundingBox&&t.computeBoundingBox();const n=t.boundingBox,i=this.boundingBox;i.makeEmpty();for(let r=0;r<e;r++)this.getActiveAt(r)&&(gt.copy(n).applyMatrix4(this.getMatrixAt(r)),i.union(gt))}computeBoundingSphere(){const t=this._geometry,e=this._instancesArrayCount;this.boundingSphere??(this.boundingSphere=new Sphere),null===t.boundingSphere&&t.computeBoundingSphere();const n=t.boundingSphere,i=this.boundingSphere;i.makeEmpty();for(let r=0;r<e;r++)this.getActiveAt(r)&&(bt.copy(n).applyMatrix4(this.getMatrixAt(r)),i.union(bt))}clone(t){const e={capacity:this._capacity,renderer:this._renderer,allowsEuler:this._allowsEuler,createEntities:this._createEntities};return new this.constructor(this.geometry,this.material,e).copy(this,t)}copy(t,e){return super.copy(t,e),this.count=t._capacity,this._instancesCount=t._instancesCount,this._instancesArrayCount=t._instancesArrayCount,this._capacity=t._capacity,null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone()),null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),this.matricesTexture=t.matricesTexture.clone(),this.matricesTexture.image.data=this.matricesTexture.image.data.slice(),null!==t.colorsTexture&&(this.colorsTexture=t.colorsTexture.clone(),this.colorsTexture.image.data=this.colorsTexture.image.data.slice()),null!==t.uniformsTexture&&(this.uniformsTexture=t.uniformsTexture.clone(),this.uniformsTexture.image.data=this.uniformsTexture.image.data.slice()),null!==t.morphTexture&&(this.morphTexture=t.morphTexture.clone(),this.morphTexture.image.data=this.morphTexture.image.data.slice()),null!==t.boneTexture&&(this.boneTexture=t.boneTexture.clone(),this.boneTexture.image.data=this.boneTexture.image.data.slice()),this}dispose(){var t,e,n,i;this.dispatchEvent({type:"dispose"}),this.matricesTexture.dispose(),null==(t=this.colorsTexture)||t.dispose(),null==(e=this.morphTexture)||e.dispose(),null==(n=this.boneTexture)||n.dispose(),null==(i=this.uniformsTexture)||i.dispose()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.bindMatrixInverse&&(this.bindMode===AttachedBindMode?this.bindMatrixInverse.copy(this.matrixWorld).invert():this.bindMode===DetachedBindMode?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn("Unrecognized bindMode: "+this.bindMode))}};const ee=1e3,gt=new Box3,bt=new Sphere,ne=new Matrix4,At=new Color,ie=new Vector3;function Ut(t,e){return t.depth-e.depth}function Ot(t,e){return e.depth-t.depth}d$o.prototype.resizeBuffers=function(t){var e;const n=this._capacity;this._capacity=t;const i=Math.min(t,n);if(this.instanceIndex){const e=new Uint32Array(t);e.set(new Uint32Array(this.instanceIndex.array.buffer,0,i)),this.instanceIndex.array=e}if(this.LODinfo)for(const r of this.LODinfo.objects)if(r._capacity=t,r.instanceIndex){const e=new Uint32Array(t);e.set(new Uint32Array(r.instanceIndex.array.buffer,0,i)),r.instanceIndex.array=e}if(this.availabilityArray.length=2*t,this.matricesTexture.resize(t),this.colorsTexture&&(this.colorsTexture.resize(t),t>n&&this.colorsTexture._data.fill(1,4*n)),this.morphTexture){const e=this.morphTexture.image.data,i=e.length/n;this.morphTexture.dispose(),this.morphTexture=new DataTexture(new Float32Array(i*t),i,t,RedFormat,FloatType),this.morphTexture.image.data.set(e)}return null==(e=this.uniformsTexture)||e.resize(t),this},d$o.prototype.setInstancesArrayCount=function(t){if(t<this._instancesArrayCount){const e=this.bvh;if(e)for(let n=this._instancesArrayCount-1;n>=t;n--)this.getActiveAt(n)&&e.delete(n);return void(this._instancesArrayCount=t)}if(t>this._capacity){let e=this._capacity+(this._capacity>>1)+512;for(;e<t;)e+=512+(e>>1);this.resizeBuffers(e)}const e=this._instancesArrayCount;this._instancesArrayCount=t,this._createEntities&&this.createEntities(e)};class se{constructor(){this.array=[],this.pool=[]}push(t,e){const n=this.pool,i=this.array,r=i.length;r>=n.length&&n.push({depth:null,index:null,depthSort:null});const s=n[r];s.depth=t,s.index=e,i.push(s)}reset(){this.array.length=0}}const J$g=new Frustum,S$1=new se,B$2=new Matrix4,N$D=new Matrix4,nt=new Vector3,P$1=new Vector3,z$3=new Vector3,re=new Vector3,w$8=new Sphere;d$o.prototype.performFrustumCulling=function(t,e=t){const n=this._parentLOD??this,i=n.LODinfo;let r;if(i){r=t!==e?i.shadowRender??i.render:i.render;for(const t of i.objects)t.count=0}else n.count=0;0!==n._instancesArrayCount&&((null==r?void 0:r.levels.length)>0?n.frustumCullingLOD(r,t,e):n.frustumCulling(t))},d$o.prototype.frustumCullingAlreadyPerformed=function(t,e,n){const i=this._lastRenderInfo;return i.frame===t&&i.camera===e&&i.shadowCamera===n||(i.frame=t,i.camera=e,i.shadowCamera=n,!1)},d$o.prototype.frustumCulling=function(t){var e;const n=this._sortObjects,i=this._perObjectFrustumCulled,r=this.instanceIndex.array;if(this.instanceIndex._needsUpdate=!0,i||n){if(n&&(N$D.copy(this.matrixWorld).invert(),P$1.setFromMatrixPosition(t.matrixWorld).applyMatrix4(N$D),nt.set(0,0,-1).transformDirection(t.matrixWorld).transformDirection(N$D)),i?(B$2.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse).multiply(this.matrixWorld),this.bvh?this.BVHCulling(t):this.linearCulling(t)):this.updateRenderList(),n){const t=this.customSort;null===t?S$1.array.sort(null!=(e=this.material)&&e.transparent?Ot:Ut):t(S$1.array);const n=S$1.array,i=n.length;for(let e=0;e<i;e++)r[e]=n[e].index;this.count=i,S$1.reset()}}else this.updateIndexArray()},d$o.prototype.updateIndexArray=function(){if(!this._indexArrayNeedsUpdate)return;const t=this.instanceIndex.array,e=this._instancesArrayCount;let n=0;for(let i=0;i<e;i++)this.getActiveAndVisibilityAt(i)&&(t[n++]=i);this.count=n,this._indexArrayNeedsUpdate=!1},d$o.prototype.updateRenderList=function(){const t=this._instancesArrayCount;for(let e=0;e<t;e++)if(this.getActiveAndVisibilityAt(e)){const t=this.getPositionAt(e).sub(P$1).dot(nt);S$1.push(t,e)}},d$o.prototype.BVHCulling=function(t){const e=this.instanceIndex.array,n=this._instancesArrayCount,i=this._sortObjects,r=this.onFrustumEnter;let s=0;this.bvh.frustumCulling(B$2,a=>{const o=a.object;if(o<n&&this.getVisibilityAt(o)&&(!r||r(o,t)))if(i){const t=this.getPositionAt(o).sub(P$1).dot(nt);S$1.push(t,o)}else e[s++]=o}),this.count=s},d$o.prototype.linearCulling=function(t){const e=this.instanceIndex.array;this.geometry.boundingSphere||this.geometry.computeBoundingSphere();const n=this._geometry.boundingSphere,i=n.radius,r=n.center,s=this._instancesArrayCount,a=0===r.x&&0===r.y&&0===r.z,o=this._sortObjects,c=this.onFrustumEnter;let l=0;J$g.setFromProjectionMatrix(B$2);for(let u=0;u<s;u++)if(this.getActiveAndVisibilityAt(u)){if(a){const t=this.getPositionAndMaxScaleOnAxisAt(u,w$8.center);w$8.radius=i*t}else this.applyMatrixAtToSphere(u,w$8,r,i);if(J$g.intersectsSphere(w$8)&&(!c||c(u,t)))if(o){const t=re.subVectors(w$8.center,P$1).dot(nt);S$1.push(t,u)}else e[l++]=u}this.count=l},d$o.prototype.frustumCullingLOD=function(t,e,n){var i,r;const{count:s,levels:a}=t,o=!(e!==n)&&this._sortObjects;for(let l=0;l<a.length;l++)s[l]=0,a[l].object.instanceIndex&&(a[l].object.instanceIndex._needsUpdate=!0);B$2.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse).multiply(this.matrixWorld),N$D.copy(this.matrixWorld).invert(),P$1.setFromMatrixPosition(e.matrixWorld).applyMatrix4(N$D),z$3.setFromMatrixPosition(n.matrixWorld).applyMatrix4(N$D);const c=t.levels.map(t=>t.object.instanceIndex.array);if(this.bvh?this.BVHCullingLOD(t,c,o,e,n):this.linearCullingLOD(t,c,o,e,n),o){const t=this.customSort,e=S$1.array;let n=0,o=a[1].distance;null===t?e.sort(null!=(i=a[0].object.material)&&i.transparent?Ot:Ut):t(e);for(let i=0,l=e.length;i<l;i++){const t=e[i];t.depth>o&&(n++,o=(null==(r=a[n+1])?void 0:r.distance)??1/0),c[n][s[n]++]=t.index}S$1.reset()}for(let l=0;l<a.length;l++){a[l].object.count=s[l]}},d$o.prototype.BVHCullingLOD=function(t,e,n,i,r){const{count:s,levels:a}=t,o=this._instancesArrayCount,c=this.onFrustumEnter;n?this.bvh.frustumCulling(B$2,t=>{const e=t.object;if(e<o&&this.getVisibilityAt(e)&&(!c||c(e,i,r))){const t=this.getPositionAt(e).distanceToSquared(z$3);S$1.push(t,e)}}):this.bvh.frustumCullingLOD(B$2,z$3,a,(t,n)=>{const l=t.object;if(l<o&&this.getVisibilityAt(l)){if(null===n){const t=this.getPositionAt(l).distanceToSquared(z$3);n=this.getObjectLODIndexForDistance(a,t)}(!c||c(l,i,r,n))&&(e[n][s[n]++]=l)}})},d$o.prototype.linearCullingLOD=function(t,e,n,i,r){const{count:s,levels:a}=t;this.geometry.boundingSphere||this.geometry.computeBoundingSphere();const o=this._geometry.boundingSphere,c=o.radius,l=o.center,u=this._instancesArrayCount,h=0===l.x&&0===l.y&&0===l.z,d=this.onFrustumEnter;J$g.setFromProjectionMatrix(B$2);for(let p=0;p<u;p++)if(this.getActiveAndVisibilityAt(p)){if(h){const t=this.getPositionAndMaxScaleOnAxisAt(p,w$8.center);w$8.radius=c*t}else this.applyMatrixAtToSphere(p,w$8,l,c);if(J$g.intersectsSphere(w$8))if(n){if(!d||d(p,i,r))continue;const t=w$8.center.distanceToSquared(z$3);S$1.push(t,p)}else{const t=w$8.center.distanceToSquared(z$3),n=this.getObjectLODIndexForDistance(a,t);(!d||d(p,i,r,n))&&(e[n][s[n]++]=p)}}},d$o.prototype.clearTempInstance=function(t){const e=this._tempInstance;return e.id=t,this.clearInstance(e)},d$o.prototype.clearTempInstancePosition=function(t){const e=this._tempInstance;return e.id=t,e.position.set(0,0,0),e},d$o.prototype.clearInstance=function(t){return t.position.set(0,0,0),t.scale.set(1,1,1),t.quaternion.identity(),t},d$o.prototype.updateInstances=function(t){const e=this._instancesArrayCount,n=this.instances;for(let i=0;i<e;i++){if(!this.getActiveAt(i))continue;const e=n?n[i]:this.clearTempInstance(i);t(e,i),e.updateMatrix()}return this},d$o.prototype.updateInstancesPosition=function(t){const e=this._instancesArrayCount,n=this.instances;for(let i=0;i<e;i++){if(!this.getActiveAt(i))continue;const e=n?n[i]:this.clearTempInstancePosition(i);t(e,i),e.updateMatrixPosition()}return this},d$o.prototype.createEntities=function(t){const e=this._instancesArrayCount;if(this.instances){if(!(this.instances.length<e))return this;this.instances.length=e}else this.instances=new Array(e);const n=this.instances;for(let i=t;i<e;i++)n[i]||(n[i]=new St(this,i,this._allowsEuler));return this},d$o.prototype.addInstances=function(t,e){!e&&this.bvh&&console.warn("InstancedMesh2: if `computeBVH()` has already been called, it is better to valorize the instances in the `onCreation` callback for better performance.");const n=this._freeIds;if(n.length>0){let i=-1;const r=Math.min(n.length,t),s=n.length-r;for(let t=n.length-1;t>=s;t--){const r=n[t];r>i&&(i=r),this.addInstance(r,e)}n.length-=r,t-=r,this._instancesArrayCount=Math.max(i+1,this._instancesArrayCount)}const i=this._instancesArrayCount,r=i+t;this.setInstancesArrayCount(r);for(let s=i;s<r;s++)this.addInstance(s,e);return this},d$o.prototype.addInstance=function(t,e){var n;this._instancesCount++,this.setActiveAndVisibilityAt(t,!0);const i=this.instances?this.clearInstance(this.instances[t]):this.clearTempInstance(t);e?(e(i,t),i.updateMatrix()):i.setMatrixIdentity(),null==(n=this.bvh)||n.insert(t)},d$o.prototype.removeInstances=function(...t){const e=this._freeIds,n=this.bvh;for(const i of t)i<this._instancesArrayCount&&this.getActiveAt(i)&&(this.setActiveAt(i,!1),e.push(i),null==n||n.delete(i),this._instancesCount--);for(let i=this._instancesArrayCount-1;i>=0&&!this.getActiveAt(i);i--)this._instancesArrayCount--;return this},d$o.prototype.clearInstances=function(){var t;if(this._instancesCount=0,this._instancesArrayCount=0,this._freeIds.length=0,null==(t=this.bvh)||t.clear(),this.LODinfo)for(const e of this.LODinfo.objects)e.count=0;return this},d$o.prototype.getObjectLODIndexForDistance=function(t,e){for(let n=t.length-1;n>0;n--){const i=t[n];if(e>=i.distance-i.distance*i.hysteresis)return n}return 0},d$o.prototype.setFirstLODDistance=function(t=0,e=0){if(this._parentLOD)throw new Error("Cannot create LOD for this InstancedMesh2.");return this.LODinfo||(this.LODinfo={render:null,shadowRender:null,objects:[this]}),this.LODinfo.render||(this.LODinfo.render={levels:[{distance:t,hysteresis:e,object:this}],count:[0]}),this},d$o.prototype.addLOD=function(t,e,n=0,i=0){var r;if(this._parentLOD)throw new Error("Cannot create LOD for this InstancedMesh2.");if((null==(r=this.LODinfo)||!r.render)&&0===n)throw new Error('Cannot set distance to 0 for the first LOD. Use "setFirstLODDistance" before use "addLOD".');return this.setFirstLODDistance(0,i),this.addLevel(this.LODinfo.render,t,e,n,i),this},d$o.prototype.addShadowLOD=function(t,e=0,n=0){if(this._parentLOD)throw new Error("Cannot create LOD for this InstancedMesh2.");this.LODinfo||(this.LODinfo={render:null,shadowRender:null,objects:[this]}),this.LODinfo.shadowRender||(this.LODinfo.shadowRender={levels:[],count:[]});return this.addLevel(this.LODinfo.shadowRender,t,null,e,n).castShadow=!0,this.castShadow=!0,this},d$o.prototype.addLevel=function(t,e,n,i,r){const s=this.LODinfo.objects,a=t.levels;let o,c;i=i**2;const l=s.findIndex(t=>t.geometry===e);if(-1===l){const t={capacity:this._capacity,renderer:this._renderer};c=new d$o(e,n??new ShaderMaterial,t,this),c.frustumCulled=!1,this.patchLevel(c),s.push(c),this.add(c)}else c=s[l],n&&(c.material=n);for(o=0;o<a.length&&!(i<a[o].distance);o++);return a.splice(o,0,{distance:i,hysteresis:r,object:c}),t.count.push(0),c},d$o.prototype.patchLevel=function(t){Object.defineProperty(t,"_lastRenderInfo",{get(){return this._parentLOD._lastRenderInfo}}),Object.defineProperty(t,"matricesTexture",{get(){return this._parentLOD.matricesTexture}}),Object.defineProperty(t,"colorsTexture",{get(){return this._parentLOD.colorsTexture}}),Object.defineProperty(t,"uniformsTexture",{get(){return this._parentLOD.uniformsTexture}}),Object.defineProperty(t,"morphTexture",{get(){return this._parentLOD.morphTexture}}),Object.defineProperty(t,"boneTexture",{get(){return this._parentLOD.boneTexture}}),Object.defineProperty(t,"skeleton",{get(){return this._parentLOD.skeleton}}),Object.defineProperty(t,"bindMatrixInverse",{get(){return this._parentLOD.bindMatrixInverse}}),Object.defineProperty(t,"bindMatrix",{get(){return this._parentLOD.bindMatrix}})};const oe=new Mesh;d$o.prototype.getMorphAt=function(t,e=oe){const n=e.morphTargetInfluences,i=this.morphTexture.source.data.data,r=t*(n.length+1)+1;for(let s=0;s<n.length;s++)n[s]=i[r+s];return e},d$o.prototype.setMorphAt=function(t,e){const n=e.morphTargetInfluences,i=n.length+1;null===this.morphTexture&&!this._parentLOD&&(this.morphTexture=new DataTexture(new Float32Array(i*this._capacity),i,this._capacity,RedFormat,FloatType));const r=this.morphTexture.source.data.data;let s=0;for(const c of n)s+=c;const a=this._geometry.morphTargetsRelative?1:1-s,o=i*t;r[o]=a,r.set(n,o+1),this.morphTexture.needsUpdate=!0};const it=[],tt=new Mesh,ae=new Ray,It=new Vector3,vt=new Vector3,Tt=new Matrix4,Ct=new Sphere;d$o.prototype.raycast=function(t,e){if(this._parentLOD||!this.material||0===this._instancesArrayCount||!this.instanceIndex)return;tt.geometry=this._geometry,tt.material=this.material;const n=t.ray,i=t.near,r=t.far;Tt.copy(this.matrixWorld).invert(),vt.setFromMatrixScale(this.matrixWorld),It.copy(t.ray.direction).multiply(vt);const s=It.length();t.ray=ae.copy(t.ray).applyMatrix4(Tt),t.near/=s,t.far/=s,this.raycastInstances(t,e),t.ray=n,t.near=i,t.far=r},d$o.prototype.raycastInstances=function(t,e){if(this.bvh)this.bvh.raycast(t,n=>this.checkObjectIntersection(t,n,e));else{if(null===this.boundingSphere&&this.computeBoundingSphere(),Ct.copy(this.boundingSphere),!t.ray.intersectsSphere(Ct))return;const n=this.instanceIndex.array,i=this.raycastOnlyFrustum&&this._perObjectFrustumCulled?this.count:this._instancesArrayCount;for(let r=0;r<i;r++)this.checkObjectIntersection(t,n[r],e)}},d$o.prototype.checkObjectIntersection=function(t,e,n){if(!(e>this._instancesArrayCount)&&this.getActiveAndVisibilityAt(e)){this.getMatrixAt(e,tt.matrixWorld),tt.raycast(t,it);for(const t of it)t.instanceId=e,t.object=this,n.push(t);it.length=0}},d$o.prototype.initSkeleton=function(t,e=!0){if(t&&this.skeleton!==t&&!this._parentLOD){const n=t.bones;if(this.skeleton=t,this.bindMatrix=new Matrix4,this.bindMatrixInverse=new Matrix4,this.boneTexture=new Q$2(Float32Array,4,4*n.length,this._capacity),e)for(const t of n)t.matrixAutoUpdate=!1,t.matrixWorldAutoUpdate=!1;this.materialsNeedsUpdate()}},d$o.prototype.setBonesAt=function(t,e=!0,n){const i=this.skeleton;if(!i)throw new Error('"setBonesAt" cannot be called before "initSkeleton"');const r=i.bones,s=i.boneInverses;for(let a=0,o=r.length;a<o;a++){const i=r[a];e&&(null!=n&&n.has(i.name)||i.updateMatrix(),i.matrixWorld.multiplyMatrices(i.parent.matrixWorld,i.matrix)),this.multiplyBoneMatricesAt(t,a,i.matrixWorld,s[a])}this.boneTexture.enqueueUpdate(t)},d$o.prototype.multiplyBoneMatricesAt=function(t,e,n,i){const r=16*(t*this.skeleton.bones.length+e),s=n.elements,a=i.elements,o=this.boneTexture._data,c=s[0],l=s[4],u=s[8],h=s[12],d=s[1],p=s[5],f=s[9],m=s[13],g=s[2],A=s[6],y=s[10],v=s[14],S=s[3],x=s[7],b=s[11],T=s[15],I=a[0],M=a[4],E=a[8],w=a[12],R=a[1],C=a[5],k=a[9],_=a[13],L=a[2],U=a[6],N=a[10],F=a[14],B=a[3],V=a[7],P=a[11],W=a[15];o[r+0]=c*I+l*R+u*L+h*B,o[r+4]=c*M+l*C+u*U+h*V,o[r+8]=c*E+l*k+u*N+h*P,o[r+12]=c*w+l*_+u*F+h*W,o[r+1]=d*I+p*R+f*L+m*B,o[r+5]=d*M+p*C+f*U+m*V,o[r+9]=d*E+p*k+f*N+m*P,o[r+13]=d*w+p*_+f*F+m*W,o[r+2]=g*I+A*R+y*L+v*B,o[r+6]=g*M+A*C+y*U+v*V,o[r+10]=g*E+A*k+y*N+v*P,o[r+14]=g*w+A*_+y*F+v*W,o[r+3]=S*I+x*R+b*L+T*B,o[r+7]=S*M+x*C+b*U+T*V,o[r+11]=S*E+x*k+b*N+T*P,o[r+15]=S*w+x*_+b*F+T*W},d$o.prototype.getUniformAt=function(t,e,n){if(!this.uniformsTexture)throw new Error('Before get/set uniform, it\'s necessary to use "initUniformsPerInstance".');return this.uniformsTexture.getUniformAt(t,e,n)},d$o.prototype.setUniformAt=function(t,e,n){if(!this.uniformsTexture)throw new Error('Before get/set uniform, it\'s necessary to use "initUniformsPerInstance".');this.uniformsTexture.setUniformAt(t,e,n),this.uniformsTexture.enqueueUpdate(t)},d$o.prototype.initUniformsPerInstance=function(t){if(!this._parentLOD){const{channels:e,pixelsPerInstance:n,uniformMap:i,fetchInFragmentShader:r}=this.getUniformSchemaResult(t);this.uniformsTexture=new Q$2(Float32Array,e,n,this._capacity,i,r),this.materialsNeedsUpdate()}},d$o.prototype.getUniformSchemaResult=function(t){let e=0;const n=new Map,i=[],r=t.vertex??{},s=t.fragment??{};let a=!0;for(const l in r){const t=r[l],n=this.getUniformSize(t);e+=n,i.push({name:l,type:t,size:n}),a=!1}for(const l in s)if(!r[l]){const t=s[l],n=this.getUniformSize(t);e+=n,i.push({name:l,type:t,size:n})}i.sort((t,e)=>e.size-t.size);const o=[];for(const{name:l,size:u,type:h}of i){const t=this.getUniformOffset(u,o);n.set(l,{offset:t,size:u,type:h})}const c=Math.ceil(e/4);return{channels:Math.min(e,4),pixelsPerInstance:c,uniformMap:n,fetchInFragmentShader:a}},d$o.prototype.getUniformOffset=function(t,e){if(t<4)for(let i=0;i<e.length;i++)if(e[i]+t<=4){const n=4*i+e[i];return e[i]+=t,n}const n=4*e.length;for(;t>0;t-=4)e.push(t);return n},d$o.prototype.getUniformSize=function(t){switch(t){case"float":return 1;case"vec2":return 2;case"vec3":return 3;case"vec4":return 4;case"mat3":return 9;case"mat4":return 16;default:throw new Error(`Invalid uniform type: ${t}`)}};var ce="#ifdef USE_INSTANCING_INDIRECT\r\n attribute uint instanceIndex;\r\n uniform highp sampler2D matricesTexture; \n\n mat4 getInstancedMatrix() {\r\n int size = textureSize( matricesTexture, 0 ).x;\r\n int j = int( instanceIndex ) * 4;\r\n int x = j % size;\r\n int y = j / size;\r\n vec4 v1 = texelFetch( matricesTexture, ivec2( x, y ), 0 );\r\n vec4 v2 = texelFetch( matricesTexture, ivec2( x + 1, y ), 0 );\r\n vec4 v3 = texelFetch( matricesTexture, ivec2( x + 2, y ), 0 );\r\n vec4 v4 = texelFetch( matricesTexture, ivec2( x + 3, y ), 0 );\r\n return mat4( v1, v2, v3, v4 );\r\n }\r\n#endif",he="#ifdef USE_INSTANCING_COLOR_INDIRECT\r\n uniform highp sampler2D colorsTexture;\n\n #ifdef USE_COLOR_ALPHA\r\n vec4 getColorTexture() {\r\n int size = textureSize( colorsTexture, 0 ).x;\r\n int j = int( instanceIndex );\r\n int x = j % size;\r\n int y = j / size;\r\n return texelFetch( colorsTexture, ivec2( x, y ), 0 );\r\n }\r\n #else\r\n vec3 getColorTexture() {\r\n int size = textureSize( colorsTexture, 0 ).x;\r\n int j = int( instanceIndex );\r\n int x = j % size;\r\n int y = j / size;\r\n return texelFetch( colorsTexture, ivec2( x, y ), 0 ).rgb;\r\n }\r\n #endif\r\n#endif",ue="#ifdef USE_INSTANCING_INDIRECT\r\n mat4 instanceMatrix = getInstancedMatrix();\n\n #ifdef USE_INSTANCING_COLOR_INDIRECT\r\n vColor *= getColorTexture();\r\n #endif\r\n#endif",le="#ifdef USE_INSTANCING_COLOR_INDIRECT\r\n #ifdef USE_VERTEX_COLOR\r\n vColor = color;\r\n #else\r\n #ifdef USE_COLOR_ALPHA\r\n vColor = vec4( 1.0 );\r\n #else\r\n vColor = vec3( 1.0 );\r\n #endif\r\n #endif\r\n#endif",fe="#ifdef USE_SKINNING\r\n uniform mat4 bindMatrix;\r\n uniform mat4 bindMatrixInverse;\r\n uniform highp sampler2D boneTexture;\n\n #ifdef USE_INSTANCING_SKINNING\r\n uniform int bonesPerInstance;\r\n #endif\n\n mat4 getBoneMatrix( const in float i ) {\r\n int size = textureSize( boneTexture, 0 ).x;\n\n #ifdef USE_INSTANCING_SKINNING\r\n int j = ( bonesPerInstance * int( instanceIndex ) + int( i ) ) * 4;\r\n #else\r\n int j = int( i ) * 4;\r\n #endif\n\n int x = j % size;\r\n int y = j / size;\r\n vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\r\n vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\r\n vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\r\n vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\r\n return mat4( v1, v2, v3, v4 );\r\n }\r\n#endif";function ht(t){return t.replace("#ifdef USE_INSTANCING","#if defined USE_INSTANCING || defined USE_INSTANCING_INDIRECT")}ShaderChunk.instanced_pars_vertex=ce,ShaderChunk.instanced_color_pars_vertex=he,ShaderChunk.instanced_vertex=ue,ShaderChunk.instanced_color_vertex=le,ShaderChunk.project_vertex=ht(ShaderChunk.project_vertex),ShaderChunk.worldpos_vertex=ht(ShaderChunk.worldpos_vertex),ShaderChunk.defaultnormal_vertex=ht(ShaderChunk.defaultnormal_vertex),ShaderChunk.batching_pars_vertex=ShaderChunk.batching_pars_vertex.concat("\n#include <instanced_pars_vertex>"),ShaderChunk.color_pars_vertex=ShaderChunk.color_pars_vertex.concat("\n#include <instanced_color_pars_vertex>"),ShaderChunk.batching_vertex=ShaderChunk.batching_vertex.concat("\n#include <instanced_vertex>"),ShaderChunk.skinning_pars_vertex=fe,ShaderChunk.morphinstance_vertex&&(ShaderChunk.morphinstance_vertex=ShaderChunk.morphinstance_vertex.replaceAll("gl_InstanceID","instanceIndex"));class DebugEnvironment extends Scene{constructor(){super();const t=new BoxGeometry;t.deleteAttribute("uv");const e=new MeshStandardMaterial({metalness:0,side:BackSide}),n=new Mesh(t,e);n.scale.setScalar(10),this.add(n);const i=new PointLight(16777215,50,0,2);this.add(i);const r=new MeshLambertMaterial({color:16711680,emissive:16777215,emissiveIntensity:10}),s=new Mesh(t,r);s.position.set(-5,2,0),s.scale.set(.1,1,1),this.add(s);const a=new MeshLambertMaterial({color:65280,emissive:16777215,emissiveIntensity:10}),o=new Mesh(t,a);o.position.set(0,5,0),o.scale.set(1,.1,1),this.add(o);const c=new MeshLambertMaterial({color:255,emissive:16777215,emissiveIntensity:10}),l=new Mesh(t,c);l.position.set(2,1,5),l.scale.set(1.5,2,.1),this.add(l)}}const _box$1=new Box3,_vector$1=new Vector3;class LineSegmentsGeometry extends InstancedBufferGeometry{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry";this.setIndex([0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5]),this.setAttribute("position",new Float32BufferAttribute([-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],3)),this.setAttribute("uv",new Float32BufferAttribute([-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],2))}applyMatrix4(t){const e=this.attributes.instanceStart,n=this.attributes.instanceEnd;return void 0!==e&&(e.applyMatrix4(t),n.applyMatrix4(t),e.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}setPositions(t){let e;t instanceof Float32Array?e=t:Array.isArray(t)&&(e=new Float32Array(t));const n=new InstancedInterleavedBuffer(e,6,1);return this.setAttribute("instanceStart",new InterleavedBufferAttribute(n,3,0)),this.setAttribute("instanceEnd",new InterleavedBufferAttribute(n,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(t){let e;t instanceof Float32Array?e=t:Array.isArray(t)&&(e=new Float32Array(t));const n=new InstancedInterleavedBuffer(e,6,1);return this.setAttribute("instanceColorStart",new InterleavedBufferAttribute(n,3,0)),this.setAttribute("instanceColorEnd",new InterleavedBufferAttribute(n,3,3)),this}fromWireframeGeometry(t){return this.setPositions(t.attributes.position.array),this}fromEdgesGeometry(t){return this.setPositions(t.attributes.position.array),this}fromMesh(t){return this.fromWireframeGeometry(new WireframeGeometry(t.geometry)),this}fromLineSegments(t){const e=t.geometry;return this.setPositions(e.attributes.position.array),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new Box3);const t=this.attributes.instanceStart,e=this.attributes.instanceEnd;void 0!==t&&void 0!==e&&(this.boundingBox.setFromBufferAttribute(t),_box$1.setFromBufferAttribute(e),this.boundingBox.union(_box$1))}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new Sphere),null===this.boundingBox&&this.computeBoundingBox();const t=this.attributes.instanceStart,e=this.attributes.instanceEnd;if(void 0!==t&&void 0!==e){const n=this.boundingSphere.center;this.boundingBox.getCenter(n);let i=0;for(let r=0,s=t.count;r<s;r++)_vector$1.fromBufferAttribute(t,r),i=Math.max(i,n.distanceToSquared(_vector$1)),_vector$1.fromBufferAttribute(e,r),i=Math.max(i,n.distanceToSquared(_vector$1));this.boundingSphere.radius=Math.sqrt(i),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}}toJSON(){}applyMatrix(t){return console.warn("THREE.LineSegmentsGeometry: applyMatrix() has been renamed to applyMatrix4()."),this.applyMatrix4(t)}}UniformsLib.line={worldUnits:{value:1},linewidth:{value:1},resolution:{value:new Vector2(1,1)},dashOffset:{value:0},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1}},ShaderLib.line={uniforms:UniformsUtils.merge([UniformsLib.common,UniformsLib.fog,UniformsLib.line]),vertexShader:"\n\t\t#include <common>\n\t\t#include <color_pars_vertex>\n\t\t#include <fog_pars_vertex>\n\t\t#include <logdepthbuf_pars_vertex>\n\t\t#include <clipping_planes_pars_vertex>\n\n\t\tuniform float linewidth;\n\t\tuniform vec2 resolution;\n\n\t\tattribute vec3 instanceStart;\n\t\tattribute vec3 instanceEnd;\n\n\t\tattribute vec3 instanceColorStart;\n\t\tattribute vec3 instanceColorEnd;\n\n\t\t#ifdef WORLD_UNITS\n\n\t\t\tvarying vec4 worldPos;\n\t\t\tvarying vec3 worldStart;\n\t\t\tvarying vec3 worldEnd;\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t#endif\n\n\t\t#else\n\n\t\t\tvarying vec2 vUv;\n\n\t\t#endif\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashScale;\n\t\t\tattribute float instanceDistanceStart;\n\t\t\tattribute float instanceDistanceEnd;\n\t\t\tvarying float vLineDistance;\n\n\t\t#endif\n\n\t\tvoid trimSegment( const in vec4 start, inout vec4 end ) {\n\n\t\t\t// trim end segment so it terminates between the camera plane and the near plane\n\n\t\t\t// conservative estimate of the near plane\n\t\t\tfloat a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n\t\t\tfloat b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n\t\t\tfloat nearEstimate = - 0.5 * b / a;\n\n\t\t\tfloat alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n\t\t\tend.xyz = mix( start.xyz, end.xyz, alpha );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#ifdef USE_COLOR\n\n\t\t\t\tvColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;\n\n\t\t\t#endif\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\t\t\t\tvUv = uv;\n\n\t\t\t#endif\n\n\t\t\tfloat aspect = resolution.x / resolution.y;\n\n\t\t\t// camera space\n\t\t\tvec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n\t\t\tvec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\tworldStart = start.xyz;\n\t\t\t\tworldEnd = end.xyz;\n\n\t\t\t#else\n\n\t\t\t\tvUv = uv;\n\n\t\t\t#endif\n\n\t\t\t// special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n\t\t\t// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n\t\t\t// but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n\t\t\t// perhaps there is a more elegant solution -- WestLangley\n\n\t\t\tbool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n\t\t\tif ( perspective ) {\n\n\t\t\t\tif ( start.z < 0.0 && end.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( start, end );\n\n\t\t\t\t} else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( end, start );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// clip space\n\t\t\tvec4 clipStart = projectionMatrix * start;\n\t\t\tvec4 clipEnd = projectionMatrix * end;\n\n\t\t\t// ndc space\n\t\t\tvec3 ndcStart = clipStart.xyz / clipStart.w;\n\t\t\tvec3 ndcEnd = clipEnd.xyz / clipEnd.w;\n\n\t\t\t// direction\n\t\t\tvec2 dir = ndcEnd.xy - ndcStart.xy;\n\n\t\t\t// account for clip-space aspect ratio\n\t\t\tdir.x *= aspect;\n\t\t\tdir = normalize( dir );\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\tvec3 worldDir = normalize( end.xyz - start.xyz );\n\t\t\t\tvec3 tmpFwd = normalize( mix( start.xyz, end.xyz, 0.5 ) );\n\t\t\t\tvec3 worldUp = normalize( cross( worldDir, tmpFwd ) );\n\t\t\t\tvec3 worldFwd = cross( worldDir, worldUp );\n\t\t\t\tworldPos = position.y < 0.5 ? start: end;\n\n\t\t\t\t// height offset\n\t\t\t\tfloat hw = linewidth * 0.5;\n\t\t\t\tworldPos.xyz += position.x < 0.0 ? hw * worldUp : - hw * worldUp;\n\n\t\t\t\t// don't extend the line if we're rendering dashes because we\n\t\t\t\t// won't be rendering the endcaps\n\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t// cap extension\n\t\t\t\t\tworldPos.xyz += position.y < 0.5 ? - hw * worldDir : hw * worldDir;\n\n\t\t\t\t\t// add width to the box\n\t\t\t\t\tworldPos.xyz += worldFwd * hw;\n\n\t\t\t\t\t// endcaps\n\t\t\t\t\tif ( position.y > 1.0 || position.y < 0.0 ) {\n\n\t\t\t\t\t\tworldPos.xyz -= worldFwd * 2.0 * hw;\n\n\t\t\t\t\t}\n\n\t\t\t\t#endif\n\n\t\t\t\t// project the worldpos\n\t\t\t\tvec4 clip = projectionMatrix * worldPos;\n\n\t\t\t\t// shift the depth of the projected points so the line\n\t\t\t\t// segments overlap neatly\n\t\t\t\tvec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd;\n\t\t\t\tclip.z = clipPose.z * clip.w;\n\n\t\t\t#else\n\n\t\t\t\tvec2 offset = vec2( dir.y, - dir.x );\n\t\t\t\t// undo aspect ratio adjustment\n\t\t\t\tdir.x /= aspect;\n\t\t\t\toffset.x /= aspect;\n\n\t\t\t\t// sign flip\n\t\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\t// endcaps\n\t\t\t\tif ( position.y < 0.0 ) {\n\n\t\t\t\t\toffset += - dir;\n\n\t\t\t\t} else if ( position.y > 1.0 ) {\n\n\t\t\t\t\toffset += dir;\n\n\t\t\t\t}\n\n\t\t\t\t// adjust for linewidth\n\t\t\t\toffset *= linewidth;\n\n\t\t\t\t// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n\t\t\t\toffset /= resolution.y;\n\n\t\t\t\t// select end\n\t\t\t\tvec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;\n\n\t\t\t\t// back to clip space\n\t\t\t\toffset *= clip.w;\n\n\t\t\t\tclip.xy += offset;\n\n\t\t\t#endif\n\n\t\t\tgl_Position = clip;\n\n\t\t\tvec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation\n\n\t\t\t#include <logdepthbuf_vertex>\n\t\t\t#include <clipping_planes_vertex>\n\t\t\t#include <fog_vertex>\n\n\t\t}\n\t\t",fragmentShader:"\n\t\tuniform vec3 diffuse;\n\t\tuniform float opacity;\n\t\tuniform float linewidth;\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashOffset;\n\t\t\tuniform float dashSize;\n\t\t\tuniform float gapSize;\n\n\t\t#endif\n\n\t\tvarying float vLineDistance;\n\n\t\t#ifdef WORLD_UNITS\n\n\t\t\tvarying vec4 worldPos;\n\t\t\tvarying vec3 worldStart;\n\t\t\tvarying vec3 worldEnd;\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t#endif\n\n\t\t#else\n\n\t\t\tvarying vec2 vUv;\n\n\t\t#endif\n\n\t\t#include <common>\n\t\t#include <color_pars_fragment>\n\t\t#include <fog_pars_fragment>\n\t\t#include <logdepthbuf_pars_fragment>\n\t\t#include <clipping_planes_pars_fragment>\n\n\t\tvec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) {\n\n\t\t\tfloat mua;\n\t\t\tfloat mub;\n\n\t\t\tvec3 p13 = p1 - p3;\n\t\t\tvec3 p43 = p4 - p3;\n\n\t\t\tvec3 p21 = p2 - p1;\n\n\t\t\tfloat d1343 = dot( p13, p43 );\n\t\t\tfloat d4321 = dot( p43, p21 );\n\t\t\tfloat d1321 = dot( p13, p21 );\n\t\t\tfloat d4343 = dot( p43, p43 );\n\t\t\tfloat d2121 = dot( p21, p21 );\n\n\t\t\tfloat denom = d2121 * d4343 - d4321 * d4321;\n\n\t\t\tfloat numer = d1343 * d4321 - d1321 * d4343;\n\n\t\t\tmua = numer / denom;\n\t\t\tmua = clamp( mua, 0.0, 1.0 );\n\t\t\tmub = ( d1343 + d4321 * ( mua ) ) / d4343;\n\t\t\tmub = clamp( mub, 0.0, 1.0 );\n\n\t\t\treturn vec2( mua, mub );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#include <clipping_planes_fragment>\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tif ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n\t\t\t\tif ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n\t\t\t#endif\n\n\t\t\tfloat alpha = opacity;\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t// Find the closest points on the view ray and the line segment\n\t\t\t\tvec3 rayEnd = normalize( worldPos.xyz ) * 1e5;\n\t\t\t\tvec3 lineDir = worldEnd - worldStart;\n\t\t\t\tvec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd );\n\n\t\t\t\tvec3 p1 = worldStart + lineDir * params.x;\n\t\t\t\tvec3 p2 = rayEnd * params.y;\n\t\t\t\tvec3 delta = p1 - p2;\n\t\t\t\tfloat len = length( delta );\n\t\t\t\tfloat norm = len / linewidth;\n\n\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t\tfloat dnorm = fwidth( norm );\n\t\t\t\t\t\talpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm );\n\n\t\t\t\t\t#else\n\n\t\t\t\t\t\tif ( norm > 0.5 ) {\n\n\t\t\t\t\t\t\tdiscard;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t#endif\n\n\t\t\t\t#endif\n\n\t\t\t#else\n\n\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t// artifacts appear on some hardware if a derivative is taken within a conditional\n\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\tfloat len2 = a * a + b * b;\n\t\t\t\t\tfloat dlen = fwidth( len2 );\n\n\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\talpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t#else\n\n\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\t\tfloat len2 = a * a + b * b;\n\n\t\t\t\t\t\tif ( len2 > 1.0 ) discard;\n\n\t\t\t\t\t}\n\n\t\t\t\t#endif\n\n\t\t\t#endif\n\n\t\t\tvec4 diffuseColor = vec4( diffuse, alpha );\n\n\t\t\t#include <logdepthbuf_fragment>\n\t\t\t#include <color_fragment>\n\n\t\t\tgl_FragColor = vec4( diffuseColor.rgb, alpha );\n\n\t\t\t#include <tonemapping_fragment>\n\t\t\t#include <colorspace_fragment>\n\t\t\t#include <fog_fragment>\n\t\t\t#include <premultiplied_alpha_fragment>\n\n\t\t}\n\t\t"};class LineMaterial extends ShaderMaterial{constructor(t){super({type:"LineMaterial",uniforms:UniformsUtils.clone(ShaderLib.line.uniforms),vertexShader:ShaderLib.line.vertexShader,fragmentShader:ShaderLib.line.fragmentShader,clipping:!0}),this.isLineMaterial=!0,this.setValues(t)}get color(){return this.uniforms.diffuse.value}set color(t){this.uniforms.diffuse.value=t}get worldUnits(){return"WORLD_UNITS"in this.defines}set worldUnits(t){!0===t?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}get linewidth(){return this.uniforms.linewidth.value}set linewidth(t){this.uniforms.linewidth&&(this.uniforms.linewidth.value=t)}get dashed(){return"USE_DASH"in this.defines}set dashed(t){!0===t!==this.dashed&&(this.needsUpdate=!0),!0===t?this.defines.USE_DASH="":delete this.defines.USE_DASH}get dashScale(){return this.uniforms.dashScale.value}set dashScale(t){this.uniforms.dashScale.value=t}get dashSize(){return this.uniforms.dashSize.value}set dashSize(t){this.uniforms.dashSize.value=t}get dashOffset(){return this.uniforms.dashOffset.value}set dashOffset(t){this.uniforms.dashOffset.value=t}get gapSize(){return this.uniforms.gapSize.value}set gapSize(t){this.uniforms.gapSize.value=t}get opacity(){return this.uniforms.opacity.value}set opacity(t){this.uniforms&&(this.uniforms.opacity.value=t)}get resolution(){return this.uniforms.resolution.value}set resolution(t){this.uniforms.resolution.value.copy(t)}get alphaToCoverage(){return"USE_ALPHA_TO_COVERAGE"in this.defines}set alphaToCoverage(t){this.defines&&(!0===t!==this.alphaToCoverage&&(this.needsUpdate=!0),!0===t?this.defines.USE_ALPHA_TO_COVERAGE="":delete this.defines.USE_ALPHA_TO_COVERAGE)}}const _viewport=new Vector4,_start=new Vector3,_end=new Vector3,_start4=new Vector4,_end4=new Vector4,_ssOrigin=new Vector4,_ssOrigin3=new Vector3,_mvMatrix=new Matrix4,_line=new Line3,_closestPoint=new Vector3,_box=new Box3,_sphere=new Sphere,_clipToWorldVector=new Vector4;let _ray,_lineWidth;function getWorldSpaceHalfWidth(t,e,n){return _clipToWorldVector.set(0,0,-e,1).applyMatrix4(t.projectionMatrix),_clipToWorldVector.multiplyScalar(1/_clipToWorldVector.w),_clipToWorldVector.x=_lineWidth/n.width,_clipToWorldVector.y=_lineWidth/n.height,_clipToWorldVector.applyMatrix4(t.projectionMatrixInverse),_clipToWorldVector.multiplyScalar(1/_clipToWorldVector.w),Math.abs(Math.max(_clipToWorldVector.x,_clipToWorldVector.y))}function raycastWorldUnits(t,e){const n=t.matrixWorld,i=t.geometry,r=i.attributes.instanceStart,s=i.attributes.instanceEnd;for(let a=0,o=Math.min(i.instanceCount,r.count);a<o;a++){_line.start.fromBufferAttribute(r,a),_line.end.fromBufferAttribute(s,a),_line.applyMatrix4(n);const i=new Vector3,o=new Vector3;_ray.distanceSqToSegment(_line.start,_line.end,o,i);o.distanceTo(i)<.5*_lineWidth&&e.push({point:o,pointOnLine:i,distance:_ray.origin.distanceTo(o),object:t,face:null,faceIndex:a,uv:null,uv1:null})}}function raycastScreenSpace(t,e,n){const i=e.projectionMatrix,r=t.material.resolution,s=t.matrixWorld,a=t.geometry,o=a.attributes.instanceStart,c=a.attributes.instanceEnd,l=Math.min(a.instanceCount,o.count),u=-e.near;_ray.at(1,_ssOrigin),_ssOrigin.w=1,_ssOrigin.applyMatrix4(e.matrixWorldInverse),_ssOrigin.applyMatrix4(i),_ssOrigin.multiplyScalar(1/_ssOrigin.w),_ssOrigin.x*=r.x/2,_ssOrigin.y*=r.y/2,_ssOrigin.z=0,_ssOrigin3.copy(_ssOrigin),_mvMatrix.multiplyMatrices(e.matrixWorldInverse,s);for(let h=0,d=l;h<d;h++){_start4.fromBufferAttribute(o,h),_end4.fromBufferAttribute(c,h),_start4.w=1,_end4.w=1,_start4.applyMatrix4(_mvMatrix),_end4.applyMatrix4(_mvMatrix);if(_start4.z>u&&_end4.z>u)continue;if(_start4.z>u){const t=_start4.z-_end4.z,e=(_start4.z-u)/t;_start4.lerp(_end4,e)}else if(_end4.z>u){const t=_end4.z-_start4.z,e=(_end4.z-u)/t;_end4.lerp(_start4,e)}_start4.applyMatrix4(i),_end4.applyMatrix4(i),_start4.multiplyScalar(1/_start4.w),_end4.multiplyScalar(1/_end4.w),_start4.x*=r.x/2,_start4.y*=r.y/2,_end4.x*=r.x/2,_end4.y*=r.y/2,_line.start.copy(_start4),_line.start.z=0,_line.end.copy(_end4),_line.end.z=0;const e=_line.closestPointToPointParameter(_ssOrigin3,!0);_line.at(e,_closestPoint);const a=MathUtils.lerp(_start4.z,_end4.z,e),l=a>=-1&&a<=1,d=_ssOrigin3.distanceTo(_closestPoint)<.5*_lineWidth;if(l&&d){_line.start.fromBufferAttribute(o,h),_line.end.fromBufferAttribute(c,h),_line.start.applyMatrix4(s),_line.end.applyMatrix4(s);const e=new Vector3,i=new Vector3;_ray.distanceSqToSegment(_line.start,_line.end,i,e),n.push({point:i,pointOnLine:e,distance:_ray.origin.distanceTo(i),object:t,face:null,faceIndex:h,uv:null,uv1:null})}}}class LineSegments2 extends Mesh{constructor(t=new LineSegmentsGeometry,e=new LineMaterial({color:16777215*Math.random()})){super(t,e),this.isLineSegments2=!0,this.type="LineSegments2"}computeLineDistances(){const t=this.geometry,e=t.attributes.instanceStart,n=t.attributes.instanceEnd,i=new Float32Array(2*e.count);for(let s=0,a=0,o=e.count;s<o;s++,a+=2)_start.fromBufferAttribute(e,s),_end.fromBufferAttribute(n,s),i[a]=0===a?0:i[a-1],i[a+1]=i[a]+_start.distanceTo(_end);const r=new InstancedInterleavedBuffer(i,2,1);return t.setAttribute("instanceDistanceStart",new InterleavedBufferAttribute(r,1,0)),t.setAttribute("instanceDistanceEnd",new InterleavedBufferAttribute(r,1,1)),this}raycast(t,e){const n=this.material.worldUnits,i=t.camera;null!==i||n||console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2 while worldUnits is set to false.');const r=void 0!==t.params.Line2&&t.params.Line2.threshold||0;_ray=t.ray;const s=this.matrixWorld,a=this.geometry,o=this.material;let c,l;if(_lineWidth=o.linewidth+r,null===a.boundingSphere&&a.computeBoundingSphere(),_sphere.copy(a.boundingSphere).applyMatrix4(s),n)c=.5*_lineWidth;else{c=getWorldSpaceHalfWidth(i,Math.max(i.near,_sphere.distanceToPoint(_ray.origin)),o.resolution)}if(_sphere.radius+=c,!1!==_ray.intersectsSphere(_sphere)){if(null===a.boundingBox&&a.computeBoundingBox(),_box.copy(a.boundingBox).applyMatrix4(s),n)l=.5*_lineWidth;else{l=getWorldSpaceHalfWidth(i,Math.max(i.near,_box.distanceToPoint(_ray.origin)),o.resolution)}_box.expandByScalar(l),!1!==_ray.intersectsBox(_box)&&(n?raycastWorldUnits(this,e):raycastScreenSpace(this,i,e))}}onBeforeRender(t){const e=this.material.uniforms;e&&e.resolution&&(t.getViewport(_viewport),this.material.uniforms.resolution.value.set(_viewport.z,_viewport.w))}}class LineGeometry extends LineSegmentsGeometry{constructor(){super(),this.isLineGeometry=!0,this.type="LineGeometry"}setPositions(t){const e=t.length-3,n=new Float32Array(2*e);for(let i=0;i<e;i+=3)n[2*i]=t[i],n[2*i+1]=t[i+1],n[2*i+2]=t[i+2],n[2*i+3]=t[i+3],n[2*i+4]=t[i+4],n[2*i+5]=t[i+5];return super.setPositions(n),this}setColors(t){const e=t.length-3,n=new Float32Array(2*e);for(let i=0;i<e;i+=3)n[2*i]=t[i],n[2*i+1]=t[i+1],n[2*i+2]=t[i+2],n[2*i+3]=t[i+3],n[2*i+4]=t[i+4],n[2*i+5]=t[i+5];return super.setColors(n),this}fromLine(t){const e=t.geometry;return this.setPositions(e.attributes.position.array),this}}class Line2 extends LineSegments2{constructor(t=new LineGeometry,e=new LineMaterial({color:16777215*Math.random()})){super(t,e),this.isLine2=!0,this.type="Line2"}}class Pass{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const _camera=new OrthographicCamera(-1,1,1,-1,0,1);class FullscreenTriangleGeometry extends BufferGeometry{constructor(){super(),this.setAttribute("position",new Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new Float32BufferAttribute([0,2,0,0,2,0],2))}}const _geometry=new FullscreenTriangleGeometry;class FullScreenQuad{constructor(t){this._mesh=new Mesh(_geometry,t)}dispose(){this._mesh.geometry.dispose()}render(t){t.render(this._mesh,_camera)}get material(){return this._mesh.material}set material(t){this._mesh.material=t}}const CopyShader={name:"CopyShader",uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = opacity * texel;\n\n\n\t\t}"};class ShaderPass extends Pass{constructor(t,e){super(),this.textureID=void 0!==e?e:"tDiffuse",t instanceof ShaderMaterial?(this.uniforms=t.uniforms,this.material=t):t&&(this.uniforms=UniformsUtils.clone(t.uniforms),this.material=new ShaderMaterial({name:void 0!==t.name?t.name:"unspecified",defines:Object.assign({},t.defines),uniforms:this.uniforms,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader})),this.fsQuad=new FullScreenQuad(this.material)}render(t,e,n){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=n.texture),this.fsQuad.material=this.material,this.renderToScreen?(t.setRenderTarget(null),this.fsQuad.render(t)):(t.setRenderTarget(e),this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),this.fsQuad.render(t))}dispose(){this.material.dispose(),this.fsQuad.dispose()}}class MaskPass extends Pass{constructor(t,e){super(),this.scene=t,this.camera=e,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(t,e,n){const i=t.getContext(),r=t.state;let s,a;r.buffers.color.setMask(!1),r.buffers.depth.setMask(!1),r.buffers.color.setLocked(!0),r.buffers.depth.setLocked(!0),this.inverse?(s=0,a=1):(s=1,a=0),r.buffers.stencil.setTest(!0),r.buffers.stencil.setOp(i.REPLACE,i.REPLACE,i.REPLACE),r.buffers.stencil.setFunc(i.ALWAYS,s,4294967295),r.buffers.stencil.setClear(a),r.buffers.stencil.setLocked(!0),t.setRenderTarget(n),this.clear&&t.clear(),t.render(this.scene,this.camera),t.setRenderTarget(e),this.clear&&t.clear(),t.render(this.scene,this.camera),r.buffers.color.setLocked(!1),r.buffers.depth.setLocked(!1),r.buffers.color.setMask(!0),r.buffers.depth.setMask(!0),r.buffers.stencil.setLocked(!1),r.buffers.stencil.setFunc(i.EQUAL,1,4294967295),r.buffers.stencil.setOp(i.KEEP,i.KEEP,i.KEEP),r.buffers.stencil.setLocked(!0)}}class ClearMaskPass extends Pass{constructor(){super(),this.needsSwap=!1}render(t){t.state.buffers.stencil.setLocked(!1),t.state.buffers.stencil.setTest(!1)}}class EffectComposer{constructor(t,e){if(this.renderer=t,this._pixelRatio=t.getPixelRatio(),void 0===e){const n=t.getSize(new Vector2);this._width=n.width,this._height=n.height,(e=new WebGLRenderTarget(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:HalfFloatType})).texture.name="EffectComposer.rt1"}else this._width=e.width,this._height=e.height;this.renderTarget1=e,this.renderTarget2=e.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],this.copyPass=new ShaderPass(CopyShader),this.copyPass.material.blending=NoBlending,this.clock=new Clock}swapBuffers(){const t=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=t}addPass(t){this.passes.push(t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(t,e){this.passes.splice(e,0,t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(t){const e=this.passes.indexOf(t);-1!==e&&this.passes.splice(e,1)}isLastEnabledPass(t){for(let e=t+1;e<this.passes.length;e++)if(this.passes[e].enabled)return!1;return!0}render(t){void 0===t&&(t=this.clock.getDelta());const e=this.renderer.getRenderTarget();let n=!1;for(let i=0,r=this.passes.length;i<r;i++){const e=this.passes[i];if(!1!==e.enabled){if(e.renderToScreen=this.renderToScreen&&this.isLastEnabledPass(i),e.render(this.renderer,this.writeBuffer,this.readBuffer,t,n),e.needsSwap){if(n){const e=this.renderer.getContext(),n=this.renderer.state.buffers.stencil;n.setFunc(e.NOTEQUAL,1,4294967295),this.copyPass.render(this.renderer,this.writeBuffer,this.readBuffer,t),n.setFunc(e.EQUAL,1,4294967295)}this.swapBuffers()}void 0!==MaskPass&&(e instanceof MaskPass?n=!0:e instanceof ClearMaskPass&&(n=!1))}}this.renderer.setRenderTarget(e)}reset(t){if(void 0===t){const e=this.renderer.getSize(new Vector2);this._pixelRatio=this.renderer.getPixelRatio(),this._width=e.width,this._height=e.height,(t=this.renderTarget1.clone()).setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.renderTarget1=t,this.renderTarget2=t.clone(),this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2}setSize(t,e){this._width=t,this._height=e;const n=this._width*this._pixelRatio,i=this._height*this._pixelRatio;this.renderTarget1.setSize(n,i),this.renderTarget2.setSize(n,i);for(let r=0;r<this.passes.length;r++)this.passes[r].setSize(n,i)}setPixelRatio(t){this._pixelRatio=t,this.setSize(this._width,this._height)}dispose(){this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.copyPass.dispose()}}class RenderPass extends Pass{constructor(t,e,n=null,i=null,r=null){super(),this.scene=t,this.camera=e,this.overrideMaterial=n,this.clearColor=i,this.clearAlpha=r,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new Color}render(t,e,n){const i=t.autoClear;let r,s;t.autoClear=!1,null!==this.overrideMaterial&&(s=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),null!==this.clearColor&&(t.getClearColor(this._oldClearColor),t.setClearColor(this.clearColor,t.getClearAlpha())),null!==this.clearAlpha&&(r=t.getClearAlpha(),t.setClearAlpha(this.clearAlpha)),1==this.clearDepth&&t.clearDepth(),t.setRenderTarget(this.renderToScreen?null:n),!0===this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),t.render(this.scene,this.camera),null!==this.clearColor&&t.setClearColor(this._oldClearColor),null!==this.clearAlpha&&t.setClearAlpha(r),null!==this.overrideMaterial&&(this.scene.overrideMaterial=s),t.autoClear=i}}class CSS2DObject extends Object3D{constructor(t=document.createElement("div")){super(),this.isCSS2DObject=!0,this.element=t,this.element.style.position="absolute",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.center=new Vector2(.5,.5),this.addEventListener("removed",function(){this.traverse(function(t){t.element instanceof Element&&null!==t.element.parentNode&&t.element.parentNode.removeChild(t.element)})})}copy(t,e){return super.copy(t,e),this.element=t.element.cloneNode(!0),this.center=t.center,this}}const _vector=new Vector3,_viewMatrix=new Matrix4,_viewProjectionMatrix=new Matrix4,_a=new Vector3,_b=new Vector3;class CSS2DRenderer{constructor(t={}){const e=this;let n,i,r,s;const a={objects:new WeakMap},o=void 0!==t.element?t.element:document.createElement("div");function c(t){t.isCSS2DObject&&(t.element.style.display="none");for(let e=0,n=t.children.length;e<n;e++)c(t.children[e])}function l(t,n,i){if(!1!==t.visible){if(t.isCSS2DObject){_vector.setFromMatrixPosition(t.matrixWorld),_vector.applyMatrix4(_viewProjectionMatrix);const c=_vector.z>=-1&&_vector.z<=1&&!0===t.layers.test(i.layers),l=t.element;l.style.display=!0===c?"":"none",!0===c&&(t.onBeforeRender(e,n,i),l.style.transform="translate("+-100*t.center.x+"%,"+-100*t.center.y+"%)translate("+(_vector.x*r+r)+"px,"+(-_vector.y*s+s)+"px)",l.parentNode!==o&&o.appendChild(l),t.onAfterRender(e,n,i));const h={distanceToCameraSquared:u(i,t)};a.objects.set(t,h)}for(let e=0,r=t.children.length;e<r;e++)l(t.children[e],n,i)}else c(t)}function u(t,e){return _a.setFromMatrixPosition(t.matrixWorld),_b.setFromMatrixPosition(e.matrixWorld),_a.distanceToSquared(_b)}o.style.overflow="hidden",this.domElement=o,this.getSize=function(){return{width:n,height:i}},this.render=function(t,e){!0===t.matrixWorldAutoUpdate&&t.updateMatrixWorld(),null===e.parent&&!0===e.matrixWorldAutoUpdate&&e.updateMatrixWorld(),_viewMatrix.copy(e.matrixWorldInverse),_viewProjectionMatrix.multiplyMatrices(e.projectionMatrix,_viewMatrix),l(t,t,e),function(t){const e=function(t){const e=[];return t.traverseVisible(function(t){t.isCSS2DObject&&e.push(t)}),e}(t).sort(function(t,e){if(t.renderOrder!==e.renderOrder)return e.renderOrder-t.renderOrder;return a.objects.get(t).distanceToCameraSquared-a.objects.get(e).distanceToCameraSquared}),n=e.length;for(let i=0,r=e.length;i<r;i++)e[i].element.style.zIndex=n-i}(t)},this.setSize=function(t,e){n=t,i=e,r=n/2,s=i/2,o.style.width=t+"px",o.style.height=e+"px"}}}var Stats=function(){var t=0,e=document.createElement("div");function n(t){return e.appendChild(t.dom),t}function i(n){for(var i=0;i<e.children.length;i++)e.children[i].style.display=i===n?"block":"none";t=n}e.style.cssText="position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000",e.addEventListener("click",function(n){n.preventDefault(),i(++t%e.children.length)},!1);var r=(performance||Date).now(),s=r,a=0,o=n(new Stats.Panel("FPS","#0ff","#002")),c=n(new Stats.Panel("MS","#0f0","#020"));if(self.performance&&self.performance.memory)var l=n(new Stats.Panel("MB","#f08","#201"));return i(0),{REVISION:16,dom:e,addPanel:n,showPanel:i,begin:function(){r=(performance||Date).now()},end:function(){a++;var t=(performance||Date).now();if(c.update(t-r,200),t>=s+1e3&&(o.update(1e3*a/(t-s),100),s=t,a=0,l)){var e=performance.memory;l.update(e.usedJSHeapSize/1048576,e.jsHeapSizeLimit/1048576)}return t},update:function(){r=this.end()},domElement:e,setMode:i}};Stats.Panel=function(t,e,n){var i=1/0,r=0,s=Math.round,a=s(window.devicePixelRatio||1),o=80*a,c=48*a,l=3*a,u=2*a,h=3*a,d=15*a,p=74*a,f=30*a,m=document.createElement("canvas");m.width=o,m.height=c,m.style.cssText="width:80px;height:48px";var g=m.getContext("2d");return g.font="bold "+9*a+"px Helvetica,Arial,sans-serif",g.textBaseline="top",g.fillStyle=n,g.fillRect(0,0,o,c),g.fillStyle=e,g.fillText(t,l,u),g.fillRect(h,d,p,f),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(h,d,p,f),{dom:m,update:function(c,A){i=Math.min(i,c),r=Math.max(r,c),g.fillStyle=n,g.globalAlpha=1,g.fillRect(0,0,o,d),g.fillStyle=e,g.fillText(s(c)+" "+t+" ("+s(i)+"-"+s(r)+")",l,u),g.drawImage(m,h+a,d,p-a,f,h,d,p-a,f),g.fillRect(h+p-a,d,a,f),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(h+p-a,d,a,s((1-c/A)*f))}}};const E9=N$C;function N$C(t,e){const n=E$C();return(N$C=function(t,e){return n[t-=283]})(t,e)}!function(t,e){const n=N$C,i=t();for(;;)try{if(903466===parseInt(n(485))/1*(parseInt(n(308))/2)+parseInt(n(349))/3+-parseInt(n(339))/4+-parseInt(n(412))/5+parseInt(n(430))/6+parseInt(n(482))/7+parseInt(n(435))/8*(-parseInt(n(408))/9))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$C);let d$n=class{constructor(){__publicField(this,_v),__publicField(this,_u),__publicField(this,_t2),__publicField(this,"up"),__publicField(this,_s),__publicField(this,_r),__publicField(this,_q2);const t=E9,e={qhPPF:t(438)}[t(347)][t(357)]("|");let n=0;for(;;){switch(e[n++]){case"0":this[t(346)]=1;continue;case"1":this[t(497)]=new Vector3;continue;case"2":this[t(323)]=!1;continue;case"3":this[t(360)]=0;continue;case"4":this.up=new Vector3;continue;case"5":this[t(359)]=new Vector3;continue;case"6":this[t(321)]=new Vector3;continue}break}}[(_v=E9(359),_u=E9(497),_t2=E9(321),_s=E9(360),_r=E9(346),_q2=E9(323),E9(462))](t,e,n){const i=E9,r={hlhGq:i(371),dxFMh:function(t,e){return t+e},wyyRA:function(t,e){return t*e},XfxKx:function(t,e){return t-e},PsomH:function(t,e){return t*e}},s=r[i(289)][i(357)]("|");let a=0;for(;;){switch(s[a++]){case"0":this[i(497)][i(325)](t[i(497)],e[i(497)],n);continue;case"1":this[i(321)][i(325)](t[i(321)],e[i(321)],n);continue;case"2":this[i(359)][i(325)](t[i(359)],e[i(359)],n);continue;case"3":this.up[i(325)](t.up,e.up,n);continue;case"4":this[i(360)]=r[i(503)](r[i(286)](r[i(340)](e[i(360)],t[i(360)]),n),t[i(360)]);continue;case"5":this[i(346)]=r[i(503)](r[i(287)](r[i(340)](e[i(346)],t[i(346)]),n),t[i(346)]);continue}break}}[E9(351)](t){const e=E9,n={mEOKL:e(410)}[e(363)][e(357)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[e(497)][e(351)](t[e(497)]);continue;case"1":this[e(346)]=t[e(346)];continue;case"2":this.up[e(351)](t.up);continue;case"3":this[e(321)][e(351)](t[e(321)]);continue;case"4":this[e(360)]=t[e(360)];continue;case"5":this[e(359)][e(351)](t[e(359)]);continue}break}}};class PathGeometry extends BufferGeometry{constructor(t=3e3,e=!1){const n=E9;super(),{UFXcm:function(t,e){return t(e)}}[n(424)](isNaN,t)?this[n(495)](t[n(379)],t[n(437)],t[n(302)],e):this[n(386)](t,e)}[E9(386)](t,e){const n=E9,i={RHQwQ:n(496),qWBuH:n(454),ORoXi:function(t,e){return t*e},HrtIX:n(381),KpPhN:n(439),qFVFm:function(t,e){return t*e},MKOhA:function(t,e){return t>e},zmlYQ:function(t,e){return t*e},VsAgj:function(t,e){return t*e}},r=i[n(294)][n(357)]("|");let s=0;for(;;){switch(r[s++]){case"0":this[n(444)][n(414)]=0;continue;case"1":this[n(378)](i[n(474)],new BufferAttribute(new Float32Array(i[n(480)](t,3)),3)[n(413)](DynamicDrawUsage));continue;case"2":e&&this[n(378)](i[n(484)],new BufferAttribute(new Float32Array(i[n(480)](t,2)),2)[n(413)](DynamicDrawUsage));continue;case"3":this[n(378)](i[n(470)],new BufferAttribute(new Float32Array(i[n(480)](t,3)),3)[n(413)](DynamicDrawUsage));continue;case"4":this[n(444)][n(422)]=0;continue;case"5":this[n(378)]("uv",new BufferAttribute(new Float32Array(i[n(333)](t,2)),2)[n(413)](DynamicDrawUsage));continue;case"6":this[n(387)](i[n(376)](t,65536)?new Uint32BufferAttribute(i[n(466)](t,3),1):new Uint16BufferAttribute(i[n(384)](t,3),1));continue}break}}[E9(495)](t,e={},n,i){const r=E9,s={zsUVn:function(t,e,n,i){return t(e,n,i)},ZgVfI:function(t,e){return t!==e},QDVJF:r(332),rJyvq:function(t,e){return t||e},DDwqn:r(439),epUOJ:r(454),Ienhl:function(t,e){return t>e},hSbGr:function(t,e){return t/e},aNWrJ:r(381)},a=s[r(449)](J$f,t,e,i);if(a&&s[r(481)](a[r(422)],0)){const t=s[r(382)][r(357)]("|");let e=0;for(;;){switch(t[e++]){case"0":this[r(378)]("uv",new BufferAttribute(new Float32Array(a.uv),2)[r(413)](s[r(409)](n,StaticDrawUsage)));continue;case"1":this[r(378)](s[r(372)],new BufferAttribute(new Float32Array(a[r(439)]),3)[r(413)](s[r(409)](n,StaticDrawUsage)));continue;case"2":this[r(290)]=a[r(290)];continue;case"3":this[r(378)](s[r(368)],new BufferAttribute(new Float32Array(a[r(454)]),3)[r(413)](s[r(409)](n,StaticDrawUsage)));continue;case"4":this[r(387)](s[r(315)](s[r(417)](a[r(439)][r(328)],3),65536)?new Uint32BufferAttribute(a[r(464)],1):new Uint16BufferAttribute(a[r(464)],1));continue;case"5":i&&this[r(378)](s[r(502)],new BufferAttribute(new Float32Array(a[r(381)]),2)[r(413)](s[r(409)](n,StaticDrawUsage)));continue}break}}else this[r(386)](2,i)}[E9(499)](t,e={}){const n=E9,i={GwMmI:n(381),jJUcS:function(t,e,n,i){return t(e,n,i)}},r=!!this[n(330)](i[n(345)]),s=i[n(418)](J$f,t,e,r);s?(this[n(290)]=s[n(290)],this[n(288)](s[n(439)],s[n(454)],s.uv,r?s[n(381)]:null,s[n(464)]),this[n(444)][n(422)]=s[n(422)]):this[n(444)][n(422)]=0}[E9(394)](t,e){const n=E9,i={aYxgW:function(t,e){return t<e},WLuKm:function(t,e){return t*e}};let r=this[n(330)](t);for(;i[n(331)](r[n(500)][n(328)],e);){const e=r[n(500)][n(328)],s=new BufferAttribute(new Float32Array(i[n(334)](e,2)),r[n(403)],r[n(488)]);s[n(350)]=r[n(350)],s[n(302)]=r[n(302)],this[n(378)](t,s),r=s}}[E9(433)](t){const e=E9,n={oNCkB:function(t,e){return t<e},NAKnA:function(t,e){return t>e},lxSYa:function(t,e){return t*e}};let i=this[e(377)]();for(;n[e(344)](i[e(500)][e(328)],t);){const t=i[e(500)][e(328)],r=new BufferAttribute(n[e(400)](n[e(312)](t,2),65535)?new Uint32Array(n[e(312)](t,2)):new Uint16Array(n[e(312)](t,2)),1);r[e(350)]=i[e(350)],r[e(302)]=i[e(302)],this[e(387)](r),i=r}}[E9(288)](t,e,n,i,r){const s=E9,a={KQPLv:s(439),szYGs:s(454),NRuru:s(381)};this[s(394)](a[s(458)],t[s(328)]);const o=this[s(330)](a[s(458)]);o[s(500)][s(405)](t,0),o[s(370)](0,t[s(328)]),o[s(391)]=!0,this[s(394)](a[s(365)],e[s(328)]);const c=this[s(330)](a[s(365)]);c[s(500)][s(405)](e,0),c[s(370)](0,e[s(328)]),c[s(391)]=!0,this[s(394)]("uv",n[s(328)]);const l=this[s(330)]("uv");if(l[s(500)][s(405)](n,0),l[s(370)](0,n[s(328)]),l[s(391)]=!0,i){this[s(394)](a[s(301)],i[s(328)]);const t=this[s(330)](a[s(301)]);t[s(500)][s(405)](i,0),t[s(370)](0,i[s(328)]),t[s(391)]=!0}this[s(433)](r[s(328)]);const u=this[s(377)]();u[s(405)](r,0),u[s(370)](0,r[s(328)]),u[s(391)]=!0}}function J$f(t,e,n=!1){const i=E9,r={RLPzm:function(t,e){return t===e},MxLRx:function(t,e){return t/e},JWwyY:function(t,e){return t/e},qUfmX:function(t,e){return t!==e},JSpdp:i(324),vhwEH:function(t,e){return t*e},VldLP:i(321),XwCxT:function(t,e){return t-e},iRNyT:function(t,e){return t>e},kiWaI:function(t,e){return t*e},eIcKK:function(t,e){return t*e},HZrUq:function(t,e){return t>e},babdh:function(t,e){return t-e},ZLZDN:function(t,e){return t-e},HhvTO:function(t,e){return t-e},BLzwr:function(t,e){return t-e},SQVij:function(t,e){return t-e},CERkd:function(t,e){return t-e},vQFXw:function(t,e){return t-e},sStIu:function(t,e){return t-e},wHYtS:function(t,e){return t-e},OGHAu:function(t,e){return t-e},givDJ:function(t,e){return t-e},pOPJy:function(t,e){return t-e},CbdjF:function(t,e){return t-e},tNPkM:function(t,e){return t-e},pcVTn:function(t,e){return t-e},AnSRX:function(t,e){return t-e},RnxDj:function(t,e){return t-e},JKdRM:function(t,e){return t+e},TMDQJ:function(t,e){return t-e},wrOXX:function(t,e){return t-e},uOSEA:function(t,e){return t+e},VjNHU:i(415),jFEdr:function(t,e){return t-e},eVizx:function(t,e){return t-e},lssdp:function(t,e){return t!==e},DhrKY:function(t,e){return t*e},KYjIJ:function(t,e){return t*e},DpEsK:function(t,e){return t*e},hhapl:i(283),XNYYP:function(t,e){return t!==e},CiWSh:function(t,e){return t!==e},ZFmCG:function(t,e){return t+e},yGZXt:function(t,e){return t!==e},LbHFh:function(t,e){return t!==e},dyInF:function(t,e){return t+e},GaZEh:function(t,e){return t/e},itzZM:function(t,e){return t-e},cchIB:function(t,e){return t!==e},mSywZ:function(t,e){return t!==e},LWKBJ:function(t,e){return t*e},TfWMI:function(t,e){return t/e},PzsZI:function(t,e){return t/e},VfJIM:function(t,e){return t<e},OnHsm:function(t,e){return t-e},AgvQn:function(t,e){return t/e},ikiBq:function(t,e){return t-e},xGTOx:function(t,e){return t-e},uRBgq:function(t,e){return t(e)},RReGy:function(t,e){return t(e)},Enzpf:function(t,e){return t(e)}},s=e[i(459)]||.1,a=r[i(442)](e[i(317)],void 0)?e[i(317)]:1,o=!r[i(307)](e[i(445)],void 0)||e[i(445)],c=r[i(285)](e[i(401)],void 0)?e[i(401)]:r[i(487)],l=r[i(429)](s,2),u=r[i(297)](c,r[i(487)])?r[i(463)](s,2):s,h=t[i(478)](),d=r[i(320)](a,h);if(r[i(354)](h,0))return null;const p=r[i(432)](l,u),f=r[i(291)](l,h);let m=0;const g=[],A=[],y=[],v=[],S=[];let x=0;const b=new Vector3,T=new Vector3,I=new Vector3,M=new Vector3,E=new Vector3,w=new Vector3;function R(t){const e=i,s=r[e(354)](g[e(328)],0),a=t[e(323)]&&!s,o=r[e(429)](t[e(360)],u),d=r[e(463)](t[e(360)],h),R=t[e(497)],C=t.up,k=t[e(321)];if(r[e(307)](c,r[e(318)])?b[e(351)](k)[e(423)](r[e(319)](l,t[e(346)])):b[e(405)](0,0,0),r[e(307)](c,r[e(395)])?T[e(351)](k)[e(423)](r[e(319)](-l,t[e(346)])):T[e(405)](0,0,0),b[e(450)](t[e(359)]),T[e(450)](t[e(359)]),a){I[e(402)](g,r[e(392)](g[e(328)],6))[e(427)](T),M[e(402)](g,r[e(392)](g[e(328)],3))[e(427)](b);const t=I[e(328)](),i=M[e(328)](),s=r[e(392)](t,i);let a,c;r[e(436)](s,0)?(a=I,c=T):(a=M,c=b),E[e(351)](a)[e(479)](Math[e(498)](s))[e(450)](c);let l=w[e(351)](c)[e(427)](E)[e(467)]()[e(491)](R),u=w[e(351)](c)[e(427)](E)[e(328)](),h=r[e(342)](r[e(303)](l,u),2);w[e(351)](R)[e(479)](h)[e(450)](E),r[e(390)](s,0)?(g[e(397)](E.x,E.y,E.z,b.x,b.y,b.z,T.x,T.y,T.z,b.x,b.y,b.z,w.x,w.y,w.z,b.x,b.y,b.z),x+=6,S[e(397)](r[e(295)](x,6),r[e(426)](x,8),r[e(314)](x,7),r[e(364)](x,6),r[e(338)](x,7),r[e(322)](x,5),r[e(426)](x,4),r[e(426)](x,6),r[e(380)](x,5),r[e(385)](x,2),r[e(313)](x,4),r[e(494)](x,1)),m+=12):(g[e(397)](T.x,T.y,T.z,E.x,E.y,E.z,T.x,T.y,T.z,b.x,b.y,b.z,T.x,T.y,T.z,w.x,w.y,w.z),x+=6,S[e(397)](r[e(338)](x,6),r[e(338)](x,8),r[e(440)](x,7),r[e(440)](x,6),r[e(398)](x,7),r[e(389)](x,5),r[e(426)](x,6),r[e(385)](x,5),r[e(389)](x,3),r[e(396)](x,2),r[e(448)](x,3),r[e(314)](x,1)),m+=12),A[e(397)](C.x,C.y,C.z,C.x,C.y,C.z,C.x,C.y,C.z,C.x,C.y,C.z,C.x,C.y,C.z,C.x,C.y,C.z),y[e(397)](r[e(300)](o,p),0,r[e(431)](o,p),1,o,0,o,1,r[e(335)](o,p),0,r[e(335)](o,p),1),n&&v[e(397)](r[e(375)](d,f),0,r[e(309)](d,f),1,d,0,d,1,r[e(335)](d,f),0,r[e(486)](d,f),1)}else{const t=r[e(425)][e(357)]("|");let i=0;for(;;){switch(t[i++]){case"0":!s&&(S[e(397)](r[e(477)](x,2),r[e(326)](x,4),r[e(322)](x,3),r[e(322)](x,2),r[e(375)](x,3),r[e(309)](x,1)),m+=6);continue;case"1":A[e(397)](C.x,C.y,C.z,C.x,C.y,C.z);continue;case"2":x+=2;continue;case"3":y[e(397)](o,0,o,1);continue;case"4":g[e(397)](T.x,T.y,T.z,b.x,b.y,b.z);continue;case"5":n&&v[e(397)](d,0,d,1);continue}break}}}const C=new Vector3;let k;if(r[i(390)](d,0))for(let _=0;r[i(441)](_,t[i(422)]);_++){const e=t[i(500)][_];if(r[i(436)](e[i(360)],d)){const n=t[i(500)][r[i(310)](_,1)];k=new d$n;const s=r[i(336)](r[i(492)](d,n[i(360)]),r[i(452)](e[i(360)],n[i(360)]));k[i(462)](n,e,s),r[i(353)](R,k);break}r[i(451)](R,e)}else k=t[i(500)][0];return o&&(k=k||t[i(500)][r[i(313)](t[i(422)],1)],r[i(428)](function(t){const e=i,a=t[e(497)],o=t.up,d=t[e(321)],p=r[e(429)](t[e(360)],u),f=r[e(463)](t[e(360)],h);r[e(489)](c,r[e(318)])?b[e(351)](d)[e(423)](r[e(420)](l,2)):b[e(405)](0,0,0),r[e(489)](c,r[e(395)])?T[e(351)](d)[e(423)](r[e(304)](-l,2)):T[e(405)](0,0,0),C[e(351)](a)[e(479)](r[e(373)](l,3)),b[e(450)](t[e(359)]),T[e(450)](t[e(359)]),C[e(450)](t[e(359)]),g[e(397)](T.x,T.y,T.z,b.x,b.y,b.z,C.x,C.y,C.z),A[e(397)](o.x,o.y,o.z,o.x,o.y,o.z,o.x,o.y,o.z),y[e(397)](p,r[e(489)](c,r[e(487)])?r[e(447)](c,r[e(395)])?-2:0:-.5,p,r[e(307)](c,r[e(487)])?r[e(356)](c,r[e(318)])?2:0:1.5,r[e(327)](p,1.5),r[e(489)](c,r[e(487)])?0:.5),n&&v[e(397)](f,r[e(489)](c,r[e(487)])?r[e(307)](c,r[e(395)])?-2:0:-.5,f,r[e(297)](c,r[e(487)])?r[e(311)](c,r[e(318)])?2:0:1.5,r[e(461)](f,r[e(434)](r[e(303)](1.5,s),h)),r[e(311)](c,r[e(487)])?0:.5),x+=3,S[e(397)](r[e(300)](x,1),r[e(460)](x,3),r[e(364)](x,2)),m+=3},k)),{totalDistance:h,position:g,normal:A,uv:y,uv2:v,indices:S,count:m}}const x$c=new Vector3,a$b=new Vector3,n$a=new Vector3,C$a=new Matrix4,o$7=new QuadraticBezierCurve3;function b$a(t,e,n,i,r,s){const a=E9,o={YRRrC:function(t,e){return t*e},TtLfc:function(t,e){return t/e},dcPIP:function(t,e){return t/e}},c=x$c[a(406)](e,t),l=a$b[a(406)](n,e),u=c[a(328)](),h=l[a(328)]();c[a(467)](),l[a(467)]();const d=Math[a(456)](o[a(469)](r?o[a(293)](u,2):u,.999999),i);s.v0[a(351)](e)[a(427)](c[a(423)](d)),s.v1[a(351)](e);const p=Math[a(456)](o[a(469)](o[a(399)](h,2),.999999),i);return s.v2[a(351)](e)[a(450)](l[a(423)](p)),s}function E$C(){const t=["uOSEA","hhapl","normalized","lssdp","_corner","dot","ikiBq","DjWXx","OGHAu","_initByData","3|1|5|2|0|4|6","dir","abs","update","array","dYMhZ","aNWrJ","dxFMh","both","WQmly","mSywZ","wyyRA","PsomH","_updateAttributes","hlhGq","totalDistance","PzsZI","_getByIndex","TtLfc","RHQwQ","babdh","dynlY","yGZXt","OgxaD","_sharpCorner","AnSRX","NRuru","usage","eIcKK","KYjIJ","fMwfb","hYRyi","qUfmX","2pNRyKW","wrOXX","OnHsm","LbHFh","lxSYa","wHYtS","HhvTO","Ienhl","IqqKk","progress","JSpdp","vhwEH","LWKBJ","right","CERkd","sharp","left","lerpVectors","eVizx","ZFmCG","length","BYBLz","getAttribute","aYxgW","2|1|3|0|5|4","qFVFm","WLuKm","JKdRM","AgvQn","mIDFi","SQVij","2558620iMzElT","XfxKx","zOgTw","kiWaI","addVectors","oNCkB","GwMmI","widthScale","qhPPF","CYwyZ","4684896iMIPVU","name","copy","lPfGR","uRBgq","RLPzm","acos","CiWSh","split","gCFkx","pos","dist","ncnjJ","jSSHE","mEOKL","BLzwr","szYGs","warn","vqBuA","epUOJ","sqrt","addUpdateRange","2|0|3|1|4|5","DDwqn","DpEsK","_start","TMDQJ","MKOhA","getIndex","setAttribute","pathPointList","vQFXw","uv2","QDVJF","bnMCH","VsAgj","sStIu","_initByMaxVertex","setIndex","zeVqh","CbdjF","HZrUq","needsUpdate","XwCxT","equals","_resizeAttribute","VldLP","tNPkM","push","pOPJy","dcPIP","NAKnA","side","fromArray","itemSize","applyMatrix4","set","subVectors","_end","35598942OLiTDp","rJyvq","5|0|2|3|4|1","cESGR","1338100GLpEKG","setUsage","start","4|1|3|5|2|0","raNcR","hSbGr","jJUcS","max","DhrKY","IUVtj","count","multiplyScalar","UFXcm","VjNHU","ZLZDN","sub","Enzpf","MxLRx","4849644xZpiVM","RnxDj","TfWMI","_resizeIndex","GaZEh","8ooruro","iRNyT","options","5|1|6|4|3|0|2","position","givDJ","VfJIM","cchIB","makeRotationAxis","drawRange","arrow","MAX_VALUE","XNYYP","pcVTn","zsUVn","add","RReGy","xGTOx","PathPointList: points length less than 2.","normal","crossVectors","min","BATFX","KQPLv","width","itzZM","dyInF","lerpPathPoints","JWwyY","indices","EPSILON","zmlYQ","normalize","ptmhy","YRRrC","KpPhN","CxiiR","dHSSv","getPoints","qWBuH","Iiweh","slice","jFEdr","distance","setLength","ORoXi","ZgVfI","11212733eVUTDF","zKmlR","HrtIX","1794454trOgds"];return(E$C=function(){return t})()}class PathPointList{constructor(){__publicField(this,_x2),__publicField(this,_w);const t=E9;this[t(500)]=[],this[t(422)]=0}[(_x2=E9(500),_w=E9(422),E9(405))](t,e=.1,n=10,i=null,r=!1){const s=E9,a={BATFX:function(t,e){return t<e},cESGR:s(453),mIDFi:function(t,e){return t-e},IUVtj:function(t,e){return t===e},fMwfb:function(t,e){return t+e},dYMhZ:function(t,e){return t===e},dynlY:function(t,e){return t-e},vqBuA:function(t,e){return t+e}};if(t=t[s(476)](0),a[s(457)](t[s(328)],2))return console[s(366)](a[s(411)]),void(this[s(422)]=0);r&&!t[0][s(393)](t[a[s(337)](t[s(328)],1)])&&t[s(397)]((new Vector3)[s(351)](t[0]));for(let o=0,c=t[s(328)];a[s(457)](o,c);o++)if(a[s(421)](o,0))this[s(374)](t[o],t[a[s(305)](o,1)],i);else if(a[s(501)](o,a[s(337)](c,1)))if(r){this[s(490)](t[o],t[1],e,n,i);const r=this[s(500)][0][s(360)];this[s(500)][0][s(351)](this[s(500)][a[s(296)](this[s(422)],1)]),this[s(500)][0][s(360)]=r}else this[s(407)](t[o]);else this[s(490)](t[o],t[a[s(367)](o,1)],e,n,i)}[E9(478)](){const t=E9,e={IqqKk:function(t,e){return t>e},OgxaD:function(t,e){return t-e}};return e[t(316)](this[t(422)],0)?this[t(500)][e[t(298)](this[t(422)],1)][t(360)]:0}[E9(292)](t){const e=E9;return!this[e(500)][t]&&(this[e(500)][t]=new d$n),this[e(500)][t]}[E9(374)](t,e,n){const i=E9,r={Iiweh:function(t,e){return t<e},jSSHE:function(t,e){return t<e}};this[i(422)]=0;const s=this[i(292)](this[i(422)]);if(s[i(359)][i(351)](t),s[i(497)][i(406)](e,t),n)s.up[i(351)](n);else{let t=Number[i(446)];const e=Math[i(498)](s[i(497)].x),n=Math[i(498)](s[i(497)].y),a=Math[i(498)](s[i(497)].z);r[i(475)](e,t)&&(t=e,s.up[i(405)](1,0,0)),r[i(362)](n,t)&&(t=n,s.up[i(405)](0,1,0)),r[i(362)](a,t)&&s.up[i(405)](0,0,1)}s[i(321)][i(455)](s[i(497)],s.up)[i(467)](),s.up[i(455)](s[i(321)],s[i(497)])[i(467)](),s[i(360)]=0,s[i(346)]=1,s[i(323)]=!1,s[i(497)][i(467)](),this[i(422)]++}[E9(407)](t){const e=E9,n={lPfGR:function(t,e){return t-e},CYwyZ:function(t,e){return t>e},gCFkx:function(t,e){return t+e}},i=this[e(500)][n[e(352)](this[e(422)],1)],r=this[e(292)](this[e(422)]);r[e(359)][e(351)](t),r[e(497)][e(406)](t,i[e(359)]);const s=r[e(497)][e(328)]();r[e(497)][e(467)](),r.up[e(351)](i.up);const a=x$c[e(455)](i[e(497)],r[e(497)]);if(n[e(348)](a[e(328)](),Number[e(465)])){a[e(467)]();const t=Math[e(355)](Math[e(456)](Math[e(419)](i[e(497)][e(491)](r[e(497)]),-1),1));r.up[e(404)](C$a[e(443)](a,t))}r[e(321)][e(455)](r[e(497)],r.up)[e(467)](),r[e(360)]=n[e(358)](i[e(360)],s),r[e(346)]=1,r[e(323)]=!1,this[e(422)]++}[E9(490)](t,e,n,i,r){const s=E9,a={CxiiR:function(t,e){return t>e},BYBLz:function(t,e){return t-e},zeVqh:function(t,e,n,i,r,s,a){return t(e,n,i,r,s,a)},zKmlR:function(t,e){return t===e},ncnjJ:function(t,e){return t-e},WQmly:function(t,e){return t<e},DjWXx:function(t,e){return t+e}};if(a[s(471)](n,0)&&a[s(471)](i,0)){const o=this[s(500)][a[s(329)](this[s(422)],1)],c=a[s(388)](b$a,o[s(359)],t,e,n,a[s(483)](a[s(361)](this[s(422)],1),0),o$7)[s(473)](i);for(let t=0;a[s(284)](t,i);t++)this[s(299)](c[t],c[a[s(493)](t,1)],r,a[s(483)](t,0)?1:0);!c[i][s(393)](e)&&this[s(299)](c[i],e,r,2)}else this[s(299)](t,e,r,0,!0)}[E9(299)](t,e,n,i=0,r=!1){const s=E9,a={raNcR:function(t,e){return t-e},ptmhy:function(t,e){return t===e},dHSSv:function(t,e){return t>e},zOgTw:function(t,e){return t+e},bnMCH:function(t,e){return t/e},hYRyi:function(t,e){return t-e}},o=this[s(500)][a[s(416)](this[s(422)],1)],c=this[s(292)](this[s(422)]),l=x$c[s(406)](t,o[s(359)]),u=a$b[s(406)](e,t),h=l[s(328)]();if(l[s(467)](),u[s(467)](),c[s(359)][s(351)](t),a[s(468)](i,1)?c[s(497)][s(351)](l):a[s(468)](i,2)?c[s(497)][s(351)](u):(c[s(497)][s(343)](l,u),c[s(497)][s(467)]()),n)a[s(468)](c[s(497)][s(491)](n),1)?c[s(321)][s(455)](u,n)[s(467)]():c[s(321)][s(455)](c[s(497)],n)[s(467)](),c.up[s(455)](c[s(321)],c[s(497)])[s(467)]();else{c.up[s(351)](o.up);const t=n$a[s(455)](o[s(497)],c[s(497)]);if(a[s(472)](t[s(328)](),Number[s(465)])){t[s(467)]();const e=Math[s(355)](Math[s(456)](Math[s(419)](o[s(497)][s(491)](c[s(497)]),-1),1));c.up[s(404)](C$a[s(443)](t,e))}c[s(321)][s(455)](c[s(497)],c.up)[s(467)]()}c[s(360)]=a[s(341)](o[s(360)],h);const d=l[s(491)](u);c[s(346)]=Math[s(456)](a[s(383)](1,Math[s(369)](a[s(383)](a[s(341)](1,d),2))),1.415)||1,c[s(323)]=a[s(472)](Math[s(498)](a[s(306)](d,1)),.05)&&r,this[s(422)]++}}function N$B(t,e){const n=E$B();return(N$B=function(t,e){return n[t-=483]})(t,e)}const e$6=N$B;function E$B(){const t=["dispose","setIndex","Ihnya","xRepeat","uniforms","MMRzp","animate","keepDashSize","length","transparent","2|3|0|1|4|5|6","#999","\n uniform sampler2D map;\n uniform vec3 color;\n uniform float resolution;\n uniform float xRepeat;\n uniform vec3 bgc;\n varying vec2 vUv;\n varying vec3 vPos;\n\n void main() {\n float localX = vUv.x * resolution /9.999;\n vec4 data = texture2D(map, vec2(vUv.x * xRepeat, vUv.y));\n vec3 texColor = data.rgb * color;\n\n // 混合贴图色与背景色(这里 0.7 可调整为你想要的混合权重)\n vec3 finalColor = data.rgb * color;\n if (data.a < 0.01) {\n // 如果贴图透明,显示背景色\n\n if (localX < 1.0 / 3.0 ) {\n // 左段用红色\n finalColor = vec3(0.5, 0.5, 0.5);\n } else if (localX < 2.0 / 3.0 ) {\n // 中段用贴图\n finalColor = vec3(0.0, 0.0, 1.0);\n } else if (localX <= 1.0 ) {\n // 中段用贴图\n finalColor = vec3(1.0, 0.0, 1.0);\n } else {\n // 右段用绿色\n finalColor = vec3(0.0, 1.0, 1.0);\n }\n // finalColor = bgc;\n } \n\n\n gl_FragColor = vec4(finalColor, 1.0);\n }\n ","shadowColor","wJhJP","setTexture","addLine","nAUsq","raycast","roadLineWidth","updateLine","UCrBx","position","bdPos","qmBli","reduce","isSimulate","split","qQFlJ","fazmO","addEventListener","setAttribute","blue","shadowBlur","domElement","VHRRY","VrLuf","closePath","wrapS","navi","VZMgP","setPositions","tKWMJ","CdhYl","off","nduFR","viewchange","5|1|0|2|6|4|3","shadowOffsetY","toFixed","canvas","fDQjE","3120070zUMUyb","beginPath","red","clientHeight","53YjAKeW","getResolution","14347080KpduQs","KXggk","minFilter","cDdNq","LOObr","computeLineDistances","dashSize","23546WgslUt","status","image","gapSize","dashed","value","RAFID","push","AVNkn","\n uniform float time;\n varying vec2 vUv;\n varying vec3 vPos;\n \n void main() {\n vUv = uv;\n vPos = position;\n // 原始位置处理(保持原有路径几何)\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n ","color","white","oYmyN","sBmPa","MjzOO","height","NAInx","needsUpdate","options","frustumCulled","93nwtvYh","VYxfn","JNFVG","#fff","gBDSw","createElement","fill","set","update","146482quGcOw","clearRect","zhPrR","2564hHfalE","YOaMd","clientWidth","renderer","shadowOffsetX","daqFJ","handleResize","tsoGO","wrapT","setTexture2","resize","offset","resolution","geometry","uNIIi","MQWkG","amap","80cDbRyG","points","fillStyle","WwTDo","NFlbV","repeat","998883IVooav","fillRect","material","getContext","vzyAt","width","isNavi","map","ZfBWc","2|6|1|5|0|4|3","assign","colors","indexs","aKnsm","_width","moveTo","1527192kTGsGQ","lineTo","removeEventListener","jTkcQ","Kicgc","globalAlpha"];return(E$B=function(){return t})()}!function(t,e){const n=N$B,i=t();for(;;)try{if(519659===parseInt(n(613))/1*(-parseInt(n(622))/2)+parseInt(n(500))/3*(-parseInt(n(512))/4)+-parseInt(n(609))/5+parseInt(n(551))/6+-parseInt(n(509))/7*(-parseInt(n(529))/8)+-parseInt(n(535))/9+parseInt(n(615))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$B);class FatLine extends Line2{constructor(t,e={},n){var i=(...t)=>(super(...t),__publicField(this,_y2),this);const r=N$B,s={ZfBWc:r(544),fazmO:r(589),jTkcQ:r(522)},a=s[r(543)][r(584)]("|");let o=0;for(;;){switch(a[o++]){case"0":this[r(518)]();continue;case"1":this[r(591)]=n;continue;case"2":i(new LineGeometry,new LineMaterial(Object[r(545)]({color:s[r(586)],linewidth:1,opacity:1,resolution:new Vector2},e)));continue;case"3":this[r(508)]();continue;case"4":n[r(587)](s[r(554)],this[r(518)]);continue;case"5":this[r(518)]=()=>{const t=r;this[t(537)][t(524)][t(507)](n[t(514)],n[t(612)])};continue;case"6":this[r(530)]=t;continue}break}}[(_y2=e$6(530),e$6(508))](t){const e=e$6;this[e(530)]=t||this[e(530)];const n=this[e(530)][e(582)]((t,n)=>(t[e(487)](n.x,n.y,n.z),t),[]);this[e(525)][e(598)](n),this[e(620)]()}[e$6(557)](){const t=e$6,e={UCrBx:t(522)};this[t(591)][t(553)](e[t(578)],this[t(518)]),super[t(557)]()}}class RoadLine extends Mesh{constructor(t,e={},n){const i=e$6,r={MQWkG:i(607),Ihnya:function(t,e){return t===e},bdPos:i(484)};super(),__publicField(this,_D),__publicField(this,_C),__publicField(this,_B),__publicField(this,_A),__publicField(this,_z2);const{bgc:s,color:a,width:o,style:c}=e;this[i(542)]=n,this[i(530)]=t,this[i(540)]=o||this[i(542)][i(498)][i(576)]||(ua.pc?.6:.4),this.up=new Vector3(0,0,1);const l=new Texture(document[i(505)](r[i(527)]));l[i(617)]=LinearFilter,l[i(595)]=l[i(520)]=RepeatWrapping,l[i(534)].x=.3,this[i(537)]=new MeshBasicMaterial({transparent:!0,opacity:1,depthTest:!1,depthWrite:!1,map:l}),r[i(559)](c,r[i(580)])?this[i(521)](s,a):this[i(572)](s,a),this[i(508)](),this[i(563)]()}[(_D=e$6(530),_C=e$6(542),e$6(572))](t=e$6(589),e=e$6(611)){const n=e$6,i={qQFlJ:function(t,e){return t*e},tsoGO:n(568),NAInx:function(t,e){return t-e}};let r=this[n(537)][n(542)][n(624)],s=r[n(538)]("2d");r[n(540)]=i[n(585)](256,3),r[n(495)]=256,s[n(510)](0,0,r[n(540)],r[n(495)]),s[n(531)]=i[n(519)],s[n(536)](0,0,r[n(540)],r[n(495)]),s[n(531)]=t,s[n(536)](0,30,r[n(540)],i[n(496)](r[n(495)],60)),s[n(610)](),s[n(550)](0,30),s[n(552)](70,30),s[n(552)](170,128),s[n(552)](70,226),s[n(552)](0,226),s[n(552)](100,128),s[n(594)](),s[n(531)]=e,s[n(506)](),this[n(537)][n(542)][n(497)]=!0}[e$6(521)](t=e$6(589),e=e$6(611)){const n=e$6,i={WwTDo:function(t,e){return t*e},LOObr:n(503),CdhYl:function(t,e){return t-e},YOaMd:function(t,e){return t+e},wJhJP:n(566)};let r=this[n(537)][n(542)][n(624)],s=r[n(538)]("2d");r[n(540)]=i[n(532)](256,3),r[n(495)]=256,s[n(570)]=i[n(619)],s[n(590)]=100,s[n(516)]=0,s[n(605)]=0,s[n(556)]=.01,s[n(510)](0,0,r[n(540)],r[n(495)]),s[n(531)]=t,s[n(536)](0,0,r[n(540)],r[n(495)]),s[n(531)]=t,s[n(536)](0,30,r[n(540)],i[n(600)](r[n(495)],60)),s[n(556)]=1;s[n(610)](),s[n(550)](0,30),s[n(552)](i[n(513)](70,350),30),s[n(552)](i[n(513)](170,350),128),s[n(552)](i[n(513)](70,350),226),s[n(552)](0,226),s[n(552)](100,128),s[n(594)](),s[n(531)]=t,s[n(506)](),s[n(570)]=i[n(571)],s[n(590)]=0,this[n(537)][n(542)][n(497)]=!0}[e$6(508)](t){const e=e$6,n={uNIIi:e(604)}[e(526)][e(584)]("|");let i=0;for(;;){switch(n[i++]){case"0":var r=new PathPointList;continue;case"1":this[e(525)]&&this[e(525)][e(557)]();continue;case"2":r[e(507)](this[e(530)],.5,10,this.up,!1);continue;case"3":this[e(525)]=s;continue;case"4":s[e(508)](r,{width:this[e(549)],arrow:!1});continue;case"5":t&&(this[e(530)]=t);continue;case"6":var s=new PathGeometry;continue}break}}[(_B=e$6(486),_A=e$6(549),_z2=e$6(540),e$6(563))](){const t=e$6,e={VZMgP:function(t,e){return t(e)},gBDSw:function(t,e){return t*e},fDQjE:function(t,e){return t*e},nduFR:function(t,e){return t!==e}};this[t(486)]=e[t(597)](requestAnimationFrame,()=>this[t(563)]()),this[t(542)][t(596)][t(623)][t(541)]||this[t(542)][t(596)][t(623)][t(583)]||(this[t(537)][t(542)][t(523)].x-=.01);let n=e[t(504)](e[t(608)](this[t(542)][t(528)][t(614)](),this[t(540)]),15);n=+n[t(606)](1),e[t(602)](this[t(549)],n)&&(this[t(549)]=n,this[t(508)]())}[e$6(557)](){const t=e$6;({tKWMJ:function(t,e){return t(e)}})[t(599)](cancelAnimationFrame,this[t(486)]),super[t(557)]()}}class PolygonLine extends Line2{constructor(t,e={},n){const i=e$6,r={daqFJ:function(t,e){return t*e},AVNkn:i(589),NFlbV:i(603)};let s=new LineMaterial(Object[i(545)]({color:r[i(488)],linewidth:1,opacity:1,transparent:!0,resolution:new Vector2},e));super(new LineGeometry,s),__publicField(this,_G),__publicField(this,_F),__publicField(this,_E),this[i(542)]=n,this[i(530)]=t,this[i(508)](),this[i(518)]=()=>{const t=i;s[t(524)][t(507)](n[t(515)][t(591)][t(514)],n[t(515)][t(591)][t(612)]),e[t(564)]&&(s[t(483)]=s[t(621)]=r[t(517)](n[t(528)][t(614)](),20))},this[i(518)](),n[i(528)].on(r[i(533)],this[i(518)])}[(_G=e$6(542),_F=e$6(530),_E=e$6(518),e$6(508))](t){const e=e$6;this[e(530)]=t||this[e(530)];const n=this[e(530)][e(582)]((t,n)=>(t[e(487)](n.x,n.y,n.z),t),[]);this[e(525)][e(598)](n),this[e(620)]()}[e$6(557)](){const t=e$6,e={aKnsm:t(603)};super[t(557)](),this[t(542)][t(528)][t(601)](e[t(548)],this[t(518)])}}class MultipleLine extends Line{constructor(){const t=e$6;super(new BufferGeometry,new MeshBasicMaterial({vertexColors:!0})),__publicField(this,_J,[]),__publicField(this,_I,[]),__publicField(this,_H,[]),this[t(499)]=!1}[(_J=e$6(530),_I=e$6(547),_H=e$6(546),e$6(573))](t,e,n){const i=e$6,r={cDdNq:function(t,e){return t/e}};let s=new Color(e);[...t,t[0]][i(542)](t=>{const e=i;this[e(547)][e(487)](r[e(618)](this[e(530)][e(565)],3)),this[e(530)][e(487)](t.x,t.y,n||t.z||0),this[e(546)][e(487)](s.r,s.g,s.b)}),this[i(547)][i(487)](65535)}[e$6(575)](){}[e$6(577)](){const t=e$6,e={VrLuf:t(579),MMRzp:t(490)};this[t(525)][t(588)](e[t(593)],new Float32BufferAttribute(this[t(530)],3)),this[t(525)][t(588)](e[t(562)],new Float32BufferAttribute(this[t(546)],3)),this[t(525)][t(558)](new Uint16BufferAttribute(this[t(547)],1))}}class RoadLine2 extends Mesh{constructor(t,e={},n){const i=e$6,r={VHRRY:i(607),sBmPa:i(491),zhPrR:i(589)};super(),__publicField(this,_P),__publicField(this,_O),__publicField(this,_N,.3),__publicField(this,_M),__publicField(this,_L),__publicField(this,_K);const{bgc:s,color:a,width:o,style:c}=e;this[i(542)]=n,this[i(530)]=t,this[i(540)]=o||this[i(542)][i(498)][i(576)]||(isPc?.6:.4),this.up=new Vector3(0,0,1);const l=new Texture(document[i(505)](r[i(592)]));l[i(617)]=LinearFilter,l[i(595)]=l[i(520)]=RepeatWrapping,l[i(534)].x=this[i(560)],this[i(537)]=new ShaderMaterial({uniforms:{map:{value:l},lineLength:{value:1},xRepeat:{value:this[i(560)]},resolution:{value:1},color:{value:new Color(r[i(493)])},bgc:{value:new Color(r[i(511)])}},vertexShader:i(489),fragmentShader:i(569),transparent:!0,depthTest:!1,depthWrite:!1}),this[i(572)](),this[i(508)](),this[i(563)]()}[(_P=e$6(530),_O=e$6(542),_N=e$6(560),e$6(572))](t=e$6(491)){const e=e$6,n={vzyAt:function(t,e){return t*e},nAUsq:e(568),MjzOO:function(t,e){return t-e}};let i=this[e(537)][e(561)][e(542)][e(485)][e(624)],r=i[e(538)]("2d");i[e(540)]=n[e(539)](256,2),i[e(495)]=256,r[e(510)](0,0,i[e(540)],i[e(495)]),r[e(531)]=n[e(574)],r[e(536)](0,0,i[e(540)],i[e(495)]),r[e(510)](0,30,i[e(540)],n[e(494)](i[e(495)],60)),r[e(610)](),r[e(550)](0,30),r[e(552)](70,30),r[e(552)](170,128),r[e(552)](70,226),r[e(552)](0,226),r[e(552)](100,128),r[e(594)](),r[e(531)]=t,r[e(506)](),this[e(537)][e(561)][e(542)][e(485)][e(497)]=!0}[e$6(508)](t){const e=e$6,n={VYxfn:e(567)}[e(501)][e(584)]("|");let i=0;for(;;){switch(n[i++]){case"0":var r=new PathPointList;continue;case"1":r[e(507)](this[e(530)],.5,10,this.up,!1);continue;case"2":t&&(this[e(530)]=t);continue;case"3":this[e(525)]&&this[e(525)][e(557)]();continue;case"4":var s=new PathGeometry;continue;case"5":s[e(508)](r,{width:this[e(549)],arrow:!1});continue;case"6":this[e(525)]=s;continue}break}}[(_M=e$6(486),_L=e$6(549),_K=e$6(540),e$6(563))](){const t=e$6,e={oYmyN:function(t,e){return t(e)},Kicgc:function(t,e){return t*e},JNFVG:function(t,e){return t*e},KXggk:function(t,e){return t!==e}};this[t(486)]=e[t(492)](requestAnimationFrame,()=>this[t(563)]());let n=this[t(542)][t(528)][t(614)](),i=e[t(555)](e[t(502)](n,this[t(540)]),15);i=+i[t(606)](1),this[t(537)][t(561)][t(524)][t(485)]=n,e[t(616)](this[t(549)],i)&&(this[t(549)]=i,this[t(508)]())}[e$6(557)](){const t=e$6;({qmBli:function(t,e){return t(e)}})[t(581)](cancelAnimationFrame,this[t(486)]),super[t(557)]()}}var p$2=N$A;function N$A(t,e){var n=E$A();return(N$A=function(t,e){return n[t-=331]})(t,e)}function E$A(){var t=["align","WdSOA","canvas","assign","EnMwf","bSLlS","YaNkV","anonymous","2TnqmDA","aGpMO","lines","mNEgZ","text","strokeWidth","mQUZl","SxRrn","center","textWidth","_width","height","bgColor","22015TdQwOR","mfYGr","padding","src","strokeText","MutRH","drawImage","bwmUT","Wuykm","addEventListener","fillStyle","strokeStyle","aRgHX","map","1470550HZpRcU","lineWidth","ajZIm","EoEfw","miterLimit","FWQJp","max","reduce","measureText","createElement","IoXSO","textAlign","fill","fontVariant","needsRedraw","fillRect","mRpAa","zQQNu","#fff","gaOTd","hRuPT","defineProperty","HMrRC","load","UOEYy","JVNjI","fontSize","FORVF","crossOrigin","clearRect","hTWHu","fontWeight","width","pqQSs","fillText","muTad","redraw","lineGap","forEach","38284rvKydy","split","1532106AGePkg","mminV","FwPvS","13151039QRruSw","xYFQw","length","PUBvE","_loadPromise","lZwqf","BNnlb","WBZev","DsUfG","textHeight","2540184RmqGfN","fontFamily","sans-serif","normal","#000","dBXkt","QZszG","_iconHeight","getContext","kmHuE","27xpcoVr","left","mqxLZ","330NuXZIk","fontStyle","right","areaType","pLNzR","_height","rgba(255,255,255,+0.005)","prototype","UUpLs","entries","nMTLT","then","SdExT","needsUpdate","mSZCC","1035834kxGCEk","font","aYRKB","alphabetic","roundRect","WrnHm","image","textBaseline","globalAlpha","join","xAkDq","suxEA","WQiFN","0|5|4|6|3|1|2","iconHeight","lrTNM","min","qjLFJ","20ZqXPGM"];return(E$A=function(){return t})()}!function(t,e){for(var n=N$A,i=t();;)try{if(756779===parseInt(n(331))/1+-parseInt(n(440))/2*(-parseInt(n(413))/3)+parseInt(n(370))/4*(parseInt(n(398))/5)+-parseInt(n(372))/6+parseInt(n(453))/7+parseInt(n(385))/8*(parseInt(n(395))/9)+-parseInt(n(431))/10*(parseInt(n(375))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$A);const d$m={};function J$e(t,e,n,i,r){var s=N$A;return[n,i,r,{EnMwf:function(t,e){return t+e}}[s(436)](e,"px"),t][s(422)](" ")}let x$b=class extends Texture{constructor(t={}){var e=N$A,n={aYRKB:e(434),mRpAa:e(448),mSZCC:e(349),aGpMO:e(387),gaOTd:function(t,e){return t*e},lZwqf:e(388),mfYGr:e(389),xAkDq:function(t,e){return t*e}};super(document[e(340)](n[e(415)]),void 0,void 0,void 0,LinearFilter,LinearMipmapLinearFilter),Object[e(435)](this,{_align:t[e(432)]||n[e(347)],_fillStyle:t[e(463)]||n[e(412)],_fontFamily:t[e(386)]||n[e(441)],_fontSize:n[e(350)](t[e(357)]?+t[e(357)]:16,devicePixelRatio),_fontStyle:t[e(399)]||n[e(380)],_fontVariant:t[e(344)]||n[e(380)],_fontWeight:t[e(362)]||n[e(380)],_lineGap:t[e(368)]||.15,_padding:t[e(455)]||.25,_strokeStyle:t[e(464)]||n[e(454)],_strokeWidth:t[e(445)]||0,_text:t[e(444)]||"",_src:t[e(456)]||null,_areaType:t[e(401)],_bgColor:t[e(452)],_iconHeight:t[e(427)],needsRedraw:!0}),this[e(427)]=n[e(423)](this[e(392)]||36,devicePixelRatio),this[e(367)]()}get[p$2(442)](){var t=p$2;return this[t(444)]?this[t(444)][t(371)]("\n"):[]}get[p$2(449)](){for(var t=p$2,e={aRgHX:t(426),FORVF:t(434),QZszG:function(t,e,n,i,r,s){return t(e,n,i,r,s)}},n=e[t(465)][t(371)]("|"),i=0;;){switch(n[i++]){case"0":var r=this[t(386)];continue;case"1":if(a[t(377)]){var s=document[t(340)](e[t(358)])[t(393)]("2d");return s[t(414)]=e[t(391)](J$e,r,1,c,o,l),a[t(466)](function(e){var n=t;return s[n(339)](e)[n(363)]})[t(338)](function(e,n){return Math[t(337)](e,n)})}continue;case"2":return 0;case"3":var a=this[t(442)];continue;case"4":var o=this[t(344)];continue;case"5":var c=this[t(399)];continue;case"6":var l=this[t(362)];continue}break}}get[p$2(384)](){var t=p$2,e={BNnlb:function(t,e){return t+e},IoXSO:function(t,e){return t*e},JVNjI:function(t,e){return t-e}},n=this[t(442)][t(377)];return n?e[t(381)](n,e[t(341)](this[t(368)],e[t(356)](n,1))):0}get[p$2(363)](){var t=p$2,e={YaNkV:function(t,e){return t>e},zQQNu:function(t,e){return t/e},MutRH:function(t,e){return t/e},bSLlS:function(t,e){return t/e},DsUfG:function(t,e){return t/e},EoEfw:function(t,e){return t+e},WdSOA:function(t,e){return t*e}};if(!this[t(450)]){let{padding:n,strokeWidth:i,textWidth:r,text:s}=this;s&&(e[t(438)](e[t(348)](r,s[t(377)])?e[t(458)](r,s[t(377)]):1,1.5)&&(r=e[t(437)](r,8)),n+=e[t(383)](i,2),this[t(450)]=e[t(334)](e[t(433)](2,n),r))}return this[t(450)]}get[p$2(451)](){var t=p$2,e={UOEYy:function(t,e){return t+e},WrnHm:function(t,e){return t*e},FWQJp:function(t,e){return t+e},qjLFJ:function(t,e){return t/e},WQiFN:function(t,e){return t/e},SxRrn:function(t,e){return t+e},ajZIm:function(t,e){return t+e}};return!this[t(403)]&&(this[t(403)]=e[t(355)](e[t(355)](e[t(418)](2,e[t(336)](this[t(455)],e[t(430)](this[t(445)],2))),this[t(384)]),this[t(456)]?e[t(425)](this[t(427)],e[t(447)](e[t(333)](this[t(455)],this[t(445)]),this[t(357)])):0)),this[t(403)]}[p$2(367)](){var t=p$2,e={SdExT:function(t,e){return t/e},UUpLs:function(t,e){return t/e},pqQSs:function(t,e){return t-e},xYFQw:function(t,e){return t>e},bwmUT:function(t,e){return t*e},PUBvE:function(t,e){return t>e},mminV:function(t,e){return t/e},HMrRC:function(t,e){return t/e},FwPvS:function(t,e){return t+e},mNEgZ:function(t,e){return t*e},Wuykm:function(t){return t()},dBXkt:t(354),pLNzR:t(439),mqxLZ:function(t,e){return t/e},mQUZl:function(t,e,n,i,r,s){return t(e,n,i,r,s)},hTWHu:t(396),suxEA:t(400),muTad:t(448),nMTLT:t(416),WBZev:function(t,e){return t+e},hRuPT:function(t,e){return t/e},kmHuE:t(404)};if(this[t(345)]){var n=this[t(419)];if(n){let{fontSize:S,height:x,width:b}=this;var i=n[t(393)]("2d");if(i[t(360)](0,0,n[t(363)],n[t(451)]),x*=S,(b*=S)&&x){var r,s=this[t(432)],a=this[t(463)],o=this[t(386)],c=this[t(399)],l=this[t(344)],u=this[t(362)],h=this[t(368)],d=this[t(442)],p=this[t(455)],f=this[t(464)],m=this[t(445)],g=this[t(456)],A=this[t(452)],y=0;if(n[t(363)]=b,n[t(451)]=A?e[t(443)](1.2,x):x,g){let n=d$m[g];y=this[t(427)];let r=()=>{var r=t;let s=e[r(410)](n[r(363)],n[r(451)]);i[r(459)](n,0,0,n[r(363)],n[r(451)],e[r(406)](e[r(364)](this[r(419)][r(363)],e[r(376)](s,1)?y:e[r(460)](y,s)),2),0,e[r(376)](s,1)?y:e[r(460)](y,s),e[r(378)](s,1)?e[r(373)](y,s):y),this[r(411)]=!0,y=Math[r(429)](e[r(460)](s,y),e[r(353)](y,s))};if(!n){n=new Image;let{promise:i,resolve:s}=e[t(461)](getPromise);i[t(409)](r),n[t(379)]=i,n[t(462)](e[t(390)],s),n[t(359)]=e[t(402)],n[t(456)]=g,d$m[g]=n}n[t(379)][t(409)](r)}switch(p+=e[t(397)](m,2),m*=S,h*=S,p*=S,i[t(414)]=e[t(446)](J$e,o,S,c,l,u),s){case e[t(361)]:i[t(342)]=e[t(361)],r=p;break;case e[t(424)]:i[t(342)]=e[t(424)],r=e[t(364)](b,p);break;case e[t(366)]:i[t(342)]=e[t(366)],r=e[t(406)](b,2)}i[t(420)]=e[t(408)];var v=e[t(382)](e[t(374)](e[t(351)](p,2),S),y);A?(i[t(463)]=A,i[t(417)]&&i[t(417)](0,0,b,x,8),i[t(421)]=.7,i[t(343)]()):(i[t(463)]=e[t(394)],i[t(346)](0,0,b,x)),i[t(421)]=1,i[t(463)]=a,i[t(335)]=1,i[t(332)]=m,i[t(464)]=f,d[t(369)](function(n){var s=t;m&&i[s(457)](n,r,v),i[s(365)](n,r,v),v+=e[s(374)](S,h)})}else n[t(363)]=n[t(451)]=1;this[t(345)]=!1,this[t(411)]=!0}}}};Object[p$2(407)]({_align:p$2(432),_fillStyle:p$2(463),_fontFamily:p$2(386),_fontSize:p$2(357),_fontStyle:p$2(399),_fontVariant:p$2(344),_fontWeight:p$2(362),_lineGap:p$2(368),_padding:p$2(455),_strokeStyle:p$2(464),_strokeWidth:p$2(445),_text:p$2(444),_src:p$2(456),_bgColor:p$2(452),_areaType:p$2(401)})[p$2(369)](function(t){var e=p$2,n={lrTNM:function(t,e){return t!==e}},i=t[0],r=t[1];Object[e(352)](x$b[e(405)],r,{get:function(){return this[i]},set:function(t){var r=e;n[r(428)](this[i],t)&&(this[i]=t,this[r(345)]=!0)}})});const v$3=N$z;function N$z(t,e){const n=E$z();return(N$z=function(t,e){return n[t-=257]})(t,e)}let J$d;function E$z(){const t=["134772uTmPaH","slice","zIndex","xIGMC","vvJwa","JEgBq","230FPRDVM","nwmpg","_hide","fYXvh","text","isCollision","image","visible","fontSize","src","235030qflrCq","57429EnobcB","splice","1014264XeQVNy","Wovvy","markerCollisionPool","49zBQFBa","markerPool","camera","collision","handleMarkerCollision","inSight","parent","width","170862TbXHaX","fcsij","198xCtgqQ","minFilter","IIpxk","oDsyI","strokeWidth","fillStyle","227132SFNkMu","dispose","height","map","15kpjevI","sort","get","position","LkYnr","set","magFilter","option","generateMipmaps","center","push","dIVfR","34yxWEYw","indexOf","AyfWs","4801CMumOe","hQHgU","sizeRatio","strokeStyle","material","bgColor","__hide","amap","group","vmap"];return(E$z=function(){return t})()}!function(t,e){const n=N$z,i=t();for(;;)try{if(266185===parseInt(n(307))/1*(parseInt(n(304))/2)+-parseInt(n(292))/3*(parseInt(n(288))/4)+parseInt(n(266))/5+-parseInt(n(280))/6*(-parseInt(n(272))/7)+-parseInt(n(269))/8+parseInt(n(267))/9*(parseInt(n(323))/10)+parseInt(n(282))/11*(parseInt(n(317))/12))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$z);const x$a=new Map;class TextSprite extends Sprite{constructor(t){const e=v$3,n={nwmpg:function(t,e){return t+e},vvJwa:function(t,e){return t+e},hQHgU:function(t,e){return t+e},IIpxk:function(t,e){return t+e},JEgBq:function(t,e){return t===e},xIGMC:function(t,e,n,i){return t(e,n,i)},dIVfR:function(t,e){return t(e)},LkYnr:function(t,e,n){return t(e,n)}};let i=n[e(257)](n[e(321)](n[e(308)](n[e(284)](n[e(321)](n[e(321)](t[e(260)],(t[e(265)]||"")[e(318)](-10)),t[e(312)]),t[e(287)]),t[e(264)]),t[e(310)]),t[e(286)]),r=x$a[e(294)](i);if(!r){let n=new x$b(t);isPc?(n[e(283)]=LinearMipMapLinearFilter,n[e(298)]=LinearFilter,n[e(300)]=!1):(n[e(283)]=LinearFilter,n[e(298)]=NearestFilter),r=new SpriteMaterial({sizeAttenuation:!1,depthTest:!1,depthWrite:!1,map:n}),x$a[e(297)](i,r)}super(r),__publicField(this,_T),__publicField(this,_S),__publicField(this,_R,!1),__publicField(this,_Q),this[e(299)]=t,this[e(301)][e(297)](.5,t[e(265)]?.5:0),this[e(261)]=!!n[e(322)](this[e(299)][e(261)],void 0)||this[e(299)][e(261)],this[e(315)]=t[e(315)]||".",n[e(320)](setSize,this,1,t[e(316)][e(309)]),this[e(299)][e(316)][e(273)][e(302)](this),!this[e(299)][e(316)][e(271)][this[e(315)]]&&(this[e(299)][e(316)][e(271)][this[e(315)]]=new Collision),n[e(303)](clearTimeout,J$d),J$d=n[e(296)](setTimeout,()=>{const t=e;this[t(299)][t(316)][t(273)][t(293)]((e,n)=>n[t(299)][t(319)]-e[t(299)][t(319)]),this[t(299)][t(316)][t(276)]()},50),this[e(275)]()}get[(_T=v$3(299),_S=v$3(261),_R=v$3(313),v$3(258))](){return this[v$3(313)]}set[v$3(258)](t){const e=v$3;this[e(313)]=t,{fcsij:function(t,e){return t===e}}[e(281)](!t,this[e(263)])||this[e(275)]()}[(_Q=v$3(315),v$3(275))](){var t;const e=v$3,n={Wovvy:function(t,e,n,i){return t(e,n,i)},fYXvh:function(t,e){return t-e},AyfWs:function(t,e){return t*e},oDsyI:function(t,e){return t-e}};if(this[e(258)])return void(this[e(263)]=!1);if(!this[e(261)]||!(null==(t=this[e(278)])?void 0:t[e(263)]))return;let i=n[e(270)](convert3dTo2d,this[e(295)],this[e(299)][e(316)][e(274)],{clientWidth:this[e(299)][e(316)][e(314)][e(279)],clientHeight:this[e(299)][e(316)][e(314)][e(290)]});if(!i[e(277)])return void(this[e(263)]=!1);let{pos:r}=i;const s=this[e(311)][e(291)][e(262)];let a=s[e(290)],o=s[e(279)],c=this[e(301)].x,l=this[e(301)].y,u={w:o/=devicePixelRatio,h:a/=devicePixelRatio,x:n[e(259)](r.x,n[e(306)](o,c)),y:n[e(285)](r.y,n[e(306)](a,n[e(259)](1,l)))},h=this[e(299)][e(316)][e(271)][this[e(315)]][e(302)](u);this[e(263)]=!h}[v$3(289)](){const t=v$3;this[t(299)][t(316)][t(273)][t(268)](this[t(299)][t(316)][t(273)][t(305)](this),1),super[t(289)]()}}function N$y(t,e){const n=E$y();return(N$y=function(t,e){return n[t-=351]})(t,e)}function E$y(){const t=["ODAfL","value","GmNsq","69848207WjsPAc","distortionScale","textureWidth","textureHeight","visible","GTAhc","sunColor","HDdDU","set","kqlIO","viewport","time","reflect","ubkUb","13415nmTLiq","eye","copy","elements","material","depth","applyMatrix4","LEjdG","multiplyScalar","BblhA","LaLxh","merge","enabled","waterNormals","setMask","14481sLbSlg","setRenderTarget","miXES","shadowMap","fog","GaECw","normal","waterColor","projectionMatrix","sign","17515530BcGNks","multiply","4314MyfPtT","subVectors","setFromNormalAndCoplanarPoint","NUtPx","side","uIvkE","autoClear","xpQXc","7880pzsYQp","vuaZA","Erxzz","clone","far","onBeforeRender","lookAt","EzGMr","textureMatrix","108FlbKoz","mirrorSampler","dot","clipBias","gsfTf","negate","sunDirection","normalSampler","matrixWorldInverse","7996359QINNSD","uwGDn","MirrorShader","autoUpdate","setFromMatrixPosition","vertexShader","lights","\n\t\t\t\tuniform sampler2D mirrorSampler;\n\t\t\t\tuniform float alpha;\n\t\t\t\tuniform float time;\n\t\t\t\tuniform float size;\n\t\t\t\tuniform float distortionScale;\n\t\t\t\tuniform sampler2D normalSampler;\n\t\t\t\tuniform vec3 sunColor;\n\t\t\t\tuniform vec3 noiseXyz;\n\t\t\t\tuniform vec3 sunDirection;\n\t\t\t\tuniform vec3 eye;\n\t\t\t\tuniform vec3 waterColor;\n\n\t\t\t\tvarying vec4 mirrorCoord;\n\t\t\t\tvarying vec4 worldPosition;\n // varying vec4 lPosition;\n\n\t\t\t\tvec4 getNoise( vec2 uv ) {\n\t\t\t\t\tvec2 uv0 = ( uv / 103.0 ) + vec2(time / 17.0, time / 29.0);\n\t\t\t\t\tvec2 uv1 = uv / 107.0-vec2( time / -19.0, time / 31.0 );\n\t\t\t\t\tvec2 uv2 = uv / vec2( 8907.0, 9803.0 ) + vec2( time / 101.0, time / 97.0 );\n\t\t\t\t\tvec2 uv3 = uv / vec2( 1091.0, 1027.0 ) - vec2( time / 109.0, time / -113.0 );\n\t\t\t\t\tvec4 noise = texture2D( normalSampler, uv0 ) +\n\t\t\t\t\t\ttexture2D( normalSampler, uv1 ) +\n\t\t\t\t\t\ttexture2D( normalSampler, uv2 ) +\n\t\t\t\t\t\ttexture2D( normalSampler, uv3 );\n\t\t\t\t\treturn noise * 0.5 - 1.0;\n\t\t\t\t}\n\n\t\t\t\tvoid sunLight( const vec3 surfaceNormal, const vec3 eyeDirection, float shiny, float spec, float diffuse, inout vec3 diffuseColor, inout vec3 specularColor ) {\n\t\t\t\t\tvec3 reflection = normalize( reflect( -sunDirection, surfaceNormal ) );\n\t\t\t\t\tfloat direction = max( 0.0, dot( eyeDirection, reflection ) );\n\t\t\t\t\tspecularColor += pow( direction, shiny ) * sunColor * spec;\n\t\t\t\t\tdiffuseColor += max( dot( sunDirection, surfaceNormal ), 0.0 ) * sunColor * diffuse;\n\t\t\t\t}\n\n\t\t\t\t#include <common>\n\t\t\t\t#include <packing>\n\t\t\t\t#include <bsdfs>\n\t\t\t\t#include <fog_pars_fragment>\n\t\t\t\t#include <logdepthbuf_pars_fragment>\n\t\t\t\t#include <lights_pars_begin>\n\t\t\t\t#include <shadowmap_pars_fragment>\n\t\t\t\t#include <shadowmask_pars_fragment>\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\t#include <logdepthbuf_fragment>\n\t\t\t\t\tvec4 noise = getNoise( worldPosition.xy * size );\n\t\t\t\t\t// vec4 noise = getNoise( lPosition.xy * size );\n\t\t\t\t\tvec3 surfaceNormal = normalize( noise.xyz * noiseXyz );\n\t\t\t\t\t// vec3 surfaceNormal = normalize( noise.xyz * vec3( 1.5, 1.0, 1.5) );\n\n\t\t\t\t\tvec3 diffuseLight = vec3(0.0);\n\t\t\t\t\tvec3 specularLight = vec3(0.0);\n\n\t\t\t\t\tvec3 worldToEye = eye-worldPosition.xyz;\n\t\t\t\t\tvec3 eyeDirection = normalize( worldToEye );\n\t\t\t\t\tsunLight( surfaceNormal, eyeDirection, 100.0, 2.0, 0.5, diffuseLight, specularLight );\n\n\t\t\t\t\tfloat distance = length(worldToEye);\n\n\t\t\t\t\tvec2 distortion = surfaceNormal.xy * ( 0.001 + 1.0 / distance ) * distortionScale;\n\t\t\t\t\tvec3 reflectionSample = vec3( texture2D( mirrorSampler, mirrorCoord.xy / mirrorCoord.w + distortion ) );\n\n\t\t\t\t\tfloat theta = max( dot( eyeDirection, surfaceNormal ), 0.0 );\n\t\t\t\t\tfloat rf0 = 0.3;\n\t\t\t\t\tfloat reflectance = rf0 + ( 1.0 - rf0 ) * pow( ( 1.0 - theta ), 5.0 );\n\t\t\t\t\tvec3 scatter = max( 0.0, dot( surfaceNormal, eyeDirection ) ) * waterColor;\n\t\t\t\t\tvec3 albedo = mix( ( sunColor * diffuseLight * 0.3 + scatter ) * getShadowMask(), ( vec3( 0.1 ) + reflectionSample * 0.9 + reflectionSample * specularLight ), reflectance);\n\t\t\t\t\tvec3 outgoingLight = albedo;\n\t\t\t\t\tgl_FragColor = vec4( outgoingLight, alpha );\n\n\t\t\t\t\t#include <tonemapping_fragment>\n\t\t\t\t\t#include <colorspace_fragment>\n\t\t\t\t\t#include <fog_fragment>\t\n\t\t\t\t}","\n\t\t\t\tuniform mat4 textureMatrix;\n\t\t\t\tuniform float time;\n\n\t\t\t\tvarying vec4 mirrorCoord;\n\t\t\t\tvarying vec4 worldPosition;\n // varying vec4 lPosition;\n\n\t\t\t\t#include <common>\n\t\t\t\t#include <fog_pars_vertex>\n\t\t\t\t#include <shadowmap_pars_vertex>\n\t\t\t\t#include <logdepthbuf_pars_vertex>\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tmirrorCoord = modelMatrix * vec4( position, 1.0 );\n\t\t\t\t\tworldPosition = mirrorCoord.xyzw;\n // lPosition = vec4(position, 1.0);\n\t\t\t\t\tmirrorCoord = textureMatrix * mirrorCoord;\n // mirrorCoord = textureMatrix * vec4(position, 1.0);\n\n\t\t\t\t\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t\tgl_Position = projectionMatrix * mvPosition;\n\n #include <beginnormal_vertex>\n #include <defaultnormal_vertex>\n #include <logdepthbuf_vertex>\n #include <fog_vertex>\n #include <shadowmap_vertex>\n\t\t\t}","fragmentShader","GcFPq","texture","KofLx","state","constant","isWater","matrixWorld","position","extractRotation","stopRender","ELxdW","SUwvz","lDxLd","lEeRl","clear","113432fWGftq","alpha","30djotsF","ErFfq","render","9252XIoKYi","getRenderTarget","add","updateMatrixWorld","name","xfdgo","WNLYF","uniforms","buffers"];return(E$y=function(){return t})()}!function(t,e){const n=N$y,i=t();for(;;)try{if(967155===parseInt(n(451))/1*(-parseInt(n(453))/2)+-parseInt(n(388))/3*(parseInt(n(417))/4)+-parseInt(n(373))/5*(parseInt(n(400))/6)+parseInt(n(426))/7+parseInt(n(408))/8*(-parseInt(n(456))/9)+-parseInt(n(398))/10+parseInt(n(359))/11)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$y);let d$l=class extends Mesh{constructor(t,e={}){const n=N$y,i={uIvkE:n(370),WNLYF:function(t,e){return t/e},KofLx:function(t,e){return t>e},gsfTf:function(t,e){return t+e},BblhA:function(t,e){return t+e},xpQXc:function(t,e){return t/e},ODAfL:function(t,e){return t+e},NUtPx:function(t,e){return t-e},LEjdG:function(t,e){return t===e},EzGMr:function(t,e){return t!==e},xfdgo:function(t,e){return t!==e},HDdDU:function(t,e){return t!==e},uwGDn:function(t,e){return t!==e},vuaZA:function(t,e){return t!==e},GmNsq:function(t,e){return t!==e},Erxzz:function(t,e){return t!==e},lDxLd:n(428),SUwvz:n(392),GTAhc:n(432),miXES:n(418),LaLxh:n(416),ELxdW:n(452),ubkUb:n(424),GaECw:n(365),lEeRl:n(395),GcFPq:n(423),kqlIO:n(360),ErFfq:n(374)};super(t),this[n(441)]=!0;const r=i[n(415)](e[n(361)],void 0)?e[n(361)]:512,s=i[n(415)](e[n(362)],void 0)?e[n(362)]:512,a=i[n(352)](e[n(420)],void 0)?e[n(420)]:0,o=i[n(352)](e[n(452)],void 0)?e[n(452)]:1,c=i[n(415)](e[n(370)],void 0)?e[n(370)]:0,l=i[n(366)](e[n(386)],void 0)?e[n(386)]:null,u=i[n(352)](e[n(423)],void 0)?e[n(423)]:new Vector3(.70707,0,.70707),h=new Color(i[n(352)](e[n(365)],void 0)?e[n(365)]:16777215),d=new Color(i[n(427)](e[n(395)],void 0)?e[n(395)]:8355711),p=i[n(427)](e[n(374)],void 0)?e[n(374)]:new Vector3(0,0,0),f=i[n(409)](e[n(360)],void 0)?e[n(360)]:20,m=i[n(358)](e[n(404)],void 0)?e[n(404)]:FrontSide,g=!!i[n(410)](e[n(392)],void 0)&&e[n(392)],A=new Plane,y=new Vector3,v=new Vector3,S=new Vector3,x=new Matrix4,b=new Vector3(0,0,-1),T=new Vector4,I=new Vector3,M=new Vector3,E=new Vector4,w=new Matrix4,R=new PerspectiveCamera,C=new WebGLRenderTarget(r,s),k={name:i[n(448)],uniforms:UniformsUtils[n(384)]([UniformsLib[i[n(447)]],UniformsLib[i[n(364)]],{normalSampler:{value:null},mirrorSampler:{value:null},alpha:{value:1},time:{value:0},size:{value:1},distortionScale:{value:20},textureMatrix:{value:new Matrix4},sunColor:{value:new Color(8355711)},sunDirection:{value:new Vector3(.70707,.70707,0)},noiseXyz:{value:new Vector3(1.5,1.5,1)},eye:{value:new Vector3},waterColor:{value:new Color(5592405)}}]),vertexShader:n(434),fragmentShader:n(433)},_=new ShaderMaterial({name:k[n(351)],uniforms:UniformsUtils[n(411)](k[n(354)]),vertexShader:k[n(431)],fragmentShader:k[n(435)],lights:!0,side:m,fog:g});_[n(354)][i[n(390)]][n(357)]=C[n(437)],_[n(354)][i[n(383)]][n(357)]=w,_[n(354)][i[n(446)]][n(357)]=o,_[n(354)][i[n(405)]][n(357)]=c,_[n(354)][i[n(372)]][n(357)]=l,_[n(354)][i[n(393)]][n(357)]=h,_[n(354)][i[n(449)]][n(357)]=d,_[n(354)][i[n(436)]][n(357)]=u,_[n(354)][i[n(368)]][n(357)]=f,_[n(354)][i[n(454)]][n(357)]=p,this[n(377)]=_,this[n(413)]=function(t,e,r){const s=n;if(this[s(445)])return;if(v[s(430)](this[s(442)]),S[s(430)](r[s(442)]),_[s(354)][i[s(405)]][s(357)]+=i[s(353)](1,120),x[s(444)](this[s(442)]),y[s(367)](0,0,1),y[s(379)](x),I[s(401)](v,S),i[s(438)](I[s(419)](y),0))return;I[s(371)](y)[s(422)](),I[s(458)](v),x[s(444)](r[s(442)]),b[s(367)](0,0,-1),b[s(379)](x),b[s(458)](S),M[s(401)](v,b),M[s(371)](y)[s(422)](),M[s(458)](v),R[s(443)][s(375)](I),R.up[s(367)](0,1,0),R.up[s(379)](x),R.up[s(371)](y),R[s(414)](M),R[s(412)]=r[s(412)],R[s(459)](),R[s(396)][s(375)](r[s(396)]),w[s(367)](.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),w[s(399)](R[s(396)]),w[s(399)](R[s(425)]),A[s(402)](y,v),A[s(379)](R[s(425)]),T[s(367)](A[s(394)].x,A[s(394)].y,A[s(394)].z,A[s(440)]);const o=R[s(396)];E.x=i[s(353)](i[s(421)](Math[s(397)](T.x),o[s(376)][8]),o[s(376)][0]),E.y=i[s(353)](i[s(382)](Math[s(397)](T.y),o[s(376)][9]),o[s(376)][5]),E.z=-1,E.w=i[s(407)](i[s(356)](1,o[s(376)][10]),o[s(376)][14]),T[s(381)](i[s(353)](2,T[s(419)](E))),o[s(376)][2]=T.x,o[s(376)][6]=T.y,o[s(376)][10]=i[s(403)](i[s(421)](T.z,1),a),o[s(376)][14]=T.w,p[s(430)](r[s(442)]);const c=t[s(457)](),l=t.xr[s(385)],u=t[s(391)][s(429)];this[s(363)]=!1,t.xr[s(385)]=!1,t[s(391)][s(429)]=!1,t[s(389)](C),t[s(439)][s(355)][s(378)][s(387)](!0),i[s(380)](t[s(406)],!1)&&t[s(450)](),t[s(455)](e,R),this[s(363)]=!0,t.xr[s(385)]=l,t[s(391)][s(429)]=u,t[s(389)](c);const h=r[s(369)];i[s(415)](h,void 0)&&t[s(439)][s(369)](h)}}};const p$1=N$x;!function(t,e){const n=N$x,i=t();for(;;)try{if(562774===parseInt(n(450))/1+parseInt(n(598))/2+parseInt(n(567))/3+-parseInt(n(537))/4+-parseInt(n(615))/5*(parseInt(n(390))/6)+parseInt(n(395))/7*(parseInt(n(627))/8)+-parseInt(n(380))/9*(parseInt(n(401))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$x);const a$a={};let n$9={},C$9=[];console[p$1(683)](p$1(656),n$9);const o$6={};let b$9=new Clock,u$8=[];function H$8(){const t=p$1;({UMRYK:function(t,e){return t(e)}})[t(491)](requestAnimationFrame,H$8),u$8[t(637)]&&u$8[t(544)](e=>e[t(684)](b$9[t(588)]()))}function E$x(){const t=["cornerSplit","8090NAIAjj","removeFromParent","renderer","qYpWE","image","colorMap","qrOCa","iQmWU","🚀 ~ bgi.url:","vNkuP","createShapeGeo","ZnXHh","Ebdsv","createFaceLine","bgc","YjuVL","cHaEk","naturalWidth","markCount","TlTQA","computeBVH","removeCustomMarker","shadow","XVTaK","addFaceLine","rKYcY","repeat","center","lJSNh","updateLine","mapData","9|8|6|1|7|2|4|0|5|10|3","XpgFv","name","teGtp","beaconData","general","3|4|1|5|0|2","FBMpA","QZDld","BlVNO","src","opacity","DVCzs","bgi","EditMarker","rotateAround","WNOUe","debugBeacon","1070309ZgSIVs","QxYlr","topMapRotation","markerGroup","DDmPD","topLogoOffset","pRezU","areaPolygonGroup","wkVXO","toFixed","FcxPj","nsgYJ","sizeRatio","language","sideMapRotation","EYPXM","data","dnDwC","sans-serif","ZFYDq","hide","topMap","_noClick","rdoiY","rSxjF","load","mAaDO","RGhAp","Zcdgy","visible","PUOVS","fog","initLanguageListener","#fff","AlwnW","WlTHG","HVdXU","multiplyScalar","jagSj","add","UZhXU","UMRYK","linewidth","renderOrder","includes","instanceType","getPointsFit","findByName","parentArea","hideName","vtQDL","bAAaH","geos","height","eeLNK","bottom","areaZoom","floor","FNXWh","seppZ","floorTitle","count","polygonData","mapId","geometry","ZANTS","enableDistanceDetect","modelLayer","ejGuw","cHOgR","addCustomNaviLine","removeNaviLine","NazDk","HVCAT","fkcjv","show","navi","intersectObjectsByLine","ornqV","zRQDs","floorHeight","translate","trHZh","customMarkerData","tMoso","addFloorTitle","#cccccc","1245728xeMZzl","interact","status","pathOptipns","QdGmz","setFromPoints","oQMdg","map","removeAllCustomMarker","customMarker","ypvyg","man","arr","juhqM","addMarker","lvNov","type","tFTQd","point","scFYb","FBzpf","pYQWY","2|7|4|0|1|8|3|6|9|11|5|10","width","polygonGroup","topLogo","poqqD","addEventListener","copy","generateMipmaps","3185469lcKVJM","modelGroup","hsEZm","1716622714522963968","rotation","_debugPathGroup","NeOnf","KOSor","multipleLine","indexOf","split","SAlxY","manCar","SMuOL","updateMatrix","XblEs","initPolgon","find","fontSize","addNaviLine","addLogo","getDelta","parent","line","#47ddff","areaSpriteGroup","removeFloorTitle","api","dIAjc","getPolygonById","circle","1797732uzCcFb","zIndex","polygonLoaded","VXjNG","oWEWK","jNBbd","cornerRadius","depthWrite","fontWeight","sub","kjoXy","RQBfv","smenX","naviLine","meEft","setZ","block","15TfTqgb","text","geo","addLine","SrcwJ","wrapT","addEditMarker","addPolygon","object3d","trmxp","XRZvm","ESgTQ","5504daFeXt","toString","naturalHeight","transparent","#ff994a","topLineColor","points","instanceArr","modelData","ivlzR","length","qliST","ZWBCg","route","getMarkerById","isWater","oWulT","fontColor","customNaviLine","hWYWv","initModel","lxbDt","getZoom","dashScale","sideMap","routeGroup","addDomMarker","amap","flat","TCL: geo","floorId","loadAsync","themeColor","intersectObjectsBy2D","Bavxa","xuyaa","QPPyf","domElement","createPolygonGeometry","cENQe","instances","RmKzE","play","beacon","keepDashSize","car","mUxYY","RmoZT","topLogoScale","dashed","fontIcon","JsHiE","toArray","rectInstanceMesh","qioBs","tfmXk","log","update","eCfxg","material","areaPolygon","fFuNU","tMbun","addLocationPoint","#ccc","scale","fGijR","1716622714522963969","computeBoundsTree","style","getPolygonDataById","sideMapSize","isInstanceEntity","xUUzU","$language","ids","rotateZ","path","clone","languageChanged","createPolygon","polygon","qlEOA","#555","vfDLb","stopRender","emit","frustumCulled","nqusx","MjuIy","_click","traverse","plane","debugPath","forEach","polygonLayer","position","isModel","addBgi","filter","instanceScale","lowPower","zwhEa","clipAction","object","createWater","addModel","DevLK","JvVoP","children","yZBCt","intersectArea","SIWHi","polygonDataArr","hpQpx","depthTest","#666","polygonType","#FFFFFF","IcQzJ","getModelById","clientHeight","2|1|3|4|0","addInstances","rect","7|2|8|5|6|0|1|3|4","FsiEQ","dispose","PTexi","iQSJj","values","set","mat","dWMmV","LcLtz","wrapS","SazKf","wRPTj","markerLayer","YOtBU","viewchange","WkHiK","dCSVW","scene","topLogoRotation","clientWidth","./www.wxb3d.com/park-edit/model/","zyLOe","faceline","blue","cBKDP","initMarker","FJoiU","ARukm","color","number","options","topMapSize","http","castShadow","worldUnits","pStxz","#049EF4","createLine","#477df5","mapObject","wQPeV","OjJgu","NsLGk","polygon-","hidePolygon","circleInstanceMesh","isPass","eiZSJ","isMesh","minFilter","BpTzl","fnRbl","//www.wxb3d.com/park-edit/model/","KIRLG","goqnc","16623AzpATA","OKRcR","push","addCustomMarker","instanceRotation","SKdfm","floorModelAllLoaded","addBeacon","url","JFlzZ","1938834RKpPpn","NhBfX","__colorSpace","wfWOX","userData","3122iOMnVb","receiveShadow","700","texList","qvFDx"];return(E$x=function(){return t})()}function w$7(t=30){const e=p$1,n={RGhAp:function(t,e){return t*e},ejGuw:function(t,e){return t/e},Bavxa:function(t,e){return t<e}};let i=[],r=n[e(477)](n[e(518)](360,t),DEG2RAD),s=new Vector2(0,0),a=new Vector2(1,0);for(let o=0;n[e(661)](o,t);o++){let t=a[e(705)]()[e(447)](s,n[e(477)](o,r));i[e(382)](new Vector3(t.x,t.y,0))}return i}function N$x(t,e){const n=E$x();return(N$x=function(t,e){return n[t-=317]})(t,e)}function g$5(t,e,n){const i=p$1,r=new AnimationMixer(t),s=AnimationClip[i(497)](e,n);if(s){r[i(730)](s)[i(669)]()}return r}H$8();let U$3=class extends d$q{constructor(t,e){const n=p$1,i={SrcwJ:function(t,e){return t===e},trHZh:n(694),ZANTS:function(t,e){return t===e},oWEWK:n(570),pStxz:function(t,e){return t===e},SIWHi:function(t,e){return t!==e},zRQDs:function(t,e){return t+e},RQBfv:n(507),DevLK:function(t){return t()},YjuVL:n(586),juhqM:n(521),dnDwC:n(690),mAaDO:n(545),wRPTj:n(383),iQSJj:n(422)};super(),__publicField(this,_ka),__publicField(this,_ja),__publicField(this,_ia),__publicField(this,_ha),__publicField(this,_ga),__publicField(this,_fa,{}),__publicField(this,_ea,{}),__publicField(this,_da,{}),__publicField(this,_ca,!0),__publicField(this,_ba),__publicField(this,_aa),__publicField(this,_$),__publicField(this,__),__publicField(this,_Z,{[CrossType[p$1(614)]]:0,[CrossType[p$1(672)]]:255,[CrossType[p$1(548)]]:65280,[CrossType[p$1(579)]]:16711680}),__publicField(this,_Y),__publicField(this,_X,new Object3D),__publicField(this,_W,new Object3D),__publicField(this,_V,0),__publicField(this,_U,new Object3D),this[n(466)]=t,this[n(623)]=new Group$1,this[n(623)][n(394)][n(364)]=this,this[n(623)][n(434)]=i[n(609)],this[n(544)]=e;let r=this[n(544)][n(355)][n(728)]?new MeshBasicMaterial({transparent:!0,alphaTest:.1}):[new(this[n(544)][n(423)]?MeshStandardMaterial:MeshBasicMaterial)({transparent:!0,alphaTest:.1}),new MeshStandardMaterial({transparent:!0,alphaTest:.1})];this[n(680)]=new d$o(this[n(665)]({points:[{x:.5,y:.5,z:0},{x:.5,y:-.5,z:0},{x:-.5,y:-.5,z:0},{x:-.5,y:.5,z:0}],height:1}),r,{createEntities:!0}),this[n(680)][n(717)]=!0,this[n(370)]=new d$o(this[n(665)]({points:i[n(734)](w$7),height:1}),r,{createEntities:!0}),this[n(370)][n(717)]=!0,this[n(370)][n(493)]=this[n(680)][n(493)]=t[n(530)]||0,this[n(370)][n(714)]=this[n(680)][n(714)]=!1,this[n(680)][n(421)](),this[n(370)][n(421)](),this[n(623)][n(489)](this[n(680)],this[n(370)]),this[n(575)]=new MultipleLine,this[n(623)][n(489)](this[n(575)]),this[n(583)](t),this[n(350)](t),this[n(647)](t),(!debug||!this[n(544)][n(355)][n(728)])&&this[n(725)](),this[n(387)](),debug&&this[n(720)](),this[n(586)](),this[n(383)](),this[n(466)][n(589)]&&this[n(535)](),this[n(482)](),this[n(544)].on(i[n(416)],()=>{const t=n;(i[t(619)](this[t(544)][t(431)][t(513)],i[t(532)])||i[t(515)](this[t(544)][t(431)][t(513)],i[t(602)]))&&(this[t(623)][t(479)]=!0),this[t(586)]()}),this[n(544)].on(i[n(550)],()=>{var t;const e=n;(i[e(515)](this[e(544)][e(431)][e(513)],i[e(532)])||i[e(619)](this[e(544)][e(431)][e(513)],i[e(602)]))&&(this[e(623)][e(479)]=!0),null==(t=this[e(611)])||t[e(326)]()}),this[n(544)].on(i[n(467)],({floorId:t,marker:e})=>{const r=n;i[r(360)](t,this[r(466)].id)&&i[r(739)](e[r(589)],this[r(623)])&&(this[r(623)][r(489)](e),e[r(493)]=i[r(529)](this[r(466)][r(530)],1))}),this[n(544)].on(i[n(476)],()=>{this[n(545)]()}),this[n(544)].on(i[n(336)],()=>{this[n(383)]()}),this[n(544)].on(i[n(328)],t=>{this[n(422)](t)})}[(_ka=p$1(466),_ja=p$1(445),_ia=p$1(680),_ha=p$1(370),_ga=p$1(575),p$1(482))](){const t=p$1,e={fFuNU:t(706)};window[t(564)](e[t(688)],e=>{this[t(350)]()})}[(_fa=p$1(457),_ea=p$1(592),_da=p$1(687),_ca=p$1(516),p$1(738))](){const t=p$1,e={rKYcY:function(t){return t()},ESgTQ:t(321),Ebdsv:function(t,e){return t!==e},eCfxg:function(t,e){return t<=e},qliST:function(t,e,n,i){return t(e,n,i)},vNkuP:function(t,e,n){return t(e,n)},dIAjc:function(t,e){return t/e},hsEZm:function(t,e,n){return t(e,n)},EYPXM:t(339)};let n=new Vector3(0,0,-1),i=()=>{const i=t,r={lJSNh:e[i(626)],WkHiK:function(t,n){return e[i(413)](t,n)},XRZvm:function(t,n){return e[i(685)](t,n)},FBMpA:function(t,n,r,s){return e[i(638)](t,n,r,s)},JsHiE:function(t,n,r){return e[i(410)](t,n,r)},eeLNK:function(t,n){return e[i(595)](t,n)}};if(!this[i(623)][i(479)]||!this[i(623)][i(589)]||!this[i(516)])return;this[i(516)]=!1;const s=()=>{var t;const e=i,s={nsgYJ:function(t,e,n){return r[N$x(678)](t,e,n)},nqusx:function(t,e,n,i){return r[N$x(439)](t,e,n,i)}};let a=Object[e(329)](this[e(687)]),o=r[e(504)](this[e(544)][e(403)][e(664)][e(344)],2),c=r[e(504)](this[e(544)][e(403)][e(664)][e(320)],2);const l=(t,n,i)=>{const s=e,a=r[s(429)][s(577)]("|");let o=0;for(;;){switch(a[o++]){case"0":n[s(692)].z=i?1e-6:1;continue;case"1":this[s(457)][t.id][s(479)]=this[s(592)][t.id][s(479)]=i;continue;case"2":i=r[s(340)](i,void 0)?i:r[s(625)](t[s(506)],this[s(544)][s(654)][s(649)]());continue;case"3":this[s(457)][t.id][s(634)][s(544)](t=>{const e=s;t[e(479)]=i,t[e(581)]()});continue;case"4":n[s(479)]=!i;continue}break}};a[e(544)](t=>{const n=e;r[n(439)](l,t[n(394)][n(512)],t,!1)});let u=this[e(544)][e(538)][e(527)](this[e(544)][e(538)][e(660)]({x:o,y:c},[this[e(544)][e(538)][e(719)]])[0][e(555)][e(613)](1e3),n,a)[0],h=null==u?void 0:u[e(731)][e(394)][e(512)];if(h&&r[e(678)](l,h,u[e(731)]),this[e(544)][e(526)][e(539)][e(640)][e(637)]){let n=null==(t=this[e(544)][e(526)])?void 0:t[e(539)][e(640)][e(726)](t=>t[e(507)].id===this[e(466)].id)[e(544)](t=>t[e(555)]);a[e(544)](t=>{const i=e,r={AlwnW:function(t,e,n){return s[N$x(461)](t,e,n)}};if(n[i(584)](e=>{const n=i;return r[n(484)](pointInPolygon,e,t[n(394)][n(512)][n(633)])})){let e=t[i(394)][i(512)];s[i(715)](l,e,t,!0)}})}};e[i(426)](s),e[i(569)](setTimeout,()=>{const t=i;this[t(516)]=!0,e[t(426)](s)},300)};this[t(544)][t(654)].on(e[t(465)],i),e[t(426)](i)}async[p$1(725)](){const t=p$1,e={WlTHG:t(409),zwhEa:function(t,e){return t*e},HVCAT:function(t,e){return t/e},hWYWv:function(t,e){return t-e},ornqV:t(445)},{bgi:n}=this[t(466)];if(!n||!n[t(388)]||!n[t(525)])return;let i=100;const r=await texureLoader[t(658)](n[t(388)]);console[t(683)](e[t(485)],n[t(388)]),r[t(566)]=!0;const{image:s}=r;i=e[t(729)](e[t(523)](s[t(629)],s[t(418)]),100);const a=new(this[t(544)][t(423)]?MeshStandardMaterial:MeshBasicMaterial)({map:r,transparent:!0,depthWrite:!1,opacity:n[t(443)]}),o=new PlaneGeometry(100,i),c=new Mesh(o,a);this[t(623)][t(489)](c),this[t(445)]=c,n[t(723)]&&c[t(723)][t(565)](n[t(723)]),c[t(571)].z=n[t(571)]||0,n[t(692)]&&c[t(692)][t(487)](n[t(692)]),c[t(493)]=e[t(646)](this[t(466)][t(530)],1),c[t(394)][t(466)]=this[t(466)],c[t(434)]=e[t(528)],c[t(472)]=!0,this[t(544)][t(423)]&&(c[t(396)]=!0)}[(_ba=p$1(611),p$1(586))](){var t,e,n,i;const r=p$1,s={scFYb:r(536),fkcjv:function(t,e){return t===e},goqnc:r(591),cHOgR:r(363),cBKDP:r(483),Zcdgy:function(t,e){return t+e},PTexi:function(t,e){return t===e},FNXWh:r(694),XVTaK:r(570)};if(s[r(327)](this[r(544)][r(431)][r(513)],s[r(508)])||s[r(524)](this[r(544)][r(431)][r(513)],s[r(424)])){let e=null==(t=this[r(544)][r(526)])?void 0:t[r(539)][r(640)];!(null==e?void 0:e[r(637)])&&(this[r(623)][r(479)]=!0)}null==(e=this[r(611)])||e[r(326)](),this[r(611)]=new Group$1,null==(i=null==(n=this[r(544)][r(526)])?void 0:n[r(539)][r(652)][this[r(466)].id])||i[r(544)](t=>{var e,n;const i=r;let a=new RoadLine(t[i(544)](t=>new Vector3(t[i(555)].x,t[i(555)].y,0)),{bgc:t[0][i(371)]?s[i(556)]:s[i(524)](this[i(466)].id,this[i(544)][i(431)].id)?s[i(379)]:(null==(e=this[i(544)][i(355)][i(540)])?void 0:e[i(415)])||s[i(519)],color:s[i(349)],style:(null==(n=this[i(544)][i(355)][i(540)])?void 0:n[i(696)])||""},this[i(544)]);a[i(493)]=s[i(478)](t[0][i(507)][i(530)],1),this[i(611)][i(489)](a)}),this[r(623)][r(489)](this[r(611)])}[(_aa=p$1(510),p$1(535))](t=!1){var e;const n=p$1,i={tfmXk:n(397),wkVXO:n(317),xuyaa:n(631),wQPeV:n(348),lvNov:function(t,e){return t+e}};null==(e=this[n(510)])||e[n(326)]();let r=this[n(510)]=new TextSprite({text:this[n(466)][n(434)],vmap:this[n(544)],isCollision:!1,zIndex:999,fontWeight:i[n(682)],lineGap:.25,...t?{fontSize:22,fillStyle:i[n(458)],strokeStyle:i[n(458)],bgColor:i[n(662)]}:{fontSize:18,strokeWidth:.15,fillStyle:i[n(365)],strokeStyle:i[n(458)]}});const{position:s}=this[n(544)][n(496)](this[n(466)][n(512)][n(544)](t=>t[n(633)])[n(655)]());s.z+=2,r[n(723)][n(565)](s),r[n(493)]=i[n(552)](this[n(466)][n(530)],3),r[n(472)]=!0,this[n(623)][n(489)](r)}[p$1(593)](){var t;const e=p$1;null==(t=this[e(510)])||t[e(326)]()}[(_$=p$1(645),p$1(520))](t,e){const n=p$1,i={jagSj:n(363),ZFYDq:n(483),NeOnf:function(t,e){return t+e}};!this[n(645)]&&(this[n(645)]=new Group$1,this[n(623)][n(489)](this[n(645)]));let r=new RoadLine(t[n(544)](t=>new Vector3(t.x,t.y,0)),{bgc:e[n(415)]??i[n(488)],color:e[n(353)]??i[n(469)],style:e[n(696)]??"",width:e[n(560)]??void 0},this[n(544)]);return r[n(493)]=e[n(493)]||i[n(573)](this[n(466)][n(530)],1),this[n(645)][n(489)](r),r}[p$1(551)](t){const e=p$1,n={zyLOe:function(t,e,n,i){return t(e,n,i)}};!this[e(546)]&&(this[e(546)]=new Group$1,this[e(623)][e(489)](this[e(546)]));let i={group:this[e(466)].id,...t,vmap:this[e(544)]},r=i[e(616)]?new TextSprite(i):new Sprite(new SpriteMaterial({map:texureLoader[e(475)](i[e(442)],()=>{const t=e;n[t(346)](setSize,r,i[t(692)]||1,this[t(544)][t(462)])}),sizeAttenuation:!1,depthTest:!1,transparent:!0}));return r[e(686)][e(544)]&&(r[e(686)][e(544)][e(374)]=LinearFilter),r[e(428)][e(330)](.5,0),i[e(692)]&&r[e(692)][e(487)](i[e(692)]),i[e(723)]&&r[e(723)][e(565)](i[e(723)]),r[e(493)]=i[e(493)]||0,r[e(394)][e(466)]=i,this[e(546)][e(489)](r),r}[p$1(653)](t){const e=p$1;!this[e(546)]&&(this[e(546)]=new Group$1,this[e(623)][e(489)](this[e(546)]));const n=new CSS2DObject(t);return n[e(428)][e(330)](.5,.5),this[e(546)][e(489)](n),n}[(__=p$1(546),p$1(383))](){const t=p$1,e={fnRbl:function(t,e,n,i){return t(e,n,i)}};this[t(466)][t(533)]&&(!this[t(546)]&&(this[t(546)]=new Group$1,this[t(623)][t(489)](this[t(546)])),this[t(466)][t(533)][t(544)](n=>{const i=t;if((n[i(442)]||n[i(616)])&&!this[i(546)][i(736)][i(584)](t=>t[i(394)][i(466)].id===n.id)){let t={group:this[i(466)].id,...n,vmap:this[i(544)]},r=t[i(616)]?new TextSprite(t):new Sprite(new SpriteMaterial({map:texureLoader[i(475)](t[i(442)],()=>{const n=i;e[n(376)](setSize,r,t[n(692)]||1,this[n(544)][n(462)])}),sizeAttenuation:!1,depthTest:!1,transparent:!0}));r[i(686)][i(544)]&&(r[i(686)][i(544)][i(374)]=LinearFilter),r[i(428)][i(330)](.5,0),t[i(692)]&&r[i(692)][i(487)](t[i(692)]),t[i(723)]&&r[i(723)][i(565)](t[i(723)]),r[i(493)]=t[i(493)]||9999,r[i(394)][i(466)]=t,this[i(546)][i(489)](r)}}))}[p$1(422)](t){var e,n;const i=p$1;null==(n=null==(e=this[i(546)])?void 0:e[i(736)][i(584)](e=>e[i(394)][i(466)].id===t))||n[i(326)]()}[p$1(545)](){var t;const e=p$1;null==(t=this[e(546)])||t[e(326)](),this[e(546)]=void 0}[p$1(319)](t){const e=p$1;return this[e(568)][e(736)][e(584)](n=>{var i;return(null==(i=n[e(394)][e(635)])?void 0:i.id)===t})}[p$1(596)](t){var e,n;const i=p$1;return Object[i(329)](this[i(457)])[i(655)]()[i(584)](e=>{var n;return(null==(n=e[i(394)][i(512)])?void 0:n.id)===t})||this[i(561)][i(736)][i(584)](e=>{var n;return(null==(n=e[i(394)][i(512)])?void 0:n.id)===t})||(null==(e=this[i(680)][i(667)])?void 0:e[i(584)](e=>{var n;return(null==(n=e[i(394)][i(512)])?void 0:n.id)===t}))||(null==(n=this[i(370)][i(667)])?void 0:n[i(584)](e=>{var n;return(null==(n=e[i(394)][i(512)])?void 0:n.id)===t}))}[p$1(641)](t){const e=p$1;return Object[e(329)](this[e(592)])[e(655)]()[e(584)](n=>{var i;return(null==(i=n[e(394)][e(512)])?void 0:i.id)===t})||this[e(453)][e(736)][e(584)](n=>{var i;return(null==(i=n[e(394)][e(512)])?void 0:i.id)===t})}[p$1(387)](){const t=p$1,e={QPPyf:t(348),UZhXU:t(317)};if(!debug||!localStorage[t(449)])return;let n=this[t(544)][t(431)][t(436)][t(726)](e=>e[t(657)]===this[t(466)].id),i=this.bc=this.bc||new Object3D;this[t(623)][t(489)](i),n[t(544)](n=>{const r=t;let s=new TextSprite({vmap:this[r(544)],text:n.id,fillStyle:e[r(663)],strokeStyle:e[r(490)],lineGap:.25,strokeWidth:.15,isCollision:!1,fontSize:10});s[r(723)][r(565)](n)[r(613)](0),i[r(489)](s),s[r(493)]=renderOrderConfig[r(670)]})}[(_Z=p$1(406),_Y=p$1(572),p$1(720))](){const t=p$1,e={vtQDL:function(t,e){return t>e},BlVNO:function(t,e,n){return t(e,n)},XblEs:function(t,e){return t+e},cHaEk:function(t,e,n){return t(e,n)}};if(this[t(572)]&&this[t(572)][t(326)](),!debug||!localStorage[t(720)])return;let n=this[t(572)]=new MultipleLine;function i(n,i){return e[t(500)](n,i)?n+","+i:i+","+n}n[t(686)][t(742)]=!1,n[t(686)][t(605)]=!1,n[t(686)][t(630)]=!0,n[t(493)]=1111111,n[t(723)].z=.1;let r=this[t(544)][t(431)][t(704)][t(726)](e=>e[t(657)]===this[t(466)].id),s={};r[t(544)](a=>{const o=t;for(const t in a[o(702)]){if(EnterType[a[o(702)][t]])continue;let c=r[o(584)](e=>+t===+e.id);if(!c||s[e[o(441)](i,a.id,c.id)])continue;let l=+a[o(702)][c.id],u=+c[o(702)][a.id],h=e[o(582)](this[o(406)][l]||6710886,this[o(406)][u]||6710886);s[e[o(417)](i,a.id,c.id)]=1,n[o(618)]([a,c],h,.5)}}),n[t(430)](),this[t(623)][t(489)](n)}[(_X=p$1(561),p$1(583))](t=this[p$1(466)]){const e=p$1,n={ZWBCg:function(t,e){return t>e},NhBfX:function(t,e){return t(e)},qYpWE:function(t,e){return t>=e},KOSor:e(600),ivlzR:function(t,e,n){return t(e,n)},qioBs:function(t){return t()},HVdXU:e(722)};C$9[e(544)](t=>t[e(712)]=!0);let i=0;this[e(561)][e(434)]=n[e(486)],this[e(623)][e(489)](this[e(561)]);const r=()=>{const r=e,s={oQMdg:function(t,e){return n[N$x(639)](t,e)},RmKzE:function(t,e){return n[N$x(391)](t,e)}};n[r(404)](++i,t[r(512)][r(637)])&&(this[r(713)](n[r(574)]),this[r(575)][r(430)](),n[r(636)](setTimeout,()=>{const t=r;C$9[t(544)](e=>e[t(712)]=!1)},100),Object[r(329)](this[r(687)])[r(637)]&&n[r(636)](setTimeout,()=>{this[r(738)]()},100),this[r(544)][r(355)][r(728)]&&Object[r(329)](a$a)[r(544)](t=>{const e=r;if(s[e(543)](t[e(549)][e(637)],1)){let n=s[e(668)](mergeGeometries,t[e(549)][e(544)](t=>{const n=e;return t[n(514)][n(531)](0,0,t[n(723)].z),t[n(514)]})),i=new Mesh(n,t);i[e(493)]=t[e(549)][0][e(394)][e(512)][e(589)][e(530)]||0,this[e(561)][e(489)](i),t[e(549)][e(544)](t=>t[e(402)]())}}))};this[e(425)](),t[e(512)][e(544)](t=>{const i=e;n[i(639)](t[i(633)][i(637)],1)?n[i(636)](setTimeout,()=>{const e=i;this[e(622)](t),n[e(681)](r)},0):n[i(681)](r)})}[p$1(425)](){const t=p$1,e={dWMmV:function(t,e){return t+e},xUUzU:function(t,e){return t+e},jNBbd:function(t,e){return t+e},qvFDx:function(t,e){return t===e},qrOCa:t(354),wfWOX:function(t,e){return t(e)},DVCzs:t(743)};let n={};this[t(466)][t(512)][t(726)](e=>e[t(744)]===t(347)&&!e[t(498)])[t(544)](i=>{const r=t;let s=e[r(332)](e[r(700)](e[r(603)](e[r(700)]("",i[r(471)]),i[r(356)]),i[r(452)]),i[r(353)]),a=n[s]=n[s]||{mat:null,geos:[]};if(!a[r(331)]){let t=null;i[r(471)]&&(t=texureLoader[r(475)](i[r(471)]),t[r(334)]=t[r(620)]=RepeatWrapping,i[r(356)]&&(e[r(399)](typeof i[r(356)],e[r(407)])&&(i[r(356)]=new Vector2(i[r(356)],i[r(356)])),t[r(427)][r(565)](i[r(356)])),t[r(571)]=i[r(452)]||0),a[r(331)]=new MeshBasicMaterial({transparent:!0,color:i[r(353)],opacity:1,side:2,map:t})}var o=new PathPointList;let c=new Vector3(0,0,0);c[i.up||"z"]=1,i[r(633)][r(544)](t=>t.z=0),o[r(330)](i[r(633)],i[r(604)]||.5,i[r(400)]||10,c,!1);var l=new PathGeometry;l[r(684)](o,{width:i[r(492)],arrow:!1}),i[r(505)]&&l[r(531)](0,0,i[r(505)]),a[r(502)][r(382)](l)});for(const i in n){let r=e[t(393)](mergeGeometries,n[i][t(502)]),s=new Mesh(r,this[t(544)][t(355)][t(728)]?new MeshBasicMaterial({color:e[t(444)]}):n[i][t(331)]);s[t(493)]=this[t(466)][t(530)]||0,s[t(472)]=!0,this[t(561)][t(489)](s)}}[p$1(622)](t){const e=p$1,n={ypvyg:function(t,e){return t+e},QdGmz:function(t,e){return t(e)},YOtBU:e(559),QxYlr:e(432),meEft:function(t,e){return t===e},cENQe:e(590),JvVoP:function(t,e){return t===e},TlTQA:e(347),NazDk:function(t,e){return t===e},fGijR:e(323),XpgFv:e(597),iQmWU:e(438),FJoiU:e(457)};let i=(new Vector3)[e(565)](t[e(633)][0]),r="";t[e(633)][e(544)](s=>{const a=e;let o=(new Vector3)[a(565)](s)[a(607)](i);o.x=+o.x[a(459)](3),o.y=+o.y[a(459)](3),o.z=+o.z[a(459)](3),r+=n[a(547)](o[a(679)]()[a(628)](),n[a(541)](String,t[a(503)]))});let s=new Object3D;n[e(612)](t[e(744)],n[e(666)])?s=this[e(362)](t):n[e(735)](t[e(744)],n[e(420)])?t[e(498)]&&(s=this[e(414)](t)):t[e(642)]?s=this[e(732)](t):n[e(522)](t[e(495)],n[e(693)])?this[e(680)][e(322)](1,(i,r)=>{const a=e,o=n[a(338)][a(577)]("|");let c=0;for(;;){switch(o[c++]){case"0":i[a(703)](t[a(384)]);continue;case"1":i[a(723)][a(565)](t[a(428)])[a(613)](t[a(505)]||0);continue;case"2":this[a(680)][a(394)][a(740)]=this[a(680)][a(394)][a(740)]||[];continue;case"3":i[a(443)]=t[a(443)]||1;continue;case"4":i[a(692)][a(565)](t[a(727)]);continue;case"5":i[a(581)]();continue;case"6":i[a(394)]=i[a(394)]||{};continue;case"7":this[a(680)][a(394)][a(740)][a(382)](t);continue;case"8":i[a(353)]=new Color(t[a(659)]||t[a(353)]);continue;case"9":i[a(394)][a(512)]=t;continue;case"10":s=i;continue;case"11":i[a(717)]=!0;continue}break}}):n[e(735)](t[e(495)],n[e(433)])?this[e(370)][e(322)](1,(i,r)=>{const a=e,o=n[a(451)][a(577)]("|");let c=0;for(;;){switch(o[c++]){case"0":i[a(394)][a(512)]=t;continue;case"1":i[a(723)][a(565)](t[a(428)])[a(613)](t[a(505)]||0);continue;case"2":i[a(443)]=t[a(443)]||1;continue;case"3":s=i;continue;case"4":i[a(394)]=i[a(394)]||{};continue;case"5":i[a(717)]=!0;continue;case"6":i[a(692)][a(565)](t[a(727)]);continue;case"7":i[a(353)]=new Color(t[a(659)]||t[a(353)]);continue;case"8":this[a(370)][a(394)][a(740)][a(382)](t);continue;case"9":this[a(370)][a(394)][a(740)]=this[a(370)][a(394)][a(740)]||[];continue;case"10":i[a(581)]();continue}break}}):s=this[e(707)](t,r),t[e(632)]&&this[e(575)][e(618)](t[e(633)],t[e(632)],n[e(547)](n[e(547)](t[e(503)]||1,t[e(505)]||0),.001)),this[e(587)](t,s),t[e(506)]&&(this[e(687)][t.id]=s);let a=t[e(498)]&&this[e(544)][e(697)](t[e(498)]);if(t[e(498)]&&(null==a?void 0:a[e(506)])){if(!this[e(457)][t[e(498)]]){const i=n[e(408)][e(577)]("|");let r=0;for(;;){switch(i[r++]){case"0":this[e(457)][t[e(498)]][e(634)]=[];continue;case"1":this[e(457)][t[e(498)]][e(479)]=!1;continue;case"2":this[e(561)][e(489)](this[e(457)][t[e(498)]]);continue;case"3":this[e(457)][t[e(498)]]=new Object3D;continue;case"4":this[e(457)][t[e(498)]][e(434)]=n[e(351)];continue;case"5":this[e(457)][t[e(498)]][e(394)][e(512)]=a;continue}break}}s[e(699)]?this[e(457)][t[e(498)]][e(634)][e(382)](s):this[e(457)][t[e(498)]][e(489)](s)}else!s[e(699)]&&this[e(561)][e(489)](s)}[p$1(587)](t,e){const n=p$1,i={RmoZT:function(t,e){return t*e},SazKf:function(t,e){return t*e},pYQWY:function(t,e){return t+e}};let r=t[n(562)];if(r){let s=t[n(675)]||1;texureLoader[n(475)](r,r=>{const a=n;let o=r[a(405)][a(560)],c=r[a(405)][a(503)],l=new PlaneGeometry(i[a(674)](o,s),i[a(335)](c,s),1),u=new MeshBasicMaterial({map:r,side:FrontSide,transparent:!0,depthTest:!0,depthWrite:!0}),h=new Mesh(l,u);h[a(723)][a(565)](t[a(428)]),t[a(455)]&&(h[a(723)].x+=t[a(455)].x,h[a(723)].y+=t[a(455)].y),h[a(723)].z=i[a(558)](i[a(558)](t[a(503)]||0,t[a(505)]||0),.01),h[a(571)].z=t[a(343)]||0,e[a(489)](h)})}}[p$1(665)](t){const e=p$1,n=new Shape;n[e(542)](t[e(633)]);const i={curveSegments:1,steps:1,depth:t[e(503)],bevelEnabled:!1},r=new ExtrudeGeometry(n,i);return r[e(695)](),r}[p$1(362)](t){const e=p$1;let n=new PolygonLine(t[e(633)],{linewidth:t[e(492)],color:t[e(353)],dashed:t[e(676)],dashScale:t[e(650)],worldUnits:t[e(359)],depthTest:!1,keepDashSize:t[e(671)]},this[e(544)]);return n[e(394)][e(512)]=t,n[e(493)]=t[e(589)][e(530)]||0,n[e(723)].z=t[e(505)]||0,n[e(479)]=!t[e(369)],n}[p$1(414)](t){const e=p$1,n={WNOUe:function(t,e){return t===e},LcLtz:e(354)};let i=null;t[e(471)]&&(i=texureLoader[e(475)](t[e(471)]),i[e(334)]=i[e(620)]=RepeatWrapping,t[e(356)]&&(n[e(448)](typeof t[e(356)],n[e(333)])&&(t[e(356)]=new Vector2(t[e(356)],t[e(356)])),i[e(427)][e(565)](t[e(356)])),i[e(571)]=t[e(452)]||0);let r=new MeshBasicMaterial({transparent:!0,color:t[e(353)],opacity:1,side:2,map:i});var s=new PathPointList;let a=new Vector3(0,0,0);a[t.up||"z"]=1,t[e(633)][e(544)](t=>t.z=0),s[e(330)](t[e(633)],t[e(604)]||.5,t[e(400)]||10,a,!1);var o=new PathGeometry;o[e(684)](s,{width:t[e(492)],arrow:!1});let c=new Mesh(o,r);return c[e(394)][e(512)]=t,c[e(493)]=t[e(589)][e(530)]||0,c[e(723)].z=t[e(505)]||0,c[e(479)]=!t[e(369)],c}[p$1(411)](t){const e=p$1,n=new Shape;return n[e(542)](t[e(633)]),new ShapeGeometry(n)}[p$1(732)](t){const e=p$1,n={trmxp:function(t,e){return t!==e},FsiEQ:e(361),SAlxY:function(t,e){return t+e},OKRcR:e(368),KIRLG:e(708)};let i=new d$l(this[e(411)](t),{textureWidth:512,textureHeight:512,waterNormals:texureLoader[e(475)](d$p,function(t){const n=e;t[n(334)]=t[n(620)]=RepeatWrapping,t[n(392)]=NoColorSpace}),distortionScale:3.7,fog:n[e(624)](this[e(544)][e(342)][e(481)],void 0),waterColor:t[e(353)]||n[e(325)]});return i[e(394)].id=t.id,i[e(434)]=n[e(578)](n[e(381)],t.id),i[e(394)][e(553)]=n[e(378)],i[e(723)].z=t[e(505)]||0,i[e(479)]=!t[e(369)],C$9[e(382)](i),i}[p$1(707)](t,e){var n,i,r,s;const a=p$1,o={DDmPD:function(t,e){return t+e},SMuOL:function(t,e){return t+e},tFTQd:function(t,e){return t+e},VXjNG:function(t,e){return t+e},kjoXy:function(t,e){return t+e},IcQzJ:function(t,e){return t+e},eiZSJ:function(t,e){return t+e},oWulT:a(483),NsLGk:a(470),smenX:function(t,e){return t!==e},ARukm:function(t,e){return t===e},MjuIy:a(354),tMoso:function(t,e){return t===e},tMbun:function(t,e){return t<e},yZBCt:a(743),ZnXHh:a(691)};let c=o[a(454)](o[a(580)](o[a(554)](o[a(601)](o[a(608)](o[a(318)](o[a(554)](o[a(372)](t[a(659)]||t[a(353)]||o[a(643)],t[a(471)]),null==(n=t[a(356)])?void 0:n.x),null==(i=t[a(356)])?void 0:i.y),t[a(651)]),null==(r=t[a(698)])?void 0:r.x),null==(s=t[a(698)])?void 0:s.y),t[a(443)]),t[a(369)]);c=t[a(369)]?o[a(367)]:c;let l,u=a$a[c],h=o[a(610)](t[a(443)],void 0)?t[a(443)]:1;if(!u){let e=null;t[a(471)]&&(e=texureLoader[a(475)](t[a(471)]),e[a(334)]=e[a(620)]=RepeatWrapping,t[a(356)]&&(o[a(352)](typeof t[a(356)],o[a(716)])&&(t[a(356)]=new Vector2(t[a(356)],t[a(356)])),e[a(427)][a(565)](t[a(356)])),e[a(571)]=t[a(452)]||0);let n=null;t[a(651)]&&(n=texureLoader[a(475)](t[a(651)]),n[a(334)]=n[a(620)]=RepeatWrapping,t[a(698)]&&(o[a(534)](typeof t[a(698)],o[a(716)])&&(t[a(698)]=new Vector2(t[a(698)],t[a(698)])),n[a(427)][a(565)](t[a(698)])),n[a(571)]=t[a(464)]||0),l=new(this[a(544)][a(423)]?MeshStandardMaterial:MeshBasicMaterial)({color:t[a(659)]||t[a(353)]||(this[a(544)][a(355)][a(728)]?o[a(689)](t[a(633)][a(637)],50)?o[a(737)]:o[a(412)]:""),transparent:!0,map:this[a(544)][a(355)][a(728)]?null:e,alphaTest:.1,opacity:h});let i=new MeshStandardMaterial({color:new Color(t[a(659)]||t[a(353)]||o[a(643)]),map:n,transparent:!0,alphaTest:.1,opacity:h});u=a$a[c]=this[a(544)][a(355)][a(728)]?l:[l,i],a$a[c][a(511)]=0,a$a[c][a(549)]=[]}!n$9[e]&&(n$9[e]={geo:this[a(665)](t),v3:t[a(633)][0]});let d=new Mesh(n$9[e][a(617)],u);return!t[a(369)]&&!t[a(434)]&&!t[a(506)]&&a$a[c][a(549)][a(382)](d),this[a(544)][a(355)][a(728)]?delete n$9[e]:d[a(723)][a(565)](t[a(633)][0])[a(607)](n$9[e].v3),d[a(394)][a(512)]=t,d[a(493)]=t[a(589)][a(530)]||0,d[a(723)].z=t[a(505)]||0,this[a(544)][a(423)]&&(d[a(396)]=d[a(358)]=!0),d[a(479)]=!t[a(369)],d[a(717)]=!0,d}[(_W=p$1(453),p$1(350))](t=this[p$1(466)]){const e=p$1,n={rdoiY:function(t,e){return t===e},dCSVW:e(446),qlEOA:function(t,e,n){return t(e,n)},bAAaH:e(337)};this[e(453)][e(434)]=n[e(501)],this[e(623)][e(489)](this[e(453)]);const i=[];this[e(623)][e(718)](t=>{const r=e;n[r(473)](t[r(394)][r(553)],n[r(341)])&&i[r(382)](t)}),i[e(721)](t=>t[e(326)]()),t[e(512)][e(544)](t=>{const i=e;n[i(709)](setTimeout,()=>{const e=i;!t[e(499)]&&t[e(434)]&&this[e(621)](t)},0)})}[(_V=p$1(419),p$1(621))](t){var e,n;const i=p$1,r={PUOVS:i(317),QZDld:i(468),FcxPj:i(710),SKdfm:function(t,e){return t+e},teGtp:function(t,e){return t+e},BpTzl:i(446),poqqD:i(592)};if(!t[i(434)])return;let s;for(const o in b$b[i(398)])if(t[i(434)][i(494)](o)){s=b$b[i(398)][o];break}let a=new TextSprite({vmap:this[i(544)],text:(null==(e=t[i(463)])?void 0:e[window[i(701)]])||t[i(434)],bgColor:"",strokeStyle:r[i(480)],src:t[i(677)]||s,zIndex:t[i(599)]||0,fontSize:t[i(585)],fontWeight:isPc?t[i(606)]?700:500:700,lineGap:.25,fontFamily:r[i(440)],strokeWidth:.15,group:t[i(498)]||t[i(589)].id,fillStyle:t[i(644)]||r[i(460)]});a[i(493)]=r[i(385)](t[i(589)][i(530)],3),a[i(723)][i(565)](t[i(428)]),a[i(723)].z=r[i(435)](t[i(503)]||0,t[i(505)]||0),a[i(394)][i(553)]=r[i(375)],a[i(394)][i(512)]=t,a[i(472)]=!0,t[i(498)]&&(null==(n=this[i(544)][i(697)](t[i(498)]))?void 0:n[i(506)])?(!this[i(592)][t[i(498)]]&&(this[i(592)][t[i(498)]]=new Object3D,this[i(592)][t[i(498)]][i(479)]=!1,this[i(592)][t[i(498)]][i(434)]=r[i(563)],this[i(453)][i(489)](this[i(592)][t[i(498)]])),this[i(592)][t[i(498)]][i(489)](a)):this[i(453)][i(489)](a)}[(_U=p$1(568),p$1(647))](t=this[p$1(466)]){const e=p$1,n={JFlzZ:function(t,e){return t<=e},mUxYY:e(386),vfDLb:e(517)};let i=t[e(635)][e(637)];this[e(568)][e(434)]=n[e(711)],this[e(623)][e(489)](this[e(568)]),!this[e(544)][e(355)][e(728)]&&t[e(635)][e(544)](r=>{const s=e;this[s(733)](r,()=>{const e=s;n[e(389)](--i,0)&&(this[e(544)][e(713)](n[e(673)],t),this[e(713)](n[e(673)],t))})})}[p$1(733)](t,e){const n=p$1,i={seppZ:function(t,e){return t+e},hpQpx:n(324),pRezU:function(t,e){return t(e)},OjJgu:function(t,e,n,i){return t(e,n,i)},FBzpf:n(357),rSxjF:function(t,e){return t!==e},lxbDt:n(437)};let r=o$6[t[n(388)]];const s=r=>{const s=n,a=i[s(741)][s(577)]("|");let o=0;for(;;){switch(a[o++]){case"0":r[s(394)][s(724)]=!0;continue;case"1":r[s(718)](t=>{var e;const n=s;t[n(686)]&&(t[n(493)]=i[n(509)](this[n(466)][n(530)],2),t[n(373)]&&(null==(e=t[n(514)])||e[n(695)]()))});continue;case"2":t[s(692)]&&r[s(692)][s(565)](t[s(692)]);continue;case"3":this[s(568)][s(489)](r);continue;case"4":e&&i[s(456)](e,this);continue;case"5":r[s(434)]=t[s(388)];continue;case"6":r[s(394)][s(635)]=t;continue;case"7":t[s(723)]&&r[s(723)][s(565)](t[s(723)]);continue;case"8":t[s(571)]&&r[s(571)][s(565)](t[s(571)]);continue}break}};if(r)r=r[n(705)](),i[n(456)](s,r);else{let e="";e=t[n(388)][n(494)](i[n(557)])?t[n(388)]:i[n(474)](b$b[n(594)][n(576)](i[n(557)]),0)?t[n(388)][n(494)](i[n(648)])?"./"+t[n(388)]:n(345)+t[n(388)]:n(377)+t[n(388)],gltfLoader[n(475)](e,e=>{const r=n,{scene:a,animations:o}=e;this[r(544)][r(423)]&&a[r(718)](t=>{const e=r;t[e(396)]=t[e(358)]=!0}),o[r(637)]&&u$8[r(382)](i[r(366)](g$5,a,o,o[0][r(434)])),i[r(456)](s,a),o$6[t[r(388)]]=a})}}};function E$w(){const t=["5|7|8|2|1|6|3|4|0","GiMIq","bboxView","removeOtherBuild","IpgjS","Out","7368IfXVNv","indexOf","remove","JOLhA","default","navi","mapObject","manyFloorMode","JfmpX"," 的楼层","setZ","WynNC","DWIrt","403620nNbTyo","YDDaR","renderOrder","children","addDefaultFloor","irUyQ","jyIkB","switchFloor: 找不到 id:","name","mapId","parent","length","sort","setView","error","crossFloorLine","CEKjM","recoverAmapFeatures","CmAFd","addCrossFloorNaviLine","10755680lFQijk","build","amap","156hAzODH","floor","cvsaG","36mFHOAb","find","uYgJU","push","PNLBM","mobileView","rzWWg","284eLjHAj","removeNaviLine","getMapDataById","view","mapData","removeFromParent","addFromChildrnPool","DgtPt","floorHeight","1716622714522963968","getFloorById","Qxkpl","npmzy","kePnw","split","addFloor","#477df5","childrenPool","lVzwi","data","3279592ZpoFQX","1716622714522963969","1421440wXQvHS","object3d","addNaviLine","dispose","FVZKe","map","142985cBGjTc","add","setCenter","startEnd","1033588moRMuQ","removeAmapFeatures","OyjBz","zDvyy","setManyFloorMode","curentFloor","HfvTs","isSimulate","slice","start","cxTVy","isNavi","handleMarkerCollision","removeFloor","addFloorTitle","point","status","manyFloorStartFloor","switchFloor","lnglat","Quadratic","recoverOtherBuild","log","userData","visible","setOneFloorMode","vKpsa","options","easing","position","route"];return(E$w=function(){return t})()}const e$5=N$w;function N$w(t,e){const n=E$w();return(N$w=function(t,e){return n[t-=241]})(t,e)}!function(t,e){const n=N$w,i=t();for(;;)try{if(571396===-parseInt(n(354))/1+-parseInt(n(322))/2*(-parseInt(n(276))/3)+parseInt(n(342))/4+parseInt(n(350))/5*(parseInt(n(312))/6)+parseInt(n(289))/7+-parseInt(n(344))/8*(-parseInt(n(315))/9)+-parseInt(n(309))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$w);let x$9=class extends d$q{constructor(t,e){var n=(...t)=>(super(...t),__publicField(this,_qa),__publicField(this,_pa),__publicField(this,_oa,!1),__publicField(this,_na),__publicField(this,_ma,[]),__publicField(this,_la),this);const i=e$5,r={irUyQ:i(270),JOLhA:i(323),cxTVy:i(346),FVZKe:i(310)},s=r[i(294)][i(336)]("|");let a=0;for(;;){switch(s[a++]){case"0":this[i(349)].on(r[i(279)],()=>{var t;const e=i;null==(t=this[e(304)])||t[e(347)]()});continue;case"1":this[i(345)][i(262)][i(282)]=this;continue;case"2":this[i(345)]=new Group$1;continue;case"3":this[i(308)]();continue;case"4":this[i(349)].on(r[i(249)],()=>{this[i(308)]()});continue;case"5":n();continue;case"6":this[i(345)][i(297)]=r[i(348)];continue;case"7":this[i(341)]=t;continue;case"8":this[i(349)]=e;continue}break}}[(_qa=e$5(341),_pa=e$5(244),_oa=e$5(283),_na=e$5(256),_ma=e$5(292),e$5(293))](){const t=e$5;if(this[t(244)])return void(this[t(349)][t(255)][t(313)]=this[t(244)]);let e=this[t(341)][t(313)][t(316)](e=>e[t(280)])||this[t(341)][t(313)][0];e&&this[t(337)](e.id)}[(_la=e$5(304),e$5(308))](){var t,e,n;const i=e$5,r={zDvyy:function(t,e){return t!==e},lVzwi:function(t,e){return t<e},vKpsa:function(t,e){return t-e},npmzy:function(t,e){return t!==e},Qxkpl:i(338)};null==(t=this[i(304)])||t[i(347)]();let s=null==(n=null==(e=this[i(349)][i(281)])?void 0:e[i(255)])?void 0:n[i(269)];if(this[i(283)]&&(null==s?void 0:s[i(300)])&&!r[i(242)](this[i(349)][i(255)][i(310)],this)){this[i(304)]=new Group$1;for(let t=1;r[i(340)](t,s[i(300)]);t++){let e=s[r[i(265)](t,1)],n=s[t];if(!r[i(242)](e[i(313)][i(299)],this[i(341)])&&!r[i(242)](n[i(313)][i(299)],this[i(341)])&&r[i(334)](e[i(313)].id,n[i(313)].id)){console[i(261)](e[i(313)][i(297)],n[i(313)][i(297)]);let t=e,s=n,a=new PolygonLine([new Vector3(t[i(254)].x,t[i(254)].y,r[i(265)](t[i(313)][i(330)],this[i(256)][i(341)][i(330)])),new Vector3(s[i(254)].x,s[i(254)].y,r[i(265)](s[i(313)][i(330)],this[i(256)][i(341)][i(330)]))],{dashed:!0,dashScale:2,depthTest:!1,transparent:!0,opacity:.5,worldUnits:!1,keepDashSize:!0,color:r[i(333)],linewidth:5},this[i(349)]);a[i(291)]=renderOrderConfig[i(353)],this[i(304)][i(351)](a)}}this[i(345)][i(351)](this[i(304)])}}[e$5(337)](t){const e=e$5;if(this[e(292)][e(316)](n=>n[e(341)].id===t))return;let n=this[e(328)](t);if(!n){let i=this[e(341)][e(313)][e(316)](e=>e.id===t);i&&(n=new U$3(i,this[e(349)]),this[e(351)](n))}this[e(283)]?new Tween(n[e(345)][e(268)]).to({z:{cvsaG:function(t,e){return t-e}}[e(314)](n[e(341)][e(330)],this[e(256)][e(341)][e(330)])},300)[e(248)]():n[e(345)][e(268)][e(286)](0),!this[e(283)]&&(this[e(349)][e(255)][e(313)]=this[e(244)]=n),this[e(283)]&&this[e(292)][e(349)](t=>t[e(253)]&&t[e(253)](this[e(244)]===t))}[e$5(252)](t){const e=e$5;let n=this[e(292)][e(316)](n=>n[e(341)].id===t);n&&this[e(278)](n)}[e$5(257)](t){var e;const n=e$5,i={rzWWg:function(t,e){return t-e},DgtPt:function(t,e){return t===e},IpgjS:function(t){return t()},PNLBM:function(t){return t()},uYgJU:function(t,e,n){return t(e,n)}};let r=this[n(349)][n(324)](t);const s=()=>{const e=n;if(!this[e(283)])return;let s=this[e(292)][e(316)](n=>n[e(341)].id===t);if(!s)return console[e(303)](e(296)+t+e(285)),s;this[e(349)][e(255)][e(313)]=this[e(244)]=s,!this[e(349)][e(281)][e(255)][e(250)]&&!this[e(349)][e(281)][e(255)][e(246)]&&(new Tween(this[e(345)][e(268)]).to({z:i[e(321)](this[e(256)][e(341)][e(330)],s[e(341)][e(330)])},300)[e(267)](Easing[e(259)][e(275)])[e(248)](),this[e(349)][e(311)][e(352)](r[e(272)][e(258)],!1,300))};if(this[n(244)]&&i[n(329)](t,this[n(244)][n(341)].id))return i[n(274)](s),this[n(244)];if(i[n(319)](s),!this[n(283)]&&(this[n(244)]&&this[n(252)](this[n(244)][n(341)].id),this[n(337)](t),!this[n(349)][n(281)][n(255)][n(250)]&&!this[n(349)][n(281)][n(255)][n(246)])){const t=!isPc&&(null==(e=null==r?void 0:r[n(266)])?void 0:e[n(320)])||(null==r?void 0:r[n(325)]);this[n(349)][n(302)](t)}return i[n(317)](setTimeout,()=>{const t=n;this[t(349)][t(251)]()},0),this[n(283)]&&this[n(292)][n(349)](t=>t[n(253)]&&t[n(253)](this[n(244)]===t)),this[n(349)][n(255)][n(313)]=this[n(244)]}[e$5(243)](){const t=e$5,e={GiMIq:function(t,e){return t>=e},HfvTs:function(t,e){return t<=e},CmAFd:function(t,e){return t-e},WynNC:function(t,e){return t===e},kePnw:t(343),DWIrt:function(t,e){return t===e},OyjBz:t(331)};this[t(283)]||(this[t(256)]=this[t(244)],this[t(349)][t(255)][t(283)]=!0,this[t(349)][t(355)](),this[t(349)][t(273)](),this[t(283)]=!0,this[t(341)][t(313)][t(349)](e=>{this[t(337)](e.id)}),this[t(308)](),(e[t(287)](this[t(349)][t(326)][t(298)],e[t(335)])||e[t(288)](this[t(349)][t(326)][t(298)],e[t(241)]))&&this[t(292)][t(349)](n=>{var i;const r=t;n[r(345)][r(263)]=!this[r(349)][r(281)][r(255)][r(269)][r(300)];let s=null==(i=this[r(349)][r(281)])?void 0:i[r(255)][r(269)];if(!(null==s?void 0:s[r(300)]))return;let a=[...new Set(s[r(349)](t=>this[r(341)][r(313)][r(277)](t[r(313)])))][r(301)](),o=this[r(341)][r(313)][r(277)](n[r(341)]);n[r(345)][r(263)]=e[r(271)](o,a[0])&&e[r(245)](o,a[e[r(307)](a[r(300)],1)])}))}[e$5(264)](){var t;const e=e$5,n={CEKjM:function(t,e){return t!==e},YDDaR:function(t,e){return t===e},jyIkB:e(343),JfmpX:e(331)};(n[e(290)](this[e(349)][e(326)][e(298)],n[e(295)])||n[e(290)](this[e(349)][e(326)][e(298)],n[e(284)]))&&this[e(292)][e(349)](t=>t[e(345)][e(263)]=!0),this[e(283)]&&(this[e(345)][e(268)][e(286)](0),this[e(349)][e(255)][e(283)]=!1,this[e(349)][e(306)](),this[e(349)][e(260)](),this[e(283)]=!1,this[e(292)][e(247)]()[e(349)](t=>{const i=e;t[i(345)][i(268)][i(286)](0),n[i(305)](t[i(341)].id,this[i(244)][i(341)].id)&&t[i(327)]()}),null==(t=this[e(304)])||t[e(347)](),this[e(292)][e(349)](t=>t[e(253)]&&t[e(253)]()))}[e$5(332)](t){const e=e$5;let n=[...this[e(292)],...this[e(339)]][e(316)](n=>{var i;return(null==(i=n[e(341)])?void 0:i.id)===t});if(n)return n;{let i=this[e(341)][e(313)][e(316)](e=>e.id===t);if(i)return n=new U$3(i,this[e(349)]),this[e(339)][e(318)](n),n}}};function E$v(){var t=["cusSF","constructor","801572fPOiRq","108ZVTOej","27882AVNwlh","__esModule","FIqqN","YJyQH","undefined","2039436mXibKs","get","defineProperty","rAgoi","ecDix","call","forEach","prototype","2943372FQpnDm","hasOwnProperty","default","split","Eyfsf","23790NplPWX","154lgwpCD","apply","3304290EtHtmn","jSwpH","WrSBN","ndtje","length","construct","2|6|4|0|3|1|5","CAovM","333952HnyszE","getOwnPropertyDescriptor","keys","1737VfojgE","function"];return(E$v=function(){return t})()}var z$2=N$v;function N$v(t,e){var n=E$v();return(N$v=function(t,e){return n[t-=262]})(t,e)}!function(t,e){for(var n=N$v,i=t();;)try{if(982728===parseInt(n(280))/1+parseInt(n(282))/2*(parseInt(n(281))/3)+parseInt(n(295))/4+parseInt(n(265))/5+-parseInt(n(287))/6+-parseInt(n(263))/7*(parseInt(n(273))/8)+parseInt(n(276))/9*(-parseInt(n(262))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$v);var commonjsGlobal=typeof globalThis!==z$2(286)?globalThis:typeof window!==z$2(286)?window:typeof global!==z$2(286)?global:typeof self!==z$2(286)?self:{};function getDefaultExportFromCjs(t){var e=z$2,n={ndtje:e(297)};return t&&t[e(283)]&&Object[e(294)][e(296)][e(292)](t,n[e(268)])?t[n[e(268)]]:t}function commonjsRequire(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var jszip_min={exports:{}},module2;
/*!
JSZip v3.10.1 - A JavaScript class for generating and reading zip files
<http://stuartk.com/jszip>
(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.
JSZip uses the library pako released under the MIT license :
https://github.com/nodeca/pako/blob/main/LICENSE
*/module2=jszip_min,module2.exports=function t(e,n,i){function r(a,o){if(!n[a]){if(!e[a]){var c="function"==typeof commonjsRequire&&commonjsRequire;if(!o&&c)return c(a,!0);if(s)return s(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=n[a]={exports:{}};e[a][0].call(u.exports,function(t){return r(e[a][1][t]||t)},u,u.exports,t,e,n,i)}return n[a].exports}for(var s="function"==typeof commonjsRequire&&commonjsRequire,a=0;a<i.length;a++)r(i[a]);return r}({1:[function(t,e,n){var i=t("./utils"),r=t("./support"),s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";n.encode=function(t){for(var e,n,r,a,o,c,l,u=[],h=0,d=t.length,p=d,f="string"!==i.getTypeOf(t);h<t.length;)p=d-h,r=f?(e=t[h++],n=h<d?t[h++]:0,h<d?t[h++]:0):(e=t.charCodeAt(h++),n=h<d?t.charCodeAt(h++):0,h<d?t.charCodeAt(h++):0),a=e>>2,o=(3&e)<<4|n>>4,c=1<p?(15&n)<<2|r>>6:64,l=2<p?63&r:64,u.push(s.charAt(a)+s.charAt(o)+s.charAt(c)+s.charAt(l));return u.join("")},n.decode=function(t){var e,n,i,a,o,c,l=0,u=0,h="data:";if(t.substr(0,h.length)===h)throw new Error("Invalid base64 input, it looks like a data url.");var d,p=3*(t=t.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(t.charAt(t.length-1)===s.charAt(64)&&p--,t.charAt(t.length-2)===s.charAt(64)&&p--,p%1!=0)throw new Error("Invalid base64 input, bad content length.");for(d=r.uint8array?new Uint8Array(0|p):new Array(0|p);l<t.length;)e=s.indexOf(t.charAt(l++))<<2|(a=s.indexOf(t.charAt(l++)))>>4,n=(15&a)<<4|(o=s.indexOf(t.charAt(l++)))>>2,i=(3&o)<<6|(c=s.indexOf(t.charAt(l++))),d[u++]=e,64!==o&&(d[u++]=n),64!==c&&(d[u++]=i);return d}},{"./support":30,"./utils":32}],2:[function(t,e,n){var i=t("./external"),r=t("./stream/DataWorker"),s=t("./stream/Crc32Probe"),a=t("./stream/DataLengthProbe");function o(t,e,n,i,r){this.compressedSize=t,this.uncompressedSize=e,this.crc32=n,this.compression=i,this.compressedContent=r}o.prototype={getContentWorker:function(){var t=new r(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")),e=this;return t.on("end",function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),t},getCompressedWorker:function(){return new r(i.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(t,e,n){return t.pipe(new s).pipe(new a("uncompressedSize")).pipe(e.compressWorker(n)).pipe(new a("compressedSize")).withStreamInfo("compression",e)},e.exports=o},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(t,e,n){var i=t("./stream/GenericWorker");n.STORE={magic:"\0\0",compressWorker:function(){return new i("STORE compression")},uncompressWorker:function(){return new i("STORE decompression")}},n.DEFLATE=t("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(t,e,n){var i=t("./utils"),r=function(){for(var t,e=[],n=0;n<256;n++){t=n;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[n]=t}return e}();e.exports=function(t,e){return void 0!==t&&t.length?"string"!==i.getTypeOf(t)?function(t,e,n,i){var s=r,a=i+n;t^=-1;for(var o=i;o<a;o++)t=t>>>8^s[255&(t^e[o])];return-1^t}(0|e,t,t.length,0):function(t,e,n,i){var s=r,a=i+n;t^=-1;for(var o=i;o<a;o++)t=t>>>8^s[255&(t^e.charCodeAt(o))];return-1^t}(0|e,t,t.length,0):0}},{"./utils":32}],5:[function(t,e,n){n.base64=!1,n.binary=!1,n.dir=!1,n.createFolders=!0,n.date=null,n.compression=null,n.compressionOptions=null,n.comment=null,n.unixPermissions=null,n.dosPermissions=null},{}],6:[function(t,e,n){var i=null;i="undefined"!=typeof Promise?Promise:t("lie"),e.exports={Promise:i}},{lie:37}],7:[function(t,e,n){var i="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,r=t("pako"),s=t("./utils"),a=t("./stream/GenericWorker"),o=i?"uint8array":"array";function c(t,e){a.call(this,"FlateWorker/"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}n.magic="\b\0",s.inherits(c,a),c.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,t.data),!1)},c.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},c.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},c.prototype._createPako=function(){this._pako=new r[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},n.compressWorker=function(t){return new c("Deflate",t)},n.uncompressWorker=function(){return new c("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(t,e,n){function i(t,e){var n,i="";for(n=0;n<e;n++)i+=String.fromCharCode(255&t),t>>>=8;return i}function r(t,e,n,r,a,u){var h,d,p=t.file,f=t.compression,m=u!==o.utf8encode,g=s.transformTo("string",u(p.name)),A=s.transformTo("string",o.utf8encode(p.name)),y=p.comment,v=s.transformTo("string",u(y)),S=s.transformTo("string",o.utf8encode(y)),x=A.length!==p.name.length,b=S.length!==y.length,T="",I="",M="",E=p.dir,w=p.date,R={crc32:0,compressedSize:0,uncompressedSize:0};e&&!n||(R.crc32=t.crc32,R.compressedSize=t.compressedSize,R.uncompressedSize=t.uncompressedSize);var C=0;e&&(C|=8),m||!x&&!b||(C|=2048);var k,_,L,U=0,N=0;E&&(U|=16),"UNIX"===a?(N=798,U|=(k=p.unixPermissions,_=E,L=k,k||(L=_?16893:33204),(65535&L)<<16)):(N=20,U|=function(t){return 63&(t||0)}(p.dosPermissions)),h=w.getUTCHours(),h<<=6,h|=w.getUTCMinutes(),h<<=5,h|=w.getUTCSeconds()/2,d=w.getUTCFullYear()-1980,d<<=4,d|=w.getUTCMonth()+1,d<<=5,d|=w.getUTCDate(),x&&(I=i(1,1)+i(c(g),4)+A,T+="up"+i(I.length,2)+I),b&&(M=i(1,1)+i(c(v),4)+S,T+="uc"+i(M.length,2)+M);var F="";return F+="\n\0",F+=i(C,2),F+=f.magic,F+=i(h,2),F+=i(d,2),F+=i(R.crc32,4),F+=i(R.compressedSize,4),F+=i(R.uncompressedSize,4),F+=i(g.length,2),F+=i(T.length,2),{fileRecord:l.LOCAL_FILE_HEADER+F+g+T,dirRecord:l.CENTRAL_FILE_HEADER+i(N,2)+F+i(v.length,2)+"\0\0\0\0"+i(U,4)+i(r,4)+g+T+v}}var s=t("../utils"),a=t("../stream/GenericWorker"),o=t("../utf8"),c=t("../crc32"),l=t("../signature");function u(t,e,n,i){a.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=n,this.encodeFileName=i,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}s.inherits(u,a),u.prototype.push=function(t){var e=t.meta.percent||0,n=this.entriesCount,i=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,a.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:n?(e+100*(n-i-1))/n:100}}))},u.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var n=r(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:n.fileRecord,meta:{percent:0}})}else this.accumulate=!0},u.prototype.closedSource=function(t){this.accumulate=!1;var e,n=this.streamFiles&&!t.file.dir,s=r(t,n,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(s.dirRecord),n)this.push({data:(e=t,l.DATA_DESCRIPTOR+i(e.crc32,4)+i(e.compressedSize,4)+i(e.uncompressedSize,4)),meta:{percent:100}});else for(this.push({data:s.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},u.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e<this.dirRecords.length;e++)this.push({data:this.dirRecords[e],meta:{percent:100}});var n,r,a,o,c,u,h=this.bytesWritten-t,d=(n=this.dirRecords.length,r=h,a=t,o=this.zipComment,c=this.encodeFileName,u=s.transformTo("string",c(o)),l.CENTRAL_DIRECTORY_END+"\0\0\0\0"+i(n,2)+i(n,2)+i(r,4)+i(a,4)+i(u.length,2)+u);this.push({data:d,meta:{percent:100}})},u.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},u.prototype.registerPrevious=function(t){this._sources.push(t);var e=this;return t.on("data",function(t){e.processChunk(t)}),t.on("end",function(){e.closedSource(e.previous.streamInfo),e._sources.length?e.prepareNextSource():e.end()}),t.on("error",function(t){e.error(t)}),this},u.prototype.resume=function(){return!!a.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},u.prototype.error=function(t){var e=this._sources;if(!a.prototype.error.call(this,t))return!1;for(var n=0;n<e.length;n++)try{e[n].error(t)}catch(i){}return!0},u.prototype.lock=function(){a.prototype.lock.call(this);for(var t=this._sources,e=0;e<t.length;e++)t[e].lock()},e.exports=u},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(t,e,n){var i=t("../compressions"),r=t("./ZipFileWorker");n.generateWorker=function(t,e,n){var s=new r(e.streamFiles,n,e.platform,e.encodeFileName),a=0;try{t.forEach(function(t,n){a++;var r=function(t,e){var n=t||e,r=i[n];if(!r)throw new Error(n+" is not a valid compression method !");return r}(n.options.compression,e.compression),o=n.options.compressionOptions||e.compressionOptions||{},c=n.dir,l=n.date;n._compressWorker(r,o).withStreamInfo("file",{name:t,dir:c,date:l,comment:n.comment||"",unixPermissions:n.unixPermissions,dosPermissions:n.dosPermissions}).pipe(s)}),s.entriesCount=a}catch(o){s.error(o)}return s}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(t,e,n){function i(){if(!(this instanceof i))return new i;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var t=new i;for(var e in this)"function"!=typeof this[e]&&(t[e]=this[e]);return t}}(i.prototype=t("./object")).loadAsync=t("./load"),i.support=t("./support"),i.defaults=t("./defaults"),i.version="3.10.1",i.loadAsync=function(t,e){return(new i).loadAsync(t,e)},i.external=t("./external"),e.exports=i},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(t,e,n){var i=t("./utils"),r=t("./external"),s=t("./utf8"),a=t("./zipEntries"),o=t("./stream/Crc32Probe"),c=t("./nodejsUtils");function l(t){return new r.Promise(function(e,n){var i=t.decompressed.getContentWorker().pipe(new o);i.on("error",function(t){n(t)}).on("end",function(){i.streamInfo.crc32!==t.decompressed.crc32?n(new Error("Corrupted zip : CRC32 mismatch")):e()}).resume()})}e.exports=function(t,e){var n=this;return e=i.extend(e||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:s.utf8decode}),c.isNode&&c.isStream(t)?r.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):i.prepareContent("the loaded zip file",t,!0,e.optimizedBinaryString,e.base64).then(function(t){var n=new a(e);return n.load(t),n}).then(function(t){var n=[r.Promise.resolve(t)],i=t.files;if(e.checkCRC32)for(var s=0;s<i.length;s++)n.push(l(i[s]));return r.Promise.all(n)}).then(function(t){for(var r=t.shift(),s=r.files,a=0;a<s.length;a++){var o=s[a],c=o.fileNameStr,l=i.resolve(o.fileNameStr);n.file(l,o.decompressed,{binary:!0,optimizedBinaryString:!0,date:o.date,dir:o.dir,comment:o.fileCommentStr.length?o.fileCommentStr:null,unixPermissions:o.unixPermissions,dosPermissions:o.dosPermissions,createFolders:e.createFolders}),o.dir||(n.file(l).unsafeOriginalName=c)}return r.zipComment.length&&(n.comment=r.zipComment),n})}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(t,e,n){var i=t("../utils"),r=t("../stream/GenericWorker");function s(t,e){r.call(this,"Nodejs stream input adapter for "+t),this._upstreamEnded=!1,this._bindStream(e)}i.inherits(s,r),s.prototype._bindStream=function(t){var e=this;(this._stream=t).pause(),t.on("data",function(t){e.push({data:t,meta:{percent:0}})}).on("error",function(t){e.isPaused?this.generatedError=t:e.error(t)}).on("end",function(){e.isPaused?e._upstreamEnded=!0:e.end()})},s.prototype.pause=function(){return!!r.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!r.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},e.exports=s},{"../stream/GenericWorker":28,"../utils":32}],13:[function(t,e,n){var i=t("readable-stream").Readable;function r(t,e,n){i.call(this,e),this._helper=t;var r=this;t.on("data",function(t,e){r.push(t)||r._helper.pause(),n&&n(e)}).on("error",function(t){r.emit("error",t)}).on("end",function(){r.push(null)})}t("../utils").inherits(r,i),r.prototype._read=function(){this._helper.resume()},e.exports=r},{"../utils":32,"readable-stream":16}],14:[function(t,e,n){e.exports={isNode:"undefined"!=typeof Buffer,newBufferFrom:function(t,e){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(t,e);if("number"==typeof t)throw new Error('The "data" argument must not be a number');return new Buffer(t,e)},allocBuffer:function(t){if(Buffer.alloc)return Buffer.alloc(t);var e=new Buffer(t);return e.fill(0),e},isBuffer:function(t){return Buffer.isBuffer(t)},isStream:function(t){return t&&"function"==typeof t.on&&"function"==typeof t.pause&&"function"==typeof t.resume}}},{}],15:[function(t,e,n){function i(t,e,n){var i,r=s.getTypeOf(e),o=s.extend(n||{},c);o.date=o.date||new Date,null!==o.compression&&(o.compression=o.compression.toUpperCase()),"string"==typeof o.unixPermissions&&(o.unixPermissions=parseInt(o.unixPermissions,8)),o.unixPermissions&&16384&o.unixPermissions&&(o.dir=!0),o.dosPermissions&&16&o.dosPermissions&&(o.dir=!0),o.dir&&(t=m(t)),o.createFolders&&(i=f(t))&&g.call(this,i,!0);var h="string"===r&&!1===o.binary&&!1===o.base64;n&&void 0!==n.binary||(o.binary=!h),(e instanceof l&&0===e.uncompressedSize||o.dir||!e||0===e.length)&&(o.base64=!1,o.binary=!0,e="",o.compression="STORE",r="string");var A=null;A=e instanceof l||e instanceof a?e:d.isNode&&d.isStream(e)?new p(t,e):s.prepareContent(t,e,o.binary,o.optimizedBinaryString,o.base64);var y=new u(t,A,o);this.files[t]=y}var r=t("./utf8"),s=t("./utils"),a=t("./stream/GenericWorker"),o=t("./stream/StreamHelper"),c=t("./defaults"),l=t("./compressedObject"),u=t("./zipObject"),h=t("./generate"),d=t("./nodejsUtils"),p=t("./nodejs/NodejsStreamInputAdapter"),f=function(t){"/"===t.slice(-1)&&(t=t.substring(0,t.length-1));var e=t.lastIndexOf("/");return 0<e?t.substring(0,e):""},m=function(t){return"/"!==t.slice(-1)&&(t+="/"),t},g=function(t,e){return e=void 0!==e?e:c.createFolders,t=m(t),this.files[t]||i.call(this,t,null,{dir:!0,createFolders:e}),this.files[t]};function A(t){return"[object RegExp]"===Object.prototype.toString.call(t)}var y={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(t){var e,n,i;for(e in this.files)i=this.files[e],(n=e.slice(this.root.length,e.length))&&e.slice(0,this.root.length)===this.root&&t(n,i)},filter:function(t){var e=[];return this.forEach(function(n,i){t(n,i)&&e.push(i)}),e},file:function(t,e,n){if(1!==arguments.length)return t=this.root+t,i.call(this,t,e,n),this;if(A(t)){var r=t;return this.filter(function(t,e){return!e.dir&&r.test(t)})}var s=this.files[this.root+t];return s&&!s.dir?s:null},folder:function(t){if(!t)return this;if(A(t))return this.filter(function(e,n){return n.dir&&t.test(e)});var e=this.root+t,n=g.call(this,e),i=this.clone();return i.root=n.name,i},remove:function(t){t=this.root+t;var e=this.files[t];if(e||("/"!==t.slice(-1)&&(t+="/"),e=this.files[t]),e&&!e.dir)delete this.files[t];else for(var n=this.filter(function(e,n){return n.name.slice(0,t.length)===t}),i=0;i<n.length;i++)delete this.files[n[i].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(t){var e,n={};try{if((n=s.extend(t||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:r.utf8encode})).type=n.type.toLowerCase(),n.compression=n.compression.toUpperCase(),"binarystring"===n.type&&(n.type="string"),!n.type)throw new Error("No output type specified.");s.checkSupport(n.type),"darwin"!==n.platform&&"freebsd"!==n.platform&&"linux"!==n.platform&&"sunos"!==n.platform||(n.platform="UNIX"),"win32"===n.platform&&(n.platform="DOS");var i=n.comment||this.comment||"";e=h.generateWorker(this,n,i)}catch(c){(e=new a("error")).error(c)}return new o(e,n.type||"string",n.mimeType)},generateAsync:function(t,e){return this.generateInternalStream(t).accumulate(e)},generateNodeStream:function(t,e){return(t=t||{}).type||(t.type="nodebuffer"),this.generateInternalStream(t).toNodejsStream(e)}};e.exports=y},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(t,e,n){e.exports=t("stream")},{stream:void 0}],17:[function(t,e,n){var i=t("./DataReader");function r(t){i.call(this,t);for(var e=0;e<this.data.length;e++)t[e]=255&t[e]}t("../utils").inherits(r,i),r.prototype.byteAt=function(t){return this.data[this.zero+t]},r.prototype.lastIndexOfSignature=function(t){for(var e=t.charCodeAt(0),n=t.charCodeAt(1),i=t.charCodeAt(2),r=t.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===e&&this.data[s+1]===n&&this.data[s+2]===i&&this.data[s+3]===r)return s-this.zero;return-1},r.prototype.readAndCheckSignature=function(t){var e=t.charCodeAt(0),n=t.charCodeAt(1),i=t.charCodeAt(2),r=t.charCodeAt(3),s=this.readData(4);return e===s[0]&&n===s[1]&&i===s[2]&&r===s[3]},r.prototype.readData=function(t){if(this.checkOffset(t),0===t)return[];var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=r},{"../utils":32,"./DataReader":18}],18:[function(t,e,n){var i=t("../utils");function r(t){this.data=t,this.length=t.length,this.index=0,this.zero=0}r.prototype={checkOffset:function(t){this.checkIndex(this.index+t)},checkIndex:function(t){if(this.length<this.zero+t||t<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+t+"). Corrupted zip ?")},setIndex:function(t){this.checkIndex(t),this.index=t},skip:function(t){this.setIndex(this.index+t)},byteAt:function(){},readInt:function(t){var e,n=0;for(this.checkOffset(t),e=this.index+t-1;e>=this.index;e--)n=(n<<8)+this.byteAt(e);return this.index+=t,n},readString:function(t){return i.transformTo("string",this.readData(t))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}},e.exports=r},{"../utils":32}],19:[function(t,e,n){var i=t("./Uint8ArrayReader");function r(t){i.call(this,t)}t("../utils").inherits(r,i),r.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=r},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(t,e,n){var i=t("./DataReader");function r(t){i.call(this,t)}t("../utils").inherits(r,i),r.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},r.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},r.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},r.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=r},{"../utils":32,"./DataReader":18}],21:[function(t,e,n){var i=t("./ArrayReader");function r(t){i.call(this,t)}t("../utils").inherits(r,i),r.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=r},{"../utils":32,"./ArrayReader":17}],22:[function(t,e,n){var i=t("../utils"),r=t("../support"),s=t("./ArrayReader"),a=t("./StringReader"),o=t("./NodeBufferReader"),c=t("./Uint8ArrayReader");e.exports=function(t){var e=i.getTypeOf(t);return i.checkSupport(e),"string"!==e||r.uint8array?"nodebuffer"===e?new o(t):r.uint8array?new c(i.transformTo("uint8array",t)):new s(i.transformTo("array",t)):new a(t)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(t,e,n){n.LOCAL_FILE_HEADER="PK",n.CENTRAL_FILE_HEADER="PK",n.CENTRAL_DIRECTORY_END="PK",n.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",n.ZIP64_CENTRAL_DIRECTORY_END="PK",n.DATA_DESCRIPTOR="PK\b"},{}],24:[function(t,e,n){var i=t("./GenericWorker"),r=t("../utils");function s(t){i.call(this,"ConvertWorker to "+t),this.destType=t}r.inherits(s,i),s.prototype.processChunk=function(t){this.push({data:r.transformTo(this.destType,t.data),meta:t.meta})},e.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(t,e,n){var i=t("./GenericWorker"),r=t("../crc32");function s(){i.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}t("../utils").inherits(s,i),s.prototype.processChunk=function(t){this.streamInfo.crc32=r(t.data,this.streamInfo.crc32||0),this.push(t)},e.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(t,e,n){var i=t("../utils"),r=t("./GenericWorker");function s(t){r.call(this,"DataLengthProbe for "+t),this.propName=t,this.withStreamInfo(t,0)}i.inherits(s,r),s.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}r.prototype.processChunk.call(this,t)},e.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(t,e,n){var i=t("../utils"),r=t("./GenericWorker");function s(t){r.call(this,"DataWorker");var e=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,t.then(function(t){e.dataIsReady=!0,e.data=t,e.max=t&&t.length||0,e.type=i.getTypeOf(t),e.isPaused||e._tickAndRepeat()},function(t){e.error(t)})}i.inherits(s,r),s.prototype.cleanUp=function(){r.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!r.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,i.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(i.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var t=null,e=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":t=this.data.substring(this.index,e);break;case"uint8array":t=this.data.subarray(this.index,e);break;case"array":case"nodebuffer":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})},e.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(t,e,n){function i(t){this.name=t||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}i.prototype={push:function(t){this.emit("data",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit("error",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit("error",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,e){return this._listeners[t].push(e),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,e){if(this._listeners[t])for(var n=0;n<this._listeners[t].length;n++)this._listeners[t][n].call(this,e)},pipe:function(t){return t.registerPrevious(this)},registerPrevious:function(t){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=t.streamInfo,this.mergeStreamInfo(),this.previous=t;var e=this;return t.on("data",function(t){e.processChunk(t)}),t.on("end",function(){e.end()}),t.on("error",function(t){e.error(t)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var t=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),t=!0),this.previous&&this.previous.resume(),!t},flush:function(){},processChunk:function(t){this.push(t)},withStreamInfo:function(t,e){return this.extraStreamInfo[t]=e,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var t in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,t)&&(this.streamInfo[t]=this.extraStreamInfo[t])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var t="Worker "+this.name;return this.previous?this.previous+" -> "+t:t}},e.exports=i},{}],29:[function(t,e,n){var i=t("../utils"),r=t("./ConvertWorker"),s=t("./GenericWorker"),a=t("../base64"),o=t("../support"),c=t("../external"),l=null;if(o.nodestream)try{l=t("../nodejs/NodejsStreamOutputAdapter")}catch(d){}function u(t,e){return new c.Promise(function(n,r){var s=[],o=t._internalType,c=t._outputType,l=t._mimeType;t.on("data",function(t,n){s.push(t),e&&e(n)}).on("error",function(t){s=[],r(t)}).on("end",function(){try{var t=function(t,e,n){switch(t){case"blob":return i.newBlob(i.transformTo("arraybuffer",e),n);case"base64":return a.encode(e);default:return i.transformTo(t,e)}}(c,function(t,e){var n,i=0,r=null,s=0;for(n=0;n<e.length;n++)s+=e[n].length;switch(t){case"string":return e.join("");case"array":return Array.prototype.concat.apply([],e);case"uint8array":for(r=new Uint8Array(s),n=0;n<e.length;n++)r.set(e[n],i),i+=e[n].length;return r;case"nodebuffer":return Buffer.concat(e);default:throw new Error("concat : unsupported type '"+t+"'")}}(o,s),l);n(t)}catch(e){r(e)}s=[]}).resume()})}function h(t,e,n){var a=e;switch(e){case"blob":case"arraybuffer":a="uint8array";break;case"base64":a="string"}try{this._internalType=a,this._outputType=e,this._mimeType=n,i.checkSupport(a),this._worker=t.pipe(new r(a)),t.lock()}catch(o){this._worker=new s("error"),this._worker.error(o)}}h.prototype={accumulate:function(t){return u(this,t)},on:function(t,e){var n=this;return"data"===t?this._worker.on(t,function(t){e.call(n,t.data,t.meta)}):this._worker.on(t,function(){i.delay(e,arguments,n)}),this},resume:function(){return i.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(t){if(i.checkSupport("nodestream"),"nodebuffer"!==this._outputType)throw new Error(this._outputType+" is not supported by this method");return new l(this,{objectMode:"nodebuffer"!==this._outputType},t)}},e.exports=h},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(t,e,n){if(n.base64=!0,n.array=!0,n.string=!0,n.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,n.nodebuffer="undefined"!=typeof Buffer,n.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)n.blob=!1;else{var i=new ArrayBuffer(0);try{n.blob=0===new Blob([i],{type:"application/zip"}).size}catch(s){try{var r=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);r.append(i),n.blob=0===r.getBlob("application/zip").size}catch(a){n.blob=!1}}}try{n.nodestream=!!t("readable-stream").Readable}catch(s){n.nodestream=!1}},{"readable-stream":16}],31:[function(t,e,n){for(var i=t("./utils"),r=t("./support"),s=t("./nodejsUtils"),a=t("./stream/GenericWorker"),o=new Array(256),c=0;c<256;c++)o[c]=252<=c?6:248<=c?5:240<=c?4:224<=c?3:192<=c?2:1;function l(){a.call(this,"utf-8 decode"),this.leftOver=null}function u(){a.call(this,"utf-8 encode")}o[254]=o[254]=1,n.utf8encode=function(t){return r.nodebuffer?s.newBufferFrom(t,"utf-8"):function(t){var e,n,i,s,a,o=t.length,c=0;for(s=0;s<o;s++)55296==(64512&(n=t.charCodeAt(s)))&&s+1<o&&56320==(64512&(i=t.charCodeAt(s+1)))&&(n=65536+(n-55296<<10)+(i-56320),s++),c+=n<128?1:n<2048?2:n<65536?3:4;for(e=r.uint8array?new Uint8Array(c):new Array(c),s=a=0;a<c;s++)55296==(64512&(n=t.charCodeAt(s)))&&s+1<o&&56320==(64512&(i=t.charCodeAt(s+1)))&&(n=65536+(n-55296<<10)+(i-56320),s++),n<128?e[a++]=n:(n<2048?e[a++]=192|n>>>6:(n<65536?e[a++]=224|n>>>12:(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63),e[a++]=128|n>>>6&63),e[a++]=128|63&n);return e}(t)},n.utf8decode=function(t){return r.nodebuffer?i.transformTo("nodebuffer",t).toString("utf-8"):function(t){var e,n,r,s,a=t.length,c=new Array(2*a);for(e=n=0;e<a;)if((r=t[e++])<128)c[n++]=r;else if(4<(s=o[r]))c[n++]=65533,e+=s-1;else{for(r&=2===s?31:3===s?15:7;1<s&&e<a;)r=r<<6|63&t[e++],s--;1<s?c[n++]=65533:r<65536?c[n++]=r:(r-=65536,c[n++]=55296|r>>10&1023,c[n++]=56320|1023&r)}return c.length!==n&&(c.subarray?c=c.subarray(0,n):c.length=n),i.applyFromCharCode(c)}(t=i.transformTo(r.uint8array?"uint8array":"array",t))},i.inherits(l,a),l.prototype.processChunk=function(t){var e=i.transformTo(r.uint8array?"uint8array":"array",t.data);if(this.leftOver&&this.leftOver.length){if(r.uint8array){var s=e;(e=new Uint8Array(s.length+this.leftOver.length)).set(this.leftOver,0),e.set(s,this.leftOver.length)}else e=this.leftOver.concat(e);this.leftOver=null}var a=function(t,e){var n;for((e=e||t.length)>t.length&&(e=t.length),n=e-1;0<=n&&128==(192&t[n]);)n--;return n<0||0===n?e:n+o[t[n]]>e?n:e}(e),c=e;a!==e.length&&(r.uint8array?(c=e.subarray(0,a),this.leftOver=e.subarray(a,e.length)):(c=e.slice(0,a),this.leftOver=e.slice(a,e.length))),this.push({data:n.utf8decode(c),meta:t.meta})},l.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:n.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},n.Utf8DecodeWorker=l,i.inherits(u,a),u.prototype.processChunk=function(t){this.push({data:n.utf8encode(t.data),meta:t.meta})},n.Utf8EncodeWorker=u},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(t,e,n){var i=t("./support"),r=t("./base64"),s=t("./nodejsUtils"),a=t("./external");function o(t){return t}function c(t,e){for(var n=0;n<t.length;++n)e[n]=255&t.charCodeAt(n);return e}t("setimmediate"),n.newBlob=function(t,e){n.checkSupport("blob");try{return new Blob([t],{type:e})}catch(r){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return i.append(t),i.getBlob(e)}catch(s){throw new Error("Bug : can't construct the Blob.")}}};var l={stringifyByChunk:function(t,e,n){var i=[],r=0,s=t.length;if(s<=n)return String.fromCharCode.apply(null,t);for(;r<s;)"array"===e||"nodebuffer"===e?i.push(String.fromCharCode.apply(null,t.slice(r,Math.min(r+n,s)))):i.push(String.fromCharCode.apply(null,t.subarray(r,Math.min(r+n,s)))),r+=n;return i.join("")},stringifyByChar:function(t){for(var e="",n=0;n<t.length;n++)e+=String.fromCharCode(t[n]);return e},applyCanBeUsed:{uint8array:function(){try{return i.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(t){return!1}}(),nodebuffer:function(){try{return i.nodebuffer&&1===String.fromCharCode.apply(null,s.allocBuffer(1)).length}catch(t){return!1}}()}};function u(t){var e=65536,i=n.getTypeOf(t),r=!0;if("uint8array"===i?r=l.applyCanBeUsed.uint8array:"nodebuffer"===i&&(r=l.applyCanBeUsed.nodebuffer),r)for(;1<e;)try{return l.stringifyByChunk(t,i,e)}catch(s){e=Math.floor(e/2)}return l.stringifyByChar(t)}function h(t,e){for(var n=0;n<t.length;n++)e[n]=t[n];return e}n.applyFromCharCode=u;var d={};d.string={string:o,array:function(t){return c(t,new Array(t.length))},arraybuffer:function(t){return d.string.uint8array(t).buffer},uint8array:function(t){return c(t,new Uint8Array(t.length))},nodebuffer:function(t){return c(t,s.allocBuffer(t.length))}},d.array={string:u,array:o,arraybuffer:function(t){return new Uint8Array(t).buffer},uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return s.newBufferFrom(t)}},d.arraybuffer={string:function(t){return u(new Uint8Array(t))},array:function(t){return h(new Uint8Array(t),new Array(t.byteLength))},arraybuffer:o,uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return s.newBufferFrom(new Uint8Array(t))}},d.uint8array={string:u,array:function(t){return h(t,new Array(t.length))},arraybuffer:function(t){return t.buffer},uint8array:o,nodebuffer:function(t){return s.newBufferFrom(t)}},d.nodebuffer={string:u,array:function(t){return h(t,new Array(t.length))},arraybuffer:function(t){return d.nodebuffer.uint8array(t).buffer},uint8array:function(t){return h(t,new Uint8Array(t.length))},nodebuffer:o},n.transformTo=function(t,e){if(e=e||"",!t)return e;n.checkSupport(t);var i=n.getTypeOf(e);return d[i][t](e)},n.resolve=function(t){for(var e=t.split("/"),n=[],i=0;i<e.length;i++){var r=e[i];"."===r||""===r&&0!==i&&i!==e.length-1||(".."===r?n.pop():n.push(r))}return n.join("/")},n.getTypeOf=function(t){return"string"==typeof t?"string":"[object Array]"===Object.prototype.toString.call(t)?"array":i.nodebuffer&&s.isBuffer(t)?"nodebuffer":i.uint8array&&t instanceof Uint8Array?"uint8array":i.arraybuffer&&t instanceof ArrayBuffer?"arraybuffer":void 0},n.checkSupport=function(t){if(!i[t.toLowerCase()])throw new Error(t+" is not supported by this platform")},n.MAX_VALUE_16BITS=65535,n.MAX_VALUE_32BITS=-1,n.pretty=function(t){var e,n,i="";for(n=0;n<(t||"").length;n++)i+="\\x"+((e=t.charCodeAt(n))<16?"0":"")+e.toString(16).toUpperCase();return i},n.delay=function(t,e,n){setImmediate(function(){t.apply(n||null,e||[])})},n.inherits=function(t,e){function n(){}n.prototype=e.prototype,t.prototype=new n},n.extend=function(){var t,e,n={};for(t=0;t<arguments.length;t++)for(e in arguments[t])Object.prototype.hasOwnProperty.call(arguments[t],e)&&void 0===n[e]&&(n[e]=arguments[t][e]);return n},n.prepareContent=function(t,e,s,o,l){return a.Promise.resolve(e).then(function(t){return i.blob&&(t instanceof Blob||-1!==["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(t)))&&"undefined"!=typeof FileReader?new a.Promise(function(e,n){var i=new FileReader;i.onload=function(t){e(t.target.result)},i.onerror=function(t){n(t.target.error)},i.readAsArrayBuffer(t)}):t}).then(function(e){var u,h=n.getTypeOf(e);return h?("arraybuffer"===h?e=n.transformTo("uint8array",e):"string"===h&&(l?e=r.decode(e):s&&!0!==o&&(e=c(u=e,i.uint8array?new Uint8Array(u.length):new Array(u.length)))),e):a.Promise.reject(new Error("Can't read the data of '"+t+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,setimmediate:54}],33:[function(t,e,n){var i=t("./reader/readerFor"),r=t("./utils"),s=t("./signature"),a=t("./zipEntry"),o=t("./support");function c(t){this.files=[],this.loadOptions=t}c.prototype={checkSignature:function(t){if(!this.reader.readAndCheckSignature(t)){this.reader.index-=4;var e=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+r.pretty(e)+", expected "+r.pretty(t)+")")}},isSignature:function(t,e){var n=this.reader.index;this.reader.setIndex(t);var i=this.reader.readString(4)===e;return this.reader.setIndex(n),i},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var t=this.reader.readData(this.zipCommentLength),e=o.uint8array?"uint8array":"array",n=r.transformTo(e,t);this.zipComment=this.loadOptions.decodeFileName(n)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var t,e,n,i=this.zip64EndOfCentralSize-44;0<i;)t=this.reader.readInt(2),e=this.reader.readInt(4),n=this.reader.readData(e),this.zip64ExtensibleData[t]={id:t,length:e,value:n}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var t,e;for(t=0;t<this.files.length;t++)e=this.files[t],this.reader.setIndex(e.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),e.readLocalPart(this.reader),e.handleUTF8(),e.processAttributes()},readCentralDir:function(){var t;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(t=new a({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(t);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var t=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(t<0)throw this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(t);var e=t;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===r.MAX_VALUE_16BITS||this.diskWithCentralDirStart===r.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===r.MAX_VALUE_16BITS||this.centralDirRecords===r.MAX_VALUE_16BITS||this.centralDirSize===r.MAX_VALUE_32BITS||this.centralDirOffset===r.MAX_VALUE_32BITS){if(this.zip64=!0,(t=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(t),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var n=this.centralDirOffset+this.centralDirSize;this.zip64&&(n+=20,n+=12+this.zip64EndOfCentralSize);var i=e-n;if(0<i)this.isSignature(e,s.CENTRAL_FILE_HEADER)||(this.reader.zero=i);else if(i<0)throw new Error("Corrupted zip: missing "+Math.abs(i)+" bytes.")},prepareReader:function(t){this.reader=i(t)},load:function(t){this.prepareReader(t),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},e.exports=c},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(t,e,n){var i=t("./reader/readerFor"),r=t("./utils"),s=t("./compressedObject"),a=t("./crc32"),o=t("./utf8"),c=t("./compressions"),l=t("./support");function u(t,e){this.options=t,this.loadOptions=e}u.prototype={isEncrypted:function(){return!(1&~this.bitFlag)},useUTF8:function(){return!(2048&~this.bitFlag)},readLocalPart:function(t){var e,n;if(t.skip(22),this.fileNameLength=t.readInt(2),n=t.readInt(2),this.fileName=t.readData(this.fileNameLength),t.skip(n),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(null===(e=function(t){for(var e in c)if(Object.prototype.hasOwnProperty.call(c,e)&&c[e].magic===t)return c[e];return null}(this.compressionMethod)))throw new Error("Corrupted zip : compression "+r.pretty(this.compressionMethod)+" unknown (inner file : "+r.transformTo("string",this.fileName)+")");this.decompressed=new s(this.compressedSize,this.uncompressedSize,this.crc32,e,t.readData(this.compressedSize))},readCentralPart:function(t){this.versionMadeBy=t.readInt(2),t.skip(2),this.bitFlag=t.readInt(2),this.compressionMethod=t.readString(2),this.date=t.readDate(),this.crc32=t.readInt(4),this.compressedSize=t.readInt(4),this.uncompressedSize=t.readInt(4);var e=t.readInt(2);if(this.extraFieldsLength=t.readInt(2),this.fileCommentLength=t.readInt(2),this.diskNumberStart=t.readInt(2),this.internalFileAttributes=t.readInt(2),this.externalFileAttributes=t.readInt(4),this.localHeaderOffset=t.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");t.skip(e),this.readExtraFields(t),this.parseZIP64ExtraField(t),this.fileComment=t.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var t=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==t&&(this.dosPermissions=63&this.externalFileAttributes),3==t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var t=i(this.extraFields[1].value);this.uncompressedSize===r.MAX_VALUE_32BITS&&(this.uncompressedSize=t.readInt(8)),this.compressedSize===r.MAX_VALUE_32BITS&&(this.compressedSize=t.readInt(8)),this.localHeaderOffset===r.MAX_VALUE_32BITS&&(this.localHeaderOffset=t.readInt(8)),this.diskNumberStart===r.MAX_VALUE_32BITS&&(this.diskNumberStart=t.readInt(4))}},readExtraFields:function(t){var e,n,i,r=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+4<r;)e=t.readInt(2),n=t.readInt(2),i=t.readData(n),this.extraFields[e]={id:e,length:n,value:i};t.setIndex(r)},handleUTF8:function(){var t=l.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=o.utf8decode(this.fileName),this.fileCommentStr=o.utf8decode(this.fileComment);else{var e=this.findExtraFieldUnicodePath();if(null!==e)this.fileNameStr=e;else{var n=r.transformTo(t,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(n)}var i=this.findExtraFieldUnicodeComment();if(null!==i)this.fileCommentStr=i;else{var s=r.transformTo(t,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(s)}}},findExtraFieldUnicodePath:function(){var t=this.extraFields[28789];if(t){var e=i(t.value);return 1!==e.readInt(1)||a(this.fileName)!==e.readInt(4)?null:o.utf8decode(e.readData(t.length-5))}return null},findExtraFieldUnicodeComment:function(){var t=this.extraFields[25461];if(t){var e=i(t.value);return 1!==e.readInt(1)||a(this.fileComment)!==e.readInt(4)?null:o.utf8decode(e.readData(t.length-5))}return null}},e.exports=u},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(t,e,n){function i(t,e,n){this.name=t,this.dir=n.dir,this.date=n.date,this.comment=n.comment,this.unixPermissions=n.unixPermissions,this.dosPermissions=n.dosPermissions,this._data=e,this._dataBinary=n.binary,this.options={compression:n.compression,compressionOptions:n.compressionOptions}}var r=t("./stream/StreamHelper"),s=t("./stream/DataWorker"),a=t("./utf8"),o=t("./compressedObject"),c=t("./stream/GenericWorker");i.prototype={internalStream:function(t){var e=null,n="string";try{if(!t)throw new Error("No output type specified.");var i="string"===(n=t.toLowerCase())||"text"===n;"binarystring"!==n&&"text"!==n||(n="string"),e=this._decompressWorker();var s=!this._dataBinary;s&&!i&&(e=e.pipe(new a.Utf8EncodeWorker)),!s&&i&&(e=e.pipe(new a.Utf8DecodeWorker))}catch(o){(e=new c("error")).error(o)}return new r(e,n,"")},async:function(t,e){return this.internalStream(t).accumulate(e)},nodeStream:function(t,e){return this.internalStream(t||"nodebuffer").toNodejsStream(e)},_compressWorker:function(t,e){if(this._data instanceof o&&this._data.compression.magic===t.magic)return this._data.getCompressedWorker();var n=this._decompressWorker();return this._dataBinary||(n=n.pipe(new a.Utf8EncodeWorker)),o.createWorkerFrom(n,t,e)},_decompressWorker:function(){return this._data instanceof o?this._data.getContentWorker():this._data instanceof c?this._data:new s(this._data)}};for(var l=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],u=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},h=0;h<l.length;h++)i.prototype[l[h]]=u;e.exports=i},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(t,e,n){(function(t){var n,i,r=t.MutationObserver||t.WebKitMutationObserver;if(r){var s=0,a=new r(u),o=t.document.createTextNode("");a.observe(o,{characterData:!0}),n=function(){o.data=s=++s%2}}else if(t.setImmediate||void 0===t.MessageChannel)n="document"in t&&"onreadystatechange"in t.document.createElement("script")?function(){var e=t.document.createElement("script");e.onreadystatechange=function(){u(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},t.document.documentElement.appendChild(e)}:function(){setTimeout(u,0)};else{var c=new t.MessageChannel;c.port1.onmessage=u,n=function(){c.port2.postMessage(0)}}var l=[];function u(){var t,e;i=!0;for(var n=l.length;n;){for(e=l,l=[],t=-1;++t<n;)e[t]();n=l.length}i=!1}e.exports=function(t){1!==l.push(t)||i||n()}}).call(this,void 0!==commonjsGlobal?commonjsGlobal:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],37:[function(t,e,n){var i=t("immediate");function r(){}var s={},a=["REJECTED"],o=["FULFILLED"],c=["PENDING"];function l(t){if("function"!=typeof t)throw new TypeError("resolver must be a function");this.state=c,this.queue=[],this.outcome=void 0,t!==r&&p(this,t)}function u(t,e,n){this.promise=t,"function"==typeof e&&(this.onFulfilled=e,this.callFulfilled=this.otherCallFulfilled),"function"==typeof n&&(this.onRejected=n,this.callRejected=this.otherCallRejected)}function h(t,e,n){i(function(){var i;try{i=e(n)}catch(r){return s.reject(t,r)}i===t?s.reject(t,new TypeError("Cannot resolve promise with itself")):s.resolve(t,i)})}function d(t){var e=t&&t.then;if(t&&("object"==typeof t||"function"==typeof t)&&"function"==typeof e)return function(){e.apply(t,arguments)}}function p(t,e){var n=!1;function i(e){n||(n=!0,s.reject(t,e))}function r(e){n||(n=!0,s.resolve(t,e))}var a=f(function(){e(r,i)});"error"===a.status&&i(a.value)}function f(t,e){var n={};try{n.value=t(e),n.status="success"}catch(i){n.status="error",n.value=i}return n}(e.exports=l).prototype.finally=function(t){if("function"!=typeof t)return this;var e=this.constructor;return this.then(function(n){return e.resolve(t()).then(function(){return n})},function(n){return e.resolve(t()).then(function(){throw n})})},l.prototype.catch=function(t){return this.then(null,t)},l.prototype.then=function(t,e){if("function"!=typeof t&&this.state===o||"function"!=typeof e&&this.state===a)return this;var n=new this.constructor(r);return this.state!==c?h(n,this.state===o?t:e,this.outcome):this.queue.push(new u(n,t,e)),n},u.prototype.callFulfilled=function(t){s.resolve(this.promise,t)},u.prototype.otherCallFulfilled=function(t){h(this.promise,this.onFulfilled,t)},u.prototype.callRejected=function(t){s.reject(this.promise,t)},u.prototype.otherCallRejected=function(t){h(this.promise,this.onRejected,t)},s.resolve=function(t,e){var n=f(d,e);if("error"===n.status)return s.reject(t,n.value);var i=n.value;if(i)p(t,i);else{t.state=o,t.outcome=e;for(var r=-1,a=t.queue.length;++r<a;)t.queue[r].callFulfilled(e)}return t},s.reject=function(t,e){t.state=a,t.outcome=e;for(var n=-1,i=t.queue.length;++n<i;)t.queue[n].callRejected(e);return t},l.resolve=function(t){return t instanceof this?t:s.resolve(new this(r),t)},l.reject=function(t){var e=new this(r);return s.reject(e,t)},l.all=function(t){var e=this;if("[object Array]"!==Object.prototype.toString.call(t))return this.reject(new TypeError("must be an array"));var n=t.length,i=!1;if(!n)return this.resolve([]);for(var a=new Array(n),o=0,c=-1,l=new this(r);++c<n;)u(t[c],c);return l;function u(t,r){e.resolve(t).then(function(t){a[r]=t,++o!==n||i||(i=!0,s.resolve(l,a))},function(t){i||(i=!0,s.reject(l,t))})}},l.race=function(t){var e=this;if("[object Array]"!==Object.prototype.toString.call(t))return this.reject(new TypeError("must be an array"));var n=t.length,i=!1;if(!n)return this.resolve([]);for(var a,o=-1,c=new this(r);++o<n;)a=t[o],e.resolve(a).then(function(t){i||(i=!0,s.resolve(c,t))},function(t){i||(i=!0,s.reject(c,t))});return c}},{immediate:36}],38:[function(t,e,n){var i={};(0,t("./lib/utils/common").assign)(i,t("./lib/deflate"),t("./lib/inflate"),t("./lib/zlib/constants")),e.exports=i},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(t,e,n){var i=t("./zlib/deflate"),r=t("./utils/common"),s=t("./utils/strings"),a=t("./zlib/messages"),o=t("./zlib/zstream"),c=Object.prototype.toString,l=0,u=-1,h=0,d=8;function p(t){if(!(this instanceof p))return new p(t);this.options=r.assign({level:u,method:d,chunkSize:16384,windowBits:15,memLevel:8,strategy:h,to:""},t||{});var e=this.options;e.raw&&0<e.windowBits?e.windowBits=-e.windowBits:e.gzip&&0<e.windowBits&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new o,this.strm.avail_out=0;var n=i.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==l)throw new Error(a[n]);if(e.header&&i.deflateSetHeader(this.strm,e.header),e.dictionary){var f;if(f="string"==typeof e.dictionary?s.string2buf(e.dictionary):"[object ArrayBuffer]"===c.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,(n=i.deflateSetDictionary(this.strm,f))!==l)throw new Error(a[n]);this._dict_set=!0}}function f(t,e){var n=new p(e);if(n.push(t,!0),n.err)throw n.msg||a[n.err];return n.result}p.prototype.push=function(t,e){var n,a,o=this.strm,u=this.options.chunkSize;if(this.ended)return!1;a=e===~~e?e:!0===e?4:0,"string"==typeof t?o.input=s.string2buf(t):"[object ArrayBuffer]"===c.call(t)?o.input=new Uint8Array(t):o.input=t,o.next_in=0,o.avail_in=o.input.length;do{if(0===o.avail_out&&(o.output=new r.Buf8(u),o.next_out=0,o.avail_out=u),1!==(n=i.deflate(o,a))&&n!==l)return this.onEnd(n),!(this.ended=!0);0!==o.avail_out&&(0!==o.avail_in||4!==a&&2!==a)||("string"===this.options.to?this.onData(s.buf2binstring(r.shrinkBuf(o.output,o.next_out))):this.onData(r.shrinkBuf(o.output,o.next_out)))}while((0<o.avail_in||0===o.avail_out)&&1!==n);return 4===a?(n=i.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===l):2!==a||(this.onEnd(l),!(o.avail_out=0))},p.prototype.onData=function(t){this.chunks.push(t)},p.prototype.onEnd=function(t){t===l&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=r.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},n.Deflate=p,n.deflate=f,n.deflateRaw=function(t,e){return(e=e||{}).raw=!0,f(t,e)},n.gzip=function(t,e){return(e=e||{}).gzip=!0,f(t,e)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(t,e,n){var i=t("./zlib/inflate"),r=t("./utils/common"),s=t("./utils/strings"),a=t("./zlib/constants"),o=t("./zlib/messages"),c=t("./zlib/zstream"),l=t("./zlib/gzheader"),u=Object.prototype.toString;function h(t){if(!(this instanceof h))return new h(t);this.options=r.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&0<=e.windowBits&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(0<=e.windowBits&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),15<e.windowBits&&e.windowBits<48&&!(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new c,this.strm.avail_out=0;var n=i.inflateInit2(this.strm,e.windowBits);if(n!==a.Z_OK)throw new Error(o[n]);this.header=new l,i.inflateGetHeader(this.strm,this.header)}function d(t,e){var n=new h(e);if(n.push(t,!0),n.err)throw n.msg||o[n.err];return n.result}h.prototype.push=function(t,e){var n,o,c,l,h,d,p=this.strm,f=this.options.chunkSize,m=this.options.dictionary,g=!1;if(this.ended)return!1;o=e===~~e?e:!0===e?a.Z_FINISH:a.Z_NO_FLUSH,"string"==typeof t?p.input=s.binstring2buf(t):"[object ArrayBuffer]"===u.call(t)?p.input=new Uint8Array(t):p.input=t,p.next_in=0,p.avail_in=p.input.length;do{if(0===p.avail_out&&(p.output=new r.Buf8(f),p.next_out=0,p.avail_out=f),(n=i.inflate(p,a.Z_NO_FLUSH))===a.Z_NEED_DICT&&m&&(d="string"==typeof m?s.string2buf(m):"[object ArrayBuffer]"===u.call(m)?new Uint8Array(m):m,n=i.inflateSetDictionary(this.strm,d)),n===a.Z_BUF_ERROR&&!0===g&&(n=a.Z_OK,g=!1),n!==a.Z_STREAM_END&&n!==a.Z_OK)return this.onEnd(n),!(this.ended=!0);p.next_out&&(0!==p.avail_out&&n!==a.Z_STREAM_END&&(0!==p.avail_in||o!==a.Z_FINISH&&o!==a.Z_SYNC_FLUSH)||("string"===this.options.to?(c=s.utf8border(p.output,p.next_out),l=p.next_out-c,h=s.buf2string(p.output,c),p.next_out=l,p.avail_out=f-l,l&&r.arraySet(p.output,p.output,c,l,0),this.onData(h)):this.onData(r.shrinkBuf(p.output,p.next_out)))),0===p.avail_in&&0===p.avail_out&&(g=!0)}while((0<p.avail_in||0===p.avail_out)&&n!==a.Z_STREAM_END);return n===a.Z_STREAM_END&&(o=a.Z_FINISH),o===a.Z_FINISH?(n=i.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===a.Z_OK):o!==a.Z_SYNC_FLUSH||(this.onEnd(a.Z_OK),!(p.avail_out=0))},h.prototype.onData=function(t){this.chunks.push(t)},h.prototype.onEnd=function(t){t===a.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=r.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},n.Inflate=h,n.inflate=d,n.inflateRaw=function(t,e){return(e=e||{}).raw=!0,d(t,e)},n.ungzip=d},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(t,e,n){var i="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;n.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var n=e.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(var i in n)n.hasOwnProperty(i)&&(t[i]=n[i])}}return t},n.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var r={arraySet:function(t,e,n,i,r){if(e.subarray&&t.subarray)t.set(e.subarray(n,n+i),r);else for(var s=0;s<i;s++)t[r+s]=e[n+s]},flattenChunks:function(t){var e,n,i,r,s,a;for(e=i=0,n=t.length;e<n;e++)i+=t[e].length;for(a=new Uint8Array(i),e=r=0,n=t.length;e<n;e++)s=t[e],a.set(s,r),r+=s.length;return a}},s={arraySet:function(t,e,n,i,r){for(var s=0;s<i;s++)t[r+s]=e[n+s]},flattenChunks:function(t){return[].concat.apply([],t)}};n.setTyped=function(t){t?(n.Buf8=Uint8Array,n.Buf16=Uint16Array,n.Buf32=Int32Array,n.assign(n,r)):(n.Buf8=Array,n.Buf16=Array,n.Buf32=Array,n.assign(n,s))},n.setTyped(i)},{}],42:[function(t,e,n){var i=t("./common"),r=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(l){r=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(l){s=!1}for(var a=new i.Buf8(256),o=0;o<256;o++)a[o]=252<=o?6:248<=o?5:240<=o?4:224<=o?3:192<=o?2:1;function c(t,e){if(e<65537&&(t.subarray&&s||!t.subarray&&r))return String.fromCharCode.apply(null,i.shrinkBuf(t,e));for(var n="",a=0;a<e;a++)n+=String.fromCharCode(t[a]);return n}a[254]=a[254]=1,n.string2buf=function(t){var e,n,r,s,a,o=t.length,c=0;for(s=0;s<o;s++)55296==(64512&(n=t.charCodeAt(s)))&&s+1<o&&56320==(64512&(r=t.charCodeAt(s+1)))&&(n=65536+(n-55296<<10)+(r-56320),s++),c+=n<128?1:n<2048?2:n<65536?3:4;for(e=new i.Buf8(c),s=a=0;a<c;s++)55296==(64512&(n=t.charCodeAt(s)))&&s+1<o&&56320==(64512&(r=t.charCodeAt(s+1)))&&(n=65536+(n-55296<<10)+(r-56320),s++),n<128?e[a++]=n:(n<2048?e[a++]=192|n>>>6:(n<65536?e[a++]=224|n>>>12:(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63),e[a++]=128|n>>>6&63),e[a++]=128|63&n);return e},n.buf2binstring=function(t){return c(t,t.length)},n.binstring2buf=function(t){for(var e=new i.Buf8(t.length),n=0,r=e.length;n<r;n++)e[n]=t.charCodeAt(n);return e},n.buf2string=function(t,e){var n,i,r,s,o=e||t.length,l=new Array(2*o);for(n=i=0;n<o;)if((r=t[n++])<128)l[i++]=r;else if(4<(s=a[r]))l[i++]=65533,n+=s-1;else{for(r&=2===s?31:3===s?15:7;1<s&&n<o;)r=r<<6|63&t[n++],s--;1<s?l[i++]=65533:r<65536?l[i++]=r:(r-=65536,l[i++]=55296|r>>10&1023,l[i++]=56320|1023&r)}return c(l,i)},n.utf8border=function(t,e){var n;for((e=e||t.length)>t.length&&(e=t.length),n=e-1;0<=n&&128==(192&t[n]);)n--;return n<0||0===n?e:n+a[t[n]]>e?n:e}},{"./common":41}],43:[function(t,e,n){e.exports=function(t,e,n,i){for(var r=65535&t,s=t>>>16&65535,a=0;0!==n;){for(n-=a=2e3<n?2e3:n;s=s+(r=r+e[i++]|0)|0,--a;);r%=65521,s%=65521}return r|s<<16}},{}],44:[function(t,e,n){e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(t,e,n){var i=function(){for(var t,e=[],n=0;n<256;n++){t=n;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[n]=t}return e}();e.exports=function(t,e,n,r){var s=i,a=r+n;t^=-1;for(var o=r;o<a;o++)t=t>>>8^s[255&(t^e[o])];return-1^t}},{}],46:[function(t,e,n){var i,r=t("../utils/common"),s=t("./trees"),a=t("./adler32"),o=t("./crc32"),c=t("./messages"),l=0,u=4,h=0,d=-2,p=-1,f=4,m=2,g=8,A=9,y=286,v=30,S=19,x=2*y+1,b=15,T=3,I=258,M=I+T+1,E=42,w=113,R=1,C=2,k=3,_=4;function L(t,e){return t.msg=c[e],e}function U(t){return(t<<1)-(4<t?9:0)}function N(t){for(var e=t.length;0<=--e;)t[e]=0}function F(t){var e=t.state,n=e.pending;n>t.avail_out&&(n=t.avail_out),0!==n&&(r.arraySet(t.output,e.pending_buf,e.pending_out,n,t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,0===e.pending&&(e.pending_out=0))}function B(t,e){s._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,F(t.strm)}function V(t,e){t.pending_buf[t.pending++]=e}function P(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function W(t,e){var n,i,r=t.max_chain_length,s=t.strstart,a=t.prev_length,o=t.nice_match,c=t.strstart>t.w_size-M?t.strstart-(t.w_size-M):0,l=t.window,u=t.w_mask,h=t.prev,d=t.strstart+I,p=l[s+a-1],f=l[s+a];t.prev_length>=t.good_match&&(r>>=2),o>t.lookahead&&(o=t.lookahead);do{if(l[(n=e)+a]===f&&l[n+a-1]===p&&l[n]===l[s]&&l[++n]===l[s+1]){s+=2,n++;do{}while(l[++s]===l[++n]&&l[++s]===l[++n]&&l[++s]===l[++n]&&l[++s]===l[++n]&&l[++s]===l[++n]&&l[++s]===l[++n]&&l[++s]===l[++n]&&l[++s]===l[++n]&&s<d);if(i=I-(d-s),s=d-I,a<i){if(t.match_start=e,o<=(a=i))break;p=l[s+a-1],f=l[s+a]}}}while((e=h[e&u])>c&&0!=--r);return a<=t.lookahead?a:t.lookahead}function D(t){var e,n,i,s,c,l,u,h,d,p,f=t.w_size;do{if(s=t.window_size-t.lookahead-t.strstart,t.strstart>=f+(f-M)){for(r.arraySet(t.window,t.window,f,f,0),t.match_start-=f,t.strstart-=f,t.block_start-=f,e=n=t.hash_size;i=t.head[--e],t.head[e]=f<=i?i-f:0,--n;);for(e=n=f;i=t.prev[--e],t.prev[e]=f<=i?i-f:0,--n;);s+=f}if(0===t.strm.avail_in)break;if(l=t.strm,u=t.window,h=t.strstart+t.lookahead,p=void 0,(d=s)<(p=l.avail_in)&&(p=d),n=0===p?0:(l.avail_in-=p,r.arraySet(u,l.input,l.next_in,p,h),1===l.state.wrap?l.adler=a(l.adler,u,p,h):2===l.state.wrap&&(l.adler=o(l.adler,u,p,h)),l.next_in+=p,l.total_in+=p,p),t.lookahead+=n,t.lookahead+t.insert>=T)for(c=t.strstart-t.insert,t.ins_h=t.window[c],t.ins_h=(t.ins_h<<t.hash_shift^t.window[c+1])&t.hash_mask;t.insert&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[c+T-1])&t.hash_mask,t.prev[c&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=c,c++,t.insert--,!(t.lookahead+t.insert<T)););}while(t.lookahead<M&&0!==t.strm.avail_in)}function O(t,e){for(var n,i;;){if(t.lookahead<M){if(D(t),t.lookahead<M&&e===l)return R;if(0===t.lookahead)break}if(n=0,t.lookahead>=T&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+T-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==n&&t.strstart-n<=t.w_size-M&&(t.match_length=W(t,n)),t.match_length>=T)if(i=s._tr_tally(t,t.strstart-t.match_start,t.match_length-T),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=T){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+T-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart,0!=--t.match_length;);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+1])&t.hash_mask;else i=s._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(B(t,!1),0===t.strm.avail_out))return R}return t.insert=t.strstart<T-1?t.strstart:T-1,e===u?(B(t,!0),0===t.strm.avail_out?k:_):t.last_lit&&(B(t,!1),0===t.strm.avail_out)?R:C}function J(t,e){for(var n,i,r;;){if(t.lookahead<M){if(D(t),t.lookahead<M&&e===l)return R;if(0===t.lookahead)break}if(n=0,t.lookahead>=T&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+T-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=T-1,0!==n&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-M&&(t.match_length=W(t,n),t.match_length<=5&&(1===t.strategy||t.match_length===T&&4096<t.strstart-t.match_start)&&(t.match_length=T-1)),t.prev_length>=T&&t.match_length<=t.prev_length){for(r=t.strstart+t.lookahead-T,i=s._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-T),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=r&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+T-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!=--t.prev_length;);if(t.match_available=0,t.match_length=T-1,t.strstart++,i&&(B(t,!1),0===t.strm.avail_out))return R}else if(t.match_available){if((i=s._tr_tally(t,0,t.window[t.strstart-1]))&&B(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return R}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=s._tr_tally(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<T-1?t.strstart:T-1,e===u?(B(t,!0),0===t.strm.avail_out?k:_):t.last_lit&&(B(t,!1),0===t.strm.avail_out)?R:C}function G(t,e,n,i,r){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=i,this.func=r}function H(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=g,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new r.Buf16(2*x),this.dyn_dtree=new r.Buf16(2*(2*v+1)),this.bl_tree=new r.Buf16(2*(2*S+1)),N(this.dyn_ltree),N(this.dyn_dtree),N(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new r.Buf16(b+1),this.heap=new r.Buf16(2*y+1),N(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new r.Buf16(2*y+1),N(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function q(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=m,(e=t.state).pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?E:w,t.adler=2===e.wrap?0:1,e.last_flush=l,s._tr_init(e),h):L(t,d)}function j(t){var e,n=q(t);return n===h&&((e=t.state).window_size=2*e.w_size,N(e.head),e.max_lazy_match=i[e.level].max_lazy,e.good_match=i[e.level].good_length,e.nice_match=i[e.level].nice_length,e.max_chain_length=i[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=T-1,e.match_available=0,e.ins_h=0),n}function K(t,e,n,i,s,a){if(!t)return d;var o=1;if(e===p&&(e=6),i<0?(o=0,i=-i):15<i&&(o=2,i-=16),s<1||A<s||n!==g||i<8||15<i||e<0||9<e||a<0||f<a)return L(t,d);8===i&&(i=9);var c=new H;return(t.state=c).strm=t,c.wrap=o,c.gzhead=null,c.w_bits=i,c.w_size=1<<c.w_bits,c.w_mask=c.w_size-1,c.hash_bits=s+7,c.hash_size=1<<c.hash_bits,c.hash_mask=c.hash_size-1,c.hash_shift=~~((c.hash_bits+T-1)/T),c.window=new r.Buf8(2*c.w_size),c.head=new r.Buf16(c.hash_size),c.prev=new r.Buf16(c.w_size),c.lit_bufsize=1<<s+6,c.pending_buf_size=4*c.lit_bufsize,c.pending_buf=new r.Buf8(c.pending_buf_size),c.d_buf=1*c.lit_bufsize,c.l_buf=3*c.lit_bufsize,c.level=e,c.strategy=a,c.method=n,j(t)}i=[new G(0,0,0,0,function(t,e){var n=65535;for(n>t.pending_buf_size-5&&(n=t.pending_buf_size-5);;){if(t.lookahead<=1){if(D(t),0===t.lookahead&&e===l)return R;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+n;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,B(t,!1),0===t.strm.avail_out))return R;if(t.strstart-t.block_start>=t.w_size-M&&(B(t,!1),0===t.strm.avail_out))return R}return t.insert=0,e===u?(B(t,!0),0===t.strm.avail_out?k:_):(t.strstart>t.block_start&&(B(t,!1),t.strm.avail_out),R)}),new G(4,4,8,4,O),new G(4,5,16,8,O),new G(4,6,32,32,O),new G(4,4,16,16,J),new G(8,16,32,32,J),new G(8,16,128,128,J),new G(8,32,128,256,J),new G(32,128,258,1024,J),new G(32,258,258,4096,J)],n.deflateInit=function(t,e){return K(t,e,g,15,8,0)},n.deflateInit2=K,n.deflateReset=j,n.deflateResetKeep=q,n.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?d:(t.state.gzhead=e,h):d},n.deflate=function(t,e){var n,r,a,c;if(!t||!t.state||5<e||e<0)return t?L(t,d):d;if(r=t.state,!t.output||!t.input&&0!==t.avail_in||666===r.status&&e!==u)return L(t,0===t.avail_out?-5:d);if(r.strm=t,n=r.last_flush,r.last_flush=e,r.status===E)if(2===r.wrap)t.adler=0,V(r,31),V(r,139),V(r,8),r.gzhead?(V(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),V(r,255&r.gzhead.time),V(r,r.gzhead.time>>8&255),V(r,r.gzhead.time>>16&255),V(r,r.gzhead.time>>24&255),V(r,9===r.level?2:2<=r.strategy||r.level<2?4:0),V(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(V(r,255&r.gzhead.extra.length),V(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(t.adler=o(t.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(V(r,0),V(r,0),V(r,0),V(r,0),V(r,0),V(r,9===r.level?2:2<=r.strategy||r.level<2?4:0),V(r,3),r.status=w);else{var p=g+(r.w_bits-8<<4)<<8;p|=(2<=r.strategy||r.level<2?0:r.level<6?1:6===r.level?2:3)<<6,0!==r.strstart&&(p|=32),p+=31-p%31,r.status=w,P(r,p),0!==r.strstart&&(P(r,t.adler>>>16),P(r,65535&t.adler)),t.adler=1}if(69===r.status)if(r.gzhead.extra){for(a=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>a&&(t.adler=o(t.adler,r.pending_buf,r.pending-a,a)),F(t),a=r.pending,r.pending!==r.pending_buf_size));)V(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>a&&(t.adler=o(t.adler,r.pending_buf,r.pending-a,a)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){a=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(t.adler=o(t.adler,r.pending_buf,r.pending-a,a)),F(t),a=r.pending,r.pending===r.pending_buf_size)){c=1;break}c=r.gzindex<r.gzhead.name.length?255&r.gzhead.name.charCodeAt(r.gzindex++):0,V(r,c)}while(0!==c);r.gzhead.hcrc&&r.pending>a&&(t.adler=o(t.adler,r.pending_buf,r.pending-a,a)),0===c&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){a=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(t.adler=o(t.adler,r.pending_buf,r.pending-a,a)),F(t),a=r.pending,r.pending===r.pending_buf_size)){c=1;break}c=r.gzindex<r.gzhead.comment.length?255&r.gzhead.comment.charCodeAt(r.gzindex++):0,V(r,c)}while(0!==c);r.gzhead.hcrc&&r.pending>a&&(t.adler=o(t.adler,r.pending_buf,r.pending-a,a)),0===c&&(r.status=103)}else r.status=103;if(103===r.status&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&F(t),r.pending+2<=r.pending_buf_size&&(V(r,255&t.adler),V(r,t.adler>>8&255),t.adler=0,r.status=w)):r.status=w),0!==r.pending){if(F(t),0===t.avail_out)return r.last_flush=-1,h}else if(0===t.avail_in&&U(e)<=U(n)&&e!==u)return L(t,-5);if(666===r.status&&0!==t.avail_in)return L(t,-5);if(0!==t.avail_in||0!==r.lookahead||e!==l&&666!==r.status){var f=2===r.strategy?function(t,e){for(var n;;){if(0===t.lookahead&&(D(t),0===t.lookahead)){if(e===l)return R;break}if(t.match_length=0,n=s._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(B(t,!1),0===t.strm.avail_out))return R}return t.insert=0,e===u?(B(t,!0),0===t.strm.avail_out?k:_):t.last_lit&&(B(t,!1),0===t.strm.avail_out)?R:C}(r,e):3===r.strategy?function(t,e){for(var n,i,r,a,o=t.window;;){if(t.lookahead<=I){if(D(t),t.lookahead<=I&&e===l)return R;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=T&&0<t.strstart&&(i=o[r=t.strstart-1])===o[++r]&&i===o[++r]&&i===o[++r]){a=t.strstart+I;do{}while(i===o[++r]&&i===o[++r]&&i===o[++r]&&i===o[++r]&&i===o[++r]&&i===o[++r]&&i===o[++r]&&i===o[++r]&&r<a);t.match_length=I-(a-r),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=T?(n=s._tr_tally(t,1,t.match_length-T),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=s._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(B(t,!1),0===t.strm.avail_out))return R}return t.insert=0,e===u?(B(t,!0),0===t.strm.avail_out?k:_):t.last_lit&&(B(t,!1),0===t.strm.avail_out)?R:C}(r,e):i[r.level].func(r,e);if(f!==k&&f!==_||(r.status=666),f===R||f===k)return 0===t.avail_out&&(r.last_flush=-1),h;if(f===C&&(1===e?s._tr_align(r):5!==e&&(s._tr_stored_block(r,0,0,!1),3===e&&(N(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),F(t),0===t.avail_out))return r.last_flush=-1,h}return e!==u?h:r.wrap<=0?1:(2===r.wrap?(V(r,255&t.adler),V(r,t.adler>>8&255),V(r,t.adler>>16&255),V(r,t.adler>>24&255),V(r,255&t.total_in),V(r,t.total_in>>8&255),V(r,t.total_in>>16&255),V(r,t.total_in>>24&255)):(P(r,t.adler>>>16),P(r,65535&t.adler)),F(t),0<r.wrap&&(r.wrap=-r.wrap),0!==r.pending?h:1)},n.deflateEnd=function(t){var e;return t&&t.state?(e=t.state.status)!==E&&69!==e&&73!==e&&91!==e&&103!==e&&e!==w&&666!==e?L(t,d):(t.state=null,e===w?L(t,-3):h):d},n.deflateSetDictionary=function(t,e){var n,i,s,o,c,l,u,p,f=e.length;if(!t||!t.state)return d;if(2===(o=(n=t.state).wrap)||1===o&&n.status!==E||n.lookahead)return d;for(1===o&&(t.adler=a(t.adler,e,f,0)),n.wrap=0,f>=n.w_size&&(0===o&&(N(n.head),n.strstart=0,n.block_start=0,n.insert=0),p=new r.Buf8(n.w_size),r.arraySet(p,e,f-n.w_size,n.w_size,0),e=p,f=n.w_size),c=t.avail_in,l=t.next_in,u=t.input,t.avail_in=f,t.next_in=0,t.input=e,D(n);n.lookahead>=T;){for(i=n.strstart,s=n.lookahead-(T-1);n.ins_h=(n.ins_h<<n.hash_shift^n.window[i+T-1])&n.hash_mask,n.prev[i&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=i,i++,--s;);n.strstart=i,n.lookahead=T-1,D(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=T-1,n.match_available=0,t.next_in=l,t.input=u,t.avail_in=c,n.wrap=o,h},n.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(t,e,n){e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(t,e,n){e.exports=function(t,e){var n,i,r,s,a,o,c,l,u,h,d,p,f,m,g,A,y,v,S,x,b,T,I,M,E;n=t.state,i=t.next_in,M=t.input,r=i+(t.avail_in-5),s=t.next_out,E=t.output,a=s-(e-t.avail_out),o=s+(t.avail_out-257),c=n.dmax,l=n.wsize,u=n.whave,h=n.wnext,d=n.window,p=n.hold,f=n.bits,m=n.lencode,g=n.distcode,A=(1<<n.lenbits)-1,y=(1<<n.distbits)-1;t:do{f<15&&(p+=M[i++]<<f,f+=8,p+=M[i++]<<f,f+=8),v=m[p&A];e:for(;;){if(p>>>=S=v>>>24,f-=S,0==(S=v>>>16&255))E[s++]=65535&v;else{if(!(16&S)){if(!(64&S)){v=m[(65535&v)+(p&(1<<S)-1)];continue e}if(32&S){n.mode=12;break t}t.msg="invalid literal/length code",n.mode=30;break t}x=65535&v,(S&=15)&&(f<S&&(p+=M[i++]<<f,f+=8),x+=p&(1<<S)-1,p>>>=S,f-=S),f<15&&(p+=M[i++]<<f,f+=8,p+=M[i++]<<f,f+=8),v=g[p&y];n:for(;;){if(p>>>=S=v>>>24,f-=S,!(16&(S=v>>>16&255))){if(!(64&S)){v=g[(65535&v)+(p&(1<<S)-1)];continue n}t.msg="invalid distance code",n.mode=30;break t}if(b=65535&v,f<(S&=15)&&(p+=M[i++]<<f,(f+=8)<S&&(p+=M[i++]<<f,f+=8)),c<(b+=p&(1<<S)-1)){t.msg="invalid distance too far back",n.mode=30;break t}if(p>>>=S,f-=S,(S=s-a)<b){if(u<(S=b-S)&&n.sane){t.msg="invalid distance too far back",n.mode=30;break t}if(I=d,(T=0)===h){if(T+=l-S,S<x){for(x-=S;E[s++]=d[T++],--S;);T=s-b,I=E}}else if(h<S){if(T+=l+h-S,(S-=h)<x){for(x-=S;E[s++]=d[T++],--S;);if(T=0,h<x){for(x-=S=h;E[s++]=d[T++],--S;);T=s-b,I=E}}}else if(T+=h-S,S<x){for(x-=S;E[s++]=d[T++],--S;);T=s-b,I=E}for(;2<x;)E[s++]=I[T++],E[s++]=I[T++],E[s++]=I[T++],x-=3;x&&(E[s++]=I[T++],1<x&&(E[s++]=I[T++]))}else{for(T=s-b;E[s++]=E[T++],E[s++]=E[T++],E[s++]=E[T++],2<(x-=3););x&&(E[s++]=E[T++],1<x&&(E[s++]=E[T++]))}break}}break}}while(i<r&&s<o);i-=x=f>>3,p&=(1<<(f-=x<<3))-1,t.next_in=i,t.next_out=s,t.avail_in=i<r?r-i+5:5-(i-r),t.avail_out=s<o?o-s+257:257-(s-o),n.hold=p,n.bits=f}},{}],49:[function(t,e,n){var i=t("../utils/common"),r=t("./adler32"),s=t("./crc32"),a=t("./inffast"),o=t("./inftrees"),c=1,l=2,u=0,h=-2,d=1,p=852,f=592;function m(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function g(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new i.Buf16(320),this.work=new i.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function A(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=d,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new i.Buf32(p),e.distcode=e.distdyn=new i.Buf32(f),e.sane=1,e.back=-1,u):h}function y(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,A(t)):h}function v(t,e){var n,i;return t&&t.state?(i=t.state,e<0?(n=0,e=-e):(n=1+(e>>4),e<48&&(e&=15)),e&&(e<8||15<e)?h:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=n,i.wbits=e,y(t))):h}function S(t,e){var n,i;return t?(i=new g,(t.state=i).window=null,(n=v(t,e))!==u&&(t.state=null),n):h}var x,b,T=!0;function I(t){if(T){var e;for(x=new i.Buf32(512),b=new i.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(o(c,t.lens,0,288,x,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;o(l,t.lens,0,32,b,0,t.work,{bits:5}),T=!1}t.lencode=x,t.lenbits=9,t.distcode=b,t.distbits=5}function M(t,e,n,r){var s,a=t.state;return null===a.window&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new i.Buf8(a.wsize)),r>=a.wsize?(i.arraySet(a.window,e,n-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(r<(s=a.wsize-a.wnext)&&(s=r),i.arraySet(a.window,e,n-r,s,a.wnext),(r-=s)?(i.arraySet(a.window,e,n-r,r,0),a.wnext=r,a.whave=a.wsize):(a.wnext+=s,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=s))),0}n.inflateReset=y,n.inflateReset2=v,n.inflateResetKeep=A,n.inflateInit=function(t){return S(t,15)},n.inflateInit2=S,n.inflate=function(t,e){var n,p,f,g,A,y,v,S,x,b,T,E,w,R,C,k,_,L,U,N,F,B,V,P,W=0,D=new i.Buf8(4),O=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return h;12===(n=t.state).mode&&(n.mode=13),A=t.next_out,f=t.output,v=t.avail_out,g=t.next_in,p=t.input,y=t.avail_in,S=n.hold,x=n.bits,b=y,T=v,B=u;t:for(;;)switch(n.mode){case d:if(0===n.wrap){n.mode=13;break}for(;x<16;){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}if(2&n.wrap&&35615===S){D[n.check=0]=255&S,D[1]=S>>>8&255,n.check=s(n.check,D,2,0),x=S=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&S)<<8)+(S>>8))%31){t.msg="incorrect header check",n.mode=30;break}if(8!=(15&S)){t.msg="unknown compression method",n.mode=30;break}if(x-=4,F=8+(15&(S>>>=4)),0===n.wbits)n.wbits=F;else if(F>n.wbits){t.msg="invalid window size",n.mode=30;break}n.dmax=1<<F,t.adler=n.check=1,n.mode=512&S?10:12,x=S=0;break;case 2:for(;x<16;){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}if(n.flags=S,8!=(255&n.flags)){t.msg="unknown compression method",n.mode=30;break}if(57344&n.flags){t.msg="unknown header flags set",n.mode=30;break}n.head&&(n.head.text=S>>8&1),512&n.flags&&(D[0]=255&S,D[1]=S>>>8&255,n.check=s(n.check,D,2,0)),x=S=0,n.mode=3;case 3:for(;x<32;){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}n.head&&(n.head.time=S),512&n.flags&&(D[0]=255&S,D[1]=S>>>8&255,D[2]=S>>>16&255,D[3]=S>>>24&255,n.check=s(n.check,D,4,0)),x=S=0,n.mode=4;case 4:for(;x<16;){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}n.head&&(n.head.xflags=255&S,n.head.os=S>>8),512&n.flags&&(D[0]=255&S,D[1]=S>>>8&255,n.check=s(n.check,D,2,0)),x=S=0,n.mode=5;case 5:if(1024&n.flags){for(;x<16;){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}n.length=S,n.head&&(n.head.extra_len=S),512&n.flags&&(D[0]=255&S,D[1]=S>>>8&255,n.check=s(n.check,D,2,0)),x=S=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&(y<(E=n.length)&&(E=y),E&&(n.head&&(F=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),i.arraySet(n.head.extra,p,g,E,F)),512&n.flags&&(n.check=s(n.check,p,E,g)),y-=E,g+=E,n.length-=E),n.length))break t;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===y)break t;for(E=0;F=p[g+E++],n.head&&F&&n.length<65536&&(n.head.name+=String.fromCharCode(F)),F&&E<y;);if(512&n.flags&&(n.check=s(n.check,p,E,g)),y-=E,g+=E,F)break t}else n.head&&(n.head.name=null);n.length=0,n.mode=8;case 8:if(4096&n.flags){if(0===y)break t;for(E=0;F=p[g+E++],n.head&&F&&n.length<65536&&(n.head.comment+=String.fromCharCode(F)),F&&E<y;);if(512&n.flags&&(n.check=s(n.check,p,E,g)),y-=E,g+=E,F)break t}else n.head&&(n.head.comment=null);n.mode=9;case 9:if(512&n.flags){for(;x<16;){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}if(S!==(65535&n.check)){t.msg="header crc mismatch",n.mode=30;break}x=S=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=12;break;case 10:for(;x<32;){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}t.adler=n.check=m(S),x=S=0,n.mode=11;case 11:if(0===n.havedict)return t.next_out=A,t.avail_out=v,t.next_in=g,t.avail_in=y,n.hold=S,n.bits=x,2;t.adler=n.check=1,n.mode=12;case 12:if(5===e||6===e)break t;case 13:if(n.last){S>>>=7&x,x-=7&x,n.mode=27;break}for(;x<3;){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}switch(n.last=1&S,x-=1,3&(S>>>=1)){case 0:n.mode=14;break;case 1:if(I(n),n.mode=20,6!==e)break;S>>>=2,x-=2;break t;case 2:n.mode=17;break;case 3:t.msg="invalid block type",n.mode=30}S>>>=2,x-=2;break;case 14:for(S>>>=7&x,x-=7&x;x<32;){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}if((65535&S)!=(S>>>16^65535)){t.msg="invalid stored block lengths",n.mode=30;break}if(n.length=65535&S,x=S=0,n.mode=15,6===e)break t;case 15:n.mode=16;case 16:if(E=n.length){if(y<E&&(E=y),v<E&&(E=v),0===E)break t;i.arraySet(f,p,g,E,A),y-=E,g+=E,v-=E,A+=E,n.length-=E;break}n.mode=12;break;case 17:for(;x<14;){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}if(n.nlen=257+(31&S),S>>>=5,x-=5,n.ndist=1+(31&S),S>>>=5,x-=5,n.ncode=4+(15&S),S>>>=4,x-=4,286<n.nlen||30<n.ndist){t.msg="too many length or distance symbols",n.mode=30;break}n.have=0,n.mode=18;case 18:for(;n.have<n.ncode;){for(;x<3;){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}n.lens[O[n.have++]]=7&S,S>>>=3,x-=3}for(;n.have<19;)n.lens[O[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,V={bits:n.lenbits},B=o(0,n.lens,0,19,n.lencode,0,n.work,V),n.lenbits=V.bits,B){t.msg="invalid code lengths set",n.mode=30;break}n.have=0,n.mode=19;case 19:for(;n.have<n.nlen+n.ndist;){for(;k=(W=n.lencode[S&(1<<n.lenbits)-1])>>>16&255,_=65535&W,!((C=W>>>24)<=x);){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}if(_<16)S>>>=C,x-=C,n.lens[n.have++]=_;else{if(16===_){for(P=C+2;x<P;){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}if(S>>>=C,x-=C,0===n.have){t.msg="invalid bit length repeat",n.mode=30;break}F=n.lens[n.have-1],E=3+(3&S),S>>>=2,x-=2}else if(17===_){for(P=C+3;x<P;){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}x-=C,F=0,E=3+(7&(S>>>=C)),S>>>=3,x-=3}else{for(P=C+7;x<P;){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}x-=C,F=0,E=11+(127&(S>>>=C)),S>>>=7,x-=7}if(n.have+E>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=30;break}for(;E--;)n.lens[n.have++]=F}}if(30===n.mode)break;if(0===n.lens[256]){t.msg="invalid code -- missing end-of-block",n.mode=30;break}if(n.lenbits=9,V={bits:n.lenbits},B=o(c,n.lens,0,n.nlen,n.lencode,0,n.work,V),n.lenbits=V.bits,B){t.msg="invalid literal/lengths set",n.mode=30;break}if(n.distbits=6,n.distcode=n.distdyn,V={bits:n.distbits},B=o(l,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,V),n.distbits=V.bits,B){t.msg="invalid distances set",n.mode=30;break}if(n.mode=20,6===e)break t;case 20:n.mode=21;case 21:if(6<=y&&258<=v){t.next_out=A,t.avail_out=v,t.next_in=g,t.avail_in=y,n.hold=S,n.bits=x,a(t,T),A=t.next_out,f=t.output,v=t.avail_out,g=t.next_in,p=t.input,y=t.avail_in,S=n.hold,x=n.bits,12===n.mode&&(n.back=-1);break}for(n.back=0;k=(W=n.lencode[S&(1<<n.lenbits)-1])>>>16&255,_=65535&W,!((C=W>>>24)<=x);){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}if(k&&!(240&k)){for(L=C,U=k,N=_;k=(W=n.lencode[N+((S&(1<<L+U)-1)>>L)])>>>16&255,_=65535&W,!(L+(C=W>>>24)<=x);){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}S>>>=L,x-=L,n.back+=L}if(S>>>=C,x-=C,n.back+=C,n.length=_,0===k){n.mode=26;break}if(32&k){n.back=-1,n.mode=12;break}if(64&k){t.msg="invalid literal/length code",n.mode=30;break}n.extra=15&k,n.mode=22;case 22:if(n.extra){for(P=n.extra;x<P;){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}n.length+=S&(1<<n.extra)-1,S>>>=n.extra,x-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;k=(W=n.distcode[S&(1<<n.distbits)-1])>>>16&255,_=65535&W,!((C=W>>>24)<=x);){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}if(!(240&k)){for(L=C,U=k,N=_;k=(W=n.distcode[N+((S&(1<<L+U)-1)>>L)])>>>16&255,_=65535&W,!(L+(C=W>>>24)<=x);){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}S>>>=L,x-=L,n.back+=L}if(S>>>=C,x-=C,n.back+=C,64&k){t.msg="invalid distance code",n.mode=30;break}n.offset=_,n.extra=15&k,n.mode=24;case 24:if(n.extra){for(P=n.extra;x<P;){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}n.offset+=S&(1<<n.extra)-1,S>>>=n.extra,x-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=30;break}n.mode=25;case 25:if(0===v)break t;if(E=T-v,n.offset>E){if((E=n.offset-E)>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=30;break}w=E>n.wnext?(E-=n.wnext,n.wsize-E):n.wnext-E,E>n.length&&(E=n.length),R=n.window}else R=f,w=A-n.offset,E=n.length;for(v<E&&(E=v),v-=E,n.length-=E;f[A++]=R[w++],--E;);0===n.length&&(n.mode=21);break;case 26:if(0===v)break t;f[A++]=n.length,v--,n.mode=21;break;case 27:if(n.wrap){for(;x<32;){if(0===y)break t;y--,S|=p[g++]<<x,x+=8}if(T-=v,t.total_out+=T,n.total+=T,T&&(t.adler=n.check=n.flags?s(n.check,f,T,A-T):r(n.check,f,T,A-T)),T=v,(n.flags?S:m(S))!==n.check){t.msg="incorrect data check",n.mode=30;break}x=S=0}n.mode=28;case 28:if(n.wrap&&n.flags){for(;x<32;){if(0===y)break t;y--,S+=p[g++]<<x,x+=8}if(S!==(4294967295&n.total)){t.msg="incorrect length check",n.mode=30;break}x=S=0}n.mode=29;case 29:B=1;break t;case 30:B=-3;break t;case 31:return-4;default:return h}return t.next_out=A,t.avail_out=v,t.next_in=g,t.avail_in=y,n.hold=S,n.bits=x,(n.wsize||T!==t.avail_out&&n.mode<30&&(n.mode<27||4!==e))&&M(t,t.output,t.next_out,T-t.avail_out)?(n.mode=31,-4):(b-=t.avail_in,T-=t.avail_out,t.total_in+=b,t.total_out+=T,n.total+=T,n.wrap&&T&&(t.adler=n.check=n.flags?s(n.check,f,T,t.next_out-T):r(n.check,f,T,t.next_out-T)),t.data_type=n.bits+(n.last?64:0)+(12===n.mode?128:0)+(20===n.mode||15===n.mode?256:0),(0==b&&0===T||4===e)&&B===u&&(B=-5),B)},n.inflateEnd=function(t){if(!t||!t.state)return h;var e=t.state;return e.window&&(e.window=null),t.state=null,u},n.inflateGetHeader=function(t,e){var n;return t&&t.state&&2&(n=t.state).wrap?((n.head=e).done=!1,u):h},n.inflateSetDictionary=function(t,e){var n,i=e.length;return t&&t.state?0!==(n=t.state).wrap&&11!==n.mode?h:11===n.mode&&r(1,e,i,0)!==n.check?-3:M(t,e,i,i)?(n.mode=31,-4):(n.havedict=1,u):h},n.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(t,e,n){var i=t("../utils/common"),r=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],s=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],a=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],o=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];e.exports=function(t,e,n,c,l,u,h,d){var p,f,m,g,A,y,v,S,x,b=d.bits,T=0,I=0,M=0,E=0,w=0,R=0,C=0,k=0,_=0,L=0,U=null,N=0,F=new i.Buf16(16),B=new i.Buf16(16),V=null,P=0;for(T=0;T<=15;T++)F[T]=0;for(I=0;I<c;I++)F[e[n+I]]++;for(w=b,E=15;1<=E&&0===F[E];E--);if(E<w&&(w=E),0===E)return l[u++]=20971520,l[u++]=20971520,d.bits=1,0;for(M=1;M<E&&0===F[M];M++);for(w<M&&(w=M),T=k=1;T<=15;T++)if(k<<=1,(k-=F[T])<0)return-1;if(0<k&&(0===t||1!==E))return-1;for(B[1]=0,T=1;T<15;T++)B[T+1]=B[T]+F[T];for(I=0;I<c;I++)0!==e[n+I]&&(h[B[e[n+I]]++]=I);if(y=0===t?(U=V=h,19):1===t?(U=r,N-=257,V=s,P-=257,256):(U=a,V=o,-1),T=M,A=u,C=I=L=0,m=-1,g=(_=1<<(R=w))-1,1===t&&852<_||2===t&&592<_)return 1;for(;;){for(v=T-C,x=h[I]<y?(S=0,h[I]):h[I]>y?(S=V[P+h[I]],U[N+h[I]]):(S=96,0),p=1<<T-C,M=f=1<<R;l[A+(L>>C)+(f-=p)]=v<<24|S<<16|x,0!==f;);for(p=1<<T-1;L&p;)p>>=1;if(0!==p?(L&=p-1,L+=p):L=0,I++,0==--F[T]){if(T===E)break;T=e[n+h[I]]}if(w<T&&(L&g)!==m){for(0===C&&(C=w),A+=M,k=1<<(R=T-C);R+C<E&&!((k-=F[R+C])<=0);)R++,k<<=1;if(_+=1<<R,1===t&&852<_||2===t&&592<_)return 1;l[m=L&g]=w<<24|R<<16|A-u}}return 0!==L&&(l[A+L]=T-C<<24|64<<16),d.bits=w,0}},{"../utils/common":41}],51:[function(t,e,n){e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(t,e,n){var i=t("../utils/common"),r=0,s=1;function a(t){for(var e=t.length;0<=--e;)t[e]=0}var o=0,c=29,l=256,u=l+1+c,h=30,d=19,p=2*u+1,f=15,m=16,g=7,A=256,y=16,v=17,S=18,x=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],b=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],T=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],I=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],M=new Array(2*(u+2));a(M);var E=new Array(2*h);a(E);var w=new Array(512);a(w);var R=new Array(256);a(R);var C=new Array(c);a(C);var k,_,L,U=new Array(h);function N(t,e,n,i,r){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=i,this.max_length=r,this.has_stree=t&&t.length}function F(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function B(t){return t<256?w[t]:w[256+(t>>>7)]}function V(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function P(t,e,n){t.bi_valid>m-n?(t.bi_buf|=e<<t.bi_valid&65535,V(t,t.bi_buf),t.bi_buf=e>>m-t.bi_valid,t.bi_valid+=n-m):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)}function W(t,e,n){P(t,n[2*e],n[2*e+1])}function D(t,e){for(var n=0;n|=1&t,t>>>=1,n<<=1,0<--e;);return n>>>1}function O(t,e,n){var i,r,s=new Array(f+1),a=0;for(i=1;i<=f;i++)s[i]=a=a+n[i-1]<<1;for(r=0;r<=e;r++){var o=t[2*r+1];0!==o&&(t[2*r]=D(s[o]++,o))}}function J(t){var e;for(e=0;e<u;e++)t.dyn_ltree[2*e]=0;for(e=0;e<h;e++)t.dyn_dtree[2*e]=0;for(e=0;e<d;e++)t.bl_tree[2*e]=0;t.dyn_ltree[2*A]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function G(t){8<t.bi_valid?V(t,t.bi_buf):0<t.bi_valid&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function H(t,e,n,i){var r=2*e,s=2*n;return t[r]<t[s]||t[r]===t[s]&&i[e]<=i[n]}function q(t,e,n){for(var i=t.heap[n],r=n<<1;r<=t.heap_len&&(r<t.heap_len&&H(e,t.heap[r+1],t.heap[r],t.depth)&&r++,!H(e,i,t.heap[r],t.depth));)t.heap[n]=t.heap[r],n=r,r<<=1;t.heap[n]=i}function j(t,e,n){var i,r,s,a,o=0;if(0!==t.last_lit)for(;i=t.pending_buf[t.d_buf+2*o]<<8|t.pending_buf[t.d_buf+2*o+1],r=t.pending_buf[t.l_buf+o],o++,0===i?W(t,r,e):(W(t,(s=R[r])+l+1,e),0!==(a=x[s])&&P(t,r-=C[s],a),W(t,s=B(--i),n),0!==(a=b[s])&&P(t,i-=U[s],a)),o<t.last_lit;);W(t,A,e)}function K(t,e){var n,i,r,s=e.dyn_tree,a=e.stat_desc.static_tree,o=e.stat_desc.has_stree,c=e.stat_desc.elems,l=-1;for(t.heap_len=0,t.heap_max=p,n=0;n<c;n++)0!==s[2*n]?(t.heap[++t.heap_len]=l=n,t.depth[n]=0):s[2*n+1]=0;for(;t.heap_len<2;)s[2*(r=t.heap[++t.heap_len]=l<2?++l:0)]=1,t.depth[r]=0,t.opt_len--,o&&(t.static_len-=a[2*r+1]);for(e.max_code=l,n=t.heap_len>>1;1<=n;n--)q(t,s,n);for(r=c;n=t.heap[1],t.heap[1]=t.heap[t.heap_len--],q(t,s,1),i=t.heap[1],t.heap[--t.heap_max]=n,t.heap[--t.heap_max]=i,s[2*r]=s[2*n]+s[2*i],t.depth[r]=(t.depth[n]>=t.depth[i]?t.depth[n]:t.depth[i])+1,s[2*n+1]=s[2*i+1]=r,t.heap[1]=r++,q(t,s,1),2<=t.heap_len;);t.heap[--t.heap_max]=t.heap[1],function(t,e){var n,i,r,s,a,o,c=e.dyn_tree,l=e.max_code,u=e.stat_desc.static_tree,h=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,m=e.stat_desc.extra_base,g=e.stat_desc.max_length,A=0;for(s=0;s<=f;s++)t.bl_count[s]=0;for(c[2*t.heap[t.heap_max]+1]=0,n=t.heap_max+1;n<p;n++)g<(s=c[2*c[2*(i=t.heap[n])+1]+1]+1)&&(s=g,A++),c[2*i+1]=s,l<i||(t.bl_count[s]++,a=0,m<=i&&(a=d[i-m]),o=c[2*i],t.opt_len+=o*(s+a),h&&(t.static_len+=o*(u[2*i+1]+a)));if(0!==A){do{for(s=g-1;0===t.bl_count[s];)s--;t.bl_count[s]--,t.bl_count[s+1]+=2,t.bl_count[g]--,A-=2}while(0<A);for(s=g;0!==s;s--)for(i=t.bl_count[s];0!==i;)l<(r=t.heap[--n])||(c[2*r+1]!==s&&(t.opt_len+=(s-c[2*r+1])*c[2*r],c[2*r+1]=s),i--)}}(t,e),O(s,l,t.bl_count)}function z(t,e,n){var i,r,s=-1,a=e[1],o=0,c=7,l=4;for(0===a&&(c=138,l=3),e[2*(n+1)+1]=65535,i=0;i<=n;i++)r=a,a=e[2*(i+1)+1],++o<c&&r===a||(o<l?t.bl_tree[2*r]+=o:0!==r?(r!==s&&t.bl_tree[2*r]++,t.bl_tree[2*y]++):o<=10?t.bl_tree[2*v]++:t.bl_tree[2*S]++,s=r,l=(o=0)===a?(c=138,3):r===a?(c=6,3):(c=7,4))}function X(t,e,n){var i,r,s=-1,a=e[1],o=0,c=7,l=4;for(0===a&&(c=138,l=3),i=0;i<=n;i++)if(r=a,a=e[2*(i+1)+1],!(++o<c&&r===a)){if(o<l)for(;W(t,r,t.bl_tree),0!=--o;);else 0!==r?(r!==s&&(W(t,r,t.bl_tree),o--),W(t,y,t.bl_tree),P(t,o-3,2)):o<=10?(W(t,v,t.bl_tree),P(t,o-3,3)):(W(t,S,t.bl_tree),P(t,o-11,7));s=r,l=(o=0)===a?(c=138,3):r===a?(c=6,3):(c=7,4)}}a(U);var Z=!1;function Q(t,e,n,r){var s,a,c;P(t,(o<<1)+(r?1:0),3),a=e,c=n,G(s=t),V(s,c),V(s,~c),i.arraySet(s.pending_buf,s.window,a,c,s.pending),s.pending+=c}n._tr_init=function(t){Z||(function(){var t,e,n,i,r,s=new Array(f+1);for(i=n=0;i<c-1;i++)for(C[i]=n,t=0;t<1<<x[i];t++)R[n++]=i;for(R[n-1]=i,i=r=0;i<16;i++)for(U[i]=r,t=0;t<1<<b[i];t++)w[r++]=i;for(r>>=7;i<h;i++)for(U[i]=r<<7,t=0;t<1<<b[i]-7;t++)w[256+r++]=i;for(e=0;e<=f;e++)s[e]=0;for(t=0;t<=143;)M[2*t+1]=8,t++,s[8]++;for(;t<=255;)M[2*t+1]=9,t++,s[9]++;for(;t<=279;)M[2*t+1]=7,t++,s[7]++;for(;t<=287;)M[2*t+1]=8,t++,s[8]++;for(O(M,u+1,s),t=0;t<h;t++)E[2*t+1]=5,E[2*t]=D(t,5);k=new N(M,x,l+1,u,f),_=new N(E,b,0,h,f),L=new N(new Array(0),T,0,d,g)}(),Z=!0),t.l_desc=new F(t.dyn_ltree,k),t.d_desc=new F(t.dyn_dtree,_),t.bl_desc=new F(t.bl_tree,L),t.bi_buf=0,t.bi_valid=0,J(t)},n._tr_stored_block=Q,n._tr_flush_block=function(t,e,n,i){var a,o,c=0;0<t.level?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,n=4093624447;for(e=0;e<=31;e++,n>>>=1)if(1&n&&0!==t.dyn_ltree[2*e])return r;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return s;for(e=32;e<l;e++)if(0!==t.dyn_ltree[2*e])return s;return r}(t)),K(t,t.l_desc),K(t,t.d_desc),c=function(t){var e;for(z(t,t.dyn_ltree,t.l_desc.max_code),z(t,t.dyn_dtree,t.d_desc.max_code),K(t,t.bl_desc),e=d-1;3<=e&&0===t.bl_tree[2*I[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),a=t.opt_len+3+7>>>3,(o=t.static_len+3+7>>>3)<=a&&(a=o)):a=o=n+5,n+4<=a&&-1!==e?Q(t,e,n,i):4===t.strategy||o===a?(P(t,2+(i?1:0),3),j(t,M,E)):(P(t,4+(i?1:0),3),function(t,e,n,i){var r;for(P(t,e-257,5),P(t,n-1,5),P(t,i-4,4),r=0;r<i;r++)P(t,t.bl_tree[2*I[r]+1],3);X(t,t.dyn_ltree,e-1),X(t,t.dyn_dtree,n-1)}(t,t.l_desc.max_code+1,t.d_desc.max_code+1,c+1),j(t,t.dyn_ltree,t.dyn_dtree)),J(t),i&&G(t)},n._tr_tally=function(t,e,n){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&n,t.last_lit++,0===e?t.dyn_ltree[2*n]++:(t.matches++,e--,t.dyn_ltree[2*(R[n]+l+1)]++,t.dyn_dtree[2*B(e)]++),t.last_lit===t.lit_bufsize-1},n._tr_align=function(t){var e;P(t,2,3),W(t,A,M),16===(e=t).bi_valid?(V(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}},{"../utils/common":41}],53:[function(t,e,n){e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,e,n){(function(t){!function(t,e){if(!t.setImmediate){var n,i,r,s,a=1,o={},c=!1,l=t.document,u=Object.getPrototypeOf&&Object.getPrototypeOf(t);u=u&&u.setTimeout?u:t,n="[object process]"==={}.toString.call(t.process)?function(t){process.nextTick(function(){d(t)})}:function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?(s="setImmediate$"+Math.random()+"$",t.addEventListener?t.addEventListener("message",p,!1):t.attachEvent("onmessage",p),function(e){t.postMessage(s+e,"*")}):t.MessageChannel?((r=new MessageChannel).port1.onmessage=function(t){d(t.data)},function(t){r.port2.postMessage(t)}):l&&"onreadystatechange"in l.createElement("script")?(i=l.documentElement,function(t){var e=l.createElement("script");e.onreadystatechange=function(){d(t),e.onreadystatechange=null,i.removeChild(e),e=null},i.appendChild(e)}):function(t){setTimeout(d,0,t)},u.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),i=0;i<e.length;i++)e[i]=arguments[i+1];var r={callback:t,args:e};return o[a]=r,n(a),a++},u.clearImmediate=h}function h(t){delete o[t]}function d(t){if(c)setTimeout(d,0,t);else{var n=o[t];if(n){c=!0;try{!function(t){var n=t.callback,i=t.args;switch(i.length){case 0:n();break;case 1:n(i[0]);break;case 2:n(i[0],i[1]);break;case 3:n(i[0],i[1],i[2]);break;default:n.apply(e,i)}}(n)}finally{h(t),c=!1}}}}function p(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(s)&&d(+e.data.slice(s.length))}}("undefined"==typeof self?void 0===t?this:t:self)}).call(this,void 0!==commonjsGlobal?commonjsGlobal:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[10])(10);var jszip_minExports=jszip_min.exports;const C$8=getDefaultExportFromCjs(jszip_minExports),Eg=N$u;function N$u(t,e){const n=E$u();return(N$u=function(t,e){return n[t-=344]})(t,e)}!function(t,e){const n=N$u,i=t();for(;;)try{if(276993===parseInt(n(378))/1*(-parseInt(n(419))/2)+-parseInt(n(381))/3*(parseInt(n(380))/4)+parseInt(n(423))/5+-parseInt(n(394))/6+parseInt(n(494))/7+parseInt(n(375))/8+parseInt(n(345))/9)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$u);let d$k={UNCERTAIN:0,STATIC:1,WALKING:2,RUN:3,DRIVING:4},J$c={HOLD:0,OTHER:1},x$8=d$k[Eg(390)],a$9=J$c[Eg(357)],n$8=0,C$7={t:n$8,stepDetected:!1,step:null,phonePlacement:a$9,motionState:x$8,turnDetected:!1,turnAngle:0},o$5=25,b$8=new Array(o$5),u$7=0,H$7=[],w$6=4e3,g$4=5e3,z$1=0,e$4=0,y$2=0,c$2=[],f$1=0,v$2=100,Q$1=0,W=100,G$1={peak:0,valley:100,pvDiff:0},X=4,O$1=!1,A=0,t=0,L=10.5,j$1=2,r=330,K=200,Y=1500,T$1=(new Date)[Eg(473)](),h=[],p=0,P=.65,M=null,V=[],q$1=[],Z$1,m$1;function md_sensorAcc(t){const e=Eg,n={ViDgl:function(t,e,n,i){return t(e,n,i)}};if(t[e(453)]&&t[e(424)]){var i=t[e(453)];ua[e(368)]&&i&&(i.x=-i.x,i.y=-i.y,i.z=-i.z),n[e(461)](s,t[e(413)],t[e(424)],i)}return C$7}function s(t,e,n){const i=Eg,r={zIebk:function(t,e,n,i,r){return t(e,n,i,r)},PmhNZ:function(t,e,n){return t(e,n)},BtSyv:function(t,e){return t(e)}};var s=r[i(464)](R,t,e,n,Z$1);s&&(x$8=s[i(388)],s[i(481)]&&(r[i(358)](B$1,s.t,1),p+=1),r[i(412)](F,s[i(486)]))}function F(t){({FuOyn:function(t,e){return t!==e}})[Eg(471)](void 0,t)&&(a$9=t)}function B$1(t,e){({ohSoV:function(t,e){return t(e)}})[Eg(480)](k,t)}function S(t,e){const n=Eg,i={SzePo:function(t,e){return t-e},EAOcf:function(t,e){return t>=e},ULlIQ:function(t,e){return t<=e}};var r=i[n(429)](t,e);return i[n(415)](r,180)&&(r-=360),i[n(433)](r,-180)&&(r+=360),r}function k(t){const e=Eg;({VNKCf:function(t,e){return t>e}})[e(372)](h[e(436)],2)&&h[e(348)](),h[e(434)](t)}function E$u(){const t=["WRAOh","VNKCf","gxy_norm","hQHAa","3971472CYHurG","RjHOU","vnduh","421423kZifui","VCitd","310508sguYxK","15QKxTOF","YNCdS","MZrIL","TRHPC","AKTpO","map","nbToF","motionState","dIaKY","UNCERTAIN","iNfrq","yWqLm","abs","2522658TJfPSN","oocLq","DKOAF","Kfvvy","JcApy","VAPqR","XLeno","kxkmW","filter","zsszp","OTHER","qnFyn","KvWfk","UkGOl","itmyg","sRtNO","sqrt","WALKING","BtSyv","timestamp","NdeXc","EAOcf","ixuFm","eZrAT","aBYXc","2qSrkQR","EKlvF","qusQX","xVIIV","765190wNuawY","accelerationIncludingGravity","ERaIR","BxpTr","qAJHo","TiYlM","SzePo","eFClY","5|4|3|6|0|2|1","slice","ULlIQ","push","sBbIQ","length","AlulX","DUQbL","RzQFr","NcZwi","AEdlQ","pAiGX","qiJVe","ogmra","THpbg","kUJhP","IXdzt","2|1|4|0|3","HRZej","ndUuD","YpQlU","yGlhQ","gravity","Wreea","heading","Ukzfj","reduce","PkqHL","pHpIe","HvKkS","ViDgl","MnexY","FMoak","zIebk","sGAhV","krkxq","SDPXg","TlATb","HhDLm","fGIVx","FuOyn","pZvFT","getTime","split","ZeDTz","KmhAw","vzxcC","CraOM","lrzQF","ohSoV","step","MQagB","SFJHz","turnDetected","PxToC","phonePlacement","rzlnj","gVbMh","YIEOZ","LKqKv","Irmjs","TySWt","SewBk","89362MTDIGE","rDxgo","msjBk","7602804EjoCMt","caygC","ZjERe","shift","sBOkg","HQMBz","pvDiff","iBRyO","uebne","norm","NEBtr","assign","HOLD","PmhNZ","peak","xMyhp","valley","2|4|0|1|3","STATIC","sEyyk","QNKeU","ExwTB","OWOnF","ios","VtNNf","iiGjk"];return(E$u=function(){return t})()}function R(t,e,n,r){const s=Eg,a={sGAhV:s(431),itmyg:function(t,e){return t>e},aBYXc:function(t,e){return t-e},AlulX:function(t,e){return t>e},HQMBz:function(t,e){return t(e)},Kfvvy:function(t,e){return t>e},qnFyn:function(t,e,n,i){return t(e,n,i)},nbToF:function(t,e){return t-e},iBRyO:function(t,e){return t>=e},vzxcC:function(t,e){return t-e},AEdlQ:function(t,e){return t(e)},eFClY:function(t,e){return t+e},NcZwi:function(t,e){return t*e},VAPqR:function(t,e){return t*e},VtNNf:function(t,e){return t%e},fGIVx:function(t,e){return t+e},caygC:function(t,e){return t===e},WRAOh:function(t,e,n,i,r){return t(e,n,i,r)}},o=a[s(465)][s(474)]("|");let c=0;for(;;){switch(o[c++]){case"0":if(d){for(h={t,stepLen:P,heading:M},V[s(434)](h),q$1[s(434)](h);a[s(408)](q$1[s(436)],0)&&a[s(408)](a[s(418)](t,q$1[0].t),4e3)||a[s(437)](q$1[s(436)],6);)q$1[s(348)]();(p=a[s(350)](i,q$1[s(386)](function(t){return t[s(455)]})))[s(484)]&&a[s(397)](q$1[s(436)],2)&&(q$1=q$1[s(432)](a[s(418)](q$1[s(436)],2),q$1[s(436)]))}continue;case"1":return x$8=a[s(405)](E3,t,V,b$8),C$7=Object[s(356)]({t,stepDetected:d,step:h,phonePlacement:a$9,motionState:x$8},p),C$7;case"2":for(;a[s(397)](V[s(436)],0)&&a[s(408)](a[s(387)](t,V[0].t),w$6);)V[s(348)]();continue;case"3":a[s(405)](l$1,t,n,l),a[s(352)](a[s(477)](t,n$8),5e3)&&a[s(441)](E2,t);continue;case"4":var l=Math[s(410)](a[s(430)](a[s(430)](a[s(440)](e.x,e.x),a[s(399)](e.y,e.y)),a[s(399)](e.z,e.z))),u=b$8[a[s(369)](a[s(470)](a[s(418)](u$7,1),o$5),o$5)];continue;case"5":if(a[s(346)](0,e.x)&&a[s(346)](0,e.y)&&a[s(346)](0,e.z))return C$7;continue;case"6":var h,d=a[s(371)](D,t,l,u,r),p={turnDetected:!1,turnAngle:0};continue}break}}function i(t){const e=Eg,n={KmhAw:function(t,e){return t<=e},vnduh:function(t,e){return t-e},SFJHz:function(t,e){return t>=e},yGlhQ:function(t,e,n){return t(e,n)},AKTpO:function(t,e){return t>e},rzlnj:function(t,e){return t>=e},CraOM:function(t,e){return t<e},YpQlU:function(t,e){return t-e}};var i={turnDetected:!1,turnAngle:0};if(n[e(476)](t[e(436)],1))return i;for(var r=t[n[e(377)](t[e(436)],1)],s=0,a=n[e(377)](t[e(436)],2);n[e(483)](a,0);a--){var o=n[e(452)](S,r,t[a]);n[e(385)](Math[e(393)](o),Math[e(393)](s))&&(s=o)}return n[e(487)](Math[e(393)](s),45)&&n[e(478)](Math[e(393)](n[e(451)](r,t[n[e(451)](t[e(436)],2)])),15)&&(i={turnDetected:!0,turnAngle:s}),i}function l$1(t,e,n){const i=Eg,r={uebne:i(448),oocLq:function(t,e){return t+e},sRtNO:function(t,e){return t*e},qAJHo:function(t,e){return t*e},sBbIQ:function(t,e){return t*e},iNfrq:function(t,e){return t*e},yWqLm:function(t,e){return t>e},Irmjs:function(t,e){return t-e},msjBk:function(t,e){return t%e},IXdzt:function(t,e){return t+e},iiGjk:function(t,e){return t>e},Wreea:function(t,e){return t>e}};if(e){const c=r[i(353)][i(474)]("|");let l=0;for(;;){switch(c[l++]){case"0":var s=H$7[i(436)];continue;case"1":var a=Math[i(410)](r[i(395)](r[i(395)](r[i(409)](e.x,e.x),r[i(427)](e.y,e.y)),r[i(427)](e.z,e.z))),o=Math[i(410)](r[i(395)](r[i(435)](e.x,e.x),r[i(391)](e.y,e.y)));continue;case"2":e.t=t;continue;case"3":r[i(392)](s,250)&&(H$7=H$7[i(432)](r[i(491)](s,250),s)),b$8[u$7]=n,u$7=r[i(344)](r[i(447)](u$7,1),o$5);continue;case"4":for(e[i(354)]=a,e[i(373)]=o,H$7[i(434)](e);r[i(370)](H$7[i(436)],0)&&r[i(454)](r[i(491)](t,H$7[0].t),g$4);)H$7[i(348)]();continue}break}}}function D(t,e,n,i){const s=Eg,a={pZvFT:function(t,e){return t===e},pAiGX:function(t,e){return t!==e},TRHPC:function(t,e){return t>e},HhDLm:function(t,e){return t>e},kUJhP:function(t,e){return t-e},rDxgo:function(t,e){return t-e},EKlvF:function(t,e){return t<e},eZrAT:function(t,e){return t-e},TiYlM:function(t,e){return t*e},sBOkg:function(t,e){return t>e},DUQbL:function(t,e){return t<e},FMoak:function(t,e){return t===e},lrzQF:function(t,e,n,i){return t(e,n,i)},OWOnF:function(t,e){return t>e},YIEOZ:function(t,e){return t>e},MZrIL:function(t,e){return t(e)},MnexY:function(t,e){return t<=e},dIaKY:function(t,e){return t>e},THpbg:function(t,e){return t-e}};var o=!1;return L=a[s(472)](null,i)?11.1:10.7,a[s(442)](0,y$2)&&a[s(384)](G$1[s(351)],j$1)&&a[s(469)](a[s(446)](t,y$2),K)&&a[s(384)](a[s(495)](y$2,z$1),r)&&(z$1=y$2,o=!0),a[s(420)](e,v$2)&&(v$2=e,Q$1=t),W=a[s(420)](a[s(417)](t,f$1),a[s(428)](2,r))&&a[s(349)](f$1,z$1)&&a[s(438)](m$1,v$2)?m$1:v$2,a[s(442)](0,n)&&a[s(463)](1,a[s(479)](I,t,e,n))&&a[s(367)](a[s(417)](n,W),1.3)&&(a[s(489)](a[s(417)](t,y$2),K)&&(j$1=a[s(383)](E0,a[s(417)](n,W)),m$1=v$2,f$1=Q$1,v$2=100,y$2=t,G$1={peak:n,valley:W,pvDiff:a[s(446)](n,W)}),a[s(462)](a[s(495)](t,y$2),K)&&a[s(389)](n,G$1[s(359)])&&(y$2=t,W=a[s(420)](W,G$1[s(361)])?W:G$1[s(361)],G$1={peak:n,valley:W,pvDiff:a[s(445)](n,W)})),o}function I(e,n,i){const r=Eg,s={ExwTB:function(t,e){return t>e},ogmra:function(t,e){return t<e},LKqKv:function(t,e){return t>=e},HRZej:function(t,e){return t>=e}};var a=O$1,o=0;return s[r(366)](n,i)?(O$1=!0,A++):s[r(444)](n,i)&&(t=A,A=0,O$1=!1),s[r(366)](i,L)&&!O$1&&a&&(s[r(490)](t,1)||s[r(449)](i,12))&&(o=1),o}function E0(t){const e=Eg,n={RzQFr:function(t,e){return t>=e},ZjERe:function(t,e){return t===e},DKOAF:function(t,e){return t(e)}};var i=j$1;return n[e(439)](c$2[e(436)],X)&&c$2[e(348)](),c$2[e(434)](t),n[e(347)](c$2[e(436)],X)&&(i=n[e(396)](E1,c$2)),i}function E1(t){const e=Eg,n={ndUuD:function(t,e){return t+e},KvWfk:function(t,e){return t/e},BxpTr:function(t,e){return t>=e},SDPXg:function(t,e){return t<e},YNCdS:function(t,e){return t>=e},xMyhp:function(t,e){return t<e}};var i=n[e(406)](t[e(457)](function(t,i){return n[e(450)](t,i)},0),X);return n[e(426)](i,8)?4.3:n[e(426)](i,7)&&n[e(467)](i,8)?3.3:n[e(382)](i,4)&&n[e(360)](i,7)?2.3:n[e(382)](i,3)&&n[e(360)](i,4)?2:1.7}function E2(t){const e=Eg,n={QNKeU:function(t,e){return t>=e},qiJVe:function(t,e){return t-e},TlATb:function(t,e){return t+e},sEyyk:function(t,e){return t>e},ERaIR:function(t,e){return t/e},pHpIe:function(t,e){return t/e},kxkmW:function(t,e){return t(e)},Ukzfj:function(t,e){return t===e},ixuFm:function(t,e){return t<e},qusQX:function(t,e){return t>e},krkxq:function(t,e){return t===e},zsszp:function(t,e){return t<e}};var i=H$7[e(402)](i=>{const r=e;return n[r(365)](i.t,n[r(443)](t,Y))}),r=a$9,s=a$9;if(n[e(364)](i[e(436)],0)){var a=i[e(436)],o=(i[e(386)](function(t){return t.y})[e(457)](function(t,i){return n[e(468)](t,i)},0),n[e(425)](i[e(386)](function(t){return t.z})[e(457)](function(t,i){return n[e(468)](t,i)},0),a));o=Math[e(393)](o);var c=n[e(459)](i[e(386)](function(t){return t[e(354)]})[e(457)](function(t,i){return n[e(468)](t,i)},0),a),l=n[e(401)](E4$1,i[e(386)](function(t){return t[e(373)]}));n[e(456)](r,J$c[e(357)])?(n[e(416)](o,5.886)&&n[e(364)](l,3)||n[e(421)](l,4))&&(s=J$c[e(404)]):n[e(466)](r,J$c[e(404)])&&n[e(416)](l,2.5)&&n[e(421)](c,8.81)&&n[e(403)](c,10.81)&&n[e(421)](o,4.4145)&&(s=J$c[e(357)])}a$9=s}function E3(t,e,n){const i=Eg,r={TySWt:function(t,e){return t>=e},NEBtr:function(t,e){return t-e},HvKkS:i(362),ZeDTz:function(t,e){return t*e},MQagB:function(t,e){return t/e},PkqHL:function(t,e){return t(e)},VCitd:function(t,e){return t===e},xVIIV:function(t,e){return t===e},NdeXc:function(t,e){return t>=e},RjHOU:function(t,e){return t>e},SewBk:function(t,e){return t<=e},UkGOl:function(t,e){return t<e}};if(r[i(492)](r[i(355)](t,T$1),500)){const o=r[i(460)][i(474)]("|");let c=0;for(;;){switch(o[c++]){case"0":e$4=r[i(475)](r[i(482)](e[i(436)],w$6),1e3);continue;case"1":var s=r[i(458)](E4$1,n);continue;case"2":T$1=t;continue;case"3":r[i(379)](a,d$k[i(390)])||r[i(422)](a,d$k[i(363)])?r[i(414)](e$4,1)&&r[i(376)](s,1)&&(x$8=d$k[i(411)]):r[i(422)](a,d$k[i(411)])&&r[i(493)](e$4,.75)&&r[i(407)](s,.7)&&(x$8=d$k[i(363)]);continue;case"4":var a=x$8;continue}break}}return x$8}function E4$1(t){const e=Eg,n={gVbMh:function(t,e){return t+e},XLeno:function(t,e){return t-e},JcApy:function(t,e){return t*e},PxToC:function(t,e){return t/e},hQHAa:function(t,e){return t/e}};var i=function(t,e){return n[N$u(488)](t,e)},r=n[e(485)](t[e(457)](i,0),t[e(436)]),s=t[e(386)](function(t){return n[e(400)](t,r)});return Math[e(410)](n[e(374)](s[e(386)](function(t){return n[e(398)](t,t)})[e(457)](i,0),n[e(400)](t[e(436)],1)))}!function(t,e){const n=N$t,i=t();for(;;)try{if(566994===-parseInt(n(227))/1*(-parseInt(n(245))/2)+-parseInt(n(233))/3*(parseInt(n(229))/4)+-parseInt(n(236))/5+parseInt(n(237))/6+parseInt(n(226))/7+parseInt(n(230))/8+-parseInt(n(241))/9*(parseInt(n(240))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$t);let d$j={x:0,y:0,z:0};function N$t(t,e){const n=E$t();return(N$t=function(t,e){return n[t-=222]})(t,e)}function motionCallback(t){const e=N$t,n={PpyPD:function(t,e){return t in e},pIixN:function(t,e){return t-e},bBvQJ:function(t,e){return t-e},MwjlC:function(t,e){return t-e},sLrxZ:function(t,e){return t+e},PBrwR:function(t,e){return t*e},LwOyY:function(t,e){return t*e},XQhBx:function(t,e){return t+e},YaUJp:function(t,e){return t*e},NiGfk:function(t,e){return t*e},oiIMl:function(t,e){return t*e},NyOCg:function(t,e){return t-e}};n[e(239)]("x",t)&&(t={accelerationIncludingGravity:t});let i,r=Date[e(224)](),s=t[e(225)],a=t[e(225)];if(s&&s.x&&s.y&&s.z)t[e(235)]&&t[e(235)].x&&t[e(235)].y&&t[e(235)].z&&(i={x:n[e(234)](t[e(235)].x,s.x),y:n[e(246)](t[e(235)].y,s.y),z:n[e(243)](t[e(235)].z,s.z)});else{if(!(t[e(235)]&&t[e(235)].x&&t[e(235)].y&&t[e(235)].z))return;a=t[e(235)],d$j.x=n[e(231)](n[e(244)](.9,d$j.x),n[e(242)](.1,t[e(235)].x)),d$j.y=n[e(222)](n[e(244)](.9,d$j.y),n[e(223)](.1,t[e(235)].y)),d$j.z=n[e(231)](n[e(238)](.9,d$j.z),n[e(228)](.1,t[e(235)].z)),i=d$j,(s={x:0,y:0,z:0}).x=n[e(243)](t[e(235)].x,d$j.x),s.y=n[e(232)](t[e(235)].y,d$j.y),s.z=n[e(243)](t[e(235)].z,d$j.z)}let o=t[e(235)];return t[e(235)]&&t[e(235)].x&&t[e(235)].y&&t[e(235)].z||(o={x:0,y:0,z:0}),{timestamp:r,acc:a,linearAcc:s,gravity:i,accelerationIncludingGravity:o}}function E$t(){const t=["sLrxZ","NyOCg","80841JCqvvn","pIixN","accelerationIncludingGravity","4238745TnAROF","5895960BNpaDe","NiGfk","PpyPD","15376550pzFttM","9ZZXtDF","LwOyY","MwjlC","PBrwR","760216bKtEUa","bBvQJ","XQhBx","YaUJp","now","acceleration","5200608QQxgdx","1xJqjXs","oiIMl","12LEbyHF","7420216CryMbc"];return(E$t=function(){return t})()}const Q=N$s;function N$s(t,e){const n=E$s();return(N$s=function(t,e){return n[t-=387]})(t,e)}function E$s(){const t=["cEjYv","dDWBL","distanceTo","pVbDw","sKMRK","GSqFd","cDXjc","SSfhe","toArray","xDDBD","EARTH_PERIMETER","Rqwjd","1753981RVRfXb","xtnbu","3261879fOpDYU","asin","atan2","EARTH_RADIUS","dUgfR","amYAz","xUWXO","DyJMI","860156KqPrlF","cUIgI","DSOSF","lat","8615544oxgQtl","BWqCg","log","IOWSU","LBuTq","TOdEr","exp","datumsToVector","UUAow","ocNZJ","FFHxj","webMercatorToLatitude","getTileSize","934293HlVqKg","sqrt","umTnr","3914780vMTHys","qVLkZ","lng","JeRKi","DdKjZ","pow","TSQnf","bDjFk","sin","atan","waOEo","sinh","JbVyO","webMercatorToLongitude","pJuXx","RfuDJ","wLjRo","icsBS","mapboxAltitude","WtFuE","gwzIM","JyPNr","UmbOc","NDOsA","Aupyq","EARTH_ORIGIN","quadtreeToDatums","WEB_MERCATOR_MAX_EXTENT","getDistance","hFUUP","QhoGS","qwATl","cgSVs","Bvtib","zjzvQ","tileBounds","cos","sphericalToDatums","tan","MtllQ","863100dLjoto","yWBnh","7lOhUIz","ATjrK","SJKfF","vectorToDatums","XRoRG","6wNFObW","toFixed","pos","oNqCC","XEphY","15XHWJku","datumsToSpherical","AHFHf"];return(E$s=function(){return t})()}!function(t,e){const n=N$s,i=t();for(;;)try{if(932891===-parseInt(n(424))/1+-parseInt(n(404))/2*(-parseInt(n(451))/3)+parseInt(n(434))/4+parseInt(n(409))/5*(parseInt(n(397))/6)+-parseInt(n(399))/7*(-parseInt(n(438))/8)+-parseInt(n(426))/9+parseInt(n(454))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$s);class LngLat{constructor(t,e){__publicField(this,0),__publicField(this,1),__publicField(this,_ta),__publicField(this,_sa),__publicField(this,_ra);const n=Q;this[1]=this[n(437)]=e,this[0]=this[n(456)]=t,this[n(406)]=UnitsUtils[n(410)](t,e)[n(420)]()}[(_ta=Q(437),_sa=Q(456),_ra=Q(406),Q(414))](t){return UnitsUtils[Q(482)](this,t)}}const _UnitsUtils=class t{static[(_xa=Q(429),_wa=Q(422),_va=Q(479),_ua=Q(481),Q(410))](e,n){const i=Q,r={DdKjZ:function(t,e){return t/e},SJKfF:function(t,e){return t*e},umTnr:function(t,e){return t*e},DyJMI:function(t,e){return t+e},xUWXO:function(t,e){return t/e},ocNZJ:function(t,e){return t(e)}},s=r[i(458)](r[i(401)](e,t[i(479)]),180);let a=r[i(458)](Math[i(440)](Math[i(395)](r[i(458)](r[i(453)](r[i(433)](90,n),Math.PI),360))),r[i(458)](Math.PI,180));return a=r[i(432)](r[i(401)](a,t[i(479)]),180),r[i(447)](isNaN,a)||r[i(447)](isNaN,s),new Vector2(s,a)}static[Q(394)](e,n){const i=Q,r={JyPNr:function(t,e){return t*e},wLjRo:function(t,e){return t/e},dDWBL:function(t,e){return t/e},xDDBD:function(t,e){return t/e},MtllQ:function(t,e){return t-e},gwzIM:function(t,e){return t*e},waOEo:function(t,e){return t/e},SSfhe:function(t,e){return t*e}},s=r[i(475)](r[i(470)](e,t[i(479)]),180);let a=r[i(475)](r[i(413)](n,t[i(479)]),180);return a=r[i(475)](r[i(421)](180,Math.PI),r[i(396)](r[i(474)](2,Math[i(463)](Math[i(444)](r[i(464)](r[i(419)](a,Math.PI),180)))),r[i(464)](Math.PI,2))),new LngLat(s,a)}static[Q(480)](t,e,n){const i=Q,r={hFUUP:function(t,e){return t-e},sKMRK:function(t,e){return t*e},bDjFk:function(t,e){return t/e},Rqwjd:function(t,e){return t*e},IOWSU:function(t,e){return t*e},AHFHf:function(t,e){return t/e}},s=Math[i(459)](2,t),a=r[i(483)](r[i(416)](r[i(461)](e,s),360),180),o=Math[i(463)](Math[i(465)](r[i(423)](Math.PI,r[i(483)](1,r[i(461)](r[i(416)](2,n),s))))),c=r[i(441)](180,r[i(411)](o,Math.PI));return new LngLat(c,a)}static[Q(402)](t){const e=Q,n={LBuTq:function(t,e){return t/e},RfuDJ:function(t,e){return t*e},Bvtib:function(t,e){return t+e}},i=n[e(442)](180,Math.PI),r=n[e(469)](Math[e(428)](t.y,Math[e(452)](n[e(390)](Math[e(459)](t.x,2),Math[e(459)](-t.z,2)))),i),s=n[e(469)](Math[e(428)](-t.z,t.x),i);return new LngLat(+s[e(405)](6),+r[e(405)](6))}static[Q(445)](t,e){const n=Q,i={BWqCg:function(t,e){return t/e},XRoRG:function(t,e){return t*e},cEjYv:function(t,e){return t*e},NDOsA:function(t,e){return t+e},pVbDw:function(t,e){return t+e}},r=i[n(439)](Math.PI,180),s=i[n(403)](t,r),a=i[n(412)](e,r);var o=Math[n(393)](a);return new Vector3(i[n(412)](-Math[n(393)](i[n(477)](s,Math.PI)),o),Math[n(462)](a),i[n(412)](Math[n(462)](i[n(415)](s,Math.PI)),o))}static[Q(472)](t){const e=Q,n={FFHxj:function(t,e){return t-e},dUgfR:function(t,e){return t*e},zjzvQ:function(t,e){return t+e},amYAz:function(t,e){return t*e},qwATl:function(t,e){return t*e}};return n[e(448)](n[e(430)](n[e(391)](n[e(391)](n[e(430)](n[e(431)](t.r,255),65536),n[e(388)](n[e(388)](t.g,255),256)),n[e(431)](t.b,255)),.1),1e4)}static[Q(450)](e){const n=Q,i={DSOSF:function(t,e){return t/e},GSqFd:function(t,e){return t*e}},r=t[n(481)],s=Math[n(459)](2,e);return i[n(436)](i[n(417)](2,r),s)}static[Q(392)](e,n,i){const r=Q,s={UmbOc:function(t,e){return t+e},cgSVs:function(t,e){return t*e},TSQnf:function(t,e){return t-e},yWBnh:function(t,e){return t*e},XEphY:function(t,e){return t+e}},a=t[r(450)](e);return[s[r(476)](-t[r(481)],s[r(389)](n,a)),a,s[r(460)](t[r(481)],s[r(398)](s[r(408)](i,1),a)),a]}static[Q(449)](e,n){const i=Q,r={cUIgI:function(t,e){return t-e},oNqCC:function(t,e){return t*e},pJuXx:function(t,e){return t/e}},s=r[i(435)](t[i(481)],r[i(407)](n,t[i(450)](e)));return Math[i(463)](Math[i(465)](r[i(468)](s,t[i(429)])))}static[Q(467)](e,n){const i=Q,r={TOdEr:function(t,e){return t+e},JbVyO:function(t,e){return t*e},WtFuE:function(t,e){return t/e}},s=r[i(443)](-t[i(481)],r[i(466)](n,t[i(450)](e)));return r[i(473)](s,t[i(429)])}static[Q(482)](t,e){const n=Q,i={icsBS:function(t,e){return t/e},JeRKi:function(t,e){return t*e},ATjrK:function(t,e){return t/e},cDXjc:function(t,e){return t*e},UUAow:function(t,e){return t-e},QhoGS:function(t,e){return t/e},Aupyq:function(t,e){return t+e},xtnbu:function(t,e){return t*e},qVLkZ:function(t,e){return t/e}};let r=t[n(437)]||0,s=t[n(456)]||0,a=e[n(437)]||0,o=e[n(456)]||0;var c=i[n(471)](i[n(457)](r,Math.PI),180),l=i[n(400)](i[n(418)](a,Math.PI),180),u=i[n(446)](c,l),h=i[n(446)](i[n(387)](i[n(457)](s,Math.PI),180),i[n(471)](i[n(457)](o,Math.PI),180)),d=this[n(429)];return i[n(418)](i[n(418)](d,2),Math[n(427)](Math[n(452)](i[n(478)](Math[n(459)](Math[n(462)](i[n(400)](u,2)),2),i[n(425)](i[n(457)](Math[n(393)](c),Math[n(393)](l)),Math[n(459)](Math[n(462)](i[n(455)](h,2)),2))))))}};__publicField(_UnitsUtils,_xa,6378137),__publicField(_UnitsUtils,_wa,2*Math.PI*_UnitsUtils[Q(429)]),__publicField(_UnitsUtils,_va,_UnitsUtils[Q(422)]/2),__publicField(_UnitsUtils,_ua,20037508.342789244);let UnitsUtils=_UnitsUtils;var q=N$r;function N$r(t,e){var n=E$r();return(N$r=function(t,e){return n[t-=457]})(t,e)}!function(t,e){for(var n=N$r,i=t();;)try{if(379035===parseInt(n(858))/1*(parseInt(n(1014))/2)+-parseInt(n(896))/3+-parseInt(n(967))/4+-parseInt(n(932))/5+parseInt(n(607))/6*(parseInt(n(559))/7)+parseInt(n(950))/8+parseInt(n(708))/9*(parseInt(n(554))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$r);var d$i=2===a$8();function J$b(t,e=-59){var n=N$r,i={gHASk:function(t,e){return t/e},slNCa:function(t,e){return t+e},BCWUS:function(t,e){return t%e},ZTzQC:function(t,e){return t<=e},yIarE:function(t,e){return t*e},mDeIh:function(t,e){return t+e}},r=i[n(886)](t,e),s=i[n(537)](.96,i[n(867)](Math[n(687)](Math[n(693)](t),3),10));return i[n(589)](r,1)?i[n(785)](Math[n(687)](r,9.98),s):i[n(785)](i[n(544)](.103,i[n(785)](.89978,Math[n(687)](r,7.5))),s)}function a$8(){var t=N$r;return/(Android)/i[t(471)](navigator[t(1023)])?1:/(iPhone|iPad|iPod|iOS)/i[t(471)](navigator[t(1023)])?2:3}let n$7=class{constructor(t){__publicField(this,_Ea),__publicField(this,_Da),__publicField(this,_Ca),__publicField(this,_Ba),__publicField(this,_Aa),__publicField(this,_za),__publicField(this,_ya);var e=q,n={axZAX:function(t,e){return t===e},TmwgG:function(t){return t()}};this[e(981)]=t,this[e(973)]=2e3,n[e(999)](n[e(1003)](a$8),1)&&(this[e(973)]=5e3),this[e(462)]=null,this[e(957)]=null,this[e(475)]=[],this[e(817)]=[]}[(_Ea=q(981),_Da=q(973),_Ca=q(756),_Ba=q(462),_Aa=q(957),_za=q(475),_ya=q(817),q(542))](t){var e=q,n={lthAv:function(t,e){return t+e},cqwiW:function(t,e){return t+e},unyIc:function(t,e){return t>e},AWxwg:function(t,e){return t/e},ZZxOZ:function(t,e){return t/e},GIgiy:function(t,e){return t-e}},i=Date[e(952)]();for(var r in this[e(475)]){var s=this[e(475)][r];n[e(617)](Math[e(693)](n[e(717)](i,s[e(900)])),this[e(973)])&&delete this[e(475)][r]}t[e(1004)](t=>{var r=e;let s=n[r(620)](n[r(891)](t[r(550)],"_"),t[r(648)]);if(this[r(475)][s]=Object[r(640)]({...this[r(475)][s]||{},time:i},t),!d$i){let e=this[r(475)][s];e[r(843)]=e[r(843)]||[],e[r(843)][r(959)]({time:i,rssi:t[r(766)],accuracy:t[r(828)]}),n[r(617)](e[r(843)][r(1017)],5)&&(e[r(843)][r(662)](),e[r(843)]=e[r(843)][r(691)](t=>i-t[r(900)]<this[r(973)])),e[r(766)]=n[r(496)](e[r(843)][r(681)]((t,e)=>t+e[r(766)],0),e[r(843)][r(1017)]),e[r(766)][r(745)](1),e[r(828)]=n[r(972)](e[r(843)][r(681)]((t,e)=>t+e[r(828)],0),e[r(843)][r(1017)]),e[r(828)][r(745)](1)}});var a=[];for(var o in this[e(475)])a[e(959)](this[e(475)][o]);return this[e(483)](a)}[q(483)](t){var e=q,n={LQpvv:function(t,e){return t-e},vaPta:function(t,e){return t<e},cUdKw:function(t,e){return t===e},jlqPs:function(t,e){return t===e},ZOVmU:function(t,e){return t>e},DgiFE:function(t,e){return t-e},aWuuf:function(t,e){return t===e},cPcxl:function(t,e){return t>=e},AxZRJ:function(t,e){return t/e}};t[e(851)](function(t,i){var r=e;return n[r(736)](i[r(766)],t[r(766)])});for(var i={beacons:[],floor:null},r={beacons:[],floor:null},s=0,a=0;n[e(747)](a,t[e(1017)]);a++){var o=t[a],c=o[e(746)];if(this[e(462)]=this[e(462)]||c,n[e(775)](s,0))n[e(775)](c,this[e(462)])?(i[e(918)][e(959)](o),i[e(746)]=c):(r[e(918)][e(959)](o),r[e(746)]=c);else if(n[e(879)](c,this[e(462)])){if(r[e(746)]){if(n[e(631)](n[e(759)](r[e(918)][0][e(766)],o[e(766)]),8))continue;r[e(918)]=[],r[e(746)]=null}i[e(918)][e(959)](o),i[e(746)]=c}else n[e(888)](c,r[e(746)])&&r[e(918)][e(959)](o);s++}return r[e(746)]?this[e(756)]++:(this[e(756)]--,n[e(747)](this[e(756)],0)&&(this[e(756)]=0)),n[e(709)](this[e(756)],n[e(931)](this[e(981)][e(613)],1e3))&&(i=r,this[e(756)]=0),this[e(462)]=i[e(746)],i[e(918)]}[q(788)](t){var e=q,n={rqfVf:function(t,e){return t===e},JtUJw:function(t,e){return t<e},YyEjl:function(t,e){return t/e},eyYri:function(t,e){return t<e},AxIFR:function(t,e){return t*e},bNgxZ:function(t,e){return t/e}};if(n[e(830)](t[e(1017)],0))return null;for(var i,r,s,a=Math[e(669)](t[e(1017)],6),o=[],c=0,l=0,u=0,h=0;n[e(1022)](h,a);h++)i=t[h],c+=r=n[e(818)](1,Math[e(687)](i[e(828)],2)),o[e(959)](r);for(let d=0;n[e(534)](d,o[e(1017)]);d++)l+=n[e(1024)]((s=t[d]).x,o[d]),u+=n[e(1024)](s.y,o[d]);return{x:n[e(818)](l,c),y:n[e(636)](u,c),floor:this[e(462)]}}[q(703)](t){var e=q;return this[e(788)](this[e(542)](t))}[q(962)](){var t=q;this[t(475)]=[],this[t(462)]=null}};function C$6(t){var e=q,n={WbuuH:function(t,e){return t<e},XBRqJ:e(757),ORDnP:e(875),XeLix:e(947),rBKDq:function(t,e){return t<e},YhtFY:function(t,e){return t!==e},KnKOg:e(490),nCzVA:function(t,e){return t-e},zIVtD:function(t,e){return t===e},qdUrW:function(t,e){return t+e},LaNfe:function(t,e){return t===e},QOXGe:function(t,e){return t-e},ojrZS:function(t,e){return t%e},YqivJ:function(t,e){return t+e},qsEiT:e(660),NHKga:function(t,e){return t+e},IZRER:function(t,e){return t(e)},drSmG:e(761),Nuger:e(765),jyDoV:function(t,e){return t%e},QChNq:function(t,e){return t>e},TGTos:function(t,e){return t-e},bHsyX:function(t,e){return t<e},njvmG:function(t,e){return t/e},JQFXL:function(t,e){return t||e},NjEfE:e(580),TrkAf:e(698)};let i=0,r=0,s=0,a=null;function o(o){var l,u,h,d=e;if(window[d(820)]&&n[d(813)](r++,10)&&(console[d(599)](n[d(728)],o,a),console[d(599)](n[d(675)],o[d(548)],o[d(702)],o[d(800)],o[d(762)]),a&&console[d(599)](n[d(634)],a[d(548)],a[d(702)],a[d(800)],a[d(762)])),n[d(977)](s++,10)&&(a=o),t[d(765)]=o,n[d(556)](typeof o[d(548)],n[d(723)]))return;let p;if(n[d(556)](o[d(762)],void 0))p=o[d(762)];else{let t=o[d(548)],e=(null==(l=screen[d(760)])?void 0:l[d(711)])||window[d(760)]||0;p=n[d(779)](360,t),n[d(845)](e,90)&&(p=n[d(779)](360,n[d(913)](t,90))),(n[d(874)](e,-90)||n[d(874)](e,270))&&(p=n[d(779)](360,n[d(934)](t,90))),p=n[d(553)](n[d(610)](p,360),360),window[d(949)](n[d(558)])[d(802)]&&(p=n[d(553)](n[d(826)](p,180),360))}let f=p;n[d(1016)](c,f),t[d(678)]=i,t[d(590)]=f,f+=i;var m=n[d(934)](f,t[d(700)]);n[d(977)](r,10)&&t[d(805)](n[d(1020)],m);let g={value:{alpha:n[d(779)](n[d(913)](d$i?o[d(762)]:n[d(779)](360,o[d(548)]),i),t[d(700)]),beta:o[d(702)],gamma:o[d(800)]},event:o};window[d(820)]&&n[d(977)](r,10)&&console[d(599)]("de",g,t[d(704)],m),n[d(813)](r,10)&&t[d(805)](n[d(951)],g),null==(h=null==(u=t[d(1015)])?void 0:u.ar)||h[d(615)](g),t[d(704)]={alpha:m,beta:o[d(702)],gamma:o[d(800)]}}function c(r){var s,a,o=e;let c=null==(a=null==(s=t[o(1015)][o(763)])?void 0:s[o(854)])?void 0:a[o(680)];if(n[o(874)](c,void 0))return;let l=n[o(686)](n[o(610)](n[o(934)](c,r),3600),360);n[o(780)](l,180)&&(l=n[o(859)](l,360));let u=Math[o(693)](l);n[o(780)](u,.12)&&n[o(794)](u,15)&&(i+=n[o(1025)](n[o(859)](l,i),70))}let l=n[e(943)](d$i,!1)?n[e(656)]:n[e(873)];window[e(1013)](l,o,!1),this[e(962)]=function(){var t=e;window[t(478)](l,o,!1),window[t(1013)](l,o,!1)}}let o$4=class{constructor(t={}){__publicField(this,_cb),__publicField(this,_bb),__publicField(this,_ab),__publicField(this,_$a),__publicField(this,__a),__publicField(this,_Za),__publicField(this,_Ya),__publicField(this,_Xa),__publicField(this,_Wa),__publicField(this,_Va),__publicField(this,_Ua),__publicField(this,_Ta),__publicField(this,_Sa),__publicField(this,_Ra),__publicField(this,_Qa),__publicField(this,_Pa),__publicField(this,_Oa),__publicField(this,_Na),__publicField(this,_Ma),__publicField(this,_La),__publicField(this,_Ka),__publicField(this,_Ja),__publicField(this,_Ia),__publicField(this,_Ha),__publicField(this,_Ga),__publicField(this,_Fa);var e=q;let n=[1e-5,.00224,.0039,.00533,.00621,.00618,.00497,.00239,-.00163,-.00705,-.01363,-.02101,-.02862,-.03594,-.04228,-.04699,-.04947,-.04926,-.04605,-.03973,-.03045,-.01856,-.00465,.0105,.02601,.0409,.05421,.06508,.07276,.07673];this[e(905)]=[...n,...n[e(677)]()],this[e(715)]=t[e(715)]||0,this[e(654)]=t[e(654)]||0,this[e(538)]=t[e(538)]||.4,this[e(584)]=t[e(584)]||5,this[e(836)]=t[e(836)]||1.2,this[e(846)]=t[e(846)]||8,this[e(505)]=new Array(this[e(905)][e(1017)]),this[e(853)]=new Array(this[e(905)][e(1017)]),this[e(732)]=new Array(this[e(905)][e(1017)]),this[e(489)]=0,this[e(643)]={tlcUr:function(t,e){return t-e}}[e(665)](this[e(905)][e(1017)],5),this[e(552)]=new Array(this[e(643)]),this[e(488)]=new Array(this[e(643)]),this[e(991)]=new Array(this[e(643)]),this[e(979)]=0,this[e(565)]=0,this[e(772)]=0,this[e(750)]=0,this[e(768)]=0,this[e(517)]=0,this[e(641)]=0,this[e(924)]=0}[(_cb=q(905),_bb=q(715),_ab=q(654),_$a=q(538),__a=q(584),_Za=q(836),_Ya=q(846),_Xa=q(505),_Wa=q(853),_Va=q(732),_Ua=q(489),_Ta=q(643),_Sa=q(552),_Ra=q(488),_Qa=q(991),_Pa=q(979),_Oa=q(565),_Na=q(772),_Ma=q(750),_La=q(768),_Ka=q(517),_Ja=q(641),_Ia=q(924),_Ha=q(474),_Ga=q(491),_Fa=q(671),q(962))](){for(var t=q,e={fySTk:t(806)}[t(504)][t(600)]("|"),n=0;;){switch(e[n++]){case"0":this[t(517)]=0;continue;case"1":this[t(924)]=0;continue;case"2":this[t(991)]=new Array(this[t(643)]);continue;case"3":this[t(565)]=0;continue;case"4":this[t(853)]=new Array(this[t(905)][t(1017)]);continue;case"5":this[t(750)]=0;continue;case"6":this[t(979)]=0;continue;case"7":this[t(768)]=0;continue;case"8":this[t(488)]=new Array(this[t(643)]);continue;case"9":this[t(732)]=new Array(this[t(905)][t(1017)]);continue;case"10":this[t(505)]=new Array(this[t(905)][t(1017)]);continue;case"11":this[t(552)]=new Array(this[t(643)]);continue;case"12":this[t(489)]=0;continue;case"13":this[t(641)]=0;continue;case"14":this[t(772)]=0;continue}break}}[q(703)](t,e){var n=q,i={emMwX:function(t,e){return t%e},qhJZu:function(t,e){return t+e},YIxii:function(t,e){return t<e},ByBGl:function(t,e){return t*e},kQuAv:function(t,e){return t*e},AlNej:function(t,e){return t%e},pavQn:function(t,e){return t<e},HHiWk:function(t,e){return t-e},FgOXz:function(t,e){return t+e},qceYz:function(t,e){return t>e},ufYPh:function(t,e){return t<e},WZgeV:function(t,e){return t>e},oLlLG:function(t,e){return t<e},lMBUg:function(t,e){return t<e},jZsNN:function(t,e){return t<e},rEaZu:function(t,e){return t<e},mYRmb:function(t,e){return t>=e},WUPPI:function(t,e){return t<e},JAhAj:n(616),xacuf:function(t,e){return t>e},mgVAe:function(t,e){return t<e},QRzEY:function(t,e){return t+e}};this[n(505)][this[n(489)]]=e[0],this[n(853)][this[n(489)]]=e[1],this[n(732)][this[n(489)]]=e[2];let r=this[n(489)]=i[n(804)](i[n(602)](this[n(489)],1),this[n(905)][n(1017)]),s=0,a=0,o=0;for(let f=0;i[n(909)](f,this[n(905)][n(1017)]);f++)a+=i[n(993)](this[n(505)][r],this[n(905)][f]),o+=i[n(993)](this[n(853)][r],this[n(905)][f]),s+=i[n(730)](this[n(732)][r],this[n(905)][f]),r=i[n(916)](i[n(602)](r,1),this[n(905)][n(1017)]);this[n(552)][this[n(979)]]=a,this[n(488)][this[n(979)]]=o,this[n(991)][this[n(979)]]=s;var c=i[n(557)](i[n(571)](this[n(979)],1),0)?i[n(571)](this[n(643)],1):i[n(571)](this[n(979)],1);let l=this[n(552)][c],u=this[n(488)][c],h=this[n(991)][c];if(this[n(979)]=i[n(916)](i[n(705)](this[n(979)],1),this[n(643)]),i[n(987)](a,0)&&i[n(880)](l,0)&&this[n(491)]++,i[n(561)](o,0)&&i[n(783)](u,0)&&this[n(565)]++,i[n(987)](s,0)&&i[n(880)](h,0)&&this[n(772)]++,i[n(458)](this[n(671)],a)&&(this[n(671)]=a),i[n(667)](this[n(750)],o)&&(this[n(750)]=o),i[n(956)](this[n(768)],s)&&(this[n(768)]=s),i[n(535)](this[n(565)],2)&&(this[n(565)]=1,i[n(987)](this[n(750)],this[n(538)])&&i[n(968)](this[n(750)],this[n(584)])&&(this[n(924)]=t)),i[n(535)](this[n(772)],2))for(var d=i[n(902)][n(600)]("|"),p=0;;){switch(d[p++]){case"0":this[n(750)]=-1;continue;case"1":if(i[n(963)](this[n(474)],this[n(836)])&&i[n(786)](this[n(474)],this[n(846)]))return 1;continue;case"2":this[n(474)]=i[n(815)](this[n(768)],this[n(750)]);continue;case"3":this[n(768)]=-1;continue;case"4":this[n(772)]=1;continue;case"5":this[n(671)]=-1;continue}break}return 0}};function b$7(t){var e,n=q,i={ZIjFz:function(t,e){return t+e},BueZb:function(t,e){return t+e},voBit:function(t,e){return t+e},MNgQx:function(t,e){return t+e},sBEdC:function(t,e){return t+e},sAbNt:function(t,e){return t+e},juVGb:function(t,e){return t+e},cZzlo:function(t,e){return t+e},bBkdh:function(t,e){return t+e},RvOlm:function(t,e){return t+e},LWAuH:function(t,e){return t+e},TJWVT:function(t,e){return t+e},doyVA:function(t,e){return t+e},opHkv:function(t,e){return t+e},xuxTZ:function(t,e){return t+e},qhdXz:function(t,e){return t+e},YRiGc:function(t,e){return t+e},KPMgV:function(t,e){return t+e},TvQfX:function(t,e){return t+e},BJtPz:function(t,e){return t+e},YNydu:function(t,e){return t+e},oshBl:function(t,e){return t+e},aSvHE:function(t,e){return t+e},wflCl:function(t,e){return t+e},TDdhy:function(t,e){return t+e},rCVaC:n(576),vigEV:n(988),CsioC:n(577),pTYxs:n(812),YshgL:n(814),prkMz:n(541),nDfIR:n(614),swQJC:n(769),tGaXN:n(938),bdSHa:n(727),ZvsYV:n(927),kfUVo:n(922),FsoyI:n(848),qvzBN:n(912),MfANm:n(712),ghdTm:n(883),TIjSP:n(569),ahjKJ:n(623),IjFpy:function(t,e){return t(e)},rqBfU:function(t,e){return t(e)},RTuPi:function(t,e){return t===e},PEiCW:function(t,e){return t===e},vJoYm:function(t,e){return t>e},SNrrw:function(t){return t()},jmeeh:function(t,e){return t>=e},JvRlN:function(t,e){return t-e},AFUgO:n(966),vZzxr:n(582)},r=this,s=0,a=0,o=!1,c=this[n(773)]=new o$4;let l={zs:0,sl:0};function u(r){var o=n;e=Date[o(952)]();let u=i[o(914)](motionCallback,r),h=u&&i[o(463)](md_sensorAcc,u);(null==h?void 0:h[o(684)])&&h[o(494)]&&(a++,l.sl++);let{x:d,y:p,z:f}=r[o(481)]||r[o(608)]||{};i[o(689)](d,void 0)&&i[o(689)](p,void 0)&&i[o(940)](f,void 0)&&({x:d,y:p,z:f}=r[o(608)]||{}),i[o(629)](c[o(703)](e,[d,p,f]),0)&&l.zs++;i[o(811)](()=>{var e,n,r,s,a,c,u,h,d,p,f,m,g,A,y,v,S,x,b,T=o;let I=null==(n=t[T(1015)][T(606)](null==(e=t[T(829)])?void 0:e[T(746)]))?void 0:n[T(937)];debug&&window[T(738)]&&window[T(738)](0,i[T(721)](i[T(721)](i[T(721)](i[T(721)](i[T(721)](i[T(531)](i[T(721)](i[T(531)](i[T(721)](i[T(721)](i[T(725)](i[T(725)](i[T(721)](i[T(1010)](i[T(683)](i[T(856)](i[T(856)](i[T(531)](i[T(856)](i[T(531)](i[T(632)](i[T(855)](i[T(929)](i[T(470)](i[T(603)](i[T(563)](i[T(596)](i[T(834)](i[T(509)](i[T(892)](i[T(822)](i[T(470)](i[T(872)](i[T(841)](i[T(578)](i[T(840)](i[T(578)](i[T(834)](i[T(995)](i[T(674)](i[T(470)](i[T(1e3)](i[T(822)](i[T(797)](i[T(865)],null==(r=t[T(776)])?void 0:r[T(745)](1)),i[T(591)]),t[T(998)]),i[T(668)]),null==(s=t[T(604)])?void 0:s[T(745)](2)),i[T(742)]),I),"-"),t[T(863)]),i[T(825)]),t[T(925)]),"-"),l.sl),"-"),l.zs),i[T(734)]),null==(a=t[T(1015)][T(763)])?void 0:a[T(854)][T(706)]),i[T(898)]),null==(u=null==(c=t[T(1015)][T(763)])?void 0:c[T(854)][T(680)])?void 0:u[T(745)](0)),i[T(512)]),null==(h=t[T(590)])?void 0:h[T(745)](0)),i[T(751)]),null==(d=t[T(678)])?void 0:d[T(745)](0)),i[T(635)]),null==(p=t[T(511)])?void 0:p[T(745)](2)),i[T(955)]),t[T(503)][T(745)](0)),i[T(525)]),t[T(755)][T(745)](0)),i[T(598)]),null==(m=null==(f=t[T(1015)][T(763)])?void 0:f[T(854)][T(795)])?void 0:m[T(745)](0)),"--"),null==(A=null==(g=t[T(1015)][T(763)])?void 0:g[T(854)][T(573)])?void 0:A[T(745)](0)),i[T(485)]),null==(v=null==(y=t[T(1015)][T(763)])?void 0:y[T(854)][T(906)])?void 0:v[T(745)](0)),"--"),null==(x=null==(S=t[T(1015)][T(763)])?void 0:S[T(854)][T(741)])?void 0:x[T(745)](0)),i[T(480)]),t[T(1015)][T(784)][T(572)][T(495)][T(740)]),i[T(497)]),null==(b=t[T(1015)][T(763)])?void 0:b[T(854)][T(706)]),i[T(764)]),t[T(498)]),i[T(543)]))}),i[o(984)](i[o(897)](e,s),t[o(714)])&&(s=e,t[o(805)](i[o(536)],a),a=0)}this[n(621)]=function(){var t=n;o=!0,window[t(1013)](i[t(781)],u,!1)},this[n(908)]=function(){var t=n;o=!1,window[t(478)](i[t(781)],u,!1)},this[n(962)]=function(){var t=n;o&&(r[t(908)](),r[t(621)]())}}function u$6(){var t=q,e={FEufB:function(t,e){return t(e)},bzDcD:t(574),YGKmh:t(593),oRTxp:t(787),Sqqxo:t(551),tHDOW:t(611),uOCSl:function(t,e){return t(e)},gIltg:t(464),qJqMS:t(466),sJqav:function(t,e){return t===e},wRRCL:function(t){return t()},tbidl:function(t,e){return t==e},IdlNW:t(638),oOaQY:t(567),SKCXy:function(t,e){return t(e)}};return new Promise(function(n,i){for(var r=t,s=e[r(581)][r(600)]("|"),a=0;;){switch(s[a++]){case"0":var o;continue;case"1":e[r(625)](e[r(796)](a$8),2)?window[r(493)]?window[r(493)](n,i):(window[r(493)]=function(t,e){c=function(e){var i=N$r,r={message:l[i(722)],e};l[i(482)](n,r),l[i(482)](t,r),window[i(493)]=null},h=function(t){var n=N$r,r={message:l[n(479)],e:t};l[n(482)](i,r),l[n(992)](e,r),window[n(493)]=null}},d=function(){var t=r,n=document[t(942)](e[t(595)]);n[t(663)]=e[t(622)];var i=document[t(942)](e[t(595)]);return i[t(816)](e[t(857)],e[t(807)]),i[t(663)]="开启",n[t(1007)][0][t(1007)][0][t(899)](i),{$dom:n,$button:i}}(),u=d[r(690)],o=d[r(889)],window[r(695)]&&e[r(894)](typeof DeviceMotionEvent[r(748)],e[r(664)])?e[r(796)](H$6)[r(476)](function(t){e[r(926)](c,t)})[r(961)](function(){var t=r,n={fJCMW:function(t,n){return e[N$r(926)](t,n)}};document[t(499)][t(899)](u),o[t(1013)](e[t(799)],function(){var e=t,i={sqfrO:function(t,e){return l[N$r(992)](t,e)}};document[e(499)][e(911)](u),l[e(524)](H$6)[e(476)](function(t){n[e(522)](c,t)})[e(961)](function(t){i[e(831)](h,t)})},!1)}):e[r(926)](h,{})):e[r(508)](c,{});continue;case"2":var c=function(t){var i=r;e[i(508)](n,{message:e[i(969)],e:t})};continue;case"3":var l={iebQZ:function(t,n){return e[r(926)](t,n)},iKTsI:e[r(699)],BBtez:e[r(969)],hxdnb:function(t,n){return e[r(500)](t,n)},rhvjU:function(t){return e[r(796)](t)}};continue;case"4":var u;continue;case"5":var h=function(t){var e=r;l[e(482)](i,{message:l[e(479)],e:t})};continue;case"6":var d;continue}break}})}function H$6(){var t=q,e={KpRHo:function(t,e){return t===e},hceIU:t(465),xhMMt:function(t,e){return t(e)},gueuL:function(t,e){return t(e)}};return new Promise(function(n,i){var r=t,s={otRWo:function(t,n){return e[N$r(726)](t,n)},TIyfv:e[r(808)],FSatU:function(t,n){return e[r(624)](t,n)},hnwxi:function(t,n){return e[r(733)](t,n)}};DeviceMotionEvent[r(748)]()[r(476)](function(t){var e=r;s[e(520)](t,s[e(837)])&&s[e(735)](n,t)})[r(961)](function(t){s[r(970)](i,t)})})}var w$5={PI:3.141592653589793,x_pi:52.35987755982988,rectify(t,e){var n=q,i={xjDPm:function(t,e){return t+e},pyBzn:function(t,e){return t+e}};if(this[n(847)](t,e))return{lat:t,lng:e};var r=this[n(601)](t,e);return{lat:i[n(878)](t,r[n(657)]),lng:i[n(921)](e,r[n(587)])}},delta:function(t,e){for(var n=q,i={IYwAu:n(719),dSCDc:function(t,e){return t-e},uqgIn:function(t,e){return t*e},QqpAW:function(t,e){return t/e},uMNtM:function(t,e){return t/e},oawby:function(t,e){return t-e},ugXqu:function(t,e){return t*e},XJPsj:function(t,e){return t*e}},r=i[n(835)][n(600)]("|"),s=0;;){switch(r[s++]){case"0":var a=this[n(528)](i[n(915)](e,105),i[n(915)](t,35));continue;case"1":var o=i[n(819)](i[n(778)](t,180),this.PI);continue;case"2":var c=this[n(850)](i[n(915)](e,105),i[n(915)](t,35));continue;case"3":var l=Math[n(649)](h);continue;case"4":var u=.006693421622965943;continue;case"5":return{lat:c=i[n(729)](i[n(819)](180,c),i[n(819)](i[n(778)](i[n(819)](6378245,i[n(644)](1,u)),i[n(724)](h,l)),this.PI)),lng:a=i[n(778)](i[n(724)](180,a),i[n(457)](i[n(724)](i[n(729)](6378245,l),Math[n(839)](o)),this.PI))};case"6":var h=i[n(644)](1,i[n(819)](i[n(724)](u,h=Math[n(468)](o)),h));continue}break}},outOfChina:function(t,e){var n=q,i={XPJhZ:function(t,e){return t<e},VDdDe:function(t,e){return t>e},VMera:function(t,e){return t>e}};return i[n(713)](e,72.004)||i[n(777)](e,137.8347)||i[n(713)](t,.8293)||i[n(731)](t,55.8271)},toLat:function(t,e){var n=q,i={ssOqL:function(t,e){return t+e},UlhnL:function(t,e){return t+e},IhbwN:function(t,e){return t+e},DLtyQ:function(t,e){return t+e},uxScf:function(t,e){return t-e},dDXtF:function(t,e){return t*e},PZEDT:function(t,e){return t*e},pwPOg:function(t,e){return t*e},VmEPv:function(t,e){return t*e},OzYDZ:function(t,e){return t*e},bGFjQ:function(t,e){return t/e},SZMhn:function(t,e){return t*e},QqJMa:function(t,e){return t*e},fHNpJ:function(t,e){return t*e},tEoBf:function(t,e){return t*e},fvEMt:function(t,e){return t*e},tzdyn:function(t,e){return t*e},QfjjB:function(t,e){return t/e},ulwFT:function(t,e){return t*e},AMoPC:function(t,e){return t*e},pcKKH:function(t,e){return t*e},kJPXR:function(t,e){return t*e},BZSva:function(t,e){return t*e},hyJfc:function(t,e){return t/e},xanvf:function(t,e){return t/e},OlWwA:function(t,e){return t+e},TmJXh:function(t,e){return t*e},LcfYO:function(t,e){return t*e}},r=i[n(1001)](i[n(467)](i[n(501)](i[n(1021)](i[n(526)](i[n(605)](2,t),100),i[n(948)](3,e)),i[n(605)](i[n(821)](.2,e),e)),i[n(647)](i[n(459)](.1,t),e)),i[n(821)](.2,Math[n(649)](Math[n(693)](t))));return r+=i[n(701)](i[n(852)](2,i[n(501)](i[n(639)](20,Math[n(468)](i[n(459)](i[n(659)](6,t),this.PI))),i[n(502)](20,Math[n(468)](i[n(903)](i[n(707)](2,t),this.PI))))),3),(r+=i[n(626)](i[n(696)](2,i[n(1001)](i[n(460)](20,Math[n(468)](i[n(758)](e,this.PI))),i[n(720)](40,Math[n(468)](i[n(716)](i[n(792)](e,3),this.PI))))),3))+i[n(983)](i[n(605)](2,i[n(510)](i[n(612)](160,Math[n(468)](i[n(647)](i[n(792)](e,12),this.PI))),i[n(502)](320,Math[n(468)](i[n(626)](i[n(1018)](e,this.PI),30))))),3)},toLng:function(t,e){var n=q,i={kueEI:function(t,e){return t+e},EKaBO:function(t,e){return t+e},uHrom:function(t,e){return t+e},FOOMW:function(t,e){return t*e},nPSmv:function(t,e){return t*e},ZBnmU:function(t,e){return t*e},LfKqV:function(t,e){return t/e},VfnCs:function(t,e){return t*e},jkQMF:function(t,e){return t*e},YxlmY:function(t,e){return t*e},stHBq:function(t,e){return t*e},DSzuA:function(t,e){return t+e},YRJbR:function(t,e){return t*e},weaqW:function(t,e){return t*e},Disio:function(t,e){return t/e},jxHNg:function(t,e){return t*e},jWEGK:function(t,e){return t+e},lDVhY:function(t,e){return t*e},SzOOK:function(t,e){return t/e},coHvG:function(t,e){return t*e},EWnOL:function(t,e){return t*e},zXSPg:function(t,e){return t/e}},r=i[n(1009)](i[n(1009)](i[n(753)](i[n(752)](i[n(752)](300,t),i[n(801)](2,e)),i[n(801)](i[n(801)](.1,t),t)),i[n(529)](i[n(824)](.1,t),e)),i[n(801)](.1,Math[n(649)](Math[n(693)](t))));return r+=i[n(1019)](i[n(650)](2,i[n(752)](i[n(801)](20,Math[n(468)](i[n(933)](i[n(529)](6,t),this.PI))),i[n(549)](20,Math[n(468)](i[n(882)](i[n(650)](2,t),this.PI))))),3),(r+=i[n(1019)](i[n(549)](2,i[n(530)](i[n(882)](20,Math[n(468)](i[n(694)](t,this.PI))),i[n(484)](40,Math[n(468)](i[n(484)](i[n(844)](t,3),this.PI))))),3))+i[n(1019)](i[n(871)](2,i[n(655)](i[n(997)](150,Math[n(468)](i[n(871)](i[n(676)](t,12),this.PI))),i[n(980)](300,Math[n(468)](i[n(633)](i[n(954)](t,30),this.PI))))),3)}};function E$r(){var t=["isNavi","VmEPv","minor","sqrt","VfnCs","gps","NvXyF","rssiCount","xMaxPeak","jWEGK","NjEfE","lat","ERBZe","fHNpJ","(orientation: landscape)","npHSz","shift","innerHTML","IdlNW","tlcUr","不支持获取GPS地理位置","jZsNN","CsioC","min","_calculate","xPeak","nQPgb","BEACON_DATA","aSvHE","ORDnP","SzOOK","reverse","alphaOffset","back","pathAngle","reduce","options","sBEdC","stepDetected","minRssi","jyDoV","pow","speed","RTuPi","$dom","filter","$gps","abs","YRJbR","DeviceMotionEvent","ulwFT","LmiCp","deviceorientationabsolute","oOaQY","initAngle","bGFjQ","beta","analyze","compassData","FgOXz","lockFloor","tzdyn","81uACBTc","cPcxl","beacon","angle","\n, dc:","XPJhZ","inertanceDelay","xMinPeak","BZSva","GIgiy","isOutdoor","4|2|0|1|6|3|5","kJPXR","ZIjFz","BBtez","KnKOg","ugXqu","voBit","KpRHo","\n beaconMaxRssi2:","XBRqJ","uMNtM","kQuAv","VMera","zValArr","gueuL","prkMz","FSatU","LQpvv","edojP","$testMsg","heading","calls","passFloorDis","pTYxs","QPNeu","inertance","toFixed","floor","vaPta","requestPermission","stringify","yPeak","tGaXN","uHrom","EKaBO","compass","gpsAlt","_changeFloorCount","window.deviceOrientation_err","pcKKH","DgiFE","orientation","__compass__","webkitCompassHeading","navi","TIjSP","deviceOrientation","rssi","hlHXK","zPeakCount",", cmps: ","LMCJH","spjus","zCount","motion","VHoMg","cUdKw","lastBeaconBestRssi","VDdDe","QqpAW","nCzVA","QChNq","vZzxr","rDJFe","oLlLG","renderer","yIarE","mgVAe",'\n <div style="position: fixed; left: 0; right: 0; top: 0; bottom: 0; z-index: 999999; background-color: rgba(0, 0, 0, .5); display: flex; flex-direction: column; align-items: center; justify-content: center;">\n <div style="width: 60%; max-width: 360px; background-color: #ffffff; border-radius: 8px; overflow: hidden; padding: 20px; text-align: center;">\n <div style="font-size: 0;"><img height="50" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAB8CAYAAABe4F8OAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NUM3RjcxOEY1NkREMTFFQkJGOTRCRkU0NDg3Q0U5ODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NUM3RjcxOTA1NkREMTFFQkJGOTRCRkU0NDg3Q0U5ODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1QzdGNzE4RDU2REQxMUVCQkY5NEJGRTQ0ODdDRTk4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1QzdGNzE4RTU2REQxMUVCQkY5NEJGRTQ0ODdDRTk4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv4JStIAAAhJSURBVHja7J1p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" alt="" /></div>\n <div style="font-size: 16px; color: #666666; font-weight: bold; margin-top: 10px;">系统需开启权限</div>\n <div style="border-top: 1px solid #dddddd; margin-top: 20px; padding: 10px 0">\n <div style="font-size: 14px; color: #999999; padding: 10px 0">指南针数据<span style="font-size: 13px; color: #cccccc; margin-left: 10px;">(运动方向)</span></div>\n </div>\n </div>\n </div>\n ',"calcPos","DYiFl","NimCA","CHCtz","hyJfc","fpGea","bHsyX","crossDoorDis","wRRCL","TDdhy","MCAGU","gIltg","gamma","FOOMW","matches","CUR_COMPASS","emMwX","emit","10|4|9|12|11|8|2|6|3|14|5|7|0|13|1","tHDOW","hceIU","hashchange","locationType","SNrrw","-楼层: ","WbuuH","\n 速度:","QRzEY","setAttribute","__FLOOR_CHANGE__","YyEjl","uqgIn","deviceOrientation_err","pwPOg","YRiGc","vvpPd","ZBnmU","YshgL","NHKga","soNOp","accuracy","_lastLocatePoint","rqfVf","sqfrO","$analyze","tDKbp","opHkv","IYwAu","zMinPeak","TIyfv","ready","cos","YNydu","TvQfX","srgoP","arr","Disio","zIVtD","zMaxPeak","outOfChina","\n, cdpd:","eivqV","toLat","sort","SZMhn","yValArr","pathInfo","cZzlo","sAbNt","Sqqxo","20uhcDLC","TGTos","JHQwh","max","rectify","beaconsLength","longitude","rCVaC","dMMTw","BCWUS","clearWatch","YFOeG","sphericalToDatums","jxHNg","KPMgV","TrkAf","LaNfe","window.alpha, beta, gamma","1815685020350812160","WyDgk","xjDPm","jlqPs","ufYPh","filterBeacons","stHBq","lockFloor:","locPosFilter","LDSqA","gHASk","init","aWuuf","$button","gZbPN","cqwiW","qhdXz","fXrLE","tbidl","QkwYx","920712JErYja","JvRlN","nDfIR","appendChild","time","handleHashChange","JAhAj","fvEMt","2|3|4|0|1","buf","crossFloorDis","connect","close","YIxii","MMfwC","removeChild",", cfdpfd:","qdUrW","IjFpy","dSCDc","AlNej","beaconAnalysisTimer","beacons","href","minIndoorRssiLimit","pyBzn",", gpsAlt:","aumwi","yLastTime","stepSpeed","uOCSl",", gpsSpeed:","VszJm","bBkdh","jXTXc","AxZRJ","3272910VRUyJx","jkQMF","QOXGe","resetDevice","pedometer","name",", alphaOffset: ","status","PEiCW","hKUQx","createElement","JQFXL","oUpUL","Vnklo","geolocation","evt1.alpha, beta, gamma","PZEDT","matchMedia","4862256nVQDOD","Nuger","now","mIxpb","zXSPg","ZvsYV","rEaZu","__PRIORITY_FLOOR__","AHMiN","push","jqEVK","catch","reset","xacuf","euCjL","alt","__step__","3014944opczyU","WUPPI","bzDcD","hnwxi","location","ZZxOZ","beaconCacheTime","setOptions","ksfvW","uqTqb","rBKDq","aAdyw","indexS","coHvG","app","$compass","xanvf","jmeeh","current","adqes","qceYz","-蓝牙(5:室外-5:室内):","gQsbX","lQPif","bufArrZ","hxdnb","ByBGl","TeYGV","oshBl","jdlJD","lDVhY","lt_78Count","axZAX","wflCl","ssOqL","JmOYK","TmwgG","forEach","parse","compassDelay","children","mIvgn","kueEI","MNgQx","beaconFilterList","rssiOffset","addEventListener","67534LkslME","map","IZRER","length","LcfYO","LfKqV","drSmG","DLtyQ","JtUJw","userAgent","AxIFR","njvmG","XJPsj","lMBUg","OzYDZ","AMoPC","__GPS__","locFloor","rqBfU","click","granted","3|6|4|0|2|5|1","UlhnL","sin","OcVkz","RvOlm","test","nrQPc","BsGAo","ZPeak","__CACHE_POOL__","then","IqlWE","removeEventListener","iKTsI","MfANm","acceleration","iebQZ","filterFloor","weaqW","qvzBN","KUFGV","latitude","bufArrY","valArrIdx","number","xCount","coords","__IOS_DEVICE_MOTION_AUTH_CALLBACK__","step","render","AWxwg","ghdTm","gpsHeading","body","SKCXy","IhbwN","tEoBf","gpsSpeed","fySTk","xValArr","QmZeV","mapId","FEufB","xuxTZ","OlWwA","beaconMaxRssi2","swQJC","maxRssi","EeaNK","watchPosition","nvKqZ","lastTimeY","__location__","ZGqZM","otRWo","SMAws","fJCMW","datumsToSpherical","rhvjU","kfUVo","uxScf","GPS","toLng","nPSmv","DSzuA","BueZb","NCTXj","ACoLZ","eyYri","mYRmb","AFUgO","slNCa","yMinPeak","isAuth","1861656901033529344",", lockFloor:","filterBeacon","ahjKJ","mDeIh","xAXcd","JDWsh","rMpeQ","alpha","YxlmY","major","style","bufArrX","ojrZS","321990gopkiv","WzfXx","YhtFY","pavQn","qsEiT","57022OVelaj","tvCxu","WZgeV","NTQNu","TJWVT","PNLKq","yCount","GcKiG","error","csOjo","\n, gpsHead:","ngmYy","HHiWk","info","passDoorDis","success","dvSgc","最强Rssi: ","\n 最强Gps: ","BJtPz","KuSHn","deviceorientation","qJqMS","devicemotion","NJBjs","yMaxPeak","UPdFg","ZDhde","lng","debug","ZTzQC","originCmps","vigEV","hasBeacon","div","JPXja","YGKmh","doyVA","SbsAF","FsoyI","log","split","delta","qhJZu","LWAuH","gpsAccuracy","dDXtF","getMapDataById","384UDlLRv","accelerationIncludingGravity","disconnect","YqivJ","margin: 0 auto; width: 100px; padding: 8px 0; border-radius: 30px; background-color: #0099FF; color: #ffffff; font-size: 14px;","TmJXh","floorDelay","\n pathAngle: ","deviceOrientationCB","2|4|0|5|3|1","unyIc","gpsSpeedMax","OOjWO","lthAv","open","oRTxp","\n2025/10/16 20:06:39","xhMMt","sJqav","QfjjB","vwXMd","beaconAnalysis","vJoYm","mapData","ZOVmU","juVGb","EWnOL","XeLix","bdSHa","bNgxZ","originGps","function","QqJMa","assign","lastTime","$acc","bufLen5","oawby","altitude"];return(E$r=function(){return t})()}function g$3(t){for(var e=q,n={vwXMd:e(904),uqTqb:e(461),nvKqZ:e(666)},i=n[e(627)][e(600)]("|"),r=0;;){switch(i[r++]){case"0":var s=!0;continue;case"1":this[e(907)]=function(){var n=e,i={Vnklo:a[n(579)]};return s=!0,navigator[n(946)]?c=navigator[n(946)][n(515)](function(e){var r,a=n;s&&(r={current:w$5[a(862)](e[a(492)][a(487)],e[a(492)][a(864)]),originGps:{...e[a(492)],lng:e[a(492)][a(864)],lat:e[a(492)][a(487)],alt:e[a(492)][a(645)],accuracy:e[a(492)][a(828)],speed:e[a(492)][a(688)],heading:e[a(492)][a(739)]}},t[a(805)](i[a(945)],r))},function(t){console[n(588)](t)},{maximumAge:0,timeout:3e4,enableHighAccuracy:!0}):console[n(588)](a[n(996)]),o},this[e(609)]=function(){var t=e;return s=!1,navigator[t(946)]&&c&&(navigator[t(946)][t(868)](c),c=null),o};continue;case"2":var a={KuSHn:n[e(976)],jdlJD:n[e(516)]};continue;case"3":var o=this;continue;case"4":var c;continue}break}}let U$2=class extends EventDispatcher{constructor(t){var e=q;super(),__publicField(this,_Kb,!1),__publicField(this,_Jb,!0),__publicField(this,_Ib,!1),__publicField(this,_Hb),__publicField(this,_Gb,0),__publicField(this,_Fb,30),__publicField(this,_Eb,0),__publicField(this,_Db,0),__publicField(this,_Cb,!0),__publicField(this,_Bb,-99),__publicField(this,_Ab,1),__publicField(this,_zb,-88),__publicField(this,_yb,""),__publicField(this,_xb,1),__publicField(this,_wb,0),__publicField(this,_vb,0),__publicField(this,_ub,-90),__publicField(this,_tb,-15),__publicField(this,_sb,200),__publicField(this,_rb,500),__publicField(this,_qb,2e3),__publicField(this,_pb,0),__publicField(this,_ob),__publicField(this,_nb),__publicField(this,_mb),__publicField(this,_lb),__publicField(this,_kb),__publicField(this,_jb,0),__publicField(this,_ib),__publicField(this,_hb,0),__publicField(this,_gb),__publicField(this,_fb),__publicField(this,_eb,-171),__publicField(this,_db),this[e(1015)]=t[e(1015)],this[e(974)](t),this[e(901)]()}[(_Kb=q(588),_Jb=q(539),_Ib=q(651),_Hb=q(1015),_Gb=q(678),_Fb=q(604),_Eb=q(498),_Db=q(755),_Cb=q(744),_Bb=q(776),_Ab=q(998),_zb=q(920),_yb=q(810),_xb=q(925),_wb=q(503),_vb=q(618),_ub=q(685),_tb=q(513),_sb=q(1006),_rb=q(714),_qb=q(613),_pb=q(700),_ob=q(829),_nb=q(692),_mb=q(982),_lb=q(832),_kb=q(673),_jb=q(803),_ib=q(642),q(887))](t){var e=q,n={ZDhde:e(754),LmiCp:function(t,e){return t||e},MMfwC:function(t,e){return t<e},aumwi:function(t,e){return t==e},gZbPN:function(t,e){return t*e},VszJm:function(t,e){return t*e},JmOYK:function(t,e){return t*e},hKUQx:e(518),QkwYx:e(494),YFOeG:e(936),JHQwh:function(t,e){return t<e},NimCA:function(t,e){return t>e},csOjo:e(966),dvSgc:function(t,e){return t<e},nrQPc:function(t,e){return t>e},BsGAo:function(t,e){return t<e},NTQNu:function(t,e){return t+e},xAXcd:function(t,e){return t*e},DYiFl:function(t,e){return t*e},OOjWO:function(t,e){return t*e},TeYGV:e(527),fpGea:function(t,e){return t in e},jXTXc:e(971),dMMTw:function(t,e){return t+e},LMCJH:e(838),ZGqZM:e(761),IqlWE:e(461),rDJFe:function(t){return t()}};let i=[];for(var r=0;n[e(910)](r,t[e(1017)]);r++){let s=t[r];i[n[e(866)](n[e(866)](s[e(550)],"_"),s[e(648)])]=s}this[e(673)]=[],this[e(673)]=i,this[e(805)](n[e(770)]),this[e(832)]=new n$7(this),this[e(982)]=new C$6(this),this[e(642)]=new b$7(this),this[e(692)]=new g$3(this),this[e(651)]&&this[e(692)][e(907)](),this[e(744)]&&this[e(642)][e(621)](),this.on(n[e(519)],t=>{var i=e;this[i(805)](n[i(586)],this[i(803)]=n[i(697)](t,0))}),this.on(n[e(568)],t=>{var i,r,s=e;if(!this[s(829)]||(null==(r=null==(i=this[s(1015)][s(763)])?void 0:i[s(854)])?void 0:r[s(706)]))return;let a=this[s(829)].x,o=this[s(829)].y,c=this[s(803)],l=n[s(910)](this[s(776)],-88)?.8:d$i?.55:.5;n[s(923)](this[s(829)][s(746)],"1")&&(l*=.5);let u=n[s(890)](l,t),h=n[s(890)](c,DEG2RAD),d={x:a+=n[s(928)](Math[s(468)](h),u),y:o+=n[s(1002)](Math[s(839)](h),u)};this[s(829)].x=d.x,this[s(829)].y=d.y,this[s(805)](n[s(941)],Object[s(640)]({},this[s(829)],{type:n[s(895)],compass:this[s(803)]})),this[s(805)](n[s(869)],t)});let s=0;this.on(n[e(477)],t=>{var i=e;if(this[i(503)]=t[i(637)][i(688)]||0,this[i(618)]=Math[i(861)](this[i(618)],this[i(503)]),this[i(755)]=t[i(637)][i(965)]||0,this[i(498)]=t[i(637)][i(739)]||0,n[i(860)](this[i(1015)][i(763)][i(854)][i(906)],10)||n[i(860)](this[i(1015)][i(763)][i(854)][i(741)],5)||!this[i(1015)][i(718)])return;if(n[i(790)](this[i(503)],1.5)&&this[i(805)](n[i(568)],n[i(1002)](this[i(503)],2)),this[i(604)]=t[i(637)][i(828)],n[i(910)](this[i(604)],5)&&n[i(575)](this[i(776)],-78)&&(this[i(998)]=Math[i(669)](this[i(998)]+=2,5)),n[i(575)](this[i(998)],0))return;if(this[i(592)]&&n[i(790)](this[i(604)],6))return;let r=t[i(985)]||t,a=UnitsUtils[i(523)](r[i(587)],r[i(657)]);if(this[i(829)]=this[i(829)]||a,!n[i(790)](this[i(776)],this[i(920)])||!n[i(472)](this[i(604)],5)){if(this[i(829)][i(746)]="1",this[i(1015)][i(763)][i(939)][i(646)]&&n[i(473)](t[i(637)][i(688)],3)){if(n[i(473)](++s,0))return;s=-6}this[i(829)].x=n[i(562)](n[i(545)](a.x,.5),n[i(1002)](this[i(829)].x,.5)),this[i(829)].y=n[i(562)](n[i(789)](a.y,.5),n[i(619)](this[i(829)].y,.5)),this[i(805)](n[i(941)],Object[i(640)]({},this[i(829)],{type:n[i(994)],originGps:t[i(637)]}))}}),this.on(n[e(941)],t=>{var i,r=e;t&&(i=n[r(793)]("x",t)?Object[r(640)]({},t,UnitsUtils[r(870)](t.x,t.y)):Object[r(640)]({},t,UnitsUtils[r(523)](t[r(587)],t[r(657)])),this[r(805)](n[r(930)],{...i}))}),this[e(539)]&&n[e(782)](u$6)[e(476)](t=>{this[e(935)]()})}[(_hb=q(653),q(670))](t){var e=q,n={ksfvW:function(t,e){return t===e},AHMiN:e(918),edojP:function(t,e){return t===e},SbsAF:function(t,e){return t<e},VHoMg:function(t,e){return t===e},NvXyF:function(t,e){return t+e},npHSz:function(t,e){return t/e},lQPif:function(t,e){return t+e},jqEVK:function(t,e){return t/e},SMAws:e(518),tvCxu:e(766)};if(n[e(975)](t[e(1017)],0))return;this[e(805)](n[e(958)],t);const i=this[e(832)][e(703)](t);if(this[e(829)]=this[e(829)]||i,i){if(this[e(1015)][e(763)][e(939)][e(646)]){let t=n[e(737)](this[e(829)][e(746)],i[e(746)]);if(this[e(829)][e(746)]=i[e(746)],n[e(597)](++this[e(653)],0)&&t)return;this[e(653)]=-6}n[e(774)](i[e(746)],this[e(829)][e(746)])?this[e(829)]={x:n[e(652)](n[e(661)](this[e(829)].x,2),n[e(661)](i.x,2)),y:n[e(990)](n[e(960)](this[e(829)].y,2),n[e(661)](i.y,2))}:this[e(829)]=i||this[e(829)],this[e(829)][e(746)]=i[e(746)],this[e(805)](n[e(521)],Object[e(640)]({},this[e(829)],{type:n[e(560)]}))}}[q(884)](t,e){var n=q,i={fXrLE:function(t,e,n){return t(e,n)},ERBZe:function(t,e){return t/e},soNOp:function(t,e){return t*e},vvpPd:function(t,e){return t+e},UPdFg:function(t,e){return t*e},JPXja:function(t,e){return t-e},MCAGU:function(t,e){return t*e},OcVkz:function(t,e){return t+e},LDSqA:function(t,e){return t*e},srgoP:function(t,e){return t-e}};let r=i[n(893)](getLineLength,t,e);r=Math[n(861)](r,1);let s=i[n(658)](1,i[n(827)](r,2));return{x:i[n(823)](i[n(585)](t.x,i[n(594)](1,s)),i[n(798)](e.x,s)),y:i[n(469)](i[n(885)](t.y,i[n(842)](1,s)),i[n(798)](e.y,s))}}[q(901)](){var t=q,e={spjus:function(t,e){return t(e)},EeaNK:function(t,e){return t>e},ACoLZ:function(t,e){return t-e},nQPgb:function(t,e,n){return t(e,n)},QmZeV:t(809)};window[t(1013)](e[t(506)],n=>{var i=t,r={adqes:function(t,n){return e[N$r(771)](t,n)},tDKbp:function(t,n){return e[N$r(771)](t,n)},oUpUL:function(t,n){return e[N$r(514)](t,n)},gQsbX:function(t,n){return e[N$r(533)](t,n)}};e[i(672)](setTimeout,()=>{var t=i,{appData:e}=r[t(986)](getURLQuery,location[t(919)]);e&&(e=r[t(833)](decodeURIComponent,e),e=JSON[t(1005)](e),r[t(944)](r[t(989)](Date[t(952)](),e[t(900)]),2e3)||(e[t(710)]&&this[t(628)](e[t(710)]),history[t(679)]()))},0)})}[(_gb=q(917),_fb=q(592),_eb=q(511),_db=q(863),q(628))](t=[]){var e,n,i=q,r={aAdyw:function(t,e){return t===e},NCTXj:i(540),PNLKq:function(t,e){return t!==e},hlHXK:i(876),mIxpb:function(t,e){return t+e},WzfXx:function(t,e){return t(e)},mIvgn:function(t,e,n){return t(e,n)},eivqV:function(t,e,n){return t(e,n)},JDWsh:function(t,e){return t>=e},NJBjs:function(t,e){return t>e},GcKiG:i(1011)};r[i(555)](clearTimeout,this[i(917)]),this[i(917)]=r[i(1008)](setTimeout,()=>{var t=i;this[t(776)]=-99,this[t(511)]=-180},5e3),r[i(555)](clearTimeout,this[i(917)]),this[i(917)]=r[i(849)](setTimeout,()=>{var t=i;this[t(511)]=-180.1,this[t(776)]=-99.1},5e3),t[i(1015)](t=>{var e=i;this[e(1015)][e(630)][e(682)][e(1012)]?t[e(766)]+=this[e(1015)][e(630)][e(682)][e(1012)]:(r[e(978)](this[e(1015)][e(630)][e(507)],r[e(532)])&&r[e(564)](t[e(550)],2e4)&&(t[e(766)]+=30),r[e(978)](this[e(1015)][e(630)][e(507)],r[e(767)])&&(t[e(766)]+=10));let n=this[e(673)][t[e(550)]+"_"+t[e(648)]];(null==n?void 0:n[e(1012)])&&(t[e(766)]=r[e(953)](t[e(766)],n[e(1012)]),t[e(828)]=r[e(555)](J$b,t[e(766)]))}),t[0]&&(this[i(863)]=t[i(1017)],t=this[i(881)](t,this[i(673)],this[i(685)],this[i(513)]),this[i(863)]=r[i(953)](r[i(953)](this[i(863)],"-"),t[i(1017)])),this[i(511)]=r[i(953)]((null==(e=t[0])?void 0:e[i(766)])||-90,(null==(n=t[1])?void 0:n[i(766)])||-90),t[i(1017)]&&!this[i(592)]&&(this[i(592)]=!0),t[0]?this[i(776)]=t[0][i(766)]:this[i(776)]-=5.1,r[i(546)](this[i(776)],-78)&&(this[i(998)]=Math[i(861)](--this[i(998)],-5)),r[i(583)](this[i(998)],0)||(this[i(805)](r[i(566)],JSON[i(1005)](JSON[i(749)](t))),this[i(670)](t||[]))}[q(881)](t,e,n,i){var r=q,s={WyDgk:function(t,e){return t<e},CHCtz:function(t,e){return t+e},KUFGV:function(t,e){return t<=e},euCjL:function(t,e){return t>e},ngmYy:function(t,e){return t<e}};(t=t[r(918)]||t||[])[r(851)]((t,e)=>e[r(766)]-t[r(766)]);for(var a=[],o=0;s[r(877)](o,t[r(1017)]);o++){var c=t[o],l=s[r(791)](s[r(791)](c[r(550)],"_"),c[r(648)]);if(c[r(766)]=+c[r(766)],c[r(828)]=+c[r(828)],e[l]&&!s[r(486)](c[r(828)],0)&&!s[r(964)](c[r(766)],i)){if(s[r(570)](c[r(766)],n))break;var u=e[l];a[r(959)]({major:u[r(550)],minor:u[r(648)],rssi:c[r(766)],accuracy:c[r(828)],x:u.x,y:u.y,floor:u[r(746)]})}}return a}[q(962)](){var t=q;this[t(832)][t(962)]()}[q(935)](){var t=q;this[t(982)][t(962)](),this[t(642)][t(962)]()}[q(974)](t){var e=q,n={QPNeu:function(t,e){return t!==e},rMpeQ:function(t,e){return t!==e}};for(var i in t)n[e(743)](void 0,this[i])&&n[e(547)](void 0,t[i])&&n[e(743)](t[i],null)&&n[e(743)](t[i],"")&&(this[i]=t[i])}};var c$1=N$q;function N$q(t,e){var n=E$q();return(N$q=function(t,e){return n[t-=472]})(t,e)}!function(t,e){for(var n=N$q,i=t();;)try{if(918442===-parseInt(n(498))/1+-parseInt(n(543))/2*(-parseInt(n(515))/3)+parseInt(n(501))/4+parseInt(n(541))/5+parseInt(n(510))/6*(parseInt(n(478))/7)+parseInt(n(557))/8+-parseInt(n(472))/9*(parseInt(n(509))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$q),_Mb=c$1(513),_Lb=c$1(496);class PathData{constructor(t,e){__publicField(this,"id"),__publicField(this,_Mb),__publicField(this,_Lb);var n=c$1;this.id=t,this[n(513)]=null,this[n(496)]=e}}_Pb=c$1(499),_Ob=c$1(559),_Nb=c$1(496);class LinkData{constructor(t,e,n,i){__publicField(this,_Pb),__publicField(this,_Ob),__publicField(this,_Nb),__publicField(this,"id");var r=c$1;this[r(499)]=t,this[r(559)]=e,this[r(496)]=n,this.id=i}}function E$q(){var t=["143059sgUtgi","upqeC","vtKyf","gmlMG","eFhfs","options","removeNode","1|6|2|0|5|3|4","clear","vIxik","getLink","split","forEach","berzQ","FEmFA","gPHYw","ZZWdY","get","data","rRzlt","1829815UgpSwl","fromId","WZaRy","6789064HeQTTi","fkZdI","qULoP","VDjaY","Function is expected to iterate over graph nodes. You passed ","addLinkToNode","multigraph","done","30XcDMte","204xSrueo","PtZUJ","add","links","delete","7467VUiMKf","forEachLink","3|2|0|1|5|4","eanID","1|4|3|0|2","hasOwnProperty","getLinks","UVzwR","addLink","hoPzB","createSingleLink","createLink","multiEdges","GCqnt","forEachNode","set","ngvsp","function","zUVwR","value","getNodeCount","getNode","createUniqueLink","PXGds","GAuMM","NoAIO","1306765sCgAuF","size","152UKWUWk","GSkOu","Oybem","PGvIw","forEachOrientedLink","nodes","getLinkCount","forEachNonOrientedLink","next","from","rtIqX","forEachLinkedNode","removeLink","ujrmW","8496976SqKjXq","removeLinkInstance","toId","3469518sgJrlU","IbBdu","addNode","1|0|5|6|4|7|3|2","values","OomNI"];return(E$q=function(){return t})()}function d$h(t,e){var n=c$1,i={qULoP:function(t,e){return t+e},zUVwR:function(t,e){return t+e}};return i[n(503)](i[n(533)](t,"_"),e)}class AStarPath{constructor(t={}){__publicField(this,_Ub),__publicField(this,_Tb,new Map),__publicField(this,_Sb,new Map),__publicField(this,_Rb,{}),__publicField(this,_Qb);var e=c$1,n={PGvIw:function(t,e){return t||e},WZaRy:function(t,e){return t===e}};this[e(483)]=n[e(546)](t,{}),n[e(500)](t[e(507)],void 0)&&(t[e(507)]=!1),this[e(526)]=t[e(507)]?this[e(537)]:this[e(525)]}[(_Ub=c$1(483),_Tb=c$1(548),_Sb=c$1(513),_Rb=c$1(527),_Qb=c$1(526),c$1(525))](t,e,n){var i=c$1,r={GAuMM:function(t,e,n){return t(e,n)}}[i(539)](d$h,t,e),s=this[i(513)][i(495)](r);return s?(s[i(496)]=n,s):new LinkData(t,e,n,r)}[c$1(537)](t,e,n){var i=c$1,r={IbBdu:function(t,e,n){return t(e,n)},vtKyf:function(t,e){return t+e},gPHYw:function(t,e,n){return t(e,n)},NoAIO:function(t,e){return t+e}},s=r[i(473)](d$h,t,e),a=this[i(527)][i(520)](s);if(a||this[i(488)](t,e)){!a&&(this[i(527)][s]=0);var o=r[i(480)]("@",++this[i(527)][s]);s=r[i(493)](d$h,r[i(480)](t,o),r[i(540)](e,o))}return new LinkData(t,e,n,s)}[c$1(523)](t,e,n){for(var i=c$1,r={ngvsp:i(485),GCqnt:function(t,e){return t!==e}},s=r[i(531)][i(489)]("|"),a=0;;){switch(s[a++]){case"0":this[i(513)][i(530)](c.id,c);continue;case"1":var o=this[i(536)](t)||this[i(474)](t,n[i(552)]);continue;case"2":var c=this[i(526)](t,e,n);continue;case"3":r[i(528)](t,e)&&this[i(506)](l,c);continue;case"4":return c;case"5":this[i(506)](o,c);continue;case"6":var l=this[i(536)](e)||this[i(474)](e,n.to);continue}break}}[c$1(506)](t,e){var n=c$1;t[n(513)]?t[n(513)][n(512)](e):t[n(513)]=new Set([e])}[c$1(555)](t,e){var n=c$1;return{GSkOu:function(t,e){return t!==e}}[n(544)](e,void 0)&&(t=this[n(488)](t,e)),this[n(558)](t)}[c$1(488)](t,e){var n=c$1,i={PXGds:function(t,e){return t===e},UVzwR:function(t,e,n){return t(e,n)}};if(!i[n(538)](t,void 0)&&!i[n(538)](e,void 0))return this[n(513)][n(495)](i[n(522)](d$h,t,e))}[c$1(486)](){var t=c$1;this[t(529)](function(e){this[t(484)](e.id)})}[c$1(516)](t){var e=c$1,n={upqeC:function(t,e){return t===e},VDjaY:e(532),rtIqX:function(t,e){return t(e)}};if(n[e(479)](typeof t,n[e(504)]))for(var i=this[e(513)][e(476)](),r=i[e(551)]();!r[e(508)];){if(n[e(553)](t,r[e(534)]))return!0;r=i[e(551)]()}}[c$1(554)](t,e,n){var i=c$1,r={FEmFA:function(t,e){return t===e},berzQ:i(532)},s=this[i(536)](t);if(s&&s[i(513)]&&r[i(492)](typeof e,r[i(491)]))return n?this[i(547)](s[i(513)],t,e):this[i(550)](s[i(513)],t,e)}[c$1(550)](t,e,n){for(var i,r=c$1,s={PtZUJ:r(519),gmlMG:function(t,e,n){return t(e,n)},ZZWdY:function(t,e){return t===e}},a=t[r(476)](),o=a[r(551)]();!o[r(508)];)for(var c=s[r(511)][r(489)]("|"),l=0;;){switch(c[l++]){case"0":if(i)return!0;continue;case"1":var u=o[r(534)];continue;case"2":o=a[r(551)]();continue;case"3":i=s[r(481)](n,this[r(548)][r(495)](h),u);continue;case"4":var h=s[r(494)](u[r(499)],e)?u[r(559)]:u[r(499)];continue}break}}[c$1(547)](t,e,n){for(var i=c$1,r={hoPzB:function(t,e){return t===e},fkZdI:function(t,e,n){return t(e,n)}},s=t[i(476)](),a=s[i(551)]();!a[i(508)];){var o=a[i(534)];if(r[i(524)](o[i(499)],e)&&r[i(502)](n,this[i(548)][i(495)](o[i(559)]),o))return!0;a=s[i(551)]()}}[c$1(529)](t){var e=c$1,n={rRzlt:function(t,e){return t!==e},vIxik:e(532),ujrmW:function(t,e){return t+e},eFhfs:e(505),Oybem:function(t,e){return t(e)}};if(n[e(497)](typeof t,n[e(487)]))throw new Error(n[e(556)](n[e(482)],t));for(var i=this[e(548)][e(476)](),r=i[e(551)]();!r[e(508)];){if(n[e(545)](t,r[e(534)]))return!0;r=i[e(551)]()}}[c$1(474)](t,e){var n=c$1,i=this[n(536)](t);return i?i[n(496)]=e:i=new PathData(t,e),this[n(548)][n(530)](t,i),i}[c$1(536)](t){var e=c$1;return this[e(548)][e(495)](t)}[c$1(484)](t){for(var e=c$1,n={OomNI:e(517)}[e(477)][e(489)]("|"),i=0;;){switch(n[i++]){case"0":var r=s[e(513)];continue;case"1":r&&(r[e(490)](this[e(558)]),s[e(513)]=null);continue;case"2":if(!s)return!1;continue;case"3":var s=this[e(536)](t);continue;case"4":return!0;case"5":this[e(548)][e(514)](t);continue}break}}[c$1(535)](){var t=c$1;return this[t(548)][t(542)]}[c$1(549)](){var t=c$1;return this[t(513)][t(542)]}[c$1(521)](t){var e=c$1,n=this[e(536)](t);return n?n[e(513)]:null}[c$1(558)](t){for(var e=c$1,n={eanID:e(475)}[e(518)][e(489)]("|"),i=0;;){switch(n[i++]){case"0":if(!this[e(513)][e(495)](t.id))return!1;continue;case"1":if(!t)return!1;continue;case"2":return!0;case"3":r&&r[e(513)][e(514)](t);continue;case"4":var r=this[e(536)](t[e(559)]);continue;case"5":this[e(513)][e(514)](t.id);continue;case"6":var s=this[e(536)](t[e(499)]);continue;case"7":s&&s[e(513)][e(514)](t);continue}break}}}var G=N$p;function N$p(t,e){var n=E$p();return(N$p=function(t,e){return n[t-=274]})(t,e)}function d$g(t,e){for(var n=N$p,i={uPSiB:n(320),CuEGe:function(t,e){return t<e},MqUgA:function(t,e){return t instanceof e},IquRC:function(t,e){return t>e},ATiMO:function(t,e){return t>>e},MaPbJ:function(t,e){return t>=e},mDVHf:function(t,e){return t||e}},r=i[n(297)][n(284)]("|"),s=0;;){switch(r[s++]){case"0":this[n(322)]=this[n(304)][n(322)];continue;case"1":if(e[n(305)])for(var a=0;i[n(316)](a,this[n(322)]);++a)this[n(305)](this[n(304)][a],a);continue;case"2":if(!i[n(309)](this,d$g))return new d$g(t,e);continue;case"3":this[n(305)]=e[n(305)]||J$a;continue;case"4":this[n(304)]=t||[];continue;case"5":!Array[n(293)](t)&&(e=t,t=[]);continue;case"6":this[n(296)]=e[n(296)]||x$7;continue;case"7":if(i[n(317)](this[n(322)],0))for(a=i[n(281)](this[n(322)],1);i[n(302)](a,0);a--)this[n(275)](a);continue;case"8":e=i[n(290)](e,{});continue}break}}function J$a(){}function x$7(t,e){return{gDuGm:function(t,e){return t-e}}[N$p(319)](t,e)}function E$p(){var t=["jufHG","prototype","16WltUjM","MqUgA","pop","bZsxY","1339264EYNwEn","805989HdCfNg","Lwabs","0|5|2|1|6|4|7|3","CuEGe","IquRC","2577984pMHZGC","gDuGm","2|5|8|4|0|6|3|7|1","11231433vBuGGN","length","_up","2893205wgDvnz","UWrKW","QKrtD","tcOSs","GpQox","_down","UKFHX","pQEKf","5nKShty","rbiPU","UWksE","ATiMO","keEFO","uPuch","split","tKeJH","KYGsr","33ygnsrB","12460730MwKSQz","4516296gwComH","mDVHf","4|0|2|1|5|6|3","jHPlP","isArray","4JPNOPc","2|0|3|5|1|4","compare","uPSiB","ISkOm","yoDUR","fBrbc","MPTgu","MaPbJ","push","data","setNodeId"];return(E$p=function(){return t})()}!function(t,e){for(var n=N$p,i=t();;)try{if(753494===-parseInt(n(312))/1+parseInt(n(294))/2*(parseInt(n(313))/3)+parseInt(n(318))/4+parseInt(n(278))/5*(-parseInt(n(289))/6)+parseInt(n(324))/7*(-parseInt(n(308))/8)+-parseInt(n(321))/9+-parseInt(n(288))/10*(-parseInt(n(287))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$p),d$g[G(307)]={push:function(t){var e=G;this[e(304)][e(303)](t),this[e(305)](t,this[e(322)]),this[e(322)]++,this[e(323)]({tcOSs:function(t,e){return t-e}}[e(327)](this[e(322)],1))},pop:function(){for(var t=G,e={ISkOm:t(295),keEFO:function(t,e){return t===e},pQEKf:function(t,e){return t>e}},n=e[t(298)][t(284)]("|"),i=0;;){switch(n[i++]){case"0":var r=this[t(304)][0];continue;case"1":this[t(304)][t(310)]();continue;case"2":if(e[t(282)](this[t(322)],0))return;continue;case"3":this[t(322)]--;continue;case"4":return r;case"5":e[t(277)](this[t(322)],0)&&(this[t(304)][0]=this[t(304)][this[t(322)]],this[t(305)](this[t(304)][0],0),this[t(275)](0));continue}break}},peek:function(){return this[G(304)][0]},updateItem:function(t){var e=G;this[e(275)](t),this[e(323)](t)},_up:function(t){for(var e=G,n={UWksE:e(291),fBrbc:function(t,e,n){return t(e,n)},QKrtD:function(t,e){return t>e},KYGsr:function(t,e){return t>>e},rbiPU:function(t,e){return t-e},UWrKW:function(t,e){return t>=e},tKeJH:function(t,e,n){return t(e,n)}},i=n[e(280)][e(284)]("|"),r=0;;){switch(i[r++]){case"0":var s=this[e(296)];continue;case"1":var a=c[t];continue;case"2":var o=this[e(305)];continue;case"3":n[e(300)](o,a,t);continue;case"4":var c=this[e(304)];continue;case"5":for(;n[e(326)](t,0);){var l=n[e(286)](n[e(279)](t,1),1),u=c[l];if(n[e(325)](n[e(300)](s,a,u),0))break;c[t]=u,n[e(285)](o,u,t),t=l}continue;case"6":c[t]=a;continue}break}},_down:function(t){for(var e=G,n={jHPlP:e(315),jufHG:function(t,e){return t>>e},bZsxY:function(t,e,n){return t(e,n)},yoDUR:function(t,e){return t<e},MPTgu:function(t,e){return t+e},uPuch:function(t,e){return t<<e},GpQox:function(t,e){return t+e},Lwabs:function(t,e,n){return t(e,n)},UKFHX:function(t,e){return t>=e}},i=n[e(292)][e(284)]("|"),r=0;;){switch(i[r++]){case"0":var s=this[e(304)];continue;case"1":var a=s[t];continue;case"2":var o=n[e(306)](this[e(322)],1);continue;case"3":n[e(311)](d,a,t);continue;case"4":for(;n[e(299)](t,o);){var c=n[e(301)](n[e(283)](t,1),1),l=n[e(274)](c,1),u=s[c];if(n[e(299)](l,this[e(322)])&&n[e(299)](n[e(314)](h,s[l],u),0)&&(c=l,u=s[l]),n[e(276)](n[e(311)](h,u,a),0))break;s[t]=u,n[e(311)](d,u,t),t=c}continue;case"5":var h=this[e(296)];continue;case"6":var d=this[e(305)];continue;case"7":s[t]=a;continue}break}}};var v$1=N$o;!function(t,e){for(var n=N$o,i=t();;)try{if(361553===-parseInt(n(426))/1*(parseInt(n(436))/2)+-parseInt(n(432))/3*(parseInt(n(425))/4)+-parseInt(n(435))/5+parseInt(n(439))/6*(parseInt(n(429))/7)+-parseInt(n(428))/8*(-parseInt(n(437))/9)+parseInt(n(433))/10+parseInt(n(441))/11)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$o);var d$f=[];function N$o(t,e){var n=E$o();return(N$o=function(t,e){return n[t-=425]})(t,e)}typeof Object[v$1(438)]===v$1(440)&&Object[v$1(438)](d$f);const J$8={heuristic:J$9,distance:x$6,blocked:a$7,compareFScore:n$6,NO_PATH:d$f,setHeapIndex:C$5,setH1:u$5,setH2:H$5,compareF1Score:o$3,compareF2Score:b$6};function J$9(){return 0}function E$o(){var t=["1137pYgGqx","1211440GsCKma","hYMAM","1695750nSxQuG","666852GCfCHX","36ppQLTj","freeze","6PzfkwL","function","10686533RfIQcJ","fScore","6428Chzmzu","1JPKFlh","ctUDj","265016HzTAwX","2926189QfzSHN","heapIndex","NZURx"];return(E$o=function(){return t})()}function x$6(){return 1}function a$7(){return!1}function n$6(t,e){var n=v$1;return{hYMAM:function(t,e){return t-e}}[n(434)](t[n(442)],e[n(442)])}function C$5(t,e){t[v$1(430)]=e}function o$3(t,e){return{ctUDj:function(t,e){return t-e}}[v$1(427)](t.f1,e.f1)}function b$6(t,e){return{NZURx:function(t,e){return t-e}}[v$1(431)](t.f2,e.f2)}function u$5(t,e){t.h1=e}function H$5(t,e){t.h2=e}function d$e(t){for(var e=N$n,n={iFrUJ:e(132)}[e(134)][e(122)]("|"),i=0;;){switch(n[i++]){case"0":this.g2=Number[e(125)];continue;case"1":this.g1=Number[e(125)];continue;case"2":this.p1=null;continue;case"3":this.p2=null;continue;case"4":this.f1=Number[e(125)];continue;case"5":this.f2=Number[e(125)];continue;case"6":this.h1=-1;continue;case"7":this[e(130)]=!1;continue;case"8":this[e(121)]=t;continue;case"9":this.h2=-1;continue}break}}function E$n(){var t=["node","split","90CRBtxT","1434eQfZre","POSITIVE_INFINITY","15757rijMEl","288760yYphRD","6|8|5|0|3|2|1|9|4|7","uvgDC","closed","2kOZLbi","8|2|3|7|1|0|4|5|6|9","404870LTowhm","iFrUJ","30516lphhPm","1877331bkWynG","261176eulqfU","1441naWlDP","12uEHxER","6196880ypVxLN"];return(E$n=function(){return t})()}function J$7(){var t=N$n,e={uvgDC:t(128)},n=0,i=[];return{createNewState:function(r){var s=t,a=i[n];if(a)for(var o=e[s(129)][s(122)]("|"),c=0;;){switch(o[c++]){case"0":a[s(130)]=!1;continue;case"1":a.f1=Number[s(125)];continue;case"2":a.g2=Number[s(125)];continue;case"3":a.g1=Number[s(125)];continue;case"4":a.h1=-1;continue;case"5":a.p2=null;continue;case"6":a[s(121)]=r;continue;case"7":a.h2=-1;continue;case"8":a.p1=null;continue;case"9":a.f2=Number[s(125)];continue}break}else a=new d$e(r),i[n]=a;return n++,a},reset:function(){n=0}}}function N$n(t,e){var n=E$n();return(N$n=function(t,e){return n[t-=118]})(t,e)}!function(t,e){for(var n=N$n,i=t();;)try{if(553641===-parseInt(n(137))/1+-parseInt(n(131))/2*(-parseInt(n(136))/3)+parseInt(n(119))/4*(parseInt(n(133))/5)+-parseInt(n(124))/6*(-parseInt(n(126))/7)+parseInt(n(127))/8*(parseInt(n(123))/9)+-parseInt(n(120))/10+parseInt(n(118))/11*(-parseInt(n(135))/12))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$n);var m=N$m;function E$m(){var t=["3195384iUNAUP","sejVe","NO_PATH","gWpGG","FMifb","hAocG","xzWPa","GwPtQ","wFlNX","compareF1Score","fromId","jnCnU","bKscg","split","spYJi","nrKdd","createNewState","blocked","NvwvC","toId","fromId is not defined in this graph: ","OZpCh","NYauq","pop","MhUti","length","bXmSO","pYBFG","aPOIB","3699745CljOgq","reset","lVibT","efWXt","2679303vmRmKA","set","llkRa","forEachLinkedNode","compareF2Score","gRLZw","tnqAn","zTbAM","heuristic","qJsiI","rTCVa","FCwJj","peek","0|1|4|3|2","toId is not defined in this graph: ","YDPJy","683966WRUBYO","4313676UvTnGA","TgZeN","node","kQMus","lkTXt","SGwHK","get","distance","ZmlIw","FCwfX","6951924iLZXvM","POSITIVE_INFINITY","QDisQ","2|4|1|0|3","oriented","mSnfO","1|2|3|5|6|7|0|4","lkUfd","setH2","17497944osSJDg","XQdnT","quitFast","mZwPe","closed","getNode","gnTCC","FiutZ","push","updateItem","2|0|3|1|6|5|4","setH1","1WEhSEq","3|1|6|2|7|0|5|4","unshift"];return(E$m=function(){return t})()}function N$m(t,e){var n=E$m();return(N$m=function(t,e){return n[t-=276]})(t,e)}!function(t,e){for(var n=N$m,i=t();;)try{if(619076===parseInt(n(321))/1*(-parseInt(n(289))/2)+-parseInt(n(357))/3+-parseInt(n(324))/4+parseInt(n(353))/5+parseInt(n(290))/6+-parseInt(n(300))/7+parseInt(n(309))/8)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$m);var a$6=J$8[m(326)];function d$d(t,e={}){var n=m,i={lkTXt:n(303),gRLZw:function(t,e){return t<e},lVibT:function(t,e){return t<e},TgZeN:function(t,e){return t-e},gnTCC:function(t,e){return t+e},mZwPe:function(t,e,n){return t(e,n)},lkUfd:function(t,e){return t>e},mSnfO:n(286),hAocG:function(t,e){return t>e},efWXt:function(t,e){return t<e},ZmlIw:function(t,e){return t<e},bXmSO:function(t,e){return t+e},FCwJj:n(322),spYJi:function(t,e,n){return t(e,n)},rTCVa:function(t,e){return t<e},QDisQ:function(t,e,n,i){return t(e,n,i)},XQdnT:function(t,e){return t<e},qJsiI:function(t,e){return t+e},bKscg:function(t,e){return t===e},YDPJy:function(t,e,n){return t(e,n)},OZpCh:n(306),sejVe:function(t,e,n,i){return t(e,n,i)},SGwHK:function(t,e,n){return t(e,n)},aPOIB:n(344),zTbAM:function(t,e){return t+e},MhUti:n(287),llkRa:function(t,e){return t<e},FiutZ:function(t){return t()},FMifb:function(t){return t()},gWpGG:function(t,e){return t&&e},GwPtQ:function(t,e){return t(e)},jnCnU:function(t){return t()}},r=e[n(304)],s=e[n(311)],a=e[n(341)]||J$8[n(341)],o=e[n(281)]||J$8[n(281)],c=e[n(297)]||J$8[n(297)],l=i[n(335)](J$7);return{find:function(e,u){var h=n,d={NYauq:i[h(345)],NvwvC:function(t,e){return i[h(350)](t,e)},tnqAn:function(t,e){return i[h(356)](t,e)},xzWPa:function(t,e,n,r){return i[h(302)](t,e,n,r)},nrKdd:function(t,e,n,r){return i[h(325)](t,e,n,r)},kQMus:function(t,e,n){return i[h(295)](t,e,n)},pYBFG:function(t,e){return i[h(283)](t,e)},FCwfX:function(t,e){return i[h(336)](t,e)}},p=t[h(314)](e);if(!p)throw new Error(i[h(282)](i[h(352)],e));var f=t[h(314)](u);if(!f)throw new Error(i[h(280)](i[h(348)],u));l[h(354)]();var m,g=r?function(t,e){var n=h;if(i[n(336)](e[n(334)],M[n(292)].id))return i[n(288)](C,t,e)}:C,A=r?function(t,e){var n=h;if(d[n(299)](e[n(343)],M[n(292)].id))return d[n(293)](k,t,e)}:k,y=new Map,v=new d$g({compare:J$8[h(333)],setNodeId:J$8[h(320)]}),S=new d$g({compare:J$8[h(277)],setNodeId:J$8[h(308)]}),x=Number[h(301)],b=l[h(340)](p);y[h(358)](e,b),b.g1=0;var T=i[h(288)](o,p,f);b.f1=T,v[h(317)](b);var I=l[h(340)](f);y[h(358)](u,I),I.g2=0;var M,E=T;I.f2=E,S[h(317)](I);for(;S[h(349)]&&v[h(349)]&&(i[h(359)](v[h(349)],S[h(349)])?i[h(316)](w):i[h(328)](R),!i[h(327)](s,m)););return i[h(331)](n$5,m);function w(){for(var e=h,n=i[e(294)][e(337)]("|"),r=0;;){switch(n[r++]){case"0":i[e(278)](M.f1,x)&&i[e(355)](i[e(291)](i[e(315)](M.g1,E),i[e(312)](o,p,M[e(292)])),x)&&t[e(276)](M[e(292)].id,g);continue;case"1":M[e(313)]=!0;continue;case"2":M=v[e(347)]();continue;case"3":i[e(307)](v[e(349)],0)&&(T=v[e(285)]().f1);continue;case"4":if(M[e(313)])return;continue}break}}function R(){for(var e=h,n=i[e(305)][e(337)]("|"),r=0;;){switch(n[r++]){case"0":M=S[e(347)]();continue;case"1":if(M[e(313)])return;continue;case"2":i[e(329)](S[e(349)],0)&&(E=S[e(285)]().f2);continue;case"3":i[e(356)](M.f2,x)&&i[e(298)](i[e(291)](i[e(350)](M.g2,T),i[e(312)](o,M[e(292)],f)),x)&&t[e(276)](M[e(292)].id,A);continue;case"4":M[e(313)]=!0;continue}break}}function C(t,e){for(var n=h,r=i[n(284)][n(337)]("|"),s=0;;){switch(r[s++]){case"0":i[n(298)](p,u.g1)&&(u.g1=p,u.f1=i[n(350)](p,i[n(338)](o,u[n(292)],f)),u.p1=M,i[n(283)](u.h1,0)?v[n(317)](u):v[n(318)](u.h1));continue;case"1":!u&&(u=l[n(340)](t),y[n(358)](t.id,u));continue;case"2":if(i[n(302)](a,M[n(292)],t,e))return;continue;case"3":var u=y[n(296)](t.id);continue;case"4":i[n(310)](d,x)&&(x=d,m=u);continue;case"5":var d=i[n(315)](u.g1,u.g2);continue;case"6":if(u[n(313)])return;continue;case"7":var p=i[n(282)](M.g1,i[n(302)](c,M[n(292)],t,e));continue}break}}function k(t,e){for(var n=h,i=d[n(346)][n(337)]("|"),r=0;;){switch(i[r++]){case"0":var s=d[n(342)](u.g1,u.g2);continue;case"1":var u=y[n(296)](t.id);continue;case"2":!u&&(u=l[n(340)](t),y[n(358)](t.id,u));continue;case"3":if(u[n(313)])return;continue;case"4":d[n(279)](s,x)&&(x=s,m=u);continue;case"5":if(d[n(330)](a,M[n(292)],t,e))return;continue;case"6":var f=d[n(342)](M.g2,d[n(339)](c,M[n(292)],t,e));continue;case"7":d[n(279)](f,u.g2)&&(u.g2=f,u.f2=d[n(342)](f,d[n(293)](o,p,u[n(292)])),u.p2=M,d[n(351)](u.h2,0)?S[n(317)](u):S[n(318)](u.h2));continue}break}}}}}function n$5(t){for(var e=m,n={wFlNX:e(319)}[e(332)][e(337)]("|"),i=0;;){switch(n[i++]){case"0":var r=[t[e(292)]];continue;case"1":for(;s;)r[e(317)](s[e(292)]),s=s.p1;continue;case"2":if(!t)return a$6;continue;case"3":var s=t.p1;continue;case"4":return r;case"5":for(;a;)r[e(323)](a[e(292)]),a=a.p2;continue;case"6":var a=t.p2;continue}break}}const T=N$l;function E$l(){const t=["rYoYB","uBNAh","find","computeRouteInfo","motorway","map","GLZJc","即将左转","ppWVo","carOnly","cellSize","ouiMH","未找到路线","dteUi","MVmVG","get","indoor","pzwUW","OAqyT","name","enterType","firstDistance","stLfb","请保持直行","elevator","enterTypeId","myPositionPath","man","UgDuy","WbEHG","floorId","cross","grid","57702wnwKcb","quvxR","qUBYm","unshift","indexOf","xcndR","未找到路线, 请联系地图制作方!","reverse","xyICm","gepwj","distance","oZgkj","hUUnG","nextDistance","assign","UiAzL","2|3|0|4|1","sTYPX","isEnd","findRoute","waypoint","planRoute","car","uqFiO","ypGsA","ZoHPN","VRMxT","ids","reduce","ZsCHv","355jvkxLN","OLluy","htarc","未找到路线:","aoa","KbcBq","MvcbS","data","path","ubpuQ","lbDLV","_planCount","kOwSh","minArr","DYjik","YRQsH","block","NFnnC","JxWMw","ElwSu","8DEhkjz","xSgKc","text","LbZje","向右后方掉头","ocwlb","includes","splice","向左后方掉头","FEhFx","tVRou","139518jewMZp","RvQhP","rDcgr","pYgYt","crossType","IcIdk","jnbzR","sqrt","qkUUf","vTGnZ","ocUxe","向左前方","fbUnn","HTrKE","CElOY","cAske","jJyWg","VTEjo","JRvgk","tip","addLink","skfUk","isMyPosition","154XIKqzx","fChRj","agDYQ","locationType","angle2NaviText","VPlcl","AQzKQ","9259XWRNdG","RAD2DEG","WYnjf","_cellIndex","FNVXa","DmzQr","pxcKl","escalator","RWJFd","TlGqj","skdib","mapData","split","NugzN","YOhkr","找不到路线:","nearestSegment","pwyAM","jgfTJ","arLTo","hypot","fXDXv","EprwU","insertSegment","zVPNV","angle","BzByN","sqmKW","copy","status","egVsv","jOZrS","hAFoe","max","6526962VyaNTO","lFdQG","jNppn","即将右转","point","HibDJ","aStarPath","dOFoi","dPtgv","sub","0|10|4|8|9|3|6|12|1|11|5|2|7","mapRotation","15089330GXlZlP","clone","qvTJP","Qxtcy","floorPathOriginObj","shift","udxpI","distancePower","isOutdoor","nextIdx","5878072qlFrmb","angleTo","getLink","qQdwy","owSdq","iwCOo","sort","floor","pointAtPath","NTsdF","QCVGL","location","aQugv","tPHTJ","onFindDistance","pop","EkTbw","jESVW","NcdWj","vfYYF","LOfVD","_key","KVpAY","min","lyxfb","gWlTc","navi","GeAwH","UIyRE","KPOiN","PWPWN","ICAov","UkPVk","3918306nshXWT","svFKL","points","has","EglDM","ppoDY","stairs","CxwHo","向右前方","rpKaK","push","getMapDataById","set","6|7|4|2|8|5|1|3|0","gkykq","XwoSs","atPath","log","onFindBlock","manCar","Uqgfp","pVgdR","NevEZ","rUtyi","PtYwd","length","manOnly"];return(E$l=function(){return t})()}function N$l(t,e){const n=E$l();return(N$l=function(t,e){return n[t-=352]})(t,e)}!function(t,e){const n=N$l,i=t();for(;;)try{if(447926===parseInt(n(362))/1*(parseInt(n(355))/2)+parseInt(n(572))/3*(-parseInt(n(561))/4)+-parseInt(n(541))/5*(parseInt(n(511))/6)+parseInt(n(451))/7+parseInt(n(418))/8+parseInt(n(396))/9+-parseInt(n(408))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$l);let J$6=(t,e)=>t>e?e+","+t:t+","+e,x$5=class{constructor(t){__publicField(this,_$b),__publicField(this,__b),__publicField(this,_Zb,new AStarPath),__publicField(this,_Yb,{}),__publicField(this,_Xb),__publicField(this,_Wb),__publicField(this,_Vb,{});const e=T,n={FEhFx:function(t,e){return t!==e},EglDM:function(t,e,n){return t(e,n)}};this[e(483)]=t;let i=this[e(483)][e(373)][e(549)][e(539)]((t,e)=>(t[e.id]=e,t),{});for(const r in i){const t=i[r];t[e(508)]&&(this[e(412)][t[e(508)]]=this[e(412)][t[e(508)]]||{});for(const s in t[e(538)]){const a=t[e(538)][s];let o=i[s];if(n[e(570)](a,CrossType[e(557)])&&o){let i=n[e(455)](getLineLength,t,o),c=n[e(455)](J$6,t.id,o.id);this[e(412)][t[e(508)]][c]=this[e(412)][t[e(508)]][c]||{pp1:t,pp2:o},this[e(402)][e(352)](r,s,{distance:i,from:t,to:o,type:a})}}}}[(_$b=T(483),__b=T(552),_Zb=T(402),_Yb=T(412),_Xb=T(469),_Wb=T(432),T(530))](t,e,n,i=CrossType[T(470)],r){const s=T,a={FNVXa:function(t,e){return t>=e},OLluy:function(t,e){return t<e},fbUnn:function(t,e){return t!==e},qkUUf:function(t,e){return t===e},CElOY:function(t,e){return t===e},AQzKQ:function(t,e){return t!==e},VTEjo:function(t,e){return t+e},OAqyT:function(t,e,n){return t(e,n)},WYnjf:function(t,e,n){return t(e,n)},gepwj:function(t,e){return t==e},xSgKc:function(t,e){return t===e},htarc:function(t,e){return t<e},zVPNV:function(t,e){return t<e},arLTo:function(t,e){return t-e},LbZje:function(t,e){return t-e}};let o=[];return t[s(549)][s(483)](t=>{const c=s,l={stLfb:function(t,e){return a[N$l(366)](t,e)},jgfTJ:function(t,e){return a[N$l(542)](t,e)},NTsdF:function(t,e){return a[N$l(584)](t,e)},KVpAY:function(t,e){return a[N$l(580)](t,e)},aQugv:function(t,e){return a[N$l(586)](t,e)},VRMxT:function(t,e){return a[N$l(361)](t,e)},udxpI:function(t,e){return a[N$l(361)](t,e)},vfYYF:function(t,e){return a[N$l(589)](t,e)},jESVW:function(t,e,n){return a[N$l(496)](t,e,n)},UgDuy:function(t,e,n){return a[N$l(496)](t,e,n)},JRvgk:function(t,e,n){return a[N$l(364)](t,e,n)},fXDXv:function(t,e){return a[N$l(520)](t,e)},hAFoe:function(t,e){return a[N$l(562)](t,e)},GeAwH:function(t,e){return a[N$l(589)](t,e)}};e[c(549)][c(483)](e=>{const s=c,a={pVgdR:function(t,e){return l[N$l(500)](t,e)},ZoHPN:function(t,e,n){return l[N$l(590)](t,e,n)},WbEHG:function(t,e){return l[N$l(383)](t,e)},RWJFd:function(t,e){return l[N$l(440)](t,e)},ZsCHv:function(t,e){return l[N$l(394)](t,e)}};function u(t,e){const n=s;return CrossType[t]?a[n(507)](i,CrossType[n(533)])&&a[n(370)](t,CrossType[n(505)])&&(e*=20):EnterType[t]&&(a[n(370)](t,EnterType[n(457)])||a[n(540)](t,EnterType[n(369)])||a[n(540)](t,EnterType[n(502)]))&&(e+=20),e}let h=l[s(506)](d$d,this[s(402)],{oriented:!0,blocked:(a,o,c)=>{const u=s;let{type:h}=c[u(548)];if(l[u(500)](+t,0)&&l[u(500)](+e,0)&&(l[u(380)](+a.id,0)||l[u(380)](+o.id,0)))return!0;if((null==r?void 0:r[u(567)](+o.id))||(null==r?void 0:r[u(567)](+a.id)))return!0;if(this[u(469)]){if(this[u(469)](a,o,c))return!0}if(CrossType[h]&&l[u(427)](i,h)&&l[u(427)](h,CrossType[u(470)])){if(l[u(440)](i,CrossType[u(533)]))return l[u(440)](h,CrossType[u(477)]);if(l[u(440)](i,CrossType[u(505)]))return l[u(430)](h,CrossType[u(487)])}return!!EnterType[h]&&(l[u(537)](h,n)&&l[u(414)](h,EnterType[u(494)]))},distance:(t,e,n)=>{const i=s;let{type:r,distance:o}=n[i(548)];if(this[i(432)]){let s=this[i(432)](t,e,n);if(a[i(472)](s,0))return a[i(536)](u,r,s)}return a[i(536)](u,r,o)}})[s(480)](l[s(445)](t,""),l[s(437)](e,""));if(!(null==h?void 0:h[s(476)]))return;h[s(518)]();let d=0,p=0;h=h[s(483)]((t,e)=>{const n=s;let i=h[l[n(437)](e,1)],r=i?l[n(435)](getLineLength,t[n(548)],i[n(548)]):0,a=r;if(i){let e=t[n(548)][n(538)][i.id];a=l[n(506)](u,e,r)}return i&&(d+=r,p+=a),{point:t[n(548)],nextDistance:r,nextDistancePower:a}}),h[s(521)]=d,h[s(415)]=p,h[s(476)]&&o[s(461)](h)})}),o[s(476)]&&o[s(483)](t=>{const e=s;if(a[e(543)](+t[0][e(400)].id,0)){let n=this[e(402)][e(420)](t[0][e(400)].id,t[1][e(400)].id);t[0][e(400)][e(467)]=null==n?void 0:n[e(548)][e(441)]}if(a[e(386)](+t[a[e(381)](t[e(476)],1)][e(400)].id,0)){let n=this[e(402)][e(420)](t[a[e(564)](t[e(476)],2)][e(400)].id,t[a[e(381)](t[e(476)],1)][e(400)].id);t[a[e(564)](t[e(476)],1)][e(400)][e(467)]=null==n?void 0:n[e(548)][e(441)]}}),o}[T(480)](t,e,n=this[T(483)][T(444)][T(391)][T(498)],i=this[T(483)][T(444)][T(391)][T(576)],r){var s,a;const o=T,c={jnbzR:function(t,e){return t!=e},PWPWN:o(377),ypGsA:function(t){return t()},EkTbw:function(t,e){return t||e},skfUk:o(517),cAske:function(t,e){return t===e},lyxfb:function(t,e){return t===e}};if(c[o(434)](!e,!t))return;if(!(null==(s=t[o(549)])?void 0:s[o(476)])||!(null==(a=e[o(549)])?void 0:a[o(476)]))return void console[o(468)](c[o(353)],t,e);let l=[EnterType[o(502)],EnterType[o(369)],EnterType[o(457)],EnterType[o(482)]];l[o(514)](...l[o(568)](l[o(515)](n),1));let u=()=>{const n=o;let s=l[n(413)]();if(c[n(578)](s,void 0)){let a=this[n(530)](t,e,s,i,r);return a[n(476)]?a:(console[n(468)](c[n(448)],s,i),c[n(535)](u))}},h=c[o(535)](u);if(!h)return;let d=h[o(424)]((t,e)=>t[o(415)]-e[o(415)])[0];return c[o(587)](d[0][o(400)][o(508)],d[1][o(400)][o(508)])&&c[o(442)](d[0][o(400)].x,d[1][o(400)].x)&&c[o(587)](d[0][o(400)].y,d[1][o(400)].y)&&d[o(413)](),d[o(483)](t=>{const e=o;t[e(425)]=this[e(483)][e(462)](t[e(400)][e(508)])}),d}[T(532)](t,e,n,i){const r=T,s={KPOiN:function(t,e){return t<e},skdib:function(t,e){return t-e},uqFiO:r(544),KbcBq:r(490),hUUnG:function(t,e){return t>e},ElwSu:function(t,e,n){return t(e,n)},fChRj:function(t,e,n,i){return t(e,n,i)},PtYwd:function(t,e){return t===e},TlGqj:r(545),ocwlb:function(t,e){return t===e}};let a=[];for(let o=1;s[r(447)](o,t[r(476)]);o++){let c=this[r(480)](t[s[r(372)](o,1)],t[o],e,n,i);if(!(null==c?void 0:c[r(476)]))throw console[r(468)](s[r(534)],t[s[r(372)](o,1)],t[o]),new Error(s[r(546)]);s[r(523)](o,1)&&c[r(568)](0,1),c[s[r(372)](c[r(476)],1)][r(531)]=t[o],a[r(461)](...c)}if(a[r(476)]&&t[0][r(354)]&&s[r(523)](a[r(476)],2)){let t=s[r(560)](getLineLength,this[r(483)][r(444)][r(504)],a[1][r(400)]),{deg:e}=s[r(356)](getLineAngle,a[0][r(400)],a[1][r(400)],a[2][r(400)]);s[r(447)](e,130)&&s[r(447)](t,s[r(475)](this[r(483)][r(444)][r(429)][r(358)],s[r(371)])?1.5:s[r(566)](this[r(483)][r(444)][r(504)][r(508)],this[r(483)][r(373)].id)?8:4)&&a[r(413)]()}return this[r(481)](a)}[T(481)](t){const e=T,n={GLZJc:e(501),RvQhP:function(t,e){return t>e},qUBYm:function(t,e){return t+e},owSdq:function(t,e){return t+e},NugzN:function(t,e){return t-e},HibDJ:function(t,e){return t===e},tVRou:function(t,e,n){return t(e,n)},DYjik:function(t,e){return t+e},ocUxe:function(t,e){return t<e},gkykq:function(t,e){return t-e},qQdwy:function(t,e){return t+e},YRQsH:function(t,e){return t!==e},NFnnC:function(t,e){return t!==e},jJyWg:function(t,e){return t*e},sTYPX:function(t,e){return t*e},jOZrS:function(t,e){return t(e)},tPHTJ:function(t,e){return t>e},EprwU:function(t,e){return t-e},DmzQr:function(t){return t()}};let i=[];for(let s=0;n[e(582)](s,n[e(465)](t[e(476)],1));s++){const r=t[s],a=t[n[e(422)](s,1)],o=t[n[e(421)](s,2)];if(r[e(503)]=r[e(400)][e(538)][a[e(400)].id],n[e(556)](r[e(400)][e(508)],a[e(400)][e(508)])){o&&(n[e(558)](a[e(400)][e(508)],o[e(400)][e(508)])?a[e(591)]=EnterType[a[e(400)][e(538)][o[e(400)].id]][e(497)]:a[e(591)]="直行");continue}let c=(new Vector2)[e(390)](r[e(400)]),l=(new Vector2)[e(390)](a[e(400)]),u=c[e(405)](l),h=new Vector2(0,1),d=n[e(588)](u[e(419)](h),MathUtils[e(363)]);if(r[e(407)]=n[e(573)](h[e(509)](u),0)?d:n[e(465)](360,d),o){let t=function(){const t=e,r={iwCOo:n[t(484)]};if(n[t(573)](i[t(476)],1)){let e=i[t(413)]();e[t(591)]=n[t(513)](n[t(422)]("即将",e[t(591)][t(567)]("左")?"左":"右"),"转"),i[t(483)](e=>{const n=t;e[n(591)]=r[n(423)]})}i=[]};if(n[e(556)](o[e(400)][e(508)],a[e(400)][e(508)])){a[e(591)]=EnterType[a[e(400)][e(538)][o[e(400)].id]][e(497)],a[e(387)]=0;continue}let r=(new Vector2)[e(390)](o[e(400)]),s=l[e(405)](r),c=n[e(528)](u[e(419)](s),MathUtils[e(363)]);n[e(393)](isNaN,c);let h=u[e(409)]()[e(509)](s);c=n[e(431)](h,0)?c:n[e(384)](360,c),n[e(393)](isNaN,c),a[e(591)]=this[e(359)](c),a[e(591)][e(567)]("前方")?i[e(476)]?n[e(401)](i[n[e(465)](i[e(476)],1)][e(591)],a[e(591)])?i[e(461)](a):n[e(367)](t):i[e(461)](a):n[e(367)](t),a[e(387)]=c}else a[e(529)]=!0}let r=t[e(539)]((t,i)=>{const r=e;let s=t[n[r(375)](t[r(476)],1)];if(!s)return t[r(461)]([i]),t;let a=s[0];return a&&n[r(401)](a[r(400)][r(508)],i[r(400)][r(508)])?s[r(461)](i):t[r(461)]([i]),t},[]);return r[e(413)](),r[e(433)](),r[e(483)](i=>{const r=e;n[r(401)](i[r(476)],1)&&t[r(568)](t[r(515)](i[0]),1)}),t[e(483)]((i,r)=>{const s=e;let a=t[n[s(513)](r,1)];a&&(i[s(524)]=n[s(571)](getLineLength,i[s(400)],a[s(400)]))}),t[e(521)]=t[e(539)]((t,i)=>{const r=e;return n[r(555)](t,i[r(524)]||0)},0),t}[T(359)](t){const e=T,n={ppoDY:function(t,e){return t>=e},sqmKW:function(t,e){return t<=e},rpKaK:e(501),egVsv:e(583),gWlTc:e(485),xyICm:e(569),lFdQG:e(565),MVmVG:e(399),quvxR:e(459)};return[{text:n[e(460)],max:20,min:0},{text:n[e(392)],max:45,min:20},{text:n[e(443)],max:135,min:45},{text:n[e(519)],max:180,min:135},{text:n[e(397)],max:225,min:180},{text:n[e(492)],max:315,min:225},{text:n[e(512)],max:340,min:315},{text:n[e(460)],max:360,min:340}][e(480)](i=>{const r=e;return n[r(456)](i[r(395)],t)&&n[r(389)](i[r(441)],t)})[e(563)]}[(_Vb=T(510),T(426))](t){const e=T,n={pxcKl:function(t,e,n,i,r,s,a){return t(e,n,i,r,s,a)},vTGnZ:function(t,e){return t<e},dOFoi:e(464),ouiMH:function(t,e){return t-e},kOwSh:function(t,e,n,i){return t(e,n,i)},uBNAh:function(t,e){return t===e},LOfVD:function(t,e,n){return t(e,n)}};let{point:i,path:r,floor:s}=t,a={distance:void 0,x:0,y:0,ids:{},nextIdx:0,points:[]},o=[];const c=(t,r,s)=>{const c=e,{distance:l,v2:u}=n[c(368)](a$5,i.x,i.y,t.x,t.y,r.x,r.y);let h={};if(h[r.id]=t[c(538)][r.id],h[t.id]=r[c(538)][t.id],o[c(461)]({distance:l,x:u.x,y:u.y,ids:h,points:[t,r]}),!a[c(521)]||n[c(581)](l,a[c(521)])){const e=n[c(403)][c(374)]("|");let i=0;for(;;){switch(e[i++]){case"0":a[c(417)]=s;continue;case"1":a[c(538)][r.id]=t[c(538)][r.id];continue;case"2":a.y=u.y;continue;case"3":a[c(538)][t.id]=r[c(538)][t.id];continue;case"4":a.x=u.x;continue;case"5":a[c(453)]=[t,r];continue;case"6":a[c(521)]&&o[c(461)]({...a});continue;case"7":a[c(521)]=l;continue;case"8":a[c(538)]={};continue}break}}};if(r)for(let u=1;n[e(581)](u,r[e(476)]);u++){const t=r[n[e(489)](u,1)],i=r[u];n[e(553)](c,t,i,u)}else{if(!this[e(510)][s.id]){let t=this[e(412)][s.id];if(n[e(479)](s.id,this[e(483)][e(373)].id))for(const n in this[e(412)])this[e(483)][e(462)](n)[e(416)]&&(t=Object[e(525)]({},t,this[e(412)][n]||{}));this[e(510)][s.id]=new C$4(100);for(const n in t){const{pp1:i,pp2:r}=t[n];this[e(510)][s.id][e(385)]([i,r])}}let t=this[e(510)][s.id];a=t[e(378)](i)}a[e(554)]=(a[e(554)]||o)[e(424)]((t,n)=>t[e(521)]-n[e(521)]);let l=a[e(554)][0];l&&(l[e(499)]=0);for(let u=1;n[e(581)](u,a[e(554)][e(476)]);u++){const t=a[e(554)][u];t[e(499)]=n[e(438)](getLineLength,l,t)}return a}};function a$5(t,e,n,i,r,s){const a=T,o={NcdWj:a(406),MvcbS:function(t,e){return t-e},agDYQ:function(t,e){return t+e},YOhkr:function(t,e){return t*e},qvTJP:function(t,e){return t-e},rYoYB:function(t,e){return t+e},NevEZ:function(t,e){return t*e},HTrKE:function(t,e){return t*e},dPtgv:function(t,e){return t-e},Qxtcy:function(t,e){return t*e},JxWMw:function(t,e){return t*e},svFKL:function(t,e){return t<e},IcIdk:function(t,e){return t>e},ppWVo:function(t,e){return t!==e},rUtyi:function(t,e){return t/e}},c=o[a(436)][a(374)]("|");let l=0;for(;;){switch(c[l++]){case"0":var u=o[a(547)](t,n);continue;case"1":var h,d;continue;case"2":var p=o[a(547)](e,d);continue;case"3":var f=o[a(357)](o[a(376)](m,m),o[a(376)](y,y));continue;case"4":var m=o[a(410)](r,n);continue;case"5":var g=o[a(547)](t,h);continue;case"6":var A=-1;continue;case"7":return{v2:{x:h,y:d},distance:Math[a(579)](o[a(478)](o[a(473)](g,g),o[a(585)](p,p)))};case"8":var y=o[a(404)](s,i);continue;case"9":var v=o[a(357)](o[a(411)](u,m),o[a(559)](S,y));continue;case"10":var S=o[a(404)](e,i);continue;case"11":o[a(452)](A,0)?(h=n,d=i):o[a(577)](A,1)?(h=r,d=s):(h=o[a(478)](n,o[a(411)](A,m)),d=o[a(357)](i,o[a(411)](A,y)));continue;case"12":o[a(486)](f,0)&&(A=o[a(474)](v,f));continue}break}}function n$4(t,e,n,i,r,s){const a=T,o={rDcgr:function(t,e){return t-e},XwoSs:function(t,e){return t-e},Uqgfp:function(t,e){return t===e},dteUi:function(t,e){return t===e},lbDLV:function(t,e){return t/e},CxwHo:function(t,e){return t+e},oZgkj:function(t,e){return t*e},ICAov:function(t,e){return t-e},VPlcl:function(t,e){return t-e},pYgYt:function(t,e){return t+e},pzwUW:function(t,e){return t*e},ubpuQ:function(t,e){return t-e}},c=o[a(574)](r,n),l=o[a(466)](s,i);if(o[a(471)](c,0)&&o[a(491)](l,0))return{distance:Math[a(382)](o[a(574)](t,n),o[a(466)](e,i)),x:n,y:i};let u=o[a(551)](o[a(458)](o[a(522)](o[a(449)](t,n),c),o[a(522)](o[a(360)](e,i),l)),o[a(458)](o[a(522)](c,c),o[a(522)](l,l)));u=Math[a(395)](0,Math[a(441)](1,u));const h=o[a(458)](n,o[a(522)](u,c)),d=o[a(575)](i,o[a(495)](u,l));return{distance:Math[a(382)](o[a(574)](t,h),o[a(550)](e,d)),x:h,y:d}}let C$4=class{constructor(t=100){__publicField(this,_bc),__publicField(this,_ac);const e=T;this[e(488)]=t,this[e(510)]=new Map}[(_bc=T(488),_ac=T(510),T(439))](t,e){return t+","+e}[T(365)](t,e){const n=T,i={QCVGL:function(t,e){return t/e},UIyRE:function(t,e){return t/e}};return[Math[n(425)](i[n(428)](t,this[n(488)])),Math[n(425)](i[n(446)](e,this[n(488)]))]}[T(385)](t){const e=T,n={BzByN:function(t,e){return t<=e}},i=t[0].x,r=t[0].y,s=t[1].x,a=t[1].y,o=Math[e(441)](i,s),c=Math[e(441)](r,a),l=Math[e(395)](i,s),u=Math[e(395)](r,a),[h,d]=this[e(365)](o,c),[p,f]=this[e(365)](l,u);for(let m=h;n[e(388)](m,p);m++)for(let i=d;n[e(388)](i,f);i++){const n=this[e(439)](m,i);this[e(510)][e(454)](n)||this[e(510)][e(463)](n,[]),this[e(510)][e(493)](n)[e(461)](t)}}[T(378)](t,e=1){const n=T,i={pwyAM:function(t,e){return t<=e},UkPVk:function(t,e){return t+e},UiAzL:function(t,e,n,i,r,s,a){return t(e,n,i,r,s,a)},jNppn:function(t,e){return t<e},xcndR:n(527)},[r,s]=this[n(365)](t.x,t.y);let a={distance:void 0,x:0,y:0,ids:{},nextIdx:0,points:[]},o=[],c={};for(let l=-e;i[n(379)](l,e);l++)for(let u=-e;i[n(379)](u,e);u++){const e=this[n(439)](i[n(450)](r,l),i[n(450)](s,u)),h=this[n(510)][n(493)](e);if(h)for(const r of h){let e=r[0],s=r[1],l=""+e.id+s.id;if(c[l])continue;c[l]=1;const u=i[n(526)](n$4,t.x,t.y,e.x,e.y,s.x,s.y);let h={};if(h[s.id]=e[n(538)][s.id],h[e.id]=s[n(538)][e.id],o[n(461)]({distance:u[n(521)],x:u.x,y:u.y,ids:h,points:r}),!a[n(521)]||i[n(398)](u[n(521)],a[n(521)])){const t=i[n(516)][n(374)]("|");let e=0;for(;;){switch(t[e++]){case"0":a.y=u.y;continue;case"1":a[n(453)]=r;continue;case"2":a[n(521)]=u[n(521)];continue;case"3":a.x=u.x;continue;case"4":a[n(538)]=h;continue}break}}}}return a[n(554)]=o,a}};const x$4="data:image/png;base64,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",a$4="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFEAAABPCAYAAACTUyndAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3FpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoxNzlhMGNiOS1mYTVmLTQ5MzEtOGIwZi02Y2Y0NWFkY2Y4NzIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjU5NzgwNzQxNDVEMTFFODg5ODc5M0FBN0Q3OUZCRUYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjU5NzgwNzMxNDVEMTFFODg5ODc5M0FBN0Q3OUZCRUYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE5MWIyZjEyLWI3YjgtYTY0Zi05NDYyLTZhMTNmZDM0NTZhZSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxNzlhMGNiOS1mYTVmLTQ5MzEtOGIwZi02Y2Y0NWFkY2Y4NzIiLz4gPC9y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",n$3="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='192'%20height='192'%20viewBox='0%200%20192%20192'%3e%3cdefs%3e%3cstyle%3e%20.cls-1%20{%20fill:%20%233a72ed;%20fill-rule:%20evenodd;%20}%20%3c/style%3e%3c/defs%3e%3cpath%20id='图层_2'%20data-name='图层%202'%20class='cls-1'%20d='M62.4,129.04a48.149,48.149,0,0,0,67.81,0,47.569,47.569,0,0,0,0-67.463,48.16,48.16,0,0,0-67.81,0A47.568,47.568,0,0,0,62.4,129.04Z'/%3e%3cpath%20id='图层_3'%20data-name='图层%203'%20class='cls-1'%20d='M120.909,48.944L96.753,10.181,72.6,48.944A53.056,53.056,0,0,1,120.909,48.944Z'/%3e%3c/svg%3e",C$3="data:image/png;base64,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",o$2="data:image/png;base64,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";var E4=N$k;!function(t,e){for(var n=N$k,i=t();;)try{if(831564===-parseInt(n(901))/1*(-parseInt(n(452))/2)+-parseInt(n(960))/3+parseInt(n(962))/4+-parseInt(n(855))/5+-parseInt(n(498))/6+-parseInt(n(772))/7+parseInt(n(757))/8)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$k);let d$c=class{constructor(){this[N$k(821)]()}[E4(821)](){for(var t=E4,e={XFZyV:t(471),bDRAm:function(t,e){return t!==e},kyczs:t(835),XtMmO:t(733)},n=e[t(917)][t(1049)]("|"),i=0;;){switch(n[i++]){case"0":this[t(1108)]={};continue;case"1":this[t(779)]=1e3;continue;case"2":this[t(1206)]=[];continue;case"3":this[t(755)]=e[t(846)](typeof window,e[t(601)])&&window[t(448)]?window[t(448)]:null;continue;case"4":this[t(1067)]=e[t(682)];continue;case"5":this[t(592)]=!0;continue;case"6":this[t(577)]=10;continue;case"7":this[t(707)]();continue;case"8":this[t(459)]=!1;continue;case"9":this[t(568)]=1;continue;case"10":this[t(609)]=[];continue;case"11":return this;case"12":this[t(1103)]=!0;continue;case"13":this[t(560)]=null;continue;case"14":this[t(923)]=null;continue;case"15":this[t(547)]=!0;continue;case"16":this[t(926)]=!1;continue}break}}[E4(1076)](t){var e=E4,n={XhzDC:function(t,e){return t(e)},QhQsn:function(t){return t()},RKbZo:function(t,e){return t!==e},MIfzq:function(t,e){return t>=e},sVOdv:function(t,e){return t<=e},TBqlr:function(t,e){return t<e},UkDwb:function(t,e){return t*e}};if(t=n[e(1062)](parseFloat,t),this[e(923)]||n[e(1089)](a$3),n[e(902)](void 0,t)&&n[e(905)](t,0)&&n[e(906)](t,1)){if(this[e(568)]=t,this[e(459)])return this;this[e(1103)]&&this[e(560)][e(812)][e(1106)](t,x$3[e(923)][e(483)]);for(var i=0;n[e(814)](i,this[e(1206)][e(769)]);i++)if(!this[e(1206)][i][e(963)])for(var r=this[e(1206)][i][e(668)](),s=0;n[e(814)](s,r[e(769)]);s++){var a=this[e(1206)][i][e(1073)](r[s]);a&&a[e(1002)]&&(a[e(1002)][e(1076)]=n[e(534)](a[e(568)],t))}return this}return this[e(568)]}[E4(501)](t){for(var e=E4,n={JyuJP:e(1168),BTSLz:function(t){return t()},hrIuE:function(t,e){return t<e}},i=n[e(1060)][e(1049)]("|"),r=0;;){switch(i[r++]){case"0":this[e(923)]||n[e(1188)](a$3);continue;case"1":this[e(1103)]&&this[e(560)][e(812)][e(1106)](t?0:this[e(568)],x$3[e(923)][e(483)]);continue;case"2":return this;case"3":this[e(459)]=t;continue;case"4":for(var s=0;n[e(851)](s,this[e(1206)][e(769)]);s++)if(!this[e(1206)][s][e(963)])for(var a=this[e(1206)][s][e(668)](),o=0;n[e(851)](o,a[e(769)]);o++){var c=this[e(1206)][s][e(1073)](a[o]);c&&c[e(1002)]&&(c[e(1002)][e(996)]=!!t||c[e(459)])}continue}break}}[E4(1042)](){for(var t=E4,e={miFMH:function(t,e){return t-e},UsOnU:function(t,e){return t>=e},QhbNZ:function(t,e){return t!==e},FPnne:function(t){return t()}},n=e[t(883)](this[t(1206)][t(769)],1);e[t(873)](n,0);n--)this[t(1206)][n][t(1042)]();return this[t(1103)]&&this[t(923)]&&e[t(695)](void 0,this[t(923)][t(464)])&&(this[t(923)][t(464)](),this[t(923)]=null,e[t(753)](a$3)),this}[E4(976)](t){var e=E4;return(this||x$3)[e(1108)][t[e(878)](/^x-/,"")]}[E4(707)](){var t=E4,e={gOGHj:t(778),BBJho:function(t,e){return t!==e},slInH:t(835),pFdKP:function(t,e){return t===e},ELNyJ:t(529)},n=this||x$3;if(n[t(949)]=n[t(923)]&&n[t(923)][t(949)]||e[t(593)],n[t(541)](),!n[t(1103)])if(e[t(761)](typeof Audio,e[t(723)]))try{e[t(916)](void 0,(new Audio)[t(752)])&&(n[t(1067)]=e[t(1009)])}catch(i){n[t(926)]=!0}else n[t(926)]=!0;try{(new Audio)[t(996)]&&(n[t(926)]=!0)}catch(r){}return n[t(926)]||n[t(956)](),n}[E4(956)](){for(var t=E4,e={GmElS:t(1175),rDqCo:function(t,e){return t!==e},xtMpO:t(477),LYlMh:t(685),zsQZJ:t(970),PDCYq:t(1045),iyFFM:t(1146),iYcuz:t(665),ohPhM:t(818),OzsEz:t(844),QjLAw:t(966),DiQlM:t(1090),ToHqi:t(536),vBRPY:t(1069),gvURr:t(895),WpMuC:t(842),ZqgoF:t(836),EXiAv:function(t,e){return t!==e},xUpzt:t(835),xVFIH:t(624),MgUEd:function(t,e){return t<e},sIxpo:function(t,e,n){return t(e,n)}},n=e[t(831)][t(1049)]("|"),i=0;;){switch(n[i++]){case"0":var r=this||x$3;continue;case"1":var s=null;continue;case"2":if(!s||e[t(991)](typeof s[t(928)],e[t(860)]))return r;continue;case"3":return r[t(1108)]={mp3:!(c||!o&&!s[t(928)](e[t(645)])[t(878)](/^no$/,"")),mpeg:!!o,opus:!!s[t(928)](e[t(705)])[t(878)](/^no$/,""),ogg:!!s[t(928)](e[t(909)])[t(878)](/^no$/,""),oga:!!s[t(928)](e[t(909)])[t(878)](/^no$/,""),wav:!!s[t(928)](e[t(490)])[t(878)](/^no$/,""),aac:!!s[t(928)](e[t(933)])[t(878)](/^no$/,""),caf:!!s[t(928)](e[t(1163)])[t(878)](/^no$/,""),m4a:!!(s[t(928)](e[t(1150)])||s[t(928)](e[t(967)])||s[t(928)](e[t(933)]))[t(878)](/^no$/,""),mp4:!!(s[t(928)](e[t(985)])||s[t(928)](e[t(762)])||s[t(928)](e[t(933)]))[t(878)](/^no$/,""),weba:!!s[t(928)](e[t(879)])[t(878)](/^no$/,""),webm:!!s[t(928)](e[t(879)])[t(878)](/^no$/,""),dolby:!!s[t(928)](e[t(1178)])[t(878)](/^no$/,""),flac:!!(s[t(928)](e[t(1162)])||s[t(928)](e[t(675)]))[t(878)](/^no$/,"")},r;case"4":try{s=e[t(418)](typeof Audio,e[t(849)])?new Audio:null}catch(l){return r}continue;case"5":var a=r[t(755)]&&r[t(755)][t(936)][t(763)](/OPR\/([0-6].)/g);continue;case"6":var o=s[t(928)](e[t(1080)])[t(878)](/^no$/,"");continue;case"7":var c=a&&e[t(1064)](e[t(492)](parseInt,a[0][t(1049)]("/")[1],10),33);continue}break}}[E4(1160)](){var t=E4,e={wIuym:t(1205),llPuh:t(886),FjvQq:t(750),kZFVu:t(1190),dQmoE:function(t,e){return t<e},ZbZfk:t(532),pSpnV:function(t,e){return t<e},YcVnX:function(t,e){return t===e},XhFOL:t(477),JWhIB:function(t,e){return t===e}},n=this||x$3;if(!n[t(888)]&&n[t(923)]){n[t(888)]=!1,n[t(547)]=!1,n[t(637)]||e[t(990)](n[t(923)][t(469)],44100)||(n[t(637)]=!0,n[t(1042)]()),n[t(770)]=n[t(923)][t(726)](1,1,22050);var i=function i(r){for(var s=t,a=e[s(1199)][s(1049)]("|"),o=0;;){switch(a[o++]){case"0":n[s(1078)]();continue;case"1":var c={JROgL:e[s(704)],xiLpk:e[s(463)],HHmFk:e[s(1170)],faKbY:function(t,n){return e[s(1004)](t,n)},faWul:e[s(1086)]};continue;case"2":for(p=0;e[s(488)](p,n[s(1206)][s(769)]);p++)if(!n[s(1206)][p][s(963)])for(var l=n[s(1206)][p][s(668)](),u=0;e[s(1004)](u,l[s(769)]);u++){var h=n[s(1206)][p][s(1073)](l[u]);h&&h[s(1002)]&&!h[s(1002)][s(953)]&&(h[s(1002)][s(953)]=!0,h[s(1002)][s(567)]())}continue;case"3":var d=n[s(923)][s(478)]();continue;case"4":d[s(787)]=n[s(770)],d[s(455)](n[s(923)][s(666)]),e[s(510)](void 0,d[s(1189)])?d[s(728)](0):d[s(1189)](0),e[s(510)](typeof n[s(923)][s(720)],e[s(449)])&&n[s(923)][s(720)](),d[s(993)]=function(){var t=s;d[t(957)](0),n[t(888)]=!0,document[t(1213)](c[t(973)],i,!0),document[t(1213)](c[t(689)],i,!0),document[t(1213)](c[t(1177)],i,!0);for(var e=0;c[t(819)](e,n[t(1206)][t(769)]);e++)n[t(1206)][e][t(690)](c[t(749)])};continue;case"5":for(var p=0;e[s(1004)](p,n[s(577)]);p++)try{var f=new Audio;f[s(953)]=!0,n[s(729)](f)}catch(m){n[s(926)]=!0}continue}break}};return document[t(431)](e[t(704)],i,!0),document[t(431)](e[t(463)],i,!0),document[t(431)](e[t(1170)],i,!0),n}}[E4(546)](){var t=E4,e={TtVGn:function(t,e){return t!==e},WVvPd:function(t,e){return t instanceof e},TzNxY:function(t,e){return t===e},HhxdR:t(477)},n=this||x$3;if(n[t(609)][t(769)])return n[t(609)][t(1027)]();var i=(new Audio)[t(1127)]();return i&&e[t(1075)](void 0,Promise)&&(e[t(496)](i,Promise)||e[t(1129)](typeof i[t(582)],e[t(852)])),new Audio}[E4(729)](t){var e=E4,n=this||x$3;return t[e(953)]&&n[e(609)][e(1149)](t),n}[E4(541)](){var t=E4,e={DijIk:t(778),BVpNI:t(566),pOBOT:function(t,e){return t!==e},ByeBy:function(t,e){return t<e},IGABC:function(t,e){return t<e},aUtKK:function(t,e){return t(e)},MfqXo:function(t,e,n){return t(e,n)}},n=this;if(n[t(592)]&&n[t(923)]&&e[t(451)](void 0,n[t(923)][t(527)])&&x$3[t(1103)]){for(var i=0;e[t(626)](i,n[t(1206)][t(769)]);i++)if(n[t(1206)][i][t(963)])for(var r=0;e[t(429)](r,n[t(1206)][i][t(440)][t(769)]);r++)if(!n[t(1206)][i][t(440)][r][t(639)])return n;return n[t(643)]&&e[t(1161)](clearTimeout,n[t(643)]),n[t(643)]=e[t(659)](setTimeout,function(){var i=t;n[i(592)]&&(n[i(643)]=null,n[i(949)]=e[i(930)],n[i(923)][i(527)]()[i(582)](function(){var t=i;n[t(949)]=e[t(1132)],n[t(494)]&&(delete n[t(494)],n[t(1078)]())}))},3e4),n}}[E4(1078)](){var t=E4,e={Cripv:t(795),fnkLk:function(t,e){return t<e},wwhec:t(720),UOltR:function(t,e){return t!==e},gHHhA:function(t,e){return t===e},oFysl:function(t,e){return t(e)},CHeYm:function(t,e){return t===e},dCYAn:t(778),vwZMs:function(t,e){return t(e)},OrNEX:function(t,e){return t===e},OzTzv:t(566)},n=this;if(n[t(923)]&&e[t(791)](void 0,n[t(923)][t(720)])&&x$3[t(1103)])return e[t(677)](n[t(949)],e[t(518)])&&n[t(643)]?(e[t(1139)](clearTimeout,n[t(643)]),n[t(643)]=null):e[t(718)](n[t(949)],e[t(661)])||e[t(791)](n[t(923)][t(949)],e[t(518)])?(n[t(923)][t(720)]()[t(582)](function(){var i=t;n[i(949)]=e[i(518)];for(var r=0;e[i(1010)](r,n[i(1206)][i(769)]);r++)n[i(1206)][r][i(690)](e[i(1148)])}),n[t(643)]&&(e[t(737)](clearTimeout,n[t(643)]),n[t(643)]=null)):e[t(714)](n[t(949)],e[t(623)])&&(n[t(494)]=!0),n}},J$5;var x$3=new d$c;function a$3(){var t=E4,e={TOCiS:t(475),awUfP:function(t,e,n){return t(e,n)},kSICY:function(t,e){return t!==e},DdYZt:t(835),lAesk:function(t,e){return t&&e},TluML:function(t,e){return t<e},ttbBR:function(t,e){return t===e}};if(x$3[t(1103)])for(var n=e[t(870)][t(1049)]("|"),i=0;;){switch(n[i++]){case"0":x$3[t(923)]||(x$3[t(1103)]=!1);continue;case"1":var r=a?e[t(638)](parseInt,a[1],10):null;continue;case"2":try{e[t(1200)](e[t(884)],typeof AudioContext)?x$3[t(923)]=new AudioContext:e[t(1200)](e[t(884)],typeof webkitAudioContext)?x$3[t(923)]=new webkitAudioContext:x$3[t(1103)]=!1}catch(c){x$3[t(1103)]=!1}continue;case"3":var s=/iP(hone|od|ad)/[t(652)](x$3[t(755)]&&x$3[t(755)][t(462)]);continue;case"4":var a=x$3[t(755)]&&x$3[t(755)][t(828)][t(763)](/OS (\d+)_(\d+)_?(\d+)?/);continue;case"5":if(e[t(1047)](s,r)&&e[t(790)](r,9)){var o=/safari/[t(652)](x$3[t(755)]&&x$3[t(755)][t(936)][t(1185)]());(x$3[t(755)]&&x$3[t(755)][t(1193)]&&!o||x$3[t(755)]&&!x$3[t(755)][t(1193)]&&!o)&&(x$3[t(1103)]=!1)}continue;case"6":x$3[t(1103)]&&(x$3[t(560)]=e[t(885)](void 0,x$3[t(923)][t(479)])?x$3[t(923)][t(1119)]():x$3[t(923)][t(479)](),x$3[t(560)][t(812)][t(1106)](x$3[t(459)]?0:1,x$3[t(923)][t(483)]),x$3[t(560)][t(455)](x$3[t(923)][t(666)])),x$3[t(707)]();continue}break}}function E$k(){var t=["disconnect","hBSzt","visibilitychange","2587827XgUUpm","hidden","2896920lpvZCm","_webAudio","number","inrYz","audio/m4a;","QjLAw","rsmAf","KdmSx",'audio/ogg; codecs="opus"',"fkgmm","kWGMg","JROgL","protocol","QszvH","codecs","ceil","IeNJi","zUauN","pYGwm","gMvfu","FKjJN","xhrWithCredentials","spriteMaxToMin","DiQlM","bGIPE","englishNum2text","YYkwa","bVsHC","JWhIB","rDqCo","QLsEQ","onended","eNHgP","mTmQy","muted","JqSBY","QOIUT","boolean","onvolume","_id","_node","fvnrC","dQmoE","3|10|15|9|5|1|11|2|4|14|7|16|12|0|6|8|13","ClJOU","GHToG","ZYQSE","ELNyJ","fnkLk","loop","sITSl","nPlqe","MiKmn","_onresume","afGwZ","sprite","QcxnB","mDBXY","No audio support.","Xhmed","Yazvy","UrYLY","preload","dyVeT","loading","pop","VTiCf","LDYpF","Ensfd","_xhrWithCredentials","abs","_refreshBuffer","UwAEG","IQjaF","KajCz","processEnglishGrammar","playerror","_html5","onerror Failed loading audio file with status: ","cPfQc","unload","Fwxhz","visible",'audio/ogg; codecs="vorbis"',"sound","lAesk","uvDbQ","split","error","Ygbno","join","_onunlock","xKNMA","onmute","lUQGq","aviAW","sTiWa","ojoDg","JyuJP","aLwja","XhzDC","请走定冠词2电梯前往$1F","MgUEd","aomLI","bSpAc","_canPlayEvent","xOBkI",'audio/webm; codecs="vorbis"',"HXKlM","bufferSource","LMcof","_soundById","aoFyr","TtVGn","volume","EqgtG","_autoResume","aKMjT","xVFIH","GoURU","wQzJd","ZpLxb","nWsfA","lDIcr","ZbZfk","nHdhC","DctIk","QhQsn","audio/x-mp4;","gNDJp","Dohex","noteGrainOn","tghOR","1|3|4|2|0","JOxKE","icFvk","NqLOO","QhcpP","hafkW","gMMsb","1|6|9|0|5|2|4|3|7|8|10","usingWebAudio","DkYDB","左转即将","setValueAtTime","BGKxW","_codecs","_onstop","KVpem","_rate","oGzEr","dkqid","spriteArray","EsAsJ","_start","WUHSC","onrate","createGainNode","onload Failed loading audio file with status: ","jynCD","end","eICPl","dktxt","XYaxd","FFpPn","play","KaQOe","TzNxY","lmQaf","canInterrupt","DijIk","BidDe","pool","ysFVA","playbackRate","Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.","_loadFn","oFysl","8|4|1|9|6|10|7|5|3|0|2","loopStart","_onloaderror","event","ntWrc","xleZk",'audio/wav; codecs="1"',"UCpxR","wwhec","push","OzsEz","IOevp","paused","hvLap","html5","TZqEC","wyCSN","reloadTimer","reload","Xeltx","_unlockAudio","aUtKK","WpMuC","ohPhM","BPqsm","QENoy","VEvdK","JnqQh","0|3|1|4|2","LfrCX","kZFVu","IzjiO","destroy","idPhG","_loop","0|1|4|2|6|5|7|3","duration","HHmFk","gvURr","src","onstop","vGNEj","readyState","MJhYc","responseType","toLowerCase","JpGLs","playEnd","BTSLz","start","click","LALGV","onseek","standalone","JHKFe","pause","qhQGn","hPLpI","ZDFLS","wIuym","kSICY","jjnkI","GTosA","ymqGM","KuxvL","1|5|2|0|3|4","_howls","DPbiV","Irazv","ApARi","pjtba","1|0|3|2|4","YlruZ","removeEventListener","IXwZV","ZVBrr","XwfjQ","NQTyQ","_onpause","wvOXS","mvlSw","RfeDM","JBxEv","nrJON","EXiAv","vjQSN","hYxNs","tlvlj","请走定冠词1楼梯前往$1F","_state","vbocx","ZuLEK","status","vendor","SoNkC","IGABC","WjbiS","addEventListener","ybYpc","VamdL","playIndex","JgRWe","qPWoM","emit","dtWMq","iwNse","_sounds","wcfOk","bnatd","qYzUY","fade","UWBkx","srOjE","SjdRQ","navigator","XhFOL","cIZOy","pOBOT","176YjHzRm","num2text","GqNeZ","connect","YwtQs","hqbOt","suspendContext","_muted","aRvbC","hBjZd","platform","FjvQq","close","data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA","yqvbL","slice","MCGnd","sampleRate","autoplay","1|10|6|0|2|8|9|4|3|13|16|12|5|14|15|7|11","loQXI","ZcQDi","playSprites","2|0|3|4|1|5|6","loopEnd","function","createBufferSource","createGain","exec","_onseek","Japxv","currentTime","_errorFn","Xxahj","qWxxS","diIfs","pSpnV","APDKI","iyFFM","ipOtv","sIxpo","arraybuffer","_resumeAfterSuspend","kOBpI","WVvPd","jWNpc","7909524WdYIRu","agPQq","_panner","mute","IrpOG","SEeHT","pOyvl","GET","kWGAN","GqMBj","tfvcB","mOmiO","YcVnX","FYKTk","_clearSound","onpause","uVKSM","tPtSF","noteOff","Hmgnw","Cripv","loaded","Qkeiq","splice","language","ZoVNa","QiFJS","PVJMz","TBWln","suspend","GMftC","canplay","_clearTimer","cssej","unlock","cIDtp","UkDwb","ePJhQ","audio/mp4;","_onrate","resumeContext","isLoaded","spSyG","_autoSuspend","TxuLu","charCodeAt","hPpKZ","pJCKn","_obtainHtml5Audio","autoUnlock","ipNDa","nXbuI","JjXXr","rOUsj","endHandler","navDeviate","mfbHk","_preload","qQvRT","apply","WroMP","uwjTI","masterGain","BXgzD","ZTYGU","aiTyK","location","onplayerror","suspending","load","_volume","_loadQueue","PpeQM","_queue","onerror","hNMvW","ZaodG","rtBIt","bind","html5PoolSize","indexOf","icZBu","VyQVm","WlwUp","then","loaderror","_parent","_sprite","uJZhe","_ended","isArray","dHcPy","aVQDo","TCcgd","autoSuspend","gOGHj","IuBSd","mGBsC","http:","_fadeTo","_rateSeek","_cleanBuffer","Mszcm","kyczs","cancelScheduledValues","action","ZPBYt","_on","FtNBm","KNRIz","EmkCa","_html5AudioPool","4|7|6|3|0|5|2|1","14|16|18|17|3|12|13|0|10|9|2|4|15|11|7|1|5|6|8","qORzP","rQEgW","HluIo","send","QabJm","call","ksDsN","nKOkh","irCax","XxqNj","onunlock","OzTzv","audio/mpeg;","AaObF","ByeBy","code","dbFVp","CQtWi","ZAcvO","yfVak","off","YYdTl","KILKL","RglqV","reset","_mobileUnloaded","awUfP","_paused","Decoding audio data failed.","qnaaN","PCFVi","_suspendTimer","create","LYlMh","cdBSK","ZArod","WsbwH","_errorListener","oLcIs","4|1|2|0|3","test","_pool","Wnhpq","ejecta","haZdk","2|4|0|1|3","QDaPn","MfqXo","PqArO","dCYAn","onfade","min","dcFlT","audio/aac;","destination","cQjKO","_getSoundIds","yDhfQ","yBpuh","PoBIG","_stop","hMIKE","JsgZq","ZqgoF","open","gHHhA","_interval","mdOhk","请走定冠词2扶梯前往$1F","IIBlH","XtMmO","vEzvN","cmPBL","audio/mp3;","GsfDd","_startFadeInterval","indonesianNum2text","xiLpk","_emit","format","_format","_autoplay","WBdKJ","QhbNZ","WqgNP","playLength","cdayY","ifDxT","LjXFR","WHLBM","fxuiG","MQsXZ","llPuh","zsQZJ","string","_setup","_duration","ygxoD","auto","CVyVl","0|2|7|3|5|6|1|4","playRange","OrNEX","vjhcj","NPSMW","BNPzk","CHeYm","CTGwI","resume","clEPM","_loadListener","slInH","onplay","ezpFZ","createBuffer","BMMWK","noteOn","_releaseHtml5Audio","YEpOI","FEHJs","掉头向定冠词2右","canplaythrough","_drain","duyjP","Vnabg","vwZMs","LChNK","ANVBJ","xjdMQ","floor","_stopFade","pUdTD","concat","cPyuR","_onload","cTtzI","PKQLM","faWul","touchend","KFJci","oncanplaythrough","FPnne","_inactiveSound","_navigator","unloaded","25206448fdrMPX","iYFWh","QshmC","lawQH","BBJho","ToHqi","match","RrrAy","ended","zTTNH","BIdTN","ybMYK","length","_scratchBuffer","QnMMS","1956850dtbnku","rate","_playLock","ZGudr","KzYpa","initAudio","suspended","_counter","DMfiO","WgOyk","koypW","vDAyQ","round","onload","ijsFo","buffer","shift","TyWjJ","TluML","UOltR","GGgIX","VyASk","setVolume","running","_onfade","vprnI","response","hhpKM","_endTimers","keys","once","nIjkQ","seek","ePTQj","zcjOy","lkKXT","1|0|6|5|7|4|2|3","wFYuk","now","ghoLn","gain","_onplayerror","TBqlr","yVrea","KRyjq","aFAyx","audio/x-caf;","faKbY","setRate","init","GpZvy","max","tcari","bRdPl","_onend","ofgeM","appVersion","isPlaying","stop","GmElS","vfTHy","hlBQW","Apple","undefined","audio/flac;","onloaderror","_seek","5|6|10|2|0|3|8|1|9|7|4","fZIYP","chineseNum2text","audio/x-flac;","Ltbry","audio/x-m4a;","eTRMR","bDRAm","wkpyj","HEMqn","xUpzt","isCocoonJS","hrIuE","HhxdR","JtpHg","fEMbr","3346495gUMWXi","xxiIl","ZoRRD","vnMlY","DNZLu","xtMpO","toString","bVqCk","catch","https:","PwLLw","visibleHandler","ywXKq","enSTj","1|3|0|2|4","TOCiS","olFNG","PFDoy","UsOnU","GYCXp","NWkfl","okRcI","IfnGl","replace","vBRPY","onend","_onmute","JBwGQ","miFMH","DdYZt","ttbBR","touchstart","RGkbk","_audioUnlocked","cuRCF","ZdHBG","_onplay","setMute","ycJwn","CyMvr",'audio/mp4; codecs="ec-3"',"imGNM","UBSob","withCredentials","RuwMV","qycwf","980Xfvovw","RKbZo","TPjOO","xEqRd","MIfzq","sVOdv","uiZTh","tudKO","PDCYq","_playStart","linearRampToValueAtTime","掉头向定冠词1左","tAARq","adePi","Baluz","pFdKP","XFZyV","ayVcw","RQwLf","RaeaV","forEach","No codec support for selected audio sources.","ctx","visibilityState","hIoiH","noAudio","KMIOP","canPlayType","WHoym","BVpNI","kFYJX","tgqyy","iYcuz","playing","decodeAudioData","userAgent","EkUQc","dTRPC","TXSPe","6|5|1|0|4|3|2","OtLMD","iOrJO","_onvolume","FuSli","_src","MeWuD","iFDGM","fYOPP","state","右转即将","tgViG","ksojd","_unlocked","svCNd","__default","_setupCodecs"];return(E$k=function(){return t})()}let n$2=class{constructor(t){this[E4(821)](t)}[E4(821)](t){var e=E4,n={tudKO:function(t){return t()},yDhfQ:function(t,e){return t!==e},RQwLf:e(706),GoURU:e(999),YYdTl:function(t,e){return t!==e},wQzJd:e(756),PCFVi:function(t,e){return t!==e},vEzvN:e(1127)},i=this;return x$3[e(923)]||n[e(908)](a$3),i[e(693)]=t[e(470)]||!1,i[e(692)]=n[e(669)](n[e(919)],typeof t[e(691)])?t[e(691)]:[t[e(691)]],i[e(1039)]=t[e(1154)]||!1,i[e(459)]=t[e(501)]||!1,i[e(1174)]=t[e(1011)]||!1,i[e(653)]=t[e(1134)]||5,i[e(555)]=n[e(669)](n[e(1081)],typeof t[e(1024)])||t[e(1024)],i[e(1111)]=t[e(773)]||1,i[e(585)]=t[e(1017)]||{},i[e(945)]=n[e(669)](n[e(919)],typeof t[e(1179)])?t[e(1179)]:[t[e(1179)]],i[e(568)]=n[e(633)](void 0,t[e(1076)])?t[e(1076)]:1,i[e(1031)]=t[e(983)]||!1,i[e(708)]=0,i[e(423)]=n[e(1082)],i[e(440)]=[],i[e(800)]={},i[e(571)]=[],i[e(774)]=!1,i[e(826)]=t[e(880)]?[{fn:t[e(880)]}]:[],i[e(796)]=t[e(662)]?[{fn:t[e(662)]}]:[],i[e(746)]=t[e(785)]?[{fn:t[e(785)]}]:[],i[e(1142)]=t[e(837)]?[{fn:t[e(837)]}]:[],i[e(813)]=t[e(565)]?[{fn:t[e(565)]}]:[],i[e(1218)]=t[e(513)]?[{fn:t[e(513)]}]:[],i[e(891)]=t[e(724)]?[{fn:t[e(724)]}]:[],i[e(1109)]=t[e(1180)]?[{fn:t[e(1180)]}]:[],i[e(881)]=t[e(1055)]?[{fn:t[e(1055)]}]:[],i[e(943)]=t[e(1e3)]?[{fn:t[e(1e3)]}]:[],i[e(537)]=t[e(1118)]?[{fn:t[e(1118)]}]:[],i[e(481)]=t[e(1192)]?[{fn:t[e(1192)]}]:[],i[e(1053)]=t[e(622)]?[{fn:t[e(622)]}]:[],i[e(1015)]=[],i[e(963)]=x$3[e(1103)]&&!i[e(1039)],n[e(642)](void 0,x$3[e(923)])&&x$3[e(923)]&&x$3[e(547)]&&x$3[e(1160)](),x$3[e(1206)][e(1149)](i),i[e(693)]&&i[e(571)][e(1149)]({event:n[e(683)],action:function(){i[e(1127)]()}}),i[e(555)]&&i[e(567)](),i}[E4(567)](){var t=E4,e={qYzUY:t(583),HluIo:t(1020),Wnhpq:function(t,e){return t===e},bSpAc:t(706),wcfOk:function(t,e){return t<e},YlruZ:function(t,e){return t!==e},IIBlH:t(1026),vprnI:t(864),VyASk:t(596),dyVeT:function(t,e){return t(e)},bnatd:t(922)},n=null;if(x$3[t(926)])this[t(690)](e[t(443)],null,e[t(614)]);else{e[t(654)](e[t(1066)],typeof this[t(945)])&&(this[t(945)]=[this[t(945)]]);for(var i=0;e[t(441)](i,this[t(945)][t(769)]);i++){var r,s;if(this[t(692)]&&this[t(692)][i])r=this[t(692)][i];else{if(e[t(1212)](e[t(1066)],typeof(s=this[t(945)][i])))continue;(r=/^data:audio\/([^;,]+);/i[t(480)](s))||(r=/\.([^.]+)$/[t(480)](s[t(1049)]("?",1)[0])),r&&(r=r[1][t(1185)]())}if(r&&x$3[t(976)](r)){n=this[t(945)][i];break}}if(n)return this[t(945)]=n,this[t(423)]=e[t(681)],e[t(654)](e[t(797)],window[t(564)][t(974)])&&e[t(654)](e[t(793)],n[t(467)](0,5))&&(this[t(1039)]=!0,this[t(963)]=!1),new o$1(this),this[t(963)]&&e[t(1025)](g$2,this),this;this[t(690)](e[t(443)],null,e[t(442)])}}[E4(1127)](t,e){for(var n=E4,i={pjtba:n(611),Fwxhz:n(1127),KdmSx:function(t,e){return t-e},TyWjJ:function(t,e){return t/e},JgRWe:function(t,e){return t+e},KMIOP:function(t,e){return t*e},xxiIl:function(t,e){return t>=e},vDAyQ:function(t,e){return t===e},xjdMQ:n(795),okRcI:function(t){return t()},MJhYc:n(720),aLwja:function(t,e){return t===e},ANVBJ:n(465),ZdHBG:function(t,e){return t>=e},qhQGn:function(t){return t()},Xhmed:function(t,e){return t>e},IzjiO:function(t,e){return t/e},RGkbk:function(t,e){return t&&e},ZDFLS:n(955),WgOyk:function(t,e){return t!==e},rOUsj:n(519),IOevp:function(t){return t()},UwAEG:function(t,e){return t===e},NqLOO:function(t,e){return t!==e},zTTNH:function(t,e){return t/e},sITSl:function(t,e,n){return t(e,n)},ofgeM:n(1038),uVKSM:n(1137),PqArO:n(765),cTtzI:function(t,e){return t*e},wkpyj:function(t,e){return t!==e},Irazv:function(t,e){return t instanceof e},hvLap:n(477),bVsHC:n(964),koypW:n(706),nPlqe:function(t,e){return t<e}},r=i[n(1210)][n(1049)]("|"),s=0;;){switch(r[s++]){case"0":if(T&&!o[n(639)])return e||S[n(569)](i[n(1043)]),o[n(1001)];continue;case"1":o[n(585)]=t,o[n(587)]=!1;continue;case"2":var a=Math[n(823)](0,i[n(969)](i[n(789)](i[n(435)](S[n(585)][t][0],S[n(585)][t][1]),1e3),m));continue;case"3":var o=T?S[n(1073)](T):S[n(754)]();continue;case"4":var c=i[n(789)](i[n(927)](1e3,a),Math[n(1032)](o[n(1111)]));continue;case"5":var l=function(){var t=n;o[t(639)]=!1,o[t(838)]=m,o[t(1116)]=v,o[t(672)]=g,o[t(1174)]=f};continue;case"6":if(!i[n(856)](m,g)){var u=o[n(1002)];if(S[n(963)]){var h=function(){var t=n,i={tfvcB:y[t(574)]};S[t(774)]=!1,y[t(454)](l),S[t(1033)](o);var r=o[t(459)]||S[t(459)]?0:o[t(568)];u[t(812)][t(1106)](r,x$3[t(923)][t(483)]),o[t(910)]=x$3[t(923)][t(483)],y[t(1209)](void 0,u[t(1071)][t(1189)])?o[t(1174)]?u[t(1071)][t(1093)](0,m,86400):u[t(1071)][t(1093)](0,m,a):o[t(1174)]?u[t(1071)][t(1189)](0,m,86400):u[t(1071)][t(1189)](0,m,a),y[t(745)](c,y[t(641)](1,0))&&(S[t(800)][o[t(1001)]]=y[t(414)](setTimeout,S[t(587)][t(576)](S,o),c)),e||y[t(414)](setTimeout,function(){var e=t;S[e(690)](i[e(508)],o[e(1001)]),S[e(569)]()},0)};i[n(783)](i[n(740)],x$3[n(949)])?i[n(876)](h):(S[n(774)]=!0,S[n(802)](i[n(1183)],h),S[n(530)](o[n(1001)]))}else{var d=function(){var i=n,r={lmQaf:y[i(931)],pOyvl:y[i(679)],PpeQM:y[i(613)]};u[i(483)]=m,u[i(996)]=o[i(459)]||S[i(459)]||x$3[i(459)]||u[i(996)],u[i(1076)]=y[i(506)](o[i(568)],x$3[i(1076)]()),u[i(1136)]=o[i(1111)];try{var s=u[i(1127)]();if(s&&y[i(523)](void 0,Promise)&&(y[i(1216)](s,Promise)||y[i(1209)](y[i(760)],typeof s[i(582)]))?(S[i(774)]=!0,y[i(454)](l),s[i(582)](function(){var t=i;S[t(774)]=!1,u[t(953)]=!0,e||(S[t(690)](y[t(574)],o[t(1001)]),S[t(569)]())})[i(863)](function(){var t=i;S[t(774)]=!1,S[t(690)](r[t(1130)],o[t(1001)],r[t(504)]),o[t(587)]=!0,o[t(639)]=!0})):e||(S[i(774)]=!1,y[i(454)](l),S[i(690)](y[i(574)],o[i(1001)]),S[i(569)]()),u[i(1136)]=o[i(1111)],u[i(1152)])return void S[i(690)](y[i(931)],o[i(1001)],y[i(679)]);y[i(1022)](y[i(1147)],t)||o[i(1174)]?S[i(800)][o[i(1001)]]=y[i(822)](setTimeout,S[i(587)][i(576)](S,o),c):(S[i(800)][o[i(1001)]]=function(){var t=i;S[t(587)](o),u[t(1213)](r[t(570)],S[t(800)][o[t(1001)]],!1)},u[i(431)](y[i(613)],S[i(800)][o[i(1001)]],!1))}catch(a){S[i(690)](y[i(931)],o[i(1001)],a)}};i[n(1061)](i[n(739)],u[n(1179)])&&(u[n(1179)]=S[n(945)],u[n(567)]());var p=window&&window[n(655)]||!u[n(1182)]&&x$3[n(755)][n(850)];i[n(890)](u[n(1182)],3)||p?i[n(1196)](d):(S[n(774)]=!0,u[n(431)](x$3[n(1067)],function t(){var e=n;y[e(952)](d),u[e(1213)](x$3[e(1067)],t,!1)},!1),S[n(530)](o[n(1001)]))}return o[n(1001)]}continue;case"7":var f=!(!o[n(1174)]&&!S[n(585)][t][2]);continue;case"8":S[n(587)](o);continue;case"9":var m=Math[n(823)](0,i[n(1021)](o[n(838)],0)?o[n(838)]:i[n(1171)](S[n(585)][t][0],1e3));continue;case"10":S[n(963)]&&x$3[n(1078)]();continue;case"11":var g=i[n(789)](i[n(435)](S[n(585)][t][0],S[n(585)][t][1]),1e3);continue;case"12":if(!o)return null;continue;case"13":if(i[n(887)](T,!t)&&(t=o[n(585)]||i[n(1198)]),i[n(781)](i[n(551)],S[n(423)])){o[n(585)]=t,o[n(587)]=!1;var A=o[n(1001)];return S[n(571)][n(1149)]({event:i[n(1043)],action:function(){S[n(1127)](A)}}),A}continue;case"14":var y={ZaodG:i[n(1043)],GqNeZ:function(t){return i[n(1151)](t)},ApARi:function(t,e){return i[n(1034)](t,e)},cPyuR:function(t,e){return i[n(1098)](t,e)},qnaaN:function(t,e){return i[n(766)](t,e)},mvlSw:function(t,e,r){return i[n(1012)](t,e,r)},kFYJX:i[n(827)],mdOhk:i[n(514)],rQEgW:i[n(660)],kWGAN:function(t,e){return i[n(747)](t,e)},ZoVNa:function(t,e){return i[n(847)](t,e)},XwfjQ:function(t,e){return i[n(1208)](t,e)},lawQH:i[n(1153)],Yazvy:function(t,e){return i[n(847)](t,e)},UCpxR:i[n(1198)],GpZvy:function(t,e,r){return i[n(1012)](t,e,r)},ksojd:function(t){return i[n(1196)](t)}};continue;case"15":var v=i[n(766)](S[n(585)][t][0],1e3);continue;case"16":var S=this;continue;case"17":if(i[n(783)](i[n(989)],typeof t))T=t,t=null;else{if(i[n(1061)](i[n(782)],typeof t)&&i[n(1034)](i[n(551)],S[n(423)])&&!S[n(585)][t])return null;if(i[n(783)](void 0,t)&&(t=i[n(1198)],!S[n(774)])){for(var x=0,b=0;i[n(1013)](b,S[n(440)][n(769)]);b++)S[n(440)][b][n(639)]&&!S[n(440)][b][n(587)]&&(x++,T=S[n(440)][b][n(1001)]);i[n(1034)](1,x)?t=null:T=null}}continue;case"18":var T=null;continue}break}}[E4(1195)](t){var e=E4,n={olFNG:function(t,e){return t!==e},sTiWa:e(519),LDYpF:e(1195),YEpOI:function(t,e){return t<e},vbocx:function(t,e){return t===e},pUdTD:function(t,e){return t(e)},QLsEQ:function(t,e){return t/e}},i=this;if(n[e(871)](n[e(1058)],i[e(423)])||i[e(774)])return i[e(571)][e(1149)]({event:n[e(1029)],action:function(){i[e(1195)](t)}}),i;for(var r=i[e(668)](t),s=0;n[e(730)](s,r[e(769)]);s++){i[e(530)](r[s]);var a=i[e(1073)](r[s]);if(a&&!a[e(639)]&&(a[e(838)]=i[e(804)](r[s]),a[e(598)]=0,a[e(639)]=!0,i[e(742)](r[s]),a[e(1002)]))if(i[e(963)]){if(!a[e(1002)][e(1071)])continue;n[e(424)](void 0,a[e(1002)][e(1071)][e(830)])?a[e(1002)][e(1071)][e(516)](0):a[e(1002)][e(1071)][e(830)](0),i[e(599)](a[e(1002)])}else n[e(743)](isNaN,a[e(1002)][e(1176)])&&n[e(871)](a[e(1002)][e(1176)],n[e(992)](1,0))||a[e(1002)][e(1195)]();arguments[1]||i[e(690)](n[e(1029)],a?a[e(1001)]:null)}return i}[E4(830)](t,e){var n=E4,i={JjXXr:function(t,e){return t!==e},aKMjT:n(519),tgqyy:n(830),WUHSC:function(t,e){return t<e},bVqCk:function(t,e){return t===e},EqgtG:function(t,e){return t(e)},eTRMR:function(t,e){return t/e},fxuiG:function(t,e){return t===e}},r=this;if(i[n(550)](i[n(1079)],r[n(423)])||r[n(774)])return r[n(571)][n(1149)]({event:i[n(932)],action:function(){r[n(830)](t)}}),r;for(var s=r[n(668)](t),a=0;i[n(1117)](a,s[n(769)]);a++){r[n(530)](s[a]);var o=r[n(1073)](s[a]);o&&(o[n(838)]=o[n(1116)]||0,o[n(598)]=0,o[n(639)]=!0,o[n(587)]=!0,r[n(742)](s[a]),o[n(1002)]&&(r[n(963)]?o[n(1002)][n(1071)]&&(i[n(862)](void 0,o[n(1002)][n(1071)][n(830)])?o[n(1002)][n(1071)][n(516)](0):o[n(1002)][n(1071)][n(830)](0),r[n(599)](o[n(1002)])):i[n(1077)](isNaN,o[n(1002)][n(1176)])&&i[n(550)](o[n(1002)][n(1176)],i[n(845)](1,0))||(o[n(1002)][n(483)]=o[n(1116)]||0,o[n(1002)][n(1195)](),i[n(702)](o[n(1002)][n(1176)],i[n(845)](1,0))&&r[n(512)](o[n(1002)]))),e||r[n(690)](i[n(932)],o[n(1001)]))}return r}[E4(501)](t,e){for(var n=E4,i={KNRIz:n(869),Ltbry:function(t,e){return t===e},spSyG:function(t,e){return t!==e},iwNse:n(999),aiTyK:function(t,e){return t<e},ZoRRD:n(501),uiZTh:function(t,e){return t!==e},FuSli:n(519)},r=i[n(607)][n(1049)]("|"),s=0;;){switch(r[s++]){case"0":if(i[n(843)](void 0,e)){if(i[n(540)](i[n(439)],typeof t))return a[n(459)];a[n(459)]=t}continue;case"1":var a=this;continue;case"2":for(var o=a[n(668)](e),c=0;i[n(563)](c,o[n(769)]);c++){var l=a[n(1073)](o[c]);l&&(l[n(459)]=t,l[n(678)]&&a[n(742)](l[n(1001)]),a[n(963)]&&l[n(1002)]?l[n(1002)][n(812)][n(1106)](t?0:l[n(568)],x$3[n(923)][n(483)]):l[n(1002)]&&(l[n(1002)][n(996)]=!!x$3[n(459)]||t),a[n(690)](i[n(857)],l[n(1001)]))}continue;case"3":if(i[n(907)](i[n(944)],a[n(423)])||a[n(774)])return a[n(571)][n(1149)]({event:i[n(857)],action:function(){a[n(501)](t,e)}}),a;continue;case"4":return a}break}}[E4(1076)](){for(var t=E4,e={UWBkx:t(1102),qORzP:function(t,e){return t===e},JqSBY:function(t,e){return t!==e},KILKL:t(519),CVyVl:t(1076),dtWMq:function(t,e){return t===e},dktxt:function(t,e){return t===e},aRvbC:function(t,e){return t===e},enSTj:function(t,e){return t>=e},HEMqn:function(t,e,n){return t(e,n)},PKQLM:function(t,e){return t(e)},ghoLn:function(t,e,n){return t(e,n)},xleZk:function(t,e){return t<=e},vfTHy:function(t,e){return t===e},lkKXT:function(t,e){return t<e},ybYpc:function(t,e){return t*e}},n=e[t(445)][t(1049)]("|"),i=0;;){switch(n[i++]){case"0":var r=this;continue;case"1":var s;continue;case"2":if(e[t(612)](0,a[t(769)]))return r[t(568)];continue;case"3":if(e[t(997)](e[t(634)],r[t(423)])||r[t(774)])return r[t(571)][t(1149)]({event:e[t(711)],action:function(){var e=t;r[e(1076)][e(557)](r,a)}}),r;continue;case"4":if(e[t(438)](1,a[t(769)])||e[t(1124)](2,a[t(769)])&&e[t(460)](void 0,a[1])?e[t(868)](r[t(668)]()[t(578)](a[0]),0)?o=e[t(848)](parseInt,a[0],10):s=e[t(748)](parseFloat,a[0]):e[t(868)](a[t(769)],2)&&(s=e[t(748)](parseFloat,a[0]),o=e[t(811)](parseInt,a[1],10)),!(e[t(997)](void 0,s)&&e[t(868)](s,0)&&e[t(1145)](s,1)))return(l=o?r[t(1073)](o):r[t(440)][0])?l[t(568)]:0;continue;case"5":var a=arguments;continue;case"6":var o;continue;case"7":e[t(832)](void 0,o)&&(r[t(568)]=s),o=r[t(668)](o);continue;case"8":for(var c=0;e[t(807)](c,o[t(769)]);c++)(l=r[t(1073)](o[c]))&&(l[t(568)]=s,a[2]||r[t(742)](o[c]),r[t(963)]&&l[t(1002)]&&!l[t(459)]?l[t(1002)][t(812)][t(1106)](s,x$3[t(923)][t(483)]):l[t(1002)]&&!l[t(459)]&&(l[t(1002)][t(1076)]=e[t(432)](s,x$3[t(1076)]())),r[t(690)](e[t(711)],l[t(1001)]));continue;case"9":var l;continue;case"10":return r}break}}[E4(444)](t,e,n,i){for(var r=E4,s={JOxKE:r(1095),KaQOe:function(t,e){return t<e},ycJwn:function(t,e){return t+e},aVQDo:function(t,e){return t/e},ojoDg:function(t,e){return t===e},LChNK:function(t,e){return t!==e},TPjOO:r(519),Ygbno:r(444),QENoy:function(t,e){return t(e)},hMIKE:function(t,e){return t(e)}},a=s[r(1096)][r(1049)]("|"),o=0;;){switch(a[o++]){case"0":return c;case"1":var c=this;continue;case"2":for(var l=c[r(668)](i),u=0;s[r(1128)](u,l[r(769)]);u++){var h=c[r(1073)](l[u]);if(h){if(i||c[r(742)](l[u]),c[r(963)]&&!h[r(459)]){var d=x$3[r(923)][r(483)],p=s[r(893)](d,s[r(590)](n,1e3));h[r(568)]=t,h[r(1002)][r(812)][r(1106)](t,d),h[r(1002)][r(812)][r(911)](e,p)}c[r(687)](h,t,e,n,l[u],s[r(1059)](void 0,i))}}continue;case"3":if(s[r(738)](s[r(903)],c[r(423)])||c[r(774)])return c[r(571)][r(1149)]({event:s[r(1051)],action:function(){c[r(444)](t,e,n,i)}}),c;continue;case"4":t=s[r(1165)](parseFloat,t),e=s[r(1165)](parseFloat,e),n=s[r(673)](parseFloat,n),c[r(1076)](t,i);continue}break}}[E4(687)](t,e,n,i,r,s){for(var a=E4,o={IQjaF:a(712),DctIk:function(t,e){return t/e},ZYQSE:function(t,e){return t-e},wyCSN:function(t,e){return t*e},SjdRQ:function(t,e){return t<e},diIfs:function(t,e){return t<=e},RfeDM:function(t,e){return t>e},ZGudr:function(t,e){return t>=e},ksDsN:function(t,e){return t(e)},wvOXS:a(444),nHdhC:function(t,e,n){return t(e,n)},fvnrC:function(t,e){return t>e},QhcpP:function(t,e){return t/e}},c=o[a(1035)][a(1049)]("|"),l=0;;){switch(c[l++]){case"0":var u={loQXI:function(t,e){return o[a(1088)](t,e)},YYkwa:function(t,e){return o[a(1008)](t,e)},TCcgd:function(t,e){return o[a(1156)](t,e)},WHLBM:function(t,e){return o[a(447)](t,e)},FEHJs:function(t,e){return o[a(487)](t,e)},IuBSd:function(t,e){return o[a(415)](t,e)},lDIcr:function(t,e){return o[a(775)](t,e)},Xeltx:function(t,e){return o[a(618)](t,e)},hIoiH:o[a(413)]};continue;case"1":var h=Date[a(810)]();continue;case"2":var d=this;continue;case"3":var p=o[a(1008)](n,e);continue;case"4":t[a(597)]=n,t[a(678)]=o[a(1087)](setInterval,function(){var r=a,o=u[r(472)](u[r(988)](Date[r(810)](),h),i);h=Date[r(810)](),g+=u[r(591)](p,o),g=Math[r(823)](0,g),g=Math[r(663)](1,g),g=u[r(472)](Math[r(784)](u[r(591)](100,g)),100),d[r(963)]?t[r(568)]=g:d[r(1076)](g,t[r(1001)],!0),s&&(d[r(568)]=g),(u[r(701)](n,e)&&u[r(731)](g,n)||u[r(594)](n,e)&&u[r(1085)](g,n))&&(u[r(1159)](clearInterval,t[r(678)]),t[r(678)]=null,t[r(597)]=null,d[r(1076)](n,t[r(1001)]),d[r(690)](u[r(925)],t[r(1001)]))},m);continue;case"5":var f=Math[a(1032)](o[a(1088)](p,.01));continue;case"6":var m=Math[a(823)](4,o[a(1003)](f,0)?o[a(1099)](i,f):i);continue;case"7":var g=e;continue}break}}[E4(742)](t){var e=E4,n={yVrea:function(t,e){return t(e)},ijsFo:e(444)},i=this[e(1073)](t);return i&&i[e(678)]&&(this[e(963)]&&i[e(1002)][e(812)][e(602)](x$3[e(923)][e(483)]),n[e(815)](clearInterval,i[e(678)]),i[e(678)]=null,this[e(1076)](i[e(597)],t),i[e(597)]=null,this[e(690)](n[e(786)],t)),this}[E4(1011)](){for(var t=E4,e={srOjE:t(610),vjQSN:function(t,e){return t===e},nrJON:function(t,e){return t<e},FKjJN:function(t,e){return t===e},ygxoD:function(t,e){return t!==e},bGIPE:t(999),gNDJp:function(t,e,n){return t(e,n)},ipOtv:function(t,e){return t===e},dbFVp:function(t,e,n){return t(e,n)}},n=e[t(446)][t(1049)]("|"),i=0;;){switch(n[i++]){case"0":if(e[t(419)](0,a[t(769)]))return this[t(1174)];continue;case"1":return this;case"2":for(var r=this[t(668)](l),s=0;e[t(417)](s,r[t(769)]);s++)(c=this[t(1073)](r[s]))&&(c[t(1174)]=o,this[t(963)]&&c[t(1002)]&&c[t(1002)][t(1071)]&&(c[t(1002)][t(1071)][t(1011)]=o,o&&(c[t(1002)][t(1071)][t(1141)]=c[t(1116)]||0,c[t(1002)][t(1071)][t(476)]=c[t(672)])));continue;case"3":var a=arguments;continue;case"4":var o;continue;case"5":if(e[t(982)](1,a[t(769)])){if(e[t(709)](e[t(986)],typeof a[0]))return!!(c=this[t(1073)](e[t(1091)](parseInt,a[0],10)))&&c[t(1174)];o=a[0],this[t(1174)]=o}else e[t(491)](2,a[t(769)])&&(o=a[0],l=e[t(628)](parseInt,a[1],10));continue;case"6":var c;continue;case"7":var l;continue}break}}[E4(773)](){for(var t=E4,e={XYaxd:t(1140),ZuLEK:function(t,e){return t<e},eICPl:function(t,e){return t/e},nKOkh:function(t,e){return t*e},nIjkQ:function(t,e){return t-e},BXgzD:function(t,e){return t/e},ZArod:function(t,e){return t+e},GYCXp:function(t,e,n){return t(e,n)},adePi:t(773),cIZOy:function(t,e){return t===e},WsbwH:function(t,e){return t!==e},cIDtp:t(519),RaeaV:function(t,e){return t!==e},BMMWK:t(964),TZqEC:function(t,e){return t===e},fYOPP:function(t,e){return t>=e},iYFWh:function(t,e){return t(e)}},n=e[t(1125)][t(1049)]("|"),i=0;;){switch(n[i++]){case"0":for(var r=0;e[t(425)](r,c[t(769)]);r++)if(o=h[t(1073)](c[r])){h[t(934)](c[r])&&(o[t(598)]=h[t(804)](c[r]),o[t(910)]=h[t(963)]?x$3[t(923)][t(483)]:o[t(910)]),o[t(1111)]=u,h[t(963)]&&o[t(1002)]&&o[t(1002)][t(1071)]?o[t(1002)][t(1071)][t(1136)][t(1106)](u,x$3[t(923)][t(483)]):o[t(1002)]&&(o[t(1002)][t(1136)]=u);var s=h[t(804)](c[r]),a=e[t(1123)](e[t(619)](1e3,e[t(803)](e[t(561)](e[t(647)](h[t(585)][o[t(585)]][0],h[t(585)][o[t(585)]][1]),1e3),s)),Math[t(1032)](o[t(1111)]));!h[t(800)][c[r]]&&o[t(639)]||(h[t(530)](c[r]),h[t(800)][c[r]]=e[t(874)](setTimeout,h[t(587)][t(576)](h,o),a)),h[t(690)](e[t(914)],o[t(1001)])}continue;case"1":var o;continue;case"2":return h;case"3":e[t(450)](void 0,c)&&(h[t(1111)]=u),c=h[t(668)](c);continue;case"4":var c;continue;case"5":if(e[t(648)](e[t(533)],h[t(423)])||h[t(774)])return h[t(571)][t(1149)]({event:e[t(914)],action:function(){var e=t;h[e(773)][e(557)](h,l)}}),h;continue;case"6":var l=arguments;continue;case"7":if(e[t(920)](e[t(727)],typeof u))return(o=h[t(1073)](c))?o[t(1111)]:h[t(1111)];continue;case"8":var u;continue;case"9":var h=this;continue;case"10":e[t(1155)](0,l[t(769)])?c=h[t(440)][0][t(1001)]:e[t(1155)](1,l[t(769)])?e[t(948)](h[t(668)]()[t(578)](l[0]),0)?c=e[t(874)](parseInt,l[0],10):u=e[t(758)](parseFloat,l[0]):e[t(450)](2,l[t(769)])&&(u=e[t(758)](parseFloat,l[0]),c=e[t(874)](parseInt,l[1],10));continue}break}}[E4(804)](){for(var t=E4,e={CTGwI:t(839),tPtSF:function(t,e){return t!==e},DPbiV:t(519),idPhG:t(804),hPpKZ:function(t,e){return t===e},kWGMg:function(t,e){return t>=e},LMcof:function(t,e,n){return t(e,n)},JsgZq:function(t,e){return t(e)},QcxnB:function(t,e){return t===e},QnMMS:function(t,e,n){return t(e,n)},QDaPn:function(t,e,n){return t(e,n)},ymqGM:function(t){return t()},BGKxW:t(657),ZcQDi:function(t,e){return t===e},WlwUp:t(964),hBjZd:function(t,e){return t-e},dHcPy:function(t,e){return t+e},Vnabg:function(t,e){return t+e},PoBIG:function(t,e){return t*e},aoFyr:function(t,e,n){return t(e,n)}},n=e[t(719)][t(1049)]("|"),i=0;;){switch(n[i++]){case"0":var r=arguments;continue;case"1":if(e[t(515)](e[t(1207)],s[t(423)])||s[t(774)])return s[t(571)][t(1149)]({event:e[t(1173)],action:function(){var e=t;s[e(804)][e(557)](s,r)}}),s;continue;case"2":var s=this;continue;case"3":e[t(544)](0,r[t(769)])?m=s[t(440)][0][t(1001)]:e[t(544)](1,r[t(769)])?e[t(972)](s[t(668)]()[t(578)](r[0]),0)?m=e[t(1072)](parseInt,r[0],10):s[t(440)][t(769)]&&(m=s[t(440)][0][t(1001)],o=e[t(674)](parseFloat,r[0])):e[t(1018)](2,r[t(769)])&&(o=e[t(674)](parseFloat,r[0]),m=e[t(771)](parseInt,r[1],10));continue;case"4":return s;case"5":var a={ZTYGU:e[t(1173)],svCNd:function(n,i,r){return e[t(658)](n,i,r)},KzYpa:function(n){return e[t(1203)](n)}};continue;case"6":var o;continue;case"7":if(f)for(var c=e[t(1107)][t(1049)]("|"),l=0;;){switch(c[l++]){case"0":p&&s[t(1195)](m,!0),f[t(838)]=o,f[t(587)]=!1,s[t(530)](m),s[t(963)]||!f[t(1002)]||e[t(674)](isNaN,f[t(1002)][t(1176)])||(f[t(1002)][t(483)]=o);continue;case"1":var u=function(){var e=t;s[e(690)](a[e(562)],m),p&&s[e(1127)](m,!0)};continue;case"2":if(!e[t(473)](e[t(581)],typeof o)||!e[t(972)](o,0)){if(s[t(963)]){var h=s[t(934)](m)?e[t(461)](x$3[t(923)][t(483)],f[t(910)]):0,d=f[t(598)]?e[t(461)](f[t(598)],f[t(838)]):0;return e[t(589)](f[t(838)],e[t(736)](d,e[t(671)](h,Math[t(1032)](f[t(1111)]))))}return f[t(1002)][t(483)]}continue;case"3":p&&!s[t(963)]?e[t(1074)](setTimeout,function e(){var n=t;s[n(774)]?a[n(954)](setTimeout,e,0):a[n(776)](u)},0):e[t(1203)](u);continue;case"4":var p=s[t(934)](m);continue}break}continue;case"8":if(e[t(1018)](void 0,m))return s;continue;case"9":var f=s[t(1073)](m);continue;case"10":var m;continue}break}}[E4(934)](t){var e=E4,n={BIdTN:function(t,e){return t===e},cmPBL:e(964),KuxvL:function(t,e){return t<e}};if(n[e(767)](n[e(684)],typeof t)){var i=this[e(1073)](t);return!!i&&!i[e(639)]}for(var r=0;n[e(1204)](r,this[e(440)][e(769)]);r++)if(!this[e(440)][r][e(639)])return!0;return!1}[E4(1176)](t){var e=E4,n=this[e(708)],i=this[e(1073)](t);return i&&(n={UrYLY:function(t,e){return t/e}}[e(1023)](this[e(585)][i[e(585)]][1],1e3)),n}[E4(949)](){return this[E4(423)]}[E4(1042)](){for(var t=E4,e={dTRPC:function(t,e){return t<e},UBSob:t(1050),PVJMz:function(t,e){return t>=e},DMfiO:function(t,e){return t<e},LjXFR:function(t,e){return t===e},hhpKM:function(t,e){return t&&e},NPSMW:t(756)},n=this,i=n[t(440)],r=0;e[t(938)](r,i[t(769)]);r++)i[r][t(639)]||n[t(830)](i[r][t(1001)]),n[t(963)]||(n[t(512)](i[r][t(1002)]),i[r][t(1002)][t(1213)](e[t(897)],i[r][t(484)],!1),i[r][t(1002)][t(1213)](x$3[t(1067)],i[r][t(1138)],!1),x$3[t(729)](i[r][t(1002)])),delete i[r][t(1002)],n[t(530)](i[r][t(1001)]);var s=x$3[t(1206)][t(578)](n);e[t(525)](s,0)&&x$3[t(1206)][t(521)](s,1);var a=!0;for(r=0;e[t(780)](r,x$3[t(1206)][t(769)]);r++)if(e[t(700)](x$3[t(1206)][r][t(945)],n[t(945)])||e[t(525)](n[t(945)][t(578)](x$3[t(1206)][r][t(945)]),0)){a=!1;break}return e[t(799)](w$4,a)&&delete w$4[n[t(945)]],x$3[t(926)]=!1,n[t(423)]=e[t(716)],n[t(440)]=[],n=null,null}on(t,e,n,i){var r=E4,s={HXKlM:function(t,e){return t+e},cuRCF:r(605),Dohex:function(t,e){return t===e},APDKI:r(477)},a=this[s[r(1070)](s[r(889)],t)];return s[r(1092)](s[r(489)],typeof e)&&a[r(1149)](i?{id:n,fn:e,once:i}:{id:n,fn:e}),this}[E4(632)](t,e,n){var i=E4,r={SoNkC:function(t,e){return t+e},yfVak:i(605),ifDxT:function(t,e){return t===e},zUauN:i(964),IrpOG:function(t,e){return t||e},mTmQy:function(t,e){return t<e},RrrAy:function(t,e){return t===e},EkUQc:function(t,e){return t&&e},nWsfA:function(t,e){return t+e},GsfDd:function(t,e){return t<e},xOBkI:function(t,e){return t===e}},s=this[r[i(428)](r[i(631)],t)],a=0;if(r[i(699)](r[i(979)],typeof e)&&(n=e,e=null),r[i(502)](e,n))for(a=0;r[i(995)](a,s[i(769)]);a++){var o=r[i(764)](n,s[a].id);if(r[i(699)](e,s[a].fn)&&o||r[i(937)](!e,o)){s[i(521)](a,1);break}}else if(t)this[r[i(1084)](r[i(631)],t)]=[];else{var c=Object[i(801)](this);for(a=0;r[i(686)](a,c[i(769)]);a++)r[i(1068)](0,c[a][i(578)](r[i(631)]))&&Array[i(588)](this[c[a]])&&(this[c[a]]=[])}return this}[E4(802)](t,e,n){return this.on(t,e,n,1),this}[E4(690)](t,e,n){for(var i=E4,r={Qkeiq:function(t,e){return t+e},GTosA:i(605),Xxahj:function(t,e){return t-e},Ensfd:function(t,e){return t>=e},QshmC:function(t,e){return t!==e},ezpFZ:i(567),QabJm:function(t,e,n){return t(e,n)}},s=this[r[i(520)](r[i(1202)],t)],a=r[i(485)](s[i(769)],1);r[i(1030)](a,0);a--)s[a].id&&r[i(759)](s[a].id,e)&&r[i(759)](r[i(725)],t)||(r[i(616)](setTimeout,function(t){t[i(617)](this,e,n)}[i(576)](this,s[a].fn),0),s[a][i(802)]&&this[i(632)](t,s[a].fn,s[a].id));return this[i(569)](t),this}[E4(569)](t){var e=E4,n={CQtWi:function(t,e){return t>e},TBWln:function(t,e){return t===e}};if(n[e(629)](this[e(571)][e(769)],0)){var i=this[e(571)][0];n[e(526)](i[e(1143)],t)&&(this[e(571)][e(788)](),this[e(569)]()),t||i[e(603)]()}return this}[E4(587)](t){for(var e=E4,n={uwjTI:e(651),RglqV:e(1122),fkgmm:e(1127),ZVBrr:function(t,e){return t/e},nXbuI:function(t,e){return t*e},IXwZV:function(t,e){return t-e},ysFVA:function(t,e,n){return t(e,n)},VyQVm:function(t,e){return t<e}},i=n[e(559)][e(1049)]("|"),r=0;;){switch(i[r++]){case"0":if(this[e(690)](n[e(635)],t[e(1001)]),!this[e(963)]&&a&&this[e(830)](t[e(1001)],!0)[e(1127)](t[e(1001)]),this[e(963)]&&a){this[e(690)](n[e(971)],t[e(1001)]),t[e(838)]=t[e(1116)]||0,t[e(598)]=0,t[e(910)]=x$3[e(923)][e(483)];var s=n[e(1215)](n[e(549)](1e3,n[e(1214)](t[e(672)],t[e(1116)])),Math[e(1032)](t[e(1111)]));this[e(800)][t[e(1001)]]=n[e(1135)](setTimeout,this[e(587)][e(576)](this,t),s)}continue;case"1":if(!this[e(963)]&&t[e(1002)]&&!t[e(1002)][e(1152)]&&!t[e(1002)][e(765)]&&n[e(580)](t[e(1002)][e(483)],t[e(672)]))return n[e(1135)](setTimeout,this[e(587)][e(576)](this,t),100),this;continue;case"2":var a=!(!t[e(1174)]&&!this[e(585)][o][2]);continue;case"3":return this[e(963)]&&!a&&(t[e(639)]=!0,t[e(587)]=!0,t[e(838)]=t[e(1116)]||0,t[e(598)]=0,this[e(530)](t[e(1001)]),this[e(599)](t[e(1002)]),x$3[e(541)]()),this[e(963)]||a||this[e(830)](t[e(1001)],!0),this;case"4":var o=t[e(585)];continue}break}}[E4(530)](t){var e=E4,n={hBSzt:function(t,e){return t!==e},uJZhe:e(477),qycwf:function(t,e){return t(e)},hlBQW:e(765)};if(this[e(800)][t]){if(n[e(958)](n[e(586)],typeof this[e(800)][t]))n[e(900)](clearTimeout,this[e(800)][t]);else{var i=this[e(1073)](t);i&&i[e(1002)]&&i[e(1002)][e(1213)](n[e(833)],this[e(800)][t],!1)}delete this[e(800)][t]}return this}[E4(1073)](t){for(var e=E4,n={WqgNP:function(t,e){return t<e},jWNpc:function(t,e){return t===e}},i=0;n[e(696)](i,this[e(440)][e(769)]);i++)if(n[e(497)](t,this[e(440)][i][e(1001)]))return this[e(440)][i];return null}[E4(754)](){var t=E4,e={TXSPe:function(t,e){return t<e}};this[t(734)]();for(var n=0;e[t(939)](n,this[t(440)][t(769)]);n++)if(this[t(440)][n][t(587)])return this[t(440)][n][t(636)]();return new o$1(this)}[E4(734)](){var t=E4,e={KVpem:function(t,e){return t<e},bRdPl:function(t,e){return t-e},iFDGM:function(t,e){return t>=e},IfnGl:function(t,e){return t<=e}},n=this[t(653)],i=0,r=0;if(!e[t(1110)](this[t(440)][t(769)],n)){for(r=0;e[t(1110)](r,this[t(440)][t(769)]);r++)this[t(440)][r][t(587)]&&i++;for(r=e[t(825)](this[t(440)][t(769)],1);e[t(947)](r,0);r--){if(e[t(877)](i,n))return;this[t(440)][r][t(587)]&&(this[t(963)]&&this[t(440)][r][t(1002)]&&this[t(440)][r][t(1002)][t(957)](0),this[t(440)][t(521)](r,1),i--)}}}[E4(668)](t){var e=E4,n={xEqRd:function(t,e){return t===e},PFDoy:function(t,e){return t<e}};if(n[e(904)](void 0,t)){for(var i=[],r=0;n[e(872)](r,this[e(440)][e(769)]);r++)i[e(1149)](this[e(440)][r][e(1001)]);return i}return[t]}[E4(1033)](t){var e=E4;return t[e(1002)][e(1071)]=x$3[e(923)][e(478)](),t[e(1002)][e(1071)][e(787)]=w$4[this[e(945)]],t[e(500)]?t[e(1002)][e(1071)][e(455)](t[e(500)]):t[e(1002)][e(1071)][e(455)](t[e(1002)]),t[e(1002)][e(1071)][e(1011)]=t[e(1174)],t[e(1174)]&&(t[e(1002)][e(1071)][e(1141)]=t[e(1116)]||0,t[e(1002)][e(1071)][e(476)]=t[e(672)]||0),t[e(1002)][e(1071)][e(1136)][e(1106)](t[e(1111)],x$3[e(923)][e(483)]),this}[E4(599)](t){var e=E4,n={MiKmn:function(t,e){return t>=e},vnMlY:e(834)},i=x$3[e(755)]&&n[e(1014)](x$3[e(755)][e(427)][e(578)](n[e(858)]),0);if(x$3[e(770)]&&t[e(1071)]&&(t[e(1071)][e(993)]=null,t[e(1071)][e(957)](0),i))try{t[e(1071)][e(787)]=x$3[e(770)]}catch(r){}return t[e(1071)]=null,this}[E4(512)](t){var e=E4,n={aviAW:e(465)};/MSIE |Trident\//[e(652)](x$3[e(755)]&&x$3[e(755)][e(936)])||(t[e(1179)]=n[e(1057)])}};function N$k(t,e){var n=E$k();return(N$k=function(t,e){return n[t-=413]})(t,e)}let C$2=class extends EventDispatcher{constructor(t){for(var e=(...t)=>(super(...t),__publicField(this,_cc),this),n=E4,i={KFJci:n(1005),IeNJi:function(t,e){return t<e},jynCD:function(t,e){return t+e},LfrCX:function(t,e){return t<e}},r=i[n(751)][n(1049)]("|"),s=0;;){switch(r[s++]){case"0":for(var a=void 0,o=0;i[n(978)](o,u);o++)for(var c=i[n(1121)](o,1);i[n(978)](c,u);c++)i[n(1169)](l[o][n(769)],l[c][n(769)])&&(a=l[o],l[o]=l[c],l[c]=a);continue;case"1":this[n(539)]=!1;continue;case"2":this[n(697)]=-1;continue;case"3":e();continue;case"4":this[n(1114)]=[];continue;case"5":this[n(1046)]=void 0;continue;case"6":x$3[n(592)]=!1;continue;case"7":this[n(1131)]=!0;continue;case"8":this[n(984)]=l;continue;case"9":this[n(1179)]=t[n(1179)];continue;case"10":J$5=this;continue;case"11":this[n(434)]=0;continue;case"12":var l=Object[n(801)](this[n(1017)]),u=l[n(769)];continue;case"13":return this;case"14":this[n(829)]=!1;continue;case"15":this[n(1017)]=t[n(1017)];continue;case"16":this[n(1157)]=void 0;continue}break}}[(_cc=E4(1046),E4(866))](){var t=E4,e={VTiCf:function(t,e){return t===e},Japxv:t(961),rtBIt:function(t,e){return t===e},WBdKJ:t(1044)};e[t(1028)](document[t(924)],e[t(482)])?J$5[t(458)]():e[t(575)](document[t(924)],e[t(694)])&&J$5[t(538)]()}[E4(458)](){var t=E4,e={VEvdK:t(778),eNHgP:function(t,e){return t(e)},cssej:t(566)};e[t(994)](clearTimeout,this[t(1157)]),this[t(830)](),x$3[t(949)]=e[t(531)],x$3[t(923)][t(527)]()[t(582)](function(){var n=t;x$3[n(949)]=e[n(1166)]})}[E4(538)](){var t=E4,e={NQTyQ:function(t,e){return t<e},ZAcvO:t(720),imGNM:t(795)};this[t(1158)](),x$3[t(923)][t(720)]()[t(582)](function(){for(var n=t,i=0;e[n(1217)](i,x$3[n(1206)][n(769)]);i++)x$3[n(1206)][i][n(690)](e[n(630)]);x$3[n(949)]=e[n(896)]})}[E4(1158)](){var t=E4,e={iOrJO:function(t,e){return t(e)},clEPM:function(t,e,n){return t(e,n)}},n=this;this[t(539)]||(e[t(942)](clearTimeout,this[t(1157)]),this[t(1157)]=e[t(721)](setTimeout,function(){var e=t;n[e(1046)][e(567)]()},2e3))}[E4(777)](){for(var t=E4,e={mDBXY:t(940),lUQGq:t(959),gMvfu:t(567),PwLLw:t(583),irCax:function(t,e){return t(e)}},n=e[t(1019)][t(1049)]("|"),i=0;;){switch(n[i++]){case"0":document[t(431)](e[t(1056)],this[t(866)]);continue;case"1":this[t(1172)]();continue;case"2":this[t(1046)][t(802)](e[t(981)],function(){var e=t;s[e(1115)](clearTimeout,r[e(1157)]),r[e(539)]=!0,r[e(437)](s[e(816)],{})});continue;case"3":this[t(1046)].on(e[t(865)],function(e){r[t(1158)]()});continue;case"4":this[t(1046)]=new n$2({src:this[t(1179)],sprite:this[t(1017)]});continue;case"5":var r=this;continue;case"6":var s={EsAsJ:function(n,i){return e[t(620)](n,i)},KRyjq:e[t(981)]};continue}break}}[E4(1172)](){var t=E4,e={haZdk:t(959),ywXKq:function(t,e){return t(e)}};document[t(1213)](e[t(656)],this[t(866)]),e[t(867)](clearTimeout,this[t(1157)]),this[t(830)](),this[t(539)]=!1,this[t(1046)]&&(this[t(1046)][t(632)](),this[t(1046)][t(1042)](),x$3[t(1042)](),x$3[t(547)]=!0,x$3[t(888)]=!1,this[t(1046)]=void 0)}[E4(552)](){var t=E4,e={fEMbr:function(t,e){return t>=e},JtpHg:t(1187)};e[t(854)](J$5[t(434)],J$5[t(697)])?(J$5[t(830)](),J$5[t(437)](e[t(853)],{}),J$5[t(1131)]=!0):J$5[t(1046)][t(1127)](J$5[t(1114)][J$5[t(434)]++])}[E4(474)](t){var e=E4,n={TxuLu:function(t,e){return t!==e},WjbiS:e(1122)};n[e(542)](t[e(769)],0)&&this[e(539)]&&(this[e(1114)]=this[e(1114)][e(744)](t),this[e(697)]=this[e(1114)][e(769)],this[e(829)]||(this[e(434)]=0,this[e(1046)].on(n[e(430)],this[e(552)]),this[e(1046)][e(1127)](this[e(1114)][this[e(434)]++])),this[e(829)]=!0)}[E4(830)](){var t=E4,e={hPLpI:t(1122)};this[t(1046)]&&(this[t(1046)][t(830)](),this[t(1046)][t(632)](e[t(1197)],this[t(552)])),this[t(434)]=0,this[t(697)]=-1,this[t(1114)]=[],this[t(829)]=!1}[E4(553)](){var t=E4,e={aFAyx:t(553)};this[t(830)](),this[t(474)]([e[t(817)]])}[E4(713)](t){}[E4(892)](t){var e=E4;this[e(1046)][e(501)](t)}[E4(794)](t){var e=E4;this[e(1046)][e(1076)](t)}[E4(820)](t){var e=E4;this[e(1046)]&&this[e(1046)][e(773)]()&&this[e(1046)][e(773)](t)}};class AudioPlayer extends C$2{constructor(t){for(var e=(...t)=>(super(...t),__publicField(this,_ec),__publicField(this,_dc,"zh"),this),n=E4,i={dcFlT:n(1211)}[n(664)][n(1049)]("|"),r=0;;){switch(i[r++]){case"0":e(t);continue;case"1":t={sprite:t[n(1017)],src:t[n(1179)]};continue;case"2":this[n(522)]=t[n(522)]||"zh";continue;case"3":this[n(1017)]=t[n(1017)];continue;case"4":this[n(777)]();continue}break}}[(_ec=E4(1017),_dc=E4(522),E4(713))](t){var e=E4,n={FFpPn:function(t,e){return t<e},ybMYK:function(t,e){return t>=e},vGNEj:function(t,e){return t<=e},oLcIs:function(t,e){return t&&e},pJCKn:function(t,e){return t+e},pYGwm:function(t,e){return t+e},CyMvr:function(t,e){return t+e},WroMP:function(t,e){return t+e},zcjOy:function(t,e){return t>e},BidDe:function(t,e){return t+e},yBpuh:function(t,e){return t<e},agPQq:function(t,e){return t===e}};let i=this;if(this[e(539)]){var r,s,a,o;n[e(499)](this[e(522)],"en")&&(t=this[e(1037)](t));var c=function(t){for(var r=e,s="",a="",o=0,c=(t=t[r(878)]("",","))[r(769)];n[r(1126)](o,c);o++){var l=t[o];n[r(768)](l,"0")&&n[r(1181)](l,"9")?s+=l:(s&&(a+=s=i[r(453)](s)[r(1052)]("")),s="",a+=l)}return s&&(a+=s=i[r(453)](s)[r(1052)]("")),a}(t=t[e(878)](/([BFA])([0-9]+)([mM]?)|([0-9]+)([BFA])([mM]?)/g,function(t,i,r,s,a,o,c){var l,u=e;if(n[u(650)](i,r)){switch(i){case"B":l=n[u(545)](n[u(980)]("负",r),"楼");break;case"A":case"F":l=n[u(980)](r,"楼")}s&&(l+="夹层")}else if(n[u(650)](a,o)){switch(o){case"B":l=n[u(894)](n[u(558)]("负",a),"楼");break;case"A":case"F":l=n[u(894)](a,"楼")}c&&(l+="夹层")}return l})),l=(r=c,s=this[e(984)],a=[],o=[],s[e(921)](function(t){var i=e,s=r[i(578)](t),o=t[i(769)];if(n[i(806)](s,-1)){for(;n[i(806)](s,-1);)a[s]=t,s=r[i(578)](t,n[i(1133)](s,o));for(var c="",l=0;n[i(670)](l,o);l++)c+="/";var u=new RegExp(t,"g");r=r[i(878)](u,c)}}),a[e(921)](function(t){t&&o[e(1149)](t)}),o);this[e(474)](l)}}[E4(453)](t){var e=E4,n={YwtQs:function(t,e,n){return t(e,n)},GHToG:function(t,e,n){return t(e,n)}};switch(this[e(522)]){case"zh":return n[e(456)](setTimeout,()=>{var t=e;this[t(1046)]&&this[t(1046)][t(773)]&&this[t(820)](1)},10),this[e(841)](t);case"en":return n[e(1007)](setTimeout,()=>{var t=e;this[t(1046)]&&this[t(1046)][t(773)]&&this[t(820)](.834)},10),this[e(987)](t);case"id":return n[e(456)](setTimeout,()=>{var t=e;this[t(1046)]&&this[t(1046)][t(773)]&&this[t(820)](1)},10),this[e(688)](t);default:return this[e(841)](t)}}[E4(841)](t){var e=E4,n={cdBSK:function(t,e){return t(e)},xKNMA:function(t,e){return t!==e},tcari:function(t,e){return t*e},ePTQj:function(t,e){return t(e)},MeWuD:function(t,e){return t/e},Baluz:function(t,e){return t>e},Mszcm:function(t,e){return t+e},mGBsC:function(t,e){return t>e},fZIYP:function(t,e){return t-e},MQsXZ:function(t,e){return t===e},rsmAf:function(t,e){return t-e},Hmgnw:function(t,e){return t===e}},i=[],r=1e3;for(t=n[e(646)](parseInt,t);n[e(1054)](r,0);){t%=n[e(824)](10,r);var s=n[e(805)](parseInt,n[e(946)](t,r));if(n[e(915)](s,0)){i[e(1149)](n[e(600)](s,""));var a=null;switch(r){case 1e3:a="千";break;case 100:a="百";break;case 10:a="十"}a&&i[e(1149)](a)}else{var o=i[e(769)];n[e(595)](o,0)&&n[e(1054)](i[n[e(840)](o,1)],"0")&&i[e(1149)]("0")}r/=10}return n[e(703)](i[n[e(968)](i[e(769)],1)],"0")&&i[e(1027)](),n[e(703)](i[0],"1")&&n[e(517)](i[1],"十")&&i[e(788)](),i}[E4(987)](t){var e=E4,n={tlvlj:function(t,e){return t===e},icFvk:function(t,e){return t<e},ClJOU:function(t,e){return t/e},GqMBj:function(t,e){return t%e},ntWrc:function(t,e){return t===e},JBxEv:function(t,e){return t>e},icZBu:function(t,e){return t>e}};const i=["","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],r=["","","20","30","40","50","60","70","80","90"];if(n[e(421)](t,0))return["0"];if(n[e(1097)](t,20))return[i[t]];if(n[e(1097)](t,100)){const s=Math[e(741)](n[e(1006)](t,10)),a=n[e(507)](t,10);return n[e(1144)](a,0)?[r[s]]:[r[s],i[a]]}if(n[e(1097)](t,1e3)){const r=Math[e(741)](n[e(1006)](t,100)),s=n[e(507)](t,100),a=[i[r],"百"];return n[e(416)](s,0)&&a[e(1149)](...this[e(987)](s)),a}if(n[e(1097)](t,1e6)){const i=Math[e(741)](n[e(1006)](t,1e3)),r=n[e(507)](t,1e3),s=[...this[e(987)](i),"千"];return n[e(579)](r,0)&&s[e(1149)](...this[e(987)](r)),s}return[t[e(861)]()]}[E4(688)](t){var e=E4,n={yqvbL:function(t,e){return t===e},JpGLs:function(t,e){return t<e},uvDbQ:function(t,e){return t<e},WHoym:function(t,e){return t/e},KajCz:function(t,e){return t%e},FtNBm:function(t,e){return t>e},BNPzk:function(t,e){return t<e},GGgIX:function(t,e){return t/e},ipNDa:function(t,e){return t===e},XxqNj:function(t,e){return t>e}};const i=["","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],r=["","","20","30","40","50","60","70","80","90"];if(n[e(466)](t,0))return["0"];if(n[e(1186)](t,20))return[i[t]];if(n[e(1048)](t,100)){const s=Math[e(741)](n[e(929)](t,10)),a=n[e(1036)](t,10);return n[e(466)](a,0)?[r[s]]:[r[s],i[a]]}if(n[e(1048)](t,1e3)){const r=Math[e(741)](n[e(929)](t,100)),s=n[e(1036)](t,100),a=[i[r],"百"];return n[e(606)](s,0)&&a[e(1149)](...this[e(688)](s)),a}if(n[e(717)](t,1e6)){const i=Math[e(741)](n[e(792)](t,1e3)),r=n[e(1036)](t,1e3);let s=[];return s=n[e(548)](i,1)?["千"]:[...this[e(688)](i),"千"],n[e(621)](r,0)&&s[e(1149)](...this[e(688)](r)),s}return[t[e(861)]()]}[E4(1037)](t){for(var e=E4,n={oGzEr:e(808),kOBpI:e(422),wFYuk:e(680),gMMsb:e(950),BPqsm:e(1105),JnqQh:e(912),OtLMD:e(1063),ZpLxb:e(732)},i=n[e(1112)][e(1049)]("|"),r=0;;){switch(i[r++]){case"0":t=t[e(878)](/请走楼梯前往(\d+)F/g,n[e(495)]);continue;case"1":t=t[e(878)](/请走扶梯前往(\d+)F/g,n[e(809)]);continue;case"2":t=t[e(878)](/即将右转/g,n[e(1101)]);continue;case"3":return t;case"4":t=t[e(878)](/即将左转/g,n[e(1164)]);continue;case"5":t=t[e(878)](/向左后方掉头/g,n[e(1167)]);continue;case"6":t=t[e(878)](/请走电梯前往(\d+)F/g,n[e(941)]);continue;case"7":t=t[e(878)](/向右后方掉头/g,n[e(1083)]);continue}break}}}let o$1=class{constructor(t){var e=E4;this[e(584)]=t,this[e(821)]()}[E4(821)](){var t=E4,e={inrYz:t(955)},n=this[t(584)];return this[t(459)]=n[t(459)],this[t(1174)]=n[t(1174)],this[t(568)]=n[t(568)],this[t(1111)]=n[t(1111)],this[t(838)]=0,this[t(639)]=!0,this[t(587)]=!0,this[t(585)]=e[t(965)],this[t(1001)]=++x$3[t(779)],n[t(440)][t(1149)](this),this[t(644)](),this}[E4(644)](){var t=E4,e={qWxxS:function(t,e){return t===e},aomLI:t(1050),QszvH:t(710),tAARq:function(t,e){return t*e}},n=this[t(584)],i=x$3[t(459)]||this[t(459)]||this[t(584)][t(459)]?0:this[t(568)];return n[t(963)]?(this[t(1002)]=e[t(486)](void 0,x$3[t(923)][t(479)])?x$3[t(923)][t(1119)]():x$3[t(923)][t(479)](),this[t(1002)][t(812)][t(1106)](i,x$3[t(923)][t(483)]),this[t(1002)][t(1152)]=!0,this[t(1002)][t(455)](x$3[t(560)])):(this[t(1002)]=x$3[t(546)](),this[t(484)]=this[t(649)][t(576)](this),this[t(1002)][t(431)](e[t(1065)],this[t(484)],!1),this[t(1138)]=this[t(722)][t(576)](this),this[t(1002)][t(431)](x$3[t(1067)],this[t(1138)],!1),this[t(1002)][t(1179)]=n[t(945)],this[t(1002)][t(1024)]=e[t(975)],this[t(1002)][t(1076)]=e[t(913)](i,x$3[t(1076)]()),this[t(1002)][t(567)]()),this}[E4(636)](){var t=E4,e={SEeHT:t(955)},n=this[t(584)];return this[t(459)]=n[t(459)],this[t(1174)]=n[t(1174)],this[t(568)]=n[t(568)],this[t(1111)]=n[t(1111)],this[t(838)]=0,this[t(598)]=0,this[t(639)]=!0,this[t(587)]=!0,this[t(585)]=e[t(503)],this[t(1001)]=++x$3[t(779)],this}[E4(649)](){var t=E4,e={JHKFe:t(583),ZPBYt:t(1050)};this[t(584)][t(690)](e[t(1194)],this[t(1001)],this[t(1002)][t(1050)]?this[t(1002)][t(1050)][t(627)]:0),this[t(1002)][t(1213)](e[t(604)],this[t(484)],!1)}[E4(722)](){var t=E4,e={GMftC:function(t,e){return t/e},tghOR:function(t,e){return t*e},ePJhQ:function(t,e){return t===e},NWkfl:function(t,e){return t!==e},QiFJS:t(519),qQvRT:t(567)},n=this[t(584)];n[t(708)]=e[t(528)](Math[t(977)](e[t(1094)](10,this[t(1002)][t(1176)])),10),e[t(535)](0,Object[t(801)](n[t(585)])[t(769)])&&(n[t(585)]={__default:[0,e[t(1094)](1e3,n[t(708)])]}),e[t(875)](e[t(524)],n[t(423)])&&(n[t(423)]=e[t(524)],n[t(690)](e[t(556)]),n[t(569)]()),this[t(1002)][t(1213)](x$3[t(1067)],this[t(1138)],!1)}};function b$5(t,e){var n=E4,i={DNZLu:function(t,e){return t===e},cQjKO:function(t,e){return t*e},QOIUT:function(t,e){return t!==e},qPWoM:n(519),JBwGQ:n(567)};e&&!t[n(708)]&&(t[n(708)]=e[n(1176)]),i[n(859)](0,Object[n(801)](t[n(585)])[n(769)])&&(t[n(585)]={__default:[0,i[n(667)](1e3,t[n(708)])]}),i[n(998)](i[n(436)],t[n(423)])&&(t[n(423)]=i[n(436)],t[n(690)](i[n(882)]),t[n(569)]())}function u$4(t,e){var n=E4,i={hqbOt:n(583),VamdL:n(640),AaObF:function(t,e){return t>e},mfbHk:function(t,e,n){return t(e,n)},hafkW:function(t){return t()},afGwZ:function(t,e){return t!==e},RuwMV:function(t,e){return t===e}},r=function(){var t=n;e[t(690)](i[t(457)],null,i[t(433)])},s=function(t){var s=n;t&&i[s(625)](e[s(440)][s(769)],0)?(w$4[e[s(945)]]=t,i[s(554)](b$5,e,t)):i[s(1100)](r)};i[n(1016)](void 0,Promise)&&i[n(899)](1,x$3[n(923)][n(935)][n(769)])?x$3[n(923)][n(935)](t)[n(582)](s)[n(863)](r):x$3[n(923)][n(935)](t,s,r)}function H$4(t){var e=E4;try{t[e(615)]()}catch(n){t[e(572)]()}}var w$4={};function g$2(t){var e=E4,n={MCGnd:function(t,e){return t+e},EmkCa:function(t,e){return t===e},dkqid:function(t,e){return t===e},cdayY:function(t,e,n){return t(e,n)},mOmiO:e(583),vjhcj:function(t,e){return t+e},jjnkI:function(t,e){return t+e},LALGV:e(1120),hNMvW:function(t,e){return t+e},duyjP:function(t,e){return t+e},ayVcw:e(1040),cPfQc:function(t,e){return t(e)},DkYDB:function(t,e){return t<e},hYxNs:e(505),tgViG:e(493),FYKTk:function(t,e){return t(e)}},i=t[e(945)];if(w$4[i])return t[e(708)]=w$4[i][e(1176)],void n[e(1041)](b$5,t);if(/^data:[^;]+;base64,/[e(652)](i)){for(var r=n[e(1041)](atob,i[e(1049)](",")[1]),s=new Uint8Array(r[e(769)]),a=0;n[e(1104)](a,r[e(769)]);++a)s[a]=r[e(543)](a);n[e(698)](u$4,s[e(787)],t)}else{var o=new XMLHttpRequest;o[e(676)](n[e(420)],i,!0),o[e(898)]=t[e(1031)],o[e(1184)]=n[e(951)],o[e(785)]=function(){var i=e,r=n[i(468)](o[i(426)],"")[0];n[i(608)]("0",r)||n[i(1113)]("2",r)||n[i(1113)]("3",r)?n[i(698)](u$4,o[i(798)],t):t[i(690)](n[i(509)],null,n[i(715)](n[i(1201)](n[i(1191)],o[i(426)]),"."))},o[e(572)]=function(){var i=e;t[i(690)](n[i(509)],null,n[i(573)](n[i(735)](n[i(918)],o[i(426)]),"."))},n[e(511)](H$4,o)}}!function(t,e){for(var n=N$j,i=t();;)try{if(690001===-parseInt(n(251))/1*(parseInt(n(256))/2)+parseInt(n(249))/3+parseInt(n(248))/4+-parseInt(n(254))/5*(parseInt(n(253))/6)+-parseInt(n(255))/7+-parseInt(n(247))/8*(parseInt(n(250))/9)+parseInt(n(252))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$j);const d$b={0:[1400,433],1:[2233,333],2:[3033,300],3:[3767,333],4:[4533,333],5:[5367,400],6:[6233,400],7:[7067,433],8:[7933,267],9:[8633,367],",":[0,133],"-":[533,433],A:[9467,267],B:[10133,300],C:[10833,333],D:[11600,300],E:[12300,233],F:[12933,267],G:[13667,333],H:[14433,300],I:[15167,267],J:[15867,333],K:[16633,333],L:[17367,233],M:[18067,233],N:[18767,267],O:[19467,267],P:[20167,267],Q:[20867,333],R:[21633,267],S:[22367,300],T:[23100,300],U:[23833,300],V:[24533,300],W:[25267,433],X:[26133,333],Y:[26900,333],Z:[27667,333],navDeviate:[102233,400],"上层":[28400,600],"上行":[29400,400],"下层":[30233,633],"下行":[31300,433],"中间方向":[32200,733],"停车场":[33400,567],"出入口":[34400,1e3],"到达目的地":[35833,1067],"前往":[69400,300],"十":[38267,267],"千":[39033,467],"即将到达":[39933,700],"即将":[41100,400],"到达":[41933,433],"右侧":[42833,533],"右前方":[43833,500],"右后方":[44767,533],"右转":[45767,500],"右":[46060,207],"向":[47600,300],"坡道":[48333,300],"夹层":[49100,500],"导航开始":[50033,933],"导航结束":[51433,800],"左侧":[52700,600],"左前方":[53767,533],"左后方":[54767,600],"左转":[55833,567],"左":[56167,233],"扶梯":[56833,567],"检测到您处于步行状态":[57867,967],"检测到您处于驾车状态":[59267,1033],"楼":[60767,400],"楼梯":[61633,467],"然后":[62567,267],"后":[62567,267],"电梯":[63300,500],"百":[64267,367],"目的地在您":[65067,800],"直行":[66300,767],"米":[67533,467],"继续":[68433,533],"至":[69400,300],"行走":[70133,267],"行驶":[70900,333],"请":[71700,433],"请保持直行":[72567,1133],"请减速":[74133,800],"掉头":[75400,567],"请确认行进方向":[76400,1500],"请走右侧车道":[78333,1e3],"请走左侧车道":[79800,1067],"负":[81300,433],"走":[103400,200],"走中间车道":[82900,767],"进入":[84133,367],"您已偏离路线":[84967,1200],11:[86633,433],12:[87533,367],13:[88333,500],14:[89300,500],15:[90267,533],16:[91233,567],17:[92267,600],18:[93300,500],19:[94233,533],20:[95233,400],30:[96067,367],40:[96900,367],50:[97700,433],60:[98567,500],70:[99467,567],80:[100433,367],90:[101233,400],"定冠词1":[78700,33],"定冠词2":[103100,133]};function N$j(t,e){var n=E$j();return(N$j=function(t,e){return n[t-=247]})(t,e)}function E$j(){var t=["1522130Vvvfth","101676HvSiFO","95TdIxbn","718886LeBiWn","2ycNCno","16HtAaTK","2923032DrieQf","3889026BmzTLA","1252197zAycLu","786374ZJMEOh"];return(E$j=function(){return t})()}function E$i(){var t=["15070824DKNWNx","363064yHAbLB","307800BkRPsj","83904ofNELu","4295784HpQOTN","84GprYWC","68855pGXyQr","180KKrgdX","835734TCgHpX"];return(E$i=function(){return t})()}function N$i(t,e){var n=E$i();return(N$i=function(t,e){return n[t-=217]})(t,e)}!function(t,e){for(var n=N$i,i=t();;)try{if(429300===-parseInt(n(218))/1+-parseInt(n(223))/2+-parseInt(n(217))/3+parseInt(n(222))/4*(parseInt(n(221))/5)+-parseInt(n(219))/6+-parseInt(n(220))/7*(parseInt(n(225))/8)+parseInt(n(224))/9)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$i);const J$4={0:[1667,267],1:[2067,367],2:[2967,367],3:[3433,333],4:[4267,300],5:[4767,333],6:[5633,367],7:[6167,333],8:[7033,567],9:[8167,567],",":[0,133],"-":[567,500],A:[9267,233],B:[1e4,300],C:[10467,267],D:[11267,300],E:[11767,267],F:[12567,167],G:[12933,333],H:[13800,233],I:[14500,267],J:[14967,300],K:[15767,267],L:[16167,300],M:[16967,267],N:[17367,267],O:[18200,200],P:[18833,233],Q:[19267,233],R:[20033,233],S:[20433,300],T:[21267,133],U:[21467,200],V:[22200,400],W:[23033,200],X:[23433,367],Y:[24333,267],Z:[24733,233],navDeviate:[109133,400],"上层":[25500,767],"上行":[26767,533],"下层":[27833,733],"下行":[29100,433],"中间方向":[30067,567],"停车场":[31133,567],"出入口":[32100,900],"到达目的地":[33467,833],"前往":[34800,567],"十":[35900,500],"千":[36967,500],"即将到达":[37967,633],"即将":[39100,433],"到达":[40067,300],"右侧":[40500,600],"右前方":[41600,833],"右后方":[42967,767],"右转":[44233,700],"后":[45433,533],"向":[46500,200],"坡道":[47200,233],"夹层":[47533,667],"导航开始":[48700,1e3],"导航结束":[50200,967],"左侧":[51700,667],"左前方":[52867,600],"左后方":[53967,733],"左转":[55200,600],"扶梯":[56300,733],"检测到您处于步行状态":[57533,1800],"检测到您处于驾车状态":[59867,1800],"楼":[62200,500],"楼梯":[63233,300],"然后":[63667,500],"电梯":[64667,200],"百":[65067,467],"目的地在您":[66e3,733],"直行":[67267,667],"米":[68433,367],"继续":[68900,500],"至":[69933,500],"行走":[70933,633],"行驶":[72067,700],"请":[73267,600],"请保持直行":[74400,1267],"请减速":[76200,800],"掉头":[77533,533],"请确认行进方向":[78567,1667],"请走右侧车道":[80800,1333],"请走左侧车道":[82667,1367],"负":[84500,500],"走":[85600,333],"走中间车道":[86033,1e3],"进入":[87567,333],"您已偏离路线":[88133,1400],11:[90067,533],12:[91167,533],13:[92233,500],14:[93267,567],15:[94367,567],16:[95467,533],17:[96533,567],18:[97600,667],19:[98867,667],20:[100067,533],30:[101133,500],40:[101167,1533],50:[103233,600],60:[104333,567],70:[105400,567],80:[106467,700],90:[107700,667]};function N$h(t,e){var n=E$h();return(N$h=function(t,e){return n[t-=153]})(t,e)}function E$h(){var t=["6949170AGICNZ","88FOqVfi","6028436IKqLVP","830770PWljtV","24020qQByUW","39725VpiLyn","906ytbPZr","86025VHCGyg","1278kYESkQ","5632dMHLZz","10747mIwsWn"];return(E$h=function(){return t})()}!function(t,e){for(var n=N$h,i=t();;)try{if(876216===parseInt(n(162))/1+-parseInt(n(160))/2*(parseInt(n(155))/3)+parseInt(n(161))/4+parseInt(n(159))/5+parseInt(n(154))/6*(parseInt(n(153))/7)+-parseInt(n(157))/8*(parseInt(n(156))/9)+-parseInt(n(163))/10*(parseInt(n(158))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$h);const x$2={0:[2200,396],1:[3300,251],2:[4399,289],3:[5500,360],4:[6600,396],5:[7700,216],6:[8800,288],7:[9900,396],8:[11e3,255],9:[12100,324],",":[0,128],"-":[1100,360],A:[13200,324],B:[14300,283],C:[15400,324],D:[16500,250],E:[17600,360],F:[18700,396],G:[19800,324],H:[20900,324],I:[22e3,267],J:[23100,292],K:[24200,347],L:[25300,431],M:[26400,334],N:[27499,288],O:[28599,288],P:[29700,393],Q:[30800,263],R:[31900,288],S:[33e3,252],T:[34100,252],U:[35200,324],V:[36300,245],W:[37400,476],X:[38500,252],Y:[39600,360],Z:[40700,198],navDeviate:[41800,394],"上层":[42900,684],"上行":[44e3,684],"下层":[45100,729],"下行":[46200,684],"中间方向":[47300,972],"停车场":[48400,792],"出入口":[49500,835],"到达目的地":[50600,1091],"前往":[52700,622],"十":[53800,468],"千":[54900,360],"即将到达":[56e3,1080],"即将":[56e3,500],"到达":[56500,540],"右侧":[58100,658],"右前方":[59200,792],"右后方":[60300,756],"右转":[61400,504],"后":[62500,385],"向":[63600,360],"坡道":[64700,654],"夹层":[65800,648],"导航开始":[66899,1133],"导航结束":[68999,1029],"左侧":[71100,599],"左前方":[72199,774],"左后方":[73299,792],"左转":[74399,612],"扶梯":[75499,612],"检测到您处于步行状态":[76599,2232],"检测到您处于驾车状态":[79699,2340],"楼":[82799,373],"楼梯":[83899,504],"然后":[84999,612],"电梯":[86099,633],"百":[87199,360],"目的地在您":[88299,1044],"直行":[90399,594],"米":[91499,283],"继续":[92599,540],"至":[93699,288],"行走":[94799,576],"行驶":[95899,612],"请":[96999,305],"请保持直行":[98099,1332],"请减速":[100199,828],"掉头":[101650,664],"请确认行进方向":[102399,1728],"请走右侧车道":[104499,1476],"请走左侧车道":[106599,1548],"负":[108699,360],"走":[109799,270],"走中间车道":[110899,1260],"进入":[112999,540],"您已偏离路线":[114039,2340]},w$3=N$g;function E$g(){const t=["warn","Added language support: ","get","audioFile","forEach","getAudioPlayer","isValidLanguage","Failed to play audio:","setLanguage","$language","splitJson","176kABibF","undefined","destroy","9Lnkfue","425362DdiXsg","getVolume","playRange","from",", falling back to ","name","Unsupported language: ","isMuted","8441244vxJxzv","Falling back to Chinese audio","ZQtVW","./naviAudio.mp3","values","init","Still waiting for audio to load...","getSupportedLanguages","iChXC","error","max","volume","audioPlayers","isLoaded","languageConfigs","set","Navigation language switched to: ","isInitialized","7075865fnlhOJ","languageChanged","rdFDd","1548588LKAHoF","46078580WICfvl","2693932SLOntT","log","defaultLanguage","./naviAudio-en.mp3","8bfuANR","English","has","hAVYK","addEventListener","code","zHQVj","setMute","PgczY","currentLanguage","setVolume","./naviAudio-id.mp3","111073XPOfYl","Bahasa Indonesia","min","rISnJ","clear","cNSzf","getLanguage","addLanguage","language","muted"];return(E$g=function(){return t})()}function N$g(t,e){const n=E$g();return(N$g=function(t,e){return n[t-=354]})(t,e)}!function(t,e){const n=N$g,i=t();for(;;)try{if(854378===parseInt(n(417))/1+-parseInt(n(401))/2+parseInt(n(399))/3*(-parseInt(n(405))/4)+-parseInt(n(396))/5+-parseInt(n(378))/6+-parseInt(n(370))/7*(-parseInt(n(366))/8)+-parseInt(n(369))/9*(-parseInt(n(400))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$g);class MultiLanguageAudioManager{constructor(t={}){__publicField(this,_kc,"zh"),__publicField(this,_jc,new Map),__publicField(this,_ic,1),__publicField(this,_hc,!1),__publicField(this,_gc,!1),__publicField(this,_fc,new Map([["zh",{code:"zh",name:"中文",audioFile:w$3(381),splitJson:x$2}],["en",{code:"en",name:w$3(406),audioFile:w$3(404),splitJson:d$b}],["id",{code:"id",name:w$3(418),audioFile:w$3(416),splitJson:J$4}]]));const e=w$3;this[e(414)]=t[e(403)]||"zh",this[e(389)]=t[e(389)]||1,this[e(354)]=t[e(354)]||!1,this[e(383)]()}[(_kc=w$3(414),_jc=w$3(390),_ic=w$3(389),_hc=w$3(354),_gc=w$3(395),_fc=w$3(392),w$3(383))](){const t=w$3,e={cNSzf:function(t,e){return t!==e},zHQVj:t(367),hAVYK:t(397)};if(e[t(422)](typeof window,e[t(411)])){window[t(409)](e[t(408)],e=>{const n=t;this[n(368)]();const i=window[n(364)]||"zh";this[n(361)](i)&&this[n(363)](i)});const n=window[t(364)]||"zh";this[t(361)](n)&&(this[t(414)]=n)}this[t(395)]=!0}[w$3(361)](t){const e=w$3;return this[e(392)][e(407)](t)}[w$3(360)](t){const e=w$3;if(!this[e(390)][e(407)](t)){const n=this[e(392)][e(357)](t);if(!n)throw new Error(e(376)+t);const i=new class extends AudioPlayer{constructor(){const i=e;super({src:n[i(358)],sprite:n[i(365)]}),this[i(425)]=t}};i[e(415)](this[e(389)]),i[e(412)](this[e(354)]),this[e(390)][e(393)](t,i)}return this[e(390)][e(357)](t)}[w$3(363)](t){var e;const n=w$3;this[n(361)](t)?(this[n(414)]=t,this[n(360)](t),console[n(402)](n(394)+(null==(e=this[n(392)][n(357)](t))?void 0:e[n(375)]))):console[n(355)](n(376)+t+n(374)+this[n(414)])}[w$3(423)](){return this[w$3(414)]}[w$3(385)](){const t=w$3;return Array[t(373)](this[t(392)][t(382)]())}[w$3(372)](t){const e=w$3,n={PgczY:e(384),iChXC:function(t,e,n){return t(e,n)},rISnJ:e(362),rdFDd:function(t,e){return t!==e},ZQtVW:e(379)};try{const i=this[e(360)](this[e(414)]);if(i[e(391)])i[e(372)](t);else{const r=()=>{const s=e;i[s(391)]?i[s(372)](t):(console[s(402)](n[s(413)]),n[s(386)](setTimeout,r,100))};n[e(386)](setTimeout,r,100)}}catch(i){if(console[e(387)](n[e(420)],i),n[e(398)](this[e(414)],"zh")){console[e(355)](n[e(380)]);this[e(360)]("zh")[e(372)](t)}}}[w$3(415)](t){const e=w$3;this[e(389)]=Math[e(388)](0,Math[e(419)](1,t)),this[e(390)][e(359)](t=>{const n=e;t[n(415)](this[n(389)])})}[w$3(371)](){return this[w$3(389)]}[w$3(412)](t){const e=w$3;this[e(354)]=t,this[e(390)][e(359)](t=>{const n=e;t[n(412)](this[n(354)])})}[w$3(377)](){return this[w$3(354)]}[w$3(424)](t){const e=w$3;this[e(392)][e(393)](t[e(410)],t),console[e(402)](e(356)+t[e(375)]+" ("+t[e(410)]+")")}[w$3(368)](){const t=w$3;this[t(390)][t(359)](e=>{const n=t;e[n(368)]&&e[n(368)]()}),this[t(390)][t(421)]()}}const B=N$f;function E$f(){const t=["interact","tLFOB","5|1|4|2|6|3|0","updatePathAngle","gCyaU","testGps","XXyGU","onopen","KxYft","navi","IoVAu","ZgCgP","Clpgl","jSCSI","endMark","fgdcG","onceSetCompassOffset","time","routeGroup","percent","minArr","removeStart","YGaif","oLocationView","polygonData","locResCache","rgb(44,62,89)","vuchU","renderOrder","emitPano",'{"protocol":"json","version":1}',"setSimulateSpeedAnimate","qzXen","ibosC","setLocationMyPosition","UatMg","AzaKl","showIndoor","status","crossFloorDis","onmessage","cdReg","Gfyen","oVyzR","iNaviView","AcVon","showPano","zsWbv","您已偏离路线","eqIEZ","arrow","curentFloor","coordsToLngLat","ncklB","unshift","addEventListener","updateNaviTime","NKArI","myPositionPath","TgRRp","NuOdv","2365VMEmqF","IfOTy","alhRE","distanceTo","959TSLhoa","jkOqf","sweZZ","RgeAz","ZufWH","filter","subAngle","nnESZ","YZIDH","_lastUpdateLinePass","UfuIz","CZiNr","wlZPp","distance","naviSetSpeed","location2Path","startNavi","Fuooe","isonceSetCompassOffset","scene","GNgoo","CUR_COMPASS","closeNaviDemoVoice","lngLatToCoord","isNavi","PcSYq","xpbAc","start","nextFloor","_isFirstRssi","isSimulateRotate","arUpdate","vwirA","9440hKnKJr","outerFloor","setStart","nextRoutePoint","VUJMt","MHFtq","close","path","testPoint","lastBeaconBestRssi","copy","GqHiz","TtPmR","now","OAIxo","KyglT","intersectObjectsBy2D","SetId","LhlII","points","material","zralg","LUcUv","20067ppdFPP","setStatus","tjgJT","__GPS__","出入口","usVgI","FIYRZ","camera","nextPoint","gpsSpeedMax","getPoint","xZQrQ","xtKFt","beaconMaxRssi2","location","当前不在该楼层或规划路线后移动","_lastLocatePoint","send","compassInitAngle","CklAD","ACzGl","compassOffb","jEtwG","maxInMapDistance","idzmZ","getNaviRotation","lxZpC","initAngle","FTOHh","IaXFC","QuDFS","VpJrV","HApag","OgUyr","lFuvt","gcjLat","stepSpeed","Linear","HlHTP","event","removeAllWaypoint","stopNavi","arriveDistance","None","JamzS","floorId","Wfemv","SsFaz","naviInfo","wCRJV","GcnUc","GLTPS","isClosedRotat","disconnect","IWIIs","XpdgA","getRotation","ZoSsN","WQJAD","setNaviPass","fLirW","passFloorDis","setCrossDis","initLoction","jqHqT","aqSiA","未找到路线,请联系地图制作方!","EnStR","MdorV","amap","MKKdF","zWabu","minor","EosEu","VDCys","addLocationPoint","kwzjO","__step__","api/MapExtra/","oNaviView","ReECg","href","iuYEw","fLLfW","locationView","waypointMarkList","val","hkiLQ","rssi","dcKIR","enabled","includes","rgXnK","setRotation","lnglatDeviation","iLocationView","setZoomAndCenter","rkTJo","UYxnN","znQnx","MQAwb","lUNnw","data","$testMsg","getFloorById","到达目的地","JrAfi","crossType","position","Mark","kejpm","length","GFtWE","simulate","QbkkQ","_passWaypointsCopy","setStartMyPosition","floor","FVPzK","FizrH","removeLink","closeSimulateVoice","tUxGd","GKEcP","testSprite","RWxmc","point2Path","manyFloorMode","EAlwG","gps","wss://ws.3dwxb.com/ws","lUwLb","major","DHSzh","UPXvd","splice","29002164HNIHnu","red","走电梯前往","rwDDh","BqxAv","pDqKW","positionMarker","nextPanoId","load","BnmyT","rhrkU","parent","isMyPosition","nextNaviDistance","setZ","xXHjK","umloE","router","HrAul","beaconAnalysis","radius","LLTct","isEnd","我的位置","BquoE","object","onclose","VYoIS","guyzI","onerror","2|3|4|1|0","Change","whCuY","pitch","hXlbC","jRinc","end","1237663ZGWzUD","bxuJE","XcdkX","getCenter","oOGHs","tKvpO","YbpoR","wUcfN","eLHaW","floorData","OeGdu","VYoEz","lTfGg","pauseSimulate","clickTestLocation","COztF","srvCW","reduce","click","rePlanRoute","response","Yehsf","ZrGld","beaconCacheList","lat","getMapDataById","QWhEH","tUCEU","openAR","isOutdoor","manCar","okaXx","eRWPg","jeLhx","wLgtY","LSBQE","setCenter","SOuym","kyPjJ","removeStartEnd","hAdqM","simulateSpeed","LlRGq","TwcLp","-范围:","ZauWV","_preTestGps","#fff","AVzYT","passLength","rJKHm","fkVjk","naviTime","OvGtj","tip","setPitch","isPlane","hsJRY","options","ESytx","fromCharCode","ids","viewchange","log","nDayU","angle","planRoute","stringify","isArray","TvRGd","mHxni","51176StijMM","naviView","qHBAp","clone","QZciN","yNfDw","hIxAw","WoaLd","resume","keys","GfcLy","add","setOffet","createLine","bPRHE","center","FMnQe","hntYy","GPS","beaconData","addLink","uHnJF","MRAob","neVuO","FGtsn","height","speed","FITrz","nextNaviTip","animate","pause","closeWalk","left","定位设置偏移: ","LqZEe","aStarPath","reallyRemainDistance","lng","stopSimulate","onLocationNavi","firstDistance","emit","bgi","removeFromParent","76WdPsMe","mapData","split","mapId","uTubT","findIndex","ooOpT","FlXwo","lJUab","isRePlanRoute","socket","enterType","SESGA","pclPv","gBRzT","NnFDt","setStartEnd","2|4|0|3|1","OXofx","nVJrF","hIpAi","1|4|3|0|2","setNaviControlStatus","iiKgG","2545VmHmbA","nextId","lngLatToCoordWorld","YGMkN","TlsHR","onSocket","lockFloor","_positionMarkerShowTw","rssiOffset","routePassGroup","step","bELKH","WqTny","oYcRS","$gps","url","kWHyd","compassOffset","GRFch","build","removeEnd","compassOff","KsjTB","waypointsPolygonData","nextDistance","point","bWEyM","remark","JRbBi","init","MgFCF","BRFmV","arriveEnd","米\n大约时长: ","indcR","nextIdx","RIsNH","random","name","aoa","easing","initMark","PbkvE","passWaypoints","sHpRR","1665DOUBlt","MziTr","ignoreRePlane","routeDistance","setEnd","fnVcX","startMark","object3d","setSimulateSpeed","addNaviLine","removeNaviArrow","IkBNn","passDoorDis","sizeRatio","closeAR","odLQk","crossDoorDis","okSJC","setOneFloorMode","slice","zoom","bkGhD","replace","KsDbQ","JtjnC","nextWaypointDistance","TxGqd","DzJWF","route","min","wOZwo","set","yDir","kdQqJ","waypoint","yVHGI","locationFloor","sub","AoUKg","setWaypoints","findRoutePos","userData","QPaCf","zFaRG","_isRotate","lnglat","shift","isSimulatePause","ZJQWa","onCompass","rotation","pointerdown","isSimulate","tbApw","rePlaneTimer","createWaypointMark","naviAudioTip","indexOf","request","assign","CDhdn","resumeSimulate","api","gpsAccuracy","mzQfb","getPolygonDataById","nVfdF","onComplete","parse","arrowTW","uNxzK","qQGxp","UHNZa","beaconCache","stop","reverse","UWYJD","removeWaypoint","127.0.0.1","剩余距离: ","originGps","setMoveSpeed","angleTo","ONjKO","playRange","Wsgrl","hahCv","isCrossFloor","YBNnG","bDkWR","XLGUt","testMsg","走扶梯前往","mhGGx","off","ySUjL","pointAtPath","hhbfr","pnKaz","myPosition","uDyTV","dispose","5|7|1|8|3|9|4|6|2|0","mgRaG","GyZeo","导航开始","audioPlayer","arguments","47274BWEVxu","kNBUU","起点或终点为null","5|0|3|2|1|4","ayYnd","wYkSD","showRouteFloor","cross","SNcdt","isPass","CYBpF","prevRoutePoint","rgRdQ","ktZjo","ionTk","values","DTJYt","JNaOO","-度:","setLocation","KwNIu","elevator","find","找不到id:","pathInfo","pathAngle","RDIiq","gyoDt","dbFfA","locationType","UXzXj","50630ZQzivn","onUpdate","map","UMpCf","computeNaviInfo","remainDistance","nngPF","hHfLY","LhEMJ","compass","kjAXa","QAHUF","TSQEv","lYSTH","vkSJW","lastLocationResult","toFixed","visible","blockPath","kwPJw","getTangent","children","getLength","走楼梯前往","gcjLon","nextDis","delay","max","pRKHB","setZoom","pVynR","4|2|0|1|3","rkRKX","updateNaviLinePass","joqQI","到达目的地,导航结束","vlyHt","compassOffg","ejiEL","type","LFGVm","FNLEs","hjFtS","removeNaviLine","push","AMLiu","gpsTest","TCL: res","定位距离:","startEnd"];return(E$f=function(){return t})()}!function(t,e){const n=N$f,i=t();for(;;)try{if(643961===-parseInt(n(1007))/1+parseInt(n(1122))/2*(-parseInt(n(834))/3)+-parseInt(n(811))/4*(-parseInt(n(1146))/5)+parseInt(n(632))/6*(parseInt(n(778))/7)+-parseInt(n(1078))/8*(-parseInt(n(524))/9)+parseInt(n(663))/10*(parseInt(n(774))/11)+-parseInt(n(970))/12)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$f);const{DEG2RAD:b$4,RAD2DEG:u$3}=MathUtils;let H$3;const userTouch=()=>{const t=N$f,e={QuDFS:function(t,e){return t(e)},guyzI:function(t,e,n){return t(e,n)}};e[t(864)](clearTimeout,H$3),H$3=e[t(998)](setTimeout,()=>{H$3=void 0},15e3)};function w$2(t){const e=N$f,n={neVuO:e(575)};window[e(768)](n[e(1101)],userTouch)}function N$f(t,e){const n=E$f();return(N$f=function(t,e){return n[t-=491]})(t,e)}class Navigation extends EventDispatcher{constructor(t){var e;const n=B,i={FMnQe:n(715),UWYJD:n(1054),joqQI:n(1110),qHBAp:n(739),yNfDw:function(t,e){return t===e},IoVAu:function(t,e){return t(e)},usVgI:n(993),IkBNn:n(709),EAlwG:n(718)};let r;super(),__publicField(this,_Cd),__publicField(this,_Bd,reactiveEvent(new(_Jc=B(552),_Ic=B(731),_Hc=B(1155),_Gc=B(1133),_Fc=B(941),_Ec=B(1006),_Dc=B(805),_Cc=B(681),_Bc=B(802),_Ac=B(576),_zc=B(611),_yc=B(571),_xc=B(1048),_wc=B(1104),_vc=B(672),_uc=B(1106),_tc=B(814),_sc=B(643),_rc=B(558),_qc=B(983),_pc=B(549),_oc=B(668),_nc=B(1114),_mc=B(527),_lc=B(560),class{constructor(){__publicField(this,_Jc,[]),__publicField(this,_Ic,{}),__publicField(this,_Hc,{}),__publicField(this,_Gc,EnterType[B(653)]),__publicField(this,_Fc,CrossType[B(1037)]),__publicField(this,_Ec,null),__publicField(this,_Dc,null),__publicField(this,_Cc,[]),__publicField(this,_Bc,!1),__publicField(this,_Ac,!1),__publicField(this,_zc,!1),__publicField(this,_yc,!1),__publicField(this,_xc,2.5),__publicField(this,_wc,0),__publicField(this,_vc,0),__publicField(this,_uc,""),__publicField(this,_tc,null),__publicField(this,_sc,null),__publicField(this,_rc,null),__publicField(this,_qc,0),__publicField(this,_pc,0),__publicField(this,_oc,0),__publicField(this,_nc,0),__publicField(this,_mc,0),__publicField(this,_lc,null)}}),(t,e)=>{const n=B,i={ZufWH:function(t,e){return t+e},MHFtq:n(1001)};this[n(1119)](i[n(782)](t,i[n(816)]),e)})),__publicField(this,_Ad,{}),__publicField(this,_zd,{}),__publicField(this,_yd,new Group$1),__publicField(this,_xd),__publicField(this,_wd,new Sprite(new SpriteMaterial({map:texureLoader[B(978)](a$4,()=>{const t=B,e={hkiLQ:function(t,e,n,i){return t(e,n,i)},AoUKg:function(t,e,n,i){return t(e,n,i)},xZQrQ:function(t,e,n){return t(e,n)}};e[t(562)](setSize,this[t(763)],.5,this[t(665)][t(537)]),e[t(845)](setTimeout,()=>{const n=t;e[n(921)](setSize,this[n(763)],.5,this[n(665)][n(537)])},1e3)}),transparent:!0,depthTest:!1,depthWrite:!1,sizeAttenuation:!1}))),__publicField(this,_vd,new Sprite(new SpriteMaterial({map:texureLoader[B(978)](n$3,()=>{const t=B,e={TgRRp:function(t,e,n,i){return t(e,n,i)},uHnJF:function(t,e,n){return t(e,n)}};e[t(772)](setSize,this[t(976)],.2,this[t(665)][t(537)]),e[t(1099)](setTimeout,()=>{const n=t;e[n(772)](setSize,this[n(976)],.2,this[n(665)][n(537)])},1e3)}),transparent:!0,depthTest:!1,sizeAttenuation:!1,depthWrite:!1}))),__publicField(this,_ud,{id:"-1",x:0,y:0,floorId:"",ids:{},distance:0}),__publicField(this,_td),__publicField(this,_sd),__publicField(this,_rd),__publicField(this,_qd),__publicField(this,_pd),__publicField(this,_od,{}),__publicField(this,_nd,new MultiLanguageAudioManager({defaultLanguage:"zh",volume:1,muted:!1})),__publicField(this,_md),__publicField(this,_ld,[]),__publicField(this,_kd,{}),__publicField(this,_jd),__publicField(this,_id2,[]),__publicField(this,_hd,!1),__publicField(this,_gd),__publicField(this,_fd),__publicField(this,_ed,new class{constructor(){__publicField(this,_Wc),__publicField(this,_Vc),__publicField(this,_Uc),__publicField(this,_Tc),__publicField(this,_Sc),__publicField(this,_Rc,99),__publicField(this,_Qc,99),__publicField(this,_Pc,99),__publicField(this,_Oc,99),__publicField(this,_Nc,""),__publicField(this,_Mc),__publicField(this,_Lc),__publicField(this,_Kc,new Vector2(0,1))}[(_Wc=B(665),_Vc=B(818),_Uc=B(1056),_Tc=B(945),_Sc=B(657),_Rc=B(752),_Qc=B(895),_Pc=B(540),_Oc=B(536),_Nc=B(1152),_Mc=B(806),_Lc=B(552),B(508))](t,e){const n=B,i={COztF:function(t,e){return t/e}};this[n(665)]=e,this[n(552)]=t,this[n(818)]=new Path(t[n(665)](t=>(new Vector2)[n(821)](t[n(504)]))),this[n(945)]=this[n(818)][n(685)](),this[n(1056)]=0,this[n(716)]();let r=0;t[n(665)]((t,e)=>{const s=n;t[s(732)]=e?i[s(1022)](r,this[s(945)]):0,r+=t[s(503)]})}[(_Kc=B(556),B(716))](){const t=B,e={ySUjL:function(t,e){return t/e},GRFch:function(t,e){return t*e},FITrz:function(t,e){return t*e},kjAXa:function(t,e){return t>e},mzQfb:function(t,e){return t>e},dbFfA:function(t,e){return t+e}};let n=this[t(818)][t(683)](e[t(619)](this[t(1056)],this[t(945)])),i=n[t(1081)]()[t(639)](this[t(556)]),r=e[t(497)](e[t(1105)](e[t(673)](i,0)?1:-1,n[t(606)](this[t(556)])),u$3);this[t(657)]=e[t(588)](r,0)?r:e[t(660)](360,r)}[B(893)](t,e){var n,i,r;const s=B,a={GFtWE:function(t,e){return t-e},cdReg:function(t,e){return t>e},eqIEZ:function(t,e){return t+e},okaXx:function(t,e){return t<e},kyPjJ:function(t,e){return t===e},SNcdt:s(518),XLGUt:function(t,e){return t>=e},DTJYt:function(t,e){return t*e},bkGhD:function(t,e){return t*e},tLFOB:function(t,e){return t+e},LhEMJ:function(t,e,n,i){return t(e,n,i)},hXlbC:function(t,e){return t-e},LLTct:function(t,e){return t/e},WqTny:function(t,e){return t<e},pnKaz:function(t,e){return t!=e},tjgJT:function(t,e){return t-e},zFaRG:function(t,e,n){return t(e,n)}};let o=a[s(946)](this[s(657)],this[s(665)][s(722)][s(848)][s(799)]);o=a[s(754)](o,0)?o:a[s(762)](360,o),this[s(784)]=o;let c=a[s(754)](o,120)&&a[s(1038)](o,240)?0:1;a[s(1045)](this[s(665)][s(722)][s(848)][s(661)],a[s(640)])&&(c=1),((null==(i=null==(n=this[s(665)][s(722)][s(751)][s(814)])?void 0:n[s(1061)])?void 0:i[s(925)]("后方"))||a[s(614)](this[s(665)][s(722)][s(848)][s(870)],.9))&&(c=1),e&&(c=e);let l=a[s(648)](a[s(545)](a[s(648)](.9,c),t),this[s(665)][s(722)][s(848)][s(870)]);a[s(1045)](this[s(1152)],this[s(665)][s(722)][s(678)][s(951)])&&(this[s(1152)]="",l=2);let u=a[s(714)](this[s(1056)],l);u=a[s(671)](clamp,u,.01,a[s(1004)](this[s(945)],.01));let h=a[s(991)](u,this[s(945)]),d=this[s(818)][s(844)](h),p=this[s(552)][s(1127)](t=>t[s(732)]>h);if(this[s(896)](p),(a[s(491)](this[s(752)],10)||a[s(491)](this[s(895)],10))&&a[s(622)](this[s(552)][p][s(951)].id,this[s(665)][s(722)][s(678)][s(951)])&&a[s(1038)](this[s(665)][s(722)][s(848)][s(870)],1.49))return void(this[s(1152)]=this[s(552)][p][s(951)].id);let f=this[s(552)][a[s(836)](p,1)];if(null==(r=f[s(1061)])?void 0:r[s(925)]("梯")){let t=this[s(552)][p][s(504)],e=a[s(567)](getLineLength,f[s(504)],t);d.x=t.x,d.y=t.y,u+=e,p++}return this[s(665)][s(722)][s(751)][s(668)]=a[s(836)](this[s(945)],u),this[s(1056)]=u,this[s(716)](),{point:new Vector3(d.x,d.y,0),nextIdx:p,nextPoint:this[s(552)][p]}}[B(896)](t){var e,n,i,r;const s=B,a={bDkWR:function(t,e){return t<e},ZrGld:function(t,e,n){return t(e,n)},hntYy:s(838),vkSJW:function(t,e){return t-e},xXHjK:function(t,e){return t>=e}};let o,c,l,u;this[s(752)]=0,this[s(540)]=0;for(let h=t;a[s(613)](h,this[s(552)][s(945)]);h++){const t=this[s(552)][h];!o&&((null==(e=t[s(1061)])?void 0:e[s(925)]("梯"))?(this[s(752)]+=a[s(1029)](getLineLength,this[s(665)][s(722)][s(763)][s(942)],t[s(504)]),o=!0):this[s(752)]+=t[s(503)]),!c&&((null==(n=t[s(1061)])?void 0:n[s(925)](a[s(1095)]))?(this[s(540)]+=a[s(1029)](getLineLength,this[s(665)][s(722)][s(763)][s(942)],t[s(504)]),c=!0):this[s(540)]+=t[s(503)])}!o&&(this[s(752)]=99),!c&&(this[s(540)]=99),this[s(895)]=0,this[s(536)]=0;for(let h=a[s(677)](t,1);a[s(985)](h,0);h--){const t=this[s(552)][h];!l&&((null==(i=t[s(1061)])?void 0:i[s(925)]("梯"))?l=!0:this[s(895)]+=t[s(503)]),!u&&((null==(r=t[s(1061)])?void 0:r[s(925)](a[s(1095)]))?u=!0:this[s(536)]+=t[s(503)])}!l&&(this[s(895)]=99),!u&&(this[s(536)]=99)}}),__publicField(this,_dd,0),__publicField(this,_cd),__publicField(this,_bd),__publicField(this,_ad),__publicField(this,_$c),__publicField(this,__c,[]),__publicField(this,_Zc,0),__publicField(this,_Yc,0),__publicField(this,_Xc,0),this[n(665)]=t,i[n(723)](w$2,t),this[n(976)][n(741)]=renderOrderConfig[n(976)],this[n(976)][n(942)].z=this[n(976)][n(942)].x=1e8,debug&&(window[n(937)]=(...t)=>this[n(665)][n(615)](...t)),this[n(987)]=new x$5(t),t[n(531)][n(1089)](this[n(531)]),this[n(531)][n(1089)](this[n(976)]),this[n(763)][n(741)]=renderOrderConfig[n(763)],this[n(623)]={name:i[n(839)],id:"0",isMyPosition:!0,path:[]},this[n(769)]=t=>{var e;const s=n,a=i[s(1094)][s(1124)]("|");let o=0;for(;;){switch(a[o++]){case"0":this[s(1059)][s(741)]=99999;continue;case"1":r=t;continue;case"2":this[s(1059)]=new TextSprite({text:t,vmap:this[s(665)],fillStyle:i[s(600)],align:i[s(697)],bgColor:i[s(1080)],lineGap:.25,isCollision:!1,fontSize:12});continue;case"3":this[s(1059)][s(1093)][s(555)](-.1,-.5);continue;case"4":null==(e=this[s(1059)])||e[s(625)]();continue;case"5":if(i[s(1083)](t,r))return;continue;case"6":this[s(531)][s(1089)](this[s(1059)]);continue}break}},this[n(520)](),(!(null==(e=this[n(1123)][n(1065)])?void 0:e[n(1109)])||debug)&&(this[n(897)](),this[n(573)](),this[n(1151)]()),(location[n(915)][n(925)](i[n(535)])||location[n(915)][n(925)](i[n(962)]))&&this[n(1021)]()}get[(_Cd=B(665),_Bd=B(751),_Ad=B(522),_zd=B(949),_yd=B(531),_xd=B(564),_wd=B(763),_vd=B(976),_ud=B(771),_td=B(1132),_sd=B(623),_rd=B(848),_qd=B(987),B(1123))](){const t=B;return this[t(665)][t(1123)]}get[(_pd=B(769),_od=B(882),_nd=B(630),B(918))](){const t=B;return this[t(1123)][t(1065)][t(918)]}get[B(736)](){var t;const e=B;return null==(t=this[e(1123)][e(1065)])?void 0:t[e(736)]}get[B(929)](){var t;const e=B;return null==(t=this[e(1123)][e(1065)])?void 0:t[e(929)]}get[B(1079)](){var t,e,n,i,r,s,a,o,c,l,u,h,d,p,f,m,g,A,y,v,S,x;const b=B,T={IWIIs:function(t,e){return t===e},mhGGx:function(t,e){return t===e},UYxnN:function(t,e){return t===e}};let I=!1;return I=(null==(t=this[b(751)])?void 0:t[b(802)])||(null==(e=this[b(751)])?void 0:e[b(576)])?T[b(888)](null==(r=null==(i=null==(n=this[b(751)])?void 0:n[b(814)])?void 0:i[b(951)])?void 0:r.id,"1")||T[b(888)](null==(c=null==(o=null==(a=null==(s=this[b(751)])?void 0:s[b(814)])?void 0:a[b(951)])?void 0:o[b(981)])?void 0:c.id,"1"):T[b(617)](null==(d=null==(h=null==(u=null==(l=this[b(751)])?void 0:l[b(552)])?void 0:u[0])?void 0:h[b(951)])?void 0:d.id,"1")||T[b(932)](null==(A=null==(g=null==(m=null==(f=null==(p=this[b(751)])?void 0:p[b(552)])?void 0:f[0])?void 0:m[b(951)])?void 0:g[b(981)])?void 0:A.id,"1"),I?(null==(y=this[b(1123)][b(1065)])?void 0:y[b(913)])||(null==(v=this[b(1123)][b(1065)])?void 0:v[b(1079)])||17:(null==(S=this[b(1123)][b(1065)])?void 0:S[b(757)])||(null==(x=this[b(1123)][b(1065)])?void 0:x[b(1079)])||20}[(_md=B(1059),B(813))](t){const e=B,n={iiKgG:e(805)};this[e(1138)](t,n[e(1145)])}[B(528)](t){const e=B,n={Wsgrl:e(1006)};this[e(1138)](t,n[e(609)])}[B(1138)](t,e){const n=B;if(!t)return;if(this[n(751)][n(802)]||this[n(751)][n(576)])return;this[n(534)](),this[n(706)]();let i,r=this[n(665)][n(589)](t);if(r[n(981)][n(498)])i=this[n(665)][n(812)];else{i=this[n(665)][n(750)](r[n(981)][n(981)].id,r[n(981)].id)[n(764)]}let s=this[e+n(943)];this[n(751)][e]=r,i[n(531)][n(1089)](s),s[n(942)][n(821)](r[n(1093)])[n(984)](r[n(1103)]||2)}[(_ld=B(502),B(563))](t){const e=B,n={NuOdv:function(t,e){return t+e},vlyHt:e(655),jkOqf:function(t,e){return t(e)}};if(!t)return;if(this[e(751)][e(802)]||this[e(751)][e(576)])return;this[e(534)](),this[e(706)]();const i=t=>{const i=e;let r=this[i(665)][i(589)](t);if(!r)return console[i(1070)](n[i(773)](n[i(699)],t));let s=this[i(665)][i(938)](r[i(981)].id),a=this[i(579)](r);this[i(502)][i(707)](r),s[i(531)][i(1089)](a)};Array[e(1075)](t)?t[e(665)](i):n[e(779)](i,t)}async[B(654)](){const t=B,e={UPXvd:function(t,e){return t!==e},gCyaU:function(t,e){return t-e},qzXen:t(634),RWxmc:t(900)};if(this[t(706)](),this[t(747)](),!this[t(751)][t(805)]||!this[t(751)][t(1006)])throw new Error(e[t(745)]);let n,i=this[t(502)],r={};this[t(502)][t(665)](t=>{r[t.id]=r[t.id]||0,r[t.id]++});let s=!1;for(const c in r)if(e[t(968)](r[c],this[t(949)][c])){s=!0;break}if(s)this[t(522)]=r,this[t(949)]=JSON[t(592)](JSON[t(1074)](r));else{let e=JSON[t(592)](JSON[t(1074)](this[t(522)]));i=i[t(543)]()[t(599)]()[t(783)](t=>e[t.id]-- >0),i[t(599)]()}if(n=this[t(987)][t(1073)]([this[t(751)][t(805)],...i,this[t(751)][t(1006)]],this[t(751)][t(1133)],this[t(751)][t(941)],this[t(751)][t(681)]),!(null==n?void 0:n[t(945)]))throw new Error(e[t(959)]);this[t(751)][t(552)]=n,this[t(751)][t(527)]=n[t(791)];let a,o=[];this[t(751)][t(552)][t(665)]((n,i)=>{const r=t;e[r(968)](a,n[r(951)].id)?o[r(707)]([n]):o[e[r(717)](o[r(945)],1)][r(707)](n),a=n[r(951)].id}),this[t(751)][t(731)]=o[t(1024)]((e,n)=>{const i=t;return e[n[0][i(951)].id]=e[n[0][i(951)].id]||[],e[n[0][i(951)].id][i(707)](n),e},{}),this[t(638)](),this[t(665)][t(533)](),this[t(751)][t(805)][t(982)]&&(this[t(564)]={floorData:this[t(623)][t(981)],x:this[t(771)].x,y:this[t(771)].y})}[B(696)](t=this[B(763)][B(942)]){const e=B,n={bWEyM:function(t,e){return t<e},zsWbv:function(t,e){return t===e},ESytx:function(t,e){return t-e},hsJRY:function(t,e){return t!==e}};if(n[e(505)](n[e(1066)](Date[e(824)](),this[e(787)]),500))return;this[e(787)]=Date[e(824)]();let i,r=[];this[e(751)][e(552)][e(665)]((s,a)=>{const o=e;s[o(641)]=n[o(505)](a,this[o(882)][o(514)]);let c=n[o(760)](a,this[o(882)][o(514)]);c&&r[n[o(1066)](r[o(945)],1)][o(707)]({...s,point:t}),n[o(1064)](i,s[o(951)].id)||c?r[o(707)](c?[{...s,point:t},s]:[s]):r[n[o(1066)](r[o(945)],1)][o(707)](s),i=s[o(951)].id}),this[e(751)][e(731)]=r[e(1024)]((t,n)=>{const i=e;return t[n[0][i(951)].id]=t[n[0][i(951)].id]||[],t[n[0][i(951)].id][i(707)](n),t},{}),this[e(665)][e(533)]()}[B(651)](t){const e=B,n={indcR:e(848),CDhdn:e(518)};let i=this[e(665)][e(801)](t[e(1115)]||0,t[e(1031)]||0);this[e(848)][e(847)]=150,this[e(848)][e(1119)](n[e(513)],{...i,lng:t[e(1115)],lat:t[e(1031)],floor:t[e(879)],type:n[e(584)]}),this[e(848)][e(661)]=n[e(584)]}[B(638)](){const t=B;let e=[];this[t(751)][t(552)][t(1024)]((n,i)=>{var r;const s=t;let a=null==(r=i[s(951)][s(981)])?void 0:r.id;return a&&!n[a]&&(e[s(767)](()=>this[s(665)][s(750)](a,i[s(951)].id)),n[a]=1),n},{}),e[t(665)](t=>t())}[B(1151)](){const t=B,e={QZciN:t(828),rkTJo:function(t,e){return t(e)},xpbAc:function(t){return t()},rgXnK:t(817),EnStR:function(t,e,n){return t(e,n)},HApag:t(837),OvGtj:t(1096),mHxni:t(964)};let{socketId:n}=e[t(804)](getURLQuery);if(!n)return;let i,r=String[t(1067)](30);function s(n){const i=t;return""+JSON[i(1074)]({type:1,target:e[i(1082)],arguments:[n]})+r}const a=()=>{const o=t,c={pclPv:function(t,n){return e[N$f(931)](t,n)},hhbfr:function(t){return e[N$f(804)](t)},kdQqJ:e[o(926)],GyZeo:function(t,n,i){return e[o(901)](t,n,i)},nVJrF:e[o(866)],TwcLp:e[o(1060)]};this[o(1132)]=new WebSocket(e[o(1077)]),this[o(1132)][o(720)]=()=>{const t=o;this[t(1132)][t(851)](t(743)+r),this[t(1132)][t(851)](c[t(1135)](s,n))},this[o(1132)][o(996)]=this[o(1132)][o(999)]=()=>{const t=o,e={OeGdu:function(t){return c[N$f(621)](t)}};c[t(1135)](clearTimeout,i),console[t(1070)](c[t(557)]),i=c[t(628)](setTimeout,()=>{e[t(1017)](a)},1e3)};let l=t=>{const e=o;if(t[e(631)]&&t[e(631)][0]){let{beaconList:n,gps:i}=JSON[e(592)](t[e(631)][0]);n&&n&&this[e(848)][e(989)](n),i&&(this[e(848)][e(493)][e(887)](),this[e(848)][e(1119)](c[e(1141)],{type:c[e(1050)],GPS:!0,originGps:i,lng:i[e(687)],lat:i[e(869)],floor:this[e(1123)].id}))}};this[o(1132)][o(753)]=t=>{const e=o;t[e(936)][e(1124)](r)[e(665)](t=>{const n=e;t&&c[n(1135)](l,JSON[n(592)](t))})}};e[t(804)](a)}[(_kd=B(1030),B(597))](t){const e=B,n={QAHUF:function(t,e){return t>e},hIpAi:function(t,e){return t-e}};let i=Date[e(824)]();return t[e(665)](t=>{const n=e;t[n(730)]=i,this[n(1030)][t[n(966)]+"_"+t[n(906)]]=t}),Object[e(1087)](this[e(1030)])[e(665)](t=>{const r=e,s=this[r(1030)][t];n[r(674)](n[r(1142)](i,s[r(730)]),1e3)&&delete this[r(1030)][t]}),Object[e(647)](this[e(1030)])}[(_jd=B(678),_id2=B(738),B(897))](){const t=B,e={LSBQE:function(t,e){return t+e},ZJQWa:function(t,e){return t+e},VYoIS:function(t,e){return t===e},hahCv:t(963),LhlII:function(t,e){return t<e},BqxAv:function(t,e){return t===e},wlZPp:t(922),wUcfN:function(t,e){return t>e},tUxGd:t(709),OAIxo:t(848),fLirW:function(t,e){return t!==e},tUCEU:t(1156),HrAul:function(t,e,n){return t(e,n)},lUNnw:function(t,e){return t<e},jeLhx:function(t,e){return t==e},QWhEH:function(t,e){return t!==e},tbApw:function(t,e){return t!==e},alhRE:t(909)};let n=[];this[t(1123)][t(1097)]&&this[t(1123)][t(1097)][t(665)](i=>{const r=t;let s=i.id[r(1124)]("-");n[r(707)]({floor:i[r(879)],major:s[0],minor:s[1],rssiOffset:i[r(1154)],x:e[r(1042)](i.x,this[r(665)][r(1093)].x),y:e[r(572)](i.y,this[r(665)][r(1093)].y)})}),this[t(848)]=new U$2({debug:!0,gps:!isPc,GPS:!isPc,compassDelay:100,minRssi:-78,initAngle:this[t(1123)][t(1065)][t(852)]||0,floorDelay:2e3,map:this[t(665)]}),this[t(848)][t(508)](n);let i="",r="";this[t(848)].on(e[t(825)],n=>{var s,a,o,c,l,u,h,d,p;const f=t,[m,g]=(null==(o=null==(a=null==(s=this[f(665)])?void 0:s[f(1123)])?void 0:a[f(1065)])?void 0:o[f(928)])??[0,0];e[f(997)](n[f(702)],e[f(610)])&&(n[f(1115)]+=m,n[f(1031)]+=g);let A=this[f(665)][f(801)](n[f(1115)],n[f(1031)]);n.x=A.x,n.y=A.y,this[f(678)]=n,this[f(678)].z=0,this[f(678)][f(1016)]=this[f(665)][f(1032)](this[f(678)][f(951)]),!this[f(751)][f(802)]&&!this[f(751)][f(576)]&&this[f(747)](),this[f(792)]&&this[f(792)](),this[f(605)](n);let y=new Vector3(n.x,n.y,0);null==(c=this[f(1153)])||c[f(598)](),this[f(751)][f(802)]||e[f(829)](this[f(848)][f(587)],5)||!this[f(807)]?(e[f(974)](n[f(702)],e[f(790)])&&(this[f(807)]=!0),this[f(1153)]=new Tween(this[f(976)][f(942)]).to((new Vector3)[f(821)](this[f(678)]),300)[f(805)]()):e[f(1014)](this[f(976)][f(942)][f(777)](this[f(678)]),3)&&(this[f(1153)]=new Tween(this[f(976)][f(942)]).to((new Vector3)[f(821)](this[f(678)]),300)[f(805)]()),this[f(976)][f(680)]=!this[f(751)][f(802)]||debug||location[f(915)][f(925)](e[f(956)]);let v=this[f(665)][f(801)](this[f(1123)][f(1093)])[f(777)](y);if(e[f(829)](v,this[f(1123)][f(857)])){let t=n[f(951)];e[f(997)](t,"1")?this[f(751)][f(560)]=this[f(1123)]:this[f(751)][f(560)]=this[f(665)][f(1032)](t),this[f(1119)](e[f(825)],{floor:this[f(751)][f(560)],x:n.x,y:n.y,lng:n[f(1115)],lat:n[f(1031)]});let s=this[f(751)][f(576)]||this[f(751)][f(802)];if((!H$3||e[f(894)](i,n[f(702)]))&&!this[f(665)][f(751)][f(961)]&&e[f(894)](n[f(702)],e[f(1034)])&&!s){let t=this[f(665)][f(765)](n),r=this[f(665)][f(903)][f(1010)]()[f(777)](t);if((!e[f(988)](isPointInScreen,this[f(665)][f(841)],y)||e[f(1014)](r,5))&&e[f(935)](v,this[f(1123)][f(857)])){const i=(e[f(997)](null==n?void 0:n[f(951)],"1")?this[f(736)]:this[f(929)])||this[f(918)];this[f(665)][f(903)][f(930)]((null==i?void 0:i[f(544)])||(e[f(1040)](null==(l=this[f(678)])?void 0:l[f(951)],"1")?17:20),t),this[f(665)][f(903)][f(1062)]((null==i?void 0:i[f(1003)])||0)}i=n[f(702)]}!s&&(!H$3||e[f(1033)](r,n[f(951)]))&&((null==(u=this[f(751)][f(560)])?void 0:u[f(981)])&&e[f(1033)](this[f(751)][f(560)].id,null==(h=this[f(665)][f(751)][f(951)])?void 0:h[f(936)].id)&&!this[f(665)][f(751)][f(961)]&&this[f(665)][f(750)](this[f(751)][f(560)][f(981)].id,this[f(751)][f(560)].id),r=n[f(951)]),this[f(751)][f(802)]&&(null==(d=this[f(751)][f(560)])?void 0:d[f(981)])&&e[f(577)](this[f(751)][f(560)].id,null==(p=this[f(665)][f(751)][f(951)])?void 0:p[f(936)].id)&&this[f(665)][f(750)](this[f(751)][f(560)][f(981)].id,this[f(751)][f(560)].id)}this[f(665)][f(1119)](e[f(776)],{floorId:n[f(951)],marker:this[f(976)]})})}async[(_hd=B(796),B(729))](t,e){const n=B,i={bELKH:function(t,e){return t===e},AcVon:function(t,e){return t<=e},Fuooe:n(1090),EosEu:function(t,e){return t(e)}};if(this[n(796)])return;this[n(796)]=!0;let r=(new Vector2)[n(821)](t),s=await this[n(665)][n(582)]({url:b$b[n(586)]+n(912)+this[n(665)][n(1065)].id}),a=JSON[n(592)](s[n(1027)][n(936)]);a&&a[n(496)][n(665)](t=>{const s=n;if(i[s(1157)](t[s(879)],e)){let e=(new Vector2)[s(821)](t)[s(777)](r);i[s(758)](e,t[s(990)])&&(console[s(1070)](i[s(795)],t[s(920)]),this[s(848)][s(861)]=t[s(920)],debug&&i[s(907)](alert,s(1111)+t[s(506)]+s(650)+t[s(920)]+s(1051)+t[s(990)]))}})}[B(605)](t){var e;const n=B;(null==(e=t[n(604)])?void 0:e[n(1104)])&&(this[n(751)][n(1104)]=t[n(604)][n(1104)]),this[n(751)][n(1104)]=+{eRWPg:function(t,e){return t(e)}}[n(1039)](Number,this[n(751)][n(1104)])[n(679)](2)}[B(875)](){const t=B,e={VUJMt:t(911)};this[t(751)][t(802)]=!1,this[t(1117)]&&this[t(848)][t(618)](e[t(815)],this[t(1117)]),this[t(1117)]=null,this[t(665)].ar[t(538)]()}[B(1144)](t){var e;const n=B;!isPc&&this[n(665)][n(903)][n(835)]({dragEnable:!t,rotateEnable:!(null==(e=this[n(1123)][n(1065)])?void 0:e[n(886)])&&!t})}[B(809)](){const t=B,e={SsFaz:function(t,e){return t===e},SOuym:function(t,e){return t===e}};if(this[t(665)].ar[t(924)]){let n=this[t(751)][t(552)][t(543)](this[t(882)][t(514)]||0),i=[...new Set(n[t(665)](e=>e[t(951)].id))];!e[t(881)](i[0],"1")&&!e[t(1044)](i[1],"1")&&(n=n[t(783)](e=>e[t(951)].id===this[t(678)][t(951)]||e[t(951)][t(1036)]&&"1"==this[t(678)][t(951)]));let r=n[t(665)](e=>e[t(504)]);r[t(767)](this[t(763)][t(942)][t(1081)]()),this[t(665)].ar[t(1091)](r)}}async[(_gd=B(1117),_fd=B(792),B(794))](t={}){var e,n,i,r,s;const a=B,o={gyoDt:a(971),VYoEz:function(t,e){return t===e},FizrH:function(t,e){return t+e},fgdcG:function(t,e){return t-e},pRKHB:a(518),aqSiA:a(911),rkRKX:function(t,e){return t>e},jSCSI:function(t,e){return t<e},gBRzT:function(t,e,n,i){return t(e,n,i)},UXzXj:function(t,e){return t+e},fkVjk:function(t,e){return t*e},GcnUc:function(t,e){return t<e},OXofx:function(t,e){return t!==e},BRFmV:function(t,e,n){return t(e,n)},hAdqM:function(t,e){return t>e},sweZZ:function(t,e){return t<e},KwNIu:function(t,e){return t-e},ibosC:function(t,e){return t+e},QPaCf:function(t,e){return t<=e},FIYRZ:a(694),oVyzR:a(511),MdorV:a(698),UfuIz:function(t,e){return t!=e},KyglT:function(t,e){return t!==e},FGtsn:a(849),DzJWF:a(761),rJKHm:a(629),rhrkU:function(t,e){return t==e},oYcRS:function(t,e){return t(e)}};if((!this[a(751)][a(802)]||t[a(1131)])&&this[a(751)][a(1006)]&&this[a(751)][a(805)])return this[a(564)]&&o[a(788)](this[a(564)][a(1016)].id,"1")&&o[a(826)](this[a(623)][a(981)].id,this[a(564)][a(1016)].id)||this[a(678)]&&o[a(1047)](this[a(976)][a(942)][a(777)]((new Vector3)[a(821)](this[a(751)][a(552)][0][a(504)])[a(984)](0)),8)?(console[a(1070)](o[a(1102)]),await this[a(654)](),void this[a(794)]()):(this[a(656)][a(508)](this[a(751)][a(552)],this[a(665)]),this[a(751)][a(802)]=!0,this[a(531)][a(1089)](this[a(763)]),null==(e=this[a(665)][a(751)][a(498)])||e[a(542)](),this[a(751)][a(552)][0][a(951)][a(981)]&&o[a(1140)](this[a(751)][a(552)][0][a(504)][a(879)],null==(n=this[a(665)][a(751)][a(951)])?void 0:n[a(936)].id)&&this[a(665)][a(750)](this[a(751)][a(552)][0][a(951)][a(981)].id,this[a(751)][a(552)][0][a(504)][a(879)]),this[a(751)][a(1114)]=this[a(751)][a(668)]=this[a(751)][a(552)][a(791)],this[a(665)].ar[a(924)]&&this[a(665)].ar[a(1035)](),t[a(1131)]?this[a(630)][a(608)](o[a(551)]):this[a(630)][a(608)](o[a(1057)]),this[a(751)][a(814)]=null,this[a(751)][a(643)]=null,this[a(751)][a(558)]=null,this[a(751)][a(549)]=100,this[a(882)]={isFirst:!0,nextId:0,nextDis:0,isEnd:!1,backCount:0,nextIdx:1,nextTipDis:0},this[a(665)][a(903)][a(692)]((null==(i=this[a(1079)])?void 0:i[a(544)])||(o[a(980)](null==(r=this[a(678)])?void 0:r[a(951)],"1")?17:20)),this[a(665)][a(903)][a(1062)]((null==(s=this[a(1079)])?void 0:s[a(1003)])||0),this[a(792)]=()=>{const t=a;if(!this[t(751)][t(802)])return;let e=this[t(793)]();if(debug&&this[t(665)][t(819)]([e],o[t(659)],20),o[t(1018)](e[t(791)],void 0))return;let n=Object[t(1087)](e[t(1068)]),i=this[t(751)][t(552)],r=i[t(1127)](e=>+e[t(504)].id===+n[0]),s=i[t(1127)](e=>+e[t(504)].id===+n[1]),c=e[t(514)]||Math[t(690)](r,s),l=i[c];if(l){let n=new Vector2(e.x,e.y)[t(777)](l[t(504)]),r=i[t(543)](c)[t(1024)]((e,n)=>e+n[t(503)],0),s=o[t(953)](r,n),a=o[t(728)](this[t(751)][t(668)],s);if(this[t(751)][t(1114)]=s,o[t(1018)](this[t(848)][t(661)],o[t(691)]))return this[t(1117)]&&this[t(848)][t(618)](o[t(899)],this[t(1117)]),this[t(1117)]&&this[t(1117)](a);o[t(695)](this[t(848)][t(847)],-170)||o[t(726)](this[t(848)][t(587)],10)?this[t(848)][t(870)]=o[t(1136)](clamp,+o[t(662)](1,o[t(1058)](a,.2))[t(679)](2),o[t(884)](this[t(848)][t(820)],-88)?0:.3,1.2):this[t(848)][t(870)]=.9}},this[a(1117)]&&this[a(848)][a(618)](o[a(899)],this[a(1117)]),this[a(1117)]=async e=>{var n;const i=a;let r=this[i(656)][i(893)](e);if(!r)return;let s=r[i(514)],c=this[i(751)][i(552)][o[i(728)](s,1)],l=this[i(751)][i(552)][s],u=this[i(751)][i(552)][o[i(662)](s,1)];if(this[i(593)]&&this[i(593)][i(598)](),this[i(593)]=new Tween(this[i(763)][i(942)]).to(r[i(504)],300)[i(805)](),this[i(882)][i(514)]=s,this[i(696)](r[i(504)]),this[i(1026)](t),this[i(882)][i(1147)]=l[i(504)].id,this[i(882)][i(688)]=r[i(504)][i(777)]({...r[i(842)][i(504)],z:0}),o[i(1140)](this[i(848)][i(661)],o[i(691)])&&this[i(792)](),this[i(742)](l,u),this[i(809)](),!this[i(1123)][i(1065)][i(1063)]&&!this[i(882)][i(568)]){this[i(882)][i(568)]=!0,o[i(510)](setTimeout,()=>{const t=i;this[t(882)][t(568)]=!1},500);let t=o[i(728)](360,this[i(656)][i(657)]),e=this[i(665)][i(903)][i(890)]();o[i(1047)](o[i(728)](t,e),180)?this[i(665)][i(903)][i(927)](o[i(662)](360,e),0):o[i(780)](o[i(652)](t,e),-180)&&this[i(665)][i(903)][i(927)](o[i(746)](-360,e),0),this[i(665)][i(903)][i(927)](t,500)}if(o[i(566)](this[i(751)][i(668)],this[i(665)][i(1065)][i(876)]||(o[i(1018)](null==(n=this[i(751)][i(814)])?void 0:n[i(951)].id,"1")?10:2))){const t=o[i(840)][i(1124)]("|");let e=0;for(;;){switch(t[e++]){case"0":this[i(875)]();continue;case"1":this[i(1119)](o[i(756)]);continue;case"2":this[i(630)][i(608)](o[i(902)]);continue;case"3":return;case"4":this[i(882)][i(992)]=!0;continue}break}}this[i(580)](c,l),!H$3&&this[i(665)][i(903)][i(1043)](this[i(665)][i(765)](r[i(504)]),500)},o[a(492)](clearTimeout,H$3),H$3=void 0,this[a(1117)](0),void this[a(848)].on(o[a(899)],this[a(1117)]))}async[(_ed=B(656),_dd=B(578),B(1026))](t={}){const e=B,n={SESGA:function(t,e){return t<e},uTubT:function(t,e){return t>e},JNaOO:function(t,e){return t===e},MziTr:function(t,e,n,i){return t(e,n,i)},pVynR:function(t,e){return t*e},hHfLY:function(t,e){return t<e},UatMg:function(t,e){return t<e},vwirA:function(t,e){return t<e},lFuvt:function(t,e){return t(e)},MgFCF:function(t,e){return t+e},TlsHR:function(t,e){return t+e},zWabu:e(711),oOGHs:function(t,e){return t<e},ayYnd:function(t,e){return t>=e},kwPJw:function(t,e){return t>e},znQnx:e(1026),Wfemv:e(761)};if(n[e(1134)](this[e(848)][e(847)],-160)&&n[e(1126)](this[e(848)][e(587)],5))return;let i=this[e(763)][e(942)][e(777)](this[e(678)]),r=n[e(649)](this[e(678)][e(951)],this[e(1123)].id),s=r?n[e(525)](clamp,n[e(693)](this[e(848)][e(843)],7),25,60):10;if(s=+s[e(679)](0),(this[e(656)][e(752)]&&n[e(1134)](this[e(656)][e(752)],20)||this[e(656)][e(895)]&&n[e(670)](this[e(656)][e(895)],20)||this[e(656)][e(540)]&&n[e(748)](this[e(656)][e(540)],20)||this[e(656)][e(536)]&&n[e(810)](this[e(656)][e(536)],30))&&(s=50),n[e(868)](showMessage,n[e(509)](n[e(509)](n[e(509)](n[e(509)](n[e(1150)](n[e(905)],s),"-"),i[e(679)](1)),"-"),this[e(578)])),n[e(1126)](i,s)&&n[e(1011)](i,5e3)){if(this[e(578)]+=1,n[e(636)](this[e(578)],r?10:6))if(this[e(578)]=0,t[e(526)])this[e(630)][e(608)](n[e(880)]);else{this[e(751)][e(805)]=this[e(623)],await this[e(654)]();let t=n[e(682)](this[e(771)][e(791)],10);this[e(794)]({isRePlanRoute:!0,notInLine:t}),this[e(1119)](n[e(933)])}}else this[e(578)]-=1,this[e(578)]=Math[e(690)](0,this[e(578)])}[B(573)](){const t=B,e={QbkkQ:function(t,e){return t*e},lTfGg:function(t,e){return t-e},TvRGd:function(t,e){return t-e},kNBUU:function(t,e){return t(e)},BquoE:function(t,e){return t*e},UMpCf:function(t,e){return t-e},srvCW:t(672),nngPF:t(1069)};let n=0;this[t(848)].on(e[t(1023)],i=>{const r=t;let s=e[r(948)](this[r(665)][r(903)][r(890)](),b$4);n=e[r(948)](i,b$4),this[r(976)][r(831)][r(574)]=e[r(1019)](e[r(1076)](e[r(948)](2,Math.PI),n),s),this[r(751)][r(576)]||(this[r(763)][r(831)][r(574)]=this[r(976)][r(831)][r(574)],this[r(751)][r(672)]=+e[r(633)](Number,i)[r(679)](0))}),this[t(665)][t(903)].on(e[t(669)],()=>{const i=t;if(this[i(751)][i(576)])return;let r=e[i(994)](this[i(665)][i(903)][i(890)](),b$4);this[i(763)][i(831)][i(574)]=e[i(666)](e[i(666)](e[i(994)](2,Math.PI),n),r),this[i(976)][i(831)][i(574)]=this[i(763)][i(831)][i(574)]})}[(_cd=B(1107),B(1116))](){const t=B;this[t(751)][t(576)]&&(this[t(751)][t(576)]=!1,this[t(751)][t(571)]=!1,this[t(1107)]&&this[t(1107)][t(598)](),this[t(1144)](!1))}[B(706)](){const t=B;this[t(751)][t(552)]=[],this[t(751)][t(731)]={},this[t(665)][t(706)]()}[B(534)](){var t;const e=B;this[e(763)][e(1121)](),null==(t=this[e(1059)])||t[e(625)]()}[B(1046)](){const t=B;this[t(734)](),this[t(499)]()}[B(499)](){const t=B;this[t(751)][t(1006)]=null,this[t(727)][t(1121)]()}[B(601)](t){var e;const n=B;null==(e=this[n(919)][n(654)](e=>e[n(565)][n(936)].id===t))||e[n(625)]();let i=this[n(502)][n(1127)](e=>e.id===t);({NnFDt:function(t,e){return t>e}})[n(1137)](i,-1)&&this[n(502)][n(969)](i,1)}[B(874)](){const t=B,e={idzmZ:t(1139)}[t(858)][t(1124)]("|");let n=0;for(;;){switch(e[n++]){case"0":this[t(502)][t(945)]=0;continue;case"1":this[t(949)]={};continue;case"2":this[t(919)][t(665)](e=>e[t(625)]());continue;case"3":this[t(522)]={};continue;case"4":this[t(919)][t(945)]=0;continue}break}}[B(734)](){const t=B;this[t(751)][t(805)]=null,this[t(530)][t(1121)]()}[B(1020)](){const t=B;this[t(751)][t(571)]=!0,this[t(1107)]&&this[t(1107)][t(1108)](),this[t(1144)](!1)}[B(585)](){const t=B;this[t(751)][t(571)]=!1,this[t(1107)]&&this[t(1107)][t(1086)](),this[t(1144)](!0)}[B(532)](t=this[B(751)][B(1048)]){const e=B;this[e(751)][e(1048)]=t,this[e(744)]&&this[e(744)]()}async[(_bd=B(744),B(947))](){var t,e,n,i,r,s;const a=B,o={Yehsf:a(626),uNxzK:function(t,e){return t+e},MKKdF:function(t,e){return t-e},mgRaG:function(t,e){return t*e},vuchU:function(t,e){return t(e)},lJUab:function(t,e){return t/e},AVzYT:function(t,e){return t+e},nnESZ:a(1e3),MQAwb:a(698),ZgCgP:function(t,e){return t!==e},okSJC:function(t,e){return t!==e},kWHyd:function(t,e){return t==e},Gfyen:function(t,e){return t==e},ZoSsN:function(t,e){return t*e},ZauWV:function(t,e){return t!==e},FlXwo:function(t,e){return t(e)},ktZjo:a(629),qQGxp:function(t){return t()}};if(this[a(744)]=null,!(null==(t=this[a(751)][a(552)])?void 0:t[a(945)]))return;let c=this[a(751)][a(552)][0];this[a(1144)](!0),this[a(1107)]&&this[a(1107)][a(598)](),this[a(751)][a(1048)]=2.5,null==(e=this[a(665)][a(751)][a(498)])||e[a(542)]();let l=0;!(null==(n=this[a(1123)][a(1065)])?void 0:n[a(800)])&&this[a(630)][a(608)](o[a(645)]),this[a(751)][a(576)]=!0,this[a(751)][a(571)]=!1,this[a(751)][a(1006)]&&this[a(751)][a(805)]&&this[a(531)][a(1089)](this[a(763)]),this[a(882)]={nextIdx:0,nextId:0,nextDis:c[a(503)],isEnd:!1,nextPanoId:-1,nextTipDis:0};let u=null==(i=this[a(1123)][a(1065)])?void 0:i[a(808)];this[a(667)](c),this[a(665)][a(903)][a(1062)]((null==(r=this[a(1079)])?void 0:r[a(1003)])||0,!0),this[a(665)][a(903)][a(692)]((null==(s=this[a(1079)])?void 0:s[a(544)])||(this[a(751)][a(552)][0][a(951)][a(981)]?20:17));let h=async()=>{var t,e,n;const i=a,r={pDqKW:o[i(1028)],FVPzK:function(t,e){return o[i(594)](t,e)},wYkSD:function(t,e){return o[i(904)](t,e)},VpJrV:function(t,e){return o[i(627)](t,e)},YGaif:function(t,e){return o[i(740)](t,e)},PbkvE:function(t,e){return o[i(1130)](t,e)}};let s=this[i(751)][i(552)][l],c=this[i(751)][i(552)][o[i(1055)](l,1)],d=this[i(751)][i(552)][o[i(594)](l,2)],p=0;if(!c){const e=o[i(785)][i(1124)]("|");let n=0;for(;;){switch(e[n++]){case"0":return;case"1":this[i(744)]=null;continue;case"2":!(null==(t=this[i(1123)][i(1065)])?void 0:t[i(955)])&&this[i(630)][i(608)](o[i(934)]);continue;case"3":console[i(1070)](o[i(934)]);continue;case"4":this[i(1116)]();continue}break}}this[i(763)][i(942)][i(555)](s[i(504)].x,s[i(504)].y,0),this[i(882)][i(1147)]=c[i(504)].id,this[i(882)][i(514)]=o[i(1055)](l,1),this[i(882)][i(688)]=s[i(503)],c[i(951)][i(981)]&&(o[i(724)](c[i(951)].id,s[i(951)].id)||o[i(541)](null==(e=this[i(665)][i(751)][i(951)])?void 0:e[i(936)],s[i(951)]))&&(p+=500,this[i(665)][i(750)](c[i(951)][i(981)].id,c[i(951)].id));let f=o[i(724)](c[i(504)][i(879)],s[i(504)][i(879)])&&(o[i(495)](c[i(504)][i(879)],"1")||o[i(755)](s[i(504)][i(879)],"1")),m=this[i(665)][i(859)](s[i(504)],f?d[i(504)]:c[i(504)]),g=o[i(891)](m,u$3);u&&!(null==(n=this[i(1123)][i(1065)])?void 0:n[i(1063)])&&this[i(665)][i(903)][i(927)](g,l?500:0);let A=this[i(665)][i(765)](s[i(504)]),y=this[i(665)][i(765)](c[i(504)]),v={x:s[i(504)].x,y:s[i(504)].y,lng:A[i(1115)],lat:A[i(1031)]},S={x:c[i(504)].x,y:c[i(504)].y,lng:y[i(1115)],lat:y[i(1031)]};if(c[i(504)][i(494)]&&texureLoader[i(978)](c[i(504)][i(494)]),o[i(541)](c[i(504)][i(879)],s[i(504)][i(879)])&&o[i(541)](c[i(504)][i(879)],"1")&&o[i(1052)](s[i(504)][i(879)],"1"))return void o[i(1129)](h,l++);let x=this[i(751)][i(552)][i(543)](o[i(1055)](l,1))[i(1024)]((t,e)=>t+e[i(503)],0);this[i(744)]=(t=0)=>{const e=i,n={lxZpC:r[e(975)],ooOpT:function(t,n){return r[e(952)](t,n)},JrAfi:function(t,n){return r[e(637)](t,n)},umloE:function(t,n){return r[e(865)](t,n)},JtjnC:function(t,n){return r[e(735)](t,n)},wCRJV:function(t,n){return r[e(735)](t,n)}};let a=this[e(882)][e(688)];this[e(1107)]&&this[e(1107)][e(598)](),this[e(1107)]=new Tween(v).to(S,r[e(521)](r[e(865)](a,1e3),this[e(751)][e(1048)]))[e(519)](Easing[e(871)][e(877)])[e(689)](t)[e(805)]()[e(664)](()=>{var t,i;const r=e,a=n[r(860)][r(1124)]("|");let o=0;for(;;){switch(a[o++]){case"0":this[r(665)][r(903)][r(1043)]([v[r(1115)],v[r(1031)]],0);continue;case"1":this[r(751)][r(668)]=n[r(1128)](x,this[r(882)][r(688)]);continue;case"2":this[r(696)](this[r(763)][r(942)]);continue;case"3":null==(t=this[r(1059)])||t[r(942)][r(821)](this[r(763)][r(942)]);continue;case"4":this[r(763)][r(831)][r(574)]=n[r(940)](m,n[r(986)](this[r(665)][r(903)][r(890)](),b$4));continue;case"5":this[r(763)][r(942)][r(555)](v.x,v.y,0);continue;case"6":this[r(742)](c,d);continue;case"7":this[r(882)][r(688)]=new Vector2(v.x,v.y)[r(777)](c[r(504)]);continue;case"8":this[r(769)](r(603)+this[r(751)][r(668)][r(679)](0)+r(512)+n[r(548)](g$1,this[r(751)][r(668)]));continue;case"9":!(null==(i=this[r(1123)][r(1065)])?void 0:i[r(800)])&&this[r(580)](s,c);continue}break}})[e(591)](()=>{n[e(883)](h,l++)})},this[i(744)](p)};o[a(595)](h)}[B(742)](t,e){const n=B,i={GKEcP:function(t,e){return t<e},RDIiq:function(t,e){return t!==e},nDayU:n(759),AzaKl:function(t,e){return t+e},ReECg:function(t,e){return t/e}};if(e&&t[n(504)][n(494)]&&i[n(957)](this[n(882)][n(688)],8)&&i[n(658)](this[n(882)][n(1147)],this[n(882)][n(977)])){this[n(882)][n(977)]=this[n(882)][n(1147)];let r=(new Vector2)[n(821)](t[n(504)])[n(561)]((new Vector2)[n(821)](e[n(504)]))[n(1072)]();this[n(1119)](i[n(1071)],{point:t[n(504)],angle:i[n(749)](r,i[n(914)](Math.PI,2))})}}[B(667)](t){var e;const n=B,i={JRbBi:function(t,e){return t+e},LUcUv:function(t,e){return t<e},xtKFt:function(t,e){return t!=e},VDCys:n(558),TtPmR:function(t,e){return t*e},UHNZa:n(838),lYSTH:n(635),TxGqd:function(t,e){return t==e},kwzjO:n(939),bPRHE:function(t,e){return t+e},LlRGq:n(972),OgUyr:function(t,e){return t+e},wLgtY:n(616),RgeAz:function(t,e){return t+e},lUwLb:function(t,e){return t+e},WQJAD:n(686)};let r=this[n(751)][n(552)][n(581)](t),s=this[n(882)][n(688)],a=s,o=this[n(751)][n(552)][n(543)](i[n(507)](r,1)),c=!1,l=!1;for(let u=0;i[n(833)](u,o[n(945)]);u++){const t=o[u];if(a+=t[n(503)],t[n(558)]&&!l&&(i[n(846)](this[n(751)][n(558)],t[n(558)])&&(this[n(751)][n(558)]&&(this[n(1119)](i[n(908)],this[n(751)][n(558)]),this[n(522)][this[n(751)][n(558)].id]--),this[n(751)][n(558)]=t[n(558)]),a-=t[n(503)],this[n(751)][n(549)]=+i[n(823)](a,.9)[n(679)](1),l=!0),!c)if(t[n(1061)]&&(t[n(1061)][n(925)]("直行")||t[n(1061)][n(925)](i[n(596)])))s+=t[n(503)];else if(t[n(1061)]||t[n(992)]){const r=i[n(676)][n(1124)]("|");let a=0;for(;;){switch(r[a++]){case"0":this[n(751)][n(643)]=this[n(751)][n(814)];continue;case"1":!H$3&&this[n(665)][n(903)][n(692)]((null==(e=this[n(1079)])?void 0:e[n(544)])||(i[n(550)](t[n(951)].id,"1")?17:20));continue;case"2":this[n(751)][n(983)]=+i[n(823)](s,.9)[n(679)](0);continue;case"3":this[n(751)][n(814)]=t;continue;case"4":c=!0;continue;case"5":t[n(992)]?this[n(751)][n(1106)]=i[n(910)]:t[n(1061)][n(925)]("电梯")?this[n(751)][n(1106)]=i[n(1092)](i[n(1049)],o[i[n(1092)](u,1)][n(951)][n(517)]):t[n(1061)][n(925)]("扶梯")?this[n(751)][n(1106)]=i[n(867)](i[n(1041)],o[i[n(781)](u,1)][n(951)][n(517)]):t[n(1061)][n(925)]("楼梯")?this[n(751)][n(1106)]=i[n(965)](i[n(892)],o[i[n(1092)](u,1)][n(951)][n(517)]):this[n(751)][n(1106)]=t[n(1061)][n(546)]("即将","");continue}break}}}!l&&(this[n(751)][n(558)]=null)}[B(580)](t,e){var n,i,r,s;const a=B,o={YZIDH:function(t,e){return t>=e},odLQk:function(t,e){return t<e},GNgoo:function(t,e){return t*e},tKvpO:function(t,e){return t+e},rgRdQ:function(t,e){return t+e},KxYft:function(t,e){return t>e},LFGVm:function(t,e){return t+e}};this[a(667)](t),e&&!o[a(786)](this[a(751)][a(1048)],3)&&(o[a(539)](this[a(751)][a(983)],Math[a(690)](o[a(798)](this[a(751)][a(1104)],6),6))&&!this[a(882)][null==(n=this[a(751)][a(814)])?void 0:n[a(504)].id]&&this[a(751)][a(1106)]&&(this[a(882)][null==(i=this[a(751)][a(814)])?void 0:i[a(504)].id]=1,this[a(630)][a(608)](o[a(1012)](this[a(751)][a(1106)][a(925)]("梯")?"请":"即将",this[a(751)][a(1106)]))),!this[a(882)][o[a(644)](null==(r=this[a(751)][a(814)])?void 0:r[a(504)].id,"直行")]&&o[a(721)](this[a(751)][a(983)],10)&&(this[a(882)][o[a(644)](null==(s=this[a(751)][a(814)])?void 0:s[a(504)].id,"直行")]=1,this[a(630)][a(608)](o[a(644)](o[a(703)](o[a(703)]("直行",this[a(751)][a(983)]),"米后"),this[a(751)][a(1106)]))))}[B(960)](t,e,n,i=3,r){const s=B,a={CklAD:function(t,e){return t%e},uDyTV:function(t,e){return t+e},DHSzh:function(t,e,n){return t(e,n)},RIsNH:function(t,e){return t<e},fLLfW:function(t,e){return t(e)},YBNnG:function(t,e){return t==e},kejpm:function(t,e){return t===e},XXyGU:function(t,e){return t>e}};r=r||(a[s(612)](e,"1")?20:5);const o=this[s(987)][s(620)]({point:(new Vector3)[s(821)](n),floor:this[s(665)][s(1032)](e)});if(a[s(944)](o[s(791)],void 0)||a[s(719)](o[s(791)],500))return;if(t[s(1068)]){let e=Object[s(1087)](t[s(1068)]);e[s(945)]&&e[s(665)](e=>{const n=s;this[n(987)][n(1113)][n(954)](t.id,e),this[n(987)][n(1113)][n(954)](e,t.id)})}a[s(515)](o[s(791)],1.5)?(t.x=o.x,t.y=o.y):(t.x=n.x,t.y=n.y),t[s(553)]=o,t[s(1068)]=o[s(1068)],t[s(879)]=e;const c=e=>{const n=s,i={fnVcX:function(t,e){return a[N$f(853)](t,e)},ncklB:function(t,e){return a[N$f(624)](t,e)},ejiEL:function(t,e){return a[N$f(624)](t,e)},yVHGI:function(t,e,n){return a[N$f(967)](t,e,n)},PcSYq:function(t,e){return a[N$f(853)](t,e)}};a[n(515)](e[n(1118)],r)&&(e[n(830)][n(665)]((r,s)=>{const a=n;let o=r[a(1068)][e[a(830)][i[a(529)](i[a(766)](s,1),e[a(830)][a(945)])].id];o&&this[a(987)][a(1113)][a(1098)](i[a(701)](r.id,""),t.id,{distance:i[a(559)](getLineLength,t,r),from:r,to:t,min:e,type:o});let c=e[a(830)][i[a(803)](i[a(766)](s,1),e[a(830)][a(945)])][a(1068)][r.id];c&&this[a(987)][a(1113)][a(1098)](t.id,i[a(766)](r.id,""),{distance:i[a(559)](getLineLength,t,r),from:t,to:r,min:e,type:c})}),Object[n(583)](t[n(1068)],e[n(1068)]))};return o[s(733)][s(543)](0,i)[s(665)](t=>{a[s(917)](c,t)}),debug&&this[s(665)][s(958)](o[s(733)][s(783)](t=>Object[s(1087)](o[s(1068)])[s(925)](Object[s(1087)](t[s(1068)])[0])&&Object[s(1087)](o[s(1068)])[s(925)](Object[s(1087)](t[s(1068)])[1]))[s(665)](t=>{const e=s;return{x:t.x,y:t.y,text:t[e(1118)][e(679)](1)}})),t}[B(747)](){const t=B,e={YGMkN:t(1143),rwDDh:function(t,e){return t==e}},n=e[t(1149)][t(1124)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[t(623)][t(818)]=[this[t(771)].id];continue;case"1":if(!this[t(678)])return;continue;case"2":this[t(623)][t(818)][t(945)]&&!this[t(751)][t(805)]&&this[t(950)]();continue;case"3":this[t(623)][t(981)]=this[t(678)][t(1016)];continue;case"4":this[t(960)](this[t(771)],this[t(678)][t(1016)].id,this[t(678)],2,e[t(973)](this[t(678)][t(951)],"1")?10:2);continue}break}}[B(793)](){var t;const e=B,n={bxuJE:function(t,e){return t>e},ONjKO:function(t,e){return t===e},NKArI:function(t,e){return t-e},XcdkX:function(t,e){return t+e},XpdgA:function(t,e){return t===e},BnmyT:function(t,e){return t-e},KsjTB:function(t,e){return t-e},hIxAw:function(t,e){return t===e},iuYEw:function(t,e){return t!==e},IfOTy:function(t,e){return t<e}};let i,r=this[e(678)][e(1016)],s=[...new Set(this[e(751)][e(552)][e(665)](t=>t[e(951)].id))],a=s[e(581)](r.id);n[e(1008)](a,-1)&&(i=n[e(607)](r.id,this[e(1123)].id)?[s[n[e(770)](a,1)],s[a],s[n[e(1009)](a,1)]][e(783)](t=>t):n[e(889)](s[n[e(979)](a,1)],this[e(1123)].id)||n[e(889)](s[n[e(1009)](a,1)],this[e(1123)].id)?[this[e(1123)].id,r.id]:[r.id]);let o=n[e(889)](r.id,this[e(1123)].id),c=Math[e(690)](n[e(501)](this[e(882)][e(514)],3),0);if(n[e(1084)](null==i?void 0:i[e(945)],1))for(;n[e(916)](null==(t=this[e(751)][e(552)][c])?void 0:t[e(951)].id,i[0])&&n[e(775)](c,1e4);)c++;let l=this[e(751)][e(552)][e(543)](c,n[e(1009)](c,8)),u=(null==i?void 0:i[e(945)])?l[e(783)](t=>{const n=e;return i[n(654)](e=>e===t[n(951)].id)||o&&t[n(951)][n(1036)]})[e(665)](t=>t[e(504)]):void 0,h=this[e(987)][e(620)]({point:(new Vector3)[e(821)](this[e(678)]),floor:r,path:u});return{floorData:r,...h,nextIdx:u?n[e(1009)](h[e(514)],c):0}}[B(950)](){const t=B;this[t(751)][t(805)]=this[t(623)]}[(_ad=B(530),_$c=B(727),B(520))](){const t=B,e={HlHTP:function(t,e,n,i){return t(e,n,i)},AMLiu:function(t,e,n,i){return t(e,n,i)}};this[t(530)]=new Sprite(new SpriteMaterial({sizeAttenuation:!1,depthTest:!1})),this[t(727)]=new Sprite(new SpriteMaterial({sizeAttenuation:!1,depthTest:!1,map:texureLoader[t(978)](x$4)})),this[t(530)][t(741)]=this[t(727)][t(741)]=renderOrderConfig[t(712)],this[t(727)][t(1093)][t(555)](.5,-.5),this[t(530)][t(831)][t(665)]=texureLoader[t(978)](C$3,()=>{const n=t;e[n(872)](setSize,this[n(530)],.2,this[n(665)][n(537)])}),this[t(727)][t(831)][t(665)]=texureLoader[t(978)](x$4,()=>{const n=t;e[n(708)](setSize,this[n(727)],.2,this[n(665)][n(537)])}),this[t(530)][t(1093)][t(821)](this[t(727)][t(1093)])}[(__c=B(919),B(579))](t){const e=B,n={eLHaW:function(t,e,n,i){return t(e,n,i)}};let i=new Sprite(new SpriteMaterial({sizeAttenuation:!1,depthTest:!1}));return i[e(741)]=renderOrderConfig[e(712)],i[e(1093)][e(555)](.5,-.5),i[e(565)][e(936)]=t,i[e(942)][e(821)](t[e(1093)])[e(984)](t[e(1103)]||2),i[e(831)][e(665)]=texureLoader[e(978)](o$2,()=>{const t=e;n[t(1015)](setSize,i,.3,this[t(665)][t(537)])}),this[e(919)][e(707)](i),i}[(_Zc=B(500),_Yc=B(855),_Xc=B(700),B(1021))](){const t=B,e={GfcLy:t(710),zralg:t(1096),FNLEs:t(922),IaXFC:function(t,e){return t(e)},dcKIR:function(t,e){return t+e},YbpoR:function(t,e){return t*e},ACzGl:function(t,e){return t>=e},jEtwG:t(1156),Clpgl:t(602),wOZwo:function(t,e){return t>e},nVfdF:t(837),GLTPS:t(848),hjFtS:t(911),JamzS:t(1025)};this[t(665)].on(e[t(878)],n=>{var i,r,s,a,o,c,l;const u=t;console[u(1070)](e[u(1088)],n);let h=null==(i=n[u(995)])?void 0:i[u(565)][u(737)];if(!h){let t=this[u(665)][u(713)][u(827)](n[u(873)],this[u(665)][u(797)][u(684)])[u(654)](t=>t[u(995)][u(517)]===u(1120));h=t?{parent:null==t?void 0:t[u(995)][u(565)][u(936)]}:{parent:(null==(r=this[u(665)][u(751)][u(951)])?void 0:r[u(936)])||this[u(1123)]}}let d={x:115.1590689362627,y:13.020685724382645,floor:(null==(s=null==h?void 0:h[u(981)])?void 0:s.id)||(null==(a=this[u(665)][u(751)][u(951)])?void 0:a[u(936)].id)||this[u(1123)].id,type:(null==h?void 0:h[u(981)][u(498)])?e[u(832)]:e[u(704)],originGps:{lng:110.31339088,lat:25.33182552,accuracy:4.54603910446167,speed:0},lng:115.1590689362627,lat:13.020685724382645,angle:348,time:191};d[u(604)][u(1104)]=e[u(863)](parseInt,e[u(923)](e[u(1013)](Math[u(516)](),20),1)[u(679)](2));let p=this[u(665)][u(801)](n[u(569)]);d[u(1031)]=n[u(569)][u(1031)],d[u(1115)]=n[u(569)][u(1115)],d.x=p.x,d.y=p.y,this[u(751)][u(802)]&&e[u(854)](null==(o=this[u(1053)])?void 0:o[u(945)],5)&&(d[u(702)]=e[u(856)]),location[u(915)][u(925)](e[u(725)])?!this[u(751)][u(802)]&&(this[u(848)][u(850)]={...d,...this[u(665)][u(1148)](n[u(569)][u(1115)],n[u(569)][u(1031)])}):this[u(848)][u(850)]={...d,...this[u(665)][u(1148)](n[u(569)][u(1115)],n[u(569)][u(1031)])},this[u(848)][u(850)][u(951)]=d[u(951)],this[u(1053)]=this[u(1053)]||[],this[u(1053)][u(707)](n),e[u(554)](this[u(1053)][u(945)],5)&&this[u(1053)][u(570)](),null==(c=this[u(848)])||c[u(1119)]((null==h?void 0:h[u(981)][u(1125)])?e[u(590)]:e[u(885)],(null==h?void 0:h[u(981)][u(1125)])?{originGps:{lng:n[u(569)][u(1115)],lat:n[u(569)][u(1031)],alt:0,accuracy:5,speed:e[u(863)](parseInt,e[u(923)](e[u(1013)](Math[u(516)](),1),1)[u(679)](2)),heading:0},current:{lng:n[u(569)][u(1115)],lat:n[u(569)][u(1031)]}}:d),this[u(751)][u(802)]&&(null==(l=this[u(848)])||l[u(1119)](e[u(705)],this[u(848)][u(870)]))})}}function g$1(t){const e=B,n={jqHqT:function(t,e){return t(e)},MRAob:function(t,e){return t>e},CZiNr:function(t,e){return t(e)},sHpRR:function(t,e){return t/e},GqHiz:function(t,e){return t%e},CYBpF:function(t,e){return t>e},ionTk:function(t,e){return t(e)},FTOHh:function(t,e){return t%e},jRinc:function(t,e){return t+e},KsDbQ:function(t,e){return t(e)},LqZEe:function(t,e){return t(e)},WoaLd:function(t,e){return t+e},TSQEv:function(t,e){return t+e},whCuY:function(t,e){return t(e)}};let i=n[e(898)](parseInt,t),r=0,s=0;n[e(1100)](i,60)&&(r=n[e(789)](parseInt,n[e(523)](i,60)),i=n[e(898)](parseInt,n[e(822)](i,60)),n[e(642)](r,60)&&(s=n[e(789)](parseInt,n[e(523)](r,60)),r=n[e(646)](parseInt,n[e(862)](r,60))));let a=n[e(1005)](n[e(1005)]("",n[e(547)](parseInt,i)),"秒");return n[e(642)](r,0)&&(a=n[e(1005)](n[e(1005)](n[e(1005)]("",n[e(1112)](parseInt,r)),"分"),a)),n[e(642)](s,0)&&(a=n[e(1005)](n[e(1085)](n[e(675)]("",n[e(1002)](parseInt,s)),"小时"),a)),a}const e$3=N$e;!function(t,e){const n=N$e,i=t();for(;;)try{if(591037===-parseInt(n(467))/1+-parseInt(n(564))/2+-parseInt(n(571))/3+parseInt(n(654))/4*(-parseInt(n(601))/5)+parseInt(n(527))/6+parseInt(n(611))/7*(parseInt(n(541))/8)+-parseInt(n(560))/9*(-parseInt(n(448))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$e);class AR extends EventDispatcher{constructor(t){const e=e$3;super(),__publicField(this,_ce),__publicField(this,"el",document[e$3(452)](e$3(635))),__publicField(this,_be),__publicField(this,_ae),__publicField(this,_$d),__publicField(this,__d),__publicField(this,_Zd,!1),__publicField(this,_Yd,15),__publicField(this,_Xd,.7),__publicField(this,_Wd,1.2),__publicField(this,_Vd,50),__publicField(this,_Ud),__publicField(this,_Td),__publicField(this,_Sd),__publicField(this,_Rd),__publicField(this,_Qd),__publicField(this,_Pd),__publicField(this,_Od,0),__publicField(this,_Nd),__publicField(this,_Md,1.5),__publicField(this,_Ld,1),__publicField(this,_Kd,new Euler),__publicField(this,_Jd),__publicField(this,_Id),__publicField(this,_Hd,.6),__publicField(this,_Gd,new Vector3(0,1,0)),__publicField(this,_Fd),__publicField(this,_Ed),__publicField(this,_Dd),this[e(447)]=t}[(_ce=e$3(447),_be=e$3(523),_ae=e$3(455),_$d=e$3(469),__d=e$3(485),_Zd=e$3(588),_Yd=e$3(553),_Xd=e$3(491),_Wd=e$3(529),_Vd=e$3(548),_Ud=e$3(473),_Td=e$3(609),_Sd=e$3(633),_Rd=e$3(647),_Qd=e$3(619),_Pd=e$3(477),_Od=e$3(476),e$3(638))](t){const e=e$3,n={SMBCo:function(t,e){return t==e},lySlY:function(t,e){return t%e},TbPvc:function(t,e){return t<e},iTwfN:e(604),ZJOwN:e(457)};(null==t?void 0:t[e(481)])?this[e(507)](t[e(481)]):(window[e(457)]=!0,(n[e(626)](n[e(538)](this[e(476)]++,31),0)||n[e(536)](this[e(476)],10))&&(console[e(453)](n[e(545)],t),console[e(479)](n[e(544)])))}[e$3(494)](){const t=e$3;this[t(647)]||this[t(551)]()}[(_Nd=e$3(658),_Md=e$3(436),_Ld=e$3(449),e$3(458))](){const t=e$3,e={ErxXS:t(555),YbsSu:function(t,e){return t*e},LEUbq:function(t,e){return t*e},HaGEk:function(t,e){return t*e},XorOH:function(t,e){return t*e},aFVBa:function(t,e){return t*e},xPuHq:function(t,e){return t*e}},n=new AmbientLight(e[t(471)],this[t(436)]);this[t(477)][t(521)](n);const i=new DirectionalLight(e[t(471)],e[t(641)](e[t(516)](.5,this[t(436)]),this[t(449)]));i[t(483)][t(556)](100,100,100),this[t(477)][t(521)](i);const r=new DirectionalLight(e[t(471)],e[t(641)](e[t(488)](.4,this[t(436)]),this[t(449)]));r[t(483)][t(556)](-100,100,-100),this[t(477)][t(521)](r);const s=new DirectionalLight(e[t(471)],e[t(653)](e[t(488)](.3,this[t(436)]),this[t(449)]));s[t(483)][t(556)](100,100,-100),this[t(477)][t(521)](s);const a=new DirectionalLight(e[t(471)],e[t(653)](e[t(488)](.2,this[t(436)]),this[t(449)]));a[t(483)][t(556)](-100,100,100),this[t(477)][t(521)](a);const o=new DirectionalLight(e[t(471)],e[t(641)](e[t(433)](.8,this[t(436)]),this[t(449)]));o[t(483)][t(556)](0,-100,0),this[t(477)][t(521)](o);let c=new HemisphereLight(e[t(471)],e[t(471)],e[t(501)](2,this[t(436)]));c[t(525)][t(526)](1,1,1),c[t(648)][t(526)](.95,1,.75),c[t(483)][t(556)](0,0,this[t(548)]),this[t(658)]=c,this[t(477)][t(521)](c)}[e$3(551)](){const t=e$3,e={rUMbq:t(535),ghtAf:t(637),WxGvW:t(505),HagSh:t(451),vIUUv:t(559),kbxyA:function(t,e){return t/e},gDkjR:t(573)};let n=this[t(647)]=new WebGLRenderer({antialias:!0,alpha:!0,precision:e[t(515)],premultipliedAlpha:!1,maxLights:3});n[t(566)][t(513)][t(521)](e[t(650)]),n[t(636)](window[t(517)],window[t(439)]),n[t(486)](devicePixelRatio),n[t(566)][t(472)][t(576)]=e[t(617)],this.el[t(533)](n[t(566)]),this.el[t(472)][t(576)]=e[t(598)],this[t(619)]=new CSS2DRenderer,this[t(619)][t(636)](window[t(517)],window[t(439)]),this[t(619)][t(566)][t(472)][t(576)]=e[t(606)],this.el[t(533)](this[t(619)][t(566)]),(this[t(485)]=new PerspectiveCamera(75,e[t(581)](n[t(566)][t(655)],n[t(566)][t(630)]),.1,100))[t(431)][t(563)](e[t(631)]);let i=this[t(477)]=new Scene;this[t(469)]=new Object3D,i[t(521)](this[t(469)]),this[t(458)]()}[e$3(623)](){const t=e$3,e={fLSTv:t(484),zMxEe:t(623),wAhts:t(438)},n=e[t(498)][t(446)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[t(612)]();continue;case"1":this[t(588)]=!0;continue;case"2":this[t(585)]();continue;case"3":this[t(447)].el[t(454)](this.el);continue;case"4":this[t(496)](e[t(442)]);continue;case"5":this[t(528)]=0;continue;case"6":this[t(569)]();continue;case"7":this[t(447)][t(632)][t(554)]&&this[t(447)][t(632)][t(554)]();continue;case"8":this[t(496)](e[t(651)]);continue;case"9":this[t(447)][t(622)][t(472)][t(576)]=t(463);continue;case"10":this[t(494)]();continue}break}}[e$3(621)](){var t;const e=e$3,n={WxSdm:e(639),oipfq:function(t,e){return t(e)},ulMEL:e(621)},i=n[e(502)][e(446)]("|");let r=0;for(;;){switch(i[r++]){case"0":this[e(447)][e(622)][e(472)][e(576)]=e(459);continue;case"1":n[e(602)](cancelAnimationFrame,this[e(649)]);continue;case"2":null==(t=this.el[e(532)])||t[e(643)](this.el);continue;case"3":this[e(588)]=!1;continue;case"4":this[e(496)](n[e(615)]);continue;case"5":this[e(614)]&&(this[e(614)][e(430)]=null);continue}break}}[(_Kd=e$3(644),_Jd=e$3(520),e$3(507))](t=this[e$3(520)]){var e;const n=e$3,i={qaOAw:function(t,e){return t%e},GGoKp:function(t,e){return t+e},mFNbI:n(597),FnEAH:function(t,e){return t===e},PvhPn:function(t,e){return t/e},iUIfT:function(t,e){return t/e}};if(this[n(588)]&&(this[n(520)]=t,t)){const r=t[n(586)]?MathUtils[n(629)](t[n(586)]):0,s=t[n(441)]?MathUtils[n(629)](t[n(441)]):0;let a=i[n(642)](i[n(582)](-t[n(610)],3600),360);a=MathUtils[n(629)](a),this[n(485)][n(657)][n(466)](this[n(644)][n(556)](r,s,a,i[n(583)])),this[n(485)][n(483)][n(575)](this[n(455)][n(519)][0][n(483)])[n(521)](this[n(455)][n(519)][1][n(483)])[n(482)](.5)[n(580)](this[n(491)]);let o=(null==(e=screen[n(434)])?void 0:e[n(547)])||window[n(434)]||0;i[n(616)](o,90)?this[n(485)][n(657)][n(478)]((new Quaternion)[n(591)](new Vector3(0,0,1),i[n(589)](-Math.PI,2))):(i[n(616)](o,-90)||i[n(616)](o,270))&&this[n(485)][n(657)][n(478)]((new Quaternion)[n(591)](new Vector3(0,0,1),i[n(558)](Math.PI,2))),this[n(485)][n(483)][n(625)](this[n(485)][n(493)](new Vector3)[n(590)]()[n(482)](this[n(529)])),this[n(658)][n(483)][n(575)](this[n(485)][n(483)])[n(580)](this[n(548)])}}[e$3(585)](){const t=e$3,e={huECn:t(537),nqivs:t(570),ILYYF:function(t,e){return t<e}};if(this[t(455)])return;const n=new Shape;n[t(603)]([{x:0,y:.5},{x:-1,y:0},{x:-1,y:-.5},{x:0,y:-0},{x:1,y:-.5},{x:1,y:0}]);const i=new ExtrudeGeometry(n,{steps:1,depth:.1,bevelEnabled:!0,bevelThickness:.001,bevelSize:.1,bevelOffset:0,bevelSegments:1}),r=new Mesh(i,[new MeshPhysicalMaterial({color:e[t(620)],roughness:.5,metalness:.01}),new MeshPhysicalMaterial({color:e[t(512)],roughness:.5,metalness:.01})]);r[t(542)][t(482)](.3),this[t(455)]=new Object3D;for(let s=0;e[t(579)](s,this[t(553)]);s++){let e=r[t(578)]();this[t(455)][t(521)](e)}this[t(469)][t(521)](this[t(455)])}[(_Id=e$3(531),_Hd=e$3(584),_Gd=e$3(462),e$3(646))](t){const e=e$3,n={GBuUt:function(t,e){return t+e},XxaPL:function(t,e){return t*e},OTFhW:function(t,e){return t>e},EjHQu:function(t,e){return t/e}};if(!this[e(588)]||!this[e(447)][e(632)][e(543)][e(464)])return;let i=this[e(455)][e(519)];const r=new Path(t);let s=r[e(634)]();this[e(531)]=r[e(656)](Math[e(618)](n[e(627)](s,this[e(584)])))[e(447)](t=>new Vector3(null==t?void 0:t.x,null==t?void 0:t.y,0)),i[e(447)](t=>t[e(465)]=!1),this[e(531)][e(447)]((t,r)=>{const s=e,a=this[s(531)][n[s(587)](r,1)];let o=i[r];if(o&&(o[s(465)]=!!a,a)){o[s(483)][s(575)](t);let e=a[s(578)]()[s(625)](o[s(483)]),i=e[s(577)](this[s(462)]),r=e[s(557)](this[s(462)]);o[s(431)].z=n[s(561)](n[s(524)](r.z,0)?-1:1,i)}}),i[1][e(465)]&&(this[e(473)]=(new Vector2)[e(575)](i[1][e(483)])[e(625)]((new Vector2)[e(575)](i[0][e(483)]))[e(590)]()),this[e(507)]()}async[(_Fd=e$3(614),_Ed=e$3(514),e$3(612))](){var t;const e=e$3,n={IsYfa:e(614),ZuxiA:e(540),yMyiC:e(640),kKkvY:e(530),wHNMN:e(510),MNtVQ:e(645),TXLOY:e(495),Homjm:e(599),imhyG:e(506),sQyia:e(534),OJjnN:e(605),rLlAp:e(489),iAcbq:e(445),cxrJj:e(552),wrmBz:e(509),NIbYR:e(435),FrsJi:function(t,e){return t-e}};if(this[e(514)])return this[e(614)][e(430)]=this[e(514)],void this[e(614)][e(450)]();if(ua[e(461)]&&(null==(t=null==navigator?void 0:navigator[e(660)])?void 0:t[e(503)])){const t=await navigator[e(660)][e(503)]();this[e(523)]=t[e(500)](t=>t[e(595)]===e(474))}return navigator[e(660)][e(444)]({video:Object[e(508)]({audio:!1,facingMode:{ideal:n[e(443)]},width:{ideal:480},height:{ideal:270}},ua[e(461)]?{deviceId:this[e(523)][n[e(490)](this[e(523)][e(574)],1)][e(539)]}:{})})[e(624)](t=>{const i=e;this[i(514)]=t;let r=document[i(452)](n[i(596)]);r[i(530)]=!0,r[i(472)][i(475)]=n[i(593)],r[i(472)][i(659)]=n[i(593)],r[i(472)][i(594)]=n[i(568)],r[i(472)][i(437)]="-2",r[i(432)](n[i(567)],n[i(549)]),r[i(432)](n[i(440)],n[i(608)]),r[i(432)](n[i(470)],n[i(549)]),r[i(432)](n[i(562)],n[i(549)]),r[i(432)](n[i(565)],n[i(456)]),r[i(432)](n[i(499)],"h5"),r[i(432)](n[i(546)],n[i(549)]),this[i(614)]=r,r[i(550)]=()=>{const t=i;r[t(475)]=r[t(600)],r[t(659)]=r[t(572)],this.el[t(533)](r)},r[i(430)]=t,r[i(530)]=!0,r[i(450)]()})[e(522)](t=>{const i=e;return console[i(453)](n[i(607)],t),this[i(621)](),Promise[i(497)](n[i(468)])})}[(_Dd=e$3(649),e$3(569))](){const t=e$3,e={iiMLf:function(t,e,n){return t(e,n)},UcNzO:t(460),YiOVu:function(t,e){return t(e)},qYtZv:function(t){return t()},Vilic:function(t,e,n){return t(e,n)}};this[t(649)]&&e[t(480)](cancelAnimationFrame,this[t(649)]);let n=e[t(592)](fps,()=>{const n=t;e[n(518)](d$a,this[n(647)],this[n(485)]),this[n(647)][n(613)](this[n(477)],this[n(485)]),this[n(619)][n(613)](this[n(477)],this[n(485)]),this[n(496)](e[n(487)])},40);const i=()=>{const r=t;this[r(649)]=e[r(480)](requestAnimationFrame,i),e[r(628)](n)};e[t(628)](i)}}function N$e(t,e){const n=E$e();return(N$e=function(t,e){return n[t-=430]})(t,e)}function E$e(){const t=["arView","deviceOrientationCB","3|2|5|0|1|4","cover","YbsSu","qaOAw","removeChild","euler","preload","createLine","renderer","groundColor","cancelRAFId","ghtAf","wAhts","updateProjectionMatrix","XorOH","52ebGdKX","clientWidth","getSpacedPoints","quaternion","hemiLight","height","mediaDevices","srcObject","rotation","setAttribute","aFVBa","orientation","environment","lightFactor","zIndex","beforeOpenAR","innerHeight","MNtVQ","gamma","zMxEe","NIbYR","getUserMedia","x5-video-player-fullscreen","split","map","145410aCFDyw","directLightFactor","play","position:absolute;left:0;top:0;width:100%;height:60%;","createElement","log","append","arrowGroup","OJjnN","deviceOrientation_err","buildLights","height:100%;width:100%;position:relative;","update","android","yAxes","height:40%;width:100%;z-index: 2;overflow: hidden;background-color: #d2e4fa;position:absolute;bottom:0;left:0;","isNavi","visible","setFromEuler","331973OeezTM","wrmBz","group","Homjm","ErxXS","style","lineDir","videoinput","width","idx","scene","multiply","trace","YiOVu","value","multiplyScalar","position","8|10|5|1|3|2|0|6|9|4|7","camera","setPixelRatio","UcNzO","HaGEk","x5-video-player-type","FrsJi","cameraZ","oWlze","getWorldDirection","init","auto","emit","reject","fLSTv","rLlAp","filter","xPuHq","WxSdm","enumerateDevices","kfFYL","position:absolute;left:0;top:0;width:100%;height:100%;","playsinline","updateCamera","assign","拒绝获取相机画面","true","aspect","nqivs","classList","videoSteam","rUMbq","LEUbq","innerWidth","iiMLf","children","lastDeviceRotation","add","catch","videoDevices","OTFhW","color","setHSL","2799846lTlSpx","alphaOffset","cameraOffset","muted","pathPoint","parentElement","appendChild","x-webkit-airplay","highp","TbPvc","#eee","lySlY","deviceId","100%","2320952eHkZYg","scale","status","ZJOwN","iTwfN","iAcbq","angle","lightHeight","wHNMN","oncanplay","initTHREE","🚀 获取相机权限失败 err:","arrowNum","arUpdate","#fff","set","cross","iUIfT","position:absolute;left:0;top:0;width:100%;height:100;","621bUFiau","XxaPL","imhyG","reorder","1130234LwxJVn","sQyia","domElement","kKkvY","yMyiC","RAF","#108EE9","485304CNcEbZ","videoHeight","XYZ","length","copy","cssText","angleTo","clone","ILYYF","setZ","kbxyA","GGoKp","mFNbI","arrowSpace","createGeo","beta","GBuUt","enabled","PvhPn","normalize","setFromAxisAngle","Vilic","ZuxiA","objectFit","kind","IsYfa","ZXY","HagSh","webkit-playsinline","videoWidth","377135lMnhVb","oipfq","setFromPoints","deviceOrientation_err:","allow","vIUUv","cxrJj","TXLOY","differentialDirection","alpha","28pUqXIe","initCamera","render","video","ulMEL","FnEAH","WxGvW","floor","css2DRenderer","huECn","closeAR","mapEl","openAR","then","sub","SMBCo","EjHQu","qYtZv","degToRad","clientHeight","gDkjR","navi","angleDifference","getLength","div","setSize"];return(E$e=function(){return t})()}function d$a(t,e){const n=e$3,i={kfFYL:function(t,e){return t!==e},oWlze:function(t,e){return t/e}},r=t[n(566)];(i[n(504)](r[n(475)],r[n(655)])||i[n(504)](r[n(659)],r[n(630)]))&&(e[n(511)]=i[n(492)](r[n(655)],r[n(630)]),e[n(652)](),t[n(636)](r[n(655)],r[n(630)],!1))}var j=N$d;function E$d(){var t=["1086402TIENmZ","XmRzX","HxwHD","rarUL","418934PIbnmC","6475722tVhglO","object","split","isArray","HHFts","无压缩数据","nItvC","LaYbm","sort","number","155001QhZDDv","KIuCm","zHjYt","hasOwnProperty","408ExrTqK","bngGW","IsEGB","log","length","call","AJWmm","EKiPy","3|1|5|2|4|0","prototype","11004408qQHhyv","ZmehX","sqrEu","FJiBL","push","nLCQH","CHIBJ","keys","616jMEaJF","kMcRf","WUgtl","FAWpg","16200iizTJW","tWXUJ","gZNUv","tFqrW","Blycr","5400470axkqLz","concat","DQQuM","ZNprC"];return(E$d=function(){return t})()}!function(t,e){for(var n=N$d,i=t();;)try{if(642663===-parseInt(n(263))/1+parseInt(n(267))/2+-parseInt(n(304))/3*(parseInt(n(300))/4)+-parseInt(n(309))/5+parseInt(n(268))/6+-parseInt(n(278))/7*(-parseInt(n(282))/8)+parseInt(n(292))/9)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$d);var d$9=Object[j(291)][j(281)],J$3=Object[j(299)]||n$1;function x$1(t){var e=j,n={sqrEu:function(t,e){return t===e},HHFts:function(t,e){return t===e},XmRzX:function(t,e){return t!==e},DQQuM:e(277),tWXUJ:function(t,e){return t(e)},bngGW:function(t,e){return t(e)},AJWmm:function(t,e){return t<e},ZNprC:function(t,e){return t(e)},tFqrW:function(t,e){return t/e},CHIBJ:function(t,e){return t-e},WUgtl:function(t,e){return t>e},nItvC:function(t,e){return t(e)},EKiPy:function(t,e){return t+e},FAWpg:function(t,e){return t*e},ZmehX:e(290),zHjYt:function(t,e){return t===e},LaYbm:function(t,e){return t(e)},nLCQH:function(t,e){return t!==e},HxwHD:e(269),rarUL:function(t,e){return t(e)},kMcRf:function(t,e){return t(e)}},i={},r=0;function s(t){var i=e;return n[i(294)](t[i(286)],0)?[]:n[i(272)](t[0],0)||n[i(264)](typeof t[0],n[i(311)])?n[i(305)](a,t):n[i(283)](o,t)}function a(t){for(var i=e,r=t[i(286)],s=[],a=n[i(294)](t[0],0)?1:0;n[i(288)](a,r);a++){var o=t[a],c=n[i(312)](l,o);n[i(283)](a$2,o)&&Array[i(271)](c)?s=s[i(310)](c):s[i(296)](c)}return s}function o(t){var r,s=e,a=i[t[0]],o=a[s(286)],c=n[s(307)](n[s(298)](t[s(286)],1),o);if(n[s(302)](c,1)){r=[];for(var u=0;n[s(288)](u,c);u++){var h={};for(let e,i=0;e=a[i++];)h[e]=n[s(274)](l,t[n[s(289)](n[s(303)](u,o),i)]);r[s(296)](h)}}else{r={};for(let e,i=0;e=a[i++];)r[e]=n[s(312)](l,t[i])}return r}function c(t){for(var s=e,a=n[s(293)][s(270)]("|"),o=0;;){switch(a[o++]){case"0":return c;case"1":if(n[s(280)](u[s(286)],0))return{};continue;case"2":var c={};continue;case"3":var u=n[s(275)](J$3,t)[s(276)]();continue;case"4":for(var h,d=0;h=u[d++];)c[h]=n[s(283)](l,t[h]);continue;case"5":i[++r]=u;continue}break}}function l(t){var i=e;return n[i(297)](typeof t,n[i(265)])||!t?t:Array[i(271)](t)?n[i(266)](s,t):n[i(305)](c,t)}return n[e(301)](l,t)}function a$2(t){var e=j,n={Blycr:function(t,e){return t===e},FJiBL:e(277),KIuCm:function(t,e){return t!==e}};return Array[e(271)](t)&&n[e(308)](typeof t[0],n[e(295)])&&n[e(279)](t[0],0)}function n$1(t){var e,n=j,i=[];for(e in t)d$9[n(287)](t,e)&&i[n(296)](e);return i}function N$d(t,e){var n=E$d();return(N$d=function(t,e){return n[t-=263]})(t,e)}function C$1(t){var e=j,n={gZNUv:function(t,e){return t(e)},IsEGB:e(273)};try{return n[e(306)](x$1,t)}catch(i){return console[e(285)](n[e(284)]),t}}const v=N$c;function N$c(t,e){const n=E$c();return(N$c=function(t,e){return n[t-=229]})(t,e)}function E$c(){const t=["DEG2RAD","_endEvent","ZytgN","GGEXm","BOTTOM","PXJFi","kWIpU","XXJCJ","TEauR","getSecondPointerPosition","mouseButtons","cSvcK","pageX","viewchange","matrix","getAutoRotationAngle","0|1|3|4|2","sphericalDelta","copy","vVcag","2bqVKjh","3|0|1|4|2","UfMub","AxuHB","1|0|3|2|4","CjYKq","tan","fUQpf","dollyIn","jeUOm","add","cIYbj","JpGtD","enableDamping","clampDistance","listenToKeyEvents","vxhXJ","handleTouchMoveRotate","LBJuk","edBkW","reset","handleTouchMoveDollyPan","max","dollyDirection","normalize","releasePointerCapture","pointercancel","qrFRr","origin","Reiba","tLfBE","ArrowLeft","customWheelEvent","zoom0","applyQuaternion","TOUCH_PAN","vNkfa","YUCWw","NuWmM","bhUDw","rotateStart","Kflir","pointerId","setFromMatrixColumn","_touchPrevAngle","nrAqY","8|15|6|12|4|13|10|11|9|1|3|5|2|14|0|7","lookAt","atan2","1|4|2|0|3","wZvmE","keyPanSpeed","GFWAg","mZRQF","AmBpN","dollyStart","handleTouchMoveDollyRotate","handleTouchStartPan","panUpV3","TrNvF","touchAction","removeEventListener","updateMatrixWorld","distanceToSquared","makeSafe","distanceTo","intersectPlane","PUUxz","hSlSB","maxPolarAngle","pointerPositions","updateQuat","LfGsG","enableRotation","position0","interceptControlUp","length","TWO","cVcOd","DUmqN","setFromSpherical","WBhdk","updateZoomParameters","TILT_LIMIT","CCiTU","updateLastQuaternion","subVectors","start","KFjmR","click","onKeyDown","_plane","handleMouseMoveDolly","UEGpI","min","yPRyb","Control","invert","onwjn","LNHZk","bFePN","pIabe","pointerdown","code","XBmnM","touch","onPointerDown","MIDDLE","minDistance","waehW","_startEvent","ltVwq","cJyYF","pointerup","yvUWo","handleTouchStartDollyRotate","zLwop","width","dollyEnd","panDelta","BuaLS","ArrowDown","setFromUnitVectors","clientHeight","updateLastTargetPosition","WlqEa","CrDoZ","removePointer","dollyDelta","updateProjectionMatrix","wQbka","fHsSY","target0","kgWAd","eoLEP","1|2|4|3|0","panLeftV3","gmbcB","setFromVector3","addPointer","ibPiX","rotateLeft","ZKsNV","autoRotateSpeed","yALDw","panLeft","pwuRy","getAzimuthalAngle","key","saveState","minTargetRadius","onMouseWheel","onPointerMove","onKcC","XLiME","3936YRNkjz","JzWGa","TOUCH_ROTATE","_startPointerEvent","TbNDY","splice","ZcPkH","performCursorZoom","LIshJ","spherical","YrFRT","UgiGF","panSpeed","raHAX","rotateUp","trackPointer","yvTKP","deltaY","_ray","handleMouseDownPan","minPolarAngle","UTyPO","yNRpJ","handleMouseWheel","PyVrt","sdVsw","mouse","DOLLY_PAN","KRalS","updateQuatInverse","touches","onPointerUp","clientX","updateOffset","handleMouseMoveRotate","crossVectors","_touchStartAngle","NbrVH","mElCS","ArrowUp","1266296DSyHdN","enablePan","left","pageY","abs","metaKey","DYfVG","ASzdg","yAYxf","GJLoz","handleMouseDownDolly","GCXrK","none","scale","zoomToCursor","handleMouseMovePan","_domElementKeyEvents","ykRmp","maxDistance","handleTouchStartDolly","enableZoom","controlActive","aonND","ONE","LCUHB","onMouseDown","NONE","IefbN","TOUCH_DOLLY_ROTATE","multiplyScalar","panOffset","ArrowRight","dollyOut","zprdG","OQVwY","panOffsetV3","3|5|0|2|6|1|4","rWFko","PFqbV","cursor","end","igxdQ","2513qvGvDh","enablePitch","interceptControlDown","handleTouchStartDollyPan","eBeRw","addScaledVector","PhrBj","getPolarAngle","zoom","OTuhU","XUOEz","DOLLY","bYCFK","autoRotate","transformDirection","state","object","ctrlKey","dABnp","push","SOLtf","height","LVKLU","onMouseMove","handleTouchMoveDolly","KAMUc","minZoom","CXhwX","minAzimuthAngle","VembH","OmBmB","63syIwmL","109944FvoWyC","dampingFactor","dispose","9339990cAPeDk","setFromNormalAndCoplanarPoint","penjq","TOUCH_DOLLY_PAN","cos","BcvMH","fov","1|0|5|2|6|3|4","enabled","UmBkJ","position","maxTargetRadius","panStart","clone","HQzuV","split","GkicT","panUp","YZstX","pointerType","dispatchEvent","button","panEnd","direction","HnLsR","shiftKey","handleKeyDown","handleTouchStartRotate","AAeNg","clampLength","acybY","handleMouseDownRotate","onContextMenu","lGFyN","onTouchMove","keys","NgHVu","keydown","qSqWp","AiiUB","rotateDelta","getDistance","FrapE","jkmzN","wheel","NMFlJ","unproject","sub","zoomSpeed","xterI","pow","xneoG","getBoundingClientRect","35jKErmK","onTouchStart","target","LEFT","qhRKJ","gCUej","sqrt","122078zUBUAm","maxZoom","PWuNU","kBiFw","updateLastPosition","rotateSpeed","pan","_changeEvent","emit","pointers","PAN","fpkvx","domElement","DOLLY_ROTATE","tsIWP","maxAzimuthAngle","RIGHT","zZcou","screenSpacePanning","getZoomScale","handleTouchMovePan","UCXVe","VapzP","Tizkv","keyup","deltaMode","theta","clientY","JNUZN","quaternion","preventDefault","dot","WqvFQ","getPointerPositions","vXZbP","psKcq","saDnX","ROTATE","phi","eieeW","contextmenu","set","pointermove","style","stopListenToKeyEvents","update","ueDSc","QxdIJ","radius","wgtjE","top","ozYzH","802233AEUhak","iLXcU","IzIXb","setPointerCapture","aubBt","JsePD","NbgpA","bsmqW","addEventListener","rotateEnd","399470tdAZMN"];return(E$c=function(){return t})()}!function(t,e){const n=N$c,i=t();for(;;)try{if(153037===-parseInt(n(446))/1+parseInt(n(529))/2*(-parseInt(n(498))/3)+parseInt(n(383))/4*(-parseInt(n(439))/5)+-parseInt(n(269))/6*(parseInt(n(351))/7)+-parseInt(n(309))/8+-parseInt(n(382))/9*(-parseInt(n(508))/10)+parseInt(n(386))/11)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$c);const d$8={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},J$2=1e-6,a$1=2*Math.PI;class OrbitControls extends EventDispatcher{constructor(t,e){var n=(...t)=>(super(...t),__publicField(this,_Ef,{type:v(522)}),__publicField(this,_Df,{type:v(616)}),__publicField(this,_Cf,{type:v(349)}),__publicField(this,_Bf,new Ray),__publicField(this,_Af,Math[v(390)](70*MathUtils[v(509)])),__publicField(this,_zf,new Plane),__publicField(this,_yf,!0),__publicField(this,_xf,new Vector3),__publicField(this,_wf,new Vector3),__publicField(this,_vf,0),__publicField(this,_uf,1/0),__publicField(this,_tf,0),__publicField(this,_sf,1/0),__publicField(this,_rf,0),__publicField(this,_qf,1/0),__publicField(this,_pf,0),__publicField(this,_of,Math.PI),__publicField(this,_nf,-1/0),__publicField(this,_mf,1/0),__publicField(this,_lf,!1),__publicField(this,_kf,.1),__publicField(this,_jf,!0),__publicField(this,_if,1),__publicField(this,_hf,!0),__publicField(this,_gf,!0),__publicField(this,_ff,.5),__publicField(this,_ef,!0),__publicField(this,_df,1),__publicField(this,_cf,!0),__publicField(this,_bf,7),__publicField(this,_af,!1),__publicField(this,_$e,!1),__publicField(this,__e,2),__publicField(this,_Ze,{LEFT:v(560),UP:v(308),RIGHT:v(340),BOTTOM:v(235)}),__publicField(this,_Ye,{LEFT:MOUSE[v(483)],MIDDLE:MOUSE[v(362)],RIGHT:MOUSE[v(456)]}),__publicField(this,_Xe,{ONE:TOUCH[v(483)],TWO:TOUCH[v(296)]}),__publicField(this,_We),__publicField(this,_Ve),__publicField(this,_Ue),__publicField(this,_Te),__publicField(this,_Se),__publicField(this,_Re),__publicField(this,_Qe,d$8[v(335)]),__publicField(this,_Pe,new Spherical),__publicField(this,_Oe,new Spherical),__publicField(this,_Ne,1),__publicField(this,_Me,new Vector3),__publicField(this,_Le,new Vector2),__publicField(this,_Ke,new Vector2),__publicField(this,_Je,new Vector2),__publicField(this,_Ie,new Vector2),__publicField(this,_He,new Vector2),__publicField(this,_Ge,new Vector2),__publicField(this,_Fe,new Vector2),__publicField(this,_Ee,new Vector2),__publicField(this,_De,new Vector2),__publicField(this,_Ce,new Vector3),__publicField(this,_Be,new Vector2),__publicField(this,_Ae,!1),__publicField(this,_ze,[]),__publicField(this,_ye,{}),__publicField(this,_xe,!1),__publicField(this,_we,new Vector3),__publicField(this,_ve),__publicField(this,_ue),__publicField(this,_te,new Vector3),__publicField(this,_se,new Quaternion),__publicField(this,_re,new Vector3),__publicField(this,_qe,new Vector3),__publicField(this,_pe,new Vector3),__publicField(this,_oe,new Vector3),__publicField(this,_ne,0),__publicField(this,_me,0),__publicField(this,_le),__publicField(this,_ke,t=>{const e=v,n={PyVrt:e(533),VembH:function(t,e){return t===e},PXJFi:function(t,e,n){return t(e,n)},LNHZk:e(488),fHsSY:e(642),AiiUB:function(t,e){return t===e},fpkvx:e(634)},i=n[e(293)][e(401)]("|");let r=0;for(;;){switch(i[r++]){case"0":if(n[e(380)](this[e(394)],!1))return;continue;case"1":this[e(272)]=t;continue;case"2":this[e(253)](t);continue;case"3":n[e(380)](this[e(455)][e(605)],0)&&(n[e(514)](setTimeout,()=>{const n=e;this[n(458)][n(501)](t[n(571)])},150),this[e(458)][e(506)](n[e(628)],this[e(266)]),this[e(458)][e(506)](n[e(245)],this[e(300)]));continue;case"4":n[e(425)](t[e(405)],n[e(457)])?this[e(440)](t):this[e(334)](t);continue}break}}),__publicField(this,_je,t=>{const e=v,n={WlqEa:function(t,e){return t===e},GCXrK:e(634)};n[e(239)](this[e(394)],!1)||(n[e(239)](t[e(405)],n[e(320)])?this[e(420)](t):this[e(374)](t))}),__publicField(this,_ie,t=>{const e=v,n={WqvFQ:function(t,e){return t===e},LCUHB:e(488),vXZbP:e(642),vNkfa:function(t,e){return t(e)},raHAX:function(t,e){return t<e},cSvcK:function(t,e){return t-e},yvUWo:function(t,e){return t-e},IefbN:e(618)};this[e(241)](t),n[e(478)](this[e(455)][e(605)],0)&&(this[e(458)][e(554)](t[e(571)]),this[e(458)][e(590)](n[e(333)],this[e(266)]),this[e(458)][e(590)](n[e(480)],this[e(300)])),this[e(406)](this[e(510)]),this[e(366)]=d$8[e(335)];const{x:i,y:r}=n[e(565)](getXY,this[e(272)]),s=n[e(565)](getXY,t);n[e(282)](Math[e(313)](n[e(520)](i,s.x)),3)&&n[e(282)](Math[e(313)](n[e(643)](r,s.y)),3)&&this[e(454)](n[e(336)],t)}),__publicField(this,_he,t=>{const e=v,n={jkmzN:e(530),CCiTU:function(t,e){return t===e},OTuhU:function(t,e){return t===e},VapzP:function(t,e){return t!==e}},i=n[e(429)][e(401)]("|");let r=0;for(;;){switch(i[r++]){case"0":t[e(476)]();continue;case"1":this[e(406)](this[e(639)]);continue;case"2":this[e(406)](this[e(510)]);continue;case"3":if(n[e(613)](this[e(394)],!1)||n[e(360)](this[e(329)],!1)||n[e(468)](this[e(366)],d$8[e(335)]))return;continue;case"4":this[e(292)](this[e(561)](t));continue}break}}),__publicField(this,_ge,t=>{const e=v,n={CjYKq:function(t,e){return t===e},CXhwX:e(625),eoLEP:e(470)};n[e(534)](t[e(262)],n[e(378)])&&(this[e(330)]=!0,document[e(506)](n[e(248)],this[e(604)],{passive:!0,capture:!0}))}),__publicField(this,_fe,t=>{const e=v,n={Tizkv:function(t,e){return t===e},iLXcU:e(625),zZcou:e(470)};n[e(469)](t[e(262)],n[e(499)])&&(this[e(330)]=!1,document[e(590)](n[e(463)],this[e(604)],{passive:!0,capture:!0}))}),__publicField(this,_ee,t=>{const e=v,n={penjq:function(t,e){return t===e}};n[e(388)](this[e(394)],!1)||n[e(388)](this[e(310)],!1)||this[e(412)](t)}),__publicField(this,_de,t=>{const e=v;({BcvMH:function(t,e){return t===e}})[e(391)](this[e(394)],!1)||t[e(476)]()}),this);const i=v,r={bhUDw:i(575),edBkW:i(423),TrNvF:i(555),zprdG:i(486),sdVsw:i(631),PWuNU:i(321),UCXVe:i(430)},s=r[i(568)][i(401)]("|");let a=0;for(;;){switch(s[a++]){case"0":document[i(506)](r[i(548)],this[i(353)],{passive:!0,capture:!0});continue;case"1":this[i(298)]=this[i(600)][i(399)]()[i(626)]();continue;case"2":this[i(458)][i(506)](r[i(588)],this[i(300)]);continue;case"3":this[i(458)][i(506)](r[i(342)],this[i(418)]);continue;case"4":this[i(246)]=this[i(441)][i(399)]();continue;case"5":this[i(458)][i(506)](r[i(294)],this[i(635)]);continue;case"6":this[i(458)]=e;continue;case"7":this[i(491)]();continue;case"8":n();continue;case"9":this[i(600)]=(new Quaternion)[i(236)](t.up,new Vector3(0,1,0));continue;case"10":this[i(562)]=this[i(367)][i(359)];continue;case"11":this[i(325)]=null;continue;case"12":this[i(458)][i(489)][i(589)]=r[i(448)];continue;case"13":this[i(603)]=this[i(367)][i(396)][i(399)]();continue;case"14":this[i(458)][i(506)](r[i(467)],this[i(265)],{passive:!1});continue;case"15":this[i(367)]=t;continue}break}}[(_Ef=v(453),_Df=v(639),_Cf=v(510),_Bf=v(287),_Af=v(612),_zf=v(620),_yf=v(394),_xf=v(441),_wf=v(348),_vf=v(637),_uf=v(327),_tf=v(377),_sf=v(447),_rf=v(264),_qf=v(397),_pf=v(289),_of=v(598),_nf=v(379),_mf=v(461),_lf=v(542),_kf=v(384),_jf=v(329),_if=v(434),_hf=v(352),_gf=v(602),_ff=v(451),_ef=v(310),_df=v(281),_cf=v(464),_bf=v(580),_af=v(323),_$e=v(364),__e=v(257),_Ze=v(421),_Ye=v(519),_Xe=v(299),_We=v(367),_Ve=v(458),_Ue=v(246),_Te=v(603),_Se=v(562),_Re=v(325),_Qe=v(366),_Pe=v(278),_Oe=v(526),_Ne=v(322),_Me=v(339),_Le=v(569),_Ke=v(507),_Je=v(426),_Ie=v(398),_He=v(408),_Ge=v(233),_Fe=v(584),_Ee=v(232),_De=v(242),_Ce=v(552),_Be=v(295),_Ae=v(276),_ze=v(455),_ye=v(599),_xe=v(330),v(358))](){const t=v;return this[t(278)][t(484)]}[v(261)](){const t=v;return this[t(278)][t(472)]}[v(427)](){const t=v;return this[t(367)][t(396)][t(594)](this[t(441)])}[v(544)](t){const e=v,n={DUmqN:e(423)};t[e(506)](n[e(608)],this[e(619)]),this[e(325)]=t}[v(490)](){const t=v,e={WBhdk:t(423)};this[t(325)][t(590)](e[t(610)],this[t(619)]),this[t(325)]=null}[v(263)](){const t=v;this[t(246)][t(527)](this[t(441)]),this[t(603)][t(527)](this[t(367)][t(396)]),this[t(562)]=this[t(367)][t(359)]}[v(549)](){const t=v,e={kWIpU:t(345)}[t(515)][t(401)]("|");let n=0;for(;;){switch(e[n++]){case"0":this[t(367)][t(359)]=this[t(562)];continue;case"1":this[t(491)]();continue;case"2":this[t(367)][t(243)]();continue;case"3":this[t(441)][t(527)](this[t(246)]);continue;case"4":this[t(366)]=d$8[t(335)];continue;case"5":this[t(367)][t(396)][t(527)](this[t(603)]);continue;case"6":this[t(406)](this[t(453)]);continue}break}}[(_we=v(302),_ve=v(600),_ue=v(298),_te=v(450),_se=v(614),_re=v(238),v(491))](t=null){const e=v,n={LVKLU:function(t,e){return t===e},KRalS:function(t,e){return t*e},dABnp:function(t,e){return t(e)},zLwop:function(t,e){return t<e},tLfBE:function(t,e){return t>e},GFWAg:function(t,e){return t<e},saDnX:function(t,e){return t>e},hSlSB:function(t,e){return t<=e},ZytgN:function(t,e){return t>e},kgWAd:function(t,e){return t/e},NMFlJ:function(t,e){return t+e},LIshJ:function(t,e){return t===e},Kflir:function(t,e){return t===e},pwuRy:function(t,e){return t-e},PhrBj:function(t,e){return t-e},GGEXm:function(t,e){return t<e},JzWGa:function(t,e){return t-e},ltVwq:function(t,e){return t>e},FrapE:e(578)},i=this[e(367)][e(396)];this[e(302)][e(527)](i)[e(433)](this[e(441)]),this[e(302)][e(563)](this[e(600)]),this[e(278)][e(252)](this[e(302)]),this[e(364)]&&n[e(373)](this[e(366)],d$8[e(335)])&&this[e(255)](this[e(524)](t)),this[e(542)]?(this[e(278)][e(472)]+=n[e(297)](this[e(526)][e(472)],this[e(384)]),this[e(278)][e(484)]+=n[e(297)](this[e(526)][e(484)],this[e(384)])):(this[e(278)][e(472)]+=this[e(526)][e(472)],this[e(278)][e(484)]+=this[e(526)][e(484)]);let r=this[e(379)],s=this[e(461)];n[e(369)](isFinite,r)&&n[e(369)](isFinite,s)&&(n[e(230)](r,-Math.PI)?r+=a$1:n[e(559)](r,Math.PI)&&(r-=a$1),n[e(581)](s,-Math.PI)?s+=a$1:n[e(482)](s,Math.PI)&&(s-=a$1),n[e(597)](r,s)?this[e(278)][e(472)]=Math[e(551)](r,Math[e(623)](s,this[e(278)][e(472)])):this[e(278)][e(472)]=n[e(511)](this[e(278)][e(472)],n[e(247)](n[e(431)](r,s),2))?Math[e(551)](r,this[e(278)][e(472)]):Math[e(623)](s,this[e(278)][e(472)])),this[e(278)][e(484)]=Math[e(551)](this[e(289)],Math[e(623)](this[e(598)],this[e(278)][e(484)])),this[e(278)][e(593)](),n[e(277)](this[e(542)],!0)?this[e(441)][e(356)](this[e(339)],this[e(384)]):this[e(441)][e(539)](this[e(339)]),this[e(441)][e(433)](this[e(348)]),this[e(441)][e(415)](this[e(264)],this[e(397)]),this[e(441)][e(539)](this[e(348)]),this[e(323)]?this[e(278)][e(494)]=this[e(543)](this[e(278)][e(494)]):this[e(278)][e(494)]=this[e(543)](n[e(297)](this[e(278)][e(494)],this[e(322)])),this[e(302)][e(609)](this[e(278)]),this[e(302)][e(563)](this[e(298)]),i[e(527)](this[e(441)])[e(539)](this[e(302)]),this[e(367)][e(576)](this[e(441)]),n[e(570)](this[e(542)],!0)?(this[e(526)][e(472)]*=n[e(260)](1,this[e(384)]),this[e(526)][e(484)]*=n[e(260)](1,this[e(384)]),this[e(339)][e(338)](n[e(260)](1,this[e(384)]))):(this[e(526)][e(487)](0,0,0),this[e(339)][e(487)](0,0,0));if(this[e(323)]&&this[e(276)]){const t=this[e(302)][e(605)]();let i=this[e(543)](n[e(297)](t,this[e(322)]));const r=n[e(357)](t,i);this[e(367)][e(396)][e(356)](this[e(552)],r),this[e(367)][e(591)](),this[e(464)]?this[e(441)][e(487)](0,0,-1)[e(365)](this[e(367)][e(523)])[e(338)](i)[e(539)](this[e(367)][e(396)]):(this[e(287)][e(557)][e(527)](this[e(367)][e(396)]),this[e(287)][e(409)][e(487)](0,0,-1)[e(365)](this[e(367)][e(523)]),n[e(512)](Math[e(313)](this[e(367)].up[e(477)](this[e(287)][e(409)])),this[e(612)])?this[e(367)][e(576)](this[e(441)]):(this[e(620)][e(387)](this[e(367)].up,this[e(441)]),this[e(287)][e(595)](this[e(620)],this[e(441)])))}if(this[e(322)]=1,this[e(276)]=!1,n[e(482)](this[e(450)][e(592)](this[e(367)][e(396)]),J$2)||n[e(482)](n[e(297)](8,n[e(270)](1,this[e(614)][e(477)](this[e(367)][e(475)]))),J$2)||n[e(640)](this[e(238)][e(592)](this[e(441)]),0)){const t=n[e(428)][e(401)]("|");let i=0;for(;;){switch(t[i++]){case"0":this[e(238)][e(527)](this[e(441)]);continue;case"1":this[e(406)](this[e(453)]);continue;case"2":this[e(614)][e(527)](this[e(367)][e(475)]);continue;case"3":return!0;case"4":this[e(450)][e(527)](this[e(367)][e(396)]);continue}break}}return!1}[v(385)](){const t=v,e={AxuHB:t(393),ueDSc:t(631),ZcPkH:t(486),jeUOm:t(430),bsmqW:t(642),qhRKJ:t(423),wQbka:t(555),yvTKP:t(488)},n=e[t(532)][t(401)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[t(458)][t(590)](e[t(492)],this[t(635)]);continue;case"1":this[t(458)][t(590)](e[t(275)],this[t(418)]);continue;case"2":this[t(458)][t(590)](e[t(538)],this[t(265)]);continue;case"3":this[t(458)][t(590)](e[t(505)],this[t(300)]);continue;case"4":this[t(325)]&&(this[t(325)][t(590)](e[t(443)],this[t(619)]),this[t(325)]=null);continue;case"5":this[t(458)][t(590)](e[t(244)],this[t(300)]);continue;case"6":this[t(458)][t(590)](e[t(285)],this[t(266)]);continue}break}}[v(524)](t){const e=v,n={KFjmR:function(t,e){return t!==e},ozYzH:function(t,e){return t*e},IzIXb:function(t,e){return t*e},bYCFK:function(t,e){return t/e},onKcC:function(t,e){return t*e},OQVwY:function(t,e){return t*e},SOLtf:function(t,e){return t*e}};return n[e(617)](t,null)?n[e(497)](n[e(500)](n[e(363)](n[e(267)](2,Math.PI),60),this[e(257)]),t):n[e(343)](n[e(363)](n[e(363)](n[e(371)](2,Math.PI),60),60),this[e(257)])}[v(465)](t){const e=v,n={igxdQ:function(t,e){return t*e},xterI:function(t,e){return t*e}},i=Math[e(313)](n[e(350)](t,.01));return Math[e(436)](.95,n[e(435)](this[e(434)],i))}[v(255)](t,e=!1){const n=v;(this[n(602)]||!e)&&(this[n(526)][n(472)]-=t)}[v(283)](t,e=!1){const n=v;(this[n(352)]||!e)&&(this[n(526)][n(484)]-=t)}[(_qe=v(250),v(259))](t,e){const n=v;this[n(250)][n(572)](e,0),this[n(250)][n(338)](-t),this[n(339)][n(539)](this[n(250)])}[(_pe=v(587),v(403))](t,e){const n=v;!{UTyPO:function(t,e){return t===e}}[n(290)](this[n(464)],!0)?(this[n(587)][n(572)](e,0),this[n(587)][n(304)](this[n(367)].up,this[n(587)])):this[n(587)][n(572)](e,1),this[n(587)][n(338)](t),this[n(339)][n(539)](this[n(587)])}[(_oe=v(344),v(452))](t,e){const n=v,i={kBiFw:function(t,e){return t/e},tsIWP:function(t,e){return t*e},DYfVG:function(t,e){return t*e},PFqbV:function(t,e){return t*e},NbrVH:function(t,e){return t*e}},r=this[n(458)],s=this[n(367)][n(396)];this[n(344)][n(527)](s)[n(433)](this[n(441)]);let a=this[n(344)][n(605)]();a*=Math[n(535)](i[n(449)](i[n(460)](i[n(449)](this[n(367)][n(392)],2),Math.PI),180)),this[n(259)](i[n(449)](i[n(315)](i[n(460)](2,t),a),r[n(237)]),this[n(367)][n(523)]),this[n(403)](i[n(449)](i[n(347)](i[n(306)](2,e),a),r[n(237)]),this[n(367)][n(523)])}[v(341)](t=.95){this[v(322)]/=t}[v(537)](t=.95){this[v(322)]*=t}[v(611)](t,e){const n=v,i={AAeNg:function(t,e){return t-e},OmBmB:function(t,e){return t*e},mElCS:function(t,e){return t/e},YZstX:function(t,e){return t+e},QxdIJ:function(t,e){return t*e},vxhXJ:function(t,e){return t/e}};if(!this[n(323)])return;this[n(276)]=!0;const r=this[n(458)][n(438)](),s=i[n(414)](t,r[n(311)]),a=i[n(414)](e,r[n(496)]),o=r[n(231)],c=r[n(372)];this[n(295)].x=i[n(414)](i[n(381)](i[n(307)](s,o),2),1),this[n(295)].y=i[n(404)](i[n(493)](-i[n(545)](a,c),2),1),this[n(552)][n(487)](this[n(295)].x,this[n(295)].y,1)[n(432)](this[n(367)])[n(433)](this[n(367)][n(396)])[n(553)]()}[v(543)](t){const e=v;return Math[e(551)](this[e(637)],Math[e(623)](this[e(327)],t))}[v(417)](t){const e=v;this[e(569)][e(487)](t[e(301)],t[e(473)])}[v(319)](t){const e=v;this[e(611)](t[e(301)],t[e(301)]),this[e(584)][e(487)](t[e(301)],t[e(473)])}[v(288)](t){const e=v;this[e(398)][e(487)](t[e(301)],t[e(473)])}[v(303)](t){const e=v,n={rWFko:function(t,e){return t/e},qSqWp:function(t,e){return t*e},wZvmE:function(t,e){return t*e},UEGpI:function(t,e){return t/e}};this[e(507)][e(487)](t[e(301)],t[e(473)]),this[e(426)][e(615)](this[e(507)],this[e(569)])[e(338)](this[e(451)]);const i=this[e(458)];this[e(255)](n[e(346)](n[e(424)](n[e(579)](2,Math.PI),this[e(426)].x),i[e(237)]),!0),this[e(283)](n[e(622)](n[e(579)](n[e(424)](2,Math.PI),this[e(426)].y),i[e(237)]),!0),this[e(569)][e(527)](this[e(507)]),this[e(491)]()}[v(621)](t){const e=v,n={nrAqY:e(249),AmBpN:function(t,e){return t>e},Reiba:function(t,e){return t<e}},i=n[e(574)][e(401)]("|");let r=0;for(;;){switch(i[r++]){case"0":this[e(491)]();continue;case"1":this[e(232)][e(487)](t[e(301)],t[e(473)]);continue;case"2":this[e(242)][e(615)](this[e(232)],this[e(584)]);continue;case"3":this[e(584)][e(527)](this[e(232)]);continue;case"4":n[e(583)](this[e(242)].y,0)?this[e(341)](this[e(465)](this[e(242)].y)):n[e(558)](this[e(242)].y,0)&&this[e(537)](this[e(465)](this[e(242)].y));continue}break}}[v(324)](t){const e=v,n={HQzuV:e(525)}[e(400)][e(401)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[e(408)][e(487)](t[e(301)],t[e(473)]);continue;case"1":this[e(233)][e(615)](this[e(408)],this[e(398)])[e(338)](this[e(281)]);continue;case"2":this[e(491)]();continue;case"3":this[e(452)](this[e(233)].x,this[e(233)].y);continue;case"4":this[e(398)][e(527)](this[e(408)]);continue}break}}[v(292)](t){const e=v,n={NuWmM:function(t,e){return t<e},qrFRr:function(t,e){return t>e}};this[e(611)](t[e(301)],t[e(473)]),n[e(567)](t[e(286)],0)?this[e(537)](this[e(465)](t[e(286)])):n[e(556)](t[e(286)],0)&&this[e(341)](this[e(465)](t[e(286)])),this[e(491)]()}[v(412)](t){const e=v,n={GkicT:function(t,e){return t/e},yALDw:function(t,e){return t*e},HnLsR:function(t,e){return t*e},yNRpJ:function(t,e){return t/e},LBJuk:function(t,e){return t*e},LfGsG:function(t,e){return t*e},xneoG:function(t,e){return t*e}};let i=!1;switch(t[e(632)]){case this[e(421)].UP:t[e(368)]||t[e(314)]||t[e(411)]?this[e(283)](n[e(402)](n[e(258)](n[e(410)](2,Math.PI),this[e(451)]),this[e(458)][e(237)]),!0):this[e(452)](0,this[e(580)]),i=!0;break;case this[e(421)][e(513)]:t[e(368)]||t[e(314)]||t[e(411)]?this[e(283)](n[e(402)](n[e(410)](n[e(258)](-2,Math.PI),this[e(451)]),this[e(458)][e(237)]),!0):this[e(452)](0,-this[e(580)]),i=!0;break;case this[e(421)][e(442)]:t[e(368)]||t[e(314)]||t[e(411)]?this[e(255)](n[e(291)](n[e(547)](n[e(601)](2,Math.PI),this[e(451)]),this[e(458)][e(237)]),!0):this[e(452)](this[e(580)],0),i=!0;break;case this[e(421)][e(462)]:t[e(368)]||t[e(314)]||t[e(411)]?this[e(255)](n[e(291)](n[e(258)](n[e(437)](-2,Math.PI),this[e(451)]),this[e(458)][e(237)]),!0):this[e(452)](-this[e(580)],0),i=!0}i&&(t[e(476)](),this[e(491)]())}[v(413)](t){const e=v,n={YUCWw:function(t,e){return t===e},YrFRT:function(t,e){return t*e},lGFyN:function(t,e){return t+e},yPRyb:function(t,e){return t*e}};if(n[e(566)](this[e(455)][e(605)],1))this[e(569)][e(487)](t[e(521)],t[e(312)]);else{const i=this[e(518)](t),r=n[e(279)](.5,n[e(419)](t[e(521)],i.x)),s=n[e(624)](.5,n[e(419)](t[e(312)],i.y));this[e(569)][e(487)](r,s)}}[v(586)](t){const e=v,n={CrDoZ:function(t,e){return t===e},pIabe:function(t,e){return t*e},PUUxz:function(t,e){return t+e},fUQpf:function(t,e){return t*e}};if(n[e(240)](this[e(455)][e(605)],1))this[e(398)][e(487)](t[e(521)],t[e(312)]);else{const i=this[e(518)](t),r=n[e(630)](.5,n[e(596)](t[e(521)],i.x)),s=n[e(536)](.5,n[e(596)](t[e(312)],i.y));this[e(398)][e(487)](r,s)}}[v(328)](t){const e=v,n={UgiGF:function(t,e){return t-e},waehW:function(t,e){return t+e},wgtjE:function(t,e){return t*e}},i=this[e(518)](t),r=n[e(280)](t[e(521)],i.x),s=n[e(280)](t[e(312)],i.y),a=Math[e(445)](n[e(638)](n[e(495)](r,r),n[e(495)](s,s)));this[e(584)][e(487)](0,a)}[v(354)](t){const e=v;this[e(329)]&&this[e(328)](t),this[e(310)]&&this[e(586)](t)}[v(229)](t){const e=v,n={yAYxf:function(t,e){return t-e},KAMUc:function(t,e){return t-e}};this[e(329)]&&this[e(328)](t);const[i,r]=this[e(479)](),s=n[e(317)](r.x,i.x),a=n[e(376)](r.y,i.y);this[e(305)]=this[e(573)]=Math[e(577)](a,s),this[e(413)](t)}[(_ne=v(305),_me=v(573),v(479))](){const t=v,e=this[t(455)][0],n=this[t(455)][1];return[this[t(599)][e],this[t(599)][n]]}[v(546)](t){const e=v,n={aubBt:function(t,e){return t==e},JpGtD:function(t,e){return t*e},NbgpA:function(t,e){return t+e},onwjn:function(t,e){return t-e},XBmnM:function(t,e){return t-e},XLiME:function(t,e){return t>e},vVcag:function(t,e){return t<e},eBeRw:function(t,e){return t*e},TbNDY:function(t,e){return t/e},ibPiX:function(t,e){return t*e}};if(n[e(502)](this[e(455)][e(605)],1))this[e(507)][e(487)](t[e(521)],t[e(312)]);else{const i=this[e(518)](t),r=n[e(541)](.5,n[e(504)](t[e(521)],i.x)),s=n[e(541)](.5,n[e(504)](t[e(312)],i.y));this[e(507)][e(487)](r,s)}const[i,r]=this[e(479)](),s=n[e(627)](r.x,i.x),a=n[e(633)](r.y,i.y),o=Math[e(577)](a,s);let c=n[e(633)](o,this[e(573)]);n[e(268)](c,Math.PI)?c-=n[e(541)](2,Math.PI):n[e(528)](c,-Math.PI)&&(c+=n[e(541)](2,Math.PI)),this[e(573)]=o,this[e(255)](n[e(355)](-c,this[e(451)]),!0),this[e(426)][e(615)](this[e(507)],this[e(569)])[e(338)](this[e(451)]);const l=this[e(458)];this[e(283)](n[e(273)](n[e(254)](n[e(355)](2,Math.PI),this[e(426)].y),l[e(237)]),!0),this[e(569)][e(527)](this[e(507)])}[v(466)](t){const e=v,n={GJLoz:function(t,e){return t===e},JsePD:function(t,e){return t*e},JNUZN:function(t,e){return t+e}};if(n[e(318)](this[e(455)][e(605)],1))this[e(408)][e(487)](t[e(521)],t[e(312)]);else{const i=this[e(518)](t),r=n[e(503)](.5,n[e(474)](t[e(521)],i.x)),s=n[e(503)](.5,n[e(474)](t[e(312)],i.y));this[e(408)][e(487)](r,s)}this[e(233)][e(615)](this[e(408)],this[e(398)])[e(338)](this[e(281)]),this[e(452)](this[e(233)].x,this[e(233)].y),this[e(398)][e(527)](this[e(408)])}[v(375)](t){const e=v,n={gmbcB:function(t,e){return t-e},bFePN:function(t,e){return t-e},eieeW:function(t,e){return t+e},ZKsNV:function(t,e){return t*e},XXJCJ:function(t,e){return t*e},NgHVu:function(t,e){return t/e},cJyYF:function(t,e){return t+e}},i=this[e(518)](t),r=n[e(251)](t[e(521)],i.x),s=n[e(629)](t[e(312)],i.y),a=Math[e(445)](n[e(485)](n[e(256)](r,r),n[e(516)](s,s)));this[e(232)][e(487)](0,a),this[e(242)][e(487)](0,Math[e(436)](n[e(422)](this[e(232)].y,this[e(584)].y),this[e(434)])),this[e(341)](this[e(242)].y),this[e(584)][e(527)](this[e(232)]);const o=n[e(256)](n[e(641)](t[e(521)],i.x),.5),c=n[e(256)](n[e(485)](t[e(312)],i.y),.5);this[e(611)](o,c)}[v(550)](t){const e=v;this[e(329)]&&this[e(375)](t),this[e(310)]&&this[e(466)](t)}[v(585)](t){const e=v;this[e(329)]&&this[e(375)](t),this[e(546)](t)}[(_le=v(272),_ke=v(635),_je=v(266),_ie=v(300),v(334))](t){const e=v,n={psKcq:function(t,e){return t===e},TEauR:function(t,e){return t===e},UfMub:function(t,e){return t===e},aonND:function(t,e){return t!==e}};let i;switch(t[e(407)]){case 0:i=this[e(519)][e(442)];break;case 1:i=this[e(519)][e(636)];break;case 2:i=this[e(519)][e(462)];break;default:i=-1}switch(i){case MOUSE[e(362)]:if(n[e(481)](this[e(329)],!1))return;this[e(319)](t),this[e(366)]=d$8[e(362)];break;case MOUSE[e(483)]:if(t[e(368)]||t[e(314)]||t[e(411)]){if(n[e(517)](this[e(310)],!1))return;this[e(288)](t),this[e(366)]=d$8[e(456)]}else this[e(417)](t),this[e(366)]=d$8[e(483)];break;case MOUSE[e(456)]:if(t[e(368)]||t[e(314)]||t[e(411)])this[e(417)](t),this[e(366)]=d$8[e(483)];else{if(n[e(531)](this[e(310)],!1))return;this[e(288)](t),this[e(366)]=d$8[e(456)]}break;default:this[e(366)]=d$8[e(335)]}n[e(331)](this[e(366)],d$8[e(335)])&&this[e(406)](this[e(639)])}[v(374)](t){const e=v,n={ASzdg:function(t,e){return t===e}};switch(this[e(366)]){case d$8[e(483)]:this[e(303)](t);break;case d$8[e(362)]:if(n[e(316)](this[e(329)],!1))return;this[e(621)](t);break;case d$8[e(456)]:if(n[e(316)](this[e(310)],!1))return;this[e(324)](t)}}[(_he=v(265),v(561))](t){const e=v,n=t[e(471)],i={clientX:t[e(301)],clientY:t[e(473)],deltaY:t[e(286)]};switch(n){case 1:i[e(286)]*=16;break;case 2:i[e(286)]*=100}return t[e(368)]&&!this[e(330)]&&(i[e(286)]*=10),i}[(_ge=v(353),_fe=v(604),_ee=v(619),v(440))](t){const e=v,n={acybY:function(t,e){return t===e},BuaLS:function(t,e){return t===e},XUOEz:function(t,e){return t!==e}};switch(this[e(284)](t),this[e(455)][e(605)]){case 1:switch(this[e(299)][e(332)]){case TOUCH[e(483)]:this[e(413)](t),this[e(366)]=d$8[e(271)];break;case TOUCH[e(456)]:if(n[e(416)](this[e(310)],!1))return;this[e(586)](t),this[e(366)]=d$8[e(564)];break;default:this[e(366)]=d$8[e(335)]}break;case 2:switch(this[e(299)][e(606)]){case TOUCH[e(296)]:if(n[e(416)](this[e(329)],!1)&&n[e(234)](this[e(310)],!1))return;this[e(354)](t),this[e(366)]=d$8[e(389)];break;case TOUCH[e(459)]:if(n[e(234)](this[e(329)],!1))return;this[e(229)](t),this[e(366)]=d$8[e(337)];break;default:this[e(366)]=d$8[e(335)]}break;default:this[e(366)]=d$8[e(335)]}n[e(361)](this[e(366)],d$8[e(335)])&&this[e(406)](this[e(639)])}[v(420)](t){const e=v,n={gCUej:function(t,e){return t===e},UmBkJ:function(t,e){return t===e}};switch(this[e(284)](t),this[e(366)]){case d$8[e(271)]:this[e(546)](t),this[e(491)]();break;case d$8[e(564)]:if(n[e(444)](this[e(310)],!1))return;this[e(466)](t),this[e(491)]();break;case d$8[e(389)]:if(n[e(395)](this[e(329)],!1)&&n[e(395)](this[e(310)],!1))return;this[e(550)](t),this[e(491)]();break;case d$8[e(337)]:if(n[e(444)](this[e(329)],!1))return;this[e(585)](t),this[e(491)]();break;default:this[e(366)]=d$8[e(335)]}}[(_de=v(418),v(253))](t){const e=v;this[e(455)][e(370)](t[e(571)])}[v(241)](t){const e=v,n={cIYbj:function(t,e){return t<e},ykRmp:function(t,e){return t==e}};delete this[e(599)][t[e(571)]];for(let i=0;n[e(540)](i,this[e(455)][e(605)]);i++)if(n[e(326)](this[e(455)][i],t[e(571)]))return void this[e(455)][e(274)](i,1)}[v(284)](t){const e=v;let n=this[e(599)][t[e(571)]];({mZRQF:function(t,e){return t===e}})[e(582)](n,void 0)&&(n=new Vector2,this[e(599)][t[e(571)]]=n),n[e(487)](t[e(521)],t[e(312)])}[v(518)](t){const e=v,n={cVcOd:function(t,e){return t===e}}[e(607)](t[e(571)],this[e(455)][0])?this[e(455)][1]:this[e(455)][0];return this[e(599)][n]}}var u$2=N$b;function N$b(t,e){var n=E$b();return(N$b=function(t,e){return n[t-=214]})(t,e)}!function(t,e){for(var n=N$b,i=t();;)try{if(168894===parseInt(n(243))/1+-parseInt(n(226))/2+-parseInt(n(239))/3*(-parseInt(n(220))/4)+parseInt(n(230))/5*(-parseInt(n(242))/6)+parseInt(n(241))/7*(parseInt(n(217))/8)+parseInt(n(237))/9+-parseInt(n(236))/10*(parseInt(n(227))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$b);let d$7=class extends OrbitControls{constructor(t,e){super(t,e),__publicField(this,_If,!1),__publicField(this,_Hf,{LEFT:MOUSE[u$2(240)],MIDDLE:MOUSE[u$2(215)],RIGHT:MOUSE[u$2(231)]}),__publicField(this,_Gf,{ONE:TOUCH[u$2(240)],TWO:TOUCH[u$2(224)]}),__publicField(this,_Ff,new Vector3)}[(_If=u$2(228),_Hf=u$2(234),_Gf=u$2(229),_Ff=u$2(222),u$2(235))](t){for(var e=u$2,n={aaswc:e(219),ixCLV:function(t,e){return t(e)}},i=n[e(218)][e(232)]("|"),r=0;;){switch(i[r++]){case"0":this[e(233)][e(223)][e(214)](this[e(222)]);continue;case"1":case"5":this[e(221)].z=0;continue;case"2":this[e(221)][e(225)](t);continue;case"3":this[e(222)][e(244)](this[e(221)]);continue;case"4":n[e(216)](isNaN,t.y);continue;case"6":this[e(238)]();continue;case"7":this[e(222)].z=0;continue;case"8":this[e(222)][e(225)](t);continue}break}}};function E$b(){var t=["touches","93525nPNClt","ROTATE","split","object","mouseButtons","setPosition","150adsKpp","2678040HRWWcZ","update","199281xaTadk","PAN","45955taDqSb","84PLCchn","76467QRCBlp","sub","add","DOLLY","ixCLV","176UtAApq","aaswc","4|8|7|5|3|0|2|1|6","8wVnLem","target","posv3Temp","position","DOLLY_ROTATE","copy","121684TBMssf","117117MwxECC","screenSpacePanning"];return(E$b=function(){return t})()}var O=N$a;function E$a(){var t=["plane","object","zoomIn","zvMzh","setPixelRatio","log","WyvVV","cmJUQ","FoKdk","minPolarAngle","vyfgM","setPosition","intersectObjectsBy2D","132210Rhglkl","mrmFL","getElementById","Uyuto","3|0|2|4|1|5","DnIhL","onUpdate","sizeChanged","multiplyScalar","plUaD","getPolarAngle","IXSya","efOHh","maxPitch","rvQnl","highp","klJCD","iiqjh","position:absolute;top:0;left:0;width:100%;height:100%;","lngLatToCoord","renderer","sphericalToDatums","None","uQTVr","getResolution","devicePixelRatio","NNAhu","BLpJw","clone","MbtHs","bhAjL","_maxResolution","getMinResolution","container2","_resolution","orientationchange","cctri","OdXOZ","start","subVectors","_lastRenderTime","FwseA","ZUGtu","rotationEnable","scene","phi","getStatus","center","getRotation","add","initRender","608823TYHHoD","rotateLeft","HuFNo","_maxZoom","gBOhY","position","resolve","IDjEr","uwazD","_minResolution","minPitch","render","avcnz","4|1|3|2|0|6|5","clientWidth","maxDistance","MBoAK","fCMjI","max","div","11yoizir","renderNow","dNzOX","giuoX","12vUxcUE","container","BXgxq","pOwMv","OzEQg","relative","_resolution2CameraDistance","container3","setPitch","calResolution","Oarpw","string","LOG2E","abs","point","rjbMS","autoClear","width","updateMatrixWorld","getCenter","dollyOut","zoomOut","observe","Yckpc","fov","getAzimuthalAngle","njZfc","TOHDl","ADiLw","promise","_resizeTimer","oiUCP","57947570ZtiLgf","enableRotation","Linear","now","ilJBX","TWiig","rotateUp","_zoomTween","shadow","setRotation","SJVAZ","domElement","EAmTG","setResolution","oVIVE","zoomEnable","dot","_thetaXYPlane","RAF","DKYxP","xEziM","length","style","clientHeight","resize","theta","dragEnable","createElement","cssText","pitchEnable","vFOV","coordsToLngLat","AWJMs","_minZoom","2|5|4|1|3|0","setSize","jMknU","getZoom","faFgj","updateProjectionMatrix","0|3|4|5|2|1","setMinResolution","minDistance","getWorldDirection","ZoomLevel","spherical","addEventListener","disconnect","4844966dyZlva","minZoom","set","setStatus","kVDYx","2|0|1|7|3|8|9|5|6|4","RyHCC","enablePitch","PbXbn","sPvTt","setContainer","getPitch","maxZoom","lat","Pxsqv","ZnDVC","2349868sgJxfv","emit","zoom","toFixed","stVrh","updateSize","pGivd","enabled","vFovHeight","sqrt","onComplete","RLEbV","cOnSw","dispose","wmiFO","meJMa","3lfRHoN","enablePan","wemeL","interact","arohd","xVmmh","xRXOI","easing","domObserver","jzCtr","rotation","setZooms","removeEventListener","appendChild","MYeUo","JaDwX","getMaxResolution","sub","thetaXYPlane","map","2189350wtYcTw","checkNormalResize","copy","qWhxy","fzGrb","update","datumsToSpherical","YwZmt","setViewSize","VNsJs","YhbGN","viewchange","tan","zoomToPosition","height","enableZoom","split","userData","css2dRenderer","BUMtA","aspect","controls","2043538omImGi","minResolution","setZoom","728PqwpPC","icTiV","maxResolution","resolution2Level","shadowMap","BdlDw","OAKMK","number","target","atan2","pitch","stop","eetiB","LRtWW","DcfAy","maxPolarAngle","pow","OxgUc","XzHeT","GKYMZ","setMaxResolution","fxLdF","_zoomTweenNum","min","isArray","pDHOC","getFit","resolution","setCenter","wXoyq","oIUvu","nkxyH","oyEMU","ZxcLL","setZoomAndCenter","lng","KaKQG","HmPVi","camera","bknQe","click","SzRdI","byheh","zMMPM","iaoLr","AxRmS","xSoax","XvZjH","ykZqJ","gSWZS","clear","QaEKJ","Athpz","dollyIn","6|9|8|4|1|0|2|7|5|10|3","kqleg","qGmWW","BMPNz","level2Resolution"];return(E$a=function(){return t})()}function N$a(t,e){var n=E$a();return(N$a=function(t,e){return n[t-=227]})(t,e)}!function(t,e){for(var n=N$a,i=t();;)try{if(672030===-parseInt(n(483))/1+-parseInt(n(357))/2+parseInt(n(315))/3*(-parseInt(n(299))/4)+-parseInt(n(335))/5*(parseInt(n(507))/6)+-parseInt(n(283))/7+-parseInt(n(360))/8*(parseInt(n(432))/9)+parseInt(n(235))/10*(parseInt(n(503))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$a);let J$1=(_Kf=class{static[(_Jf=O(279),O(418))](t){var e=O,n={EAmTG:function(t,e){return t/e},gBOhY:function(t,e){return t-e}};return n[e(247)](this[e(279)],Math[e(376)](2,n[e(487)](t,1)))}static[O(363)](t){var e=O,n={avcnz:function(t,e){return t/e},OdXOZ:function(t,e){return t+e},QaEKJ:function(t,e){return t*e}},i=n[e(495)](this[e(279)],t);return n[e(469)](i=n[e(411)](Math[e(424)](i),Math[e(519)]),1)}static[O(516)](t,e){var n=O,i=t[n(278)](new Vector3),r=new Vector3;return r[n(471)](e,t[n(488)]),{bhAjL:function(t,e){return t*e}}[n(462)](t[n(352)][n(307)],i[n(251)](r))}},__publicField(_Kf,_Jf,78271.52),_Kf);class MapControl extends EventDispatcher{constructor(t){var e=O,n={RyHCC:e(346),WyvVV:e(400),fxLdF:e(502),BXgxq:e(512),OAKMK:e(450),TOHDl:e(259),jzCtr:e(467)};super(),__publicField(this,_eg),__publicField(this,_dg),__publicField(this,_cg),__publicField(this,_bg),__publicField(this,_ag),__publicField(this,_$f),__publicField(this,__f),__publicField(this,_Zf),__publicField(this,_Yf),__publicField(this,_Xf,0),__publicField(this,_Wf,30),__publicField(this,_Vf),__publicField(this,_Uf),__publicField(this,_Tf),__publicField(this,_Sf,new PerspectiveCamera(36.86989764584402,1,.01,1e10)),__publicField(this,_Rf),__publicField(this,_Qf,0),__publicField(this,_Pf),__publicField(this,_Of,()=>{var t=O,e={qGmWW:function(t,e){return t(e)},SJVAZ:function(t,e,n){return t(e,n)}};e[t(416)](clearTimeout,this[t(233)]),this[t(233)]=e[t(245)](setTimeout,()=>{var e=t;this[e(304)](),this[e(334)][e(259)]()},50)}),__publicField(this,_Nf),__publicField(this,_Mf),__publicField(this,_Lf,!0),this[e(465)]=document[e(262)](n[e(381)]),this[e(514)]=document[e(262)](n[e(381)]),this[e(465)][e(257)][e(488)]=n[e(509)],this[e(334)]=t,this[e(482)](),this[e(465)][e(328)](this[e(452)][e(246)]),this[e(465)][e(328)](this[e(514)]),this[e(514)][e(257)][e(263)]=this[e(465)][e(257)][e(263)]=this[e(452)][e(246)][e(257)][e(263)]=n[e(366)],this[e(356)]=new d$7(this[e(398)],this[e(514)]),this[e(356)].on(n[e(289)],t=>{var i=e;this[i(300)](n[i(289)],{center:this[i(479)],zoom:this[i(301)],rotation:this[i(325)],pitch:this[i(370)]})}),window[e(281)](n[e(230)],this[e(259)]),window[e(281)](n[e(324)],this[e(259)]),this[e(356)].on(n[e(425)],t=>{var i=e;let r=this[i(334)][i(318)][i(431)](t,[this[i(334)][i(318)][i(419)]])[0];r[i(521)].z=0;let s=this[i(266)](r[i(521)][i(460)]()[i(481)](this[i(334)][i(479)]));this[i(300)](n[i(425)],{lnglat:s,originEvent:t,pos:[r[i(521)].x,r[i(521)].y],point:r[i(521)]})})}[(_eg=O(508),_dg=O(466),_cg=O(465),_bg=O(514),_ag=O(323),_$f=O(524),__f=O(349),_Zf=O(492),_Yf=O(463),_Xf=O(486),_Wf=O(268),_Vf=O(452),_Uf=O(353),_Tf=O(356),_Sf=O(398),_Rf=O(265),_Qf=O(472),_Pf=O(334),O(482))](){for(var t=O,e={HuFNo:t(288),pGivd:function(t,e){return t<=e},stVrh:t(447),faFgj:function(t,e){return t*e},ilJBX:function(t,e){return t/e},AxRmS:function(t,e){return t*e}},n=e[t(485)][t(351)]("|"),i=0;;){switch(n[i++]){case"0":this[t(353)]=new CSS2DRenderer({element:this[t(514)]});continue;case"1":this[t(452)][t(364)][t(306)]=this[t(334)][t(243)];continue;case"2":this[t(452)]=new WebGLRenderer({antialias:e[t(305)](devicePixelRatio,1),precision:e[t(303)],alpha:!0,sortObjects:!1,outputEncoding:SRGBColorSpace,stencil:!1,logarithmicDepthBuffer:!0});continue;case"3":this[t(398)][t(488)][t(285)](0,.001,1);continue;case"4":this[t(452)][t(423)](window[t(457)]);continue;case"5":this[t(265)]=e[t(273)](2,Math[t(347)](e[t(239)](e[t(405)](this[t(398)][t(227)],Math.PI),360)));continue;case"6":this[t(398)][t(352)][t(307)]=e[t(239)](this[t(265)],1024);continue;case"7":this[t(452)][t(523)]=!1;continue;case"8":this[t(398)][t(352)][t(368)]=new Vector3;continue;case"9":this[t(398)][t(525)]();continue}break}}[(_Of=O(259),O(266))](t,e){var n=O,i={Athpz:function(t,e){return t===e},xRXOI:n(420),klJCD:function(t,e){return t in e}};return Array[n(384)](t)?(e=t[1],t=t[0]):i[n(412)](typeof t,i[n(321)])&&i[n(448)]("x",t)&&(e=t.y,t=t.x),UnitsUtils[n(453)](+t,+e)}[O(451)](t,e){var n=O,i={meJMa:function(t,e){return t===e},bknQe:n(420),plUaD:function(t,e){return t in e},DKYxP:n(395)};return Array[n(384)](t)?(e=t[1],t=t[0]):i[n(314)](typeof t,i[n(399)])&&i[n(441)](i[n(254)],t)&&(e=t[n(296)],t=t[n(395)]),UnitsUtils[n(341)](+t,+e)}[O(312)](){var t=O,e={byheh:function(t,e){return t(e)},ZnDVC:t(259),Oarpw:t(467)};this[t(356)][t(312)](),e[t(402)](clearTimeout,this[t(336)]),window[t(327)](e[t(298)],this[t(259)]),window[t(327)](e[t(517)],this[t(259)]),this[t(323)][t(282)](),this[t(323)]=null}[O(293)](t){for(var e=O,n={MbtHs:e(436),uwazD:function(t,e){return t===e},ADiLw:e(518)},i=n[e(461)][e(351)]("|"),r=0;;){switch(i[r++]){case"0":if(!this[e(508)])return;continue;case"1":this[e(508)][e(328)](this[e(465)]);continue;case"2":this[e(323)]=new ResizeObserver(this[e(259)]);continue;case"3":n[e(491)](typeof t,n[e(231)])?this[e(508)]=document[e(434)](t):this[e(508)]=t;continue;case"4":this[e(323)][e(529)](this[e(508)]);continue;case"5":this[e(343)](this[e(508)][e(497)],this[e(508)][e(258)]);continue}break}}[O(478)](){var t=O;return{pitchEnable:this[t(264)],zoomEnable:this[t(250)]}}[O(286)](t){for(const e in t)this[e]=t[e]}[O(294)](){var t=O;return{JaDwX:function(t,e){return t*e}}[t(330)](this[t(356)][t(280)][t(477)],RAD2DEG)}[O(515)](t,e){var n=O,i={HmPVi:function(t,e){return t*e},jMknU:function(t,e){return t-e},LRtWW:function(t){return t()},MYeUo:function(t,e){return t-e},BUMtA:function(t,e){return t!==e},wXoyq:function(t,e){return t*e},SzRdI:function(t,e){return t/e}};let r=i[n(373)](getPromise);t*=DEG2RAD;let s=this[n(356)][n(442)](),a=i[n(329)](s,t);if(e=i[n(354)](e,void 0)?e:i[n(389)](i[n(401)](Math[n(520)](a),i[n(401)](Math.PI,4)),300)){let t=0;new Tween({a:0}).to({a:1},e)[n(322)](Easing[n(237)][n(454)])[n(438)](e=>{var r=n;let s=i[r(397)](i[r(271)](e.a,t),a);this[r(356)][r(241)](s),this[r(356)][r(340)](),t=e.a})[n(309)](()=>{r[n(489)](this)})[n(470)]()}else this[n(356)][n(241)](a),this[n(356)][n(340)]();return r[n(232)]}[O(388)](t,e=300){var n=O;let i={qWhxy:function(t){return t()}}[n(338)](getPromise),r=this[n(451)](t)[n(332)](this[n(334)][n(479)]);var s=r.x,a=r.y,o=new Vector3(s,a,0);return e?new Tween(this[n(356)][n(368)][n(460)]()).to(o,e)[n(322)](Easing[n(237)][n(454)])[n(438)](t=>{var e=n;this[e(356)][e(430)](t)})[n(309)](()=>{i[n(489)](this)})[n(470)]():(this[n(356)][n(430)](o),i[n(489)](this)),i[n(232)]}[O(526)](){var t=O;return this[t(266)](this[t(356)][t(368)][t(460)]()[t(481)](this[t(334)][t(479)]))}[O(348)](t,e=this[O(301)]+1,n=2e3){var i=O,r={xSoax:function(t,e){return t+e},cmJUQ:function(t,e){return t*e},VNsJs:function(t,e){return t-e},DcfAy:function(t,e){return t+e},ykZqJ:function(t,e){return t*e},zMMPM:function(t,e){return t-e},oVIVE:function(t,e){return t*e},ZxcLL:function(t){return t()},iaoLr:function(t,e){return t in e},fCMjI:function(t,e){return t==e}};let s=r[i(393)](getPromise);var a,o;if(r[i(404)]("x",t)?(a=t.x,o=t.y):(a=t[0],o=t[1]),r[i(500)](n,0))this[i(301)]=e,this[i(479)]=[a,o],s[i(489)](this);else{var c=this[i(301)],l=this[i(479)][0],u=this[i(479)][1];new Tween({a:0}).to({a:1},n)[i(438)]((t,n)=>{var s=i;this[s(301)]=r[s(406)](r[s(426)](r[s(344)](e,c),n),c),l=r[s(374)](r[s(408)](r[s(403)](a,l),n),l),u=r[s(406)](r[s(249)](r[s(403)](o,u),n),u),this[s(479)]=[l,u]})[i(309)](t=>{s[i(489)](this)})[i(470)]()}return s[i(232)]}[O(386)](t){var e=O,n={YwZmt:function(t,e){return t/e},gSWZS:function(t,e){return t+e},giuoX:function(t,e){return t/e},IDjEr:function(t,e){return t-e},nkxyH:function(t,e){return t/e},YhbGN:function(t,e){return t/e},IXSya:function(t,e){return t*e}};let i=n[e(342)](n[e(409)](t[2],t[0]),2),r=n[e(506)](n[e(409)](t[3],t[1]),2),s=n[e(490)](t[2],t[0]),a=n[e(490)](t[3],t[1]),o=Math[e(383)](this[e(524)],this[e(349)]);var c=n[e(391)](s,n[e(345)](n[e(443)](2,o),3)),l=n[e(391)](a,n[e(506)](n[e(443)](2,o),3));c=Math[e(501)](c,l);var u=J$1[e(363)](c);return i+=this[e(334)][e(479)].x,r+=this[e(334)][e(479)].y,{zoom:u,position:new Vector3(i,r,0),lnglat:this[e(266)](i,r)}}[O(394)](t,e,n){var i=O,r={dNzOX:function(t,e){return t===e},BMPNz:i(367)};return this[i(348)](e,t,r[i(505)](typeof n,r[i(417)])?n:0)}[O(343)](t,e){var n=O,i={sPvTt:function(t,e){return t==e},Pxsqv:function(t,e){return t/e},XzHeT:function(t,e){return t/e},eetiB:n(439)};if(i[n(292)](t,0)||i[n(292)](e,0))return-1;this[n(524)]=t,this[n(349)]=e,this[n(398)][n(352)][n(307)]=i[n(297)](this[n(265)],this[n(349)]),this[n(398)][n(355)]=i[n(378)](this[n(524)],this[n(349)]),this[n(398)][n(274)](),this[n(452)][n(270)](this[n(524)],this[n(349)]),this[n(353)][n(270)](this[n(524)],this[n(349)]),this[n(276)](this[n(492)]),this[n(380)](this[n(463)]),this[n(248)](this[n(466)]),this[n(300)](i[n(372)])}[O(456)](){return this[O(387)]}[O(248)](t){this[O(387)]=t}[O(513)](t){for(var e=O,n={Uyuto:e(414),kVDYx:function(t,e){return t/e},uQTVr:function(t,e){return t-e},vyfgM:function(t,e){return t-e}},i=n[e(435)][e(351)]("|"),r=0;;){switch(i[r++]){case"0":var s=c[e(251)](d);continue;case"1":var a=c[e(251)](l);continue;case"2":var o=(new Vector3)[e(471)](l,d);continue;case"3":return p[e(332)](o),p[e(256)]();case"4":var c=(new Vector3)[e(471)](l,d);continue;case"5":o[e(440)](u);continue;case"6":var l=new Vector3;continue;case"7":var u=n[e(287)](n[e(455)](s,n[e(429)](a,h)),o[e(251)](c));continue;case"8":var h=n[e(287)](t,this[e(398)][e(352)][e(307)]);continue;case"9":var d=new Vector3(0,-.001,1);continue;case"10":var p=d[e(460)]();continue}break}}[O(380)](t){var e=O,n={XvZjH:function(t,e){return t!=e},KaKQG:function(t,e){return t(e)}};if(n[e(407)](void 0,t)&&!n[e(396)](isNaN,t)&&(this[e(463)]=t,this[e(356)]&&this[e(398)][e(352)][e(307)])){var i=this[e(513)](this[e(463)]);this[e(356)][e(498)]=i}}[O(276)](t){var e=O,n={PbXbn:function(t,e){return t!=e},pOwMv:function(t,e){return t(e)}};if(n[e(291)](void 0,t)&&!n[e(510)](isNaN,t)&&(this[e(492)]=t,this[e(356)]&&this[e(398)][e(352)][e(307)])){var i=this[e(513)](this[e(492)]);this[e(356)][e(277)]=i}}[O(331)](){return this[O(463)]}[O(464)](){return this[O(492)]}[O(421)](){var t=O;this[t(356)][t(413)](),this[t(356)][t(340)]()}[O(528)](){var t=O;this[t(356)][t(527)](),this[t(356)][t(340)]()}[O(480)](){var t=O;return{BdlDw:function(t,e){return t*e}}[t(365)](this[t(356)][t(280)][t(260)],RAD2DEG)}[O(244)](t,e=300){var n=O,i={zvMzh:function(t,e){return t*e},wemeL:function(t,e){return t-e},FwseA:function(t,e){return t*e},wmiFO:function(t){return t()},oiUCP:function(t,e){return t%e},DnIhL:function(t,e){return t*e},icTiV:function(t,e){return t>e},NNAhu:function(t,e){return t*e},kqleg:function(t,e){return t<e},cctri:function(t,e){return t/e},MBoAK:function(t,e){return t/e}};t=i[n(473)](t,DEG2RAD);let r=i[n(313)](getPromise);var s=this[n(356)][n(228)](),a=i[n(234)](t,i[n(437)](2,Math.PI)),o=i[n(317)](a,s);if(o%=i[n(437)](2,Math.PI),e){i[n(361)](o,Math.PI)&&(o-=i[n(458)](2,Math.PI)),i[n(415)](o,-Math.PI)&&(o+=i[n(437)](2,Math.PI)),e=i[n(437)](i[n(468)](Math[n(520)](o),i[n(499)](Math.PI,4)),500);let t=0;new Tween({a:0}).to({a:1},e)[n(322)](Easing[n(237)][n(454)])[n(438)](e=>{var r=n;let s=i[r(422)](i[r(317)](e.a,t),-o);this[r(356)][r(484)](s),this[r(356)][r(340)](),t=e.a})[n(309)](()=>{r[n(489)](this)})[n(470)]()}else this[n(356)][n(484)](-o),this[n(356)][n(340)](),r[n(489)](this);return r[n(232)]}[(_Nf=O(242),_Mf=O(382),O(359))](t,e=300){var n,i=O,r={xEziM:function(t){return t()},BLpJw:function(t,e){return t===e}};let s=r[i(255)](getPromise);if(e){if(r[i(459)](this[i(382)],t))return;null==(n=this[i(242)])||n[i(371)](),this[i(382)]=t,this[i(242)]=new Tween(this)[i(322)](Easing[i(237)][i(454)]).to({zoom:t},e)[i(309)](()=>{var t=i;s[t(489)](this),this[t(382)]=-1})[i(470)]()}else this[i(301)]=t,s[i(489)](this);return s[i(232)]}[O(326)](t){var e=O;this[e(295)]=t[1],this[e(284)]=t[0]}[O(272)](){return this[O(301)]}[O(304)](){var t=O,e={mrmFL:function(t,e){return t!==e},rvQnl:function(t,e){return t!==e},fzGrb:function(t,e){return t(e)},xVmmh:function(t,e,n){return t(e,n)}};this[t(508)]&&(e[t(433)](this[t(508)][t(497)],0)&&e[t(446)](this[t(508)][t(258)],0)?(e[t(339)](clearTimeout,this[t(336)]),this[t(343)](this[t(508)][t(497)],this[t(508)][t(258)])):this[t(336)]=e[t(320)](setTimeout,()=>{this[t(304)]()},20))}[O(470)](){this[O(253)]()}[(_Lf=O(504),O(253))](){var t=O,e={iiqjh:function(t,e){return t(e)},GKYMZ:t(269)};if(e[t(449)](requestAnimationFrame,()=>{this[t(253)]()}),this[t(504)])for(var n=e[t(379)][t(351)]("|"),i=0;;){switch(n[i++]){case"0":this[t(472)]=Date[t(238)]();continue;case"1":this[t(334)][t(494)](this[t(398)]);continue;case"2":x$e[t(340)]();continue;case"3":this[t(353)][t(494)](this[t(334)][t(476)],this[t(398)]);continue;case"4":this[t(452)][t(410)]();continue;case"5":this[t(356)][t(340)]();continue}break}}get[O(479)](){return this[O(526)]()}set[O(479)](t){this[O(388)](t,0)}set[O(387)](t){var e=O,n={OzEQg:function(t,e){return t!=e},FoKdk:function(t,e){return t(e)},rjbMS:e(496),RLEbV:function(t,e){return t/e},efOHh:function(t,e){return t-e},Yckpc:function(t,e){return t-e}};if(t&&n[e(511)](void 0,t)&&!n[e(427)](isNaN,t)&&(t=Math[e(501)](this[e(492)],Math[e(383)](t,this[e(463)])),this[e(466)]=t,this[e(356)]&&this[e(398)][e(352)][e(307)]))for(var i=n[e(522)][e(351)]("|"),r=0;;){switch(i[r++]){case"0":var s=(new Vector3)[e(471)](this[e(356)][e(368)],this[e(398)][e(488)]);continue;case"1":var a=this[e(398)][e(278)](new Vector3);continue;case"2":var o=a[e(251)](this[e(398)][e(488)]);continue;case"3":var c=a[e(251)](this[e(356)][e(368)]);continue;case"4":var l=n[e(310)](this[e(466)],this[e(398)][e(352)][e(307)]);continue;case"5":s[e(440)](u),this[e(398)][e(488)][e(332)](s),this[e(398)][e(525)](!0),this[e(356)][e(340)]();continue;case"6":var u=n[e(310)](n[e(444)](o,n[e(530)](c,l)),s[e(251)](a));continue}break}}get[O(387)](){var t=O,e=J$1[t(516)](this[t(398)],this[t(356)][t(368)]);return this[t(466)]=e,this[t(466)]}set[O(362)](t){this[O(380)](t)}get[O(362)](){return this[O(463)]}set[O(358)](t){this[O(276)](t)}get[O(358)](){return this[O(492)]}set[O(325)](t){this[O(244)](t,0)}get[O(325)](){return this[O(480)]()}set[O(301)](t){var e=O;this[e(248)](J$1[e(418)](t))}get[O(301)](){var t=O;return+J$1[t(363)](this[t(387)])[t(302)](2)}set[O(295)](t){var e=O;this[e(486)]=t;var n=J$1[e(418)](t);this[e(276)](n)}get[O(295)](){var t=O;return{oyEMU:function(t,e){return t==e}}[t(392)](void 0,this[t(486)])&&(this[t(486)]=21),this[t(486)]}set[O(284)](t){var e=O;this[e(268)]=t;var n=J$1[e(418)](t);this[e(380)](n)}get[O(284)](){var t=O;return{oIUvu:function(t,e){return t==e}}[t(390)](void 0,this[t(268)])&&(this[t(268)]=1),this[t(268)]}set[O(333)](t){for(var e=O,n={AWJMs:e(275),pDHOC:function(t,e){return t-e},ZUGtu:function(t,e){return t+e},arohd:function(t,e){return t*e}},i=n[e(267)][e(351)]("|"),r=0;;){switch(i[r++]){case"0":this[e(252)]=t;continue;case"1":this[e(356)][e(340)]();continue;case"2":this[e(356)][e(241)](n[e(385)](a,t));continue;case"3":var s=new Vector3;continue;case"4":s[e(337)](this[e(398)][e(488)])[e(332)](this[e(356)][e(368)]);continue;case"5":var a=Math[e(369)](Math[e(308)](n[e(474)](n[e(319)](s.x,s.x),n[e(319)](s.y,s.y))),s.z);continue}break}}get[O(333)](){return this[O(252)]}set[O(370)](t){this[O(515)](t)}get[O(370)](){return this[O(294)]()}set[O(493)](t){var e=O;this[e(356)][e(428)]={njZfc:function(t,e){return t*e}}[e(229)](t,DEG2RAD)}get[O(493)](){var t=O;return{OxgUc:function(t,e){return t*e}}[t(377)](this[t(356)][t(428)],RAD2DEG)}set[O(445)](t){var e=O;this[e(356)][e(375)]={TWiig:function(t,e){return t*e}}[e(240)](t,DEG2RAD)}get[O(445)](){var t=O;return{cOnSw:function(t,e){return t*e}}[t(311)](this[t(356)][t(375)],RAD2DEG)}set[O(264)](t){var e=O;this[e(356)][e(290)]=t}get[O(264)](){var t=O;return this[t(356)][t(290)]}set[O(261)](t){var e=O;this[e(356)][e(316)]=t}get[O(261)](){var t=O;return this[t(356)][t(316)]}set[O(250)](t){var e=O;this[e(356)][e(350)]=t}get[O(250)](){var t=O;return this[t(356)][t(350)]}set[O(475)](t){var e=O;this[e(356)][e(236)]=t}get[O(475)](){var t=O;return this[t(356)][t(236)]}}const E8=N$9;function N$9(t,e){const n=E$9();return(N$9=function(t,e){return n[t-=153]})(t,e)}!function(t,e){const n=N$9,i=t();for(;;)try{if(401967===parseInt(n(189))/1*(parseInt(n(221))/2)+-parseInt(n(156))/3+parseInt(n(161))/4*(parseInt(n(192))/5)+parseInt(n(154))/6*(-parseInt(n(227))/7)+-parseInt(n(220))/8*(-parseInt(n(178))/9)+-parseInt(n(194))/10*(-parseInt(n(155))/11)+-parseInt(n(173))/12*(parseInt(n(163))/13))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$9);class MapNodeGeometry extends BufferGeometry{constructor(t=1,e=1,n=1,i=1,r=!1,s=10){const a=N$9,o={TOOJI:a(210),cvSxr:a(219)};super();const c=[],l=[],u=[],h=[];MapNodeGeometry[a(197)](t,e,n,i,c,l,u,h),r&&MapNodeGeometry[a(191)](t,e,n,i,s,c,l,u,h),this[a(185)](c),this[a(222)](o[a(214)],new Float32BufferAttribute(l,3)),this[a(222)](o[a(206)],new Float32BufferAttribute(u,3)),this[a(222)]("uv",new Float32BufferAttribute(h,2))}static[E8(197)](t=1,e=1,n=1,i=1,r,s,a,o){const c=E8,l={eZNVn:function(t,e){return t/e},ijDOF:function(t,e){return t+e},ILFwz:function(t,e){return t+e},kNQJr:function(t,e){return t/e},mreox:function(t,e){return t<e},CyiyF:function(t,e){return t-e},BiELu:function(t,e){return t*e},aKmws:function(t,e){return t<e},MsSDZ:function(t,e){return t-e},NTCor:function(t,e){return t-e},SojEI:function(t,e){return t/e},OSsUe:function(t,e){return t+e},bPWIC:function(t,e){return t+e},tvulf:function(t,e){return t+e},QSKaJ:function(t,e){return t*e},fuBis:function(t,e){return t+e},YvhSq:function(t,e){return t+e},mfpNm:function(t,e){return t*e}},u=l[c(225)](t,2),h=l[c(225)](e,2),d=l[c(199)](n,1),p=l[c(158)](i,1),f=l[c(216)](t,n),m=l[c(225)](e,i);for(let g=0;l[c(187)](g,p);g++){const t=l[c(164)](l[c(190)](g,m),h);for(let e=0;l[c(174)](e,d);e++){const r=l[c(176)](l[c(190)](e,f),u);s[c(204)](r,0,t),a[c(204)](0,1,0),o[c(204)](l[c(225)](e,n),l[c(215)](1,l[c(226)](g,i)))}}for(let g=0;l[c(174)](g,i);g++)for(let t=0;l[c(187)](t,n);t++){const e=l[c(211)](t,l[c(190)](d,g)),n=l[c(211)](t,l[c(190)](d,l[c(224)](g,1))),i=l[c(153)](l[c(158)](t,1),l[c(200)](d,l[c(153)](g,1))),s=l[c(160)](l[c(168)](t,1),l[c(171)](d,g));r[c(204)](e,n,s,n,i,s)}}static[E8(191)](t=1,e=1,n=1,i=1,r,s,a,o,c){const l=E8,u={gkNsn:function(t,e){return t/e},JtEry:function(t,e){return t+e},IuoFu:function(t,e){return t+e},ntOct:function(t,e){return t/e},MXwOh:function(t,e){return t/e},ztane:function(t,e){return t/e},BMwaU:function(t,e){return t<e},UqhLA:function(t,e){return t-e},VCaUX:function(t,e){return t*e},XOoqo:function(t,e){return t/e},qUGbj:function(t,e){return t<e},YOsrX:function(t,e){return t+e},xNyeM:function(t,e){return t/e},WzCWr:function(t,e){return t-e},SXixj:function(t,e){return t*e},oRbZs:function(t,e){return t/e},tQFhB:function(t,e){return t-e},SZrRV:function(t,e){return t+e},mawaO:function(t,e){return t+e},cPfrs:function(t,e){return t+e},htskZ:function(t,e){return t/e},JrMkd:function(t,e){return t<e},lYUKk:function(t,e){return t/e},eeGvv:function(t,e){return t<e},xYMew:function(t,e){return t*e},tySjf:function(t,e){return t+e},aOAHL:function(t,e){return t+e},QPJHf:function(t,e){return t+e},NNbuN:function(t,e){return t/e},QkFew:function(t,e){return t-e},EsbHK:function(t,e){return t*e},dxacl:function(t,e){return t<e},xbAtU:function(t,e){return t+e},HYfzs:function(t,e){return t+e}},h=u[l(217)](t,2),d=u[l(217)](e,2),p=u[l(196)](n,1),f=u[l(186)](i,1),m=u[l(195)](t,n),g=u[l(182)](e,i);let A=u[l(162)](a[l(170)],3);for(let v=0;u[l(165)](v,p);v++){const t=u[l(208)](u[l(198)](v,m),h),e=-d;a[l(204)](t,-r,e),o[l(204)](0,1,0),c[l(204)](u[l(212)](v,n),1)}for(let v=0;u[l(179)](v,n);v++){const t=v,e=u[l(201)](v,1),n=u[l(186)](v,A),i=u[l(196)](u[l(196)](v,A),1);s[l(204)](e,n,t,e,i,n)}A=u[l(180)](a[l(170)],3);for(let v=0;u[l(179)](v,p);v++){const t=u[l(188)](u[l(198)](v,m),h),e=u[l(208)](u[l(157)](i,g),d);a[l(204)](t,-r,e),o[l(204)](0,1,0),c[l(204)](u[l(172)](v,n),0)}let y=u[l(209)](u[l(208)](u[l(198)](p,f),n),1);for(let v=0;u[l(179)](v,n);v++){const t=u[l(207)](y,v),e=u[l(207)](u[l(223)](y,v),1),n=u[l(223)](v,A),i=u[l(196)](u[l(184)](v,A),1);s[l(204)](t,n,e,n,i,e)}A=u[l(177)](a[l(170)],3);for(let v=0;u[l(202)](v,f);v++){const t=u[l(188)](u[l(198)](v,g),d),e=-h;a[l(204)](e,-r,t),o[l(204)](0,1,0),c[l(204)](0,u[l(188)](1,u[l(181)](v,i)))}for(let v=0;u[l(205)](v,i);v++){const t=u[l(167)](v,f),e=u[l(198)](u[l(203)](v,1),f),n=u[l(159)](v,A),i=u[l(193)](u[l(207)](v,A),1);s[l(204)](t,n,e,n,i,e)}A=u[l(183)](a[l(170)],3);for(let v=0;u[l(165)](v,f);v++){const t=u[l(169)](u[l(167)](v,g),d),e=u[l(208)](u[l(213)](n,m),h);a[l(204)](e,-r,t),o[l(204)](0,1,0),c[l(204)](1,u[l(208)](1,u[l(182)](v,i)))}for(let v=0;u[l(166)](v,i);v++){const t=u[l(203)](u[l(157)](v,f),i),e=u[l(175)](u[l(157)](u[l(159)](v,1),f),i),n=u[l(218)](v,A),r=u[l(159)](u[l(203)](v,A),1);s[l(204)](e,n,t,e,r,n)}}}function E$9(){const t=["UqhLA","tQFhB","position","OSsUe","XOoqo","EsbHK","TOOJI","NTCor","kNQJr","gkNsn","HYfzs","normal","544UCfOMd","8FkVepW","setAttribute","mawaO","bPWIC","eZNVn","SojEI","7kWktKm","tvulf","3300678SIiEID","154JiEOWT","1153707oFrUCe","SXixj","ILFwz","aOAHL","fuBis","3904uBPoOF","ztane","1762865FjrjAo","CyiyF","BMwaU","dxacl","xYMew","YvhSq","QkFew","length","mfpNm","oRbZs","12hGiISf","aKmws","xbAtU","MsSDZ","htskZ","61776rkrcfE","qUGbj","xNyeM","lYUKk","MXwOh","NNbuN","cPfrs","setIndex","IuoFu","mreox","WzCWr","58792kXqNuy","BiELu","buildSkirt","90DzBDVd","QPJHf","537690hXwnmN","ntOct","JtEry","buildPlane","VCaUX","ijDOF","QSKaJ","YOsrX","JrMkd","tySjf","push","eeGvv","cvSxr","SZrRV"];return(E$9=function(){return t})()}const U$1=N$8;function E$8(){const t=["255013jnUYTL","jBMah","bnrGf","matrixAutoUpdate","MytgG","length","XSobD","maxZoom","833830jIfAMO","dispose","updateMatrixWorld","level","scale","split","fillStyle","7994oMYAYP","rSsmm","generateMipmaps","dAkMw","fillRect","subdivided","dRsSJ","YkoNz","height","IUuLo","fetchTile","nodesLoaded","onBeforeCompile","6fFQrEn","width","disposed","minFilter","visible","renderOrder","_dispose","defaultTexture","ZZsPR","2608ckuySh","pbmkx","magFilter","22SQKcFs","_onBeforeCompile","set","position","childrenCache","minZoom","initialize","parentNode","children","LAvYe","11|5|3|2|4|0|8|1|9|10|7|6","888IDGNMG","179604ewNCTR","623655ENFnUe","huTwk","getimg Failed","needsUpdate","mapView","undefined","map","isMesh","QKjDP","MVtAV","childrens","AdTyw","ahDZD","Pjpac","EnVYi","jvjMv","#fff","material","subdivide","canvas","OEHoR","createChildNodes","geometry","warn","simplify","createElement","copy","add","format","1442370fsbzRW","AyMUg","updateMatrix","getContext","SiVja","ieqie","loadData","5530XLsymZ"];return(E$8=function(){return t})()}function N$8(t,e){const n=E$8();return(N$8=function(t,e){return n[t-=500]})(t,e)}function d$6(t=U$1(581),e=1,n=1){const i=U$1,r={bnrGf:function(t,e,n){return t(e,n)}}[i(514)](createOffscreenCanvas,e,n),s=r[i(507)]("2d");s[i(526)]=t,s[i(531)](0,0,e,n);const a=new Texture(r);return a[i(503)]=RGBAFormat,a[i(551)]=LinearFilter,a[i(543)]=LinearFilter,a[i(529)]=!1,a[i(568)]=!0,a}function createOffscreenCanvas(t,e){const n=U$1,i={dAkMw:function(t,e){return t!==e},dRsSJ:n(570),AdTyw:n(584)};if(i[n(530)](typeof OffscreenCanvas,i[n(533)]))return new OffscreenCanvas(t,e);{let r=document[n(500)](i[n(576)]);return r[n(541)]=t,r[n(535)]=e,r}}!function(t,e){const n=N$8,i=t();for(;;)try{if(197835===parseInt(n(512))/1+-parseInt(n(564))/2*(parseInt(n(540))/3)+parseInt(n(563))/4*(-parseInt(n(511))/5)+-parseInt(n(504))/6+parseInt(n(527))/7*(parseInt(n(549))/8)+parseInt(n(565))/9+parseInt(n(520))/10*(parseInt(n(552))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$8);const _MapPlaneNode=class t extends Mesh{constructor(e,n,i=0,r=0,s=0){var a=(...t)=>(super(...t),__publicField(this,_ng),__publicField(this,_mg),__publicField(this,_lg),__publicField(this,"x"),__publicField(this,"y"),__publicField(this,_kg,!1),__publicField(this,_jg,!1),__publicField(this,_ig,0),__publicField(this,_hg),this);const o=U$1,c={Pjpac:o(562)}[o(578)][o(525)]("|");let l=0;for(;;){switch(c[l++]){case"0":this[o(542)]=!1;continue;case"1":this.x=r;continue;case"2":this[o(559)]=e;continue;case"3":this[o(569)]=n;continue;case"4":this[o(545)]=-999;continue;case"5":this[o(582)][o(539)]=n[o(553)];continue;case"6":this[o(558)]();continue;case"7":this[o(544)]=!1;continue;case"8":this[o(523)]=i;continue;case"9":this.y=s;continue;case"10":this[o(515)]=!1;continue;case"11":a(t[o(587)],new MeshBasicMaterial({depthTest:!1,depthWrite:!1}));continue}break}}async[(_og=U$1(547),_ng=U$1(569),_mg=U$1(559),_lg=U$1(523),_kg=U$1(532),_jg=U$1(542),_ig=U$1(538),_hg=U$1(556),_gg=U$1(575),_fg=U$1(587),U$1(558))](){const e=U$1,n={EnVYi:function(t,e){return t<=e},ieqie:function(t,e){return t!==e},OEHoR:function(t,e){return t===e}};n[e(579)](this[e(523)],this[e(569)][e(523)])&&await this[e(510)](),this[e(542)]?this[e(546)]():(n[e(509)](this[e(559)],null)&&(this[e(559)][e(538)]++,n[e(585)](this[e(559)][e(538)],t[e(575)])&&(this[e(559)][e(572)]=!1)),this[e(544)]=!0)}[U$1(583)](){const t=U$1,e={rSsmm:function(t,e){return t>e},SiVja:function(t,e){return t>e},jvjMv:function(t,e){return t+e}},n=this[t(569)][t(519)];e[t(528)](this[t(560)][t(517)],0)||e[t(508)](e[t(580)](this[t(523)],1),n)||this[t(532)]||(this[t(586)](),this[t(532)]=!0)}[U$1(589)](){const t=U$1,e={MVtAV:function(t,e){return t<e},AyMUg:function(t,e){return t-e},XSobD:function(t,e){return t<e}},n=this[t(569)][t(557)];if(!e[t(574)](e[t(505)](this[t(523)],1),n)&&this[t(532)]){for(let n=0;e[t(518)](n,this[t(560)][t(517)]);n++)this[t(560)][n][t(546)]();this[t(532)]=!1,this[t(572)]=!0,this[t(560)]=[],this[t(538)]=0}}async[U$1(510)](){const e=U$1,n={pbmkx:function(t,e){return t<e},IUuLo:function(t,e){return t>e},YkoNz:e(567)};if(n[e(550)](this[e(523)],this[e(569)][e(557)])||n[e(536)](this[e(523)],this[e(569)][e(519)]))return this[e(582)][e(571)]=t[e(547)],void(this[e(582)][e(568)]=!0);try{const t=await this[e(569)][e(537)](this[e(523)],this.x,this.y);if(this[e(542)])return;const n=new Texture(t);n[e(529)]=!1,n[e(503)]=RGBAFormat,n[e(551)]=LinearFilter,n[e(543)]=LinearFilter,n[e(568)]=!0,this[e(582)][e(571)]=n}catch(i){if(this[e(542)])return;console[e(588)](n[e(534)],this),this[e(582)][e(571)]=t[e(547)]}this[e(582)][e(568)]=!0}[U$1(546)](){const t=U$1,e={ZZsPR:function(t,e){return t!==e}};this[t(542)]=!0,super[t(521)]();try{this[t(582)][t(521)](),this[t(582)][t(571)]&&e[t(548)](this[t(582)][t(571)],MapNode[t(547)])&&this[t(582)][t(571)][t(521)]()}catch(n){}try{this[t(587)][t(521)]()}catch(i){}}[U$1(586)](){const e=U$1,n={LAvYe:function(t,e){return t+e},ahDZD:function(t,e){return t*e},jBMah:function(t,e){return t*e},QKjDP:function(t,e){return t+e},huTwk:function(t,e){return t+e},MytgG:function(t,e){return t+e}},i=n[e(561)](this[e(523)],1),r=n[e(577)](this.x,2),s=n[e(513)](this.y,2);let a=new Vector3(.5,1,.5),o=new t(this,this[e(569)],i,r,s);o[e(524)][e(501)](a),o[e(555)][e(554)](-.25,0,-.25),this[e(502)](o),o[e(506)](),o[e(522)](!0),o=new t(this,this[e(569)],i,n[e(573)](r,1),s),o[e(524)][e(501)](a),o[e(555)][e(554)](.25,0,-.25),this[e(502)](o),o[e(506)](),o[e(522)](!0),o=new t(this,this[e(569)],i,r,n[e(566)](s,1)),o[e(524)][e(501)](a),o[e(555)][e(554)](-.25,0,.25),this[e(502)](o),o[e(506)](),o[e(522)](!0),o=new t(this,this[e(569)],i,n[e(561)](r,1),n[e(516)](s,1)),o[e(524)][e(501)](a),o[e(555)][e(554)](.25,0,.25),this[e(502)](o),o[e(506)](),o[e(522)](!0)}};__publicField(_MapPlaneNode,_og,d$6()),__publicField(_MapPlaneNode,_gg,4),__publicField(_MapPlaneNode,_fg,new MapNodeGeometry(1,1,1,1,!1));let MapPlaneNode=_MapPlaneNode;const y$1=N$7;function E$7(){const t=["tan","Atmzk","init","add","4VLbKid","target","getContext","OglOa","tnbHi","#include <map_fragment>\n","getImg","IaOna","_onBeforeCompile","#include <map_fragment>","fragmentShader","1|0|2|4|5|3","renderOrder","xNIUf","removeTile","handleColorReplace","yfNTX","237970nIoUJh","eoXPh","minZoom","SXERk","onload","fillRect","replace","29514vnIzIW","LgOUT","zIndex","dispose","img","now","ncGTh","30febkrp","#fff","pbQFQ","iPeMe","\n if (distance(diffuseColor.rgb, vec3(","onViewChange","controls","wgDVd","max","onerror","#A9EC88","drawImage","dMJvG","round","rotateX","reverse","iNQBa","lZzKe","traverse","sub","crossOrigin","radius","jLFZw","mapData","intersectsBox","createElement","iqUlz","WgqAE","tKMSd","lVAwY","amap","bszRw","ygata",")) < 0.075) {\n diffuseColor = vec4(","tilePois","cache","483PfxGLj","toString","tiles","push","553113hyzlcR","box","root","jfTew","tAoRn","jkPKD","vNGvY","CgIth","isBaseColor","OTRwh","load","KFxGV","pMCAZ","all","54829OyRpqW","26211QgHBMF","indexOf","#EDF5FC","floor","UhJuA","getZoom","yaTXf","idx","split","SJqsB","#AED3FF","defaultImg","eBUXI","EARTH_PERIMETER","zgWuT","sourceColor","intersectNode","switchBaseColor","join","fillStyle","getDistance","min","#FCF9F2","src","level","fov","map","KNyDx","length","tilecolorReplace","copy","remove","viewchange","cRlAv","camera","center","yyevQ","nuTjr","AfFiY","zouYB","simplify","addTile","6072TjaNva","setFromObject","dGsnm","kdeOG","set","aspect","kfsJc",", diffuseColor.a);\n }\n ","updateSphere","splice","KWMOj","subdivide","245KwmqzQ","rHRrt","function","sphere","maxZoom","size","targetColor","getTileUrl","lgYLd","fetchTile","VsfgD","sort","FQitX","GQJvb","myhUI","Anonymous","7772930EuLrCu","position","OyTmT","scale","KuIFL","#8DABFF","options","rDTSq","Npwpb","3|1|5|4|6|0|2","filter","#D0E9A8","cowlR","degToRad"];return(E$7=function(){return t})()}function N$7(t,e){const n=E$7();return(N$7=function(t,e){return n[t-=321]})(t,e)}function d$5(t,e,n){const i=N$7,r={jLFZw:function(t,e){return t|e},CgIth:function(t,e){return t&e},LgOUT:function(t,e){return t<<e},iqUlz:function(t,e){return t-e},iPeMe:function(t,e){return t/e},wgDVd:function(t,e){return t<<e},Npwpb:function(t,e){return t|e},tnbHi:function(t,e){return t&e},OglOa:function(t,e){return t&e}};var s,a;return[n,r[i(331)](r[i(356)](t,s=r[i(477)](r[i(335)](r[i(477)](1,s=Math[i(367)](r[i(486)](n,2))),1),a=r[i(335)](n,s))),r[i(356)](e,a=r[i(335)](r[i(490)](1,a),1))),r[i(442)](r[i(456)](e,s),r[i(455)](t,a))]}!function(t,e){const n=N$7,i=t();for(;;)try{if(260706===parseInt(n(363))/1+-parseInt(n(469))/2+parseInt(n(364))/3*(-parseInt(n(452))/4)+parseInt(n(418))/5*(-parseInt(n(476))/6)+-parseInt(n(345))/7*(-parseInt(n(406))/8)+parseInt(n(349))/9*(-parseInt(n(483))/10)+parseInt(n(434))/11)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$7);class MapTileView extends Object3D{constructor(t){const e=y$1,n={myhUI:function(t,e){return t>e},zouYB:function(t,e){return t-e},xNIUf:function(t,e){return t(e)},nuTjr:function(t,e,n){return t(e,n)},dMJvG:e(484),ncGTh:function(t,e){return t/e},tKMSd:e(396)};super(),__publicField(this,_Cg,30),__publicField(this,_Bg,1),__publicField(this,_Ag),__publicField(this,_zg),__publicField(this,_yg),__publicField(this,_xg,256),__publicField(this,_wg),__publicField(this,_vg,!1),__publicField(this,_ug,new Box3),__publicField(this,_tg,new Sphere),__publicField(this,_sg),__publicField(this,_rg,0),__publicField(this,_qg,[]),__publicField(this,_pg,{}),this[e(390)]=t,this[e(435)].z=0,this[e(464)]=-10,this[e(414)](this[e(390)][e(339)][e(369)]()),this[e(437)][e(410)](UnitsUtils[e(377)],1,UnitsUtils[e(377)]),this[e(435)][e(328)](this[e(390)][e(399)]),this[e(375)]=n[e(401)](createOffscreenCanvas,this[e(423)],this[e(423)]);const i=this[e(375)][e(454)]("2d");i[e(383)]=n[e(321)],i[e(474)](0,0,this[e(423)],this[e(423)]),this[e(323)](n[e(482)](Math.PI,2));let r,s=Date[e(481)]();this[e(390)][e(339)].on(n[e(337)],t=>{const i=e;this[i(347)][i(392)]&&(n[i(432)](n[i(403)](Date[i(481)](),s),300)&&(s=Date[i(481)](),this[i(488)]()),n[i(465)](clearTimeout,r),r=n[i(401)](setTimeout,()=>{this[i(488)](!0)},500))})}[(_Cg=y$1(422),_Bg=y$1(471),_Ag=y$1(351),_zg=y$1(460),_yg=y$1(390),_xg=y$1(423),_wg=y$1(375),_vg=y$1(357),_ug=y$1(350),_tg=y$1(421),_sg=y$1(388),y$1(414))](t){const e=y$1,n={tAoRn:function(t,e){return t+e},KuIFL:function(t,e){return t/e},yaTXf:function(t,e){return t*e},OyTmT:function(t,e){return t*e}};this[e(388)]=ua.pc?Math[e(367)](n[e(353)](t,.3)):Math[e(322)](t);const i=MathUtils[e(447)](n[e(438)](this[e(390)][e(398)][e(389)],2)),r=n[e(370)](this[e(390)][e(339)][e(489)][e(384)](),Math[e(448)](i)),s=n[e(436)](r,this[e(390)][e(398)][e(411)]),a=Math[e(491)](r,s);this[e(421)][e(399)][e(394)](this[e(390)][e(339)][e(489)][e(453)]),this[e(421)][e(330)]=a}[y$1(488)](t){const e=y$1,n={zgWuT:function(t,e,n,i){return t(e,n,i)},jfTew:function(t,e){return t+e},ygata:function(t,e){return t+e},eoXPh:function(t,e){return t+e},KFxGV:function(t,e){return t-e}};this[e(371)]=0,this[e(414)](this[e(390)][e(339)][e(369)]());let i=0,r=[];this[e(351)][e(327)](t=>{const n=e;this[n(380)](t),r[n(348)](t),i=Math[n(491)](t[n(388)],i)}),i=n[e(360)](Math[e(385)](i,18),1),r=r[e(444)](t=>t[e(388)]===i);let s=r[e(390)](t=>{const i=e;var r=n[i(378)](d$5,t.x,t.y,t[i(388)]);return n[i(352)](n[i(341)](n[i(470)](n[i(470)](r[0],","),r[1]),","),r[2])});t&&this[e(390)][e(343)][e(359)](i,s)}[(_rg=y$1(371),y$1(380))](t){const e=y$1;this[e(421)][e(333)](this[e(350)][e(407)](t))&&{UhJuA:function(t,e){return t<e}}[e(368)](t[e(388)],this[e(388)])?t[e(417)]():t[e(404)]()}[y$1(450)](){const t=y$1,e={GQJvb:t(443),cowlR:function(t,e,n){return t(e,n)}},n=e[t(431)][t(372)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[t(451)](this[t(351)]);continue;case"1":this[t(351)]=null;continue;case"2":e[t(446)](setTimeout,()=>{this[t(488)]()},500);continue;case"3":this[t(351)]&&this[t(351)][t(479)]();continue;case"4":this[t(467)]();continue;case"5":if(!this[t(347)][t(392)])return;continue;case"6":this[t(351)]=new MapPlaneNode(null,this);continue}break}}[(_qg=y$1(347),y$1(405))](t){const e=y$1,n={yyevQ:e(463)}[e(400)][e(372)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[e(347)][e(429)]((t,n)=>n[e(478)]-t[e(478)]);continue;case"1":this[e(347)][e(348)](t);continue;case"2":this[e(422)]=Math[e(491)](...this[e(347)][e(390)](t=>t[e(422)]));continue;case"3":return t;case"4":t[e(395)]=()=>{this[e(466)](t)};continue;case"5":!this[e(351)]&&this[e(450)]();continue}break}}[y$1(466)](t){const e=y$1;let n=this[e(347)][e(365)](t);({dGsnm:function(t,e){return t>e}})[e(408)](n,-1)&&this[e(347)][e(415)](n,1),this[e(450)]()}[(_pg=y$1(344),y$1(458))](t,e,n,i){const r=y$1,s={bszRw:function(t,e){return t+e},pbQFQ:function(t,e){return t+e},WgqAE:function(t,e){return t!==e},iNQBa:function(t,e){return t(e)},rDTSq:r(480),AfFiY:r(433),cRlAv:function(t,e){return t==e},SXERk:r(420),yfNTX:function(t,e,n,i){return t(e,n,i)},Atmzk:function(t,e){return t+e},VsfgD:function(t,e){return t+e},FQitX:function(t,e){return t+e},pMCAZ:function(t,e,n){return t(e,n)},vNGvY:function(t,e){return t*e}};return new Promise((a,o)=>{const c=r,l={eBUXI:function(t,e){return s[N$7(325)](t,e)},lZzKe:function(t,e){return s[N$7(325)](t,e)}};s[c(361)](setTimeout,()=>{const r=c;let o=s[r(340)](s[r(485)](s[r(340)](t[r(346)](),e),n),i),u=this[r(344)][o];s[r(336)](u,void 0)&&s[r(325)](a,u);const h=document[r(334)](s[r(441)]);h[r(473)]=()=>{const t=r;this[t(344)][o]=h,l[t(376)](a,h)},h[r(492)]=()=>{const t=r;this[t(344)][o]=null,l[t(326)](a,null)},h[r(329)]=s[r(402)],s[r(397)](typeof t,s[r(472)])?h[r(387)]=s[r(468)](t,e,n,i):h[r(387)]=t[r(475)](/\[z\]|\{z\}/,s[r(449)](i,""))[r(475)](/\[x\]|\{x\}/,s[r(428)](e,""))[r(475)](/\[y\]|\{y\}/,s[r(430)](n,""))},s[c(355)](this[c(371)]++,5))})}async[y$1(427)](t,e,n){const i=y$1,r={lgYLd:function(t,e,n){return t(e,n)},IaOna:i(484)};let s=this[i(347)][i(390)](r=>{const s=i;return this[s(458)](r[s(425)],e,n,t)}),a=await Promise[i(362)](s);if(a[i(392)]){const t=r[i(426)](createOffscreenCanvas,this[i(423)],this[i(423)]),e=t[i(454)]("2d");return e[i(383)]=r[i(459)],e[i(474)](0,0,this[i(423)],this[i(423)]),a[i(324)]()[i(390)](t=>t&&e[i(494)](t,0,0,this[i(423)],this[i(423)])),t}return this[i(375)]}[y$1(467)](){var t,e,n,i,r,s;const a=y$1,o={SJqsB:a(461),jkPKD:function(t,e){return t+e},kdeOG:a(457),KWMOj:a(445),rHRrt:a(493),kfsJc:a(374),KNyDx:a(439),OTRwh:a(386),lVAwY:a(366)};let c=[[new Color(o[a(416)]),new Color(o[a(419)])],[new Color(o[a(412)]),new Color(o[a(391)])],[new Color(o[a(358)]),new Color(o[a(338)])]];(null==(t=this[a(390)][a(332)][a(440)])?void 0:t[a(393)])&&(null==(n=null==(e=this[a(390)][a(332)][a(440)])?void 0:e[a(393)])?void 0:n[a(392)])&&(c=null==(s=null==(r=null==(i=this[a(390)][a(332)][a(440)])?void 0:i[a(393)])?void 0:r[a(390)])?void 0:s.call(r,t=>[new Color(t[a(379)]),new Color(t[a(424)])]));const l=c[a(390)](([t,e])=>{const n=a;return n(487)+t.r+","+t.g+","+t.b+n(342)+e.r+","+e.g+","+e.b+n(413)})[a(382)]("\n");this[a(357)]?this[a(460)]=()=>null:this[a(460)]=t=>{const e=a;t[e(462)]=t[e(462)][e(475)](o[e(373)],o[e(354)](o[e(409)],l))}}[y$1(381)](t){this[y$1(357)]=t}}function E$6(){var t=["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAScSURBVEiJvZdtSFtXGMf/59ybeG+8CbtaNDqKq9Zi5xcFmf0ihIrQDroNOh0trDNlVBnTWgvtOj80W5m2HbRVoTgoOixuaAaFDdqC2MkqZS1uy4eVOnWGtGvU+rbm7SbmvuxDl2FMYq4V9od8uefc5/c/5zx5znMBHbI53NywS7Iv+eTexwuKZ+G5EvFLqhqQVNU9J4fdc4rX80wevHEv/HFl05JFT0yy0eC1Ealgb6mxLU8k9Y+eKAbXTBRTXgXTXgWBsAYAsIoUAkdQnM9gX0UGRDOJeBeUG8d7/j4x+mXO3KbB45OrTTvymPOeedXUMRTE3IqqZyGwihT2Gh6VJQbp2bJybneBoUMX2ObQ2Mvvy99YRVrbPhiEa0bWBUxmoKvRjNkl9bvWAfbQqIPEBYoD2xwa29eoDK8ENFtbfwABSXsp6Fp4+wcCWAaj9h6mZi08Dvzbn9EhgSO1R6/4tgRcr84GMwiBs7zIUJcAnnwaPWXm6YXmHn/CeTYdMKG2KiNp0ICkIWbUKtKkRyPwBL0tFjxdVJordhm7AYACgO2kb1u2hZ5NBrWK9D/o7LKa8BN4AnsNh/IiFl2NZthr+KTm2geD2JHHnL82IhUAAAsAV5tNl+5PyKaNMrf7+xCcY5GE5zc/ewUAcGt8FQJH0PSWCVaRovuHUFyOuGZkeOZV095SYxuAY9TmcHO5WfRg37CUEgoA/hSJtva5cyyC5h4/yotYNB0wJcztGAoiTyT1Noebo6ffzDuy5FM3XO1m5JqR4bwbxv4KY8LY3IqKR08UQ9s71kPsGyXsnoEfE7dwvfZXJCaXmScw84k1KNXuvDAWxdt7jFVsMEKqp7xKWnB5EYvyIjbpmMDTtO/HNOVVEIyQaqqp2rZY3X1ZVZUa0NlghlVMb2Daq4A3wkqzLJTf6vlOexXkZVFUlRrSzg2ENXBGYmA3vJ50asorQ+ApduYzut+hoVXIArd1fEDSf3st+1SJBiVtcTNOtyqBIyCULFJKtbvF/yO4OJ9BZoY2Qn/3yHfKCtMnhR5ZxfQL2FeRgQcT8s/08/7gtyXbWVnPXyGVBJ5i2qugvIjFTxdFfPpeJpLVBqtIkW2hoQs3Z/sJAPzxl9wXDGv1x7/yJ0zubDCnLBwxBSQNHUNB+CUNVpEiENYw7VUSbrozdZl4LYe5/noBe4QCwIhLPleQy0hlhYkAPecv8AQ78xm4ZmTc/mUVYw+jSa/XyhI29FFXqBVY0wjcm1ht2ZHDXD56xbfllme9Yv2XX1JP73rVcDEODAC/TkWdIHg32ZZvRb0tFgTCWlzrE5dRrQPsIVEgo70tFl11N50EnqCzwQyWweiJ6+zhtWNx0UcdRLb3MDWBsObsatRX9FOprJBFb4sFhMC5vsMENmjoJ59GT2Vb6Nn7E7Kpb1jaVEN/pi4TBbk05J5VPok1d+u1YZG2nfRtu9psupSbRQ8u+VTT7fEIpv79fIkZEbgXGV2cz6Cs0IDd25no7Ir29Z2Hq198WM17dLlNacDh5m49CB+LfbR55uWgX1JVv6SqC8+VyOMFxbPkk3uHXZLd5nBzemL+A8Q2BxJWmqcfAAAAAElFTkSuQmCC","ArArs","state","split","DljIH","10001:14","HGzjn","HLWPc","IpnwO","10001:21","WBUhD","FPPKN","push","10001:33","10001:69","zEYkp","#444","10004:2","poilabel:","kHTPY","10001:7","10001:17","10005:41","codeBook","Parser","IkecA","MlZJg","QfuVC","Bhwac","7IMatCW","10001:11","10001:123","10002:13","cdCMy","qgXFZ","FLzFr","FGmSn","10001:5","MpXvI","hXIAj","pahjF","OimsC","hITCb","XmAlV","KbJsT","CBYuN","MultiLineString","10002:27","PyEfK","ArgwK","nLPjy","kTnDX","HovKX","string","CYooY","10002:17","10001:12","CqCMB","JFWPL","request","isArray","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAPvSURBVEiJvZdvSBt3GMe/z+/iTK4kFY0sU9owCm184dhEwcHEiRTpq7azMFxnqYIdXe3AwVqpC50TO92gbyYtKGxDLEJLK4NBKdI5SAtORbZCnd2Yoy12DmOwCV7M5e6evTgThvMu8c/2hbz7/p7PPcfvvs8TQhZiZqfe91GDMTtZBdldi0Tch1Ulh4jAeYWqECJi6FpIClSERFNwkIiimWqSLfBmn1+fHusw/np6Eol4DmQ3yFsE2nsA2OUxPYvzgBIDz06ZBfMKE1xYPJITHGwjooVNg9WelrN4+msPohGZAuUQde9ClFQAsnvjA0oMxi+T4OkxGKFvQbsL4sh/qSvn0+HPMnVvdsDs0C41X1cbSznZ3cTGzARvVvrMBKttdbxW4wYzOzJCk+1HxtTGUtaGejcNXC/t1hUT3n5kzBae6lS7dWXb0PVw7VLz9Q2hyY5j53YamoYP9bLaWMpqT8vZ9a/Yq56pXlHb6nYcmlKyu4nVM9UrfLPPDwACAPTO45cRjchSS1dWF3Arko6eBqIRWZ8e6wAABzM7tdY360XVYfNzsVMiDmN0GMb4bfD87wAAKt4HUXkI4mADkOuyPEolFaBAOYw/Hp5k5g+kjiKtGb/99JY4ehpU9LLlQV76E3rXCRg/3gGeLwFsmL/nS+CH4+DJUVBZDcjqOwcA2Q2+/52E+bk5gQf3KgHYd5uIQ+89BV54bP1gC4+h954CEnFLTyqAjNnJKgHZXUuBcutEAmCMDttC/wk3RoetDWuRC9ldK4jIawcFAGP8dkZotl7aewBIxH2Cl8MuKiy2NacuUjbK6N3lAVaVHEFkO6D+Mwk4ZQ0r9uOTivdlXTCTlxfnQXneuCDZHeYnj+yfrvJQ1uCMXiUGZg4LQ9dCHH4GKDHrYgcbQD5/Rij5/GaQ2EFnpwAldldI+1/7PjXELZXrgnS+3xZOPj+k8/226ZVmvPLGODGzR3vv9SX4SxyOC1/Zt7SNyAQAfSAI/jmkOPp+KAAAaMG3v1YbS7e0bWQrfWbCnMufvDMIrE0n7dXqLtpdENdHrtp3vA3pA0HAk69IF699mAY769+fE/6SCzw7Bf3a5zsPHbkKhJ+B8go7iSj8L0Oyu+nG/776AOuWvR2Ap1aejMteCp5a+tS2Ota3cOGMmQlz1VnrdCOoZVAnO46d4+XFi4hGZFF1GFRWk9VCb9wZMkPCk69gz/72F9oHvtzIbv8Xhtmrdx6/zIvz9RyNyACQmt3pibYSBT95hHT65bqS4sU930hlNd1U32o5xLMaTczsTPZ/fAIP7lVCdtcSkZeXw2ZaOOUkcl0LUGJ3RaAiJLV+MUxEq5lq/g2tSIAYH+JjrQAAAABJRU5ErkJggg==","buildingParser","pMhtP","rkOXB","10001:32","ovYjl","lUwDv","building","AfwhK","cgPjq","WqIIN","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAUNSURBVEiJtZdtTFNXGMf/be69a3vZxVsZFWg3XkyorbBJNKMYFggBVOIH48qicYtEYrJlM6ExZpsf1JhlL1lwybJ92uxmCGZ0RrNIJhKFaaRdYmS+tKtLacUWayv25drbym2j+8BgLX2h1e3/8Z7nPr9z7vOc/zkXyEOVRqPkjMvV4+f541Ph8LQ3ys+FhbknYUF4cjsUemwPB+85wqGffnTcfl8+MMDkk1OUa/BL27VXusqrD75M07uvBx6SZp8P1lAQ1mAAnBAHAKiKaDAkBS3LQl9VgxKJZO5uJHK6a3i470FPz/2CwZfuz3ygLpZ/5uDCsj7LBDw8n89CoKRpGOrq0VpWEZvh+aPrSko+zQ88NkZMaDSDSlqmN1jMMPt9eQEzTcDU1g43H/l5o82+A62tiezgsTHCvm7daGDuccueS7+BiwvPBE2Gf9/cAkIsHldPTrYnw1PAEz7fEEOS+s5zw88FXCpTWzsAkalJoehOA98KBA4wFPm5/sJoSj0ZkkJ3dTU0K1hoWTkYioSKLkpJ7OYj8PA8OEHAOY8bZr8vLcfI5i24E+H2vbGq4utFcPngYMkf27ZNbz3/qyz5BSVN4/ymLjAUBQAw+30w+zLXXMuy6FSqAACcIEB/cRTWYHBxXFeqwLcbm6MnXH9q9msapgkAONvR0T/mnZEt7dzuqppFKABYg0EMuaYygnupNf+ukKLQWaFKAZv9Pji4sKyrvPrgfmAvUWk0SpRF9PZ3r1zKmDAlea0avbXqZeOyqc8ygYtbtu6uNBr3EV80N7/jj8bSVttbq0anUgVOEHDo2tWCAEca1qNTqYI1FMSIx7343MPzuB54SH7V0rKDaCkra/zGbkt7+XDDegDzjWNyOQsCG+rqoWVZHHtdB00SGADMPh/erlndLH6USLQl12JBnPB8exgAwhl8wBoK4lEi0SZ+iqclmYyi7/dndy1gvpkMFnM6OBiAjCRWiV+SSqXuSLoPj3jcWbdOXmCfL+PEOSEOGUGQ4mUOqP9NRDQRTzAUSWbz5WKSgq5UkXdChqJQTFJZx1VFNB7EYjEiHBdmtay8LNuxx1DUP17734ghKYggmhUTEF3WrmBzBhfS4cvFalkWLxLEBfHVB7MXdYrsn5ITBGhODeFwHiZy+NpVNP5yJidcX1WDca/XIn7PYjlZL1+ZUNJ0xkCGotDfqIO+qmZZ8J5aNQx19Sn+niwlTaNUJo0euHz5hDiwaxfn5LiBY41NaYFuPgJg/rDQsrnLAQAqumjRy62hdFMy1NXDE+FP3enpeUwAwLDTeXTP2rVv6UoV0uS9Z3I50Vu7ZhGqPDmQE2zb3g2GomANpnr0wmpbyyqir50+bQAAMQB8tGGD82bw4cf9jTowS7aCyTUFazCYV42/+8sOThDQf+tGGtTU1g5/LHbk3s6ds8AS97ji85pEEL2pvzC6LKQQjWzqAhePp1x9xMkBG232HfIXJOMjm7qQrdkKEUPOewAhFo832Ww7k8dSwGhtTagnJ9u5eNxkamt/LriuVIGRzVsAiExLb5hADqO+FQgcKJVKD415Z2T9N28UdKE/1tiE1Uxx1B4OfLhwuVuqnCdE+eBgydmOjn5lEb3dH43JFhqNiwtYONEYioSWlUO7goVOocCr8pXxuzz/w/A95yf7NQ3Tec02myqNRsmQw7F34afNEQ7x8z9tc0+8UX5uKhye9vP88TMuV0+l0SjJJ+ffEi03zQDiLXQAAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAARdSURBVEiJtZd/TBtlGMe/96s/jh8t8RiFxMIUA5iQJZgwkwUkWYb/TREhwQ3SxWF0c5kaMyUL8WJjMP4xQ0y2RCapy9Q4XFD+mwbDxjSoCaYjC+BISutsCxRoob3e9a53/mFKyryy48e+f92973PP53nf93nf9znAgFy8zzJxJ3kiGlcGQ8uKf2VNkRJJVRVEVb2/KIv3F5VgaCn17egfwpvH+OVCIz6JrTqv/5Isr69kzhcXkS5fUGGm51MILKQRCMsQJA0AwNkosBYCTgeNhgMWFOaR0uJqerhvMPq2h98X3jZ4ak4887iD+TgUSbMDI+uIRNNGBgLOTqGlkUVtpSm5vKa6nyxj+gyBm3iNvuRKfc3ZqLaBkXXM+GVDQL0AejptWIylvzvtMXWM8YSSE9zEa/TVU8pP64LW1H8tBkHUdgTNhp9tKwRFYez4RfpINnwTeHpeusaaybbegdVdAR9UT5cdgDZUU2Fuz7SRmQd/SD7H2ai2/qG1PYUCQP+1GDgb1TY1J57JtBEA0MEHuUvvlvg/HIyyuZLoy97inI4DCwoi0TTGvRImZyVdm+pyBqdaC4VRb+rp1kNWPwkA7pPcham5VE7ow+QsoVFXZcbZ9kIca87XtZnxywhF0mx9JXMeAEgX77Nwdrp1+JZgGPTf6ERMzkr/22bNB61oPmjV/W5gZB3FRaTLxfss9Ksv7OuKxdPbGu20X8blkfWN95bn8vBiI7vx/kyVGT/+ltQN2BdUmNdfcnSQtU+Znx33ioahehq+mdg0cmcJnTvo+RSqn2AayKSEw4GwktPQqCIx1ZBdYCGNpITDpKZq3F4cFNXlTFYQuZctEJZhZuCgbfmUdStDPeVZiA2Q00Hj+frNyXRDZ30zEiQNZoZkaGLL+0lfdVVm1FWZdftue0XcNpAztJjSFNZMMLud7hm/jOGbiYdeKpyNQiyeTtKCqEWcDqY0EtM/cXJBMjtBEDUEwrLh5GItBAiSiNAUoY47S6j2yVnDXCxF04amU09OBw2rGaPkX/+oP9dUmHbkZCdqOGDB1D1pgvz8+8Q3FaW0wtmpRw7l7BRs+ZTwxQ+LV8iv+MfWwivq1e6jBY8c3NLIIhJVrnv4/SIJAL/ejbtLOSqZfQjstTg7hdpKk9B7OfIOkFWBeO+Jb5Vx9Ke9A6u7Lnn0oD2dNgii9l55KfPJJjAA3J2XhkgQL/ddie4p2N1dBEFS9UsfADjtMXUUsMSYu7sIe5FsrIVAT5cdFIWxNzymV7L7NoHHeEI5fpE+IkjqUE+nbVfw6nIG7u4iANrQgxUmsEVB7w/J52wF5AdTcyl2+JawrYK++2gBSjlK+Dssv19baflMz27LK6KDD3Luk9wFzk63xuJpdtwrIhBWIIjaxtXHmgk4HQycJRRqKkzYX0bLS6uq5/c5+aPWQ1a/oWhzycX7LON/Jl7L/LQFl+REIqmqiaSqrqwpUmhZ8UfjyuDEneQJF++zGPH5L7rV9DtKFQf2AAAAAElFTkSuQmCC","10001:36","pFJeV","shift","jZofV","Rionq","GBvca","Psrde","HuNVT","ihaWs","10002:5","10001:98","ipElc","cdEyk","type","poilabelParser","name","wfbvn","EihFf","PzFrK","GurmH","KOUcD","xfysA","road:water","road:roads:nationalRoad","MultiPolygon","UymmZ","OuXuh","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAR8SURBVEiJrZdfaFtVHMe/59z8661Jx3IzprWG6oPtgxOcFh/WUSh78WHY1lo6N0lhbErdcD5MIegCJTh8WKE+SIubQ6dSa7figxuMSLUipdJJNyR1SEvsEup6m2bNbtKb5J7jQ9I2ae+9pu1+cOHwO/f3+5zf7/zOub8LlCE84HPk7o53acrSJbYUi7CHcZWpCuOqwrT4vRW2OBfT4tFB7XboncW+N1zl+CRmk+lbw16Ht8EPp8fH7s9YWTQMJkfA5Qh4JpV34PSA2EUQyQuhrhFErFJZYv7ayshHZx7rHprfMlibu3OKuGvO83hMzIb6wZNyOYGAOCVYGlpBvfvSfDneI+x95uOywDzQZOHHP/sGLnd7NjQAFg2XBdRbgK3FD/Zg4XvhYncnCYzmDME80GThp7+6yVPJpsz1XkBNbQtaDLe+cgZEEEZJ37FDxfASMLsX/o7bK9ozg/4dATeK7VU/CMgQfbL+9VUdXR1ocuQsXO727I+9jxQKAJnrvYDL3a7N3TlVAl7u75SIWHUucy24uYgKFQsAlgNHIdQ1AsCarjgqa/MJfbKaQjY0AOKuOZ++NexdA1ce7rnAIlOiXuUKtfsh1O5fG9PqegCA9cDREjhxShDqDsLS0KrLZtEweDwmOrwNfgCgPOBz0CqpLTdxVddgY2Qlc05pk87yUquuHgCyoX7A6fHxgM9Bsx1dbzIloRstAFAT8Gr05ep5Uga7P2PVjrzVSYWn9r2sTY8ZOidOCcRViMBemX+A/N67PLo2Qt1BQ38sGgapfrbRQjLpZi5HjMEuDwSXB7T2RRC7mN/n4wMgdhHM4JwbpRoAmByBkEk3U865xE0uitzUjbwzu7juuDDWZicNF2skXI4AVsdeC6ncVcGTC8bgX6+AJ+WSimbRMLTpX2C2RYbgTAqw2q3U9PNUEG3qRr4iAXA1hcxIcFvQYqHIqjliE//3xdX0FafcSMy2jjg94EoiTbmqyGZndd1A0h1vgiYXkPtd/04A8gsnhMiUEzpmdlZ1jU2KRwuPQSsUpK6t5AW3VYQo/v37J6MDX2LgNIZtRYS6Rmj/3B6niZsD39I9tTmz9AFYv0RgnmpTH04JtHJXyjr4xZfUffrrZZaYv2JtPrktZ1sRS0Mr2AN5mAQur1AAyP71Ww/Z/XjaLOXazCS4mgJPLui2Q9rsZH4upt8qEacE6n0+pfzw4XtAUQeizf7xLnFX96qD/h23PHpQW4sfPJN+X5C8n5SAASA39+cQIeS1zEjwkYJtHUEQNa3f+gCAcLG7k4jOUVtHcNsFVCJ2Md9vCcIo+fztI8VTJWASGM2RvmOHiJoesrX4dwSn1fWwdwRBQIY2dpiAWUMvR84Sseoci0yJuYmrW2rorc0nQXY/keKLcx8INc99qvuemZPl/k6p8nDPBVoltTElIWrTY/nfl0J1AwCx5ZtBKnlBq+tB9zydRXLh8kpkIljxQpvxh74c4QGfIxP++cTqT5sWjypMVRhTFcYexlW2FItoytKl3N3xLh7wOcrx+R9ZeOO1dwe6XgAAAABJRU5ErkJggg==","NXFhr","MxXJL","yjNWa","toLngLat","FXikF","vKxyA","forEach","189owIFoG","_objects","ebOyH","AMrlc","MJEuV","ftuUQ","ViGBO","XoLmO","tileStr","lOFMx","10001:29","11|9|1|13|4|8|3|0|7|2|12|10|5|6","map","assign","10001:20","10001:8","3562185jwZqfw","ayitO","10004:4","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAARFSURBVEiJrZdfaBxFHMe/uzt7O3e53KbJcddUSCTFBCsJNKVSrIKh9Ckv0holeSg5HwKiBRWsQh9cKKIo1AcpviVRoaKx8SlPohewarGahoYEGkiul5Kkd831srm9vd3b2V0fSuJd3Nxd/nzhYG/2N/OZ+THzm+8CNSiuJGh6thAzNTasZ1jS2GCmZdgOMxwn/8gy8o/YipYpfr/8j/72LSUTqmVMrtLLxd8LrdF28bIk84O5VUtUlyxoKYZ8moEZDgCAygIEyiEYIYh2+uGr481Clv10Z1h9t0eJPNw1OLtoXAxExU/1NRaYn8jBUO1aFgIqC2h9sQ6Nbb6CseFcCR0RP6kJHFdccjxWvC7JQt+9iQ2oS1ZNQK8JdA00wFi3f5we9fX3KBzbERxXXHLyLfazpTsvz91QwUx3T9BS+LFzMjgBk7evkbOl8DLwetL8QZD4vqmRx/sCblfXQAM4YKyhVXpts43ffNBWrUuSLPTNjasHCgWAuRsqJFnoyy4aFzfbOACIKyvhF96PJqe/zga2b6Ln32wClYUdB2WGg6mRbNXNJ7eIePYVWV+eLh5rO+1P8gBwYih8NbtQ/B8UQEUoABDKQ24RK8YAgLpkQV9jgWi7eBkA+LiSoFQWzidv5qt23q/mJ3KQZH4wriQo6TgXuWDmHM/VlspQ7bKjRSQOTe3SrsCGaiO3aonP9R3uJ01t0qkHf+pVO2kphvWl4tZ/Kgtl4I7eUFns8t/eY6pLFpqP05eIbeKMlmaeQaUKt0sIV1hhtJOWPGNHsJZisE2cIa7rhm2jeqF4OFMoS3UwQvDUyUDVftuVTzPwIg4TX5D311KHgxERXEm9IVLF+2VHMcOB4ONEwlW+oP4DRwmCUbInmJeIbbmMUF5kZuVVp2YMlB65zUtgt6KygKLmFAgz3LW6CGmulu6mZ3xlhWKvqRYoB47j1niXd36rJYWE8qCysPUjlK/ax0vBCIEg4Rc+v+z8WkvJOyhFO/3ILJq3+MR4/rv6ZpF51eRa0+kV59VGZQFSPa/fG09/wwGAtlocsYru4N3r62WB3bHGPe9kQ7Xx11eZsraO3hACYeHb0BHfBQIAK7P6ladP1b8ut4j+0iJxkIaAygIOHfXpf3yeeg8ocSCZBeOdQBP5Ymr48b4tjxe0a6ABdsH9INgsflYGBoDsfXMMHF7dnvL9qjvWCNt0vK0PAEyP+vrFAD/ZHWusagBqEZG4J35LwOSdEd9A6bsycI/CsdvXyFnbdMa6Bhr2BZdbRHS/0QgOGNvuMIEKhl5btS6JIf6j7EIxkLyZ35Whb++tRyBMdD1lfXiojX7pFVfxoMaVlfCJofBVKgvnzZwTSM0UoKUZbMPdmgihPOoiTy4QuUVEfbNomaozmpq3Pm477U/WNNudJ5CgK3fzQ5sfbfk1K28ZtmMZtmNsMFPPsKSpseH0bCEWVxK0+ojAv0Wy18UmSsUVAAAAAElFTkSuQmCC","OoKFo","gqklY","jBhSP","10001:35","QwDJm","yvYWw","10001:134","WHYRe","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAT4SURBVEiJrZdNaBtHFMf/M7uSd1VbMCL4Q8YYbAimCr1Uh14KoUaG5lRIY5FCEuUSy6UJdg1podAIQpu0gTqk0MgUUschCXIKvfVg41IopCEo4BwUTIJthGPFX/FiJdGspN2dHizLWluS5bZ/mIM0M+/33pvdN2+BGjQfCSm56enTZjp9w1xdTZobG1mLc0twbplLL3RraSllrKzEcvfvf/by7Fl3LTZJtUk+NdXu9Pm+IoyFrIUFhzE3CyuVgplKAbq+aYAxEEWF5PXC4feDNNRnrdW139aj0cHGK1eW9g3OPX16Vm5puWwtL7v08RgsTaslEFDG4Az0QO7q4mJ9/aLU3n6pJrCIRGTzxIk7hLFjeiwGc262JmA5B9RwP6yXL3+Vb98+TiIRoyJYRCKyGe6bxOs3h/nYTQjOKxomjIEAVTNBGYNyKgRI9E8pOhIohdvAxuzsOBTlWObqcEVjss8HpTcIsQVUVeQmJ5CPxyvucfWFAULuyZ2dvbvA5uLieajqdzx6vWIUdYEeSD4f9JujxTVbKTXicWQnJ8ruI6oK18AgzLW1c86DB38EAAoA6aGhA8TtvlALlI9EbWssTUPm6jAknw91gZ6yewXn0GMxyC0tl/nUVHsxYiOZHLNWVk7o47E9oQAgv+2zzRtPEgAAtS8MM5GoGLmrLwxSX/+z1Nx8RpqPhBTWfXRUv3vHIQrvZiWo4BykoQGucD/kQ4eKI/fgb4hXr2A8fgznh0dAG9xl3wZzbhbOD7rfCcnPr9DWI5+eFOm0q1yKd0L3kuAcfCRaMe2WpsFaWHC0fjRwnEpdXe+VeyL3C60VbszNQuroeJ8im+02UynbpMPvh+z3F8+UMFYc1OPZZYx6PLY1AIpw2Wd/HqxUCshmu2VY1gGh2yNyBnrAo9chOIfjXT+UYLBqlK6+sO23Hosh/ygO/eYoXAODeH3h6+KcmUoBTmczJW63KkrOlzIGcF5zba4mS9MgNK2YhU2vdBCn00F3Fmvxn3G7Ve4moiKXNaAo2+CCh7TUy38pyhigqrbsEcYg0mkug+trktfbYpRM6uMxKKdC4CNRGE8SeH3p221jHs+uM82MRGGtr2//oesgqgo13I/cjmJCFBWgdI1alP5FvV7bpJFIwEwkoBYAonBWQtPsgIKs9XXbGmCzihnx+K7LQ/J6gbq6KWolk3/IHZ27jGUnJ4pwoqplU1lORFWrlk6H3w9zZuYBfTU2dldqazPKnel+4XtBKWMgbndm8fefxggAmM+f/yJ0PZQpFIyd+r8uCaU3CNrYeEtubz9JASA/PX2RNjVxqUzKd0YOAPlHcduoBUoZg9zVlclcu/Y5UNoIzDwZQGPzcObqcMXaXBfo2SylJff2VnuzF1QN9wOcfyG1tn5vAwNA/tmze4SQjyulHNh8OJyBHqDgHGEM+ngMRiJRcY9rYBDQ9fKtD1DS7JnW4dL2plIUAoCosoaoKtSTp4D6t6o3e0V4ob2t1grtJamjE0owCKFp96Rbtz6p2t6WylxcPE/c7gvGzIwrNzmxr4Ze6Q2CNjVljBcvvtxq7naq6idMemjogOvcuR+ox3NUpNOufDwOM5WC0Pl2ihUFktcL6vVC7ugEbWvLC00bzSUS36jd3cmavK2k+UhIyT18eKb40ba8/Mbi3LI4t8yNjay5upo00+kbuenp0/ORkLK3ReAfK9C2WFnsW6kAAAAASUVORK5CYII=","roadParser","offsetCode","4DPtGbg","hKXkU","Gyynz","_callback","&preload=0","sRQMv","aqRkJ","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAARISURBVEiJrZZfSFt3FMe/53dvMF7UZI0ThbqEvrgOxchoN6QuEWe39aFTWgX3UrOHjj2UdXvoBh1k0o7JHrqWPe2lcWOUMjcsFFqGdElwSIuUpHStdgybzBadNW2u1mSa3Hv2EBeMTa7G9Dz+fvd3Pt/zu7/zh7AFYx/M2H+xT9/hahOa2sFSRS1JFSYQwMmHqwR+rJM8Jh75xzD14Q90AIub+SRD4N3TduzsOgnF0c9PJkwcCwJqGLwYBlLxjAPFAchWwNIMqu8HldWs6InpkeS1to8rejFXNFibHz0mqpoGeWlS0cMeIBHZLIiMKQ6IBi+o5u0kEjOnaMfer7YEZj9kNAUuoNzeo4c84Fhga8A8AqRWP3g58jPdae+jdqQLgtkPGa/+Mcorj9z6RHf2OrdtigNizwhImAK42di5Hp4LXgj8xLKlRw+2lAbcYKLVDyIapmp3b3YtC42HTqDc3qNPdD9XKADoE91Aub1Hmx89lgPmy6iGuc6rjbdv/REVY6k49JAHoqppkO+etmfB2HfjDM9fVdZDpTfvQzrIkA4yaNfxktkcC4CXJhXs7DoJAIJ9MEOxH9LvDeR+qIbBa0Jo10clgwFAD3sAxdHPPphJiw4dJUvzd4UelNg7ArK5oU+fK46SiIBnhp711+oHrf7zvoyat17nvwYLnueFAKi2C6LBWxw4FYeWB8yxINj+QZsQmtoB9ZaB8mhxwP8Bc5fyb6hhCE3tEMxcjXThQrHdysV/f59/fTEMlipqBZXVlbNRCqXiMNzPZ4lIYcGpOEiqMAnj/rRmi+GiuDyTP9r1JiO9lIbJajKsy2sR6/cGgMT9ksCkOMArs0kZKXWBqpx1RtfJC8FMEUk9AceCxtTNfotsBREtyDrJY7A4e1HoFWLtgaXiEI1ngcazhn5ZDcOwyViaoUuWa7J4PP4b21y9bOQtFYcWbAHVvlu4VZqsmb1N0o/q+8Hzv14nvoIq7F+Kaf4m2eiaRMMXoAYvkIhAC7bkCKDaLogWX0agUaNRHJDeuJ7AhVqboANYxPKfPwqnz1Ap6o9kD1OVMzeKl45kIlYcoPp+A/FeIBH9hTz4VwDASnT4FFW+nCSbu+Ahnj6XyemFwDM5qk8NZHJXDeetz1nBNe8k8PtrnwDrJhCeu3Iclbu/2XiNz8XW5i+k4p+SteXrHDAA6PP+YRAO6+Ptz5UrXCFQWs0/+gAA3Wnvo7IXA8IVAhRH6USTNdMGhSmA2+73csTkgNuRxs3GTkqrw1KrvyQ42dyQXCEQ0fDGCRMwGOg5HjoBc52X568qmVIZ2RpRcUA4faDK3Ql98fZnUk3nt3mFGfngy6jGvhtnoNgPcXJW4ZkhQL0FpNd1LJM1k14WJ8jmAr2wJ4VEZAgPLn1Jr3y+vWaeFeCDWYsOHdWSs+f56VRUX5pc5tW4zqtxXU8+WOGnU1EtOXueH170sA/mrfj8D4k86DhZb9xxAAAAAElFTkSuQmCC","PdtJN","yZSfm","dsZSJ","wasaI","RLyce","IoBXD","HGPLU","tFiCX","eYhVH","10001:30","zrRkf","NOXvo","zaUZz","dcexs","OISCN","10001:68","pJFez","#ff6600","XvOBw","435185Murlkb","cqXZb","10002:3","regionParser","uprNq","UvGIv","RwiqZ","oTsDv","oisQz","yMJeh","gXsrp","VpVda","10001:25","road:roads:ringRoad","AhnIE","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAHLSURBVDiNlZO/axphGMe/7+vr9b3oXVIVMuSaqtihEOgPcJEGacEM3S67g3OhU/6MkCH/QKHOiVuGtLSUhi4dmkCHgmL1ehkk6tnzrp7xfnQIBnJN4fxM7/B8vg88vF8gRC+XqnQlXu+Kgt0RmNcRmKfJ4lAT2YFRzJbD82T+CHa2EvqbL3XPclT5kYJEPgMmcQCAO3YwOR/BPNVBBNZQaqUq2T22rwOCna2Etv/hm5jPPEhvFkDvsPCiqyDTweCkhak+aq6/fvGE7B7bBAB+pZOH8WWurr7cuFUMc/H+B6YXVuPewNqmRjFbDi5dNf2sEEkGgPRmAZ7lqL1cqhJ7ZVh78tP1h0v3U5EDCKMIPB9/NINQxOPPxbWVyPKcRD4DuP429Z3Z8vzai8AkjsDzOV3YDEFJjDru2FlYdMcOKI//pmD00G73Fw6YnI+A2ewj5Zmlt+aZDn/qRt9uOjBPdUgbyj5d/Tl8F0vyxuBzK3LA4KQFIrDG3a+dTxQAlFqpOmn3m72j73DN/9/Dn7pXv1AfNZVaqQrcUqbg0lXlxwrEtZUbZbLbfZhnOmJJfqNM/2AUs2VNZAeaLA7nde6Kgt2VeL2XS1XC838BETG885n+l9EAAAAASUVORK5CYII=","EqSfi","10002:9","vwqzz","#333","response","huZwv","rEuwd","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAUySURBVEiJrVdtTFNnFH56AXvbChSKbQfN2pp2iKBIYoqZGQPdNH5usWNEg6YSYYuhLNscGM30CtmmU1wmZjFjIUQRg8y5sahb3FyDcXE6U0fW4KCxrbbQFgqV0XtbJbgfWqX0Xihk59fte07Pc86b53y8QAxSaKDIq7e6tg/7R5tcHp/D5x8JBWhmPEAHx+/1eYP3+r19TvdA20+dNyvXGKmkWHzyplKeu3BNuTRPs1cqSTFYHX0Jll47bC4P7E43AkwIACCVJEMoIKHOkKMoPxfiJFHIPTB8ftfRpvcvfkW5Zwx8u9tqVKbLDzo9g8LjLR3wDvljSQTSVDFK1hZgyUIN4/ON1GnV6Z/FBFxIUfHHtxha50mSixtaOmDpdcQEyBZA7Xtb4fE9+LaqtXmziaLGJurjJoOefGfn5eDDR+v2HTsFl8c3K1AACDBB3OjqwYr8xQv1uvwCc6LotN1kGg/rIzL+u8d+VijgF394qHHWgGxSW7UNPKA95yXV2+EzIvxhu99fPU+SXHyosf1/BQWAQ41nMU+SXHy722qMAN5QQaWJkxL37/vyFCuJSta+ilOff4T6mgqIBCSrc2mqGPU1FThxwIii/NwIXYAJoqGlA8p0+cFzF64pnwEf2bPjqLnbKmQDFQlIlKwpgEhAQq2QRTkNS5l+FdQK2RNWrymI0lt6HXB6BoVL8zR7AYAoNFCkVCLWt13sZHUYYIIRt2BzsZemzfn83GJlr4TjLR2QSlIMhQaKjGs68UUZOYe/6fwv11iNAeBGVw8CTBBtlzo5y8tidcA79ACWXgfOX/4dj8bGomwCTBC5C+bHvbxk/t34vAXaZd9NASoSkFhfpINuUSaytSo00T/D7vJE2KgyZFixLBe6RZkIMCGoFTK0Xexk5Yul147Vy5e+QtCh0Equ6wMA3eJMrC/Mh1QiRo5WiTL96igbY+kbz2zCPKjfXc7qz+bygA6FVhKPH4+n0UyQE3gymXK0yihmiwT8qP9xsd/udIPkJ8iJlKS5Aq/vAauRSEAiR6ucNpiZSIAJgZyTkEBMNaB0izNndD4TIZiHD8fYrgoAa7YAoFbIOK9yOpFKkjE8MsoQNBMcVCnkrEZcmYkEJFQK2ayAhQISPB4xSBA83lV1BruTrdWHsbX6cMRZQ0sHNhnrIur5XaoBN7r+efbb5vRgk7GO1ac6Qw4hn/8rceeu60q2VsUZYYAJIjCB9QGOCojFBnhCTPOd3utE/Znvz2hefGFMmirmBqend+r1PW8WAxzbijRVjBTxXLr2xA8niUsN1IjLO9RSWbqRG/jpfgUAAz52p96h5yXJFVzJ2gJ4ff5zpmYqSABA501LXYY8jcnmYPHEDCYGwRkoHQ0sTRUjL0tD7/r0mw+Ap2OxTP/aXdu9/j3G0o2sZWJzuuH1+WFzejizsU9ou7ZJvTy8f/lH/j3w49fUIDCpe3T12Nt5wFv7jp2cNquZSH1NOWgmxL76AEBVa/Pm5EShqb6mHFORLVYRCUjUVm1DfHycqbK1ectEXcSWaTeZxs2JotOvZy3KWl+kyw7P4dlItlaJj3duAc2E2subG9+cvN5yNmrb/f5qcVLifnO3Vcg1W9lEmipGZelGKGRptKPPvXtJlqaBzW7KJ8yGCirtyJ4dR6USsX7YPyr87Y+/YHO5QTNBhCeaSMCHSiGHOkOGbK0KGmX6I69vuPlPs/UT/brls3sNhKXQQJFXrpsrwo82p3sg8OTRxoz7/CMhl8fnGPaPNl291bW90EDFND3+Az8sOmdUBvK3AAAAAElFTkSuQmCC","zfbVS","RHpEY","ecjFE","join","uOijn","TeZLK","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAARxSURBVEiJtZdvSBtnHMe/udxdcnc1f05rY+I/qIVVKdQXlq0wtEiwbG8KnYIblLQvtoGzbKt0gzIqlLEyuhY2HOubZGydsjlY3xQmsqrdLGVSLOuWtlOWapsYo00uau68y+Xciy2SNJcQ/33f3N3z/O75PPd7nuf3+x1QhHyegHn27tJJSVC9y/PyjCgkZUVMaYqU0uJz8upSWA7Fw/L307/F37nWPWUpZkxDoU7/jViNs5E7x5WSntjsKhWZlhAPKYgFZSQlDQDA8RQohoDNSaP2UAnMJaS8sqj8NPJZ4L2OLxvCGwaHH4jdtkr64lJYYScGIkhE1WI+BBxPor6NR8V+VhJjqQt8jemTosAjvWtkwxtSP8tT7RMDESxMS0UB9SbQ3OVC4lnyR38/03mk15A18yzwSO8a2fiWPKysaC3j3vC6Ozcrjidx+JQDBiNGJ6+a3JnwLHBkSvyBYoj24UtPtwR8Xi1dTgAYLN/HdqTbiPSNEJTPsjzVftubdz9sWuPeMFieag8/ELuzwP1nHpWZLcbzY33BojfRRpSUNEwMRGCrpC/6b8Rq1sFHT1dfnvOL7E5A01qYlrAUVlhnI3cOAAifJ2Bmeeq4fyiaZfjKRzVov7IXNpdp2+ATAxFwpaTH5wmYiea37SekuJrztRxPAgAohli/pu83q0RURWx2lWrtLu0kK17Y9eLDm7GCL+xrtqKhjQfFEJgai+Pe9UUcPuWAzUXr2otRFfeuL0IIKjl9kWkJe1+yvkyqcqpVCOUaZOrgsbKsSQT/TMDmosHxlK49x1Nw91RhtC+UE4DiIQWqnGolNKCsUKCgddyr16anhjZ7TlssKMNoIhwEU0IyiWgy78uKpCF4P7H+nIiqiBQZRvU2ZlLSQNIERRbOT//ptjcM1wEOrJ3E44nl/8/lQlHwfCJVeU2lGILK5+6Dx0qzYrbrAFf04ImomrPGHE9BWlYlUl1NLdpdpgoxT/DYyjlmdZaQYggQwCK5BvxqddIdmeuYqeD9xIazFMeT2F3H6PbZnDRIk/EXMjqj3CyvYzr8Q/pneepWfMM5ubapJC+49lAJ5h6u3CHGr4UH7FVmNR2pdlIcT4KxkuLYV7FvDAAQm5V9STnlGe0L7Si4qbMcVgf1LV/DnCAA4MkfwgXLHlrK557tEMeTqKhnxZ8/n30fyKhAQn7xXcse6srwpSdbLnn0oM1dLqir2gc2l+nTLDAAzP8tDhoMeG27Xe7uqURS0vRLHwDw9zOd9C5i1N1Tie3YbBRDoKXLCYMRo399x7ye2ZcFPtJrUCevmtxJSRts7nJtCb67joG7pwoABp+vMIECBb0QlM+aLcbzc36R9Q9FN1TQN3WWw+KgReGp8qFjP/uFnl3BFNF/5lHZ0dPVl1meOi7FVfbx78sQQgqSkoZ0RqMYAnaXCVYnjfI6BvZqczLxTP06NJn4uP5V+0xRs80nnydg/ueO8Gb6py0+LycUMaUpYkoThaS8PC/PSILqnb27dNLnCZiLGfNfb+PubT2Qn2MAAAAASUVORK5CYII=","center","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAASeSURBVEiJtZdfTFNXHMe/vdw2bbkMHGQeidrZFEQetmtCqiYuucaY8I5/cERTEuKDYVp4kCZDF5VlZQ+jyYwva6RxcXMDs/gkydK1yUwkpNG7xRjEO/FahAp06DjcW0rb7AHb0NI/13+fx3PO/X1/53fO+f1+F9BAQBCMC35/ezwavRILh+X43NxygtJUktKUOjkZUycnp1VZ/mX+5s3O0V27PtBiU1dscvraNcuHe/Z8qd+0yaGMj+uXRBGqJCEmSUhSCgAwEAKG42Cy2bChuRn6qqrl5enp3x6cPt1lDwYjry38MhT6wrxtmzv29Kl5yu1GPFLQRhYGQrDR4UCF3a4mZmcvmnbs+EaTcEAQ2KaBgZ8MhBwKu91YEkVNgvkcsHo8iM/MDIe6u4/uCwYTBYUDgsDuHhz8PfHihSD39mbC+aYYCIGlrw86lg2OtrcfWCueJbx4796vZRx36FFHx1sJ5mL1eABgqGLnzsPrhJWJiTNlFRX9j53OvOe5obkZlXv3Qk8IDISgjOMAAElKEY9EEJMkUFHEf7dvr4tUGcehzutF7NmzU5VNTd9nhEOCUPPpjRuydPKkOVe0nOexxeWCgZDM2HOfL+NcGcehtrMzM5ekFP84nYhJ0jo7lnPnlLmRkcbatjZZBwDKgwdXY7J8LOx2r9tpw/XrWaJaiEciGG9tXTdu9Xigr6z8wWi1nmADgmDUE9Iinz+f14iBEMQjEeRzKh8f9/UVdHTK7Ua9z+cICMIp9pOenuMr0ei6EOei9VklKc2cfy7xSATK+LieP3v2KFNht+9eGBnRZPRdsCSKKOf5z5iUouxXcy7C+0SVJKQUZT+LVKomVSJRpLOQFgqFOU1MksAYjYRlq6tNWvIwx/OahEuRpBSMyaRnipan9wiTUtVEqfC8SwyEIBGNqkyC0nmjzVbyg7Dbjfnh4YLz88PDeNLbW9IOw3EAw8wzYJg/TRqEl0QRtMhbpqKIJVEsWdFMNhsYs9nPqvfv/1HO84cLLYxHIjAQgjqvt+iN3eJyAVi91cWe54bmZiyOjY0yExcu/Gzevj1RKM096e0tutM0aaeoKEIuEHIDIdBXVyt/9/df1QGA+vDhYEJRHI+dzoJG67xeJCnFzKVLWePp0H7kcMBASN7ikGaLywWjxfKjubHxOAsAs37/xdojR46U87wpX06uOXgwk/hLJZKNDgee+3x5d1thtyt/tbR0A2sagZejo06jxTLwqKMj64Kkz1eVJEyVqFCbXS5wPI/x1tasZiKd+ZKLiz3m+vpvs4QBYPHu3SHodAcLhfxNeXVMWa0Ps3ZBqLv7KFtVFazzel+7+OejjONg9XigY9lgqKvr87VzWcL7gsHEaHv7gSSlQ1aP563Ey3kedV4vAAzldphAkYZemZg4o6+u/mpxbMy8tscqhYEQbHa5YNy6VVEmJ13p5i6XojUiJAg1jZcvf6cnpGUlGjUvjIys1tNXnSWwGk6jzQaTzYZynoe5oWFlZWbG9++dO1/XtrXJmrwtREAQjNFbt06kf9pisryUoDSVoDQVn5tbjoXDcjwavbLg97cHBMGoxeb/MugSVB1hmDUAAAAASUVORK5CYII=","Point","ZLwgd","wfBIm","POtMB","HJZAb","atan","TgAfy","#ff3399","10001:3","RlYFM","GTjIv","10001:34","then","djIjj","replace","roadlabelParser","tHDYU","10002:11","HYEKz","10001:22","VmiFb","_features","xegIb","icpMi","GiQwA","10001:136","WHAKo","IqNES","OhSOR","oHqKR","ujPhb","_decoder","rUsWR","dODCS","timestamp","18fcUDFN","pVJMU","10001:18","x-vd-v","10001:174","ASDFGHJKLQWERTYUIO!sdfghjkleiu3~yr5-P&mq9`%zCN*b=8@^xpVM","ecrpE","10002:2","10001:124","OVXHS","zbDnd","https://vdata.amap.com/tiles?mapType=normal&v=3&style=5&version=1.4.28&rd=1&t=","18138edHaMm","UCBMc","xbpBU","fHdxV","10001:1","parse","wcuzu","10001:117","&lv=","wLOOE","#000000","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAR3SURBVEiJrZd/TFtVFMe/59I2hUc2C6RPcLjQuIwsaRPGH0IWYxfsEpuMGCckoH+AyfzLARqDMhL3x0QWMzfAP9WxmA1UXMxIxERgqywGEsOINCEsYgnhx1YGdGU8Sml5xz8qUugPHuL5672+c+/n3HvP+d5TQIPZ29nomuTqRWXj2oyfpxYUNbgSZHVlndWpJ+ralJ/nZvwb3/U84HdfvcEHtMxJyT7eHOPDJ3LQKEuo+nOR9W4vMOljeHyAEor4yBIgGYA8E6HEApiMFJxbwY/1P+G9nmp6tGfw/Vk+l5eBS9N+TmsZZMwrWtYBmCWg0kY4nkOBxwouHs2iZk1g+13WtR1DhyyhrGVQhdurDRgvgGaHwKOn/EPtOFW4TlI4Idh+l3XXC9C7vMb2pgGGsv7foNHwxpcFUgRcVSNwRMO3gUe9/L2kR1ltj7o/4g779BUCiLpsMpVv/iY2HyaWuF6WUNb06/8LBYCmAYYsoez+LJ/bBj7dwVmZqbjQ0KtqSqLSfMK3ZQKtToJZ2t1fWQdaBlXkZeDSzTE+/C/48ilcGZ7jNC3QShvhbCFBMgAWE6HNKZBn2n2c2wtM+zntRA4aAUDY29lolnCmY5Q1QSus2wtBMgBtToESS1JJAAC0DDJkCVX2djamfPX5x28b9Xj91tjeodFWlEsgQtLyU0JAQTZSXjxEHlGQjaJ+z/6gm1ZhJVTakvu5vYDVrL6kC4RFyaQvcSbXFZOmbYyGS3rgy+H4RzfpYwTCokQwc1YioThbGAttGVTR6d6atNPN2FmCpfmEuuL4wXp8gFHHz+pMqZTqVeJHV5QbO7jSJtDQuwXq+4vR7BAxflaZAMTOq4QAo470Itn91NCrYme2S/rI9t8eZ9weZ9QVR7Y22rrHGTW7qJ9uLYywpIc+3nbPK8C8wohW1pqe7SJzvo9hMTFanVur9vgS67wsAb4AB3RKCAsWE7K1XnttToGVdUb3g8h76VEg3aA9+SQDQEQLuhSo9/JMVD40s7uAALEr7h5HzIqTWZ6JkKpT+3Vjj8Udq8zlnW5tEX/9WgSwefa71e1OK7EAIw8xJK4OofNIJoW1iH20yelAumFvY8wSkJFKq5/cE9+In9+i5dll3EhUd4mSpMRCKM2PPyZRvlTaCPMKbrmqaU0AwIAHFw8dpIBVjnUemgH6PdrOHwDcXo6r12YJKMyh1Q9+wftAVJ38PsN1zz+DqzU96r5bnnjQZofA03V8+EIGfbYNDAB/PFS7iPDG+T7tK9RirU4BJYT4rQ8A1I5TxQEjuVqdQlNnsZtJhki/lSLgqhlDZfS3bWDXSQpXjcChhNDV7Ngf3CpHxAZEXTs7TCBJQz+xxPWZqbgwPMdpHaN7a+jrigm5B2l1cgkfHX+Ovojnl7T6T3dw1uVTuGKWcGYpwGn9nsh9qqwD3n8CkfSAxRRRJKsMHMmkkFfB9d/m0PTmMZrSFm4Cs7ezsW9i453NP23TT1RlJcjqSpDVBUUNzvh5alHZuOaa5Gp7Oxu1zPk3AczbrAArvrAAAAAASUVORK5CYII=","ICqoT","length","AZuIJ","HXdnq","10001:31","evlmM","10001:99","xowuh","eHAES","Faxyb","10001:38","3|6|5|1|0|4|2","vbmwF","10004:18","10004:3","pow","bhIgT","VyuuL","#756BF5","TcJdT","FwuCk","389508emJkVi","78240fklJTo","WTzrq","aLjcX","gNDsG","ZbVfu","PoRsb","1136584NxvbBj","CIvUU","10001:13","FhCrq","road:","shPLZ","10001:27","10001:24","10001:102","GyVEV","zNfsK","klgqB","hsHbs","fat","oWQbl","YgfQX","10001:16","10001:4","10001:10","10001:108","aPHJd","UELzg","MtZCN","10004:8","JRxne","VRwOS","aBxyY","2648670QagKKI","road:roads:levelThreeRoad","CjJSq","#3399ff","10001:46","Tpyaa","Sdjme","QxIAG","JIehD","TUwAH","hYSjx","pqIUw","10002:1","Yvxvz","lIwEG","road:roads:provincialRoad","CRKOw","10004:1","COGHx","#339933","KvBMW","lkWjE","RLOLm","CwKUc","road:roads:highSpeedRailway","kxFVx","level2","10001:109","fkeBC","oqehw","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAATiSURBVEiJrZdrTJNnFMf/xZfRi9BCsVRgKd3oNsQNSYw1WUbKjB+8zsiQaJTURZgxFre5yaYR3kCWwQQWhezDSJAAYpC5C1G2ZJl0GBPRmQqxwdFmbbGFtlBaCX0vanAflhJK39rL9v/09jw9z++5nfOcB4hCGi3Jv3lv7LDXt9DhcHlsHt8866foRT/FLE5OuZnJafeU3TnT9+vw3ePbdGRKNH3yXtR49fotxcbC3DMyaarWbJtKNJqssDhcsNqd8NMsAEAmFUMo4EOZJUexugCSFBHrnPH++GlLx8eD35LOmMH3x806Raa8we6aFbb1DMA954tmIpClSVC2vQgb1uXSHs98vUqZ+VVUYA1JEm0HtL1rpOLS1p4BGE22qIBcA6g7cQguz+Pvq3o79+tJ8tny9lUroV0fHvuNefJ0R82FbjhcnrigAOCnGdwZm8C76rfWlWxSFxmSRZesev1ioD1oxg8mrFeEgqTSk43tcQO5VFdVDh7Qv/61nH0BW0Lgw/Jo+tQaqbi0sb3/f4UCQGP7FayRikvvj5t1QeBdlWS6JCW5tuZ8d9SHKBb5aQatPQNQZMobrl6/pQAAAgCaTh9pMYybhSuhzdUVUGbLY4K453w4WtsaYjeabLC7ZoUbC3PPAKhM0GhJvkwqKekbHA75c6zQSGrrGYBMmqrVaEk+UXP0vXKvbyFktlzy0wyu6e+gb/CPuMDuOR/MtqnEet3e/QmFb6g2D42MRuUoEvBRtq0IzdWVQXZZmgR1VeUQCfgR+zCarFj/6ivvEBTLbrE4wmY2TimzM4KhJw4tZSyL3QUgEMd/hfhaHC5QLLuFeP58MZ2imZjAXFAA2KlRB7Xv1dWH+FjtTvCTEuVEaspqgdvzOC6wn2ZgNNlgRGhaDcw81IcF/6XERCLCBRURfE0/AiHH3kZaRYJ+8uSZSJCU6I9juWVp4pCDtnxQh06dC/WRiuGdX6ATKJqZzYkzXv00C4vdBbfHB7fHh8Dg/TSDs+e7OH2EAj54vIRZIoHHu6nMytjHdQIjgxmcbPxu6XexugC6g7vR2jMAq4N7j5VZcgiTkn4nHv7tuJGvytmHX0IzV6waGhmF1eEMe7ACgzM8NN0mmi//dPmHc1+0ydIkxMrs9cBkw3qVgrODsm1FnHb33OOwYFmaBKmS1dQHZ3/u4gGAeXL6Is2w2poLoftSrC5A2faipViNRlzxCwC6g7uRJU/vfj0nu5wAgOG7xvo9WzeX5asUgpWlztDIKIwmG8q2F6FYXbBkD5ev3XPcOUGWJkFhXi5V/lnTJ8CyIL73wPRR9tr0b042tCNcaAUyFQDOqy+cAn4UxVQrX177dRAYAMYmrP084H2uJf8vaq6uAEWz3KUPAFT1du4XJwv1zdUVMe1pOIkEfNRVlYMgVumP93YeWN4WVGVa9fpFQ7Lo0ta8N/N2Fm/KvzM2EXbZIylfpcDZYwdA0Wx/RWf7npXlbdhEbXk0fUqSklxrGDcL+waHYyrojx/cjeyMdMo25fx8Q14u52F44Q2xq5JMbzp9pEUmlZR4fQvCoZFRWBxOUDSDwI0mEiQhJ1sOZVYG8lU5yFVkPnV7vJ1/Gsxflux4O77XQEAaLcm/cdtQGXi02Z0z/n8fbfSixzfPOlwem9e30HHz3thhjZaMXIYA+AcfiyTGkHk4MgAAAABJRU5ErkJggg==","#33cc33","road:roads:highWay","MhGuA","sinh","hAGVC","10001:23","parseCode","YJxQc","10002:8","load","1|6|4|3|0|5|2|7","10001:28","WtDxs","#9933cc","PdHZk","10001:70","10005:17","omwQU","10001:72","BCfxY","indexOf","vFvOX","BwXQd","normal","kdbIw","ageSO","YktwX","hxOWn","substr","10001:2","10001:19","10001:15","kLYIe","PtQDC","lYgkO","Ydaer","1|0|4|3|2","qULRi","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAWDSURBVEiJrVdrTFMHFP7AltLSlnltvYxbBmnrRqdWXBiMEDsSJehcHA8xQdhEswgZojMY3GIyuxkfI6CZhoUfk5EFbOYDTRa2MdTUbYo4cViJEGw7Cr1Ibak8Wm4vGrY/tpHa1kL2/bq559zznXNyXhcIA6VZ2uhu/cD28TFXo83qtIw7pthpl2eWcbGzDwcdntHBsZHRIeePf/5k2FW54aQ4HJsRoYRtLdcTV2cmH1hCikqHBmxco4HGiMkO2uwA42IBAAQpBl8YhXi5FGnZKoheEbCOhxMX6/a37P325+rReRP33bFUypIkx0aHnQJd3WU4bZPhBAKCFCOnJB2q1ETmsX3qUOIbcUfDItZmaTnF33x8hiBFhbq6DhgNdFiEgRyoqMnHmG3y/Jk9p4u0eu3T5+WL/EnLmnZ1zLBPNtZXt+KR9fGCSAGAcbPo7TQjLVv15tv56RpRj6BFP6if9crnRPzgrvUsPyaqsLZCt2DCQKioyQcQcW7ZKtkW77tI7wNttFUTpKiw8au2kEaUagpHzpchpyQd/BheWMSNX7aBIEWFfXcslXOIq7JqJWJCeLC+uvWlRbSYFIMv5GF9STqOXChDUVU2CDJ0BzFuFrq6DsiSJMfaWq4n+oh3NxQfv3/bIgi3chcCo4HG6LBTsDoz+QAARJZmaaOJpbEF7c1d8zLU3tyFQ9uaoKvrCLvVdHWXsYQUlZZmaaM55Z9v/mjC6Zp3tL/O01EAcNomMTRg41ZqtxZxklOT3rl6tnveRpRqCvFyKSiFFADAuFg4bZPo7TSHzIDRQCPjvRVrOCwzs3bEbA+bbGWGHABQUVMQUCevXAOjwYpg027EZAfLzKzlYPZfCeOaCUlIyaXILV8DpVoWpoMy7PhiIwLNA9rsAC+aG8cRETH8YKnxzt20bFVYhPSzBWIyWEGbHAF1GBeLqGgulxMRZE94Z22oHjU+IzAZrDAaaDBuFpRcCkohgSYvBb03TLjXaQ74LYdlnjzlC3lcxs3OEeSWaeaQMi4WRgMNo8GKEbMdRgMNfgwPlEIChVoGTV4KKLkUTtvks1XJQ1q2CnvXn3whoCmnm+F43KyDkkte9U+3yWAF42Z9aaPNdhCkGJRcghUZCuSWaXwVfe+GCQDAF/JQv60VmrwUrC9JDxgpXxgFREY4OIiM+CNeId3in5Jrl3p8LZNTkg5KIQFBin0R3eroQ3tzF3YcfB+/X+rBYlIMpVoG/8z5I14uBY8fdSXS0v/wqlJNvaBQUZOPipoC5JVrfMZokx2HtjX5epY2By6gUEjLVqH/9uDNyOYTV3QJy8in/kX0fOt4DwKvAy+LKhgIUoxYQjjdcPT8D5Gnftk9+cg63lxUtW5BxvzBj+EFXZc5JelwPpq40KTXehYBwNrVm+4tT5fvHH5g4zptUz4DSao4AMDKDDmSkuNAJhCg5FIkqeJAyaVITk2EmIjBygwFklRx4At5SE5NhFItAzeKg2sXe9DfbfFFu2lH5vTXHzZu6Bz8bdrXxPf/+udTMoE4UfuJbsGpDAbvTPC4PPspJVkD+J0+A3eHz0UAm+urW/9X4n31RWDcM4FPHwA4s+d0kTCWr99XX/TSqyIc8GN4qKjJxyJOpL5lz3dbn5fNuTL1g/pZUY+gRbV2lerdvJTlvZ3mBaddqaZQdvgDMO6Zc9+XN+T6n7dBD3raaKsWE8KD929bBO3NXfM66Iuq1iEugZi2Djo+U72VeCqQXshfmKqsWsnuhuLjxNLYggmnS3Crow8jZjsY14zPEb6QB0ouQbxCCqWawmuvk0/GbFNNf1/vP7yxONMSlrfBUJqljb7Z3rvT+9NmGxpzT7s8s9Muz+y4Y4q1WZ2W8TFXY7d+YHtpljY6HJv/AUPdZb44jkljAAAAAElFTkSuQmCC","codeBookLen","road:borders:China","QEZFQ","RpqKi","qLXbC","zUlOY","RpHCm","TmCYo","jmoTq","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAATdSURBVEiJtZd/bBNlGMe/96u9vbBdF09aFmknzrD9QUgwARKzSkKQP0x0E7dkCEtRRkAkaGLQhSCNi4wYgy4aTKzOBVTiBgH3n1HMZJCgJpgxzYos6a7i2o2Otd16vetd7/xDW/fjOjuG378u7z15P/e8eZ7v+xxQhHz+EH/tRnp3fFrvjEzo0t2krqbShiErhnF7XFNuj+ujkTuZry79LL/8vH+irJg9qYVenr+a9myo4o48WE77QqM6NzSSQXgsi3BUg6yaAABRYEB4Cm4Xi9p1PMqW0er4ZPZCe2f81S7/iuiiwYPDysFVLu5EJJYlgd4pxOLZYhKB6GBQ7yVYW2VLTySNtkcquPaiwJv9JvuRL/OlKDANgd4pBCWtKKDVB7TuEjCeyJ470GVr6vNTekHwZr/Jfv6S/u2UbG7u6E5AVsx7gs6EH2ooA8Ogb+cpdutM+Czw0IjaTex0w9HA5JKAc9Xa7ABg9tRU2htza3TuQYpoh0WBaejoSd5XKAB0dCcgCkzD4LBycBa4yT8qCqX0sfYziaKLaDGSFROB3imscnEnzl9NewCABYC2PeLJweEMKQRdv8aGbRsJ3E4WsmIgKGm4cFmGKNDYtrEEbicLwtMIj+noH1BwZUCZt0dQ0hCJZcmGKu4IgL2Uzx/i33/NM/FW56Ql+FBjGdavsS8qwysDCgK9U/PWRQeD4/vKtX3HpTL6xWdWNCemswWzdTtZy/XrN9WCrVbt4SzXY/EsQqM6t+9ZVxO99lH7pn6Lo6nzEhC+sLGlimg1q5MaGsmgejVXS6dVbAlH9XkB9U8sK5htMar2cDjUON+2w2NZpFVsoU3DFJdqFItROKrBzsFFC8uZklji/rdQIcmqCTtHczS14P30/4lWMqZO7IunL1ug8BaSKDBITGfTrKyYMbeLWxlLqAWDZcVEUMpAiuogPA2Pi81XbFDSIEV1yIqRX8/d1VYiPAWKpmIsQxn9bifTeP2mdWBHdxIzayBXiLleDUoaCE9BFJi/He0HOQ+wktvFosSOS+zvfxrf11TaGi9elucFeVwsHhAY1K7j8xuFx3R882M6b4t1XoJtG8msjIKSBqsWBYDadTwGb6nX2I8vps5+0lr+oehg2LnutePJ5QhKGgK9UwhHNRCeRnUlh3ovQb2XIJYwIAo0OroTeRdzO1k8Vm1HnZfMg4oOBsJyRv706/HTFACEIvpnimr42k/H80F1XoKgpFnaYm68cTtZdPQkLW800cHA7WRx/ea/tdPydClWisyZqodszRQAfPFdfPVTm0p/PXU+WXKvo85/SXQwePMFh7z/3THPWX9FLF8BA7eUVypE9r2jgckljzxW0NZdAmTFfN2zknsHmDP6/Dai9tCgnpt55PdDbS3lkFXDevQBgANdtqZSQvW1tZRDdDBLBhKeQmuzAwyDvv1dth0z380C9/kpfecpdqusGj2tu4Qlwas9HNpaygGYPXMnTGCBgV6KaIeFUvrY4HCGXLgsL2qg/6d65T+i2htrq/gPrOIWNNwm/6jYtkc8KTrY7YnpLOkfUBCO6pAVM+9mxE7B7eLgdjKoqbTh4QpWuzNpdP00rL29/fESqaivLSSfP8T3/5Lam/tpG72jpVJpw0ilDeNuUlcjE7oUn9Y7r91I7/b5Q3wxe/4FTcsooBbPIn4AAAAASUVORK5CYII=","AjJpx","OTOql","rfQyG","pLCqp","10001:147","road:roads:secondaryRoad","status","GDsAD","wiySu","lwXlL","ZQycO","xdyFT","ZxWAj","hwoty","10001:9","AAKdx","road:borders:provincial","ZPKJm","skozM","pDHyB","CTNOt","drYOA","bGWsu","10001:26","#555555","hTTvm","xlANr","ZIuXP","10002:6","YxIQK","TBUxv","lbqXl","build","tileInfo","aQOYJ","dEoUZ","aLJZc","rLWCG","#333388","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAATCSURBVEiJrVdvTFNXFP+1wFqelJfNB/iaWCJKUyX9sKLAtk6auLBkxYSooDBj2oiOxrk4J4yMBCuE2UyjC1umcQiMIfuDuJnAJ4IrEQnO2YQ1SFMHtJ3yBhQmtLy2YnAfSBlU+vpg+316755zz+/cc88991yABzRGnbhzoE/v9j6pd0wyzrGZqYDHPzvv8bPzQxOP/EMTj0adk8wP1+93vZ9pfDeej00Bl7DuTluyRp5RISUTdA+YkRiLywb7mAv2cRe8fhYAQJMU4sQE5Iky5CrVeHldfGD07/GfjtSf/fCesfGvVRPfHbYe35K00TTiZoiqjjow024+CwFNUjiizsNrKUrf2MxkdZp081lexBqjJvq8/lKLlKTyz3TUweKy8SJcyYHLReV4/MR9vbTRUGg2mp8tlUeFktYfa+70zT3VGlpMcE4xayIFAG+ARfdDC3Yr1dv2ZO7b2b/Ocs1hdswH5ctW/Jtz8EeJiMg/2FC5ZsKVcKmoHABatydvLQiOCYMfNsZZJiWp/NIbtbwNqmQKdJ34Cs36KkhERFi9srZaSEkq/+6w9fgy4nRjIZUQT54uaTFxJpFERODcng+QnaoCAOQq1ZCICciTZNgpV4Wd5wmwONNRhy1JG011d9qSF4mbjlZf6B2yEpEy98COHGTLVajUFoMmKXTbLQAAZtodMQktLhtG3AyhkWdUAIBAY9SJ20o/n9R/U81JTJMUbhrOL/7fd9lgaDFBIiLgCbCcpEttfF9cM/fOpyXxwlN7Dh9ye6YjrjZdpnjhX54o400KLETmATMSU5FfUijMSlFmtVt7Ik46os57YSxXqQYAZKeqcNNwHjRJRbRjcdnwarLiTaE34NtlH3dxKssTZSsa1SrVkIgInHyrCDRJoVJbHJHYPuaCN+DbJcTz51Sw7oZDcGWhkIiJxUQD/g0/J/G4C7Exog3C9XFkbKT9zeY4KqGycE4G4fWzIF4SxQgjXFCgSYrX3gURDH8kCH1z/mdx4vCKwWLBFxIxgdSk8OGmSQqT3mmf0ONn3Vz7whXmcOAKd5yYAAQCtzBaGHVbzuFh6Pnlg+xUVdhwyxNliBPFdkX3P7bfUskUBStqAcgw6VZNzIVcpRp9w9a+6JobV7679cnVL2mSig7N7gPbc9YUamDhvF7salk2RpMUKAnJvnf5apMAAAaZkYbZp36docW0TLFZXwWubYhEHHqvV2qLkULR36ZJtxyKBoBfBnqrC7K0+1UyRezSW+b/bAhoksLrm5VszjnDSWDJIe4Z6j+Rsl568WB95aoKP1/Sy0XlmPGxHyvo5M+WEQPAPcdgq0CAfaEh/69o1lfBE2BXbn0AoLTRUPgKITE366tWVa3CQSIicKmoHDFRUeZTDYaipbJlXabD7JjvX2e5plG+vbVwR05a90MLvGsMu0qmQO3+j+AJsK3HrhzOC21vwxZqG+MsS4gnT/cOWYmve35eVUNfqS3GJopm/xj7szwzRfnFSnqcN0S6sZBqOlp9YQNJ7XV7pol2a8/i8yXoSPD5Ik+SQSVTYBu9aW50eqLRbP+1pviNvU5e3oaDxqgTt/9++2jw0eZwj84uPNpm58dmpgKOScbp9j6p7xzo02uMOjEfm/8ASLDpDGPzmCYAAAAASUVORK5CYII=","TKOgt","eKmUr","10002:15","PVKHC","road:borders:land","TzYAr","wYbDl","text","SbxVI","OLCHQ","10001:6","region:"];return(E$6=function(){return t})()}var l=N$6;function N$6(t,e){var n=E$6();return(N$6=function(t,e){return n[t-=233]})(t,e)}function d$4(t){return t}!function(t,e){for(var n=N$6,i=t();;)try{if(394808===-parseInt(n(326))/1*(-parseInt(n(338))/2)+parseInt(n(371))/3+-parseInt(n(677))/4*(parseInt(n(258))/5)+-parseInt(n(405))/6+-parseInt(n(566))/7*(-parseInt(n(378))/8)+parseInt(n(646))/9*(parseInt(n(372))/10)+parseInt(n(662))/11)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$6);var J=l(484),x=l(674),a=l(524),n=l(609),C=l(238),o=l(665),b$3=l(290),u$1=l(638),H$2=l(435),w$1=l(474),g=l(273),U=l(598),z=l(610),e$2=l(349),y=l(537),c=l(281),f=l(288);class TilePois{constructor(t){__publicField(this,"z"),__publicField(this,"x"),__publicField(this,"y"),__publicField(this,_Lg),__publicField(this,_Kg),__publicField(this,_Jg),__publicField(this,_Ig),__publicField(this,_Hg),__publicField(this,_Gg),__publicField(this,_Fg),__publicField(this,_Eg,{level2:0,codeBook:l(331),codeBookLen:0,H:0}),__publicField(this,_Dg);for(var e=l,n={CRKOw:e(361)}[e(421)][e(540)]("|"),i=0;;){switch(n[i++]){case"0":this[e(539)]=-1;continue;case"1":this.y=113757;continue;case"2":this[e(647)]={};continue;case"3":this[e(658)]=t;continue;case"4":this[e(312)]={};continue;case"5":this.x=213548;continue;case"6":this.z=18;continue}break}}[(_Lg=l(539),_Kg=l(325),_Jg=l(312),_Ig=l(234),_Hg=l(647),_Gg=l(654),_Fg=l(518),_Eg=l(322),_Dg=l(658),l(445))](t,e){var n=l,i={aqRkJ:n(446),RlYFM:function(t,e){return t+e},fkeBC:n(561),SbxVI:function(t,e){return t(e)},ageSO:function(t,e){return t(e)},vwqzz:function(t,e){return t>e},zNfsK:function(t,e){return t===e},RpHCm:n(657),ecrpE:function(t,e){return t<e},CYooY:function(t,e){return t<=e},jZofV:n(329),CIvUU:function(t,e){return t!=e},HYEKz:n(590),GBvca:n(331),WTzrq:function(t,e){return t===e},AAKdx:function(t,e){return t+e},fHdxV:function(t,e){return t+e},vFvOX:n(337),POtMB:n(346),BwXQd:n(235),oqehw:n(532)};if(i[n(373)](-1,this[n(539)])){this[n(539)]=0,this[n(312)]={};var r=i[n(300)](i[n(500)](i[n(341)](i[n(500)](i[n(457)],e[n(285)](";")),i[n(294)]),t),i[n(458)]);this[n(658)][n(596)]({url:r,responseType:i[n(434)]})[n(303)](e=>{var r=n,s={eYhVH:function(t,e){return i[N$6(276)](t,e)}};if(i[r(388)](200,e[r(491)]))for(var a=i[r(481)][r(540)]("|"),o=0;;){switch(a[o++]){case"0":this[r(322)][r(475)]=d[r(351)];continue;case"1":if(i[r(332)](c[r(351)],10))return[];continue;case"2":l[r(645)](t=>{var e=r;s[e(247)](t[e(351)],2)&&u[e(549)](JSON[e(343)](t))});continue;case"3":this[r(322)][r(560)]=d;continue;case"4":i[r(591)](JSON[r(343)](l[r(613)]())[i[r(614)]]||"v5","v5")&&(p=333,d=h[r(464)](0,27));continue;case"5":this[r(517)]();continue;case"6":this[r(234)]&&this[r(234)](this,1);continue;case"7":this[r(322)][r(431)]=Math[r(365)](2,t);continue;case"8":this[r(322)].H=p;continue;case"9":if(i[r(379)](i[r(309)],typeof c))return void(this[r(539)]=-1);continue;case"10":this[r(539)]=-1;continue;case"11":var c=e[r(278)];continue;case"12":u[r(645)](t=>{for(var e=r,n=i[e(237)][e(540)]("|"),s=0;;){switch(n[s++]){case"0":this[e(654)]=l;continue;case"1":var a;continue;case"2":a=this[i[e(300)](c[3],i[e(433)])](t,o);continue;case"3":var o={z:i[e(533)](parseInt,c[0]),x:i[e(533)](parseInt,c[1]),y:i[e(461)](parseInt,c[2])};continue;case"4":var c=l[e(540)]("-");continue;case"5":this[e(518)]=c;continue;case"6":var l=t[e(613)]();continue;case"7":for(var u in a){t=a[u];this[e(312)][u]?Array[e(597)](this[e(312)][u])?this[e(312)][u][e(549)](...t):Object[e(659)](this[e(312)][u],t):this[e(312)][u]=t}continue}break}});continue;case"13":var l=c[r(540)]("|"),u=[],h=i[r(616)],d=h,p=512;continue}break}})}}[l(517)](){}[l(442)](t){for(var e=l,n={JIehD:function(t,e){return t<e},dODCS:function(t,e){return t(e)},qLXbC:function(t,e){return t*e},lkWjE:function(t,e){return t-e},HGPLU:function(t,e){return t+e}},i=this[e(322)][e(560)],r=t[e(676)],s=this[e(322)].H,a=this[e(322)][e(475)],o=[],c=NaN,u=0;n[e(413)](u,r[e(351)]);u++){var h=r[u],d=i[e(456)](h);n[e(324)](isNaN,c)?c=n[e(479)](d,a):(o[e(549)](n[e(426)](n[e(245)](c,d),s)),c=NaN)}return o}[l(642)](t,e,n,i,r){var s=l,a={MJEuV:function(t,e){return t-e},KvBMW:function(t,e){return t*e},AfwhK:function(t,e){return t/e},TcJdT:function(t,e){return t+e},CqCMB:function(t,e){return t/e},GyVEV:function(t,e){return t/e},Tpyaa:function(t,e){return t*e},IpnwO:function(t,e){return t*e},pJFez:function(t,e){return t+e},PtQDC:function(t,e){return t/e}};return[a[s(650)](a[s(425)](a[s(606)](a[s(369)](t,a[s(594)](i,256)),n),360),180),a[s(387)](a[s(410)](180,Math[s(296)](Math[s(439)](a[s(545)](Math.PI,a[s(650)](1,a[s(387)](a[s(410)](2,a[s(255)](e,a[s(469)](r,256))),n)))))),Math.PI)]}[l(625)](t,e){var i=l,r={HGzjn:function(t,e){return t>e},TeZLK:function(t,e){return t!=e},TmCYo:function(t,e){return t<e},djIjj:function(t,e){return t>=e},kxFVx:function(t,e){return t<e},hTTvm:function(t,e){return t>=e},OISCN:i(422),lUwDv:i(567),jmoTq:i(396),icpMi:i(465),pFJeV:i(568),wcuzu:i(256),AjJpx:i(395),PdtJN:i(574),oTsDv:i(451),uprNq:i(408),YgfQX:i(557),hxOWn:i(363),IoBXD:i(364),COGHx:i(397),hAGVC:i(593),GurmH:i(328),OLCHQ:i(551),pMhtP:i(432),FGmSn:i(386),MxXJL:i(360),aBxyY:i(569),wasaI:i(449),WHAKo:i(535),YktwX:i(380),ZxWAj:i(542),xfysA:i(467),sRQMv:i(394),ZPKJm:i(342),ovYjl:i(554),zUlOY:i(316),zaUZz:i(385),ICqoT:i(611),KbJsT:i(559),lYgkO:i(558),wiySu:i(466),hITCb:i(660),hKXkU:i(270),FXikF:i(664),OoKFo:i(508),WBUhD:i(308),JRxne:i(436),xegIb:i(452),Gyynz:i(523),UvGIv:i(661),ZQycO:i(546),CwKUc:i(356),aPHJd:i(310),uOijn:i(441),QwDJm:i(621),RHpEY:i(254),oHqKR:i(401),TgAfy:i(345),MpXvI:i(298),rUsWR:i(384),MhGuA:i(330),FPPKN:i(447),ipElc:i(334),AZuIJ:i(299),eHAES:i(424),VyuuL:i(656),ayitO:i(454),wLOOE:i(248),GTjIv:i(354),ebOyH:i(489),aLjcX:i(409),oisQz:i(602),kHTPY:i(550),HJZAb:i(302),QxIAG:i(592),HuNVT:i(553),pVJMU:i(417),dsZSJ:i(333),kdbIw:i(260),yMJeh:i(669),Bhwac:i(348),lIwEG:i(275),EihFf:i(444),ArArs:i(277),RLyce:i(620),gXsrp:i(513),ZLwgd:i(584),Rionq:i(499),lOFMx:i(672),skozM:i(368),PzFrK:i(527),xlANr:function(t,e){return t+e},Yvxvz:i(555),PoRsb:function(t,e){return t<e},HLWPc:i(509),tHDYU:i(291),UELzg:function(t,e){return t(e)}},s={};return t[i(645)](t=>{var l=i,u={ujPhb:r[l(253)],gNDsG:r[l(604)],WHYRe:r[l(483)],klgqB:r[l(314)],VpVda:r[l(612)],YxIQK:r[l(344)],Faxyb:r[l(485)],TKOgt:r[l(239)],hsHbs:r[l(265)],zfbVS:r[l(262)],wYbDl:r[l(393)],ftuUQ:r[l(463)],rfQyG:r[l(244)],CTNOt:r[l(423)],aQOYJ:r[l(440)],Sdjme:r[l(630)],QEZFQ:r[l(534)],omwQU:r[l(600)],RLOLm:r[l(573)],IkecA:r[l(640)],nLPjy:r[l(404)],lwXlL:r[l(242)],rEuwd:r[l(317)],cgPjq:r[l(462)],MtZCN:r[l(497)],QfuVC:r[l(632)],huZwv:r[l(236)],VmiFb:r[l(502)],BCfxY:r[l(603)],DljIH:r[l(480)],EqSfi:r[l(251)],eKmUr:r[l(350)],OTOql:r[l(581)],CBYuN:r[l(470)],qULRi:r[l(493)],rLWCG:r[l(579)],PVKHC:r[l(678)],UymmZ:r[l(643)],evlmM:r[l(666)],KOUcD:r[l(547)],IqNES:r[l(402)],OVXHS:r[l(313)],wfBIm:r[l(233)],PdHZk:r[l(263)],qgXFZ:r[l(495)],OimsC:r[l(428)],pqIUw:r[l(398)],kTnDX:r[l(286)],FhCrq:r[l(670)],cdCMy:r[l(283)],JFWPL:r[l(320)],cdEyk:r[l(297)],UCBMc:r[l(575)],XvOBw:r[l(323)],gqklY:r[l(438)],rkOXB:r[l(548)],hwoty:r[l(622)],OuXuh:r[l(352)],zbDnd:r[l(358)],HovKX:r[l(367)],dcexs:r[l(663)],shPLZ:r[l(347)],XmAlV:r[l(301)],FLzFr:r[l(648)],PyEfK:r[l(374)],drYOA:r[l(266)],WtDxs:r[l(556)],pahjF:r[l(295)],jBhSP:r[l(412)],vKxyA:r[l(618)],zrRkf:r[l(327)],TzYAr:r[l(241)],WqIIN:r[l(460)],ArgwK:r[l(267)],RpqKi:r[l(565)],NXFhr:r[l(419)],bhIgT:r[l(628)],CjJSq:r[l(538)],AhnIE:r[l(243)],yjNWa:r[l(268)],vbmwF:r[l(292)],cqXZb:r[l(615)],tFiCX:r[l(655)],dEoUZ:r[l(503)],YJxQc:r[l(629)]},h=[];if(t){var d=t[0],p=t[4];if(s[p=r[l(511)](r[l(418)],p)]||(s[p]=[]),d[l(645)](n=>{var i=l,s=(n[2],n[0]);r[i(543)](s[i(456)]("^"),-1)&&(s=s[i(305)]("^","\n"));var a=this[i(442)]({offsetCode:n[1],x:e.x,y:e.y});if(r[i(287)](s,"↑")&&!(r[i(482)](a[0],0)||r[i(304)](a[0],256)||r[i(430)](a[1],0)||r[i(510)](a[1],256))){var o=this[i(642)](e.x,e.y,this[i(322)][i(431)],a[0],a[1]);h[i(549)]({name:s,center:o,order:t[5],type:t[6],data:t})}}),r[l(543)](h[l(351)],0))for(var m=0;r[l(377)](m,h[l(351)]);m++){let t=h[m],e={fillStyle:r[l(544)],fontSize:12,iconWidth:16,iconHeight:16,shadowBlur:2};if(t[l(624)]){var A=function(t){var e=l;switch(t){case u[e(321)]:case u[e(375)]:case u[e(673)]:case u[e(389)]:case u[e(269)]:return{iconImage:J,fillStyle:u[e(514)],iconWidth:20,iconHeight:20};case u[e(359)]:case u[e(525)]:case u[e(390)]:return{iconImage:x,fillStyle:u[e(282)],iconWidth:20,iconHeight:20};case u[e(531)]:case u[e(651)]:case u[e(487)]:case u[e(505)]:case u[e(519)]:case u[e(411)]:case u[e(477)]:case u[e(453)]:case u[e(427)]:case u[e(562)]:case u[e(587)]:return{iconImage:a,fillStyle:u[e(494)],iconWidth:20,iconHeight:20};case u[e(280)]:case u[e(607)]:case u[e(400)]:case u[e(564)]:case u[e(279)]:case u[e(311)]:case u[e(455)]:case u[e(541)]:return{iconImage:o,iconWidth:20,iconHeight:20};case u[e(274)]:case u[e(526)]:case u[e(486)]:case u[e(582)]:case u[e(473)]:case u[e(522)]:case u[e(528)]:case u[e(636)]:case u[e(355)]:case u[e(631)]:return{iconImage:n,fillStyle:u[e(318)],iconWidth:20,iconHeight:20};case u[e(335)]:return{iconImage:b$3,fillStyle:u[e(293)],iconWidth:20,iconHeight:20};case u[e(450)]:case u[e(571)]:case u[e(578)]:case u[e(416)]:case u[e(588)]:case u[e(381)]:case u[e(570)]:case u[e(595)]:return{iconImage:C,fillStyle:u[e(318)],iconWidth:20,iconHeight:20};case u[e(623)]:return{iconImage:u$1,fillStyle:u[e(339)],iconWidth:20,iconHeight:20};case u[e(257)]:case u[e(667)]:return{iconImage:H$2,fillStyle:u[e(293)],iconWidth:20,iconHeight:20};case u[e(601)]:case u[e(498)]:case u[e(637)]:return{iconImage:w$1,fillStyle:u[e(336)],iconWidth:20,iconHeight:20};case u[e(589)]:return{iconImage:z,fillStyle:u[e(318)],iconWidth:20,iconHeight:20};case u[e(252)]:case u[e(383)]:return{iconImage:y,fillStyle:u[e(318)],iconWidth:20,iconHeight:20};case u[e(580)]:case u[e(572)]:case u[e(585)]:return{iconImage:e$2,fillStyle:u[e(318)],iconWidth:20,iconHeight:20};case u[e(506)]:return{iconImage:c,fillStyle:u[e(318)],iconWidth:20,iconHeight:20};case u[e(448)]:case u[e(577)]:return{iconImage:g,fontSize:16,iconWidth:8,iconHeight:8};case u[e(668)]:return{iconImage:g,fillStyle:u[e(644)],fontSize:12,iconWidth:4,iconHeight:4};case u[e(249)]:case u[e(530)]:case u[e(608)]:case u[e(586)]:return{iconImage:U,fillStyle:u[e(478)],fontSize:17,iconWidth:15,iconHeight:15};case u[e(639)]:case u[e(366)]:return{iconImage:U,fillStyle:u[e(407)],fontSize:13,iconWidth:8,iconHeight:8};case u[e(272)]:case u[e(641)]:case u[e(362)]:return{iconImage:U,fillStyle:u[e(407)],fontSize:16,iconWidth:12,iconHeight:12};case u[e(259)]:case u[e(246)]:return{iconImage:f,fillStyle:u[e(520)],fontSize:12,iconWidth:20,iconHeight:20};case u[e(443)]:return{}}}(t[l(624)]);A&&Object[l(659)](e,A)}s[p][l(549)]({geometry:{type:r[l(307)],coordinates:r[l(399)](d$4,h[m][l(289)])},properties:{...h[m],style:e}})}}}),s}[l(675)](t,e){var n=l,i={NOXvo:function(t,e){return t<e},wfbvn:function(t,e){return t(e)},VRwOS:function(t,e){return t+e},HXdnq:n(382),ihaWs:n(391),XoLmO:n(437),ZIuXP:n(271),lbqXl:n(490),yZSfm:n(634),hXIAj:n(420),GDsAD:n(429),hYSjx:n(406),AMrlc:n(633),ViGBO:n(476),zEYkp:n(529),Psrde:n(501),xbpBU:n(459),Ydaer:n(583)},r=this,s={};return t[n(645)]((t,a)=>{var o=n;if(t){var c=t[0],l=t[3];s[l=i[o(403)](i[o(353)],l)]||(s[l]=[]);var u=[];t[4][o(540)](":"),c[o(645)]((t,n)=>{for(var s=o,a=[],c=r[s(442)]({offsetCode:t,x:e.x,y:e.y}),l=0,h=c[s(351)];i[s(250)](l,h);){var d=c[l++],p=c[l++],f=r[s(642)](e.x,e.y,r[s(322)][s(431)],d,p);a[s(549)](i[s(627)](d$4,f))}u[s(549)](a)});var h=4,d=i[o(619)],p=!1;switch(l){case i[o(653)]:case i[o(512)]:h=20;break;case i[o(516)]:case i[o(240)]:case i[o(576)]:case i[o(492)]:p=!1,h=8;break;case i[o(415)]:p=!1,h=4;break;case i[o(649)]:case i[o(652)]:case i[o(552)]:case i[o(617)]:d=i[o(340)],h=.1,p=!1}var f={geometry:{type:i[o(471)],coordinates:u},properties:{level:l,linetype:d,linewidth:h,sizeattenuation:p,wireframe:1}};s[l][o(549)](f)}}),s}[l(599)](t,e){var n=l,i={oWQbl:function(t,e){return t<e},yvYWw:function(t,e){return t(e)},FwuCk:n(635)},r={building:[]};return t[n(645)](t=>{var s=n,a={MlZJg:function(t,e){return i[N$6(392)](t,e)},RwiqZ:function(t,e){return i[N$6(671)](t,e)},pDHyB:i[s(370)]};t&&t[0][s(645)](n=>{for(var i=s,o=[],c=this[i(442)]({offsetCode:n,x:e.x,y:e.y}),l=0,u=c[i(351)];a[i(563)](l,u);){var h=c[l++],d=c[l++],p=this[i(642)](e.x,e.y,this[i(322)][i(431)],h,d);o[i(549)](a[i(264)](d$4,p))}o[i(549)]([o[0][0],o[0][1]]),r[i(605)][i(549)]({geometry:{type:a[i(504)],coordinates:[[o]]},properties:{height:t[3],a6:t[6]}})})}),r}[l(261)](t,e){var n=l,i={pLCqp:n(472),ecjFE:function(t,e){return t<e},OhSOR:function(t,e){return t(e)},kLYIe:n(635),aLJZc:function(t,e){return t+e},xdyFT:n(536)},r={};return t[n(645)](t=>{for(var s=n,a=i[s(488)][s(540)]("|"),o=0;;){switch(a[o++]){case"0":var c=t[0],l=t[3];continue;case"1":var u={xowuh:function(t,e){return i[s(284)](t,e)},TBUxv:function(t,e){return i[s(319)](t,e)}};continue;case"2":c[s(645)](t=>{for(var n=s,i=[],r=this[n(442)]({offsetCode:t,x:e.x,y:e.y}),a=0,o=r[n(351)];u[n(357)](a,o);){var c=r[a++],l=r[a++],d=this[n(642)](e.x,e.y,this[n(322)][n(431)],c,l);i[n(549)](u[n(515)](d$4,d))}i[n(549)]([i[0][0],i[0][1]]),h[n(549)]([i])}),r[l][s(549)]({geometry:{type:i[s(468)],coordinates:h},properties:{}});continue;case"3":var h=[];continue;case"4":r[l=i[s(521)](i[s(496)],l)]||(r[l]=[]);continue}break}}),r}[l(306)](t,e){var n=l,i={bGWsu:function(t,e){return t(e)},GiQwA:function(t,e){return t>e},TUwAH:function(t,e){return t>e},ZbVfu:n(291)},r=[];return t[n(645)](t=>{var s=n,a=[],o=void 0;if(t){var c=t[0],l=null,u=null;i[s(315)](c[s(351)],1)&&(l=[],u=[]),c[s(645)]((t,n)=>{var r=s;l&&l[r(549)](t[0]);var c=t[1],h=this[r(442)]({offsetCode:c,x:e.x,y:e.y}),d=i[r(507)](d$4,this[r(642)](e.x,e.y,this[r(322)][r(431)],h[0],h[1]));u&&u[r(549)](d),a[r(549)]({name:t[0],center:d}),o=t[2]}),i[s(414)](a[s(351)],0)&&(l?r[s(549)]({geometry:{type:i[s(376)],coordinates:a[0][s(289)]},properties:{name2:l,lpos:u,level:o,roadLevel:t[3][s(540)](":")[1]}}):r[s(549)]({geometry:{type:i[s(376)],coordinates:a[0][s(289)]},properties:{name:a[0][s(626)],level:o,roadLevel:t[3][s(540)](":")[1]}}))}}),{roadlabels:r}}}const Z=N$5;function N$5(t,e){const n=E$5();return(N$5=function(t,e){return n[t-=494]})(t,e)}function E$5(){const t=["enableOperation","Tlhgw","intersectObjectsBy2D","absolute","click","setViewMode","OgDie","lAbTi","bNgYC","jSlmR","copy","ZiaLB","UMcPm","XEzyG","Sprite","order","DBFtB","amap","createElement","getAreaByName","onDistanceDetect","satelliteTile","showIndoorZoom","then","计步器","indexOf","PznMW","addCustomMarker","setAllFloorControl","SRxTN","coordsToLngLat","maxPitch","includes","oUXAd","VRSat","touchstart","manyFloorModeChange","polygonGroup","fromScene","getMarkerById","lightList","iVtfv","DaGlK","ioVAR","BYEmD","xkZAL","file","mapConfig","EgmWx","VlvUm","rpNhB","low-power","GoOAh","find","coordinates","wCYCk","kcoCV","rotationEnable","castShadow","ONfHb","addEventListener","view","setZoomAndCenter","innerText","qVTkQ","addSky","SCHjb","abs","getMapData","addSkyImg","height","cgMIa","backToMap","KDrik","oVEhB","mDcqH","setCenter","bbNkR","</div>\n \x3c!-- <div>计步器","BTCKS","MoAef","parse","addNaviLine","zoom","#909399","RohMU","readyState","buildChange","createAmbientLight","XgiZC","instanceId","className","TXoMT","jfrZG","setSatelliteLayer","#F56C6C","kQqhh","markerCollisionPool","autIi","style","tVaba","options","navi","qpHim","manyFloorMode","eRVhl","eLcCq","opacity","tile","collision","pointerup","CYwXE","yJOcV","innerHTML","json","addSkyHud","polygonData","ldsyY","splice","getPointsFitWorld","rqnPD","near","ceil","modelData","kvXsr","QkiLB","tfFbg","layer","map","YGfmC","getItemById","backgroundColor","stringify","blob","floorId","height:100%;width:100%;position:relative","angleTo","tsbUQ","isArray","start","bfrDl","lat","OMXDM","tan","floorScene","getBoundingClientRect","object","set","touches","interact","clientWidth","append","getPointsFit","handleMarkerCollision",".is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&z=","div","renderOrder","HQipj","oAOyg","https://wprd0","ZDEvS","findIndex","#FFFFFF","isNavi","ceGPy","&x=","build","sJTiG","fov","lowPower","Pwsgs","eLvWc","bFkWJ","BLKiC","SKrZY","clientHeight","mapData","create","container2","initMap","compileEquirectangularShader","setRotation","hideOutViewIndoor","buildData","kvAPj","type","instanceType","testOption","getModelById","hBJKP","visibilitychange","qTQfv","removeNaviLine","display: flex;padding:5px;justify-content: space-around;","remoeBuild","addBuild","mapBackgroundColor","floor","rotateX","customMarkerData","setPitch","sizeRatio","VHsBe","floorChange","domObserver","dfmar",".zip","NsoSa","removeAmapFeatures","TzNhe","OPQrT","yqhsV","features","cxQsi","handleMapClick","fitPolygon","gGfaG","skyImg","addLight","showIndoor","_click","PFkIn","get","zooms","far","gtbAb","bEFKM","left","_mapLayer","sub","HXVjm","visible","outerFloor","ICxqe","QBKjF","mobileZooms","38mdTroZ","addDomMarker","location","bEIry","pointerdown","intensity","forEach","buildId","decay","testaaa",".is.autonavi.com/appmaptile?style=6&z=","removeTile","OxoTB","bvEVL","properties","distanceTo","_hide","aJcew","AHyBy","FhVPO","SwjAU","_noClick","topMap","ZeRfF","mshDS","YUuzI","XARvw","getBuildDataById","loaded","translateX(-90%)","CUmSs","699849KLABFy","zaVBW","parentArea","vgBoH","lwxlX","none",".json","userData","xUMVL","renderer","cKUJJ","points","Alsog","KrOGu","DzyKw","traverse","scale","removeFromParent","addMarker","RKVti","markerPool","0px","vPtHL","mrwRY","ajPjG","cJlhy","createPointLight","getSize","key","dtbEC","lock","addTile","NxvoP","debugPath","rYzZC","status","tYOIS","ddBoq","yEsFI","SGaNK","puLbq","add","331478ymmBhq","&scl=1&ltype=11","disableOperation","switchFloor","getBuildById","bias","fitPoints","setContainer","fontSize","#fff","ciDhh","setZ","maxZoom","SLnaG","obKKi","vjJwS","tiledmapUrl","getMapObj","instanceScale","minPitch","fMmNQ","fEEDz","beaconDetectShow","Polygon","removeCustomMarker","resize","FkPGX","async","lightGroup","NKVjZ","removeOtherBuild","load","shadow=","clone","push","bottom","plane","testMsgSprite","intersectObjectsByLine","path","getStatus","oKlkg","clear","SBIye","childrenPool","transform","nRodu","height:100%;width:100%;","beaconFilterList","3048630nGMYug","polygonLoaded","setDefaultLayer","currentShowBuilds","\n <div>信标","FMkBx","message","rotation","onreadystatechange","body","DEG2RAD","getNaviRotation","pitch","udBiV","GOhBL","user-select: none;position:absolute;left:0%;bottom:50%;background:#000;opacity:0.5;color:#fff;font-size:12px;padding: 5px;z-index:999;","floorHeight","KpfdU","sky-mask","660mVqDKO","FUCVb","iconHeight","vmap","cross","nfcSA","qcTcH","clamp","72edIsgH","nyqqc","addTilePois","toggleModelAnimation","right","QnlQU","route","600072aoEKnq","log","environment","RNmuR","#E6A23C","setView","PRSra","addCustomNaviLine","camera","UkkcH","max","wheel","dir","qVpOj","nPPSz","qkVld","target","hideIndoor","VIDMA","2965930KRnUme","bvKmr","Change","nRWru","getMapDataById","data","1|2|4|3|0","vAumi","values","vRQDH","name","upzFv","HUAPj","center","bXtgU","UTjQz","noMap","FKOZY","0.5","addFromChildrnPool","getPolygonByIdCache","kQuuZ","isSimulate","dqmYp","environmentRotation","RETuO","🚀 ~ showIndoorFitscreen:","setStatus","uAqqK","getZoom","getFit","_features","recoverAmapFeatures","xgNQG","button","send","nextIdx","tilePois","oCiQt","getMapDataByIdCache","curentFloor","isTile","rect","api2","iconImage","color","api/Map/Data/","open","Lgeml","handleResize","naviInfo","beaconDetectShowGroup","circle","maxInMapDistance","min","defailtTile","api","pitchEnable","</div> --\x3e\n ","ehGEi","UNEUe","lng","yiTdO","</div>\n <div>路线","MuJNw","addNaviLinePass","mapId","qbPgm","addDefaultFloor","rXMOG","response","mkVSa","flat","href","Ctnxx","1|3|5|0|4|2","bboxView","&y=","lngLatToCoord","mapChilds","getFloorById","KltWx","filter","emit","eahEn","dispose","getPitch","YEfTN","text","OmBmh","parent","pointerEvents","getRotation","coordsToLngLatWorld","MyFiu","NKeEv","enableDistanceDetect","string","#67C23A","MapData/","mapEl","qIOLm","buttons","XTrAp","没有找到地图:","viewMode","fillStyle","debugBeacon","aTbpV","isShadow","TOoMn","testSprite","sort","mapTile","isOutdoor","psdSM","LRtfG","minZoom","distance","gpsPath","scene","join","setFromPoints","recoverOtherBuild","amOwd","wheelDelta","120483xfaIMO","beaconDetect","width","event","sideMap","jbq","mobileView","isClosedRotat","iDGMR","loadAsync","GbsCL","polygonDataArr","getElementById","line","request","3|1|4|0|2","BJCyt","minor","FMmyh","wYMgs","LPwzJ","tcPCq","random","FejSM","observe","createDirectionalLight","cssText","alqDt","VhHqe","slice","YjPeT","VNCFG","getPolygonDataById","eJVZw","removeAllCustomMarker","AwSuo","sjREt","getPolygonById","JLKcY","originEvent","closeDistanceDetect","testSpriteGroup","DwEZx","showlogs","setZoom","radius","pointermove","SLqao","testPoint","keys","Qqgsw","mCAxx","</div>\n <div>信.标检测","testBox","geometry","position:absolute;left:0;right:0;top:0;height:0;pointer-events:none;\nbackground: linear-gradient(180deg,rgb(56 125 255), rgb(166 197 255) 30%, rgba(0,0,0,0));z-index:1;","IjKXB","gpsFloors","testMsgArr","isWater","render","testMsg","remove","split","areaZoom","OlIYe","KwHcu","isSky","mapSize","auto","length","texture","zXGUg","container","mmqLA","tfaDb","LUrOh","mqMss","onclick","rssi","24341ezeBQp","dragEnable","point","ewJNf","5FsJOdB","viewchange","QnRKT","PFXzK","angle","Marker","BKaar","top","lnglat","Bhboq","FEswr","update","object3d","toFixed","warpScene","handleSpriteCollision","position","xzmBe","Model","showIndoorFitscreen","environmentIntensity","red","dgQXm","js:","uUMXF","ById","dgCZe","instanceRotation","instances","hidePolygon","noTile","children","getCenter","nzwJn","responseType","_callback","inDoorModelScale","domElement","shadow","REGzc","lngLatToCoordWorld"];return(E$5=function(){return t})()}let u;if(function(t,e){const n=N$5,i=t();for(;;)try{if(689347===parseInt(n(939))/1*(-parseInt(n(558))/2)+-parseInt(n(589))/3+parseInt(n(714))/4*(parseInt(n(943))/5)+parseInt(n(680))/6+-parseInt(n(631))/7*(parseInt(n(707))/8)+parseInt(n(859))/9*(parseInt(n(699))/10)+parseInt(n(733))/11)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$5),debug){const t=Z(808)[Z(922)]("|");let e=0;for(;;){switch(t[e++]){case"0":u[Z(980)][Z(1083)][Z(1091)]=Z(751);continue;case"1":u=new Stats;continue;case"2":setTimeout(()=>{const t=Z;document[t(689)][t(1135)](u[t(980)])},1e3);continue;case"3":u[Z(980)][Z(1083)][Z(959)]=Z(987);continue;case"4":u[Z(980)][Z(1083)][Z(824)]=Z(594);continue;case"5":u[Z(980)][Z(1083)][Z(950)]=Z(610);continue}break}}const H$1=[];class w extends d$q{constructor(z2){const i2=Z,e2={ddBoq:function(t,e){return t==e},Qqgsw:i2(966),qIOLm:function(t,e){return t(e)},nzwJn:i2(586),ewJNf:i2(681),OlIYe:i2(679),YUuzI:function(t,e,n){return t(e,n)},LRtfG:function(t){return t()},VNCFG:function(t,e,n){return t(e,n)},UkkcH:i2(1112),udBiV:function(t,e){return t===e},kcoCV:i2(830),OMXDM:i2(1139),rXMOG:i2(932),rpNhB:i2(686),puLbq:i2(1071),ICxqe:i2(525)};super(),__publicField(this,"el"),__publicField(this,_uh,document[Z(1002)](Z(1139))),__publicField(this,_th),__publicField(this,_sh),__publicField(this,_rh),__publicField(this,_qh),__publicField(this,_ph),__publicField(this,_oh),__publicField(this,_nh),__publicField(this,_mh,new Vector3(0,0,0)),__publicField(this,_lh,new Scene),__publicField(this,_kh,new Scene),__publicField(this,_jh,new Scene),__publicField(this,_ih,[]),__publicField(this,_hh,{}),__publicField(this,_gh),__publicField(this,_fh),__publicField(this,"ar"),__publicField(this,_eh),__publicField(this,_dh,!1),__publicField(this,_ch,[]),__publicField(this,_bh),__publicField(this,_ah,reactiveEvent({build:null,manyFloorMode:!1,viewMode:"3D",enableDistanceDetect:!0,closeDistanceDetect:!1,floor:null},(t,e)=>{const n=Z,i={OPQrT:function(t,e){return t+e},ZeRfF:n(735)};this[n(816)](i[n(532)](t,i[n(581)]),e)})),__publicField(this,_$g,[]),__publicField(this,"_p"),__publicField(this,__g,[]),__publicField(this,_Zg,()=>{const t=Z;this[t(619)]||(this[t(619)]={ONfHb:function(t,e,n){return t(e,n)}}[t(1043)](setTimeout,()=>{const e=t;Object[e(741)](this[e(1081)])[e(1112)](t=>t[e(673)]()),this[e(609)][e(1112)](t=>{t[e(1093)]()}),this[e(619)]=null},100))}),__publicField(this,_Yg,{}),__publicField(this,_Xg,{}),__publicField(this,_Wg,new Vector3(0,1,0)),__publicField(this,_Vg,()=>{const t=Z,e={Alsog:function(t,e){return t===e},GbsCL:t(998),kvXsr:function(t,e,n,i){return t(e,n,i)},oVEhB:function(t,e){return t*e},NsoSa:function(t,e){return t/e},HUAPj:function(t,e){return t*e},PFXzK:function(t,e){return t/e},aJcew:function(t,e){return t*e}},{clientWidth:n,clientHeight:i}=this[t(833)];this[t(523)]=e[t(1058)](e[t(529)](i,e[t(745)](2,Math[t(1127)](e[t(946)](e[t(575)](this[t(722)][t(1152)],MathUtils[t(690)]),2)))),devicePixelRatio),this[t(853)][t(604)](n=>{const i=t;e[i(601)](n[i(507)],e[i(869)])&&e[i(1108)](setSize,n,void 0,this[i(523)])})}),__publicField(this,_Ug),__publicField(this,_Tg),__publicField(this,_Sg),__publicField(this,_Rg,[]),__publicField(this,_Qg,[]),__publicField(this,_Pg),__publicField(this,_Og),__publicField(this,_Ng),__publicField(this,_Mg,[]),this[i2(1085)]=z2,this[i2(1085)][i2(1153)]=this[i2(1085)][i2(1153)]||e2[i2(849)](getURLQuery)[i2(1153)],this[i2(955)]=new Group$1,this[i2(955)][i2(743)]=e2[i2(723)],this.el=e2[i2(693)](typeof z2.el,e2[i2(1040)])?document[i2(871)](z2.el)||document[i2(1002)](e2[i2(1126)]):z2.el,this.el[i2(1083)][i2(885)]=i2(1119),this[i2(833)][i2(1083)][i2(885)]=i2(678),this[i2(833)][i2(1075)]=e2[i2(802)],this.el[i2(1135)](this[i2(833)]),window[i2(1044)](e2[i2(1034)],y2=>{var _a3,_b3;const l2=i2;e2[l2(626)](null==(_b3=(_a3=y2[l2(738)])[l2(1009)])?void 0:_b3.call(_a3,e2[l2(909)]),0)&&e2[l2(834)](eval,y2[l2(738)][l2(888)](3))}),this[i2(1052)](z2.id)[i2(1007)](()=>{const t=i2;if(this[t(498)][t(1085)][t(518)]&&(this.el[t(1083)][t(1115)]=this[t(498)][t(1085)][t(518)]),this[t(536)](),this[t(1012)](),this[t(958)](),this[t(656)](),this[t(1053)](),this[t(847)])this[t(554)]=new U$3(this[t(498)],this),this[t(554)].on(e2[t(942)],()=>{this[t(1004)]()}),this[t(630)](this[t(554)]);else if(this[t(498)][t(1150)][0]){let e=this[t(517)](this[t(498)][t(1150)][0].id);e[t(801)](),this[t(624)][t(1150)]=e}this[t(1086)]=new Navigation(this),this.ar=new AR(this),this[t(709)](),this[t(1099)](),debug&&this[t(1086)][t(560)]&&this[t(1086)][t(560)].on(e2[t(924)],e=>{this[t(653)](e)}),e2[t(583)](setTimeout,()=>{const e=t;this[e(1056)](!0),this[e(816)](e2[e(976)])},0)}),this.on(e2[i2(629)],t=>{const e=i2;this[e(624)][e(1150)]?this[e(624)][e(519)]=this[e(624)][e(1150)][e(773)]:this[e(624)][e(519)]=null}),this.on(e2[i2(555)],()=>{const t=i2;e2[t(849)](userTouch),e2[t(890)](setTimeout,()=>{this[t(656)]()},0)})}get[(_uh=Z(833),_th=Z(1001),_sh=Z(846),_rh=Z(770),Z(702))](){return this[Z(1001)]}get[Z(981)](){const t=Z,e={QnlQU:t(663)};return this[t(498)][t(1085)][t(842)]||location[t(806)][t(1016)](e[t(712)])}get[(_qh=Z(1031),_ph=Z(498),_oh=Z(1085),_nh=Z(550),_mh=Z(746),Z(598))](){const t=Z;return this[t(1001)][t(598)]}get[Z(722)](){const t=Z;return this[t(1001)][t(722)]}[(_lh=Z(853),_kh=Z(957),_jh=Z(1128),_ih=Z(609),_hh=Z(1081),_gh=Z(1133),_fh=Z(1086),_eh=Z(523),_dh=Z(847),_ch=Z(974),_bh=Z(554),_ah=Z(624),Z(1099))](){const t=Z,e={SwjAU:function(t,e){return t+e},ehGEi:function(t,e){return t*e},cgMIa:function(t,e){return t+e},UTjQz:function(t,e){return t/e},gtbAb:function(t,e){return t-e},eLcCq:t(1139),SGaNK:t(698),FejSM:t(944)};let n=document[t(1002)](e[t(1090)]);this.el[t(1135)](n),n.id=e[t(628)],n[t(1083)][t(885)]=t(914),this[t(1001)].on(e[t(882)],i=>{const r=t;n[r(1083)][r(1054)]=e[r(578)](e[r(792)](i[r(692)],.4),"%"),n[r(1083)][r(1091)]=e[r(1055)](e[r(748)](e[r(547)](100,i[r(1067)]),100),"")})}[Z(709)](){const t=Z,e={vPtHL:function(t,e){return t!=e},tsbUQ:t(640),QnRKT:t(1092)};let n;this[t(770)]=new TilePois(this),this[t(770)][t(978)]=i=>{const r=t;let s=n;n=new Group$1;let a={};n[r(974)][r(1112)](t=>t[r(818)]());for(const t in i[r(764)]){i[r(764)][t][r(1112)](t=>{const i=r;let o=t[i(572)];if((null==o?void 0:o[i(743)])&&e[i(611)](o[i(743)],"↑")&&o[i(1083)]){if(a[o[i(743)]])return;a[o[i(743)]]=1;let r=JSON[i(1116)](o),c=null==s?void 0:s[i(974)][i(1037)](t=>t[i(596)][i(617)]===r);!c&&(c=new TextSprite({fontSize:o[i(1083)][i(639)],strokeStyle:e[i(1121)],fillStyle:o[i(1083)][i(839)],strokeWidth:.15,src:o[i(1083)][i(777)],vmap:this,text:o[i(743)],renderOrder:o[i(999)],iconHeight:o[i(1083)][i(701)],group:e[i(945)]}),c[i(959)][i(994)](this[i(811)](t[i(913)][i(1038)])),c[i(596)][i(617)]=r),n[i(630)](c[i(606)]())}})}this[r(1128)][r(630)](n),null==s||s[r(818)]()}}[Z(517)](t){const e=Z;let n=this[e(974)][e(1037)](n=>n[e(738)].id===t);if(n)return n;if(n=this[e(752)](t),!n){let i=this[e(498)][e(1150)][e(1037)](e=>e.id===t);i&&(n=new x$9(i,this),this[e(630)](n))}return n}[Z(607)](t,e){const n=Z;let i=this[n(813)](t);return null==i?void 0:i[n(607)](e)}[Z(559)](t,e){const n=Z;let i=this[n(813)](t);return null==i?void 0:i[n(559)](e)}[Z(1011)](t,e){const n=Z,i={IjKXB:n(837),oKlkg:function(t){return t()},PFkIn:n(1011)};let r=this[n(737)](t);return r?(e.id=i[n(672)](createShortId),r[n(521)]=r[n(521)]||[],r[n(521)][n(665)](e),this[n(816)](i[n(543)]),e):console[n(715)](i[n(915)],t)}[Z(655)](t){const e=Z,n={KpfdU:function(t,e){return t===e},TzNhe:function(t,e){return t(e)},bvEVL:e(655)},i=i=>{const r=e,s={RohMU:function(t,e){return n[N$5(697)](t,e)}};null==i||i[r(888)]()[r(1112)]((e,n)=>{const a=r;s[a(1069)](e.id,t)&&i[a(1102)](n,1)})};n[e(531)](i,this[e(498)][e(521)]),this[e(498)][e(1150)][e(1112)](t=>{const r=e,s={VHsBe:function(t,e){return n[N$5(531)](t,e)}};t[r(519)][r(1112)](t=>{const e=r;s[e(524)](i,t[e(521)])})}),this[e(816)](n[e(571)],t)}[Z(893)](){const t=Z,e={zXGUg:t(893)};delete this[t(498)][t(521)],this[t(498)][t(1150)][t(1112)](e=>{const n=t;e[n(519)][n(1112)](t=>{delete t[n(521)]})}),this[t(816)](e[t(931)])}[Z(721)](t,e,n={}){const i=Z;let r=this[i(813)](t);return null==r?void 0:r[i(721)](e,n)}[Z(516)](t){const e=Z;let n=this[e(974)][e(1037)](n=>n[e(738)].id===t);n&&this[e(921)](n)}[Z(1004)](){const t=Z,e={eJVZw:function(t,e){return t+e},MyFiu:function(t,e){return t/e},bFkWJ:function(t,e){return t+e},bfrDl:function(t,e){return t*e},bvKmr:function(t,e){return t+e},upzFv:function(t,e){return t-e},RETuO:function(t,e){return t+e},VlvUm:function(t,e){return t+e},MuJNw:function(t,e){return t-e},VhHqe:function(t,e){return t*e},Tlhgw:function(t,e){return t+e},tVaba:function(t,e){return t+e},QkiLB:function(t,e){return t-e},TXoMT:function(t,e){return t*e},FEswr:function(t,e){return t-e},SCHjb:function(t,e){return t!==e},Bhboq:function(t,e){return t&&e},FMmyh:function(t,e){return t===e},lAbTi:function(t,e){return t(e)},rYzZC:function(t){return t()},dqmYp:function(t,e){return t<e},mrwRY:t(944)};let n=new Vector3(0,0,-1),i=50;const r=()=>{const n=t;let r=this[n(598)][n(980)][n(1129)](),s=e[n(892)](e[n(827)](this[n(598)][n(980)][n(1134)],2),r[n(549)]),a=e[n(892)](e[n(827)](this[n(598)][n(980)][n(497)],2),r[n(950)]);return[[e[n(494)](s,i),e[n(494)](a,i)],[e[n(494)](s,e[n(1124)](i,.2)),a],[e[n(734)](s,i),e[n(744)](a,i)],[s,e[n(758)](e[n(1033)](a,i),e[n(1124)](i,.2))],[s,e[n(892)](e[n(797)](a,i),e[n(887)](i,.2))],[e[n(744)](s,i),e[n(985)](a,i)],[e[n(1084)](e[n(1109)](s,i),e[n(1076)](i,.2)),a],[e[n(953)](s,i),e[n(797)](a,i)]][n(1112)](t=>{const e=n;let i=this[e(1133)][e(986)]({x:t[0],y:t[1]},[this[e(1133)][e(667)]]);return i?i[0][e(941)][e(642)](1e3):[]})};let s=this[t(554)][t(1021)][t(974)][t(815)](e=>{var n;return null==(n=e[t(596)][t(1100)])?void 0:n[t(505)]});const a=e=>{const i=t;let r=this[i(1133)][i(669)](e,n,s)[i(845)]((t,e)=>t[i(851)]-e[i(851)])[0];return null==r?void 0:r[i(1130)][i(596)][i(1100)]};let o=this[t(498)][t(1100)][t(815)](e=>e[t(505)]);o[t(929)]&&this[t(1001)].on(e[t(612)],n=>{const i=t;if(this[i(624)][i(1088)]||!this[i(624)][i(829)]||this[i(624)][i(899)])return;let s=this[i(983)](n[i(746)])[i(642)](1e3),c=e[i(991)](a,s);!c&&e[i(623)](r)[i(1037)](t=>c=a(t)),c&&e[i(756)](n[i(1067)],c[i(1006)])&&(c=null),c?this[i(1086)][i(624)][i(1147)]||this[i(1086)][i(624)][i(755)]||this[i(541)](c[i(505)].id):this[i(624)][i(1150)]=null,o[i(1112)](t=>{var n,r;const s=i;!this[s(1086)][s(624)][s(713)][s(1037)](e=>{var n;return(null==(n=e[s(519)][s(823)])?void 0:n.id)===t.id})&&e[s(1050)](null==(n=null==c?void 0:c[s(505)])?void 0:n.id,t.id)&&this[s(731)](t.id);let a=this[s(1086)][s(624)][s(1147)]||this[s(1086)][s(624)][s(755)],o=this[s(1086)][s(624)][s(713)][e[s(1109)](this[s(1086)][s(783)][s(769)],1)];if(e[s(952)](a,o)){e[s(877)](null==(r=o[s(519)][s(823)])?void 0:r.id,t.id)?this[s(541)](t.id):this[s(731)](t.id)}}),!c&&!this[i(1086)][i(624)][i(713)][i(929)]&&(this[i(554)]&&new Tween(this[i(554)][i(955)][i(605)]).to({z:1},300)[i(1123)](),this[i(683)][i(888)]()[i(1112)](t=>{const e=i;this[e(731)](t[e(738)].id)}))})}[Z(514)](){const t=Z,e={NKVjZ:t(514)};this[t(816)](e[t(660)])}[Z(1066)](){const t=Z,e={dgCZe:t(514),mCAxx:t(1066)};this[t(816)](e[t(969)]),this[t(816)](e[t(910)])}[Z(798)](){const t=Z,e={XTrAp:t(798)};this[t(816)](e[t(836)])}[Z(648)](t){const e=Z;if(t)return t[e(596)][e(1100)]||t[e(596)][e(1107)]||t[e(596)][e(870)]?t:this[e(648)](t[e(823)])}[Z(1053)](){const t=Z,e={mDcqH:function(t,e){return t/e}};if(this[t(498)][t(1085)][t(539)]){const n=texureLoader[t(662)](this[t(498)][t(1085)][t(539)]);let i=new Mesh(new SphereGeometry(1e5,100,100),new MeshBasicMaterial({map:n,side:BackSide,transparent:!0,depthWrite:!1}));i[t(520)](e[t(1059)](Math.PI,2)),i[t(1140)]=-6,this[t(853)][t(630)](i)}}[Z(710)](t,e){const n=Z;if(!t)return;let i=this[n(510)](t),r=this[n(1023)](t),s=this[n(896)](t),a=null==s?void 0:s[n(596)][n(1100)];r&&(r[n(574)]=!e),i&&(i[n(553)]=!0,i[n(542)]=!0),s&&(s[n(553)]=!a[n(972)],s[n(542)]=!0),{SRxTN:function(t,e,n){return t(e,n)}}[n(1013)](setTimeout,()=>{const t=n;i&&(i[t(553)]=e,i[t(542)]=e),s&&(s[t(553)]=!a[t(972)]&&e,s[t(542)]=e)},300)}[(_$g=Z(683),Z(541))](t,e){const n=Z;let i=this[n(683)][n(1037)](e=>e[n(738)].id===t);if(i)return e&&i[n(634)](e),this[n(624)][n(1150)]=i,i;let r={BJCyt:function(t){return t()}}[n(875)](getURLQuery)[n(979)]||.3,s=this[n(510)](t),a=this[n(896)](t);return i=this[n(517)](t),this[n(683)][n(665)](i),e?i[n(634)](e):i[n(801)](),((null==s?void 0:s[n(542)])||(null==a?void 0:a[n(542)]))&&(this[n(710)](t,!1),this[n(554)]&&new Tween(this[n(554)][n(955)][n(605)]).to({z:r},300)[n(1123)]()),this[n(624)][n(1150)]=i,i}[Z(962)](t,e,n=!0){var i;const r=Z,s={mkVSa:function(t,e){return t+e},yiTdO:r(759),fMmNQ:function(t,e){return t>e},SKrZY:function(t,e){return t+e},BKaar:function(t,e,n){return t(e,n)}};if(console[r(715)](s[r(795)]),!this[r(847)])return void(e&&(null==(i=this[r(624)][r(1150)])||i[r(634)](e)));this[r(624)][r(829)]=!1;let a=this[r(891)](t),{zoom:o,lnglat:c}=this[r(1103)](a[r(600)]||[],20);n&&(s[r(651)](a[r(600)][r(929)],1)?this[r(1001)][r(1046)](s[r(496)](a[r(1006)],.5),c,300):this[r(1001)][r(1060)](c,300)),s[r(949)](setTimeout,()=>{const i=r;this[i(541)](t,e),this[i(624)][i(829)]=!0,n&&this[i(1001)][i(903)](s[i(804)](this[i(1001)][i(762)](),.001))},600)}[Z(731)](t){const e=Z;let n=this[e(683)][e(1145)](n=>n[e(738)].id===t);({QBKjF:function(t,e){return t>e}})[e(556)](n,-1)&&this[e(683)][e(1102)](n,1);let i=this[e(510)](t),r=this[e(896)](t);(i&&!i[e(553)]||r&&!r[e(553)])&&(this[e(710)](t,!0),this[e(516)](t))}[Z(1003)](t,e=!0){const n=Z,i={YjPeT:function(t,e){return t===e}};let r=[],s=n=>{var s;const a=N$5;(e?null==(s=n[a(743)])?void 0:s[a(1016)](t):i[a(889)](n[a(743)],t))&&r[a(665)](n)};return this[n(498)][n(1100)][n(1112)](s),this[n(498)][n(1150)][n(1112)](t=>t[n(519)][n(1112)](t=>t[n(1100)][n(1112)](s))),r}[Z(504)](){const t=Z,e={vgBoH:function(t,e){return t!==e}};this[t(683)][t(888)]()[t(1112)](n=>{const i=t;e[i(592)](n,this[i(624)][i(1150)])&&this[i(731)](n[i(738)].id)}),this[t(683)]=[]}[Z(907)](t,e=Z(964),n=2){const i=Z;if(!debug)return;this._p=this._p||{},this._p[e]&&this._p[e][i(818)]();const r=(new BufferGeometry)[i(855)](t);let s=new PointsMaterial({color:e,size:n,transparent:!0,opacity:.5,depthTest:!1,depthWrite:!1,sizeAttenuation:!1});const a=new Points(r,s);a[i(1140)]=renderOrderConfig[i(872)],this._p[e]=a,this[i(955)][i(630)](a)}[Z(501)](){var t,e,n,i,r,s;const a=Z,o={tfFbg:a(973),SLqao:a(874)};let{options:c}=this[a(498)],{isPlane:l}=c;this[a(1001)]=new MapControl(this),this[a(1001)][a(1123)](),H$1[a(665)](this),this[a(1001)][a(638)](this[a(833)]),this[a(1001)][a(1015)]=85,this[a(1001)][a(650)]=0,ua.pc?(this[a(1001)][a(643)]=debug?30:(null==(t=c[a(545)])?void 0:t[a(929)])?c[a(545)][1]:30,this[a(1001)][a(850)]=debug?0:(null==(e=c[a(545)])?void 0:e[a(929)])?c[a(545)][0]:0):(this[a(1001)][a(643)]=debug?30:(null==(n=c[a(557)])?void 0:n[a(929)])?c[a(557)][1]:30,this[a(1001)][a(850)]=debug?0:(null==(i=c[a(557)])?void 0:i[a(929)])?c[a(557)][0]:0),l&&(this[a(1001)][a(790)]=!1,this[a(1001)][a(1041)]=!1),this[a(1001)][a(903)](1,0);let u=this[a(983)](this[a(498)][a(746)]);if(this[a(746)].x=u.x,this[a(746)].y=u.y,(null==c?void 0:c[a(926)])&&this[a(1049)](),this[a(1133)]=new J$i(this),debug&&this[a(955)][a(630)](new AxesHelper(999999999)),this[a(853)][a(630)](this[a(955)]),((null==c?void 0:c[a(774)])||c[a(1111)]||this[a(498)][a(1085)][a(647)]||(null==(r=null==c?void 0:c[a(534)])?void 0:r[a(929)]))&&!location[a(806)][a(1016)](o[a(1110)])){const t=o[a(906)][a(922)]("|");let e=0;for(;;){switch(t[e++]){case"0":this[a(1128)][a(630)](this[a(846)]);continue;case"1":((null==c?void 0:c[a(774)])||(null==(s=null==c?void 0:c[a(534)])?void 0:s[a(929)]))&&this[a(682)]();continue;case"2":this[a(620)]();continue;case"3":this[a(846)]=new MapTileView(this);continue;case"4":(null==c?void 0:c[a(1111)])&&this[a(1078)]();continue}break}}this[a(957)][a(630)](this[a(853)]),this[a(540)](),this[a(782)]()}[Z(919)](t){var e,n,i;const r=Z;null==(e=this[r(598)])||e[r(673)](),null==(n=this[r(598)])||n[r(919)](this[r(1128)],t),null==(i=this[r(598)])||i[r(919)](this[r(957)],t),debug&&u[r(954)]()}[Z(620)](){const t=Z,e={kvAPj:t(749)};if(!this[t(498)][t(1085)][t(647)]||location[t(806)][t(1016)](e[t(506)]))return;this[t(569)]&&this[t(569)]();let n={getTileUrl:this[t(498)][t(1085)][t(647)],maxZoom:20,minZoom:2,zIndex:2};this[t(846)][t(620)](n),this[t(569)]=()=>this[t(846)][t(569)](n)}[Z(682)](){const t=Z;this[t(1005)]&&this[t(1005)][t(921)](),this[t(788)]&&this[t(788)][t(921)](),this[t(788)]=this[t(846)][t(620)]({getTileUrl:(e,n,i)=>t(1143)+Math[t(1106)](4*Math[t(881)]())+t(1138)+i+t(1149)+e+t(810)+n+t(632),maxZoom:20,minZoom:0,zIndex:1})}[Z(1078)](){const t=Z;this[t(1005)]&&this[t(1005)][t(921)](),this[t(788)]&&this[t(788)][t(921)](),this[t(1005)]=this[t(846)][t(620)]({getTileUrl:(e,n,i)=>t(1143)+Math[t(1106)](4*Math[t(881)]())+t(568)+i+t(1149)+e+t(810)+n,maxZoom:18,minZoom:0,zIndex:1})}[(__g=Z(812),Z(661))](){const t=Z;this[t(812)]=this[t(974)][t(815)](e=>e!==this[t(624)][t(1150)]),this[t(812)][t(1112)](e=>e[t(606)]())}[Z(856)](){const t=Z;this[t(812)][t(1112)](e=>this[t(630)](e)),this[t(812)]=[]}[Z(765)](){const t=Z;this[t(1128)][t(553)]=!0}[Z(530)](){const t=Z;this[t(1128)][t(553)]=!1}[Z(958)](){const t=Z,e={PznMW:function(t,e){return t*e},GOhBL:function(t,e){return t+e},cJlhy:function(t,e){return t%e},JLKcY:t(944)};this[t(1001)].on(e[t(897)],()=>{var n;const i=t;this[i(1137)]();let r=0;null==(n=this[i(846)])||n[i(604)](t=>r++),log[i(902)]({rotation:this[i(1001)][i(825)]()[i(956)](2),zoom:this[i(1001)][i(762)]()[i(956)](2),pitch:this[i(1001)][i(819)]()[i(956)](2),nodeNum:r}),this[i(853)][i(716)]&&(this[i(853)][i(757)].z=e[i(1010)](e[i(694)](e[i(614)](this[i(1001)][i(825)](),360),180),MathUtils[i(690)]))})}[(_Zg=Z(1137),Z(536))](){const t=Z,e={DzyKw:function(t,e){return t!==e},kQqhh:t(988)};this[t(1001)].on(e[t(1080)],n=>{var i,r,s,a;const o=t;if(e[o(603)](null==(i=n[o(898)])?void 0:i[o(767)],0))return!1;let c=[];this[o(853)][o(604)](t=>{const e=o;t[e(542)]&&!t[e(579)]&&c[e(665)](t)});let l=this[o(1133)][o(986)](n[o(898)],c),u=l[o(1112)](t=>{const e=o;return t[e(1130)]=this[e(648)](t[e(1130)])||t[e(1130)],t[e(1130)][e(596)][e(870)]&&(t[e(1130)]=t[e(1130)][e(971)][t[e(1074)]]),t})[o(1037)](t=>t[o(1130)][o(596)][o(1100)]&&(t[o(1130)][o(553)]||t[o(1130)][o(542)]));if(!u)return n[o(862)]=n[o(898)],void this[o(816)](e[o(1080)],n);u=u||l[0],u[o(862)]=n[o(898)],u[o(951)]=n[o(951)];let h=this[o(648)](u[o(1130)])||u[o(1130)];if(h){let t=h[o(596)][o(1100)],n=h[o(596)][o(1107)];if(n&&(t=null==(r=this[o(896)](n.id))?void 0:r[o(738)]),null==t?void 0:t[o(923)]){if(h[o(553)]&&!this[o(624)][o(1088)]){const{zoom:e}=this[o(1136)](t[o(600)],0);this[o(1001)][o(1046)](e,this[o(1014)](t[o(746)]),300)}}else if((null==t?void 0:t[o(591)])&&h[o(823)]&&!h[o(823)][o(553)]&&!this[o(624)][o(1088)]){let e=this[o(891)](t[o(591)]);const{zoom:n}=this[o(1136)](e[o(600)],0);this[o(1001)][o(1046)](n,this[o(1014)](e[o(746)]),300)}if((null==(s=null==t?void 0:t[o(823)])?void 0:s[o(1150)])&&e[o(603)](t.id,null==(a=this[o(624)][o(1150)])?void 0:a[o(738)].id)){let e=t[o(823)][o(1150)][o(1037)](e=>e.id===t.id);e&&!this[o(624)][o(899)]&&this[o(962)](e.id)}}this[o(816)](e[o(1080)],u)})}[Z(1060)](t,e,n){const i=Z;this[i(1001)][i(1060)](this[i(826)](t),e,n)}[Z(1056)](t){var e,n;const i=Z,r={nRWru:i(865),OxoTB:function(t,e){return t===e},tfaDb:i(830)};let s,a=this[i(847)]?this[i(498)]:null==(e=this[i(624)][i(1150)])?void 0:e[i(773)][i(738)];if(this[i(847)]||this[i(624)][i(1150)]){if(!isPc&&(null==(n=a[i(1085)])?void 0:n[i(865)])){let t=a[i(1085)][i(865)];console[i(715)](t,r[i(736)]),s=r[i(570)](typeof t,r[i(934)])?JSON[i(1065)](t):t}else s=a[i(1045)];s&&Object[i(908)](s)[i(929)]?this[i(719)](s,t):this[i(637)](a[i(1100)][i(1112)](t=>t[i(600)])[i(805)](),0,t?0:500)}}[Z(719)](t,e){const n=Z,i={DBFtB:function(t,e){return t!==e},aTbpV:function(t,e){return t!==e}};if(t[n(746)]&&this[n(1001)][n(1060)](Array[n(1122)](t[n(746)])?t[n(746)]:[t[n(746)][n(794)],t[n(746)][n(1125)]],e?0:300),i[n(1e3)](t[n(692)],void 0)&&this[n(1001)][n(671)]()[n(790)]&&this[n(1001)][n(522)](t[n(692)],e?0:300),i[n(841)](t[n(1067)],void 0)&&this[n(1001)][n(903)](t[n(1067)],e?0:300),i[n(1e3)](t[n(687)],void 0)){let i=t[n(687)];i%=360,this[n(1001)][n(503)](i,e?0:300)}}[Z(826)](t){const e=Z;return this[e(1001)][e(1014)](t)}[Z(1014)](t){const e=Z,n={KrOGu:function(t,e){return t+e}};return this[e(1001)][e(1014)](n[e(602)](t.x,this[e(746)].x),n[e(602)](t.y,this[e(746)].y))}[Z(983)](t,e){const n=Z;let i=this[n(1001)][n(811)](t,e);return new Vector3(i.x,i.y,0)}[Z(811)](t,e){const n=Z;let i=this[n(1001)][n(811)](t,e);return new Vector3(i.x,i.y,0)[n(551)](this[n(746)])}[Z(1136)](t,e=0){const n=Z;let i=this[n(1103)](t,e);return i[n(959)][n(551)](this[n(746)]),i[n(951)]=new LngLat(i[n(951)][n(794)],i[n(951)][n(1125)]),i}[Z(1103)](t,e=0){const n=Z;let i=new Box2;return i[n(855)](t),this[n(1001)][n(763)]([i[n(787)].x,i[n(787)].y,i[n(724)].x,i[n(724)].y])}[Z(637)](t,e=0,n=500){const i=Z,{zoom:r,lnglat:s}=this[i(1103)](t,e);!{CYwXE:function(t,e){return t>e}}[i(1095)](t[i(929)],1)?this[i(1001)][i(1060)](s,n):this[i(1001)][i(1046)](r,s,n)}[Z(537)](t,e=0,n=500){const i=Z;if(!t)return;let r=(t=Array[i(1122)](t)?t:[t])[i(1112)](t=>{var e;return null==(e=this[i(891)](t))?void 0:e[i(600)]})[i(815)](t=>t)[i(805)]();const{zoom:s,lnglat:a}=this[i(1103)](r,e);!{DwEZx:function(t,e){return t>e}}[i(901)](r[i(929)],1)?this[i(1001)][i(1060)](a,n):this[i(1001)][i(1046)](s,a,n)}[Z(540)](){var t,e,n;const i=Z,r={uAqqK:i(1035),hBJKP:i(659)};if(!location[i(806)][i(1016)](r[i(761)]))if(this[i(981)]){let s=new Object3D;s[i(743)]=r[i(511)],this[i(957)][i(630)](s),(null==(e=null==(t=this[i(498)][i(1085)])?void 0:t[i(1024)])?void 0:e[i(929)])&&(null==(n=this[i(498)][i(1085)][i(1024)])||n[i(564)](t=>{const e=i;let n=e(499)+t[e(743)];if(this[n]){let i=this[n](t,s);s[e(630)](i)}}))}else{let t=new PMREMGenerator(this[i(598)]);t[i(502)](),this[i(957)][i(716)]=t[i(1022)](new DebugEnvironment,.6,1e-5,1e6)[i(930)],this[i(957)][i(963)]=this[i(498)][i(1085)][i(963)]||1}}[Z(1072)](t){const e=Z,n={VRSat:e(640)};let i=new AmbientLight(t[e(778)]||n[e(1018)],t[e(563)]||1);return i[e(596)]=t,i}[Z(615)](t){var e,n,i;const r=Z,s={oCiQt:r(640)};let a=new PointLight(t[r(778)]||s[r(771)],t[r(563)]||1,t[r(851)]||0,t[r(566)]||2);return a[r(959)][r(1131)]((null==(e=t[r(959)])?void 0:e.x)||0,(null==(n=t[r(959)])?void 0:n.y)||0,(null==(i=t[r(959)])?void 0:i.z)||100),a[r(596)]=t,a}[Z(884)](t){var e,n,i;const r=Z,s={lwxlX:r(640)};let a=new DirectionalLight(t[r(778)]||s[r(593)],t[r(563)]||1);return a[r(959)][r(1131)]((null==(e=t[r(959)])?void 0:e.x)||0,(null==(n=t[r(959)])?void 0:n.y)||0,(null==(i=t[r(959)])?void 0:i.z)||100),a[r(1042)]=t[r(842)]||!1,a[r(981)][r(927)][r(861)]=4096,a[r(981)][r(927)][r(1054)]=4096,a[r(981)][r(904)]=1,a[r(981)][r(722)][r(950)]=2e3,a[r(981)][r(722)][r(666)]=-2e3,a[r(981)][r(722)][r(549)]=-2e3,a[r(981)][r(722)][r(711)]=2e3,a[r(981)][r(722)][r(1105)]=1,a[r(981)][r(722)][r(546)]=99999,a[r(981)][r(636)]=-1e-4,a[r(596)]=t,a}[Z(1114)](t,e){const n=Z,i={dgQXm:function(t,e){return t instanceof e}};let r;return this[n(974)][n(1037)](s=>{const a=n;return i[a(965)](s,x$9)?s[a(974)][a(1037)](n=>{const i=a;return r=n[i(544)+e+i(968)](t),r}):(r=s[a(544)+e+a(968)](t),r)}),r}[Z(510)](t){const e=Z,n={DaGlK:e(961)};return this[e(1114)](t,n[e(1026)])}[Z(896)](t){const e=Z,n={AwSuo:e(654)};return this[e(1114)](t,n[e(894)])}[Z(1023)](t){const e=Z,n={VIDMA:e(948)};return this[e(1114)](t,n[e(732)])}[Z(813)](t){const e=Z;let n,i=this[e(737)](t);if(i[e(823)]){n=this[e(635)](i[e(823)].id)[e(813)](i.id)}else n=this[e(554)];return n}[Z(635)](t){const e=Z;let n=[...this[e(974)],...this[e(675)]][e(1037)](n=>{var i;return(null==(i=n[e(738)])?void 0:i.id)===t});if(n)return n;{let i=this[e(498)][e(1150)][e(1037)](e=>e.id===t);if(i)return n=new x$9(i,this),this[e(675)][e(665)](n),n}}[Z(585)](t){const e=Z;return this[e(498)][e(1150)][e(1037)](e=>e.id==t)}[(_Yg=Z(772),Z(737))](t){const e=Z,n={uUMXF:e(739),iDGMR:function(t,e){return t===e}},i=n[e(967)][e(922)]("|");let r=0;for(;;){switch(i[r++]){case"0":return this[e(772)][t];case"1":if(!t)return;continue;case"2":if(this[e(772)][t])return this[e(772)][t];continue;case"3":this[e(498)][e(1150)][e(1037)](n=>{const i=e;return this[i(772)][t]=n[i(519)][i(1037)](e=>String(e.id)===String(t)),this[i(772)][t]});continue;case"4":if(n[e(867)](this[e(498)].id,t))return this[e(498)];continue}break}}[(_Xg=Z(753),Z(891))](t){const e=Z,n={qcTcH:function(t,e){return t===e}};if(this[e(753)][t])return this[e(753)][t];const i=i=>{const r=e;return n[r(705)](i.id,t)&&(this[r(753)][t]=i),this[r(753)][t]};return this[e(498)][e(1100)][e(1037)](i),this[e(753)][t]||this[e(498)][e(1150)][e(1037)](t=>{const n=e;return t[n(519)][n(1037)](t=>{const e=n;return t[e(1100)][e(1037)](i)})}),this[e(753)][t]}[(_Wg=Z(726),Z(691))](t,e){const n=Z,i={mqMss:function(t,e){return t>e},nRodu:function(t,e){return t-e},BYEmD:function(t,e){return t-e}};let r=new Vector3(t.x,t.y,0)[n(551)]({x:e.x,y:e.y,z:0}),s=r[n(664)]()[n(703)](this[n(726)]),a=r[n(1120)](this[n(726)]);return i[n(936)](s.z,0)?i[n(677)](Math.PI,a):i[n(1028)](a,Math.PI)}[Z(1049)](){}[Z(989)](t){const e=Z,n={eahEn:function(t,e){return t===e},fEEDz:function(t,e,n){return t(e,n)},eLvWc:function(t,e){return t===e}};n[e(817)](this[e(624)][e(838)],t)||(n[e(817)](t,"2D")?(n[e(652)](setTimeout,()=>{const t=e;this[t(853)][t(605)].z=.01},300),this[e(1001)][e(522)](0,300),this[e(1001)][e(760)]({pitchEnable:!1}),this[e(624)][e(838)]="2D"):n[e(1155)](t,"3D")&&(this[e(1001)][e(760)]({pitchEnable:!0}),this[e(1001)][e(522)](30,300),this[e(853)][e(605)].z=1,this[e(624)][e(838)]="3D"))}[(_Vg=Z(656),_Ug=Z(526),Z(782))](){const t=Z,e={ZiaLB:function(t,e,n){return t(e,n)},Pwsgs:t(512)};this[t(526)]=new ResizeObserver(this[t(656)]),this[t(526)][t(883)](this[t(833)]),document[t(1044)](e[t(1154)],()=>{const n=t;e[n(995)](setTimeout,()=>{const t=n;this[t(1137)](),this[t(656)]()},100)})}[Z(1012)](){const t=Z,e={HXVjm:function(t,e){return t+e},FUCVb:function(t,e){return t/e},autIi:function(t,e){return t>e},jfrZG:function(t,e){return t-e},GoOAh:function(t,e){return t-e},bXtgU:function(t,e){return t/e},EgmWx:function(t,e){return t-e},mmqLA:function(t,e){return t/e},BTCKS:function(t,e){return t>e},bNgYC:function(t,e){return t-e},xUMVL:function(t,e){return t<e},yqhsV:t(1020),qbPgm:t(725),UMcPm:t(562),NxvoP:t(1019),iVtfv:t(905),nPPSz:function(t,e,n){return t(e,n)},ldsyY:t(1094)};this.on(e[t(533)],e=>{const n=t;e?(this[n(1001)][n(522)](70),this[n(1001)][n(975)](),this[n(1001)][n(790)]=!1,this[n(1001)][n(940)]=!1):(this[n(1001)][n(790)]=!0,this[n(1001)][n(940)]=!0)});const n=this[t(1001)][t(500)];let i,r,s;n[t(1044)](e[t(800)],n=>{const i=t;this[i(624)][i(1088)]&&this[i(1001)][i(903)](e[i(552)](this[i(1001)][i(762)](),e[i(700)](n[i(858)],300)),0)}),n[t(1044)](e[t(996)],e=>{const n=t;this[n(624)][n(1088)]&&(r=i=e)}),n[t(1044)](e[t(621)],t=>{s=t}),n[t(1044)](e[t(1025)],n=>{var r;const a=t;if(this[a(624)][a(1088)]&&this[a(624)][a(1150)]&&!e[a(1082)](null==s?void 0:s[a(1132)][a(929)],1)&&i){let t=e[a(1077)](n.x,i.x),s=e[a(1036)](n.y,i.y);this[a(624)][a(1150)][a(955)][a(959)].z-=e[a(747)](s,10),(null==(r=this[a(498)][a(1085)])?void 0:r[a(866)])||this[a(1001)][a(503)](e[a(1032)](this[a(1001)][a(825)](),e[a(933)](t,2)),0),i=n}}),e[t(728)](addEventListener,e[t(1101)],n=>{var a,o;const c=t;if(e[c(1082)](null==s?void 0:s[c(1132)][c(929)],1))return;if(!this[c(624)][c(1088)]||e[c(1063)](n[c(835)],1)||!(null==(a=this[c(624)][c(519)])?void 0:a[c(738)][c(823)])||!r)return;let{floor:l}=this[c(624)][c(519)][c(738)][c(823)],u=l[c(1009)](this[c(624)][c(519)][c(738)]),h=e[c(992)](n.y,r.y);e[c(1082)](Math[c(1051)](h),60)&&(e[c(597)](h,0)?u++:u--),u=MathUtils[c(706)](u,0,e[c(1036)](l[c(929)],1)),null==(o=this[c(624)][c(1150)])||o[c(634)](l[u].id),r=i=null})}[(_Tg=Z(784),Z(653))](t){const e=Z,n={REGzc:function(t,e){return t+e},ajPjG:function(t,e){return t+e},FKOZY:function(t,e){return t+e},TOoMn:e(964),XARvw:e(1146),xkZAL:e(1068),sjREt:function(t,e){return t/e},alqDt:e(831),UNEUe:e(718),AHyBy:e(1079)};if(!debug||!localStorage[e(860)])return;if(this[e(784)]&&this[e(784)][e(818)](),this[e(784)]=new Object3D,this[e(955)][e(630)](this[e(784)]),!t[e(929)])return;let i=[n[e(886)],n[e(793)],n[e(576)]];t[e(1112)]((t,r)=>{const s=e;let a=new TextSprite({text:n[s(982)](n[s(982)](n[s(613)](n[s(750)](t[s(938)],"-"),this[s(737)](t[s(519)])[s(743)]),"-"),t[s(876)]),vmap:this,fillStyle:n[s(843)],strokeStyle:n[s(584)],bgColor:i[r]||n[s(1029)],lineGap:.25,strokeWidth:.15,isCollision:!1,fontSize:n[s(895)](n[s(750)](100,t[s(938)]),2)});a[s(959)][s(1131)](t.x,t.y,0)[s(551)](this[s(746)]),a[s(1140)]=renderOrderConfig[s(653)],this[s(784)][s(630)](a)})}[(_Sg=Z(900),Z(844))](t){const e=Z,n={RNmuR:function(t,e){return t+e},dtbEC:e(964),dfmar:e(1146),SLnaG:e(1068),xzmBe:e(831),FkPGX:e(718),FMkBx:e(1079)};if(!debug)return;if(this[e(900)]&&this[e(900)][e(818)](),this[e(900)]=new Object3D,this[e(955)][e(630)](this[e(900)]),!t[e(929)])return;let i=[n[e(960)],n[e(657)],n[e(685)]];t[e(1112)]((t,r)=>{const s=e;let a=new TextSprite({text:t[s(821)]||n[s(717)](r,""),vmap:this,fillStyle:n[s(618)],strokeStyle:n[s(527)],bgColor:i[r]||n[s(644)],lineGap:.25,strokeWidth:.15,isCollision:!1,fontSize:12});a[s(959)][s(1131)](t.x,t.y,0),a[s(1140)]=renderOrderConfig[s(653)],this[s(900)][s(630)](a)})}[Z(633)](){const t=Z,e={vAumi:t(594)};this.el[t(1083)][t(824)]=e[t(740)]}[Z(984)](){const t=Z,e={XEzyG:t(928)};this.el[t(1083)][t(824)]=e[t(997)]}async[(_Rg=Z(916),_Qg=Z(852),Z(1052))](t){var e;const n=Z,i={qTQfv:function(t,e){return t!==e},qkVld:function(t,e){return t<e},psdSM:function(t,e){return t%e},HQipj:function(t,e){return t+e},amOwd:function(t,e){return t-e},oUXAd:function(t,e){return t+e},CUmSs:function(t,e){return t*e},YGfmC:function(t,e){return t>e},yEsFI:n(775),gGfaG:function(t,e){return t<e},NKeEv:function(t,e){return t==e},vRQDH:n(785),bEFKM:function(t,e){return t===e},MoAef:function(t,e){return t(e)},Ctnxx:function(t,e){return t(e)},bEIry:function(t,e,n){return t(e,n)},qpHim:function(t,e){return t>e},YEfTN:function(t,e){return t===e},ZDEvS:function(t){return t()},jSlmR:function(t,e){return t*e},ioVAR:function(t,e){return t-e},qVTkQ:function(t,e){return t-e},Lgeml:function(t,e){return t+e},PRSra:n(776),tcPCq:n(1117),cxQsi:n(830),bbNkR:n(567),tYOIS:function(t,e){return t*e}};let r;try{let s=await this[n(873)]({url:(location[n(806)][n(1016)](i[n(720)])?b$b[n(776)]:b$b[n(789)])+n(832)+t+n(528),responseType:i[n(880)],retry:0}),a=await C$8[n(868)](s[n(803)]),o=await(null==(e=a[n(1030)](t+n(595)))?void 0:e[n(658)](i[n(535)]));r=JSON[n(1065)](o)}catch(l){r=(await this[n(873)]({url:b$b[n(789)]+n(779)+t}))[n(803)][n(738)]}let s={beaconData:[],bgi:{url:"",opacity:1,rotation:0,scale:1,show:!1,position:{x:0,y:0,z:0}},build:[],center:[110.317262,25.328664],fenceData:[],modelData:[],name:i[n(1061)],path:[],polygonData:[],view:{},mapId:"",id:"1",options:{closePriorityNavigationList:[]},arShowPoints:[],arShowList:[],needLogin:!0};function a(t){const e=n;let r=t[e(600)];if(i[e(513)](r[e(929)],4)||t[e(972)]||t[e(923)]||t[e(580)]||t[e(863)])return;const s=[];for(let n=0;i[e(729)](n,4);n++){const t=i[e(848)](i[e(1141)](n,1),4);s[e(665)](new Vector2(i[e(857)](r[t].x,r[n].x),i[e(857)](r[t].y,r[n].y)))}for(let n=0;i[e(729)](n,4);n++){const t=i[e(848)](i[e(1017)](n,1),4);let r=i[e(588)](s[n][e(1120)](s[t]),RAD2DEG);if(i[e(1113)](Math[e(1051)](i[e(857)](+r[e(956)](0),90)),2))return}t[e(508)]=i[e(627)];let a=(new Vector2)[e(994)](r[1])[e(551)](r[0]),o=(new Vector2)[e(994)](r[2])[e(551)](r[1]);t[e(970)]=a[e(947)](),t[e(649)]=new Vector3(a[e(929)](),o[e(929)](),t[e(1054)]||1)}function o(t){const e=n;if(i[e(538)](t[e(600)][e(929)],20)||t[e(972)]||t[e(923)]||t[e(580)])return;let r=t[e(600)][e(1112)](t=>new Vector2(t.x,t.y))[e(1112)](n=>n[e(573)](t[e(746)])),s=r[0];r=r[e(1112)](t=>+t[e(956)](1));let a=[...new Set(r)];i[e(828)](a[e(929)],1)&&!t[e(863)]&&!t[e(580)]&&(t[e(508)]=i[e(742)],t[e(649)]=new Vector3(s,s,t[e(1054)]||1))}if(!r[n(498)]&&(s[n(746)]=r[n(746)],s[n(799)]=r.id,r[n(498)]=JSON[n(1116)](s)),r[n(498)]=JSON[n(1065)](r[n(498)]),r[n(498)]=i[n(1064)](C$1,r[n(498)]),this[n(1031)]=r,this[n(498)]=r[n(498)],this[n(501)](),this[n(916)][n(665)](this[n(498)]),this[n(498)][n(696)]=-999,this[n(498)][n(1100)][n(1112)](t=>{var e,r,s,c;const l=n;if(t[l(823)]=this[l(498)],this[l(498)][l(1150)][l(1112)](e=>{const n=l;i[n(548)](e.id,t.id)&&(t[n(505)]=e)}),!this[l(498)][l(1150)][l(1037)](e=>e.id===t.id)&&(i[l(1064)](o,t),i[l(807)](a,t)),t[l(505)]){let n=this[l(1136)](t[l(600)]);t[l(1006)]=n[l(1067)]||0;let a=isPc?null==(e=this[l(498)][l(1045)])?void 0:e[l(1067)]:(null==(s=null==(r=this[l(498)][l(1085)])?void 0:r[l(865)])?void 0:s[l(1067)])||(null==(c=this[l(498)][l(1045)])?void 0:c[l(1067)]);a&&(t[l(1006)]=Math[l(724)](t[l(1006)],i[l(1017)](a,.5)))}}),this[n(498)][n(786)]=2e4,this[n(498)][n(1100)][n(929)]){let t=new Vector3;this[n(498)][n(809)]=this[n(1136)](this[n(498)][n(1100)][n(1112)](t=>t[n(600)])[n(805)]());let e=2e4;this[n(498)][n(1100)][n(1112)](r=>{const s=n;let a=i[s(561)](getLineLength,r[s(746)],t);i[s(1087)](a,e)&&(e=a)}),this[n(498)][n(786)]=i[n(625)](e,1.5)}this[n(498)][n(1107)][n(1112)](t=>{const e=n,r={KDrik:function(t,e){return i[N$5(820)](t,e)}};t.id=t[e(565)]||t.id||i[e(1144)](createShortId),t[e(565)]&&(this[e(498)][e(1150)][e(1037)](n=>{const i=e;if(r[i(1057)](n.id,t[i(565)]))return t[i(505)]=n,n[i(1107)]=t}),this[e(498)][e(1100)][e(1037)](n=>{const i=e;if(r[i(1057)](n.id,t[i(565)]))return t[i(505)]=t[i(505)],n[i(1107)]=t}))}),this[n(847)]=!!this[n(498)][n(1100)][n(929)],this[n(498)][n(1150)][n(1112)](t=>{const e=n,r={obKKi:function(t,e){return i[N$5(1064)](t,e)},vjJwS:function(t,e){return i[N$5(807)](t,e)},kQuuZ:function(t,e){return i[N$5(993)](t,e)},ciDhh:function(t,e){return i[N$5(781)](t,e)}};let s=0;t[e(823)]=this[e(498)][e(1100)][e(1037)](e=>e.id===t.id),t[e(519)][e(1112)]((n,i)=>{const c=e,l={wCYCk:function(t,e){return r[N$5(645)](t,e)},yJOcV:function(t,e){return r[N$5(646)](t,e)}};n[c(847)]&&this[c(916)][c(665)](n),n[c(823)]=t,n[c(1100)][c(929)]&&(n[c(809)]=this[c(1136)](n[c(1100)][c(815)](t=>!t[c(918)])[c(1112)](t=>t[c(600)])[c(805)]()));let u=new Box2;u[c(855)](n[c(1100)][c(1112)](t=>t[c(600)])[c(805)]());let h=u[c(616)](new Vector2);s=Math[c(724)](s,r[c(754)](r[c(641)](h.x,h.y),.2)),n[c(1100)][c(1112)](t=>{const e=c;l[e(1039)](a,t),l[e(1096)](o,t),t[e(823)]=n})}),t[e(519)][e(1112)]((n,r)=>{const a=e;n[a(696)]=i[a(993)](i[a(1027)](i[a(1048)](t[a(519)][a(929)],r),1),this[a(1085)][a(696)]||s),n[a(696)]=+n[a(696)][a(956)](0)})});let c=this[n(916)][n(1112)](t=>t.id);this[n(852)]=this[n(498)][n(670)][n(815)](t=>c[n(1016)](t[n(1118)]))}[Z(873)]({url:t,method:e=Z(544),responseType:n=Z(1098),retry:i=5}){const r={nfcSA:function(t){return t()},FhVPO:function(t,e){return t==e},SBIye:function(t,e){return t>=e},zaVBW:function(t,e){return t<e},BLKiC:function(t,e){return t(e)},ceGPy:function(t,e){return t>e},LPwzJ:function(t,e,n){return t(e,n)},OgDie:function(t){return t()}};return new Promise((s,a)=>{const o=N$5,c={eRVhl:function(t){return r[N$5(704)](t)},OmBmh:function(t,e){return r[N$5(577)](t,e)},KltWx:function(t,e){return r[N$5(674)](t,e)},XgiZC:function(t,e){return r[N$5(590)](t,e)},sJTiG:function(t,e){return r[N$5(495)](t,e)},mshDS:function(t,e){return r[N$5(1148)](t,e)},qVpOj:function(t,e,n){return r[N$5(879)](t,e,n)},cKUJJ:function(t){return r[N$5(704)](t)}};let l=new XMLHttpRequest;l[o(977)]=n;let u=()=>{const n=o;l[n(780)](e,t,!0),l[n(768)]()};l[o(688)]=function(){const t=o;c[t(822)](l[t(1070)],4)&&(c[t(814)](l[t(624)],200)&&c[t(1073)](l[t(624)],400)?c[t(1151)](s,l):c[t(582)](i--,0)?c[t(727)](setTimeout,()=>{c[t(1089)](u)},1e3):c[t(599)](a))},r[o(990)](u)})}[(_Pg=Z(509),_Og=Z(912),_Ng=Z(668),_Mg=Z(917),Z(920))](t,e){const n=Z,i={rqnPD:function(t,e){return t!==e},xgNQG:n(587),wYMgs:n(594),LUrOh:n(1008),nyqqc:function(t){return t()},KwHcu:n(1139),RKVti:n(515),oAOyg:n(695)};if(this[n(917)][t]=e,!this[n(668)]){this[n(668)]=document[n(1002)](i[n(925)]),this[n(912)]=document[n(1002)](i[n(925)]),this[n(509)]=document[n(1002)](i[n(925)]),this[n(509)][n(1083)][n(885)]=i[n(608)];let t=()=>this[n(509)][n(1097)]=n(684)+!!localStorage[n(840)]+n(911)+!!localStorage[n(860)]+n(796)+!!localStorage[n(622)]+n(1062)+!!localStorage[n(864)]+n(791);i[n(708)](t),this[n(912)][n(1135)](this[n(509)]),this[n(912)][n(1135)](this[n(668)]),this.el[n(1135)](this[n(912)]),this[n(912)][n(1083)][n(885)]=i[n(1142)],this[n(668)][n(937)]=()=>{const t=n;this[t(912)][t(1083)][t(676)]=i[t(1104)](this[t(912)][t(1083)][t(676)],i[t(766)])?i[t(766)]:i[t(878)]},this[n(509)][n(937)]=e=>{var r;const s=n;let a=null==(r=e[s(730)])?void 0:r[s(1047)];(null==a?void 0:a[s(1016)]("信标"))&&(localStorage[s(840)]=localStorage[s(840)]?"":"1"),(null==a?void 0:a[s(1016)]("检测"))&&(localStorage[s(860)]=localStorage[s(860)]?"":"1"),(null==a?void 0:a[s(1016)]("路线"))&&(localStorage[s(622)]=localStorage[s(622)]?"":"1"),(null==a?void 0:a[s(1016)](i[s(935)]))&&(localStorage[s(864)]=localStorage[s(864)]?"":"1"),i[s(708)](t)}}this[n(668)][n(1047)]=this[n(917)][n(854)]("\n")}}function E$4(){const t=["status","appendChild","10415892KJDClY","navi","innerHTML","deg)","amap","setRotation","4lpTUAP","7RxkwtW","cssText","createElement","10964ZnwgyJ","div",".vm-compass","config","13286608TSDkto","className",'\n <div class="vm-compass"></div>\n ',"style","isSimulate","transform","8585575nJhmaC","gxHeb","RHbqD","querySelector","QVjDv","getRotation","114820RmpNny","isNavi","onclick","vm-compass-container","PXOic","1161jYSyhn","viewchange","rotateZ(","12GmkCYa","1512921FjCHrK","42621117bFvygJ","JRNPI","inset: 80px 20px auto auto;","map"];return(E$4=function(){return t})()}function N$4(t,e){const n=E$4();return(N$4=function(t,e){return n[t-=383]})(t,e)}const b$2=N$4;!function(t,e){const n=N$4,i=t();for(;;)try{if(889795===parseInt(n(420))/1+-parseInt(n(395))/2*(parseInt(n(419))/3)+-parseInt(n(391))/4*(-parseInt(n(405))/5)+parseInt(n(385))/6*(parseInt(n(392))/7)+-parseInt(n(399))/8+parseInt(n(416))/9*(parseInt(n(411))/10)+-parseInt(n(421))/11)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$4);let d$3=(_wh=b$2(398),_vh=b$2(424),class{constructor(t){__publicField(this,_wh),__publicField(this,_vh),__publicField(this,"el");const e=b$2,n={RHbqD:e(396),gxHeb:e(414),JRNPI:e(397),QVjDv:e(423),PXOic:e(417)};this[e(424)]=t[e(424)],this[e(398)]=t,this.el=document[e(394)](n[e(407)]),this.el[e(400)]=n[e(406)],this[e(424)].el[e(384)](this.el),this.el[e(387)]=e(401);let i=this.el[e(408)](n[e(422)]);this.el[e(402)][e(393)]=this[e(398)][e(402)]||n[e(409)],this[e(424)][e(389)].on(n[e(415)],t=>{const n=e;i[n(402)][n(404)]=n(418)+this[n(424)][n(389)][n(410)]()+n(388)}),this.el[e(413)]=()=>{const t=e;this[t(424)][t(386)][t(383)][t(412)]||this[t(424)][t(386)][t(383)][t(403)]||this[t(424)][t(389)][t(390)](0,!1,300)}}});const e$1=N$3;function N$3(t,e){const n=E$3();return(N$3=function(t,e){return n[t-=377]})(t,e)}function E$3(){const t=["NmqFr","isSimulate","manyFloorMode","DDDZw","vm-scroll-down",".vm-floor-name-active","floorChange","NBqvn","QVZdO","div",'px;">\n ',"setOneFloorMode","pWSQl","#vm-scroll_down","setManyFloorMode","smooth","vm-layer-icon","175744qAcuoP","FnyDG","vm-floor-name","LNKhF","VQdRq","viKMb","28YLwloN","qWNps","464QdKXiB","LqFET","Quivi","TjGKT","status","pGwyR","EyDLO","floorButtonCount","jdhrp","416118ftpIUs","scrollIntoView","tZgHZ","build","wSpxc","vm-layer-one","navi",'<hr class="vm-floor-line">',"remove","vm-control-floor-groups","QwJyD","112WFJIOQ","center","qNAHw","parentElement","WwrKi","GrUaE","replace","90xoZSCH","7494091ePsClG",' \n <div class="vm-floor-name-container">\n <label class="vm-floor-name vm-floor-name-',"FdhyN","tmgYf","cnjvZ","active","createDom","ZzUmG","54gAFKdG","708072YLdord","curentFloor","UkiFl","onclick","eoKjX","innerHTML","createElement","lmAWz","inset: 80px 20px auto auto;",'" data-idx="','">\n ',"424989AubbQh","YzhmV","vm-floor-name-active","contains","buildChange","showAllFloorButton","length","JJLAb","vm-floor-name-normal","config","classList",' <div class="vm-layer"><div class="vm-layer-icon vm-layer-one"></div></div>',"data","floor","ePWpn","normal","name","indexOf","querySelector",'" data-id="',"vm-scroll-up","className",'\n <div class="vm-floor-list-group">\n <div class="vm-scroll vm-scroll-up" id="vm-scroll-up"></div>\n <div class="vm-floor-list" style="max-height: ',"LVkeO","EHsod","XFzai","xlCTl","\n </label>\n </div>\n ","mQwDT","QuKAT","hJipg","map","add","style","isNavi","ylltf","target",'\n </div>\n <div class="vm-scroll vm-scroll-down" id="vm-scroll_down"></div>\n </div>\n ',"vm-layer-many","22595bKrOYF","appendChild","OisUc","switchFloor","rYkjS","cssText","sdyQN","dataset","#vm-scroll-up","vm-scroll-disable"];return(E$3=function(){return t})()}!function(t,e){const n=N$3,i=t();for(;;)try{if(265699===parseInt(n(390))/1*(parseInt(n(410))/2)+parseInt(n(399))/3+parseInt(n(382))/4+-parseInt(n(477))/5*(parseInt(n(426))/6)+parseInt(n(388))/7*(parseInt(n(427))/8)+parseInt(n(438))/9*(parseInt(n(417))/10)+-parseInt(n(418))/11)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$3);let d$2=class{constructor(t){__publicField(this,_yh),__publicField(this,_xh),__publicField(this,"el");const e=e$1,n={rYkjS:e(485),WwrKi:function(t,e){return t===e},NmqFr:e(470),VQdRq:e(407),GrUaE:e(486),LqFET:e(378),LNKhF:function(t,e){return t+e},ylltf:function(t){return t()},tmgYf:function(t,e,n){return t(e,n)},UkiFl:e(492),QuKAT:e(380),qNAHw:e(411),OisUc:e(384),QwJyD:function(t,e){return t!==e},tZgHZ:function(t,e){return t+e},wSpxc:e(381),NBqvn:e(476),xlCTl:e(404),FdhyN:e(458),mQwDT:function(t,e){return t>e},YzhmV:function(t,e){return t-e},ePWpn:e(491),FnyDG:function(t,e){return t<e},Quivi:function(t,e){return t+e},pWSQl:function(t,e){return t+e},QVZdO:e(496),pGwyR:e(408),viKMb:e(435),sdyQN:e(442),DDDZw:e(493),eoKjX:e(446),JJLAb:e(440)};this[e(469)]=t[e(469)],this[e(447)]=t,this.el=document[e(433)](n[e(495)]),this.el[e(459)]=n[e(395)],this[e(469)].el[e(478)](this.el),this.el[e(471)][e(482)]=this[e(447)][e(471)]||n[e(387)];const i=()=>{var t,i,r,s;const a=e;if(!this[a(469)][a(394)][a(402)])return;let o=null==(t=this[a(469)][a(394)][a(402)])?void 0:t[a(450)][a(451)][a(455)](this[a(469)][a(394)][a(402)][a(428)][a(450)]);null==(i=document[a(456)](n[a(481)]))||i[a(448)][n[a(414)](o,0)?n[a(487)]:n[a(386)]](n[a(415)]),null==(s=document[a(456)](n[a(391)]))||s[a(448)][n[a(414)](n[a(385)](o,1),null==(r=this[a(469)][a(394)][a(402)])?void 0:r[a(450)][a(451)][a(444)])?n[a(487)]:n[a(386)]](n[a(415)])},r=()=>{const t=e,r={qWNps:function(t){return n[N$3(473)](t)}};n[t(421)](setTimeout,()=>{const e=t;this[e(424)](),r[e(389)](i)},0)};n[e(473)](r),this[e(469)].on(n[e(483)],r),this[e(469)].on(n[e(490)],r);let s=n[e(431)],a=n[e(445)];this.el[e(430)]=t=>{var r,o,c,l,u,h,d,p,f,m,g,A;const y=e,v={EHsod:n[y(429)],EyDLO:n[y(467)],TjGKT:n[y(412)]};if(!debug&&this[y(469)][y(405)][y(394)][y(472)]||this[y(469)][y(405)][y(394)][y(488)])return;let S=t[y(474)],x=S[y(448)];if(x[y(441)](n[y(479)])&&n[y(409)](S[y(484)].id,null==(r=this[y(469)][y(394)][y(402)])?void 0:r[y(428)][y(450)].id)&&(null==(o=this.el[y(456)](n[y(401)](".",a)))||o[y(448)][y(416)](a,s),x[y(416)](s,a),null==(c=this[y(469)][y(394)][y(402)])||c[y(480)](S[y(484)].id)),x[y(441)](n[y(403)])&&((null==(l=this[y(469)][y(394)][y(402)])?void 0:l[y(489)])?(this[y(469)][y(394)][y(402)][y(498)](),x[y(416)](n[y(494)],n[y(464)])):(null==(u=this[y(469)][y(394)][y(402)])||u[y(379)](),x[y(416)](n[y(464)],n[y(494)]))),x[y(441)](n[y(420)])){let t=null==(h=this[y(469)][y(394)][y(402)])?void 0:h[y(450)][y(451)][y(455)](this[y(469)][y(394)][y(402)][y(428)][y(450)]);n[y(466)](t,0)&&(null==(p=this[y(469)][y(394)][y(402)])||p[y(480)](null==(d=this[y(469)][y(394)][y(402)])?void 0:d[y(450)][y(451)][n[y(439)](t,1)].id))}if(x[y(441)](n[y(452)])){let t=null==(f=this[y(469)][y(394)][y(402)])?void 0:f[y(450)][y(451)][y(455)](this[y(469)][y(394)][y(402)][y(428)][y(450)]);n[y(383)](n[y(392)](t,1),null==(m=this[y(469)][y(394)][y(402)])?void 0:m[y(450)][y(451)][y(444)])&&(null==(A=this[y(469)][y(394)][y(402)])||A[y(480)](null==(g=this[y(469)][y(394)][y(402)])?void 0:g[y(450)][y(451)][n[y(377)](t,1)].id))}n[y(473)](i),n[y(421)](setTimeout,()=>{var t,e;const n=y;null==(e=null==(t=this.el[n(456)](v[n(462)]))?void 0:t[n(413)])||e[n(400)]({behavior:v[n(396)],block:v[n(393)]})},0)}}[(_yh=e$1(447),_xh=e$1(469),e$1(424))](){const t=e$1,e={hJipg:function(t,e){return t+e},LVkeO:t(406),lmAWz:function(t,e){return t===e},cnjvZ:t(423),jdhrp:t(453),ZzUmG:function(t,e){return t(e)},XFzai:function(t){return t()}};if(!this[t(469)][t(394)][t(402)])return void(this.el[t(432)]="");this.el[t(432)]=e[t(425)](e=>(this[t(447)][t(443)]&&this[t(469)][t(394)][t(402)][t(450)][t(451)][t(444)]>1?t(449):"")+(t(460)+50*(this[t(447)][t(397)]||3)+t(497)+e+t(475)),e[t(463)](()=>{const n=t;let i="";return this[n(469)][n(394)][n(402)][n(450)][n(451)][n(469)]((t,r)=>{const s=n;i+=e[s(468)](r?e[s(461)]:"",s(419)+(e[s(434)](t.id,this[s(469)][s(394)][s(402)][s(428)][s(450)].id)?e[s(422)]:e[s(398)])+s(457)+t.id+s(436)+r+s(437)+t[s(454)]+s(465))}),i}))}};var H=N$2;function N$2(t,e){var n=E$2();return(N$2=function(t,e){return n[t-=210]})(t,e)}function E$2(){var t=["config","457086rhzPTu","1|6|3|4|8|5|0|7|2","status","cssText","div","VKEAA","9lVkASg","createElement","split","style","nKgtf","1232135FRVFcT","kZLtN","RNhuv","1286840LGKQCi","onclick","viewMode","413137pskYMK","qekFD","setViewMode","innerHTML","959PbzNoh","vm-control-viewmode","appendChild","10pYKUdy","className","469496Znzhgm","14058981ImYTul","23394gkAvOw","map","iJLLH","inset: 80px 20px auto auto;"];return(E$2=function(){return t})()}!function(t,e){for(var n=N$2,i=t();;)try{if(331106===-parseInt(n(233))/1+-parseInt(n(216))/2+-parseInt(n(222))/3*(-parseInt(n(242))/4)+-parseInt(n(227))/5+parseInt(n(211))/6*(-parseInt(n(237))/7)+-parseInt(n(230))/8+-parseInt(n(210))/9*(-parseInt(n(240))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$2);let d$1=(_Ah=H(215),_zh=H(212),class{constructor(t){__publicField(this,_Ah),__publicField(this,_zh),__publicField(this,"el");for(var e=H,n={iJLLH:e(217),RNhuv:function(t,e){return t===e},nKgtf:e(220),VKEAA:e(214),qekFD:e(238)},i=n[e(213)][e(224)]("|"),r=0;;){switch(i[r++]){case"0":this.el[e(236)]=this[e(212)][e(218)][e(232)];continue;case"1":var s={kZLtN:function(t,i){return n[e(229)](t,i)}};continue;case"2":this.el[e(231)]=t=>{var n=e;this[n(212)][n(235)](s[n(228)](this[n(212)][n(218)][n(232)],"2D")?"3D":"2D"),this.el[n(236)]=this[n(212)][n(218)][n(232)]};continue;case"3":this[e(215)]=t;continue;case"4":this.el=document[e(223)](n[e(226)]);continue;case"5":this[e(212)].el[e(239)](this.el);continue;case"6":this[e(212)]=t[e(212)];continue;case"7":this.el[e(225)][e(219)]=this[e(215)][e(225)]||n[e(221)];continue;case"8":this.el[e(241)]=n[e(234)];continue}break}}});const b$1=N$1;function N$1(t,e){const n=E$1();return(N$1=function(t,e){return n[t-=332]})(t,e)}function E$1(){const t=["setZoom","classList","Neqve","innerHTML","createDom","41373lyVEgX","311761SraHhh","23080EEIhvf","map","3272885ylQXIv","15925680Hklvdo","createElement","target","vm-control-zoom","9zhNEbc","getZoom","omXqE","style","appendChild","cssText","25306182JYrZvy","amap","PwNBQ","vJmJA","config","5205792hHUNnP","div","className","inset: 200px 20px auto auto;","360GpWdnJ","EyBhs","BGCRS","vm-control-zoom-out",'\n <div data-type="in" class="vm-control-zoom-button vm-control-zoom-in">+</div>\n <hr class="vm-control-zoom-hr">\n <div data-type="out" class="vm-control-zoom-button vm-control-zoom-out">-</div>\n ',"42hhuvAQ","10KVtwbK","vm-control-zoom-in","ecEei","contains","onclick"];return(E$1=function(){return t})()}!function(t,e){const n=N$1,i=t();for(;;)try{if(829864===parseInt(n(355))/1*(parseInt(n(344))/2)+parseInt(n(354))/3*(-parseInt(n(338))/4)+parseInt(n(358))/5+-parseInt(n(334))/6+parseInt(n(343))/7*(parseInt(n(356))/8)+-parseInt(n(363))/9*(parseInt(n(359))/10)+parseInt(n(369))/11)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E$1);class d{constructor(t){__publicField(this,_Ch),__publicField(this,_Bh),__publicField(this,"el");const e=b$1,n={EyBhs:e(345),BGCRS:function(t,e){return t+e},PwNBQ:e(341),vJmJA:function(t,e){return t-e},Neqve:e(335),ecEei:e(362),omXqE:e(337)};this[e(357)]=t[e(357)],this[e(333)]=t,this.el=document[e(360)](n[e(351)]),this.el[e(336)]=n[e(346)],this[e(357)].el[e(367)](this.el),this[e(353)](),this.el[e(366)][e(368)]=this[e(333)][e(366)]||n[e(365)],this.el[e(348)]=t=>{const i=e;let r=t[i(361)][i(350)];r[i(347)](n[i(339)])?this[i(357)][i(370)][i(349)](n[i(340)](this[i(357)][i(370)][i(364)](),.5),300):r[i(347)](n[i(371)])&&this[i(357)][i(370)][i(349)](n[i(332)](this[i(357)][i(370)][i(364)](),.5),300)}}[(_Ch=b$1(333),_Bh=b$1(357),b$1(353))](){const t=b$1;this.el[t(352)]=t(342)}}const e=N;function N(t,e){const n=E();return(N=function(t,e){return n[t-=109]})(t,e)}function E(){const t=["5764840MCZoXw","1145510UnfbCI","12PWtTZc","7emGDpQ","10508025kWjWLW","4268251SjzHOa","59586PGoHgw","1vvmLlw","128WowLVX","9nWzwIm","1905060oxFNhn","60vCHdqQ","539775OjgTjh","2025/10/16 20:06:39"];return(E=function(){return t})()}!function(t,e){const n=N,i=t();for(;;)try{if(554396===parseInt(n(122))/1*(-parseInt(n(111))/2)+parseInt(n(121))/3*(parseInt(n(109))/4)+-parseInt(n(113))/5*(-parseInt(n(112))/6)+-parseInt(n(118))/7*(parseInt(n(115))/8)+-parseInt(n(110))/9*(parseInt(n(116))/10)+parseInt(n(119))/11+parseInt(n(117))/12*(-parseInt(n(120))/13))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(E);const b={THREE:J$k,TWEEN:x$e,EffectComposer,RenderPass,ShaderPass,EnterType,CSS2DObject,CrossType,convert3dTo2d,gltfLoader,texureLoader,FloorControl:d$2,ZoomControl:d,RoadLine,ViewModeControl:d$1,Compass:d$3,Map:w,FatLine,setSize,TextSprite,version:e(114)};return b});