Files
WarehouseClient/public/www.wxb3d.com/saas/sdk/v2.0/VgoMap.umd.js
2025-10-18 03:34:32 +08:00

18 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)
/**
* @license
* Copyright 2010-2024 Three.js Authors
* SPDX-License-Identifier: MIT
*/,_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,_Dh,_Eh,_Fh,_Gh,_Hh;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],b=i[5],x=i[8];return r[0]=s*f+a*A+o*S,r[3]=s*m+a*y+o*b,r[6]=s*g+a*v+o*x,r[1]=c*f+l*A+u*S,r[4]=c*m+l*y+u*b,r[7]=c*g+l*v+u*x,r[2]=h*f+d*A+p*S,r[5]=h*m+d*y+p*b,r[8]=h*g+d*v+p*x,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],b=i[0],x=i[4],M=i[8],T=i[12],I=i[1],E=i[5],C=i[9],w=i[13],R=i[2],k=i[6],_=i[10],L=i[14],U=i[3],F=i[7],V=i[11],N=i[15];return r[0]=s*b+a*I+o*R+c*U,r[4]=s*x+a*E+o*k+c*F,r[8]=s*M+a*C+o*_+c*V,r[12]=s*T+a*w+o*L+c*N,r[1]=l*b+u*I+h*R+d*U,r[5]=l*x+u*E+h*k+d*F,r[9]=l*M+u*C+h*_+d*V,r[13]=l*T+u*w+h*L+d*N,r[2]=p*b+f*I+m*R+g*U,r[6]=p*x+f*E+m*k+g*F,r[10]=p*M+f*C+m*_+g*V,r[14]=p*T+f*w+m*L+g*N,r[3]=A*b+y*I+v*R+S*U,r[7]=A*x+y*E+v*k+S*F,r[11]=A*M+y*C+v*_+S*V,r[15]=A*T+y*w+v*L+S*N,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,b=e*A+n*y+i*v+r*S;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const x=1/b;return t[0]=A*x,t[1]=(f*h*r-u*m*r-f*i*d+n*m*d+u*i*g-n*h*g)*x,t[2]=(a*m*r-f*o*r+f*i*c-n*m*c-a*i*g+n*o*g)*x,t[3]=(u*o*r-a*h*r-u*i*c+n*h*c+a*i*d-n*o*d)*x,t[4]=y*x,t[5]=(l*m*r-p*h*r+p*i*d-e*m*d-l*i*g+e*h*g)*x,t[6]=(p*o*r-s*m*r-p*i*c+e*m*c+s*i*g-e*o*g)*x,t[7]=(s*h*r-l*o*r+l*i*c-e*h*c-s*i*d+e*o*d)*x,t[8]=v*x,t[9]=(p*u*r-l*f*r-p*n*d+e*f*d+l*n*g-e*u*g)*x,t[10]=(s*f*r-p*a*r+p*n*c-e*f*c-s*n*g+e*a*g)*x,t[11]=(l*a*r-s*u*r-l*n*c+e*u*c+s*n*d-e*a*d)*x,t[12]=S*x,t[13]=(l*f*i-p*u*i+p*n*h-e*f*h-l*n*m+e*u*m)*x,t[14]=(p*a*i-s*f*i-p*n*o+e*f*o+s*n*m-e*a*m)*x,t[15]=(s*u*i-l*a*i+l*n*o-e*u*o-s*n*h+e*a*h)*x,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,b=n.y,x=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)*b,i[5]=(1-(h+g))*b,i[6]=(m+A)*b,i[7]=0,i[8]=(p+y)*x,i[9]=(m-A)*x,i[10]=(1-(h+f))*x,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!!(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 M=0;M<n.count;M++)a[M]=new Vector3,o[M]=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 M=0,T=A.length;M<T;++M){const e=A[M],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,b=new Vector3;function x(t){S.fromBufferAttribute(i,t),b.copy(S);const e=a[t];y.copy(e),y.sub(S.multiplyScalar(S.dot(e))).normalize(),v.crossVectors(b,e);const n=v.dot(o[t])<0?-1:1;s.setXYZW(t,y.x,y.y,y.z,n)}for(let M=0,T=A.length;M<T;++M){const e=A[M],n=e.start;for(let i=n,r=n+e.count;i<r;i+=3)x(t.getX(i+0)),x(t.getX(i+1)),x(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,b=p/2,x=f/2,M=m+1,T=g+1;let I=0,E=0;const C=new Vector3;for(let a=0;a<T;a++){const s=a*v-b;for(let o=0;o<M;o++){const h=o*y-S;C[t]=h*i,C[e]=s*r,C[n]=x,c.push(C.x,C.y,C.z),C[t]=0,C[e]=0,C[n]=f>0?1:-1,l.push(C.x,C.y,C.z),u.push(o/m),u.push(1-a/g),I+=1}}for(let a=0;a<g;a++)for(let t=0;t<m;t++){const e=h+t+M*a,n=h+t+M*(a+1),i=h+(t+1)+M*(a+1),r=h+(t+1)+M*a;o.push(e,n,r),o.push(n,i,r),E+=6}a.addGroup(d,E,A),d+=E,h+=I}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,b=WebGLShader(r,r.VERTEX_SHADER,v),x=WebGLShader(r,r.FRAGMENT_SHADER,S);function M(e){if(t.debug.checkShaderErrors){const n=r.getProgramInfoLog(m).trim(),i=r.getShaderInfoLog(b).trim(),s=r.getShaderInfoLog(x).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,b,x);else{const t=getShaderErrors(r,b,"vertex"),i=getShaderErrors(r,x,"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(b),r.deleteShader(x),T=new WebGLUniforms(r,m),I=fetchAttributeLocations(r,m)}let T,I;r.attachShader(m,b),r.attachShader(m,x),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===T&&M(this),T},this.getAttributes=function(){return void 0===I&&M(this),I};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=b,this.fragmentShader=x,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,b=(s.isMeshStandardMaterial?n:e).get(s.envMap||S),x=b&&b.mapping===CubeUVReflectionMapping?b.image.height:null,M=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 T=v.morphAttributes.position||v.morphAttributes.normal||v.morphAttributes.color,I=void 0!==T?T.length:0;let E,C,w,R,k=0;if(void 0!==v.morphAttributes.position&&(k=1),void 0!==v.morphAttributes.normal&&(k=2),void 0!==v.morphAttributes.color&&(k=3),M){const t=ShaderLib[M];E=t.vertexShader,C=t.fragmentShader}else E=s.vertexShader,C=s.fragmentShader,c.update(s),w=c.getVertexShaderID(s),R=c.getFragmentShaderID(s);const _=t.getRenderTarget(),L=!0===A.isInstancedMesh,U=!0===A.isBatchedMesh,F=!!s.map,V=!!s.matcap,N=!!b,B=!!s.aoMap,W=!!s.lightMap,P=!!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:M,shaderType:s.type,shaderName:s.name,vertexShader:E,fragmentShader:C,defines:s.defines,customVertexShaderID:w,customFragmentShaderID:R,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:F,matcap:V,envMap:N,envMapMode:N&&b.mapping,envMapCubeUVHeight:x,aoMap:B,lightMap:W,bumpMap:P,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:F&&m(s.map.channel),aoMapUv:B&&m(s.aoMap.channel),lightMapUv:W&&m(s.lightMap.channel),bumpMapUv:P&&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&&(F||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:I,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:F&&!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,b=v.intensity,x=v.distance,M=v.shadow&&v.shadow.map?v.shadow.map.texture:null;if(v.isAmbientLight)s+=S.r*b,a+=S.g*b,o+=S.b*b;else if(v.isLightProbe){for(let t=0;t<9;t++)i.probe[t].addScaledVector(v.sh.coefficients[t],b);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]=M,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(b),t.distance=x,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]=M,m++}u++}else if(v.isRectAreaLight){const t=e.get(v);t.color.copy(S).multiplyScalar(b),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]=M,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(b),t.groundColor.copy(v.groundColor).multiplyScalar(b),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",b)),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 b(t){t.target.removeEventListener("dispose",b);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?P(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?P(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,b=!1,x=null,M=null,T=null,I=null,E=null;const C=t.getParameter(t.MAX_COMBINED_TEXTURE_IMAGE_UNITS);let w=!1,R=0;const k=t.getParameter(t.VERSION);-1!==k.indexOf("WebGL")?(R=parseFloat(/^WebGL (\d)/.exec(k)[1]),w=R>=1):-1!==k.indexOf("OpenGL ES")&&(R=parseFloat(/^OpenGL ES (\d)/.exec(k)[1]),w=R>=2);let _=null,L={};const U=t.getParameter(t.SCISSOR_BOX),F=t.getParameter(t.VIEWPORT),V=(new Vector4).fromArray(U),N=(new Vector4).fromArray(F);function B(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 W={};function P(e){!0!==a[e]&&(t.enable(e),a[e]=!0)}function D(e){!1!==a[e]&&(t.disable(e),a[e]=!1)}W[t.TEXTURE_2D]=B(t.TEXTURE_2D,t.TEXTURE_2D,1),W[t.TEXTURE_CUBE_MAP]=B(t.TEXTURE_CUBE_MAP,t.TEXTURE_CUBE_MAP_POSITIVE_X,6),W[t.TEXTURE_2D_ARRAY]=B(t.TEXTURE_2D_ARRAY,t.TEXTURE_2D_ARRAY,1,1),W[t.TEXTURE_3D]=B(t.TEXTURE_3D,t.TEXTURE_3D,1,1),e.setClear(0,0,0,1),n.setClear(1),i.setClear(0),P(t.DEPTH_TEST),n.setFunc(LessEqualDepth),H(!1),q(CullFaceBack),P(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&&(P(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,b=!1;else if(e!==d||u!==b){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,b=u}}else!0===h&&(D(t.BLEND),h=!1)}function H(e){x!==e&&(e?t.frontFace(t.CW):t.frontFace(t.CCW),x=e)}function q(e){e!==CullFaceNone?(P(t.CULL_FACE),e!==M&&(e===CullFaceBack?t.cullFace(t.BACK):e===CullFaceFront?t.cullFace(t.FRONT):t.cullFace(t.FRONT_AND_BACK))):D(t.CULL_FACE),M=e}function j(e,n,i){e?(P(t.POLYGON_OFFSET_FILL),I===n&&E===i||(t.polygonOffset(n,i),I=n,E=i)):D(t.POLYGON_OFFSET_FILL)}return{buffers:{color:e,depth:n,stencil:i},enable:P,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):P(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?P(t.SAMPLE_ALPHA_TO_COVERAGE):D(t.SAMPLE_ALPHA_TO_COVERAGE)},setFlipSided:H,setCullFace:q,setLineWidth:function(e){e!==T&&(w&&t.lineWidth(e),T=e)},setPolygonOffset:j,setScissorTest:function(e){e?P(t.SCISSOR_TEST):D(t.SCISSOR_TEST)},activeTexture:function(e){void 0===e&&(e=t.TEXTURE0+C-1),_!==e&&(t.activeTexture(e),_=e)},bindTexture:function(e,n,i){void 0===i&&(i=null===_?t.TEXTURE0+C-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||W[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===V.equals(e)&&(t.scissor(e.x,e.y,e.z,e.w),V.copy(e))},viewport:function(e){!1===N.equals(e)&&(t.viewport(e.x,e.y,e.z,e.w),N.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,b=!1,x=null,M=null,T=null,I=null,E=null,V.set(0,0,t.canvas.width,t.canvas.height),N.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 b(t){const e=t.target;e.removeEventListener("dispose",b),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&&M(t),0===Object.keys(r).length&&d.delete(n)}i.remove(t)}(e),e.isVideoTexture&&u.delete(e)}function x(e){const n=e.target;n.removeEventListener("dispose",x),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 M(e){const n=i.get(e);t.deleteTexture(n.__webglTexture);const r=e.source;delete d.get(r)[n.__cacheKey],a.memory.textures--}let T=0;function I(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},C={[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},w={[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 R(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,C[s.magFilter]),t.texParameteri(n,t.TEXTURE_MIN_FILTER,C[s.minFilter]),s.compareFunction&&(t.texParameteri(n,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE),t.texParameteri(n,t.TEXTURE_COMPARE_FUNC,w[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",b));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&&M(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=P(a,p);const f=s.convert(a.format,a.colorSpace),b=s.convert(a.type);let x,M=y(a.internalFormat,f,b,a.colorSpace,a.isVideoTexture);R(c,a);const T=a.mipmaps,I=!0!==a.isVideoTexture,E=void 0===h.__version||!0===l,C=u.dataReady,w=S(a,p);if(a.isDepthTexture)M=v(a.format===DepthStencilFormat,a.type),E&&(I?n.texStorage2D(t.TEXTURE_2D,1,M,p.width,p.height):n.texImage2D(t.TEXTURE_2D,0,M,p.width,p.height,0,f,b,null));else if(a.isDataTexture)if(T.length>0){I&&E&&n.texStorage2D(t.TEXTURE_2D,w,M,T[0].width,T[0].height);for(let e=0,i=T.length;e<i;e++)x=T[e],I?C&&n.texSubImage2D(t.TEXTURE_2D,e,0,0,x.width,x.height,f,b,x.data):n.texImage2D(t.TEXTURE_2D,e,M,x.width,x.height,0,f,b,x.data);a.generateMipmaps=!1}else I?(E&&n.texStorage2D(t.TEXTURE_2D,w,M,p.width,p.height),C&&n.texSubImage2D(t.TEXTURE_2D,0,0,0,p.width,p.height,f,b,p.data)):n.texImage2D(t.TEXTURE_2D,0,M,p.width,p.height,0,f,b,p.data);else if(a.isCompressedTexture)if(a.isCompressedArrayTexture){I&&E&&n.texStorage3D(t.TEXTURE_2D_ARRAY,w,M,T[0].width,T[0].height,p.depth);for(let e=0,i=T.length;e<i;e++)if(x=T[e],a.format!==RGBAFormat)if(null!==f)if(I){if(C)if(a.layerUpdates.size>0){const i=getByteLength(x.width,x.height,a.format,a.type);for(const r of a.layerUpdates){const s=x.data.subarray(r*i/x.data.BYTES_PER_ELEMENT,(r+1)*i/x.data.BYTES_PER_ELEMENT);n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,e,0,0,r,x.width,x.height,1,f,s,0,0)}a.clearLayerUpdates()}else n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,e,0,0,0,x.width,x.height,p.depth,f,x.data,0,0)}else n.compressedTexImage3D(t.TEXTURE_2D_ARRAY,e,M,x.width,x.height,p.depth,0,x.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else I?C&&n.texSubImage3D(t.TEXTURE_2D_ARRAY,e,0,0,0,x.width,x.height,p.depth,f,b,x.data):n.texImage3D(t.TEXTURE_2D_ARRAY,e,M,x.width,x.height,p.depth,0,f,b,x.data)}else{I&&E&&n.texStorage2D(t.TEXTURE_2D,w,M,T[0].width,T[0].height);for(let e=0,i=T.length;e<i;e++)x=T[e],a.format!==RGBAFormat?null!==f?I?C&&n.compressedTexSubImage2D(t.TEXTURE_2D,e,0,0,x.width,x.height,f,x.data):n.compressedTexImage2D(t.TEXTURE_2D,e,M,x.width,x.height,0,x.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):I?C&&n.texSubImage2D(t.TEXTURE_2D,e,0,0,x.width,x.height,f,b,x.data):n.texImage2D(t.TEXTURE_2D,e,M,x.width,x.height,0,f,b,x.data)}else if(a.isDataArrayTexture)if(I){if(E&&n.texStorage3D(t.TEXTURE_2D_ARRAY,w,M,p.width,p.height,p.depth),C)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,b,r)}a.clearLayerUpdates()}else n.texSubImage3D(t.TEXTURE_2D_ARRAY,0,0,0,0,p.width,p.height,p.depth,f,b,p.data)}else n.texImage3D(t.TEXTURE_2D_ARRAY,0,M,p.width,p.height,p.depth,0,f,b,p.data);else if(a.isData3DTexture)I?(E&&n.texStorage3D(t.TEXTURE_3D,w,M,p.width,p.height,p.depth),C&&n.texSubImage3D(t.TEXTURE_3D,0,0,0,0,p.width,p.height,p.depth,f,b,p.data)):n.texImage3D(t.TEXTURE_3D,0,M,p.width,p.height,p.depth,0,f,b,p.data);else if(a.isFramebufferTexture){if(E)if(I)n.texStorage2D(t.TEXTURE_2D,w,M,p.width,p.height);else{let e=p.width,i=p.height;for(let r=0;r<w;r++)n.texImage2D(t.TEXTURE_2D,r,M,e,i,0,f,b,null),e>>=1,i>>=1}}else if(T.length>0){if(I&&E){const e=D(T[0]);n.texStorage2D(t.TEXTURE_2D,w,M,e.width,e.height)}for(let e=0,i=T.length;e<i;e++)x=T[e],I?C&&n.texSubImage2D(t.TEXTURE_2D,e,0,0,f,b,x):n.texImage2D(t.TEXTURE_2D,e,M,f,b,x);a.generateMipmaps=!1}else if(I){if(E){const e=D(p);n.texStorage2D(t.TEXTURE_2D,w,M,e.width,e.height)}C&&n.texSubImage2D(t.TEXTURE_2D,0,0,0,f,b,p)}else n.texImage2D(t.TEXTURE_2D,0,M,f,b,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),W(r)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,c,l,i.get(a).__webglTexture,0,B(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=B(n);W(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=B(n);i&&!1===W(n)?t.renderbufferStorageMultisample(t.RENDERBUFFER,h,u,n.width,n.height):W(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 F(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),I(r.depthTexture,0);const s=i.get(r.depthTexture).__webglTexture,a=B(r);if(r.depthTexture.format===DepthFormat)W(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");W(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 V=[],N=[];function B(t){return Math.min(r.maxSamples,t.samples)}function W(t){const n=i.get(t);return t.samples>0&&!0===e.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function P(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=T;return t>=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+r.maxTextures),T+=1,t},this.resetTextureUnits=function(){T=0},this.setTexture2D=I,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]=P(a,f[t]);const v=f[0],b=s.convert(a.format,a.colorSpace),x=s.convert(a.type),M=y(a.internalFormat,b,x,a.colorSpace),T=!0!==a.isVideoTexture,I=void 0===u.__version||!0===c,E=l.dataReady;let C,w=S(a,v);if(R(t.TEXTURE_CUBE_MAP,a),d){T&&I&&n.texStorage2D(t.TEXTURE_CUBE_MAP,w,M,v.width,v.height);for(let e=0;e<6;e++){C=f[e].mipmaps;for(let i=0;i<C.length;i++){const r=C[i];a.format!==RGBAFormat?null!==b?T?E&&n.compressedTexSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,0,0,r.width,r.height,b,r.data):n.compressedTexImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,M,r.width,r.height,0,r.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):T?E&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,0,0,r.width,r.height,b,x,r.data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,M,r.width,r.height,0,b,x,r.data)}}}else{if(C=a.mipmaps,T&&I){C.length>0&&w++;const e=D(f[0]);n.texStorage2D(t.TEXTURE_CUBE_MAP,w,M,e.width,e.height)}for(let e=0;e<6;e++)if(p){T?E&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,0,0,f[e].width,f[e].height,b,x,f[e].data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,M,f[e].width,f[e].height,0,b,x,f[e].data);for(let i=0;i<C.length;i++){const r=C[i].image[e].image;T?E&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,0,0,r.width,r.height,b,x,r.data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,M,r.width,r.height,0,b,x,r.data)}}else{T?E&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,0,0,b,x,f[e]):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,M,b,x,f[e]);for(let i=0;i<C.length;i++){const r=C[i];T?E&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,0,0,b,x,r.image[e]):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,M,b,x,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&&F(e)},this.setupRenderTarget=function(e){const r=e.texture,o=i.get(e),c=i.get(r);e.addEventListener("dispose",x);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===W(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=B(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),R(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),R(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),R(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&&F(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===W(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&&(V.length=0,N.length=0,V.push(t.COLOR_ATTACHMENT0+n),e.depthBuffer&&!1===e.resolveDepthBuffer&&(V.push(l),N.push(l),t.invalidateFramebuffer(t.DRAW_FRAMEBUFFER,N)),t.invalidateFramebuffer(t.READ_FRAMEBUFFER,V))}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=F,this.setupFrameBufferTexture=L,this.useMultisampledRTT=W}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 b=null;const x=new PerspectiveCamera;x.layers.enable(1),x.viewport=new Vector4;const M=new PerspectiveCamera;M.layers.enable(2),M.viewport=new Vector4;const T=[x,M],I=new ArrayCamera;I.layers.enable(1),I.layers.enable(2);let E=null,C=null;function w(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 R(){i.removeEventListener("select",w),i.removeEventListener("selectstart",w),i.removeEventListener("selectend",w),i.removeEventListener("squeeze",w),i.removeEventListener("squeezestart",w),i.removeEventListener("squeezeend",w),i.removeEventListener("end",R),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,C=null,f.reset(),t.setRenderTarget(g),d=null,h=null,u=null,i=null,A=null,V.stop(),n.isPresenting=!1,t.setPixelRatio(b),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",w),i.addEventListener("selectstart",w),i.addEventListener("selectend",w),i.addEventListener("squeeze",w),i.addEventListener("squeezestart",w),i.addEventListener("squeezeend",w),i.addEventListener("end",R),i.addEventListener("inputsourceschange",k),!0!==m.xrCompatible&&await e.makeXRCompatible(),b=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),V.setContext(i),V.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),I.near=M.near=x.near=t.near,I.far=M.far=x.far=t.far,E===I.near&&C===I.far||(i.updateRenderState({depthNear:I.near,depthFar:I.far}),E=I.near,C=I.far,x.near=E,x.far=C,M.near=E,M.far=C,x.updateProjectionMatrix(),M.updateProjectionMatrix(),t.updateProjectionMatrix());const e=t.parent,n=I.cameras;U(I,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,b=l*o/A*g;t.projectionMatrix.makePerspective(y,v,S,b,g,A),t.projectionMatrixInverse.copy(t.projectionMatrix).invert()}(I,x,M):I.projectionMatrix.copy(x.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,I,e)},this.getCamera=function(){return I},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(I)};let F=null;const V=new WebGLAnimation;V.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!==I.cameras.length&&(I.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=T[i];void 0===a&&(a=new PerspectiveCamera,a.layers.enable(i),a.viewport=new Vector4,T[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&&(I.matrix.copy(a.matrix),I.matrix.decompose(I.position,I.quaternion,I.scale)),!0===n&&I.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)}F&&F(e,r),r.detectedPlanes&&n.dispatchEvent({type:"planesdetected",data:r}),p=null})),this.setAnimationLoop=function(t){F=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,b=0,x=null,M=-1,T=null;const I=new Vector4,E=new Vector4;let C=null;const w=new Color(0);let R=0,k=e.width,_=e.height,L=1,U=null,F=null;const V=new Vector4(0,0,k,_),N=new Vector4(0,0,k,_);let B=!1;const W=new Frustum;let P=!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===x?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",bt,!1),e.addEventListener("webglcontextrestored",xt,!1),e.addEventListener("webglcontextcreationerror",Mt,!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(Wt){throw console.error("THREE.WebGLRenderer: "+Wt.message),Wt}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 bt(t){t.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),v=!0}function xt(){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 Mt(t){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",t.statusMessage)}function Tt(t){const e=t.target;e.removeEventListener("dispose",Tt),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 It(t,e,n){!0===t.transparent&&t.side===DoubleSide&&!1===t.forceSinglePass?(t.side=BackSide,t.needsUpdate=!0,Vt(t,e,n),t.side=FrontSide,t.needsUpdate=!0,Vt(t,e,n),t.side=DoubleSide):Vt(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(I)},this.getViewport=function(t){return t.copy(V)},this.setViewport=function(t,e,n,i){t.isVector4?V.set(t.x,t.y,t.z,t.w):V.set(t,e,n,i),X.viewport(I.copy(V).multiplyScalar(L).round())},this.getScissor=function(t){return t.copy(N)},this.setScissor=function(t,e,n,i){t.isVector4?N.set(t.x,t.y,t.z,t.w):N.set(t,e,n,i),X.scissor(E.copy(N).multiplyScalar(L).round())},this.getScissorTest=function(){return B},this.setScissorTest=function(t){X.setScissorTest(B=t)},this.setOpaqueSort=function(t){U=t},this.setTransparentSort=function(t){F=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!==x){const e=x.texture.format;t=e===RGBAIntegerFormat||e===RGIntegerFormat||e===RedIntegerFormat}if(t){const t=x.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",bt,!1),e.removeEventListener("webglcontextrestored",xt,!1),e.removeEventListener("webglcontextcreationerror",Mt,!1),at.dispose(),ot.dispose(),Q.dispose(),$.dispose(),tt.dispose(),it.dispose(),mt.dispose(),gt.dispose(),rt.dispose(),St.dispose(),St.removeEventListener("sessionstart",Ct),St.removeEventListener("sessionend",wt),Rt.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===x?y.outputColorSpace:!0===x.isXRRenderTarget?x.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!==x&&!0!==x.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===P&&(!0===D||t!==T)){const e=t===T&&i.id===M;ct.setState(i,t,e)}let b=!1;i.version===v.__version?v.needsLights&&v.lightsStateVersion!==S.state.version||v.outputColorSpace!==o||r.isBatchedMesh&&!1===v.batching?b=!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?b=!0:r.isInstancedMesh||!0!==v.instancing?r.isSkinnedMesh&&!1===v.skinning?b=!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?b=!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)&&(b=!0):b=!0:b=!0:b=!0:b=!0:(b=!0,v.__version=i.version);let I=v.currentProgram;!0===b&&(I=Vt(i,e,r));let E=!1,C=!1,w=!1;const R=I.getUniforms(),k=v.uniforms;X.useProgram(I.program)&&(E=!0,C=!0,w=!0);i.id!==M&&(M=i.id,C=!0);if(E||T!==t){R.setValue(At,"projectionMatrix",t.projectionMatrix),R.setValue(At,"viewMatrix",t.matrixWorldInverse);const e=R.map.cameraPosition;void 0!==e&&e.setValue(At,J.setFromMatrixPosition(t.matrixWorld)),z.logarithmicDepthBuffer&&R.setValue(At,"logDepthBufFC",2/(Math.log(t.far+1)/Math.LN2)),(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial)&&R.setValue(At,"isOrthographic",!0===t.isOrthographicCamera),T!==t&&(T=t,C=!0,w=!0)}if(r.isSkinnedMesh){R.setOptional(At,r,"bindMatrix"),R.setOptional(At,r,"bindMatrixInverse");const t=r.skeleton;t&&(null===t.boneTexture&&t.computeBoneTexture(),R.setValue(At,"boneTexture",t.boneTexture,Y))}r.isBatchedMesh&&(R.setOptional(At,r,"batchingTexture"),R.setValue(At,"batchingTexture",r._matricesTexture,Y),R.setOptional(At,r,"batchingIdTexture"),R.setValue(At,"batchingIdTexture",r._indirectTexture,Y),R.setOptional(At,r,"batchingColorTexture"),null!==r._colorsTexture&&R.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,I);(C||v.receiveShadow!==r.receiveShadow)&&(v.receiveShadow=r.receiveShadow,R.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);C&&(R.setValue(At,"toneMappingExposure",y.toneMappingExposure),v.needsLights&&(V=w,(F=k).ambientLightColor.needsUpdate=V,F.lightProbe.needsUpdate=V,F.directionalLights.needsUpdate=V,F.directionalLightShadows.needsUpdate=V,F.pointLights.needsUpdate=V,F.pointLightShadows.needsUpdate=V,F.spotLights.needsUpdate=V,F.spotLightShadows.needsUpdate=V,F.rectAreaLights.needsUpdate=V,F.hemisphereLights.needsUpdate=V),s&&!0===i.fog&&st.refreshFogUniforms(k,s),st.refreshMaterialUniforms(k,i,L,_,m.state.transmissionRenderTarget[t.id]),WebGLUniforms.upload(At,Nt(v),k,Y));var F,V;i.isShaderMaterial&&!0===i.uniformsNeedUpdate&&(WebGLUniforms.upload(At,Nt(v),k,Y),i.uniformsNeedUpdate=!1);i.isSpriteMaterial&&R.setValue(At,"center",r.center);if(R.setValue(At,"modelViewMatrix",r.modelViewMatrix),R.setValue(At,"normalMatrix",r.normalMatrix),R.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,I),gt.bind(n,I)}}return I}(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];It(s,n,t),i.add(s)}else It(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 Ct(){Rt.stop()}function wt(){Rt.start()}const Rt=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||W.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||W.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===P&&ct.setGlobalState(y.clippingPlanes,n),i&&X.viewport(I.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||I;s.setSize(a.z,a.w);const o=y.getRenderTarget();y.setRenderTarget(s),y.getClearColor(w),R=y.getClearAlpha(),R<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===P&&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,Ft(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(w,R),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)&&Ft(a,e,n,o,c,l)}}function Ft(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 Vt(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",Tt),l=new Map,i.programs=l);let u=l.get(c);if(void 0!==u){if(i.currentProgram===u&&i.lightsStateVersion===a)return Bt(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),Bt(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 Nt(t){if(null===t.uniformsList){const e=t.currentProgram.getUniforms();t.uniformsList=WebGLUniforms.seqWithValue(e.seq,t.uniforms)}return t.uniformsList}function Bt(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}Rt.setAnimationLoop((function(t){Et&&Et(t)})),"undefined"!=typeof self&&Rt.setContext(self),this.setAnimationLoop=function(t){Et=t,St.setAnimationLoop(t),null===t?Rt.stop():Rt.start()},St.addEventListener("sessionstart",Ct),St.addEventListener("sessionend",wt),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,x),m=ot.get(t,A.length),m.init(e),A.push(m),O.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),W.setFromProjectionMatrix(O),D=this.localClippingEnabled,P=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,F),q=!1===St.enabled||!1===St.isPresenting||!1===St.hasDepthSensing(),q&&ut.addToRenderList(f,t),this.info.render.frame++,!0===P&&ct.beginShadows();const n=m.state.shadowsArray;lt.render(n,t,e),!0===P&&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!==x&&(Y.updateMultisampleRenderTarget(x),Y.updateRenderTargetMipmap(x)),!0===t.isScene&&t.onAfterRender(y,t,e),mt.resetDefaultState(),M=-1,T=null,A.pop(),A.length>0?(m=A[A.length-1],!0===P&&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 b},this.getRenderTarget=function(){return x},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){x=t,S=e,b=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,I.copy(t.viewport),E.copy(t.scissor),C=t.scissorTest}else I.copy(V).multiplyScalar(L).floor(),E.copy(N).multiplyScalar(L).floor(),C=B;if(X.bindFramebuffer(At.FRAMEBUFFER,r)&&i&&X.drawBuffers(t,r),X.viewport(I),X.scissor(E),X.setScissorTest(C),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)}M=-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!==x?Q.get(x).__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!==x?Q.get(x).__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),b=At.getParameter(At.UNPACK_SKIP_ROWS),x=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,b),At.pixelStorei(At.UNPACK_SKIP_IMAGES,x),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,b=0,x=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(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 n=0;n<r.length;n+=3){t.x=r[n+0],t.y=r[n+1],t.z=r[n+2];const i=u(t)/2/Math.PI+.5,a=(e=t,Math.atan2(-e.y,Math.sqrt(e.x*e.x+e.z*e.z))/Math.PI+.5);s.push(i,1-a)}var e;(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,b=!1;f&&(g=f.getSpacedPoints(o),b=!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 x=t.extractPoints(a);let M=x.shape;const T=x.holes;if(!ShapeUtils.isClockWise(M)){M=M.reverse();for(let t=0,e=T.length;t<e;t++){const e=T[t];ShapeUtils.isClockWise(e)&&(T[t]=e.reverse())}}const I=ShapeUtils.triangulateShape(M,T),E=M;for(let e=0,n=T.length;e<n;e++){const t=T[e];M=M.concat(t)}function C(t,e,n){return e||console.error("THREE.ExtrudeGeometry: vec does not exist"),t.clone().addScaledVector(e,n)}const w=M.length,R=I.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,F=_.concat();for(let e=0,n=T.length;e<n;e++){const t=T[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),F=F.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=C(E[e],_[e],i);B(t.x,t.y,-n)}for(let e=0,r=T.length;e<r;e++){const t=T[e];U=L[e];for(let e=0,r=t.length;e<r;e++){const r=C(t[e],U[e],i);B(r.x,r.y,-n)}}}const V=h+d;for(let e=0;e<w;e++){const t=l?C(M[e],F[e],V):M[e];b?(v.copy(A.normals[0]).multiplyScalar(t.x),y.copy(A.binormals[0]).multiplyScalar(t.y),S.copy(g[0]).add(v).add(y),B(S.x,S.y,S.z)):B(t.x,t.y,0)}for(let e=1;e<=o;e++)for(let t=0;t<w;t++){const n=l?C(M[t],F[t],V):M[t];b?(v.copy(A.normals[e]).multiplyScalar(n.x),y.copy(A.binormals[e]).multiplyScalar(n.y),S.copy(g[e]).add(v).add(y),B(S.x,S.y,S.z)):B(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=C(E[e],_[e],i);B(t.x,t.y,c+n)}for(let e=0,r=T.length;e<r;e++){const t=T[e];U=L[e];for(let e=0,r=t.length;e<r;e++){const r=C(t[e],U[e],i);b?B(r.x,r.y+g[o-1].y,g[o-1].x+n):B(r.x,r.y,c+n)}}}function N(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=w*t,s=w*(t+1);P(e+i+n,e+r+n,e+r+s,e+i+s)}}}function B(t,e,n){s.push(t),s.push(e),s.push(n)}function W(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 P(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=w*t;for(let n=0;n<R;n++){const t=I[n];W(t[2]+e,t[1]+e,t[0]+e)}t=o+2*p,e=w*t;for(let n=0;n<R;n++){const t=I[n];W(t[0]+e,t[1]+e,t[2]+e)}}else{for(let t=0;t<R;t++){const e=I[t];W(e[2],e[1],e[0])}for(let t=0;t<R;t++){const e=I[t];W(e[0]+w*o,e[1]+w*o,e[2]+w*o)}}n.addGroup(t,i.length/3-t,0)}(),function(){const t=i.length/3;let e=0;N(E,e),e+=E.length;for(let n=0,i=T.length;n<i;n++){const t=T[n];N(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)break t;{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}}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 n$j=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$c=W$I;function M$H(){var t=["172134jTKMuW","isArray","qYuly","UMAxq","1112nqIJVh","dispose","defineProperty","sqrt","prototype","KVYSc","split","geometry","285715dSRzaE","reduce","parent","concat","217SlBkic","12XNnklN","dispatchEvent","1478162VFOdBq","angleTo","dot","2|1|0|3|4","_inScene","LBnrE","forEach","material","acos","3awpxsg","remove","disposeBoundsTree","UFUEt","60111ZgYGNh","lengthSq","__colorSpace","_colorSpace","TOBZT","map","wRLtE","children","colorSpace","Scene","type","18872095vEUlvM","5050530yNTKcd","computeBoundsTree","flat","slice","clamp","driGv","DEFAULT_UP","8PyAVAf","331401sZvZmL","LcOmT"];return(M$H=function(){return t})()}function W$I(t,e){var n=M$H();return(W$I=function(t,e){return n[t-=430]})(t,e)}!function(t,e){for(var n=W$I,i=t();;)try{if(727648===parseInt(n(443))/1+parseInt(n(464))/2*(-parseInt(n(473))/3)+-parseInt(n(442))/4*(parseInt(n(457))/5)+-parseInt(n(445))/6*(parseInt(n(461))/7)+-parseInt(n(449))/8*(-parseInt(n(477))/9)+-parseInt(n(435))/10+parseInt(n(434))/11*(parseInt(n(462))/12))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$H),Object3D[o$c(441)]=Object3D[o$c(453)].up=new Vector3(0,0,1),BufferGeometry[o$c(453)][o$c(436)]=()=>{},BufferGeometry[o$c(453)][o$c(475)]=()=>{},Object3D[o$c(453)][o$c(450)]=function(){for(var t=o$c,e={wRLtE:t(467),UMAxq:function(t,e){return t instanceof e},TOBZT:t(450)},n=e[t(483)][t(455)]("|"),i=0;;){switch(n[i++]){case"0":this[t(471)]&&(e[t(448)](this[t(471)],Array)?this[t(471)][t(470)]((e=>{var n=t;e[n(482)]&&e[n(482)][n(450)](),e[n(450)]()})):(this[t(471)][t(482)]&&this[t(471)][t(482)][t(450)](),this[t(471)][t(450)]()));continue;case"1":this[t(456)]&&this[t(456)][t(450)]();continue;case"2":this[t(459)]&&this[t(459)][t(474)](this);continue;case"3":this[t(430)][t(438)]()[t(470)]((e=>e[t(450)]&&e[t(450)]()));continue;case"4":this[t(463)]({type:e[t(481)]});continue}break}},Object[o$c(451)](Object3D[o$c(453)],o$c(468),{get(){var t,e,n=o$c,i={LcOmT:function(t,e){return t===e},qYuly:n(432)};return i[n(444)](this[n(433)],i[n(447)])||i[n(444)](null==(t=this[n(459)])?void 0:t[n(433)],i[n(447)])||(null==(e=this[n(459)])?void 0:e[n(468)])}}),Object[o$c(451)](Texture[o$c(453)],o$c(431),{get(){var t=o$c;return{KVYSc:function(t,e){return t!==e}}[t(454)](this[t(479)],void 0)?this[t(479)]:this[t(480)]||SRGBColorSpace},set(t){var e=o$c;this[e(480)]={UFUEt:function(t,e){return t||e}}[e(476)](t,SRGBColorSpace)}}),Vector2[o$c(453)][o$c(465)]=function(t){var e=o$c,n={driGv:function(t,e){return t/e},LBnrE:function(t,e){return t*e}},i=n[e(440)](this[e(466)](t),Math[e(452)](n[e(469)](this[e(478)](),t[e(478)]())));return Math[e(472)](MathUtils[e(439)](i,-1,1))},Array[o$c(453)][o$c(437)]||(Array[o$c(453)][o$c(437)]=function(){var t=o$c;return this[t(458)](((e,n)=>e[t(460)](Array[t(446)](n)?n[t(437)]():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 C$g=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={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123},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 K$5=W$H;!function(t,e){const n=W$H,i=t();for(;;)try{if(333185===parseInt(n(272))/1*(parseInt(n(223))/2)+parseInt(n(191))/3+parseInt(n(105))/4+-parseInt(n(186))/5+parseInt(n(279))/6*(parseInt(n(117))/7)+parseInt(n(125))/8*(-parseInt(n(179))/9)+-parseInt(n(274))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$G);let debug=location[K$5(200)][K$5(169)](K$5(214))||window[K$5(158)];const texureLoader=new TextureLoader,gltfLoader=new GLTFLoader,B$v=document[K$5(240)](K$5(144));let n$i;function showMessage(t,e=3e3){const n=K$5,i={rlQtv:n(155),soSLV:n(220),CNTfX:function(t,e){return t(e)},yhtHn:n(262),WxtvY:n(116),KFpBw:n(209),gxcOi:n(192),okiva:n(250),PMfoa:function(t,e,n){return t(e,n)},sgbyl:n(218),Azqai:n(132),NJsmj:n(263)},r=i[n(190)][n(189)]("|");let s=0;for(;;){switch(r[s++]){case"0":document[n(255)][n(111)](B$v);continue;case"1":B$v[n(131)]=""+t;continue;case"2":B$v[n(197)][n(139)]=i[n(235)];continue;case"3":i[n(145)](clearTimeout,n$i);continue;case"4":if(!debug)return;continue;case"5":B$v[n(197)][n(122)]=i[n(236)];continue;case"6":B$v[n(197)][n(178)]=i[n(243)];continue;case"7":B$v[n(197)][n(133)]=i[n(114)];continue;case"8":B$v[n(197)][n(143)]="0";continue;case"9":B$v[n(197)][n(225)]=i[n(109)];continue;case"10":B$v[n(197)][n(288)]=i[n(137)];continue;case"11":n$i=i[n(286)](setTimeout,(()=>{const t=n;document[t(255)][t(142)](B$v)}),e);continue;case"12":B$v[n(197)][n(241)]="0";continue;case"13":B$v[n(197)][n(244)]=i[n(275)];continue;case"14":B$v[n(197)][n(224)]=i[n(264)];continue;case"15":B$v[n(197)][n(121)]=i[n(282)];continue}break}}const log=new class{constructor(){__publicField(this,_b2,document[K$5(240)](K$5(144))),__publicField(this,_a2,{});const t=K$5,e={hfEwX:t(251),bikFj:t(262),hBtCd:t(218),qODtx:t(220),aQZFr:t(183),quSMb:t(132),dMFvR:t(192),bNVEj:t(209),fImeR:function(t,e,n){return t(e,n)}},n=e[t(248)][t(189)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[t(144)][t(197)][t(284)]="0";continue;case"1":this[t(144)][t(197)][t(122)]=e[t(171)];continue;case"2":this[t(144)][t(197)][t(244)]=e[t(135)];continue;case"3":this[t(144)][t(197)][t(139)]=e[t(164)];continue;case"4":this[t(144)][t(197)][t(196)]="0";continue;case"5":this[t(144)][t(197)][t(288)]=e[t(253)];continue;case"6":this[t(144)][t(197)][t(224)]=e[t(216)];continue;case"7":this[t(144)][t(197)][t(225)]=e[t(247)];continue;case"8":this[t(144)][t(197)][t(133)]=e[t(228)];continue;case"9":e[t(176)](setTimeout,(()=>{const e=t;document[e(255)][e(111)](this[e(144)])}),3e3);continue}break}}[(_b2=K$5(144),_a2=K$5(106),K$5(219))](t,e){const n=K$5;debug&&(this[n(106)][t]=e,this[n(242)]())}[K$5(230)](t){const e=K$5;debug&&(Object[e(208)](this[e(106)],t),this[e(242)]())}[K$5(242)](){const t=K$5;if(!debug)return;let e="";for(const n in this[t(106)])e+=n+": "+this[t(106)][n]+", ";this[t(144)][t(131)]=""+e}};function setSize(t,e,n){const i=K$5,r={ccAYw:function(t,e){return t*e},biKzN:function(t,e){return t in e},VhHPn:i(151),GdQbY:function(t,e){return t/e},LhsbN:function(t,e){return t(e)},tKUxB:function(t,e){return t/e}};if(e&&(t[i(126)]=r[i(104)](e,r[i(101)](r[i(168)],t[i(184)][i(165)])||isPc?1:devicePixelRatio)),!t[i(184)]||!t[i(184)][i(165)][i(170)])return;const{height:s,width:a}=t[i(184)][i(165)][i(170)];let o=r[i(162)](s,n);r[i(227)](isNaN,o)&&(o=1),t[i(181)][i(259)](o,o,1)[i(177)](r[i(267)](r[i(104)](t[i(181)].x,a),s))[i(199)](t[i(126)]||1)}class Collision{constructor(){__publicField(this,_c);this[K$5(173)]=[]}[(_c=K$5(173),K$5(148))](){const t=K$5;this[t(173)][t(289)]=0}[K$5(123)](t){const e=K$5;if({IvNYJ:function(t,e){return t===e}}[e(202)](this[e(173)][e(289)],0))return this[e(173)][e(123)](t),!1;for(var n in this[e(173)]){var i=this[e(173)][n];if(this[e(118)](i,t))return!0}return this[e(173)][e(123)](t),!1}[K$5(118)](t,e){const n=K$5,i={SEcVB:function(t,e){return t<e},rPEev:function(t,e){return t+e},LSWOI:function(t,e){return t>e},JUVvq:function(t,e){return t<e},EbYqv:function(t,e){return t+e},nPGiW:function(t,e){return t+e}};return i[n(213)](t.x,i[n(188)](e.x,e.w))&&i[n(211)](i[n(188)](t.x,t.w),e.x)&&i[n(234)](t.y,i[n(285)](e.y,e.h))&&i[n(211)](i[n(150)](t.h,t.y),e.y)}}function M$G(){const t=["defineProperty","dMFvR","hfEwX","trident","red","1|4|0|3|8|2|7|5|6|9","GcVad","aQZFr","angleTo","body","RfTqv","android","fkUOl","set","userAgent","resolve","fixed","3px","Azqai","kdrMh","project","tKUxB","PvpdL","substring","myGpF","LpPwo","8qSDIus","etiwI","3542850MzkMLA","sgbyl","ORJOj","matrixWorldInverse","mlpQv","252438KEUiIU","kLSvv","clientWidth","NJsmj","mRrKL","left","EbYqv","PMfoa","IrQXI","backgroundColor","length","biKzN","TVxPw","Nwsad","ccAYw","2334192UGnsfu","obj","linux","changedTouches","gxcOi","fulfilled","appendChild","aSTLc","createObjectURL","KFpBw","clientX","5px","63ACDMoq","collision","promise","bHDxa","borderRadius","position","push","pending","4552LDckrq","_scale","DyNuF","FzCJh","nvoLx","NgthN","innerHTML","99999","whiteSpace","toLowerCase","hBtCd","QcmUP","okiva","WcMck","maxWidth","ZRnQZ","setFromProjectionMatrix","removeChild","top","div","CNTfX","copy","random","clear","qaTNs","nPGiW","_text","QclCh","touches","uHkJL","4|3|5|8|12|2|7|13|9|10|15|6|14|1|0|11","hCjxm","jHraD","debug","ZWFJg","akWCL","mobile","GdQbY","status","qODtx","map","postMessage","QMrxB","VhHPn","includes","image","bikFj","now","rects","cross","AKWmx","fImeR","setX","padding","2961quDymE","dkthS","scale","llsxj","rgba(0,0,0,0.5)","material",")()","3058610kqCAgn","uzZsb","rPEev","split","rlQtv","760500oemrJI","none","sqrt","UxAGy","micromessenger","bottom","style","OhGnb","multiplyScalar","href","containsPoint","IvNYJ","toString","DYxmu","vVmFY","weDpc","iphone","assign","pre-wrap","TdHLN","LSWOI","QveJB","SEcVB","log=","xoIQN","quSMb","NBnWp","#ffffff","show","100vw","ipad","clientY","67672irNusO","zIndex","pointerEvents","match","LhsbN","bNVEj","xHBWt","showlogs","exec","sub","clientHeight","JUVvq","soSLV","yhtHn","projectionMatrix","onmessage","multiplyMatrices","createElement","right","update","WxtvY","color","UJCgS"];return(M$G=function(){return t})()}function convert3dTo2d(t,e,n){const i=K$5,r={UJCgS:function(t,e){return t*e},etiwI:function(t,e){return t/e},akWCL:function(t,e){return t+e},uHkJL:function(t,e){return t-e},fkUOl:function(t,e){return t+e},ORJOj:function(t,e){return t<=e},mRrKL:function(t,e){return t>=e},TVxPw:function(t,e){return t>=e},ZWFJg:function(t,e){return t<e}};let s=(new Vector3)[i(146)](t)[i(266)](e);const{clientWidth:a,clientHeight:o}=n;let c=r[i(245)](r[i(273)](r[i(160)](s.x,1),2),a),l=r[i(245)](r[i(154)](1,r[i(273)](r[i(258)](s.y,1),2)),o),u=r[i(276)](c,n[i(281)])&&r[i(283)](c,0)&&r[i(276)](l,n[i(233)])&&r[i(102)](l,0);return{pos:new Vector2(c,l),vector:s,trueSide:r[i(159)](s.z,1),inSight:u}}function createShortId(){const t=K$5;return Math[t(147)]()[t(203)](36)[t(269)](2,10)}function reactiveEvent(t,e){const n=K$5,i={hCjxm:function(t,e){return t!==e},ZRnQZ:function(t,e,n){return t(e,n)}};let r={};for(const s in t)Object[n(246)](r,s,{get:()=>t[s],set(r){const a=n;i[a(156)](r,t[s])&&(t[s]=r,i[a(140)](e,s,r))}});return r}function getPromise(){const t=K$5,e={TdHLN:t(110),vVmFY:function(t,...e){return t(...e)},qaTNs:t(124)},n={status:e[t(149)]};return n[t(119)]=new Promise((i=>{const r=t,s={bHDxa:e[r(210)],GcVad:function(t,...n){return e[r(205)](t,...n)}};n[r(261)]=(...t)=>{const e=r;n[e(163)]=s[e(120)],s[e(252)](i,...t)}})),n}function getURLQuery(t=location[K$5(200)]){const e=K$5,n={},i=/([^?&=]+)=([^?&=]+)/g;let r=i[e(231)](t);for(;r;)n[r[1]]=r[2],r=i[e(231)](t);return n}function fps(t,e){const n=K$5,i={myGpF:function(t,e){return t-e},FzCJh:function(t,e){return t>e},PvpdL:function(t,e){return t-e},llsxj:function(t,e){return t%e},LpPwo:function(t){return t()},kdrMh:function(t,e){return t/e}};let r,s,a=Date[n(172)](),o=i[n(265)](1e3,debug?100:e);return()=>{const e=n;r=Date[e(172)](),s=i[e(270)](r,a),i[e(128)](s,o)&&(a=i[e(268)](r,i[e(182)](s,o)),i[e(271)](t))}}function getLineLength(t,e){const n=K$5,i={AKWmx:function(t,e){return t in e},QclCh:function(t,e){return t+e},IrQXI:function(t,e){return t**e},Nwsad:function(t,e){return t-e},aSTLc:function(t,e){return t**e}};let r=i[n(175)]("x",t),s=r?t.x:t[0],a=r?t.y:t[1],o=i[n(175)]("x",e),c=o?e.x:e[0],l=o?e.y:e[1];return Math[n(193)](i[n(152)](i[n(287)](i[n(103)](c,s),2),i[n(112)](i[n(103)](l,a),2)))}const ua=function(){const t=K$5,e={DYxmu:t(257),uzZsb:t(107),QMrxB:t(207),RfTqv:t(221),nvoLx:t(195),NBnWp:function(t,e){return t&&e},QveJB:t(249)},n=navigator[t(260)][t(134)]();let i=!!n[t(226)](/\(i[^;]+;( u;)? cpu.+mac os x/),r=n[t(169)](e[t(204)])||n[t(169)](e[t(187)]),s=n[t(169)](e[t(167)]),a=n[t(169)](e[t(256)]),o=n[t(169)](e[t(129)]),c=e[t(217)](!o,!a)&&!i&&!s&&!r;return{ie:n[t(169)](e[t(212)]),mobile:!c,ios:i,android:r,iphone:s,ipad:a,wx:o,pc:c}}(),isPc=!ua[K$5(161)]&&!ua[K$5(221)];function getXY(t){const e=K$5,n={dkthS:function(t,e){return t in e},xHBWt:e(115)};return n[e(180)](n[e(229)],t)?{x:t[e(115)],y:t[e(222)]}:t[e(153)]&&t[e(153)][0]?{x:t[e(153)][0][e(115)],y:t[e(153)][0][e(222)]}:t[e(108)]&&t[e(108)][0]?{x:t[e(108)][0][e(115)],y:t[e(108)][0][e(222)]}:t}function getLineAngle(t,e,n){const i=K$5;let r=(new Vector2)[i(146)](t),s=(new Vector2)[i(146)](e),a=(new Vector2)[i(146)](n),o=r[i(232)](s),c=a[i(232)](s),l=o[i(254)](c),u=o[i(174)](c);return{deg:{mlpQv:function(t,e){return t*e}}[i(278)](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=W$H,a=e[s(239)](i[s(237)],i[s(277)]);return t[s(141)](a),t[s(201)](n[s(146)](r))}}();function W$H(t,e){const n=M$G();return(W$H=function(t,e){return n[t-=101]})(t,e)}function pointInPolygon(t,e){const n=K$5,i={DyNuF:function(t,e){return t-e},jHraD:function(t,e){return t<e},NgthN:function(t,e){return t!==e},WcMck:function(t,e){return t>e},QcmUP:function(t,e){return t+e},OhGnb:function(t,e){return t/e},kLSvv:function(t,e){return t*e},weDpc:function(t,e){return t-e},xoIQN:function(t,e){return t-e}},r=t.x,s=t.y;let a=!1;for(let o=0,c=i[n(127)](e[n(289)],1);i[n(157)](o,e[n(289)]);c=o++){const t=e[o].x,l=e[o].y,u=e[c].x,h=e[c].y;i[n(130)](i[n(138)](l,s),i[n(138)](h,s))&&i[n(157)](r,i[n(136)](i[n(198)](i[n(280)](i[n(127)](u,t),i[n(206)](s,l)),i[n(215)](h,l)),t))&&(a=!a)}return a}const z$4=W$G;!function(t,e){const n=W$G,i=t();for(;;)try{if(320170===-parseInt(n(490))/1*(-parseInt(n(518))/2)+-parseInt(n(562))/3+parseInt(n(522))/4+parseInt(n(534))/5*(parseInt(n(452))/6)+-parseInt(n(493))/7*(parseInt(n(528))/8)+-parseInt(n(470))/9*(parseInt(n(445))/10)+parseInt(n(475))/11)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$F);const B$u=new Set;EventDispatcher[z$4(554)].on=function(t,e){const n=z$4,i={LBOpJ:n(512),PgAOc:function(t,e){return t!==e},PlvWn:n(484),gEyRm:function(t,e){return t instanceof e}};if(!i[n(464)](typeof e,i[n(480)])){if(this[n(505)](t,e),!B$u[n(473)](this)&&i[n(455)](this,Object3D)){B$u[n(558)](this);const t=()=>{const e=n;B$u[e(453)](this),this[e(503)](i[e(458)],t)};this[n(505)](i[n(458)],t)}return this}},EventDispatcher[z$4(554)][z$4(510)]=function(t,e){return this[z$4(503)](t,e),this},EventDispatcher[z$4(554)][z$4(533)]=function(t,...e){const n=z$4,i={ocxph:function(t,e){return t===e},Tyscc:function(t,e){return t<e}};if(i[n(446)](this[n(567)],void 0)||!this[n(567)][t])return;const r=(this[n(567)][t]||[])[n(476)](0);for(let s=0;i[n(508)](s,r[n(523)]);s++)r[s][n(497)](this,e);return this};let n$h=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=z$4,i={NfaAL:n(559)}[n(499)][n(489)]("|");let r=0;for(;;){switch(i[r++]){case"0":this[n(491)]=new Raycaster;continue;case"1":this[n(472)]={};continue;case"2":this[n(537)]();continue;case"3":this[n(460)]=t;continue;case"4":e();continue}break}}get[(_h=z$4(460),_g=z$4(491),_f=z$4(472),_e=z$4(552),_d=z$4(544),z$4(450))](){const t=z$4;return this[t(460)][t(450)]}get[z$4(494)](){const t=z$4;return this[t(460)][t(500)][t(483)]}[z$4(444)](t,e){const n=z$4,i={bcWAQ:n(451),rQVeu:function(t,e,n){return t(e,n)}};this[n(491)][n(465)](i[n(486)](screenPosTo3dPos,t,this[n(494)]),this[n(450)]);let r=e||[...B$u],s=[];Array[n(525)](r)?r[n(460)]((t=>{const e=n;t[e(449)]((t=>{const n=e;(t[n(532)]||t[n(526)])&&!t[n(556)]&&s[n(527)](t)}))})):r[n(449)]((t=>{const e=n;(t[e(532)]||t[e(526)])&&!t[e(556)]&&s[e(527)](t)})),this[n(552)]=this[n(491)][n(524)](s,!1)[n(542)](((t,e)=>e[n(530)][n(507)]-t[n(530)][n(507)]));let a=this[n(460)];this[n(552)][n(460)]((t=>{const e=n;Object[e(504)](t,i[e(557)],{get(){const t=e;return a[t(488)](this[t(501)])}})}))}[z$4(537)](){const t=z$4,e={rDMaO:function(t,e){return t(e)},Nyxqz:t(520),opRgK:function(t,e){return t(e)},nFhKW:function(t,e){return t<=e},gOOYB:function(t,e){return t-e},FrODA:function(t,e){return t-e},txnQu:t(459),THwlS:function(t,e){return t===e},TVOWS:t(565),wdGhk:function(t,e){return t===e},evPRc:t(535),efVkh:t(478),WGyCW:function(t){return t()},RuEBZ:t(546),qBHUF:t(568),jKaso:function(t,e){return t>e},BMbkl:function(t,e){return t-e},lbQRL:function(t,e,n){return t(e,n)}};let n;this[t(494)][t(505)](e[t(536)],(i=>{const r=t;this[r(444)](i),n=e[r(469)](getXY,i),this[r(477)](i,e[r(536)])})),this[t(494)][t(505)](e[t(502)],(i=>{const r=t;let s=e[r(492)](getXY,i);e[r(468)](Math[r(541)](e[r(519)](s.x,n.x)),3)&&e[r(468)](Math[r(541)](e[r(487)](s.y,n.y)),3)&&(this[r(444)](i),this[r(477)](i,e[r(566)]),this[r(533)](e[r(566)],i),e[r(495)](i[r(564)],0)?(this[r(477)](i,e[r(517)]),this[r(533)](e[r(517)],i)):e[r(471)](i[r(564)],2)&&(this[r(477)](i,e[r(514)]),this[r(533)](e[r(514)],i))),this[r(477)](i,e[r(502)])}));let i,r=Date[t(448)]();ua.pc&&this[t(494)][t(505)](e[t(467)],(n=>{const s=t,a={AsCJl:e[s(467)],ysMDo:e[s(560)]};i&&e[s(492)](clearTimeout,i);const o=()=>{const t=s;this[t(444)](n),this[t(533)](a[t(482)],n),this[t(477)](n,a[t(482)]),this[t(496)](n);const e=this[t(552)][0];this[t(494)][t(561)][t(540)]=e&&e[t(530)][t(540)]||a[t(509)]};e[s(551)](e[s(547)](Date[s(448)](),r),60)&&(e[s(543)](o),r=Date[s(448)]()),i=e[s(521)](setTimeout,(()=>{const t=s;e[t(543)](o),r=Date[t(448)]()}),60)}))}[z$4(496)](t){const e=z$4,n={lhCYP:e(563),iaKfk:e(555)};this[e(552)][e(460)]((i=>{const r=e;!this[r(472)][i[r(530)][r(516)]]&&(i[r(530)][r(533)](n[r(457)],{event:t,...i}),this[r(472)][i[r(530)][r(516)]]=i[r(530)])}));for(const i in this[e(472)]){const r=this[e(472)][i];!this[e(552)][e(549)]((t=>t[e(530)][e(516)]===i))&&(delete this[e(472)][i],r[e(533)](n[e(531)],{event:t,object:r}))}}[z$4(454)](t,e){const n=z$4;return t[n(567)]&&t[n(567)][e]&&t[n(567)][e][n(523)]}[z$4(477)](t,e){const n=z$4,i={PzvRV:function(t,e,n){return t(e,n)},Rwvtm:function(t,e,n){return t(e,n)}};let r={},s=(n,a)=>{const o=W$G;if(!n)return;this[o(454)](n,e)&&!r[n.id]&&(r[n.id]=1,a[o(466)]=t,n[o(533)](e,a)),i[o(463)](s,n[o(447)],a)},a=!1;this[n(552)][n(460)]((r=>{const o=n;!a&&this[o(454)](r[o(530)],e)&&(r[o(466)]=t,r[o(530)][o(533)](e,r),a=!0),i[o(548)](s,r[o(530)][o(447)],r)}))}[z$4(485)](t,e,n=[]){const i=z$4;return this[i(491)][i(515)](t,e),this[i(491)][i(524)](n,!0)}[z$4(529)](t,e=[]){const n=z$4;return this[n(491)][n(465)]({SyVju:function(t,e,n){return t(e,n)}}[n(456)](screenPosTo3dPos,t,this[n(494)]),this[n(450)]),this[n(491)][n(524)](e,!0)}};function W$G(t,e){const n=M$F();return(W$G=function(t,e){return n[t-=444]})(t,e)}function M$F(){const t=["handEnterOut","apply","htfYy","NfaAL","amap","point","efVkh","removeEventListener","defineProperty","addEventListener","dhtXj","renderOrder","Tyscc","ysMDo","off","width","dispose","clientHeight","evPRc","set","uuid","TVOWS","670GWHRap","gOOYB","pointerdown","lbQRL","95464DRjvDz","length","intersectObjects","isArray","visible","push","8PNaASx","intersectObjectsBy2D","object","iaKfk","_click","emit","1435seQNco","rightclick","Nyxqz","initListener","clientWidth","IzDUz","cursor","abs","sort","WGyCW","plane","pGeUa","pointermove","BMbkl","Rwvtm","find","YgtPp","jKaso","intersectionList","top","prototype","pointerout","_noClick","bcWAQ","add","4|3|1|0|2","qBHUF","style","808146XKLMKC","pointerenter","button","leftclick","txnQu","_listeners","default","left","handleIntersect","14860GCRhVC","ocxph","parent","now","traverse","camera","lnglat","5028shSvpj","delete","hasEvent","gEyRm","SyVju","lhCYP","LBOpJ","click","map","height","tbXGt","PzvRV","PgAOc","setFromCamera","event","RuEBZ","nFhKW","rDMaO","603hzvmXG","wdGhk","enterList","has","getBoundingClientRect","6606611zIJevY","slice","handleEvent","pointerup","LVaen","PlvWn","imNww","AsCJl","container2","function","intersectObjectsByLine","rQVeu","FrODA","coordsToLngLatWorld","split","438dkZZma","raycaster","opRgK","2258123kuMUwH","canvas","THwlS"];return(M$F=function(){return t})()}function screenPosTo3dPos(t,e){const n=z$4,i={htfYy:function(t,e){return t(e)},dhtXj:function(t,e){return t/e},IzDUz:function(t,e){return t*e},LVaen:function(t,e){return t-e},imNww:function(t,e){return t*e},pGeUa:function(t,e){return t*e},tbXGt:function(t,e){return t+e},YgtPp:function(t,e){return t*e}},{x:r,y:s}=i[n(498)](getXY,t),a=e[n(474)](),o={x:i[n(506)](i[n(539)](i[n(479)](r,a[n(569)]),e[n(538)]),a[n(511)]),y:i[n(506)](i[n(481)](i[n(479)](s,a[n(553)]),e[n(513)]),a[n(461)])},c=new Vector2;return c.x=i[n(479)](i[n(545)](i[n(506)](o.x,e[n(538)]),2),1),c.y=i[n(462)](i[n(550)](i[n(506)](o.y,e[n(513)]),-2),1),c}const B$t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZIAAAHyCAMAAAD2qLiSAAADI2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDJGNDIyNTVFMjIwMTFFQzhEM0JFRTRCODREQ0E5NzUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDJGNDIyNTZFMjIwMTFFQzhEM0JFRTRCODREQ0E5NzUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpEMkY0MjI1M0UyMjAxMUVDOEQzQkVFNEI4NERDQTk3NSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEMkY0MjI1NEUyMjAxMUVDOEQzQkVFNEI4NERDQTk3NSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmJkHWMAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAANlBMVEUAAAAAAAAF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",n$g="data:image/png;base64,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",C$f="data:image/png;base64,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",v$c="data:image/png;base64,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",I$b="data:image/png;base64,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",h$b="data:image/png;base64,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",d$8="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZIAAAHyCAMAAAD2qLiSAAADI2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REEzNzA1MjRFMjIwMTFFQzk5MkY4MzFFNTc1NjU3NEIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6REEzNzA1MjVFMjIwMTFFQzk5MkY4MzFFNTc1NjU3NEIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpEQTM3MDUyMkUyMjAxMUVDOTkyRjgzMUU1NzU2NTc0QiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEQTM3MDUyM0UyMjAxMUVDOTkyRjgzMUU1NzU2NTc0QiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiwRsYYAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAPFBMVEUAAAACAAAA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",G$2=W$F;function M$E(){const t=["https://lbsapi.vgomap.com/","1309416MpsTEZ","1601396utESIs","3255381KfCrlH","$config","433838PYRVLK","https://test.3dwxb.com/","机动车道","出入口","2918286NWnAHa","api","10NIxdgg","23130dcoEaN","1540110KdiUMY","4960TONMCE"];return(M$E=function(){return t})()}!function(t,e){const n=W$F,i=t();for(;;)try{if(552831===parseInt(n(313))/1+-parseInt(n(321))/2+-parseInt(n(311))/3+parseInt(n(325))/4+-parseInt(n(319))/5*(parseInt(n(324))/6)+parseInt(n(317))/7+-parseInt(n(322))/8*(-parseInt(n(320))/9))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$E);const o$b={api:(null==(_i=window[G$2(312)])?void 0:_i[G$2(318)])||G$2(314),api2:(null==(_j=window[G$2(312)])?void 0:_j[G$2(318)])||G$2(323),texList:{"洗手间":h$b,"卫生间":h$b,"电梯":n$g,"扶梯":v$c,"楼梯":I$b,"步梯":I$b,"大门":B$t,"停车场":d$8,"安全出口":C$f,"出入口":C$f}},c$a=5,w$b=6,s$8=7,i$6=8,Z$6=9,EnterType={stairs:c$a,escalator:w$b,elevator:s$8,indoor:i$6,motorway:Z$6,[c$a]:{name:"楼梯",id:c$a},[w$b]:{name:"扶梯",id:w$b},[s$8]:{name:"电梯",id:s$8},[i$6]:{name:G$2(316),id:i$6},[Z$6]:{name:G$2(315),id:Z$6}};function W$F(t,e){const n=M$E();return(W$F=function(t,e){return n[t-=311]})(t,e)}const z$3=0,J$5=1,N$4=2,V$6=3,K$4=4,F$1=10,CrossType={block:z$3,manCar:J$5,man:N$4,manOnly:V$6,car:K$4,carOnly:F$1,[z$3]:{name:"不通",id:z$3},[J$5]:{name:"人车",id:J$5},[N$4]:{name:"人",id:N$4},[K$4]:{name:"车",id:K$4},[V$6]:{name:"仅人",id:V$6},[F$1]:{name:"仅车",id:F$1}},renderOrderConfig={line:1e4,arrow:10003,positionMarker:10009,beaconDetectShow:1e5,beacon:9999,testMsgSprite:100101,startEnd:10002};function W$E(t,e){const n=M$D();return(W$E=function(t,e){return n[t-=403]})(t,e)}function M$D(){const t=["indexOf","children","3625866LMMgWH","3324604dtRaak","map","display","DlDCz","findIndex","6664144tKXOZR","4079580rDgwwm","addFromChildrnPool","dispose","destory","push","style","splice","87290csMiSw","NJCSh","childrenPool","fWMkl","add","none","qSlSo","5fVMIpW","1791onETVk","element","1688552MhlSPX","16zvTATo","traverse","object3d","3957996quRlBD","removeFromParent","data","remove","parent","isCSS2DObject"];return(M$D=function(){return t})()}const c$9=W$E;!function(t,e){const n=W$E,i=t();for(;;)try{if(878100===-parseInt(n(407))/1+parseInt(n(420))/2+parseInt(n(426))/3+-parseInt(n(425))/4+parseInt(n(404))/5*(parseInt(n(419))/6)+parseInt(n(411))/7*(-parseInt(n(408))/8)+parseInt(n(405))/9*(parseInt(n(433))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$D);let B$s=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=c$9(415),_o=c$9(418),_n=c$9(435),_m=c$9(410),_l=c$9(421),_k=c$9(413),c$9(437))](t){const e=c$9;t[e(415)]&&(t[e(415)]=null),{qSlSo:function(t,e){return t<e}}[e(403)](this[e(418)][e(417)](t),0)&&(this[e(410)][e(437)](t[e(410)]),t[e(415)]=this,this[e(418)][e(430)](t))}[c$9(414)](t){const e=c$9,n={NJCSh:e(438),DlDCz:function(t,e){return t>e}};let i=this[e(418)][e(417)](t);n[e(423)](i,-1)&&(this[e(418)][e(432)](i,1),t[e(410)][e(412)](),t[e(410)][e(409)]((t=>{const i=e;t[i(416)]&&(t[i(406)][i(431)][i(422)]=n[i(434)])})),this[e(435)][e(430)](t))}[c$9(427)](t){const e=c$9;let n,i=this[e(435)][e(424)]((n=>n[e(413)].id===t));return{fWMkl:function(t,e){return t>e}}[e(436)](i,-1)&&(n=this[e(435)][e(432)](i,1)[0],this[e(418)][e(430)](n),n[e(415)]=this,this[e(410)][e(437)](n[e(410)])),n}[c$9(412)](){var t;const e=c$9;null==(t=this[e(415)])||t[e(414)](this)}[c$9(429)](){const t=c$9;this[t(418)][t(421)]((e=>{e[t(415)]=null})),this[t(410)][t(428)]()}};const B$r="data:image/jpeg;base64,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Ak4AAQACOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAAeOEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0EAAAAAAAAAgAAOEJJTQQCAAAAAAACAAA4QklNBDAAAAAAAAEBADhCSU0ELQAAAAAABgABAAAADThCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAANNAAAABgAAAAAAAAAAAAAEAAAABAAAAAAMAHcAYQB0AGUAcgBuAG8AcgBtAGEAbABzAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAEAAAAAABSZ2h0bG9uZwAABAAAAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNsaWNlAAAAEgAAAAdzbGljZUlEbG9uZwAAAAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVudW0AAAAMRVNsaWNlT3JpZ2luAAAADWF1dG9HZW5lcmF0ZWQAAAAAVHlwZWVudW0AAAAKRVNsaWNlVHlwZQAAAABJbWcgAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABC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b20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgKDEyLjB4MjAxMDAxMTUgWzIwMTAwMTE1Lm0uOTk4IDIwMTAvMDEvMTU6MDI6MDA6MDAgY3V0b2ZmOyBtIGJyYW5jaF0pICBXaW5kb3dzIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxMy0xMi0wM1QyMDo0MjoxMyswMTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTMtMTItMDVUMDA6NTQ6MDkrMDE6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTMtMTItMDVUMDA6NTQ6MDkrMDE6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvanBlZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkM2MjFDQjI0M0M1REUzMTFCQ0YxOUQ3MDBBOTQzMEFCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkM1MjFDQjI0M0M1REUzMTFCQ0YxOUQ3MDBBOTQzMEFCIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6QzUyMUNCMjQzQzVERTMxMUJDRjE5RDcwMEE5NDMwQUIiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOkM1MjFDQjI0M0M1REUzMTFCQ0YxOUQ3MDBBOTQzMEFCIiBzdEV2dDp3aGVuPSIyMDEzLTEyLTAzVDIwOjQyOjEzKzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M1ICgxMi4weDIwMTAwMTE1IFsyMDEwMDExNS5tLjk5OCAyMDEwLzAxLzE1OjAyOjAwOjAwIGN1dG9mZjsgbSBicmFuY2hdKSAgV2luZG93cyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGltYWdlL3BuZyB0byBpbWFnZS9qcGVnIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpDNjIxQ0IyNDNDNURFMzExQkNGMTlENzAwQTk0MzBBQiIgc3RFdnQ6d2hlbj0iMjAxMy0xMi0wNVQwMDo1NDowOSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENTNSAoMTIuMHgyMDEwMDExNSBbMjAxMDAxMTUubS45OTggMjAxMC8wMS8xNTowMjowMDowMCBjdXRvZmY7IG0gYnJhbmNoXSkgIFdpbmRvd3MiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9InciPz7/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////7gAOQWRvYmUAZAAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQcHBw0MDRgQEBgUDg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAQABAADAREAAhEBAxEB/90ABACA/8QAkwAAAwEBAQEBAAAAAAAAAAAAAgMEBQEABgcBAAMBAQEBAQAAAAAAAAAAAAIDBAEABQYHEAACAQMDAwMEAQMEAgIBBQEBAgMAEQQhMRJBUSJhEwVxgTIUkaFCI7FSMxXBYtEGcuHxgkMkUxEAAgMAAgICAwADAAMBAQEAAAERAgMhEjEEQRNRYSJxMhSBQgUjFVL/2gAMAwEAAhEDEQA/ANXHZ1Ugai/Wv0e6RH69eGDmSIEHMBr9BXZrngo1zbSgzv2VR9LqvQXqnrIuuTRQCk4P+t6XyjG+TNzMeRDwV9D0BpqsmQ7w4TRNj4+SkpVieB63vRtqD0vR6pwWNhy3ufIeppKse49Ei/HhjMdmBBtrap3/ALBabvrCKseMKBxbQdKHTklrpwUjJ4MLrfvQ/XweT7DdrBySxSAEDj3vWVq0LvSOWTyYqubj+aYrwTW0hk0mEivqxtRLRsito73hC+ftSWBuKbEo9GlIKIyri96W+BlTrCxte9cgr8gliNq0OlJJmnb3LAUccFlclXlgZcZaLlcC+wraOGJuvsfHgyfYlL6DXoae2W5KtEWQ4iSIA4u1Kbhna+zKhAn45VckK3IbXou5N9z5GzYbyRAlNayt0hG2yamSFcOdGI6E7UzuiH7qpHZ/jpUsygkHcVy0R1tUIk+IYjmUYg9BWrRFfrar4M+fCy8c841bj2NMVkyu1q+Wafxk2VKoUpY0nVIo9a9H8mzDgOV5cSSelRu3Jfb2Uq8eBc+G6OAYrg70+l1Hk8b2Ne10pFCJFlH+Nh6dKKeDraNNKR82Gk+gTixoK3gVvrDieWZ3sSYz/gfXtT5Vg/X4rMmli/IoFHuWA/21PfL8DYb8FT5kLEFdBQVzZPvRpyybJ9pzy43Nt6Oso8vWexltmrBIqqxUqdgaK2cnnaZWbSN3F+UUqC7aUm+H4PZ9fD8F0WT+whCfzepdK9Wez6uKqm2IYMlwwJpy5O0twwVgMikoxX0vWu0MVW6pSWBLFIqggnkNzejq0zyNb/Y5E3DOLEhvU0wfWsQPhCJKGa5760q8tQOpo+3Ba0GFLYgkaa2NTq16j3e0yRS4axS35FlPrVNdJRBro3Yug/XKbk+lT3mSzN2aOTRoykDbpXUswroiKRqQL/WqE2T2bGI+Mu4oWrDa9jmQmO4upA+9dRtHXTki/Ux2fU3b607uwfsacIaIMVTZtPQGh7MG2lm4R1oICPxP1vXKzGOzSFthxWuAb/Wi7sTbVg+0BuLXrZEd2wgxX8dqyB1K/kXMwOrXI7VqQjZ/gdEU43C2XpehYFbfJQrjhZVF+9LaBc28keSpa4P9KbQJZpGS2MyzBlW996erHY/7o60ELm7crjpWyy3TRzCBbEiIuouel652ZNvs0jf+A/8AsEuKFhkAKDQaV5/teotOfkkzm3yfU/8Ac4sijko1ryP+K68MH2cX4QC5MLNoBx7Ct+my8kNc+vLKkxonFxGNeu9JezXyUU0/Z32FUBdARXfY2Fa7aglkxR7h5C696dXXjgT2i3BNPgf3Rg7/AEp9N/ydLswGiUxEG4YU1WcnsLjMSoYREoWJo2+eRFOayyVshw5LMRboBTFmvwQqk2bGRZcZYcpih7G9ZbN/gaqw/BpRorkNcsLb7VJZtHoZ368jGwsdhctr9aBb2RLpvazMnPxfbf8Ax6gDXWrcdJXIu2fPJD+u8iX3NU90i/0qKJAb42VtGFwdta5ao9HX2a1UIdD8bMo4otx9aG2y+RVfYVuGyeXDnVyDcH/bTK6Jol32SGxxlBqDftehdpIXo78IpxJ0PiQQ/wDSlaUZRR9amxE/KL8QSOxvUFlD8k+unZRJNIXUk217XptUiVUgFwzw3C2N9710wxOlk6h40RfQsQe1K01gn+5LhA5KNDY3La6dqyn9iuruwo82cC4uB2FM/wCep6nr+uoByfkMgobrdT3o6evSR2nr1iSH3GZbga1QqonpnPBL+zkC+ttdqcs6l+GFUhqZr3sTr1oXmi6mPZhrkoXHMPf+lLtRxwelTOGkoK8iATxEjtUOFutj0fZv1p+zNSHIgI4IbDcmvUdq28njK6VZbNXEylSxlG+9Ra5T4Eq7s+B8pxJtVJB7UFO9RGlbV5Ee3EHsdul6b2cEvZ9gJCisONq5zBH7V2uCqKTEZfNQbdamtW/wS0dreBntY0in20Brlay8sqomly+RChU8TFb1prl/JybS8lKCNo7WuOnSk2bTCd+tZAfHFjaw+m9ctJIXZ2ciGwseS1yb+pp61si7JusMhyMOGCUNa4+tUU0dkFNnaRMkeLIxv4+t6YnZFNE+xJPjJGSA/NT3NNrdsLa7biCFmhjU3LXpyTYGednWCP8AdCyWuxU96PoZ9PUsVr2sSQdaEpS+BkcK8r2uT60LZXlaPAxoGY6Ej6GhVjb3SJnw3D3JN/rR9zzr688DVIRgGJB9DWPkem20kWo+O41JLDvSGmi+qcDkRT5KLdBrQtmWuaeJlvHGwvcD1qHfNNodhXumIyM6KS4IJP1p2ebQl+t8mZNEpkDODbterKvgjvaHwGIIypIUfc0PZg21aTZdBjKIuanbcA0i2nMCM9XoJlgLqeIa/wBaNWgvzqq1lkyYvCT/ACKddzemu8rgGmk24FZMWMHHK/0ra2tBL7mlu0I4kWOGJjBF/WtbfyT9rLyf/9CuJz7jLyIr9MsuBdF1bRVJGDGCBfS5JpNXyP0cpIglWE/kP6VQpJbtpcCo+KPoPAmifImrjlhZESXDg6b2oFYi3u25HYrQROOYup3FqG8tFXpVta5VLHFIR7el9r0mln8nv6fwuQoYyoKuRbpXXfyifO/ZwhDz+21lFxRVUlFs+q5BXNQPsb9+lM+vg8m9Ha/6Kvf9wX5DXal9YB1jwhT5zwnUmw6WrfqViDTJti3+Shkbya1zRLFop9f02nIidlNyuvbWmVLHm24I4s11cqSQD0pjpJqzVS39g8bm4FL6mdZDRpWsY1PHuaCxXhSq5Z5o3BudL961Mn9nWXCGJALFSy2NBawyluqgXLgw3BuSfSirditdmFHCyeUetu9c7fkg0245NGNuSqGjubb1O/0wFaY5FvENRawolYGzI2gYEaXHWj7nn2tLPOSFCBdfWtgdeswhXvhGsDxPUHamdT1M8GkkT5U2PIpVzqeooqJoo1ydawiLHDwyFsd+Sn+3rTbQ1yBl/PDN/CzJGQDiQw3qLTNSUXsmoKpve9xXceI3tS6REEPsXqrSg5cdZIw6WB7msreHDFK3HZiZIUZbg2dR0olaBuFXpaTNzEdkNydKozfJ6rzSqZw4r/Zr1Jp4KlV8jhkxWsxH0FZ1ZJtLPMxkGjWFdEE7qq8sgycWHmGO561ys2zzbXte/wChuFKEYIxuporqUe56q6rk2cSQRNdNR2qXSsltbs1o2GTCQw4+tR2XR8CqtQ2RT4pgfwkv6GqKX7LlE+1nZxHBI+RKHAJLX7bU9VUArFST5EsyOrgFhRVSaO0zTskgos93HVSDtWPMdXNVRoQZERF2azdhSLUZjbYbNCz+O57msSaRJdPtLHY5VGAZ9DQaKRqv1+C2WGHiHXyqal3MMY22pI5F2ZI/rpVKf5YhVlzJO7SI1yniaNJMp6peAiFdLrY+lZ4Z3wTPHKsgIUW+lNTUE2l0nJRFjCQHoaXa8C6a8nXwylirX7iuWkm67BJEnVqx2ZK9HZgtEORsdLb1qYdVDAGKT/x2v3re/wCRzvChiZMdSSrXB70auTaXFJjtGeNyRuDRO0gq/EDkjkZQFOooW0PyjiRM8eR3NFVobq6olMEvLkelMVkKzsk+Dhhcm/St7HX0SDEETRki4YUt3Z519XaTiYUkieLcSPtW90in171pWWXYceTGODHkR1pWlqsXp7Cs4LossKCHa1ulTWznwS2m3gtxfmEjI8zxttSNPT7Iow9d+TRT5SFwGDWB6GpLeo0bbJyc/wC0hWQgnkD2rH6dmiX6LOw2OfHnPieJoXnankqzz6vkY+ArKSbEEdKCvswx/wB0+DNkx2hPGNvWxq6uitywbKKwyV4n5cmIud9KarL4IbWTfB18RZOLKoZh1FctY4D78odFJLDe467b0F6qw215RoRGCfdbHudKjv2oHS0M9kfGQvciuz9poK2jvYy/0njZlH8Vf9yakryfWsHmVlA5g6Vsz4JtdJKsZjoQKn0Qmlx08WPLbkgv3pNbWr8id7Nsjk+NhIIsD2tVVfYaGZ2aUEc2FLGRw17AVRXZPyMtdQdx58yEkNdB6i9DelLfsTXqy1ZxKtioYn+61TvOPk7rPBLIgVtbi3UUbtwSb3jhfAEUs8bEqCytsaFZ1t5EetkrWlnpsiYHja4NPWdT0dMlXg7FllDa2nWteUlWeXwdnyI3QqQdf4rK0aGbZwoM4zcGIXW3SqlTg71/XESZMx/Fbd6NVR6GfrJsQTk+8GZeK96JRBVe1Kvg0oBIwBvv3qa8IKt1EmzGgMQ0s3pXmviwy+vdEOV73FlXxIq3OOCPTNJOSK01tRc96fxIeaVagPmGPe4olnJmmUnY8xZhZgbd655wQ6xmp+SgexyHlpbap32Z4et7XudiyEjY21TqDWvNsoxzdeWUR5VjeLQUFs/yN6Ryy6FXyF8yAO1SXuqeCZ7VTGJiiM8bkjsKU9nYners4E5DrEbe231vT869vkuy9Zv5JHz4klXlHcfWqFi2vI6+T7JJj3SDLjuni3agTtR8jn/NZZKfi1ViWN/Smr2JBz2bfBNPhxqLnW1Npo2bNrvgy8qBCSUAudwaqpYqsuleSSf4x3TmBx9RRrVEN90+R+BjThRy8htegtomBl7CszQXDi5agrelPRlr3dfBQMReJC+VL+wS9HYjycXJD3AsKbS9TP5mTyYckqeQ8x1Na9EinC6YIhMbjlXdpRVptHgtiWEbmlWbE1tZvgrhxiwJQjiaj2vykz1/Vsqpk0mGwuFGu96opovJN7GsKCdkk/Fjr3pyaPLvZC5Y3XxL6HaiTk6/4SF4vuqWCyFgelbokVepVVUR5GStmDRbjrQU6sr2rRKDsUWW7cmJFFa1UQvaifB3KxZynK/81lLoj1unyTEEIDfWmIVmuyk//9F3DJMh0IFq/TZUHU6u4V5UfVzftWQmimzUgs128xRJHm725hHY5Y0cLbQ9TQ2TZ5+ktwHNxdLDVulYlAN68QdxcWZ2Cuv3vXaXSR6nq6VpCLXxWRuN7WGl6npdRJbrp2tAEeK8oFybg117wUY3VUcyfjGte2orcdUL9z2VAmP4uRlvxI+tOeyPIXtKA1wvbtdtRQvSRF/YbKGxI5oyePLuKD7GmFi3ZmbNiRp+MdvrVFbyenRP8kjCUE8V260copVVVciHmkVvNeu9MSPP188FkDsyAalT3pdkGrKtS6HHAQG5N+lItbkOu38jPYLHVTWdoJe/I4YBIuAPrQfaMv7EIYcZgNCD6UP2Ij117MmkUkWYcfpTExNuEHCul1Yi3rWWYWdhwkcban1pbSEbWEnICuOXjrqK5Zk2WXKYrOh5yc42FvSnZuFyexjilaWSPgvJ5MSCKYtIPRWqXID/ABiueOtwN6JawT7ezzyJPxzREOoNwelF9qZE/Y7f4NHEXJ5XuADSLupv31Us1IY1K8ZHOtSXv+EQa+w3wkVCDHKlFOtutJ728suyraIZIMWRXII09KfbRNHpeu1RHW+Ouu2nrWLYzT2CKfAjB4gAmqK6sCjb8mTkfHryIICmqq6Aa69UDFi+2bHyB2rHeTzNPYdnCFSwKz8QLMNqKrNrWHAUaISFdbMOta2Wq7lJFXu48fipu4pUNnpqlmjsWeUsC50N7XobZyPzxhQHL8lHIp5KQw/uoa5wa/XZDL8nbZSR6U+tBV/WhScObyUMFat6i3lxI2PjNGSBZ/8AWsfAnP8ArgX7syGxjt61sJj7JJeRnvsQCUNx1FZ1E9Z+Qv8AsAqgsNL/AHrPrOtm4k0cf5fjHYfgetS3wllKwinI2L5DkLMSw/iutl+CbPGEM96I2sLg96HqzLVcnI+AJ4rvWuRNrQnyMCqykFrHoKGYPOtbsz0BZTZhpXWUhY8Dn9lhdQVNLUozWzYviOoBNHIFFB1oybG3FT0rlYoTShgiIqSb+Iruwvvy2Lk472/miUiOrbJJplvbanVqPWMHYXcMCNu9dZDM4kpa7XuRSlwDb+rEEhKsVP2NUIJ16o8EWRTY6jpWNwSWt5JCJYuRsQCd63hkvENlImb2h6nes6lVafyLTLb3iFNya36wa5f1yMEqM5571nX8DM83a0LwcaTgwbQ321okpLnXhQPhlDsAujAb0FlBzhcMfGshYB31pdmkS31S+CyNkjOknFqRZN/AP9W+DQw8yVlssl7VJtjX8FGdUlDRTLNBIg9xfIdaQqWr4ZJ7VnHAkRY7KQdO1GrXRFmmRSzDEO/Jb6Deqa07oL6rMpjz0mTWMD/WlP13V+Rqy48nly442uwFq14toKmbngpXODLZVuO9IeEM9XH1+tZZx8lQfJbjuKJZP4ZPrVyIyAWQ8dAabTjyJvRJcksQaNgTISO1Ns0/giekKTRg87ciPp1qG9o8Ca6Sx74jamPX0oa7L5LaR5ZK8EtyLhCO9OWlX+xF2r2gjkI2kJDd7aVQuFwdo+lR+Myx/k2nSkXl+CbOzYvNmjueFmuLUeWTfk3/AJna3PgylzZ4pCrjwB0q/wCmrXBZniq8FMkon1SwtQVr18lDzScs5HCr7k3rbXgflfk5JiFjYGxFatIDvpzyKbEaOzNRLRMPG3Z8CngkHJiQVOwolZFqaSaQkzR6K5pnV/BNdPwh8Mo4lY2FvWlXr8srzpChnWyMqMrYtxO5pMKzZ6tcqqqk82eQGLE2G96bXI8/anZuAhkxTAe3v1vWOrXkLPGPJLkRjkTYD1pub4F+zaCcSBSFYi1HZSfO+xd2tCOiZfeHG7f6V3UBUi0FN2drFDrQeCjRqvEh/ttGCvGxtQ/XIu9HHJzG+X4uQNGFBf1pIVi24NGL5h5RYfkKQ/UVT0fX9NfJ7J+RlCf5EuDpcV1MVPB7lPUXWTKnzE36E1dWhFrl1Ul/x2VC6EMwH0qXarng8p62s4RpCxGh5KepqYsouqJ3w+QYBT9aatYKvXSScmXm4/tDyFV53nwI9q7a4M/9kRJxt4namWqeVsooV4csRQXaldWjfVq0ilp41tYEjuaxVZbaj8sIT8NVBYdhWdJGZ58SwllMq+K8W7HWsdYFdVZwKiM3Ictr60dkiz11Wqk7k4bP+LW7GsppAe11PIuHFlRvLzorXTFrdGxg80IUqAprz/YSaLstUvkdmQuDdLWtQYXUQwLUmzszGmV76mvRq0R9U2Syvc8SNRTaodascnY4pR5Lf6AUNrId6sNyPD5A1ZdLaXoUkL9jRWfApc5UYKQbk/aiecnnaUdUaMbx5ERQ22qZp1cmUrPBkZuJk47W4lozsQKsy0rYtrSqR//S2Jo5VmJJ5J3r9FrZNAQqMIxIVuoAYdaxWYOl3BLPjs24t602t4I9LKqJJ8FgQeXiOtMroIeimRZUoujEkag0XkOtXcZjfIy81B0P0ob5KC3DJJya8c5dwStxtUjpCK7Ndxyni9xpY7CgiUBpbqX+7AY7EgE9al6WTPM3tbRk0gBuFYH/AEp9RCpCJ3B1BIJ6dBTUbWvZwiE5GVHJxUCx7U51q0ez6vrVouToEsjeY5V3CRRNU+ATAnG51PYUSsSaauJJ5sePcIL/AM0aszz72b+RYmaIFQuvTSidZDrm78D0+SlAs2g+lA8kWWySUIbFlhyLNrQukEzqkVxu5NlGtJaXyKu03ATyMADIlrdaxL8G9eOAfchkQlrEVzTRFpZqR8GLAyAqbXpVtLIHPVwLyMfg2/0NHS8nQ7WIJku1nHIdxVNWX458ig3tNZAdetFEl7TbhhjJk5HkDas6IXtFShMuMMAdCaVajPG9huS2CSGZDGyb9RU9k68yKr/KiRb46QSWvpauejshG2rRXjy45VeZ1pDrb4B9etnDNFcfFmBKEBhU1tb18nu4OztBFlhomBV9R0qnB9kX+xWI4OxSmZda21epNSBc8KMCVHl3oqXaHw45MvL46hx96tz/AEQ+wmZqsAbhvEdt6ckR4Z8yybKB5hlv9abUudIcs8sHvFSx1+tc3BRjZJplafHmRbLbTrek20g9Omy8s5/04DX5jkPvWfbwMr7HZ+AP0nF7m/Ymt7oP7RM0JC2YAim1ZLraRLI6qeC6Ha9GmJu1Hk5inKjfUeJ6110mDg61K3KkXOpFLSB2bfgOF/cjsDwrLKGbklWsvyd/TSQFSbmu7wHW4UeG8eijlbvWO6N+7u4PEzK2q1yhhXaqi+CISICwIPcUizgke/4OyIyAgH+a5OROj4FpJxa/W9hRNSSJSwnmKm+ulYqlFqdUMTNUi1vregeQj62zvvqfQ13UZ0hDgGIFqBwDZp8HA0yvYi4auaTQm7UwN9ppAOSaUPZL5Co0hM3x8LEkAg0ddmHbRtkBjmiuvS+hp8pgtpVj5KobyCxWl24HYwgJ4rC5HGtrYRveRERS547mutJ5zbb/AMnp4jLGVDENW1cDOqSgndZ4yFdbqOtOlFl3WqQawFmLKgU9xS+5F9k28jRhyO1yN9Ca77Ei6mtaf5Yyb4orGrf296Gu/I+/sfyhBRYSPO5GulMTkVXtZyA2bISPG1q360d9SmR6ZcnVLjudaB5oormh0WYyPyTQ9qC2cqGZdQaKfJB0tILE9akt68Pgh0p2fAuTMYKeFiDR1yXyWev6cV5M/Ly8ngRa49KpzzrJTf1q9YIIM/IEvEKR9TT7ZqCf661cGjHNOT5WYW2pFqpDcaVdimCeYjj+A7mk2ovJXratamhjShgFa7HqTU2lY8Hi66zwXLHFIhAvfapHZpiXd24IZw0TEcBYdTTe3ZeTzPYtzCG4+Ymo2JO9A8GH6+TfLLlznGg8qQ/WTPQtl8HjmIbNJGNOorl67XhmUx/BLnHHmgLItyNqfjSycNir4WujGLMw4nxIr0q1SLPXxSROzsrWLE3OhpyUj2pYpj/nIlBKHY1q8cCbtK/AxXEEq8VJVjpeha7ITrZuyLkym9wD2tO9IefHkrrmqvyOOXihzyBB9KX9V/gU6Xvfg42RjSxkIdaxVsnyevj67rSGZ88iICGuapryylZNVM+V1a3QCqUhNc+ql+Q8cIxsmh6mg1cIp9RN25HurDaQgjp0qfJF/t6JIZHG7pZxyU9aZZw+Dy6XSX7YHsRo10FrVztI6ja5YM48L2uKOhF7VuDPewlBt4nSnHhaOLfsfHJGZNDtS2mJbacs1YVEqq2196ltaAa6S5Hy/GiVCygX7UFfYh8lK0nkxpfieMxI8GGu9WV3kXTX+h2NHLG1iw+tddpo9HK6RsoEbHsbNXnWlXk9as2pBj/J4/OJlVQL6rar8b8id6JUhnzsK5sM/ixFjVr6tHmZ2pVm/ifKTwECUFh3vUmmKt4Hqv2WhF7/ADnJdygqRetyeqvTVKSxOUy5UIKtdrb07NdGR60Ucnz2bBNFfVjbpaq5TPD9lqzhfAeDO7W5dO+lbZJIZnZVqb0MMM0O5DVHa7TN+12QZgdBZGvXd0/JRa3EMBYZA/InjW9kBnZTwN4yqL8bjvQyhzskpKY8hAg5gX60m1HPBM5uF7sJbcDtWdWZ1clscYcAjX6VNa0FudpKolVhwdQD0NTWlcofprxAmT4kM9yvIU1e5CPL09pVfB0/B4z30sfSl/8A9CyEP3LXsTt8S8Ab27ketU19tX8noZ69aQyaXBEiWOjgbU+u0MPO38mNmY8kfEMONqtpdPwR72mBuDIDJwG/eh0XAzDi0MvZucZRnIIqdKHMFeilRB//096VpLXKnietfoVUgLw+SeWQqv4m3cUyqky1IrIt5GIvcketGkefrywUkRkKsL1zTE0q7OCTI5IbovieppteT0VmqVlnYFDeQAvXWYGdpZdAkrHR7W6Ui7RR9tVLNGMrwsw8juamt54I76O4nIk4GwHj0o6KSv6eqJTllGIsWHpTvrkmtlLOrMsrC9101FY6winDNJyMfEk/IEgUFborvopEOkgBtcUxNANpKToB4eRrfk8/a8qEcLcvx0I610Ca0l8iG/ZVtSrA96NQyhKqGIY3HkgJrHKOdn8CnRke6ABa1Mm0tDLsfk1m5EUizFZ2724HOkpBBHJaFNF13WqggOOoYhQQSe+lNdzyNdH4GR5D48igjxNDanZG9eUkXvkLIRfY9elJrSD0VikTSxSpJcDkp9KbWyaGuEw0UAguo06WrG/wKtpzwMljRhyRR/FBWz+SbVzyyKZIWby8WA3FNq2Tf07Ej5LwSgRsSKa6Jrk3XOOWaKZseRDyvZtjUbyckTo9GCJgSAmpp6pB62GERI/FzJ0mAYW9KVtknU9j1c0rFuZKZIiwH3FR+surgt9vNRJnw++bFQeNXXggw61UsqUSBdBc0lxI6r7ckGY8gBLC4qrNL4PP3on4Msokt+MVj1INqomPkZ62fRS2RzRvEdQeJ9b01OTNXLOxNFe4B0rnI3KrkqiygrHhc+l6VaslyrHktx89U1lhsD1pN8p8MVD+GWHKwZl8AVJ6EVP1unyOrjZKWRZOM7ghbEdqopcG8JcmeYpY24voKpTTIb3lnlVg/idOtczE0mPVk15AetC0Za0DCkCryUXNDLMmzQwZUPbiw7ULox1c7MJJQzXWT7ULXAytYfgOUyFNw32rKwS+zZQehlYjS/0rrIDCqiWUAcx5gDtel+DLWl8EXCRX420ve9PlQLrFfJTHGGBG560puALaSzqwcW8tL1zvIp6/gp9hTa+3cUruFbQ4qPGdGv8AWubTBq5OSTshVjoBvXKkidFyimHJjKgh9bUq2b/AdKsYGEost+QoY6lOdIXPkkmiJbqDTq2JtHNgYSQLNoaKwWb4Cn9pgQdTWVk7SrMiVvbnBAIH0qmtZJq0i0jYnd1uFIB6ihhIPJLyxhZwWDISttzSrtfBL7evLGoSoWygA7msSOxp1rLH2cC/IBTWcFNFLkMyxGPi9yDXdXMnoZZOygzJQpNlGlU1HWr0XIlsNtwL+lGrk32SzscTA2N1PTXSsdht9VVGjj4qSR+VgepqW2sPg8//AKHZwhc2PwOx7CmVvJbRdVLHxoVX8QfQ0uzksraUdnx/cjBtb0FZS8M3fRVoiNvj+MxZRcCm/dJ4dt3bQrxomA8hYelLvZF+OqrUtaOPipG+1jU/Zk/sau0HrgsSLAjpXQIzq2wBl5MD6sAvS1E8q2Q21a1Bky0yLqzWfvQ1x6kLy5kUrmPW/IA6U3rI/OrZbH8goIOwt1pFsJKFm7WHpkh9LAg0t5wOdVRR8nOEasQDYNvWy2jKJkk0UUct2UMrdafWza4Mu2nCAnjx+WxsaKtrHaymSz47q90PJTTK3XyTaNTyA1lKtKQLbVvnwLl3soKPfjYgKdhQ9Gj065OVIlWgkNmYK4orSir1c3PgTMOLf4223tXVc+T2XSPJ4ywuhD6Eda1VaYGib4RFL7bsY1a/TSn1b8i7U6+RMMckMpJGl9BW6RZDsHDNGSa6XCmw3tU+dYM9hdheO2Qb2uFPem3SJcutZbKTC5TVSAetJVlI22iVZAZSgtfT1pqcnj+xpJKQjPY2sO1aeR/7STygQ8iBoetb5EaNuSjH+RKAA9Kz6ZKfX9ftA9flJLsEYknYX0rHgvk9H/nSTnwC+XMzXlsDWrNLwT/XWeDq5oGoUH6VzzLfX9dtyUQZbyLxHXS1Ta05PfwyVKSxhx2bjc2H1olaJPF9z2E2kZebiyQzsSbodaozurI8i/N3B2NI3Qcn07UVm0e36VYUwUpj4zQ2vqO9JlqxR7PsW6FMceKgHFgCKFuzPLtpe/8AghyInkLaix6imKyR5WrrVsjECRpZm170Ss2T1s+pbjzFEBHlasdZPR9an8yXx5PMXbxpDpAyO1oQtpJL2uLHrRqqHdFRfsbE8bLx9zXsaCyafgWptxAn3ERuLglToKOJXAUNcIPnjK2p4jvWNWFauyNLBnCHirc13GtR7UlcjcE3aCqTOAPkApHWkVwKNshUue+6uTp0plfXXyjz9MV5YMGfMToxVhXX9ev4N9fBF8XyAkHFjZ6lv63XleCq2YXASdNe9Z26i5VSHO+OEn5NcdrVVj7EE2lueEYU8C4+SCob7CvRrbtUr9XK3fswubnysd66PgucLk//1PpUinbwkBAtX3zslyhSvVMVNjBFI1KmjreRW121BBL4kgWt3qhEmi6rkCNXZSVJv6CtmB3p0USwZ4mA8jyFq2jH+xeeERJO8TfhpfemuqYiOlZk1omWSK6fl3qZ8MFNtBrJIb2OoobJIs9XJWYnKmnK3vt3rskpPS2zrBLHIXNjyJG9qoag8t2UlmPFEjhmYgHcGk3s2hF/YcwjZgSB1ID8h2NQaOy+B+Nm34JsmJEudxTsrNm7zEEMjIQSp+1UpCFQmEnGTjblemRwZ1hwOf22AZfEjoaBSHaeBJKKbliDR8gcnHlS2xa/Wuhku0j/AI2Uc7MOQpOq4EYXhwjZZYWW4a3cVHNkO2uySeBXN0Go2NNpZ/JJWsuWRSxubc9WXtVCa+BzaSk0MV4+FpASKn0Tngfnd2KiI7AobLSZfyZrb8nkgjNg7X9bVj0fwTrRzCAmx/bB4uCCdAaOl58oOHb4M7NwM6U8owLEdKpz2ovJYlnTlmXkYOav5rqKa96fB5fuezVjMBZo7LIvid6HhrgH0oL1/X93xUgna1Y+0HrZqztL8FUUBdrG/oan0vCPU9ay7HppJ4CV5cl/20GSrbkr9qIF4+cbEFCO96ffL9nkZZz8lIlB1U79KQ6l6p8EmSgZvM2WqM3xwS78OERcIFJ4hmJ/inyxNFb5FTYscjW4H6ijreDL2hxJJ/1cXMkFqP7SjPZ1CaCKAHW59a5NsK+l7IojMc0YAFiOtLtKZTjWFyHGCp4tp6nSgfPI+14RUgW3iwuKA872NW+AZVvbnZrdLUVWSR+CSWCJJA6niDuKbWzaBvZyE8UTIHQi43rE3IdU7CgkpFl/rRSiuiXycWJy1mQD1rmxvdVCjjMb3VyT1Fc3KJdNeS2OSNtGHFxSWmR3s7MYgW3jblQsKviAk9y9jY+lY4NrCOSCNtSCrDpXKSfRtsUXWOTkq3uNTRRKFatorDJJGD/d2FJaaF2fBRFKONiosO9KtUFS+BnNDbQAd7UPVlCrHLAfERgbnQ7Vq1Yju34JXQY53BF9Ken2KM6t8BjPlD3XxXrWfSoLLZKrlnf2wxNl17mh+oh+vtYS+UBKAVvTFnwNeUMYwSQ3AsaHlGaPkmlgY8rdBpR1siRQ2R44yowyg3A6GmXtWBT0rWrkr4yswWQ+PUVOongkole8ITO3tGw8lvpVFVJ6Vs2+AVyyTa442o/rPQpkqIrhQOnjck/xSbuGW4OKyxU8HCQctvSireVwQ+1q7XhE4mZGK8fA9TTOoHVUTkfJwbH5KdRS+ZJdW3UVjZO4F+Y70TzG+lhPkfLkZLqFYihrSqPR3rWtUvkswoo5oxe5eka2dWJpvxBRIqRD8tOopSbZN7N3YkMiCQ63BpyqyTHN9pFy5HskGxK73pip2Lr5woOv8igVWvpvasWJ3/O3EE4+TUt4/wA0z6R//P8AWikuJowFbmR0pcQye1e3BBMsyty1U32p1WmJtDfAxVyWW176bVk1RTTr4BjadCQ42rWk/A3JJ8IYPk3jlGpA6gULwTRrxm0st/ZLgMhOvekdI8j3RSC8rEi4uaJVJd4kYclvaJYLYfzQfXyJpn35IMvIlXWIXU1RSi+Rq9VN8+DJklme/uE3FUpJeCzDCq8fAhp8yJ7o5YdqKEy5ZVbGwy5UsnMeJG4pV6qIK81Sjk04RKw1v61O0kZfVeT00RB1UlTQ954HYVj+jOe0WR4G31qyimp53s2b0NBFaVLt9jU74Y5XVVwcJniUqmo61qhsHRJV5O42VKrcZR4mivRPweeomEaccqPHb+KkdWmFo5UE8wvcE2FOTg832H1RGUYMeDC5o0/yebXzLJsrElINzR1ug+HwiU4c1r63709XR6+Fq1qBI/sKC17jrWxJu02XA+P5CGeIgkhwNCaB0aYWWDgFcmQEqP8ASssj1fXwVVLK4ZFWxY2PpSuh3tbOIRSc1Nixt6Vn1nj6UjkF5Ynv/kuCNjWqrXwIWbdpaChXHS1/L19ay0s9DO1oS+CkQY0o8WPI7ClO9qkXt+w/BZBhAaMgI23pF9v2Sf8ATHCZFkxLDJZRYetHVu/k829XexHN7Mhs53p6TXga6uYR0QcAeB06UztJ6NXxB6CaVGIkUuAelZaq+A8Ul4LRNiydGVh0pLrZBqtr2/wQzyJFLzRG1p9VKge83XkcclZ4xurr0tQKnVg2pFQD5R3fUDc0XzwT1XbwDjzZEco9rRT1rtKJrkvwpWrmxsD3Hj5SEm9RcJwgr6K/jwTSSsgK7DpT1VMj0rJ6OfIVwyi4NZalWgsqVXJWsk5PIDWkuqNfWRkfyk8MihhfvS7etWyJNaJ2RpR/JRy6OoqK3quvgGuP9Hsr479iMtFWZ+z0cWL83Uwp8DMhuACbdK9Wm1LA6aVVT//V++niPI3A9DX1lL8EWVP6M2cBiVYX+lW0Y29evLIMiBFuQt161TSzZ57TvYiWWZGIRbITtT3VM9HLJUXPk85YtbQXrUDo0gHjR04kgD0rpPP0s24ErJ7Gi3I7UbUl/r4tjIcxmYlFANK0oex6+KopZRJ7jx+VBSEwd7LqZsr5EMnKMhQarST8nmLNNyxcXyXE/wCU3I711s/wS3pHg+h+J+RxpVsoAb1rz/Zxsir06tcstnZbEMAAelIzH3pJnOFLkWFWLwS3/kCTEjmBseLD1rVo0ZS0cvyRyYojJsxuO9OV5GO7gOGJ9nIIO1Da34Ir7LwgnxXZSFIFD3RNpdRBGj5GPP8AncX1pnVWRnr5p28FifLKjf5SdaXbCfBRrm24RTH8tAXADWB9KU/XYv8A52mey8qPdOvUVtM38h39d+WTQ/KxwN/kAKnvTLYSuBmPr2fgrh+ZxHtxvr6aUm/rWEb5WmCqH5cciAB/FJt6oj6evkveTHng1GtTVratj0s839ckbukcJ8yAO1UpNvwS2Vr1MjPzS6+Lag05YweV7OMeQ8Z4nAMhIIAFFDXgp9dQuCpZoIrXHIHqBrQurZbWtnBZE/ukBEt6mpdFC5Z7nrZqnl8jcmFAtzoeppeFmM9uzu+DKDRiSxk8TXoNOCXKnV+ByPCuqksRuTSrJsqorPyDMEl1ClqOkom0/wBiQx5Cv4gIPXWnSmidusiZVmL/AJkkdBR1gKFIvkwYBxcHuaKDn5HGPmviFIoJhjW4XJ5MOdSCsdvUVltEMy0X5HtDIbGRb+lLVl8Baar4FPGyPddF7UxOUQ635HAB4uQIJ6ig8MGZrImWJJEtex9aNWaCqiL2MiJ7XBQ9ab2TRVVpcBrD5cieRHrYVjZn2cjQHDAhRbqaETpdLlj/AGo3G9moOzRI7uzFmFgfL7WouwDvHgojJtsBbvS2GmMUxN9e4oXJzbSGCBb33B2oO5N9ksCTGMnja4rvsSEa6JHVwZEF1BtWfcmAtp8joInVzzNxagdk/Az17TbgKYPGt1JZTW1hlN6yif3WYMpLU3qkU4YpIVxS3kSfQ0csa7Qh6Rho/EbUt2hkrvPkAY8hYHW163ugVoqlH6qEci1j0pP2sRfZ2fAMicAN/raiTk5ptEk00w1Q06tEMeSqpZmZWfNGVJWxvrRvJQeb7OUItw/kOYuw31pf0QO9PCORssSZCqRdftRVt1PS4ok/kFMRYzbRh3Na9JE11d7FEEjxaIBx7UFqp+S5cLkKVo5BqCr1lU0IdGSykOOOhHpTEoFXXJJ7piJULdb7U3rIDqOxmyHbxiCg7mgskvkqwVKeWVyxtxuVuR1pVWgdr9mJV8mGXkhsnajarZcmVVUy4zpLF5/lSOjT4M15XAkBXHFVs1HyvIWGcLkVKkourC99qOrQ3SG4FCJS4DC1hRTwU0fV/wCAJfj1cEhgrVq1gk39iEdhjkxjdX5fXasdlYkWjuUHJka3JQwPal9F8HfWnZJCJBlMxCDiv9aYup6eedKLkmRpo5LMxY9b01pNGViR/uQiT/KBY/zQQ44F3bteKjY8xIpAFXkh70DzbQ95tOD2VMW1jBFxtXZ1jyZfBTySxZcyKVlPiaZai+B/r5KIQiXKWzAEt2okimvrtqCFsua+1+4pqqg3kqoapjlS/Lg/as8M5uKlGOJFW/IXHWhtBLW/Yt5TFQR1pEIocQaUeG00Pm2trioLX62LXulWEZmVgPGwYC/qRXoZ6Jnhb69nI/HhyJLKLACl6WSKVrSi58ly4bCMh0ue9I+xTwS29h6PgieNRNYiw9apVuAf9WOhtHuOQ9KC3It6MZKY3Gi2FBVNEeilyzNkVo5LDVT3p6cktl/UCJ5WuVDEU2tUX5esp5JTl5KGxYcaZ0TLPqqDK8M8RDgg965JpjrV60kTF8cbkx3YelFa5nr688lsWOV/OM2BFzSmyl7y+D2QPbYtGLrXU5XIvZcywTOjKdLMN7UXUmtVsKD2JjbjZ/U1lpQFbNFK4csbgDRT03pb0TQW3sKvBQsbI4N6Ta0nibbd7FSZbqw87eppbyX4GVzS5ZzIRZVLg+XetpwFWkmNk2jmXmbirK8rg29YagdFMvDToaF1HQ4gbHlRMNG1Gp0oXRnKrqpZbAsB8mFyw3pFmxvquzco9kQxOBZvsK2lmh+zfBMIeDHhe3S9N7T5J1bs+RSxG7czv0rXYp9WstpE0nuIdGNv7aYoY3WPBoYEk0kPFnN6n1qk5MrpWucfJVLAhjuzWYd6XW7kl0u2gU8IvFgbVr5Zmc2qHFkuR96G1EbCSkoujG5tfuaVyiG9nawxW420uO4rGpKa8I0MSWdfw1Xsai3pV+R1bVS5KpWWRdRxbvU9Kur/AESbKeT/1v0GN1lbgzWr6jSrqpQNIoyfNwTGOSm4Ot6f6+/bgm3bszLeGRyQp1Per1ZI3NVopYI+OufM+Q6Vv3/gQ/Y7WhE+ViH/APH1FNpoHpaOfky5T7El73HW9UrkXjk7Wk9dJ1PG1u1C+D3vXyVF+yW80DcVHjfWj4Y1qPJXBmz3KMPFqF5ok2amPyFKGkUgAadxXV4J7pJGZkY4YGws1PViNjPj8gQv5EEjpQ6KUUemnpbjwjcTLkmW52qBZwerr1R4Ir2LD73pkweHppLkascatcG9C2wO7kcwjIAKDUaml8/kTvd+EydsdeV10Aou5Ja/U7/iRQ29jrWKWBlS13JLkQh35Kp4nrtVFLQj1M81VmbPiSxS3PmjU+t00ZtqlbgauP5AqbaaXoewK0m0lqY0jJxY6W6Up3SH00VmSS/FefU3pi2Ha+wqKBUeBLFMNSR2rnqmeQ/YmxfFxDiwIbsaS5YHZ3sasR9zHsdKlsose5VquUfJN7jIGRUDa9adE8iKZSoZh5+YVltInA30tT+nHB43u5/1CHRZTcQRZgepouiKMckkXQu0sYAIW1KsoZ6WFFHJRDJkIy6lgO1JvWrTPRySbRRK80hvYldqmySLfY60X7ENBjGxI4kdaqVrHj3vZvgaLC9vJfSlMsXCc+QOElyUvamSvkkbS8i+N310Yd6P4JW/6OS8u9gN+IrajGlVSC+BDKOVmNtya5atA/dHJ6LCij/G57g1z0bEve12OUzxkBWstA4ZVVJLkoEbudSCCN6XKRvZSR5GIOjEHvTqaCdb8C4oyq2Op/3CjszMnKPFTccuu1dI+sI8+MCL2ue1YrmWvLJiUU2K2pvJkNIOwZPEi46UJJraeDyOyseSWB61zR1YXyEycgSNCPWskXZwh+OpYgE2NLu4BpoPbHZTvcHtS/sA11GRQFbMbkUu2kky1nwDPJwYMK6tJE2o7OTsWfLwswuvpXPBDcsUwFyG9zxBN+9N+tQX5YqvkaGLji9x1sKCI8DePADxgG6ixolYoSJ2a90sb/SmJfIvVQoOI00bEgaGtaTJZXI+PLI0Ya70m2c+CSy7OEOXJLWCqPrQvOB6zVFyM9p3QWYfSh7JMbSPwZ+axjW/EMAbaVTnyHtTiTJ+RluoIXS19qaqnl+1Q7gIkgUXtYb0VnCKvWv0SNGNnhFuV0vSWux0u7kP2xI2jb62FdMFuaVBi4oB1bXsaF6GW2drQjzI5NiNO4rk0OlUU/Ih8Yxvddu1GryR2vzIJxg5IBA0ru8C+02Ee/NjOBfS9M6KyHZ5dmM/7F2NiR9qz6kWfQkwPfEgsNa3rAnVKqKI2j4WI100pbTEy2iqKSG9zYW2pVkws5b4GkLM3G47ignqOcVfJ1cJGGpvWPZiLewxU2PBGbWNx3rVe1iLa9rOAC0atZ1sp60cP4GJOvCF8I+f+NtO9Gm45KM6uvLHh1Vb6GltFONHo5IshlLX4/xT6eChZcmbkcElV3JIJ/iqK8oY00+BkgiJDxynXYUKn5Qy8+YHxGTiGuGA03oLQLrZWYuTHQudTrXKx6Ff4AXGUXAuSOlde4WDdmZ2ZhSM10unpenZ34D2aTgjP7Cx8bnkO9OUSI0aWZR8fnvGGSUX9TQ3pJDnzKRtQfIwsgFwLVLbJyUujSNbCy00U3YHrUeuU8g6X6VNOLETKjKkix2qS+31s8N+yqp//wCjjfEiJhpp3rl7fYTb2W2jr4ckbAg3Q9a5bJr9np+vCcmfm4g5cibVXjpwZvZzwROBGNH0qhcgWmJAZ5eJ9vyNFC+Qa5qOTPmmmE1pL3HSnVqo4OywVr8Es82QdgFU0dUj11jWin5EmFpAWB1FHMCrXS5DgdkujsGHY1jRDa/dwdM0sRvG/FSeldCZZnkq1llOPLI7EtLyDdKXav6CzaTbgZKfCy6/Wsr5N1X88kjm48AC3UUwUqcckjuyycmHA30NMF3hcrwaWP8AJPx4s+ttKRbJEF6/ZbwKb5gX4lr61qwB/wCTqpZfDnY0qbeXSk2zsD1tYf7pBBt4HrWdS7LNIhzYDMoMZ1FNo48i9apeROLDI2+40NFayE57LyPfCZGDAmx3tS/tQnf2OTSxMQhQdT6mkaaF/pXlCs2PJiIZDxBosnVlO1UyZcjOuORup6011qLzzpIMQk9zcknvW2iB6sqcFSxe5dWBuOlLdoPO32+B2Oscb+N1a3Wl3bZNW1r2gfNkCSPgy696ClYZ6qw60RAySxg21BqhNMKqSoAMlk/IEX7VrpJBrzwh6z+4Nb2OxoHWDlVURo4hutg4sO9S6v8ARLfY0YZfbCsLFepFR3pIKbhMrknUp3Hep658lix4P//X+vGWyE8iLV9s8k0D9fazKYs/3VKE3FT2w6uUOeSS5EtLCgbkttd6eq2fyeNZXu3BPJkROvKMG4ptaNOGU4es0pZHlZpjYc2AFtjT885QeuHayhEsyJki5sdKdVupXWqzQEGDGLgAjj2rNNBuGzct/Aw4Kk2B36GuWkCt/Y5ETYphmBY+I6CmVv2RLfRu/AzwIupvQ8mWbbJ51ivcmx2plWxFpJo8aBZthdqO1nBb67deC5EZP+IfSkyvkLfWfIatMp8htXNI8yzXwVxSoSvIXHWkWTFXv+CtEikNl1PrU9rOvkm00jyG+LGVJZuNulAtW3wiZWd5gnEUSDQX63NPlsvyTVQlMfHyAI7VzkZLSF5McLR3Qa9ulbRueSe9W1LJLQhT7g5aaWpyn4CyVnwj0I8gEOnatt45PQyXXhncl8iwAXUbkVlVUn9vr8iOczeViCTWpI85Jf7BxKC4Yrfveukf6/NjRg9q9g1j/tqe8nqPRopOLe9lAB6mlfaFm+T5n5vF4yAjU7+lehnaUeV7qmyEYkzMoRbEjoKa6jMkohmhi5Dp+UfEd6VpWfk9L1aT8jv3yjCzadqRbOVB7Pr+tH9MoPyU3A8V0pdcFIHs5ppts6kvvp5gDuKK1er4IsqpeAozway24msakKz55C5kmwPE72roJWvgTI6t5bkG1MSgFVjk40sa2G9cqsDWQlLf2ue9qx/4E/o4syX8zqD0rXV/BudX8Di8dv8AcO1LhlVqvwcUuH0Xx6VriDaxUN0dkIJGmwrE1JLZ9mRvN7R3sdtacqyNrnCkoRkkAva560tpo6zlpIFoGJ8W0JrVcbVpCJ8Fu4J7UdNRd79nC8GcRPDL5obHY1RKaJrtTCKY8wW4utx60t5gLOeDz5MZXkBauVGdejgKDIU9PpQ2qydIvSQNDe9j0qZrkTZ9kAJZUTVuS0SohmeaVTpjWVLk62rO0GO08IRFBkjxRSR3NNdq/I7F1quRjpkIARuKxOrHWaY2LLkLAPYHagtmvgJJLk0UgaUXK3/9hUltFUYtkhE+KVN+V9e2tMprJHtdtiSmw4Gx60c/sVZ/AloGMo0NjTFdQbWFY97MglsgJNutd3Ucm3uu3JXHjZRsWSy970m2tPyWZ7Uop+Q58ECOwS5NDTaX5F6Xd0fO/KRZC3tGAu1X0dY8kXsVqlLZNC8sV2YDiaYkmDgp8Fa5PJRaxWu6QelXNVRRFkRBb8uDClWo2Alaw+OdchfDybvsKB06lWWapWX5CLPGwDXI/wBtDCfgl9i8so9uKVdrenrS+zqItcQcVR5AXtvR10C9ZNuSaf48TC2tyftTq6wepWyqiRvjmilBbUU1ayhWvs/1wGYzY8CBbp1oZ/JE32bk9zUEEny9a2B6Tf8AgOEr7lmNw21qy3gpz4cI9NJJDOrRHxIrKpNcnbVm6bCX5HJSS52J61jxq0R61rP6NOHIimIMtj61HejX+pC7TbgcMPFmNlYW9TQPa1fKGfY6vkGX4lUUsr6VtPan4HV1duYFxQIlwSDemWu2ehjZpQDNEnH1ra3Y+lW0ZubiKyHkQQelU56clFuEZz4yxLobi1UK0gWu2oAx2nHioPHreuvA/wBaiS5OZWZLFbiPKgokz0L+v2Us7i/I5MjC62J6WrNM0bStKclhSOa/uA8u9YpqRXvL4JMrDsujXF9LCnUuQ+zrwSpiukvkgKnYtTHbgRjdKxUmMnJbKDftS+xXfZqEU+77RtGSCBe16X1lcknu3ccmj8d81INHW3HqKk19VM8bHPtaTT/7pwRx81PQ1N/xVf6K7+qp5NTE+RXISxAX0qDb1nRyi7DJJE+djcgSLWO9O9fUZaqXJjZGA+oBBHavSpshNrokSFk0N1NPdpE/ZPB0we5uCT3NZ2goyhAZPxysgPUV1NeSy2nBlvhSRk21FVK6ZFbQBcWOSxcEHvW9gMdHMoa2LGsdkIPoaFW5K73bXIpMeZZPG/HrYUTsoCpeqZWI3INztS5NtfsxMka3FtDtc0SYOloUs6MKKQBX1J1BoXozyd/Ydn1Qmb4hhIGQECjWpXnqq+RE3xcgU9aJaJitN+7/AESwvk40oWRboaNwzFZTwbmPlqY7NrptU1qcl2dG1CFz5qFDbxI0olQRvlFZEwZX5WN+1a6HnZ08jG+QmCAHQX2ofqQOmKg1vjPkF4Ak39Km2xLPXUVNw4sGXj362rzvstnYp+yVCMPIwZoXIUHjXpU1VkbWKrkSUluCu49KOUKvZADJmSQFtATrXOiZ5u0SaEJgnIa+vfakWTqVerWHI+XDuhAP0pddYZ6V7yiezreN0+hNN4fKEXc8EU8LcrdDT62E2SQghksVO3SimROlpXIyHKlDWkSw6mhdF8E6SX+TUxc5FAHLkD/bUt8mxuWbuy1sqV0PAALfvUqzSse59Na058n/0NqH3mOguOt6/QrwVK1alcaSRG4PE9qU4ZD7G88IqWITrrqetJtbqKxaRI+K8BYIbX1pv2qyLMF28+CHIikP/IoOuhNU52XwHo14QgTrERyAtTesiOrtbg6ucBI/A+J6UDzlIrWPSQmyrqDZgR1rVQh0r8hSSJLGbk8ulYlDNdOJJG5IbAmnLkxV/II8iRIvK3Wt/wACJlwjzCIWOoI71nI2zaUlUORxIAa9LtWTz9rOzLY2Se97ciKna6iq+RJhKsbHQUatIE8gjIkDjh+XesdE/JO69rSymM5NwzHkrb0LVfgsxVZ48HWhcG7PZSdq7uvwNvol4QSj2ZbHyXuaCz7Ii10btBaIYpksVJFulTu7qw1b4In+I4k8QxBqlez+R9Neq5Ow/GcWuxIF6C/tfgk097ngvm+PiZBwYg21qP8A6WvKJfY9h28kk+JAiC7eQG9UZ6Wt8G51tZeCEheWhJqxeD1fXyg95FhwuGHWtGaubJGhjZGQ90lW4A3FSa0quUXYqqlEHyeMs3K44kDS9U43g8/2eLS/JhhExpvzCj+tVqbE2Ss7eCuLNj2uGU73pd6H0npes1yx3OEpyUKL9zSYcnpWT6jEZ+PlYp3ooPP1snwhXvNE/iOantRdeyNrTryNM67qhv2rFUXpWF5H4+VO35wWA0uaC+a/JFXrMzyHInMWUWub6UNXAyyVVyAcUlTRfYRX17SLVjG9iL0bUo2i5kJYy7DoDrQtwM7KpZBjoUJNwe9IvdyBns7gTOFJCtYiiqpKL0fyK94kjXy70fU3PL5BkVnU6A1tXBuzXgTHdCPSmPknqy+JvcQcWs3rU9lB17ccjB4n/Le/cUD58Cu0+CfKgV9UIPa9MpaPIiyjlkYxgDYjWn9w87C3xggva963vIrTRvhE0skkBuQONFCYrRQuC3EyGYeNj6Um9ELol4LYnQjibX9KTZM1uePg5dYmN7nWwFY+UI0s0uDSheOaMXNiO1SNNMd6tHYkymkU2Q3+1VZpPyer9CSliolEygsOLjfvRXt18EF9vwWY0ssDAe54setT6VVl4Fd/0aJyMdt2u1RfXdA3raz4EPlQgi50G4pixsKtm6/5DjkxJRddPrQut6+TqJpyxUyQq4IJI9KZR2ZrVpkJJIwONzxPetdX5Kq0fyNiijlUqJLUu93X4KM7eZRl/KYJUanmrHpVWO3Y832rOzMpvi5rsQt0I2q6u9UU4XrVCXw2gHkOvSmrTsNto7IfjRLKPOO4v+VLvaPkZnr1Xkrgx1ibw19KTbSfIi2zsymURsDyFjsLUqsrwdaX4JJH9php43p6UnKjmA4cg+4QLlW6GstTgtpRUbkq9vkgYAgik9oYF9P5k5Jjo6eRsa6t2mITdjJyE9may9etW0cofXLnkBVJP+RLjuK1v8Gu6mEG0MJ4lTxas7MqzlJNhPHIouNSNqxNE+2nZheykqkSjXvS7aNeDzd9/ipyOF4HuGDJ9a7smhVbdSwZSqy+opX1tj88na0spE8rR73B2pbokz2fXxr1JZA6t5AgHqKdVyiiEnx4GQsFcKzXU96CylSDe/MIomwMSZNd/SkU2tVjraWiDKk+LhXkOZtvarq7tky1t+BKY0Ytb73o734KvUTs1JzKwYZh4HzHpScLteT1fa1hEL4qxqCwIZe2lWd5IaWdlIn31U3DMddRRRJrq0pGe7HIpCElhratho8v2W7OD0UsjsEdDbua5pIDOqq1+RyxI1ip4EUDZttGuXyFkso4iyk9xvWVRNtV2abM6PMMGQVblwY07pKOzy6SzahyYeKtsD1qW1GE5tyaONkkMDHqp61LrSVyX+vTnkom+QljFtHU1Nnimy/bBRIr9uORSbcWFUfW0eLsuGcTIQ6styOta6MipRtnneN7cNDXJNeS+ufVSw/bvGQ416Gh7c8DE+yhGXlSLE/kl+l6ropRDvVyIcI4uosKYpRRnTpU6FjCAhbkda6XIdW7CjOQfE29KLqF0jljoyX+poHwamkh0mLdNQPSgV+STfbtwjPbwkB5WtpanLkkouZKQzlNDfWgaKLtQciIDFZdQax/okVvweyfjElF1HIHbvWV2jyc9IGY3wUbkKDxa3U1mnswj1/U9r8/gkzPhDisCz+4D0FMz9jv4JPa9t3cJQjPkVoH5AeBNPXImIQU3NkulmB71ySGuiYGJnGFuMh09K21JHUq46o28D5iWNhwZmW+xqTX11byVVzVVyb37MOXBybwf1rzlm87foB07LgyctuDngTers+UJ1zjyQSSRTpq3GRafWrTJcsXZ+CSHLy8eSxuyX3ptqVaLVWtUfR4HyUTpqPL1rztsGjObOEMyMlZdksR1oM6R8jb4dFLfIkRrOLAWYU126kLvzz5IcvEkj03+9OpomC+TIy5MlAbghaqokUV9eqU/JzDyJG/FmFZoj0PSzXlmimTmRABrmM1N0q2W7Wqqn//0dOLKKOLbGv0d5ygd3HBqQSRTpq1ialunVkStJxJXx5rA+B611qq9R+dItyVM8bre9yak5TPWzzcGXlFgDcm3Q1dm0C8zKyY2dgVNVVsOVFRSAiut+pphHfTs2MWWcEAgWrOqJ7JNwPALgX0N6DwbpdJDv14yNSC3pQd2S31b8Cxi8rm25ou4GNhUuOALWHL1olY72dXEHYo5CQpsB6UNrJHnW1SK8aP2pAd/SkXvJO9m7cGiUhdSWS1xuKnTa+SnNOz4MfLV4WZkF16VbTnyY8/IeJnSqnlHcb1l8k/kfhRNcMpbLR49QAb3Apf1tM7Wv8APAUbiUqeN6Xbg8+90n5L8eN0e5dlU62FTXun8G00l8IrGQFuLlhU9s5A1bYCzFjZQB/rWfVHknzyl8iJ5WDjk1hVFM0VfVycMUMqW53PrTFZ1+D0c6wvBN+pMj3/ALehp321aMeqqGmOGa6kFqD7PyLxfa8s8vvpKbkKL61r6tHoJqrO5eP7oJvf1rMr9ROkO0nz2d8aofcX9TXo568Dc00z0XxRlTxIBHagvrDPdp7CpTkph+FnjSzAMANzS3tVsXp7y6QGuJ7SeZJ7gUT0l8EmF3ZSEI0kFk8fShlode8eQlxHXTf1ru6PO29js4BE0sE1ma8Z360TqrICtUmXrkYhTkr69qmdLSZat7v9E0s6sDY6DSm1qFXGBLMnK4Fz0NMSZlk5ONO1wF0YaCu6C708D8HIyvcKMQbUralYGetWqtBZkY7SDkdG9KRndLgr0sn4Izjqt+Yv96oV5M7t8IHQ8ggtYVv+QI5bZOs7IbFfIHc0x1kiui7HyifzVfqKnvn+Cdv8GgnF/wASCLbVM+AnbkCfHHG//wC1bTQFuSVkYC4UEU9OTaKSWSGZxoCaarJGN1SEyYbPCQ63au+1TwSabSuCfHL48ihl8b9KJ/0hWb5L48qBZlBFg2tJtnZhWrZ2gZkZi2PHUX7VlMfyGvWdmTY2fOGK/wBt9qdfFQe36vr1zrz5NNcpWQAra1TPOGJ9m0/JG8/CQ2Um+pNNVJR5jzgd+w5UEi31oPrQfRQPg4S6bketBaUOzfIGTA3uAhuNbXRQL9i6TBhlkW+nK25rXVMVjX5Y45i2vx8hvag+pjXm2N90TISgII3vQder5KuqrWWeid41JJveuslYTRyv8nZcuNlAve3Sg+lknsVfg8pB0v4muagUuOApMTGkU31vWV1uihOz4RkyK2LLZT/j7b1dX+0FTNzyAJuRuGtrR9IG9OQzlcNJLlO4rPrnwNtT8Bv7DlGjN70K7LybonWAwFBBH5Ch5Ylt2cDBlyi6m2lC8kMeafB5nEouTxIrkoLKVVVILYsTDXU9K1aNE19XZky40gZ01t0pvdeQMIlyd/VJWwFnHQ1j1SG+z7CrSC3HwwYv8m/YVLfeXweX/wBLuoRHkRvFKOI5KTrem1coRasMKSGKVLkcSKKtmmWZVd3CM7KbLhQug5AVXXq3B7Xr+srVl/BzB+XyVSzqSKHXCrLssqtQvBcPkw6XfqetJ+mHwDbL+Q+Xu8CALGuiJEwlDKohx3BAakW5G95FzI1zxvY96OtgOvImGB2Yjjyt0rtr8FnpNJg5EUkbjgpF9zW4NNG+3abKWC2CswPNjtW/ZAVNEuEZ03xUsTkpbge9V02TRF7PspC1w7SXH5Ci+w8lau1jk0UnujXSiq1BS4Vjym4IYk61wKfkLIxUdA8bWIrK3afI3SzhEGZiySR3VrEU2toA3aVf2d+PbIVfbk81FZeBNNkq/s+hwuAUX0XteoN5PT9JuzKpPZ4Hgw+hqbGZ5L/db68kwaJWKtpfrVcP4Pn7ttixOIpdTyQ71vWUFnn1clZlgEfJTvSerka62vwgRkFtBciu6Fn1qlYJsyEkggE07Ox53tOWCihrqTYjSibB7fBz9WTUDX1rHoiz14ZDkY0qkk6EdqfWyB30XwMx5uBAZqGykivdt8F0cyuGAa5pLrANK+SLIYITca3p1VILzfhAftkITayiudAdK8Qg48uCTjxAbuaC1GiLVOq5NBXjCA7CkJNs3KlrnRlWUsgsRs1E6fk9n1vXlEOdmZEkWo1HXenZUSY+/q1VZMr3DIhVnue1UQee1PCQtciVCFt40XVFGWS4kTLxMt+B13okOVYt5DSeaE+F7djWNJnbQ+Da+P8AmJOPFhf7VHtgiz1cFA+bNSYWI4kVlM4J98pZmScUkJGt6pXKFuvQOQSFdPx6Ch4Jd7Is+OiEh3IcUna0IZ6Ok2LJseQEBpOIpNLKPBT7myXCQtZWjJdTcDrR9ZPKom22HPlxyRXUeQ6ihpRpnoL131l+TOzC8sWmlh1qjPhlX01rQzccZcRJUgrT7QwcOqRpDKJhAc/YUjpyHtzU/9LYyMPiATuNL1+i10PP9jZ8HMeRojodBXXUoL1KS+R000j2IF9KVRJHrPNINMllFih21NIvSWelnnx5Bce6bG/E9KOnAvRqoD4cYGg1p1Lnnexs2JEI1479RTexJV+ZFERo4LLqaPloTZtvgo4q3TQa6UuQL2m0HOSC442I610M1JgxMwI1/mtsjqJJBzxjjzIH1oFYh9rWfAEEy8rKL+lBap5nMnZctIyDa3paipi2VY+q7M7F8mPcAZLq1FbDjg9nL14aSF5Sh7lHIDdO1FR/kT7CS4+BEEORGxDS8kbYUbsn8CsrrwkOPsqLselA234F7aWfCFxZPBwsb3HrS7UnyeVesuDXx8gyAEk3GlItSCpQvAx5yrcQTfpegWcmPOXyI/7H257OCDffpTP+eUMrhDkpbLSUWTVu1AsuvkpeMKWNgJN+SWNLv/kW9PMFKIksdi1j2FIdnViO/Ar9UxsGj6b0xayuSnJ9eWeldQPNQVO5raL8MsVH/sJ46+HnGaZP58h5155JMv4mLI8oxY9abn7Lrwyx6deWSx4z4pta4qh3VyZ7PRlaZiMOB/ikPJrkK9fgcmPFKp43DUu12mPzt1rAswBFuybHejV5+SN6O3gS0tnIIHG+9MVeAa5w5OZEIYE2vpuK2loN2sBHhkpdR6a1ttOR2F/5AbHkjc2F1bpRK6aM00Us5JhtIAwuvfWtWkGPRJEs8MsOqmmVsmA13EHLnSQOAeXej6KIKFklya2NmSyx3a96kvkkxz6tcDDxcXYn1oVwD48E0re03JSLdutNryI145OyRF/LiCDWK0Hn7aKeD2PFKH0tbtWWuiSuidinnwIK73oIkpVW/wDBXFLI4s40pFqpeBk18IH2ApuDoelb9kiraQgCoQaN9qyWyG1nZwSzTqpF78TvTVQG2cE7PBrYX660ytWdlk2yOeQNx4+LL2qitYLll1SbKcTGMykGQ3oL6R8D8dl+ClfjHB8msKU/YRuntx4KI4zF/dyt0pVrdiJ6O3I4wLOCLAED6Urv1Fu0snfBlWw5AinLdDraqqPY6+02vTeus5R2Nn5Y6aUWUlbqet6XWhmlZ5OQxvJfiDwJ0FbayqdnatZGr8fZtuI62pb9lGW9mGVLiBDv4HekvaTfubZ4Y8YJC7eta9H8hvR1XImXHx1NwfLtWLS7PP1vazPSpLbQbDemUaKqUSROzsiklraU9JM9DDLiSTJlkJ0IYW1tT6VQzXNIlEsiOC6Dj6Uzqn4JsqTbgGcuxPFvE9KKsF21a0XJ5HCLo21Y1JDZuwyL5ANYJbl1oXl+R+Prxyw/2BzLOACa7pxwNVZs4KFAlW1wt9iKTZ9Rft+ws6wWQHHiUB7yEb2qe3e3j+TzKWvf9DEkw2fxRgx7mgdbpeRqrZfJ6ZgNVj4jq1AlPyQ7zZ+TmOHN+Iv1orQg8EibPkVLMws3UU7KkjV69tLcGYfkRztx5Ant0q1Y8HuYep0Q0qHhc3Nm6WpcxZHp0SWbIf1XiYMp5KdSDVPdMm+yFBbCsJUFkGovpSLSL+x24TOFijBYybWrfK5D6cpMNMyTjx5HkNKC2akpzyUHTmSEkFiDtY1n1oJ5KQY88rIdeJrNMpUD8cussrfMJA4+XpSqZwTbZ9rSdiyYuRLLxPrW2zcC+V4Ozssg0Glt62ig83avMsyHPtTC2oN71YlKE5ZtNN/J6WRDuAfpXVRR0fkQiEuSgJU7ijbAq12CMMoYcBZTuDXdkN10VFydng4WIuVO4FZW0kWtuzM6R3gl5Il17U1KRbpz5NfCmWZQRdD2qPesH03pVVKFkrQhAGU3/wB1JzTk72na3CM2XNQSFLaDrVlacSedfHpyylODrYgG+xNA+BF7SV4kAYcWHoLUjWxR62kDWxnhOmq9KGt1YDTTswJU95TqVK0VX1FXhEijgRYgnreneSZNsrimUNqo1pNq8HoUQjNRTrpr0FMyYOlDFkkSKTzF171WlJJ0c8DI8uNWuj2v0rHSfI2ub+SiWSN/M+V97UCTXAVk54IucIchVup6E02GIVHPJmZ2SYH5xXHpRdJXJPt67fk1fiPkVyYrS6m21K0pHgp9VJKEaUcTKwsboenakWtJ6uTVUdlxrRnjry2rq3OX/wCn+D5X5KHLx5w4BC1fSyaE651qMw8oSCz711kIo5Y90UkMpK23oZM2v1K48aOZABJZvpS3ZoRS8vwOj+PKWJY/agteT1c94Qb4sgN1Ova9crIXa/yd9n3VN0s461naCDfafDAZXUBbWsa5tEO90kXfHoed1360nR8D/Uv15ZoZan2+RUEVPm+YLL17cmRI013VRyiPSrFH/kf6+FaS35PY0aN+Pj3rrsL7mVtBxFvyW1KVjL3kiOMoksRoaf34Eu/VwOX46Bl8PFvWlvVoTt7TiD//09GfOKva+nrX6RXLgk2x/oZjOkpsLG9ZominBdSsQqtje1T9h1tG2WfoyNrcFCKiWqPStvWqOHEVACNLU6t5PL9jdsaFhlSw/IVjbqyarb8kLRpE7aD6GqVbshHNrNITOFc+Sgg7WplHAV1HgmVbfgCDTJ/IOS+WcYv38jWh2OiUIfIVjrJLrZ/A5HMi2W30pN+PJ529klz5FNCA4YAo3XtXUcivWo7Wk8Yj7t32NNnjg9hWStwMTHSOS5PgdAaF3lHPZyHPGsQuGBU9DQ1s2T6t2EMV3YePcUxIdnXqhKY3MlUJIOutFbSPIi2qr5JPZlxpiSDpsTQd1Y8rv2s2aeLlMwNjxJ1pdsyrKihtmljGPJjHM8XXrU15q+AqXk7Nixs1h5EHrW11aD0u55GrAijWykbWpb0b8C7a20cIF8kobMeQOlEspHLLqpBWY8xwew/20TpxyjOqr5NGJyyAta3U1HZc8Ds328HX/XYW4gg1leyPRdWkRloonst1H9Kph2RlaOqljjJZQyEGlqvMMzq7cks0bzX4jXrT6W6lFaVqRtgf5eQZlcdDtVC24JdN+1+BwkeGxIv60t1Vh0SjhzCx4307VyyGfSqKWc/XVr2FF3gld+WCY1As2/oa3sBLswIpJopLL5Ia21U0UZ1SCeR2AsOJFcqoXeqPQ5V7rpyG9ZbMRWjtaAcmSNx5Wv2raJo9D6oXBI0CPst709WgW7cwJR3hb8CPvRNSNooXkvhYyjRrHtU91AyrSAnjKC5sQdyaKtpPP9zXjgGOdlU8SCANqx0k8yJBGQvLltRLM3LOOSuOSM/QjelOrKFy/wBHVeSN9yVNc0mg6pSE8kvE+W/ShVULvVMQryEnkbj0o2khSheDkkQYCx+xrO0E2tgVwGddGIovuSKcbpIRPgsuz69qNbSD7G0/A7CiIF7aigteRfr6SUsZbeNz9aXwNskwPeIBuOLUXQx14FxfJSxyagMDvWv100ZnjDksbJbIQBbL10pSzVHyOvnWvnyK9vKAuV8epNF2r+Qe9UpHKoSO7C6mlWtL4JddW1CGQSa2Q8V7Uu1Y8il/Pkp5FCGc8lPWlKvbwFlV2ci5ZCG8CeO9qdSvHJ6yyVOWEgD7ufpS7Wj4PO017W4BlRAAeoNYrMm0bY2XJ4aWNrda2uUnrZes2JYR5CkW6UxN1Z6qqs6kkuDwF1/Hrb0p9dpPM11d2TriTe4VJujDSmvRQFS9aM7LiR8ACLEdayujkHTS14I2x1cFUJJ9aerx5KfWpHLImjkglBKjU/0pyasjb27WheCyP/KDzAOlxSnx4Gu6rwhLzOkqxx3XjW9U+WeZtXtddhqZcyNcuTrc3rHmmNtVL4L4PlIwQ0iC3+6pNMG/DINJb4ZdHlxyqQmt9ameLr5FLOJkT77wve516CnLNNFnp+t2f6E5LhzykvZqbmo8Ht/WqeCZ44ke41U05NtCr2bZ1soY8VlAIY/0pfTtYv8Apf1c/IByUkvzWwOlMVGia1Y8C4YPI+2x4mivbjk7Bw+QZi6PodRXVhoqdJtISPz/AB0ahaga+ChIlkAup5Dc0tuAFfwFLgmwKkG52oM9ORm20VCGKFNxofrWq/BLpq7ODkjuujqGFbVJ+DrJJcCJJZr2jXiv1ptar5EWzqnLFsOYBdR9aPwSWtLlHRGq68bqetY2L21aGIqiRSPEdbULfAmjhyNkZClwOQ+lAk5OVHdyQ5DtbxvbtT6oq+pJSyN8P32Nm8x0NN7wI7J2KsZJYSAy/elaNNHt4WmCqRy+x0Gmvep6ItulXl/AlsL3gQLH12p/2dT5/wBn2U2z0WOYVUlgQKx3kie7ak0ovHUWIIvpU9uS3MpUiWPY3FJa6sdXhErloybC46g09ciVSXyRTpzIZbA9qdVwbZJFMETsPJb37Uu9khldU3CDniUqPE0NLDtLQkzMycCJgfM37WqmujJU2/gzZsCNGuA31qit5GX0fg4plUWWMtaucDKpRyxTyFnu0RQ0SQtpLmQZ8RXTqCRXKxNpfs4McJmYWRyRm4k7UxQx+HVH0GH8zN7dpCP5qe+Kk9HomuDVxM3no+q9Kl1z/AzGiThEvyeP7q2TXsDTsbR5JfcS8Hz7YcnLS6OKr7EtbqlSmAyapI/l0oLMi117N8FmNKo0JsR1oGhvrVZckxtZW5/WlOp6PWVAT5C63Q8u4rFU7Sk8Ihf5CVHsfxv1pyzRDbBV5F5OdKw8NBXLNCNfXXl+Q8X5aZNzdetZbFMblilz8n0GHnwzQ2Oq2qDXJ1Z6ONJQiYrchCVG5ptBtqdVyQrOYpGBN17091lEeebdmE3yLDRLkGgWZe/XSUsE5aluRJv2o+h5e6m3AxM3mo7gihecCFkf/9QMqCVjdm1r9QoxnsXUwgsSd1axU6aXFdeovHll6ZhXQm/1qd0Kvrng04PkyFU7DsTUT9eWx21OEUHO9xuJsRQ1yhSSXxSsTlpUluhNqdCa5F9UmBL5qS4s3eirw+DISXBNKhMYKMQb2p1XzyT6cpCi8qsCDe24FHCBvBVGTJqQLAUl8E1rp24FTQgLc7UasJu+CJskxPyQ/j0rPr7Pk8t0elymD5H3fz61rxjwerhgq+AnldbMByQ9TXQjdoSNDEjScBSbg9BUmunUiv7CXBeP/r2NICCCe2tSP/6LQdfdbcInb/680TMqsQh2B1p3/wDRq1J2nuRwTNiS4s1xqCetZ9y0PI01elv0enhEx1AoquPAcKYROMQI/btT/tke9H4QUcntNobUXWUV40hSOmyUceLkv6UKza+Bm2bBT5BVA9zlbqaL6PwNwwaUlIbHnW8R5fXSlNWq+TrS3yIkjs+g4kdaNWE3c2GQGYaO14z1BodEn48nsejStVPyE8pjsI2uKFVnyWPOfIEucCOMn0vRUy/B18fwIi+REZ4WJToaZbGeTqYdVyPX5XHA5A+Q3pb9dk2uVhifJxSvxtv3oX67qiXP14uBlJKQSoBS/wDStysj1LUrSsgCKB1vcB+1HLR5/sbuwyCXiOLJf1FDes8ySYpv5OuilrqLVyZV/qEsLcbkDTa9Y7gVv2JsqWaI8lUEdabmkxzxlmfJNM0pZU0NPVVBVlhWjkYrxmPzuGG4rIaYV27LgmfLCNePS+mtMVJ8i1h8sJstnHdvpWKkB3zUDcaR+RuOP+tDdcCq2Use55xi5JPag8M87a3YlaJuRseJpiYmgh29gkyHTvRpT4D6t8I8nyKKAVIsa55FCxda8mji5yyJYEE+ppF8oYhVkeJFuRIB9aW6/gG3mETtmxRS2Vr3NqL6m0TXyafIUmWW1Xy/0oVkK+nkbDkTnUgAd6x0qNzrWQcmRCRrqKxVYj2ZbRzFdeWjWNdap2KgpkUk+LG9CmV2UAmKKRRy1brWqzRlW2SyYrLJ4AlT0pv2qOQNtVVyy2L2oWDMtjUl3a/CIr630twXHLieO66AikLFp8lDyissR7DPGeJ5CmK6XkCkKvJLbJjexsqnQ96ZNbCOGyuAFvBr8e9DfjlHq4NURUmNimM8b8trmprbXnkn39m90KMBRtwQTuaNaSiZPqKyYpo0LBtL30puTq2Wev6/fn9iJJC/5NrTaqD6J0VVCR2PIFjsPWttmQ6Ns8Z+QKrIPpauVI+AK4x5RHNJOr37aCn1qmJvVOwaZLs6hgO1Y6JGtJNDWxCSxT7WoFr+RzulKFN8cZF/yLqKL70vBLf2VVcBw/EEKGiFjS7e2vknr7U8s9P8c/v8uPlbaupun8ira9tJOHDupLIF0/rW/d+GbbbtwjPyMcrGdfEdKppYZWvWn7F4ubCgJS4Yb9q55t+TfWwvq5ZUM5HH5b0Fs4Po/W9aPgU8jWve69yaOtTPaaSgoiRZgFDamgs+vJG7rhMtm+FcoL+QtYVJn7Slno7e0mkkZjfHTRylOdgdgauWyakh03ScQeWPMxZr/mlc3W6Mzadi8qs4DEAW3AqVN1LXbngT+vjLJqdqb2bRNprbtCHI0Iay/wBaXZOA0rLyMyGUAe2fIdKXl+ynWjcSRSTkN/kBA6m1UVrPgzpHKHxLHKv+PWgbdfIm1pfIqbGUkkXDAdaZW4jbT5J0idTq3h1FMdkQLRIYIiBZW5ADrQO0kl7yzxyOI4nTS1aqFOWM8iP2ivqppnSS2uXWof7GIyWI4t3oelkxVqWaI/dtLYnkL7indeBWOX9FIMpIa54X60lwz211op+S4xwGLkCC29qRVtMV7OtrVJo5wxIZStjbSnOp8/8A+x4BS5QC46g1hr4cMuhxnVOYsoFItom4K8NO74+AWyZIpBYaGiVFZFdqQNdjIOXG/rQJRwE0qqSWWDH4XZSG3vTq2ckjdrLgRFLOhHttdexo7VT8jMaJKWaKSyTR2K2NTOqqw9XWPJ5cUEcmFz6Vz1IltPgXJhqw/wCMfxRLWPkDv+xLfGErceA/ijW6HZ6r/Jn5Xx0Ud+UgJ3FPrq38Cd9rPhImsQhAFyBvTUFnX+eRE0HvxEFLt6UatBZhSUZnsmKQqQV+tNng9Gil9R0GUY5QS7H67UDrKK7Pr4NJ5p5ApjOltzSq1SI9q1blkMxyOREgAPRhTlB5l61doRmZjTRusg0I3o0gb5LhlOFlpNoTxasaKcKwXqSD4vtSyuzgsjcyKORpbUAJryT5OCWN01FHW/5I99UnyKaAKDyBBG4rVaSZWd2TSK4TkosPTemIuzoq1l+Sz4qSdkKqx3pGyRb6dq1q2zUPvcBy0+tIUBWatyRSY8rSam6+lNVuDU65/wCR8eDC0d1JDDvQ92mS6eza/BLNhuHFzp3vTa3JdNFUX+pMnkjaX+tF3TOysm5Z/9X2VISdRa3Wv0/MftnBNDNMsoXoaZZKBWVErL9lLSNz1Sx70heD1OiTGwSF2KcbkaihsoUgtqeStP2UkBIFqCE0SaaVdixZpBc9R0pXVEt+WHKzui+JBoa8NjrVSqkStBJy8ibDpT1ZQTWup4+BTK0ZJtYHtrRpyRa3ls7A8j39vc0Nkl5Epqi58lnsSFDy+9I7on01T8GfJiBXN9b0+lxePAi0WO/K3IU3lormxb7+PJAp5XvsDSLVsmT7tqh3FzfZe67A1NbLv5PJzo9LGzhfLTSseO/ekaepVeT1csap8hzfKTG6nRh1oK+pVci9vXXlkks4lXU3cU6ufUn+qETwu4Y9xRWU8E65cIa04lsNraXrVn15LK5qnLHR4MTOAxNjvQvd/A2mzdkKycKGGa6jkvYUdNbWQelr2ueKxsLaBTuKOWi1/wAInQR47mzk+go5difFWvYXkZ5BuTp6UdMkWL1ocnVzL2C3IttagtQ9jDCEP4+4Ay/wKUuBtmnb9C8j49ns3PXoK3PWAtdV8IUMR28Wtfpend0iZ7IAxRq3GQWboaNN/BLpo/g8pVJNGsRrXPlAVTXLNzDkhyYODfl615utXS0rwbpq3WAHxo15XC6bE0a0bPLvo3MAJKY3UDhxPbeidJXyHlSGmx7xQyaoCr+tLVmvI3Ruzgm5EMVO46U1+Cz18vgnyWlIJDADtR5wXvNJSSgFlPHUiqHwT1/piHWRjYg2O9q1MqXWik8nx6k2Z7enWiehHb2ZtCRyXFaHVWIHQ711bpid9uA452j/ALeX/tasdZEVrKPPmEakaVyzFvKQDOZBoCL7UXWAs8kJkw53Qlh49zRK6RR9la1ESfGhYwQ16NaCns7L9C8eLJhbl/bWuyYnPRWZWksznY79aW0kObrVS/IyXHEsdwAGGt6DvBFtrxJ6CSWNOO7ChaTJFypZfhzGRSCvlSbVgZglAGSiSL5eLDa1FVwZZfgjhmMGSoJ8OtMtWUAlF0a65uNzsTYHrUtsrDNVbsUI+Osg4tdSN6U1aAW3VnMll/sfSl1TflEWybcsBON7u1wetMX6DxXPAbiDh4X71q7fJZdODkEjD8R96G6T8kfaQp0mZ1ZVZjvtpQq1UueDdHWpbjPxQ+/IsRAvY71JpaX/AAnYUtnaVVDYvkfjFfgzGTvbalP1d3yv5Cyy0b/B2XO+L5heBra+vulLZbj6GumiRm5eYjlkiGl9L1djV8Nn1mfoLKkMjkhkkBJsPWqa2SN0vWqJETKilABup61S3Vo8nvXtyVCQBvJeLd6V14OtLcI574kBQWZgdK3rHIFcvyTMZo5OTAACmKGhNoduCmP5MJoXF+wpVsJ+DrZOwTfLM4txPq1A/XSI/ZyVK8leD8gUAJbxPepL4diD1s3dz8D58q93Gx6iupj8Fy9eXwZ5yDJyUMTrVizVR9cVnXnyC8ZK2Ox3FarA/wC3BmP8Z5sSx4tsNqpWvB6fptUThHI8QYxDMOS/zXO3Yv8AvaXBTI8DRjiPqKBJpkt62ZN+6cd+RsFBpn19kTLF3tCNTE/+xnJj9tD5CoNPTStPwexX01Wn9eRWT8mG/Jf8inen54x48Hn7et8no8pchLX4tW2p1YzPNVryOxmmseK3I70vRIzNpnZgZCOYANdTjwFaK8hriMWFzZaF6cA11m8jniiiYEsSKTSzaKd9LWsoOSDGe6sbg1tHYDZuoqGKGGQ2Y26U29nZHnZ3s7DZ3Qan8e4oaJmbp+SKeSJDoCwp9atkd6MA8ZdVPFthRLgLDOWInwJGk/Ly6UdNVB6zsk4FD4+Z14l1BovtSFX9ivgBYDE/CbzHei7SuBFtW3CPNDDyJT+K5WfyMzTltluNCZ4uF+LDoaRe3VyUrVRyPTEaNDztp1vQPRN8E2vsymkSSCeKZeNuJ170xQ0eXZKj58scWLnReL99qCIMVe1oCg98EhmJ7Cuuke56ta1UIKdZrA6i3SspBu7QyCaTiUBsegob0XknSVuGA7zMeEgP1oqpeUNtWtVAKYuvk2nUVr0JlrzCCbHkiJZHPE1iun5A31Dhy2QEG7epobZST0o4j8nZPlJ0AtqtCvWqxy9RA/ve7GTy36UX1dWV4+ulUzsyFnXkCDaqqWgTrCRMiyCO9xyHSmShOf8ASOxs5NyeJFZZHo4VSFZEMzEniG9a2tkXVrWqkkmia1zGARvTKsVpafk9HO8fe3Y1rrImwXuPMDxX710QTVqvkTJjLKvGQ6+lb2F2054IP+uMWQADb1o+wVd+tjVx0CSDn5UqzM19hu3BpRcQ6gC6N2pNgu/XyFPCVHibChViHa0no4We5Y3B7CudoOxulyjkvxsZUhQfrWrUr+xxDJ8eCSE7aelHayYz1rdnBS0pO4LUlI9Z16oMSAKG4hT2tW9TzN7tjYpEdiCBQ2TQvNQxOV7S3NtulHSWJ1pazJTMhUgXv26UyC3LFqp//9bayfhJixCr4kaEiv0LP2qwZr7FXYypvj3hkHM8SvW1WV1VlwDS7bUFcfDIj4rbkNyetT2mrPUq4XawEUZhmIZRfvTG5R5j1drstR4WcK5F99KS00het2rQhxWLcX9TQSzm2lLKWTjHyQ3I6UlPmGFpZ2QP+ORfMWNFyvBN/gjyMQi/FrqelPpoKtaDPkkkgYGPQinKqt5I1m7uWdi+XmWbjJcqetZb118BWxXaEU+/E7E30PQ0HRoZnlNv0TSpAGYlri21MTZm1nLjwKJxolTkfEg3tQ27PwefrazSSBxwjBrPYE3FbVQb6tYTHw5E0MgZWJHUCtdFZFmdeZNCTMSeMHVHt2qdZdWM1z4k5BaQa6EddqC7jweVbSXCJ5I51kLAkgn7U2nVIblWual+Ry8bXOjClttsVZvS0IdB8i4ezDxvpestgoK8slVlM7iVLqT69KCi6vk9LPFJdn5IZHij1Zyn0qhJsHra7mCQyozlV8geppqXBbTL6/J58WIpyVyD11rVdya7uJgtxYQY77+tTa2hlOGnYEe9C/j+JreLDeEOeXS3WlVQ15yRTTzJ5FSV7iqa1T4EfWvIl5nltxOm+tMrWBOlKpyzxxZ2TkLX7itV0JvrWAsbLlgYcwbg2rL5qxJM+DQOe7ageJ7iplikbfJV5G2aWIGMhWHUCh4T5OSUcgJPk9fJh1rbVqP9fJNipZWeUacX6msqoqev9Sq0H7Ejxtc3NYrJMG+icpGfwmjk0PGx2quU0TVivLK+JeIkEhr9KTMMXe3ZP/JE7TxS2dSB0NPUNCbRUqEjSRcb2AG9LiGTtKxOV0/O9MkNcKYBGNuC3K9b3EPWeDyCWE6kEVzhg1cjuThdDoaCEFeICTj7flrehfngQm7KEQyROkpKXse9PT4GwqB8pCgJBvQ8C+LCJsyRDxtY96L60xW2XBRBOmRDcmzjS9Kahki5UI6jyRSeJuD1ouqaK86qo5yxNwbka0KCa5ghlyJBJ/kW4vTFRfAi2aTkpEpexUBbUPWPIyEuWPWaRPp6Ut1TF25csIZ4uyldPXelvEnvTljUkDx+DGuVY8lvr5KtOzDVpYdXFwaXdp+CT2Np8Dsb5JIm/wCLkD3qW/ru/wAwebSjbmeDSbPE8RCsENthU9fUh88lNfW7kJIl/wCUC+16uqungtyqs1x5EEpjyaC6k3piTujaUta0lgjE8yMFFtzSLOKtH0WTrlZMryfiAqCQLp1tUXr+1z1Kdva+zlGfPFJExsl0PevQzurL9iN7JEE2YIpgCtrbk1XXOUQPBu6OmT9oER/lQx08l2eSq5ZBeSDJsdxVPFqku1pvAwT82IOvpQ9YFuqTg8ceOQgqCp713Zo21+qJM6SfEiaSMs1jYjehsldHi+5/+qZf8f8AJJkQAyJxNrUDx6+Cr08Uq8FBSZluhJXtehlJ8nq5qtKyxBSRHDLcN1o5TPM207Wn4KseeZJQHsVbek3qmuBF7pWhGm2NjswPIWYbVKtLI9OjcpLxBNPhJH5acT3p1NpGu7t4I5YcYLc2F+op9bWG1VmoRj5WHDK7Lz9bGn10Z62Wf015XJLGn67DjyUg70/yJto3yzSMkM8YPK0nY0hJ1ZPs21I3HWE2u3Bx1FZdsmro2x0TyJJoSy7UFkmjatU5ZpCONoy1/IdKk7NMS7vRwhSZEgbi63WitRNcFGVFTn5LEWKZOP41O26sc79ay/IRhhReJ/muV2Rd76WM2Z1jkNvxquv9IZ9fSZCkKmIEHSur5FaKaiHV2Q6gr60xNSTpJkUazI/EAkE705w0NzSUIrYsxG/IClIp05YsO/5On3ooXwRSvKBlBdRwG2pra8BWqqqX5GR4crr4rc0FtUgXvX8lOPAY2vILeg3pd7yuCf8A6eeDQRYhut1PepLWf5J9dmv/ACeyIsSSOwsHUaWoaO6Ynpe3khBTnxI8hsarScSXeri5OcgstiprYlHp3fQuVEkh0W5FTuzTJezvwZ2UvF0cIQRuapzcyi106VTGcmkTkhu3UVkQ+RF/6ZIctoJLyoeNO+vsuBNqx4LEy8d4/E/akPKyZMs7WEyTxPqBxNqOtWi/D12uWIaAujAtoe1M7QyujSTJVxWiPg5I7Ux3nyMV+IEytKq6XpiSItkmgYUkc3Wwbrets0gcIbgEJOJCHawrpUFytWpfHG4jBDFhSG1IH2duRWRCu4G/ejpYG/iScYyttoRTO0E/2SyRoJopCV1X1o+yYq10pGcFvfQGskntZtgzvGrKzLcDc1iTA0TmQrwyWKGw7Gu5XkY26Ls/JfAVRQAQNaTbkT3duWVCRGBDailNMVduQkiBW6EgdhWdvyMyfWssoVGjF3XwPU0Dsn4G5vvbgmKBpSFHi1Mng9TGiz8jRDAtxfytQKzB9ja1nALRLLGRa7DrRdoYin+pIyzQtyA0pyaYdFPJ1o3yNLXvrWJ9Rt3WgyH4ssPJLH1obboTX25P/9f7Bfk3DgalfWvtn6yaPOeE2DnhgzY7lQDS1e2Tg9L1c+ZPncvFXDl5c+IOtepjp3Q32LWbhIW+RjzDyc36Wpiq0DXN1UwAggc3jYh19aJyvJJXta3JQmU/EKx1HWluiC1U8GhBKGQje9T3rDOduIAewYgk27CiXgB1jgTLKQAF2o61E60/JPIrMhYj70xOBHCrJBk8o25KotTa8gdPkOJkIDA2rmiujhBjHSZGBYknqKF3gktp5RHJ8bPcLqRrRfcia+1VAGNh5MQNg2h61y0TBx1TRbGZdmHlWOClNPhDZciVIwStvWgdUb7UVzCxJuet+R2GtJ6weVio5LxkOtwyDj0pLorPya697Ec2QyuLJe/XpVNM1B6GfrrNSzqxzStYOB1Fq1tIfm61cstxoEERVieQ0JvSb3cyVZ62uoJsuIA3VeVMztJXddKjFxEnUHj7ZtWPTqS/d2t+RE+G8SnyBWjpomUu38gYkvtEjkWU7gVmyks9KjDlySGsLkE3oKV4KNMuRiZkdrMpB9KF5s21XAYaOVCL/wA1sNMk1fSjOnBjdRZtfSt+1o8u+zYv2JIX/I8TRdk0Ltojv6wZtSST3Fd3AV4YYxmBCi+nSh7o16dmke9vIR7gFR9a7tVorTqmUY0Zd/I69qVq4Q3DRJlcuInG9tR2qamnwU6avygI0j4kLcHtR3bBxl+REsasDdbMDTqOCXawCh1BHS+1E4Z1PAE9pPFiL2sKKnAnZcwS+2wuRfj/AEpsm0arWT0uK3s8tx6VyvyZa/8AEk8crxLYjSjdZI6V7KQ2n0voO1YqlSz4AGUiJ5kkUTpIvo2uDkWTxcFPJTXOgLp14LGkEi3CG4HUUnrHyJvXs4RKuUpcx7Hpem9PkZTHnkTlScrBx9wK5L8E/tceCSGRFcqlwb9aYqv5A9bJzyOM+Re3TpW9UX1yq2LGTk8wCdDW9UMtWtTkz3fya43rIIt/9h2PPE0ZTW460DqxdE2uQzKwXxAuNd6xo3RQoHR5CytZgARoaW6wTx/RWvKOM+0dD1oHz5KLOaw/AqTIJjKyMWPW3QULp+CDZSuqFfs450DWI2B0ovrsdXK3gpidS48rfSiahHs4U6wiWfNkx3YByddL0yuasjX6zs3wHF85E5VZnHqNKF+vHgop6vKhFLfNwY7hlYlbUr/n7Lkrt6t72kqg/wDu2KB7LeQOx+tebr/8/teanr5f/LdM32HTfKxyDx8utqflg0Q7epLIMplyV1sh/rVVP5Npilz5Ml45seTnHMbA6Cq01ZQ0De3zAybIjnAaQ2fuOtdWvXhEtq/+yEpJHe6HyX+tE0S1Ts+Rn/YyWs2470P1IXrmoPPNPLC6C1m6ms6JMitnVpoh+OymxcowZDjj6UdqSuBmX8PqkfSrO6w8o7cTUbqm+Sy6XTkUcx1QMwuve1b9SZ5fSVIA+V4yj/H4nTkRXf8AP+zc/W/qWy85Se3zDW9aT05g96mTVAlljnhKli1+tBZOtijKkUI3wnLcQSRvemX2SrJX6lU7JMzsrGmSQsoJY/6VRjZdQ/Yt2uSztIzG/wCY9O1UUXBH7EN9ULbKkKi48hRKoF6JVQcUxfW9mrLIHKqSkohz8iFyGtw+tBbNMg9iLWhGlj/JHkOK3qa+MoqzxVEWO6y7sB6CkVTQ11gOGVAttyOtdarkl0s2iniZACn9TU7cOGU0ilZZyXEjdbMLN1tRV0a8E17u9uDPmxZYwQj2U9N6qpomFdrrBHGZAGVnLHtT3ArFKPAmR5UkBUkAdDRJJo61UnLKUz3XW3oaW8kasuzJ5M5mvrZfWmVzCeFc6yNimVo9XuRvQ2r+jz9byinHyXjYHl49hU96JkFrcmgMiDfflU/12Cpm2xE8jkjg2nam0ovkqp66dkiNsh+XaqFRFf1pMdCGlHINYigu4Cxa8h5EfOK5JD9LUNHDGauVJPizToWVCVI011otqprkf6GScuwyTNd0KynUUNMknwN9ii6io5p1uYluDTLVT8kuOafkVPM0hIffsKOlY8Ab1UwiWOOQkhDwHrTW0MxSouRzRTJHf879RS+ybK6RZCFzsmE6p/jOlzRPNMOmK8hHOdtV0rlmDfNJHGyVZTzBJ9KJUIL0b8E3uvHIGXRTuDvRxKG55qiksLiSMOq3brS4hi9X2H4czvyjIsenal6VS5NyjlFBAaMiRde9LXD4B1vxCJzGnLxGtNkTmmvJDlicFhawOxptINtmpM4yzK3FvsadCFuqQbMx0axHasBukFGY3j42sQelBZtEW2jg0IWCoAFBI70mwFrtVgvheCUgOvEmp7SvAtWaYc8b4wJje6Gto+/lFXRtALkF0tI5YdqJ0h8HtetiqU8cnQ+PoVbiexroYNuzabDZS5BuTbtWJwDeyqejSVCRc2+lc2mTqyHpHG+jG5G4pbs0b3+Bc3HHkDDQd6JTZEmrtex1M9A43N9jWPHg36mj/9D6OFouXg/LTW9ff3TjkjzVnbkfDkCFzpyU1NvXtU9f08m7QTZ5xMnkGUlraW2pnrO1UUexk04RhZMTJ+CWAr0qWkResLlkAlljflZh9qoaTJq1hjW+SIueBag6Bf8APIzE+XlZ1SxUE0NsUD9daeTbiHvG9zUr/km12XYKRVQDl96xNvwQ7XbgU00JjKg+uugolVycsWq8ipUEqDUG/ajTg6zSQuLCRSbi9a9WI+9vj4PQ80lKqOtBZr5JHeHyPk5hrm4PQVO3PCINrdrQgjJ4qdhR1pBXnmq1Q2HG9/8AHeuenXyUY2SYn5D46VYxoSeora7Jme5t2iqMdpGx3/H7VTWvYXnk7OF4Gw/IsJxzPga22Sjgp+tVtwax4Si0YBFTePIerm3Is/4X5MvFB0FEv6NyTtaUFHl4qm9zxPS1dalmex62Nq8j5cyD2LxgC1Lrm55A2ytessmgyXkB4kk+lMvRI70sUuWE6mWKz3uDWJw+C3jqKgw5BIQhYX7jStvdRyHTVV4fyWSYgP8AyJ5DqKRW8eAr6uzhE0qFWAAC02jkLZ9VyMVboT061vyeVtrw2dimjjOqk+tdarZHRWfIw5qfiV8T1NB9QnesIoiljeMAWBGxpTq0xVKuDy5LpKPEEdTWvNNDaZ/0MmmhbUDX12oaVaLrZtCwwBuDr2WiYedfgf78kkexW3U1N0SsekqJVn5ErIUJ4G5ptlPkDOnmSTLyJkfla6noKoxqmhW+SngGPPGgZbfWitkDnjInIyPLmvQdKOlOBe2cOTqZavDxYgHrXOkMRTKVApppPbYI5+nSjVVPIy2a6wScpSLORb0psISlVKEOjjJUgW1FA2b2ngnlgktxJNGrIfxWohYpEN0fie1E7Jnm307MoSTJBDPIeOxBoXVfBTl1rykMMYY8o96GY8ib25OPIZAFKnkKGIIteWTSgxyE7mm15K8cpsLXN4y8ZB4nQXo3Tgs+vqxrsfdBRbqaAl2aVpZ6WAE3O1thQ9iTXTmQoI4Ybs9ynYUPZvwLwtazcBTexInKPxolK8lN061liYpI0uzPcjcVyTZLjW1nMDx8qFjAtoNTWPIr0x65yyzHnGRDyRdW+1TqsPk83DOeWIf49Z5NbBun2py0gvxsuySJJEyMZ9GIAP8ASnSrI9nDPs5jkg+Q+TPAhUMjelDW0OD3cv8A5389rcGOMnMZvDGKnqTTmzqYUnmxZFh/K5AHutwjOpA7UhpssfsY5LjyaCfGQxoLueQtXZqDz/c9+1lwbuALtxB8SACaRqoRI95vyWGAROTYOp6mkq0oy13IufGxpL9CdrUyl2iXe7mEQyY0gBUKOI2Jp6uhdmkufJIcdo35o9vS1N7ST945gYzx2N15PbpQwya/a7/QhZZnbgV4DpeihIJUrTjyxGTiu8mlg4GjUVWBw7jsL5SSFf1521GgY0N8k+UUaKawWfuBl4rIDrtS/rE2x615Rx2a4seR7VqQ3LKWilFlaLUcR9daRZqT3qOqrAEM7RXXkbA1ulU+QsqNuAWz5TJoxFqQq9j0/pWVf2FLmTEBjTa0S4I3kpkjeJ5zyDa9r1SnCIrWqrSIlxJxYhvqKOtkI11R6KFkbytWtiftlwjjraQF/wASelcvBNa0W4LAtnHskkW2pU8cl788laZBi1kXT+tKdJ8Bv+nwEuXGG5Akqeld0cEmidZZt4WTjtBceJqDXOysJV7WqyoPG66NraprJpj/AFs+JZJMnj1+1U0tyZp4IjApfxurb1T245J3aD0mKG0c+Q2NctI8Cr6S4Qn9a5sNP/NF3LM30XIvI+MV4jYG9FXaGBptKMowy47MCpC1R2VjzNNJkZHnSJIFAPE9TQPNMR9S7clv7PJLg2I60PSGevhh/Mi1zJVkAOo6mtdFBVniuyE5GSwckLeipXgX7VVUu+OmLjUanpSdakeV0uEaLozLa3EDrU1XBVrZVqFFgMRyFz60GmyH+noibKx5o/7f6U/K6Yv2rpnMZmBAcWH0rdF+BWTjwLzIB7geP72osrcQzNuHIKYwdL7sN6J3hilpPCG+y/t25HtYbCku3J6+cKhM+GeNmu320pqvyc9Eqi1ximhUEdKZ2kg027OJBaBm/EW7it7AOyqgxhKyEA+QrPshgPXtwK9iSIEsfHsaLsmdW/Ejcf8ALkh1FDf9g525LYZBKwVtSetJsoOT/oVPC0bm9FS0oaqyyaSazhXW6mmKvHBmlYZDl4wJvFqN7U2tvyS7ceQBjMbF1sDpWu6E23S5Bjhjhm7qTtU9ruzPI01te5dP7TLyXwtW1TRc6tKRSTRKdZL26USq38DPXyte3gOT5C8QABIG9bXPk95+uq0U+SrHniePxUq+2tLtVpmNt1GtEJNCdR2oVaDm44Qv3ZIW0JAouqZHq+zKI8x3/FSw63pbzSO6KvLGqU9wchwJ3oWnAuf6OyQMdLgqeprFdGXskTT4qJYsxAHUUyujYvXRwoP/0bjkmKW4/Gv0l1lB4YPtJRBnQyGza30qHej+D3fVxdFJQkETyH23sO1bVtVUoh9jZq7kZJiKFBbX6UddDzL6uz4M+XGhcnsO9Uq7RmVXJDJgISeOhpq0KXpC5I3x2ikHL+lN7SeV7G3PBpfH/ImGULrY9DU+uXZEfLubL5GNOQGHl6VIqWqU2zconyMaNjtTaXYzW3UQMVEB4nb+2tejZ5m2ztwOgWBzxc8WpdrWXgSruYEZCmGclLsD1oXaVyQ+zbke0iyQ3YDmKGlICxy4k9Fd4yvC470b4+SmrSR6ESY84KksOw2rG1Zcg0c2LpJGlTyOtKrRJjlmrPgxc6Fg7Hjer82oKlmqmY8UpkAsLbmnSgG6p8l+AxiUu1732BqbS3bwR23dpg2oZ8aZPaZNW69amtS1eZPa9P13WvL/ANhR+NjYOoYcui0f3NQy37nDqB/1s4iZeItsKL7qybTVWUEEUGTE7LaxvpVFrJoZg0uB8c00b2ksB9NaB1TR2jUwiuPPZJBfVfXSk2xlEzpNy9pFmAK217VGk6uD0FVVUsXnfHI8YkU2cUXr7Q4Yv2NHbkyG9yJisjeN+leiofg863LhC2YSrZDb1ovAyyVK8+TjRco7NJYrWdv0edrpPwMxpliGpLAelDashetS12FJmOSGQWHWuWZ6H0KvLK4XjmTyOvak2TqwnZvhAGVYpLKCR6VvXsh9aNcs0sR1kSxBtUW668h4W7WgmnURSaKeLGmZ27Ip0/lf5OzRxsuh+go6Noj2mxG2KjX5roOtP7/gOt+lRcvxpCn27lT60ddvyS6az5JBjtE9iutO7Sjlf4GMkl9rC21CmgrtImZSp1GtMmSN8uDsUo90XuCOlc1wHVQy1xyS4F9KSjNrSZs3NQSoN709EnSKjok96K0g/ihbh8FNLJVhCWgmjIKglTRKyYtNN8ksk88curWolVMVXJWuMMzuSRZj9K2IPS6JAz4zyKCVANr6VyskK9jWqXAUXurHe+q9KW2meTbTvyNkyl9kctT1oekg/U7rgVjzK4ZS9wf7aZ1gsxr0rAcqtGh8bqK7yZb+uCAhWNkQqSaYuB9KfXXljWaOONhKbC29LvL8EXt62umkW/Ey40kQCvqNP5pDTSJvWbrXk0VcQuG0I2vQR2LfTydrSPbHhzrD8SdzU+mls0z6v0qKtk2TSfAxwSXFirEk0zHaa/s33Peta/VeCDJ+MUMWUWPQWqymsklteqBXgo4sLFdK0xtwUfrwZMJAuGAvpS3Z1YVLcSyOJsjDnBJPAd9KdZKyEVf9SbuJnY0x4SMNfWoNMrLlDrtpjJYovdARwRvXVs45EXlW5EThoXuTyU62plOUSbPtbgWJMNmsw0tr96JqyJLduwh8eIMfbO56GjVn8hVTXkjyonR7sdBsabVyF1m3BI0knujiTTIQ760rcgZMIkYErycV0wB7enXwXR4yPEvgFNthSu4lau8BxNjrdZG4kV1p+C7JW8I0cZsWRbBrEVLrK5PUx7cIiyFkGQAtwt761lLd0evXNZcv/YpaKKWG4S0nehpNbQI10dlMjsfBEsRDrcj1rb3hyQv2uIRFkYGTBJyhU8TvVFNVZckrslzYABv7yQet6MjvftbgQ8hjc2HMHvRpSc6QC7LINNDvatSg2mfyw4pWC3JsRQtDs/75K8edHHFzvSrVHO3VDGhjCnibm+lZ2Z5ml3bg7A2SisAfGhvDLfUpWCjEyMoeKgA9qVrSr5LKqqUMr/YmNhJp6ilKi+Cbbr8CZZnU3DEi9NrVM8/WvJxshyQdwa1UQXRV/orSISIGBsaQ7QxdtewShVYrI1xWNt+BFrNuEQZsEbqbd96fSzRLr/Clkq/HwyqSGsy0ddXIHrWdnL+AlwgsZ43Yg0T05Pf9ezdREmPO2tigHWjVkV9q0r2ZxsT/ABkmTl3rVc8bfd6PwSQ5QgnAVyoH8Ux0lG55ur5PoMfMZ0BMgII6VDbJL4Dt/b8FON8g0bcTfieppGuCsWY5dUVyZWLIti123pFcrVJPYpazhE7ANrYMKeuDapUUhNiiSPwPE9qxaQ+Rbv28mXJDNDNrrrqKrVlZD8af0ME04FgtL6o9O9UlA5JHdSGIU7AULqkRXacpEk0k8TC9mX6U+qTJ3RICWU8gy3F+hoq1MtnNif8AcZeRIIJ2o/rOWcJsojdZ8chhr360trqzcq/yZ7xywy3W9qemmhmVFMsUM3KjlBDEWO1F9aaO+qrsaUfyJluJRc/7qneMeCi1EvB6ZCxBBFq2rgi3skLIkCk9axtM8rbTscM6gKrgfWsdG/BNarcJEN0fJADbnYVqUCa1i4+aKVA3jcGm1aZ61adnBnkSMxstjTj2PWyVFLGGZY1AkP8AG9ZAy6to4Xg4mcGNlLVzoNrl18lEedPG1x+PrQvNMTpVeSr9pZkUt4nvS+kElqwpGKzqxtKOO+lC4fwLS7W8Cp8iQnwuzX3oq1RZbFVUs4ufKptMCAK15r4JtEvgrM+PNBcNt3pSq0wFm2pP/9KT90ZPgpN+9fpVuPB9Lh6yr5H4eO4kDM+nWu68Evte+quEb2PLDDIGGtxbWk2o2oPntNb6aSVNkqzAKbVOq8FtcOrSI+POVgTuaongFtUbPPjhfQ0SuRbatkWUi87A3O9Nqzz9Ku1jPmSf3QeopyaDitWaWK54hyLMNL0i4Vtu3KNYSiSJbAX71HasMm9i8oKOKGRvJSWO/Gk20aPLtsxyYMKyFxYH1pD9i1uCf7bWtwJz+MgIAJ01ttTMqPyw3jLlkkMRZSqqQartdLyyqtkq8sOODLhJ5m6HoKBXpbwBi1Zk8wm/3lR0tVFUvwWKiXwDj588MhVxyUnc71t8U0PpRVNNSuSCFAAI261M/wCDnEmRmYgj5WWz32NUVvJDq2yCCZEykSSyqTc03q44CwpF0jbiwlZlkx35213pFtY4sexr7EQvBfNAqp7w8ZANQampfmPgem9FKJl+QPG6tc9QabbLkqx9bjkRJMHkDG1z1FMpXg7VdXCOt+u2pPl0NcpQiLWcIkeduZTS1NVeJKa4qvkpgy4VUAXDX6Um2bkbdWskvg0I/kf8Z9wXXvUtsP64MWU14JZJcOUm4Bveqq1sjz3S1RYTDdLI3Fl6Vrdl5Ib2u/JLM6ppa9+tNqpArk3yxUExANwbetHapf61OtSkRJKhHKl9oY5v4JlWSLIF2JXsKY4tUZRqrk0REhFxfWppgzTR2ZzEyWgyeN/E1m+atQd69IvBpyZEUy261BjR1KPapyIPEpY2W3U1T4ZLROBEhxwSL8j/AEptZB27eBRyOOgFH0ELKfIJk5tyVbEdTWpQA6zYVI7kEbmjSQxUTIMgOGu2n0p9YM6L4JjOEe97t0vR9RF6tsoj+XkCcSgsNAaW8Ub9CVfI9Zvej3A+lC6wRtKDkLTQ3O6nvWNJnY17MCbJk4ixtrR1oip4JVRK8Uk1jbW+5piaQVetTsWHlK5sPpWPSoi/s1doHTcwu3FxS20Te1f+Q8VY5Yyrix70uWvBJ63PBNNg8JbEFlPU7U9acHoWv04AXCaNuShRftXfZIiuvZwdk/Y/E7dzRKC5qtK8nf8ADYe4AHHW9C5fgiva13wTZiYUgJDWJ0o12Qdq2SmDP+OzPZmeADQ7dKytPyT+tn/TTNyMF0UrcE/esfB9Hikqosx/kHwXV5mBSptcldQXZVduUay/J42UnNLW72qP6bU4FPB9myHNljKghrMtVYpi9smqyLOMmXDe1n7jvR9+rFrRKsk8ePmYo0vx70x2rYXXRdR82JFlJ5klt6Wruo5OPBIPjwrqwNgDTvs4BW/9T+C1QVA3160kDS7vY5LJd7FtPpeuquAN1DglKAzWBuG702eCLxY7JDKvS1utcrIbwxJYAEEczRwH1n9CrGRx48T2FbME+t1VjZYwguwtYb0l2nweXvo9LcBxS47Q3V/JdLUUNHp+njbrMeBc74gAdjyY9FrpaPa9X173crhE8UWTLKHQmJegB1oLuVyezl0zf5Zp/wCThaQFmH91JpVLwJ9jXtyV4ySGMAsABqay0SefrulWCrHjlia5PJTuaDRpo83LSXJRMgePxYgilUcMbZdjBzIpUkJAJ1616Gdk0cs0iSdMqRDZd+1MTSHUpV8mZKmUl7Hiw2BpyaYyyTUHMbPdZAsyg+tc6SY0q8I1cd8d20JpNpR5vsbOYNAxcRyABBFqT2kHP+uTiGcBgo9RQ2g9XDNKrkKOWYyAuqju1651UA2tVMvjS+vK9zpSG4IddpZ2SIk8SLqa6thdmkxMkUca6Ag+lGrNitbWsj0GY8Eg5L4nqa6+SshCRcJ4JRdl171N0sjodV+xcsmLLFxBs69q1UsmRaUtbyZzkJqt79dKrqi718etZH4+TKqfgbUF6JsvqlWnk0Y2x54Qrgch0qWytV8EtrOyhGXlYUYk8VIB3AqvPRxyMpXpyzPyPj4fzsbnvVFdGKelrW4JIsg4swBP+M9taY69kWUo04NdJoshBxJ/0qR1dWXtdUdjJRtdB61rUkVr8yVxzwqwCvcnpSbUbI9nZuClpWBDKtj6UrqUZZSLmVpCG4kt0NbV9UWVqnZE8sM/5WN77Uylkb7GlfgDiyv5X17UyZRN254OyNYGw2rEhbq7sjmnIB0N9qdWo9ZQpEMXeKxsO3emLhiml1AxZpYXs2qmtvVNGYJSPeQkb+tAkOvVQKkgaTyGp+lErQLdkuQoYWWxK3FZawp7Sx0pYJ46N0oCX2rfydil9xLPodqDr+Dz8q9vBDlw2kBubdDan1ZRddeDNnRo5eYNyp6UVeWIzp30hDB8rKUsX4/WmfWj6TH1FWswd/cxTYu126kV3VjVlZtQKllicH21uTsTQyejl6/VckDNmI5KqpUdqchN1VNhrly8RyQ3713Uk1Sa8lcOW1vI6HpQupHeGXYziTpf70uyG48FRKFFAbiw6ClpCvZu4QyTGWaPVtQKFXhg58mRkGTEXU2F6emmejl67dT/054sAwm4vf8A3EV+nSmevf2m1JQhkFyCGPc0XB4t7d7fobFJkmQByOJ7ChslA2rpRmxBitJqjWIqHS8Iprsu0sVJHJFJqSSKbVpo87a/azZVFL7g1A9aVasEbt2YjJxrsHUb0yl/yKu4cks2C1ybAk0S1Jdt+QoIXSysvjtWWugPtVUWjFQqApuO1S32jyTb+xCOgvCttQegpKXchpV3Ox5TXuw17GmrFfBZjl+A3mlmXSy967rWnkdqq0UvyI972gfIsb7CsWbu/BFnnbV/o4c7lfxI9TtVCwg9mnrqlQHli43c/wAbUSq/g1Ub8CJWiyFIisGA0Y6U2qdfI959Fz5JoczIx2AY+I05CjtmrCVVJT8lkoOUAYxe+7HekyqeRWrrXlk3/Rs8yu2gFySaxe2vgmz9r+00GsUmP4oSyncimyreT08+ebfJoxu5xzfUga8qi0hWR9D6eadCT2UYmxs3an9oHVfwSPlCKS0i311qitJXB526btwPXLxZD4DifWlOtkUY4WTlismBpTdCCQN63O0FV4ryxCxSxcSRpfU02UyLXbg2cSNHi1a4ttUWrhh56cQieXHRjZAbA2NOrcl0t15ZEYDHIeL2N9qerSiBNu3gJpVX8t76ViQdk2+Akl9QR2rnUaqxwdXLjUghSO96F0bG0zaUse2VA66C7UCo0ZbK1g8eWVmKnRQNqG9UkNyVVaA/YZpCQv3pbtwV5NVtI5vAAhiD9KCq+DdG7uTqoZPyOnass4NpZV8Cp/jmVgyXt3FNz245IvY3mxw40sfkTy061qumKV+74I5JJUY3FxTkkxlM0jnus2ljat6jXVJCyrWsVvRE1n8EeREpOi602rF9RJA42OnpRGXtwLilkS4jNjWtT5JFWeGV48zSG0lwxpdlHgqxiq4HyYhKaMe+mtCrha68QTNLLCNVP1o4TJNF/Jw578lBvY9az60hd8lRSWSo0iKRrpcGkWskQ+1ogMWRYhaQWtretVW0b6dHEjsrJFgQLoetdWhVpl8sjAe901W9OUB40S8jSDIvFjY9qE3S3Zkb4yOSrj7imK0BVt0X7C/63HZOP9w2vQ/YxL3tZwYXyHx80cvOMeQ9afVoZWE5ZfgfIZLQ+37bCQacgNKXqoPo/wD5+FbqW+EOMGSHBcl76+VBnD5LPb9itEq1LsCdwhBU6fxQbVlk3rf6ttlks0UmMeA8x0NKpVq36B2q3SWKxp5wtl0PanXqjzFFuPgtV8uQWkPiegpEVXg2zovB54imouDXK0lFPEkxkAJA8mpsCq0bf6A5TiQcyeB2FdCgZa1aeCkxlwSgGlBMeSS9pbbI8iSWIhxuDrTapMmefZyOEwnXyB17UPWC6tUvAg4wEmhIU7UfbgTfWGImQwm6tytXT2PL0bvYnkypuXkLod6YqIozwqmejwo5AQJCL6721rrWg9vG3RRBRi/HKgCg3bvSb2lyWr2XWkF+NFHE/kfLtQX5RItbWtCLjxmj8dBUy4Y7RqteRF0gGhue1P8A9jy79tOPg8me3Ih9B0rHkU1xVFCHrmKBobetKtmPpi4AmcZCkC7ab0VF1MvRVIOM0DdeHeqZVhDa8Bz4gn8l1FDW8B3uqckMvxETk6cWHWnLUhfsN2M6SPIxZPEkremppk7fa3JfjfIHgFP9aVbM9PLL+TWw5Ypr9GqbSrQx6RwOEkSPZk5X0oera8nm62s35GDMwww4ghh0oPrsC8r/ACWpIswBQj1FIdevkDWyXLDeEKgudDQK8snteUJfDjY6Hku+tMWrQt3cwgVxo3BVbi3SiejXkY9elefIIwlDHgSGrFq35E5WdnLPGO3i41ou0+Cm1p4Xg63hoRdTtauXI5r4JzkCNrg2pnSUOwwZ2X5KMoCdDWVxaY2/ruxF76SlgwLL0tT+sHY4qpFPBFzuqj73p1bOAtG6uSmCaJIr2se9LtVtnJ2dJLIsqGVQClxSbUaE0o5ETpEkoZSVHprTKttC9J7GjiSjgbOSCOtS61K8P6ngNMt4XsRyQ7GgtmrIdTPkKedHj5DWszq04B0y/kjbLUAjqKp+sT9TAM8bg3bX0rurQ9Z9UePtNHY2BHWtUpidG+pO8KcSF/LvTFYUk2oJvalDeVvQ02UHVpeBxhLR3BFx1oFaGFppwcjlIQjcjrXOvJK/DOplGy9vWudBdaQkxspMi+IvSvBH7NvgnSVYHHujTvTOsrgzCjng5mZHJbxsCh/mipT8ld/XSUsyGin9266q3SqFAz1qVq5Y79PGZWLAc+1D2aPUrra/C8ErY5U+MIt3opkq7dKy3yaONhwyR2YBSBSbNpgv2m1wKysMRtoNLb0dLyTbXa8kzY8/CyAMD1pnZE1It5IMnFyke+oHpRqyHbXpVQiv4vOKEJIpuKC9ZJM7Sas2bBxBAANJVGMfr2uyf/tgCVTVv6Vl1B6/p/8Az58+BU0OTmL/AJBodiKXn5PU20zyrCP/1CbJ4r5t5WG9fp1alO6lcHIMiJhcrf1FFarPNrKRUrIw8OmwNLaZjn5LsXOkTcW139Kn1yTKcKTyFl5IZg2rX3ocqQjvYyh8GeM14HJsbVS800QPPqmXRfKRsoU6ip7YEm1IQZy1NxwuOlL+ogtT5bKMeP3m0PEW2qXXZVIdN1MBZDyQnisfL1oc8+/LZlcXdy2Ikmdrf7+1V1zS/wAFyyUfo9jwvKSZDYjoKy2ir4OrqlxU9kK6GyKT3J2rKw+WBesuWDFjTFiTYA7GmfZVFPruswheREi2Dk+p2FMrZ/Bdo2kkhACMeMZ+vKmcryWZU+us28k8qCKS+jHqb6UxOUJU3vJO2Q5kKsgKHai6pIVulRjE+QTHUbqOlTa0djxPY7NGzDOs8QKyXG1qRXLp8Hoeh6ySloVJGVk0kBXtanpyvBe+beB6RcsdvLW9R62//RH03p/zi/8AJDNGY5ASeV6qpaUdaZUEOaoaUEkKlU5Pgm3SraSjFwMUm/uc79KDS7jwLz9mzt4LRjxR6oL2pKs2K01tewuXi/EObA7ijrwJ04gLHgCt43I3oNbSin1rx5PSncBrW3FFVE2i7WZBksha4OtPogb0jkKCKOeOzasK61mmJyvIuTBkVrxg/etWi+Rz0S5ZXFhCVSHcBgNqVbSPCNrvMwgP1WiOo5A7Gi7pnPWFJRAeLX4k96XfkDN8mhHMhsfxB0PepLUfgpmF2LDgh05L5KetTfdDhh/coE/qSRX6jvTftVhFtoq2MPNU/K4PesUNkV32B4s26ixrZgtxqkiLIw+XcHtT89RrcEjY8g07bEVQroTa6F8GuASb+tFJPawx8D3ASosaFawBbaWSS4TjxK3INNWiE30UEv6rxy7aHpRd5JnpNh6p/wD9ABbrWT+Cmto8DjGDZYnPr0oZ/I+76r+gJcQ6c9V61qv+Ca2kuRE0HAWKhk6V3aSPa7s4ELmHjxXSx61jz/JM858liHmpN73Fq3wejkoR51stmsUttXSM0txAEUsSBgot9a11bFVrZydLxTEePkNzWpND606iMiSOCTz0U1qTYnWtr24EHJx/cur8hRqrH1xtV+DmQIpFun9a2smrN2sBiLJFKBbwbfWuvyj2c7qiSNO+OzjkDcfxSUmkSezrZ2kvxMeCQ8Q3HvU+tmhvr6NeSgYeHEG5GzdDS/ss/Ajb2NLyl4Jm/VVdB5+nWnLsIwyu1BHkZc7C0FwV0saZWq+T0V6tUl2PDPyB4zm5HQViyXwP0qohBrlqd0GuxrXQl6HJZ1ay8th0rq1A1pECTlugO/bSj6JnZYTyTZGQWQk7HajqihYJIki+QaA76djTHSRNs3BYPlkIUm1qX9RJfFtonnzAW8U070daG09WHyTxu8j2Bse1E0aqpOChHmjcXXie9qFpMos0jU/ZDxAjRx2qfrDHukqRkLyytfiAR1NBdJIPJVVg/eljbjfTrQqqZ2sfIXCZmJsCD1NbKSFV69oFPFexbQjtRJnaXjwVQRrIoVQLga3pF20yql+tZYZxvbN/9K7vKIvsd7CZDIWsV5LTKxAN0kwXkEdv7fStSkTomxblnPJW3olwLpRTJn5OMS5J1A7U+tgLNdj0XxwkBAsrdDWW0guptCgFEfEmXmSddaJvshNtXKg0TJFI6sCQKRDSBvxaR36sBk5ciQaDu4Avs+wF/wBWS6aqTXR3RFbte5fD8krgBhYGkXwjwFslSpbDBE5uGtpfWpraNfBLno0wZDwLDkNK2qkymTvaWStmKNbkN3p6yLFi0pHxyRZEdj+dLdXRhZVkRNHMB4agdKbWy+SyElLOR4scos51rrXa8DctPwJb4sqRpyU9TRrdM7T2eqA/SaEkHVT0FF9iYrKzbJM5GdboOBFNzZReiiWSDFyDH+QI73pvdSEtKqoj2po11la1FKZubSrMHXMvAWkJrVAnWGvBbgZGSPzJYHaka0THYuqUI0jcgb//AI1Kh+jSSRyX9gRCw03sKyrXYaqLqkZ05mLbcfrVVIMtWqOKk5/GwNFKE3sm4OO+QujrrWpITpDDjyJA17aVjqhDSdjkk7Ea6D0rlUbXJVX7Ee5IovETbqDRwvkG6SXIa3k12PWsfBLKOFnTpcVsJi7KREmVN+SXAG4reiE2yXllEEiSLzJ5A6EULUB4qeUcyEVACo8eorquSjVMRDkgXAH80bqIzzbKoRFLYBfLvSrto9b1qxAnKxWRrlrDoKLO0oz2L9rQhUT+1MAwJU9aOylGV4ZdKnuRkhbg9TSquBO1uzI1hmSQA/ge1NbUAd60GyQY9vK5+tLd38Hl+57Fm+DiYmFLcBghArlayC9JWmWKyPjMcI12uTtW/a5PqPWVrJ8EsUEKGzfYCufJf9jShD3klCj2jxA0saKqRD7LUc+T/9Wk4wkQck5HvX6YrQbrtwRDFljdgh0B2p3ZMkpZTydWYIfNipHasaGZ0dnJRBmWI3ZT1pVqSX0r1UstZri66g96WlAjZzyyfIjUjlemVZ53sX4k9CiHdRYdRQWseVfZtlcK3UhDrUul48kG20LkAS5WPNcXtQZ51tyxHr5JuWXHNmlSxsvqd6P6ao9f6qpABrX1H1rLE2lpcIXHky3IUhR3ovqSXJuedaKX5KhKroQWu/akOrkXabs4uQ0cg5EAdKas00eh6+ENBzo+ToHUDtWUap8HputKctciG+Pxwt2IuNwDTVs34J37F7uUTvBBsFuD0pisxtrOlefJPl4YABtwFulctTyfY1l/kiki8AFHurfX0ArU5f4IkuzSDxZngay3CnpTrVTR9L6mfwOOS7S72FD1hFtcV3grhzQo4E8+RqG+fa0r4Pfrn1oUGNHYE2AraSkQ+xp1Ycvx+O6EPbUUVdWvB42/sWu+CP28XEblckDSwp/Z2QWK0s+D0uVC63UkLQ1q5PR+l0r+yeRldPA7dTTq8PkRak+TmPnWFmbVaHTMdlmwnyFZ73371ta8A3p1YbRY0sd21e3Sslpnl762txUj5TQygIhA702E0bWiouWXR5E0sZ2uO9JdUmA1VyeSSVSOYFj1Fc0glFayXKUKWY3Ua0hzJPpdvhBBMZ1PEEHvWN2RVjNa9mOTCAi5LqppT15OW/apTizTY4tYtF/pSdc63/yCrJovZopYuSnXtUiVqvkyybRHKl0OhB6VTW3I/DLglRsjZf60+yqUJVrXkORMiwNr+tBV1NfVkMjzK2i/zVdUmiS6UgOOep0IolwTXfPAEXuWIDWHpXWgWrKql+RjAkEW17mgJNHJNI6CQctvSmKrF9H24DAidxxHia3leSv/AFcsZJDYXWgVgdLtuQPd4xsCvMVvWWLrTsmQ5XNvICy2p1YQd6KiMnKvCSwIYCnVUiPrbH4nyMLqAND1ANa82X5ZNKWVrNjcjc2J70tqwuyta0IW4idzZiR6USlFWWbTJDk/rTb3U9+1M6ygbZu1xks8OQB7jACsVWin6+vghnx8dLsrXHSmJsxdrMmX3NgdL0RbSqoufI5ZpI2B341kCNrSzUgykyIxZuJG4NIdYE1rzLKIMgwNvfXe9Dashcs1Y8jGnTz1e2hqR0tV8GWl8IF8YyAGMWArHpHDLvWqqqWQZEMsTE30vVFLJoPRy2wo+Mg8lsD161z4EWvyAYQrcS3h0tRdpOr/ACLyBGoDIx9a2r+Gb0tdyyY5Ei2uLqetH1kbaqqikQq6XA0PWgmGDfRJE2R8fAYyxNz2plbsh12tHAmPFjaMC1E7CqauBq4hcFFt6XrHaCil/hmdLDl4+QSoOnamJpk93XsaMORPOihgAwFLdUhi6l+PBIw0ANh+RpF7JFmWibj8CTDkqxuTvsK3smVZutFJSkZK7EN3NDMEWuvZwMjyuEoD3P02obUlcG1ryHNaRtCFH1oacIPRKvI2CXGjHmw07UNqt+CZ3vdlUbxSiyAlaTZND6V6LkRkYhGo0+lNpoI0tIAx/dibW9upou8MCt00yMY7xFba66indkxav4AmVxJ2uftW1fADU2hCzlNHKC2q7XFF0lDen9cBTzLL10rK1gPTNJnISoI5NausR21NCCaFVPI8wKRarYhO1pgNxBKPHY96FN1HP/8AOsvyInwY/bHtMeQFzrRLV/JJto2uTuLlOi2dtR0rrUkP16SpK/f5C/fvS+sHoKiqpOS4qyRf+1r6V1dIYM9lCM8D5CJ/DRRvVD6NFOSpRS/JdHJkuhtbl1pFq1TNfWwAkyYnBZb3ooq0DpatVwaMeWjoA9S2yafBBZO74PS+xKl0JHe9CnZOGepjk61lks2BzjNhyBp1dYZv2SY8+PlY5Nj4VbW6sbSqZM8rBDu/pRpcjXSUIMt0IdbegpkCOvEIDHz5om4oLqT1rr0TG4YJeTRGZlyaDQj0qV0SPQWVZGR52ehs/wCNB9dWMvWiRTxecXFrgbGsnqR2dZI2gy1Y6216U/tViFaq5OcplNmBPrRQibWybCBb3ASLg79Kz4FqFZFXsMW28D2pXYbpqqs42JGL2FvrWq7Ir6tiFjKMRrvRzIuj5OSwvy1FlNarIdayqTSRGLy3XrRJySNtiYZuDcQvielG6lmGfSvJcIwycrXB6UqTLX7MnPx/uSXW9vSj+yDaaqjHwYz4soYeQO4oLW7IbXZ2sXvFHkLdrC9ITdR97JEbY0Ud7jl2NOV2yTvawCSqLqNjWtDY615CMgBHHQjqaxo872GemkWaMBtGHasrWGT1znkgaRIZDxtyv1p3we36frWb/RZDLFLpKQSegqa1X5PdnqutRn6Qka8a2rlePJPfVVfLEz4c6C17U6l0yDfVM//W0GE5c8D4dq/SU1HJPq61fJwwnjya4PcVqsJxfZySS4wBOmh6mmKxfXjgFeMbAEXFb5Bvdt/osjkBW17DpSmhWtoQZWIrxPSgs2jyPb2aUAwpGshXlv0pTszy1ZycLe1kaNZaS13ZHb+7wUTWks6tT6Vg9WmcBQKWaz9Ky9vwFbXmEBNDIr7kKdftRUaCpVV/yTO11PFuJ70cAXTYMWcwe19tCaJ5DaZ9eWa0UEGTGDqW61Pa7oy+mnWsjjgCMXANqWtpF33tdglIQTcaUUsorNUDPFGEvGbd9a6tn8kfsWbUsT7RniYBgTXdkmQJp+TJfCy4sj/0/G3+tVU0qwsHXsOTFcOSBoe9E7o93O6R6eBAwLsRfXTagenB7Pp5u1k0gTJGhBGqDS9BnSUWe3o1z+DRieExjiwY+tC6tM8fW1rCzlFOS9jpROnyBl6/ZwSvms91ZNKJUPTWCzr+wmgjeINGbNvY1naHyDLsiQw5oc2VWFP7VgU7VkHlMjXkiCkncV0JhSkuGUOiMvLrQ1lEu12+ERl5kYFO9OhMQqKqljjJJKNzzHShhICyTYhZp4pAeJ9e1E0mhbg0BmMYeTLoO1J+vkH6+/gV+7Ew5BiNbEUXQfXLrWS7GkT2yVe96RdciXd2UfBRDPlRiwPJO1LtSrG0pVVgauVk8bgeJ3BoHnWRd1WtTQxJFdLAHnapNqwwsXKg65yFNiaWurPRpSqUCH5crkn7VRXwTX5tCPHIlQeJ+xrOiY5ZJiJSZdxrTqfyS6JTwZ7qyPY7X3qpOUS24YKzbi/HXSudSOylnXyLmxN7VyoH9cCWIktxuTeiiBcRyzpLoeQG1ZwwbuXwUHN/xkvoLbDvQLLngppjPgmWYyAhDZCN6b1gdnnWi5EOXRTdri+xookja7/BBmJ7yaA262p1OD0qYrOib8mUkS4s1xexOtMbkh01s2aqwxTgOkmtBMF2LjmBBM2LIT+SbGi4YyOZGNHFlL47mhmAuKiH+NZGbiSe1ErhrWWJ/UyCCt/sa3sh6vWqgWfdgcFht/FF5JNbyy6Nf2V8FUMKW3BP2UilSbHk5cAVO9q2UxmPLH++nLVbH1rIKL1cwiiGRzZlPEdSKCyCTVVLNPHyp0UWNydTepNKJsqpVdZZaksE3/Ig5GldXXwS7Xc8CmwH5txPh0Api1UE9LqrYnJxSmtiCN62ukluadnJCyuCddKenI67SUAtIkZHMcgewokpId7N+CmHgyXiOh6UFv2KmFyeaNGUhlubV0iLWcQhONCnuceQX0NbaxHTR9oHSRxxyhuRP0rE20VttOQMmGN7MGvptXVbRPblz8C8bFBlFza/8VttODsdZuirHxyspsxYE7mgvaUejTVUls1ooomjtpy71JazTF21dyaVUU+WtuoptXIWdGuRUiJMgsLd7VqbTLa16pN+Rb44tot/rRqwF9HZilTi19Ap3FG2Ltp1RpYyjgGRgO4qa755JntNZZoxwrLHrvUlr9WZTSVJH+rkROV4XSqPtq1Mg0sq8CZIJUb8bKT1o1dMU7KRLqL+ev0FMT/A2qjklyMYaMgHA7k0ylyn/VSwB8fyHhqSNDW/bHkmv7HZwTCGWOQq4Nxtej7J+CK15cIfjSjVTv1FDZDKvrU0f1o5Ig0bAMOhqf7GnyYru/L8IkkE5Uj+7fSnKA86KzIFkyVcD29zvTmlA19aLybOKoIs+txUd3+BV9+76rwVoHsLCy0pwU5xWsvyG2OZU8D5+tCtOr5Bnt5JrPFNeQce9qbKa4CteHwUl+Sai6jXSlRyTWXZiOMZ8lNu4pkvwU4V6rsy2DGRorgi/XWpb6NWKK7u1YFtFJE+xKGjVlZBppC5oXkjay3+tFW6TGVSVWZr4q2I4+Xbaq1cX2bUEEmNMsllUW6inqyaMUJoU2AzMDtRdxy0UocsU0LA8iR2FLbTRX3llsf+ZQD/AFpDXUy10CuMySnS4PY0btKJnrDHGIdtfU0KsT3vLFOLNrp9NqNEt3yd9lWIZdQdxXdoBd45G8PbsUY2PQ0EyK1u3yP93HZTzIVhS+tl4BrW1vBLKEkB4Gxp1ZXkeqdK8gJIyoVlvoN61qfBLPYU8YlQhRcbmiTjyNhUrz5OLiKEv1A1vWPQl03bRVBjwlAOVtKXa7HZaNVFyxyYsoYENGdKJNWQFn/UlccCym6ahqVa8eSullVwC0PtuQL6dK1WlFClsjlEhJAFgaamimmaqpZI8Zja99PWnJyQexpLDYGVfEC/Q0K4JUpZE+RPE3F9gaaqot9f102eLhySVHqaBnv55qotQl7pe/etO0v1XJdBmyxgaH71ls0zzNX2NI52NPFdrBxpaplm6sTbNs//17HTJjvYm3av0tNM8/Wysw8bLygvB0DKep3ob518op9fKqXkazRnVlsKFJjbcci/ZiIsNj3o+zJXdpcnWxglmGg30rO8k99WxTBXIGvKhbPL1s7WJcp5YZCx003FbCaE7V/B2Of3Ud7kW0F6ylIM9bJc2KsYq0RsfLp9a27gqd4qx0DtyI5ciO9KgTjXmWVtHK6EkfS9CmkyxQzMnZA9nFvptVNUzVRrkTeAnxOh3oufkByuWaGBmJjNZnAUa1Nrm7/ApWtZm7FNJJxaMrLG24BqG1UvP8svzrWsN8AZGMljyUqCdjRZ6P4HXbjggycZFiYobfeqaXbfIi02TkxHy8nGclG2O9V/XWy5JbZJJtlkOfkSgF2FjralfTVeAsMazIR+SMElpF8K15JqT1sPUdrwheRmYeQNd+wqWis7fo+vrg8co+RPtwmLjbxtVqlM8fbRtClIhPKNtulMfPkRlV2fITSSykMCb32pMfB6VKVopCdWKnkuu162vAnS3Y5i5PtPxPmNrUV6SpFqZgZNKC/IHgO1ZVcQLtTq5HLH7kfgbnpQtwye1u3BJMZY3/G9NrDD6IAOZVIIVWB2oogju05OH3Y5FYiw9K3hgtqUzrSRXPJrk9KyGJ62taEJu4BKtdD0oj0aVWdGOigdodADehdlJI9U6no4poCCynj6VzaYuuijg04mb27hjbtU9lyUJ8B85uHjtbShhSIaVjuP8hOkiqSb9qHTFNMqyyVYNlZ2dTca26V5dqdT0c6K1mZ0s0ySniTqdqupVOojWiqyqJhNESBZhvek3XWwPb+WJfHZr67fanK8EvdIkliZT1+9PrYi0tySkIW13pnJMk5G+3G7jt1FC7NBaaQxcuMYZOQJ4ntXK8k97y5PfsmPRhyVt61ZyFlk2/8AIyMxTBhbQ9K5yj1K/wD51a+RXGOAPYXU1suxHXtdslmkjbYA06qgrpj1UsKP2vEGwJ6Ghcku2lr2S+CbJ+OSdjpftairpBP3iwjHgGNLxY2t0NMduyLML2syxlgmUhrG/QUvlFbcIlbE9o3iOnamK0+RVLOz5OF53I46HqK7gs61Xk8XdZP8kdvWujgl3tzww54o54dACf61icMxV4MVpZsKflfxHSnQmZTNu3BXH8lHKeINuXQ0LoXVw68BPD7hurA3rk4O0uqnlMsQt2713DE/7GxiZquqcwAalvnBVe3CSLYrNNxGt6Xbwedtp1tBYVljZuX49KRKaNou1mGQ7HbQ9KUmetxVE8mKg1ZdDvT63ILaNvgkyMLHA5Rvx/8AU06mj+SbbSzFfruo5o3jaj7IDvwOhjEw8T52sQaC1oF1vLMrLWTHybtfSqKNWRtMv64HL8gssZA0Yd6z64ZRpnxyHDJHJCwB8x3oWnJEpsoJjJLy3IK6WpiqinDOua7fJdiZMoNgugGt6TeiFtq1i2LPhDWa6/6Um2TK88mhskmO9grDie9KrKL1k1EikCRPcNcGm+UR66O1oKlCSEdqU5QFrdQZcSOxHG162ujJb3bEovtxtY6XpjcsykurHY+S6sAra9qXfNMfWqRYuXMxs2/ap3lVCLVTsBLk2PkhI6mirn+GY8ueBcpx5AD+JttR17IodXVHv1YXS176bV32NMRps2oJfaEL6HRe1N7diNNtiZlWUgk60SfUDR9eQhi4siHSzjqKH7LJivtsxuNAiEqGuNtay12yzG78BthqW5lrCs+0c9uvKFzYQZLRsL9O9bXXnkjl3fJng58E4spYetU/w0VVVEzVx8maSIhhxYVLeiTH0Ssjhy54nUsCVPUV311shrzVYHvkQSgk+R60tUaE6UbcImabjy18O1O6jaZdathoA0F1t60LcWCpzQCOf9ZiTcg1t6dkUYUfJWcxWQMH07VOsoYzTPhcDUdnQ8dRS7KGFlVQZ+Qs4arKNQC61RLLyJHNbEdadX9CGpfBOzuNwD2o4QxVgpiaOaLQWYd6VZNMfT/UAK6t/wCBRcMCYDOVKunC1Z0Qh5ps4cxW30rlmdfOATLCXsD9qJJkuqaZyRghGpUd65KRTq2wXynHUOprVRDVjLFxzLISL/8A8TROsFFUqIbpGpIvah8kWlnYXI+zKeQ7GiSN6Qjr8CoflwPUCh5Jd7t+A4HDSso89KCxL/7wOM0cB/yC1ulZ1dvBVXO1vB2TKxpgFDCx6GurRopvi6pSDFEUcNG5Nu21bZyuTM7S+S4s7/n+XakQkX8eQZViQAtER0vW1l+GK9i9vhk0zYMikcN9L0yquvkhdL/kzciP2JA6HwvprVNXKKcMnaxLLOsjWsCelEuD2s/X6hR4ckpuB9qF2gdf2K1Q44ssY2+1arJnl7b9g0BbjySsYqrXAxfjibldL66mheoWnsKqhH//0PopokWQKVLa1+gVs2jyer7JCHSNGvxIUmmJtotpVyC4VQdAVPetXJm9oTR0NDxFwNetZDIbNtBrFGyNxa/pQuzA7OGZeVG8b8gDYd6cmmRX45PTrHLDyBIa21BazQje/wDMg4+HH+sOVw29bW7gL17voA8EkbJwJ1o3dRyM0uklJVGrAG5PMamg8m5J24QyLNyeXF1PHa9E8q/B62WVaL9nJoY5rcSQe1crdfIj2L9eWI9lY0Iawt/NcrOx59Xa5LIY+TIw8GH5U+qPVyy6Jt/KND4eSJIlIluAb2BtbtU202+CWvsXvwfSRZsc+NxkXkLb7mvK0ydLSj1fR9f7DBypJopCI9UPQmvVzSsuSi2CXkxs33W52sGOw3qqqR5m+as2vgjxPnDC5jyR5KdCBRWx/Az1fTbcVLcnI/cAaEHhUTs56n2vq+rTCna3kYuJIISSPoRRVhMVt7PdMTDPLG/Fr8TuDVLqmjyPNhizR+4RcAHXWghtDo6GikCPAGQ69xU7tFjlo3WRMiNx3P3ok+RtFxJA5ZJQB/NULlAOsPka0qhCSOTDrWJQA6u/jwRjOlVhxDAdzRuqYVcVRSzQR5pU1ILdKXCRJter4RK87QzgSrv1FNiVwedv/LhfJemUsqcCBxte53pLpDkKuULnyStBGSONuVqZ2Y6k1UsfHiEpY66UDuTb+1xAcKS491J8DQtqxHW8op5TR2sOSt6UuEzrQy6FOcd2TQ9qRa0PhleNpUJkc6tETYsqk6U6rkqrnCF5IkZA6bjc1tHDhlfRQmOxM2Vb3ck22tU2+SZ6WNFD4LPdTKUNcq460Nauh5vsWUjMS6kjlc3rteSOmnkoddfXtS6sXd8wSzSOD5KLW3p1aomtRTJI0aubg8T607tBO31AF0YAkW71jckelygzwiMhtR3pao25G5Y2uRTGB0uj/aqayj18cXWstE6StE/48l70x1kTzax55wDa4t2NcqltcelQrYxW+nI7WNZ/RDte1+F4EN7bNY2FtjReEJu+iAeb2fxYt6VyrPkVjg7uWKyD+xdghB70yvB7lMq0UiYJpIH4ugKE73orKSO9psVCeEnRSQdaXDKc8mjjSAKGC29a1IVdcTIxSmVHa9moX/LFZr5fkmfHaB7cuV+lMVpRRWbOCWVVkJEqD6mjQy0V4QqT4iJ+DISp/pXdw37Dqk2Kkx8jFbfmBRJpk22ndl+LmxSjjMtjb60u1WvBtU5hFCNHy8LAdL0LDs3XyG2UyOvA3YdqHpJHbJ3upLl+RnEg9zyU23pH1KOD13lVOEaUWfGGF/xNTfS4Ee5aOEaA9lgDuGqZyjz72aQvJw8bhyKi1HnraYF9rNcGcceIclRgv1qpXfyZWfDMvLL40vO9wDutVUiyK6YxycyfayYhIjnlbYiupNXBW6cTBnHHNuQY3Han9iT7JERtIshsW1O1q1pA0iss0EAZTy8W9d6Uxdr9nCASSdJL25IN61pBY1Sc/JZyjkUELr1vSXwetlT5Y1dBcrYDTehgZrf4RxcxVexF0PWidJR5+lenLNCCSAi6Pv0Jqe6fyQWtZ+S1fOPyXkD/AHb0h8MLBduTOmhljY8CCh6Gqa2T8ldaJeSfnMj6EXvtTITF2SbgdF8lIsgEqjTrQ2xUcC3RJ8FwyUkXxIJNTdGmNrnxLOSQco7kWPcVtbcnWtK4JY52ja1rinOkkdlydkyrOw0KkViz4Mtl1kRkWki5JcEdqOvDEdJRFDlTIxBOl96a80zMs0UjIvICpPKhdeCuy6mjDJ7kdmNjUtlD4JXbtwgWbg4uPvRJShtaxyeeJpxZH8htWKyr5BaTtAiNcuKaz6jrTW6tcFdLVT4LDJyWzWFtbGk9YHdZZIxhMllJBO4FN5gflm05Yp8Y3ItdSKJXCtabQQmTJxvFeRW/2pvFijPFRDCbJy+o5A9e1CqopvWlalWPN4jmCb9qG1SR37cLwVRZLxk2Y8SdqnvTsPpSE2UO/uR3FvrQVUMReskEzsp01P0qqov6wP8AHMgLCzit5TNXgWqMpPFvtaibkOrGh2J10NDAm7TYZL6cluNr0PBijyDJje4LjSiV4BvolySyxvG1yBbvTauSO7lydMj8LEclrIRVlkmiVi5B4nSmFCqqqWHjs4NnF+xFZb9HmvTtbgojfUXIKnQg0DQDaqpK0WAKRprtSW2yZ2tbgRLEGDKQPQ0dXAaUJoyMiXIw5w6XI9Keqq3kCmHa0sqbOM68mjuT/urFnB7TyVVweDObcUA+ldCItLJvyNgmyklK7qdaG1atG1VUzTjygIgZAQR23qZ588DobrKHNkwTxkLyuB1FL6urH5YPyzDyF9uX/GSxPQ1dVyhbzbtHwLAke4kUACtLq9aqENWODQ8NR6UPIjfdpeS2GURWsoPpSr1k8fbR24k0w0U4/wCOzWqVp1+Tn5hMSMfzsulH9nAt6Ko+PFBYcwb96U9fwLW024P/0fpMmZGmBV9DX32dX1E3x63lk0l0bQ8gT1p1eQrr4PELIh5bGu8Emt/hC1xlK2TWtekeSO2sIZHAY/7iPSgd5EfZPAGUgdT1YVyYnYzJ5Y1tGdDtetumyDdNwiiPJiV+IIIA3onRwV9HXgoaaB2BB/AdKR1s2TuttL/4DxpElvxUFu5prr1PT9XPr5PSCUnja1qJNIr0aoufJyT8FuBdd6Fcsgc3c/gTCkUhYOQAT96ZLXgbhw2cyMCAxkq19DvWrVlG+zVeTMXHyMX8ELKwuCKarJoZ/wDJ9f7XH5BxflPk4pCG8I+gFBpjW59fllnjWF5NCWcyKGVdbbmszrB53tQRHJZW4yp68hVHX8HirObcE80ODPJyMZ5dzWy0j1/WytRyaEMft49kUAHYCpHHY9V6O9PISS5Aj8lJG162yUi6KvUhyYmMnInTtT624gUqpOREhjCa3NHUXpNh2JnSxgIgJHS9L0onyPzyUJMuGXM+hFIVEOtSqEZYkk/AWYUzNwBbNTLIoCysQ6m99+lPakQ9I8FbNCRbQ0NUyL2LsZjxsJAL8RWWfBJTSLDpcQSEWPK3U0CvB5+uve4Ixk9wAnXr2ou/BXbV1gsTBjsGX7kUl6sRb2HZk0weKUBSSCaNNNCNfPIXPJ/FRyvrciuipqzq3AiTPzIdJvwNGs6vwPvlVV4K/jvl4EuOZYdqTtg2O9T17MvkzsTIi3sfUVNXO1Wek/XaqSl+SlYvvTX55Kc8+tZsNxUjJ8vy60vRM57NIYYvba4OlErSjy9L8jUcDXnqO1C0Jqm3wMaVnAIOtqBVgfpVJAyJI6i1vWiq0ie8cGZlSPGx5aG+9VUUkmlJZJPmPvuvpR1zQC9fsz2NkrKeJY2OljW2rB6eVVmipYRF+IBU73pfaQNNG+CeV35W0tvTEh2HrpcsU8cbgFR59aKraGb3b4JfZlDG5sKZKJuyqjklvauL8r71i5JFV6csWBmSJodPSi4R6WazpUckWXGoMhuh1tQymLetbcInnmCNcqQP5o0hbzjkrgyYTDyGvqBtS3VyNom1Id0kQcG5HoKzwBdcQTpl+xMVc2PajdZQGeLdoRV78OQ2luQ2paTRbouhxoFkBVhZu9b2gitcDiI/Hle2gFbMgNuz5OTKjEBhauQVvJE2IxJaI/Smdin11HL8iJWmikXkdt6JD717WUAfvukgOoXvXdTL5JOTVSUySAi7EjekRCKdrKrKTLJG4DG4tQqqZ5XtWlwaeLnIOKO+lqn0y+UL6ttJFByIzGwRzSerkupj/PJnSHk5PNiapXCMzz58C3KspABNqJKA9QI/11WzEhqJyT2vZVB0jN4zcVvnyRVq35JsmRAvIkgjtRpMzSjt4OY2bHJ4hAT3O9c6NBZZteQZpJAbAH/xW1RfXBVXI6KZuIJAFqC1eS5RWpdjmKUWJBFKumhFbxyKycQKDxbxPSipcg9jQSOMR8Qbjc0zyKSdnA/F+Wmgbi0hMZ/tNK0wVvg9DLBVXgufNikF1G9Irm0MvjBI2UOX429aeqEix5EzZSsb8b376UdanWy+R0WVIsRKqAO9BaikZ1Tr5K8bOn9sE+S9aTfJSBSlWgJXLPyIHH0o6qESuqVpBljRkul/vXVfIOjbUsmEkkYspN/WmQmL68QIkkmZ72+1qNJIJZ1qOjDupstmA0oHAp27MXFlSRErICD6midE/A3HKeEOk+WPEBTcj+2gWKH7evCGw/KyGQOFCaW0obYKBOeK7SWftvILixt1pX1pDfrUnSVlI8xe2oND4LY6LwE2NGvlt6isV2ZSzvbggyGmjm8CWU/6U2rTqX5+uu/JI8szE6MwJplUh96oFpJ0UK62jNHVJk27SR2HJEdwrXB6Vt6yJxyb8lsWbEygOCDU7zcjtJS4K4p0K+DH6Cl3q5F0q45OTIHTU+VdRwzL+CX2uB0Bv0NP7SLqxiKxJN7W7ULFu6lhGOQ2It6mslCnZIYsL8NQD3FC7KQu6gCSLioYHTqKKtpF2fAp15qQR96NOAEgIcbkCpbToK61ivPTrUCTFMJIC3Boq3kl30b4J4ncSWJ0vRtENYqyh4VYHT1FqX2A2v8AA2FHCqCBYfzQtoyt0kigpHwva5Hely5OU2J8nEMsdwqm9NpeGWZpJSS/osiXZLj60z7ExtdnbhGfk+9A5ZPFOwN6dWGG80uQovlVMdypLdzWPMVXF2UyaOPky5EQWIBT671Peqq+T0ss61qpOgZcUl2YkdbVnDQ7tWYR10aY8kUcx/NbVwT6NIZFhrIPK4bqDWW0gmt7MByYbqttu1YtEyLXaRZVUYF9AOtc3+CPXR/BoY8sZAKMbUi1X8jsE1/TOSZiQyCx+prlk7CdM7WsEvycImUknifWsfruB2frvuj/0tH3X0ttX6Qqo3dyWKnuqGDAm2oFJnqI10QAxGD9SD3onqoPM29hIckUsZPAaUh3VvJ5/ftYFpgHKsLsDRqnHA50jgIp750BSgd1QRroqsiyPj053Yajoa7LV2ckWU6Xkzsn21ZgFsRVyk9G9XzIGDKCzKdL9KxqBeT6ybOAg91SttKnvbgZ695ui3JiR92APpSa2aHb2drQiGbHks3AcvrVNbIZCSgz5TPBIGMdwe3eqKpNeR+eaXhgZOW7wkIhRiLA9K2tFJRb1068uReHHnsVMrmRdgo2FDqq/B63pWzyooRpJhQBry316W2pXdxwT6+1a1+PB7IhMP8Ax6rW0tPkXvMckU0JlHJTY22pytAXr5r/AGYiKBltyYEHcNRWsOz07NJDvwWysfoKn8s9hKKAxyTopTncHZa26XkHKiaFSQySHUEfSmUYvfStUeXE4ni5v6Xo3YhWjtaAJAE/u4W2oZL86M97rSKOLcSNzQRyPaSUsepIQNcMwrUuYJtL9lJwxyzKfAWo5SI5rVNzyJbGhCA/i19Rej7M832fYtZDknjhkW7XFv60Lq2IatP/AIKcSeGVzY/YUq1WibBNWbZRLBGGDDagVmFro3aTkSlCbFwhrW5GYL5Yqd3DC6kr3NakT+x5kfjuHfip3G1DZQM9ev8AUsHLwJXQgry0raaosbTMtMOaGb8OPS5qh3TRVjdJwXobm35MP4qdo9GSkXXUaX3ApSQNrTyEskiMCDoelb1TRFrZNjzmoykMnlQfVHyJeTt8k/7DMSApW/amdRyzWdR4n48SFOm5NB1FOrvZCpM5uVlIv2oq5oK2CXkTkSNKDoCaZSsE9805Mx48gG4i5D0qhNBZ0r+Sc5M8TX4FSD2ouqZjomyyP5AyWuGJO9LecFFMVMlHAOeRuBbalzCKO024I51mU2UEr0NOq0xOiS8iHyJ1WxA/80SqiW1EwImD6SHcVrRuf8qEGjpEt1l6241jUiX2txA1ctXDb0PUqrl1qzziB47deorVKYm0tE6wmF7B+IP9popkoo44gD9maMkKAbda1pG54dnyKyFlyhyI4sP7qFOD1K50op+SKTGyk8lbyHUGmponvdWORfOZ0B4zC6jrWOiZL/zVblFa/O40lrtZuxoegOnq2RSMyOaxWRW9KzrBzzj4CjlEbm+o7Cua4Dzq3YKVIpbMBasTaKIhyZ8yJDJZ9UJ0picoh9m7+DRSVBYx6CwpcA6Nt8lEkiTKPLyA6d6BKDfrl/8AgQkeVyDKSw2NE2hudqrk0Y0yoxy4nXqanbqyzvW/C8AS5DiS7XLXtYbUVa8HXol4CDM7G5CL1rohEW2latsqjwsc6k3J1uaVbVnka+za7hHZMaLj4gA961XZRSYM3Jx7aa69aorYfZda8kKYxEwKfemO3ArBzdNlbw+5o2p7Clpwena8s8uHNrwG9d2RmuyXAyL3IWu6XFY4ZMry+GHmZ8Ai5KOBG43oaUcjH6lrVkzX+SDWNifpTesFfr+nEMQuWDJoh16mijga85tHwUHJz7WAHC3SlqqY/SudFye/WzpU5IxBNa7JOBFbZqssBcfLjI9xjfpejlEFt63tCXAwPloOJe4O1qyEx1+tawVYU+YvJC117UvSqE4dOT0zzpdlJ+lbVJi9aqB+PkyOAGaxFDaqJeGzs5Zrm4VgdzWLgzaKqQvcUR3LajcisgksnZEz5sYXkj+Q3o60KsPVar2aBMks8fMIGPethJwehhlVVkmyYZSoZrA+lHVge1oohHIshoypI5ehrXWROdfBbDkOz+JKr2G1KtXgrzolYrBlDA2uDvSoUA7XUlkIfjqxUH+Kn0fJV60RIZQCxPkD1NAmUSyeX2vcHAgn/bTqTArRNNSLkxfcsCP5o63gnvdNpEwwGjl1Ipn2SjnvzBQsItY6mgbB7yw439slQKGykdVSNMjWuP60CRmkQeDg6Ecm/pRQIsDDPdyvCwrbV48klmqTL5LYpFUjiv15Um1Z8k1U72R58hS44gC+4FZWnBd9XUH81ZbWPai8AJTJKU3BQ3psnUOAujbbVvDBsxrFpBqKBcCtGlyTNhRmTlc3ovtZ5d927cHZIpV/AXG1cmvkY48sWXkQX29DRwmaqyh8MiutjsaCygrxrCOm8YsJBbteu8jYduIFCzkgm/pei8FWVVVCcjARl0X+aOugGunBmtge23kvie1PV5F56fCHYxRCeDWI2vQX5LMOz8mhzeRA17kb2qdKGUXaS/Z7yPnE1nG60X6Z5u15DTPkVgJFt/7ULyXwSOiHS/JRxoWY8gKBYti9MLNcCZc7ByOJWwPUUVcrVFaYWUBQTxI/G9h2tXWq2h2dXMDJkjkF76VlW0UKvJnyIqOLbXqhOSmlWuT/09qNI0kHLYbiv0RttHnaat2HpNjRm8Y1O4tS3Wz8iLdvLOZGWOFy4XsKGuX6I75N/BMuepP5j1F6d9MfA7L14+ORySY+RryAYUnRuhN7W3UYWSIW5a1PWtrv9Hm0ztq/0Kdg5JLbVXSvXwetlkq8Iz85A6EhNtSafTgPSkIykcBSRoQaOCGqcSaHx/yBTVhoNzQvKSv1c/n5NJM+JzeMXNKeLXkuzwcyyfJz3U3vxF9qbTJFK9VJSTyZLOmj8lPpRqkBXzSUj4FEkPkvP1NBZwyet+yPES458G03tXcW8lirKj4DTJlkXzHW96x0S8B5Zr4OTTnYak9KytR2mfZkcj5PIhY9e52pqgo+utVEk0cswcLKoN6LSI4D9TJSoHM1rhR96TU9HRSci2uFN+9FEsTpp1qWJ5xcbgH1Fc+GeQ33YhhxkBO9a3wU407WCbCOQfLbpSaWjk9DbetP5Xk6mHGl1I0703seff2GNEEag+1qfWsn8idLvryGYZSvLQaa2FZ2RP3RFPEChJW5GulOqySGyKUwlANQwpqkZar6yKxJvayQC1gay6kgd+tjdhkQPuWHepbJsVezteClpwmhF1oFWStZwgG9mY6vYDpXcr4I7z28COMUMl0Pj3FM5a5KKyuWaMLRyRf8hv61NeU/Bb6tHd+DJzkcyXFyL1VlaUeo8lnywsdorDlZW6110xSu7MoMyKm19aUqyxt6vqKkyOS2tr0FGqwDXGEI5ZJIsLDrR8BvrRS/I0++UNjr/FYoJ9GmpY/FMzr56rtS9El4MwtXyLy4OJuhsKLK0h+w4AjDMpGn1o2S1aEzR5UJDBvE9KKrTNivknlhlkBN7X60xNI5KolElha/uafSicM3un4RbDNIVubuO+1ItUqySSk9MzW0/iiqifWsks8DyjxGtulHW0GXhKCF0yIWuVJpqaYtJNge4rHVCW3+9dBRTP8AYJeaxCi3pWh2qkuT3uTgW46713ANc1bgGadnsTHdh2rKotvmklyDHIL6hh3WuZ2al8DlmVgeCN9KGBll+WKMtj4qVPUUaRHep4qsxAkUMp9K4Ve6p4GH/wCuYsy8kPGh+yAK+7aSOb4GSE3jdvtRK6Y5e128nI48iKXjJIVB71r8FC1U8IuixZ2/CXkKBuDntWYgnn/YicxzDmveiUNHle3ZO0LgrhFnBB8CNqxgW1/o0Uhi4BlvSm2GtH1kMERjxcqe1Z5OpV2+CrFzQ49tzc+tI0z+UejlTqoKWigmUWAUilptCttGvJLJj+3fW9+9OVpPJ1u7uBMORaUhjpsBROomihmhzRgoA33PpSYZ6Co+BOZICpsQO1Hmjts55Zm+4wIJ0UmnwBjTrz8lEUgJ8Ft3NA0Ofnk5k54hub69qytJG19S13PwQT5c8wupJBo0oPRz9alFLPR4MrxEtYA6+tb2hnW9irUI7HglDqdu+lb2kTb2YQ+PB5DzjG+9Da5Pjt8yMkh9rS/H0NZVybtd2Z1JX4lI9WGlc1+RekKsMKCR2PDIWusvwSZQnCCyIYlPgR9KGjfyH7LbcAI915BdRvaiaG4VisjEX3orIPL1oXwxN7SoZKkeQk9mUb6GmNpon71ViuePmLNv3FLqzdX2cETjiSHvx9aah2VBLNCEsmpolJTarVOR2PM0Zsy+BobKQqfhHJ8mAqRfX1rq1Yq2FmQvmotvEG3WmKoz/naQ/HzwHFyFB60NqHKvJanyAXTmWFLeYt4u1oKl+SlAt/b61M802ewsK0qaGPIJQvJtO1Ta16pmZubKCXLjWOW8d7d6fg5ryK9ltOWeglYkDnqe9MuiLNS/ByWQhtT13rqozVQOheJgNRcUF00Zim2ek9sa2uaxSWdXBwWYWC77VvgWxTRz8tuK0aaAtateSecSKLq1iOt6ZWDztVPLKMLLmkIElyNr0vSiS4HeqqpyVSIQwMYpVXxyN3tzyGguPLQnrWMXW3BwqyfieQ9a2ZE2YRjMo0FqyYBlCHjlS/ltRppk2tpJlypBIA+tF9aIq0UjzkNewBI7UPQe8+QJBLIOISx70ahFDrWqhsUsU6MA19aJtMdm0OWDl+SBut6B2H/ZHyNGJEVvax9DQ/YwHs4O8VjUglj9ayZEqbsjyCjGwUk06pUsoJ1U8rMAPQ0bZRnx4HJwH93H6aihZ17uAih5AobnvXSQaW5OlebBJVt61kx4AbVRsWAhBB1B6b0FtQP+gnn+NWN/EbGiW0k2mzGiKNHUsbX6mu7Nj6WbagoVF5EA3U9aW2W04YMmN5WPkK2tzdtIcH//1PpTj4/Pya/0r73vY8J3s7cCcl0iHgNDTKJvyN0zcSxUqRTw+QAI2NHVurG1XWkicf42NrlbEiu09mPJ5+nutJnZFkh2ise9T1/ty2eUk9HLY+Jkkj5NuKZEeD0/XrK4EuRHLvcHU05KUXKkMGWJHJs5FxtWd2ib2dYMyTDijUE9TrRUu2efm7MmLRwyfl4HpVdU4PawydV4KsbIVW8W8aC1Sqijya8MGNkw3VrvbWpLWtVhfa7cEsuC1ig36U5aIXe8/wAkEK5UUvAFrdqdaGgsFVOCz3/Eqy+YO1K6ll6yoQIygPzsK51H44whv6wyByjkIbfSg7dfId9EnEHGWVRqCzDrWpoBLuydjdhzFvWu8noUSopLIsF2UMgBU9aU7peRGnsoa2GiqQbAjtW10Ib6PRx8GTlyy4zkprT00+C/D1eOz8HMWTKkcScbg9xXXqogL7KVfBpoJmHLjb0pPC4I9NV5KP1y6AnQHcCg7wxFdF5Ftjoja3FGrShGujbOpLLExFiyHaudUwK15Jcl31ISynemUSG/UqKZJ3hjdbrv1FH2ZFtd24MzMitIG429aYmR68MfizT8fFtL9axpB5JeWbWNOjxWYAtU16uSik6cIy85/bnJ1436VRmpRUvX6OSd8uXgQp07mmKiGfQn58h4fyEqkX1AO5pemaZ6fr5rOkm4ssOVBcAcxUnV0YjRu/JMuNKGHiLdTTnZCa3VSn2ICtma59KT2aKa2tYhyQIJAVuV603O3ZFFqOUK/ZvIBysD02pirwS6V/oMyWN7k/1rkhOh6HKWN7NIbdqHSsod6uTnwMyMkMNGuDQ51gZ7NCRcqSFrheS091TIa5dnA1s6RlFkv9aBZodrlVJKTkeTKGIdRxPSidESqqXg7yQghbcugrDK0fyHHPIoKvYCsdUVUoog5KolF1fy7VlXAbUfBMy5C3N+J7im8EV2rMF/clXy3HU1y4HpVSJjFIjWIHEijmTuyQZjSwI0NdIm13ZnhCxJNwQNKxsqyarydaNQLhReuTM0s7MJMdXuW8fQCsbG006oL9UREN0ru0k9tm2FJjQuSbAadKxWaMVn2M7JgkjIZTp2FNq5E6sHGzZUNgpPcGudQssl4KWz25AMCAelD1KXgphASyxSNd10FakzN/48DoCkR5xHTe1ZbnyRW0fllsow8uMll4t3pH9VINbWbbEw4UF7dOhovsYvPazYZIx0IU8l9a3yejWjdeQ2ZJowygAjrQ8pnpZZ9aSw8aAuvIEEj+ay7gCu/wAlaLMtuMZ03NLbX5JN9V8sYyRNGWckt2oU3PBNnNlwZkyoswK7drVRWWjFR9x62OvPj/QUDPVp/gVkyRKlvyPcVtfI76bWMt5SH1fxqhIRqlT4Hw5FmFm070LqKzpzLND9XGyIzxN3I3qXs6s9bu4gnbBdAVB30FNV0KvrKgREkkcxUkn60x8ol01VXBdHNEoIZLtS3Vnm7XtbhFiS3XQBRfpSXUpxolUOXAXJS5by3FCtOrH/AGJIzpoJ4dQCSKorZMju+7FM5kN28SKNKChVVORpx5GAK6jvQ9kL01TcjceJVJB3NBewpauzhC51nifnFsDtRVaa5O0SqpGxvlSgMUuKBqqIclW1pkDITJIvxK0VWj1aUqlLEfpTyL5EkHuKJ3SKcLVIcn4mVGDLytvpTKaID2vZUwMxYZwLMrEHvXWaAw0QU3x4lBsmtCrnoVsqqWRP8QwGjWO9qarkWns9nAj9bIQ2K37GilBVuhsKZnI+NhQWaKsOils1cSMvGA4POkWUOTNPZ78Itx45I5hc2S24qfbmpV67SsVsiSI1rtruaGn8wQexp2bInjeM3AsB1p6aZ1V0rL8h2aSPx3rvDJ7f15AgSe5B071t4G53rRGiuNEY/wDITe3SpezT4Dts2uAFCwnw1X1pj/ollvyOktIN7elBXgzQjyIbfiL06tifQRDZHBI07UduUbh5kuEhYWHkOwpHWBun7CjmKGxW1ZasiqqQy4bY69BWJQDpwoDiZtjvQ2ROn8HpFLgjQHtXJwLtBmTqUfz+1UV58E/WXwGD7o8Tr0rvBVVL5PMckjQ2I0rl1CitmcMs5Ue4Nutaqr4KWqpcBqzixB0PesaF2ZSjqV8VW/elNAPk86kgEqfqKxMtxooJp8diwNvoabSw29lIC4hfRr66Cid4BWySk8sP67BXF1O1c7dvBDps7MePacaWHHUWpfKE1TbFyXKnUkjrRI7Q5BkzqbLqOtZaifkRWq+Rk+WC9iu+9ZXIO2E2FkxSKOQ66GjhosrXqgo7xtpYrWPkNP5LUMclg1lPc0i0rwR7a8n/1foY1VZLFuK+tff2bg8HvDLpMGDIhHFgTbrU9drVfJRfR9VJPDgIEKMbEdKO+78kb9ltQQSCWByFe2u1bxfyjyrLsxwkaQeTbDat6peEPVU3COQAxy8bXRtdKZbwW52VDQbAhmi0bgamfsOr8SFp7EVJZ8FY0HIhhtcb1tNndnnu1tGZeRHoyi4TpXoZ8Hp+viqKX5JJfjcWbHYvfkv921OWjTPQrrbo4EwfGmMgobodCa16iF7UvkqxP2YJCsYLX2oLw1yUevEuSuT3HYO3i4GgpdYQWjTtwKZ5BKC4uo60aSgGtUrSG6Y8imwCt1vQJtMtc1rLHx4ETxty4k9KXbVpm13bTSJWklxpNEBXvTWlZDccpctgPkSs17gXoUkehXKtVIawrKlmF29a1OGTezvChDMOd41MYa9j+NZpVPk8/FdvIySe7a2UmlxCPRxw5CbBMyErxN9jQZ3h8jfc9hJdEQCPJgchmPEdqslWPItdVRpYkqkceWttjU+lSTv2ZUsZUDle3cUluR3eFCOyRIy3Xyrq2aFWbF+yHA7ii7QHW0IM4avGeQtQ/bDBe3ZGPmfHzY0geNroasz1VkItZTJn5y5HEkDkNxpTqwKtnWzM+LIljuHS1M6oLOifCKcfIkEtgTY9Ky1eD1sM60LZP88RDLqKUuGPamTOcFG/HanrkGILMVopoeDKARSrynIWdpUSFCs0D3jb7Vloa5OraXA85jCW0pI9BtQdFHB31zeEMj+Q1AC3W9KtnJdnj18j54Pfjup1trSsrQxu9lWpnT4RQgsCbdRVtbyeXfQC7KujG1adWs8sZFDHJupJHWgs2V/b0qVfrJGB0FCrEV9XdksiMCeOqmmJjK1VVycEa3uSA3atkj11drQjtuenToetZ4NokhVvak01+tF5Rqm1ihSJrg6HpS3wVppSEI2jGov610yI792JZZ/cuR40aagU+tXCOoUNgyWPrXMGWgnhjkWykK1Cm0FVTyyEc4JSH1HSneULXNuCmOXnYIg170DRQlHlnWimOwtWJo5up6NiAQ29cxdf6PFwRZ72710BxC4BS2oVjrWsxfyufIOTFop5VtWA69mjNnxpPc5AG3pTFYqzqkwWxOR5HkPWuTKL7KeBciSRa35L1vRIg3vPJRjyxizBfrQWPN0u2WxGBmKs1r7W2pVpXgn0u0+qAbIiglKMTYUSq2inD17J8lUc2LMAFIuRqDQtNHow6rkrx8WMxkA+PYUq1+Tq7NqBAGRjyH2mIF6ZxZcioS8lUeXO9w7EHtsKU6JEzrW1jqZRiazgEVzpI6mfwiD5HPhtaP8AL0o81B6eH/zXEsyxmzuRvxprRdTKtSmJmP5Hip+5rOovfZUQU2FgvHqzX70SszyL63iRaYUSjRzw6WrXYbho38FWK7xtaMFl9aVdSWK35LQHkG1mHel+BdrIjyveV9RoOop1Igi0qnaSSSdrXT8gdQaYkY8uJZdg5RYWfQ+lJvQ56KIRs407KOhXuakvSQKcg5C8ifIa6gVtGHaqqTPhB1PjY23pq0gTbTiBERmReN78elG4YivK5CDsHDEgGsgNRXkvVC6MDZrjS1Tt8kul+9oXgzUkmhkKlmA9BVHVNDPXzVUXCT3YSvMlraaUlqGelTPsogjYzQyf5eRXoelOUNcDbNVUIJ8hGRhfXpesVDzdaNyLSQMB5EW7UTRRhTqpLv1y0XJOtI7w+SlX7GXPFIjkte21VVsmhPEyhLra5BJHrRIJVk5HJIq6roetc0g6pNHhJMslwLr2rGk0UZ0VXJoY8weJuhFTXr/SK6cUb+RuPkDRTvvrW3oeck2yxWiyIipWxpLTqzbeCNseWNj7Zt2FO7pg0j5ADShjzJFFCgHhsohyGVrcCV70q1JGPjyykIG/E260EwIveAmiCAFjcdaxWkTe7jg5Iy28dVI3raoXar+ScKjA3NhTJZtP5QxFC7WtQtg9nZnbnXTlWDoVUdvHp4hW9azkk0s2wkmc6WuOhrHVGVqkv2eeThqQPXWu6yJ1nwgchIpx4gX6VtG6jOkGcwlhe4AFutUKGHnSWLfIyOZ1olRFqyrU6MprWkXXvXdPwJ0XHBVDNHMlhow6Uq1WhVVxyeRjGx1sPWtakLOssrimJNtAD16Ui1T0apLgIwsw3JBru0E2miSB4e0tmJI6VsyQ3s7cI67xyKFcbbGsSa8HOvwiYRNy/wAZFN7fkZRqvkCT3I3AbvqBWqGJtyyd55I8jT8W6Uaomgq4ruFJJG7Bide1ck0UXXPB4uFTuNxetg3rwNXIjCgsBb0oHVidW2uCiNsaUXuT26Ul9kSOzP/Wd+9kEm/Tav0360eZbOstmr8fnsVCubEaXqTXL8E/bs+A8nNeJtToaGuSaE7ZdUJfIjmU6+Vcs3Uj+uCfnIuu4psKBqSpWS+CW5W6gVNZSJT7WHvksja6r2FD9cjL15Djmw5YiC/A9qzper/Jb6eFuswRZEMQ1SQNrpVVbP5Q3WUg8fDD+LWsR1oNNoEv2UuESv8AG5ELMi34k3ApldqtC87Kqc+RkKTggLcN1JrrNFObTakY0b+5dwT6isVlHBVK7QhLwMZQDyCdaNX4GOyrY7P8bxBZBz660NNvyUW0d3+ESXycdgz8ih6DamuLIpxS8ofxjmUkBjy9KTazqX415Jjgcv7ilj1plL/IHs+z1UIL22jGjFrbGmTJ5js7sBZ0v5HhY61lkU+vk54GqVlU8SG13pMcno2t9dG35HxrKljy4jtWuGeU9E+QMuVva1t9aPOvJJrnKkhTMmQ+IFu9OdExSzVVLNjD+QLRgSMCKj0x54Bou3CG/uR+4QGAWh+twM0p08lML4zJpIAfSk2Vk/BHNnxB4yqFKqwau6/krxw45IMjIZAQdV2FU0pJPtnJHOySoQAeQp1U0csoUGHk4knIkD6iq62RT6+aRGyTq3+MlXHpRyekqp+RozPlYhycXX6UvrVlCpnEoYvyRkXzjse9b0gmtkn8nsbLVZj61tqyhSXVmjHkob2saS6h55tnnb3SCEINB4La1VOWNSExkFgABWTIF9p8GjHIOFunpU7ryLs3YTKyOpBBpteBDpCJ/wBQ8vHQetH3NreGLZTFJYk0S5QvSzdoGRz8iVtYetDao6lOq58hMIBp1rlIje1nwK4w+7fkNqOXBNWexywDAoCR1rhlE3YVIHLE2rUUwq8nA7RWJW/e1bEirOfBXBkxMhuDrS7UZlU0uAZGQ2sbVqRPesDooo5wATqKC1nUStOQv18ZQRtIKztYdV3sIkhSVb8QTRq0GpwpFDBsbqwX0ovsOrrLPP70Yva/rWqGFaGeuJEJ4G9Z4H5161AGLzXUkDtWuxud0TPFJC901WjTTE3tNuRqszjgy/SsaKEkkCqtHIAw8fWt8oTe8Mc0Ntx4nY0KsLveEDN8dFJEbC7Vi0gm02cQZaYpjlKnQetM7EVNP6gXMH0KMSwO1Giimfhspmw8rJTmI7MBqbUKske52ziZJ4sXJhYMfEii7JkF/aV7cGng/JyxShXsVOmtK0yTRqSrya5fFmjLKQG+tTJWTE2VrSQyTMhuAOPc05VDyxjk46SZSWUcF6mlXv1Pe9LCtf6fLM/I+Okja4BajysmWezvAMSoBaReAp7PMWjiUOCx2HtMB6GuPN30b8lKQCVeJb00oHaDK3Jv1J4mPtgkHv2FF3TK87KqljoUnuLjiRqaxtCNN6o2sKCKRhckm1R63aQinsO2iQOX8a/O63tetz2UDbXStyZuR8Q4PNRe+pqiuyFX3l/ogMUmPIG4EDrTZTJr6fs28B45IwdydxUuiaH+vaVJXLjwsl72YCk1u0x2l2yQyFP7yTToknrWVMCvfh5eQ4mj6sU6tDv8DR2H5dL0tyT62fWDsYmR9CLVziAs4qNaaQqRxUn0oVVDcMOzli/8pBYIfttWuD1qJVr5D1eIB7Cs8Pgls+3gzsghZNLD1NUV8GWp15Y3GaHjrqT1FDaSZ6Wa4NHFlcArGeSmptaryy71aL5Jcr3VJDC4voTTc4YGtV4Qh4PcXQjkNbUxWg61orAjhIoINqOUNwomJdsnlYDSt4LFWqcsP/8A0wAvxuD0AoeGFeydXAaZTPxbjxYaXIrnQnrRLkoiyZI5fLVTQWomhTjtwXrkQuDb8rb0jo0DerBZOZBADGtTgFQuWeMbRtciwvqK5ORN79mN5pfkOvQUMMFp2Z33vcQrb0ArOsMfXOKyxfsTFrKeI7UXZCrXrIHB0k4utwetFKa4E3t/UBR8uXG177VjDpCGhl5WOjUMAaNtgSAcrsAVrUZVQxF/bkvGLrR+VyDZTbk9ObsCU5A6nWur/kO1efID8gAyJYGiQxVlyLDcrhlJoh2VVIqXHdluvjaiVjtbpIFYiVsb3HWtkj7yDy9pr/3Ct8nVTZQGWZdbhu3SlxBfVKlZLcXFS9yeJA76Um9ya3tNsq1jOhpPkk0s7MYQZUvx17mhXDDqkqikgkII6A0bugKXS/8AAJxHDHibA132oXbSbATwErfUkbmjrYalPJn5IMbK35A1RTkoWctMnlBZ/HYijQ+6SYSY4kjKk+Q10rnaGdW8qCVRIgKsTRvkltaVByPL4txDnl0rnSRSy/J//9dM6zxLbgbjqa/UZTPM2hU/ZTgSq5HME9bbUu/6JM7w+DRyHRRbiOP/AJpCTZvszZk1yWJhI06UaX5E0pzyJych+IXlZuoouh2+cpIGOeexJYkCt6oPKtUjQxy+RG3tmzeppNoq+Tk025HQ4peMiU2PcUNrw+D1M9lnnwG+BH+veOS7Cg+5zyiDXe1qcoj/AG8jHbXUDcinLKthOWK/2ZdB8nFNx5HyHep74NeBd6tsqWaIlf7rb2pfRorxyaaFTTRJJfla/Q0ytW0XVxaZPLlWkHmCtNrTgHTL+oHiUEX5XDUvqVx1Q0YbOlifFtqU9YYxaqtTkOIYXsCWG9qzXTsij17tuCfLF3/G5p2L4A1p/RGPcVrtYDoKo4gQodoR5sMTEEC7HpS+56Kusqj1xlhXyWxHau7SedtvbVwvAXNJFsBdh0NZDTC6woFzREr5J9qKtgdbcQjOyIEseJse1U1sTWTjkTDBkBxZri9FZqCj17VqUyxMQSzanpS6szbTs5Fx/txtf+w7UT6sHLquTUx5H43AH0qW6Q6j7MVkgspJ/gUdBV6z4M2TI9qUKykg9jVCUo5YO10iabKVpet+1HWvBVfLq4PDJcOQwAB2Jreol1/ooSZZIihIYH0pTUMprSKkT4oD2IBFOVhPbrwKfADNcMV9K3uAtf6ORH2JeJuR3NdZSiyjacs0ocpBxCuCe1JdBW0uEXxzxuLSKCKS6teAbccIfEqcCUsB2NLt55Czbjk4ZIraanvWpMVerfAuSUHUAg0SQapCkTOGexHiQN96OrgJUXkGKNZNHOo61tnAp68hvjjx1uO9YrCr6eBRxIw9yTbvRdwKXbsAqSRS6Hkhom00GrRYpZOa6Dh0vS04NvZJScXHKqRfmDWuwmluxK3KJtW0/wBtH5HKsI6ciNlsQATXdRGlXAMc0qPpbjWuqYrGi7SWLeS5vZqU+CttCpJVj3PkKJKRVqNgpmR31Fa6HLNoezRyC4sD9aBJo7ThQMiPJbaa70NjquEc4eyxIFwe9dMm0lsTkWNm46dhR1O0UchLCGUFdBXOwCvPIM2KzajeurcC9pYmX3xFxZb8dqJRJukdTkcp2NwbVrROlLM7MR+Ydb3HemVF2okGF91AyqOVdI6v9DI5c2NfEXHW5rGqssu6KgLPOvmy81O61qSJsc03wT5M8G/Exnt0oqpllsbf5O42VMSRFYjastUqxzqv9g3ac2Bbz/271igaq1ZZijLH/LfjU+iTLqaVqoRotG0sJ4EC3WlJ9WS3srS2ZsnxoYEkktVS0Id/Z61hCz8eQt1YgjYUX2HnPeTqSZUJta9q5pMdVVSk2cNocmOzEK4FrVJpNWI03b8DHxxyuo/ihVyS15YMH+Gflew6itt/SH4SrSaLzx3BDb71NWjKtatsmlfkDa9OqhN6KqI58UODdTbvRrSCDW/IvFBxmsl7db0dv6XJZ6qb8lrH3E1AuaSuGelaEhDK0bE8bLamppkbfa3BNkxq+qaPR1cCvZfVHEYJYSC5HasfPgibd3CH/tQOOIuGHeh6NFVMLN8ng7FbhRfvWwejSkVg6cmYAqCPpWdEOtmogBHdr3Fa1BmVUhOZGvHzH2FHmxHs2b8Eccrx3FrLfS9NiSXOvlmlhZgXVbE9hU+ucluFZZY0wmB5LqOlKVeoveFMCmbHjf8AHXrRctCaZ3veCabKg92wTy7mjpVweq8HVpC3zVVyeGh62o604F7ZtvyPhykyIeK3DetLtXq5NrnFYZM0DBrOA19rU1WJ9NEuEM9gG1za2wNZ2MVpZ4NxYg7d6yJD5GLmxJYA+VY82xWlLMcc1iDcXU0CzC+pIWJ7C6/xROp1M+B0WXyABHE21tQPM61TpmIbyOld1JtOB3uK9iBptS4gRHMjBDG9iDYjah7NGqzbAlg5G4JNtCBRVsMs4cgrjrvyb6GtdzPsFsPbfU+NEuRPLsdb23TxNzWKUx7q4OJjlhYnStd4GVulwL9n2n6kUXaUd2PSsAOhPauSE6JsV5Ob8fsDReAM6psUcX3OlidLUfeByukEuKyDiaF3B19jiCjH4xs1ySel6XZtkX2NtwaN1kQELr3qeGmN+A4oZWSx0t2oLXSZy0SUAATRNcKSDuT2rW1YnbkaZ4+XJxtQdH8GNOeB68JYzwQa7XFLc1fLLfXpFW2yPJ+OcxnxFUZ7qSmtk6mRmYkqhW4H1tVlNEzNrpVTPQROkgNtCNRW2smhed5sT5uK/vgqrENuDR0uoN9iypZCv+sEhay2bpW/bBN982g//9DZzIWlj0FiNyRX6F3VT533dEkIxcFh5EC++1qxayRetfsx2RHEV8zb0FMq38Hp2nyQNGsUnKM2XrTk58gVmZZ2YY8gBP5AUKkXo7WfBPHlJExFrqaN0bO6NDIctY5uSAres+uVyN9fJpyzUjzonBDnjcUh5NeCxZuzZMM+zmJPIetM+r5OXrw4sBMjufwPrbYUSaQGrUwiBjLBPr5L0pqhiaUm5UM+QaqCnSgeaPax9deWUrkJLq+/rSujQ+3ngExY4fkH5HtRJuDztdLWtwUrnrEAoA16GlvKQ75totTOd4xpoO1S2ySZVjgon8DIpjzDcrA73oNKcQOzX9SDl8A4YDU9a315agD3E0xQhSUkWFyd6c7NE2b6gZOHkRcWjHj6V2WlXwxntapxJ2OGVxc6H1rbWSBxtXyJaMwyKTr3tRp9kK10clinGkUciQaS+yBTs2RZeOii4W49KfndsG6ZNCZCAqAC3fem2j5BpFVz5GMrWtx8tr0KZ12C8AawZj6XrVYdMKAcfHeJjxYEfWuvZMbjf4GMjvcD/ShmCisLlks3xs1yzEaelMWq8BZ6V5ZBl4Ukfkov60+l0xW155FiETxjl+a9q1uGFi+JFiCZAQrEVspj1ZRyCxmUgjUjvWqCTZpsNJ1cjmQGvawrmjs6xyUPixy21+lLVmii2kciZPi/bdWD6HtRLSRNvYmw2EtExB8lNZblHVs7WLI2DfiftSWiz/VQEHIJuLiugn8sYzxsoGx6ihSchXTgMe2VJvrtWci7WcChHyk3/ijngmVlVhmMrfWw6CskDt2Ym5uQykr3oh1UqoJcSNiCpPe1c7tEt9m3A9UBS3LXaxoG+QbXbR1UYXDCwPUVjY7ICfGikUFQL9TXVu0Uy+DKnx0ikNwaqraUR7XbcI9FkRDTjc1zqzK1Y8zsDdBYUEF2ePPImfMmUFgBp1tRVqgr4pyxaZySWEqb/wBwFF0jwIdI8McAN4ibdqH/ACBZyxizZIGhsKx1RqrUfFM7eLGluobaqhrzRxjXW9CqtkO8tDIcmPQMQB60NqMVHVQU8YXB4tely0FVNcsVLEvEgE3NGrA2lrkgkjljkuRdfQU5NMGUgZo/cQnX71ycC7P5FYsIF7DY1rsZhcraEMp6G2tB2Gbahw4BZLKt79TWPWB3q3Uck+V8ZCEvKRcdKOmrfgrts+sokGNiRm4BCmm9mw8rX8sqihxhZkXTqTvS22atLXsULIq6gXU9KVEldnCKELBfFbCltSzm+tQZCzB7DbQW70a4PIvDbJES78QbW3LU1snlJ8jXjCjQBj1NAmFpZ2FRkpKrGtfgld4fBppKHAIY3qd1gJL5GCOMtc7+tZLH5tzJTFFjk6qPrSbWsOWtnYTlokWqkm/Sjzs7IR7bYljK6XtxAo6pJk2dKxIMcMysG/JDveidky3CymRwCIdFFyaByzfY1fgqEQlU3FwfpSXbqdjwZnyOG6G6KSKpy0TXJP7VpfJNHBLKG/tZe9N7pA+u1LJpQ0Mg5Jc9xTU5R6da+B8ckbgXa1ulLsoLMayxWRI8fkgvRUUjb5zyAmRkSqV461zqkFnnWqgmmmykPE3ptUmS71q+BDgyrZpDftRrgFJJQkHgqyyEBie1ZfwdXWOC8SZAIsTfqKVCFtJsY8c5JckWpVrJKD0/Tzq27EkrTC77etNol4D0hyzqlp49vIDet8MnlQFjwS3IL2IrrNCfvSKD7i2G5FBwRaf0wxOjfnoazr+CmtI8HTEkg38ayWgnaOQZPjYg3Llp6VtdWJtu3YJMeNBxJJHasdmFS7swf11N+NxW9hl9OqGwxsD5EAWobMg+2WOk4HS4LCgUi9mwkey/jrWNC6rsEk8gYXGnpWOqH51SGSSKt2JIPahSO0Tb4ODIik0LajtW9GjVSDhxg+oN67vApXlizFxOxuKLsHe/A/H1NmFLu4Efb1LWw43XxYXqdatBVu7Ec2FxJuu/WqK6ybbQiCmGQrw3OlOmUDXgNhMCCqaDrWKDXC+TnvSKdrWHWsdUyXRSw45Y5ALqORGtC6tA0RXDEp02pN7wbfeOCuIPGSUFwdL0htW8i8+XL+QZZJ2LLbbYUVKVRZTCqM2eaSM2cWuarrVPwFfOFC+R2L8pGpEbk26Gg09dvlDXm0lU1YsqKRD1FQ2yaYzrCgXMIHTiAT9aOvZMi1q7PqZz84ptBYDbS9V1hoKtIscy3eRAwXYb11KpAeyl5JoRys1rMO1GI9bzJ//R+qy0KLob6V9nV92fFap6MkjMxawFxVirVI9H1cq1PSwgN57dqJX/AAO2vLhC+MCsLi4NY3YlvazaSAfGhaW0fXcUau0uRymrhkOXghWJI4mm10nwL0u24QMa45Fg/lajlluFbWcQL4u5su460cns51VK8+QSJA/mhBHWtlEO2inyUQ5xS/IErta1LeckSrLbDZ8d7Mq/zWJNDc83ww3gg9vle5rFZyevNunAr9jHhFmW60XVs2udmiZ5klRvYBFtiBRpNeTqY9U3byA8rAAMtjtc70SQd/ElUE8kSEXIU7Ui9U2VZV/ktxZxIgu+x60nSkMynC8FczmwsQQN70rKoj3HypASV1JsunpTHWSSleZKxOrpxueXakfXDkX7H9cHVZ7WbxHpXNKeAqJVqekVStxr611WS3m7EeDXBUX70zkroutTzBlUAkcfStXkVblEjKFlJRxb+tNTlciKqb8gtJIymzhWrVVIes1EsW2QzDi35DtRKpRXLiRKZPtvfa9E6SgqUfkq/dewIsVNK+tDfqTOJmq10ubmueYyuXAtlWVCrEb7UxcEej+CRoDDJop4ntTFaUMpwE8LNHdQQR3rFaGMdlBJwu1rX706SVObCZMccvw21vWqw21upVAAqgE3O9BYUru7g7KzBgANulZUfeqR2LHMp1HE/WstaDc9FUJsd4m/I6DpQqyaH2tLg5zVgLtYjvvWsKtTnJCbXJrkgdrQiqAoUNuvSgsuSWtnEs9IrowZdBWpyS3csoRRIOTa0t8Bq6XgMRxcSGOhrG2Jtdk0yPE6tGbDvTKtNcgOsQ2MV23dLg/3Cha/BtYb4CYW15adBWSX51B4hhva3aumBpFkwuz3Go63p9LcEzS7SzNkxWVybEg9qcrB0fIyEMh1vp0oWPd54RVZZY7MoX0pfhma260j5J3xLG67dqYrEfePJz23jBdWH0rZkLP+ji5EzG2tqzqijrWpRBzLa2Nt6GxG7p2KCgK3+9BIrW8nEkx72bcVzTJn2bLoWDAe3pfqaTZR5HL9h8njY3YGhhMVZyzjukiamxvvXRAjXhHY8XmpCsDbpQvSCf7PglOE8Tm4Nib6U2uiaHYMAtKjajxvqTROGDdyy7DlWTxW/Lrak6KC71q8wwp44uJEgH3rqN/BTq2+ETMMaMroGBFMXZi7d7NJCliDPeLbtRO3HJdklmuRwhKABgBc70PaQHo7Dfdhsy8xyFBDGXVnwTNIS10axBpqRHdKvkSwZmF96Ii+Qv2SoINrbWrOkhOk8kmTkWJ8dOlMrQG2EDcX5SIIvM7dBQXyfwB0ccGvifL4/GzLyXv1qS/r2+GHnjYrjnglW8aW7GlOlk+WVY5NKWxeXMOHmALdaLOv4E+zWVJKuQIlNiCh707pIiucVZbhhJY787jsDrSNG0xvrWEZUYSQcdV633pmblB6VfZSLinmiY8QSpor1TRX6+SbJ8vNluLnXtTKZIn9nBWtCIBnTFiSdCdaf9aRR6vrVopGGeNl/I3rFWB9qOxyPkw0APrWWKaRSpQ0ThARt1pafJ17yhTI6sWQAetHIWa5lkswkc6HX1pteCfSJJzG7aEBWHWjkW7JCJJJ4JAw/kUUJiln2shj/KZANzoOhoOiL16tW+CjF+Qd47bmkXzm0np1zVM4KA8UilWFjtathoiv+CYs0T+JsD0pvkktwOWWdhdbCw1oWkSvr5HKXc33brQvg2kNnJIfLyNjXVY/bRLwVQDjxBBal2I1d3skBLMquALi/etqpQ/XOIQ7HX3GsaC7hGUuquDs0XtkgNauraRW9mwI3B/LcdqJonoHMqEAgXNDVs7Vs7ixySIVF0PasvZIHG9Um2OTGyY99RegelWBbZMr/WLoGtf7Un7IY5aKBLY4QE2sKNXkyjdnCInkkVj7fTY09JfJSs1RcjUlZ0ufE3tehaSIb2TUhq1jck8R1oIkRX+rT+CuCVDHcSfalXTnwX+vV2XgW8zFrXv96JU4M1qkz3FXbzXfrWNteCHS/wDQTRIp0a/pQ9mwbWbYt4lmXQWbXejVupi4RG+LPGbobAbmnLSvyc7qqlhRZUkRuxD0t5qxNnR6WK4vk3YamwU7etC/XSPTywVUUNk6hgVAG/elrMspjNkZ/wAgySLyDA2qjHjgfrl1XaCON4GNifMdKe0yGbNmljS3txHH1FTaVH1Yz38qGXkSCh2vQdK2RJdJ24H/ALKTqORCN6C9L+t1/YVqKq/LEyRAqyq3M7AUat+SPRz5J4MaVJLMLL0rtNqpcEmns1pwj//S3Tno7ENqNNTX6B9MHzemfUqgUMLoR9qU3Hk3EGeGYgkC460Vb1G26r/Jmzhon5E2UVTXkV15k5LlK2scnkO1Es48oo+n5YDB5iA5131reECkuxMfjpfd5JY0z7VHJfTaufLLkxzE3J7XFId58E3se07PgpZo5o/7VPcb0tJpgZZzyzGnEmO5HLmhNWVhjK5nFLlracSdAK0sqknBSEmdQgS4/wB1KbS5PTXVJJsX+uyOVmsy2uBWq0rgy2kSkdgMCxm3hbcVtpIse1pb5DlxcbJjHtkmQChrd1fPgfpZwkw8fDKALIxLDpQ3v8oZTftCQLD2Zdr9da6ZRRSjb/QUmatlJXW+9dTMT7NHaAD8sykqp/mt+pM3/lhcjF+SjYhnNiNyK55NeCO2bduPgtj+QjeO6nlSLZNMOuLZNJmyo+3j1FMWaaGLBV5DaWLfa/c1iqxeibfHg77627/eu6nKjs4IZJpll8EsO9PrVNA2yrV8sZHI7EK4oWoOqk3CBlextbWuqUunIk+a6Cxo0deK1Hxxr7Y5G7AUqz5GYN2RO2YsbAWsRppTFSTdKNKWOiyombT8t650Z5lpmTSSNZU03FTNwzO8uBMkRA0oq2KFxWSF8clri4JNUKxOrRyDIjAG430vWpg2fZkpEik2Pj6UZbhmqo44v5BjfrXI3RyegypY5AT+J3vXWomhGa/qTQeRZLFAbHep6qD0LVg4MJZblRxPeud4OeyryCcKVdCbdKP7EeZffsxbu8ANtR0olDGqn8yEs8zpYkkHYCsdUmLVKxACZE6OOJP3onVMDSKoviyHYHlakWohedU2KmzEVeLjTvRVodtk+oWPMOI9tvsay1fyBlT8lJdXUckJb02pMQz1aVivDFBJtfCw6UcoBNKeRUkLdt6YrCbWEvisT2PrRq4q+kcHRjEnWs7hV0g9JjFbeOgrlYHXSRbovH/UUSZiTYlIVVt9KJsorbqgvbAew1v2rpJdL8ncdR7jgqaGzJPshss/XHAX1G1qV3OekJCzBF7ljv6UXZiuz7QMQhTYbVjKaI7It1N65DLcIR7/ALduewrLKfB5W7b8FmPlLILx9dzSnnHkDLOOWUCWO3m9j2oHV/A6G+EifIu3S6dzTaKA1mqKX5BxHMTkpoDXXUrkr9DN2t2Y2R/eVuWx61lVB6vVVTZnyQrC1+fh0qhWkndmuYHniYwYnsR1FB88nXmORyxPKFBP80u1oKMmuBRw3LaakmiV0ZpukCyiFySADetmTxttHe36DGRzIGl/Ss6QDXPkXLdka1tDajRVWnDZHkwu30OmlNqwrQZjQTxyWQaE7mm9kJtZLyVwrIpuxvptQNoozuvCLsX5VY4SvIqR0pN8pZV63rt0ljJc5cqGyE87UNc+rC1wSrySJK6jg4a5705o83VyuqKMLOME19h2pemfZGZV5hGy2bh5KAkcH7mo65Wo/wBFOmVn4J2yuJIRrjuaZ0ksp6/Vc+STJeKW19+9OomgHnySHFVlJHkPTSm9jFfgEQcSLi3rW9gvshSXY8MYtyYLfqKTaz+Cb73ZmgkKlLN5A7GpbWhlGD7Ez47qTxFwdqYryVTBI+O5axXanqyggvddoRO/FZGDL5dKYvAu0uzBkhSRbHRularQU0UIX/191udbVjuW5acAoEjaxQrbrWxJtrvzJSjY5vb+aFpiLWaTYyXESSPxbUDSsV4ZNe8okRZ42KvqvQ0xtMleiUluNyvoNO9KubndLllWQgRQwHIdTSqOQd27NQTe8eVweC+lMdSz18VTlnMmJZY+SMWZeldRw4HXU8sjx8nJhkFxdR3p1qJokok7SXtlmUqLWJ70hUgH3IrDZVDhc738T9aVbWDzP+jkqXHXhYsAe9JejFvV2FqTCTxNxRNT5AfgthnlYcbbjSkWogs6KzgBsnJUkAACjWdWenXCtUArTlidCOoNa0oH41qmyecuF2C+gptIJ/YaSJ/dKAAA8t70fWSDo2oBj+QWRODX9waXovpgsw9aKnYWcE9RWWSPRySqoCla+oJBNckQ+y+D0ckxI4m5rGkeckmylX5aubW6ilx+Bq5fAtnZbkMTbYmtgTpwmytCJ4ADq1tan8MRRfZCMnLx2ifkSQL7VdnZNHpZ59fAtXA0OoJvejaLcqS4GRl2ktYnkdKXbwenWK8fke2OW8Sv9aCtoIvc3TcImbFg94hrq3pTe7g82+tq2hFOOhU8eZtS7s169FHyXfqxyx6sWIF6Q9XVnPXrWfkPGVYyFCa+tKu3b5PN+21nLZRMLi6+J9KXX9ha8Iy5s3h4sTcHenVw7cnn19d2Z//Toe6q1ydK/SvJ87o3aSn435NlCjTiaVpjKNxr1rL8mwmQTcqQFPepHn+Q60lyxORjGYWOoptL9RySqZk+Ice5QCxqmunYFt28+BCyT+5ewstM6oPKle0/gOSWcNeM2O9ulD1XyZ7MNlmPkGeO2Rv1pFq9f9RFGo4GJGkOqLdT965tvyUZTEsJ8T9lCOKjTr3rFp1ZRlHyZDfHZEUwF7D0qtapobnou6GtFmRPcSWj7UCdWj0W6u3g5KYpIyW1bqRW1TTM2cV4ExxIFIAJudb0bYrFtV5+QJJXgIaPQ36VqSfkzSrfLLMf5CXld7WP80m+Sgbjmnbgpd4ZxtZqnqmmXXXSoIw1Kgghh2pr0g86mne36FZGMi6sth3rc7DfY1fwTjGgBJAvfcmndmSq9g4UjB4ode16C7ZXlPyOeMK3mBY9zQUfAr2dZtCC9qItxtcHaulnOzXBxIJ0figBHSstdNDcYnkkyjkxScmb7U/OGhG6TtwchzHuOWg9a21AaUSNELDlR6aOO1Stuj/RUmZ2U4hbjchutqppyhd82/IzEmjewvY9TS9Ksqz/AJQ/IwopkIU0Od2if2dTLkSSAkWsB1qpNMgh2G43yHFgeTfagvnJVhl8ly5ZkQhdD60npDGaVSryAXmUgHbvRwiHqm0KeQ3s58fWiSHKkHLw99DXcjLSgJWjUeOtzWo5ZtkRcs2oBFNGZ5qpZAhYA8+PYUpm6b/gtin4aHX1NKtWSSzGMwZQdPtvWJC6U+Q1jieMgDX1oZaZ2mjfAkY4B0Goo+wtXhHp8Vib3rq3EaX7WhARoVcA0TfBVm4hHcuJWiIbpWUtyM1TaM+IKr2vanW8G4JyWJLKg0fTpSXVF1kmoGrlOVHIm/es6IRZKBgmdlAvftQ9YJbJAO8gcctqJJCrpJhqpJ0rGzHZI8ZVB4PcGs6/KNVHZk8hQHU6elMRR1hHhjwyr1BruzQtXbJnilV/E6jamJpk1n2sSyZU6S/5Lfai6qCfWtU5Rq48wkivekWUGJ8SMCox1NmA3FDyZnLcnGjIbQknsa1Mps4KI0WRLEWalNwxNtJUEGXA3Ij8vSm1soJdIXLAxY5UNiSP/UVzsmLyv8FbMoFyPv1rEi5KFJ6eQiG41BrqrkZXHsiWGWS1iRxplqo9T16Vzp+yyNWZO6mlPyc7qAMrGUpY7VtL8mXcIzp2OPooLelPr/Qf1Oy5HYvyU7NYrYAdaC+SgdnnVMq/YkYKb79KDqked7NkecPNGQw42O9coTEUqkiCRZoG5KOQp6aZta/LKsWb3rpYKT3pd6xyMlKUNXHdvBrC1A7omtqvBPkYbAttp1rVpJDrp2sC2OpS9xtRqx63rV/kS2CNlre57Kv1qLOJkxHlFpRqyfkg12VnyImyMlT/AJW19KNVXwTLJN8C1yQ5HlZq3qPrn1RoY8hIBLcrUm6H5cly5HMAG3H0qfoUtJKWcbHKrcWC7k9aNWJLX+PkVEy8iquDejsIr5hhSjgPKzqaGvIGznhCfci2AIvtRwxlM2kVYb5CSFUYsvSk61TXJZm6pwzQDTMPJbVNCR1nWSGb3FbkDVVYZF05kRMyyjs4o68B1zlkwlKmx3FMgZZRwWY0kcg4sPvSL1a5G0cKDuThK48Tf0rqaBWtHLIzA0ZtxNu1PVpJb6SNhmAT8dOp3oLV5AopUiJZHDCw8TRpEeqSKIJnG48TtQWqjs0mygZGvFjZTS+pYqQMEeIR4i53oZsE7WgL3Yo78V1rOrZzrZyTuscxJAAPbamKUKquoqZFAuhsR0rpPM9vR3YyDPZQvI+mtDbJCFXiTQGUjAHgfQ0n62vkcqQpkajI6MCQD260tpyTVTsxSSypKoGi96Y6Jo9T1MVVpsfJc3OvcmgqWX8gwyBWvv8AWttWRDtCKZlx5otuLDek1dqsk1baM+WJFcDQH1qmtnAeGTtZEGTh8n5XtfqtPppwelayqFjqygAsd9zXXZPr7HWsmmMYNGCAG9akenJ5Ou/YV7JU329KJWkDM8I32A+9FKK6wlBPO5iBDGiiSP2JfCDwfkjG6gi6nqaG+EoL18oNLKjxchNd2GlT52tVnt1zfwYUmLPBOVUCRdxV6urIozqlaPB73slJULLYAHQVyqmmHq6pplSu8nFl0PegaSPP4s02IkIkkN/zXciiShCVXtefwTPlmOU2JJHTpTOkoHWnLbNXD+Shljs3i3Wo9cmmQ6NtFIyhcBDrSvq/ICyjllJd5FsT/FLVUmNVVZmN8hjSDy4G196uyuh7oqVk/9TQyMZySriwtX6RS6+Dw1CcIyXvjylRot6oXJ3VtwWQfIOG4k3UjShtki5ZqqL4/kQqHWkWxli64u4GRncraAi1bTKB+uCqoJ45QzHQ+tMagj/1TKHjjkxiytxcdaSm5J+b1M95pEBAJb1qlVRZjhxyNxszMZOIa3a9DbOpSq0SHR57xi0oJYHcUFs0/AzLLjgKbNjaUOW0ttWUz4gdbHraYKcf2pDZzdSOtK0lLgLKzVhWTiY8Lgp+JNyaPPRtcitHe90vgkmYqTxPJb02vJS84J8h2dePG1+tFXyPtko5EYqtzsTt0o9PBuNocF7P7Yvbf1pNamezZ28D8SZ3/CxPQUGtYE41S4GzLKw8hQ0hHbtPhEdi5K34a05uDvXz5lksp/Wk5g8tftR15QerbfBSvySzpYDyFL+uGCsPlnhmqmr7XovrE2q/JoQ5RdA0WinrUulY8lHr5JuWZ/yMrgEkFmNPxG6evKMlsyYbr9qq6i1ikirGysjldQRSdKqB+NKtyUTCefbQ+tDnCM9m9K8sbiYtm8217Cuvbg85ezyWSL7RBUk/WlVcnXmzJZ1Mo8tPpTKuBlM0jPXCcHQm1PdjfuVUVwqYmAbUGlvkj02drD2f/bt2NBA2tBcsTOxtqN62tim0VFe2R/8AFHIrtIwKg43W9CG7PiATjRSBr3ArezA016VZ2CFYvxFx/uNda0kOd7WfI5ypW4sbdTQIp68SciZQPE3Na0C24HwOG3NvpS7IjtpBUMjHTRzfvSuln4E9b2ZxpcZnIU2B6VqrZIes3VyzywxEgHTs1c7MytnIx8VTcEhr7UC0K1ZtwZk2IySG6XU6C1VVvKGVfUZHCL6C1qFsN6S4CeAbkVisK00/B5Ra3HfpWsT5OTGRgLjUV1UjL1QozEEE6elF1MVZcjw8bm5HTrQNNFNK8ycMMTpZWAftXdmmJ20cQdiiCAl20rrWnwT10cQgZIwwuouO9amd/qpZDmwqF23IFGrEHs2bAWR4ksNj0o+sjaU/kpjyWYXI37UDoPpRFaM0wuo4kUm0VEb6JFEN0mUOpI6mk3crgktpFkPyxAb8OtKorPyBpS17cmYPcEp002BquqQ31812ByFmaE+0LmmVank9f669ORUSZTgJICo63orNLlF3r9FAhoFha5fkL0atIj2dn/qkXY+WOYUWt60m9OAWurUlsssRi0OtTpNMqzxdzMzgpYGwIFUYMs9ldYJYyyu1k37098nnXt1mWWwlZIxewYUm3DPMd5KBEXUi9zvpQO0FGZPNjSlO1txTK3UjW0qkBBjYG5uD0p3klvZwVrnxIys9/wD20pNs2/BNpWzfA958eRiyPcMPxNBWjXkLLBu3gUVUAMD43o5PXooSgf8AsKu+q9NKDoD7Vn4RSnsTIQI9qW5q/JCpXzyTv8fjyXAIW24o1q0NpZpmZlfEQoSQw+1UU2bDttY7hfHktxDXB2vXaacFGHsJcF5+MmVbAXPS1IWqGaeymhkGM1yJDbpxrLX/AAKpvzIqXASOTnHRV1lck1tW7BABwRcAiufA/KsksihFufIU1ORkcSNxmlBBRdDsaC6RlLKZbNOIvu4vepbJfAXdPwcmxmkF1IFdXSDU0iJ/jZxyZfL6U77l4DwurNsz5sTKJvw1qit0DrrWvyUYeNIWHK/rQaWQivsKTUWLieIFr7VLIemkvkXNiTOCbbUddEhFr1RImFKrEC1j0pr0Ri1S4ETY8qtxcaHrRKyZHrZNwgI3KHuKJofjWWUOPcNth3oFwejeKnhA6NcObV3aRf2SylEW3K+vrS2wNNZGjHjkXoD3FA7tEem3VCZcFOO9iK1as853bI2gjKG2pFOVmNrMchxPKsFg1rdDWNJsOv8AVQI8oc7Ekn0o3QpyygtjyYNOROlJdGP5+DQgmhfS+hqa9Wjm2vIz2FBupFqHv+SN3bYuRWU6G96OrTHqsiCrMSHXTvRz+CykUR79OMgFLm3Qmu+x/JJvu2LmWKMDnYDtWS34PK9nS1nCCTKCHjHqpGld9U+QqYtuGd/bZv7db6VzzSC0qqosjyYv/wCwcelIeb+AaJtyhWZDiTKWW16PN2T5GVytZnz7M4YxrbkCbWr0UkWYYRwyyHNyAqiQWA3NItmm+D3K1qqorVonIZQTfe9Lhrgj0tzI2SOAAF10oau3wQbaWs+CeR/ajvHaw70yql8jccH1l/BNI8hl58Lhh0pqSiBipVWmRb47TAFRxa+xrndVPM9nZSIjbJgnKslwK2FYnxqrXKmypr3AHoKHoijSqbLMH5HIuQRYDSk6YVNxpVNlmVI02OQBc+tJpXqxvsUSof/V3p1eRza1tNa/QqQkeX0rV8mdk/FiRiSb/Sn12gW9obYlvjljHjcijWsm/c7csdi4srLx0AOutDe6RXhqqrnyOl+PKtcEGgWwj2vZPR47EFWIA6mgeh5j15OiMQiw8xRpyW41aXJ5o5JIm9qHW1d2SfLLMaKy5Zk5AzUkHOEgA2uKpq6tcMp6UTUMYkE7XI1Q96F2RS9K1GS42OI25HzFZWzkTtraycHYMiNSFQ2JFrGsvUdjRrl/I8l2azg2pa8D2lVgSKsYudhraiTOpV3ZPJJE63B4kCiqmhmqaQqNkBuDcjSmMlzTKWT3ALjl6UuvAXs6KqhDMUOjXWMras0holxt++S5m91dCQRvU/8AqWUomyFk9uW7m4NPTlGt/wBQjs2MkwFvK/QVlbwFZ8pGfJ8bk8z7eg/2im/YoHZ2rPJnyY2RGxDEg06rQu90+EPw5cyHRnYoaXpVMpx6pGkJVliKk3PWkKsM3TwRSx46ggrY96pTZ51+zQWPIirvehupG5T1KZZJXUe2bUNUkI9iPLAinmje7iidUyKi7WlGgucskduFzbepnSGejlhK8iBJMb3GnamQjLOtEDd10A33FEefblimkcSWIuPSjS4OVEmUQzQkjmLX7Uu1WUVbTHOyK108gelBWYMvVt8incH+y2tEkGqAKpe4VgvatbNlIBpJo2ALgg9hRJJkO7TYaSK3f71jRudeqKo4EkQgeRpTtAf2SoAfClBB48V62olqhOu9aKTiYzxseLXHSs7yQVvLllAEf94170Ln4KVZhs8HGwHl0oUmZZWalnUmZDZl5JWOsh5UljP20U/+tB9ZfXJyDJPHINwNa2tWjL0gWES5Ib+KZLFVb5O8e9yD1rJF2sC0RGqmi7GJgSvxAbfpXJBOrsTzqHHIHiD2plXBSqJIXjwDkAWax60V2YtoG+xFFLcG9+9B2bR5+mtr3/QYeEMSa5pnOV4K40DoCn496RZx5J7acci5cWF1sW5MDWK7kidrXf6JnxYx9qf9jKbaNIPHx19u3WhtcymsVPPFPEQ8Tbbigdk/JJpdPllayvKvJ2Cm2tKVUvAeNFZzAuWTiOQ8qakVXUKRSyi50Bo+oz1ceQJ8vitgv8UVaHpaYxXkoxvcyBr+NtL70vSKm53rT/IGR8YrW0saKmwl6cmfkY8kLqRqoPSn1smOXLTZXimZlsfw3tU2qUnr42rVNj5sW6gr96zO0EPu78CXxTcHcEa6U1XPI01lyQlziyHS6k9abHZClVwa+DMZlvHGL9bVJpWPLG5NTyx8qm92WxOhoasdbjkz8rFcXItx6U+l0R6NeCJ40tqRcbimyBZuBkUUZA4L5etc2/k9HCUlIwQlb8ht0oexTbSFCGN4G7EAAX+9CuSHWztbgBcpCBxktvet6DsceqloJchQSdWJ3rnQPPNtyclZGF2IAPauSaF7uOELSR4mPD8e5onWfIGVPyWR/JmwCnyG+lJeI94z5GDMjJBkG/W1D9b+AVR/AqaReQ4m46CjqgvqhiZEJIdRa+liaJMrqoF8GHINb6UUidbrwgYpzAfNrr0rbV7Eal+DSx8/HdQouT6ipr5MqzxtHI4ZcAoPrYelLRA6DIU3GwNL0odjSJRHnrIwLR6Wp+LXyI2olyyFXnilLM/jppVDSaJE1LaRrQzpIgJAPY1JajTHV55Ol3N16VkIKtUTSF1ceOl96aogTZLsIlYl/JLj60dUL6/1JOEhD/jbXamSynNOo5jGhBC3XrQKWMu23IxGUi3HxNC0YjgC8ioa1aBZwCZpImsbBe9c6pnnbPkoSSOUHS9LdXU6q6qRbYpCsYxvW1v+TMl2fJmyCZXs63F7VUoPRpVUQL4r35JatVze6bGQXvxfehsc9YL4n4AWX6UmykVLY5MtlexXSlvPgPPKbDP2yWGwofrH3okVoUlUXYetIc1Yq2kKQPZRQzRjWt7t+Tz03aWyWfGaQgEb06l0jnCaJY8OcSFBrbamvWsGrVJwwZmkgI12OorIVibSbsoGVEVBfYjWs6NeD0M82lwCY1N+LXXtXO0HqeplHkxsyCeOYPGN6rpdNDVmraIUM/ISW0g8dtK1Zpod7TrXhGriSo66ORek3UHkX1Lo1jMZVmJN9zSG3IqrbUBSQ4xibqwoVa0lulrLOBaBTCBexHajfkkz5qjKy2yIZA6MQAetPSTXJ526S5LMdkyIA5aznek+GLw5UgzY7hQwBPqKOt0UWtwDC0sctwDY961pNG5wnLNH9t+PEix7ip3mhuteD//W1crKKsDqo61+j0pKI9so5BXMJGhBHU1zyPPdJfJ0ztewsetd0DWcuAUzF5eYsRWvPjga69UVmRXj8bj1pHVp8kWkvlkZkIkbrbpTq0Owx/o8uXL+KoNe9a6Lyy69K0ryzQwpJh/bx71PrVBepDci/kIMgScweSHpW4XUR8lutaq0kUELOpTiwsdulUWtHIml4UfJzJxBa6AX63rqaFqTalkkkYjIcqDr0picjKzd8eDrZr9NewrFQfbKWNiCZMR5Kb0m0qxXRqlBE2Eqm3TtT6XIddWegwl5A2IB77UVrkNvag0osPbidB1qa2h5+nsu1g2j4NyB02N6yZLcFH9MckIUlwd6Ta3wXY27NiMhItGbWm5t+DtW0uDw9tTyiNq6z45Nxo7WliGkk5liNO4oklA9VSfBLKUL7G9tzT6+Ca1W7C/a5CzE6a6VjZZSKqATGF/478ut61MJy/JPKsxGouaZUm1aSDxwgFmXWtsIWjfCK0e6kcbdjS4It9JlDY4OY+vU0NrQZjaEOigdLhWBFKtZM9BXVa8jGUgXNj3rkyG9uwl1ZmsoFvSjTg2FXliJ4QpBa/qRR1sZaz8nDAtwVbSu7D1aORqwsNjtQ9jneWG0HP8AIn6UKsPdo4ROQsRuNhuKYuSezYMjQzKLNYjptWpNCXR/IpQUbVrii8i9L8wW4uVxIBNh6Uq9BMwXSOGX8uQPSkJCNuRKsimzUUMUpH8ceRCBoaCbJlWdbMRKqAdLja1Mqx0OwuFpuRBN1O1FZIfhVJjGA5XA+tLRb8i5FjPK35Cjq2L1b5QMcyIdQQOtE6ySuR3uf7CQKDr+Rdqhe89tRfvWdQ885FvYi/8ArRIc1wC6xiMFvK/btXJuTbN9eBPNRoGt2pkEqq2wAxZ7tqOhrYFWaT4Hoim4G9A2T2u3wLTKkjBS+x2Nc6JiunHIwTMdRoazqja0SRx8hGXi1ywruhjzbEf9h7R6H0rXlIq+bgo/7OGZLbGlrBpgL12xKuzqet+t6d1g9X1slWosSzlSiuAB0NE0gdFVLlDYopiV6g7mhs0U4WrVJjp8aaI8rDgaXW6aF+97CHwz8CAKG1ZJappGgJWkUHT61K6wV4ZpuWR5MT2PHXWn0sit0TFRo5ty0J9KJsdbRVqWRrKyWB27UptJnlaaK3kQQxDKx8h3oxOVOzgzstefjaxqmjGb1VUK+My54J+I0BNZpRWRN6qTvybT5MpNyRxIqatEelrWqYj2/dBAJv2NHMEUrwZmXHwvpqDVFHJjo4OpnpEAzAW9a55yWY4Wu+A5flg4uONjWVxKtvWSX7YMWXBkRWcWN9a10dXwJyz61n5BeFAPD+K1WGKY5OIjDUjipG9c2GrpI6sfJAF1N966SF2lchezKbCs7IpzaSlnlimibkG062rm0wVdXt+gywFjJdl6k1kfgd/gayoV5RnpegTjyHVOz5AEmRxHJbgHethSNfVIBwurAHl1o0Q3lsQ0nLxYkdaJIJUhBxMwbwJY0NvBVmueR5ZiBzBv60CRm10lwXYLEG17ik7KSfPQsfiRakIl9m3wTtjo6+S/emK7RFWziEJCGIeB8et6ZM+S/KsV5GLkuo1sQKF0TGKgDzSufFdO9qJVSF2pWr5FFbgc7gg0U/gmdvwNkww4DKfGhWkDraRyEmERcDXvWPUW9pcBDDUvqbGsegxa8iponja/TvRVsmK0tzIphFKLbmiUolcyBEvByoa1ztWWcib3bcFiM1+t6Bo9DCiSOZGPI+oG4ra3SN2spEJAwHFhYCjdxNtYQ5YICNLcqX2sJpa1me9kMN9RsBW9iyjPLiz8rAfeud0V52qme9pbWkXUda7t+CfbZvhD0mx0XRbkd6XalmS372Q1c5V0ICg9qD6Q6YQhE2Yt7gbbGmVyOfrskk+VAkDEkDY01euK/wCf+uwOVIjgNe4btRUrA76oJ7RKnkOtMll2NW68DsdgNY769DStF+T0chhildjyHjQ9kb3rSSbK+OiI216GnU0Z5murvYxmyZcWQoWIUHS1U9UzKYFWN8oX0W96XbMrywS5ZoxfI3iPPe+1JeUM763dQif/ALNFPhfemfVIu3ruteRWXmB0IOhOorHTg8X3qcQg8CYhFudDQNcE+TiiRrRSPJFwB0pFkkxsKOfIuXHdgAxsB1o1dIbKqpOsjxWK+S6VyaYX+zln/9f6fI+P92I7G9feU3hkF9exgyYWRBMQDyTfSvQrorIRWy7cnY8d2IPIofWutdIYtUhjRoqjTkw3NA7Nke+jsMXJKOutu6mhdJBVOZZTGiSkl9zrpS22vA7K0Ns7Jj4xAP4svahV7SI00tdnoXRCAjkltgaKybXJ6frZtLleS0v7gCtpbqanSgp2akgYzxu9iSAdKpSTQj1sV2bZyYq6g8fI96ynDPV0rFQY8FJNyNelbfSAc9fhEmR8a0Ml01WmZ69kOtpyMx0dbgddq68C637MKeRkYe4lwdL11KyuCX27c8ClyYgSpOnQUTozzPrbcCj8iqklCQe1EsvyUY+q/LLYchZ4ASLnrSbU6stj+YQyN2VDv9KVopZd69P5YvIDPDcaEUVXFglmrIiSGUHkxJ+lNs0OpZeEC02ShuBdfWiSTAvWqONLJIB46+lFECVRLlhATXF9B61nATslyPEHLW33FBMAvTkRLA52JNNrYj1ukJXHkVtrHvRuyJLapcBmRo28vK9DEkt12cIbHlB5AosulDakI9HHJUfJSDZfLT1FLg3S/A2Nk2Nyp2oWmTS0GWsxVbAHpahgVfzyG7BoyCARWJQx2dJ5M/IKx3t0/wBafVyVrNwTrlS3sNvWjdUHTNV8+R6T8rEE36igdTY+WE0RbfQHpXJk97pCjiKCSFBHrR9xKuxZxEbXUVvcltszgxiCQrWvW9gVfnkM+7GbFrgdaHhnaWljFl9xSEbyHU0PWDqU+WGqcTdnN/4rGy2j/CCUxcrb3rHJrmYOAMkugPE1r5Q3NKrkcQVIOtjrYUorSlgKR7pDmwtpejjgh20/qEMRIWbiGDHtQtsjtdzA0QKym3iR3oe8G1twcVPb0YXv1rm5KMnKOSRLwJvY1ytyPSlQTFCU489Kanybo4rBO0Spcm7aaWpiciFZpCo5F0AB071rR58OTpklv4mwBroRtkqqX5H2DkE6G1LkntaWcZCLWN7b0SY+lfEk8sDEkqT9KYrD5S5Jnxm/uG+xrexM7yyYxSo10JtTEx+aQ+LKZWF6F1K3wilp00cppfW1L6nn3Tbkqiz49EF/pQWzZQ83VclrTySxW0C0jqkyXbqlLHQqgAJZWv0pbbZNS7uyuO4FltYbClWPZwrCHxrHMtjZGpVm6s16QhbgQkKRyHQ0a/og1s7MTNle03IAEdVo65yjVgz3JMhPcQC/UVsOrhlOVIRFmiIx8yLFdCRT6SSbzblGZaMSc4zf0qhTHIFE6s1oZEdBzX+KmsmvBRa7fgAycXPFjx6VvWTMMf6lkudaVCV/Lb7U3PhltseCBfj1cEMbnpTbXLsLwoRLNiPE/jr6UytpA10li4zOjWtrROBNYbKP2plYc1N6DqhuqS8Dly/HU6dQaF0E/WIOfFY8SQQaPoxawaTbK4stZIbofIClukMOmcoX+zkKt9dO9b1QymNVU7+zLJGQdT1rOqTG/XVVHYpAuWJN+1DdHUvxwPE+QsRH9t9NKDqmxPWvVtgD35L8SFsN6Jwgc61XkSVlJ8iG70fAFrKR8aSqbrt6CgbQdbJsORiwIJNxtQ1QO3gLFLrIAbgHvWX8Ey0VWXtO0R0HJTU/TsSbzZhe8ZWHC4HUdKxUjyPpkqeT0uLIUBO19TXV0UlNrpIWMe22x6mj7nVv+Rf/APojcgbUX8sku02zqyMV/wAlrGsj8CaxHARkaP8AHVN67rIy64ChzUAJ4EE0FsmLxybljRkRzAcV1Heh6OpUs+q5PNEzW5EAdq5WRNpoiV8WRWNrW3pn2KCa11XyDHAhHJxYjqKFXZNhZ2fYrji4nxbkDsKx2/J6SuclkMTgMtgOtcqygdVLOGVJlNjeuVWhPUnBWM329KZEjcqtjFyoVlUHY9qx0bQ90bskvBR7gZgUvY9KXH5KLJV5YvIx258hoKKl1BNo5sJMfkLqCD1NHJic2UHfYDkryB9BXd4K3brwc/T0Plb0rfsFPWZJJsYKpBbQ67U2t5FS7C45FMRjJuRtcUTXMjqVbrB0ScU6EVkcl9KfyMhmUfloLdKC9RtOChcl+BCg2tS3RSDTLt5M6fLmvYjaqK1QS9etVPySZMYmFyLX3ptXANklyR/qvG949LUztICvLKIFmLanX1oLQUrStVJdHhh1uVFz1pT0g8jf2uzhEWfG0S7i1GuSHavZIkxc0W4r00regqtIXJrYvyUaFS6+NKtk34NrRt8Gi3ykLXVRyB2pH0MZti6+S1G91AVAUWpTXUdRKqln/9D6VZpQfD8T3NffOq+SPql5FTG5PM2Pair+iDRS4RJNMF/JdB1p1am/U0S5GRGykxmxvTK0a8m2xcSzgZGQn+7vXMRdu3C8FOPmmPUroKXbOQs6SdbLRpSLWDC9as4RT9PTllsWLjywqy3SRRuKRbSyf6KM9W6pjA/FLEksO4oWOxo78kb5D87bU1V4LaYqofF3U6Xt1rFCO0sm4XwJA4uCGIv0o3yjc+OSiRZWjPFtRtSqtJh3iyIRI8Ug93r1qmE1wI8eB00yPFrYgd6ClYYjTPsY8+Tj+5oNepG1VVq4Cr69q8sNRGVBDAg1zOlvhALky4z6myE1lqqyKcci6D5CXYaqepqZ5J8l1qJKC6GaNgQ/XtSL1a5MqvhEsyMrngxA+lMraRqqqIU8bsl6dVwyXSyiRZbhprf0oxUNjVPuoL6MOpoHwwpUBQrIp0YkX6VtoEfYhzKC3UGhTItbTYnl5Btbeho0IjmSaSAyC97WG1MVoKM0q8/IsxOhFhcbaVsjnb5KI8gqLEaetA6gWUjBPyUFdu9Z1MrSFLOHKZSOQJU9q7oZTLtaTqTudAtkPrQupfSiqhtkKG4F+5ofkGzbEvAC+xt3FGrcA2tDOL/iPEa0T5Jb2b8lBkZgNBy9KXEA2SCSKc72+lY7IkvrWYRwwNyPI/au7k7ukwHQIoN7EVqchUTakAok48Vu1FMDvHkQIXjlHjaj7JoztNoK4m5MUlT6G9KsvlFtOOEz3txkixA9K6WZVuZYXIqK6JDiUWwzRSReVgamvVplFZ6kmTArkkG/0p9LQTW4bZIo4SqV0amvlEUu10UDJdWuxDA0HRMo6KYRQk0ZHF726GlOr+CitfhBhXDHjZlPehlQNbScAzYrE3ICj0oqXJ9NFPAkwMqnS4pnYR3ky8j/ABycjcC+9UV5EuvXk68ilfBvWsgVpVvyCJWZQWkt6Cuj9HZ0X4GpITsxrmh9uCpFRgeTWNqS2TXu24RPISGtuAKYkdXOBbQLJ5KbdxRK0FVXHImXHCrc6j0olaQbXdvBPHkoCYyth60fUKmTXkodlMYINrbGgg2/iRq5L+xYHlehdZZM696gJmzIQACa10Rf63rJJFmN8jlK2xA9aVfJMrda+C1PlJA3kv3FJeCE/Sp4PZHyBmjsrWa+lZTOGOXqJVliYsiRhaSmuq+Cfhvg7DkfryXtdG6XrL07IzKjbFZMwMjAGyt0os68Hb5qjaJUkRH2070xps8lttl2NkkrYHQ0m1Cn1cp8nJHu3UGtSPUplAccDyKdenWsdkhNtU3ADRcSNTet7SVU4SYqXG9yIkbiiraGIb7Ge2M6yanSnqwL0SY9YQ6cWINtr0EwA7yLMOPcePkN62WU0dlyKfDHEkAWNGrC+8iI45oGtey96JtMOllED2aUbnlelopaXhHYpieQJCkVrQiz8ofESL6kg9hQsHtCK0WVoSADprrSm0mZWHWBId0cm5BtRwmcl5YxHWZPI2IoWoEUU8nIVkVvFiwveutAdLKRr8bi2jUKEb2bYImfnY62rXVEl4TK1vIQOh70p8BtpcjliZWBBJ9KW7AX1NKEArquh6VLd/sOt+xx8cMp4i3pXLSPI5OKtskaCRASw5Cnq6ZCn3ZLIsg2GnanVaKeqqgo+BjYMLHahtMkzu7ykd/X5jQbdq7vBbk1SoIAxX5Addb61zfdEO2trM0UaHIS9rHvUtpoL0v1QRx1466ik/Y2zznd6PgjkiMbEKLoaso5R6GOXXgUXKgMvIW3FNiSxV4DLpkxEAEN60EOrHUpxLMy00MxF7CqZVkSvm0D1Yv4sNe9C1BVVJHDiq9mBsRppXd4O+yFJTE8sAGtx60qyViXS7uy79nFmTzPlbpU/wBdqvgfTOz8EMkfK4UgjpVKY/OioufIKqVkUggEb2rW+Ce+k2Q73ir6i996DrKBa5PPLEpPO3E7GuVX8BUzbfHgjniRZgy2KtTqWbRQ11aGDHgIsy6+lB2Y62jiEMXDQqeLbdAKF6B56Nk82NIi8gSNdzRVum4L6RWkipIBIt1azW3FMraBWtxcUCutmYch1o7WggWrsJbGkDGx0oldBVslyzhg433vat7CtNHZwKgzHjcqwuo0tWukkdaw/wBj8iOPJhsgt1oat1fI906Vl+TBaE42QVsCv1pkyzy3Zu4+Kfy4MPGi6l2dOvJZ7qKoKHQ0DQvdtqWbPx+YwiXl5Iak0zkDL+kf/9G9MtJCOLHbav0rpArZQ4OTZDIwvc+tdWsiLZHlygx4tYKe9d0gHpyJyceA+SPYnWjrZ/Ivez8EPvvAx5kslH1knzz7Pg8s6yEmNjftRdYL659VyUGccFvq6ig6iNE9GkhkPy+Svgo1oL41PVw9OvhjY/lpC5ZzxYdDS3iogqWKXjwi33IJxc6uegpKTqZafgTaZJGsWC7WpvDQNUpYSszXFrMO9ZAF7JFcfvCPzHjSbRJnddeDrRQyKQF5Ed65WaJ1LZDNhgX5DQU5aFmXj/Bn5OEpXkoBqilxG2kkoxshNkutMdkzsrVS8jWiZI7uulL7cl+f9LgD9wKB1HQCudRqybHYueGkAAIvS9KcDaUh8mos0hXa96nVEhOsWYlpnBKlb/anKpLeqO81NrrbvWpC7HAI1v2ruWBLSYSSsmzAL6VrrJI0M91ZFuPyoYgDqJkHkL7UaOsoYDrYX39K1MYlwcBWSPYgjoK7wzkpQngGWx0I70cmu3WoxI2RLaEULYNH2Qp2I0J+wrS/POEcBvaz2PY1xt3CKccp+LtfrQXQqtm+BhZN1Nu96xIRpMyzh4Np/WuJ7soihATkPx79aXaxJfeRiDi29A3JMnLOPcmx0PpWoJUlwJkYoxBW470xKS5Z8wSPJGWuCY2G1NSYLq0MWKOci7nmKF2gGtv68Be26swa9xXSVVctgSlhYoNRuK2pQ68HVaR1s1qxqA1EDcURglGXU9jQaT5Oro0FkI0RLJe1tqyjnyJ25JgZ2NxETbSm8L5Jcq1TmQhiZVwWFgelqz7KjL70Xgux8GRk/LXe1qRfVJh47phrFOpGgI9aHsmdpqh6iM6Pegc/BPa7b4EyxEcuJNt9KOthtKRMmfkY4ljKEa9KpraBd/BmjGfVGBHrTuyE0umyc48yEi9+1HKH0aSHY8kgYqxOnpQWgj00m0IrjkDOnc73pbUHVXWH+SiSBS1ybD0oVYZ2/qRXAora6UUyanww0gSaMW39Kx2gPJwuSHL+LY30OnUU2uqHK5myJkY6lSbr602Uw7Q6gRZkiCxN17VrqK6JKDUx8lX420+opVqlKUQMkaaNwbFlOt6FQ0NdFJ39hi3YHe9C1wV5YrsC8w4+H5d66q5G7r+eQIc+SK5kTkpP5UdqSeVWk+Cn9mMkFBf60vqVOnRDJpEZASvkKyqgh9ibGbLMyyEWFjtTlUhtnDK8JmJvysR0FBdFXrtI1VjWVAf7utTTDKL6SuCfhkRytxJKnpRtpozGqVm2PBcqQRYig+R2jUAWmUElfG9zRcMQmkmLkSOQ6Dca9KJNoS1ySNAqtZjY9Kb2G0bCZPHse9YmNb4EN76iwW4NFwdWigW3IqS4/kUQSiOB0UgstxcDfSgaN7TBxlh5llvdulapgRZuQleQXSxA6GuhA2jwU42TKvS67a0q9ExmNUuR9wwJNgDQeBOlo8CmhjjYkdaNWbOpKUA+6yN2HYVsSb1gMyRuRbcUMNCrpyTzMoluTYd6NeCbbixZj5UfDXW2xpN6Mms2+TRjyVdP8drjtUzz55NrnPkZBNMdr6dKy9KorXWlS9GkEf4i3WpLJNip7CDIliHJt6U1VfwFSnWoEuNE6XjbXsaOujT5QGlnHJB+uFaz3IPaqFefBuHngAZAhfx/E73onTsg9U/kY8uJKl7+R3pfWyJdZVQopI0U3e/a1LsnZkCdruEeMmo4MWHamKkLkvzxVEkNScl+JQ3HU0Lp+xllzEjJYuWtxftQ1tBQkRSKYzyU2Pan1cj1XgmlhWZgzEk+lNVoJr3SfAcUPE26bChtcB6jmYohAAuOlBEi9JdRio88XlZR/WglVfA7BVSFx4VvxPLvR21Lcb/AuU+0bjS3SjryZs3EnVlZhyUfes6okzom5AmEtuVriirA/SEh0WMZYtTS7XhjMbrrBNkYzIASNBqSaZS8g+xpxJTGIrAk2uLkUu0mUdrMWcr2XNj41zp2R6OWDXkeJffi0F7b0lV62KtEq1gUYW/2caerHm66fsQcYJIWvoaZ3lEtbwxphkKAptQ9lPJzsn5JJ8aQjko23ptboOzSUkn6JabW470f2QQ23XccYzEl9SNqHtId9G6yZ+dipIGZSLrrpR1cErUT+QUwvehDKwDL0ovsgP75QM+LIsNtLit7SHe81F4fyLwf45DyF9hWvOR2OcVP/9L0XiVL9NNK/UH+jz7auzUFuQyNGDGSLDrSqeeS2+f8yxEePPLcMBp/caN2SJvtrUIwpAbuOVtKHs7eCR3tpbgkmVjIwUERttem18FqzrnMnosINcr4sKx6El/Z5Gx4fLS9iKx3LPS8yxU2J7L8iSSdr11byev2fx4KIYFmWxsG3oLPqB9s8HiskJXiDcHU1yhjG+E2UJPIRqdb3pbqgeqYD5jxSAut1PWjrSUQ+1w+DXxcxJYxYXG5qPTNpm51hAPLDE4ZOu4okm1DCpnaZY9IoZ4zyG/akXs6tFOVuHBmZGB7RuCSn02q6msnn6aApFJHYh+SnUg1rsmT9+ziOCs4kU0Q5rflUltGme/69oqoMvI+HMbeF7HbSqqbyOWnwRGF4n0byFPlNC3aWVQ5E3+4/eluiNbRSSsgFzY/WgSgns5ZxY2J0v8AWikmvpyPWBSPMb0LsIvt8I4I41exN1NbLaEO7TCGN5kxW41nf8md+vLCfEmFuQHHqaFaIF6rydGKFBuQy13eQ1o2IaLgfBdKYrT5GVUeRUkjLvHpRJfsX07PyJMxB0XStgvyy6jVXHkU2PFxrQ8oO92+DskKkA7n0rq2E3u+BaRlX00om5NraBgiDbn7Vkk+mkDI7qLEabA0LZ52mvyNjHEkK1xQMQn8HizKb3PrXQFAyPIVwAN6F0gfjn8sYVU/kNaxMe3+CebHjY/8epplbP8AIm9n+SJoJEdShK23tTVZMZlCgb5Ac2brQlSfykUERkBxqDuaXyHZuz4J5gLXT+lHV8lCpFeSfnZha/KmQcqyx4yDcBxQdBHsWlwgY8v9eX8jwO9banZHmWrz+i9My9rHQ9TvSHmJ0rDLsZozYhrmp7plOLaRQ8YYXuKUrQb5ZDNzXS1/6VTWGU0yhcnI5eYsG4N2rnWBkcciGZAx0PMHemJMgvLZLKCWGuu9qbUCtBbRcrkrY963sZe/4JFZlmN9R1ooIqL+5GmU2HAAAVqr+Squfyw/dstyde9Z1Hqso8ci4tuK7qFesILHyAh0HEVlqyLzrBYzKy3vyU0pKCrOkuTPycXmCAosafW4VoRlS4BR+S6Gm/YQ7bwXw8YyhYch1oLchfY21BpSTRSxDioWpkmmezli4l+SWTDMg6Wre/J6WbVK/skaEQXuLjaqK8nm+zs7HAGGiglD0ohdKqq5GmJyh4DjahT5C0uuvJ5VmMZUvqNxXcSITUeCSdTa+5o0Q7OSz4z/ACNbY9RStHArPaHBrxj2pADprU75RRbSC9YjIh42BqV2h8jceZkmlSWNrkXHU06rTRu1l8BqyupFhWNQzqrginjjHkl9OlOo2b1fkEY4kGouP61vaDlopB/TK3Fjx6Gt+yTnqH+u6DkrXHY1neQbaSEMKORQWAsd6x6NGLaFCFD48Rv4seJovtlAfdB58TQ8L8h1rlf8m1tPLJpldTdmJYdKZVhPljcdUktuD60NnB1tY4RXHAGa3MfalWuSvXkp/QVrglQfrrSvtH/bLgnmwwLaWHem10CtpHJP+sok8Dy70ffjkT9jmWLycUkAkX71tbiNtOJAgxnQ6KSvY1jumS56dmORWVuSAr3ArW+OT0K26qWWRSuANyvXpSLVTEL+rDUy3STiA1j0oXmmj0K5KvkqRoWUljr2NJafwSXu7cIIxxSL/j3G+tqzs15OlpciPwax0+9N8hZqORWTirIpIItRU0g67M2SP2gAdhuRT05I9G7QhGPO6TlVLEHa9G6cG5UVXyWrkOG1HG1LdUMvwWQZXuHwPkNxU9s48is6TaWViRCbsPL1pXV/B6NatvjwBNGjrcEfSipZoZrwoRntyDWCGw2aqePyefdJeWcEjqbMbEd6yJEtFJmjK3IGo3pfRyNrm9HCJP2nDlUsR2FO6KD08sFRcjMfI89+J6i1ZenBuSm0jMooBd15A9aDNMX7CdnC8GeMkRNa54/TaqeknZ4wg2y7C4YMD0NCqGaZyFBniOxZbqeoob5SO9fKFwNnyElhIQk3rKUh8g3w7cGa2Rlhrcdja9O6o9HLClEUBBKoJfzHSleCm94XA/HldRa+32rr1TIbXkcZpSDY3PahVUQ6pJBrwdSGWzihcoml24QKzcHAbVa11lBR1KOSsviLdTSnx5EbWhckrqEJZxdb9KKvPggyq25BlZShCpyQ01IvdIXPkysxEjcsi2QjW1PrLXIrSrXL/AjGf/HyWxUnWtqhXqUnlgymQniBcX2pig9B0S8k82D5cl8Wou4Oux//0xjmiElrkD1r9RdWednR9pNOMQMLAhjU7lDPZ2f+qFPmCFwtrjratWciM/WbcsUxd3JvdW2FMXBXFc5D/VDoOhFA7wR77yTPG6N4Ese1MXPkXlSXLOpltE13AB9a61JPYwynx4NBJoMiIqwVjbS1Turq5Kb+OqIhPHFJxKWIO9OalAY5WXyV/srILLr6GkqkDta8hJG5a5W165sU9VXwLyoW4WC3FHSxJopXIvGkQaXIO1boin1k3yWBFOt73pC4G6XlwvAUEjQE3c2PSh0qrG5eGDNnzpdRZ1PemVyTI9PXT4M6X5J45P8AIh4ntTlmoHY+mp48FOH8qbWUEqe9I0xlnorNKsF7fIRugHUbipfrhh09dvlmZLKpY8V1q6i4EXpyASzW0t3okBZpI8FIHjqfWtBniWeSV1Ygg3rWiF8sYJrsL7dqzqZZQOUc7WNhQPgmtbk605gbVbr3rOvYTersx37xZbBbqaD6h/0pI6k6nfx9a51DzpAMksa/3XB61qTGfW2RyuCbDUU1D88uvk9HjxuCSLHtXOzRl9m+EGIACdvtWdhf2QM4aWttQyY3wd9km4ttXdgLaQLlSOLW4+1FVtk13Z8i7zFhwtx7GtcfJLfqnyHFIbHkLEGhaAz55Clsy+JNxW14LOkKWBG0kZuoub1rSYFF3f6K0nlkH+QD7Ul1S8FDVZhCMhxcWJFulMojL5wcWa6sAde1a6nUz7OBEkjkEFRY0SRf9arWAYH3Um3pXaIZ61TsjOq3UXrK+R1lKOI/IXK2NE0S2t+Drxq3cH+lcmSa3g4cSYiwII9a77EQ31R2OGZWs21Y7Jilomy+CKQC4axpNrIqromWQzTjRmuKReqKMKoKfy1B1oc3BZqoEGENv4nvTewjsRyrJGbEchfenVaZLZTyc8TqRrWiNL/g91t/aelYTtwSSxAudLetMqzMqw5YkPw03F9aOB7TKo41ciy3U60DcDu8OD02GwF9hXLQC+kiDdL2PIdqNcjcqTyFFkTKCosFPSstVM9GlFWvIwtcXH5fWsgj0fZwZnyEz8b2sQabWpPphxJKud05FSO9G6lvrerL5RfjZRl8f6mk2rB7KSRoQymMLyFxSXSRGl5CniEl+IGutbS0Hn7NKQBi3TexFF35F0vKkW8EvCwOoolZBaWXXkOOA2uw1rHYm+6fAqfH7jQ1ysS6WM5S8E/iSNdKalIvKvPJsQ/JxyJxZv8AKO4pFsYf6K3k7l2L8lIGHIWv1pGmCaK60VVwXTusiBwbHqKRRNOANq8C4nx3TkDZh0NFZWTgz162akCSFSCdwd7UVbB6W+CPXHkOpZT03p/+yEVU2CGaQxW/L0ND9Z1suYCOUpGqEfTauVBiyhE5ldSeBJ9KPqn5OWcHGzCQOQIYVqzAtlI7HyxISoPl2NBbODq05g9MEYAkAEb21rqyds+qJ2PD8SW9LWpi5EUpxLOxzKxIK8W9Kx1MpWWUpK5YXGncUt1RbVKvI7gWFhdh/wC1BMCNL/kA3QgkWW9dMkGl/kbKylfHUH0pTJfYZzFRWa2o9Ky1oFY26ljYqrrbkp6AUr7mxumzGR4RINiAvY1j2gq9Wyqm2N/66EjR/Kl/9L/BuvtWucigRTxksbHeuto/gTXZ1KI4MTkRe1Kel4Dpe3bkKbAgYX0YVlPYsUu7MzNiigBPElfSrsbuxSsrNSYmUsjluAuDqKvpC8mLKtZbIcdpVl4shFqO0M8x2Tv5NESCTtfsaS1AejjllOJaNuWgNJt/Qv1272/RpiP3RyJBPpU7t1Pao0uELaJbgjToaJWFext1Ui5IkN+DeQ6VtbP5R5iq7vkhyl5atoTVVHBW6whEMEhuqtcUd7I9D00q+fIqXnA4ZQQaOsNHexaXJXjZTjV1Fm6jelXovgTmk3wOlddOqHvS6oqdIJpMRWU8WBB6U1aC0yObAlUAnam10RttVB6DHdBYXYb66V1rJh004gbFETsSO4NBaw3Kw18cSAWby7UCtA7S4ccGguOJHUVjsL+0HiEJHG5vuaKZJbWcMcJEZTpY96BpkV5sejme9m1Fa6oPOqr/AJGcVcaD+aCYEaWjz5BacREKRYHc1jpJHqnZwGrmRuI1Qiu69SqlK5+QJcbhqG4jqKOt5DTnlkGXIsakMeSnS9OpWQHi7MwVklimKpcxk3AqpVUDqZrJQzQN78je/YUpsRtp2fB3JP8Aj5FDYHesSMvX+ZP/1HZPxRkZip1Ntq/Ta7QT5WUmYrT4+QVkvxBp/DRlf60HHOVhx0/80KqV3y61llMLuUNrWA0oLHl6aJj4siZZF8QVNKdUySlVa6F5k8yyEqulMpVQesvVSYtVjycezrxf+tY262PUxr1pBJ7MkLgo5FNlM53hSzQhQzWvq/0pNuAFdNnTBIr3YFQe1cmoE77pGhjTxJEvuMSOtJvVt8HnUdrw0PnfGkjvGTSqdk4ZdXJxLI1w0uSTvTncKuscI8YZo1PAkjpXdkw01ASmUWDLp60MJjrNJJDFjWTTiNTvXNwSq02gjzfjtTaQ67Cty2k9Oz6rwRDGnjPixNqe7KDM2rMoQy38hbpeplWS/S6quBnFb01eDybWdrBe2HG9q2YE30GCFONg21DLF2u2TuODXN/tTVyJSZwvc+NdArTg6ps1je1cLT5GWktbdaHg2qTBfkFPFr+grUUVrKBjyJdmtb6V1qoblRSddgehIoUii/8AKHIMYre4VvWsckemlmdU2ewKkE6G9c/AqqhnnmlibQLa+4rlVM61F5GtJzUNQpQbfwdKFiOgNZMCrWUo40CLfS57mt7CNdG+CSb3Y2vaw6GjUEekIbAzEqAB96FoPJJND5Yivr6ChraSjRy4QhGXUbHtTIGZ1hHAkrHxaulFOSVeWcluv5C7DetqZebvgQrMWJIsKJ+Cr180hczSMtoz5Vy8lf1qJsIRclDcjXvRuAa2XwVrIeHm1rDSl9eQdrSoQIm1sNu9FBBp/KKOd0GlzQQQaOUcGQqsQUN+9Y6Nkrq2/ISyAsbHWs6m1pzB39meNtNR61vRMvzxQ5MqVjqLUq1EellmkWRzxMg56EUp0afArWzt4OmRToP5roEWrC5AkW62okya/JHIVQ3P49acuSWyYt5gy3hub1qrHkbnh/7WIpZuMl2BB605VGfXyD+xGdbC1d1Ym6aKIclQBxNA6AVq/kqE3NdTag6wVZ5k8mKXvbVT1o1cvziqE+wqdSPU0faQNdXAQBDDUMKwUvIvMg5xXstr1tLcm6LiSRviY28h+VH9hdjrCBixjFJY30rW5Rlt3JoRyoFANqU6nXbga7KUJW5sNhQonsmzmPMhXYg1tqsVSXwPebqBcba0tVEe04H4vtuCjaGl3lENdI4CmxFt47GsrobPyyGT4xibhQetNrsgaaTYQcBlJJHG38037EW/ckaGNb2F5Alh1pFnybjZ3RSsiMN+J60p1ZY/Ejcf4+NrtyuT2oNNmgMvYjhHpsPJi1Qm1bTWr8nWumuScrMw13vqKZKBrAp8dDJ5b+lGruDOzd+Af1pQ1lNgdiTW90HfRLyG+BkHr9xQrWpj1qTS4Mynza9NromZbVfCFxwcZASxuPtRO3AumjkrFnFr2t2pPgXtcIxxceIa7D71ybB5a5JwAr+Y0J170Z1X1LYowQDHt2pNnHkK2n5Heywa5BAFKd0S7bw5GoIuOg+pNKbckMu3LJ8tW9vkj69qZVr5N0rFZYODl2ktILUu9J8EWSdr8Fs2UD4g+PS1ZXKD0749VyNheLhctY+tDZP8BVbiEEJob2Da971nSw6mTXkmmyJInve63p1c1ZC7ZcjFzI5TbkQ3pQ/U6laygcJJj+LaDvS3VFudK/ITwmWOxIYmgrbqxut11gzZ4JYj+IsBtVlbpo8f2NCEQiSS9uJO4plbQefh/tJPlI0DEjUU6v8AQ+9Xe0Coc48bMnKmfUel6+HSkfJo4ebIyjgCv1qfTJfJbRKlZZY+Q97EXbekrNHm7172gWc0i7FdBRfUOx9efAqWVZ0BF/UUyterG2zSQESFW5JcdK2znyMxcuTmSQV8z/NdRfgD2OeESKVAsAWHenMZlTrUoEqcAu9+lK68lDTaATIjRipUjsRROrYro24PNkLcgFhfvXdTPqlkk0uRHJcXZe5ptUmhzyqmFHkyhgTt1obUQylUnJWkkZsdb23pbq0Ls3Z8HTM5HhpbrWKpmlVVc+RhKuvEueY71ngmsp4IzPxezj707qCqdQxNY/4xes6/kXavyw2luwJFv/0oVUU6yyefI8gRqOtHWpl845YxcqRbFB4+tC80/Jn1y5ZZHkGWOzEa70l0hlOdEyWXC5kq2qd6bXSBl9FmiUfFxBrBra9aG/sPwfO+z7lrWgoEEaScTqveu7thqz7BSw/4WCgWJra25Kkpryf/1dafIVHsoUqOtfo1ayjs/W68szMhHllDJxAO9UVcI3POtbdmSzYCsDZbOKYriPa9hvgRA00TFN+lr1rhnmdk+CqNsoyi2w6ULSgp9elFaTQEcjJc2BNJlIttdWOhCtrgm+lwKFuSzJwpBmweR0a3p61tdIEbazaPg5hx5MMjB/x2BorurRJTddnBdLaROI1PQ0hcCvYfEC4oGsAxorWHes0kPjhjWM8ySDtS7WcldLuy4JXYxE8dV6U2vJ1q9UylJgVAvrSbqBvr592kQZk0qScr6Xp2KTRR7NFXwcgy5WPg1jW6VSQr1sU3yOnyuYHMjkOtIxpB6HsV44J0yAwtoW7U265Bxz61/Y4O0ikBeJoUoYGzUAcbg3/IdqayVPgUWdH9KNcoQ1yH7nlvYVkGtchhQxsTcGskQ7ck8sLITxJt0tTFaSez8yCJX2Ym30rYBVUNifUeRIPehaDTgrREZdNSaS3A6jb4ENjuX7fSiVihWVRgjkUC+3aslE+usnjFCGHNa2WKtdqEjrRQXHEglelYrM6zc/4GMivHY6HpWJwztL8BxKVSzAcR1NC3LEK8o7z4kcRXQC18sJW5NYjX1oWiazlicyIsh5W9AKKjBuuCIO8LgjYU6JNzrLkr94uTxO9L6wXqimWA2kgJB9TRLwcl/R3mAdDrWQPrX5YLK7Due9bI2lUKSCQm17+lbayKM2kH7TobWA71iaM007OARGGGxJrZBThHv1Fb8xpXdhN9o8C8iCJOJXxo62bIdbWs0CjHQXuK1iWweYBb1PWsgQ15GJNGwuLXFZ1Y7HNj1ZJVtbyHWhag9BKEUw47sniLmlWskx1dFAIBRrSG1jsK3z4AT/Az9iJXHIG16Ho2ifbs7BvlQq+/iaxZuAL5tMnmnxeVnN1NMrWwp5Wkn97HDWjbTsKZD+RtcrTyJnV3J5DxO1qKrgLVqnjySmBFBAvbsaLsQKzZxGSM9qLyOyq7MbHkn3LA3oXXg9BU6mhjzSMLXAPak3qgE0zk8sd/8i8q2tX8AWo2+CaT2Cbxnh/60an5GOrXk6GvEVa166ORWjmsD1ta7DS1AyhOFwBJGjEFVvWpi1w5Z5YUN14AH1rnY1WdnEgAzLdRa/ai4YVoS5DxllbU+JBobNEeeiXI2RJACRuaBNMm1t2JTlSxvcKdNyKYqJg1yUlkfyb8Bza+m3WlWxXwdbOfB0ZbflrYiuWaCyxSFZE11vEDyPeirX8jNs4ryP8Aj+csYDniR0pekLwM9a1a1hFy46+23Ignpaku/IS0d00if3ZoG5R6LTOqtww1RJGnj5izxAE3b1qPTLqzc6dkT5MEl+Vr07O6CvCJxG5uQBem9kLo5ETSsDYrqOoplUbpSA4c2VRYihtkmLVJHnIEqaoBpvS1SGa6JIlMSNvoenWmy0ZkoIpVkjl2PGn1hoyy/qRqO9xso3vQtI1tSGoHO1+Q6mgbJtL/ANFEbtE4KNp1pVl28kuluzgrfJllXyPj6UlZqvg29ar/ACIFwxUE8T3pnhA8UXI8xIY/EkmpndtwR7aPRwZskLmXQm5q3OEi308lRyxgElyCbEbVraH3t3sFBkRhwstzc1lqOOA6SvBa0UDG8eh7UhWt8lFm5FSxXUhqOtjLuECQ8S3JWw7Vsph4V7cjEypyfDUUu2aPTrnWvLKMfLIIBXypd8jzd7y4G5E6zRkWswpdM+rPP9inBkSzNA3LoNaspn2A9T1XdkU0wywbWvVNa9T1VjWhOmP7cg5g+tMd5Evbngvh9lWADWB6Ui0s53bf6KZIJW8wSF6MKWrLwOq1Mk/sTAFRdr/3Gj7Isq60pz8ivclx2/yG6+go4VvBHdy+CzGyoXU2Jv00pOlGh3r5uGLnVWvcXFFVhNQTmKMiwcj/ANRTOzCrL+Dv6r6dvSs7jb6oEwOu5tfa9b2QpW+Qbx9rsOprRlKtnJecy2XQ1leB9kkuSf2MgAim9kJtdRA3GmswWTcdBQ3rxwLrbktMiBh0FJSYnWXY40qLLe1x3rVVtBqjTkCUxEjt1rapiNU5BvGGuhrefknu27HTcmzbdxXDeKI5NjDieJIHQ2rlcm1vIIjKqNeRrZkKk3hAiaZX8Uv2AreqaPTrStfkpGRIwHIcGPSk2qjx/d0T4QgZa+4zSbdKCuX4PJxybs2js7QS2ZdzTqpryems2uWMxmxvbZXaxJ0Bobdp4Opa15S/J//W0IFjbRRoe9fpFpQ22rb5OSYlm0tcdaKtyX2Nupz2J3BAtXdkjz62q3LMjMxpoZwyjXrT1ZMTtZSVQSXFyvl6ULQ3PnwWxurj8SpHelNQehVRU0cdC8HiwJB2qa7iwVdO1f8AyBJAytdgR/pRVumTb6/gFY3IuDpWyifKEpYRF7WIBtXB0q72I5XlRjre+9qYoZ61MklAMTTXsTdTWWSKqdaqDsrMi6kH0NFVE1693+hcM9zYk/albI9b08uqkTmK5Fkf7GmZODNM+z5RnRLOHuW2p9+Tc3WvJpK6Oo08+t6REGWbsw1SN7HRWHWsUgaaQO9oj+6/etTI9NPkcgRVNyCaFk9W7Cp7lb8dBRV8huqSkUsa2PYamjkQ7yCCA3j41ot8csZ7ngQdTWQJVZJ3WQ7fie9GoDSSFiTgRztY9tKKJA5+CyCV7+Fip2pN6lVIopZcF5gXF2pMwKveeDjQSMLhLDvWqyB7JciZIJQAfWjVkZKYt+d7rYnrRIOxz914SvuIGHpWfXPgl2rMQypMzHa6yKOJ260t5teAqZNeDheHaPSth/IraV5CjkF9evWgdSOvLkY7YzeNte5rErD3W1nBFJAshIA0709Wgakq+TiYzo1rEjvXO6YxaSw2jJXre9YmPXg57YU6rXTIfZ2cIB2kW/Eadq5QW0zQEeQwYEaGjdRXXsx/JpTrpelRAbhMWG/XlAY3B9KZHZEetnJYBDKLg70nlCGxb4sLDi779qJXfwL7tvwZsmP7UjAMSOl6erSJltwIlWVgSuopigfnRLlknGWNzuPSj4ZXRJFmNkHkDe3Qg0FqidLwbWJNY6N9qj0qZRyyqaOKTytrSK2a4KLuCaXEJ1AuKdXQmvolydfF5Qg3XTtXLTkKluykjfGBNmN6crjO0CP1OEmo07UfeULtrDHGO0Y1tbpQTyQ66dhMkRtf1oqs6i4EHEe5Ki4pndFmdlU8YSutvIV3YHTR2cIfFIzcTxItuaCyGpqimS/9VZI+VzftSPshm10nknfHj1slmpiszLWbJ2RxoyCx6jejTBbSRXDjck8tRSrXOrtPCFzwrxtqhHUUVbFTUVERma+hvbr1o7QdikuWDLkFG2161qrJN7XIcWYFN9LGhtQi6lXvRSJe9j3pfVo3rCkB8UNEWU1qvyBW0oieCSNr7g05WTGdkPgSYrp9hQWaGZ2qlyU/rO4AtZh1pTukTa7KzgGGDKhl4kE361tr1aMe1a8G1i4kzDzGh7VDprX4KvV2rPArJwTFflcqdqZnt2Ga6Twj2HDJGwZRdD0rtbpoRlsphGiGgccWuh+lSNWXjkO7bEyYgIuvmKOuv5HYqOWZ+XiqR+JU97VVnoFaWZ3styID/wA1V2O7KvwMSN06Nbv0oW0xFtJKUC8SfzHpS2FnLJ8hVdTZSv1plODr1hCEQjRjpajbFVsJd2jYEDxrYEaccvyUQzqD5rcelKdfwT0TnjyOGTe3tmyk1n1/koplHLAfMkRwWHjbeseaZJqptJ2DKlIPtkWO4FZ9SXk3DJJSypBzYEMQ43FC3A12m0ICTHldeRXfr1tRVukUZ9aomlxpVYMLjW+tMV0zLXTZZBPKDoATvSb1Q+qV7Qeyc0FfJLGupkU29eRUMyFijJ4tsTR2q/MlFV0USWRwC44afSkO35J9/YjgargNruO9A0ecpbk9M8bDQ6npW1qxqxd7GbJiyTBha9+lUd0j2fXrXOplHBeCfQMpG/aqvtTR4/s+zNoKeXjrveggREnppxCwLISLb1qrJU8m+EGvyzcPH8e1A8VJ6OfqqtJZTHnpIBbQ21pbygVanZgzoZV/3X7UVXBjqvBDHIcaazm47U5rshlZT4NASROvJRekQ0dbwUY+Mj2JFr9qXe8Eld5fB2TF4fixFZXSQrW/JxsUyxi+46132QyjKyiSX9ALJcm57U37ZRr35GmFLDQKRQqxlrvyA0Q160SsKTlk0sSq/JSPpTa24Ms3I1OLi72FA+AXpHJYuEjxizAgCkvWGEtuCaT45lOluPamLZCnryRnGaOQg/idxTu8oT9kOR9lRRY+NLbEbaOCm6FB5XBpak6tW+RUeNJzPDVTRu6jkpysq+ShYgpIv5DpSnaReuru4XglyWBsxQg9xReDz/YcIT+sWhPHT60yjgZ6lIrLJnjKg2N2FOTkrc24I2kkDDmo4XpiR6GOdc1Pyf/XR7uVBONyttq/UoVkHr1qzRGc7gdDSfrSPP8AZSbGx5ADFmewFA6EtVy2kdmbDnCknXuKX/SIPYdpORwYwUFLlhRq1vkq9ZW6yyiOON08jxbtQuzTLKXbR6OOaEkx7GubT8j6tRAxsmVhwa1wLmhWaXIrXNeBByWjTy27UfSWZXL+ThmJHILdT2ruvwX5ZqlZKeHOIaWH9aS3DKM/Ek3Ax/T1psydSbMjy3UoQQde1crcnqY+vFZJ4GCaht6O6Dq2x7l2IIF6CiN1aRNIQr6aHtaqKkl0VQRrIAzaEUu3AP3fga8ItofKsqxV7cHg04UrvWwhDiwIeRW1rYkJwkVxyqFGx7ilOpHtaeAm9pgSbAV3IFU6pgSYqSRExWLDqDRK8PkU7NrkSsRvruNKNs37DzROux07VysjExTY6unkPtRdoMVuA4YmQgR2A2saG1vyBrt+TXxhcgnt0qO7E017WGkkA2a1u9AOrSRZT3gATrRT1H1hInkwmBvsOtNrqhVtZZPJhoxsGvemLQXa7bFrhyRy2BuvaieiaCvulaBk0cim4A+1AmmS7WlgEPcAtp2FGoDqkhkUi6lrmhaDzluTsknVLi1cq/k15/LBhzkJtJoR3rrZP4OwybYwzctUsQTQqv5Kr1VVyOiWNhdzr2FBZsHOz+CgQRvExQi9Jd2rKSmlm6uSJ8WzeQ+4qhXkFW6nlhK2Ava+9a7APQ7NiRyJoSGHU1ldGhG2jfBNw4i1iel6bMnJ/wAhJLxvpt1NY6gKsiMmXlqNWFHSof0ELZCM9geD07qMecBhjILOQfWsiDnBJPCY2JAsb6Wo05EXcluDkTXs2xpelUHSyRu488bJY71DejTGqbC5HJUqNqJIH6/yKhksGU6g0dkNpxVh+3yA0v8AShmCa9xc5Casp+lFXkn0TfglnlsNNulNrU62UI5FNERYnXtXOrBSfgoiaJtANb9aByjVIMsQV+TaAVqtJztzwBJOFTwIA66VqrPkasW1LGYmaLW5XNDpmOzrxBS5VyCdj2pa4M0fU40MIGrX7V3Zkd72u4QgO0UttSvSmNSi3DOGNnKyW8QCaXTgt1UCBAAeXK3pTXYmpeXwIy40brc+lHRsXtPkg4WuACDTpELhcj8drqUY2PSgsArTwNhfLjB9s6X60LVX5NoqxDCmnmZf8h19BWKq+DtKVjgFcgqtwLWrXUHrwCflclFvw5KdyKz6KmV9aqr2b5Gj5l9PA2PU0q3rIi1xnmTd+G+ZRxwdxy7VD7Hq/KQ71qxwa2V7EsRupBI0aosu1WX+wnXMzv1MmJrxkMPrVq1rZckuEeATm5aNxMfkO9F9NH8lSxq35GJ8jLzAKa+lLfrqPJRpnWq8lqomSgJBjapnZ0f5EVuv8mdnfGEXIs1WY+ymL0sZ9spDxC8R2NVfyxdUm/ycDOTYji3ptWwi6qVUedpF0cArXJJ+CTZy4QF4WX8Qvc3vW8oDmqk5LiI0d0Iveg+xzyeftq7AR45MgDDTbTaj7jM7w0NfCmiDMv4dKH7kxmmyhnVwvfhHPW29B90PglWqjgkbG9i/AkXOgp6vPkem1XkdG0nK5BN9LihaRtWlyWx5DItidN9aTaiZt/EFSPjTKLuvI9DSItX4Ozq38CGx2jlDIbrtptTleVyX4Vi0gz4odhyP5a11NIR6Ol4aSELAyy8b3HSm91BDrt/UFNyrC+lKiSa9u1pOZBPHlztfatp/gqrnxMCkaNtGJLCismiik1RUgRNV3FKcsRvq4FT8JNWG1bRNHkKrbkhnxrreMDU1TW/5KkoXJ1sJZUF21ttXfZBfXTjgA/FoYjx3Fd93I7T2YoHBgSR62upFdbVMir7MlX65AWw4g0ruVUt4bE5PxiyAm9z0oqbQFfX8Ey4LxqQC32pr0TEa+x/MBQTTYzgasPWstVWRPjWWXn5BXtZTy/pU6xgvfr9n+gYsx+RDNvsLVts0G6JcIa0qSDyWxHUUKq14EWUHnWI7KC3euTZl5A4nkQ1rdKKTVwxEsaWtxF/Sjq2C02QyBka3Kw9KeuTNFHBVhZUYurXPrStKMHOShpxpwFz1uaBU/IFs3xJNkZILarbvR0zAvjLIMrLIU2IUU+uZtvX4OQ/Jw+0A78iOgrnk54GUxt14HQ/KITaK+mwobY/kz6GvI3/slWRfc06E0Dy44J96dYgoky4Jl4q3rSFk0+TzrYu1uQIXQoRflY601pnperm2oIcuH/JyViAfvT6W4PSpmquSSbEI2ctfamVsbpfs4SP/0NKbCQSWLaW3NfpFdOCDbZ2uRZEJia6jkD1p1bSK1YyOJHHkNfShdoAekKEIkjZJOvG9d2Ib25LI14w3hbketDMvk9DCjsuRLZ8sTXcX+lH9aZasUlwUxfLobBiF+tKtiNz9Ztk2V8qokuouO4o6ZcBa+rDDhy4MmEq1gR3rrUdWZWkVg6TxS0b/APxWLzyPdZryhmPlyx6N5etBfNMNVUQVi86m51PSp7vqVerRSQZuIQlrkVnr6S5PX14rCM1IZVbxO1WtyTKyqUxzSIRztasdVBPPa0hyKJBdTr/NbTgRtb4Bx3dX4kfejupJKvkv5IRqNanSgO82cCW0fewNGvBz4D9vUW/k1yZJ7Go1YSCLgChdiO2pWsOOU816b2pLs54Dpe1vBJJG0RJj0HSnK0+Rlawm2I91ho2xpnUUqHmkjK6NauSYy6aqejdQ3jd/9KyyI9LPwUc4n2XyGxpTTI7TZwcXKMTAG9q15yi7HHwij9kyqbDbal9IPS+tUqHBLIujDTvXWqmQ9pY8Ssbg7HvSnUC0IB0hvc2uKJNk97NeDoZCdLEdqGGISbtLFThP7R9aZSR3Rtksqrup12FNTGXkEBzpxt60XgdWKo8xCXv/ADWeTHLPRhG1K3vXORuKg84FrBeNag7r8nESVDf+0VzaYVbJFUGQFUqaTeksppWKscJoZQAGs3rQdWibWUjp4Jud9q5Syfli5GsRfUUVUEqQJZo+2na9GpBdW7QRzsDsASKdUspjCElJWNyQFtRygm6oTNhhjyGjdxRK5PfSWBGrCwbcdaJsQ7jnjDIARcigkXZ9uCaxR9Rp0owq+S6B3vobjtSro9DOEPMjLqwPHrQRIcfg4uTFG+zFD0tXOjaI920XwSwsAV8anvVo861n8lgx4Z4zqLkUj7HVjMm3yZ+T8OrJ49OtU09kZbWKmenxzxuddPWnPZMj/wCiWPQIj6g370LbZzu2yqQCWMcN+opdeHyXUzhSyWTFZlIt9RTlcrq1BnhHx5blfHrTplC625KP3uGnE8T3oPrkHWgwZCuNDQ9ICyxhBq5Yi5071jRRRf0gpJFRr3+9DVSjvZbH46JIN7k9qC7aJaXjg5k4y22tatpcXtclkwbryS1MWpJ9kkUkE0bEheXamqyYcobj5TCyyrxobU/AWVZfB2dtT7R09a6q/I3akcM9CBMlnHFr6mubgVWySPPjOsbKjb613efIOl5rDM/KGTEBfyU9qbWGA6Vgp+IMjyWYFT6HWlaNAY7JWhH1MOa8cYRjyHW+9ebfBNyVbvuipHjnX/E5STtSLJ08qUP9fL8kOdHmoQz62G9U43o+EXqlPKJ/cmkj8BaRfWndUn+iTaH5G4OdnI4Vrb631pe2NGiavRGwZS4HMA3rz1SPAOv9OESSsgl81IU1TROOAFn1twDJiRS/hY/TetWrr5G306+SaX4og3J8exptfaQi3sCjhxRoTxv9K37XZkr1tcjkcqp4jjbvT61MWcVlh42RyAJ1pd6kyZc06frjlSHRzwHon0hAQS8ieIsDWukeQMqQOlihnHEISw61is6/JTb9shMWRC4ABA+lP7VsLbUoc3+WPQeQ0IrFwyutOCZV4sQUsR1prfBb61ORkT5CmxJ4Ha9ZZVZU3WqL45ItAwuR1qa1X8E+2rGkRs2mn0palECTdv2QZk/sm6Jyvpc1TnXt5Z6Gfpuz5J5MpZVFxr2FMrSGeppkklVClaRm24gbmmOCTfSua/ZYjLCodWJHW9IaduDyNb2uMGVC6tYX02ofraGY4OGLsXIU2QdBR+DrNJpDocSQki2nel21QyuyR2SJI1IY6isrZvwDd2soRE+YieKNdu16es58js/Vcch/voCA5sfWs+osvlCUFEWQh7EHtS7UZNfyDJJExIF79RWqrJbZtskyY7k26DSnUsenjlBOEdGDFrCj8j3deSyGL3dt+9KtaCT7VITY0gIBJN+orFdBdkCbxP5HfYVvlAub3heDrTgyeQsKxV4DvWLcHnjBa6fid65W4GLhyyOeJVJJ0FPqyS7drEZyFhe9iy03rKGUycyO/bDoGXxoOkMY6QpYwBZo7ltbUPhi6ueSbIwQ6AW2pldA7XhEX/WcW8N+wpv2Crex8BNCyMGYEGsmQO/Z8AZTmVNLhhsa2qgLXNJSybHyJVksTpsa1pEihOTVxZjE55fid7Uq9ZRb665LGlh03AO96UqsZvKDXHgmHixB9KF3aFVu0pZ//9HQnnYte1q/Sa1JdM1XlnlPuoFJF9zXPhkF3LglZpI5fFrDrTITRjqk+T3/ACasxIN9qFeROFPs0IzJJjudWMZ3Ap0Jn0eOSog/cRgfb0Y9Dqa6IMtXtwEuN72sgC2oGyuuizUocfhiVHCQn0rFtBFp7fZk6/HzxT8dwelMeiaOpsu0FgxJwfxpPdFFtU2djWQEow4mss15NzhuD0crLJYkg1Pt/ShHs+tn1UsvcNJELXY71HT+bQPs01JmzRtH5FLGvTo0zy72nwFFF7qnkth3rrOGD9iooRw45ibwcn0o1aSS123yLMvFrlSD3ooFVo2x6ZMpNgNPpS3VFPVV8j1jZt9B60MwS6aI8QyLcWNd5PMvbtyEuYFsCmvWsecgfW7PyVYs4kBCn/8AiaVpWCmsVUFgRWW3AGkNx8gduz8kWTjcv7ALVRS/7GpdFJN+siagj1BFM7tkmuzZxolJ8b29NBXdiZ2EuGifly06CjXIedZclCOk1tuVA00enmo5GxrxNiNO9A+TLaSwdFYjXXrRCPBQjk/3UpoRewyRC0dwL97UNXDOrWVJDd435EED+KfwzKrkemTAwsTc0Do0N6sW7rzspsN70SQNqQ+TxyDGQT5A9AK7pIt1ljGyoWHknie4oFm/yP8AqfwAq47P4HfoDRNsZWU4PTKgNxrauq2M6u1iYmUPcXCn+KbxA5VSY+Mi/lYn0pbQbtzCPSheYsnTSuq+BOibscjmjZTHI3EjYVrq/KBhvhDA0bCwP3oYYTmOSeQsjX0Ipi5Dyz+ThMbqDbWuSaYe1oR0w8l7jtXduSbtwIeJgbC9qYrC2+ScqwfVibUUklrS4QRJR+VtDXeRscguynpp6VqQ2mcDISApN+PoaGw/JuxTHKrqAdSaU6wM0t1qHJCeOtj6ViseTtpICNIFIA0rYQvNJj8fImU2Xp3oL0RbSqSgqOYxAD6HvSfqXwI1qn4IsiYq1ybjvTqUErGGRzzFhdW27U+tIKq4JKWPx5uSrrZ6C9R9f6gp95g59xgR0pfX8DGps0kTZHBwSutMpwY6dUTSIkkdmNiKanDOqpJ0BVSA2gomPz8MbEJDY8rD1obDK2VVJWIwyWOtLmCXS/YnSSWGQcSQBvajaTQFax5LlyvcS7a3FJdIEac+BHvNG3jfj2NH1kR0hBtOjL/7UHViNE3wFGY5PyQXGxNc5Qyj6KZKJPjBIl1sulLW8MP7ezMiaLJxpCDqL1XVqyCpVNinzJOXEiiVEPvipONkloWBFiKzoTaUlNIy0zp4cscWIBNM+tA54KllJvRfKZFgePPrSHii9YqzLYPmihDPGyn6Um/rzwVrGFwzfgnhzsa4PS2teTejyuO46GTmYGVDLyiY8e9q9HLatlyQWdZlk0ORLFN/ke5B7Ud6qy4R5Ot+1+FwbuPMJRoCG/3W0qDSnUrpCGPBmk2BV17daBaZr9G2tRPkU8cqDkVKH02pisrcTJO7duUC2RZLsvIda76+eBdqyuBaLHLdULAn+2jbdfIKiihgnCezck5Dpfelv2F8Mh19ifBIYBHpxAPYU6jkHGrg8Sqi0gAo3L8D7NvhBwBHcDnxUbCl3t1+ORX2dHHyXLJ7LXGo9KndXfyYk7OWFkOk6qQLMKLOnQvph4bIZIJkYsHHeq63T+CvKqtaEiWQmUEjR6cuD1K0VayLjyWQ8JgdKK1J5RDraPHk0Yzjz4/KO91qV9q25FZp2UslMvBgQSLb3p3WUV+vi25YTSRzact6Wk0ev16KRX6ScrK+vUU37OCPXePJyRTEw5G4Olq5OfB4u+jvaQ4jCWtsD3rHJ2acwd/VcsfaO/Wu+xfJYrKqhijDNG5Mx2Nb3TXB52u8v+SyD5ARuAASDSb4dvIWOLtbkfNlwymzLc0uubqj2cvV/oxs5I/dI9u3YircbN1LNKQ/IqMR8SHGo2vTHPwQ7at8Ipx3x3AUNxI6Cl3TQjPs2Lmn9uQ3J1Ol6KtZQ9Yt2GnIWSMmxv0NL6wy7p/IsSKU81070cc8ElnxwJSaSKUe0eSk0bqmuSbqk5ZsQTu6XZte1R3okZVq74QrIJLmy8vWtp4PQWSqSSRzNubW6Cn1aAs6oZEzolybEdDWWSYlW7gmVZSAbX7VyrBjr1gBsVDcFhc7KKJXAd/gWcWQRt4gjtRd1JtbqCZI5YyQot0tTG0w6QlyN5yhgsmgoYXwBo1MIVJOsbi5Nh2reskV6Ns7JkRsLgXHcVqrBXXHqpYEuJHKt0Nm6Vyu0Be8/wCDKnhkils50OxFOTkk/wBr8D4GkdSFOo20rLI9ekUrz5L4o/dh1/Je9Kbhkum0oqx34DqLdKXZSKzmx//S1sjFjYWuSd6/RqXaI/Y0bM54TFIGLEL2p6tJLW0cjWaLqfyFDyIv2vbgjVmjyP8AGTw7WpscHo+rkqNSWNCJY7HW+tKThl+luIRL+uEl1AUdTTe0oRfXqzSxooCCoszHW5qe7Yj7bWcHh7ySW47dtq7ho5RMHZJH5BgAGFckjfr7WO/uMw81AYd6H64K6ZT4J58lPcsRdunGufg9X1vW5n4PMpWzhdeh60vPxyWbW7OF4LIcuQJYpcgdKn+tdpO1S6wdf/Kmq2P80+vDPN0aVRSFom1HJeoNOtyiGn9WOuyNqgt6CsU/IVkK9sk6gW7HejkGrSCWJgfEW9AKyQL6chnklyQR9dazyRa3nhHWdHQWH/zXJQd0hQIaMHW2t6OTG48BcWVg66dzWSDe8F+PNKRYnS+hqe9UHSEi73EZbOov3FT9WnwBo2/BLL7F2vfXa1Nr2JujkgmPG9jp61RVG0ylksl3X/GLnanLjyejXNVryCkk8DAsNK1pMCzTfBbDnY8q2cWbvSLZteDq0aQfuLsutt6yCfX9jIzHItj4t3FA5RPVjo2ljU8XJ+ooLJPyh9FKFyNFKbS3v3FHVOvgN16eBX6sIa6Nf0ou7+TFe0yzrxKpuRoa5WbE66Nvg6jqW4gePpWNB50h8gPAoYqbsDtRKxZMCGi4MCfG1GrSYm5GB0/tPJjQtFdKv5FOmQXAKX+9FVqANrVrwUxY5DAkAHagtcn+7tbgZJjFrHa32FBW4driZcNCwZrX70ddAu8OUKeHhsb0atISmzgBzzG2tdUr1apU6otpe9aeda0j4kkOqm1qCzQjum4CaKYjU1isgHapE8MvNgaarInUSwHiawuLGiTKl4FyREC3XvRJlHwDDBY6tf0NbawS16qEWxqosCf4pFmQbauzhBzgbjtvesqdapMVmABU01QHnVJSGkpVwWG+9C6yjZm3A8Txlu1B1YFqts7IElUi1cpRRnmZ+RjNx8NKfWw63iCeL3I5PIm1G+TqW54KlnXtr3NLdR6rCDeWJo9G4kb0KTTM6NokkmiA1Op601JjVm1WQY3UjS9j1rWhTcIpSKJl63pbbRNpq4HoOD2OooXyZR8yM/XRtV3ND3aFu7bJeM0UlgbD6UyU0BaF5HBTIvkTc0EwJtYQ8Tq24AFF2FXuqoswo0fRW5MO1T3uyRaO9oK1SQNYgg+tDKg9TFKYJ8rHkYE21HpTKXSKFVGXPG+xHkNqpTF6MnVOTcWUi/VaOQM2k5JM/wCPZW5Jfku162t5Fa37WDxc3IijsRqBW2qmep6mKuh/788sY1tQKiku0zpShr/BfITREK78kO4qX2sVZfs8/PVNwjelnjdLiQm/9tQUo0/An2VC8Gc/AOWMYOu7GnpN/J4EO1oTKsb5Ca4CgAdqXf16/Jdnml5L/wDslAHOMhvQ1K/Wb8MHWjtwmUR5+JOvAni3Y0m3r3o5+BqxaUCJsJWbxam13jyhWl+vBHMpgHO1yNDY01W78Hn6WdvAj/spiOIUhe5pi9Wq5YyvrVqpfkYjJJbYN1NZaUA38HJMWIsSzcidtaz7n4SMvq1wiGSUQyEKAw6U6mbfLF0xcyylJRLELaN6VvSGeljnNeT0mRNjeb3KVqor8Isrn9j/AJ8HIvk4JgRwIPeutg6/J6OHrdEeZ8Z14obONa1KyYvZWS5EyrFMtnNn70ysrwRJN8kKS5eExCm6E051rdFnrYpo7JmxTGxHl67UtVaPbz9bojyyxIwPKw9KJVcEvtaNsuGViBgxvc9aU87Hi+w73vCOvNjTHhfj2O5rFW1eQHk6vqSx8Em4sxYX0ptm4FWu6uDUjnjUWAFSWo2Ks7WYqeSKUELq1FSjXkPP1m2ZsxyRKB09KrrEHs541q0NRJWIJvvSbQenSyQ0pyBBHFunKurwef7m0yLkxYmPlfkeq0xXZB9jQtMT22LAbbGtekhetZ2seyAzr+PkBuayjg9S1UkAkc3t+Z09K1tSc9EqcAmGVdAxKnpR9kJpBK6SqfEm46UxNEejVnA747IyS5U9+u9L1ooG+v1rJthnIuVsTUMJFF7JsVPHyQlTZxTKPkVdSiVEJsH07GnN/g2llVQjjQIranToa5WZJro3aEMZUIuCNKxMKzhHgJBGeNjXOJCzS6ywB0vYMOtaJs5ZyYRsdRc9DW1kKyckkkTuCLAimJpHZVXlkzwFU8dPpTFYZtp/PI/FMgU8z40FoIFpPg9NBHINQDfrWduoGl/rrPyW4mJg+3fQOo6d6mtrdsmr7GlxrLBw8V171tZ+SrKj6yxUSMRbiRrvRtlWEJH/09XLyXvopBtX6PnRCNMERTNI8V+QHp1pySTEPNNQjKbMljmAJNh3p/RG/SquStPkFYXVAG60t5jVi/LZUucrAaWI3FA8yn6uD0wEy8jtXV4JrcsmVpIJAyE2pjSaOr5llX7kgPIOTfcUr60MWSbmAhlSHVhcHrWOqHZ5qeBMwlc2UkKd70PY9fLKtFLPRQmPqeY+9C/yMejtwUJI7EAm31pfU20IsjUyIQD13pT4Yq2iS5PCEx/iTempyeZrpISxqzESDWub/Ah3jhBmNV2saxORd7M80HPbQ97VytATt1QAjljtrdfSi7JkVtEHxicXsb+prJaAlnDFDYHjr3ruzNdnADukZ8rFfSiSbAVW2JfJ4uRGgK0SpPkzTKHyymKaORASeLb2pbq0xlFwMWe2luQPWhdBirBxym6mx9a1SBarESRq5YbkD7Xo04KKV6yTSwSxj/19KZWyZv8AsSSRyO1lbiTsDTU0g79a+T0cciNaZTbuK5tPwJeyXgqEYKFom17Glz+SZ2dvIEeY8UoWQ29a15prgWqcmlBk3exbkDtU16cD1wx8sEUuoPE96XW7R1rRyTPBHGCQ3Jh2pqu2Kta1kdjnVvGTUDasdGvApLngYAoPiotWDqLnkY45KLeJ70C4KYmBDxi/mOQPWmK34GJ88AhEjccV0PWtmUG22wcmZg29bSqgTtSbSLhzmU2db0Vsp8A0z/BSZVlUAmwNK6wWVziCV7q3EG9qbXk21fydRGkO2tZZwOyhM80fcaX1IrUyXbSWL9tQx43NFJK7OZZ3H5oxvfWstDJFflla5HHr96U6Sd1bFTTK5uBr3NHWkDK4E7WOhBPqKYihIB41ABtf60SZt7C3HE7b0SAYhJpPcZSPHvW9UBnRJtj1bxIv/NC0ddyN0KgXsaE1+EBzC6Fbg6XrYBSPMYzsACK5SMrRhJK4PT7VjRZnVIGR1seVz9K1Iy1X8EjsOWhJHqKajK0gJuLL4rrWFVKT5FrH7hIAN/WubgfVpeTpwJCt+QB6CuV0Tb+yo4PJj5CXFr1rsmQLRWFPO8b2N1N6JKQr0hSWw5XJCN2pToDEhpkSK4LCy1jqgISGSzhluBc9aBUEaZyIOYBuCPSj+s5ZcSEZ1kF7W0oXWCTYHGZopVkW4BOtqCJRLh5k3YckFgQeQPcVNbM9WleZKeBcEi1u1KmB9YM3Lw7ttb1NVU14J9bdWZ8kHAWW/IdhT62kTROxBmvJ1JHpTqJFd8kkFhY8OQh8AG71mlmj0/St1qBL8bLGxEbE+lEtE1yI9r2U3DGYOJKJbSkgemlBfRRwefX20nFTejlSOMIhue9R2q2+TvYvayUgNGZdb3be5rpVSWVRHlkMFg+3cV3Xt4CzTfJSWhlUFfsb0ENFdasH3F6DyB3reodk0hq5kmtzZT/NA8kIrmnaSDLfIXyia+vU0/Otfk6+NUuRP7DyL/kcA+lH0S8Imsk/CFY+eiS8W8tbA0N82yN1aZdJkI2hIAApdc4HrLryIyFB0Qjbem0/Y36+ZYqKTJiSzHTuKN1qynGqahDzHPLp7nIHWxpcpHu1VM1ECUx2RvJSB17Ux2TJrbwWFYOJMRHMUlN/JP8A1o5ZJLM4YHQHtTq1Qaylg8nkNt77ChfCPTxzSZyTCMn5eJHahpcp33VUJbHWLRjeqFaTxttXY8kJLAg3ToK52E0tDOFZRITH42reI5Ns1VtvyF5MVLb9aWzytL9rSVxSojjmTx23oHVvwOpLtwMeeBJLrcA9elCqtrk9THB9pZPmZDo3IEEEaWrc0og9OvrJuRWPnzKw5Jde9HbJMDSFwmaCSQ5PUhh0NKadTytLTaCXIlaElQSLdqbWvYG+TZ7HyFlGrnl2NZekFONelfBpwRxvGQdO99amu2mD9si5MZQCASaKtzL2cQdSNgvmulc7L4Fq88Iz8sGNgyg271RnyLvSCUzsWJTQ9zTOo2uSquTTwcyWSMCQjTrUuuaT4G5w1wUPxJuCDS6jNOBEjqq7HSmVUsS6PrIq/MAg3WmeBNUk5OGF7+I0ruyOtdSNhDapsaG35M7cQcYkHziv61y/TAqo5kGZYSLgca2rY28i1hkueNip60TsjFZLyC8bqv4gW610pkW15EJyXUWYGiEU4Q2cI8d/x4i5HS9LlifYtIGLw4EKdaKGUelm2uRhkZALtp2rYktup4Q2LJa91OnahtQ7OnJ//9TWMnuqQT5AV+jKsAaxyTJBNsyXB6012RPnZVXnlkvyHxzSr4jUbWo89BtoS5MtVlhPFhqO9USmHRzyWwy3W/Ea0poK1wxM0YII09a6JF1pwDJllbKxuh9K5VGfR8CXyUH4gn6V0F2eDJ1zctXsgYj1rrJMqzwrXll8Gc7KBItiNTSXnAxrs+B0eRI8lkYj0oHXgJpUfJVH7rbgAigtCFUabk6kssTatpfat6poRo5YbZjBtFNbXPgj3pyN/ZEiq2x9KzpAl1hINZomtb70PVoFpqGxolVT4kn0oepNebMCSaS+mx6VtaoG2aRxDe99K1iZhDlROO9xtYUttg0bsKliAJuLLvR1sUP+RLxoG0trRpslu27f5A8Fa1rjvReS3OrR5pQr2vYVyUoO1YY2OSMsL+QobJiqy7BuwW9hoTQpSOdQQ9zZutbAxLqLaKNjpckUXZnn66Ns8YQ4KliLV3aBNrnExypup/mud5OpcVkwry8tSaOtg7ceD0drKFNiK5jKvxJWFdk0fUdKTwmNlM4Gl/u29a2EKvZIUyb8NT/5o0/yBWsLk7Hkuo4sCPWsdCjLOeRyTAi5kuO1Ldf0U1r+Ed90cTZrDvXdQWutWyhYlZVPINpS3aAK2mBGTjllJAvajzuFtbgQmM56fzTHdCsrJs88M6EHjoD/AErFZM9JtJB2vr/NcuBF7S5GQ+JuN/WhtyJtpCKlu2hAsaS+CR2SFy4/A3BWtV5JdbtuETyKT1p1WFSsCwinQmikooA68T6UScjzihifSubBdkjpAHrXC3zyzkkBZb7/AErlYYnKIZcdw1zpTlYDspFK24vr60R1VIS5VrK2461nQZ0Gh+ZsdB0rIgG0IdHGoGpBoGzc7Nh8Qp0F6GSpS2dCKx1G/SukG1uYQuXHANwTp0olc2vNhBjPeiksdutSjGEBBJB5dzQXk8y+9nJoRwQOljv6VNa7TINN2+EcbFUaA7US0YzGfklzcL3oiLWddqbnpDKdH/JBBjSpuvpTndMnruisY5bS9Ld4MvqkG2JIFudBQrRGLRRIt8UcNPIGiVzXfgzZrwXNjajblHn7NwPxsy1hbxPeg+szDHk0IslyviunQ0Loj2M80lyymDLlQ7m9KvmmMVU+BkmeZRZ01HWgrh18E1sE2S+7JJJZF16U7qkuTq5pW5F5ODNMpDx697UVNUvkfa9fgggx8nEmFxyW/SnWsrI6myqXtLaYgpobb1NbweX7+v8AbhjSI2HkLW7UNU0BhTqp+RyrEVHEiw3rG2OtZ/PkHkhayC1utdD+RfVu3J1pJB4mPkp70SqvyXVzS+QAfEGxW1aymi61kbHdgSjAsOlBb9ktrdmEupAlFu9qx8eA6tVXAcmJHwYpue9AtHPIjTR3MvISMbjWq6NmVo0jFz2MUylL8RVFVIN8f6TZTDlQsV91zbsay1X8DuXZQg58mOFrp5ofWsVW/JQ8LWfJyD5D/IOVyh3FbbPgdTNVZt4UsEv4A3qLWrR32N25HyQLL4hzcUFbQA3zyITCaMk8v5o3rIeWkgmCJvGU2PpW9n5Q+jfhCjjlGBiNwNBW9p8llXClj7MV13FAuCbfTtIDxhxZluD1o1aCDS8eCZ8SxuhNuwpq0/Jyv1rLCZZFS9r30vQppkt7duSUO6k+PJe5o0pJsqdmBKylNWt2piPZzy60ksxFR0C8rg96Ro2ivG0lbfGEqCNVPepqa8lfse0q1gWvxtiQLk9ulPex5C3drEE8WZBNpsDsKfW1bIZSlU5Y15HlS5YK3UGgSgbdJ8kzJIGuoG+4piaA1sqotwpsmxF9KTrWoHrdXLZTLLMtzYm/al0qgt0mex8meQAN4jua6+aQFFWlf2UrB7y2Vg1Ld+oilpfJnZWL7bbXqjO8jLNtiIY8gOR/YelHdqCr1+tSkCwF2sBvSztdPkrVI2jJDX01vSm2mJ7OxL7LI546r2FN7SI7JHQHU/8Agmu4FNywmlQMLjXvWJBOrkItyYDl4msiBqqk5BaEKRzfkp6VytIOmnMJHA6RMbi61rTZM5bPO8TnS4DdKyGhGvAhhChH/rsKJSxVa2s4M7L+SReQBO+o+lPpiUr0nEsXh/IQEcgPLreitmyr1cXBYvtzqPIXPRaDlDL2hQgQJIW8QbX61vDBX7P/1dX3wgF1Fm6iv0frJFZN/wDk9+2C4Ut4nQV318BrJVcsOZEKFkY3HWhq3PIyHaW/gzM7Fb2zJx5A1RS/MDqU7LgxHyJYmHEWF6pSk22SSLIsxXXz6i9BasDccuz4ETiZ1FgStZV8l7rWlZZ2KMoLlvtW2Bpd28DGkkcFUXWgQ90S8hYyT+6PcGldZJoWtqp8FrkKfAeVKXg5p2csbjmZjctxPY0NkgXpVFqY7PoPy7ml9oItNkNbGYMOXbXtWK/BFrtNkGmMjG1r1juD9sHWw41HkOIGxFYtH8C7bP4B9uNWsh5drVstmKfkJo76E2ArFYVvpHBwBVBtqK6ZJHZsoxpEKEXB9KVdMp9SjYMvEkqRa9HUouuYIJ8chw1iU7CqK24Mr/smL9r0sDrY1vYenJ4sikcwLGugVpZtnVaFWuNr1zTOomiuNYnQkG59aS20w+zaYZhjkW6aOtYrNPky9m0RtK6OQ62tTlWfBDZRyGZUtcafWh6sU6tnllD6De1d1goyzBdGk0tt1ok4C1skcTGKqbNb1rncTW8jFl9oi68h3oXWSlJwE0yS+P4msVWgXTrywHQKCQbEbUScmVTuxbZB05JcHrWqpdXOEFGATdeveusb36rkoGOGiKnfpSu8MmenZQCiTR2DA2HWts0ynGIQUksg1UnWsrVAbKRC5Eqya39KY6JoHLJJlLzsQLeXpSa1Lb0QnnqTsL02CW7gIEdSCP60JLewxXAOl6Fom0sUWVgPE3pUsGssQ4IYjja1NRRWnMExNyRcL0po5LryMRCRY2YULYDuA4KnyFh2rU5FtwEFLRkroKyeQqKRYd1uAaOExsAGSPkA5rYfwJ6t2hEmTEOfJfxplHwUKvVijilm8T9qPud3TYtVlifz2rpTJb6S+C2P2ivKluSnNuOCqJY5IzY/xSrSmOrZqoD4pUo8cn1BrVf4YjTTxwVR4zSg2P2pVrwU5aJAyYTxi5GnetrqmTex7EnIcSNgeR3rLas8r72+EEsUiNZDe1Z2T8hZ+eSlBKRZv60Dj4LqNI8zFQdbg10SK05JG1e3T0pq4JmlU7a3kpII9KGZEtzyUrcp5LyFA/JRXwKdX42G3SjTRrSSIMrFDo1yNaJXPP0vPggbHCAEAkCqq2Lcf5rJbjMQgte9LsizP+oRSjSu1gLEdaW4RTZ1oPggl9y0psGpd9FHB52nsqrheWUyY6xuGiH3FJrefIpt2tyM9yV0IdSbVnVJ8FmdFEkWTjFrGNShGt2p9bx5FbWS8kciP7y83BI1P2rpl8Hk2t30KoODtxJFZZtFbvzA328cAltBtpQp2GUdkpEO8MMvgeQO1MVW1yFTK1rHcjIZiP7R1tW0pB6muSokEkjCPlfkvc1zRNpeKjMebC3J8uoFKtW4j1qXswJ8iDkQpse1HSjK7YWdoJxkFmvyJFN6BqiTAmRWP/zW1YFlzBnZ6RD/AJNb0+k/AnerbSRmNLiI5ubgU5JlGWV1yUxzYLx+Js1C05KWr9TnNNkINu1bAvq15CxPlmx5Rc2F9qG+XZAUyacm3/3GPwEkY8jUn0Pwxr9a1ufgox/lIZxY/nSr4uo3H15cfALxyztopHrWqyRU3TPlh/pSpHq9rdqFaJsD7e/wTPLPHqpLA96eqpiNKqBZzJmbiToOgolmhDzrXkZ7icN7Eb0MMlvNhMmW0KajmholnIF8pqTrlF+QVdDR9IHet66qm2OGOssOoAboRQ9oZWr9lCAxknhcBxyXoaK8NBU0VUbkEz+2ADpfrUFqKRej78fsmmzclJrADQ7im1zq0HX1aqwMuSZt1A71tKdRulEmIGLI2oAtvemO6FfYqoCSLjcMR6WokyS9nZiY8iSJrIPuaJ1TKc8+teS8ZBkUcrX7CkdICvDiD0crCS2nEd6114Irf7Qd/biVrkkDrxoXm2VZZOq7DpfZkj5Rm/13oKtp8jOjt5MueWeKT8dOpqqqTQ95qoxXeWM32PahiGJbUHI5Ghe1yQdxWtdgRv7aqxBNgaH6yW2bbZxsqFmB3HpXKjOebTGr7cmxt1NC5R3yH7Sgi5uDWdjrXbZ6RIeJIvcdaxNmXbiT0EKSAre5Nde8Eq1jgnyYPbbxOoo6WkHq2+SQ3fQmxp3g9H1MkuWQ5uAoT3OpNMpcL2dW1wIgxYje7a2v6UbsB6+jfCOR5Jik4nxt/dWusmdeeTUx8t5IyCwIvSLUSYtwk2f/1lYvyf7KLsB2r9RtnBqpWqTKfcVVBIO+9BAiHdyU4+cnFgGvfpal2z5GdXDRZG/uIQ40NIuofBVhVKrMvL+PjcERjU1VTT8kd7NuCHGxQJeBU321pt3wVY6dOGXHBdSF5WBG1KV0dpt2skTPCI3tck1zvKPR9bMknXJR7x6UdGmg9Ynk5GuVJIObcaNxBOr0VuC7HTibEk+ppTQvXeWWRywg2GjdzQOrItrtKWasTAoG0b6VNZHn20nkqQJLHsARSXNWZVyhD+LW2+lMXKNfHI5OJHkCR3oHINXLFzQkEFNB6UVLfkO7gUSSNdaIi0sdVmA4lfGsaE+B8MUIBIFietLtZno+rMMGX2u9jteirIzSYB3HidO9EZSv5FfrsTrrfqaLua9Ejn6CtYGxINb90E9t/g6MCyNpuaz7uTa6yoFjGZeugou8lS061DVWW9tvSsbkCr8tiZ1vuNe5o6sj2Z6LHRgQQCelY7sXTRsJccgX/EDTSudx60hfs61xov8ANYT2UvkWZVVrOpai6/gpyzZ142ceAsvauTgrcVUsTLA0YDaijVpJr37cj8XiykM1796Xcb67kY+KbC2o7UKuM01SR1IigsVFj1rnaSN6duAveK6WH1rOslOWRw5dtDr9azoW0xEPKzP4bUxVhAXouwPCUsDy+oopUG0jsM9pjrqKBMdpohbxFOtwaNWkivaQQLkAGxrW4JdtFUo42GpuaVMkVrdh8QYgG+1A2VZM9KHJN10PWurBdWqXJK6LfU/0pqYi7ZxPcB8SAPWtcC00vIUh4rdzWLnwZblcAwZTceKoSp6mutmP9fJVrLfJ14yx5D+K1ODNLJHI8QuwB09TXW0gVXZVCfD9vS4t3NYtJNto2TMoifSxBpicinMiJ+PPYfSjqY6QzsEh4MpW+uldZFeFf5Y6JrnxFj2obIYnHLHAurDQE+tA+SPS0sux5mAvxAv2qe9EanwVGRHjIZeR9an6tPgl1lqEQslm00Hanp8E6io6MHowvQsPPljLWcE/xWfBYnzwcmicjlx09K2tkddpIjl8PLYimLk8+82YK5I2uK10BtWEaEEZaMEAEHrU1rpDK6JVH/rgLqQRbakvWXwItq34I5MZXYoielzT6Wjls3KkPkzsj490ktysTVddk0U3vzAuOExyWZjamu0osytDCkyDjygprQ9Oy5F+wm3L8FuPkjIZTJ4kVLanXwecmu3BWs8SEqZLi9LdG/gqpSzfgaJYCN9+tC62RRpNKwdyUx2jJJvppago7SS6K1vBjMkchI26VdSaisM+vL8kTAxSGw61QuR1KuZZbA0UiEPoKVaV4LfXTsyLIxJEflE5Me+lOron5LlFeWOjjmZSB260LaQjXZN8nL5Cr7bghe9d/PkTbqq/sFAIiWuLHrWvkt9LN8sVPLDfnyuT1NbVPwXvNrknR2vdW8Ka0R1STljEEwYFTcHe9C4EXup5GZGIJh5G7DpWVvBrsQSfExuDcW9RTVqHTYjb4OS9o5CR22ovtRRX2UvKEPgZ0D3UXHejV0xb1rZycLy384zcmxNaZdr4ZpYcZ4eNiLdaTdja6yoK8VPK97H0pdza69Ua8U0gWykm3SpXVCL/ANvkcckCxdTek9PwXUz448CMiGSUcoyABrTqWjhiNHWql/BI8JUBmBv1IpyseZpr25PGFeF1kuT0NcrfoOk9fAmSNjGQaNPkNx1ERxupsCeJo2wO8cfkZHPHGeIYk7WoXVsqzo4D/e4trb0rPrFfT2sNjznMnidBS758F3r+uu3J6bJl91WB+t6zOqiB+1F2R05Ck3a+tEqEe/6D98BtGNvWs6iLU5OOyyncAnrXJQdavUGZQq3bW1bVnXlrg7DmR8bBb2rrUZ1M3HIqTJBlvw021olXg6uMWkaZYLXNgOwoEmVWrZ8IBMllNo/w711qyU55Kq5PZGYnAhjc9q6lAdcXbkij+TZG48Txp7zknrhDGyZMjaqBY7UNam65oX7imSz6GijgVbh8BLkpHuLrXOsk1k2xifJwJJYdRQPJtG/RZPkpX5SAkAgk0DxZzwchn5SD27W/pQ/S5Ot69upMvySF+UdwdrUz6vyIw9b+uzOT52QdlFdXNFd/XqAmXkW/4gO5FE6L8jFSqr5Gf45oWWQG7bUPKfBPVd5S8GNPh5UTFkNl6XqhWTLMKVpWWQ5GPkte45EdRTE0FbqSR/IZWHLZlPHqDWtSR75p+D//18UwvjMSjAAHav1eZJrXcNG18fM2RDYi5qfRQxuFkqyN/TZQDysDrWdzFpJRGwjiN5Ta21Jvyz08Kt18Ekk8pN0bS2lqckhayScskkyZA4O7d6aqoS8pcjP25ncXa1u1LdUkW5Y17Jj0HPUn11pKRVrpCKBFDLCbGzr1rZaZ5t7uyZM6SAnqRtTpFVSOxpkSG3EC3fSsbSAvpWvPyVCOCw5L5217Uptnl77WuyjGlKngGHE9KC9Tq8eSyJJVa5bip7UmzQ2t1VFLxpYcrn1pSsxVrOzEpZWNibGjfIVFBQWQLdvIDtS4c8GXbt4I8iZUe4Wy06tGyW+TmQVyVJsSB6VzzApm3YrgKMe4OlKumeri+pyaGJSASARraupZszSW4/AsNGt76GmNMFJs8zMQDfQbV0CbcgCUlhuDW9RXXlHVmZSbgnrWOqY+lApnVk5L03rKKHBRbPgQuRGBqSD60x0YmyYMsgkFkNya1VjyS6U+CQTTpLYDQ03qmg6UrUb+1KujmwofrTNdEEuQzN0IrHRIymakL2RIdNe4rO0FDtDg9aaNSBcLW8MGzTR4u5jCsOQPeshSJ0hVgOFYVPkPsKG0sd68hPPGini32NcqNm3o2KGSTYhrii6HUySGXD246mg8F+dfyKkjKN5jatq58FVnHCJZZyt7Gw7U+tRP1fJ6KQuOQbXausoOqMMspFuRNqFJGawkPhdmVgV22obIgdk5EysoYC1q1I8/WWwo54zdTpXOjCpQfjyFG/Lx7UFqyPz4NFCroAbWqVqGUNwkKlwjbkp060VdiW+nyL/V463670X2yT/ZI4YSSABjy+tA9oHPaDsfxYDWvb0rH7INPZ5OPhPG2tiK5bKwrTbs4QLJC1uWhHaiTaCpK5OtDEy2JuK5XaKU2RT4kI1DXtVFdGLtZsnlx1I3APSmKxtmDFCCtj4+ta7FGVoqEiBDa/Id6xuSe122MuLakUDFXsVwe4yeNh2pNo+TqNM7/nDXYXH8VjdQNL1XgYLMLcbEUsk8g8pY3B46HqaNJNFVKpFCurb2NLagf+kdd2EZA2rFXkG6/klkid0J43FNrZITVJIhkxrakHtYUx6kW2v4LMSRli4h7KOhpN6z8G0fHJXB+0T/AIxyB60m3ReQs3WeT00WZyBsQaKlqFedKzJn5n7PIc1II61Xmq/BSsquxE3uSGxuLdTpT+EPu65qWUrgwyw+J/yDcmpr7tM8b2fbdlAtIZIzblcrpR1aak31K/LKI1e+ugrm0ekrpDS2OALilxZidHawa5EeiroD3rOj+RqyfCZm5srRNzU3W/Sqc6yZbCORD5MT27nemKjRtcW7IkDyo53KMb+lMhM9XHNZorjymVTbVaW6E239At8iySAhNPrW/VIr6IcyVLkLOB5Wa21KdeoFM+94FGIubEcvpXOx7uSVVAjIxEH5+PoaPOx3s6tKESBI0Ngbj0p8yeZezShlEZLKOJ2oGTL+vI7hM40JBoZSKpqkJLzwOeQuvWihMXaEPMqsLpZrbihgF1bYqR+W412Aokg60lmfk47S3UGx6WptbQPrRLyZy4/yGNKStyKZKYb1pU1MXMygAWAJG4pVqImmtvBqY2fchuJU9amvnwNxz7WLrrNpyue1SqVyepq1X+UAQ0LMDfiacuTyt7y2hZyCFsUuvei6EDpweZ4Sq3U6jpXJMrrRqqETlVS4NvSmV8nOj6kkjSl7g3UCmJIPPOqcv8HYuDgKNZPWufAUuzgVkQMJbsLDuK2lpRTdqr4DhhAN0JoLOR+d4UstWGOZNbhh1pTbqwe8kU8U6AjcA6U+tkxVog5DLNcgqCOl962yQhRP7HftQkAOOLDag6MXaln4CkniksoNx1oUmj0Fj1SkgYwwy6vYH1p/lCkrdvB05EJf/kuO16xJwFajT8DA2MBcEkdqByU5UszjOzoeBKrehXko6pLk77PKxYi+571q4F6aihAFk139abPB5ttP6KIn4PYr/wDFA0T3u3YdN+u4BHiwG1DWUddPycjw45RZ5LVzu0IW8fA3/qMXRuVyval/exGnuXs+Pge2BESCmh2FYtWNezXLGn4sSIQEsbfkaD74Y3/ohEi/ENGdfId70370xOW8uEdnw4hrci3Q11bsq31Y6HH5xEIRfpQWvDJK6dlBO0U8bfhyPemKyZVSEoka0ImhPMcWHSg7Qx3aawjPyMV0YMo061RW8ib2+SLKwMeZWvYue9ErMi00dnCP/9BGZHHyJAuSK/UqNkm1XMEUeZJiSGxPHtRuqaHev68/4Ko/lsp/7AwPXtS3mi7P1qJxJQuTID5qGB7UnrJ6TVaVhAysiKxF1vTETfW2QzZF/wADt1NMRv0/k5HN15C9Y0N8IsTIDR66MO1B1hi2pUnYsqRGtqdb0TqmS2SXBXHlK29wTQOhLrwigOdGYXHU0EHmXtzJ0shF11NZDFdX5Z3mg1AAO1ZDNcmhjvI6WH49KRdJM7svBQlyOJalMemqo5yMTAMOS962OyFpNsB5ZFNgPA1qqmUvNVRPkIrL67702rZNvyoJUTnfSzDc02YCwXVSNikaE3S511vQWU+SrGru5Y6WcyAllsT1pdKQVb1S4R6MyFbgXvROCNNMUZDG55Xa+woolAqsuETSZbAgqpGtMVAbYwpZZDOZUuwIpNqwx2NV5O2IAsSTXDLuKwHHAkl+YF6G12vBB9svgRkYZUq6HSmU0nyY7RDYt1I2OvSiTAjszhYFgGW9cFq44Q6GFWOigUFrQBTSPI79d1IKn+KDuhlLSwXEguDqO1EoGOELC621tWyTV/uxxo5F1GoNamj0qpJHjByS7re+9d2hmPTjgSY416tbtRy2dSWMSVgPE6DtS7o9DDOfJ6T/ACC4J5UC4LOssjfHZx/7Cqa2gm20SUARwZEbXLeJPaidkxGeiXI8FgRahJPY05H47TAnTTrpS7wee9EpKfZWRbkWNJ7QTVtLkQ0BU3Cga701WGSOg5Xs1rH0oLQHWyLVXioKkGp2/wAh6acFSM/HUXB60iyUkyasIdXG1iKbWA1VIUsxQ2J17UTpItqRv7N9De4ofrKFn1QRUuOQY/SsTgW2gWhktvRK6GVagW3NG1FxRqGUJCmIYEA70aA6ks8bWvy19BTas1oRFO3HjexHejdQ6Uiv7BvdjbetZPo44Gear5AGg4ZNZzwh0GQBYgWtQWoMooQ8zs5AXekuqXkl3hPkdA7iXi6E362pdko4YGSTvA2aJ2BBBt0rq2SPShLgQqEOAb+tNduAe8QPCmO3JvE70l2nwT7azwgzPBED/ep7UH12t+hSpa3+DPyZyxJjGlUZ5R5AXrpPkg/YkhbzXQnenXSjgXvZUrwbXx/ycKA8ybdNK86/rWt4Eetnazk1o8zHyI7L+XQ1K8LUfJ7vreq2uTM+Rx52BIJ020q/19KnqPKtamQ8MbxguWDg/Sre7XjweH7G7sp+BEMxjchmJF9KFU7Hn40d7SUtOp1UEHrRqh6tcjq5LlLsdB061zopKMMu3JHPkC90JB7GnVr+R1sY8hx/JPoH6aULxRtMfkbKwmjOniRQpQxjojN/Q5E8ZLCqPsNy0VVLQyHHmhcJIeSHqaG1k/BPp7M2HtiqDv40CucrQBLixcTY3PpRK7M0u2gcXCZz5C1juN6694HetsqePJoxwGLVSSL7VNa0ldNHdydyovc1Ka9CazK0B+w15M2SBlIuo+1VKx42uks7jMY5iu61luRVObQWe5yAsLWpcFNuEMlhWaH1oa2hh5qVJjTwtDN43F6rraUPtw+RsaOR/k262oW/wYtF8DJcOEgOhIPc0Ku/B2mr8imUWIUhn7Vsnn6N2fIAhEjAsOB2NqLtA1XVYSKsf42VmNnuN9aVpqoPR9batPPksGM0Ti2rW1tSeyaG32drSLyPfDG4/mjpECdUpJbyg2Y3U9qbwT5UVrQgX98EXF0O1bWCra1VwVxYqvb/AGnfrSneCW/sS4BlwAhbzt2FbXWQu7c8E/6xJ5Aajc0zsMxfyG8XuIPIX9aFOBtn2YAay+RBYbW0rWhtZaOxy62YkVlkHVdUOdYHHix59qGsom3s2TsJQ2q8RtqN6YoEUSXIidYwLtv2Irex6HrYuzkjneeQAKAi+mldXyeq860UvyTx4cjN56r/ADTpILeykxj/AByLqptXKwl7NspxYOH52499zSr8lWevHBTDZTxjPJepNA+QHaPIZuhJIGvrWolu+zhCZmkkPilrUdeBd6JfIkc33uGB2FGIpHkbxaxupFCDvrwMileFw3Hx6mgspPMvaWaGLkQSlgDvvU96tGU/mWzRgx8RlXkTcdalvpeeCe3sXsWJJjKtr/8Amkut2OpW7UsBsWKR7obk60S1aXJVn/LgkzMN0U80BHc0/LVPwzd7yoRLiy46uo5FftpTr1tAHq1tKHTKW/4TyJoKuPJZpWPIMJkV7SLW2hrgDuphA5KjnYWUEX1raPgzWsODHyPYST16kVXWRKztJ//RtzPio2YcDc1+lZ7fkk00hqSU/DT2IZOQPUimfeirDasEsfxphl/yaLvRvSVwNy9hu3BcqwlAqMB3tSeZKNLuOR/6MUkepuaTbRplON31kzcj49Y2NlvVVLyLvo/LPR4UbqPEX+la7QTW9hvgYuL7fTSs7Sa9eDrQxam9mHWuTJbXbAdrJvc+lEifXwFj5E7j2jcetZaqXJMlWq58j/aa1+RDUHYF34D4Oi8mI49zQtoVfTjgs+NmBfiH5CkaoRjb+uTRmSQ/gp160itl8np9UuWT/wCa9rXI703gZnVNyzz47yDzuPSsrdILfZJcHBgqVsb/AFrfuPPtu3wJaMxseK/c0xORudflhwxyMfEWJob2Rdi0jsnOP815VlYfgHV9vAsSEHTr0o4BpRJBFC6cjv6VkwzlbiREwcR3QA0dfPIl07CEmlDWuSf9o2o3VFiqqKCv3ZQuq0rqhGkW4RMuWwk4m6360z6+BSzVStZecVr3tSnWGKsuyOLGX7ACudoAeiqeaKx0OlD2JNb8jEkiDgXF+tY6sPKlm1Iwkhx5koe1ZHHgvShrg86kmym4NamdflwZ0j5WPKeqHvT0q2RueVZKEyWYeW3WgdIKXVPhC/2OHLifGi6yCs54BbIRwAa5VgspjEC1vyPAmsfJaoouSuIWFzp3NLfkVbSEFIAb2sfWtqeffyAsakWJomxdr9UdGPbYaULueVrtyeV3Q8LaGsaTJ+suDq5Fjxa46VvQqpTqgmdEHIkEUMNirtwNingYW3FC6WOzq1yOEkY/AUt1b8m3Tt5DjncHVjbtWPNBJKqKC0ZF7EmlQzobFSQpINrEa0ytmgqVlk0nuoPx+9NrDHX5QMU0wBs1ga21Kia1TkeuZIo8vIUt5JjlmmPMscqXG/alqrqyh1hSTlEC3It9KamxOabJ3sfxuKahjrHkTJBqH43Io1cVe/4FMj6lRb0rU0Rv+mKWR2Uq1xbejhIbWqSOLyG2tabUVLnvjyqzWC36UDy7EG1Ha/BbH8o8pDIfHvQ/86Rfn69acvyamLK01rG5661LpVVC7qeQpYXVuVyB1oa3TEP+rcEGXKFbckd6qzqVWxjkmWR7cQSRTGkH1Va8grJNG3lqprGkyBtO3BH8hkx28WP09ax0ZB7lHI7DykMXFmN+l6P64PR9DB9S/Fynjk0a/YUrTNNHs8UR9Fi50M0PGSyvtevH19e1bSvBJrZ3rCMv5WBVBKm4O1W4WbR5W+TSgxnWMi5axFX0kZ6+bg5y8TbW/Wjg9GteD0EUjgqL1l2kWYOtawBkYTlb9QfvRU0Rl9FBMYWjBN+K0ztJnbgpxZltYtcdqXepmbAlkaNvBTxPWtqpB0pHkW08xII1A3ouqJuimR6Sta7DfoaB1GWagfHJGwI4gHrQNNCYb4k5FMqyEcSL1zrwHjRyy2KRuJsN6Rep6OdVAWQ54eYuKHNfg3dSuDHy5uLnifGraV4IL4w5ZH7jNqSQe4psQLqlRT8l8ORaIC/I96S68mUo7jFzXBA202FA6I9fH10hORNIxvYadDvTKVSJvYqnYRBl2biw0O9HahPHVGljvCUIOtTWTkmTtbgB8eOWTxsh71qu0hdr9bfkTJiyIbhxYa3o1dM5OX4HY2ceQQ2v1NDfLg9HLOIbNESgkE6juKmdeB0TeEJyWLXtsRRZ8DXlzBiTNkwyHUsp/pVtYaGLJUUHjlMwsWPGtVCXaqfAuP5I48tixtvWvKUJrg3YvX5eCeEqSQ4qd5OrL8/VcEbzuSTGTftTkh1cVVciP3Y01kkKsNx0o+pyys1whqfJYDaaM3e9A6ML6b+BgYSm8Z4AdtaxKPIvWyr55HrHIhDDz9dqyUzzrX+y0AyZkzDgQPqa5US5LaetVeTkcMbseZv9KXZs9St/rqUfq4sMfIqCvcmuTbcHk+x7N7Js6IIWUlLFD0FF2fyQ0s15A/X4iyJf613f8lGadnDZPJDOLl/x6BRW9kz08+tVwLMEgPJQbeugo00T7apFuJEkgCsBzHal3cEX3/A+TFXcAXPQ0CuI00bEnFlCk8dPQUfdA5NMindox5ISKalIrZT4A99ZDpp6VvWBXSDsOSkfLUhqC1WyS0uS6LPdlADUv6kirD10lLHjMF+LEk9hQ/WX/WPhynD3jNiOhNLtmo5AVe1ik5/vRlJt/SlLHq5QzTJJcEkaY7SEAWI705uyRJWzoXwiGN/yCjapbuzRPpta1yp4FkAK2t3pSvHkfV9eX5Al+Ljm4nQm2pra+y6jVtNkzJzPhVTyOov0q3P2pFX3bfB//9L6Cfi6/wCNrV+g048nn7L8gRZDIxUm+mt621JQ7DKbEWYlyW43vTc7Hp54qqIpOYOgC/Sn1OupcFeM7MABe9T3qV9klA2UW/L+K2h5/s3nwLi4lvFaNkKcPkrXGVwRa7f0pLvAT1ngnl+OlNxbT0pldkE9VVEr4fAiwN6YtJIddmxbI/K6mxHStTJ/LCGRJtxsw713VDnRMF8iRfyjDj1rei/Jl6LwmIXMljlDonEX2Wt+tNci6Zpctn0eL8rNxjLLdSO1QaeuuSt1TaZopJBIeQ0brfSpbVsuDOXaELllYgo23QijrX5B0okiNnlB8O3Wnqq+TfWwTcslkzSrASi/enLP8Ff0y1HgBfkYo2/Lj6VrybDrjYbLmLIDxe4PegrnA7TGF4Ee+FGi8j1pvUmvVtFEE6kWY8Qf7aXaohv4QbxQm/lYUKsxymqFyRKFBT+golb8irNtSw4Y2ca6/WhtaAKaLyelxC1jYb/euWkE2uvyNxsJmBsbEdKXfZIVT2DkmOYZLtqDuK5advAt3bfAuZI5DZbgdqOra8jFWHLENH7LB+HIbWpqt2KsU7Wk42aYjz4kJ1Fas54Kb5xyUwfJxs3jYAjqKTfBiHm0+SqWKHIjuGF7aik1s6sqpUzHxGicsCXHaq1pKDpbkU8R5a0XYqzXIkx+YvfTpWp8FFrQymOV06ADtQOqI97mtiiGeMBxrUmk1fBMtnHA3/rQxPG1qD/ojyJt7EMQ+IIiAVA9aP7ZPP8AY3Z5lAt6VleSelW2TyIXYEdKdXgopVJk88MgYWG9NrZDdrJBpFcaqLmgdyZ6duPgL2HIPEcTXd0OVkkNihmBBOooHerFrRNlHsjQ9DSbaC9ty7HWNRYtpUt7N/BlLt8DTCpXlGL0Ku04ZblWKyyebGuux+9Pppya3KM848qtbS1VLRMGrSOnHlAJvcVyuiqjUHrEIdwa75HL+lBOTkXsx8e1MSQ6K0R0I1q6SLS8nefh+RFt6xoj0fBzwNmQjl1vXKfkzOj+SWZZXDWGtOrCH9Ukycgj8jZhRyDZ8CpIIpCpcg3ruzRNa8RA6HGSP8TpQ20ZttmlyaGMWjcFdRtYVNeGuRddOZZqKrcOT7dqlbXweh6tZ5RJnYpkTwXTvT8dI8l2lUlyZLo0RPX0q1OSDS3ZwJ95+YBBINF1QtUVSfLUNcrYH1oPLPM1/ux2CKR0FmJcdAKc2ke96kKqQ79iWFhz8RQ9Uxmv9Pgvxc25FjyBpF8wUoLndZ0IG+1qnVerE6V7MzDjnmVO1VduAeyoFHBHG6jT1vWO7Yv7LNpFIeC5sOJHY0tpluVLNiMie1wF69aOtSp4NuDGz/kJFNhHf1p+aR6C9BR5Mn/s80NdEsRVHVMyvq0r5Y5fnMkMonGlZ9SIfapX4NLHy4HHKx1pdqs8yG3BSeUi8QpsNjQeBzSov2ComjbkulbwwM4blhrksjAuLg70LpI/POXwMHyCp/cd9qW85PUz9dwdk+Rurcm09aGucMc8JkzsrOQa8SarpQ832MWxK5aSiwPH0ousEX1S4Fc5kOj6epreD08clVeBwzEVeRfypfXkstV9ZKYJo8pQQw5Deua6nk2vHJyWF1HIDS9Z2PO30+SnH4FDdiGoLBYtwC+akGShexWs+ttCb52eigrEkOS54WAPSgh1Rfll1tyTZMX67iRlLAdBTK2lQUUra9uBUfzBjfxVgnY11spRfT1uvLK1+SMgHQelJ+ob9Sqp+Q3RJ1sGubbVybqIiWY0sMsUuwKk7XqxNNEN2ux54g2pXUeldMDqKXwLWyvZLk9rVjfB6Wdfz4CkTJLX5+2Kyvg29qpyMb4KXIi5F+ROtL+2GEvaqlwiOL41opSGiuR2qjsmiB+23byPWZoHsPEE6isiUQe1Y1cV2lYFRyB3vtU+ihBeqknLKBjIW80saX2hFK0drcMJlCN4R3FDTlcs32tP2PWGBksyC56GhdmmQ30bUfBM2HNHcwkL6U1aJ+QatKvI2GHKUqXUFTvQXtWOCjHSsqClcWHqfI9KT3Yeu7fC8CsnFKjy/HfamU0kmbnwZbtNHJygHH1qpJNcg1olzYpjzFKj3bs460t5/gVZO/C4Q6OYspu1x2oHUbSqrURPCGBAJPpTK2gRfhELYdgSu/YUxXklV+3BDKkok4seI7UxQE1VOB0cMjDR7EVzseli1+Dk07xjUnkOorkky22co7Bms4BB8qy1TcMV5Hft5W5GlCqIDfqhqfIgE8jrQvI8jSjbcFkfyWO7C7D6Up5NHfU0zQizxG4Ct49qnvjIOqcwamN8hG5AbS9Raeu14NypyDmewUZuVra2rce0wU1wcNwf/9PXlieOYqW+1fo1bJqSa3N/AFvO5O9c/BbmuvJUMP3IQQ1/SkfZFh32zUjmxWBsReqK3kW7RyMxoY/91iOlZezF12bY54FIItcnagrYTreSRo3R7bW2ApyaZG3LgdFkShtVNu9BaiGJJMq9xnBK0nqkL1aEzLIRtajq0SwvJDLG0T8wOQ6in1cgJSwJAsoDKOJ62NEuCqOqkD22VbklgfSumRFX25JZ3ljuALqewpiSYVs1HJofGThk4s9mHQ0jVC/t4g38KESKOYJv1rz9bx4HevtB3Ib2jxVayi7csprg72mxEzZDk8Ra1UJJF1aUoufgWcNnIVhvuaP7IQK0XZEc3w3GQ6chTKbyht/YhwEuEAl9rVv2cibbuxwxMRZDc1vb8ibOfJNyljls33vTOGgYUwWpOrKL696S6wM0YfuWut/E0MCNOEdhco1luayynyRNlYnS456a1LdP4PP9nTmEXY0sYJZACDprUt6v5J85mWVj9eXTivPtSYtX54K86tkeVjIH0UKarz0bQ+1XKQgwFjxNjTu8Ho5xVQR5fxjqCeV1PSn57ph30lQjO4iOUXsABbtVHlCqy7luPk4qkld7UjSlj0cKXs/0LlyTeytodqKtRywgT7xJ/wBaLqOrSOQ+IkUkEhhXeCe95lgSRsAOpo0yLe8oownkDWJ4gdKVqkTLRLhGlHkONeVqltmgIXkHKmZ131rc6JCb4zyyRJiPyFwetOdDKoYG5G67UL4Os1UZMimG+tx1FLq3Im82RGHkQ3F+NP6pmZ0Q1Zptu9BaqM1dUinHd1G/L0pFkmT0cjXklKgsLL2FBWi+Dei+ABKb+JsDprTen5PRxyVVLKsczW8Dcjek6dfkZa6iGVQzP+MguamvReUTynwgZhDyN0N6KnaPJl00EII5IvHxYdKx6Or5K8P9eSN8ZlJAGvqKpWqZVRwhUkW10BNHW37F7X/Yh47E+FxTVb9k/lkkoJ02HbanVMdUhcalDdTc0TcmVchSTyg2bb02rFVB3qkKkeNlJtr3okmItVkks+PdQH8h0tR9bE96W4DOQtxqVrOhzzdrQAPkmjl4hiRWvFMK2E2g3Pj8xpUCtYXqLfKPB7nrqtKwWFSrWZvEjSkJyuANLTYy86JVe42PWrcrSie9I5M6aEFL+4b76VQrfons5XgyzJxNiSfrTIhEll1Rs4JjaMFDxI7Ui8lvqS1yHkY3uITo3qa6t4LW1BDwaCQa6DoKdMoWm3aByfITKbhTxoHkmUVxXkXkfIO408SKKuSQrX10vIszPLxL3HrRdYHZZpQ/kFcpMeS4NvUmsdZRZnlazDf5KDJXxbX0qd1acHrYer0XawP6rbl/A9SKbV8CNt03wR5WJ7ZDqWZDuRT6Wk8/e8E0+IjRFxIfoaNWPO10dlwgPjJ7P7TyXBOmlZZEeV+vwbPuSRN4ksKVCYy67PkaMl30Ca0PSB6ySXkNEZ9GGtDZwW+tVSck+LmOqJrS1qvk9X7F4E/oyAH3FNHWyF+x7SrWEEMKGSIgJ5etM7tM8j7HZeTEysd4J9DxqhWlD8MZsLk5yk8nt2tQo9a/WnhDosCOWMDUnvesmGR+373ShRg4UmPLZblb0NtEz5d+27Wg1PcT8XGlJhgtO1gQl7hRa9HJ6OSVK8iZsSIlWK3Yda1XYi+jbkfiyRQzjkSL9KC6bRtbWtoki6WaBmsPIH+lTJM+gpi6ogysdCdNjT87jrKBKmKKwfameRU2s+DseWFZvb0FutDasjM8omSHMzJQ2rhR9KfSqJtcEvgXDmC9vdLXrbVDpn1Xg0oDjTC/KzDek2TR32MeYcYJoDISetCmyP2NbNR4LsVV1Ci2lgKRobS8uCLPgyORZRp3p2V0a8615+TKy0mZdhcdaoq0R+xESUfFZrxsFddNtKDWkoH1uWaq/Jf5LIl79TUzylHpVw68tlL5CSRkt4n0pdaQS6V7NsmLWQFCx9TTfnk7KkqWJaTKsQHNjRpIN0r+D2O8ynymdvQ11qr8GdkvCRemWVTVb+tIeck91KHS5EcgsGJJG1KpVpllsutSSfBeSM2NrbWp9dUmR6XUQQR+7FJx4/UmnuGhFOXAxpX5HiNO9YkWuiXkFpZGjsDZhvW9VJLeqaJUyplbe+uxo+iE5Ypsjzp5Gk5C1+1MpVQUX9ddgcfMlY2cDXtXWqXetkpKJTzHYdTQVK92qoDHhC/ibkmisySmjiBkpZCCQeNYhHsW/BwmM3YD61vJJzywuULWKmxG9ZyG5XLLMWVSQC5vSbIld3axoxc1YFGJFJtD8lHZKDVfGmkh5Kbi2t685aJWhnsK9VQ//9T6r5bDBk5Bbg9RX2/p7zWA759XJm8SFKqNu9XSC+VyMikcJvxt1pdqqR1IVBzcJY9NWFCpqyfRyhMSlHJ4ix0ptnKJHp1kttHwuTe3ap5cgS2TSrjkg9abV2FW7I8uPju4Ic37VjvZIDTZplHsCNtFJHelPSSTTZtjmWMpobW6GlpuRudHdwZeViGS5uFHeraaQWpKiMyWGOAHVie4qhWdhNna/AgZTA8WZgp2vTOgboqIpv0NnU9LUmxDtbs4QEJj5PxFjes5EUnlF2N8pJAeLt49KXpgmj2v/n+p2ZRLmjKFkkPLoBU9KdWfQ3xVFyKjny0BHtkkHc1S6VfyePq1b5K1y5mILqFt23pDzS8BKla8oKaYqFbjcHqaylZFb18R8nYzDNcAC/UV1pqBXjgnyccoQ67CmZ3ng635ESRliG4UxOAW1Mnv0ueqkr6V32Qc9kuQvYMZF9azvJFts7MfFGHI46CkWvHkjtrzyC8Uga17+tYrLyStqZZ3E92OQKQSL3NBo0xf2cwbePLG9gyWbuN6jvVrwz0cU58jpIoHKlrgjvS1eyHXu00zzwqgOgK96KujY6ib5EvHGyHjr6GmKzT5HpNoysr47HmYkgcquz2aQ3JNW4Mo4zY8hUfjtVXfsj1M/wCUNdEdLkAWoE4YyzhSdjgBTxtp2rXaGSabcDI0dSRxt3rG0SW0SHGFGjvy1HQUvu5Ib6NoQpWKYG1x1o3LROp7FoMUmxK3pMNFlUBLEym9iw70VbSFdyyUMgfyO3SmOSS9nXwUoyt+OlItx5JL2/JdHjho+Qa4I1pD15GZX7EU2DKtyrXW+1UV2QfZJEp95HtbSicWIbtWsOxskhip0160vSoDcGskEMsYJYn6VL9lqvwWY24k5L8MWHKJz9K2vupcNFv3JkscWTDIQ4a9+lOtetlwR22TZeo5EFgwI61K3H4DeiryUy4spQFDf60mu1Z5ClW5Fp7kZ8117imWi3hlef4Q331bR1070r648B6xRSNGJFItxalfe6sgWzsyWf45xcqKpz9pfI5XS5Ipvj2N9LVVT2EA9JZC+DIjiw0+lUrZNG/YkG2FyGtxWLaAlpLIJsF9QLhaorqgndVXJKcAcxZTfqa37pILbO9kIlxmR+WpF+tOraSyj+SXNgnX/LHa3WmUaKHVR2Zo/ETNIoDaPekbJG02nhG4vuueL6Do1QOF4L3atf8AJzIwy0LIzXHQ1tNeZRPpeasw8qKWFfxuu3Kr6WTF1pFZZkZcbyKeFrjanojvVfI34bIyEPEpa3Wh0SaDw0ql5Po4+Dx+TX9KicpldXK4JZliWTS9/pTatwFWjbES4xkvxex3ttRK8Ho5VU+DFz1zYJAR5DrYVTm00FrlW1kSj5DIOhNvStski31/UqeMEs55PIQPWlrkvtpTNcIrxIoMcXD8yNxbStaPOt7N9OPguTIeTxA32B2oOoF0qLkoRXvxcA+lZJ4vs7drQhbfHxTI6r4v0F637Ghedoq0z5v5DCnxZORJ30tVFbJiaLs+EFH8tPbi19NjRdEepX10ylPl7i/LyFC6IKvrdn4KYvm4la5Nm770q2cnoU9Zo08f5qYcWGqGp3gmDrStUa0eXDkqQbA0h5uh5lqzaDKyvcilaz3Tt6VTVpoqx9dJy0SSFC3L2ud9y1MRSq8zJxcYSi6gKewFF2gi39hJSedxhlC/4mgt/Xg+f9q9tGoHw5cMz8o9BS1m15J8MX35OoXaSxHIGmOEWKKssWJuPiLEUp2Gdp8iJpLeLb+lGkFXF2cEErI8wJvoad8HqYY9bJlsUyDRT/NTOp6jly2XRLjTJZ/y70pzXwR7bWfCGj4vDkNieRobbWSBpvZOCKXAWFiAvjTq6dh6u6qWKysDHlh5WAI6mjpdpwI21fWSeHBxnSyoC46imWu0RU3s1LYf6EyWIi4jv0rPsT+Rlt0l5KUCBP8AITde1A/0Sq7v4GwZgWUWF/rQ3zlFFadXyaTiOdB5b9KkrNWHo/kyc7GiQkMl/WrM7tnm7drWhGWYohJqbAVRPBb69XQuiliFgDf6mlOrHa2s/JbCIWU73I3vSbSgM27cAISt1sWB2rXzyM8KA1cgkFR2ArmiazBlYDZa6ptcm3BJLLI2jNxW+wpiR6FMq0Q5JUUeJuwoeovazuwlzcgXJuo9a55oj+tC3lWVwzWW3WiVYQLqs3K8lCR3UceLKaW2L7y+RLhUfXQ0a5BhuxBko4ckfjTqstyxVOSWSMEcuN/SjTBnu5ECNlcMAQB0om5KqNVK1dWQA/1pcGWbsJMvtSC23pRxIt1goMwdDz1HSg6k11Pgl987KNBvajg2ufWsvyGhj72Y9zWOSa7bcHIsgLJYk6VzqLShmvifINxsNhrU98kaq8Ns+p+HzY54uDDU143uYurlFXr3lQf/1fqp/loJEsRe3avsscGmetv6r8mRk5sav4qa9POraJLes0zuNmxyrxaMiuvm05FP+V5LMdX19vQdqXdr5Iu6lyLlM8bXOo6g0VYZHpDfA6DJYi3tix13oL0/YyFWvLK44hJ/aAanteCC+3IuZHiYHhcelbWyt8k1+Wc/akvYXUVqyQ6mKnk7FOlyJDW2o/gvzXROB8mMsi3jN1pddGvINrR5IpPjdCXUsD0FPrv+AM7z4MbOx4kFgnEjrVlLNg7zBKPd0KvamcE6hKWLF1lNgeZ3NclJuNO1i+LHM58hcnvSdLQfXes65rgpGPl49jGFVe9ArVfArXZXcsU2RmpL/wAgK9RTFSrXghvWnbwUxzRSActG62pbq0bZtIq4CWGytqNgaTPWxteayyJZJIJrk2PUVQ6qyJqLtfgrOS0lww8T1FJVIH7qteD0cHNLcm+1da8HnvVJDoMQg2vc+tJvsQ29iXAybHAF5Dp2FLWv4E7bfgBItCFNh2Nan+ROS/JFmu8RDA7aVRSqY2+fEk8WRN7wcEkeld9aZPjmrXLxmTq6vsp7V31ViD2ela+C+P5B9ywYetS29dMX9fexbDnJKtiADUt8HVnoUy4Amhje7LcdwKKt2uGV0XVEfs2fQErVLvKBycWkVl4AcXA3rcdy29oJosQFSjLtVFr8yTvfiBYxpYz4Gwo+6ZG9EvIz22/vNjQ9l8Emmk+D0ckiXAF1NY6piOEjuj/Ws8A1Q2ONxYHUVjsiqlgmVgd/HtWJjG0uSDJiiDEkb06tmQatyIdgtit7UUfkTZfLKsDOmg5C10O16XpirD8KKGXx/IB7gAA71Nb14AeUuCCbL8rhfqafXEneMcsQMrHILNYEGs+uzfBGqWu+CyL5cx2VCONc/UT8nsV9WK8l+N883GzqCO9S6egn4YVcOBj/ACPu24gDregr6qr5Jn6ykVJ8jJsdGHWmr1kMt68jcX5iXjxJDUvT0q+SquFa05NLFy4ZTaQWNQbY2r4FUt/XBRLhxOPBhqOlTV9m1fKE+zs3wJTEeLZyaf8AerfBnrueIOSTMgILWNHXNP4LvpleCJvkCklpB4nraql60rglvlD4OvmQNotrihWFkT6ZOYO+6jAGwPe1aqNFeGUKSHN4Jc99hVWUsDXN28GLLme3LyOq1bTGRePrTbgTPnMxPGzoeltadXI9OvqKSVppDGVKaGmdUdeqaiTPhzpcfK/uAvtTHmmheeXWxvp8/Hfiw1Heo36p6Gvrsvg+fxHVVbruKnt6lplC361oQyTJw5orACzdDWVpdMVbGyryfP58Kq5MVhavQzc+SVYueTFhyZIMsiQ2BprSJnVVvCPpsHMVlA2B61Lpmejnwi8CJ10OoG9IbaGVlipRxGig261icnq4ZwpZBlwvLew8T1FPpaChUScvyZDY2OjEOp//ACNUdpHJ2ShCpmjTiUUsPSjpyBsnCk7iyISbIdehrbolo4nkuspsT4npQeDzvd3fhFSlmAOlqWefKXI0JGQSg86GX8jsau7M/NxJZgwcr6Xp1LJFvWq4RjTfGurfjYdxtT1Ydncmf451fU2B7CumS6miT4DXHUaW17kVyO39hpGphkmIow22IoLLkipp2Q/HkeOW4BUeppeilDPXr/UsvLl76AhutT1RXq0g0xFKXGp7UTvyefpv/Ipo1jOmjdqJ2k8PfR2cIDMiV4lLrpsDXK0eBe760UCMPBBY+223Su+z8ifV1h8hTCSFwbm47Ua5KLLsymPJZgG5EUDqXevl2ZLkygSX39aOq4PTrhDkWyhiG5C1FI2vk6zwxLyIHrrQpSN1dmuCnFyoJiVV9e1DerRIk0+TQxm8ipOo0FI0XB2VuWyybHjliOpDAbVNnd1sO1vNZJVx43hKHftVDs05IfsbqZo5wSlE01qnyiN/z5NWFXmFmYmpb2VSfXdTCD/SkQ6gFDuaH7UxueiopGD45ZFJjI5Deh++PJq2nyGkBTir6eorHeeUP+3wJycNmJUksh2tR00NqkmZE/x8SuRZr1XXRsO+jXB79OJit4zba4ru4Gm7Ucj8fGELHiSynYUF7yhmOj5KDKqEEJYjvS+si9E7PydOWGOsa131/sB5x8j09iVGuADSrt1LvUo3JFPixm/b0p2d2O30aUCAUiPggNv7jTYkjStZ8sF3d9bX/wBK5KB6oqomcnY79aaiTVhRZEg0VrWrHVG50UcjHZ5Ddn1ofBRSinwKkMoup8gdjWqB10vBFzljOo0NOhMQqpKB0UiSArfy7Ghag6qmUcA4t/k26EVwdX+DkgBWyj7neuQu6nyTNAWseTC1HIyjVUJmiePW7WrUxWj7MSr2YEDT61pP8hmVi+hrIFWquw6PIyI7m2lY0ma0nwjW+K+cKTKGJGv2qfbBNDcc4skj/9bQwsbInjDIDsNa/QrxTye1r7dG/JU3xGQ63YFSOpoa71R5nte9WqkbjfEPG+rcvWuv7SaPAv7/AGsWx4yoSQSDSHpJldWwsnASePkt+XqaHPfq4ZRfSKySri+03ku3rTnr28Hn33dnCOq8iyaBrelqx1UAJJPkdMOcVze/YmhpwyumcqSIwTk+KaDbWqO6H59V8hwwStIAyWJ3N6C+iS8idvZqnCZowRzopUaCpL3qyV6p8FKDox/mkt/gqxXwiD5P42CZSRv2qrDey8new2fNz/FyqQqHrXpV2TJ62XCZEcXNR7gEkHrTlarK/X62sWrNOljJ97Urqj321HBUrc473JvSohnNpVFtEDY2II60xM87S/MjkjNrihdhF9TTxEumgHreo9XyblrKByPjnLc+N71tN14GW1VEFH8fIRe1retDb2EeZt7ibCCSw32IoXZWI7XmWMT3GVm42pfCF0hJs7xZgBb7k0FrpCtLodBgsxPX1oH7CQz19FMk+f8AHSLCRam09lMP2NP5MiLGyImFtVNW0tVoH1YSll0MMhjsQLHvS7XUlP2p8DP0QdmsfrXfcX536oZHiZCgeQ/mgtrVl2GiYGRNkQtqbDrrQZqtj1nmokGDPkYeOtz1pumKPPpmm+S5HM0floRUjr1Y+zUQvgnKOsm+hqlNNHl6XSseZ0txYiuSZLdN8CJGv+NjTEo8g2pHkW0bm19BW9kKdkBxaNzpeimTF5KYZkcdQe1LtRopzUKR3TS4vSzrORE0PJtRejV4I9rpMmeBUW1HW7ZPVO7gSpQnjy8qdEF1awoPIR74uL2He1a/AdeLE+aJY0umx3F6KiT8i75yuTIbHyWJYXIbpVNXVDfXVKlWPjZAI5rZT60FtF8Ba+3VuEaMEYiJubqel6RZyAtX8FUcsVvFwCvS9KdWFjm7MGSWRzcG/wBxRVqkVWokwospFOoAYb6ihvRsg2s7OEWw53axvU9sDqZwUnPAH5cSOl6T9A1YOwyH5SQkjkD96Xp6lfwV5+ul5KZPcmS4UG/Wp6xVwWqlYMnIjy1bi/4dNRXp52o1webdVkjMjpKb2C+pp/VNE/X+h8WaENgQL9b0u2MlDo4gpMzSx2JVtN6SqKrOtSqRAcMkm4UqapWgnFpCGwYhyCsL/UUxaspra1nBmzploT5LxvtVFXVm2VaoRPhHIUMCOQtRq8C1ZTI0/FSyDkGAtptQ/akegvYVrSKk+NyI2B5W/wDatromM09hLktxsfIUgFgR3vS7WRLb2U2HLALG4BbesVibWzagxvlMPnaVU8ttNadW0EGrj+pKcBZlRb6D1NZZplfraK7K/wBmWKQ62Ha9LdU0ezjhyObP5RAMB/NS9P6PYrhFAQ0kgulx2Ao3wBVKZFSfHSTSf5AfrR004F7exWj4BPxLIpC6j1pq1R5O/tz5FJAscm2tMdpJVo5PS8CQSP4oSP2LORojZhZTa1ZIzJJvkCH9iKW4UuD3rbQ0W5RP4HyKWN3TegqHpZLwLbBjYHU2PSiWgH2QD+hAQAb3Wt+xjaa2cEGdjImiDam0tIPsTEsVizqoKsLN06Vtkd6mbsdkltq54jsKDyevTNVXBRBlQ8fEm471zoS6O13B0/KSxmwBA7muWaZLviqoMfIh1YlbjvWfWeU8fLOvnlscLcWXpQ/UT64zUkx/kTHKSLBTpe9F9Rvq+vDbZY06Tp4sCT61yrBVakARR5KHQgrXWaPU9OtUgZ2k9twtiTpQO0NHrY4KybfgyZIcnmQzkCnV5C0vSihIphxWeIAvc9jXPhkz3lE0gmge4vvrbQUxQya/Bq/H52UwuliRqRak6UXyBTq2bUWVmSxAFbX0vULzqrFN+iqLKZoktYEd701OsENnSrAezOFcAOOtEeN7V5sPw5pQ42IvYWqfSDzHok5Z9HAkMiAPv2rzb3snwU00dgHxzE7MgW3YGjrp2XJVhRuzbJ5pVdbEcSKdWsM9KmMKRMbS6WYW+tMskDSG+RU8HuSeZ+woqXhCPZ1VbcALAIza1x0F6LvJ59bOzHRhZBx4BWHrQWbXyenhXwpJMjFbmeQH806mnBS2k+CRoHDeI/rT1ZCrW5KIMWYXYroet6n0umenhrWteBkkG19q6tiXbTmRQx4FNma/pTOzJ1pYP9aIjwOlD3YdLNuWZ2XgcjdXIPaqKaGWtz4JVhjGjP5CmNhZ2b+AhAx2Y29aFssVlVDPZkTW4I9d66UJtp2YDxFgbJtvc1qYptImELgkoljRyZWyScsekWQwAZSRQtoZW1QDjyJJ5rxWtVk0I12SY1VjUWsWoQE2BLHceKFgelamMaheTMfFkUk+2wH0pqsTVsl8iwoD+K6+tcKU3vAuWbJBPjoaJJHoUwquRQLmVW5EajStKaxRyf/X0fgP/sEuKFhkAKDQaV+ie16i05+Txc5t8n1P/c4sijko1ryP+K68MH2cX4QC5MLNoBx7Ct+my8kNc+vLKkxonFxGNeu9JezXyUU0/Z32FUBdARXfY2Fa7aglkxR7h5C696dXXjgT2i3BNPgf3Rg7/Sn03/J0uzAaJTEQbhhTVZyewuMxKhhEShYmjb55EU5rLJWyHDksxFugFMWa/BCqTZsZFlxlhymKHsb1ls3+BqrD8GlGiuQ1ywtvtUlm0ehnfryMbCx2Fy2v1oFvZEum9rMyc/F9t/8AHqANdatx0lci7Z88kP67yJfc1T3SL/SookBvjZW0YXB21rlqj0dfZrVQh0Pxsyjii3H1obbL5FV9hW4bJ5cOdXINwf8AbTK6Jol32SGxxlBqDftehdpIXo78IpxJ0PiQQ/8ASlaUZRR9amxE/KL8QSOxvUFlD8k+unZRJNIXUk217XptUiVUgFwzw3C2N9710wxOlk6h40RfQsQe1K01gn+5LhA5KNDY3La6dqyn9iuruwo82cC4uB2FM/56nqev66gHJ+QyChut1Pejp69JHaevWJIfcZluBrVCqiemc8Ev7OQL6212pyzqX4YVSGpmvexOvWheaLqY9mGuShccw9/6Uu1HHB6VM4aSgryIBPESO1Q4W62PR9m/Wn7M1IciAjghsNya9R2rbyeMrpVls1cTKVLGUb71FrlPgSruz4HynEm1UkHtQU71EaVtXkR7cQex26XpvZwS9n2AkKKw42rnMEftXa4KopMRl81Bt1qa1b/BLR2t4Ge1jSKfbQGuVrLyyqiaXL5EKFTxMVvWmuX8nJtLyUoI2jta46dKTZtMJ361kB8cWNrD6b1y0khdnZyIbCx5LXJv6mnrWyLsm6wyHIw4YJQ1rj61RTR2QU2dpEyR4sjG/j63pidkU0T7Ek+MkZID81Pc02t2wtrtuIIWaGNTctenJNgZ52dYI/3QslrsVPej6GfT1LFa9rEkHWhKUvgZHCvK9rk+tC2V5WjwMaBmOhI+hoVY290iZ8Nw9yTf60fc86+vPA1SEYBiQfQ1j5HpttJFqPjuNSSw70hpovqnA5EU+Si3Qa0LZlrmniZbxxsL3A9ah3zTaHYV7piMjOikuCCT9adnm0JfrfJmTRKZAzg27Xqyr4I72h8BiCMqSFH3ND2YNtWk2XQYyiLmp23ANItpzAjPV6CZYC6niGv9aNWgvzqq1lkyYvCT/Ip13N6a7yuAaaTbgVkxYwccr/Stra0EvuaW7QjiRY4YmMEX9a1t/JP2svJZjs6qQNRfrSrpFXr14YOZIgQcwGv0FdmueCjXNtKDO/ZVH0uq9Beqesi65NFAKTg/63pfKMb5M3Mx5EPBX0PQGmqyZDvDhNE2Pj5KSlWJ4Hre9G2oPS9HqnBY2HLe58h6mkqx7j0SL8eGMx2YEG2tqnf+wWm76wirHjCgcW0HSh05Ja6cFIyeDC6370P18Hk+w3awcksUgBA4971latC70jlk8mKrm4/mmK8E1tIZNJhIr6sbUS0bIraO94Qvn7UlgbimxKPRpSCiMq4velvgZU6wsbXvXIK/IJYjatDpSSZp29ywFHHBZXJV5YGXGWi5XAvsK2jhibr7Hx4Mn2JS+g16GntluSrRFkOIkiAOLtSm4Z2vsyoQJ+OVXJCtyG16LuTfc+Rs2G8kQJTWsrdIRtsmpkhXDnRiOhO1M7oh+6qR2f46VLMoJB3FctEdbVCJPiGI5lGIPQVq0RX62q+DPnwsvHPONW49jTFZMrtavlmn8ZNlSqFKWNJ1SKPWvR/Jsw4DleXEknpUbtyX29lKvHgXPhujgGK4O9PpdR5PG9jXtdKRQiRZR/jYenSing62jTSkfNhpPoE4saCt4Fb6w4nlmd7EmM/4H17U+VYP1+KzJpYvyKBR7lgP9tT3y/A2G/BU+ZCxBXQUFc2T70acsmyfac8uNzbejrKPL1nsZbZqwSKqsVKnYGitnJ52mVm0jdxflFKgu2lJvh+D2fXw/BdFk/sIQn83qXSvVns+riqptiGDJcMCacuTtLcMFYDIpKMV9L1rtDFVuqUlgSxSKoIJ5Dc3o6tM8jW/2ORNwzixIb1NMH1rED4QiShmue+tKvLUDqaPtwWtBhS2IJGmtjU6teo93tMkUuGsUt+RZT61TXSUQa6N2LoP1ym5PpU95kszdmjk0aMpA26V1LMK6IikakC/1qhNk9mxiPjLuKFqw2vY5kJjuLqQPvXUbR105Iv1Mdn1N2+tO7sH7GnCGiDFU2bT0BoezBtpZuEdaCAj8T9b1ysxjs0hbYcVrgG/1ou7E21YPtAbi162RHdsIMV/HasgdSv5FzMDq1yO1akI2f4HRFONwtl6XoWBW3yUK44WVRfvS2gXNvJHkqWuD/Sm0CWaRktjMswZVvfenqx2P+6OtBC5u3K46Vsst00cwgWxIiLqLnpeudmTb7NI/9DyYUkieLcSPtX6d3SPH9e9aVll2HHkxjgx5EdaVparF6ewrOC6LLCgh2tbpU1s58Etpt4LcX5hIyPM8bbUjT0+yKMPXfk0U+UhcBg1gehqS3qNG2ycnP8AtIVkIJ5A9qx+nZol+izsNjnx5z4niaF52p5Ks8+r5GPgKykmxBHSgr7MMf8AdPgzZMdoTxjb1saurorcsGyisMleJ+XJiLnfSmqy+CG1k3wdfEWTiyqGYdRXLWOA+/KHRSSw3uOu29BeqsNteUaERgn3Wx7nSo79qB0tDPZHxkL3Irs/aaCto72Mv9J42ZR/FX/cmpK8n1rB5lZQOYOlbM+CbXSSrGY6ECp9EJpcdPFjy25IL96TW1q/InezbI5PjYSCLA9rVVX2GhmdmlBHNhSxkcNewFUV2T8jLXUHcefMhJDXQeovQ3pS37E16stWcSrYqGJ/utU7zj5O6zwSyIFbW4t1FG7cEm944XwBFLPGxKgsrbGhWdbeRHrZK1pZ6bImB42uDT1nU9HTJV4OxZZQ2tp1rXlJVnl8HZ8iN0KkHX+KytGhm2cKDOM3BiF1t0qpU4O9f1xEmTMfxW3ejVUehn6ybEE5PvBmXiveiUQVXtSr4NKASMAb796mvCCrdRJsxoDENLN6V5r4sMvr3RDle9xZV8SKtzjgj0zSTkitNbUXPen8SHmlWoD5hj3uKJZyZplJ2PMWYWYG3euecEOsZqfkoHsch5aW2qd9meHre17nYshI2NtU6g1rzbKMc3XllEeVY3i0FBbP8jekcsuhV8hfMgDtUl7qngme1UxiYojPG5I7ClPZ2J3q7OBOQ6xG3tt9b0/Ovb5LsvWb+SR8+JJV5R3H1qhYtryOvk+ySY90gy47p4t2oE7UfI5/zWWSn4tVYljf0pq9iQc9m3wTT4cai51tTaaNmza74MvKgQklALncGqqWKrLpXkkn+Md05gcfUUa1RDfdPkfgY04UcvIbXoLaJgZewrM0Fw4uWoK3pT0Za93XwUDEXiQvlS/sEvR2I8nFyQ9wLCm0vUz+Zk8mHJKnkPMdTWvRIpwumCITG45V3aUVabR4LYlhG5pVmxNbWb4K4cYsCUI4mo9r8pM9f1bKqZNJhsLhRrveqKaLyTexrCgnZJPxY696cmjy72QuWN18S+h2ok5Ov+EheL7qlgshYHpW6JFXqVVVEeRkrZg0W460FOrK9q0Sg7FFlu3JiRRWtVEL2onwdysWcpyv/NZS6I9bp8kxBCA31piFZrspGROfcZeRFZZcHp0XVtFUkYMYIF9Lkmk1fI/RykiCVYT+Q/pVCklu2lwKj4o+g8CaJ8iauOWFkRJcODpvagViLe7bkditBE45i6ncWoby0VelW1rlUscUhHt6X2vSaWfye/p/C5ChjKgq5Fuldd/KJ879nCEPP7bWUXFFVSUWz6rkFc1A+xv36Uz6+Dyb0dr/AKKvf9wX5DXal9YB1jwhT5zwnUmw6WrfqViDTJti3+Shkbya1zRLFop9f02nIidlNyuvbWmVLHm24I4s11cqSQD0pjpJqzVS39g8bm4FL6mdZDRpWsY1PHuaCxXhSq5Z5o3BudL961Mn9nWXCGJALFSy2NBawyluqgXLgw3BuSfSirditdmFHCyeUetu9c7fkg0245NGNuSqGjubb1O/0wFaY5FvENRawolYGzI2gYEaXHWj7nn2tLPOSFCBdfWtgdeswhXvhGsDxPUHamdT1M8GkkT5U2PIpVzqeooqJoo1ydawiLHDwyFsd+Sn+3rTbQ1yBl/PDN/CzJGQDiQw3qLTNSUXsmoKpve9xXceI3tS6REEPsXqrSg5cdZIw6WB7msreHDFK3HZiZIUZbg2dR0olaBuFXpaTNzEdkNydKozfJ6rzSqZw4r/AGa9SaeCpVfI4ZMVrMR9BWdWSbSzzMZBo1hXRBO6qvLIMnFh5hjuetcrNs8217Xv+huFKEYIxuporqUe56q6rk2cSQRNdNR2qXSsltbs1o2GTCQw4+tR2XR8CqtQ2RT4pgfwkv6GqKX7LlE+1nZxHBI+RKHAJLX7bU9VUArFST5EsyOrgFhRVSaO0zTskgos93HVSDtWPMdXNVRoQZERF2azdhSLUZjbYbNCz+O57msSaRJdPtLHY5VGAZ9DQaKRqv1+C2WGHiHXyqal3MMY22pI5F2ZI/rpVKf5YhVlzJO7SI1yniaNJMp6peAiFdLrY+lZ4Z3wTPHKsgIUW+lNTUE2l0nJRFjCQHoaXa8C6a8nXwylirX7iuWkm67BJEnVqx2ZK9HZgtEORsdLb1qYdVDAGKT/AMdr963v+RzvChiZMdSSrXB70auTaXFJjtGeNyRuDRO0gq/EDkjkZQFOooW0PyjiRM8eR3NFVobq6olMEvLkelMVkKzsk+Dhhcm/St7HX0SDEETRki4YUt3Z519XaT//0aRM3tD1O9fpfU8OtP5Fplt7xCm5Nb9YNcv65GCVGc896zr+BmebtaF4ONJwYNob7a0SUlzrwoHwyh2AXRgN6Cyg5wuGPjWQsA760uzSJb6pfBZGyRnSTi1Ism/gH+rfBoYeZKy2WS9qk2xr+CjOqShoplmgkQe4vkOtIVLV8Mk9qzjgSIsdlIOnajVroizTIpZhiHfkt9BvVNad0F9VmUx56TJrGB/rSn67q/I1ZceTy5ccbXYC1a8W0FTNzwUrnBlsq3HekPCGerj6/Wss4+SoPktx3FEsn8Mn1q5EZALIeOgNNpx5E3okuSWINGwJkJHam2afwRPSFJoweduRH061De0eBNdJY98RtTHr6UNdl8ltI8sleCW5FwhHenLSr/Yi7V7QRyEbSEhu9tKoXC4O0fSo/GZY/wAm06Ui8vwTZ2bF5s0dzws1xajyyb8m/wDM7W58GUubPFIVceAOlX/TVrgszxVeCmSUT6pYWoK16+Sh5pOWcjhV9yb1trwPyvyckxCxsDYitWkB3055FNiNHZmolomHjbs+BTwSDkxIKnYUSsi1NJNISZo9Fc0zq/gmun4Q+GUcSsbC3rSr1+WV50hQzrZGVGVsW4nc0mFZs9WuVVVSebPIDFibDe9NrkeftTs3AQyYpgPb363rHVryFnjHklyIxyJsB603N8C/ZtBOJApCsRajspPnfYu7WhHRMvvDjdv9K7qAqRaCm7O1ih1oPBRo1XiQ/wBtowV42NqH65F3o45OY3y/FyBowoL+tJCsW3BoxfMPKLD8hSH6iqej6/pr5PZPyMoT/IlwdLiupip4Pcp6i6yZU+Ym/Qmrq0Itcuqkv+OyoXQhmA+lS7Vc8HlPW1nCNIWI0PJT1NTFlF1RO+HyDAKfrTVrBV66STky83H9oeQqvO8+BHtXbXBn/siJONvE7Uy1TytlFCvDliKC7Urq0b6tWkUtPGtrAkdzWKrLbUflhCfhqoLDsKzpIzPPiWEsplXxXi3Y61jrArqrOBURm5DltfWjskWeuq1UncnDZ/xa3Y1lNID2up5Fw4sqN5edFa6Ytbo2MHmhClQFNef7CTRdlql8jsyFwbpa1qDC6iGBak2dmY0yvfU16NWiPqmyWV7niRqKbVDrVjk7HFKPJb/QChtZDvVhuR4fIGrLpbS9CkhfsaKz4FLnKjBSDcn7UTzk87SjqjRjePIiKG21TNOrkylZ4MjNxMnHa3EtGdiBVmWlbFtaVSE8MkyHQgWopUFVOruFeVH1c37VkJops1ILNdvMUSR5u9uYR2OWNHC20PU0Nk2efpLcBzcXSw1bpWJQDevEHcXFmdgrr9712l0kep6ulaQi18Vkbje1hpep6XUSW66drQBHivKBcm4Nde8FGN1VHMn4xrXtqK3HVC/c9lQJj+LkZb8SPrTnsjyF7SgNcL27XbUUL0kRf2GyhsSOaMnjy7ig+xphYt2ZmzYkafjHb61RW8np0T/JIwlBPFdutHKKVVVXIh5pFbzXrvTEjz9fPBZA7MgGpU96XZBqyrUuhxwEBuTfpSLW5Drt/Iz2Cx1U1naCXvyOGASLgD60H2jL+xCGHGYDQg+lD9iI9dezJpFJFmHH6UxMTbhBwrpdWIt61lmFnYcJHG2p9aW0hG1hJyArjl466iuWZNllymKzoecnONhb0p2bhcnsY4pWlkj4LyeTEgimLSD0VqlyA/xiueOtwN6JawT7ezzyJPxzREOoNwelF9qZE/Y7f4NHEXJ5XuADSLupv31Us1IY1K8ZHOtSXv8AhEGvsN8JFQgxypRTrbrSe9vLLsq2iGSDFkVyCNPSn20TR6XrtUR1vjrrtp61i2M09ginwIweIAJqiurAo2/Jk5Hx68iCApqqugGuvVAxYvtmx8gdqx3k8zT2HZwhUsCs/ECzDaiqza1hwFGiEhXWzDrWtlqu5SRV7uPH4qbuKVDZ6apZo7FnlLAudDe16G2cj88YUBy/JRyKeSkMP7qGucGv12Qy/J22UkelPrQVf1oUnDm8lDBWreot5cSNj4zRkgWf/WsfAnP+uBfuzIbGO3rWwmPskl5Ge+xAJQ3HUVnUT1n5C/7AKoLDS/3rPrOtm4k0cf5fjHYfgetS3wllKwinI2L5DkLMSw/iutl+CbPGEM96I2sLg96HqzLVcnI+AJ4rvWuRNrQnyMCqykFrHoKGYPOtbsz0BZTZhpXWUhY8Dn9lhdQVNLUozWzYviOoBNHIFFB1oybG3FT0rlYoTShgiIqSb+Iruwvvy2Lk472/miUiOrbJJplvbanVqPWMHYXcMCNu9dZDM4kpa7XuRSlwDb+rEEhKsVP2NUIJ16o8EWRTY6jpWNwSWt5JCJYuRsQCd63hkvENn//Se6zxkK63Uda/TZR493WqQawFmLKgU9xS+5F9k28jRhyO1yN9Ca77Ei6mtaf5Yyb4orGrf296Gu/I+/sfyhBRYSPO5GulMTkVXtZyA2bISPG1q360d9SmR6ZcnVLjudaB5oormh0WYyPyTQ9qC2cqGZdQaKfJB0tILE9akt68Pgh0p2fAuTMYKeFiDR1yXyWev6cV5M/Ly8ngRa49KpzzrJTf1q9YIIM/IEvEKR9TT7ZqCf661cGjHNOT5WYW2pFqpDcaVdimCeYjj+A7mk2ovJXratamhjShgFa7HqTU2lY8Hi66zwXLHFIhAvfapHZpiXd24IZw0TEcBYdTTe3ZeTzPYtzCG4+Ymo2JO9A8GH6+TfLLlznGg8qQ/WTPQtl8HjmIbNJGNOorl67XhmUx/BLnHHmgLItyNqfjSycNir4WujGLMw4nxIr0q1SLPXxSROzsrWLE3OhpyUj2pYpj/nIlBKHY1q8cCbtK/AxXEEq8VJVjpeha7ITrZuyLkym9wD2tO9IefHkrrmqvyOOXihzyBB9KX9V/gU6Xvfg42RjSxkIdaxVsnyevj67rSGZ88iICGuapryylZNVM+V1a3QCqUhNc+ql+Q8cIxsmh6mg1cIp9RN25HurDaQgjp0qfJF/t6JIZHG7pZxyU9aZZw+Dy6XSX7YHsRo10FrVztI6ja5YM48L2uKOhF7VuDPewlBt4nSnHhaOLfsfHJGZNDtS2mJbacs1YVEqq2196ltaAa6S5Hy/GiVCygX7UFfYh8lK0nkxpfieMxI8GGu9WV3kXTX+h2NHLG1iw+tddpo9HK6RsoEbHsbNXnWlXk9as2pBj/J4/OJlVQL6rar8b8id6JUhnzsK5sM/ixFjVr6tHmZ2pVm/ifKTwECUFh3vUmmKt4Hqv2WhF7/Ocl3KCpF63J6q9NUpLE5TLlQgq12tvTs10ZHrRRyfPZsE0V9WNulqrlM8P2WrOF8B4M7tbl076VtkkhmdlWpvQwwzQ7kNUdrtM37XZBmB0Fka9d3T8lFrcQwFhkD8ieNb2QGdlPA3jKovxuO9DKHOySkpjyECDmBfrSbUc8Ezm4XuwltwO1Z1ZnVyWxxhwCNfpU1rQW52kqiVWHB1APQ1NaVyh+mvECZPiQz3K8hTV7kI8vT2lV8HT8HjPfSx9KX//AELIQ/ctexO3xLwBvbuR61TX21fyehnr1pDJpcESJY6OBtT67Qw87fyY2ZjyR8Qw42q2l0/BHvaYG4MgMnAb96HRcDMOLQy9m5xlGcgip0ocwV6KVEEc0cqzEk8k70+tk0PhUYRiQrdQAw61iswdLuCWfHZtxb1ptbwR6WVUST4LAg8vEdaZXQQ9FMiypRdGJI1BovIdau4zG+Rl5qDofpQ3yUFuGSTk145y7glbjapHSEV2a7jlPF7jSx2FBEoDS3Uv92Ax2JAJ61L0smeZva2jJpADcKwP+lPqIVIRO4OoJBPToKaja17OEQnIyo5OKgWPanOtWj2fV9atFydAlkbzHKu4SKJqnwCYE43Op7CiViTTVxJPNjx7hBf+aNWZ597N/IsTNECoXXppROsh1zd+B6fJSgWbQfSgeSLLZJKENiyw5Fm1oXSCZ1SK43cmyjWktL5FXabgJ5GABkS1utYl+DevHAPuQyIS1iK5poi0s1I+DFgZAVNr0q2lkDnq4F5GPwbf6GjpeTodrEEyXazjkO4qmrL8c+RQb2msgOvWiiS9ptwwxkycjyBtWdEL2ipQmXGGAOhNKtRnjew3JbBJDMhjZN+oqeydeZFV/lRIt8dIJLX0tXPR2QjbVorx5ccqvM60h1t8A+vWzhmiuPizAlCAwqa2t6+T3cHZ2giyw0TAq+o6VTg+yL/YrEcHYpTMutbavUmpAueFGBKjy70VLtD4ccmXl8dQ4+9W5/oh9hMzVYA3DeI7b05Ijwz5lk2UDzDLf602pc6Q5Z5YPeKljr9a5uCjGyTTK0+PMi2W2nW9JtpB6dNl5Zz/AKcBr8xyH3rPt4GV9js/AH6Ti9zfsTW90H9omaEhbMARTasl1tIlkdVPBdDtejTE3ajycxTlRvqPE9a66TBwdalblSLnUilpA7NvwHC/uR2B4VllDNySrWX5O/ppICpNzXd4DrcKPDePRRyt3rHdG/d3cHiZlbVa5QwrtVRfBEJEBYEHuKRZwSPf8HZEZAQD/NcnInR8C0k4tfrewompJEpYTzFTfXSsVSi1OqGJmqRa31vQPIR9bZ331Poa7qM6QhwDEC1A4Bs0+DgaZXsRcNXNJoTdqYG+00gHJNKHsl8hUaQmb4+FiSAQaOuzDto2yAxzRXXpfQ0+UwW0qx8lUN5BYrS7cDsYQE8VhcjjW1sI3vIiIpc8dzXWk85tt/5PTxGWMqGIatq4GdUlB//T0izgsGQlbbmv0O7XwfLe3ryxqEqFsoAO5rEjsadayx9nAvyAU1nBTRS5DMsRj4vcg13VzJ6GWTsoMyUKTZRpVNR1q9FyJbDbcC/pRq5N9ks7HEwNjdT010rHYbfVVRo4+KkkflYHqaltrD4PP/6HZwhc2PwOx7CmVvJbRdVLHxoVX8QfQ0uzksraUdnx/cjBtb0FZS8M3fRVoiNvj+MxZRcCm/dJ4dt3bQrxomA8hYelLvZF+OqrUtaOPipG+1jU/Zk/sau0HrgsSLAjpXQIzq2wBl5MD6sAvS1E8q2Q21a1Bky0yLqzWfvQ1x6kLy5kUrmPW/IA6U3rI/OrZbH8goIOwt1pFsJKFm7WHpkh9LAg0t5wOdVRR8nOEasQDYNvWy2jKJkk0UUct2UMrdafWza4Mu2nCAnjx+WxsaKtrHaymSz47q90PJTTK3XyTaNTyA1lKtKQLbVvnwLl3soKPfjYgKdhQ9Gj065OVIlWgkNmYK4orSir1c3PgTMOLf4223tXVc+T2XSPJ4ywuhD6Eda1VaYGib4RFL7bsY1a/TSn1b8i7U6+RMMckMpJGl9BW6RZDsHDNGSa6XCmw3tU+dYM9hdheO2Qb2uFPem3SJcutZbKTC5TVSAetJVlI22iVZAZSgtfT1pqcnj+xpJKQjPY2sO1aeR/7STygQ8iBoetb5EaNuSjH+RKAA9Kz6ZKfX9ftA9flJLsEYknYX0rHgvk9H/nSTnwC+XMzXlsDWrNLwT/AF1ng6uaBqFB+lc8y31/XbclEGW8i8R10tU2tOT38MlSksYcdm43Nh9aJWiTxfc9hNpGXm4skM7Em6HWqM7qyPIvzdwdjSN0HJ9O1FZtHt+lWFMFKY+M0Nr6jvSZasUez7FuhTHHioBxYAihbszy7aXv/ghyInkLaix6imKyR5WrrVsjECRpZm170Ss2T1s+pbjzFEBHlasdZPR9an8yXx5PMXbxpDpAyO1oQtpJL2uLHrRqqHdFRfsbE8bLx9zXsaCyafgWptxAn3ERuLglToKOJXAUNcIPnjK2p4jvWNWFauyNLBnCHirc13GtR7UlcjcE3aCqTOAPkApHWkVwKNshUue+6uTp0plfXXyjz9MV5YMGfMToxVhXX9ev4N9fBF8XyAkHFjZ6lv63XleCq2YXASdNe9Z26i5VSHO+OEn5NcdrVVj7EE2lueEYU8C4+SCob7CvRrbtUr9XK3fswubnysd66PgucLkdK0lrlTxPWgqkdeHyTyyFV/E27imVUmWpFZFvIxF7kj1o0jz9eWCkiMhVheuaYmlXZwSZHJDdF8T1NNryeis1Sss7AobyAF66zAztLLoElY6Pa3SkXaKPtqpZoxleFmHkdzU1vPBHfR3E5EnA2A8elHRSV/T1RKcsoxFiw9Kd9ck1spZ1ZllYXuumorHWEU4ZpORj4kn5AkCgrdFd9FIh0kANrimJoBtJSdAPDyNb8nn7XlQjhbl+OhHWugTWkvkQ37KtqVYHvRqGUJVQxDG48kBNY5Rzs/gU6Mj3QALWpk2loZdj8ms3IikWYrO3e3A50lIII5LQpouu61UEBx1DEKCCT30prueRro/AyPIfHkUEeJobU7I3ryki98hZCL7Hr0pNaQeisUiaWKVJLgclPpTa2TQ1wmGigEF1GnS1Y3+BVtOeBksaMOSKP4oK2fyTaueWRTJCzeXiwG4ptWyb+nYkfJeCUCNiRTXRNcm65xyzRTNjyIeV7NsajeTkidHowRMCQE1NPVIPWwwiJH4uZOkwDC3pStsk6nsermlYtzJTJEWA+4qP1l1cFvt5qJM+H3zYqDxq68EGHWqllSiQLoLmkuJHVfbkgzHkAJYXFVZpfB5+9E/BllElvxisepBtVEx8jPWz6KWyOaN4jqDxPrempyZq5Z2Jor3AOlc5G5VclUWUFY8Ln0vSrVkuVY8luPnqmssNgetJvlPhiofwyw5WDMvgCpPQip+t0+R1cbJSyLJxncELYjtVFLg3hLkzzFLG3F9BVKaZDe8s8qsH8Tp1rmYmkx6smvID1oWjLWgYUgVeSi5oZZk2aGDKh7cWHahdGOrnZhJKGa6yfaha4GVrD8BymQpuG+1ZWCX2bKD0MrEaX+ldZAYVUSygDmPMAdr0vwZa0vgi4SK/G2l73p8qBdYr5KY4wwI3PWlNwBbSWdWDi3lpeud5FPX8FPsKbX27ildwraHFR4zo1/rXNpg1cnJJ2Qqx0A3rlSROi5RTDkxlQQ+tqVbN/gOlWMDCUWW/IUMdSnOkLnySTREt1Bp1bE2jmwMJIFm0NFYLN8BT+0wIOprKydpVmRK3tzggED6VTWsk1aRaRsTu63CkA9RQwkHkl5Z//9TX4yswWQ+PUV9+ong+Nole8ITO3tGw8lvpVFVJ6Vs2+AVyyTa442o/rPQpkqIrhQOnjck/xSbuGW4OKyxU8HCQctvSireVwQ+1q7XhE4mZGK8fA9TTOoHVUTkfJwbH5KdRS+ZJdW3UVjZO4F+Y70TzG+lhPkfLkZLqFYihrSqPR3rWtUvkswoo5oxe5eka2dWJpvxBRIqRD8tOopSbZN7N3YkMiCQ63BpyqyTHN9pFy5HskGxK73pip2Lr5woOv8igVWvpvasWJ3/O3EE4+TUt4/zTPpH/APP9aKS4mjAVuZHSlxDJ7V7cEEyzK3LVTfanVaYm0N8DFXJZbXvptWTVFNOvgGNp0JDjataT8Dcknwhg+TeOUakDqBQvBNGvGbSy39kuAyE696R0jyPdFILysSLi5olUl3iRhyW9olgth/NB9fImmffkgy8iVdYhdTVFKL5Gr1U3z4MmSWZ7+4TcVSkl4LMMKrx8CGnzInujlh2ooTLllVsbDLlSycx4kbilXqogrzVKOTThErDW/rU7SRl9V5PTREHVSVND3ngdhWP6M57RZHgbfWrKKannezZvQ0EVpUu32NTvhjldVXBwmeJSqajrWqGwdElXk7jZUqtxlHiaK9E/B56iYRpxyo8dv4qR1aYWjlQTzC9wTYU5ODzfYfVEZRgx4MLmjT/J5tfMsmysSUg3NHW6D4fCJThzWvrfvT1dHr4WrWoEj+woLXuOtbEm7TZcD4/kIZ4iCSHA0JoHRphZYOAVyZASo/0rLI9X18FVSyuGRVsWNj6Urod7WziEUnNTYsbelZ9Z4+lI5BeWJ7/5LgjY1qq18CFm3aWgoVx0tfy9fWstLPQztaEvgpEGNKPFjyOwpTvapF7fsPwWQYQGjICNt6Rfb9kn/THCZFkxLDJZRYetHVu/k829XexHN7Mhs53p6TXga6uYR0QcAeB06UztJ6NXxB6CaVGIkUuAelZaq+A8Ul4LRNiydGVh0pLrZBqtr2/wQzyJFLzRG1p9VKge83XkcclZ4xurr0tQKnVg2pFQD5R3fUDc0XzwT1XbwDjzZEco9rRT1rtKJrkvwpWrmxsD3Hj5SEm9RcJwgr6K/jwTSSsgK7DpT1VMj0rJ6OfIVwyi4NZalWgsqVXJWsk5PIDWkuqNfWRkfyk8MihhfvS7etWyJNaJ2RpR/JRy6OoqK3quvgGuP9Hsr479iMtFWZ+z0cWL83Uwp8DMhuACbdK9Wm1LA6aVVRqRTt4SAgWoXZLlDleqYqbGCKRqVNHW8itrtqCCXxJAtbvVCJNF1XIEauykqTf0FbMDvToolgzxMB5HkLVtGP8AYvPCIkneJvw0vvTXVMRHSsya0TLJFdPy71M+GCm2g1kkN7HUUNkkWerkrMTlTTlb32712SUnpbZ1gljkLmx5Eje1UNQeW7KSzHiiRwzMQDuDSb2bQi/sOYRswJA6kB+Q7GoNHZfA/Gzb8E2TEiXO4p2Vmzd5iCGRkIJU/aqUhCoTCTjJxtyvTI4M6w4HP7bAMviR0NApDtPAklFNyxBo+QOTjypbYtfrXQyXaR/xso52YchSdVwIwvDhGyywstw1u4qObIdtdkk8CuboNRsabSz+SStZcsiljc256svaqE18Dm0lJoYrx8LSAkVPonPA/O7sVER2BQ2Wky/kzW35PJBGbB2v62rHo/gnWjmEBNj+2DxcEE6A0dLz5QcO3wZ2bgZ0p5RgWI6VTntReSxLOnLMvIwc1fzXUU170+Dy/c9mrGYCzR2WRfE70PDXAPpQXr+v7vipBO1qx9oPWzVnaX4KooC7WN/Q1PpeEep61l2PTSTwEry5L/toMlW3JX7UQLx842IKEd70++X7PIyzn5KRKDqp36Uh1L1T4JMlAzeZstUZvjgl34cIi4QKTxDMT/FPliaK3yKmxY5GtwP1FHW8GXtDiST/AKuLmSC1H9pRns6hNBFADrc+tcm2FfS9kURmOaMACxHWl2lMpxrC5DjBU8W09TpQPnkfa8IqQLbxYXFAed7GrfAMq3tzs1ulqKrJI/BJLBEkgdTxB3FNrZtA3s5CeKJkDoRcb1ibkOqdhQSUiy/1opRXRL5OLE5azIB61zY3uqhRxmN7q5J6iublEumvJbHJG2jDi4pLTI72dmMQLbxtyoWFXxASe5exsfSscG1hHJBG2pBVh0rlJPo22KLrHJyVb3GpoolCtW0VhkkjB/u7CktNC7PgoilHGxUWHelWqCpfAzmhtoAO9qHqyhVjlgPiIwNzodq1asR3b8EroMc7gi+lPT7FGdW+Axnyh7r4r1rPpUFlslVyzv7YYmy69zQ/UQ/X2sJfKAlAK3piz4GvKGMYJIbgWNDyjNHyTSwMeVug0o62RIobI8cZUYZQbgdDTL2rAp6VrVyf/9XRw/kOYuw31r9E+iD5r08I5GyxJkKpF1+1FW3U9LiiT+QUxFjNtGHc1r0kTXV3sUQSPFogHHtQWqn5LlwuQpWjkGoKvWVTQh0ZLKQ446EelMSgVdcknumIlQt1vtTesgOo7GbIdvGIKDuaCyS+SrBUp5ZXLG3G5W5HWlVaB2v2YlXyYZeSGydqNqtlyZVVTLjOksXn+VI6NPgzXlcCQFccVWzUfK8hYZwuRUqSi6sL32o6tDdIbgUIlLgMLWFFPBTR9X/gCX49XBIYK1atYJN/YhHYY5MY3V+X12rHZWJFo7lByZGtyUMD2pfRfB31p2SQiQZTMQg4r/WmLqennnSi5JkaaOSzMWPW9NaTRlYkf7kIk/ygWP8ANBDjgXdu14qNjzEikAVeSHvQPNtD3m04PZUxbWMEXG1dnWPJl8FPJLFlzIpWU+JplqL4H+vkohCJcpbMAS3aiSKa+u2oIWy5r7X7imqqDeSqhqmOVL8uD9qzwzm4qUY4kVb8hcdaG0Etb9i3lMVBHWkQihxBpR4bTQ+ba2uKgtfrYte6VYRmZWA8bBgL+pFehnomeFvr2cj8eHIksosAKXpZIpWtKLnyXLhsIyHS570j7FPBLb2Ho+CJ41E1iLD1qlW4B/1Y6G0e45D0oLci3oxkpjcaLYUFU0R6KXLM2RWjksNVPenpyS2X9QInla5UMRTa1Rfl6ynklOXkobFhxpnRMs+qoMrwzxEOCD3rkmmOtXrSRMXxxuTHdh6UVrmevrzyWxY5X84zYEXNKbKXvL4PZA9ti0YutdTlci9lzLBM6Mp0sw3tRdSa1WwoPYmNuNn9TWWlAVs0UrhyxuANFPTelvRNBbewq8FCxsjg3pNrSeJtt3sVJlurDzt6mlvJfgZXNLlnMhFlUuD5d62nAVaSY2TaOZeZuKsryuDb1hqB0Uy8NOhoXUdDiBseVEw0bUanShdGcquqllsCwHyYXLDekWbG+q7Nyj2RDE4Fm+wraWaH7N8Ewh4MeF7dL03tPknVuz5FLEbtzO/Stdin1ay2kTSe4h0Y2/tpihjdY8GhgSTSQ8Wc3qfWqTkyula5x8lUsCGO7NZh3pdbuSXS7aBTwi8WBtWvlmZzaocWS5H3obURsJKSi6Mbm1+5pXKIb2drDFbjbS47isakprwjQxJZ1/DVexqLelX5HVtVLkqlZZF1HFu9T0q6v9EmynkRPEeRuB6GnUvwV5U/ozZwGJVhf6VbRjb168sgyIEW5C3XrVNLNnntO9iJZZkYhFshO1PdUz0cslRc+Tzli1tBetQOjSAeNHTiSAPSuk8/SzbgSsnsaLcjtRtSX+vi2MhzGZiUUA0rSh7Hr4qillEnuPH5UFITB3supmyvkQycoyFBqtJPyeYs03LFxfJcT/lNyO9dbP8ABLekeD6H4n5HGlWygBvWvP8AZxsir06tcstnZbEMAAelIzH3pJnOFLkWFWLwS3/kCTEjmBseLD1rVo0ZS0cvyRyYojJsxuO9OV5GO7gOGJ9nIIO1Da34Ir7LwgnxXZSFIFD3RNpdRBGj5GPP+dxfWmdVZGevmnbwWJ8sqN/lJ1pdsJ8FGubbhFMfy0BcANYH0pT9di/+dpnsvKj3Tr1FbTN/Id/Xflk0PyscDf5ACp70y2ErgZj69n4K4fmcR7cb6+mlJv61hG+Vpgqh+XHIgAfxSbeqI+nr5L3kx54NRrU1a2rY9LPN/XJG7pHCfMgDtVKTb8Etla9TIz80uvi2oNOWMHlezjHkPGeJwDISCABRQ14KfXULgqWaCK1xyB6ga0Lq2W1rZwWRP7pARLepqXRQuWe562ap5fI3JhQLc6HqaXhZjPbs7vgyg0YksZPE16DTglyp1fgcjwrqpLEbk0qybKqKz8gzBJdQpajpKJtP9iQx5Cv4gIPXWnSmidusiZVmL/mSR0FHWAoUi+TBgHFwe5ooOfkcY+a+IUigmGNbhcnkw51IKx29RWW0QzLRfke0MhsZFv6UtWXwFpqvgU8bI910XtTE5RDrfkcAHi5AgnqKDwwZmsiZYkkS17H1o1ZoKqIvYyIntcFD1pvZNFVWlwGsPlyJ5EethWNmfZyNAcMCFFupoROl0uWP9qNxvZqDs0SO7sxZhYHy+1qLsA7x4KIybbAW70thpjFMTfXuKFyc20hggW99wdqDuTfZLAkxjJ42uK77EhGuiR1cGRBdQbVn3JgLafI6CJ1c8zcWoHZPwM9e024CmDxrdSWU1tYZTeson91mDKS1N6pFOGKSFcUt5En0NHLGu0IekYaPxG1LdoZK7z5AGPIWB1tet7oFaKpR+qhHItY9KT9rEX2dnwDInADf62ok5OabRJNNMNUNOrRDHkqqWZmVnzRlSVsb60byUHm+zlCP/9ZuAiSBRe1hvX6XZwjwfWv0SNGNnhFuV0vSWux0u7kP2xI2jb62FdMFuaVBi4oB1bXsaF6GW2drQjzI5NiNO4rk0OlUU/Ih8Yxvddu1GryR2vzIJxg5IBA0ru8C+02Ee/NjOBfS9M6KyHZ5dmM/7F2NiR9qz6kWfQkwPfEgsNa3rAnVKqKI2j4WI100pbTEy2iqKSG9zYW2pVkws5b4GkLM3G47ignqOcVfJ1cJGGpvWPZiLewxU2PBGbWNx3rVe1iLa9rOAC0atZ1sp60cP4GJOvCF8I+f+NtO9Gm45KM6uvLHh1Vb6GltFONHo5IshlLX4/xT6eChZcmbkcElV3JIJ/iqK8oY00+BkgiJDxynXYUKn5Qy8+YHxGTiGuGA03oLQLrZWYuTHQudTrXKx6Ff4AXGUXAuSOlde4WDdmZ2ZhSM10unpenZ34D2aTgjP7Cx8bnkO9OUSI0aWZR8fnvGGSUX9TQ3pJDnzKRtQfIwsgFwLVLbJyUujSNbCy00U3YHrUeuU8g6X6VNOLETKjKkix2qS+31s8N+yqp//wCjjfEiJhpp3rl7fYTb2W2jr4ckbAg3Q9a5bJr9np+vCcmfm4g5cibVXjpwZvZzwROBGNH0qhcgWmJAZ5eJ9vyNFC+Qa5qOTPmmmE1pL3HSnVqo4OywVr8Es82QdgFU0dUj11jWin5EmFpAWB1FHMCrXS5DgdkujsGHY1jRDa/dwdM0sRvG/FSeldCZZnkq1llOPLI7EtLyDdKXav6CzaTbgZKfCy6/Wsr5N1X88kjm48AC3UUwUqcckjuyycmHA30NMF3hcrwaWP8AJPx4s+ttKRbJEF6/ZbwKb5gX4lr61qwB/wCTqpZfDnY0qbeXSk2zsD1tYf7pBBt4HrWdS7LNIhzYDMoMZ1FNo48i9apeROLDI2+40NFayE57LyPfCZGDAmx3tS/tQnf2OTSxMQhQdT6mkaaF/pXlCs2PJiIZDxBosnVlO1UyZcjOuORup6011qLzzpIMQk9zcknvW2iB6sqcFSxe5dWBuOlLdoPO32+B2Oscb+N1a3Wl3bZNW1r2gfNkCSPgy696ClYZ6qw60RAySxg21BqhNMKqSoAMlk/IEX7VrpJBrzwh6z+4Nb2OxoHWDlVURo4hutg4sO9S6v8ARLfY0YZfbCsLFepFR3pIKbhMrknUp3Hep658lix4OxusrcGa1DpV1UovpFGT5uCYxyU3B1vT/X37cE27dmZbwyOSFOp71erJG5qtFLBHx1z5nyHSt+/8CH7Ha0InysQ//j6im00D0tHPyZcp9iS97jreqVyLxydrSeuk6nja3ahfB73r5Ki/ZLeaBuKjxvrR8Ma1HkrgzZ7lGHi1C80SbNTH5ClDSKQANO4rq8E90kjMyMcMDYWanqxGxnx+QIX8iCR0odFKKPTT0tx4RuJlyTLc7VAs4PV16o8EV7Fh970yYPD00lyNWONWuDehbYHdyOYRkAFBqNTS+fyJ3u/CZO2OvK66AUXcktfqd/xIobex1rFLAypa7klyIQ78lU8T12qiloR6meaqzNnxJYpbnzRqfW6aM21StwNXH8gVNtNL0PYFaTaS1MaRk4sdLdKU7pD6aKzJJfivPqb0xbDtfYVFAqPAlimGpI7Vz1TPIfsTYvi4hxYEN2NJcsDs72NWI+5j2OlS2UWPcq1XKPkm9xkDIqBtetOieRFMpUMw8/MKy2kTgb6Wp/Tjg8b3c/6hDospuIIswPU0XRFGOSSLoXaWMAELalWUM9LCijkohkyEZdSwHak3rVpno5JNooleaQ3sSu1TZJFvsdaL9iGgxjYkcSOtVK1jx73s3wNFhe3kvpSmWLhOfIHCS5KXtTJXySNpeRfG766MO9H8Erf9HJeXewG/EVtRjSqpBfAhlHKzG25NctWgfujk9FhRR/jc9wa56NiXva7HKZ4yArWWgcMqqklyUCN3OpBBG9LlI3spI8jEHRiD3p1NBOt+BcUZVbHU/wC4UdmZk5R4qbjl12rpH1hHnxgRe1z2rFcy15ZMSimxW1N5MhpB2DJ4kXHShJNbTweR2VjySwPWuaOrC+QmTkCRoR61ki7OEPx1LEAmxpd3ANNB7Y7Kd7g9qX9gGuoyKArZjcil20kmWs+AZ5ODBhXVpIm1HZydiz5eFmF19K54IblimAuQ3ueIJv3pv1qC/LFV8jQxccXuOthQRHgbx4AeMA3UWNErFCROzXuljf6UxL5F6qFBxGmjYkDQ1rSZLK5Hx5ZGjDXek2znwSWXZwhy5JawVR9aF5wPWaouRntO6CzD6UPZJjaR+DPzWMa34hgDbSqc+Q9qcSZPyMt1BC6WvtTVU8v2qH//1yheWK7MBxNfpaSZ8zgp8Fa5PJRaxWu6QelXNVRRFkRBb8uDClWo2Alaw+OdchfDybvsKB06lWWapWX5CLPGwDXI/wBtDCfgl9i8so9uKVdrenrS+zqItcQcVR5AXtvR10C9ZNuSaf48TC2tyftTq6wepWyqiRvjmilBbUU1ayhWvs/1wGYzY8CBbp1oZ/JE32bk9zUEEny9a2B6Tf8AgOEr7lmNw21qy3gpz4cI9NJJDOrRHxIrKpNcnbVm6bCX5HJSS52J61jxq0R61rP6NOHIimIMtj61HejX+pC7TbgcMPFmNlYW9TQPa1fKGfY6vkGX4lUUsr6VtPan4HV1duYFxQIlwSDemWu2ehjZpQDNEnH1ra3Y+lW0ZubiKyHkQQelU56clFuEZz4yxLobi1UK0gWu2oAx2nHioPHreuvA/wBaiS5OZWZLFbiPKgokz0L+v2Us7i/I5MjC62J6WrNM0bStKclhSOa/uA8u9YpqRXvL4JMrDsujXF9LCnUuQ+zrwSpiukvkgKnYtTHbgRjdKxUmMnJbKDftS+xXfZqEU+77RtGSCBe16X1lcknu3ccmj8d81INHW3HqKk19VM8bHPtaTT/7pwRx81PQ1N/xVf6K7+qp5NTE+RXISxAX0qDb1nRyi7DJJE+djcgSLWO9O9fUZaqXJjZGA+oBBHavSpshNrokSFk0N1NPdpE/ZPB0we5uCT3NZ2goyhAZPxysgPUV1NeSy2nBlvhSRk21FVK6ZFbQBcWOSxcEHvW9gMdHMoa2LGsdkIPoaFW5K73bXIpMeZZPG/HrYUTsoCpeqZWI3INztS5NtfsxMka3FtDtc0SYOloUs6MKKQBX1J1BoXozyd/Ydn1Qmb4hhIGQECjWpXnqq+RE3xcgU9aJaJitN+7/AESwvk40oWRboaNwzFZTwbmPlqY7NrptU1qcl2dG1CFz5qFDbxI0olQRvlFZEwZX5WN+1a6HnZ08jG+QmCAHQX2ofqQOmKg1vjPkF4Ak39Km2xLPXUVNw4sGXj362rzvstnYp+yVCMPIwZoXIUHjXpU1VkbWKrkSUluCu49KOUKvZADJmSQFtATrXOiZ5u0SaEJgnIa+vfakWTqVerWHI+XDuhAP0pddYZ6V7yiezreN0+hNN4fKEXc8EU8LcrdDT62E2SQghksVO3SimROlpXIyHKlDWkSw6mhdF8E6SX+TUxc5FAHLkD/bUt8mxuWbuy1sqV0PAALfvUqzSse59Na058hDLZCeRFq55JoT9fazKYs/3VKE3FT2w6uUOeSS5EtLCgbkttd6eq2fyeNZXu3BPJkROvKMG4ptaNOGU4es0pZHlZpjYc2AFtjT885QeuHayhEsyJki5sdKdVupXWqzQEGDGLgAjj2rNNBuGzct/Aw4Kk2B36GuWkCt/Y5ETYphmBY+I6CmVv2RLfRu/AzwIupvQ8mWbbJ51ivcmx2plWxFpJo8aBZthdqO1nBb67deC5EZP+IfSkyvkLfWfIatMp8htXNI8yzXwVxSoSvIXHWkWTFXv+CtEikNl1PrU9rOvkm00jyG+LGVJZuNulAtW3wiZWd5gnEUSDQX63NPlsvyTVQlMfHyAI7VzkZLSF5McLR3Qa9ulbRueSe9W1LJLQhT7g5aaWpyn4CyVnwj0I8gEOnatt45PQyXXhncl8iwAXUbkVlVUn9vr8iOczeViCTWpI85Jf7BxKC4Yrfveukf6/NjRg9q9g1j/tqe8nqPRopOLe9lAB6mlfaFm+T5n5vF4yAjU7+lehnaUeV7qmyEYkzMoRbEjoKa6jMkohmhi5Dp+UfEd6VpWfk9L1aT8jv3yjCzadqRbOVB7Pr+tH9MoPyU3A8V0pdcFIHs5ppts6kvvp5gDuKK1er4IsqpeAozway24msakKz55C5kmwPE72roJWvgTI6t5bkG1MSgFVjk40sa2G9cqsDWQlLf2ue9qx/4E/o4syX8zqD0rXV/BudX8Di8dv8AcO1LhlVqvwcUuH0Xx6VriDaxUN0dkIJGmwrE1JLZ9mRvN7R3sdtacqyNrnCkoRkkAva560tpo6zlpIFoGJ8W0JrVcbVpCJ8Fu4J7UdNRd79nC8GcRPDL5obHY1RKaJrtTCKY8wW4utx60t5gLOeDz5MZXkBauVGdejgKDIU9PpQ2qydIvSQNDe9j0qZrkTZ9kAJZUTVuS0SohmeaVTpjWVLk62rO0GO08IRFBkjxRSR3NNdq/I7F1quRjpkIARuKxOrHWaY2LLkLAPYHagtmvgJJLk0UgaUXK3/9hUltFUYtkhE+KVN+V9e2tMprJHtdtiSmw4Gx60c/sVZ/AloGMo0NjTFdQbWFY97MglsgJNutd3Ucm3uu3JXHjZRsWSy970m2tPyWZ7Uop+Q58ECOwS5NDTaX5F6Xd0fO/KRZC3tGAu1X0dY8kXsVqlLZ/9DTb4ua7ELdCNq/Ra71R8/hetUJfDaAeQ69KatOw22jsh+NEso847i/5Uu9o+RmevVeSuDHWJvDX0pNtJ8iLbOzKZRGwPIWOwtSqyvB1pfgkkf2mGnjenpScqOYDhyD7hAuVboay1OC2lFRuSr2+SBgCCKT2hgX0/mTkmOjp5Gxrq3aYhN2MnIT2ZrL161bRyh9cueQFUk/5EuO4rW/wa7qYQbQwniVPFqzsyrOUk2E8cii41I2rE0T7admF7KSqRKNe9Lto14PN33+KnI4Xge4YMn1ruyaFVt1LBlKrL6ilfW2PzydrSykTytHvcHaluiTPZ9fGvUlkDq3kCAeop1XKKISfHgZCwVwrNdT3oLKVIN78wiibAxJk139KRTa1WOtpaIMqT4uFeQ5m29quru2TLW34EpjRi1vvejvfgq9ROzUnMrBhmHgfMelJwu15PV9rWEQvirGoLAhl7aVZ3khpZ2UiffVTcMx11FFEmurSkZ7scikISWGtq2Gjy/Zbs4PRSyOwR0Nu5rmkgM6qrX5HLEjWKngRQNm20a5fIWSyjiLKT3G9ZVE21XZpszo8wwZBVuXBjTuko7PLpLNqHJh4q2wPWpbUYTm3Jo42SQwMeqnrUutJXJf69OeSib5CWMW0dTU2eKbL9sFEiv245FJtxYVR9bR4uy4ZxMhDqy3I61royKlG2ed43tw0Nck15L659VLD9u8ZDjXoaHtzwMT7KEZeVIsT+SX6XquilEO9XIhwji6iwpilFGdOlToWMICFuR1rpch1bsKM5B8Tb0ouoXSOWOjJf6mgfBqaSHSYt01A9KBX5JN9u3CM9vCQHla2lqcuSSi5kpDOU0N9aBoou1ByIgMVl1BrH+iRW/B7J+MSUXUcgdu9ZXaPJz0gZjfBRuQoPFrdTWaezCPX9T2vz+CTM+EOKwLP7gPQUzP2O/gk9r23dwlCM+RWgfkB4E09ciYhBTc2S6WYHvXJIa6JgYmcYW4yHT0rbUkdSrjqjbwPmJY2HBmZb7GpNfXVvJVXNVXJvfsw5cHJvB/WvOWbzt+gHTsuDJy24OeBN6uz5QnXOPJBJJFOmrcZFp9atMlyxdn4JIcvLx5LG7Jfem2pVotVa1R9HgfJROmo8vWvO2waM5s4QzIyVl2SxHWgzpHyNvh0Ut8iRGs4sBZhTXbqQu/PPkhy8SSPTf706miYL5MjLkyUBuCFqqiRRX16pT8nMPIkb8WYVmiPQ9LNeWaKZOZEAGuYzU3SrZbtaqqaEPvMdBcdb0m8ClatSuNJIjcHie1KcMh9jeeEVLEJ111PWk2t1FYtIkfFeAsENr6037VZFmC7efBDkRSH/kUHXQmqc7L4D0a8IQJ1iI5AWpvWRHV2twdXOAkfgfE9KB5ykVrHpITZV1BswI61qoQ6V+QpJEljNyeXSsShmunEkjckNgTTlyYq/kEeRIkXlbrW/4ETLhHmEQsdQR3rORtm0pKocjiQA16Xasnn7WdmWxsk9725EVO11FV8iTCVY2Ogo1aQJ5BGRIHHD8u9Y6J+Sd17WllMZybhmPJW3oWq/BZiqzx4OtC4N2eyk7V3dfgbfRLwglHsy2Pkvc0Fn2RFro3aC0QxTJYqSLdKnd3Vhq3wRP8RxJ4hiDVK9n8j6a9Vydh+M4tdiQL0F/a/BJp73PBfN8fEyDgxBtrUf8A0teUS+x7Dt5JJ8SBEF28gN6oz0tb4Nzray8EJC8tCTVi8Hq+vlB7yLDhcMOtaM1c2SNDGyMh7pKtwBuKk1pVcouxVVKIPk8ZZuVxxIGl6pxvB5/s8Wl+TDCJjTfmFH9arU2JslZ28FcWbHtcMp3vS70PpPS9ZrljucJTkoUX7mkw5PSsn1GIz8fKxTvRQefrZPhCveaJ/Ec1Pai69kbWnXkaZ13VDftWKovSsLyPx8qdvzgsBpc0F81+SKvWZnkOROYsotc30oauBlkqrkA4pKmi+wivr2kWrGN7EXo2pRtFzISxl2HQHWhbgZ2VSyDHQoSbg96Re7kDPZ3AmcKSFaxFFVSUXo/kV7xJGvl3o+pueXyDIrOp0BrauDdmvAmO6EelMfJPVl8Te4g4tZvWp7KDr245GDxP+W9+4oHz4Fdp8E+VAr6oQe16ZS0eRFlHLIxjAGxGtP7h52FvjBBe171veRWmjfCJpZJIDcgcaKExWihcFuJkMw8bH0pN6IXRLwWxOhHE2v6UmyZrc8fBy6xMb3OtgKx8oRpZpcGlC8c0YubEdqkaaY71aOxJlNIpshv9qqzSfk9X6ElLFRKJlBYcXG/eivbr4IL7fgsxpZYGA9zxY9an0qrLwK7/AKNE5GO27Xaovrugb1tZ8CHyoQRc6DcUxY2FWzdf8hxyYkouun1oXW9fJ1E05YqZIVcEEkelMo7M1q0yEkkYHG54nvWur8lVaP5GxRRyqVElqXe7r8FGdvMoy/lMEqNTzVj0qrHbseb7VnZn/9H7BSDpfxNfaNQfKLjgKTExpFN9b1ldbooTs+EZMitiy2U/4+29XV/tBUzc8gCbkbhra0fSBvTkM5XDSS5TuKz658DbU/Ab+w5Roze9Cuy8m6J1gMBQQR+QoeWJbdnAwZcouptpQvJDHmnweZxKLk8SK5KCylVVSC2LEw11PStWjRNfV2ZMuNIGdNbdKb3XkDCJcnf1SVsBZx0NY9Uhvs+wq0gtx8MGL/Jv2FS33l8Hl/8AS7qER5EbxSjiOSk63ptXKEWrDCkhilS5HEiirZplmVXdwjOymy4ULoOQFV16twe16/rK1Zfwcwfl8lUs6kih1wqy7LKrULwXD5MOl36nrSfph8A2y/kPl7vAgCxroiRMJQyqIcdwQGpFuRveRcyNc8b2PejrYDryJhgdmI48rdK7a/BZ6TSYORFJG44KRfc1uDTRvt2mylgtgrMDzY7Vv2QFTRLhGdN8VLE5KW4HvVdNk0Rez7KQtcO0lx+QovsPJWrtY5NFJ7o10oqtQUuFY8puCGJOtcCn5CyMVHQPG1iKyt2nyN0s4RBmYskkd1axFNraAN2lX9nfj2yFX25PNRWXgTTZKv7PocLgFF9F7XqDeT0/SbsyqT2eB4MPoamxmeS/3W+vJMGiViraX61XD+D5+7bYsTiKXU8kO9b1lBZ59XJWZYBHyU70nq5Gutr8IEZBbQXIruhZ9apWCbMhJIIBNOzsed7Tlgooa6k2I0omwe3wc/Vk1A19ax6Is9eGQ5GNKpJOhHan1sgd9F8DMebgQGahspIr3bfBdHMrhgGuaS6wDSvkiyGCE3Gt6dVSC834QH7ZCE2sornQHSvEIOPLgk48QG7mgtRoi1TquTQV4wgOwpCTbNypa50ZVlLILEbNROn5PZ9b15RDnZmRJFqNR13p2VEmPv6tVWTK9wyIVZ7ntVEHntTwkLXIlQhbeNF1RRlkuJEy8TLfgdd6JDlWLeQ0nmhPhe3Y1jSZ20Pg2vj/AJiTjxYX+1R7YIs9XBQPmzUmFiOJFZTOCffKWZknFJCRreqVyhbr0DkEhXT8egoeCXeyLPjohIdyHFJ2tCGejpNiybHkBAaTiKTSyjwU+5slwkLWVoyXU3A60fWTyqJtthz5cckV1HkOooaUaZ6C9d9ZfkzswvLFppYdaoz4ZV9Na0M3HGXESVIK0+0MHDqkaQyiYQHP2FI6ch7c1K4soo4tsaU85QrdxwakEkU6atYmpbp1ZErScSV8eawPgetdaqvUfnSLclTPG63vcmpOUz1s83Bl5RYA3Jt0NXZtAvMysmNnYFTVVbDlRUUgIrrfqaYR307NjFlnBAIFqzqieyTcDwC4F9Deg8G6XSQ79eMjUgt6UHdkt9W/AsYvK5tuaLuBjYVLjgC1hy9aJWO9nVxB2KOQkKbAelDayR51tUivGj9qQHf0pF7yTvZu3BolIXUlktcbip02vkpzTs+DHy1eFmZBdelW058mPPyHiZ0qp5R3G9ZfJP5H4UTXDKWy0ePUAG9wKX9bTO1r/PAUbiUqeN6Xbg8+90n5L8eN0e5dlU62FTXun8G00l8IrGQFuLlhU9s5A1bYCzFjZQB/rWfVHknzyl8iJ5WDjk1hVFM0VfVycMUMqW53PrTFZ1+D0c6wvBN+pMj3/t6GnfbVox6qoaY4ZrqQWoPs/IvF9ryzy++kpuQovrWvq0egmqs7l4/ugm9/Wsyv1E6Q7SfPZ3xqh9xf1NejnrwNzTTPRfFGVPEgEdqC+sM92nsKlOSmH4WeNLMAwA3NLe1WxenvLpAa4ntJ5knuBRPSXwSYXdlIQjSQWTx9KGWh17x5CXEddN/Wu7o87b2OzgETSwTWZrxnfrROqsgK1SZeuRiFOSvr2qZ0tJlq3u/0TSzqwNjoNKbWoVcYEsycrgXPQ0xJmWTk407XAXRhoK7oLvTwPwcjK9woxBtStqVgZ61aq0FmRjtIOR0b0pGd0uCvSyfgjOOq35i/3qhXkzu3wgdDyCC1hW/5Ajltk6zshsV8gdzTHWSK6LsfKJ/NV+oqe+f4J2/waCcX/Egi21TPgJ25Anxxxv8A/tW00BbklZGAuFBFPTk2iklkhmcaAmmqyRjdUhMmGzwkOt2rvtU8Emm0rgnxy+PIoZfG/Sif9IVm+S+PKgWZQRYNrSbZ2YVq2doGZGYtjx1F+1ZTH8hr1nZk2Nnzhiv9t9qdfFQe36vr1zrz5NNcpWQAra1TPOGJ9m0/JG8/CQ2Um+pNNVJR5jzgd+w5UEi31oPrQfRQPg4S6bketBaUOzfIGTA3uAhuNbXRQL9i6TBhlkW+nK25rXVMVjX5Y45i2vx8hvag+pjXm2N90TISgII3vQder5KuqrWWeid41JJveuslYTRyv8nZcuNlAve3Sg+lknsVfg//0vsJUltoNhvX2tGj5ulEkTs7IpJa2lPSTPQwy4kkyZZCdCGFtbU+lUM1zSJRLIjgug4+lM6p+CbKk24BnLsTxbxPSirBdtWtFyeRwi6NtWNSQ2bsMi+QDWCW5daF5fkfj68csP8AYHMs4AJrunHA1VmzgoUCVbXC32IpNn1F+37CzrBZAceJQHvIRvap7d7eP5PMpa9/0MSTDZ/FGDHuaB1ul5Gqtl8npmA1WPiOrUCU/JDvNn5OY4c34i/WitCDwSJs+RUszCzdRTsqSNXr20twZh+RHO3HkCe3SrVjwe5h6nRDSoeFzc2bpalzFkenRJZsh/VeJgynkp1INU90yb7IUFsKwlQWQai+lItIv7HbhM4WKMFjJtat8rkPpykw0zJOPHkeQ0oLZqSnPJQdOZISQWIO1jWfWgnkpBjzysh14ms0ylQPxy6yyt8wkDj5elKpnBNtn2tJ2LJi5EsvE+tbbNwL5Xg7OyyDQaW3raKDzdq8yzIc+1MLag3vViUoTlm0038npZEO4B+ldVFHR+RCIS5KAlTuKNsCrXYIwyhhwFlO4Nd2Q3XRUXJ2eDhYi5U7gVlbSRa27MzpHeCXkiXXtTUpFunPk18KZZlBF0Pao96wfTelVUoWStCEAZTf/dSc05O9p2twjNlzUEhS2g61ZWnEnnXx6cspTg62IBvsTQPgRe0leJAGHFh6C1I1sUetpA1sZ4TpqvShrdWA007MCVPeU6lStFV9RV4RIo4EWIJ63p3kmTbK4plDaqNaTavB6FEIzUU66a9BTMmDpQxZJEik8xde9VpSSdHPAyPLjVro9r9Kx0nyNrm/kolkjfzPlfe1Ak1wFZOeCLnCHIVbqehNNhiFRzyZmdkmB+cVx6UXSVyT7eu35NX4j5FcmK0upttStKR4KfVSShGlHEysLG6Hp2pFrSerk1VHZca0Z468tq6tzl/+n+D5X5KHLx5w4BC1fSyaE651qMw8oSCz711kIo5Y90UkMpK23oZM2v1K48aOZABJZvpS3ZoRS8vwOj+PKWJY/agteT1c94Qb4sgN1Ova9crIXa/yd9n3VN0s461naCDfafDAZXUBbWsa5tEO90kXfHoed1360nR8D/Uv15ZoZan2+RUEVPm+YLL17cmRI013VRyiPSrFH/kf6+FaS35PY0aN+Pj3rrsL7mVtBxFvyW1KVjL3kiOMoksRoaf34Eu/VwOX46Bl8PFvWlvVoTt7TiB+Rh8QCdxpegroD7Gz4OY8jRHQ6CuupQXqUl8jpppHsQL6UqiSPWeaQaZLKLFDtqaReks9LPPjyC4902N+J6UdOBejVQHw4wNBrTqXPO9jZsSIRrx36im9iSr8yKIjRwWXU0fLQmzbfBRxVumg10pcgXtNoOckFxxsR1roZqTBiZgRr/NbZHUSSDnjHHmQPrQKxD7Ws+AIJl5WUX9KC1TzOZOy5aRkG1vS1FTFsqx9V2Z2L5Me4AyXVqK2HHB7OXrw0kLylD3KOQG6dqKj/In2Elx8CIIciNiGl5I2wo3ZP4FZXXhIcfZUXY9KBtvwL20s+ELiyeDhY3uPWl2pPk8q9ZcGvj5BkAJJuNKRakFSheBjzlW4gm/S9As5MecvkR/2Ptz2cEG+/Smf88oZXCHJS2WkosmrdqBZdfJS8YUsbASb8ksaXf8AyLenmClESWOxax7CkOzqxHfgV+qY2DR9N6YtZXJTk+vLPSuoHmoKnc1tF+GWKj/2E8dfDzjNMn8+Q8688kmX8TFkeUYsetNz9l14ZY9OvLJY8Z8U2tcVQ7q5M9noytMxGHA/xSHk1yFevwOTHilU8bhqXa7TH5261gWYAi3ZNjvRq8/JG9HbwJaWzkEDjfemKvANc4cnMiEMCbX03FbS0G7WAjwyUuo9Na22nI7C/wDIDY8kbmwurdKJXTRmmilnJMNpAGF1761q0gx6JIlnhlh1U0ytkwGu4g5c6SBwDy70fRRBQskuTWxsyWWO7XvUl8kmOfVrgYeLi7E+tCuAfHgmlb2m5KRbt1pteRGvHJ2SIv5cQQaxWg8/bRTwex4pQ+lrdqy10SV0TsU8+BBXe9BElKq3/grilkcWcaUi1UvAya+ED7AU3B0PSt+yRVtIQBUING+1ZLZDazs4JZp1Ui9+J3pqoDbOCdng1sL9daZWrOyybZHPIG48fFl7VRWsFyy6pNlOJjGZSDIb0F9I+B+Oy/BSvxjg+TWFKfsI3T248FEcZi/u5W6Uq1uxE9HbkcYFnBFgCB9KV36i3aWTvgyrYcgRTluh1tVVHsdfabXpvXWco7Gz8sdNKLKSt1PW9LrQzSs8nIY3kvxB4E6CttZVOztWsjV+Ps23EdbUt+yjLezDKlxAh38DvSXtJv3Ns8MeMEhdvWtej+Q3o6rkTLj46m4Pl2rFpdnn63tZn//T+2lyeGlja3Wvsq5SeNl6zYlhHkKRbpTE3VnqqqzqSS4PAXX8etvSn12k8zXV3ZOuJN7hUm6MNKa9FAVL1ozsuJHwAIsR1rK6OQdNLXgjbHVwVQkn1p6vHkp9akcsiaOSCUEqNT/SnJqyNvbtaF4LI/8AKDzAOlxSnx4Gu6rwhLzOkqxx3XjW9U+WeZtXtddhqZcyNcuTrc3rHmmNtVL4L4PlIwQ0iC3+6pNMG/DINJb4ZdHlxyqQmt9ameLr5FLOJkT77wve516CnLNNFnp+t2f6E5LhzykvZqbmo8Ht/WqeCZ44ke41U05NtCr2bZ1soY8VlAIY/wBKX07WL/pf1c/IByUkvzWwOlMVGia1Y8C4YPI+2x4mivbjk7Bw+QZi6PodRXVhoqdJtISPz/HRqFqBr4KEiWQC6nkNzS24AV/AUuCbAqQbnagz05GbbRUIYoU3Gh+tar8Eumrs4OSO66OoYVtUn4OsklwIklmvaNeK/Wm1qvkRbOqcsWw5gF1H1o/BJa0uUdEarrxup61jYvbVoYiqJFI8R1tQt8CaOHI2RkKXA5D6UCTk5Ud3JDkO1vG9u1Pqir6klLI3w/fY2bzHQ03vAjsnYqxklhIDL96Vo00e3haYKpHL7HQaa96noi26VeX8CWwveBAsfXan/Z1Pn/Z9lNs9FjmFVJYECsd5Inu2pNKLx1FiCL6VPbktzKVIlj2NxSWurHV4RK5aMmwuOoNPXIlUl8kU6cyGWwPanVcG2SRTBE7DyW9+1LvZIZXVNwg54lKjxNDSw7S0JMzMnAiYHzN+1qproyVNv4M2bAjRrgN9aoreRl9H4OKZVFljLWrnAyqUcsU8hZ7tEUNEkLaS5kGfEV06gkVysTaX7ODHCZmFkckZuJO1MUMfh1R9Bh/Mze3aQj+anvipPR6Jrg1cTN56PqvSpdc/wMxok4RL8nj+6tk17A07G0eSX3EvB8+2HJy0ujiq+xLW6pUpgMmqSP5dKCzItdezfBZjSqNCbEdaBob61WXJMbWVuf1pTqej1lQE+Qut0PLuKxVO0pPCIX+QlR7H8b9acs0Q2wVeReTnSsPDQVyzQjX115fkPF+WmTc3XrWWxTG5Ypc/J9Bh58M0Njqtqg1ydWejjSUImK3IQlRuabQbanVckKzmKRgTde9PdZRHnm3ZhN8iw0S5BoFmXv10lLBOWpbkSb9qPoeXuptwMTN5qO4IoXnAhZDp84q9r6etBXLgftj/AEMxnSU2Fjes0TRTgupWIVWxvap+w62jbLP0ZG1uChFRLVHpW3rVHDiKgBGlqdW8nl+xu2NCwypYfkKxt1ZNVt+SFo0idtB9DVKt2Qjm1mkJnCufJQQdrUyjgK6jwTKtvwBBpk/kHJfLOMX7+RrQ7HRKEPkKx1kl1s/gcjmRbLb6Um/Hk87eyS58imhAcMAUbr2rqORXrUdrSeMR9277GmzxwewrJW4GJjpHJcnwOgNC7yjns5DnjWIXDAqehoa2bJ9W7CGK7sPHuKYkOzr1QlMbmSqEkHXWitpHkRbVV8knsy40xJB02JoO6seV37WbNPFymYGx4k60u2ZVlRQ2zSxjHkxjmeLr1qa81fAVLydmxY2aw8iD1ra6tB6Xc8jVgRRrZSNrUt6N+BdtbaOEC+SUNmPIHSiWUjll1UgrMeY4PYf7aJ045RnVV8mjE5ZAWtbqajsueB2b7eDr/rsLcQQayvZHourSIy0UT2W6j+lUw7IytHVSxxksoZCDS1XmGZ1duSWaN5r8Rr1p9LdSitK1I2wP8vIMyuOh2qhbcEum/a/A4SPDYkX9aW6qw6JRw5hY8b6dq5ZDPpVFLOfrq17Ci7wSu/LBMagWbf0Nb2Al2YEUk0Ull8kNbaqaKM6pBPI7AWHEiuVULvVHocq9105DestmIrR2tAOTJG48rX7VtE0eh9ULgkaBH2W96erQLduYEo7wt+BH3ompG0ULyXwsZRo1j2qe6gZVpATxlBc2IO5NFW0nn+5rxwDHOyqeJBAG1Y6SeZEgjIXly2olmblnHJXHJGfoRvSnVlC5f6Oq8kb7kqa5pNB1SkJ5JeJ8t+lCqoXeqYhXkJPI3HpRtJClC8HJIgwFj9jWdoJtbArgM66MRRfckU43SQifBZdn17Ua2kH2Np+B2FEQL21FBa8i/X0kpYy28bn60vgbZJge8QDccWouhjrwLi+Sljk1AYHetfrpozPGHJY2S2QgC2XrpSlmqPkdfOtfPkV7eUBcr49SaLtX8g96pSOVQkd2F1NKtaXwS66tqEMgk1sh4r2pdqx5FL+fJTyKEM55KetKVe3gLKrs5FyyEN4E8d7U6leOT1lkqcsJAH3c/Sl2tHwedpr2twDKiAA9QaxWZNo2z//U+nkkL/k2tfd1UBOiqoSOx5Asdh61tsyHRtnjPyBVZB9LVypHwBXGPKI5pJ1e/bQU+tUxN6p2DTJdnUMB2rHRI1pJoa2ISWKfa1AtfyOd0pQpvjjIv+RdRRfel4Jb+yqrgOH4ghQ0QsaXb218k9fanlnp/jn9/lx8rbV1N0/kVbXtpJw4d1JZAun9a37vwzbbduEZ+RjlYzr4jpVNLDK160/YvFzYUBKXDDftXPNvyb62F9XLKhnI4/LegtnB9H63rR8Cnka173XuTR1qZ7TSUFESLMAobU0Fn15I3dcJls3wrlBfyFrCpM/aUs9Hb2k0kjMb46aOUpzsDsDVy2TUkOm6TiDyx5mLNf8ANK5ut0Zm07F5VZwGIAtuBUqbqWu3PAn9fGWTU7U3s2ibTW3aEORoQ1l/rS7JwGlZeRmQygD2z5DpS8v2U60biSKSchv8gIHU2qitZ8GdI5Q+JY5V/wAetA26+RNrS+RU2MpJIuGA60ytxG2nyTpE6nVvDqKY7IgWiQwRECytyAHWgdpJL3lnjkcRxOmlq1UKcsZ5EftFfVTTOkltcutQ/wBjEZLEcW70PSyYq1LNEfu2lsTyF9xTuvArHL+ikGUkNc8L9aS4Z7a60U/JcY4DFyBBbe1Iq2mK9nW1qk0c4YkMpWxtpTnU+f8A/Y8ApcoBcdQaw18OGXQ4zqnMWUCkW0TcFeGnd8fALZMkUgsNDRKisiu1IGuxkHLjf1oEo4CaVVJLLBj8LspDb3p1bOSRu1lwIilnQj22uvY0dqp+RmNElLNFJZJo7FbGpnVVYerrHk8uKCOTC59K56kS2nwLkw1Yf8Y/iiWsfIHf9iW+MJW48B/FGt0Oz1X+TPyvjoo78pATuKfXVv4E77WfCRNYhCALkDemoLOv88iJoPfiIKXb0o1aCzCkozPZMUhUgr9abPB6NFL6joMoxygl2P12oHWUV2fXwaTzTyBTGdLbmlVqkR7Vq3LIZjkciJAAejCnKDzL1q7QjMzGmjdZBoRvRpA3yXDKcLLSbQni1Y0U4VgvUkHxfalldnBZG5kUcjS2oATXknycEsbpqKOt/wAke+qT5FNAFB5AgjcVqtJMrO7JpFcJyUWHpvTEXZ0Vay/JZ8VJOyFVY70jZIt9O1a1bZqH3uA5afWkKArNW5IpMeVpNTdfSmq3Bqdc/wDI+PBhaO6khh3oe7TJdPZtfglmw3Di5073ptbkumiqL/UmTyRtL/Wi7pnZWTcsLKglY3ZtaGjLfYuphBYk7q1ip00uK69RePLL0zCuhN/rU7oVfXPBpwfJkKp2HYmon68tjtqcIoOd7jcTYihrlCkkvilYnLSpLdCbU6E1yL6pMCXzUlxZu9FXh8GQkuCaVCYwUYg3tTqvnkn05SFF5VYEG9twKOEDeCqMmTUgWApL4JrXTtwKmhAW52o1YTd8ETZJifkh/HpWfX2fJ5bo9LlMHyPu/n1rXjHg9XDBV8BPK62YDkh6muhG7QkaGJGk4Ck3B6CpNdOpFf2EuC8f/XsaQEEE9takf/0Wg6+624RO3/15omZVYhDsDrTv/wCjVqTtPcjgmbElxZrjUE9az7loeRpq9Lfo9PCJjqBRVceA4UwicYgR+3an/bI96Pwgo5PabQ2ousorxpCkdNko48XJf0oVm18DNs2CnyCqB7nK3U0X0fgbhg0pKQ2POt4jy+ulKatV8nWlvkRJHZ9BxI60asJu5sMgMw0drxnqDQ6JPx5PY9GlaqfkJ5THYRtcUKrPksec+QJc4EcZPpeipl+Dr4/gRF8iIzwsSnQ0y2M8nUw6rkevyuOByB8hvS367JtcrDE+TilfjbfvQv13VEufrxcDKSUglQCl/wClblZHqWpWlZAEUDre4D9qOWjz/Y3dhkEvEcWS/qKG9Z5kkxTfyddFLXUWrkyr/UJYW43IGm16x3ArfsTZUs0R5KoI603NJjnjLM+SaZpSypoaeqqCrLCtHIxXjMfncMNxWQ0wrt2XBM+WEa8el9NaYqT5FrD5YTZbOO7fSsVIDvmoG40j8jccf9aG64FVspY9zzjFySe1B4Z521uxK0TcjY8TTExNBDt7BJkOnejSnwH1b4R5PkUUAqRY1zyKFi615NHFzlkSwIJ9TSL5QxCrI8SLciQD60t1/ANvMInbNiilsrXubUX1Nomvk0+QpMstqvl/pQrIV9PI2HInOpAA71jpUbnWsg5MiEjXUViqxHsy2jmK68tGsa61TsVBTIpJ8WN6FMrsoBMUUijlq3WtVmjKtslkxWWTwBKnpTftUcgbaqrllsXtQsGZbGpLu1+ERX1vpbguOXE8d10BFIWLT5KHlFZYj2GeM8TyFMV0vIFIVeSW2TG9jZVOh70ya2EcNlcALeDX496G/HKPVwaoipMbFMZ435bXNTW2vPJPv7N7oUYCjbggnc0a0lEyfUVkxTRoWDaXvpTcnVss9f1+/P7P/9XfkhkkBJsPWvvq2SK9L1qiREyopQAbqetUt1aPJ717clQkAbyXi3eldeDrS3COe+JAUFmYHSt6xyBXL8kzGaOTkwAApihoTaHbgpj+TCaFxfsKVbCfg62TsE3yzOLcT6tQP10iP2clSvJXg/IFACW8T3qS+HYg9bN3c/A+fKvdxseorqY/BcvXl8GecgyclDE61Ys1UfXFZ158gvGStjsdxWqwP+3BmP8AGebEseLbDaqVrwen6bVE4RyPEGMQzDkv81zt2L/vaXBTI8DRjiPqKBJpkt62ZN+6cd+RsFBpn19kTLF3tCNTE/8AsZyY/bQ+QqDT00rT8HsV9NVp/XkVk/JhvyX/ACKd6fnjHjweft63yejylyEtfi1banVjM81WvI7Gaax4rcjvS9EjM2mdmBkI5gA11OPAVoryGuIxYXNloXpwDXWbyOeKKJgSxIpNLNop30tayg5IMZ7qxuDW0dgNm6ioYoYZDZjbpTb2dkednezsNndBqfx7ihomZun5Ip5IkOgLCn1q2R3owDxl1U8W2FEuAsM5YifAkaT8vLpR01UHrOyTgUPj5nXiXUGi+1IVf2K+AFgMT8JvMd6LtK4EW1bcI80MPIlP4rlZ/IzNOW2W40Jni4X4sOhpF7dXJStVHI9MRo0PO2nW9A9E3wTa+zKaRJIJ4pl424nXvTFDR5dkqPnyxxYudF4v32oIgxV7WgKD3wSGYnsK66R7nq1rVQgp1msDqLdKykG7tDIJpOJQGx6ChvReSdJW4YDvMx4SA/Wiql5Q21a1UApi6+TadRWvQmWvMIJseSIlkc8TWK6fkDfUOHLZAQbt6mhtlJPSjiPydk+UnQC2q0K9arHL1ED+97sZPLfpRfV1ZXj66VTOzIWdeQINqqpaBOsJEyLII73HIdKZKE5/0jsbOTcniRWWR6OFUhWRDMxJ4hvWtrZF1a1qpJJomtcxgEb0yrFaWn5PRzvH3t2Na6yJsF7jzA8V+9dEE1ar5EyYyyrxkOvpW9hdtOeCD/rjFkAA29aPsFXfrY1cdAkg5+VKszNfYbtwaUXEOoAujdqTYLv18hTwlR4mwoVYh2tJ6OFnuWNwewrnaDsbpco5L8bGVIUH61q1K/scQyfHgkhO2npR2smM9a3ZwUtKTuC1JSPWdeqDEgChuIU9rVvU8ze7Y2KRHYggUNk0LzUMTle0tzbbpR0lidaWsyUzIVIF79ulMgtyxaqKypCTqLW61uZVtnBNDNMsoXoaZZKBWVErL9lLSNz1Sx70heD1OiTGwSF2KcbkaihsoUgtqeStP2UkBIFqCE0SaaVdixZpBc9R0pXVEt+WHKzui+JBoa8NjrVSqkStBJy8ibDpT1ZQTWup4+BTK0ZJtYHtrRpyRa3ls7A8j39vc0Nkl5Epqi58lnsSFDy+9I7on01T8GfJiBXN9b0+lxePAi0WO/K3IU3lormxb7+PJAp5XvsDSLVsmT7tqh3FzfZe67A1NbLv5PJzo9LGzhfLTSseO/ekaepVeT1csap8hzfKTG6nRh1oK+pVci9vXXlkks4lXU3cU6ufUn+qETwu4Y9xRWU8E65cIa04lsNraXrVn15LK5qnLHR4MTOAxNjvQvd/A2mzdkKycKGGa6jkvYUdNbWQelr2ueKxsLaBTuKOWi1/widBHjubOT6Cjl2J8Va9heRnkG5OnpR0yRYvWhydXMvYLci21qC1D2MMIQ/j7gDL/ApS4G2adv0LyPj2ezc9egrc9YC11XwhQxHbxa1+l6d3SJnsgDFGrcZBZuho038Eumj+DylUk0axGtc+UBVNcs3MOSHJg4N+XrXm61dLSvBumrdYAfGjXlcLpsTRrRs8u+jcwAkpjdQOHE9t6J0lfIeVIabHvFDJqgKv60tWa8jdG7OCbkQxU7jpTX4LPXy+CfJaUgkMAO1HnBe80lJKAWU8dSKofBPX+mIdZGNiDY72rUypdaKTyfHqTZnt6daJ6EdvZm0JHJcVodVYgdDvXVumJ324DjnaP+3l/wC1qx1kRWso8+YRqRpXLMW8pAM5kGgIvtRdYCzyQmTDndCWHj3NErpFH2VrURJ8aFjBDXo1oKezsv0Lx4smFuX9ta7Jic9FZlaSzOdjv1pbSQ5utVL8jJccSx3AAYa3oO8EW2vEnoJJY047sKFpMkXKll+HMZFIK+VJtWBmCUAZKJIvl4sNrUVXBll+COGYwZKgnw60y1ZQCUXRrrm43OxNgetS2ysM1VuxQj46yDi11I3pTVoBbdWcyWX+x9KXVN+URbJtywE43u7XB60xfoPFc8BuIOHhfvWrt8ll04OQSMPxH3obpPyR9pCnSZnVlVmO+2lCrVS54N0daluM/FD78ixEC9jvUmlpf8J2FLZ2lVQ2L5H4xX4Mxk722pT9Xd8r+QsstG/wdlzvi+YXga2vr7pS2W4+hrpokZuXmI5ZIhpfS9XY1fDZ9Zn6CypDP//W+onikiY2S6HvX3Wd1ZfsLeyRBNmCKYAra25NV1zlEDwbujpk/aBEf5UMdPJdnkquWQXkgybHcVTxapLtabwME/NiDr6UPWBbqk4PHHjkIKgqe9d2aNtfqiTOknxImkjLNY2I3obJXR4vuf8A6pl/x/ySZEAMicTa1A8evgq9PFKvBQUmZboSV7XoZSfJ6uarSssQUkRwy3DdaOUzzNtO1p+CrHnmSUB7FW3pN6prgRe6VoRptjY7MDyFmG1SrSyPTo3KS8QTT4SR+WnE96dTaRru7eCOWHGC3NhfqKfW1htVZqEY+Vhwyuy8/Wxp9dGetln9NeVySxp+uw48lIO9P8ibaN8s0jJDPGDytJ2NISdWT7NtSNx1hNrtwcdRWXbJq6NsdE8iSaEsu1BZJo2rVOWaQjjaMtfyHSpOzTEu70cIUmRIG4ut1orUTXBRlRU5+SxFimTj+NTturHO/WsvyEYYUXif5rldkXe+ljNmdY5Db8arr/SGfX0mQpCpiBB0rq+RWimoh1dkOoK+tMTUk6SZFGsyPxAJBO9OcNDc0lCK2LMRvyApSKdOWLDv+Tp96KF8EUrygZQXUcBtqa2vAVqqql+RkeHK6+K3NBbVIF71/JTjwGNryC3oN6Xe8rgn/wCnng0EWIbrdT3qS1n+SfXZr/yeyIsSSOwsHUaWoaO6Ynpe3khBTnxI8hsarScSXeri5OcgstiprYlHp3fQuVEkh0W5FTuzTJezvwZ2UvF0cIQRuapzcyi106VTGcmkTkhu3UVkQ+RF/wCmSHLaCS8qHjTvr7LgTaseCxMvHePxP2pDysmTLO1hMk8T6gcTajrVovw9drliGgLowLaHtTO0Mro0kyVcVoj4OSO1Md58jFfiBMrSqul6YkiLZJoGFJHN1sG63rbNIHCG4BCTiQh2sK6VBcrVqXxxuIwQxYUhtSB9nbkVkQruBv3o6WBv4knGMrbaEUztBP8AZLJGgmikJXVfWj7JirXSkZwW99AaySe1m2DO8asrMtwNzWJMDROZCvDJYobDsa7leRjbouz8l8BVFABA1pNuRPd25ZUJEYENqKU0xV25CSIFboSB2FZ2/IzJ9ayyhUaMXdfA9TQOyfgbm+9uCYoGlIUeLUyeD1MaLPyNEMC3F/K1ArMH2NrWcAtEssZFrsOtF2hiKf6kjLNC3IDSnJph0U8nWjfI0te+tYn1G3daDIfiyw8ksfWhtuhNfbkdk/CTFiFXxI0JFKz9qsFOvsVdjKm+PeGQczxK9bVZXVWXANLttQVx8MiPituQ3J61Paas9SrhdrARRmGYhlF+9MblHmPV2uy1HhZwrkX30pLTSF63atCHFYtxf1NBLObaUspZOMfJDcjpSU+YYWlnZA/45F8xY0XK8E3+CPIxCL8Wup6U+mgq1oM+SSSBgY9CKcqq3kjWbu5Z2L5eZZuMlyp61lvXXwFbFdoRT78TsTfQ9DQdGhmeU2/RNKkAZiWuLbUxNmbWcuPAonGiVOR8SDe1Dbs/B5+trNJIHHCMGs9gTcVtVBvq1hMfDkTQyBlYkdQK10VkWZ15k0JMxJ4wdUe3ap1l1YzXPiTkFpBroR12oLuPB5VtJcInkjnWQsCSCftTadUhuVa5qX5HLxtc6MKW22xVm9LQh0HyLh7MPG+l6y2CgryyVWUzuJUupPr0oKLq+T0s8Ul2fkhkeKPVnKfSqEmwetruYJDKjOVXyB6mmpcFtMvr8nnxYinJXIPXWtV3Jru4mC3FhBjvv61NraGU4adgR70L+P4mt4sN4Q55dLdaVVDXnJFNPMnkVJXuKprVPgR9a8iXmeW3E6b60ytYE6UqnLPHFnZOQtfuK1XQm+tYCxsuWBhzBuDasvmrEkz4NA57tqB4nuKmWKRt8lXkbZpYgYyFYdQKHhPk5JRyAk+T18mHWttWo/18k2KllZ5Rpxfqayqip6/1KrQfsSPG1zc1iskwb6JykZ/CaOTQ8bHaq5TRNWK8sr4l4iQSGv0pMwxd7dk/8kTtPFLZ1IHQ09Q0JtFSoSNJFxvYAb0uIZO0rE5XT870yQ1wpgEY24Lcr1vcQ9Z4PIJYTqQRXOGDVyO5OF0OhoIQV4gJOPt+Wt6F+eBCbsoRDJE6Skpex709PgbCoHykKAkG9DwL4sImzJEPG1j3ovrTFbZcFEE6ZENybONL0pqGSLlQjqPJFJ4m4PWi6porzqqjnLE3BuRrQoJrmCGXIkEn+Rbi9MVF8CLZpOSkSl7FQFtQ9Y8jIS5Y9ZpE+npS3VMXblywhni7KV09d6W8Se9OWNSQPH4Ma5VjyW+vkq07MNWlh1cXBpd2n4JPY2nwOxvkkib/AIuQPepb+u7/ADB5tKNuZ4NJs8TxEKwQ22FT19SHzyU19buQkiX/AJQL7Xq6q6eC3KqzXHkQSmPJoLqTemJO6NpS1rSWCMTzIwUW3NIs4q0fRZOuVkyvJ+ICoJAunW1Rev7XPUp29r7OUf/X+nm+VjkHj5dbV9zlg0VbepLIMplyV1sh/rVVP5Npilz5Ml45seTnHMbA6Cq01ZQ0De3zAybIjnAaQ2fuOtdWvXhEtq/+yEpJHe6HyX+tE0S1Ts+Rn/YyWs2470P1IXrmoPPNPLC6C1m6ms6JMitnVpoh+OymxcowZDjj6UdqSuBmX8PqkfSrO6w8o7cTUbqm+Sy6XTkUcx1QMwuve1b9SZ5fSVIA+V4yj/H4nTkRXf8AP+zc/W/qWy85Se3zDW9aT05g96mTVAlljnhKli1+tBZOtijKkUI3wnLcQSRvemX2SrJX6lU7JMzsrGmSQsoJY/6VRjZdQ/Yt2uSztIzG/wCY9O1UUXBH7EN9ULbKkKi48hRKoF6JVQcUxfW9mrLIHKqSkohz8iFyGtw+tBbNMg9iLWhGlj/JHkOK3qa+MoqzxVEWO6y7sB6CkVTQ11gOGVAttyOtdarkl0s2iniZACn9TU7cOGU0ilZZyXEjdbMLN1tRV0a8E17u9uDPmxZYwQj2U9N6qpomFdrrBHGZAGVnLHtT3ArFKPAmR5UkBUkAdDRJJo61UnLKUz3XW3oaW8kasuzJ5M5mvrZfWmVzCeFc6yNimVo9XuRvQ2r+jz9byinHyXjYHl49hU96JkFrcmgMiDfflU/12Cpm2xE8jkjg2nam0ovkqp66dkiNsh+XaqFRFf1pMdCGlHINYigu4Cxa8h5EfOK5JD9LUNHDGauVJPizToWVCVI011otqprkf6GScuwyTNd0KynUUNMknwN9ii6io5p1uYluDTLVT8kuOafkVPM0hIffsKOlY8Ab1UwiWOOQkhDwHrTW0MxSouRzRTJHf879RS+ybK6RZCFzsmE6p/jOlzRPNMOmK8hHOdtV0rlmDfNJHGyVZTzBJ9KJUIL0b8E3uvHIGXRTuDvRxKG55qiksLiSMOq3brS4hi9X2H4czvyjIsenal6VS5NyjlFBAaMiRde9LXD4B1vxCJzGnLxGtNkTmmvJDlicFhawOxptINtmpM4yzK3FvsadCFuqQbMx0axHasBukFGY3j42sQelBZtEW2jg0IWCoAFBI70mwFrtVgvheCUgOvEmp7SvAtWaYc8b4wJje6Gto+/lFXRtALkF0tI5YdqJ0h8HtetiqU8cnQ+PoVbiexroYNuzabDZS5BuTbtWJwDeyqejSVCRc2+lc2mTqyHpHG+jG5G4pbs0b3+Bc3HHkDDQd6JTZEmrtex1M9A43N9jWPHg36mjRX5Nw4GpX1qR+smh7wmwc8MGbHcqAaWr2ycHpernzJ87l4q4cvLnxB1r1MdO6G+xazcJC3yMeYeTm/S1MVWga5uqmAEEDm8bEOvrROV5JK9rW5KEyn4hWOo60t0QWqng0IJQyEb3qe9YZztxAD2DEEm3YUS8AOscCZZSAAu1HWonWn5J5FZkLEfemJwI4VZIMnlG3JVFqbXkDp8hxMhAYG1c0V0cIMY6TIwLEk9RQu8EltPKI5PjZ7hdSNaL7kTX2qoAxsPJiBsG0PWuWiYOOqaLYzLsw8qxwUpp8IbLkSpGCVt60DqjfaiuYWJNz1vyOw1pPWDysVHJeMh1uGQcelJdFZ+TXXvYjmyGVxZL369KppmoPQz9dZqWdWOaVrBwOotWtpD83WrlluNAgiKsTyGhN6Te7mSrPW11BNlxAG6rypmdpK7rpUYuIk6g8fbNqx6dSX7u1vyInw3iU+QK0dNEyl2/kDEl9okciyncCs2UlnpUYcuSQ1hcgm9BSvBRplyMTMjtZlIPpQvNm2q4DDRyoRf+a2GmSavpRnTgxuos2vpW/a0eXfZsX7EkL/keJouyaF20R39YM2pJJ7iu7gK8MMYzAhRfTpQ90a9OzSPe3kI9wCo+td2q0Vp1TKMaMu/kde1K1cIbhokyuXETje2o7VNTT4KdNX5QEaR8SFuD2o7tg4y/IiWNWButmBp1HBLtYBQ6gjpfaicM6ngCe0nixF7WFFTgTsuYJfbYXIvx/pTZNo1WsnpcVvZ5bj0rlfky1/4knjleJbEaUbrJHSvZSG0+l9B2rFUqWfAAykRPMkiidJF9G1wciyeLgp5Ka50BdOvBY0gkW4Q3A6ik9Y+RN69nCJVylLmPY9L03p8jKY88icqTlYOPuBXJfgn9rjwSQyIrlUuDfrTFV/IHrZOeRxnyL26dK3qi+uVWxYycnmAToa3qhlq1qcme7+TXG9ZBFv8A7DseeJoymtx1oHVi6JtchmVgviBca71jRuihQOjyFlazAAjQ0t1gnj+iteUcZ9o6HrQPnyUWc1h+BUmQTGVkYsetugoXT8EGyldUK/ZxzoGsRsDpRfXY6uVvBTE6lx5W+lE1CPZwp1hEs+bJjuwDk66Xplc1ZGv1nZvgOL5yJyqzOPUaUL9ePBRT1eVCKW+bgx3DKxK2pX/P2XJXb1b3tJVB/wDdsUD2W8gdj9a83X/5/a81PXy/+W6Zvsf/0L8AXbiD4kAE1+j6qEWPeb8lhgETk2DqeppKtKMtdyLnxsaS/Qna1Mpdol3u5hEMmNIAVCjiNiaeroXZpLnySHHaN+aPb0tTe0k/eOYGM8djdeT26UMMmv2u/wBCFlmduBXgOl6KEglStOPLEZOK7yaWDgaNRVYHDuOwvlJIV/XnbUaBjQ3yT5RRoprBZ+4GXisgOu1L+sTbHrXlHHZrix5HtWpDcspaKUWVotRxH11pFmpPeo6qsAQztFdeRsDW6VT5Cyo24BbPlMmjEWpCr2PT+lZV/YUuZMQGNNrRLgjeSmSN4nnPINr2vVKcIitaqtIiXEnFiG+oo62QjXVHooWRvK1a2J+2XCOOtpAX/EnpXLwTWtFuCwLZx7JJFtqVPHJe/PJWmQYtZF0/rSnSfAb/AKfAS5cYbkCSp6V3RwSaJ1lm3hZOO0Fx4moNc7KwlXtarKg8bro2tqmsmmP9bPiWSTJ49ftVNLcmaeCIwKX8bq29U9uOSd2g9JihtHPkNjXLSPAq+kuEJ/WubDT/AM0XcszfRci8j4xXiNgb0VdoYGm0oyjDLjswKkLVHZWPM00mRkedIkgUA8T1NA80xH1LtyW/s8kuDYjrQ9IZ6+GH8yLXMlWQA6jqa10UFWeK7ITkZLByQt6KleBftVVS746YuNRqelJ1qR5XS4RoujMtrcQOtTVcFWtlWoUWAxHIXPrQabIf6eiJsrHmj/t/pT8rpi/aumcxmYEBxYfSt0X4FZOPAvMgHuB4/vaiytxDM24cgpjB0vuw3oneGKWk8Ib7L+3bke1hsKS7cnr5wqEz4Z42a7fbSmq/Jz0SqLXGKaFQR0pnaSDTbs4kFoGb8RbuK3sA7KqDGErIQD5Cs+yGA9e3Ar2JIgSx8exouyZ1b8SNx/y5IdRQ3/YOduS2GQSsFbUnrSbKDk/6FTwtG5vRUtKGqssmkms4V1uppirxwZpWGQ5eMCbxaje1Nrb8ku3HkAYzGxdbA6VruhNt0uQY4Y4Zu6k7VPa7szyNNbXuXT+0y8l8LVtU0XOrSkUk0SnWS9ulEqt/Az18rXt4Dk+QvEAASBvW1z5PefrqtFPkqx54nj8VKvtrS7VaZjbdRrRCTQnUdqFWg5uOEL92SFtCQKLqmR6vsyiPMd/xUsOt6W80juiryxqlPcHIcCd6FpwLn+jskDHS4KnqaxXRl7JE0+KiWLMQB1FMro2L10cKCyFouXg/LTW9JunHJXmrO3I+HIELnTkpqbevap6/p5N2gmzziZPIMpLW0ttTPWdqoo9jJpwjCyYmT8EsBXpUtIi9YXLIBLLG/KzD7VQ0mTVrDGt8kRc8C1B0C/55GYny8rOqWKgmhtigfrrTybcQ943ualf8k2uy7BSKqAcvvWJt+CHa7cCmmhMZUH110FEquTli1XkVKglQag37UacHWaSFxYSKTcXrXqxH3t8fB6HmkpVR1oLNfJI7w+R8nMNc3B6Cp254RBtbtaEEZPFTsKOtIK881WqGw43v/jvXPTr5KMbJMT8h8dKsY0JPUVtdkzPc27RVGO0jY7/j9qprXsLzydnC8DYfkWE45nwNbbJRwU/Wq24NY8JRaMAipvHkPVzbkWf8L8mXig6CiX9G5J2tKCjy8VTe54npautSzPY9bG1eR8uZB7F4wBal1zc8gbZWvWWTQZLyA8SSfSmXokd6WKXLCdTLFZ73BrE4fBbx1FQYcgkIQsL9xpW3uo5Dpqq8P5LJMQH/AJE8h1FIrePAV9XZwiaVCrAABabRyFs+q5GKt0J6da35PK214bOxTRxnVSfWutVsjorPkYc1PxK+J6mg+oTvWEURSxvGALAjY0p1aYqlXB5cl0lHiCOprXmmhtM/6GTTQtqBr67UNKtF1s2hYYA3B17LRMPOvwP9+SSPYrbqam6JWPSVEqz8iVkKE8Dc02ynyBnTzJJl5EyPytdT0FUY1TQrfJTwDHnjQMtvrRWyBzxkTkZHlzXoOlHSnAvbOHJ1MtXh4sQD1rnSGIplKgU00ntsEc/TpRqqnkZbNdYJOUpFnIt6U2EJSqlCHRxkqQLaigbN7TwTywSW4kmjVkP4rUQsUiG6PxPaidkzzb6dmUJJkghnkPHYg0Lqvgpy615SGGMMeUe9DMeRN7cnHkMgClTyFDEEWvLJpQY5CdzTa8leOU2Frm8ZeMg8ToL0bpwWfX1Y12Pugot1NAS7NK0s9LACbna2woexJrpzIUEcMN2e5TsKHs34F4WtZuApvYkTlH40SleSm6dayxMUkaXZnuRuK5JslxrazmB4+VCxgW0GprHkV6Y9c5ZZjzjIh5Iurfap1WHyebhnPLEP8es8mtg3T7U5aQX42XZJEkiZGM+jEAH+lOlWR7OGfZzHJB8h8meBCoZG9KGtocHu5f8Azv57W4McZOYzeGMVPUmnNnUwpPNiyLD+VyAPdbhGdSB2pDTZY/YxyXHk0E+MhjQXc8hauzUHn+579rLg/9FcTZGHOCSeA76V+o2Ssjav+pN3EzsaY8JGGvrUGmVlyh120xksUXugI4I3rq2cciLyrciJw0L3J5KdbUynKJNn2twLEmGzWYaW1+9E1ZElu3YQ+PEGPtnc9DRqz+QqpryR5UTo92Og2NNq5C6zbgkaST3RxJpkId9aVuQMmESMCV5OK6YA9vTr4Lo8ZHiXwCm2wpXcStXeA4mx1usjcSK60/BdkreEaOM2LItg1iKl1lcnqY9uERZCyDIAW4W99aylu6PXrmsuX/sUtFFLDcJaTvQ0mtoEa6OymR2PgiWIh1uR61t7w5IX7XEIiyMDJgk5QqeJ3qimqsuSV2S5sAA395IPW9GR3v2twIeQxubDmD3o0pOdIBdlkGmh3tWpQbTP5YcUrBbk2IoWh2f98lePOjji53pVqjnbqhjQxhTxNzfSs7M8zS7twdgbJRWAPjQ3hlvqUrBRiZGUPFQAe1K1pV8llVVKGV/sTGwk09RSlRfBNt1+BMszqbhiRem1qmefrXk42Q5IO4NaqILoq/0VpEJEDA2NIdoYu2vYJQqsVka4rG2/Ai1m3CIM2CN1Nu+9PpZol1/hSyVfj4ZVJDWZaOurkD1rOzl/AS4QWM8bsQaJ6cnv+vZuoiTHnbWxQDrRqyK+1aV7M42J/jJMnLvWq542+70fgkhyhBOArlQP4pjpKNzzdXyfQY+YzoCZAQR0qG2SXwHb+34Kcb5Bo24m/E9TSNcFYsxy6orkysWRbFrtvSK5WqSexS1nCJ2AbWwYU9cG1SopCbFEkfgeJ7Vi0h8i3ft5MuSGaGbXXXUVWrKyH40/oYJpwLBaX1R6d6pKBySO6kMQp2AoXVIiu05SJJpJ4mF7Mv0p9UmTuiQEsp5BluL9DRVqZbObE/7jLyJBBO1H9ZyzhNlEbrPjkMNe/WltdWblX+TPeOWGW63tT000Myoplihm5UcoIYix2ovrTR31VdjSj+RMtxKLn/dU7xjwUWol4PTIWIIItW1cEW9khZEgUnrWNpnlbadjhnUBVcD61jo34JrVbhIhuj5IAbc7CtSgTWsXHzRSoG8bg02rTPWrTs4M8iRmNlsacex62SopYwzLGoEh/jesgZdW0cLwcTODGylq50G1y6+SiPOnja4/H1oXmmJ0qvJV+0syKW8T3pfSCS1YUjFZ1Y2lHHfShcP4FpdreBU+RIT4XZr70VaostiqqWcXPlU2mBAFa818E2iXwVmfHmguG270pVaYCzbUijkmKW4/GtdZR6OGD7SUQZ0Mhs2t9Kh3o/g931cXRSUJBE8h9t7DtW1bVVKIfY2au5GSYihQW1+lHXQ8y+rs+DPlxoXJ7DvVKu0ZlVyQyYCEnjoaatCl6QuSN8dopBy/pTe0nlextzwaXx/yJhlC62PQ1Prl2RHy7my+RjTkBh5elSKlqlNs3KJ8jGjY7U2l2M1t1EDFRAeJ2/trXo2eZts7cDoFgc8XPFqXa1l4Eq7mBGQphnJS7A9aF2lckPs25HtIskN2A5ihpSAscuJPRXeMrwuO9G+Pkpq0kehEmPOCpLDsNqxtWXINHNi6SRpU8jrSq0SY5Zqz4MXOhYOx43q/NqCpZqpmPFKZALC25p0oBuqfJfgMYlLte99gam0t28Edt3aYNqGfGmT2mTVuvWprUtXmT2vT9d1ry/8AYUfjY2DqGHLotH9zUMt+5w6gf9bOImXiLbCi+6sm01VlBBFBkxOy2sb6VRayaGYNLgfHNNG9pLAfTWgdU0do1MIrjz2SQX1X10pNsZRM6TcvaRZgCtte1RpOrg9BVVVLF53xyPGJFNnFF6+0OGL9jR25MhvciYrI3jfpXoqH4POty4QtmEq2Q29aLwMslSvPk40XKOzSWK1nb9Hna6T8DMaZYhqSwHpQ2rIXrUtdhSZjkhkFh1rlmeh9CryyuF45k8jr2pNk6sJ2b4QBlWKSygkelb17IfWjXLNLEdZEsQbVFuuvIeFu1oJp1EUminixpmduyKdP5X+Ts0cbLofoKOjaI9psRtio1+a6DrT+/wCA636VFy/GkKfbuVPrR12/JLprPkkGO0T2K607tKOV/gYySX2sLbUKaCu0iZlKnUa0yZI3y4OxSj3Re4I6VzXAdVDLXHJLgX0pKM2tJmzc1BKg3vT0SdIqOiT3orSD+KFuHwU0slWEJaCaMgqCVNErJi003ySyTzxy6taiVUxVcla4wzO5JFmP0rYg9LokDPjPIoJUA2vpXKyQr2NapcBRe6sd76r0pbaZ5NtO/I2TKX2Ry1PWh6SD9TuuBWPMrhlL3B/tpnWCzGvSsByq0aHxuorvJlv64ICFY2RCpJpi4H0p9deWNZo442EpsLb0u8vwRe3ra6aRb8TLjSRAK+o0/mkNNIm9ZuteTRVxC4bQja9BHYt9PJ2tI9seHOsPxJ3NT6aWzTPq/Soq2TZNJ8DHBJcWKsSTTMdpr+zfc961r9V4IMn4xQxZRY9BarKaySW16oFeCjiwsV0rTG3BR+vBkwkC4YC+lLdnVhUtxLP/0tCbEiyk8yS29fpCu6jE48Eg+PCurA2ANO+zgFb/ANT+C1QVA3160kDS7vY5LJd7FtPpeuquAN1DglKAzWBuG702eCLxY7JDKvS1utcrIbwxJYAEEczRwH1n9CrGRx48T2FbME+t1VjZYwguwtYb0l2nweXvo9LcBxS47Q3V/JdLUUNHp+njbrMeBc74gAdjyY9FrpaPa9X173crhE8UWTLKHQmJegB1oLuVyezl0zf5Zp/5OFpAWYf3UmlUvAn2Ne3JXjJIYwCwAGprLRJ5+u6VYKseOWJrk8lO5oNGmjzctJclEyB4/FiCKVRwxtl2MHMilSQkAnXrXoZ2TRyzSJJ0ypENl37UxNIdSlXyZkqZSXseLDYGnJpjLJNQcxs91kCzKD61zpJjSrwjVx3x3bQmk2lHm+xs5g0DFxHIAEEWpPaQc/65OIZwGCj1FDaD1cM0quQo5ZjIC6qO7XrnVQDa1Uy+NL68r3OlIbgh12lnZIiTxIuprq2F2aTEyRRxroCD6Uas2K1tayPQZjwSDkvieprr5KyEJFwnglF2XXvU3SyOh1X7FyyYssXEGzr2rVSyZFpS1vJnOQmq3v10quqLvXx61kfj5Mqp+BtQXomy+qVaeTRjbHnhCuByHSpbK1XwS2s7KEZeVhRiTxUgHcCq89HHIylenLM/I+Ph/Oxue9UV0Yp6WtbgkiyDizAE/wCM9taY69kWUo04NdJoshBxJ/0qR1dWXtdUdjJRtdB61rUkVr8yVxzwqwCvcnpSbUbI9nZuClpWBDKtj6UrqUZZSLmVpCG4kt0NbV9UWVqnZE8sM/5WN77Uylkb7GlfgDiyv5X17UyZRN254OyNYGw2rEhbq7sjmnIB0N9qdWo9ZQpEMXeKxsO3emLhiml1AxZpYXs2qmtvVNGYJSPeQkb+tAkOvVQKkgaTyGp+lErQLdkuQoYWWxK3FZawp7Sx0pYJ46N0oCX2rfydil9xLPodqDr+Dz8q9vBDlw2kBubdDan1ZRddeDNnRo5eYNyp6UVeWIzp30hDB8rKUsX4/WmfWj6TH1FWswd/cxTYu126kV3VjVlZtQKllicH21uTsTQyejl6/VckDNmI5KqpUdqchN1VNhrly8RyQ3713Uk1Sa8lcOW1vI6HpQupHeGXYziTpf70uyG48FRKFFAbiw6ClpCvZu4QyTGWaPVtQKFXhg58mRkGTEXU2F6emmejl67dT37oyfBSb96ntx4Pdw9ZV8j8PHcSBmfTrXdeCX2vfVXCN7HlhhkDDW4trSbUbUHz2mt9NJKmyVZgFNqnVeC2uHVpEfHnKwJ3NUTwC2qNnnxwvoaJXIttWyLKRedgbnem1Z5+lXaxnzJP7oPUU5NBxWrNLFc8Q5FmGl6RcK23blGsJRJEtgL96jtWGTexeUFHFDI3kpLHfjSbaNHl22Y5MGFZC4sD60h+xa3BP9trW4E5/GQEAE6a22pmVH5YbxlyySGIspVVINV2ul5ZVWyVeWHHBlwk8zdD0FAr0t4AxasyeYTf7yo6WqiqX4LFRL4Bx8+eGQq45KTud62+KaH0oqmmpXJBCgAEbdamf8HOJMjMxBHystnvsaoreSHVtkEEyJlIkllUm5pvVxwFhSLpG3FhKzLJjvztrvSLaxxY9jX2IheC+aBVT3h4yAag1NS/MfA9N6KUTL8geN1a56g022XJVj63HIiSYPIGNrnqKZSvB2q6uEdb9dtSfLoa5ShEWs4RI87cymlqaq8SU1xVfJTBlwqoAuGv0pNs3I26tZJfBoR/I/4z7guvepbYf1wYsprwSyS4cpNwDe9VVrZHnulqiwmG6WRuLL0rW7LyQ3td+SWZ1TS179abVSBXJvlioJiAbg29aO1S/wBanWpSIklQjlS+0Mc38EyrJFkC7Er2FMcWqMo1VyaIiQi4vrU0wZpo7M5iZLQZPG/iazfNWoO9ekXg05MiKZbdagxo6lHtU5EHiUsbLbqap8MlonAiQ44JF+R/pTayDt28CjkcdAKPoIWU+QTJzbkq2I6mtSgB1mwqR3II3NGkhiomQZAcNdtPpT6wZ0XwTGcI973bpej6iL1bZRH8vIE4lBYaA0t4o36Eq+R6ze9HuB9KF1gjaUHIWmhud1PesaTOxr2YE2TJxFjbWjrRFTwSqiV4pJrG2t9zTE0gq9anYsPKVzYfSselRF/Zq7QOm5hduLiltom9q/8AIeKscsZVxY96XLXgk9bngmmweEtiCynqdqetOD0LX6cALhNG3JQov2rvskRXXs4Oyfsfidu5olBc1WleTv8AhsPcADjrehcvwRXta74JsxMKQEhrE6Ua7IO1bJTBn/HZnszPABodulZWn5J/Wz/ppm5GC6KVuCfvWPg+jxSVUWY/yD4Lq8zApU2uSuoLsqu3KNZfk8bKTmlrd7VH9NqcCng+zZDmyxlQQ1mWqsUxe2TVZFnGTLhvaz9x3o+/Vi1olWSePHzMUaX496Y7VsLroup//9PWeIpqLg1+jK0h08STGQAkDyamwKrRt/oDlOJBzJ4HYV0KBlrVp4KTGXBKAaUEx5JL2ltsjyJJYiHG4OtNqkyZ59nI4TCdfIHXtQ9YLq1S8CDjASaEhTtR9uBN9YYiZDCbq3K1dPY8vRu9ieTKm5eQuh3pioijPCqZ6PCjkBAkIvrvbWutaD28bdFEFGL8cqAKDdu9JvaXJavZdaQX40UcT+R8u1BflEi1ta0IuPGaPx0FTLhjtGq15EXSAaG57U//AGPLv204+DyZ7ciH0HSseRTXFUUIeuYoGht60q2Y+mLgCZxkKQLtpvRUXUy9FUg4zQN14d6plWENrwHPiCfyXUUNbwHe6pyQy/EROTpxYdactSF+w3YzpI8jFk8SSt6ammTt9rcl+N8geAU/1pVsz08sv5NbDlimv0aptKtDHpHA4SRI9mTlfSh6tryebrazfkYMzDDDiCGHSg+uwLyv8lqSLMAUI9RSHXr5A1slyw3hCoLnQ0CvLJ7XlCXw42Oh5LvrTFq0Ld3MIFcaNwVW4t0ono15GPXpXnyCMJQx4Ehqxat+ROVnZyzxjt4uNaLtPgptaeF4Ot4aEXU7WrlyOa+Cc5Aja4NqZ0lDsMGdl+SjKAnQ1lcWmNv67sRe+kpYMCy9LU/rB2OKqRTwRc7qo+96dWzgLRurkpgmiSK9rHvS7VbZydnSSyLKhlUApcUm1GhNKORE6RJKGUlR6a0yrbQvSexo4ko4GzkgjrUutSvD+p4DTLeF7EckOxoLZqyHUz5CnnR4+Q1rM6tOAdMv5I2y1AI6iqfrE/UwDPG4N219K7q0PWfVHj7TR2NgR1rVKYnRvqTvCnEhfy70xWFJNqCb2pQ3lb0NNlB1aXgcYS0dwRcdaBWhhaacHI5SEI3I61zrySvwzqZRsvb1rnQXWkJMbKTIviL0rwR+zb4J0lWBx7o070zrK4Mwo54OZmRyW8bAof5oqU/JXf10lLMhop/duuqt0qhQM9alauWO/TxmViwHPtQ9mj1K62vwvBK2OVPjCLd6KZKu3Sst8mjjYcMkdmAUgUmzaYL9ptcCsrDEbaDS29HS8k212vJM2PPwsgDA9aZ2RNSLeSDJxcpHvqB6Uash216VUIr+LzihCSKbigvWSTO0mrNmwcQQADSVRjH69rsn/wC2AJVNW/pWXUHr+n/8+fPgVNDk5i/5BodiKXn5PU20zyrCDiwDCbi9/wDcRTJTIr+02pKEMguQQx7mi4PFvbvb9DYpMkyAORxPYUNkoG1dKM2IMVpNUaxFQ6XhFNdl2lipI5IpNSSRTatNHnbX7WbKopfcGoHrSrVgjduzEZONdg6jemUv+RV3DklmwWuTYEmiWpLtvyFBC6WVl8dqy10B9qqi0YqFQFNx2qW+0eSbf2IR0F4VtqD0FJS7kNKu52PKa92GvY01Yr4LMcvwG80sy6WXvXda08jtVWil+RHve0D5FjfYVizd34Is87av9HDncr+JHqdqoWEHs09dUqA8sXG7n+NqJVfwaqN+BErRZCkRWDAaMdKbVOvke8+i58k0OZkY7AMfEachR2zVhKqkp+SyUHKAMYvfdjvSZVPIrV1ryyb/AKNnmV20AuSTWL218E2ftf2mg1ikx/FCWU7kU2Vbyennzzb5NGN3OOb6kDXlUWkKyPofTzToSeyjE2Nm7U/tA6r+CR8oRSWkW+utUVpK4PO3TduB65eLIfAcT60p1sijHCycsVkwNKboQSBvW52gqvFeWIWKWLiSNL6mmymRa7cGziRo8WrXFtqi1cMPPTiETy46MbIDYGxp1bkuluvLIjAY5DxexvtT1aUQJt28BNKq/lvfSsSDsm3wEkvqCO1c6jVWODq5cakEKR3vQujY2mbSlj2yoHXQXagVGjLZWsHjyysxU6KBtQ3qkhuSqrQH7DNISF+9LduCvJqtpHN4AEMQfpQVXwbo3dydVDJ+R07VlnBtLKvgVP8AHMrBkvbuKbntxyRexvNjhxpY/Inlp1rVdMUr93wRySSoxuLinJJjKZpHPdZtLG1b1GuqSFlWtYreiJrP4I8iJSdF1ptWL6iSBxsdPSiMvbgXFLIlxGbGtanySKs8Mrx5mkNpLhjS7KPBVjFVwPkxCU0Y99NaFXC114gmaWWEaqfrRwmSaL+Thz35KDex61n1pC75KikslRpEUjXS4NItZIh9rRAYsixC0gtbW9aqto306OJHZWSLAgXQ9a6tCrTL5ZGA97pqt6coDxol5GkGReLGx7UJuluzI3xkclXH3FMVoCrbov2F/wBbjsnH+4bXofsYl72s4ML5D4+aOXnGPIetPq0MrCcsvwPkMlofb9thINOQGlL1UH0f/wA/Ct1LfCHGDJDguS99fKgzh8lnt+xWiVal2BO4QgqdP4oNqyyb1v8AVtsslmikxjwHmOhpVKtW/QO1W6SxWNPOFsuh7U69UeYotx8FqvlyC0h8T0FIiq8G2dF4P//UrGfkDxnNyOgr9JWS+CrSqiEGuWp3Qa7GtdCXoclnVrLy2HSurUDWkQJOW6A79tKPomdlhPJNkZBZCTsdqOqKFgkiSL5BoDvp2NMdJE2zcFg+WQhSbWpf1El8W2iefMBbxTTvR1obT1YfJPG7yPYGx7UTRqqk4KEeaNxdeJ72oWkyizSNT9kPECNHHap+sMe6SpGQvLK1+IBHU0F0kg8lVWD96WNuN9OtCqpnax8hcJmYmwIPU1spIVXr2gU8V7FtCO1EmdpePBVBGsihVAuBrekXbTKqX61lhnG9s3/0ru8oi+x3sJkMhaxXktMrEA3STBeQR2/t9K1KROibFuWc8lbeiXAulFMmfk4xLknUDtT62As12PRfHCQECyt0NZbSC6m0KAUR8SZeZJ11om+yE21cqDRMkUjqwJApENIG/FpHfqwGTlyJBoO7gC+z7AX/AFZLpqpNdHdEVu17l8PySuAGFgaRfCPAWyVKlsMETm4a2l9amto18EuejTBkPAsOQ0raqTKZO9pZK2Yo1uQ3enrIsWLSkfHJFkR2P50t1dGFlWRE0cwHhqB0ptbL5LISUs5HixyiznWutdrwNy0/AlviypGnJT1NGt0ztPZ6oD9JoSQdVPQUX2JisrNskzkZ1ug4EU3NlF6KJZIMXIMf5Ajvem91IS0qqiPamjXWVrUUpm5tKswdcy8BaQmtUCdYa8FuBkZI/MlgdqRrRMdi6pQjSNyBv/8AjUqH6NJJHJf2BELDTewrKtdhqouqRnTmYttx+tVUgy1ao4qTn8bA0UoTeybg475C6OutakhOkMOPIkDXtpWOqENJ2OSTsRroPSuVRtclVfsR7kii8RNuoNHC+QbpJchreTXY9ax8Eso4WdOlxWwmLspESZU35JcAbit6ITbJeWUQSJIvMnkDoRQtQHip5RzIRUAKjx6iuq5KNUxEOSBcAfzRuojPNsqhEUtgF8u9Ku2j1vWrECcrFZGuWsOgos7SjPYv2tCFRP7UwDAlT1o7KUZXhl0qe5GSFuD1NKq4E7W7MjWGZJAD+B7U1tQB3rQbJBj28rn60t3fweX7nsWb4OJiYUtwGCECuVrIL0laZYrI+MxwjXa5O1b9rk+o9ZWsnwSxQQobN9gK58l/2NKEPeSUKPaPEDSxoqpEPstRz5KGyeK+beVhvQ1qI3Urg5BkRMLlb+oorVZ5tZSKlZGHh02BpbTMc/Jdi50ibi2u/pU+uSZThSeQsvJDMG1a+9DlSEd7GUPgzxmvA5NjaqXmmiB59Uy6L5SNlCnUVPbAk2pCDOWpuOFx0pf1EFqfLZRjx+82h4i21S67KpDpupgLIeSE8Vj5etDnn35bMri7uWxEkztb/f2quuaX+C5ZKP0ex4XlJMhsR0FZbRV8HV1S4qeyFdDZFJ7k7VlYfLAvWXLBixpixJsAdjTPsqin13WYQvIiRbByfU7CmVs/gu0bSSQgBGPGM/XlTOV5LMqfXWbeSeVBFJfRj1N9KYnKEqb3knbIcyFWQFDtRdUkK3SoxifIJjqN1HSptaOx4nsdmjZhnWeIFZLja1Irl0+D0PQ9ZJS0KkjKyaSAr2tT05XgvfNvA9IuWO3lreo9bf8A6I+m9P8AnF/5IZozHICTyvVVLSjrTKghzVDSgkhUqnJ8E26VbSUYuBik39znfpQaXceBefs2dvBaMeKPVBe1JVmxWmtr2Fy8X4hzYHcUdeBOnEBY8AVvG5G9BraUU+tePJ6U7gNa24oqom0XazIMlkLXB1p9EDekchQRRzx2bVhXWs0xOV5FyYMiteMH71q0XyOeiXLK4sISqQ7gMBtSraR4Rtd5mEB+q0R1HIHY0XdM56wpKIDxa/EnvS78gZvk0I5kNj+IOh71Jaj8FMwuxYcEOnJfJT1qb7ocMP7lAn9SSK/Ud6b9qsIttFWxh5qn5XB71ihsiu+wPFm3UWNbMFuNUkRZGHy7g9qfnqNbgkbHkGnbYiqFdCbXQvg1wCTf1opJ7WGPge4CVFjQrWALbSySXCceJW5Bpq0Qm+igl/VeOXbQ9KLvJM9JsPVP/wDoALdayfwU1tHgcYwbLE59elDP5H3fVf0BLiHTnqvWtV/wTW0lyImg4CxUMnSu7SR7XdnAhcw8eK6WPWsef5JnnPksQ81Jve4tW+D0clCPOtls1iltq6RmluIAiliQMFFvrWurYqtbOTpeKYjx8hua1JofWnURkSRwSeeimtSbE61te3Ag5OP7l1fkKNVY+uNqvwcyBFIt0/rW1k1Zu1gMRZIpQLeDb611+UezndUSRp3x2ccgbj+KSk0iT2dbO0l+JjwSHiG496n1s0N9fRryUDDw4g3I2boaX9ln4EbexpeUvBM36qroPP0605dhGGV2oI8jLnYWguCuljTK1XyeivVqkux//9WyPjIPJbA9etfpT4DtfkAwhW4lvDpai7SdX+ReQI1AZGPrW1fwzelruWTHIkW1xdT1o+sjbVVUUiFXS4Gh60Ewwb6JImyPj4DGWJue1MrdkOu1o4Ex4sbRgWonYVTVwNXELgotvS9Y7QUUv8MzpYcvHyCVB07UxNMnu69jRhyJ50UMAGApbqkMXUvx4JGGgBsPyNIvZIsy0TcfgSYclWNyd9hW9kyrN1opKUjJXYhu5oZgi117OBkeVwlAe5+m1Dakrg2teQ5rSNoQo+tDThB6JV5GwS40Y82GnahtVvwTO97sqjeKUWQErSbJofSvRciMjEI1Gn0ptNBGlpAGP7sTa3t1NF3hgVummRjHeIrbXXUU7smLV/AEyuJO1z9q2r4Aam0IWcpo5QW1Xa4oukob0/rgKeZZeulZWsB6ZpM5CVBHJrV1iO2poQTQqp5HmBSLVbEJ2tMBuIJR47HvQpuo5/8A51l+RE+DH7Y9pjyAudaJav5JNtG1ydxcp0WztqOldakh+vSVJX7/ACF+/el9YPQVFVSclxVki/8Aa19K6ukMGeyhGeB8hE/hoo3qh9GinJUopfkujkyXQ2ty60i1apmvrYASZMTgst70UVaB0tWq4NGPLR0AepbZNPggsnd8HpfYlS6EjvehTsnDPUxydayyWbA5xmw5A06usM37JMefHyscmx8KtrdWNpVMmeVgh3f0o0uRrpKEGW6EOtvQUyBHXiEBj580TcUF1J6116JjcMEvJojMy5NBoR6VK6JHoLKsjI87PQ2f8aD66sZetEini84uLXA2NZPUjs6yRtBlqx1tr0p/arEK1Vyc5TKbMCfWihE2tk2EC3uAkXB36VnwLUKyKvYYtt4HtSuw3TVVZxsSMXsLfWtV2RX1bELGUYjXejmRdHyclhflqLKa1WQ61lUmkiMXluvWiTkkbbEwzcG4hfE9KN1LMM+leS4Rhk5WuD0pUmWv2ZOfj/ckut7elH9kG01VGPgxnxZQw8gdxQWt2Q2uztYveKPIW7WF6Qm6j72SI2xoo73HLsacrtkne1gElUXUbGtaGx1ryEZACOOhHU1jR53sM9NIs0YDaMO1ZWsMnrnPJA0iQyHjblfrTvg9v0/Ws3+iyGWKXSUgk9BU1qvye7PVdajP0hI141tXK8eSe+qq+WJnw50Fr2p1LpkG+qY04wkQck5HvQq0Ga7cEQxZY3YIdAdqd2TJKWU8nVmCHzYqR2rGhmdHZyUQZliN2U9aVakl9K9VLLWa4uuoPelpQI2c8snyI1I5XplWed7F+JPQoh3UWHUUFrHlX2bZXCt1IQ61LpePJBttC5AEuVjzXF7UGedbcsR6+SbllxzZpUsbL6nej+mqPX+qqQAa19R9ayxNpaXCFx5MtyFIUd6L6klybnnWil+SoSq6EFrv2pDq5F2m7OLkNHIORAHSmrNNHoevhDQc6Pk6B1A7VlGqfB6brSnLXIhvj8cLdiLjcA01bN+Cd+xe7lE7wQbBbg9KYrMbazpXnyT5eGAAbcBbpXLU8n2NZf5IpIvABR7q319AK1OX+CJLs0g8WZ4Gstwp6U61U0fS+pn8Djku0u9hQ9YRbXFd4K4c0KOBPPkahvn2tK+D3659aFBjR2BNgK2kpEPsadWHL8fjuhD21FFXVrweNv7Frvgj9vFxG5XJA0sKf2dkFitLPg9LlQut1JC0NauT0fpdK/snkZXTwO3U06vD5EWpPk5j51hZm1Wh0zHZZsJ8hWe99+9bWvAN6dWG0WNLHdtXt0rJaZ5e+trcVI+U0MoCIQO9NhNG1oqLll0eRNLGdrjvSXVJgNVcnkklUjmBY9RXNIJRWslylClmN1GtIcyT6Xb4QQTGdTxBB71jdkVYzWvZjkwgIuS6qaU9eTlv2qU4s02OLWLRf6UnXOt/8gqyaL2aKWLkp17VIlar5Msm0RypdDoQelU1tyPwy4JUbI2X+tPsqlCVa15DkTIsDa/rQVdTX1ZDI8ytov8ANV1SaJLpSA456nQiiXBNd88ARe5YgNYeldaBasqqX5GMCQRbXuaAk0ck0joJBy29KYqsX0fbgMCJ3HEeJreV5K/9XLGSQ2F1oFYHS7bkD3eMbArzFb1li607JkOVzbyAstqdWEHeiojJyrwksCGAp1VIj62x+J8jC6gDQ9QDWvNl+WTSllazY3I3Nie9LasLsrWtCFuInc2YkelEpRVlm0yQ5P60291PftTOsoG2btcZLPDkAe4wArFVop+vr4IZ8fHS7K1x0pibMXazJl9zYHS9EW0qqLnyOWaSNgd+NZAja0s1IMpMiMWbiRuDSHWBNa8yyiDIMDb313vQ2rIXLNWPIxp089XtoakdLVfBlpfCBfGMgBjFgKx6Rwy71qqqlkGRDLExN9L1RSyaD0cts//W2GwH5txPh0Ar9FWqgTS6q2JycUprYgjetrpJbmnZyQsrgnXSnpyOu0lALSJGRzHIHsKJKSHezfgph4Ml4joelBb9iphcnmjRlIZbm1dIi1nEITjQp7nHkF9DW2sR00faB0kcccobkT9KxNtFbbTkDJhjezBr6bV1W0T25c/AvGxQZRc2v/FbbTg7HWboqx8crKbMWBO5oL2lHo01VJbNaKKJo7acu9SWs0xdtXcmlVFPlrbqKbVyFnRrkVIiTILC3e1am0y2teqTfkW+OLaLf60asBfR2YpU4tfQKdxRti7adUaWMo4BkYDuKmu+eSZ7TWWaMcKyx671Ja/VmU0lSR/q5ETleF0qj7atTINLKvAmSCVG/Gyk9aNXTFOykS6i/nr9BTE/wNqo5JcjGGjIBwO5NMpcp/1UsAfH8h4akjQ1v2x5Jr+x2cEwhljkKuDcbXo+yfgiteXCH40o1U79RQ2Qyr61NH9aOSINGwDDoan+xp8mK7vy/CJJBOVI/u30pygPOisyBZMlXA9vc705pQNfWi8mziqCLPrcVHd/gVffu+q8FaB7CwstKcFOcVrL8htjmVPA+frQrTq+QZ7eSazxTXkHHvamymuArXh8FJfkmouo10pUck1l2YjjGfJTbuKZL8FOFeq7MtgxkaK4Iv11qW+jViiu7tWBbRSRPsSho1ZWQaaQuaF5I2st/rRVukxlUlVma+KtiOPl22qtXF9m1BBJjTLJZVFuop6smjFCaFNgMzA7UXcctFKHLFNCwPIkdhS200V95ZbH/mUA/wBaQ11MtdArjMkp0uD2NG7SiZ6wxxiHbX1NCrE97yxTiza6fTajRLd8nfZViGXUHcV3aAXeORvD27FGNj0NBMitbt8j/dx2U8yFYUvrZeAa1tbwSyhJAeBsadWV5HqnSvICSMqFZb6DetanwSz2FPGJUIUXG5ok48jYVK8+Ti4ihL9QNb1j0JdN20VQY8JQDlbSl2ux2WjVRcscmLKGBDRnSiTVkBZ/1JXHAspumoalWvHkrpZVcAtD7bkC+nStVpRQpbI5RISQBYGmpoppmqqWSPGY2vfT1pyckHsaSw2BlXxAv0NCuCVKWRPkTxNxfYGmqqLfX9dNni4cklR6mgZ7+eaqLUJe6Xv3rTtL9VyXQZssYGh+9ZbNM8zV9jSOdjTxXawcaWqZZurE2zbFMJy54Hw7UaajkXq61fJwwnjya4PcVqsJxfZySS4wBOmh6mmKxfXjgFeMbAEXFb5Bvdt/osjkBW17DpSmhWtoQZWIrxPSgs2jyPb2aUAwpGshXlv0pTszy1ZycLe1kaNZaS13ZHb+7wUTWks6tT6Vg9WmcBQKWaz9Ky9vwFbXmEBNDIr7kKdftRUaCpVV/wAkztdTxbie9HAF02DFnMHtfbQmieQ2mfXlmtFBBkxg6lutT2u6Mvpp1rI44AjFwDalraRd97XYJSEE3GlFLKKzVAzxRhLxm3fWurZ/JH7Fm1LE+0Z4mAYE13ZJkCafkyXwsuLI/wDT8bf61VTSrCwdew5MVw5IGh70Tuj3c7pHp4EDAuxF9dNqB6cHs+nm7WTSBMkaEEaoNL0GdJRZ7ejXP4NGJ4TGOLBj60Lq0zx9bWsLOUU5L2OlE6fIGXr9nBK+az3Vk0olQ9NYLOv7CaCN4g0Zs29jWdofIMuyJDDmhzZVYU/tWBTtWQeUyNeSIKSdxXQmFKS4ZQ6Iy8utDWUS7Xb4RGXmRgU706ExCoqqWOMkko3PMdKGEgLJNiFmnikB4n17UTSaFuDQGYxh5Mug7Un6+Qfr7+BX7sTDkGI1sRRdB9cutZLsaRPbJV73pF1yJd3ZR8FEM+VGLA8k7Uu1KsbSlVWBq5WTxuB4ncGgedZF3Va1NDEkV0sAedqk2rDCxcqDrnIU2Jpa6s9GlKpQIflyuSftVFfBNfm0I8ciVB4n7Gs6JjlkmIlJl3GtOp/JLolPBnurI9jtfeqk5RLbhgrNuL8ddK51I7KWdfIubE3tXKgf1wJYiS3G5N6KIFxHLOkuh5AbVnDBu5fBQc3/ABkvoLbDvQLLngppjPgmWYyAhDZCN6b1gdnnWi5EOXRTdri+xookja7/AAQZie8mgNutqdTg9KmKzom/JlJEuLNcXsTrTG5IdNbNmqsMU4DpJrQTBdi45gQTNiyE/kmxouGMjmRjRxZS+O5oZgLioh/jWRm4kntRK4a1lif1Mggrf7Gt7Ier1qoFn3YHBYbfxReSTW8sujX9lfBVDCltwT9lIpUmx5OXAFTvatlMZjyx/vpy1Wx9ayCi9XMIohkc2ZTxHUigsgk1VSzTx8qdFFjcnU3qTSibKqVXWWWpLBN/yIORpXV18Eu13PB//9f6ErLGzcvx6V+gSmiai7WYZDsdtD0pSZ63FUTyYqDVl0O9Prcgto2+CTIwscDlG/H/ANTTqaP5JttLMV+u6jmjeNqPsgO/A6GMTDxPnaxBoLWgXW8systZMfJu19Koo1ZG0y/rgcvyCyxkDRh3rPrhlGmfHIcMkckLAHzHehackSmygmMkvLcgrpamKqKcM65rt8l2Jkyg2C6Aa3pN6IW2rWLYs+ENZrr/AKUm2TK88mhskmO9grDie9KrKL1k1EikCRPcNcGm+UR66O1oKlCSEdqU5QFrdQZcSOxHG162ujJb3bEovtxtY6XpjcsykurHY+S6sAra9qXfNMfWqRYuXMxs2/ap3lVCLVTsBLk2PkhI6mirn+GY8ueBcpx5AD+JttR17IodXVHv1YXS176bV32NMRps2oJfaEL6HRe1N7diNNtiZlWUgk60SfUDR9eQhi4siHSzjqKH7LJivtsxuNAiEqGuNtay12yzG78BthqW5lrCs+0c9uvKFzYQZLRsL9O9bXXnkjl3fJng58E4spYetU/w0VVVEzVx8maSIhhxYVLeiTH0Ssjhy54nUsCVPUV311shrzVYHvkQSgk+R60tUaE6UbcImabjy18O1O6jaZdathoA0F1t60LcWCpzQCOf9ZiTcg1t6dkUYUfJWcxWQMH07VOsoYzTPhcDUdnQ8dRS7KGFlVQZ+Qs4arKNQC61RLLyJHNbEdadX9CGpfBOzuNwD2o4QxVgpiaOaLQWYd6VZNMfT/UAK6t/4FFwwJgM5Uq6cLVnRCHmmzhzFbfSuWZ184BMsJewP2okmS6ppnJGCEalR3rkpFOrbBfKcdQ6mtVENWMsXHMshIv/APxNE6wUVSohukaki9qHyRaWdhcj7Mp5DsaJI3pCOvwKh+XA9QKHkl3u34DgcNKyjz0oLEv/ALwOM0cB/wAgtbpWdXbwVVztbwdkysaYBQwsehrq0aKb4uqUgxRFHDRuTbttW2crkzO0vkuLO/5/l2pEJF/HkGVYkALREdL1tZfhivYvb4ZNM2DIpHDfS9Mqrr5IXS/5M3Ij9iQOh8L6a1TVyinDJ2sSyzrI1rAnpRLg9rP1+oUeHJKbgfahdoHX9itUOOLLGNvtWqyZ5e2/YNAW48krGKq1wMX44m5XS+upoXqFp7CqoQTpkx3sTbtWJpketlZh42XlBeDoGU9TvQ3zr5RT6+VUvI1mjOrLYUKTG245F+zERYbHvR9mSu7S5OtjBLMNBvpWd5J76timCuQNeVC2eXrZ2sS5TywyFjppuK2E0J2r+Dsc/uo73ItoL1lKQZ62S5sVYxVojY+XT61t3BU7xVjoHbkRy5Ed6VAnGvMsraOV0JI+l6FNJlihmZOyB7OLfTaqapmqjXIm8BPidDvRc/IDlcs0MDMTGazOAo1qbXN3+BStazN2KaSTi0ZWWNtwDUNqpef5ZfnWtYb4AyMZLHkpUE7Giz0fwOu3HBBk4yLExQ2+9U0u2+RFpsnJiPl5OM5KNsd6r+utlyS2ySTbLIc/IlALsLHW1K+mq8BYY1mQj8kYJLSL4VryTUnrYeo7XhC8jMw8ga79hUtFZ2/R9fXB45R8ifbhMXG3jarVKZ4+2jaFKRCeUbbdKY+fIjKrs+QmkllIYE3vtSY+D0qUrRSE6sVPJddr1teBOluxzFyfafifMbWor0lSLUzAyaUF+QPAdqyq4gXanVyOWP3I/A3PShbhk9rduCSYyxv+N6bWGH0QAcyqQQqsDtRRBHdpycPuxyKxFh6VvDBbUpnWkiueTXJ6VkMT1ta0ITdwCVa6HpRHo0qs6MdFA7Q6AG9C7KSR6p1PRxTQEFlPH0rm0xddFHBpxM3t3DG3ap7LkoT4D5zcPHa2lDCkQ0rHcf5CdJFUk37UOmKaZVlkqwbKzs6m41t0ry7U6no50VrMzpZpklPEnU7VdSqdRGtFVlUTCaIkCzDe9Juutge38sS+OzX12+1OV4Je6RJLEynr96fWxFpbklIQtrvTOSZJyN9uN3HbqKF2aC00hi5cYwycgTxPauV5J73lye/ZMejDkrb1qzkLLJt/5GRmKYMLaHpXOUepX/8AOrXyK4xwB7C6mtl2I69rtks0kbbAGnVUFdMeqlhR+14g2BPQ0Lkl20teyXwTZPxyTsdL9rUVdIJ+8WEY8AxpeLG1uhpjt2RZhe1mWMsEykNY36Cl8orbhErYntG8R07UxWnyKpZ2fJwvO5HHQ9RXcFnWq8ni7rJ/kjt610cEu9ueGHPFHPDoAT/WsThmKvBitLNhT8r+I6U6EzKZt24K4/ko5TxBty6GhdC6uHXgJ4fcN1YG9cnB2l1U8pliFu3eu4Yn/Y2MTNV1TmADUt84Kr24SRbFZpuI1vS7eDzttOtoP//QvX5GcSD3PJTbev0j6lHBQ8qpwjSiz4wwv+Jqb6XAj3LRwjQHssAdw1TOUefezSF5OHjcORUWo89bTAvtZrgzjjxDkqMF+tVK7+TKz4Zl5ZfGl53uAd1qqkWRXTGOTmT7WTEJEc8rbEV1Jq4K3TiYM445tyDG47U/sSfZIiNpFkNi2p2tWtIGkVlmggDKeXi3rvSmLtfs4QCSTpJe3JBvWtILGqTn5LOUcighdet6S+D1sqfLGroLlbAab0MDNb/COLmKr2Iuh60TpKPP0r05ZoQSQEXR9+hNT3T+SC1rPyWr5x+S8gf7t6Q+GFgu3JnTQyxseBBQ9DVNbJ+SutEvJPzmR9CL32pkJi7JNwOi+SkWQCVRp1obYqOBbok+C4ZKSL4kEmpujTG1z4lnJIOUdyLHuK2tuTrWlcEsc7Rta1xTnSSOy5OyZVnYaFSKxZ8GWy6yIyLSRckuCO1HXhiOkoihypkYgnS+9NeaZmWaKRkXkBUnlQuvBXZdTRhk9yOzGxqWyh8Ert24QLNwcXH3okpQ2tY5PPE04sj+Q2rFZV8gtJ2gRGuXFNZ9R1prdWuCulqp8Fhk5LZrC2tjSesDusskYwmSykgncCm8wPyzacsU+MbkWupFErhWtNoITJk43ivIrf7U3ixRniohhNk5fUcgevahVUU3rStSrHm8RzBN+1DapI79uF4Kosl4ybMeJO1T3p2H0pCbKHf3I7i31oKqGIvWSCZ2U6an6VVUX9YH+OZAWFnFbymavAtUZSeLfa1E3IdWNDsTroaGBN2mwyX05LcbXoeDFHkGTG9wXGlErwDfRLklljeNrkC3em1ckd3Lk6ZH4WI5LWQirLJNErFyDxOlMKFVVUsPHZwbOL9iKy36PNena3BRG+ouQVOhBoGgG1VSVosAUjTXakttkzta3AiWIMGUgeho6uA0oTRkZEuRhzh0uR6U9VVvIFMO1pZU2cZ15NHcn/dWLOD2nkqrg8Gc24oB9K6ERaWTfkbBNlJKV3U60Nq1aNqqpmnHlARAyAgjtvUzz54HQ3WUObJgnjIXlcDqKX1dWPywflmHkL7cv+Mliehq6rlC3m3aPgWBI9xIoAFaXV61UIascGh4aj0oeRG+7S8lsMoitZQfSlXrJ4+2jtxJphopx/x2a1StOvyc/MJiRj+dl0o/s4FvRVHx4oLDmDfvSnr+Ba2m3AuaJFkClS2tMrZtDur7JCHSNGvxIUmmJtotpVyC4VQdAVPetXJm9oTR0NDxFwNetZDIbNtBrFGyNxa/pQuzA7OGZeVG8b8gDYd6cmmRX45PTrHLDyBIa21BazQje/8AMg4+HH+sOVw29bW7gL17voA8EkbJwJ1o3dRyM0uklJVGrAG5PMamg8m5J24QyLNyeXF1PHa9E8q/B62WVaL9nJoY5rcSQe1crdfIj2L9eWI9lY0Iawt/NcrOx59Xa5LIY+TIw8GH5U+qPVyy6Jt/KND4eSJIlIluAb2BtbtU202+CWvsXvwfSRZsc+NxkXkLb7mvK0ydLSj1fR9f7DBypJopCI9UPQmvVzSsuSi2CXkxs33W52sGOw3qqqR5m+as2vgjxPnDC5jyR5KdCBRWx/Az1fTbcVLcnI/cAaEHhUTs56n2vq+rTCna3kYuJIISSPoRRVhMVt7PdMTDPLG/Fr8TuDVLqmjyPNhizR+4RcAHXWghtDo6GikCPAGQ69xU7tFjlo3WRMiNx3P3ok+RtFxJA5ZJQB/NULlAOsPka0qhCSOTDrWJQA6u/jwRjOlVhxDAdzRuqYVcVRSzQR5pU1ILdKXCRJter4RK87QzgSrv1FNiVwedv/LhfJemUsqcCBxte53pLpDkKuULnyStBGSONuVqZ2Y6k1UsfHiEpY66UDuTb+1xAcKS491J8DQtqxHW8op5TR2sOSt6UuEzrQy6FOcd2TQ9qRa0PhleNpUJkc6tETYsqk6U6rkqrnCF5IkZA6bjc1tHDhlfRQmOxM2Vb3ck22tU2+SZ6WNFD4LPdTKUNcq460Nauh5vsWUjMS6kjlc3rteSOmnkoddfXtS6sXd8wSzSOD5KLW3p1aomtRTJI0aubg8T607tBO31AF0YAkW71jckelygzwiMhtR3pao25G5Y2uRTGB0uj/aqayj18cXWstE6StE/48l70x1kTzax55wDa4t2NcqltcelQrYxW+nI7WNZ/RDte1+F4EN7bNY2FtjReEJu+iAeb2fxYt6VyrPkVjg7uWKyD+xdghB70yvB7lMq0UiYJpIH4ugKE73orKSO9psVCeEnRSQdaXDKc8mjjSAKGC29a1IVdcTIxSmVHa9moX/LFZr5fkmfHaB7cuV+lMVpRRWbOCWVVkJEqD6mjQy0V4QqT4iJ+DISp/pXdw37Dqk2Kkx8jFbfmBRJpk22ndl+LmxSjjMtjb60u1WvBtU5hFCNHy8LAdL0LDs3XyG2UyOvA3YdqHpJHbJ3upP/0VJKZJARdiRvX6hEIt2sqspMskbgMbi1Cqpnle1aXBp4ucg4o76WqfTL5Qvq20kUHIjMbBHNJ6uS6mP88mdIeTk82JqlcIzPPnwLcqykAE2okoD1Aj/XVbMSGonJPa9lUHSM3jNxW+fJFWrfkmyZEC8iSCO1GkzNKO3g5jZscniEBPc71zo0Flm15BmkkBsAf/FbVF9cFVcjopm4gkAWoLV5LlFal2OYpRYkEUq6aEVvHIrJxAoPFvE9KKlyD2NBI4xHxBuNzTPIpJ2cD8X5aaBuLSExn+00rTBW+D0MsFVeC582KQXUb0iubQy+MEjZQ5fjb1p6oSLHkTNlKxvxvfvpR1qdbL5HRZUixEqoA70FqKRnVOvkrxs6f2wT5L1pN8lIFKVaAlcs/IgcfSjqoRK6pWkGWNGS6X+9dV8g6NtSyYSSRiyk39aZCYvrxAiSSZnvb7Wo0kglnWo6MO6my2YDSgcCnbsxcWVJESsgIPqaJ0T8Dccp4Q6T5Y8QFNyP7aBYoft68IbD8rIZA4UJpbShtgoE54rtJZ+28guLG3WlfWkN+tSdJWUjzF7ag0PgtjovATY0a+W3qKxXZlLO9uCDIaaObwJZT/pTatOpfn6678kjyzMTozAmmVSH3qgWknRQrraM0dUmTbtJHYckR3CtcHpW3rInHJvyWxZsTKA4INTvNyO0lLgrinQr4MfoKXerkXSrjk5MgdNT5V1HDMv4Jfa4HQG/Q0/tIurGIrEk3tbtQsW7qWEY5DYi3qayUKdkhiwvw1APcULspC7qAJIuKhgdOooq2kXZ8CnXmpBH3o04ASAhxuQKltOgrrWK89OtQJMUwkgLcGireSXfRvgnidxJYnS9G0Q1irKHhVgdPUWpfYDa/wADYUcKoIFh/NC2jK3SSKCkfC9rkd6XLk5TYnycQyx3Cqb02l4ZZmklJL+iyJdkuPrTPsTG12duEZ+T70Dlk8U7A3p1YYbzS5Ci+VUx3Kkt3NY8xVcXZTJo4+TLkRBYgFPrvU96qr5PSyzrWqk6BlxSXZiR1tWcNDu1ZhHXRpjyRRzH81tXBPo0hkWGsg8rhuoNZbSCa3swHJhuq227Vi0TItdpFlVRgX0A61zf4I9dH8GhjyxkAoxtSLVfyOwTX9M5JmJDILH6muWTsJ0ztawS/JwiZSSeJ9ax+u4HZ+u+6GZMyNMCr6Ghzq+p6V8et5ZNJdG0PIE9adXkK6+DxCyIeWxrvBJrf4QtcZStk1rXpHkjtrCGRwGP+4j0oHeRH2TwBlIHU9WFcmJ2MyeWNbRnQ7Xrbpsg3TcIojyYlfiCCAN6J0cFfR14KGmgdgQfwHSkdbNk7rbS/wDgPGkSW/FQW7mmuvU9P1c+vk9IJSeNrWok0ivRqi58nJPwW4F13oVyyBzdz+BMKRSFg5ABP3pkteBuHDZzIwIDGSrX0O9atWUb7NV5MxcfIxfwQsrC4Ipqsmhn/wAn1/tcfkHF+U+TikIbwj6AUGmNbn1+WWeNYXk0JZzIoZV1tuazOsHne1BEcllbjKnryFUdfweKs5twTzQ4M8nIxnl3NbLSPX9bK1HJoQx+3j2RQAdgKkcdj1Xo708hJLkCPyUkbXrbJSLoq9SHJiYycidO1PrbiBSqk5ESGMJrc0dRek2HYmdLGAiAkdL0vSifI/PJQky4Zcz6EUhUQ61KoRliST8BZhTM3AFs1MsigLKxDqb336U9qRD0jwVs0JFtDQ1TIvYuxmPGwkAvxFZZ8ElNIsOlxBIRY8rdTQK8Hn6697gjGT3ACdevai78FdtXWCxMGOwZfuRSXqxFvYdmTTB4pQFJIJo000I188hc8n8VHK+tyK6KmrOrcCJM/Mh0m/A0azq/A++VVXgr+O+XgS45lh2pO2DY71PXsy+TOxMiLex9RU1c7VZ6T9dqpKX5KVi+9Nfnkpzz61mw3FSMny/LrS9Ezns0hhi9trg6UStKPL0vyNRwNeeo7ULQmqbfAxpWcAg62oFWB+lUkDIkjqLW9aKrSJ7xwZmVI8bHlob71VRSSaUlkk+Y++6+lHXNAL1+zPY2Ssp4ljY6WNbasHp5VWaKlhEX4gFTvel9pA00b4J5XflbS29MSHYeulyxTxxuAVHn1oqtoZvdvgl9mUMbmwpkom7KqOSW9q4vyvvWLkkVXpyxYGZImh09KLhHpZrOlRyRZcagyG6HW1DKYt61twieeYI1ypA/mjSFvOOSuDJhMPIa+oG1LdXI2ibUh3SRBwbkegrPAF1xBOmX7ExVzY9qN1lAZ4t2hFXvw5DaW5DalpNFui6HGgWQFWFm71vaCK1wOIj8eV7aAVsyA27Pk5MqMQGFq5BW8kTYjEloj9KZ2KfXUcvyIlaaKReR23okPvXtZQB++6SA6he9d1Mvkk5P/9KZJUFjHoLCv1OBWjbfJRJIkyjy8gOnegSg365f/gQkeVyDKSw2NE2hudqrk0Y0yoxy4nXqanbqyzvW/C8AS5DiS7XLXtYbUVa8HXol4CDM7G5CL1rohEW2latsqjwsc6k3J1uaVbVnka+za7hHZMaLj4gA961XZRSYM3Jx7aa69aorYfZda8kKYxEwKfemO3ArBzdNlbw+5o2p7Clpwena8s8uHNrwG9d2RmuyXAyL3IWu6XFY4ZMry+GHmZ8Ai5KOBG43oaUcjH6lrVkzX+SDWNifpTesFfr+nEMQuWDJoh16mijga85tHwUHJz7WAHC3SlqqY/SudFye/WzpU5IxBNa7JOBFbZqssBcfLjI9xjfpejlEFt63tCXAwPloOJe4O1qyEx1+tawVYU+YvJC117UvSqE4dOT0zzpdlJ+lbVJi9aqB+PkyOAGaxFDaqJeGzs5Zrm4VgdzWLgzaKqQvcUR3LajcisgksnZEz5sYXkj+Q3o60KsPVar2aBMks8fMIGPethJwehhlVVkmyYZSoZrA+lHVge1oohHIshoypI5ehrXWROdfBbDkOz+JKr2G1KtXgrzolYrBlDA2uDvSoUA7XUlkIfjqxUH+Kn0fJV60RIZQCxPkD1NAmUSyeX2vcHAgn/bTqTArRNNSLkxfcsCP5o63gnvdNpEwwGjl1Ipn2SjnvzBQsItY6mgbB7yw439slQKGykdVSNMjWuP60CRmkQeDg6Ecm/pRQIsDDPdyvCwrbV48klmqTL5LYpFUjiv15Um1Z8k1U72R58hS44gC+4FZWnBd9XUH81ZbWPai8AJTJKU3BQ3psnUOAujbbVvDBsxrFpBqKBcCtGlyTNhRmTlc3ovtZ5d927cHZIpV/AXG1cmvkY48sWXkQX29DRwmaqyh8MiutjsaCygrxrCOm8YsJBbteu8jYduIFCzkgm/pei8FWVVVCcjARl0X+aOugGunBmtge23kvie1PV5F56fCHYxRCeDWI2vQX5LMOz8mhzeRA17kb2qdKGUXaS/Z7yPnE1nG60X6Z5u15DTPkVgJFt/7ULyXwSOiHS/JRxoWY8gKBYti9MLNcCZc7ByOJWwPUUVcrVFaYWUBQTxI/G9h2tXWq2h2dXMDJkjkF76VlW0UKvJnyIqOLbXqhOSmlWuSr3X0ttSVVDt3JYqe6oYMCbagUmeojXRADEYP1IPeieqg8zb2EhyRSxk8BpSHdW8nn9+1gWmAcqwuwNGqccDnSOAinvnQFKB3VBGuiqyLI+PTndhqOhrstXZyRZTpeTOyfbVmAWxFXKT0b1fMgYMoLMp0v0rGoF5PrJs4CD3VK20qe9uBnr3m6LcmJH3YA+lJrZodvZ2tCIZseSzcBy+tU1shkJKDPlM8EgYx3B7d6oqk15H55peGBk5bvCQiFGIsD0ra0UlFvXTry5F4ceexUyuZF2CjYUOqr8HrelbPKihGkmFAGvLfXpbald3HBPr7VrX48HsiEw/8eq1tLT5F7zHJFNCZRyU2NtqcrQF6+a/2YiKBltyYEHcNRWsOz07NJDvwWysfoKn8s9hKKAxyTopTncHZa26XkHKiaFSQySHUEfSmUYvfStUeXE4ni5v6Xo3YhWjtaAJAE/u4W2oZL86M97rSKOLcSNzQRyPaSUsepIQNcMwrUuYJtL9lJwxyzKfAWo5SI5rVNzyJbGhCA/i19Rej7M832fYtZDknjhkW7XFv60Lq2IatP/gpxJ4ZXNj9hSrVaJsE1ZtlEsEYYMNqBWYWujdpORKUJsXCGtbkZgvlip3cMLqSvc1qRP7HmR+O4d+KncbUNlAz16/1LBy8CV0IK8tK2mqLG0zLTDmhm/Dj0uaod00VY3ScF6G5t+TD+KnaPRkpF11Gl9wKUkDa08hLJIjAg6HpW9U0Ra2TY85qMpDJ5UH1R8iXk7fJP+wzEgKVv2pnUcs1nUeJ+PEhTpuTQdRTq72QqTOblZSL9qKuaCtgl5E5EjSg6AmmUrBPfNOTMePIBuIuQ9KoTQWdK/knOTPE1+BUg9qLqmY6Jssj+QMlrhiTvS3nBRTFTJRwDnkbgW2pcwijtNuCOdZlNlBK9DTqtMTokvIh8idVsQP/ADRKqJbUTAiYPpIdxWtG5/yoQaOkS3WXrbjWNSJfa3EDVy1cNvQ9SquXWrPOIHjt16itUpibS0TrCYXsH4g/2mimSijjiAP2ZoyQoBt1rWkbnh2fIrIWXKHIjiw/uoU4PUrnSin5IpMbKTyVvIdQaamie91Y5F85nQHjMLqOtY6Jkv8AzVblFa/O40lrtZuxoegOnq2RSMyOaxWRW9KzrBzzj4CjlEbm+o7Cua4Dzq3YKVIpbMBasTaKIhyZ8yJDJZ9UJ0picoh9m7+D/9PNhFnBB8CNq/VmS21/o0Uhi4BlvSm2GtH1kMERjxcqe1Z5OpV2+CrFzQ49tzc+tI0z+UejlTqoKWigmUWAUilptCttGvJLJj+3fW9+9OVpPJ1u7uBMORaUhjpsBROomihmhzRgoA33PpSYZ6Co+BOZICpsQO1Hmjts55Zm+4wIJ0UmnwBjTrz8lEUgJ8Ft3NA0Ofnk5k54hub69qytJG19S13PwQT5c8wupJBo0oPRz9alFLPR4MrxEtYA6+tb2hnW9irUI7HglDqdu+lb2kTb2YQ+PB5DzjG+9Da5Pjt8yMkh9rS/H0NZVybtd2Z1JX4lI9WGlc1+RekKsMKCR2PDIWusvwSZQnCCyIYlPgR9KGjfyH7LbcAI915BdRvaiaG4VisjEX3orIPL1oXwxN7SoZKkeQk9mUb6GmNpon71ViuePmLNv3FLqzdX2cETjiSHvx9aah2VBLNCEsmpolJTarVOR2PM0Zsy+BobKQqfhHJ8mAqRfX1rq1Yq2FmQvmotvEG3WmKoz/naQ/HzwHFyFB60NqHKvJanyAXTmWFLeYt4u1oKl+SlAt/b61M802ewsK0qaGPIJQvJtO1Ta16pmZubKCXLjWOW8d7d6fg5ryK9ltOWeglYkDnqe9MuiLNS/ByWQhtT13rqozVQOheJgNRcUF00Zim2ek9sa2uaxSWdXBwWYWC77VvgWxTRz8tuK0aaAtateSecSKLq1iOt6ZWDztVPLKMLLmkIElyNr0vSiS4HeqqpyVSIQwMYpVXxyN3tzyGguPLQnrWMXW3BwqyfieQ9a2ZE2YRjMo0FqyYBlCHjlS/ltRppk2tpJlypBIA+tF9aIq0UjzkNewBI7UPQe8+QJBLIOISx70ahFDrWqhsUsU6MA19aJtMdm0OWDl+SBut6B2H/AGR8jRiRFb2sfQ0P2MB7ODvFY1IJY/WsmRKm7I8goxsFJNOqVLKCdVPKzAD0NG2UZ8eBycB/dx+mooWde7gIoeQKG5710kGluTpXmwSVbetZMeAG1UbFgIQQdQem9BbUD/oJ5/jVjfxGxoltJNpsxoijR1LG1+pruzY+lm2oKFReRAN1PWltltOGDJjeVj5Ctrc3bSHA2NI0kHLYbigbbRLpq3Yek2NGbxjU7i1LdbPyIt28s5kZY4XLhewoa5fojvk38Ey56k/mPUXp30x8DsvXj45HJJj5GvIBhSdG6E3tbdRhZIhblrU9a2u/0ebTO2r/AEKdg5JLbVXSvXwetlkq8Iz85A6EhNtSafTgPSkIykcBSRoQaOCGqcSaHx/yBTVhoNzQvKSv1c/n5NJM+JzeMXNKeLXkuzwcyyfJz3U3vxF9qbTJFK9VJSTyZLOmj8lPpRqkBXzSUj4FEkPkvP1NBZwyet+yPES458G03tXcW8lirKj4DTJlkXzHW96x0S8B5Zr4OTTnYak9KytR2mfZkcj5PIhY9e52pqgo+utVEk0cswcLKoN6LSI4D9TJSoHM1rhR96TU9HRSci2uFN+9FEsTpp1qWJ5xcbgH1Fc+GeQ33YhhxkBO9a3wU407WCbCOQfLbpSaWjk9DbetP5Xk6mHGl1I0703seff2GNEEag+1qfWsn8idLvryGYZSvLQaa2FZ2RP3RFPEChJW5GulOqySGyKUwlANQwpqkZar6yKxJvayQC1gay6kgd+tjdhkQPuWHepbJsVezteClpwmhF1oFWStZwgG9mY6vYDpXcr4I7z28COMUMl0Pj3FM5a5KKyuWaMLRyRf8hv61NeU/Bb6tHd+DJzkcyXFyL1VlaUeo8lnywsdorDlZW6110xSu7MoMyKm19aUqyxt6vqKkyOS2tr0FGqwDXGEI5ZJIsLDrR8BvrRS/I0++UNjr/FYoJ9GmpY/FMzr56rtS9El4MwtXyLy4OJuhsKLK0h+w4AjDMpGn1o2S1aEzR5UJDBvE9KKrTNivknlhlkBN7X60xNI5KolElha/uafSicM3un4RbDNIVubuO+1ItUqySSk9MzW0/iiqifWsks8DyjxGtulHW0GXhKCF0yIWuVJpqaYtJNge4rHVCW3+9dBRTP9gl5rEKLelaHaqS5Pe5OBbjrvXcA1zVuAZp2exMd2Hasqi2+aSXIMcgvqGHda5nZqXwOWZWB4I30oYGWX5Yoy2PipU9RRpEd6niqzECRQyn0rhV7qngYf/rmLMvJDxofsgCvu2kjm+BkhN43b7USumOXtdvJyOPIil4ySFQe9a/BQtVPCLosWdvwl5Cgbg57VmIJ5/wBiJzHMOa96JQ0eV7dk7QuD/9QIcKC9unQ1+n/Yzws9rNhkjHQhTyX1rfJ6NaN15DZkmjDKACOtDymelln1pLDxoC68gQSP5rLuAK7/ACVosy24xnTc0ttfkk31XyxjJE0ZZyS3ahTc8E2c2XBmTKizArt2tVFZaMVH3HrY68+P9BQM9Wn+BWTJEqW/I9xW18jvptYy3lIfV/GqEhGqVPgfDkWYWbTvQuorOnMs0P1cbIjPE3cjepezqz1u7iCdsF0BUHfQU1XQq+sqBESSRzFSSfrTHyiXTVVcF0c0Sghku1LdWebte1uEWJLddAFF+lJdSnGiVQ5cBclLlvLcUK06sf8AYkjOmgnh1AJIqitkyO77sUzmQ3bxIo0oKFVU5GnHkYArqO9D2QvTVNyNx4lUkHc0F7Clq7OELnWeJ+cWwO1FVprk7RKqkbG+VKAxS4oGqohyVbWmQMhMki/ErRVaPVpSqUsR+lPIvkSQe4ondIpwtUhyfiZUYMvK2+lMpogPa9lTAzFhnAsysQe9dZoDDRBTfHiUGya0KuehWyqpZE/xDAaNY72pquRaez2cCP1shDYrfsaKUFW6Gwpmcj42FBZoqw6KWzVxIy8YDg86RZQ5M09nvwi3HjkjmFzZLbip9ualXrtKxWyJIjWu2u5oafzBB7GnZsieN4zcCwHWnppnVXSsvyHZpI/Heu8Mnt/XkCBJ7kHTvW3gbnetEaK40Rj/AMhN7dKl7NPgO2za4AULCfDVfWmP+iWW/I6S0g3t6UFeDNCPIht+IvTq2J9BENkcEjTtR25RuHmS4SFhYeQ7CkdYG6fsKOYobFbVlqyKqpDLhtjr0FYlAOnCgOJm2O9DZE6fwekUuCNAe1cnAu0GZOpR/P7VRXnwT9ZfAYPujxOvSu8FVUvk8xySNDYjSuXUKK2ZwyzlR7g261qqvgpaqlwGrOLEHQ96xoXZlKOpXxVb96U0A+TzqSASp+orEy3Gigmnx2LA2+hptLDb2UgLiF9GvroKJ3gFbJKTyw/rsFcXU7Vzt28EOmzsx49pxpYcdRal8oTVNsXJcqdSSOtEjtDkGTOpsuo61lqJ+RFar5GT5YL2K771lcg7YTYWTFIo5DroaOGiyteqCjvG2litY+Q0/ktQxyWDWU9zSLSvBHtryNOPj8/Jr/Sl97CXeztwJyXSIeA0NMom/I3TNxLFSpFPD5AAjY0dW6sbVdaSJx/jY2uVsSK7T2Y8nn6e60mdkWSHaKx71PX+3LZ5ST0ctj4mSSPk24pkR4PT9esrgS5Ecu9wdTTkpRcqQwZYkcmzkXG1Z3aJvZ1gzJMOKNQT1OtFS7Z5+bsyYtHDJ+XgelV1Tg9rDJ1XgqxshVbxbxoLVKqKPJrwwY2TDdWu9takta1WF9rtwSy4LWKDfpTlohd7z/JBCuVFLwBa3anWhoLBVTgs9/xKsvmDtSupZesqECMoD87CudR+OMIb+sMgco5CG30oO3XyHfRJxBxllUagsw61qaAS7snY3Ycxb1rvJ6FEqKSyLBdlDIAVPWlO6XkRp7KGthoqkGwI7VtdCG+j0cfBk5csuM5Ka09NPgvw9Xjs/BzFkypHEnG4PcV16qIC+ylXwaaCZhy429KTwuCPTVeSj9cugJ0B3AoO8MRXReRbY6I2txRq0oRro2zqSyxMRYsh2rnVMCteSXJd9SEsp3plEhv1KimSd4Y3W679RR9mRbXduDMzIrSBuNvWmJkevDH4s0/HxbS/WsaQeSXlm1jTo8VmALVNerkopOnCMvOf25ydeN+lUZqUVL1+jknfLl4EKdO5piohn0J+fIeH8hKpF9QDuaXpmmen6+azpJuLLDlQXAHMVJ1dGI0bvyTLjShh4i3U052Qmt1Up9iArZmufSk9mimtrWIckCCQFbletNzt2RRajlCv2byAcrA9NqYq8Eulf6DMlje5P9a5IToehyljezSG3ah0rKHerk58DMjJDDRrg0OdYGezQkXKkha4XktPdUyGuXZwNbOkZRZL/WgWaHa5VSSk5HkyhiHUcT0onREqql4O8kIIW3LoKwytH8hxzyKCr2ArHVFVKKIOSqJRdX8u1ZVwG1HwTMuQtzfie4pvBFdqzBf3JV8tx1NcuB6VUiYxSI1iBxIo5k7skGY0sCNDXSJtd2Z4QsSTcEDSsbKsmq8nWjUC4UXrkzNLOzCTHV7lvH0ArGxtNOqC/VERDdK7tJPbZthSY0LkmwGnSsVmjFZ9jOyYJIyGU6dhTauROrBxs2VDYKT3BrnULLJeCls9uQDAgHpQ9Sl4KYQEssUjXddBWpMzf+PA6ApEecR03tWW58kVtH5ZbKMPLjJZeLd6R/VSDW1m2z//1ZWyIoJSjE2FfqSq2jzMPXsnyVRzYswAUi5GoNC00ejDquSvHxYzGQD49hSrX5Ors2oEAZGPIfaYgXpnFlyKhLyVR5c73DsQe2wpTokTOtbWOplGJrOARXOkjqZ/CIPkc+G1o/y9KPNQenh/81xLMsZs7kb8aa0XUyrUpiZj+R4qfuazqL32VEFNhYLx6s1+9ErM8i+t4kWmFEo0c8Olq12G4aN/BViu8bWjBZfWlXUlit+S0B5BtZh3pfgXayI8r3lfUaDqKdSIItKp2kkkna10/IHUGmJGPLiWXYOUWFn0PpSb0OeiiEbONOyjoV7mpL0kCnIOQvInyGuoFbRh2qqkz4QdT42Nt6atIE204gREZkXje/HpRuGIryuQg7BwxIBrIDUV5L1QujA2a40tU7fJLpfvaF4M1JJoZCpZgPQVR1TQz181VFwk92ErzJa2mlJahnpUz7KII2M0Mn+XkV6HpTlDXA2zVVCCfIRkYX16XrFQ83Wjci0kDAeRFu1E0UYU6qS79ctFyTrSO8PkpV+xlzxSI5LXttVVbJoTxMoS62uQSR60SCVZORySKuq6HrXNIOqTR4STLJcC69qxpNFGdFVyaGPMHiboRU16/wBIrpxRv5G4+QNFO++tbeh5yTbLFaLIiKlbGktOrNt4I2x5Y2Ptm3YU7umDSPkANKGPMkUUKAeGyiHIZWtwJXvSrUkY+PLKQgb8TbrQTAi94CaIIAWNx1rFaRN7uODkjLbx1Ujetqhdqv5JwqMDc2FMlm0/lDEULta1C2D2dmduddOVYOhVR28eniFb1rOSTSzbCSZzpa46GsdUZWqS/Z55OGpA9da7rInWfCByEinHiBfpW0bqM6QZzCWF7gAW61QoYedJYt8jI5nWiVEWrKtToymtaRde9d0/AnRccFUM0cyWGjDpSrVaFVXHJ5GMbHWw9a1qQs6yyuKYk20APXpSLVPRqkuAjCzDckGu7QTaaJIHh7S2YkjpWzJDeztwjrvHIoVxtsaxJrwc6/CJhE3L/GRTe35GUar5Ak9yNwG76gVqhibcsneeSPI0/FulGqJoKuK7hSSRuwYnXtXJNFF1zweLhU7jcXrYN68DVyIwoLAW9KB1YnVtrgojbGlF7k9ulJfZEjsyiNVWSxbivrS7Nwd3hl0mDBkQjiwJt1qeu1qvkovo+qknhwECFGNiOlHfd+SN+y2oIJBLA5CvbXat4v5R5Vl2Y4SNIPJthtW9UvCHqqbhHIAY5eNro2ulMt4Lc7KhoNgQzRaNwNTP2HV+JC09iKks+CsaDkQw2uN62mzuzz3a2jMvIj0ZRcJ0r0M+D0/XxVFL8kkvxuLNjsXvyX+7anLRpnoV1t0cCYPjTGQUN0OhNa9RC9qXyVYn7MEhWMFr7UF4a5KPXiXJXJ7jsHbxcDQUusILRp24FM8glBcXUdaNJQDWqVpDdMeRTYBW63oE2mWua1lj48CJ425cSelLtq0za7tppErSS40miAr3prSshuOUuWwHyJWa9wL0KSPQrlWqkNYVlSzC7etanDJvZ3hQhmHO8amMNex/Gs0qnyefiu3kZJPdtbKTS4hHo44chNgmZCV4m+xoM7w+RvuewkuiIBHkwOQzHiO1WSrHkWuqo0sSVSOPLW2xqfSpJ37MqWMqByvbuKS3I7vChHZIkZbr5V1bNCrNi/ZDgdxRdoDraEGcNXjPIWofthgvbsjHzPj5saQPG10NWZ6qyEWspkz85cjiSByG40p1YFWzrZmfFkSx3DpamdUFnRPhFOPkSCWwJselZavB62GdaFsn+eIhl1FKXDHtTJnOCjfjtT1yDEFmK0U0PBlAIpV5TkLO0qJChWaB7xt9qy0NcnVtLgecxhLaUkeg2oOijg765vCGR/IagBbrelWzkuzx6+R88Hvx3U621pWVoY3eyrUzp8IoQWBNuoq2t5PLvoBdlXRjatOrWeWMihjk3UkjrQWbK/t6VKv1kjA6ChViK+ruyWRGBPHVTTExlaqq5OCNb3JAbtWyR66u1oR23PTp0PWs8G0SQq3tSaa/Wi8o1TaxQpE1wdD0pb4K00pCEbRjUX9a6ZEd+7Ess/uXI8aNNQKfWrhHUKGwZLH1rmDLQTwxyLZSFahTaCqp5ZCOcEpD6jpTvKFrm3BTHLzsEQa96BooSjyzrRTHYWrE0c3U9GxAIbeuYuv9Hi4Is97d66A4hcApbUKx1rWYv5XPkHJi0U8q2rAdezRmz40nucgDb0pisVZ1SYLYnI8jyHrXJlF9lPAuRJItb8l63okQb3nkox5YxZgv1oLHm6XbLYjAzFWa19rbUq0rwT6XafVH/9aCbDyslOYjswGptX6orJD+2cTJPFi5MLBj4kUXZMgv7Svbg08H5OWKUK9ip01pWmSaNSVeTXL4s0ZZSA31qZKyYmytaSGSZkNwBx7mnKoeWMcnHSTKSyjgvU0q9+p73pYVr/T5Zn5Hx0kbXALUeVkyz2d4BiVALSLwFPZ5i0cShwWOw9pgPQ1x5u+jfkpSASrxLemlA7QZW5N+pPEx9sEg9+wou6ZXnZVUsdCk9xccSNTWNoRpvVG1hQRSMLkk2qPW7SEU9h20SBy/jX53W9r1ueygba6VuTNyPiHB5qL31NUV2Qq+8v8ARAYpMeQNwIHWmymTX0/Zt4DxyRg7k7ipdE0P9e0qSuXHhZL3swFJrdpjtLtkhkKf3kmnRJPWsqYFe/Dy8hxNH1Yp1aHf4GjsPy6Xpbkn1s+sHYxMj6EWrnEBZxUa00hUjipPpQqqG4YdnLF/5SCwQ/batcHrUSrXyHq8QD2FZ4fBLZ9vBnZBCyaWHqaor4MtTryxuM0PHXUnqKG0kz0s1waOLK4BWM8lNTa1Xll3q0XyS5XuqSGFxfQmm5wwNarwhDwe4uhHIa2pitB1rRWBHCRQQbUcobhRMS7ZPKwGlbwWKtU5Yf8A/pgBfjcHoBQ8MK9k6uA0ymfi3Hiw0uRXOhPWiXJRFkyRy+WqmgtRNCnHbgvXIhcG35W3pHRoG9WCycyCAGNanAKhcs8Y2ja5FhfUVycib37MbzS/IdegoYYLTszvve4hW3oBWdYY+ucVli/YmLWU8R2ouyFWvWQODpJxdbg9aKU1wJvb+oCj5cuNr32rGHSENDLysdGoYA0bbAkA5XYArWoyqhiL+3JeMXWj8rkGym3J6c3YEpyB1OtdX/Idq8+QH5ABkSwNEhirLkWG5XDKTRDsqqRUuO7LdfG1ErHa3SQKxErY3uOtbJH3kHl7TX/uFb5OqmygMsy63DdulLiC+qVKyW4uKl7k8SB30pN7k1vabZVrGdDSfJJpZ2Ywgypfjr3NCuGHVJVFJBIQR0Bo3dAUul/4BOI4Y8TYGu+1C7aTYCeAlb6kjc0dbDUp5M/JBjZW/IGqKclCzlpk8oLP47EUaH3STCTHEkZUnyGulc7Qzq3lQSqJEBViaN8ktrSoOR5fFuIc8ulc6SKWX5Kv3sgk36bUv60HbOstmr8fnsVCubEaXqTXL8E/bs+A8nNeJtToaGuSaE7ZdUJfIjmU6+Vcs3Uj+uCfnIuu4psKBqSpWS+CW5W6gVNZSJT7WHvksja6r2FD9cjL15Djmw5YiC/A9qzper/Jb6eFuswRZEMQ1SQNrpVVbP5Q3WUg8fDD+LWsR1oNNoEv2UuESv8AG5ELMi34k3ApldqtC87Kqc+RkKTggLcN1JrrNFObTakY0b+5dwT6isVlHBVK7QhLwMZQDyCdaNX4GOyrY7P8bxBZBz660NNvyUW0d3+ESXycdgz8ih6DamuLIpxS8ofxjmUkBjy9KTazqX415Jjgcv7ilj1plL/IHs+z1UIL22jGjFrbGmTJ5js7sBZ0v5HhY61lkU+vk54GqVlU8SG13pMcno2t9dG35HxrKljy4jtWuGeU9E+QMuVva1t9aPOvJJrnKkhTMmQ+IFu9OdExSzVVLNjD+QLRgSMCKj0x54Bou3CG/uR+4QGAWh+twM0p08lML4zJpIAfSk2Vk/BHNnxB4yqFKqwau6/krxw45IMjIZAQdV2FU0pJPtnJHOySoQAeQp1U0csoUGHk4knIkD6iq62RT6+aRGyTq3+MlXHpRyekqp+RozPlYhycXX6UvrVlCpnEoYvyRkXzjse9b0gmtkn8nsbLVZj61tqyhSXVmjHkob2saS6h55tnnb3SCEINB4La1VOWNSExkFgABWTIF9p8GjHIOFunpU7ryLs3YTKyOpBBpteBDpCJ/wBQ8vHQetH3NreGLZTFJYk0S5QvSzdoGRz8iVtYetDao6lOq58hMIBp1rlIje1nwK4w+7fkNqOXBNWexywDAoCR1rhlE3YVIHLE2rUUwq8nA7RWJW/e1bEirOfBXBkxMhuDrS7UZlU0uAZGQ2sbVqRPesDooo5wATqKC1nUStOQv18ZQRtIKztYdV3sIkhSVb8QTRq0GpwpFDBsbqwX0ovsOrrLPP70Yva/rWqGFaGeuJEJ4G9Z4H5161AGLzXUkDtWuxud0TPFJC901WjTTE3tNuRqszjgy/SsaKEkkCqtHIAw8fWt8oTe8Mc0Ntx4nY0KsLveEDN8dFJEbC7Vi0gm02cQZaYpjlKnQetM7EVNP6gXMH0KMSwO1Giimfhs/9dEcubGviLjrc1+pNVYm7oqAs86+bLzU7rWpImxzTfBPkzwb8TGe3SiqmWWxt/k7jZUxJEViNqy1SrHOq/2DdpzYFvP/bvWKBqrVlmKMsf8t+NT6JMuppWqhGi0bSwngQLdaUn1ZLeytLZmyfGhgSSS1VLQh39nrWELPx5C3ViCNhRfYec95OpJlQm1r2rmkx1VVKTZw2hyY7MQrgWtUmk1YjTdvwMfHHK6j+KFXJLXlgwf4Z+V7DqK239IfhKtJovPHcENvvU1aMq1q2yaV+QNr06qE3oqojnxQ4N1Nu9GtIINb8i8UHGayXt1vR2/pclnqpvyWsfcTUC5pK4Z6VoSEMrRsTxstqammRt9rcE2TGr6po9HVwK9l9UcRglhILkdqx8+CJt3cIf+1A44i4Yd6Ho0VUws3yeDsVuFF+9bB6NKRWDpyZgCoI+lZ0Q62aiAEd2vcVrUGZVSE5ka8fMfYUebEezZvwRxyvHcWst9L02JJc6+WaWFmBdVsT2FT65yW4VlljTCYHkuo6UpV6i94UwKZseN/wAdetFy0Jpne94JpsqD3bBPLuaOlXB6rwdWkLfNVXJ4aHrajrTgXtm2/I+HKTIh4rcN60u1erk2ucVhkzQMGs4DX2tTVYn00S4Qz2AbXNrbA1nYxWlng3FiDt3rIkPkYubElgD5VjzbFaUsxxzWINxdTQLML6khYnsLr/FE6nUz4HRZfIAEcTbW1A8zrVOmYhvI6V3Um04He4r2IGm1LiBEcyMEMb2INiNqHs0arNsCWDkbgk20IFFWwyzhyCuOu/Jvoa13M+wWw9t9T40S5E8ux1vbdPE3NYpTHurg4mOWFidK13gZW6XAv2fafqRRdpR3Y9KwA6E9q5ITomxXk5vx+wNF4AzqmxRxfc6WJ0tR94HK6QS4rIOJoXcHX2OIKMfjGzXJJ6Xpdm2RfY23Bo3WRAQuvep4aY34DihlZLHS3agtdJnLRJQABNE1wpIO5PatbViduRpnj5cnG1B0fwY054HrwljPBBrtcUtzV8st9ekVbbI8n45zGfEVRnupKa2TqZGZiSqFbgfW1WU0TM2ulVM9BE6SA20I1FbayaF53mxPm4r++CqsQ24NHS6g32LKlkK/6wSFrLZulb9sE33zaCedZ4ltwNx1NHKY3aFT9lOBKrkcwT1ttS7/AKJM7w+DRyHRRbiOP/mkJNm+zNmTXJYmEjTpRpfkTSnPInJyH4heVm6ii6Hb5ykgY557EliQK3qg8q1SNDHL5Ebe2bN6mk2ir5OTTbkdDil4yJTY9xQ2vD4PUz2WefAb4Ef6945LsKD7nPKINd7WpyiP9vIx211A3IpyyrYTliv9mXQfJxTceR8h3qe+DXgXerbKlmiJX+629qX0aK8cmmhU00SSX5Wv0NMrVtF1cWmTy5VpB5grTa04B0y/qB4lBF+Vw1L6lcdUNGGzpYnxbalPWGMWqrU5DiGF7Alhvas107Io9e7bgnyxd/xuadi+ANaf0Rj3Fa7WA6CqOIEKHaEebDExBAux6UvueirrKo9cZYV8lsR2ru0nnbb21cLwFzSRbAXYdDWQ0wusKBc0RK+SfairYHW3EIzsiBLHibHtVNbE1k45EwwZAcWa4vRWago9e1alMsTEEs2p6UurM207ORcf7cbX/sO1E+rBy6rk1MeR+NwB9KlukOo+zFZILKSf4FHQVes+DNkyPalCspIPY1QlKOWDtdImmylaXrftR1rwVXy6uDwyXDkMAAdia3qJdf6KEmWSIoSGB9KU1DKa0ipE+KA9iARTlYT268CnwAzXDFfSt7gLX+jkR9iXibkdzXWUoso2nLNKHKQcQrgntSXQVtLhF8c8bi0igikurXgG3HCHxKnAlLAdjS7eeQs245OGSK2mp71qTFXq3wLklB1AINEkGqQpEzhnsR4kDfejq4CVF5BijWTRzqOtbZwKevIb448dbjvWKwq+ngUcSMPck270XcCl27AKkkUuh5IaJtNBq0WKWTmug4dL0tODb2SUnFxyqkX5g1rsJpbsStyibVtP9tH5HKsI6ciNlsQATXdRGlXAMc0qPpbjWuqYrGi7SWLeS5vZqU+CttCpJVj3PkKJKRVqNgpmR31Fa6HLNoezRyC4sD9aBJo7ThQMiPJbaa70NjquEc4eyxIFwe9dMm0lsTkWNm46dhR1O0UchLCGUFdBXOwCvPIM2KzajeurcC9pYmX3xFxZb8dqJRJukdTkcp2NwbVrROlLM7MR+Ydb3HemVF2okGF91AyqOVdI6v8AR//QraEMp6G2tfpfY8jbUOHALJZVvfqax6wO9W6jknyvjIQl5SLjpR01b8Fdtn1lEgxsSM3AIU03s2Hla/llUUOMLMi6dSd6W2zVpa9ihZFXUC6npSokrs4RQhYL4rYUtqWc31qDIWYPYbaC3ejXB5F4bZIiXfiDa25amtk8pPka8YUaAMepoEwtLOwqMlJVY1r8ErvD4NNJQ4BDG9TusBJfIwRxlrnf1rJY/NuZKYoscnVR9aTa1hy1s7CctEi1Uk36UednZCPbbEsZXS9uIFHVJMmzpWJBjhmVg35Id70TsmW4WUyOARDoouTQOWb7Gr8FQiEqm4uD9KS7dTseDM+Rw3Q3RSRVOWia5J/atL5Jo4JZQ39rL3pvdIH12pZNKGhkHJLnuKanKPTrXwPjkjcC7Wt0pdlBZjWWKyJHj8kF6KikbfOeQEyMiVSvHWudUgs861UE002Uh4m9NqkyXetXwIcGVbNIb9qNcApJKEg8FWWQgMT2rL+Dq6xwXiTIBFib9RSoQtpNjHjnJLki1KtZJQen6edW3YklaYXfb1ptEvAekOWdUtPHt5Ab1vhk8qAseCW5BexFdZoT96RQfcWw3IoOCLT+mGJ0b89DWdfwU1pHg6YkkG/jWS0E7RyDJ8bEG5ctPStrqxNt27BJjxoOJJI7VjswqXdmD+upvxuK3sMvp1Q2GNgfIgC1DZkH2yx0nA6XBYUCkXs2Ej2X8daxoXVdgknkDC409Kx1Q/OqQySRVuxJB7UKR2ibfBwZEUmhbUdq3o0aqQcOMH1BvXd4FK8sWYuJ2NxRdg734H4+pswpd3Aj7epa2HG6+LC9TrVoKt3YjmwuJN1361RXWTbaEQUwyFeG50p0yga8BsJgQVTQdaxQa4Xyc96RTtaw61jqmS6KWHHLHIBdRyI1oXVoGiK4YlOm1JveDb7xwVxB4ySguDpekNq3kXny5fyDLJOxZbbbCipSqLKYVRmzzSRmzi1zVdap+Ar5woXyOxflI1Ijcm3Q0Gnrt8oa82kqmrFlRSIeoqG2TTGdYUC5hA6cQCfrR17JkWtXZ9TOfnFNoLAbaXqusNBVpFjmW7yIGC7DeupVID2UvJNCOVmtZh2oxHreZCzIWlj0FiNyRWd1U73dEkIxcFh5EC++1qxayRetfsx2RHEV8zb0FMq38Hp2nyQNGsUnKM2XrTk58gVmZZ2YY8gBP5AUKkXo7WfBPHlJExFrqaN0bO6NDIctY5uSAres+uVyN9fJpyzUjzonBDnjcUh5NeCxZuzZMM+zmJPIetM+r5OXrw4sBMjufwPrbYUSaQGrUwiBjLBPr5L0pqhiaUm5UM+QaqCnSgeaPax9deWUrkJLq+/rSujQ+3ngExY4fkH5HtRJuDztdLWtwUrnrEAoA16GlvKQ75totTOd4xpoO1S2ySZVjgon8DIpjzDcrA73oNKcQOzX9SDl8A4YDU9a315agD3E0xQhSUkWFyd6c7NE2b6gZOHkRcWjHj6V2WlXwxntapxJ2OGVxc6H1rbWSBxtXyJaMwyKTr3tRp9kK10clinGkUciQaS+yBTs2RZeOii4W49KfndsG6ZNCZCAqAC3fem2j5BpFVz5GMrWtx8tr0KZ12C8AawZj6XrVYdMKAcfHeJjxYEfWuvZMbjf4GMjvcD/AEoZgorC5ZLN8bNcsxGnpTFqvAWeleWQZeFJH5KL+tPpdMVteeRYhE8Y5fmvatbhhYviRYgmQEKxFbKY9WUcgsZlII1I71qgk2abDSdXI5kBr2sK5o7OsclD4scttfpS1ZootpHImT4v23Vg+h7US0kTb2JsNhLRMQfJTWW5R1bO1iyNg34n7Ulos/1UBByCbi4roJ/LGM8bKBseooUnIV04DHtlSb67VnIu1nAoR8pN/wCKOeCZWVWGYyt9bDoKyQO3Zibm5DKSveiHVSqglxI2IKk97Vzu0S32bcD1QFLctdrGgb5BtdtHVRhcMLA9RWNjsgJ8aKRQVAv1NdW7RTL4MqfHSKQ3BqqtpRHtdtwj0WRENONzXOrMrVjzOwN0FhQQXZ488iZ8yZQWAGnW1FWqCvinLFpnJJYSpv8A3AUXSPAh0jwxwA3iJt2of8gWcsYs2SBobCsdUaq1HxTO3ixpbqG2qoa80cY11vQqrZDvLQyHJj0DEAetDajFR1UFPGFweLXpctBVTXLFSxLxIBNzRqwNpa5IJI5Y5LkXX0FOTTBlIGaP3EJ1+9cnAuz+RWLCBew2Na7GYXP/0ay0qNqPG+pNfpThnz13LLsOVZPFb8utqTooLvWrzDCnji4kSAfeuo38FOrb4RMwxoyugYEUxdmLt3s0kKWIM94tu1E7ccl2SWa5HCEoAGAFzvQ9pAejsN92GzLzHIUEMZdWfBM0hLXRrEGmpEd0q+RLBmYX3oiL5C/ZKgg2ttas6SE6TySZORYnx06UytAbYQNxflIgi8zt0FBfJ/AHRxwa+J8vj8bMvJe/WpL+vb4YeeNiuOeCVbxpbsaU6WT5ZVjk0pbF5cw4eYAt1os6/gT7NZUkq5AiU2IKHvTukiK5xVluGEljvzuOwOtI0bTG+tYRlRhJBx1XrfemZuUHpV9lIuKeaJjxBKmivVNFfr5Jsny82W4ude1Mpkif2cFa0IgGdMWJJ0J1p/1pFHq+tWikYZ42X8jesVYH2o7HI+TDQA+tZYppFKlDROEBG3Wlp8nXvKFMjqxZAB60chZrmWSzCRzodfWm14J9IknMbtoQFYdaORbskIkkngkDD+RRQmKWfayGP8pkA3Og6Gg6IvXq1b4KMX5B3jtuaRfObSenXNUzgoDxSKVYWO1q2GiK/wCCYs0T+JsD0pvkktwOWWdhdbCw1oWkSvr5HKXc33brQvg2kNnJIfLyNjXVY/bRLwVQDjxBBal2I1d3skBLMquALi/etqpQ/XOIQ7HX3GsaC7hGUuquDs0XtkgNauraRW9mwI3B/LcdqJonoHMqEAgXNDVs7Vs7ixySIVF0PasvZIHG9Um2OTGyY99RegelWBbZMr/WLoGtf7Un7IY5aKBLY4QE2sKNXkyjdnCInkkVj7fTY09JfJSs1RcjUlZ0ufE3tehaSIb2TUhq1jck8R1oIkRX+rT+CuCVDHcSfalXTnwX+vV2XgW8zFrXv96JU4M1qkz3FXbzXfrWNteCHS/9BNEinRr+lD2bBtZti3iWZdBZtd6NW6mLhEb4s8ZuhsBuactK/JzuqqWFFlSRG7EPS3mrE2dHpYri+TdhqbBTt60L9dI9PLBVRQ2TqGBUAb96WsyymM2Rn/IMki8gwNqox44H65dV2gjjeBjYnzHSntMhmzZpY0t7cRx9RU2lR9WM9/Khl5Egodr0HStkSXSduB/7KTqORCN6C9L+t1/YVqKq/LEyRAqyq3M7AUat+SPRz5J4MaVJLMLL0rtNqpcEmns1pwi3LQouhvpUtX3ZLqnoySMzFrAXFWKtUj0fVyrU9LCA3nt2olf8Dtry4QvjArC4uDWN2Jb2s2kgHxoWltH13FGrtLkcpq4ZDl4IViSOJptdJ8C9LtuEDGuORYP5Wo5ZbhW1nEC+LubLuOtHJ7OdVSvPkEiQP5oQR1rZRDtop8lEOcUvyBK7WtS3nJEqy2w2fHezKv8ANYk0NzzfDDeCD2+V7msVnJ6826cCv2MeEWZbrRdWza52aJnmSVG9gEW2IFGk15Opj1TdvIDysAAy2O1zvRJB38SVQTyRIRchTtSL1TZVlX+S3FnEiC77HrSdKQzKcLwVzObCxBA3vSsqiPcfKkBJXUmy6elMdZJKV5krE6unG55dqR9cORfsf1wdVntZvEelc0p4ColWp6RVK3GvrXVZLebsR4NcFRfvTOSui61PMGVQCRx9K1eRVuUSMoWUlHFv601OVyIqpvyC0kjKbOFatVUh6zUSxbZDMOLfkO1EqlFcuJEpk+299r0TpKCpR+Sr917AixU0r60N+pM4marXS5ua55jK5cC2VZUKsRvtTFwR6P4JGgMMminie1MVpQynATws0d1BBHesVoYx2UEnC7WtfvTpJU5sJkxxy/DbW9arDbW6lUACqATc70FhSu7uDsrMGAA26VlR96pHYscynUcT9ay1oNz0VQmx3ib8joOlCrJofa0uDnNWAu1iO+9awq1OckJtcmuSB2tCKoChQ269KCy5Ja2cSz0iujBl0FanJLdyyhFEg5NrS3wGrpeAxHFxIY6GsbYm12TTI8Tq0ZsO9Mq01yA6xDYxXbd0uD/cKFr8G1hvgJhbXlp0FZJfnUHiGG9rdq6YGkWTC7Pcajren0twTNLtLM2TFZXJsSD2pysHR8jIQyHW+nShY93nhFVlljsyhfSl+GZrbrSPknfEsbrt2pisR948nPbeMF1YfStmQs/6OLkTMba2rOqKOtalEHMtrY23obEbunYoKArf70EitbycSTHvZtxXNMmfZsuhYMB7el+ppNlHkcv2HyeNjdgaGExVnLOO6SJqbG+9dECNeEdjxeakKwNulC9IJ/s+CU4TxObg2JvpTa6Jodgz/9LVyLt0unc1+jUUHhLNUUvyDiOYnJTQGuupXJX6Gbtbsxsj+8rctj1rKqD1eqqmzPkhWFr8/DpVCtJO7NcwPPExgxPYjqKD55OvMcjlieUKCf5pdrQUZNcCjhuW01JNErozTdIFlELkkAG9bMnjbaO9v0GMjmQNL+lZ0gGufIuW7I1raG1GiqtOGyPJhdvodNKbVhWgzGgnjksg0J3NN7ITayXkrhWRTdjfTagbRRndeEXYvyqxwleRUjpSb5Syr1vXbpLGS5y5UNkJ52oa59WFrglXkkSV1HBw1z3pzR5urldUUYWcYJr7DtS9M+yMyrzCNls3DyUBI4P3NR1ytR/op0ys/BO2VxJCNcdzTOkllPX6rnySZLxS2vv3p1E0A8+SQ4qspI8h6aU3sYr8AiDiRcW9a3sF9kKS7HhjFuTBb9RSbWfwTfe7M0EhUpZvIHY1La0MowfYmfHdSeIuDtTFeSqYJHx3LWK7U9WUEF7rtCJ34rIwZfLpTF4F2l2YMkKSLY6N0rVaCmihC/8Ar7rc62rHcty04BQJG1ihW3WtiTbXfmSlGxze380LTEWs0mxkuIkkfi2oGlYrwya95RIizxsVfVehpjaZK9EpLcblfQad6Vc3O6XLKshAihgOQ6mlUcg7t2agm948rg8F9KY6lnr4qnLOZMSyx8kYsy9K6jhwOup5ZHj5OTDILi6jvTrUTRJRJ2kvbLMpUWsT3pCpAPuRWGyqHC53v4n60q2sHmf9HJUuOvCxYA96S9GLersLUmEnibiianyA/BbDPKw423GlItRBZ0VnADZOSpIAAFGs6s9OuFaoBWnLE6EdQa1pQPxrVNk85cLsF9BTaQT+w0kT+6UAAB5b3o+skHRtQDH8gsicGv7g0vRfTBZh60VOws4J6isskejklVQFK19QSCa5Ih9l8Ho5JiRxNzWNI85JNlKvy1c2t1FLj8DVy+BbOy3IYm2xNbAnThNlaETwAHVra1P4Yii+yEZOXjtE/IkgX2q7OyaPSzz6+BauBodQTe9G0W5UlwMjLtJaxPI6Uu3g9OsV4/I9sct4lf60FbQRe5um4RM2LB7xDXVvSm93B5t9bVtCKcdCp48zal3Zr16KPku/Vjlj1YsQL0h6urOevWs/IeMqxkKE19aVdu3yeb9trOWyiYXF18T6Uuv7C14RlzZvDxYm4O9Orh25PPr67swjno7ENqNNTTPpgv0z6lUChhdCPtSm48m4gzwzEEgXHWireo23Vf5M2cNE/Imyiqa8iuvMnJcpW1jk8h2olnHlFH0/LAYPMQHOu+tbwgUl2Jj8dL7vJLGmfao5L6bVz5ZcmOYm5Pa4pDvPgm9j2nZ8FLNHNH/ap7jelpNMDLOeWY04kx3I5c0JqysMZXM4pctbTiToBWllUk4KQkzqECXH+6lNpcnprqkk2L/XZHKzWZbXArVaVwZbSJSOwGBYzbwtuK20kWPa0t8hy4uNkxj2yTIBQ1u6vnwP0s4SYePhlAFkYlh0ob3+UMpv2hIFh7Mu1+utdMoopRt/oKTNWykrrfeupmJ9mjtAB+WZSVU/zW/Umb/ywuRi/JRsQzmxG5Fc8mvBHbNu3HwWx/IRvHdTypFsmmHXFsmkzZUfbx6imLNNDFgq8htLFvtfuaxVYvRNvjwd99bd/vXdTlR2cEMk0yy+CWHen1qmgbZVq+WMjkdiFcULUHVSbhAyvY2trXVKXTkSfNdBY0aOvFaj4419scjdgKVZ8jMG7InbMWNgLWI00pipJulGlLHRZUTNp+W9c6M8y0zJpJGsqabipm4ZneXAmSIgaUVbFC4rJC+OS1xcEmqFYnVo5BkRgDcb6XrUwbPsyUiRSbHx9KMtwzVUccX8gxv1rkbo5PQZUscgJ/E73rrUTQjNf1JoPIsligNjvU9VB6FqwcGEstyo4nvXO8HPZV5BOFKuhNulH9iPMvv2Yt3eAG2o6UShjVT+ZCWeZ0sSSDsBWOqTFqlYgBMidHHEn70TqmBpFUXxZDsDytSLUQvOqbFTZiKvFxp3oq0O2yfULHmHEe232NZav5Ayp+SkurqOSEt6bUmIZ6tKxXhigk2vhYdKOUAmlPIqSFu29MVhNrCXxWJ7H1o1cVfSODoxiTrWdwq6QekxitvHQVysDrpIt0Xj/qKJMxJsSkKq2+lE2UVt1QXtgPYa37V0kul+TuOo9xwVNDZkn2Q2WfrjgL6ja1K7nPSEhZgi9yx39KLsxXZ9oGIQpsNqxlNEdkW6m9chluEI9/27c9hWWU+Dyt234LMfKWQXj67mlPOPIGWccsoEsdvN7HtQOr+B0N8JH//T0p5CIbjUGv0iq5PLrj2RLDLJaxI40y1Uep69K50/ZZGrMndTSn5Od1AGVjKUsdq2l+TLuEZ07HH0UFvSn1/oP6nZcjsX5KdmsVsAOtBfJQOzzqmVfsSMFN9+lB1SPO9myPOHmjIYcbHeuUJiKVSRBIs0DclHIU9NM2tfllWLN710sFJ70u9Y5GSlKGrju3g1hagd0TW1XgnyMNgW2061q0kh107WBbHUpe42o1Y9b1q/yJbBGy1vc9lX61FnEyYjyi0o1ZPyQa7Kz5ETZGSp/wAra+lGqr4Jlkm+Ba5Icjys1b1H1z6o0MeQkAluVqTdD8uS5cjmADbj6VP0KWklLONjlVuLBdyetGrElr/HyKiZeRVXBvR2EV8wwpRwHlZ1NDXkDZzwhPuRbAEX2o4YymbSKsN8hJCqMWXpSdaprkszdU4ZoBpmHktqmhI6zrJDN7ityBqqsMi6cyImZZR2cUdeA65yyYSlTY7imQMso4LMaSOQcWH3pF6tcjaOFB3JwlceJv6V1NArWjlkZgaM24m3anq0kt9JGwzAJ+OnU70Fq8gUUqREsjhhYeJo0iPVJFEEzjceJ2oLVR2aTZQMjXixsppfUsVIGCPEI8Rc70M2CdrQF7sUd+K61nVs51s5J3WOYkgAHttTFKFVXUVMigXQ2I6V0nme3o7sZBnsoXkfTWhtkhCrxJoDKRgDwPoaT9bXyOVIUyNRkdGBIB7daW05Jqp2YpJZUlUDRe9MdE0ep6mKq02PkubnXuTQVLL+QYZArX3+tbasiHaEUzLjzRbcWG9Jq7VZJq20Z8sSK4GgPrVNbOA8MnayIMnD5Pyva/VafTTg9K1lULHVlABY77muuyfX2OtZNMYwaMEAN61I9OTydd+wr2Spvt6UStIGZ4RvsB96KUV1hKCedzECGNFEkfsS+EHg/JGN1BF1PU0N8JQXr5QaWVHi5Ca7sNKnztarPbrm/gwpMWeCcqoEi7ir1dWRRnVK0eD3vZKSoWWwAOgrlVNMPV1TTKld5OLLoe9A0kefxZpsRIRJIb/mu5FElCEqva8/gmfLMcpsSSOnSmdJQOtOW2auH8lDLHZvFutR65NMh0baKRlC4CHWlfV+QFlHLKS7yLYn+KWqpMaqqzMb5DGkHlwNr71dldD3RUrJG91Vrk6UzyTaN2kp+N+TZQo04mlaYyjca9ay/JsJkE3KkBT3qR5/kOtJcsTkYxmFjqKbS/UckqmZPiHHuUAsaprp2BbdvPgQsk/uXsLLTOqDypXtP4DklnDXjNjvbpQ9V8mezDZZj5Bnjtkb9aRavX/URRqOBiRpDqi3U/eubb8lGUxLCfE/ZQjio0696xadWUZR8mQ3x2RFMBew9KrWqaG56LuhrRZkT3Elo+1AnVo9Furt4OSmKSMltW6kVtU0zNnFeBMcSBSACbnW9G2KxbVefkCSV4CGj0N+lakn5M0q3yyzH+Ql5Xe1j/NJvkoG45p24KXeGcbWap6ppl110qCMNSoIIYdqa9IPOpp3t+hWRjIurLYd63Ow32NX8E4xoASQL33Jp3ZkqvYOFIweKHXtegu2V5T8jnjCt5gWPc0FHwK9nWbQgvaiLcbXB2rpZzs1wcSCdH4oAR0rLXTQ3GJ5JMo5MUnJm+1PzhoRuk7cHIcx7jloPWttQGlEjRCw5UemjjtUrbo/0VJmdlOIW43IbraqacoXfNvyMxJo3sL2PU0vSrKs/wCUPyMKKZCFNDndon9nUy5EkgJFrAdaqTTIIdhuN8hxYHk32oL5yVYZfJcuWZEIXQ+tJ6QxmlUq8gF5lIB270cIh6ptCnkN7OfH1okhypBy8PfQ13Iy0oCVo1Hjrc1qOWbZEXLNqARTRmeaqWQIWAPPj2FKZum/4LYp+Gh19TSrVkksxjMGUHT7b1iQulPkNY4njIA19aGWmdpo3wJGOAdBqKPsLV4R6fFYm966txGl+1oQEaFXANE3wVZuIR3LiVoiG6VlLcjNU2jPiCq9r2p1vBuCcliSyoNH06Ul1RdZJqBq5TlRyJv3rOiEWSgYJnZQL37UPWCWyQDvIHHLaiSQq6SYaqSdKxsx2SPGVQeD3BrOvyjVR2ZPIUB1OnpTEUdYR4Y8Mq9Qa7s0LV2yZ4pVfxOo2piaZNZ9rEsmVOkv+S32ouqgn1rVOUauPMJIr3pFlBifEjAqMdTZgNxQ8mZy3JxoyG0JJ7GtTKbOCiNFkSxFmpTcMTbSVBBlwNyI/L0ptbKCXSFywMWOVDYkj/1Fc7Ji8r/BWzKBcj79axIuShSf/9SmJMpwEkBUdb1+mWaXKN9fooENAsLXL8hejVpEezs/9Ui7HyxzCi1vWk3pwC11aktlliMWh1qdJplWeLuZmcFLA2BAqjBlnsrrBLGWV2sm/envk869usyy2ErJGL2DCk24Z5jvJQIi6kXud9KB2gozJ5saUp2tuKZW6ka2lUgIMbA3NwelO8kt7OCtc+JGVnv/AO2lJtm34JtK2b4HvPjyMWR7hh+JoK0a8hZYN28CiqgBgfG9HJ69FCUD/wBhV31XppQdAfas/CKU9iZCBHtS3NX5IVK+eSd/j8eS4BC23FGtWhtLNMzMr4iFCSGH2qimzYdtrHcL48luIa4O167TTgow9hLgvPxkyrYC56WpC1QzT2U0MgxmuRIbdONZa/4FU35kVLgJHJzjoq6yuSa2rdggA4IuARXPgflWSWRQi3PkKanIyOJG4zSggouh2NBdIyllMtmnEX3cXvUtkvgLun4OTYzSC6kCurpBqaRE/wAbOOTL5fSnfcvAeF1ZtmfNiZRN+GtUVugdda1+SjDxpCw5X9aDSyEV9hSaixcTxAtfapZD00l8i5sSZwTbajrokIteqJEwpVYgWselNeiMWqXAibHlVuLjQ9aJWTI9bJuEBG5Q9xRND8ayyhx7htsO9AuD0bxU8IHRrhzau7SL+yWUoi25X19aW2BprI0Y8ci9Ae4oHdoj026oTLgpx3sRWrVnnO7ZG0EZQ21IpysxtZjkOJ5VgsGtboaxpNh1/qoEeUOdiST6UboU5ZQWx5MGnInSkujH8/BoQTQvpfQ1NerRzbXkZ7Cg3Ui1D3/JG7tsXIrKdDe9HVpj1WRBVmJDrp3o5/BZSKI9+nGQClzboTXfY/kk33bFzLFGBzsB2rJb8HlezpazhBJlBDxj1UjSu+qfIVMW3DO/ts39ut9K55pBaVVUWR5MX/8AYOPSkPN/ANE25QrMhxJlLLa9Hm7J8jK5Wsz59mcMY1tyBNrV6KSLMMI4ZZDm5AVRILAbmkWzTfB7la1VUVq0TkMoJvvelw1wR6W5kbJHAAC66UNXb4INtLWfBPI/tR3jtYd6ZVS+RuOD6y/gmkeQy8+Fww6U1JRAxUqrTIt8dpgCo4tfY1zuqnmezspERtkwTlWS4FbCsT41VrlTZU17gD0FD0RRpVNlmD8jkXIIsBpSdMKm40qmyzKkabHIAufWk0r1Y32KJUMnIxnJKuLC1V0uvgQoThGS98eUqNFvVC5O6tuCyD5Bw3Em6kaUNskXLNVRfH8iFQ60i2MsXXF3AyM7lbQEWraZQP1wVVBPHKGY6H1pjUEf+qZQ8ccmMWVuLjrSU3JPzepnvNIgIBLetUqqLMcOORuNmZjJxDW7XobZ1KVWiQ6PPeMWlBLA7igtmn4GZZccBTZsbShy2ltqymfEDrY9bTBTj+1IbObqR1pWkpcBZWasKycTHhcFPxJuTR56NrkVo73ul8EkzFSeJ5Lem15KXnBPkOzrx42v1oq+R9slHIjFVudidulHp4NxtDgvZ/bF7b+tJrUz2bO3gfiTO/4WJ6Cg1rAnGqXA2ZZWHkKGkI7dp8IjsXJW/DWnNwd6+fMsllP60nMHlr9qOvKD1bb4KV+SWdLAeQpf1wwVh8s8M1U1fa9F9Ym1X5NCHKLoGi0U9al0rHko9fJNyzP+RlcAkgsxp+I3T15RktmTDdftVXUWsUkVY2VkcrqCKTpVQPxpVuSiYTz7aH1oc4Rns3pXljcTFs3m2vYV17cHnL2eSyRfaIKkn60qrk682ZLOplHlp9KZVwMpmkZ64Tg6E2p7sb9yqiuFTEwDag0t8kemztYez/7duxoIG1oLliZ2NtRvW1sU2ior2yP/AIo5FdpGBUHG63oQ3Z8QCcaKQNe4Fb2YGmvSrOwQrF+IuP8Aca61pIc72s+RzlStxY26mgRT14k5EygeJua1oFtwPgcNubfSl2RHbSCoZGOmjm/eldLPwJ63szjS4zOQpsD0rVWyQ9ZurlnlhiJAOnZq52ZlbORj4qm4JDX2oFoVqzbgzJsRkkN0up0FqqreUMq+oyOEX0FrULYb0lwE8A3IrFYVpp+Dyi1uO/StYnycmMjAXGorqpGXqhRmIIJ09KLqYqy5Hh43NyOnWgaaKaV5k4YYnSysA/au7NMTto4g7FEEBLtpXWtPgnro4hAyRhhdRcd61M7/AFUshzYVC7bkCjViD2bNgLI8SWGx6UfWRtKfyUx5LMLkb9qB0H0oitGaYXUcSKTaKiN9EiiG6TKHUkdTSbuVwSW0iyH5YgN+HWlUVn5A0pa9uTMHuCU6abA1XVIb6+a7A5CzNCfaFzTKtTyev9denJ//1djG9zIGv420vvX6LpFROd60/wAgZHxitbSxoqbCXpyZ+RjyQupGqg9KfWyY5ctNleKZmWx/De1TapSevjatU2PmxbqCv3rM7QQ+7vwJfFNwdwRrpTVc8jTWXJCXOLIdLqT1psdkKVXBr4MxmW8cYv1tUmlY8sbk1PLHyqb3ZbE6Ghqx1uOTPysVxci3HpT6XRHo14InjS2pFxuKbIFm4GRRRkDgvl61zb+T0cJSUjBCVvyG3Sh7FNtIUIY3gbsQABf70K5IdbO1uAFykIHGS2963oOxx6qWglyFBJ1YneudA8823JyVkYXYgA9q5JoXu44QtJHiY8Px7midZ8gZU/JZH8mbAKfIb6Ul4j3jPkYMyMkGQb9bUP1v4BVH8CppF5DibjoKOqC+qGJkQkh1Fr6WJokyuqgXwYcg1vpRSJ1uvCBinMB82uvSttXsRqX4NLHz8d1Ci5PqKmvkyrPG0cjhlwCg+th6UtEDoMhTcbA0vSh2NIlEeesjAtHpan4tfIjaiXLIVeeKUsz+OmlUNJokTUtpGtDOkiAkA9jUlqNMdXnk6Xc3XpWQgq1RNIXVx46X3pqiBNkuwiViX8kuPrR1Qvr/AFJOEhD/AI212pkspzTqOYxoQQt160CljLttyMRlItx8TQtGI4AvIqGtWgWcAmaSJrGwXvXOqZ52z5KEkjlB0vS3V1OquqkW2KQrGMb1tb/kzJdnyZsgmV7Otxe1VKD0aVVEC+K9+SWrVc3umxkF78X3obHPWC+J+AFl+lJspFS2OTLZXsV0pbz4Dzymwz9slhsKH6x96JFaFJVF2HrSHNWKtpCkD2UUM0Y1re7fk89N2lslnxmkIBG9OpdI5wmiWPDnEhQa22pr1rBq1ScMGZpICNdjqKyFYm0m7KBlRFQX2I1rOjXg9DPNpcAmNTfi117VztB6nqZR5MbMgnjmDxjeq6XTQ1Zq2iFDPyEltIPHbStWaaHe0614Rq4kqOujkXpN1B5F9S6NYzGVZiTfc0htyKq21AUkOMYm6sKFWtJbpayzgWgUwgXsR2o35JM+aoystsiGQOjEAHrT0k1yedukuSzHZMiAOWs53pPhi8OVIM2O4UMAT6ijrdFFrcAwtLHLcA2PetaTRucJyzR/bfjxIse4qd5obrXg5OryObWtprW0hIPpWr5M7J+LEjEk3+lPrtAt7Q2xLfHLGPG5FGtZN+525Y7FxZWXjoAddaG90ivDVVXPkdL8eVa4INAthHteyejx2IKsQB1NA9DzHrydEYhFh5ijTktxq0uTzRySRN7UOtq7sk+WWY0VlyzJyBmpIOcJABtcVTV1a4ZT0omoYxIJ2uRqh70Lsil6VqMlxscRtyPmKytnInbW1k4OwZEakKhsSLWNZeo7GjXL+R5Ls1nBtS14HtKrAkVYxc7DW1EmdSruyeSSJ1uDxIFFVNDNU0hUbIDcG5GlMZLmmUsnuAXHL0pdeAvZ0VVCGYodGusZW1ZpDRLjb98lzN7q6Egjep/9SylE2Qsnty3c3Bp6co1v+oR2bGSYC3lfoKyt4Cs+UjPk+NyeZ9vQf7RTfsUDs7Vnkz5MbIjYhiQadVoXe6fCH4cuZDozsUNL0qmU49UjSEqyxFSbnrSFWGbp4IpY8dQQVse9Ups86/ZoLHkRV3vQ3Ujcp6lMskrqPbNqGqSEexHlgRTzRvdxROqZFRdrSjQXOWSO3C5tvUzpDPRywleRAkmN7jTtTIRlnWiBu66Ab7iiPPtyxTSOJLEXHpRpcHKiTKIZoSRzFr9qXarKKtpjnZFa6eQPSgrMGXq2+RTuD/ZbWiSDVAFUvcKwXtWtmykA0k0bAFwQewokkyHdpsNJFbv96xo3OvVFUcCSIQPI0p2gP7JUAPhSgg8eK9bUS1QnXetFJxMZ42PFrjpWd5IK3lyygCP+8a96Fz8FKsw2eDjYDy6UKTMsrNSzqTMhsy8krHWQ8qSxn7aKf/Wg+svrk5BknjkG4GtbWrRl6QLCJckN/FMliqt8nePe5B61ki7WBaIjVTRdjEwJX4gNv0rkgnV2J51DjkDxB7UyrgpVEkLx4ByALNY9aK7MW0DfYiiluDe/eg7No8/TW17/AKDDwhiTXNM5yvBXGgdAU/HvSLOPJPbTjkXLiwuti3JgaxXckTta7/RM+LGPtT/sZTbRpB4+Ovt260NrmU1ip54p4iHibbcUDsn5JNLp8srWV5V5OwU21pSql4DxorOYFyycRyHlTUiq6hSKWUXOgNH1GerjyBPl8VsF/iirQ9LTGK8n/9bXhn4EAV+jWrJ5FU0jQErSKDp9aldYK8M03LI8mJ7HjrrT6WRW6Jio0c25aE+lE2Otoq1LI1lZLA7dqU2kzytNFbyIIYhlY+Q70YnKnZwZ2WvPxtY1TRjN6qqFfGZc8E/EaAms0orIm9VJ35Np8mUm5I4kVNWiPS1rVMR7fuggE37GjmCKV4MzLj4X01Bqijkx0cHUz0iAZgLetc85LMcLXfAcvywcXHGxrK4lW3rJL9sGLLgyIrOLG+ta6Or4E5Z9az8gvCgHh/FarDFMcnERhqRxUjeubDV0kdWPkgC6m+9dJC7SuQvZlNhWdkU5tJSzyxTRNyDadbVzaYKur2/QZYCxkuy9SayPwO/wNZUK8oz0vQJx5DqnZ8gCTI4jktwDvWwpGvqkA4XVgDy60aIby2IaTl4sSOtEkEqQg4mYN4EsaG3gqzXPI8sxA5g39aBIza6S4LsFiDa9xSdlJPnoWPxItSES+zb4J2x0dfJfvTFdoirZxCEhDEPA+PW9MmfJflWK8jFyXUa2IFC6JjFQB5pXPiune1EqpC7UrV8iitwOdwQaKfwTO34GyYYcBlPjQrSB1tI5CTCIuBr3rHqLe0uAhhqX1NjWPQYteRU0Txtfp3oq2TFaW5kUwilFtzRKUSuZAiXg5UNa52rLORN7tuCxGa/W9A0ehhRJHMjHkfUDcVtbpG7WUiEgYDiwsBRu4m2sIcsEBGluVL7WE0tazPeyGG+o2ArexZRnlxZ+VgPvXO6K87VTPe0trSLqOtd2/BPts3wh6TY6LotyO9LtSzJb97Iaucq6EBQe1B9IdMIQibMW9wNtjTK5HP12SSfKgSBiSBsaavXFf8/9dgcqRHAa9w3aipWB31QT2iVPIdaZLLsat14HY7Aax316GlaL8no5DDFK7HkPGh7I3vWkk2V8dERtr0NOpozzNdXexjNky4shQsQoOlqp6pmUwKsb5Qvot70u2ZXlglyzRi+RvEee99qS8oZ31u6hE/8A2aKfC+9M+qRdvXda8isvMDoQdCdRWOnB4vvU4hB4ExCLc6Gga4J8nFEjWikeSLgDpSLJJjYUc+RcuO7ABjYDrRq6Q2VVSdZHisV8l0rk0wv9nLOZWUVYHVR1raUlFu2UcgrmEjQgjqa55Hnukvk6Z2vYWPWu6BrOXAKZi8vMWIrXnxwNdeqKzIrx+Nx60jq0+SLSXyyMyESN1t0p1aHYY/0eXLl/FUGvetdF5ZdelaV5ZoYUkw/t496n1qgvUhuRfyEGQJOYPJD0rcLqI+S3WtVaSKCFnUpxYWO3SqLWjkTS8KPk5k4gtdAL9b11NC1JtSySSMRkOVB16UxORlZu+PB1s1+mvYVioPtlLGxBMmI8lN6TaVYro1SgibCVTbp2p9LkOurPQYS8gbEA99qK1yG3tQaUWHtxOg61NbQ8/T2XawbR8G5A6bG9ZMluCj+mOSEKS4O9Jtb4LsbdmxGQkWjNrTc2/B2raXB4e2p5RG1dZ8cm40drSxDSScyxGncUSSgeqpPgllKF9je25p9fBNardhftchZidNdKxsspFVAJjC/8d+XW9amE5fknlWYjUXNMqTatJB44QCzLrW2ELRvhFaPdSONuxpcEW+kyhscHMfXqaG1oMxtCHRQOlwrAilWsmegrqteRjKQLmx71yZDe3YS6szWUC3pRpwbCryxE8IUgtf1Io62MtZ+ThgW4KtpXdh6tHI1YWGx2oexzvLDaDn+RP0oVYe7RwichYjcbDcUxck9mwZGhmUWaxHTatSaEuj+RSgo2rXFF5F6X5gtxcriQCbD0pV6CZgukcMv5cgelISEbciVZFNmooYpSP448iEDQ0E2TKs62YiVUA6XG1qZVjodhcLTciCbqdqKyQ/CqTGMByuB9aWi35FyLGeVvyFHVsXq3ygY5kQ6ggdaJ1klcjvc/2EgUHX8i7VC957ai/es6h55yLexF/wDWiQ5rgF1jEYLeV+3auTcm2b68CeajQNbtTIJVVtgBiz3bUdDWwKs0nwPRFNwN6BsntdvgWmVJGCl9jsa50TFdOORgmY6jQ1nVG1okjj5CMvFrlhXdDHm2I/7D2j0PpWvKRV83BR/2cMyW2NLWDTAXrtiVdnU9b9b07rB6vrZKtRYlnKlFcADoaJpA6KqXKGxRTEr1B3NDZopwtWqTHT400R5WHA0ut00L972Ef//X3YVQAEsrX6V+gttnz1Lu7K47gWW1hsKVY9nCsIfGscy2NkalWbqzXpCFuBCQpHIdDRr+iDWzsxM2V7TcgAR1WjrnKNWDPckyE9xAL9RWw6uGU5UhEWaIjHzIsV0JFPpJJvNuUZloxJzjN/SqFMcgUTqzWhkR0HNf4qaya8FFrt+ADJxc8WPHpW9ZMwx/qWS51pUJX8tvtTc+GW2x4IF+PVwQxuelNtcuwvChEs2I8T+OvpTK2kDXSWLjM6Na2tE4E1hso/amVhzU3oOqG6pLwOXL8dTp1BoXQT9Yg58VjxJBBo+jFrBpNsriy1khuh8gKW6Qw6Zyhf7OQq31071vVDKY1VTv7MskZB1PWs6pMb9dVUdikC5Yk37UN0dS/HA8T5CxEf2300oOqbE9a9W2APfkvxIWw3onCBzrVeRJWUnyIbvR8AWspHxpKpuu3oKBtB1smw5GLAgk3G1DVA7eAsUusgBuAe9ZfwTLRVZe07RHQclNT9OxJvNmF7xlYcLgdR0rFSPI+mSp5PS4shQE7X1NdXRSU2ukhYx7bbHqaPudW/5F/wD+iNyBtRfyyS7TbOrIxX/JaxrI/AmsRwEZGj/HVN67rIy64ChzUAJ4EE0FsmLxybljRkRzAcV1Heh6OpUs+q5PNEzW5EAdq5WRNpoiV8WRWNrW3pn2KCa11XyDHAhHJxYjqKFXZNhZ2fYrji4nxbkDsKx2/J6SuclkMTgMtgOtcqygdVLOGVJlNjeuVWhPUnBWM329KZEjcqtjFyoVlUHY9qx0bQ90bskvBR7gZgUvY9KXH5KLJV5YvIx258hoKKl1BNo5sJMfkLqCD1NHJic2UHfYDkryB9BXd4K3brwc/T0Plb0rfsFPWZJJsYKpBbQ67U2t5FS7C45FMRjJuRtcUTXMjqVbrB0ScU6EVkcl9KfyMhmUfloLdKC9RtOChcl+BCg2tS3RSDTLt5M6fLmvYjaqK1QS9etVPySZMYmFyLX3ptXANklyR/qvG949LUztICvLKIFmLanX1oLQUrStVJdHhh1uVFz1pT0g8jf2uzhEWfG0S7i1GuSHavZIkxc0W4r00regqtIXJrYvyUaFS6+NKtk34NrRt8Gi3ykLXVRyB2pH0MZti6+S1G91AVAUWpTXUdRKqljcj4/3Yjsb0um8MffXsYMmFkQTEA8k30r0K6KyEVsu3J2PHdiDyKH1rrXSGLVIY0aKo05MNzQOzZHvo7DFySjrrbupoXSQVTmWUxokpJfc66UttrwOytDbOyY+MQD+LL2oVe0iNNLXZ6F0QgI5JbYGism1yen62bS5XktL+4AraW6mp0oKdmpIGM8bvYkgHSqUk0I9bFdm2cmKuoPHyPespwz1dKxUGPBSTcjXpW30gHPX4RJkfGtDJdNVpmevZDracjMdHW4HXauvAut+zCnkZGHuJcHS9dSsrgl9u3PApcmIEqTp0FE6M8z623Ao/IqpJQkHtRLL8lGPqvyy2HIWeAEi560m1OrLY/mEMjdlQ7/SlaKWXevT+WLyAzw3GhFFVxYJZqyIkhlB5MSfpTbNDqWXhAtNkobgXX1okkwL1qjjSySAeOvpRRAlUS5YQE1xfQetZwE7JcjxBy1t9xQTAL05ESwOdiTTa2I9bpCVx5Fbax70bsiS2qXAZkaNvLyvQxJLddnCGx5QeQKLLpQ2pCPRxyVHyUg2Xy09RS4N0vwNjZNjcqdqFpk0tBlrMVWwB6WoYFX88huwaMggEViUMdnSeTPyCsd7dP8AWn1clazcE65Ut7Db1o3VB0zVfPkek/KxBN+ooHU2PlhNEW30B6VyZPe6Qo4igkhQR60fcSrsWcRG11Fb3JbbM4MYgkK1r1vYFX55DPuxmxa4HWh4Z2lpYxZfcUhG8h1ND1g6lPlhqnE3Zzf+Kxsto/wglMXK296xya5mDgDJLoDxNa+UNzSq5HEFSDrY62FKK0pYCke6Q5sLaXo44IdtP6hDESFm4hgx7ULbI7XcwNECspt4kd6HvBtbcHFT29GF79a5uSjJyjkkS8Cb2Ncrcj0pUExQlOPPSmp8m6OKwTtEqXJu2mlqYnIhWaQqORdAAdO9a0efDk6ZJb+JsAa6EbZKql+R9g5BOhtS5J7WlnGQi1je29EmPpXxJPLAxJKk/SmKw+UuSZ8Zv7hvsa3sTO8smMUqNdCbUxMfmkPiymVhehdSt8IpadNHKaX1tS+p59025Kos+PRBf6UFs2UPN1XJa08ksVtAtI6pMl26pSz/0BTNmQgAE1+oOiJ/W9ZJIsxvkcpW2IHrSr5JlbrXwWp8pIG8l+4pLwQn6VPB7I+QM0dlazX0rKZwxy9RKssTFkSMLSU11XwT8N8HYcj9eS9ro3S9ZenZGZUbYrJmBkYA2VulFnXg7fNUbRKkiI+2nemNNnkttsuxsklbA6Gk2oU+rlPk5I926g1qR6lMoDjgeRTr061jskJtqm4AaLiRqb1vaSqnCTFS43uREjcUVbQxDfYz2xnWTU6U9WBeiTHrCHTixBttegmAHeRZhx7jx8hvWyymjsuRT4Y4kgCxo1YX3kRHHNA1r2XvRNph0sogezSjc8r0tFLS8I7FMTyBIUitaEWflD4iRfUkHsKFg9oRWiytCQAdNdaU2kzKw6wJDujk3INqOEzkvLGI6zJ5GxFC1Aiink5Csit4sWF711oDpZSNfjcW0ahQjezbBEz87HW1a6okvCZWt5CB0PelPgNtLkcsTKwIJPpS3YC+ppQgFdV0PSpbv9h1v2OPjhlPEW9K5aR5HJxVtkjQSICWHIU9XTIU+7JZFkGw07U6rRT1VUFHwMbBhY7UNpkmd3eUjv6/MaDbtXd4LcmqVBAGK/IDrrfWub7oh21tZmijQ5CXtY96ltNBel+qCOOvHXUUn7G2ec7vR8EckRjYhRdDVlHKPQxy68Ci5UBl5C24psSWKvAZdMmIgAhvWgh1Y6lOJZmWmhmIvYVTKsiV82gerF/Fhr3oWoKqpI4cVXswNiNNK7vB32QpKYnlgA1uPWlWSsS6Xd2Xfs4syeZ8rdKn+u1XwPpnZ+CGSPlcKQR0qlMfnRUXPkFVKyKQQCN7VrfBPfSbId7xV9Re+9B1lAtcnnliUnnbidjXKr+AqZtvjwRzxIswZbFWp1LNooa6tDBjwEWZdfSg7MdbRxCGLhoVPFtugFC9A89GyebGkReQJGu5oq3TcF9IrSRUkAkW6tZrbimVtArW4uKBXWzMOQ60drQQLV2EtjSBjY6USugq2S5Zwwcb73tW9hWmjs4FQZjxuVYXUaWrXSSOtYf7H5EceTDZBbrQ1bq+R7p0rL8mC0JxsgrYFfrTJlnluzdx8U/lwYeNF1Ls6deSz3UVQUOhoGhe7bUs2fj8xhEvLyQ1JpnIGX9I0lmlB8PxPc1O6r5PQ6peRUxuTzNj2oq/og0UuESTTBfyXQdadWpv1NEuRkRspMZsb0ytGvJtsXEs4GRkJ/u71zEXbtwvBTj5pj1K6Cl2zkLOknWy0aUi1gwvWrOEU/T05ZbFi48sKst0kUbikW0sn+ijPVuqYwPxSxJLDuKFjsaO/JG+Q/O21NVeC2mKqHxd1Ol7daxQjtLJuF8CQOLghiL9KN8o3PjkokWVozxbUbUqrSYd4siESPFIPd69aphNcCPHgdNMjxa2IHegpWGI0z7GPPk4/uaDXqRtVVauAq+vavLDURlQQwINczpb4QC5MuM+pshNZaqsinHIug+Ql2GqnqameSfJdaiSguhmjYEP17Ui9WuTKr4RLMjK54MQPpTK2kaqqiFPG7JenVcMl0sokWW4aa39KMVDY1T7qC+jDqaB8MKVAUKyKdGJF+lbaBH2Icygt1BoUyLW02J5eQbW3oaNCI5kmkgMgve1htTFaCjNKvPyLMToRYXG2lbI52+SiPIKixGnrQOoFlIwT8lBXbvWdTK0hSzhymUjkCVPau6GUy7Wk6k7nQLZD60LqX0oqobZChuBfuaH5Bs2xLwAvsbdxRq3ANrQzi/4jxGtE+SW9m/JQZGYDQcvSlxANkgkinO9vpWOyJL61mEcMDcjyP2ru5O7pMB0CKDexFanIVE2pAKJOPFbtRTA7x5ECF45R42o+yaM7TaCuJuTFJU+hvSrL5RbTjhM97cZIsQPSulmVbmWFyKiuiQ4lFsM0UkXlYGpr1aZRWepJkwK5JBv9KfS0E1uG2SKOEqldGpr5RFLtdFAyXVrsQwNB0TKOimEUJNGRxe9uhpTq/gorX4QYVwx42ZT3oZUDW0nAM2KxNyAo9KKlyfTRTwJMDKp0uKZ2Ed5MvI/xycjcC+9UV5EuvXk68ilfBvWsgVpVvyCJWZQWkt6Cuj9HZ0X4GpITsxrmh9uCpFRgeTWNqS2TXu24RPISGtuAKYkdXOBbQLJ5KbdxRK0FVXHImXHCrc6j0olaQbXdvBPHkoCYyth60fUKmTXkodlMYINrbGgg2/iRq5L+xYHlehdZZM696n/0V4+Sr8bafUV+pWqAlEDJGmjcGxZTrehUNDXRSd/YYt2B3vQtcFeWK7AvMOPh+XeuquRu6/nkCHPkiuZE5KT+VHaknlVpPgp/ZjJBQX+tL6lTp0QyaRGQEr5CsqoIfYmxmyzMshFhY7U5VIbZwyvCZib8rEdBQXRV67SNVY1lQH+7rU0wyi+krgn4ZEcrcSSp6UbaaMxqlZtjwXKkEWIoPkdo1AFplBJXxvc0XDEJpJi5EjkOg3GvSiTaEtckjQKrWY2PSm9htGwmTx7HvWJjW+BDe+osFuDRcHVooFtyKkuP5FEEojgdFILLcXA30oGje0wcZYeZZb3bpWqYEWbkJXkF0sQOhroQNo8FONkyr0uu2tKvRMZjVLkfcMCTYA0HgTpaPApoY42JHWjVmzqSlAPusjdh2FbEm9YDMkbkW3FDDQq6ck8zKJbk2HejXgm24sWY+VHw11tsaTejJrNvk0Y8lXT/Ha47VM8+eTa5z5GQTTHa+nSsvSqK11pUvRpBH+It1qSyTYqewgyJYhybelNVX8BUp1qBLjROl4217Gjro0+UBpZxyQfrhWs9yD2qhXnwbh54AGQIX8fxO96J07IPVP5GPLiSpe/kd6X1siXWVUKKSNFN3v2tS7J2ZAna7hHjJqODFh2pipC5L88VRJDUnJfiUNx1NC6fsZZcxIyWLlrcX7UNbQUJEUimM8lNj2p9XI9V4JpYVmYMxJPpTVaCa90nwHFDxNumwobXAeo5mKIQALjpQRIvSXUYqPPF5WUf1oJVXwOwVUhceFb8Ty70dtS3G/wLlPtG40t0o68mbNxJ1ZWYclH3rOqJM6JuQJhLbla4oqwP0hIdFjGWLU0u14YzG66wTZGMyAEjQakmmUvIPsacSUxiKwJNri5FLtJlHazFnK9lzY+Nc6dkejlg15HiX34tBe29JVetirRKtYFGFv9nGnqx5uun7EHGCSFr6Gmd5RLW8MaYZCgKbUPZTyc7J+SSfGkI5KNt6bW6Ds0lJJ+iWm1uO9H9kENt13HGMxJfUjah7SHfRusmfnYqSBmUi666UdXBK1E/kFML3oQysAy9KL7ID++UDPiyLDbS4re0h3vNReH8i8H+OQ8hfYVrzkdjnFTfTLSQjix22qbpBfsocHJshkYXufWurWRFsjy5QY8WsFPeu6QD05E5OPAfJHsTrR1s/kXvZ+CH33gY8yWSj6yT559nweWdZCTGxv2ousF9c+q5KDOOC31dRQdRGiejSQyH5fJXwUa0F8anq4enXwxsfy0hcs54sOhpbxUQVLFLx4Rb7kE4udXPQUlJ1MtPwJtMkjWLBdrU3hoGqUsJWZri1mHesgC9kiuP3hH5jxpNokzuuvB1ooZFIC8iO9crNE6lshmwwL8hoKctCzLx/gz8nCUryUA1RS4jbSSUY2QmyXWmOyZ2VqpeRrRMkd3XSl9uS/P+lwB+4FA6joBXOo1ZNjsXPDSAAEXpelOBtKQ+TUWaQrte9TqiQnWLMS0zglSt/tTlUlvVHeam11t3rUhdjgEa37V3LAlpMJJWTZgF9K11kkaGe6si3H5UMQB1EyDyF9qNHWUMB1sL7+lamMS4OArJHsQR0Fd4ZyUoTwDLY6Ed6OTXbrUYkbIltCKFsGj7IU7EaE/YVpfnnCOA3tZ7Hsa427hFOOU/F2v1oLoVWzfAwsm6m3e9YkI0mZZw8G0/rXE92URQgJyH49+tLtYkvvIxBxbegbkmTlnHuTY6H0rUEqS4EyMUYgrcd6YlJcs+YJHkjLXBMbDampMF1aGLFHORdzzFC7QDW39eAvbdWYNe4rpKquWwJSwsUGo3FbUodeDqtI62a1Y1AaiBuKIwSjLqexoNJ8nV0aCyEaIlkva21ZRz5E7ckwM7G4iJtpTeF8kuVapzIQxMq4LCwPS1Z9lRl96LwXY+DIyflrva1Ivqkw8d0w1inUjQEetD2TO01Q9RGdHvQOfgntdt8CZYiOXEm2+lHWw2lImTPyMcSxlCNelU1tAu/gzRjPqjAj1p3ZCaXTZOceZCRe/ajlD6NJDseSQMVYnT0oLQR6aTaEVxyBnTud70tqDqrrD/JRJApa5Nh6UKsM7f1IrgUVtdKKZNT4YaQJNGLb+lY7QHk4XJDl/Fsb6HTqKbXVDlczZEyMdSpN19abKYdodQIsyRBYm69q11FdElB//0uQ8YyhYch1r9QtyeX9jbUGlJNFLEOKhamSaZ7OWLiX5JZMMyDpat78npZtUr+yRoRBe4uNqoryeb7OzscAYaKCUPSiF0qqrkaYnKHgONqFPkLS668nlWYxlS+o3FdxIhNR4JJ1Nr7mjRDs5LPjP8jW2PUUrRwKz2hwa8Y9qQA6a1O+UUW0gvWIyIeNgaldofI3HmZJpUlja5Fx1NOq00btZfAasrqRYVjUM6q4Ip44x5JfTpTqNm9X5BGOJBqLj+tb2g5aKQf0ytxY8ehrfsk56h/rug5K1x2NZ3kG2khDCjkUFgLHesejRi2hQhQ+PEb+LHiaL7ZQH3QefE0PC/Ida5X/JtbTyyaZXU3ZiWHSmVYT5Y3HVJLbg+tDZwdbWOEVxwBmtzH2pVrkr15Kf0Fa4JUH660r7R/2y4J5sMC2lh3ptdAraRyT/AKyiTwPLvR9+ORP2OZYvJxSQCRfvW1uI204kCDGdDopK9jWO6ZLnp2Y5FZW5ICvcCtb45PQrbqpZZFK4A3K9elItVMQv6sNTLdJOIDWPSheaaPQrkq+SpGhZSWOvY0lp/BJe7twgjHFIv+Pcb62rOzXk6WlyI/BrHT703yFmo5FZOKsikgi1FTSDrszZI/aAB2G5FPTkj0btCEY87pOVUsQdr0bpwblRVfJauQ4bUcbUt1Qy/BZBle4fA+Q3FT2zjyKzpNpZWJEJuw8vWldX8Ho1q2+PAE0aOtwR9KKlmhmvChGe3INYIbDZqp4/J590l5ZwSOpsxsR3rIkS0UmaMrcgajel9HI2ub0cIk/acOVSxHYU7ooPTywVFyMx8jz34nqLVl6cG5KbSMyigF3XkD1oM0xfsJ2cLwZ4yRE1rnj9Nqp6SdnjCDbLsLhgwPQ0KoZpnIUGeI7Flup6ihvlI718oXA2fISWEhCTespSHyDfDtwZrZGWGtx2Nr07qj0csKURQEEqgl/MdKV4Kb3hcD8eV1Fr7fauvVMhteRxmlINjc9qFVRDqkkGvB1IZbOKFyiaXbhArNwcBtVrXWUFHUo5Ky+It1NKfHkRtaFySuoQlnF1v0oq8+CDKrbkGVlKEKnJDTUi90hc+TKzESNyyLZCNbU+stcitKtcv8CMZ/8AHyWxUnWtqhXqUnlgymQniBcX2pig9B0S8k82D5cl8Wou4OuxfF4lS/TTSlv9DLauzUFuQyNGDGSLDrSqeeS2+f8AMsRHjzy3DAaf3Gjdkib7a1CMKQG7jlbSh7O3gkd7aW4JJlYyMFBEbbXptfBas65zJ6LCDXK+LCsehJf2eRseHy0vYisdyz0vMsVNiey/Ikkna9dW8nr9n8eCiGBZlsbBt6Cz6gfbPB4rJCV4g3B1NcoYxvhNlCTyEanW96W6oHqmA+Y8UgLrdT1o60lEPtcPg18XMSWMWFxuaj0zaZudYQDywxOGTruKJJtQwqZ2mWPSKGeM8hv2pF7OrRTlbhwZmRge0bgkp9NquprJ5+mgKRSR2Ifkp1INa7Jk/fs4jgrOJFNEOa35VJbRpnv+vaKqDLyPhzG3hex20qqm8jlp8ERheJ9G8hT5TQt2llUORN/uP3pbojW0UkrIBc2P1oEoJ7OWcWNidL/WikmvpyPWBSPMb0LsIvt8I4I41exN1NbLaEO7TCGN5kxW41nf8md+vLCfEmFuQHHqaFaIF6rydGKFBuQy13eQ1o2IaLgfBdKYrT5GVUeRUkjLvHpRJfsX07PyJMxB0XStgvyy6jVXHkU2PFxrQ8oO92+DskKkA7n0rq2E3u+BaRlX00om5NraBgiDbn7Vkk+mkDI7qLEabA0LZ52mvyNjHEkK1xQMQn8HizKb3PrXQFAyPIVwAN6F0gfjn8sYVU/kNaxMe3+CebHjY/8AHqaZWz/Im9n+SJoJEdShK23tTVZMZlCgb5Ac2brQlSfykUERkBxqDuaXyHZuz4J5gLXT+lHV8lCpFeSfnZha/KmQcqyx4yDcBxQdBHsWlwgY8v8AXl/I8DvW2p2R5lq8/ovTMvax0PU70h5idKwy7GaM2Ia5qe6ZTi2kUPGGF7ilK0G+WQzc10tf+lU1hlNMoXJyOXmLBuDdq51gZHHIhmQMdDzB3piTILy2Syglhrrvam1ArQW0XK5K2Pet7GXv+CRWZZjfUdaKCKi/uRplNhwAAFaq/kqrn8sP3bLcnXvWdR6rKPHIuLbiu6hXrCCx8gIdBxFZasi86wWMyst78lNKSgqzpLkz8nF5ggKLGn1uFaEZUuAUfkuhpv2EO28H/9PLXO6cipHev1V1Fet6svlF+NlGXx/qaTasHspJGhDKYwvIXFJdJEaXkKeISX4ga61tLQefs0pAGLdN7EUXfkXS8qRbwS8LA6iiVkFpZdeQ44Da7DWsdib7p8Cp8fuNDXKxLpYzlLwT+JI10pqUi8q88mxD8nHInFm/yjuKRbGH+it5O5di/JSBhyFr9aRpgmiutFVcF07rIgcGx6ikUTTgDavAuJ8d05A2YdDRWVk4M9etmpAkhUgncHe1FWwelvgj1x5DqWU9N6f/ALIRVTYIZpDFb8vQ0P1nWy5gI5SkaoR9Nq5UGLKETmV1J4En0o+qfk5ZwcbMJA5AhhWrMC2UjsfLEhKg+XY0Fs4OrTmD0wRgCQARvbWurJ2z6onY8PxJb0tamLkRSnEs7HMrEgrxb0rHUylZZSkrlhcadxS3VFtUq8juBYWF2H/tQTAjS/5AN0IJFlvXTJBpf5GyspXx1B9KUyX2GcxUVmtqPSstaBWNupY2Kq625KegFK+5sbpsxkeESDYgL2NY9oKvVsqptjf+uhI0fypf/S/wbr7VrnIoEU8ZLGx3rraP4E12dSiODE5EXtSnpeA6Xt25CmwIGF9GFZT2LFLuzMzYooATxJX0q7G7sUrKzUmJlLI5bgLg6ir6QvJiyrWWyHHaVZeLIRajtDPMdk7+TREgk7X7GktQHo45ZTiWjbloDSbf0L9du9v0aYj90ciQT6VO7dT2qNLhC2iW4I06GiVhXsbdVIuSJDfg3kOlbWz+UeYqu75IcpeWraE1VRwVusIRDBIbqrXFHeyPQ9NKvnyKl5wOGUEGjrDR3sWlyV42U41dRZuo3pV6L4E5pN8DpXXTqh70uqKnSCaTEVlPFgQelNWgtMjmwJVAJ2ptdEbbVQegx3QWF2G+uldayYdNOIGxRE7EjuDQWsNysNfHEgFm8u1ArQO0uHHBoLjiR1FY7C/tB4hCRxub7mimSW1nDHCRGU6WPegaZFebHo5nvZtRWuqDzqq/5GcVcaD+aCYEaWjz5BacREKRYHc1jpJHqnZwGrmRuI1Qiu69SqlK5+QJcbhqG4jqKOt5DTnlkGXIsakMeSnS9OpWQHi7MwVklimKpcxk3AqpVUDqZrJQzQN78je/YUpsRtp2fB3JP+PkUNgd6xIy9f5k9HNEJLXIHrROrKc6PtJpxiBhYEMancoZ7Oz/ANUKfMELhbXHW1as5EZ+s25Ypi7uTe6tsKYuCuK5yH+qHQdCKB3gj33kmeN0bwJY9qYufIvKkuWdTLaJruAD611qSexhlPjwaCTQZERVgrG2lqndXVyU38dURCeOKTiUsQd6c1KAxysvkr/ZWQWXX0NJVIHa15CSNy1ytr1zYp6qvgXlQtwsFuKOliTRSuReNIg0uQdq3RFPrJvksCKdb3vSFwN0vLheAoJGgJu5selDpVWNy8MGbPnS6izqe9MrkmR6eunwZ0vyTxyf5EPE9qcs1A7H01PHgpw/lTayglT3pGmMs9FZpVgvb5CN0A6jcVL9cMOnrt8szJZVLHiutXUXAi9OQCWa2lu9EgLNJHgpA8dT61oM8SzySurEEG9a0QvljBNdhfbtWdTLKByjnaxsKB8E1rcnWnMDarde9Z17Cb1dmO/eLLYLdTQfUP8ApSR1J1O/j61zqHnSAZJY1/uuD1rUmM+tsjlcE2GopqH55dfJ6PHjcEkWPaudmjL7N8IMQAE7fas7C/sgZw0tbahkxvg77JNxbau7AW0gXKkcWtx9qKrbJruz5F3mLDhbj2Na4+SW/VPkOKQ2PIWINC0BnzyFLZl8SbitrwWdIUsCNpIzdRc3rWkwKLu/0VpPLIP8gH2pLql4KGqzCEZDi4sSLdKZRGXzg4s11YA69q11Opn2cCJJHIIKixoki/61WsAwPupNvSu0Qz1qnZGdVuovWV8jrKUcR+QuVsaJoltb8HXjVu4P9K5Mk1vBw4kxFgQR6132IhvqjscMytZtqx2TFLRNl8EUgFw1jSbWRVXRMshmnGjNcUi9UUYVQU/lqDrQ5uCzVQIMIbfxPem9hHYjlWSM2I5C+9Oq0yWynk54nUjWtEaX/B7rb+09KwnbgkliBc6W9aZVmZVhyxIfhpuL60cD2mVRxq5Flup1oG4Hd4cHpsNgL7CuWgF9JEG6XseQ7Ua5G5UnkKLImUFRYKelZaqZ6NKKteRha4uPy+tZBHo+zgzPkJn43tYg02tSfTDiT//Umb4mNvIflX6l9g3HWEDFjGKSxvpWtyjLbuTQjlQKAbUp1Ou3A12UoStzYbChRPZNnMeZCuxBrbVYqkvge83UC421paqI9pwPxfbcFG0NLvKIa6RwFNiLbx2NZXQ2flkMnxjE3Cg9abXZA00mwg4DKSSONv5pv2It+5I0Ma3sLyBLDrSLPk3GzuilZEYb8T1pTqyx+JG4/wAfG125XJ7UGmzQGXsRwj02HkxaoTatprV+TrXTXJOVmYa731FMlA1gU+Ohk8t/SjV3BnZu/AP60oaymwOxJre6Dvol5DfAyD1+4oVrUx61JpcGZT5tem10TMtqvhC44OMgJY3H2onbgXTRyVizi17W7UnwL2uEY4uPENdh965Ng8tck4AV/MaE696M6r6lsUYIBj27UmzjyFbT8jvZYNcggClO6Jdt4cjUEXHQfUmlNuSGXblk+Wre3yR9e1Mq18m6VissHBy7SWkFqXek+CLJO1+C2bKB8QfHpasrlB6d8eq5GwvFwuWsfWhsn+AqtxCCE0N7Bte96zpYdTJryTTZEkT3vdb06uashdsuRi5kcptyIb0ofqdStZQOEkx/FtB3pbqi3OlfkJ4TLHYkMTQVt1Y3W66wZs8EsR/EWA2qyt00eP7GhCIRJJe3EncUytoPPw/2knykaBiRqKdX+h96u9oFQ5x42ZOVM+o9L18OlI+TRw82RlHAFfrU+mS+S2iVKyyx8h72Iu29JWaPN3r3tAs5pF2K6Ci+odj68+BUsqzoCL+opla9WNtmkgIkKtyS46VtnPkZi5cnMkgr5n+a6i/AHsc8IkUqBYAsO9OYzKnWpQJU4Bd79KV15KGm0AmRGjFSpHYiidWxXRtwebIW5ALC/eu6mfVLJJpciOS4uy9zTapNDnlVMKPJlDAnbrQ2ohlKpOStJIzY63tvS3VoXZuz4OmZyPDS3WsVTNKqq58jCVdeJc8x3rPBNZTwRmfi9nH3p3UFU6hiax/xi9Z1/Iu1flhtLdgSLf8A6UKqKdZZPPkeQI1HWjrUy+ccsYuVItig8fWheafkz65cssjyDLHZiNd6S6QynOiZLLhcyVbVO9NrpAy+izRKPi4g1g1tetDf2H4PnfZ9y1rQUCCNJOJ1XvXd2w1Z9gpYf8LBQLE1tbclSU15Jsn4oyMxU6m21NrtB6uVlJmK0+PkFZL8Qafw0ZX+tBxzlYcdP/NCqld8utZZTC7lDa1gNKCx5emiY+LImWRfEFTSnVMkpVWuheZPMshKrpTKVUHrL1UmLVY8nHs68X/rWNutj1Ma9aQSezJC4KORTZTOd4Us0IUM1r6v9KTbgBXTZ0wSK92BUHtXJqBO+6RoY08SRL7jEjrSb1bfB51Ha8ND53xpI7xk0qnZOGXVycSyNcNLkk7053CrrHCPGGaNTwJI6V3ZMNNQEplFgy6etDCY6zSSQxY1k04jU71zcEqtNoI8347U2kOuwrctpPTs+q8EQxp4z4sTanuygzNqzKEMt/IW6XqZVkv0uqrgZxW9NXg8m1nawXthxvatmBN9BghTjYNtQyxdrtk7jg1zf7U1ciUmcL3PjXQK04OqbNY3tXC0+RlpLW3Wh4NqkwX5BTxa/oK1FFaygY8iXZrW+ldaqG5UUnXYHoSKFIov/KHIMYre4VvWsckemlmdU2ewKkE6G9c/AqqhnnmlibQLa+4rlVM61F5GtJzUNQpQbfwdKFiOgNZMCrWUo40CLfS57mt7CNdG+CSb3Y2vaw6GjUEekIbAzEqAB96FoPJJND5Yivr6ChraSjRy4QhGXUbHtTIGZ1hHAkrHxaulFOSVeWcluv5C7DetqZebvgQrMWJIsKJ+Cr180hczSMtoz5Vy8lf1qJsIRclDcjXvRuAa2XwVrIeHm1rDSl9eQdrSoQIm1sNu9FBBp/KKOd0GlzQQQaOUcGQqsQUN+9Y6Nkrq2/ISyAsbHWs6m1pzB39meNtNR61vRMvzxQ5MqVjqLUq1EellmkWRzxMg56EUp0afArWzt4OmRToP5roEWrC5AkW62okya/JHIVQ3P49acuSWyYt5gy3hub1qrHkbnh/7WIpZuMl2BB605VGfXyD+xGdbC1d1Ym6aKIclQBxNA6AVq/kqE3NdTag6wVZ5k8mKXvbVT1o1cvziqE+wqdSPU0faQNdXAQBDDUMKwUvIvMg5xXstr1tLcm6LiT//1bVta7DS1fpbAThcASRoxBVb1qYtcOWeWFDdeAB9a52NVnZxIAMy3UWv2ouGFaEuQ8ZZW1PiQaGzRHnolyNkSQAkbmgTTJtbdiU5Usb3CnTcimKiYNclJZH8m/Ac2vpt1pVsV8HWznwdGW35a2IrlmgssUhWRNdbxA8j3oq1/IzbOK8j/j+csYDniR0pekLwM9a1a1hFy46+23Ignpaku/IS0d00if3ZoG5R6LTOqtww1RJGnj5izxAE3b1qPTLqzc6dkT5MEl+Vr07O6CvCJxG5uQBem9kLo5ETSsDYrqOoplUbpSA4c2VRYihtkmLVJHnIEqaoBpvS1SGa6JIlMSNvoenWmy0ZkoIpVkjl2PGn1hoyy/qRqO9xso3vQtI1tSGoHO1+Q6mgbJtL/wBFEbtE4KNp1pVl28kuluzgrfJllXyPj6UlZqvg29ar/IgXDFQTxPemeEDxRcjzEhj8SSamd23BHto9HBmyQuZdCbmrc4SLfTyVHLGASXIJsRtWtofe3ewUGRGHCy3NzWWo44DpK8FrRQMbx6HtSFa3yUWbkVLFdSGo62Mu4QJDxLclbDtWymHhXtyMTKnJ8NRS7Zo9Ouda8sox8sggFfKl3yPN3vLgbkTrNGRazCl0z6s8/wBinBkSzNA3LoNaspn2A9T1XdkU0wywbWvVNa9T1VjWhOmP7cg5g+tMd5Evbngvh9lWADWB6Ui0s53bf6KZIJW8wSF6MKWrLwOq1Mk/sTAFRdr/ANxo+yLKutKc/Ir3Jcdv8huvoKOFbwR3cvgsxsqF1Nib9NKTpRod6+bhi51Vr3FxRVYTUE5ijIsHI/8AUUzswqy/g7+q+nb0rO42+qBMDrubX2vW9kKVvkG8fa7Dqa0ZSrZyXnMtl0NZXgfZJLkn9jIAIpvZCbXUQNxprMFk3HQUN68cC625LTIgYdBSUmJ1l2ONKiy3tcd61VbQao05AlMRI7da2qYjVOQbxhroa3n5J7tux03Js23cVw3iiOTYw4niSB0Nq5XJtbyCIyqjXka2ZCpN4QImmV/FL9gK3qmj060rX5KRkSMByHBj0pNqo8f3dE+EIGWvuM0m3Sgrl+Dyccm7No7O0EtmXc06qa8nprNrljMZsb22V2sSdAaG3aeDqWteUvyNnyFR7KFKjrWVrKPdz9bryzMyEeWUMnEA71RVwjc861t2ZLNgKwNls4piuI9r2G+BEDTRMU36WvWuGeZ2T4Ko2yjKLbDpQtKCn16UVpNARyMlzYE0mUi211Y6EK2uCb6XAoW5LMnCkGbB5HRrenrW10gRtrNo+DmHHkwyMH/HYGiu6tElN12cF0tpE4jU9DSFwK9h8QLigawDGitYd6zSQ+OGNYzzJIO1LtZyV0u7LgldjETx1XpTa8nWr1TKUmBUC+tJuoG+vn3aRBmTSpJyvpenYpNFHs0VfByDLlY+DWNbpVJCvWxTfI6fK5gcyOQ60jGkHoexXjgnTIDC2hbtTbrkHHPrX9jg7SKQF4mhShgbNQBxuDf8h2prJU+BRZ0f0o1yhDXIfueW9hWQa1yGFDGxNwayRDtyTywshPEm3S1MVpJ7PzIIlfZibfStgFVQ2J9R5Eg96FoNOCtERl01JpLcDqNvgQ2O5ft9KJWKFZVGCORQL7dqyUT66yeMUIYc1rZYq12oSOtFBccSCV6ViszrNz/gYyK8djoelYnDO0vwHEpVLMBxHU0LcsQryjvPiRxFdALXywlbk1iNfWhaJrOWJzIiyHlb0AoqMG64Ig7wuCNhTok3OsuSv3i5PE70vrBeqKZYDaSAkH1NEvByX9HeYB0OtZA+tflgsrsO571sjaVQpIJCbXv6VtrIozaQftOhtYDvWJozTTs4BEYYbEmtkFOEe/UVvzGld2E32jwLyIIk4lfGjrZsh1tazQKMdBe4rWJbB5gFvU9ayBDXkYk0bC4tcVnVjsc2PVklW1vIdaFqD0EoRTDjuyeIuaVayTHV0UAgFGtIbWOwrfPgBP8AAz9iJXHIG16Ho2ifbs7BvlQq+/iaxZuAL5tMnmnxeVnN1NMrWwp5Wkn97HDWjbTsKZD+RtcrTyJnV3J5DxO1qKrgLVqnjySmBFBAvbsaLsQKzZxGSM9qLyOyq7MbHkn3LA3oXXg9BU6mhjzSMLXAPak3qgE0zk8sd/8AIvKtrV/AFqNvgmk9gm8Z4f8ArRqfkY6teToa8RVrXro5FaOawf/W0ocbknlqK/SLXI67Twhc8K8baoR1FFWxU1FREZmvob269aO0HYpLlgy5BRttetaqyTe1yHFmBTfSxobUIupV70UiXvY96X1aN6wpAfFDRFlNar8gVtKIngkja+4NOVkxnZD4EmK6fYUFmhmdqpclP6zuALWYdaU7pE2uys4BhgyoZeJBN+tba9WjHtWvBtYuJMw8xoe1Q6a1+Cr1dqzwKycExX5XKnamZ7dhmuk8I9hwyRsGUXQ9K7W6aEZbKYRohoHHFrofpUjVl45Du2xMmICLr5ijrr+R2Kjlmfl4qkfiVPe1VZ6BWlmd7LciA/8ANVdjuyr8DEjdOjW79KFtMRbSSlAvEn8x6UthZyyfIVXU2Ur9aZTg69YQhEI0Y6Wo2xVbCXdo2BA8a2BGnHL8lEM6g+a3HpSnX8E9E548jhk3t7ZspNZ9f5KKZRywHzJEcFh423rHmmSaqbSdgypSD7ZFjuBWfUl5NwySUsqQc2BDEONxQtwNdptCAkx5XXkV369bUVbpFGfWqJpcaVWDC41vrTFdMy102WQTyg6AE70m9UPqle0HsnNBXySxrqZFNvXkVDMhYoyeLbE0dqvzJRVdFElkcAuOGn0pDt+Sff2I4Gq4Da7jvQNHnKW5PTPGw0Op6VtasasXexmyYskwYWvfpVHdI9n161zqZRwXgn0DKRv2qr7U0eP7PszaCnl4673oIERJ6acQsCyEi29aqyVPJvhBr8s3Dx/HtQPFSejn6qrSWUx56SAW0NtaW8oFWp2YM6GVf91+1FVwY6rwQxyHGms5uO1Oa7IZWU+DQEkTryUXpENHW8FGPjI9iRa/al3vBJXeXwdkxeH4sRWV0kK1vycbFMsYvuOtd9kMoysokl/QCyXJue1N+2Ua9+RphSw0CkUKsZa78gNENetErCk5ZNLEqvyUj6U2tuDLNyNTi4u9hQPgF6RyWLhI8YswIApL1hhLbgmk+OZTpbj2pi2Qp68kZxmjkIP4ncU7vKE/ZDkfZUUWPjS2xG2jgpuhQeVwaWpOrVvkVHjSczw1U0buo5KcrKvkoWIKSL+Q6Up2kXrq7uF4JclgbMUIPcUXg8/2HCE/rFoTx0+tMo4GepSKyyZ4yoNjdhTk5K3NuCNpJAw5qOF6YkehjnXNT8mxAsbaKND3qW0ostq2+TkmJZtLXHWircl9jbqc9idwQLV3ZI8+tqtyzIzMaaGcMo1609WTE7WUlUElxcr5elC0Nz58Fsbq4/EqR3pTUHoVUVNHHQvB4sCQdqmu4sFXTtX/AMgSQMrXYEf6UVbpk2+v4BWNyLg6VsonyhKWERe1iAbVwdKu9iOV5UY63vvamKGetTJJQDE017E3U1lkiqnWqg7KzIupB9DRVRNevd/oXDPc2JP2pWyPW9PLqpE5iuRZH+xpmTgzTPs+UZ0Szh7ltqffk3N1ryaSujqNPPrekRBlm7MNUjex0Vh1rFIGmkDvaI/uv3rUyPTT5HIEVTcgmhZPVuwqe5W/HQUVfIbqkpFLGtj2Gpo5EO8gggN4+NaLfHLGe54EHU1kCVWSd1kO34nvRqA0khYk4Ec7WPbSiiQOfgsgle/hYqdqTepVSKKWXBeYFxdqTMCr3ng40EjC4Sw71qsgeyXImSCUAH1o1ZGSmLfne62J60SDsc/deEr7iBh6Vn1z4JdqzEMqTMx2usijidutLebXgKmTXg4Xh2j0rYfyK2leQo5BfXr1oHUjry5GO2M3jbXuaxKw91tZwRSQLISANO9PVoGpKvk4mM6NaxI71zumMWksNoyV63vWJj14Oe2FOq10yH2dnCAdpFvxGnauUFtM0BHkMGBGho3UV17MfyaU66XpUQG4TFhv15QGNwfSmR2RHrZyWAQyi4O9J5QhsW+LCw4u+/aiV38C+7b8GbJj+1IwDEjpenq0iZbcCJVlYErqKYoH50S5ZJxljc7j0o+GV0SRZjZB5A3t0INBaonS8G1iTWOjfao9KmUcsqmjik8ra0itmuCi7gmlxCdQLinV0Jr6JcnXxeUIN107Vy05CpbspI3xgTZjenK4ztAj9ThJqNO1H3lC7awxxjtGNbW6UE8kOunYTJEbX9aKrOouBBxHuSouKZ3RZnZVPGErrbyFd2B00dnCHxSM3E8SLbmgshqaopkv/VWSPlc37Uj7IZtdJ5J3x49bJZqYrMy1mydkcaMgseo3o0wW0kf/19MO0UttSvSv0hqUR4Zwxs5WS3iATS6cFuqgQIADy5W9Ka7E1Ly+BGXGjdbn0o6Ni9p8kHC1wAQadIhcLkfjtdSjGx6UFgFaeBsL5cYPtnS/Whaq/JtFWIYU08zL/kOvoKxVXwdpSscArkFVuBa1a6g9eAT8rkot+HJTuRWfRUyvrVVezfI0fMvp4Gx6mlW9ZEWuM8ybvw3zKOODuOXaofY9X5SHetWODWyvYliN1IJGjVFl2qy/2E65md+pkxNeMhh9atWtbLklwjwCc3LRuJj8h3ovpo/kqWNW/IxPkZeYBTX0pb9dR5KNM61XktVEyUBIMbVM7Oj/ACIrdf5M7O+MIuRZqsx9lMXpYz7ZSHiF4jsaq/li6pN/k4GcmxHFvTathF1Uqo87SLo4BWuST8EmzlwgLwsv4he5vet5QHNVJyXERo7oRe9B9jnk8/bV2AjxyZAGGm2m1H3GZ3hoa+FNEGZfw6UP3JjNNlDOrhe/COett6D7ofBKtVHBI2N7F+BIudBT1efI9NqvI6NpOVyCb6XFC0jatLktjyGRbE6b60m1Ezb+IKkfGmUXdeR6GkRavwdnVv4ENjtHKGQ3XbTanK8rkvwrFpBnxQ7Dkfy1rqaQj0dLw0kIWBll43uOlN7qCHXb+oKblWF9KVEk17drScyCePLna+1bT/BVXPiYFI0baMSWFFZNFFJqipAiaruKU5YjfVwKn4SasNq2iaPIVW3JDPjXW8YGpqmt/wAlSULk62EsqC7a22rvsgvrpxwAfi0MR47iu+7kdp7MUDgwJI9bXUiutqmRV9mSr9cgLYcQaV3KqW8Nicn4xZATe56UVNoCvr+CZcF41IBb7U16JiNfY/mAoJpsZwNWHrWWqrInxrLLz8gr2sp5f0qdYwXv1+z/AEDFmPyIZt9hattmg3RLhDWlSQeS2I6ihVWvAiyg86xHZQW71ybMvIHE8iGtbpRSauGIljS1uIv6UdWwWmyGQMjW5WHpT1yZoo4KsLKjF1a59aVpRg5yUNONOAuetzQKn5Atm+JJsjJBbVbd6OmYF8ZZBlZZCmxCin1zNt6/ByH5OH2gHfkR0Fc8nPAymNuvA6H5RCbRX02FDbH8mfQ15G/9kqyL7mnQmgeXHBPvTrEFEmXBMvFW9aQsmnyedbF2tyBC6FCL8rHWmtM9L1c21BDlw/5OSsQD96fS3B6VM1VySTYhGzlr7UytjdL9nCQHu5UE43K22rYVkP161ZojOdwOhpP1pHn+yk2NjyAGLM9gKB0JarltI7M2HOFJOvcUv+kQew7ScjgxgoKXLCjVrfJV6yt1llEccbp5Hi3ahdmmWUu2j0cc0JJj2Nc2n5H1aiBjZMrDg1rgXNCs0uRWua8CDktGnlt2o+ksyuX8nDMSOQW6ntXdfgvyzVKyU8OcQ0sP60luGUZ+JJuBj+nrTZk6k2ZHlupQgg69q5W5PUx9eKyTwME1Db0d0HVtj3LsQQL0FEbq0iaQhX00Pa1UVJLoqgjWQBm0IpduAfu/A14RbQ+VZVir24PBpwpXethCHFgQ8itrWxIThIrjlUKNj3FKdSPa08BN7TAk2AruQKp1TAkxUkiJisWHUGiV4fIp2bXIlYjfXcaUbZv2Hmiddjp2rlZGJimx1dPIfai7QYrcBwxMhAjsBtY0NrfkDXb8mvjC5BPbpUd2Jpr2sNJIBs1rd6AdWkiynvAAnWinqPrCRPJhMDfYdabXVCrayyeTDRjYNe9MWgu122LXDkjlsDde1E9E0FfdK0DJo5FNwB9qBNMl2tLAIe4BbTsKNQHVJDIpF1LXNC0HnLcnZJOqXFq5V/Jrz+WDDnITaTQjvXWyfwdhk2xhm5apYgmhVfyVXqqrkdEsbC7nXsKCzYOdn8FAgjeJihF6S7tWUlNLN1ckT4tm8h9xVCvIKt1PLCVsBe19612Aeh2bEjkTQkMOprK6NCNtG+CbhxFrE9L02ZOT/kJJeN9NuprHUBVkRky8tRqwo6VD+ghbIRnsDwendRjzgMMZBZyD61kQc4JJ4TGxIFjfS1GnIi7ktwcia9m2NL0qg6WSN3HnjZLHeob0aY1TYXI5KlRtRJA/X+RUMlgynUGjshtOKsP2+QGl/pQzBNe4uchNWU/SiryT6JvwSzy2Gm3Sm1qdbKEcimiIsTr2rnVgpPwURNE2gGt+tA5RqkGWIK/JtAK1Wk5254AknCp4EAddK1VnyNWLaljMTNFrcrmh0zHZ14gpcq5BOx7UtcGaPqcaGEDVr9q7syO97XcI/9DRVyxFzp3r9JaAov6QUkio17/ehqpR3stj8dEkG9ye1BdtEtLxwcycZbbWtW0uL2uSyYN15JamLUk+ySKSCaNiQvLtTVZMOUNx8phZZV40NqfgLKsvg7O2p9o6etdVfkbtSOGehAmSzji19TXNwKrZJHnxnWNlRt9a7vPkHS81hmflDJiAv5Ke1NrDAdKwU/EGR5LMCp9DrStGgMdkrQj6mHNeOMIx5DrfevNvgm5Kt33RUjxzr/icpJ2pFk6eVKH+vl+SHOjzUIZ9bDeqcb0fCL1SnlE/uTSR+AtIvrTuqT/RJtD8jcHOzkcK1t9b60vbGjRNXojYMpcDmAb156pHgHX+nCJJWQS+akKaponHACz624BkxIpfwsfpvWrV18jb6dfJNL8UQbk+PY02vtIRb2BRw4o0J43+lb9rsyV62uRyOVU8Rxt3p9amLOKyw8bI5AE60u9SZMuadP1xypDo54D0T6QgIJeRPEWBrXSPIGVIHSxQzjiEJYdaxWdfkpt+2QmLIhcAAgfSn9q2FtqUOb/LHoPIaEVi4ZXWnBMq8WIKWI601vgt9anIyJ8hTYk8DtessqsqbrVF8ckWgYXI61Nar+CfbVjSI2bTT6UtSiBJu37IMyf2TdE5X0uapzr28s9DP03Z8k8mUsqi417CmVpDPU0ySSqhStIzbcQNzTHBJvpXNfssRlhUOrEjrekNO3B5Gt7XGDKhdWsL6bUP1tDMcHDF2LkKbIOgo/B1mk0h0OJISRbTvS7aoZXZI7JEkakMdRWVs34Bu7WUIifMRPFGu3a9PWc+R2fquOQ/30BAc2PrWfUWXyhKCiLIQ9iD2pdqMmv5BkkiYkC9+orVVkts22SZMdybdBpTqWPTxygnCOjBi1hR+R7uvJZDF7u2/elWtBJ9qkJsaQEAkm/UViuguyBN4n8jvsK3ygXN7wvB1pwZPIWFYq8B3rFuDzxgtdPxO9crcDFw5ZHPEqkk6Cn1ZJdu1iM5CwvexZab1lDKZOZHfth0DL40HSGMdIUsYAs0dy2tqHwxdXPJNkYIdALbUyugdrwiL/rOLeG/YU37BVvY+AmhZGDMCDWTIHfs+AMpzKmlww2NbVQFrmkpZNj5EqyWJ02Na0iRQnJq4sxic8vxO9qVesot9dcljSw6bgHe9KVWM3lBrjwTDxYg+lC7tCq3aUs9NhIJLFtLbmurpwK22drkWRCYmuo5A9adW0itWMjiRx5DX0oXaAHpChCJI2STrxvXdiG9uSyNeMN4W5HrQzL5PQwo7LkS2fLE13F/pR/WmWrFJcFMXy6GwYhfrSrYjc/WbZNlfKqJLqLjuKOmXAWvqww4cuDJhKtYEd661HVmVpFYOk8UtG//AMVi88j3Wa8oZj5csejeXrQXzTDVVEFYvOpudT0qe76lXq0UkGbiEJa5FZ6+kuT19eKwjNSGVW8TtVrckysqlMc0iEc7WrHVQTz2tIciiQXU6/zW04EbW+Acd3V+JH3o7qSSr5L+SEajWp0oDvNnAltH3sDRrwc+A/b1Fv5NcmSexqNWEgi4AoXYjtqVrDjlPNem9qS7OeA6XtbwSSRtESY9B0pytPkZWsJtiPdYaNsaZ1FKh5pIyujWrkmMumqno3UN43f/AErLIj0s/BRzifZfIbGlNMjtNnBxcoxMAb2rXnKLscfCKP2TKpsNtqX0g9L61SocEsi6MNO9daqZD2ljxKxuDse9KdQLQgHSG9za4ok2T3s14OhkJ0sR2oYYhJu0sVOE/tH1plJHdG2Syqu6nXYU1MZeQQHOnG3rReB1YqjzEJe/81nkxyz0YRtSt71zkbioPOBawXjWoO6/JxElQ3/tFc2mFWyRVBkBVKmk3pLKaVirHCaGUABrN60HVom1lI6eCbnfauUsn5YuRrEX1FFVBKkCWaPtp2vRqQXVu0Ec7A7AEinVLKYwhJSVjckBbUcoJuqEzYYY8ho3cUSuT30lgRqwsG3HWibEO454wyAEXIoJF2fbgmsUfUadKMKvkugd76G47Uq6PQzhDzIy6sDx60ESHH4OLkxRvsxQ9LVzo2iPdtF8EsLAFfGp71aPOtZ/JYMeGeM6i5FI+x1YzJt8mfk/DqyePTrVNPZGW1ipnp8c8bnXT1pz2TI/+iWPQIj6g370LbZzu2yqQCWMcN+opdeHyXUzhSyWTFZlIt9RTlcrq1BnhHx5blfHrTplC625KP3uGnE8T3oPrkHWgwZCuNDQ9ICyxhH/0WRCQ2PKw9a/TrBVsqqSsRhksdaXMEul+xOkksMg4kgDe1G0mgK1jyXLle4l21uKS6QI058CPeaNvG/HsaPrIjpCDadGX/2oOrEaJvgKMxyfkguNia5yhlH0UyUSfGCRLrZdKWt4Yf29mZE0WTjSEHUXqurVkFSqbFPmScuJFEqIffFScbJLQsCLEVnQm0pKaRlpnTw5Y4sQCaZ9aBzwVLKTei+UyLA8efWkPFF6xVmWwfNFCGeNlP0pN/XngrWMLhm/BPDnY1welta8m9Hlcdx0MnMwMqGXlEx497V6OW1bLkgs6zLJociWKb/I9yD2o71Vlwjydb9r8Lg3ceYSjQEN/utpUGlOpXSEMeDNJsCrr260C0zX6NtaifIp45UHIqUPptTFZW4mSd27coFsiyXZeQ613188C7VlcC0WOW6oWBP9tG26+QVFFDBOE9m5JyHS+9LfsL4ZDr7E+CQwCPTiAewp1HIONXB4lVFpABRuX4H2bfCDgCO4HPio2FLvbr8civs6OPkuWT2WuNR6VO6u/kxJ2csLIdJ1UgWYUWdOhfTDw2QyQTIxYOO9V1un8FeVVa0JEshMoJGj05cHqVoq1kXHksh4TA6UVqTyiHW0ePJoxnHnx+Ud7rUr7VtyKzTspZKZeDAgkW3vTusor9fFtywmkjm05b0tJo9fr0Uiv0k5WV9eopv2cEeu8eTkimJhyNwdLVyc+Dxd9He0hxGEtbYHvWOTs05g7+q5Y+0d+td9i+SxWVVDFGGaNyZjsa3umuDztd5f8lkHyAjcAAkGk3w7eQscXa3I+bLhlNmW5pdc3VHs5er/AEY2ckfuke3bsRVuNm6lmlIfkVGI+JDjUbXpjn4IdtW+EU4747gKG4kdBS7poRn2bFzT+3Ibk6nS9FWsoesW7DTkLJGTY36Gl9YZd0/kWJFKea6d6OOeCSz44EpNJFKPaPJSaN1TXJN1Scs2IJ3dLs2vao70SMq1d8IVkElzZeXrW08HoLJVJJI5m3NrdBT6tAWdUMiZ0S5NiOhrLJMSrdwTKspANr9q5Vgx16wA2KhuCwudlFErgO/wLOLII28QR2ou6k2t1BMkcsZIUW6WpjaYdIS5G85QwWTQUML4A0amEKknWNxcmw7VvWSK9G2dkyI2FwLjuK1Vgrrj1UsCXEjlW6GzdK5XaAvef8GVPDJFLZzodiKcnJJ/tfgfA0jqQp1G2lZZHr0ilefJfFH7sOv5L3pTcMl02lFWO/AdRbpS7KRWc2OzzsWva1ZWo/TNV5Z5T7qBSRfc1z4ZBdy4JWaSOXxaw60yE0Y6pPk9/wAmrMSDfahXkThT7NCMySY7nVjGdwKdCZ9HjkqIP3EYH29GPQ6muiDLV7cBLje9rIAtqBsrros1KHH4YlRwkJ9KxbQRae32ZOvx88U/HcHpTHomjqbLtBYMScH8aT3RRbVNnY1kBKMOJrLNeTc4bg9HKyyWJINT7f0oR7PrZ9VLL3DSRC12O9R0/m0D7NNSZs0bR+RSxr06NM8u9p8BRRe6p5LYd66zhg/YqKEcOOYm8HJ9KNWkktdt8izLxa5Ug96KBVaNsemTKTYDT6Ut1RT1VfI9Y2bfQetDMEumiPEMi3FjXeTzL27chLmBbApr1rHnIH1uz8lWLOJAQp//AImlaVgprFVBYEVltwBpDcfIHbs/JFk43L+wC1UUv+xqXRSTfrImoI9QRTO7ZJrs2caJSfG9vTQV3YmdhLhon5ctOgo1yHnWXJQjpNbblQNNHp5qORsa8TYjTvQPky2ksHRWI1160QjwUI5P91KaEXsMkQtHcC/e1DVwzq1lSQ3eN+RBA/in8Myq5HpkwMLE3NA6NDerFu687KbDe9EkDakPk8cgxkE+QPQCu6SLdZYxsqFh5J4nuKBZv8j/AKn8AKuOz+B36A0TbGVlOD0yoDca2rqtjOrtYmJlD3Fwp/im8QOVUmPjIv5WJ9KW0G7cwj0oXmLJ00rqvgTom7HI5o2UxyNxI2Fa6vygYb4QwNGwsD96GGE5jknkLI19CKYuQ8s/k4TG6g21rkmmHtaEdMPJe47V3bkm7cCHiYGwvamKwtvknKsH1Ym1FJJa0uEESUflbQ13kbHILsp6aelakNpnAyEgKTfj6GhsPybsUxyq6gHUmlOsDNLdahyQnjrY+lYrHk7aSAjSBSANK2ELzSY/HyJlNl6d6C9EW0qkoKjmMQA+h70n6l8CNap+CLImKtcm4706lBKxhkc8xYXVtu1PrSCquCSlj8ebkq62egvUfX+oKfeYOfcYEdKX1/AxqbNJE2RwcErrTKcGOnVE0iJJHZjYimpwzqqSdAVUgNoKJj8/DP/SekUTL1vX6a20S6auB6Dg9jqKF8mUfMjP10bVdzQ92hbu2yXjNFJYGw+lMlNAWheRwUyL5E3NBMCbWEPE6tuABRdhV7qqLMKNH0VuTDtU97skWjvaCtUkDWIIPrQyoPUxSmCfKx5GBNtR6Uyl0ihVRlzxvsR5DaqUxejJ1Tk3FlIv1WjkDNpOSTP+PZW5Jfku162t5Fa37WDxc3IijsRqBW2qmep6mKuh/wC/PLGNbUCopLtM6Uoa/wAF8hNEQrvyQ7ipfaxVl+zz89U3CN6WeN0uJCb/ANtQUo0/An2VC8Gc/AOWMYOu7GnpN/J4EO1oTKsb5Ca4CgAdqXf16/Jdnml5L/8AslAHOMhvQ1K/Wb8MHWjtwmUR5+JOvAni3Y0m3r3o5+BqxaUCJsJWbxam13jyhWl+vBHMpgHO1yNDY01W78Hn6WdvAj/spiOIUhe5pi9Wq5YyvrVqpfkYjJJbYN1NZaUA38HJMWIsSzcidtaz7n4SMvq1wiGSUQyEKAw6U6mbfLF0xcyylJRLELaN6VvSGeljnNeT0mRNjeb3KVqor8Isrn9j/nwci+TgmBHAg9662Dr8no4et0R5nxnXihs41rUrJi9lZLkTKsUy2c2fvTKyvBEk3yQpLl4TEKboTTnWt0WetimjsmbFMbEeXrtS1Vo9vP1uiPLLEjA8rD0olVwS+1o2y4ZWIGDG9z1pTzseL7Dve8I682NMeF+PY7msVbV5AeTq+pLHwSbizFhfSm2bgVa7q4NSOeNRYAVJajYqztZip5IpQQurUVKNeQ8/WbZmzHJEoHT0qusQeznjWrQ1ElYgm+9JtB6dLJDSnIEEcW6cq6vB5/ubTIuTFiY+V+R6rTFdkH2NC0xPbYsBtsa16SF61nax7IDOv4+QG5rKOD1LVSQCRze35nT0rW1Jz0SpwCYZV0DEqelH2QmkErpKp8SbjpTE0R6NWcDvjsjJLlT3670vWigb6/Wsm2Gci5WxNQwkUXsmxU8fJCVNnFMo+RV1KJUQmwfTsac3+DaWVVCONAitqdOhrlZkmujdoQxlQi4I0rEwrOEeAkEZ42Nc4kLNLrLAHS9gw61omzlnJhGx1Fz0NbWQrJySSRO4IsCKYmkdlVeWTPAVTx0+lMVhm2n88j8UyBTzPjQWggWk+D00Ecg1AN+tZ26gaX+us/JbiYmD7d9A6jp3qa2t2yavsaXGssHDxXXvW1n5KsqPrLFRIxFuJGu9G2VYQkFkYsbC1yTvWUu0M9jRsznhMUgYsQvanq0ktbRyNZoup/IUPIi/a9uCNWaPI/xk8O1qbHB6Pq5KjUljQiWOx1vrSk4ZfpbiES/rhJdQFHU03tKEX16s0saKAgqLMx1uanu2I+21nB4e8kluO3bau4aOUTB2SR+QYABhXJI36+1jv7jMPNQGHeh+uCumU+CefJT3LEXbpxrn4PV9b1uZ+DzKVs4XXoetLz8clm1uzheCyHLkCWKXIHSp/rXaTtUusHX/AMqarY/zT68M83RpVFIWibUcl6g063KIaf1Y67I2qC3oKxT8hWQr2yTqBbsd6OQatIJYmB8Rb0ArJAvpyGeSXJBH11rPJFreeEdZ0dBYf/NclB3SFAhowdba3o5MbjwFxZWDrp3NZIN7wX480pFidL6Gp71QdISLvcRls6i/cVP1afAGjb8EsvsXa99drU2vYm6OSCY8b2OnrVFUbTKWSyXdf8YudqcuPJ6Nc1WvIKSTwMCw0rWkwLNN8FsOdjyrZxZu9Itm14OrRpB+4uy623rIJ9f2MjMci2Pi3cUDlE9WOjaWNTxcn6igsk/KH0UoXI0UptLe/cUdU6+A3Xp4Ffqwhro1/Si7v5MV7TLOvEqm5GhrlZsTro2+DqOpbiB4+lY0HnSHyA8ChipuwO1ErFkwIaLgwJ8bUatJibkYHT+08mNC0V0q/kU6ZBcApf70VWoA2tWvBTFjkMCQAdqC1yf7u1uBkmMWsdrfYUFbh2uJlw0LBmtfvR10C7w5Qp4eGxvRq0hKbOAHPMba11SvVqlTqi2l71p51rSPiSQ6qbWoLNCO6bgJopiNTWKyAdqkTwy82BpqsidRLAeJrC4saJMqXgXJEQLde9EmUfAMMFjq1/Q1trBLXqoRbGqiwJ/ikWZBtq7OEHOBuO296yp1qkxWYAFTTVAedUlIaSlXBYb70LrKNmbcDxPGW7UHVgWq2zsgSVSLVylFGeZn5GM3Hw0p9bDreIJ4vcjk8ibUb5OpbngqWde2vc0t1HqsIN5Ymj0biRvQpNMzo2iSSaIDU6nrTUmNWbVZBjdSNL2PWtaFNwj/01PO8b2N1N6/UkpJb0hSWw5XJCN2pToDEhpkSK4LCy1jqgISGSzhluBc9aBUEaZyIOYBuCPSj+s5ZcSEZ1kF7W0oXWCTYHGZopVkW4BOtqCJRLh5k3YckFgQeQPcVNbM9WleZKeBcEi1u1KmB9YM3Lw7ttb1NVU14J9bdWZ8kHAWW/IdhT62kTROxBmvJ1JHpTqJFd8kkFhY8OQh8AG71mlmj0/St1qBL8bLGxEbE+lEtE1yI9r2U3DGYOJKJbSkgemlBfRRwefX20nFTejlSOMIhue9R2q2+TvYvayUgNGZdb3be5rpVSWVRHlkMFg+3cV3Xt4CzTfJSWhlUFfsb0ENFdasH3F6DyB3reodk0hq5kmtzZT/ADQPJCK5p2kgy3yF8omvr1NPzrX5OvjVLkT+w8i/5HAPpR9EvCJrJPwhWPnokvFvLWwNDfNsjdWmXSZCNoSAAKXXOB6y68iMhQdEI23ptP2N+vmWKikyYksx07ijdaspxqmoQ8xzy6e5yB1saXKR7tVTNRAlMdkbyUgde1Mdkya28FhWDiTERzFJTfyT/wBaOWSSzOGB0B7U6tUGspYPJ5Dbe+woXwj08c0mckwjJ+XiR2oaXKd91VCWx1i0Y3qhWk8bbV2PJCSwIN06CudhNLQzhWUSEx+Nq3iOTbNVbb8heTFS2/Wls8rS/a0lcUqI45k8dt6B1b8DqS7cDHngSS63APXpQqra5PUxwfaWT5mQ6NyBBBGlq3NKIPTr6ybkVj58ysOSXXvR2yTA0hcJmgkkOT1IYdDSmnU8rS02glyJWhJUEi3am1r2Bvk2ex8hZRq55djWXpBTjXpXwacEcbxkHTvfWprtpg/bIuTGUAgEmircy9nEHUjYL5rpXOy+BavPCM/LBjYMoNu9UZ8i70glM7FiU0Pc0zqNrkqrk08HMlkjAkI061Lrmk+BucNcFD8Sbgg0uozTgRI6qux0plVLEuj6yKvzAIN1pngTVJOThhe/iNK7sjrXUjYQ2qbGht+TO3EHGJB84r+tcv0wKqOZBmWEi4HGtq2NvItYZLnjYqetE7IxWS8gvG6r+IFutdKZFteRCcl1FmBohFOENnCPHf8AHiLkdL0uWJ9i0gYvDgQp1ooZR6Wba5GGRkAu2natiS26nhDYslr3U6dqG1Ds6cnsvJe+ikG1dnRFWmCIpmkeK/ID0605JJiHmmoRlNmSxzAEmw70/ojfpVXJWnyCsLqgDdaW8xqxflsqXOVgNLEbigeZT9XB6YCZeR2rq8E1uWTK0kEgZCbUxpNHV8yyr9yQHkHJvuKV9aGLJNzAQypDqwuD1rHVDs81PAmYSubKSFO96HsevllWilnooTH1PMfehf5GPR24KEkdiATb60vqbaEWRqZEIB670p8MVbRJcnhCY/xJvTU5PM10kJY1ZiJBrXN/gQ7xwgzGq7WNYnIu9meaDntoe9q5WgJ26oARyx21uvpRdkyK2iD4xOL2N/U1ktASzhihsDx1713ZmuzgB3SM+VivpRJNgKrbEvk8XIjQFaJUnyZplD5ZTFNHIgJPFt7Ut1aYyi4GLPbS3IHrQugxVg45TdTY+tapAtViJI1csNyB9r0acFFK9ZJpYJYx/wCvpTK2TN/2JJI5HaytxJ2BpqaQd+tfJ6OORGtMpt3Fc2n4EvZLwVCMFC0Ta9jS5/JM7O3kCPMeKULIbeta801wLVOTSgybvYtyB2qa9OB64Y+WCKXUHie9Lrdo61o5JngjjBIbkw7U1XbFWtayOxzq3jJqBtWOjXgUlzwMAUHxUWrB1FzyMcclFvE96BcFMTAh4xfzHIHrTFb8DE+eAQiRuOK6HrWzKDbbYOTMwbetpVQJ2pNpFw5zKbOt6K2U+AaZ/gpMqyqATYGldYLK5xBK91biDe1Nrybav5OojSHbWss4HZQmeaPuNL6kVqZLtpLF+2oY8bmikldnMs7j80Y3vrWWhkivyytcjj1+9KdJO6tipplc3A17mjrSBlcCdrHQgn1FMRQkA8agA2v9aJM29hbjidt6JAMQk0nuMpHj3reqAzok2x6t4kX/AJoWjruRuhUC9jQmvwgOYXQrcHS9bAKR5jGdgARXKRlaMJJXB6fasaLM6pAyOtjyufpWpGWq/gkdhy0JI9RTUZWkBNxZfFdawqpSfItY/cJABv61zcD6tLydOBIVvyAPQVyuibf2VHB5MfIS4tetdkyBaKx//9TTzcL3oiLWddq/SM9IZFo/5IIMaVN19Kc7pk9d0VjHLaXpbvBl9Ug2xJAtzoKFaIxaKJFvijhp5A0Sua78GbNeC5sbUbco8/ZuB+NmWsLeJ70H1mYY8mhFkuV8V06GhdEexnmkuWUwZcqHc3pV80xiqnwMkzzKLOmo60FcOvgmtgmyX3ZJJLIuvSndUlydXNK3IvJwZplIePXvaipql8j7Xr8EEGPk4kwuOS36U61lZHU2VS9pbTEFNDbepreDy/f1/twxpEbDyFrdqGqaAwp1U/I5ViKjiRYb1jbHWs/nyDyQtZBa3Wuh/Ivq3bk60kg8THyU96JVX5Lq5pfIAPiDYratZTRdayNjuwJRgWHSgt+yW1uzCXUgSi3e1Y+PAdWqrgOTEj4MU3PegWjnkRpo7mXkJGNxrVdGzK0aRi57GKZSl+IqiqkG+P8ASbKYcqFivuubdjWWq/gdy7KEHPkxwtdPND61iq35KHhaz5OQfIf5ByuUO4rbZ8DqZqrNvClgl/AG9Ra1aO+xu3I+SBZfEObigraAG+eRCYTRknl/NG9ZDy0kEwRN4ymx9K3s/KH0b8IUccowMRuBoK3tPksq4UsfZiuu4oFwTb6dpAeMOLMtwetGrQQaXjwTPiWN0Jt2FNWn5OV+tZYTLIqXte+l6FNMlvbtySh3Unx5L3NGlJNlTswJWUpq1u1MR7OeXWklmIqOgXlcHvSNG0V42krb4wlQRqp71NTXkr9j2lWsC1+NsSBcnt0p72PIW7tYgnizIJtNgdhT62rZDKUqnLGvI8qXLBW6g0CUDbpPkmZJA11A33FMTQGtlVFuFNk2IvpSda1A9bq5bKZZZlubE37UulUFukz2PkzyABvEdzXXzSAoq0r+ylYPeWysGpbv1EUtL5M7Kxfbba9UZ3kZZtsRDHkByP7D0o7tQVev1qUgWAu1gN6Wdrp8lapG0ZIa+mt6U20xPZ2JfZZHPHVewpvaRHZI6A6n/wAE13ApuWE0qBhca96xIJ1chFuTAcvE1kQNVUnILQhSOb8lPSuVpB005hI4HSJjcXWtabJnLZ53ic6XAbpWQ0I14EMIUI/9dhRKWKrW1nBnZfySLyAJ31H0p9MSlek4li8P5CAjkB5db0Vs2Veri4LF9udR5C56LQcoZe0KECBJC3iDa/Wt4YK/ZomT3VIJ8gKnVYKdY5Jkgm2ZLg9aa7InzsqrzyyX5D45pV8RqNrUeeg20JcmWqywniw1HeqJTDo55LYZbrfiNaU0Fa4YmaMEEaetdEi604BkyytlY3Q+lcqjPo+BL5KD8QT9K6C7PBk65uWr2QMR611kmVZ4Vryy+DOdlAkWxGppLzgY12fA6PIkeSyMR6UDrwE0qPkqj91twARQWhCqNNydSWWJtW0vtW9U0I0csNsxg2imtrnwR705G/siRVbY+lZ0gS6wkGs0TWt96Hq0C01DY0Sqp8ST6UPUmvNmBJNJfTY9K2tUDbNI4hve+laxMwhyonHe42sKW2waN2FSxAE3Fl3o62KH/Il40DaW1o02S3bdv8geCta1x3ovJbnVo80oV7XsK5KUHasMbHJGWF/IUNkxVZdg3YLew0JoUpHOoIe5s3WtgYl1FtFGx0uSKLszz9dG2eMIcFSxFq7tAm1ziY5U3U/zXO8nUuKyYV5eWpNHWwduPB6O1lCmxFcxlX4krCuyaPqOlJ4TGymcDS/3betbCFXskKZN+Gp/80af5ArWFydjyXUcWBHrWOhRlnPI5JgRcyXHaluv6Ka1/CO+6OJs1h3ruoLXWrZQsSsqnkG0pbtAFbTAjJxyykgXtR53C2twITGc9P5pjuhWVk2eeGdCDx0B/pWKyZ6TaSDtfX+a5cCL2lyMh8Tcb+tDbkTbSEVLdtCBY0l8EjskLlx+BuCtaryS63bcInkUnrTqsKlYFhFOhNFJRQB14n0ok5HnFDE+lc2C7JHSAPWuFvnlnJICy33+lcrDE5RDLjuGudKcrAdlIpW3F9fWiOqpCXKtZW3HWs6DOg0PzNjoOlZEA2hDo41A1INA2bnZsPiFOgvQyVKWzoRWOo36V0g2tzCFy44BuCdOlErm15sIMZ70Uljt1qUYwgIJIPLuaC8nmX3s5NCOCB0sd/SprXaZBpu3wjjYqjQHaiWjGYz8n//V+kZioOtwa+/iTydOSRtXt09KauCZpVO2t5KSCPShmRLc8lK3KeS8hQPyUV8CnV+Nht0o00a0kiDKxQ6NcjWiVzz9Lz4IGxwgBAJAqqti3H+ayW4zEILXvS7Isz/qEUo0rtYCxHWluEU2daD4IJfctKbBqXfRRwedp7Kq4XllMmOsbhoh9xSa3nyKbdrcjPcldCHUm1Z1SfBZnRRJFk4xaxjUoRrdqfW8eRW1kvJHIj+8vNwSNT9q6ZfB5Nrd9CqDg7cSRWWbRW78wN9vHAJbQbaUKdhlHZKRDvDDL4HkDtTFVtchUytax3IyGYj+0dbVtKQeprkqJBJIwj5X5L3Nc0TaXiozHmwtyfLqBSrVuI9al7MCfIg5EKbHtR0oyu2FnaCcZBZr8iRTegaokwJkVj/81tWBZcwZ2ekQ/wCTW9PpPwJ3q20kZjS4iObm4FOSZRlldclMc2C8fibNQtOSlq/U5zTZCDbtWwL6teQsT5ZseUXNhfahvl2QFMmnJt/9xj8BJGPI1J9D8Ma/Wtbn4KMf5SGcWP50q+LqNx9eXHwC8cs7aKR61qskVN0z5Yf6UqR6va3ahWibA+3v8Ezyzx6qSwPenqqYjSqgWcyZm4k6DoKJZoQ8615Ge4nDexG9DDJbzYTJltCmo5oaJZyBfKak65RfkFXQ0fSB3reuqptjhjrLDqAG6EUPaGVq/ZQgMZJ4XAccl6GivDQVNFVG5BM/tgA6X61BaikXo+/H7Jps3JSawA0O4ptc6tB19WqsDLkmbdQO9bSnUbpRJiBiyNqALb3pjuhX2KqAki43DEelqJMkvZ2YmPIkiayD7midUynPPrXkvGQZFHK1+wpHSArw4g9HKwktpxHetdeCK3+0Hf24la5JA68aF5tlWWTquw6X2ZI+UZv9d6CrafIzo7eTLnlnik/HTqaqqk0PeaqMV3ljN9j2oYhiW1ByORoXtckHcVrXYEb+2qsQTYGh+sltm22cbKhZgdx6Vyoznm0xq+3JsbdTQuUd8h+0oIubg1nY6122ekSHiSL3HWsTZl24k9BCkgK3uTXXvBKtY4J8mD228TqKOlpB6tvkkN30Jsad4PR9TJLlkObgKE9zqTTKXC9nVtcCIMWI3u2tr+lG7Aevo3wjkeSYpOJ8bf3VrrJnXnk1MfLeSMgsCL0i1EmLcJNmh74QC6izdRSOshWTf/k9+2C4Ut4nQV318BrJVcsOZEKFkY3HWhq3PIyHaW/gzM7Fb2zJx5A1RS/MDqU7LgxHyJYmHEWF6pSk22SSLIsxXXz6i9BasDccuz4ETiZ1FgStZV8l7rWlZZ2KMoLlvtW2Bpd28DGkkcFUXWgQ90S8hYyT+6PcGldZJoWtqp8FrkKfAeVKXg5p2csbjmZjctxPY0NkgXpVFqY7PoPy7ml9oItNkNbGYMOXbXtWK/BFrtNkGmMjG1r1juD9sHWw41HkOIGxFYtH8C7bP4B9uNWsh5drVstmKfkJo76E2ArFYVvpHBwBVBtqK6ZJHZsoxpEKEXB9KVdMp9SjYMvEkqRa9HUouuYIJ8chw1iU7CqK24Mr/smL9r0sDrY1vYenJ4sikcwLGugVpZtnVaFWuNr1zTOomiuNYnQkG59aS20w+zaYZhjkW6aOtYrNPky9m0RtK6OQ62tTlWfBDZRyGZUtcafWh6sU6tnllD6De1d1goyzBdGk0tt1ok4C1skcTGKqbNb1rncTW8jFl9oi68h3oXWSlJwE0yS+P4msVWgXTrywHQKCQbEbUScmVTuxbZB05JcHrWqpdXOEFGATdeveusb36rkoGOGiKnfpSu8MmenZQCiTR2DA2HWts0ynGIQUksg1UnWsrVAbKRC5Eqya39KY6JoHLJJlLzsQLeXpSa1Lb0QnnqTsL02CW7gIEdSCP60JLewxXAOl6Fom0sUWVgPE3pUsGssQ4IYjja1NRRWnMExNyRcL0po5LryMRCRY2YULYDuA4KnyFh2rU5FtwEFLRkroKyeQqKRYd1uAaOExsAGSPkA5rYfwJ6t2hEmTEOfJfxplHwUKvVijilm8T9qPud3TYtVlifz2rpTJb6S+C2P2ivKluSnNuOCqJY5IzY/xSrSmOrZqoD4pUo8cn1BrVf4YjTTxwVR4zSg2P2pVrwU5aJAyYTxi5GnetrqmTex7EnIcSNgeR3rLas8r72+EEsUiNZDe1Z2T8hZ+eSlBKRZv60Dj4LqNI//W+pmicjlx09K+8rZHk3aSI5fDy2Ipi5PPvNmCuSNritdAbVhGhBGWjBABB61Na6QyuiVR/wCuAupBFtqS9ZfAi2rfgjkxldiiJ6XNPpaOWzcqQ+TOyPj3SS3KxNV12TRTe/MC44THJZmNqa7SizK0MKTIOPKCmtD07LkX7CbcvwW4+SMhlMniRUtqdfB5ya7cFazxISpkuL0t0b+CqlLN+BolgI3360LrZFGk0rB3JTHaMkm+mlqCjtJLorW8GMyRyEjbpV1JqKwz68vyRMDFIbDrVC5HUq5llsDRSIQ+gpVpXgt9dOzIsjEkR+UTkx76U6uifkuUV5Y6OOZlIHbrQtpCNdk3ycvkKvtuCF7138+RNuqr+wUAiJa4seta+S30s3yxU8sN+fK5PU1tU/Be82uSdHa91bwprRHVJOWMQTBgVNwd70LgRe6nkZkYgmHkbsOlZW8GuxBJ8TG4Nxb1FNWodNiNvg5L2jkJHbai+1FFfZS8oQ+BnQPdRcd6NXTFvWtnJwvLfzjNybE1pl2vhmlhxnh42It1pN2NrrKgrxU8r3sfSl3Nrr1RrxTSBbKSbdKldUIv/b5HHJAsXU3pPT8F1M+OPAjIhklHKMgAa06lo4YjR1qpfwSPCVAZgb9SKcrHmaa9uTxhXhdZLk9DXK36DpPXwJkjYxkGjT5DcdREcbqbAniaNsDvHH5GRzxxniGJO1qF1bKs6OA/3uLa29Kz6xX09rDY85zJ4nQUu+fBd6/rrtyemyZfdVgfreszqogftRdkdOQpN2vrRKhHv+g/fAbRjb1rOoi1OTjssp3AJ61yUHWr1BmUKt21tW1Z15a4Ow5kfGwW9q61GdTNxyKkyQZb8NNtaJV4OrjFpGmWC1zYDsKBJlVq2fCATJZTaP8ADvXWrJTnkqrk9kZicCGNz2rqUB1xduSKP5NkbjxPGnvOSeuEMbJkyNqoFjtQ1qbrmhfuKZLPoaKOBVuHwEuSke4utc6yTWTbGJ8nAklh1FA8m0b9Fk+SlflICQCCTQPFnPByGflIPbtb+lD9Lk63r26ky/JIX5R3B2tTPq/IjD1v67M5PnZB2UV1c0V39eoCZeRb/iA7kUTovyMVKqvkZ/jmhZZAbttQ8p8E9V3lLwY0+HlRMWQ2XpeqFZMswpWlZZDkY+S17jkR1FMTQVupJH8hlYctmU8eoNa1JHvmn4PpMX5P9lF2A7VPbOChUrVJlPuKqgkHfeggRDu5KcfOTiwDXv0tS7Z8jOrhosjf3EIcaGkXUPgqwqlVmXl/HxuCIxqaqpp+SO9m3BDjYoEvAqb7a0274KsdOnDLjgupC8rAjalK6O027WSJnhEb2uSa53lHo+tmSTrko949KOjTQesTycjXKkkHNuNG4gnV6K3BdjpxNiSfU0poXrvLLI5YQbDRu5oHVkW12lLNWJgUDaN9Kmsjz7aTyVIElj2AIpLmrMq5Qh/FrbfSmLlGvjkcnEjyBI70DkGrli5oSCCmg9KKlvyHdwKJJGutERaWOqzAcSvjWNCfA+GKEAkCxPWl2sz0fVmGDL7Xex2vRVkZpMA7jxOneiMpX8iv12J11v1NF3NeiRz9BWsDYkGt+6Ce2/wdGBZG03NZ93JtdZUCxjMvXQUXeSpadahqrLe23pWNyBV+WxM633Gvc0dWR7M9FjowIIBPSsd2Lpo2EuOQL/iBppXO49aQv2da40X+awnspfIsyqrWdS1F1/BTlmzrxs48BZe1cnBW4qpYmWBowG1FGrSTXv25H4vFlIZr370u4313Ix8U2FtR2oVcZpqkjqRFBYqLHrXO0kb07cBe8V0sPrWdZKcsjhy7aHX61nQtpiIeVmfw2pirCAvRdgeEpYHl9RRSoNpHYZ7THXUUCY7TRC3iKdbg0atJFe0ggXIANjWtwS7aKpRxsNTc0qZIrW7D4gxAN9qBsqyZ6UOSbroetdWC6tUuSV0W+p/pTUxF2zie4D4kAeta4FppeQpDxW7msXPgy3K4Bgym48VQlT1NdbMf6+SrWW+TrxljyH8VqcGaWSOR4hdgDp6mutpAquyqE+H7elxbuaxaSbbRsmZRE+liDTE5FOZET8eew+lHUx0hnYJDwZSt9dK6yK8K/wAsdE1z4ix7UNkMTjljgXVhoCfWgfJHpaWXY8zAX4gX7VPeiNT4KjIjxkMvI+tT9WnwS6y1CIWSzaaDtT0+CdRUdGD0YXoWHnyxlrOCf4rPgsT54P/X+ud2EZA2r7hV5PFuv5JZIndCeNxTa2SE1SSIZMa2pB7WFMepFtr+CzEkZYuIeyjoaTes/BtHxyVwftE/4xyB60m3ReQs3WeT00WZyBsQaKlqFedKzJn5n7PIc1II61Xmq/BSsquxE3uSGxuLdTpT+EPu65qWUrgwyw+J/wAg3Jqa+7TPG9n23ZQLSGSM25XK6UdWmpN9SvyyiNXvroK5tHpK6Q0tjgC4pcWYnR2sGuRHoq6A96zo/kasnwmZubK0Tc1N1v0qnOsmWwjkQ+TE9u53pio0bXFuyJA8qOdyjG/pTITPVxzWaK48plU21WluhNt/QLfIskgITT61v1SK+iHMlS5CzgeVmttSnXqBTPveBRiLmxHL6Vzse7klVQIyMRB+fj6Gjzsd7OrShEgSNDYG49KfMnmXs0oZRGSyjidqBky/ryO4TONCQaGUiqapCS88DnkLr1ooTF2hDzKrC6Wa24oYBdW2KkfluNdgKJIOtJZn5OO0t1BselqbW0D60S8mcuP8hjSkrcimSmG9aVNTFzMoAFgCRuKVaiJprbwamNn3IbiVPWpr58Dcc+1i66zacrntUqlcnqatV/lAENCzA34mnLk8re8toWcghbFLr3ouhA6cHmeEqt1Oo6VyTK60aqhE5VUuDb0plfJzo+pJI0pe4N1ApiSDzzqnL/B2Lg4CjWT1rnwFLs4FZEDCW7Cw7itpaUU3aq+A4YQDdCaCzkfneFLLVhjmTW4YdaU26sHvJFPFOgI3AOlPrZMVaIOQyzXIKgjpfetskIUT+x37UJADjiw2oOjF2pZ+ApJ4pLKDcdaFJo9BY9UpIGMMMur2B9af5QpK3bwdORCX/wCS47XrEnAVqNPwMDYwFwSR2oHJTlSzOM7Oh4Eqt6FeSjqkuTvs8rFiL7nvWrgXpqKEAWTXf1ps8Hm20/ooifg9iv8A8UDRPe7dh0367gEeLAbUNZR10/JyPDjlFnktXO7Qhbx8Df8AqMXRuVyval/exGnuXs+Pge2BESCmh2FYtWNezXLGn4sSIQEsbfkaD74Y3/ohEi/ENGdfId70370xOW8uEdnw4hrci3Q11bsq31Y6HH5xEIRfpQWvDJK6dlBO0U8bfhyPemKyZVSEoka0ImhPMcWHSg7Qx3aawjPyMV0YMo061RW8ib2+SLKwMeZWvYue9ErMi00dnCITC+MxKMAAdqbMldruGja+PmbIhsRc1PooY3CyVZG/psoB5WB1rO5i0kojYRxG8ptbak35Z6eFW6+CSSeUm6NpbS1OSQtZJOWSSZMgcHdu9NVUJeUuRn7czuLta3aluqSLcsa9kx6DnqT660lIq10hFAihlhNjZ161stM8293ZMmdJAT1I2p0iqpHY0yJDbiBbvpWNpAX0rXn5KhHBYcl87a9qU2zy99rXZRjSlTwDDielBep1ePJZEkqtctxU9qTZobW6qil40sOVz60pWYq1nZiUsrGxNjRvkKigoLIFu3kB2pcOeDLt28EeRMqPcLZadWjZLfJzIK5Kk2JA9K55gUzbsVwFGPcHSlXTPVxfU5NDEpAJAI1tXUs2ZpLcfgWGjW99DTGmCk2eZmIBvoNq6BNuQBKSw3BreorryjqzMpNwT1rHVMfSgUzqycl6b1lFDgotnwIXIjA1JB9aY6MTZMGWQSCyG5Naqx5JdKfBIJp0lsBoab1TQdKVqN/alXRzYUP1pmuiCXIZm6EVjokZTNSF7IkOmvcVnaCh2hwetNGpAuFreGDZpo8XcxhWHIHvWQpE6QqwHCsKnyH2FDaWO9eQnnjRTxb7GuVGzb0bFDJJsQ1xRdDqZJDLh7cdTQeC/Ov5FSRlG8xtW1c+CqzjhEss5W9jYdqfWon6vk9FIXHINrtXWUHVGGWUi3Im1CkjNYSHwuzKwK7bUNkQOyciZWUMBa1akefrLYUc8Zup0rnRhUoPx5Cjfl49qC1ZH58GihV0ANrVK1DKG4SFS4RtyU6daKuxLfT5F/q8db9d6L7ZJ/skcMJJAAx5fWge0DntB2P4sBrXt6Vj9kGns8nHwnjbWxFctlYVpt2cIFkha3LQjtRJtBUlcnWhiZbE3FcrtFKbIp8SEahr2qiujF2s2Ty46kbgHpTFY2zBihBWx8fWtdijK0VCRAhtfkO9Y3JPa7bGXFtSKBir2K4PcZPGw7Um0fJ1Gmd/zhrsLj+KxuoGl6rwMFmFuNiKWSeQeUsbg8dD1NGkmiqlUihXVt7GltQP/SP/0PrApjtybxO9fcO0+D57bWeEGZ4Igf71Pag+u1v0KVLW/wAGfkzliTGNKozyjyAvXSfJB+xJC3muhO9OulHAveypXg2vj/k4UB5k26aV51/WtbwI9bO1nJrR5mPkR2X8uhqV4Wo+T3fW9VtcmZ8jjzsCQTptpV/r6VPUeVa1Mh4Y3jBcsHB+lW92vHg8P2N3ZT8CIZjG5DMSL6UKp2PPxo72kpadTqoIPWjVD1a5HVyXKXY6Dp1rnRSUYZduSOfIF7oSD2NOrX8jrYx5Dj+SfQP00oXijaY/I2VhNGdPEihShjHRGb+hyJ4yWFUfYbloqqWhkOPNC4SQ8kPU0NrJ+CfT2ZsPbFUHfxoFc5WgCXFi4mxufSiV2ZpdtA4uEznyFrHcb117wO9bZU8eTRjgMWqkkX2qa1pK6aO7k7lRe5qU16E1mVoD9hryZskDKRdR9qqVjxtdJZ3GYxzFd1rLciqc2gs9zkBYWtS4KbcIZLCs0PrQ1tDDzUqTGnhaGbxuL1XW0ofbh8jY0cj/ACbdbULf4MWi+BkuHCQHQkHuaFXfg7TV+RTKLEKQz9q2Tz9G7PkAQiRgWHA7G1F2garqsJFWP8bKzGz3G+tK01UHo+ttWnnyWDGaJxbVra2pPZNDb7O1pF5HvhjcfzR0iBOqUkt5QbMbqe1N4J8qK1oQL++CLi6HatrBVtaq4K4sVXt/tO/WlO8Et/YlwDLgBC3nbsK2ushd254J/wBYk8gNRuaZ2GYv5DeL3EHkL+tCnA2z7MANZfIgsNraVrQ2stHY5dbMSKyyDquqHOsDjxY8+1DWUTb2bJ2EobVeI21G9MUCKJLkROsYF237EVvY9D1sXZyRzvPIAFARfTSur5PVedaKX5J48ORm89V/mnSQW9lJjH+ORdVNq5WEvZtlOLBw/O3HvuaVfkqz144KYbKeMZ5L1JoHyA7R5DN0JJA19a1Et32cITM0kh8UtajrwLvRL5Ejm+9wwOwoxFI8jeLWN1IoQd9eBkUrwuG4+PU0FlJ5l7SzQxciCUsAd96nvVoyn8y2aMGPiMq8ibjrUt9LzwT29i9ixJMZVtf/AM0l1ux1K3algNixSPdDcnWiWrS5Ks/5cEmZhuinmgI7mn5ap+GbveVCJcWXHV1HIr9tKdetoA9WtpQ6ZS3/AAnkTQVceSzSseQYTIr2kWttDXAHdTCByVHOwsoIvrW0fBmtYcGPkewknr1IqusiVnaSbMjj5EgXJFHRso2q5gijzJMSQ2J49qN1TQ71/Xn/AAVR/LZT/wBgYHr2pbzRdn61E4koXJkB81DA9qT1k9JqtKwgZWRFYi63piJvrbIZsi/4HbqaYjfp/JyObryF6xob4RYmQGj10YdqDrDFtSpOxZUiNbU63onVMlskuCuPKVt7gmgdCXXhFAc6MwuOpoIPMvbmTpZCLrqayGK6vyzvNBqAAdqyGa5NDHeR0sPx6Ui6SZ3ZeChLkcS1KY9NVRzkYmAYcl71sdkLSbYDyyKbAeBrVVMpeaqifIRWX133ptWybflQSonO+lmG5pswFguqkbFI0Julzrregsp8lWNXdyx0s5kBLLYnrS6Ugq3qlwj0ZkK3AveicEaaYoyGNzyu19hRRKBVZcImky2BBVSNaYqA2xhSyyGcypdgRSbVhjsarydsQBYkmuGXcVgOOBJL8wL0NrteCD7ZfAjIwypV0OlMppPkx2iGxbqRsdelEmBHZnCwLAMt64LVxwh0MKsdFAoLWgCmkeR367qQVP8AFB3QylpYLiQXB1HaiUDHCFhdba2rZJq/3Y40ci6jUGtTR6VUkjxg5Jd1vfeu7QzHpxwJMca9Wt2o5bOpLGJKwHidB2pd0ehhnPk9J/kFwTyoFwWdZZG+Ozj/ANhVNbQTbaJKAI4MiNrlvEntROyYjPRLkeCwItQknsacj8dpgTpp10pd4PPeiUlPsrItyLGk9oJq2lyIaAqbhQNd6arDJHQcr2a1j6UFoDrZFqrxUFSDU7f5D004KkZ+OouD1pFkpJk1YQ6uNrEU2sBqqQpZihsTr2onSRbUjf2b6G9xQ/WULPqgipccgx+lYnAttAtDJbeiV0Mq1AtuaNqLijUMoSFMQwIB3o0B1JZ42tflr6Cm1ZrQiKduPG9iO9G6h0pFf2De7G29ayfRxwM81XyANBwyaznhDoMgCxAtagtQZRQh5nZyAu9JdUvJLvCfI6B3EvF0Jv1tS7JRwwMkneBs0TsCCDbpXVskelCXAhUIcA39aa7cA94g/9Hdy5QrbkjvX6HnU8u2MckyyPbiCSKY0g+qrXkFZJo28tVNY0mQNp24I/kMmO3ix+nrWOjIPco5HYeUhi4sxv0vR/XB6PoYPqX4uU8cmjX7ClaZpo9niiPosXOhmh4yWV9r14+vr2raV4JNbO9YRl/KwKoJU3B2q3CzaPK3yaUGM6xkXLWIq+kjPXzcHOXiba360cHo1rwegikcFResu0izB1rWAMjCcrfqD96KmiMvooJjC0YJvxWmdpM7cFOLMtrFrjtS71MzYEsjRt4KeJ61tVIOlI8i2nmJBGoG9F1RN0UyPSVrXYb9DQOoyzUD45I2BHEA9aBpoTDfEnIplWQjiReudeA8aOWWxSNxNhvSL1PRzqoCyHPDzFxQ5r8G7qVwY+XNxc8T41bSvBBfGHLI/cZtSSD3FNiBdUqKfkvhyLRAX5HvSXXkylHcYua4IG2mwoHRHr4+ukJyJpGN7DTod6ZSqRN7FU7CIMuzcWGh3o7UJ46o0sd4ShB1qayckydrcAPjxyyeNkPetV2kLtfrb8iZMWRDcOLDW9GrpnJy/A7GzjyCG1+pob5cHo5ZxDZoiUEgnUdxUzrwOibwhOSxa9tiKLPga8uYMSZsmGQ6llP9KtrDQxZKig8cpmFix41qoS7VT4Fx/JHHlsWNt615ShNcG7F6/LwTwlSSHFTvJ1Zfn6rgjedySYyb9qckOriqrkR+7GmskhVhuOlH1OWVmuENT5LAbTRm73oHRhfTfwMDCU3jPADtrWJR5F62VfPI9Y5EIYefrtWSmeda/wBloBkzJmHAgfU1yolyW09aq8nI4Y3Y8zf6UuzZ6lb/AF1KP1cWGPkVBXuTXJtuDyfY9m9k2dEELKSlih6Ci7P5IaWa8gfr8RZEv9a7v+SjNOzhsnkhnFy/49AoreyZ6efWq4FmCQHkoNvXQUaaJ9tUi3EiSQBWA5jtS7uCL7/gfJiruALnoaBXEaaNiTiyhSeOnoKPugcmmRTu0Y8kJFNSkVsp8Ae+sh009K3rArpB2HJSPlqQ1BarZJaXJdFnuygBqX9SRVh66SljxmC/FiSewofrL/rHw5Th7xmxHQml2zUcgKvaxSc/3oyk2/pSlj1coZpkkuCSNMdpCALEd6c3ZIkrZ0L4RDG/5BRtUt3Zon02ta5U8CyAFbW70pXjyPq+vL8gS/FxzcToTbU1tfZdRq2myZk5nwqp5HUX6Vbn7Uir7tvgizPio2YcDc0/Pb8lWmkNSSn4aexDJyB6kUz70VYbVglj+NMMv+TRd6N6SuBuXsN24LlWEoFRgO9qTzJRpdxyP/Rikj1NzSbaNMpxu+smbkfHrGxst6qpeRd9H5Z6PCjdR4i/0rXaCa3sN8DFxfb6aVnaTXrwdaGLU3sw61yZLa7YDtZN7n0okT6+AsfInce0bj1rLVS5Jkq1XPkf7TWvyIag7Au/AfB0XkxHHuaFtCr6ccFnxswL8Q/IUjVCMbf1yaMySH8FOvWkVsvk9Pqlyyf/ADXta5Hem8DM6puWefHeQedx6VlbpBb7JLg4MFStjf61v3Hn23b4EtGY2PFfuaYnI3Ovyw4Y5GPiLE0N7IuxaR2TnH+a8qysPwDq+3gWJCDp16UcA0okgihdOR39KyYZytxIiYOI7oAaOvnkS6dhCTShrXJP+0bUbqixVVFBX7soXVaV1QjSLcImXLYScTdb9aZ9fApZqpWsvOK172pTrDFWXZHFjL9gBXO0APRVPNFY6HSh7Emt+RiSRBwLi/WsdWHlSzakYSQ48yUPasjjwXpQ1wedSTZTcGtTOvy4M6R8rHlPVD3p6VbI3PKslCZLMPLbrQOkFLqnwhf7HDlxPjRdZBWc8AtkI4ANcqwWUxiBa35HgTWPktUUXJXELC507mlvyKtpCCkAN7WPrW1PPv5AWNSLE0TYu1+qOjHtsNKF3PK125PK7oeFtDWNJk/WXB1cix4tcdK3oVUp1QTOiDkSCKGGxV24GxTwMLbihdLHZ1a5HCSMfgKW6t+Tbp28hxzuDqxt2rHmgklVFBaMi9iTSoZ0NipIUkG1iNaZWzQVKyyaT3UH4/em1hjr8oGKaYA2awNbalRNapyPXMkUeXkKW8kxyzTHmWOVLjftS1V1ZQ6wpJyiBbkW+lNTYnNNk72P43FNQx1jyJkg1D8bkUauKvf8CmR9Sot6VqaI3/TFLI7KVa4tvRwkNrVJHF5DbWtNqKlz3x5VZrBb9KB5diDajtfgtj+UeUhkPj3of+dIvz9etOX5NTFlaa1jc9dal0qqhd1PIUsLq3K5A60NbpiH/VuD/9L6XOxTIngunevvcdI8idKpLkyXRoievpVqckGluzgT7z8wCCQaLqhaoqk+Woa5WwPrQeWeZr/djsEUjoLMS46AU5tI971IVUh37EsLDn4ih6pjNf6fBfi5tyLHkDSL5gpQXO6zoQN9rVOq9WJ0r2ZmHHPMqdqq7cA9lQKOCON1Gnresd2xf2WbSKQ8FzYcSOxpbTLcqWbEZE9rgL160dalTwbcGNn/ACEimwjv60/NI9Bego8mT/2eaGuiWIqjqmZX1aV8scvzmSGUTjSs+pEPtUr8Glj5cDjlY60u1WeZDbgpPKReIU2GxoPA5pUX7BUTRtyXSt4YGcNyw1yWRgXFwd6F0kfnnL4GD5BU/uO+1LecnqZ+u4OyfI3VuTaetDXOGOeEyZ2VnINeJNV0oeb7GLYlctJRYHj6UXWCL6pcCucyHR9PU1vB6eOSqvA4ZiKvIv5UvryWWq+slME0eUoIYchvXNdTybXjk5LC6jkBpes7Hnb6fJTj8ChuxDUFgsW4BfNSDJQvYrWfW2hN87PRQViSHJc8LAHpQQ6ovyy625JsmL9dxIylgOgplbSoKKVte3AqP5gxv4qwTsa62Uovp63Xlla/JGQDoPSk/UN+pVU/Ibok62DXNtq5N1ERLMaWGWKXYFSdr1YmmiG7XY88QbUrqPSumB1FL4FrZXslye1qxvg9LOv58BSJklr8/bFZXwbe1U5GN8FLkRci/InWl/bDCXtVS4RHF8a0UpDRXI7VR2TRA/bbt5HrM0D2HiCdRWRKIPasauK7SsCo5A732qfRQgvVSTllAxkLeaWNL7QilaO1uGEyhG8I7ihpyuWb7Wn7HrDAyWZBc9DQuzTIb6NqPgmbDmjuYSF9KatE/INWlXkbDDlKVLqCp3oL2rHBRjpWVBSuLD1PkelJ7sPXdvheBWTilR5fjvtTKaSTNz4Mt2mjk5QDj61UkmuQa0S5sUx5ilR7t2cdaW8/wKsnfhcIdHMWU3a47UDqNpVVqInhDAgEn0plbQIvwiFsOwJXfsKYrySq/bghlSUScWPEdqYoCaqnA6OGRho9iK52PSxa/Byad4xqTyHUVySZbbOUdgzWcAg+VZapuGK8jv28rcjShVEBv1Q1PkQCeR1oXkeRpRtuCyP5LHdhdh9KU8mjvqaZoRZ4jcBW8e1T3xkHVOYNTG+QjcgNpeotPXa8G5U5BzPYKM3K1tbVuPaYKa4OG4Myfi6/42tVtOPIvZfkCLIZGKk301vW2pKHYZTYizEuS3G96bnY9PPFVRFJzB0AX6U+p11LgrxnZgAL3qe9SvskoGyi35fxW0PP9m8+BcXEt4rRshTh8la4yuCLXb+lJd4Ces8E8vx0puLaelMrsgnqqolfD4EWBvTFpJDrs2LZH5XU2I6VqZP5YQyJNuNmHeu6oc6JgvkSL+UYcetb0X5MvReExC5kscodE4i+y1v1prkXTNLls+jxflZuMZZbqR2qDT11yVuqbTNFJIJDyGjdb6VLatlwZy7QhcsrEFG26EUda/IOlEkRs8oPh2609VXyb62CblksmaVYCUX705Z/gr+mWo8AL8jFG35cfSteTYdcbDZcxZAeL3B70Fc4HaYwvAj3wo0XketN6k16toognUizHiD/AG0u1RDfwg3ihN/KwoVZjlNULkiUKCn9BRK35FWbalhwxs411+tDa0AU0Xk9LiFrGw3+9ctIJtdfkbjYTMDY2I6Uu+yQqnsHJMcwyXbUHcVy07eBbu2+BcyRyGy3A7UdW15GKsOWIaP2WD8OQ2tTVbsVYp2tJxs0xHnxITqK1ZzwU3zjkpg+TjZvGwBHUUm+DEPNp8lUsUORHcML21FJrZ1ZVSpmPiNE5YEuO1VrSUHS3Ip4jy1ouxVmuRJj8xe+nStT4KLWhlMcrp0AHagdUR73NbFEM8YDjWpNJq+CZbOOBv8A1oYnja1B/wBEeRNvYhiHxBEQCoHrR/bJ5/sbs8ygW9KyvJPSrbJ5ELsCOlOrwUUqkyeeGQMLDem1shu1kg0iuNVFzQO5M9O3HwF7DkHiOJru6HKySGxQzAgnUUDvVi1omyj2RoehpNtBe25djrGosW0qW9m/gyl2+BphUryjF6FXacMtyrFZZPNjXXY/en005NblGeceVWtpaqlomDVpHTjygE3uK5XRVRqD1iEO4Nd8jl/SgnJyL2Y+PamJIdFaI6Ea1dJFpeTvPw/Ii29Y0R6Pg54GzIRy63rlPyZnR/JLMsrhrDWnVhD+qSZOQR+Rswo5Bs+BUkEUhUuQb13ZomteIgdDjJH+J0obaM22zS5NDGLRuCuo2sKmvDXIuunMs1FVuHJ9u1Str4PQ9Ws8o//T+wKlWszeJGlfbJyuCbS02MvOiVXuNj1q3K0onvSOTOmhBS/uG++lUK36J7OV4MsycTYkn60yIRJZdUbOCY2jBQ8SO1IvJb6ktch5GN7iE6N6mureC1tQQ8GgkGug6CnTKFpt2gcnyEym4U8aB5JlFcV5F5HyDuNPEiirkkK19dLyLMzy8S9x60XWB2WaUP5BXKTHkuDb1JrHWUWZ5Wsw3+SgyV8W19KndWnB62Hq9F2sD+q25fwPUim1fAjbdN8EeVie2Q6lmQ7kU+lpPP3vBNPiI0RcSH6GjVjztdHZcID4yez+08lwTppWWRHlfr8Gz7kkTeJLClQmMuuz5GjJd9AmtD0geskl5DRGfRhrQ2cFvrVUnJPi5jqia0tar5PV+xeBP6MgB9xTR1shfse0q1hBDChkiICeXrTO7TPI+x2XkxMrHeCfQ8aoVpQ/DGbC5OcpPJ7drUKPWv1p4Q6LAjljA1J73rJhkft+90oUYOFJjy2W5W9DbRM+Xftu1oNT3E/FxpSYYLTtYEJe4UWvRyejklSvImbEiJVit2HWtV2Ivo25H4skUM45Ei/Sgum0bW1raJIulmgZrDyB/pUyTPoKYuqIMrHQnTY0/O46ygSpiisH2pnkVNrPg7HlhWb29BbrQ2rIzPKJkhzMyUNq4UfSn0qibXBL4Fw5gvb3S1621Q6Z9V4NKA40wvysw3pNk0d9jHmHGCaAyEnrQpsj9jWzUeC7FVdQotpYCkaG0vLgiz4MjkWUad6dldGvOtefkystJmXYXHWqKtEfsRElHxWa8bBXXTbSg1pKB9blmqvyX+SyJe/U1M8pR6VcOvLZS+QkkZLeJ9KXWkEulezbJi1kBQsfU0355OypKliWkyrEBzY0aSDdK/g9jvMp8pnb0Ndaq/BnZLwkXpllU1W/rSHnJPdSh0uRHILBiSRtSqVaZZbLrUknwXkjNja21qfXVJkel1EEEfuxSceP1Jp7hoRTlwMaV+R4jTvWJFrol5BaWRo7A2Yb1vVSS3qmiVMqZW3vrsaPohOWKbI86eRpOQtftTKVUFF/XXYHHzJWNnA17V1ql3rZKSiU8x2HU0FSvdqqAx4Qv4m5JorMkpo4gZKWQgkHjWIR7FvwcJjN2A+tbySc8sLlC1ipsRvWchuVyyzFlUkAub0myJXd2saMXNWBRiRSbQ/JR2Sg1XxppIeSm4trevOWiVoZ7CvVUMmWJ45ipb7V6NbJqTzbc38AW87k71z8Fua68lQw/chBDX9KR9kWHfbNSObFYGxF6oreRbtHIzGhj/3WI6Vl7MXXZtjngUgi1ydqCthOt5JGjdHttbYCnJpkbcuB0WRKG1U270FqIYkkyr3GcErSeqQvVoTMshG1qOrRLC8kMsbRPzA5DqKfVyAlLAkCygMo4nrY0S4Ko6qQPbZVuSWB9K6ZEVfbklneWO4Aup7CmJJhWzUcmh8ZOGTiz2YdDSNUL+3iDfwoRIo5gm/WvP1vHgd6+0HchvaPFVrKLtyymuDvabETNkOTxFrVQkkXVpSi5+BZw2chWG+5o/shArRdkRzfDcZDpyFMpvKG39iHAS4QCX2tW/ZyJtu7HDExFkNzW9vyJs58k3KWOWzfe9M4aBhTBak6sovr3pLrAzRh+5a638TQwI04R2FyjWW5rLKfJE2VidLjnprUt0/g8/2dOYRdjSxglkAIOmtS3q/knzmZZWP15dOK8+1Ji1fngrzq2R5WMgfRQpqvPRtD7VcpCDAWPE2NO7wejnFVBHl/GOoJ5XU9KfnumHfSVCM7iI5RewAFu1UeUKrLuW4+TiqSV3tSNKWPRwpez/QuXJN7K2h2oq1HLCBPvEn/AFouo6tI5D4iRSQSGFd4J73mWBJGwA6mjTIt7yijCeQNYniB0pWqRMtEuEaUeQ415WqW2aAheQcqZnXfWtzokJvjPLJEmI/IXB6050MqhgbkbrtQvg6zVRkyKYb63HUUurcibzZEYeRDcX40/qmZnRDVmm270FqozV1SKcd3Ub8vSkWSZPRyNeSUqCwsvYUFaL4N6L4AEpv4mwOmtN6fk9HHJVUsqxzNbwNyN6Tp1+RlrqIZVDM/4yC5qa9F5RPKfCBmEPI3Q3oqdo8mXTQQgjki8fFh0rHo6vkrw/15I3xmUkAa+oqlaplVHCFSRbXQE0dbfsXtf9iHjsT4XFNVv2T+WSSgnTYdtqdUx1SFxqUN1NzRNyZVyFJPKDZtvTasVUHeqQqR42Um2veiSYi1WSSz491AfyHS1H1sT3pbgM5C3GpWs6HPN2tAA+SaOXiGJFa8UwrYTaDc+PzGlQK1heot8o8Hueuq0rB//9T6hfdc8X0HRq+7cLwA7Vr/AJOZGGWhZGa46GtprzKJ9LzVmHlRSwr+N125VfSyYutIrLMjLjeRTwtcbU9Ed6r5G/DZGQh4lLW60OiTQeGlUvJ9HHwePya/pUTlMrq5XBLMsSyaXv8ASm1bgKtG2IlxjJfi9jvbaiV4PRyqp8GLnrmwSAjyHWwqnNpoLXKtrIlHyGQdCbelbZJFvr+pU8YJZzyeQgetLXJfbSma4RXiRQY4uH5kbi2la0edb2b6cfBcmQ8niBvsDtQdQLpUXJQivfi4B9KyTxfZ27WhC2+PimR1XxfoL1v2NC87RVpnzfyGFPiyciTvpaqK2TE0XZ8IKP5ae3Fr6bGi6I9SvrplKfL3F+XkKF0QVfW7PwUxfNxK1ybN33pVs5PQp6zRp4/zUw4sNUNTvBMHWlao1o8uHJUg2BpDzdDzLVm0GVle5FK1nunb0qmrTRVj66TlokkKFuXtc77lqYilV5mTi4wlF1AU9gKLtBFv7CSk87jDKF/xNBb+vB8/7V7aNQPhy4Zn5R6ClrNryT4YvvydQu0liOQNMcIsUVZYsTcfEWIpTsM7T5ETSW8W39KNIKuLs4IJWR5gTfQ074PUwx62TLYpkGin+amdT1HLlsuiXGmSz/l3pTmvgj22s+ENHxeHIbE8jQ22skDTeycEUuAsLEBfGnV07D1d1UsVlYGPLDysAR1NHS7TgRtq+sk8ODjOllQFx1FMtdoipvZqWw/0JksRFxHfpWfYn8jLbpLyUoECf5Cbr2oH+iVXd/A2DMCyiwv9aG+coorTq+TScRzoPLfpUlZqw9H8mTnY0SEhkv61Znds83bta0IyzFEJNTYCqJ4LfXq6F0UsQsAb/U0p1Y7W1n5LYRCyne5G96TaUBm3bgBCVutiwO1a+eRnhQGrkEgqOwFc0TWYMrAbLXVNrk24JJZZG0ZuK32FMSPQplWiHJKijxN2FD1F7Wd2EubkC5N1HrXPNEf1oW8qyuGay260SrCBdVm5XkoSO6jjxZTS2xfeXyJcKj66GjXIMN2IMlHDkj8adVluWKpySyRgjlxv6UaYM93IgRsrhgCAOlE3JVRqpWrqyAH+tLgyzdhJl9qQW29KOJFusFBmDoeeo6UHUmup8EvvnZRoN7UcG1z61l+Q0MfezHuaxyTXbbg5FkBZLEnSudRaUM18T5BuNhsNanvkjVXhtn1Pw+bHPFwYamvG9zF1coq9e8qCf5bDBk5Bbg9RTPT3msFl8+rkzeJClVG3erpBfK5GRSOE34260u1VI6kKg5uEsemrChU1ZPo5QmJSjk8RY6U2zlEj06yW2j4XJvbtU8uQJbJpVxyQetNq7CrdkeXHx3cEOb9qx3skBps0yj2BG2ikjvSnpJJps2xzLGU0NrdDS03I3Oju4MvKxDJc3CjvVtNILUlRGZLDHADqxPcVQrOwmztfgQMpgeLMwU7XpnQN0VEU36GzqelqTYh2t2cICEx8n4ixvWciKTyi7G+UkgPF28elL0wTR7X/AM/1OzKJc0ZQskh5dAKnpTqz6G+KouRUc+WgI9skg7mqXSr+Tx9WrfJWuXMxBdQtu29IeaXgJUrXlBTTFQrcbg9TWUrIreviPk7GYZrgAX6iutNQK8cE+TjlCHXYUzO88HW/IiSMsQ3CmJwC2pk9+lz1UlfSu+yDnslyF7BjIvrWd5IttnZj4ow5HHQUi148kdteeQXikDWvf1rFZeSVtTLO4nuxyBSCRe5oNGmL+zmDbx5Y3sGSzdxvUd6teGejinPkdJFA5UtcEd6Wr2Q692mmeeFUB0BXvRV0bHUTfIl442Q8dfQ0xWafI9JtGVlfHY8zEkDlV2ezSG5Jq3BlHGbHkKj8dqq79kepn/KGuiOlyALUCcMZZwpOxwAp4207VrtDJNNuBkaOpI4271jaJLaJDjCjR35ajoKX3ckN9G0IUrFMDa460blonU9i0GKTYlb0mGiyqAliZTexYd6KtpCu5ZKGQP5HbpTHJJezr4KUZW/HSkW48kl7fkujxw0fINcEa0h68jMr9iKbBlW5VrrfaqK7IPskiU+8j2tpROLEN2rWHY2SQxU6a9aXpUBuDWSCGWMEsT9Kl+y1X4LMbcScl+GLDlE5+lbX3UuGi37kyWOLJhkIcNe/SnWvWy4I7bJsvUciCwYEdalbj8BvRV5KZcWUoChv9aTXas8hSrci09yM+a69xTLRbwyvP8Ib76to66d6V9ceA9YopGjEikW4tSvvdWQLZ2ZLP8c4uVFU5+0vkcrpckU3x7G+lqqp7CAekshfBkRxYafSqVsmjfsSDbC5DW4rFtAS0lkE2C+oFwtUV1QTuqrklOAOYspv1Nb90kFtneyES4zI/LUi/WnVtJZR/JLmwTr/AJY7W60yjRQ6qOzNH4iZpFAbR70jZI2m08I//9XTT5+O/FhqO9foz9UXr67L4Pn8R1VW67ip7epaZQt+taEMkycOaKwAs3Q1laXTFWxsq8nz+fCquTFYWr0M3PklWLnkxYcmSDLIkNgaa0iZ1Vbwj6bBzFZQNgetS6Zno58IvAiddDqBvSG2hlZYqUcRooNutYnJ6uGcKWQZcLy3sPE9RT6WgoVEnL8mQ2NjoxDqf/yNUdpHJ2ShCpmjTiUUsPSjpyBsnCk7iyISbIdehrbolo4nkuspsT4npQeDzvd3fhFSlmAOlqWefKXI0JGQSg86GX8jsau7M/NxJZgwcr6Xp1LJFvWq4RjTfGurfjYdxtT1Ydncmf451fU2B7CumS6miT4DXHUaW17kVyO39hpGphkmIow22IoLLkipp2Q/HkeOW4BUeppeilDPXr/UsvLl76AhutT1RXq0g0xFKXGp7UTvyefpv/Ipo1jOmjdqJ2k8PfR2cIDMiV4lLrpsDXK0eBe760UCMPBBY+223Su+z8ifV1h8hTCSFwbm47Ua5KLLsymPJZgG5EUDqXevl2ZLkygSX39aOq4PTrhDkWyhiG5C1FI2vk6zwxLyIHrrQpSN1dmuCnFyoJiVV9e1DerRIk0+TQxm8ipOo0FI0XB2VuWyybHjliOpDAbVNnd1sO1vNZJVx43hKHftVDs05IfsbqZo5wSlE01qnyiN/wA+TVhV5hZmJqW9lUn13Uwg/wBKRDqAUO5oftTG56KikYPjlkUmMjkN6H748mrafIaQFOKvp6isd55Q/wC3wJycNmJUksh2tR00NqkmZE/x8SuRZr1XXRsO+jXB79OJit4zba4ru4Gm7Ucj8fGELHiSynYUF7yhmOj5KDKqEEJYjvS+si9E7PydOWGOsa131/sB5x8j09iVGuADSrt1LvUo3JFPixm/b0p2d2O30aUCAUiPggNv7jTYkjStZ8sF3d9bX/0rkoHqiqiZydjv1pqJNWFFkSDRWtasdUbnRRyMdnkN2fWh8FFKKfAqQyi6nyB2NaoHXS8EXOWM6jQ06ExCqkoHRSJICt/LsaFqDqqZRwDi3+TboRXB1f4OSAFbKPud65C7qfJM0Bax5MLUcjKNVQmaJ49btatTFaPsxKvZgQNPrWk/yGZWL6GsgVaq7Do8jIjubaVjSZrSfCNb4r5wpMoYka/ap9sE0NxziySPqZ/loJEsRe3avDxwaZ7+/qvyZGTmxq/ipr086tokt6zTO42bHKvFoyK6+bTkU/5Xksx1fX29B2pd2vki7qXIuUzxtc6jqDRVhkekN8DoMliLe2LHXegvT9jIVa8srjiEn9oBqe14IL7ci5keJgeFx6VtbK3yTX5Zz9qS9hdRWrJDqYqeTsU6XIkNbaj+C/NdE4HyYyyLeM3Wl10a8g2tHkik+N0JdSwPQU+u/wCAM7z4MbOx4kFgnEjrVlLNg7zBKPd0KvamcE6hKWLF1lNgeZ3NclJuNO1i+LHM58hcnvSdLQfXes65rgpGPl49jGFVe9ArVfArXZXcsU2RmpL/AMgK9RTFSrXghvWnbwUxzRSActG62pbq0bZtIq4CWGytqNgaTPWxteayyJZJIJrk2PUVQ6qyJqLtfgrOS0lww8T1FJVIH7qteD0cHNLcm+1da8HnvVJDoMQg2vc+tJvsQ29iXAybHAF5Dp2FLWv4E7bfgBItCFNh2Nan+ROS/JFmu8RDA7aVRSqY2+fEk8WRN7wcEkeld9aZPjmrXLxmTq6vsp7V31ViD2ela+C+P5B9ywYetS29dMX9fexbDnJKtiADUt8HVnoUy4Amhje7LcdwKKt2uGV0XVEfs2fQErVLvKBycWkVl4AcXA3rcdy29oJosQFSjLtVFr8yTvfiBYxpYz4Gwo+6ZG9EvIz22/vNjQ9l8Emmk+D0ckiXAF1NY6piOEjuj/Ws8A1Q2ONxYHUVjsiqlgmVgd/HtWJjG0uSDJiiDEkb06tmQatyIdgtit7UUfkTZfLKsDOmg5C10O16XpirD8KKGXx/IB7gAA71Nb14AeUuCCbL8rhfqafXEneMcsQMrHILNYEGs+uzfBGqWu+CyL5cx2VCONc/UT8nsV9WK8l+N883GzqCO9S6egn4YVcOBj/I+7biAOt6CvqqvkmfrKRUnyMmx0YdaavWQy3ryNxfmJePEkNS9PSr5Kq4VrTk0sXLhlNpBY1BtjavgVS39cFEuHE48GGo6VNX2bV8oT7OzfAlMR4tnJp/3q3wZ67niDkkzICC1jR1zT+C76ZXgib5ApJaQeJ62qpetK4Jb5Q+Dr5kDaLa4oVhZE+mTmDvuowBsD3tWqjRXhlCkhzeCXPfYVVlLA1zdvBiy5nty8jqtW0xkXj6024Ez5zMTxs6HpbWnVyPTr6iklaaQxlSmhpnVHXqmokz4c6XHyv7gL7Ux5poXnl1sf/WYfipZByDAW02r9O+1IxewrWkVJ8bkRsDyt/7VtdExmnsJcluNj5CkAsCO96XayJbeymw5YBY3ALb1isTa2bUGN8ph87SqnltprTq2gg1cf1JTgLMqLfQeprLNMr9bRXZX+zLFIdbDteluqaPZxw5HNn8ogGA/mpen9HsVwigIaSQXS47AUb4AqlMipPjpJpP8gP1o6acC9vYrR8An4lkUhdR601ao8nf258ikgWOTbWmO0kq0cnpeBIJH8UJH7FnI0RswsptaskZkk3yBD+xFLcKXB71toaLcon8D5FLG7pvQVD0sl4FtgxsDqbHpRLQD7IB/QgIAN7rW/YxtNbOCDOxkTRBtTaWkH2JiWKxZ1UFWFm6dK2yO9TN2OyS21c8R2FB5PXpmqrgogyoePiTcd650JdHa7g6flJYzYAgdzXLNMl3xVUGPkQ6sStx3rPrPKePlnXzy2OFuLL0ofqJ9cZqSY/yJjlJFgp0vei+o31fXhtssadJ08WBJ9a5VgqtSAIo8lDoQVrrNHqenWqQM7Se24WxJ0oHaGj1scFZNvwZMkOTzIZyBTq8haXpRQkUw4rPEAXuexrnwyZ7yiaQTQPcX31toKYoZNfg1fj87KYXSxI1ItSdKL5Ap1bNqLKzJYgCtr6XqF51Vim/RVFlM0SWsCO96anWCGzpVgPZnCuAHHWiPG9q82H4c0ocbEXsLVPpB5j0Scs+jgSGRAH37V5t72T4KaaOwD45idmQLbsDR107Lkqwo3Ztk80qutiOJFOrWGelTGFImNpdLMLfWmWSBpDfIqeD3JPM/YUVLwhHs6qtuAFgEZta46C9F3k8+tnZjowsg48ArD1oLNr5PTwr4UkmRitzPID+adTTgpbSfBI0DhvEf1p6shVrclEGLMLsV0PW9T6XTPTw1rWvAySDa+1dWxLtpzIoY8CmzNf0pnZk60sH+tER4HSh7sOlm3LM7LwORurkHtVFNDLW58EqwxjRn8hTGws7N/AQgY7MbetC2WKyqhnsyJrcEeu9dKE207MB4iwNk23ua1MU2kTCFwSUSxo5MrZJOWPSLIYAMpIoW0MraoBx5Ek814rWqyaEa7JMaqxqLWLUICbAljuPFCwPStTGNQvJmPiyKSfbYD6U1WJq2S+RYUB/FdfWuFKb3gXLNkgnx0NEkj0KYVXIoFzKrciNRpWlNYo5Ps8LGyJ4wyA7DWvIvFPJ6mvt0b8lTfEZDrdgVI6mhrvVHme171aqRuN8Q8b6ty9a6/tJo8C/v9rFseMqEkEg0h6SZXVsLJwEnj5Lfl6mhz36uGUX0iskq4vtN5Lt60569vB5993ZwjqvIsmga3pasdVACST5HTDnFc3v2JoacMrpnKkiME5Pimg21qjuh+fVfIcMErSAMlidzegvokvInb2apwmaMEc6KVGgqS96sleqfBSg6Mf5pLf4KsV8Ig+T+NgmUkb9qqw3svJ3sNnzc/xcqkKh616VdkyetlwmRHFzUe4BJB605Wqyv1+trFqzTpYyfe1K6o99tRwVK3OO9yb0qIZzaVRbRA2NiCOtMTPO0vzI5Iza4oXYRfU08RLpoB63qPV8m5aygcj45y3Pje9bTdeBltVRBR/HyEXta3rQ29hHmbe4mwgksN9iKF2ViO15ljE9xlZuNqXwhdISbO8WYAW+5NBa6QrS6HQYLMT19aB+wkM9fRTJPn/HSLCRam09lMP2NP5MiLGyImFtVNW0tVoH1YSll0MMhjsQLHvS7XUlP2p8DP0QdmsfrXfcX536oZHiZCgeQ/mgtrVl2GiYGRNkQtqbDrrQZqtj1nmokGDPkYeOtz1pumKPPpmm+S5HM0floRUjr1Y+zUQvgnKOsm+hqlNNHl6XSseZ0txYiuSZLdN8CJGv+NjTEo8g2pHkW0bm19BW9kKdkBxaNzpeimTF5KYZkcdQe1LtRopzUKR3TS4vSzrORE0PJtRejV4I9rpMmeBUW1HW7ZPVO7gSpQnjy8qdEF1awoPIR74uL2He1a/AdeLE+aJY0umx3F6KiT8i75yuTIbHyWJYXIbpVNXVDfXVKlWPjZAI5rZT60FtF8Ba+3VuEaMEYiJubqel6RZyAtX8FUcsVvFwCvS9KdWFjm7MGSWRzcG/3FFWqRVaiTCiykU6gBhvqKG9GyDazs4RbDndrG9T2wOpnBSc8AflxI6XpP0DVg7DIflJCSOQP3penqV/BXn66Xkpk9yZLhQb9anrFXBaqVgyciPLVuL/AIdNRXp52o1webdVkjMjpKb2C+pp/VNE/X+h8WaENgQL9b0u2MlDo4gpMzSx2JVtN6SqKrOtSqRAcMkm4UqapWgnFpCGwYhyCsL/AFFMWrKa2tZwZs6ZaE+S8b7VRV1ZtlWqET4RyFDAjkLUavAtWUyf/9k=";function E$1(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$5(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$1(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$b(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$a(t,e){t[0]-=e,t[1]+=e,t[2]-=e,t[3]+=e,t[4]-=e,t[5]+=e}function S$3(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$1(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$2(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$1=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$1,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$a(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$1(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$a(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$1(t.box,t.parent.box))return void(e>0&&w$a(t.box,e));e>0&&w$a(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$3(t);if(void 0!==e.object)return e;const s=this._sortedList;s.clear();let a={node:e,inheritedCost:i-S$3(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$3(c.box),d=_(t,l.box)+o,p=d-S$3(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$1(t.left.box,t.right.box,t.box);t=t.parent;)if(!Z$5(t.left.box,t.right.box,t.box))return}refitAndRotate(t,e){const n=t.box,i=(t=t.parent).box;for(E$1(n,e.box,i);t=t.parent;){if(!v$b(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$3(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$3(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$1(i.left.box,i.right.box,r)}}const X$3=0,U$2=1;let V$5=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$3)this.updatePlane(5,t[3]+t[2],t[7]+t[6],t[11]+t[10],t[15]+t[14]);else{if(this.coordinateSystem!==U$2)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$1(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$1(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$D(t,e,n){return D$2(n,t)<=e*e}let k$2=class{constructor(t,e=X$3){this._sign=new Uint8Array(3),this.builder=t;const n=t.highPrecision;this.frustum=new V$5(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$1(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$1(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$D(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$1(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$1(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$2(r.box,t);i<n&&(n=i)}else n=D$2(r.box,t);return}const s=D$2(r.left.box,t),a=D$2(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$3(t,e){return e[0]=t.x,e[1]=t.y,e[2]=t.z,e}function B$q(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,b=h*d,x=h*p,M=h*f,T=r.x,I=r.y,E=r.z;s[o+0]=(1-(y+S))*T,s[o+1]=(g+M)*T,s[o+2]=(A-x)*T,s[o+3]=0,s[o+4]=(g-M)*I,s[o+5]=(1-(m+S))*I,s[o+6]=(v+b)*I,s[o+7]=0,s[o+8]=(A+x)*E,s[o+9]=(v-b)*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$2.setFromAxisAngle(t,e),this.quaternion.multiply(X$2),this}rotateOnWorldAxis(t,e){return X$2.setFromAxisAngle(t,e),this.quaternion.premultiply(X$2),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$2=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$2(new $,X$3),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$3(n.origin,i),m$3(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$q(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$q(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$1=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 f$1=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.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;this.patchMaterial(t,s),this.instanceIndex&&(!a||this.isFirstGroup(a.materialIndex))&&(this.autoUpdate&&this.performFrustumCulling(i,n),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;this.patchMaterial(t,r),this.instanceIndex?s&&!this.isFirstGroup(s.materialIndex)||(this.autoUpdate&&this.performFrustumCulling(n),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)):this._renderer=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)}initMatricesTexture(){this._parentLOD||(this.matricesTexture=new Q$1(Float32Array,4,4,this._capacity))}initColorsTexture(){this._parentLOD||(this.colorsTexture=new Q$1(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=>n===e?t: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],b=s[r+15],x=e.center,M=n.x,T=n.y,I=n.z,E=1/(l*M+p*T+A*I+b);x.x=(a*M+u*T+f*I+y)*E,x.y=(o*M+h*T+m*I+v)*E,x.z=(c*M+d*T+g*I+S)*E;const C=a*a+o*o+c*c,w=u*u+h*h+d*d,R=f*f+m*m+g*g;e.radius=i*Math.sqrt(Math.max(C,w,R))}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}f$1.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},f$1.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$4=new Frustum,S$2=new se,B$p=new Matrix4,z$2=new Matrix4,nt=new Vector3,P$2=new Vector3,R$1=new Vector3,re=new Vector3,w$9=new Sphere;f$1.prototype.performFrustumCulling=function(t,e=t){if(!this._parentLOD&&0===this._instancesArrayCount)return void(this.count=0);const n=this.LODinfo;let i;if(n){i=t!==e?n.shadowRender??n.render:n.render;for(const t of n.objects)t.count=0}(null==i?void 0:i.levels.length)>0?this.frustumCullingLOD(i,t,e):this._parentLOD||this.frustumCulling(t),this.instanceIndex.update(this._renderer,this.count)},f$1.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&&(z$2.copy(this.matrixWorld).invert(),P$2.setFromMatrixPosition(t.matrixWorld).applyMatrix4(z$2),nt.set(0,0,-1).transformDirection(t.matrixWorld).transformDirection(z$2)),i?(B$p.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$2.array.sort(null!=(e=this.material)&&e.transparent?Ot:Ut):t(S$2.array);const n=S$2.array,i=n.length;for(let e=0;e<i;e++)r[e]=n[e].index;this.count=i,S$2.reset()}}else this.updateIndexArray()},f$1.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},f$1.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$2).dot(nt);S$2.push(t,e)}},f$1.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$p,(a=>{const o=a.object;if(o<n&&this.getVisibilityAt(o)&&(!r||r(o,t)))if(i){const t=this.getPositionAt(o).sub(P$2).dot(nt);S$2.push(t,o)}else e[s++]=o})),this.count=s},f$1.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$4.setFromProjectionMatrix(B$p);for(let u=0;u<s;u++)if(this.getActiveAndVisibilityAt(u)){if(a){const t=this.getPositionAndMaxScaleOnAxisAt(u,w$9.center);w$9.radius=i*t}else this.applyMatrixAtToSphere(u,w$9,r,i);if(J$4.intersectsSphere(w$9)&&(!c||c(u,t)))if(o){const t=re.subVectors(w$9.center,P$2).dot(nt);S$2.push(t,u)}else e[l++]=u}this.count=l},f$1.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$p.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse).multiply(this.matrixWorld),z$2.copy(this.matrixWorld).invert(),P$2.setFromMatrixPosition(e.matrixWorld).applyMatrix4(z$2),R$1.setFromMatrixPosition(n.matrixWorld).applyMatrix4(z$2);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$2.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$2.reset()}for(let l=0;l<a.length;l++){a[l].object.count=s[l]}},f$1.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$p,(t=>{const e=t.object;if(e<o&&this.getVisibilityAt(e)&&(!c||c(e,i,r))){const t=this.getPositionAt(e).distanceToSquared(R$1);S$2.push(t,e)}})):this.bvh.frustumCullingLOD(B$p,R$1,a,((t,n)=>{const l=t.object;if(l<o&&this.getVisibilityAt(l)){if(null===n){const t=this.getPositionAt(l).distanceToSquared(R$1);n=this.getObjectLODIndexForDistance(a,t)}(!c||c(l,i,r,n))&&(e[n][s[n]++]=l)}}))},f$1.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$4.setFromProjectionMatrix(B$p);for(let p=0;p<u;p++)if(this.getActiveAndVisibilityAt(p)){if(h){const t=this.getPositionAndMaxScaleOnAxisAt(p,w$9.center);w$9.radius=c*t}else this.applyMatrixAtToSphere(p,w$9,l,c);if(J$4.intersectsSphere(w$9))if(n){if(!d||d(p,i,r))continue;const t=w$9.center.distanceToSquared(R$1);S$2.push(t,p)}else{const t=w$9.center.distanceToSquared(R$1),n=this.getObjectLODIndexForDistance(a,t);(!d||d(p,i,r,n))&&(e[n][s[n]++]=p)}}},f$1.prototype.clearTempInstance=function(t){const e=this._tempInstance;return e.id=t,this.clearInstance(e)},f$1.prototype.clearTempInstancePosition=function(t){const e=this._tempInstance;return e.id=t,e.position.set(0,0,0),e},f$1.prototype.clearInstance=function(t){return t.position.set(0,0,0),t.scale.set(1,1,1),t.quaternion.identity(),t},f$1.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},f$1.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},f$1.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},f$1.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},f$1.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)},f$1.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},f$1.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},f$1.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},f$1.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},f$1.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},f$1.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},f$1.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 f$1(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},f$1.prototype.patchLevel=function(t){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;f$1.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},f$1.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,vt=new Vector3,It=new Vector3,Tt=new Matrix4,Ct=new Sphere;f$1.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(),It.setFromMatrixScale(this.matrixWorld),vt.copy(t.ray.direction).multiply(It);const s=vt.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},f$1.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)}},f$1.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}},f$1.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$1(Float32Array,4,4*n.length,this._capacity),e)for(const t of n)t.matrixAutoUpdate=!1,t.matrixWorldAutoUpdate=!1;this.materialsNeedsUpdate()}},f$1.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)},f$1.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],b=s[7],x=s[11],M=s[15],T=a[0],I=a[4],E=a[8],C=a[12],w=a[1],R=a[5],k=a[9],_=a[13],L=a[2],U=a[6],F=a[10],V=a[14],N=a[3],B=a[7],W=a[11],P=a[15];o[r+0]=c*T+l*w+u*L+h*N,o[r+4]=c*I+l*R+u*U+h*B,o[r+8]=c*E+l*k+u*F+h*W,o[r+12]=c*C+l*_+u*V+h*P,o[r+1]=d*T+p*w+f*L+m*N,o[r+5]=d*I+p*R+f*U+m*B,o[r+9]=d*E+p*k+f*F+m*W,o[r+13]=d*C+p*_+f*V+m*P,o[r+2]=g*T+A*w+y*L+v*N,o[r+6]=g*I+A*R+y*U+v*B,o[r+10]=g*E+A*k+y*F+v*W,o[r+14]=g*C+A*_+y*V+v*P,o[r+3]=S*T+b*w+x*L+M*N,o[r+7]=S*I+b*R+x*U+M*B,o[r+11]=S*E+b*k+x*F+M*W,o[r+15]=S*C+b*_+x*V+M*P},f$1.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)},f$1.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)},f$1.prototype.initUniformsPerInstance=function(t){if(!this._parentLOD){const{channels:e,pixelsPerInstance:n,uniformMap:i,fetchInFragmentShader:r}=this.getUniformSchemaResult(t);this.uniformsTexture=new Q$1(Float32Array,e,n,this._capacity,i,r),this.materialsNeedsUpdate()}},f$1.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}},f$1.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},f$1.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",de="#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=de,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 M9=W$C;function W$C(t,e){const n=M$C();return(W$C=function(t,e){return n[t-=232]})(t,e)}!function(t,e){const n=W$C,i=t();for(;;)try{if(826187===-parseInt(n(242))/1+parseInt(n(397))/2+parseInt(n(351))/3*(parseInt(n(339))/4)+-parseInt(n(402))/5+-parseInt(n(298))/6*(parseInt(n(343))/7)+-parseInt(n(244))/8+parseInt(n(341))/9*(parseInt(n(236))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$C);let B$o=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=M9,e={nUFyJ:t(395)}[t(434)][t(307)]("|");let n=0;for(;;){switch(e[n++]){case"0":this[t(301)]=new Vector3;continue;case"1":this[t(392)]=new Vector3;continue;case"2":this[t(337)]=1;continue;case"3":this[t(258)]=!1;continue;case"4":this[t(348)]=new Vector3;continue;case"5":this.up=new Vector3;continue;case"6":this[t(253)]=0;continue}break}}[(_v=M9(348),_u=M9(392),_t2=M9(301),_s=M9(253),_r=M9(337),_q2=M9(258),M9(305))](t,e,n){const i=M9,r={snYAR:i(261),BAwsk:function(t,e){return t+e},mhbOl:function(t,e){return t*e},lxVJm:function(t,e){return t-e},gLHSJ:function(t,e){return t-e}},s=r[i(267)][i(307)]("|");let a=0;for(;;){switch(s[a++]){case"0":this[i(348)][i(332)](t[i(348)],e[i(348)],n);continue;case"1":this.up[i(332)](t.up,e.up,n);continue;case"2":this[i(392)][i(332)](t[i(392)],e[i(392)],n);continue;case"3":this[i(301)][i(332)](t[i(301)],e[i(301)],n);continue;case"4":this[i(337)]=r[i(271)](r[i(429)](r[i(401)](e[i(337)],t[i(337)]),n),t[i(337)]);continue;case"5":this[i(253)]=r[i(271)](r[i(429)](r[i(232)](e[i(253)],t[i(253)]),n),t[i(253)]);continue}break}}[M9(329)](t){const e=M9,n={tOnpE:e(423)}[e(398)][e(307)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[e(337)]=t[e(337)];continue;case"1":this[e(301)][e(329)](t[e(301)]);continue;case"2":this.up[e(329)](t.up);continue;case"3":this[e(253)]=t[e(253)];continue;case"4":this[e(392)][e(329)](t[e(392)]);continue;case"5":this[e(348)][e(329)](t[e(348)]);continue}break}}};function M$C(){const t=["vbUSD","Nfhsb","lerpVectors","totalDistance","puXaD","IKojq","distance","widthScale","uv2","8eIxWlA","_sharpCorner","44189721iKdyoq","needsUpdate","4246123kpRXax","lLAty","normalize","name","indices","pos","OvPHp","VItFN","1449120zqZDkg","hxmBQ","odZAD","KrFUP","side","_resizeAttribute","Vyqmt","_end","drawRange","width","FXjAT","YxZBi","fSzDx","length","pZyLF","arrow","PathPointList: points length less than 2.","BVHto","abs","normal","OLyXK","qISXl","OyJbC","_getByIndex","normalized","BDrXn","acos","FJcqM","UMQVt","_initByData","QSJFJ","setUsage","XFGQO","cpHUN","eDwrk","dnkFb","cwpus","qSMMq","add","HVJhT","subVectors","dir","addVectors","setAttribute","4|1|0|5|6|2|3","iqHgf","323610zaMwXY","tOnpE","NXuBM","usage","lxVJm","8052185JKrtor","MAX_VALUE","dgfjl","_initByMaxVertex","setIndex","rnavc","lYQQQ","_resizeIndex","pInIc","equals","TVOdb","position","YRYjl","dot","oYHoG","oTtoi","FjWQy","update","vNOax","YqNcw","DaKqN","5|4|2|1|3|0","ZreZE","count","fromArray","OYjfi","gqdHM","mhbOl","vuzPW","getIndex","ujtie","KCSKV","nUFyJ","both","qWsTC","max","vMZjC","min","gLHSJ","fJOKb","setLength","psRdp","10kYyhBU","tCeLs","progress","options","CypId","sqrt","1109019kPrMea","fFVMU","10232264WfVBEL","UktEF","SOznO","bXCym","itemSize","makeRotationAxis","left","BjvbP","qqitQ","dist","set","gNaea","fIDux","_corner","sharp","tZUoj","_start","0|2|1|3|5|4","zcLqV","JNNVa","GjbpB","IHUpW","JuVan","snYAR","gGluI","vcnBE","crossVectors","BAwsk","ezmZh","VgtCJ","pathPointList","NcjAk","lbjDL","OIVdO","0|5|2|3|1|4","GcgMc","GtsaP","uVQYx","ZuWVx","slice","TgyJh","AthVy","1|3|0|6|5|2|4","qFuqM","zyCrm","EoqmV","OKwgC","array","vZqnm","1|2|3|4|5|0","applyMatrix4","EPSILON","BhHwg","AuhsZ","12FOfihW","Qfroi","ObKUU","right","BoNwx","pMDGe","start","lerpPathPoints","KQJan","split","getAttribute","TKNIF","Hpiww","DDFSD","afxkO","DuYQB","bnmHU","sWUOP","JLFeY","addUpdateRange","ABUAT","JlYot","getPoints","multiplyScalar","warn","push","_updateAttributes","sub","ISoVc","aHoYo","Jralj","copy"];return(M$C=function(){return t})()}class PathGeometry extends BufferGeometry{constructor(t=3e3,e=!1){const n=M9;super(),{pZyLF:function(t,e){return t(e)}}[n(365)](isNaN,t)?this[n(380)](t[n(274)],t[n(239)],t[n(400)],e):this[n(405)](t,e)}[M9(405)](t,e){const n=M9,i={OIVdO:n(286),CypId:function(t,e){return t*e},lLAty:n(413),fSzDx:n(370),BhHwg:function(t,e){return t*e},vZqnm:function(t,e){return t>e},oTtoi:function(t,e){return t*e},VItFN:n(338)},r=i[n(277)][n(307)]("|");let s=0;for(;;){switch(r[s++]){case"0":this[n(394)]("uv",new BufferAttribute(new Float32Array(i[n(240)](t,2)),2)[n(382)](DynamicDrawUsage));continue;case"1":this[n(394)](i[n(344)],new BufferAttribute(new Float32Array(i[n(240)](t,3)),3)[n(382)](DynamicDrawUsage));continue;case"2":this[n(359)][n(425)]=0;continue;case"3":this[n(394)](i[n(363)],new BufferAttribute(new Float32Array(i[n(296)](t,3)),3)[n(382)](DynamicDrawUsage));continue;case"4":this[n(406)](i[n(292)](t,65536)?new Uint32BufferAttribute(i[n(417)](t,3),1):new Uint16BufferAttribute(i[n(296)](t,3),1));continue;case"5":this[n(359)][n(304)]=0;continue;case"6":e&&this[n(394)](i[n(350)],new BufferAttribute(new Float32Array(i[n(296)](t,2)),2)[n(382)](DynamicDrawUsage));continue}break}}[M9(380)](t,e={},n,i){const r=M9,s={cpHUN:function(t,e,n,i){return t(e,n,i)},fIDux:function(t,e){return t!==e},ISoVc:r(293),pMDGe:function(t,e){return t>e},JlYot:function(t,e){return t/e},AthVy:r(413),ObKUU:function(t,e){return t||e},DuYQB:r(370),JLFeY:function(t,e){return t||e},lYQQQ:r(338),eDwrk:function(t,e){return t||e}},a=s[r(384)](n$f,t,e,i);if(a&&s[r(256)](a[r(425)],0)){const t=s[r(326)][r(307)]("|");let e=0;for(;;){switch(t[e++]){case"0":this[r(406)](s[r(303)](s[r(319)](a[r(413)][r(364)],3),65536)?new Uint32BufferAttribute(a[r(347)],1):new Uint16BufferAttribute(a[r(347)],1));continue;case"1":this[r(333)]=a[r(333)];continue;case"2":this[r(394)](s[r(285)],new BufferAttribute(new Float32Array(a[r(413)]),3)[r(382)](s[r(300)](n,StaticDrawUsage)));continue;case"3":this[r(394)](s[r(313)],new BufferAttribute(new Float32Array(a[r(370)]),3)[r(382)](s[r(316)](n,StaticDrawUsage)));continue;case"4":this[r(394)]("uv",new BufferAttribute(new Float32Array(a.uv),2)[r(382)](s[r(316)](n,StaticDrawUsage)));continue;case"5":i&&this[r(394)](s[r(408)],new BufferAttribute(new Float32Array(a[r(338)]),2)[r(382)](s[r(385)](n,StaticDrawUsage)));continue}break}}else this[r(405)](2,i)}[M9(419)](t,e={}){const n=M9,i={Nfhsb:n(338),OLyXK:function(t,e,n,i){return t(e,n,i)}},r=!!this[n(308)](i[n(331)]),s=i[n(371)](n$f,t,e,r);s?(this[n(333)]=s[n(333)],this[n(324)](s[n(413)],s[n(370)],s.uv,r?s[n(338)]:null,s[n(347)]),this[n(359)][n(425)]=s[n(425)]):this[n(359)][n(425)]=0}[M9(356)](t,e){const n=M9,i={qISXl:function(t,e){return t<e},zyCrm:function(t,e){return t*e}};let r=this[n(308)](t);for(;i[n(372)](r[n(291)][n(364)],e);){const e=r[n(291)][n(364)],s=new BufferAttribute(new Float32Array(i[n(288)](e,2)),r[n(248)],r[n(375)]);s[n(346)]=r[n(346)],s[n(400)]=r[n(400)],this[n(394)](t,s),r=s}}[M9(409)](t){const e=M9,n={gqdHM:function(t,e){return t<e},dnkFb:function(t,e){return t>e},XFGQO:function(t,e){return t*e}};let i=this[e(431)]();for(;n[e(428)](i[e(291)][e(364)],t);){const t=i[e(291)][e(364)],r=new BufferAttribute(n[e(386)](n[e(383)](t,2),65535)?new Uint32Array(n[e(383)](t,2)):new Uint16Array(n[e(383)](t,2)),1);r[e(346)]=i[e(346)],r[e(400)]=i[e(400)],this[e(406)](r),i=r}}[M9(324)](t,e,n,i,r){const s=M9,a={qWsTC:s(413),BVHto:s(370),JNNVa:s(338)};this[s(356)](a[s(436)],t[s(364)]);const o=this[s(308)](a[s(436)]);o[s(291)][s(254)](t,0),o[s(317)](0,t[s(364)]),o[s(342)]=!0,this[s(356)](a[s(368)],e[s(364)]);const c=this[s(308)](a[s(368)]);c[s(291)][s(254)](e,0),c[s(317)](0,e[s(364)]),c[s(342)]=!0,this[s(356)]("uv",n[s(364)]);const l=this[s(308)]("uv");if(l[s(291)][s(254)](n,0),l[s(317)](0,n[s(364)]),l[s(342)]=!0,i){this[s(356)](a[s(263)],i[s(364)]);const t=this[s(308)](a[s(263)]);t[s(291)][s(254)](i,0),t[s(317)](0,i[s(364)]),t[s(342)]=!0}this[s(409)](r[s(364)]);const u=this[s(431)]();u[s(254)](r,0),u[s(317)](0,r[s(364)]),u[s(342)]=!0}}function n$f(t,e,n=!1){const i=M9,r={JuVan:function(t,e){return t===e},qFuqM:function(t,e){return t/e},vbUSD:function(t,e){return t/e},gNaea:function(t,e){return t!==e},KrFUP:i(250),Hpiww:function(t,e){return t*e},ujtie:i(301),KQJan:function(t,e){return t-e},QSJFJ:function(t,e){return t>e},BDrXn:function(t,e){return t*e},IHUpW:function(t,e){return t*e},OyJbC:function(t,e){return t-e},FjWQy:function(t,e){return t-e},qSMMq:function(t,e){return t-e},vcnBE:function(t,e){return t-e},AuhsZ:function(t,e){return t-e},UMQVt:function(t,e){return t-e},SOznO:function(t,e){return t-e},aHoYo:function(t,e){return t+e},Vyqmt:function(t,e){return t+e},BoNwx:function(t,e){return t-e},psRdp:function(t,e){return t+e},OYjfi:i(278),FXjAT:function(t,e){return t-e},NcjAk:function(t,e){return t-e},tCeLs:function(t,e){return t!==e},GcgMc:function(t,e){return t!==e},YxZBi:function(t,e){return t*e},dgfjl:function(t,e){return t*e},HVJhT:i(435),afxkO:function(t,e){return t!==e},Jralj:function(t,e){return t!==e},TKNIF:function(t,e){return t+e},Qfroi:function(t,e){return t!==e},bXCym:function(t,e){return t+e},zcLqV:function(t,e){return t*e},IKojq:function(t,e){return t-e},ZreZE:function(t,e){return t-e},KCSKV:function(t,e){return t-e},cwpus:function(t,e){return t!==e},tZUoj:function(t,e){return t/e},TVOdb:function(t,e){return t===e},VgtCJ:function(t,e){return t>e},DDFSD:function(t,e){return t<e},vuzPW:function(t,e){return t>e},lbjDL:function(t,e){return t(e)},fFVMU:function(t,e){return t(e)},bnmHU:function(t,e){return t(e)}},s=e[i(360)]||.1,a=r[i(328)](e[i(238)],void 0)?e[i(238)]:1,o=!r[i(387)](e[i(366)],void 0)||e[i(366)],c=r[i(328)](e[i(355)],void 0)?e[i(355)]:r[i(390)],l=r[i(259)](s,2),u=r[i(279)](c,r[i(390)])?r[i(259)](s,2):s,h=t[i(336)](),d=r[i(310)](a,h);if(r[i(412)](h,0))return null;const p=r[i(259)](l,u),f=r[i(287)](l,h);let m=0;const g=[],A=[],y=[],v=[],S=[];let b=0;const x=new Vector3,M=new Vector3,T=new Vector3,I=new Vector3,E=new Vector3,C=new Vector3;function w(t){const e=i,s=r[e(266)](g[e(364)],0),a=t[e(258)]&&!s,o=r[e(287)](t[e(253)],u),d=r[e(330)](t[e(253)],h),w=t[e(392)],R=t.up,k=t[e(301)];if(r[e(255)](c,r[e(354)])?x[e(329)](k)[e(321)](r[e(310)](l,t[e(337)])):x[e(254)](0,0,0),r[e(255)](c,r[e(432)])?M[e(329)](k)[e(321)](r[e(310)](-l,t[e(337)])):M[e(254)](0,0,0),x[e(389)](t[e(348)]),M[e(389)](t[e(348)]),a){T[e(426)](g,r[e(306)](g[e(364)],6))[e(325)](M),I[e(426)](g,r[e(306)](g[e(364)],3))[e(325)](x);const t=T[e(364)](),i=I[e(364)](),s=r[e(306)](t,i);let a,c;r[e(381)](s,0)?(a=T,c=M):(a=I,c=x),E[e(329)](a)[e(234)](Math[e(369)](s))[e(389)](c);let l=C[e(329)](c)[e(325)](E)[e(345)]()[e(415)](w),u=C[e(329)](c)[e(325)](E)[e(364)](),h=r[e(376)](r[e(265)](l,u),2);C[e(329)](w)[e(234)](h)[e(389)](E),r[e(381)](s,0)?(g[e(323)](E.x,E.y,E.z,x.x,x.y,x.z,M.x,M.y,M.z,x.x,x.y,x.z,C.x,C.y,C.z,x.x,x.y,x.z),b+=6,S[e(323)](r[e(306)](b,6),r[e(373)](b,8),r[e(418)](b,7),r[e(388)](b,6),r[e(269)](b,7),r[e(388)](b,5),r[e(306)](b,4),r[e(418)](b,6),r[e(297)](b,5),r[e(373)](b,2),r[e(297)](b,4),r[e(373)](b,1)),m+=12):(g[e(323)](M.x,M.y,M.z,E.x,E.y,E.z,M.x,M.y,M.z,x.x,x.y,x.z,M.x,M.y,M.z,C.x,C.y,C.z),b+=6,S[e(323)](r[e(388)](b,6),r[e(418)](b,8),r[e(379)](b,7),r[e(306)](b,6),r[e(418)](b,7),r[e(246)](b,5),r[e(388)](b,6),r[e(418)](b,5),r[e(306)](b,3),r[e(246)](b,2),r[e(418)](b,3),r[e(373)](b,1)),m+=12),A[e(323)](R.x,R.y,R.z,R.x,R.y,R.z,R.x,R.y,R.z,R.x,R.y,R.z,R.x,R.y,R.z,R.x,R.y,R.z),y[e(323)](r[e(246)](o,p),0,r[e(246)](o,p),1,o,0,o,1,r[e(327)](o,p),0,r[e(357)](o,p),1),n&&v[e(323)](r[e(302)](d,f),0,r[e(418)](d,f),1,d,0,d,1,r[e(235)](d,f),0,r[e(235)](d,f),1)}else{const t=r[e(427)][e(307)]("|");let i=0;for(;;){switch(t[i++]){case"0":g[e(323)](M.x,M.y,M.z,x.x,x.y,x.z);continue;case"1":b+=2;continue;case"2":y[e(323)](o,0,o,1);continue;case"3":n&&v[e(323)](d,0,d,1);continue;case"4":!s&&(S[e(323)](r[e(361)](b,2),r[e(418)](b,4),r[e(418)](b,3),r[e(379)](b,2),r[e(275)](b,3),r[e(275)](b,1)),m+=6);continue;case"5":A[e(323)](R.x,R.y,R.z,R.x,R.y,R.z);continue}break}}}const R=new Vector3;let k;if(r[i(273)](d,0))for(let _=0;r[i(311)](_,t[i(425)]);_++){const e=t[i(291)][_];if(r[i(430)](e[i(253)],d)){const n=t[i(291)][r[i(275)](_,1)];k=new B$o;const s=r[i(259)](r[i(306)](d,n[i(253)]),r[i(335)](e[i(253)],n[i(253)]));k[i(305)](n,e,s),r[i(276)](w,k);break}r[i(243)](w,e)}else k=t[i(291)][0];return o&&(k=k||t[i(291)][r[i(269)](t[i(425)],1)],r[i(314)]((function(t){const e=i,a=t[e(392)],o=t.up,d=t[e(301)],p=r[e(330)](t[e(253)],u),f=r[e(330)](t[e(253)],h);r[e(237)](c,r[e(354)])?x[e(329)](d)[e(321)](r[e(376)](l,2)):x[e(254)](0,0,0),r[e(279)](c,r[e(432)])?M[e(329)](d)[e(321)](r[e(362)](-l,2)):M[e(254)](0,0,0),R[e(329)](a)[e(234)](r[e(404)](l,3)),x[e(389)](t[e(348)]),M[e(389)](t[e(348)]),R[e(389)](t[e(348)]),g[e(323)](M.x,M.y,M.z,x.x,x.y,x.z,R.x,R.y,R.z),A[e(323)](o.x,o.y,o.z,o.x,o.y,o.z,o.x,o.y,o.z),y[e(323)](p,r[e(255)](c,r[e(390)])?r[e(312)](c,r[e(432)])?-2:0:-.5,p,r[e(328)](c,r[e(390)])?r[e(255)](c,r[e(354)])?2:0:1.5,r[e(309)](p,1.5),r[e(299)](c,r[e(390)])?0:.5),n&&v[e(323)](f,r[e(328)](c,r[e(390)])?r[e(255)](c,r[e(432)])?-2:0:-.5,f,r[e(255)](c,r[e(390)])?r[e(312)](c,r[e(354)])?2:0:1.5,r[e(247)](f,r[e(330)](r[e(262)](1.5,s),h)),r[e(328)](c,r[e(390)])?0:.5),b+=3,S[e(323)](r[e(335)](b,1),r[e(424)](b,3),r[e(433)](b,2)),m+=3}),k)),{totalDistance:h,position:g,normal:A,uv:y,uv2:v,indices:S,count:m}}const C$e=new Vector3,v$a=new Vector3,I$a=new Vector3,h$a=new Matrix4,d$7=new QuadraticBezierCurve3;function o$a(t,e,n,i,r,s){const a=M9,o={TgyJh:function(t,e){return t*e},EoqmV:function(t,e){return t/e},GjbpB:function(t,e){return t/e}},c=C$e[a(391)](e,t),l=v$a[a(391)](n,e),u=c[a(364)](),h=l[a(364)]();c[a(345)](),l[a(345)]();const d=Math[a(439)](o[a(284)](r?o[a(289)](u,2):u,.999999),i);s.v0[a(329)](e)[a(325)](c[a(321)](d)),s.v1[a(329)](e);const p=Math[a(439)](o[a(284)](o[a(264)](h,2),.999999),i);return s.v2[a(329)](e)[a(389)](l[a(321)](p)),s}class PathPointList{constructor(){__publicField(this,_x2),__publicField(this,_w);const t=M9;this[t(291)]=[],this[t(425)]=0}[(_x2=M9(291),_w=M9(425),M9(254))](t,e=.1,n=10,i=null,r=!1){const s=M9,a={hxmBQ:function(t,e){return t<e},ZuWVx:s(367),vMZjC:function(t,e){return t-e},odZAD:function(t,e){return t<e},FJcqM:function(t,e){return t===e},iqHgf:function(t,e){return t+e},uVQYx:function(t,e){return t-e}};if(t=t[s(283)](0),a[s(352)](t[s(364)],2))return console[s(322)](a[s(282)]),void(this[s(425)]=0);r&&!t[0][s(411)](t[a[s(438)](t[s(364)],1)])&&t[s(323)]((new Vector3)[s(329)](t[0]));for(let o=0,c=t[s(364)];a[s(353)](o,c);o++)if(a[s(378)](o,0))this[s(260)](t[o],t[a[s(396)](o,1)],i);else if(a[s(378)](o,a[s(438)](c,1)))if(r){this[s(257)](t[o],t[1],e,n,i);const r=this[s(291)][0][s(253)];this[s(291)][0][s(329)](this[s(291)][a[s(281)](this[s(425)],1)]),this[s(291)][0][s(253)]=r}else this[s(358)](t[o]);else this[s(257)](t[o],t[a[s(396)](o,1)],e,n,i)}[M9(336)](){const t=M9,e={UktEF:function(t,e){return t>e},oYHoG:function(t,e){return t-e}};return e[t(245)](this[t(425)],0)?this[t(291)][e[t(416)](this[t(425)],1)][t(253)]:0}[M9(374)](t){const e=M9;return!this[e(291)][t]&&(this[e(291)][t]=new B$o),this[e(291)][t]}[M9(260)](t,e,n){const i=M9,r={YRYjl:function(t,e){return t<e}};this[i(425)]=0;const s=this[i(374)](this[i(425)]);if(s[i(348)][i(329)](t),s[i(392)][i(391)](e,t),n)s.up[i(329)](n);else{let t=Number[i(403)];const e=Math[i(369)](s[i(392)].x),n=Math[i(369)](s[i(392)].y),a=Math[i(369)](s[i(392)].z);r[i(414)](e,t)&&(t=e,s.up[i(254)](1,0,0)),r[i(414)](n,t)&&(t=n,s.up[i(254)](0,1,0)),r[i(414)](a,t)&&s.up[i(254)](0,0,1)}s[i(301)][i(270)](s[i(392)],s.up)[i(345)](),s.up[i(270)](s[i(301)],s[i(392)])[i(345)](),s[i(253)]=0,s[i(337)]=1,s[i(258)]=!1,s[i(392)][i(345)](),this[i(425)]++}[M9(358)](t){const e=M9,n={NXuBM:function(t,e){return t-e},pInIc:function(t,e){return t>e},gGluI:function(t,e){return t+e}},i=this[e(291)][n[e(399)](this[e(425)],1)],r=this[e(374)](this[e(425)]);r[e(348)][e(329)](t),r[e(392)][e(391)](t,i[e(348)]);const s=r[e(392)][e(364)]();r[e(392)][e(345)](),r.up[e(329)](i.up);const a=C$e[e(270)](i[e(392)],r[e(392)]);if(n[e(410)](a[e(364)](),Number[e(295)])){a[e(345)]();const t=Math[e(377)](Math[e(439)](Math[e(437)](i[e(392)][e(415)](r[e(392)]),-1),1));r.up[e(294)](h$a[e(249)](a,t))}r[e(301)][e(270)](r[e(392)],r.up)[e(345)](),r[e(253)]=n[e(268)](i[e(253)],s),r[e(337)]=1,r[e(258)]=!1,this[e(425)]++}[M9(257)](t,e,n,i,r){const s=M9,a={sWUOP:function(t,e){return t>e},DaKqN:function(t,e){return t-e},ABUAT:function(t,e,n,i,r,s,a){return t(e,n,i,r,s,a)},OvPHp:function(t,e){return t===e},BjvbP:function(t,e){return t-e},rnavc:function(t,e){return t<e},ezmZh:function(t,e){return t+e}};if(a[s(315)](n,0)&&a[s(315)](i,0)){const o=this[s(291)][a[s(422)](this[s(425)],1)],c=a[s(318)](o$a,o[s(348)],t,e,n,a[s(349)](a[s(251)](this[s(425)],1),0),d$7)[s(320)](i);for(let t=0;a[s(407)](t,i);t++)this[s(340)](c[t],c[a[s(272)](t,1)],r,a[s(349)](t,0)?1:0);!c[i][s(411)](e)&&this[s(340)](c[i],e,r,2)}else this[s(340)](t,e,r,0,!0)}[M9(340)](t,e,n,i=0,r=!1){const s=M9,a={YqNcw:function(t,e){return t-e},qqitQ:function(t,e){return t===e},puXaD:function(t,e){return t===e},vNOax:function(t,e){return t>e},GtsaP:function(t,e){return t+e},fJOKb:function(t,e){return t/e},OKwgC:function(t,e){return t+e}},o=this[s(291)][a[s(421)](this[s(425)],1)],c=this[s(374)](this[s(425)]),l=C$e[s(391)](t,o[s(348)]),u=v$a[s(391)](e,t),h=l[s(364)]();if(l[s(345)](),u[s(345)](),c[s(348)][s(329)](t),a[s(252)](i,1)?c[s(392)][s(329)](l):a[s(252)](i,2)?c[s(392)][s(329)](u):(c[s(392)][s(393)](l,u),c[s(392)][s(345)]()),n)a[s(334)](c[s(392)][s(415)](n),1)?c[s(301)][s(270)](u,n)[s(345)]():c[s(301)][s(270)](c[s(392)],n)[s(345)](),c.up[s(270)](c[s(301)],c[s(392)])[s(345)]();else{c.up[s(329)](o.up);const t=I$a[s(270)](o[s(392)],c[s(392)]);if(a[s(420)](t[s(364)](),Number[s(295)])){t[s(345)]();const e=Math[s(377)](Math[s(439)](Math[s(437)](o[s(392)][s(415)](c[s(392)]),-1),1));c.up[s(294)](h$a[s(249)](t,e))}c[s(301)][s(270)](c[s(392)],c.up)[s(345)]()}c[s(253)]=a[s(280)](o[s(253)],h);const d=l[s(415)](u);c[s(337)]=Math[s(439)](a[s(233)](1,Math[s(241)](a[s(233)](a[s(290)](1,d),2))),1.415)||1,c[s(258)]=a[s(420)](Math[s(369)](a[s(421)](d,1)),.05)&&r,this[s(425)]++}}const B$n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAAAgCAMAAADt/IAXAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAbNQTFRFAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////D5fmPQAAAJF0Uk5TAAEEBgkMDxMWGh4iJiovNDg9QkdMUVZbYWZrcXZ8gYeMkpecoqessba8wMXKztPX2+Dk5+vu8vX4+v389/Tx7erm49/a1tLNycS/urWwq6agm5WQi4WAenVwamVgWlVQS0VBPDczLiklIR0ZFRILCAOd3Ojvll87Mi0O+6VvyJFsd9FKF1wQt+JXB0a7xk8FAs+f2RYAAAIiSURBVHictVeFVgJBFMXG7u7uTtbG7u7uVkrFFrH7kz16cF2Y92ZnB5wvuOfmG5Xq57m5e3h6efuoff38AwKDgkNCw8IjIqOiY2Lj4hMSk5JTUtPSMzKzsnNy8/ILCouKS0rLyisqq6prNIKmVlNX39DY1KxtaW1r7+js6u7p7esfGBwaHhkdG5+YnJqemZ2bX1hcWl5ZXVvf2Nza3tnd894/8NC5qSRPHoBeCsBQWmasMEkAVJIADkUARwAAT8UAHBkwsjNgA3C8aj6xATjlYACT4AwEcC4ycCFhwOyMBCQDJgkAUYJLmgROALhSyAAkgQSAAgmucQDfDJwhJjx3GYC4eAsggeEXgF0KStpuUAas3yZc42eAkgIBkYAeQwTArT2AO1kJCBNCEszCJlTZAdA5lwIWBuQluGf2gJgCzIRwCniqGJXAKFdENADcJnyQpsABwKMrTMiaAiyGrAy4RgITOUY35BYoAUA1oR5LgcA1x0wMPP0wYGFhgAXAMXWMdAgDaBOWU5uQTwL2LZCuoQB5QGYNEQZgCZAUIPcAJAF5E0I98KxwjIAY0hiwvvxVsRraAsYeeMWLiN0Daq6LSG8D8OaYAgFhAD/JFAHg3AL4KhYZYN2CO3yOtUQPPNLG6N0JBpAikv0ZASn4l7OcAQDYAx98Hnilx5DtIoIlIHpgkcKAwdGEsme5lV8CmSqGJVC8BZ/KfkZEEbHdhGbgd/wFJGJW8Gwfz3EAAAAASUVORK5CYII=",N$3=W$B;function W$B(t,e){const n=M$B();return(W$B=function(t,e){return n[t-=371]})(t,e)}!function(t,e){const n=W$B,i=t();for(;;)try{if(536636===-parseInt(n(388))/1+parseInt(n(432))/2+-parseInt(n(470))/3+-parseInt(n(379))/4+-parseInt(n(498))/5+-parseInt(n(384))/6+parseInt(n(430))/7*(parseInt(n(468))/8))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$B);class FatLine extends Line2{constructor(t,e={},n){var i=(...t)=>(super(...t),__publicField(this,_y2),this);const r=W$B,s={gyWbI:r(371),rLAPZ:r(464),Mgrvd:r(453)},a=s[r(433)][r(399)]("|");let o=0;for(;;){switch(a[o++]){case"0":this[r(389)]=()=>{const t=r;this[t(402)][t(387)][t(502)](n[t(401)],n[t(458)])};continue;case"1":n[r(426)](s[r(469)],this[r(389)]);continue;case"2":this[r(515)]();continue;case"3":this[r(389)]();continue;case"4":this[r(505)]=n;continue;case"5":i(new LineGeometry,new LineMaterial(Object[r(496)]({color:s[r(425)],linewidth:1,opacity:1,resolution:new Vector2},e)));continue;case"6":this[r(499)]=t;continue}break}}[(_y2=N$3(499),N$3(515))](t){const e=N$3;this[e(499)]=t||this[e(499)];const n=this[e(499)][e(475)](((t,n)=>(t[e(486)](n.x,n.y,n.z),t)),[]);this[e(421)][e(479)](n),this[e(451)]()}[N$3(495)](){const t=N$3,e={tJJoI:t(464)};this[t(505)][t(455)](e[t(415)],this[t(389)]),super[t(495)]()}}class RoadLine extends Mesh{constructor(t,e={},n){const i=N$3,r={RUHYj:i(444),LxCtI:function(t,e){return t===e},yBGBk:i(454)};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(435)]=n,this[i(499)]=t,this[i(383)]=o||this[i(435)][i(504)][i(378)]||(ua.pc?.6:.4),this.up=new Vector3(0,0,1);const l=new Texture(document[i(461)](r[i(482)]));l[i(406)]=LinearFilter,l[i(400)]=l[i(512)]=RepeatWrapping,l[i(460)].x=.3,this[i(402)]=new MeshBasicMaterial({transparent:!0,opacity:1,depthTest:!1,depthWrite:!1,map:l}),r[i(393)](c,r[i(420)])?this[i(443)](s,a):this[i(490)](s,a),this[i(515)](),this[i(478)]()}[(_D=N$3(499),_C=N$3(435),N$3(490))](t=N$3(453),e=N$3(410)){const n=N$3,i={EVrnu:function(t,e){return t*e},RMLIL:n(385),PKyFE:function(t,e){return t-e}};let r=this[n(402)][n(435)][n(381)],s=r[n(405)]("2d");r[n(383)]=i[n(509)](256,3),r[n(394)]=256,s[n(409)](0,0,r[n(383)],r[n(394)]),s[n(497)]=i[n(456)],s[n(491)](0,0,r[n(383)],r[n(394)]),s[n(497)]=t,s[n(491)](0,30,r[n(383)],i[n(457)](r[n(394)],60)),s[n(427)](),s[n(513)](0,30),s[n(412)](70,30),s[n(412)](170,128),s[n(412)](70,226),s[n(412)](0,226),s[n(412)](100,128),s[n(397)](),s[n(497)]=e,s[n(510)](),this[n(402)][n(435)][n(483)]=!0}[N$3(443)](t=N$3(453),e=N$3(410)){const n=N$3,i={HZIBf:function(t,e){return t*e},CvpuR:n(488),WAiWY:function(t,e){return t-e},Vrgjq:function(t,e){return t+e},ucsJY:function(t,e){return t+e},kwDgS:n(403)};let r=this[n(402)][n(435)][n(381)],s=r[n(405)]("2d");r[n(383)]=i[n(437)](256,3),r[n(394)]=256,s[n(438)]=i[n(471)],s[n(391)]=100,s[n(377)]=0,s[n(390)]=0,s[n(417)]=.01,s[n(409)](0,0,r[n(383)],r[n(394)]),s[n(497)]=t,s[n(491)](0,0,r[n(383)],r[n(394)]),s[n(497)]=t,s[n(491)](0,30,r[n(383)],i[n(431)](r[n(394)],60)),s[n(417)]=1;s[n(427)](),s[n(513)](0,30),s[n(412)](i[n(459)](70,350),30),s[n(412)](i[n(467)](170,350),128),s[n(412)](i[n(467)](70,350),226),s[n(412)](0,226),s[n(412)](100,128),s[n(397)](),s[n(497)]=t,s[n(510)](),s[n(438)]=i[n(429)],s[n(391)]=0,this[n(402)][n(435)][n(483)]=!0}[N$3(515)](t){const e=N$3,n={yJVrK:e(508)}[e(380)][e(399)]("|");let i=0;for(;;){switch(n[i++]){case"0":var r=new PathPointList;continue;case"1":this[e(421)]&&this[e(421)][e(495)]();continue;case"2":var s=new PathGeometry;continue;case"3":s[e(515)](r,{width:this[e(376)],arrow:!1});continue;case"4":r[e(502)](this[e(499)],.5,10,this.up,!1);continue;case"5":t&&(this[e(499)]=t);continue;case"6":this[e(421)]=s;continue}break}}[(_B=N$3(439),_A=N$3(376),_z2=N$3(383),N$3(478))](){const t=N$3,e={ktPCF:function(t,e){return t(e)},yNoTf:function(t,e){return t*e},giqFa:function(t,e){return t*e},Fodxz:function(t,e){return t!==e}};this[t(439)]=e[t(408)](requestAnimationFrame,(()=>this[t(478)]())),this[t(435)][t(481)][t(514)][t(419)]||this[t(435)][t(481)][t(514)][t(487)]||(this[t(402)][t(435)][t(463)].x-=.01);let n=e[t(423)](e[t(446)](this[t(435)][t(511)][t(395)](),this[t(383)]),15);n=+n[t(440)](1),e[t(474)](this[t(376)],n)&&(this[t(376)]=n,this[t(515)]())}[N$3(495)](){const t=N$3;({dDhXa:function(t,e){return t(e)}})[t(507)](cancelAnimationFrame,this[t(439)]),super[t(495)]()}}class PolygonLine extends Line2{constructor(t,e={},n){const i=N$3,r={vdvpT:function(t,e){return t*e},NUmYq:i(453),ccWSJ:i(500)};let s=new LineMaterial(Object[i(496)]({color:r[i(492)],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(435)]=n,this[i(499)]=t,this[i(515)](),this[i(389)]=()=>{const t=i;s[t(387)][t(502)](n[t(477)][t(505)][t(401)],n[t(477)][t(505)][t(458)]),e[t(375)]&&(s[t(434)]=s[t(506)]=r[t(450)](n[t(511)][t(395)](),20))},this[i(389)](),n[i(511)].on(r[i(414)],this[i(389)])}[(_G=N$3(435),_F=N$3(499),_E=N$3(389),N$3(515))](t){const e=N$3;this[e(499)]=t||this[e(499)];const n=this[e(499)][e(475)](((t,n)=>(t[e(486)](n.x,n.y,n.z),t)),[]);this[e(421)][e(479)](n),this[e(451)]()}[N$3(495)](){const t=N$3,e={rzeCN:t(500)};super[t(495)](),this[t(435)][t(511)][t(418)](e[t(398)],this[t(389)])}}class MultipleLine extends Line{constructor(){const t=N$3;super(new BufferGeometry,new MeshBasicMaterial({vertexColors:!0})),__publicField(this,_J,[]),__publicField(this,_I,[]),__publicField(this,_H,[]),this[t(476)]=!1}[(_J=N$3(499),_I=N$3(386),_H=N$3(442),N$3(413))](t,e,n){const i=N$3,r={aEDkP:function(t,e){return t/e}};let s=new Color(e);[...t,t[0]][i(435)]((t=>{const e=i;this[e(386)][e(486)](r[e(428)](this[e(499)][e(472)],3)),this[e(499)][e(486)](t.x,t.y,n||t.z||0),this[e(442)][e(486)](s.r,s.g,s.b)})),this[i(386)][i(486)](65535)}[N$3(416)](){}[N$3(493)](){const t=N$3,e={MdLMq:t(503),BGboe:t(422)};this[t(421)][t(441)](e[t(494)],new Float32BufferAttribute(this[t(499)],3)),this[t(421)][t(441)](e[t(382)],new Float32BufferAttribute(this[t(442)],3)),this[t(421)][t(449)](new Uint16BufferAttribute(this[t(386)],1))}}function M$B(){const t=["renderer","animate","setPositions","\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 ","navi","RUHYj","needsUpdate","uniforms","value","push","isSimulate","#fff","load","setTexture","fillRect","NUmYq","updateLine","MdLMq","dispose","assign","fillStyle","230385kELjsm","points","viewchange","4|6|2|1|3|5|0","set","position","options","domElement","dashSize","dDhXa","5|1|0|4|2|3|6","EVrnu","fill","amap","wrapT","moveTo","status","update","LLnNA","tQEdW","5|6|4|0|3|1|2","LdGmd","mccJC","HubYX","keepDashSize","_width","shadowOffsetX","roadLineWidth","3765424RQBvhK","yJVrK","image","BGboe","width","3962064QeJIYh","#999","indexs","resolution","1050843mcMvRe","handleResize","shadowOffsetY","shadowBlur","VVuLa","LxCtI","height","getResolution","\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 ","closePath","rzeCN","split","wrapS","clientWidth","material","transparent","bPygV","getContext","minFilter","zQMfv","ktPCF","clearRect","red","PGVYL","lineTo","addLine","ccWSJ","tJJoI","raycast","globalAlpha","off","isNavi","yBGBk","geometry","color","yNoTf","cappz","Mgrvd","addEventListener","beginPath","aEDkP","kwDgS","5432phsnmI","WAiWY","1976976RPwDcA","gyWbI","gapSize","map","gzwOI","HZIBf","shadowColor","RAFID","toFixed","setAttribute","colors","setTexture2","canvas","lwqrP","giqFa","1|0|2|6|4|3|5","white","setIndex","vdvpT","computeLineDistances","lHOPB","blue","dashed","removeEventListener","RMLIL","PKyFE","clientHeight","Vrgjq","repeat","createElement","TrxUz","offset","resize","CSKvP","#88FF00","ucsJY","24008ELTzIl","rLAPZ","246024ApmzvV","CvpuR","length","xRepeat","Fodxz","reduce","frustumCulled"];return(M$B=function(){return t})()}class RoadLine2 extends Mesh{constructor(t,e={},n){const i=N$3,r={TrxUz:i(444),lwqrP:i(448),LdGmd:i(453)};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(435)]=n,this[i(499)]=t,this[i(383)]=o||this[i(435)][i(504)][i(378)]||(isPc?.6:.4),this.up=new Vector3(0,0,1);const l=new Texture(document[i(461)](r[i(462)]));l[i(406)]=LinearFilter,l[i(400)]=l[i(512)]=RepeatWrapping,l[i(460)].x=this[i(473)],this[i(402)]=new ShaderMaterial({uniforms:{map:{value:l},lineLength:{value:1},xRepeat:{value:this[i(473)]},resolution:{value:1},color:{value:new Color(r[i(445)])},bgc:{value:new Color(r[i(372)])}},vertexShader:i(396),fragmentShader:i(480),transparent:!0,depthTest:!1,depthWrite:!1}),this[i(490)](),this[i(515)](),this[i(478)]()}[(_P=N$3(499),_O=N$3(435),_N=N$3(473),N$3(490))](t=N$3(448)){const e=N$3,n={cappz:function(t,e){return t*e},tQEdW:e(385),LLnNA:function(t,e){return t-e}};let i=this[e(402)][e(484)][e(435)][e(485)][e(381)],r=i[e(405)]("2d");i[e(383)]=n[e(424)](256,2),i[e(394)]=256,r[e(409)](0,0,i[e(383)],i[e(394)]),r[e(497)]=n[e(517)],r[e(491)](0,0,i[e(383)],i[e(394)]),r[e(409)](0,30,i[e(383)],n[e(516)](i[e(394)],60)),r[e(427)](),r[e(513)](0,30),r[e(412)](70,30),r[e(412)](170,128),r[e(412)](70,226),r[e(412)](0,226),r[e(412)](100,128),r[e(397)](),r[e(497)]=t,r[e(510)](),this[e(402)][e(484)][e(435)][e(485)][e(483)]=!0}[N$3(515)](t){const e=N$3,n={lHOPB:e(501)}[e(452)][e(399)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[e(421)]=s;continue;case"1":r[e(502)](this[e(499)],.5,10,this.up,!1);continue;case"2":var r=new PathPointList;continue;case"3":var s=new PathGeometry;continue;case"4":t&&(this[e(499)]=t);continue;case"5":s[e(515)](r,{width:this[e(376)],arrow:!1});continue;case"6":this[e(421)]&&this[e(421)][e(495)]();continue}break}}[(_M=N$3(439),_L=N$3(376),_K=N$3(383),N$3(478))](){const t=N$3,e={gzwOI:function(t,e){return t(e)},CSKvP:function(t,e){return t*e},PGVYL:function(t,e){return t!==e}};this[t(439)]=e[t(436)](requestAnimationFrame,(()=>this[t(478)]()));let n=this[t(435)][t(511)][t(395)](),i=e[t(465)](e[t(465)](n,this[t(383)]),15);i=+i[t(440)](1),this[t(402)][t(484)][t(387)][t(485)]=n,e[t(411)](this[t(376)],i)&&(this[t(376)]=i,this[t(515)]())}[N$3(495)](){const t=N$3;({bPygV:function(t,e){return t(e)}})[t(404)](cancelAnimationFrame,this[t(439)]),super[t(495)]()}}class RoadLine3 extends Mesh{constructor(t,e={},n){const i=N$3,r={mccJC:i(466)};super(),__publicField(this,_U),__publicField(this,_T),__publicField(this,_S),__publicField(this,_R),__publicField(this,_Q);const{bgc:s,color:a,width:o,style:c}=e;this[i(435)]=n,this[i(499)]=t,this[i(376)]=this[i(383)]=o||this[i(435)][i(504)][i(378)]||(ua.pc?.6:.4),this.up=new Vector3(0,0,1);const l=texureLoader[i(489)](B$n);l[i(400)]=l[i(512)]=RepeatWrapping,l[i(460)].x=.02;let u=r[i(373)];this[i(402)]=new MeshBasicMaterial({transparent:!0,opacity:1,depthTest:!1,depthWrite:!1,map:l,color:u}),this[i(515)](),this[i(478)]()}[(_U=N$3(499),_T=N$3(435),N$3(515))](t){const e=N$3,n={HubYX:e(447)}[e(374)][e(399)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[e(421)]&&this[e(421)][e(495)]();continue;case"1":t&&(this[e(499)]=t);continue;case"2":var r=new PathPointList;continue;case"3":s[e(515)](r,{width:this[e(376)],arrow:!1});continue;case"4":var s=new PathGeometry;continue;case"5":this[e(421)]=s;continue;case"6":r[e(502)](this[e(499)],2,10,this.up,!1);continue}break}}[(_S=N$3(439),_R=N$3(376),_Q=N$3(383),N$3(478))](){const t=N$3;this[t(439)]={VVuLa:function(t,e){return t(e)}}[t(392)](requestAnimationFrame,(()=>this[t(478)]())),this[t(402)][t(435)][t(463)].x-=.005}[N$3(495)](){const t=N$3;({zQMfv:function(t,e){return t(e)}})[t(407)](cancelAnimationFrame,this[t(439)]),super[t(495)]()}}var e$1=W$A;function W$A(t,e){var n=M$A();return(W$A=function(t,e){return n[t-=159]})(t,e)}function M$A(){var t=["globalAlpha","gGGYY","GRXJj","center","fillStyle","QNqAF","right","measureText","lines","width","kvtTe","LwOsO","_loadPromise","entries","length","RbUxf","prototype","#fff","lineGap","wVOuy","needsUpdate","redraw","fontWeight","textAlign","alphabetic","bgColor","strokeWidth","SabiZ","strokeStyle","cHNwT","normal","roundRect","defineProperty","areaType","createElement","#000","20nHqgOT","textWidth","0|4|2|5|6|1|3","FZxhZ","MtIQl","lhQId","4096mrsDIB","clearRect","max","VutJu","KgwTQ","iWEng","rgba(255,255,255,+0.005)","height","1ckXQeM","bbKXE","getContext","sDkKN","align","ggkQc","left","srWoE","min","dQoUi","146918jFtMyd","22furKqx","crossOrigin","then","font","fontVariant","WEmlm","textHeight","8RcObsp","cWtEi","map","padding","_height","src","miterLimit","324tOQxyx","700584axxfHU","dXLbB","PGcxG","shBHY","textBaseline","mFGwz","xKGHu","iconHeight","load","253764Kjjwlm","fillRect","203035xgpgGT","CocNs","anonymous","reduce","qhHyR","1625610xiHtXI","XndnU","KARHf","sans-serif","_width","ERkhw","split","lineWidth","fillText","uqqbI","strokeText","needsRedraw","TbldV","iqBbk","uuepX","195198udtddV","image","BrJVb","fontSize","zDDly","EwjOk","BGcQE","uBNXa","forEach","UopTr","join","assign","asoIX","_iconHeight","addEventListener","text","canvas","qXUgz","drawImage","OcMZr","fontStyle","fill","fontFamily","VAQGq"];return(M$A=function(){return t})()}!function(t,e){for(var n=W$A,i=t();;)try{if(122277===-parseInt(n(198))/1*(parseInt(n(208))/2)+parseInt(n(223))/3*(parseInt(n(190))/4)+parseInt(n(184))/5*(parseInt(n(255))/6)+-parseInt(n(235))/7*(-parseInt(n(216))/8)+-parseInt(n(233))/9+-parseInt(n(240))/10+-parseInt(n(209))/11*(-parseInt(n(224))/12))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$A);const B$m={};function n$e(t,e,n,i,r){var s=W$A;return[n,i,r,{ERkhw:function(t,e){return t+e}}[s(245)](e,"px"),t][s(265)](" ")}let C$d=class extends Texture{constructor(t={}){var e=W$A,n={bbKXE:e(271),srWoE:e(282),SabiZ:e(165),EwjOk:e(243),xKGHu:function(t,e){return t*e},lhQId:e(178),ggkQc:e(183),OcMZr:function(t,e){return t*e}};super(document[e(182)](n[e(199)]),void 0,void 0,void 0,LinearFilter,LinearMipmapLinearFilter),Object[e(266)](this,{_align:t[e(202)]||n[e(205)],_fillStyle:t[e(283)]||n[e(175)],_fontFamily:t[e(277)]||n[e(260)],_fontSize:n[e(230)](t[e(258)]?+t[e(258)]:16,devicePixelRatio),_fontStyle:t[e(275)]||n[e(189)],_fontVariant:t[e(213)]||n[e(189)],_fontWeight:t[e(170)]||n[e(189)],_lineGap:t[e(166)]||.15,_padding:t[e(219)]||.25,_strokeStyle:t[e(176)]||n[e(203)],_strokeWidth:t[e(174)]||0,_text:t[e(270)]||"",_src:t[e(221)]||null,_areaType:t[e(181)],_bgColor:t[e(173)],_iconHeight:t[e(231)],needsRedraw:!0}),this[e(231)]=n[e(274)](this[e(268)]||36,devicePixelRatio),this[e(169)]()}get[e$1(287)](){var t=e$1;return this[t(270)]?this[t(270)][t(246)]("\n"):[]}get[e$1(185)](){for(var t=e$1,e={MtIQl:t(186),XndnU:t(271),cHNwT:function(t,e,n,i,r,s){return t(e,n,i,r,s)}},n=e[t(188)][t(246)]("|"),i=0;;){switch(n[i++]){case"0":var r=this[t(277)];continue;case"1":if(l[t(162)]){var s=document[t(182)](e[t(241)])[t(200)]("2d");return s[t(212)]=e[t(177)](n$e,r,1,o,a,c),l[t(218)]((function(e){var n=t;return s[n(286)](e)[n(288)]}))[t(238)]((function(e,n){return Math[t(192)](e,n)}))}continue;case"2":var a=this[t(213)];continue;case"3":return 0;case"4":var o=this[t(275)];continue;case"5":var c=this[t(170)];continue;case"6":var l=this[t(287)];continue}break}}get[e$1(215)](){var t=e$1,e={QNqAF:function(t,e){return t+e},FZxhZ:function(t,e){return t*e},VAQGq:function(t,e){return t-e}},n=this[t(287)][t(162)];return n?e[t(284)](n,e[t(187)](this[t(166)],e[t(278)](n,1))):0}get[e$1(288)](){var t=e$1,e={RbUxf:function(t,e){return t>e},kvtTe:function(t,e){return t/e},TbldV:function(t,e){return t/e},shBHY:function(t,e){return t+e},UopTr:function(t,e){return t*e}};if(!this[t(244)]){let{padding:n,strokeWidth:i,textWidth:r,text:s}=this;s&&(e[t(163)](e[t(289)](r,s[t(162)])?e[t(289)](r,s[t(162)]):1,1.5)&&(r=e[t(252)](r,8)),n+=e[t(289)](i,2),this[t(244)]=e[t(227)](e[t(264)](2,n),r))}return this[t(244)]}get[e$1(197)](){var t=e$1,e={GRXJj:function(t,e){return t+e},dXLbB:function(t,e){return t+e},gGGYY:function(t,e){return t*e},VutJu:function(t,e){return t+e},uqqbI:function(t,e){return t/e},LwOsO:function(t,e){return t/e}};return!this[t(220)]&&(this[t(220)]=e[t(281)](e[t(225)](e[t(280)](2,e[t(193)](this[t(219)],e[t(249)](this[t(174)],2))),this[t(215)]),this[t(221)]?e[t(159)](this[t(231)],e[t(281)](e[t(225)](this[t(219)],this[t(174)]),this[t(258)])):0)),this[t(220)]}[e$1(169)](){var t=e$1,e={qXUgz:function(t,e){return t/e},uuepX:function(t,e){return t/e},uBNXa:function(t,e){return t-e},iWEng:function(t,e){return t>e},iqBbk:function(t,e){return t*e},qhHyR:function(t,e){return t*e},mFGwz:function(t,e){return t/e},WEmlm:function(t,e){return t/e},BrJVb:function(t,e){return t+e},CocNs:function(t){return t()},PGcxG:t(232),KARHf:t(237),asoIX:function(t,e,n,i,r,s){return t(e,n,i,r,s)},KgwTQ:t(204),sDkKN:t(285),dQoUi:t(282),BGcQE:function(t,e){return t/e},zDDly:t(172),wVOuy:t(196)};if(this[t(251)]){var n=this[t(256)];if(n){let{fontSize:S,height:b,width:x}=this;var i=n[t(200)]("2d");if(i[t(191)](0,0,n[t(288)],n[t(197)]),b*=S,(x*=S)&&b){var r,s=this[t(202)],a=this[t(283)],o=this[t(277)],c=this[t(275)],l=this[t(213)],u=this[t(170)],h=this[t(166)],d=this[t(287)],p=this[t(219)],f=this[t(176)],m=this[t(174)],g=this[t(221)],A=this[t(173)],y=0;if(n[t(288)]=x,n[t(197)]=A?e[t(239)](1.2,b):b,g){let n=B$m[g];y=this[t(231)];let r=()=>{var r=t;let s=e[r(272)](n[r(288)],n[r(197)]);i[r(273)](n,0,0,n[r(288)],n[r(197)],e[r(254)](e[r(262)](this[r(256)][r(288)],e[r(195)](s,1)?y:e[r(253)](y,s)),2),0,e[r(195)](s,1)?y:e[r(239)](y,s),e[r(195)](s,1)?e[r(229)](y,s):y),this[r(168)]=!0,y=Math[r(206)](e[r(239)](s,y),e[r(214)](y,s))};if(!n){n=new Image;let{promise:i,resolve:s}=e[t(236)](getPromise);i[t(211)](r),n[t(160)]=i,n[t(269)](e[t(226)],s),n[t(210)]=e[t(242)],n[t(221)]=g,B$m[g]=n}n[t(160)][t(211)](r)}switch(p+=e[t(272)](m,2),m*=S,h*=S,p*=S,i[t(212)]=e[t(267)](n$e,o,S,c,l,u),s){case e[t(194)]:i[t(171)]=e[t(194)],r=p;break;case e[t(201)]:i[t(171)]=e[t(201)],r=e[t(262)](x,p);break;case e[t(207)]:i[t(171)]=e[t(207)],r=e[t(261)](x,2)}i[t(228)]=e[t(259)];var v=e[t(257)](e[t(257)](e[t(261)](p,2),S),y);A?(i[t(283)]=A,i[t(179)]&&i[t(179)](0,0,x,b,8),i[t(279)]=.7,i[t(276)]()):(i[t(283)]=e[t(167)],i[t(234)](0,0,x,b)),i[t(279)]=1,i[t(283)]=a,i[t(222)]=1,i[t(247)]=m,i[t(176)]=f,d[t(263)]((function(n){var s=t;m&&i[s(250)](n,r,v),i[s(248)](n,r,v),v+=e[s(257)](S,h)}))}else n[t(288)]=n[t(197)]=1;this[t(251)]=!1,this[t(168)]=!0}}}};Object[e$1(161)]({_align:e$1(202),_fillStyle:e$1(283),_fontFamily:e$1(277),_fontSize:e$1(258),_fontStyle:e$1(275),_fontVariant:e$1(213),_fontWeight:e$1(170),_lineGap:e$1(166),_padding:e$1(219),_strokeStyle:e$1(176),_strokeWidth:e$1(174),_text:e$1(270),_src:e$1(221),_bgColor:e$1(173),_areaType:e$1(181)})[e$1(263)]((function(t){var e=e$1,n={cWtEi:function(t,e){return t!==e}},i=t[0],r=t[1];Object[e(180)](C$d[e(164)],r,{get:function(){return this[i]},set:function(t){var r=e;n[r(217)](this[i],t)&&(this[i]=t,this[r(251)]=!0)}})}));const P$1=W$z;let n$d;!function(t,e){const n=W$z,i=t();for(;;)try{if(413291===-parseInt(n(330))/1*(-parseInt(n(326))/2)+-parseInt(n(338))/3+-parseInt(n(372))/4*(-parseInt(n(354))/5)+-parseInt(n(366))/6*(parseInt(n(329))/7)+-parseInt(n(356))/8+-parseInt(n(331))/9+parseInt(n(343))/10*(parseInt(n(339))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$z);const C$c=new Map;class TextSprite extends Sprite{constructor(t){const e=P$1,n={ygTZn:function(t,e){return t+e},YoopE:function(t,e){return t+e},mmYqc:function(t,e){return t+e},wmkuL:function(t,e){return t+e},rUaKU:function(t,e){return t===e},nUrZq:function(t,e,n,i){return t(e,n,i)},RBIKi:function(t,e){return t(e)},gnDtA:function(t,e,n){return t(e,n)}};let i=n[e(377)](n[e(384)](n[e(377)](n[e(373)](n[e(377)](n[e(364)](t[e(376)],(t[e(388)]||"")[e(324)](-10)),t[e(342)]),t[e(365)]),t[e(334)]),t[e(375)]),t[e(378)]),r=C$c[e(359)](i);if(!r){let n=new C$d(t);isPc?(n[e(335)]=LinearMipMapLinearFilter,n[e(351)]=LinearFilter,n[e(348)]=!1):(n[e(335)]=LinearFilter,n[e(351)]=NearestFilter),r=new SpriteMaterial({sizeAttenuation:!1,depthTest:!1,depthWrite:!1,map:n}),C$c[e(328)](i,r)}super(r),__publicField(this,_Y),__publicField(this,_X),__publicField(this,_W,!1),__publicField(this,_V),this[e(382)]=t,this[e(358)][e(328)](.5,t[e(388)]?.5:0),this[e(337)]=!!n[e(362)](this[e(382)][e(337)],void 0)||this[e(382)][e(337)],this[e(344)]=t[e(344)]||".",n[e(333)](setSize,this,1,t[e(323)][e(325)]),this[e(382)][e(323)][e(353)][e(357)](this),!this[e(382)][e(323)][e(368)][this[e(344)]]&&(this[e(382)][e(323)][e(368)][this[e(344)]]=new Collision),n[e(379)](clearTimeout,n$d),n$d=n[e(367)](setTimeout,(()=>{const t=e;this[t(382)][t(323)][t(353)][t(386)](((e,n)=>n[t(382)][t(360)]-e[t(382)][t(360)])),this[t(382)][t(323)][t(381)]()}),50),this[e(345)]()}get[(_Y=P$1(382),_X=P$1(337),_W=P$1(369),P$1(350))](){return this[P$1(369)]}set[P$1(350)](t){const e=P$1;this[e(369)]=t,{WxYmn:function(t,e){return t===e}}[e(340)](!t,this[e(349)])||this[e(345)]()}[(_V=P$1(344),P$1(345))](){var t;const e=P$1,n={qehnr:function(t,e,n,i){return t(e,n,i)},rtKFf:function(t,e){return t-e},GahzX:function(t,e){return t*e},YzSay:function(t,e){return t-e},rmRka:function(t,e){return t-e}};if(this[e(350)])return void(this[e(349)]=!1);if(!this[e(337)]||!(null==(t=this[e(374)])?void 0:t[e(349)]))return;let i=n[e(352)](convert3dTo2d,this[e(383)],this[e(382)][e(323)][e(341)],{clientWidth:this[e(382)][e(323)][e(389)][e(385)],clientHeight:this[e(382)][e(323)][e(389)][e(361)]});if(!i[e(363)])return void(this[e(349)]=!1);let{pos:r}=i;const s=this[e(370)][e(380)][e(371)];let a=s[e(361)],o=s[e(385)],c=this[e(358)].x,l=this[e(358)].y,u={w:o/=devicePixelRatio,h:a/=devicePixelRatio,x:n[e(355)](r.x,n[e(327)](o,c)),y:n[e(387)](r.y,n[e(327)](a,n[e(347)](1,l)))},h=this[e(382)][e(323)][e(368)][this[e(344)]][e(357)](u);this[e(349)]=!h}[P$1(336)](){const t=P$1;this[t(382)][t(323)][t(353)][t(346)](this[t(382)][t(323)][t(353)][t(332)](this),1),super[t(336)]()}}function W$z(t,e){const n=M$z();return(W$z=function(t,e){return n[t-=323]})(t,e)}function M$z(){const t=["collision","splice","rmRka","generateMipmaps","visible","_hide","magFilter","qehnr","markerPool","865sFkgfP","rtKFf","3351640eHFDdG","push","center","get","zIndex","height","rUaKU","inSight","wmkuL","fillStyle","582zvOfAt","gnDtA","markerCollisionPool","__hide","material","image","13964JmvsWF","mmYqc","parent","strokeStyle","text","ygTZn","strokeWidth","RBIKi","map","handleMarkerCollision","option","position","YoopE","width","sort","YzSay","src","amap","vmap","slice","sizeRatio","14xOQEtJ","GahzX","set","42959zyyaBC","13606FiVKsd","4109283pDVoKq","indexOf","nUrZq","fontSize","minFilter","dispose","isCollision","1551276jLFaWK","2674617DzBSCu","WxYmn","camera","bgColor","70DlIiah","group"];return(M$z=function(){return t})()}function M$y(){const t=["autoClear","qGlwC","yjrGU","setRenderTarget","far","updateMatrixWorld","iqVSl","lights","textureWidth","BUcAf","subVectors","getRenderTarget","vertexShader","isWater","position","waterNormals","negate","tuuLk","IMiDe","sunColor","setFromMatrixPosition","merge","aoRKR","constant","5uqrhIr","eye","multiplyScalar","5876094egDfqM","dot","sttyL","textureMatrix","side","clone","ARKXj","matrixWorldInverse","buffers","matrixWorld","10vetdqU","enabled","\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}","depth","600303heefXH","4092714QmscUM","fragmentShader","WCeZP","RumeG","UQCQy","uniforms","qChVb","clear","\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}","applyMatrix4","normalSampler","time","clipBias","tRIMh","material","autoUpdate","OyejA","JPFiG","HyjCw","elements","40046THPbTG","MirrorShader","multiply","copy","render","reflect","6872952ROEprn","sunDirection","sign","uFQpQ","stopRender","alpha","mirrorSampler","FiyxD","xnjoI","kedfs","set","distortionScale","viewport","fog","visible","add","3178455nBryfF","setFromNormalAndCoplanarPoint","waterColor","name","texture","state","4IYIgyx","shadowMap","setMask","hOHsk","textureHeight","27GrKLOe","extractRotation","gkYsT","projectionMatrix","18115196KHqtVz","lookAt","JnaQK","normal","xUDiL","onBeforeRender","jccgR","value","BwUFo","PtHtn","LZbMc"];return(M$y=function(){return t})()}function W$y(t,e){const n=M$y();return(W$y=function(t,e){return n[t-=204]})(t,e)}!function(t,e){const n=W$y,i=t();for(;;)try{if(548409===parseInt(n(241))/1*(parseInt(n(208))/2)+-parseInt(n(297))/3*(-parseInt(n(236))/4)+parseInt(n(280))/5*(-parseInt(n(283))/6)+parseInt(n(230))/7+-parseInt(n(214))/8+-parseInt(n(298))/9+parseInt(n(293))/10*(parseInt(n(245))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$y);let B$l=class extends Mesh{constructor(t,e={}){const n=W$y,i={LZbMc:n(309),PtHtn:function(t,e){return t/e},OyejA:function(t,e){return t>e},iqVSl:function(t,e){return t+e},sttyL:function(t,e){return t+e},hOHsk:function(t,e){return t/e},IMiDe:function(t,e){return t+e},HyjCw:function(t,e){return t-e},xUDiL:function(t,e){return t===e},RumeG:function(t,e){return t!==e},uFQpQ:function(t,e){return t!==e},tuuLk:function(t,e){return t!==e},ARKXj:function(t,e){return t!==e},UQCQy:function(t,e){return t!==e},kedfs:function(t,e){return t!==e},JnaQK:function(t,e){return t!==e},qChVb:function(t,e){return t!==e},yjrGU:n(209),tRIMh:n(227),jccgR:n(263),qGlwC:n(220),aoRKR:n(286),xnjoI:n(219),gkYsT:n(308),BUcAf:n(275),JPFiG:n(232),FiyxD:n(215),WCeZP:n(225),BwUFo:n(281)};super(t),this[n(269)]=!0;const r=i[n(217)](e[n(264)],void 0)?e[n(264)]:512,s=i[n(217)](e[n(240)],void 0)?e[n(240)]:512,a=i[n(273)](e[n(310)],void 0)?e[n(310)]:0,o=i[n(217)](e[n(219)],void 0)?e[n(219)]:1,c=i[n(289)](e[n(309)],void 0)?e[n(309)]:0,l=i[n(289)](e[n(271)],void 0)?e[n(271)]:null,u=i[n(217)](e[n(215)],void 0)?e[n(215)]:new Vector3(.70707,0,.70707),h=new Color(i[n(217)](e[n(275)],void 0)?e[n(275)]:16777215),d=new Color(i[n(302)](e[n(232)],void 0)?e[n(232)]:8355711),p=i[n(223)](e[n(281)],void 0)?e[n(281)]:new Vector3(0,0,0),f=i[n(247)](e[n(225)],void 0)?e[n(225)]:20,m=i[n(304)](e[n(287)],void 0)?e[n(287)]:FrontSide,g=!!i[n(302)](e[n(227)],void 0)&&e[n(227)],A=new Plane,y=new Vector3,v=new Vector3,S=new Vector3,b=new Matrix4,x=new Vector3(0,0,-1),M=new Vector4,T=new Vector3,I=new Vector3,E=new Vector4,C=new Matrix4,w=new PerspectiveCamera,R=new WebGLRenderTarget(r,s),k={name:i[n(258)],uniforms:UniformsUtils[n(277)]([UniformsLib[i[n(311)]],UniformsLib[i[n(251)]],{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(306),fragmentShader:n(295)},_=new ShaderMaterial({name:k[n(233)],uniforms:UniformsUtils[n(288)](k[n(303)]),vertexShader:k[n(268)],fragmentShader:k[n(299)],lights:!0,side:m,fog:g});_[n(303)][i[n(257)]][n(252)]=R[n(234)],_[n(303)][i[n(278)]][n(252)]=C,_[n(303)][i[n(222)]][n(252)]=o,_[n(303)][i[n(255)]][n(252)]=c,_[n(303)][i[n(243)]][n(252)]=l,_[n(303)][i[n(265)]][n(252)]=h,_[n(303)][i[n(205)]][n(252)]=d,_[n(303)][i[n(221)]][n(252)]=u,_[n(303)][i[n(300)]][n(252)]=f,_[n(303)][i[n(253)]][n(252)]=p,this[n(312)]=_,this[n(250)]=function(t,e,r){const s=n;if(this[s(218)])return;if(v[s(276)](this[s(292)]),S[s(276)](r[s(292)]),_[s(303)][i[s(255)]][s(252)]+=i[s(254)](1,120),b[s(242)](this[s(292)]),y[s(224)](0,0,1),y[s(307)](b),T[s(266)](v,S),i[s(204)](T[s(284)](y),0))return;T[s(213)](y)[s(272)](),T[s(229)](v),b[s(242)](r[s(292)]),x[s(224)](0,0,-1),x[s(307)](b),x[s(229)](S),I[s(266)](v,x),I[s(213)](y)[s(272)](),I[s(229)](v),w[s(270)][s(211)](T),w.up[s(224)](0,1,0),w.up[s(307)](b),w.up[s(213)](y),w[s(246)](I),w[s(260)]=r[s(260)],w[s(261)](),w[s(244)][s(211)](r[s(244)]),C[s(224)](.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),C[s(210)](w[s(244)]),C[s(210)](w[s(290)]),A[s(231)](y,v),A[s(307)](w[s(290)]),M[s(224)](A[s(248)].x,A[s(248)].y,A[s(248)].z,A[s(279)]);const o=w[s(244)];E.x=i[s(254)](i[s(262)](Math[s(216)](M.x),o[s(207)][8]),o[s(207)][0]),E.y=i[s(254)](i[s(285)](Math[s(216)](M.y),o[s(207)][9]),o[s(207)][5]),E.z=-1,E.w=i[s(239)](i[s(274)](1,o[s(207)][10]),o[s(207)][14]),M[s(282)](i[s(239)](2,M[s(284)](E))),o[s(207)][2]=M.x,o[s(207)][6]=M.y,o[s(207)][10]=i[s(206)](i[s(262)](M.z,1),a),o[s(207)][14]=M.w,p[s(276)](r[s(292)]);const c=t[s(267)](),l=t.xr[s(294)],u=t[s(237)][s(313)];this[s(228)]=!1,t.xr[s(294)]=!1,t[s(237)][s(313)]=!1,t[s(259)](R),t[s(235)][s(291)][s(296)][s(238)](!0),i[s(249)](t[s(256)],!1)&&t[s(305)](),t[s(212)](e,w),this[s(228)]=!0,t.xr[s(294)]=l,t[s(237)][s(313)]=u,t[s(259)](c);const h=r[s(226)];i[s(301)](h,void 0)&&t[s(235)][s(226)](h)}}};const D$1=W$x;function M$x(){const t=["#cccccc","beacon","createShapeGeo","vCLRJ","castShadow","areaSpriteGroup","lzEGQ","#47ddff","XrBmz","clientWidth","dashed","MwOYw","168LXbPBP","keDLF","modelGroup","geo","EbgUz","1716622714522963968","_debugPathGroup","multiplyScalar","uKQDP","debugBeacon","toArray","update","enableDistanceDetect","fontIcon","yIHcp","mapId","EHKfP","polygonDataArr","includes","naturalHeight","200mdTpgS","ZlYDr","scene","addModel","TUgqx","iICPQ","jYkQw","gFSDm","JxxfI","MiktF","colorMap","texList","clipAction","lBLVu","addEditMarker","addCustomMarker","OsgZU","dispose","bgc","center","updateMatrix","line","markerGroup","viewchange","renderer","hideName","polygon-","deArA","topMapSize","getPolygonById","data","ids","3|0|2|1|4","getZoom","getModelById","RHwUS","ICOLk","parentArea","HqUIf","#fff","fontSize","initMarker","blue","mat","nraiB","topLogoOffset","EditMarker","172031KGTiSf","IWLhf","depthWrite","addPolygon","object","findByName","addCustomNaviLine","color","polygonType","sideMapRotation","txNUN","jYfmH","wrapT","filter","WvGoL","1020Ltnbgd","options","play","6|0|5|8|1|2|4|3|7","KudpV","_noClick","circle","topMap","MYhBq","TPjCw","HOsGA","lnDFk","naturalWidth","style","QyypO","man","status","frustumCulled","src","HFQjo","IFeEd","FFFZA","gCdtV","add","floorId","themeColor","ECtvF","HipUe","multipleLine","traverse","rect","LQTpg","isWater","hidePolygon","addDomMarker","show","shadow","nobIW","load","XdcfT","tziWs","pjVkG","addLine","transparent","kBTky","JTRHj","rectInstanceMesh","linewidth","PsFVB","block","eqzZZ","initPolgon","opacity","sZpIs","url","name","oUnhg","__colorSpace","areaZoom","isInstanceEntity","_click","sideMap","setZ","ZWcXX","ldEIe","#666","computeBoundsTree","circleInstanceMesh","NHGKR","kEeCq","loadAsync","nXidI","1716622714522963969","initModel","hide","caHLk","XvbnK","interact","mbOWp","map","zTxzP","oHKpI","areaPolygonGroup","328791cInBRD","Pldgq","getPolygonDataById","customMarkerData","polygonLoaded","navi","#477df5","removeFloorTitle","topLogoRotation","car","bEzpk","polygon","fMUce","scale","object3d","QlLvS","pLpkS","length","zOTJi","cRbMS","QxufH","ubpoL","beaconData","general","polygonLayer","mapObject","gBQZn","floorHeight","VIQFN","pathOptipns","3454scAtBw","faceline","vOuNk","./www.wxb3d.com/park-edit/model/","CcOeJ","DsrGb","4|1|2|5|0|3","6|4|7|11|5|3|2|8|10|1|9|0","4|2|8|5|0|6|3|10|9|7|1","HlJeG","bottom","width","text","removeNaviLine","addBeacon","UcIfq","cornerSplit","routeGroup","JlYzY","uvezV","instanceType","sideMapSize","uWTeR","IGtKl","qoosW","instanceScale","wrapS","lOZyJ","oPCXM","repeat","PQNAx","floorModelAllLoaded","cornerRadius","addEventListener","rdyzf","api","NinDc","bhwPM","NAzTu","setFromPoints","fxWGy","intersectArea","iplir","addFloorTitle","pWlUN","fontWeight","initLanguageListener","createPolygonGeometry","kyaJS","BSdiu","QCQrs","topLogoScale","tGQuT","IHWhl","#049EF4","topMapRotation","topLineColor","indexOf","sUxEq","nUtFf","toFixed","210sdUqLn","bgi","instances","#ccc","rotation","CMzch","27205gOXIeA","QXXBP","CnMFM","qgFvE","YWYqH","ouNFN","userData","depthTest","intersectObjectsBy2D","polygonData","manCar","toString","number","removeCustomMarker","FizfN","xwmgO","debugPath","csVVU","isModel","addBgi","forEach","arr","getPointsFit","cUTEo","addLogo","XNyVz","type","ttsey","set","VRkjI","customNaviLine","copy","removeFromParent","floorTitle","ZryBH","clone","#FFFFFF","700","mapData","children","fAAFu","qplfM","areaPolygon","kXAEk","tiPRR","flat","iFmPJ","PKKSK","sizeRatio","position","language","removeAllCustomMarker","zIndex","rotateAround","addLocationPoint","material","computeBVH","generateMipmaps","http","modelLayer","path","huWSk","IUvKT","🚀 ~ bgi.url:","krQxr","BjPhh","split","find","getDelta","elzEg","MiaaE","ipkTt","4QHEyME","fog","#ff994a","2377314naNYIo","points","YZsDV","QeDgL","createWater","addInstances","ACWqh","height","dashScale","isMesh","domElement","topLogo","stopRender","gJPJC","NyibQ","instanceArr","push","IFSMv","QEuXN","createLine","createPolygon","updateLine","sans-serif","rotateZ","intersectObjectsByLine","TSqtH","Vwpcp","route","count","DztlW","renderOrder","fontColor","ySfzb","point","instanceRotation","addNaviLine","modelData","values","addMarker","qExRB","minFilter","lowPower","floor","worldUnits","IBZEr","translate","geometry","customMarker","markerLayer","plane","receiveShadow","geos","image","visible","isPass","sub","emit","log","SObRc","markCount","polygonGroup","TCL: geo","parent","clientHeight","pbSto","//www.wxb3d.com/park-edit/model/","oZCWQ","44170NMIiuD","SJojZ","ECReN","naviLine","languageChanged","$language","bdCLV","addFaceLine","Atcob","tlwaq","wVqbL","keepDashSize","getMarkerById","zVjMC","createFaceLine","WekMK","amap","#555","NsMLZ","DFQbq","VKwAv"];return(M$x=function(){return t})()}function W$x(t,e){const n=M$x();return(W$x=function(t,e){return n[t-=342]})(t,e)}!function(t,e){const n=W$x,i=t();for(;;)try{if(191029===parseInt(n(717))/1+-parseInt(n(547))/2*(-parseInt(n(378))/3)+-parseInt(n(732))/4+-parseInt(n(475))/5*(-parseInt(n(469))/6)+-parseInt(n(617))/7*(parseInt(n(650))/8)+-parseInt(n(550))/9+-parseInt(n(670))/10*(-parseInt(n(408))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$x);const v$9={};let I$9={},h$9=[];console[D$1(607)](D$1(611),I$9);const d$6={};let o$9=new Clock,c$8=[];function w$8(){const t=D$1;({HipUe:function(t,e){return t(e)}})[t(759)](requestAnimationFrame,w$8),c$8[t(395)]&&c$8[t(374)]((e=>e[t(661)](o$9[t(543)]())))}function s$7(t=30){const e=D$1,n={jYfmH:function(t,e){return t*e},txNUN:function(t,e){return t/e},Pldgq:function(t,e){return t<e},JlYzY:function(t,e){return t*e}};let i=[],r=n[e(728)](n[e(727)](360,t),DEG2RAD),s=new Vector2(0,0),a=new Vector2(1,0);for(let o=0;n[e(379)](o,t);o++){let t=a[e(510)]()[e(528)](s,n[e(426)](o,r));i[e(566)](new Vector3(t.x,t.y,0))}return i}function i$5(t,e,n){const i=D$1,r=new AnimationMixer(t),s=AnimationClip[i(722)](e,n);if(s){r[i(682)](s)[i(734)]()}return r}w$8();let Z$4=class extends B$s{constructor(t,e){const n=D$1,i={elzEg:function(t,e){return t===e},OsgZU:n(367),TSqtH:n(655),csVVU:function(t,e){return t===e},WvGoL:function(t,e){return t===e},tlwaq:function(t,e){return t!==e},tziWs:function(t,e){return t+e},FFFZA:n(592),oUnhg:function(t){return t()},ouNFN:n(585),CnMFM:n(421),nUtFf:n(529),HOsGA:n(526),pjVkG:n(685),VRkjI:n(488)};super(),__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,!0),__publicField(this,_ga),__publicField(this,_fa),__publicField(this,_ea),__publicField(this,_da),__publicField(this,_ca,{[CrossType[D$1(344)]]:0,[CrossType[D$1(387)]]:255,[CrossType[D$1(747)]]:65280,[CrossType[D$1(485)]]:16711680}),__publicField(this,_ba),__publicField(this,_aa,new Object3D),__publicField(this,_$,new Object3D),__publicField(this,__,0),__publicField(this,_Z,new Object3D),this[n(700)]=t,this[n(392)]=new Group$1,this[n(392)][n(481)][n(403)]=this,this[n(392)][n(350)]=i[n(753)],this[n(374)]=e;let r=this[n(374)][n(733)][n(591)]?new MeshBasicMaterial({transparent:!0,alphaTest:.1}):[new(this[n(374)][n(768)]?MeshStandardMaterial:MeshBasicMaterial)({transparent:!0,alphaTest:.1}),new MeshStandardMaterial({transparent:!0,alphaTest:.1})];this[n(778)]=new f$1(this[n(455)]({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(778)][n(355)]=!0,this[n(362)]=new f$1(this[n(455)]({points:i[n(351)](s$7),height:1}),r,{createEntities:!0}),this[n(362)][n(355)]=!0,this[n(362)][n(580)]=this[n(778)][n(580)]=t[n(405)]||0,this[n(362)][n(749)]=this[n(778)][n(749)]=!1,this[n(778)][n(531)](),this[n(362)][n(531)](),this[n(392)][n(755)](this[n(778)],this[n(362)]),this[n(760)]=new MultipleLine,this[n(392)][n(755)](this[n(760)]),this[n(346)](t),this[n(711)](t),this[n(368)](t),(!debug||!this[n(374)][n(733)][n(591)])&&this[n(494)](),this[n(422)](),debug&&this[n(491)](),this[n(585)](),this[n(685)](),this[n(700)][n(612)]&&this[n(451)](),this[n(454)](),this[n(374)].on(i[n(480)],(()=>{const t=n;(i[t(544)](this[t(374)][t(513)][t(665)],i[t(686)])||i[t(544)](this[t(374)][t(513)][t(665)],i[t(575)]))&&(this[t(392)][t(603)]=!0),this[t(585)]()})),this[n(374)].on(i[n(477)],(()=>{var t;const e=n;(i[e(544)](this[e(374)][e(513)][e(665)],i[e(686)])||i[e(492)](this[e(374)][e(513)][e(665)],i[e(575)]))&&(this[e(392)][e(603)]=!0),null==(t=this[e(620)])||t[e(687)]()})),this[n(374)].on(i[n(467)],(({floorId:t,marker:e})=>{const r=n;i[r(731)](t,this[r(700)].id)&&i[r(626)](e[r(612)],this[r(392)])&&(this[r(392)][r(755)](e),e[r(580)]=i[r(772)](this[r(700)][r(405)],1))})),this[n(374)].on(i[n(742)],(()=>{this[n(526)]()})),this[n(374)].on(i[n(773)],(()=>{this[n(685)]()})),this[n(374)].on(i[n(504)],(t=>{this[n(488)](t)}))}[(_pa=D$1(700),_oa=D$1(470),_na=D$1(778),_ma=D$1(362),_la=D$1(760),D$1(454))](){const t=D$1,e={FizfN:t(621)};window[t(441)](e[t(489)],(e=>{this[t(711)]()}))}[(_ka=D$1(377),_ja=D$1(643),_ia=D$1(517),_ha=D$1(662),D$1(449))](){const t=D$1,e={oPCXM:function(t){return t()},VIQFN:function(t,e,n,i){return t(e,n,i)},MiktF:function(t,e,n){return t(e,n)},KudpV:function(t,e,n,i){return t(e,n,i)},nXidI:t(702),iplir:function(t,e){return t!==e},uKQDP:function(t,e){return t<=e},caHLk:function(t,e){return t/e},cUTEo:function(t,e){return t/e},PsFVB:t(693),bhwPM:function(t){return t()}};let n=new Vector3(0,0,-1),i=()=>{const i=t,r={ldEIe:function(t,n,i,r){return e[W$x(406)](t,n,i,r)},MwOYw:function(t,n,i){return e[W$x(679)](t,n,i)},SObRc:function(t,n,i,r){return e[W$x(736)](t,n,i,r)},IGtKl:e[i(366)],pLpkS:function(t,n){return e[i(450)](t,n)},SJojZ:function(t,n){return e[i(658)](t,n)},TPjCw:function(t,n){return e[i(370)](t,n)},lBLVu:function(t,n){return e[i(498)](t,n)}};if(!this[i(392)][i(603)]||!this[i(392)][i(612)]||!this[i(662)])return;this[i(662)]=!1;const s=()=>{var t;const e=i,s={NinDc:r[e(431)],QXXBP:function(t,n){return r[e(394)](t,n)},NsMLZ:function(t,n){return r[e(618)](t,n)}};let a=Object[e(587)](this[e(517)]),o=r[e(741)](this[e(374)][e(694)][e(560)][e(647)],2),c=r[e(683)](this[e(374)][e(694)][e(560)][e(613)],2);const l=(t,n,i)=>{const r=e,a=s[r(444)][r(541)]("|");let o=0;for(;;){switch(a[o++]){case"0":this[r(377)][t.id][r(603)]=this[r(643)][t.id][r(603)]=i;continue;case"1":n[r(603)]=!i;continue;case"2":this[r(377)][t.id][r(565)][r(374)]((t=>{const e=r;t[e(603)]=i,t[e(690)]()}));continue;case"3":i=s[r(476)](i,void 0)?i:s[r(635)](t[r(353)],this[r(374)][r(633)][r(703)]());continue;case"4":n[r(391)].z=i?1e-6:1;continue}break}};a[e(374)]((t=>{const n=e;r[n(359)](l,t[n(481)][n(484)],t,!1)}));let u=this[e(374)][e(372)][e(574)](this[e(374)][e(372)][e(483)]({x:o,y:c},[this[e(374)][e(372)][e(599)]])[0][e(583)][e(357)](1e3),n,a)[0],h=null==u?void 0:u[e(721)][e(481)][e(484)];if(h&&r[e(649)](l,h,u[e(721)]),this[e(374)][e(383)][e(748)][e(577)][e(395)]){let n=null==(t=this[e(374)][e(383)])?void 0:t[e(748)][e(577)][e(730)]((t=>t[e(592)].id===this[e(700)].id))[e(374)]((t=>t[e(583)]));a[e(374)]((t=>{const i=e,s={bEzpk:function(t,e,n){return r[W$x(649)](t,e,n)}};if(n[i(542)]((e=>{const n=i;return s[n(388)](pointInPolygon,e,t[n(481)][n(484)][n(551)])}))){let e=t[i(481)][i(484)];r[i(608)](l,e,t,!0)}}))}};e[i(436)](s),e[i(679)](setTimeout,(()=>{const t=i;this[t(662)]=!0,e[t(436)](s)}),300)};this[t(374)][t(633)].on(e[t(343)],i),e[t(445)](i)}async[D$1(494)](){const t=D$1,e={lnDFk:t(538),bdCLV:function(t,e){return t*e},IFeEd:function(t,e){return t/e},XNyVz:function(t,e){return t-e},QyypO:t(470)},{bgi:n}=this[t(700)];if(!n||!n[t(349)]||!n[t(767)])return;let i=100;const r=await texureLoader[t(365)](n[t(349)]);console[t(607)](e[t(743)],n[t(349)]),r[t(532)]=!0;const{image:s}=r;i=e[t(623)](e[t(752)](s[t(669)],s[t(744)]),100);const a=new(this[t(374)][t(768)]?MeshStandardMaterial:MeshBasicMaterial)({map:r,transparent:!0,depthWrite:!1,opacity:n[t(347)]}),o=new PlaneGeometry(100,i),c=new Mesh(o,a);this[t(392)][t(755)](c),this[t(470)]=c,n[t(524)]&&c[t(524)][t(506)](n[t(524)]),c[t(473)].z=n[t(473)]||0,n[t(391)]&&c[t(391)][t(657)](n[t(391)]),c[t(580)]=e[t(500)](this[t(700)][t(405)],1),c[t(481)][t(700)]=this[t(700)],c[t(350)]=e[t(746)],c[t(737)]=!0,this[t(374)][t(768)]&&(c[t(600)]=!0)}[(_ga=D$1(620),D$1(585))](){var t,e,n,i;const r=D$1,s={gFSDm:r(638),sZpIs:function(t,e){return t===e},keDLF:r(645),kEeCq:r(384),kXAEk:r(709),yIHcp:function(t,e){return t+e},deArA:r(367),NAzTu:r(655)};if(s[r(348)](this[r(374)][r(513)][r(665)],s[r(697)])||s[r(348)](this[r(374)][r(513)][r(665)],s[r(446)])){let e=null==(t=this[r(374)][r(383)])?void 0:t[r(748)][r(577)];!(null==e?void 0:e[r(395)])&&(this[r(392)][r(603)]=!0)}null==(e=this[r(620)])||e[r(687)](),this[r(620)]=new Group$1,null==(i=null==(n=this[r(374)][r(383)])?void 0:n[r(748)][r(425)][this[r(700)].id])||i[r(374)]((t=>{var e,n;const i=r;let a=new RoadLine(t[i(374)]((t=>new Vector3(t[i(583)].x,t[i(583)].y,0))),{bgc:t[0][i(604)]?s[i(677)]:s[i(348)](this[i(700)].id,this[i(374)][i(513)].id)?s[i(651)]:(null==(e=this[i(374)][i(733)][i(407)])?void 0:e[i(688)])||s[i(364)],color:s[i(518)],style:(null==(n=this[i(374)][i(733)][i(407)])?void 0:n[i(745)])||""},this[i(374)]);a[i(580)]=s[i(664)](t[0][i(592)][i(405)],1),this[i(620)][i(755)](a)})),this[r(392)][r(755)](this[r(620)])}[(_fa=D$1(508),D$1(451))](t=!1){var e;const n=D$1,i={IUvKT:n(512),XdcfT:n(511),MYhBq:n(549),lOZyJ:n(712),ySfzb:function(t,e){return t+e}};null==(e=this[n(508)])||e[n(687)]();let r=this[n(508)]=new TextSprite({text:this[n(700)][n(350)],vmap:this[n(374)],isCollision:!1,zIndex:999,fontWeight:i[n(537)],lineGap:.25,...t?{fontSize:22,fillStyle:i[n(771)],strokeStyle:i[n(771)],bgColor:i[n(740)]}:{fontSize:18,strokeWidth:.15,fillStyle:i[n(435)],strokeStyle:i[n(771)]}});const{position:s}=this[n(374)][n(497)](this[n(700)][n(484)][n(374)]((t=>t[n(551)]))[n(520)]());s.z+=2,r[n(524)][n(506)](s),r[n(580)]=i[n(582)](this[n(700)][n(405)],3),r[n(737)]=!0,this[n(392)][n(755)](r)}[D$1(385)](){var t;const e=D$1;null==(t=this[e(508)])||t[e(687)]()}[(_ea=D$1(505),D$1(723))](t,e){const n=D$1,i={QxufH:n(384),oZCWQ:n(709),nobIW:function(t,e){return t+e}};!this[n(505)]&&(this[n(505)]=new Group$1,this[n(392)][n(755)](this[n(505)]));let r=new RoadLine(t[n(374)]((t=>new Vector3(t.x,t.y,0))),{bgc:e[n(688)]??i[n(398)],color:e[n(724)]??i[n(616)],style:e[n(745)]??"",width:e[n(419)]??void 0},this[n(374)]);return r[n(580)]=e[n(580)]||i[n(769)](this[n(700)][n(405)],1),this[n(505)][n(755)](r),r}[D$1(588)](t){const e=D$1,n={QEuXN:function(t,e,n,i){return t(e,n,i)}};!this[e(597)]&&(this[e(597)]=new Group$1,this[e(392)][e(755)](this[e(597)]));let i={group:this[e(700)].id,...t,vmap:this[e(374)]},r=i[e(420)]?new TextSprite(i):new Sprite(new SpriteMaterial({map:texureLoader[e(770)](i[e(750)],(()=>{const t=e;n[t(568)](setSize,r,i[t(391)]||1,this[t(374)][t(523)])})),sizeAttenuation:!1,depthTest:!1,transparent:!0}));return r[e(530)][e(374)]&&(r[e(530)][e(374)][e(590)]=LinearFilter),r[e(689)][e(503)](.5,0),i[e(391)]&&r[e(391)][e(657)](i[e(391)]),i[e(524)]&&r[e(524)][e(506)](i[e(524)]),r[e(580)]=i[e(580)]||0,r[e(481)][e(700)]=i,this[e(597)][e(755)](r),r}[D$1(766)](t){const e=D$1;!this[e(597)]&&(this[e(597)]=new Group$1,this[e(392)][e(755)](this[e(597)]));const n=new CSS2DObject(t);return n[e(689)][e(503)](.5,.5),this[e(597)][e(755)](n),n}[(_da=D$1(597),D$1(685))](){const t=D$1,e={ipkTt:function(t,e,n,i){return t(e,n,i)}};this[t(700)][t(381)]&&(!this[t(597)]&&(this[t(597)]=new Group$1,this[t(392)][t(755)](this[t(597)])),this[t(700)][t(381)][t(374)]((n=>{const i=t,r={ICOLk:function(t,n,i,r){return e[W$x(546)](t,n,i,r)}};if((n[i(750)]||n[i(420)])&&!this[i(597)][i(514)][i(542)]((t=>t[i(481)][i(700)].id===n.id))){let t={group:this[i(700)].id,...n,vmap:this[i(374)]},e=t[i(420)]?new TextSprite(t):new Sprite(new SpriteMaterial({map:texureLoader[i(770)](t[i(750)],(()=>{const n=i;r[n(706)](setSize,e,t[n(391)]||1,this[n(374)][n(523)])})),sizeAttenuation:!1,depthTest:!1,transparent:!0}));e[i(530)][i(374)]&&(e[i(530)][i(374)][i(590)]=LinearFilter),e[i(689)][i(503)](.5,0),t[i(391)]&&e[i(391)][i(657)](t[i(391)]),t[i(524)]&&e[i(524)][i(506)](t[i(524)]),e[i(580)]=t[i(580)]||9999,e[i(481)][i(700)]=t,this[i(597)][i(755)](e)}})))}[D$1(488)](t){var e,n;const i=D$1;null==(n=null==(e=this[i(597)])?void 0:e[i(514)][i(542)]((e=>e[i(481)][i(700)].id===t)))||n[i(687)]()}[D$1(526)](){var t;const e=D$1;null==(t=this[e(597)])||t[e(687)](),this[e(597)]=void 0}[D$1(704)](t){const e=D$1;return this[e(652)][e(514)][e(542)]((n=>{var i;return(null==(i=n[e(481)][e(586)])?void 0:i.id)===t}))}[D$1(699)](t){var e,n;const i=D$1;return Object[i(587)](this[i(377)])[i(520)]()[i(542)]((e=>{var n;return(null==(n=e[i(481)][i(484)])?void 0:n.id)===t}))||this[i(610)][i(514)][i(542)]((e=>{var n;return(null==(n=e[i(481)][i(484)])?void 0:n.id)===t}))||(null==(e=this[i(778)][i(471)])?void 0:e[i(542)]((e=>{var n;return(null==(n=e[i(481)][i(484)])?void 0:n.id)===t})))||(null==(n=this[i(362)][i(471)])?void 0:n[i(542)]((e=>{var n;return(null==(n=e[i(481)][i(484)])?void 0:n.id)===t})))}[D$1(629)](t){const e=D$1;return Object[e(587)](this[e(643)])[e(520)]()[e(542)]((n=>{var i;return(null==(i=n[e(481)][e(484)])?void 0:i.id)===t}))||this[e(692)][e(514)][e(542)]((n=>{var i;return(null==(i=n[e(481)][e(484)])?void 0:i.id)===t}))}[D$1(422)](){const t=D$1,e={kBTky:t(712),IFSMv:t(511)};if(!debug||!localStorage[t(659)])return;let n=this[t(374)][t(513)][t(400)][t(730)]((e=>e[t(756)]===this[t(700)].id)),i=this.bc=this.bc||new Object3D;this[t(392)][t(755)](i),n[t(374)]((n=>{const r=t;let s=new TextSprite({vmap:this[r(374)],text:n.id,fillStyle:e[r(776)],strokeStyle:e[r(567)],lineGap:.25,strokeWidth:.15,isCollision:!1,fontSize:10});s[r(524)][r(506)](n)[r(357)](0),i[r(755)](s),s[r(580)]=renderOrderConfig[r(639)]}))}[(_ca=D$1(680),_ba=D$1(656),D$1(491))](){const t=D$1,e={fAAFu:function(t,e){return t>e},IWLhf:function(t,e,n){return t(e,n)},iICPQ:function(t,e){return t+e},ttsey:function(t,e,n){return t(e,n)}};if(this[t(656)]&&this[t(656)][t(687)](),!debug||!localStorage[t(491)])return;let n=this[t(656)]=new MultipleLine;function i(n,i){return e[t(515)](n,i)?n+","+i:i+","+n}n[t(530)][t(482)]=!1,n[t(530)][t(719)]=!1,n[t(530)][t(775)]=!0,n[t(580)]=1111111,n[t(524)].z=.1;let r=this[t(374)][t(513)][t(535)][t(730)]((e=>e[t(756)]===this[t(700)].id)),s={};r[t(374)]((a=>{const o=t;for(const t in a[o(701)]){if(EnterType[a[o(701)][t]])continue;let c=r[o(542)]((e=>+t==+e.id));if(!c||s[e[o(718)](i,a.id,c.id)])continue;let l=+a[o(701)][c.id],u=+c[o(701)][a.id],h=e[o(675)](this[o(680)][l]||6710886,this[o(680)][u]||6710886);s[e[o(502)](i,a.id,c.id)]=1,n[o(774)]([a,c],h,.5)}})),n[t(571)](),this[t(392)][t(755)](n)}[(_aa=D$1(610),D$1(346))](t=this[D$1(700)]){const e=D$1,n={IHWhl:function(t,e){return t>e},CMzch:function(t,e){return t(e)},pWlUN:function(t,e){return t>=e},gCdtV:e(382),LQTpg:function(t,e,n){return t(e,n)},YWYqH:function(t,e,n){return t(e,n)},BSdiu:function(t){return t()},MiaaE:function(t,e){return t>e},YZsDV:function(t){return t()},WekMK:e(402)};h$9[e(374)]((t=>t[e(562)]=!0));let i=0;this[e(610)][e(350)]=n[e(632)],this[e(392)][e(755)](this[e(610)]);const r=()=>{const r=e,s={ECtvF:function(t,e){return n[W$x(461)](t,e)},qgFvE:function(t,e){return n[W$x(474)](t,e)}};n[r(452)](++i,t[r(484)][r(395)])&&(this[r(606)](n[r(754)]),this[r(760)][r(571)](),n[r(763)](setTimeout,(()=>{const t=r;h$9[t(374)]((e=>e[t(562)]=!1))}),100),Object[r(587)](this[r(517)])[r(395)]&&n[r(479)](setTimeout,(()=>{this[r(449)]()}),100),this[r(374)][r(733)][r(591)]&&Object[r(587)](v$9)[r(374)]((t=>{const e=r;if(s[e(758)](t[e(496)][e(395)],1)){let n=s[e(478)](mergeGeometries,t[e(496)][e(374)]((t=>{const n=e;return t[n(596)][n(595)](0,0,t[n(524)].z),t[n(596)]}))),i=new Mesh(n,t);i[e(580)]=t[e(496)][0][e(481)][e(484)][e(612)][e(405)]||0,this[e(610)][e(755)](i),t[e(496)][e(374)]((t=>t[e(507)]()))}})))};this[e(624)](),t[e(484)][e(374)]((t=>{const i=e;n[i(545)](t[i(551)][i(395)],1)?n[i(479)](setTimeout,(()=>{const e=i;this[e(720)](t),n[e(457)](r)}),0):n[i(552)](r)}))}[D$1(624)](){const t=D$1,e={JxxfI:function(t,e){return t+e},ZlYDr:function(t,e){return t===e},gBQZn:t(487),QlLvS:function(t,e){return t(e)},ECReN:t(360)};let n={};this[t(700)][t(484)][t(730)]((e=>e[t(725)]===t(409)&&!e[t(707)]))[t(374)]((i=>{const r=t;let s=e[r(678)](e[r(678)](e[r(678)](e[r(678)]("",i[r(739)]),i[r(698)]),i[r(463)]),i[r(724)]),a=n[s]=n[s]||{mat:null,geos:[]};if(!a[r(713)]){let t=null;i[r(739)]&&(t=texureLoader[r(770)](i[r(739)]),t[r(434)]=t[r(729)]=RepeatWrapping,i[r(698)]&&(e[r(671)](typeof i[r(698)],e[r(404)])&&(i[r(698)]=new Vector2(i[r(698)],i[r(698)])),t[r(437)][r(506)](i[r(698)])),t[r(473)]=i[r(463)]||0),a[r(713)]=new MeshBasicMaterial({transparent:!0,color:i[r(724)],opacity:1,side:2,map:t})}var o=new PathPointList;let c=new Vector3(0,0,0);c[i.up||"z"]=1,i[r(551)][r(374)]((t=>t.z=0)),o[r(503)](i[r(551)],i[r(440)]||.5,i[r(424)]||10,c,!1);var l=new PathGeometry;l[r(661)](o,{width:i[r(342)],arrow:!1}),i[r(418)]&&l[r(595)](0,0,i[r(418)]),a[r(601)][r(566)](l)}));for(const i in n){let r=e[t(393)](mergeGeometries,n[i][t(601)]),s=new Mesh(r,this[t(374)][t(733)][t(591)]?new MeshBasicMaterial({color:e[t(619)]}):n[i][t(713)]);s[t(580)]=this[t(700)][t(405)]||0,s[t(737)]=!0,this[t(610)][t(755)](s)}}[D$1(720)](t){const e=D$1,n={mbOWp:function(t,e){return t+e},vOuNk:function(t,e){return t(e)},zTxzP:e(415),vCLRJ:e(416),iFmPJ:function(t,e){return t===e},DFQbq:e(691),uWTeR:e(409),fMUce:function(t,e){return t===e},huWSk:e(762),ZWcXX:function(t,e){return t===e},UcIfq:e(738),DsrGb:function(t,e){return t+e},XrBmz:e(414),NyibQ:e(377)};let i=(new Vector3)[e(506)](t[e(551)][0]),r="";t[e(551)][e(374)]((s=>{const a=e;let o=(new Vector3)[a(506)](s)[a(605)](i);o.x=+o.x[a(468)](3),o.y=+o.y[a(468)](3),o.z=+o.z[a(468)](3),r+=n[a(373)](o[a(660)]()[a(486)](),n[a(410)](String,t[a(557)]))}));let s=new Object3D;n[e(521)](t[e(725)],n[e(636)])?s=this[e(569)](t):n[e(521)](t[e(725)],n[e(430)])?t[e(707)]&&(s=this[e(631)](t)):t[e(764)]?s=this[e(554)](t):n[e(390)](t[e(428)],n[e(536)])?this[e(778)][e(555)](1,((i,r)=>{const a=e,o=n[a(375)][a(541)]("|");let c=0;for(;;){switch(o[c++]){case"0":s=i;continue;case"1":i[a(355)]=!0;continue;case"2":i[a(347)]=t[a(347)]||1;continue;case"3":i[a(724)]=new Color(t[a(757)]||t[a(724)]);continue;case"4":this[a(778)][a(481)][a(667)][a(566)](t);continue;case"5":i[a(524)][a(506)](t[a(689)])[a(357)](t[a(418)]||0);continue;case"6":this[a(778)][a(481)][a(667)]=this[a(778)][a(481)][a(667)]||[];continue;case"7":i[a(391)][a(506)](t[a(433)]);continue;case"8":i[a(481)]=i[a(481)]||{};continue;case"9":i[a(690)]();continue;case"10":i[a(481)][a(484)]=t;continue;case"11":i[a(573)](t[a(584)]);continue}break}})):n[e(358)](t[e(428)],n[e(423)])?this[e(362)][e(555)](1,((i,r)=>{const a=e,o=n[a(641)][a(541)]("|");let c=0;for(;;){switch(o[c++]){case"0":i[a(724)]=new Color(t[a(757)]||t[a(724)]);continue;case"1":s=i;continue;case"2":this[a(362)][a(481)][a(667)][a(566)](t);continue;case"3":i[a(481)]=i[a(481)]||{};continue;case"4":this[a(362)][a(481)][a(667)]=this[a(362)][a(481)][a(667)]||[];continue;case"5":i[a(524)][a(506)](t[a(689)])[a(357)](t[a(418)]||0);continue;case"6":i[a(347)]=t[a(347)]||1;continue;case"7":i[a(690)]();continue;case"8":i[a(391)][a(506)](t[a(433)]);continue;case"9":i[a(355)]=!0;continue;case"10":i[a(481)][a(484)]=t;continue}break}})):s=this[e(570)](t,r),t[e(464)]&&this[e(760)][e(774)](t[e(551)],t[e(464)],n[e(413)](n[e(373)](t[e(557)]||1,t[e(418)]||0),.001)),this[e(499)](t,s),t[e(353)]&&(this[e(517)][t.id]=s);let a=t[e(707)]&&this[e(374)][e(380)](t[e(707)]);if(t[e(707)]&&(null==a?void 0:a[e(353)])){if(!this[e(377)][t[e(707)]]){const i=n[e(646)][e(541)]("|");let r=0;for(;;){switch(i[r++]){case"0":this[e(377)][t[e(707)]][e(565)]=[];continue;case"1":this[e(377)][t[e(707)]][e(350)]=n[e(564)];continue;case"2":this[e(377)][t[e(707)]][e(603)]=!1;continue;case"3":this[e(610)][e(755)](this[e(377)][t[e(707)]]);continue;case"4":this[e(377)][t[e(707)]]=new Object3D;continue;case"5":this[e(377)][t[e(707)]][e(481)][e(484)]=a;continue}break}}s[e(354)]?this[e(377)][t[e(707)]][e(565)][e(566)](s):this[e(377)][t[e(707)]][e(755)](s)}else!s[e(354)]&&this[e(610)][e(755)](s)}[D$1(499)](t,e){const n=D$1,i={TUgqx:function(t,e){return t*e},PKKSK:function(t,e){return t+e},cRbMS:function(t,e){return t+e}};let r=t[n(561)];if(r){let s=t[n(459)]||1;texureLoader[n(770)](r,(r=>{const a=n;let o=r[a(602)][a(419)],c=r[a(602)][a(557)],l=new PlaneGeometry(i[a(674)](o,s),i[a(674)](c,s),1),u=new MeshBasicMaterial({map:r,side:FrontSide,transparent:!0,depthTest:!0,depthWrite:!0}),h=new Mesh(l,u);h[a(524)][a(506)](t[a(689)]),t[a(715)]&&(h[a(524)].x+=t[a(715)].x,h[a(524)].y+=t[a(715)].y),h[a(524)].z=i[a(522)](i[a(397)](t[a(557)]||0,t[a(418)]||0),.01),h[a(473)].z=t[a(386)]||0,e[a(755)](h)}))}}[D$1(455)](t){const e=D$1,n=new Shape;n[e(447)](t[e(551)]);const i={curveSegments:1,steps:1,depth:t[e(557)],bevelEnabled:!1},r=new ExtrudeGeometry(n,i);return r[e(361)](),r}[D$1(569)](t){const e=D$1;let n=new PolygonLine(t[e(551)],{linewidth:t[e(342)],color:t[e(724)],dashed:t[e(648)],dashScale:t[e(558)],worldUnits:t[e(593)],depthTest:!1,keepDashSize:t[e(628)]},this[e(374)]);return n[e(481)][e(484)]=t,n[e(580)]=t[e(612)][e(405)]||0,n[e(524)].z=t[e(418)]||0,n[e(603)]=!t[e(765)],n}[D$1(631)](t){const e=D$1,n={zVjMC:function(t,e){return t===e},nraiB:e(487)};let i=null;t[e(739)]&&(i=texureLoader[e(770)](t[e(739)]),i[e(434)]=i[e(729)]=RepeatWrapping,t[e(698)]&&(n[e(630)](typeof t[e(698)],n[e(714)])&&(t[e(698)]=new Vector2(t[e(698)],t[e(698)])),i[e(437)][e(506)](t[e(698)])),i[e(473)]=t[e(463)]||0);let r=new MeshBasicMaterial({transparent:!0,color:t[e(724)],opacity:1,side:2,map:i});var s=new PathPointList;let a=new Vector3(0,0,0);a[t.up||"z"]=1,t[e(551)][e(374)]((t=>t.z=0)),s[e(503)](t[e(551)],t[e(440)]||.5,t[e(424)]||10,a,!1);var o=new PathGeometry;o[e(661)](s,{width:t[e(342)],arrow:!1});let c=new Mesh(o,r);return c[e(481)][e(484)]=t,c[e(580)]=t[e(612)][e(405)]||0,c[e(524)].z=t[e(418)]||0,c[e(603)]=!t[e(765)],c}[D$1(640)](t){const e=D$1,n=new Shape;return n[e(447)](t[e(551)]),new ShapeGeometry(n)}[D$1(554)](t){const e=D$1,n={zOTJi:function(t,e){return t!==e},gJPJC:e(462),JTRHj:function(t,e){return t+e},rdyzf:e(696),krQxr:e(389)};let i=new B$l(this[e(640)](t),{textureWidth:512,textureHeight:512,waterNormals:texureLoader[e(770)](B$r,(function(t){const n=e;t[n(434)]=t[n(729)]=RepeatWrapping,t[n(352)]=NoColorSpace})),distortionScale:3.7,fog:n[e(396)](this[e(374)][e(672)][e(548)],void 0),waterColor:t[e(724)]||n[e(563)]});return i[e(481)].id=t.id,i[e(350)]=n[e(777)](n[e(442)],t.id),i[e(481)][e(501)]=n[e(539)],i[e(524)].z=t[e(418)]||0,i[e(603)]=!t[e(765)],h$9[e(566)](i),i}[D$1(570)](t,e){var n,i,r,s;const a=D$1,o={qExRB:function(t,e){return t+e},HqUIf:function(t,e){return t+e},IBZEr:function(t,e){return t+e},XvbnK:function(t,e){return t+e},QCQrs:a(709),RHwUS:a(369),oHKpI:function(t,e){return t!==e},QeDgL:function(t,e){return t===e},lzEGQ:a(487),tGQuT:function(t,e){return t===e},ZryBH:function(t,e){return t<e},PQNAx:a(360),EbgUz:a(472)};let c=o[a(589)](o[a(708)](o[a(594)](o[a(594)](o[a(708)](o[a(371)](o[a(371)](o[a(589)](t[a(757)]||t[a(724)]||o[a(458)],t[a(739)]),null==(n=t[a(698)])?void 0:n.x),null==(i=t[a(698)])?void 0:i.y),t[a(356)]),null==(r=t[a(429)])?void 0:r.x),null==(s=t[a(429)])?void 0:s.y),t[a(347)]),t[a(765)]);c=t[a(765)]?o[a(705)]:c;let l,u=v$9[c],h=o[a(376)](t[a(347)],void 0)?t[a(347)]:1;if(!u){let e=null;t[a(739)]&&(e=texureLoader[a(770)](t[a(739)]),e[a(434)]=e[a(729)]=RepeatWrapping,t[a(698)]&&(o[a(553)](typeof t[a(698)],o[a(644)])&&(t[a(698)]=new Vector2(t[a(698)],t[a(698)])),e[a(437)][a(506)](t[a(698)])),e[a(473)]=t[a(463)]||0);let n=null;t[a(356)]&&(n=texureLoader[a(770)](t[a(356)]),n[a(434)]=n[a(729)]=RepeatWrapping,t[a(429)]&&(o[a(460)](typeof t[a(429)],o[a(644)])&&(t[a(429)]=new Vector2(t[a(429)],t[a(429)])),n[a(437)][a(506)](t[a(429)])),n[a(473)]=t[a(726)]||0),l=new(this[a(374)][a(768)]?MeshStandardMaterial:MeshBasicMaterial)({color:t[a(757)]||t[a(724)]||(this[a(374)][a(733)][a(591)]?o[a(509)](t[a(551)][a(395)],50)?o[a(438)]:o[a(654)]:""),transparent:!0,map:this[a(374)][a(733)][a(591)]?null:e,alphaTest:.1,opacity:h});let i=new MeshStandardMaterial({color:new Color(t[a(757)]||t[a(724)]||o[a(458)]),map:n,transparent:!0,alphaTest:.1,opacity:h});u=v$9[c]=this[a(374)][a(733)][a(591)]?l:[l,i],v$9[c][a(578)]=0,v$9[c][a(496)]=[]}!I$9[e]&&(I$9[e]={geo:this[a(455)](t),v3:t[a(551)][0]});let d=new Mesh(I$9[e][a(653)],u);return!t[a(765)]&&!t[a(350)]&&!t[a(353)]&&v$9[c][a(496)][a(566)](d),this[a(374)][a(733)][a(591)]?delete I$9[e]:d[a(524)][a(506)](t[a(551)][0])[a(605)](I$9[e].v3),d[a(481)][a(484)]=t,d[a(580)]=t[a(612)][a(405)]||0,d[a(524)].z=t[a(418)]||0,this[a(374)][a(768)]&&(d[a(600)]=d[a(642)]=!0),d[a(603)]=!t[a(765)],d[a(355)]=!0,d}[(_$=D$1(692),D$1(711))](t=this[D$1(700)]){const e=D$1,n={sUxEq:function(t,e){return t===e},fxWGy:e(716),Atcob:function(t,e,n){return t(e,n)},qplfM:e(598)};this[e(692)][e(350)]=n[e(516)],this[e(392)][e(755)](this[e(692)]);const i=[];this[e(392)][e(761)]((t=>{const r=e;n[r(466)](t[r(481)][r(501)],n[r(448)])&&i[r(566)](t)})),i[e(495)]((t=>t[e(687)]())),t[e(484)][e(374)]((t=>{const i=e;n[i(625)](setTimeout,(()=>{const e=i;!t[e(695)]&&t[e(350)]&&this[e(684)](t)}),0)}))}[(__=D$1(609),D$1(684))](t){var e,n;const i=D$1,r={eqzZZ:i(511),xwmgO:i(572),DztlW:i(634),pbSto:function(t,e){return t+e},VKwAv:i(716),CcOeJ:i(643)};if(!t[i(350)])return;let s;for(const o in o$b[i(681)])if(t[i(350)][i(668)](o)){s=o$b[i(681)][o];break}let a=new TextSprite({vmap:this[i(374)],text:(null==(e=t[i(525)])?void 0:e[window[i(622)]])||t[i(350)],bgColor:"",strokeStyle:r[i(345)],src:t[i(663)]||s,zIndex:t[i(527)]||0,fontSize:t[i(710)],fontWeight:isPc?t[i(453)]?700:500:700,lineGap:.25,fontFamily:r[i(490)],strokeWidth:.15,group:t[i(707)]||t[i(612)].id,fillStyle:t[i(581)]||r[i(579)]});a[i(580)]=r[i(614)](t[i(612)][i(405)],3),a[i(524)][i(506)](t[i(689)]),a[i(524)].z=r[i(614)](t[i(557)]||0,t[i(418)]||0),a[i(481)][i(501)]=r[i(637)],a[i(481)][i(484)]=t,a[i(737)]=!0,t[i(707)]&&(null==(n=this[i(374)][i(380)](t[i(707)]))?void 0:n[i(353)])?(!this[i(643)][t[i(707)]]&&(this[i(643)][t[i(707)]]=new Object3D,this[i(643)][t[i(707)]][i(603)]=!1,this[i(643)][t[i(707)]][i(350)]=r[i(412)],this[i(692)][i(755)](this[i(643)][t[i(707)]])),this[i(643)][t[i(707)]][i(755)](a)):this[i(692)][i(755)](a)}[(_Z=D$1(652),D$1(368))](t=this[D$1(700)]){const e=D$1,n={ACWqh:function(t,e){return t<=e},uvezV:e(439),NHGKR:e(534)};let i=t[e(586)][e(395)];this[e(652)][e(350)]=n[e(363)],this[e(392)][e(755)](this[e(652)]),!this[e(374)][e(733)][e(591)]&&t[e(586)][e(374)]((r=>{const s=e,a={BjPhh:function(t,e){return n[W$x(556)](t,e)},jYkQw:n[s(427)]};this[s(673)](r,(()=>{const e=s;a[e(540)](--i,0)&&(this[e(374)][e(606)](a[e(676)],t),this[e(606)](a[e(676)],t))}))}))}[D$1(673)](t,e){const n=D$1,i={HFQjo:function(t,e){return t+e},ubpoL:n(735),tiPRR:function(t,e){return t(e)},qoosW:function(t,e,n,i){return t(e,n,i)},wVqbL:function(t,e){return t(e)},Vwpcp:function(t,e){return t(e)},HlJeG:n(533),EHKfP:function(t,e){return t!==e},kyaJS:n(401)};let r=d$6[t[n(349)]];const s=r=>{const s=n,a=i[s(399)][s(541)]("|");let o=0;for(;;){switch(a[o++]){case"0":t[s(391)]&&r[s(391)][s(506)](t[s(391)]);continue;case"1":r[s(481)][s(586)]=t;continue;case"2":r[s(481)][s(493)]=!0;continue;case"3":this[s(652)][s(755)](r);continue;case"4":r[s(761)]((t=>{var e;const n=s;t[n(530)]&&(t[n(580)]=i[n(751)](this[n(700)][n(405)],2),t[n(559)]&&(null==(e=t[n(596)])||e[n(361)]()))}));continue;case"5":t[s(473)]&&r[s(473)][s(506)](t[s(473)]);continue;case"6":t[s(524)]&&r[s(524)][s(506)](t[s(524)]);continue;case"7":e&&i[s(519)](e,this);continue;case"8":r[s(350)]=t[s(349)];continue}break}};if(r)r=r[n(510)](),i[n(576)](s,r);else{let e="";e=t[n(349)][n(668)](i[n(417)])?t[n(349)]:i[n(666)](o$b[n(443)][n(465)](i[n(417)]),0)?t[n(349)][n(668)](i[n(456)])?"/"+t[n(349)]:n(411)+t[n(349)]:n(615)+t[n(349)],gltfLoader[n(770)](e,(e=>{const r=n,{scene:a,animations:o}=e;this[r(374)][r(768)]&&a[r(761)]((t=>{const e=r;t[e(600)]=t[e(642)]=!0})),o[r(395)]&&c$8[r(566)](i[r(432)](i$5,a,o,o[0][r(350)])),i[r(627)](s,a),d$6[t[r(349)]]=a}))}}};const Z$3=W$w;function W$w(t,e){const n=M$w();return(W$w=function(t,e){return n[t-=485]})(t,e)}function M$w(){const t=["getMapDataById","Out","addFloor","837761mJwllQ","setOneFloorMode","route","lnglat","1716622714522963969","status","16XNTrnm","98410mcXiNr","addDefaultFloor","gxuCA","wFEVS","manyFloorMode","object3d","ORPPm","xtzen","build","Mlhfd","default","indexOf","removeFromParent","cfMwx","options","mobileView","isSimulate","bboxView","mapId","startEnd","name","qWgkU","easing","mFRrY","position","addFloorTitle","log","XymRS","2935891SnvQSO","NjjlX","sort"," 的楼层","split","childrenPool","crossFloorLine","pnpMg","removeFloor","add","isNavi","userData","view","351AentKm","11BavgMx","map","addCrossFloorNaviLine","GhTSO","GkXyU","getFloorById","navi","aPeNG","mapObject","length","remove","children","removeOtherBuild","error","853608oKyrTb","Quadratic","point","renderOrder","HEAVr","setZ","parent","mapData","#477df5","siLlC","data","YJFwC","addNaviLine","nUSRI","aoWUn","wTIiA","myssL","setView","1716622714522963968","find","1524kWXHah","44bdOJEN","switchFloor: 找不到 id:","zKJBe","push","visible","switchFloor","ClPkz","floor","manyFloorStartFloor","23500AuogLH","4|0|2|8|5|6|1|7|3","LYxRa","zEHoH","removeNaviLine","26391vbdozj","6813204DjgmfU","amap","removeAmapFeatures","handleMarkerCollision","dispose","curentFloor","setCenter","recoverOtherBuild","recoverAmapFeatures","ikiLY","setManyFloorMode","floorHeight","slice","start","addFromChildrnPool"];return(M$w=function(){return t})()}!function(t,e){const n=W$w,i=t();for(;;)try{if(798816===-parseInt(n(503))/1+parseInt(n(566))/2+-parseInt(n(601))/3*(parseInt(n(587))/4)+parseInt(n(596))/5*(parseInt(n(586))/6)+-parseInt(n(538))/7*(parseInt(n(509))/8)+-parseInt(n(551))/9*(-parseInt(n(510))/10)+-parseInt(n(552))/11*(-parseInt(n(485))/12))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$w);let C$b=class extends B$s{constructor(t,e){var n=(...t)=>(super(...t),__publicField(this,_va),__publicField(this,_ua),__publicField(this,_ta,!1),__publicField(this,_sa),__publicField(this,_ra,[]),__publicField(this,_qa),this);const i=Z$3,r={GhTSO:i(597),zEHoH:i(600),GkXyU:i(518),ClPkz:i(578)},s=r[i(555)][i(542)]("|");let a=0;for(;;){switch(s[a++]){case"0":this[i(576)]=t;continue;case"1":this[i(554)]();continue;case"2":this[i(553)]=e;continue;case"3":this[i(553)].on(r[i(599)],(()=>{var t;const e=i;null==(t=this[e(544)])||t[e(489)]()}));continue;case"4":n();continue;case"5":this[i(515)][i(549)][i(560)]=this;continue;case"6":this[i(515)][i(530)]=r[i(556)];continue;case"7":this[i(553)].on(r[i(593)],(()=>{this[i(554)]()}));continue;case"8":this[i(515)]=new Group$1;continue}break}}[(_va=Z$3(576),_ua=Z$3(490),_ta=Z$3(514),_sa=Z$3(595),_ra=Z$3(563),Z$3(511))](){const t=Z$3;if(this[t(490)])return void(this[t(553)][t(508)][t(594)]=this[t(490)]);let e=this[t(576)][t(594)][t(585)]((e=>e[t(520)]))||this[t(576)][t(594)][0];e&&this[t(502)](e.id)}[(_qa=Z$3(544),Z$3(554))](){var t,e,n;const i=Z$3,r={XymRS:function(t,e){return t!==e},pnpMg:function(t,e){return t<e},ORPPm:function(t,e){return t-e},qWgkU:function(t,e){return t!==e},zKJBe:function(t,e){return t-e},xtzen:i(574)};null==(t=this[i(544)])||t[i(489)]();let s=null==(n=null==(e=this[i(553)][i(558)])?void 0:e[i(508)])?void 0:n[i(505)];if(this[i(514)]&&(null==s?void 0:s[i(561)])&&!r[i(537)](this[i(553)][i(508)][i(518)],this)){this[i(544)]=new Group$1;for(let t=1;r[i(545)](t,s[i(561)]);t++){let e=s[r[i(516)](t,1)],n=s[t];if(!r[i(537)](e[i(594)][i(572)],this[i(576)])&&!r[i(537)](n[i(594)][i(572)],this[i(576)])&&r[i(531)](e[i(594)].id,n[i(594)].id)){console[i(536)](e[i(594)][i(530)],n[i(594)][i(530)]);let t=e,s=n,a=new PolygonLine([new Vector3(t[i(568)].x,t[i(568)].y,r[i(589)](t[i(594)][i(496)],this[i(595)][i(576)][i(496)])),new Vector3(s[i(568)].x,s[i(568)].y,r[i(589)](s[i(594)][i(496)],this[i(595)][i(576)][i(496)]))],{dashed:!0,dashScale:2,depthTest:!1,transparent:!0,opacity:.5,worldUnits:!1,keepDashSize:!0,color:r[i(517)],linewidth:5},this[i(553)]);a[i(569)]=renderOrderConfig[i(529)],this[i(544)][i(547)](a)}}this[i(515)][i(547)](this[i(544)])}}[Z$3(502)](t){const e=Z$3;if(this[e(563)][e(585)]((n=>n[e(576)].id===t)))return;let n=this[e(499)](t);if(!n){let i=this[e(576)][e(594)][e(585)]((e=>e.id===t));i&&(n=new Z$4(i,this[e(553)]),this[e(547)](n))}this[e(514)]?new Tween(n[e(515)][e(534)]).to({z:{aPeNG:function(t,e){return t-e}}[e(559)](n[e(576)][e(496)],this[e(595)][e(576)][e(496)])},300)[e(498)]():n[e(515)][e(534)][e(571)](0),!this[e(514)]&&(this[e(553)][e(508)][e(594)]=this[e(490)]=n),this[e(514)]&&this[e(563)][e(553)]((t=>t[e(535)]&&t[e(535)](this[e(490)]===t)))}[Z$3(546)](t){const e=Z$3;let n=this[e(563)][e(585)]((n=>n[e(576)].id===t));n&&this[e(562)](n)}[Z$3(592)](t){var e;const n=Z$3,i={wFEVS:function(t,e){return t-e},cfMwx:function(t,e){return t===e},nUSRI:function(t){return t()},myssL:function(t,e,n){return t(e,n)}};let r=this[n(553)][n(500)](t);const s=()=>{const e=n;if(!this[e(514)])return;let s=this[e(563)][e(585)]((n=>n[e(576)].id===t));if(!s)return console[e(565)](e(588)+t+e(541)),s;this[e(553)][e(508)][e(594)]=this[e(490)]=s,!this[e(553)][e(558)][e(508)][e(548)]&&!this[e(553)][e(558)][e(508)][e(526)]&&(new Tween(this[e(515)][e(534)]).to({z:i[e(513)](this[e(595)][e(576)][e(496)],s[e(576)][e(496)])},300)[e(532)](Easing[e(567)][e(501)])[e(498)](),this[e(553)][e(486)][e(491)](r[e(527)][e(506)],!1,300))};if(this[n(490)]&&i[n(523)](t,this[n(490)][n(576)].id))return i[n(579)](s),this[n(490)];if(i[n(579)](s),!this[n(514)]&&(this[n(490)]&&this[n(546)](this[n(490)][n(576)].id),this[n(502)](t),!this[n(553)][n(558)][n(508)][n(548)]&&!this[n(553)][n(558)][n(508)][n(526)])){const t=!isPc&&(null==(e=null==r?void 0:r[n(524)])?void 0:e[n(525)])||(null==r?void 0:r[n(550)]);this[n(553)][n(583)](t)}return i[n(582)](setTimeout,(()=>{const t=n;this[t(553)][t(488)]()}),0),this[n(514)]&&this[n(563)][n(553)]((t=>t[n(535)]&&t[n(535)](this[n(490)]===t))),this[n(553)][n(508)][n(594)]=this[n(490)]}[Z$3(495)](){const t=Z$3,e={siLlC:function(t,e){return t>=e},wTIiA:function(t,e){return t<=e},LYxRa:function(t,e){return t-e},ikiLY:function(t,e){return t===e},YJFwC:t(507),mFRrY:t(584)};this[t(514)]||(this[t(595)]=this[t(490)],this[t(553)][t(508)][t(514)]=!0,this[t(553)][t(487)](),this[t(553)][t(564)](),this[t(514)]=!0,this[t(576)][t(594)][t(553)]((e=>{this[t(502)](e.id)})),this[t(554)](),(e[t(494)](this[t(553)][t(573)][t(528)],e[t(577)])||e[t(494)](this[t(553)][t(573)][t(528)],e[t(533)]))&&this[t(563)][t(553)]((n=>{var i;const r=t;n[r(515)][r(591)]=!this[r(553)][r(558)][r(508)][r(505)][r(561)];let s=null==(i=this[r(553)][r(558)])?void 0:i[r(508)][r(505)];if(!(null==s?void 0:s[r(561)]))return;let a=[...new Set(s[r(553)]((t=>this[r(576)][r(594)][r(521)](t[r(594)]))))][r(540)](),o=this[r(576)][r(594)][r(521)](n[r(576)]);n[r(515)][r(591)]=e[r(575)](o,a[0])&&e[r(581)](o,a[e[r(598)](a[r(561)],1)])})))}[Z$3(504)](){var t;const e=Z$3,n={NjjlX:function(t,e){return t!==e},gxuCA:function(t,e){return t===e},HEAVr:e(507),Mlhfd:function(t,e){return t===e},aoWUn:e(584)};(n[e(512)](this[e(553)][e(573)][e(528)],n[e(570)])||n[e(519)](this[e(553)][e(573)][e(528)],n[e(580)]))&&this[e(563)][e(553)]((t=>t[e(515)][e(591)]=!0)),this[e(514)]&&(this[e(515)][e(534)][e(571)](0),this[e(553)][e(508)][e(514)]=!1,this[e(553)][e(493)](),this[e(553)][e(492)](),this[e(514)]=!1,this[e(563)][e(497)]()[e(553)]((t=>{const i=e;t[i(515)][i(534)][i(571)](0),n[i(539)](t[i(576)].id,this[i(490)][i(576)].id)&&t[i(522)]()})),null==(t=this[e(544)])||t[e(489)](),this[e(563)][e(553)]((t=>t[e(535)]&&t[e(535)]())))}[Z$3(557)](t){const e=Z$3;let n=[...this[e(563)],...this[e(543)]][e(585)]((n=>{var i;return(null==(i=n[e(576)])?void 0:i.id)===t}));if(n)return n;{let i=this[e(576)][e(594)][e(585)]((e=>e.id===t));if(i)return n=new Z$4(i,this[e(553)]),this[e(543)][e(590)](n),n}}};var Z$2=W$v;!function(t,e){for(var n=W$v,i=t();;)try{if(898783===-parseInt(n(138))/1*(-parseInt(n(146))/2)+parseInt(n(157))/3+parseInt(n(154))/4+parseInt(n(164))/5*(parseInt(n(130))/6)+-parseInt(n(156))/7+-parseInt(n(134))/8*(-parseInt(n(162))/9)+-parseInt(n(155))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$v);var commonjsGlobal=typeof globalThis!==Z$2(140)?globalThis:typeof window!==Z$2(140)?window:typeof global!==Z$2(140)?global:typeof self!==Z$2(140)?self:{};function M$v(){var t=["4574812FrGrRZ","40099230tbRsYp","3530016DmmXxA","1128513RHjxmM","woezi","constructor","keys","xdNbi","126PnjMYj","hasOwnProperty","3310145gxTVFs","defineProperty","xOuxF","call","12SeWQtX","split","szTbB","XdLzj","444016UZtRrN","YCtXY","get","apply","2wAktme","length","undefined","__esModule","forEach","function","0|1|3|4|5|6|2","getOwnPropertyDescriptor","1792034FgAvNC","BgFhY","prototype","default","construct","gYyrL","yixwQ","lLTQT"];return(M$v=function(){return t})()}function getDefaultExportFromCjs(t){var e=Z$2,n={woezi:e(149)};return t&&t[e(141)]&&Object[e(148)][e(163)][e(129)](t,n[e(158)])?t[n[e(158)]]:t}function W$v(t,e){var n=M$v();return(W$v=function(t,e){return n[t-=127]})(t,e)}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~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~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)),b=A.length!==p.name.length,x=S.length!==y.length,M="",T="",I="",E=p.dir,C=p.date,w={crc32:0,compressedSize:0,uncompressedSize:0};e&&!n||(w.crc32=t.crc32,w.compressedSize=t.compressedSize,w.uncompressedSize=t.uncompressedSize);var R=0;e&&(R|=8),m||!b&&!x||(R|=2048);var k,_,L,U=0,F=0;E&&(U|=16),"UNIX"===a?(F=798,U|=(k=p.unixPermissions,_=E,L=k,k||(L=_?16893:33204),(65535&L)<<16)):(F=20,U|=function(t){return 63&(t||0)}(p.dosPermissions)),h=C.getUTCHours(),h<<=6,h|=C.getUTCMinutes(),h<<=5,h|=C.getUTCSeconds()/2,d=C.getUTCFullYear()-1980,d<<=4,d|=C.getUTCMonth()+1,d<<=5,d|=C.getUTCDate(),b&&(T=i(1,1)+i(c(g),4)+A,M+="up"+i(T.length,2)+T),x&&(I=i(1,1)+i(c(v),4)+S,M+="uc"+i(I.length,2)+I);var V="";return V+="\n\0",V+=i(R,2),V+=f.magic,V+=i(h,2),V+=i(d,2),V+=i(w.crc32,4),V+=i(w.compressedSize,4),V+=i(w.uncompressedSize,4),V+=i(g.length,2),V+=i(M.length,2),{fileRecord:l.LOCAL_FILE_HEADER+V+g+M,dirRecord:l.CENTRAL_FILE_HEADER+i(F,2)+V+i(v.length,2)+"\0\0\0\0"+i(U,4)+i(r,4)+g+M+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~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,b=2*y+1,x=15,M=3,T=258,I=T+M+1,E=42,C=113,w=1,R=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 F(t){for(var e=t.length;0<=--e;)t[e]=0}function V(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 N(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,V(t.strm)}function B(t,e){t.pending_buf[t.pending++]=e}function W(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function P(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-I?t.strstart-(t.w_size-I):0,l=t.window,u=t.w_mask,h=t.prev,d=t.strstart+T,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=T-(d-s),s=d-T,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-I)){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>=M)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+M-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<M)););}while(t.lookahead<I&&0!==t.strm.avail_in)}function O(t,e){for(var n,i;;){if(t.lookahead<I){if(D(t),t.lookahead<I&&e===l)return w;if(0===t.lookahead)break}if(n=0,t.lookahead>=M&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+M-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-I&&(t.match_length=P(t,n)),t.match_length>=M)if(i=s._tr_tally(t,t.strstart-t.match_start,t.match_length-M),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=M){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+M-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&&(N(t,!1),0===t.strm.avail_out))return w}return t.insert=t.strstart<M-1?t.strstart:M-1,e===u?(N(t,!0),0===t.strm.avail_out?k:_):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?w:R}function J(t,e){for(var n,i,r;;){if(t.lookahead<I){if(D(t),t.lookahead<I&&e===l)return w;if(0===t.lookahead)break}if(n=0,t.lookahead>=M&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+M-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=M-1,0!==n&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-I&&(t.match_length=P(t,n),t.match_length<=5&&(1===t.strategy||t.match_length===M&&4096<t.strstart-t.match_start)&&(t.match_length=M-1)),t.prev_length>=M&&t.match_length<=t.prev_length){for(r=t.strstart+t.lookahead-M,i=s._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-M),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+M-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=M-1,t.strstart++,i&&(N(t,!1),0===t.strm.avail_out))return w}else if(t.match_available){if((i=s._tr_tally(t,0,t.window[t.strstart-1]))&&N(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return w}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<M-1?t.strstart:M-1,e===u?(N(t,!0),0===t.strm.avail_out?k:_):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?w:R}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*b),this.dyn_dtree=new r.Buf16(2*(2*v+1)),this.bl_tree=new r.Buf16(2*(2*S+1)),F(this.dyn_ltree),F(this.dyn_dtree),F(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new r.Buf16(x+1),this.heap=new r.Buf16(2*y+1),F(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new r.Buf16(2*y+1),F(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:C,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,F(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=M-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+M-1)/M),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 w;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,N(t,!1),0===t.strm.avail_out))return w;if(t.strstart-t.block_start>=t.w_size-I&&(N(t,!1),0===t.strm.avail_out))return w}return t.insert=0,e===u?(N(t,!0),0===t.strm.avail_out?k:_):(t.strstart>t.block_start&&(N(t,!1),t.strm.avail_out),w)})),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,B(r,31),B(r,139),B(r,8),r.gzhead?(B(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)),B(r,255&r.gzhead.time),B(r,r.gzhead.time>>8&255),B(r,r.gzhead.time>>16&255),B(r,r.gzhead.time>>24&255),B(r,9===r.level?2:2<=r.strategy||r.level<2?4:0),B(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(B(r,255&r.gzhead.extra.length),B(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):(B(r,0),B(r,0),B(r,0),B(r,0),B(r,0),B(r,9===r.level?2:2<=r.strategy||r.level<2?4:0),B(r,3),r.status=C);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=C,W(r,p),0!==r.strstart&&(W(r,t.adler>>>16),W(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)),V(t),a=r.pending,r.pending!==r.pending_buf_size));)B(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)),V(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,B(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)),V(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,B(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&&V(t),r.pending+2<=r.pending_buf_size&&(B(r,255&t.adler),B(r,t.adler>>8&255),t.adler=0,r.status=C)):r.status=C),0!==r.pending){if(V(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 w;break}if(t.match_length=0,n=s._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(N(t,!1),0===t.strm.avail_out))return w}return t.insert=0,e===u?(N(t,!0),0===t.strm.avail_out?k:_):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?w:R}(r,e):3===r.strategy?function(t,e){for(var n,i,r,a,o=t.window;;){if(t.lookahead<=T){if(D(t),t.lookahead<=T&&e===l)return w;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=M&&0<t.strstart&&(i=o[r=t.strstart-1])===o[++r]&&i===o[++r]&&i===o[++r]){a=t.strstart+T;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=T-(a-r),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=M?(n=s._tr_tally(t,1,t.match_length-M),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&&(N(t,!1),0===t.strm.avail_out))return w}return t.insert=0,e===u?(N(t,!0),0===t.strm.avail_out?k:_):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?w:R}(r,e):i[r.level].func(r,e);if(f!==k&&f!==_||(r.status=666),f===w||f===k)return 0===t.avail_out&&(r.last_flush=-1),h;if(f===R&&(1===e?s._tr_align(r):5!==e&&(s._tr_stored_block(r,0,0,!1),3===e&&(F(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),V(t),0===t.avail_out))return r.last_flush=-1,h}return e!==u?h:r.wrap<=0?1:(2===r.wrap?(B(r,255&t.adler),B(r,t.adler>>8&255),B(r,t.adler>>16&255),B(r,t.adler>>24&255),B(r,255&t.total_in),B(r,t.total_in>>8&255),B(r,t.total_in>>16&255),B(r,t.total_in>>24&255)):(W(r,t.adler>>>16),W(r,65535&t.adler)),V(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!==C&&666!==e?L(t,d):(t.state=null,e===C?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&&(F(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>=M;){for(i=n.strstart,s=n.lookahead-(M-1);n.ins_h=(n.ins_h<<n.hash_shift^n.window[i+M-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=M-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=M-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,b,x,M,T,I,E;n=t.state,i=t.next_in,I=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+=I[i++]<<f,f+=8,p+=I[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}b=65535&v,(S&=15)&&(f<S&&(p+=I[i++]<<f,f+=8),b+=p&(1<<S)-1,p>>>=S,f-=S),f<15&&(p+=I[i++]<<f,f+=8,p+=I[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(x=65535&v,f<(S&=15)&&(p+=I[i++]<<f,(f+=8)<S&&(p+=I[i++]<<f,f+=8)),c<(x+=p&(1<<S)-1)){t.msg="invalid distance too far back",n.mode=30;break t}if(p>>>=S,f-=S,(S=s-a)<x){if(u<(S=x-S)&&n.sane){t.msg="invalid distance too far back",n.mode=30;break t}if(T=d,(M=0)===h){if(M+=l-S,S<b){for(b-=S;E[s++]=d[M++],--S;);M=s-x,T=E}}else if(h<S){if(M+=l+h-S,(S-=h)<b){for(b-=S;E[s++]=d[M++],--S;);if(M=0,h<b){for(b-=S=h;E[s++]=d[M++],--S;);M=s-x,T=E}}}else if(M+=h-S,S<b){for(b-=S;E[s++]=d[M++],--S;);M=s-x,T=E}for(;2<b;)E[s++]=T[M++],E[s++]=T[M++],E[s++]=T[M++],b-=3;b&&(E[s++]=T[M++],1<b&&(E[s++]=T[M++]))}else{for(M=s-x;E[s++]=E[M++],E[s++]=E[M++],E[s++]=E[M++],2<(b-=3););b&&(E[s++]=E[M++],1<b&&(E[s++]=E[M++]))}break}}break}}while(i<r&&s<o);i-=b=f>>3,p&=(1<<(f-=b<<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 b,x,M=!0;function T(t){if(M){var e;for(b=new i.Buf32(512),x=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,b,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;o(l,t.lens,0,32,x,0,t.work,{bits:5}),M=!1}t.lencode=b,t.lenbits=9,t.distcode=x,t.distbits=5}function I(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,b,x,M,E,C,w,R,k,_,L,U,F,V,N,B,W,P=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,b=n.bits,x=y,M=v,N=u;t:for(;;)switch(n.mode){case d:if(0===n.wrap){n.mode=13;break}for(;b<16;){if(0===y)break t;y--,S+=p[g++]<<b,b+=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),b=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(b-=4,V=8+(15&(S>>>=4)),0===n.wbits)n.wbits=V;else if(V>n.wbits){t.msg="invalid window size",n.mode=30;break}n.dmax=1<<V,t.adler=n.check=1,n.mode=512&S?10:12,b=S=0;break;case 2:for(;b<16;){if(0===y)break t;y--,S+=p[g++]<<b,b+=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)),b=S=0,n.mode=3;case 3:for(;b<32;){if(0===y)break t;y--,S+=p[g++]<<b,b+=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)),b=S=0,n.mode=4;case 4:for(;b<16;){if(0===y)break t;y--,S+=p[g++]<<b,b+=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)),b=S=0,n.mode=5;case 5:if(1024&n.flags){for(;b<16;){if(0===y)break t;y--,S+=p[g++]<<b,b+=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)),b=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&&(V=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,V)),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;V=p[g+E++],n.head&&V&&n.length<65536&&(n.head.name+=String.fromCharCode(V)),V&&E<y;);if(512&n.flags&&(n.check=s(n.check,p,E,g)),y-=E,g+=E,V)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;V=p[g+E++],n.head&&V&&n.length<65536&&(n.head.comment+=String.fromCharCode(V)),V&&E<y;);if(512&n.flags&&(n.check=s(n.check,p,E,g)),y-=E,g+=E,V)break t}else n.head&&(n.head.comment=null);n.mode=9;case 9:if(512&n.flags){for(;b<16;){if(0===y)break t;y--,S+=p[g++]<<b,b+=8}if(S!==(65535&n.check)){t.msg="header crc mismatch",n.mode=30;break}b=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(;b<32;){if(0===y)break t;y--,S+=p[g++]<<b,b+=8}t.adler=n.check=m(S),b=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=b,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&b,b-=7&b,n.mode=27;break}for(;b<3;){if(0===y)break t;y--,S+=p[g++]<<b,b+=8}switch(n.last=1&S,b-=1,3&(S>>>=1)){case 0:n.mode=14;break;case 1:if(T(n),n.mode=20,6!==e)break;S>>>=2,b-=2;break t;case 2:n.mode=17;break;case 3:t.msg="invalid block type",n.mode=30}S>>>=2,b-=2;break;case 14:for(S>>>=7&b,b-=7&b;b<32;){if(0===y)break t;y--,S+=p[g++]<<b,b+=8}if((65535&S)!=(S>>>16^65535)){t.msg="invalid stored block lengths",n.mode=30;break}if(n.length=65535&S,b=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(;b<14;){if(0===y)break t;y--,S+=p[g++]<<b,b+=8}if(n.nlen=257+(31&S),S>>>=5,b-=5,n.ndist=1+(31&S),S>>>=5,b-=5,n.ncode=4+(15&S),S>>>=4,b-=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(;b<3;){if(0===y)break t;y--,S+=p[g++]<<b,b+=8}n.lens[O[n.have++]]=7&S,S>>>=3,b-=3}for(;n.have<19;)n.lens[O[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,B={bits:n.lenbits},N=o(0,n.lens,0,19,n.lencode,0,n.work,B),n.lenbits=B.bits,N){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=(P=n.lencode[S&(1<<n.lenbits)-1])>>>16&255,_=65535&P,!((R=P>>>24)<=b);){if(0===y)break t;y--,S+=p[g++]<<b,b+=8}if(_<16)S>>>=R,b-=R,n.lens[n.have++]=_;else{if(16===_){for(W=R+2;b<W;){if(0===y)break t;y--,S+=p[g++]<<b,b+=8}if(S>>>=R,b-=R,0===n.have){t.msg="invalid bit length repeat",n.mode=30;break}V=n.lens[n.have-1],E=3+(3&S),S>>>=2,b-=2}else if(17===_){for(W=R+3;b<W;){if(0===y)break t;y--,S+=p[g++]<<b,b+=8}b-=R,V=0,E=3+(7&(S>>>=R)),S>>>=3,b-=3}else{for(W=R+7;b<W;){if(0===y)break t;y--,S+=p[g++]<<b,b+=8}b-=R,V=0,E=11+(127&(S>>>=R)),S>>>=7,b-=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++]=V}}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,B={bits:n.lenbits},N=o(c,n.lens,0,n.nlen,n.lencode,0,n.work,B),n.lenbits=B.bits,N){t.msg="invalid literal/lengths set",n.mode=30;break}if(n.distbits=6,n.distcode=n.distdyn,B={bits:n.distbits},N=o(l,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,B),n.distbits=B.bits,N){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=b,a(t,M),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,b=n.bits,12===n.mode&&(n.back=-1);break}for(n.back=0;k=(P=n.lencode[S&(1<<n.lenbits)-1])>>>16&255,_=65535&P,!((R=P>>>24)<=b);){if(0===y)break t;y--,S+=p[g++]<<b,b+=8}if(k&&!(240&k)){for(L=R,U=k,F=_;k=(P=n.lencode[F+((S&(1<<L+U)-1)>>L)])>>>16&255,_=65535&P,!(L+(R=P>>>24)<=b);){if(0===y)break t;y--,S+=p[g++]<<b,b+=8}S>>>=L,b-=L,n.back+=L}if(S>>>=R,b-=R,n.back+=R,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(W=n.extra;b<W;){if(0===y)break t;y--,S+=p[g++]<<b,b+=8}n.length+=S&(1<<n.extra)-1,S>>>=n.extra,b-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;k=(P=n.distcode[S&(1<<n.distbits)-1])>>>16&255,_=65535&P,!((R=P>>>24)<=b);){if(0===y)break t;y--,S+=p[g++]<<b,b+=8}if(!(240&k)){for(L=R,U=k,F=_;k=(P=n.distcode[F+((S&(1<<L+U)-1)>>L)])>>>16&255,_=65535&P,!(L+(R=P>>>24)<=b);){if(0===y)break t;y--,S+=p[g++]<<b,b+=8}S>>>=L,b-=L,n.back+=L}if(S>>>=R,b-=R,n.back+=R,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(W=n.extra;b<W;){if(0===y)break t;y--,S+=p[g++]<<b,b+=8}n.offset+=S&(1<<n.extra)-1,S>>>=n.extra,b-=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=M-v,n.offset>E){if((E=n.offset-E)>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=30;break}C=E>n.wnext?(E-=n.wnext,n.wsize-E):n.wnext-E,E>n.length&&(E=n.length),w=n.window}else w=f,C=A-n.offset,E=n.length;for(v<E&&(E=v),v-=E,n.length-=E;f[A++]=w[C++],--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(;b<32;){if(0===y)break t;y--,S|=p[g++]<<b,b+=8}if(M-=v,t.total_out+=M,n.total+=M,M&&(t.adler=n.check=n.flags?s(n.check,f,M,A-M):r(n.check,f,M,A-M)),M=v,(n.flags?S:m(S))!==n.check){t.msg="incorrect data check",n.mode=30;break}b=S=0}n.mode=28;case 28:if(n.wrap&&n.flags){for(;b<32;){if(0===y)break t;y--,S+=p[g++]<<b,b+=8}if(S!==(4294967295&n.total)){t.msg="incorrect length check",n.mode=30;break}b=S=0}n.mode=29;case 29:N=1;break t;case 30:N=-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=b,(n.wsize||M!==t.avail_out&&n.mode<30&&(n.mode<27||4!==e))&&I(t,t.output,t.next_out,M-t.avail_out)?(n.mode=31,-4):(x-=t.avail_in,M-=t.avail_out,t.total_in+=x,t.total_out+=M,n.total+=M,n.wrap&&M&&(t.adler=n.check=n.flags?s(n.check,f,M,t.next_out-M):r(n.check,f,M,t.next_out-M)),t.data_type=n.bits+(n.last?64:0)+(12===n.mode?128:0)+(20===n.mode||15===n.mode?256:0),(0==x&&0===M||4===e)&&N===u&&(N=-5),N)},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:I(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,b,x=d.bits,M=0,T=0,I=0,E=0,C=0,w=0,R=0,k=0,_=0,L=0,U=null,F=0,V=new i.Buf16(16),N=new i.Buf16(16),B=null,W=0;for(M=0;M<=15;M++)V[M]=0;for(T=0;T<c;T++)V[e[n+T]]++;for(C=x,E=15;1<=E&&0===V[E];E--);if(E<C&&(C=E),0===E)return l[u++]=20971520,l[u++]=20971520,d.bits=1,0;for(I=1;I<E&&0===V[I];I++);for(C<I&&(C=I),M=k=1;M<=15;M++)if(k<<=1,(k-=V[M])<0)return-1;if(0<k&&(0===t||1!==E))return-1;for(N[1]=0,M=1;M<15;M++)N[M+1]=N[M]+V[M];for(T=0;T<c;T++)0!==e[n+T]&&(h[N[e[n+T]]++]=T);if(y=0===t?(U=B=h,19):1===t?(U=r,F-=257,B=s,W-=257,256):(U=a,B=o,-1),M=I,A=u,R=T=L=0,m=-1,g=(_=1<<(w=C))-1,1===t&&852<_||2===t&&592<_)return 1;for(;;){for(v=M-R,b=h[T]<y?(S=0,h[T]):h[T]>y?(S=B[W+h[T]],U[F+h[T]]):(S=96,0),p=1<<M-R,I=f=1<<w;l[A+(L>>R)+(f-=p)]=v<<24|S<<16|b,0!==f;);for(p=1<<M-1;L&p;)p>>=1;if(0!==p?(L&=p-1,L+=p):L=0,T++,0==--V[M]){if(M===E)break;M=e[n+h[T]]}if(C<M&&(L&g)!==m){for(0===R&&(R=C),A+=I,k=1<<(w=M-R);w+R<E&&!((k-=V[w+R])<=0);)w++,k<<=1;if(_+=1<<w,1===t&&852<_||2===t&&592<_)return 1;l[m=L&g]=C<<24|w<<16|A-u}}return 0!==L&&(l[A+L]=M-R<<24|64<<16),d.bits=C,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,b=[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],x=[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],M=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],T=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],I=new Array(2*(u+2));a(I);var E=new Array(2*h);a(E);var C=new Array(512);a(C);var w=new Array(256);a(w);var R=new Array(c);a(R);var k,_,L,U=new Array(h);function F(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 V(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function N(t){return t<256?C[t]:C[256+(t>>>7)]}function B(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function W(t,e,n){t.bi_valid>m-n?(t.bi_buf|=e<<t.bi_valid&65535,B(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 P(t,e,n){W(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?B(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?P(t,r,e):(P(t,(s=w[r])+l+1,e),0!==(a=b[s])&&W(t,r-=R[s],a),P(t,s=N(--i),n),0!==(a=x[s])&&W(t,i-=U[s],a)),o<t.last_lit;);P(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(;P(t,r,t.bl_tree),0!=--o;);else 0!==r?(r!==s&&(P(t,r,t.bl_tree),o--),P(t,y,t.bl_tree),W(t,o-3,2)):o<=10?(P(t,v,t.bl_tree),W(t,o-3,3)):(P(t,S,t.bl_tree),W(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;W(t,(o<<1)+(r?1:0),3),a=e,c=n,G(s=t),B(s,c),B(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(R[i]=n,t=0;t<1<<b[i];t++)w[n++]=i;for(w[n-1]=i,i=r=0;i<16;i++)for(U[i]=r,t=0;t<1<<x[i];t++)C[r++]=i;for(r>>=7;i<h;i++)for(U[i]=r<<7,t=0;t<1<<x[i]-7;t++)C[256+r++]=i;for(e=0;e<=f;e++)s[e]=0;for(t=0;t<=143;)I[2*t+1]=8,t++,s[8]++;for(;t<=255;)I[2*t+1]=9,t++,s[9]++;for(;t<=279;)I[2*t+1]=7,t++,s[7]++;for(;t<=287;)I[2*t+1]=8,t++,s[8]++;for(O(I,u+1,s),t=0;t<h;t++)E[2*t+1]=5,E[2*t]=D(t,5);k=new F(I,b,l+1,u,f),_=new F(E,x,0,h,f),L=new F(new Array(0),M,0,d,g)}(),Z=!0),t.l_desc=new V(t.dyn_ltree,k),t.d_desc=new V(t.dyn_dtree,_),t.bl_desc=new V(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*T[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?(W(t,2+(i?1:0),3),j(t,I,E)):(W(t,4+(i?1:0),3),function(t,e,n,i){var r;for(W(t,e-257,5),W(t,n-1,5),W(t,i-4,4),r=0;r<i;r++)W(t,t.bl_tree[2*T[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*(w[n]+l+1)]++,t.dyn_dtree[2*N(e)]++),t.last_lit===t.lit_bufsize-1},n._tr_align=function(t){var e;W(t,2,3),P(t,A,I),16===(e=t).bi_valid?(B(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 h$8=getDefaultExportFromCjs(jszip_minExports),Mi=W$u;!function(t,e){const n=W$u,i=t();for(;;)try{if(382990===-parseInt(n(237))/1+parseInt(n(208))/2*(-parseInt(n(225))/3)+parseInt(n(263))/4+-parseInt(n(180))/5+-parseInt(n(155))/6+-parseInt(n(202))/7*(parseInt(n(255))/8)+-parseInt(n(174))/9*(-parseInt(n(230))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$u);let B$k={UNCERTAIN:0,STATIC:1,WALKING:2,RUN:3,DRIVING:4},n$c={HOLD:0,OTHER:1},C$a=B$k[Mi(267)],v$8=n$c[Mi(273)],I$8=0,h$7={t:I$8,stepDetected:!1,step:null,phonePlacement:v$8,motionState:C$a,turnDetected:!1,turnAngle:0},d$5=25,o$8=new Array(d$5),c$7=0,w$7=[],s$6=4e3,i$4=5e3,z$1=0,J$3=0,N$2=0,V$4=[],K$3=0,F=100,P=0,R=100,m$2={peak:0,valley:100,pvDiff:0},u=4,H=!1,O=0,G=0,a=10.5,A$1=2,E=330,f=200,L$1=1500,g=(new Date)[Mi(269)](),p=[],D=0,e=.65,k$1=null,S$1=[],Y=[],j,X$1;function md_sensorAcc(t){const e=Mi,n={TMVIz:function(t,e,n,i){return t(e,n,i)}};if(t[e(187)]&&t[e(203)]){var i=t[e(187)];ua[e(241)]&&i&&(i.x=-i.x,i.y=-i.y,i.z=-i.z),n[e(245)](Q,t[e(288)],t[e(203)],i)}return h$7}function Q(t,e,n){const i=Mi,r={lYxCm:function(t,e,n,i,r){return t(e,n,i,r)},HnCxa:function(t,e,n){return t(e,n)},dpTJG:function(t,e){return t(e)}};var s=r[i(219)](U$1,t,e,n,j);s&&(C$a=s[i(271)],s[i(185)]&&(r[i(162)](b$1,s.t,1),D+=1),r[i(158)](y,s[i(161)]))}function y(t){({Ilzvd:function(t,e){return t!==e}})[Mi(150)](void 0,t)&&(v$8=t)}function b$1(t,e){({xucaA:function(t,e){return t(e)}})[Mi(216)](T,t)}function q(t,e){const n=Mi,i={RhlqW:function(t,e){return t-e},owUbD:function(t,e){return t>=e},DrPrd:function(t,e){return t<=e}};var r=i[n(209)](t,e);return i[n(178)](r,180)&&(r-=360),i[n(207)](r,-180)&&(r+=360),r}function T(t){const e=Mi;({TElsS:function(t,e){return t>e}})[e(283)](p[e(247)],2)&&p[e(285)](),p[e(236)](t)}function U$1(n,i,s,a){const o=Mi,c={TUkql:o(240),PtnPx:function(t,e){return t+e},FJLOB:function(t,e){return t*e},UPNsB:function(t,e){return t*e},uxqpv:function(t,e){return t%e},wVJwp:function(t,e){return t-e},nCYKF:function(t,e){return t>e},NZvLJ:function(t,e){return t>e},wRXHt:function(t,e){return t-e},TcECz:function(t,e){return t(e)},wZRAG:function(t,e){return t>e},NaAHP:function(t,e){return t===e},GFNyF:function(t,e){return t===e},Scrty:function(t,e){return t===e},ppsdg:function(t,e,n,i){return t(e,n,i)},AmuLQ:function(t,e,n,i){return t(e,n,i)},oqyob:function(t,e){return t>=e},klGvk:function(t,e){return t(e)},MkPpB:function(t,e,n,i,r){return t(e,n,i,r)}},l=c[o(242)][o(157)]("|");let u=0;for(;;){switch(l[u++]){case"0":var h=Math[o(250)](c[o(287)](c[o(287)](c[o(239)](i.x,i.x),c[o(239)](i.y,i.y)),c[o(253)](i.z,i.z))),d=o$8[c[o(290)](c[o(287)](c[o(146)](c$7,1),d$5),d$5)];continue;case"1":for(;c[o(220)](S$1[o(247)],0)&&c[o(220)](c[o(146)](n,S$1[0].t),s$6);)S$1[o(285)]();continue;case"2":if(f){for(p={t:n,stepLen:e,heading:k$1},S$1[o(236)](p),Y[o(236)](p);c[o(196)](Y[o(247)],0)&&c[o(196)](c[o(177)](n,Y[0].t),4e3)||c[o(196)](Y[o(247)],6);)Y[o(285)]();(m=c[o(189)](r,Y[o(231)]((function(t){return t[o(217)]}))))[o(154)]&&c[o(281)](Y[o(247)],2)&&(Y=Y[o(258)](c[o(177)](Y[o(247)],2),Y[o(247)]))}continue;case"3":if(c[o(282)](0,i.x)&&c[o(249)](0,i.y)&&c[o(280)](0,i.z))return h$7;continue;case"4":return C$a=c[o(159)](M3,n,S$1,o$8),h$7=Object[o(211)]({t:n,stepDetected:f,step:p,phonePlacement:v$8,motionState:C$a},m),h$7;case"5":c[o(252)](t,n,s,h),c[o(228)](c[o(177)](n,I$8),5e3)&&c[o(192)](M2,n);continue;case"6":var p,f=c[o(275)](x,n,h,d,a),m={turnDetected:!1,turnAngle:0};continue}break}}function r(t){const e=Mi,n={LpcIP:function(t,e){return t<=e},McolB:function(t,e){return t-e},hLzpk:function(t,e){return t>=e},ESAiy:function(t,e,n){return t(e,n)},WepBh:function(t,e){return t>e},lwLgW:function(t,e){return t<e},miaqh:function(t,e){return t-e}};var i={turnDetected:!1,turnAngle:0};if(n[e(181)](t[e(247)],1))return i;for(var r=t[n[e(151)](t[e(247)],1)],s=0,a=n[e(151)](t[e(247)],2);n[e(262)](a,0);a--){var o=n[e(266)](q,r,t[a]);n[e(222)](Math[e(166)](o),Math[e(166)](s))&&(s=o)}return n[e(262)](Math[e(166)](s),45)&&n[e(170)](Math[e(166)](n[e(151)](r,t[n[e(292)](t[e(247)],2)])),15)&&(i={turnDetected:!0,turnAngle:s}),i}function t(t,e,n){const i=Mi,r={auMYD:i(200),gHNdr:function(t,e){return t+e},IkmqO:function(t,e){return t+e},iEdgp:function(t,e){return t*e},ZsHOY:function(t,e){return t+e},yIUHo:function(t,e){return t*e},flJQm:function(t,e){return t*e},RfVdQ:function(t,e){return t>e},nxgjy:function(t,e){return t>e},kebiV:function(t,e){return t-e},BUbLb:function(t,e){return t>e},toBtr:function(t,e){return t-e},ktUAc:function(t,e){return t%e},ITIaq:function(t,e){return t+e}};if(e){const c=r[i(257)][i(157)]("|");let l=0;for(;;){switch(c[l++]){case"0":var s=Math[i(250)](r[i(264)](r[i(152)](r[i(164)](e.x,e.x),r[i(164)](e.y,e.y)),r[i(164)](e.z,e.z))),a=Math[i(250)](r[i(235)](r[i(284)](e.x,e.x),r[i(286)](e.y,e.y)));continue;case"1":for(e[i(188)]=s,e[i(254)]=a,w$7[i(236)](e);r[i(143)](w$7[i(247)],0)&&r[i(148)](r[i(153)](t,w$7[0].t),i$4);)w$7[i(285)]();continue;case"2":r[i(186)](o,250)&&(w$7=w$7[i(258)](r[i(173)](o,250),o)),o$8[c$7]=n,c$7=r[i(277)](r[i(278)](c$7,1),d$5);continue;case"3":var o=w$7[i(247)];continue;case"4":e.t=t;continue}break}}}function x(t,e,n,i){const r=Mi,s={GfpZA:function(t,e){return t===e},oMkqY:function(t,e){return t!==e},zjspW:function(t,e){return t>e},MyLWT:function(t,e){return t>e},sCupa:function(t,e){return t-e},CugBT:function(t,e){return t-e},csJYj:function(t,e){return t<e},vNZJc:function(t,e){return t-e},IYzmF:function(t,e){return t*e},JZNWb:function(t,e){return t!==e},gBEPZ:function(t,e,n,i){return t(e,n,i)},XydPI:function(t,e){return t>e},plzZw:function(t,e){return t(e)},hcSlM:function(t,e){return t-e},LXarP:function(t,e){return t-e},llNWm:function(t,e){return t<=e},mnVmd:function(t,e){return t-e}};var o=!1;return a=s[r(212)](null,i)?11.1:10.7,s[r(221)](0,N$2)&&s[r(184)](m$2[r(195)],A$1)&&s[r(190)](s[r(205)](t,N$2),f)&&s[r(184)](s[r(227)](N$2,z$1),E)&&(z$1=N$2,o=!0),s[r(218)](e,F)&&(F=e,P=t),R=s[r(218)](s[r(145)](t,K$3),s[r(289)](2,E))&&s[r(184)](K$3,z$1)&&s[r(218)](X$1,F)?X$1:F,s[r(223)](0,n)&&s[r(212)](1,s[r(193)](l,t,e,n))&&s[r(184)](s[r(227)](n,R),1.3)&&(s[r(201)](s[r(205)](t,N$2),f)&&(A$1=s[r(261)](M0$1,s[r(244)](n,R)),X$1=F,K$3=P,F=100,N$2=t,m$2={peak:n,valley:R,pvDiff:s[r(198)](n,R)}),s[r(248)](s[r(276)](t,N$2),f)&&s[r(184)](n,m$2[r(232)])&&(N$2=t,R=s[r(218)](R,m$2[r(260)])?R:m$2[r(260)],m$2={peak:n,valley:R,pvDiff:s[r(244)](n,R)})),o}function l(t,e,n){const i=Mi,r={LJJqU:function(t,e){return t>e},FIkMP:function(t,e){return t<e},YHeuV:function(t,e){return t>=e},lFxeT:function(t,e){return t>=e}};var s=H,o=0;return r[i(226)](e,n)?(H=!0,O++):r[i(274)](e,n)&&(G=O,O=0,H=!1),r[i(226)](n,a)&&!H&&s&&(r[i(204)](G,1)||r[i(279)](n,12))&&(o=1),o}function M0$1(t){const e=Mi,n={zILkD:function(t,e){return t>=e},UAEao:function(t,e){return t===e},Ahrrc:function(t,e){return t(e)}};var i=A$1;return n[e(238)](V$4[e(247)],u)&&V$4[e(285)](),V$4[e(236)](t),n[e(199)](V$4[e(247)],u)&&(i=n[e(169)](M1,V$4)),i}function M1(t){const e=Mi,n={jdjhR:function(t,e){return t+e},xavuy:function(t,e){return t/e},FmnRE:function(t,e){return t>=e},cvMpb:function(t,e){return t<e},oNDNB:function(t,e){return t<e},hunxA:function(t,e){return t>=e}};var i=n[e(147)](t[e(175)]((function(t,i){return n[e(179)](t,i)}),0),u);return n[e(144)](i,8)?4.3:n[e(144)](i,7)&&n[e(234)](i,8)?3.3:n[e(144)](i,4)&&n[e(194)](i,7)?2.3:n[e(224)](i,3)&&n[e(234)](i,4)?2:1.7}function W$u(t,e){const n=M$u();return(W$u=function(t,e){return n[t-=143]})(t,e)}function M2(t){const e=Mi,n={etpHZ:function(t,e){return t>=e},ZnMLM:function(t,e){return t-e},vYGSO:function(t,e){return t+e},NnTiN:function(t,e){return t+e},iUALr:function(t,e){return t>e},hRklI:function(t,e){return t/e},iHRVz:function(t,e){return t(e)},XLndK:function(t,e){return t===e},SDVpQ:function(t,e){return t<e}};var i=w$7[e(233)]((i=>{const r=e;return n[r(163)](i.t,n[r(243)](t,L$1))})),r=v$8,s=v$8;if(n[e(183)](i[e(247)],0)){var a=i[e(247)],o=(i[e(231)]((function(t){return t.y}))[e(175)]((function(t,i){return n[e(172)](t,i)}),0),n[e(160)](i[e(231)]((function(t){return t.z}))[e(175)]((function(t,i){return n[e(215)](t,i)}),0),a));o=Math[e(166)](o);var c=n[e(160)](i[e(231)]((function(t){return t[e(188)]}))[e(175)]((function(t,i){return n[e(172)](t,i)}),0),a),l=n[e(168)](M4,i[e(231)]((function(t){return t[e(254)]})));n[e(206)](r,n$c[e(273)])?(n[e(272)](o,5.886)&&n[e(183)](l,3)||n[e(183)](l,4))&&(s=n$c[e(176)]):n[e(206)](r,n$c[e(176)])&&n[e(272)](l,2.5)&&n[e(183)](c,8.81)&&n[e(272)](c,10.81)&&n[e(183)](o,4.4145)&&(s=n$c[e(273)])}v$8=s}function M$u(){const t=["Ilzvd","McolB","IkmqO","kebiV","turnDetected","3989214NWtMFT","iscSi","split","dpTJG","ppsdg","hRklI","phonePlacement","HnCxa","etpHZ","iEdgp","JcGno","abs","zIHYY","iHRVz","Ahrrc","lwLgW","WrrpM","vYGSO","toBtr","21216915sPmYgi","reduce","OTHER","wRXHt","owUbD","jdjhR","2801885VWvGQK","LpcIP","umYDJ","iUALr","zjspW","step","BUbLb","gravity","norm","TcECz","MyLWT","XjUfC","klGvk","gBEPZ","oNDNB","pvDiff","NZvLJ","STATIC","LXarP","UAEao","4|0|1|3|2","XydPI","53942lwDlcE","accelerationIncludingGravity","YHeuV","sCupa","XLndK","DrPrd","11306yCkmSd","RhlqW","ngBhv","assign","GfpZA","CLXbs","RQtFy","NnTiN","xucaA","heading","csJYj","lYxCm","nCYKF","oMkqY","WepBh","JZNWb","hunxA","12uqycfN","LJJqU","CugBT","oqyob","rXCoB","10EXLYsr","map","peak","filter","cvMpb","ZsHOY","push","532950kSOeVE","zILkD","FJLOB","3|0|5|6|2|1|4","ios","TUkql","ZnMLM","hcSlM","TMVIz","URSZg","length","llNWm","GFNyF","sqrt","CnlMv","AmuLQ","UPNsB","gxy_norm","608zKirps","ZNLMy","auMYD","slice","KWxfX","valley","plzZw","hLzpk","1568076gIcDCu","gHNdr","xYphI","ESAiy","UNCERTAIN","xSNVf","getTime","WALKING","motionState","SDVpQ","HOLD","FIkMP","MkPpB","mnVmd","ktUAc","ITIaq","lFxeT","Scrty","wZRAG","NaAHP","TElsS","yIUHo","shift","flJQm","PtnPx","timestamp","IYzmF","uxqpv","jymVX","miaqh","RfVdQ","FmnRE","vNZJc","wVJwp","xavuy","nxgjy","3|1|2|0|4"];return(M$u=function(){return t})()}function M3(t,e,n){const i=Mi,r={zIHYY:function(t,e){return t>=e},KWxfX:function(t,e){return t-e},CnlMv:i(149),umYDJ:function(t,e){return t(e)},xYphI:function(t,e){return t*e},URSZg:function(t,e){return t/e},iscSi:function(t,e){return t===e},rXCoB:function(t,e){return t===e},XjUfC:function(t,e){return t>=e},WrrpM:function(t,e){return t>e},ngBhv:function(t,e){return t<=e},RQtFy:function(t,e){return t<e}};if(r[i(167)](r[i(259)](t,g),500)){const o=r[i(251)][i(157)]("|");let c=0;for(;;){switch(o[c++]){case"0":var s=r[i(182)](M4,n);continue;case"1":var a=C$a;continue;case"2":J$3=r[i(265)](r[i(246)](e[i(247)],s$6),1e3);continue;case"3":g=t;continue;case"4":r[i(156)](a,B$k[i(267)])||r[i(229)](a,B$k[i(197)])?r[i(191)](J$3,1)&&r[i(171)](s,1)&&(C$a=B$k[i(270)]):r[i(229)](a,B$k[i(270)])&&r[i(210)](J$3,.75)&&r[i(214)](s,.7)&&(C$a=B$k[i(197)]);continue}break}}return C$a}function M4(t){const e=Mi,n={JcGno:function(t,e){return t+e},xSNVf:function(t,e){return t-e},CLXbs:function(t,e){return t*e},ZNLMy:function(t,e){return t/e},jymVX:function(t,e){return t-e}};var i=function(t,e){return n[W$u(165)](t,e)},r=n[e(256)](t[e(175)](i,0),t[e(247)]),s=t[e(231)]((function(t){return n[e(268)](t,r)}));return Math[e(250)](n[e(256)](s[e(231)]((function(t){return n[e(213)](t,t)}))[e(175)](i,0),n[e(291)](t[e(247)],1)))}!function(t,e){const n=W$t,i=t();for(;;)try{if(947512===-parseInt(n(442))/1*(-parseInt(n(451))/2)+parseInt(n(441))/3+parseInt(n(453))/4*(-parseInt(n(455))/5)+-parseInt(n(445))/6*(parseInt(n(447))/7)+parseInt(n(435))/8+parseInt(n(444))/9+parseInt(n(434))/10*(-parseInt(n(452))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$t);let B$j={x:0,y:0,z:0};function W$t(t,e){const n=M$t();return(W$t=function(t,e){return n[t-=434]})(t,e)}function M$t(){const t=["diZyk","Eqcwt","ynaPy","2037246roFmEg","484FZduqw","ixdtv","10629990eykbar","1938oDaoFT","aFSKJ","28511MCUiAa","oekOq","YbzhN","lUyLM","5342ACWifJ","33KlqzrQ","4LOfpxi","now","1216795NyuWQn","acceleration","wnYcN","3522300YvLOtX","3281472xbWivh","CoRtk","accelerationIncludingGravity"];return(M$t=function(){return t})()}function motionCallback(t){const e=W$t,n={ynaPy:function(t,e){return t in e},ixdtv:function(t,e){return t-e},YbzhN:function(t,e){return t-e},diZyk:function(t,e){return t-e},lUyLM:function(t,e){return t+e},oekOq:function(t,e){return t*e},aFSKJ:function(t,e){return t*e},Eqcwt:function(t,e){return t*e},CoRtk:function(t,e){return t+e},wnYcN:function(t,e){return t*e}};n[e(440)]("x",t)&&(t={accelerationIncludingGravity:t});let i,r=Date[e(454)](),s=t[e(456)],a=t[e(456)];if(s&&s.x&&s.y&&s.z)t[e(437)]&&t[e(437)].x&&t[e(437)].y&&t[e(437)].z&&(i={x:n[e(443)](t[e(437)].x,s.x),y:n[e(449)](t[e(437)].y,s.y),z:n[e(438)](t[e(437)].z,s.z)});else{if(!(t[e(437)]&&t[e(437)].x&&t[e(437)].y&&t[e(437)].z))return;a=t[e(437)],B$j.x=n[e(450)](n[e(448)](.9,B$j.x),n[e(448)](.1,t[e(437)].x)),B$j.y=n[e(450)](n[e(446)](.9,B$j.y),n[e(439)](.1,t[e(437)].y)),B$j.z=n[e(436)](n[e(448)](.9,B$j.z),n[e(457)](.1,t[e(437)].z)),i=B$j,(s={x:0,y:0,z:0}).x=n[e(449)](t[e(437)].x,B$j.x),s.y=n[e(443)](t[e(437)].y,B$j.y),s.z=n[e(443)](t[e(437)].z,B$j.z)}let o=t[e(437)];return t[e(437)]&&t[e(437)].x&&t[e(437)].y&&t[e(437)].z||(o={x:0,y:0,z:0}),{timestamp:r,acc:a,linearAcc:s,gravity:i,accelerationIncludingGravity:o}}function M$s(){const t=["webMercatorToLongitude","zxhDA","lng","atan","TJTFM","OfYFT","sinh","WEB_MERCATOR_MAX_EXTENT","Ynyrk","datumsToVector","sdAAs","CHUmM","zJuVA","EARTH_PERIMETER","EhFWq","hxynb","1843740liOpZW","tFSum","tileBounds","exp","Zagnt","BXKGx","DAAeS","20vvHzwG","atan2","TdcQI","EARTH_ORIGIN","getDistance","NwwRW","lat","277124QMgMYX","fhfqj","VmLQT","tsVvg","hEmmq","asin","EAEXt","QrJnk","ToztP","JXizW","sqrt","webMercatorToLatitude","119976fcvKiK","NlKdt","qywtc","EIgYO","LzUAh","8610768AZUUNl","tan","GJCjq","LyMNt","log","wzewp","toFixed","vectorToDatums","BFCde","quadtreeToDatums","bIndj","sphericalToDatums","INHnF","hSpZh","RBGIA","toArray","cos","DiPWw","yIYcm","bBhuS","mdBhX","1249zeVPeg","VplCj","tsKky","WUaxJ","GIjAz","pos","5109265ufUWxf","CNmzq","ocCpc","pSPPx","datumsToSpherical","DAaWx","EARTH_RADIUS","sin","EHNme","distanceTo","mapboxAltitude","358020DFwmsH","FqLgE","oooVL","gFOvU","PRJOy","VNecv","pqmsV","nRrBO","tVoHY","ZQGQV","kSbMV","pow","UZEKK","vskgd","CIgtV","getTileSize","NxmAf","ljyIo"];return(M$s=function(){return t})()}const V$3=W$s;!function(t,e){const n=W$s,i=t();for(;;)try{if(455716===-parseInt(n(153))/1+parseInt(n(170))/2+parseInt(n(230))/3+parseInt(n(218))/4*(parseInt(n(211))/5)+parseInt(n(204))/6+parseInt(n(159))/7+-parseInt(n(235))/8)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$s);class LngLat{constructor(t,e){__publicField(this,0),__publicField(this,1),__publicField(this,_ya),__publicField(this,_xa),__publicField(this,_wa);const n=V$3;this[1]=this[n(217)]=e,this[0]=this[n(190)]=t,this[n(158)]=UnitsUtils[n(163)](t,e)[n(250)]()}[(_ya=V$3(217),_xa=V$3(190),_wa=V$3(158),V$3(168))](t){return UnitsUtils[V$3(215)](this,t)}}function W$s(t,e){const n=M$s();return(W$s=function(t,e){return n[t-=148]})(t,e)}const _UnitsUtils=class t{static[(_Ca=V$3(165),_Ba=V$3(201),_Aa=V$3(214),_za=V$3(195),V$3(163))](e,n){const i=V$3,r={gFOvU:function(t,e){return t/e},LyMNt:function(t,e){return t*e},NxmAf:function(t,e){return t/e},ZQGQV:function(t,e){return t+e},EhFWq:function(t,e){return t/e},VmLQT:function(t,e){return t/e},pSPPx:function(t,e){return t(e)}},s=r[i(173)](r[i(238)](e,t[i(214)]),180);let a=r[i(173)](Math[i(239)](Math[i(236)](r[i(186)](r[i(238)](r[i(179)](90,n),Math.PI),360))),r[i(202)](Math.PI,180));return a=r[i(220)](r[i(238)](a,t[i(214)]),180),r[i(162)](isNaN,a)||r[i(162)](isNaN,s),new Vector2(s,a)}static[V$3(246)](e,n){const i=V$3,r={zxhDA:function(t,e){return t*e},yIYcm:function(t,e){return t/e},DiPWw:function(t,e){return t*e},JXizW:function(t,e){return t*e},tsKky:function(t,e){return t/e},DAaWx:function(t,e){return t-e},OfYFT:function(t,e){return t*e},CNmzq:function(t,e){return t/e},ljyIo:function(t,e){return t/e}},s=r[i(189)](r[i(150)](e,t[i(214)]),180);let a=r[i(149)](r[i(150)](n,t[i(214)]),180);return a=r[i(227)](r[i(155)](180,Math.PI),r[i(164)](r[i(193)](2,Math[i(191)](Math[i(207)](r[i(160)](r[i(189)](a,Math.PI),180)))),r[i(187)](Math.PI,2))),new LngLat(s,a)}static[V$3(244)](t,e,n){const i=V$3,r={zJuVA:function(t,e){return t-e},GIjAz:function(t,e){return t*e},bIndj:function(t,e){return t/e},qywtc:function(t,e){return t*e},vskgd:function(t,e){return t/e},sdAAs:function(t,e){return t*e},EHNme:function(t,e){return t*e}},s=Math[i(181)](2,t),a=r[i(200)](r[i(157)](r[i(245)](e,s),360),180),o=Math[i(191)](Math[i(194)](r[i(232)](Math.PI,r[i(200)](1,r[i(183)](r[i(198)](2,n),s))))),c=r[i(167)](180,r[i(183)](o,Math.PI));return new LngLat(c,a)}static[V$3(242)](t){const e=V$3,n={Zagnt:function(t,e){return t/e},EAEXt:function(t,e){return t*e},mdBhX:function(t,e){return t+e}},i=n[e(208)](180,Math.PI),r=n[e(224)](Math[e(212)](t.y,Math[e(228)](n[e(152)](Math[e(181)](t.x,2),Math[e(181)](-t.z,2)))),i),s=n[e(224)](Math[e(212)](-t.z,t.x),i);return new LngLat(+s[e(241)](6),+r[e(241)](6))}static[V$3(197)](t,e){const n=V$3,i={INHnF:function(t,e){return t/e},hSpZh:function(t,e){return t*e},CHUmM:function(t,e){return t*e},DAAeS:function(t,e){return t*e},QrJnk:function(t,e){return t+e},NlKdt:function(t,e){return t*e}},r=i[n(247)](Math.PI,180),s=i[n(248)](t,r),a=i[n(199)](e,r);var o=Math[n(148)](a);return new Vector3(i[n(210)](-Math[n(148)](i[n(225)](s,Math.PI)),o),Math[n(166)](a),i[n(231)](Math[n(166)](i[n(225)](s,Math.PI)),o))}static[V$3(169)](t){const e=V$3,n={LzUAh:function(t,e){return t-e},tFSum:function(t,e){return t*e},TdcQI:function(t,e){return t+e},VNecv:function(t,e){return t+e},UZEKK:function(t,e){return t*e},oooVL:function(t,e){return t*e},bBhuS:function(t,e){return t*e}};return n[e(234)](n[e(205)](n[e(213)](n[e(175)](n[e(182)](n[e(172)](t.r,255),65536),n[e(151)](n[e(205)](t.g,255),256)),n[e(182)](t.b,255)),.1),1e4)}static[V$3(185)](e){const n=V$3,i={FqLgE:function(t,e){return t/e},ToztP:function(t,e){return t*e}},r=t[n(195)],s=Math[n(181)](2,e);return i[n(171)](i[n(226)](2,r),s)}static[V$3(206)](e,n,i){const r=V$3,s={NwwRW:function(t,e){return t+e},pqmsV:function(t,e){return t*e},WUaxJ:function(t,e){return t-e}},a=t[r(185)](e);return[s[r(216)](-t[r(195)],s[r(176)](n,a)),a,s[r(156)](t[r(195)],s[r(176)](s[r(216)](i,1),a)),a]}static[V$3(229)](e,n){const i=V$3,r={RBGIA:function(t,e){return t-e},BFCde:function(t,e){return t*e},kSbMV:function(t,e){return t/e}},s=r[i(249)](t[i(195)],r[i(243)](n,t[i(185)](e)));return Math[i(191)](Math[i(194)](r[i(180)](s,t[i(165)])))}static[V$3(188)](e,n){const i=V$3,r={BXKGx:function(t,e){return t+e},GJCjq:function(t,e){return t*e},fhfqj:function(t,e){return t/e}},s=r[i(209)](-t[i(195)],r[i(237)](n,t[i(185)](e)));return r[i(219)](s,t[i(165)])}static[V$3(215)](t,e){const n=V$3,i={TJTFM:function(t,e){return t/e},CIgtV:function(t,e){return t*e},wzewp:function(t,e){return t*e},PRJOy:function(t,e){return t-e},hEmmq:function(t,e){return t*e},ocCpc:function(t,e){return t*e},tVoHY:function(t,e){return t*e},VplCj:function(t,e){return t*e},tsVvg:function(t,e){return t+e},Ynyrk:function(t,e){return t/e},nRrBO:function(t,e){return t*e},hxynb:function(t,e){return t*e},EIgYO:function(t,e){return t/e}};let r=t[n(217)]||0,s=t[n(190)]||0,a=e[n(217)]||0,o=e[n(190)]||0;var c=i[n(192)](i[n(184)](r,Math.PI),180),l=i[n(192)](i[n(240)](a,Math.PI),180),u=i[n(174)](c,l),h=i[n(174)](i[n(192)](i[n(222)](s,Math.PI),180),i[n(192)](i[n(161)](o,Math.PI),180)),d=this[n(165)];return i[n(178)](i[n(154)](d,2),Math[n(223)](Math[n(228)](i[n(221)](Math[n(181)](Math[n(166)](i[n(196)](u,2)),2),i[n(177)](i[n(203)](Math[n(148)](c),Math[n(148)](l)),Math[n(181)](Math[n(166)](i[n(233)](h,2)),2))))))}};__publicField(_UnitsUtils,_Ca,6378137),__publicField(_UnitsUtils,_Ba,2*Math.PI*_UnitsUtils[V$3(165)]),__publicField(_UnitsUtils,_Aa,_UnitsUtils[V$3(201)]/2),__publicField(_UnitsUtils,_za,20037508.342789244);let UnitsUtils=_UnitsUtils;var k=W$r;!function(t,e){for(var n=W$r,i=t();;)try{if(303247===parseInt(n(204))/1*(parseInt(n(288))/2)+-parseInt(n(673))/3*(parseInt(n(394))/4)+parseInt(n(689))/5+-parseInt(n(219))/6+-parseInt(n(195))/7+-parseInt(n(593))/8*(-parseInt(n(561))/9)+-parseInt(n(264))/10*(-parseInt(n(553))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$r);var B$i=2===C$9();function n$b(t,e=-59){var n=W$r,i={jztAS:function(t,e){return t/e},wtgdB:function(t,e){return t+e},QhwTB:function(t,e){return t%e},xNezg:function(t,e){return t<=e},QUgqX:function(t,e){return t*e},esmSr:function(t,e){return t*e}},r=i[n(436)](t,e),s=i[n(485)](.96,i[n(152)](Math[n(564)](Math[n(354)](t),3),10));return i[n(362)](r,1)?i[n(345)](Math[n(564)](r,9.98),s):i[n(416)](i[n(485)](.103,i[n(345)](.89978,Math[n(564)](r,7.5))),s)}function C$9(){var t=W$r;return/(Android)/i[t(648)](navigator[t(407)])?1:/(iPhone|iPad|iPod|iOS)/i[t(648)](navigator[t(407)])?2:3}let v$7=class{constructor(t){__publicField(this,_Ja),__publicField(this,_Ia),__publicField(this,_Ha),__publicField(this,_Ga),__publicField(this,_Fa),__publicField(this,_Ea),__publicField(this,_Da);var e=k,n={LCmRx:function(t,e){return t===e},lYElK:function(t){return t()}};this[e(644)]=t,this[e(245)]=2e3,n[e(504)](n[e(171)](C$9),1)&&(this[e(245)]=5e3),this[e(589)]=null,this[e(629)]=null,this[e(525)]=[],this[e(584)]=[]}[(_Ja=k(644),_Ia=k(245),_Ha=k(674),_Ga=k(589),_Fa=k(629),_Ea=k(525),_Da=k(584),k(440))](t){var e=k,n={MEXeY:function(t,e){return t+e},SYLOX:function(t,e){return t+e},bjvbC:function(t,e){return t>e},GrvtV:function(t,e){return t/e},iYrQR:function(t,e){return t/e},zXEhf:function(t,e){return t>e},ZNezF:function(t,e){return t-e}},i=Date[e(531)]();for(var r in this[e(525)]){var s=this[e(525)][r];n[e(157)](Math[e(354)](n[e(580)](i,s[e(397)])),this[e(245)])&&delete this[e(525)][r]}t[e(384)]((t=>{var r=e;let s=n[r(452)](n[r(697)](t[r(423)],"_"),t[r(709)]);if(this[r(525)][s]=Object[r(227)]({...this[r(525)][s]||{},time:i},t),!B$i){let e=this[r(525)][s];e[r(193)]=e[r(193)]||[],e[r(193)][r(550)]({time:i,rssi:t[r(162)],accuracy:t[r(328)]}),n[r(352)](e[r(193)][r(680)],5)&&(e[r(193)][r(274)](),e[r(193)]=e[r(193)][r(413)]((t=>i-t[r(397)]<this[r(245)]))),e[r(162)]=n[r(240)](e[r(193)][r(336)](((t,e)=>t+e[r(162)]),0),e[r(193)][r(680)]),e[r(162)][r(381)](1),e[r(328)]=n[r(173)](e[r(193)][r(336)](((t,e)=>t+e[r(328)]),0),e[r(193)][r(680)]),e[r(328)][r(381)](1)}}));var a=[];for(var o in this[e(525)])a[e(550)](this[e(525)][o]);return this[e(562)](a)}[k(562)](t){var e=k,n={AqMYv:function(t,e){return t-e},ePXEW:function(t,e){return t<e},dSzMI:function(t,e){return t===e},OWNiP:function(t,e){return t>e},BdSpt:function(t,e){return t-e},oWIdc:function(t,e){return t===e},dTHNw:function(t,e){return t<e},ULoBG:function(t,e){return t>=e},bQBrb:function(t,e){return t/e}};t[e(337)]((function(t,i){var r=e;return n[r(320)](i[r(162)],t[r(162)])}));for(var i={beacons:[],floor:null},r={beacons:[],floor:null},s=0,a=0;n[e(260)](a,t[e(680)]);a++){var o=t[a],c=o[e(270)];if(this[e(589)]=this[e(589)]||c,n[e(176)](s,0))n[e(176)](c,this[e(589)])?(i[e(687)][e(550)](o),i[e(270)]=c):(r[e(687)][e(550)](o),r[e(270)]=c);else if(n[e(176)](c,this[e(589)])){if(r[e(270)]){if(n[e(444)](n[e(530)](r[e(687)][0][e(162)],o[e(162)]),8))continue;r[e(687)]=[],r[e(270)]=null}i[e(687)][e(550)](o),i[e(270)]=c}else n[e(458)](c,r[e(270)])&&r[e(687)][e(550)](o);s++}return r[e(270)]?this[e(674)]++:(this[e(674)]--,n[e(296)](this[e(674)],0)&&(this[e(674)]=0)),n[e(705)](this[e(674)],n[e(628)](this[e(644)][e(144)],1e3))&&(i=r,this[e(674)]=0),this[e(589)]=i[e(270)],i[e(687)]}[k(224)](t){var e=k,n={QmUeU:function(t,e){return t===e},NxncG:function(t,e){return t<e},GJjmE:function(t,e){return t/e},fGgvV:function(t,e){return t*e},LizDY:function(t,e){return t/e}};if(n[e(282)](t[e(680)],0))return null;for(var i,r,s,a=Math[e(280)](t[e(680)],6),o=[],c=0,l=0,u=0,h=0;n[e(372)](h,a);h++)i=t[h],c+=r=n[e(194)](1,Math[e(564)](i[e(328)],2)),o[e(550)](r);for(let d=0;n[e(372)](d,o[e(680)]);d++)l+=n[e(539)]((s=t[d]).x,o[d]),u+=n[e(539)](s.y,o[d]);return{x:n[e(537)](l,c),y:n[e(194)](u,c),floor:this[e(589)]}}[k(391)](t){var e=k;return this[e(224)](this[e(440)](t))}[k(226)](){var t=k;this[t(525)]=[],this[t(589)]=null}};function I$7(t){var e=k,n={YGjpi:function(t,e){return t<e},QapPK:e(601),AMrLN:e(150),KSwjp:e(304),QuTvd:function(t,e){return t!==e},yBeEc:e(529),JsYhH:function(t,e){return t!==e},xkEUf:function(t,e){return t-e},WWGVk:function(t,e){return t===e},wAjjF:function(t,e){return t-e},cEkaP:function(t,e){return t+e},nyTOV:function(t,e){return t===e},APpGj:function(t,e){return t===e},vPKRa:function(t,e){return t-e},zadfv:function(t,e){return t%e},uRzRq:function(t,e){return t+e},frUvN:e(428),MIFaV:function(t,e){return t%e},szSAk:function(t,e){return t(e)},qtsMM:function(t,e){return t-e},roZaS:e(148),MyeuB:function(t,e){return t-e},biZOA:function(t,e){return t-e},zIVct:function(t,e){return t<e},uHlFF:e(302),eaELf:function(t,e){return t===e},OcvmY:function(t,e){return t+e},JNOLW:function(t,e){return t-e},xCeNZ:function(t,e){return t>e},tQESX:function(t,e){return t<e},yKhaR:function(t,e){return t/e},QdvsL:function(t,e){return t-e},NNJIk:function(t,e){return t||e},KoVKn:e(174),FsTQS:e(536)};let i=0,r=0,s=0,a=null;function o(o){var l,u,h,d=e;if(window[d(215)]&&n[d(464)](r++,10)&&(console[d(271)](n[d(294)],o,a),console[d(271)](n[d(471)],o[d(192)],o[d(253)],o[d(233)],o[d(609)]),a&&console[d(271)](n[d(570)],a[d(192)],a[d(253)],a[d(233)],a[d(609)])),n[d(464)](s++,10)&&(a=o),t[d(302)]=o,n[d(468)](typeof o[d(192)],n[d(659)]))return;let p;if(n[d(701)](o[d(609)],void 0))p=o[d(609)];else{let t=o[d(192)],e=(null==(l=screen[d(486)])?void 0:l[d(545)])||window[d(486)]||0;p=n[d(398)](360,t),n[d(389)](e,90)&&(p=n[d(506)](360,n[d(569)](t,90))),(n[d(261)](e,-90)||n[d(591)](e,270))&&(p=n[d(605)](360,n[d(605)](t,90))),p=n[d(327)](n[d(461)](p,360),360),window[d(420)](n[d(462)])[d(239)]&&(p=n[d(283)](n[d(569)](p,180),360))}let f=p;n[d(364)](c,f),t[d(483)]=i,t[d(607)]=f,f+=i;var m=n[d(622)](f,t[d(684)]);n[d(464)](r,10)&&t[d(665)](n[d(228)],m);let g={value:{alpha:n[d(257)](n[d(461)](B$i?o[d(609)]:n[d(478)](360,o[d(192)]),i),t[d(684)]),beta:o[d(253)],gamma:o[d(233)]},event:o};window[d(215)]&&n[d(464)](r,10)&&console[d(271)]("de",g,t[d(203)],m),n[d(433)](r,10)&&t[d(665)](n[d(279)],g),null==(h=null==(u=t[d(185)])?void 0:u.ar)||h[d(637)](g),t[d(203)]={alpha:m,beta:o[d(253)],gamma:o[d(233)]}}function c(r){var s,a,o=e;let c=null==(a=null==(s=t[o(185)][o(334)])?void 0:s[o(256)])?void 0:a[o(442)];if(n[o(669)](c,void 0))return;let l=n[o(283)](n[o(305)](n[o(521)](c,r),3600),360);n[o(484)](l,180)&&(l=n[o(521)](l,360));let u=Math[o(354)](l);n[o(484)](u,.12)&&n[o(702)](u,15)&&(i+=n[o(624)](n[o(560)](l,i),70))}let l=n[e(373)](B$i,!1)?n[e(610)]:n[e(329)];window[e(145)](l,o,!1),this[e(226)]=function(){var t=e;window[t(512)](l,o,!1),window[t(145)](l,o,!1)}}let h$6=class{constructor(t={}){__publicField(this,_hb),__publicField(this,_gb),__publicField(this,_fb),__publicField(this,_eb),__publicField(this,_db),__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);var e=k;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(209)]=[...n,...n[e(427)]()],this[e(446)]=t[e(446)]||0,this[e(510)]=t[e(510)]||0,this[e(592)]=t[e(592)]||.4,this[e(365)]=t[e(365)]||5,this[e(575)]=t[e(575)]||1.2,this[e(182)]=t[e(182)]||8,this[e(678)]=new Array(this[e(209)][e(680)]),this[e(437)]=new Array(this[e(209)][e(680)]),this[e(189)]=new Array(this[e(209)][e(680)]),this[e(252)]=0,this[e(188)]={BqiER:function(t,e){return t-e}}[e(434)](this[e(209)][e(680)],5),this[e(180)]=new Array(this[e(188)]),this[e(473)]=new Array(this[e(188)]),this[e(675)]=new Array(this[e(188)]),this[e(682)]=0,this[e(544)]=0,this[e(487)]=0,this[e(557)]=0,this[e(383)]=0,this[e(408)]=0,this[e(576)]=0,this[e(175)]=0}[(_hb=k(209),_gb=k(446),_fb=k(510),_eb=k(592),_db=k(365),_cb=k(575),_bb=k(182),_ab=k(678),_$a=k(437),__a=k(189),_Za=k(252),_Ya=k(188),_Xa=k(180),_Wa=k(473),_Va=k(675),_Ua=k(682),_Ta=k(544),_Sa=k(487),_Ra=k(557),_Qa=k(383),_Pa=k(408),_Oa=k(576),_Na=k(175),_Ma=k(663),_La=k(621),_Ka=k(243),k(226))](){for(var t=k,e={UzyQM:t(635)}[t(657)][t(317)]("|"),n=0;;){switch(e[n++]){case"0":this[t(487)]=0;continue;case"1":this[t(576)]=0;continue;case"2":this[t(383)]=0;continue;case"3":this[t(675)]=new Array(this[t(188)]);continue;case"4":this[t(544)]=0;continue;case"5":this[t(180)]=new Array(this[t(188)]);continue;case"6":this[t(682)]=0;continue;case"7":this[t(437)]=new Array(this[t(209)][t(680)]);continue;case"8":this[t(408)]=0;continue;case"9":this[t(557)]=0;continue;case"10":this[t(175)]=0;continue;case"11":this[t(252)]=0;continue;case"12":this[t(189)]=new Array(this[t(209)][t(680)]);continue;case"13":this[t(678)]=new Array(this[t(209)][t(680)]);continue;case"14":this[t(473)]=new Array(this[t(188)]);continue}break}}[k(391)](t,e){var n=k,i={MGPoU:function(t,e){return t%e},UXgOq:function(t,e){return t+e},cKnwy:function(t,e){return t<e},ujOVu:function(t,e){return t*e},qrMPW:function(t,e){return t*e},QqCcL:function(t,e){return t*e},YAvum:function(t,e){return t%e},mhIXi:function(t,e){return t-e},utnuo:function(t,e){return t-e},sCYHb:function(t,e){return t-e},MrRDn:function(t,e){return t>e},iZMtc:function(t,e){return t<e},WesbU:function(t,e){return t>e},hUyYz:function(t,e){return t<e},tfWTB:function(t,e){return t>e},AVXxa:function(t,e){return t<e},gmubs:function(t,e){return t>=e},yiFyU:function(t,e){return t<e},GHULB:n(503),BdUsw:function(t,e){return t<e},dzHCX:function(t,e){return t+e}};this[n(678)][this[n(252)]]=e[0],this[n(437)][this[n(252)]]=e[1],this[n(189)][this[n(252)]]=e[2];let r=this[n(252)]=i[n(501)](i[n(153)](this[n(252)],1),this[n(209)][n(680)]),s=0,a=0,o=0;for(let f=0;i[n(347)](f,this[n(209)][n(680)]);f++)a+=i[n(476)](this[n(678)][r],this[n(209)][f]),o+=i[n(515)](this[n(437)][r],this[n(209)][f]),s+=i[n(310)](this[n(189)][r],this[n(209)][f]),r=i[n(426)](i[n(153)](r,1),this[n(209)][n(680)]);this[n(180)][this[n(682)]]=a,this[n(473)][this[n(682)]]=o,this[n(675)][this[n(682)]]=s;var c=i[n(347)](i[n(255)](this[n(682)],1),0)?i[n(275)](this[n(188)],1):i[n(538)](this[n(682)],1);let l=this[n(180)][c],u=this[n(473)][c],h=this[n(675)][c];if(this[n(682)]=i[n(501)](i[n(153)](this[n(682)],1),this[n(188)]),i[n(262)](a,0)&&i[n(273)](l,0)&&this[n(621)]++,i[n(168)](o,0)&&i[n(331)](u,0)&&this[n(544)]++,i[n(387)](s,0)&&i[n(493)](h,0)&&this[n(487)]++,i[n(493)](this[n(243)],a)&&(this[n(243)]=a),i[n(493)](this[n(557)],o)&&(this[n(557)]=o),i[n(273)](this[n(383)],s)&&(this[n(383)]=s),i[n(639)](this[n(544)],2)&&(this[n(544)]=1,i[n(168)](this[n(557)],this[n(592)])&&i[n(232)](this[n(557)],this[n(365)])&&(this[n(175)]=t)),i[n(639)](this[n(487)],2))for(var d=i[n(268)][n(317)]("|"),p=0;;){switch(d[p++]){case"0":if(i[n(262)](this[n(663)],this[n(575)])&&i[n(159)](this[n(663)],this[n(182)]))return 1;continue;case"1":this[n(487)]=1;continue;case"2":this[n(243)]=-1;continue;case"3":this[n(383)]=-1;continue;case"4":this[n(557)]=-1;continue;case"5":this[n(663)]=i[n(448)](this[n(383)],this[n(557)]);continue}break}return 0}};function d$4(t){var e,n=k,i={ZOjEF:function(t,e){return t+e},jQwcV:function(t,e){return t+e},gwmjl:function(t,e){return t+e},TLVlJ:function(t,e){return t+e},VSqpV:function(t,e){return t+e},YCJtm:function(t,e){return t+e},fpUPy:function(t,e){return t+e},aNNRa:function(t,e){return t+e},jFnLi:function(t,e){return t+e},tQshO:function(t,e){return t+e},XCSxi:function(t,e){return t+e},CCTrW:function(t,e){return t+e},kkLSK:function(t,e){return t+e},NUMuC:function(t,e){return t+e},YutMK:function(t,e){return t+e},XcXbs:function(t,e){return t+e},NBCIL:function(t,e){return t+e},pryAC:function(t,e){return t+e},hPNiA:function(t,e){return t+e},JjEAw:function(t,e){return t+e},AXVgg:n(198),OdxTo:n(608),Rpgjy:n(522),ZVWHF:n(568),BkBAi:n(411),HmXMI:n(156),naKjg:n(555),cxfvs:n(177),SqKof:n(447),zJZub:n(167),QhKsp:n(706),qxNpv:n(190),ucPGR:n(211),jZdtU:n(414),vxdcG:n(582),OOeGr:n(424),lxLmV:n(690),NKTBv:n(541),bQlIh:function(t,e){return t(e)},nXrzx:function(t,e){return t(e)},KJgZk:function(t,e){return t===e},utQUB:function(t,e){return t===e},uFsGt:function(t,e){return t>e},wZfeJ:function(t){return t()},BwSvY:function(t,e){return t>=e},kkWBb:function(t,e){return t-e},bMFXE:n(599),XdVNn:n(202)},r=this,s=0,a=0,o=!1,c=this[n(551)]=new h$6;let l={zs:0,sl:0};function u(r){var o=n;e=Date[o(531)]();let u=i[o(479)](motionCallback,r),h=u&&i[o(241)](md_sensorAcc,u);(null==h?void 0:h[o(655)])&&h[o(293)]&&(a++,l.sl++);let{x:d,y:p,z:f}=r[o(467)]||r[o(292)]||{};i[o(450)](d,void 0)&&i[o(450)](p,void 0)&&i[o(490)](f,void 0)&&({x:d,y:p,z:f}=r[o(292)]||{}),i[o(585)](c[o(391)](e,[d,p,f]),0)&&l.zs++;i[o(181)]((()=>{var e,n,r,s,a,c,u,h,d,p,f,m,g,A,y,v,S,b,x,M=o;let T=null==(n=t[M(185)][M(703)](null==(e=t[M(517)])?void 0:e[M(270)]))?void 0:n[M(645)];debug&&window[M(314)]&&window[M(314)](0,i[M(425)](i[M(425)](i[M(425)](i[M(425)](i[M(425)](i[M(355)](i[M(355)](i[M(355)](i[M(653)](i[M(653)](i[M(425)](i[M(355)](i[M(445)](i[M(355)](i[M(653)](i[M(244)](i[M(508)](i[M(508)](i[M(309)](i[M(425)](i[M(694)](i[M(355)](i[M(421)](i[M(653)](i[M(445)](i[M(244)](i[M(651)](i[M(380)](i[M(309)](i[M(425)](i[M(509)](i[M(636)](i[M(509)](i[M(449)](i[M(474)](i[M(390)](i[M(205)](i[M(355)](i[M(571)](i[M(571)](i[M(335)](i[M(571)](i[M(636)](i[M(207)](i[M(676)],null==(r=t[M(583)])?void 0:r[M(381)](1)),i[M(147)]),t[M(633)]),i[M(212)]),null==(s=t[M(549)])?void 0:s[M(381)](2)),i[M(671)]),T),"-"),t[M(688)]),i[M(184)]),t[M(430)]),"-"),l.sl),"-"),l.zs),i[M(498)]),null==(a=t[M(185)][M(334)])?void 0:a[M(256)][M(242)]),i[M(595)]),null==(u=null==(c=t[M(185)][M(334)])?void 0:c[M(256)][M(442)])?void 0:u[M(381)](0)),i[M(588)]),null==(h=t[M(607)])?void 0:h[M(381)](0)),i[M(230)]),null==(d=t[M(483)])?void 0:d[M(381)](0)),i[M(238)]),null==(p=t[M(393)])?void 0:p[M(381)](2)),i[M(170)]),t[M(183)][M(381)](0)),i[M(466)]),t[M(465)][M(381)](0)),i[M(201)]),null==(m=null==(f=t[M(185)][M(334)])?void 0:f[M(256)][M(548)])?void 0:m[M(381)](0)),"--"),null==(A=null==(g=t[M(185)][M(334)])?void 0:g[M(256)][M(281)])?void 0:A[M(381)](0)),i[M(459)]),null==(v=null==(y=t[M(185)][M(334)])?void 0:y[M(256)][M(642)])?void 0:v[M(381)](0)),"--"),null==(b=null==(S=t[M(185)][M(334)])?void 0:S[M(256)][M(438)])?void 0:b[M(381)](0)),i[M(527)]),t[M(185)][M(301)][M(443)][M(323)][M(693)]),i[M(547)]),null==(x=t[M(185)][M(334)])?void 0:x[M(256)][M(242)]),i[M(322)]),t[M(218)]),i[M(707)]))})),i[o(658)](i[o(330)](e,s),t[o(472)])&&(s=e,t[o(665)](i[o(455)],a),a=0)}this[n(339)]=function(){var t=n;o=!0,window[t(145)](i[t(519)],u,!1)},this[n(415)]=function(){var t=n;o=!1,window[t(512)](i[t(519)],u,!1)},this[n(226)]=function(){var t=n;o&&(r[t(415)](),r[t(339)]())}}function W$r(t,e){var n=M$r();return(W$r=function(t,e){return n[t-=144]})(t,e)}function M$r(){var t=["tCmHV","JNOLW","\n 最强Gps: ","ffpZG","yqvFV","__CACHE_POOL__","beaconFilterList","vxdcG","IdDfm","number","BdSpt","now","SSYvm","originGps","SDWNL","tvLUO","deviceorientationabsolute","LizDY","sCYHb","fGgvV","jtuno","\n2025/10/16 16:23:36","hnZbc","MbLxW","yCount","angle","current","OOeGr","crossDoorDis","gpsAccuracy","push","motion","ycEmU","15095971eLzOZo","altitude","\n pathAngle: ","GPS","yPeak","CfvjN","QvCob","QdvsL","9owmcoX","filterFloor","LdzIv","pow","location","YinKO","odBtQ","-楼层: ","cEkaP","KSwjp","pryAC","vtEuz","outOfChina","SGHgC","zMinPeak","lastTime","zIAru","WttJb","coords","ZNezF","JLijr","\n, dc:","lastBeaconBestRssi","__FLOOR_CHANGE__","uFsGt","RyAna","ready","cxfvs","locFloor","GrrQk","APpGj","yMinPeak","2411792wOqlRj","HIAub","naKjg","tKVBz","CtUOt","hNPcT","__step__","soKbd","window.deviceOrientation_err","KQQdt","mCYmp","DeviceMotionEvent","vPKRa","uzLUT","originCmps","-蓝牙(5:室外-5:室内):","webkitCompassHeading","KoVKn","SmwZZ","HiHzi","beaconAnalysis","qFRRS","ppDAG","bOwEp","6|5|1|4|2|3|0","axeLG","div","clearWatch","xCount","qtsMM","pRtWv","yKhaR","Cjgma","tQrSh","tcBGN","bQBrb","__PRIORITY_FLOOR__","hQfYx","ygbuv","xQauy","lt_78Count","JTHti","13|7|12|11|5|14|3|6|4|0|9|2|8|1|10","kkLSK","deviceOrientationCB","pedometer","gmubs","$analyze","filterBeacons","crossFloorDis","XRMZa","app","name","RPoIN","CXhsT","test","tykOK","hasBeacon","tQshO","handleHashChange","gwmjl","lat","stepDetected","RObuh","UzyQM","BwSvY","yBeEc","__IOS_DEVICE_MOTION_AUTH_CALLBACK__","rssiOffset","longitude","ZPeak","inertance","emit","uCHdM","heading","DmiTM","eaELf","ZYcSr","ZVWHF","OsAkP","249sropWU","_changeFloorCount","bufArrZ","AXVgg","isAuth","xValArr","compassDelay","length","buacm","indexS","zOvLn","initAngle","QWdUh","KVBlX","beacons","beaconsLength","217130TWMlen","\n, gpsHead:","wpWor","RFuCm","calls","aNNRa","xuWAv","geolocation","SYLOX","djyXx","ugHdO","wpAed","JsYhH","tQESX","getMapDataById","isNavi","ULoBG",", gpsSpeed:","NKTBv","srcMC","minor","floorDelay","addEventListener","MJKhi","OdxTo","__compass__","FXfEQ","window.alpha, beta, gamma","xsnIX","QhwTB","UXgOq","locPosFilter","removeChild",", lockFloor:","zXEhf","jIDRu","BdUsw","catch","xagkD","rssi","function","OLZBe","init","pENRv","\n beaconMaxRssi2:","WesbU","kurJr","QhKsp","lYElK","INOVL","iYrQR","deviceorientation","yLastTime","dSzMI",", cmps: ","resetDevice","WZcsC","bufArrX","wZfeJ","zMaxPeak","gpsSpeed","BkBAi","map","JLYtP","fOkod","bufLen5","zValArr",", gpsAlt:","GrCLF","alpha","arr","GJjmE","3597461lovKJK","ZAXdH","alt","最强Rssi: ","zmEau","TrZiP","ucPGR","devicemotion","compassData","226844MqaJsK","NBCIL","__GPS__","JjEAw","JwAbM","buf","teHrb","\n, cdpd:","Rpgjy","gps","stringify","deviceOrientation_err","GKUfJ","lng","gpsHeading","3282084XOpNvj","sin","LJQmm","XyTXJ","beaconAnalysisTimer","calcPos","latitude","reset","assign","roZaS","igmqC","SqKof","JPWgD","yiFyU","gamma","_calculate","sTOpN","maxRssi","ACjWs","zJZub","matches","GrvtV","nXrzx","lockFloor","xPeak","VSqpV","beaconCacheTime","YFvdn","mapId","DzPHG","FxsvQ","sphericalToDatums","zJaUi","valArrIdx","beta","mMOuQ","mhIXi","pathInfo","MyeuB","vJgmC","yFQZr","ePXEW","nyTOV","MrRDn","vSAyx","10BFKjJP","then","cos","hashchange","GHULB","FnvMR","floor","log","QeAGm","iZMtc","shift","utnuo","不支持获取GPS地理位置","locationType","mggwv","uHlFF","min","passDoorDis","QmUeU","MIFaV","kLanm","juxcl","tZHGY","ycdOy","2mxZUvH","EnDQE","SbvKC","NhtoI","accelerationIncludingGravity","step","QapPK","nqYzB","dTHNw","beacon","IBVAv","setAttribute","CUR_COMPASS","renderer","deviceOrientation","hvHAX","evt1.alpha, beta, gamma","OcvmY","href","connect","esQwr","fpUPy","QqCcL","CqPxm","$gps","options","$testMsg","parse","SHSso","split","NGBnW","disconnect","AqMYv","datumsToSpherical","lxLmV","render","VSzVj","sncZK","requestPermission","zadfv","accuracy","FsTQS","kkWBb","hUyYz","ISbtU","nJILV","navi","hPNiA","reduce","sort","toLat","open","Bpfjt","isOutdoor","zUzKX","MheWk","sqrt","QUgqX","toLng","cKnwy","lnDYa","1815685020350812160","minRssi","$button","bjvbC","speed","abs","jQwcV","sVncy","vcwZF","JDpTh","iMyGS","1861656901033529344","ZrJYU","xNezg","mapData","szSAk","yMaxPeak","JpWyD","margin: 0 auto; width: 100px; padding: 8px 0; border-radius: 30px; background-color: #0099FF; color: #ffffff; font-size: 14px;","AMddi","status","HoFKT","back","NxncG","NNJIk","UTubH","lTEiO","nWUkV","BEACON_DATA","createElement","qfonY","XCSxi","toFixed","qxdiK","zPeakCount","forEach","gpsSpeedMax","pwVDm","tfWTB","$compass","WWGVk","XcXbs","analyze","kQMNr","beaconMaxRssi2","27948CFssOW","$acc","gaTZX","time","xkEUf","1|4|0|2|3","qcHGY","UTuZR","wXbZS",'\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 ',"FgHGU","lQbrp","watchPosition","userAgent","lastTimeY","NdsvT","LXrml","\n 速度:","scndd","filter",", cfdpfd:","close","esmSr","delta","compass","aYZkk","matchMedia","jFnLi","tnbLd","major","lockFloor:","ZOjEF","YAvum","reverse","(orientation: landscape)","minIndoorRssiLimit","stepSpeed","avxgK","__location__","zIVct","BqiER","$dom","jztAS","yValArr","passFloorDis","setOptions","filterBeacon","debug","pathAngle","info","OWNiP","TLVlJ","xMinPeak",", alphaOffset: ","dzHCX","NUMuC","KJgZk","error","MEXeY","style","ZpCjU","bMFXE","3|2|0|1|5|6|4","click","oWIdc","jZdtU","max","uRzRq","frUvN","LpBDn","YGjpi","gpsAlt","qxNpv","acceleration","QuTvd","BNeGE","wfbuY","AMrLN","inertanceDelay","bufArrY","YutMK","wIxRg","ujOVu","PLLbV","biZOA","bQlIh","OknrZ","body","innerHTML","alphaOffset","xCeNZ","wtgdB","orientation","zCount","EFcwz","rectify","utQUB","success","MysGW","AVXxa","QBrcZ","BZoPW","ILjXu","granted","HmXMI","rssiCount","nmeOw","MGPoU","mNBks","5|1|4|2|3|0","LCmRx","LyNvC","wAjjF","children","YCJtm","CCTrW","xMaxPeak","appendChild","removeEventListener","BVJtF","SgRXA","qrMPW","XrsiK","_lastLocatePoint","aLXpX","XdVNn"];return(M$r=function(){return t})()}function o$7(){var t=k,e={IBVAv:function(t,e){return t(e)},yFQZr:t(451),wIxRg:t(619),sncZK:t(403),RFuCm:t(453),ZpCjU:t(367),NGBnW:t(456),ACjWs:t(491),tZHGY:function(t){return t()},kQMNr:t(457),MheWk:function(t,e){return t===e},xQauy:function(t,e){return t==e},ffpZG:t(163),YFvdn:function(t){return t()}};return new Promise((function(n,i){for(var r=t,s=e[r(318)][r(317)]("|"),a=0;;){switch(s[a++]){case"0":var o;continue;case"1":var c;continue;case"2":var l;continue;case"3":var u={nJILV:function(t,n){return e[r(298)](t,n)},aLXpX:e[r(237)],JwAbM:function(t,n){return e[r(298)](t,n)},XrsiK:e[r(259)],xagkD:function(t){return e[r(286)](t)},NdsvT:e[r(392)]};continue;case"4":e[r(343)](e[r(286)](C$9),2)?window[r(660)]?window[r(660)](n,i):(window[r(660)]=function(t,e){var s=r,a={LJQmm:u[s(518)],PLLbV:function(t,e){return u[s(208)](t,e)},JpWyD:u[s(516)]};h=function(e){var i=s,r={message:a[i(221)],e};a[i(477)](n,r),a[i(477)](t,r),window[i(660)]=null},d=function(t){var n=s,r={message:a[n(366)],e:t};a[n(477)](i,r),a[n(477)](e,r),window[n(660)]=null}},l=function(){var t=r,n=document[t(378)](e[t(475)]);n[t(482)]=e[t(325)];var i=document[t(378)](e[t(475)]);return i[t(299)](e[t(692)],e[t(454)]),i[t(482)]="开启",n[t(507)][0][t(507)][0][t(511)](i),{$dom:n,$button:i}}(),o=l[r(435)],c=l[r(351)],window[r(604)]&&e[r(632)](typeof DeviceMotionEvent[r(326)],e[r(523)])?e[r(246)](c$6)[r(265)]((function(t){e[r(298)](h,t)}))[r(160)]((function(){var t=r,e={xuWAv:function(t,e){return u[W$r(333)](t,e)},SbvKC:function(t,e){return u[W$r(208)](t,e)},JDpTh:function(t){return u[W$r(161)](t)}};document[t(481)][t(511)](o),c[t(145)](u[t(409)],(function(){var n=t,i={AMddi:function(t,n){return e[W$r(695)](t,n)},MbLxW:function(t,n){return e[W$r(290)](t,n)}};document[n(481)][n(155)](o),e[n(358)](c$6)[n(265)]((function(t){i[n(368)](h,t)}))[n(160)]((function(t){i[n(543)](d,t)}))}),!1)})):e[r(298)](d,{})):e[r(298)](h,{});continue;case"5":var h=function(t){var e=r;u[e(333)](n,{message:u[e(518)],e:t})};continue;case"6":var d=function(t){var n=r;e[n(298)](i,{message:e[n(259)],e:t})};continue}break}}))}function c$6(){var t=k,e={FnvMR:function(t,e){return t===e},nmeOw:t(497),ISbtU:function(t,e){return t(e)}};return new Promise((function(n,i){var r=t,s={qcHGY:function(t,n){return e[W$r(269)](t,n)},zIAru:e[r(500)],lTEiO:function(t,n){return e[r(332)](t,n)},WZcsC:function(t,n){return e[r(332)](t,n)}};DeviceMotionEvent[r(326)]()[r(265)]((function(t){var e=r;s[e(400)](t,s[e(577)])&&s[e(375)](n,t)}))[r(160)]((function(t){s[r(179)](i,t)}))}))}var w$6={PI:3.141592653589793,x_pi:52.35987755982988,rectify(t,e){var n=k,i={CqPxm:function(t,e){return t+e},ZrJYU:function(t,e){return t+e}};if(this[n(573)](t,e))return{lat:t,lng:e};var r=this[n(417)](t,e);return{lat:i[n(311)](t,r[n(654)]),lng:i[n(361)](e,r[n(217)])}},delta:function(t,e){for(var n=k,i={RPoIN:n(617),LdzIv:function(t,e){return t/e},JTHti:function(t,e){return t*e},UTubH:function(t,e){return t*e},tykOK:function(t,e){return t-e},BVJtF:function(t,e){return t/e},QBrcZ:function(t,e){return t*e},DmiTM:function(t,e){return t/e},QeAGm:function(t,e){return t-e},ycdOy:function(t,e){return t*e},ugHdO:function(t,e){return t*e}},r=i[n(646)][n(317)]("|"),s=0;;){switch(r[s++]){case"0":return{lat:u=i[n(563)](i[n(634)](180,u),i[n(634)](i[n(563)](i[n(374)](6378245,i[n(649)](1,h)),i[n(374)](o,c)),this.PI)),lng:a=i[n(513)](i[n(374)](180,a),i[n(494)](i[n(374)](i[n(668)](6378245,c),Math[n(266)](l)),this.PI))};case"1":var a=this[n(346)](i[n(649)](e,105),i[n(272)](t,35));continue;case"2":var o=i[n(649)](1,i[n(287)](i[n(287)](h,o=Math[n(220)](l)),o));continue;case"3":var c=Math[n(344)](o);continue;case"4":var l=i[n(699)](i[n(668)](t,180),this.PI);continue;case"5":var u=this[n(338)](i[n(649)](e,105),i[n(272)](t,35));continue;case"6":var h=.006693421622965943;continue}break}},outOfChina:function(t,e){var n=k,i={ZAXdH:function(t,e){return t<e},wfbuY:function(t,e){return t>e},SHSso:function(t,e){return t<e},SDWNL:function(t,e){return t>e}};return i[n(196)](e,72.004)||i[n(470)](e,137.8347)||i[n(316)](t,.8293)||i[n(534)](t,55.8271)},toLat:function(t,e){var n=k,i={GKUfJ:function(t,e){return t+e},XyTXJ:function(t,e){return t+e},QvCob:function(t,e){return t+e},MysGW:function(t,e){return t-e},SSYvm:function(t,e){return t*e},JLijr:function(t,e){return t*e},vtEuz:function(t,e){return t*e},uCHdM:function(t,e){return t*e},DzPHG:function(t,e){return t/e},xsnIX:function(t,e){return t+e},wXbZS:function(t,e){return t*e},sVncy:function(t,e){return t*e},GrrQk:function(t,e){return t*e},VSzVj:function(t,e){return t*e},yqvFV:function(t,e){return t/e},srcMC:function(t,e){return t*e},WttJb:function(t,e){return t+e},fOkod:function(t,e){return t*e},mCYmp:function(t,e){return t*e},tcBGN:function(t,e){return t/e},odBtQ:function(t,e){return t*e},ILjXu:function(t,e){return t*e},tnbLd:function(t,e){return t/e},JPWgD:function(t,e){return t/e}},r=i[n(216)](i[n(222)](i[n(216)](i[n(559)](i[n(492)](i[n(532)](2,t),100),i[n(581)](3,e)),i[n(581)](i[n(572)](.2,e),e)),i[n(572)](i[n(572)](.1,t),e)),i[n(666)](.2,Math[n(344)](Math[n(354)](t))));return r+=i[n(248)](i[n(572)](2,i[n(151)](i[n(402)](20,Math[n(220)](i[n(356)](i[n(402)](6,t),this.PI))),i[n(590)](20,Math[n(220)](i[n(324)](i[n(402)](2,t),this.PI))))),3),(r+=i[n(524)](i[n(708)](2,i[n(578)](i[n(590)](20,Math[n(220)](i[n(581)](e,this.PI))),i[n(187)](40,Math[n(220)](i[n(603)](i[n(248)](e,3),this.PI))))),3))+i[n(627)](i[n(567)](2,i[n(216)](i[n(603)](160,Math[n(220)](i[n(496)](i[n(422)](e,12),this.PI))),i[n(572)](320,Math[n(220)](i[n(231)](i[n(496)](e,this.PI),30))))),3)},toLng:function(t,e){var n=k,i={KQQdt:function(t,e){return t+e},soKbd:function(t,e){return t+e},tQrSh:function(t,e){return t+e},OsAkP:function(t,e){return t+e},LXrml:function(t,e){return t+e},kLanm:function(t,e){return t*e},LpBDn:function(t,e){return t*e},sTOpN:function(t,e){return t*e},CfvjN:function(t,e){return t*e},vSAyx:function(t,e){return t/e},iMyGS:function(t,e){return t+e},HiHzi:function(t,e){return t*e},igmqC:function(t,e){return t/e},qfonY:function(t,e){return t*e},FxsvQ:function(t,e){return t*e},GrCLF:function(t,e){return t*e},HIAub:function(t,e){return t*e},jtuno:function(t,e){return t/e},TrZiP:function(t,e){return t*e},vJgmC:function(t,e){return t/e}},r=i[n(602)](i[n(600)](i[n(626)](i[n(672)](i[n(410)](300,t),i[n(284)](2,e)),i[n(463)](i[n(235)](.1,t),t)),i[n(463)](i[n(463)](.1,t),e)),i[n(558)](.1,Math[n(344)](Math[n(354)](t))));return r+=i[n(263)](i[n(463)](2,i[n(359)](i[n(612)](20,Math[n(220)](i[n(558)](i[n(558)](6,t),this.PI))),i[n(558)](20,Math[n(220)](i[n(284)](i[n(235)](2,t),this.PI))))),3),(r+=i[n(229)](i[n(612)](2,i[n(600)](i[n(463)](20,Math[n(220)](i[n(558)](t,this.PI))),i[n(379)](40,Math[n(220)](i[n(249)](i[n(229)](t,3),this.PI))))),3))+i[n(229)](i[n(249)](2,i[n(359)](i[n(191)](150,Math[n(220)](i[n(594)](i[n(540)](t,12),this.PI))),i[n(200)](300,Math[n(220)](i[n(379)](i[n(258)](t,30),this.PI))))),3)}};function s$5(t){for(var e=k,n={uzLUT:e(399),zOvLn:e(206),HoFKT:e(276)},i=n[e(606)][e(317)]("|"),r=0;;){switch(i[r++]){case"0":var s;continue;case"1":var a={hvHAX:n[e(683)],Bpfjt:n[e(370)]};continue;case"2":var o=!0;continue;case"3":this[e(307)]=function(){var n=e;return o=!0,navigator[n(696)]?s=navigator[n(696)][n(406)]((function(e){var i,r=n;o&&(i={current:w$6[r(489)](e[r(579)][r(225)],e[r(579)][r(662)]),originGps:{...e[r(579)],lng:e[r(579)][r(662)],lat:e[r(579)][r(225)],alt:e[r(579)][r(554)],accuracy:e[r(579)][r(328)],speed:e[r(579)][r(353)],heading:e[r(579)][r(667)]}},t[r(665)](a[r(303)],i))}),(function(t){console[n(441)](t)}),{maximumAge:0,timeout:3e4,enableHighAccuracy:!0}):console[n(441)](a[n(340)]),c},this[e(319)]=function(){var t=e;return o=!1,navigator[t(696)]&&s&&(navigator[t(696)][t(620)](s),s=null),c};continue;case"4":var c=this;continue}break}}let i$3=class extends EventDispatcher{constructor(t){var e=k;super(),__publicField(this,_Pb,!1),__publicField(this,_Ob,!0),__publicField(this,_Nb,!1),__publicField(this,_Mb),__publicField(this,_Lb,0),__publicField(this,_Kb,30),__publicField(this,_Jb,0),__publicField(this,_Ib,0),__publicField(this,_Hb,!0),__publicField(this,_Gb,-99),__publicField(this,_Fb,1),__publicField(this,_Eb,-88),__publicField(this,_Db,""),__publicField(this,_Cb,1),__publicField(this,_Bb,0),__publicField(this,_Ab,0),__publicField(this,_zb,-90),__publicField(this,_yb,-15),__publicField(this,_xb,200),__publicField(this,_wb,500),__publicField(this,_vb,2e3),__publicField(this,_ub,0),__publicField(this,_tb),__publicField(this,_sb),__publicField(this,_rb),__publicField(this,_qb),__publicField(this,_pb),__publicField(this,_ob,0),__publicField(this,_nb),__publicField(this,_mb,0),__publicField(this,_lb),__publicField(this,_kb),__publicField(this,_jb,-171),__publicField(this,_ib),this[e(185)]=t[e(185)],this[e(439)](t),this[e(652)]()}[(_Pb=k(441),_Ob=k(677),_Nb=k(213),_Mb=k(185),_Lb=k(483),_Kb=k(549),_Jb=k(218),_Ib=k(465),_Hb=k(664),_Gb=k(583),_Fb=k(633),_Eb=k(429),_Db=k(277),_Cb=k(430),_Bb=k(183),_Ab=k(385),_zb=k(350),_yb=k(236),_xb=k(679),_wb=k(472),_vb=k(144),_ub=k(684),_tb=k(517),_sb=k(312),_rb=k(388),_qb=k(640),_pb=k(377),_ob=k(300),_nb=k(395),k(165))](t){var e=k,n={EnDQE:e(418),IdDfm:function(t,e){return t||e},jIDRu:function(t,e){return t<e},LyNvC:function(t,e){return t==e},lQbrp:function(t,e){return t*e},pwVDm:function(t,e){return t*e},CXhsT:e(432),Cjgma:e(293),qxdiK:e(638),FXfEQ:function(t,e){return t<e},nqYzB:function(t,e){return t>e},zUzKX:e(599),CtUOt:function(t,e){return t>e},juxcl:function(t,e){return t<e},RyAna:function(t,e){return t<e},ygbuv:function(t,e){return t+e},wpAed:function(t,e){return t*e},YinKO:function(t,e){return t*e},hnZbc:e(556),mMOuQ:function(t,e){return t in e},teHrb:e(565),esQwr:function(t,e){return t<e},tCmHV:function(t,e){return t+e},OLZBe:e(587),ycEmU:e(148),djyXx:e(206),JLYtP:function(t){return t()}};let i=[];for(var r=0;n[e(308)](r,t[e(680)]);r++){let s=t[r];i[n[e(631)](n[e(520)](s[e(423)],"_"),s[e(709)])]=s}this[e(377)]=[],this[e(377)]=i,this[e(665)](n[e(164)]),this[e(640)]=new v$7(this),this[e(388)]=new I$7(this),this[e(395)]=new d$4(this),this[e(312)]=new s$5(this),this[e(213)]&&this[e(312)][e(307)](),this[e(664)]&&this[e(395)][e(339)](),this.on(n[e(552)],(t=>{var i=e;this[i(665)](n[i(289)],this[i(300)]=n[i(528)](t,0))})),this.on(n[e(342)],(t=>{var i,r,s=e;if(!this[s(517)]||(null==(r=null==(i=this[s(185)][s(334)])?void 0:i[s(256)])?void 0:r[s(242)]))return;let a=this[s(517)].x,o=this[s(517)].y,c=this[s(300)],l=n[s(158)](this[s(583)],-88)?.8:B$i?.55:.5;n[s(505)](this[s(517)][s(270)],"1")&&(l*=.5);let u=n[s(405)](l,t),h=n[s(386)](c,DEG2RAD),d={x:a+=n[s(386)](Math[s(220)](h),u),y:o+=n[s(405)](Math[s(266)](h),u)};this[s(517)].x=d.x,this[s(517)].y=d.y,this[s(665)](n[s(647)],Object[s(227)]({},this[s(517)],{type:n[s(625)],compass:this[s(300)]})),this[s(665)](n[s(382)],t)}));let s=0;this.on(n[e(698)],(t=>{var i=e;if(this[i(183)]=t[i(533)][i(353)]||0,this[i(385)]=Math[i(460)](this[i(385)],this[i(183)]),this[i(465)]=t[i(533)][i(197)]||0,this[i(218)]=t[i(533)][i(667)]||0,n[i(149)](this[i(185)][i(334)][i(256)][i(642)],10)||n[i(149)](this[i(185)][i(334)][i(256)][i(438)],5)||!this[i(185)][i(341)])return;if(n[i(295)](this[i(183)],1.5)&&this[i(665)](n[i(342)],n[i(405)](this[i(183)],2)),this[i(549)]=t[i(533)][i(328)],n[i(149)](this[i(549)],5)&&n[i(149)](this[i(583)],-78)&&(this[i(633)]=Math[i(280)](this[i(633)]+=2,5)),n[i(149)](this[i(633)],0))return;if(this[i(650)]&&n[i(597)](this[i(549)],6))return;let r=t[i(546)]||t,a=UnitsUtils[i(321)](r[i(217)],r[i(654)]);if(this[i(517)]=this[i(517)]||a,!n[i(295)](this[i(583)],this[i(429)])||!n[i(597)](this[i(549)],5)){if(this[i(517)][i(270)]="1",this[i(185)][i(334)][i(369)][i(704)]&&n[i(285)](t[i(533)][i(353)],3)){if(n[i(586)](++s,0))return;s=-6}this[i(517)].x=n[i(631)](n[i(405)](a.x,.5),n[i(700)](this[i(517)].x,.5)),this[i(517)].y=n[i(631)](n[i(566)](a.y,.5),n[i(700)](this[i(517)].y,.5)),this[i(665)](n[i(647)],Object[i(227)]({},this[i(517)],{type:n[i(542)],originGps:t[i(533)]}))}})),this.on(n[e(647)],(t=>{var i,r=e;t&&(i=n[r(254)]("x",t)?Object[r(227)]({},t,UnitsUtils[r(250)](t.x,t.y)):Object[r(227)]({},t,UnitsUtils[r(321)](t[r(217)],t[r(654)])),this[r(665)](n[r(210)],{...i}))})),this[e(677)]&&n[e(186)](o$7)[e(265)]((t=>{this[e(178)]()}))}[(_mb=k(499),k(234))](t){var e=k,n={hNPcT:function(t,e){return t===e},OknrZ:e(687),kurJr:function(t,e){return t<e},ppDAG:function(t,e){return t+e},UTuZR:function(t,e){return t/e},INOVL:e(432),NhtoI:e(162)};if(n[e(598)](t[e(680)],0))return;this[e(665)](n[e(480)],t);const i=this[e(640)][e(391)](t);if(this[e(517)]=this[e(517)]||i,i){if(this[e(185)][e(334)][e(369)][e(704)]){let t=n[e(598)](this[e(517)][e(270)],i[e(270)]);if(this[e(517)][e(270)]=i[e(270)],n[e(169)](++this[e(499)],0)&&t)return;this[e(499)]=-6}n[e(598)](i[e(270)],this[e(517)][e(270)])?this[e(517)]={x:n[e(615)](n[e(401)](this[e(517)].x,2),n[e(401)](i.x,2)),y:n[e(615)](n[e(401)](this[e(517)].y,2),n[e(401)](i.y,2))}:this[e(517)]=i||this[e(517)],this[e(517)][e(270)]=i[e(270)],this[e(665)](n[e(172)],Object[e(227)]({},this[e(517)],{type:n[e(291)]}))}}[k(154)](t,e){var n=k,i={avxgK:function(t,e,n){return t(e,n)},gaTZX:function(t,e){return t/e},pENRv:function(t,e){return t*e},qFRRS:function(t,e){return t+e},KVBlX:function(t,e){return t-e},RObuh:function(t,e){return t*e},XRMZa:function(t,e){return t+e},lnDYa:function(t,e){return t*e}};let r=i[n(431)](getLineLength,t,e);r=Math[n(460)](r,1);let s=i[n(396)](1,i[n(166)](r,2));return{x:i[n(614)](i[n(166)](t.x,i[n(686)](1,s)),i[n(656)](e.x,s)),y:i[n(643)](i[n(656)](t.y,i[n(686)](1,s)),i[n(348)](e.y,s))}}[k(652)](){var t=k,e={aYZkk:function(t,e){return t(e)},EFcwz:function(t,e){return t>e},tKVBz:function(t,e){return t-e},axeLG:function(t,e,n){return t(e,n)},SgRXA:t(267)};window[t(145)](e[t(514)],(n=>{var i=t;e[i(618)](setTimeout,(()=>{var t=i,{appData:n}=e[t(419)](getURLQuery,location[t(306)]);n&&(n=e[t(419)](decodeURIComponent,n),n=JSON[t(315)](n),e[t(488)](e[t(596)](Date[t(531)](),n[t(397)]),2e3)||(n[t(297)]&&this[t(613)](n[t(297)]),history[t(371)]()))}),0)}))}[(_lb=k(223),_kb=k(650),_jb=k(393),_ib=k(688),k(613))](t=[]){var e,n,i=k,r={pRtWv:function(t,e){return t===e},hQfYx:i(360),bOwEp:function(t,e){return t!==e},mggwv:i(349),zJaUi:function(t,e){return t+e},BZoPW:function(t,e){return t(e)},FgHGU:function(t,e,n){return t(e,n)},ZYcSr:function(t,e){return t(e)},QWdUh:function(t,e,n){return t(e,n)},buacm:function(t,e){return t+e},SmwZZ:function(t,e){return t+e},vcwZF:function(t,e){return t>=e},zmEau:function(t,e){return t>e},MJKhi:i(526)};r[i(495)](clearTimeout,this[i(223)]),this[i(223)]=r[i(404)](setTimeout,(()=>{var t=i;this[t(583)]=-99,this[t(393)]=-180}),5e3),r[i(670)](clearTimeout,this[i(223)]),this[i(223)]=r[i(685)](setTimeout,(()=>{var t=i;this[t(393)]=-180.1,this[t(583)]=-99.1}),5e3),t[i(185)]((t=>{var e=i;this[e(185)][e(363)][e(313)][e(661)]?t[e(162)]+=this[e(185)][e(363)][e(313)][e(661)]:(r[e(623)](this[e(185)][e(363)][e(247)],r[e(630)])&&r[e(616)](t[e(423)],2e4)&&(t[e(162)]+=30),r[e(623)](this[e(185)][e(363)][e(247)],r[e(278)])&&(t[e(162)]+=10));let n=this[e(377)][t[e(423)]+"_"+t[e(709)]];(null==n?void 0:n[e(661)])&&(t[e(162)]=r[e(251)](t[e(162)],n[e(661)]),t[e(328)]=r[e(495)](n$b,t[e(162)]))})),t[0]&&(this[i(688)]=t[i(680)],t=this[i(641)](t,this[i(377)],this[i(350)],this[i(236)]),this[i(688)]=r[i(681)](r[i(611)](this[i(688)],"-"),t[i(680)])),this[i(393)]=r[i(611)]((null==(e=t[0])?void 0:e[i(162)])||-90,(null==(n=t[1])?void 0:n[i(162)])||-90),t[i(680)]&&!this[i(650)]&&(this[i(650)]=!0),t[0]?this[i(583)]=t[0][i(162)]:this[i(583)]-=5.1,r[i(357)](this[i(583)],-78)&&(this[i(633)]=Math[i(460)](--this[i(633)],-5)),r[i(199)](this[i(633)],0)||(this[i(665)](r[i(146)],JSON[i(315)](JSON[i(214)](t))),this[i(234)](t||[]))}[k(641)](t,e,n,i){var r=k,s={mNBks:function(t,e){return t<e},tvLUO:function(t,e){return t+e},nWUkV:function(t,e){return t<=e},BNeGE:function(t,e){return t>e}};(t=t[r(687)]||t||[])[r(337)](((t,e)=>e[r(162)]-t[r(162)]));for(var a=[],o=0;s[r(502)](o,t[r(680)]);o++){var c=t[o],l=s[r(535)](s[r(535)](c[r(423)],"_"),c[r(709)]);if(c[r(162)]=+c[r(162)],c[r(328)]=+c[r(328)],e[l]&&!s[r(376)](c[r(328)],0)&&!s[r(469)](c[r(162)],i)){if(s[r(502)](c[r(162)],n))break;var u=e[l];a[r(550)]({major:u[r(423)],minor:u[r(709)],rssi:c[r(162)],accuracy:c[r(328)],x:u.x,y:u.y,floor:u[r(270)]})}}return a}[k(226)](){var t=k;this[t(640)][t(226)]()}[k(178)](){var t=k;this[t(388)][t(226)](),this[t(395)][t(226)]()}[k(439)](t){var e=k,n={scndd:function(t,e){return t!==e},wpWor:function(t,e){return t!==e},SGHgC:function(t,e){return t!==e}};for(var i in t)n[e(412)](void 0,this[i])&&n[e(412)](void 0,t[i])&&n[e(691)](t[i],null)&&n[e(574)](t[i],"")&&(this[i]=t[i])}};var V$2=W$q;function M$q(){var t=["1071777GvVigw","sDqKL","xvapC","removeNode","createUniqueLink","VnnEd","values","CmZWn","RWqAW","options","addLink","aRbvZ","ufJdc","17558zMLKrz","oMcSm","3277944hKoyhP","createSingleLink","createLink","cPIxF","86xmKbcN","from","5|3|6|2|0|4|1","AwqTP","1|4|2|5|0|3","add","YkFSO","size","kAVgE","links","addNode","YinVH","function","getNode","kblyI","done","gtSMZ","delete","multiEdges","hasOwnProperty","6550476LlJHKu","QxPEP","fWOYk","forEachLinkedNode","nWuQj","hzUgG","addLinkToNode","2|3|4|0|1","IxbqN","getNodeCount","removeLinkInstance","data","eJMDg","8xEhxnw","forEachNonOrientedLink","LcFda","bXxuw","ogrOd","toId","clear","2|4|5|1|6|7|3|0","Function is expected to iterate over graph nodes. You passed ","2223387Dthcjn","nodes","hDttL","getLinkCount","multigraph","forEach","ULipx","NPAcL","forEachNode","getLink","forEachLink","get","SGHPK","removeLink","WIFgr","set","getLinks","next","fromId","forEachOrientedLink","value","5XBCBIO","2155784ELOEqp","20093390drWFZa","split"];return(M$q=function(){return t})()}!function(t,e){for(var n=W$q,i=t();;)try{if(600149===-parseInt(n(430))/1*(-parseInt(n(424))/2)+parseInt(n(472))/3+parseInt(n(408))/4+-parseInt(n(407))/5*(-parseInt(n(450))/6)+-parseInt(n(411))/7*(parseInt(n(463))/8)+-parseInt(n(426))/9+-parseInt(n(409))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$q),_Rb=V$2(439),_Qb=V$2(461);class PathData{constructor(t,e){__publicField(this,"id"),__publicField(this,_Rb),__publicField(this,_Qb);var n=V$2;this.id=t,this[n(439)]=null,this[n(461)]=e}}function W$q(t,e){var n=M$q();return(W$q=function(t,e){return n[t-=388]})(t,e)}_Ub=V$2(404),_Tb=V$2(468),_Sb=V$2(461);class LinkData{constructor(t,e,n,i){__publicField(this,_Ub),__publicField(this,_Tb),__publicField(this,_Sb),__publicField(this,"id");var r=V$2;this[r(404)]=t,this[r(468)]=e,this[r(461)]=n,this.id=i}}function B$h(t,e){var n=V$2,i={IxbqN:function(t,e){return t+e},kblyI:function(t,e){return t+e}};return i[n(458)](i[n(444)](t,"_"),e)}class AStarPath{constructor(t={}){__publicField(this,_Zb),__publicField(this,_Yb,new Map),__publicField(this,_Xb,new Map),__publicField(this,_Wb,{}),__publicField(this,_Vb);var e=V$2,n={hDttL:function(t,e){return t||e},RWqAW:function(t,e){return t===e}};this[e(420)]=n[e(388)](t,{}),n[e(419)](t[e(390)],void 0)&&(t[e(390)]=!1),this[e(428)]=t[e(390)]?this[e(415)]:this[e(427)]}[(_Zb=V$2(420),_Yb=V$2(473),_Xb=V$2(439),_Wb=V$2(448),_Vb=V$2(428),V$2(427))](t,e,n){var i=V$2,r={YkFSO:function(t,e,n){return t(e,n)}}[i(436)](B$h,t,e),s=this[i(439)][i(397)](r);return s?(s[i(461)]=n,s):new LinkData(t,e,n,r)}[V$2(415)](t,e,n){var i=V$2,r={fWOYk:function(t,e,n){return t(e,n)},oMcSm:function(t,e){return t+e}},s=r[i(452)](B$h,t,e),a=this[i(448)][i(449)](s);if(a||this[i(395)](t,e)){!a&&(this[i(448)][s]=0);var o=r[i(425)]("@",++this[i(448)][s]);s=r[i(452)](B$h,r[i(425)](t,o),r[i(425)](e,o))}return new LinkData(t,e,n,s)}[V$2(421)](t,e,n){for(var i=V$2,r={NPAcL:i(432),gtSMZ:function(t,e){return t!==e}},s=r[i(393)][i(410)]("|"),a=0;;){switch(s[a++]){case"0":this[i(456)](c,l);continue;case"1":return l;case"2":this[i(439)][i(401)](l.id,l);continue;case"3":var o=this[i(443)](e)||this[i(440)](e,n.to);continue;case"4":r[i(446)](t,e)&&this[i(456)](o,l);continue;case"5":var c=this[i(443)](t)||this[i(440)](t,n[i(431)]);continue;case"6":var l=this[i(428)](t,e,n);continue}break}}[V$2(456)](t,e){var n=V$2;t[n(439)]?t[n(439)][n(435)](e):t[n(439)]=new Set([e])}[V$2(399)](t,e){var n=V$2;return{ogrOd:function(t,e){return t!==e}}[n(467)](e,void 0)&&(t=this[n(395)](t,e)),this[n(460)](t)}[V$2(395)](t,e){var n=V$2,i={VnnEd:function(t,e){return t===e},hzUgG:function(t,e,n){return t(e,n)}};if(!i[n(416)](t,void 0)&&!i[n(416)](e,void 0))return this[n(439)][n(397)](i[n(455)](B$h,t,e))}[V$2(469)](){var t=V$2;this[t(394)]((function(e){this[t(414)](e.id)}))}[V$2(396)](t){var e=V$2,n={ufJdc:function(t,e){return t===e},LcFda:e(442),kAVgE:function(t,e){return t(e)}};if(n[e(423)](typeof t,n[e(465)]))for(var i=this[e(439)][e(417)](),r=i[e(403)]();!r[e(445)];){if(n[e(438)](t,r[e(406)]))return!0;r=i[e(403)]()}}[V$2(453)](t,e,n){var i=V$2,r={xvapC:function(t,e){return t===e},YinVH:i(442)},s=this[i(443)](t);if(s&&s[i(439)]&&r[i(413)](typeof e,r[i(441)]))return n?this[i(405)](s[i(439)],t,e):this[i(464)](s[i(439)],t,e)}[V$2(464)](t,e,n){for(var i,r=V$2,s={QxPEP:r(457),aRbvZ:function(t,e){return t===e},nWuQj:function(t,e,n){return t(e,n)}},a=t[r(417)](),o=a[r(403)]();!o[r(445)];)for(var c=s[r(451)][r(410)]("|"),l=0;;){switch(c[l++]){case"0":if(i)return!0;continue;case"1":o=a[r(403)]();continue;case"2":var u=o[r(406)];continue;case"3":var h=s[r(422)](u[r(404)],e)?u[r(468)]:u[r(404)];continue;case"4":i=s[r(454)](n,this[r(473)][r(397)](h),u);continue}break}}[V$2(405)](t,e,n){for(var i=V$2,r={SGHPK:function(t,e){return t===e},eJMDg:function(t,e,n){return t(e,n)}},s=t[i(417)](),a=s[i(403)]();!a[i(445)];){var o=a[i(406)];if(r[i(398)](o[i(404)],e)&&r[i(462)](n,this[i(473)][i(397)](o[i(468)]),o))return!0;a=s[i(403)]()}}[V$2(394)](t){var e=V$2,n={WIFgr:function(t,e){return t!==e},bXxuw:e(442),AwqTP:function(t,e){return t+e},CmZWn:e(471),cPIxF:function(t,e){return t(e)}};if(n[e(400)](typeof t,n[e(466)]))throw new Error(n[e(433)](n[e(418)],t));for(var i=this[e(473)][e(417)](),r=i[e(403)]();!r[e(445)];){if(n[e(429)](t,r[e(406)]))return!0;r=i[e(403)]()}}[V$2(440)](t,e){var n=V$2,i=this[n(443)](t);return i?i[n(461)]=e:i=new PathData(t,e),this[n(473)][n(401)](t,i),i}[V$2(443)](t){var e=V$2;return this[e(473)][e(397)](t)}[V$2(414)](t){for(var e=V$2,n={ULipx:e(434)}[e(392)][e(410)]("|"),i=0;;){switch(n[i++]){case"0":this[e(473)][e(447)](t);continue;case"1":var r=this[e(443)](t);continue;case"2":var s=r[e(439)];continue;case"3":return!0;case"4":if(!r)return!1;continue;case"5":s&&(s[e(391)](this[e(460)]),r[e(439)]=null);continue}break}}[V$2(459)](){var t=V$2;return this[t(473)][t(437)]}[V$2(389)](){var t=V$2;return this[t(439)][t(437)]}[V$2(402)](t){var e=V$2,n=this[e(443)](t);return n?n[e(439)]:null}[V$2(460)](t){for(var e=V$2,n={sDqKL:e(470)}[e(412)][e(410)]("|"),i=0;;){switch(n[i++]){case"0":return!0;case"1":var r=this[e(443)](t[e(404)]);continue;case"2":if(!t)return!1;continue;case"3":s&&s[e(439)][e(447)](t);continue;case"4":if(!this[e(439)][e(397)](t.id))return!1;continue;case"5":this[e(439)][e(447)](t.id);continue;case"6":var s=this[e(443)](t[e(468)]);continue;case"7":r&&r[e(439)][e(447)](t);continue}break}}}var m$1=W$p;function W$p(t,e){var n=M$p();return(W$p=function(t,e){return n[t-=151]})(t,e)}function B$g(t,e){for(var n=W$p,i={ctHtm:n(187),PXPRF:function(t,e){return t>e},yyUgi:function(t,e){return t>>e},LiWln:function(t,e){return t>=e},aYYGZ:function(t,e){return t<e},HPoRL:function(t,e){return t instanceof e},bQeUC:function(t,e){return t||e}},r=i[n(191)][n(167)]("|"),s=0;;){switch(r[s++]){case"0":this[n(176)]=this[n(185)][n(176)];continue;case"1":if(i[n(156)](this[n(176)],0))for(var a=i[n(200)](this[n(176)],1);i[n(172)](a,0);a--)this[n(199)](a);continue;case"2":if(e[n(160)])for(a=0;i[n(189)](a,this[n(176)]);++a)this[n(160)](this[n(185)][a],a);continue;case"3":this[n(160)]=e[n(160)]||n$a;continue;case"4":this[n(185)]=t||[];continue;case"5":!Array[n(195)](t)&&(e=t,t=[]);continue;case"6":if(!i[n(179)](this,B$g))return new B$g(t,e);continue;case"7":e=i[n(158)](e,{});continue;case"8":this[n(184)]=e[n(184)]||C$8;continue}break}}function n$a(){}function C$8(t,e){return{JlINJ:function(t,e){return t-e}}[W$p(157)](t,e)}function M$p(){var t=["HPoRL","zFlIb","Ygmir","_up","HAieJ","compare","data","prototype","6|5|7|4|0|8|3|1|2","rUMJz","aYYGZ","2|5|4|1|0|3","ctHtm","fIrkP","fCXJo","3151048IvlogJ","isArray","864wDLJvU","639160qNafGO","MhjsP","_down","yyUgi","auamh","fwIpD","wTdMB","5|6|4|1|2|3|0","rTGzu","HojjU","PXPRF","JlINJ","bQeUC","kgljp","setNodeId","5787LlNqOv","pop","0|6|4|1|5|3|7|2","1448020znRUen","push","qwDCl","split","LOmSp","PuzFz","2515736TtPDws","TEqku","LiWln","4825560EzKwRu","MmqnT","3996690pivbpN","length","scZUU","krUNX"];return(M$p=function(){return t})()}function M$o(){var t=["2vrUsQH","1375LCKEpB","heapIndex","754803KIQbxJ","2284FZVoIg","eLDAj","2998737FhQEYn","pPzMF","zBywU","342106WQlPiH","10GivGAZ","948288cGxXfL","1615062pbqhEQ","freeze","fScore","function","913566xiCRnb"];return(M$o=function(){return t})()}!function(t,e){for(var n=W$p,i=t();;)try{if(616865===parseInt(n(197))/1+parseInt(n(196))/2*(-parseInt(n(161))/3)+parseInt(n(170))/4+parseInt(n(175))/5+-parseInt(n(173))/6+-parseInt(n(164))/7+parseInt(n(194))/8)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$p),B$g[m$1(186)]={push:function(t){var e=m$1;this[e(185)][e(165)](t),this[e(160)](t,this[e(176)]),this[e(176)]++,this[e(182)]({HAieJ:function(t,e){return t-e}}[e(183)](this[e(176)],1))},pop:function(){for(var t=m$1,e={fwIpD:t(190),krUNX:function(t,e){return t>e},MhjsP:function(t,e){return t===e}},n=e[t(151)][t(167)]("|"),i=0;;){switch(n[i++]){case"0":this[t(185)][t(162)]();continue;case"1":e[t(178)](this[t(176)],0)&&(this[t(185)][0]=this[t(185)][this[t(176)]],this[t(160)](this[t(185)][0],0),this[t(199)](0));continue;case"2":if(e[t(198)](this[t(176)],0))return;continue;case"3":return r;case"4":this[t(176)]--;continue;case"5":var r=this[t(185)][0];continue}break}},peek:function(){return this[m$1(185)][0]},updateItem:function(t){var e=m$1;this[e(199)](t),this[e(182)](t)},_up:function(t){for(var e=m$1,n={MmqnT:e(153),auamh:function(t,e,n){return t(e,n)},PuzFz:function(t,e){return t>e},qwDCl:function(t,e){return t>>e},fCXJo:function(t,e){return t-e},wTdMB:function(t,e){return t>=e}},i=n[e(174)][e(167)]("|"),r=0;;){switch(i[r++]){case"0":n[e(201)](c,s,t);continue;case"1":var s=l[t];continue;case"2":for(;n[e(169)](t,0);){var a=n[e(166)](n[e(193)](t,1),1),o=l[a];if(n[e(152)](n[e(201)](u,s,o),0))break;l[t]=o,n[e(201)](c,o,t),t=a}continue;case"3":l[t]=s;continue;case"4":var c=this[e(160)];continue;case"5":var l=this[e(185)];continue;case"6":var u=this[e(184)];continue}break}},_down:function(t){for(var e=m$1,n={scZUU:e(163),rTGzu:function(t,e,n){return t(e,n)},zFlIb:function(t,e){return t<e},HojjU:function(t,e){return t+e},kgljp:function(t,e){return t<<e},Ygmir:function(t,e){return t<e},TEqku:function(t,e){return t<e},LOmSp:function(t,e,n){return t(e,n)},fIrkP:function(t,e){return t>=e},rUMJz:function(t,e){return t>>e}},i=n[e(177)][e(167)]("|"),r=0;;){switch(i[r++]){case"0":var s=this[e(185)];continue;case"1":var a=s[t];continue;case"2":n[e(154)](h,a,t);continue;case"3":for(;n[e(180)](t,u);){var o=n[e(155)](n[e(159)](t,1),1),c=n[e(155)](o,1),l=s[o];if(n[e(181)](c,this[e(176)])&&n[e(171)](n[e(168)](d,s[c],l),0)&&(o=c,l=s[c]),n[e(192)](n[e(154)](d,l,a),0))break;s[t]=l,n[e(168)](h,l,t),t=o}continue;case"4":var u=n[e(188)](this[e(176)],1);continue;case"5":var h=this[e(160)];continue;case"6":var d=this[e(184)];continue;case"7":s[t]=a;continue}break}}};var K$2=W$o;!function(t,e){for(var n=W$o,i=t();;)try{if(199222===parseInt(n(486))/1*(parseInt(n(478))/2)+parseInt(n(485))/3+parseInt(n(490))/4*(-parseInt(n(487))/5)+parseInt(n(481))/6+-parseInt(n(489))/7+-parseInt(n(480))/8+parseInt(n(492))/9*(-parseInt(n(479))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$o);var B$f=[];function W$o(t,e){var n=M$o();return(W$o=function(t,e){return n[t-=476]})(t,e)}typeof Object[K$2(482)]===K$2(484)&&Object[K$2(482)](B$f);const n$8={heuristic:n$9,distance:C$7,blocked:v$6,compareFScore:I$6,NO_PATH:B$f,setHeapIndex:h$5,setH1:c$5,setH2:w$5,compareF1Score:d$3,compareF2Score:o$6};function n$9(){return 0}function C$7(){return 1}function v$6(){return!1}function I$6(t,e){var n=K$2;return{zBywU:function(t,e){return t-e}}[n(477)](t[n(483)],e[n(483)])}function h$5(t,e){t[K$2(488)]=e}function d$3(t,e){return{pPzMF:function(t,e){return t-e}}[K$2(476)](t.f1,e.f1)}function o$6(t,e){return{eLDAj:function(t,e){return t-e}}[K$2(491)](t.f2,e.f2)}function c$5(t,e){t.h1=e}function w$5(t,e){t.h2=e}function B$e(t){for(var e=W$n,n={tbxFX:e(318)}[e(312)][e(321)]("|"),i=0;;){switch(n[i++]){case"0":this.f1=Number[e(308)];continue;case"1":this.p2=null;continue;case"2":this.h2=-1;continue;case"3":this.f2=Number[e(308)];continue;case"4":this.g2=Number[e(308)];continue;case"5":this.p1=null;continue;case"6":this[e(320)]=!1;continue;case"7":this[e(305)]=t;continue;case"8":this.h1=-1;continue;case"9":this.g1=Number[e(308)];continue}break}}function n$7(){var t=W$n,e={ZIJHW:t(311)},n=0,i=[];return{createNewState:function(r){var s=t,a=i[n];if(a)for(var o=e[s(316)][s(321)]("|"),c=0;;){switch(o[c++]){case"0":a.f1=Number[s(308)];continue;case"1":a.h2=-1;continue;case"2":a.g1=Number[s(308)];continue;case"3":a.p2=null;continue;case"4":a.f2=Number[s(308)];continue;case"5":a[s(320)]=!1;continue;case"6":a.h1=-1;continue;case"7":a[s(305)]=r;continue;case"8":a.g2=Number[s(308)];continue;case"9":a.p1=null;continue}break}else a=new B$e(r),i[n]=a;return n++,a},reset:function(){n=0}}}function M$n(){var t=["8nFHOpu","2056ALoYVy","188235VomBFn","ZIJHW","590BuDLAI","7|5|1|6|9|4|0|3|8|2","1946PRfvZU","closed","split","370794RfRplO","120805nSnVRE","node","162MFVmDu","6596337eDbwlv","POSITIVE_INFINITY","4012880ySBqeJ","749396bgYSOJ","7|9|3|5|2|8|0|4|6|1","tbxFX"];return(M$n=function(){return t})()}function W$n(t,e){var n=M$n();return(W$n=function(t,e){return n[t-=305]})(t,e)}function M$m(){var t=["dhbCm","ZWgoH","CcdHm","compareF1Score","toId is not defined in this graph: ","pBzhR","hCGdf","6813950bMjkUF","CLCdL","djqAG","dkBsL","hWOZV","tnslc","JLNwZ","OLzjd","eDjDv","oriented","PVtpb","QYQKQ","mFCsO","hejcj","FSDEy","RtOza","fromId is not defined in this graph: ","swutq","DmvIT","JkwBi","setH1","length","nnwQL","bgJIG","SWGMX","BxZvA","LKyZW","distance","ydRQH","TGTRt","blocked","hlMcO","pop","setH2","hruNW","forEachLinkedNode","LqRLs","node","vVlYe","20ANhiFr","LNCmp","createNewState","updateItem","7|3|0|2|4|5|6|1","5|2|4|0|6|3|7|1","getNode","JSShK","unshift","NO_PATH","reset","2529793cZBEdP","HWZRf","bNxbU","gCbLY","1612TmrrnD","ZMLUX","VaCJO","peek","21rwYtrV","UjIHQ","1|4|3|2|0","quitFast","set","split","3750186QlhxKi","QJvCJ","lJPxX","ZfkRW","heuristic","POSITIVE_INFINITY","NoHXN","get","8eDjObc","EVCBy","GmfOU","8785593ymNPfm","OIFQU","chBKT","crRau","compareF2Score","YsKLQ","fromId","7205754XxRTKv","closed","2|1|4|3|0","Llhqt","15836GNfQHn","6|5|0|2|1|3|4","toId","UINrs","push","5286gAsqQl"];return(M$m=function(){return t})()}!function(t,e){for(var n=W$n,i=t();;)try{if(658741===-parseInt(n(310))/1+-parseInt(n(313))/2*(-parseInt(n(322))/3)+parseInt(n(309))/4+parseInt(n(323))/5*(-parseInt(n(306))/6)+parseInt(n(319))/7*(-parseInt(n(314))/8)+parseInt(n(315))/9*(parseInt(n(317))/10)+-parseInt(n(307))/11)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$n);var X=W$m;function W$m(t,e){var n=M$m();return(W$m=function(t,e){return n[t-=160]})(t,e)}!function(t,e){for(var n=W$m,i=t();;)try{if(723311===parseInt(n(213))/1*(parseInt(n(241))/2)+parseInt(n(246))/3*(-parseInt(n(209))/4)+parseInt(n(254))/5+parseInt(n(237))/6+parseInt(n(205))/7*(parseInt(n(227))/8)+-parseInt(n(230))/9+parseInt(n(194))/10*(-parseInt(n(219))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$m);var v$5=n$8[X(203)];function B$d(t,e={}){var n=X,i={GmfOU:n(215),SWGMX:function(t,e){return t>e},tnslc:function(t,e){return t<e},UINrs:function(t,e){return t-e},hruNW:function(t,e){return t+e},ZWgoH:function(t,e,n){return t(e,n)},Llhqt:function(t,e){return t===e},LKyZW:n(239),gCbLY:function(t,e){return t<e},vVlYe:function(t,e){return t<e},UjIHQ:function(t,e){return t-e},CLCdL:function(t,e){return t+e},QJvCJ:function(t,e,n){return t(e,n)},QYQKQ:n(198),bNxbU:function(t,e,n,i){return t(e,n,i)},FSDEy:function(t,e){return t+e},JSShK:function(t,e,n,i){return t(e,n,i)},LqRLs:function(t,e){return t<e},bgJIG:n(199),BxZvA:function(t,e,n,i){return t(e,n,i)},hCGdf:function(t,e,n){return t(e,n)},ZfkRW:function(t,e,n,i){return t(e,n,i)},djqAG:function(t,e,n){return t(e,n)},JLNwZ:function(t,e){return t+e},VaCJO:n(171),OIFQU:n(251),CcdHm:function(t,e){return t<e},NoHXN:function(t){return t()},hlMcO:function(t,e){return t&&e},pBzhR:function(t,e){return t(e)},DmvIT:function(t){return t()}},r=e[n(164)],s=e[n(216)],a=e[n(185)]||n$8[n(185)],o=e[n(223)]||n$8[n(223)],c=e[n(182)]||n$8[n(182)],l=i[n(173)](n$7);return{find:function(e,u){var h=n,d={dhbCm:i[h(181)],HWZRf:function(t,e){return i[h(179)](t,e)},lJPxX:function(t,e){return i[h(208)](t,e)},hWOZV:function(t,e){return i[h(193)](t,e)},YsKLQ:function(t,e){return i[h(214)](t,e)},ydRQH:function(t,e){return i[h(255)](t,e)},dkBsL:function(t,e,n){return i[h(220)](t,e,n)},swutq:i[h(166)],crRau:function(t,e){return i[h(160)](t,e)},hejcj:function(t,e,n,r){return i[h(207)](t,e,n,r)},LNCmp:function(t,e){return i[h(169)](t,e)},chBKT:function(t,e,n,r){return i[h(201)](t,e,n,r)},nnwQL:function(t,e){return i[h(255)](t,e)},JkwBi:function(t,e){return i[h(191)](t,e)},RtOza:i[h(178)],OLzjd:function(t,e,n,r){return i[h(180)](t,e,n,r)},TGTRt:function(t,e,n){return i[h(253)](t,e,n)},mFCsO:function(t,e){return i[h(169)](t,e)},PVtpb:function(t,e,n,r){return i[h(222)](t,e,n,r)},EVCBy:function(t,e){return i[h(240)](t,e)},eDjDv:function(t,e,n){return i[h(256)](t,e,n)}},p=t[h(200)](e);if(!p)throw new Error(i[h(161)](i[h(211)],e));var f=t[h(200)](u);if(!f)throw new Error(i[h(161)](i[h(231)],u));l[h(204)]();var m,g=r?function(t,e){var n=h;if(i[n(240)](e[n(236)],I[n(192)].id))return i[n(248)](R,t,e)}:R,A=r?function(t,e){var n=h;if(d[n(228)](e[n(243)],I[n(192)].id))return d[n(163)](k,t,e)}:k,y=new Map,v=new B$g({compare:n$8[h(250)],setNodeId:n$8[h(175)]}),S=new B$g({compare:n$8[h(234)],setNodeId:n$8[h(188)]}),b=Number[h(224)],x=l[h(196)](p);y[h(217)](e,x),x.g1=0;var M=i[h(253)](o,p,f);x.f1=M,v[h(245)](x);var T=l[h(196)](f);y[h(217)](u,T),T.g2=0;var I,E=M;T.f2=E,S[h(245)](T);for(;S[h(176)]&&v[h(176)]&&(i[h(249)](v[h(176)],S[h(176)])?i[h(225)](C):i[h(225)](w),!i[h(186)](s,m)););return i[h(252)](I$5,m);function C(){for(var e=h,n=d[e(247)][e(218)]("|"),i=0;;){switch(n[i++]){case"0":d[e(206)](v[e(176)],0)&&(M=v[e(212)]().f1);continue;case"1":if(I[e(238)])return;continue;case"2":I=v[e(187)]();continue;case"3":d[e(221)](I.f1,b)&&d[e(258)](d[e(235)](d[e(183)](I.g1,E),d[e(257)](o,p,I[e(192)])),b)&&t[e(190)](I[e(192)].id,g);continue;case"4":I[e(238)]=!0;continue}break}}function w(){for(var e=h,n=i[e(229)][e(218)]("|"),r=0;;){switch(n[r++]){case"0":i[e(179)](S[e(176)],0)&&(E=S[e(212)]().f2);continue;case"1":I=S[e(187)]();continue;case"2":i[e(160)](I.f2,b)&&i[e(160)](i[e(244)](i[e(189)](I.g2,M),i[e(248)](o,I[e(192)],f)),b)&&t[e(190)](I[e(192)].id,A);continue;case"3":I[e(238)]=!0;continue;case"4":if(I[e(238)])return;continue}break}}function R(t,e){for(var n=h,i=d[n(172)][n(218)]("|"),r=0;;){switch(i[r++]){case"0":if(p[n(238)])return;continue;case"1":d[n(233)](u,b)&&(b=u,m=p);continue;case"2":if(d[n(168)](a,I[n(192)],t,e))return;continue;case"3":!p&&(p=l[n(196)](t),y[n(217)](t.id,p));continue;case"4":var s=d[n(195)](I.g1,d[n(232)](c,I[n(192)],t,e));continue;case"5":d[n(258)](s,p.g1)&&(p.g1=s,p.f1=d[n(177)](s,d[n(257)](o,p[n(192)],f)),p.p1=I,d[n(174)](p.h1,0)?v[n(245)](p):v[n(197)](p.h1));continue;case"6":var u=d[n(195)](p.g1,p.g2);continue;case"7":var p=y[n(226)](t.id);continue}break}}function k(t,e){for(var n=h,i=d[n(170)][n(218)]("|"),r=0;;){switch(i[r++]){case"0":if(d[n(162)](a,I[n(192)],t,e))return;continue;case"1":d[n(233)](f,b)&&(b=f,m=s);continue;case"2":!s&&(s=l[n(196)](t),y[n(217)](t.id,s));continue;case"3":d[n(174)](u,s.g2)&&(s.g2=u,s.f2=d[n(195)](u,d[n(184)](o,p,s[n(192)])),s.p2=I,d[n(174)](s.h2,0)?S[n(245)](s):S[n(197)](s.h2));continue;case"4":if(s[n(238)])return;continue;case"5":var s=y[n(226)](t.id);continue;case"6":var u=d[n(167)](I.g2,d[n(165)](c,I[n(192)],t,e));continue;case"7":var f=d[n(167)](s.g1,s.g2);continue}break}}}}}function I$5(t){for(var e=X,n={ZMLUX:e(242)}[e(210)][e(218)]("|"),i=0;;){switch(n[i++]){case"0":var r=t.p1;continue;case"1":var s=t.p2;continue;case"2":for(;r;)a[e(245)](r[e(192)]),r=r.p1;continue;case"3":for(;s;)a[e(202)](s[e(192)]),s=s.p2;continue;case"4":return a;case"5":var a=[t[e(192)]];continue;case"6":if(!t)return v$5;continue}break}}const L=W$l;function W$l(t,e){const n=M$l();return(W$l=function(t,e){return n[t-=497]})(t,e)}!function(t,e){const n=W$l,i=t();for(;;)try{if(237550===parseInt(n(631))/1*(parseInt(n(512))/2)+-parseInt(n(746))/3+-parseInt(n(627))/4*(parseInt(n(718))/5)+-parseInt(n(576))/6*(parseInt(n(506))/7)+-parseInt(n(760))/8+parseInt(n(617))/9+parseInt(n(509))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$l);let n$6=(t,e)=>t>e?e+","+t:t+","+e;function M$l(){const t=["insertSegment","GOJcK","rJHVR","vIluW","aStarPath","FtccE","set","yQetW","max","RUgDv","TXqTW","PPTiG","GHdfR","QnYsY","0|4|3|1|2","unshift","enterTypeId","stairs","Zobbz","kWQaz","PXzri","nextDistance","LnvTJ","即将右转","man","iuIAW","1088202FHkDpl","JHaZA","ZZSWe","oVWku","wpFLZ","EdBDw","mWlPu","jqLUB","clone","vZsEq","Edrwr","yyIcx","splice","FttJK","iMxuu","mJMhd","ZhXSd","qtbGi","BGIFP","cmeKW","tevzI","sub","myPositionPath","hHCjL","ids","onFindDistance","QmDiR","LYGDH","NAiZu","location","CaxDL","getLink","未找到路线, 请联系地图制作方!","aigrd","addLink","yuZZV","sZEHX","floorId","xVAiG","nuHwK","name","3443823Mcwskg","atPath","_cellIndex","status","length","kxsuE","angle2NaviText","ZAKfM","EmyUW","SQSBh","75352GPkexC","elevator","tip","未找到路线","62PigErK","ARSPL","pointAtPath","VUyyT","has","cuagt","skdBU","nwWHZ","mCkyv","reverse","distance","locationType","pGZuD","floorPathOriginObj","gGixb","getMapDataById","isMyPosition","gNPze","kSxLh","找不到路线:","dyKBe","findRoute","motorway","assign","OqxkZ","push","map","mapRotation","path","Twwdn","BlXxt","SlLda","JdBXr","reduce","_key","haYor","isEnd","tOmma","APnRV","KGSNm","pop","cOtxF","car","lpdvW","向右前方","11|10|9|3|7|6|2|0|8|1|4|5|12","isOutdoor","block","QXAPa","wTglC","eqlKP","fggYU","ChvFj","sIdyw","angle","RAD2DEG","HXznO","向左后方掉头","get","DwekZ","lSUih","text","exyTs","iHQfE","floor","GgZXR","WHsts","cellSize","urQqz","_planCount","kkSBX","mapData","请保持直行","bRvgf","xndsZ","enterType","uLuwk","TeVLz","navi","log","HloPJ","sort","YDiAk","KZQJX","ufKLK","manOnly","distancePower","40ZcozQR","grid","IJBzO","gDeZV","nPmtK","向右后方掉头","split","GiVeZ","zthEi","sADjw","computeRouteInfo","JyCrS","WVKCi","escalator","sxCcp","kmxwB","min","OuKiQ","wenXY","kUOoY","HwvZm","nearestSegment","shift","feESs","DLSGZ","data","find","DzjCD","981063LPmpJj","ZPTFQ","GrzJR","ftknS","YDzji","RXsXS","mlxTe","eZmzI","oTVZC","MfQpm","hypot","rwaSj","rOScn","points","968040lWlquk","0|5|6|8|4|2|3|7|1","YLjam","includes","angleTo","mPICJ","cYdcs","firstDistance","vCSVg","VwEOU","7etYfIw","OZyQy","sVSTX","2768260CXsadA","cross","onFindBlock","11554DztBXd","gbvnk","planRoute","luhYS","gmsev","copy","SyaNE","abDGZ","MMJkF","minArr","ZPbVq","ffBjC","未找到路线:","Kbnen","crossType","indexOf","向左前方","EBePT","xplgm","waypoint","manCar","FSMKR","APTUU","WHmuy","nextIdx","indoor","sqrt","ikIqw","即将左转","carOnly","yvQaC","aoa","Uerhr","RmqeF","nFfZf","AfENF","point","CdJeQ"];return(M$l=function(){return t})()}let C$6=class{constructor(t){__publicField(this,_ec),__publicField(this,_dc),__publicField(this,_cc,new AStarPath),__publicField(this,_bc,{}),__publicField(this,_ac),__publicField(this,_$b),__publicField(this,__b,{});const e=L,n={skdBU:function(t,e){return t!==e},nPmtK:function(t,e,n){return t(e,n)},APnRV:function(t,e,n){return t(e,n)}};this[e(657)]=t;let i=this[e(657)][e(702)][e(659)][e(664)](((t,e)=>(t[e.id]=e,t)),{});for(const r in i){const t=i[r];t[e(613)]&&(this[e(644)][t[e(613)]]=this[e(644)][t[e(613)]]||{});for(const s in t[e(600)]){const a=t[e(600)][s];let o=i[s];if(n[e(637)](a,CrossType[e(678)])&&o){let i=n[e(722)](getLineLength,t,o),c=n[e(669)](n$6,t.id,o.id);this[e(644)][t[e(613)]][c]=this[e(644)][t[e(613)]][c]||{pp1:t,pp2:o},this[e(554)][e(610)](r,s,{distance:i,from:t,to:o,type:a})}}}}[(_ec=L(657),_dc=L(700),_cc=L(554),_bc=L(644),_ac=L(511),_$b=L(601),L(652))](t,e,n,i=CrossType[L(532)],r){const s=L,a={hHCjL:function(t,e){return t+e},TXqTW:function(t,e,n){return t(e,n)},vZsEq:function(t,e){return t>=e},rOScn:function(t,e){return t<e},oTVZC:function(t,e){return t!==e},yQetW:function(t,e){return t===e},GrzJR:function(t,e){return t===e},JHaZA:function(t,e,n){return t(e,n)},KGSNm:function(t,e,n){return t(e,n)},WHmuy:function(t,e){return t==e},kSxLh:function(t,e){return t===e},GHdfR:function(t,e){return t===e},SlLda:function(t,e,n){return t(e,n)},PXzri:function(t,e){return t+e},mCkyv:function(t,e){return t+e},GOJcK:function(t,e){return t<e},wenXY:function(t,e){return t-e},kxsuE:function(t,e){return t-e},QXAPa:function(t,e){return t-e}};let o=[];return t[s(659)][s(657)]((t=>{const c=s,l={Zobbz:function(t,e){return a[W$l(599)](t,e)},DzjCD:function(t,e,n){return a[W$l(560)](t,e,n)},WHsts:function(t,e){return a[W$l(585)](t,e)},RUgDv:function(t,e){return a[W$l(758)](t,e)},ZAKfM:function(t,e){return a[W$l(754)](t,e)},lSUih:function(t,e){return a[W$l(557)](t,e)},FttJK:function(t,e){return a[W$l(557)](t,e)},xplgm:function(t,e){return a[W$l(748)](t,e)},RmqeF:function(t,e,n){return a[W$l(577)](t,e,n)},tOmma:function(t,e,n){return a[W$l(670)](t,e,n)},lpdvW:function(t,e){return a[W$l(535)](t,e)},zthEi:function(t,e){return a[W$l(649)](t,e)},sADjw:function(t,e){return a[W$l(562)](t,e)},APTUU:function(t,e,n){return a[W$l(662)](t,e,n)},JdBXr:function(t,e){return a[W$l(570)](t,e)},rwaSj:function(t,e){return a[W$l(639)](t,e)}};e[c(659)][c(657)]((e=>{const s=c,a={xndsZ:function(t,e){return l[W$l(697)](t,e)},OZyQy:function(t,e){return l[W$l(697)](t,e)},cuagt:function(t,e){return l[W$l(559)](t,e)},YLjam:function(t,e){return l[W$l(624)](t,e)},VUyyT:function(t,e){return l[W$l(624)](t,e)},cOtxF:function(t,e){return l[W$l(691)](t,e)},ufKLK:function(t,e){return l[W$l(589)](t,e)},kkSBX:function(t,e){return l[W$l(530)](t,e)},fggYU:function(t,e){return l[W$l(624)](t,e)},Uerhr:function(t,e){return l[W$l(697)](t,e)},Kbnen:function(t,e,n){return l[W$l(545)](t,e,n)},vCSVg:function(t,e,n){return l[W$l(668)](t,e,n)},gbvnk:function(t,e){return l[W$l(674)](t,e)},NAiZu:function(t,e){return l[W$l(726)](t,e)},ZZSWe:function(t,e){return l[W$l(727)](t,e)}};function u(t,e){const n=s;return CrossType[t]?a[n(513)](i,CrossType[n(673)])&&a[n(715)](t,CrossType[n(574)])&&(e*=20):EnterType[t]&&(a[n(604)](t,EnterType[n(567)])||a[n(715)](t,EnterType[n(731)])||a[n(578)](t,EnterType[n(628)]))&&(e+=20),e}let h=l[s(534)](B$d,this[s(554)],{oriented:!0,blocked:(o,c,l)=>{const u=s;let{type:h}=l[u(743)];if(a[u(705)](+t,0)&&a[u(507)](+e,0)&&(a[u(636)](+o.id,0)||a[u(636)](+c.id,0)))return!0;if((null==r?void 0:r[u(499)](+c.id))||(null==r?void 0:r[u(499)](+o.id)))return!0;if(this[u(511)]){if(this[u(511)](o,c,l))return!0}if(CrossType[h]&&a[u(498)](i,h)&&a[u(634)](h,CrossType[u(532)])){if(a[u(672)](i,CrossType[u(673)]))return a[u(672)](h,CrossType[u(716)]);if(a[u(715)](i,CrossType[u(574)]))return a[u(701)](h,CrossType[u(541)])}return!!EnterType[h]&&(a[u(682)](h,n)&&a[u(634)](h,EnterType[u(537)]))},distance:(t,e,n)=>{const i=s;let{type:r,distance:o}=n[i(743)];if(this[i(601)]){let s=this[i(601)](t,e,n);if(a[i(544)](s,0))return a[i(525)](u,r,s)}return a[i(504)](u,r,o)}})[s(744)](l[s(663)](t,""),l[s(757)](e,""));if(!(null==h?void 0:h[s(621)]))return;h[s(640)]();let d=0,p=0;h=h[s(657)](((t,e)=>{const n=s;let i=h[l[n(568)](e,1)],r=i?l[n(745)](getLineLength,t[n(743)],i[n(743)]):0,a=r;if(i){let e=t[n(743)][n(600)][i.id];a=l[n(745)](u,e,r)}return i&&(d+=r,p+=a),{point:t[n(743)],nextDistance:r,nextDistancePower:a}})),h[s(641)]=d,h[s(717)]=p,h[s(621)]&&o[s(656)](h)}))})),o[s(621)]&&o[s(657)]((t=>{const e=s;if(a[e(758)](+t[0][e(548)].id,0)){let n=this[e(554)][e(607)](t[0][e(548)].id,t[1][e(548)].id);t[0][e(548)][e(618)]=null==n?void 0:n[e(743)][e(734)]}if(a[e(551)](+t[a[e(736)](t[e(621)],1)][e(548)].id,0)){let n=this[e(554)][e(607)](t[a[e(736)](t[e(621)],2)][e(548)].id,t[a[e(622)](t[e(621)],1)][e(548)].id);t[a[e(679)](t[e(621)],1)][e(548)][e(618)]=null==n?void 0:n[e(743)][e(734)]}})),o}[L(744)](t,e,n=this[L(657)][L(709)][L(620)][L(706)],i=this[L(657)][L(709)][L(620)][L(526)],r){var s,a;const o=L,c={GiVeZ:function(t,e){return t!=e},DLSGZ:o(650),RXsXS:function(t){return t()},WVKCi:function(t,e){return t||e},dyKBe:o(608),MMJkF:function(t){return t()},OqxkZ:function(t,e){return t===e}};if(c[o(730)](!e,!t))return;if(!(null==(s=t[o(659)])?void 0:s[o(621)])||!(null==(a=e[o(659)])?void 0:a[o(621)]))return void console[o(710)](c[o(651)],t,e);let l=[EnterType[o(628)],EnterType[o(731)],EnterType[o(567)],EnterType[o(653)]];l[o(565)](...l[o(588)](l[o(527)](n),1));let u=()=>{const n=o;let s=l[n(740)]();if(c[n(725)](s,void 0)){let a=this[n(652)](t,e,s,i,r);return a[n(621)]?a:(console[n(710)](c[n(742)],s,i),c[n(751)](u))}},h=c[o(520)](u);if(!h)return;let d=h[o(712)](((t,e)=>t[o(717)]-e[o(717)]))[0];return c[o(655)](d[0][o(548)][o(613)],d[1][o(548)][o(613)])&&c[o(655)](d[0][o(548)].x,d[1][o(548)].x)&&c[o(655)](d[0][o(548)].y,d[1][o(548)].y)&&d[o(740)](),d[o(657)]((t=>{const e=o;t[e(695)]=this[e(657)][e(646)](t[e(548)][e(613)])})),d}[L(514)](t,e,n,i){const r=L,s={AfENF:function(t,e){return t<e},JyCrS:function(t,e){return t-e},mlxTe:r(524),cmeKW:function(t,e){return t-e},mJMhd:r(630),SyaNE:function(t,e){return t>e},wpFLZ:function(t,e){return t-e},cYdcs:function(t,e,n){return t(e,n)},gmsev:function(t,e,n,i){return t(e,n,i)},eqlKP:function(t,e){return t<e},CaxDL:function(t,e){return t===e},yyIcx:r(543)};let a=[];for(let o=1;s[r(547)](o,t[r(621)]);o++){let c=this[r(744)](t[s[r(729)](o,1)],t[o],e,n,i);if(!(null==c?void 0:c[r(621)]))throw console[r(710)](s[r(752)],t[s[r(595)](o,1)],t[o]),new Error(s[r(591)]);s[r(518)](o,1)&&c[r(588)](0,1),c[s[r(580)](c[r(621)],1)][r(531)]=t[o],a[r(656)](...c)}if(a[r(621)]&&t[0][r(647)]&&s[r(518)](a[r(621)],2)){let t=s[r(502)](getLineLength,this[r(657)][r(709)][r(598)],a[1][r(548)]),{deg:e}=s[r(516)](getLineAngle,a[0][r(548)],a[1][r(548)],a[2][r(548)]);s[r(547)](e,130)&&s[r(681)](t,s[r(606)](this[r(657)][r(709)][r(605)][r(642)],s[r(587)])?1.5:s[r(606)](this[r(657)][r(709)][r(598)][r(613)],this[r(657)][r(702)].id)?8:4)&&a[r(740)]()}return this[r(728)](a)}[L(728)](t){const e=L,n={yuZZV:e(703),kUOoY:function(t,e){return t>e},ZhXSd:function(t,e){return t+e},wTglC:function(t,e){return t+e},CdJeQ:function(t,e){return t-e},ikIqw:function(t,e){return t===e},feESs:function(t,e,n){return t(e,n)},OuKiQ:function(t,e){return t+e},TeVLz:function(t,e){return t<e},nwWHZ:function(t,e){return t+e},gDeZV:function(t,e){return t!==e},ffBjC:function(t,e){return t!==e},FtccE:function(t,e){return t*e},nuHwK:function(t,e){return t>e},iuIAW:function(t,e){return t-e},pGZuD:function(t,e){return t(e)},kWQaz:function(t,e){return t-e},YDzji:function(t){return t()},Edrwr:function(t){return t()}};let i=[];for(let s=0;n[e(708)](s,n[e(549)](t[e(621)],1));s++){const r=t[s],a=t[n[e(638)](s,1)],o=t[n[e(592)](s,2)];if(r[e(566)]=r[e(548)][e(600)][a[e(548)].id],n[e(721)](r[e(548)][e(613)],a[e(548)][e(613)])){o&&(n[e(523)](a[e(548)][e(613)],o[e(548)][e(613)])?a[e(629)]=EnterType[a[e(548)][e(600)][o[e(548)].id]][e(616)]:a[e(629)]="直行");continue}let c=(new Vector2)[e(517)](r[e(548)]),l=(new Vector2)[e(517)](a[e(548)]),u=c[e(597)](l),h=new Vector2(0,1),d=n[e(555)](u[e(500)](h),MathUtils[e(686)]);if(r[e(658)]=n[e(615)](h[e(510)](u),0)?d:n[e(575)](360,d),o){let t=function(){const t=e,r={tevzI:n[t(611)]};if(n[t(737)](i[t(621)],1)){let e=i[t(740)]();e[t(629)]=n[t(592)](n[t(680)]("即将",e[t(629)][t(499)]("左")?"左":"右"),"转"),i[t(657)]((e=>{const n=t;e[n(629)]=r[n(596)]}))}i=[]};if(n[e(721)](o[e(548)][e(613)],a[e(548)][e(613)])){a[e(629)]=EnterType[a[e(548)][e(600)][o[e(548)].id]][e(616)],a[e(685)]=0;continue}let r=(new Vector2)[e(517)](o[e(548)]),s=l[e(597)](r),c=n[e(555)](u[e(500)](s),MathUtils[e(686)]);n[e(643)](isNaN,c);let h=u[e(584)]()[e(510)](s);c=n[e(737)](h,0)?c:n[e(569)](360,c),n[e(643)](isNaN,c),a[e(629)]=this[e(623)](c),a[e(629)][e(499)]("前方")?i[e(621)]?n[e(539)](i[n[e(549)](i[e(621)],1)][e(629)],a[e(629)])?i[e(656)](a):n[e(750)](t):i[e(656)](a):n[e(586)](t),a[e(685)]=c}else a[e(667)]=!0}let r=t[e(664)](((t,i)=>{const r=e;let s=t[n[r(549)](t[r(621)],1)];if(!s)return t[r(656)]([i]),t;let a=s[0];return a&&n[r(539)](a[r(548)][r(613)],i[r(548)][r(613)])?s[r(656)](i):t[r(656)]([i]),t}),[]);return r[e(740)](),r[e(671)](),r[e(657)]((i=>{const r=e;n[r(539)](i[r(621)],1)&&t[r(588)](t[r(527)](i[0]),1)})),t[e(657)](((i,r)=>{const s=e;let a=t[n[s(680)](r,1)];a&&(i[s(571)]=n[s(741)](getLineLength,i[s(548)],a[s(548)]))})),t[e(641)]=t[e(664)](((t,i)=>{const r=e;return n[r(735)](t,i[r(571)]||0)}),0),t}[L(623)](t){const e=L,n={mPICJ:function(t,e){return t>=e},MfQpm:function(t,e){return t<=e},ZPbVq:e(703),VwEOU:e(528),aigrd:e(540),FSMKR:e(688),jqLUB:e(723),ftknS:e(573),BGIFP:e(675)};return[{text:n[e(522)],max:20,min:0},{text:n[e(505)],max:45,min:20},{text:n[e(609)],max:135,min:45},{text:n[e(533)],max:180,min:135},{text:n[e(583)],max:225,min:180},{text:n[e(749)],max:315,min:225},{text:n[e(594)],max:340,min:315},{text:n[e(522)],max:360,min:340}][e(744)]((i=>{const r=e;return n[r(501)](i[r(558)],t)&&n[r(755)](i[r(734)],t)}))[e(692)]}[(__b=L(719),L(633))](t){const e=L,n={BlXxt:function(t,e,n,i,r,s,a){return t(e,n,i,r,s,a)},ARSPL:function(t,e){return t<e},vIluW:e(497),sxCcp:function(t,e){return t-e},rJHVR:function(t,e,n,i){return t(e,n,i)},luhYS:function(t,e){return t===e},YDiAk: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(661)](v$4,i.x,i.y,t.x,t.y,r.x,r.y);let h={};if(h[r.id]=t[c(600)][r.id],h[t.id]=r[c(600)][t.id],o[c(656)]({distance:l,x:u.x,y:u.y,ids:h,points:[t,r]}),!a[c(641)]||n[c(632)](l,a[c(641)])){const e=n[c(553)][c(724)]("|");let i=0;for(;;){switch(e[i++]){case"0":a[c(641)]&&o[c(656)]({...a});continue;case"1":a[c(536)]=s;continue;case"2":a[c(759)]=[t,r];continue;case"3":a[c(600)][r.id]=t[c(600)][r.id];continue;case"4":a[c(600)]={};continue;case"5":a[c(641)]=l;continue;case"6":a.x=u.x;continue;case"7":a[c(600)][t.id]=r[c(600)][t.id];continue;case"8":a.y=u.y;continue}break}}};if(r)for(let u=1;n[e(632)](u,r[e(621)]);u++){const t=r[n[e(732)](u,1)],i=r[u];n[e(552)](c,t,i,u)}else{if(!this[e(719)][s.id]){let t=this[e(644)][s.id];if(n[e(515)](s.id,this[e(657)][e(702)].id))for(const n in this[e(644)])this[e(657)][e(646)](n)[e(677)]&&(t=Object[e(654)]({},t,this[e(644)][n]||{}));this[e(719)][s.id]=new h$4(100);for(const n in t){const{pp1:i,pp2:r}=t[n];this[e(719)][s.id][e(550)]([i,r])}}let t=this[e(719)][s.id];a=t[e(739)](i)}a[e(521)]=(a[e(521)]||o)[e(712)](((t,n)=>t[e(641)]-n[e(641)]));let l=a[e(521)][0];l&&(l[e(503)]=0);for(let u=1;n[e(632)](u,a[e(521)][e(621)]);u++){const t=a[e(521)][u];t[e(503)]=n[e(713)](getLineLength,l,t)}return a}};function v$4(t,e,n,i,r,s){const a=L,o={EdBDw:a(676),PPTiG:function(t,e){return t!==e},gGixb:function(t,e){return t/e},oVWku:function(t,e){return t<e},gNPze:function(t,e){return t>e},sZEHX:function(t,e){return t+e},SQSBh:function(t,e){return t*e},HwvZm:function(t,e){return t+e},DwekZ:function(t,e){return t*e},bRvgf:function(t,e){return t-e},KZQJX:function(t,e){return t-e},haYor:function(t,e){return t-e},urQqz:function(t,e){return t+e},Twwdn:function(t,e){return t*e},abDGZ:function(t,e){return t-e},ChvFj:function(t,e){return t+e},qtbGi:function(t,e){return t*e}},c=o[a(581)][a(724)]("|");let l=0;for(;;){switch(c[l++]){case"0":o[a(561)](f,0)&&(u=o[a(645)](m,f));continue;case"1":o[a(579)](u,0)?(g=n,A=i):o[a(648)](u,1)?(g=r,A=s):(g=o[a(612)](n,o[a(626)](u,y)),A=o[a(738)](i,o[a(690)](u,h)));continue;case"2":var u=-1;continue;case"3":var h=o[a(704)](s,i);continue;case"4":var d=o[a(714)](t,g);continue;case"5":var p=o[a(666)](e,A);continue;case"6":var f=o[a(699)](o[a(660)](y,y),o[a(690)](h,h));continue;case"7":var m=o[a(699)](o[a(626)](S,y),o[a(690)](v,h));continue;case"8":var g,A;continue;case"9":var y=o[a(519)](r,n);continue;case"10":var v=o[a(519)](e,i);continue;case"11":var S=o[a(666)](t,n);continue;case"12":return{v2:{x:g,y:A},distance:Math[a(538)](o[a(683)](o[a(690)](d,d),o[a(593)](p,p)))}}break}}function I$4(t,e,n,i,r,s){const a=L,o={eZmzI:function(t,e){return t-e},yvQaC:function(t,e){return t-e},EBePT:function(t,e){return t===e},sIdyw:function(t,e){return t===e},LYGDH:function(t,e){return t-e},sVSTX:function(t,e){return t/e},QnYsY:function(t,e){return t+e},EmyUW:function(t,e){return t*e},IJBzO:function(t,e){return t-e},LnvTJ:function(t,e){return t*e},kmxwB:function(t,e){return t*e},xVAiG:function(t,e){return t*e}},c=o[a(753)](r,n),l=o[a(542)](s,i);if(o[a(529)](c,0)&&o[a(684)](l,0))return{distance:Math[a(756)](o[a(603)](t,n),o[a(542)](e,i)),x:n,y:i};let u=o[a(508)](o[a(563)](o[a(625)](o[a(603)](t,n),c),o[a(625)](o[a(720)](e,i),l)),o[a(563)](o[a(625)](c,c),o[a(572)](l,l)));u=Math[a(558)](0,Math[a(734)](1,u));const h=o[a(563)](n,o[a(733)](u,c)),d=o[a(563)](i,o[a(614)](u,l));return{distance:Math[a(756)](o[a(753)](t,h),o[a(720)](e,d)),x:h,y:d}}let h$4=class{constructor(t=100){__publicField(this,_gc),__publicField(this,_fc);const e=L;this[e(698)]=t,this[e(719)]=new Map}[(_gc=L(698),_fc=L(719),L(665))](t,e){return t+","+e}[L(619)](t,e){const n=L,i={QmDiR:function(t,e){return t/e},HloPJ:function(t,e){return t/e}};return[Math[n(695)](i[n(602)](t,this[n(698)])),Math[n(695)](i[n(711)](e,this[n(698)]))]}[L(550)](t){const e=L,n={exyTs:function(t,e){return t<=e},HXznO: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(734)](i,s),c=Math[e(734)](r,a),l=Math[e(558)](i,s),u=Math[e(558)](r,a),[h,d]=this[e(619)](o,c),[p,f]=this[e(619)](l,u);for(let m=h;n[e(693)](m,p);m++)for(let i=d;n[e(687)](i,f);i++){const n=this[e(665)](m,i);this[e(719)][e(635)](n)||this[e(719)][e(556)](n,[]),this[e(719)][e(689)](n)[e(656)](t)}}[L(739)](t,e=1){const n=L,i={mWlPu:function(t,e){return t<=e},iHQfE:function(t,e){return t<=e},iMxuu:function(t,e){return t+e},ZPTFQ:function(t,e){return t+e},uLuwk:function(t,e,n,i,r,s,a){return t(e,n,i,r,s,a)},GgZXR:function(t,e){return t<e},nFfZf:n(564)},[r,s]=this[n(619)](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(582)](l,e);l++)for(let u=-e;i[n(694)](u,e);u++){const e=this[n(665)](i[n(590)](r,l),i[n(747)](s,u)),h=this[n(719)][n(689)](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(707)](I$4,t.x,t.y,e.x,e.y,s.x,s.y);let h={};if(h[s.id]=e[n(600)][s.id],h[e.id]=s[n(600)][e.id],o[n(656)]({distance:u[n(641)],x:u.x,y:u.y,ids:h,points:r}),!a[n(641)]||i[n(696)](u[n(641)],a[n(641)])){const t=i[n(546)][n(724)]("|");let e=0;for(;;){switch(t[e++]){case"0":a[n(641)]=u[n(641)];continue;case"1":a[n(600)]=h;continue;case"2":a[n(759)]=r;continue;case"3":a.y=u.y;continue;case"4":a.x=u.x;continue}break}}}}return a[n(521)]=o,a}};const C$5="data:image/png;base64,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",v$3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFEAAABPCAYAAACTUyndAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3FpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoxNzlhMGNiOS1mYTVmLTQ5MzEtOGIwZi02Y2Y0NWFkY2Y4NzIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjU5NzgwNzQxNDVEMTFFODg5ODc5M0FBN0Q3OUZCRUYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjU5NzgwNzMxNDVEMTFFODg5ODc5M0FBN0Q3OUZCRUYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE5MWIyZjEyLWI3YjgtYTY0Zi05NDYyLTZhMTNmZDM0NTZhZSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxNzlhMGNiOS1mYTVmLTQ5MzEtOGIwZi02Y2Y0NWFkY2Y4NzIiLz4gPC9y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",I$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",h$3="data:image/png;base64,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",d$2="data:image/png;base64,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";var M0=W$k;function M$k(){var t=["audio/mpeg;","uHtrX","_onfade","Paiuc","1|4|0|3|2","Pzeur","dHSsR","_ended","Decoding audio data failed.","bUjvz","brsPs","playing","xmKcx","CQhdd","indexOf","spriteArray","__default","audio/flac;","pool","playEnd","YamLE","1587124pfxGXN","paused","XKczp","ePJRh","eaqJU","resumeContext","QONiw","hDiFB","_autoResume","mYTkh","aJdim","Eoulu","DhvVl","canPlayType","_sounds","zeCYy","off",'audio/mp4; codecs="ec-3"',"YiLMZ","prUIi","LhJew","CFIpb","audio/x-caf;","GET","PHSuU","gwlhy","connect","HmuXY","lnMNo","_unlocked","SEUGr","WWBhS","wZLuO","WJlRo","_errorFn","BTPMB","MwIjh","code","eUFas","WPiok","tuZvM","YTBww","dDuoa","ETvCC","5|6|0|1|2|3|4","hMNxs","_audioUnlocked","removeEventListener","hKxMx","reloadTimer","_state","match","platform","XyGhf","_node","请走定冠词2扶梯前往$1F","LcSQe","AzIcC","OlZuh","VXYOT","pnfgo","sqMPU","sprite","onfade","HDICO","QRNgn","LPAHx","oRmYZ","unloaded","canInterrupt","data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA","yoRDq","mLFiZ","error","VFODm","pkzeX","vHYHM","ChqBp","onseek","右转即将","_id","loopEnd","bind","UWPvg","GoLRB","jHsBo","endHandler","onvolume","GqRbr","nFvIW","2|8|5|4|10|9|7|3|1|6|0","readyState","ufzOj","JpLns","_startFadeInterval","suspending","oncanplaythrough","eNLPq","Uuyst","pzFvo","_autoSuspend","QcByA","ugyCi","fePup","reset","FtlGU","lYntz","onended","play","autoUnlock","dEelQ","_start","lUdaN","XMKeZ","_fadeTo","WHulH","IYgiv","QHmyu","kUffV","IcsTE","2|4|1|3|5|0","decodeAudioData","fEdUv","replace","_refreshBuffer","jxZjH","oxTMq","qeZbN","_onresume","utjTx","0|3|2|4|1","onload","5|2|0|3|1|6|4|7","hBgSL","QMVYf","ocuGA","MtAnH","userAgent","TPkOl","ejecta","rXZHa","BbuBq","audio/aac;","_interval","_codecs","4863439GvZTLx","vuSyl","location","KuNYR","destination","WFEkk","setVolume","_sprite","oaVyz","_loadListener","mute","chDzR","eyZFV","TfFHI","toString","smKFo","hEwss","autoplay","npLtw","mzznf","_preload","vfnod","_loadQueue","zyJfo","7|4|6|9|10|1|0|2|3|8|5","rblEg","_canPlayEvent","usingWebAudio","0|1|2|4|5|7|3|6","OqEms","KFAGC","_src","noteOff","15|12|17|5|3|1|6|2|10|18|13|14|16|0|7|8|11|4|9","YcpOJ","cMxDW","afOUU","split","GeVaZ","VcNUh","onerror","AQlBm","ejdXg","hefez","LlEwp","_loadFn","YuEtV","concat","isArray","EBMNd","_webAudio","test","wDyoe","abs","OYcXh","szOIe","Oeuxm","OnILS","addEventListener","NPSrg","html5PoolSize","fpUyw","FqDGe","hKJOr","CPhSp","xNCPW","zCicf","JfizX","olLuj","CsCHZ","stop","close","gZHDi","noteGrainOn","pOFxG","79788CdwLyI","bOvrO","RvbJX","preload","JkYuM","KdAru","setValueAtTime","FKdFf","start","bXbxB","MKxlF","isLoaded","HwNGt","noAudio","yhkVf","raJqA","_duration","onend","No audio support.","Vngmv",'audio/ogg; codecs="opus"',"response","wmBzt","CvBdx","createBuffer","srUCp","wwQiN","volume","stIPG","EusaH","VkiHp","uDxcS","_onload","0|6|3|4|2|5|1","2949248RTZVEU","duration","_queue","IIfzo","zfxPW","_errorListener","visibilitychange","createGainNode","_stopFade","lgEXU","AtoKq","cNUmv","init","loop","olPAg","vyiVX","onstop","vwMQY","html5","请走定冠词2电梯前往$1F","PTJiz","_counter","status","lGepk","hBqTX","IrWlx","xFqcz","XxZQc","action","IOypW","Nvwsd","audio/mp4;","wvCEy","cABer","gqGvd","VDUuL","touchstart","BEVuh","isCocoonJS","YPvpq","navigator","loaderror","now","VxVaU","tZZgj","_xhrWithCredentials","Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.","yrpYi","state","nzCoI","codecs","charCodeAt","onYHc","playRange","function","左转即将","VAiyB","GPeca","canplay","tEXjY","urcAZ","LsRky","QusEP","NWpxr","olYFZ","_playLock","vMqgb","_suspendTimer","ommlz","SfYfA","HPQLJ","Mlizx","bdZfb","459490QFZtqJ","naDjm","_panner","exvGO","_setup","OIYPr","4|3|2|0|1","oaUUT","_drain","SdpaV","pop","pHsSo","number","_unlockAudio","WUALH","appVersion","BMFxv","_onloaderror","loopStart","XSLiX","maSWV","event","Apple","yMGZL","ZOxYW","unload","XOars","msSRV","FogEu","_howls","kyKCT","MYOoG","tQFJp","_volume","xhrWithCredentials","pNOjy","_rateSeek","JLlCD","mJYxU","WEMwh","navDeviate","DTpjq","visibilityState","splice","_mobileUnloaded","WIdpu","tsrRc","toLowerCase","audio/x-flac;","mKjsO","TCOfi","GJLBU","then","npxKs","RDvKV","MoGEN","QbcJi","wxygG","min","QNIfK","visible","fade","fYMwA","nBjtY","_muted","playbackRate","hSwRf","IjoDj","end","loading","JyWHT","string","WpqmY","withCredentials","EVukU","nMPnB","vQQWT","standalone","vendor","join","vDjKE","CtOtC","7|6|4|5|0|2|3|1","autoSuspend","round","KERVN","OMfdv","pdDWh","nGAlt","touchend","WpWzx","initAudio","_rate","zamXq","setRate","dXJWk","onmute","oZicT","AzZFq","TvLOY","VKxPk","xmjyw","90185UzXmVx","catch","IZWBl","OfJsa","_on","SyWrh","nVzwJ","wbHsx","nLKUx","onrate","tFcWf","eVtBy","ended","laJlv","207GBWqVT","FNqFV","protocol","hzDDR","rYDCL","src","ZhpxD","vluVp","EIvWr","call","onloaderror","5|0|2|4|3|6|1|7","_navigator","_clearTimer","orwKO","MDDmu","dgJQS","onerror Failed loading audio file with status: ","NViTl","jQmvv","_inactiveSound","sNAQs","_onplayerror","cmQjI","jCszM","eCJdr","onpause","掉头向定冠词2右","http:","eOSyG","eiAvG","MGRNg","_onend","IxeEA","7|3|6|2|5|10|0|8|4|1|9","lBPKU","JbPYR","audio/m4a;","noteOn","xCwPp","uYThY","_clearSound","opvcm","sound","0|3|4|2|1","DpTLy","NyRyx","_onseek","mWmos","gain","ESSzV","YARMh","6|14|1|2|0|12|9|16|13|10|11|4|5|8|7|15|3","_seek","chmGw","zmmjS","cancelScheduledValues","lCQyr","jRuKv","AbPsq","IoUvL","_soundById","cHkRs","mEkrL","gZuSR","ZlyhG","_playStart","eTJFf","BWyTw","JTPPa","create","FULXb","LRJat","FLCwS","No codec support for selected audio sources.","suspendContext","AAcXM","dteGA","ugnHu","unlock","_onpause","DlXOJ","_emit","zoMHr","GYlqV","jpAuk","DtCCn","https:","_onunlock","auto","xxoiT","掉头向定冠词1左","aTaHM","UGIrr","oEhNd","IQUqU","_onrate","VBFis","LsFSN","TmGKt","zxhSs","zpAod","XKTsa","rate","_resumeAfterSuspend","bbrMC","EmsPp","JDkEQ","gjdmt","vGnYa","max","HAuQk","ppvrr","QpffU","_getSoundIds","playSprites","lVwPl","Xmmgp","UeAXK","lmGIN","tMbOl","exec","HLEUh","onplay","wUtLH","BzHrP","xZRrW",'audio/webm; codecs="vorbis"',"_scratchBuffer","PkMZY","QvuED","NykvU","poOSO","qUhxI","iyknp","EgkTz","resume","IFtuX","_html5AudioPool","ZLWcF","uPUnO","aRLNx","VGLuo","MwVyi","YCGin","shift","send","ShvpM","NMhwW","responseType","Jliip","linearRampToValueAtTime","AjZHb","hidden","oWLJf","indonesianNum2text","HhOAX","_stop","_endTimers","KdzGd","SnxtT","NUQfa","KWXrG","Pujfy","playLength","2388330NkLtcZ","slice","zjQlD","dJaxF","Fskau","svFUZ","visibleHandler","WbAGA","sampleRate","YEmBK","currentTime","once","lbIlx","floor","ceil","maBXk","rTvmO","ICaMC","zVMot","zNeXN","GJPNT","bCHOP","pause","_releaseHtml5Audio","HjzlC","push","open","bRyVw","format","shTqc","length","OeJIh","VMEgM","MLJus","CPwty","emit","cVxch","WAAWR","mQKAN","dMSqp","audio/x-m4a;","hOPrr","SaTxW","rSMYv","keys","wMWfJ","_onplay","audio/mp3;","createBufferSource","GGbIA","onunlock","Lgntj","hWxNa","isPlaying","14|8|13|10|2|11|12|16|6|15|4|7|9|1|5|3|0","click","onplayerror","TMQJR","DvrFK","BRIGw","ctx","_format","setMute","GSOZM","suspend","_loop","MSvEk","GJpEi","reload","niSyx","playIndex","mRZaH","num2text","UBtod","_pool","arraybuffer","CtDzZ","_onmute","englishNum2text","HmiBB","AhYII","canplaythrough","qExSb","createGain","ANwPl","undefined","_html5","gywqO","spriteMaxToMin","_cleanBuffer","ttLlI","TjYsw","EXfmf","bUWWF","XMQNh","FStIa","dIqwa","playerror","PFBJb","_autoplay","xnYWe","CjGEa","PMZus","pTiJs","LTDEp","_parent","KEDxL","QXSVI","DqVeJ","PCXjl","gpmLH","load","NrtvD","BXggP","rbafx","jsjPh","xEqCw","orKkp","dKPWk","EoQeg","disconnect","0|2|4|1|3","HAUTD","WSXSc","seek","bufferSource","_onvolume","SuIkj","_onstop","language","StuRn","audio/x-mp4;","COOpU","SPnpT","0|1|4|3|2","oAcql","IRAAA","eUwGx","loaded","apply","buffer","suspended","forEach","brmuC","VPiBq","muted","TziXS",'audio/ogg; codecs="vorbis"',"_setupCodecs","destroy","_paused","kkSkQ","EpuIi","dwPAb","running","请走定冠词1楼梯前往$1F","processEnglishGrammar","TMIzi","rDuYO","ieEdm","boolean","_obtainHtml5Audio","txMtD","masterGain","16JzvyIE",'audio/wav; codecs="1"',"onload Failed loading audio file with status: ","qiGPs","NhclM","chineseNum2text","TpNtS","15lbgGHS"];return(M$k=function(){return t})()}!function(t,e){for(var n=W$k,i=t();;)try{if(424911===parseInt(n(474))/1*(-parseInt(n(817))/2)+parseInt(n(653))/3+parseInt(n(846))/4+parseInt(n(824))/5*(-parseInt(n(265))/6)+-parseInt(n(991))/7+-parseInt(n(299))/8+-parseInt(n(488))/9*(-parseInt(n(372))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$k);let B$c=class{constructor(){this[W$k(311)]()}[M0(311)](){for(var t=M0,e={CsCHZ:t(540),QHmyu:function(t,e){return t!==e},hMNxs:t(738),Xmmgp:t(734)},n=e[t(259)][t(227)]("|"),i=0;;){switch(n[i++]){case"0":this[t(401)]=[];continue;case"1":this[t(250)]=10;continue;case"2":this[t(990)]={};continue;case"3":return this;case"4":this[t(217)]=!0;continue;case"5":this[t(455)]=!0;continue;case"6":this[t(320)]=1e3;continue;case"7":this[t(955)]=!0;continue;case"8":this[t(713)]=null;continue;case"9":this[t(405)]=1;continue;case"10":this[t(816)]=null;continue;case"11":this[t(278)]=!1;continue;case"12":this[t(436)]=!1;continue;case"13":this[t(500)]=e[t(963)](typeof window,e[t(891)])&&window[t(339)]?window[t(339)]:null;continue;case"14":this[t(626)]=[];continue;case"15":this[t(376)]();continue;case"16":this[t(216)]=e[t(605)];continue}break}}[M0(292)](t){var e=M0,n={PHSuU:function(t,e){return t(e)},dXJWk:function(t){return t()},OlZuh:function(t,e){return t!==e},LcSQe:function(t,e){return t>=e},UWPvg:function(t,e){return t<=e},AjZHb:function(t,e){return t<e},cVxch:function(t,e){return t<e},UGIrr:function(t,e){return t*e}};if(t=n[e(870)](parseFloat,t),this[e(713)]||n[e(467)](v$2),n[e(904)](void 0,t)&&n[e(902)](t,0)&&n[e(929)](t,1)){if(this[e(405)]=t,this[e(436)])return this;this[e(217)]&&this[e(816)][e(537)][e(271)](t,C$4[e(713)][e(663)]);for(var i=0;n[e(640)](i,this[e(401)][e(683)]);i++)if(!this[e(401)][i][e(240)])for(var r=this[e(401)][i][e(602)](),s=0;n[e(689)](s,r[e(683)]);s++){var a=this[e(401)][i][e(549)](r[s]);a&&a[e(900)]&&(a[e(900)][e(292)]=n[e(581)](a[e(405)],t))}return this}return this[e(405)]}[M0(1001)](t){for(var e=M0,n={KdzGd:e(976),NyRyx:function(t){return t()},EgkTz:function(t,e){return t<e}},i=n[e(647)][e(227)]("|"),r=0;;){switch(i[r++]){case"0":this[e(713)]||n[e(534)](v$2);continue;case"1":return this;case"2":this[e(217)]&&this[e(816)][e(537)][e(271)](t?0:this[e(405)],C$4[e(713)][e(663)]);continue;case"3":this[e(436)]=t;continue;case"4":for(var s=0;n[e(623)](s,this[e(401)][e(683)]);s++)if(!this[e(401)][s][e(240)])for(var a=this[e(401)][s][e(602)](),o=0;n[e(623)](o,a[e(683)]);o++){var c=this[e(401)][s][e(549)](a[o]);c&&c[e(900)]&&(c[e(900)][e(798)]=!!t||c[e(436)])}continue}break}}[M0(397)](){for(var t=M0,e={WEMwh:function(t,e){return t-e},PMZus:function(t,e){return t>=e},gZuSR:function(t,e){return t!==e},ChqBp:function(t){return t()}},n=e[t(411)](this[t(401)][t(683)],1);e[t(755)](n,0);n--)this[t(401)][n][t(397)]();return this[t(217)]&&this[t(713)]&&e[t(552)](void 0,this[t(713)][t(261)])&&(this[t(713)][t(261)](),this[t(713)]=null,e[t(923)](v$2)),this}[M0(349)](t){var e=M0;return(this||C$4)[e(990)][t[e(969)](/^x-/,"")]}[M0(376)](){var t=M0,e={wDyoe:t(794),brmuC:function(t,e){return t!==e},tFcWf:t(738),jRuKv:function(t,e){return t===e},hBgSL:t(357)},n=this||C$4;if(n[t(347)]=n[t(713)]&&n[t(713)][t(347)]||e[t(242)],n[t(946)](),!n[t(217)])if(e[t(796)](typeof Audio,e[t(484)]))try{e[t(546)](void 0,(new Audio)[t(942)])&&(n[t(216)]=e[t(979)])}catch(i){n[t(278)]=!0}else n[t(278)]=!0;try{(new Audio)[t(798)]&&(n[t(278)]=!0)}catch(r){}return n[t(278)]||n[t(801)](),n}[M0(801)](){for(var t=M0,e={oAcql:t(454),tEXjY:t(825),HwNGt:t(700),NViTl:t(285),RDvKV:t(800),DtCCn:t(818),QpffU:t(988),eiAvG:t(868),WSXSc:t(693),rbafx:t(525),rblEg:t(784),zyJfo:t(330),uDxcS:t(615),poOSO:t(863),eTJFf:t(420),rYDCL:t(842),opvcm:function(t,e){return t<e},VDUuL:function(t,e,n){return t(e,n)},LPAHx:function(t,e){return t!==e},Pzeur:t(738),AtoKq:function(t,e){return t!==e},OfJsa:t(353)},n=e[t(788)][t(227)]("|"),i=0;;){switch(n[i++]){case"0":var r=o[t(859)](e[t(358)])[t(969)](/^no$/,"");continue;case"1":return c[t(990)]={mp3:!(a||!r&&!o[t(859)](e[t(277)])[t(969)](/^no$/,"")),mpeg:!!r,opus:!!o[t(859)](e[t(506)])[t(969)](/^no$/,""),ogg:!!o[t(859)](e[t(426)])[t(969)](/^no$/,""),oga:!!o[t(859)](e[t(426)])[t(969)](/^no$/,""),wav:!!o[t(859)](e[t(574)])[t(969)](/^no$/,""),aac:!!o[t(859)](e[t(601)])[t(969)](/^no$/,""),caf:!!o[t(859)](e[t(518)])[t(969)](/^no$/,""),m4a:!!(o[t(859)](e[t(776)])||o[t(859)](e[t(767)])||o[t(859)](e[t(601)]))[t(969)](/^no$/,""),mp4:!!(o[t(859)](e[t(215)])||o[t(859)](e[t(213)])||o[t(859)](e[t(601)]))[t(969)](/^no$/,""),weba:!!o[t(859)](e[t(296)])[t(969)](/^no$/,""),webm:!!o[t(859)](e[t(296)])[t(969)](/^no$/,""),dolby:!!o[t(859)](e[t(620)])[t(969)](/^no$/,""),flac:!!(o[t(859)](e[t(555)])||o[t(859)](e[t(492)]))[t(969)](/^no$/,"")},c;case"2":var s=c[t(500)]&&c[t(500)][t(983)][t(897)](/OPR\/([0-6].)/g);continue;case"3":var a=s&&e[t(530)](e[t(334)](parseInt,s[0][t(227)]("/")[1],10),33);continue;case"4":try{o=e[t(912)](typeof Audio,e[t(830)])?new Audio:null}catch(l){return c}continue;case"5":if(!o||e[t(309)](typeof o[t(859)],e[t(477)]))return c;continue;case"6":var o=null;continue;case"7":var c=this||C$4;continue}break}}[M0(385)](){var t=M0,e={olLuj:t(966),KERVN:function(t,e){return t===e},hWxNa:function(t,e){return t===e},SyWrh:t(353),hKJOr:function(t,e){return t<e},eNLPq:function(t,e){return t<e},brsPs:t(335),FqDGe:t(461),bdZfb:t(708),vQQWT:function(t,e){return t<e},mRZaH:t(567),afOUU:function(t,e){return t<e}},n=this||C$4;if(!n[t(892)]&&n[t(713)]){n[t(892)]=!1,n[t(955)]=!1,n[t(416)]||e[t(457)](n[t(713)][t(661)],44100)||(n[t(416)]=!0,n[t(397)]()),n[t(616)]=n[t(713)][t(289)](1,1,22050);var i=function i(r){for(var s=t,a=e[s(258)][s(227)]("|"),o=0;;){switch(a[o++]){case"0":f[s(793)]=n[s(616)],f[s(872)](n[s(713)][s(995)]),e[s(457)](void 0,f[s(273)])?f[s(526)](0):f[s(273)](0),e[s(705)](typeof n[s(713)][s(624)],e[s(479)])&&n[s(713)][s(624)](),f[s(953)]=function(){var t=s;f[t(773)](0),n[t(892)]=!0,document[t(893)](h[t(612)],i,!0),document[t(893)](h[t(930)],i,!0),document[t(893)](h[t(961)],i,!0);for(var e=0;h[t(360)](e,n[t(401)][t(683)]);e++)n[t(401)][e][t(570)](h[t(400)])};continue;case"1":for(d=0;e[s(253)](d,n[s(401)][s(683)]);d++)if(!n[s(401)][d][s(240)])for(var c=n[s(401)][d][s(602)](),l=0;e[s(943)](l,c[s(683)]);l++){var u=n[s(401)][d][s(549)](c[l]);u&&u[s(900)]&&!u[s(900)][s(875)]&&(u[s(900)][s(875)]=!0,u[s(900)][s(764)]())}continue;case"2":var h={wUtLH:e[s(835)],GoLRB:e[s(252)],WHulH:e[s(371)],LsRky:function(t,n){return e[s(448)](t,n)},FogEu:e[s(724)]};continue;case"3":n[s(854)]();continue;case"4":for(var d=0;e[s(226)](d,n[s(250)]);d++)try{var p=new Audio;p[s(875)]=!0,n[s(676)](p)}catch(m){n[s(278)]=!0}continue;case"5":var f=n[s(713)][s(701)]();continue}break}};return document[t(248)](e[t(835)],i,!0),document[t(248)](e[t(252)],i,!0),document[t(248)](e[t(371)],i,!0),n}}[M0(814)](){var t=M0,e={KdAru:function(t,e){return t!==e},naDjm:function(t,e){return t instanceof e},gywqO:function(t,e){return t===e},VBFis:t(353)},n=this||C$4;if(n[t(626)][t(683)])return n[t(626)][t(382)]();var i=(new Audio)[t(954)]();return i&&e[t(270)](void 0,Promise)&&(e[t(373)](i,Promise)||e[t(740)](typeof i[t(424)],e[t(585)])),new Audio}[M0(676)](t){var e=M0,n=this||C$4;return t[e(875)]&&n[e(626)][e(678)](t),n}[M0(946)](){var t=M0,e={WAAWR:t(794),npLtw:t(941),zeCYy:function(t,e){return t!==e},LlEwp:function(t,e){return t<e},IYgiv:function(t,e){return t<e},DqVeJ:function(t,e){return t(e)},orKkp:function(t,e,n){return t(e,n)}},n=this;if(n[t(455)]&&n[t(713)]&&e[t(861)](void 0,n[t(713)][t(717)])&&C$4[t(217)]){for(var i=0;e[t(234)](i,n[t(401)][t(683)]);i++)if(n[t(401)][i][t(240)])for(var r=0;e[t(962)](r,n[t(401)][i][t(860)][t(683)]);r++)if(!n[t(401)][i][t(860)][r][t(803)])return n;return n[t(366)]&&e[t(761)](clearTimeout,n[t(366)]),n[t(366)]=e[t(770)](setTimeout,(function(){var i=t;n[i(455)]&&(n[i(366)]=null,n[i(347)]=e[i(208)],n[i(713)][i(717)]()[i(424)]((function(){var t=i;n[t(347)]=e[t(690)],n[t(592)]&&(delete n[t(592)],n[t(854)]())})))}),3e4),n}}[M0(854)](){var t=M0,e={ufzOj:t(807),FULXb:function(t,e){return t<e},rDuYO:t(624),ANwPl:function(t,e){return t!==e},NWpxr:function(t,e){return t===e},EIvWr:function(t,e){return t(e)},cNUmv:t(794),ePJRh:function(t,e){return t!==e},smKFo:t(941)},n=this;if(n[t(713)]&&e[t(737)](void 0,n[t(713)][t(624)])&&C$4[t(217)])return e[t(362)](n[t(347)],e[t(938)])&&n[t(366)]?(e[t(496)](clearTimeout,n[t(366)]),n[t(366)]=null):e[t(362)](n[t(347)],e[t(310)])||e[t(849)](n[t(713)][t(347)],e[t(938)])?(n[t(713)][t(624)]()[t(424)]((function(){var i=t;n[i(347)]=e[i(938)];for(var r=0;e[i(559)](r,n[i(401)][i(683)]);r++)n[i(401)][r][i(570)](e[i(811)])})),n[t(366)]&&(e[t(496)](clearTimeout,n[t(366)]),n[t(366)]=null)):e[t(362)](n[t(347)],e[t(1006)])&&(n[t(592)]=!0),n}},n$5;var C$4=new B$c;function v$2(){var t=M0,e={tQFJp:t(298),ZOxYW:function(t,e){return t!==e},JfizX:t(738),dMSqp:function(t,e){return t===e},prUIi:function(t,e,n){return t(e,n)},nzCoI:function(t,e){return t&&e},OIYPr:function(t,e){return t<e}};if(C$4[t(217)])for(var n=e[t(404)][t(227)]("|"),i=0;;){switch(n[i++]){case"0":try{e[t(396)](e[t(257)],typeof AudioContext)?C$4[t(713)]=new AudioContext:e[t(396)](e[t(257)],typeof webkitAudioContext)?C$4[t(713)]=new webkitAudioContext:C$4[t(217)]=!1}catch(c){C$4[t(217)]=!1}continue;case"1":C$4[t(217)]&&(C$4[t(816)]=e[t(692)](void 0,C$4[t(713)][t(736)])?C$4[t(713)][t(306)]():C$4[t(713)][t(736)](),C$4[t(816)][t(537)][t(271)](C$4[t(436)]?0:1,C$4[t(713)][t(663)]),C$4[t(816)][t(872)](C$4[t(713)][t(995)])),C$4[t(376)]();continue;case"2":var r=a?e[t(865)](parseInt,a[1],10):null;continue;case"3":var s=/iP(hone|od|ad)/[t(241)](C$4[t(500)]&&C$4[t(500)][t(898)]);continue;case"4":var a=C$4[t(500)]&&C$4[t(500)][t(387)][t(897)](/OS (\d+)_(\d+)_?(\d+)?/);continue;case"5":if(e[t(348)](s,r)&&e[t(377)](r,9)){var o=/safari/[t(241)](C$4[t(500)]&&C$4[t(500)][t(983)][t(419)]());(C$4[t(500)]&&C$4[t(500)][t(449)]&&!o||C$4[t(500)]&&!C$4[t(500)][t(449)]&&!o)&&(C$4[t(217)]=!1)}continue;case"6":C$4[t(713)]||(C$4[t(217)]=!1);continue}break}}let I$2=class{constructor(t){this[M0(311)](t)}[M0(311)](t){var e=M0,n={fEdUv:function(t){return t()},ugnHu:function(t,e){return t!==e},GJLBU:e(443),uHtrX:e(813),WbAGA:function(t,e){return t!==e},maBXk:e(914),urcAZ:function(t,e){return t!==e},CPwty:e(954)},i=this;return C$4[e(713)]||n[e(968)](v$2),i[e(752)]=t[e(207)]||!1,i[e(714)]=n[e(566)](n[e(423)],typeof t[e(681)])?t[e(681)]:[t[e(681)]],i[e(739)]=t[e(317)]||!1,i[e(436)]=t[e(1001)]||!1,i[e(718)]=t[e(312)]||!1,i[e(727)]=t[e(843)]||5,i[e(210)]=n[e(566)](n[e(826)],typeof t[e(268)])||t[e(268)],i[e(464)]=t[e(591)]||1,i[e(998)]=t[e(908)]||{},i[e(221)]=n[e(660)](n[e(423)],typeof t[e(493)])?t[e(493)]:[t[e(493)]],i[e(405)]=n[e(660)](void 0,t[e(292)])?t[e(292)]:1,i[e(344)]=t[e(406)]||!1,i[e(281)]=0,i[e(896)]=n[e(668)],i[e(860)]=[],i[e(646)]={},i[e(301)]=[],i[e(364)]=!1,i[e(520)]=t[e(282)]?[{fn:t[e(282)]}]:[],i[e(827)]=t[e(909)]?[{fn:t[e(909)]}]:[],i[e(297)]=t[e(977)]?[{fn:t[e(977)]}]:[],i[e(389)]=t[e(498)]?[{fn:t[e(498)]}]:[],i[e(510)]=t[e(709)]?[{fn:t[e(709)]}]:[],i[e(568)]=t[e(514)]?[{fn:t[e(514)]}]:[],i[e(699)]=t[e(611)]?[{fn:t[e(611)]}]:[],i[e(781)]=t[e(315)]?[{fn:t[e(315)]}]:[],i[e(730)]=t[e(468)]?[{fn:t[e(468)]}]:[],i[e(779)]=t[e(933)]?[{fn:t[e(933)]}]:[],i[e(584)]=t[e(483)]?[{fn:t[e(483)]}]:[],i[e(535)]=t[e(924)]?[{fn:t[e(924)]}]:[],i[e(576)]=t[e(703)]?[{fn:t[e(703)]}]:[],i[e(974)]=[],i[e(240)]=C$4[e(217)]&&!i[e(739)],n[e(359)](void 0,C$4[e(713)])&&C$4[e(713)]&&C$4[e(955)]&&C$4[e(385)](),C$4[e(401)][e(678)](i),i[e(752)]&&i[e(301)][e(678)]({event:n[e(687)],action:function(){i[e(954)]()}}),i[e(210)]&&i[e(764)](),i}[M0(764)](){var t=M0,e={TfFHI:t(340),FtlGU:t(283),OeJIh:function(t,e){return t===e},BbuBq:t(443),svFUZ:function(t,e){return t<e},eOSyG:function(t,e){return t!==e},IIfzo:t(441),IcsTE:function(t,e){return t===e},mYTkh:t(575),RvbJX:t(516),eCJdr:function(t,e){return t(e)},kUffV:t(562)},n=null;if(C$4[t(278)])this[t(570)](e[t(1004)],null,e[t(951)]);else{e[t(684)](e[t(987)],typeof this[t(221)])&&(this[t(221)]=[this[t(221)]]);for(var i=0;e[t(658)](i,this[t(221)][t(683)]);i++){var r,s;if(this[t(714)]&&this[t(714)][i])r=this[t(714)][i];else{if(e[t(517)](e[t(987)],typeof(s=this[t(221)][i])))continue;(r=/^data:audio\/([^;,]+);/i[t(609)](s))||(r=/\.([^.]+)$/[t(609)](s[t(227)]("?",1)[0])),r&&(r=r[1][t(419)]())}if(r&&C$4[t(349)](r)){n=this[t(221)][i];break}}if(n)return this[t(221)]=n,this[t(896)]=e[t(302)],e[t(965)](e[t(855)],window[t(993)][t(490)])&&e[t(684)](e[t(267)],n[t(654)](0,5))&&(this[t(739)]=!0,this[t(240)]=!1),new d$1(this),this[t(240)]&&e[t(513)](i$2,this),this;this[t(570)](e[t(1004)],null,e[t(964)])}}[M0(954)](t,e){for(var n=M0,i={IZWBl:n(223),zmmjS:function(t,e){return t/e},QcByA:function(t,e){return t+e},cmQjI:n(954),zfxPW:function(t,e){return t>=e},hSwRf:function(t,e){return t===e},rTvmO:n(807),QXSVI:function(t){return t()},WpWzx:n(624),xmKcx:n(916),vwMQY:function(t){return t()},QMVYf:function(t,e){return t===e},wmBzt:n(384),HPQLJ:n(443),PkMZY:function(t,e){return t===e},sNAQs:n(791),gqGvd:function(t,e){return t===e},LhJew:n(841),jHsBo:function(t,e){return t<e},jxZjH:function(t,e){return t===e},bUjvz:function(t,e){return t&&e},ETvCC:function(t,e){return t!==e},dwPAb:function(t,e){return t-e},nGAlt:function(t,e){return t/e},lbIlx:function(t,e){return t/e},OYcXh:function(t,e){return t*e},TziXS:function(t){return t()},rXZHa:function(t,e){return t/e},qiGPs:function(t,e,n){return t(e,n)},HDICO:function(t,e,n){return t(e,n)},EoQeg:n(750),yoRDq:n(345),JbPYR:n(486),EBMNd:function(t,e){return t*e},LTDEp:function(t,e){return t instanceof e},KuNYR:n(353),pdDWh:function(t,e){return t/e},xxoiT:function(t,e){return t>e}},r=i[n(476)][n(227)]("|"),s=0;;){switch(r[s++]){case"0":var a=i[n(543)](i[n(947)](A[n(998)][t][0],A[n(998)][t][1]),1e3);continue;case"1":if(!o)return null;continue;case"2":if(x&&!o[n(803)])return e||A[n(212)](i[n(511)]),o[n(926)];continue;case"3":var o=x?A[n(549)](x):A[n(508)]();continue;case"4":if(!i[n(303)](M,a)){var c=o[n(900)];if(A[n(240)]){var l=function(){var t=n,i={NrtvD:S[t(590)]};A[t(364)]=!1,S[t(753)](g),A[t(970)](o);var r=o[t(436)]||A[t(436)]?0:o[t(405)];c[t(537)][t(271)](r,C$4[t(713)][t(663)]),o[t(554)]=C$4[t(713)][t(663)],S[t(447)](void 0,c[t(778)][t(273)])?o[t(718)]?c[t(778)][t(263)](0,M,86400):c[t(778)][t(263)](0,M,y):o[t(718)]?c[t(778)][t(273)](0,M,86400):c[t(778)][t(273)](0,M,y),S[t(586)](v,S[t(939)](1,0))&&(A[t(646)][o[t(926)]]=S[t(695)](setTimeout,A[t(832)][t(928)](A,o),v)),e||S[t(249)](setTimeout,(function(){var e=t;A[e(570)](i[e(765)],o[e(926)]),A[e(212)]()}),0)};i[n(438)](i[n(669)],C$4[n(347)])?i[n(760)](l):(A[n(364)]=!0,A[n(664)](i[n(462)],l),A[n(501)](o[n(926)]))}else{var u=function(){var i=n,r={GSOZM:S[i(590)],jpAuk:S[i(648)]};c[i(663)]=M,c[i(798)]=o[i(436)]||A[i(436)]||C$4[i(436)]||c[i(798)],c[i(292)]=S[i(247)](o[i(405)],C$4[i(292)]()),c[i(437)]=o[i(464)];try{var s=c[i(954)]();if(s&&S[i(821)](void 0,Promise)&&(S[i(828)](s,Promise)||S[i(447)](S[i(363)],typeof s[i(424)]))?(A[i(364)]=!0,S[i(753)](g),s[i(424)]((function(){var t=i;A[t(364)]=!1,c[t(875)]=!0,e||(A[t(570)](r[t(716)],o[t(926)]),A[t(212)]())}))[i(475)]((function(){var t=i;A[t(364)]=!1,A[t(570)](S[t(224)],o[t(926)],S[t(981)]),o[t(832)]=!0,o[t(803)]=!0}))):e||(A[i(364)]=!1,S[i(753)](g),A[i(570)](S[i(590)],o[i(926)]),A[i(212)]()),c[i(437)]=o[i(464)],c[i(847)])return void A[i(570)](S[i(224)],o[i(926)],S[i(981)]);S[i(586)](S[i(291)],t)||o[i(718)]?A[i(646)][o[i(926)]]=S[i(695)](setTimeout,A[i(832)][i(928)](A,o),v):(A[i(646)][o[i(926)]]=function(){var t=i;A[t(832)](o),c[t(893)](r[t(573)],A[t(646)][o[t(926)]],!1)},c[i(248)](S[i(648)],A[i(646)][o[i(926)]],!1))}catch(a){A[i(570)](S[i(224)],o[i(926)],a)}};i[n(438)](i[n(837)],c[n(493)])&&(c[n(493)]=A[n(221)],c[n(764)]());var h=window&&window[n(985)]||!c[n(937)]&&C$4[n(500)][n(337)];i[n(303)](c[n(937)],3)||h?i[n(316)](u):(A[n(364)]=!0,c[n(248)](C$4[n(216)],(function t(){var e=n;S[e(753)](u),c[e(893)](C$4[e(216)],t,!1)}),!1),A[n(501)](o[n(926)]))}return o[n(926)]}continue;case"5":if(i[n(980)](i[n(287)],typeof t))x=t,t=null;else{if(i[n(438)](i[n(369)],typeof t)&&i[n(617)](i[n(509)],A[n(896)])&&!A[n(998)][t])return null;if(i[n(333)](void 0,t)&&(t=i[n(866)],!A[n(364)])){for(var d=0,p=0;i[n(931)](p,A[n(860)][n(683)]);p++)A[n(860)][p][n(803)]&&!A[n(860)][p][n(832)]&&(d++,x=A[n(860)][p][n(926)]);i[n(971)](1,d)?t=null:x=null}}continue;case"6":if(i[n(834)](x,!t)&&(t=o[n(998)]||i[n(866)]),i[n(889)](i[n(509)],A[n(896)])){o[n(998)]=t,o[n(832)]=!1;var f=o[n(926)];return A[n(301)][n(678)]({event:i[n(511)],action:function(){A[n(954)](f)}}),f}continue;case"7":var m=!(!o[n(718)]&&!A[n(998)][t][2]);continue;case"8":o[n(998)]=t,o[n(832)]=!1;continue;case"9":A[n(832)](o);continue;case"10":A[n(240)]&&C$4[n(854)]();continue;case"11":var g=function(){var t=n;o[t(803)]=!1,o[t(541)]=M,o[t(957)]=b,o[t(645)]=a,o[t(718)]=m};continue;case"12":var A=this;continue;case"13":var y=Math[n(598)](0,i[n(806)](i[n(460)](i[n(947)](A[n(998)][t][0],A[n(998)][t][1]),1e3),M));continue;case"14":var v=i[n(665)](i[n(244)](1e3,y),Math[n(243)](o[n(464)]));continue;case"15":var S={XKTsa:i[n(511)],xnYWe:function(t){return i[n(799)](t)},nMPnB:function(t,e){return i[n(980)](t,e)},LsFSN:function(t,e){return i[n(889)](t,e)},JpLns:function(t,e){return i[n(986)](t,e)},SaTxW:function(t,e,r){return i[n(820)](t,e,r)},NPSrg:function(t,e,r){return i[n(910)](t,e,r)},YcpOJ:i[n(772)],ocuGA:i[n(917)],SnxtT:i[n(524)],OnILS:function(t,e){return i[n(239)](t,e)},NhclM:function(t,e){return i[n(889)](t,e)},Paiuc:function(t,e){return i[n(757)](t,e)},olYFZ:i[n(994)],wwQiN:i[n(866)]};continue;case"16":var b=i[n(459)](A[n(998)][t][0],1e3);continue;case"17":var x=null;continue;case"18":var M=Math[n(598)](0,i[n(578)](o[n(541)],0)?o[n(541)]:i[n(460)](A[n(998)][t][0],1e3));continue}break}}[M0(675)](t){var e=M0,n={bUWWF:function(t,e){return t!==e},MoGEN:e(791),bXbxB:e(675),YCGin:function(t,e){return t<e},vluVp:function(t,e){return t===e},IrWlx:function(t,e){return t(e)},ppvrr:function(t,e){return t/e}},i=this;if(n[e(746)](n[e(427)],i[e(896)])||i[e(364)])return i[e(301)][e(678)]({event:n[e(274)],action:function(){i[e(675)](t)}}),i;for(var r=i[e(602)](t),s=0;n[e(632)](s,r[e(683)]);s++){i[e(501)](r[s]);var a=i[e(549)](r[s]);if(a&&!a[e(803)]&&(a[e(541)]=i[e(777)](r[s]),a[e(408)]=0,a[e(803)]=!0,i[e(307)](r[s]),a[e(900)]))if(i[e(240)]){if(!a[e(900)][e(778)])continue;n[e(495)](void 0,a[e(900)][e(778)][e(260)])?a[e(900)][e(778)][e(222)](0):a[e(900)][e(778)][e(260)](0),i[e(742)](a[e(900)])}else n[e(324)](isNaN,a[e(900)][e(300)])&&n[e(746)](a[e(900)][e(300)],n[e(600)](1,0))||a[e(900)][e(675)]();arguments[1]||i[e(570)](n[e(274)],a?a[e(926)]:null)}return i}[M0(260)](t,e){var n=M0,i={wbHsx:function(t,e){return t!==e},IQUqU:n(791),HLEUh:n(260),oxTMq:function(t,e){return t<e},VPiBq:function(t,e){return t===e},oaUUT:function(t,e){return t(e)},oWLJf:function(t,e){return t/e},wxygG:function(t,e){return t/e}},r=this;if(i[n(481)](i[n(583)],r[n(896)])||r[n(364)])return r[n(301)][n(678)]({event:i[n(610)],action:function(){r[n(260)](t)}}),r;for(var s=r[n(602)](t),a=0;i[n(972)](a,s[n(683)]);a++){r[n(501)](s[a]);var o=r[n(549)](s[a]);o&&(o[n(541)]=o[n(957)]||0,o[n(408)]=0,o[n(803)]=!0,o[n(832)]=!0,r[n(307)](s[a]),o[n(900)]&&(r[n(240)]?o[n(900)][n(778)]&&(i[n(797)](void 0,o[n(900)][n(778)][n(260)])?o[n(900)][n(778)][n(222)](0):o[n(900)][n(778)][n(260)](0),r[n(742)](o[n(900)])):i[n(379)](isNaN,o[n(900)][n(300)])&&i[n(481)](o[n(900)][n(300)],i[n(642)](1,0))||(o[n(900)][n(663)]=o[n(957)]||0,o[n(900)][n(675)](),i[n(797)](o[n(900)][n(300)],i[n(429)](1,0))&&r[n(529)](o[n(900)]))),e||r[n(570)](i[n(610)],o[n(926)]))}return r}[M0(1001)](t,e){for(var n=M0,i={KFAGC:n(829),uYThY:function(t,e){return t===e},IjoDj:function(t,e){return t!==e},aRLNx:n(813),hzDDR:function(t,e){return t<e},mKjsO:n(1001),yMGZL:n(791)},r=i[n(220)][n(227)]("|"),s=0;;){switch(r[s++]){case"0":if(i[n(528)](void 0,e)){if(i[n(439)](i[n(629)],typeof t))return a[n(436)];a[n(436)]=t}continue;case"1":var a=this;continue;case"2":return a;case"3":for(var o=a[n(602)](e),c=0;i[n(491)](c,o[n(683)]);c++){var l=a[n(549)](o[c]);l&&(l[n(436)]=t,l[n(989)]&&a[n(307)](l[n(926)]),a[n(240)]&&l[n(900)]?l[n(900)][n(537)][n(271)](t?0:l[n(405)],C$4[n(713)][n(663)]):l[n(900)]&&(l[n(900)][n(798)]=!!C$4[n(436)]||t),a[n(570)](i[n(421)],l[n(926)]))}continue;case"4":if(i[n(439)](i[n(395)],a[n(896)])||a[n(364)])return a[n(301)][n(678)]({event:i[n(421)],action:function(){a[n(1001)](t,e)}}),a;continue}break}}[M0(292)](){for(var t=M0,e={TPkOl:t(936),DlXOJ:function(t,e){return t===e},TMQJR:function(t,e){return t!==e},DhvVl:t(791),PCXjl:t(292),BRIGw:function(t,e){return t<e},eaqJU:function(t,e){return t*e},dEelQ:function(t,e){return t===e},XyGhf:function(t,e){return t>=e},gwlhy:function(t,e,n){return t(e,n)},MtAnH:function(t,e){return t(e)},dgJQS:function(t,e,n){return t(e,n)},CtOtC:function(t,e){return t!==e},EpuIi:function(t,e){return t<=e}},n=e[t(984)][t(227)]("|"),i=0;;){switch(n[i++]){case"0":return s;case"1":e[t(569)](void 0,c)&&(s[t(405)]=r),c=s[t(602)](c);continue;case"2":var r;continue;case"3":if(e[t(710)](e[t(858)],s[t(896)])||s[t(364)])return s[t(301)][t(678)]({event:e[t(762)],action:function(){var e=t;s[e(292)][e(792)](s,l)}}),s;continue;case"4":var s=this;continue;case"5":var a;continue;case"6":for(var o=0;e[t(712)](o,c[t(683)]);o++)(a=s[t(549)](c[o]))&&(a[t(405)]=r,l[2]||s[t(307)](c[o]),s[t(240)]&&a[t(900)]&&!a[t(436)]?a[t(900)][t(537)][t(271)](r,C$4[t(713)][t(663)]):a[t(900)]&&!a[t(436)]&&(a[t(900)][t(292)]=e[t(850)](r,C$4[t(292)]())),s[t(570)](e[t(762)],a[t(926)]));continue;case"7":if(e[t(956)](1,l[t(683)])||e[t(956)](2,l[t(683)])&&e[t(956)](void 0,l[1])?e[t(899)](s[t(602)]()[t(839)](l[0]),0)?c=e[t(871)](parseInt,l[0],10):r=e[t(982)](parseFloat,l[0]):e[t(899)](l[t(683)],2)&&(r=e[t(982)](parseFloat,l[0]),c=e[t(504)](parseInt,l[1],10)),!(e[t(453)](void 0,r)&&e[t(899)](r,0)&&e[t(805)](r,1)))return(a=c?s[t(549)](c):s[t(860)][0])?a[t(405)]:0;continue;case"8":var c;continue;case"9":if(e[t(956)](0,l[t(683)]))return s[t(405)];continue;case"10":var l=arguments;continue}break}}[M0(433)](t,e,n,i){for(var r=M0,s={oEhNd:r(774),BXggP:function(t,e){return t<e},VkiHp:function(t,e){return t+e},KEDxL:function(t,e){return t/e},zpAod:function(t,e){return t===e},CjGEa:function(t,e){return t!==e},eVtBy:r(791),TCOfi:r(433),ZLWcF:function(t,e){return t(e)},VKxPk:function(t,e){return t(e)}},a=s[r(582)][r(227)]("|"),o=0;;){switch(a[o++]){case"0":var c=this;continue;case"1":for(var l=c[r(602)](i),u=0;s[r(766)](u,l[r(683)]);u++){var h=c[r(549)](l[u]);if(h){if(i||c[r(307)](l[u]),c[r(240)]&&!h[r(436)]){var d=C$4[r(713)][r(663)],p=s[r(295)](d,s[r(759)](n,1e3));h[r(405)]=t,h[r(900)][r(537)][r(271)](t,d),h[r(900)][r(537)][r(639)](e,p)}c[r(940)](h,t,e,n,l[u],s[r(589)](void 0,i))}}continue;case"2":if(s[r(754)](s[r(485)],c[r(896)])||c[r(364)])return c[r(301)][r(678)]({event:s[r(422)],action:function(){c[r(433)](t,e,n,i)}}),c;continue;case"3":return c;case"4":t=s[r(627)](parseFloat,t),e=s[r(472)](parseFloat,e),n=s[r(627)](parseFloat,n),c[r(292)](t,i);continue}break}}[M0(940)](t,e,n,i,r,s){for(var a=M0,o={dDuoa:a(218),uPUnO:function(t,e){return t/e},vGnYa:function(t,e){return t-e},iyknp:function(t,e){return t*e},hOPrr:function(t,e){return t*e},HmuXY:function(t,e){return t<e},tsrRc:function(t,e){return t<=e},OMfdv:function(t,e){return t>e},tuZvM:function(t,e){return t>=e},gjdmt:function(t,e){return t(e)},jQmvv:a(433),pOFxG:function(t,e){return t-e},WFEkk:function(t,e){return t/e},oZicT:function(t,e,n){return t(e,n)}},c=o[a(888)][a(227)]("|"),l=0;;){switch(c[l++]){case"0":var u={wMWfJ:function(t,e){return o[a(628)](t,e)},shTqc:function(t,e){return o[a(597)](t,e)},DvrFK:function(t,e){return o[a(622)](t,e)},xEqCw:function(t,e){return o[a(694)](t,e)},ugyCi:function(t,e){return o[a(873)](t,e)},mWmos:function(t,e){return o[a(418)](t,e)},GJpEi:function(t,e){return o[a(458)](t,e)},hKxMx:function(t,e){return o[a(886)](t,e)},dJaxF:function(t,e){return o[a(596)](t,e)},IOypW:o[a(507)]};continue;case"1":var h=this;continue;case"2":var d=e;continue;case"3":var p=Date[a(341)]();continue;case"4":var f=o[a(264)](n,e);continue;case"5":var m=Math[a(243)](o[a(996)](f,.01));continue;case"6":t[a(960)]=n,t[a(989)]=o[a(469)](setInterval,(function(){var r=a,o=u[r(698)](u[r(682)](Date[r(341)](),p),i);p=Date[r(341)](),d+=u[r(711)](f,o),d=Math[r(598)](0,d),d=Math[r(430)](1,d),d=u[r(698)](Math[r(456)](u[r(769)](100,d)),100),h[r(240)]?t[r(405)]=d:h[r(292)](d,t[r(926)],!0),s&&(h[r(405)]=d),(u[r(948)](n,e)&&u[r(536)](d,n)||u[r(720)](n,e)&&u[r(894)](d,n))&&(u[r(656)](clearInterval,t[r(989)]),t[r(989)]=null,t[r(960)]=null,h[r(292)](n,t[r(926)]),h[r(570)](u[r(328)],t[r(926)]))}),g);continue;case"7":var g=Math[a(598)](4,o[a(458)](m,0)?o[a(996)](i,m):i);continue}break}}[M0(307)](t){var e=M0,n={YPvpq:function(t,e){return t(e)},raJqA:e(433)},i=this[e(549)](t);return i&&i[e(989)]&&(this[e(240)]&&i[e(900)][e(537)][e(544)](C$4[e(713)][e(663)]),n[e(338)](clearInterval,i[e(989)]),i[e(989)]=null,this[e(292)](i[e(960)],t),i[e(960)]=null,this[e(570)](n[e(280)],t)),this}[M0(312)](){for(var t=M0,e={MLJus:t(499),VFODm:function(t,e){return t<e},lUdaN:function(t,e){return t===e},yrpYi:function(t,e){return t===e},SEUGr:function(t,e){return t!==e},pNOjy:t(813),GGbIA:function(t,e,n){return t(e,n)},MKxlF:function(t,e,n){return t(e,n)}},n=e[t(686)][t(227)]("|"),i=0;;){switch(n[i++]){case"0":var r;continue;case"1":for(var s=this[t(602)](r),a=0;e[t(920)](a,s[t(683)]);a++)(o=this[t(549)](s[a]))&&(o[t(718)]=l,this[t(240)]&&o[t(900)]&&o[t(900)][t(778)]&&(o[t(900)][t(778)][t(312)]=l,l&&(o[t(900)][t(778)][t(390)]=o[t(957)]||0,o[t(900)][t(778)][t(927)]=o[t(645)])));continue;case"2":var o;continue;case"3":if(e[t(958)](0,c[t(683)]))return this[t(718)];continue;case"4":var c=arguments;continue;case"5":var l;continue;case"6":if(e[t(346)](1,c[t(683)])){if(e[t(876)](e[t(407)],typeof c[0]))return!!(o=this[t(549)](e[t(702)](parseInt,c[0],10)))&&o[t(718)];l=c[0],this[t(718)]=l}else e[t(958)](2,c[t(683)])&&(l=c[0],r=e[t(275)](parseInt,c[1],10));continue;case"7":return this}break}}[M0(591)](){for(var t=M0,e={jCszM:t(214),dIqwa:function(t,e){return t!==e},BTPMB:t(384),eUwGx:function(t,e){return t===e},CFIpb:function(t,e){return t>=e},SuIkj:function(t,e,n){return t(e,n)},txMtD:function(t,e){return t(e)},niSyx:function(t,e){return t===e},oaVyz:function(t,e){return t!==e},fePup:t(791),mEkrL:t(591),jsjPh:function(t,e){return t===e},XSLiX:function(t,e){return t<e},TpNtS:function(t,e){return t/e},FStIa:function(t,e){return t*e},BWyTw:function(t,e){return t-e},GqRbr:function(t,e){return t+e},lmGIN:function(t,e,n){return t(e,n)}},n=e[t(512)][t(227)]("|"),i=0;;){switch(n[i++]){case"0":if(e[t(749)](e[t(881)],typeof a))return(s=u[t(549)](r))?s[t(464)]:u[t(464)];continue;case"1":e[t(790)](0,h[t(683)])?r=u[t(860)][0][t(926)]:e[t(790)](1,h[t(683)])?e[t(867)](u[t(602)]()[t(839)](h[0]),0)?r=e[t(780)](parseInt,h[0],10):a=e[t(815)](parseFloat,h[0]):e[t(722)](2,h[t(683)])&&(a=e[t(815)](parseFloat,h[0]),r=e[t(780)](parseInt,h[1],10));continue;case"2":if(e[t(999)](e[t(949)],u[t(896)])||u[t(364)])return u[t(301)][t(678)]({event:e[t(551)],action:function(){var e=t;u[e(591)][e(792)](u,h)}}),u;continue;case"3":e[t(768)](void 0,r)&&(u[t(464)]=a),r=u[t(602)](r);continue;case"4":var r;continue;case"5":return u;case"6":var s;continue;case"7":var a;continue;case"8":for(var o=0;e[t(391)](o,r[t(683)]);o++)if(s=u[t(549)](r[o])){u[t(836)](r[o])&&(s[t(408)]=u[t(777)](r[o]),s[t(554)]=u[t(240)]?C$4[t(713)][t(663)]:s[t(554)]),s[t(464)]=a,u[t(240)]&&s[t(900)]&&s[t(900)][t(778)]?s[t(900)][t(778)][t(437)][t(271)](a,C$4[t(713)][t(663)]):s[t(900)]&&(s[t(900)][t(437)]=a);var c=u[t(777)](r[o]),l=e[t(823)](e[t(748)](1e3,e[t(556)](e[t(823)](e[t(934)](u[t(998)][s[t(998)]][0],u[t(998)][s[t(998)]][1]),1e3),c)),Math[t(243)](s[t(464)]));!u[t(646)][r[o]]&&s[t(803)]||(u[t(501)](r[o]),u[t(646)][r[o]]=e[t(607)](setTimeout,u[t(832)][t(928)](u,s),l)),u[t(570)](e[t(551)],s[t(926)])}continue;case"9":var u=this;continue;case"10":var h=arguments;continue}break}}[M0(777)](){for(var t=M0,e={BMFxv:t(522),AAcXM:function(t,e){return t===e},WJlRo:t(787),ejdXg:function(t,e){return t===e},mLFiZ:t(384),TvLOY:function(t,e){return t>=e},QNIfK:function(t,e){return t-e},mQKAN:function(t,e){return t+e},NMhwW:function(t,e){return t*e},PFBJb:function(t,e,n){return t(e,n)},nFvIW:function(t){return t()},cMxDW:function(t,e){return t(e)},qExSb:t(777),XMQNh:function(t,e,n){return t(e,n)},MwIjh:function(t,e){return t!==e},chmGw:t(791),COOpU:function(t,e){return t===e}},n=e[t(388)][t(227)]("|"),i=0;;){switch(n[i++]){case"0":if(e[t(564)](void 0,f))return u;continue;case"1":if(d)for(var r=e[t(879)][t(227)]("|"),s=0;;){switch(r[s++]){case"0":if(!e[t(232)](e[t(918)],typeof h)||!e[t(471)](h,0)){if(u[t(240)]){var a=u[t(836)](f)?e[t(431)](C$4[t(713)][t(663)],d[t(554)]):0,o=d[t(408)]?e[t(431)](d[t(408)],d[t(541)]):0;return e[t(691)](d[t(541)],e[t(691)](o,e[t(636)](a,Math[t(243)](d[t(464)]))))}return d[t(900)][t(663)]}continue;case"1":var c=u[t(836)](f);continue;case"2":c&&!u[t(240)]?e[t(751)](setTimeout,(function e(){var n=t;u[n(364)]?m[n(288)](setTimeout,e,0):m[n(386)](l)}),0):e[t(935)](l);continue;case"3":var l=function(){var e=t;u[e(570)](m[e(651)],f),c&&u[e(954)](f,!0)};continue;case"4":c&&u[t(675)](f,!0),d[t(541)]=h,d[t(832)]=!1,u[t(501)](f),u[t(240)]||!d[t(900)]||e[t(225)](isNaN,d[t(900)][t(300)])||(d[t(900)][t(663)]=h);continue}break}continue;case"2":var u=this;continue;case"3":var h;continue;case"4":var d=u[t(549)](f);continue;case"5":var p=arguments;continue;case"6":var f;continue;case"7":var m={Pujfy:e[t(735)],CvBdx:function(n,i,r){return e[t(747)](n,i,r)},WUALH:function(n){return e[t(935)](n)}};continue;case"8":if(e[t(882)](e[t(542)],u[t(896)])||u[t(364)])return u[t(301)][t(678)]({event:e[t(735)],action:function(){var e=t;u[e(777)][e(792)](u,p)}}),u;continue;case"9":return u;case"10":e[t(785)](0,p[t(683)])?f=u[t(860)][0][t(926)]:e[t(564)](1,p[t(683)])?e[t(471)](u[t(602)]()[t(839)](p[0]),0)?f=e[t(751)](parseInt,p[0],10):u[t(860)][t(683)]&&(f=u[t(860)][0][t(926)],h=e[t(225)](parseFloat,p[0])):e[t(564)](2,p[t(683)])&&(h=e[t(225)](parseFloat,p[0]),f=e[t(751)](parseInt,p[1],10));continue}break}}[M0(836)](t){var e=M0,n={bCHOP:function(t,e){return t===e},fYMwA:e(384),bbrMC:function(t,e){return t<e}};if(n[e(674)](n[e(434)],typeof t)){var i=this[e(549)](t);return!!i&&!i[e(803)]}for(var r=0;n[e(593)](r,this[e(860)][e(683)]);r++)if(!this[e(860)][r][e(803)])return!0;return!1}[M0(300)](t){var e=M0,n=this[e(281)],i=this[e(549)](t);return i&&(n={IoUvL:function(t,e){return t/e}}[e(548)](this[e(998)][i[e(998)]][1],1e3)),n}[M0(347)](){return this[M0(896)]}[M0(397)](){for(var t=M0,e={hEwss:function(t,e){return t<e},TMIzi:t(919),VAiyB:function(t,e){return t>=e},Oeuxm:function(t,e){return t<e},ShvpM:function(t,e){return t===e},cHkRs:function(t,e){return t&&e},lGepk:t(914)},n=this,i=n[t(860)],r=0;e[t(1007)](r,i[t(683)]);r++)i[r][t(803)]||n[t(260)](i[r][t(926)]),n[t(240)]||(n[t(529)](i[r][t(900)]),i[r][t(900)][t(893)](e[t(810)],i[r][t(880)],!1),i[r][t(900)][t(893)](C$4[t(216)],i[r][t(235)],!1),C$4[t(676)](i[r][t(900)])),delete i[r][t(900)],n[t(501)](i[r][t(926)]);var s=C$4[t(401)][t(839)](n);e[t(355)](s,0)&&C$4[t(401)][t(415)](s,1);var a=!0;for(r=0;e[t(246)](r,C$4[t(401)][t(683)]);r++)if(e[t(635)](C$4[t(401)][r][t(221)],n[t(221)])||e[t(355)](n[t(221)][t(839)](C$4[t(401)][r][t(221)]),0)){a=!1;break}return e[t(550)](s$4,a)&&delete s$4[n[t(221)]],C$4[t(278)]=!1,n[t(896)]=e[t(322)],n[t(860)]=[],n=null,null}on(t,e,n,i){var r=M0,s={QvuED:function(t,e){return t+e},VxVaU:r(478),Nvwsd:function(t,e){return t===e},aJdim:r(353)},a=this[s[r(618)](s[r(342)],t)];return s[r(329)](s[r(856)],typeof e)&&a[r(678)](i?{id:n,fn:e,once:i}:{id:n,fn:e}),this}[M0(862)](t,e,n){var i=M0,r={nLKUx:function(t,e){return t+e},TjYsw:i(478),srUCp:function(t,e){return t===e},stIPG:i(384),dteGA:function(t,e){return t||e},AzZFq:function(t,e){return t<e},YiLMZ:function(t,e){return t&&e},ESSzV:function(t,e){return t+e},DpTLy:function(t,e){return t===e}},s=this[r[i(482)](r[i(744)],t)],a=0;if(r[i(290)](r[i(293)],typeof e)&&(n=e,e=null),r[i(565)](e,n))for(a=0;r[i(470)](a,s[i(683)]);a++){var o=r[i(290)](n,s[a].id);if(r[i(290)](e,s[a].fn)&&o||r[i(864)](!e,o)){s[i(415)](a,1);break}}else if(t)this[r[i(538)](r[i(744)],t)]=[];else{var c=Object[i(697)](this);for(a=0;r[i(470)](a,c[i(683)]);a++)r[i(533)](0,c[a][i(839)](r[i(744)]))&&Array[i(238)](this[c[a]])&&(this[c[a]]=[])}return this}[M0(664)](t,e,n){return this.on(t,e,n,1),this}[M0(570)](t,e,n){for(var i=M0,r={dKPWk:function(t,e){return t+e},MSvEk:i(478),FNqFV:function(t,e){return t-e},CQhdd:function(t,e){return t>=e},zCicf:function(t,e){return t!==e},vuSyl:i(764),mzznf:function(t,e,n){return t(e,n)}},s=this[r[i(771)](r[i(719)],t)],a=r[i(489)](s[i(683)],1);r[i(838)](a,0);a--)s[a].id&&r[i(256)](s[a].id,e)&&r[i(256)](r[i(992)],t)||(r[i(209)](setTimeout,function(t){t[i(497)](this,e,n)}[i(928)](this,s[a].fn),0),s[a][i(664)]&&this[i(862)](t,s[a].fn,s[a].id));return this[i(212)](t),this}[M0(212)](t){var e=M0,n={zoMHr:function(t,e){return t>e},maSWV:function(t,e){return t===e}};if(n[e(571)](this[e(301)][e(683)],0)){var i=this[e(301)][0];n[e(392)](i[e(393)],t)&&(this[e(301)][e(633)](),this[e(212)]()),t||i[e(327)]()}return this}[M0(832)](t){for(var e=M0,n={ieEdm:e(532),bRyVw:e(440),WIdpu:e(954),UeAXK:function(t,e){return t/e},IxeEA:function(t,e){return t*e},KWXrG:function(t,e){return t-e},ICaMC:function(t,e,n){return t(e,n)},IRAAA:function(t,e){return t<e}},i=n[e(812)][e(227)]("|"),r=0;;){switch(i[r++]){case"0":var s=t[e(998)];continue;case"1":return this[e(240)]&&!o&&(t[e(803)]=!0,t[e(832)]=!0,t[e(541)]=t[e(957)]||0,t[e(408)]=0,this[e(501)](t[e(926)]),this[e(742)](t[e(900)]),C$4[e(946)]()),this[e(240)]||o||this[e(260)](t[e(926)],!0),this;case"2":if(this[e(570)](n[e(680)],t[e(926)]),!this[e(240)]&&o&&this[e(260)](t[e(926)],!0)[e(954)](t[e(926)]),this[e(240)]&&o){this[e(570)](n[e(417)],t[e(926)]),t[e(541)]=t[e(957)]||0,t[e(408)]=0,t[e(554)]=C$4[e(713)][e(663)];var a=n[e(606)](n[e(521)](1e3,n[e(650)](t[e(645)],t[e(957)])),Math[e(243)](t[e(464)]));this[e(646)][t[e(926)]]=n[e(670)](setTimeout,this[e(832)][e(928)](this,t),a)}continue;case"3":if(!this[e(240)]&&t[e(900)]&&!t[e(900)][e(847)]&&!t[e(900)][e(486)]&&n[e(789)](t[e(900)][e(663)],t[e(645)]))return n[e(670)](setTimeout,this[e(832)][e(928)](this,t),100),this;continue;case"4":var o=!(!t[e(718)]&&!this[e(998)][s][2]);continue}break}}[M0(501)](t){var e=M0,n={DTpjq:function(t,e){return t!==e},EXfmf:e(353),tMbOl:function(t,e){return t(e)},pHsSo:e(486)};if(this[e(646)][t]){if(n[e(413)](n[e(745)],typeof this[e(646)][t]))n[e(608)](clearTimeout,this[e(646)][t]);else{var i=this[e(549)](t);i&&i[e(900)]&&i[e(900)][e(893)](n[e(383)],this[e(646)][t],!1)}delete this[e(646)][t]}return this}[M0(549)](t){for(var e=M0,n={lnMNo:function(t,e){return t<e},ZlyhG:function(t,e){return t===e}},i=0;n[e(874)](i,this[e(860)][e(683)]);i++)if(n[e(553)](t,this[e(860)][i][e(926)]))return this[e(860)][i];return null}[M0(508)](){var t=M0,e={VXYOT:function(t,e){return t<e}};this[t(380)]();for(var n=0;e[t(905)](n,this[t(860)][t(683)]);n++)if(this[t(860)][n][t(832)])return this[t(860)][n][t(950)]();return new d$1(this)}[M0(380)](){var t=M0,e={HAUTD:function(t,e){return t<e},MwVyi:function(t,e){return t<e},MYOoG:function(t,e){return t-e},szOIe:function(t,e){return t>=e},JyWHT:function(t,e){return t<=e}},n=this[t(727)],i=0,r=0;if(!e[t(775)](this[t(860)][t(683)],n)){for(r=0;e[t(631)](r,this[t(860)][t(683)]);r++)this[t(860)][r][t(832)]&&i++;for(r=e[t(403)](this[t(860)][t(683)],1);e[t(245)](r,0);r--){if(e[t(442)](i,n))return;this[t(860)][r][t(832)]&&(this[t(240)]&&this[t(860)][r][t(900)]&&this[t(860)][r][t(900)][t(773)](0),this[t(860)][t(415)](r,1),i--)}}}[M0(602)](t){var e=M0,n={mJYxU:function(t,e){return t===e},YuEtV:function(t,e){return t<e}};if(n[e(410)](void 0,t)){for(var i=[],r=0;n[e(236)](r,this[e(860)][e(683)]);r++)i[e(678)](this[e(860)][r][e(926)]);return i}return[t]}[M0(970)](t){var e=M0;return t[e(900)][e(778)]=C$4[e(713)][e(701)](),t[e(900)][e(778)][e(793)]=s$4[this[e(221)]],t[e(374)]?t[e(900)][e(778)][e(872)](t[e(374)]):t[e(900)][e(778)][e(872)](t[e(900)]),t[e(900)][e(778)][e(312)]=t[e(718)],t[e(718)]&&(t[e(900)][e(778)][e(390)]=t[e(957)]||0,t[e(900)][e(778)][e(927)]=t[e(645)]||0),t[e(900)][e(778)][e(437)][e(271)](t[e(464)],C$4[e(713)][e(663)]),this}[M0(742)](t){var e=M0,n={AhYII:function(t,e){return t>=e},xmjyw:e(394)},i=C$4[e(500)]&&n[e(733)](C$4[e(500)][e(450)][e(839)](n[e(473)]),0);if(C$4[e(616)]&&t[e(778)]&&(t[e(778)][e(953)]=null,t[e(778)][e(773)](0),i))try{t[e(778)][e(793)]=C$4[e(616)]}catch(r){}return t[e(778)]=null,this}[M0(529)](t){var e=M0,n={XMKeZ:e(916)};/MSIE |Trident\//[e(241)](C$4[e(500)]&&C$4[e(500)][e(983)])||(t[e(493)]=n[e(959)])}},h$2=class extends EventDispatcher{constructor(t){for(var e=(...t)=>(super(...t),__publicField(this,_hc),this),n=M0,i={SfYfA:n(707),UBtod:function(t,e){return t<e},qeZbN:function(t,e){return t+e},GYlqV:function(t,e){return t<e},MDDmu:function(t,e){return t<e}},r=i[n(368)][n(227)]("|"),s=0;;){switch(r[s++]){case"0":return this;case"1":for(var a=void 0,o=0;i[n(726)](o,u);o++)for(var c=i[n(973)](o,1);i[n(572)](c,u);c++)i[n(503)](l[o][n(683)],l[c][n(683)])&&(a=l[o],l[o]=l[c],l[c]=a);continue;case"2":this[n(531)]=void 0;continue;case"3":this[n(741)]=l;continue;case"4":this[n(915)]=!0;continue;case"5":C$4[n(455)]=!1;continue;case"6":this[n(840)]=[];continue;case"7":this[n(895)]=void 0;continue;case"8":n$5=this;continue;case"9":var l=Object[n(697)](this[n(908)]),u=l[n(683)];continue;case"10":this[n(493)]=t[n(493)];continue;case"11":this[n(276)]=!1;continue;case"12":this[n(723)]=0;continue;case"13":this[n(908)]=t[n(908)];continue;case"14":e();continue;case"15":this[n(706)]=!1;continue;case"16":this[n(652)]=-1;continue}break}}[(_hc=M0(531),M0(659))](){var t=M0,e={hBqTX:function(t,e){return t===e},vHYHM:t(641),AzIcC:t(432)};e[t(323)](document[t(414)],e[t(922)])?n$5[t(563)]():e[t(323)](document[t(414)],e[t(903)])&&n$5[t(851)]()}[M0(563)](){var t=M0,e={TmGKt:t(794),xZRrW:function(t,e){return t(e)},yhkVf:t(941)};e[t(614)](clearTimeout,this[t(895)]),this[t(260)](),C$4[t(347)]=e[t(279)],C$4[t(713)][t(717)]()[t(424)]((function(){var n=t;C$4[n(347)]=e[n(587)]}))}[M0(851)](){var t=M0,e={GPeca:function(t,e){return t<e},vMqgb:t(624),qUhxI:t(807)};this[t(721)](),C$4[t(713)][t(624)]()[t(424)]((function(){for(var n=t,i=0;e[n(356)](i,C$4[n(401)][n(683)]);i++)C$4[n(401)][i][n(570)](e[n(365)]);C$4[n(347)]=e[n(621)]}))}[M0(721)](){var t=M0,e={CtDzZ:function(t,e){return t(e)},lVwPl:function(t,e,n){return t(e,n)}},n=this;this[t(276)]||(e[t(729)](clearTimeout,this[t(895)]),this[t(895)]=e[t(604)](setTimeout,(function(){var e=t;n[e(531)][e(764)]()}),2e3))}[M0(463)](){for(var t=M0,e={vDjKE:t(890),lBPKU:t(305),VMEgM:t(340),Lgntj:t(764),xCwPp:function(t,e){return t(e)}},n=e[t(452)][t(227)]("|"),i=0;;){switch(n[i++]){case"0":this[t(802)]();continue;case"1":document[t(248)](e[t(523)],this[t(659)]);continue;case"2":this[t(531)]=new I$2({src:this[t(493)],sprite:this[t(908)]});continue;case"3":this[t(531)].on(e[t(685)],(function(e){s[t(721)]()}));continue;case"4":this[t(531)][t(664)](e[t(704)],(function(){var e=t;r[e(673)](clearTimeout,s[e(895)]),s[e(276)]=!0,s[e(688)](r[e(594)],{})}));continue;case"5":var r={GJPNT:function(n,i){return e[t(527)](n,i)},EmsPp:e[t(704)]};continue;case"6":var s=this;continue}break}}[M0(802)](){var t=M0,e={chDzR:t(305),NUQfa:function(t,e){return t(e)}};document[t(893)](e[t(1002)],this[t(659)]),e[t(649)](clearTimeout,this[t(895)]),this[t(260)](),this[t(276)]=!1,this[t(531)]&&(this[t(531)][t(862)](),this[t(531)][t(397)](),C$4[t(397)](),C$4[t(955)]=!0,C$4[t(892)]=!1,this[t(531)]=void 0)}[M0(932)](){var t=M0,e={onYHc:function(t,e){return t>=e},OqEms:t(844)};e[t(351)](n$5[t(723)],n$5[t(652)])?(n$5[t(260)](),n$5[t(688)](e[t(219)],{}),n$5[t(915)]=!0):n$5[t(531)][t(954)](n$5[t(840)][n$5[t(723)]++])}[M0(603)](t){var e=M0,n={YARMh:function(t,e){return t!==e},QbcJi:e(440)};n[e(539)](t[e(683)],0)&&this[e(276)]&&(this[e(840)]=this[e(840)][e(237)](t),this[e(652)]=this[e(840)][e(683)],this[e(706)]||(this[e(723)]=0,this[e(531)].on(n[e(428)],this[e(932)]),this[e(531)][e(954)](this[e(840)][this[e(723)]++])),this[e(706)]=!0)}[M0(260)](){var t=M0,e={zamXq:t(440)};this[t(531)]&&(this[t(531)][t(260)](),this[t(531)][t(862)](e[t(465)],this[t(932)])),this[t(723)]=0,this[t(652)]=-1,this[t(840)]=[],this[t(706)]=!1}[M0(412)](){var t=M0,e={Eoulu:t(412)};this[t(260)](),this[t(603)]([e[t(857)]])}[M0(352)](t){}[M0(715)](t){var e=M0;this[e(531)][e(1001)](t)}[M0(997)](t){var e=M0;this[e(531)][e(292)](t)}[M0(466)](t){var e=M0;this[e(531)]&&this[e(531)][e(591)]()&&this[e(531)][e(591)](t)}};class AudioPlayer extends h$2{constructor(t){for(var e=(...t)=>(super(...t),__publicField(this,_jc),__publicField(this,_ic,"zh"),this),n=M0,i={HhOAX:n(378)}[n(644)][n(227)]("|"),r=0;;){switch(i[r++]){case"0":this[n(782)]=t[n(782)]||"zh";continue;case"1":this[n(463)]();continue;case"2":this[n(908)]=t[n(908)];continue;case"3":e(t);continue;case"4":t={sprite:t[n(908)],src:t[n(493)]};continue}break}}[(_jc=M0(908),_ic=M0(782),M0(352))](t){var e=M0,n={orwKO:function(t,e){return t<e},AQlBm:function(t,e){return t>=e},lCQyr:function(t,e){return t<=e},StuRn:function(t,e){return t&&e},QRNgn:function(t,e){return t+e},QONiw:function(t,e){return t+e},exvGO:function(t,e){return t+e},zjQlD:function(t,e){return t>e},SdpaV:function(t,e){return t>e},XKczp:function(t,e){return t+e},fpUyw:function(t,e){return t===e}};let i=this;if(this[e(276)]){var r,s,a,o;n[e(251)](this[e(782)],"en")&&(t=this[e(809)](t));var c=function(t){for(var r=e,s="",a="",o=0,c=(t=t[r(969)]("",","))[r(683)];n[r(502)](o,c);o++){var l=t[o];n[r(231)](l,"0")&&n[r(545)](l,"9")?s+=l:(s&&(a+=s=i[r(725)](s)[r(451)]("")),s="",a+=l)}return s&&(a+=s=i[r(725)](s)[r(451)]("")),a}(t=t[e(969)](/([BFA])([0-9]+)([mM]?)|([0-9]+)([BFA])([mM]?)/g,(function(t,i,r,s,a,o,c){var l,u=e;if(n[u(783)](i,r)){switch(i){case"B":l=n[u(911)](n[u(911)]("负",r),"楼");break;case"A":case"F":l=n[u(911)](r,"楼")}s&&(l+="夹层")}else if(n[u(783)](a,o)){switch(o){case"B":l=n[u(911)](n[u(852)]("负",a),"楼");break;case"A":case"F":l=n[u(375)](a,"楼")}c&&(l+="夹层")}return l}))),l=(r=c,s=this[e(741)],a=[],o=[],s[e(795)]((function(t){var i=e,s=r[i(839)](t),o=t[i(683)];if(n[i(655)](s,-1)){for(;n[i(381)](s,-1);)a[s]=t,s=r[i(839)](t,n[i(848)](s,o));for(var c="",l=0;n[i(502)](l,o);l++)c+="/";var u=new RegExp(t,"g");r=r[i(969)](u,c)}})),a[e(795)]((function(t){t&&o[e(678)](t)})),o);this[e(603)](l)}}[M0(725)](t){var e=M0,n={pzFvo:function(t,e,n){return t(e,n)},LRJat:function(t,e,n){return t(e,n)},eUFas:function(t,e,n){return t(e,n)}};switch(this[e(782)]){case"zh":return n[e(945)](setTimeout,(()=>{var t=e;this[t(531)]&&this[t(531)][t(591)]&&this[t(466)](1)}),10),this[e(822)](t);case"en":return n[e(560)](setTimeout,(()=>{var t=e;this[t(531)]&&this[t(531)][t(591)]&&this[t(466)](.834)}),10),this[e(731)](t);case"id":return n[e(884)](setTimeout,(()=>{var t=e;this[t(531)]&&this[t(531)][t(591)]&&this[t(466)](1)}),10),this[e(643)](t);default:return this[e(822)](t)}}[M0(822)](t){var e=M0,n={nBjtY:function(t,e){return t(e)},XOars:function(t,e){return t!==e},FKdFf:function(t,e){return t*e},GeVaZ:function(t,e){return t/e},JDkEQ:function(t,e){return t>e},PTJiz:function(t,e){return t+e},WPiok:function(t,e){return t-e},JTPPa:function(t,e){return t===e},oRmYZ:function(t,e){return t===e}},i=[],r=1e3;for(t=n[e(435)](parseInt,t);n[e(398)](r,0);){t%=n[e(272)](10,r);var s=n[e(435)](parseInt,n[e(228)](t,r));if(n[e(595)](s,0)){i[e(678)](n[e(319)](s,""));var a=null;switch(r){case 1e3:a="千";break;case 100:a="百";break;case 10:a="十"}a&&i[e(678)](a)}else{var o=i[e(683)];n[e(595)](o,0)&&n[e(398)](i[n[e(885)](o,1)],"0")&&i[e(678)]("0")}r/=10}return n[e(557)](i[n[e(885)](i[e(683)],1)],"0")&&i[e(382)](),n[e(557)](i[0],"1")&&n[e(913)](i[1],"十")&&i[e(633)](),i}[M0(731)](t){var e=M0,n={utjTx:function(t,e){return t===e},QusEP:function(t,e){return t<e},npxKs:function(t,e){return t/e},VGLuo:function(t,e){return t%e},zxhSs:function(t,e){return t===e},cABer:function(t,e){return t/e},zNeXN:function(t,e){return t>e},WpqmY:function(t,e){return t%e},msSRV: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(975)](t,0))return["0"];if(n[e(361)](t,20))return[i[t]];if(n[e(361)](t,100)){const s=Math[e(666)](n[e(425)](t,10)),a=n[e(630)](t,10);return n[e(588)](a,0)?[r[s]]:[r[s],i[a]]}if(n[e(361)](t,1e3)){const r=Math[e(666)](n[e(332)](t,100)),s=n[e(630)](t,100),a=[i[r],"百"];return n[e(672)](s,0)&&a[e(678)](...this[e(731)](s)),a}if(n[e(361)](t,1e6)){const i=Math[e(666)](n[e(425)](t,1e3)),r=n[e(444)](t,1e3),s=[...this[e(731)](i),"千"];return n[e(399)](r,0)&&s[e(678)](...this[e(731)](r)),s}return[t[e(1005)]()]}[M0(643)](t){var e=M0,n={xNCPW:function(t,e){return t===e},dHSsR:function(t,e){return t<e},gpmLH:function(t,e){return t<e},nVzwJ:function(t,e){return t/e},Jliip:function(t,e){return t%e},HmiBB:function(t,e){return t===e},pTiJs:function(t,e){return t%e},sqMPU:function(t,e){return t>e},laJlv:function(t,e){return t<e},HjzlC:function(t,e){return t%e},ommlz: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(255)](t,0))return["0"];if(n[e(831)](t,20))return[i[t]];if(n[e(763)](t,100)){const s=Math[e(666)](n[e(480)](t,10)),a=n[e(638)](t,10);return n[e(732)](a,0)?[r[s]]:[r[s],i[a]]}if(n[e(831)](t,1e3)){const r=Math[e(666)](n[e(480)](t,100)),s=n[e(756)](t,100),a=[i[r],"百"];return n[e(907)](s,0)&&a[e(678)](...this[e(643)](s)),a}if(n[e(487)](t,1e6)){const i=Math[e(666)](n[e(480)](t,1e3)),r=n[e(677)](t,1e3);let s=[];return s=n[e(732)](i,1)?["千"]:[...this[e(643)](i),"千"],n[e(367)](r,0)&&s[e(678)](...this[e(643)](r)),s}return[t[e(1005)]()]}[M0(809)](t){for(var e=M0,n={XxZQc:e(978),AbPsq:e(318),pnfgo:e(515),Vngmv:e(808),rSMYv:e(579),ZhpxD:e(925),Fskau:e(901),bOvrO:e(354)},i=n[e(326)][e(227)]("|"),r=0;;){switch(i[r++]){case"0":t=t[e(969)](/请走电梯前往(\d+)F/g,n[e(547)]);continue;case"1":t=t[e(969)](/向右后方掉头/g,n[e(906)]);continue;case"2":t=t[e(969)](/请走楼梯前往(\d+)F/g,n[e(284)]);continue;case"3":t=t[e(969)](/向左后方掉头/g,n[e(696)]);continue;case"4":t=t[e(969)](/即将右转/g,n[e(494)]);continue;case"5":t=t[e(969)](/请走扶梯前往(\d+)F/g,n[e(657)]);continue;case"6":t=t[e(969)](/即将左转/g,n[e(266)]);continue;case"7":return t}break}}}let d$1=class{constructor(t){var e=M0;this[e(758)]=t,this[e(311)]()}[M0(311)](){var t=M0,e={wZLuO:t(841)},n=this[t(758)];return this[t(436)]=n[t(436)],this[t(718)]=n[t(718)],this[t(405)]=n[t(405)],this[t(464)]=n[t(464)],this[t(541)]=0,this[t(803)]=!0,this[t(832)]=!0,this[t(998)]=e[t(878)],this[t(926)]=++C$4[t(320)],n[t(860)][t(678)](this),this[t(558)](),this}[M0(558)](){var t=M0,e={MGRNg:function(t,e){return t===e},YamLE:t(919),lgEXU:t(577),YTBww:function(t,e){return t*e}},n=this[t(758)],i=C$4[t(436)]||this[t(436)]||this[t(758)][t(436)]?0:this[t(405)];return n[t(240)]?(this[t(900)]=e[t(519)](void 0,C$4[t(713)][t(736)])?C$4[t(713)][t(306)]():C$4[t(713)][t(736)](),this[t(900)][t(537)][t(271)](i,C$4[t(713)][t(663)]),this[t(900)][t(847)]=!0,this[t(900)][t(872)](C$4[t(816)])):(this[t(900)]=C$4[t(814)](),this[t(880)]=this[t(304)][t(928)](this),this[t(900)][t(248)](e[t(845)],this[t(880)],!1),this[t(235)]=this[t(1e3)][t(928)](this),this[t(900)][t(248)](C$4[t(216)],this[t(235)],!1),this[t(900)][t(493)]=n[t(221)],this[t(900)][t(268)]=e[t(308)],this[t(900)][t(292)]=e[t(887)](i,C$4[t(292)]()),this[t(900)][t(764)]()),this}[M0(950)](){var t=M0,e={VcNUh:t(841)},n=this[t(758)];return this[t(436)]=n[t(436)],this[t(718)]=n[t(718)],this[t(405)]=n[t(405)],this[t(464)]=n[t(464)],this[t(541)]=0,this[t(408)]=0,this[t(803)]=!0,this[t(832)]=!0,this[t(998)]=e[t(229)],this[t(926)]=++C$4[t(320)],this}[M0(304)](){var t=M0,e={aTaHM:t(340),FLCwS:t(919)};this[t(758)][t(570)](e[t(580)],this[t(926)],this[t(900)][t(919)]?this[t(900)][t(919)][t(883)]:0),this[t(900)][t(893)](e[t(561)],this[t(880)],!1)}[M0(1e3)](){var t=M0,e={BzHrP:function(t,e){return t/e},NykvU:function(t,e){return t*e},tZZgj:function(t,e){return t===e},kyKCT:function(t,e){return t!==e},hefez:t(791),WWBhS:t(764)},n=this[t(758)];n[t(281)]=e[t(613)](Math[t(667)](e[t(619)](10,this[t(900)][t(300)])),10),e[t(343)](0,Object[t(697)](n[t(998)])[t(683)])&&(n[t(998)]={__default:[0,e[t(619)](1e3,n[t(281)])]}),e[t(402)](e[t(233)],n[t(896)])&&(n[t(896)]=e[t(233)],n[t(570)](e[t(877)]),n[t(212)]()),this[t(900)][t(893)](C$4[t(216)],this[t(235)],!1)}};function W$k(t,e){var n=M$k();return(W$k=function(t,e){return n[t-=207]})(t,e)}function o$5(t,e){var n=M0,i={EusaH:function(t,e){return t===e},CPhSp:function(t,e){return t*e},HAuQk:function(t,e){return t!==e},YEmBK:n(791),Uuyst:n(764)};e&&!t[n(281)]&&(t[n(281)]=e[n(300)]),i[n(294)](0,Object[n(697)](t[n(998)])[n(683)])&&(t[n(998)]={__default:[0,i[n(254)](1e3,t[n(281)])]}),i[n(599)](i[n(662)],t[n(896)])&&(t[n(896)]=i[n(662)],t[n(570)](i[n(944)]),t[n(212)]())}function c$4(t,e){var n=M0,i={zVMot:n(340),gZHDi:n(833),vyiVX:function(t,e){return t>e},hDiFB:function(t,e,n){return t(e,n)},EVukU:function(t){return t()},SPnpT:function(t,e){return t!==e},BEVuh:function(t,e){return t===e}},r=function(){var t=n;e[t(570)](i[t(671)],null,i[t(262)])},s=function(t){var s=n;t&&i[s(314)](e[s(860)][s(683)],0)?(s$4[e[s(221)]]=t,i[s(853)](o$5,e,t)):i[s(446)](r)};i[n(786)](void 0,Promise)&&i[n(336)](1,C$4[n(713)][n(967)][n(683)])?C$4[n(713)][n(967)](t)[n(424)](s)[n(475)](r):C$4[n(713)][n(967)](t,s,r)}function w$4(t){var e=M0;try{t[e(634)]()}catch(n){t[e(230)]()}}var s$4={};function i$2(t){var e=M0,n={ttLlI:function(t,e){return t+e},eyZFV:function(t,e){return t===e},Mlizx:function(t,e){return t===e},wvCEy:function(t,e,n){return t(e,n)},JLlCD:e(340),JkYuM:function(t,e){return t+e},kkSkQ:function(t,e){return t+e},vfnod:e(819),lYntz:e(505),olPAg:function(t,e){return t(e)},pkzeX:function(t,e){return t<e},xFqcz:e(869),IFtuX:e(728)},i=t[e(221)];if(s$4[i])return t[e(281)]=s$4[i][e(300)],void n[e(313)](o$5,t);if(/^data:[^;]+;base64,/[e(241)](i)){for(var r=n[e(313)](atob,i[e(227)](",")[1]),s=new Uint8Array(r[e(683)]),a=0;n[e(921)](a,r[e(683)]);++a)s[a]=r[e(350)](a);n[e(331)](c$4,s[e(793)],t)}else{var o=new XMLHttpRequest;o[e(679)](n[e(325)],i,!0),o[e(445)]=t[e(344)],o[e(637)]=n[e(625)],o[e(977)]=function(){var i=e,r=n[i(743)](o[i(321)],"")[0];n[i(1003)]("0",r)||n[i(370)]("2",r)||n[i(370)]("3",r)?n[i(331)](c$4,o[i(286)],t):t[i(570)](n[i(409)],null,n[i(269)](n[i(804)](n[i(211)],o[i(321)]),"."))},o[e(230)]=function(){var i=e;t[i(570)](n[i(409)],null,n[i(743)](n[i(743)](n[i(952)],o[i(321)]),"."))},n[e(313)](w$4,o)}}function W$j(t,e){var n=M$j();return(W$j=function(t,e){return n[t-=165]})(t,e)}function M$j(){var t=["3198888DWxHlW","1799905ABYoDM","231pCGwgC","228672DwpUhP","1097635mbgWxG","6NiAxDv","9KInxBf","24202rvasvN","34YnGrBN","4ZIaSyv","195459rJrpbB","949410GrlEzi"];return(M$j=function(){return t})()}!function(t,e){for(var n=W$j,i=t();;)try{if(237731===-parseInt(n(168))/1*(-parseInt(n(169))/2)+-parseInt(n(171))/3+-parseInt(n(170))/4*(parseInt(n(174))/5)+-parseInt(n(166))/6*(-parseInt(n(165))/7)+parseInt(n(173))/8+-parseInt(n(167))/9*(-parseInt(n(172))/10)+-parseInt(n(175))/11*(parseInt(n(176))/12))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$j);const B$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 W$i(t,e){var n=M$i();return(W$i=function(t,e){return n[t-=482]})(t,e)}function M$i(){var t=["10157yCoxRa","2088350QXzYUX","5ygyqZw","1978146OPYlWu","402774uaqYig","11505627Liqahz","7816rCjSdf","13567565RjsXOe","4xFsSCg","1iEryAn","368386xoHucb"];return(M$i=function(){return t})()}!function(t,e){for(var n=W$i,i=t();;)try{if(760708===-parseInt(n(485))/1*(-parseInt(n(486))/2)+parseInt(n(490))/3*(-parseInt(n(484))/4)+parseInt(n(489))/5*(-parseInt(n(491))/6)+-parseInt(n(487))/7*(parseInt(n(482))/8)+parseInt(n(492))/9+parseInt(n(488))/10+parseInt(n(483))/11)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$i);const n$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 M$h(){var t=["1btPmMT","11186217WgwgoD","5175330fyEZmJ","10udcovA","5884696FMoTUo","90xqEkiO","4913905TThukq","14920614ggBDsL","50780zTuDWz","1153522WQoulR"];return(M$h=function(){return t})()}function W$h(t,e){var n=M$h();return(W$h=function(t,e){return n[t-=192]})(t,e)}!function(t,e){for(var n=W$h,i=t();;)try{if(991909===parseInt(n(195))/1*(parseInt(n(194))/2)+-parseInt(n(200))/3*(parseInt(n(193))/4)+parseInt(n(201))/5+-parseInt(n(197))/6+parseInt(n(196))/7+parseInt(n(199))/8+-parseInt(n(192))/9*(parseInt(n(198))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$h);const C$3={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]},s$3=W$g;function M$g(){const t=["2121006TudoOf","Navigation language switched to: ","3982568VkxvgL","getSupportedLanguages","getVolume","JteiP","$language","values","./naviAudio.mp3","min","error","clear","Unsupported language: ","HXgMk","1041990NdIjbg","9988643WuSWKQ","2296216GsPubH","getAudioPlayer","languageConfigs","setLanguage","608373NBtCVg","destroy","5455616cvnZyq","init","splitJson","undefined","UJqKs","getLanguage","daDQs","kbbhp","Bahasa Indonesia","Still waiting for audio to load...","from","isValidLanguage","TDQxK","name","audioFile","./naviAudio-id.mp3",", falling back to ","language","Failed to play audio:","Falling back to Chinese audio","English","log","forEach","setMute","isInitialized","WLZgI","isMuted","playRange","audioPlayers","has","max","volume","addEventListener","get","./naviAudio-en.mp3","setVolume","code","addLanguage","Added language support: ","muted","languageChanged","isLoaded","warn","defaultLanguage","set","5dvXtNY","currentLanguage","evaAu"];return(M$g=function(){return t})()}function W$g(t,e){const n=M$g();return(W$g=function(t,e){return n[t-=312]})(t,e)}!function(t,e){const n=W$g,i=t();for(;;)try{if(716673===parseInt(n(351))/1+parseInt(n(347))/2+parseInt(n(345))/3+-parseInt(n(333))/4+-parseInt(n(328))/5*(-parseInt(n(331))/6)+-parseInt(n(346))/7+parseInt(n(353))/8)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$g);class MultiLanguageAudioManager{constructor(t={}){__publicField(this,_pc,"zh"),__publicField(this,_oc,new Map),__publicField(this,_nc,1),__publicField(this,_mc,!1),__publicField(this,_lc,!1),__publicField(this,_kc,new Map([["zh",{code:"zh",name:"中文",audioFile:s$3(339),splitJson:C$3}],["en",{code:"en",name:s$3(373),audioFile:s$3(317),splitJson:B$b}],["id",{code:"id",name:s$3(361),audioFile:s$3(368),splitJson:n$4}]]));const e=s$3;this[e(329)]=t[e(326)]||"zh",this[e(314)]=t[e(314)]||1,this[e(322)]=t[e(322)]||!1,this[e(354)]()}[(_pc=s$3(329),_oc=s$3(381),_nc=s$3(314),_mc=s$3(322),_lc=s$3(377),_kc=s$3(349),s$3(354))](){const t=s$3,e={TDQxK:function(t,e){return t!==e},kbbhp:t(356),WLZgI:t(323)};if(e[t(365)](typeof window,e[t(360)])){window[t(315)](e[t(378)],(e=>{const n=t;this[n(352)]();const i=window[n(337)]||"zh";i&&this[n(364)](i)&&this[n(350)](i)}));const n=window[t(337)]||"zh";n&&this[t(364)](n)&&(this[t(329)]=n)}this[t(377)]=!0}[s$3(364)](t){const e=s$3;return this[e(349)][e(312)](t)}[s$3(348)](t){const e=s$3;if(!this[e(381)][e(312)](t)){const n=this[e(349)][e(316)](t);if(!n)throw new Error(e(343)+t);const i=new class extends AudioPlayer{constructor(){const i=e;super({src:n[i(367)],sprite:n[i(355)]}),this[i(370)]=t}};i[e(318)](this[e(314)]),i[e(376)](this[e(322)]),this[e(381)][e(327)](t,i)}return this[e(381)][e(316)](t)}[s$3(350)](t){var e;const n=s$3;this[n(364)](t)?(this[n(329)]=t,this[n(348)](t),console[n(374)](n(332)+(null==(e=this[n(349)][n(316)](t))?void 0:e[n(366)]))):console[n(325)](n(343)+t+n(369)+this[n(329)])}[s$3(358)](){return this[s$3(329)]}[s$3(334)](){const t=s$3;return Array[t(363)](this[t(349)][t(338)]())}[s$3(380)](t){const e=s$3,n={HXgMk:e(362),UJqKs:function(t,e,n){return t(e,n)},daDQs:e(371),JteiP:function(t,e){return t!==e},evaAu:e(372)};try{const i=this[e(348)](this[e(329)]);if(i[e(324)])i[e(380)](t);else{const r=()=>{const s=e;i[s(324)]?i[s(380)](t):(console[s(374)](n[s(344)]),n[s(357)](setTimeout,r,100))};n[e(357)](setTimeout,r,100)}}catch(i){if(console[e(341)](n[e(359)],i),n[e(336)](this[e(329)],"zh")){console[e(325)](n[e(330)]);this[e(348)]("zh")[e(380)](t)}}}[s$3(318)](t){const e=s$3;this[e(314)]=Math[e(313)](0,Math[e(340)](1,t)),this[e(381)][e(375)]((t=>{const n=e;t[n(318)](this[n(314)])}))}[s$3(335)](){return this[s$3(314)]}[s$3(376)](t){const e=s$3;this[e(322)]=t,this[e(381)][e(375)]((t=>{const n=e;t[n(376)](this[n(322)])}))}[s$3(379)](){return this[s$3(322)]}[s$3(320)](t){const e=s$3;this[e(349)][e(327)](t[e(319)],t),console[e(374)](e(321)+t[e(366)]+" ("+t[e(319)]+")")}[s$3(352)](){const t=s$3;this[t(381)][t(375)]((e=>{const n=t;e[n(352)]&&e[n(352)]()})),this[t(381)][t(342)]()}}const b=W$f;function W$f(t,e){const n=M$f();return(W$f=function(t,e){return n[t-=375]})(t,e)}!function(t,e){const n=W$f,i=t();for(;;)try{if(215150===parseInt(n(868))/1+-parseInt(n(627))/2+-parseInt(n(782))/3*(parseInt(n(859))/4)+parseInt(n(512))/5*(parseInt(n(613))/6)+-parseInt(n(698))/7*(parseInt(n(628))/8)+parseInt(n(915))/9+-parseInt(n(514))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$f);const{DEG2RAD:o$4,RAD2DEG:c$3}=MathUtils;let w$3;const userTouch=()=>{const t=W$f,e={MJyfm:function(t,e){return t(e)},edtkQ:function(t,e,n){return t(e,n)}};e[t(986)](clearTimeout,w$3),w$3=e[t(715)](setTimeout,(()=>{w$3=void 0}),15e3)};function s$2(t){const e=W$f,n={DOMbH:e(786)};window[e(683)](n[e(885)],userTouch)}function M$f(){const t=["Joboo","uATAA","sWcNc","waypointMarkList","beaconData","-度:","nlMCP","Jzelz","setCenter","2|1|4|5|3|0","YcHUu","HlQTn","aBXhk","jLBmR","cwtjG","endMark","ZDfIk","剩余距离: ","fiiba","emit","onSocket","uZLIv","getRotation","includes","-范围:","HZuYj","KhRCy","cVJvZ","__GPS__","rgb(44,62,89)","vFIqB","onclose","fXSHd","VKRIS","mTUcO","NOlQN","pBcmR","bPcXi","wVbux","mZGci","isonceSetCompassOffset","2008296wFpjuZ","Lztqx","compassOffg","build","removeNaviLine","ZFbJF","lrYiU","ysBIs","nextWaypointDistance","EKrlG","intersectObjectsBy2D","rlNVt","SvmPL","position","133270PivHTo","160104ceLjAL","waypointsPolygonData","KQULb","gXELA","navi","KrTjL","mapData","HZUCN","当前不在该楼层或规划路线后移动","lat","nextId","到达目的地","oALKK","hDqdH","dxcvH","TvbxR","TUcKs","yUIjF","定位设置偏移: ","TCL: res","oRwne","getNaviRotation","showRouteFloor","passLength","tTBpN","testMsg","txIko","href","lockFloor","Hwaeb","naviSetSpeed","yghdS","EQUAp","oLocationView","response","data","max","出入口","tjUiB","iXLnU","xmvkq","uJXfc","PGPfz","emitPano","szwZd","log","computeNaviInfo","type","beaconMaxRssi2","iNaviView","stopSimulate","arrowTW","ItCmw","startNavi","updatePathAngle","addEventListener","removeWaypoint","MkncZ","gNLFN","crossType","sJuDl","dApIe","EfhnX","yQgtn","XCVND","oHSqZ","pNdoh","FQGkV","WsqqO","uVxCL","77QqPnfO","找不到id:","cJLfc","jZHUi","name","copy","vBEyT","routeGroup","closeAR","cyGtU","openAR","定位距离:","arriveEnd","jbkbm","pathAngle","mApFC","onComplete","edtkQ","ucLGa","elQsn","passWaypoints","removeEnd","sOxPV","caYUj","resumeSimulate","0|1|2|3|4","米\n大约时长: ","floorId","dodnK","lng","iSkRS","bgi","_preTestGps","split","0|1|4|2|3","parent","YVFHv","updateNaviTime","getCenter","subAngle","request","zelgm","angleTo","point2Path","setStart","values","$gps","setLocation","zoom","point","_isRotate","Linear","rcVNi","filter","router","ovUot","mVbqx","lhQnP","lastBeaconBestRssi","reverse","lRYfc","OiRrV","iBgyn","remark","seciz","TwCJd","curentFloor","nextIdx","cazkn","lastLocationResult","start","tvDwE","naviAudioTip","ignoreRePlane","ZMRHD","XzdGB","ATUEL","initMark","JAHlU","getTangent","setEnd","setOneFloorMode","hzvuh","bOqwT","2013TKkQKE","red","_positionMarkerShowTw","easing","pointerdown","EnQFS","event","eCIKt","WZoGT","CjDsz","CqZGg","vDbja","oXbuY","jIOmG","lzXys","ifycU","lyIPk","pCEKR","QKirU","removeAllWaypoint","routeDistance","IzVJC","setSimulateSpeedAnimate","DJNVv","init","isOutdoor","gpsTest","setZ","maxInMapDistance","HRRyY","Udodv","location","initLoction","location2Path","rePlanRoute","manCar","ejxvY","_isFirstRssi","CJrDh","Change","RWSyY","mauBJ","LHaRt","setLocationMyPosition","replace","LjrxN","simulate","unshift","removeNaviArrow","jxcKq","iaQEE","vQZyE","UNWYc","gcjLon","naviView","RFcnS","animate","rHJZX","QxXbj","stepSpeed","waypoint","EVZIT","WnOVO","YynOP","beaconCache","IZItb","lKdHD","SHxrA","off","arriveDistance","$testMsg","Jxqrm","qsIYP","height","ZLQjG","VDzct","2|4|0|1|3","2068Aeszwe","YewzE","kdCdI","compassOffb","removeLink","isNavi","scene","kXYHQ","ggGQY","414552YGgiHi","FKxrY","yMmLD","vvbSf","HyRME","hWrZc","onCompass","kCOMg","setPitch","find","interact","compass","startMark","zxlVX","gpsAccuracy","xzWPq","sub","DOMbH","icXLZ","testPoint","None","material","crossFloorDis","FzhCH","myPositionPath","naviInfo","CUR_COMPASS","aDzVJ","SetId","locationView","DXMuo","未找到路线,请联系地图制作方!","ZJEkk","onmessage","planRoute","dcsrz","xROJG","path","fgoAl","viewchange","reduce","2|5|3|1|4|6|0","eeayO","PEpFK","locationType","tgYqz","isMyPosition","2267010SBBvFp","UevoA","closeNaviDemoVoice","SmVIr","minor","gpsSpeedMax","vTphl","DufVZ","VKSIb","socket","PerLf","distanceTo","ZAuRN","RsHLv","gcjLat","YudCU","bKFuT","VSAsy","stringify","distance","fromCharCode","rXphb","isSimulateRotate","onLocationNavi","qOZOv","removeFromParent","YlEcD","Gdheq","RLktN","clickTestLocation","cbSDX","LyRDv","userData","poeHw","compassOff","setStartEnd","RNzhP","end","OuZfn","DOauj","ZHonX","RxXrn","MVQmv","indexOf","addNaviLine","vSwrv","getLength","bRCit","SKchv","isSimulatePause","rssiOffset","FRXwB","resume","127.0.0.1","createLine","ituMj","pointAtPath","lngLatToCoord","positionMarker","trWex","testSprite","CNOAU","setStartMyPosition","api/MapExtra/","floorData","aStarPath","children","routePassGroup","clone","AZqeS","gEdBW","MJyfm","compassOffset","addLocationPoint","VcJwl","push","outerFloor","nextPanoId","bLcqI","renderOrder","getFloorById","passDoorDis","走电梯前往","assign","onUpdate","MOjCn","coordsToLngLat","onerror","disconnect","naviTime","nextDistance","nextPoint","updateNaviLinePass","floor","ogZAt","arguments","time","UOUGM","rotation","kYeaz","isRePlanRoute","compassInitAngle","GbyEO","simulateSpeed","LbShf","load","_lastLocatePoint","Qzhtp","closeSimulateVoice","Mark","lngLatToCoordWorld","gYfyP","走扶梯前往","DCbMy","syYiI",'{"protocol":"json","version":1}',"center","hyyWy","Aeuwl","gps","MhVHK","startEnd","options","dzShq","major","getPolygonDataById","delay","click","YywRK","NalTy","showPano","url","pzkXY","MrjTR","RYVEG","createWaypointMark","dCcYO","enabled","YzXPQ","yNLvY","6|1|0|5|4|7|9|2|8|3","onopen","dzbhj","stopNavi","flfus","beaconAnalysis","locResCache","dispose","isPass","LZvcV","nextRoutePoint","angle","导航开始","suHpP","testGps","map","getPoint","parse","qAyTW","removeStart","reallyRemainDistance","nextNaviTip","KGMCZ","speed","beaconCacheList","enterType","CYMMw","arrow","val","getMapDataById","route","mqzVq","setSimulateSpeed","GUWzs","NrLUH","riJxZ","rssi","pitch","set","fNsZa","toFixed","RUMHG","keys","setNaviPass","RxAKj","PSJSC","您已偏离路线","lnglatDeviation","ZjFoS","0|2|4|3|1","走楼梯前往","nextFloor","setOffet","lqLZo","length","sizeRatio","minArr","piuVM","lmmkW","setNaviControlStatus","pZvUd","nextDis","__step__","svLKc","findIndex","isPlane","stop","FBDCW","amap","removeStartEnd","locationFloor","kqXKf","起点或终点为null","camera","yDir","isClosedRotat","arUpdate","elevator","polygonData","#fff","setZoomAndCenter","NYbBO","send","sTEgd","wss://ws.3dwxb.com/ws","crossDoorDis","playRange","pause","gEAgE","rePlaneTimer","GPS","pauseSimulate","prevRoutePoint","DYzeB","lnglat","originGps","isSimulate","FGybb","blockPath","setCrossDis","oNaviView","onceSetCompassOffset","isArray","passFloorDis","iLocationView","IeDzY","object3d","addLink","slice","radius","到达目的地,导航结束","Xnkgs","remainDistance","initAngle","firstDistance","step","hmrty","_passWaypointsCopy","RMUnA","now","OuCia","hxbnt","Yuiid","object","cross","nextNaviDistance","status","rBZWv","points","5myMVcC","ykwtZ","1523230mpGlGJ","SAEIZ","ids","NmOMR","percent","myPosition","biCYM","mapId","TXAQg","api","setWaypoints","hXegJ","lpDLB","tip","Yofxm","random","iHiZs","CVWoM","hyMbX","left","aneVF","NBdBB","oDEsc","splice","ssVeS","gXWNQ","add","_lastUpdateLinePass","setStatus","closeWalk","rXLat","ZbFAU","visible","setRotation","oavvr","min","audioPlayer","wvEqX","shift","nmPYC","iwSXW","isEnd","我的位置","showIndoor","WSciS","isCrossFloor","XGaRF","pathInfo","setMoveSpeed","Fksqr","aoa","QUvQj","jgSjQ","close","setZoom","manyFloorMode","findRoutePos","DwzAh"];return(M$f=function(){return t})()}class Navigation extends EventDispatcher{constructor(t){var e;const n=b,i={yNLvY:n(909),piuVM:n(462),fgoAl:n(533),QKirU:n(601),mVbqx:function(t,e){return t===e},FQGkV:function(t,e){return t(e)},pCEKR:n(556),SmVIr:n(808),hyyWy:n(397)};let r;super(),__publicField(this,_Hd),__publicField(this,_Gd,reactiveEvent(new(_Oc=b(413),_Nc=b(705),_Mc=b(982),_Lc=b(408),_Kc=b(687),_Jc=b(952),_Ic=b(768),_Hc=b(481),_Gc=b(864),_Fc=b(479),_Ec=b(559),_Dc=b(964),_Cc=b(1018),_Bc=b(406),_Ac=b(879),_zc=b(404),_yc=b(393),_xc=b(475),_wc=b(842),_vc=b(508),_uc=b(621),_tc=b(495),_sc=b(403),_rc=b(802),_qc=b(453),class{constructor(){__publicField(this,_Oc,[]),__publicField(this,_Nc,{}),__publicField(this,_Mc,{}),__publicField(this,_Lc,EnterType[b(460)]),__publicField(this,_Kc,CrossType[b(817)]),__publicField(this,_Jc,null),__publicField(this,_Ic,null),__publicField(this,_Hc,[]),__publicField(this,_Gc,!1),__publicField(this,_Fc,!1),__publicField(this,_Ec,!1),__publicField(this,_Dc,!1),__publicField(this,_Cc,2.5),__publicField(this,_Bc,0),__publicField(this,_Ac,0),__publicField(this,_zc,""),__publicField(this,_yc,null),__publicField(this,_xc,null),__publicField(this,_wc,null),__publicField(this,_vc,0),__publicField(this,_uc,0),__publicField(this,_tc,0),__publicField(this,_sc,0),__publicField(this,_rc,0),__publicField(this,_qc,null)}}),((t,e)=>{const n=b,i={mauBJ:function(t,e){return t+e},tjUiB:n(821)};this[n(591)](i[n(823)](t,i[n(666)]),e)}))),__publicField(this,_Fd,{}),__publicField(this,_Ed,{}),__publicField(this,_Dd,new Group$1),__publicField(this,_Cd),__publicField(this,_Bd,new Sprite(new SpriteMaterial({map:texureLoader[b(1020)](v$3,(()=>{const t=b,e={lmmkW:function(t,e,n,i){return t(e,n,i)},PSJSC:function(t,e,n){return t(e,n)}};e[t(441)](setSize,this[t(410)],.5,this[t(398)][t(438)]),e[t(428)](setTimeout,(()=>{const n=t;e[n(441)](setSize,this[n(410)],.5,this[n(398)][n(438)])}),1e3)})),transparent:!0,depthTest:!1,depthWrite:!1,sizeAttenuation:!1}))),__publicField(this,_Ad,new Sprite(new SpriteMaterial({map:texureLoader[b(1020)](I$3,(()=>{const t=b,e={vFIqB:function(t,e,n,i){return t(e,n,i)},vSwrv:function(t,e,n,i){return t(e,n,i)},eeayO:function(t,e,n){return t(e,n)}};e[t(960)](setSize,this[t(973)],.2,this[t(398)][t(438)]),e[t(910)](setTimeout,(()=>{const n=t;e[n(602)](setSize,this[n(973)],.2,this[n(398)][n(438)])}),1e3)})),transparent:!0,depthTest:!1,sizeAttenuation:!1,depthWrite:!1}))),__publicField(this,_zd,{id:"-1",x:0,y:0,floorId:"",ids:{},distance:0}),__publicField(this,_yd),__publicField(this,_xd),__publicField(this,_wd),__publicField(this,_vd),__publicField(this,_ud),__publicField(this,_td,{}),__publicField(this,_sd,new MultiLanguageAudioManager({defaultLanguage:"zh",volume:1,muted:!1})),__publicField(this,_rd),__publicField(this,_qd,[]),__publicField(this,_pd,{}),__publicField(this,_od),__publicField(this,_nd,[]),__publicField(this,_md,!1),__publicField(this,_ld),__publicField(this,_kd),__publicField(this,_jd,new class{constructor(){__publicField(this,_$c),__publicField(this,__c),__publicField(this,_Zc),__publicField(this,_Yc),__publicField(this,_Xc),__publicField(this,_Wc,99),__publicField(this,_Vc,99),__publicField(this,_Uc,99),__publicField(this,_Tc,99),__publicField(this,_Sc,""),__publicField(this,_Rc),__publicField(this,_Qc),__publicField(this,_Pc,new Vector2(0,1))}[(_$c=b(398),__c=b(905),_Zc=b(651),_Yc=b(437),_Xc=b(712),_Wc=b(890),_Vc=b(486),_Uc=b(468),_Tc=b(996),_Sc=b(656),_Rc=b(434),_Qc=b(413),b(806))](t,e){const n=b,i={ituMj:function(t,e){return t/e}};this[n(398)]=e,this[n(413)]=t,this[n(905)]=new Path(t[n(398)]((t=>(new Vector2)[n(703)](t[n(747)])))),this[n(437)]=this[n(905)][n(961)](),this[n(651)]=0,this[n(682)]();let r=0;t[n(398)](((t,e)=>{const s=n;t[s(518)]=e?i[s(970)](r,this[s(437)]):0,r+=t[s(1005)]}))}[(_Pc=b(457),b(682))](){const t=b,e={tgYqz:function(t,e){return t/e},HZUCN:function(t,e){return t*e},zxlVX:function(t,e){return t*e},hmrty:function(t,e){return t>e},bRCit:function(t,e){return t+e}};let n=this[t(905)][t(777)](e[t(913)](this[t(651)],this[t(437)])),i=n[t(983)]()[t(507)](this[t(457)]),r=e[t(635)](e[t(881)](e[t(499)](i,0)?1:-1,n[t(740)](this[t(457)])),c$3);this[t(712)]=e[t(499)](r,0)?r:e[t(962)](360,r)}[b(426)](t,e){var n,i,r;const s=b,a={bKFuT:function(t,e){return t-e},RUMHG:function(t,e){return t>e},uATAA:function(t,e){return t+e},YzXPQ:function(t,e){return t<e},dzbhj:function(t,e){return t===e},svLKc:s(564),NOlQN:function(t,e){return t>=e},GbyEO:function(t,e){return t*e},ZbFAU:function(t,e){return t*e},Jzelz:function(t,e,n,i){return t(e,n,i)},XGaRF:function(t,e){return t/e},dodnK:function(t,e){return t!=e},mZGci:function(t,e){return t<e},lRYfc:function(t,e){return t-e},IZItb:function(t,e,n){return t(e,n)}};let o=a[s(931)](this[s(712)],this[s(398)][s(632)][s(813)][s(894)]);o=a[s(424)](o,0)?o:a[s(573)](360,o),this[s(737)]=o;let c=a[s(424)](o,120)&&a[s(381)](o,240)?0:1;a[s(385)](this[s(398)][s(632)][s(813)][s(912)],a[s(446)])&&(c=1),((null==(i=null==(n=this[s(398)][s(632)][s(509)][s(393)])?void 0:n[s(527)])?void 0:i[s(595)]("后方"))||a[s(607)](this[s(398)][s(632)][s(813)][s(841)],.9))&&(c=1),e&&(c=e);let l=a[s(1017)](a[s(545)](a[s(545)](.9,c),t),this[s(398)][s(632)][s(813)][s(841)]);a[s(385)](this[s(656)],this[s(398)][s(632)][s(767)][s(1008)])&&(this[s(656)]="",l=2);let u=a[s(573)](this[s(651)],l);u=a[s(579)](clamp,u,.01,a[s(931)](this[s(437)],.01));let h=a[s(560)](u,this[s(437)]),d=this[s(905)][s(399)](h),p=this[s(413)][s(447)]((t=>t[s(518)]>h));if(this[s(482)](p),(a[s(381)](this[s(890)],10)||a[s(381)](this[s(486)],10))&&a[s(726)](this[s(413)][p][s(1008)].id,this[s(398)][s(632)][s(767)][s(1008)])&&a[s(611)](this[s(398)][s(632)][s(813)][s(841)],1.49))return void(this[s(656)]=this[s(413)][p][s(1008)].id);let f=this[s(413)][a[s(758)](p,1)];if(null==(r=f[s(527)])?void 0:r[s(595)]("梯")){let t=this[s(413)][p][s(747)],e=a[s(847)](getLineLength,f[s(747)],t);d.x=t.x,d.y=t.y,u+=e,p++}return this[s(398)][s(632)][s(509)][s(495)]=a[s(758)](this[s(437)],u),this[s(651)]=u,this[s(682)](),{point:new Vector3(d.x,d.y,0),nextIdx:p,nextPoint:this[s(413)][p]}}[b(482)](t){var e,n,i,r;const s=b,a={DYzeB:function(t,e){return t<e},YywRK:function(t,e,n){return t(e,n)},vQZyE:s(665),UNWYc:function(t,e,n){return t(e,n)},trWex:function(t,e){return t-e},SAEIZ:function(t,e){return t>=e}};let o,c,l,u;this[s(890)]=0,this[s(468)]=0;for(let h=t;a[s(476)](h,this[s(413)][s(437)]);h++){const t=this[s(413)][h];!o&&((null==(e=t[s(527)])?void 0:e[s(595)]("梯"))?(this[s(890)]+=a[s(1043)](getLineLength,this[s(398)][s(632)][s(410)][s(626)],t[s(747)]),o=!0):this[s(890)]+=t[s(1005)]),!c&&((null==(n=t[s(527)])?void 0:n[s(595)](a[s(833)]))?(this[s(468)]+=a[s(834)](getLineLength,this[s(398)][s(632)][s(410)][s(626)],t[s(747)]),c=!0):this[s(468)]+=t[s(1005)])}!o&&(this[s(890)]=99),!c&&(this[s(468)]=99),this[s(486)]=0,this[s(996)]=0;for(let h=a[s(974)](t,1);a[s(515)](h,0);h--){const t=this[s(413)][h];!l&&((null==(i=t[s(527)])?void 0:i[s(595)]("梯"))?l=!0:this[s(486)]+=t[s(1005)]),!u&&((null==(r=t[s(527)])?void 0:r[s(595)](a[s(833)]))?u=!0:this[s(996)]+=t[s(1005)])}!l&&(this[s(486)]=99),!u&&(this[s(996)]=99)}}),__publicField(this,_id2,0),__publicField(this,_hd),__publicField(this,_gd),__publicField(this,_fd),__publicField(this,_ed),__publicField(this,_dd,[]),__publicField(this,_cd,0),__publicField(this,_bd,0),__publicField(this,_ad,0),this[n(398)]=t,i[n(695)](s$2,t),this[n(973)][n(994)]=renderOrderConfig[n(973)],this[n(973)][n(626)].z=this[n(973)][n(626)].x=1e8,debug&&(window[n(852)]=(...t)=>this[n(398)][n(653)](...t)),this[n(752)]=new C$6(t),t[n(489)][n(540)](this[n(489)]),this[n(489)][n(540)](this[n(973)]),this[n(410)][n(994)]=renderOrderConfig[n(410)],this[n(519)]={name:i[n(799)],id:"0",isMyPosition:!0,path:[]},this[n(735)]=t=>{var e;const s=n,a=i[s(382)][s(731)]("|");let o=0;for(;;){switch(a[o++]){case"0":this[s(1004)][s(994)]=99999;continue;case"1":this[s(1004)]=new TextSprite({text:t,vmap:this[s(398)],fillStyle:i[s(440)],align:i[s(906)],bgColor:i[s(800)],lineGap:.25,isCollision:!1,fontSize:12});continue;case"2":if(i[s(754)](t,r))return;continue;case"3":null==(e=this[s(1004)])||e[s(390)]();continue;case"4":this[s(489)][s(540)](this[s(1004)]);continue;case"5":r=t;continue;case"6":this[s(1004)][s(1031)][s(421)](-.1,-.5);continue}break}},this[n(775)](),(!(null==(e=this[n(634)][n(1037)])?void 0:e[n(543)])||debug)&&(this[n(814)](),this[n(874)](),this[n(592)]()),(location[n(655)][n(595)](i[n(918)])||location[n(655)][n(595)](i[n(1032)]))&&this[n(944)]()}get[(_Hd=b(398),_Gd=b(509),_Fd=b(718),_Ed=b(500),_Dd=b(489),_Cd=b(570),_Bd=b(410),_Ad=b(973),_zd=b(892),_yd=b(924),_xd=b(519),_wd=b(813),_vd=b(752),b(634))](){const t=b;return this[t(398)][t(634)]}get[(_ud=b(735),_td=b(893),_sd=b(550),b(897))](){const t=b;return this[t(634)][t(1037)][t(897)]}get[b(661)](){var t;const e=b;return null==(t=this[e(634)][e(1037)])?void 0:t[e(661)]}get[b(487)](){var t;const e=b;return null==(t=this[e(634)][e(1037)])?void 0:t[e(487)]}get[b(836)](){var t,e,n,i,r,s,a,o,c,l,u,h,d,p,f,m,g,A,y,v,S,x;const M=b,T={VKRIS:function(t,e){return t===e},cwtjG:function(t,e){return t===e},rcVNi:function(t,e){return t===e}};let I=!1;return I=(null==(t=this[M(509)])?void 0:t[M(864)])||(null==(e=this[M(509)])?void 0:e[M(479)])?T[M(605)](null==(r=null==(i=null==(n=this[M(509)])?void 0:n[M(393)])?void 0:i[M(1008)])?void 0:r.id,"1")||T[M(605)](null==(c=null==(o=null==(a=null==(s=this[M(509)])?void 0:s[M(393)])?void 0:a[M(1008)])?void 0:o[M(733)])?void 0:c.id,"1"):T[M(586)](null==(d=null==(h=null==(u=null==(l=this[M(509)])?void 0:l[M(413)])?void 0:u[0])?void 0:h[M(1008)])?void 0:d.id,"1")||T[M(750)](null==(A=null==(g=null==(m=null==(f=null==(p=this[M(509)])?void 0:p[M(413)])?void 0:f[0])?void 0:m[M(1008)])?void 0:g[M(733)])?void 0:A.id,"1"),I?(null==(y=this[M(634)][M(1037)])?void 0:y[M(483)])||(null==(v=this[M(634)][M(1037)])?void 0:v[M(836)])||17:(null==(S=this[M(634)][M(1037)])?void 0:S[M(677)])||(null==(x=this[M(634)][M(1037)])?void 0:x[M(836)])||20}[(_rd=b(1004),b(742))](t){const e=b,n={HRRyY:e(768)};this[e(950)](t,n[e(811)])}[b(778)](t){const e=b,n={FBDCW:e(952)};this[e(950)](t,n[e(450)])}[b(950)](t,e){const n=b;if(!t)return;if(this[n(509)][n(864)]||this[n(509)][n(479)])return;this[n(830)](),this[n(617)]();let i,r=this[n(398)][n(1040)](t);if(r[n(733)][n(616)])i=this[n(398)][n(991)];else{i=this[n(398)][n(557)](r[n(733)][n(733)].id,r[n(733)].id)[n(764)]}let s=this[e+n(1024)];this[n(509)][e]=r,i[n(489)][n(540)](s),s[n(626)][n(703)](r[n(1031)])[n(809)](r[n(855)]||2)}[(_qd=b(629),b(524))](t){const e=b,n={ZMRHD:function(t,e){return t+e},NBdBB:e(699),sWcNc:function(t,e){return t(e)}};if(!t)return;if(this[e(509)][e(864)]||this[e(509)][e(479)])return;this[e(830)](),this[e(617)]();const i=t=>{const i=e;let r=this[i(398)][i(1040)](t);if(!r)return console[i(673)](n[i(772)](n[i(535)],t));let s=this[i(398)][i(995)](r[i(733)].id),a=this[i(378)](r);this[i(629)][i(990)](r),s[i(489)][i(540)](a)};Array[e(485)](t)?t[e(398)](i):n[e(574)](i,t)}async[b(877)](){const t=b,e={fXSHd:function(t,e){return t!==e},PGPfz:function(t,e){return t-e},ZAuRN:t(455),szwZd:t(899)};if(this[t(617)](),this[t(825)](),!this[t(509)][t(768)]||!this[t(509)][t(952)])throw new Error(e[t(927)]);let n,i=this[t(629)],r={};this[t(629)][t(398)]((t=>{r[t.id]=r[t.id]||0,r[t.id]++}));let s=!1;for(const c in r)if(e[t(604)](r[c],this[t(500)][c])){s=!0;break}if(s)this[t(718)]=r,this[t(500)]=JSON[t(400)](JSON[t(933)](r));else{let e=JSON[t(400)](JSON[t(933)](this[t(718)]));i=i[t(491)]()[t(757)]()[t(751)]((t=>e[t.id]-- >0)),i[t(757)]()}if(n=this[t(752)][t(902)]([this[t(509)][t(768)],...i,this[t(509)][t(952)]],this[t(509)][t(408)],this[t(509)][t(687)],this[t(509)][t(481)]),!(null==n?void 0:n[t(437)]))throw new Error(e[t(672)]);this[t(509)][t(413)]=n,this[t(509)][t(802)]=n[t(934)];let a,o=[];this[t(509)][t(413)][t(398)](((n,i)=>{const r=t;e[r(604)](a,n[r(1008)].id)?o[r(990)]([n]):o[e[r(670)](o[r(437)],1)][r(990)](n),a=n[r(1008)].id})),this[t(509)][t(705)]=o[t(908)](((e,n)=>{const i=t;return e[n[0][i(1008)].id]=e[n[0][i(1008)].id]||[],e[n[0][i(1008)].id][i(990)](n),e}),{}),this[t(650)](),this[t(398)][t(959)](),this[t(509)][t(768)][t(914)]&&(this[t(570)]={floorData:this[t(519)][t(733)],x:this[t(892)].x,y:this[t(892)].y})}[b(1007)](t=this[b(410)][b(626)]){const e=b,n={kYeaz:function(t,e){return t<e},hWrZc:function(t,e){return t===e},EKrlG:function(t,e){return t-e},oHSqZ:function(t,e){return t!==e},aDzVJ:function(t,e){return t<e},LZvcV:function(t,e){return t-e}};if(n[e(895)](n[e(392)](Date[e(502)](),this[e(541)]),500))return;this[e(541)]=Date[e(502)]();let i,r=[];this[e(509)][e(413)][e(398)](((s,a)=>{const o=e;s[o(391)]=n[o(1014)](a,this[o(893)][o(765)]);let c=n[o(873)](a,this[o(893)][o(765)]);c&&r[n[o(622)](r[o(437)],1)][o(990)]({...s,point:t}),n[o(693)](i,s[o(1008)].id)||c?r[o(990)](c?[{...s,point:t},s]:[s]):r[n[o(622)](r[o(437)],1)][o(990)](s),i=s[o(1008)].id})),this[e(509)][e(705)]=r[e(908)](((t,n)=>{const i=e;return t[n[0][i(1008)].id]=t[n[0][i(1008)].id]||[],t[n[0][i(1008)].id][i(990)](n),t}),{}),this[e(398)][e(959)]()}[b(745)](t){const e=b,n={dApIe:e(813),jIOmG:e(564)};let i=this[e(398)][e(972)](t[e(727)]||0,t[e(637)]||0);this[e(813)][e(676)]=150,this[e(813)][e(591)](n[e(689)],{...i,lng:t[e(727)],lat:t[e(637)],floor:t[e(725)],type:n[e(795)]}),this[e(813)][e(912)]=n[e(795)]}[b(650)](){const t=b;let e=[];this[t(509)][t(413)][t(908)](((n,i)=>{var r;const s=t;let a=null==(r=i[s(1008)][s(733)])?void 0:r.id;return a&&!n[a]&&(e[s(829)]((()=>this[s(398)][s(557)](a,i[s(1008)].id))),n[a]=1),n}),{}),e[t(398)]((t=>t()))}[b(592)](){const t=b,e={kXYHQ:t(896),kCOMg:t(600),RYVEG:t(473),YlEcD:function(t,e){return t(e)},ovUot:function(t){return t()},rlNVt:t(567),ZHonX:function(t,e,n){return t(e,n)},cazkn:t(467),Aeuwl:function(t){return t()}};let{socketId:n}=e[t(753)](getURLQuery);if(!n)return;let i,r=String[t(935)](30);function s(n){const i=t;return""+JSON[i(933)]({type:1,target:e[i(866)],arguments:[n]})+r}const a=()=>{const o=t,c={DJNVv:function(t,n){return e[W$f(941)](t,n)},iwSXW:function(t){return e[W$f(753)](t)},RLktN:e[o(624)],LbShf:function(t,n,i){return e[o(955)](t,n,i)}};this[o(924)]=new WebSocket(e[o(766)]),this[o(924)][o(384)]=()=>{const t=o;this[t(924)][t(465)](t(1030)+r),this[t(924)][t(465)](c[t(805)](s,n))},this[o(924)][o(603)]=this[o(924)][o(1002)]=()=>{const t=o;c[t(805)](clearTimeout,i),console[t(673)](c[t(943)]),i=c[t(1019)](setTimeout,(()=>{c[t(554)](a)}),1e3)};let l=t=>{const n=o;if(t[n(1010)]&&t[n(1010)][0]){let{beaconList:i,gps:r}=JSON[n(400)](t[n(1010)][0]);i&&i&&this[n(813)][n(388)](i),r&&(this[n(813)][n(744)][n(1003)](),this[n(813)][n(591)](e[n(875)],{type:e[n(377)],GPS:!0,originGps:r,lng:r[n(835)],lat:r[n(929)],floor:this[n(634)].id}))}};this[o(924)][o(901)]=t=>{const e=o,n={ykwtZ:function(t,e){return c[W$f(805)](t,e)}};t[e(663)][e(731)](r)[e(398)]((t=>{const i=e;t&&n[i(513)](l,JSON[i(400)](t))}))}};e[t(1033)](a)}[(_pd=b(407),b(846))](t){const e=b,n={gXWNQ:function(t,e){return t>e},yghdS:function(t,e){return t-e}};let i=Date[e(502)]();return t[e(398)]((t=>{const n=e;t[n(1011)]=i,this[n(407)][t[n(1039)]+"_"+t[n(919)]]=t})),Object[e(425)](this[e(407)])[e(398)]((t=>{const r=e,s=this[r(407)][t];n[r(539)](n[r(659)](i,s[r(1011)]),1e3)&&delete this[r(407)][t]})),Object[e(743)](this[e(407)])}[(_od=b(767),_nd=b(389),b(814))](){const t=b,e={yQgtn:function(t,e){return t+e},RMUnA:function(t,e){return t+e},VSAsy:function(t,e){return t===e},nlMCP:t(1034),EQUAp:function(t,e){return t<e},fiiba:function(t,e){return t===e},KrTjL:t(419),tvDwE:function(t,e){return t>e},EfhnX:t(808),OiRrV:function(t,e){return t===e},VcJwl:t(813),MhVHK:function(t,e){return t!==e},lyIPk:function(t,e){return t!==e},ifycU:t(498),oRwne:function(t,e,n){return t(e,n)},suHpP:function(t,e){return t>e},PEpFK:function(t,e){return t<e},oALKK:function(t,e){return t==e},EnQFS:function(t,e){return t!==e},mApFC:function(t,e){return t!==e},GUWzs:t(988)};let n=[];this[t(634)][t(576)]&&this[t(634)][t(576)][t(398)]((i=>{const r=t;let s=i.id[r(731)]("-");n[r(990)]({floor:i[r(725)],major:s[0],minor:s[1],rssiOffset:i[r(965)],x:e[r(691)](i.x,this[r(398)][r(1031)].x),y:e[r(501)](i.y,this[r(398)][r(1031)].y)})})),this[t(813)]=new i$3({debug:!0,gps:!isPc,GPS:!isPc,compassDelay:100,minRssi:-78,initAngle:this[t(634)][t(1037)][t(1016)]||0,floorDelay:2e3,map:this[t(398)]}),this[t(813)][t(806)](n);let i="",r="";this[t(813)].on(e[t(989)],(n=>{var s,a,o,c,l,u,h,d,p;const f=t,[m,g]=(null==(o=null==(a=null==(s=this[f(398)])?void 0:s[f(634)])?void 0:a[f(1037)])?void 0:o[f(430)])??[0,0];e[f(932)](n[f(675)],e[f(578)])&&(n[f(727)]+=m,n[f(637)]+=g);let A=this[f(398)][f(972)](n[f(727)],n[f(637)]);n.x=A.x,n.y=A.y,this[f(767)]=n,this[f(767)].z=0,this[f(767)][f(979)]=this[f(398)][f(412)](this[f(767)][f(1008)]),!this[f(509)][f(864)]&&!this[f(509)][f(479)]&&this[f(825)](),this[f(658)]&&this[f(658)](),this[f(562)](n);let y=new Vector3(n.x,n.y,0);null==(c=this[f(784)])||c[f(449)](),this[f(509)][f(864)]||e[f(660)](this[f(813)][f(882)],5)||!this[f(819)]?(e[f(590)](n[f(675)],e[f(633)])&&(this[f(819)]=!0),this[f(784)]=new Tween(this[f(973)][f(626)]).to((new Vector3)[f(703)](this[f(767)]),300)[f(768)]()):e[f(769)](this[f(973)][f(626)][f(926)](this[f(767)]),3)&&(this[f(784)]=new Tween(this[f(973)][f(626)]).to((new Vector3)[f(703)](this[f(767)]),300)[f(768)]()),this[f(973)][f(546)]=!this[f(509)][f(864)]||debug||location[f(655)][f(595)](e[f(690)]);let v=this[f(398)][f(972)](this[f(634)][f(1031)])[f(926)](y);if(e[f(660)](v,this[f(634)][f(810)])){let t=n[f(1008)];e[f(759)](t,"1")?this[f(509)][f(453)]=this[f(634)]:this[f(509)][f(453)]=this[f(398)][f(412)](t),this[f(591)](e[f(989)],{floor:this[f(509)][f(453)],x:n.x,y:n.y,lng:n[f(727)],lat:n[f(637)]});let s=this[f(509)][f(479)]||this[f(509)][f(864)];if((!w$3||e[f(1035)](i,n[f(675)]))&&!this[f(398)][f(509)][f(569)]&&e[f(798)](n[f(675)],e[f(797)])&&!s){let t=this[f(398)][f(1001)](n),r=this[f(398)][f(451)][f(736)]()[f(926)](t);if((!e[f(648)](isPointInScreen,this[f(398)][f(456)],y)||e[f(396)](r,5))&&e[f(911)](v,this[f(634)][f(810)])){const i=(e[f(759)](null==n?void 0:n[f(1008)],"1")?this[f(661)]:this[f(487)])||this[f(897)];this[f(398)][f(451)][f(463)]((null==i?void 0:i[f(746)])||(e[f(640)](null==(l=this[f(767)])?void 0:l[f(1008)],"1")?17:20),t),this[f(398)][f(451)][f(876)]((null==i?void 0:i[f(420)])||0)}i=n[f(675)]}!s&&(!w$3||e[f(787)](r,n[f(1008)]))&&((null==(u=this[f(509)][f(453)])?void 0:u[f(733)])&&e[f(713)](this[f(509)][f(453)].id,null==(h=this[f(398)][f(509)][f(1008)])?void 0:h[f(663)].id)&&!this[f(398)][f(509)][f(569)]&&this[f(398)][f(557)](this[f(509)][f(453)][f(733)].id,this[f(509)][f(453)].id),r=n[f(1008)]),this[f(509)][f(864)]&&(null==(d=this[f(509)][f(453)])?void 0:d[f(733)])&&e[f(713)](this[f(509)][f(453)].id,null==(p=this[f(398)][f(509)][f(1008)])?void 0:p[f(663)].id)&&this[f(398)][f(557)](this[f(509)][f(453)][f(733)].id,this[f(509)][f(453)].id)}this[f(398)][f(591)](e[f(416)],{floorId:n[f(1008)],marker:this[f(973)]})}))}async[(_md=b(612),b(484))](t,e){const n=b,i={DwzAh:function(t,e){return t===e},txIko:function(t,e){return t<=e},caYUj:n(435),sTEgd:function(t,e){return t(e)}};if(this[n(612)])return;this[n(612)]=!0;let r=(new Vector2)[n(703)](t),s=await this[n(398)][n(738)]({url:o$b[n(523)]+n(978)+this[n(398)][n(1037)].id}),a=JSON[n(400)](s[n(662)][n(663)]);a&&a[n(987)][n(398)]((t=>{const s=n;if(i[s(571)](t[s(725)],e)){let e=(new Vector2)[s(703)](t)[s(926)](r);i[s(654)](e,t[s(492)])&&(console[s(673)](i[s(721)],t[s(411)]),this[s(813)][s(496)]=t[s(411)],debug&&i[s(466)](alert,s(646)+t[s(761)]+s(577)+t[s(411)]+s(596)+t[s(492)]))}}))}[b(562)](t){var e;const n=b;(null==(e=t[n(478)])?void 0:e[n(406)])&&(this[n(509)][n(406)]=t[n(478)][n(406)]),this[n(509)][n(406)]=+{uJXfc:function(t,e){return t(e)}}[n(669)](Number,this[n(509)][n(406)])[n(423)](2)}[b(386)](){const t=b,e={ZJEkk:t(445)};this[t(509)][t(864)]=!1,this[t(938)]&&this[t(813)][t(850)](e[t(900)],this[t(938)]),this[t(938)]=null,this[t(398)].ar[t(706)]()}[b(442)](t){var e;const n=b;!isPc&&this[n(398)][n(451)][n(542)]({dragEnable:!t,rotateEnable:!(null==(e=this[n(634)][n(1037)])?void 0:e[n(458)])&&!t})}[b(459)](){const t=b,e={NrLUH:function(t,e){return t===e}};if(this[t(398)].ar[t(380)]){let n=this[t(509)][t(413)][t(491)](this[t(893)][t(765)]||0),i=[...new Set(n[t(398)]((e=>e[t(1008)].id)))];!e[t(417)](i[0],"1")&&!e[t(417)](i[1],"1")&&(n=n[t(751)]((e=>e[t(1008)].id===this[t(767)][t(1008)]||e[t(1008)][t(807)]&&"1"==this[t(767)][t(1008)])));let r=n[t(398)]((e=>e[t(747)]));r[t(829)](this[t(410)][t(626)][t(983)]()),this[t(398)].ar[t(969)](r)}}async[(_ld=b(938),_kd=b(658),b(681))](t={}){var e,n,i,r,s;const a=b,o={flfus:a(783),HZuYj:function(t,e){return t===e},gEdBW:function(t,e){return t+e},KQULb:function(t,e){return t-e},ggGQY:a(564),AZqeS:a(445),yMmLD:function(t,e){return t>e},TwCJd:function(t,e){return t<e},ogZAt:function(t,e,n,i){return t(e,n,i)},Gdheq:function(t,e){return t+e},qAyTW:function(t,e){return t*e},cVJvZ:function(t,e){return t-e},Yofxm:function(t,e){return t+e},XCVND:function(t,e){return t!==e},TvbxR:function(t,e,n){return t(e,n)},IzVJC:function(t,e){return t>e},QxXbj:function(t,e){return t-e},gXELA:function(t,e){return t+e},seciz:function(t,e){return t<e},uZLIv:function(t,e){return t-e},icXLZ:function(t,e){return t+e},rXLat:function(t,e){return t<=e},lpDLB:a(723),dCcYO:a(493),gEAgE:a(710),TXAQg:function(t,e){return t!=e},fNsZa:function(t,e){return t>e},CqZGg:a(636),ysBIs:function(t,e){return t!==e},QUvQj:a(429),Udodv:a(395),IeDzY:function(t,e){return t==e},YcHUu:function(t,e){return t(e)}};if((!this[a(509)][a(864)]||t[a(1015)])&&this[a(509)][a(952)]&&this[a(509)][a(768)])return this[a(570)]&&o[a(522)](this[a(570)][a(979)].id,"1")&&o[a(692)](this[a(519)][a(733)].id,this[a(570)][a(979)].id)||this[a(767)]&&o[a(422)](this[a(973)][a(626)][a(926)]((new Vector3)[a(703)](this[a(509)][a(413)][0][a(747)])[a(809)](0)),8)?(console[a(673)](o[a(792)]),await this[a(877)](),void this[a(681)]()):(this[a(561)][a(806)](this[a(509)][a(413)],this[a(398)]),this[a(509)][a(864)]=!0,this[a(489)][a(540)](this[a(410)]),null==(e=this[a(398)][a(509)][a(616)])||e[a(779)](),this[a(509)][a(413)][0][a(1008)][a(733)]&&o[a(620)](this[a(509)][a(413)][0][a(747)][a(725)],null==(n=this[a(398)][a(509)][a(1008)])?void 0:n[a(663)].id)&&this[a(398)][a(557)](this[a(509)][a(413)][0][a(1008)][a(733)].id,this[a(509)][a(413)][0][a(747)][a(725)]),this[a(509)][a(403)]=this[a(509)][a(495)]=this[a(509)][a(413)][a(934)],this[a(398)].ar[a(380)]&&this[a(398)].ar[a(708)](),t[a(1015)]?this[a(550)][a(469)](o[a(565)]):this[a(550)][a(469)](o[a(812)]),this[a(509)][a(393)]=null,this[a(509)][a(475)]=null,this[a(509)][a(842)]=null,this[a(509)][a(621)]=100,this[a(893)]={isFirst:!0,nextId:0,nextDis:0,isEnd:!1,backCount:0,nextIdx:1,nextTipDis:0},this[a(398)][a(451)][a(568)]((null==(i=this[a(836)])?void 0:i[a(746)])||(o[a(488)](null==(r=this[a(767)])?void 0:r[a(1008)],"1")?17:20)),this[a(398)][a(451)][a(876)]((null==(s=this[a(836)])?void 0:s[a(420)])||0),this[a(658)]=()=>{const t=a;if(!this[t(509)][t(864)])return;let e=this[t(815)]();if(debug&&this[t(398)][t(887)]([e],o[t(387)],20),o[t(597)](e[t(934)],void 0))return;let n=Object[t(425)](e[t(516)]),i=this[t(509)][t(413)],r=i[t(447)]((e=>+e[t(747)].id==+n[0])),s=i[t(447)]((e=>+e[t(747)].id==+n[1])),c=e[t(765)]||Math[t(664)](r,s),l=i[c];if(l){let n=new Vector2(e.x,e.y)[t(926)](l[t(747)]),r=i[t(491)](c)[t(908)](((e,n)=>e+n[t(1005)]),0),s=o[t(985)](r,n),a=o[t(630)](this[t(509)][t(495)],s);if(this[t(509)][t(403)]=s,o[t(597)](this[t(813)][t(912)],o[t(867)]))return this[t(938)]&&this[t(813)][t(850)](o[t(984)],this[t(938)]),this[t(938)]&&this[t(938)](a);o[t(870)](this[t(813)][t(676)],-170)||o[t(763)](this[t(813)][t(882)],10)?this[t(813)][t(841)]=o[t(1009)](clamp,+o[t(942)](1,o[t(401)](a,.2))[t(423)](2),o[t(763)](this[t(813)][t(756)],-88)?0:.3,1.2):this[t(813)][t(841)]=.9}},this[a(938)]&&this[a(813)][a(850)](o[a(984)],this[a(938)]),this[a(938)]=async e=>{var n;const i=a;let r=this[i(561)][i(426)](e);if(!r)return;let s=r[i(765)],c=this[i(509)][i(413)][o[i(599)](s,1)],l=this[i(509)][i(413)][s],u=this[i(509)][i(413)][o[i(528)](s,1)];if(this[i(679)]&&this[i(679)][i(449)](),this[i(679)]=new Tween(this[i(410)][i(626)]).to(r[i(747)],300)[i(768)](),this[i(893)][i(765)]=s,this[i(1007)](r[i(747)]),this[i(816)](t),this[i(893)][i(638)]=l[i(747)].id,this[i(893)][i(444)]=r[i(747)][i(926)]({...r[i(1006)][i(747)],z:0}),o[i(692)](this[i(813)][i(912)],o[i(867)])&&this[i(658)](),this[i(671)](l,u),this[i(459)](),!this[i(634)][i(1037)][i(448)]&&!this[i(893)][i(748)]){this[i(893)][i(748)]=!0,o[i(643)](setTimeout,(()=>{const t=i;this[t(893)][t(748)]=!1}),500);let t=o[i(599)](360,this[i(561)][i(712)]),e=this[i(398)][i(451)][i(594)]();o[i(803)](o[i(840)](t,e),180)?this[i(398)][i(451)][i(547)](o[i(631)](360,e),0):o[i(762)](o[i(593)](t,e),-180)&&this[i(398)][i(451)][i(547)](o[i(886)](-360,e),0),this[i(398)][i(451)][i(547)](t,500)}if(o[i(544)](this[i(509)][i(495)],this[i(398)][i(1037)][i(851)]||(o[i(597)](null==(n=this[i(509)][i(393)])?void 0:n[i(1008)].id,"1")?10:2))){const t=o[i(526)][i(731)]("|");let e=0;for(;;){switch(t[e++]){case"0":this[i(893)][i(555)]=!0;continue;case"1":this[i(550)][i(469)](o[i(379)]);continue;case"2":this[i(386)]();continue;case"3":this[i(591)](o[i(471)]);continue;case"4":return}break}}this[i(770)](c,l),!w$3&&this[i(398)][i(451)][i(580)](this[i(398)][i(1001)](r[i(747)]),500)},o[a(582)](clearTimeout,w$3),w$3=void 0,this[a(938)](0),void this[a(813)].on(o[a(984)],this[a(938)]))}async[(_jd=b(561),_id2=b(472),b(816))](t={}){const e=b,n={KhRCy:function(t,e){return t<e},ejxvY:function(t,e){return t>e},pNdoh:function(t,e){return t===e},lrYiU:function(t,e,n,i){return t(e,n,i)},bLcqI:function(t,e){return t*e},CVWoM:function(t,e){return t<e},RxXrn:function(t,e){return t(e)},RxAKj:function(t,e){return t+e},TUcKs:function(t,e){return t+e},gNLFN:function(t,e){return t+e},RNzhP:e(709),riJxZ:function(t,e){return t>e},jgSjQ:function(t,e){return t<e},vTphl:function(t,e){return t>=e},WsqqO:function(t,e){return t>e},EVZIT:e(816),pzkXY:e(429)};if(n[e(598)](this[e(813)][e(676)],-160)&&n[e(818)](this[e(813)][e(882)],5))return;let i=this[e(410)][e(626)][e(926)](this[e(767)]),r=n[e(694)](this[e(767)][e(1008)],this[e(634)].id),s=r?n[e(619)](clamp,n[e(993)](this[e(813)][e(920)],7),25,60):10;if(s=+s[e(423)](0),(this[e(561)][e(890)]&&n[e(531)](this[e(561)][e(890)],20)||this[e(561)][e(486)]&&n[e(531)](this[e(561)][e(486)],20)||this[e(561)][e(468)]&&n[e(598)](this[e(561)][e(468)],20)||this[e(561)][e(996)]&&n[e(531)](this[e(561)][e(996)],30))&&(s=50),n[e(956)](showMessage,n[e(427)](n[e(427)](n[e(644)](n[e(686)](n[e(427)](n[e(951)],s),"-"),i[e(423)](1)),"-"),this[e(472)])),n[e(418)](i,s)&&n[e(566)](i,5e3)){if(this[e(472)]+=1,n[e(921)](this[e(472)],r?10:6))if(this[e(472)]=0,t[e(771)])this[e(550)][e(469)](n[e(375)]);else{this[e(509)][e(768)]=this[e(519)],await this[e(877)]();let t=n[e(696)](this[e(892)][e(934)],10);this[e(681)]({isRePlanRoute:!0,notInLine:t}),this[e(591)](n[e(843)])}}else this[e(472)]-=1,this[e(472)]=Math[e(664)](0,this[e(472)])}[b(874)](){const t=b,e={SHxrA:function(t,e){return t*e},vBEyT:function(t,e){return t-e},kdCdI:function(t,e){return t*e},gYfyP:function(t,e){return t(e)},cyGtU:function(t,e){return t*e},cbSDX:function(t,e){return t-e},jbkbm:function(t,e){return t-e},FGybb:t(879),eCIKt:t(907)};let n=0;this[t(813)].on(e[t(480)],(i=>{const r=t;let s=e[r(849)](this[r(398)][r(451)][r(594)](),o$4);n=e[r(849)](i,o$4),this[r(973)][r(889)][r(1013)]=e[r(704)](e[r(704)](e[r(861)](2,Math.PI),n),s),this[r(509)][r(479)]||(this[r(410)][r(889)][r(1013)]=this[r(973)][r(889)][r(1013)],this[r(509)][r(879)]=+e[r(1026)](Number,i)[r(423)](0))})),this[t(398)][t(451)].on(e[t(789)],(()=>{const i=t;if(this[i(509)][i(479)])return;let r=e[i(707)](this[i(398)][i(451)][i(594)](),o$4);this[i(410)][i(889)][i(1013)]=e[i(945)](e[i(711)](e[i(861)](2,Math.PI),n),r),this[i(973)][i(889)][i(1013)]=this[i(410)][i(889)][i(1013)]}))}[(_hd=b(838),b(678))](){const t=b;this[t(509)][t(479)]&&(this[t(509)][t(479)]=!1,this[t(509)][t(964)]=!1,this[t(838)]&&this[t(838)][t(449)](),this[t(442)](!1))}[b(617)](){const t=b;this[t(509)][t(413)]=[],this[t(509)][t(705)]={},this[t(398)][t(617)]()}[b(830)](){var t;const e=b;this[e(410)][e(940)](),null==(t=this[e(1004)])||t[e(390)]()}[b(452)](){const t=b;this[t(402)](),this[t(719)]()}[b(719)](){const t=b;this[t(509)][t(952)]=null,this[t(587)][t(940)]()}[b(684)](t){var e;const n=b;null==(e=this[n(575)][n(877)]((e=>e[n(947)][n(663)].id===t)))||e[n(390)]();let i=this[n(629)][n(447)]((e=>e.id===t));({Fksqr:function(t,e){return t>e}})[n(563)](i,-1)&&this[n(629)][n(537)](i,1)}[b(801)](){const t=b,e={ssVeS:t(432)}[t(538)][t(731)]("|");let n=0;for(;;){switch(e[n++]){case"0":this[t(575)][t(398)]((e=>e[t(390)]()));continue;case"1":this[t(500)]={};continue;case"2":this[t(575)][t(437)]=0;continue;case"3":this[t(718)]={};continue;case"4":this[t(629)][t(437)]=0;continue}break}}[b(402)](){const t=b;this[t(509)][t(768)]=null,this[t(880)][t(940)]()}[b(474)](){const t=b;this[t(509)][t(964)]=!0,this[t(838)]&&this[t(838)][t(470)](),this[t(442)](!1)}[b(722)](){const t=b;this[t(509)][t(964)]=!1,this[t(838)]&&this[t(838)][t(967)](),this[t(442)](!0)}[b(415)](t=this[b(509)][b(1018)]){const e=b;this[e(509)][e(1018)]=t,this[e(804)]&&this[e(804)]()}async[(_gd=b(804),b(828))](){var t,e,n,i,r,s;const a=b,o={cJLfc:a(383),OuCia:function(t,e){return t+e},hxbnt:function(t,e){return t(e)},VDzct:function(t,e){return t-e},ZFbJF:function(t,e){return t*e},OuZfn:function(t,e){return t/e},MrjTR:function(t,e){return t+e},MOjCn:a(732),oXbuY:a(493),pZvUd:function(t,e){return t+e},mTUcO:function(t,e){return t!==e},HyRME:function(t,e){return t==e},vvbSf:function(t,e){return t*e},CjDsz:function(t,e){return t!==e},wvEqX:function(t,e){return t(e)},CNOAU:function(t,e){return t+e},FKxrY:a(395),oavvr:function(t){return t()}};if(this[a(804)]=null,!(null==(t=this[a(509)][a(413)])?void 0:t[a(437)]))return;let c=this[a(509)][a(413)][0];this[a(442)](!0),this[a(838)]&&this[a(838)][a(449)](),this[a(509)][a(1018)]=2.5,null==(e=this[a(398)][a(509)][a(616)])||e[a(779)]();let l=0;!(null==(n=this[a(634)][a(1037)])?void 0:n[a(917)])&&this[a(550)][a(469)](o[a(869)]),this[a(509)][a(479)]=!0,this[a(509)][a(964)]=!1,this[a(509)][a(952)]&&this[a(509)][a(768)]&&this[a(489)][a(540)](this[a(410)]),this[a(893)]={nextIdx:0,nextId:0,nextDis:c[a(1005)],isEnd:!1,nextPanoId:-1,nextTipDis:0};let u=null==(i=this[a(634)][a(1037)])?void 0:i[a(937)];this[a(674)](c),this[a(398)][a(451)][a(876)]((null==(r=this[a(836)])?void 0:r[a(420)])||0,!0),this[a(398)][a(451)][a(568)]((null==(s=this[a(836)])?void 0:s[a(746)])||(this[a(509)][a(413)][0][a(1008)][a(733)]?20:17));let h=async()=>{var t,e,n;const i=a,r={Xnkgs:o[i(700)],biCYM:function(t,e){return o[i(503)](t,e)},poeHw:function(t,e){return o[i(504)](t,e)},FRXwB:function(t,e){return o[i(857)](t,e)},jxcKq:function(t,e){return o[i(618)](t,e)},rHJZX:function(t,e){return o[i(953)](t,e)},hXegJ:function(t,e){return o[i(618)](t,e)}};let s=this[i(509)][i(413)][l],c=this[i(509)][i(413)][o[i(376)](l,1)],d=this[i(509)][i(413)][o[i(376)](l,2)],p=0;if(!c){const e=o[i(1e3)][i(731)]("|");let n=0;for(;;){switch(e[n++]){case"0":!(null==(t=this[i(634)][i(1037)])?void 0:t[i(1023)])&&this[i(550)][i(469)](o[i(794)]);continue;case"1":console[i(673)](o[i(794)]);continue;case"2":this[i(804)]=null;continue;case"3":return;case"4":this[i(678)]();continue}break}}this[i(410)][i(626)][i(421)](s[i(747)].x,s[i(747)].y,0),this[i(893)][i(638)]=c[i(747)].id,this[i(893)][i(765)]=o[i(443)](l,1),this[i(893)][i(444)]=s[i(1005)],c[i(1008)][i(733)]&&(o[i(606)](c[i(1008)].id,s[i(1008)].id)||o[i(606)](null==(e=this[i(398)][i(509)][i(1008)])?void 0:e[i(663)],s[i(1008)]))&&(p+=500,this[i(398)][i(557)](c[i(1008)][i(733)].id,c[i(1008)].id));let f=o[i(606)](c[i(747)][i(725)],s[i(747)][i(725)])&&(o[i(872)](c[i(747)][i(725)],"1")||o[i(872)](s[i(747)][i(725)],"1")),m=this[i(398)][i(649)](s[i(747)],f?d[i(747)]:c[i(747)]),g=o[i(871)](m,c$3);u&&!(null==(n=this[i(634)][i(1037)])?void 0:n[i(448)])&&this[i(398)][i(451)][i(547)](g,l?500:0);let A=this[i(398)][i(1001)](s[i(747)]),y=this[i(398)][i(1001)](c[i(747)]),v={x:s[i(747)].x,y:s[i(747)].y,lng:A[i(727)],lat:A[i(637)]},S={x:c[i(747)].x,y:c[i(747)].y,lng:y[i(727)],lat:y[i(637)]};if(c[i(747)][i(1046)]&&texureLoader[i(1020)](c[i(747)][i(1046)]),o[i(791)](c[i(747)][i(725)],s[i(747)][i(725)])&&o[i(791)](c[i(747)][i(725)],"1")&&o[i(606)](s[i(747)][i(725)],"1"))return void o[i(551)](h,l++);let b=this[i(509)][i(413)][i(491)](o[i(976)](l,1))[i(908)](((t,e)=>t+e[i(1005)]),0);this[i(804)]=(t=0)=>{const e=i,n={UOUGM:function(t,e){return r[W$f(948)](t,e)}};let a=this[e(893)][e(444)];this[e(838)]&&this[e(838)][e(449)](),this[e(838)]=new Tween(v).to(S,r[e(839)](r[e(525)](a,1e3),this[e(509)][e(1018)]))[e(785)](Easing[e(749)][e(888)])[e(1041)](t)[e(768)]()[e(999)]((()=>{var t,n;const i=e,a=r[i(494)][i(731)]("|");let o=0;for(;;){switch(a[o++]){case"0":this[i(509)][i(495)]=r[i(520)](b,this[i(893)][i(444)]);continue;case"1":this[i(893)][i(444)]=new Vector2(v.x,v.y)[i(926)](c[i(747)]);continue;case"2":this[i(671)](c,d);continue;case"3":this[i(398)][i(451)][i(580)]([v[i(727)],v[i(637)]],0);continue;case"4":null==(t=this[i(1004)])||t[i(626)][i(703)](this[i(410)][i(626)]);continue;case"5":this[i(735)](i(589)+this[i(509)][i(495)][i(423)](0)+i(724)+r[i(948)](i$1,this[i(509)][i(495)]));continue;case"6":this[i(410)][i(626)][i(421)](v.x,v.y,0);continue;case"7":!(null==(n=this[i(634)][i(1037)])?void 0:n[i(917)])&&this[i(770)](s,c);continue;case"8":this[i(1007)](this[i(410)][i(626)]);continue;case"9":this[i(410)][i(889)][i(1013)]=r[i(966)](m,r[i(831)](this[i(398)][i(451)][i(594)](),o$4));continue}break}}))[e(714)]((()=>{n[e(1012)](h,l++)}))},this[i(804)](p)};o[a(548)](h)}[b(671)](t,e){const n=b,i={syYiI:function(t,e){return t<e},hyMbX:function(t,e){return t!==e},iSkRS:n(1045),LyRDv:function(t,e){return t+e},lzXys:function(t,e){return t/e}};if(e&&t[n(747)][n(1046)]&&i[n(1029)](this[n(893)][n(444)],8)&&i[n(532)](this[n(893)][n(638)],this[n(893)][n(992)])){this[n(893)][n(992)]=this[n(893)][n(638)];let r=(new Vector2)[n(703)](t[n(747)])[n(884)]((new Vector2)[n(703)](e[n(747)]))[n(394)]();this[n(591)](i[n(728)],{point:t[n(747)],angle:i[n(946)](r,i[n(796)](Math.PI,2))})}}[b(674)](t){var e;const n=b,i={mqzVq:function(t,e){return t+e},xzWPq:function(t,e){return t<e},zelgm:function(t,e){return t!=e},WZoGT:n(842),DCbMy:function(t,e){return t*e},dxcvH:n(665),RWSyY:n(581),dzShq:n(639),XzdGB:function(t,e){return t+e},hzvuh:n(997),ZjFoS:function(t,e){return t+e},sJuDl:n(1027),pBcmR:n(433),RFcnS:function(t,e){return t==e},DOauj:function(t,e){return t*e}};let r=this[n(509)][n(413)][n(958)](t),s=this[n(893)][n(444)],a=s,o=this[n(509)][n(413)][n(491)](i[n(414)](r,1)),c=!1,l=!1;for(let u=0;i[n(883)](u,o[n(437)]);u++){const t=o[u];if(a+=t[n(1005)],t[n(842)]&&!l&&(i[n(739)](this[n(509)][n(842)],t[n(842)])&&(this[n(509)][n(842)]&&(this[n(591)](i[n(790)],this[n(509)][n(842)]),this[n(718)][this[n(509)][n(842)].id]--),this[n(509)][n(842)]=t[n(842)]),a-=t[n(1005)],this[n(509)][n(621)]=+i[n(1028)](a,.9)[n(423)](1),l=!0),!c)if(t[n(527)]&&(t[n(527)][n(595)]("直行")||t[n(527)][n(595)](i[n(642)])))s+=t[n(1005)];else if(t[n(527)]||t[n(555)]){const r=i[n(822)][n(731)]("|");let a=0;for(;;){switch(r[a++]){case"0":c=!0;continue;case"1":this[n(509)][n(475)]=this[n(509)][n(393)];continue;case"2":t[n(555)]?this[n(509)][n(404)]=i[n(1038)]:t[n(527)][n(595)]("电梯")?this[n(509)][n(404)]=i[n(773)](i[n(780)],o[i[n(431)](u,1)][n(1008)][n(702)]):t[n(527)][n(595)]("扶梯")?this[n(509)][n(404)]=i[n(414)](i[n(688)],o[i[n(773)](u,1)][n(1008)][n(702)]):t[n(527)][n(595)]("楼梯")?this[n(509)][n(404)]=i[n(431)](i[n(608)],o[i[n(773)](u,1)][n(1008)][n(702)]):this[n(509)][n(404)]=t[n(527)][n(826)]("即将","");continue;case"3":!w$3&&this[n(398)][n(451)][n(568)]((null==(e=this[n(836)])?void 0:e[n(746)])||(i[n(837)](t[n(1008)].id,"1")?17:20));continue;case"4":this[n(509)][n(393)]=t;continue;case"5":this[n(509)][n(508)]=+i[n(954)](s,.9)[n(423)](0);continue}break}}}!l&&(this[n(509)][n(842)]=null)}[b(770)](t,e){var n,i,r,s;const a=b,o={ATUEL:function(t,e){return t>=e},Hwaeb:function(t,e){return t<e},yUIjF:function(t,e){return t*e},NalTy:function(t,e){return t+e},iBgyn:function(t,e){return t+e},bPcXi:function(t,e){return t>e},WSciS:function(t,e){return t+e},Qzhtp:function(t,e){return t+e}};this[a(674)](t),e&&!o[a(774)](this[a(509)][a(1018)],3)&&(o[a(657)](this[a(509)][a(508)],Math[a(664)](o[a(645)](this[a(509)][a(406)],6),6))&&!this[a(893)][null==(n=this[a(509)][a(393)])?void 0:n[a(747)].id]&&this[a(509)][a(404)]&&(this[a(893)][null==(i=this[a(509)][a(393)])?void 0:i[a(747)].id]=1,this[a(550)][a(469)](o[a(1044)](this[a(509)][a(404)][a(595)]("梯")?"请":"即将",this[a(509)][a(404)]))),!this[a(893)][o[a(760)](null==(r=this[a(509)][a(393)])?void 0:r[a(747)].id,"直行")]&&o[a(609)](this[a(509)][a(508)],10)&&(this[a(893)][o[a(1044)](null==(s=this[a(509)][a(393)])?void 0:s[a(747)].id,"直行")]=1,this[a(550)][a(469)](o[a(558)](o[a(1044)](o[a(1022)]("直行",this[a(509)][a(508)]),"米后"),this[a(509)][a(404)]))))}[b(741)](t,e,n,i=3,r){const s=b,a={RsHLv:function(t,e){return t%e},SvmPL:function(t,e){return t+e},wVbux:function(t,e){return t+e},LHaRt:function(t,e,n){return t(e,n)},ucLGa:function(t,e){return t+e},lKdHD:function(t,e){return t<e},ItCmw:function(t,e){return t(e)},ZLQjG:function(t,e){return t==e},MkncZ:function(t,e){return t===e},kqXKf:function(t,e){return t>e}};r=r||(a[s(856)](e,"1")?20:5);const o=this[s(752)][s(971)]({point:(new Vector3)[s(703)](n),floor:this[s(398)][s(412)](e)});if(a[s(685)](o[s(934)],void 0)||a[s(454)](o[s(934)],500))return;if(t[s(516)]){let e=Object[s(425)](t[s(516)]);e[s(437)]&&e[s(398)]((e=>{const n=s;this[n(752)][n(980)][n(863)](t.id,e),this[n(752)][n(980)][n(863)](e,t.id)}))}a[s(848)](o[s(934)],1.5)?(t.x=o.x,t.y=o.y):(t.x=n.x,t.y=n.y),t[s(549)]=o,t[s(516)]=o[s(516)],t[s(725)]=e;const c=e=>{const n=s,i={LjrxN:function(t,e){return a[W$f(928)](t,e)},uVxCL:function(t,e){return a[W$f(625)](t,e)},Jxqrm:function(t,e){return a[W$f(610)](t,e)},CYMMw:function(t,e,n){return a[W$f(824)](t,e,n)},lhQnP:function(t,e){return a[W$f(716)](t,e)}};a[n(848)](e[n(497)],r)&&(e[n(511)][n(398)](((r,s)=>{const a=n;let o=r[a(516)][e[a(511)][i[a(827)](i[a(697)](s,1),e[a(511)][a(437)])].id];o&&this[a(752)][a(980)][a(490)](i[a(853)](r.id,""),t.id,{distance:i[a(409)](getLineLength,t,r),from:r,to:t,min:e,type:o});let c=e[a(511)][i[a(827)](i[a(853)](s,1),e[a(511)][a(437)])][a(516)][r.id];c&&this[a(752)][a(980)][a(490)](t.id,i[a(755)](r.id,""),{distance:i[a(409)](getLineLength,t,r),from:t,to:r,min:e,type:c})})),Object[n(998)](t[n(516)],e[n(516)]))};return o[s(439)][s(491)](0,i)[s(398)]((t=>{a[s(680)](c,t)})),debug&&this[s(398)][s(975)](o[s(439)][s(751)]((t=>Object[s(425)](o[s(516)])[s(595)](Object[s(425)](t[s(516)])[0])&&Object[s(425)](o[s(516)])[s(595)](Object[s(425)](t[s(516)])[1])))[s(398)]((t=>{const e=s;return{x:t.x,y:t.y,text:t[e(497)][e(423)](1)}}))),t}[b(825)](){const t=b,e={bOqwT:t(858),xROJG:function(t,e){return t==e}},n=e[t(781)][t(731)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[t(519)][t(733)]=this[t(767)][t(979)];continue;case"1":this[t(519)][t(905)]=[this[t(892)].id];continue;case"2":if(!this[t(767)])return;continue;case"3":this[t(519)][t(905)][t(437)]&&!this[t(509)][t(768)]&&this[t(977)]();continue;case"4":this[t(741)](this[t(892)],this[t(767)][t(979)].id,this[t(767)],2,e[t(904)](this[t(767)][t(1008)],"1")?10:2);continue}break}}[b(815)](){var t;const e=b,n={WnOVO:function(t,e){return t>e},DufVZ:function(t,e){return t===e},iHiZs:function(t,e){return t-e},JAHlU:function(t,e){return t+e},YVFHv:function(t,e){return t+e},elQsn:function(t,e){return t===e},VKSIb:function(t,e){return t-e},NmOMR:function(t,e){return t!==e},DXMuo:function(t,e){return t<e},qsIYP:function(t,e){return t+e}};let i,r=this[e(767)][e(979)],s=[...new Set(this[e(509)][e(413)][e(398)]((t=>t[e(1008)].id)))],a=s[e(958)](r.id);n[e(844)](a,-1)&&(i=n[e(922)](r.id,this[e(634)].id)?[s[n[e(530)](a,1)],s[a],s[n[e(776)](a,1)]][e(751)]((t=>t)):n[e(922)](s[n[e(530)](a,1)],this[e(634)].id)||n[e(922)](s[n[e(734)](a,1)],this[e(634)].id)?[this[e(634)].id,r.id]:[r.id]);let o=n[e(717)](r.id,this[e(634)].id),c=Math[e(664)](n[e(923)](this[e(893)][e(765)],3),0);if(n[e(717)](null==i?void 0:i[e(437)],1))for(;n[e(517)](null==(t=this[e(509)][e(413)][c])?void 0:t[e(1008)].id,i[0])&&n[e(898)](c,1e4);)c++;let l=this[e(509)][e(413)][e(491)](c,n[e(776)](c,8)),u=(null==i?void 0:i[e(437)])?l[e(751)]((t=>{const n=e;return i[n(877)]((e=>e===t[n(1008)].id))||o&&t[n(1008)][n(807)]}))[e(398)]((t=>t[e(747)])):void 0,h=this[e(752)][e(971)]({point:(new Vector3)[e(703)](this[e(767)]),floor:r,path:u});return{floorData:r,...h,nextIdx:u?n[e(854)](h[e(765)],c):0}}[b(977)](){const t=b;this[t(509)][t(768)]=this[t(519)]}[(_fd=b(880),_ed=b(587),b(775))](){const t=b,e={SKchv:function(t,e,n,i){return t(e,n,i)},oDEsc:function(t,e,n,i){return t(e,n,i)}};this[t(880)]=new Sprite(new SpriteMaterial({sizeAttenuation:!1,depthTest:!1})),this[t(587)]=new Sprite(new SpriteMaterial({sizeAttenuation:!1,depthTest:!1,map:texureLoader[t(1020)](C$5)})),this[t(880)][t(994)]=this[t(587)][t(994)]=renderOrderConfig[t(1036)],this[t(587)][t(1031)][t(421)](.5,-.5),this[t(880)][t(889)][t(398)]=texureLoader[t(1020)](h$3,(()=>{const n=t;e[n(963)](setSize,this[n(880)],.2,this[n(398)][n(438)])})),this[t(587)][t(889)][t(398)]=texureLoader[t(1020)](C$5,(()=>{const n=t;e[n(536)](setSize,this[n(587)],.2,this[n(398)][n(438)])})),this[t(880)][t(1031)][t(703)](this[t(587)][t(1031)])}[(_dd=b(575),b(378))](t){const e=b,n={Lztqx:function(t,e,n,i){return t(e,n,i)}};let i=new Sprite(new SpriteMaterial({sizeAttenuation:!1,depthTest:!1}));return i[e(994)]=renderOrderConfig[e(1036)],i[e(1031)][e(421)](.5,-.5),i[e(947)][e(663)]=t,i[e(626)][e(703)](t[e(1031)])[e(809)](t[e(855)]||2),i[e(889)][e(398)]=texureLoader[e(1020)](d$2,(()=>{const t=e;n[t(614)](setSize,i,.3,this[t(398)][t(438)])})),this[e(575)][e(990)](i),i}[(_cd=b(949),_bd=b(862),_ad=b(615),b(944))](){const t=b,e={UevoA:t(647),FzhCH:t(473),sOxPV:t(419),PerLf:function(t,e){return t(e)},aneVF:function(t,e){return t+e},NYbBO:function(t,e){return t*e},Joboo:function(t,e){return t>=e},rBZWv:t(498),YynOP:t(968),YewzE:function(t,e){return t>e},KGMCZ:t(600),lqLZo:t(813),iaQEE:function(t,e){return t*e},qOZOv:t(445),tTBpN:t(1042)};this[t(398)].on(e[t(652)],(n=>{var i,r,s,a,o,c,l;const u=t;console[u(673)](e[u(916)],n);let h=null==(i=n[u(506)])?void 0:i[u(947)][u(461)];if(!h){let t=this[u(398)][u(878)][u(623)](n[u(788)],this[u(398)][u(865)][u(981)])[u(877)]((t=>t[u(506)][u(702)]===u(729)));h=t?{parent:null==t?void 0:t[u(506)][u(947)][u(663)]}:{parent:(null==(r=this[u(398)][u(509)][u(1008)])?void 0:r[u(663)])||this[u(634)]}}let d={x:115.1590689362627,y:13.020685724382645,floor:(null==(s=null==h?void 0:h[u(733)])?void 0:s.id)||(null==(a=this[u(398)][u(509)][u(1008)])?void 0:a[u(663)].id)||this[u(634)].id,type:(null==h?void 0:h[u(733)][u(616)])?e[u(891)]:e[u(720)],originGps:{lng:110.31339088,lat:25.33182552,accuracy:4.54603910446167,speed:0},lng:115.1590689362627,lat:13.020685724382645,angle:348,time:191};d[u(478)][u(406)]=e[u(925)](parseInt,e[u(534)](e[u(464)](Math[u(529)](),20),1)[u(423)](2));let p=this[u(398)][u(972)](n[u(477)]);d[u(637)]=n[u(477)][u(637)],d[u(727)]=n[u(477)][u(727)],d.x=p.x,d.y=p.y,this[u(509)][u(864)]&&e[u(572)](null==(o=this[u(730)])?void 0:o[u(437)],5)&&(d[u(675)]=e[u(510)]),location[u(655)][u(595)](e[u(845)])?!this[u(509)][u(864)]&&(this[u(813)][u(1021)]={...d,...this[u(398)][u(1025)](n[u(477)][u(727)],n[u(477)][u(637)])}):this[u(813)][u(1021)]={...d,...this[u(398)][u(1025)](n[u(477)][u(727)],n[u(477)][u(637)])},this[u(813)][u(1021)][u(1008)]=d[u(1008)],this[u(730)]=this[u(730)]||[],this[u(730)][u(990)](n),e[u(860)](this[u(730)][u(437)],5)&&this[u(730)][u(552)](),null==(c=this[u(813)])||c[u(591)]((null==h?void 0:h[u(733)][u(521)])?e[u(405)]:e[u(436)],(null==h?void 0:h[u(733)][u(521)])?{originGps:{lng:n[u(477)][u(727)],lat:n[u(477)][u(637)],alt:0,accuracy:5,speed:e[u(925)](parseInt,e[u(534)](e[u(832)](Math[u(529)](),1),1)[u(423)](2)),heading:0},current:{lng:n[u(477)][u(727)],lat:n[u(477)][u(637)]}}:d),this[u(509)][u(864)]&&(null==(l=this[u(813)])||l[u(591)](e[u(939)],this[u(813)][u(841)]))}))}}function i$1(t){const e=b,n={jZHUi:function(t,e){return t(e)},CJrDh:function(t,e){return t>e},ZDfIk:function(t,e){return t(e)},Yuiid:function(t,e){return t/e},jLBmR:function(t,e){return t(e)},rXphb:function(t,e){return t%e},MVQmv:function(t,e){return t>e},vDbja:function(t,e){return t/e},iXLnU:function(t,e){return t(e)},hDqdH:function(t,e){return t+e},aBXhk:function(t,e){return t+e},dcsrz:function(t,e){return t(e)},nmPYC:function(t,e){return t>e},HlQTn:function(t,e){return t+e},xmvkq:function(t,e){return t+e},YudCU:function(t,e){return t>e}};let i=n[e(701)](parseInt,t),r=0,s=0;n[e(820)](i,60)&&(r=n[e(588)](parseInt,n[e(505)](i,60)),i=n[e(585)](parseInt,n[e(936)](i,60)),n[e(957)](r,60)&&(s=n[e(588)](parseInt,n[e(793)](r,60)),r=n[e(667)](parseInt,n[e(936)](r,60))));let a=n[e(641)](n[e(584)]("",n[e(903)](parseInt,i)),"秒");return n[e(553)](r,0)&&(a=n[e(583)](n[e(668)](n[e(641)]("",n[e(585)](parseInt,r)),"分"),a)),n[e(930)](s,0)&&(a=n[e(668)](n[e(641)](n[e(584)]("",n[e(701)](parseInt,s)),"小时"),a)),a}const N$1=W$e;function M$e(){const t=["deviceId","arrowGroup","NtzIo","883696burLQt","true","webkit-playsinline","css2DRenderer","cameraZ","setHSL","kind","preload","setFromAxisAngle","value","16QvKsCt","JRgad","arUpdate","video","x5-video-player-fullscreen","ZQvrR","angleDifference","cssText","UtJHm","rotation","setZ","renderer","scene","ZLlPR","enabled","zIndex","setPixelRatio","clientHeight","play","updateProjectionMatrix","ONDYO","deviceOrientationCB","cancelRAFId","clientWidth","iiXfL","xldpo","8268729caKdVo","beta","enumerateDevices","videoSteam","MkNkP","alphaOffset","2982cGRtPk","allow","objectFit","cross","cameraOffset","videoDevices","ZXY","lightFactor","KkNVh","SGNwj","mFjda","parentElement","idx","bAyJy","JTrbP","mediaDevices","visible","cover","7703793jZWJMq","arrowNum","reject","orientation","ObJmO","height:40%;width:100%;z-index: 2;overflow: hidden;background-color: #d2e4fa;position:absolute;bottom:0;left:0;","NzjJz","height","render","yncrK","HfSQv","11595EHTZGq","catch","status","position:absolute;left:0;top:0;width:100%;height:100%;","arrowSpace","#108EE9","alpha","openAR","camera","lineDir","muted","#eee","innerWidth","deviceOrientation_err","multiply","group","position:absolute;left:0;top:0;width:100%;height:60%;","filter","OnYqt","iItca","yAxes","CxTHI","appendChild","groundColor","6vmkJDC","copy","floor","MaXwC","scale","quaternion","JuYOi","nKRpz","clone","oncanplay","android","EVyYH","setAttribute","init","classList","hemiLight","euler","x5-video-player-type","srcObject","angleTo","append","height:100%;width:100%;position:relative;","position:absolute;left:0;top:0;width:100%;height:100;","width","Bznzg","1|0|4|2|3|5","aspect","closeAR","DsQHr","map","rkPBA","hqzCG","length","then","initTHREE","playsinline","videoHeight","AoabC","拒绝获取相机画面","KxQuH","removeChild","RAF","update","split","20MSVwaC","getSpacedPoints","lMpJp","mapEl","set","videoinput","bEEye","ffJza","jCfhM","UMeIJ","x-webkit-airplay","ZfEZr","auto","differentialDirection","createLine","20ZzTfeQ","fkgAh","VuphR","dwXdS","trace","lightHeight","100%","QGwBU","aiqQq","initCamera","#fff","children","sKgAr","jeWtN","lastDeviceRotation","createGeo","BLXiO","setFromPoints","arView","emit","reorder","RoFPT","SINdM","aOzov","createElement","UwfZm","1606763lkRlsu","highp","beforeOpenAR","buildLights","navi","domElement","AmCat","position","XYZ","nydqu","FmlpQ","qtVmZ","0|3|6|1|9|2|7|10|4|8|5","updateCamera","environment","videoWidth","oYmed","UliJu","kEZIE","getLength","sub","deviceOrientation_err:","innerHeight","nKmmR","multiplyScalar","add","wcIar","getWorldDirection","gamma","lReST","log","color","🚀 获取相机权限失败 err:","pRQro","ljVEP","setSize","ZpxSC","VcISM","degToRad","assign","cGEik","style","getUserMedia","div","cUUmD","normalize","directLightFactor","setFromEuler","angle","isNavi","1222IsZsIP","SDKGS","qSENn","1641108BNNwSB","pathPoint"];return(M$e=function(){return t})()}!function(t,e){const n=W$e,i=t();for(;;)try{if(988130===-parseInt(n(182))/1+parseInt(n(232))/2*(-parseInt(n(282))/3)+parseInt(n(379))/4*(parseInt(n(311))/5)+parseInt(n(335))/6*(parseInt(n(276))/7)+-parseInt(n(250))/8*(-parseInt(n(300))/9)+parseInt(n(156))/10*(parseInt(n(240))/11)+parseInt(n(235))/12)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$e);class AR extends EventDispatcher{constructor(t){const e=N$1;super(),__publicField(this,_he),__publicField(this,"el",document[N$1(180)](N$1(225))),__publicField(this,_ge),__publicField(this,_fe),__publicField(this,_ee),__publicField(this,_de),__publicField(this,_ce,!1),__publicField(this,_be,15),__publicField(this,_ae,.7),__publicField(this,_$d,1.2),__publicField(this,__d,50),__publicField(this,_Zd),__publicField(this,_Yd),__publicField(this,_Xd),__publicField(this,_Wd),__publicField(this,_Vd),__publicField(this,_Ud),__publicField(this,_Td,0),__publicField(this,_Sd),__publicField(this,_Rd,1.5),__publicField(this,_Qd,1),__publicField(this,_Pd,new Euler),__publicField(this,_Od),__publicField(this,_Nd),__publicField(this,_Md,.6),__publicField(this,_Ld,new Vector3(0,1,0)),__publicField(this,_Kd),__publicField(this,_Jd),__publicField(this,_Id),this[e(364)]=t}[(_he=N$1(364),_ge=N$1(287),_fe=N$1(238),_ee=N$1(326),_de=N$1(319),_ce=N$1(264),_be=N$1(301),_ae=N$1(244),_$d=N$1(286),__d=N$1(161),_Zd=N$1(320),_Yd=N$1(392),_Xd=N$1(256),_Wd=N$1(261),_Vd=N$1(243),_Ud=N$1(262),_Td=N$1(294),N$1(271))](t){const e=N$1,n={DsQHr:function(t,e){return t==e},JTrbP:function(t,e){return t%e},jCfhM:function(t,e){return t<e},VuphR:e(203),fkgAh:e(324)};(null==t?void 0:t[e(249)])?this[e(195)](t[e(249)]):(window[e(324)]=!0,(n[e(363)](n[e(296)](this[e(294)]++,31),0)||n[e(387)](this[e(294)],10))&&(console[e(212)](n[e(158)],t),console[e(160)](n[e(157)])))}[N$1(348)](){const t=N$1;this[t(261)]||this[t(369)]()}[(_Sd=N$1(350),_Rd=N$1(289),_Qd=N$1(228),N$1(185))](){const t=N$1,e={rkPBA:t(166),lMpJp:function(t,e){return t*e},JRgad:function(t,e){return t*e},nKRpz:function(t,e){return t*e},Bznzg:function(t,e){return t*e},ZfEZr:function(t,e){return t*e},BLXiO:function(t,e){return t*e},ljVEP:function(t,e){return t*e},sKgAr:function(t,e){return t*e}},n=new AmbientLight(e[t(365)],this[t(289)]);this[t(262)][t(207)](n);const i=new DirectionalLight(e[t(365)],e[t(381)](e[t(251)](.5,this[t(289)]),this[t(228)]));i[t(189)][t(383)](100,100,100),this[t(262)][t(207)](i);const r=new DirectionalLight(e[t(365)],e[t(342)](e[t(359)](.4,this[t(289)]),this[t(228)]));r[t(189)][t(383)](-100,100,-100),this[t(262)][t(207)](r);const s=new DirectionalLight(e[t(365)],e[t(342)](e[t(359)](.3,this[t(289)]),this[t(228)]));s[t(189)][t(383)](100,100,-100),this[t(262)][t(207)](s);const a=new DirectionalLight(e[t(365)],e[t(390)](e[t(342)](.2,this[t(289)]),this[t(228)]));a[t(189)][t(383)](-100,100,100),this[t(262)][t(207)](a);const o=new DirectionalLight(e[t(365)],e[t(172)](e[t(216)](.8,this[t(289)]),this[t(228)]));o[t(189)][t(383)](0,-100,0),this[t(262)][t(207)](o);let c=new HemisphereLight(e[t(365)],e[t(365)],e[t(168)](2,this[t(289)]));c[t(213)][t(245)](1,1,1),c[t(334)][t(245)](.95,1,.75),c[t(189)][t(383)](0,0,this[t(161)]),this[t(350)]=c,this[t(262)][t(207)](c)}[N$1(369)](){const t=N$1,e={UtJHm:t(183),MaXwC:t(174),xldpo:t(314),mFjda:t(327),FmlpQ:t(357),AmCat:function(t,e){return t/e},MkNkP:t(190)};let n=this[t(261)]=new WebGLRenderer({antialias:!0,alpha:!0,precision:e[t(258)],premultipliedAlpha:!1,maxLights:3});n[t(187)][t(349)][t(207)](e[t(338)]),n[t(217)](window[t(323)],window[t(204)]),n[t(266)](devicePixelRatio),n[t(187)][t(223)][t(257)]=e[t(275)],this.el[t(333)](n[t(187)]),this.el[t(223)][t(257)]=e[t(292)],this[t(243)]=new CSS2DRenderer,this[t(243)][t(217)](window[t(323)],window[t(204)]),this[t(243)][t(187)][t(223)][t(257)]=e[t(192)],this.el[t(333)](this[t(243)][t(187)]),(this[t(319)]=new PerspectiveCamera(75,e[t(188)](n[t(187)][t(273)],n[t(187)][t(267)]),.1,100))[t(259)][t(176)](e[t(280)]);let i=this[t(262)]=new Scene;this[t(326)]=new Object3D,i[t(207)](this[t(326)]),this[t(185)]()}[N$1(318)](){const t=N$1,e={SINdM:t(194),OnYqt:t(184),KkNVh:t(318)},n=e[t(178)][t(378)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[t(175)](e[t(329)]);continue;case"1":this[t(264)]=!0;continue;case"2":this[t(171)]();continue;case"3":this[t(348)]();continue;case"4":this[t(364)][t(382)][t(223)][t(257)]=t(305);continue;case"5":this[t(364)][t(186)][t(252)]&&this[t(364)][t(186)][t(252)]();continue;case"6":this[t(281)]=0;continue;case"7":this[t(165)]();continue;case"8":this[t(175)](e[t(290)]);continue;case"9":this[t(364)].el[t(355)](this.el);continue;case"10":this[t(376)]();continue}break}}[N$1(362)](){var t;const e=N$1,n={oYmed:e(360),qSENn:function(t,e){return t(e)},ZLlPR:e(362)},i=n[e(198)][e(378)]("|");let r=0;for(;;){switch(i[r++]){case"0":null==(t=this.el[e(293)])||t[e(375)](this.el);continue;case"1":this[e(264)]=!1;continue;case"2":this[e(364)][e(382)][e(223)][e(257)]=e(356);continue;case"3":n[e(234)](cancelAnimationFrame,this[e(272)]);continue;case"4":this[e(253)]&&(this[e(253)][e(353)]=null);continue;case"5":this[e(175)](n[e(263)]);continue}break}}[(_Pd=N$1(351),_Od=N$1(170),N$1(195))](t=this[N$1(170)]){var e;const n=N$1,i={pRQro:function(t,e){return t%e},NzjJz:function(t,e){return t+e},iItca:n(288),lReST:function(t,e){return t===e},SGNwj:function(t,e){return t/e},SDKGS:function(t,e){return t===e},KxQuH:function(t,e){return t/e}};if(this[n(264)]&&(this[n(170)]=t,t)){const r=t[n(277)]?MathUtils[n(220)](t[n(277)]):0,s=t[n(210)]?MathUtils[n(220)](t[n(210)]):0;let a=i[n(215)](i[n(306)](-t[n(317)],3600),360);a=MathUtils[n(220)](a),this[n(319)][n(340)][n(229)](this[n(351)][n(383)](r,s,a,i[n(330)])),this[n(319)][n(189)][n(336)](this[n(238)][n(167)][0][n(189)])[n(207)](this[n(238)][n(167)][1][n(189)])[n(206)](.5)[n(260)](this[n(244)]);let o=(null==(e=screen[n(303)])?void 0:e[n(230)])||window[n(303)]||0;i[n(211)](o,90)?this[n(319)][n(340)][n(325)]((new Quaternion)[n(248)](new Vector3(0,0,1),i[n(291)](-Math.PI,2))):(i[n(211)](o,-90)||i[n(233)](o,270))&&this[n(319)][n(340)][n(325)]((new Quaternion)[n(248)](new Vector3(0,0,1),i[n(374)](Math.PI,2))),this[n(319)][n(189)][n(202)](this[n(319)][n(209)](new Vector3)[n(227)]()[n(206)](this[n(286)])),this[n(350)][n(189)][n(336)](this[n(319)][n(189)])[n(260)](this[n(161)])}}[N$1(171)](){const t=N$1,e={aiqQq:t(322),hqzCG:t(316),bAyJy:function(t,e){return t<e}};if(this[t(238)])return;const n=new Shape;n[t(173)]([{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(164)],roughness:.5,metalness:.01}),new MeshPhysicalMaterial({color:e[t(366)],roughness:.5,metalness:.01})]);r[t(339)][t(206)](.3),this[t(238)]=new Object3D;for(let s=0;e[t(295)](s,this[t(301)]);s++){let e=r[t(343)]();this[t(238)][t(207)](e)}this[t(326)][t(207)](this[t(238)])}[(_Nd=N$1(236),_Md=N$1(315),_Ld=N$1(331),N$1(393))](t){const e=N$1,n={jeWtN:function(t,e){return t+e},nKmmR:function(t,e){return t*e},dwXdS:function(t,e){return t>e},UwfZm:function(t,e){return t/e}};if(!this[e(264)]||!this[e(364)][e(186)][e(313)][e(231)])return;let i=this[e(238)][e(167)];const r=new Path(t);let s=r[e(201)]();this[e(236)]=r[e(380)](Math[e(337)](n[e(181)](s,this[e(315)])))[e(364)]((t=>new Vector3(null==t?void 0:t.x,null==t?void 0:t.y,0))),i[e(364)]((t=>t[e(298)]=!1)),this[e(236)][e(364)](((t,r)=>{const s=e,a=this[s(236)][n[s(169)](r,1)];let o=i[r];if(o&&(o[s(298)]=!!a,a)){o[s(189)][s(336)](t);let e=a[s(343)]()[s(202)](o[s(189)]),i=e[s(354)](this[s(331)]),r=e[s(285)](this[s(331)]);o[s(259)].z=n[s(205)](n[s(159)](r.z,0)?-1:1,i)}})),i[1][e(298)]&&(this[e(320)]=(new Vector2)[e(336)](i[1][e(189)])[e(202)]((new Vector2)[e(336)](i[0][e(189)]))[e(227)]()),this[e(195)]()}async[(_Kd=N$1(253),_Jd=N$1(279),N$1(165))](){var t;const e=N$1,n={bEEye:e(253),qtVmZ:e(162),cUUmD:e(299),cGEik:e(321),RoFPT:e(241),kEZIE:e(247),nydqu:e(391),wcIar:e(242),EVyYH:e(370),QGwBU:e(389),ObJmO:e(283),HfSQv:e(352),AoabC:e(254),UliJu:e(214),aOzov:e(373),ffJza:e(196),ZpxSC:function(t,e){return t-e}};if(this[e(279)])return this[e(253)][e(353)]=this[e(279)],void this[e(253)][e(268)]();if(ua[e(345)]&&(null==(t=null==navigator?void 0:navigator[e(297)])?void 0:t[e(278)])){const t=await navigator[e(297)][e(278)]();this[e(287)]=t[e(328)]((t=>t[e(246)]===e(384)))}return navigator[e(297)][e(224)]({video:Object[e(221)]({audio:!1,facingMode:{ideal:n[e(386)]},width:{ideal:480},height:{ideal:270}},ua[e(345)]?{deviceId:this[e(287)][n[e(218)](this[e(287)][e(367)],1)][e(237)]}:{})})[e(368)]((t=>{const i=e;this[i(279)]=t;let r=document[i(180)](n[i(385)]);r[i(321)]=!0,r[i(223)][i(358)]=n[i(193)],r[i(223)][i(307)]=n[i(193)],r[i(223)][i(284)]=n[i(226)],r[i(223)][i(265)]="-2",r[i(347)](n[i(222)],n[i(177)]),r[i(347)](n[i(200)],n[i(191)]),r[i(347)](n[i(208)],n[i(177)]),r[i(347)](n[i(346)],n[i(177)]),r[i(347)](n[i(163)],n[i(304)]),r[i(347)](n[i(310)],"h5"),r[i(347)](n[i(372)],n[i(177)]),this[i(253)]=r,r[i(344)]=()=>{const t=i;r[t(358)]=r[t(197)],r[t(307)]=r[t(371)],this.el[t(333)](r)},r[i(353)]=t,r[i(321)]=!0,r[i(268)]()}))[e(312)]((t=>{const i=e;return console[i(212)](n[i(199)],t),this[i(362)](),Promise[i(302)](n[i(179)])}))}[(_Id=N$1(272),N$1(376))](){const t=N$1,e={CxTHI:function(t,e,n){return t(e,n)},ZQvrR:t(377),JuYOi:function(t,e){return t(e)},iiXfL:function(t){return t()},NtzIo:function(t,e){return t(e)},VcISM:function(t){return t()}};this[t(272)]&&e[t(239)](cancelAnimationFrame,this[t(272)]);let n=e[t(332)](fps,(()=>{const n=t;e[n(332)](B$a,this[n(261)],this[n(319)]),this[n(261)][n(308)](this[n(262)],this[n(319)]),this[n(243)][n(308)](this[n(262)],this[n(319)]),this[n(175)](e[n(255)])}),40);const i=()=>{const r=t;this[r(272)]=e[r(341)](requestAnimationFrame,i),e[r(274)](n)};e[t(219)](i)}}function W$e(t,e){const n=M$e();return(W$e=function(t,e){return n[t-=156]})(t,e)}function B$a(t,e){const n=N$1,i={ONDYO:function(t,e){return t!==e},UMeIJ:function(t,e){return t!==e},yncrK:function(t,e){return t/e}},r=t[n(187)];(i[n(270)](r[n(358)],r[n(273)])||i[n(388)](r[n(307)],r[n(267)]))&&(e[n(361)]=i[n(309)](r[n(273)],r[n(267)]),e[n(269)](),t[n(217)](r[n(273)],r[n(267)],!1))}var A=W$d;!function(t,e){for(var n=W$d,i=t();;)try{if(569093===-parseInt(n(511))/1+parseInt(n(497))/2*(parseInt(n(476))/3)+parseInt(n(469))/4+-parseInt(n(489))/5*(parseInt(n(473))/6)+-parseInt(n(478))/7*(parseInt(n(485))/8)+parseInt(n(482))/9+-parseInt(n(496))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$d);var B$9=Object[A(506)][A(500)],n$3=Object[A(515)]||I$1;function C$2(t){var e=A,n={IpGUg:function(t,e){return t===e},HylBe:function(t,e){return t!==e},tOeXZ:e(483),MXsDT:function(t,e){return t(e)},qXHIz:function(t,e){return t<e},QStzA:function(t,e){return t/e},gclAy:function(t,e){return t-e},ceJGd:function(t,e){return t>e},DkQKD:function(t,e){return t(e)},rcfSc:function(t,e){return t+e},yOheK:function(t,e){return t*e},LfmXo:function(t,e){return t(e)},GhUKm:e(504),kSWfG:function(t,e){return t(e)},cSfQn:function(t,e){return t(e)},XHmGs:e(510),aimBN:function(t,e){return t(e)},sPfkr:function(t,e){return t(e)}},i={},r=0;function s(t){var i=e;return n[i(487)](t[i(508)],0)?[]:n[i(487)](t[0],0)||n[i(488)](typeof t[0],n[i(481)])?n[i(493)](a,t):n[i(493)](o,t)}function a(t){for(var i=e,r=t[i(508)],s=[],a=n[i(487)](t[0],0)?1:0;n[i(513)](a,r);a++){var o=t[a],c=n[i(493)](l,o);n[i(493)](v$1,o)&&Array[i(490)](c)?s=s[i(512)](c):s[i(492)](c)}return s}function o(t){var r,s=e,a=i[t[0]],o=a[s(508)],c=n[s(486)](n[s(470)](t[s(508)],1),o);if(n[s(472)](c,1)){r=[];for(var u=0;n[s(513)](u,c);u++){var h={};for(let e,i=0;e=a[i++];)h[e]=n[s(479)](l,t[n[s(468)](n[s(514)](u,o),i)]);r[s(492)](h)}}else{r={};for(let e,i=0;e=a[i++];)r[e]=n[s(471)](l,t[i])}return r}function c(t){for(var s=e,a=n[s(498)][s(474)]("|"),o=0;;){switch(a[o++]){case"0":i[++r]=d;continue;case"1":var c={};continue;case"2":for(var u,h=0;u=d[h++];)c[u]=n[s(505)](l,t[u]);continue;case"3":if(n[s(487)](d[s(508)],0))return{};continue;case"4":return c;case"5":var d=n[s(501)](n$3,t)[s(495)]();continue}break}}function l(t){var i=e;return n[i(488)](typeof t,n[i(507)])||!t?t:Array[i(490)](t)?n[i(491)](s,t):n[i(479)](c,t)}return n[e(509)](l,t)}function v$1(t){var e=A,n={lamoR:function(t,e){return t===e},WsqeG:e(483),GpRCD:function(t,e){return t!==e}};return Array[e(490)](t)&&n[e(499)](typeof t[0],n[e(484)])&&n[e(477)](t[0],0)}function M$d(){var t=["MXsDT","zFRab","sort","6027240YkhMbq","16076kaaEIi","GhUKm","lamoR","hasOwnProperty","cSfQn","log","call","5|3|0|1|2|4","kSWfG","prototype","XHmGs","length","sPfkr","object","344277aqVeqZ","concat","qXHIz","yOheK","keys","rcfSc","3603216RPyHAt","gclAy","LfmXo","ceJGd","2844SRQlua","split","FWBKA","168yNuEjq","GpRCD","1595951zJMOXq","DkQKD","无压缩数据","tOeXZ","7727598XwHCFo","number","WsqeG","16RqkGDM","QStzA","IpGUg","HylBe","2505mwktiH","isArray","aimBN","push"];return(M$d=function(){return t})()}function I$1(t){var e,n=A,i=[];for(e in t)B$9[n(503)](t,e)&&i[n(492)](e);return i}function W$d(t,e){var n=M$d();return(W$d=function(t,e){return n[t-=468]})(t,e)}function h$1(t){var e=A,n={zFRab:function(t,e){return t(e)},FWBKA:e(480)};try{return n[e(494)](C$2,t)}catch(i){return console[e(502)](n[e(475)]),t}}const V$1=W$c;function M$c(){const t=["lookAt","KuPut","pointerType","_ray","wMCQF","code","clone","LEFT","panStart","mkQAf","6myMQiM","XSCyw","handleKeyDown","handleTouchMovePan","TWO","copy","dampingFactor","mxlps","RyjuE","mouseButtons","VOMIq","wcYLW","handleTouchStartDolly","getPolarAngle","end","sqrt","nmMcQ","kPwdp","clientHeight","autoRotate","zoom","saveState","updateOffset","MJqts","handleMouseDownDolly","sphericalDelta","TOUCH_DOLLY_ROTATE","kBqEX","sSsUr","zoomToCursor","zoomSpeed","fzQVC","CyGeB","FgtOh","_plane","ZFGtm","RyRlQ","_touchPrevAngle","quaternion","setFromVector3","enabled","handleMouseMoveRotate","panLeftV3","wPyhC","dispatchEvent","6340504ErHyRk","dollyIn","updateLastPosition","dollyDelta","qjGbb","ROTATE","panSpeed","SnObW","JcPMG","enableZoom","xAorU","TOUCH_ROTATE","wnIhT","IWXiv","contextmenu","panEnd","minAzimuthAngle","phi","normalize","EATTv","FFWyH","enablePitch","XlmSP","_startEvent","oQvAt","YESvB","DOLLY","vuepK","iwevg","BOTTOM","height","updateZoomParameters","maxDistance","dollyOut","sUHOs","onTouchStart","domElement","update","add","deltaMode","2|1|3|0|4","setFromSpherical","removeEventListener","multiplyScalar","handleTouchMoveDolly","minZoom","keys","rOPSP","origin","handleTouchStartPan","handleMouseDownRotate","fov","2|0|4|1|6|5|3","XsUmS","PAN","tJoNQ","push","2|4|1|6|5|0|3","spherical","ArrowDown","tan","rotateUp","touch","rotateSpeed","HaNmU","OQpWX","lQImq","iLyum","WdOeV","pageY","onMouseDown","releasePointerCapture","ERDqA","tskIC","crossVectors","key","duPZB","pan","XeWmI","NYcWU","mouse","sGQTN","unproject","viewchange","0|2|4|3|1","xwmtd","_endEvent","customWheelEvent","abs","DNsfO","minDistance","_startPointerEvent","mLZwW","dollyDirection","1614195GeOExY","NbQPw","updateProjectionMatrix","ziYYt","getPointerPositions","xpGgB","3966740DzASNx","VXsSY","panOffset","11wlhFxX","GjTPB","QstRV","LKYOF","enableDamping","panLeft","KgPHg","TBPnr","DEG2RAD","updateLastQuaternion","target0","target","stopListenToKeyEvents","pointerId","ycpea","33075RJTJkv","distanceTo","emit","handleTouchStartRotate","split","panUpV3","handleTouchMoveRotate","style","68rFsKyj","THjJJ","setFromMatrixColumn","reset","_domElementKeyEvents","Control","min","mLrYA","ArrowUp","3|2|0|4|1","TXNIt","metaKey","TILT_LIMIT","rJRFm","NHXal","max","performCursorZoom","preventDefault","onMouseMove","iAfWj","keyPanSpeed","vhbzQ","position0","updateQuat","oSAVo","subVectors","fAdZg","nRXca","pointerup","XKVPN","NzSyf","NFWaf","DOLLY_ROTATE","aZsfZ","updateQuatInverse","YXlAd","getAzimuthalAngle","sosjX","rotateEnd","HxKyr","iygeq","ArrowRight","getZoomScale","TOUCH_PAN","maxTargetRadius","TOUCH_DOLLY_PAN","UICAN","kuyWD","Wcfrp","deltaY","3|0|2|1|4","xjmah","state","gLtcx","MOQRM","obfpC","button","click","setFromUnitVectors","cos","panDelta","UTSjz","ltWyd","dot","handleMouseDownPan","theta","bJByz","onPointerUp","dollyStart","pointermove","keydown","tCDwQ","radius","handleTouchStartDollyRotate","scale","handleTouchMoveDollyRotate","LybGG","Tuxcn","gHnSg","start","trackPointer","onPointerDown","xjcJb","clampLength","pageX","iyFyj","yEaTp","SKCAv","gTPja","matrix","GCPME","trmvO","minPolarAngle","ZxVVk","bbmtN","MIDDLE","thJRP","enableRotation","clientY","rWORq","ilXDS","ONE","wheel","updateMatrixWorld","listenToKeyEvents","onKeyDown","qWqGf","9ODzFOv","handleTouchStartDollyPan","rHDIq","none","intersectPlane","rLxLb","OWeIY","MwVRc","autoRotateSpeed","object","2hZeUxY","41050116LhsNda","distanceToSquared","AnouZ","width","407120usrtXv","position","rotateStart","aNkBv","hoMKJ","sFoxQ","direction","pointercancel","addEventListener","hXEzn","panOffsetV3","ArrowLeft","3|1|4|2|0","shiftKey","DOLLY_PAN","interceptControlDown","NONE","pXsrt","interceptControlUp","splice","zoom0","TIPoU","rotateLeft","nUgrf","removePointer","atan2","KPfco","TziWu","tYQpp","pow","updateLastTargetPosition","transformDirection","applyQuaternion","UDWDt","_changeEvent","onPointerMove","eJeYS","dispose","Kimfj","enablePan","lLFfU","ouHqV","length","gpvhA","controlActive","left","handleTouchMoveDollyPan","touches","addPointer","mKoyv","screenSpacePanning","clientX","invert","onContextMenu","AXOYz","pointers","minTargetRadius","makeSafe","VMWFV","_touchStartAngle","fobkJ","touchAction","addScaledVector","sub","BmVrQ","cursor","VJDeG","onMouseWheel","onTouchMove","handleMouseMovePan","VAUFP","maxZoom","ebPqx","ApUOs","maxAzimuthAngle","getAutoRotationAngle","gVIWn","aBTBe","getBoundingClientRect","ctrlKey","maxPolarAngle","zEyry","getSecondPointerPosition","top","dollyEnd","keyup","pointerdown","rotateDelta","HHIpv","set","handleMouseMoveDolly","VERhb","QWIck","panUp","pointerPositions","zJWyb","jNRnl","JitVb","mJHBg","setPointerCapture","Ahfiu","VEIEX","setFromNormalAndCoplanarPoint","RIGHT","clampDistance","1008109qIMVlU","getDistance","RGmnN","4|15|9|13|8|5|6|14|12|0|2|1|10|11|3|7","handleMouseWheel","gekzD"];return(M$c=function(){return t})()}function W$c(t,e){const n=M$c();return(W$c=function(t,e){return n[t-=268]})(t,e)}!function(t,e){const n=W$c,i=t();for(;;)try{if(771393===-parseInt(n(647))/1*(parseInt(n(537))/2)+parseInt(n(412))/3*(-parseInt(n(420))/4)+parseInt(n(388))/5*(-parseInt(n(663))/6)+parseInt(n(542))/7+-parseInt(n(294))/8*(parseInt(n(527))/9)+-parseInt(n(394))/10+-parseInt(n(397))/11*(-parseInt(n(538))/12))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$c);const B$8={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},n$2=1e-6,C$1=2*Math.PI;class OrbitControls extends EventDispatcher{constructor(t,e){var n=(...t)=>(super(...t),__publicField(this,_Jf,{type:V$1(377)}),__publicField(this,_If,{type:V$1(499)}),__publicField(this,_Hf,{type:V$1(677)}),__publicField(this,_Gf,new Ray),__publicField(this,_Ff,Math[V$1(479)](70*MathUtils[V$1(405)])),__publicField(this,_Ef,new Plane),__publicField(this,_Df,!0),__publicField(this,_Cf,new Vector3),__publicField(this,_Bf,new Vector3),__publicField(this,_Af,0),__publicField(this,_zf,1/0),__publicField(this,_yf,0),__publicField(this,_xf,1/0),__publicField(this,_wf,0),__publicField(this,_vf,1/0),__publicField(this,_uf,0),__publicField(this,_tf,Math.PI),__publicField(this,_sf,-1/0),__publicField(this,_rf,1/0),__publicField(this,_qf,!1),__publicField(this,_pf,.1),__publicField(this,_of,!0),__publicField(this,_nf,1),__publicField(this,_mf,!0),__publicField(this,_lf,!0),__publicField(this,_kf,.5),__publicField(this,_jf,!0),__publicField(this,_if,1),__publicField(this,_hf,!0),__publicField(this,_gf,7),__publicField(this,_ff,!1),__publicField(this,_ef,!1),__publicField(this,_df,2),__publicField(this,_cf,{LEFT:V$1(553),UP:V$1(428),RIGHT:V$1(461),BOTTOM:V$1(353)}),__publicField(this,_bf,{LEFT:MOUSE[V$1(299)],MIDDLE:MOUSE[V$1(320)],RIGHT:MOUSE[V$1(348)]}),__publicField(this,_af,{ONE:TOUCH[V$1(299)],TWO:TOUCH[V$1(556)]}),__publicField(this,_$e),__publicField(this,__e),__publicField(this,_Ze),__publicField(this,_Ye),__publicField(this,_Xe),__publicField(this,_We),__publicField(this,_Ve,B$8[V$1(558)]),__publicField(this,_Ue,new Spherical),__publicField(this,_Te,new Spherical),__publicField(this,_Se,1),__publicField(this,_Re,new Vector3),__publicField(this,_Qe,new Vector2),__publicField(this,_Pe,new Vector2),__publicField(this,_Oe,new Vector2),__publicField(this,_Ne,new Vector2),__publicField(this,_Me,new Vector2),__publicField(this,_Le,new Vector2),__publicField(this,_Ke,new Vector2),__publicField(this,_Je,new Vector2),__publicField(this,_Ie,new Vector2),__publicField(this,_He,new Vector3),__publicField(this,_Ge,new Vector2),__publicField(this,_Fe,!1),__publicField(this,_Ee,[]),__publicField(this,_De,{}),__publicField(this,_Ce,!1),__publicField(this,_Be,new Vector3),__publicField(this,_Ae),__publicField(this,_ze),__publicField(this,_ye,new Vector3),__publicField(this,_xe,new Quaternion),__publicField(this,_we,new Vector3),__publicField(this,_ve,new Vector3),__publicField(this,_ue,new Vector3),__publicField(this,_te,new Vector3),__publicField(this,_se,0),__publicField(this,_re,0),__publicField(this,_qe),__publicField(this,_pe,(t=>{const e=V$1,n={sUHOs:e(429),YESvB:function(t,e){return t===e},nUgrf:function(t,e,n){return t(e,n)},VMWFV:e(489),UDWDt:e(448),obfpC:e(356)},i=n[e(328)][e(416)]("|");let r=0;for(;;){switch(i[r++]){case"0":n[e(319)](this[e(597)][e(584)],0)&&(n[e(565)](setTimeout,(()=>{const n=e;this[n(330)][n(641)](t[n(410)])}),150),this[e(330)][e(550)](n[e(600)],this[e(577)]),this[e(330)][e(550)](n[e(575)],this[e(487)]));continue;case"1":n[e(319)](t[e(655)],n[e(475)])?this[e(329)](t):this[e(364)](t);continue;case"2":if(n[e(319)](this[e(289)],!1))return;continue;case"3":this[e(385)]=t;continue;case"4":this[e(590)](t);continue}break}})),__publicField(this,_oe,(t=>{const e=V$1,n={zJWyb:function(t,e){return t===e},Ahfiu:e(356)};n[e(637)](this[e(289)],!1)||(n[e(637)](t[e(655)],n[e(642)])?this[e(610)](t):this[e(438)](t))})),__publicField(this,_ne,(t=>{const e=V$1,n={ouHqV:function(t,e){return t===e},aZsfZ:e(489),gVIWn:e(448),gekzD:function(t,e){return t(e)},jNRnl:function(t,e){return t(e)},rWORq:function(t,e){return t<e},tJoNQ:function(t,e){return t-e},gpvhA:e(477)};this[e(566)](t),n[e(583)](this[e(597)][e(584)],0)&&(this[e(330)][e(365)](t[e(410)]),this[e(330)][e(336)](n[e(453)],this[e(577)]),this[e(330)][e(336)](n[e(618)],this[e(487)])),this[e(293)](this[e(380)]),this[e(472)]=B$8[e(558)];const{x:i,y:r}=n[e(652)](getXY,this[e(385)]),s=n[e(638)](getXY,t);n[e(519)](Math[e(382)](n[e(349)](i,s.x)),3)&&n[e(519)](Math[e(382)](n[e(349)](r,s.y)),3)&&this[e(414)](n[e(585)],t)})),__publicField(this,_me,(t=>{const e=V$1,n={thJRP:e(378),xAorU:function(t,e){return t===e},GCPME:function(t,e){return t!==e}},i=n[e(516)][e(416)]("|");let r=0;for(;;){switch(i[r++]){case"0":if(n[e(304)](this[e(289)],!1)||n[e(304)](this[e(303)],!1)||n[e(510)](this[e(472)],B$8[e(558)]))return;continue;case"1":this[e(293)](this[e(380)]);continue;case"2":t[e(437)]();continue;case"3":this[e(651)](this[e(381)](t));continue;case"4":this[e(293)](this[e(317)]);continue}break}})),__publicField(this,_le,(t=>{const e=V$1,n={QstRV:function(t,e){return t===e},wcYLW:e(425),TBPnr:e(627)};n[e(399)](t[e(369)],n[e(674)])&&(this[e(586)]=!0,document[e(550)](n[e(404)],this[e(560)],{passive:!0,capture:!0}))})),__publicField(this,_ke,(t=>{const e=V$1,n={kPwdp:function(t,e){return t===e},JcPMG:e(425),qjGbb:e(627)};n[e(680)](t[e(369)],n[e(302)])&&(this[e(586)]=!1,document[e(336)](n[e(298)],this[e(560)],{passive:!0,capture:!0}))})),__publicField(this,_je,(t=>{const e=V$1,n={MJqts:function(t,e){return t===e},ycpea:function(t,e){return t===e}};n[e(272)](this[e(289)],!1)||n[e(411)](this[e(581)],!1)||this[e(665)](t)})),__publicField(this,_ie,(t=>{const e=V$1;({VOMIq:function(t,e){return t===e}})[e(673)](this[e(289)],!1)||t[e(437)]()})),this);const i=V$1,r={XeWmI:i(650),trmvO:i(628),sGQTN:i(308),lQImq:i(490),rLxLb:i(549),Kimfj:i(522),YXlAd:i(530)},s=r[i(372)][i(416)]("|");let a=0;for(;;){switch(s[a++]){case"0":this[i(454)]=this[i(443)][i(659)]()[i(594)]();continue;case"1":this[i(330)][i(550)](r[i(511)],this[i(501)]);continue;case"2":this[i(330)][i(550)](r[i(375)],this[i(595)]);continue;case"3":document[i(550)](r[i(360)],this[i(557)],{passive:!0,capture:!0});continue;case"4":n();continue;case"5":this[i(442)]=this[i(536)][i(543)][i(659)]();continue;case"6":this[i(562)]=this[i(536)][i(269)];continue;case"7":this[i(331)]();continue;case"8":this[i(407)]=this[i(408)][i(659)]();continue;case"9":this[i(330)]=e;continue;case"10":this[i(330)][i(550)](r[i(532)],this[i(487)]);continue;case"11":this[i(330)][i(550)](r[i(580)],this[i(609)],{passive:!1});continue;case"12":this[i(443)]=(new Quaternion)[i(478)](t.up,new Vector3(0,1,0));continue;case"13":this[i(330)][i(419)][i(603)]=r[i(455)];continue;case"14":this[i(424)]=null;continue;case"15":this[i(536)]=t;continue}break}}[(_Jf=V$1(576),_If=V$1(317),_Hf=V$1(380),_Gf=V$1(656),_Ff=V$1(432),_Ef=V$1(283),_Df=V$1(289),_Cf=V$1(408),_Bf=V$1(607),_Af=V$1(384),_zf=V$1(326),_yf=V$1(339),_xf=V$1(613),_wf=V$1(598),_vf=V$1(464),_uf=V$1(512),_tf=V$1(622),_sf=V$1(310),_rf=V$1(616),_qf=V$1(401),_pf=V$1(669),_of=V$1(303),_nf=V$1(279),_mf=V$1(315),_lf=V$1(517),_kf=V$1(357),_jf=V$1(581),_if=V$1(300),_hf=V$1(592),_gf=V$1(440),_ff=V$1(278),_ef=V$1(268),_df=V$1(535),_cf=V$1(340),_bf=V$1(672),_af=V$1(589),_$e=V$1(536),__e=V$1(330),_Ze=V$1(407),_Ye=V$1(442),_Xe=V$1(562),_We=V$1(424),_Ve=V$1(472),_Ue=V$1(352),_Te=V$1(274),_Se=V$1(494),_Re=V$1(396),_Qe=V$1(544),_Pe=V$1(458),_Oe=V$1(629),_Ne=V$1(661),_Me=V$1(309),_Le=V$1(480),_Ke=V$1(488),_Je=V$1(626),_Ie=V$1(297),_He=V$1(387),_Ge=V$1(374),_Fe=V$1(436),_Ee=V$1(597),_De=V$1(636),_Ce=V$1(586),V$1(676))](){const t=V$1;return this[t(352)][t(311)]}[V$1(456)](){const t=V$1;return this[t(352)][t(485)]}[V$1(648)](){const t=V$1;return this[t(536)][t(543)][t(413)](this[t(408)])}[V$1(524)](t){const e=V$1,n={LKYOF:e(490)};t[e(550)](n[e(400)],this[e(525)]),this[e(424)]=t}[V$1(409)](){const t=V$1,e={ApUOs:t(490)};this[t(424)][t(336)](e[t(615)],this[t(525)]),this[t(424)]=null}[V$1(270)](){const t=V$1;this[t(407)][t(668)](this[t(408)]),this[t(442)][t(668)](this[t(536)][t(543)]),this[t(562)]=this[t(536)][t(269)]}[V$1(423)](){const t=V$1,e={ilXDS:t(351)}[t(520)][t(416)]("|");let n=0;for(;;){switch(e[n++]){case"0":this[t(331)]();continue;case"1":this[t(536)][t(269)]=this[t(562)];continue;case"2":this[t(408)][t(668)](this[t(407)]);continue;case"3":this[t(472)]=B$8[t(558)];continue;case"4":this[t(536)][t(543)][t(668)](this[t(442)]);continue;case"5":this[t(293)](this[t(576)]);continue;case"6":this[t(536)][t(390)]();continue}break}}[(_Be=V$1(271),_Ae=V$1(443),_ze=V$1(454),_ye=V$1(296),_xe=V$1(406),_we=V$1(572),V$1(331))](t=null){const e=V$1,n={sosjX:function(t,e){return t===e},NzSyf:function(t,e){return t*e},eJeYS:function(t,e){return t(e)},JitVb:function(t,e){return t<e},nmMcQ:function(t,e){return t>e},NHXal:function(t,e){return t<e},rJRFm:function(t,e){return t>e},HaNmU:function(t,e){return t<=e},mKoyv:function(t,e){return t>e},ltWyd:function(t,e){return t/e},RyjuE:function(t,e){return t+e},zEyry:function(t,e){return t===e},ziYYt:function(t,e){return t-e},XKVPN:function(t,e){return t-e},hXEzn:function(t,e){return t*e},xwmtd:function(t,e){return t-e},bbmtN:function(t,e){return t*e},rHDIq:function(t,e){return t-e},mkQAf:function(t,e){return t>e},xjmah:e(334)},i=this[e(536)][e(543)];this[e(271)][e(668)](i)[e(605)](this[e(408)]),this[e(271)][e(574)](this[e(443)]),this[e(352)][e(288)](this[e(271)]),this[e(268)]&&n[e(457)](this[e(472)],B$8[e(558)])&&this[e(564)](this[e(617)](t)),this[e(401)]?(this[e(352)][e(485)]+=n[e(450)](this[e(274)][e(485)],this[e(669)]),this[e(352)][e(311)]+=n[e(450)](this[e(274)][e(311)],this[e(669)])):(this[e(352)][e(485)]+=this[e(274)][e(485)],this[e(352)][e(311)]+=this[e(274)][e(311)]);let r=this[e(310)],s=this[e(616)];n[e(578)](isFinite,r)&&n[e(578)](isFinite,s)&&(n[e(639)](r,-Math.PI)?r+=C$1:n[e(679)](r,Math.PI)&&(r-=C$1),n[e(434)](s,-Math.PI)?s+=C$1:n[e(433)](s,Math.PI)&&(s-=C$1),n[e(358)](r,s)?this[e(352)][e(485)]=Math[e(435)](r,Math[e(426)](s,this[e(352)][e(485)])):this[e(352)][e(485)]=n[e(591)](this[e(352)][e(485)],n[e(482)](n[e(671)](r,s),2))?Math[e(435)](r,this[e(352)][e(485)]):Math[e(426)](s,this[e(352)][e(485)])),this[e(352)][e(311)]=Math[e(435)](this[e(512)],Math[e(426)](this[e(622)],this[e(352)][e(311)])),this[e(352)][e(599)](),n[e(623)](this[e(401)],!0)?this[e(408)][e(604)](this[e(396)],this[e(669)]):this[e(408)][e(332)](this[e(396)]),this[e(408)][e(605)](this[e(607)]),this[e(408)][e(503)](this[e(598)],this[e(464)]),this[e(408)][e(332)](this[e(607)]),this[e(278)]?this[e(352)][e(492)]=this[e(646)](this[e(352)][e(492)]):this[e(352)][e(492)]=this[e(646)](n[e(450)](this[e(352)][e(492)],this[e(494)])),this[e(271)][e(335)](this[e(352)]),this[e(271)][e(574)](this[e(454)]),i[e(668)](this[e(408)])[e(332)](this[e(271)]),this[e(536)][e(653)](this[e(408)]),n[e(457)](this[e(401)],!0)?(this[e(274)][e(485)]*=n[e(391)](1,this[e(669)]),this[e(274)][e(311)]*=n[e(391)](1,this[e(669)]),this[e(396)][e(337)](n[e(449)](1,this[e(669)]))):(this[e(274)][e(631)](0,0,0),this[e(396)][e(631)](0,0,0));if(this[e(278)]&&this[e(436)]){const t=this[e(271)][e(584)]();let i=this[e(646)](n[e(551)](t,this[e(494)]));const r=n[e(379)](t,i);this[e(536)][e(543)][e(604)](this[e(387)],r),this[e(536)][e(523)](),this[e(592)]?this[e(408)][e(631)](0,0,-1)[e(573)](this[e(536)][e(509)])[e(337)](i)[e(332)](this[e(536)][e(543)]):(this[e(656)][e(342)][e(668)](this[e(536)][e(543)]),this[e(656)][e(548)][e(631)](0,0,-1)[e(573)](this[e(536)][e(509)]),n[e(639)](Math[e(382)](this[e(536)].up[e(483)](this[e(656)][e(548)])),this[e(432)])?this[e(536)][e(653)](this[e(408)]):(this[e(283)][e(644)](this[e(536)].up,this[e(408)]),this[e(656)][e(531)](this[e(283)],this[e(408)])))}if(this[e(494)]=1,this[e(436)]=!1,n[e(679)](this[e(296)][e(539)](this[e(536)][e(543)]),n$2)||n[e(591)](n[e(514)](8,n[e(529)](1,this[e(406)][e(483)](this[e(536)][e(287)]))),n$2)||n[e(662)](this[e(572)][e(539)](this[e(408)]),0)){const t=n[e(471)][e(416)]("|");let i=0;for(;;){switch(t[i++]){case"0":this[e(572)][e(668)](this[e(408)]);continue;case"1":this[e(296)][e(668)](this[e(536)][e(543)]);continue;case"2":this[e(293)](this[e(576)]);continue;case"3":this[e(406)][e(668)](this[e(536)][e(287)]);continue;case"4":return!0}break}}return!1}[V$1(579)](){const t=V$1,e={DNsfO:t(346),oSAVo:t(628),TXNIt:t(522),GjTPB:t(308),wPyhC:t(490),XlmSP:t(549),qWqGf:t(448),xpGgB:t(489)},n=e[t(383)][t(416)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[t(330)][t(336)](e[t(444)],this[t(501)]);continue;case"1":this[t(330)][t(336)](e[t(430)],this[t(609)]);continue;case"2":this[t(330)][t(336)](e[t(398)],this[t(595)]);continue;case"3":this[t(424)]&&(this[t(424)][t(336)](e[t(292)],this[t(525)]),this[t(424)]=null);continue;case"4":this[t(330)][t(336)](e[t(316)],this[t(487)]);continue;case"5":this[t(330)][t(336)](e[t(526)],this[t(487)]);continue;case"6":this[t(330)][t(336)](e[t(393)],this[t(577)]);continue}break}}[V$1(617)](t){const e=V$1,n={fobkJ:function(t,e){return t!==e},mxlps:function(t,e){return t*e},ZFGtm:function(t,e){return t*e},gTPja:function(t,e){return t/e},MwVRc:function(t,e){return t/e},tYQpp:function(t,e){return t*e}};return n[e(602)](t,null)?n[e(670)](n[e(284)](n[e(508)](n[e(284)](2,Math.PI),60),this[e(535)]),t):n[e(284)](n[e(534)](n[e(508)](n[e(570)](2,Math.PI),60),60),this[e(535)])}[V$1(462)](t){const e=V$1,n={THjJJ:function(t,e){return t*e}},i=Math[e(382)](n[e(421)](t,.01));return Math[e(571)](.95,n[e(421)](this[e(279)],i))}[V$1(564)](t,e=!1){const n=V$1;(this[n(517)]||!e)&&(this[n(274)][n(485)]-=t)}[V$1(355)](t,e=!1){const n=V$1;(this[n(315)]||!e)&&(this[n(274)][n(311)]-=t)}[(_ve=V$1(291),V$1(402))](t,e){const n=V$1;this[n(291)][n(422)](e,0),this[n(291)][n(337)](-t),this[n(396)][n(332)](this[n(291)])}[(_ue=V$1(417),V$1(635))](t,e){const n=V$1;!{Wcfrp:function(t,e){return t===e}}[n(468)](this[n(592)],!0)?(this[n(417)][n(422)](e,0),this[n(417)][n(368)](this[n(536)].up,this[n(417)])):this[n(417)][n(422)](e,1),this[n(417)][n(337)](t),this[n(396)][n(332)](this[n(417)])}[(_te=V$1(552),V$1(371))](t,e){const n=V$1,i={AnouZ:function(t,e){return t/e},tskIC:function(t,e){return t*e},vhbzQ:function(t,e){return t/e},XsUmS:function(t,e){return t*e},xjcJb:function(t,e){return t/e},BmVrQ:function(t,e){return t*e}},r=this[n(330)],s=this[n(536)][n(543)];this[n(552)][n(668)](s)[n(605)](this[n(408)]);let a=this[n(552)][n(584)]();a*=Math[n(354)](i[n(540)](i[n(367)](i[n(441)](this[n(536)][n(345)],2),Math.PI),180)),this[n(402)](i[n(540)](i[n(347)](i[n(347)](2,t),a),r[n(681)]),this[n(536)][n(509)]),this[n(635)](i[n(502)](i[n(606)](i[n(347)](2,e),a),r[n(681)]),this[n(536)][n(509)])}[V$1(327)](t=.95){this[V$1(494)]/=t}[V$1(295)](t=.95){this[V$1(494)]*=t}[V$1(325)](t,e){const n=V$1,i={KuPut:function(t,e){return t-e},VXsSY:function(t,e){return t-e},pXsrt:function(t,e){return t*e},KgPHg:function(t,e){return t/e},VEIEX:function(t,e){return t+e},ERDqA:function(t,e){return t*e},SnObW:function(t,e){return t/e}};if(!this[n(278)])return;this[n(436)]=!0;const r=this[n(330)][n(620)](),s=i[n(654)](t,r[n(587)]),a=i[n(395)](e,r[n(625)]),o=r[n(541)],c=r[n(324)];this[n(374)].x=i[n(654)](i[n(559)](i[n(403)](s,o),2),1),this[n(374)].y=i[n(643)](i[n(366)](-i[n(301)](a,c),2),1),this[n(387)][n(631)](this[n(374)].x,this[n(374)].y,1)[n(376)](this[n(536)])[n(605)](this[n(536)][n(543)])[n(312)]()}[V$1(646)](t){const e=V$1;return Math[e(435)](this[e(384)],Math[e(426)](this[e(326)],t))}[V$1(344)](t){const e=V$1;this[e(544)][e(631)](t[e(593)],t[e(518)])}[V$1(273)](t){const e=V$1;this[e(325)](t[e(593)],t[e(593)]),this[e(488)][e(631)](t[e(593)],t[e(518)])}[V$1(484)](t){const e=V$1;this[e(661)][e(631)](t[e(593)],t[e(518)])}[V$1(290)](t){const e=V$1,n={VJDeG:function(t,e){return t/e},NYcWU:function(t,e){return t*e},lLFfU:function(t,e){return t/e}};this[e(458)][e(631)](t[e(593)],t[e(518)]),this[e(629)][e(445)](this[e(458)],this[e(544)])[e(337)](this[e(357)]);const i=this[e(330)];this[e(564)](n[e(608)](n[e(373)](n[e(373)](2,Math.PI),this[e(629)].x),i[e(681)]),!0),this[e(355)](n[e(582)](n[e(373)](n[e(373)](2,Math.PI),this[e(629)].y),i[e(681)]),!0),this[e(544)][e(668)](this[e(458)]),this[e(331)]()}[V$1(632)](t){const e=V$1,n={nRXca:e(470),LybGG:function(t,e){return t>e},FFWyH:function(t,e){return t<e}},i=n[e(447)][e(416)]("|");let r=0;for(;;){switch(i[r++]){case"0":this[e(297)][e(445)](this[e(626)],this[e(488)]);continue;case"1":this[e(488)][e(668)](this[e(626)]);continue;case"2":n[e(496)](this[e(297)].y,0)?this[e(327)](this[e(462)](this[e(297)].y)):n[e(314)](this[e(297)].y,0)&&this[e(295)](this[e(462)](this[e(297)].y));continue;case"3":this[e(626)][e(631)](t[e(593)],t[e(518)]);continue;case"4":this[e(331)]();continue}break}}[V$1(611)](t){const e=V$1,n={Tuxcn:e(554)}[e(497)][e(416)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[e(331)]();continue;case"1":this[e(480)][e(445)](this[e(309)],this[e(661)])[e(337)](this[e(300)]);continue;case"2":this[e(661)][e(668)](this[e(309)]);continue;case"3":this[e(309)][e(631)](t[e(593)],t[e(518)]);continue;case"4":this[e(371)](this[e(480)].x,this[e(480)].y);continue}break}}[V$1(651)](t){const e=V$1,n={UTSjz:function(t,e){return t<e},FgtOh:function(t,e){return t>e}};this[e(325)](t[e(593)],t[e(518)]),n[e(481)](t[e(469)],0)?this[e(295)](this[e(462)](t[e(469)])):n[e(282)](t[e(469)],0)&&this[e(327)](this[e(462)](t[e(469)])),this[e(331)]()}[V$1(665)](t){const e=V$1,n={IWXiv:function(t,e){return t/e},duPZB:function(t,e){return t*e},gHnSg:function(t,e){return t*e},bJByz:function(t,e){return t/e},iyFyj:function(t,e){return t*e},EATTv:function(t,e){return t*e}};let i=!1;switch(t[e(658)]){case this[e(340)].UP:t[e(621)]||t[e(431)]||t[e(555)]?this[e(355)](n[e(307)](n[e(370)](n[e(498)](2,Math.PI),this[e(357)]),this[e(330)][e(681)]),!0):this[e(371)](0,this[e(440)]),i=!0;break;case this[e(340)][e(323)]:t[e(621)]||t[e(431)]||t[e(555)]?this[e(355)](n[e(307)](n[e(370)](n[e(498)](-2,Math.PI),this[e(357)]),this[e(330)][e(681)]),!0):this[e(371)](0,-this[e(440)]),i=!0;break;case this[e(340)][e(660)]:t[e(621)]||t[e(431)]||t[e(555)]?this[e(564)](n[e(486)](n[e(370)](n[e(505)](2,Math.PI),this[e(357)]),this[e(330)][e(681)]),!0):this[e(371)](this[e(440)],0),i=!0;break;case this[e(340)][e(645)]:t[e(621)]||t[e(431)]||t[e(555)]?this[e(564)](n[e(486)](n[e(313)](n[e(505)](-2,Math.PI),this[e(357)]),this[e(330)][e(681)]),!0):this[e(371)](-this[e(440)],0),i=!0}i&&(t[e(437)](),this[e(331)]())}[V$1(415)](t){const e=V$1,n={mLrYA:function(t,e){return t===e},UICAN:function(t,e){return t*e},NbQPw:function(t,e){return t+e},KPfco:function(t,e){return t*e}};if(n[e(427)](this[e(597)][e(584)],1))this[e(544)][e(631)](t[e(504)],t[e(363)]);else{const i=this[e(624)](t),r=n[e(466)](.5,n[e(389)](t[e(504)],i.x)),s=n[e(568)](.5,n[e(389)](t[e(363)],i.y));this[e(544)][e(631)](r,s)}}[V$1(343)](t){const e=V$1,n={TIPoU:function(t,e){return t===e},ZxVVk:function(t,e){return t*e},aNkBv:function(t,e){return t+e}};if(n[e(563)](this[e(597)][e(584)],1))this[e(661)][e(631)](t[e(504)],t[e(363)]);else{const i=this[e(624)](t),r=n[e(513)](.5,n[e(545)](t[e(504)],i.x)),s=n[e(513)](.5,n[e(545)](t[e(363)],i.y));this[e(661)][e(631)](r,s)}}[V$1(675)](t){const e=V$1,n={vuepK:function(t,e){return t-e},rOPSP:function(t,e){return t-e},tCDwQ:function(t,e){return t+e},iLyum:function(t,e){return t*e}},i=this[e(624)](t),r=n[e(321)](t[e(504)],i.x),s=n[e(341)](t[e(363)],i.y),a=Math[e(678)](n[e(491)](n[e(361)](r,r),n[e(361)](s,s)));this[e(488)][e(631)](0,a)}[V$1(528)](t){const e=V$1;this[e(303)]&&this[e(675)](t),this[e(581)]&&this[e(343)](t)}[V$1(493)](t){const e=V$1,n={OQpWX:function(t,e){return t-e},wMCQF:function(t,e){return t-e}};this[e(303)]&&this[e(675)](t);const[i,r]=this[e(392)](),s=n[e(359)](r.x,i.x),a=n[e(657)](r.y,i.y);this[e(601)]=this[e(286)]=Math[e(567)](a,s),this[e(415)](t)}[(_se=V$1(601),_re=V$1(286),V$1(392))](){const t=V$1,e=this[t(597)][0],n=this[t(597)][1];return[this[t(636)][e],this[t(636)][n]]}[V$1(418)](t){const e=V$1,n={NFWaf:function(t,e){return t==e},fzQVC:function(t,e){return t*e},kBqEX:function(t,e){return t+e},yEaTp:function(t,e){return t*e},HHIpv:function(t,e){return t-e},iwevg:function(t,e){return t-e},RGmnN:function(t,e){return t>e},MOQRM:function(t,e){return t<e},iAfWj:function(t,e){return t*e},TziWu:function(t,e){return t*e},mJHBg:function(t,e){return t/e},ebPqx:function(t,e){return t*e}};if(n[e(451)](this[e(597)][e(584)],1))this[e(458)][e(631)](t[e(504)],t[e(363)]);else{const i=this[e(624)](t),r=n[e(280)](.5,n[e(276)](t[e(504)],i.x)),s=n[e(506)](.5,n[e(276)](t[e(363)],i.y));this[e(458)][e(631)](r,s)}const[i,r]=this[e(392)](),s=n[e(630)](r.x,i.x),a=n[e(322)](r.y,i.y),o=Math[e(567)](a,s);let c=n[e(322)](o,this[e(286)]);n[e(649)](c,Math.PI)?c-=n[e(280)](2,Math.PI):n[e(474)](c,-Math.PI)&&(c+=n[e(439)](2,Math.PI)),this[e(286)]=o,this[e(564)](n[e(569)](-c,this[e(357)]),!0),this[e(629)][e(445)](this[e(458)],this[e(544)])[e(337)](this[e(357)]);const l=this[e(330)];this[e(355)](n[e(640)](n[e(280)](n[e(614)](2,Math.PI),this[e(629)].y),l[e(681)]),!0),this[e(544)][e(668)](this[e(458)])}[V$1(666)](t){const e=V$1,n={sFoxQ:function(t,e){return t===e},fAdZg:function(t,e){return t*e},OWeIY:function(t,e){return t+e}};if(n[e(547)](this[e(597)][e(584)],1))this[e(309)][e(631)](t[e(504)],t[e(363)]);else{const i=this[e(624)](t),r=n[e(446)](.5,n[e(533)](t[e(504)],i.x)),s=n[e(446)](.5,n[e(533)](t[e(363)],i.y));this[e(309)][e(631)](r,s)}this[e(480)][e(445)](this[e(309)],this[e(661)])[e(337)](this[e(300)]),this[e(371)](this[e(480)].x,this[e(480)].y),this[e(661)][e(668)](this[e(309)])}[V$1(338)](t){const e=V$1,n={QWIck:function(t,e){return t-e},VAUFP:function(t,e){return t+e},kuyWD:function(t,e){return t*e},HxKyr:function(t,e){return t/e},wnIhT:function(t,e){return t*e},sSsUr:function(t,e){return t+e}},i=this[e(624)](t),r=n[e(634)](t[e(504)],i.x),s=n[e(634)](t[e(363)],i.y),a=Math[e(678)](n[e(612)](n[e(467)](r,r),n[e(467)](s,s)));this[e(626)][e(631)](0,a),this[e(297)][e(631)](0,Math[e(571)](n[e(459)](this[e(626)].y,this[e(488)].y),this[e(279)])),this[e(327)](this[e(297)].y),this[e(488)][e(668)](this[e(626)]);const o=n[e(467)](n[e(612)](t[e(504)],i.x),.5),c=n[e(306)](n[e(277)](t[e(363)],i.y),.5);this[e(325)](o,c)}[V$1(588)](t){const e=V$1;this[e(303)]&&this[e(338)](t),this[e(581)]&&this[e(666)](t)}[V$1(495)](t){const e=V$1;this[e(303)]&&this[e(338)](t),this[e(418)](t)}[(_qe=V$1(385),_pe=V$1(501),_oe=V$1(577),_ne=V$1(487),V$1(364))](t){const e=V$1,n={hoMKJ:function(t,e){return t===e},RyRlQ:function(t,e){return t!==e}};let i;switch(t[e(476)]){case 0:i=this[e(672)][e(660)];break;case 1:i=this[e(672)][e(515)];break;case 2:i=this[e(672)][e(645)];break;default:i=-1}switch(i){case MOUSE[e(320)]:if(n[e(546)](this[e(303)],!1))return;this[e(273)](t),this[e(472)]=B$8[e(320)];break;case MOUSE[e(299)]:if(t[e(621)]||t[e(431)]||t[e(555)]){if(n[e(546)](this[e(581)],!1))return;this[e(484)](t),this[e(472)]=B$8[e(348)]}else this[e(344)](t),this[e(472)]=B$8[e(299)];break;case MOUSE[e(348)]:if(t[e(621)]||t[e(431)]||t[e(555)])this[e(344)](t),this[e(472)]=B$8[e(299)];else{if(n[e(546)](this[e(581)],!1))return;this[e(484)](t),this[e(472)]=B$8[e(348)]}break;default:this[e(472)]=B$8[e(558)]}n[e(285)](this[e(472)],B$8[e(558)])&&this[e(293)](this[e(317)])}[V$1(438)](t){const e=V$1,n={SKCAv:function(t,e){return t===e},VERhb:function(t,e){return t===e}};switch(this[e(472)]){case B$8[e(299)]:this[e(290)](t);break;case B$8[e(320)]:if(n[e(507)](this[e(303)],!1))return;this[e(632)](t);break;case B$8[e(348)]:if(n[e(633)](this[e(581)],!1))return;this[e(611)](t)}}[(_me=V$1(609),V$1(381))](t){const e=V$1,n=t[e(333)],i={clientX:t[e(593)],clientY:t[e(518)],deltaY:t[e(469)]};switch(n){case 1:i[e(469)]*=16;break;case 2:i[e(469)]*=100}return t[e(621)]&&!this[e(586)]&&(i[e(469)]*=10),i}[(_le=V$1(557),_ke=V$1(560),_je=V$1(525),V$1(329))](t){const e=V$1,n={aBTBe:function(t,e){return t===e},oQvAt:function(t,e){return t===e},WdOeV:function(t,e){return t!==e}};switch(this[e(500)](t),this[e(597)][e(584)]){case 1:switch(this[e(589)][e(521)]){case TOUCH[e(299)]:this[e(415)](t),this[e(472)]=B$8[e(305)];break;case TOUCH[e(348)]:if(n[e(619)](this[e(581)],!1))return;this[e(343)](t),this[e(472)]=B$8[e(463)];break;default:this[e(472)]=B$8[e(558)]}break;case 2:switch(this[e(589)][e(667)]){case TOUCH[e(556)]:if(n[e(619)](this[e(303)],!1)&&n[e(318)](this[e(581)],!1))return;this[e(528)](t),this[e(472)]=B$8[e(465)];break;case TOUCH[e(452)]:if(n[e(318)](this[e(303)],!1))return;this[e(493)](t),this[e(472)]=B$8[e(275)];break;default:this[e(472)]=B$8[e(558)]}break;default:this[e(472)]=B$8[e(558)]}n[e(362)](this[e(472)],B$8[e(558)])&&this[e(293)](this[e(317)])}[V$1(610)](t){const e=V$1,n={CyGeB:function(t,e){return t===e},mLZwW:function(t,e){return t===e}};switch(this[e(500)](t),this[e(472)]){case B$8[e(305)]:this[e(418)](t),this[e(331)]();break;case B$8[e(463)]:if(n[e(281)](this[e(581)],!1))return;this[e(666)](t),this[e(331)]();break;case B$8[e(465)]:if(n[e(281)](this[e(303)],!1)&&n[e(386)](this[e(581)],!1))return;this[e(588)](t),this[e(331)]();break;case B$8[e(275)]:if(n[e(281)](this[e(303)],!1))return;this[e(495)](t),this[e(331)]();break;default:this[e(472)]=B$8[e(558)]}}[(_ie=V$1(595),V$1(590))](t){const e=V$1;this[e(597)][e(350)](t[e(410)])}[V$1(566)](t){const e=V$1,n={XSCyw:function(t,e){return t<e},iygeq:function(t,e){return t==e}};delete this[e(636)][t[e(410)]];for(let i=0;n[e(664)](i,this[e(597)][e(584)]);i++)if(n[e(460)](this[e(597)][i],t[e(410)]))return void this[e(597)][e(561)](i,1)}[V$1(500)](t){const e=V$1;let n=this[e(636)][t[e(410)]];({AXOYz:function(t,e){return t===e}})[e(596)](n,void 0)&&(n=new Vector2,this[e(636)][t[e(410)]]=n),n[e(631)](t[e(504)],t[e(363)])}[V$1(624)](t){const e=V$1,n={gLtcx:function(t,e){return t===e}}[e(473)](t[e(410)],this[e(597)][0])?this[e(597)][1]:this[e(597)][0];return this[e(636)][n]}}function M$b(){var t=["setPosition","copy","1|6|5|8|3|4|2|0|7","update","2829680KirPbt","touches","FeemQ","sub","10TAtVhu","posv3Temp","DOLLY","3qmdnPP","screenSpacePanning","1117458AtuKxK","object","91320RvkWBq","target","1269812eMImfv","104519rIZpHO","DOLLY_ROTATE","mouseButtons","11384110DlTHBh","PAN","split","position","ROTATE","HChvM","2346192KDaUKA","189DZFgqH","add"];return(M$b=function(){return t})()}function W$b(t,e){var n=M$b();return(W$b=function(t,e){return n[t-=116]})(t,e)}var c$2=W$b;!function(t,e){for(var n=W$b,i=t();;)try{if(408668===-parseInt(n(119))/1*(parseInt(n(139))/2)+parseInt(n(142))/3*(parseInt(n(118))/4)+-parseInt(n(135))/5+-parseInt(n(128))/6+parseInt(n(129))/7*(parseInt(n(116))/8)+parseInt(n(144))/9+parseInt(n(122))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$b);let B$7=class extends OrbitControls{constructor(t,e){super(t,e),__publicField(this,_Nf,!1),__publicField(this,_Mf,{LEFT:MOUSE[c$2(123)],MIDDLE:MOUSE[c$2(141)],RIGHT:MOUSE[c$2(126)]}),__publicField(this,_Lf,{ONE:TOUCH[c$2(123)],TWO:TOUCH[c$2(120)]}),__publicField(this,_Kf,new Vector3)}[(_Nf=c$2(143),_Mf=c$2(121),_Lf=c$2(136),_Kf=c$2(140),c$2(131))](t){for(var e=c$2,n={FeemQ:e(133),HChvM:function(t,e){return t(e)}},i=n[e(137)][e(124)]("|"),r=0;;){switch(i[r++]){case"0":case"8":this[e(117)].z=0;continue;case"1":n[e(127)](isNaN,t.y);continue;case"2":this[e(117)][e(132)](t);continue;case"3":this[e(140)][e(138)](this[e(117)]);continue;case"4":this[e(145)][e(125)][e(130)](this[e(140)]);continue;case"5":this[e(140)].z=0;continue;case"6":this[e(140)][e(132)](t);continue;case"7":this[e(134)]();continue}break}}};var m=W$a;function W$a(t,e){var n=M$a();return(W$a=function(t,e){return n[t-=212]})(t,e)}function M$a(){var t=["vfrhl","minZoom","updateSize","interact","chvJl","IOYpB","enablePan","setRotation","qCqha","thetaXYPlane","dollyIn","gUpjF","None","YuhvE","camera","gRLnV","number","Hexvj","RVEsC","JicJl","dExRE","GGLDi","clientWidth","setZoom","point","userData","152fazKPQ","1|2|5|0|3|6|4","bsCul","NnNwu","_minResolution","DLNTR","Oebmb","pRcMX","lJlXO","setCenter","OYbyF","fov","resolve","YwhcS","WFNTJ","getZoom","azIff","hMiCh","amnKm","IXGwZ","YPtDc","getWorldDirection","max","addEventListener","setSize","enableRotation","2641620GBnyjR","VOHPH","TogxD","setMaxResolution","10svNMGn","dot","updateProjectionMatrix","plane","set","8|3|7|9|1|2|0|6|4|5","txWfM","32092DHkZFn","resolution","yrkLS","clone","XysSA","xTrNi","easing","yFhid","coordsToLngLat","pitch","resolution2Level","OLYOl","level2Resolution","FkPjs","start","getElementById","sqrt","lngLatToCoord","mDQbw","viewchange","BxQTd","iCmBn","6467826ZLjXme","_maxResolution","string","maxResolution","add","XMmVW","Linear","removeEventListener","devicePixelRatio","setPosition","disconnect","tFqCL","scene","QLONF","observe","click","_lastRenderTime","highp","PJLeu","enabled","resize","RdeRg","sizeChanged","datumsToSpherical","GPsIV","length","wVbdR","ydaYC","Cvqqk","promise","qgLAI","cWrKD","cKvQN","getCenter","RAF","dispose","renderer","PqqCu","lng","clear","BirzJ","split","setZoomAndCenter","getFit","vFOV","LbQwo","Zqytl","417543ERxMia","LOG2E","uwMKu","SXNoo","RgLVZ","checkNormalResize","object","maxPitch","_minZoom","CyOUv","5|2|1|3|0|4","CsQxR","HYmHQ","autoClear","copy","intersectObjectsBy2D","minResolution","shadow","_resolution2CameraDistance","_zoomTween","dollyOut","controls","renderNow","zoomToPosition","dragEnable","33231231VyLgLE","getPolarAngle","toFixed","EvWQd","domObserver","container3","oipMj","zoom","stop","height","minPolarAngle","PUvGl","setMinResolution","cssText","TBCLq","vFovHeight","relative","setContainer","setViewSize","container2","ZMwbi","ZoomLevel","sphericalToDatums","position:absolute;top:0;left:0;width:100%;height:100%;","RqRDw","getAzimuthalAngle","rotateUp","aMjlh","phi","DoJFM","initRender","MtOXf","zoomOut","clientHeight","getMaxResolution","emit","width","QSnpm","getStatus","jVprv","rotateLeft","zoomIn","center","position","KCIqq","8|4|9|7|10|0|2|5|3|1|6","now","nEFhC","div","getPitch","css2dRenderer","nvsDx","ENEuy","RlPRJ","min","getResolution","SpfgB","YEnej","pow","isArray","calResolution","3371349TwOHvY","setPixelRatio","nGegU","appendChild","QCRaR","5|3|1|4|2|0","minPitch","ewhtO","cbOFv","theta","onUpdate","PWZTL","zoomEnable","setResolution","log","FMFRI","kdOox","bHkvU","tan","sub","aspect","updateMatrixWorld","update","target","1919268iwvlqu","YTTfH","setPitch","atan2","YhSkv","btwOg","style","multiplyScalar","getMinResolution","render","GfsTJ","createElement","hFRZq","lat","onComplete","yjYdk","olnRk","map","CNMau","maxPolarAngle","pZuhi","spherical","orientationchange","setStatus","lWrze","shadowMap","_thetaXYPlane","rotationEnable","GuBaV","VyuGw","getRotation","abs","subVectors","_resizeTimer","enableZoom","13rPhfaU","DPiyI","NfVin","FMYhY","setZooms","container","maxDistance","minDistance","nwCtR","_maxZoom","maxZoom","EtcTF","3|5|0|4|2|1","domElement","TlcNo","_resolution","AWmEr","enablePitch","lDYLe","_zoomTweenNum","bVOpd","pitchEnable","rotation","olkVI"];return(M$a=function(){return t})()}!function(t,e){for(var n=W$a,i=t();;)try{if(614379===-parseInt(n(304))/1*(-parseInt(n(391))/2)+-parseInt(n(245))/3+-parseInt(n(269))/4+parseInt(n(380))/5+-parseInt(n(413))/6+-parseInt(n(460))/7*(parseInt(n(354))/8)+parseInt(n(485))/9*(parseInt(n(384))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$a);let n$1=(_Pf=class{static[(_Of=m(506),m(403))](t){var e=m,n={RdeRg:function(t,e){return t/e},pZuhi:function(t,e){return t-e}};return n[e(434)](this[e(506)],Math[e(242)](2,n[e(289)](t,1)))}static[m(401)](t){var e=m,n={qgLAI:function(t,e){return t/e},gRLnV:function(t,e){return t+e},DoJFM:function(t,e){return t*e}},i=n[e(443)](this[e(506)],t);return n[e(343)](i=n[e(213)](Math[e(259)](i),Math[e(461)]),1)}static[m(244)](t,e){var n=m,i=t[n(375)](new Vector3),r=new Vector3;return r[n(301)](e,t[n(227)]),{FMFRI:function(t,e){return t*e}}[n(260)](t[n(353)][n(500)],i[n(385)](r))}},__publicField(_Pf,_Of,78271.52),_Pf);class MapControl extends EventDispatcher{constructor(t){var e=m,n={ENEuy:e(410),olnRk:e(428),pRcMX:e(232),uwMKu:e(501),mDQbw:e(508),btwOg:e(433),yrkLS:e(291)};super(),__publicField(this,_jg),__publicField(this,_ig),__publicField(this,_hg),__publicField(this,_gg),__publicField(this,_fg),__publicField(this,_eg),__publicField(this,_dg),__publicField(this,_cg),__publicField(this,_bg),__publicField(this,_ag,0),__publicField(this,_$f,30),__publicField(this,__f),__publicField(this,_Zf),__publicField(this,_Yf),__publicField(this,_Xf,new PerspectiveCamera(36.86989764584402,1,.01,1e10)),__publicField(this,_Wf),__publicField(this,_Vf,0),__publicField(this,_Uf),__publicField(this,_Tf,(()=>{var t=m,e={MtOXf:function(t,e){return t(e)},azIff:function(t,e,n){return t(e,n)}};e[t(215)](clearTimeout,this[t(302)]),this[t(302)]=e[t(370)](setTimeout,(()=>{var e=t;this[e(330)](),this[e(286)][e(433)]()}),50)})),__publicField(this,_Sf),__publicField(this,_Rf),__publicField(this,_Qf,!0),this[e(504)]=document[e(280)](n[e(361)]),this[e(490)]=document[e(280)](n[e(361)]),this[e(504)][e(275)][e(227)]=n[e(462)],this[e(286)]=t,this[e(214)](),this[e(504)][e(248)](this[e(449)][e(317)]),this[e(504)][e(248)](this[e(490)]),this[e(490)][e(275)][e(498)]=this[e(504)][e(275)][e(498)]=this[e(449)][e(317)][e(275)][e(498)]=n[e(409)],this[e(481)]=new B$7(this[e(342)],this[e(490)]),this[e(481)].on(n[e(236)],(t=>{var i=e;this[i(219)](n[i(236)],{center:this[i(226)],zoom:this[i(492)],rotation:this[i(326)],pitch:this[i(400)]})})),window[e(377)](n[e(274)],this[e(433)]),window[e(377)](n[e(393)],this[e(433)]),this[e(481)].on(n[e(285)],(t=>{var i=e;let r=this[i(286)][i(331)][i(475)](t,[this[i(286)][i(331)][i(387)]])[0];r[i(352)].z=0;let s=this[i(399)](r[i(352)][i(394)]()[i(417)](this[i(286)][i(226)]));this[i(219)](n[i(285)],{lnglat:s,originEvent:t,pos:[r[i(352)].x,r[i(352)].y],point:r[i(352)]})}))}[(_jg=m(309),_ig=m(319),_hg=m(504),_gg=m(490),_fg=m(489),_eg=m(220),_dg=m(494),_cg=m(358),_bg=m(414),_ag=m(313),_$f=m(468),__f=m(449),_Zf=m(234),_Yf=m(481),_Xf=m(342),_Wf=m(457),_Vf=m(429),_Uf=m(286),m(214))](){for(var t=m,e={NnNwu:t(389),CyOUv:function(t,e){return t/e},EvWQd:function(t,e){return t*e},XMmVW:function(t,e){return t*e},YPtDc:function(t,e){return t<=e},bHkvU:t(430)},n=e[t(357)][t(454)]("|"),i=0;;){switch(n[i++]){case"0":this[t(342)][t(266)]();continue;case"1":this[t(342)][t(227)][t(388)](0,.001,1);continue;case"2":this[t(342)][t(353)][t(268)]=new Vector3;continue;case"3":this[t(234)]=new CSS2DRenderer({element:this[t(490)]});continue;case"4":this[t(342)][t(353)][t(500)]=e[t(469)](this[t(457)],1024);continue;case"5":this[t(449)][t(246)](window[t(421)]);continue;case"6":this[t(457)]=e[t(488)](2,Math[t(263)](e[t(469)](e[t(418)](this[t(342)][t(365)],Math.PI),360)));continue;case"7":this[t(449)][t(294)][t(432)]=this[t(286)][t(477)];continue;case"8":this[t(449)]=new WebGLRenderer({antialias:e[t(374)](devicePixelRatio,1),precision:e[t(262)],alpha:!0,sortObjects:!1,outputEncoding:SRGBColorSpace,stencil:!1,logarithmicDepthBuffer:!0});continue;case"9":this[t(449)][t(473)]=!1;continue}break}}[(_Tf=m(433),m(399))](t,e){var n=m,i={YTTfH:function(t,e){return t===e},Zqytl:n(466),QSnpm:function(t,e){return t in e}};return Array[n(243)](t)?(e=t[1],t=t[0]):i[n(270)](typeof t,i[n(459)])&&i[n(221)]("x",t)&&(e=t.y,t=t.x),UnitsUtils[n(507)](+t,+e)}[m(408)](t,e){var n=m,i={amnKm:function(t,e){return t===e},KCIqq:n(466),oipMj:function(t,e){return t in e},YEnej:n(451)};return Array[n(243)](t)?(e=t[1],t=t[0]):i[n(372)](typeof t,i[n(228)])&&i[n(491)](i[n(241)],t)&&(e=t[n(282)],t=t[n(451)]),UnitsUtils[n(436)](+t,+e)}[m(448)](){var t=m,e={dExRE:function(t,e){return t(e)},nEFhC:t(433),HYmHQ:t(291)};this[t(481)][t(448)](),e[t(348)](clearTimeout,this[t(465)]),window[t(420)](e[t(231)],this[t(433)]),window[t(420)](e[t(472)],this[t(433)]),this[t(489)][t(423)](),this[t(489)]=null}[m(502)](t){for(var e=m,n={gUpjF:e(316),SXNoo:function(t,e){return t===e},txWfM:e(415)},i=n[e(339)][e(454)]("|"),r=0;;){switch(i[r++]){case"0":this[e(489)]=new ResizeObserver(this[e(433)]);continue;case"1":this[e(503)](this[e(309)][e(350)],this[e(309)][e(217)]);continue;case"2":this[e(309)][e(248)](this[e(504)]);continue;case"3":n[e(463)](typeof t,n[e(390)])?this[e(309)]=document[e(406)](t):this[e(309)]=t;continue;case"4":this[e(489)][e(427)](this[e(309)]);continue;case"5":if(!this[e(309)])return;continue}break}}[m(222)](){var t=m;return{pitchEnable:this[t(325)],zoomEnable:this[t(257)]}}[m(292)](t){for(const e in t)this[e]=t[e]}[m(233)](){var t=m;return{yFhid:function(t,e){return t*e}}[t(398)](this[t(481)][t(290)][t(212)],RAD2DEG)}[m(271)](t,e){var n=m,i={PWZTL:function(t,e){return t*e},kdOox:function(t,e){return t-e},PqqCu:function(t){return t()},TlcNo:function(t,e){return t!==e},ydaYC:function(t,e){return t*e},GuBaV:function(t,e){return t/e}};let r=i[n(450)](getPromise);t*=DEG2RAD;let s=this[n(481)][n(486)](),a=i[n(261)](s,t);if(e=i[n(318)](e,void 0)?e:i[n(440)](i[n(297)](Math[n(300)](a),i[n(297)](Math.PI,4)),300)){let t=0;new Tween({a:0}).to({a:1},e)[n(397)](Easing[n(419)][n(340)])[n(255)]((e=>{var r=n;let s=i[r(256)](i[r(261)](e.a,t),a);this[r(481)][r(511)](s),this[r(481)][r(267)](),t=e.a}))[n(283)]((()=>{r[n(366)](this)}))[n(405)]()}else this[n(481)][n(511)](a),this[n(481)][n(267)]();return r[n(442)]}[m(363)](t,e=300){var n=m;let i={SpfgB:function(t){return t()}}[n(240)](getPromise),r=this[n(408)](t)[n(264)](this[n(286)][n(226)]);var s=r.x,a=r.y,o=new Vector3(s,a,0);return e?new Tween(this[n(481)][n(268)][n(394)]()).to(o,e)[n(397)](Easing[n(419)][n(340)])[n(255)]((t=>{var e=n;this[e(481)][e(422)](t)}))[n(283)]((()=>{i[n(366)](this)}))[n(405)]():(this[n(481)][n(422)](o),i[n(366)](this)),i[n(442)]}[m(446)](){var t=m;return this[t(399)](this[t(481)][t(268)][t(394)]()[t(417)](this[t(286)][t(226)]))}[m(483)](t,e=this[m(492)]+1,n=2e3){var i=m,r={GGLDi:function(t,e){return t+e},QCRaR:function(t,e){return t*e},vfrhl:function(t,e){return t-e},nGegU:function(t,e){return t+e},Cvqqk:function(t,e){return t-e},olkVI:function(t){return t()},GfsTJ:function(t,e){return t in e},AWmEr:function(t,e){return t==e}};let s=r[i(327)](getPromise);var a,o;if(r[i(279)]("x",t)?(a=t.x,o=t.y):(a=t[0],o=t[1]),r[i(320)](n,0))this[i(492)]=e,this[i(226)]=[a,o],s[i(366)](this);else{var c=this[i(492)],l=this[i(226)][0],u=this[i(226)][1];new Tween({a:0}).to({a:1},n)[i(255)](((t,n)=>{var s=i;this[s(492)]=r[s(349)](r[s(249)](r[s(328)](e,c),n),c),l=r[s(349)](r[s(249)](r[s(328)](a,l),n),l),u=r[s(247)](r[s(249)](r[s(441)](o,u),n),u),this[s(226)]=[l,u]}))[i(283)]((t=>{s[i(366)](this)}))[i(405)]()}return s[i(442)]}[m(456)](t){var e=m,n={RgLVZ:function(t,e){return t/e},RVEsC:function(t,e){return t+e},OYbyF:function(t,e){return t/e},qCqha:function(t,e){return t+e},VOHPH:function(t,e){return t-e},Oebmb:function(t,e){return t-e},nvsDx:function(t,e){return t/e},lWrze:function(t,e){return t/e},ZMwbi:function(t,e){return t*e},Hexvj:function(t,e){return t/e},tFqCL:function(t,e){return t/e},GPsIV:function(t,e){return t*e}};let i=n[e(464)](n[e(346)](t[2],t[0]),2),r=n[e(364)](n[e(336)](t[3],t[1]),2),s=n[e(381)](t[2],t[0]),a=n[e(360)](t[3],t[1]),o=Math[e(238)](this[e(220)],this[e(494)]);var c=n[e(235)](s,n[e(293)](n[e(505)](2,o),3)),l=n[e(345)](a,n[e(424)](n[e(437)](2,o),3));c=Math[e(376)](c,l);var u=n$1[e(401)](c);return i+=this[e(286)][e(226)].x,r+=this[e(286)][e(226)].y,{zoom:u,position:new Vector3(i,r,0),lnglat:this[e(399)](i,r)}}[m(455)](t,e,n){var i=m,r={LbQwo:function(t,e){return t===e},PJLeu:i(344)};return this[i(483)](e,t,r[i(458)](typeof n,r[i(431)])?n:0)}[m(503)](t,e){var n=m,i={cWrKD:function(t,e){return t==e},jVprv:function(t,e){return t/e},FMYhY:n(435)};if(i[n(444)](t,0)||i[n(444)](e,0))return-1;this[n(220)]=t,this[n(494)]=e,this[n(342)][n(353)][n(500)]=i[n(223)](this[n(457)],this[n(494)]),this[n(342)][n(265)]=i[n(223)](this[n(220)],this[n(494)]),this[n(342)][n(386)](),this[n(449)][n(378)](this[n(220)],this[n(494)]),this[n(234)][n(378)](this[n(220)],this[n(494)]),this[n(497)](this[n(358)]),this[n(383)](this[n(414)]),this[n(258)](this[n(319)]),this[n(219)](i[n(307)])}[m(239)](){return this[m(392)]}[m(258)](t){this[m(392)]=t}[m(478)](t){for(var e=m,n={RlPRJ:e(229),PUvGl:function(t,e){return t/e},BxQTd:function(t,e){return t-e}},i=n[e(237)][e(454)]("|"),r=0;;){switch(i[r++]){case"0":var s=u[e(385)](c);continue;case"1":var a=c[e(394)]();continue;case"2":var o=(new Vector3)[e(301)](h,c);continue;case"3":o[e(276)](l);continue;case"4":var c=new Vector3(0,-.001,1);continue;case"5":var l=n[e(496)](n[e(411)](s,n[e(411)](p,d)),o[e(385)](u));continue;case"6":return a[e(264)](o),a[e(438)]();case"7":var u=(new Vector3)[e(301)](h,c);continue;case"8":var h=new Vector3;continue;case"9":var d=n[e(496)](t,this[e(342)][e(353)][e(500)]);continue;case"10":var p=u[e(385)](h);continue}break}}[m(383)](t){var e=m,n={hMiCh:function(t,e){return t!=e},aMjlh:function(t,e){return t(e)}};if(n[e(371)](void 0,t)&&!n[e(512)](isNaN,t)&&(this[e(414)]=t,this[e(481)]&&this[e(342)][e(353)][e(500)])){var i=this[e(478)](this[e(414)]);this[e(481)][e(310)]=i}}[m(497)](t){var e=m,n={wVbdR:function(t,e){return t!=e},bsCul:function(t,e){return t(e)}};if(n[e(439)](void 0,t)&&!n[e(356)](isNaN,t)&&(this[e(358)]=t,this[e(481)]&&this[e(342)][e(353)][e(500)])){var i=this[e(478)](this[e(358)]);this[e(481)][e(311)]=i}}[m(218)](){return this[m(414)]}[m(277)](){return this[m(358)]}[m(225)](){var t=m;this[t(481)][t(338)](),this[t(481)][t(267)]()}[m(216)](){var t=m;this[t(481)][t(480)](),this[t(481)][t(267)]()}[m(299)](){var t=m;return{iCmBn:function(t,e){return t*e}}[t(412)](this[t(481)][t(290)][t(254)],RAD2DEG)}[m(335)](t,e=300){var n=m,i={lJlXO:function(t,e){return t*e},CNMau:function(t,e){return t-e},yjYdk:function(t){return t()},IXGwZ:function(t,e){return t%e},cbOFv:function(t,e){return t>e},EtcTF:function(t,e){return t<e},VyuGw:function(t,e){return t*e},DPiyI:function(t,e){return t/e}};t=i[n(362)](t,DEG2RAD);let r=i[n(284)](getPromise);var s=this[n(481)][n(510)](),a=i[n(373)](t,i[n(362)](2,Math.PI)),o=i[n(287)](a,s);if(o%=i[n(362)](2,Math.PI),e){i[n(253)](o,Math.PI)&&(o-=i[n(362)](2,Math.PI)),i[n(315)](o,-Math.PI)&&(o+=i[n(362)](2,Math.PI)),e=i[n(298)](i[n(305)](Math[n(300)](o),i[n(305)](Math.PI,4)),500);let t=0;new Tween({a:0}).to({a:1},e)[n(397)](Easing[n(419)][n(340)])[n(255)]((e=>{var r=n;let s=i[r(362)](i[r(287)](e.a,t),-o);this[r(481)][r(224)](s),this[r(481)][r(267)](),t=e.a}))[n(283)]((()=>{r[n(366)](this)}))[n(405)]()}else this[n(481)][n(224)](-o),this[n(481)][n(267)](),r[n(366)](this);return r[n(442)]}[(_Sf=m(479),_Rf=m(323),m(351))](t,e=300){var n,i=m,r={hFRZq:function(t){return t()},CsQxR:function(t,e){return t===e}};let s=r[i(281)](getPromise);if(e){if(r[i(471)](this[i(323)],t))return;null==(n=this[i(479)])||n[i(493)](),this[i(323)]=t,this[i(479)]=new Tween(this)[i(397)](Easing[i(419)][i(340)]).to({zoom:t},e)[i(283)]((()=>{var t=i;s[t(366)](this),this[t(323)]=-1}))[i(405)]()}else this[i(492)]=t,s[i(366)](this);return s[i(442)]}[m(308)](t){var e=m;this[e(314)]=t[1],this[e(329)]=t[0]}[m(369)](){return this[m(492)]}[m(330)](){var t=m,e={WFNTJ:function(t,e){return t!==e},YwhcS:function(t,e){return t!==e},NfVin:function(t,e){return t(e)},bVOpd:function(t,e,n){return t(e,n)}};this[t(309)]&&(e[t(368)](this[t(309)][t(350)],0)&&e[t(367)](this[t(309)][t(217)],0)?(e[t(306)](clearTimeout,this[t(465)]),this[t(503)](this[t(309)][t(350)],this[t(309)][t(217)])):this[t(465)]=e[t(324)](setTimeout,(()=>{this[t(330)]()}),20))}[m(405)](){this[m(447)]()}[(_Qf=m(482),m(447))](){var t=m,e={lDYLe:function(t,e){return t(e)},FkPjs:t(470)};if(e[t(322)](requestAnimationFrame,(()=>{this[t(447)]()})),this[t(482)])for(var n=e[t(404)][t(454)]("|"),i=0;;){switch(n[i++]){case"0":this[t(234)][t(278)](this[t(286)][t(425)],this[t(342)]);continue;case"1":this[t(449)][t(452)]();continue;case"2":this[t(481)][t(267)]();continue;case"3":this[t(286)][t(278)](this[t(342)]);continue;case"4":this[t(429)]=Date[t(230)]();continue;case"5":C$g[t(267)]();continue}break}}get[m(226)](){return this[m(446)]()}set[m(226)](t){this[m(363)](t,0)}set[m(392)](t){var e=m,n={QLONF:function(t,e){return t!=e},cKvQN:function(t,e){return t(e)},YhSkv:e(355),XysSA:function(t,e){return t/e},TBCLq:function(t,e){return t/e},IOYpB:function(t,e){return t-e}};if(t&&n[e(426)](void 0,t)&&!n[e(445)](isNaN,t)&&(t=Math[e(376)](this[e(358)],Math[e(238)](t,this[e(414)])),this[e(319)]=t,this[e(481)]&&this[e(342)][e(353)][e(500)]))for(var i=n[e(273)][e(454)]("|"),r=0;;){switch(i[r++]){case"0":var s=o[e(385)](this[e(342)][e(227)]);continue;case"1":var a=n[e(395)](this[e(319)],this[e(342)][e(353)][e(500)]);continue;case"2":var o=this[e(342)][e(375)](new Vector3);continue;case"3":var c=(new Vector3)[e(301)](this[e(481)][e(268)],this[e(342)][e(227)]);continue;case"4":c[e(276)](u),this[e(342)][e(227)][e(264)](c),this[e(342)][e(266)](!0),this[e(481)][e(267)]();continue;case"5":var l=o[e(385)](this[e(481)][e(268)]);continue;case"6":var u=n[e(499)](n[e(333)](s,n[e(333)](l,a)),c[e(385)](o));continue}break}}get[m(392)](){var t=m,e=n$1[t(244)](this[t(342)],this[t(481)][t(268)]);return this[t(319)]=e,this[t(319)]}set[m(416)](t){this[m(383)](t)}get[m(416)](){return this[m(414)]}set[m(476)](t){this[m(497)](t)}get[m(476)](){return this[m(358)]}set[m(326)](t){this[m(335)](t,0)}get[m(326)](){return this[m(299)]()}set[m(492)](t){var e=m;this[e(258)](n$1[e(403)](t))}get[m(492)](){var t=m;return+n$1[t(401)](this[t(392)])[t(487)](2)}set[m(314)](t){var e=m;this[e(313)]=t;var n=n$1[e(403)](t);this[e(497)](n)}get[m(314)](){var t=m;return{nwCtR:function(t,e){return t==e}}[t(312)](void 0,this[t(313)])&&(this[t(313)]=21),this[t(313)]}set[m(329)](t){var e=m;this[e(468)]=t;var n=n$1[e(403)](t);this[e(383)](n)}get[m(329)](){var t=m;return{RqRDw:function(t,e){return t==e}}[t(509)](void 0,this[t(468)])&&(this[t(468)]=1),this[t(468)]}set[m(337)](t){for(var e=m,n={JicJl:e(250),xTrNi:function(t,e){return t-e},TogxD:function(t,e){return t+e},DLNTR:function(t,e){return t*e},chvJl:function(t,e){return t*e}},i=n[e(347)][e(454)]("|"),r=0;;){switch(i[r++]){case"0":this[e(481)][e(267)]();continue;case"1":s[e(474)](this[e(342)][e(227)])[e(264)](this[e(481)][e(268)]);continue;case"2":this[e(481)][e(511)](n[e(396)](a,t));continue;case"3":var s=new Vector3;continue;case"4":var a=Math[e(272)](Math[e(407)](n[e(382)](n[e(359)](s.x,s.x),n[e(332)](s.y,s.y))),s.z);continue;case"5":this[e(295)]=t;continue}break}}get[m(337)](){return this[m(295)]}set[m(400)](t){this[m(271)](t)}get[m(400)](){return this[m(233)]()}set[m(251)](t){var e=m;this[e(481)][e(495)]={YuhvE:function(t,e){return t*e}}[e(341)](t,DEG2RAD)}get[m(251)](){var t=m;return{BirzJ:function(t,e){return t*e}}[t(453)](this[t(481)][t(495)],RAD2DEG)}set[m(467)](t){var e=m;this[e(481)][e(288)]={OLYOl:function(t,e){return t*e}}[e(402)](t,DEG2RAD)}get[m(467)](){var t=m;return{ewhtO:function(t,e){return t*e}}[t(252)](this[t(481)][t(288)],RAD2DEG)}set[m(325)](t){var e=m;this[e(481)][e(321)]=t}get[m(325)](){var t=m;return this[t(481)][t(321)]}set[m(484)](t){var e=m;this[e(481)][e(334)]=t}get[m(484)](){var t=m;return this[t(481)][t(334)]}set[m(257)](t){var e=m;this[e(481)][e(303)]=t}get[m(257)](){var t=m;return this[t(481)][t(303)]}set[m(296)](t){var e=m;this[e(481)][e(379)]=t}get[m(296)](){var t=m;return this[t(481)][t(379)]}}const M8=W$9;function W$9(t,e){const n=M$9();return(W$9=function(t,e){return n[t-=396]})(t,e)}function M$9(){const t=["ZWPKa","LMoTC","Hxzyp","1424535fHDYpv","gfBDD","bIEdO","534LJNJKD","MxWHx","hBDmP","wzcgq","WshBh","3374723aHtWPs","ThAbk","JTbty","VzuCG","setIndex","nqHDq","zWzIJ","kYuUL","220203JdtsNp","pVfcz","OidLX","167037eNweeE","hZrMj","oDNit","fsAyC","568STbMtK","16MoJpeI","MyfcC","KHzCQ","xsoBG","PhJth","wnsDc","zUyxH","sSwUx","Yrxpp","length","LjbiR","nYOyo","buildPlane","AKbhK","push","qgztV","FSMcZ","qpfJU","TnphD","position","wMhde","weeYF","iRsev","SkyLF","8rfugOX","QMIif","139349mAXePf","evvLC","qwgLj","HGnom","JOlro","rgDtc","OCbsP","FZedH","JECTW","FPeET","setAttribute","hWoiv","phkzP","6830080YweWQd","lQARG","ybYxH","ekUrs","8875375MdGJTw","buildSkirt","normal","nrgmT","XTFnS","UFTPV"];return(M$9=function(){return t})()}!function(t,e){const n=W$9,i=t();for(;;)try{if(970984===parseInt(n(454))/1*(-parseInt(n(459))/2)+-parseInt(n(435))/3*(-parseInt(n(407))/4)+-parseInt(n(426))/5+parseInt(n(438))/6*(parseInt(n(409))/7)+parseInt(n(458))/8*(parseInt(n(451))/9)+-parseInt(n(422))/10+parseInt(n(443))/11)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$9);class MapNodeGeometry extends BufferGeometry{constructor(t=1,e=1,n=1,i=1,r=!1,s=10){const a=W$9,o={kYuUL:a(402),TnphD:a(428)};super();const c=[],l=[],u=[],h=[];MapNodeGeometry[a(471)](t,e,n,i,c,l,u,h),r&&MapNodeGeometry[a(427)](t,e,n,i,s,c,l,u,h),this[a(447)](c),this[a(419)](o[a(450)],new Float32BufferAttribute(l,3)),this[a(419)](o[a(401)],new Float32BufferAttribute(u,3)),this[a(419)]("uv",new Float32BufferAttribute(h,2))}static[M8(471)](t=1,e=1,n=1,i=1,r,s,a,o){const c=M8,l={ekUrs:function(t,e){return t/e},weeYF:function(t,e){return t/e},JOlro:function(t,e){return t+e},bIEdO:function(t,e){return t+e},wzcgq:function(t,e){return t/e},sSwUx:function(t,e){return t/e},pVfcz:function(t,e){return t<e},LjbiR:function(t,e){return t-e},OidLX:function(t,e){return t*e},Hxzyp:function(t,e){return t<e},hBDmP:function(t,e){return t/e},WshBh:function(t,e){return t+e},rgDtc:function(t,e){return t*e},wMhde:function(t,e){return t+e},FZedH:function(t,e){return t*e},LMoTC:function(t,e){return t+e},qwgLj:function(t,e){return t+e},PhJth:function(t,e){return t*e},ThAbk:function(t,e){return t*e}},u=l[c(425)](t,2),h=l[c(404)](e,2),d=l[c(413)](n,1),p=l[c(437)](i,1),f=l[c(441)](t,n),m=l[c(466)](e,i);for(let g=0;l[c(452)](g,p);g++){const t=l[c(469)](l[c(453)](g,m),h);for(let e=0;l[c(434)](e,d);e++){const r=l[c(469)](l[c(453)](e,f),u);s[c(397)](r,0,t),a[c(397)](0,1,0),o[c(397)](l[c(440)](e,n),l[c(469)](1,l[c(466)](g,i)))}}for(let g=0;l[c(434)](g,i);g++)for(let t=0;l[c(434)](t,n);t++){const e=l[c(442)](t,l[c(414)](d,g)),n=l[c(403)](t,l[c(416)](d,l[c(433)](g,1))),i=l[c(411)](l[c(442)](t,1),l[c(463)](d,l[c(403)](g,1))),s=l[c(411)](l[c(403)](t,1),l[c(444)](d,g));r[c(397)](e,n,s,n,i,s)}}static[M8(427)](t=1,e=1,n=1,i=1,r,s,a,o,c){const l=M8,u={xsoBG:function(t,e){return t/e},FSMcZ:function(t,e){return t/e},QMIif:function(t,e){return t+e},nrgmT:function(t,e){return t/e},wnsDc:function(t,e){return t<e},ybYxH:function(t,e){return t-e},JECTW:function(t,e){return t*e},VzuCG:function(t,e){return t<e},zWzIJ:function(t,e){return t+e},zUyxH:function(t,e){return t+e},qpfJU:function(t,e){return t+e},qgztV:function(t,e){return t<e},ZWPKa:function(t,e){return t*e},KHzCQ:function(t,e){return t/e},nYOyo:function(t,e){return t-e},FPeET:function(t,e){return t*e},iRsev:function(t,e){return t<e},phkzP:function(t,e){return t+e},hWoiv:function(t,e){return t+e},Yrxpp:function(t,e){return t+e},lQARG:function(t,e){return t+e},hZrMj:function(t,e){return t+e},XTFnS:function(t,e){return t-e},fsAyC:function(t,e){return t-e},OCbsP:function(t,e){return t/e},oDNit:function(t,e){return t+e},MyfcC:function(t,e){return t+e},AKbhK:function(t,e){return t/e},JTbty:function(t,e){return t<e},nqHDq:function(t,e){return t-e},UFTPV:function(t,e){return t/e},HGnom:function(t,e){return t<e},evvLC:function(t,e){return t+e},gfBDD:function(t,e){return t+e},SkyLF:function(t,e){return t+e},MxWHx:function(t,e){return t+e}},h=u[l(462)](t,2),d=u[l(399)](e,2),p=u[l(408)](n,1),f=u[l(408)](i,1),m=u[l(429)](t,n),g=u[l(429)](e,i);let A=u[l(429)](a[l(468)],3);for(let v=0;u[l(464)](v,p);v++){const t=u[l(424)](u[l(417)](v,m),h),e=-d;a[l(397)](t,-r,e),o[l(397)](0,1,0),c[l(397)](u[l(399)](v,n),1)}for(let v=0;u[l(446)](v,n);v++){const t=v,e=u[l(449)](v,1),n=u[l(465)](v,A),i=u[l(400)](u[l(400)](v,A),1);s[l(397)](e,n,t,e,i,n)}A=u[l(462)](a[l(468)],3);for(let v=0;u[l(398)](v,p);v++){const t=u[l(424)](u[l(417)](v,m),h),e=u[l(424)](u[l(432)](i,g),d);a[l(397)](t,-r,e),o[l(397)](0,1,0),c[l(397)](u[l(461)](v,n),0)}let y=u[l(424)](u[l(470)](u[l(418)](p,f),n),1);for(let v=0;u[l(405)](v,n);v++){const t=u[l(408)](y,v),e=u[l(421)](u[l(420)](y,v),1),n=u[l(467)](v,A),i=u[l(423)](u[l(455)](v,A),1);s[l(397)](t,n,e,n,i,e)}A=u[l(461)](a[l(468)],3);for(let v=0;u[l(446)](v,f);v++){const t=u[l(430)](u[l(432)](v,g),d),e=-h;a[l(397)](e,-r,t),o[l(397)](0,1,0),c[l(397)](0,u[l(457)](1,u[l(415)](v,i)))}for(let v=0;u[l(446)](v,i);v++){const t=u[l(417)](v,f),e=u[l(417)](u[l(456)](v,1),f),n=u[l(460)](v,A),i=u[l(455)](u[l(421)](v,A),1);s[l(397)](t,n,e,n,i,e)}A=u[l(396)](a[l(468)],3);for(let v=0;u[l(445)](v,f);v++){const t=u[l(430)](u[l(417)](v,g),d),e=u[l(448)](u[l(432)](n,m),h);a[l(397)](e,-r,t),o[l(397)](0,1,0),c[l(397)](1,u[l(457)](1,u[l(431)](v,i)))}for(let v=0;u[l(412)](v,i);v++){const t=u[l(410)](u[l(418)](v,f),i),e=u[l(436)](u[l(432)](u[l(460)](v,1),f),i),n=u[l(456)](v,A),r=u[l(406)](u[l(439)](v,A),1);s[l(397)](e,n,t,e,r,n)}}}const Z$1=W$8;function M$8(){const t=["_dispose","4510569ElhIhY","add","LdnfK","position","_onBeforeCompile","getimg Failed","nodesLoaded","6|3|5|1|11|8|7|4|9|2|10|0","matrixAutoUpdate","8384UpWyyj","172CsklTE","bAcZl","rcwZY","RUWqE","27780543klemhe","loadData","4690308YsMQaG","visible","undefined","afNLL","DnmSE","Lotif","onBeforeCompile","warn","childrens","UadvT","dispose","vHvwA","minZoom","7574eeArBG","isMesh","mapView","HGLYA","copy","height","defaultTexture","kmCFO","ltNoE","scale","hiEqB","NmrCx","BokzC","needsUpdate","PiCwR","initialize","subdivide","parentNode","disposed","minFilter","renderOrder","format","magFilter","fFBcC","maxZoom","geometry","fillStyle","set","material","length","level","getContext","createChildNodes","createElement","map","ZBWxu","HQAnK","fetchTile","1507826tSToFj","simplify","updateMatrixWorld","width","updateMatrix","156450XmgAUU","subdivided","fillRect","IbWhE","#fff","EgRlN","canvas","childrenCache","569008vEmIbe","children","split","generateMipmaps"];return(M$8=function(){return t})()}function W$8(t,e){const n=M$8();return(W$8=function(t,e){return n[t-=283]})(t,e)}function B$6(t=Z$1(313),e=1,n=1){const i=Z$1,r={DnmSE:function(t,e,n){return t(e,n)}}[i(342)](createOffscreenCanvas,e,n),s=r[i(297)]("2d");s[i(292)]=t,s[i(311)](0,0,e,n);const a=new Texture(r);return a[i(287)]=RGBAFormat,a[i(288)]=LinearFilter,a[i(285)]=LinearFilter,a[i(320)]=!1,a[i(364)]=!0,a}function createOffscreenCanvas(t,e){const n=Z$1,i={RUWqE:function(t,e){return t!==e},rcwZY:n(340),EgRlN:n(315)};if(i[n(335)](typeof OffscreenCanvas,i[n(334)]))return new OffscreenCanvas(t,e);{let r=document[n(299)](i[n(314)]);return r[n(307)]=t,r[n(356)]=e,r}}!function(t,e){const n=W$8,i=t();for(;;)try{if(828115===parseInt(n(317))/1+-parseInt(n(304))/2+-parseInt(n(322))/3+-parseInt(n(332))/4*(-parseInt(n(309))/5)+-parseInt(n(338))/6+parseInt(n(351))/7*(-parseInt(n(331))/8)+parseInt(n(336))/9)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$8);const _MapPlaneNode=class t extends Mesh{constructor(e,n,i=0,r=0,s=0){var a=(...t)=>(super(...t),__publicField(this,_sg),__publicField(this,_rg),__publicField(this,_qg),__publicField(this,"x"),__publicField(this,"y"),__publicField(this,_pg,!1),__publicField(this,_og,!1),__publicField(this,_ng,0),__publicField(this,_mg),this);const o=Z$1,c={kmCFO:o(329)}[o(358)][o(319)]("|");let l=0;for(;;){switch(c[l++]){case"0":this[o(366)]();continue;case"1":this[o(283)]=e;continue;case"2":this[o(330)]=!1;continue;case"3":this[o(294)][o(344)]=n[o(326)];continue;case"4":this.x=r;continue;case"5":this[o(353)]=n;continue;case"6":a(t[o(291)],new MeshBasicMaterial({depthTest:!1,depthWrite:!1}));continue;case"7":this[o(296)]=i;continue;case"8":this[o(284)]=!1;continue;case"9":this.y=s;continue;case"10":this[o(339)]=!1;continue;case"11":this[o(286)]=-999;continue}break}}async[(_tg=Z$1(357),_sg=Z$1(353),_rg=Z$1(283),_qg=Z$1(296),_pg=Z$1(310),_og=Z$1(284),_ng=Z$1(328),_mg=Z$1(316),_lg=Z$1(346),_kg=Z$1(291),Z$1(366))](){const e=Z$1,n={LdnfK:function(t,e){return t<=e},UadvT:function(t,e){return t!==e},NmrCx:function(t,e){return t===e}};n[e(324)](this[e(296)],this[e(353)][e(296)])&&await this[e(337)](),this[e(284)]?this[e(321)]():(n[e(347)](this[e(283)],null)&&(this[e(283)][e(328)]++,n[e(362)](this[e(283)][e(328)],t[e(346)])&&(this[e(283)][e(352)]=!1)),this[e(339)]=!0)}[Z$1(367)](){const t=Z$1,e={ltNoE:function(t,e){return t>e},hiEqB:function(t,e){return t+e}},n=this[t(353)][t(290)];e[t(359)](this[t(318)][t(295)],0)||e[t(359)](e[t(361)](this[t(296)],1),n)||this[t(310)]||(this[t(298)](),this[t(310)]=!0)}[Z$1(305)](){const t=Z$1,e={PiCwR:function(t,e){return t<e},ZBWxu:function(t,e){return t-e},vHvwA:function(t,e){return t<e}},n=this[t(353)][t(350)];if(!e[t(365)](e[t(301)](this[t(296)],1),n)&&this[t(310)]){for(let n=0;e[t(349)](n,this[t(318)][t(295)]);n++)this[t(318)][n][t(321)]();this[t(310)]=!1,this[t(352)]=!0,this[t(318)]=[],this[t(328)]=0}}async[Z$1(337)](){const e=Z$1,n={fFBcC:function(t,e){return t<e},HQAnK:function(t,e){return t>e},BokzC:e(327)};if(n[e(289)](this[e(296)],this[e(353)][e(350)])||n[e(302)](this[e(296)],this[e(353)][e(290)]))return this[e(294)][e(300)]=t[e(357)],void(this[e(294)][e(364)]=!0);try{const t=await this[e(353)][e(303)](this[e(296)],this.x,this.y);if(this[e(284)])return;const n=new Texture(t);n[e(320)]=!1,n[e(287)]=RGBAFormat,n[e(288)]=LinearFilter,n[e(285)]=LinearFilter,n[e(364)]=!0,this[e(294)][e(300)]=n}catch(i){if(this[e(284)])return;console[e(345)](n[e(363)],this),this[e(294)][e(300)]=t[e(357)]}this[e(294)][e(364)]=!0}[Z$1(321)](){const t=Z$1,e={bAcZl:function(t,e){return t!==e}};this[t(284)]=!0,super[t(348)]();try{this[t(294)][t(348)](),this[t(294)][t(300)]&&e[t(333)](this[t(294)][t(300)],MapNode[t(357)])&&this[t(294)][t(300)][t(348)]()}catch(n){}try{this[t(291)][t(348)]()}catch(i){}}[Z$1(298)](){const e=Z$1,n={Lotif:function(t,e){return t+e},IbWhE:function(t,e){return t*e},afNLL:function(t,e){return t+e},HGLYA:function(t,e){return t+e}},i=n[e(343)](this[e(296)],1),r=n[e(312)](this.x,2),s=n[e(312)](this.y,2);let a=new Vector3(.5,1,.5),o=new t(this,this[e(353)],i,r,s);o[e(360)][e(355)](a),o[e(325)][e(293)](-.25,0,-.25),this[e(323)](o),o[e(308)](),o[e(306)](!0),o=new t(this,this[e(353)],i,n[e(343)](r,1),s),o[e(360)][e(355)](a),o[e(325)][e(293)](.25,0,-.25),this[e(323)](o),o[e(308)](),o[e(306)](!0),o=new t(this,this[e(353)],i,r,n[e(341)](s,1)),o[e(360)][e(355)](a),o[e(325)][e(293)](-.25,0,.25),this[e(323)](o),o[e(308)](),o[e(306)](!0),o=new t(this,this[e(353)],i,n[e(343)](r,1),n[e(354)](s,1)),o[e(360)][e(355)](a),o[e(325)][e(293)](.25,0,.25),this[e(323)](o),o[e(308)](),o[e(306)](!0)}};__publicField(_MapPlaneNode,_tg,B$6()),__publicField(_MapPlaneNode,_lg,4),__publicField(_MapPlaneNode,_kg,new MapNodeGeometry(1,1,1,1,!1));let MapPlaneNode=_MapPlaneNode;const K$1=W$7;function M$7(){const t=["updateSphere","ceXLj","indexOf","fYtUU","load","YnqfT","#include <map_fragment>\n","#D0E9A8","drawImage","#FCF9F2","center","oGZxU","amap","fYPlD","fragmentShader","isBaseColor","crossOrigin","#AED3FF","eLbxk","#EDF5FC","box","TiASS","push","filter","1410FQRVOe","onerror","6549815VPnMdn","fetchTile","cache","dispose","AkbAa","grBan","sub","bZQEE","fillStyle","position","mfLeE","radius","idx","EARTH_PERIMETER","NsUni","0|4|5|3|2|1","Xusbz","jRSMq","vDJsi","target","ubKIG","function","qQCGA","defaultImg","726328fIoPVN","viewchange","0|2|5|6|3|1|4","round","rcFuu","zIndex","#A9EC88","tilePois","intersectsBox","src","Anonymous","nUgSA","sphere","copy","reverse","wrljc","tilecolorReplace","UGeom","#8DABFF","split","MoGHw","img","QGkdg","handleColorReplace","floor","UDBEU","8212gMiCpL","UDvxq","bHYFi","onViewChange","DfIsN","root","camera","13524890fGcDJQ","zxGaJ","size","HvArD","eiFdN","QZcaU","wTSIQ","YSwXe","yxBiO","eiGZV","cleCS","hNgKi","cNJja","init","join","max","controls","\n if (distance(diffuseColor.rgb, vec3(","intersectNode","onload","Oiriy","6vbiKmn","AwECB","degToRad","fillRect","IWLxf","switchBaseColor","HGcri","ySTBV","splice","nlrtM","rzUSf","replace","map",", diffuseColor.a);\n }\n ","min","sourceColor","46lShIuX","ebqtq","kMlLm","remove","getContext","FLbtC","now","tiles","traverse","tan","createElement","simplify","QeRkZ","LoNNY","84njukfD","#include <map_fragment>","subdivide","#fff","length","set","TYCAb","renderOrder","getImg","aKpnW","setFromObject","scale","all","77241Sbbmfy","removeTile","aspect",")) < 0.075) {\n diffuseColor = vec4(","KGdES","JjOrg","getZoom","mapData","tHeLH","minZoom","getDistance","14588802cyqDeZ","24715119zdYuJY","bpwCu","rotateX","fov","KvGKG","_onBeforeCompile","YilJz","wMtiW","maxZoom","options","getTileUrl","GZauo","add","sort","admjY","addTile","hTGnu","juiFz","fWvip","HoPjn","toString","targetColor","level","pEavB","pGGbg"];return(M$7=function(){return t})()}function W$7(t,e){const n=M$7();return(W$7=function(t,e){return n[t-=435]})(t,e)}function B$5(t,e,n){const i=W$7,r={QZcaU:function(t,e){return t|e},juiFz:function(t,e){return t&e},qQCGA:function(t,e){return t<<e},JjOrg:function(t,e){return t-e},vDJsi:function(t,e){return t<<e},mfLeE:function(t,e){return t/e},tHeLH:function(t,e){return t&e},rzUSf:function(t,e){return t-e},admjY:function(t,e){return t|e}};var s,a;return[n,r[i(469)](r[i(557)](t,s=r[i(613)](r[i(533)](r[i(609)](1,s=Math[i(455)](r[i(601)](n,2))),1),a=r[i(533)](n,s))),r[i(536)](e,a=r[i(495)](r[i(613)](1,a),1))),r[i(554)](r[i(536)](e,s),r[i(536)](t,a))]}!function(t,e){const n=W$7,i=t();for(;;)try{if(927496===parseInt(n(528))/1*(parseInt(n(501))/2)+parseInt(n(589))/3*(-parseInt(n(457))/4)+-parseInt(n(591))/5*(parseInt(n(485))/6)+-parseInt(n(515))/7*(parseInt(n(615))/8)+parseInt(n(539))/9+-parseInt(n(464))/10+parseInt(n(540))/11)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$7);class MapTileView extends Object3D{constructor(t){const e=K$1,n={fWvip:function(t,e){return t>e},HvArD:function(t,e){return t-e},HGcri:function(t,e){return t(e)},YnqfT:function(t,e,n){return t(e,n)},Oiriy:e(518),rcFuu:function(t,e){return t/e},oGZxU:e(616)};super(),__publicField(this,_Hg,30),__publicField(this,_Gg,1),__publicField(this,_Fg),__publicField(this,_Eg),__publicField(this,_Dg),__publicField(this,_Cg,256),__publicField(this,_Bg),__publicField(this,_Ag,!1),__publicField(this,_zg,new Box3),__publicField(this,_yg,new Sphere),__publicField(this,_xg),__publicField(this,_wg,0),__publicField(this,_vg,[]),__publicField(this,_ug,{}),this[e(497)]=t,this[e(600)].z=0,this[e(522)]=-10,this[e(565)](this[e(497)][e(577)][e(534)]()),this[e(526)][e(520)](UnitsUtils[e(604)],1,UnitsUtils[e(604)]),this[e(600)][e(597)](this[e(497)][e(575)]),this[e(614)]=n[e(570)](createOffscreenCanvas,this[e(466)],this[e(466)]);const i=this[e(614)][e(505)]("2d");i[e(599)]=n[e(484)],i[e(488)](0,0,this[e(466)],this[e(466)]),this[e(542)](n[e(435)](Math.PI,2));let r,s=Date[e(507)]();this[e(497)][e(577)].on(n[e(576)],(t=>{const i=e;this[i(508)][i(519)]&&(n[i(558)](n[i(467)](Date[i(507)](),s),300)&&(s=Date[i(507)](),this[i(460)]()),n[i(491)](clearTimeout,r),r=n[i(570)](setTimeout,(()=>{this[i(460)](!0)}),500))}))}[(_Hg=K$1(548),_Gg=K$1(537),_Fg=K$1(462),_Eg=K$1(545),_Dg=K$1(497),_Cg=K$1(466),_Bg=K$1(614),_Ag=K$1(580),_zg=K$1(585),_yg=K$1(443),_xg=K$1(562),K$1(565))](t){const e=K$1,n={QeRkZ:function(t,e){return t+e},pEavB:function(t,e){return t/e},jRSMq:function(t,e){return t*e},eiGZV:function(t,e){return t*e}};this[e(562)]=ua.pc?Math[e(455)](n[e(513)](t,.3)):Math[e(618)](t);const i=MathUtils[e(487)](n[e(563)](this[e(497)][e(463)][e(543)],2)),r=n[e(608)](this[e(497)][e(577)][e(480)][e(538)](),Math[e(510)](i)),s=n[e(473)](r,this[e(497)][e(463)][e(530)]),a=Math[e(479)](r,s);this[e(443)][e(575)][e(444)](this[e(497)][e(577)][e(480)][e(610)]),this[e(443)][e(602)]=a}[K$1(460)](t){const e=K$1,n={FLbtC:function(t,e,n,i){return t(e,n,i)},TYCAb:function(t,e){return t+e},ySTBV:function(t,e){return t+e},fYtUU:function(t,e){return t+e},QGkdg:function(t,e){return t+e},KvGKG:function(t,e){return t-e}};this[e(603)]=0,this[e(565)](this[e(497)][e(577)][e(534)]());let i=0,r=[];this[e(462)][e(509)]((t=>{const n=e;this[n(482)](t),r[n(587)](t),i=Math[n(479)](t[n(562)],i)})),i=n[e(544)](Math[e(499)](i,18),1),r=r[e(588)]((t=>t[e(562)]===i));let s=r[e(497)]((t=>{const i=e;var r=n[i(506)](B$5,t.x,t.y,t[i(562)]);return n[i(521)](n[i(492)](n[i(568)](n[i(453)](r[0],","),r[1]),","),r[2])}));t&&this[e(497)][e(438)][e(569)](i,s)}[(_wg=K$1(603),K$1(482))](t){const e=K$1;this[e(443)][e(439)](this[e(585)][e(525)](t))&&{yxBiO:function(t,e){return t<e}}[e(472)](t[e(562)],this[e(562)])?t[e(517)]():t[e(512)]()}[K$1(477)](){const t=K$1,e={HoPjn:t(617),fYPlD:function(t,e,n){return t(e,n)}},n=e[t(559)][t(450)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[t(462)]&&this[t(462)][t(594)]();continue;case"1":this[t(552)](this[t(462)]);continue;case"2":this[t(462)]=null;continue;case"3":this[t(462)]=new MapPlaneNode(null,this);continue;case"4":e[t(578)](setTimeout,(()=>{this[t(460)]()}),500);continue;case"5":if(!this[t(508)][t(519)])return;continue;case"6":this[t(454)]();continue}break}}[(_vg=K$1(508),K$1(555))](t){const e=K$1,n={ceXLj:e(606)}[e(566)][e(450)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[e(508)][e(587)](t);continue;case"1":return t;case"2":!this[e(462)]&&this[e(477)]();continue;case"3":t[e(504)]=()=>{this[e(529)](t)};continue;case"4":this[e(508)][e(553)](((t,n)=>n[e(436)]-t[e(436)]));continue;case"5":this[e(548)]=Math[e(479)](...this[e(508)][e(497)]((t=>t[e(548)])));continue}break}}[K$1(529)](t){const e=K$1;let n=this[e(508)][e(567)](t);({bHYFi:function(t,e){return t>e}})[e(459)](n,-1)&&this[e(508)][e(493)](n,1),this[e(477)]()}[(_ug=K$1(593),K$1(523))](t,e,n,i){const r=K$1,s={TiASS:function(t,e){return t(e)},AkbAa:function(t,e){return t+e},nlrtM:function(t,e){return t!==e},aKpnW:r(452),YilJz:r(441),LoNNY:function(t,e){return t==e},bpwCu:r(612),bZQEE:function(t,e,n,i){return t(e,n,i)},wrljc:function(t,e){return t+e},cNJja:function(t,e){return t+e},ubKIG:function(t,e,n){return t(e,n)},zxGaJ:function(t,e){return t*e}};return new Promise(((a,o)=>{const c=r,l={eLbxk:function(t,e){return s[W$7(586)](t,e)},KGdES:function(t,e){return s[W$7(595)](t,e)},pGGbg:function(t,e){return s[W$7(595)](t,e)},grBan:function(t,e){return s[W$7(595)](t,e)},UDvxq:function(t,e){return s[W$7(494)](t,e)},UGeom:s[c(524)],UDBEU:s[c(546)],IWLxf:function(t,e){return s[c(514)](t,e)},Xusbz:s[c(541)],kMlLm:function(t,e,n,i){return s[c(598)](t,e,n,i)},NsUni:function(t,e){return s[c(446)](t,e)},MoGHw:function(t,e){return s[c(476)](t,e)}};s[c(611)](setTimeout,(()=>{const r=c,s={wTSIQ:function(t,e){return l[W$7(583)](t,e)}};let o=l[r(532)](l[r(564)](l[r(596)](t[r(560)](),e),n),i),u=this[r(593)][o];l[r(458)](u,void 0)&&l[r(583)](a,u);const h=document[r(511)](l[r(448)]);h[r(483)]=()=>{const t=r;this[t(593)][o]=h,s[t(470)](a,h)},h[r(590)]=()=>{const t=r;this[t(593)][o]=null,s[t(470)](a,null)},h[r(581)]=l[r(456)],l[r(489)](typeof t,l[r(607)])?h[r(440)]=l[r(503)](t,e,n,i):h[r(440)]=t[r(496)](/\[z\]|\{z\}/,l[r(605)](i,""))[r(496)](/\[x\]|\{x\}/,l[r(532)](e,""))[r(496)](/\[y\]|\{y\}/,l[r(451)](n,""))}),s[c(465)](this[c(603)]++,5))}))}async[K$1(592)](t,e,n){const i=K$1,r={hTGnu:function(t,e,n){return t(e,n)},AwECB:i(518)};let s=this[i(508)][i(497)]((r=>{const s=i;return this[s(523)](r[s(550)],e,n,t)})),a=await Promise[i(527)](s);if(a[i(519)]){const t=r[i(556)](createOffscreenCanvas,this[i(466)],this[i(466)]),e=t[i(505)]("2d");return e[i(599)]=r[i(486)],e[i(488)](0,0,this[i(466)],this[i(466)]),a[i(445)]()[i(497)]((t=>t&&e[i(573)](t,0,0,this[i(466)],this[i(466)]))),t}return this[i(614)]}[K$1(454)](){var t,e,n,i,r,s;const a=K$1,o={wMtiW:a(516),YSwXe:function(t,e){return t+e},nUgSA:a(571),GZauo:a(572),hNgKi:a(437),DfIsN:a(582),cleCS:a(449),eiFdN:a(574),ebqtq:a(584)};let c=[[new Color(o[a(551)]),new Color(o[a(475)])],[new Color(o[a(461)]),new Color(o[a(474)])],[new Color(o[a(468)]),new Color(o[a(502)])]];(null==(t=this[a(497)][a(535)][a(549)])?void 0:t[a(447)])&&(null==(n=null==(e=this[a(497)][a(535)][a(549)])?void 0:e[a(447)])?void 0:n[a(519)])&&(c=null==(s=null==(r=null==(i=this[a(497)][a(535)][a(549)])?void 0:i[a(447)])?void 0:r[a(497)])?void 0:s.call(r,(t=>[new Color(t[a(500)]),new Color(t[a(561)])])));const l=c[a(497)]((([t,e])=>{const n=a;return n(481)+t.r+","+t.g+","+t.b+n(531)+e.r+","+e.g+","+e.b+n(498)}))[a(478)]("\n");this[a(580)]?this[a(545)]=()=>null:this[a(545)]=t=>{const e=a;t[e(579)]=t[e(579)][e(496)](o[e(547)],o[e(471)](o[e(442)],l))}}[K$1(490)](t){this[K$1(580)]=t}}function M$6(){var t=["gcfWF","FRhUS","XqANb","road:roads:ringRoad","sqxEX","lsQmD","rrRYW","QknQt","lrFOQ","ynzXz","isArray","10002:9","pow","cKvoM","nodHZ","QnUtl","#ff3399","xGXzx","sHlNc","BwRKv","10001:31","NMIIV","cuMgT","COQFx","160744vrpMuZ","MbULK","RryIk","Reyck","10001:18","alDuH","road:roads:nationalRoad","NxCbU","dyGJV","QQCcW","gRLaI","IoBCz","then","build","WPzhj","10001:29","#555555","10001:24","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","mKXLk","road:roads:highWay","430XNZGaT","UjfAq","rfRkJ","fQAJo","10001:27","shift","load","#333388","tFvqr","dSiwR","fVPAz","BIZTe","poilabelParser","DTQaU","10002:2","10001:68","pyhjn","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","fPHWG","TjUcW","BxOBw","replace","10001:9","cemFq","SDVHl","10005:17","1|12|9|0|8|7|10|11|4|13|3|5|6|2","ZFfAI","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","10001:10","peuQf","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=","frxPI","bAqSl","10001:34","XvSUW","ttbnH","IdZQM","&preload=0","sinh","10001:14","timestamp","kWXvd","10002:17","pvMcb","10004:18","10001:1","10001:33","10001:16","wsoYj","gBIIX","10001:22","gwIDC","10005:41","zamTt","8QmiytP","ARjjX","assMK","XfjqP","wdJyr","parseCode","HyGEK","27498ehBoeW","#756BF5","normal","10004:2","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=","anBSq","road:borders:land","Kpels","&lv=","10001:2","10001:134","tpLNS","10001:124","#ff6600","10002:15","Mtoqd","iJsZC","FEwiK","ppiVm","zQxwL","request","10001:28","10002:13","2490531sKoFyz","CsLDS","NDFIk","KXRjZ","LNfJU","toLngLat","push","Ncznm","tzfBH","HJCbI","_objects","qSyWJ","aovii","4|3|2|0|1","vIbVz","AOIiJ","NgWhq","response","ccwlY","OJjRK","#333","JWIGU","tileInfo","road:roads:levelThreeRoad","mSgQc","TpkAa","10001:30","VSOXh","PVLhz","KzjcB","road:borders:provincial","HIMSO","GUrlD","TMYik","level2","bAtwn","length","10001:109","road:borders:China","cWOGU","bZFHQ","_features","region:","4004765njMeYB","#000000","10001:72","zsYCp","yjYXq","onpnU","ImpCY","OiUdA","10001:13","JZwkw","cfwBd","YtykF","10002:3","10001:123","10001:12","JslVK","dmeJk","10001:21","Point","AGZWk","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==","roadlabelParser","LScYy","sdMqe","YGVpz","KmkNe","codeBook","10001:20","DNSaA","ZqHPA","10004:1","state","10001:23","10002:8","EnAcq","2701690IxgLdT","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=","LrcIw","LMNxd","sfItx","nrRIh","10001:108","string","lOQds","VNpXB","10001:36","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=","10001:7","qvpJf","road:roads:secondaryRoad","kWbFM","10001:4","PnmMc","BdKue","Jpuax","erlaQ","wczgy","10001:99","10001:25","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=","text","379450MajiWR","jaUCE","jxDEF","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=","ERwBR","GoJfU","1|2|3|5|4|0|6","USufu","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==","JLamx","anRPK","Pfexd","exnHk","aRSAU","indexOf","10001:15","PlEWw","MvvUx","zlJly","tDEGp","IiQUX","LWLCa","LRrOJ","FSJKc","#339933","status","tInLh","DJFSB","LMtBC","split","#9933cc","eRPWP","road:","buildingParser","MultiPolygon","bvwOF","jNKUv","jiQes","yqDtc","type","ZKwvK","AbsYm","AyhmW","OCpPu","BdzLZ","mWLFM","substr","road:roads:provincialRoad","kFIyE","DORrl","MultiLineString","10001:3","10001:98","atan","road:water","name","KVZTq","10001:102","Gopvn","jLdjs","MQomM","NeBiz","raOuE","10001:147","x-vd-v","forEach","10001:117","10001:69","10002:5","EmsIJ","10004:4","6|5|2|7|1|3|0|4","10002:6","DkgMl","gJnMd","xdGds","lGaij","10001:26","ccmRU","vnxrk","xAJuz","building","chTly","ZuYMm","sXcSb","Parser","tClJp","assign","PmrYK","jDvDJ","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","zlFar","ASDFGHJKLQWERTYUIO!sdfghjkleiu3~yr5-P&mq9`%zCN*b=8@^xpVM","10001:46","gSFkv","codeBookLen","hlUOt","FaJsR","ffVfc","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","join","10001:38","sNPoe","IDDiU","10004:8","MaQAb","FWkMd","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==","ZLWKv","oFadf","QtpoQ","TCWDv","10001:70","wZDpl","huNhr","10001:19","gjxvY","dGBgB","10001:6","poilabel:","10001:174","10002:1","BOKLL","KtMYy","FLrYf","ZRhGi","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=","offsetCode","KkRFC","kHnhz","vZodZ","_callback","meHpH","XnIPB","10001:32","#444","FWuQf","lrrao","tgENA","DRasP","rOdOa","road:roads:highSpeedRailway","Fyxvo","RvWXK","YVaus","lBLEe","https://vdata.amap.com/tiles?mapType=normal&v=3&style=5&version=1.4.28&rd=1&t=","zzlpG","10001:5","QRYKb","hYYGY","yfVwG","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","vViqN","CEhYA","dNTob","QjUgo","DYfhZ","xDsdv","DvimA","DwrrX","mmLIF","1778xxKtAe","eZBrq","YcoAh","Tyzjd","_decoder","fat","778923Xoaage","DzavZ","VVlgZ","IUyzt","10002:11","OtREO","gRPlG","hdrqD","wQDjK","10001:17","10004:3","UgXpC","roadParser","ZhHLN","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=","YcnPc","map","FFQUk","tileStr","gVelY","ifuHL","10002:27","rnPTV","#3399ff","#33cc33","stKoL","10001:35","lAfSp","TyDig","10001:136","qnWGj","GynLe","CxVCJ","jPGgR","aijmB","HRVnz","WLNGH","parse","10001:8","regionParser","10001:11","center"];return(M$6=function(){return t})()}var U=W$6;function W$6(t,e){var n=M$6();return(W$6=function(t,e){return n[t-=233]})(t,e)}function B$4(t){return t}!function(t,e){for(var n=W$6,i=t();;)try{if(866132===-parseInt(n(641))/1+parseInt(n(615))/2+parseInt(n(537))/3+-parseInt(n(507))/4*(-parseInt(n(580))/5)+-parseInt(n(514))/6*(-parseInt(n(359))/7)+parseInt(n(431))/8+-parseInt(n(365))/9*(parseInt(n(452))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$6);var n=U(626),C=U(518),v=U(616),I=U(323),h=U(349),d=U(287),o$3=U(379),c$1=U(304),w$2=U(649),s$1=U(480),i=U(483),Z=U(600),z=U(296),J$2=U(644),N=U(469),V=U(449),K=U(639);class TilePois{constructor(t){__publicField(this,"z"),__publicField(this,"x"),__publicField(this,"y"),__publicField(this,_Qg),__publicField(this,_Pg),__publicField(this,_Og),__publicField(this,_Ng),__publicField(this,_Mg),__publicField(this,_Lg),__publicField(this,_Kg),__publicField(this,_Jg,{level2:0,codeBook:U(289),codeBookLen:0,H:0}),__publicField(this,_Ig);for(var e=U,n={ZhHLN:e(647)}[e(378)][e(670)]("|"),i=0;;){switch(n[i++]){case"0":this[e(578)]={};continue;case"1":this[e(381)]=t;continue;case"2":this.z=18;continue;case"3":this.x=213548;continue;case"4":this[e(611)]=-1;continue;case"5":this.y=113757;continue;case"6":this[e(547)]={};continue}break}}[(_Qg=U(611),_Pg=U(493),_Og=U(578),_Ng=U(328),_Mg=U(547),_Lg=U(383),_Kg=U(559),_Jg=U(363),_Ig=U(381),U(458))](t,e){var n=U,i={kFIyE:function(t,e){return t>e},yfVwG:n(268),XnIPB:function(t,e){return t+e},mmLIF:n(282),AbsYm:function(t,e){return t(e)},FSJKc:function(t,e){return t===e},DYfhZ:n(478),gVelY:n(289),lGaij:function(t,e){return t<=e},eZBrq:n(261),YcoAh:function(t,e){return t<e},QknQt:function(t,e){return t!=e},mKXLk:n(622),wczgy:function(t,e){return t===e},LWLCa:function(t,e){return t+e},nrRIh:function(t,e){return t+e},EmsIJ:function(t,e){return t+e},jiQes:n(343),YtykF:n(522),hlUOt:n(490),XfjqP:n(640)};if(i[n(636)](-1,this[n(611)])){this[n(611)]=0,this[n(578)]={};var r=i[n(662)](i[n(620)](i[n(330)](i[n(266)](i[n(234)],e[n(297)](";")),i[n(591)]),t),i[n(293)]);this[n(381)][n(534)]({url:r,responseType:i[n(510)]})[n(443)]((e=>{var r=n,s={dNTob:i[r(348)],alDuH:function(t,e){return i[r(330)](t,e)},ZFfAI:i[r(358)],zsYCp:function(t,e){return i[r(238)](t,e)}};if(i[r(664)](200,e[r(666)]))for(var a=i[r(354)][r(670)]("|"),o=0;;){switch(a[o++]){case"0":var c=p[r(670)]("|"),l=[],u=i[r(384)],h=u,d=512;continue;case"1":var p=e[r(554)];continue;case"2":this[r(328)]&&this[r(328)](this,1);continue;case"3":l[r(262)]((t=>{for(var e=r,n=s[e(352)][e(670)]("|"),i=0;;){switch(n[i++]){case"0":l=this[s[e(436)](a[3],s[e(479)])](t,u);continue;case"1":this[e(383)]=c;continue;case"2":var a=c[e(670)]("-");continue;case"3":this[e(559)]=a;continue;case"4":for(var o in l){t=l[o];this[e(578)][o]?Array[e(417)](this[e(578)][o])?this[e(578)][o][e(543)](...t):Object[e(284)](this[e(578)][o],t):this[e(578)][o]=t}continue;case"5":var c=t[e(457)]();continue;case"6":var l;continue;case"7":var u={z:s[e(583)](parseInt,a[0]),x:s[e(583)](parseInt,a[1]),y:s[e(583)](parseInt,a[2])};continue}break}}));continue;case"4":this[r(363)][r(571)]=Math[r(419)](2,t);continue;case"5":this[r(611)]=-1;continue;case"6":this[r(444)]();continue;case"7":this[r(363)].H=d;continue;case"8":i[r(273)](JSON[r(402)](c[r(457)]())[i[r(360)]]||"v5","v5")&&(d=333,h=u[r(243)](0,27));continue;case"9":if(i[r(361)](p[r(573)],10))return[];continue;case"10":this[r(363)][r(606)]=h;continue;case"11":this[r(363)][r(292)]=h[r(573)];continue;case"12":if(i[r(414)](i[r(450)],typeof p))return void(this[r(611)]=-1);continue;case"13":c[r(262)]((t=>{var e=r;i[e(245)](t[e(573)],2)&&l[e(543)](JSON[e(402)](t))}));continue}break}}))}}[U(444)](){}[U(512)](t){for(var e=U,n={rOdOa:function(t,e){return t<e},xdGds:function(t,e){return t(e)},aRSAU:function(t,e){return t*e},LMNxd:function(t,e){return t-e},lOQds:function(t,e){return t+e}},i=this[e(363)][e(606)],r=t[e(324)],s=this[e(363)].H,a=this[e(363)][e(292)],o=[],c=NaN,l=0;n[e(337)](l,r[e(573)]);l++){var u=r[l],h=i[e(655)](u);n[e(272)](isNaN,c)?c=n[e(654)](h,a):(o[e(543)](n[e(618)](n[e(623)](c,h),s)),c=NaN)}return o}[U(542)](t,e,n,i,r){var s=U,a={ccmRU:function(t,e){return t-e},pyhjn:function(t,e){return t*e},CsLDS:function(t,e){return t/e},LMtBC:function(t,e){return t+e},vViqN:function(t,e){return t*e},tFvqr:function(t,e){return t/e},IiQUX:function(t,e){return t/e}};return[a[s(275)](a[s(468)](a[s(538)](a[s(669)](t,a[s(538)](i,256)),n),360),180),a[s(538)](a[s(468)](180,Math[s(250)](Math[s(491)](a[s(350)](Math.PI,a[s(275)](1,a[s(460)](a[s(468)](2,a[s(669)](e,a[s(661)](r,256))),n)))))),Math.PI)]}[U(464)](t,e){var r=U,s={MbULK:function(t,e){return t>e},hYYGY:function(t,e){return t!=e},Ncznm:function(t,e){return t<e},sqxEX:function(t,e){return t>=e},nodHZ:r(610),erlaQ:r(405),AGZWk:r(481),Pfexd:r(523),QjUgo:r(593),NDFIk:r(527),FWuQf:r(631),DORrl:r(345),gBIIX:r(309),FLrYf:r(388),gwIDC:r(627),VVlgZ:r(497),QnUtl:r(375),NeBiz:r(621),Kpels:r(594),kWbFM:r(435),BdzLZ:r(264),xGXzx:r(574),FRhUS:r(254),ppiVm:r(298),PmrYK:r(536),DwrrX:r(671),CEhYA:r(315),QtpoQ:r(588),OCpPu:r(492),KVZTq:r(656),gcfWF:r(500),RryIk:r(498),chTly:r(517),AOIiJ:r(394),IDDiU:r(448),MvvUx:r(625),tgENA:r(505),KXRjZ:r(374),ttbnH:r(312),VNpXB:r(607),xAJuz:r(638),BOKLL:r(267),lrFOQ:r(274),zlFar:r(369),jaUCE:r(389),SDVHl:r(477),ARjjX:r(459),cKvoM:r(403),stKoL:r(597),ZRhGi:r(637),kHnhz:r(503),pvMcb:r(612),eRPWP:r(249),DRasP:r(467),zzlpG:r(301),dyGJV:r(263),qSyWJ:r(423),fPHWG:r(456),MaQAb:r(317),bZFHQ:r(535),zamTt:r(526),DvimA:r(248),frxPI:r(665),OJjRK:r(446),tInLh:r(582),anBSq:r(563),huNhr:r(427),gJnMd:r(260),JslVK:r(290),RvWXK:r(331),ffVfc:r(499),cfwBd:r(486),ZKwvK:r(495),vZodZ:r(332),TpkAa:r(318),LRrOJ:r(466),bAtwn:r(592),jNKUv:r(391),rfRkJ:r(581),lrrao:r(418),YcnPc:r(613),LNfJU:r(557),gRLaI:r(265),gjxvY:r(269),meHpH:r(386),HyGEK:r(474),rrRYW:r(524),wsoYj:r(515),sHlNc:r(528),qnWGj:function(t,e){return t+e},TjUcW:r(316),YVaus:function(t,e){return t>e},Reyck:r(447),LScYy:r(598),lAfSp:function(t,e){return t(e)}},a={};return t[r(262)]((t=>{var o=r,c={ZqHPA:function(t,e){return s[W$6(432)](t,e)},DNSaA:function(t,e){return s[W$6(347)](t,e)},Gopvn:function(t,e){return s[W$6(544)](t,e)},onpnU:function(t,e){return s[W$6(411)](t,e)},JZwkw:function(t,e){return s[W$6(411)](t,e)},JWIGU:s[o(421)],cWOGU:s[o(635)],COQFx:s[o(599)],BIZTe:s[o(652)],vIbVz:s[o(353)],FEwiK:s[o(539)],sdMqe:s[o(333)],PVLhz:s[o(246)],jPGgR:s[o(502)],ZLWKv:s[o(321)],DzavZ:s[o(504)],DkgMl:s[o(367)],Mtoqd:s[o(422)],yjYXq:s[o(258)],mSgQc:s[o(521)],YGVpz:s[o(630)],FFQUk:s[o(241)],aijmB:s[o(424)],sXcSb:s[o(408)],IoBCz:s[o(532)],ERwBR:s[o(285)],bAqSl:s[o(357)],dmeJk:s[o(351)],ccwlY:s[o(307)],FWkMd:s[o(240)],wZDpl:s[o(253)],GUrlD:s[o(407)],bvwOF:s[o(433)],HRVnz:s[o(279)],WPzhj:s[o(552)],aovii:s[o(300)],UjfAq:s[o(658)],zQxwL:s[o(335)],xDsdv:s[o(540)],OiUdA:s[o(488)],lBLEe:s[o(624)],fQAJo:s[o(277)],jDvDJ:s[o(319)],EnAcq:s[o(415)],yqDtc:s[o(288)],MQomM:s[o(642)],dGBgB:s[o(476)],mWLFM:s[o(508)],KzjcB:s[o(420)],tDEGp:s[o(390)],FaJsR:s[o(322)],XvSUW:s[o(326)],zlJly:s[o(496)],DJFSB:s[o(672)],hdrqD:s[o(336)],tzfBH:s[o(344)],Fyxvo:s[o(439)],PnmMc:s[o(548)],sNPoe:s[o(470)],LrcIw:s[o(302)],IdZQM:s[o(577)],JLamx:s[o(506)],NgWhq:s[o(356)],peuQf:s[o(484)],VSOXh:s[o(556)],Tyzjd:s[o(667)],BwRKv:s[o(519)],WLNGH:s[o(311)],wQDjK:s[o(271)],oFadf:s[o(595)],tClJp:s[o(340)],gRPlG:s[o(295)],rnPTV:s[o(590)],ifuHL:s[o(237)],wdJyr:s[o(327)],TMYik:s[o(562)],TyDig:s[o(663)],cemFq:s[o(572)],USufu:s[o(233)],XqANb:s[o(454)],exnHk:s[o(334)],lsQmD:s[o(380)],GynLe:s[o(541)],IUyzt:s[o(441)],GoJfU:s[o(313)],UgXpC:s[o(329)],AyhmW:s[o(513)],raOuE:s[o(413)],DTQaU:s[o(501)],gSFkv:s[o(425)]},l=[];if(t){var u=t[0],p=t[4];if(a[p=s[o(395)](s[o(471)],p)]||(a[p]=[]),u[o(262)]((n=>{var i=o,r=(n[2],n[0]);c[i(609)](r[i(655)]("^"),-1)&&(r=r[i(473)]("^","\n"));var s=this[i(512)]({offsetCode:n[1],x:e.x,y:e.y});if(c[i(608)](r,"↑")&&!(c[i(255)](s[0],0)||c[i(585)](s[0],256)||c[i(255)](s[1],0)||c[i(589)](s[1],256))){var a=this[i(542)](e.x,e.y,this[i(363)][i(571)],s[0],s[1]);l[i(543)]({name:r,center:a,order:t[5],type:t[6],data:t})}})),s[o(341)](l[o(573)],0))for(var f=0;s[o(544)](f,l[o(573)]);f++){let t=l[f],e={fillStyle:s[o(434)],fontSize:12,iconWidth:16,iconHeight:16,shadowBlur:2};if(t[o(236)]){var m=function(t){var e=o;switch(t){case c[e(558)]:case c[e(576)]:case c[e(430)]:case c[e(463)]:case c[e(551)]:return{iconImage:n,fillStyle:c[e(531)],iconWidth:20,iconHeight:20};case c[e(603)]:case c[e(565)]:case c[e(398)]:return{iconImage:C,fillStyle:c[e(305)],iconWidth:20,iconHeight:20};case c[e(366)]:case c[e(270)]:case c[e(529)]:case c[e(584)]:case c[e(561)]:case c[e(604)]:case c[e(382)]:case c[e(399)]:case c[e(281)]:case c[e(442)]:case c[e(645)]:return{iconImage:v,fillStyle:c[e(485)],iconWidth:20,iconHeight:20};case c[e(596)]:case c[e(555)]:case c[e(303)]:case c[e(310)]:case c[e(569)]:case c[e(676)]:case c[e(400)]:case c[e(445)]:return{iconImage:d,iconWidth:20,iconHeight:20};case c[e(549)]:case c[e(453)]:case c[e(533)]:case c[e(355)]:case c[e(587)]:case c[e(342)]:case c[e(455)]:case c[e(286)]:case c[e(614)]:case c[e(235)]:return{iconImage:I,fillStyle:c[e(257)],iconWidth:20,iconHeight:20};case c[e(314)]:return{iconImage:o$3,fillStyle:c[e(242)],iconWidth:20,iconHeight:20};case c[e(566)]:case c[e(660)]:case c[e(294)]:case c[e(487)]:case c[e(659)]:case c[e(668)]:case c[e(372)]:case c[e(545)]:return{iconImage:h,fillStyle:c[e(257)],iconWidth:20,iconHeight:20};case c[e(339)]:return{iconImage:c$1,fillStyle:c[e(632)],iconWidth:20,iconHeight:20};case c[e(299)]:case c[e(617)]:return{iconImage:w$2,fillStyle:c[e(242)],iconWidth:20,iconHeight:20};case c[e(489)]:case c[e(650)]:case c[e(553)]:return{iconImage:s$1,fillStyle:c[e(482)],iconWidth:20,iconHeight:20};case c[e(564)]:return{iconImage:z,fillStyle:c[e(257)],iconWidth:20,iconHeight:20};case c[e(362)]:case c[e(426)]:return{iconImage:N,fillStyle:c[e(257)],iconWidth:20,iconHeight:20};case c[e(401)]:case c[e(373)]:case c[e(306)]:return{iconImage:J$2,fillStyle:c[e(257)],iconWidth:20,iconHeight:20};case c[e(283)]:return{iconImage:V,fillStyle:c[e(257)],iconWidth:20,iconHeight:20};case c[e(371)]:case c[e(387)]:return{iconImage:i,fontSize:16,iconWidth:8,iconHeight:8};case c[e(385)]:return{iconImage:i,fillStyle:c[e(511)],fontSize:12,iconWidth:4,iconHeight:4};case c[e(570)]:case c[e(393)]:case c[e(475)]:case c[e(648)]:return{iconImage:Z,fillStyle:c[e(409)],fontSize:17,iconWidth:15,iconHeight:15};case c[e(653)]:case c[e(412)]:return{iconImage:Z,fillStyle:c[e(396)],fontSize:13,iconWidth:8,iconHeight:8};case c[e(368)]:case c[e(646)]:case c[e(376)]:return{iconImage:Z,fillStyle:c[e(396)],fontSize:16,iconWidth:12,iconHeight:12};case c[e(239)]:case c[e(259)]:return{iconImage:K,fillStyle:c[e(465)],fontSize:12,iconWidth:20,iconHeight:20};case c[e(291)]:return{}}}(t[o(236)]);m&&Object[o(284)](e,m)}a[p][o(543)]({geometry:{type:s[o(602)],coordinates:s[o(392)](B$4,l[f][o(406)])},properties:{...l[f],style:e}})}}})),a}[U(377)](t,e){var n=U,i={NxCbU:function(t,e){return t<e},tpLNS:function(t,e){return t(e)},anRPK:function(t,e){return t+e},KtMYy:n(673),assMK:n(364),dSiwR:n(451),iJsZC:n(410),fVPAz:n(629),HIMSO:n(437),PlEWw:n(244),BdKue:n(338),jLdjs:n(560),cuMgT:n(251),vnxrk:n(575),QQCcW:n(520),CxVCJ:n(567),ZuYMm:n(516),KmkNe:n(247)},r=this,s={};return t[n(262)](((t,a)=>{var o=n;if(t){var c=t[0],l=t[3];s[l=i[o(651)](i[o(320)],l)]||(s[l]=[]);var u=[];t[4][o(670)](":"),c[o(262)](((t,n)=>{for(var s=o,a=[],c=r[s(512)]({offsetCode:t,x:e.x,y:e.y}),l=0,h=c[s(573)];i[s(438)](l,h);){var d=c[l++],p=c[l++],f=r[s(542)](e.x,e.y,r[s(363)][s(571)],d,p);a[s(543)](i[s(525)](B$4,f))}u[s(543)](a)}));var h=4,d=i[o(509)],p=!1;switch(l){case i[o(461)]:case i[o(530)]:h=20;break;case i[o(462)]:case i[o(568)]:case i[o(657)]:case i[o(633)]:p=!1,h=8;break;case i[o(256)]:p=!1,h=4;break;case i[o(429)]:case i[o(276)]:case i[o(440)]:case i[o(397)]:d=i[o(280)],h=.1,p=!1}var f={geometry:{type:i[o(605)],coordinates:u},properties:{level:l,linetype:d,linewidth:h,sizeattenuation:p,wireframe:1}};s[l][o(543)](f)}})),s}[U(674)](t,e){var n=U,i={HJCbI:function(t,e){return t<e},sfItx:function(t,e){return t(e)},QRYKb:n(675)},r={building:[]};return t[n(262)]((t=>{var s=n;t&&t[0][s(262)]((n=>{for(var a=s,o=[],c=this[a(512)]({offsetCode:n,x:e.x,y:e.y}),l=0,u=c[a(573)];i[a(546)](l,u);){var h=c[l++],d=c[l++],p=this[a(542)](e.x,e.y,this[a(363)][a(571)],h,d);o[a(543)](i[a(619)](B$4,p))}o[a(543)]([o[0][0],o[0][1]]),r[a(278)][a(543)]({geometry:{type:i[a(346)],coordinates:[[o]]},properties:{height:t[3],a6:t[6]}})}))})),r}[U(404)](t,e){var n=U,i={ImpCY:n(550),TCWDv:n(675),KkRFC:function(t,e){return t+e},kWXvd:n(579),OtREO:function(t,e){return t<e},Jpuax:function(t,e){return t(e)}},r={};return t[n(262)]((t=>{for(var s=n,a=i[s(586)][s(670)]("|"),o=0;;){switch(a[o++]){case"0":var c=[];continue;case"1":l[s(262)]((t=>{for(var n=s,i=[],r=this[n(512)]({offsetCode:t,x:e.x,y:e.y}),a=0,o=r[n(573)];h[n(428)](a,o);){var l=r[a++],u=r[a++],d=this[n(542)](e.x,e.y,this[n(363)][n(571)],l,u);i[n(543)](h[n(643)](B$4,d))}i[n(543)]([i[0][0],i[0][1]]),c[n(543)]([i])})),r[u][s(543)]({geometry:{type:i[s(308)],coordinates:c},properties:{}});continue;case"2":r[u=i[s(325)](i[s(494)],u)]||(r[u]=[]);continue;case"3":var l=t[0],u=t[3];continue;case"4":var h={NMIIV:function(t,e){return i[s(370)](t,e)},jxDEF:function(t,e){return i[s(634)](t,e)}};continue}break}})),r}[U(601)](t,e){var n=U,i={ynzXz:function(t,e){return t(e)},BxOBw:function(t,e){return t>e},qvpJf:n(598)},r=[];return t[n(262)]((t=>{var s=n,a=[],o=void 0;if(t){var c=t[0],l=null,u=null;i[s(472)](c[s(573)],1)&&(l=[],u=[]),c[s(262)](((t,n)=>{var r=s;l&&l[r(543)](t[0]);var c=t[1],h=this[r(512)]({offsetCode:c,x:e.x,y:e.y}),d=i[r(416)](B$4,this[r(542)](e.x,e.y,this[r(363)][r(571)],h[0],h[1]));u&&u[r(543)](d),a[r(543)]({name:t[0],center:d}),o=t[2]})),i[s(472)](a[s(573)],0)&&(l?r[s(543)]({geometry:{type:i[s(628)],coordinates:a[0][s(406)]},properties:{name2:l,lpos:u,level:o,roadLevel:t[3][s(670)](":")[1]}}):r[s(543)]({geometry:{type:i[s(628)],coordinates:a[0][s(406)]},properties:{name:a[0][s(252)],level:o,roadLevel:t[3][s(670)](":")[1]}}))}})),{roadlabels:r}}}const S=W$5;function M$5(){const t=["send","mapData","minZoom","sWCSz","getPolygonById","zKwsU","bLgoF","🚀 ~ showIndoorFitscreen:","dir","getMarkerById","floorScene","WuDZG","grlSX","UKVWw","isOutdoor","FpPeK","zfFvS","minPitch","maxInMapDistance","Ycqua","#67C23A","testBox","minor","hRQCS","XoWPk","cssText","kAYoF","object3d","SLENU","showIndoor","pointerdown","response","beaconDetectShowGroup","maxPitch","ZHFAA","ojtfR","asdrV","load","interact","mapBackgroundColor","setSatelliteLayer","isArray","QFzqh","getBuildDataById","KZHUC","SRMcJ","pEeNX","NRMkW","append","forEach","near","setFromPoints","target","display: flex;padding:5px;justify-content: space-around;","href","STfOa","cfZYo","collision","getPointsFit","4|3|2|1|0","addNaviLine","KHFHe","key","tnGYb","eSfpX","acdeE","instanceId","FbcOX","MNcHA","CNSKl","clone","setZ","fMoxn","_hide","QpQFh","_callback","jyyxE","map","stringify","ivTfj","addCustomNaviLine","wheel","setContainer","setStatus","testPoint","showlogs","kSWOn","pitch","clear","DEG2RAD","bboxView","rect","lightList","handleMapClick","kNjeJ","bfIeg","data","mpeRF","shadow=","TTKLU","noTile","kZuQj","10785168kqNzed","areaZoom","GBfZr","addFromChildrnPool","setZoom","showIndoorZoom","ynAUV","create","Change","kkwuc","beSCY","sizeRatio","isClosedRotat","options","defailtTile","remoeBuild","jSAuV","userData","dBsFO","FRHPE","body","xYXFe","nextIdx","isSky","getBoundingClientRect","QirhW","gpsFloors","features","getMapDataByIdCache","tiledmapUrl","rAAsB","min","noMap","ceil","QkVhV","vddXl","YUaqP","fillStyle","coordinates","dragEnable","castShadow","tIjKC","buildChange","hideIndoor","testSprite","ZWhRj","rotateX","rxFhj","event","naviInfo","parentArea","_features","rSViJ","KBZoC","0|4|3|1|2|5","scale","WhYqN","uAHzu","handleResize","0px","gowNi","getCenter","vbWba","addDomMarker","Efsow","closeDistanceDetect","isNavi","removeAmapFeatures","eAeEv","epZkX","WJgXD","92873sBNNkj","GStzi","pNfkv","setView","CIXZo","beaconDetect","disableOperation","getNaviRotation","join","readyState","responseType","onclick","recoverOtherBuild","radius","container2","pUBke","DynlX","circle","Model","instances","pBvHB","AbCkD","api/Map/Data/","splice","resize","&y=","jbq","dispose","mpztA","Polygon","api2","getPolygonDataById","lMPkC","container","tan","fmXrL","then","tilePois","removeAllCustomMarker","message","addSkyImg","zooms","tANJc","originEvent","OVxPD","hideOutViewIndoor","getModelById","sqxTF","floorHeight","czcWX","low-power","bias","viewchange","touches","getFloorById","recoverAmapFeatures","iconImage","beaconDetectShow","Marker","rDaVO","isTile","XPQhX","plane","environmentRotation","LSMxp","tGPGK","instanceRotation","manyFloorModeChange","#909399","xiXyH","addDefaultFloor","domElement","isSimulate","pJKrC","NiTFe","addSkyHud","FAVEP","OyCpE","js:","setZoomAndCenter","setPitch","#F56C6C","polygonData","RPglW","copy","kvsvo","amap","debugBeacon","values","file","createPointLight","clientHeight","find","manyFloorMode","pointerup","instanceScale","JobgS","location","environment","layer","clientWidth","testMsg","emit","initMap","bSfUh","intersectObjectsByLine","scene","pointermove","cTLLy","flat","wheelDelta","2934940XFzqAn","mobileZooms","zrmdK","getPitch","fitPolygon","HwkBY","render","showIndoorFitscreen","lightGroup","mapConfig","gwZsq","hmdBf","fitPoints","wUPfT","hidePolygon","ById","aTDor","getSize","height:100%;width:100%;position:relative","camera","MapData/","zoom","4213641FWOJsn","abGZc","qRHGo","ulDqh","modelData","height:100%;width:100%;","OTwaA","RavHw","NWqkY","sSEym","visible","gsYSR","customMarkerData","markerPool","inSfw","handleMarkerCollision","json","length","onDistanceDetect","testSpriteGroup","set","tMPem","fontSize","toFixed","debugPath","width","setAllFloorControl","toLSS","NcVDk","MvbZi","kmphd","yzSSP","type","UOwnJ","&scl=1&ltype=11","remove","mapEl","addEventListener","_noClick","topMap","skyImg","angle","path","renderer","tLGvF","clamp","_mapLayer","&x=","rotationEnable","csvmR","1420YFDIWi","mapChilds","XRjNV","mobileView","vxoqN","instanceType","loadAsync","innerHTML","lnglat","axzzy","removeTile","WLyzf","jITAs","没有找到地图:","MPKxJ","indexOf","geometry","maxZoom","abs","248298OCXmph","FkBDH","pointerEvents","string","traverse","color","lat","nOhuQ","getPointsFitWorld","XtzUK","mapSize","\n <div>信标","lOfop","OFDMB","includes","ZZqLI","VvhIa","distanceTo","lDlka","findIndex","enableOperation","EHsYL","zsWoY","2pexfiy","cXApP","markerCollisionPool","currentShowBuilds","open","floor","14pMZoZR","translateX(-90%)","intensity","polygonGroup","ZjVSe","addMarker","request","beaconFilterList","far","testOption","GwxYj","jIBZk","hRJeQ","inDoorModelScale","yKrcz","BzAit","fLFuX","NIWYo","mpCjH","lowPower","getMapDataById","red","click","button","getItemById","backToMap","rQpQf","BDCjz","get","random","add","coordsToLngLatWorld","getBuildById","KJoEZ","slice","xJhUI","object","getAreaByName","center","aMfBk","bYZIl","removeFromParent","renderOrder","navi","EuVuj","dCNmn","EsZFK",".is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&z=","CnqsL","DQdJV","childrenPool","switchFloor","yiRYq","cZiJv","addBuild","point","</div>\n \x3c!-- <div>计步器","floorChange","UDEiy","lngLatToCoordWorld","addSky","keys","vgzAF",".is.autonavi.com/appmaptile?style=6&z=","angleTo","children","addTilePois","iSQjO","environmentIntensity","getFit","isWater","addNaviLinePass","shadow","setDefaultLayer","lngLatToCoord","USKvI","loaded","start","bJOdl","floorId","getStatus","warpScene","eKGgD","LXxcI","outerFloor","sort","async","_click","getMapData","height","buildId","points","BpsOd","fromScene","#FFFFFF","intersectObjectsBy2D","buJwj","addCustomMarker","jIXRN","satelliteTile","sky-mask","setViewMode","opacity","getMapObj","bIXLZ",".zip","removeCustomMarker","addLight","pKuXe","SUZGW","name","gpsPath","isShadow","mBtSE","PKJhh","Sprite","addTile","AyrwM","innerText","createAmbientLight","ANISo","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;","bottom","QxTTt","testMsgSprite","properties","WICdb","top","LxNSK","aQVto","view","className","hViiH","touchstart","polygonLoaded","tile","order","cLpbt","split","UMkGb","pCNdr","kkAcm","vmap","mfuRM","sub","aBtoZ","buildData","texture","curentFloor","testMsgArr","cRrXW","createElement","QuPVj","SbtOi","line","MVQLA","twUQi","viewMode","getPolygonByIdCache","filter","STXgM","domObserver","sideMap","VNoFx","getZoom","7094988ivwTzD","setCenter","计步器","backgroundColor","4LDPbGr","log","</div> --\x3e\n ","user-select: none;position:absolute;left:0%;bottom:50%;background:#000;opacity:0.5;color:#fff;font-size:12px;padding: 5px;z-index:999;","#fff","rotation","coordsToLngLat","api","OkfFo","DXGJg","evkvX","UNjIz","0.5","lock","dKIbU","LpEdr","getElementById","KXbkp","https://wprd0","none","div","aGlae","0|3|2|4|1","EVvNp","FOnFA","right","route","tatXG","style","mapId","QGcim","absolute","yNmcL","handleSpriteCollision","buttons","toggleModelAnimation","onreadystatechange","SMqKN","hVWXW","visibilitychange","text","max","compileEquirectangularShader","xxjXQ","position","mapTile","rcFJs","iconHeight","Arfbc","YucQP","uxCDB","removeNaviLine","distance","getRotation","CfrZk","pitchEnable","build","bLBrW","transform","parent","mYUoC","left","osQpl","#E6A23C","cross","THKpy","vwltR","lng","</div>\n <div>信.标检测","status","setRotation","MnyQz","observe",".json","enableDistanceDetect","</div>\n <div>路线","blob","1073062vlkfMR","testaaa","decay","createDirectionalLight","polygonDataArr","pnBUb","rssi","CKOAz","fov","auto","KFtYq","removeOtherBuild","update","push","parse"];return(M$5=function(){return t})()}function W$5(t,e){const n=M$5();return(W$5=function(t,e){return n[t-=385]})(t,e)}let c;if(function(t,e){const n=W$5,i=t();for(;;)try{if(757481===parseInt(n(511))/1*(parseInt(n(763))/2)+-parseInt(n(419))/3*(parseInt(n(686))/4)+-parseInt(n(397))/5+-parseInt(n(488))/6*(parseInt(n(517))/7)+parseInt(n(880))/8+-parseInt(n(682))/9+-parseInt(n(469))/10*(-parseInt(n(951))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$5),debug){const t=S(934)[S(655)]("|");let e=0;for(;;){switch(t[e++]){case"0":c=new Stats;continue;case"1":c[S(1022)][S(714)][S(619)]=S(698);continue;case"2":c[S(1022)][S(714)][S(490)]=S(705);continue;case"3":c[S(1022)][S(714)][S(644)]=S(939);continue;case"4":c[S(1022)][S(714)][S(730)]=S(717);continue;case"5":setTimeout((()=>{const t=S;document[t(900)][t(826)](c[t(1022)])}),1e3);continue}break}}const w$1=[];class s extends B$s{constructor(z2){const T2=S,J2={UOwnJ:function(t,e){return t==e},jIBZk:T2(1029),KHFHe:function(t,e){return t(e)},WLyzf:T2(593),LSMxp:T2(651),FbcOX:T2(524),ZHFAA:function(t,e,n){return t(e,n)},FAVEP:function(t){return t()},twUQi:function(t){return t()},mfuRM:T2(855),rcFJs:function(t,e){return t===e},tMPem:T2(491),pJKrC:T2(706),OVxPD:T2(984),tatXG:T2(990),jSAuV:T2(922),QpQFh:T2(574)};super(),__publicField(this,"el"),__publicField(this,_zh,document[S(668)](S(706))),__publicField(this,_yh),__publicField(this,_xh),__publicField(this,_wh),__publicField(this,_vh),__publicField(this,_uh),__publicField(this,_th),__publicField(this,_sh),__publicField(this,_rh,new Vector3(0,0,0)),__publicField(this,_qh,new Scene),__publicField(this,_ph,new Scene),__publicField(this,_oh,new Scene),__publicField(this,_nh,[]),__publicField(this,_mh,{}),__publicField(this,_lh),__publicField(this,_kh),__publicField(this,"ar"),__publicField(this,_jh),__publicField(this,_ih,!1),__publicField(this,_hh,[]),__publicField(this,_gh),__publicField(this,_fh,reactiveEvent({build:null,manyFloorMode:!1,viewMode:"3D",enableDistanceDetect:!0,closeDistanceDetect:!1,floor:null},((t,e)=>{const n=S,i={fMoxn:function(t,e){return t+e},eKGgD:n(888)};this[n(388)](i[n(850)](t,i[n(599)]),e)}))),__publicField(this,_eh,[]),__publicField(this,"_p"),__publicField(this,_dh,[]),__publicField(this,_ch,(()=>{const t=S;this[t(699)]||(this[t(699)]={tANJc:function(t,e,n){return t(e,n)}}[t(993)](setTimeout,(()=>{const e=t;Object[e(1039)](this[e(513)])[e(855)]((t=>t[e(866)]())),this[e(432)][e(855)]((t=>{t[e(835)]()})),this[e(699)]=null}),100))})),__publicField(this,_bh,{}),__publicField(this,_ah,{}),__publicField(this,_$g,new Vector3(0,1,0)),__publicField(this,__g,(()=>{const t=S,e={jIXRN:function(t,e){return t===e},GStzi:t(632),mpeRF:function(t,e,n,i){return t(e,n,i)},OkfFo:function(t,e){return t*e},wUPfT:function(t,e){return t/e},hRQCS:function(t,e){return t*e},MVQLA:function(t,e){return t/e},aTDor:function(t,e){return t*e}},{clientWidth:n,clientHeight:i}=this[t(455)];this[t(891)]=e[t(694)](e[t(410)](i,e[t(801)](2,Math[t(985)](e[t(672)](e[t(413)](this[t(416)][t(771)],MathUtils[t(867)]),2)))),devicePixelRatio),this[t(392)][t(492)]((n=>{const i=t;e[i(615)](n[i(451)],e[i(952)])&&e[i(875)](setSize,n,void 0,this[i(891)])}))})),__publicField(this,_Zg),__publicField(this,_Yg),__publicField(this,_Xg),__publicField(this,_Wg,[]),__publicField(this,_Vg,[]),__publicField(this,_Ug),__publicField(this,_Tg),__publicField(this,_Sg),__publicField(this,_Rg,[]),this[T2(893)]=z2,this[T2(893)][T2(536)]=this[T2(893)][T2(536)]||J2[T2(673)](getURLQuery)[T2(536)],this[T2(805)]=new Group$1,this[T2(805)][T2(627)]=J2[T2(660)],this.el=J2[T2(732)](typeof z2.el,J2[T2(440)])?document[T2(702)](z2.el)||document[T2(668)](J2[T2(1024)]):z2.el,this.el[T2(714)][T2(803)]=T2(415),this[T2(455)][T2(714)][T2(803)]=T2(424),this[T2(455)][T2(648)]=J2[T2(995)],this.el[T2(826)](this[T2(455)]),window[T2(456)](J2[T2(713)],(N2=>{var _a3,_b3;const U2=T2;J2[U2(452)](null==(_b3=(_a3=N2[U2(874)])[U2(484)])?void 0:_b3.call(_a3,J2[U2(528)]),0)&&J2[U2(839)](eval,N2[U2(874)][U2(551)](3))})),this[T2(605)](z2.id)[T2(987)]((()=>{const t=T2;if(this[t(779)][t(893)][t(817)]&&(this.el[t(714)][t(685)]=this[t(779)][t(893)][t(817)]),this[t(871)](),this[t(445)](),this[t(719)](),this[t(975)](),this[t(991)](),this[t(792)])this[t(601)]=new Z$4(this[t(779)],this),this[t(601)].on(J2[t(1015)],(()=>{this[t(437)]()})),this[t(547)](this[t(601)]);else if(this[t(779)][t(742)][0]){let e=this[t(571)](this[t(779)][t(742)][0].id);e[t(1021)](),this[t(755)][t(742)]=e}this[t(560)]=new Navigation(this),this.ar=new AR(this),this[t(583)](),this[t(1026)](),debug&&this[t(560)][t(1048)]&&this[t(560)][t(1048)].on(J2[t(845)],(e=>{this[t(1008)](e)})),J2[t(812)](setTimeout,(()=>{const e=t;this[e(542)](!0),this[e(388)](J2[e(480)])}),0)})),this.on(J2[T2(896)],(t=>{const e=T2;this[e(755)][e(742)]?this[e(755)][e(516)]=this[e(755)][e(742)][e(665)]:this[e(755)][e(516)]=null})),this.on(J2[T2(852)],(()=>{const t=T2;J2[t(1027)](userTouch),J2[t(812)](setTimeout,(()=>{this[t(975)]()}),0)}))}get[(_zh=S(455),_yh=S(1037),_xh=S(731),_wh=S(988),S(659))](){return this[S(1037)]}get[S(589)](){const t=S,e={MnyQz:t(876)};return this[t(779)][t(893)][t(629)]||location[t(832)][t(502)](e[t(757)])}get[(_vh=S(406),_uh=S(779),_th=S(893),_sh=S(465),_rh=S(555),S(462))](){const t=S;return this[t(1037)][t(462)]}get[S(416)](){const t=S;return this[t(1037)][t(416)]}[(_qh=S(392),_ph=S(598),_oh=S(788),_nh=S(432),_mh=S(513),_lh=S(816),_kh=S(560),_jh=S(891),_ih=S(792),_hh=S(582),_gh=S(601),_fh=S(755),S(1026))](){const t=S,e={hVWXW:function(t,e){return t+e},grlSX:function(t,e){return t*e},pEeNX:function(t,e){return t/e},vwltR:function(t,e){return t-e},rAAsB:t(706),bLgoF:t(617),RavHw:t(1003)};let n=document[t(668)](e[t(910)]);this.el[t(826)](n),n.id=e[t(784)],n[t(714)][t(803)]=t(638),this[t(1037)].on(e[t(426)],(i=>{const r=t;n[r(714)][r(606)]=e[r(724)](e[r(790)](i[r(865)],.4),"%"),n[r(714)][r(619)]=e[r(724)](e[r(824)](e[r(752)](100,i[r(418)]),100),"")}))}[S(583)](){const t=S,e={aMfBk:function(t,e){return t!=e},rDaVO:t(690),LpEdr:t(652)};let n;this[t(988)]=new TilePois(this),this[t(988)][t(853)]=i=>{const r=t;let s=n;n=new Group$1;let a={};n[r(582)][r(855)]((t=>t[r(978)]()));for(const t in i[r(931)]){i[r(931)][t][r(855)]((t=>{const i=r;let o=t[i(642)];if((null==o?void 0:o[i(627)])&&e[i(556)](o[i(627)],"↑")&&o[i(714)]){if(a[o[i(627)]])return;a[o[i(627)]]=1;let r=JSON[i(856)](o),c=null==s?void 0:s[i(582)][i(1043)]((t=>t[i(897)][i(840)]===r));!c&&(c=new TextSprite({fontSize:o[i(714)][i(441)],strokeStyle:e[i(1010)],fillStyle:o[i(714)][i(917)],strokeWidth:.15,src:o[i(714)][i(1007)],vmap:this,text:o[i(627)],renderOrder:o[i(653)],iconHeight:o[i(714)][i(733)],group:e[i(701)]}),c[i(730)][i(1035)](this[i(591)](t[i(485)][i(918)])),c[i(897)][i(840)]=r),n[i(547)](c[i(558)]())}}))}this[r(788)][r(547)](n),null==s||s[r(978)]()}}[S(571)](t){const e=S;let n=this[e(582)][e(1043)]((n=>n[e(874)].id===t));if(n)return n;if(n=this[e(883)](t),!n){let i=this[e(779)][e(742)][e(1043)]((e=>e.id===t));i&&(n=new C$b(i,this),this[e(547)](n))}return n}[S(522)](t,e){const n=S;let i=this[n(1005)](t);return null==i?void 0:i[n(522)](e)}[S(943)](t,e){const n=S;let i=this[n(1005)](t);return null==i?void 0:i[n(943)](e)}[S(614)](t,e){const n=S,i={OTwaA:n(482),UDEiy:function(t){return t()},lOfop:n(614)};let r=this[n(537)](t);return r?(e.id=i[n(575)](createShortId),r[n(431)]=r[n(431)]||[],r[n(431)][n(776)](e),this[n(388)](i[n(500)]),e):console[n(687)](i[n(425)],t)}[S(623)](t){const e=S,n={KZHUC:function(t,e){return t===e},cLpbt:function(t,e){return t(e)},OyCpE:function(t,e){return t(e)},sqxTF:e(623)},i=i=>{const r=e,s={ynAUV:function(t,e){return n[W$5(822)](t,e)}};null==i||i[r(551)]()[r(855)](((e,n)=>{const a=r;s[a(886)](e.id,t)&&i[a(974)](n,1)}))};n[e(1028)](i,this[e(779)][e(431)]),this[e(779)][e(742)][e(855)]((t=>{const r=e,s={ojtfR:function(t,e){return n[W$5(654)](t,e)}};t[r(516)][r(855)]((t=>{const e=r;s[e(813)](i,t[e(431)])}))})),this[e(388)](n[e(998)],t)}[S(989)](){const t=S,e={yKrcz:t(989)};delete this[t(779)][t(431)],this[t(779)][t(742)][t(855)]((e=>{const n=t;e[n(516)][n(855)]((t=>{delete t[n(431)]}))})),this[t(388)](e[t(531)])}[S(858)](t,e,n={}){const i=S;let r=this[i(1005)](t);return null==r?void 0:r[i(858)](e,n)}[S(895)](t){const e=S;let n=this[e(582)][e(1043)]((n=>n[e(874)].id===t));n&&this[e(454)](n)}[S(437)](){const t=S,e={QGcim:function(t,e){return t+e},ZZqLI:function(t,e){return t/e},zsWoY:function(t,e){return t/e},UKVWw:function(t,e){return t+e},Efsow:function(t,e){return t*e},dBsFO:function(t,e){return t-e},cTLLy:function(t,e){return t+e},kSWOn:function(t,e){return t*e},mBtSE:function(t,e){return t+e},LxNSK:function(t,e){return t-e},QirhW:function(t,e){return t-e},pBvHB:function(t,e){return t+e},iSQjO:function(t,e){return t*e},FpPeK:function(t,e){return t-e},XoWPk:function(t,e){return t-e},QFzqh:function(t,e){return t!==e},NWqkY:function(t,e){return t&&e},gowNi:function(t,e){return t===e},QuPVj:function(t,e){return t(e)},EVvNp:function(t){return t()},XPQhX:function(t,e){return t<e},rSViJ:t(1003)};let n=new Vector3(0,0,-1),i=50;const r=()=>{const n=t;let r=this[n(462)][n(1022)][n(904)](),s=e[n(716)](e[n(503)](this[n(462)][n(1022)][n(386)],2),r[n(747)]),a=e[n(716)](e[n(510)](this[n(462)][n(1022)][n(1042)],2),r[n(644)]);return[[e[n(791)](s,i),e[n(791)](a,i)],[e[n(791)](s,e[n(944)](i,.2)),a],[e[n(791)](s,i),e[n(898)](a,i)],[s,e[n(394)](e[n(791)](a,i),e[n(864)](i,.2))],[s,e[n(630)](e[n(645)](a,i),e[n(944)](i,.2))],[e[n(905)](s,i),e[n(971)](a,i)],[e[n(716)](e[n(905)](s,i),e[n(584)](i,.2)),a],[e[n(793)](s,i),e[n(802)](a,i)]][n(855)]((t=>{const e=n;let i=this[e(816)][e(612)]({x:t[0],y:t[1]},[this[e(816)][e(1013)]]);return i?i[0][e(572)][e(849)](1e3):[]}))};let s=this[t(601)][t(520)][t(582)][t(676)]((e=>{var n;return null==(n=e[t(897)][t(1033)])?void 0:n[t(663)]}));const a=e=>{const i=t;let r=this[i(816)][i(391)](e,n,s)[i(602)](((t,e)=>t[i(738)]-e[i(738)]))[0];return null==r?void 0:r[i(553)][i(897)][i(1033)]};let o=this[t(779)][t(1033)][t(676)]((e=>e[t(663)]));o[t(436)]&&this[t(1037)].on(e[t(932)],(n=>{const i=t;if(this[i(755)][i(1044)]||!this[i(755)][i(760)]||this[i(755)][i(945)])return;let s=this[i(576)](n[i(555)])[i(849)](1e3),c=e[i(669)](a,s);!c&&e[i(709)](r)[i(1043)]((t=>c=a(t))),c&&e[i(1012)](n[i(418)],c[i(885)])&&(c=null),c?this[i(560)][i(755)][i(946)]||this[i(560)][i(755)][i(1023)]||this[i(807)](c[i(663)].id):this[i(755)][i(742)]=null,o[i(855)]((t=>{var n,r;const s=i;!this[s(560)][s(755)][s(712)][s(1043)]((e=>{var n;return(null==(n=e[s(516)][s(745)])?void 0:n.id)===t.id}))&&e[s(820)](null==(n=null==c?void 0:c[s(663)])?void 0:n.id,t.id)&&this[s(923)](t.id);let a=this[s(560)][s(755)][s(946)]||this[s(560)][s(755)][s(1023)],o=this[s(560)][s(755)][s(712)][e[s(802)](this[s(560)][s(929)][s(902)],1)];if(e[s(427)](a,o)){e[s(940)](null==(r=o[s(516)][s(745)])?void 0:r.id,t.id)?this[s(807)](t.id):this[s(923)](t.id)}})),!c&&!this[i(560)][i(755)][i(712)][i(436)]&&(this[i(601)]&&new Tween(this[i(601)][i(805)][i(935)]).to({z:1},300)[i(594)](),this[i(514)][i(551)]()[i(855)]((t=>{const e=i;this[e(923)](t[e(874)].id)})))}))}[S(737)](){const t=S,e={dCNmn:t(737)};this[t(388)](e[t(562)])}[S(838)](){const t=S,e={MNcHA:t(737),FRHPE:t(838)};this[t(388)](e[t(846)]),this[t(388)](e[t(899)])}[S(588)](){const t=S,e={MvbZi:t(588)};this[t(388)](e[t(448)])}[S(620)](t){const e=S;if(t)return t[e(897)][e(1033)]||t[e(897)][e(423)]||t[e(897)][e(767)]?t:this[e(620)](t[e(745)])}[S(991)](){const t=S,e={FkBDH:function(t,e){return t/e}};if(this[t(779)][t(893)][t(459)]){const n=texureLoader[t(815)](this[t(779)][t(893)][t(459)]);let i=new Mesh(new SphereGeometry(1e5,100,100),new MeshBasicMaterial({map:n,side:BackSide,transparent:!0,depthWrite:!1}));i[t(926)](e[t(489)](Math.PI,2)),i[t(559)]=-6,this[t(392)][t(547)](i)}}[S(721)](t,e){const n=S;if(!t)return;let i=this[n(997)](t),r=this[n(787)](t),s=this[n(782)](t),a=null==s?void 0:s[n(897)][n(1033)];r&&(r[n(851)]=!e),i&&(i[n(429)]=!0,i[n(604)]=!0),s&&(s[n(429)]=!a[n(411)],s[n(604)]=!0),{WICdb:function(t,e,n){return t(e,n)}}[n(643)](setTimeout,(()=>{const t=n;i&&(i[t(429)]=e,i[t(604)]=e),s&&(s[t(429)]=!a[t(411)]&&e,s[t(604)]=e)}),300)}[(_eh=S(514),S(807))](t,e){const n=S;let i=this[n(514)][n(1043)]((e=>e[n(874)].id===t));if(i)return e&&i[n(568)](e),this[n(755)][n(742)]=i,i;let r={SRMcJ:function(t){return t()}}[n(823)](getURLQuery)[n(530)]||.3,s=this[n(997)](t),a=this[n(782)](t);return i=this[n(571)](t),this[n(514)][n(776)](i),e?i[n(568)](e):i[n(1021)](),((null==s?void 0:s[n(604)])||(null==a?void 0:a[n(604)]))&&(this[n(721)](t,!1),this[n(601)]&&new Tween(this[n(601)][n(805)][n(935)]).to({z:r},300)[n(594)]()),this[n(755)][n(742)]=i,i}[S(404)](t,e,n=!0){var i;const r=S,s={bIXLZ:function(t,e){return t+e},uAHzu:r(785),dKIbU:function(t,e){return t>e},kvsvo:function(t,e){return t+e},USKvI:function(t,e,n){return t(e,n)}};if(console[r(687)](s[r(937)]),!this[r(792)])return void(e&&(null==(i=this[r(755)][r(742)])||i[r(568)](e)));this[r(755)][r(760)]=!1;let a=this[r(982)](t),{zoom:o,lnglat:c}=this[r(496)](a[r(608)]||[],20);n&&(s[r(700)](a[r(608)][r(436)],1)?this[r(1037)][r(1030)](s[r(1036)](a[r(885)],.5),c,300):this[r(1037)][r(683)](c,300)),s[r(592)](setTimeout,(()=>{const i=r;this[i(807)](t,e),this[i(755)][i(760)]=!0,n&&this[i(1037)][i(884)](s[i(621)](this[i(1037)][i(681)](),.001))}),600)}[S(923)](t){const e=S;let n=this[e(514)][e(507)]((n=>n[e(874)].id===t));({pnBUb:function(t,e){return t>e}})[e(768)](n,-1)&&this[e(514)][e(974)](n,1);let i=this[e(997)](t),r=this[e(782)](t);(i&&!i[e(429)]||r&&!r[e(429)])&&(this[e(721)](t,!0),this[e(895)](t))}[S(554)](t,e=!0){const n=S,i={GBfZr:function(t,e){return t===e}};let r=[],s=n=>{var s;const a=W$5;(e?null==(s=n[a(627)])?void 0:s[a(502)](t):i[a(882)](n[a(627)],t))&&r[a(776)](n)};return this[n(779)][n(1033)][n(855)](s),this[n(779)][n(742)][n(855)]((t=>t[n(516)][n(855)]((t=>t[n(1033)][n(855)](s))))),r}[S(996)](){const t=S,e={XtzUK:function(t,e){return t!==e}};this[t(514)][t(551)]()[t(855)]((n=>{const i=t;e[i(497)](n,this[i(755)][i(742)])&&this[i(923)](n[i(874)].id)})),this[t(514)]=[]}[S(862)](t,e=S(538),n=2){const i=S;if(!debug)return;this._p=this._p||{},this._p[e]&&this._p[e][i(978)]();const r=(new BufferGeometry)[i(829)](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(559)]=renderOrderConfig[i(671)],this._p[e]=a,this[i(805)][i(547)](a)}[S(389)](){var t,e,n,i,r,s;const a=S,o={kkwuc:a(878),buJwj:a(837)};let{options:c}=this[a(779)],{isPlane:l}=c;this[a(1037)]=new MapControl(this),this[a(1037)][a(594)](),w$1[a(776)](this),this[a(1037)][a(860)](this[a(455)]),this[a(1037)][a(811)]=85,this[a(1037)][a(795)]=0,ua.pc?(this[a(1037)][a(486)]=debug?30:(null==(t=c[a(992)])?void 0:t[a(436)])?c[a(992)][1]:30,this[a(1037)][a(780)]=debug?0:(null==(e=c[a(992)])?void 0:e[a(436)])?c[a(992)][0]:0):(this[a(1037)][a(486)]=debug?30:(null==(n=c[a(398)])?void 0:n[a(436)])?c[a(398)][1]:30,this[a(1037)][a(780)]=debug?0:(null==(i=c[a(398)])?void 0:i[a(436)])?c[a(398)][0]:0),l&&(this[a(1037)][a(741)]=!1,this[a(1037)][a(467)]=!1),this[a(1037)][a(884)](1,0);let u=this[a(576)](this[a(779)][a(555)]);if(this[a(555)].x=u.x,this[a(555)].y=u.y,(null==c?void 0:c[a(903)])&&this[a(577)](),this[a(816)]=new n$h(this),debug&&this[a(805)][a(547)](new AxesHelper(999999999)),this[a(392)][a(547)](this[a(805)]),((null==c?void 0:c[a(1011)])||c[a(385)]||this[a(779)][a(893)][a(909)]||(null==(r=null==c?void 0:c[a(907)])?void 0:r[a(436)]))&&!location[a(832)][a(502)](o[a(889)])){const t=o[a(613)][a(655)]("|");let e=0;for(;;){switch(t[e++]){case"0":this[a(633)]();continue;case"1":this[a(788)][a(547)](this[a(731)]);continue;case"2":(null==c?void 0:c[a(385)])&&this[a(818)]();continue;case"3":((null==c?void 0:c[a(1011)])||(null==(s=null==c?void 0:c[a(907)])?void 0:s[a(436)]))&&this[a(590)]();continue;case"4":this[a(731)]=new MapTileView(this);continue}break}}this[a(598)][a(547)](this[a(392)]),this[a(624)](),this[a(938)]()}[S(403)](t){var e,n,i;const r=S;null==(e=this[r(462)])||e[r(866)](),null==(n=this[r(462)])||n[r(403)](this[r(788)],t),null==(i=this[r(462)])||i[r(403)](this[r(598)],t),debug&&c[r(775)]()}[S(633)](){const t=S,e={hRJeQ:t(912)};if(!this[t(779)][t(893)][t(909)]||location[t(832)][t(502)](e[t(529)]))return;this[t(479)]&&this[t(479)]();let n={getTileUrl:this[t(779)][t(893)][t(909)],maxZoom:20,minZoom:2,zIndex:2};this[t(731)][t(633)](n),this[t(479)]=()=>this[t(731)][t(479)](n)}[S(590)](){const t=S;this[t(616)]&&this[t(616)][t(454)](),this[t(894)]&&this[t(894)][t(454)](),this[t(894)]=this[t(731)][t(633)]({getTileUrl:(e,n,i)=>t(704)+Math[t(913)](4*Math[t(546)]())+t(564)+i+t(466)+e+t(976)+n+t(453),maxZoom:20,minZoom:0,zIndex:1})}[S(818)](){const t=S;this[t(616)]&&this[t(616)][t(454)](),this[t(894)]&&this[t(894)][t(454)](),this[t(616)]=this[t(731)][t(633)]({getTileUrl:(e,n,i)=>t(704)+Math[t(913)](4*Math[t(546)]())+t(580)+i+t(466)+e+t(976)+n,maxZoom:18,minZoom:0,zIndex:1})}[(_dh=S(470),S(774))](){const t=S;this[t(470)]=this[t(582)][t(676)]((e=>e!==this[t(755)][t(742)])),this[t(470)][t(855)]((e=>e[t(558)]()))}[S(963)](){const t=S;this[t(470)][t(855)]((e=>this[t(547)](e))),this[t(470)]=[]}[S(1006)](){const t=S;this[t(788)][t(429)]=!0}[S(947)](){const t=S;this[t(788)][t(429)]=!1}[S(719)](){const t=S,e={DQdJV:function(t,e){return t*e},evkvX:function(t,e){return t+e},SMqKN:function(t,e){return t%e},FOnFA:t(1003)};this[t(1037)].on(e[t(710)],(()=>{var n;const i=t;this[i(434)]();let r=0;null==(n=this[i(731)])||n[i(492)]((t=>r++)),log[i(863)]({rotation:this[i(1037)][i(739)]()[i(442)](2),zoom:this[i(1037)][i(681)]()[i(442)](2),pitch:this[i(1037)][i(400)]()[i(442)](2),nodeNum:r}),this[i(392)][i(1049)]&&(this[i(392)][i(1014)].z=e[i(566)](e[i(696)](e[i(723)](this[i(1037)][i(739)](),360),180),MathUtils[i(867)]))}))}[(_ch=S(434),S(871))](){const t=S,e={vddXl:function(t,e){return t!==e},sSEym:t(539)};this[t(1037)].on(e[t(428)],(n=>{var i,r,s,a;const o=t;if(e[o(915)](null==(i=n[o(994)])?void 0:i[o(540)],0))return!1;let c=[];this[o(392)][o(492)]((t=>{const e=o;t[e(604)]&&!t[e(457)]&&c[e(776)](t)}));let l=this[o(816)][o(612)](n[o(994)],c),u=l[o(855)]((t=>{const e=o;return t[e(553)]=this[e(620)](t[e(553)])||t[e(553)],t[e(553)][e(897)][e(767)]&&(t[e(553)]=t[e(553)][e(970)][t[e(844)]]),t}))[o(1043)]((t=>t[o(553)][o(897)][o(1033)]&&(t[o(553)][o(429)]||t[o(553)][o(604)])));if(!u)return n[o(928)]=n[o(994)],void this[o(388)](e[o(428)],n);u=u||l[0],u[o(928)]=n[o(994)],u[o(477)]=n[o(477)];let h=this[o(620)](u[o(553)])||u[o(553)];if(h){let t=h[o(897)][o(1033)],n=h[o(897)][o(423)];if(n&&(t=null==(r=this[o(782)](n.id))?void 0:r[o(874)]),null==t?void 0:t[o(881)]){if(h[o(429)]&&!this[o(755)][o(1044)]){const{zoom:e}=this[o(836)](t[o(608)],0);this[o(1037)][o(1030)](e,this[o(692)](t[o(555)]),300)}}else if((null==t?void 0:t[o(930)])&&h[o(745)]&&!h[o(745)][o(429)]&&!this[o(755)][o(1044)]){let e=this[o(982)](t[o(930)]);const{zoom:n}=this[o(836)](e[o(608)],0);this[o(1037)][o(1030)](n,this[o(692)](e[o(555)]),300)}if((null==(s=null==t?void 0:t[o(745)])?void 0:s[o(742)])&&e[o(915)](t.id,null==(a=this[o(755)][o(742)])?void 0:a[o(874)].id)){let e=t[o(745)][o(742)][o(1043)]((e=>e.id===t.id));e&&!this[o(755)][o(945)]&&this[o(404)](e.id)}}this[o(388)](e[o(428)],u)}))}[S(683)](t,e,n){const i=S;this[i(1037)][i(683)](this[i(548)](t),e,n)}[S(542)](t){var e,n;const i=S,r={PKJhh:i(472),UMkGb:function(t,e){return t===e},jyyxE:i(491)};let s,a=this[i(792)]?this[i(779)]:null==(e=this[i(755)][i(742)])?void 0:e[i(665)][i(874)];if(this[i(792)]||this[i(755)][i(742)]){if(!isPc&&(null==(n=a[i(893)])?void 0:n[i(472)])){let t=a[i(893)][i(472)];console[i(687)](t,r[i(631)]),s=r[i(656)](typeof t,r[i(854)])?JSON[i(777)](t):t}else s=a[i(647)];s&&Object[i(578)](s)[i(436)]?this[i(954)](s,t):this[i(409)](a[i(1033)][i(855)]((t=>t[i(608)]))[i(395)](),0,t?0:500)}}[S(954)](t,e){const n=S,i={eAeEv:function(t,e){return t!==e}};if(t[n(555)]&&this[n(1037)][n(683)](Array[n(819)](t[n(555)])?t[n(555)]:[t[n(555)][n(753)],t[n(555)][n(494)]],e?0:300),i[n(948)](t[n(865)],void 0)&&this[n(1037)][n(597)]()[n(741)]&&this[n(1037)][n(1031)](t[n(865)],e?0:300),i[n(948)](t[n(418)],void 0)&&this[n(1037)][n(884)](t[n(418)],e?0:300),i[n(948)](t[n(691)],void 0)){let i=t[n(691)];i%=360,this[n(1037)][n(756)](i,e?0:300)}}[S(548)](t){const e=S;return this[e(1037)][e(692)](t)}[S(692)](t){const e=S,n={ZWhRj:function(t,e){return t+e},VvhIa:function(t,e){return t+e}};return this[e(1037)][e(692)](n[e(925)](t.x,this[e(555)].x),n[e(504)](t.y,this[e(555)].y))}[S(576)](t,e){const n=S;let i=this[n(1037)][n(591)](t,e);return new Vector3(i.x,i.y,0)}[S(591)](t,e){const n=S;let i=this[n(1037)][n(591)](t,e);return new Vector3(i.x,i.y,0)[n(661)](this[n(555)])}[S(836)](t,e=0){const n=S;let i=this[n(496)](t,e);return i[n(730)][n(661)](this[n(555)]),i[n(477)]=new LngLat(i[n(477)][n(753)],i[n(477)][n(494)]),i}[S(496)](t,e=0){const n=S;let i=new Box2;return i[n(829)](t),this[n(1037)][n(586)]([i[n(911)].x,i[n(911)].y,i[n(727)].x,i[n(727)].y])}[S(409)](t,e=0,n=500){const i=S,{zoom:r,lnglat:s}=this[i(496)](t,e);!{KBZoC:function(t,e){return t>e}}[i(933)](t[i(436)],1)?this[i(1037)][i(683)](s,n):this[i(1037)][i(1030)](r,s,n)}[S(401)](t,e=0,n=500){const i=S;if(!t)return;let r=(t=Array[i(819)](t)?t:[t])[i(855)]((t=>{var e;return null==(e=this[i(982)](t))?void 0:e[i(608)]}))[i(676)]((t=>t))[i(395)]();const{zoom:s,lnglat:a}=this[i(496)](r,e);!{vxoqN:function(t,e){return t>e}}[i(473)](r[i(436)],1)?this[i(1037)][i(683)](a,n):this[i(1037)][i(1030)](s,a,n)}[S(624)](){var t,e,n;const i=S,r={vbWba:i(1001),SLENU:i(405)};if(!location[i(832)][i(502)](r[i(942)]))if(this[i(589)]){let s=new Object3D;s[i(627)]=r[i(806)],this[i(598)][i(547)](s),(null==(e=null==(t=this[i(779)][i(893)])?void 0:t[i(870)])?void 0:e[i(436)])&&(null==(n=this[i(779)][i(893)][i(870)])||n[i(827)]((t=>{const e=i;let n=e(887)+t[e(627)];if(this[n]){let i=this[n](t,s);s[e(547)](i)}})))}else{let t=new PMREMGenerator(this[i(462)]);t[i(728)](),this[i(598)][i(1049)]=t[i(610)](new DebugEnvironment,.6,1e-5,1e6)[i(664)],this[i(598)][i(585)]=this[i(779)][i(893)][i(585)]||1}}[S(636)](t){const e=S,n={KXbkp:e(690)};let i=new AmbientLight(t[e(493)]||n[e(703)],t[e(519)]||1);return i[e(897)]=t,i}[S(1041)](t){var e,n,i;const r=S,s={KFtYq:r(690)};let a=new PointLight(t[r(493)]||s[r(773)],t[r(519)]||1,t[r(738)]||0,t[r(765)]||2);return a[r(730)][r(439)]((null==(e=t[r(730)])?void 0:e.x)||0,(null==(n=t[r(730)])?void 0:n.y)||0,(null==(i=t[r(730)])?void 0:i.z)||100),a[r(897)]=t,a}[S(766)](t){var e,n,i;const r=S,s={MPKxJ:r(690)};let a=new DirectionalLight(t[r(493)]||s[r(483)],t[r(519)]||1);return a[r(730)][r(439)]((null==(e=t[r(730)])?void 0:e.x)||0,(null==(n=t[r(730)])?void 0:n.y)||0,(null==(i=t[r(730)])?void 0:i.z)||100),a[r(920)]=t[r(629)]||!1,a[r(589)][r(498)][r(444)]=4096,a[r(589)][r(498)][r(606)]=4096,a[r(589)][r(964)]=1,a[r(589)][r(416)][r(644)]=2e3,a[r(589)][r(416)][r(639)]=-2e3,a[r(589)][r(416)][r(747)]=-2e3,a[r(589)][r(416)][r(711)]=2e3,a[r(589)][r(416)][r(828)]=1,a[r(589)][r(416)][r(525)]=99999,a[r(589)][r(1002)]=-1e-4,a[r(897)]=t,a}[S(541)](t,e){const n=S,i={CnqsL:function(t,e){return t instanceof e}};let r;return this[n(582)][n(1043)]((s=>{const a=n;return i[a(565)](s,C$b)?s[a(582)][a(1043)]((n=>{const i=a;return r=n[i(545)+e+i(412)](t),r})):(r=s[a(545)+e+a(412)](t),r)})),r}[S(997)](t){const e=S,n={WhYqN:e(969)};return this[e(541)](t,n[e(936)])}[S(782)](t){const e=S,n={tGPGK:e(980)};return this[e(541)](t,n[e(1016)])}[S(787)](t){const e=S,n={WJgXD:e(1009)};return this[e(541)](t,n[e(950)])}[S(1005)](t){const e=S;let n,i=this[e(537)](t);if(i[e(745)]){n=this[e(549)](i[e(745)].id)[e(1005)](i.id)}else n=this[e(601)];return n}[S(549)](t){const e=S;let n=[...this[e(582)],...this[e(567)]][e(1043)]((n=>{var i;return(null==(i=n[e(874)])?void 0:i.id)===t}));if(n)return n;{let i=this[e(779)][e(742)][e(1043)]((e=>e.id===t));if(i)return n=new C$b(i,this),this[e(567)][e(776)](n),n}}[S(821)](t){const e=S;return this[e(779)][e(742)][e(1043)]((e=>e.id==t))}[(_bh=S(908),S(537))](t){const e=S,n={EsZFK:e(708),TTKLU:function(t,e){return t===e}},i=n[e(563)][e(655)]("|");let r=0;for(;;){switch(i[r++]){case"0":if(!t)return;continue;case"1":return this[e(908)][t];case"2":if(n[e(877)](this[e(779)].id,t))return this[e(779)];continue;case"3":if(this[e(908)][t])return this[e(908)][t];continue;case"4":this[e(779)][e(742)][e(1043)]((n=>{const i=e;return this[i(908)][t]=n[i(516)][i(1043)]((e=>String(e.id)===String(t))),this[i(908)][t]}));continue}break}}[(_ah=S(675),S(982))](t){const e=S,n={vgzAF:function(t,e){return t===e}};if(this[e(675)][t])return this[e(675)][t];const i=i=>{const r=e;return n[r(579)](i.id,t)&&(this[r(675)][t]=i),this[r(675)][t]};return this[e(779)][e(1033)][e(1043)](i),this[e(675)][t]||this[e(779)][e(742)][e(1043)]((t=>{const n=e;return t[n(516)][n(1043)]((t=>{const e=n;return t[e(1033)][e(1043)](i)}))})),this[e(675)][t]}[(_$g=S(786),S(958))](t,e){const n=S,i={pCNdr:function(t,e){return t>e},hmdBf:function(t,e){return t-e},cZiJv:function(t,e){return t-e}};let r=new Vector3(t.x,t.y,0)[n(661)]({x:e.x,y:e.y,z:0}),s=r[n(848)]()[n(750)](this[n(786)]),a=r[n(581)](this[n(786)]);return i[n(657)](s.z,0)?i[n(408)](Math.PI,a):i[n(570)](a,Math.PI)}[S(577)](){}[S(618)](t){const e=S,n={ulDqh:function(t,e){return t===e},lDlka:function(t,e){return t===e},zfFvS:function(t,e,n){return t(e,n)},LXxcI:function(t,e){return t===e}};n[e(422)](this[e(755)][e(674)],t)||(n[e(506)](t,"2D")?(n[e(794)](setTimeout,(()=>{const t=e;this[t(392)][t(935)].z=.01}),300),this[e(1037)][e(1031)](0,300),this[e(1037)][e(861)]({pitchEnable:!1}),this[e(755)][e(674)]="2D"):n[e(600)](t,"3D")&&(this[e(1037)][e(861)]({pitchEnable:!0}),this[e(1037)][e(1031)](30,300),this[e(392)][e(935)].z=1,this[e(755)][e(674)]="3D"))}[(__g=S(975),_Zg=S(678),S(938))](){const t=S,e={YUaqP:function(t,e,n){return t(e,n)},czcWX:t(725)};this[t(678)]=new ResizeObserver(this[t(975)]),this[t(678)][t(758)](this[t(455)]),document[t(456)](e[t(1e3)],(()=>{const n=t;e[n(916)](setTimeout,(()=>{const t=n;this[t(434)](),this[t(975)]()}),100)}))}[S(445)](){const t=S,e={xiXyH:function(t,e){return t+e},UNjIz:function(t,e){return t/e},ivTfj:function(t,e){return t>e},ANISo:function(t,e){return t-e},CNSKl:function(t,e){return t-e},cXApP:function(t,e){return t>e},GwxYj:function(t,e){return t-e},fLFuX:function(t,e){return t<e},ZjVSe:function(t,e){return t-e},mpztA:t(1018),lMPkC:t(859),bYZIl:t(808),epZkX:t(650),AyrwM:t(393),rxFhj:function(t,e,n){return t(e,n)},kmphd:t(1045)};this.on(e[t(979)],(e=>{const n=t;e?(this[n(1037)][n(1031)](70),this[n(1037)][n(941)](),this[n(1037)][n(741)]=!1,this[n(1037)][n(919)]=!1):(this[n(1037)][n(741)]=!0,this[n(1037)][n(919)]=!0)}));const n=this[t(1037)][t(965)];let i,r,s;n[t(456)](e[t(983)],(n=>{const i=t;this[i(755)][i(1044)]&&this[i(1037)][i(884)](e[i(1020)](this[i(1037)][i(681)](),e[i(697)](n[i(396)],300)),0)})),n[t(456)](e[t(557)],(e=>{const n=t;this[n(755)][n(1044)]&&(r=i=e)})),n[t(456)](e[t(949)],(t=>{s=t})),n[t(456)](e[t(634)],(n=>{var r;const a=t;if(this[a(755)][a(1044)]&&this[a(755)][a(742)]&&!e[a(857)](null==s?void 0:s[a(1004)][a(436)],1)&&i){let t=e[a(637)](n.x,i.x),s=e[a(847)](n.y,i.y);this[a(755)][a(742)][a(805)][a(730)].z-=e[a(697)](s,10),(null==(r=this[a(779)][a(893)])?void 0:r[a(892)])||this[a(1037)][a(756)](e[a(637)](this[a(1037)][a(739)](),e[a(697)](t,2)),0),i=n}})),e[t(927)](addEventListener,e[t(449)],(n=>{var a,o;const c=t;if(e[c(857)](null==s?void 0:s[c(1004)][c(436)],1))return;if(!this[c(755)][c(1044)]||e[c(512)](n[c(720)],1)||!(null==(a=this[c(755)][c(516)])?void 0:a[c(874)][c(745)])||!r)return;let{floor:l}=this[c(755)][c(516)][c(874)][c(745)],u=l[c(484)](this[c(755)][c(516)][c(874)]),h=e[c(527)](n.y,r.y);e[c(512)](Math[c(487)](h),60)&&(e[c(533)](h,0)?u++:u--),u=MathUtils[c(464)](u,0,e[c(521)](l[c(436)],1)),null==(o=this[c(755)][c(742)])||o[c(568)](l[u].id),r=i=null}))}[(_Yg=S(810),S(1008))](t){const e=S,n={Ycqua:function(t,e){return t+e},yzSSP:function(t,e){return t+e},eSfpX:e(538),bJOdl:e(611),kAYoF:e(1019),THKpy:function(t,e){return t/e},mpCjH:function(t,e){return t+e},kNjeJ:e(798),SbtOi:e(749),osQpl:e(1032)};if(!debug||!localStorage[e(956)])return;if(this[e(810)]&&this[e(810)][e(978)](),this[e(810)]=new Object3D,this[e(805)][e(547)](this[e(810)]),!t[e(436)])return;let i=[n[e(872)],n[e(670)],n[e(748)]];t[e(855)](((t,r)=>{const s=e;let a=new TextSprite({text:n[s(797)](n[s(797)](n[s(797)](n[s(450)](t[s(769)],"-"),this[s(537)](t[s(516)])[s(627)]),"-"),t[s(800)]),vmap:this,fillStyle:n[s(842)],strokeStyle:n[s(595)],bgColor:i[r]||n[s(804)],lineGap:.25,strokeWidth:.15,isCollision:!1,fontSize:n[s(751)](n[s(535)](100,t[s(769)]),2)});a[s(730)][s(439)](t.x,t.y,0)[s(661)](this[s(555)]),a[s(559)]=renderOrderConfig[s(1008)],this[s(810)][s(547)](a)}))}[(_Xg=S(438),S(924))](t){const e=S,n={VNoFx:function(t,e){return t+e},DynlX:e(538),hViiH:e(611),jITAs:e(1019),bSfUh:e(798),YucQP:e(749),cfZYo:e(1032)};if(!debug)return;if(this[e(438)]&&this[e(438)][e(978)](),this[e(438)]=new Object3D,this[e(805)][e(547)](this[e(438)]),!t[e(436)])return;let i=[n[e(390)],n[e(735)],n[e(834)]];t[e(855)](((t,r)=>{const s=e;let a=new TextSprite({text:t[s(726)]||n[s(680)](r,""),vmap:this,fillStyle:n[s(967)],strokeStyle:n[s(649)],bgColor:i[r]||n[s(481)],lineGap:.25,strokeWidth:.15,isCollision:!1,fontSize:12});a[s(730)][s(439)](t.x,t.y,0),a[s(559)]=renderOrderConfig[s(1008)],this[s(438)][s(547)](a)}))}[S(957)](){const t=S,e={xYXFe:t(705)};this.el[t(714)][t(490)]=e[t(901)]}[S(508)](){const t=S,e={JobgS:t(772)};this.el[t(714)][t(490)]=e[t(1047)]}async[(_Wg=S(906),_Vg=S(628),S(605))](t){var e;const n=S,i={rQpQf:function(t,e){return t!==e},WuDZG:function(t,e){return t<e},CIXZo:function(t,e){return t%e},zrmdK:function(t,e){return t+e},Arfbc:function(t,e){return t-e},xJhUI:function(t,e){return t-e},NRMkW:function(t,e){return t<e},aBtoZ:function(t,e){return t%e},OFDMB:function(t,e){return t+e},qRHGo:function(t,e){return t*e},CKOAz:function(t,e){return t>e},NcVDk:function(t,e){return t-e},STfOa:n(869),DXGJg:function(t,e){return t<e},gwZsq:function(t,e){return t==e},bLBrW:n(968),aQVto:function(t,e){return t===e},KJoEZ:function(t,e){return t(e)},RPglW:function(t,e){return t+e},kkAcm:function(t,e,n){return t(e,n)},gsYSR:function(t,e){return t>e},asdrV:function(t){return t()},AbCkD:function(t,e){return t*e},XRjNV:function(t,e){return t+e},BDCjz:function(t,e){return t(e)},beSCY:function(t,e){return t(e)},fmXrL:function(t,e){return t*e},tIjKC:n(981),tLGvF:n(762),abGZc:n(491),aGlae:n(764)};let r;try{let s=await this[n(523)]({url:(location[n(832)][n(502)](i[n(921)])?o$b[n(981)]:o$b[n(693)])+n(417)+t+n(622),responseType:i[n(463)],retry:0}),a=await h$8[n(475)](s[n(809)]),o=await(null==(e=a[n(1040)](t+n(759)))?void 0:e[n(603)](i[n(420)]));r=JSON[n(777)](o)}catch(l){r=(await this[n(523)]({url:o$b[n(693)]+n(973)+t}))[n(809)][n(874)]}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(707)],path:[],polygonData:[],view:{},mapId:"",id:"1",options:{closePriorityNavigationList:[]},arShowPoints:[],arShowList:[],needLogin:!0};function a(t){const e=n;let r=t[e(608)];if(i[e(543)](r[e(436)],4)||t[e(411)]||t[e(881)]||t[e(458)]||t[e(679)])return;const s=[];for(let n=0;i[e(789)](n,4);n++){const t=i[e(955)](i[e(399)](n,1),4);s[e(776)](new Vector2(i[e(734)](r[t].x,r[n].x),i[e(552)](r[t].y,r[n].y)))}for(let n=0;i[e(825)](n,4);n++){const t=i[e(662)](i[e(501)](n,1),4);let r=i[e(421)](s[n][e(581)](s[t]),RAD2DEG);if(i[e(770)](Math[e(487)](i[e(447)](+r[e(442)](0),90)),2))return}t[e(474)]=i[e(833)];let a=(new Vector2)[e(1035)](r[1])[e(661)](r[0]),o=(new Vector2)[e(1035)](r[2])[e(661)](r[1]);t[e(1017)]=a[e(460)](),t[e(1046)]=new Vector3(a[e(436)](),o[e(436)](),t[e(606)]||1)}function o(t){const e=n;if(i[e(695)](t[e(608)][e(436)],20)||t[e(411)]||t[e(881)]||t[e(458)])return;let r=t[e(608)][e(855)]((t=>new Vector2(t.x,t.y)))[e(855)]((n=>n[e(505)](t[e(555)]))),s=r[0];r=r[e(855)]((t=>+t[e(442)](1)));let a=[...new Set(r)];i[e(407)](a[e(436)],1)&&!t[e(679)]&&!t[e(458)]&&(t[e(474)]=i[e(743)],t[e(1046)]=new Vector3(s,s,t[e(606)]||1))}if(!r[n(779)]&&(s[n(555)]=r[n(555)],s[n(715)]=r.id,r[n(779)]=JSON[n(856)](s)),r[n(779)]=JSON[n(777)](r[n(779)]),r[n(779)]=i[n(544)](h$1,r[n(779)]),this[n(406)]=r,this[n(779)]=r[n(779)],this[n(389)](),this[n(906)][n(776)](this[n(779)]),this[n(779)][n(999)]=-999,this[n(779)][n(1033)][n(855)]((t=>{var e,r,s,c;const l=n,u={uxCDB:function(t,e){return i[W$5(646)](t,e)}};if(t[l(745)]=this[l(779)],this[l(779)][l(742)][l(855)]((e=>{const n=l;u[n(736)](e.id,t.id)&&(t[n(663)]=e)})),!this[l(779)][l(742)][l(1043)]((e=>e.id===t.id))&&(i[l(550)](o,t),i[l(550)](a,t)),t[l(663)]){let n=this[l(836)](t[l(608)]);t[l(885)]=n[l(418)]||0;let a=isPc?null==(e=this[l(779)][l(647)])?void 0:e[l(418)]:(null==(s=null==(r=this[l(779)][l(893)])?void 0:r[l(472)])?void 0:s[l(418)])||(null==(c=this[l(779)][l(647)])?void 0:c[l(418)]);a&&(t[l(885)]=Math[l(727)](t[l(885)],i[l(1034)](a,.5)))}})),this[n(779)][n(796)]=2e4,this[n(779)][n(1033)][n(436)]){let t=new Vector3;this[n(779)][n(868)]=this[n(836)](this[n(779)][n(1033)][n(855)]((t=>t[n(608)]))[n(395)]());let e=2e4;this[n(779)][n(1033)][n(855)]((r=>{const s=n;let a=i[s(658)](getLineLength,r[s(555)],t);i[s(430)](a,e)&&(e=a)})),this[n(779)][n(796)]=i[n(421)](e,1.5)}this[n(779)][n(423)][n(855)]((t=>{const e=n,r={HwkBY:function(t,e){return i[W$5(646)](t,e)},CfrZk:function(t,e){return i[W$5(646)](t,e)}};t.id=t[e(607)]||t.id||i[e(814)](createShortId),t[e(607)]&&(this[e(779)][e(742)][e(1043)]((n=>{const i=e;if(r[i(402)](n.id,t[i(607)]))return t[i(663)]=n,n[i(423)]=t})),this[e(779)][e(1033)][e(1043)]((n=>{const i=e;if(r[i(740)](n.id,t[i(607)]))return t[i(663)]=t[i(663)],n[i(423)]=t})))})),this[n(792)]=!!this[n(779)][n(1033)][n(436)],this[n(779)][n(742)][n(855)]((t=>{const e=n,r={BpsOd:function(t,e){return i[W$5(544)](t,e)},xxjXQ:function(t,e){return i[W$5(890)](t,e)},STXgM:function(t,e){return i[W$5(986)](t,e)},yiRYq:function(t,e){return i[W$5(552)](t,e)}};let s=0;t[e(745)]=this[e(779)][e(1033)][e(1043)]((e=>e.id===t.id)),t[e(516)][e(855)](((n,c)=>{const l=e;n[l(792)]&&this[l(906)][l(776)](n),n[l(745)]=t,n[l(1033)][l(436)]&&(n[l(868)]=this[l(836)](n[l(1033)][l(676)]((t=>!t[l(587)]))[l(855)]((t=>t[l(608)]))[l(395)]()));let u=new Box2;u[l(829)](n[l(1033)][l(855)]((t=>t[l(608)]))[l(395)]());let h=u[l(414)](new Vector2);s=Math[l(727)](s,i[l(972)](i[l(471)](h.x,h.y),.2)),n[l(1033)][l(855)]((t=>{const e=l;r[e(609)](a,t),r[e(729)](o,t),t[e(745)]=n}))})),t[e(516)][e(855)](((n,i)=>{const a=e;n[a(999)]=r[a(677)](r[a(569)](r[a(569)](t[a(516)][a(436)],i),1),this[a(893)][a(999)]||s),n[a(999)]=+n[a(999)][a(442)](0)}))}));let c=this[n(906)][n(855)]((t=>t.id));this[n(628)]=this[n(779)][n(461)][n(676)]((t=>c[n(502)](t[n(596)])))}[S(523)]({url:t,method:e=S(545),responseType:n=S(435),retry:i=5}){const r={BzAit:function(t){return t()},nOhuQ:function(t,e){return t==e},yNmcL:function(t,e){return t>=e},zKwsU:function(t,e){return t<e},mYUoC:function(t,e){return t(e)},sWCSz:function(t,e){return t>e},cRrXW:function(t,e,n){return t(e,n)},csvmR:function(t){return t()}};return new Promise(((s,a)=>{const o=W$5,c={toLSS:function(t){return r[W$5(532)](t)},EuVuj:function(t,e){return r[W$5(495)](t,e)},pUBke:function(t,e){return r[W$5(718)](t,e)},kZuQj:function(t,e){return r[W$5(783)](t,e)},tnGYb:function(t,e){return r[W$5(746)](t,e)},pNfkv:function(t,e){return r[W$5(781)](t,e)},axzzy:function(t,e,n){return r[W$5(667)](t,e,n)},inSfw:function(t){return r[W$5(532)](t)}};let l=new XMLHttpRequest;l[o(961)]=n;let u=()=>{const n=o;l[n(515)](e,t,!0),l[n(778)]()};l[o(722)]=function(){const t=o,e={bfIeg:function(t){return c[W$5(446)](t)}};c[t(561)](l[t(960)],4)&&(c[t(966)](l[t(755)],200)&&c[t(879)](l[t(755)],400)?c[t(841)](s,l):c[t(953)](i--,0)?c[t(478)](setTimeout,(()=>{e[t(873)](u)}),1e3):c[t(433)](a))},r[o(468)](u)}))}[(_Ug=S(526),_Tg=S(799),_Sg=S(641),_Rg=S(666),S(387))](t,e){const n=S,i={EHsYL:function(t,e){return t!==e},acdeE:n(518),pKuXe:n(705),QkVhV:n(684),NIWYo:function(t){return t()},NiTFe:n(706),SUZGW:n(831),QxTTt:n(689)};if(this[n(666)][t]=e,!this[n(641)]){this[n(641)]=document[n(668)](i[n(1025)]),this[n(799)]=document[n(668)](i[n(1025)]),this[n(526)]=document[n(668)](i[n(1025)]),this[n(526)][n(714)][n(803)]=i[n(626)];let t=()=>this[n(526)][n(476)]=n(499)+!!localStorage[n(1038)]+n(754)+!!localStorage[n(956)]+n(761)+!!localStorage[n(443)]+n(573)+!!localStorage[n(977)]+n(688);i[n(534)](t),this[n(799)][n(826)](this[n(526)]),this[n(799)][n(826)](this[n(641)]),this.el[n(826)](this[n(799)]),this[n(799)][n(714)][n(803)]=i[n(640)],this[n(641)][n(962)]=()=>{const t=n;this[t(799)][t(714)][t(744)]=i[t(509)](this[t(799)][t(714)][t(744)],i[t(843)])?i[t(843)]:i[t(625)]},this[n(526)][n(962)]=e=>{var r;const s=n;let a=null==(r=e[s(830)])?void 0:r[s(635)];(null==a?void 0:a[s(502)]("信标"))&&(localStorage[s(1038)]=localStorage[s(1038)]?"":"1"),(null==a?void 0:a[s(502)]("检测"))&&(localStorage[s(956)]=localStorage[s(956)]?"":"1"),(null==a?void 0:a[s(502)]("路线"))&&(localStorage[s(443)]=localStorage[s(443)]?"":"1"),(null==a?void 0:a[s(502)](i[s(914)]))&&(localStorage[s(977)]=localStorage[s(977)]?"":"1"),i[s(534)](t)}}this[n(641)][n(635)]=this[n(666)][n(959)]("\n")}}function M$4(){const t=["854127WJOOVq","130hUyASn","isNavi","isSimulate","innerHTML","vm-compass-container","className","map","8107841QfMzcM","8FUZWdm","FOsbz","deg)","config","nHXKb","transform","cssText","getRotation",".vm-compass","querySelector","setRotation","rotateZ(","1CIGlIk","navi","44MGqCCA","inset: 80px 20px auto auto;","1933942fNyfgB","8133540vqlUEj","viewchange","2951325vYDgHP","5819028bajZFz","onclick","amap","BcdZM","DXkLr","div","YPMqq","appendChild","7956HQmWRy","3885yvVefp","status","style",'\n <div class="vm-compass"></div>\n ',"createElement"];return(M$4=function(){return t})()}const o$2=W$4;function W$4(t,e){const n=M$4();return(W$4=function(t,e){return n[t-=479]})(t,e)}!function(t,e){const n=W$4,i=t();for(;;)try{if(902695===-parseInt(n(511))/1*(parseInt(n(515))/2)+parseInt(n(518))/3+-parseInt(n(484))/4*(-parseInt(n(485))/5)+parseInt(n(516))/6+parseInt(n(498))/7*(parseInt(n(499))/8)+-parseInt(n(490))/9*(parseInt(n(491))/10)+-parseInt(n(513))/11*(parseInt(n(519))/12))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$4);let B$3=(_Bh=o$2(502),_Ah=o$2(497),class{constructor(t){__publicField(this,_Bh),__publicField(this,_Ah),__publicField(this,"el");const e=o$2,n={nHXKb:e(481),DXkLr:e(495),BcdZM:e(507),FOsbz:e(514),YPMqq:e(517)};this[e(497)]=t[e(497)],this[e(502)]=t,this.el=document[e(489)](n[e(503)]),this.el[e(496)]=n[e(480)],this[e(497)].el[e(483)](this.el),this.el[e(494)]=e(488);let i=this.el[e(508)](n[e(479)]);this.el[e(487)][e(505)]=this[e(502)][e(487)]||n[e(500)],this[e(497)][e(521)].on(n[e(482)],(t=>{const n=e;i[n(487)][n(504)]=n(510)+this[n(497)][n(521)][n(506)]()+n(501)})),this.el[e(520)]=()=>{const t=e;this[t(497)][t(512)][t(486)][t(492)]||this[t(497)][t(512)][t(486)][t(493)]||this[t(497)][t(521)][t(509)](0,!1,300)}}});function W$3(t,e){const n=M$3();return(W$3=function(t,e){return n[t-=324]})(t,e)}function M$3(){const t=["vm-control-floor-groups","836BchhOK","indexOf","WVIaP","vm-floor-name-normal","12UmPkeq","8OsEPXk",'">\n ',"showAllFloorButton","PyOVT","vm-scroll-up","length","contains","map","Mcquu","status","vm-layer-icon","BVmPJ",'\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: ',"QbRTI","style","gRQgo",'\n </div>\n <div class="vm-scroll vm-scroll-down" id="vm-scroll_down"></div>\n </div>\n ',".vm-floor-name-active","TVhpm","1474914GZsNIN","pJnyw","data","vm-scroll-down","ogNTS","QWFtG","className","5762862JWUPGz","WPrdj","#vm-scroll_down","innerHTML","eMduT",'" data-idx="',"center","bexKw","curentFloor","988732DrhxWj","parentElement","ykHaF",'" data-id="',"querySelector","name","classList","yBuPg","QmscK","tgLmU","target","createElement","xhSXW","vADUe","hdegz","bPZjS","vm-layer-one","TZyEv","div","FWmsL","UBprP","lUJox","appendChild","active","switchFloor","YSIuO",'<hr class="vm-floor-line">',"yQvFl","buildChange","RkgrD","vm-scroll-disable","add","dFFBh","config","scrollIntoView","1939440OTJTCo","evvQA","hGpXX","createDom",' \n <div class="vm-floor-name-container">\n <label class="vm-floor-name vm-floor-name-',"build","floor","vm-floor-name","\n </label>\n </div>\n ","GYiMZ","smooth","2018569QLyNpa","setManyFloorMode",' <div class="vm-layer"><div class="vm-layer-icon vm-layer-one"></div></div>',"61740eLzeNO","replace","522867vXbTeh","isNavi","EUerT","WDZRd","inset: 80px 20px auto auto;","setOneFloorMode","onclick","vm-floor-name-active","normal","vm-layer-many","fnmzD","QDBbi","isSimulate","floorButtonCount","cAiap","LgdVV","zArNh","cssText","ZgFgz","dataset","1DzcqMl",'px;">\n ',"QLgfl","#vm-scroll-up","221bLKJHX","floorChange","navi","5UyPxnJ","manyFloorMode","PEmfc","remove"];return(M$3=function(){return t})()}const J$1=W$3;!function(t,e){const n=W$3,i=t();for(;;)try{if(396701===parseInt(n(406))/1*(-parseInt(n(442))/2)+-parseInt(n(386))/3+-parseInt(n(335))/4*(-parseInt(n(413))/5)+-parseInt(n(422))/6*(parseInt(n(381))/7)+-parseInt(n(423))/8*(parseInt(n(326))/9)+parseInt(n(384))/10*(-parseInt(n(418))/11)+-parseInt(n(370))/12*(-parseInt(n(410))/13))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$3);let B$2=class{constructor(t){__publicField(this,_Dh),__publicField(this,_Ch),__publicField(this,"el");const e=J$1,n={YSIuO:e(409),Mcquu:function(t,e){return t===e},bPZjS:e(366),xhSXW:e(416),RkgrD:e(365),ZgFgz:e(328),EUerT:function(t,e){return t+e},WPrdj:function(t){return t()},dFFBh:function(t,e,n){return t(e,n)},GYiMZ:e(440),evvQA:e(380),ykHaF:e(332),WDZRd:e(377),fnmzD:function(t,e){return t!==e},BVmPJ:function(t,e){return t+e},PyOVT:e(433),UBprP:e(395),ogNTS:e(351),vADUe:e(427),zArNh:function(t,e){return t>e},bexKw:function(t,e){return t-e},QDBbi:e(445),QbRTI:function(t,e){return t<e},PEmfc:function(t,e){return t+e},WVIaP:function(t){return t()},QWFtG:e(353),tgLmU:e(417),LgdVV:e(390),cAiap:e(363),lUJox:e(411),hdegz:e(421),FWmsL:e(393)};this[e(430)]=t[e(430)],this[e(368)]=t,this.el=document[e(346)](n[e(324)]),this.el[e(325)]=n[e(344)],this[e(430)].el[e(357)](this.el),this.el[e(437)][e(403)]=this[e(368)][e(437)]||n[e(401)];const i=()=>{var t,i,r,s;const a=e;if(!this[a(430)][a(432)][a(375)])return;let o=null==(t=this[a(430)][a(432)][a(375)])?void 0:t[a(444)][a(376)][a(419)](this[a(430)][a(432)][a(375)][a(334)][a(444)]);null==(i=document[a(339)](n[a(360)]))||i[a(341)][n[a(431)](o,0)?n[a(350)]:n[a(347)]](n[a(364)]),null==(s=document[a(339)](n[a(404)]))||s[a(341)][n[a(431)](n[a(388)](o,1),null==(r=this[a(430)][a(432)][a(375)])?void 0:r[a(444)][a(376)][a(428)])?n[a(350)]:n[a(347)]](n[a(364)])},r=()=>{const t=e;n[t(367)](setTimeout,(()=>{const e=t;this[e(373)](),n[e(327)](i)}),0)};n[e(420)](r),this[e(430)].on(n[e(400)],r),this[e(430)].on(n[e(356)],r);let s=n[e(349)],a=n[e(354)];this.el[e(392)]=t=>{var r,o,c,l,u,h,d,p,f,m,g,A;const y=e,v={gRQgo:n[y(379)],yBuPg:n[y(371)],QLgfl:n[y(337)]};if(!debug&&this[y(430)][y(412)][y(432)][y(387)]||this[y(430)][y(412)][y(432)][y(398)])return;let S=t[y(345)],b=S[y(341)];if(b[y(429)](n[y(389)])&&n[y(396)](S[y(405)].id,null==(r=this[y(430)][y(432)][y(375)])?void 0:r[y(334)][y(444)].id)&&(null==(o=this.el[y(339)](n[y(434)](".",a)))||o[y(341)][y(385)](a,s),b[y(385)](s,a),null==(c=this[y(430)][y(432)][y(375)])||c[y(359)](S[y(405)].id)),b[y(429)](n[y(426)])&&((null==(l=this[y(430)][y(432)][y(375)])?void 0:l[y(414)])?(this[y(430)][y(432)][y(375)][y(391)](),b[y(385)](n[y(355)],n[y(446)])):(null==(u=this[y(430)][y(432)][y(375)])||u[y(382)](),b[y(385)](n[y(446)],n[y(355)]))),b[y(429)](n[y(348)])){let t=null==(h=this[y(430)][y(432)][y(375)])?void 0:h[y(444)][y(376)][y(419)](this[y(430)][y(432)][y(375)][y(334)][y(444)]);n[y(402)](t,0)&&(null==(p=this[y(430)][y(432)][y(375)])||p[y(359)](null==(d=this[y(430)][y(432)][y(375)])?void 0:d[y(444)][y(376)][n[y(333)](t,1)].id))}if(b[y(429)](n[y(397)])){let t=null==(f=this[y(430)][y(432)][y(375)])?void 0:f[y(444)][y(376)][y(419)](this[y(430)][y(432)][y(375)][y(334)][y(444)]);n[y(436)](n[y(415)](t,1),null==(m=this[y(430)][y(432)][y(375)])?void 0:m[y(444)][y(376)][y(428)])&&(null==(A=this[y(430)][y(432)][y(375)])||A[y(359)](null==(g=this[y(430)][y(432)][y(375)])?void 0:g[y(444)][y(376)][n[y(388)](t,1)].id))}n[y(420)](i),n[y(367)](setTimeout,(()=>{var t,e;const n=y;null==(e=null==(t=this.el[n(339)](v[n(438)]))?void 0:t[n(336)])||e[n(369)]({behavior:v[n(342)],block:v[n(408)]})}),0)}}[(_Dh=J$1(368),_Ch=J$1(430),J$1(373))](){const t=J$1,e={hGpXX:function(t,e){return t+e},TZyEv:t(361),yQvFl:function(t,e){return t===e},pJnyw:t(358),TVhpm:t(394),eMduT:function(t,e){return t(e)},QmscK:function(t){return t()}};if(!this[t(430)][t(432)][t(375)])return void(this.el[t(329)]="");this.el[t(329)]=e[t(330)]((e=>(this[t(368)][t(425)]&&this[t(430)][t(432)][t(375)][t(444)][t(376)][t(428)]>1?t(383):"")+(t(435)+50*(this[t(368)][t(399)]||3)+t(407)+e+t(439))),e[t(343)]((()=>{const n=t;let i="";return this[n(430)][n(432)][n(375)][n(444)][n(376)][n(430)](((t,r)=>{const s=n;i+=e[s(372)](r?e[s(352)]:"",s(374)+(e[s(362)](t.id,this[s(430)][s(432)][s(375)][s(334)][s(444)].id)?e[s(443)]:e[s(441)])+s(338)+t.id+s(331)+r+s(424)+t[s(340)]+s(378))})),i})))}};function W$2(t,e){var n=M$2();return(W$2=function(t,e){return n[t-=441]})(t,e)}var w=W$2;function M$2(){var t=["onclick","479544fmulXk","VqlCl","vm-control-viewmode","className","2313421NtSjqa","div","440SgafNl","1809684gEQEIK","6UKNRCm","16lrAnUr","50vATpTG","1401147BLbuYy","GWYRm","UTJQk","map","config","HIALe","split","appendChild","style","createElement","innerHTML","7|5|3|4|8|1|2|6|0","viewMode","pgaYB","1945Bhxles","status","inset: 80px 20px auto auto;","setViewMode","DYVsO","cssText","218967sdWxAW","134414cBWbZT"];return(M$2=function(){return t})()}!function(t,e){for(var n=W$2,i=t();;)try{if(249454===parseInt(n(473))/1+parseInt(n(441))/2*(parseInt(n(449))/3)+-parseInt(n(447))/4*(-parseInt(n(466))/5)+parseInt(n(448))/6+parseInt(n(472))/7+-parseInt(n(450))/8*(-parseInt(n(452))/9)+parseInt(n(451))/10*(-parseInt(n(445))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$2);let B$1=(_Fh=w(456),_Eh=w(455),class{constructor(t){__publicField(this,_Fh),__publicField(this,_Eh),__publicField(this,"el");for(var e=w,n={VqlCl:e(463),HIALe:e(446),GWYRm:e(468),DYVsO:function(t,e){return t===e},pgaYB:e(443)},i=n[e(442)][e(458)]("|"),r=0;;){switch(i[r++]){case"0":this.el[e(474)]=t=>{var n=e;this[n(455)][n(469)](s[n(454)](this[n(455)][n(467)][n(464)],"2D")?"3D":"2D"),this.el[n(462)]=this[n(455)][n(467)][n(464)]};continue;case"1":this[e(455)].el[e(459)](this.el);continue;case"2":this.el[e(462)]=this[e(455)][e(467)][e(464)];continue;case"3":this[e(456)]=t;continue;case"4":this.el=document[e(461)](n[e(457)]);continue;case"5":this[e(455)]=t[e(455)];continue;case"6":this.el[e(460)][e(471)]=this[e(456)][e(460)]||n[e(453)];continue;case"7":var s={UTJQk:function(t,i){return n[e(470)](t,i)}};continue;case"8":this.el[e(444)]=n[e(465)];continue}break}}});const o$1=W$1;function M$1(){const t=["getZoom","WCyCl","TJQWm","4507700ErBUSB","60pEZidu","zfsJu","map","490BSRMDs","174792kIvRvB","vm-control-zoom","5237394fBKaPE",'\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 ',"vm-control-zoom-out","div","createElement","692945JzVdBo","target","665037GtSSKk","appendChild","2OCIxyN","inset: 200px 20px auto auto;","ZCjSP","createDom","contains","style","className","vm-control-zoom-in","onclick","classList","FSIaD","cssText","setZoom","amap","1266414mhQKOn","innerHTML","EbYqN","136AXzpXV","2014299LsyHcl","qcWnq","config"];return(M$1=function(){return t})()}function W$1(t,e){const n=M$1();return(W$1=function(t,e){return n[t-=251]})(t,e)}!function(t,e){const n=W$1,i=t();for(;;)try{if(715880===parseInt(n(277))/1*(-parseInt(n(251))/2)+parseInt(n(266))/3*(-parseInt(n(262))/4)+-parseInt(n(261))/5+-parseInt(n(268))/6+parseInt(n(255))/7+-parseInt(n(254))/8*(-parseInt(n(275))/9)+-parseInt(n(265))/10*(-parseInt(n(273))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$1);class B{constructor(t){__publicField(this,_Hh),__publicField(this,_Gh),__publicField(this,"el");const e=o$1,n={zfsJu:e(284),TJQWm:function(t,e){return t+e},FSIaD:e(270),ZCjSP:function(t,e){return t-e},WCyCl:e(271),qcWnq:e(267),EbYqN:e(278)};this[e(264)]=t[e(264)],this[e(257)]=t,this.el=document[e(272)](n[e(259)]),this.el[e(283)]=n[e(256)],this[e(264)].el[e(276)](this.el),this[e(280)](),this.el[e(282)][e(288)]=this[e(257)][e(282)]||n[e(253)],this.el[e(285)]=t=>{const i=e;let r=t[i(274)][i(286)];r[i(281)](n[i(263)])?this[i(264)][i(290)][i(289)](n[i(260)](this[i(264)][i(290)][i(258)](),.5),300):r[i(281)](n[i(287)])&&this[i(264)][i(290)][i(289)](n[i(279)](this[i(264)][i(290)][i(258)](),.5),300)}}[(_Hh=o$1(257),_Gh=o$1(264),o$1(280))](){const t=o$1;this.el[t(252)]=t(269)}}function W(t,e){const n=M();return(W=function(t,e){return n[t-=361]})(t,e)}const J=W;function M(){const t=["19982wbOAkQ","4502682rZAVGw","184590MKsNvc","56931ylyskD","55hOzXlI","55fUxkDv","2025/10/16 16:23:36","1008MNdyJR","3416172cLBcwy","30wqHAkk","7119032QTsKhg","491236blyiOy","5GmMXLv"];return(M=function(){return t})()}!function(t,e){const n=W,i=t();for(;;)try{if(764142===-parseInt(n(370))/1*(-parseInt(n(365))/2)+-parseInt(n(366))/3+parseInt(n(363))/4*(-parseInt(n(364))/5)+-parseInt(n(372))/6*(-parseInt(n(368))/7)+-parseInt(n(362))/8+parseInt(n(367))/9*(-parseInt(n(361))/10)+-parseInt(n(369))/11*(-parseInt(n(373))/12))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M);const o={THREE:n$j,TWEEN:C$g,EffectComposer,RenderPass,ShaderPass,EnterType,CSS2DObject,CrossType,convert3dTo2d,gltfLoader,texureLoader,FloorControl:B$2,ZoomControl:B,RoadLine,ViewModeControl:B$1,Compass:B$3,Map:s,FatLine,setSize,TextSprite,version:J(371)};return o}));