From 8e27e4d91d171fdca6522f4297ff30d0fdedccd0 Mon Sep 17 00:00:00 2001 From: 622eda98dfef6c4fdb84ccca <622eda98dfef6c4fdb84ccca@devide> Date: Wed, 22 Mar 2023 09:40:08 +0000 Subject: [PATCH] Auto commit --- .gitignore | 1 - .inscode | 2 +- dist/assets/bedrock.3e3a8330.png | Bin 0 -> 446 bytes dist/assets/coal_ore.29c9a29e.png | Bin 0 -> 467 bytes dist/assets/diamond.b6171099.png | Bin 0 -> 4134 bytes dist/assets/diamond_block.fb45cc99.png | Bin 0 -> 429 bytes dist/assets/dirt.fb045025.png | Bin 0 -> 266 bytes dist/assets/dirt1.55a610c8.ogg | Bin 0 -> 6851 bytes dist/assets/dirt2.60ebf0ed.ogg | Bin 0 -> 7501 bytes dist/assets/dirt3.ab5e4b40.ogg | Bin 0 -> 6905 bytes dist/assets/dirt4.fd4aa755.ogg | Bin 0 -> 6728 bytes dist/assets/generate.707bb76c.js | 3014 +++++++++++++++++++ dist/assets/glass.17e849a2.png | Bin 0 -> 212 bytes dist/assets/glass.3e48b289.png | Bin 0 -> 1712 bytes dist/assets/grass.020eb145.png | Bin 0 -> 5531 bytes dist/assets/grass1.3619fdb8.ogg | Bin 0 -> 7468 bytes dist/assets/grass2.b0763cf2.ogg | Bin 0 -> 7691 bytes dist/assets/grass3.9ac02803.ogg | Bin 0 -> 7194 bytes dist/assets/grass4.dd733357.ogg | Bin 0 -> 7163 bytes dist/assets/grass_block_side.1f5d4845.png | Bin 0 -> 408 bytes dist/assets/grass_top_green.be9cf310.png | Bin 0 -> 3617 bytes dist/assets/hal3.2642662e.ogg | Bin 0 -> 1923269 bytes dist/assets/index.3d64fa62.js | 63 + dist/assets/index.3d64fa62.js.map | 1 + dist/assets/index.648ad158.css | 1 + dist/assets/iron_ore.78230e9e.png | Bin 0 -> 541 bytes dist/assets/leaf1.74400cfe.ogg | Bin 0 -> 14501 bytes dist/assets/leaf2.b7636085.ogg | Bin 0 -> 18850 bytes dist/assets/leaf3.6228533c.ogg | Bin 0 -> 17529 bytes dist/assets/leaf4.72db3634.ogg | Bin 0 -> 15743 bytes dist/assets/mc-font.c5bcd562.otf | Bin 0 -> 11016 bytes dist/assets/mc.5fa29ff9.ico | Bin 0 -> 1989 bytes dist/assets/menu.e25a1d96.jpeg | Bin 0 -> 44989 bytes dist/assets/oak_leaves.776aee85.png | Bin 0 -> 457 bytes dist/assets/oak_log.fc1a2462.png | Bin 0 -> 404 bytes dist/assets/oak_log_top.6a68c340.png | Bin 0 -> 426 bytes dist/assets/oak_planks.be4a7f91.png | Bin 0 -> 444 bytes dist/assets/quartz.9ffd1d51.png | Bin 0 -> 3300 bytes dist/assets/quartz_block_side.0e4d401c.png | Bin 0 -> 212 bytes dist/assets/sand.f4bf1751.png | Bin 0 -> 445 bytes dist/assets/sand1.1260ef32.ogg | Bin 0 -> 5543 bytes dist/assets/sand2.74ef2fa1.ogg | Bin 0 -> 5553 bytes dist/assets/sand3.0441e996.ogg | Bin 0 -> 5552 bytes dist/assets/sand4.42ac9116.ogg | Bin 0 -> 5491 bytes dist/assets/stone.53e38748.png | Bin 0 -> 9189 bytes dist/assets/stone.fa5e82cb.png | Bin 0 -> 316 bytes dist/assets/stone1.97f2a8a7.ogg | Bin 0 -> 6695 bytes dist/assets/stone2.98a5c319.ogg | Bin 0 -> 6728 bytes dist/assets/stone3.19273f0e.ogg | Bin 0 -> 6627 bytes dist/assets/stone4.b164e732.ogg | Bin 0 -> 6516 bytes dist/assets/tree.98a9b0d4.png | Bin 0 -> 8628 bytes dist/assets/tree1.cb6071c8.ogg | Bin 0 -> 6541 bytes dist/assets/tree2.59edca84.ogg | Bin 0 -> 6294 bytes dist/assets/tree3.cf6be231.ogg | Bin 0 -> 6604 bytes dist/assets/tree4.de868b31.ogg | Bin 0 -> 6817 bytes dist/assets/vendor.b16e062d.js | 3015 ++++++++++++++++++++ dist/assets/vendor.b16e062d.js.map | 1 + dist/assets/wood.9768871f.png | Bin 0 -> 4414 bytes dist/index.html | 96 + package.json | 2 +- vite.config.ts | 13 +- 61 files changed, 6199 insertions(+), 10 deletions(-) create mode 100644 dist/assets/bedrock.3e3a8330.png create mode 100644 dist/assets/coal_ore.29c9a29e.png create mode 100644 dist/assets/diamond.b6171099.png create mode 100644 dist/assets/diamond_block.fb45cc99.png create mode 100644 dist/assets/dirt.fb045025.png create mode 100644 dist/assets/dirt1.55a610c8.ogg create mode 100644 dist/assets/dirt2.60ebf0ed.ogg create mode 100644 dist/assets/dirt3.ab5e4b40.ogg create mode 100644 dist/assets/dirt4.fd4aa755.ogg create mode 100644 dist/assets/generate.707bb76c.js create mode 100644 dist/assets/glass.17e849a2.png create mode 100644 dist/assets/glass.3e48b289.png create mode 100644 dist/assets/grass.020eb145.png create mode 100644 dist/assets/grass1.3619fdb8.ogg create mode 100644 dist/assets/grass2.b0763cf2.ogg create mode 100644 dist/assets/grass3.9ac02803.ogg create mode 100644 dist/assets/grass4.dd733357.ogg create mode 100644 dist/assets/grass_block_side.1f5d4845.png create mode 100644 dist/assets/grass_top_green.be9cf310.png create mode 100644 dist/assets/hal3.2642662e.ogg create mode 100644 dist/assets/index.3d64fa62.js create mode 100644 dist/assets/index.3d64fa62.js.map create mode 100644 dist/assets/index.648ad158.css create mode 100644 dist/assets/iron_ore.78230e9e.png create mode 100644 dist/assets/leaf1.74400cfe.ogg create mode 100644 dist/assets/leaf2.b7636085.ogg create mode 100644 dist/assets/leaf3.6228533c.ogg create mode 100644 dist/assets/leaf4.72db3634.ogg create mode 100644 dist/assets/mc-font.c5bcd562.otf create mode 100644 dist/assets/mc.5fa29ff9.ico create mode 100644 dist/assets/menu.e25a1d96.jpeg create mode 100644 dist/assets/oak_leaves.776aee85.png create mode 100644 dist/assets/oak_log.fc1a2462.png create mode 100644 dist/assets/oak_log_top.6a68c340.png create mode 100644 dist/assets/oak_planks.be4a7f91.png create mode 100644 dist/assets/quartz.9ffd1d51.png create mode 100644 dist/assets/quartz_block_side.0e4d401c.png create mode 100644 dist/assets/sand.f4bf1751.png create mode 100644 dist/assets/sand1.1260ef32.ogg create mode 100644 dist/assets/sand2.74ef2fa1.ogg create mode 100644 dist/assets/sand3.0441e996.ogg create mode 100644 dist/assets/sand4.42ac9116.ogg create mode 100644 dist/assets/stone.53e38748.png create mode 100644 dist/assets/stone.fa5e82cb.png create mode 100644 dist/assets/stone1.97f2a8a7.ogg create mode 100644 dist/assets/stone2.98a5c319.ogg create mode 100644 dist/assets/stone3.19273f0e.ogg create mode 100644 dist/assets/stone4.b164e732.ogg create mode 100644 dist/assets/tree.98a9b0d4.png create mode 100644 dist/assets/tree1.cb6071c8.ogg create mode 100644 dist/assets/tree2.59edca84.ogg create mode 100644 dist/assets/tree3.cf6be231.ogg create mode 100644 dist/assets/tree4.de868b31.ogg create mode 100644 dist/assets/vendor.b16e062d.js create mode 100644 dist/assets/vendor.b16e062d.js.map create mode 100644 dist/assets/wood.9768871f.png create mode 100644 dist/index.html diff --git a/.gitignore b/.gitignore index 15928bf..8071db5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ node_modules .DS_Store -dist dist-ssr *.local *-lock.yaml diff --git a/.inscode b/.inscode index 3b99d97..97bb3c5 100644 --- a/.inscode +++ b/.inscode @@ -1,4 +1,4 @@ -run = "upm add guess;npm run dev" +run = "dist/index.html" entrypoint = "index.ts" [nix] diff --git a/dist/assets/bedrock.3e3a8330.png b/dist/assets/bedrock.3e3a8330.png new file mode 100644 index 0000000000000000000000000000000000000000..3192fc763524cdd7daa2df0b4eb6ce37a1723628 GIT binary patch literal 446 zcmV;v0YUzWP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004nNkl<ZIE`(S zA+m!o6h#mG${1W_hsgpMnwY9ApdL|47V>?!fbA|S@QpyVh9z_clbJgBqLWPMFA9>E zckaD;WNq6n!!VFOQc8?5IOp)*V~nBid&Y5$`{OtwrQ|2i^WUnf*lxERk4NTt=5RRR zoI@$a^?IeQYj(RG^E~r-Jb1lcu}QYy@0V$sD2f7r^c}!jOV@QsDdSpDB!nPqnq~=d z0lfFzZa1{nu@H#zKdokESuRCUMABzLI9OE`N-2N{8;0R+A(a=xNvYE`p|$?ERulyr zYi;c6y<d@p5P0tqLaf%5QgmI%G)?aezR|zYQd?D3;k{>*c25sUDUnjH=;3OOF|j^t znr8VVrGt{v(wnf>;+!LE+jaq>uQY?;Gu%>moO6Wf&C0S|Lc*UGQu$$U0u11MKC{tU zucUpGtCU)O2fEh!Z9yp&1M2%ePGWi}%_mhBGf1iF1b(xU?)~I>{u}<VKsudH)OF1~ o&)n~Kgb+NRPcD~BtP73*0QDsg`R&_56#xJL07*qoM6N<$f{vfg6aWAK literal 0 HcmV?d00001 diff --git a/dist/assets/coal_ore.29c9a29e.png b/dist/assets/coal_ore.29c9a29e.png new file mode 100644 index 0000000000000000000000000000000000000000..a62d6c1e84039f5c4d75138fe21b6a006ff8bdd2 GIT binary patch literal 467 zcmV;^0WAKBP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004+Nkl<ZIE`JC zA+qx@41~YF$&}c@EFcHS^Z+GAkB5}!FgZd`kt37`l@t|u0tyYn1Z)!0A9SSg`-Ku) zE3J0r!|itahzI~71Vn^V3INVIN-5-=@!s262my^o!3x^8jlS<KL5u2L&Y5l7Xxo-j z3XOtu&g7hlG2*?)Imfnb0M@;2Tb5<9Z|59M2*D_c2z}pM#~34}6oz3iCcnSGgb+w6 zeMd+s;heKElnuc7e5UI<L<G%Kuws5{QJiz+oO!?B#29hTnW(SVi)C3zDUoxgltKuB zM#TeoJRa=(ZvXfDopBri*!P`M3eGv}E+StMRjkY9V#;f*>k7c>bi#X2DTS`<?Ea_g zI%15(82{LoQes_K8>eks8&gG2DRG#l=~Dx1kDt#c^@!?*hKSH8K$X=!$T=HrrM#}| zp9TO;O${)g>sZ$n@4fBCIF82HHW4uYwLnUV=kv+&cr<sMbIkM1Fbv;S)=d-<o4ICn zy<VB;*)&iq_5LtT)2DuY|BF;Js$Z(+H}(8ANc|QOJF9cG=sz!@DYdbpIsE_t002ov JPDHLkV1huY*Vh05 literal 0 HcmV?d00001 diff --git a/dist/assets/diamond.b6171099.png b/dist/assets/diamond.b6171099.png new file mode 100644 index 0000000000000000000000000000000000000000..302f2fbbc92519918b094a1591c3d35d8e23a664 GIT binary patch literal 4134 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 DT1o0G literal 0 HcmV?d00001 diff --git a/dist/assets/diamond_block.fb45cc99.png b/dist/assets/diamond_block.fb45cc99.png new file mode 100644 index 0000000000000000000000000000000000000000..2b81f48356c894c609f509546e3e156196e82845 GIT binary patch literal 429 zcmV;e0aE^nP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004WNkl<ZIE{Ui zu};G<5Qe|hA$3|Mq9B&+T{?6{-Pjp<hBEUUyaEz^7Y0y~SSqnIKo-i<D8y|Pg~74w zq`+-w-*^7+x9weir8Q1$GM&becd%x{>^;A};RD>B95W#VU@=+)aPAE)upH$8JQWIn zo53jn7oZzV2)X`#2VfXP%>966y@ygI8Wla_$m1^9G4}&74NP?5RdocYmh5pn(5jjm zf0NZLMr(#a#8i|l>(avcE+bU}fJ9adg9w0pmq94o3Z|m8N`8Z9p#(}h(&BT+Ru%N( z$ZHv<W$SSgSvhdm4-P#ru$9>~T2-_Zxt{bkS<SM}|AgJ#g%erPmmxhm@gJPX3fSKS zpc|M6Vv1*>WGc#olL4+qT4}0;Hqj(5Y?`J@*tt_B?4H}WW#Zp%3&!!FWv21K2mM*b zaocV8Qzf#pry51ZBi|IgeB{m59KtSWUgT7i+^Yib?BTHn*s6lQ)IV~o3OiPJt(*S< X`@7&diX$;j00000NkvXXu0mjf%sIZN literal 0 HcmV?d00001 diff --git a/dist/assets/dirt.fb045025.png b/dist/assets/dirt.fb045025.png new file mode 100644 index 0000000000000000000000000000000000000000..617d353e0d67a14a2952b2a98375eb8a50b97d79 GIT binary patch literal 266 zcmV+l0rmcgP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002dNkl<Zc-nQ6 zu?<2o3`D&SD<IKP(IbJx2q|e80R0Wvh3P;S>7w`V=NDEI+d2EruJ8Nt`?O29*Y((K z=DVK`tGLh7MTtz%ds&v@Ga&DZ$;xQ1!Z)iihj}Hm*4l8eo1~Im3;+ie&}VWdpbDk0 z+*Vd{tJH?~A!2frcub(;r0KIVImhR2X8sP4PM&T#KQlJngXEsPNu_c;<ZNL3NyS># zj2A0tbfmyB_f1S^g6x^QT2YWaZ|9A0rZL;l$|NdG{#j@PkUL<J_U7*bfA)nat9qBH QSpWb407*qoM6N<$f~2*1VgLXD literal 0 HcmV?d00001 diff --git a/dist/assets/dirt1.55a610c8.ogg b/dist/assets/dirt1.55a610c8.ogg new file mode 100644 index 0000000000000000000000000000000000000000..97ae71e0923f814e006b275606d26d28a8c047a2 GIT binary patch literal 6851 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 B6-EF6 literal 0 HcmV?d00001 diff --git a/dist/assets/dirt2.60ebf0ed.ogg b/dist/assets/dirt2.60ebf0ed.ogg new file mode 100644 index 0000000000000000000000000000000000000000..5133141161422bfdf3c12e71e1d32385a15c3254 GIT binary patch literal 7501 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 JtpG;g{{bZDY|sDz literal 0 HcmV?d00001 diff --git a/dist/assets/dirt3.ab5e4b40.ogg b/dist/assets/dirt3.ab5e4b40.ogg new file mode 100644 index 0000000000000000000000000000000000000000..1b8debd795fe93955bbc8a0727029a1839c7df5f GIT binary patch literal 6905 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 literal 0 HcmV?d00001 diff --git a/dist/assets/dirt4.fd4aa755.ogg b/dist/assets/dirt4.fd4aa755.ogg new file mode 100644 index 0000000000000000000000000000000000000000..94a0c1cbe86bb36a87ba7114e60e60d37a3f9302 GIT binary patch literal 6728 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 literal 0 HcmV?d00001 diff --git a/dist/assets/generate.707bb76c.js b/dist/assets/generate.707bb76c.js new file mode 100644 index 0000000..f74c22b --- /dev/null +++ b/dist/assets/generate.707bb76c.js @@ -0,0 +1,3014 @@ +var _f=Object.defineProperty;var xf=(Ht,$t,bn)=>$t in Ht?_f(Ht,$t,{enumerable:!0,configurable:!0,writable:!0,value:bn}):Ht[$t]=bn;var $e=(Ht,$t,bn)=>(xf(Ht,typeof $t!="symbol"?$t+"":$t,bn),bn);(function(){"use strict";/** + * @license + * Copyright 2010-2022 Three.js Authors + * SPDX-License-Identifier: MIT + */const Ht="137",ws="300 es";class pn{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});const n=this._listeners;n[e]===void 0&&(n[e]=[]),n[e].indexOf(t)===-1&&n[e].push(t)}hasEventListener(e,t){if(this._listeners===void 0)return!1;const n=this._listeners;return n[e]!==void 0&&n[e].indexOf(t)!==-1}removeEventListener(e,t){if(this._listeners===void 0)return;const i=this._listeners[e];if(i!==void 0){const r=i.indexOf(t);r!==-1&&i.splice(r,1)}}dispatchEvent(e){if(this._listeners===void 0)return;const n=this._listeners[e.type];if(n!==void 0){e.target=this;const i=n.slice(0);for(let r=0,a=i.length;r<a;r++)i[r].call(this,e);e.target=null}}}const ot=[];for(let s=0;s<256;s++)ot[s]=(s<16?"0":"")+s.toString(16);const _r=Math.PI/180,xr=180/Math.PI;function Dt(){const s=Math.random()*4294967295|0,e=Math.random()*4294967295|0,t=Math.random()*4294967295|0,n=Math.random()*4294967295|0;return(ot[s&255]+ot[s>>8&255]+ot[s>>16&255]+ot[s>>24&255]+"-"+ot[e&255]+ot[e>>8&255]+"-"+ot[e>>16&15|64]+ot[e>>24&255]+"-"+ot[t&63|128]+ot[t>>8&255]+"-"+ot[t>>16&255]+ot[t>>24&255]+ot[n&255]+ot[n>>8&255]+ot[n>>16&255]+ot[n>>24&255]).toUpperCase()}function xt(s,e,t){return Math.max(e,Math.min(t,s))}function bo(s,e){return(s%e+e)%e}function vr(s,e,t){return(1-t)*s+t*e}function Ts(s){return(s&s-1)===0&&s!==0}function wo(s){return Math.pow(2,Math.floor(Math.log(s)/Math.LN2))}class J{constructor(e=0,t=0){this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e,t){return t!==void 0?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this)}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e,t){return t!==void 0?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this)}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,n=this.y,i=e.elements;return this.x=i[0]*t+i[3]*n+i[6],this.y=i[1]*t+i[4]*n+i[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,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=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.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}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,n=this.y-e.y;return t*t+n*n}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t,n){return n!==void 0&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const n=Math.cos(t),i=Math.sin(t),r=this.x-e.x,a=this.y-e.y;return this.x=r*n-a*i+e.x,this.y=r*i+a*n+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}J.prototype.isVector2=!0;class lt{constructor(){this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}set(e,t,n,i,r,a,o,c,l){const h=this.elements;return h[0]=e,h[1]=i,h[2]=o,h[3]=t,h[4]=r,h[5]=c,h[6]=n,h[7]=a,h[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],this}extractBasis(e,t,n){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const n=e.elements,i=t.elements,r=this.elements,a=n[0],o=n[3],c=n[6],l=n[1],h=n[4],u=n[7],d=n[2],p=n[5],g=n[8],_=i[0],M=i[3],m=i[6],f=i[1],E=i[4],y=i[7],T=i[2],R=i[5],C=i[8];return r[0]=a*_+o*f+c*T,r[3]=a*M+o*E+c*R,r[6]=a*m+o*y+c*C,r[1]=l*_+h*f+u*T,r[4]=l*M+h*E+u*R,r[7]=l*m+h*y+u*C,r[2]=d*_+p*f+g*T,r[5]=d*M+p*E+g*R,r[8]=d*m+p*y+g*C,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],a=e[4],o=e[5],c=e[6],l=e[7],h=e[8];return t*a*h-t*o*l-n*r*h+n*o*c+i*r*l-i*a*c}invert(){const e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],a=e[4],o=e[5],c=e[6],l=e[7],h=e[8],u=h*a-o*l,d=o*c-h*r,p=l*r-a*c,g=t*u+n*d+i*p;if(g===0)return this.set(0,0,0,0,0,0,0,0,0);const _=1/g;return e[0]=u*_,e[1]=(i*l-h*n)*_,e[2]=(o*n-i*a)*_,e[3]=d*_,e[4]=(h*t-i*c)*_,e[5]=(i*r-o*t)*_,e[6]=p*_,e[7]=(n*c-l*t)*_,e[8]=(a*t-n*r)*_,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,n,i,r,a,o){const c=Math.cos(r),l=Math.sin(r);return this.set(n*c,n*l,-n*(c*a+l*o)+a+e,-i*l,i*c,-i*(-l*a+c*o)+o+t,0,0,1),this}scale(e,t){const n=this.elements;return n[0]*=e,n[3]*=e,n[6]*=e,n[1]*=t,n[4]*=t,n[7]*=t,this}rotate(e){const t=Math.cos(e),n=Math.sin(e),i=this.elements,r=i[0],a=i[3],o=i[6],c=i[1],l=i[4],h=i[7];return i[0]=t*r+n*c,i[3]=t*a+n*l,i[6]=t*o+n*h,i[1]=-n*r+t*c,i[4]=-n*a+t*l,i[7]=-n*o+t*h,this}translate(e,t){const n=this.elements;return n[0]+=e*n[2],n[3]+=e*n[5],n[6]+=e*n[8],n[1]+=t*n[2],n[4]+=t*n[5],n[7]+=t*n[8],this}equals(e){const t=this.elements,n=e.elements;for(let i=0;i<9;i++)if(t[i]!==n[i])return!1;return!0}fromArray(e,t=0){for(let n=0;n<9;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){const n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e}clone(){return new this.constructor().fromArray(this.elements)}}lt.prototype.isMatrix3=!0;function Es(s){for(let e=s.length-1;e>=0;--e)if(s[e]>65535)return!0;return!1}function ii(s){return document.createElementNS("http://www.w3.org/1999/xhtml",s)}const As={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},Et={h:0,s:0,l:0},Ei={h:0,s:0,l:0};function yr(s,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?s+(e-s)*6*t:t<1/2?e:t<2/3?s+(e-s)*6*(2/3-t):s}function wn(s){return s<.04045?s*.0773993808:Math.pow(s*.9478672986+.0521327014,2.4)}function Mr(s){return s<.0031308?s*12.92:1.055*Math.pow(s,.41666)-.055}class me{constructor(e,t,n){return t===void 0&&n===void 0?this.set(e):this.setRGB(e,t,n)}set(e){return e&&e.isColor?this.copy(e):typeof e=="number"?this.setHex(e):typeof e=="string"&&this.setStyle(e),this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,this}setRGB(e,t,n){return this.r=e,this.g=t,this.b=n,this}setHSL(e,t,n){if(e=bo(e,1),t=xt(t,0,1),n=xt(n,0,1),t===0)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+t):n+t-n*t,r=2*n-i;this.r=yr(r,i,e+1/3),this.g=yr(r,i,e),this.b=yr(r,i,e-1/3)}return this}setStyle(e){function t(i){i!==void 0&&parseFloat(i)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let n;if(n=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(e)){let i;const r=n[1],a=n[2];switch(r){case"rgb":case"rgba":if(i=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return this.r=Math.min(255,parseInt(i[1],10))/255,this.g=Math.min(255,parseInt(i[2],10))/255,this.b=Math.min(255,parseInt(i[3],10))/255,t(i[4]),this;if(i=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return this.r=Math.min(100,parseInt(i[1],10))/100,this.g=Math.min(100,parseInt(i[2],10))/100,this.b=Math.min(100,parseInt(i[3],10))/100,t(i[4]),this;break;case"hsl":case"hsla":if(i=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a)){const o=parseFloat(i[1])/360,c=parseInt(i[2],10)/100,l=parseInt(i[3],10)/100;return t(i[4]),this.setHSL(o,c,l)}break}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(e)){const i=n[1],r=i.length;if(r===3)return this.r=parseInt(i.charAt(0)+i.charAt(0),16)/255,this.g=parseInt(i.charAt(1)+i.charAt(1),16)/255,this.b=parseInt(i.charAt(2)+i.charAt(2),16)/255,this;if(r===6)return this.r=parseInt(i.charAt(0)+i.charAt(1),16)/255,this.g=parseInt(i.charAt(2)+i.charAt(3),16)/255,this.b=parseInt(i.charAt(4)+i.charAt(5),16)/255,this}return e&&e.length>0?this.setColorName(e):this}setColorName(e){const t=As[e.toLowerCase()];return t!==void 0?this.setHex(t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=wn(e.r),this.g=wn(e.g),this.b=wn(e.b),this}copyLinearToSRGB(e){return this.r=Mr(e.r),this.g=Mr(e.g),this.b=Mr(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return this.r*255<<16^this.g*255<<8^this.b*255<<0}getHexString(){return("000000"+this.getHex().toString(16)).slice(-6)}getHSL(e){const t=this.r,n=this.g,i=this.b,r=Math.max(t,n,i),a=Math.min(t,n,i);let o,c;const l=(a+r)/2;if(a===r)o=0,c=0;else{const h=r-a;switch(c=l<=.5?h/(r+a):h/(2-r-a),r){case t:o=(n-i)/h+(n<i?6:0);break;case n:o=(i-t)/h+2;break;case i:o=(t-n)/h+4;break}o/=6}return e.h=o,e.s=c,e.l=l,e}getStyle(){return"rgb("+(this.r*255|0)+","+(this.g*255|0)+","+(this.b*255|0)+")"}offsetHSL(e,t,n){return this.getHSL(Et),Et.h+=e,Et.s+=t,Et.l+=n,this.setHSL(Et.h,Et.s,Et.l),this}add(e){return this.r+=e.r,this.g+=e.g,this.b+=e.b,this}addColors(e,t){return this.r=e.r+t.r,this.g=e.g+t.g,this.b=e.b+t.b,this}addScalar(e){return this.r+=e,this.g+=e,this.b+=e,this}sub(e){return this.r=Math.max(0,this.r-e.r),this.g=Math.max(0,this.g-e.g),this.b=Math.max(0,this.b-e.b),this}multiply(e){return this.r*=e.r,this.g*=e.g,this.b*=e.b,this}multiplyScalar(e){return this.r*=e,this.g*=e,this.b*=e,this}lerp(e,t){return this.r+=(e.r-this.r)*t,this.g+=(e.g-this.g)*t,this.b+=(e.b-this.b)*t,this}lerpColors(e,t,n){return this.r=e.r+(t.r-e.r)*n,this.g=e.g+(t.g-e.g)*n,this.b=e.b+(t.b-e.b)*n,this}lerpHSL(e,t){this.getHSL(Et),e.getHSL(Ei);const n=vr(Et.h,Ei.h,t),i=vr(Et.s,Ei.s,t),r=vr(Et.l,Ei.l,t);return this.setHSL(n,i,r),this}equals(e){return e.r===this.r&&e.g===this.g&&e.b===this.b}fromArray(e,t=0){return this.r=e[t],this.g=e[t+1],this.b=e[t+2],this}toArray(e=[],t=0){return e[t]=this.r,e[t+1]=this.g,e[t+2]=this.b,e}fromBufferAttribute(e,t){return this.r=e.getX(t),this.g=e.getY(t),this.b=e.getZ(t),e.normalized===!0&&(this.r/=255,this.g/=255,this.b/=255),this}toJSON(){return this.getHex()}}me.NAMES=As,me.prototype.isColor=!0,me.prototype.r=1,me.prototype.g=1,me.prototype.b=1;let Tn;class mn{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement=="undefined")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{Tn===void 0&&(Tn=ii("canvas")),Tn.width=e.width,Tn.height=e.height;const n=Tn.getContext("2d");e instanceof ImageData?n.putImageData(e,0,0):n.drawImage(e,0,0,e.width,e.height),t=Tn}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&e instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap){const t=ii("canvas");t.width=e.width,t.height=e.height;const n=t.getContext("2d");n.drawImage(e,0,0,e.width,e.height);const i=n.getImageData(0,0,e.width,e.height),r=i.data;for(let a=0;a<r.length;a++)r[a]=wn(r[a]/255)*255;return n.putImageData(i,0,0),t}else if(e.data){const t=e.data.slice(0);for(let n=0;n<t.length;n++)t instanceof Uint8Array||t instanceof Uint8ClampedArray?t[n]=Math.floor(wn(t[n]/255)*255):t[n]=wn(t[n]);return{data:t,width:e.width,height:e.height}}else return console.warn("THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied."),e}}let To=0;class rt extends pn{constructor(e=rt.DEFAULT_IMAGE,t=rt.DEFAULT_MAPPING,n=1001,i=1001,r=1006,a=1008,o=1023,c=1009,l=1,h=3e3){super();Object.defineProperty(this,"id",{value:To++}),this.uuid=Dt(),this.name="",this.image=e,this.mipmaps=[],this.mapping=t,this.wrapS=n,this.wrapT=i,this.magFilter=r,this.minFilter=a,this.anisotropy=l,this.format=o,this.internalFormat=null,this.type=c,this.offset=new J(0,0),this.repeat=new J(1,1),this.center=new J(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new lt,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=h,this.userData={},this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1,this.needsPMREMUpdate=!1}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(e){return this.name=e.name,this.image=e.image,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.encoding=e.encoding,this.userData=JSON.parse(JSON.stringify(e.userData)),this}toJSON(e){const t=e===void 0||typeof e=="string";if(!t&&e.textures[this.uuid]!==void 0)return e.textures[this.uuid];const n={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,mapping:this.mapping,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,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(this.image!==void 0){const i=this.image;if(i.uuid===void 0&&(i.uuid=Dt()),!t&&e.images[i.uuid]===void 0){let r;if(Array.isArray(i)){r=[];for(let a=0,o=i.length;a<o;a++)i[a].isDataTexture?r.push(Sr(i[a].image)):r.push(Sr(i[a]))}else r=Sr(i);e.images[i.uuid]={uuid:i.uuid,url:r}}n.image=i.uuid}return JSON.stringify(this.userData)!=="{}"&&(n.userData=this.userData),t||(e.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==300)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case 1e3:e.x=e.x-Math.floor(e.x);break;case 1001:e.x=e.x<0?0:1;break;case 1002:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case 1e3:e.y=e.y-Math.floor(e.y);break;case 1001:e.y=e.y<0?0:1;break;case 1002:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&this.version++}}rt.DEFAULT_IMAGE=void 0,rt.DEFAULT_MAPPING=300,rt.prototype.isTexture=!0;function Sr(s){return typeof HTMLImageElement!="undefined"&&s instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&s instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&s instanceof ImageBitmap?mn.getDataURL(s):s.data?{data:Array.prototype.slice.call(s.data),width:s.width,height:s.height,type:s.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}class We{constructor(e=0,t=0,n=0,i=1){this.x=e,this.y=t,this.z=n,this.w=i}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,n,i){return this.x=e,this.y=t,this.z=n,this.w=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){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: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e,t){return t!==void 0?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this)}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e,t){return t!==void 0?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this)}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,n=this.y,i=this.z,r=this.w,a=e.elements;return this.x=a[0]*t+a[4]*n+a[8]*i+a[12]*r,this.y=a[1]*t+a[5]*n+a[9]*i+a[13]*r,this.z=a[2]*t+a[6]*n+a[10]*i+a[14]*r,this.w=a[3]*t+a[7]*n+a[11]*i+a[15]*r,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,n,i,r;const c=e.elements,l=c[0],h=c[4],u=c[8],d=c[1],p=c[5],g=c[9],_=c[2],M=c[6],m=c[10];if(Math.abs(h-d)<.01&&Math.abs(u-_)<.01&&Math.abs(g-M)<.01){if(Math.abs(h+d)<.1&&Math.abs(u+_)<.1&&Math.abs(g+M)<.1&&Math.abs(l+p+m-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const E=(l+1)/2,y=(p+1)/2,T=(m+1)/2,R=(h+d)/4,C=(u+_)/4,Z=(g+M)/4;return E>y&&E>T?E<.01?(n=0,i=.707106781,r=.707106781):(n=Math.sqrt(E),i=R/n,r=C/n):y>T?y<.01?(n=.707106781,i=0,r=.707106781):(i=Math.sqrt(y),n=R/i,r=Z/i):T<.01?(n=.707106781,i=.707106781,r=0):(r=Math.sqrt(T),n=C/r,i=Z/r),this.set(n,i,r,t),this}let f=Math.sqrt((M-g)*(M-g)+(u-_)*(u-_)+(d-h)*(d-h));return Math.abs(f)<.001&&(f=1),this.x=(M-g)/f,this.y=(u-_)/f,this.z=(d-h)/f,this.w=Math.acos((l+p+m-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,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=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.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(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this.w=e.w+(t.w-e.w)*n,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t,n){return n!==void 0&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),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}}We.prototype.isVector4=!0;class St extends pn{constructor(e,t,n={}){super();this.width=e,this.height=t,this.depth=1,this.scissor=new We(0,0,e,t),this.scissorTest=!1,this.viewport=new We(0,0,e,t),this.texture=new rt(void 0,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.isRenderTargetTexture=!0,this.texture.image={width:e,height:t,depth:1},this.texture.generateMipmaps=n.generateMipmaps!==void 0?n.generateMipmaps:!1,this.texture.internalFormat=n.internalFormat!==void 0?n.internalFormat:null,this.texture.minFilter=n.minFilter!==void 0?n.minFilter:1006,this.depthBuffer=n.depthBuffer!==void 0?n.depthBuffer:!0,this.stencilBuffer=n.stencilBuffer!==void 0?n.stencilBuffer:!1,this.depthTexture=n.depthTexture!==void 0?n.depthTexture:null}setTexture(e){e.image={width:this.width,height:this.height,depth:this.depth},this.texture=e}setSize(e,t,n=1){(this.width!==e||this.height!==t||this.depth!==n)&&(this.width=e,this.height=t,this.depth=n,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){return this.width=e.width,this.height=e.height,this.depth=e.depth,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.image=Object.assign({},e.texture.image),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,this.depthTexture=e.depthTexture,this}dispose(){this.dispatchEvent({type:"dispose"})}}St.prototype.isWebGLRenderTarget=!0;class Eo extends St{constructor(e,t,n){super(e,t);const i=this.texture;this.texture=[];for(let r=0;r<n;r++)this.texture[r]=i.clone()}setSize(e,t,n=1){if(this.width!==e||this.height!==t||this.depth!==n){this.width=e,this.height=t,this.depth=n;for(let i=0,r=this.texture.length;i<r;i++)this.texture[i].image.width=e,this.texture[i].image.height=t,this.texture[i].image.depth=n;this.dispose()}return this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t),this}copy(e){this.dispose(),this.width=e.width,this.height=e.height,this.depth=e.depth,this.viewport.set(0,0,this.width,this.height),this.scissor.set(0,0,this.width,this.height),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,this.depthTexture=e.depthTexture,this.texture.length=0;for(let t=0,n=e.texture.length;t<n;t++)this.texture[t]=e.texture[t].clone();return this}}Eo.prototype.isWebGLMultipleRenderTargets=!0;class br extends St{constructor(e,t,n={}){super(e,t,n);this.samples=4,this.ignoreDepthForMultisampleCopy=n.ignoreDepth!==void 0?n.ignoreDepth:!0,this.useRenderToTexture=n.useRenderToTexture!==void 0?n.useRenderToTexture:!1,this.useRenderbuffer=this.useRenderToTexture===!1}copy(e){return super.copy.call(this,e),this.samples=e.samples,this.useRenderToTexture=e.useRenderToTexture,this.useRenderbuffer=e.useRenderbuffer,this}}br.prototype.isWebGLMultisampleRenderTarget=!0;class mt{constructor(e=0,t=0,n=0,i=1){this._x=e,this._y=t,this._z=n,this._w=i}static slerp(e,t,n,i){return console.warn("THREE.Quaternion: Static .slerp() has been deprecated. Use qm.slerpQuaternions( qa, qb, t ) instead."),n.slerpQuaternions(e,t,i)}static slerpFlat(e,t,n,i,r,a,o){let c=n[i+0],l=n[i+1],h=n[i+2],u=n[i+3];const d=r[a+0],p=r[a+1],g=r[a+2],_=r[a+3];if(o===0){e[t+0]=c,e[t+1]=l,e[t+2]=h,e[t+3]=u;return}if(o===1){e[t+0]=d,e[t+1]=p,e[t+2]=g,e[t+3]=_;return}if(u!==_||c!==d||l!==p||h!==g){let M=1-o;const m=c*d+l*p+h*g+u*_,f=m>=0?1:-1,E=1-m*m;if(E>Number.EPSILON){const T=Math.sqrt(E),R=Math.atan2(T,m*f);M=Math.sin(M*R)/T,o=Math.sin(o*R)/T}const y=o*f;if(c=c*M+d*y,l=l*M+p*y,h=h*M+g*y,u=u*M+_*y,M===1-o){const T=1/Math.sqrt(c*c+l*l+h*h+u*u);c*=T,l*=T,h*=T,u*=T}}e[t]=c,e[t+1]=l,e[t+2]=h,e[t+3]=u}static multiplyQuaternionsFlat(e,t,n,i,r,a){const o=n[i],c=n[i+1],l=n[i+2],h=n[i+3],u=r[a],d=r[a+1],p=r[a+2],g=r[a+3];return e[t]=o*g+h*u+c*p-l*d,e[t+1]=c*g+h*d+l*u-o*p,e[t+2]=l*g+h*p+o*d-c*u,e[t+3]=h*g-o*u-c*d-l*p,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,n,i){return this._x=e,this._y=t,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t){if(!(e&&e.isEuler))throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");const n=e._x,i=e._y,r=e._z,a=e._order,o=Math.cos,c=Math.sin,l=o(n/2),h=o(i/2),u=o(r/2),d=c(n/2),p=c(i/2),g=c(r/2);switch(a){case"XYZ":this._x=d*h*u+l*p*g,this._y=l*p*u-d*h*g,this._z=l*h*g+d*p*u,this._w=l*h*u-d*p*g;break;case"YXZ":this._x=d*h*u+l*p*g,this._y=l*p*u-d*h*g,this._z=l*h*g-d*p*u,this._w=l*h*u+d*p*g;break;case"ZXY":this._x=d*h*u-l*p*g,this._y=l*p*u+d*h*g,this._z=l*h*g+d*p*u,this._w=l*h*u-d*p*g;break;case"ZYX":this._x=d*h*u-l*p*g,this._y=l*p*u+d*h*g,this._z=l*h*g-d*p*u,this._w=l*h*u+d*p*g;break;case"YZX":this._x=d*h*u+l*p*g,this._y=l*p*u+d*h*g,this._z=l*h*g-d*p*u,this._w=l*h*u-d*p*g;break;case"XZY":this._x=d*h*u-l*p*g,this._y=l*p*u-d*h*g,this._z=l*h*g+d*p*u,this._w=l*h*u+d*p*g;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return t!==!1&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const n=t/2,i=Math.sin(n);return this._x=e.x*i,this._y=e.y*i,this._z=e.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,n=t[0],i=t[4],r=t[8],a=t[1],o=t[5],c=t[9],l=t[2],h=t[6],u=t[10],d=n+o+u;if(d>0){const p=.5/Math.sqrt(d+1);this._w=.25/p,this._x=(h-c)*p,this._y=(r-l)*p,this._z=(a-i)*p}else if(n>o&&n>u){const p=2*Math.sqrt(1+n-o-u);this._w=(h-c)/p,this._x=.25*p,this._y=(i+a)/p,this._z=(r+l)/p}else if(o>u){const p=2*Math.sqrt(1+o-n-u);this._w=(r-l)/p,this._x=(i+a)/p,this._y=.25*p,this._z=(c+h)/p}else{const p=2*Math.sqrt(1+u-n-o);this._w=(a-i)/p,this._x=(r+l)/p,this._y=(c+h)/p,this._z=.25*p}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let n=e.dot(t)+1;return n<Number.EPSILON?(n=0,Math.abs(e.x)>Math.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=n):(this._x=0,this._y=-e.z,this._z=e.y,this._w=n)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=n),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(xt(this.dot(e),-1,1)))}rotateTowards(e,t){const n=this.angleTo(e);if(n===0)return this;const i=Math.min(1,t/n);return this.slerp(e,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(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._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 e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e,t){return t!==void 0?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(e,t)):this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const n=e._x,i=e._y,r=e._z,a=e._w,o=t._x,c=t._y,l=t._z,h=t._w;return this._x=n*h+a*o+i*l-r*c,this._y=i*h+a*c+r*o-n*l,this._z=r*h+a*l+n*c-i*o,this._w=a*h-n*o-i*c-r*l,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);const n=this._x,i=this._y,r=this._z,a=this._w;let o=a*e._w+n*e._x+i*e._y+r*e._z;if(o<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,o=-o):this.copy(e),o>=1)return this._w=a,this._x=n,this._y=i,this._z=r,this;const c=1-o*o;if(c<=Number.EPSILON){const p=1-t;return this._w=p*a+t*this._w,this._x=p*n+t*this._x,this._y=p*i+t*this._y,this._z=p*r+t*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(c),h=Math.atan2(l,o),u=Math.sin((1-t)*h)/l,d=Math.sin(t*h)/l;return this._w=a*u+this._w*d,this._x=n*u+this._x*d,this._y=i*u+this._y*d,this._z=r*u+this._z*d,this._onChangeCallback(),this}slerpQuaternions(e,t,n){return this.copy(e).slerp(t,n)}random(){const e=Math.random(),t=Math.sqrt(1-e),n=Math.sqrt(e),i=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(t*Math.cos(i),n*Math.sin(r),n*Math.cos(r),t*Math.sin(i))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}}mt.prototype.isQuaternion=!0;class w{constructor(e=0,t=0,n=0){this.x=e,this.y=t,this.z=n}set(e,t,n){return n===void 0&&(n=this.z),this.x=e,this.y=t,this.z=n,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e,t){return t!==void 0?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this)}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e,t){return t!==void 0?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this)}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e,t){return t!==void 0?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(e,t)):(this.x*=e.x,this.y*=e.y,this.z*=e.z,this)}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return e&&e.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(Rs.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(Rs.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,n=this.y,i=this.z,r=e.elements;return this.x=r[0]*t+r[3]*n+r[6]*i,this.y=r[1]*t+r[4]*n+r[7]*i,this.z=r[2]*t+r[5]*n+r[8]*i,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,n=this.y,i=this.z,r=e.elements,a=1/(r[3]*t+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*t+r[4]*n+r[8]*i+r[12])*a,this.y=(r[1]*t+r[5]*n+r[9]*i+r[13])*a,this.z=(r[2]*t+r[6]*n+r[10]*i+r[14])*a,this}applyQuaternion(e){const t=this.x,n=this.y,i=this.z,r=e.x,a=e.y,o=e.z,c=e.w,l=c*t+a*i-o*n,h=c*n+o*t-r*i,u=c*i+r*n-a*t,d=-r*t-a*n-o*i;return this.x=l*c+d*-r+h*-o-u*-a,this.y=h*c+d*-a+u*-r-l*-o,this.z=u*c+d*-o+l*-a-h*-r,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,n=this.y,i=this.z,r=e.elements;return this.x=r[0]*t+r[4]*n+r[8]*i,this.y=r[1]*t+r[5]*n+r[9]*i,this.z=r[2]*t+r[6]*n+r[10]*i,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,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=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.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(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this}cross(e,t){return t!==void 0?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(e,t)):this.crossVectors(this,e)}crossVectors(e,t){const n=e.x,i=e.y,r=e.z,a=t.x,o=t.y,c=t.z;return this.x=i*c-r*o,this.y=r*a-n*c,this.z=n*o-i*a,this}projectOnVector(e){const t=e.lengthSq();if(t===0)return this.set(0,0,0);const n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)}projectOnPlane(e){return wr.copy(this).projectOnVector(e),this.sub(wr)}reflect(e){return this.sub(wr.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const n=this.dot(e)/t;return Math.acos(xt(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,n=this.y-e.y,i=this.z-e.z;return t*t+n*n+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,n){const i=Math.sin(t)*e;return this.x=i*Math.sin(n),this.y=Math.cos(t)*e,this.z=i*Math.cos(n),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,n){return this.x=e*Math.sin(t),this.y=n,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),n=this.setFromMatrixColumn(e,1).length(),i=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=i,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t,n){return n!==void 0&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=(Math.random()-.5)*2,t=Math.random()*Math.PI*2,n=Math.sqrt(1-e**2);return this.x=n*Math.cos(t),this.y=n*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}w.prototype.isVector3=!0;const wr=new w,Rs=new mt;class At{constructor(e=new w(1/0,1/0,1/0),t=new w(-1/0,-1/0,-1/0)){this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){let t=1/0,n=1/0,i=1/0,r=-1/0,a=-1/0,o=-1/0;for(let c=0,l=e.length;c<l;c+=3){const h=e[c],u=e[c+1],d=e[c+2];h<t&&(t=h),u<n&&(n=u),d<i&&(i=d),h>r&&(r=h),u>a&&(a=u),d>o&&(o=d)}return this.min.set(t,n,i),this.max.set(r,a,o),this}setFromBufferAttribute(e){let t=1/0,n=1/0,i=1/0,r=-1/0,a=-1/0,o=-1/0;for(let c=0,l=e.count;c<l;c++){const h=e.getX(c),u=e.getY(c),d=e.getZ(c);h<t&&(t=h),u<n&&(n=u),d<i&&(i=d),h>r&&(r=h),u>a&&(a=u),d>o&&(o=d)}return this.min.set(t,n,i),this.max.set(r,a,o),this}setFromPoints(e){this.makeEmpty();for(let t=0,n=e.length;t<n;t++)this.expandByPoint(e[t]);return this}setFromCenterAndSize(e,t){const n=gn.copy(t).multiplyScalar(.5);return this.min.copy(e).sub(n),this.max.copy(e).add(n),this}setFromObject(e,t=!1){return this.makeEmpty(),this.expandByObject(e,t)}clone(){return new this.constructor().copy(this)}copy(e){return this.min.copy(e.min),this.max.copy(e.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(e){return this.isEmpty()?e.set(0,0,0):e.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(e){return this.isEmpty()?e.set(0,0,0):e.subVectors(this.max,this.min)}expandByPoint(e){return this.min.min(e),this.max.max(e),this}expandByVector(e){return this.min.sub(e),this.max.add(e),this}expandByScalar(e){return this.min.addScalar(-e),this.max.addScalar(e),this}expandByObject(e,t=!1){e.updateWorldMatrix(!1,!1);const n=e.geometry;if(n!==void 0)if(t&&n.attributes!=null&&n.attributes.position!==void 0){const r=n.attributes.position;for(let a=0,o=r.count;a<o;a++)gn.fromBufferAttribute(r,a).applyMatrix4(e.matrixWorld),this.expandByPoint(gn)}else n.boundingBox===null&&n.computeBoundingBox(),Tr.copy(n.boundingBox),Tr.applyMatrix4(e.matrixWorld),this.union(Tr);const i=e.children;for(let r=0,a=i.length;r<a;r++)this.expandByObject(i[r],t);return this}containsPoint(e){return!(e.x<this.min.x||e.x>this.max.x||e.y<this.min.y||e.y>this.max.y||e.z<this.min.z||e.z>this.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.x<this.min.x||e.min.x>this.max.x||e.max.y<this.min.y||e.min.y>this.max.y||e.max.z<this.min.z||e.min.z>this.max.z)}intersectsSphere(e){return this.clampPoint(e.center,gn),gn.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),t<=-e.constant&&n>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(ri),Ai.subVectors(this.max,ri),En.subVectors(e.a,ri),An.subVectors(e.b,ri),Rn.subVectors(e.c,ri),Kt.subVectors(An,En),Qt.subVectors(Rn,An),_n.subVectors(En,Rn);let t=[0,-Kt.z,Kt.y,0,-Qt.z,Qt.y,0,-_n.z,_n.y,Kt.z,0,-Kt.x,Qt.z,0,-Qt.x,_n.z,0,-_n.x,-Kt.y,Kt.x,0,-Qt.y,Qt.x,0,-_n.y,_n.x,0];return!Er(t,En,An,Rn,Ai)||(t=[1,0,0,0,1,0,0,0,1],!Er(t,En,An,Rn,Ai))?!1:(Ri.crossVectors(Kt,Qt),t=[Ri.x,Ri.y,Ri.z],Er(t,En,An,Rn,Ai))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return gn.copy(e).clamp(this.min,this.max).sub(e).length()}getBoundingSphere(e){return this.getCenter(e.center),e.radius=this.getSize(gn).length()*.5,e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(Vt[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Vt[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Vt[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Vt[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Vt[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Vt[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Vt[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Vt[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Vt),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}At.prototype.isBox3=!0;const Vt=[new w,new w,new w,new w,new w,new w,new w,new w],gn=new w,Tr=new At,En=new w,An=new w,Rn=new w,Kt=new w,Qt=new w,_n=new w,ri=new w,Ai=new w,Ri=new w,xn=new w;function Er(s,e,t,n,i){for(let r=0,a=s.length-3;r<=a;r+=3){xn.fromArray(s,r);const o=i.x*Math.abs(xn.x)+i.y*Math.abs(xn.y)+i.z*Math.abs(xn.z),c=e.dot(xn),l=t.dot(xn),h=n.dot(xn);if(Math.max(-Math.max(c,l,h),Math.min(c,l,h))>o)return!1}return!0}const Ao=new At,Cs=new w,Ci=new w,Ar=new w;class Cn{constructor(e=new w,t=-1){this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const n=this.center;t!==void 0?n.copy(t):Ao.setFromPoints(e).getCenter(n);let i=0;for(let r=0,a=e.length;r<a;r++)i=Math.max(i,n.distanceToSquared(e[r]));return this.radius=Math.sqrt(i),this}copy(e){return this.center.copy(e.center),this.radius=e.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(e){return e.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(e){return e.distanceTo(this.center)-this.radius}intersectsSphere(e){const t=this.radius+e.radius;return e.center.distanceToSquared(this.center)<=t*t}intersectsBox(e){return e.intersectsSphere(this)}intersectsPlane(e){return Math.abs(e.distanceToPoint(this.center))<=this.radius}clampPoint(e,t){const n=this.center.distanceToSquared(e);return t.copy(e),n>this.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){Ar.subVectors(e,this.center);const t=Ar.lengthSq();if(t>this.radius*this.radius){const n=Math.sqrt(t),i=(n-this.radius)*.5;this.center.add(Ar.multiplyScalar(i/n)),this.radius+=i}return this}union(e){return this.center.equals(e.center)===!0?Ci.set(0,0,1).multiplyScalar(e.radius):Ci.subVectors(e.center,this.center).normalize().multiplyScalar(e.radius),this.expandByPoint(Cs.copy(e.center).add(Ci)),this.expandByPoint(Cs.copy(e.center).sub(Ci)),this}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}const kt=new w,Rr=new w,Li=new w,en=new w,Cr=new w,Pi=new w,Lr=new w;class Ln{constructor(e=new w,t=new w(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.direction).multiplyScalar(e).add(this.origin)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,kt)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const n=t.dot(this.direction);return n<0?t.copy(this.origin):t.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=kt.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(kt.copy(this.direction).multiplyScalar(t).add(this.origin),kt.distanceToSquared(e))}distanceSqToSegment(e,t,n,i){Rr.copy(e).add(t).multiplyScalar(.5),Li.copy(t).sub(e).normalize(),en.copy(this.origin).sub(Rr);const r=e.distanceTo(t)*.5,a=-this.direction.dot(Li),o=en.dot(this.direction),c=-en.dot(Li),l=en.lengthSq(),h=Math.abs(1-a*a);let u,d,p,g;if(h>0)if(u=a*c-o,d=a*o-c,g=r*h,u>=0)if(d>=-g)if(d<=g){const _=1/h;u*=_,d*=_,p=u*(u+a*d+2*o)+d*(a*u+d+2*c)+l}else d=r,u=Math.max(0,-(a*d+o)),p=-u*u+d*(d+2*c)+l;else d=-r,u=Math.max(0,-(a*d+o)),p=-u*u+d*(d+2*c)+l;else d<=-g?(u=Math.max(0,-(-a*r+o)),d=u>0?-r:Math.min(Math.max(-r,-c),r),p=-u*u+d*(d+2*c)+l):d<=g?(u=0,d=Math.min(Math.max(-r,-c),r),p=d*(d+2*c)+l):(u=Math.max(0,-(a*r+o)),d=u>0?r:Math.min(Math.max(-r,-c),r),p=-u*u+d*(d+2*c)+l);else d=a>0?-r:r,u=Math.max(0,-(a*d+o)),p=-u*u+d*(d+2*c)+l;return n&&n.copy(this.direction).multiplyScalar(u).add(this.origin),i&&i.copy(Li).multiplyScalar(d).add(Rr),p}intersectSphere(e,t){kt.subVectors(e.center,this.origin);const n=kt.dot(this.direction),i=kt.dot(kt)-n*n,r=e.radius*e.radius;if(i>r)return null;const a=Math.sqrt(r-i),o=n-a,c=n+a;return o<0&&c<0?null:o<0?this.at(c,t):this.at(o,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;const n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null}intersectPlane(e,t){const n=this.distanceToPlane(e);return n===null?null:this.at(n,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let n,i,r,a,o,c;const l=1/this.direction.x,h=1/this.direction.y,u=1/this.direction.z,d=this.origin;return l>=0?(n=(e.min.x-d.x)*l,i=(e.max.x-d.x)*l):(n=(e.max.x-d.x)*l,i=(e.min.x-d.x)*l),h>=0?(r=(e.min.y-d.y)*h,a=(e.max.y-d.y)*h):(r=(e.max.y-d.y)*h,a=(e.min.y-d.y)*h),n>a||r>i||((r>n||n!==n)&&(n=r),(a<i||i!==i)&&(i=a),u>=0?(o=(e.min.z-d.z)*u,c=(e.max.z-d.z)*u):(o=(e.max.z-d.z)*u,c=(e.min.z-d.z)*u),n>c||o>i)||((o>n||n!==n)&&(n=o),(c<i||i!==i)&&(i=c),i<0)?null:this.at(n>=0?n:i,t)}intersectsBox(e){return this.intersectBox(e,kt)!==null}intersectTriangle(e,t,n,i,r){Cr.subVectors(t,e),Pi.subVectors(n,e),Lr.crossVectors(Cr,Pi);let a=this.direction.dot(Lr),o;if(a>0){if(i)return null;o=1}else if(a<0)o=-1,a=-a;else return null;en.subVectors(this.origin,e);const c=o*this.direction.dot(Pi.crossVectors(en,Pi));if(c<0)return null;const l=o*this.direction.dot(Cr.cross(en));if(l<0||c+l>a)return null;const h=-o*en.dot(Lr);return h<0?null:this.at(h/a,r)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class _e{constructor(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}set(e,t,n,i,r,a,o,c,l,h,u,d,p,g,_,M){const m=this.elements;return m[0]=e,m[4]=t,m[8]=n,m[12]=i,m[1]=r,m[5]=a,m[9]=o,m[13]=c,m[2]=l,m[6]=h,m[10]=u,m[14]=d,m[3]=p,m[7]=g,m[11]=_,m[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 _e().fromArray(this.elements)}copy(e){const t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],this}copyPosition(e){const t=this.elements,n=e.elements;return t[12]=n[12],t[13]=n[13],t[14]=n[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,n){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(e,t,n){return this.set(e.x,t.x,n.x,0,e.y,t.y,n.y,0,e.z,t.z,n.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,n=e.elements,i=1/Pn.setFromMatrixColumn(e,0).length(),r=1/Pn.setFromMatrixColumn(e,1).length(),a=1/Pn.setFromMatrixColumn(e,2).length();return t[0]=n[0]*i,t[1]=n[1]*i,t[2]=n[2]*i,t[3]=0,t[4]=n[4]*r,t[5]=n[5]*r,t[6]=n[6]*r,t[7]=0,t[8]=n[8]*a,t[9]=n[9]*a,t[10]=n[10]*a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){e&&e.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");const t=this.elements,n=e.x,i=e.y,r=e.z,a=Math.cos(n),o=Math.sin(n),c=Math.cos(i),l=Math.sin(i),h=Math.cos(r),u=Math.sin(r);if(e.order==="XYZ"){const d=a*h,p=a*u,g=o*h,_=o*u;t[0]=c*h,t[4]=-c*u,t[8]=l,t[1]=p+g*l,t[5]=d-_*l,t[9]=-o*c,t[2]=_-d*l,t[6]=g+p*l,t[10]=a*c}else if(e.order==="YXZ"){const d=c*h,p=c*u,g=l*h,_=l*u;t[0]=d+_*o,t[4]=g*o-p,t[8]=a*l,t[1]=a*u,t[5]=a*h,t[9]=-o,t[2]=p*o-g,t[6]=_+d*o,t[10]=a*c}else if(e.order==="ZXY"){const d=c*h,p=c*u,g=l*h,_=l*u;t[0]=d-_*o,t[4]=-a*u,t[8]=g+p*o,t[1]=p+g*o,t[5]=a*h,t[9]=_-d*o,t[2]=-a*l,t[6]=o,t[10]=a*c}else if(e.order==="ZYX"){const d=a*h,p=a*u,g=o*h,_=o*u;t[0]=c*h,t[4]=g*l-p,t[8]=d*l+_,t[1]=c*u,t[5]=_*l+d,t[9]=p*l-g,t[2]=-l,t[6]=o*c,t[10]=a*c}else if(e.order==="YZX"){const d=a*c,p=a*l,g=o*c,_=o*l;t[0]=c*h,t[4]=_-d*u,t[8]=g*u+p,t[1]=u,t[5]=a*h,t[9]=-o*h,t[2]=-l*h,t[6]=p*u+g,t[10]=d-_*u}else if(e.order==="XZY"){const d=a*c,p=a*l,g=o*c,_=o*l;t[0]=c*h,t[4]=-u,t[8]=l*h,t[1]=d*u+_,t[5]=a*h,t[9]=p*u-g,t[2]=g*u-p,t[6]=o*h,t[10]=_*u+d}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(Ro,e,Co)}lookAt(e,t,n){const i=this.elements;return vt.subVectors(e,t),vt.lengthSq()===0&&(vt.z=1),vt.normalize(),tn.crossVectors(n,vt),tn.lengthSq()===0&&(Math.abs(n.z)===1?vt.x+=1e-4:vt.z+=1e-4,vt.normalize(),tn.crossVectors(n,vt)),tn.normalize(),Di.crossVectors(vt,tn),i[0]=tn.x,i[4]=Di.x,i[8]=vt.x,i[1]=tn.y,i[5]=Di.y,i[9]=vt.y,i[2]=tn.z,i[6]=Di.z,i[10]=vt.z,this}multiply(e,t){return t!==void 0?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(e,t)):this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const n=e.elements,i=t.elements,r=this.elements,a=n[0],o=n[4],c=n[8],l=n[12],h=n[1],u=n[5],d=n[9],p=n[13],g=n[2],_=n[6],M=n[10],m=n[14],f=n[3],E=n[7],y=n[11],T=n[15],R=i[0],C=i[4],Z=i[8],se=i[12],j=i[1],x=i[5],L=i[9],D=i[13],B=i[2],N=i[6],I=i[10],H=i[14],Y=i[3],ce=i[7],O=i[11],X=i[15];return r[0]=a*R+o*j+c*B+l*Y,r[4]=a*C+o*x+c*N+l*ce,r[8]=a*Z+o*L+c*I+l*O,r[12]=a*se+o*D+c*H+l*X,r[1]=h*R+u*j+d*B+p*Y,r[5]=h*C+u*x+d*N+p*ce,r[9]=h*Z+u*L+d*I+p*O,r[13]=h*se+u*D+d*H+p*X,r[2]=g*R+_*j+M*B+m*Y,r[6]=g*C+_*x+M*N+m*ce,r[10]=g*Z+_*L+M*I+m*O,r[14]=g*se+_*D+M*H+m*X,r[3]=f*R+E*j+y*B+T*Y,r[7]=f*C+E*x+y*N+T*ce,r[11]=f*Z+E*L+y*I+T*O,r[15]=f*se+E*D+y*H+T*X,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],n=e[4],i=e[8],r=e[12],a=e[1],o=e[5],c=e[9],l=e[13],h=e[2],u=e[6],d=e[10],p=e[14],g=e[3],_=e[7],M=e[11],m=e[15];return g*(+r*c*u-i*l*u-r*o*d+n*l*d+i*o*p-n*c*p)+_*(+t*c*p-t*l*d+r*a*d-i*a*p+i*l*h-r*c*h)+M*(+t*l*u-t*o*p-r*a*u+n*a*p+r*o*h-n*l*h)+m*(-i*o*h-t*c*u+t*o*d+i*a*u-n*a*d+n*c*h)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,n){const i=this.elements;return e.isVector3?(i[12]=e.x,i[13]=e.y,i[14]=e.z):(i[12]=e,i[13]=t,i[14]=n),this}invert(){const e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],a=e[4],o=e[5],c=e[6],l=e[7],h=e[8],u=e[9],d=e[10],p=e[11],g=e[12],_=e[13],M=e[14],m=e[15],f=u*M*l-_*d*l+_*c*p-o*M*p-u*c*m+o*d*m,E=g*d*l-h*M*l-g*c*p+a*M*p+h*c*m-a*d*m,y=h*_*l-g*u*l+g*o*p-a*_*p-h*o*m+a*u*m,T=g*u*c-h*_*c-g*o*d+a*_*d+h*o*M-a*u*M,R=t*f+n*E+i*y+r*T;if(R===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const C=1/R;return e[0]=f*C,e[1]=(_*d*r-u*M*r-_*i*p+n*M*p+u*i*m-n*d*m)*C,e[2]=(o*M*r-_*c*r+_*i*l-n*M*l-o*i*m+n*c*m)*C,e[3]=(u*c*r-o*d*r-u*i*l+n*d*l+o*i*p-n*c*p)*C,e[4]=E*C,e[5]=(h*M*r-g*d*r+g*i*p-t*M*p-h*i*m+t*d*m)*C,e[6]=(g*c*r-a*M*r-g*i*l+t*M*l+a*i*m-t*c*m)*C,e[7]=(a*d*r-h*c*r+h*i*l-t*d*l-a*i*p+t*c*p)*C,e[8]=y*C,e[9]=(g*u*r-h*_*r-g*n*p+t*_*p+h*n*m-t*u*m)*C,e[10]=(a*_*r-g*o*r+g*n*l-t*_*l-a*n*m+t*o*m)*C,e[11]=(h*o*r-a*u*r-h*n*l+t*u*l+a*n*p-t*o*p)*C,e[12]=T*C,e[13]=(h*_*i-g*u*i+g*n*d-t*_*d-h*n*M+t*u*M)*C,e[14]=(g*o*i-a*_*i-g*n*c+t*_*c+a*n*M-t*o*M)*C,e[15]=(a*u*i-h*o*i+h*n*c-t*u*c-a*n*d+t*o*d)*C,this}scale(e){const t=this.elements,n=e.x,i=e.y,r=e.z;return t[0]*=n,t[4]*=i,t[8]*=r,t[1]*=n,t[5]*=i,t[9]*=r,t[2]*=n,t[6]*=i,t[10]*=r,t[3]*=n,t[7]*=i,t[11]*=r,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],n=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],i=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,n,i))}makeTranslation(e,t,n){return this.set(1,0,0,e,0,1,0,t,0,0,1,n,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),n=Math.sin(e);return this.set(1,0,0,0,0,t,-n,0,0,n,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),n=Math.sin(e);return this.set(t,0,n,0,0,1,0,0,-n,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,0,n,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const n=Math.cos(t),i=Math.sin(t),r=1-n,a=e.x,o=e.y,c=e.z,l=r*a,h=r*o;return this.set(l*a+n,l*o-i*c,l*c+i*o,0,l*o+i*c,h*o+n,h*c-i*a,0,l*c-i*o,h*c+i*a,r*c*c+n,0,0,0,0,1),this}makeScale(e,t,n){return this.set(e,0,0,0,0,t,0,0,0,0,n,0,0,0,0,1),this}makeShear(e,t,n,i,r,a){return this.set(1,n,r,0,e,1,a,0,t,i,1,0,0,0,0,1),this}compose(e,t,n){const i=this.elements,r=t._x,a=t._y,o=t._z,c=t._w,l=r+r,h=a+a,u=o+o,d=r*l,p=r*h,g=r*u,_=a*h,M=a*u,m=o*u,f=c*l,E=c*h,y=c*u,T=n.x,R=n.y,C=n.z;return i[0]=(1-(_+m))*T,i[1]=(p+y)*T,i[2]=(g-E)*T,i[3]=0,i[4]=(p-y)*R,i[5]=(1-(d+m))*R,i[6]=(M+f)*R,i[7]=0,i[8]=(g+E)*C,i[9]=(M-f)*C,i[10]=(1-(d+_))*C,i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,this}decompose(e,t,n){const i=this.elements;let r=Pn.set(i[0],i[1],i[2]).length();const a=Pn.set(i[4],i[5],i[6]).length(),o=Pn.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),e.x=i[12],e.y=i[13],e.z=i[14],Rt.copy(this);const l=1/r,h=1/a,u=1/o;return Rt.elements[0]*=l,Rt.elements[1]*=l,Rt.elements[2]*=l,Rt.elements[4]*=h,Rt.elements[5]*=h,Rt.elements[6]*=h,Rt.elements[8]*=u,Rt.elements[9]*=u,Rt.elements[10]*=u,t.setFromRotationMatrix(Rt),n.x=r,n.y=a,n.z=o,this}makePerspective(e,t,n,i,r,a){a===void 0&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");const o=this.elements,c=2*r/(t-e),l=2*r/(n-i),h=(t+e)/(t-e),u=(n+i)/(n-i),d=-(a+r)/(a-r),p=-2*a*r/(a-r);return o[0]=c,o[4]=0,o[8]=h,o[12]=0,o[1]=0,o[5]=l,o[9]=u,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(e,t,n,i,r,a){const o=this.elements,c=1/(t-e),l=1/(n-i),h=1/(a-r),u=(t+e)*c,d=(n+i)*l,p=(a+r)*h;return o[0]=2*c,o[4]=0,o[8]=0,o[12]=-u,o[1]=0,o[5]=2*l,o[9]=0,o[13]=-d,o[2]=0,o[6]=0,o[10]=-2*h,o[14]=-p,o[3]=0,o[7]=0,o[11]=0,o[15]=1,this}equals(e){const t=this.elements,n=e.elements;for(let i=0;i<16;i++)if(t[i]!==n[i])return!1;return!0}fromArray(e,t=0){for(let n=0;n<16;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){const n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e[t+9]=n[9],e[t+10]=n[10],e[t+11]=n[11],e[t+12]=n[12],e[t+13]=n[13],e[t+14]=n[14],e[t+15]=n[15],e}}_e.prototype.isMatrix4=!0;const Pn=new w,Rt=new _e,Ro=new w(0,0,0),Co=new w(1,1,1),tn=new w,Di=new w,vt=new w,Ls=new _e,Ps=new mt;class Dn{constructor(e=0,t=0,n=0,i=Dn.DefaultOrder){this._x=e,this._y=t,this._z=n,this._order=i}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,n,i=this._order){return this._x=e,this._y=t,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,n=!0){const i=e.elements,r=i[0],a=i[4],o=i[8],c=i[1],l=i[5],h=i[9],u=i[2],d=i[6],p=i[10];switch(t){case"XYZ":this._y=Math.asin(xt(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-h,p),this._z=Math.atan2(-a,r)):(this._x=Math.atan2(d,l),this._z=0);break;case"YXZ":this._x=Math.asin(-xt(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(o,p),this._z=Math.atan2(c,l)):(this._y=Math.atan2(-u,r),this._z=0);break;case"ZXY":this._x=Math.asin(xt(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(-u,p),this._z=Math.atan2(-a,l)):(this._y=0,this._z=Math.atan2(c,r));break;case"ZYX":this._y=Math.asin(-xt(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(d,p),this._z=Math.atan2(c,r)):(this._x=0,this._z=Math.atan2(-a,l));break;case"YZX":this._z=Math.asin(xt(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-h,l),this._y=Math.atan2(-u,r)):(this._x=0,this._y=Math.atan2(o,p));break;case"XZY":this._z=Math.asin(-xt(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(d,l),this._y=Math.atan2(o,r)):(this._x=Math.atan2(-h,p),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,n===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,n){return Ls.makeRotationFromQuaternion(e),this.setFromRotationMatrix(Ls,t,n)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return Ps.setFromEuler(this),this.setFromQuaternion(Ps,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}toVector3(e){return e?e.set(this._x,this._y,this._z):new w(this._x,this._y,this._z)}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}}Dn.prototype.isEuler=!0,Dn.DefaultOrder="XYZ",Dn.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];class Ds{constructor(){this.mask=1}set(e){this.mask=(1<<e|0)>>>0}enable(e){this.mask|=1<<e|0}enableAll(){this.mask=-1}toggle(e){this.mask^=1<<e|0}disable(e){this.mask&=~(1<<e|0)}disableAll(){this.mask=0}test(e){return(this.mask&e.mask)!==0}isEnabled(e){return(this.mask&(1<<e|0))!==0}}let Lo=0;const Is=new w,In=new mt,Wt=new _e,Ii=new w,si=new w,Po=new w,Do=new mt,Fs=new w(1,0,0),Bs=new w(0,1,0),Ns=new w(0,0,1),Io={type:"added"},zs={type:"removed"};class Oe extends pn{constructor(){super();Object.defineProperty(this,"id",{value:Lo++}),this.uuid=Dt(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=Oe.DefaultUp.clone();const e=new w,t=new Dn,n=new mt,i=new w(1,1,1);function r(){n.setFromEuler(t,!1)}function a(){t.setFromQuaternion(n,void 0,!1)}t._onChange(r),n._onChange(a),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:e},rotation:{configurable:!0,enumerable:!0,value:t},quaternion:{configurable:!0,enumerable:!0,value:n},scale:{configurable:!0,enumerable:!0,value:i},modelViewMatrix:{value:new _e},normalMatrix:{value:new lt}}),this.matrix=new _e,this.matrixWorld=new _e,this.matrixAutoUpdate=Oe.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new Ds,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeRender(){}onAfterRender(){}applyMatrix4(e){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(e),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(e){return this.quaternion.premultiply(e),this}setRotationFromAxisAngle(e,t){this.quaternion.setFromAxisAngle(e,t)}setRotationFromEuler(e){this.quaternion.setFromEuler(e,!0)}setRotationFromMatrix(e){this.quaternion.setFromRotationMatrix(e)}setRotationFromQuaternion(e){this.quaternion.copy(e)}rotateOnAxis(e,t){return In.setFromAxisAngle(e,t),this.quaternion.multiply(In),this}rotateOnWorldAxis(e,t){return In.setFromAxisAngle(e,t),this.quaternion.premultiply(In),this}rotateX(e){return this.rotateOnAxis(Fs,e)}rotateY(e){return this.rotateOnAxis(Bs,e)}rotateZ(e){return this.rotateOnAxis(Ns,e)}translateOnAxis(e,t){return Is.copy(e).applyQuaternion(this.quaternion),this.position.add(Is.multiplyScalar(t)),this}translateX(e){return this.translateOnAxis(Fs,e)}translateY(e){return this.translateOnAxis(Bs,e)}translateZ(e){return this.translateOnAxis(Ns,e)}localToWorld(e){return e.applyMatrix4(this.matrixWorld)}worldToLocal(e){return e.applyMatrix4(Wt.copy(this.matrixWorld).invert())}lookAt(e,t,n){e.isVector3?Ii.copy(e):Ii.set(e,t,n);const i=this.parent;this.updateWorldMatrix(!0,!1),si.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?Wt.lookAt(si,Ii,this.up):Wt.lookAt(Ii,si,this.up),this.quaternion.setFromRotationMatrix(Wt),i&&(Wt.extractRotation(i.matrixWorld),In.setFromRotationMatrix(Wt),this.quaternion.premultiply(In.invert()))}add(e){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return e===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",e),this):(e&&e.isObject3D?(e.parent!==null&&e.parent.remove(e),e.parent=this,this.children.push(e),e.dispatchEvent(Io)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",e),this)}remove(e){if(arguments.length>1){for(let n=0;n<arguments.length;n++)this.remove(arguments[n]);return this}const t=this.children.indexOf(e);return t!==-1&&(e.parent=null,this.children.splice(t,1),e.dispatchEvent(zs)),this}removeFromParent(){const e=this.parent;return e!==null&&e.remove(this),this}clear(){for(let e=0;e<this.children.length;e++){const t=this.children[e];t.parent=null,t.dispatchEvent(zs)}return this.children.length=0,this}attach(e){return this.updateWorldMatrix(!0,!1),Wt.copy(this.matrixWorld).invert(),e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),Wt.multiply(e.parent.matrixWorld)),e.applyMatrix4(Wt),this.add(e),e.updateWorldMatrix(!1,!0),this}getObjectById(e){return this.getObjectByProperty("id",e)}getObjectByName(e){return this.getObjectByProperty("name",e)}getObjectByProperty(e,t){if(this[e]===t)return this;for(let n=0,i=this.children.length;n<i;n++){const a=this.children[n].getObjectByProperty(e,t);if(a!==void 0)return a}}getWorldPosition(e){return this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(si,e,Po),e}getWorldScale(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(si,Do,e),e}getWorldDirection(e){this.updateWorldMatrix(!0,!1);const t=this.matrixWorld.elements;return e.set(t[8],t[9],t[10]).normalize()}raycast(){}traverse(e){e(this);const t=this.children;for(let n=0,i=t.length;n<i;n++)t[n].traverse(e)}traverseVisible(e){if(this.visible===!1)return;e(this);const t=this.children;for(let n=0,i=t.length;n<i;n++)t[n].traverseVisible(e)}traverseAncestors(e){const t=this.parent;t!==null&&(e(t),t.traverseAncestors(e))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,e=!0);const t=this.children;for(let n=0,i=t.length;n<i;n++)t[n].updateMatrixWorld(e)}updateWorldMatrix(e,t){const n=this.parent;if(e===!0&&n!==null&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),t===!0){const i=this.children;for(let r=0,a=i.length;r<a;r++)i[r].updateWorldMatrix(!1,!0)}}toJSON(e){const t=e===void 0||typeof e=="string",n={};t&&(e={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{}},n.metadata={version:4.5,type:"Object",generator:"Object3D.toJSON"});const i={};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.castShadow===!0&&(i.castShadow=!0),this.receiveShadow===!0&&(i.receiveShadow=!0),this.visible===!1&&(i.visible=!1),this.frustumCulled===!1&&(i.frustumCulled=!1),this.renderOrder!==0&&(i.renderOrder=this.renderOrder),JSON.stringify(this.userData)!=="{}"&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),this.matrixAutoUpdate===!1&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(i.instanceColor=this.instanceColor.toJSON()));function r(o,c){return o[c.uuid]===void 0&&(o[c.uuid]=c.toJSON(e)),c.uuid}if(this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&(i.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(e.geometries,this.geometry);const o=this.geometry.parameters;if(o!==void 0&&o.shapes!==void 0){const c=o.shapes;if(Array.isArray(c))for(let l=0,h=c.length;l<h;l++){const u=c[l];r(e.shapes,u)}else r(e.shapes,c)}}if(this.isSkinnedMesh&&(i.bindMode=this.bindMode,i.bindMatrix=this.bindMatrix.toArray(),this.skeleton!==void 0&&(r(e.skeletons,this.skeleton),i.skeleton=this.skeleton.uuid)),this.material!==void 0)if(Array.isArray(this.material)){const o=[];for(let c=0,l=this.material.length;c<l;c++)o.push(r(e.materials,this.material[c]));i.material=o}else i.material=r(e.materials,this.material);if(this.children.length>0){i.children=[];for(let o=0;o<this.children.length;o++)i.children.push(this.children[o].toJSON(e).object)}if(this.animations.length>0){i.animations=[];for(let o=0;o<this.animations.length;o++){const c=this.animations[o];i.animations.push(r(e.animations,c))}}if(t){const o=a(e.geometries),c=a(e.materials),l=a(e.textures),h=a(e.images),u=a(e.shapes),d=a(e.skeletons),p=a(e.animations);o.length>0&&(n.geometries=o),c.length>0&&(n.materials=c),l.length>0&&(n.textures=l),h.length>0&&(n.images=h),u.length>0&&(n.shapes=u),d.length>0&&(n.skeletons=d),p.length>0&&(n.animations=p)}return n.object=i,n;function a(o){const c=[];for(const l in o){const h=o[l];delete h.metadata,c.push(h)}return c}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let n=0;n<e.children.length;n++){const i=e.children[n];this.add(i.clone())}return this}}Oe.DefaultUp=new w(0,1,0),Oe.DefaultMatrixAutoUpdate=!0,Oe.prototype.isObject3D=!0;const Ct=new w,qt=new w,Pr=new w,Xt=new w,Fn=new w,Bn=new w,Us=new w,Dr=new w,Ir=new w,Fr=new w;class tt{constructor(e=new w,t=new w,n=new w){this.a=e,this.b=t,this.c=n}static getNormal(e,t,n,i){i.subVectors(n,t),Ct.subVectors(e,t),i.cross(Ct);const r=i.lengthSq();return r>0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(e,t,n,i,r){Ct.subVectors(i,t),qt.subVectors(n,t),Pr.subVectors(e,t);const a=Ct.dot(Ct),o=Ct.dot(qt),c=Ct.dot(Pr),l=qt.dot(qt),h=qt.dot(Pr),u=a*l-o*o;if(u===0)return r.set(-2,-1,-1);const d=1/u,p=(l*c-o*h)*d,g=(a*h-o*c)*d;return r.set(1-p-g,g,p)}static containsPoint(e,t,n,i){return this.getBarycoord(e,t,n,i,Xt),Xt.x>=0&&Xt.y>=0&&Xt.x+Xt.y<=1}static getUV(e,t,n,i,r,a,o,c){return this.getBarycoord(e,t,n,i,Xt),c.set(0,0),c.addScaledVector(r,Xt.x),c.addScaledVector(a,Xt.y),c.addScaledVector(o,Xt.z),c}static isFrontFacing(e,t,n,i){return Ct.subVectors(n,t),qt.subVectors(e,t),Ct.cross(qt).dot(i)<0}set(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this}setFromPointsAndIndices(e,t,n,i){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[i]),this}setFromAttributeAndIndices(e,t,n,i){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,n),this.c.fromBufferAttribute(e,i),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return Ct.subVectors(this.c,this.b),qt.subVectors(this.a,this.b),Ct.cross(qt).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return tt.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return tt.getBarycoord(e,this.a,this.b,this.c,t)}getUV(e,t,n,i,r){return tt.getUV(e,this.a,this.b,this.c,t,n,i,r)}containsPoint(e){return tt.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return tt.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const n=this.a,i=this.b,r=this.c;let a,o;Fn.subVectors(i,n),Bn.subVectors(r,n),Dr.subVectors(e,n);const c=Fn.dot(Dr),l=Bn.dot(Dr);if(c<=0&&l<=0)return t.copy(n);Ir.subVectors(e,i);const h=Fn.dot(Ir),u=Bn.dot(Ir);if(h>=0&&u<=h)return t.copy(i);const d=c*u-h*l;if(d<=0&&c>=0&&h<=0)return a=c/(c-h),t.copy(n).addScaledVector(Fn,a);Fr.subVectors(e,r);const p=Fn.dot(Fr),g=Bn.dot(Fr);if(g>=0&&p<=g)return t.copy(r);const _=p*l-c*g;if(_<=0&&l>=0&&g<=0)return o=l/(l-g),t.copy(n).addScaledVector(Bn,o);const M=h*g-p*u;if(M<=0&&u-h>=0&&p-g>=0)return Us.subVectors(r,i),o=(u-h)/(u-h+(p-g)),t.copy(i).addScaledVector(Us,o);const m=1/(M+_+d);return a=_*m,o=d*m,t.copy(n).addScaledVector(Fn,a).addScaledVector(Bn,o)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}let Fo=0;class ct extends pn{constructor(){super();Object.defineProperty(this,"id",{value:Fo++}),this.uuid=Dt(),this.name="",this.type="Material",this.fog=!0,this.blending=1,this.side=0,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=100,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=7680,this.stencilZFail=7680,this.stencilZPass=7680,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.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const t in e){const n=e[t];if(n===void 0){console.warn("THREE.Material: '"+t+"' parameter is undefined.");continue}if(t==="shading"){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=n===1;continue}const i=this[t];if(i===void 0){console.warn("THREE."+this.type+": '"+t+"' is not a property of this material.");continue}i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[t]=n}}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==1&&(n.blending=this.blending),this.side!==0&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaToCoverage===!0&&(n.alphaToCoverage=this.alphaToCoverage),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=this.premultipliedAlpha),this.wireframe===!0&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=this.flatShading),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),JSON.stringify(this.userData)!=="{}"&&(n.userData=this.userData);function i(r){const a=[];for(const o in r){const c=r[o];delete c.metadata,a.push(c)}return a}if(t){const r=i(e.textures),a=i(e.images);r.length>0&&(n.textures=r),a.length>0&&(n.images=a)}return n}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.fog=e.fog,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let n=null;if(t!==null){const i=t.length;n=new Array(i);for(let r=0;r!==i;++r)n[r]=t[r].clone()}return this.clippingPlanes=n,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}}ct.prototype.isMaterial=!0;class Fi extends ct{constructor(e){super();this.type="MeshBasicMaterial",this.color=new me(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.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this}}Fi.prototype.isMeshBasicMaterial=!0;const qe=new w,Bi=new J;class nt{constructor(e,t,n){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=n===!0,this.usage=35044,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this}copyAt(e,t,n){e*=this.itemSize,n*=t.itemSize;for(let i=0,r=this.itemSize;i<r;i++)this.array[e+i]=t.array[n+i];return this}copyArray(e){return this.array.set(e),this}copyColorsArray(e){const t=this.array;let n=0;for(let i=0,r=e.length;i<r;i++){let a=e[i];a===void 0&&(console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",i),a=new me),t[n++]=a.r,t[n++]=a.g,t[n++]=a.b}return this}copyVector2sArray(e){const t=this.array;let n=0;for(let i=0,r=e.length;i<r;i++){let a=e[i];a===void 0&&(console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",i),a=new J),t[n++]=a.x,t[n++]=a.y}return this}copyVector3sArray(e){const t=this.array;let n=0;for(let i=0,r=e.length;i<r;i++){let a=e[i];a===void 0&&(console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",i),a=new w),t[n++]=a.x,t[n++]=a.y,t[n++]=a.z}return this}copyVector4sArray(e){const t=this.array;let n=0;for(let i=0,r=e.length;i<r;i++){let a=e[i];a===void 0&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",i),a=new We),t[n++]=a.x,t[n++]=a.y,t[n++]=a.z,t[n++]=a.w}return this}applyMatrix3(e){if(this.itemSize===2)for(let t=0,n=this.count;t<n;t++)Bi.fromBufferAttribute(this,t),Bi.applyMatrix3(e),this.setXY(t,Bi.x,Bi.y);else if(this.itemSize===3)for(let t=0,n=this.count;t<n;t++)qe.fromBufferAttribute(this,t),qe.applyMatrix3(e),this.setXYZ(t,qe.x,qe.y,qe.z);return this}applyMatrix4(e){for(let t=0,n=this.count;t<n;t++)qe.x=this.getX(t),qe.y=this.getY(t),qe.z=this.getZ(t),qe.applyMatrix4(e),this.setXYZ(t,qe.x,qe.y,qe.z);return this}applyNormalMatrix(e){for(let t=0,n=this.count;t<n;t++)qe.x=this.getX(t),qe.y=this.getY(t),qe.z=this.getZ(t),qe.applyNormalMatrix(e),this.setXYZ(t,qe.x,qe.y,qe.z);return this}transformDirection(e){for(let t=0,n=this.count;t<n;t++)qe.x=this.getX(t),qe.y=this.getY(t),qe.z=this.getZ(t),qe.transformDirection(e),this.setXYZ(t,qe.x,qe.y,qe.z);return this}set(e,t=0){return this.array.set(e,t),this}getX(e){return this.array[e*this.itemSize]}setX(e,t){return this.array[e*this.itemSize]=t,this}getY(e){return this.array[e*this.itemSize+1]}setY(e,t){return this.array[e*this.itemSize+1]=t,this}getZ(e){return this.array[e*this.itemSize+2]}setZ(e,t){return this.array[e*this.itemSize+2]=t,this}getW(e){return this.array[e*this.itemSize+3]}setW(e,t){return this.array[e*this.itemSize+3]=t,this}setXY(e,t,n){return e*=this.itemSize,this.array[e+0]=t,this.array[e+1]=n,this}setXYZ(e,t,n,i){return e*=this.itemSize,this.array[e+0]=t,this.array[e+1]=n,this.array[e+2]=i,this}setXYZW(e,t,n,i,r){return e*=this.itemSize,this.array[e+0]=t,this.array[e+1]=n,this.array[e+2]=i,this.array[e+3]=r,this}onUpload(e){return this.onUploadCallback=e,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const e={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized};return this.name!==""&&(e.name=this.name),this.usage!==35044&&(e.usage=this.usage),(this.updateRange.offset!==0||this.updateRange.count!==-1)&&(e.updateRange=this.updateRange),e}}nt.prototype.isBufferAttribute=!0;class Os extends nt{constructor(e,t,n){super(new Uint16Array(e),t,n)}}class Gs extends nt{constructor(e,t,n){super(new Uint32Array(e),t,n)}}class Bo extends nt{constructor(e,t,n){super(new Uint16Array(e),t,n)}}Bo.prototype.isFloat16BufferAttribute=!0;class st extends nt{constructor(e,t,n){super(new Float32Array(e),t,n)}}let No=0;const bt=new _e,Br=new Oe,Nn=new w,yt=new At,ai=new At,at=new w;class Ze extends pn{constructor(){super();Object.defineProperty(this,"id",{value:No++}),this.uuid=Dt(),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(e){return Array.isArray(e)?this.index=new(Es(e)?Gs:Os)(e,1):this.index=e,this}getAttribute(e){return this.attributes[e]}setAttribute(e,t){return this.attributes[e]=t,this}deleteAttribute(e){return delete this.attributes[e],this}hasAttribute(e){return this.attributes[e]!==void 0}addGroup(e,t,n=0){this.groups.push({start:e,count:t,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(e,t){this.drawRange.start=e,this.drawRange.count=t}applyMatrix4(e){const t=this.attributes.position;t!==void 0&&(t.applyMatrix4(e),t.needsUpdate=!0);const n=this.attributes.normal;if(n!==void 0){const r=new lt().getNormalMatrix(e);n.applyNormalMatrix(r),n.needsUpdate=!0}const i=this.attributes.tangent;return i!==void 0&&(i.transformDirection(e),i.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}applyQuaternion(e){return bt.makeRotationFromQuaternion(e),this.applyMatrix4(bt),this}rotateX(e){return bt.makeRotationX(e),this.applyMatrix4(bt),this}rotateY(e){return bt.makeRotationY(e),this.applyMatrix4(bt),this}rotateZ(e){return bt.makeRotationZ(e),this.applyMatrix4(bt),this}translate(e,t,n){return bt.makeTranslation(e,t,n),this.applyMatrix4(bt),this}scale(e,t,n){return bt.makeScale(e,t,n),this.applyMatrix4(bt),this}lookAt(e){return Br.lookAt(e),Br.updateMatrix(),this.applyMatrix4(Br.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Nn).negate(),this.translate(Nn.x,Nn.y,Nn.z),this}setFromPoints(e){const t=[];for(let n=0,i=e.length;n<i;n++){const r=e[n];t.push(r.x,r.y,r.z||0)}return this.setAttribute("position",new st(t,3)),this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new At);const e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set "mesh.frustumCulled" to "false".',this),this.boundingBox.set(new w(-1/0,-1/0,-1/0),new w(1/0,1/0,1/0));return}if(e!==void 0){if(this.boundingBox.setFromBufferAttribute(e),t)for(let n=0,i=t.length;n<i;n++){const r=t[n];yt.setFromBufferAttribute(r),this.morphTargetsRelative?(at.addVectors(this.boundingBox.min,yt.min),this.boundingBox.expandByPoint(at),at.addVectors(this.boundingBox.max,yt.max),this.boundingBox.expandByPoint(at)):(this.boundingBox.expandByPoint(yt.min),this.boundingBox.expandByPoint(yt.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(){this.boundingSphere===null&&(this.boundingSphere=new Cn);const e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set "mesh.frustumCulled" to "false".',this),this.boundingSphere.set(new w,1/0);return}if(e){const n=this.boundingSphere.center;if(yt.setFromBufferAttribute(e),t)for(let r=0,a=t.length;r<a;r++){const o=t[r];ai.setFromBufferAttribute(o),this.morphTargetsRelative?(at.addVectors(yt.min,ai.min),yt.expandByPoint(at),at.addVectors(yt.max,ai.max),yt.expandByPoint(at)):(yt.expandByPoint(ai.min),yt.expandByPoint(ai.max))}yt.getCenter(n);let i=0;for(let r=0,a=e.count;r<a;r++)at.fromBufferAttribute(e,r),i=Math.max(i,n.distanceToSquared(at));if(t)for(let r=0,a=t.length;r<a;r++){const o=t[r],c=this.morphTargetsRelative;for(let l=0,h=o.count;l<h;l++)at.fromBufferAttribute(o,l),c&&(Nn.fromBufferAttribute(e,l),at.add(Nn)),i=Math.max(i,n.distanceToSquared(at))}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 e=this.index,t=this.attributes;if(e===null||t.position===void 0||t.normal===void 0||t.uv===void 0){console.error("THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");return}const n=e.array,i=t.position.array,r=t.normal.array,a=t.uv.array,o=i.length/3;t.tangent===void 0&&this.setAttribute("tangent",new nt(new Float32Array(4*o),4));const c=t.tangent.array,l=[],h=[];for(let j=0;j<o;j++)l[j]=new w,h[j]=new w;const u=new w,d=new w,p=new w,g=new J,_=new J,M=new J,m=new w,f=new w;function E(j,x,L){u.fromArray(i,j*3),d.fromArray(i,x*3),p.fromArray(i,L*3),g.fromArray(a,j*2),_.fromArray(a,x*2),M.fromArray(a,L*2),d.sub(u),p.sub(u),_.sub(g),M.sub(g);const D=1/(_.x*M.y-M.x*_.y);!isFinite(D)||(m.copy(d).multiplyScalar(M.y).addScaledVector(p,-_.y).multiplyScalar(D),f.copy(p).multiplyScalar(_.x).addScaledVector(d,-M.x).multiplyScalar(D),l[j].add(m),l[x].add(m),l[L].add(m),h[j].add(f),h[x].add(f),h[L].add(f))}let y=this.groups;y.length===0&&(y=[{start:0,count:n.length}]);for(let j=0,x=y.length;j<x;++j){const L=y[j],D=L.start,B=L.count;for(let N=D,I=D+B;N<I;N+=3)E(n[N+0],n[N+1],n[N+2])}const T=new w,R=new w,C=new w,Z=new w;function se(j){C.fromArray(r,j*3),Z.copy(C);const x=l[j];T.copy(x),T.sub(C.multiplyScalar(C.dot(x))).normalize(),R.crossVectors(Z,x);const D=R.dot(h[j])<0?-1:1;c[j*4]=T.x,c[j*4+1]=T.y,c[j*4+2]=T.z,c[j*4+3]=D}for(let j=0,x=y.length;j<x;++j){const L=y[j],D=L.start,B=L.count;for(let N=D,I=D+B;N<I;N+=3)se(n[N+0]),se(n[N+1]),se(n[N+2])}}computeVertexNormals(){const e=this.index,t=this.getAttribute("position");if(t!==void 0){let n=this.getAttribute("normal");if(n===void 0)n=new nt(new Float32Array(t.count*3),3),this.setAttribute("normal",n);else for(let d=0,p=n.count;d<p;d++)n.setXYZ(d,0,0,0);const i=new w,r=new w,a=new w,o=new w,c=new w,l=new w,h=new w,u=new w;if(e)for(let d=0,p=e.count;d<p;d+=3){const g=e.getX(d+0),_=e.getX(d+1),M=e.getX(d+2);i.fromBufferAttribute(t,g),r.fromBufferAttribute(t,_),a.fromBufferAttribute(t,M),h.subVectors(a,r),u.subVectors(i,r),h.cross(u),o.fromBufferAttribute(n,g),c.fromBufferAttribute(n,_),l.fromBufferAttribute(n,M),o.add(h),c.add(h),l.add(h),n.setXYZ(g,o.x,o.y,o.z),n.setXYZ(_,c.x,c.y,c.z),n.setXYZ(M,l.x,l.y,l.z)}else for(let d=0,p=t.count;d<p;d+=3)i.fromBufferAttribute(t,d+0),r.fromBufferAttribute(t,d+1),a.fromBufferAttribute(t,d+2),h.subVectors(a,r),u.subVectors(i,r),h.cross(u),n.setXYZ(d+0,h.x,h.y,h.z),n.setXYZ(d+1,h.x,h.y,h.z),n.setXYZ(d+2,h.x,h.y,h.z);this.normalizeNormals(),n.needsUpdate=!0}}merge(e,t){if(!(e&&e.isBufferGeometry)){console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.",e);return}t===void 0&&(t=0,console.warn("THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge."));const n=this.attributes;for(const i in n){if(e.attributes[i]===void 0)continue;const a=n[i].array,o=e.attributes[i],c=o.array,l=o.itemSize*t,h=Math.min(c.length,a.length-l);for(let u=0,d=l;u<h;u++,d++)a[d]=c[u]}return this}normalizeNormals(){const e=this.attributes.normal;for(let t=0,n=e.count;t<n;t++)at.fromBufferAttribute(e,t),at.normalize(),e.setXYZ(t,at.x,at.y,at.z)}toNonIndexed(){function e(o,c){const l=o.array,h=o.itemSize,u=o.normalized,d=new l.constructor(c.length*h);let p=0,g=0;for(let _=0,M=c.length;_<M;_++){o.isInterleavedBufferAttribute?p=c[_]*o.data.stride+o.offset:p=c[_]*h;for(let m=0;m<h;m++)d[g++]=l[p++]}return new nt(d,h,u)}if(this.index===null)return console.warn("THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;const t=new Ze,n=this.index.array,i=this.attributes;for(const o in i){const c=i[o],l=e(c,n);t.setAttribute(o,l)}const r=this.morphAttributes;for(const o in r){const c=[],l=r[o];for(let h=0,u=l.length;h<u;h++){const d=l[h],p=e(d,n);c.push(p)}t.morphAttributes[o]=c}t.morphTargetsRelative=this.morphTargetsRelative;const a=this.groups;for(let o=0,c=a.length;o<c;o++){const l=a[o];t.addGroup(l.start,l.count,l.materialIndex)}return t}toJSON(){const e={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(e.uuid=this.uuid,e.type=this.type,this.name!==""&&(e.name=this.name),Object.keys(this.userData).length>0&&(e.userData=this.userData),this.parameters!==void 0){const c=this.parameters;for(const l in c)c[l]!==void 0&&(e[l]=c[l]);return e}e.data={attributes:{}};const t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const n=this.attributes;for(const c in n){const l=n[c];e.data.attributes[c]=l.toJSON(e.data)}const i={};let r=!1;for(const c in this.morphAttributes){const l=this.morphAttributes[c],h=[];for(let u=0,d=l.length;u<d;u++){const p=l[u];h.push(p.toJSON(e.data))}h.length>0&&(i[c]=h,r=!0)}r&&(e.data.morphAttributes=i,e.data.morphTargetsRelative=this.morphTargetsRelative);const a=this.groups;a.length>0&&(e.data.groups=JSON.parse(JSON.stringify(a)));const o=this.boundingSphere;return o!==null&&(e.data.boundingSphere={center:o.center.toArray(),radius:o.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const t={};this.name=e.name;const n=e.index;n!==null&&this.setIndex(n.clone(t));const i=e.attributes;for(const l in i){const h=i[l];this.setAttribute(l,h.clone(t))}const r=e.morphAttributes;for(const l in r){const h=[],u=r[l];for(let d=0,p=u.length;d<p;d++)h.push(u[d].clone(t));this.morphAttributes[l]=h}this.morphTargetsRelative=e.morphTargetsRelative;const a=e.groups;for(let l=0,h=a.length;l<h;l++){const u=a[l];this.addGroup(u.start,u.count,u.materialIndex)}const o=e.boundingBox;o!==null&&(this.boundingBox=o.clone());const c=e.boundingSphere;return c!==null&&(this.boundingSphere=c.clone()),this.drawRange.start=e.drawRange.start,this.drawRange.count=e.drawRange.count,this.userData=e.userData,e.parameters!==void 0&&(this.parameters=Object.assign({},e.parameters)),this}dispose(){this.dispatchEvent({type:"dispose"})}}Ze.prototype.isBufferGeometry=!0;const Hs=new _e,zn=new Ln,Nr=new Cn,nn=new w,rn=new w,sn=new w,zr=new w,Ur=new w,Or=new w,Ni=new w,zi=new w,Ui=new w,Oi=new J,Gi=new J,Hi=new J,Gr=new w,Vi=new w;class gt extends Oe{constructor(e=new Ze,t=new Fi){super();this.type="Mesh",this.geometry=e,this.material=t,this.updateMorphTargets()}copy(e){return super.copy(e),e.morphTargetInfluences!==void 0&&(this.morphTargetInfluences=e.morphTargetInfluences.slice()),e.morphTargetDictionary!==void 0&&(this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),this.material=e.material,this.geometry=e.geometry,this}updateMorphTargets(){const e=this.geometry;if(e.isBufferGeometry){const t=e.morphAttributes,n=Object.keys(t);if(n.length>0){const i=t[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,a=i.length;r<a;r++){const o=i[r].name||String(r);this.morphTargetInfluences.push(0),this.morphTargetDictionary[o]=r}}}}else{const t=e.morphTargets;t!==void 0&&t.length>0&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}}raycast(e,t){const n=this.geometry,i=this.material,r=this.matrixWorld;if(i===void 0||(n.boundingSphere===null&&n.computeBoundingSphere(),Nr.copy(n.boundingSphere),Nr.applyMatrix4(r),e.ray.intersectsSphere(Nr)===!1)||(Hs.copy(r).invert(),zn.copy(e.ray).applyMatrix4(Hs),n.boundingBox!==null&&zn.intersectsBox(n.boundingBox)===!1))return;let a;if(n.isBufferGeometry){const o=n.index,c=n.attributes.position,l=n.morphAttributes.position,h=n.morphTargetsRelative,u=n.attributes.uv,d=n.attributes.uv2,p=n.groups,g=n.drawRange;if(o!==null)if(Array.isArray(i))for(let _=0,M=p.length;_<M;_++){const m=p[_],f=i[m.materialIndex],E=Math.max(m.start,g.start),y=Math.min(o.count,Math.min(m.start+m.count,g.start+g.count));for(let T=E,R=y;T<R;T+=3){const C=o.getX(T),Z=o.getX(T+1),se=o.getX(T+2);a=ki(this,f,e,zn,c,l,h,u,d,C,Z,se),a&&(a.faceIndex=Math.floor(T/3),a.face.materialIndex=m.materialIndex,t.push(a))}}else{const _=Math.max(0,g.start),M=Math.min(o.count,g.start+g.count);for(let m=_,f=M;m<f;m+=3){const E=o.getX(m),y=o.getX(m+1),T=o.getX(m+2);a=ki(this,i,e,zn,c,l,h,u,d,E,y,T),a&&(a.faceIndex=Math.floor(m/3),t.push(a))}}else if(c!==void 0)if(Array.isArray(i))for(let _=0,M=p.length;_<M;_++){const m=p[_],f=i[m.materialIndex],E=Math.max(m.start,g.start),y=Math.min(c.count,Math.min(m.start+m.count,g.start+g.count));for(let T=E,R=y;T<R;T+=3){const C=T,Z=T+1,se=T+2;a=ki(this,f,e,zn,c,l,h,u,d,C,Z,se),a&&(a.faceIndex=Math.floor(T/3),a.face.materialIndex=m.materialIndex,t.push(a))}}else{const _=Math.max(0,g.start),M=Math.min(c.count,g.start+g.count);for(let m=_,f=M;m<f;m+=3){const E=m,y=m+1,T=m+2;a=ki(this,i,e,zn,c,l,h,u,d,E,y,T),a&&(a.faceIndex=Math.floor(m/3),t.push(a))}}}else n.isGeometry&&console.error("THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}}gt.prototype.isMesh=!0;function zo(s,e,t,n,i,r,a,o){let c;if(e.side===1?c=n.intersectTriangle(a,r,i,!0,o):c=n.intersectTriangle(i,r,a,e.side!==2,o),c===null)return null;Vi.copy(o),Vi.applyMatrix4(s.matrixWorld);const l=t.ray.origin.distanceTo(Vi);return l<t.near||l>t.far?null:{distance:l,point:Vi.clone(),object:s}}function ki(s,e,t,n,i,r,a,o,c,l,h,u){nn.fromBufferAttribute(i,l),rn.fromBufferAttribute(i,h),sn.fromBufferAttribute(i,u);const d=s.morphTargetInfluences;if(r&&d){Ni.set(0,0,0),zi.set(0,0,0),Ui.set(0,0,0);for(let g=0,_=r.length;g<_;g++){const M=d[g],m=r[g];M!==0&&(zr.fromBufferAttribute(m,l),Ur.fromBufferAttribute(m,h),Or.fromBufferAttribute(m,u),a?(Ni.addScaledVector(zr,M),zi.addScaledVector(Ur,M),Ui.addScaledVector(Or,M)):(Ni.addScaledVector(zr.sub(nn),M),zi.addScaledVector(Ur.sub(rn),M),Ui.addScaledVector(Or.sub(sn),M)))}nn.add(Ni),rn.add(zi),sn.add(Ui)}s.isSkinnedMesh&&(s.boneTransform(l,nn),s.boneTransform(h,rn),s.boneTransform(u,sn));const p=zo(s,e,t,n,nn,rn,sn,Gr);if(p){o&&(Oi.fromBufferAttribute(o,l),Gi.fromBufferAttribute(o,h),Hi.fromBufferAttribute(o,u),p.uv=tt.getUV(Gr,nn,rn,sn,Oi,Gi,Hi,new J)),c&&(Oi.fromBufferAttribute(c,l),Gi.fromBufferAttribute(c,h),Hi.fromBufferAttribute(c,u),p.uv2=tt.getUV(Gr,nn,rn,sn,Oi,Gi,Hi,new J));const g={a:l,b:h,c:u,normal:new w,materialIndex:0};tt.getNormal(nn,rn,sn,g.normal),p.face=g}return p}class Un extends Ze{constructor(e=1,t=1,n=1,i=1,r=1,a=1){super();this.type="BoxGeometry",this.parameters={width:e,height:t,depth:n,widthSegments:i,heightSegments:r,depthSegments:a};const o=this;i=Math.floor(i),r=Math.floor(r),a=Math.floor(a);const c=[],l=[],h=[],u=[];let d=0,p=0;g("z","y","x",-1,-1,n,t,e,a,r,0),g("z","y","x",1,-1,n,t,-e,a,r,1),g("x","z","y",1,1,e,n,t,i,a,2),g("x","z","y",1,-1,e,n,-t,i,a,3),g("x","y","z",1,-1,e,t,n,i,r,4),g("x","y","z",-1,-1,e,t,-n,i,r,5),this.setIndex(c),this.setAttribute("position",new st(l,3)),this.setAttribute("normal",new st(h,3)),this.setAttribute("uv",new st(u,2));function g(_,M,m,f,E,y,T,R,C,Z,se){const j=y/C,x=T/Z,L=y/2,D=T/2,B=R/2,N=C+1,I=Z+1;let H=0,Y=0;const ce=new w;for(let O=0;O<I;O++){const X=O*x-D;for(let ne=0;ne<N;ne++){const ue=ne*j-L;ce[_]=ue*f,ce[M]=X*E,ce[m]=B,l.push(ce.x,ce.y,ce.z),ce[_]=0,ce[M]=0,ce[m]=R>0?1:-1,h.push(ce.x,ce.y,ce.z),u.push(ne/C),u.push(1-O/Z),H+=1}}for(let O=0;O<Z;O++)for(let X=0;X<C;X++){const ne=d+X+N*O,ue=d+X+N*(O+1),ge=d+(X+1)+N*(O+1),U=d+(X+1)+N*O;c.push(ne,ue,U),c.push(ue,ge,U),Y+=6}o.addGroup(p,Y,se),p+=Y,d+=H}}static fromJSON(e){return new Un(e.width,e.height,e.depth,e.widthSegments,e.heightSegments,e.depthSegments)}}function On(s){const e={};for(const t in s){e[t]={};for(const n in s[t]){const i=s[t][n];i&&(i.isColor||i.isMatrix3||i.isMatrix4||i.isVector2||i.isVector3||i.isVector4||i.isTexture||i.isQuaternion)?e[t][n]=i.clone():Array.isArray(i)?e[t][n]=i.slice():e[t][n]=i}}return e}function ht(s){const e={};for(let t=0;t<s.length;t++){const n=On(s[t]);for(const i in n)e[i]=n[i]}return e}const Uo={clone:On,merge:ht};var Oo=`void main() { + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); +}`,Go=`void main() { + gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 ); +}`;class vn extends ct{constructor(e){super();this.type="ShaderMaterial",this.defines={},this.uniforms={},this.vertexShader=Oo,this.fragmentShader=Go,this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,e!==void 0&&(e.attributes!==void 0&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(e))}copy(e){return super.copy(e),this.fragmentShader=e.fragmentShader,this.vertexShader=e.vertexShader,this.uniforms=On(e.uniforms),this.defines=Object.assign({},e.defines),this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.lights=e.lights,this.clipping=e.clipping,this.extensions=Object.assign({},e.extensions),this.glslVersion=e.glslVersion,this}toJSON(e){const t=super.toJSON(e);t.glslVersion=this.glslVersion,t.uniforms={};for(const i in this.uniforms){const a=this.uniforms[i].value;a&&a.isTexture?t.uniforms[i]={type:"t",value:a.toJSON(e).uuid}:a&&a.isColor?t.uniforms[i]={type:"c",value:a.getHex()}:a&&a.isVector2?t.uniforms[i]={type:"v2",value:a.toArray()}:a&&a.isVector3?t.uniforms[i]={type:"v3",value:a.toArray()}:a&&a.isVector4?t.uniforms[i]={type:"v4",value:a.toArray()}:a&&a.isMatrix3?t.uniforms[i]={type:"m3",value:a.toArray()}:a&&a.isMatrix4?t.uniforms[i]={type:"m4",value:a.toArray()}:t.uniforms[i]={value:a}}Object.keys(this.defines).length>0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader;const n={};for(const i in this.extensions)this.extensions[i]===!0&&(n[i]=!0);return Object.keys(n).length>0&&(t.extensions=n),t}}vn.prototype.isShaderMaterial=!0;class Hr extends Oe{constructor(){super();this.type="Camera",this.matrixWorldInverse=new _e,this.projectionMatrix=new _e,this.projectionMatrixInverse=new _e}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this}getWorldDirection(e){this.updateWorldMatrix(!0,!1);const t=this.matrixWorld.elements;return e.set(-t[8],-t[9],-t[10]).normalize()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}Hr.prototype.isCamera=!0;class _t extends Hr{constructor(e=50,t=1,n=.1,i=2e3){super();this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=xr*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(_r*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return xr*2*Math.atan(Math.tan(_r*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(e,t,n,i,r,a){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(_r*.5*this.fov)/this.zoom,n=2*t,i=this.aspect*n,r=-.5*i;const a=this.view;if(this.view!==null&&this.view.enabled){const c=a.fullWidth,l=a.fullHeight;r+=a.offsetX*i/c,t-=a.offsetY*n/l,i*=a.width/c,n*=a.height/l}const o=this.filmOffset;o!==0&&(r+=e*o/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,t,t-n,e,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}_t.prototype.isPerspectiveCamera=!0;const Gn=90,Hn=1;class Vr extends Oe{constructor(e,t,n){super();if(this.type="CubeCamera",n.isWebGLCubeRenderTarget!==!0){console.error("THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.");return}this.renderTarget=n;const i=new _t(Gn,Hn,e,t);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new w(1,0,0)),this.add(i);const r=new _t(Gn,Hn,e,t);r.layers=this.layers,r.up.set(0,-1,0),r.lookAt(new w(-1,0,0)),this.add(r);const a=new _t(Gn,Hn,e,t);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(new w(0,1,0)),this.add(a);const o=new _t(Gn,Hn,e,t);o.layers=this.layers,o.up.set(0,0,-1),o.lookAt(new w(0,-1,0)),this.add(o);const c=new _t(Gn,Hn,e,t);c.layers=this.layers,c.up.set(0,-1,0),c.lookAt(new w(0,0,1)),this.add(c);const l=new _t(Gn,Hn,e,t);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new w(0,0,-1)),this.add(l)}update(e,t){this.parent===null&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,a,o,c,l]=this.children,h=e.xr.enabled,u=e.getRenderTarget();e.xr.enabled=!1;const d=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,e.setRenderTarget(n,0),e.render(t,i),e.setRenderTarget(n,1),e.render(t,r),e.setRenderTarget(n,2),e.render(t,a),e.setRenderTarget(n,3),e.render(t,o),e.setRenderTarget(n,4),e.render(t,c),n.texture.generateMipmaps=d,e.setRenderTarget(n,5),e.render(t,l),e.setRenderTarget(u),e.xr.enabled=h,n.texture.needsPMREMUpdate=!0}}class Wi extends rt{constructor(e,t,n,i,r,a,o,c,l,h){e=e!==void 0?e:[],t=t!==void 0?t:301;super(e,t,n,i,r,a,o,c,l,h);this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}Wi.prototype.isCubeTexture=!0;class Vs extends St{constructor(e,t,n){Number.isInteger(t)&&(console.warn("THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )"),t=n);super(e,e,t);t=t||{},this.texture=new Wi(void 0,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:1006}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.format=1023,this.texture.encoding=t.encoding,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include <begin_vertex> + #include <project_vertex> + + } + `,fragmentShader:` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include <common> + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + `},i=new Un(5,5,5),r=new vn({name:"CubemapFromEquirect",uniforms:On(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});r.uniforms.tEquirect.value=t;const a=new gt(i,r),o=t.minFilter;return t.minFilter===1008&&(t.minFilter=1006),new Vr(1,10,this).update(e,a),t.minFilter=o,a.geometry.dispose(),a.material.dispose(),this}clear(e,t,n,i){const r=e.getRenderTarget();for(let a=0;a<6;a++)e.setRenderTarget(this,a),e.clear(t,n,i);e.setRenderTarget(r)}}Vs.prototype.isWebGLCubeRenderTarget=!0;const kr=new w,Ho=new w,Vo=new lt;class Zt{constructor(e=new w(1,0,0),t=0){this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,n,i){return this.normal.set(e,t,n),this.constant=i,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,n){const i=kr.subVectors(n,t).cross(Ho.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(i,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(this.normal).multiplyScalar(-this.distanceToPoint(e)).add(e)}intersectLine(e,t){const n=e.delta(kr),i=this.normal.dot(n);if(i===0)return this.distanceToPoint(e.start)===0?t.copy(e.start):null;const r=-(e.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:t.copy(n).multiplyScalar(r).add(e.start)}intersectsLine(e){const t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const n=t||Vo.getNormalMatrix(e),i=this.coplanarPoint(kr).applyMatrix4(e),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}Zt.prototype.isPlane=!0;const Vn=new Cn,qi=new w;class Xi{constructor(e=new Zt,t=new Zt,n=new Zt,i=new Zt,r=new Zt,a=new Zt){this.planes=[e,t,n,i,r,a]}set(e,t,n,i,r,a){const o=this.planes;return o[0].copy(e),o[1].copy(t),o[2].copy(n),o[3].copy(i),o[4].copy(r),o[5].copy(a),this}copy(e){const t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this}setFromProjectionMatrix(e){const t=this.planes,n=e.elements,i=n[0],r=n[1],a=n[2],o=n[3],c=n[4],l=n[5],h=n[6],u=n[7],d=n[8],p=n[9],g=n[10],_=n[11],M=n[12],m=n[13],f=n[14],E=n[15];return t[0].setComponents(o-i,u-c,_-d,E-M).normalize(),t[1].setComponents(o+i,u+c,_+d,E+M).normalize(),t[2].setComponents(o+r,u+l,_+p,E+m).normalize(),t[3].setComponents(o-r,u-l,_-p,E-m).normalize(),t[4].setComponents(o-a,u-h,_-g,E-f).normalize(),t[5].setComponents(o+a,u+h,_+g,E+f).normalize(),this}intersectsObject(e){const t=e.geometry;return t.boundingSphere===null&&t.computeBoundingSphere(),Vn.copy(t.boundingSphere).applyMatrix4(e.matrixWorld),this.intersectsSphere(Vn)}intersectsSprite(e){return Vn.center.set(0,0,0),Vn.radius=.7071067811865476,Vn.applyMatrix4(e.matrixWorld),this.intersectsSphere(Vn)}intersectsSphere(e){const t=this.planes,n=e.center,i=-e.radius;for(let r=0;r<6;r++)if(t[r].distanceToPoint(n)<i)return!1;return!0}intersectsBox(e){const t=this.planes;for(let n=0;n<6;n++){const i=t[n];if(qi.x=i.normal.x>0?e.max.x:e.min.x,qi.y=i.normal.y>0?e.max.y:e.min.y,qi.z=i.normal.z>0?e.max.z:e.min.z,i.distanceToPoint(qi)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let n=0;n<6;n++)if(t[n].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function ks(){let s=null,e=!1,t=null,n=null;function i(r,a){t(r,a),n=s.requestAnimationFrame(i)}return{start:function(){e!==!0&&t!==null&&(n=s.requestAnimationFrame(i),e=!0)},stop:function(){s.cancelAnimationFrame(n),e=!1},setAnimationLoop:function(r){t=r},setContext:function(r){s=r}}}function ko(s,e){const t=e.isWebGL2,n=new WeakMap;function i(l,h){const u=l.array,d=l.usage,p=s.createBuffer();s.bindBuffer(h,p),s.bufferData(h,u,d),l.onUploadCallback();let g=5126;return u instanceof Float32Array?g=5126:u instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):u instanceof Uint16Array?l.isFloat16BufferAttribute?t?g=5131:console.warn("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2."):g=5123:u instanceof Int16Array?g=5122:u instanceof Uint32Array?g=5125:u instanceof Int32Array?g=5124:u instanceof Int8Array?g=5120:(u instanceof Uint8Array||u instanceof Uint8ClampedArray)&&(g=5121),{buffer:p,type:g,bytesPerElement:u.BYTES_PER_ELEMENT,version:l.version}}function r(l,h,u){const d=h.array,p=h.updateRange;s.bindBuffer(u,l),p.count===-1?s.bufferSubData(u,0,d):(t?s.bufferSubData(u,p.offset*d.BYTES_PER_ELEMENT,d,p.offset,p.count):s.bufferSubData(u,p.offset*d.BYTES_PER_ELEMENT,d.subarray(p.offset,p.offset+p.count)),p.count=-1)}function a(l){return l.isInterleavedBufferAttribute&&(l=l.data),n.get(l)}function o(l){l.isInterleavedBufferAttribute&&(l=l.data);const h=n.get(l);h&&(s.deleteBuffer(h.buffer),n.delete(l))}function c(l,h){if(l.isGLBufferAttribute){const d=n.get(l);(!d||d.version<l.version)&&n.set(l,{buffer:l.buffer,type:l.type,bytesPerElement:l.elementSize,version:l.version});return}l.isInterleavedBufferAttribute&&(l=l.data);const u=n.get(l);u===void 0?n.set(l,i(l,h)):u.version<l.version&&(r(u.buffer,l,h),u.version=l.version)}return{get:a,remove:o,update:c}}class Wr extends Ze{constructor(e=1,t=1,n=1,i=1){super();this.type="PlaneGeometry",this.parameters={width:e,height:t,widthSegments:n,heightSegments:i};const r=e/2,a=t/2,o=Math.floor(n),c=Math.floor(i),l=o+1,h=c+1,u=e/o,d=t/c,p=[],g=[],_=[],M=[];for(let m=0;m<h;m++){const f=m*d-a;for(let E=0;E<l;E++){const y=E*u-r;g.push(y,-f,0),_.push(0,0,1),M.push(E/o),M.push(1-m/c)}}for(let m=0;m<c;m++)for(let f=0;f<o;f++){const E=f+l*m,y=f+l*(m+1),T=f+1+l*(m+1),R=f+1+l*m;p.push(E,y,R),p.push(y,T,R)}this.setIndex(p),this.setAttribute("position",new st(g,3)),this.setAttribute("normal",new st(_,3)),this.setAttribute("uv",new st(M,2))}static fromJSON(e){return new Wr(e.width,e.height,e.widthSegments,e.heightSegments)}}var Wo=`#ifdef USE_ALPHAMAP + diffuseColor.a *= texture2D( alphaMap, vUv ).g; +#endif`,qo=`#ifdef USE_ALPHAMAP + uniform sampler2D alphaMap; +#endif`,Xo=`#ifdef USE_ALPHATEST + if ( diffuseColor.a < alphaTest ) discard; +#endif`,Zo=`#ifdef USE_ALPHATEST + uniform float alphaTest; +#endif`,jo=`#ifdef USE_AOMAP + float ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0; + reflectedLight.indirectDiffuse *= ambientOcclusion; + #if defined( USE_ENVMAP ) && defined( STANDARD ) + float dotNV = saturate( dot( geometry.normal, geometry.viewDir ) ); + reflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness ); + #endif +#endif`,Yo=`#ifdef USE_AOMAP + uniform sampler2D aoMap; + uniform float aoMapIntensity; +#endif`,Jo="vec3 transformed = vec3( position );",$o=`vec3 objectNormal = vec3( normal ); +#ifdef USE_TANGENT + vec3 objectTangent = vec3( tangent.xyz ); +#endif`,Ko=`vec3 BRDF_Lambert( const in vec3 diffuseColor ) { + return RECIPROCAL_PI * diffuseColor; +} +vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} +float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { + float a2 = pow2( alpha ); + float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); + float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); + return 0.5 / max( gv + gl, EPSILON ); +} +float D_GGX( const in float alpha, const in float dotNH ) { + float a2 = pow2( alpha ); + float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; + return RECIPROCAL_PI * a2 / pow2( denom ); +} +vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 f0, const in float f90, const in float roughness ) { + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + return F * ( V * D ); +} +vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { + const float LUT_SIZE = 64.0; + const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; + const float LUT_BIAS = 0.5 / LUT_SIZE; + float dotNV = saturate( dot( N, V ) ); + vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); + uv = uv * LUT_SCALE + LUT_BIAS; + return uv; +} +float LTC_ClippedSphereFormFactor( const in vec3 f ) { + float l = length( f ); + return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); +} +vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { + float x = dot( v1, v2 ); + float y = abs( x ); + float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; + float b = 3.4175940 + ( 4.1616724 + y ) * y; + float v = a / b; + float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; + return cross( v1, v2 ) * theta_sintheta; +} +vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { + vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; + vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; + vec3 lightNormal = cross( v1, v2 ); + if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); + vec3 T1, T2; + T1 = normalize( V - N * dot( V, N ) ); + T2 = - cross( N, T1 ); + mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); + vec3 coords[ 4 ]; + coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); + coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); + coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); + coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); + coords[ 0 ] = normalize( coords[ 0 ] ); + coords[ 1 ] = normalize( coords[ 1 ] ); + coords[ 2 ] = normalize( coords[ 2 ] ); + coords[ 3 ] = normalize( coords[ 3 ] ); + vec3 vectorFormFactor = vec3( 0.0 ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); + float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); + return vec3( result ); +} +float G_BlinnPhong_Implicit( ) { + return 0.25; +} +float D_BlinnPhong( const in float shininess, const in float dotNH ) { + return RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess ); +} +vec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( specularColor, 1.0, dotVH ); + float G = G_BlinnPhong_Implicit( ); + float D = D_BlinnPhong( shininess, dotNH ); + return F * ( G * D ); +} +#if defined( USE_SHEEN ) +float D_Charlie( float roughness, float dotNH ) { + float alpha = pow2( roughness ); + float invAlpha = 1.0 / alpha; + float cos2h = dotNH * dotNH; + float sin2h = max( 1.0 - cos2h, 0.0078125 ); + return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); +} +float V_Neubelt( float dotNV, float dotNL ) { + return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); +} +vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float D = D_Charlie( sheenRoughness, dotNH ); + float V = V_Neubelt( dotNV, dotNL ); + return sheenColor * ( D * V ); +} +#endif`,Qo=`#ifdef USE_BUMPMAP + uniform sampler2D bumpMap; + uniform float bumpScale; + vec2 dHdxy_fwd() { + vec2 dSTdx = dFdx( vUv ); + vec2 dSTdy = dFdy( vUv ); + float Hll = bumpScale * texture2D( bumpMap, vUv ).x; + float dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll; + float dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll; + return vec2( dBx, dBy ); + } + vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) { + vec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) ); + vec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) ); + vec3 vN = surf_norm; + vec3 R1 = cross( vSigmaY, vN ); + vec3 R2 = cross( vN, vSigmaX ); + float fDet = dot( vSigmaX, R1 ) * faceDirection; + vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 ); + return normalize( abs( fDet ) * surf_norm - vGrad ); + } +#endif`,el=`#if NUM_CLIPPING_PLANES > 0 + vec4 plane; + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + bool clipped = true; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; + } + #pragma unroll_loop_end + if ( clipped ) discard; + #endif +#endif`,tl=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; + uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; +#endif`,nl=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; +#endif`,il=`#if NUM_CLIPPING_PLANES > 0 + vClipPosition = - mvPosition.xyz; +#endif`,rl=`#if defined( USE_COLOR_ALPHA ) + diffuseColor *= vColor; +#elif defined( USE_COLOR ) + diffuseColor.rgb *= vColor; +#endif`,sl=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) + varying vec3 vColor; +#endif`,al=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + varying vec3 vColor; +#endif`,ol=`#if defined( USE_COLOR_ALPHA ) + vColor = vec4( 1.0 ); +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + vColor = vec3( 1.0 ); +#endif +#ifdef USE_COLOR + vColor *= color; +#endif +#ifdef USE_INSTANCING_COLOR + vColor.xyz *= instanceColor.xyz; +#endif`,ll=`#define PI 3.141592653589793 +#define PI2 6.283185307179586 +#define PI_HALF 1.5707963267948966 +#define RECIPROCAL_PI 0.3183098861837907 +#define RECIPROCAL_PI2 0.15915494309189535 +#define EPSILON 1e-6 +#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +#define whiteComplement( a ) ( 1.0 - saturate( a ) ) +float pow2( const in float x ) { return x*x; } +float pow3( const in float x ) { return x*x*x; } +float pow4( const in float x ) { float x2 = x*x; return x2*x2; } +float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } +float average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); } +highp float rand( const in vec2 uv ) { + const highp float a = 12.9898, b = 78.233, c = 43758.5453; + highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); + return fract( sin( sn ) * c ); +} +#ifdef HIGH_PRECISION + float precisionSafeLength( vec3 v ) { return length( v ); } +#else + float precisionSafeLength( vec3 v ) { + float maxComponent = max3( abs( v ) ); + return length( v / maxComponent ) * maxComponent; + } +#endif +struct IncidentLight { + vec3 color; + vec3 direction; + bool visible; +}; +struct ReflectedLight { + vec3 directDiffuse; + vec3 directSpecular; + vec3 indirectDiffuse; + vec3 indirectSpecular; +}; +struct GeometricContext { + vec3 position; + vec3 normal; + vec3 viewDir; +#ifdef USE_CLEARCOAT + vec3 clearcoatNormal; +#endif +}; +vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); +} +vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); +} +mat3 transposeMat3( const in mat3 m ) { + mat3 tmp; + tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); + tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); + tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); + return tmp; +} +float linearToRelativeLuminance( const in vec3 color ) { + vec3 weights = vec3( 0.2126, 0.7152, 0.0722 ); + return dot( weights, color.rgb ); +} +bool isPerspectiveMatrix( mat4 m ) { + return m[ 2 ][ 3 ] == - 1.0; +} +vec2 equirectUv( in vec3 dir ) { + float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; + float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; + return vec2( u, v ); +}`,cl=`#ifdef ENVMAP_TYPE_CUBE_UV + #define cubeUV_maxMipLevel 8.0 + #define cubeUV_minMipLevel 4.0 + #define cubeUV_maxTileSize 256.0 + #define cubeUV_minTileSize 16.0 + float getFace( vec3 direction ) { + vec3 absDirection = abs( direction ); + float face = - 1.0; + if ( absDirection.x > absDirection.z ) { + if ( absDirection.x > absDirection.y ) + face = direction.x > 0.0 ? 0.0 : 3.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } else { + if ( absDirection.z > absDirection.y ) + face = direction.z > 0.0 ? 2.0 : 5.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } + return face; + } + vec2 getUV( vec3 direction, float face ) { + vec2 uv; + if ( face == 0.0 ) { + uv = vec2( direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 1.0 ) { + uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); + } else if ( face == 2.0 ) { + uv = vec2( - direction.x, direction.y ) / abs( direction.z ); + } else if ( face == 3.0 ) { + uv = vec2( - direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 4.0 ) { + uv = vec2( - direction.x, direction.z ) / abs( direction.y ); + } else { + uv = vec2( direction.x, direction.y ) / abs( direction.z ); + } + return 0.5 * ( uv + 1.0 ); + } + vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { + float face = getFace( direction ); + float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); + mipInt = max( mipInt, cubeUV_minMipLevel ); + float faceSize = exp2( mipInt ); + float texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize ); + vec2 uv = getUV( direction, face ) * ( faceSize - 1.0 ) + 0.5; + if ( face > 2.0 ) { + uv.y += faceSize; + face -= 3.0; + } + uv.x += face * faceSize; + if ( mipInt < cubeUV_maxMipLevel ) { + uv.y += 2.0 * cubeUV_maxTileSize; + } + uv.y += filterInt * 2.0 * cubeUV_minTileSize; + uv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize ); + uv *= texelSize; + return texture2D( envMap, uv ).rgb; + } + #define r0 1.0 + #define v0 0.339 + #define m0 - 2.0 + #define r1 0.8 + #define v1 0.276 + #define m1 - 1.0 + #define r4 0.4 + #define v4 0.046 + #define m4 2.0 + #define r5 0.305 + #define v5 0.016 + #define m5 3.0 + #define r6 0.21 + #define v6 0.0038 + #define m6 4.0 + float roughnessToMip( float roughness ) { + float mip = 0.0; + if ( roughness >= r1 ) { + mip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0; + } else if ( roughness >= r4 ) { + mip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1; + } else if ( roughness >= r5 ) { + mip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4; + } else if ( roughness >= r6 ) { + mip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5; + } else { + mip = - 2.0 * log2( 1.16 * roughness ); } + return mip; + } + vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { + float mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel ); + float mipF = fract( mip ); + float mipInt = floor( mip ); + vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); + if ( mipF == 0.0 ) { + return vec4( color0, 1.0 ); + } else { + vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); + return vec4( mix( color0, color1, mipF ), 1.0 ); + } + } +#endif`,hl=`vec3 transformedNormal = objectNormal; +#ifdef USE_INSTANCING + mat3 m = mat3( instanceMatrix ); + transformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) ); + transformedNormal = m * transformedNormal; +#endif +transformedNormal = normalMatrix * transformedNormal; +#ifdef FLIP_SIDED + transformedNormal = - transformedNormal; +#endif +#ifdef USE_TANGENT + vec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #ifdef FLIP_SIDED + transformedTangent = - transformedTangent; + #endif +#endif`,ul=`#ifdef USE_DISPLACEMENTMAP + uniform sampler2D displacementMap; + uniform float displacementScale; + uniform float displacementBias; +#endif`,dl=`#ifdef USE_DISPLACEMENTMAP + transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias ); +#endif`,fl=`#ifdef USE_EMISSIVEMAP + vec4 emissiveColor = texture2D( emissiveMap, vUv ); + totalEmissiveRadiance *= emissiveColor.rgb; +#endif`,pl=`#ifdef USE_EMISSIVEMAP + uniform sampler2D emissiveMap; +#endif`,ml="gl_FragColor = linearToOutputTexel( gl_FragColor );",gl=`vec4 LinearToLinear( in vec4 value ) { + return value; +} +vec4 LinearTosRGB( in vec4 value ) { + return 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 ); +}`,_l=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vec3 cameraToFrag; + if ( isOrthographic ) { + cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToFrag = normalize( vWorldPosition - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vec3 reflectVec = reflect( cameraToFrag, worldNormal ); + #else + vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); + #endif + #else + vec3 reflectVec = vReflect; + #endif + #ifdef ENVMAP_TYPE_CUBE + vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); + #elif defined( ENVMAP_TYPE_CUBE_UV ) + vec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 ); + #else + vec4 envColor = vec4( 0.0 ); + #endif + #ifdef ENVMAP_BLENDING_MULTIPLY + outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_MIX ) + outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_ADD ) + outgoingLight += envColor.xyz * specularStrength * reflectivity; + #endif +#endif`,xl=`#ifdef USE_ENVMAP + uniform float envMapIntensity; + uniform float flipEnvMap; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; + #else + uniform sampler2D envMap; + #endif + +#endif`,vl=`#ifdef USE_ENVMAP + uniform float reflectivity; + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + varying vec3 vWorldPosition; + uniform float refractionRatio; + #else + varying vec3 vReflect; + #endif +#endif`,yl=`#ifdef USE_ENVMAP + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + + varying vec3 vWorldPosition; + #else + varying vec3 vReflect; + uniform float refractionRatio; + #endif +#endif`,Ml=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vWorldPosition = worldPosition.xyz; + #else + vec3 cameraToVertex; + if ( isOrthographic ) { + cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vReflect = reflect( cameraToVertex, worldNormal ); + #else + vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); + #endif + #endif +#endif`,Sl=`#ifdef USE_FOG + vFogDepth = - mvPosition.z; +#endif`,bl=`#ifdef USE_FOG + varying float vFogDepth; +#endif`,wl=`#ifdef USE_FOG + #ifdef FOG_EXP2 + float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); + #else + float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); + #endif + gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); +#endif`,Tl=`#ifdef USE_FOG + uniform vec3 fogColor; + varying float vFogDepth; + #ifdef FOG_EXP2 + uniform float fogDensity; + #else + uniform float fogNear; + uniform float fogFar; + #endif +#endif`,El=`#ifdef USE_GRADIENTMAP + uniform sampler2D gradientMap; +#endif +vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { + float dotNL = dot( normal, lightDirection ); + vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); + #ifdef USE_GRADIENTMAP + return vec3( texture2D( gradientMap, coord ).r ); + #else + return ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 ); + #endif +}`,Al=`#ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vUv2 ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + #ifndef PHYSICALLY_CORRECT_LIGHTS + lightMapIrradiance *= PI; + #endif + reflectedLight.indirectDiffuse += lightMapIrradiance; +#endif`,Rl=`#ifdef USE_LIGHTMAP + uniform sampler2D lightMap; + uniform float lightMapIntensity; +#endif`,Cl=`vec3 diffuse = vec3( 1.0 ); +GeometricContext geometry; +geometry.position = mvPosition.xyz; +geometry.normal = normalize( transformedNormal ); +geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz ); +GeometricContext backGeometry; +backGeometry.position = geometry.position; +backGeometry.normal = -geometry.normal; +backGeometry.viewDir = geometry.viewDir; +vLightFront = vec3( 0.0 ); +vIndirectFront = vec3( 0.0 ); +#ifdef DOUBLE_SIDED + vLightBack = vec3( 0.0 ); + vIndirectBack = vec3( 0.0 ); +#endif +IncidentLight directLight; +float dotNL; +vec3 directLightColor_Diffuse; +vIndirectFront += getAmbientLightIrradiance( ambientLightColor ); +vIndirectFront += getLightProbeIrradiance( lightProbe, geometry.normal ); +#ifdef DOUBLE_SIDED + vIndirectBack += getAmbientLightIrradiance( ambientLightColor ); + vIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry.normal ); +#endif +#if NUM_POINT_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + getPointLightInfo( pointLights[ i ], geometry, directLight ); + dotNL = dot( geometry.normal, directLight.direction ); + directLightColor_Diffuse = directLight.color; + vLightFront += saturate( dotNL ) * directLightColor_Diffuse; + #ifdef DOUBLE_SIDED + vLightBack += saturate( - dotNL ) * directLightColor_Diffuse; + #endif + } + #pragma unroll_loop_end +#endif +#if NUM_SPOT_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + getSpotLightInfo( spotLights[ i ], geometry, directLight ); + dotNL = dot( geometry.normal, directLight.direction ); + directLightColor_Diffuse = directLight.color; + vLightFront += saturate( dotNL ) * directLightColor_Diffuse; + #ifdef DOUBLE_SIDED + vLightBack += saturate( - dotNL ) * directLightColor_Diffuse; + #endif + } + #pragma unroll_loop_end +#endif +#if NUM_DIR_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + getDirectionalLightInfo( directionalLights[ i ], geometry, directLight ); + dotNL = dot( geometry.normal, directLight.direction ); + directLightColor_Diffuse = directLight.color; + vLightFront += saturate( dotNL ) * directLightColor_Diffuse; + #ifdef DOUBLE_SIDED + vLightBack += saturate( - dotNL ) * directLightColor_Diffuse; + #endif + } + #pragma unroll_loop_end +#endif +#if NUM_HEMI_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + vIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal ); + #ifdef DOUBLE_SIDED + vIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry.normal ); + #endif + } + #pragma unroll_loop_end +#endif`,Ll=`uniform bool receiveShadow; +uniform vec3 ambientLightColor; +uniform vec3 lightProbe[ 9 ]; +vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { + float x = normal.x, y = normal.y, z = normal.z; + vec3 result = shCoefficients[ 0 ] * 0.886227; + result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; + result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; + result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; + result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; + result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; + result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); + result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; + result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); + return result; +} +vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); + return irradiance; +} +vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { + vec3 irradiance = ambientLightColor; + return irradiance; +} +float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { + #if defined ( PHYSICALLY_CORRECT_LIGHTS ) + float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); + if ( cutoffDistance > 0.0 ) { + distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); + } + return distanceFalloff; + #else + if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) { + return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent ); + } + return 1.0; + #endif +} +float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { + return smoothstep( coneCosine, penumbraCosine, angleCosine ); +} +#if NUM_DIR_LIGHTS > 0 + struct DirectionalLight { + vec3 direction; + vec3 color; + }; + uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; + void getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) { + light.color = directionalLight.color; + light.direction = directionalLight.direction; + light.visible = true; + } +#endif +#if NUM_POINT_LIGHTS > 0 + struct PointLight { + vec3 position; + vec3 color; + float distance; + float decay; + }; + uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; + void getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) { + vec3 lVector = pointLight.position - geometry.position; + light.direction = normalize( lVector ); + float lightDistance = length( lVector ); + light.color = pointLight.color; + light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } +#endif +#if NUM_SPOT_LIGHTS > 0 + struct SpotLight { + vec3 position; + vec3 direction; + vec3 color; + float distance; + float decay; + float coneCos; + float penumbraCos; + }; + uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; + void getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) { + vec3 lVector = spotLight.position - geometry.position; + light.direction = normalize( lVector ); + float angleCos = dot( light.direction, spotLight.direction ); + float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); + if ( spotAttenuation > 0.0 ) { + float lightDistance = length( lVector ); + light.color = spotLight.color * spotAttenuation; + light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } else { + light.color = vec3( 0.0 ); + light.visible = false; + } + } +#endif +#if NUM_RECT_AREA_LIGHTS > 0 + struct RectAreaLight { + vec3 color; + vec3 position; + vec3 halfWidth; + vec3 halfHeight; + }; + uniform sampler2D ltc_1; uniform sampler2D ltc_2; + uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; +#endif +#if NUM_HEMI_LIGHTS > 0 + struct HemisphereLight { + vec3 direction; + vec3 skyColor; + vec3 groundColor; + }; + uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; + vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { + float dotNL = dot( normal, hemiLight.direction ); + float hemiDiffuseWeight = 0.5 * dotNL + 0.5; + vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); + return irradiance; + } +#endif`,Pl=`#if defined( USE_ENVMAP ) + #ifdef ENVMAP_MODE_REFRACTION + uniform float refractionRatio; + #endif + vec3 getIBLIrradiance( const in vec3 normal ) { + #if defined( ENVMAP_TYPE_CUBE_UV ) + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 ); + return PI * envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { + #if defined( ENVMAP_TYPE_CUBE_UV ) + vec3 reflectVec; + #ifdef ENVMAP_MODE_REFLECTION + reflectVec = reflect( - viewDir, normal ); + reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); + #else + reflectVec = refract( - viewDir, normal, refractionRatio ); + #endif + reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ); + return envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } +#endif`,Dl=`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;`,Il=`varying vec3 vViewPosition; +struct ToonMaterial { + vec3 diffuseColor; +}; +void RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + vec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Toon +#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon +#define Material_LightProbeLOD( material ) (0)`,Fl=`BlinnPhongMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularColor = specular; +material.specularShininess = shininess; +material.specularStrength = specularStrength;`,Bl=`varying vec3 vViewPosition; +struct BlinnPhongMaterial { + vec3 diffuseColor; + vec3 specularColor; + float specularShininess; + float specularStrength; +}; +void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometry.normal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); + reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength; +} +void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_BlinnPhong +#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong +#define Material_LightProbeLOD( material ) (0)`,Nl=`PhysicalMaterial material; +material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); +vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) ); +float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); +material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; +material.roughness = min( material.roughness, 1.0 ); +#ifdef IOR + #ifdef SPECULAR + float specularIntensityFactor = specularIntensity; + vec3 specularColorFactor = specularColor; + #ifdef USE_SPECULARINTENSITYMAP + specularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a; + #endif + #ifdef USE_SPECULARCOLORMAP + specularColorFactor *= texture2D( specularColorMap, vUv ).rgb; + #endif + material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); + #else + float specularIntensityFactor = 1.0; + vec3 specularColorFactor = vec3( 1.0 ); + material.specularF90 = 1.0; + #endif + material.specularColor = mix( min( pow2( ( ior - 1.0 ) / ( ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); +#else + material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); + material.specularF90 = 1.0; +#endif +#ifdef USE_CLEARCOAT + material.clearcoat = clearcoat; + material.clearcoatRoughness = clearcoatRoughness; + material.clearcoatF0 = vec3( 0.04 ); + material.clearcoatF90 = 1.0; + #ifdef USE_CLEARCOATMAP + material.clearcoat *= texture2D( clearcoatMap, vUv ).x; + #endif + #ifdef USE_CLEARCOAT_ROUGHNESSMAP + material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y; + #endif + material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); + material.clearcoatRoughness += geometryRoughness; + material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); +#endif +#ifdef USE_SHEEN + material.sheenColor = sheenColor; + #ifdef USE_SHEENCOLORMAP + material.sheenColor *= texture2D( sheenColorMap, vUv ).rgb; + #endif + material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); + #ifdef USE_SHEENROUGHNESSMAP + material.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a; + #endif +#endif`,zl=`struct PhysicalMaterial { + vec3 diffuseColor; + float roughness; + vec3 specularColor; + float specularF90; + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + #ifdef USE_SHEEN + vec3 sheenColor; + float sheenRoughness; + #endif +}; +vec3 clearcoatSpecular = vec3( 0.0 ); +vec3 sheenSpecular = vec3( 0.0 ); +float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness) { + float dotNV = saturate( dot( normal, viewDir ) ); + float r2 = roughness * roughness; + float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; + float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; + float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); + return saturate( DG * RECIPROCAL_PI ); +} +vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); + const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); + vec4 r = roughness * c0 + c1; + float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; + vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; + return fab; +} +vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { + vec2 fab = DFGApprox( normal, viewDir, roughness ); + return specularColor * fab.x + specularF90 * fab.y; +} +void 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 ) { + vec2 fab = DFGApprox( normal, viewDir, roughness ); + vec3 FssEss = specularColor * fab.x + specularF90 * fab.y; + float Ess = fab.x + fab.y; + float Ems = 1.0 - Ess; + vec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); + singleScatter += FssEss; + multiScatter += Fms * Ems; +} +#if NUM_RECT_AREA_LIGHTS > 0 + void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + vec3 normal = geometry.normal; + vec3 viewDir = geometry.viewDir; + vec3 position = geometry.position; + vec3 lightPos = rectAreaLight.position; + vec3 halfWidth = rectAreaLight.halfWidth; + vec3 halfHeight = rectAreaLight.halfHeight; + vec3 lightColor = rectAreaLight.color; + float roughness = material.roughness; + vec3 rectCoords[ 4 ]; + rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; + rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; + rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; + vec2 uv = LTC_Uv( normal, viewDir, roughness ); + vec4 t1 = texture2D( ltc_1, uv ); + vec4 t2 = texture2D( ltc_2, uv ); + mat3 mInv = mat3( + vec3( t1.x, 0, t1.y ), + vec3( 0, 1, 0 ), + vec3( t1.z, 0, t1.w ) + ); + vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); + reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); + reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); + } +#endif +void RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometry.normal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + #ifdef USE_CLEARCOAT + float dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) ); + vec3 ccIrradiance = dotNLcc * directLight.color; + clearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness ); + #endif + reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness ); + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { + #ifdef USE_CLEARCOAT + clearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness ); + #endif + vec3 singleScattering = vec3( 0.0 ); + vec3 multiScattering = vec3( 0.0 ); + vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; + computeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); + vec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) ); + reflectedLight.indirectSpecular += radiance * singleScattering; + reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; + reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; +} +#define RE_Direct RE_Direct_Physical +#define RE_Direct_RectArea RE_Direct_RectArea_Physical +#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical +#define RE_IndirectSpecular RE_IndirectSpecular_Physical +float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { + return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); +}`,Ul=` +GeometricContext geometry; +geometry.position = - vViewPosition; +geometry.normal = normal; +geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); +#ifdef USE_CLEARCOAT + geometry.clearcoatNormal = clearcoatNormal; +#endif +IncidentLight directLight; +#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) + PointLight pointLight; + #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + pointLight = pointLights[ i ]; + getPointLightInfo( pointLight, geometry, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) + pointLightShadow = pointLightShadows[ i ]; + directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) + SpotLight spotLight; + #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + spotLight = spotLights[ i ]; + getSpotLightInfo( spotLight, geometry, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + spotLightShadow = spotLightShadows[ i ]; + directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) + DirectionalLight directionalLight; + #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + directionalLight = directionalLights[ i ]; + getDirectionalLightInfo( directionalLight, geometry, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) + directionalLightShadow = directionalLightShadows[ i ]; + directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) + RectAreaLight rectAreaLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { + rectAreaLight = rectAreaLights[ i ]; + RE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if defined( RE_IndirectDiffuse ) + vec3 iblIrradiance = vec3( 0.0 ); + vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); + irradiance += getLightProbeIrradiance( lightProbe, geometry.normal ); + #if ( NUM_HEMI_LIGHTS > 0 ) + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal ); + } + #pragma unroll_loop_end + #endif +#endif +#if defined( RE_IndirectSpecular ) + vec3 radiance = vec3( 0.0 ); + vec3 clearcoatRadiance = vec3( 0.0 ); +#endif`,Ol=`#if defined( RE_IndirectDiffuse ) + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vUv2 ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + #ifndef PHYSICALLY_CORRECT_LIGHTS + lightMapIrradiance *= PI; + #endif + irradiance += lightMapIrradiance; + #endif + #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) + iblIrradiance += getIBLIrradiance( geometry.normal ); + #endif +#endif +#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) + radiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness ); + #ifdef USE_CLEARCOAT + clearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness ); + #endif +#endif`,Gl=`#if defined( RE_IndirectDiffuse ) + RE_IndirectDiffuse( irradiance, geometry, material, reflectedLight ); +#endif +#if defined( RE_IndirectSpecular ) + RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight ); +#endif`,Hl=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; +#endif`,Vl=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + uniform float logDepthBufFC; + varying float vFragDepth; + varying float vIsPerspective; +#endif`,kl=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + varying float vFragDepth; + varying float vIsPerspective; + #else + uniform float logDepthBufFC; + #endif +#endif`,Wl=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + vFragDepth = 1.0 + gl_Position.w; + vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); + #else + if ( isPerspectiveMatrix( projectionMatrix ) ) { + gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0; + gl_Position.z *= gl_Position.w; + } + #endif +#endif`,ql=`#ifdef USE_MAP + vec4 sampledDiffuseColor = texture2D( map, vUv ); + #ifdef DECODE_VIDEO_TEXTURE + sampledDiffuseColor = 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 ); + #endif + diffuseColor *= sampledDiffuseColor; +#endif`,Xl=`#ifdef USE_MAP + uniform sampler2D map; +#endif`,Zl=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; +#endif +#ifdef USE_MAP + diffuseColor *= texture2D( map, uv ); +#endif +#ifdef USE_ALPHAMAP + diffuseColor.a *= texture2D( alphaMap, uv ).g; +#endif`,jl=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + uniform mat3 uvTransform; +#endif +#ifdef USE_MAP + uniform sampler2D map; +#endif +#ifdef USE_ALPHAMAP + uniform sampler2D alphaMap; +#endif`,Yl=`float metalnessFactor = metalness; +#ifdef USE_METALNESSMAP + vec4 texelMetalness = texture2D( metalnessMap, vUv ); + metalnessFactor *= texelMetalness.b; +#endif`,Jl=`#ifdef USE_METALNESSMAP + uniform sampler2D metalnessMap; +#endif`,$l=`#ifdef USE_MORPHNORMALS + objectNormal *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1, 2 ) * morphTargetInfluences[ i ]; + } + #else + objectNormal += morphNormal0 * morphTargetInfluences[ 0 ]; + objectNormal += morphNormal1 * morphTargetInfluences[ 1 ]; + objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; + objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; + #endif +#endif`,Kl=`#ifdef USE_MORPHTARGETS + uniform float morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + uniform sampler2DArray morphTargetsTexture; + uniform vec2 morphTargetsTextureSize; + vec3 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset, const in int stride ) { + float texelIndex = float( vertexIndex * stride + offset ); + float y = floor( texelIndex / morphTargetsTextureSize.x ); + float x = texelIndex - y * morphTargetsTextureSize.x; + vec3 morphUV = vec3( ( x + 0.5 ) / morphTargetsTextureSize.x, y / morphTargetsTextureSize.y, morphTargetIndex ); + return texture( morphTargetsTexture, morphUV ).xyz; + } + #else + #ifndef USE_MORPHNORMALS + uniform float morphTargetInfluences[ 8 ]; + #else + uniform float morphTargetInfluences[ 4 ]; + #endif + #endif +#endif`,Ql=`#ifdef USE_MORPHTARGETS + transformed *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + #ifndef USE_MORPHNORMALS + if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0, 1 ) * morphTargetInfluences[ i ]; + #else + if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0, 2 ) * morphTargetInfluences[ i ]; + #endif + } + #else + transformed += morphTarget0 * morphTargetInfluences[ 0 ]; + transformed += morphTarget1 * morphTargetInfluences[ 1 ]; + transformed += morphTarget2 * morphTargetInfluences[ 2 ]; + transformed += morphTarget3 * morphTargetInfluences[ 3 ]; + #ifndef USE_MORPHNORMALS + transformed += morphTarget4 * morphTargetInfluences[ 4 ]; + transformed += morphTarget5 * morphTargetInfluences[ 5 ]; + transformed += morphTarget6 * morphTargetInfluences[ 6 ]; + transformed += morphTarget7 * morphTargetInfluences[ 7 ]; + #endif + #endif +#endif`,ec=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; +#ifdef FLAT_SHADED + vec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) ); + vec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) ); + vec3 normal = normalize( cross( fdx, fdy ) ); +#else + vec3 normal = normalize( vNormal ); + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + #ifdef USE_TANGENT + vec3 tangent = normalize( vTangent ); + vec3 bitangent = normalize( vBitangent ); + #ifdef DOUBLE_SIDED + tangent = tangent * faceDirection; + bitangent = bitangent * faceDirection; + #endif + #if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP ) + mat3 vTBN = mat3( tangent, bitangent, normal ); + #endif + #endif +#endif +vec3 geometryNormal = normal;`,tc=`#ifdef OBJECTSPACE_NORMALMAP + normal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; + #ifdef FLIP_SIDED + normal = - normal; + #endif + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + normal = normalize( normalMatrix * normal ); +#elif defined( TANGENTSPACE_NORMALMAP ) + vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; + mapN.xy *= normalScale; + #ifdef USE_TANGENT + normal = normalize( vTBN * mapN ); + #else + normal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection ); + #endif +#elif defined( USE_BUMPMAP ) + normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); +#endif`,nc=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,ic=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,rc=`#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #endif +#endif`,sc=`#ifdef USE_NORMALMAP + uniform sampler2D normalMap; + uniform vec2 normalScale; +#endif +#ifdef OBJECTSPACE_NORMALMAP + uniform mat3 normalMatrix; +#endif +#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) ) + vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) { + vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) ); + vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) ); + vec2 st0 = dFdx( vUv.st ); + vec2 st1 = dFdy( vUv.st ); + vec3 N = surf_norm; + vec3 q1perp = cross( q1, N ); + vec3 q0perp = cross( N, q0 ); + vec3 T = q1perp * st0.x + q0perp * st1.x; + vec3 B = q1perp * st0.y + q0perp * st1.y; + float det = max( dot( T, T ), dot( B, B ) ); + float scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det ); + return normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z ); + } +#endif`,ac=`#ifdef USE_CLEARCOAT + vec3 clearcoatNormal = geometryNormal; +#endif`,oc=`#ifdef USE_CLEARCOAT_NORMALMAP + vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0; + clearcoatMapN.xy *= clearcoatNormalScale; + #ifdef USE_TANGENT + clearcoatNormal = normalize( vTBN * clearcoatMapN ); + #else + clearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection ); + #endif +#endif`,lc=`#ifdef USE_CLEARCOATMAP + uniform sampler2D clearcoatMap; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform sampler2D clearcoatRoughnessMap; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform sampler2D clearcoatNormalMap; + uniform vec2 clearcoatNormalScale; +#endif`,cc=`#ifdef OPAQUE +diffuseColor.a = 1.0; +#endif +#ifdef USE_TRANSMISSION +diffuseColor.a *= transmissionAlpha + 0.1; +#endif +gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,hc=`vec3 packNormalToRGB( const in vec3 normal ) { + return normalize( normal ) * 0.5 + 0.5; +} +vec3 unpackRGBToNormal( const in vec3 rgb ) { + return 2.0 * rgb.xyz - 1.0; +} +const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.; +const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. ); +const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. ); +const float ShiftRight8 = 1. / 256.; +vec4 packDepthToRGBA( const in float v ) { + vec4 r = vec4( fract( v * PackFactors ), v ); + r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale; +} +float unpackRGBAToDepth( const in vec4 v ) { + return dot( v, UnpackFactors ); +} +vec4 pack2HalfToRGBA( vec2 v ) { + vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); + return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); +} +vec2 unpackRGBATo2Half( vec4 v ) { + return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); +} +float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { + return ( viewZ + near ) / ( near - far ); +} +float orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) { + return linearClipZ * ( near - far ) - near; +} +float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { + return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); +} +float perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) { + return ( near * far ) / ( ( far - near ) * invClipZ - far ); +}`,uc=`#ifdef PREMULTIPLIED_ALPHA + gl_FragColor.rgb *= gl_FragColor.a; +#endif`,dc=`vec4 mvPosition = vec4( transformed, 1.0 ); +#ifdef USE_INSTANCING + mvPosition = instanceMatrix * mvPosition; +#endif +mvPosition = modelViewMatrix * mvPosition; +gl_Position = projectionMatrix * mvPosition;`,fc=`#ifdef DITHERING + gl_FragColor.rgb = dithering( gl_FragColor.rgb ); +#endif`,pc=`#ifdef DITHERING + vec3 dithering( vec3 color ) { + float grid_position = rand( gl_FragCoord.xy ); + vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); + dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); + return color + dither_shift_RGB; + } +#endif`,mc=`float roughnessFactor = roughness; +#ifdef USE_ROUGHNESSMAP + vec4 texelRoughness = texture2D( roughnessMap, vUv ); + roughnessFactor *= texelRoughness.g; +#endif`,gc=`#ifdef USE_ROUGHNESSMAP + uniform sampler2D roughnessMap; +#endif`,_c=`#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; + varying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif + float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { + return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); + } + vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { + return unpackRGBATo2Half( texture2D( shadow, uv ) ); + } + float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ + float occlusion = 1.0; + vec2 distribution = texture2DDistribution( shadow, uv ); + float hard_shadow = step( compare , distribution.x ); + if (hard_shadow != 1.0 ) { + float distance = compare - distribution.x ; + float variance = max( 0.00000, distribution.y * distribution.y ); + float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); + } + return occlusion; + } + float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) { + float shadow = 1.0; + shadowCoord.xyz /= shadowCoord.w; + shadowCoord.z += shadowBias; + bvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 ); + bool inFrustum = all( inFrustumVec ); + bvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 ); + bool frustumTest = all( frustumTestVec ); + if ( frustumTest ) { + #if defined( SHADOWMAP_TYPE_PCF ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx0 = - texelSize.x * shadowRadius; + float dy0 = - texelSize.y * shadowRadius; + float dx1 = + texelSize.x * shadowRadius; + float dy1 = + texelSize.y * shadowRadius; + float dx2 = dx0 / 2.0; + float dy2 = dy0 / 2.0; + float dx3 = dx1 / 2.0; + float dy3 = dy1 / 2.0; + shadow = ( + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) + ) * ( 1.0 / 17.0 ); + #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx = texelSize.x; + float dy = texelSize.y; + vec2 uv = shadowCoord.xy; + vec2 f = fract( uv * shadowMapSize + 0.5 ); + uv -= f * texelSize; + shadow = ( + texture2DCompare( shadowMap, uv, shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), + f.x ), + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), + f.x ), + f.y ) + ) * ( 1.0 / 9.0 ); + #elif defined( SHADOWMAP_TYPE_VSM ) + shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); + #else + shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); + #endif + } + return shadow; + } + vec2 cubeToUV( vec3 v, float texelSizeY ) { + vec3 absV = abs( v ); + float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); + absV *= scaleToCube; + v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); + vec2 planar = v.xy; + float almostATexel = 1.5 * texelSizeY; + float almostOne = 1.0 - almostATexel; + if ( absV.z >= almostOne ) { + if ( v.z > 0.0 ) + planar.x = 4.0 - v.x; + } else if ( absV.x >= almostOne ) { + float signX = sign( v.x ); + planar.x = v.z * signX + 2.0 * signX; + } else if ( absV.y >= almostOne ) { + float signY = sign( v.y ); + planar.x = v.x + 2.0 * signY + 2.0; + planar.y = v.z * signY - 2.0; + } + return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); + } + float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { + vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); + vec3 lightToPosition = shadowCoord.xyz; + float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; + vec3 bd3D = normalize( lightToPosition ); + #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) + vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; + return ( + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) + ) * ( 1.0 / 9.0 ); + #else + return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); + #endif + } +#endif`,xc=`#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ]; + varying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif +#endif`,vc=`#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 + vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + vec4 shadowWorldPosition; + #endif + #if NUM_DIR_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); + vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 ); + vSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); + vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif +#endif`,yc=`float getShadowMask() { + float shadow = 1.0; + #ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + directionalLight = directionalLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + spotLight = spotLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + pointLight = pointLightShadows[ i ]; + shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; + } + #pragma unroll_loop_end + #endif + #endif + return shadow; +}`,Mc=`#ifdef USE_SKINNING + mat4 boneMatX = getBoneMatrix( skinIndex.x ); + mat4 boneMatY = getBoneMatrix( skinIndex.y ); + mat4 boneMatZ = getBoneMatrix( skinIndex.z ); + mat4 boneMatW = getBoneMatrix( skinIndex.w ); +#endif`,Sc=`#ifdef USE_SKINNING + uniform mat4 bindMatrix; + uniform mat4 bindMatrixInverse; + #ifdef BONE_TEXTURE + uniform highp sampler2D boneTexture; + uniform int boneTextureSize; + mat4 getBoneMatrix( const in float i ) { + float j = i * 4.0; + float x = mod( j, float( boneTextureSize ) ); + float y = floor( j / float( boneTextureSize ) ); + float dx = 1.0 / float( boneTextureSize ); + float dy = 1.0 / float( boneTextureSize ); + y = dy * ( y + 0.5 ); + vec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) ); + vec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) ); + vec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) ); + vec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) ); + mat4 bone = mat4( v1, v2, v3, v4 ); + return bone; + } + #else + uniform mat4 boneMatrices[ MAX_BONES ]; + mat4 getBoneMatrix( const in float i ) { + mat4 bone = boneMatrices[ int(i) ]; + return bone; + } + #endif +#endif`,bc=`#ifdef USE_SKINNING + vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); + vec4 skinned = vec4( 0.0 ); + skinned += boneMatX * skinVertex * skinWeight.x; + skinned += boneMatY * skinVertex * skinWeight.y; + skinned += boneMatZ * skinVertex * skinWeight.z; + skinned += boneMatW * skinVertex * skinWeight.w; + transformed = ( bindMatrixInverse * skinned ).xyz; +#endif`,wc=`#ifdef USE_SKINNING + mat4 skinMatrix = mat4( 0.0 ); + skinMatrix += skinWeight.x * boneMatX; + skinMatrix += skinWeight.y * boneMatY; + skinMatrix += skinWeight.z * boneMatZ; + skinMatrix += skinWeight.w * boneMatW; + skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; + objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; + #ifdef USE_TANGENT + objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #endif +#endif`,Tc=`float specularStrength; +#ifdef USE_SPECULARMAP + vec4 texelSpecular = texture2D( specularMap, vUv ); + specularStrength = texelSpecular.r; +#else + specularStrength = 1.0; +#endif`,Ec=`#ifdef USE_SPECULARMAP + uniform sampler2D specularMap; +#endif`,Ac=`#if defined( TONE_MAPPING ) + gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); +#endif`,Rc=`#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +uniform float toneMappingExposure; +vec3 LinearToneMapping( vec3 color ) { + return toneMappingExposure * color; +} +vec3 ReinhardToneMapping( vec3 color ) { + color *= toneMappingExposure; + return saturate( color / ( vec3( 1.0 ) + color ) ); +} +vec3 OptimizedCineonToneMapping( vec3 color ) { + color *= toneMappingExposure; + color = max( vec3( 0.0 ), color - 0.004 ); + return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); +} +vec3 RRTAndODTFit( vec3 v ) { + vec3 a = v * ( v + 0.0245786 ) - 0.000090537; + vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; + return a / b; +} +vec3 ACESFilmicToneMapping( vec3 color ) { + const mat3 ACESInputMat = mat3( + vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), + vec3( 0.04823, 0.01566, 0.83777 ) + ); + const mat3 ACESOutputMat = mat3( + vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), + vec3( -0.07367, -0.00605, 1.07602 ) + ); + color *= toneMappingExposure / 0.6; + color = ACESInputMat * color; + color = RRTAndODTFit( color ); + color = ACESOutputMat * color; + return saturate( color ); +} +vec3 CustomToneMapping( vec3 color ) { return color; }`,Cc=`#ifdef USE_TRANSMISSION + float transmissionAlpha = 1.0; + float transmissionFactor = transmission; + float thicknessFactor = thickness; + #ifdef USE_TRANSMISSIONMAP + transmissionFactor *= texture2D( transmissionMap, vUv ).r; + #endif + #ifdef USE_THICKNESSMAP + thicknessFactor *= texture2D( thicknessMap, vUv ).g; + #endif + vec3 pos = vWorldPosition; + vec3 v = normalize( cameraPosition - pos ); + vec3 n = inverseTransformDirection( normal, viewMatrix ); + vec4 transmission = getIBLVolumeRefraction( + n, v, roughnessFactor, material.diffuseColor, material.specularColor, material.specularF90, + pos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor, + attenuationColor, attenuationDistance ); + totalDiffuse = mix( totalDiffuse, transmission.rgb, transmissionFactor ); + transmissionAlpha = mix( transmissionAlpha, transmission.a, transmissionFactor ); +#endif`,Lc=`#ifdef USE_TRANSMISSION + uniform float transmission; + uniform float thickness; + uniform float attenuationDistance; + uniform vec3 attenuationColor; + #ifdef USE_TRANSMISSIONMAP + uniform sampler2D transmissionMap; + #endif + #ifdef USE_THICKNESSMAP + uniform sampler2D thicknessMap; + #endif + uniform vec2 transmissionSamplerSize; + uniform sampler2D transmissionSamplerMap; + uniform mat4 modelMatrix; + uniform mat4 projectionMatrix; + varying vec3 vWorldPosition; + vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { + vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); + vec3 modelScale; + modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); + modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); + modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); + return normalize( refractionVector ) * thickness * modelScale; + } + float applyIorToRoughness( const in float roughness, const in float ior ) { + return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); + } + vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { + float framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); + #ifdef TEXTURE_LOD_EXT + return texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod ); + #else + return texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod ); + #endif + } + vec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { + if ( attenuationDistance == 0.0 ) { + return radiance; + } else { + vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; + vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance * radiance; + } + } + vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, + const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, + const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness, + const in vec3 attenuationColor, const in float attenuationDistance ) { + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); + vec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance ); + vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); + return vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a ); + } +#endif`,Pc=`#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) ) + varying vec2 vUv; +#endif`,Dc=`#ifdef USE_UV + #ifdef UVS_VERTEX_ONLY + vec2 vUv; + #else + varying vec2 vUv; + #endif + uniform mat3 uvTransform; +#endif`,Ic=`#ifdef USE_UV + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; +#endif`,Fc=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + varying vec2 vUv2; +#endif`,Bc=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + attribute vec2 uv2; + varying vec2 vUv2; + uniform mat3 uv2Transform; +#endif`,Nc=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + vUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy; +#endif`,zc=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) + vec4 worldPosition = vec4( transformed, 1.0 ); + #ifdef USE_INSTANCING + worldPosition = instanceMatrix * worldPosition; + #endif + worldPosition = modelMatrix * worldPosition; +#endif`;const Pe={alphamap_fragment:Wo,alphamap_pars_fragment:qo,alphatest_fragment:Xo,alphatest_pars_fragment:Zo,aomap_fragment:jo,aomap_pars_fragment:Yo,begin_vertex:Jo,beginnormal_vertex:$o,bsdfs:Ko,bumpmap_pars_fragment:Qo,clipping_planes_fragment:el,clipping_planes_pars_fragment:tl,clipping_planes_pars_vertex:nl,clipping_planes_vertex:il,color_fragment:rl,color_pars_fragment:sl,color_pars_vertex:al,color_vertex:ol,common:ll,cube_uv_reflection_fragment:cl,defaultnormal_vertex:hl,displacementmap_pars_vertex:ul,displacementmap_vertex:dl,emissivemap_fragment:fl,emissivemap_pars_fragment:pl,encodings_fragment:ml,encodings_pars_fragment:gl,envmap_fragment:_l,envmap_common_pars_fragment:xl,envmap_pars_fragment:vl,envmap_pars_vertex:yl,envmap_physical_pars_fragment:Pl,envmap_vertex:Ml,fog_vertex:Sl,fog_pars_vertex:bl,fog_fragment:wl,fog_pars_fragment:Tl,gradientmap_pars_fragment:El,lightmap_fragment:Al,lightmap_pars_fragment:Rl,lights_lambert_vertex:Cl,lights_pars_begin:Ll,lights_toon_fragment:Dl,lights_toon_pars_fragment:Il,lights_phong_fragment:Fl,lights_phong_pars_fragment:Bl,lights_physical_fragment:Nl,lights_physical_pars_fragment:zl,lights_fragment_begin:Ul,lights_fragment_maps:Ol,lights_fragment_end:Gl,logdepthbuf_fragment:Hl,logdepthbuf_pars_fragment:Vl,logdepthbuf_pars_vertex:kl,logdepthbuf_vertex:Wl,map_fragment:ql,map_pars_fragment:Xl,map_particle_fragment:Zl,map_particle_pars_fragment:jl,metalnessmap_fragment:Yl,metalnessmap_pars_fragment:Jl,morphnormal_vertex:$l,morphtarget_pars_vertex:Kl,morphtarget_vertex:Ql,normal_fragment_begin:ec,normal_fragment_maps:tc,normal_pars_fragment:nc,normal_pars_vertex:ic,normal_vertex:rc,normalmap_pars_fragment:sc,clearcoat_normal_fragment_begin:ac,clearcoat_normal_fragment_maps:oc,clearcoat_pars_fragment:lc,output_fragment:cc,packing:hc,premultiplied_alpha_fragment:uc,project_vertex:dc,dithering_fragment:fc,dithering_pars_fragment:pc,roughnessmap_fragment:mc,roughnessmap_pars_fragment:gc,shadowmap_pars_fragment:_c,shadowmap_pars_vertex:xc,shadowmap_vertex:vc,shadowmask_pars_fragment:yc,skinbase_vertex:Mc,skinning_pars_vertex:Sc,skinning_vertex:bc,skinnormal_vertex:wc,specularmap_fragment:Tc,specularmap_pars_fragment:Ec,tonemapping_fragment:Ac,tonemapping_pars_fragment:Rc,transmission_fragment:Cc,transmission_pars_fragment:Lc,uv_pars_fragment:Pc,uv_pars_vertex:Dc,uv_vertex:Ic,uv2_pars_fragment:Fc,uv2_pars_vertex:Bc,uv2_vertex:Nc,worldpos_vertex:zc,background_vert:`varying vec2 vUv; +uniform mat3 uvTransform; +void main() { + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + gl_Position = vec4( position.xy, 1.0, 1.0 ); +}`,background_frag:`uniform sampler2D t2D; +varying vec2 vUv; +void main() { + gl_FragColor = texture2D( t2D, vUv ); + #include <tonemapping_fragment> + #include <encodings_fragment> +}`,cube_vert:`varying vec3 vWorldDirection; +#include <common> +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include <begin_vertex> + #include <project_vertex> + gl_Position.z = gl_Position.w; +}`,cube_frag:`#include <envmap_common_pars_fragment> +uniform float opacity; +varying vec3 vWorldDirection; +#include <cube_uv_reflection_fragment> +void main() { + vec3 vReflect = vWorldDirection; + #include <envmap_fragment> + gl_FragColor = envColor; + gl_FragColor.a *= opacity; + #include <tonemapping_fragment> + #include <encodings_fragment> +}`,depth_vert:`#include <common> +#include <uv_pars_vertex> +#include <displacementmap_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +varying vec2 vHighPrecisionZW; +void main() { + #include <uv_vertex> + #include <skinbase_vertex> + #ifdef USE_DISPLACEMENTMAP + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinnormal_vertex> + #endif + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <displacementmap_vertex> + #include <project_vertex> + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + vHighPrecisionZW = gl_Position.zw; +}`,depth_frag:`#if DEPTH_PACKING == 3200 + uniform float opacity; +#endif +#include <common> +#include <packing> +#include <uv_pars_fragment> +#include <map_pars_fragment> +#include <alphamap_pars_fragment> +#include <alphatest_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +varying vec2 vHighPrecisionZW; +void main() { + #include <clipping_planes_fragment> + vec4 diffuseColor = vec4( 1.0 ); + #if DEPTH_PACKING == 3200 + diffuseColor.a = opacity; + #endif + #include <map_fragment> + #include <alphamap_fragment> + #include <alphatest_fragment> + #include <logdepthbuf_fragment> + float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; + #if DEPTH_PACKING == 3200 + gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); + #elif DEPTH_PACKING == 3201 + gl_FragColor = packDepthToRGBA( fragCoordZ ); + #endif +}`,distanceRGBA_vert:`#define DISTANCE +varying vec3 vWorldPosition; +#include <common> +#include <uv_pars_vertex> +#include <displacementmap_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <uv_vertex> + #include <skinbase_vertex> + #ifdef USE_DISPLACEMENTMAP + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinnormal_vertex> + #endif + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <displacementmap_vertex> + #include <project_vertex> + #include <worldpos_vertex> + #include <clipping_planes_vertex> + vWorldPosition = worldPosition.xyz; +}`,distanceRGBA_frag:`#define DISTANCE +uniform vec3 referencePosition; +uniform float nearDistance; +uniform float farDistance; +varying vec3 vWorldPosition; +#include <common> +#include <packing> +#include <uv_pars_fragment> +#include <map_pars_fragment> +#include <alphamap_pars_fragment> +#include <alphatest_pars_fragment> +#include <clipping_planes_pars_fragment> +void main () { + #include <clipping_planes_fragment> + vec4 diffuseColor = vec4( 1.0 ); + #include <map_fragment> + #include <alphamap_fragment> + #include <alphatest_fragment> + float dist = length( vWorldPosition - referencePosition ); + dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); + dist = saturate( dist ); + gl_FragColor = packDepthToRGBA( dist ); +}`,equirect_vert:`varying vec3 vWorldDirection; +#include <common> +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include <begin_vertex> + #include <project_vertex> +}`,equirect_frag:`uniform sampler2D tEquirect; +varying vec3 vWorldDirection; +#include <common> +void main() { + vec3 direction = normalize( vWorldDirection ); + vec2 sampleUV = equirectUv( direction ); + gl_FragColor = texture2D( tEquirect, sampleUV ); + #include <tonemapping_fragment> + #include <encodings_fragment> +}`,linedashed_vert:`uniform float scale; +attribute float lineDistance; +varying float vLineDistance; +#include <common> +#include <color_pars_vertex> +#include <fog_pars_vertex> +#include <morphtarget_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + vLineDistance = scale * lineDistance; + #include <color_vertex> + #include <begin_vertex> + #include <morphtarget_vertex> + #include <project_vertex> + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + #include <fog_vertex> +}`,linedashed_frag:`uniform vec3 diffuse; +uniform float opacity; +uniform float dashSize; +uniform float totalSize; +varying float vLineDistance; +#include <common> +#include <color_pars_fragment> +#include <fog_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + if ( mod( vLineDistance, totalSize ) > dashSize ) { + discard; + } + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include <logdepthbuf_fragment> + #include <color_fragment> + outgoingLight = diffuseColor.rgb; + #include <output_fragment> + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> + #include <premultiplied_alpha_fragment> +}`,meshbasic_vert:`#include <common> +#include <uv_pars_vertex> +#include <uv2_pars_vertex> +#include <envmap_pars_vertex> +#include <color_pars_vertex> +#include <fog_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <uv_vertex> + #include <uv2_vertex> + #include <color_vertex> + #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinbase_vertex> + #include <skinnormal_vertex> + #include <defaultnormal_vertex> + #endif + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <project_vertex> + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + #include <worldpos_vertex> + #include <envmap_vertex> + #include <fog_vertex> +}`,meshbasic_frag:`uniform vec3 diffuse; +uniform float opacity; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +#include <common> +#include <dithering_pars_fragment> +#include <color_pars_fragment> +#include <uv_pars_fragment> +#include <uv2_pars_fragment> +#include <map_pars_fragment> +#include <alphamap_pars_fragment> +#include <alphatest_pars_fragment> +#include <aomap_pars_fragment> +#include <lightmap_pars_fragment> +#include <envmap_common_pars_fragment> +#include <envmap_pars_fragment> +#include <cube_uv_reflection_fragment> +#include <fog_pars_fragment> +#include <specularmap_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + vec4 diffuseColor = vec4( diffuse, opacity ); + #include <logdepthbuf_fragment> + #include <map_fragment> + #include <color_fragment> + #include <alphamap_fragment> + #include <alphatest_fragment> + #include <specularmap_fragment> + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + #ifdef USE_LIGHTMAP + vec4 lightMapTexel= texture2D( lightMap, vUv2 ); + reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity; + #else + reflectedLight.indirectDiffuse += vec3( 1.0 ); + #endif + #include <aomap_fragment> + reflectedLight.indirectDiffuse *= diffuseColor.rgb; + vec3 outgoingLight = reflectedLight.indirectDiffuse; + #include <envmap_fragment> + #include <output_fragment> + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> + #include <premultiplied_alpha_fragment> + #include <dithering_fragment> +}`,meshlambert_vert:`#define LAMBERT +varying vec3 vLightFront; +varying vec3 vIndirectFront; +#ifdef DOUBLE_SIDED + varying vec3 vLightBack; + varying vec3 vIndirectBack; +#endif +#include <common> +#include <uv_pars_vertex> +#include <uv2_pars_vertex> +#include <envmap_pars_vertex> +#include <bsdfs> +#include <lights_pars_begin> +#include <color_pars_vertex> +#include <fog_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <shadowmap_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <uv_vertex> + #include <uv2_vertex> + #include <color_vertex> + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinbase_vertex> + #include <skinnormal_vertex> + #include <defaultnormal_vertex> + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <project_vertex> + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + #include <worldpos_vertex> + #include <envmap_vertex> + #include <lights_lambert_vertex> + #include <shadowmap_vertex> + #include <fog_vertex> +}`,meshlambert_frag:`uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +varying vec3 vLightFront; +varying vec3 vIndirectFront; +#ifdef DOUBLE_SIDED + varying vec3 vLightBack; + varying vec3 vIndirectBack; +#endif +#include <common> +#include <packing> +#include <dithering_pars_fragment> +#include <color_pars_fragment> +#include <uv_pars_fragment> +#include <uv2_pars_fragment> +#include <map_pars_fragment> +#include <alphamap_pars_fragment> +#include <alphatest_pars_fragment> +#include <aomap_pars_fragment> +#include <lightmap_pars_fragment> +#include <emissivemap_pars_fragment> +#include <envmap_common_pars_fragment> +#include <envmap_pars_fragment> +#include <cube_uv_reflection_fragment> +#include <bsdfs> +#include <lights_pars_begin> +#include <fog_pars_fragment> +#include <shadowmap_pars_fragment> +#include <shadowmask_pars_fragment> +#include <specularmap_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include <logdepthbuf_fragment> + #include <map_fragment> + #include <color_fragment> + #include <alphamap_fragment> + #include <alphatest_fragment> + #include <specularmap_fragment> + #include <emissivemap_fragment> + #ifdef DOUBLE_SIDED + reflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack; + #else + reflectedLight.indirectDiffuse += vIndirectFront; + #endif + #include <lightmap_fragment> + reflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb ); + #ifdef DOUBLE_SIDED + reflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack; + #else + reflectedLight.directDiffuse = vLightFront; + #endif + reflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask(); + #include <aomap_fragment> + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include <envmap_fragment> + #include <output_fragment> + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> + #include <premultiplied_alpha_fragment> + #include <dithering_fragment> +}`,meshmatcap_vert:`#define MATCAP +varying vec3 vViewPosition; +#include <common> +#include <uv_pars_vertex> +#include <color_pars_vertex> +#include <displacementmap_pars_vertex> +#include <fog_pars_vertex> +#include <normal_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <uv_vertex> + #include <color_vertex> + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinbase_vertex> + #include <skinnormal_vertex> + #include <defaultnormal_vertex> + #include <normal_vertex> + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <displacementmap_vertex> + #include <project_vertex> + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + #include <fog_vertex> + vViewPosition = - mvPosition.xyz; +}`,meshmatcap_frag:`#define MATCAP +uniform vec3 diffuse; +uniform float opacity; +uniform sampler2D matcap; +varying vec3 vViewPosition; +#include <common> +#include <dithering_pars_fragment> +#include <color_pars_fragment> +#include <uv_pars_fragment> +#include <map_pars_fragment> +#include <alphamap_pars_fragment> +#include <alphatest_pars_fragment> +#include <fog_pars_fragment> +#include <normal_pars_fragment> +#include <bumpmap_pars_fragment> +#include <normalmap_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + vec4 diffuseColor = vec4( diffuse, opacity ); + #include <logdepthbuf_fragment> + #include <map_fragment> + #include <color_fragment> + #include <alphamap_fragment> + #include <alphatest_fragment> + #include <normal_fragment_begin> + #include <normal_fragment_maps> + vec3 viewDir = normalize( vViewPosition ); + vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); + vec3 y = cross( viewDir, x ); + vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; + #ifdef USE_MATCAP + vec4 matcapColor = texture2D( matcap, uv ); + #else + vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); + #endif + vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; + #include <output_fragment> + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> + #include <premultiplied_alpha_fragment> + #include <dithering_fragment> +}`,meshnormal_vert:`#define NORMAL +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + varying vec3 vViewPosition; +#endif +#include <common> +#include <uv_pars_vertex> +#include <displacementmap_pars_vertex> +#include <normal_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <uv_vertex> + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinbase_vertex> + #include <skinnormal_vertex> + #include <defaultnormal_vertex> + #include <normal_vertex> + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <displacementmap_vertex> + #include <project_vertex> + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + vViewPosition = - mvPosition.xyz; +#endif +}`,meshnormal_frag:`#define NORMAL +uniform float opacity; +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + varying vec3 vViewPosition; +#endif +#include <packing> +#include <uv_pars_fragment> +#include <normal_pars_fragment> +#include <bumpmap_pars_fragment> +#include <normalmap_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + #include <logdepthbuf_fragment> + #include <normal_fragment_begin> + #include <normal_fragment_maps> + gl_FragColor = vec4( packNormalToRGB( normal ), opacity ); + #ifdef OPAQUE + gl_FragColor.a = 1.0; + #endif +}`,meshphong_vert:`#define PHONG +varying vec3 vViewPosition; +#include <common> +#include <uv_pars_vertex> +#include <uv2_pars_vertex> +#include <displacementmap_pars_vertex> +#include <envmap_pars_vertex> +#include <color_pars_vertex> +#include <fog_pars_vertex> +#include <normal_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <shadowmap_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <uv_vertex> + #include <uv2_vertex> + #include <color_vertex> + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinbase_vertex> + #include <skinnormal_vertex> + #include <defaultnormal_vertex> + #include <normal_vertex> + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <displacementmap_vertex> + #include <project_vertex> + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + vViewPosition = - mvPosition.xyz; + #include <worldpos_vertex> + #include <envmap_vertex> + #include <shadowmap_vertex> + #include <fog_vertex> +}`,meshphong_frag:`#define PHONG +uniform vec3 diffuse; +uniform vec3 emissive; +uniform vec3 specular; +uniform float shininess; +uniform float opacity; +#include <common> +#include <packing> +#include <dithering_pars_fragment> +#include <color_pars_fragment> +#include <uv_pars_fragment> +#include <uv2_pars_fragment> +#include <map_pars_fragment> +#include <alphamap_pars_fragment> +#include <alphatest_pars_fragment> +#include <aomap_pars_fragment> +#include <lightmap_pars_fragment> +#include <emissivemap_pars_fragment> +#include <envmap_common_pars_fragment> +#include <envmap_pars_fragment> +#include <cube_uv_reflection_fragment> +#include <fog_pars_fragment> +#include <bsdfs> +#include <lights_pars_begin> +#include <normal_pars_fragment> +#include <lights_phong_pars_fragment> +#include <shadowmap_pars_fragment> +#include <bumpmap_pars_fragment> +#include <normalmap_pars_fragment> +#include <specularmap_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include <logdepthbuf_fragment> + #include <map_fragment> + #include <color_fragment> + #include <alphamap_fragment> + #include <alphatest_fragment> + #include <specularmap_fragment> + #include <normal_fragment_begin> + #include <normal_fragment_maps> + #include <emissivemap_fragment> + #include <lights_phong_fragment> + #include <lights_fragment_begin> + #include <lights_fragment_maps> + #include <lights_fragment_end> + #include <aomap_fragment> + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; + #include <envmap_fragment> + #include <output_fragment> + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> + #include <premultiplied_alpha_fragment> + #include <dithering_fragment> +}`,meshphysical_vert:`#define STANDARD +varying vec3 vViewPosition; +#ifdef USE_TRANSMISSION + varying vec3 vWorldPosition; +#endif +#include <common> +#include <uv_pars_vertex> +#include <uv2_pars_vertex> +#include <displacementmap_pars_vertex> +#include <color_pars_vertex> +#include <fog_pars_vertex> +#include <normal_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <shadowmap_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <uv_vertex> + #include <uv2_vertex> + #include <color_vertex> + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinbase_vertex> + #include <skinnormal_vertex> + #include <defaultnormal_vertex> + #include <normal_vertex> + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <displacementmap_vertex> + #include <project_vertex> + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + vViewPosition = - mvPosition.xyz; + #include <worldpos_vertex> + #include <shadowmap_vertex> + #include <fog_vertex> +#ifdef USE_TRANSMISSION + vWorldPosition = worldPosition.xyz; +#endif +}`,meshphysical_frag:`#define STANDARD +#ifdef PHYSICAL + #define IOR + #define SPECULAR +#endif +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float roughness; +uniform float metalness; +uniform float opacity; +#ifdef IOR + uniform float ior; +#endif +#ifdef SPECULAR + uniform float specularIntensity; + uniform vec3 specularColor; + #ifdef USE_SPECULARINTENSITYMAP + uniform sampler2D specularIntensityMap; + #endif + #ifdef USE_SPECULARCOLORMAP + uniform sampler2D specularColorMap; + #endif +#endif +#ifdef USE_CLEARCOAT + uniform float clearcoat; + uniform float clearcoatRoughness; +#endif +#ifdef USE_SHEEN + uniform vec3 sheenColor; + uniform float sheenRoughness; + #ifdef USE_SHEENCOLORMAP + uniform sampler2D sheenColorMap; + #endif + #ifdef USE_SHEENROUGHNESSMAP + uniform sampler2D sheenRoughnessMap; + #endif +#endif +varying vec3 vViewPosition; +#include <common> +#include <packing> +#include <dithering_pars_fragment> +#include <color_pars_fragment> +#include <uv_pars_fragment> +#include <uv2_pars_fragment> +#include <map_pars_fragment> +#include <alphamap_pars_fragment> +#include <alphatest_pars_fragment> +#include <aomap_pars_fragment> +#include <lightmap_pars_fragment> +#include <emissivemap_pars_fragment> +#include <bsdfs> +#include <cube_uv_reflection_fragment> +#include <envmap_common_pars_fragment> +#include <envmap_physical_pars_fragment> +#include <fog_pars_fragment> +#include <lights_pars_begin> +#include <normal_pars_fragment> +#include <lights_physical_pars_fragment> +#include <transmission_pars_fragment> +#include <shadowmap_pars_fragment> +#include <bumpmap_pars_fragment> +#include <normalmap_pars_fragment> +#include <clearcoat_pars_fragment> +#include <roughnessmap_pars_fragment> +#include <metalnessmap_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include <logdepthbuf_fragment> + #include <map_fragment> + #include <color_fragment> + #include <alphamap_fragment> + #include <alphatest_fragment> + #include <roughnessmap_fragment> + #include <metalnessmap_fragment> + #include <normal_fragment_begin> + #include <normal_fragment_maps> + #include <clearcoat_normal_fragment_begin> + #include <clearcoat_normal_fragment_maps> + #include <emissivemap_fragment> + #include <lights_physical_fragment> + #include <lights_fragment_begin> + #include <lights_fragment_maps> + #include <lights_fragment_end> + #include <aomap_fragment> + vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; + vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; + #include <transmission_fragment> + vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; + #ifdef USE_SHEEN + float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); + outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular; + #endif + #ifdef USE_CLEARCOAT + float dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) ); + vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); + outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat; + #endif + #include <output_fragment> + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> + #include <premultiplied_alpha_fragment> + #include <dithering_fragment> +}`,meshtoon_vert:`#define TOON +varying vec3 vViewPosition; +#include <common> +#include <uv_pars_vertex> +#include <uv2_pars_vertex> +#include <displacementmap_pars_vertex> +#include <color_pars_vertex> +#include <fog_pars_vertex> +#include <normal_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <shadowmap_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <uv_vertex> + #include <uv2_vertex> + #include <color_vertex> + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinbase_vertex> + #include <skinnormal_vertex> + #include <defaultnormal_vertex> + #include <normal_vertex> + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <displacementmap_vertex> + #include <project_vertex> + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + vViewPosition = - mvPosition.xyz; + #include <worldpos_vertex> + #include <shadowmap_vertex> + #include <fog_vertex> +}`,meshtoon_frag:`#define TOON +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include <common> +#include <packing> +#include <dithering_pars_fragment> +#include <color_pars_fragment> +#include <uv_pars_fragment> +#include <uv2_pars_fragment> +#include <map_pars_fragment> +#include <alphamap_pars_fragment> +#include <alphatest_pars_fragment> +#include <aomap_pars_fragment> +#include <lightmap_pars_fragment> +#include <emissivemap_pars_fragment> +#include <gradientmap_pars_fragment> +#include <fog_pars_fragment> +#include <bsdfs> +#include <lights_pars_begin> +#include <normal_pars_fragment> +#include <lights_toon_pars_fragment> +#include <shadowmap_pars_fragment> +#include <bumpmap_pars_fragment> +#include <normalmap_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include <logdepthbuf_fragment> + #include <map_fragment> + #include <color_fragment> + #include <alphamap_fragment> + #include <alphatest_fragment> + #include <normal_fragment_begin> + #include <normal_fragment_maps> + #include <emissivemap_fragment> + #include <lights_toon_fragment> + #include <lights_fragment_begin> + #include <lights_fragment_maps> + #include <lights_fragment_end> + #include <aomap_fragment> + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include <output_fragment> + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> + #include <premultiplied_alpha_fragment> + #include <dithering_fragment> +}`,points_vert:`uniform float size; +uniform float scale; +#include <common> +#include <color_pars_vertex> +#include <fog_pars_vertex> +#include <morphtarget_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <color_vertex> + #include <begin_vertex> + #include <morphtarget_vertex> + #include <project_vertex> + gl_PointSize = size; + #ifdef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); + #endif + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + #include <worldpos_vertex> + #include <fog_vertex> +}`,points_frag:`uniform vec3 diffuse; +uniform float opacity; +#include <common> +#include <color_pars_fragment> +#include <map_particle_pars_fragment> +#include <alphatest_pars_fragment> +#include <fog_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include <logdepthbuf_fragment> + #include <map_particle_fragment> + #include <color_fragment> + #include <alphatest_fragment> + outgoingLight = diffuseColor.rgb; + #include <output_fragment> + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> + #include <premultiplied_alpha_fragment> +}`,shadow_vert:`#include <common> +#include <fog_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <shadowmap_pars_vertex> +void main() { + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinbase_vertex> + #include <skinnormal_vertex> + #include <defaultnormal_vertex> + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <project_vertex> + #include <worldpos_vertex> + #include <shadowmap_vertex> + #include <fog_vertex> +}`,shadow_frag:`uniform vec3 color; +uniform float opacity; +#include <common> +#include <packing> +#include <fog_pars_fragment> +#include <bsdfs> +#include <lights_pars_begin> +#include <shadowmap_pars_fragment> +#include <shadowmask_pars_fragment> +void main() { + gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> +}`,sprite_vert:`uniform float rotation; +uniform vec2 center; +#include <common> +#include <uv_pars_vertex> +#include <fog_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <uv_vertex> + vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); + vec2 scale; + scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); + scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); + #ifndef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + #endif + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + gl_Position = projectionMatrix * mvPosition; + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + #include <fog_vertex> +}`,sprite_frag:`uniform vec3 diffuse; +uniform float opacity; +#include <common> +#include <uv_pars_fragment> +#include <map_pars_fragment> +#include <alphamap_pars_fragment> +#include <alphatest_pars_fragment> +#include <fog_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include <logdepthbuf_fragment> + #include <map_fragment> + #include <alphamap_fragment> + #include <alphatest_fragment> + outgoingLight = diffuseColor.rgb; + #include <output_fragment> + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> +}`},ee={common:{diffuse:{value:new me(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new lt},uv2Transform:{value:new lt},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new J(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new me(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{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 me(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new lt}},sprite:{diffuse:{value:new me(16777215)},opacity:{value:1},center:{value:new J(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new lt}}},It={basic:{uniforms:ht([ee.common,ee.specularmap,ee.envmap,ee.aomap,ee.lightmap,ee.fog]),vertexShader:Pe.meshbasic_vert,fragmentShader:Pe.meshbasic_frag},lambert:{uniforms:ht([ee.common,ee.specularmap,ee.envmap,ee.aomap,ee.lightmap,ee.emissivemap,ee.fog,ee.lights,{emissive:{value:new me(0)}}]),vertexShader:Pe.meshlambert_vert,fragmentShader:Pe.meshlambert_frag},phong:{uniforms:ht([ee.common,ee.specularmap,ee.envmap,ee.aomap,ee.lightmap,ee.emissivemap,ee.bumpmap,ee.normalmap,ee.displacementmap,ee.fog,ee.lights,{emissive:{value:new me(0)},specular:{value:new me(1118481)},shininess:{value:30}}]),vertexShader:Pe.meshphong_vert,fragmentShader:Pe.meshphong_frag},standard:{uniforms:ht([ee.common,ee.envmap,ee.aomap,ee.lightmap,ee.emissivemap,ee.bumpmap,ee.normalmap,ee.displacementmap,ee.roughnessmap,ee.metalnessmap,ee.fog,ee.lights,{emissive:{value:new me(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Pe.meshphysical_vert,fragmentShader:Pe.meshphysical_frag},toon:{uniforms:ht([ee.common,ee.aomap,ee.lightmap,ee.emissivemap,ee.bumpmap,ee.normalmap,ee.displacementmap,ee.gradientmap,ee.fog,ee.lights,{emissive:{value:new me(0)}}]),vertexShader:Pe.meshtoon_vert,fragmentShader:Pe.meshtoon_frag},matcap:{uniforms:ht([ee.common,ee.bumpmap,ee.normalmap,ee.displacementmap,ee.fog,{matcap:{value:null}}]),vertexShader:Pe.meshmatcap_vert,fragmentShader:Pe.meshmatcap_frag},points:{uniforms:ht([ee.points,ee.fog]),vertexShader:Pe.points_vert,fragmentShader:Pe.points_frag},dashed:{uniforms:ht([ee.common,ee.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Pe.linedashed_vert,fragmentShader:Pe.linedashed_frag},depth:{uniforms:ht([ee.common,ee.displacementmap]),vertexShader:Pe.depth_vert,fragmentShader:Pe.depth_frag},normal:{uniforms:ht([ee.common,ee.bumpmap,ee.normalmap,ee.displacementmap,{opacity:{value:1}}]),vertexShader:Pe.meshnormal_vert,fragmentShader:Pe.meshnormal_frag},sprite:{uniforms:ht([ee.sprite,ee.fog]),vertexShader:Pe.sprite_vert,fragmentShader:Pe.sprite_frag},background:{uniforms:{uvTransform:{value:new lt},t2D:{value:null}},vertexShader:Pe.background_vert,fragmentShader:Pe.background_frag},cube:{uniforms:ht([ee.envmap,{opacity:{value:1}}]),vertexShader:Pe.cube_vert,fragmentShader:Pe.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Pe.equirect_vert,fragmentShader:Pe.equirect_frag},distanceRGBA:{uniforms:ht([ee.common,ee.displacementmap,{referencePosition:{value:new w},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Pe.distanceRGBA_vert,fragmentShader:Pe.distanceRGBA_frag},shadow:{uniforms:ht([ee.lights,ee.fog,{color:{value:new me(0)},opacity:{value:1}}]),vertexShader:Pe.shadow_vert,fragmentShader:Pe.shadow_frag}};It.physical={uniforms:ht([It.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new J(1,1)},clearcoatNormalMap:{value:null},sheen:{value:0},sheenColor:{value:new me(0)},sheenColorMap:{value:null},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new J},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new me(0)},specularIntensity:{value:1},specularIntensityMap:{value:null},specularColor:{value:new me(1,1,1)},specularColorMap:{value:null}}]),vertexShader:Pe.meshphysical_vert,fragmentShader:Pe.meshphysical_frag};function Uc(s,e,t,n,i,r){const a=new me(0);let o=i===!0?0:1,c,l,h=null,u=0,d=null;function p(_,M){let m=!1,f=M.isScene===!0?M.background:null;f&&f.isTexture&&(f=e.get(f));const E=s.xr,y=E.getSession&&E.getSession();y&&y.environmentBlendMode==="additive"&&(f=null),f===null?g(a,o):f&&f.isColor&&(g(f,1),m=!0),(s.autoClear||m)&&s.clear(s.autoClearColor,s.autoClearDepth,s.autoClearStencil),f&&(f.isCubeTexture||f.mapping===306)?(l===void 0&&(l=new gt(new Un(1,1,1),new vn({name:"BackgroundCubeMaterial",uniforms:On(It.cube.uniforms),vertexShader:It.cube.vertexShader,fragmentShader:It.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(T,R,C){this.matrixWorld.copyPosition(C.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),n.update(l)),l.material.uniforms.envMap.value=f,l.material.uniforms.flipEnvMap.value=f.isCubeTexture&&f.isRenderTargetTexture===!1?-1:1,(h!==f||u!==f.version||d!==s.toneMapping)&&(l.material.needsUpdate=!0,h=f,u=f.version,d=s.toneMapping),_.unshift(l,l.geometry,l.material,0,0,null)):f&&f.isTexture&&(c===void 0&&(c=new gt(new Wr(2,2),new vn({name:"BackgroundMaterial",uniforms:On(It.background.uniforms),vertexShader:It.background.vertexShader,fragmentShader:It.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),n.update(c)),c.material.uniforms.t2D.value=f,f.matrixAutoUpdate===!0&&f.updateMatrix(),c.material.uniforms.uvTransform.value.copy(f.matrix),(h!==f||u!==f.version||d!==s.toneMapping)&&(c.material.needsUpdate=!0,h=f,u=f.version,d=s.toneMapping),_.unshift(c,c.geometry,c.material,0,0,null))}function g(_,M){t.buffers.color.setClear(_.r,_.g,_.b,M,r)}return{getClearColor:function(){return a},setClearColor:function(_,M=1){a.set(_),o=M,g(a,o)},getClearAlpha:function(){return o},setClearAlpha:function(_){o=_,g(a,o)},render:p}}function Oc(s,e,t,n){const i=s.getParameter(34921),r=n.isWebGL2?null:e.get("OES_vertex_array_object"),a=n.isWebGL2||r!==null,o={},c=_(null);let l=c;function h(D,B,N,I,H){let Y=!1;if(a){const ce=g(I,N,B);l!==ce&&(l=ce,d(l.object)),Y=M(I,H),Y&&m(I,H)}else{const ce=B.wireframe===!0;(l.geometry!==I.id||l.program!==N.id||l.wireframe!==ce)&&(l.geometry=I.id,l.program=N.id,l.wireframe=ce,Y=!0)}D.isInstancedMesh===!0&&(Y=!0),H!==null&&t.update(H,34963),Y&&(C(D,B,N,I),H!==null&&s.bindBuffer(34963,t.get(H).buffer))}function u(){return n.isWebGL2?s.createVertexArray():r.createVertexArrayOES()}function d(D){return n.isWebGL2?s.bindVertexArray(D):r.bindVertexArrayOES(D)}function p(D){return n.isWebGL2?s.deleteVertexArray(D):r.deleteVertexArrayOES(D)}function g(D,B,N){const I=N.wireframe===!0;let H=o[D.id];H===void 0&&(H={},o[D.id]=H);let Y=H[B.id];Y===void 0&&(Y={},H[B.id]=Y);let ce=Y[I];return ce===void 0&&(ce=_(u()),Y[I]=ce),ce}function _(D){const B=[],N=[],I=[];for(let H=0;H<i;H++)B[H]=0,N[H]=0,I[H]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:B,enabledAttributes:N,attributeDivisors:I,object:D,attributes:{},index:null}}function M(D,B){const N=l.attributes,I=D.attributes;let H=0;for(const Y in I){const ce=N[Y],O=I[Y];if(ce===void 0||ce.attribute!==O||ce.data!==O.data)return!0;H++}return l.attributesNum!==H||l.index!==B}function m(D,B){const N={},I=D.attributes;let H=0;for(const Y in I){const ce=I[Y],O={};O.attribute=ce,ce.data&&(O.data=ce.data),N[Y]=O,H++}l.attributes=N,l.attributesNum=H,l.index=B}function f(){const D=l.newAttributes;for(let B=0,N=D.length;B<N;B++)D[B]=0}function E(D){y(D,0)}function y(D,B){const N=l.newAttributes,I=l.enabledAttributes,H=l.attributeDivisors;N[D]=1,I[D]===0&&(s.enableVertexAttribArray(D),I[D]=1),H[D]!==B&&((n.isWebGL2?s:e.get("ANGLE_instanced_arrays"))[n.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](D,B),H[D]=B)}function T(){const D=l.newAttributes,B=l.enabledAttributes;for(let N=0,I=B.length;N<I;N++)B[N]!==D[N]&&(s.disableVertexAttribArray(N),B[N]=0)}function R(D,B,N,I,H,Y){n.isWebGL2===!0&&(N===5124||N===5125)?s.vertexAttribIPointer(D,B,N,H,Y):s.vertexAttribPointer(D,B,N,I,H,Y)}function C(D,B,N,I){if(n.isWebGL2===!1&&(D.isInstancedMesh||I.isInstancedBufferGeometry)&&e.get("ANGLE_instanced_arrays")===null)return;f();const H=I.attributes,Y=N.getAttributes(),ce=B.defaultAttributeValues;for(const O in Y){const X=Y[O];if(X.location>=0){let ne=H[O];if(ne===void 0&&(O==="instanceMatrix"&&D.instanceMatrix&&(ne=D.instanceMatrix),O==="instanceColor"&&D.instanceColor&&(ne=D.instanceColor)),ne!==void 0){const ue=ne.normalized,ge=ne.itemSize,U=t.get(ne);if(U===void 0)continue;const ze=U.buffer,fe=U.type,Se=U.bytesPerElement;if(ne.isInterleavedBufferAttribute){const oe=ne.data,Re=oe.stride,be=ne.offset;if(oe&&oe.isInstancedInterleavedBuffer){for(let k=0;k<X.locationSize;k++)y(X.location+k,oe.meshPerAttribute);D.isInstancedMesh!==!0&&I._maxInstanceCount===void 0&&(I._maxInstanceCount=oe.meshPerAttribute*oe.count)}else for(let k=0;k<X.locationSize;k++)E(X.location+k);s.bindBuffer(34962,ze);for(let k=0;k<X.locationSize;k++)R(X.location+k,ge/X.locationSize,fe,ue,Re*Se,(be+ge/X.locationSize*k)*Se)}else{if(ne.isInstancedBufferAttribute){for(let oe=0;oe<X.locationSize;oe++)y(X.location+oe,ne.meshPerAttribute);D.isInstancedMesh!==!0&&I._maxInstanceCount===void 0&&(I._maxInstanceCount=ne.meshPerAttribute*ne.count)}else for(let oe=0;oe<X.locationSize;oe++)E(X.location+oe);s.bindBuffer(34962,ze);for(let oe=0;oe<X.locationSize;oe++)R(X.location+oe,ge/X.locationSize,fe,ue,ge*Se,ge/X.locationSize*oe*Se)}}else if(ce!==void 0){const ue=ce[O];if(ue!==void 0)switch(ue.length){case 2:s.vertexAttrib2fv(X.location,ue);break;case 3:s.vertexAttrib3fv(X.location,ue);break;case 4:s.vertexAttrib4fv(X.location,ue);break;default:s.vertexAttrib1fv(X.location,ue)}}}}T()}function Z(){x();for(const D in o){const B=o[D];for(const N in B){const I=B[N];for(const H in I)p(I[H].object),delete I[H];delete B[N]}delete o[D]}}function se(D){if(o[D.id]===void 0)return;const B=o[D.id];for(const N in B){const I=B[N];for(const H in I)p(I[H].object),delete I[H];delete B[N]}delete o[D.id]}function j(D){for(const B in o){const N=o[B];if(N[D.id]===void 0)continue;const I=N[D.id];for(const H in I)p(I[H].object),delete I[H];delete N[D.id]}}function x(){L(),l!==c&&(l=c,d(l.object))}function L(){c.geometry=null,c.program=null,c.wireframe=!1}return{setup:h,reset:x,resetDefaultState:L,dispose:Z,releaseStatesOfGeometry:se,releaseStatesOfProgram:j,initAttributes:f,enableAttribute:E,disableUnusedAttributes:T}}function Gc(s,e,t,n){const i=n.isWebGL2;let r;function a(l){r=l}function o(l,h){s.drawArrays(r,l,h),t.update(h,r,1)}function c(l,h,u){if(u===0)return;let d,p;if(i)d=s,p="drawArraysInstanced";else if(d=e.get("ANGLE_instanced_arrays"),p="drawArraysInstancedANGLE",d===null){console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}d[p](r,l,h,u),t.update(h,r,u)}this.setMode=a,this.render=o,this.renderInstances=c}function Hc(s,e,t){let n;function i(){if(n!==void 0)return n;if(e.has("EXT_texture_filter_anisotropic")===!0){const C=e.get("EXT_texture_filter_anisotropic");n=s.getParameter(C.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else n=0;return n}function r(C){if(C==="highp"){if(s.getShaderPrecisionFormat(35633,36338).precision>0&&s.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";C="mediump"}return C==="mediump"&&s.getShaderPrecisionFormat(35633,36337).precision>0&&s.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const a=typeof WebGL2RenderingContext!="undefined"&&s instanceof WebGL2RenderingContext||typeof WebGL2ComputeRenderingContext!="undefined"&&s instanceof WebGL2ComputeRenderingContext;let o=t.precision!==void 0?t.precision:"highp";const c=r(o);c!==o&&(console.warn("THREE.WebGLRenderer:",o,"not supported, using",c,"instead."),o=c);const l=a||e.has("WEBGL_draw_buffers"),h=t.logarithmicDepthBuffer===!0,u=s.getParameter(34930),d=s.getParameter(35660),p=s.getParameter(3379),g=s.getParameter(34076),_=s.getParameter(34921),M=s.getParameter(36347),m=s.getParameter(36348),f=s.getParameter(36349),E=d>0,y=a||e.has("OES_texture_float"),T=E&&y,R=a?s.getParameter(36183):0;return{isWebGL2:a,drawBuffers:l,getMaxAnisotropy:i,getMaxPrecision:r,precision:o,logarithmicDepthBuffer:h,maxTextures:u,maxVertexTextures:d,maxTextureSize:p,maxCubemapSize:g,maxAttributes:_,maxVertexUniforms:M,maxVaryings:m,maxFragmentUniforms:f,vertexTextures:E,floatFragmentTextures:y,floatVertexTextures:T,maxSamples:R}}function Vc(s){const e=this;let t=null,n=0,i=!1,r=!1;const a=new Zt,o=new lt,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(u,d,p){const g=u.length!==0||d||n!==0||i;return i=d,t=h(u,p,0),n=u.length,g},this.beginShadows=function(){r=!0,h(null)},this.endShadows=function(){r=!1,l()},this.setState=function(u,d,p){const g=u.clippingPlanes,_=u.clipIntersection,M=u.clipShadows,m=s.get(u);if(!i||g===null||g.length===0||r&&!M)r?h(null):l();else{const f=r?0:n,E=f*4;let y=m.clippingState||null;c.value=y,y=h(g,d,E,p);for(let T=0;T!==E;++T)y[T]=t[T];m.clippingState=y,this.numIntersection=_?this.numPlanes:0,this.numPlanes+=f}};function l(){c.value!==t&&(c.value=t,c.needsUpdate=n>0),e.numPlanes=n,e.numIntersection=0}function h(u,d,p,g){const _=u!==null?u.length:0;let M=null;if(_!==0){if(M=c.value,g!==!0||M===null){const m=p+_*4,f=d.matrixWorldInverse;o.getNormalMatrix(f),(M===null||M.length<m)&&(M=new Float32Array(m));for(let E=0,y=p;E!==_;++E,y+=4)a.copy(u[E]).applyMatrix4(f,o),a.normal.toArray(M,y),M[y+3]=a.constant}c.value=M,c.needsUpdate=!0}return e.numPlanes=_,e.numIntersection=0,M}}function kc(s){let e=new WeakMap;function t(a,o){return o===303?a.mapping=301:o===304&&(a.mapping=302),a}function n(a){if(a&&a.isTexture&&a.isRenderTargetTexture===!1){const o=a.mapping;if(o===303||o===304)if(e.has(a)){const c=e.get(a).texture;return t(c,a.mapping)}else{const c=a.image;if(c&&c.height>0){const l=new Vs(c.height/2);return l.fromEquirectangularTexture(s,a),e.set(a,l),a.addEventListener("dispose",i),t(l.texture,a.mapping)}else return null}}return a}function i(a){const o=a.target;o.removeEventListener("dispose",i);const c=e.get(o);c!==void 0&&(e.delete(o),c.dispose())}function r(){e=new WeakMap}return{get:n,dispose:r}}class qr extends Hr{constructor(e=-1,t=1,n=1,i=-1,r=.1,a=2e3){super();this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=n,this.bottom=i,this.near=r,this.far=a,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,n,i,r,a){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-e,a=n+e,o=i+t,c=i-t;if(this.view!==null&&this.view.enabled){const l=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=l*this.view.offsetX,a=r+l*this.view.width,o-=h*this.view.offsetY,c=o-h*this.view.height}this.projectionMatrix.makeOrthographic(r,a,o,c,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}}qr.prototype.isOrthographicCamera=!0;class Zi extends vn{constructor(e){super(e);this.type="RawShaderMaterial"}}Zi.prototype.isRawShaderMaterial=!0;const kn=4,an=8,Ft=Math.pow(2,an),Ws=[.125,.215,.35,.446,.526,.582],qs=an-kn+1+Ws.length,Wn=20,Xr=new qr,{_lodPlanes:oi,_sizeLods:Xs,_sigmas:ji}=Wc(),Zs=new me;let Zr=null;const yn=(1+Math.sqrt(5))/2,qn=1/yn,js=[new w(1,1,1),new w(-1,1,1),new w(1,1,-1),new w(-1,1,-1),new w(0,yn,qn),new w(0,yn,-qn),new w(qn,0,yn),new w(-qn,0,yn),new w(yn,qn,0),new w(-yn,qn,0)];class Ys{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._blurMaterial=qc(Wn),this._equirectShader=null,this._cubemapShader=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,n=.1,i=100){Zr=this._renderer.getRenderTarget();const r=this._allocateTargets();return this._sceneToCubeUV(e,n,i,r),t>0&&this._blur(r,0,0,t),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapShader===null&&(this._cubemapShader=Ks(),this._compileMaterial(this._cubemapShader))}compileEquirectangularShader(){this._equirectShader===null&&(this._equirectShader=$s(),this._compileMaterial(this._equirectShader))}dispose(){this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose(),this._cubemapShader!==null&&this._cubemapShader.dispose(),this._equirectShader!==null&&this._equirectShader.dispose();for(let e=0;e<oi.length;e++)oi[e].dispose()}_cleanup(e){this._renderer.setRenderTarget(Zr),e.scissorTest=!1,Yi(e,0,0,e.width,e.height)}_fromTexture(e,t){Zr=this._renderer.getRenderTarget();const n=t||this._allocateTargets(e);return this._textureToCubeUV(e,n),this._applyPMREM(n),this._cleanup(n),n}_allocateTargets(e){const t={magFilter:1006,minFilter:1006,generateMipmaps:!1,type:1016,format:1023,encoding:3e3,depthBuffer:!1},n=Js(t);return n.depthBuffer=!e,this._pingPongRenderTarget===null&&(this._pingPongRenderTarget=Js(t)),n}_compileMaterial(e){const t=new gt(oi[0],e);this._renderer.compile(t,Xr)}_sceneToCubeUV(e,t,n,i){const o=new _t(90,1,t,n),c=[1,-1,1,1,1,1],l=[1,1,1,-1,-1,-1],h=this._renderer,u=h.autoClear,d=h.toneMapping;h.getClearColor(Zs),h.toneMapping=0,h.autoClear=!1;const p=new Fi({name:"PMREM.Background",side:1,depthWrite:!1,depthTest:!1}),g=new gt(new Un,p);let _=!1;const M=e.background;M?M.isColor&&(p.color.copy(M),e.background=null,_=!0):(p.color.copy(Zs),_=!0);for(let m=0;m<6;m++){const f=m%3;f===0?(o.up.set(0,c[m],0),o.lookAt(l[m],0,0)):f===1?(o.up.set(0,0,c[m]),o.lookAt(0,l[m],0)):(o.up.set(0,c[m],0),o.lookAt(0,0,l[m])),Yi(i,f*Ft,m>2?Ft:0,Ft,Ft),h.setRenderTarget(i),_&&h.render(g,o),h.render(e,o)}g.geometry.dispose(),g.material.dispose(),h.toneMapping=d,h.autoClear=u,e.background=M}_textureToCubeUV(e,t){const n=this._renderer,i=e.mapping===301||e.mapping===302;i?(this._cubemapShader===null&&(this._cubemapShader=Ks()),this._cubemapShader.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectShader===null&&(this._equirectShader=$s());const r=i?this._cubemapShader:this._equirectShader,a=new gt(oi[0],r),o=r.uniforms;o.envMap.value=e,i||o.texelSize.value.set(1/e.image.width,1/e.image.height),Yi(t,0,0,3*Ft,2*Ft),n.setRenderTarget(t),n.render(a,Xr)}_applyPMREM(e){const t=this._renderer,n=t.autoClear;t.autoClear=!1;for(let i=1;i<qs;i++){const r=Math.sqrt(ji[i]*ji[i]-ji[i-1]*ji[i-1]),a=js[(i-1)%js.length];this._blur(e,i-1,i,r,a)}t.autoClear=n}_blur(e,t,n,i,r){const a=this._pingPongRenderTarget;this._halfBlur(e,a,t,n,i,"latitudinal",r),this._halfBlur(a,e,n,n,i,"longitudinal",r)}_halfBlur(e,t,n,i,r,a,o){const c=this._renderer,l=this._blurMaterial;a!=="latitudinal"&&a!=="longitudinal"&&console.error("blur direction must be either latitudinal or longitudinal!");const h=3,u=new gt(oi[i],l),d=l.uniforms,p=Xs[n]-1,g=isFinite(r)?Math.PI/(2*p):2*Math.PI/(2*Wn-1),_=r/g,M=isFinite(r)?1+Math.floor(h*_):Wn;M>Wn&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${M} samples when the maximum is set to ${Wn}`);const m=[];let f=0;for(let R=0;R<Wn;++R){const C=R/_,Z=Math.exp(-C*C/2);m.push(Z),R===0?f+=Z:R<M&&(f+=2*Z)}for(let R=0;R<m.length;R++)m[R]=m[R]/f;d.envMap.value=e.texture,d.samples.value=M,d.weights.value=m,d.latitudinal.value=a==="latitudinal",o&&(d.poleAxis.value=o),d.dTheta.value=g,d.mipInt.value=an-n;const E=Xs[i],y=3*Math.max(0,Ft-2*E),T=(i===0?0:2*Ft)+2*E*(i>an-kn?i-an+kn:0);Yi(t,y,T,3*E,2*E),c.setRenderTarget(t),c.render(u,Xr)}}function Wc(){const s=[],e=[],t=[];let n=an;for(let i=0;i<qs;i++){const r=Math.pow(2,n);e.push(r);let a=1/r;i>an-kn?a=Ws[i-an+kn-1]:i===0&&(a=0),t.push(a);const o=1/(r-1),c=-o/2,l=1+o/2,h=[c,c,l,c,l,l,c,c,l,l,c,l],u=6,d=6,p=3,g=2,_=1,M=new Float32Array(p*d*u),m=new Float32Array(g*d*u),f=new Float32Array(_*d*u);for(let y=0;y<u;y++){const T=y%3*2/3-1,R=y>2?0:-1,C=[T,R,0,T+2/3,R,0,T+2/3,R+1,0,T,R,0,T+2/3,R+1,0,T,R+1,0];M.set(C,p*d*y),m.set(h,g*d*y);const Z=[y,y,y,y,y,y];f.set(Z,_*d*y)}const E=new Ze;E.setAttribute("position",new nt(M,p)),E.setAttribute("uv",new nt(m,g)),E.setAttribute("faceIndex",new nt(f,_)),s.push(E),n>kn&&n--}return{_lodPlanes:s,_sizeLods:e,_sigmas:t}}function Js(s){const e=new St(3*Ft,3*Ft,s);return e.texture.mapping=306,e.texture.name="PMREM.cubeUv",e.scissorTest=!0,e}function Yi(s,e,t,n,i){s.viewport.set(e,t,n,i),s.scissor.set(e,t,n,i)}function qc(s){const e=new Float32Array(s),t=new w(0,1,0);return new Zi({name:"SphericalGaussianBlur",defines:{n:s},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:e},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:t}},vertexShader:jr(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include <cube_uv_reflection_fragment> + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + `,blending:0,depthTest:!1,depthWrite:!1})}function $s(){const s=new J(1,1);return new Zi({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null},texelSize:{value:s}},vertexShader:jr(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform vec2 texelSize; + + #include <common> + + void main() { + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + vec2 f = fract( uv / texelSize - 0.5 ); + uv -= f * texelSize; + vec3 tl = texture2D ( envMap, uv ).rgb; + uv.x += texelSize.x; + vec3 tr = texture2D ( envMap, uv ).rgb; + uv.y += texelSize.y; + vec3 br = texture2D ( envMap, uv ).rgb; + uv.x -= texelSize.x; + vec3 bl = texture2D ( envMap, uv ).rgb; + + vec3 tm = mix( tl, tr, f.x ); + vec3 bm = mix( bl, br, f.x ); + gl_FragColor.rgb = mix( tm, bm, f.y ); + + } + `,blending:0,depthTest:!1,depthWrite:!1})}function Ks(){return new Zi({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:jr(),fragmentShader:` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + `,blending:0,depthTest:!1,depthWrite:!1})}function jr(){return` + + precision mediump float; + precision mediump int; + + attribute vec3 position; + attribute vec2 uv; + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + `}function Xc(s){let e=new WeakMap,t=null;function n(o){if(o&&o.isTexture){const c=o.mapping,l=c===303||c===304,h=c===301||c===302;if(l||h)if(o.isRenderTargetTexture&&o.needsPMREMUpdate===!0){o.needsPMREMUpdate=!1;let u=e.get(o);return t===null&&(t=new Ys(s)),u=l?t.fromEquirectangular(o,u):t.fromCubemap(o,u),e.set(o,u),u.texture}else{if(e.has(o))return e.get(o).texture;{const u=o.image;if(l&&u&&u.height>0||h&&u&&i(u)){t===null&&(t=new Ys(s));const d=l?t.fromEquirectangular(o):t.fromCubemap(o);return e.set(o,d),o.addEventListener("dispose",r),d.texture}else return null}}}return o}function i(o){let c=0;const l=6;for(let h=0;h<l;h++)o[h]!==void 0&&c++;return c===l}function r(o){const c=o.target;c.removeEventListener("dispose",r);const l=e.get(c);l!==void 0&&(e.delete(c),l.dispose())}function a(){e=new WeakMap,t!==null&&(t.dispose(),t=null)}return{get:n,dispose:a}}function Zc(s){const e={};function t(n){if(e[n]!==void 0)return e[n];let i;switch(n){case"WEBGL_depth_texture":i=s.getExtension("WEBGL_depth_texture")||s.getExtension("MOZ_WEBGL_depth_texture")||s.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":i=s.getExtension("EXT_texture_filter_anisotropic")||s.getExtension("MOZ_EXT_texture_filter_anisotropic")||s.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":i=s.getExtension("WEBGL_compressed_texture_s3tc")||s.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||s.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":i=s.getExtension("WEBGL_compressed_texture_pvrtc")||s.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:i=s.getExtension(n)}return e[n]=i,i}return{has:function(n){return t(n)!==null},init:function(n){n.isWebGL2?t("EXT_color_buffer_float"):(t("WEBGL_depth_texture"),t("OES_texture_float"),t("OES_texture_half_float"),t("OES_texture_half_float_linear"),t("OES_standard_derivatives"),t("OES_element_index_uint"),t("OES_vertex_array_object"),t("ANGLE_instanced_arrays")),t("OES_texture_float_linear"),t("EXT_color_buffer_half_float"),t("WEBGL_multisampled_render_to_texture")},get:function(n){const i=t(n);return i===null&&console.warn("THREE.WebGLRenderer: "+n+" extension not supported."),i}}}function jc(s,e,t,n){const i={},r=new WeakMap;function a(u){const d=u.target;d.index!==null&&e.remove(d.index);for(const g in d.attributes)e.remove(d.attributes[g]);d.removeEventListener("dispose",a),delete i[d.id];const p=r.get(d);p&&(e.remove(p),r.delete(d)),n.releaseStatesOfGeometry(d),d.isInstancedBufferGeometry===!0&&delete d._maxInstanceCount,t.memory.geometries--}function o(u,d){return i[d.id]===!0||(d.addEventListener("dispose",a),i[d.id]=!0,t.memory.geometries++),d}function c(u){const d=u.attributes;for(const g in d)e.update(d[g],34962);const p=u.morphAttributes;for(const g in p){const _=p[g];for(let M=0,m=_.length;M<m;M++)e.update(_[M],34962)}}function l(u){const d=[],p=u.index,g=u.attributes.position;let _=0;if(p!==null){const f=p.array;_=p.version;for(let E=0,y=f.length;E<y;E+=3){const T=f[E+0],R=f[E+1],C=f[E+2];d.push(T,R,R,C,C,T)}}else{const f=g.array;_=g.version;for(let E=0,y=f.length/3-1;E<y;E+=3){const T=E+0,R=E+1,C=E+2;d.push(T,R,R,C,C,T)}}const M=new(Es(d)?Gs:Os)(d,1);M.version=_;const m=r.get(u);m&&e.remove(m),r.set(u,M)}function h(u){const d=r.get(u);if(d){const p=u.index;p!==null&&d.version<p.version&&l(u)}else l(u);return r.get(u)}return{get:o,update:c,getWireframeAttribute:h}}function Yc(s,e,t,n){const i=n.isWebGL2;let r;function a(d){r=d}let o,c;function l(d){o=d.type,c=d.bytesPerElement}function h(d,p){s.drawElements(r,p,o,d*c),t.update(p,r,1)}function u(d,p,g){if(g===0)return;let _,M;if(i)_=s,M="drawElementsInstanced";else if(_=e.get("ANGLE_instanced_arrays"),M="drawElementsInstancedANGLE",_===null){console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}_[M](r,p,o,d*c,g),t.update(p,r,g)}this.setMode=a,this.setIndex=l,this.render=h,this.renderInstances=u}function Jc(s){const e={geometries:0,textures:0},t={frame:0,calls:0,triangles:0,points:0,lines:0};function n(r,a,o){switch(t.calls++,a){case 4:t.triangles+=o*(r/3);break;case 1:t.lines+=o*(r/2);break;case 3:t.lines+=o*(r-1);break;case 2:t.lines+=o*r;break;case 0:t.points+=o*r;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",a);break}}function i(){t.frame++,t.calls=0,t.triangles=0,t.points=0,t.lines=0}return{memory:e,render:t,programs:null,autoReset:!0,reset:i,update:n}}class Yr extends rt{constructor(e=null,t=1,n=1,i=1){super(null);this.image={data:e,width:t,height:n,depth:i},this.magFilter=1003,this.minFilter=1003,this.wrapR=1001,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}Yr.prototype.isDataTexture2DArray=!0;function $c(s,e){return s[0]-e[0]}function Kc(s,e){return Math.abs(e[1])-Math.abs(s[1])}function Qs(s,e){let t=1;const n=e.isInterleavedBufferAttribute?e.data.array:e.array;n instanceof Int8Array?t=127:n instanceof Int16Array?t=32767:n instanceof Int32Array?t=2147483647:console.error("THREE.WebGLMorphtargets: Unsupported morph attribute data type: ",n),s.divideScalar(t)}function Qc(s,e,t){const n={},i=new Float32Array(8),r=new WeakMap,a=new w,o=[];for(let l=0;l<8;l++)o[l]=[l,0];function c(l,h,u,d){const p=l.morphTargetInfluences;if(e.isWebGL2===!0){const g=h.morphAttributes.position.length;let _=r.get(h);if(_===void 0||_.count!==g){let L=function(){j.dispose(),r.delete(h),h.removeEventListener("dispose",L)};_!==void 0&&_.texture.dispose();const f=h.morphAttributes.normal!==void 0,E=h.morphAttributes.position,y=h.morphAttributes.normal||[],T=h.attributes.position.count,R=f===!0?2:1;let C=T*R,Z=1;C>e.maxTextureSize&&(Z=Math.ceil(C/e.maxTextureSize),C=e.maxTextureSize);const se=new Float32Array(C*Z*4*g),j=new Yr(se,C,Z,g);j.format=1023,j.type=1015,j.needsUpdate=!0;const x=R*4;for(let D=0;D<g;D++){const B=E[D],N=y[D],I=C*Z*4*D;for(let H=0;H<B.count;H++){a.fromBufferAttribute(B,H),B.normalized===!0&&Qs(a,B);const Y=H*x;se[I+Y+0]=a.x,se[I+Y+1]=a.y,se[I+Y+2]=a.z,se[I+Y+3]=0,f===!0&&(a.fromBufferAttribute(N,H),N.normalized===!0&&Qs(a,N),se[I+Y+4]=a.x,se[I+Y+5]=a.y,se[I+Y+6]=a.z,se[I+Y+7]=0)}}_={count:g,texture:j,size:new J(C,Z)},r.set(h,_),h.addEventListener("dispose",L)}let M=0;for(let f=0;f<p.length;f++)M+=p[f];const m=h.morphTargetsRelative?1:1-M;d.getUniforms().setValue(s,"morphTargetBaseInfluence",m),d.getUniforms().setValue(s,"morphTargetInfluences",p),d.getUniforms().setValue(s,"morphTargetsTexture",_.texture,t),d.getUniforms().setValue(s,"morphTargetsTextureSize",_.size)}else{const g=p===void 0?0:p.length;let _=n[h.id];if(_===void 0||_.length!==g){_=[];for(let y=0;y<g;y++)_[y]=[y,0];n[h.id]=_}for(let y=0;y<g;y++){const T=_[y];T[0]=y,T[1]=p[y]}_.sort(Kc);for(let y=0;y<8;y++)y<g&&_[y][1]?(o[y][0]=_[y][0],o[y][1]=_[y][1]):(o[y][0]=Number.MAX_SAFE_INTEGER,o[y][1]=0);o.sort($c);const M=h.morphAttributes.position,m=h.morphAttributes.normal;let f=0;for(let y=0;y<8;y++){const T=o[y],R=T[0],C=T[1];R!==Number.MAX_SAFE_INTEGER&&C?(M&&h.getAttribute("morphTarget"+y)!==M[R]&&h.setAttribute("morphTarget"+y,M[R]),m&&h.getAttribute("morphNormal"+y)!==m[R]&&h.setAttribute("morphNormal"+y,m[R]),i[y]=C,f+=C):(M&&h.hasAttribute("morphTarget"+y)===!0&&h.deleteAttribute("morphTarget"+y),m&&h.hasAttribute("morphNormal"+y)===!0&&h.deleteAttribute("morphNormal"+y),i[y]=0)}const E=h.morphTargetsRelative?1:1-f;d.getUniforms().setValue(s,"morphTargetBaseInfluence",E),d.getUniforms().setValue(s,"morphTargetInfluences",i)}}return{update:c}}function eh(s,e,t,n){let i=new WeakMap;function r(c){const l=n.render.frame,h=c.geometry,u=e.get(c,h);return i.get(u)!==l&&(e.update(u),i.set(u,l)),c.isInstancedMesh&&(c.hasEventListener("dispose",o)===!1&&c.addEventListener("dispose",o),t.update(c.instanceMatrix,34962),c.instanceColor!==null&&t.update(c.instanceColor,34962)),u}function a(){i=new WeakMap}function o(c){const l=c.target;l.removeEventListener("dispose",o),t.remove(l.instanceMatrix),l.instanceColor!==null&&t.remove(l.instanceColor)}return{update:r,dispose:a}}class ea extends rt{constructor(e=null,t=1,n=1,i=1){super(null);this.image={data:e,width:t,height:n,depth:i},this.magFilter=1003,this.minFilter=1003,this.wrapR=1001,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}ea.prototype.isDataTexture3D=!0;const ta=new rt,na=new Yr,ia=new ea,ra=new Wi,sa=[],aa=[],oa=new Float32Array(16),la=new Float32Array(9),ca=new Float32Array(4);function Xn(s,e,t){const n=s[0];if(n<=0||n>0)return s;const i=e*t;let r=sa[i];if(r===void 0&&(r=new Float32Array(i),sa[i]=r),e!==0){n.toArray(r,0);for(let a=1,o=0;a!==e;++a)o+=t,s[a].toArray(r,o)}return r}function pt(s,e){if(s.length!==e.length)return!1;for(let t=0,n=s.length;t<n;t++)if(s[t]!==e[t])return!1;return!0}function ut(s,e){for(let t=0,n=e.length;t<n;t++)s[t]=e[t]}function Ji(s,e){let t=aa[e];t===void 0&&(t=new Int32Array(e),aa[e]=t);for(let n=0;n!==e;++n)t[n]=s.allocateTextureUnit();return t}function th(s,e){const t=this.cache;t[0]!==e&&(s.uniform1f(this.addr,e),t[0]=e)}function nh(s,e){const t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y)&&(s.uniform2f(this.addr,e.x,e.y),t[0]=e.x,t[1]=e.y);else{if(pt(t,e))return;s.uniform2fv(this.addr,e),ut(t,e)}}function ih(s,e){const t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z)&&(s.uniform3f(this.addr,e.x,e.y,e.z),t[0]=e.x,t[1]=e.y,t[2]=e.z);else if(e.r!==void 0)(t[0]!==e.r||t[1]!==e.g||t[2]!==e.b)&&(s.uniform3f(this.addr,e.r,e.g,e.b),t[0]=e.r,t[1]=e.g,t[2]=e.b);else{if(pt(t,e))return;s.uniform3fv(this.addr,e),ut(t,e)}}function rh(s,e){const t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z||t[3]!==e.w)&&(s.uniform4f(this.addr,e.x,e.y,e.z,e.w),t[0]=e.x,t[1]=e.y,t[2]=e.z,t[3]=e.w);else{if(pt(t,e))return;s.uniform4fv(this.addr,e),ut(t,e)}}function sh(s,e){const t=this.cache,n=e.elements;if(n===void 0){if(pt(t,e))return;s.uniformMatrix2fv(this.addr,!1,e),ut(t,e)}else{if(pt(t,n))return;ca.set(n),s.uniformMatrix2fv(this.addr,!1,ca),ut(t,n)}}function ah(s,e){const t=this.cache,n=e.elements;if(n===void 0){if(pt(t,e))return;s.uniformMatrix3fv(this.addr,!1,e),ut(t,e)}else{if(pt(t,n))return;la.set(n),s.uniformMatrix3fv(this.addr,!1,la),ut(t,n)}}function oh(s,e){const t=this.cache,n=e.elements;if(n===void 0){if(pt(t,e))return;s.uniformMatrix4fv(this.addr,!1,e),ut(t,e)}else{if(pt(t,n))return;oa.set(n),s.uniformMatrix4fv(this.addr,!1,oa),ut(t,n)}}function lh(s,e){const t=this.cache;t[0]!==e&&(s.uniform1i(this.addr,e),t[0]=e)}function ch(s,e){const t=this.cache;pt(t,e)||(s.uniform2iv(this.addr,e),ut(t,e))}function hh(s,e){const t=this.cache;pt(t,e)||(s.uniform3iv(this.addr,e),ut(t,e))}function uh(s,e){const t=this.cache;pt(t,e)||(s.uniform4iv(this.addr,e),ut(t,e))}function dh(s,e){const t=this.cache;t[0]!==e&&(s.uniform1ui(this.addr,e),t[0]=e)}function fh(s,e){const t=this.cache;pt(t,e)||(s.uniform2uiv(this.addr,e),ut(t,e))}function ph(s,e){const t=this.cache;pt(t,e)||(s.uniform3uiv(this.addr,e),ut(t,e))}function mh(s,e){const t=this.cache;pt(t,e)||(s.uniform4uiv(this.addr,e),ut(t,e))}function gh(s,e,t){const n=this.cache,i=t.allocateTextureUnit();n[0]!==i&&(s.uniform1i(this.addr,i),n[0]=i),t.safeSetTexture2D(e||ta,i)}function _h(s,e,t){const n=this.cache,i=t.allocateTextureUnit();n[0]!==i&&(s.uniform1i(this.addr,i),n[0]=i),t.setTexture3D(e||ia,i)}function xh(s,e,t){const n=this.cache,i=t.allocateTextureUnit();n[0]!==i&&(s.uniform1i(this.addr,i),n[0]=i),t.safeSetTextureCube(e||ra,i)}function vh(s,e,t){const n=this.cache,i=t.allocateTextureUnit();n[0]!==i&&(s.uniform1i(this.addr,i),n[0]=i),t.setTexture2DArray(e||na,i)}function yh(s){switch(s){case 5126:return th;case 35664:return nh;case 35665:return ih;case 35666:return rh;case 35674:return sh;case 35675:return ah;case 35676:return oh;case 5124:case 35670:return lh;case 35667:case 35671:return ch;case 35668:case 35672:return hh;case 35669:case 35673:return uh;case 5125:return dh;case 36294:return fh;case 36295:return ph;case 36296:return mh;case 35678:case 36198:case 36298:case 36306:case 35682:return gh;case 35679:case 36299:case 36307:return _h;case 35680:case 36300:case 36308:case 36293:return xh;case 36289:case 36303:case 36311:case 36292:return vh}}function Mh(s,e){s.uniform1fv(this.addr,e)}function Sh(s,e){const t=Xn(e,this.size,2);s.uniform2fv(this.addr,t)}function bh(s,e){const t=Xn(e,this.size,3);s.uniform3fv(this.addr,t)}function wh(s,e){const t=Xn(e,this.size,4);s.uniform4fv(this.addr,t)}function Th(s,e){const t=Xn(e,this.size,4);s.uniformMatrix2fv(this.addr,!1,t)}function Eh(s,e){const t=Xn(e,this.size,9);s.uniformMatrix3fv(this.addr,!1,t)}function Ah(s,e){const t=Xn(e,this.size,16);s.uniformMatrix4fv(this.addr,!1,t)}function Rh(s,e){s.uniform1iv(this.addr,e)}function Ch(s,e){s.uniform2iv(this.addr,e)}function Lh(s,e){s.uniform3iv(this.addr,e)}function Ph(s,e){s.uniform4iv(this.addr,e)}function Dh(s,e){s.uniform1uiv(this.addr,e)}function Ih(s,e){s.uniform2uiv(this.addr,e)}function Fh(s,e){s.uniform3uiv(this.addr,e)}function Bh(s,e){s.uniform4uiv(this.addr,e)}function Nh(s,e,t){const n=e.length,i=Ji(t,n);s.uniform1iv(this.addr,i);for(let r=0;r!==n;++r)t.safeSetTexture2D(e[r]||ta,i[r])}function zh(s,e,t){const n=e.length,i=Ji(t,n);s.uniform1iv(this.addr,i);for(let r=0;r!==n;++r)t.setTexture3D(e[r]||ia,i[r])}function Uh(s,e,t){const n=e.length,i=Ji(t,n);s.uniform1iv(this.addr,i);for(let r=0;r!==n;++r)t.safeSetTextureCube(e[r]||ra,i[r])}function Oh(s,e,t){const n=e.length,i=Ji(t,n);s.uniform1iv(this.addr,i);for(let r=0;r!==n;++r)t.setTexture2DArray(e[r]||na,i[r])}function Gh(s){switch(s){case 5126:return Mh;case 35664:return Sh;case 35665:return bh;case 35666:return wh;case 35674:return Th;case 35675:return Eh;case 35676:return Ah;case 5124:case 35670:return Rh;case 35667:case 35671:return Ch;case 35668:case 35672:return Lh;case 35669:case 35673:return Ph;case 5125:return Dh;case 36294:return Ih;case 36295:return Fh;case 36296:return Bh;case 35678:case 36198:case 36298:case 36306:case 35682:return Nh;case 35679:case 36299:case 36307:return zh;case 35680:case 36300:case 36308:case 36293:return Uh;case 36289:case 36303:case 36311:case 36292:return Oh}}function Hh(s,e,t){this.id=s,this.addr=t,this.cache=[],this.setValue=yh(e.type)}function ha(s,e,t){this.id=s,this.addr=t,this.cache=[],this.size=e.size,this.setValue=Gh(e.type)}ha.prototype.updateCache=function(s){const e=this.cache;s instanceof Float32Array&&e.length!==s.length&&(this.cache=new Float32Array(s.length)),ut(e,s)};function ua(s){this.id=s,this.seq=[],this.map={}}ua.prototype.setValue=function(s,e,t){const n=this.seq;for(let i=0,r=n.length;i!==r;++i){const a=n[i];a.setValue(s,e[a.id],t)}};const Jr=/(\w+)(\])?(\[|\.)?/g;function da(s,e){s.seq.push(e),s.map[e.id]=e}function Vh(s,e,t){const n=s.name,i=n.length;for(Jr.lastIndex=0;;){const r=Jr.exec(n),a=Jr.lastIndex;let o=r[1];const c=r[2]==="]",l=r[3];if(c&&(o=o|0),l===void 0||l==="["&&a+2===i){da(t,l===void 0?new Hh(o,s,e):new ha(o,s,e));break}else{let u=t.map[o];u===void 0&&(u=new ua(o),da(t,u)),t=u}}}function on(s,e){this.seq=[],this.map={};const t=s.getProgramParameter(e,35718);for(let n=0;n<t;++n){const i=s.getActiveUniform(e,n),r=s.getUniformLocation(e,i.name);Vh(i,r,this)}}on.prototype.setValue=function(s,e,t,n){const i=this.map[e];i!==void 0&&i.setValue(s,t,n)},on.prototype.setOptional=function(s,e,t){const n=e[t];n!==void 0&&this.setValue(s,t,n)},on.upload=function(s,e,t,n){for(let i=0,r=e.length;i!==r;++i){const a=e[i],o=t[a.id];o.needsUpdate!==!1&&a.setValue(s,o.value,n)}},on.seqWithValue=function(s,e){const t=[];for(let n=0,i=s.length;n!==i;++n){const r=s[n];r.id in e&&t.push(r)}return t};function fa(s,e,t){const n=s.createShader(e);return s.shaderSource(n,t),s.compileShader(n),n}let kh=0;function Wh(s){const e=s.split(` +`);for(let t=0;t<e.length;t++)e[t]=t+1+": "+e[t];return e.join(` +`)}function qh(s){switch(s){case 3e3:return["Linear","( value )"];case 3001:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",s),["Linear","( value )"]}}function pa(s,e,t){const n=s.getShaderParameter(e,35713),i=s.getShaderInfoLog(e).trim();return n&&i===""?"":t.toUpperCase()+` + +`+i+` + +`+Wh(s.getShaderSource(e))}function Xh(s,e){const t=qh(e);return"vec4 "+s+"( vec4 value ) { return LinearTo"+t[0]+t[1]+"; }"}function Zh(s,e){let t;switch(e){case 1:t="Linear";break;case 2:t="Reinhard";break;case 3:t="OptimizedCineon";break;case 4:t="ACESFilmic";break;case 5:t="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),t="Linear"}return"vec3 "+s+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}function jh(s){return[s.extensionDerivatives||s.envMapCubeUV||s.bumpMap||s.tangentSpaceNormalMap||s.clearcoatNormalMap||s.flatShading||s.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(s.extensionFragDepth||s.logarithmicDepthBuffer)&&s.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",s.extensionDrawBuffers&&s.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(s.extensionShaderTextureLOD||s.envMap||s.transmission)&&s.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(li).join(` +`)}function Yh(s){const e=[];for(const t in s){const n=s[t];n!==!1&&e.push("#define "+t+" "+n)}return e.join(` +`)}function Jh(s,e){const t={},n=s.getProgramParameter(e,35721);for(let i=0;i<n;i++){const r=s.getActiveAttrib(e,i),a=r.name;let o=1;r.type===35674&&(o=2),r.type===35675&&(o=3),r.type===35676&&(o=4),t[a]={type:r.type,location:s.getAttribLocation(e,a),locationSize:o}}return t}function li(s){return s!==""}function ma(s,e){return s.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).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/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function ga(s,e){return s.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const $h=/^[ \t]*#include +<([\w\d./]+)>/gm;function $r(s){return s.replace($h,Kh)}function Kh(s,e){const t=Pe[e];if(t===void 0)throw new Error("Can not resolve #include <"+e+">");return $r(t)}const Qh=/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,eu=/#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 _a(s){return s.replace(eu,xa).replace(Qh,tu)}function tu(s,e,t,n){return console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead."),xa(s,e,t,n)}function xa(s,e,t,n){let i="";for(let r=parseInt(e);r<parseInt(t);r++)i+=n.replace(/\[\s*i\s*\]/g,"[ "+r+" ]").replace(/UNROLLED_LOOP_INDEX/g,r);return i}function va(s){let e="precision "+s.precision+` float; +precision `+s.precision+" int;";return s.precision==="highp"?e+=` +#define HIGH_PRECISION`:s.precision==="mediump"?e+=` +#define MEDIUM_PRECISION`:s.precision==="lowp"&&(e+=` +#define LOW_PRECISION`),e}function nu(s){let e="SHADOWMAP_TYPE_BASIC";return s.shadowMapType===1?e="SHADOWMAP_TYPE_PCF":s.shadowMapType===2?e="SHADOWMAP_TYPE_PCF_SOFT":s.shadowMapType===3&&(e="SHADOWMAP_TYPE_VSM"),e}function iu(s){let e="ENVMAP_TYPE_CUBE";if(s.envMap)switch(s.envMapMode){case 301:case 302:e="ENVMAP_TYPE_CUBE";break;case 306:case 307:e="ENVMAP_TYPE_CUBE_UV";break}return e}function ru(s){let e="ENVMAP_MODE_REFLECTION";if(s.envMap)switch(s.envMapMode){case 302:case 307:e="ENVMAP_MODE_REFRACTION";break}return e}function su(s){let e="ENVMAP_BLENDING_NONE";if(s.envMap)switch(s.combine){case 0:e="ENVMAP_BLENDING_MULTIPLY";break;case 1:e="ENVMAP_BLENDING_MIX";break;case 2:e="ENVMAP_BLENDING_ADD";break}return e}function au(s,e,t,n){const i=s.getContext(),r=t.defines;let a=t.vertexShader,o=t.fragmentShader;const c=nu(t),l=iu(t),h=ru(t),u=su(t),d=t.isWebGL2?"":jh(t),p=Yh(r),g=i.createProgram();let _,M,m=t.glslVersion?"#version "+t.glslVersion+` +`:"";t.isRawShaderMaterial?(_=[p].filter(li).join(` +`),_.length>0&&(_+=` +`),M=[d,p].filter(li).join(` +`),M.length>0&&(M+=` +`)):(_=[va(t),"#define SHADER_NAME "+t.shaderName,p,t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define MAX_BONES "+t.maxBones,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+h:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMap&&t.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",t.normalMap&&t.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.displacementMap&&t.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",t.specularColorMap?"#define USE_SPECULARCOLORMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEENCOLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",t.vertexTangents?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUvs?"#define USE_UV":"",t.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.useVertexTexture?"#define BONE_TEXTURE":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphTargets&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",t.morphTargets&&t.isWebGL2?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` +`].filter(li).join(` +`),M=[d,va(t),"#define SHADER_NAME "+t.shaderName,p,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+l:"",t.envMap?"#define "+h:"",t.envMap?"#define "+u:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMap&&t.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",t.normalMap&&t.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",t.specularColorMap?"#define USE_SPECULARCOLORMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEENCOLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.vertexTangents?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUvs?"#define USE_UV":"",t.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"",(t.extensionShaderTextureLOD||t.envMap)&&t.rendererExtensionShaderTextureLod?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==0?"#define TONE_MAPPING":"",t.toneMapping!==0?Pe.tonemapping_pars_fragment:"",t.toneMapping!==0?Zh("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.transparent?"":"#define OPAQUE",Pe.encodings_pars_fragment,Xh("linearToOutputTexel",t.outputEncoding),t.depthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",` +`].filter(li).join(` +`)),a=$r(a),a=ma(a,t),a=ga(a,t),o=$r(o),o=ma(o,t),o=ga(o,t),a=_a(a),o=_a(o),t.isWebGL2&&t.isRawShaderMaterial!==!0&&(m=`#version 300 es +`,_=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(` +`)+` +`+_,M=["#define varying in",t.glslVersion===ws?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===ws?"":"#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(` +`)+` +`+M);const f=m+_+a,E=m+M+o,y=fa(i,35633,f),T=fa(i,35632,E);if(i.attachShader(g,y),i.attachShader(g,T),t.index0AttributeName!==void 0?i.bindAttribLocation(g,0,t.index0AttributeName):t.morphTargets===!0&&i.bindAttribLocation(g,0,"position"),i.linkProgram(g),s.debug.checkShaderErrors){const Z=i.getProgramInfoLog(g).trim(),se=i.getShaderInfoLog(y).trim(),j=i.getShaderInfoLog(T).trim();let x=!0,L=!0;if(i.getProgramParameter(g,35714)===!1){x=!1;const D=pa(i,y,"vertex"),B=pa(i,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+i.getError()+" - VALIDATE_STATUS "+i.getProgramParameter(g,35715)+` + +Program Info Log: `+Z+` +`+D+` +`+B)}else Z!==""?console.warn("THREE.WebGLProgram: Program Info Log:",Z):(se===""||j==="")&&(L=!1);L&&(this.diagnostics={runnable:x,programLog:Z,vertexShader:{log:se,prefix:_},fragmentShader:{log:j,prefix:M}})}i.deleteShader(y),i.deleteShader(T);let R;this.getUniforms=function(){return R===void 0&&(R=new on(i,g)),R};let C;return this.getAttributes=function(){return C===void 0&&(C=Jh(i,g)),C},this.destroy=function(){n.releaseStatesOfProgram(this),i.deleteProgram(g),this.program=void 0},this.name=t.shaderName,this.id=kh++,this.cacheKey=e,this.usedTimes=1,this.program=g,this.vertexShader=y,this.fragmentShader=T,this}let ou=0;class lu{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const t=e.vertexShader,n=e.fragmentShader,i=this._getShaderStage(t),r=this._getShaderStage(n),a=this._getShaderCacheForMaterial(e);return a.has(i)===!1&&(a.add(i),i.usedTimes++),a.has(r)===!1&&(a.add(r),r.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const n of t)n.usedTimes--,n.usedTimes===0&&this.shaderCache.delete(n);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;return t.has(e)===!1&&t.set(e,new Set),t.get(e)}_getShaderStage(e){const t=this.shaderCache;if(t.has(e)===!1){const n=new cu;t.set(e,n)}return t.get(e)}}class cu{constructor(){this.id=ou++,this.usedTimes=0}}function hu(s,e,t,n,i,r,a){const o=new Ds,c=new lu,l=[],h=i.isWebGL2,u=i.logarithmicDepthBuffer,d=i.floatVertexTextures,p=i.maxVertexUniforms,g=i.vertexTextures;let _=i.precision;const M={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(x){const D=x.skeleton.bones;if(d)return 1024;{const N=Math.floor((p-20)/4),I=Math.min(N,D.length);return I<D.length?(console.warn("THREE.WebGLRenderer: Skeleton has "+D.length+" bones. This GPU supports "+I+"."),0):I}}function f(x,L,D,B,N){const I=B.fog,H=x.isMeshStandardMaterial?B.environment:null,Y=(x.isMeshStandardMaterial?t:e).get(x.envMap||H),ce=M[x.type],O=N.isSkinnedMesh?m(N):0;x.precision!==null&&(_=i.getMaxPrecision(x.precision),_!==x.precision&&console.warn("THREE.WebGLProgram.getParameters:",x.precision,"not supported, using",_,"instead."));let X,ne,ue,ge;if(ce){const oe=It[ce];X=oe.vertexShader,ne=oe.fragmentShader}else X=x.vertexShader,ne=x.fragmentShader,c.update(x),ue=c.getVertexShaderID(x),ge=c.getFragmentShaderID(x);const U=s.getRenderTarget(),ze=x.alphaTest>0,fe=x.clearcoat>0;return{isWebGL2:h,shaderID:ce,shaderName:x.type,vertexShader:X,fragmentShader:ne,defines:x.defines,customVertexShaderID:ue,customFragmentShaderID:ge,isRawShaderMaterial:x.isRawShaderMaterial===!0,glslVersion:x.glslVersion,precision:_,instancing:N.isInstancedMesh===!0,instancingColor:N.isInstancedMesh===!0&&N.instanceColor!==null,supportsVertexTextures:g,outputEncoding:U===null?s.outputEncoding:U.isXRRenderTarget===!0?U.texture.encoding:3e3,map:!!x.map,matcap:!!x.matcap,envMap:!!Y,envMapMode:Y&&Y.mapping,envMapCubeUV:!!Y&&(Y.mapping===306||Y.mapping===307),lightMap:!!x.lightMap,aoMap:!!x.aoMap,emissiveMap:!!x.emissiveMap,bumpMap:!!x.bumpMap,normalMap:!!x.normalMap,objectSpaceNormalMap:x.normalMapType===1,tangentSpaceNormalMap:x.normalMapType===0,decodeVideoTexture:!!x.map&&x.map.isVideoTexture===!0&&x.map.encoding===3001,clearcoat:fe,clearcoatMap:fe&&!!x.clearcoatMap,clearcoatRoughnessMap:fe&&!!x.clearcoatRoughnessMap,clearcoatNormalMap:fe&&!!x.clearcoatNormalMap,displacementMap:!!x.displacementMap,roughnessMap:!!x.roughnessMap,metalnessMap:!!x.metalnessMap,specularMap:!!x.specularMap,specularIntensityMap:!!x.specularIntensityMap,specularColorMap:!!x.specularColorMap,transparent:x.transparent,alphaMap:!!x.alphaMap,alphaTest:ze,gradientMap:!!x.gradientMap,sheen:x.sheen>0,sheenColorMap:!!x.sheenColorMap,sheenRoughnessMap:!!x.sheenRoughnessMap,transmission:x.transmission>0,transmissionMap:!!x.transmissionMap,thicknessMap:!!x.thicknessMap,combine:x.combine,vertexTangents:!!x.normalMap&&!!N.geometry&&!!N.geometry.attributes.tangent,vertexColors:x.vertexColors,vertexAlphas:x.vertexColors===!0&&!!N.geometry&&!!N.geometry.attributes.color&&N.geometry.attributes.color.itemSize===4,vertexUvs:!!x.map||!!x.bumpMap||!!x.normalMap||!!x.specularMap||!!x.alphaMap||!!x.emissiveMap||!!x.roughnessMap||!!x.metalnessMap||!!x.clearcoatMap||!!x.clearcoatRoughnessMap||!!x.clearcoatNormalMap||!!x.displacementMap||!!x.transmissionMap||!!x.thicknessMap||!!x.specularIntensityMap||!!x.specularColorMap||!!x.sheenColorMap||!!x.sheenRoughnessMap,uvsVertexOnly:!(!!x.map||!!x.bumpMap||!!x.normalMap||!!x.specularMap||!!x.alphaMap||!!x.emissiveMap||!!x.roughnessMap||!!x.metalnessMap||!!x.clearcoatNormalMap||x.transmission>0||!!x.transmissionMap||!!x.thicknessMap||!!x.specularIntensityMap||!!x.specularColorMap||x.sheen>0||!!x.sheenColorMap||!!x.sheenRoughnessMap)&&!!x.displacementMap,fog:!!I,useFog:x.fog,fogExp2:I&&I.isFogExp2,flatShading:!!x.flatShading,sizeAttenuation:x.sizeAttenuation,logarithmicDepthBuffer:u,skinning:N.isSkinnedMesh===!0&&O>0,maxBones:O,useVertexTexture:d,morphTargets:!!N.geometry&&!!N.geometry.morphAttributes.position,morphNormals:!!N.geometry&&!!N.geometry.morphAttributes.normal,morphTargetsCount:!!N.geometry&&!!N.geometry.morphAttributes.position?N.geometry.morphAttributes.position.length:0,numDirLights:L.directional.length,numPointLights:L.point.length,numSpotLights:L.spot.length,numRectAreaLights:L.rectArea.length,numHemiLights:L.hemi.length,numDirLightShadows:L.directionalShadowMap.length,numPointLightShadows:L.pointShadowMap.length,numSpotLightShadows:L.spotShadowMap.length,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:x.dithering,shadowMapEnabled:s.shadowMap.enabled&&D.length>0,shadowMapType:s.shadowMap.type,toneMapping:x.toneMapped?s.toneMapping:0,physicallyCorrectLights:s.physicallyCorrectLights,premultipliedAlpha:x.premultipliedAlpha,doubleSided:x.side===2,flipSided:x.side===1,depthPacking:x.depthPacking!==void 0?x.depthPacking:!1,index0AttributeName:x.index0AttributeName,extensionDerivatives:x.extensions&&x.extensions.derivatives,extensionFragDepth:x.extensions&&x.extensions.fragDepth,extensionDrawBuffers:x.extensions&&x.extensions.drawBuffers,extensionShaderTextureLOD:x.extensions&&x.extensions.shaderTextureLOD,rendererExtensionFragDepth:h||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||n.has("EXT_shader_texture_lod"),customProgramCacheKey:x.customProgramCacheKey()}}function E(x){const L=[];if(x.shaderID?L.push(x.shaderID):(L.push(x.customVertexShaderID),L.push(x.customFragmentShaderID)),x.defines!==void 0)for(const D in x.defines)L.push(D),L.push(x.defines[D]);return x.isRawShaderMaterial===!1&&(y(L,x),T(L,x),L.push(s.outputEncoding)),L.push(x.customProgramCacheKey),L.join()}function y(x,L){x.push(L.precision),x.push(L.outputEncoding),x.push(L.envMapMode),x.push(L.combine),x.push(L.vertexUvs),x.push(L.fogExp2),x.push(L.sizeAttenuation),x.push(L.maxBones),x.push(L.morphTargetsCount),x.push(L.numDirLights),x.push(L.numPointLights),x.push(L.numSpotLights),x.push(L.numHemiLights),x.push(L.numRectAreaLights),x.push(L.numDirLightShadows),x.push(L.numPointLightShadows),x.push(L.numSpotLightShadows),x.push(L.shadowMapType),x.push(L.toneMapping),x.push(L.numClippingPlanes),x.push(L.numClipIntersection)}function T(x,L){o.disableAll(),L.isWebGL2&&o.enable(0),L.supportsVertexTextures&&o.enable(1),L.instancing&&o.enable(2),L.instancingColor&&o.enable(3),L.map&&o.enable(4),L.matcap&&o.enable(5),L.envMap&&o.enable(6),L.envMapCubeUV&&o.enable(7),L.lightMap&&o.enable(8),L.aoMap&&o.enable(9),L.emissiveMap&&o.enable(10),L.bumpMap&&o.enable(11),L.normalMap&&o.enable(12),L.objectSpaceNormalMap&&o.enable(13),L.tangentSpaceNormalMap&&o.enable(14),L.clearcoat&&o.enable(15),L.clearcoatMap&&o.enable(16),L.clearcoatRoughnessMap&&o.enable(17),L.clearcoatNormalMap&&o.enable(18),L.displacementMap&&o.enable(19),L.specularMap&&o.enable(20),L.roughnessMap&&o.enable(21),L.metalnessMap&&o.enable(22),L.gradientMap&&o.enable(23),L.alphaMap&&o.enable(24),L.alphaTest&&o.enable(25),L.vertexColors&&o.enable(26),L.vertexAlphas&&o.enable(27),L.vertexUvs&&o.enable(28),L.vertexTangents&&o.enable(29),L.uvsVertexOnly&&o.enable(30),L.fog&&o.enable(31),x.push(o.mask),o.disableAll(),L.useFog&&o.enable(0),L.flatShading&&o.enable(1),L.logarithmicDepthBuffer&&o.enable(2),L.skinning&&o.enable(3),L.useVertexTexture&&o.enable(4),L.morphTargets&&o.enable(5),L.morphNormals&&o.enable(6),L.premultipliedAlpha&&o.enable(7),L.shadowMapEnabled&&o.enable(8),L.physicallyCorrectLights&&o.enable(9),L.doubleSided&&o.enable(10),L.flipSided&&o.enable(11),L.depthPacking&&o.enable(12),L.dithering&&o.enable(13),L.specularIntensityMap&&o.enable(14),L.specularColorMap&&o.enable(15),L.transmission&&o.enable(16),L.transmissionMap&&o.enable(17),L.thicknessMap&&o.enable(18),L.sheen&&o.enable(19),L.sheenColorMap&&o.enable(20),L.sheenRoughnessMap&&o.enable(21),L.decodeVideoTexture&&o.enable(22),L.transparent&&o.enable(23),x.push(o.mask)}function R(x){const L=M[x.type];let D;if(L){const B=It[L];D=Uo.clone(B.uniforms)}else D=x.uniforms;return D}function C(x,L){let D;for(let B=0,N=l.length;B<N;B++){const I=l[B];if(I.cacheKey===L){D=I,++D.usedTimes;break}}return D===void 0&&(D=new au(s,L,x,r),l.push(D)),D}function Z(x){if(--x.usedTimes===0){const L=l.indexOf(x);l[L]=l[l.length-1],l.pop(),x.destroy()}}function se(x){c.remove(x)}function j(){c.dispose()}return{getParameters:f,getProgramCacheKey:E,getUniforms:R,acquireProgram:C,releaseProgram:Z,releaseShaderCache:se,programs:l,dispose:j}}function uu(){let s=new WeakMap;function e(r){let a=s.get(r);return a===void 0&&(a={},s.set(r,a)),a}function t(r){s.delete(r)}function n(r,a,o){s.get(r)[a]=o}function i(){s=new WeakMap}return{get:e,remove:t,update:n,dispose:i}}function du(s,e){return s.groupOrder!==e.groupOrder?s.groupOrder-e.groupOrder:s.renderOrder!==e.renderOrder?s.renderOrder-e.renderOrder:s.material.id!==e.material.id?s.material.id-e.material.id:s.z!==e.z?s.z-e.z:s.id-e.id}function ya(s,e){return s.groupOrder!==e.groupOrder?s.groupOrder-e.groupOrder:s.renderOrder!==e.renderOrder?s.renderOrder-e.renderOrder:s.z!==e.z?e.z-s.z:s.id-e.id}function Ma(){const s=[];let e=0;const t=[],n=[],i=[];function r(){e=0,t.length=0,n.length=0,i.length=0}function a(u,d,p,g,_,M){let m=s[e];return m===void 0?(m={id:u.id,object:u,geometry:d,material:p,groupOrder:g,renderOrder:u.renderOrder,z:_,group:M},s[e]=m):(m.id=u.id,m.object=u,m.geometry=d,m.material=p,m.groupOrder=g,m.renderOrder=u.renderOrder,m.z=_,m.group=M),e++,m}function o(u,d,p,g,_,M){const m=a(u,d,p,g,_,M);p.transmission>0?n.push(m):p.transparent===!0?i.push(m):t.push(m)}function c(u,d,p,g,_,M){const m=a(u,d,p,g,_,M);p.transmission>0?n.unshift(m):p.transparent===!0?i.unshift(m):t.unshift(m)}function l(u,d){t.length>1&&t.sort(u||du),n.length>1&&n.sort(d||ya),i.length>1&&i.sort(d||ya)}function h(){for(let u=e,d=s.length;u<d;u++){const p=s[u];if(p.id===null)break;p.id=null,p.object=null,p.geometry=null,p.material=null,p.group=null}}return{opaque:t,transmissive:n,transparent:i,init:r,push:o,unshift:c,finish:h,sort:l}}function fu(){let s=new WeakMap;function e(n,i){let r;return s.has(n)===!1?(r=new Ma,s.set(n,[r])):i>=s.get(n).length?(r=new Ma,s.get(n).push(r)):r=s.get(n)[i],r}function t(){s=new WeakMap}return{get:e,dispose:t}}function pu(){const s={};return{get:function(e){if(s[e.id]!==void 0)return s[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new w,color:new me};break;case"SpotLight":t={position:new w,direction:new w,color:new me,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new w,color:new me,distance:0,decay:0};break;case"HemisphereLight":t={direction:new w,skyColor:new me,groundColor:new me};break;case"RectAreaLight":t={color:new me,position:new w,halfWidth:new w,halfHeight:new w};break}return s[e.id]=t,t}}}function mu(){const s={};return{get:function(e){if(s[e.id]!==void 0)return s[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new J};break;case"SpotLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new J};break;case"PointLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new J,shadowCameraNear:1,shadowCameraFar:1e3};break}return s[e.id]=t,t}}}let gu=0;function _u(s,e){return(e.castShadow?1:0)-(s.castShadow?1:0)}function xu(s,e){const t=new pu,n=mu(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let h=0;h<9;h++)i.probe.push(new w);const r=new w,a=new _e,o=new _e;function c(h,u){let d=0,p=0,g=0;for(let se=0;se<9;se++)i.probe[se].set(0,0,0);let _=0,M=0,m=0,f=0,E=0,y=0,T=0,R=0;h.sort(_u);const C=u!==!0?Math.PI:1;for(let se=0,j=h.length;se<j;se++){const x=h[se],L=x.color,D=x.intensity,B=x.distance,N=x.shadow&&x.shadow.map?x.shadow.map.texture:null;if(x.isAmbientLight)d+=L.r*D*C,p+=L.g*D*C,g+=L.b*D*C;else if(x.isLightProbe)for(let I=0;I<9;I++)i.probe[I].addScaledVector(x.sh.coefficients[I],D);else if(x.isDirectionalLight){const I=t.get(x);if(I.color.copy(x.color).multiplyScalar(x.intensity*C),x.castShadow){const H=x.shadow,Y=n.get(x);Y.shadowBias=H.bias,Y.shadowNormalBias=H.normalBias,Y.shadowRadius=H.radius,Y.shadowMapSize=H.mapSize,i.directionalShadow[_]=Y,i.directionalShadowMap[_]=N,i.directionalShadowMatrix[_]=x.shadow.matrix,y++}i.directional[_]=I,_++}else if(x.isSpotLight){const I=t.get(x);if(I.position.setFromMatrixPosition(x.matrixWorld),I.color.copy(L).multiplyScalar(D*C),I.distance=B,I.coneCos=Math.cos(x.angle),I.penumbraCos=Math.cos(x.angle*(1-x.penumbra)),I.decay=x.decay,x.castShadow){const H=x.shadow,Y=n.get(x);Y.shadowBias=H.bias,Y.shadowNormalBias=H.normalBias,Y.shadowRadius=H.radius,Y.shadowMapSize=H.mapSize,i.spotShadow[m]=Y,i.spotShadowMap[m]=N,i.spotShadowMatrix[m]=x.shadow.matrix,R++}i.spot[m]=I,m++}else if(x.isRectAreaLight){const I=t.get(x);I.color.copy(L).multiplyScalar(D),I.halfWidth.set(x.width*.5,0,0),I.halfHeight.set(0,x.height*.5,0),i.rectArea[f]=I,f++}else if(x.isPointLight){const I=t.get(x);if(I.color.copy(x.color).multiplyScalar(x.intensity*C),I.distance=x.distance,I.decay=x.decay,x.castShadow){const H=x.shadow,Y=n.get(x);Y.shadowBias=H.bias,Y.shadowNormalBias=H.normalBias,Y.shadowRadius=H.radius,Y.shadowMapSize=H.mapSize,Y.shadowCameraNear=H.camera.near,Y.shadowCameraFar=H.camera.far,i.pointShadow[M]=Y,i.pointShadowMap[M]=N,i.pointShadowMatrix[M]=x.shadow.matrix,T++}i.point[M]=I,M++}else if(x.isHemisphereLight){const I=t.get(x);I.skyColor.copy(x.color).multiplyScalar(D*C),I.groundColor.copy(x.groundColor).multiplyScalar(D*C),i.hemi[E]=I,E++}}f>0&&(e.isWebGL2||s.has("OES_texture_float_linear")===!0?(i.rectAreaLTC1=ee.LTC_FLOAT_1,i.rectAreaLTC2=ee.LTC_FLOAT_2):s.has("OES_texture_half_float_linear")===!0?(i.rectAreaLTC1=ee.LTC_HALF_1,i.rectAreaLTC2=ee.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),i.ambient[0]=d,i.ambient[1]=p,i.ambient[2]=g;const Z=i.hash;(Z.directionalLength!==_||Z.pointLength!==M||Z.spotLength!==m||Z.rectAreaLength!==f||Z.hemiLength!==E||Z.numDirectionalShadows!==y||Z.numPointShadows!==T||Z.numSpotShadows!==R)&&(i.directional.length=_,i.spot.length=m,i.rectArea.length=f,i.point.length=M,i.hemi.length=E,i.directionalShadow.length=y,i.directionalShadowMap.length=y,i.pointShadow.length=T,i.pointShadowMap.length=T,i.spotShadow.length=R,i.spotShadowMap.length=R,i.directionalShadowMatrix.length=y,i.pointShadowMatrix.length=T,i.spotShadowMatrix.length=R,Z.directionalLength=_,Z.pointLength=M,Z.spotLength=m,Z.rectAreaLength=f,Z.hemiLength=E,Z.numDirectionalShadows=y,Z.numPointShadows=T,Z.numSpotShadows=R,i.version=gu++)}function l(h,u){let d=0,p=0,g=0,_=0,M=0;const m=u.matrixWorldInverse;for(let f=0,E=h.length;f<E;f++){const y=h[f];if(y.isDirectionalLight){const T=i.directional[d];T.direction.setFromMatrixPosition(y.matrixWorld),r.setFromMatrixPosition(y.target.matrixWorld),T.direction.sub(r),T.direction.transformDirection(m),d++}else if(y.isSpotLight){const T=i.spot[g];T.position.setFromMatrixPosition(y.matrixWorld),T.position.applyMatrix4(m),T.direction.setFromMatrixPosition(y.matrixWorld),r.setFromMatrixPosition(y.target.matrixWorld),T.direction.sub(r),T.direction.transformDirection(m),g++}else if(y.isRectAreaLight){const T=i.rectArea[_];T.position.setFromMatrixPosition(y.matrixWorld),T.position.applyMatrix4(m),o.identity(),a.copy(y.matrixWorld),a.premultiply(m),o.extractRotation(a),T.halfWidth.set(y.width*.5,0,0),T.halfHeight.set(0,y.height*.5,0),T.halfWidth.applyMatrix4(o),T.halfHeight.applyMatrix4(o),_++}else if(y.isPointLight){const T=i.point[p];T.position.setFromMatrixPosition(y.matrixWorld),T.position.applyMatrix4(m),p++}else if(y.isHemisphereLight){const T=i.hemi[M];T.direction.setFromMatrixPosition(y.matrixWorld),T.direction.transformDirection(m),T.direction.normalize(),M++}}}return{setup:c,setupView:l,state:i}}function Sa(s,e){const t=new xu(s,e),n=[],i=[];function r(){n.length=0,i.length=0}function a(u){n.push(u)}function o(u){i.push(u)}function c(u){t.setup(n,u)}function l(u){t.setupView(n,u)}return{init:r,state:{lightsArray:n,shadowsArray:i,lights:t},setupLights:c,setupLightsView:l,pushLight:a,pushShadow:o}}function vu(s,e){let t=new WeakMap;function n(r,a=0){let o;return t.has(r)===!1?(o=new Sa(s,e),t.set(r,[o])):a>=t.get(r).length?(o=new Sa(s,e),t.get(r).push(o)):o=t.get(r)[a],o}function i(){t=new WeakMap}return{get:n,dispose:i}}class ba extends ct{constructor(e){super();this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}ba.prototype.isMeshDepthMaterial=!0;class wa extends ct{constructor(e){super();this.type="MeshDistanceMaterial",this.referencePosition=new w,this.nearDistance=1,this.farDistance=1e3,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(e)}copy(e){return super.copy(e),this.referencePosition.copy(e.referencePosition),this.nearDistance=e.nearDistance,this.farDistance=e.farDistance,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}wa.prototype.isMeshDistanceMaterial=!0;const yu=`void main() { + gl_Position = vec4( position, 1.0 ); +}`,Mu=`uniform sampler2D shadow_pass; +uniform vec2 resolution; +uniform float radius; +#include <packing> +void main() { + const float samples = float( VSM_SAMPLES ); + float mean = 0.0; + float squared_mean = 0.0; + float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); + float uvStart = samples <= 1.0 ? 0.0 : - 1.0; + for ( float i = 0.0; i < samples; i ++ ) { + float uvOffset = uvStart + i * uvStride; + #ifdef HORIZONTAL_PASS + vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); + mean += distribution.x; + squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; + #else + float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); + mean += depth; + squared_mean += depth * depth; + #endif + } + mean = mean / samples; + squared_mean = squared_mean / samples; + float std_dev = sqrt( squared_mean - mean * mean ); + gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); +}`;function Ta(s,e,t){let n=new Xi;const i=new J,r=new J,a=new We,o=new ba({depthPacking:3201}),c=new wa,l={},h=t.maxTextureSize,u={0:1,1:0,2:2},d=new vn({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new J},radius:{value:4}},vertexShader:yu,fragmentShader:Mu}),p=d.clone();p.defines.HORIZONTAL_PASS=1;const g=new Ze;g.setAttribute("position",new nt(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const _=new gt(g,d),M=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1,this.render=function(y,T,R){if(M.enabled===!1||M.autoUpdate===!1&&M.needsUpdate===!1||y.length===0)return;const C=s.getRenderTarget(),Z=s.getActiveCubeFace(),se=s.getActiveMipmapLevel(),j=s.state;j.setBlending(0),j.buffers.color.setClear(1,1,1,1),j.buffers.depth.setTest(!0),j.setScissorTest(!1);for(let x=0,L=y.length;x<L;x++){const D=y[x],B=D.shadow;if(B===void 0){console.warn("THREE.WebGLShadowMap:",D,"has no shadow.");continue}if(B.autoUpdate===!1&&B.needsUpdate===!1)continue;i.copy(B.mapSize);const N=B.getFrameExtents();if(i.multiply(N),r.copy(B.mapSize),(i.x>h||i.y>h)&&(i.x>h&&(r.x=Math.floor(h/N.x),i.x=r.x*N.x,B.mapSize.x=r.x),i.y>h&&(r.y=Math.floor(h/N.y),i.y=r.y*N.y,B.mapSize.y=r.y)),B.map===null&&!B.isPointLightShadow&&this.type===3){const H={minFilter:1006,magFilter:1006,format:1023};B.map=new St(i.x,i.y,H),B.map.texture.name=D.name+".shadowMap",B.mapPass=new St(i.x,i.y,H),B.camera.updateProjectionMatrix()}if(B.map===null){const H={minFilter:1003,magFilter:1003,format:1023};B.map=new St(i.x,i.y,H),B.map.texture.name=D.name+".shadowMap",B.camera.updateProjectionMatrix()}s.setRenderTarget(B.map),s.clear();const I=B.getViewportCount();for(let H=0;H<I;H++){const Y=B.getViewport(H);a.set(r.x*Y.x,r.y*Y.y,r.x*Y.z,r.y*Y.w),j.viewport(a),B.updateMatrices(D,H),n=B.getFrustum(),E(T,R,B.camera,D,this.type)}!B.isPointLightShadow&&this.type===3&&m(B,R),B.needsUpdate=!1}M.needsUpdate=!1,s.setRenderTarget(C,Z,se)};function m(y,T){const R=e.update(_);d.defines.VSM_SAMPLES!==y.blurSamples&&(d.defines.VSM_SAMPLES=y.blurSamples,p.defines.VSM_SAMPLES=y.blurSamples,d.needsUpdate=!0,p.needsUpdate=!0),d.uniforms.shadow_pass.value=y.map.texture,d.uniforms.resolution.value=y.mapSize,d.uniforms.radius.value=y.radius,s.setRenderTarget(y.mapPass),s.clear(),s.renderBufferDirect(T,null,R,d,_,null),p.uniforms.shadow_pass.value=y.mapPass.texture,p.uniforms.resolution.value=y.mapSize,p.uniforms.radius.value=y.radius,s.setRenderTarget(y.map),s.clear(),s.renderBufferDirect(T,null,R,p,_,null)}function f(y,T,R,C,Z,se,j){let x=null;const L=C.isPointLight===!0?y.customDistanceMaterial:y.customDepthMaterial;if(L!==void 0?x=L:x=C.isPointLight===!0?c:o,s.localClippingEnabled&&R.clipShadows===!0&&R.clippingPlanes.length!==0||R.displacementMap&&R.displacementScale!==0||R.alphaMap&&R.alphaTest>0){const D=x.uuid,B=R.uuid;let N=l[D];N===void 0&&(N={},l[D]=N);let I=N[B];I===void 0&&(I=x.clone(),N[B]=I),x=I}return x.visible=R.visible,x.wireframe=R.wireframe,j===3?x.side=R.shadowSide!==null?R.shadowSide:R.side:x.side=R.shadowSide!==null?R.shadowSide:u[R.side],x.alphaMap=R.alphaMap,x.alphaTest=R.alphaTest,x.clipShadows=R.clipShadows,x.clippingPlanes=R.clippingPlanes,x.clipIntersection=R.clipIntersection,x.displacementMap=R.displacementMap,x.displacementScale=R.displacementScale,x.displacementBias=R.displacementBias,x.wireframeLinewidth=R.wireframeLinewidth,x.linewidth=R.linewidth,C.isPointLight===!0&&x.isMeshDistanceMaterial===!0&&(x.referencePosition.setFromMatrixPosition(C.matrixWorld),x.nearDistance=Z,x.farDistance=se),x}function E(y,T,R,C,Z){if(y.visible===!1)return;if(y.layers.test(T.layers)&&(y.isMesh||y.isLine||y.isPoints)&&(y.castShadow||y.receiveShadow&&Z===3)&&(!y.frustumCulled||n.intersectsObject(y))){y.modelViewMatrix.multiplyMatrices(R.matrixWorldInverse,y.matrixWorld);const x=e.update(y),L=y.material;if(Array.isArray(L)){const D=x.groups;for(let B=0,N=D.length;B<N;B++){const I=D[B],H=L[I.materialIndex];if(H&&H.visible){const Y=f(y,x,H,C,R.near,R.far,Z);s.renderBufferDirect(R,null,x,Y,y,I)}}}else if(L.visible){const D=f(y,x,L,C,R.near,R.far,Z);s.renderBufferDirect(R,null,x,D,y,null)}}const j=y.children;for(let x=0,L=j.length;x<L;x++)E(j[x],T,R,C,Z)}}function Su(s,e,t){const n=t.isWebGL2;function i(){let A=!1;const he=new We;let ae=null;const Me=new We(0,0,0,0);return{setMask:function(W){ae!==W&&!A&&(s.colorMask(W,W,W,W),ae=W)},setLocked:function(W){A=W},setClear:function(W,ve,Ie,Je,Mt){Mt===!0&&(W*=Je,ve*=Je,Ie*=Je),he.set(W,ve,Ie,Je),Me.equals(he)===!1&&(s.clearColor(W,ve,Ie,Je),Me.copy(he))},reset:function(){A=!1,ae=null,Me.set(-1,0,0,0)}}}function r(){let A=!1,he=null,ae=null,Me=null;return{setTest:function(W){W?U(2929):ze(2929)},setMask:function(W){he!==W&&!A&&(s.depthMask(W),he=W)},setFunc:function(W){if(ae!==W){if(W)switch(W){case 0:s.depthFunc(512);break;case 1:s.depthFunc(519);break;case 2:s.depthFunc(513);break;case 3:s.depthFunc(515);break;case 4:s.depthFunc(514);break;case 5:s.depthFunc(518);break;case 6:s.depthFunc(516);break;case 7:s.depthFunc(517);break;default:s.depthFunc(515)}else s.depthFunc(515);ae=W}},setLocked:function(W){A=W},setClear:function(W){Me!==W&&(s.clearDepth(W),Me=W)},reset:function(){A=!1,he=null,ae=null,Me=null}}}function a(){let A=!1,he=null,ae=null,Me=null,W=null,ve=null,Ie=null,Je=null,Mt=null;return{setTest:function(Ke){A||(Ke?U(2960):ze(2960))},setMask:function(Ke){he!==Ke&&!A&&(s.stencilMask(Ke),he=Ke)},setFunc:function(Ke,zt,Yt){(ae!==Ke||Me!==zt||W!==Yt)&&(s.stencilFunc(Ke,zt,Yt),ae=Ke,Me=zt,W=Yt)},setOp:function(Ke,zt,Yt){(ve!==Ke||Ie!==zt||Je!==Yt)&&(s.stencilOp(Ke,zt,Yt),ve=Ke,Ie=zt,Je=Yt)},setLocked:function(Ke){A=Ke},setClear:function(Ke){Mt!==Ke&&(s.clearStencil(Ke),Mt=Ke)},reset:function(){A=!1,he=null,ae=null,Me=null,W=null,ve=null,Ie=null,Je=null,Mt=null}}}const o=new i,c=new r,l=new a;let h={},u={},d=new WeakMap,p=[],g=null,_=!1,M=null,m=null,f=null,E=null,y=null,T=null,R=null,C=!1,Z=null,se=null,j=null,x=null,L=null;const D=s.getParameter(35661);let B=!1,N=0;const I=s.getParameter(7938);I.indexOf("WebGL")!==-1?(N=parseFloat(/^WebGL (\d)/.exec(I)[1]),B=N>=1):I.indexOf("OpenGL ES")!==-1&&(N=parseFloat(/^OpenGL ES (\d)/.exec(I)[1]),B=N>=2);let H=null,Y={};const ce=s.getParameter(3088),O=s.getParameter(2978),X=new We().fromArray(ce),ne=new We().fromArray(O);function ue(A,he,ae){const Me=new Uint8Array(4),W=s.createTexture();s.bindTexture(A,W),s.texParameteri(A,10241,9728),s.texParameteri(A,10240,9728);for(let ve=0;ve<ae;ve++)s.texImage2D(he+ve,0,6408,1,1,0,6408,5121,Me);return W}const ge={};ge[3553]=ue(3553,3553,1),ge[34067]=ue(34067,34069,6),o.setClear(0,0,0,1),c.setClear(1),l.setClear(0),U(2929),c.setFunc(3),$(!1),le(1),U(2884),k(0);function U(A){h[A]!==!0&&(s.enable(A),h[A]=!0)}function ze(A){h[A]!==!1&&(s.disable(A),h[A]=!1)}function fe(A,he){return u[A]!==he?(s.bindFramebuffer(A,he),u[A]=he,n&&(A===36009&&(u[36160]=he),A===36160&&(u[36009]=he)),!0):!1}function Se(A,he){let ae=p,Me=!1;if(A)if(ae=d.get(he),ae===void 0&&(ae=[],d.set(he,ae)),A.isWebGLMultipleRenderTargets){const W=A.texture;if(ae.length!==W.length||ae[0]!==36064){for(let ve=0,Ie=W.length;ve<Ie;ve++)ae[ve]=36064+ve;ae.length=W.length,Me=!0}}else ae[0]!==36064&&(ae[0]=36064,Me=!0);else ae[0]!==1029&&(ae[0]=1029,Me=!0);Me&&(t.isWebGL2?s.drawBuffers(ae):e.get("WEBGL_draw_buffers").drawBuffersWEBGL(ae))}function oe(A){return g!==A?(s.useProgram(A),g=A,!0):!1}const Re={[100]:32774,[101]:32778,[102]:32779};if(n)Re[103]=32775,Re[104]=32776;else{const A=e.get("EXT_blend_minmax");A!==null&&(Re[103]=A.MIN_EXT,Re[104]=A.MAX_EXT)}const be={[200]:0,[201]:1,[202]:768,[204]:770,[210]:776,[208]:774,[206]:772,[203]:769,[205]:771,[209]:775,[207]:773};function k(A,he,ae,Me,W,ve,Ie,Je){if(A===0){_===!0&&(ze(3042),_=!1);return}if(_===!1&&(U(3042),_=!0),A!==5){if(A!==M||Je!==C){if((m!==100||y!==100)&&(s.blendEquation(32774),m=100,y=100),Je)switch(A){case 1:s.blendFuncSeparate(1,771,1,771);break;case 2:s.blendFunc(1,1);break;case 3:s.blendFuncSeparate(0,769,0,1);break;case 4:s.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",A);break}else switch(A){case 1:s.blendFuncSeparate(770,771,1,771);break;case 2:s.blendFunc(770,1);break;case 3:s.blendFuncSeparate(0,769,0,1);break;case 4:s.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",A);break}f=null,E=null,T=null,R=null,M=A,C=Je}return}W=W||he,ve=ve||ae,Ie=Ie||Me,(he!==m||W!==y)&&(s.blendEquationSeparate(Re[he],Re[W]),m=he,y=W),(ae!==f||Me!==E||ve!==T||Ie!==R)&&(s.blendFuncSeparate(be[ae],be[Me],be[ve],be[Ie]),f=ae,E=Me,T=ve,R=Ie),M=A,C=null}function Q(A,he){A.side===2?ze(2884):U(2884);let ae=A.side===1;he&&(ae=!ae),$(ae),A.blending===1&&A.transparent===!1?k(0):k(A.blending,A.blendEquation,A.blendSrc,A.blendDst,A.blendEquationAlpha,A.blendSrcAlpha,A.blendDstAlpha,A.premultipliedAlpha),c.setFunc(A.depthFunc),c.setTest(A.depthTest),c.setMask(A.depthWrite),o.setMask(A.colorWrite);const Me=A.stencilWrite;l.setTest(Me),Me&&(l.setMask(A.stencilWriteMask),l.setFunc(A.stencilFunc,A.stencilRef,A.stencilFuncMask),l.setOp(A.stencilFail,A.stencilZFail,A.stencilZPass)),ye(A.polygonOffset,A.polygonOffsetFactor,A.polygonOffsetUnits),A.alphaToCoverage===!0?U(32926):ze(32926)}function $(A){Z!==A&&(A?s.frontFace(2304):s.frontFace(2305),Z=A)}function le(A){A!==0?(U(2884),A!==se&&(A===1?s.cullFace(1029):A===2?s.cullFace(1028):s.cullFace(1032))):ze(2884),se=A}function re(A){A!==j&&(B&&s.lineWidth(A),j=A)}function ye(A,he,ae){A?(U(32823),(x!==he||L!==ae)&&(s.polygonOffset(he,ae),x=he,L=ae)):ze(32823)}function we(A){A?U(3089):ze(3089)}function Fe(A){A===void 0&&(A=33984+D-1),H!==A&&(s.activeTexture(A),H=A)}function Xe(A,he){H===null&&Fe();let ae=Y[H];ae===void 0&&(ae={type:void 0,texture:void 0},Y[H]=ae),(ae.type!==A||ae.texture!==he)&&(s.bindTexture(A,he||ge[A]),ae.type=A,ae.texture=he)}function ke(){const A=Y[H];A!==void 0&&A.type!==void 0&&(s.bindTexture(A.type,null),A.type=void 0,A.texture=void 0)}function b(){try{s.compressedTexImage2D.apply(s,arguments)}catch(A){console.error("THREE.WebGLState:",A)}}function v(){try{s.texSubImage2D.apply(s,arguments)}catch(A){console.error("THREE.WebGLState:",A)}}function V(){try{s.texSubImage3D.apply(s,arguments)}catch(A){console.error("THREE.WebGLState:",A)}}function K(){try{s.compressedTexSubImage2D.apply(s,arguments)}catch(A){console.error("THREE.WebGLState:",A)}}function de(){try{s.texStorage2D.apply(s,arguments)}catch(A){console.error("THREE.WebGLState:",A)}}function G(){try{s.texStorage3D.apply(s,arguments)}catch(A){console.error("THREE.WebGLState:",A)}}function xe(){try{s.texImage2D.apply(s,arguments)}catch(A){console.error("THREE.WebGLState:",A)}}function pe(){try{s.texImage3D.apply(s,arguments)}catch(A){console.error("THREE.WebGLState:",A)}}function ie(A){X.equals(A)===!1&&(s.scissor(A.x,A.y,A.z,A.w),X.copy(A))}function te(A){ne.equals(A)===!1&&(s.viewport(A.x,A.y,A.z,A.w),ne.copy(A))}function Ee(){s.disable(3042),s.disable(2884),s.disable(2929),s.disable(32823),s.disable(3089),s.disable(2960),s.disable(32926),s.blendEquation(32774),s.blendFunc(1,0),s.blendFuncSeparate(1,0,1,0),s.colorMask(!0,!0,!0,!0),s.clearColor(0,0,0,0),s.depthMask(!0),s.depthFunc(513),s.clearDepth(1),s.stencilMask(4294967295),s.stencilFunc(519,0,4294967295),s.stencilOp(7680,7680,7680),s.clearStencil(0),s.cullFace(1029),s.frontFace(2305),s.polygonOffset(0,0),s.activeTexture(33984),s.bindFramebuffer(36160,null),n===!0&&(s.bindFramebuffer(36009,null),s.bindFramebuffer(36008,null)),s.useProgram(null),s.lineWidth(1),s.scissor(0,0,s.canvas.width,s.canvas.height),s.viewport(0,0,s.canvas.width,s.canvas.height),h={},H=null,Y={},u={},d=new WeakMap,p=[],g=null,_=!1,M=null,m=null,f=null,E=null,y=null,T=null,R=null,C=!1,Z=null,se=null,j=null,x=null,L=null,X.set(0,0,s.canvas.width,s.canvas.height),ne.set(0,0,s.canvas.width,s.canvas.height),o.reset(),c.reset(),l.reset()}return{buffers:{color:o,depth:c,stencil:l},enable:U,disable:ze,bindFramebuffer:fe,drawBuffers:Se,useProgram:oe,setBlending:k,setMaterial:Q,setFlipSided:$,setCullFace:le,setLineWidth:re,setPolygonOffset:ye,setScissorTest:we,activeTexture:Fe,bindTexture:Xe,unbindTexture:ke,compressedTexImage2D:b,texImage2D:xe,texImage3D:pe,texStorage2D:de,texStorage3D:G,texSubImage2D:v,texSubImage3D:V,compressedTexSubImage2D:K,scissor:ie,viewport:te,reset:Ee}}function bu(s,e,t,n,i,r,a){const o=i.isWebGL2,c=i.maxTextures,l=i.maxCubemapSize,h=i.maxTextureSize,u=i.maxSamples,p=e.has("WEBGL_multisampled_render_to_texture")?e.get("WEBGL_multisampled_render_to_texture"):void 0,g=new WeakMap;let _,M=!1;try{M=typeof OffscreenCanvas!="undefined"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function m(b,v){return M?new OffscreenCanvas(b,v):ii("canvas")}function f(b,v,V,K){let de=1;if((b.width>K||b.height>K)&&(de=K/Math.max(b.width,b.height)),de<1||v===!0)if(typeof HTMLImageElement!="undefined"&&b instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&b instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&b instanceof ImageBitmap){const G=v?wo:Math.floor,xe=G(de*b.width),pe=G(de*b.height);_===void 0&&(_=m(xe,pe));const ie=V?m(xe,pe):_;return ie.width=xe,ie.height=pe,ie.getContext("2d").drawImage(b,0,0,xe,pe),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+b.width+"x"+b.height+") to ("+xe+"x"+pe+")."),ie}else return"data"in b&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+b.width+"x"+b.height+")."),b;return b}function E(b){return Ts(b.width)&&Ts(b.height)}function y(b){return o?!1:b.wrapS!==1001||b.wrapT!==1001||b.minFilter!==1003&&b.minFilter!==1006}function T(b,v){return b.generateMipmaps&&v&&b.minFilter!==1003&&b.minFilter!==1006}function R(b){s.generateMipmap(b)}function C(b,v,V,K,de=!1){if(o===!1)return v;if(b!==null){if(s[b]!==void 0)return s[b];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+b+"'")}let G=v;return v===6403&&(V===5126&&(G=33326),V===5131&&(G=33325),V===5121&&(G=33321)),v===33319&&(V===5126&&(G=33328),V===5131&&(G=33327),V===5121&&(G=33323)),v===6408&&(V===5126&&(G=34836),V===5131&&(G=34842),V===5121&&(G=K===3001&&de===!1?35907:32856),V===32819&&(G=32854),V===32820&&(G=32855)),(G===33325||G===33326||G===33327||G===33328||G===34842||G===34836)&&e.get("EXT_color_buffer_float"),G}function Z(b,v,V){return T(b,V)===!0||b.isFramebufferTexture&&b.minFilter!==1003&&b.minFilter!==1006?Math.log2(Math.max(v.width,v.height))+1:b.mipmaps!==void 0&&b.mipmaps.length>0?b.mipmaps.length:b.isCompressedTexture&&Array.isArray(b.image)?v.mipmaps.length:1}function se(b){return b===1003||b===1004||b===1005?9728:9729}function j(b){const v=b.target;v.removeEventListener("dispose",j),L(v),v.isVideoTexture&&g.delete(v),a.memory.textures--}function x(b){const v=b.target;v.removeEventListener("dispose",x),D(v)}function L(b){const v=n.get(b);v.__webglInit!==void 0&&(s.deleteTexture(v.__webglTexture),n.remove(b))}function D(b){const v=b.texture,V=n.get(b),K=n.get(v);if(!!b){if(K.__webglTexture!==void 0&&(s.deleteTexture(K.__webglTexture),a.memory.textures--),b.depthTexture&&b.depthTexture.dispose(),b.isWebGLCubeRenderTarget)for(let de=0;de<6;de++)s.deleteFramebuffer(V.__webglFramebuffer[de]),V.__webglDepthbuffer&&s.deleteRenderbuffer(V.__webglDepthbuffer[de]);else s.deleteFramebuffer(V.__webglFramebuffer),V.__webglDepthbuffer&&s.deleteRenderbuffer(V.__webglDepthbuffer),V.__webglMultisampledFramebuffer&&s.deleteFramebuffer(V.__webglMultisampledFramebuffer),V.__webglColorRenderbuffer&&s.deleteRenderbuffer(V.__webglColorRenderbuffer),V.__webglDepthRenderbuffer&&s.deleteRenderbuffer(V.__webglDepthRenderbuffer);if(b.isWebGLMultipleRenderTargets)for(let de=0,G=v.length;de<G;de++){const xe=n.get(v[de]);xe.__webglTexture&&(s.deleteTexture(xe.__webglTexture),a.memory.textures--),n.remove(v[de])}n.remove(v),n.remove(b)}}let B=0;function N(){B=0}function I(){const b=B;return b>=c&&console.warn("THREE.WebGLTextures: Trying to use "+b+" texture units while this GPU supports only "+c),B+=1,b}function H(b,v){const V=n.get(b);if(b.isVideoTexture&&re(b),b.version>0&&V.__version!==b.version){const K=b.image;if(K===void 0)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else if(K.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{U(V,b,v);return}}t.activeTexture(33984+v),t.bindTexture(3553,V.__webglTexture)}function Y(b,v){const V=n.get(b);if(b.version>0&&V.__version!==b.version){U(V,b,v);return}t.activeTexture(33984+v),t.bindTexture(35866,V.__webglTexture)}function ce(b,v){const V=n.get(b);if(b.version>0&&V.__version!==b.version){U(V,b,v);return}t.activeTexture(33984+v),t.bindTexture(32879,V.__webglTexture)}function O(b,v){const V=n.get(b);if(b.version>0&&V.__version!==b.version){ze(V,b,v);return}t.activeTexture(33984+v),t.bindTexture(34067,V.__webglTexture)}const X={[1e3]:10497,[1001]:33071,[1002]:33648},ne={[1003]:9728,[1004]:9984,[1005]:9986,[1006]:9729,[1007]:9985,[1008]:9987};function ue(b,v,V){if(V?(s.texParameteri(b,10242,X[v.wrapS]),s.texParameteri(b,10243,X[v.wrapT]),(b===32879||b===35866)&&s.texParameteri(b,32882,X[v.wrapR]),s.texParameteri(b,10240,ne[v.magFilter]),s.texParameteri(b,10241,ne[v.minFilter])):(s.texParameteri(b,10242,33071),s.texParameteri(b,10243,33071),(b===32879||b===35866)&&s.texParameteri(b,32882,33071),(v.wrapS!==1001||v.wrapT!==1001)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),s.texParameteri(b,10240,se(v.magFilter)),s.texParameteri(b,10241,se(v.minFilter)),v.minFilter!==1003&&v.minFilter!==1006&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),e.has("EXT_texture_filter_anisotropic")===!0){const K=e.get("EXT_texture_filter_anisotropic");if(v.type===1015&&e.has("OES_texture_float_linear")===!1||o===!1&&v.type===1016&&e.has("OES_texture_half_float_linear")===!1)return;(v.anisotropy>1||n.get(v).__currentAnisotropy)&&(s.texParameterf(b,K.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(v.anisotropy,i.getMaxAnisotropy())),n.get(v).__currentAnisotropy=v.anisotropy)}}function ge(b,v){b.__webglInit===void 0&&(b.__webglInit=!0,v.addEventListener("dispose",j),b.__webglTexture=s.createTexture(),a.memory.textures++)}function U(b,v,V){let K=3553;v.isDataTexture2DArray&&(K=35866),v.isDataTexture3D&&(K=32879),ge(b,v),t.activeTexture(33984+V),t.bindTexture(K,b.__webglTexture),s.pixelStorei(37440,v.flipY),s.pixelStorei(37441,v.premultiplyAlpha),s.pixelStorei(3317,v.unpackAlignment),s.pixelStorei(37443,0);const de=y(v)&&E(v.image)===!1;let G=f(v.image,de,!1,h);G=ye(v,G);const xe=E(G)||o,pe=r.convert(v.format,v.encoding);let ie=r.convert(v.type),te=C(v.internalFormat,pe,ie,v.encoding,v.isVideoTexture);ue(K,v,xe);let Ee;const A=v.mipmaps,he=o&&v.isVideoTexture!==!0,ae=b.__version===void 0,Me=Z(v,G,xe);if(v.isDepthTexture)te=6402,o?v.type===1015?te=36012:v.type===1014?te=33190:v.type===1020?te=35056:te=33189:v.type===1015&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),v.format===1026&&te===6402&&v.type!==1012&&v.type!==1014&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),v.type=1012,ie=r.convert(v.type)),v.format===1027&&te===6402&&(te=34041,v.type!==1020&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),v.type=1020,ie=r.convert(v.type))),he&&ae?t.texStorage2D(3553,1,te,G.width,G.height):t.texImage2D(3553,0,te,G.width,G.height,0,pe,ie,null);else if(v.isDataTexture)if(A.length>0&&xe){he&&ae&&t.texStorage2D(3553,Me,te,A[0].width,A[0].height);for(let W=0,ve=A.length;W<ve;W++)Ee=A[W],he?t.texSubImage2D(3553,0,0,0,Ee.width,Ee.height,pe,ie,Ee.data):t.texImage2D(3553,W,te,Ee.width,Ee.height,0,pe,ie,Ee.data);v.generateMipmaps=!1}else he?(ae&&t.texStorage2D(3553,Me,te,G.width,G.height),t.texSubImage2D(3553,0,0,0,G.width,G.height,pe,ie,G.data)):t.texImage2D(3553,0,te,G.width,G.height,0,pe,ie,G.data);else if(v.isCompressedTexture){he&&ae&&t.texStorage2D(3553,Me,te,A[0].width,A[0].height);for(let W=0,ve=A.length;W<ve;W++)Ee=A[W],v.format!==1023?pe!==null?he?t.compressedTexSubImage2D(3553,W,0,0,Ee.width,Ee.height,pe,Ee.data):t.compressedTexImage2D(3553,W,te,Ee.width,Ee.height,0,Ee.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):he?t.texSubImage2D(3553,W,0,0,Ee.width,Ee.height,pe,ie,Ee.data):t.texImage2D(3553,W,te,Ee.width,Ee.height,0,pe,ie,Ee.data)}else if(v.isDataTexture2DArray)he?(ae&&t.texStorage3D(35866,Me,te,G.width,G.height,G.depth),t.texSubImage3D(35866,0,0,0,0,G.width,G.height,G.depth,pe,ie,G.data)):t.texImage3D(35866,0,te,G.width,G.height,G.depth,0,pe,ie,G.data);else if(v.isDataTexture3D)he?(ae&&t.texStorage3D(32879,Me,te,G.width,G.height,G.depth),t.texSubImage3D(32879,0,0,0,0,G.width,G.height,G.depth,pe,ie,G.data)):t.texImage3D(32879,0,te,G.width,G.height,G.depth,0,pe,ie,G.data);else if(v.isFramebufferTexture)he&&ae?t.texStorage2D(3553,Me,te,G.width,G.height):t.texImage2D(3553,0,te,G.width,G.height,0,pe,ie,null);else if(A.length>0&&xe){he&&ae&&t.texStorage2D(3553,Me,te,A[0].width,A[0].height);for(let W=0,ve=A.length;W<ve;W++)Ee=A[W],he?t.texSubImage2D(3553,W,0,0,pe,ie,Ee):t.texImage2D(3553,W,te,pe,ie,Ee);v.generateMipmaps=!1}else he?(ae&&t.texStorage2D(3553,Me,te,G.width,G.height),t.texSubImage2D(3553,0,0,0,pe,ie,G)):t.texImage2D(3553,0,te,pe,ie,G);T(v,xe)&&R(K),b.__version=v.version,v.onUpdate&&v.onUpdate(v)}function ze(b,v,V){if(v.image.length!==6)return;ge(b,v),t.activeTexture(33984+V),t.bindTexture(34067,b.__webglTexture),s.pixelStorei(37440,v.flipY),s.pixelStorei(37441,v.premultiplyAlpha),s.pixelStorei(3317,v.unpackAlignment),s.pixelStorei(37443,0);const K=v&&(v.isCompressedTexture||v.image[0].isCompressedTexture),de=v.image[0]&&v.image[0].isDataTexture,G=[];for(let W=0;W<6;W++)!K&&!de?G[W]=f(v.image[W],!1,!0,l):G[W]=de?v.image[W].image:v.image[W],G[W]=ye(v,G[W]);const xe=G[0],pe=E(xe)||o,ie=r.convert(v.format,v.encoding),te=r.convert(v.type),Ee=C(v.internalFormat,ie,te,v.encoding),A=o&&v.isVideoTexture!==!0,he=b.__version===void 0;let ae=Z(v,xe,pe);ue(34067,v,pe);let Me;if(K){A&&he&&t.texStorage2D(34067,ae,Ee,xe.width,xe.height);for(let W=0;W<6;W++){Me=G[W].mipmaps;for(let ve=0;ve<Me.length;ve++){const Ie=Me[ve];v.format!==1023?ie!==null?A?t.compressedTexSubImage2D(34069+W,ve,0,0,Ie.width,Ie.height,ie,Ie.data):t.compressedTexImage2D(34069+W,ve,Ee,Ie.width,Ie.height,0,Ie.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):A?t.texSubImage2D(34069+W,ve,0,0,Ie.width,Ie.height,ie,te,Ie.data):t.texImage2D(34069+W,ve,Ee,Ie.width,Ie.height,0,ie,te,Ie.data)}}}else{Me=v.mipmaps,A&&he&&(Me.length>0&&ae++,t.texStorage2D(34067,ae,Ee,G[0].width,G[0].height));for(let W=0;W<6;W++)if(de){A?t.texSubImage2D(34069+W,0,0,0,G[W].width,G[W].height,ie,te,G[W].data):t.texImage2D(34069+W,0,Ee,G[W].width,G[W].height,0,ie,te,G[W].data);for(let ve=0;ve<Me.length;ve++){const Je=Me[ve].image[W].image;A?t.texSubImage2D(34069+W,ve+1,0,0,Je.width,Je.height,ie,te,Je.data):t.texImage2D(34069+W,ve+1,Ee,Je.width,Je.height,0,ie,te,Je.data)}}else{A?t.texSubImage2D(34069+W,0,0,0,ie,te,G[W]):t.texImage2D(34069+W,0,Ee,ie,te,G[W]);for(let ve=0;ve<Me.length;ve++){const Ie=Me[ve];A?t.texSubImage2D(34069+W,ve+1,0,0,ie,te,Ie.image[W]):t.texImage2D(34069+W,ve+1,Ee,ie,te,Ie.image[W])}}}T(v,pe)&&R(34067),b.__version=v.version,v.onUpdate&&v.onUpdate(v)}function fe(b,v,V,K,de){const G=r.convert(V.format,V.encoding),xe=r.convert(V.type),pe=C(V.internalFormat,G,xe,V.encoding);n.get(v).__hasExternalTextures||(de===32879||de===35866?t.texImage3D(de,0,pe,v.width,v.height,v.depth,0,G,xe,null):t.texImage2D(de,0,pe,v.width,v.height,0,G,xe,null)),t.bindFramebuffer(36160,b),v.useRenderToTexture?p.framebufferTexture2DMultisampleEXT(36160,K,de,n.get(V).__webglTexture,0,le(v)):s.framebufferTexture2D(36160,K,de,n.get(V).__webglTexture,0),t.bindFramebuffer(36160,null)}function Se(b,v,V){if(s.bindRenderbuffer(36161,b),v.depthBuffer&&!v.stencilBuffer){let K=33189;if(V||v.useRenderToTexture){const de=v.depthTexture;de&&de.isDepthTexture&&(de.type===1015?K=36012:de.type===1014&&(K=33190));const G=le(v);v.useRenderToTexture?p.renderbufferStorageMultisampleEXT(36161,G,K,v.width,v.height):s.renderbufferStorageMultisample(36161,G,K,v.width,v.height)}else s.renderbufferStorage(36161,K,v.width,v.height);s.framebufferRenderbuffer(36160,36096,36161,b)}else if(v.depthBuffer&&v.stencilBuffer){const K=le(v);V&&v.useRenderbuffer?s.renderbufferStorageMultisample(36161,K,35056,v.width,v.height):v.useRenderToTexture?p.renderbufferStorageMultisampleEXT(36161,K,35056,v.width,v.height):s.renderbufferStorage(36161,34041,v.width,v.height),s.framebufferRenderbuffer(36160,33306,36161,b)}else{const K=v.isWebGLMultipleRenderTargets===!0?v.texture[0]:v.texture,de=r.convert(K.format,K.encoding),G=r.convert(K.type),xe=C(K.internalFormat,de,G,K.encoding),pe=le(v);V&&v.useRenderbuffer?s.renderbufferStorageMultisample(36161,pe,xe,v.width,v.height):v.useRenderToTexture?p.renderbufferStorageMultisampleEXT(36161,pe,xe,v.width,v.height):s.renderbufferStorage(36161,xe,v.width,v.height)}s.bindRenderbuffer(36161,null)}function oe(b,v){if(v&&v.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(t.bindFramebuffer(36160,b),!(v.depthTexture&&v.depthTexture.isDepthTexture))throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");(!n.get(v.depthTexture).__webglTexture||v.depthTexture.image.width!==v.width||v.depthTexture.image.height!==v.height)&&(v.depthTexture.image.width=v.width,v.depthTexture.image.height=v.height,v.depthTexture.needsUpdate=!0),H(v.depthTexture,0);const K=n.get(v.depthTexture).__webglTexture,de=le(v);if(v.depthTexture.format===1026)v.useRenderToTexture?p.framebufferTexture2DMultisampleEXT(36160,36096,3553,K,0,de):s.framebufferTexture2D(36160,36096,3553,K,0);else if(v.depthTexture.format===1027)v.useRenderToTexture?p.framebufferTexture2DMultisampleEXT(36160,33306,3553,K,0,de):s.framebufferTexture2D(36160,33306,3553,K,0);else throw new Error("Unknown depthTexture format")}function Re(b){const v=n.get(b),V=b.isWebGLCubeRenderTarget===!0;if(b.depthTexture&&!v.__autoAllocateDepthBuffer){if(V)throw new Error("target.depthTexture not supported in Cube render targets");oe(v.__webglFramebuffer,b)}else if(V){v.__webglDepthbuffer=[];for(let K=0;K<6;K++)t.bindFramebuffer(36160,v.__webglFramebuffer[K]),v.__webglDepthbuffer[K]=s.createRenderbuffer(),Se(v.__webglDepthbuffer[K],b,!1)}else t.bindFramebuffer(36160,v.__webglFramebuffer),v.__webglDepthbuffer=s.createRenderbuffer(),Se(v.__webglDepthbuffer,b,!1);t.bindFramebuffer(36160,null)}function be(b,v,V){const K=n.get(b);v!==void 0&&fe(K.__webglFramebuffer,b,b.texture,36064,3553),V!==void 0&&Re(b)}function k(b){const v=b.texture,V=n.get(b),K=n.get(v);b.addEventListener("dispose",x),b.isWebGLMultipleRenderTargets!==!0&&(K.__webglTexture===void 0&&(K.__webglTexture=s.createTexture()),K.__version=v.version,a.memory.textures++);const de=b.isWebGLCubeRenderTarget===!0,G=b.isWebGLMultipleRenderTargets===!0,xe=v.isDataTexture3D||v.isDataTexture2DArray,pe=E(b)||o;if(de){V.__webglFramebuffer=[];for(let ie=0;ie<6;ie++)V.__webglFramebuffer[ie]=s.createFramebuffer()}else if(V.__webglFramebuffer=s.createFramebuffer(),G)if(i.drawBuffers){const ie=b.texture;for(let te=0,Ee=ie.length;te<Ee;te++){const A=n.get(ie[te]);A.__webglTexture===void 0&&(A.__webglTexture=s.createTexture(),a.memory.textures++)}}else console.warn("THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.");else if(b.useRenderbuffer)if(o){V.__webglMultisampledFramebuffer=s.createFramebuffer(),V.__webglColorRenderbuffer=s.createRenderbuffer(),s.bindRenderbuffer(36161,V.__webglColorRenderbuffer);const ie=r.convert(v.format,v.encoding),te=r.convert(v.type),Ee=C(v.internalFormat,ie,te,v.encoding),A=le(b);s.renderbufferStorageMultisample(36161,A,Ee,b.width,b.height),t.bindFramebuffer(36160,V.__webglMultisampledFramebuffer),s.framebufferRenderbuffer(36160,36064,36161,V.__webglColorRenderbuffer),s.bindRenderbuffer(36161,null),b.depthBuffer&&(V.__webglDepthRenderbuffer=s.createRenderbuffer(),Se(V.__webglDepthRenderbuffer,b,!0)),t.bindFramebuffer(36160,null)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.");if(de){t.bindTexture(34067,K.__webglTexture),ue(34067,v,pe);for(let ie=0;ie<6;ie++)fe(V.__webglFramebuffer[ie],b,v,36064,34069+ie);T(v,pe)&&R(34067),t.unbindTexture()}else if(G){const ie=b.texture;for(let te=0,Ee=ie.length;te<Ee;te++){const A=ie[te],he=n.get(A);t.bindTexture(3553,he.__webglTexture),ue(3553,A,pe),fe(V.__webglFramebuffer,b,A,36064+te,3553),T(A,pe)&&R(3553)}t.unbindTexture()}else{let ie=3553;xe&&(o?ie=v.isDataTexture3D?32879:35866:console.warn("THREE.DataTexture3D and THREE.DataTexture2DArray only supported with WebGL2.")),t.bindTexture(ie,K.__webglTexture),ue(ie,v,pe),fe(V.__webglFramebuffer,b,v,36064,ie),T(v,pe)&&R(ie),t.unbindTexture()}b.depthBuffer&&Re(b)}function Q(b){const v=E(b)||o,V=b.isWebGLMultipleRenderTargets===!0?b.texture:[b.texture];for(let K=0,de=V.length;K<de;K++){const G=V[K];if(T(G,v)){const xe=b.isWebGLCubeRenderTarget?34067:3553,pe=n.get(G).__webglTexture;t.bindTexture(xe,pe),R(xe),t.unbindTexture()}}}function $(b){if(b.useRenderbuffer)if(o){const v=b.width,V=b.height;let K=16384;const de=[36064],G=b.stencilBuffer?33306:36096;b.depthBuffer&&de.push(G),b.ignoreDepthForMultisampleCopy||(b.depthBuffer&&(K|=256),b.stencilBuffer&&(K|=1024));const xe=n.get(b);t.bindFramebuffer(36008,xe.__webglMultisampledFramebuffer),t.bindFramebuffer(36009,xe.__webglFramebuffer),b.ignoreDepthForMultisampleCopy&&(s.invalidateFramebuffer(36008,[G]),s.invalidateFramebuffer(36009,[G])),s.blitFramebuffer(0,0,v,V,0,0,v,V,K,9728),s.invalidateFramebuffer(36008,de),t.bindFramebuffer(36008,null),t.bindFramebuffer(36009,xe.__webglMultisampledFramebuffer)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.")}function le(b){return o&&(b.useRenderbuffer||b.useRenderToTexture)?Math.min(u,b.samples):0}function re(b){const v=a.render.frame;g.get(b)!==v&&(g.set(b,v),b.update())}function ye(b,v){const V=b.encoding,K=b.format,de=b.type;return b.isCompressedTexture===!0||b.isVideoTexture===!0||b.format===1035||V!==3e3&&(V===3001?o===!1?e.has("EXT_sRGB")===!0&&K===1023?(b.format=1035,b.minFilter=1006,b.generateMipmaps=!1):v=mn.sRGBToLinear(v):(K!==1023||de!==1009)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",V)),v}let we=!1,Fe=!1;function Xe(b,v){b&&b.isWebGLRenderTarget&&(we===!1&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),we=!0),b=b.texture),H(b,v)}function ke(b,v){b&&b.isWebGLCubeRenderTarget&&(Fe===!1&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),Fe=!0),b=b.texture),O(b,v)}this.allocateTextureUnit=I,this.resetTextureUnits=N,this.setTexture2D=H,this.setTexture2DArray=Y,this.setTexture3D=ce,this.setTextureCube=O,this.rebindTextures=be,this.setupRenderTarget=k,this.updateRenderTargetMipmap=Q,this.updateMultisampleRenderTarget=$,this.setupDepthRenderbuffer=Re,this.setupFrameBufferTexture=fe,this.safeSetTexture2D=Xe,this.safeSetTextureCube=ke}function wu(s,e,t){const n=t.isWebGL2;function i(r,a=null){let o;if(r===1009)return 5121;if(r===1017)return 32819;if(r===1018)return 32820;if(r===1010)return 5120;if(r===1011)return 5122;if(r===1012)return 5123;if(r===1013)return 5124;if(r===1014)return 5125;if(r===1015)return 5126;if(r===1016)return n?5131:(o=e.get("OES_texture_half_float"),o!==null?o.HALF_FLOAT_OES:null);if(r===1021)return 6406;if(r===1023)return 6408;if(r===1024)return 6409;if(r===1025)return 6410;if(r===1026)return 6402;if(r===1027)return 34041;if(r===1028)return 6403;if(r===1022)return console.warn("THREE.WebGLRenderer: THREE.RGBFormat has been removed. Use THREE.RGBAFormat instead. https://github.com/mrdoob/three.js/pull/23228"),6408;if(r===1035)return o=e.get("EXT_sRGB"),o!==null?o.SRGB_ALPHA_EXT:null;if(r===1029)return 36244;if(r===1030)return 33319;if(r===1031)return 33320;if(r===1033)return 36249;if(r===33776||r===33777||r===33778||r===33779)if(a===3001)if(o=e.get("WEBGL_compressed_texture_s3tc_srgb"),o!==null){if(r===33776)return o.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(r===33777)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(r===33778)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(r===33779)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(o=e.get("WEBGL_compressed_texture_s3tc"),o!==null){if(r===33776)return o.COMPRESSED_RGB_S3TC_DXT1_EXT;if(r===33777)return o.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(r===33778)return o.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(r===33779)return o.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(r===35840||r===35841||r===35842||r===35843)if(o=e.get("WEBGL_compressed_texture_pvrtc"),o!==null){if(r===35840)return o.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(r===35841)return o.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(r===35842)return o.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(r===35843)return o.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(r===36196)return o=e.get("WEBGL_compressed_texture_etc1"),o!==null?o.COMPRESSED_RGB_ETC1_WEBGL:null;if(r===37492||r===37496)if(o=e.get("WEBGL_compressed_texture_etc"),o!==null){if(r===37492)return a===3001?o.COMPRESSED_SRGB8_ETC2:o.COMPRESSED_RGB8_ETC2;if(r===37496)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:o.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(r===37808||r===37809||r===37810||r===37811||r===37812||r===37813||r===37814||r===37815||r===37816||r===37817||r===37818||r===37819||r===37820||r===37821)if(o=e.get("WEBGL_compressed_texture_astc"),o!==null){if(r===37808)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:o.COMPRESSED_RGBA_ASTC_4x4_KHR;if(r===37809)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:o.COMPRESSED_RGBA_ASTC_5x4_KHR;if(r===37810)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:o.COMPRESSED_RGBA_ASTC_5x5_KHR;if(r===37811)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:o.COMPRESSED_RGBA_ASTC_6x5_KHR;if(r===37812)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:o.COMPRESSED_RGBA_ASTC_6x6_KHR;if(r===37813)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:o.COMPRESSED_RGBA_ASTC_8x5_KHR;if(r===37814)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:o.COMPRESSED_RGBA_ASTC_8x6_KHR;if(r===37815)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:o.COMPRESSED_RGBA_ASTC_8x8_KHR;if(r===37816)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:o.COMPRESSED_RGBA_ASTC_10x5_KHR;if(r===37817)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:o.COMPRESSED_RGBA_ASTC_10x6_KHR;if(r===37818)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:o.COMPRESSED_RGBA_ASTC_10x8_KHR;if(r===37819)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:o.COMPRESSED_RGBA_ASTC_10x10_KHR;if(r===37820)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:o.COMPRESSED_RGBA_ASTC_12x10_KHR;if(r===37821)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:o.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(r===36492)if(o=e.get("EXT_texture_compression_bptc"),o!==null){if(r===36492)return a===3001?o.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:o.COMPRESSED_RGBA_BPTC_UNORM_EXT}else return null;if(r===1020)return n?34042:(o=e.get("WEBGL_depth_texture"),o!==null?o.UNSIGNED_INT_24_8_WEBGL:null)}return{convert:i}}class Ea extends _t{constructor(e=[]){super();this.cameras=e}}Ea.prototype.isArrayCamera=!0;class ci extends Oe{constructor(){super();this.type="Group"}}ci.prototype.isGroup=!0;const Tu={type:"move"};class Kr{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new ci,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new ci,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new w,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new w),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new ci,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new w,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new w),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,n){let i=null,r=null,a=null;const o=this._targetRay,c=this._grip,l=this._hand;if(e&&t.session.visibilityState!=="visible-blurred")if(o!==null&&(i=t.getPose(e.targetRaySpace,n),i!==null&&(o.matrix.fromArray(i.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),i.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(i.linearVelocity)):o.hasLinearVelocity=!1,i.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(i.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(Tu))),l&&e.hand){a=!0;for(const _ of e.hand.values()){const M=t.getJointPose(_,n);if(l.joints[_.jointName]===void 0){const f=new ci;f.matrixAutoUpdate=!1,f.visible=!1,l.joints[_.jointName]=f,l.add(f)}const m=l.joints[_.jointName];M!==null&&(m.matrix.fromArray(M.transform.matrix),m.matrix.decompose(m.position,m.rotation,m.scale),m.jointRadius=M.radius),m.visible=M!==null}const h=l.joints["index-finger-tip"],u=l.joints["thumb-tip"],d=h.position.distanceTo(u.position),p=.02,g=.005;l.inputState.pinching&&d>p+g?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!l.inputState.pinching&&d<=p-g&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else c!==null&&e.gripSpace&&(r=t.getPose(e.gripSpace,n),r!==null&&(c.matrix.fromArray(r.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),r.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(r.linearVelocity)):c.hasLinearVelocity=!1,r.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(r.angularVelocity)):c.hasAngularVelocity=!1));return o!==null&&(o.visible=i!==null),c!==null&&(c.visible=r!==null),l!==null&&(l.visible=a!==null),this}}class Qr extends rt{constructor(e,t,n,i,r,a,o,c,l,h){if(h=h!==void 0?h:1026,h!==1026&&h!==1027)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");n===void 0&&h===1026&&(n=1012),n===void 0&&h===1027&&(n=1020);super(null,i,r,a,o,c,h,n,l);this.image={width:e,height:t},this.magFilter=o!==void 0?o:1003,this.minFilter=c!==void 0?c:1003,this.flipY=!1,this.generateMipmaps=!1}}Qr.prototype.isDepthTexture=!0;class Eu extends pn{constructor(e,t){super();const n=this;let i=null,r=1,a=null,o="local-floor";const c=e.extensions.has("WEBGL_multisampled_render_to_texture");let l=null,h=null,u=null,d=null,p=!1,g=null;const _=t.getContextAttributes();let M=null,m=null;const f=[],E=new Map,y=new _t;y.layers.enable(1),y.viewport=new We;const T=new _t;T.layers.enable(2),T.viewport=new We;const R=[y,T],C=new Ea;C.layers.enable(1),C.layers.enable(2);let Z=null,se=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(O){let X=f[O];return X===void 0&&(X=new Kr,f[O]=X),X.getTargetRaySpace()},this.getControllerGrip=function(O){let X=f[O];return X===void 0&&(X=new Kr,f[O]=X),X.getGripSpace()},this.getHand=function(O){let X=f[O];return X===void 0&&(X=new Kr,f[O]=X),X.getHandSpace()};function j(O){const X=E.get(O.inputSource);X&&X.dispatchEvent({type:O.type,data:O.inputSource})}function x(){E.forEach(function(O,X){O.disconnect(X)}),E.clear(),Z=null,se=null,e.setRenderTarget(M),d=null,u=null,h=null,i=null,m=null,ce.stop(),n.isPresenting=!1,n.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(O){r=O,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(O){o=O,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return a},this.getBaseLayer=function(){return u!==null?u:d},this.getBinding=function(){return h},this.getFrame=function(){return g},this.getSession=function(){return i},this.setSession=async function(O){if(i=O,i!==null){if(M=e.getRenderTarget(),i.addEventListener("select",j),i.addEventListener("selectstart",j),i.addEventListener("selectend",j),i.addEventListener("squeeze",j),i.addEventListener("squeezestart",j),i.addEventListener("squeezeend",j),i.addEventListener("end",x),i.addEventListener("inputsourceschange",L),_.xrCompatible!==!0&&await t.makeXRCompatible(),i.renderState.layers===void 0||e.capabilities.isWebGL2===!1){const X={antialias:i.renderState.layers===void 0?_.antialias:!0,alpha:_.alpha,depth:_.depth,stencil:_.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,t,X),i.updateRenderState({baseLayer:d}),m=new St(d.framebufferWidth,d.framebufferHeight,{format:1023,type:1009,encoding:e.outputEncoding})}else{p=_.antialias;let X=null,ne=null,ue=null;_.depth&&(ue=_.stencil?35056:33190,X=_.stencil?1027:1026,ne=_.stencil?1020:1012);const ge={colorFormat:e.outputEncoding===3001?35907:32856,depthFormat:ue,scaleFactor:r};h=new XRWebGLBinding(i,t),u=h.createProjectionLayer(ge),i.updateRenderState({layers:[u]}),p?m=new br(u.textureWidth,u.textureHeight,{format:1023,type:1009,depthTexture:new Qr(u.textureWidth,u.textureHeight,ne,void 0,void 0,void 0,void 0,void 0,void 0,X),stencilBuffer:_.stencil,ignoreDepth:u.ignoreDepthValues,useRenderToTexture:c,encoding:e.outputEncoding}):m=new St(u.textureWidth,u.textureHeight,{format:1023,type:1009,depthTexture:new Qr(u.textureWidth,u.textureHeight,ne,void 0,void 0,void 0,void 0,void 0,void 0,X),stencilBuffer:_.stencil,ignoreDepth:u.ignoreDepthValues,encoding:e.outputEncoding})}m.isXRRenderTarget=!0,this.setFoveation(1),a=await i.requestReferenceSpace(o),ce.setContext(i),ce.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}};function L(O){const X=i.inputSources;for(let ne=0;ne<f.length;ne++)E.set(X[ne],f[ne]);for(let ne=0;ne<O.removed.length;ne++){const ue=O.removed[ne],ge=E.get(ue);ge&&(ge.dispatchEvent({type:"disconnected",data:ue}),E.delete(ue))}for(let ne=0;ne<O.added.length;ne++){const ue=O.added[ne],ge=E.get(ue);ge&&ge.dispatchEvent({type:"connected",data:ue})}}const D=new w,B=new w;function N(O,X,ne){D.setFromMatrixPosition(X.matrixWorld),B.setFromMatrixPosition(ne.matrixWorld);const ue=D.distanceTo(B),ge=X.projectionMatrix.elements,U=ne.projectionMatrix.elements,ze=ge[14]/(ge[10]-1),fe=ge[14]/(ge[10]+1),Se=(ge[9]+1)/ge[5],oe=(ge[9]-1)/ge[5],Re=(ge[8]-1)/ge[0],be=(U[8]+1)/U[0],k=ze*Re,Q=ze*be,$=ue/(-Re+be),le=$*-Re;X.matrixWorld.decompose(O.position,O.quaternion,O.scale),O.translateX(le),O.translateZ($),O.matrixWorld.compose(O.position,O.quaternion,O.scale),O.matrixWorldInverse.copy(O.matrixWorld).invert();const re=ze+$,ye=fe+$,we=k-le,Fe=Q+(ue-le),Xe=Se*fe/ye*re,ke=oe*fe/ye*re;O.projectionMatrix.makePerspective(we,Fe,Xe,ke,re,ye)}function I(O,X){X===null?O.matrixWorld.copy(O.matrix):O.matrixWorld.multiplyMatrices(X.matrixWorld,O.matrix),O.matrixWorldInverse.copy(O.matrixWorld).invert()}this.updateCamera=function(O){if(i===null)return;C.near=T.near=y.near=O.near,C.far=T.far=y.far=O.far,(Z!==C.near||se!==C.far)&&(i.updateRenderState({depthNear:C.near,depthFar:C.far}),Z=C.near,se=C.far);const X=O.parent,ne=C.cameras;I(C,X);for(let ge=0;ge<ne.length;ge++)I(ne[ge],X);C.matrixWorld.decompose(C.position,C.quaternion,C.scale),O.position.copy(C.position),O.quaternion.copy(C.quaternion),O.scale.copy(C.scale),O.matrix.copy(C.matrix),O.matrixWorld.copy(C.matrixWorld);const ue=O.children;for(let ge=0,U=ue.length;ge<U;ge++)ue[ge].updateMatrixWorld(!0);ne.length===2?N(C,y,T):C.projectionMatrix.copy(y.projectionMatrix)},this.getCamera=function(){return C},this.getFoveation=function(){if(u!==null)return u.fixedFoveation;if(d!==null)return d.fixedFoveation},this.setFoveation=function(O){u!==null&&(u.fixedFoveation=O),d!==null&&d.fixedFoveation!==void 0&&(d.fixedFoveation=O)};let H=null;function Y(O,X){if(l=X.getViewerPose(a),g=X,l!==null){const ue=l.views;d!==null&&(e.setRenderTargetFramebuffer(m,d.framebuffer),e.setRenderTarget(m));let ge=!1;ue.length!==C.cameras.length&&(C.cameras.length=0,ge=!0);for(let U=0;U<ue.length;U++){const ze=ue[U];let fe=null;if(d!==null)fe=d.getViewport(ze);else{const oe=h.getViewSubImage(u,ze);fe=oe.viewport,U===0&&(e.setRenderTargetTextures(m,oe.colorTexture,u.ignoreDepthValues?void 0:oe.depthStencilTexture),e.setRenderTarget(m))}const Se=R[U];Se.matrix.fromArray(ze.transform.matrix),Se.projectionMatrix.fromArray(ze.projectionMatrix),Se.viewport.set(fe.x,fe.y,fe.width,fe.height),U===0&&C.matrix.copy(Se.matrix),ge===!0&&C.cameras.push(Se)}}const ne=i.inputSources;for(let ue=0;ue<f.length;ue++){const ge=f[ue],U=ne[ue];ge.update(U,X,a)}H&&H(O,X),g=null}const ce=new ks;ce.setAnimationLoop(Y),this.setAnimationLoop=function(O){H=O},this.dispose=function(){}}}function Au(s){function e(m,f){m.fogColor.value.copy(f.color),f.isFog?(m.fogNear.value=f.near,m.fogFar.value=f.far):f.isFogExp2&&(m.fogDensity.value=f.density)}function t(m,f,E,y,T){f.isMeshBasicMaterial?n(m,f):f.isMeshLambertMaterial?(n(m,f),c(m,f)):f.isMeshToonMaterial?(n(m,f),h(m,f)):f.isMeshPhongMaterial?(n(m,f),l(m,f)):f.isMeshStandardMaterial?(n(m,f),f.isMeshPhysicalMaterial?d(m,f,T):u(m,f)):f.isMeshMatcapMaterial?(n(m,f),p(m,f)):f.isMeshDepthMaterial?(n(m,f),g(m,f)):f.isMeshDistanceMaterial?(n(m,f),_(m,f)):f.isMeshNormalMaterial?(n(m,f),M(m,f)):f.isLineBasicMaterial?(i(m,f),f.isLineDashedMaterial&&r(m,f)):f.isPointsMaterial?a(m,f,E,y):f.isSpriteMaterial?o(m,f):f.isShadowMaterial?(m.color.value.copy(f.color),m.opacity.value=f.opacity):f.isShaderMaterial&&(f.uniformsNeedUpdate=!1)}function n(m,f){m.opacity.value=f.opacity,f.color&&m.diffuse.value.copy(f.color),f.emissive&&m.emissive.value.copy(f.emissive).multiplyScalar(f.emissiveIntensity),f.map&&(m.map.value=f.map),f.alphaMap&&(m.alphaMap.value=f.alphaMap),f.specularMap&&(m.specularMap.value=f.specularMap),f.alphaTest>0&&(m.alphaTest.value=f.alphaTest);const E=s.get(f).envMap;E&&(m.envMap.value=E,m.flipEnvMap.value=E.isCubeTexture&&E.isRenderTargetTexture===!1?-1:1,m.reflectivity.value=f.reflectivity,m.ior.value=f.ior,m.refractionRatio.value=f.refractionRatio),f.lightMap&&(m.lightMap.value=f.lightMap,m.lightMapIntensity.value=f.lightMapIntensity),f.aoMap&&(m.aoMap.value=f.aoMap,m.aoMapIntensity.value=f.aoMapIntensity);let y;f.map?y=f.map:f.specularMap?y=f.specularMap:f.displacementMap?y=f.displacementMap:f.normalMap?y=f.normalMap:f.bumpMap?y=f.bumpMap:f.roughnessMap?y=f.roughnessMap:f.metalnessMap?y=f.metalnessMap:f.alphaMap?y=f.alphaMap:f.emissiveMap?y=f.emissiveMap:f.clearcoatMap?y=f.clearcoatMap:f.clearcoatNormalMap?y=f.clearcoatNormalMap:f.clearcoatRoughnessMap?y=f.clearcoatRoughnessMap:f.specularIntensityMap?y=f.specularIntensityMap:f.specularColorMap?y=f.specularColorMap:f.transmissionMap?y=f.transmissionMap:f.thicknessMap?y=f.thicknessMap:f.sheenColorMap?y=f.sheenColorMap:f.sheenRoughnessMap&&(y=f.sheenRoughnessMap),y!==void 0&&(y.isWebGLRenderTarget&&(y=y.texture),y.matrixAutoUpdate===!0&&y.updateMatrix(),m.uvTransform.value.copy(y.matrix));let T;f.aoMap?T=f.aoMap:f.lightMap&&(T=f.lightMap),T!==void 0&&(T.isWebGLRenderTarget&&(T=T.texture),T.matrixAutoUpdate===!0&&T.updateMatrix(),m.uv2Transform.value.copy(T.matrix))}function i(m,f){m.diffuse.value.copy(f.color),m.opacity.value=f.opacity}function r(m,f){m.dashSize.value=f.dashSize,m.totalSize.value=f.dashSize+f.gapSize,m.scale.value=f.scale}function a(m,f,E,y){m.diffuse.value.copy(f.color),m.opacity.value=f.opacity,m.size.value=f.size*E,m.scale.value=y*.5,f.map&&(m.map.value=f.map),f.alphaMap&&(m.alphaMap.value=f.alphaMap),f.alphaTest>0&&(m.alphaTest.value=f.alphaTest);let T;f.map?T=f.map:f.alphaMap&&(T=f.alphaMap),T!==void 0&&(T.matrixAutoUpdate===!0&&T.updateMatrix(),m.uvTransform.value.copy(T.matrix))}function o(m,f){m.diffuse.value.copy(f.color),m.opacity.value=f.opacity,m.rotation.value=f.rotation,f.map&&(m.map.value=f.map),f.alphaMap&&(m.alphaMap.value=f.alphaMap),f.alphaTest>0&&(m.alphaTest.value=f.alphaTest);let E;f.map?E=f.map:f.alphaMap&&(E=f.alphaMap),E!==void 0&&(E.matrixAutoUpdate===!0&&E.updateMatrix(),m.uvTransform.value.copy(E.matrix))}function c(m,f){f.emissiveMap&&(m.emissiveMap.value=f.emissiveMap)}function l(m,f){m.specular.value.copy(f.specular),m.shininess.value=Math.max(f.shininess,1e-4),f.emissiveMap&&(m.emissiveMap.value=f.emissiveMap),f.bumpMap&&(m.bumpMap.value=f.bumpMap,m.bumpScale.value=f.bumpScale,f.side===1&&(m.bumpScale.value*=-1)),f.normalMap&&(m.normalMap.value=f.normalMap,m.normalScale.value.copy(f.normalScale),f.side===1&&m.normalScale.value.negate()),f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias)}function h(m,f){f.gradientMap&&(m.gradientMap.value=f.gradientMap),f.emissiveMap&&(m.emissiveMap.value=f.emissiveMap),f.bumpMap&&(m.bumpMap.value=f.bumpMap,m.bumpScale.value=f.bumpScale,f.side===1&&(m.bumpScale.value*=-1)),f.normalMap&&(m.normalMap.value=f.normalMap,m.normalScale.value.copy(f.normalScale),f.side===1&&m.normalScale.value.negate()),f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias)}function u(m,f){m.roughness.value=f.roughness,m.metalness.value=f.metalness,f.roughnessMap&&(m.roughnessMap.value=f.roughnessMap),f.metalnessMap&&(m.metalnessMap.value=f.metalnessMap),f.emissiveMap&&(m.emissiveMap.value=f.emissiveMap),f.bumpMap&&(m.bumpMap.value=f.bumpMap,m.bumpScale.value=f.bumpScale,f.side===1&&(m.bumpScale.value*=-1)),f.normalMap&&(m.normalMap.value=f.normalMap,m.normalScale.value.copy(f.normalScale),f.side===1&&m.normalScale.value.negate()),f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias),s.get(f).envMap&&(m.envMapIntensity.value=f.envMapIntensity)}function d(m,f,E){u(m,f),m.ior.value=f.ior,f.sheen>0&&(m.sheenColor.value.copy(f.sheenColor).multiplyScalar(f.sheen),m.sheenRoughness.value=f.sheenRoughness,f.sheenColorMap&&(m.sheenColorMap.value=f.sheenColorMap),f.sheenRoughnessMap&&(m.sheenRoughnessMap.value=f.sheenRoughnessMap)),f.clearcoat>0&&(m.clearcoat.value=f.clearcoat,m.clearcoatRoughness.value=f.clearcoatRoughness,f.clearcoatMap&&(m.clearcoatMap.value=f.clearcoatMap),f.clearcoatRoughnessMap&&(m.clearcoatRoughnessMap.value=f.clearcoatRoughnessMap),f.clearcoatNormalMap&&(m.clearcoatNormalScale.value.copy(f.clearcoatNormalScale),m.clearcoatNormalMap.value=f.clearcoatNormalMap,f.side===1&&m.clearcoatNormalScale.value.negate())),f.transmission>0&&(m.transmission.value=f.transmission,m.transmissionSamplerMap.value=E.texture,m.transmissionSamplerSize.value.set(E.width,E.height),f.transmissionMap&&(m.transmissionMap.value=f.transmissionMap),m.thickness.value=f.thickness,f.thicknessMap&&(m.thicknessMap.value=f.thicknessMap),m.attenuationDistance.value=f.attenuationDistance,m.attenuationColor.value.copy(f.attenuationColor)),m.specularIntensity.value=f.specularIntensity,m.specularColor.value.copy(f.specularColor),f.specularIntensityMap&&(m.specularIntensityMap.value=f.specularIntensityMap),f.specularColorMap&&(m.specularColorMap.value=f.specularColorMap)}function p(m,f){f.matcap&&(m.matcap.value=f.matcap),f.bumpMap&&(m.bumpMap.value=f.bumpMap,m.bumpScale.value=f.bumpScale,f.side===1&&(m.bumpScale.value*=-1)),f.normalMap&&(m.normalMap.value=f.normalMap,m.normalScale.value.copy(f.normalScale),f.side===1&&m.normalScale.value.negate()),f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias)}function g(m,f){f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias)}function _(m,f){f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias),m.referencePosition.value.copy(f.referencePosition),m.nearDistance.value=f.nearDistance,m.farDistance.value=f.farDistance}function M(m,f){f.bumpMap&&(m.bumpMap.value=f.bumpMap,m.bumpScale.value=f.bumpScale,f.side===1&&(m.bumpScale.value*=-1)),f.normalMap&&(m.normalMap.value=f.normalMap,m.normalScale.value.copy(f.normalScale),f.side===1&&m.normalScale.value.negate()),f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias)}return{refreshFogUniforms:e,refreshMaterialUniforms:t}}function Ru(){const s=ii("canvas");return s.style.display="block",s}function Ve(s={}){const e=s.canvas!==void 0?s.canvas:Ru(),t=s.context!==void 0?s.context:null,n=s.alpha!==void 0?s.alpha:!1,i=s.depth!==void 0?s.depth:!0,r=s.stencil!==void 0?s.stencil:!0,a=s.antialias!==void 0?s.antialias:!1,o=s.premultipliedAlpha!==void 0?s.premultipliedAlpha:!0,c=s.preserveDrawingBuffer!==void 0?s.preserveDrawingBuffer:!1,l=s.powerPreference!==void 0?s.powerPreference:"default",h=s.failIfMajorPerformanceCaveat!==void 0?s.failIfMajorPerformanceCaveat:!1;let u=null,d=null;const p=[],g=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=3e3,this.physicallyCorrectLights=!1,this.toneMapping=0,this.toneMappingExposure=1;const _=this;let M=!1,m=0,f=0,E=null,y=-1,T=null;const R=new We,C=new We;let Z=null,se=e.width,j=e.height,x=1,L=null,D=null;const B=new We(0,0,se,j),N=new We(0,0,se,j);let I=!1;const H=new Xi;let Y=!1,ce=!1,O=null;const X=new _e,ne=new w,ue={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function ge(){return E===null?x:1}let U=t;function ze(S,P){for(let z=0;z<S.length;z++){const F=S[z],q=e.getContext(F,P);if(q!==null)return q}return null}try{const S={alpha:!0,depth:i,stencil:r,antialias:a,premultipliedAlpha:o,preserveDrawingBuffer:c,powerPreference:l,failIfMajorPerformanceCaveat:h};if("setAttribute"in e&&e.setAttribute("data-engine",`three.js r${Ht}`),e.addEventListener("webglcontextlost",Ee,!1),e.addEventListener("webglcontextrestored",A,!1),U===null){const P=["webgl2","webgl","experimental-webgl"];if(_.isWebGL1Renderer===!0&&P.shift(),U=ze(P,S),U===null)throw ze(P)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}U.getShaderPrecisionFormat===void 0&&(U.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(S){throw console.error("THREE.WebGLRenderer: "+S.message),S}let fe,Se,oe,Re,be,k,Q,$,le,re,ye,we,Fe,Xe,ke,b,v,V,K,de,G,xe,pe;function ie(){fe=new Zc(U),Se=new Hc(U,fe,s),fe.init(Se),xe=new wu(U,fe,Se),oe=new Su(U,fe,Se),Re=new Jc(U),be=new uu,k=new bu(U,fe,oe,be,Se,xe,Re),Q=new kc(_),$=new Xc(_),le=new ko(U,Se),pe=new Oc(U,fe,le,Se),re=new jc(U,le,Re,pe),ye=new eh(U,re,le,Re),K=new Qc(U,Se,k),b=new Vc(be),we=new hu(_,Q,$,fe,Se,pe,b),Fe=new Au(be),Xe=new fu,ke=new vu(fe,Se),V=new Uc(_,Q,oe,ye,n,o),v=new Ta(_,ye,Se),de=new Gc(U,fe,Re,Se),G=new Yc(U,fe,Re,Se),Re.programs=we.programs,_.capabilities=Se,_.extensions=fe,_.properties=be,_.renderLists=Xe,_.shadowMap=v,_.state=oe,_.info=Re}ie();const te=new Eu(_,U);this.xr=te,this.getContext=function(){return U},this.getContextAttributes=function(){return U.getContextAttributes()},this.forceContextLoss=function(){const S=fe.get("WEBGL_lose_context");S&&S.loseContext()},this.forceContextRestore=function(){const S=fe.get("WEBGL_lose_context");S&&S.restoreContext()},this.getPixelRatio=function(){return x},this.setPixelRatio=function(S){S!==void 0&&(x=S,this.setSize(se,j,!1))},this.getSize=function(S){return S.set(se,j)},this.setSize=function(S,P,z){if(te.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}se=S,j=P,e.width=Math.floor(S*x),e.height=Math.floor(P*x),z!==!1&&(e.style.width=S+"px",e.style.height=P+"px"),this.setViewport(0,0,S,P)},this.getDrawingBufferSize=function(S){return S.set(se*x,j*x).floor()},this.setDrawingBufferSize=function(S,P,z){se=S,j=P,x=z,e.width=Math.floor(S*z),e.height=Math.floor(P*z),this.setViewport(0,0,S,P)},this.getCurrentViewport=function(S){return S.copy(R)},this.getViewport=function(S){return S.copy(B)},this.setViewport=function(S,P,z,F){S.isVector4?B.set(S.x,S.y,S.z,S.w):B.set(S,P,z,F),oe.viewport(R.copy(B).multiplyScalar(x).floor())},this.getScissor=function(S){return S.copy(N)},this.setScissor=function(S,P,z,F){S.isVector4?N.set(S.x,S.y,S.z,S.w):N.set(S,P,z,F),oe.scissor(C.copy(N).multiplyScalar(x).floor())},this.getScissorTest=function(){return I},this.setScissorTest=function(S){oe.setScissorTest(I=S)},this.setOpaqueSort=function(S){L=S},this.setTransparentSort=function(S){D=S},this.getClearColor=function(S){return S.copy(V.getClearColor())},this.setClearColor=function(){V.setClearColor.apply(V,arguments)},this.getClearAlpha=function(){return V.getClearAlpha()},this.setClearAlpha=function(){V.setClearAlpha.apply(V,arguments)},this.clear=function(S,P,z){let F=0;(S===void 0||S)&&(F|=16384),(P===void 0||P)&&(F|=256),(z===void 0||z)&&(F|=1024),U.clear(F)},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",Ee,!1),e.removeEventListener("webglcontextrestored",A,!1),Xe.dispose(),ke.dispose(),be.dispose(),Q.dispose(),$.dispose(),ye.dispose(),pe.dispose(),we.dispose(),te.dispose(),te.removeEventListener("sessionstart",Ie),te.removeEventListener("sessionend",Je),O&&(O.dispose(),O=null),Mt.stop()};function Ee(S){S.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),M=!0}function A(){console.log("THREE.WebGLRenderer: Context Restored."),M=!1;const S=Re.autoReset,P=v.enabled,z=v.autoUpdate,F=v.needsUpdate,q=v.type;ie(),Re.autoReset=S,v.enabled=P,v.autoUpdate=z,v.needsUpdate=F,v.type=q}function he(S){const P=S.target;P.removeEventListener("dispose",he),ae(P)}function ae(S){Me(S),be.remove(S)}function Me(S){const P=be.get(S).programs;P!==void 0&&(P.forEach(function(z){we.releaseProgram(z)}),S.isShaderMaterial&&we.releaseShaderCache(S))}this.renderBufferDirect=function(S,P,z,F,q,Te){P===null&&(P=ue);const Ae=q.isMesh&&q.matrixWorld.determinant()<0,Le=pf(S,P,z,F,q);oe.setMaterial(F,Ae);let Ce=z.index;const He=z.attributes.position;if(Ce===null){if(He===void 0||He.count===0)return}else if(Ce.count===0)return;let Be=1;F.wireframe===!0&&(Ce=re.getWireframeAttribute(z),Be=2),pe.setup(q,F,Le,z,Ce);let Ne,Qe=de;Ce!==null&&(Ne=le.get(Ce),Qe=G,Qe.setIndex(Ne));const Sn=Ce!==null?Ce.count:He.count,ni=z.drawRange.start*Be,Ue=z.drawRange.count*Be,Ut=Te!==null?Te.start*Be:0,it=Te!==null?Te.count*Be:1/0,Ot=Math.max(ni,Ut),gr=Math.min(Sn,ni+Ue,Ut+it)-1,Gt=Math.max(0,gr-Ot+1);if(Gt!==0){if(q.isMesh)F.wireframe===!0?(oe.setLineWidth(F.wireframeLinewidth*ge()),Qe.setMode(1)):Qe.setMode(4);else if(q.isLine){let Jt=F.linewidth;Jt===void 0&&(Jt=1),oe.setLineWidth(Jt*ge()),q.isLineSegments?Qe.setMode(1):q.isLineLoop?Qe.setMode(2):Qe.setMode(3)}else q.isPoints?Qe.setMode(0):q.isSprite&&Qe.setMode(4);if(q.isInstancedMesh)Qe.renderInstances(Ot,Gt,q.count);else if(z.isInstancedBufferGeometry){const Jt=Math.min(z.instanceCount,z._maxInstanceCount);Qe.renderInstances(Ot,Gt,Jt)}else Qe.render(Ot,Gt)}},this.compile=function(S,P){d=ke.get(S),d.init(),g.push(d),S.traverseVisible(function(z){z.isLight&&z.layers.test(P.layers)&&(d.pushLight(z),z.castShadow&&d.pushShadow(z))}),d.setupLights(_.physicallyCorrectLights),S.traverse(function(z){const F=z.material;if(F)if(Array.isArray(F))for(let q=0;q<F.length;q++){const Te=F[q];bs(Te,S,z)}else bs(F,S,z)}),g.pop(),d=null};let W=null;function ve(S){W&&W(S)}function Ie(){Mt.stop()}function Je(){Mt.start()}const Mt=new ks;Mt.setAnimationLoop(ve),typeof window!="undefined"&&Mt.setContext(window),this.setAnimationLoop=function(S){W=S,te.setAnimationLoop(S),S===null?Mt.stop():Mt.start()},te.addEventListener("sessionstart",Ie),te.addEventListener("sessionend",Je),this.render=function(S,P){if(P!==void 0&&P.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(M===!0)return;S.autoUpdate===!0&&S.updateMatrixWorld(),P.parent===null&&P.updateMatrixWorld(),te.enabled===!0&&te.isPresenting===!0&&(te.cameraAutoUpdate===!0&&te.updateCamera(P),P=te.getCamera()),S.isScene===!0&&S.onBeforeRender(_,S,P,E),d=ke.get(S,g.length),d.init(),g.push(d),X.multiplyMatrices(P.projectionMatrix,P.matrixWorldInverse),H.setFromProjectionMatrix(X),ce=this.localClippingEnabled,Y=b.init(this.clippingPlanes,ce,P),u=Xe.get(S,p.length),u.init(),p.push(u),Ke(S,P,0,_.sortObjects),u.finish(),_.sortObjects===!0&&u.sort(L,D),Y===!0&&b.beginShadows();const z=d.state.shadowsArray;if(v.render(z,S,P),Y===!0&&b.endShadows(),this.info.autoReset===!0&&this.info.reset(),V.render(u,S),d.setupLights(_.physicallyCorrectLights),P.isArrayCamera){const F=P.cameras;for(let q=0,Te=F.length;q<Te;q++){const Ae=F[q];zt(u,S,Ae,Ae.viewport)}}else zt(u,S,P);E!==null&&(k.updateMultisampleRenderTarget(E),k.updateRenderTargetMipmap(E)),S.isScene===!0&&S.onAfterRender(_,S,P),oe.buffers.depth.setTest(!0),oe.buffers.depth.setMask(!0),oe.buffers.color.setMask(!0),oe.setPolygonOffset(!1),pe.resetDefaultState(),y=-1,T=null,g.pop(),g.length>0?d=g[g.length-1]:d=null,p.pop(),p.length>0?u=p[p.length-1]:u=null};function Ke(S,P,z,F){if(S.visible===!1)return;if(S.layers.test(P.layers)){if(S.isGroup)z=S.renderOrder;else if(S.isLOD)S.autoUpdate===!0&&S.update(P);else if(S.isLight)d.pushLight(S),S.castShadow&&d.pushShadow(S);else if(S.isSprite){if(!S.frustumCulled||H.intersectsSprite(S)){F&&ne.setFromMatrixPosition(S.matrixWorld).applyMatrix4(X);const Ae=ye.update(S),Le=S.material;Le.visible&&u.push(S,Ae,Le,z,ne.z,null)}}else if((S.isMesh||S.isLine||S.isPoints)&&(S.isSkinnedMesh&&S.skeleton.frame!==Re.render.frame&&(S.skeleton.update(),S.skeleton.frame=Re.render.frame),!S.frustumCulled||H.intersectsObject(S))){F&&ne.setFromMatrixPosition(S.matrixWorld).applyMatrix4(X);const Ae=ye.update(S),Le=S.material;if(Array.isArray(Le)){const Ce=Ae.groups;for(let He=0,Be=Ce.length;He<Be;He++){const Ne=Ce[He],Qe=Le[Ne.materialIndex];Qe&&Qe.visible&&u.push(S,Ae,Qe,z,ne.z,Ne)}}else Le.visible&&u.push(S,Ae,Le,z,ne.z,null)}}const Te=S.children;for(let Ae=0,Le=Te.length;Ae<Le;Ae++)Ke(Te[Ae],P,z,F)}function zt(S,P,z,F){const q=S.opaque,Te=S.transmissive,Ae=S.transparent;d.setupLightsView(z),Te.length>0&&Yt(q,P,z),F&&oe.viewport(R.copy(F)),q.length>0&&mr(q,P,z),Te.length>0&&mr(Te,P,z),Ae.length>0&&mr(Ae,P,z)}function Yt(S,P,z){if(O===null){const Ae=a===!0&&Se.isWebGL2===!0?br:St;O=new Ae(1024,1024,{generateMipmaps:!0,type:xe.convert(1016)!==null?1016:1009,minFilter:1008,magFilter:1003,wrapS:1001,wrapT:1001,useRenderToTexture:fe.has("WEBGL_multisampled_render_to_texture")})}const F=_.getRenderTarget();_.setRenderTarget(O),_.clear();const q=_.toneMapping;_.toneMapping=0,mr(S,P,z),_.toneMapping=q,k.updateMultisampleRenderTarget(O),k.updateRenderTargetMipmap(O),_.setRenderTarget(F)}function mr(S,P,z){const F=P.isScene===!0?P.overrideMaterial:null;for(let q=0,Te=S.length;q<Te;q++){const Ae=S[q],Le=Ae.object,Ce=Ae.geometry,He=F===null?Ae.material:F,Be=Ae.group;Le.layers.test(z.layers)&&ff(Le,P,z,Ce,He,Be)}}function ff(S,P,z,F,q,Te){S.onBeforeRender(_,P,z,F,q,Te),S.modelViewMatrix.multiplyMatrices(z.matrixWorldInverse,S.matrixWorld),S.normalMatrix.getNormalMatrix(S.modelViewMatrix),q.onBeforeRender(_,P,z,F,S,Te),q.transparent===!0&&q.side===2?(q.side=1,q.needsUpdate=!0,_.renderBufferDirect(z,P,F,q,S,Te),q.side=0,q.needsUpdate=!0,_.renderBufferDirect(z,P,F,q,S,Te),q.side=2):_.renderBufferDirect(z,P,F,q,S,Te),S.onAfterRender(_,P,z,F,q,Te)}function bs(S,P,z){P.isScene!==!0&&(P=ue);const F=be.get(S),q=d.state.lights,Te=d.state.shadowsArray,Ae=q.state.version,Le=we.getParameters(S,q.state,Te,P,z),Ce=we.getProgramCacheKey(Le);let He=F.programs;F.environment=S.isMeshStandardMaterial?P.environment:null,F.fog=P.fog,F.envMap=(S.isMeshStandardMaterial?$:Q).get(S.envMap||F.environment),He===void 0&&(S.addEventListener("dispose",he),He=new Map,F.programs=He);let Be=He.get(Ce);if(Be!==void 0){if(F.currentProgram===Be&&F.lightsStateVersion===Ae)return So(S,Le),Be}else Le.uniforms=we.getUniforms(S),S.onBuild(z,Le,_),S.onBeforeCompile(Le,_),Be=we.acquireProgram(Le,Ce),He.set(Ce,Be),F.uniforms=Le.uniforms;const Ne=F.uniforms;(!S.isShaderMaterial&&!S.isRawShaderMaterial||S.clipping===!0)&&(Ne.clippingPlanes=b.uniform),So(S,Le),F.needsLights=gf(S),F.lightsStateVersion=Ae,F.needsLights&&(Ne.ambientLightColor.value=q.state.ambient,Ne.lightProbe.value=q.state.probe,Ne.directionalLights.value=q.state.directional,Ne.directionalLightShadows.value=q.state.directionalShadow,Ne.spotLights.value=q.state.spot,Ne.spotLightShadows.value=q.state.spotShadow,Ne.rectAreaLights.value=q.state.rectArea,Ne.ltc_1.value=q.state.rectAreaLTC1,Ne.ltc_2.value=q.state.rectAreaLTC2,Ne.pointLights.value=q.state.point,Ne.pointLightShadows.value=q.state.pointShadow,Ne.hemisphereLights.value=q.state.hemi,Ne.directionalShadowMap.value=q.state.directionalShadowMap,Ne.directionalShadowMatrix.value=q.state.directionalShadowMatrix,Ne.spotShadowMap.value=q.state.spotShadowMap,Ne.spotShadowMatrix.value=q.state.spotShadowMatrix,Ne.pointShadowMap.value=q.state.pointShadowMap,Ne.pointShadowMatrix.value=q.state.pointShadowMatrix);const Qe=Be.getUniforms(),Sn=on.seqWithValue(Qe.seq,Ne);return F.currentProgram=Be,F.uniformsList=Sn,Be}function So(S,P){const z=be.get(S);z.outputEncoding=P.outputEncoding,z.instancing=P.instancing,z.skinning=P.skinning,z.morphTargets=P.morphTargets,z.morphNormals=P.morphNormals,z.morphTargetsCount=P.morphTargetsCount,z.numClippingPlanes=P.numClippingPlanes,z.numIntersection=P.numClipIntersection,z.vertexAlphas=P.vertexAlphas,z.vertexTangents=P.vertexTangents,z.toneMapping=P.toneMapping}function pf(S,P,z,F,q){P.isScene!==!0&&(P=ue),k.resetTextureUnits();const Te=P.fog,Ae=F.isMeshStandardMaterial?P.environment:null,Le=E===null?_.outputEncoding:E.isXRRenderTarget===!0?E.texture.encoding:3e3,Ce=(F.isMeshStandardMaterial?$:Q).get(F.envMap||Ae),He=F.vertexColors===!0&&!!z.attributes.color&&z.attributes.color.itemSize===4,Be=!!F.normalMap&&!!z.attributes.tangent,Ne=!!z.morphAttributes.position,Qe=!!z.morphAttributes.normal,Sn=z.morphAttributes.position?z.morphAttributes.position.length:0,ni=F.toneMapped?_.toneMapping:0,Ue=be.get(F),Ut=d.state.lights;if(Y===!0&&(ce===!0||S!==T)){const Pt=S===T&&F.id===y;b.setState(F,S,Pt)}let it=!1;F.version===Ue.__version?(Ue.needsLights&&Ue.lightsStateVersion!==Ut.state.version||Ue.outputEncoding!==Le||q.isInstancedMesh&&Ue.instancing===!1||!q.isInstancedMesh&&Ue.instancing===!0||q.isSkinnedMesh&&Ue.skinning===!1||!q.isSkinnedMesh&&Ue.skinning===!0||Ue.envMap!==Ce||F.fog&&Ue.fog!==Te||Ue.numClippingPlanes!==void 0&&(Ue.numClippingPlanes!==b.numPlanes||Ue.numIntersection!==b.numIntersection)||Ue.vertexAlphas!==He||Ue.vertexTangents!==Be||Ue.morphTargets!==Ne||Ue.morphNormals!==Qe||Ue.toneMapping!==ni||Se.isWebGL2===!0&&Ue.morphTargetsCount!==Sn)&&(it=!0):(it=!0,Ue.__version=F.version);let Ot=Ue.currentProgram;it===!0&&(Ot=bs(F,P,q));let gr=!1,Gt=!1,Jt=!1;const ft=Ot.getUniforms(),Ti=Ue.uniforms;if(oe.useProgram(Ot.program)&&(gr=!0,Gt=!0,Jt=!0),F.id!==y&&(y=F.id,Gt=!0),gr||T!==S){if(ft.setValue(U,"projectionMatrix",S.projectionMatrix),Se.logarithmicDepthBuffer&&ft.setValue(U,"logDepthBufFC",2/(Math.log(S.far+1)/Math.LN2)),T!==S&&(T=S,Gt=!0,Jt=!0),F.isShaderMaterial||F.isMeshPhongMaterial||F.isMeshToonMaterial||F.isMeshStandardMaterial||F.envMap){const Pt=ft.map.cameraPosition;Pt!==void 0&&Pt.setValue(U,ne.setFromMatrixPosition(S.matrixWorld))}(F.isMeshPhongMaterial||F.isMeshToonMaterial||F.isMeshLambertMaterial||F.isMeshBasicMaterial||F.isMeshStandardMaterial||F.isShaderMaterial)&&ft.setValue(U,"isOrthographic",S.isOrthographicCamera===!0),(F.isMeshPhongMaterial||F.isMeshToonMaterial||F.isMeshLambertMaterial||F.isMeshBasicMaterial||F.isMeshStandardMaterial||F.isShaderMaterial||F.isShadowMaterial||q.isSkinnedMesh)&&ft.setValue(U,"viewMatrix",S.matrixWorldInverse)}if(q.isSkinnedMesh){ft.setOptional(U,q,"bindMatrix"),ft.setOptional(U,q,"bindMatrixInverse");const Pt=q.skeleton;Pt&&(Se.floatVertexTextures?(Pt.boneTexture===null&&Pt.computeBoneTexture(),ft.setValue(U,"boneTexture",Pt.boneTexture,k),ft.setValue(U,"boneTextureSize",Pt.boneTextureSize)):ft.setOptional(U,Pt,"boneMatrices"))}return!!z&&(z.morphAttributes.position!==void 0||z.morphAttributes.normal!==void 0)&&K.update(q,z,F,Ot),(Gt||Ue.receiveShadow!==q.receiveShadow)&&(Ue.receiveShadow=q.receiveShadow,ft.setValue(U,"receiveShadow",q.receiveShadow)),Gt&&(ft.setValue(U,"toneMappingExposure",_.toneMappingExposure),Ue.needsLights&&mf(Ti,Jt),Te&&F.fog&&Fe.refreshFogUniforms(Ti,Te),Fe.refreshMaterialUniforms(Ti,F,x,j,O),on.upload(U,Ue.uniformsList,Ti,k)),F.isShaderMaterial&&F.uniformsNeedUpdate===!0&&(on.upload(U,Ue.uniformsList,Ti,k),F.uniformsNeedUpdate=!1),F.isSpriteMaterial&&ft.setValue(U,"center",q.center),ft.setValue(U,"modelViewMatrix",q.modelViewMatrix),ft.setValue(U,"normalMatrix",q.normalMatrix),ft.setValue(U,"modelMatrix",q.matrixWorld),Ot}function mf(S,P){S.ambientLightColor.needsUpdate=P,S.lightProbe.needsUpdate=P,S.directionalLights.needsUpdate=P,S.directionalLightShadows.needsUpdate=P,S.pointLights.needsUpdate=P,S.pointLightShadows.needsUpdate=P,S.spotLights.needsUpdate=P,S.spotLightShadows.needsUpdate=P,S.rectAreaLights.needsUpdate=P,S.hemisphereLights.needsUpdate=P}function gf(S){return S.isMeshLambertMaterial||S.isMeshToonMaterial||S.isMeshPhongMaterial||S.isMeshStandardMaterial||S.isShadowMaterial||S.isShaderMaterial&&S.lights===!0}this.getActiveCubeFace=function(){return m},this.getActiveMipmapLevel=function(){return f},this.getRenderTarget=function(){return E},this.setRenderTargetTextures=function(S,P,z){be.get(S.texture).__webglTexture=P,be.get(S.depthTexture).__webglTexture=z;const F=be.get(S);F.__hasExternalTextures=!0,F.__hasExternalTextures&&(F.__autoAllocateDepthBuffer=z===void 0,F.__autoAllocateDepthBuffer||S.useRenderToTexture&&(console.warn("render-to-texture extension was disabled because an external texture was provided"),S.useRenderToTexture=!1,S.useRenderbuffer=!0))},this.setRenderTargetFramebuffer=function(S,P){const z=be.get(S);z.__webglFramebuffer=P,z.__useDefaultFramebuffer=P===void 0},this.setRenderTarget=function(S,P=0,z=0){E=S,m=P,f=z;let F=!0;if(S){const Ce=be.get(S);Ce.__useDefaultFramebuffer!==void 0?(oe.bindFramebuffer(36160,null),F=!1):Ce.__webglFramebuffer===void 0?k.setupRenderTarget(S):Ce.__hasExternalTextures&&k.rebindTextures(S,be.get(S.texture).__webglTexture,be.get(S.depthTexture).__webglTexture)}let q=null,Te=!1,Ae=!1;if(S){const Ce=S.texture;(Ce.isDataTexture3D||Ce.isDataTexture2DArray)&&(Ae=!0);const He=be.get(S).__webglFramebuffer;S.isWebGLCubeRenderTarget?(q=He[P],Te=!0):S.useRenderbuffer?q=be.get(S).__webglMultisampledFramebuffer:q=He,R.copy(S.viewport),C.copy(S.scissor),Z=S.scissorTest}else R.copy(B).multiplyScalar(x).floor(),C.copy(N).multiplyScalar(x).floor(),Z=I;if(oe.bindFramebuffer(36160,q)&&Se.drawBuffers&&F&&oe.drawBuffers(S,q),oe.viewport(R),oe.scissor(C),oe.setScissorTest(Z),Te){const Ce=be.get(S.texture);U.framebufferTexture2D(36160,36064,34069+P,Ce.__webglTexture,z)}else if(Ae){const Ce=be.get(S.texture),He=P||0;U.framebufferTextureLayer(36160,36064,Ce.__webglTexture,z||0,He)}y=-1},this.readRenderTargetPixels=function(S,P,z,F,q,Te,Ae){if(!(S&&S.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Le=be.get(S).__webglFramebuffer;if(S.isWebGLCubeRenderTarget&&Ae!==void 0&&(Le=Le[Ae]),Le){oe.bindFramebuffer(36160,Le);try{const Ce=S.texture,He=Ce.format,Be=Ce.type;if(He!==1023&&xe.convert(He)!==U.getParameter(35739)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const Ne=Be===1016&&(fe.has("EXT_color_buffer_half_float")||Se.isWebGL2&&fe.has("EXT_color_buffer_float"));if(Be!==1009&&xe.convert(Be)!==U.getParameter(35738)&&!(Be===1015&&(Se.isWebGL2||fe.has("OES_texture_float")||fe.has("WEBGL_color_buffer_float")))&&!Ne){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}U.checkFramebufferStatus(36160)===36053?P>=0&&P<=S.width-F&&z>=0&&z<=S.height-q&&U.readPixels(P,z,F,q,xe.convert(He),xe.convert(Be),Te):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.")}finally{const Ce=E!==null?be.get(E).__webglFramebuffer:null;oe.bindFramebuffer(36160,Ce)}}},this.copyFramebufferToTexture=function(S,P,z=0){if(P.isFramebufferTexture!==!0){console.error("THREE.WebGLRenderer: copyFramebufferToTexture() can only be used with FramebufferTexture.");return}const F=Math.pow(2,-z),q=Math.floor(P.image.width*F),Te=Math.floor(P.image.height*F);k.setTexture2D(P,0),U.copyTexSubImage2D(3553,z,0,0,S.x,S.y,q,Te),oe.unbindTexture()},this.copyTextureToTexture=function(S,P,z,F=0){const q=P.image.width,Te=P.image.height,Ae=xe.convert(z.format),Le=xe.convert(z.type);k.setTexture2D(z,0),U.pixelStorei(37440,z.flipY),U.pixelStorei(37441,z.premultiplyAlpha),U.pixelStorei(3317,z.unpackAlignment),P.isDataTexture?U.texSubImage2D(3553,F,S.x,S.y,q,Te,Ae,Le,P.image.data):P.isCompressedTexture?U.compressedTexSubImage2D(3553,F,S.x,S.y,P.mipmaps[0].width,P.mipmaps[0].height,Ae,P.mipmaps[0].data):U.texSubImage2D(3553,F,S.x,S.y,Ae,Le,P.image),F===0&&z.generateMipmaps&&U.generateMipmap(3553),oe.unbindTexture()},this.copyTextureToTexture3D=function(S,P,z,F,q=0){if(_.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const Te=S.max.x-S.min.x+1,Ae=S.max.y-S.min.y+1,Le=S.max.z-S.min.z+1,Ce=xe.convert(F.format),He=xe.convert(F.type);let Be;if(F.isDataTexture3D)k.setTexture3D(F,0),Be=32879;else if(F.isDataTexture2DArray)k.setTexture2DArray(F,0),Be=35866;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}U.pixelStorei(37440,F.flipY),U.pixelStorei(37441,F.premultiplyAlpha),U.pixelStorei(3317,F.unpackAlignment);const Ne=U.getParameter(3314),Qe=U.getParameter(32878),Sn=U.getParameter(3316),ni=U.getParameter(3315),Ue=U.getParameter(32877),Ut=z.isCompressedTexture?z.mipmaps[0]:z.image;U.pixelStorei(3314,Ut.width),U.pixelStorei(32878,Ut.height),U.pixelStorei(3316,S.min.x),U.pixelStorei(3315,S.min.y),U.pixelStorei(32877,S.min.z),z.isDataTexture||z.isDataTexture3D?U.texSubImage3D(Be,q,P.x,P.y,P.z,Te,Ae,Le,Ce,He,Ut.data):z.isCompressedTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),U.compressedTexSubImage3D(Be,q,P.x,P.y,P.z,Te,Ae,Le,Ce,Ut.data)):U.texSubImage3D(Be,q,P.x,P.y,P.z,Te,Ae,Le,Ce,He,Ut),U.pixelStorei(3314,Ne),U.pixelStorei(32878,Qe),U.pixelStorei(3316,Sn),U.pixelStorei(3315,ni),U.pixelStorei(32877,Ue),q===0&&F.generateMipmaps&&U.generateMipmap(Be),oe.unbindTexture()},this.initTexture=function(S){k.setTexture2D(S,0),oe.unbindTexture()},this.resetState=function(){m=0,f=0,E=null,oe.reset(),pe.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}Ve.prototype.isWebGLRenderer=!0;class Cu extends Ve{}Cu.prototype.isWebGL1Renderer=!0;class Aa extends Oe{constructor(){super();this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.autoUpdate=e.autoUpdate,this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),t}}Aa.prototype.isScene=!0;class hi{constructor(e,t){this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=35044,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Dt()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,n){e*=this.stride,n*=t.stride;for(let i=0,r=this.stride;i<r;i++)this.array[e+i]=t.array[n+i];return this}set(e,t=0){return this.array.set(e,t),this}clone(e){e.arrayBuffers===void 0&&(e.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=Dt()),e.arrayBuffers[this.array.buffer._uuid]===void 0&&(e.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const t=new this.array.constructor(e.arrayBuffers[this.array.buffer._uuid]),n=new this.constructor(t,this.stride);return n.setUsage(this.usage),n}onUpload(e){return this.onUploadCallback=e,this}toJSON(e){return e.arrayBuffers===void 0&&(e.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=Dt()),e.arrayBuffers[this.array.buffer._uuid]===void 0&&(e.arrayBuffers[this.array.buffer._uuid]=Array.prototype.slice.call(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}hi.prototype.isInterleavedBuffer=!0;const et=new w;class ui{constructor(e,t,n,i=!1){this.name="",this.data=e,this.itemSize=t,this.offset=n,this.normalized=i===!0}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(e){this.data.needsUpdate=e}applyMatrix4(e){for(let t=0,n=this.data.count;t<n;t++)et.x=this.getX(t),et.y=this.getY(t),et.z=this.getZ(t),et.applyMatrix4(e),this.setXYZ(t,et.x,et.y,et.z);return this}applyNormalMatrix(e){for(let t=0,n=this.count;t<n;t++)et.x=this.getX(t),et.y=this.getY(t),et.z=this.getZ(t),et.applyNormalMatrix(e),this.setXYZ(t,et.x,et.y,et.z);return this}transformDirection(e){for(let t=0,n=this.count;t<n;t++)et.x=this.getX(t),et.y=this.getY(t),et.z=this.getZ(t),et.transformDirection(e),this.setXYZ(t,et.x,et.y,et.z);return this}setX(e,t){return this.data.array[e*this.data.stride+this.offset]=t,this}setY(e,t){return this.data.array[e*this.data.stride+this.offset+1]=t,this}setZ(e,t){return this.data.array[e*this.data.stride+this.offset+2]=t,this}setW(e,t){return this.data.array[e*this.data.stride+this.offset+3]=t,this}getX(e){return this.data.array[e*this.data.stride+this.offset]}getY(e){return this.data.array[e*this.data.stride+this.offset+1]}getZ(e){return this.data.array[e*this.data.stride+this.offset+2]}getW(e){return this.data.array[e*this.data.stride+this.offset+3]}setXY(e,t,n){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=n,this}setXYZ(e,t,n,i){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=n,this.data.array[e+2]=i,this}setXYZW(e,t,n,i,r){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=n,this.data.array[e+2]=i,this.data.array[e+3]=r,this}clone(e){if(e===void 0){console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.");const t=[];for(let n=0;n<this.count;n++){const i=n*this.data.stride+this.offset;for(let r=0;r<this.itemSize;r++)t.push(this.data.array[i+r])}return new nt(new this.array.constructor(t),this.itemSize,this.normalized)}else return e.interleavedBuffers===void 0&&(e.interleavedBuffers={}),e.interleavedBuffers[this.data.uuid]===void 0&&(e.interleavedBuffers[this.data.uuid]=this.data.clone(e)),new ui(e.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(e){if(e===void 0){console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.");const t=[];for(let n=0;n<this.count;n++){const i=n*this.data.stride+this.offset;for(let r=0;r<this.itemSize;r++)t.push(this.data.array[i+r])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}else return e.interleavedBuffers===void 0&&(e.interleavedBuffers={}),e.interleavedBuffers[this.data.uuid]===void 0&&(e.interleavedBuffers[this.data.uuid]=this.data.toJSON(e)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}ui.prototype.isInterleavedBufferAttribute=!0;class Ra extends ct{constructor(e){super();this.type="SpriteMaterial",this.color=new me(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.alphaMap=e.alphaMap,this.rotation=e.rotation,this.sizeAttenuation=e.sizeAttenuation,this}}Ra.prototype.isSpriteMaterial=!0;let Zn;const di=new w,jn=new w,Yn=new w,Jn=new J,fi=new J,Ca=new _e,$i=new w,pi=new w,Ki=new w,La=new J,es=new J,Pa=new J;class Lu extends Oe{constructor(e){super();if(this.type="Sprite",Zn===void 0){Zn=new Ze;const t=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),n=new hi(t,5);Zn.setIndex([0,1,2,0,2,3]),Zn.setAttribute("position",new ui(n,3,0,!1)),Zn.setAttribute("uv",new ui(n,2,3,!1))}this.geometry=Zn,this.material=e!==void 0?e:new Ra,this.center=new J(.5,.5)}raycast(e,t){e.camera===null&&console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'),jn.setFromMatrixScale(this.matrixWorld),Ca.copy(e.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(e.camera.matrixWorldInverse,this.matrixWorld),Yn.setFromMatrixPosition(this.modelViewMatrix),e.camera.isPerspectiveCamera&&this.material.sizeAttenuation===!1&&jn.multiplyScalar(-Yn.z);const n=this.material.rotation;let i,r;n!==0&&(r=Math.cos(n),i=Math.sin(n));const a=this.center;Qi($i.set(-.5,-.5,0),Yn,a,jn,i,r),Qi(pi.set(.5,-.5,0),Yn,a,jn,i,r),Qi(Ki.set(.5,.5,0),Yn,a,jn,i,r),La.set(0,0),es.set(1,0),Pa.set(1,1);let o=e.ray.intersectTriangle($i,pi,Ki,!1,di);if(o===null&&(Qi(pi.set(-.5,.5,0),Yn,a,jn,i,r),es.set(0,1),o=e.ray.intersectTriangle($i,Ki,pi,!1,di),o===null))return;const c=e.ray.origin.distanceTo(di);c<e.near||c>e.far||t.push({distance:c,point:di.clone(),uv:tt.getUV(di,$i,pi,Ki,La,es,Pa,new J),face:null,object:this})}copy(e){return super.copy(e),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}}Lu.prototype.isSprite=!0;function Qi(s,e,t,n,i,r){Jn.subVectors(s,t).addScalar(.5).multiply(n),i!==void 0?(fi.x=r*Jn.x-i*Jn.y,fi.y=i*Jn.x+r*Jn.y):fi.copy(Jn),s.copy(e),s.x+=fi.x,s.y+=fi.y,s.applyMatrix4(Ca)}const Da=new w,Ia=new We,Fa=new We,Pu=new w,Ba=new _e;class Na extends gt{constructor(e,t){super(e,t);this.type="SkinnedMesh",this.bindMode="attached",this.bindMatrix=new _e,this.bindMatrixInverse=new _e}copy(e){return super.copy(e),this.bindMode=e.bindMode,this.bindMatrix.copy(e.bindMatrix),this.bindMatrixInverse.copy(e.bindMatrixInverse),this.skeleton=e.skeleton,this}bind(e,t){this.skeleton=e,t===void 0&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),t=this.matrixWorld),this.bindMatrix.copy(t),this.bindMatrixInverse.copy(t).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const e=new We,t=this.geometry.attributes.skinWeight;for(let n=0,i=t.count;n<i;n++){e.x=t.getX(n),e.y=t.getY(n),e.z=t.getZ(n),e.w=t.getW(n);const r=1/e.manhattanLength();r!==1/0?e.multiplyScalar(r):e.set(1,0,0,0),t.setXYZW(n,e.x,e.y,e.z,e.w)}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.bindMode==="attached"?this.bindMatrixInverse.copy(this.matrixWorld).invert():this.bindMode==="detached"?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)}boneTransform(e,t){const n=this.skeleton,i=this.geometry;Ia.fromBufferAttribute(i.attributes.skinIndex,e),Fa.fromBufferAttribute(i.attributes.skinWeight,e),Da.copy(t).applyMatrix4(this.bindMatrix),t.set(0,0,0);for(let r=0;r<4;r++){const a=Fa.getComponent(r);if(a!==0){const o=Ia.getComponent(r);Ba.multiplyMatrices(n.bones[o].matrixWorld,n.boneInverses[o]),t.addScaledVector(Pu.copy(Da).applyMatrix4(Ba),a)}}return t.applyMatrix4(this.bindMatrixInverse)}}Na.prototype.isSkinnedMesh=!0;class Du extends Oe{constructor(){super();this.type="Bone"}}Du.prototype.isBone=!0;class Iu extends rt{constructor(e=null,t=1,n=1,i,r,a,o,c,l=1003,h=1003,u,d){super(null,a,o,c,l,h,i,r,u,d);this.image={data:e,width:t,height:n},this.magFilter=l,this.minFilter=h,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}Iu.prototype.isDataTexture=!0;class er extends nt{constructor(e,t,n,i=1){typeof n=="number"&&(i=n,n=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument."));super(e,t,n);this.meshPerAttribute=i}copy(e){return super.copy(e),this.meshPerAttribute=e.meshPerAttribute,this}toJSON(){const e=super.toJSON();return e.meshPerAttribute=this.meshPerAttribute,e.isInstancedBufferAttribute=!0,e}}er.prototype.isInstancedBufferAttribute=!0;const za=new _e,Ua=new _e,tr=[],mi=new gt;class Oa extends gt{constructor(e,t,n){super(e,t);this.instanceMatrix=new er(new Float32Array(n*16),16),this.instanceColor=null,this.count=n,this.frustumCulled=!1}copy(e){return super.copy(e),this.instanceMatrix.copy(e.instanceMatrix),e.instanceColor!==null&&(this.instanceColor=e.instanceColor.clone()),this.count=e.count,this}getColorAt(e,t){t.fromArray(this.instanceColor.array,e*3)}getMatrixAt(e,t){t.fromArray(this.instanceMatrix.array,e*16)}raycast(e,t){const n=this.matrixWorld,i=this.count;if(mi.geometry=this.geometry,mi.material=this.material,mi.material!==void 0)for(let r=0;r<i;r++){this.getMatrixAt(r,za),Ua.multiplyMatrices(n,za),mi.matrixWorld=Ua,mi.raycast(e,tr);for(let a=0,o=tr.length;a<o;a++){const c=tr[a];c.instanceId=r,c.object=this,t.push(c)}tr.length=0}}setColorAt(e,t){this.instanceColor===null&&(this.instanceColor=new er(new Float32Array(this.instanceMatrix.count*3),3)),t.toArray(this.instanceColor.array,e*3)}setMatrixAt(e,t){t.toArray(this.instanceMatrix.array,e*16)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:"dispose"})}}Oa.prototype.isInstancedMesh=!0;class gi extends ct{constructor(e){super();this.type="LineBasicMaterial",this.color=new me(16777215),this.linewidth=1,this.linecap="round",this.linejoin="round",this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.linewidth=e.linewidth,this.linecap=e.linecap,this.linejoin=e.linejoin,this}}gi.prototype.isLineBasicMaterial=!0;const Ga=new w,Ha=new w,Va=new _e,ts=new Ln,nr=new Cn;class ns extends Oe{constructor(e=new Ze,t=new gi){super();this.type="Line",this.geometry=e,this.material=t,this.updateMorphTargets()}copy(e){return super.copy(e),this.material=e.material,this.geometry=e.geometry,this}computeLineDistances(){const e=this.geometry;if(e.isBufferGeometry)if(e.index===null){const t=e.attributes.position,n=[0];for(let i=1,r=t.count;i<r;i++)Ga.fromBufferAttribute(t,i-1),Ha.fromBufferAttribute(t,i),n[i]=n[i-1],n[i]+=Ga.distanceTo(Ha);e.setAttribute("lineDistance",new st(n,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else e.isGeometry&&console.error("THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");return this}raycast(e,t){const n=this.geometry,i=this.matrixWorld,r=e.params.Line.threshold,a=n.drawRange;if(n.boundingSphere===null&&n.computeBoundingSphere(),nr.copy(n.boundingSphere),nr.applyMatrix4(i),nr.radius+=r,e.ray.intersectsSphere(nr)===!1)return;Va.copy(i).invert(),ts.copy(e.ray).applyMatrix4(Va);const o=r/((this.scale.x+this.scale.y+this.scale.z)/3),c=o*o,l=new w,h=new w,u=new w,d=new w,p=this.isLineSegments?2:1;if(n.isBufferGeometry){const g=n.index,M=n.attributes.position;if(g!==null){const m=Math.max(0,a.start),f=Math.min(g.count,a.start+a.count);for(let E=m,y=f-1;E<y;E+=p){const T=g.getX(E),R=g.getX(E+1);if(l.fromBufferAttribute(M,T),h.fromBufferAttribute(M,R),ts.distanceSqToSegment(l,h,d,u)>c)continue;d.applyMatrix4(this.matrixWorld);const Z=e.ray.origin.distanceTo(d);Z<e.near||Z>e.far||t.push({distance:Z,point:u.clone().applyMatrix4(this.matrixWorld),index:E,face:null,faceIndex:null,object:this})}}else{const m=Math.max(0,a.start),f=Math.min(M.count,a.start+a.count);for(let E=m,y=f-1;E<y;E+=p){if(l.fromBufferAttribute(M,E),h.fromBufferAttribute(M,E+1),ts.distanceSqToSegment(l,h,d,u)>c)continue;d.applyMatrix4(this.matrixWorld);const R=e.ray.origin.distanceTo(d);R<e.near||R>e.far||t.push({distance:R,point:u.clone().applyMatrix4(this.matrixWorld),index:E,face:null,faceIndex:null,object:this})}}}else n.isGeometry&&console.error("THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}updateMorphTargets(){const e=this.geometry;if(e.isBufferGeometry){const t=e.morphAttributes,n=Object.keys(t);if(n.length>0){const i=t[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,a=i.length;r<a;r++){const o=i[r].name||String(r);this.morphTargetInfluences.push(0),this.morphTargetDictionary[o]=r}}}}else{const t=e.morphTargets;t!==void 0&&t.length>0&&console.error("THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}ns.prototype.isLine=!0;const ka=new w,Wa=new w;class is extends ns{constructor(e,t){super(e,t);this.type="LineSegments"}computeLineDistances(){const e=this.geometry;if(e.isBufferGeometry)if(e.index===null){const t=e.attributes.position,n=[];for(let i=0,r=t.count;i<r;i+=2)ka.fromBufferAttribute(t,i),Wa.fromBufferAttribute(t,i+1),n[i]=i===0?0:n[i-1],n[i+1]=n[i]+ka.distanceTo(Wa);e.setAttribute("lineDistance",new st(n,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else e.isGeometry&&console.error("THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");return this}}is.prototype.isLineSegments=!0;class Fu extends ns{constructor(e,t){super(e,t);this.type="LineLoop"}}Fu.prototype.isLineLoop=!0;class qa extends ct{constructor(e){super();this.type="PointsMaterial",this.color=new me(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.alphaMap=e.alphaMap,this.size=e.size,this.sizeAttenuation=e.sizeAttenuation,this}}qa.prototype.isPointsMaterial=!0;const Xa=new _e,rs=new Ln,ir=new Cn,rr=new w;class Bu extends Oe{constructor(e=new Ze,t=new qa){super();this.type="Points",this.geometry=e,this.material=t,this.updateMorphTargets()}copy(e){return super.copy(e),this.material=e.material,this.geometry=e.geometry,this}raycast(e,t){const n=this.geometry,i=this.matrixWorld,r=e.params.Points.threshold,a=n.drawRange;if(n.boundingSphere===null&&n.computeBoundingSphere(),ir.copy(n.boundingSphere),ir.applyMatrix4(i),ir.radius+=r,e.ray.intersectsSphere(ir)===!1)return;Xa.copy(i).invert(),rs.copy(e.ray).applyMatrix4(Xa);const o=r/((this.scale.x+this.scale.y+this.scale.z)/3),c=o*o;if(n.isBufferGeometry){const l=n.index,u=n.attributes.position;if(l!==null){const d=Math.max(0,a.start),p=Math.min(l.count,a.start+a.count);for(let g=d,_=p;g<_;g++){const M=l.getX(g);rr.fromBufferAttribute(u,M),Za(rr,M,c,i,e,t,this)}}else{const d=Math.max(0,a.start),p=Math.min(u.count,a.start+a.count);for(let g=d,_=p;g<_;g++)rr.fromBufferAttribute(u,g),Za(rr,g,c,i,e,t,this)}}else console.error("THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}updateMorphTargets(){const e=this.geometry;if(e.isBufferGeometry){const t=e.morphAttributes,n=Object.keys(t);if(n.length>0){const i=t[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,a=i.length;r<a;r++){const o=i[r].name||String(r);this.morphTargetInfluences.push(0),this.morphTargetDictionary[o]=r}}}}else{const t=e.morphTargets;t!==void 0&&t.length>0&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}Bu.prototype.isPoints=!0;function Za(s,e,t,n,i,r,a){const o=rs.distanceSqToPoint(s);if(o<t){const c=new w;rs.closestPointToPoint(s,c),c.applyMatrix4(n);const l=i.ray.origin.distanceTo(c);if(l<i.near||l>i.far)return;r.push({distance:l,distanceToRay:Math.sqrt(o),point:c,index:e,face:null,object:a})}}class Nu extends rt{constructor(e,t,n,i,r,a,o,c,l){super(e,t,n,i,r,a,o,c,l);this.minFilter=a!==void 0?a:1006,this.magFilter=r!==void 0?r:1006,this.generateMipmaps=!1;const h=this;function u(){h.needsUpdate=!0,e.requestVideoFrameCallback(u)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(u)}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}Nu.prototype.isVideoTexture=!0;class zu extends rt{constructor(e,t,n){super({width:e,height:t});this.format=n,this.magFilter=1003,this.minFilter=1003,this.generateMipmaps=!1,this.needsUpdate=!0}}zu.prototype.isFramebufferTexture=!0;class Uu extends rt{constructor(e,t,n,i,r,a,o,c,l,h,u,d){super(null,a,o,c,l,h,i,r,u,d);this.image={width:t,height:n},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}Uu.prototype.isCompressedTexture=!0;class Ou extends rt{constructor(e,t,n,i,r,a,o,c,l){super(e,t,n,i,r,a,o,c,l);this.needsUpdate=!0}}Ou.prototype.isCanvasTexture=!0,new w,new w,new w,new tt;class wt{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){const n=this.getUtoTmapping(e);return this.getPoint(n,t)}getPoints(e=5){const t=[];for(let n=0;n<=e;n++)t.push(this.getPoint(n/e));return t}getSpacedPoints(e=5){const t=[];for(let n=0;n<=e;n++)t.push(this.getPointAt(n/e));return t}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const t=[];let n,i=this.getPoint(0),r=0;t.push(0);for(let a=1;a<=e;a++)n=this.getPoint(a/e),r+=n.distanceTo(i),t.push(r),i=n;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const n=this.getLengths();let i=0;const r=n.length;let a;t?a=t:a=e*n[r-1];let o=0,c=r-1,l;for(;o<=c;)if(i=Math.floor(o+(c-o)/2),l=n[i]-a,l<0)o=i+1;else if(l>0)c=i-1;else{c=i;break}if(i=c,n[i]===a)return i/(r-1);const h=n[i],d=n[i+1]-h,p=(a-h)/d;return(i+p)/(r-1)}getTangent(e,t){let i=e-1e-4,r=e+1e-4;i<0&&(i=0),r>1&&(r=1);const a=this.getPoint(i),o=this.getPoint(r),c=t||(a.isVector2?new J:new w);return c.copy(o).sub(a).normalize(),c}getTangentAt(e,t){const n=this.getUtoTmapping(e);return this.getTangent(n,t)}computeFrenetFrames(e,t){const n=new w,i=[],r=[],a=[],o=new w,c=new _e;for(let p=0;p<=e;p++){const g=p/e;i[p]=this.getTangentAt(g,new w)}r[0]=new w,a[0]=new w;let l=Number.MAX_VALUE;const h=Math.abs(i[0].x),u=Math.abs(i[0].y),d=Math.abs(i[0].z);h<=l&&(l=h,n.set(1,0,0)),u<=l&&(l=u,n.set(0,1,0)),d<=l&&n.set(0,0,1),o.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],o),a[0].crossVectors(i[0],r[0]);for(let p=1;p<=e;p++){if(r[p]=r[p-1].clone(),a[p]=a[p-1].clone(),o.crossVectors(i[p-1],i[p]),o.length()>Number.EPSILON){o.normalize();const g=Math.acos(xt(i[p-1].dot(i[p]),-1,1));r[p].applyMatrix4(c.makeRotationAxis(o,g))}a[p].crossVectors(i[p],r[p])}if(t===!0){let p=Math.acos(xt(r[0].dot(r[e]),-1,1));p/=e,i[0].dot(o.crossVectors(r[0],r[e]))>0&&(p=-p);for(let g=1;g<=e;g++)r[g].applyMatrix4(c.makeRotationAxis(i[g],p*g)),a[g].crossVectors(i[g],r[g])}return{tangents:i,normals:r,binormals:a}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class sr extends wt{constructor(e=0,t=0,n=1,i=1,r=0,a=Math.PI*2,o=!1,c=0){super();this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=a,this.aClockwise=o,this.aRotation=c}getPoint(e,t){const n=t||new J,i=Math.PI*2;let r=this.aEndAngle-this.aStartAngle;const a=Math.abs(r)<Number.EPSILON;for(;r<0;)r+=i;for(;r>i;)r-=i;r<Number.EPSILON&&(a?r=0:r=i),this.aClockwise===!0&&!a&&(r===i?r=-i:r=r-i);const o=this.aStartAngle+e*r;let c=this.aX+this.xRadius*Math.cos(o),l=this.aY+this.yRadius*Math.sin(o);if(this.aRotation!==0){const h=Math.cos(this.aRotation),u=Math.sin(this.aRotation),d=c-this.aX,p=l-this.aY;c=d*h-p*u+this.aX,l=d*u+p*h+this.aY}return n.set(c,l)}copy(e){return super.copy(e),this.aX=e.aX,this.aY=e.aY,this.xRadius=e.xRadius,this.yRadius=e.yRadius,this.aStartAngle=e.aStartAngle,this.aEndAngle=e.aEndAngle,this.aClockwise=e.aClockwise,this.aRotation=e.aRotation,this}toJSON(){const e=super.toJSON();return e.aX=this.aX,e.aY=this.aY,e.xRadius=this.xRadius,e.yRadius=this.yRadius,e.aStartAngle=this.aStartAngle,e.aEndAngle=this.aEndAngle,e.aClockwise=this.aClockwise,e.aRotation=this.aRotation,e}fromJSON(e){return super.fromJSON(e),this.aX=e.aX,this.aY=e.aY,this.xRadius=e.xRadius,this.yRadius=e.yRadius,this.aStartAngle=e.aStartAngle,this.aEndAngle=e.aEndAngle,this.aClockwise=e.aClockwise,this.aRotation=e.aRotation,this}}sr.prototype.isEllipseCurve=!0;class ja extends sr{constructor(e,t,n,i,r,a){super(e,t,n,n,i,r,a);this.type="ArcCurve"}}ja.prototype.isArcCurve=!0;function ss(){let s=0,e=0,t=0,n=0;function i(r,a,o,c){s=r,e=o,t=-3*r+3*a-2*o-c,n=2*r-2*a+o+c}return{initCatmullRom:function(r,a,o,c,l){i(a,o,l*(o-r),l*(c-a))},initNonuniformCatmullRom:function(r,a,o,c,l,h,u){let d=(a-r)/l-(o-r)/(l+h)+(o-a)/h,p=(o-a)/h-(c-a)/(h+u)+(c-o)/u;d*=h,p*=h,i(a,o,d,p)},calc:function(r){const a=r*r,o=a*r;return s+e*r+t*a+n*o}}}const ar=new w,as=new ss,os=new ss,ls=new ss;class Ya extends wt{constructor(e=[],t=!1,n="centripetal",i=.5){super();this.type="CatmullRomCurve3",this.points=e,this.closed=t,this.curveType=n,this.tension=i}getPoint(e,t=new w){const n=t,i=this.points,r=i.length,a=(r-(this.closed?0:1))*e;let o=Math.floor(a),c=a-o;this.closed?o+=o>0?0:(Math.floor(Math.abs(o)/r)+1)*r:c===0&&o===r-1&&(o=r-2,c=1);let l,h;this.closed||o>0?l=i[(o-1)%r]:(ar.subVectors(i[0],i[1]).add(i[0]),l=ar);const u=i[o%r],d=i[(o+1)%r];if(this.closed||o+2<r?h=i[(o+2)%r]:(ar.subVectors(i[r-1],i[r-2]).add(i[r-1]),h=ar),this.curveType==="centripetal"||this.curveType==="chordal"){const p=this.curveType==="chordal"?.5:.25;let g=Math.pow(l.distanceToSquared(u),p),_=Math.pow(u.distanceToSquared(d),p),M=Math.pow(d.distanceToSquared(h),p);_<1e-4&&(_=1),g<1e-4&&(g=_),M<1e-4&&(M=_),as.initNonuniformCatmullRom(l.x,u.x,d.x,h.x,g,_,M),os.initNonuniformCatmullRom(l.y,u.y,d.y,h.y,g,_,M),ls.initNonuniformCatmullRom(l.z,u.z,d.z,h.z,g,_,M)}else this.curveType==="catmullrom"&&(as.initCatmullRom(l.x,u.x,d.x,h.x,this.tension),os.initCatmullRom(l.y,u.y,d.y,h.y,this.tension),ls.initCatmullRom(l.z,u.z,d.z,h.z,this.tension));return n.set(as.calc(c),os.calc(c),ls.calc(c)),n}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t<n;t++){const i=e.points[t];this.points.push(i.clone())}return this.closed=e.closed,this.curveType=e.curveType,this.tension=e.tension,this}toJSON(){const e=super.toJSON();e.points=[];for(let t=0,n=this.points.length;t<n;t++){const i=this.points[t];e.points.push(i.toArray())}return e.closed=this.closed,e.curveType=this.curveType,e.tension=this.tension,e}fromJSON(e){super.fromJSON(e),this.points=[];for(let t=0,n=e.points.length;t<n;t++){const i=e.points[t];this.points.push(new w().fromArray(i))}return this.closed=e.closed,this.curveType=e.curveType,this.tension=e.tension,this}}Ya.prototype.isCatmullRomCurve3=!0;function Ja(s,e,t,n,i){const r=(n-e)*.5,a=(i-t)*.5,o=s*s,c=s*o;return(2*t-2*n+r+a)*c+(-3*t+3*n-2*r-a)*o+r*s+t}function Gu(s,e){const t=1-s;return t*t*e}function Hu(s,e){return 2*(1-s)*s*e}function Vu(s,e){return s*s*e}function _i(s,e,t,n){return Gu(s,e)+Hu(s,t)+Vu(s,n)}function ku(s,e){const t=1-s;return t*t*t*e}function Wu(s,e){const t=1-s;return 3*t*t*s*e}function qu(s,e){return 3*(1-s)*s*s*e}function Xu(s,e){return s*s*s*e}function xi(s,e,t,n,i){return ku(s,e)+Wu(s,t)+qu(s,n)+Xu(s,i)}class cs extends wt{constructor(e=new J,t=new J,n=new J,i=new J){super();this.type="CubicBezierCurve",this.v0=e,this.v1=t,this.v2=n,this.v3=i}getPoint(e,t=new J){const n=t,i=this.v0,r=this.v1,a=this.v2,o=this.v3;return n.set(xi(e,i.x,r.x,a.x,o.x),xi(e,i.y,r.y,a.y,o.y)),n}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this.v3.copy(e.v3),this}toJSON(){const e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e.v3=this.v3.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this.v3.fromArray(e.v3),this}}cs.prototype.isCubicBezierCurve=!0;class $a extends wt{constructor(e=new w,t=new w,n=new w,i=new w){super();this.type="CubicBezierCurve3",this.v0=e,this.v1=t,this.v2=n,this.v3=i}getPoint(e,t=new w){const n=t,i=this.v0,r=this.v1,a=this.v2,o=this.v3;return n.set(xi(e,i.x,r.x,a.x,o.x),xi(e,i.y,r.y,a.y,o.y),xi(e,i.z,r.z,a.z,o.z)),n}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this.v3.copy(e.v3),this}toJSON(){const e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e.v3=this.v3.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this.v3.fromArray(e.v3),this}}$a.prototype.isCubicBezierCurve3=!0;class or extends wt{constructor(e=new J,t=new J){super();this.type="LineCurve",this.v1=e,this.v2=t}getPoint(e,t=new J){const n=t;return e===1?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(e).add(this.v1)),n}getPointAt(e,t){return this.getPoint(e,t)}getTangent(e,t){const n=t||new J;return n.copy(this.v2).sub(this.v1).normalize(),n}copy(e){return super.copy(e),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){const e=super.toJSON();return e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}}or.prototype.isLineCurve=!0;class Zu extends wt{constructor(e=new w,t=new w){super();this.type="LineCurve3",this.isLineCurve3=!0,this.v1=e,this.v2=t}getPoint(e,t=new w){const n=t;return e===1?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(e).add(this.v1)),n}getPointAt(e,t){return this.getPoint(e,t)}copy(e){return super.copy(e),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){const e=super.toJSON();return e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}}class hs extends wt{constructor(e=new J,t=new J,n=new J){super();this.type="QuadraticBezierCurve",this.v0=e,this.v1=t,this.v2=n}getPoint(e,t=new J){const n=t,i=this.v0,r=this.v1,a=this.v2;return n.set(_i(e,i.x,r.x,a.x),_i(e,i.y,r.y,a.y)),n}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){const e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}}hs.prototype.isQuadraticBezierCurve=!0;class Ka extends wt{constructor(e=new w,t=new w,n=new w){super();this.type="QuadraticBezierCurve3",this.v0=e,this.v1=t,this.v2=n}getPoint(e,t=new w){const n=t,i=this.v0,r=this.v1,a=this.v2;return n.set(_i(e,i.x,r.x,a.x),_i(e,i.y,r.y,a.y),_i(e,i.z,r.z,a.z)),n}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){const e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}}Ka.prototype.isQuadraticBezierCurve3=!0;class us extends wt{constructor(e=[]){super();this.type="SplineCurve",this.points=e}getPoint(e,t=new J){const n=t,i=this.points,r=(i.length-1)*e,a=Math.floor(r),o=r-a,c=i[a===0?a:a-1],l=i[a],h=i[a>i.length-2?i.length-1:a+1],u=i[a>i.length-3?i.length-1:a+2];return n.set(Ja(o,c.x,l.x,h.x,u.x),Ja(o,c.y,l.y,h.y,u.y)),n}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t<n;t++){const i=e.points[t];this.points.push(i.clone())}return this}toJSON(){const e=super.toJSON();e.points=[];for(let t=0,n=this.points.length;t<n;t++){const i=this.points[t];e.points.push(i.toArray())}return e}fromJSON(e){super.fromJSON(e),this.points=[];for(let t=0,n=e.points.length;t<n;t++){const i=e.points[t];this.points.push(new J().fromArray(i))}return this}}us.prototype.isSplineCurve=!0;var Qa=Object.freeze({__proto__:null,ArcCurve:ja,CatmullRomCurve3:Ya,CubicBezierCurve:cs,CubicBezierCurve3:$a,EllipseCurve:sr,LineCurve:or,LineCurve3:Zu,QuadraticBezierCurve:hs,QuadraticBezierCurve3:Ka,SplineCurve:us});class ju extends wt{constructor(){super();this.type="CurvePath",this.curves=[],this.autoClose=!1}add(e){this.curves.push(e)}closePath(){const e=this.curves[0].getPoint(0),t=this.curves[this.curves.length-1].getPoint(1);e.equals(t)||this.curves.push(new or(t,e))}getPoint(e,t){const n=e*this.getLength(),i=this.getCurveLengths();let r=0;for(;r<i.length;){if(i[r]>=n){const a=i[r]-n,o=this.curves[r],c=o.getLength(),l=c===0?0:1-a/c;return o.getPointAt(l,t)}r++}return null}getLength(){const e=this.getCurveLengths();return e[e.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 e=[];let t=0;for(let n=0,i=this.curves.length;n<i;n++)t+=this.curves[n].getLength(),e.push(t);return this.cacheLengths=e,e}getSpacedPoints(e=40){const t=[];for(let n=0;n<=e;n++)t.push(this.getPoint(n/e));return this.autoClose&&t.push(t[0]),t}getPoints(e=12){const t=[];let n;for(let i=0,r=this.curves;i<r.length;i++){const a=r[i],o=a&&a.isEllipseCurve?e*2:a&&(a.isLineCurve||a.isLineCurve3)?1:a&&a.isSplineCurve?e*a.points.length:e,c=a.getPoints(o);for(let l=0;l<c.length;l++){const h=c[l];n&&n.equals(h)||(t.push(h),n=h)}}return this.autoClose&&t.length>1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,n=e.curves.length;t<n;t++){const i=e.curves[t];this.curves.push(i.clone())}return this.autoClose=e.autoClose,this}toJSON(){const e=super.toJSON();e.autoClose=this.autoClose,e.curves=[];for(let t=0,n=this.curves.length;t<n;t++){const i=this.curves[t];e.curves.push(i.toJSON())}return e}fromJSON(e){super.fromJSON(e),this.autoClose=e.autoClose,this.curves=[];for(let t=0,n=e.curves.length;t<n;t++){const i=e.curves[t];this.curves.push(new Qa[i.type]().fromJSON(i))}return this}}class ds extends ju{constructor(e){super();this.type="Path",this.currentPoint=new J,e&&this.setFromPoints(e)}setFromPoints(e){this.moveTo(e[0].x,e[0].y);for(let t=1,n=e.length;t<n;t++)this.lineTo(e[t].x,e[t].y);return this}moveTo(e,t){return this.currentPoint.set(e,t),this}lineTo(e,t){const n=new or(this.currentPoint.clone(),new J(e,t));return this.curves.push(n),this.currentPoint.set(e,t),this}quadraticCurveTo(e,t,n,i){const r=new hs(this.currentPoint.clone(),new J(e,t),new J(n,i));return this.curves.push(r),this.currentPoint.set(n,i),this}bezierCurveTo(e,t,n,i,r,a){const o=new cs(this.currentPoint.clone(),new J(e,t),new J(n,i),new J(r,a));return this.curves.push(o),this.currentPoint.set(r,a),this}splineThru(e){const t=[this.currentPoint.clone()].concat(e),n=new us(t);return this.curves.push(n),this.currentPoint.copy(e[e.length-1]),this}arc(e,t,n,i,r,a){const o=this.currentPoint.x,c=this.currentPoint.y;return this.absarc(e+o,t+c,n,i,r,a),this}absarc(e,t,n,i,r,a){return this.absellipse(e,t,n,n,i,r,a),this}ellipse(e,t,n,i,r,a,o,c){const l=this.currentPoint.x,h=this.currentPoint.y;return this.absellipse(e+l,t+h,n,i,r,a,o,c),this}absellipse(e,t,n,i,r,a,o,c){const l=new sr(e,t,n,i,r,a,o,c);if(this.curves.length>0){const u=l.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(l);const h=l.getPoint(1);return this.currentPoint.copy(h),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class vi extends ds{constructor(e){super(e);this.uuid=Dt(),this.type="Shape",this.holes=[]}getPointsHoles(e){const t=[];for(let n=0,i=this.holes.length;n<i;n++)t[n]=this.holes[n].getPoints(e);return t}extractPoints(e){return{shape:this.getPoints(e),holes:this.getPointsHoles(e)}}copy(e){super.copy(e),this.holes=[];for(let t=0,n=e.holes.length;t<n;t++){const i=e.holes[t];this.holes.push(i.clone())}return this}toJSON(){const e=super.toJSON();e.uuid=this.uuid,e.holes=[];for(let t=0,n=this.holes.length;t<n;t++){const i=this.holes[t];e.holes.push(i.toJSON())}return e}fromJSON(e){super.fromJSON(e),this.uuid=e.uuid,this.holes=[];for(let t=0,n=e.holes.length;t<n;t++){const i=e.holes[t];this.holes.push(new ds().fromJSON(i))}return this}}const Yu={triangulate:function(s,e,t=2){const n=e&&e.length,i=n?e[0]*t:s.length;let r=eo(s,0,i,t,!0);const a=[];if(!r||r.next===r.prev)return a;let o,c,l,h,u,d,p;if(n&&(r=ed(s,e,r,t)),s.length>80*t){o=l=s[0],c=h=s[1];for(let g=t;g<i;g+=t)u=s[g],d=s[g+1],u<o&&(o=u),d<c&&(c=d),u>l&&(l=u),d>h&&(h=d);p=Math.max(l-o,h-c),p=p!==0?1/p:0}return yi(r,a,t,o,c,p),a}};function eo(s,e,t,n,i){let r,a;if(i===ud(s,e,t,n)>0)for(r=e;r<t;r+=n)a=io(r,s[r],s[r+1],a);else for(r=t-n;r>=e;r-=n)a=io(r,s[r],s[r+1],a);return a&&lr(a,a.next)&&(Si(a),a=a.next),a}function ln(s,e){if(!s)return s;e||(e=s);let t=s,n;do if(n=!1,!t.steiner&&(lr(t,t.next)||Ye(t.prev,t,t.next)===0)){if(Si(t),t=e=t.prev,t===t.next)break;n=!0}else t=t.next;while(n||t!==e);return e}function yi(s,e,t,n,i,r,a){if(!s)return;!a&&r&&sd(s,n,i,r);let o=s,c,l;for(;s.prev!==s.next;){if(c=s.prev,l=s.next,r?$u(s,n,i,r):Ju(s)){e.push(c.i/t),e.push(s.i/t),e.push(l.i/t),Si(s),s=l.next,o=l.next;continue}if(s=l,s===o){a?a===1?(s=Ku(ln(s),e,t),yi(s,e,t,n,i,r,2)):a===2&&Qu(s,e,t,n,i,r):yi(ln(s),e,t,n,i,r,1);break}}}function Ju(s){const e=s.prev,t=s,n=s.next;if(Ye(e,t,n)>=0)return!1;let i=s.next.next;for(;i!==s.prev;){if($n(e.x,e.y,t.x,t.y,n.x,n.y,i.x,i.y)&&Ye(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function $u(s,e,t,n){const i=s.prev,r=s,a=s.next;if(Ye(i,r,a)>=0)return!1;const o=i.x<r.x?i.x<a.x?i.x:a.x:r.x<a.x?r.x:a.x,c=i.y<r.y?i.y<a.y?i.y:a.y:r.y<a.y?r.y:a.y,l=i.x>r.x?i.x>a.x?i.x:a.x:r.x>a.x?r.x:a.x,h=i.y>r.y?i.y>a.y?i.y:a.y:r.y>a.y?r.y:a.y,u=fs(o,c,e,t,n),d=fs(l,h,e,t,n);let p=s.prevZ,g=s.nextZ;for(;p&&p.z>=u&&g&&g.z<=d;){if(p!==s.prev&&p!==s.next&&$n(i.x,i.y,r.x,r.y,a.x,a.y,p.x,p.y)&&Ye(p.prev,p,p.next)>=0||(p=p.prevZ,g!==s.prev&&g!==s.next&&$n(i.x,i.y,r.x,r.y,a.x,a.y,g.x,g.y)&&Ye(g.prev,g,g.next)>=0))return!1;g=g.nextZ}for(;p&&p.z>=u;){if(p!==s.prev&&p!==s.next&&$n(i.x,i.y,r.x,r.y,a.x,a.y,p.x,p.y)&&Ye(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;g&&g.z<=d;){if(g!==s.prev&&g!==s.next&&$n(i.x,i.y,r.x,r.y,a.x,a.y,g.x,g.y)&&Ye(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function Ku(s,e,t){let n=s;do{const i=n.prev,r=n.next.next;!lr(i,r)&&to(i,n,n.next,r)&&Mi(i,r)&&Mi(r,i)&&(e.push(i.i/t),e.push(n.i/t),e.push(r.i/t),Si(n),Si(n.next),n=s=r),n=n.next}while(n!==s);return ln(n)}function Qu(s,e,t,n,i,r){let a=s;do{let o=a.next.next;for(;o!==a.prev;){if(a.i!==o.i&&ld(a,o)){let c=no(a,o);a=ln(a,a.next),c=ln(c,c.next),yi(a,e,t,n,i,r),yi(c,e,t,n,i,r);return}o=o.next}a=a.next}while(a!==s)}function ed(s,e,t,n){const i=[];let r,a,o,c,l;for(r=0,a=e.length;r<a;r++)o=e[r]*n,c=r<a-1?e[r+1]*n:s.length,l=eo(s,o,c,n,!1),l===l.next&&(l.steiner=!0),i.push(od(l));for(i.sort(td),r=0;r<i.length;r++)nd(i[r],t),t=ln(t,t.next);return t}function td(s,e){return s.x-e.x}function nd(s,e){if(e=id(s,e),e){const t=no(e,s);ln(e,e.next),ln(t,t.next)}}function id(s,e){let t=e;const n=s.x,i=s.y;let r=-1/0,a;do{if(i<=t.y&&i>=t.next.y&&t.next.y!==t.y){const d=t.x+(i-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(d<=n&&d>r){if(r=d,d===n){if(i===t.y)return t;if(i===t.next.y)return t.next}a=t.x<t.next.x?t:t.next}}t=t.next}while(t!==e);if(!a)return null;if(n===r)return a;const o=a,c=a.x,l=a.y;let h=1/0,u;t=a;do n>=t.x&&t.x>=c&&n!==t.x&&$n(i<l?n:r,i,c,l,i<l?r:n,i,t.x,t.y)&&(u=Math.abs(i-t.y)/(n-t.x),Mi(t,s)&&(u<h||u===h&&(t.x>a.x||t.x===a.x&&rd(a,t)))&&(a=t,h=u)),t=t.next;while(t!==o);return a}function rd(s,e){return Ye(s.prev,s,e.prev)<0&&Ye(e.next,s,s.next)<0}function sd(s,e,t,n){let i=s;do i.z===null&&(i.z=fs(i.x,i.y,e,t,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==s);i.prevZ.nextZ=null,i.prevZ=null,ad(i)}function ad(s){let e,t,n,i,r,a,o,c,l=1;do{for(t=s,s=null,r=null,a=0;t;){for(a++,n=t,o=0,e=0;e<l&&(o++,n=n.nextZ,!!n);e++);for(c=l;o>0||c>0&&n;)o!==0&&(c===0||!n||t.z<=n.z)?(i=t,t=t.nextZ,o--):(i=n,n=n.nextZ,c--),r?r.nextZ=i:s=i,i.prevZ=r,r=i;t=n}r.nextZ=null,l*=2}while(a>1);return s}function fs(s,e,t,n,i){return s=32767*(s-t)*i,e=32767*(e-n)*i,s=(s|s<<8)&16711935,s=(s|s<<4)&252645135,s=(s|s<<2)&858993459,s=(s|s<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,s|e<<1}function od(s){let e=s,t=s;do(e.x<t.x||e.x===t.x&&e.y<t.y)&&(t=e),e=e.next;while(e!==s);return t}function $n(s,e,t,n,i,r,a,o){return(i-a)*(e-o)-(s-a)*(r-o)>=0&&(s-a)*(n-o)-(t-a)*(e-o)>=0&&(t-a)*(r-o)-(i-a)*(n-o)>=0}function ld(s,e){return s.next.i!==e.i&&s.prev.i!==e.i&&!cd(s,e)&&(Mi(s,e)&&Mi(e,s)&&hd(s,e)&&(Ye(s.prev,s,e.prev)||Ye(s,e.prev,e))||lr(s,e)&&Ye(s.prev,s,s.next)>0&&Ye(e.prev,e,e.next)>0)}function Ye(s,e,t){return(e.y-s.y)*(t.x-e.x)-(e.x-s.x)*(t.y-e.y)}function lr(s,e){return s.x===e.x&&s.y===e.y}function to(s,e,t,n){const i=hr(Ye(s,e,t)),r=hr(Ye(s,e,n)),a=hr(Ye(t,n,s)),o=hr(Ye(t,n,e));return!!(i!==r&&a!==o||i===0&&cr(s,t,e)||r===0&&cr(s,n,e)||a===0&&cr(t,s,n)||o===0&&cr(t,e,n))}function cr(s,e,t){return e.x<=Math.max(s.x,t.x)&&e.x>=Math.min(s.x,t.x)&&e.y<=Math.max(s.y,t.y)&&e.y>=Math.min(s.y,t.y)}function hr(s){return s>0?1:s<0?-1:0}function cd(s,e){let t=s;do{if(t.i!==s.i&&t.next.i!==s.i&&t.i!==e.i&&t.next.i!==e.i&&to(t,t.next,s,e))return!0;t=t.next}while(t!==s);return!1}function Mi(s,e){return Ye(s.prev,s,s.next)<0?Ye(s,e,s.next)>=0&&Ye(s,s.prev,e)>=0:Ye(s,e,s.prev)<0||Ye(s,s.next,e)<0}function hd(s,e){let t=s,n=!1;const i=(s.x+e.x)/2,r=(s.y+e.y)/2;do t.y>r!=t.next.y>r&&t.next.y!==t.y&&i<(t.next.x-t.x)*(r-t.y)/(t.next.y-t.y)+t.x&&(n=!n),t=t.next;while(t!==s);return n}function no(s,e){const t=new ps(s.i,s.x,s.y),n=new ps(e.i,e.x,e.y),i=s.next,r=e.prev;return s.next=e,e.prev=s,t.next=i,i.prev=t,n.next=t,t.prev=n,r.next=n,n.prev=r,n}function io(s,e,t,n){const i=new ps(s,e,t);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function Si(s){s.next.prev=s.prev,s.prev.next=s.next,s.prevZ&&(s.prevZ.nextZ=s.nextZ),s.nextZ&&(s.nextZ.prevZ=s.prevZ)}function ps(s,e,t){this.i=s,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function ud(s,e,t,n){let i=0;for(let r=e,a=t-n;r<t;r+=n)i+=(s[a]-s[r])*(s[r+1]+s[a+1]),a=r;return i}class cn{static area(e){const t=e.length;let n=0;for(let i=t-1,r=0;r<t;i=r++)n+=e[i].x*e[r].y-e[r].x*e[i].y;return n*.5}static isClockWise(e){return cn.area(e)<0}static triangulateShape(e,t){const n=[],i=[],r=[];ro(e),so(n,e);let a=e.length;t.forEach(ro);for(let c=0;c<t.length;c++)i.push(a),a+=t[c].length,so(n,t[c]);const o=Yu.triangulate(n,i);for(let c=0;c<o.length;c+=3)r.push(o.slice(c,c+3));return r}}function ro(s){const e=s.length;e>2&&s[e-1].equals(s[0])&&s.pop()}function so(s,e){for(let t=0;t<e.length;t++)s.push(e[t].x),s.push(e[t].y)}class Kn extends Ze{constructor(e=new vi([new J(.5,.5),new J(-.5,.5),new J(-.5,-.5),new J(.5,-.5)]),t={}){super();this.type="ExtrudeGeometry",this.parameters={shapes:e,options:t},e=Array.isArray(e)?e:[e];const n=this,i=[],r=[];for(let o=0,c=e.length;o<c;o++){const l=e[o];a(l)}this.setAttribute("position",new st(i,3)),this.setAttribute("uv",new st(r,2)),this.computeVertexNormals();function a(o){const c=[],l=t.curveSegments!==void 0?t.curveSegments:12,h=t.steps!==void 0?t.steps:1;let u=t.depth!==void 0?t.depth:1,d=t.bevelEnabled!==void 0?t.bevelEnabled:!0,p=t.bevelThickness!==void 0?t.bevelThickness:.2,g=t.bevelSize!==void 0?t.bevelSize:p-.1,_=t.bevelOffset!==void 0?t.bevelOffset:0,M=t.bevelSegments!==void 0?t.bevelSegments:3;const m=t.extrudePath,f=t.UVGenerator!==void 0?t.UVGenerator:dd;t.amount!==void 0&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),u=t.amount);let E,y=!1,T,R,C,Z;m&&(E=m.getSpacedPoints(h),y=!0,d=!1,T=m.computeFrenetFrames(h,!1),R=new w,C=new w,Z=new w),d||(M=0,p=0,g=0,_=0);const se=o.extractPoints(l);let j=se.shape;const x=se.holes;if(!cn.isClockWise(j)){j=j.reverse();for(let k=0,Q=x.length;k<Q;k++){const $=x[k];cn.isClockWise($)&&(x[k]=$.reverse())}}const D=cn.triangulateShape(j,x),B=j;for(let k=0,Q=x.length;k<Q;k++){const $=x[k];j=j.concat($)}function N(k,Q,$){return Q||console.error("THREE.ExtrudeGeometry: vec does not exist"),Q.clone().multiplyScalar($).add(k)}const I=j.length,H=D.length;function Y(k,Q,$){let le,re,ye;const we=k.x-Q.x,Fe=k.y-Q.y,Xe=$.x-k.x,ke=$.y-k.y,b=we*we+Fe*Fe,v=we*ke-Fe*Xe;if(Math.abs(v)>Number.EPSILON){const V=Math.sqrt(b),K=Math.sqrt(Xe*Xe+ke*ke),de=Q.x-Fe/V,G=Q.y+we/V,xe=$.x-ke/K,pe=$.y+Xe/K,ie=((xe-de)*ke-(pe-G)*Xe)/(we*ke-Fe*Xe);le=de+we*ie-k.x,re=G+Fe*ie-k.y;const te=le*le+re*re;if(te<=2)return new J(le,re);ye=Math.sqrt(te/2)}else{let V=!1;we>Number.EPSILON?Xe>Number.EPSILON&&(V=!0):we<-Number.EPSILON?Xe<-Number.EPSILON&&(V=!0):Math.sign(Fe)===Math.sign(ke)&&(V=!0),V?(le=-Fe,re=we,ye=Math.sqrt(b)):(le=we,re=Fe,ye=Math.sqrt(b/2))}return new J(le/ye,re/ye)}const ce=[];for(let k=0,Q=B.length,$=Q-1,le=k+1;k<Q;k++,$++,le++)$===Q&&($=0),le===Q&&(le=0),ce[k]=Y(B[k],B[$],B[le]);const O=[];let X,ne=ce.concat();for(let k=0,Q=x.length;k<Q;k++){const $=x[k];X=[];for(let le=0,re=$.length,ye=re-1,we=le+1;le<re;le++,ye++,we++)ye===re&&(ye=0),we===re&&(we=0),X[le]=Y($[le],$[ye],$[we]);O.push(X),ne=ne.concat(X)}for(let k=0;k<M;k++){const Q=k/M,$=p*Math.cos(Q*Math.PI/2),le=g*Math.sin(Q*Math.PI/2)+_;for(let re=0,ye=B.length;re<ye;re++){const we=N(B[re],ce[re],le);fe(we.x,we.y,-$)}for(let re=0,ye=x.length;re<ye;re++){const we=x[re];X=O[re];for(let Fe=0,Xe=we.length;Fe<Xe;Fe++){const ke=N(we[Fe],X[Fe],le);fe(ke.x,ke.y,-$)}}}const ue=g+_;for(let k=0;k<I;k++){const Q=d?N(j[k],ne[k],ue):j[k];y?(C.copy(T.normals[0]).multiplyScalar(Q.x),R.copy(T.binormals[0]).multiplyScalar(Q.y),Z.copy(E[0]).add(C).add(R),fe(Z.x,Z.y,Z.z)):fe(Q.x,Q.y,0)}for(let k=1;k<=h;k++)for(let Q=0;Q<I;Q++){const $=d?N(j[Q],ne[Q],ue):j[Q];y?(C.copy(T.normals[k]).multiplyScalar($.x),R.copy(T.binormals[k]).multiplyScalar($.y),Z.copy(E[k]).add(C).add(R),fe(Z.x,Z.y,Z.z)):fe($.x,$.y,u/h*k)}for(let k=M-1;k>=0;k--){const Q=k/M,$=p*Math.cos(Q*Math.PI/2),le=g*Math.sin(Q*Math.PI/2)+_;for(let re=0,ye=B.length;re<ye;re++){const we=N(B[re],ce[re],le);fe(we.x,we.y,u+$)}for(let re=0,ye=x.length;re<ye;re++){const we=x[re];X=O[re];for(let Fe=0,Xe=we.length;Fe<Xe;Fe++){const ke=N(we[Fe],X[Fe],le);y?fe(ke.x,ke.y+E[h-1].y,E[h-1].x+$):fe(ke.x,ke.y,u+$)}}}ge(),U();function ge(){const k=i.length/3;if(d){let Q=0,$=I*Q;for(let le=0;le<H;le++){const re=D[le];Se(re[2]+$,re[1]+$,re[0]+$)}Q=h+M*2,$=I*Q;for(let le=0;le<H;le++){const re=D[le];Se(re[0]+$,re[1]+$,re[2]+$)}}else{for(let Q=0;Q<H;Q++){const $=D[Q];Se($[2],$[1],$[0])}for(let Q=0;Q<H;Q++){const $=D[Q];Se($[0]+I*h,$[1]+I*h,$[2]+I*h)}}n.addGroup(k,i.length/3-k,0)}function U(){const k=i.length/3;let Q=0;ze(B,Q),Q+=B.length;for(let $=0,le=x.length;$<le;$++){const re=x[$];ze(re,Q),Q+=re.length}n.addGroup(k,i.length/3-k,1)}function ze(k,Q){let $=k.length;for(;--$>=0;){const le=$;let re=$-1;re<0&&(re=k.length-1);for(let ye=0,we=h+M*2;ye<we;ye++){const Fe=I*ye,Xe=I*(ye+1),ke=Q+le+Fe,b=Q+re+Fe,v=Q+re+Xe,V=Q+le+Xe;oe(ke,b,v,V)}}}function fe(k,Q,$){c.push(k),c.push(Q),c.push($)}function Se(k,Q,$){Re(k),Re(Q),Re($);const le=i.length/3,re=f.generateTopUV(n,i,le-3,le-2,le-1);be(re[0]),be(re[1]),be(re[2])}function oe(k,Q,$,le){Re(k),Re(Q),Re(le),Re(Q),Re($),Re(le);const re=i.length/3,ye=f.generateSideWallUV(n,i,re-6,re-3,re-2,re-1);be(ye[0]),be(ye[1]),be(ye[3]),be(ye[1]),be(ye[2]),be(ye[3])}function Re(k){i.push(c[k*3+0]),i.push(c[k*3+1]),i.push(c[k*3+2])}function be(k){r.push(k.x),r.push(k.y)}}}toJSON(){const e=super.toJSON(),t=this.parameters.shapes,n=this.parameters.options;return fd(t,n,e)}static fromJSON(e,t){const n=[];for(let r=0,a=e.shapes.length;r<a;r++){const o=t[e.shapes[r]];n.push(o)}const i=e.options.extrudePath;return i!==void 0&&(e.options.extrudePath=new Qa[i.type]().fromJSON(i)),new Kn(n,e.options)}}const dd={generateTopUV:function(s,e,t,n,i){const r=e[t*3],a=e[t*3+1],o=e[n*3],c=e[n*3+1],l=e[i*3],h=e[i*3+1];return[new J(r,a),new J(o,c),new J(l,h)]},generateSideWallUV:function(s,e,t,n,i,r){const a=e[t*3],o=e[t*3+1],c=e[t*3+2],l=e[n*3],h=e[n*3+1],u=e[n*3+2],d=e[i*3],p=e[i*3+1],g=e[i*3+2],_=e[r*3],M=e[r*3+1],m=e[r*3+2];return Math.abs(o-h)<Math.abs(a-l)?[new J(a,1-c),new J(l,1-u),new J(d,1-g),new J(_,1-m)]:[new J(o,1-c),new J(h,1-u),new J(p,1-g),new J(M,1-m)]}};function fd(s,e,t){if(t.shapes=[],Array.isArray(s))for(let n=0,i=s.length;n<i;n++){const r=s[n];t.shapes.push(r.uuid)}else t.shapes.push(s.uuid);return e.extrudePath!==void 0&&(t.options.extrudePath=e.extrudePath.toJSON()),t}class ms extends Ze{constructor(e=new vi([new J(0,.5),new J(-.5,-.5),new J(.5,-.5)]),t=12){super();this.type="ShapeGeometry",this.parameters={shapes:e,curveSegments:t};const n=[],i=[],r=[],a=[];let o=0,c=0;if(Array.isArray(e)===!1)l(e);else for(let h=0;h<e.length;h++)l(e[h]),this.addGroup(o,c,h),o+=c,c=0;this.setIndex(n),this.setAttribute("position",new st(i,3)),this.setAttribute("normal",new st(r,3)),this.setAttribute("uv",new st(a,2));function l(h){const u=i.length/3,d=h.extractPoints(t);let p=d.shape;const g=d.holes;cn.isClockWise(p)===!1&&(p=p.reverse());for(let M=0,m=g.length;M<m;M++){const f=g[M];cn.isClockWise(f)===!0&&(g[M]=f.reverse())}const _=cn.triangulateShape(p,g);for(let M=0,m=g.length;M<m;M++){const f=g[M];p=p.concat(f)}for(let M=0,m=p.length;M<m;M++){const f=p[M];i.push(f.x,f.y,0),r.push(0,0,1),a.push(f.x,f.y)}for(let M=0,m=_.length;M<m;M++){const f=_[M],E=f[0]+u,y=f[1]+u,T=f[2]+u;n.push(E,y,T),c+=3}}}toJSON(){const e=super.toJSON(),t=this.parameters.shapes;return pd(t,e)}static fromJSON(e,t){const n=[];for(let i=0,r=e.shapes.length;i<r;i++){const a=t[e.shapes[i]];n.push(a)}return new ms(n,e.curveSegments)}}function pd(s,e){if(e.shapes=[],Array.isArray(s))for(let t=0,n=s.length;t<n;t++){const i=s[t];e.shapes.push(i.uuid)}else e.shapes.push(s.uuid);return e}class md extends ct{constructor(e){super();this.type="ShadowMaterial",this.color=new me(0),this.transparent=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this}}md.prototype.isShadowMaterial=!0;class ao extends ct{constructor(e){super();this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new me(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 me(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new J(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.defines={STANDARD:""},this.color.copy(e.color),this.roughness=e.roughness,this.metalness=e.metalness,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.roughnessMap=e.roughnessMap,this.metalnessMap=e.metalnessMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapIntensity=e.envMapIntensity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this}}ao.prototype.isMeshStandardMaterial=!0;class gd extends ao{constructor(e){super();this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new J(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,"reflectivity",{get:function(){return xt(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(t){this.ior=(1+.4*t)/(1-.4*t)}}),this.sheenColor=new me(0),this.sheenColorMap=null,this.sheenRoughness=1,this.sheenRoughnessMap=null,this.transmissionMap=null,this.thickness=0,this.thicknessMap=null,this.attenuationDistance=0,this.attenuationColor=new me(1,1,1),this.specularIntensity=1,this.specularIntensityMap=null,this.specularColor=new me(1,1,1),this.specularColorMap=null,this._sheen=0,this._clearcoat=0,this._transmission=0,this.setValues(e)}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}gd.prototype.isMeshPhysicalMaterial=!0;class _d extends ct{constructor(e){super();this.type="MeshPhongMaterial",this.color=new me(16777215),this.specular=new me(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new me(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new J(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this}}_d.prototype.isMeshPhongMaterial=!0;class xd extends ct{constructor(e){super();this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new me(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new me(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new J(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.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this}}xd.prototype.isMeshToonMaterial=!0;class vd extends ct{constructor(e){super();this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new J(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}vd.prototype.isMeshNormalMaterial=!0;class yd extends ct{constructor(e){super();this.type="MeshLambertMaterial",this.color=new me(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new me(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this}}yd.prototype.isMeshLambertMaterial=!0;class Md extends ct{constructor(e){super();this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new me(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new J(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this}}Md.prototype.isMeshMatcapMaterial=!0;class Sd extends gi{constructor(e){super();this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}Sd.prototype.isLineDashedMaterial=!0;const je={arraySlice:function(s,e,t){return je.isTypedArray(s)?new s.constructor(s.subarray(e,t!==void 0?t:s.length)):s.slice(e,t)},convertArray:function(s,e,t){return!s||!t&&s.constructor===e?s:typeof e.BYTES_PER_ELEMENT=="number"?new e(s):Array.prototype.slice.call(s)},isTypedArray:function(s){return ArrayBuffer.isView(s)&&!(s instanceof DataView)},getKeyframeOrder:function(s){function e(i,r){return s[i]-s[r]}const t=s.length,n=new Array(t);for(let i=0;i!==t;++i)n[i]=i;return n.sort(e),n},sortedArray:function(s,e,t){const n=s.length,i=new s.constructor(n);for(let r=0,a=0;a!==n;++r){const o=t[r]*e;for(let c=0;c!==e;++c)i[a++]=s[o+c]}return i},flattenJSON:function(s,e,t,n){let i=1,r=s[0];for(;r!==void 0&&r[n]===void 0;)r=s[i++];if(r===void 0)return;let a=r[n];if(a!==void 0)if(Array.isArray(a))do a=r[n],a!==void 0&&(e.push(r.time),t.push.apply(t,a)),r=s[i++];while(r!==void 0);else if(a.toArray!==void 0)do a=r[n],a!==void 0&&(e.push(r.time),a.toArray(t,t.length)),r=s[i++];while(r!==void 0);else do a=r[n],a!==void 0&&(e.push(r.time),t.push(a)),r=s[i++];while(r!==void 0)},subclip:function(s,e,t,n,i=30){const r=s.clone();r.name=e;const a=[];for(let c=0;c<r.tracks.length;++c){const l=r.tracks[c],h=l.getValueSize(),u=[],d=[];for(let p=0;p<l.times.length;++p){const g=l.times[p]*i;if(!(g<t||g>=n)){u.push(l.times[p]);for(let _=0;_<h;++_)d.push(l.values[p*h+_])}}u.length!==0&&(l.times=je.convertArray(u,l.times.constructor),l.values=je.convertArray(d,l.values.constructor),a.push(l))}r.tracks=a;let o=1/0;for(let c=0;c<r.tracks.length;++c)o>r.tracks[c].times[0]&&(o=r.tracks[c].times[0]);for(let c=0;c<r.tracks.length;++c)r.tracks[c].shift(-1*o);return r.resetDuration(),r},makeClipAdditive:function(s,e=0,t=s,n=30){n<=0&&(n=30);const i=t.tracks.length,r=e/n;for(let a=0;a<i;++a){const o=t.tracks[a],c=o.ValueTypeName;if(c==="bool"||c==="string")continue;const l=s.tracks.find(function(m){return m.name===o.name&&m.ValueTypeName===c});if(l===void 0)continue;let h=0;const u=o.getValueSize();o.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(h=u/3);let d=0;const p=l.getValueSize();l.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(d=p/3);const g=o.times.length-1;let _;if(r<=o.times[0]){const m=h,f=u-h;_=je.arraySlice(o.values,m,f)}else if(r>=o.times[g]){const m=g*u+h,f=m+u-h;_=je.arraySlice(o.values,m,f)}else{const m=o.createInterpolant(),f=h,E=u-h;m.evaluate(r),_=je.arraySlice(m.resultBuffer,f,E)}c==="quaternion"&&new mt().fromArray(_).normalize().conjugate().toArray(_);const M=l.times.length;for(let m=0;m<M;++m){const f=m*p+d;if(c==="quaternion")mt.multiplyQuaternionsFlat(l.values,f,_,0,l.values,f);else{const E=p-d*2;for(let y=0;y<E;++y)l.values[f+y]-=_[y]}}}return s.blendMode=2501,s}};class hn{constructor(e,t,n,i){this.parameterPositions=e,this._cachedIndex=0,this.resultBuffer=i!==void 0?i:new t.constructor(n),this.sampleValues=t,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(e){const t=this.parameterPositions;let n=this._cachedIndex,i=t[n],r=t[n-1];e:{t:{let a;n:{i:if(!(e<i)){for(let o=n+2;;){if(i===void 0){if(e<r)break i;return n=t.length,this._cachedIndex=n,this.afterEnd_(n-1,e,r)}if(n===o)break;if(r=i,i=t[++n],e<i)break t}a=t.length;break n}if(!(e>=r)){const o=t[1];e<o&&(n=2,r=o);for(let c=n-2;;){if(r===void 0)return this._cachedIndex=0,this.beforeStart_(0,e,i);if(n===c)break;if(i=r,r=t[--n-1],e>=r)break t}a=n,n=0;break n}break e}for(;n<a;){const o=n+a>>>1;e<t[o]?a=o:n=o+1}if(i=t[n],r=t[n-1],r===void 0)return this._cachedIndex=0,this.beforeStart_(0,e,i);if(i===void 0)return n=t.length,this._cachedIndex=n,this.afterEnd_(n-1,r,e)}this._cachedIndex=n,this.intervalChanged_(n,r,i)}return this.interpolate_(n,r,e,i)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(e){const t=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=e*i;for(let a=0;a!==i;++a)t[a]=n[r+a];return t}interpolate_(){throw new Error("call to abstract method")}intervalChanged_(){}}hn.prototype.beforeStart_=hn.prototype.copySampleValue_,hn.prototype.afterEnd_=hn.prototype.copySampleValue_;class bd extends hn{constructor(e,t,n,i){super(e,t,n,i);this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:2400,endingEnd:2400}}intervalChanged_(e,t,n){const i=this.parameterPositions;let r=e-2,a=e+1,o=i[r],c=i[a];if(o===void 0)switch(this.getSettings_().endingStart){case 2401:r=e,o=2*t-n;break;case 2402:r=i.length-2,o=t+i[r]-i[r+1];break;default:r=e,o=n}if(c===void 0)switch(this.getSettings_().endingEnd){case 2401:a=e,c=2*n-t;break;case 2402:a=1,c=n+i[1]-i[0];break;default:a=e-1,c=t}const l=(n-t)*.5,h=this.valueSize;this._weightPrev=l/(t-o),this._weightNext=l/(c-n),this._offsetPrev=r*h,this._offsetNext=a*h}interpolate_(e,t,n,i){const r=this.resultBuffer,a=this.sampleValues,o=this.valueSize,c=e*o,l=c-o,h=this._offsetPrev,u=this._offsetNext,d=this._weightPrev,p=this._weightNext,g=(n-t)/(i-t),_=g*g,M=_*g,m=-d*M+2*d*_-d*g,f=(1+d)*M+(-1.5-2*d)*_+(-.5+d)*g+1,E=(-1-p)*M+(1.5+p)*_+.5*g,y=p*M-p*_;for(let T=0;T!==o;++T)r[T]=m*a[h+T]+f*a[l+T]+E*a[c+T]+y*a[u+T];return r}}class oo extends hn{constructor(e,t,n,i){super(e,t,n,i)}interpolate_(e,t,n,i){const r=this.resultBuffer,a=this.sampleValues,o=this.valueSize,c=e*o,l=c-o,h=(n-t)/(i-t),u=1-h;for(let d=0;d!==o;++d)r[d]=a[l+d]*u+a[c+d]*h;return r}}class wd extends hn{constructor(e,t,n,i){super(e,t,n,i)}interpolate_(e){return this.copySampleValue_(e-1)}}class Bt{constructor(e,t,n,i){if(e===void 0)throw new Error("THREE.KeyframeTrack: track name is undefined");if(t===void 0||t.length===0)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+e);this.name=e,this.times=je.convertArray(t,this.TimeBufferType),this.values=je.convertArray(n,this.ValueBufferType),this.setInterpolation(i||this.DefaultInterpolation)}static toJSON(e){const t=e.constructor;let n;if(t.toJSON!==this.toJSON)n=t.toJSON(e);else{n={name:e.name,times:je.convertArray(e.times,Array),values:je.convertArray(e.values,Array)};const i=e.getInterpolation();i!==e.DefaultInterpolation&&(n.interpolation=i)}return n.type=e.ValueTypeName,n}InterpolantFactoryMethodDiscrete(e){return new wd(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodLinear(e){return new oo(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodSmooth(e){return new bd(this.times,this.values,this.getValueSize(),e)}setInterpolation(e){let t;switch(e){case 2300:t=this.InterpolantFactoryMethodDiscrete;break;case 2301:t=this.InterpolantFactoryMethodLinear;break;case 2302:t=this.InterpolantFactoryMethodSmooth;break}if(t===void 0){const n="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(this.createInterpolant===void 0)if(e!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);else throw new Error(n);return console.warn("THREE.KeyframeTrack:",n),this}return this.createInterpolant=t,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return 2300;case this.InterpolantFactoryMethodLinear:return 2301;case this.InterpolantFactoryMethodSmooth:return 2302}}getValueSize(){return this.values.length/this.times.length}shift(e){if(e!==0){const t=this.times;for(let n=0,i=t.length;n!==i;++n)t[n]+=e}return this}scale(e){if(e!==1){const t=this.times;for(let n=0,i=t.length;n!==i;++n)t[n]*=e}return this}trim(e,t){const n=this.times,i=n.length;let r=0,a=i-1;for(;r!==i&&n[r]<e;)++r;for(;a!==-1&&n[a]>t;)--a;if(++a,r!==0||a!==i){r>=a&&(a=Math.max(a,1),r=a-1);const o=this.getValueSize();this.times=je.arraySlice(n,r,a),this.values=je.arraySlice(this.values,r*o,a*o)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const n=this.times,i=this.values,r=n.length;r===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let a=null;for(let o=0;o!==r;o++){const c=n[o];if(typeof c=="number"&&isNaN(c)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,o,c),e=!1;break}if(a!==null&&a>c){console.error("THREE.KeyframeTrack: Out of order keys.",this,o,c,a),e=!1;break}a=c}if(i!==void 0&&je.isTypedArray(i))for(let o=0,c=i.length;o!==c;++o){const l=i[o];if(isNaN(l)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,o,l),e=!1;break}}return e}optimize(){const e=je.arraySlice(this.times),t=je.arraySlice(this.values),n=this.getValueSize(),i=this.getInterpolation()===2302,r=e.length-1;let a=1;for(let o=1;o<r;++o){let c=!1;const l=e[o],h=e[o+1];if(l!==h&&(o!==1||l!==e[0]))if(i)c=!0;else{const u=o*n,d=u-n,p=u+n;for(let g=0;g!==n;++g){const _=t[u+g];if(_!==t[d+g]||_!==t[p+g]){c=!0;break}}}if(c){if(o!==a){e[a]=e[o];const u=o*n,d=a*n;for(let p=0;p!==n;++p)t[d+p]=t[u+p]}++a}}if(r>0){e[a]=e[r];for(let o=r*n,c=a*n,l=0;l!==n;++l)t[c+l]=t[o+l];++a}return a!==e.length?(this.times=je.arraySlice(e,0,a),this.values=je.arraySlice(t,0,a*n)):(this.times=e,this.values=t),this}clone(){const e=je.arraySlice(this.times,0),t=je.arraySlice(this.values,0),n=this.constructor,i=new n(this.name,e,t);return i.createInterpolant=this.createInterpolant,i}}Bt.prototype.TimeBufferType=Float32Array,Bt.prototype.ValueBufferType=Float32Array,Bt.prototype.DefaultInterpolation=2301;class Qn extends Bt{}Qn.prototype.ValueTypeName="bool",Qn.prototype.ValueBufferType=Array,Qn.prototype.DefaultInterpolation=2300,Qn.prototype.InterpolantFactoryMethodLinear=void 0,Qn.prototype.InterpolantFactoryMethodSmooth=void 0;class lo extends Bt{}lo.prototype.ValueTypeName="color";class ur extends Bt{}ur.prototype.ValueTypeName="number";class Td extends hn{constructor(e,t,n,i){super(e,t,n,i)}interpolate_(e,t,n,i){const r=this.resultBuffer,a=this.sampleValues,o=this.valueSize,c=(n-t)/(i-t);let l=e*o;for(let h=l+o;l!==h;l+=4)mt.slerpFlat(r,0,a,l-o,a,l,c);return r}}class bi extends Bt{InterpolantFactoryMethodLinear(e){return new Td(this.times,this.values,this.getValueSize(),e)}}bi.prototype.ValueTypeName="quaternion",bi.prototype.DefaultInterpolation=2301,bi.prototype.InterpolantFactoryMethodSmooth=void 0;class ei extends Bt{}ei.prototype.ValueTypeName="string",ei.prototype.ValueBufferType=Array,ei.prototype.DefaultInterpolation=2300,ei.prototype.InterpolantFactoryMethodLinear=void 0,ei.prototype.InterpolantFactoryMethodSmooth=void 0;class dr extends Bt{}dr.prototype.ValueTypeName="vector";class co{constructor(e,t=-1,n,i=2500){this.name=e,this.tracks=n,this.duration=t,this.blendMode=i,this.uuid=Dt(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],n=e.tracks,i=1/(e.fps||1);for(let a=0,o=n.length;a!==o;++a)t.push(Ad(n[a]).scale(i));const r=new this(e.name,e.duration,t,e.blendMode);return r.uuid=e.uuid,r}static toJSON(e){const t=[],n=e.tracks,i={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let r=0,a=n.length;r!==a;++r)t.push(Bt.toJSON(n[r]));return i}static CreateFromMorphTargetSequence(e,t,n,i){const r=t.length,a=[];for(let o=0;o<r;o++){let c=[],l=[];c.push((o+r-1)%r,o,(o+1)%r),l.push(0,1,0);const h=je.getKeyframeOrder(c);c=je.sortedArray(c,1,h),l=je.sortedArray(l,1,h),!i&&c[0]===0&&(c.push(r),l.push(l[0])),a.push(new ur(".morphTargetInfluences["+t[o].name+"]",c,l).scale(1/n))}return new this(e,-1,a)}static findByName(e,t){let n=e;if(!Array.isArray(e)){const i=e;n=i.geometry&&i.geometry.animations||i.animations}for(let i=0;i<n.length;i++)if(n[i].name===t)return n[i];return null}static CreateClipsFromMorphTargetSequences(e,t,n){const i={},r=/^([\w-]*?)([\d]+)$/;for(let o=0,c=e.length;o<c;o++){const l=e[o],h=l.name.match(r);if(h&&h.length>1){const u=h[1];let d=i[u];d||(i[u]=d=[]),d.push(l)}}const a=[];for(const o in i)a.push(this.CreateFromMorphTargetSequence(o,i[o],t,n));return a}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(u,d,p,g,_){if(p.length!==0){const M=[],m=[];je.flattenJSON(p,M,m,g),M.length!==0&&_.push(new u(d,M,m))}},i=[],r=e.name||"default",a=e.fps||30,o=e.blendMode;let c=e.length||-1;const l=e.hierarchy||[];for(let u=0;u<l.length;u++){const d=l[u].keys;if(!(!d||d.length===0))if(d[0].morphTargets){const p={};let g;for(g=0;g<d.length;g++)if(d[g].morphTargets)for(let _=0;_<d[g].morphTargets.length;_++)p[d[g].morphTargets[_]]=-1;for(const _ in p){const M=[],m=[];for(let f=0;f!==d[g].morphTargets.length;++f){const E=d[g];M.push(E.time),m.push(E.morphTarget===_?1:0)}i.push(new ur(".morphTargetInfluence["+_+"]",M,m))}c=p.length*(a||1)}else{const p=".bones["+t[u].name+"]";n(dr,p+".position",d,"pos",i),n(bi,p+".quaternion",d,"rot",i),n(dr,p+".scale",d,"scl",i)}}return i.length===0?null:new this(r,c,i,o)}resetDuration(){const e=this.tracks;let t=0;for(let n=0,i=e.length;n!==i;++n){const r=this.tracks[n];t=Math.max(t,r.times[r.times.length-1])}return this.duration=t,this}trim(){for(let e=0;e<this.tracks.length;e++)this.tracks[e].trim(0,this.duration);return this}validate(){let e=!0;for(let t=0;t<this.tracks.length;t++)e=e&&this.tracks[t].validate();return e}optimize(){for(let e=0;e<this.tracks.length;e++)this.tracks[e].optimize();return this}clone(){const e=[];for(let t=0;t<this.tracks.length;t++)e.push(this.tracks[t].clone());return new this.constructor(this.name,this.duration,e,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function Ed(s){switch(s.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return ur;case"vector":case"vector2":case"vector3":case"vector4":return dr;case"color":return lo;case"quaternion":return bi;case"bool":case"boolean":return Qn;case"string":return ei}throw new Error("THREE.KeyframeTrack: Unsupported typeName: "+s)}function Ad(s){if(s.type===void 0)throw new Error("THREE.KeyframeTrack: track type undefined, can not parse");const e=Ed(s.type);if(s.times===void 0){const t=[],n=[];je.flattenJSON(s.keys,t,n,"value"),s.times=t,s.values=n}return e.parse!==void 0?e.parse(s):new e(s.name,s.times,s.values,s.interpolation)}const ti={enabled:!1,files:{},add:function(s,e){this.enabled!==!1&&(this.files[s]=e)},get:function(s){if(this.enabled!==!1)return this.files[s]},remove:function(s){delete this.files[s]},clear:function(){this.files={}}};class Rd{constructor(e,t,n){const i=this;let r=!1,a=0,o=0,c;const l=[];this.onStart=void 0,this.onLoad=e,this.onProgress=t,this.onError=n,this.itemStart=function(h){o++,r===!1&&i.onStart!==void 0&&i.onStart(h,a,o),r=!0},this.itemEnd=function(h){a++,i.onProgress!==void 0&&i.onProgress(h,a,o),a===o&&(r=!1,i.onLoad!==void 0&&i.onLoad())},this.itemError=function(h){i.onError!==void 0&&i.onError(h)},this.resolveURL=function(h){return c?c(h):h},this.setURLModifier=function(h){return c=h,this},this.addHandler=function(h,u){return l.push(h,u),this},this.removeHandler=function(h){const u=l.indexOf(h);return u!==-1&&l.splice(u,2),this},this.getHandler=function(h){for(let u=0,d=l.length;u<d;u+=2){const p=l[u],g=l[u+1];if(p.global&&(p.lastIndex=0),p.test(h))return g}return null}}}const Cd=new Rd;class un{constructor(e){this.manager=e!==void 0?e:Cd,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(e,t){const n=this;return new Promise(function(i,r){n.load(e,i,t,r)})}parse(){}setCrossOrigin(e){return this.crossOrigin=e,this}setWithCredentials(e){return this.withCredentials=e,this}setPath(e){return this.path=e,this}setResourcePath(e){return this.resourcePath=e,this}setRequestHeader(e){return this.requestHeader=e,this}}const jt={};class Ld extends un{constructor(e){super(e)}load(e,t,n,i){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const r=ti.get(e);if(r!==void 0)return this.manager.itemStart(e),setTimeout(()=>{t&&t(r),this.manager.itemEnd(e)},0),r;if(jt[e]!==void 0){jt[e].push({onLoad:t,onProgress:n,onError:i});return}jt[e]=[],jt[e].push({onLoad:t,onProgress:n,onError:i});const a=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),o=this.mimeType,c=this.responseType;fetch(a).then(l=>{if(l.status===200||l.status===0){if(l.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream=="undefined"||l.body.getReader===void 0)return l;const h=jt[e],u=l.body.getReader(),d=l.headers.get("Content-Length"),p=d?parseInt(d):0,g=p!==0;let _=0;const M=new ReadableStream({start(m){f();function f(){u.read().then(({done:E,value:y})=>{if(E)m.close();else{_+=y.byteLength;const T=new ProgressEvent("progress",{lengthComputable:g,loaded:_,total:p});for(let R=0,C=h.length;R<C;R++){const Z=h[R];Z.onProgress&&Z.onProgress(T)}m.enqueue(y),f()}})}}});return new Response(M)}else throw Error(`fetch for "${l.url}" responded with ${l.status}: ${l.statusText}`)}).then(l=>{switch(c){case"arraybuffer":return l.arrayBuffer();case"blob":return l.blob();case"document":return l.text().then(h=>new DOMParser().parseFromString(h,o));case"json":return l.json();default:if(o===void 0)return l.text();{const u=/charset="?([^;"\s]*)"?/i.exec(o),d=u&&u[1]?u[1].toLowerCase():void 0,p=new TextDecoder(d);return l.arrayBuffer().then(g=>p.decode(g))}}}).then(l=>{ti.add(e,l);const h=jt[e];delete jt[e];for(let u=0,d=h.length;u<d;u++){const p=h[u];p.onLoad&&p.onLoad(l)}}).catch(l=>{const h=jt[e];if(h===void 0)throw this.manager.itemError(e),l;delete jt[e];for(let u=0,d=h.length;u<d;u++){const p=h[u];p.onError&&p.onError(l)}this.manager.itemError(e)}).finally(()=>{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class ho extends un{constructor(e){super(e)}load(e,t,n,i){this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const r=this,a=ti.get(e);if(a!==void 0)return r.manager.itemStart(e),setTimeout(function(){t&&t(a),r.manager.itemEnd(e)},0),a;const o=ii("img");function c(){h(),ti.add(e,this),t&&t(this),r.manager.itemEnd(e)}function l(u){h(),i&&i(u),r.manager.itemError(e),r.manager.itemEnd(e)}function h(){o.removeEventListener("load",c,!1),o.removeEventListener("error",l,!1)}return o.addEventListener("load",c,!1),o.addEventListener("error",l,!1),e.substr(0,5)!=="data:"&&this.crossOrigin!==void 0&&(o.crossOrigin=this.crossOrigin),r.manager.itemStart(e),o.src=e,o}}class Pd extends un{constructor(e){super(e)}load(e,t,n,i){const r=new Wi,a=new ho(this.manager);a.setCrossOrigin(this.crossOrigin),a.setPath(this.path);let o=0;function c(l){a.load(e[l],function(h){r.images[l]=h,o++,o===6&&(r.needsUpdate=!0,t&&t(r))},void 0,i)}for(let l=0;l<e.length;++l)c(l);return r}}class Dd extends un{constructor(e){super(e)}load(e,t,n,i){const r=new rt,a=new ho(this.manager);return a.setCrossOrigin(this.crossOrigin),a.setPath(this.path),a.load(e,function(o){r.image=o,r.needsUpdate=!0,t!==void 0&&t(r)},n,i),r}}class Nt extends Oe{constructor(e,t=1){super();this.type="Light",this.color=new me(e),this.intensity=t}dispose(){}copy(e){return super.copy(e),this.color.copy(e.color),this.intensity=e.intensity,this}toJSON(e){const t=super.toJSON(e);return t.object.color=this.color.getHex(),t.object.intensity=this.intensity,this.groundColor!==void 0&&(t.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(t.object.distance=this.distance),this.angle!==void 0&&(t.object.angle=this.angle),this.decay!==void 0&&(t.object.decay=this.decay),this.penumbra!==void 0&&(t.object.penumbra=this.penumbra),this.shadow!==void 0&&(t.object.shadow=this.shadow.toJSON()),t}}Nt.prototype.isLight=!0;class Id extends Nt{constructor(e,t,n){super(e,n);this.type="HemisphereLight",this.position.copy(Oe.DefaultUp),this.updateMatrix(),this.groundColor=new me(t)}copy(e){return Nt.prototype.copy.call(this,e),this.groundColor.copy(e.groundColor),this}}Id.prototype.isHemisphereLight=!0;const uo=new _e,fo=new w,po=new w;class gs{constructor(e){this.camera=e,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new J(512,512),this.map=null,this.mapPass=null,this.matrix=new _e,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new Xi,this._frameExtents=new J(1,1),this._viewportCount=1,this._viewports=[new We(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(e){const t=this.camera,n=this.matrix;fo.setFromMatrixPosition(e.matrixWorld),t.position.copy(fo),po.setFromMatrixPosition(e.target.matrixWorld),t.lookAt(po),t.updateMatrixWorld(),uo.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),this._frustum.setFromProjectionMatrix(uo),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(t.projectionMatrix),n.multiply(t.matrixWorldInverse)}getViewport(e){return this._viewports[e]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(e){return this.camera=e.camera.clone(),this.bias=e.bias,this.radius=e.radius,this.mapSize.copy(e.mapSize),this}clone(){return new this.constructor().copy(this)}toJSON(){const e={};return this.bias!==0&&(e.bias=this.bias),this.normalBias!==0&&(e.normalBias=this.normalBias),this.radius!==1&&(e.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&&(e.mapSize=this.mapSize.toArray()),e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e}}class mo extends gs{constructor(){super(new _t(50,1,.5,500));this.focus=1}updateMatrices(e){const t=this.camera,n=xr*2*e.angle*this.focus,i=this.mapSize.width/this.mapSize.height,r=e.distance||t.far;(n!==t.fov||i!==t.aspect||r!==t.far)&&(t.fov=n,t.aspect=i,t.far=r,t.updateProjectionMatrix()),super.updateMatrices(e)}copy(e){return super.copy(e),this.focus=e.focus,this}}mo.prototype.isSpotLightShadow=!0;class Fd extends Nt{constructor(e,t,n=0,i=Math.PI/3,r=0,a=1){super(e,t);this.type="SpotLight",this.position.copy(Oe.DefaultUp),this.updateMatrix(),this.target=new Oe,this.distance=n,this.angle=i,this.penumbra=r,this.decay=a,this.shadow=new mo}get power(){return this.intensity*Math.PI}set power(e){this.intensity=e/Math.PI}dispose(){this.shadow.dispose()}copy(e){return super.copy(e),this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}Fd.prototype.isSpotLight=!0;const go=new _e,wi=new w,_s=new w;class _o extends gs{constructor(){super(new _t(90,1,.5,500));this._frameExtents=new J(4,2),this._viewportCount=6,this._viewports=[new We(2,1,1,1),new We(0,1,1,1),new We(3,1,1,1),new We(1,1,1,1),new We(3,0,1,1),new We(1,0,1,1)],this._cubeDirections=[new w(1,0,0),new w(-1,0,0),new w(0,0,1),new w(0,0,-1),new w(0,1,0),new w(0,-1,0)],this._cubeUps=[new w(0,1,0),new w(0,1,0),new w(0,1,0),new w(0,1,0),new w(0,0,1),new w(0,0,-1)]}updateMatrices(e,t=0){const n=this.camera,i=this.matrix,r=e.distance||n.far;r!==n.far&&(n.far=r,n.updateProjectionMatrix()),wi.setFromMatrixPosition(e.matrixWorld),n.position.copy(wi),_s.copy(n.position),_s.add(this._cubeDirections[t]),n.up.copy(this._cubeUps[t]),n.lookAt(_s),n.updateMatrixWorld(),i.makeTranslation(-wi.x,-wi.y,-wi.z),go.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(go)}}_o.prototype.isPointLightShadow=!0;class Bd extends Nt{constructor(e,t,n=0,i=1){super(e,t);this.type="PointLight",this.distance=n,this.decay=i,this.shadow=new _o}get power(){return this.intensity*4*Math.PI}set power(e){this.intensity=e/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(e){return super.copy(e),this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}}Bd.prototype.isPointLight=!0;class xo extends gs{constructor(){super(new qr(-5,5,5,-5,.5,500))}}xo.prototype.isDirectionalLightShadow=!0;class Nd extends Nt{constructor(e,t){super(e,t);this.type="DirectionalLight",this.position.copy(Oe.DefaultUp),this.updateMatrix(),this.target=new Oe,this.shadow=new xo}dispose(){this.shadow.dispose()}copy(e){return super.copy(e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}Nd.prototype.isDirectionalLight=!0;class zd extends Nt{constructor(e,t){super(e,t);this.type="AmbientLight"}}zd.prototype.isAmbientLight=!0;class Ud extends Nt{constructor(e,t,n=10,i=10){super(e,t);this.type="RectAreaLight",this.width=n,this.height=i}get power(){return this.intensity*this.width*this.height*Math.PI}set power(e){this.intensity=e/(this.width*this.height*Math.PI)}copy(e){return super.copy(e),this.width=e.width,this.height=e.height,this}toJSON(e){const t=super.toJSON(e);return t.object.width=this.width,t.object.height=this.height,t}}Ud.prototype.isRectAreaLight=!0;class vo{constructor(){this.coefficients=[];for(let e=0;e<9;e++)this.coefficients.push(new w)}set(e){for(let t=0;t<9;t++)this.coefficients[t].copy(e[t]);return this}zero(){for(let e=0;e<9;e++)this.coefficients[e].set(0,0,0);return this}getAt(e,t){const n=e.x,i=e.y,r=e.z,a=this.coefficients;return t.copy(a[0]).multiplyScalar(.282095),t.addScaledVector(a[1],.488603*i),t.addScaledVector(a[2],.488603*r),t.addScaledVector(a[3],.488603*n),t.addScaledVector(a[4],1.092548*(n*i)),t.addScaledVector(a[5],1.092548*(i*r)),t.addScaledVector(a[6],.315392*(3*r*r-1)),t.addScaledVector(a[7],1.092548*(n*r)),t.addScaledVector(a[8],.546274*(n*n-i*i)),t}getIrradianceAt(e,t){const n=e.x,i=e.y,r=e.z,a=this.coefficients;return t.copy(a[0]).multiplyScalar(.886227),t.addScaledVector(a[1],2*.511664*i),t.addScaledVector(a[2],2*.511664*r),t.addScaledVector(a[3],2*.511664*n),t.addScaledVector(a[4],2*.429043*n*i),t.addScaledVector(a[5],2*.429043*i*r),t.addScaledVector(a[6],.743125*r*r-.247708),t.addScaledVector(a[7],2*.429043*n*r),t.addScaledVector(a[8],.429043*(n*n-i*i)),t}add(e){for(let t=0;t<9;t++)this.coefficients[t].add(e.coefficients[t]);return this}addScaledSH(e,t){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(e.coefficients[n],t);return this}scale(e){for(let t=0;t<9;t++)this.coefficients[t].multiplyScalar(e);return this}lerp(e,t){for(let n=0;n<9;n++)this.coefficients[n].lerp(e.coefficients[n],t);return this}equals(e){for(let t=0;t<9;t++)if(!this.coefficients[t].equals(e.coefficients[t]))return!1;return!0}copy(e){return this.set(e.coefficients)}clone(){return new this.constructor().copy(this)}fromArray(e,t=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].fromArray(e,t+i*3);return this}toArray(e=[],t=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].toArray(e,t+i*3);return e}static getBasisAt(e,t){const n=e.x,i=e.y,r=e.z;t[0]=.282095,t[1]=.488603*i,t[2]=.488603*r,t[3]=.488603*n,t[4]=1.092548*n*i,t[5]=1.092548*i*r,t[6]=.315392*(3*r*r-1),t[7]=1.092548*n*r,t[8]=.546274*(n*n-i*i)}}vo.prototype.isSphericalHarmonics3=!0;class xs extends Nt{constructor(e=new vo,t=1){super(void 0,t);this.sh=e}copy(e){return super.copy(e),this.sh.copy(e.sh),this}fromJSON(e){return this.intensity=e.intensity,this.sh.fromArray(e.sh),this}toJSON(e){const t=super.toJSON(e);return t.object.sh=this.sh.toArray(),t}}xs.prototype.isLightProbe=!0;class Od{static decodeText(e){if(typeof TextDecoder!="undefined")return new TextDecoder().decode(e);let t="";for(let n=0,i=e.length;n<i;n++)t+=String.fromCharCode(e[n]);try{return decodeURIComponent(escape(t))}catch{return t}}static extractUrlBase(e){const t=e.lastIndexOf("/");return t===-1?"./":e.substr(0,t+1)}static resolveURL(e,t){return typeof e!="string"||e===""?"":(/^https?:\/\//i.test(t)&&/^\//.test(e)&&(t=t.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(e)||/^data:.*,.*$/i.test(e)||/^blob:.*$/i.test(e)?e:t+e)}}class Gd extends Ze{constructor(){super();this.type="InstancedBufferGeometry",this.instanceCount=1/0}copy(e){return super.copy(e),this.instanceCount=e.instanceCount,this}clone(){return new this.constructor().copy(this)}toJSON(){const e=super.toJSON(this);return e.instanceCount=this.instanceCount,e.isInstancedBufferGeometry=!0,e}}Gd.prototype.isInstancedBufferGeometry=!0;class Hd extends un{constructor(e){super(e);typeof createImageBitmap=="undefined"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch=="undefined"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,t,n,i){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const r=this,a=ti.get(e);if(a!==void 0)return r.manager.itemStart(e),setTimeout(function(){t&&t(a),r.manager.itemEnd(e)},0),a;const o={};o.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",o.headers=this.requestHeader,fetch(e,o).then(function(c){return c.blob()}).then(function(c){return createImageBitmap(c,Object.assign(r.options,{colorSpaceConversion:"none"}))}).then(function(c){ti.add(e,c),t&&t(c),r.manager.itemEnd(e)}).catch(function(c){i&&i(c),r.manager.itemError(e),r.manager.itemEnd(e)}),r.manager.itemStart(e)}}Hd.prototype.isImageBitmapLoader=!0;let fr;const Vd={getContext:function(){return fr===void 0&&(fr=new(window.AudioContext||window.webkitAudioContext)),fr},setContext:function(s){fr=s}};class kd extends un{constructor(e){super(e)}load(e,t,n,i){const r=this,a=new Ld(this.manager);a.setResponseType("arraybuffer"),a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,function(o){try{const c=o.slice(0);Vd.getContext().decodeAudioData(c,function(h){t(h)})}catch(c){i?i(c):console.error(c),r.manager.itemError(e)}},n,i)}}class Wd extends xs{constructor(e,t,n=1){super(void 0,n);const i=new me().set(e),r=new me().set(t),a=new w(i.r,i.g,i.b),o=new w(r.r,r.g,r.b),c=Math.sqrt(Math.PI),l=c*Math.sqrt(.75);this.sh.coefficients[0].copy(a).add(o).multiplyScalar(c),this.sh.coefficients[1].copy(a).sub(o).multiplyScalar(l)}}Wd.prototype.isHemisphereLightProbe=!0;class qd extends xs{constructor(e,t=1){super(void 0,t);const n=new me().set(e);this.sh.coefficients[0].set(n.r,n.g,n.b).multiplyScalar(2*Math.sqrt(Math.PI))}}qd.prototype.isAmbientLightProbe=!0;class Xd extends Oe{constructor(e){super();this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.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(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;const t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e<t;e++)this.filters[e-1].connect(this.filters[e]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this}disconnect(){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e<t;e++)this.filters[e-1].disconnect(this.filters[e]);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(e){return e||(e=[]),this._connected===!0?(this.disconnect(),this.filters=e.slice(),this.connect()):this.filters=e.slice(),this}setDetune(e){if(this.detune=e,this.source.detune!==void 0)return this.isPlaying===!0&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(e){return this.setFilters(e?[e]:[])}setPlaybackRate(e){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.playbackRate=e,this.isPlaying===!0&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=!1}getLoop(){return this.hasPlaybackControl===!1?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop}setLoop(e){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.loop=e,this.isPlaying===!0&&(this.source.loop=this.loop),this}setLoopStart(e){return this.loopStart=e,this}setLoopEnd(e){return this.loopEnd=e,this}getVolume(){return this.gain.gain.value}setVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}}class Zd{constructor(e,t,n){this.binding=e,this.valueSize=n;let i,r,a;switch(t){case"quaternion":i=this._slerp,r=this._slerpAdditive,a=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(n*6),this._workIndex=5;break;case"string":case"bool":i=this._select,r=this._select,a=this._setAdditiveIdentityOther,this.buffer=new Array(n*5);break;default:i=this._lerp,r=this._lerpAdditive,a=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(n*5)}this._mixBufferRegion=i,this._mixBufferRegionAdditive=r,this._setIdentity=a,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}accumulate(e,t){const n=this.buffer,i=this.valueSize,r=e*i+i;let a=this.cumulativeWeight;if(a===0){for(let o=0;o!==i;++o)n[r+o]=n[o];a=t}else{a+=t;const o=t/a;this._mixBufferRegion(n,r,0,o,i)}this.cumulativeWeight=a}accumulateAdditive(e){const t=this.buffer,n=this.valueSize,i=n*this._addIndex;this.cumulativeWeightAdditive===0&&this._setIdentity(),this._mixBufferRegionAdditive(t,i,0,e,n),this.cumulativeWeightAdditive+=e}apply(e){const t=this.valueSize,n=this.buffer,i=e*t+t,r=this.cumulativeWeight,a=this.cumulativeWeightAdditive,o=this.binding;if(this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,r<1){const c=t*this._origIndex;this._mixBufferRegion(n,i,c,1-r,t)}a>0&&this._mixBufferRegionAdditive(n,i,this._addIndex*t,1,t);for(let c=t,l=t+t;c!==l;++c)if(n[c]!==n[c+t]){o.setValue(n,i);break}}saveOriginalState(){const e=this.binding,t=this.buffer,n=this.valueSize,i=n*this._origIndex;e.getValue(t,i);for(let r=n,a=i;r!==a;++r)t[r]=t[i+r%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let n=e;n<t;n++)this.buffer[n]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){const e=this._origIndex*this.valueSize,t=this._addIndex*this.valueSize;for(let n=0;n<this.valueSize;n++)this.buffer[t+n]=this.buffer[e+n]}_select(e,t,n,i,r){if(i>=.5)for(let a=0;a!==r;++a)e[t+a]=e[n+a]}_slerp(e,t,n,i){mt.slerpFlat(e,t,e,t,e,n,i)}_slerpAdditive(e,t,n,i,r){const a=this._workIndex*r;mt.multiplyQuaternionsFlat(e,a,e,t,e,n),mt.slerpFlat(e,t,e,t,e,a,i)}_lerp(e,t,n,i,r){const a=1-i;for(let o=0;o!==r;++o){const c=t+o;e[c]=e[c]*a+e[n+o]*i}}_lerpAdditive(e,t,n,i,r){for(let a=0;a!==r;++a){const o=t+a;e[o]=e[o]+e[n+a]*i}}}const vs="\\[\\]\\.:\\/",jd=new RegExp("["+vs+"]","g"),ys="[^"+vs+"]",Yd="[^"+vs.replace("\\.","")+"]",Jd=/((?:WC+[\/:])*)/.source.replace("WC",ys),$d=/(WCOD+)?/.source.replace("WCOD",Yd),Kd=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",ys),Qd=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",ys),ef=new RegExp("^"+Jd+$d+Kd+Qd+"$"),tf=["material","materials","bones"];class nf{constructor(e,t,n){const i=n||Ge.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,i)}getValue(e,t){this.bind();const n=this._targetGroup.nCachedObjects_,i=this._bindings[n];i!==void 0&&i.getValue(e,t)}setValue(e,t){const n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,r=n.length;i!==r;++i)n[i].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].unbind()}}class Ge{constructor(e,t,n){this.path=t,this.parsedPath=n||Ge.parseTrackName(t),this.node=Ge.findNode(e,this.parsedPath.nodeName)||e,this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,n){return e&&e.isAnimationObjectGroup?new Ge.Composite(e,t,n):new Ge(e,t,n)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(jd,"")}static parseTrackName(e){const t=ef.exec(e);if(!t)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const n={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(i!==void 0&&i!==-1){const r=n.nodeName.substring(i+1);tf.indexOf(r)!==-1&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=r)}if(n.propertyName===null||n.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return n}static findNode(e,t){if(!t||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){const n=e.skeleton.getBoneByName(t);if(n!==void 0)return n}if(e.children){const n=function(r){for(let a=0;a<r.length;a++){const o=r[a];if(o.name===t||o.uuid===t)return o;const c=n(o.children);if(c)return c}return null},i=n(e.children);if(i)return i}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(e,t){e[t]=this.targetObject[this.propertyName]}_getValue_array(e,t){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)e[t++]=n[i]}_getValue_arrayElement(e,t){e[t]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(e,t){this.resolvedProperty.toArray(e,t)}_setValue_direct(e,t){this.targetObject[this.propertyName]=e[t]}_setValue_direct_setNeedsUpdate(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(e,t){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=e[t++]}_setValue_array_setNeedsUpdate(e,t){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=e[t++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(e,t){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=e[t++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(e,t){this.resolvedProperty[this.propertyIndex]=e[t]}_setValue_arrayElement_setNeedsUpdate(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(e,t){this.resolvedProperty.fromArray(e,t)}_setValue_fromArray_setNeedsUpdate(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(e,t){this.bind(),this.getValue(e,t)}_setValue_unbound(e,t){this.bind(),this.setValue(e,t)}bind(){let e=this.node;const t=this.parsedPath,n=t.objectName,i=t.propertyName;let r=t.propertyIndex;if(e||(e=Ge.findNode(this.rootNode,t.nodeName)||this.rootNode,this.node=e),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!e){console.error("THREE.PropertyBinding: Trying to update node for track: "+this.path+" but it wasn't found.");return}if(n){let l=t.objectIndex;switch(n){case"materials":if(!e.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!e.material.materials){console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);return}e=e.material.materials;break;case"bones":if(!e.skeleton){console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);return}e=e.skeleton.bones;for(let h=0;h<e.length;h++)if(e[h].name===l){l=h;break}break;default:if(e[n]===void 0){console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);return}e=e[n]}if(l!==void 0){if(e[l]===void 0){console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,e);return}e=e[l]}}const a=e[i];if(a===void 0){const l=t.nodeName;console.error("THREE.PropertyBinding: Trying to update property for track: "+l+"."+i+" but it wasn't found.",e);return}let o=this.Versioning.None;this.targetObject=e,e.needsUpdate!==void 0?o=this.Versioning.NeedsUpdate:e.matrixWorldNeedsUpdate!==void 0&&(o=this.Versioning.MatrixWorldNeedsUpdate);let c=this.BindingType.Direct;if(r!==void 0){if(i==="morphTargetInfluences"){if(!e.geometry){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);return}if(e.geometry.isBufferGeometry){if(!e.geometry.morphAttributes){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);return}e.morphTargetDictionary[r]!==void 0&&(r=e.morphTargetDictionary[r])}else{console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.",this);return}}c=this.BindingType.ArrayElement,this.resolvedProperty=a,this.propertyIndex=r}else a.fromArray!==void 0&&a.toArray!==void 0?(c=this.BindingType.HasFromToArray,this.resolvedProperty=a):Array.isArray(a)?(c=this.BindingType.EntireArray,this.resolvedProperty=a):this.propertyName=i;this.getValue=this.GetterByBindingType[c],this.setValue=this.SetterByBindingTypeAndVersioning[c][o]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}Ge.Composite=nf,Ge.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Ge.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},Ge.prototype.GetterByBindingType=[Ge.prototype._getValue_direct,Ge.prototype._getValue_array,Ge.prototype._getValue_arrayElement,Ge.prototype._getValue_toArray],Ge.prototype.SetterByBindingTypeAndVersioning=[[Ge.prototype._setValue_direct,Ge.prototype._setValue_direct_setNeedsUpdate,Ge.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[Ge.prototype._setValue_array,Ge.prototype._setValue_array_setNeedsUpdate,Ge.prototype._setValue_array_setMatrixWorldNeedsUpdate],[Ge.prototype._setValue_arrayElement,Ge.prototype._setValue_arrayElement_setNeedsUpdate,Ge.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[Ge.prototype._setValue_fromArray,Ge.prototype._setValue_fromArray_setNeedsUpdate,Ge.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];class rf{constructor(e,t,n=null,i=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=n,this.blendMode=i;const r=t.tracks,a=r.length,o=new Array(a),c={endingStart:2400,endingEnd:2400};for(let l=0;l!==a;++l){const h=r[l].createInterpolant(null);o[l]=h,h.settings=c}this._interpolantSettings=c,this._interpolants=o,this._propertyBindings=new Array(a),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,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&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,n){if(e.fadeOut(t),this.fadeIn(t),n){const i=this._clip.duration,r=e._clip.duration,a=r/i,o=i/r;e.warp(1,a,t),this.warp(o,1,t)}return this}crossFadeTo(e,t,n){return e.crossFadeFrom(this,t,n)}stopFading(){const e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,n){const i=this._mixer,r=i.time,a=this.timeScale;let o=this._timeScaleInterpolant;o===null&&(o=i._lendControlInterpolant(),this._timeScaleInterpolant=o);const c=o.parameterPositions,l=o.sampleValues;return c[0]=r,c[1]=r+n,l[0]=e/a,l[1]=t/a,this}stopWarping(){const e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,n,i){if(!this.enabled){this._updateWeight(e);return}const r=this._startTime;if(r!==null){const c=(e-r)*n;if(c<0||n===0)return;this._startTime=null,t=n*c}t*=this._updateTimeScale(e);const a=this._updateTime(t),o=this._updateWeight(e);if(o>0){const c=this._interpolants,l=this._propertyBindings;switch(this.blendMode){case 2501:for(let h=0,u=c.length;h!==u;++h)c[h].evaluate(a),l[h].accumulateAdditive(o);break;case 2500:default:for(let h=0,u=c.length;h!==u;++h)c[h].evaluate(a),l[h].accumulate(i,o)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const n=this._weightInterpolant;if(n!==null){const i=n.evaluate(e)[0];t*=i,e>n.parameterPositions[1]&&(this.stopFading(),i===0&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const n=this._timeScaleInterpolant;n!==null&&(t*=n.evaluate(e)[0],e>n.parameterPositions[1]&&(this.stopWarping(),t===0?this.paused=!0:this.timeScale=t))}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,n=this.loop;let i=this.time+e,r=this._loopCount;const a=n===2202;if(e===0)return r===-1?i:a&&(r&1)===1?t-i:i;if(n===2200){r===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(i>=t)i=t;else if(i<0)i=0;else{this.time=i;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(r===-1&&(e>=0?(r=0,this._setEndings(!0,this.repetitions===0,a)):this._setEndings(this.repetitions===0,!0,a)),i>=t||i<0){const o=Math.floor(i/t);i-=t*o,r+=Math.abs(o);const c=this.repetitions-r;if(c<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=e>0?t:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(c===1){const l=e<0;this._setEndings(l,!l,a)}else this._setEndings(!1,!1,a);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:o})}}else this.time=i;if(a&&(r&1)===1)return t-i}return i}_setEndings(e,t,n){const i=this._interpolantSettings;n?(i.endingStart=2401,i.endingEnd=2401):(e?i.endingStart=this.zeroSlopeAtStart?2401:2400:i.endingStart=2402,t?i.endingEnd=this.zeroSlopeAtEnd?2401:2400:i.endingEnd=2402)}_scheduleFading(e,t,n){const i=this._mixer,r=i.time;let a=this._weightInterpolant;a===null&&(a=i._lendControlInterpolant(),this._weightInterpolant=a);const o=a.parameterPositions,c=a.sampleValues;return o[0]=r,c[0]=t,o[1]=r+e,c[1]=n,this}}class sf extends pn{constructor(e){super();this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){const n=e._localRoot||this._root,i=e._clip.tracks,r=i.length,a=e._propertyBindings,o=e._interpolants,c=n.uuid,l=this._bindingsByRootAndName;let h=l[c];h===void 0&&(h={},l[c]=h);for(let u=0;u!==r;++u){const d=i[u],p=d.name;let g=h[p];if(g!==void 0)++g.referenceCount,a[u]=g;else{if(g=a[u],g!==void 0){g._cacheIndex===null&&(++g.referenceCount,this._addInactiveBinding(g,c,p));continue}const _=t&&t._propertyBindings[u].binding.parsedPath;g=new Zd(Ge.create(n,p,_),d.ValueTypeName,d.getValueSize()),++g.referenceCount,this._addInactiveBinding(g,c,p),a[u]=g}o[u].resultBuffer=g.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const n=(e._localRoot||this._root).uuid,i=e._clip.uuid,r=this._actionsByClip[i];this._bindAction(e,r&&r.knownActions[0]),this._addInactiveAction(e,i,n)}const t=e._propertyBindings;for(let n=0,i=t.length;n!==i;++n){const r=t[n];r.useCount++===0&&(this._lendBinding(r),r.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let n=0,i=t.length;n!==i;++n){const r=t[n];--r.useCount===0&&(r.restoreOriginalState(),this._takeBackBinding(r))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const t=e._cacheIndex;return t!==null&&t<this._nActiveActions}_addInactiveAction(e,t,n){const i=this._actions,r=this._actionsByClip;let a=r[t];if(a===void 0)a={knownActions:[e],actionByRoot:{}},e._byClipCacheIndex=0,r[t]=a;else{const o=a.knownActions;e._byClipCacheIndex=o.length,o.push(e)}e._cacheIndex=i.length,i.push(e),a.actionByRoot[n]=e}_removeInactiveAction(e){const t=this._actions,n=t[t.length-1],i=e._cacheIndex;n._cacheIndex=i,t[i]=n,t.pop(),e._cacheIndex=null;const r=e._clip.uuid,a=this._actionsByClip,o=a[r],c=o.knownActions,l=c[c.length-1],h=e._byClipCacheIndex;l._byClipCacheIndex=h,c[h]=l,c.pop(),e._byClipCacheIndex=null;const u=o.actionByRoot,d=(e._localRoot||this._root).uuid;delete u[d],c.length===0&&delete a[r],this._removeInactiveBindingsForAction(e)}_removeInactiveBindingsForAction(e){const t=e._propertyBindings;for(let n=0,i=t.length;n!==i;++n){const r=t[n];--r.referenceCount===0&&this._removeInactiveBinding(r)}}_lendAction(e){const t=this._actions,n=e._cacheIndex,i=this._nActiveActions++,r=t[i];e._cacheIndex=i,t[i]=e,r._cacheIndex=n,t[n]=r}_takeBackAction(e){const t=this._actions,n=e._cacheIndex,i=--this._nActiveActions,r=t[i];e._cacheIndex=i,t[i]=e,r._cacheIndex=n,t[n]=r}_addInactiveBinding(e,t,n){const i=this._bindingsByRootAndName,r=this._bindings;let a=i[t];a===void 0&&(a={},i[t]=a),a[n]=e,e._cacheIndex=r.length,r.push(e)}_removeInactiveBinding(e){const t=this._bindings,n=e.binding,i=n.rootNode.uuid,r=n.path,a=this._bindingsByRootAndName,o=a[i],c=t[t.length-1],l=e._cacheIndex;c._cacheIndex=l,t[l]=c,t.pop(),delete o[r],Object.keys(o).length===0&&delete a[i]}_lendBinding(e){const t=this._bindings,n=e._cacheIndex,i=this._nActiveBindings++,r=t[i];e._cacheIndex=i,t[i]=e,r._cacheIndex=n,t[n]=r}_takeBackBinding(e){const t=this._bindings,n=e._cacheIndex,i=--this._nActiveBindings,r=t[i];e._cacheIndex=i,t[i]=e,r._cacheIndex=n,t[n]=r}_lendControlInterpolant(){const e=this._controlInterpolants,t=this._nActiveControlInterpolants++;let n=e[t];return n===void 0&&(n=new oo(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),n.__cacheIndex=t,e[t]=n),n}_takeBackControlInterpolant(e){const t=this._controlInterpolants,n=e.__cacheIndex,i=--this._nActiveControlInterpolants,r=t[i];e.__cacheIndex=i,t[i]=e,r.__cacheIndex=n,t[n]=r}clipAction(e,t,n){const i=t||this._root,r=i.uuid;let a=typeof e=="string"?co.findByName(i,e):e;const o=a!==null?a.uuid:e,c=this._actionsByClip[o];let l=null;if(n===void 0&&(a!==null?n=a.blendMode:n=2500),c!==void 0){const u=c.actionByRoot[r];if(u!==void 0&&u.blendMode===n)return u;l=c.knownActions[0],a===null&&(a=l._clip)}if(a===null)return null;const h=new rf(this,a,t,n);return this._bindAction(h,l),this._addInactiveAction(h,o,r),h}existingAction(e,t){const n=t||this._root,i=n.uuid,r=typeof e=="string"?co.findByName(n,e):e,a=r?r.uuid:e,o=this._actionsByClip[a];return o!==void 0&&o.actionByRoot[i]||null}stopAllAction(){const e=this._actions,t=this._nActiveActions;for(let n=t-1;n>=0;--n)e[n].stop();return this}update(e){e*=this.timeScale;const t=this._actions,n=this._nActiveActions,i=this.time+=e,r=Math.sign(e),a=this._accuIndex^=1;for(let l=0;l!==n;++l)t[l]._update(i,e,r,a);const o=this._bindings,c=this._nActiveBindings;for(let l=0;l!==c;++l)o[l].apply(a);return this}setTime(e){this.time=0;for(let t=0;t<this._actions.length;t++)this._actions[t].time=0;return this.update(e)}getRoot(){return this._root}uncacheClip(e){const t=this._actions,n=e.uuid,i=this._actionsByClip,r=i[n];if(r!==void 0){const a=r.knownActions;for(let o=0,c=a.length;o!==c;++o){const l=a[o];this._deactivateAction(l);const h=l._cacheIndex,u=t[t.length-1];l._cacheIndex=null,l._byClipCacheIndex=null,u._cacheIndex=h,t[h]=u,t.pop(),this._removeInactiveBindingsForAction(l)}delete i[n]}}uncacheRoot(e){const t=e.uuid,n=this._actionsByClip;for(const a in n){const o=n[a].actionByRoot,c=o[t];c!==void 0&&(this._deactivateAction(c),this._removeInactiveAction(c))}const i=this._bindingsByRootAndName,r=i[t];if(r!==void 0)for(const a in r){const o=r[a];o.restoreOriginalState(),this._removeInactiveBinding(o)}}uncacheAction(e,t){const n=this.existingAction(e,t);n!==null&&(this._deactivateAction(n),this._removeInactiveAction(n))}}sf.prototype._controlInterpolantsResultBuffer=new Float32Array(1);class af extends hi{constructor(e,t,n=1){super(e,t);this.meshPerAttribute=n}copy(e){return super.copy(e),this.meshPerAttribute=e.meshPerAttribute,this}clone(e){const t=super.clone(e);return t.meshPerAttribute=this.meshPerAttribute,t}toJSON(e){const t=super.toJSON(e);return t.isInstancedInterleavedBuffer=!0,t.meshPerAttribute=this.meshPerAttribute,t}}af.prototype.isInstancedInterleavedBuffer=!0;const dn=new w,pr=new _e,Ms=new _e;class of extends is{constructor(e){const t=yo(e),n=new Ze,i=[],r=[],a=new me(0,0,1),o=new me(0,1,0);for(let l=0;l<t.length;l++){const h=t[l];h.parent&&h.parent.isBone&&(i.push(0,0,0),i.push(0,0,0),r.push(a.r,a.g,a.b),r.push(o.r,o.g,o.b))}n.setAttribute("position",new st(i,3)),n.setAttribute("color",new st(r,3));const c=new gi({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0});super(n,c);this.type="SkeletonHelper",this.isSkeletonHelper=!0,this.root=e,this.bones=t,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}updateMatrixWorld(e){const t=this.bones,n=this.geometry,i=n.getAttribute("position");Ms.copy(this.root.matrixWorld).invert();for(let r=0,a=0;r<t.length;r++){const o=t[r];o.parent&&o.parent.isBone&&(pr.multiplyMatrices(Ms,o.matrixWorld),dn.setFromMatrixPosition(pr),i.setXYZ(a,dn.x,dn.y,dn.z),pr.multiplyMatrices(Ms,o.parent.matrixWorld),dn.setFromMatrixPosition(pr),i.setXYZ(a+1,dn.x,dn.y,dn.z),a+=2)}n.getAttribute("position").needsUpdate=!0,super.updateMatrixWorld(e)}}function yo(s){const e=[];s&&s.isBone&&e.push(s);for(let t=0;t<s.children.length;t++)e.push.apply(e,yo(s.children[t]));return e}class lf extends is{constructor(e=10,t=10,n=4473924,i=8947848){n=new me(n),i=new me(i);const r=t/2,a=e/t,o=e/2,c=[],l=[];for(let d=0,p=0,g=-o;d<=t;d++,g+=a){c.push(-o,0,g,o,0,g),c.push(g,0,-o,g,0,o);const _=d===r?n:i;_.toArray(l,p),p+=3,_.toArray(l,p),p+=3,_.toArray(l,p),p+=3,_.toArray(l,p),p+=3}const h=new Ze;h.setAttribute("position",new st(c,3)),h.setAttribute("color",new st(l,3));const u=new gi({vertexColors:!0,toneMapped:!1});super(h,u);this.type="GridHelper"}}const cf=new Float32Array(1);new Int32Array(cf.buffer),wt.create=function(s,e){return console.log("THREE.Curve.create() has been deprecated"),s.prototype=Object.create(wt.prototype),s.prototype.constructor=s,s.prototype.getPoint=e,s},ds.prototype.fromPoints=function(s){return console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints()."),this.setFromPoints(s)},lf.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")},of.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")},un.prototype.extractUrlBase=function(s){return console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead."),Od.extractUrlBase(s)},un.Handlers={add:function(){console.error("THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.")},get:function(){console.error("THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.")}},At.prototype.center=function(s){return console.warn("THREE.Box3: .center() has been renamed to .getCenter()."),this.getCenter(s)},At.prototype.empty=function(){return console.warn("THREE.Box3: .empty() has been renamed to .isEmpty()."),this.isEmpty()},At.prototype.isIntersectionBox=function(s){return console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(s)},At.prototype.isIntersectionSphere=function(s){return console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(s)},At.prototype.size=function(s){return console.warn("THREE.Box3: .size() has been renamed to .getSize()."),this.getSize(s)},Cn.prototype.empty=function(){return console.warn("THREE.Sphere: .empty() has been renamed to .isEmpty()."),this.isEmpty()},Xi.prototype.setFromMatrix=function(s){return console.warn("THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix()."),this.setFromProjectionMatrix(s)},lt.prototype.flattenToArrayOffset=function(s,e){return console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(s,e)},lt.prototype.multiplyVector3=function(s){return console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead."),s.applyMatrix3(this)},lt.prototype.multiplyVector3Array=function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},lt.prototype.applyToBufferAttribute=function(s){return console.warn("THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead."),s.applyMatrix3(this)},lt.prototype.applyToVector3Array=function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")},lt.prototype.getInverse=function(s){return console.warn("THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(s).invert()},_e.prototype.extractPosition=function(s){return console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition()."),this.copyPosition(s)},_e.prototype.flattenToArrayOffset=function(s,e){return console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(s,e)},_e.prototype.getPosition=function(){return console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead."),new w().setFromMatrixColumn(this,3)},_e.prototype.setRotationFromQuaternion=function(s){return console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion()."),this.makeRotationFromQuaternion(s)},_e.prototype.multiplyToArray=function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},_e.prototype.multiplyVector3=function(s){return console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead."),s.applyMatrix4(this)},_e.prototype.multiplyVector4=function(s){return console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead."),s.applyMatrix4(this)},_e.prototype.multiplyVector3Array=function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},_e.prototype.rotateAxis=function(s){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead."),s.transformDirection(this)},_e.prototype.crossVector=function(s){return console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead."),s.applyMatrix4(this)},_e.prototype.translate=function(){console.error("THREE.Matrix4: .translate() has been removed.")},_e.prototype.rotateX=function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},_e.prototype.rotateY=function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},_e.prototype.rotateZ=function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},_e.prototype.rotateByAxis=function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},_e.prototype.applyToBufferAttribute=function(s){return console.warn("THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead."),s.applyMatrix4(this)},_e.prototype.applyToVector3Array=function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},_e.prototype.makeFrustum=function(s,e,t,n,i,r){return console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead."),this.makePerspective(s,e,n,t,i,r)},_e.prototype.getInverse=function(s){return console.warn("THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(s).invert()},Zt.prototype.isIntersectionLine=function(s){return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."),this.intersectsLine(s)},mt.prototype.multiplyVector3=function(s){return console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead."),s.applyQuaternion(this)},mt.prototype.inverse=function(){return console.warn("THREE.Quaternion: .inverse() has been renamed to invert()."),this.invert()},Ln.prototype.isIntersectionBox=function(s){return console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(s)},Ln.prototype.isIntersectionPlane=function(s){return console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane()."),this.intersectsPlane(s)},Ln.prototype.isIntersectionSphere=function(s){return console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(s)},tt.prototype.area=function(){return console.warn("THREE.Triangle: .area() has been renamed to .getArea()."),this.getArea()},tt.prototype.barycoordFromPoint=function(s,e){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),this.getBarycoord(s,e)},tt.prototype.midpoint=function(s){return console.warn("THREE.Triangle: .midpoint() has been renamed to .getMidpoint()."),this.getMidpoint(s)},tt.prototypenormal=function(s){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),this.getNormal(s)},tt.prototype.plane=function(s){return console.warn("THREE.Triangle: .plane() has been renamed to .getPlane()."),this.getPlane(s)},tt.barycoordFromPoint=function(s,e,t,n,i){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),tt.getBarycoord(s,e,t,n,i)},tt.normal=function(s,e,t,n){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),tt.getNormal(s,e,t,n)},vi.prototype.extractAllPoints=function(s){return console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead."),this.extractPoints(s)},vi.prototype.extrude=function(s){return console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead."),new Kn(this,s)},vi.prototype.makeGeometry=function(s){return console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead."),new ms(this,s)},J.prototype.fromAttribute=function(s,e,t){return console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(s,e,t)},J.prototype.distanceToManhattan=function(s){return console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(s)},J.prototype.lengthManhattan=function(){return console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()},w.prototype.setEulerFromRotationMatrix=function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},w.prototype.setEulerFromQuaternion=function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},w.prototype.getPositionFromMatrix=function(s){return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."),this.setFromMatrixPosition(s)},w.prototype.getScaleFromMatrix=function(s){return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."),this.setFromMatrixScale(s)},w.prototype.getColumnFromMatrix=function(s,e){return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."),this.setFromMatrixColumn(e,s)},w.prototype.applyProjection=function(s){return console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead."),this.applyMatrix4(s)},w.prototype.fromAttribute=function(s,e,t){return console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(s,e,t)},w.prototype.distanceToManhattan=function(s){return console.warn("THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(s)},w.prototype.lengthManhattan=function(){return console.warn("THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()},We.prototype.fromAttribute=function(s,e,t){return console.warn("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(s,e,t)},We.prototype.lengthManhattan=function(){return console.warn("THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()},Oe.prototype.getChildByName=function(s){return console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName()."),this.getObjectByName(s)},Oe.prototype.renderDepth=function(){console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")},Oe.prototype.translate=function(s,e){return console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead."),this.translateOnAxis(e,s)},Oe.prototype.getWorldRotation=function(){console.error("THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.")},Oe.prototype.applyMatrix=function(s){return console.warn("THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(s)},Object.defineProperties(Oe.prototype,{eulerOrder:{get:function(){return console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order},set:function(s){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order=s}},useQuaternion:{get:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")},set:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")}}}),gt.prototype.setDrawMode=function(){console.error("THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")},Object.defineProperties(gt.prototype,{drawMode:{get:function(){return console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode."),0},set:function(){console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")}}}),Na.prototype.initBones=function(){console.error("THREE.SkinnedMesh: initBones() has been removed.")},_t.prototype.setLens=function(s,e){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup."),e!==void 0&&(this.filmGauge=e),this.setFocalLength(s)},Object.defineProperties(Nt.prototype,{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(s){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov."),this.shadow.camera.fov=s}},shadowCameraLeft:{set:function(s){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left."),this.shadow.camera.left=s}},shadowCameraRight:{set:function(s){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right."),this.shadow.camera.right=s}},shadowCameraTop:{set:function(s){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top."),this.shadow.camera.top=s}},shadowCameraBottom:{set:function(s){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom."),this.shadow.camera.bottom=s}},shadowCameraNear:{set:function(s){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near."),this.shadow.camera.near=s}},shadowCameraFar:{set:function(s){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far."),this.shadow.camera.far=s}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(s){console.warn("THREE.Light: .shadowBias is now .shadow.bias."),this.shadow.bias=s}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(s){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width."),this.shadow.mapSize.width=s}},shadowMapHeight:{set:function(s){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height."),this.shadow.mapSize.height=s}}}),Object.defineProperties(nt.prototype,{length:{get:function(){return console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead."),this.array.length}},dynamic:{get:function(){return console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.usage===35048},set:function(){console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.setUsage(35048)}}}),nt.prototype.setDynamic=function(s){return console.warn("THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(s===!0?35048:35044),this},nt.prototype.copyIndicesArray=function(){console.error("THREE.BufferAttribute: .copyIndicesArray() has been removed.")},nt.prototype.setArray=function(){console.error("THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")},Ze.prototype.addIndex=function(s){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex()."),this.setIndex(s)},Ze.prototype.addAttribute=function(s,e){return console.warn("THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute()."),!(e&&e.isBufferAttribute)&&!(e&&e.isInterleavedBufferAttribute)?(console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.setAttribute(s,new nt(arguments[1],arguments[2]))):s==="index"?(console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(e),this):this.setAttribute(s,e)},Ze.prototype.addDrawCall=function(s,e,t){t!==void 0&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset."),console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup()."),this.addGroup(s,e)},Ze.prototype.clearDrawCalls=function(){console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups()."),this.clearGroups()},Ze.prototype.computeOffsets=function(){console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.")},Ze.prototype.removeAttribute=function(s){return console.warn("THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute()."),this.deleteAttribute(s)},Ze.prototype.applyMatrix=function(s){return console.warn("THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(s)},Object.defineProperties(Ze.prototype,{drawcalls:{get:function(){return console.error("THREE.BufferGeometry: .drawcalls has been renamed to .groups."),this.groups}},offsets:{get:function(){return console.warn("THREE.BufferGeometry: .offsets has been renamed to .groups."),this.groups}}}),hi.prototype.setDynamic=function(s){return console.warn("THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(s===!0?35048:35044),this},hi.prototype.setArray=function(){console.error("THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")},Kn.prototype.getArrays=function(){console.error("THREE.ExtrudeGeometry: .getArrays() has been removed.")},Kn.prototype.addShapeList=function(){console.error("THREE.ExtrudeGeometry: .addShapeList() has been removed.")},Kn.prototype.addShape=function(){console.error("THREE.ExtrudeGeometry: .addShape() has been removed.")},Aa.prototype.dispose=function(){console.error("THREE.Scene: .dispose() has been removed.")},Object.defineProperties(ct.prototype,{wrapAround:{get:function(){console.warn("THREE.Material: .wrapAround has been removed.")},set:function(){console.warn("THREE.Material: .wrapAround has been removed.")}},overdraw:{get:function(){console.warn("THREE.Material: .overdraw has been removed.")},set:function(){console.warn("THREE.Material: .overdraw has been removed.")}},wrapRGB:{get:function(){return console.warn("THREE.Material: .wrapRGB has been removed."),new me}},shading:{get:function(){console.error("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(s){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=s===1}},stencilMask:{get:function(){return console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask},set:function(s){console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask=s}},vertexTangents:{get:function(){console.warn("THREE."+this.type+": .vertexTangents has been removed.")},set:function(){console.warn("THREE."+this.type+": .vertexTangents has been removed.")}}}),Object.defineProperties(vn.prototype,{derivatives:{get:function(){return console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives},set:function(s){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives=s}}}),Ve.prototype.clearTarget=function(s,e,t,n){console.warn("THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead."),this.setRenderTarget(s),this.clear(e,t,n)},Ve.prototype.animate=function(s){console.warn("THREE.WebGLRenderer: .animate() is now .setAnimationLoop()."),this.setAnimationLoop(s)},Ve.prototype.getCurrentRenderTarget=function(){return console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget()."),this.getRenderTarget()},Ve.prototype.getMaxAnisotropy=function(){return console.warn("THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy()."),this.capabilities.getMaxAnisotropy()},Ve.prototype.getPrecision=function(){return console.warn("THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision."),this.capabilities.precision},Ve.prototype.resetGLState=function(){return console.warn("THREE.WebGLRenderer: .resetGLState() is now .state.reset()."),this.state.reset()},Ve.prototype.supportsFloatTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' )."),this.extensions.get("OES_texture_float")},Ve.prototype.supportsHalfFloatTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' )."),this.extensions.get("OES_texture_half_float")},Ve.prototype.supportsStandardDerivatives=function(){return console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' )."),this.extensions.get("OES_standard_derivatives")},Ve.prototype.supportsCompressedTextureS3TC=function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' )."),this.extensions.get("WEBGL_compressed_texture_s3tc")},Ve.prototype.supportsCompressedTexturePVRTC=function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' )."),this.extensions.get("WEBGL_compressed_texture_pvrtc")},Ve.prototype.supportsBlendMinMax=function(){return console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' )."),this.extensions.get("EXT_blend_minmax")},Ve.prototype.supportsVertexTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures."),this.capabilities.vertexTextures},Ve.prototype.supportsInstancedArrays=function(){return console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' )."),this.extensions.get("ANGLE_instanced_arrays")},Ve.prototype.enableScissorTest=function(s){console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest()."),this.setScissorTest(s)},Ve.prototype.initMaterial=function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")},Ve.prototype.addPrePlugin=function(){console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")},Ve.prototype.addPostPlugin=function(){console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")},Ve.prototype.updateShadowMap=function(){console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")},Ve.prototype.setFaceCulling=function(){console.warn("THREE.WebGLRenderer: .setFaceCulling() has been removed.")},Ve.prototype.allocTextureUnit=function(){console.warn("THREE.WebGLRenderer: .allocTextureUnit() has been removed.")},Ve.prototype.setTexture=function(){console.warn("THREE.WebGLRenderer: .setTexture() has been removed.")},Ve.prototype.setTexture2D=function(){console.warn("THREE.WebGLRenderer: .setTexture2D() has been removed.")},Ve.prototype.setTextureCube=function(){console.warn("THREE.WebGLRenderer: .setTextureCube() has been removed.")},Ve.prototype.getActiveMipMapLevel=function(){return console.warn("THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel()."),this.getActiveMipmapLevel()},Object.defineProperties(Ve.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(s){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled."),this.shadowMap.enabled=s}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(s){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type."),this.shadowMap.type=s}},shadowMapCullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")}},context:{get:function(){return console.warn("THREE.WebGLRenderer: .context has been removed. Use .getContext() instead."),this.getContext()}},vr:{get:function(){return console.warn("THREE.WebGLRenderer: .vr has been renamed to .xr"),this.xr}},gammaInput:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead."),!1},set:function(){console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.")}},gammaOutput:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),!1},set:function(s){console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),this.outputEncoding=s===!0?3001:3e3}},toneMappingWhitePoint:{get:function(){return console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed."),1},set:function(){console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.")}},gammaFactor:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaFactor has been removed."),2},set:function(){console.warn("THREE.WebGLRenderer: .gammaFactor has been removed.")}}}),Object.defineProperties(Ta.prototype,{cullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")}},renderReverseSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")}},renderSingleSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")}}}),Object.defineProperties(St.prototype,{wrapS:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS},set:function(s){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS=s}},wrapT:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT},set:function(s){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT=s}},magFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter},set:function(s){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter=s}},minFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter},set:function(s){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter=s}},anisotropy:{get:function(){return console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy},set:function(s){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy=s}},offset:{get:function(){return console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset},set:function(s){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset=s}},repeat:{get:function(){return console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat},set:function(s){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat=s}},format:{get:function(){return console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format},set:function(s){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format=s}},type:{get:function(){return console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type},set:function(s){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type=s}},generateMipmaps:{get:function(){return console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps},set:function(s){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps=s}}}),Xd.prototype.load=function(s){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");const e=this;return new kd().load(s,function(n){e.setBuffer(n)}),this},Vr.prototype.updateCubeMap=function(s,e){return console.warn("THREE.CubeCamera: .updateCubeMap() is now .update()."),this.update(s,e)},Vr.prototype.clear=function(s,e,t,n){return console.warn("THREE.CubeCamera: .clear() is now .renderTarget.clear()."),this.renderTarget.clear(s,e,t,n)},mn.crossOrigin=void 0,mn.loadTexture=function(s,e,t,n){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");const i=new Dd;i.setCrossOrigin(this.crossOrigin);const r=i.load(s,t,void 0,n);return e&&(r.mapping=e),r},mn.loadTextureCube=function(s,e,t,n){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");const i=new Pd;i.setCrossOrigin(this.crossOrigin);const r=i.load(s,t,void 0,n);return e&&(r.mapping=e),r},mn.loadCompressedTexture=function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")},mn.loadCompressedTextureCube=function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:Ht}})),typeof window!="undefined"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=Ht);const dt=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180];for(let s=0;s<256;s++)dt[256+s]=dt[s];function Ss(s){return s*s*s*(s*(s*6-15)+10)}function Mn(s,e,t){return e+s*(t-e)}function fn(s,e,t,n){const i=s&15,r=i<8?e:t,a=i<4?t:i==12||i==14?e:n;return((i&1)==0?r:-r)+((i&2)==0?a:-a)}class hf{noise(e,t,n){const i=Math.floor(e),r=Math.floor(t),a=Math.floor(n),o=i&255,c=r&255,l=a&255;e-=i,t-=r,n-=a;const h=e-1,u=t-1,d=n-1,p=Ss(e),g=Ss(t),_=Ss(n),M=dt[o]+c,m=dt[M]+l,f=dt[M+1]+l,E=dt[o+1]+c,y=dt[E]+l,T=dt[E+1]+l;return Mn(_,Mn(g,Mn(p,fn(dt[m],e,t,n),fn(dt[y],h,t,n)),Mn(p,fn(dt[f],e,u,n),fn(dt[T],h,u,n))),Mn(g,Mn(p,fn(dt[m+1],e,t,d),fn(dt[y+1],h,t,d)),Mn(p,fn(dt[f+1],e,u,d),fn(dt[T+1],h,u,d))))}}class uf{constructor(){$e(this,"noise",new hf);$e(this,"seed",Math.random());$e(this,"gap",22);$e(this,"amp",8);$e(this,"stoneSeed",this.seed*.4);$e(this,"stoneGap",12);$e(this,"stoneAmp",8);$e(this,"stoneThreshold",3.5);$e(this,"coalSeed",this.seed*.5);$e(this,"coalGap",3);$e(this,"coalAmp",8);$e(this,"coalThreshold",3);$e(this,"treeSeed",this.seed*.7);$e(this,"treeGap",2);$e(this,"treeAmp",6);$e(this,"treeHeight",10);$e(this,"treeThreshold",4);$e(this,"leafSeed",this.seed*.8);$e(this,"leafGap",2);$e(this,"leafAmp",5);$e(this,"leafThreshold",-.03);$e(this,"get",(e,t,n)=>this.noise.noise(e,t,n))}}const Lt=new _e,De=new uf,Tt=[],df=new Un;let Mo=!0;onmessage=s=>{const{distance:e,chunk:t,noiseSeed:n,idMap:i,blocksFactor:r,treeSeed:a,stoneSeed:o,coalSeed:c,customBlocks:l,blocksCount:h,chunkSize:u}=s.data,d=(e*u*2+u)**2+500;if(Mo){for(let g=0;g<h.length;g++){let _=new Oa(df,new Fi,d*r[g]);Tt.push(_)}Mo=!1}De.seed=n,De.treeSeed=a,De.stoneSeed=o,De.coalSeed=c;for(let g=0;g<Tt.length;g++)Tt[g].instanceMatrix=new er(new Float32Array(d*r[g]*16),16);for(let g=-u*e+u*t.x;g<u*e+u+u*t.x;g++)for(let _=-u*e+u*t.y;_<u*e+u+u*t.y;_++){const m=Math.floor(De.get(g/De.gap,_/De.gap,De.seed)*De.amp);Lt.setPosition(g,30+m,_);const f=De.get(g/De.stoneGap,_/De.stoneGap,De.stoneSeed)*De.stoneAmp,E=De.get(g/De.coalGap,_/De.coalGap,De.coalSeed)*De.coalAmp;if(f>De.stoneThreshold?E>De.coalThreshold?(i.set(`${g}_${30+m}_${_}`,h[6]),Tt[6].setMatrixAt(h[6]++,Lt)):(i.set(`${g}_${30+m}_${_}`,h[5]),Tt[5].setMatrixAt(h[5]++,Lt)):m<-3?(i.set(`${g}_${30+m}_${_}`,h[1]),Tt[1].setMatrixAt(h[1]++,Lt)):(i.set(`${g}_${30+m}_${_}`,h[0]),Tt[0].setMatrixAt(h[0]++,Lt)),De.get(g/De.treeGap,_/De.treeGap,De.treeSeed)*De.treeAmp>De.treeThreshold&&m>=-3&&f<De.stoneThreshold){for(let T=1;T<=De.treeHeight;T++)i.set(`${g}_${30+m+T}_${_}`,h[2]),Lt.setPosition(g,30+m+T,_),Tt[2].setMatrixAt(h[2]++,Lt);for(let T=-3;T<3;T++)for(let R=-3;R<3;R++)for(let C=-3;C<3;C++){if(T===0&&C===0)continue;De.get((g+T+R)/De.leafGap,(_+C)/De.leafGap,De.leafSeed)*De.leafAmp>De.leafThreshold&&(i.set(`${g+T}_${30+m+De.treeHeight+R}_${_+C}`,h[3]),Lt.setPosition(g+T,30+m+De.treeHeight+R,_+C),Tt[3].setMatrixAt(h[3]++,Lt))}}}for(const g of l)if(g.x>-u*e+u*t.x&&g.x<u*e+u+u*t.x&&g.z>-u*e+u*t.y&&g.z<u*e+u+u*t.y)if(g.placed)Lt.setPosition(g.x,g.y,g.z),Tt[g.type].setMatrixAt(h[g.type]++,Lt);else{const _=i.get(`${g.x}_${g.y}_${g.z}`);Tt[g.type].setMatrixAt(_,new _e().set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0))}const p=Tt.map(g=>g.instanceMatrix.array);postMessage({idMap:i,arrays:p,blocksCount:h})}})(); diff --git a/dist/assets/glass.17e849a2.png b/dist/assets/glass.17e849a2.png new file mode 100644 index 0000000000000000000000000000000000000000..285b47f5e362c3b3142f35430ceec65811523e8a GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`vproLLo9le_k4Kuw4TlAU~js- zM1%wonEA{;=h4R~#W?Z*%nPi{n~XZkE<UaPE)l@PapKe;|5e!!*fLmLCasY?+8`}G zZStB(hln0VWgZVk`Fr~oonh#TJ#gTFfez1(k8hYy&YBRcJ-KZP!^v3_g=J3aIb72@ zeg5!)9ghy3{m%mg{q}W<6P`X#toZYhJCN<<r_Tl;z`*csp|R|lJ9QvuGI+ZBxvX<a GXaWGHc2X$- literal 0 HcmV?d00001 diff --git a/dist/assets/glass.3e48b289.png b/dist/assets/glass.3e48b289.png new file mode 100644 index 0000000000000000000000000000000000000000..458d306bfeb4b2a47b45b3a2aaa7a1a1f655f853 GIT binary patch literal 1712 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 PC$zLAUZOr>=h6QIuj5B4 literal 0 HcmV?d00001 diff --git a/dist/assets/grass.020eb145.png b/dist/assets/grass.020eb145.png new file mode 100644 index 0000000000000000000000000000000000000000..e80fc85dba008956d92601c86cf898207f24e5db GIT binary patch literal 5531 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 literal 0 HcmV?d00001 diff --git a/dist/assets/grass1.3619fdb8.ogg b/dist/assets/grass1.3619fdb8.ogg new file mode 100644 index 0000000000000000000000000000000000000000..12f575110abad218ab5688899fdb29db5e5ec08c GIT binary patch literal 7468 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 Y=TfKarEmvWp4tfANL4;vs44LO0MlhCW&i*H literal 0 HcmV?d00001 diff --git a/dist/assets/grass2.b0763cf2.ogg b/dist/assets/grass2.b0763cf2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..05dff55c8fe2587119663e41c50d8b199ccf1465 GIT binary patch literal 7691 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 literal 0 HcmV?d00001 diff --git a/dist/assets/grass3.9ac02803.ogg b/dist/assets/grass3.9ac02803.ogg new file mode 100644 index 0000000000000000000000000000000000000000..e792b343e97865979e4286bba8e1184fd905f651 GIT binary patch literal 7194 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	Ov6 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 W$4lBAkUidIai?a$@9#f1*!~aVU)4_l literal 0 HcmV?d00001 diff --git a/dist/assets/grass4.dd733357.ogg b/dist/assets/grass4.dd733357.ogg new file mode 100644 index 0000000000000000000000000000000000000000..8421e6ae7f5baa5ae0b43a4a718c001222937e0a GIT binary patch literal 7163 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 literal 0 HcmV?d00001 diff --git a/dist/assets/grass_block_side.1f5d4845.png b/dist/assets/grass_block_side.1f5d4845.png new file mode 100644 index 0000000000000000000000000000000000000000..a4975e53478ee3b1fad636c7cc99a2798a043b16 GIT binary patch literal 408 zcmV;J0cZY+P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004BNkl<Zc-nPR zNlSx444q#ic<|^#vF;024~iBS6l)dhGNNJ?yeJ~_fgltGdl6g^cd@Qe5Q`qX_@kaA zkdHKN51C}Lyq9FgrQc%M_~^shYY%3x8d;W~Ix%@#3;)oDt*;@DFWj{tbsfe0Z8N6M z>(QU7!qQ_q-1>VjC+_FRu#+3W?#m!Xqt%$ZX+rX%fq{;GrjaQmn1qTcpTHLHTj35q zC%E9`&tv8?!VGj@$#t=&4z~+&9DXN}{Y|lNI9r3nSsmMs4(~l*NLHV_Lz{#;AWiL( z-i$}W7}@UF$Jij9-y7$E_;j)mNp1)rN#xXEx=@3OO+ti@4($wrpeRA&+SWwQChJag zH|6{cV4Ye^%eGj@oL!3DvK2du(~Ndz0T#a=MRw)N&7~RW>GTNtnfW7Grv<4b(pAw2 zB<YcklEujwvKReY&L-&%>-jBF34r|rvZPAyF9iQ-5GtheB{zfs0000<MNUMnLSTZ= Ct-8Aa literal 0 HcmV?d00001 diff --git a/dist/assets/grass_top_green.be9cf310.png b/dist/assets/grass_top_green.be9cf310.png new file mode 100644 index 0000000000000000000000000000000000000000..5344a0845ceb16d561db009f43601272579b0954 GIT binary patch literal 3617 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 literal 0 HcmV?d00001 diff --git a/dist/assets/hal3.2642662e.ogg b/dist/assets/hal3.2642662e.ogg new file mode 100644 index 0000000000000000000000000000000000000000..6f8984f770f1b7b805e48808a8b67a716a9c71db GIT binary patch literal 1923269 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
JU$kTyGew029wrYC9w|6b=zj*lss2&z@*3{ zr50w#*{{eF-Iq(rgZ}}h-WY?#K}$yWAF@lRrqMvPjpAvI)aHMMJ~DQ$>d5P#c3L02 zC4q!-e5`h9_tjtCVC6+|EdYU_OaUQAsDwg!`B`3>>qr?Yan(#sT7Mw<O=ff<Iq_Qy zt><%eo})fIpLH9Z5`15&P_T;S>1?&b`}Mkq9Oel)Mv=3Byhmh0=M!gsz3WzI^;2)* zz~i*M{=!`>W&7-IfFr?~U<r(LcRM2TZ#>UGV6tmj)|nc?MZ$4H^d>88vEeumHT^wa zMM)0t?GT_PMns7QJ3l{k9qIfkPx4PQ{kh8miBY3f4jz7(1Mxkyf&^^dvcsMc4_WSM zhwpLSC^uRk`)6)w*7L*8HJM(SZ#Asp_W|U;Wtx0$u4%3VI|wk6<VbX8REH_}K@2G< z!b{WNs)|<IxxI#rSQ)E&PDOU;zaMe0gQ*};!99iNsbqj3y{z-ud{qy-Z|i-xd*QVr z*1mk1A>inA$LFNmcSVpLRNoCol7a&KL}=l0kYL27b`MJUI~6(c0bc8PLZYF&ugN4F zb<X8bG1B3KB*0cwy&z5RxpA7Q1!Kitkzv-EcfD|7%FP9ECdQX^ltNNK&KvWs@BK@} z@+jAps4)}2s+*EU5xwcd($N}TS-B#z093~7+C?iq*MZ#*n7KnjNh~aDfPk(Np=cGK zt&<E(t3Zzc)MR3HmM|H?T&Rhh1;}(=KScljpaI+?TXZ*zpCqH#XMDZcy~Q>v``nBo z`WgeueD-o9@>f#H$g9s&V;=y9OX}`d5=i>N(i;+wz=;fS+Sqr(T;lDN-+mBIBKb5g zk`HIq_14rte$ru~+0MRCCI(brgR-KEo}Hx<QbQo+gfge#Mc<&1v%yT1c;zA5KYvPj zX-Vs&mvLP$d;6!4{z^2*Tb@UjkhYbenWOY2Ggilp;6vQ=*0)R0K^HRAu!#NqsboL6 zwGRg_62}SOT}VOKbUwf;y{B2G#n4_s#i3fWRDA^WODD`e5B=<@PwIPE--vX~9lGX7 zi25P73!?+g9lEE-Lkc()0qUO7Cai)VNEzeu8tVlTSFH#v>4~xq%uWpgIWlcxIlWX} zb-A4=1pwg<>cN(i@h@lNN*Dra)<trsSs?%;l6!{P@1y;C(=eGXcOVoq9`(NIgJsOt zvtLBFl-sX-5pe*(gO4OKvMC)_&FTnckw9VvCa8HHK)<*<b;Ls8ltxYpyz+Fy<|sru zpHwGi1i?$Qz5^_d2)ZY;mOIAGu)qE5t+ff8FcdT0PTTgJsq72cCK`jG^E!N?YK2AJ z<xgqA<n;qOO`!0&qb02s23{~X(2w(u^CW{dHQbviEVo;k38_P0xP;)<r*mYv#NvpI z0r^V~b`p|)2u9*J7WF9CR_(d|O8@=P(AMccs<+~pvP3+&iDM~sa>5Cr=0+r6Xce?| z)8V6yn9?TalgYj3kircj=N*w<IZRk107|{#bnK4XfNvE~M`+&ug6y0i<XjCnH{M@s znbC{m=Z!Mm-jMmZvQb%@uDzo%mim=co4WzbGF3`;apgWZg7hz{U#9kX@B<7)uP4Tb zVS6R!a5(Uum`dv8fpI8Ck$|RtfN%5s7AbZ$m|01f9!0c>P7waD;|`lT#vnuMi^Qvm z<tzi6`q!c*kD!)wm3HgMx%n`urw1@Fdg}|leJG0MOJO-RE3PI8(j>m1{kh$T?WAIb z+I&5$&Vuv<M-t1{H^^_xxVDT9Fd>Eod9l3MyF1<ABt6mg775Y;p(hXVGxnb)0v1nT z;3Sx;KQ?g#R20O=0B}kGbS}*vg~6>^wFEUzzrqoL=O=GKu=Llf_NiIaX!0$zv!QC? z6F6�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	KK+(k!&_Fcd?!^L zC6zUfgLc!OGoHnidXXpk&!{Un#2^bW2yEJo*B5OWf#Bk(r;kRsD)7ZJ6hhp_y1X8l zVhmS&_w{=z%zcr)F6Y3op=<sA<|+AeAiZ;e2S_ci&Ya__4=oa7;6bm5RwC!Gp){tI zx2fMz2~%n3wurunxE_T?4DJjE4^lZ6-5)K!UU@G@hvi>tNLS{DWoOf2LWT&gKJE4^ zs-etxmFma^xPTQ2sKtX$yCLA_O2O$#>B~ZYk)ou*^;BrYHk2C1jM@1-{=i2f<_~xW z#b>UlEmEWz@Vi+qIS}png3iqYQDy4U4{S|P{v4xWMpmY{Hg5E-6nfJndaL^vyeGWO zU1u&K%BO^lkU`BkYg109)C(36v2iO@40pkU;Xb)k|2~fg{6=~P><Ce8(kiTRKYR&k zaslwG5EM2$FLq4t0ZCm`z!gb_+1AWDrbE?$x!}YvB2@IQ6p4CFpA`94TC-XPH-&?0 z#qi#|i-=EqryS{*!Y6EWSG`gHr0W-6J{qES6aI%Go1a*}Q0((y{+TV1v%QZgD!e!^ z(25%H6RUc-_4r*Be=e*wBKX|9#0d%aDo{Ct4y`{JWRN`_6XTh_d)l+T3)fgA{??j6 z+LS3q2|nS}VI46IQ*QO}Ad0ow&+Ru^NR|1z@SEa-+}rQ;Zg*LRL@s=G&x_WnuTBSk zqGoAubn4RlNqUki{-!#<gut$at#-;cMC{FLLh!}otLIaaXaO;g>u=bvw@SUJ43>~? z`uB3P&@pk=<B6mBW;bud*DEKT<&yTBY6<<zr}AG1!rHZOG66!Q2Ow>eW8ItY+FlyD z(XcDQf2)}6N_1Z!)Lm}VwqM|Pfd$8>RqFiKV=Xd5v12&{1Ap2j7kFkh)PVQBCP?bu z4MbOO+?cN$h09532-?Q^wT-qn9s>vVx%(EtN|^ONAU&uwq&v7Nc21tYb9ULy`udV0 z=%MwO-UX%S3QjQ%1NTvlvf^Xz>({_nj593XYy0@%fFY&lknH_WgRn+UY~{c+orVF# z`}u5Ev^=UT+~+e5!>5=h^srGQf`*VwO?v;<@i#UsCi_~o12OY$)*otHtunt{55%Wl ziR1Fsr;a!Tcne*C;s2WzZbOGj(Ca@G!z1YZadV3s)5`MinWfQfNfC(eC@LnWe6hJW z@eR}6Gdj#BKRY>J^)iotkIte*W6g&aNBht45~Dq7^L96%JMrfabi(<s1G*`mi3SyW zG2&!lJ$yNL8jp7~5WHaT+SR~itF?>O=sj}z&BQQD+Xl*A`&ThHpi+=X+k6-wB=vRa z+`?Fb-Hp2;pla{rZZ)nIbxxyiHZu`|M+f7LvP8BR)hIXiR$#r!KC9diuHSH-hOHf} z<G&SMaA@?RZp(9q!A$%sp%}dlEtTW0y!7TyqiSA_kgopb$%SZ4LW@CBL$&=eV~i%9 z;RShsN@m&{r?fY|p-QFf3yt}IWdU3O%C0F3DIMl@IbJB$`E@9>e2df(UDVywpT(Hc z|MU4;^^%%R!aCv$yeeoSH)4oj<|<n?C9#O?5~s=_b+EQ#eB_0f;l1{#vK%|P_K%ay zW8LB&g<Ln@3U)wrIz<4x$)4(utAwo)8Xo81B(B=st~;bLn}#`Wg+5R7a>heExwIt8 z@*pE`+_r>z8CK#3(guw7<rDlHS+KCsurhq`^^Fwz7UpVs%bjBw7US@=VHF|Wv*nN# zbt`98H0s;AXV1NCb(#yubN`yX$uAlA-mCl7Nj(%Ksg)DFMaWV@i1KCuq_S6XN^A2P zGFM7<Ro^Z4_65zqW1=zwO7BeB#QGsQ1Xpi^p5Pt1!LPagKdi+39k~oIp*3o_-$t-Z zs4*oCp=5aV#~f9eY@`pKRNK30`>Alb+7S^pyehdfUI;y_COA0z#Q#?ylE2sYSK@la zT(HZC=OZz0%=9MS+U?MIeVJXbHb2IULft=Z#+<bbsGZd9>ErQQUB$$afkbu~)8L=H z+<tQG!*_#K2c=YRx4-jbRciCNPvBa7-rqHPr*gDezpW%(Yt-krVrsK?p2W|vms_qX z)*03=J30vRsi0u|?C{R=-xitQHw-R_bJ$jNKf9gbV!S-CYT59lcbbF?NvwCJ^|g0} zAWF%^3<NNE@AWVqSExX8ON(#H&oJHtY%)ZP?QIOKr*>@mM?KtCj!30D+2Op;oY?yQ z(^RLii){?w&*r;BH~!^pwFjNLv=W}|sg|Aq6oVx@oiNBGqn}~DQ?Gkmj$hlzcOTQ( zXuL)Szx{yn9%xlrJhqw~B;=@6Z#%Sa8ck$2-r^GCC@@Cvuw;2t4Nn?8Y_eRuJHDOo z{wH26eUJQNM{<G4V&WSoR1FPnJ+1_mmUq%6u1X#^taNFw9S&x7`uxtSx*LU6%f(}~ zi>I#I-jZ7juGI_vA;sW_$7y`^pU7@sLU(b4gq}G4GiO&Lmxprp<#lx3w9)5(55CD^ zEiJvpr$7}IWn~+F;<brJrI1?t1s|TSM>L<<{r-Kkx~7`#!I(vEH9#r8cP$45<*bnc zfq=RbF|u_}VR%w-LGLJ<3`fdF4{~YYQ7tW(3dmh+KHdRi{lNWA+9dr1idSD|Fd<(G z=iEe6p;PV3R5q&IwC9&K<KhTs`T3CY-Jl;*_A#}1Sl9}10EAa^<{c{qjPoD9M@SY7 zmtD|Kr}*wk&=OMWz&`k2fr&EuwKVR6GmWL2Pg3%2C@vxNP0_DJxr3l>RZyrUxt!TX zN~YHbH0mr->&RtT@Nr^aydFnrptqho>9Q?R$C;Vq*V`>>tCW7;##U|Z(^GgCTl7B# znRm~qA=x>7;PsVZB7M5hwH=z(*BH8>T)b_Ux724ijqik#H^?2>Mv^D+lg12!#VWj< zXvHHu?@o$SrDT{ejYPNoEyydbz3-OH8fr>kPI8Y;6wVX*1BOJQ!7o|YMR$?eiMwPY ziIT5IZ{f6+U)7TY3Z`l<FhloVtm<cilyScdo*vw94&sNgFX%k*Z-N_7?8?Jf@5g<d zbkdXfTfU}ZuF=lSohxx^Ztlypshr&6vh8p?p#H<xLzN3jX_#{MgaxdqX7_wHzOe-s z{HrewoO=1~P$+b*`a3bp4`k1qqQ^EjvcMuC3R6Q4#3)lQdyM3ncVSi-JZy#c?n9s= zo=+SStUIx=i9!;t>-xC|2d?KuHR{f6YD?Aq(s}Z2G{emYYq{dgs!cuqlC12@Y~b+t zadi$wlX!|FSzkDm#1O;6Nb!f5rJGaO0?PiC%v?FQR>kl=Y`1U@e5~DXDbh84{9P_* zM>y?tO*DB;ze&_rEz^}kg=eU6JeqB!bs$w4yl{F%G+Tiw_z{-tm7?3XcixI|u%r$c zqUP!=d#k8zGzeIRA}U##-ub#v{M&0&Og(!b`Y<2b)K*$y&c}0J-%xY>MKUcTjyRoG zp2bB=F~<R^$u}0i&us?$PL=vubz+4H%RCt#W=rq~H>8|~eiO}``~EDql&azv9alr! zTNEJ_au;vTe){G3X35?5Cy{D*uYIVtuy(9`Q>R^jp*t-4{HXfE(e%iq10!zFS8nCO zGqSpgm#LNK&D*#4@m$kH4PnU9V6k@7Ng`C4{Ju!2hf?LuzyL`ngSc;HYWkAbh5`+J zT{GBlPTNx%{)l%Pv(4g;Rk)ZL?UMU3eQ~EUp3hEe9V1T+jmLvcT4@nHJ)616ZV6Aj z*n_$aGn;U8jS;<<4Zp?jDJVTlU5hi_@cp$pDLGP)Q)!{VHfkoYXcp*__%joev-B-a z8hh=3%FMC;d}Re%G*RZWhmNghhB30wURm#Jl*-?(7bL8SrioxP4GVLUkh@zi$iGlN zmmwL$nFyx*csuf3Fz*yY8>B9KGcD3y8L5ZbAMo$(96PxA;=OswZhPdhKXqgrElU^m zBpH%>0y<Y1u{IJalbST)!tK&wVcvp>TSoxF%>e3XuVWZYw}QVPIP01OB(FBaMSpyM zSoBpn^<FxpFxfur`<?nq^T)?^`+CckPjEUnsWp$sA(wU@a~#^Msq2LtWPb(CaP$NR zLF-3SNni9k`tHcX6z{THWzYPJ|9<Q`ZJP|&m>yZ_ed&5#VEFe<CJybJPi@TpE@CMn zGa8<W<J(<5loa?3cjuYq+*H5GWtjZq-JaYWYaUPZxjN#Fz{`E03R}4JJNldQUu`C& zL|*ys7xzvd)Rf=BJpUK<r1iWIF&K-ROV14wj|v~4m67g!xX5Uw6^f$SEF$6Mqmfwf zLJ)TUh1e9(wuxzRv--KhwUz#Xgki7N${Xq(xi3kMLF91=QZ4=3NXV^=Ccm-A*rRG$ z7jwGvRWDl#hu(N&EqtnOszp{T!HN?)_SHz1E)oY$1i*h!7(d+7x79lI^`CJAp%ja> z#7L|FX5gx<ePB*FANC$SJ&il1Mh(?oUNj@#Zo1&*REe!~r<812;{T*XqJ@H;__(;Z zq?F?tPn2J}OAbsizq+H3erW}IpC^!CISTLV?sqckt~RtLgplVvZoi7ZAUMXG9&xRF zGj3a@1=pnqSexrnQmTw%{tO)u{!$g9BCB8W%h3Ne7vr~?avS|*J^1YRzLo<9-lzis z@40Xa7{MDowhK;mVXs7)v&cv9gvd<9l5I+`uNePPQ9Y)ZAp2;9*;^-F;LKHECeUG@ z4QoD+fnPiS0Wtp?8#A-c|A_kpUl;r>JxzklKE2Gnu`zxLbsX;E`Jb(a!iMX2x~Fm4 zn?zn$I#ql4T2%G_gnm$SJPI6>uG1Wmc2x1YBkUL>wFZdLaH#nLy23@wuHc`x-;ZVJ z?d9uIF0(cb{~kwshf;j<>oQ*^mZNWs>>GiB{3O4xc3<fl!wxw_cp;G$FtAl*{o{Yx zHh30sohG_)_o=!afq(*Z%ig?jZF2|L)FoF}vKbe?*l|qcbzWV>16;1mDMBvSZI56^ zP@7R|BeMLf;te3WmB&9gl4T1)^&Wxq7-y<Pg^iozr^BmZ7|wUDP#z>Heo;jVy{D_F z_sm6Jpel7GOXyNr<9kKOm-z_1XHp2e_Q16I2SOJ+fs0#(NrVD`NCP0i)r*{?ydt}z z4?){w6Io`(-qVxw%XhnF@&Z%n)99jIA7Mw}Kp^T)ax{4pWrP?M;zkJ%1l<?T+wOfE z!w@5Kp)SG9wYH_w&^jc7`a=k;s&4(>oA1Aotfno++ljaE{L-{hpx2KbjGC}mrPV<b z(OESg#|GpuECr!NgOxobSjGN^KLZB`t8ZyggirC2E@rGQ2lu?m^gx8Pp(;0#HuW`* zB4vSV3xg%$a0(&;P?4fghMB#6U4ui-4KM<>IM%+E?&sfK+xiU+izTPm=WUv)-A|uZ zicH205vJ_=zyP8pvV%_`=MU7Lj(`&NhXQfBk?k?diZHQDUS!FrZtL^2zrvq#*q~w* z!|%ND&eO&^M6kxbwo<g;=8L$)ee;khQ9b1+q436tX;L%HthMiuD+Rg~198*C2e0T* z%u$_z7_*)=oudzVZ~}(DfA-JL=v|qSK0Y@bq*RjL<JUfW7bB<hHR?TxBSU~GWiz^( zE;uq1j|fUPXyz=3cBdidf40{o%i2Csm{I)qK<l*nIE?5|PqO}k6VfjL0PQgi39@J$ z2QdJs+SGp+N;&v9hBeNTh`u_IeI*Z)$BwcB5X|C#*{UD5Z2FY|n|HhkI(E+K=z|Um z`f;(|*g~~Y$_YuCHRi`6KsP6lX!lQ!oRWMwm(|b1S=#lq0jYdT5eqBuxbn|p7(nD+ z4wUs3Z2ZXy6QYoxqIC6fc{w<Gn@f9SbtAUv;Dx6$8$Lz$a2Sn&hi!fs9v&2x!Dn;I z>0Qw@-_zf`B)C=1eGct=t%=7irWv#w7a-~=z9^Nvu^5gr94x3aj$MSeM&(nW&!`5U z(LHMO^Z#Y^&13dlkr)+nTDQd;CVy(!rGT0<p~YSdc;0M<r>^?qO?~1gscOY@{H+y+ zS-gU+olo>JY6nEoqI(K-VKo3h<fQ-%UFbnnQ^@#)&eHsZz4=vW_B8D&5ewP0c*v9m zZt*>r+<DfmeXhe>22oC7TJ7G~Gx3NW!bK7~AX8Pbs;~+J0(A$*0u@9$&HlAy%=-L# zYUk2zjr*i1;beZoTvOLkZn}u)<q!`qB<V6py-KrF&AU=XM#IE3WkWvpf6E!;*Vj$~ zedG+~nqHySe|oZR-Kjq)1y!=GQ?Kk;EJ@6Q=eB|GzdK-Uu_2TH-r_0~+B2vi%5NHV zMXHQ}d)Mtgr$<><!q7ydZ9zNzMnJ*iwqgi|>Q)fgN>Hi7?>H-~XJ^&aRgT=P^~<+6 zbZpmrbsR>q_Wjoa&zSq?Kx@X&1<f9b;_t;3<P4Hu6TuhTm;n_&CrIoDY$oPM^ESo3 zg>oC`Q8Yde`7ijNGkM<cX;uEp__F6nQsbT?Q3p}mOS*zb;Ty(P1PNC}stmyMmh%-e zNrS3p$M{R})vi0gj8AVDOTth})2i|V5c}oM<Uz(3g{86x2zjOe-v4fojQ8INAc#yq z(}(}uQLkYoXk7@f1dFq)^stz3zkJ_BLBCvZZ7}x>cp~0&mvxVD{iXba7T3X$9SXUT z8<|6291mYA5x=@)EAxZSBl*qd%LuWIP<hvXE}#1_1z4-^JzrP#97tu+P=VC{6Ctp# z{!fI^|4)QqsxxJpSeTq!T>d*fJhHGWE+Qr_F087oaJ;cLJECkd+qbj)CsJ6x%vD2c z)u$jdS(lgMW}Yi)<BXW}Y!Q_5CCp(G)gB(WRE646uGQ|JTJN%Z?6L6j!VY*m+FOPc zrO+!Z0M(k6a6$TOI5*sH9?sVMg$R~vS(!&kL)4o6r~>>RSXntH8y~!nBbfO8TnDzp zZV$5}5W_izeuWRh9aMrua8@*Nlnay`>M>bjmQrpL%5CGN?Sx`Cox{#X+DnNH_TL!( zq<wNG(ABqkLORETUwNP@bW}5xvyf&J5j*Zv^&^Z#1Sx^vjwVZl!Lf{x&^tSumo8!Q zDBJZAU%8a#Ql|d;Z-@SnR9K9^F_b63TIo@z@(D19jn6=8lP67S6N@`b7_Tv;!(Rv1 zgs7TFXIbSuBl-#DFMe1`F7ArD6QWxkSEFAN7E#2fS+0;R{2mFNL8-bQlfW}K4!sEw z((ET@@wdP7SRqa(h2E068~UT|Ema7$sSa;=a|1A=d~Ck~OHQu2f7&c&FWZ&lwUC{_ zJXKJ8L?W&+)D$1MpZL*=)cL{2^(VY0TuV*+h)~k@xMH>kd5#_Bnya)!4off5+$c(i zL>PrE>OWN7(R`QJ!v~v9lK0{A#oXu2BP@?@96QBHR!q<n3;l*}F+~R40%1Hg&n}?{ z6>*%rA>G!VM9ksK*oSPatf^1yOpnE~Sz(6|Iu?vHK;<CbhU&bbjdbYQ(*Ce``BoJ$ zb9vb|(DZqXH*xb<=!<q=)GU_5jUj_mI`)lKZjd!eKAK?q^?H^hI1~n(DYJI>UH^@( zm_B%rsDlhUe4H3eV;r{hQD<iDl@#awt!kB$6HeM<gFnGfO-5`#5-2p}7!D;idX!e! z_4e;$8Spm=rNq#HkxkzG4@TVSZBfRwvs`%pdWZCDmpkd71G7j-#HbUYkwcY!i2V6* z^eH5v2=VG_7)6TCRqYQE+;~c$VbkW&8sm-Ih`f|Dg6YX#8l2j76N0$`8MNicGE%GB z)$*_4-uOKZzRFsieD5^yn2kOxP6~W!J(ZLKrw#k3+Gw!QlZT<R2P-NZy|fGB^Yg+D zbHt9^@76}QjGPvOkAE>9zip8)D|%=u6U!GMgR*7KXt<uIb9w#C8`DakY18^ww`a3T zxJ;&MTsTvH20r-bV<;)2R!_UY0m!i^LJN7NnH6!jw_DHa?HhTrhDD@b8%LKexWtED zFUzx*{bmF}4&j?BE7hE=b5&%dLGTLuQ6K1QdPn}3JIT^IP+dBwnsRUzf*w;In}tU6 zeZUL8+G|<RYvUw<xW)(62wUvWW*T*~TQg~7*KBHf$Eb|1IL!{>nR_a-M>o-JH)CG` z7;<-K)o9SMotz`2V0VRO@cX7^T3!T4s*Ej}@U*h+7M+W~!k~{Pthnb@QX^wAchL)< zpY*pmk(etD<#DE?7S)T(a;HPOD;pFusil3G$8|<(hdx`7jtzsbmuy1j7du5>2;TV$ z5rLXvL8aY!p10D~<BW<PFW6P#Dgemjk60xY86#IAYD##c@oLb7CLO_H^N3^}{=7~( zp@Q}r{tD~|DO!im8oYlI3-D?F@VURw)nRR$17cr#pW`>B=#5{kGt8`52mE55u{x$j z8ZB2!`%>jsOrJbU5YB|99c@8HJAIaHxRexLR2wLnXJpzRiiwuijzf8f3?R+FpF0Sy zAuiOe1>DV->a`7h+n*46@URTif9Qkj4~Qt;S#J{a^D8FX_^Y>b^fR&7qG*cZsALRo z?0^rkccmc7em1n)t*9Vlx=eRa5IPQA?h$-*H7A<e#Gong-})qnko;-QvxG}%fpzxe zK5zBcpTuOXc?4_TC>!Is<#k49oQZti{!d~+YBrFoHzF1`-<pHhnbrOWfnDoqh+fD{ zL0Vh}{)=js6I0<k!L|hB2<uNS(yl*#Y<BVTSP>f6lG6Ek7x*ZlWO|8jKNjM4t;{<b zEg&8ebv{K`wDjFcb9FCAJ~mByD&m}`{8!-*p}^PIf)8P<^hU=DTWpb0>3{y-)cW9< zHGAfiRD8S1DE%A#&qrzW&zzkWzKmk`Y!dj;Ff;->2)x`WBG#H=gX3onSKzegUe(^V zXAJ9Uk`X2wCVSaaMrrv<eatb*rk=6q5*kkq&m4slNv#kt|0VFPb)5YOf5%_z!Z1!? zgvpZT7jy~nt*VAm#8|){vr?+qVIhcmU&!O73Z!brNGXu6{s6?!f>b_6Nx^=&F49*K zR4vGdic1mM9k@e<-M$JBVw>Y-)~E+h+_>ZQ96iDo=))r4U4C}RCL&?V<e7f(3Sm%W zT#$!3j|}KxUX-zDlzz8MTjIVhyfq+kSN_QtY}`p-44ngDq#*cjqR!4gmeJy5%g~7( zSbs00o2fJPZdD?zr=@oSz01=0cYryO0Z}s8or;4jjJ+Et1GEkJpNi}X@04Wqefz@U z9|!BIe^hKO(YX7MCCEU84BI@fNJ5$bKF<4_y3y$g`dOb1kfL0cVJ(-E!BFyC%g4hU zt_N;}G+(cl0Ko&Su-(%gn0i{g-BnAOs_zXces*>;Y4?-_U7OOox+NOIF7+BWa<slj z8VI?pRO<MTeyeEl;6B#sGIvd3LKK&~3g^`_@#&(W;zvRV5ljx<I%ik9Ba!_6E{{Hs zHOrYV@7Rox-1eyyT<|I*|3;M?!L~)I0yJsEd9)$dYdgnFg2hdKqDQOX+18f??sB!7 zlb*M1=M-RYFQ&|HkDOu-UTJMmPY|E6GbCh&V24u9Z!Ss1mVej^(kVlnMxcm`R+9Py z@2a!_z=&u5Slj3p!(FE7SC<nN0^16W#z^I3rO&jFC*QA(y$5aGF|X#LXWoY1LYh@i zXoPeXyswpBYm78_JKY=2@=&ikX;@>h^xN5l>|Y8z#%wMDV1@?`(rn*6!_8q~*$p08 z#&FbSKk|-KYS1r6agU}e4lUFY0m5>$imF8Olh;&d2m_(#qW;0e$8-F{@e8ioCZQ%; z`#!1#eOy2&;)?;(bOC#6bNJG*g^ct>MMXo;*u^(%qDX$-5E#M1hO$R%<ms$^z8!)V zo3|ws{_r~-Hz|Umt<tN^3z;Ep0ccO5L11~s3Y1ke&{FJ<;LFo8?q`97M1|gVd+x}s zI))KDAzl^lz<Ke09o4_YT*Mc>!i@};S#9^a=OcgJT>5c2>`rNt?ktv%t&AY7)dE-~ z_$6=@aIoz5X<8&O=QLaHZNNoo<7V`eXU^-9dqg1i+oo2=WGbc0Z^ryx7sBMZ{74>Q zVNuagWVGsV`s1)`H}UxqJ6T7V+mzJ9I{bA;tRhlXf+4#mOEs0w4qeK-{_m#KKlcj< zRs8bBBe=w4SGh$xn0^_kAJ#}qU)&0<)aq@B2Km|B%m~-gWbXh%POuZ2m-Bb_St7RS z7!Gb@j8<=Vh*p|Dc=75ns_s}#DCW8xQDV^BTAw{CVUFV>w&wDXjgL$r8pvDckNyy> zG7SCGUg648lTTkC`zfRNIL4xf(}+g-F0%tz0uY3jf@OqtfQtN`?^E)P;Q2+LzFZ~) zN73o=-0^V}MZ=sP)3!fecS;qQ`V5uiD-8RGccEsRa#74}pPJH}oz9pw^I`SBwy&IS zq@8<7r}3@qyz@%_kib_on0xfX@p|MnHK-)0!j5vN`9dwY#ZS7sZTLOP-~7NmX<2l| zW-k86{OMM<^6Ki5ORsNkS%K9DfPlVTMa?HAXC?b|-f>gp=il*Pt@9nF+;*q2_YVrC zosY{~=q+EW2Qjy~S(@f@LmzlG;6)_&&NN3@Y5Sxnp$yNnDByAFbDMzI{^LG5m=-VZ zU6;IQjZb=(QnB|H;P^L2BG~3NeF_`Yl-=^4X37^hHEL(r9{uY|5sV*LRX8m>HCj8F zayWKzd$rlcGOpy*O+R8fdKiqhmGEu~bDC2~P!6Zc86SU~H@#I;&BAJLX}4bzx=Ckl zkkFnOn_#c29c?oR{PKoo$NR7Fc<!sHg%u=}ycWDaJ5`-2SoDij><#i*Bbxpm@}}ze zjs|+*4ZKTi&8`*0IL^7`ycRlD-NhjkWTa+C{f35T0G9GSywo6RZq}52MJkr|49&Xv zi*zSyIU{9;x>xI5yv$S5Fy#XR&%ut*>y0D<#-qqd!arwt5KK87%?t(0{#>%2i8&kL z>QF1Ie=QR8)KA0y=dB}0&Nr{q-_lpk;zIReH6N&V-KygG>F+!7px#>Vw0`hDP$J~J zPx$HUR~7_XL+N?9y;Pr()5w7nwK7Yga?{#<mdV3q_oobYo_bw2wu?m$xi-$#>rHc8 z;in?nTVLcD5yT|J`t7Uc1r;tbpx-gXg-hY=vR6Q1KW(=CyZz;UVBT!1P#2y?^Vq}- z!q}ljYy`RF!u+lCOP#4RGE#aXE94Jf5&P7#%vhfRQ+oD^11ZPUJ;&CM2q_40G!h{1 z2psi*m_Yb+JMFUxE*{5iN$r>)h8%bc|EWboaz(}@TbD*k9|IP9H;Qt{YEmz}a(C`| z{fLQ~VMh{RpKN7+Amv?=!?uU^eF8nb#ouVG30Zn!0IYxNl`~U*`?;35Vz}kHSk&9Q z20*}xQ8+(&z5Gqx8`yQ*lE+@pJZl3F_$Iu6X4yZzYo3jXY#%S<R_K`ZrobL;-<*MB z^`Uu!Y47gWRQKYu4d4wn_#OOqa!6}vHVK*|M}Z4CFm-H5b0uZ+(D>^X+V9<_RyOsd z!&9Nl-M|${kfPJr4^rAnUJ+KoWa|N_t_;B=gM+0jpSuOh4n(rEqdU4EZ)ZNA25tVX z9W}^z*V3Nj^mX#J6jR2Nn!mdW9u+9g-+Q5(uK>|@#2l3HJgVEaOsp80nSNlsp^XKo zBjON}$j0E}f7k{smTVtQm!=g~XVdV#YqWx2OU@xRn<QE>3hdwN%stOqz8=aE&!yA7 zn!(WclCrt)0&sow*Oq*K+B1I{3Ho&33wd2mlfzOQw+7BnyRY0DWjj4TjfwSr-%o-o zqdSFvH23n7=$i_UTXx^wak%NR`w5QP4>I5?)U6Y6_4y`K;=VLmWJC&v#ZfC`m2_N? zl-WT}j4E`DqYBTze-x_uh`<l91t>L|`er1@c!icp^6z=SU_A}Y)cQ1au02fe&joS3 zp|Fh;%H+l5Edre%PxKg8D2Sjfa??F;9cLZZ)X^Zo5pOrgHq*^X^xhD0jY<qrU6`YD z-yyk{P5_@we7m+(G`d%2eqf*twvl&dl<abdw%ajm>|mhB6g^LA{`z2j35NQ)VrQ*@ zTY7*(pUA?kD7pfzxzO{ja8!Hcyga|bySjce1sA)%(ihTLRkBY&nwi+j4`<5es^GGJ zGSVs8>{NUW;Q@-)Wu!Y{9w1NNhDZY~pcg;#63!MdJJhUqt43qVRM3c1sHX2q>rDaY zmi=wc!!<rlhQ}8_4}>F}RBdSbD>#bo9(ZhXAOK3@&;(st<nqIs6YyoYaw{@Tj_l=y zI-KfIbPG-TF8+NifoaD0TZAiF3aOkYiy{cA7H5r&(i(WfZJP0-9D&DC!y{NV1qqMX zMF4RxRT?0y#Qo;y$h!_IhzA?sEcOQ<>5fceg&itw0^5Sw^=tT6chZA)HFrMsNAmf< z=Xif7xxe2WDj{5j3f!vH^I>^-XpKc%2b4DvA<O@&9+Us4dKf^{F6vh?9n)0z&(Z## zUwvca!=n@96N9^A!V<zFVk&Y+bN;iZz6Ok$a}GOyZ|FVh?(M%YGW+r&ZQ50Fy#SiZ zyslLqrm}`s$xFL2Q2hYtt<M09Z}R-hH+S+Um-y0-W!hYApMBC|pK%?`H%>zPTze4G zbe!PXs}n=_Xuk7I*K;doi%+T|sz)?*gGQlF=5vnucnZVImH6fzcu<8z7;7@F39jRk zEynF)){k5Dw3f)&zPb)XM(sa>|Nd)>oxelNu#@WBq{5qAVZGT~bx)mzN5zJe_wpU1 zZBC@jEtc>Im|{>lvH&4#1Mh^%1|%}00hEV!QW~lu`tZ2uvRwPEmCF-_(`GI$)fwO0 zioZ#!831_Xp81W>jFv?v1_zBT$BHLm<?O(Zkvp$fm_e665uhUrW#{3hk#rkKmgTx# zboAh&lgr98pwqPD_~g&PH2Qm8->TnzU}~9)aE>kP31REM@tbos56$VZ^OPJ6!58np z?jb|df{}H4RE;M(B!M0x?mAOHFW`8+eTV9nG3<`;2v{tq!>_o{!l5bhh!c+(#*UwF z-XRNQ3v&i_yz$Txg!o8+50$m7`;tHV?&Oz7;_2@?v(v~F`$w-=%@+WAr#KPR&BuBY z<O`-~0>)lzc8UmSklv+P(=*KOnK1~6s(KE?z&-;EbO_}$wjYhW$a@^r*={f5GJspA zB8$pg;qal;Yy7>K*OrGNS=cYTz#>vv(N{iO8rbbs$-Z5JJvqv2({ex;w=RZ6@9O%4 z(;MGtck2m0U4`9-F&HUglm3arb~PRFG#XGv;i13ojKQ+Ndz`mwvE28W<cOEYBot=_ ztb|Aov?|Co&gmX_7wOEkZmRjk%z}AOa;-wuFIjaj(sUmVWC!&|9X~ee&>b>};GoOM zw@Oy}^}Fi5eU}a;NRNVigDcPbNl*L>OWE&h5RgXgFJ*2mHBB}f5tJ6%v@sGOE*D!$ zv4UTRR|<)89}I4_x);dob{hqPtNlmFNA*kI-(bA+&7`}sLR0p-nC9_k_y6P@!A`n} zCj4-eopM-kve!hD=*|ohcFXavp$~Nhu?&^y$&ZtaVs_48=z6gybwShXcmdN!miMZe zc-gNBStwAjInA7}zDPHYNM8dI@i*gcmv4p5;^V)6_=M)~6{82}Vy3r9&6*>Qri=en zQ_TRKJ+lz8VZ=~fp)tshMGXBVCtYY?49Pg+4ZC>rwLMzajRUuuCLJcnZmCQ!h6{T9 zndIaQRNG#;9RS9(e5_w6df|)^yRd$S3yvY-hr1AL9W3QWje7>ZBf##w1?Yj}18W$E zE7JW*pgQO{-?<II;j!L>xOr_X$MgOhvGvqlVj2jMd&-{+UKDf^WIWDf-^Baz3WWzl zqCuN+&cfXXT(lW`<u>;j(|$U`Fe5Wbb<eMB==l(Vs;CID$M<4=h?Rt(Jrm?DkIi_< zG54(;Ry8ZV%w{CodhvZ^B<9ONfqMlTXHqXL#O`!AC**O5z1)@gB+rMfMQIfUc;{;u z(gjIEq;%VbKN7u%gJT`41>fs|ll4WK1xaf3BhaQRy|}@;u=8K^Y-aDcQ=AAiO_E2+ z1F<mnPCE1sA-bXBQ&_7x%q$3o`u>L~fY!s5f_8>vN_i><A4>q>Fep(e5F+Q=;VXVy z;GM+IlnpH9SINaSB{MaR0TW7HhOcD6DyCoWCfWFgUe8%4MFdA|#IaD}^Q*U-w?5}W zT+Ch436b(=D2l#YaidJUq~>vTw+*i6sT`4sUG?vJos+9qs>tNnh93lgpT}gg;b#Yg z`w3=2DVA_M7dkX#c46tJ(f<x{x_ZIo+nrkfCQcRb`wtP>dyI?fBuwv8n+#vxGaslc zcQArWF7)k~VTvk0qp#|kNo9`rpSc+j{gSOG{z&3QES5w`d7bGFikJfsq9K13#Cpwn zk#~b8)561v23uU0k12qR%1{^7=B~B_HE&0NF##?HGDQMolDpV@PIJMj;j^siTo&2S z0_VzZ%e(it<KAojh(!;~NBO3(64Ybn4_UgRxL3hy4IMf4TAn*c!72}0i9HpvA7@!o zdINJ{wO8e=02|;2_00M4uUB-I$mke$Cvs-t=yTjDM4?L*`C36hAxRgr`<eT;kJ8lu zydKA0weqOjCQiup-uslq@jFGq%IYyTy2Vsmjd%E|sbKhUDFCUrOwh$F-2H8mDOBuR zoI?G!+X)^T&OGQ=!=M{$39*776Y8}4{FT~hYGNlunehi$3~Nh0)mak-99pR(jvgJn znBBJR-L|u5ca|$Hgm6Ucd@Q6bRgC;rGH-*F_|XjJqUvr8d9HZhG3U3ei~443EZ|)g z1c_Tplok1j>+?it#f8gI#SL*cigjLamO=p*Ru3cK0I;*-J51Eb!cdWvq(F0^C~8JP z8%8gB&#H?0Ej&5R2}QI%gBbmn_BGk7-}uPcG0-r4jR;SQg*YF`Vj-%Z>zeOxHl}E9 z&G7q9cq%#Dgid}-47y!~KKP&tkx4KnSbkmkUpoil9lE^D!!Fl_kMC>{!kxeS!GR?4 z5XmDRm)>Bev>Ry{XnjUOb-0hEKzh?-+DPHCDLqeetysUndih^_6PU7}gYQ?9md5B) z7W{mXdB5{iMe+q^0^%C@DQ^F(!Aeh-fUUHiXgm>+J@S5?1sqUq1PK4TSz$c$>M$|m zn=`{F0qN}%dSpqDVc1<8H={U)zAL2NG)JOu<+BOl6bhRJ7A^r)5A<M_!v4pp=&;|_ zPn<#V+@w|+%J5m<{pG`N<Adi=81M4%v3wNun_t}#v1DHCgw}er+@$lg4aN8SUsWD2 z4V2&pe&Qv`J^O(pdAxbB^sz=P&-(24I-Nt~$s=V;^mNL2tH`)O7{wATHk-9qQc)#z z65jl`90d7WU0kuCcGvMaboD}KvyU$iqToqrq-6u(7hr0}1L#kdSG5cVoCn!(eALt@ z+G2`w2avlH-KtuUzew|-@oOi&8S~8ZU_aG&at}$?>-tiAlJi)wL<}5&2nBH^S%>b1 zl|&ED{V{&5CnwyIr|xSrR&Gd4xk8}+ZB47>K-j>Ms)taxKSu%TS&A)|yV__8eL!~q z>p5nyF<!{iP=Hq;dfr{xLsmm3se;iBI5o;!3WL3|&~JDcntY#smT)YY(E@e48GvCq zLia|FnX((<6!QdDup6nNhTF;nVtSW134s<Rwj=E|9N-@Xye?qEB4x7`Lr9U}&>Q`} z{Mc)GYcd{2&zSUuY^%H{OrxVza7&lSM2~*aJJ~$=YhX{EZhhA)w6hD07!8*SkrUoj z&<{(_EpaJMHW}Pe=aq27(m+H3Ai9uKU7?}h!*!!C6&<TnNTiA^8y}5-;NhEG{E^iM zAZ!>#@+B;*uO%-KnV|ocYYulRkA&aVF@xWo?yGDD6&4kap!3fo)Fxlb#pm}YMXpvB zX6CbgP!}3Rgg(OyObCBNo=@4Y1|!QqDxDt3PVsXd)p2?x<eKRMQ0t1*BWR|Wauk&z zN26HbQcZbUOF#Uy`l&WP$A&c`SaLM3v6W~sI-K!u^>C*T7jR@DQFw1)3xkOTFbZPu z-*xf#;`7cI>G2g)UB(TdI)nvbh0p@EeGeXCn}qo2wXFhqDo|fx=}IcHve?EsE=Idt zH>X0JWN5m}(71s1x@Ph2hNR6W$GNV(_6s4(8>cO;y!qAVlTYs8r|JTx*BJZ<$WmQ= zV)7mOYLXSeF>|gK_!>*{(2EpnOBK-axLLO?56>bWm3<8c{3fol@c>uszadL9R6sG8 z+#tQP37>=Vdyg)E!p<5%^e{#9*<Nep8o86_II(l0#&nhMg2IkLg5-S@L*g(53pHTM z2ZRucaG{x4`?kK~^>SjN;+zY?nc2bhnYgf+nY=JWEupxi{awauh!W~#i&ATUh;WMh zYfR!Ao%=)5<&&|}D=(Sf)=6*1#H`MH*FxDRPNGGRLq5TaPWJ=GVGH{O+Fkh2wBo`H z<gFnlRz$C-i+WtGa{_$W&GS+mD?$vbCJX>oL?5P?=rkW;sN4!b;B0oVCDgt;kb{a? z!E5YbL_2&|g-84`QtTzEUkhP`!wz@u*=8`0ZHy|d@N0kjE%{_F)o|$U1`EZ~=M_RJ zycGb0G+5}mHo2!rhhlYwdA~~tmUmQgu;_Q1#1S3feew`b?;mARR4o;vo#W~l4)A8W zP=(GNyDRK!Oa3XI)9q|%$h*9A;eP+g7CzOD9Z~7JgoDU46$E;HRSDK{u^0AL5sI3$ zRfM(LGEVIs;NlMszDGzn@8!t&VUDec(0FkgUb8M_0826Ak9QBPy3Y)?fEii3!2n0= z1_zeQ2a;FFux|~P<l@}A61}fR`%)c~7zX7Ybn9uJia)bU3P|$O-14A4%81?qND3qx zK`Jf#Y@xYJU4uB+mO3u<VL^z&<gG^}?ku~uu24?gPPyf5hwE6Y4i2yhG}s?-*<r0G z^<kZVpYBIkGbmoRO#QNa)bV#1nXe|<ce94)s4&>-Fge<R0-%)=;--JrRXQt|NQQbC zC=`7Cv3GOY3(!rEMq}6$<uNq63tw==6$elJ&rTi5Oqz+&2aKV(gBvg4-;Q?Ns|c=P zuexpOeW<#2u2Mw-I8n%RM#E9bSLa?Jh~pI{$WWe#IRqy-5eF<VN&Qn5&-_Qh$wB-! zR1mdxC<tFtmEWpwlHQY9Bjjzsa;$mQ-tkxf901M&wR1<a4l&nfdbM2ru3gil`5;d2 zrX+_ENoX8Xsj}bc6IDxTcxm35IZ^HlZDSBaM}h4jP{M-gd3MOuoBUU|>ll^$F6L$W z?LJ;|xtsM+2I^*Sp~MX)`K6S3M!0<o)efH<v;Gxtko~oWOfslj(Guauy=IFM#Q1gh zJa6-B$JFEhtU{=482q$VR)oI3d7kIX!5`o9V4~sLsaSiJ<vFk6%!TFOKQsOvU-IeK zJzUG5+Bx!aTVdK9Y_4`mU3*yO@4M%!K%)UGdtkBR7>FCbeSCq8)NT&I!OIiQhW)FT zo%*)m*M?ZfwM?~)CY>hsLifGC*xi`cXyta>s(DQ**Yu$&O^n`j$CCDwjQdJi$aO>m zK0;S_<PJu$@O%N&u&9?1dvm?<8A}>(L!R}V=ZfFp^M5)$A=4Ff8R8J*EAonRXS`DP z$|%_<Q_21pbv7a3(Y3T|XVtbmSoUrC_$r69`2#tbN2~Ow1AMX0qbQ9UJLH=v5<W@g z@|PJtKVRAiXv#41WZ2ljuLT&>&M0Rxrl1rRotS2Y*F?%*D%|NR?f6l&I&~+IIDq|6 zQ>TLE(%+@RQ9J*a`sH_$13ks3^*)me!SIk&$p%t1gw|%!)&QKp@xz#ulnlNyzlA3* zZOcxhMk)5s0Q!SNX72plSwnVzo_k+un&^W%na31?J6hbaOQ$&kbV=VnK4V{cY;rI) zN{+t$WmYGxwBQD%XqGKw+RfVVx2A-{x^Sb$Nzj!4!6f*#D1l#Hn&+CQ)<|4QlH@~} zcMpS2(Wzyt+N(<%j-}c2m*9Z1?7XDLE;mC*2#x0e(qP)0+A(|kM-z4|79)di@hGq` zhW}MGc%j`o^!hJMVhFt>AC|e$tWW)!o|u{#>l+@Mo*wR<oE#fb4lqBFlytxKYv%)h z>@#Dh^_xk@TCOIK1_tj>oiUa&|0K4Nmay)Y*A72tK=*kH(Q$niBVN1~tqSybCq=6I z#B<HgHcOl#$MoO3CMiqw6!vqEv`dZ&56j4weBw@-bzRPu=e8trbQ(WijQO=8vFqE_ z=5N+_$0nv`722ru3}F-dce<L}XLYl7F!ZSN2s*vkrvRm!Ur9wP!Vd^$Z?6BA*XC$x zEp}A7GE6EVf%4o_5@q;vwT{#u(DfOdsNu8tTd%?f&o^l(i*#F*c~F39l|x`qV<_7B zz;eK8{HyW;fcop$0=AZwX0LUvrmNBW6iz(wFM1@ED)(I^?mYh(NsltbK6(3qqS(TK zr00gmm^cIeo)|G6`t!3I^1Ka|C(&G^WS{e5<M^J6O2XeX2U&E_huT){tS)u#+`i&b zL1r<hJ&Q!zUli~bVW-D}d)m`DMZVNTT@rGPKRO^L^Rl>~2OrqM*E@OYalEN8r_Tw% z@*FJz_IWMLY`F4qFu^j;;-zqHsCbX!)jT=eL4C=h(D!asc8JkeaI7M^@ziPRxAric z#X5++(FINTP~$vQpgB#MpbJHa4|!F#I_wj)sBLF5M|W9O$_k&|m$@zY<&u^@`du0a zR2$5ZN%M0=?AvVu5tOuc_=XHR|Ip;x-mWZBJG5P3(f+KkX+Zdb_Zj+v4&~z)3p_IA z7E!c;_pvK%oodMUYVp6E{j7KZ=r2Z>F>-fJmAd&HimI@++FLw6WJNcT>r}RHzm@sB zd*Dj2`9DN`cR1B={P+Di%ien*+1Zgj4k?7tQs$vDDl263L87FTipna5icqr0vB@SO z>&V`Fujli9p5Jr*{yLZII{)0xec$i<{d&K~{b!>v?Jgw$y3=nTp)bC*+Nm^nA>}|r za3x$TAD=oB{<)49ZT~A@+>zTl!%U7~>~wydrP15_;}A`z>;gtb*0=F#8u{ob(b$Z) zzg8m7_lUd@1t>s)2%mR-Q!X1g`13q462C7x%JjMO_bS_9Qx;XA2V{KTVLJSIeW5qE zF{=GE;q`TSMTi5WM(7}{*o<3C!Ac8*KjelDyt5Dt=41YEKBs{<TB5fRmUDYy`%PaQ zfW<;r^V`n2O}9AwOI<Fh^8U-%FZ0yjKdoi{8A%{ECZVOR$X$+Nr%b2%N914OxIP9O z)Di>oi0ke_V+eNac2j`y=o{-Xg6|#(R*ae$?E$%y1;TS*nN^Sbx^ZY;A%mB=yWP+M zOt^FC##q?)_Kr^wjo~FET>{I<Z<)N)F?34e<;HIVH?7?G%{S-Lniq{a#~x#a#eU@9 zq@c^goTc0`#;O!<O(KLpamkG}&Lxg$`qTQ~H_RQxhx)hIhfDVC_eZjE4*~FG0g1Fp z)CBitHyY$vzNZOo(k9l9NnQxly5+U9hLZ7h@WEsEoT^}c-e6kzLUSO6$L4zowmLql z2*i=fa}k%Hkzre!DRz*yYWbpuX+b#|wZH1*?s8+ePsN+YY?!U^*QKBFIOt<YsmPhj zvgsed4{pnA4Be(a<sC)xSV|8f9{pc{sU_d;@(>f|Ly>6m*C&=7M`9HEqMB^Qt7)5< zn^gbp$fwjFU77G~ml=nyVAMWM_9Lcf;MD0rn}NVbltw;T?8?;APtX~l|C`f`g^0&& zBpHr$Q~f{`h7;r^?zTg}Q_735fZ($x#$i`DvG{6#S{;588ZxQ(5@pSAO!WDXm$-hv z{~rZtt+iOYY}JD*)&Ow)^bwCA4cX$O`(0kwsFlno&L^&>I7d1~nCx4YNAwIxhUt8f zi}usLanFP?EIr3V^7Q`bROFJ5`91Tw1;hXLA~o*F(5CoV`P*wZ-Sxw}<}QR}utb+` zDe)`ue`heGE+~^{9aPMEt7mHVFp(F5No&#u@^=rG944=-J~vQB$4Qgtxu1Q4v=6rO zcOIUd$Q801aU0>Kzf#7aT_r)FJznLyOFBVnS?}knS^>s);s|~2_Zfe^_97h|Y;5wt zBcN_Zy@MMAQ^H1>V$08*(W?&+8X{2KNcQw`%;}AjP`<=kLZOHt=oX;FBDxjBF0h+5 z^&H3f#`4Q)x3aGkwxR8D>p{T{QkM_&w*MJi=Pf?N)&!$401^5$b?};!Ag#~oYwDL& zu(OXOWuUtrr+Q{kceA04%PSA^6lt#Njrad2@sa8A?XmYMV#EDBf6j4<iPrs?=Z^b5 zI<arT2n6zPtR0VJRx74s!FN774S+q~>pBe7yBB-M><o|XL6Ke(oPB(;IQ+0`k9KBI z@-pgBq6Mj^<-L=s%O8e7#%>T)8+w~W3m!NJMXTkuf9f5msadpUg11~&beiDD0cgnF z-z2=|x0a?^G>+pyk6SqB-9zu`*Lhrf;o_SD8)@%@<Ol%if)KV%bZQdy&FVo&N8CsF z=woF17?odi5UN$z*tC}W^<B#cpFTNX?+E6^>Adpk{ii-6$910flJFIi6<5g*(1!NE z5qsfxJ3Z;g{E)xU?y(&zPjktFO!s@LUpWy=jz?I|$aIo%BHk7F`3CJhI6*KC9SK7! zF2eJ(W!MRTN>h{2m1?rASi+jk1HJ2wkOchWSf+;2%#yxR>XEx4W9&NEev>N%rDZln z-RxR9byKLgu6-lrXVIf`(tIrPmLigf7!pG({vWI@!B?`}dY-%b(vOGcb9x8J)CkV( zOyhZM&=ipPk%Ar_gigCd_nJB37W(Sb76FVsV|6`fqrY(=1PnLV6){P?oyOUqsn2n5 z%xP+^W@+_~QDMs!25UMHwC{_CcQLxHhwE3^Iv4dJXmzW{5A3nSAyqrd#Bjgkc?+cT zQ8_vlaurxxAK5^7-z^_J3S4n;C4s}s)Qpj`vOw{#5#jrHEfjrI(3fCW^8yS$pep5z z-*p|zMX}5}#s+RrQqiN)5C?(|8-o47C^}aDlbX@b9vE2G=k#&LP$esEh;@bkSz$+= zi`UDD;Yq@A(lTe+T3(p_PZfCW-zvBFww>nUN(q#-&|wUzpt!khm6!;b^(l(e8>QO4 zt2^}<TLYGELqx5^!!oczGb3NQ6akF2B|n~Rthis?9fBq|Y72}eok0g}-nB(wUL~!$ zTPi^FaB<NIn60=|f#Q1p>wftV`uCs{2zaU(eJ4hfXho%{mYl1GKi@3YB_;dXbdizQ zJfZJ<ED!ryK;7~5)0w2d&qjC0E>WBU7(C^FqU=Soucb)D#Alb5Cl@$2)R}Z5tnMnT zFa~0>bUQ4s)z*)Z9zj-QM<HtBSU^N&YiuaOj{TzPH06kx6bO1{f4FE~5XId$2)t3- zZeh_z<R<MG!0cM{d!)^DwUEX)_sR{{-A7K0%J-42<3*`Nom5^|Qii5iOix3&*k zZb?v^<sEL8LS%S0G?oSFa<&9)A&__@U3V+&B4MNb9(+PoXhkPb`r7p=N^cI47>rLu z@lhW}xW6)%vEACeSK+aRmC%?1xnuUFrBFjx2`h|dqy?Nus(g>^u20gw9Tc88OuE13 z>*&Q?9*JYX;alMBhaukP;T&>_=U=2?r?EGmJVJZ|H29B4+J;8C3tZLMSGw3XB`sc1 zroC!ythuX#TUbwi3K2EirE3weg)F;-UWpA2W;09t18|!awT}9E!Q<(SP3xl{s6S1C z{KH8f>JjXR`DHXR_h`4R+W9C>+WA2N^hWLKz46dDR<LrApePvIoQqz{sKCj+pr`7} zN(Yeh-_ZgwYQ@$aglBSG^*ZzZzKhvwkq2$hLb2YK&K9B0NGc?~Ge8JX2u#dtdhYZv zH5RA!DS0P36RS2vO?pKmbwVJYHY0NWW_4YDeis52oA8$nW&8WyIq_nG4wv5{Hse}3 zvvhaQl9T_~t818RXFs7W^BuAHv|2e8QEQ8jhBRtT)bdshx^^8ko#1Px?x(DUHZQY9 zt>ljm)AGh?+oezgkQw_^Uj;2^x{uzO?V|(OG?RA9l{0%{SR#3HfhH_G_u{Fr=wL;v ztUKq2-YQ_)Gh%fV^#ao#>e?t$z7x2wPhaY*8r3Y4NSkPdc>m+kFnUBaxhYqQ;XEU+ zr_R}$L&L?1<#L6tt`utPf87BNl;@nHoUpjI6RpjndM=EJ^})r)R(<9Hz;xgHX4AV@ zX|K9s-{K&@(S<T0>Z{*Z7`81QnhD8kjiNmMRJvo}Bg~5Ga{Oe9bmyXg_)3i`a9~6O z?c*sHav>E{(Qy#c6~ME{dpJ>$S<ehaQwuQw_TEXRp4^uJzY;OLW^cp9X`M8TyE00K z8PA@k7CezCK%2(`yjjCbzN+irAIRj78%%esfjG?&?hoQn(dm1^h`X&Pve^ETWr?<G z8&srAe!K(|gXceBWQjE8#zM}FYM&Aj2{B?m`nb-GQd;1CboK35X2g-$>H|Y>KO_#R z<!HAU$Y9@!4V(j%==m}jA}kiraDu{PIV85&!y2G#P5tr9-l(9VDYKcf7*<Rv3#<)N zl+EE-4a|(d_O&LI$ExZ)D$}mghXTMK7nchrTCb#0OpmcTr?89XQ3`^3!}YN*m8cIL zEt2p>*F9?bVJ-D97`uSY^9gpF3pqi~B7EJP#^ar|H^C`Jgo~ZrX^|oJ{*p!{Y1$jA zy2SsHzNp5axB$L>Lcr4_;zG-b*SGeWfM9&X5uWyi>Z)w&>mpxf_LR4mJB5ckJ-)3R zToAIrdEB$I`w1tc4TK`19P&`;^#@!pC$dq_M`KQ`DZYkTcMexS2U6t?2A=?Ry_>sl zRLP~PaMQn}@H6DL;n68%Xu7l7=)u(*dan%WBAxA&P>2D(qDeuw5fauc#vG?Z1w!w{ zEjbuodEfA}UO`}@+jEG+eEh|2&z!0p{oL)rLACsM6wjR>Vt6@8T>xu_R9?;KjwBDu zOy39O!<S1ll1n;anJ3A=g2D~YIT>a0IYpfP&ZN>UiJvN-VW>%a(=ialR3&8QaEW+F zQX*pbX!mZNKf2oaUiire5C9&7op*5A2fJl4<!?GZ9k0CLaEJD0=jqWiKY3USX=Bs{ zI`O&MT(HsL3@(!M=E2f;0+*jwivSS&qlpjF>_?Ff5B$rJU#yhnc_`OK@R$&&h{Fia zBMNn&t|m+X{y`~an*Ho^U)_%9W7MCudbApU-;=(Y=5`pyEw6F`5|ji`Cn7MCu<5k8 zuWb4H?j&j9@a4A|Nj9C&ABz6zz|U{`c$tUuAOzK{^H~>kapkRT!Hk&d+dLN-Dz#2@ zjjiE8?9*3V9(Ot|v+rL<gw46}h}G2H&DOXJ$?|Lh+Cek6m!$>L^ejk8hq6|E7NlKF z8-0gSA>&OMhLyFCi4nBieU->RVrSgvy0YR+vK@+YIY9s!y}T+H;wA*L0xotj5O*X4 z4i3(~2Y#$?W!-P%4r8u^vm384D~&kL+O(34N7tV;R}XXRw**jH%tM+JFb@77(@KKd z{~`t!2x9Q~57i9!;EcSSjGXK#H5Jv_!SSJ?-<|Ef{X^uIuC5V@;YZJ;d@QdRM~YOW z_D~&Ph{2l=>v|U_p_HfuY&00N$XVPk%TKyqq9bc4Z&B!chuq0tmD}<)f3MiL=BK!k zRu{=OEvMn#u)%8ts{S*fq$bF(d0V`^j~Us&5c%Ncl^9?O^N)A_Ws#>COr|mR$mN&@ z_dKDrsE{%a@qT_nfAHRxf?yiB-+s_fLmmdq30NRDQGXlGSiXTm?wU{9)ByiC#kqL} zbbg^9Vm~dapsX5aa4{}KI*3?R=Sjx9WCvYvQngZyyB$gVAWlG0@FD|&EtQ-)-%?!u zV>iu{OkLueb-8({%gQx7;uly2IAw30Zxn3%eZo0cGCxQu|1L(R-0&{3g;SDaKLYRk zZ!IS90OG4O6q^j)QeMmcGN^SM$)Fu5Rj-pn$y(MqFhwn$aM+1;Dl>sC<f`uAL$w>m z6b0}B^rZcf4(juCW_dF$tkjp`$kdKNU=8(0bL`!|dew2=>l!q#tq;gAlR{hupp)DG zzT)FXq!AC}AOXZ)w?kNu^{+Mf_xNhI&Rl%=MXyWOG$!po1d8|wE5CZY7ysql{!Va+ zm4b|wv0?;N`<xG9Nq7K_zE>#?rw4>mAC8o$7&GXxe4cNUOj$qNA5IP0io%Wtg$CN} zI>Q%d7nh&5a>$iHv>kkZq{{WSOAnGlm7P?hIkO#${Qp)mFg5C=hv4$}l}BS+6wLA$ z4)?6%1)T2T6no+q&b^%tdp0;;Z+u<vfyzY-%9ha3ZLdYKo~z%If+TzGq*=d7Z#?0# zb~dAs>Ox;AI_n*K`U3*W8Go~=OXg1JJMTE0dgt|g-I6KKu5!%5N!EdHb{jsSW}mts z<ol+BP5~2asX4tuPk+aZclcVy+?+`mJXmT8r>2luIZ7}qVdk=YI%~rw*aM`x_)-oG zKUmq&Y5t9$%hY4mIn;7m85(*cyR6YA@XnOov%2c&G*kU#OOew17@Ar=3XOqR-;R_A zggP?H)?Y;lzb=^U3~;tDJNSO!6VThgQ^PatGq^o+xXBRxu)+0?P)6=a?^3S8gR8MP zT2s4uW9>({4&~CSfS#Zyl&a(Bdr)xF&&mCX0{rK&`<EA0%5HMCYz9#FRhc~GbUb+K z8t&MJlIm*W3po2bKDoXE7>&Nd0BcO*n6Kwu-=eF05&~8~+qKfq#p3&Xa!~E~H@45c zlYPFww<ns|paKle{?gZ#*?CxBIx(51Uch{yuoIs1qcHsH`dM?ydAr3b-iznt>5*_W zy`CmTLP|Y&@nrm7^e2ob9{^~8@0<G(+Y+$)^Un$4dl_hynS_hYb@No`hJi6+bL*?a zs$7n#;!{qJ>vpn9Vn*v$&G!OIM(@h$|CYFb>Qst7#}T2Nnv*C&vNM+`%nzTKFZY~r zEQ>@q6r0r69I!N+HTKin4CaB>@633@ora%^OjxsrzsF^;E|=fRx7qA1K@>^NCrqyN zj2+n@sHAi&np}b>=&v?sJ{`YEC1SY!?g|6n`S^nHle~y<*mcNa_?BFHs&4l4SdW6N z3)$0EJtxE$UT*#=gq&K|<H}%Ty$UtI2{LaM_n>H!QU591Uwe3dpu-3{U%vBqh$3Ed z9K^nOJe8jN!W5MjxL8f});>qswD{0ei_cP_Cccd4X3`fqwW&rsXy=|bX;-UAlsLBK z^(f-u)F(3gR$J9cyiT5e1`!Q50`8JuE{H#?Pql3wfR@<uiruOfM?^nkNI#!P#!KDt zv&}H!R>N6-?4f1s@+rJVrI&^$pjY}BaHH{U*5=PecMU>i7mf!lKobg}Qv7`mMw8_3 z-xszDY$6x=pPm?Pb)h|%W^GE4>W&B_Q2(1So^$a=mlx!niQ@ivy;Dx&{oZ>WM1%W# z*NNV3#MPuV>(gn)FoSc_v1$b>GAA|_tb`~S7f|pj`_h(cK6YbgG-alBsxAMZ>=$i$ zr~t{;tIWoNA<dXxgy=o>b$z-BN`y!*4Ta5jAOL?|hLz!imMhZgA;4^Zc&_LSvkT($ zkm1fcak^!~G(Jf1_c;FLV^g4bUWi+}a!@#&5y|UT^pxgtkk2_^U!ut5e1mJX$o6T} z*FhKs;Q<+8%J`d1SfsGO98q)?sU0jhw`A(5DsF#K&Pk)rL6D|yqBq%^kG1;uWp(36 ztyI>g=lnHj5sb3woZ7I|ffJ7U<9%!mlOMk&hdP=VVH4pneP`&Qhg+xW5NG7|y65(G z$Ms)ZxJX;b2&b;-&3ivh8FujenJfi$lMRu6Fz`qg2={|s-a3X9FQjUw1|={Cg@3E+ z(Hw3?3I-1B23=?AMsYg#yjX@A9k^yKn9RR`m23hBtTAs}NT6v0E8N-l+(ggp7b#Vk z{&haRv?t5ORMy3W<`l)pK_mXs6U%$sX+Dl4jv`7quSPX8sXnoIo$6%?>xh8Nh&DUF zh;%K)P7QQkl{|@L7}q-4sLF`52gs<|P9%NLh9%#m5Bh$&HO)|U3c$>BA&<okmJUUJ z?9KMbZ~Ra&jR32DUPlSkjFLB;K*G*-1`wobbBQ3WzTlh@g_5Hn4aQ2(*nKlZswc-g zER3aGdUm=CSRy$OcY_`<XDR_yMHQvN+FK<<t9(|_E{t)$hVFFSlQv+68BT(N#OS8g z{^Hl4S|CP~i4FyAlg>+@3;?7e2Z-RvpRd`jz9+of<tdqx;MnUG`aKo2$xB3QJ|C6` zKq{i(*4!sb>(C86Eev=4ae80x%l>{ckAcK%_CCq}#Z`|329d;}M5++g-Tj)M<A=%@ zMi1*6Xg$~}1hAdi?x@v3TV`-LpP&t7Wr_9N-~`AUa2J1Ra`^Q)h>kCAS{qP;{QZM* zJ`B7g^xSKE`6m|mx}0_e>`nUH!EBM8jH^BWe%t6NLe~;NF*fo^>uc3$!GescE2y+) z$??MMp@+YG+N6~351nHoQ{Kb_Jd$PYVpH64^d<fF>}OHtJVWV;)PmW>^Tk&TCCEDS z6nZsZ>Hph|Bw`$Azmzkhr`%Q);v(^`O+)j%ZGnX6kHs8<HP^W6N6j2Gsn8beb}lF# z9f-)-VmvLh`D0W)cAxg)9rmXHX+6EdGVL%DH698AN)S}21KT-K8X8&}IXAjYO~S#U z`dYUn!0&G<Z={qYz>KV5cPi@b0ef0bwuzNV5QqpJ69ACOJ(e~3^q{A&Vrx6AP7S4B zaMUtQc~lbB^cPi6hHD{yE>P)WgTTmh1@!vvF_HZrm6m+3s?v>J9n#TNPCUV}T=~>< z=5_UD?hRfR%cls|1sKV?E#mqIyL|cICQU|D+ckJgeb@Tmke?)kUhImbU-u3D>qVot z??(^)tIm{6>#Rc69K=`A^Fl*x!__<6%8<nRBrp8#cpXRGYCW_*Yy=&xNfSU??r7;n z6k#Mc5usiI@(E^SQ_o~=rN8@08p%O8s=~n(qzP@Po(*-ezy^@j<W-2B;bcqd@eY4B zo*Zx<=Ylw*iQ_|DTn{YTy)V8jkGw*RSBuwHoh$gVeO2gzTa(@rwje;wFT9#PD(qtB zuSXJ(1!%)T7QUL4czd}S8LCu7q{}&QqQSePZ{~owH}*C2pOCCJW9boVS>5U5#s;u9 z*fKnxaE24UHZ?_02nM_J7~;YL5<dsK@rP2uJ3BuU`ooHw>sa8U0Dt*ba{njFJibjd zku2*7quzYDZARGPjJaB|Q$@!(!32Vi9^hbWRwrvo?6_}^Hk6ilHS%P2;h7Gb{l6Cy zv+NE;s2S_g1Q>@OG34vY9a<v3biGRSQoA?m!t^97BhxIhi;k-)A=6@F?gNGamErP6 z?bfZe8~@ouP#Y+E&svyxods{JFEK7W7_4owJS>0+db(=$8!tyy`9*IlwQB9$egIYl zcl}ZJeaA(py7<(NyYw3l=B(wmJHsqQ9H_}<fJlu;<CIOoAslHSFMocYtc8lp<tQ5h zo#ngZ5b)0WYj-p<k9wF{hgMS9LRdnb{x)<4vXd$cwBHUnSKm}mTw*4?x5^@?4bFSl z2*Fkpv?ntjzL1BSIzc4T!7h?Bi!~Elw+db(3tOxDUbA~O=~chnirx^?R9t)oSAT!0 z_Q@bF1?#p{D`&v$J*WM(;RfxeW{?eAAMNST!j59k#6P$hoKzvrl|6ZJV;WU;d`NY0 zYFikIDnC}Ufk!JKxr4ptTc*$h4ic{TpyP{kUNMH0+lcb0+z*y-MAhb|BNyM=XnY{s z12GU<M(uGZ$^+zRPF6mpBz5I{gPfx~=PWj1-M>Exp;iz$r4rTd94FC%Na_9_uzH9v zY7(tOhrE9^rO-ilof)V*)1Wwc!~r`+)ub+U&o|SPH~!R{-;ef_nH%1F&7XGo{(u6_ zsM8Q`s%rhQiwi{PxO93kM|*N7Xw!z{`8yV>9SeP(Gk$lDL%g?q^Lxb8Uq#9Oty0Gk zFooo~(p)Qzqkm;l66DURk(wv12^<7dC#~blK<gP5+<KDouLvCLw|-5Iu)eM3j*`M5 zE*tw*$45)e5b>Q_jyP$z5eFz0UpyNg!iUZ$vOgFZvYbstmM>0stw#g@?((c3?xO$` z(2d)0XJXh1zP|RF>{}$bKYQV(!)CJ<{*K}VEsl~A{HOX$K{#B#7ig$6dEW~?myK8R zs=8?ZGV7VX^;sc=P=m$P83*g$>tZU$ruF>3{3brlWob-~_U*&MqzEpqYZ13mU!H!+ z=ymb~*J`Eg^-9cQMn)I_V?*(M48CHF%KJU@gIK!;yA4c1tsR)j{DCGwD=i&rVCU2> z+T*4OjEb`uJ+@{fZER4%5l8z-ciSaumkARzZy103mY@kwI*@)|0^mpr(iJcxY{p;4 zd<dl?ue5pw9iQ#2w)yqG?euLR;6ZpuON4Q@64Enb6-n|x<xB*t167fM;ake{)8|bq zq{kZ~s&!vRZywzFlPA^t{bu+n!Hkl%|ArXtbGavWKb{)<7*QkpcdSt6yDE9LG7!x) zn0~bU#$p*w`%t0J9WWm6Lp8WcROdp+LCIf=;vs1ePoD|y;^3X_gvKZ=ai!4&+Sx-Q zCOcE@wvC+gB2USTR^b4_WuK+sjNMnjo###=mvxi;g~2RrZM=mre+gXP+~<l3`<t#O zL;Bo#{E6*kZ#5_Fodc#Dry|zTbUuI+kG7S_nQ*#_jks8t$2AbBnloW~m4>>(>RN(d zv=%|sA^-NwXP)_Ynm~?I%Ea<5g?#A&VzN*_RPH#QC-^JNjxZNqXEP;UA>kP*hJ;hC zIJ-H<(DAO@>e{kS2xv=-7y3eaZTywhLAZ@0D%ffXo5ln7oCGk`6YJY(=TvuXY9bBc zIN&&VpIMl27r-=Xp>_Z+xr|$$y!Cvn%;H_3DDpV-1#jjVKwBnB0fmBvM=M3GTCWa= z8Kn^mbIjIWV`i{JSi@U*PF_l|^#8dDh5w5*TtkqC&QOWh+<$-n9za|sPRYv3OG#-d zYVK{U508)c_YAZl!Fm(EC5rv5MP+M{uuSHwgXE>^=wB)hk~9xi(jvn!G?^^-dSh4b z7lFi#izj{%;kxGeF@&lo?A7hD7ne;P<(Pa<oG9ngXusrf(w@=|5)X$>4{96L$%X!- zkzkdfPa8|zwIp>Oc-OuVA>S{-5Z9e#85bU_t{@CCRuH;Rqi4NejubcYiSbnl57O>3 z3tmYJq4EBexiMzRaQp@kXg+Fwz@QA*?C?O7GUqe}?;tA*KBt|DCr{y6INDcRL*9K0 zs<6Bfzwn8d!*ZMi#f^beDXNPrWlKv>#9!r{YqBylnJ}F*#O0UQ%RJ>=iKB{xrt5vK z`J>%`0ucn<l#1#5e5UqeCm!)g!L{)^{jiJud-A%V7bT~VLn&VK8%WDugRXorC_798 z#NQ5OmH-gWbV8)b^t2~OYvDeqCjpw^=!g!`rV)?EcjUl~6{%)?UKRoBl8!XKVQ#@2 zTYWKLc^@SXXSA6@I-IFYAe=IYuAc(KStku?Ro>FZaUQ=z#ZgPYwL~{C%9(y~=yHMj z<!dW@j47ExttX&>p%BBInX=-q{k_gbVZsT&4USAw+lenTSNK*Kp)`U_yB6%W6Ho;D z*-0Jv=QA%wAH+X@Jr-rp`B7<pwp`@U#6F$a1A4CLZSlM|W@{b~LWYP82;t6Y{VMeB z*1m$rR1kgj<S4ydXM*38OV#D03h?;$Hrg68&)Z+z-kO4Dlt0M{93N4_fHbx2DxMCS z#5(jL(q^9|^R=6`I+bNo06){UQwN6L04a<WWKIvoEeDjEe5;@5IWm)zyKnSbx%SV6 zo*19*TH!dT2{8ll2$9IyQO^<MaceuDXmtBbRd;}#(5ytZ5yI~G@E;*Rfvefsu9dgC zFt!YpAVhLZ8YLjV;(7=dq164hcp$=yW$^grW{c7j`Do$6^X<MDzP;{Bk@xgPS--d% z?X&!O-CfN7ekyeBxLE}x2*4d^f^8x_Na%1yt!$M6Qpe^+(*3O}RbT~pj}CMZ{{OTT zP>e~?M~=?aGTmHd1ma`#c6D166s)4ihES&lcR}$fYtHKgBXN^<)&wi7Q~WAt^u}Kc zCI>nMr9Xci#{J)_kcgoW30LyhZw8{>IoI#K$V$3;B>7bYn^JQk5Fw2)s}}k3dHBnA z0(v>)mKUnn22blJA&i)|X7Bmb>B4mC$UjSAmg)lroJ-;;5^*r}JNi7m9Lmla0ycEp z%LvE4EzGQc!3oHh9oN1}Aq>Ak%lZF9DRTB>@`A~!h5k+H3R(={P#nRR;o&v+J^>6t zb~_MFczu9i61wz+PTv_$K+t(>Cjbg=w4*wkkwTz448y1cwQdyf4jv@Pyfv+^ZnK{8 zu`WJ%f0<g2vf;sfz$=c&fDnYHY#}eHqO-z!k~!h`!;n)J-5(Yf(@s1Rqs0NZ%NLF% zwLQfc^<xxyCH1~*Y(>Z!NK3C16?BU(U#44R5;o?Q<3E!$fC83dpOM?jpymuv*xq%d zL9Q!Mus`_-zHPip(X2k*F72~f+t7AAX`$etz;gHW%ra=|P-m0lXatPQc8gaC$4aS^ z<REqcgYx6!KU750tzd*xIVH>;N(F$T|4#(GTcCjlF~!y>YY%X+^EDckr_T`cq6?cv zJe!_+WkYJeJEb{wjQB*ei5F?dSn+`Js><mdNhZV3_x&HcKG7qydR2{!fug+s=UjOf z8iH?={UyFonLmvQMx5blPC=9gIxmGlr?b!2rz_xe8V{#57LXrpZ_TVaZ{IlLdn!Jf zpFTD{Jm<X0%d%VA;Hp-&=pJkqavi#<evl1z3_*5Czwcu%^64CduG+0edgOAEqTSYD znrX?${ysdOG6dB4(Ag=J-!H_8&2I<kuDi+=4dO>f*@1E&8lO*lLkG8W8v?tYge*!z z<6b7g{6Yfn^JN1YgIwcZU*6ozd+wD!c@4NQ*4^TUNH8Sa#n(G)^`Rx{ifUid_T4nW z^b6`%(z7EK0|SfSp!MnJt=$K~ih=?nn?so%>W^JSk;EO>?F_aq>2`Bf+d$QI*68Xi z<y`kJIZ@3_<K#Bg-+^tfuC||8ojdA~riew17`r|Nbc%LWY-P9&?|%%RoAwF)SrA<_ zzCKo*tgb&i`>WB`@<Y}0imu<i`C03bR1aS=`OX*p6q7Qivnjg2vL*|2T$Ez^*0;*1 zIr=1i`uR3cS-%h-i?}tYe1GChy9%;^)<?X^yHj-3s^ia~q(iTKc9+`Bpl74D1^4xx zhY`z}Gj|ONP7!BWPw|@H`7_7gl`NyZ-Bliid4JpTXXEF9{h;W+d3VJ7EotqEbdY+^ zLS<}?3!1ivZv0v4WroL9b64*w{Onpr*KJ13@Aukc<lIRt`!Y*bDnotKHnrVbdDoxt zy~uHMyr7(WQsEt#9^5LS;Wc+Z@|@NGJ$SSiT%loY^xTVr(auy<T|(vl&!KnM|0=LD z7%GfCc`!85)HGlnQaz9!Y%kokIDT|u&h_}i;?XaqYghGuHd&$oPHBLLax1d!hcQ~= z(JFO)l8q(5!^p;6gFAEH$p)rpZbWmhId@>*s;~`}d=an?W*uN}5Om<kG%j&-HCg*A zkX2Oi$>7}OP(<sc(Q^L!#7$;t<H&-ChWP25r-;_5T5Z}F&rJm3!=i?_3qh}XvYsoc zK0El>Q3p60&zr>cmRIufr5I@y@@Df}-Jy-zZ5dnh`1ak%OKyZN(%a3~1}5#?_VnBJ zO@Cq?k+!~MK@rn998&M)zx>JTa_A#~%ZRT(ah8TPP)l9W13y)Ji;|y_{6!+L0Zp9R zPNF?M_0xnUHf2Z~OPFFxlW`qg7O=LY+y2w94@}fG#yiU#1{Gt^MPT4`D#f8mOX$v! zw>Q<700G}T3t1$4)dcc@QAizhes?u$zgN=GPMD5W^mDUX_g3xE!W{#Pchs3#6N2n% z<?6bH@zCopzT&!%6dpa`fB4=EAQ!C8b(7k*w(}+tQJkEv```9EUV2mgnQ(2&ig(W+ zerRMHe7Nn@GEc!kJ9yTK);&&!gXRbI(9@Rh_5Mdvw<&H8`W{y3T|1t?lknP7r!BZ( zTH@B!7s`ZmNcOO#I6n_2k}0Mdt}M-7{i(+V&h9t9UA%_{V|JEZXIz9s7f!^w332;S z2z>zUIK|?_*&9v=Tcfr2C$q4v+r6QCJ6|VSETYba;o{iZ{RBmVz`b?*J~JVhOn_(s zmzJUHgvd$J{a&A6!{3={9+})3U;3GIOMCB4mSMNOJ)*cW?nxUvY4yh_?EQ-sB)p@B z_dD9Dt|VsOC7r?7QCQu8KQLD?t=hCN_F@pZS9!T2|EPr}UXy1x_FnSy!P;E~vyf$l zcj3ERji_)NzmQhUeP7Q}3oq028gb!SRkwcn33n8=AoLCaJ2&!&eHwyBOo_6Xx)c!i zP+bZW+p2ql^E^f&T%?{RUU+}G@6t?E;g=6ob$4FFsPh1|JznN+yHHVRSTHI~MOYVZ zXl&TKRc;QVQJApipZ8w`8ZB3<OSJ!<SGbH)gh>z=qCT;`zF4Q3qrBf!8;Z`#7Cm~C zSig{SG+X~iSo5X;+56t_08_h~_Ep@KpOou*L!RP0h@LU_g^!)eSy%2k2f?Nv6JF*F z0#B-zf~PzbrQ#l}&o1wWgTc_Mkk4@aswNncz5k$Pb+a6F&=XGn+qkwYqwE{#*5ey5 zz};y;?~bxP;j~vitie!c_DXkdTV$i9=<$pFX-3#VW|@5e6#E`$bll^zT*;DzB{d*M z=g^9C2m7V6<Myd^V-<&fdxGES5REq%x{3Rg(aG7z@+G~^v&!5=psxf20?;y)9<t~X z+ML$eo163%tf!9ey<O3BLH@_r1Lwck2QNG6Uj3+Rn+54u@3{iGS2@j!^pRr>;rI_n zU+%MfgRVRod?%kL2hP0d`RX=zx3pA{FKTA__?5ov(8yV>yU(`MG1kL!m-keLKV9$a z8su1S(+Ic1wRt$Xu&|+dLPM7@t)Zn=6iuS~8CC8OuN0oVzRe~#?F|fMO#vhIn7$VT z;v8874I8$<u;x_1!eOwK`Bw<ICs$98+k9+(>hVl{>oESt5DJ+4>0q7x$+>YkK1JMS zUO76o>>v!yh;aE3(M6qpzQtTaCi&gH6SDEWze3Lip8Dz&y7?zApLLCqs#EC|;s(K= zM~kC5*%sbFSD!EN(7xGDbDvRGMeQZaZK{c)KUW&6KQ^NI`^#51?tA!)@H(yLOO+*J zMJ7y5M@|3%C1~eeOt^XBJS3NjCl3_<NK|(v4NtdKKz`&=We8KgA8P~kqh_X$-BXI6 z3K)>z22$(<CV9~VgQJfUE`1s1RGc$8iC@8vIUXAwS6O8jIL_*7F|+=DSsJU@TH_92 zvwXAkf&w(>;ADC9BZqgSF)HVKi233*J{ZNzuev$m>z{iwv}tixh2Hpr*gV^_iH+AA zy?0Jtn0XjK2gNLVd#vD_aIxeNI04I0JA*isUp~}2zZUZt#B~hHB>ub)ENh>=hY&Dr zXf7g9>G8puy}cUyzsOX9F8{RZqXZ|)p^)9<LOJR>hf!lGJ=o_QynfF>)x!O#G<etA zd5OZKg|r2c#;I#Wt`I6M6#?=4Fb5Cfu{EG~#@z%I*n%CSc>j>h%VFhrGy)=(5_vL# zG%DnwofCy0%2~0<pmd}gqk9K^ty^v27D0!JM1oWhc@rY8)6{gSm|A3JHom}f{AMI# zz^eQTLHTkFVSQ5M+FJ?X0Co&}!zvP*$oOi6wr1U&@adAVz=4>q7XP2itnUt^9#yqH zlV29uxpYcJhJyNCU+u+<*Q}41ft1!3DD`XnGu94#bqJZETh;^GRa=$&%L0t^^za2S zI5$uNR3HiM)2B==k)XswiOzZC8U<}!Ow1I|Q`w37{nfyNZ4NH%zT8v($DO1fe~zt_ z)7z-FFF=z1TI8km_0kTTerC0Q;ZI+W2|Ll!H{DbLkgY`Wj)mvRH<FdqXGDH_jm}Qe zvYWEZJhUcs@|Hy^&)A`*pTf7fb<p;2u=Fju3y3-zL#17^G1@JLdbznMYS1GVog7dD z^s>+1p#XAwykPdXVWH`8vI70-?;U%G33k`PzJeW!EQW0@J3x2*=ucBTriKop1{Ras zr~79_Ds^@5?f&PN4=R(AOO(YswU%jDyre}z^y{|;s9<hb#{LNdFnOk!$DY`*7p%|k zXuNk0L*MuBqFL~296DL0fBed$O3J`46>EmNPa$$}E#QJk7(@uUIHbS&_+xPNh$B;c zPfcjX&zqgGxj!FMpv`_WA9hw(QxWr+lsSbjeq2$>9!EA{++FA44fz**=bn7Hdg6pS zb%-V%B0%gaJw}E71s)%{5SIhSOh(GVr<zL?fQLa8Qm}Sczl<@cYH6T-@I`<$nm0<h z@|XJU_R?SimPi4Yg$CyBO!%X%kG^35aFwmj4(~e$>G`3VJXeiC74yn?FPq~i+uwjr zU)ZHx;(^aI_QMP7nr**kiu1Q)LxGW>AdHy-H4yRtqZl}@|C)jStFX9^eD>O%J!I`} zYwParYU&>R^QWh+f3&@)v$sP_)r73x5}$uD<!!8Fe2?zY$J3cU-*eBP7)roTsr(qD zy!9YOPFm5I((hXOZ$#;IzWn(oNwN74Q{c%nc}7rQps_LdvOP^<^+ZmcC1G@2*S>mk zEs+845#VNrWr1d~Z!Rmj6!M_8BeSvYasuyzK`Y`Z@?n@2&;k>oJ>(wnu2Bm-UEk<= z2SBvtF!~|+Mnsq&mQbvY0XbICy&{tyc8;g@#KZ#$g033rYn|OT)86(So5Hu{A0#Xv zeO_fTJWXlz*OLugXa<xRBwSwlz^TOYyShds;gk0X?TbuL_)X7}tK-s~U-F9a@G25% zc!_zGUQ#nHdt~Id%y4zA{4Tev<>q)bO=bi?S+N0T+{U*)fV--u@yMw;TxRf?GQtwo zeVO1;9yout`4)W>NE_VRYvB7vZ3+^17WPq}9y8Ys=LR}LM08&8UX?Bfaij|Cy*h6Q zrTJ*sl2;+tnd6tJtmuXWRGPOz*k(h=a{lA)+h-95$&6T#l9bcw5G~ExSDLr)$;kV) zOCb0z26Yq0QSz(C&R96oxIMlhZ2YkxUSO4d;lkz>97C6w&H$&%9GQ%Zs1C3DBQbuR zlsELB6DHHLxsM0K=NB3jr@zoge2y<-IukN@3BPl@b{frNu?`-&e(#r~7~4O#0<->D z-ErU0L?O~Gh_oigt{|;M3Hy~lrOV?vT3f-vaQNY|fW0Yj(?*a4w?Gt-yQoSUmIinZ z3moB}tl|?W&7kBA?o#Uci}3BTH~8xpdzDd;SF(+&__E^=QK(d98+FeSW{iw`hrWly zq+$70`I<YtPcNMupcfl@jwB#3vqk%z#FX00(7fDdwoW2F=ji-g$^jG^|NJ02lpr^w z&dZZVlJ>SWh(G>?VFAt{CmoK%g(MUqikamkz@LzQhk_Sp24n$OX0NQz{oHIV-i+v1 z7DB*g_XetRAKpa>S#}y#f~{ada>|pu6kG`$aHQUfQ5ZdOgf3pNhyrF{FPV|s><|sU znF8k*0uo><mNwr=gwz@e3bmnd){IR-7k(=}I?)xe{Dx7y-Jcpy5_DY#rbYlape3<5 z^COWdiQhCb?Vj3;(X;c_H#ZfT(|LYb5=)i+s<)&&amg8mQuCb_ywm&`1kxSke8sUX zSj#Y~_+|}0?(&g!+gr)g^x`~|E`O?O`vy?>u|L?4!<Wons)iV!<%X(qw!+i<yzpkI zIn?A!A2*)cfw~SjqKZbrHP94Lg$jYQQxo9o6ua_|fLx`|m|~s=VwIPv0rbNY%y+Rd z>ZU48*r(sdPfw>&GZ{SClC3Uz{q{$%R}OaQ(tLTDAWNNyId>Eb>!&e5CIJ5bB-E~_ zynWfGayaNuh-N15T!=}#l`LkjtE|Ujwnaz5fQhJn@G;`js?-yN7i_O{;2W{C#KT7R zRatpkLSgm#lVQi(_Q~dZ=}{K-QbNP4v&TWd+-as9e1Gz8P-?shpn`YN=%!Hq)KztY zECU$vXC!506^nN&m`HdoOMzCXDYRm(hAr+0<*_n#4>7#yoM1VHnytEZOz$z|rvbV} zOo)FPBImIbAODr6*{=y<fUwJ$pxB95#+vVxY}enTeqNxL%D;!Bq$B7ciFSs`B~GQ{ zDKzU6m+PMQG#uW%D#vc4`nZA9<k=Zd50%baX1d)*U1#D~8KQJpQXJES`B#D?E|Kzz z4|_VYNGfd4Z(6<i$FlnJhfjd6|FP*i9vXb>(ZQ+=IP&BHTIgF_LiEEys67leIhfLl zkqUOJR3Y5eSeR4?7`UY^TNbkf5FzJ}P`hSHAUA*^j0f96ihonk__^Vg8<52*75YDa zha#U>-uD&c7XCVg-FikfZjn*az~}4Wl}2zLdW-`QEeYb6(0m#Anl|M7#H`Z0uwS#r zL2Q9E4U_lK=X#X$(kGhPv)-J4Wc&DWON2HeZU62zzA5^X{=Vf{6sCCCqJ#zKcj#b0 zW*-K1E-U4$$l7ea_$eQh*UcGobm;Crg4P&C`Q3w5_Uv2GWn6Wc;o+6CH@5Zs_dC4k z3uIHC3c(Bn&R~Tb2uJ6@gXcS{sXx?<sC<n4*?Ag;=G+&<!eDMoA2eKY!B_bKfoB7X z9&LSZ8MhsI+sa+!WO}EAeEN;b(eEma(c7N->MDqlI3vI6Vx6xh+k&k}j7_+~Y*X;f z_O$G88<*k!2q=2}{WW!Iis5SF^}6mP>d#M+Tqqsu<KG*nMqM43uKpIWeV^<7UGE{o zF*KOGY$~%wyH!}^vH8Ny6z_Q7R7snIkw<_UwM?7mwYga}9he1kfH><AUInlB4^aH6 zR>v6eu&vY%?8-S5;yl_CQ`EPJVXW$7AyG^xa7ZH1m!aKz&jSM*k0Apdu$aG$Wj$Yc z`L`l7yG8NoRGIzazX9c_`AY5m_v>#IgVZjX7L|H_RTEJ>Nsm8+Yr+9qq}Qx7tq8mq z?H0orixk!KS2|C+k<JW(No%|V{Hcfd;483yM`De1IMk1_H+%iqS9?<Aji#jU$0xVz zR&T%P)B^AvH!VRGfG>yih~3S(&?|DOp^*n2pQ5HQn%DU&P1e^)_p4wr!HpHMW2agT zU{g&yIB|R~5zX_X<pV8F>#my<2zvnTHktyER+ONP;CiP_<;<i|oPO$XT25^$4gC48 z+3P?h<BVe-wr>vBOu8dWN*-R{38!}RIy)m76KX%+{$4goBg(*A(uFv%0O&|%vCiTu zHnUN>kV)@?)4${loq6xc*}PLX3Zzl8{ky$%TQ4rCUkJzb3dV&0=kfdUx#w@wmc`|T z$-hRR`{=cIWC?Urwo2h`96FKzTcrxyk}LnO^M$WA4VMlZSx8b3e_S#n*X9Ni1R^Hr z;pG_9{Q9SrB5=&^qBjsArP5bHuqs?efz!sWRM3K^XS;~Nsx+FF+8;v*JLs@Wl|>#r zUkxGs9$?J~y?V?9D3@o%3#P?_?H0c2eyvSVZc?7o#gaY-<X~@406Yv(lw9CQ1*uA{ zl<nbGcZ)I4x}P5#xL22FkHBtCZ}Aqw>5Z7X7`F`UX#*a-6hkEPSmzXWD4pXH^`R-> z&1QqZ3_lx!5x;94x_D`}zQnD}C8x_%o@u@9ndV0PoBdN^Jys}F{-cD<`}BT8(8^4R z{2;iCB^=$zbbp7X#m}YhdLpN&a_{T1GJ*aRc-_*6h*mPRD-e#;`M~gU4EXj74Np|i zsW_hjQ$dXPIBB4%{aE%im38a$d{>HX-q`<mxM_hj6th^5ogZp>kh3Ddj)*6B>NDNm z8;HrMjZ}W2#;jfcn4BHZSbYt4i?;kw@co`yge!DFd%h_v%=QnP_6B0*dyeVGyN3(o z_pYLh#Tp|~d5#Cqq-lYN&prCMn=b(pxspHE;Iv)g{WD`;cBiOCmIo+-iG1|w($)$` z;1BxSM|gl4K4_t~>KYLcc$GtMo&xXs5w69~7a?Q-@Y@9(LrbGJ0G#9aj8w2gE=9s9 zhBDZuGLm3s-a;4W@m!>M<+e$<=aJ&W7k62s6vC;oOo;i4%8_{Tiu%cLE*H~Cz8;mu znaqW;AwIWy9p&FIoAPI8Kk)cL5iW)*65Mq=NM^!g4~6rr4Sb)JsGGLuk7&uv#QgP5 zEMUFNR3hcR7gj$X+q*4Pr8eKQIGh6Na-V&}k$x=Voy&b(=$nH3(r6q)4qS(%QI5|B z0j{<!;x*R8pW35uR1#qEWlZK^OV)z)F2)oMz}%!d<zkgPa1PyN0M<Jq_-vC)loZ## zJ~oYh-*!D%&Rq6oT*95?QqLTBuFhM>RZRBRB*riQWflOaSoA4IdgPs&+@)?3(Z%E* znfxZHoh+u1G(7A2pp)*bCQEv}5l2*bEm{f1afwCEXD*yl{Rru%*m7hHC!SSxE2Yg% z{D`<kQ6mjM+nZFPz@NC^<iH6OQ<dLnd5JW}S1%6F*-NdJJz_l+DNgE84q3*;9WOuQ zQEb|_$fPJd&r!un`ZQ0ev&{i-2kfHpC{obDk_em6eJZ*2)ixBYYaN0-eD~DxYC*_F z<n9WAoX24CC(!Gei;4|7lhHh;{)Kf%@L~B~x8rMPcjDPgq{`Nl8Ny8JR(t^yfgaFy zBF8G3<cpfTS;IcRQ~tb%KJ*t`b;vc|o8GmF0&&uk?#_*k^yC0kM8<=;fo#T#gIYXi z*XWP0;sPSjWJ1e1AWb;Bw{MRF1=4+Q+ING3COuw9|B%tzNjnD`%CO|de8}o>zC{DX zY->Xvr*D|TQuo2ry+Xi14poBW&_w=cq5a*WguQj7`AIk!1pt4nm+Zt1h<CY&dR(Vh zmTp<AkB*&kucQQuhpYNyLk_pe`d0C*=lX}=4xj(lxaR9m;|*lclsGv8nu1?-xJ&=7 z=hg=`>POK@Pj@73tFK9qc*z!mVUIwy>bI1(#KYSZafRs^8ixuw!Sjt;v=M3IoBs^% zoHJDwh-1Amk|qv!E%AnmAs+7+z6bw0Xf{_;Kdkw>J$jszw!pQIBb6T8yEeNOty7{# zs)n2)7}dYDtiMgH+#6&9VxYV<$d(d(r{e*jSo7&*-+#{{q26DEsTkn)fC08O0hF3q zoXV7OLQ}HN8Ls>~ghv4daz=iIvlgxw9gU~exsLhIEPunq3DLxj(ISyWP>RapkVT2d z)Q4g=cF}vKu<w9Ie}#U)Nu_ii$G7Nbk}qmE8D}m_XJvo!LUf`LU)H*f8G~4CF)uZS z{i-g3vlLF*YU^PVC4sM!dN1uwd6h3!Rr26-bM+sY5EME}F;)-1eb@N$7uwk^0yCSn zWjqM?Em}*Z+z$iIRK(Z;4~V#`&4PjxT#?hnzwrq|vZ&(?fYvc^`$j?d8zccbu0rvA z;f3}L(fdBQY*kgl{KBtpBl)B8Pu<Ty^DcUHJ#@dtD@p;{2xx8?%`cHm_N8`m%yEr+ zj(XOE3(buB@wJ_+6{Rt81lIHV_Fq@Gk5bWQU=2H_1Yh^?YH~i*Va@wf^NrQ=Z-3cz znBHT<t)$dz7&vT78x*3dQs`5|y;Ee5&7c)>oh&}i{x1mLO+R=DT&`ltZb#-Ss1I0= z1O%1$C$0?sRE2e*jg8*;OEfq8mpzZLpuKb$nZcht41C{age)-h?`tLJ*|Sn%=FGq^ zh!s;vr<2Alz@ZB`Z62il`TTdeU-O&-*Ldz(E6Vpb(x^5_1T=yuV2)IBHY}KKm+~QQ zs#yl&&d<9ahfXR^U-y*6oa+(FTOhSO#YsiqO4evUWT?e^bkntQFCKsC<w~?$000gQ zGJ^Z*Ipt7sTTfyx<?lAkKdDG&XdHzPQY+&3p;`T=ovC^(CLQHbB26}_rayW+u1S1~ z#42iX9ntw^n+AePkhfzyRn13kxm%3xG|TQqXd{;{NDv+s$)aGh6>|wVa@9DEjwNl8 z@_})=!;i&l6u<QG!6$WV+YIF{SR~00O!5_ANoNEJEHI$-_@69M)Bgo05F!AuEcC?k z^#17`8SLrpZ0KwoYW_WXN>)ZjUQSa}{TS>YiMy_3()w)4{kj^@+G8NSV;bP)BcpPM zs2EHfK#itZ>gJwdkoSEO$q-HyWcS**p4i)H@sFdz!0F8(C2+*KQO&Q_RI>{#$<kj- z@|<A{u;f1&QRN*OvkFWNVrWu_ii`LNP9c_qtgZ7LaL2kftjk1jPaQlc1sN2CtuZv= z1`DZoYqe~980t@9Tc;y;I{{Sm50}v6Sq^~MNV&4gRdCNm-DXJKaw0X`P@Ow4(Yj*h ze5KQ`IX&B7Eq$lM>q@#D;|cB{{LM6a4@N*hRLl~5_4>afY}!`O5z-6tMnB)XpII2_ z!Pw-dyL%phCm~3R$3L}OXgzD*!&>}>vBPhf9PghMOx1)@fjs9aM24c~8UB8mc`_#a z(G!$Gy}9b~4LXB6%gKzSs$?sa+$1{dmFYq6CDy!D4zs)ai}9ME0x-_%%SNDAnk@k@ z<gxu{TN+KcPzm7mrB?tD{#u|7k9~z<l*S_!_!p%|fja<olDy=Dh<2@j`G9m+4bPHW zf7G%l=qiR@JPkRY&R6-NOhP#5vLFp735XNPFv7(ZPaf0PRSB%t3_Ir%8G5m;pG{w| zlkV1OIh177zCE$?)&ripfMnD^R%B7pb87FS>btLaL7ii<38)#Q*K<B#!F5VBng~>C zjDKCtF5TV%+JWmvfHRbm+B(PsllF*#l7IBzhpP}~M;OkO)s#eev&hg|M~y@9C8(9+ zSY_xkXmzjL;|D4>GKa{j(yPKmSCt`B>t|HjI+sow-5?B_UDK-%Soo<-i>3-+PerY0 zUQD_h?C<I?^89^{1?Td;;-^kY0`K1_fRAzjmj)e)^9`7q*KGVq;A7FapuW!|ePcWP zvjOL@Tn|m{=3nM=(%xy}4=U@so}vbk<18<1A3vPTLwaNLgJ0c8CH!mJY0UBGq4xhn z)Op8K`NseMy3evXWY0q?n<6XYM1#s`XA?!Tl^wUOB1%Sf5)GS-!Z}uyY_j*>WY6=v zKacPC_xS$hAOBqEy6*daU$6J;{d@^?p;54^BV#=0@}Z_b;wF39SIGe8zRZc5B=1H# zKD6hR<=gG4q?}~Bb&}(gojVxckJE$djLOivN?zDB$b7YZSRfJu4i9_K<lQmkOVAye z>P?G!f`EC`Zcoz?43`Ola#z^&@t40;n$BG7_vcyERtSo?OM8FiZ=IIh*;^ORmAvd> z&1%Q912s$z&;YDX0Eet@&D~J3HOxrRf<24j;Kg@W<#N7)Il|Ato9cweGL^=Kb3gaI z=s@5j%nAKU3BpHL#6|daZh2mP$<5^Mxjtpg=c0GNZYv1Apr82+^v#e<%i`aqvrri6 z-oA5KGh6G3J=mG|Z-Rh0(fdH%ulXT*^k0Sk&S2{YRPkLK)Efa^#2sk(Z^U;`>m0li z=L!&Uoe4luKWVz9?bE<}bsTj<7Sw1t2wb|!Jt*%OH+_t1XLIM?;FWYQode})9sWH! zv9)fNwXcQ82<M2`c|kM8$VmLJ2I;*kNZlm+eD1Ge{WX;<;s?(aW|D804jT$R(M&q& zLhiW8pvGWsgrd*95IZf{a`>My%j$T0c)3&y?(||J{W*9NWp>D;1oZWF@c=%wKA&{; z?$G4cn3;4@-4m8z@;nfdU>YeCgmFOK`q}+sL_1b^%8Xqdc%cYK_6C3k^t>anfIoRR z0a<_oiRfqSZhyolVjvhX#2hKy0QQ;fqj7lijZ=b(0(|6dcP>!hvEaL}uj-Z{uv8~M zFfw`3qUj0ZqNWCdXc&3G`1;&clA>dth@ZSLQQW4!wyZMN=s|vvB3zVNGmE2l>q-;; z`|ESt;7q`IeBI{5$5|6!Pjx6sj6bW}k-KSc{k<>5$G=kX2&wSM=`gi=DeeLwH!U3C z{;Dsw-uMI853HCcm}APG4F_Nk&W&IoUpn|;-%NtM1p5y1L1D;{YUCFCM@+sc1efd& zA)hv_xJ*Vuda4m1$cNB>+PX|ktNg7|bb}{Bn?s#wdh}9uUGQ-0YGSQo>kp~v_slm` zrUvxr4LTwsnOmZuGa`UX5!t6T>ja*xWA>rYGV<Oay%3qnqHz$suTob9$2S!x4NA`$ z%Z=UxxWFs-q+RiP6Mmd^+;TqhgL4<2$uG;WY*fZ7{;+ofy$eqPbuvJ2QceT&*V76i zB2G(jr{c+FD5n+Dv+!fHU6{0mrc<s6Uo)TnG1Dme{siJ!0hNcP4sEEkydHMYzk%GB zeR=vx4<$e`3)JhtNj-T&ZuFWv<{Y(7<1NFZql*yH{)N1`N!ztgadQz}S~@OYUq$+) zh2r!<mmrcK$T<4nTX0QQHDGA$GhXEi&yk5YXX}gO@__#jtABQFB0A^q8J%NaX0C-r zwgsN&tb6V5t7Pl3P0bx9q8#6KlOwBQ$YOnU&w#s3t^Pd40gd0PdT|DQsEnmev<I7G z+j&oAj9A@v`KVWusrr@7qrq&`pC2&bd`L0_w8Ze?)*$-)Cv>pCF9|^+bj_b73>S|; z;4!w*`AP^2c1MMZ=qjHdJ629Fv$4x7?tR0dsOd3wJwvVz*UoNsm*$l@&;&B0fR|re zb?w8fkdo?{sO5y1O~##_(t8#a95p#)t`9nXpCkeUi^u`L?a;#E;Yfjq%6SJHOcoVq zQlBL>@To<7qK8E*Wa{Sx9Qk>kRy}-YKH7h<5I<oVS}=d<n4>@A;<HMK{2ob6%a*0C zVgj%HeE*7qK^)xYm)(pOnVcBY1l&j>?aGR@6Hr2%k0nri4FDkb!8SX5pzR+rD!ZR6 zJdSokH`@FCi()sv(j|LdIY;S=VOgWKpSSYR4w97a5^cvD=8wJ&0wE-_{YcSd?gur) z^7E{u8YluO5PNJ}WXHo8P;ooeA*3gA-$7utP^^+_#vsBSB;=~ZRmDV?bZ~~QtLpc~ zaf!1W4u|Nu`|7(>a%li-QebWB&I)Q}*!>#~IeJq7HOdSqWrwY<bmStA+$bcIB?QP{ zk_7{10!L)NH0r%F_d%q>wOdSsHjppww3#;saMpdW_rU`CE8MUxNpmc%k05g~jXA`U z`41s?ceNmXsrv4~opGHUx89AVI)&<QYp$py|2nHtfJR<zA|{iUjZNIW`j*TCE<W-n z-DvPUsWj~M@DJON`FnG-v{FV}ncnehPGWFSa{zlZ1)-C^DReW*`iwspe8JiBGF<Nt z%!kb^l*kOXIRG9A8JYcCeV^@k_Uq#7!Gyz@P!kz5yo%>zH2gBMm>IuQiQswPk78GM z`<b?(4V<~R*TPq3#9=#g3kRn}0uIOFRtN+CJ~~lfJrhUBH$`LdHv5P2Sk%ua`F*D0 z4A*v8Q@Nzuo3c%-L25$6CBG{l7Fw-K<yi$XZA`4@SP1rA)ign@$Xo^$Qps<)+mG%2 z;22`Rm*jRJ&ir#(@>Oj-XPig%h8^^Q3WZB%uPbErkE0;YxW(^}vpoGw#>W@r2Hx~v z%sjqVm9TmS<tTU`1Muh7s&=0XRIe#0><NIaBRK|ym>P7-?9f<_HuKCzmLZgef)$-? z(1S<ne~kb{?tk<ZD5|e-E5KioH=A&wuo_VP#sKmg(U_PiJxI$t)Tcry9lCi#y0K?y z>e^{{>oj(AulOhPdkPgYHn&scdJNH27_u{xYz(+;jueOHF82k?a`4uhzgC`TO&8j* z><+dLpqmh?w_#CKq{f|NM4ylf#zL<p5XdiHg!<%j9L3eHm?%=QY(zDRv`HPZNY|)| zr%oyC)@_|Lj&Lt<ad00Q?OvT{B_3|fM*^Igg9ny&gfD91K4iYLbATCj^GAh{q#ioK z!^?V50XoX(@b0Kf74)YEQOAnyNdjGzTM%fwx`RnemquNAY$gR_LmkB5aEEDkd;7k7 z5PN*yxo`UMz~Ys`uB&kletMaq?}uE8FfUM4ghL<@d+O}$IdOWX+B;bnQf_smX1Lsl z<XOFV=VWtfs-BueZN@m_{G^J+1wO!xV0uJ@(VgmubnEaV@(igmA}GY)s15ZnL{i=} z5)8fq=(J6FrxRrL{GSWXk6dkamv;SBuREp|Fz-@07iqgjR}ukpL-z-bv9Iup+SEt> zoege4H^t2EI~LPeT)u1Xi!tX18ZHj{*C6sy7IgFgk>Wny4m=I)U-^Tap+JA5e5IXx zR;1*wot(CsdB<+#ZpW#I8E~h*EHREy?<Osz*GC=cGB-X<g;B@a0Nw^*+8^u%VA>_O zE|xoz?z3JMefrv#seZUHEAGeoMe2rDo(3D$$vFZ`ZHstHIr@fHEri4~e=_<Owp=d# zyV7}Q^HkXNW=GRUCw@JPG##+p3XI<VEp*dAfGY4wT+g6I68fNxVS{<@J<rOA!mUH- ze!lW{!$wD!<Y4ILWz(a41JgUZ@*VG5j&T&NUe|n2%i8{->zc_0CdJD;DLFI!c8_io zN-DNDj4Lj+<ngo9?M^?-pYp4<^l{$0+i}+Ypp9=c{P%l>oY?bAKNr;RSrCN3&QBc} zZaBY?raS9PaXa)Knu=tp4jf^-`k3~lHTOmv!(XgqrqR9TXMpAQw4~3sf~8~h64yrx zd=CaC8Pz<!_wAWm_e$4pwC41F|Kq%&yTmv!^5}=`7M38v@7u9XRyLf`P_W!yb#>I? z6$tMwf9(BgqVIy9<%jDYE7Wby%C6IY-gOq7Smw~6U;Jb6HS304=-<G9(7!KTP24*V zh{~5jPB{;#746?kd}(1DG9h#38p<c3;wa_)hj$ZrB2{u97b?1;_cJ^1^${0ztV-p? zNiWh{?8OW2$4}fAXJ##Kad|q(d~2{QzG1@sla+~1Xdk&Fk*nz8!{6sy*XZ;weSgTU zY!Eyyg==FR@#9}ueg2f4(<}NG!QuC&+QGrD2kVGCpEZ4|^l#TlSF>bZ#zy0>0N@@a zCzziQF5)apn2-VEXLxbjMpsCYw=RY>(KZ?uB3IV<49gL#vxmFSJnZZCEvjsEqMp>$ z6}0F7a_P0$l65g-)X|Ph-%T=tAAD06t{=4Ete>oRGG#lfHP9L`>Je94SXkyUFtIox zrZd!g2kN5TNdjLW!iWGc{u}zwhM7Pm_-{%jG*0uvoax+8pbPc;a9f@ITH^05kasg? z)poc0E~)eVJJoQ_PDQ_~ur98nW25(0qHc@n)){+1s6ca?i@C~UY~mG|c&iMTHgoI> zrYSj_b0!I!wee1N-*ngBhv#QzeI@lA0zZqSLzTLk(ZLPa7gEuD3Et7&eP5c!ohaL2 z!2g5oB_2475~$HK%h?m&r$0Y{7$zpzG?=umqrm1x!;?3@WtT4f*gE>sv`@=L2E~H| z4cj@y2UVq+SkfeVz+up)Z0Nz;v|Ya17)8~pp{-4GH|~nPqFRB_LKT|pP?&TU1e^<w zr;+TTNzXM?`Tea;alpywtFA5a<59B@c1P4-%j~S&r3Uol<?&c{GO)>K%B(*+UVDAd zXkVQ>!}>-Vmn-lEVx3iSnqS^WtVlmv?hyLe2&hn2|LcVyCUPM=_CH<-Bjhi=%{8%O zb8BNG<9!2v$43W-hll!yyZYPIUf3@lpNMP9`{)~ovrm^`war<KIaqnjf7ef%!Sx&G zEhcBlG(+(=Q_u=%+&mM$6l+T~Purn_^9tIWjA@ZEKls#fMbDJWT;@-ybRLY9i$3#V zal^c8ym|g<3?BGHh0<4<=-Iv)wQo;cEyZUu!tcVE)`PzV`mfJe``*^dXXXx-zjUr> z>DM}Atu@DVdLEoEW>Qrlh4cbi<N5+#`y@0+Kf{5&NY%SB-J)$Foe!?Q!=yFS*=Kf} z0W0$;{?CVZ5}y_FjYPMvbY7yN?;S^~LhwSH5&vbw+Mpxy)gy5vcnk+jZFBar8c7wM zsm6ZOj3Eh%Hw}{~jkwI4Q~8Hlw*tyIA6V#3q5x=xPxS6*zdPSw6EwOAKMeN_N8q>M zn&v>t7Yh_V^kiEQyS~2avqw=fq3nRjqBSx%_u`uRV;i?5)d9g_yfN!XC+8p5I9%PD zgb`~Plks4)vfjw3Y!E7JbW82-wzS*!><q$tb1#BwO_JdJlMN&#>`oBidIqW!L?gWt zjhm5DeCBsj^Mj+e+hS=KU$(EDq=kuT7aJWCc&JeLufJbw7?9V$94;)iP8_EOsu)Bv zQ%oy2pLrlESFH4{+z2AV1YRVWGJ&r?)y~w6qUYymw8zErv0Iz+iPL;|v$V>uweo!~ z8b!l|OFLtPi$imzK=A49@f$HEGS$-?*9*r23DltL&7UIcCOZb$_EL~?{HupI5f=>H zbqbD4<b=PT(kr*O_aCGnlUOG^1^5jPHVZt0Tc+OCJDcN8{Y+cr<;C~Jj#feM;O`NC z&041%CGt@drp@)EzKRafO8}5pFMNJZQ9WvgJ^e3<*QKbEl6aYCMTj><gl>>v;QuMM zm|gJAinG<hesq}P4UpLYLo!Z^H|WhLo?8i`Q4lx6#xt-VcQ45s+4SpL@k$oFX`8&M z_j4pG>zj8T)6>kLP%o;Nee-f$arZoN;GMwEYIT}nRECm)Ky8{jbzoZAyM?H=JeogR zR1tCNW1=7JZb9GCf(E&chd?ly$*~#w5wT(oSdPg1bM~dr#kC@2LGC}^!1O?MDPyQ$ zr@<253&avo`8ytLZyj=fZo&W#vMaS~m2Qz9hQhttY%Xw7Rw%psD;Q-eVxXsetr;!M z`AJIxYf>|C_Sr~nI|}7P#iMm@j2_PX;eGLL#lUv2s<q43C<ZXnTfu?Iflb~Vv3n&+ zp<6R8y+x;Q)z!c0ckyUml~T7Xagz@{O2dadBUyC7T;`tsBaNh^9VWC4oVDtga-};G z>QkgUf!rK0Cm!^fT*m}AF|AQ?-vIGC0a~qF(A|-+mt0YO)~)me-h}%!#D{*Ls(&Q< znxL5Xry=rLE=6t;qdz2P4<2&w%nVGwu`m!JLIkt__S}{Iq(!T9ILf9Ebe%SbW&ry< zK7u$wR#zK12+_lhTDaByJLRv>w7tf#KM{|cOD++T6I?YTwt48omP;*01>^G*SQ;T- z;<+@$<f`VCJW1lpS~{R{empGw=biq%2E{7=CnYO)u;lh76)Shxwo*$uyt@+(IG_Ae zOl+QuM528WRZCP|)#?nE^T_y?*<sEVl}{nm;NSWCoWj>>@eb;#O*?-aF;4_dP>roE z3bZ1F!*pTM&3=9r7MASQ9I|ueYaG)1XGeDF^1a_Z!=grydLl1Ew186j5+8?)GHeBJ zB_c->n860E$i)fYlGelrivHkZ_V$FbfQ;=wIG@j{Ke9W@meyvAbT487pQQL|*09yN zkG@tW)4rUE*PPcJ;lG+}rcSag=>2l-GUjl~c=G)PNqcCgyxYg<3f~%mT|W}VXK(D0 zi6z9jZ)$gc4iZk5JwT-Fu*A8!q?4g2{bJpiJ71`e?M(FIwRHTSWb_&dC=j+~{VJ(O zk4U`d&r{6E2b?7W&DGCe7w7nytnRwrcrdIEmwD_<@?gCw@`wnZMA^LF+O|!nN*8{P z;?6oy42hji3-)Sf`e1eo>hcF=o1|T~8}#_$?A?p%Wqmyq_|l2Lv(6WrpCt5cY;~Ob z)-|)WWw@jBAS><=2DoU**8D#-7D9cU(kqcIIf_pCr_Xo#it3!+Kdu9Ty^Rc+3r{pX zO)>4x1*)A;ev%)ho&BB$>UkY1OMTCR6C)_M`67j}1}~nE*mwT$eE$uBQBMhWr8|sA zmR#1kpL8;R(zdAw*Hj!W!wQ`vz4lZ{Ilt^NlGt=&>DF{pYX~$cxmU`ty0I>;_Yw&T z89tDjZ{=D>DN1#swfxV55O>%nSXcc(cb_aWN548DiH-s@@?UYBG>05A5kJCepA?^5 z*2?s`u5+XMIemz!zY$bjjZR~<L6Y53YRV>)so|<6zBZ*QU3Kr;=GZB^Rd4+|`}sm` z{6kf!^yP$~^c$<9V+ljM>w(o|%P*rF4M^j4yvw`umF2x!IKeFHSbZ9k$4eTgGeobo z!rZ6mDAGzCQ6}EL6$5i<Fqti6`SROai$rb1-nU8D-VbsRTjC-~foep*P@`=wtz5uY zrRh@Cei00}Fu*&K#N2_}<-t6Z{#IIgn;NThqPck{*xB5VWp+1sEbVYoN>@gDDfHyW z7tKk_zK?qT*u7<*{C9?9!u3i;j)|Fxh{6M{F7p<QI|CWQopAzArpiNyd3IUSsR1)C zki=VEjzh=AGgX(}&MoJ!rK!T5BBxOc!81gn+8^~otSK%w4Ps$ZGTKK{Fz`L8$x4^p zam7NR^N3%!EjGr~9-7()@q!Tv$N&*>M+pFS$$ERj4F#xdf#Yr45!LvOQ+zZJ{}mG` zqb-I5p@dwXhx=5_*oU;3CX>a*Bhpqr>ohUVn5HMIJ{JTJY1wq7?J6H8&r3o!YO%NB z$G7c-H@rf%zf@J6jAvd`qmAX$l^MAB41LUlX*&Jo-P78wznjhlMx0jjDn6S97;F&H z<i8x|mHUgnrAI+KU2MkwG9NlFI;2z#cpP(Jqf)6uv2I?&ZFI{vvB8^*GnWIuoWK8f z5(x^&6nyufyc0{r+GG_9nH2E!g3W%$jCe@>uSw$v^4soEE^ut76Fl(*$M(nAz&?|N z(W4_{j%N;{8@SOPE_J%JRO@?_$gNpyZlL?$j5b8281;je0|Nx5Z&S1MoB4jXk=mFP zipj(k|GL>t-L>$WupN>tn<?KVrt&#*X8%f)JiU|J-4;uuzonwNLXIPe-9OEO8lpaO zSvO`s0*XW=(N9fmX!C9eTa(`v&mZ`CmityuzQ0u09@=$ZeWEd1O%`g^b}_eC6(IPR zm!{Ik-tyoHduP`Yb%X%--b5_4Olw^-z(_8ox2ydm%!xkm2|%3(BX`%Rf!61*!Eo0J zcp*J&LXx=dXHG}hKre|1tUQq^T%^bN?<hz5pJkGeh#Cc}_l{w?;gQv<%AJ8|)M_~^ z@jdkc%;6-FA&5CodVLUDQiTE;XRK^;XE(4~bQRjna>ZM3fN}yiwZUPaY~|Bnj!TK3 zzxa8+Jeg~ob*Yi(v)6HRG8!pV0ug#!^3+Pk#6oGCgQpg=sI0Q;WUAHB?z`d-Z=Gvm z4(og6<x(Qqz>F?G1N&7Eh&k2jnEuRBt&ELb&225W^Swew*7?kZ+=3s?x1X&hW1Z1f zk8S`k^*WdC0-%Qo1E<-=;aYEpQdeMl)Wixp-7qCrul8`XpNV7Yb-jZ>q9senniO92 z2ZY_yxO*lP>#MYvf*<ORWcg;*eG^Z}h*BlK6C=K#ikSWE9IvDGt8%Aota#V@SVgto zwU)p)C41VQVe6s~-*NW3-YWSzC10OAGwKuuP_#+u;6HwEa-H7duU+-y&(5|ohw04; zQ{L82xF5zg*|&(87fafx^gyfs{Nh!v?$B$gFz2-%B8-XHPyaG#_KZLIsO14(g2Fdp zdaxAP<@Ol<Q=bs`9f*rJGVycUOa1_Ml!Wg4XyOk65bMV;LitYdE$cVZzwZL8jd2j} zegcd8!~R^rzpOI7+}krb_2%fqYMS1>lN(f{2Q|FEz5~oosOCr$HPHe>5&hcg0*rFQ zAqjm+NzJCtZ4&;Md*;2GP?w|Z>{AYg&pK^cJyW~yj?~Lfm}5h-VTd=4U(BT5y^zZ% z^+joHI&t>N8_LhBmR4rI2JJJWf-GcI0KC}`ZGCNfi%$&5VM4SX{e<44qLdEtd+aHv zK5pu=su8c+!}s%O%3dbx<l#0=AeD%(10!58NeYztnT_t$??+s~7>ur!+BXf1SWro# z^4E&|_T${Kd)sD`DeyrEN;#gQ?>d-cssa8?tRDl@Pf=tlFqM_=%}9V1H&*yw<IJ;A zw_JXW=djSx9gpE>!}e?Z_I9FgP)M_o-s<eyQINlOI-|t>^|xA4T1#@;D;yH(<n&)k zaYw5a+XQQ6{e>7|<asmGmfcafU1~thgu>O^-G9F6>plEF0;-Dl{Ummx?7|7r%-#az zBlk<UN76AG1OzKHgjMig>_gp)0TrDfCc34jVL&PBrGlC+NSblj2fdR#ZA&V<Bjr5j z0g2ZnD9;0Op~~OS;z;4M)`$Nv`D~zM0&Ax7uuc1Z=86JfbO%FR=7DQZ3HraOz!KXZ zQ0fi<@dp-ttved3gGnuuB67i}G$8xgFV%#m4JIu=Z_k0H%z|>pB~1~@_x$bcX)PkX z2nrWrW&a12u5<6WmO^D#g!$M}d-zInW&or2z~V`*T`cEnT}cMnH%ruD{2p{aMT`4u z2jW5u_B*;|!*pkl3hW6$w<{i{(E*=rJ|7Es>bO9{@5o>AckagCoINytZ>&4v!$d}0 zGaJp1VIJ!k4D~FNJ5QL3ahotUwul3j4~?3<B5y72E{Ma?LD`spC}=g)U5i-$`Ue0L zCm`bM@trM1!S_$oc4)r&=jaeE9aj{&6%|*4G45;V@XNWE@MgPMK_NTIzx{sbIo?bQ zfTac@Y5y^$H}kAycXUOEbcL?XZOD);#df%UdVGn!ps?Y}BA%_Q{hIWeR_blg>5o^& z(~wtxP;z&y;{`rn5j~a*Y9RYr`5G1(LykhnTAy0*`V|xN=xk(B$dn2E)go_e21u-k z=lADXzG5lyUn&|QuZ^D&q#YM9eX@x(!L+j0T(5#Ot&wUI-zo9yV6g`^T1)~dA5k7G z9rD+S=P4|X5MIEK4iQ%w4(;Ku0Z-_zHV$of)oXLw3T13|NVV-8|04DL+DY#r=e}#H z61lH&QUZ!HZ~$@@0K-Tez4fBD?~Cy{Ig!(1CQ~c%%Lmu0kFBOL$jrZ9WM2q&C*#I< z6~tH1#9RqGD|mnJKig=bY-eazLOtB_q%uvlH%>_4-oA*~BlWhC+vqlC(8l{#3UZ=Y z(ty1qRM4hJwLH|U`A@BFTO7rt-!`Z2G`0f0mMTeIzP>0zZVi?Eg!EG4&H^8whp-C@ zJb;?7Gm81K0r{i90O-FzvCBgHld;ZFG5<9q`Fnau;G>(i4RpzG1&WuS-PWF^qvm1y zY6qHGV0wm8ng6d(O#GidVT|Y#4_I8|xfi9Rq-3R3R1iDN`utc|b9Zl7$JpfHK>Ob< z5uJ_Wi7B0Le|jtNT@?D5d}u{ILswcedR&)xnft-JcO|y5`-A-zmy8MgcRJJF5;KHp zxEc^H1Lot!OGPaw1U(xK4UN5|SC+Dh?>zfw$9&r7Y3UGSX%EG5tMty$kVA1}59xb9 zX0)~r%W5;CG4i|h&9qmOlIL~hy&fG-mTOuNXLyzKzBk8l=}6P6Z3_5)5nf7m4Wp_W zl;?)28tc7LtJ;XoNkYr$wmy-Pfmh_*qGSTXTUI{+mfd(`IQz+2y5SNtcM4I~rK5eu z8L>u<+OH1f2ZouVAMww4eP$%0HE?IF2tcCmL+(MTRiqb>mz<=~#!P}1lpwmhbiKd9 zEvNC&?e|KIQfTJATNlz#EI>b<c{{Ua*~*T8U+;{Xkb3!UTs!-FUoGv#Fsa`0WW)8b zrTXJH$18*zT9)hfHL0z5+o_s1bTakihxpVLzwk=ceR0ivd)dfmDMn&oH-uDHk(t55 z(Zki8`7r2$4Hc%H=iA-la~ltn8I+D@JatucV{_)YFYAVTyZqAIIyB5na@@5YwY66N zQ5WMEeoSF196?6T+_}9JJL~F}IPop!qLk)`e#-eJ=c%k1aW#QC?9szQv2<rov4+Sf z+JQ@ezB6<-cu}B}DmT-9Xy1KEPaoYN$IlsYuBlAqVVK|1Wah;|-%1nX!hJ@*jF=I* zp)iKWKe%t!>CTy>B|6iS{Xf_y=Hw?bMO_eF5@Qi|sT|0f%4>HXY%!E(nl$=enDoa` zx=6TK?KJ}SjeqiD@iVa^jl;kW$Tg?uNXZ%|)c+{_u>Nz7&Z}_&t=}_eCObGX_dWjI z@j~6#i^n)gV`S-T>4M+sg?<)YJFRq?miEz`<IihU`fW~3MzWbpcdYxx#s)qP!actv z!9tRN4=(QcmX?`b9i^k2*a}#JeoyxTAeBkQvRW6U9ng<qkz#6iz=>g|59sjiU9x}v zxqBr*1n5J!N41s8X(tFSixs4W`)%@oY~`Y=@VV9SruQ7Gr%|~2M)*#)&}DReg=(nH z{Hkl8Lc}1`Y{#xprP#~xhStRwSNtN(k5Bv#^`$&+R)X3dPsd5=bb43(O0Z7xmcuUK zP=p$HMWW4h0^<`!6M2R<E!oW4hny3@>sk{pf30qjsP=tuK)g)nt()SQv9$J<|IAT` zdR)=dimatx)@q3MGC*Bh_lhxVCgSLc=#=M@{|0DgT|6tABMa2UF?OsALnFqNq<<@? z-dfvf-XI$r-h23d7TZ{Ukr<8tnL+a#7IDku$5qP!nX?H)icTLG&$wS#r*4k^yurJ0 zG1_U99S0N~Uda5ozlrtwnvRog*7zV}?Bn^&4!vJB;#18SqxZBh@VD8S{e$**@gxzr z>1S$I;Kcq2DVP=x*=4FM8S?e5EF0)=QD+}0RZ!swzdu7&+Q^Ku3Ag_BE@^mw&z439 zgrwxr;x7%H8^+YVTZIx(brz8Wc_(tIxZrSfypo1ce~H*LM@L8Tz6VJ>ne8^3TmbWg zu8lF?4+#ubvz1&fg?s{bN7g5X1w>_DNd6l!miYK=X{0Hd<2$2OX}j<$N@&?7$bZJb z<rcVL$4;+!**6JY3jrA+M-PS@lD$S!X!xfxy~z4=h@zg<vN(iFQ<^Zhp1#ZSJ^uF} z*;T%g9jB)}{SloHGiZBEV<|nPCbU)RZVi*`+XrIO$2MN5wJ?ew82e-3fp0T+@;9&E zY#ia{aXn!N&sF|G!F|({p_iPKPNHH!z?<#qt6#}c#Z_EK!Ye@Q>h^v#G9vcH`pYxA z+qsOiQO;!BSO@LIlaDqkFW2|eKSoEL091Gsl4dD@F!*%#?&fZp`#n={ag%!fR?q$| z<xl;s-|Fk71%9hIF@B72)AitM*$2o_1eUyRg{z#psRy3Nr`h?lh<vbgLC72+O+LD> zPv;Eq;U9tQqCXyY6t}jAS%AvEObcyr!Eem!Ij<Q72>CyQ2g1^EDB>-B(j4Z~OFp)8 ziZ9QnxLlWAEb;3P(y{Ec)GE)LQoeuLJ)l1ddIGuNOG6Pp@A=NafV4KV{kAyABpOQ3 zyTnS!@jWFvjUf(PLDQIH7Bgu=7!w%qM+aQJ4)0FU2!0`zKQ>7egV8eo`I<bJrqA{0 zwfX*Os8o(4i!pY;`sbMY^rKI3>!B6fUE|lB^8Nw<oRta2u$(^6CBy6IfvgF3`O8qr zc~UA<Smmtz*7U#}^S>hW>&xySK@wPH2y@gF55)KYj~<HMu^^-@1w02&7-nNB<vUeU z#Q67qQ1WY2(?1SGCgw1K`G}rK%CJ(v?!!87L3qOV_H@m9;Sg$-_ZSl>jTG?lTl&}2 zdI3hpF($ZZ%Qh~B`$0fNdISsbpYU~Ua_F|cKyYs+cBuE|4+x^lfjGIr@N@gUb3I;B z!<V*we%`>pYqL}Eb3No-QqMcgu&bYCda*+b(&RkDJT;Ux3qnIJ0Ju`7!oWuFL)^~A z>hqJw$HZ^?*>--u!qKXShE?TEw9~3EYP*cy^2Z$?Z(r$6CrhUe;+@>rN>ZWTnmDDj z-YNm6`Zcr@*zjDY+?_E~ql%jL_GFA_mCfE}+VL2!LI9-?(P+@iFZamp%YjZwC`Q9p zrGDvfVH-il<iBjCCITs2;Dj{V8N!J3-1seH^Bm9vxMBD|vgOp}+~y3`;GN+S_73f< zc}4q)O_s%e9WH-gVx$61P#sKwd?-T@W-&g_b>G8Fks1w%x8stRBA=O0cXx3trjWkY zxy=-e+d^%Fz-E5x1gN85Lyr#0xv{Wmb+0p>zZQ4wTA7NvuW4Jtu+!l^caW?8q{zG+ zqJhUUefI(aQDNtsNfi&*a6!b^+gL$A-*jx5F-PE2Iv5W^w|%SnD^{t*v_bV<usc#X zp@#)dog+6v8v#WH9H|(2Lu;iU8@v?wYl<V&&@v)f-iR^$QF0x!sL4S?U&pMVx4Mrz zNv`DqTai<ymH4aa<1a2cUIUJV3A8kHCGCoE&~xoQeaQ!77I+*nTWXl}nG6jm{y36; z(($gy%t`9gZ*Q!AyJ_IRLnzDjEC)L@n4Ba{2ZjaMY5#1SQP3IZRCxZR%apWg=Bp81 zp;e2PdaBgs8JIS0aQK;DHqd8KQA6mS59IbtAOcu^<+rtKWwGloe#kO)ha_;gZwg>k zP-+k2BNV`bwik~8N=e9O&Hifs8LM!M1Mz+0D3d<g9EoSZ1K&r<lbtmAZ;DT><OE4@ zeq3I5&prEr;i>BW2@7LfbZ+n}B($=_0?g3&Eu*y3R5Bx*l=hIchIcNn*pp4!c)0WI z&v5_#SL_wta@--M)fY|lefn9Sg9sz0moKHD?(!*6qlW5RVj32pCOd7L&+(CcASaGj zCP&WHa#Ty#eGa-18y(0Q@neD^6zL&I2YI0aKa!XxSqR%#R7D)76j6XEX1hb8;pD_Z zz<@;r)EPNRI*mo>27j<-e#PtgN^<G=iAV5RC7?*K0uT`zHZYkCg~CR8tG#2wTIaG! zF80_Wn$5}__Mb5?X;?ha<6GkQPPXDM#|DMI3A>Gt>qKTY@js0lb{I}Sw`LM^5a3}6 z?5Ojd*8yMtdOUZL!VVYWz-toUj{$_YOZDenFb6jvxtII-izre=IaSirz<R}|Bc;bo ziVQ9!dHm`u1n;HTm?^>F79?SY1c*27-u>EiMg9EO-)6trZ3cQI5ZR6AAP)tlM=`_R zG}P!zMx$_fmjQFfk4ISDiWS2Lg883#x<-)}Aw3=jgcNPQIqTe<QP0MaC5h^(;;_~& z+mjO|6Gq)aM#hG#)u-1~ywLxK?pi!2fm@~;*EkhmMR5s=1-{N`&r~<)<voKYk5@i3 zW0LbPT&VMwk0Ycib=ny@^7>}C1TY*3Hc>~9QXF2r@FZF7Kvz&J$H1~*%1YS~6G4D> z@!!$dSGsM~2H&c2@7A&k{O9+K(2Ln2B(fMInE#Y)_TNCAklMHneBsy!YL4pEN65K* zJDf)gsOwN|2i1U>>5rCkuldN`V|T7~kLtMfwlL5Bmvk;;MZ^J&V?^e^iT}wgQ|Iog zzAGK8<P%nEpDr#RS$g2w!LHh4w2FToe2foewvO8w<{FhoMVzpS8V$Jj(<$cw>2h5; z|08}`{Fuczmz7U*3dU*WvQM*ViKjK`#cr~3=8Xi<)MTNe;DgbSHko`CDyNi{bxC4} zpMv=tQ)i`BhBRz`wfdlX@iS#Q8=`B0*LqyT3<wTj3bN)ybfr%7h3y&S^!XXfeRzG= zYT1@pUy#u3PJ`e#)%%ap0-I_8%emZj=xI}P&8DTBp8o)SR2KU%{l@Zxqp6wCoayE( z4qZBYBWMf6Aq@N!(VTy>$Qt!(2foN8c0N3s{t_VnVB0NroMqNIEhvDAV5WXiuU8!{ zeDbP(jpm!xy+_M|7I@)vCOv)b3$7N`FPkcv<JPzN&yz+s_Yo*ok}kW~F?~fk;0W+I zp$|GQv9m(>Fo9*HH`WWrBo6}=2t91j&gKzG)ou!xWij&1$r9%Vj9mlAmN&W!vE&;d zK`#yvMfYykCnTU+?Pzi7$s%~nkhCt(>iKLm=F^BA4XW$X4&i2a_JbQ;sohtH>3ndl z9i$w0`z6&32F8yNCjn0YFgit)Z%#Z;HQupC2St^A^Lta?zbnZm5)K)hl@O^F*jK1( z()~2cA(-o5A*?CV)Yc<L<Mv;l-}HVGib~Dn0Ef9ZZ}Fqzv#H<;-F%-(&6~Tk4)J*B ziA9nkZCg7<9UYDL><Pp=)f-^3hb?*kJopKhMF}1UyKx^_;=d)X&zPY>!0_l+*-Z12 zE5wK}z=6ku<MT!i&PVC#9;0Q^)YLko4GI9dV6>~2T7|;Et4(0_?-Dd#nZfF{YFK{n zNj2`HLEp<A@zso9jGT(pKrtckFThYEv{K2vAC-pH9^%f?Vb9)obsqi>rlw7<RHt*Q zSEA>*%)J6lCK^1cIGZm=b3xy@c2!Ai3Nd&+9hLLh9OSf|%;ld7Pl#kl6Hu@_K66Av zmJbwayqo5?#0U&8hB5<pX=Z?)3eN+@b~AYp!TaVcM}87D{D+i7Ix!k`HO>rB_dZ#h zE7t`0_mxJ#+!xYFlG~%4e=VeGvv)z{LNI$Xg%yyul*sTB1QIsw{Xtt?FNDcR1ez<j zGnubX*(qC2DmF5bi8d(c44}pMit3Du5AYWc6tj&jC&{mi55$H`dgL+XnhU?*!tLC< ztT)V}7kf)zP;f1(*Stz?+k#WhcV4p$C+(I-n}SX&fBog3yT8_&9~G#-NQbe2cZxEh z%vR;~F@>|S2AjsySbBwZ5F)T7izXjN`bv^jc0xRH6-?N++Q_PCYnaKL^n}+1i-I|N z)sFUdH*xs2gF>JM^@Ut}#X+wj=+t%v>C3;VF#7<28Zv+JMgU_^oEXOfQ6+#k+`1WP zSvecd{cA*nR#*|8)`yabf~cbYH*te3&W+Ts|KplKruG1yo~wqty?1)3Wklw*)M<I? zbL#3V6LUiY{axL|-K|x~IK#QPnDFEE<<iyIZ?65#d3H@)H(l^9KU@k_qJ@S*sx54d zmiUMf^B3m(We`<6cOI|Pw|w8Xx!z7XH#WWeC=*i_vcH*(<lLB0i;CnQy*qn4e|3_T z=p3`l0g=sjdX_<<WTiLV1^&tJWP<3b5m?<c^96)7T%vk8A}E=T9*qwc8o@tP&B`Ev zwW_#k^4R_ZlxK*0@SPoixAN)*ARjP-F$c6wx41lEH1z{q&{D2<UXw^{BAh&H#grzq zi8KETV*qk!k;97YEmyeZz(D8QNl*2x=>1=ACqG|LU9i9!<EmYRpDDMcBGmPl40aMU z)$cJanirFTc|QtZ&f9i(>59M6fj^vGDefC~bK;wrjmvb67XdeVE^Di!ye;wOvGgE5 zC+7<d(lUD4y{<vn+2VtRQnLsGtL>Ei$9kvsUVR2sHpULACNSTvRhrp}cTLi_$<Va= z5e8sIn}Qy>ED|IcK2gir_#z7b``JX^0}%l4)H3xDZGHlLNdPk%JB{8*Eg0-4=lAH# zDnZJ+{+Dq21WRD56fu5kU@ko8ZD7Wan_i8r#usD)S}OT&*4>tVXs6iW;U1-%0JY*o zPOyZZXgH2%zh`hnWuZS<H#Jz<#yh2~bC$f6)v6RgRqHnVLjcaScnMJQiYf{+Wqf7m zsLs_@JTqJ%0x#rA2Sax9N1ks5!1vP>Q#Mx9oqr`PH=!0Tu<keXgVIe;2w0x?69YBb z15-f?=A8}F_LwlOER@UdSKC*D*a<Vz5G^c!1H$)j)U_b+nq)Sj*>b2;(8!#F{z?f? zNZRsRyV{PL_O-1}>Z6>pS}ti8IdM(_B&ZXh6n&L+_GCF!IZF*37J~ZXl=!CZmPkH& zzHyRnqN8RN*ELMsuwFSo<2U|M`>lpXyyE!003)IlUaW1Zv^x9ZmOXc_Qut8!pkT#- zzt{(9ku-`f2lE`Q)%+JMv3n$f6}Z>3!)j_2s#RU%l*eCrm@lfV`bdP?`<F+slYd68 z_?g@X9uL8_BZ{d43Pbh{=<JN?am2wwgslT(I`j9vOXYC^BJe;2^W{Kff-kN6=n^f= z^BKUlKBJhyZv>ce?_!-MG0CKM>8Jne*ag32ABR->`(2zcy$CO;63v-D$DtZ;BpX-Q z*dv;}X<ZUi{9aFwMdp$TswViRQ?~zw8qENflR@Y03PG(Or$m{d(qB5O5;%N?9nMzZ zzIyLinr{t0P^(*gdG`B+`HYmYDr>Il0qT+wFb>5Lcb^)-kAJP{25a~%1{`~-1W#b# znW;Y{HBk2<RBaHFJ7f21K$V(I6*hIXo}KvC>BFy6gtW(iu#FfkFy{~04@I#=Xtqyd zXq+mqrYTB*e&<SJ*QlF9PH3R)L%HgBH_VcVh~jyGVFZkBirv$l;4?XD@$6^E>+>6V z<6cZr3zcf=!khvP>GAH31KMg`+eHnVwRtH?y?uAb-_Xqv8H8_)1+av2vWT9XIg+7n zS^dqMcZ)D7Ba^YlI#E>o$+>tA7Oq$Dxv!nUhO=>e0pa)0NdkX6YbQ>BYT$DzKTzlJ z;8F^h^%I2lP~hxAZ<!JHzEf4?CdmjYJXA6DIRVBl0XYwa(}Nt?h(LK-@LgU9fD5lz z-uh1%2m_3k`ur*GMprbo=N0ViSoUj{w8qvBt|;eHnlk^&7PyH@(WVU{Y9OH$Sz7Oe zzHf4sob$OEdnua(<KMl&{r6LQ3uWlQPP-$I0ax2@5M*;>=UD5PwrW01r_pQL(U94Q z_%HpITUo!po2p}9fBB`B)YD>Sv*)M0JshVn^2@t3sIL4A>3K9ggK+yq>ovm*rGs=0 z{3B+p#s-&fEopz7eX3W!{lZSKKha0vo+R#q$wj{!Q>G~y`gWr`wQga<FP68U*{?0+ z`>~$3e@@N>a8bFeW%1k9eK?@Q-8E8g7v5JfJ2l^hVWjUommU0)p)+|q!yB;Ye;?MP zYf@04v@5w?>U{dG-&i5tT~@8-on-39HtY592b<n^uDlvWY_vunxh2z$Rvcb2sr{I@ zR9{T_^3lh;t@5asJ7*$oPip4Tyyb{Rh-D97&V&ub+pcOGh->F5ZZ<gga?wQ2Ds$># z+?xdfh6h^D3KUcAws)P59F{(KpP|=W^_JGzQ8(YdQ{r+@FC-0(x%%dN4fe%}7#->5 z8T+$ECLba%Y8-Utl=d6`ZOAz3MbwBkc8O+YmNXr;+<KzyDp82*vgwEsc6r$RTGAe3 zy-jNFKGV0hA)br-xc&FO5$&COWnlF;In^)g4GY6RItjaz(H02iv0PGl^C8DV_8pI_ zQ;jENsjuPqj`To+N6cV}+4N2CRab|Jr|BvZhG+e9UoMI$&)9W84biX?@ML#SsW9Ez ze3Bhq|E*hE9CR9$R$%hK!fzxjG)nMn`Ev41wcJizfcWgOUA3BEYWkM!%ElnGj+pJD zLCY^1A8#p>TT#E>zU7G+@%4>&5o10KfSLbDNjTXXf})WDy0jevJ}{rpyXf|Fx$xMp zMu~?mYyMY@8#VMlel{LB%}R@}Rs7?dvA7l|Y2F|Hc=!$v1E@X*OrCZGXVXXs$wj=E zws$me(@7%Yz@r3bzc`0iI%rXwAUe4+RhvyaAS*i(PD#+C`h0^5;7mVnPUbj1xcXvd zoz%2|(VPB;?@1|mQ|~)$OBc&1G}J~1-*;=FySHa?!vBUwe3Ycm4d^v>?C(Q6P&<am z9khNA*r;D{<r=Y?Z;zctqi}fst=8lcyKg}7u<!A-Xx#gU_mm!Y-x?g$+X@e#G71#j z@Us^YGGk1YV(ut?X2nRpD*)(ax4SNAer>-^aiY0v#}(Mi8TQqWm$dqT98=E)8+MG= z{a__TX}65LoE5HMjd^2KWcJ(q9DH9dthIgmEG@XKfqO`)T%Qi4pN-&PhF(o)J{9*i z)G18Q2(P<_@_n~CdizxlL;JHM;~`OvS51$h*6>35zCN?L9_FxRq|Bi4I{4Y_ohB^7 zrUqR|fqL(bfUvR&OKCJxC3T&I_x$YnZylec8_nHzwgrw*dd?qGdsacbvTAQ<wOz68 zyQ<$y<2?DKCxtW^f{|VsO(cmF%xRa<)cSAzuaBUow?`}TZP{hpNTf(a0KebY*svZE zN`OkFf5GD}v2XtXOH{h_Br`GSdGVz8J6RV6^wM1noc^G+jl*Bd(QJl7@oDM3CCDxl z1fyonZG4~$1QFV{t-OH{^yuGZ>Zpj-*H>5r9syI&r<3BE*}{7%q~Drx$G8)FU!<J< z5c8_QPt5+*^>&6<7JMg1Q3_<3HF7dvm}QWWO@@sp)M6L0fQsxVQ3JE+7sRO#>pJ%c z;P>Y)r-sG?kDV(edR$iYnLS%B<*lj*`$HN6jCPbPSxiYHvn*Vua)5@b`fr|B8@1l9 z3E#xIEW$eT0!-E!JY*=Qm)~E5z3Tg&TUdBX9XMr?Q9ijw?-|IJe@X*T=BsAVz51G( z;ji2qnw>r|&RU`l#Dxpse6;CLbpAL|d6R<@Xf6{q$_pB%2dNo>>GO!y<Cd)H?Nz!@ zQAN*}MsLeT|I`>z7k-9du~$*?`*}9!#dfZ<g!I49CTml_uozn<&?Ea7R;2-Xc}_i% z69GVnN0C935p1zqU!u=fQFt~Sv2D!RBJlDv6O(y;cNIc%PMMeN-JybpyxCOL1_BK2 z7vVpiKBx=)HRq1jlW2W!1CM9ndg^qFGJoFI?<*01jXAEPgTQQqv>G~|$};UQQolu& z>VcE-xgF9-*&?EJ1N@G%6lE?Lj7Tfi0EYI>^J4tuX`4B^AzeC{mEjob6B?v=<_vx{ z)YESJsrOO-boBG3$;+>qxo_<M6}xiL9e_NH&y+P<l17^C7IDdmjeL=}c8sYOSsEy+ zge*R|C9Oi>MT1>A6*3JHqfC1lqx>|<IX~h_S)u$^mB_@6-R_^<fb}<{l}XTqIvD>h zuDS<p@?LenkCQl3r5&x^HG2>Jklub)&2~$E2Juo`mhX22h=ndCl1hod%JVLmjX*8- zq}pq;arbuPu((}BJPX@I8ac9)v^rjWax{}l`AA%=N=Y4xn)1)0O#Y{-CKIWehzD5H zN0PG!R{aU{ivpX+-s;$ej+~`Y_$%@;>!o3EnMch%gx(DKtQ4b9T-Dd$bRR{XX8*-| z4W~jCh~T`R&bz&u`&bitOf|>TtsT|qsRAiJ^OCWl2B_Y(L`1cIIL`{A5-+jn+hm_{ zVj1-Drn2*)Bu%rKA5A^-m!y_ni%^1Zsi}Vq(*;#}jC?3Oxu!DG45}IZ=J*1|3LLDb z0p6Tql1VFC*!EKlXJd^Rq-W!zsaT=zNE_h<a7=NY9J<c=Dozu1y5=`n6NBkik%$gc z1IeA+4l3204L4*=ZDb3u2gp3f+)JfYWUA$lM`Qi{75Ic{#gVNv>^O6W%wm%tG>3ye zp|sq}0L@F+PNo_FEdTa5rRZ2c<#|E(krTtXc+-(pe<LXYD?|WcPpB}HL9Q^<fB@1% zULv<_vmi6uo<kM>X?gO~&~73nk>TL{*eTSXF-I|8E`o1aWs?6F(x%^clt?N!u%$h4 zxQ^lKuc&-aG}1i_0JXMj22hMsalYQmje%#cHlm7kuA?g6;^6@?j14oR4WbDmsD%_I zzOf&#mO}*NwRTPx1n-N!2^G>>o~O^jd`AOBU?;rJ58}of>D$#JF&4<ldkE#{As)x6 zh)!ubnefX$&!sxP4v&q*N1E#L2FA&j-XuU<r@!?CW626-lHRwiHO~3$9N^6V<#A9& z)5vF!;OyS>Fi~Dwg0~bmf<SK$B|?u*`TQ<4s^Z9>#f&F+cSoLs#(7#>{zR4_<D@An z(tudtor~b}cXFJ_#sI(i{qPYDXltxWO87=NdkK(dCVyPVfk^zB^68t@lLZKTKwpfO zipr`HfdZ*%N7P-8z8s&~QKDV5!ZHvx5`0@Bj-aGe20Lt^VHL-5aR9%urWt|WU|yUL zn!7T_6bLxmTA)wy6HJ6W<X5EF`4*glovMayHrF+s5tRha_QrzEyR(m;Xr<#fm?me! zbXOvN&d{}$<fWx0lA6G$MAC6q1_!^EBfb)@MkaWd;KS7nVA2|+`Nr7Vq4yAkAvde0 z0fsiSg>2%~?t1_PLNUm#{BWET$lya~SV!j{V)GBo7(Sm0EHu!E?i`nB#QTcFbx1I% z3nL)#D|N4)({$Hqzw$N7jWFl#X+L`I-S-04!Las-!zfUH`vV90F2!Bqk#<G^3r%hi zXDEK=)N%Ug)AZ;U_tF93lJs?WwLy>{*<Cnsn$vvGU)ELK^2Gh_0k7#(nYSb;3beW2 zPcziP!UzVJ#<Q}K3)Tx&*|0m3U~gfHqBOw{AO~s3JPdTO+lMaODRM1+1Z|}JngMBP zK6Z4Y2vR5M2P;xwua_TI(gF<+=VS$Q`)dGJrM(AGWdgA`*$5nXEBF$cJ_?~Z{|`ul z?D~Hig(-5*S{{eeaP@cp?doYC931*PAtfy-EhDL-zPB|pI5uEv5Hp(9AM?T@==$#8 z;0w><dIEeoe%3B>F3%T95|LM@G^{RV3Qk;YBd~n|w&w%J<KyXfWa!ZZpnr*qSWp)9 zJ4gmd4j>PH5`WKbDQ~{9_35dG9(n=!b1D?aXl*CkKNkS)UuU#&pu(2j4P&2%5>);_ z6gcL4pbl8PZcVXxBw9oIm^ic8yBJX6@iJY0<`8Y5Kn44AM9$~|k$A_Q^B6MFl{NyP z(s2Y?(O&dOiZ;OaH<SjVew6_-+lI#POX6RM4_lZ)5u-U#RUbkjPGqI-I%`WK?o4O5 zsqBkYS04-c(RLbty}YKfqz#AOlQ2fr75}QE8(r9DAhU?j(A2Ttf~i{zWPCV*b7T_P z`_%QnkFyju&a~Yz0pz@14Dn*8Je3uM1IcYiykR3%+?YvA<)w9B$jckjUDjj!H|ljr z_lE7>a5QRie?X^PJ&T%jB!D#M0(U-x3Pr|>E8tB2(zyXXXfX+-HEigd_{7OW737Wr zWgQ$4Ao^V5gXcTzsDN)jdt(eeXEx0l6#+A+Oj3%h)^7`fKR~)iIDS!`o!irF@%Qb7 zKbbxFmbN0~XknB7<GUe>DMX?GOZ=F+f?XZ+%P4w7`}SS{?z285J5JU331sN!BGZY1 zKuf+z{s()1!PwhouQ!U8UfL)fW*s(c)XJQDJtTx9it9lD=cG(PH1?YVMMEe+@H4E- zMLv^b7F;+$4yIiA)YrYogM!b2)TsBzP>RdIgSgS^Es7a!%~eCyj9+FZfPP0NEdNRf zvQym~t0=Jl2oO)WxAuZg@k(AH;^+g&X0YQY1Iq~%W37J_WJ5%VkvesEpVOlyu`E6A z+B&OxudhUWq)wpcPIc&o8tqg((AOwu4S~ZA|NlqScgIut#{FOSna07fi8zWfvr1MR zl`<nGWRId@RI<lyD=MY3M-&=D6q(12$Vg>#?7jCqzx(?<ujlpqhyTv&Ue|SfKJU+a zu>E(+-PX8p8l)iB@dTFO^!zz`BFXX)Km0j!zA8Vcb-~0Il*l9cb)M76TsA-F6-XbZ z{c2_guveWxY16pNpVg7TWAE%efZQ$U$Avh1yX7jd<Qlga5odD=nqQP#K;GCQ4x4mu z>RjQ4YUr+CCm9{{<_T6#vJP<2Z_Rol<lRA!KY;()jBUDn6bk%e05={-1UwrTEw5M7 ztbRtpD*}|8fY_6zzYbQS7kI?A|1Ey$Z8wn3=?TAmEq3RBimk1g?CSd>oT6f{LQiSc z<+Oy^@-VXm12U^7ocMO|&cT1$jm8Cjl*IJfbe6J0qpJJ?<@moLeBerziv|VH)y4j! zh9wgTt-C>O-qVM6%i6Hr%i{sCs-I+^6fpHiQ_?Dzr8ioDIHcNBp%2oz1R4Ge<qCWT z+2ixN(ZCR>K3hes6mRA70GoV92J(x^*`Ihou5?3{Yoft2^!r+XSglEzfi<IO8-G+S zxF`hD@otF3`qh?1mdNAS#4AEgJ0=$n@27BFIxYKkhhMes`e_dXxamqJcl%D;N5)U4 z!Q3JVkY9xfctu{0PbMf5vSsK(MlPhpDOjt8udl{_|JXgc0D`S(M%b;F1@x^**!a9V zH}cZzuYsE46B?_d5@>Trc%L!9W;7d2tybl;FvJXT!_fKiJwFI`z%JG9FWZ7f%F@9? zI6}veq#dN5h1z#l!PXv<a|C*K#epHJ614a7^l&fX<z)Vj@tS1G2FSFo7ej8mL?Un^ z;|3L9)tTHe7k})^^Hc1v>x-G{yhL9o|L1paKmtWeg1jow(+5#ju-|G$&@0yRe9S3K z1RIa;Q*?}*syx1S#SNKNW-KV@#4fCnD<8brILdPc%Aig!h=cO{-tGS&R=Y2~nDkrZ zv2q1h8(^cto9%%D`O3RA!BfcS2hZa>xl4o<N73mQ<0B4pcE_ZH$-PBJFr$JF^;}c{ ziSX=?xJ7Rwu&DgO1t?o~AbrYY2nC*+2QeV-fzPPqLH-tTqF^pkFzb8=X{*sdn<Wx; z648uP5m-}dN!~2<h?vf}B3tFp+ZscsG)3vYb+T>DFas)bU?Vpax;sqdPh}$Nl7iRT zZFLZ@4=I2}M(r?oJ37HcA;OM<?Z^l<-E(=587Pg4m@Fog+*3}YukswwK@B<_3nH2R z^gDw>0g0jP*jpQn{ekM|wtHxVGFx1}<AEmJU+=3y<;*#uroK4A0CXYuk_{GBUNF|T zxr>_m`eboZ1H!x0gAgy^a*qK<b`o5PW*W0Gpv$7CjBXCQT|G@#QUjl*s9@dvqN_Dd zvIvqJMR~w&0kMZ$me-{<<!Y~KPx-z2gQ<*Ct%-Sg@}qn&W$f>hR0;AuqfON7&$O?F z&$WaNMe7t>+wFPy19&h;w-2!qIS<!!VY`)Ao|$5&*VcSoFXc%^3<(AJPexTm&<f9> z)E8Eb$MFOA?hS-_FbZr<f8>Rv9H9`Yon=9T<0E)#H{^7%!0I<gLn*>zowVm%WMJp6 zLi=_G6n{RDhSEv9c`fX4NarT<A(AcPm;lURZ8wQTxUc}QN<-?QxCOW349NfI-<!Ua z@r-8nsez9$aGyk@gkgaHZ<Q4m<r1S$CWnXqkv2M1eewB`C!gtV-O*^96=M6PS*Aj6 zH7*BMf%4sGT{mts$>9&fLK+y^pMPz5Uf(C;j1{h~9*_2|EU<ji*IARt1nM8~-htvf zx(oi@=4yw4?*S*WK3bF(kcWH@B`J7NxWh$Z1zG_~Xlz1e74t4(Paja2$eyWb{rhOT z;Wu8P%it|9%^DpObyOI*Jz&Pc<)UbEJ2GXK*+QC-M8D!V0LsI61tT9p95nKyhUebh zzWNQ9312>2vbSNKfFjs99Y(c0{mLo${q33!mbZ3GvHD^6p7V2Rrx|ek_%zT`J6<@u z*F66tX<%pAxW;JA`yyUh!%jOrR7k^~zvWjoOUTZG(SzR1Hzx$|#1sX@$0!(2+<3+N zO4dK%)S|Z+qy1<cX(al|qk2MPTj?vre{i>p0VLg705NH_&YzsXClM+tQ@2(sN?{EK ztOxh<2QZ4*^oXH-?$aPAiZ-nSnDZ<4lGDM<4aC8EXCE1#<Q&`X26__k+q5!H7K$~; zp)nE)I0~c4Jh@nZPyYD8pZ=uleOVnxiD8INhy;W?PR%|(+-WS!w-8@-v(D+s?R-1Y z@$AYjzp*3DCiN!*JBy1AJRUhRn5>G?L4=NhjmOr+3iIrt)wqEBQ|uL&p@!SD1GK}# zAA7ze#cLg@%HH;g!)4T6bm3+^#L=<e#w-;%c;bPErzz>d`4dkVuAYc}oV+(u@LMnY z(@&*7gBcd#R-LnYUmXPZ+8wW{EUB+8c+~jrcjC`w^j5qN?2GxXpHX@8?BPX86ORY0 zoflh6RIk2!-0Q`U>Da$Udpz|kKH#aN`m<?&33i9v*X#NQxf9ND)~$?_b(>+8zbKT8 zOHt#OzbHQ?5IXiZ!#O+q6!<*)mkV!w5*96cyyG9Gnw0iOePzjNI&gyt3gofB%Otsi zWjWc=GX43{g~jlJ26m;LL;4*p*>9B(UJ33BaqoARe@^WU+4_`8m~HYolR$V*tF#`I z0?H{L#0;e!yyyuX1#;D0=jSIM4+LI+#6NpmL7_B&`nTDtFNKiz{XxQ&6p#CnJ%#9Q z%&f=lIr6d2*-r}OL({$d*eSGZtFW?J{ZfW<%`4|S>g*|l$^bLy@RHo67Vs$h)TOFl zA7okfAQ1fEi6;HnjqVzeJ8#5<hGPnQF$x(DwxI3?lEoB%WJ4eIn|d)+*PQc}Q1(;3 ztl$*uEB=!XhtM(<y*5Ab;oL~qyylwPp^QOA<(>N*?z=LXw4v|jXuEEsbdKXs<g>$^ zeA0mh?K&JM+t%VaQTE-v=6?57Uf})nkaghZLl6!uTIat-h&=u={OB%Qb*oSGEqI~o zqAJT#V3LIAw4&#rw5rIN8w9yO9ch_H?{?jEIIJ6c!M^en`1tKeXn3^y)Q!#Blk1nz zpb5NG`2fnRs-8JoJ<eTwWy`sE^Ir0YQaidL<2%m<c~fr+-09!3h`Pt@UTS*`mEY=u zFYP1hhzN_aIzBDDdRRm8SgkGiyz`G8B29M)frg=1cS{TOXHpjLQ|r5O=SgU{hPCg_ zA$*_C$Hk{AI)G{$Z<j&_cK+G=)=-P#y88Yz^Ba^t={7ddC&<yQHe^w^&_CKd(l%m8 z`B=H@gN6tCc6mq`Vpr+PKmR9tum@`6eXPVUv(#Iu)%i;-BcCsK6v(#~Un*LZf?0^6 zf{d@NG=YxxYSJ4c2R+p9iCrXf!3n-XPMuTx-G2M+!JvYtm<T7#Bj|vkV2A?1>iUzd zquW;HLv{zscRC8(uTw96xiaV6<f@y(M2}_Z!55h^k^|Mgp1XA}M+a5H2*<}4(sQT{ zH`K};!-m@;(b%6ewthw1<@k8jwp@VL1nK~h=Ki>2(|`rEY(7L9y%^hc*WHJkSet*N zE-FyWxD=*w32!MP_G?r61cssvZK-t$e7iN-p)%#PohOgjFZrJ;w?aloU>z|L#eBLx zwv=rw!r=M=sGhh)FLzuBebAfCVlKZwHeXt}+mVII5A<cGiiGj5X!@zBeGq9c*Z-|9 z?i}<HjbflcR=4%nBs@ggil;n$*s-oTUo$*ctmd+G)h~pRMl>$Mb_$U9ehZ_GyKhzW z>(in_8bU7kKV9)li1q}OuMEVGmEgQz@zYB;mq0fC5)5$0Tz=+BK)~F5O*ku1H@8vs zoiGQFs*`Ni_t9~(PlGlhn84O)4$76mZx4!xp7j)-?W{6gXCUpYz3DpxIe~#QYZJv6 zu#$phWvT^XwQ@3?6?fSf$hML4l#Dm}@UaJ_J|~%aZ;yFaT3B_K(*ug?o+TC-CfG=a zY25eDVyv+Knjoi>IUo^3fda0lOqcN-@p35`uybUL@{-IwwyaWnr6sd@bIq8WV)px- zJ3eQPEx%Qu0_we!e0U)!>1F}uR1B$>g-Fu7D~hkJl>u<Z&9q<V4;S(je!A-A&nPPV zwHeX&3*|{1gJnRY{-V7mh+O@^24vJ98wAUu0A+I~ii-0KbZ@q}J9)Og3(y5_{O|?4 zuH%fpL2a9X3Cuw)jUz8s-uRv%@9Ak7!MML2Q~jPa5q+qeVT~PtuL%KIEf*`alKhC- zntBE+Fl^tr%R#<>e?Gfh>2In29i!h>n8r;e5?~g%uD@hrB(agk_3XM>_Fvur?rpJ& z+-JoiQIU8^=KV3s>aY^o;?2(LH61Te;mA;ZviFm)2wNgZP>!EhElm(H`}sv7JWt&n z%vgD&NM2o^FQQ>yx=6LRJzP+tFYVYfl*P~)R(YBDz#aOM6V}I`+T$rx`)>3xj{=rf zX`}r8mp)n#LHxvfJF}@wK%w;hdSI12Q0TM<zzw}^wh-Pv;+?M+iMBb!UWW4$&$C40 zLHA?#UL$&8!}-3f`ZYbU)Mj3N*>7{E=UgJ+B|cJVv5O*%bNfHh2Ic=l56EwV5|10R ze7)UWt-t>^wf+0|tL4Yv&h8U(QZh0p)X%8x&8mr~OiOqRKb;XJ^6TUtJ!q1N_2yfC zgc6X0=9ewNiv6$>rR43Ixc^j(9Hj7(_(vVncnwf=JKnjH{Ir3*6}fX|j#*UB3<5dE zE57wPXyT=HwJ(6`1DOU4C;|V?raUZpa2&N9tt7BD{)Wy;pwjOvj|^FIf{`|P?>U|- zo!x|(2=2^u(Hs?mYoLg<u3Ra=b5}c!Bt^RZreoH+a=*C{1qaD!AuP0Zzj06SUFRN8 zICmdddae8$wBVqHot-);ByL53l=cD0I5Chx2nvP*ZXfQsxMJ2)Jn>$OeEZ>zAznwh zp`9&Z+n|nthTYsr5c?!H%|yjb5z#DikXXZcVr3IM5nT?MTHNMJqN{pmfX9j^OL%Ns zAu3P!xwkYxJOEwIz*|QHgX#LrmPjYZsOWr5NhQAxq*^s-4fC#8q<UiM>UJGTC3UaW z-LO{v@hK=OM$u|%7GEg>p0?$wS@#2!O`Ex<VLEBQQl)|sq$NX!fVA6-rarpk0F+B5 z4kPinzv+zKWagEbQ|r}XAN6$yP7Vkk>dFY@+GT*EfQ~*@{-$)R`Mu<CF^le{)HVmH z1oK}8C|mb)W|(w;?`iUls=}8@kEB@b4PENiX^Jt67r<#;)_aUX^@ckEp1E%lPnjbC zaoZ{>6%Qg!T<)%8K)lt132*7Irng>>-wzda+wH7Z(Z%xYHxN_|hj!S()<H8Qy0wsp z)d>ho#Kp8(F$+ea0sxx7Qk{l^rQs{1=Qz%StHWXV@I{keK&j?H1B%6K09FWasor&I z(0;w`LUr8DbR~-09D6XhuYy9`xToOcv~dJc8$beT*K@Zdz8s(Yr&m#UzVgb<U9~8E z;nd*c)JNq=AKt~*ezCcE^x~r?wo0t9R?Izgq>SFnCYzuzHy(^e(d;FEo#XE~!mnts zQ=T$`mM!C$1T<wZ(5DlmGrf6d3(|!nzI7UrBa3HpOrt^I-dz%;NQ2-rRb|X%S)V?{ zcXIn7J-p!>#Hg5BxjRV@T>a)!2J!99+Z>`!(H9WN>s=Fs2&sPgAdtOf8UX8Y7li?( zQ6$~(C@Au0<R5&KFfUMasvWsM$N>gcI#O#Ub2=NcdX6TI=GW)9Oy&q11p^-#`cI(s z$fu>@W!!P~7d*nk!SLZU5nva2gOH@Ntr3%$q?CwG8-5|tbmZ{l4wml50pTdHIb<CE z8l34^T_?i&(V(nK9mmmHA@vOw6cnd>+04xhxu`0&f&2Bx3uEv&+S)T3k2jTt<kRm6 zAk*!N-R`5*{;dKjY&vShv>8n*b_H;m9~~es24dkE7eVs5WL^~cZQvoPlTGktfoj)| z8SRh<%~z*8G<i(LT5j+I9&!*`O<8J0<(9}U&n?m8n1FYG68yPuVN)~uuGP#6apfm9 zV-)$A`!_!Rwxc(J*~8-_FLp{&mO|3+zAe7ca`dCjbExkNhvC#M$uodZmhkpW*S%Rl zaT`+iVr)MGpQ~MjY|8b4O~K?Q8fStTxwArgR^66`fRZj%FoBqM_!8*C@a$^-$P=)& zhBxEVW)T+7*1wGVl?(|aa;NXsKC3GPZeEcG>9KgY4<X;$G50k<=V%x(mXzU?N*@yN z!_!iTy~4`5XIN|hDV+nJjB_I)lEmCC`7G{9(ea!^!hY{MIRiyjZ3uUleA-b(Gho|P z(Jhg7<z1FAfu2p4ebmYHCtf2)>}K9Y7e#Z(>+CB;o5<miugFb~&vq0oscdT|u_$`d z3K&pj&1F*HLfTV(w~Mx0Sg<`ih9{ToW1#NUA1%JR6fS7Y)q2YuD%mWf1^!kfGX($& zKK*!@5s7?T*$Qb_&-^e%de*gKT?9Ke0^Z{&oT!TEfgi_G9I(h<WF?wr`@`*%D2$Ji zA_;`!V6>HZO1I;eS1sl(VWeqm9m^@t6|LR|CLU)yA7<6wfJwj^CDKm{KO6cnGUNtB ztt6$EBzoa=wj2}KZ`*zk+2~nHe&SEfeF}h$lCeAn9G5OsafTCr_UPutS|4t<NiZXz zra}azp!R2hhe9EqeJPMXu-f@i73}qaZ<s$DrGpjL$kw*8B7I<Ma11UVavX%z0MhDx zL&02Bl{2`@i0w17frIUJEaf3ui`|nIL>ib&khL5y$k*X>G3$hXYG4~d3V{q6r>2}T z<!FSRd@oA39e2rb=Wt)JY{8^<&8!AUJ`Z+G2zZ^oc&-Gf*VO~h1GS<QZ%!b!M-$8v z{3lB;ZkILBj9xLoc<vAkDuxPBKshd3;kLUWAW!bFfS5_q+{d0!`gveQt9QnLwtfG7 zCE&3cfD2FebQR=)w|^Y0-UjjNd{nTutzrU43&8?bRlVx3L3*82z>y*VH_#fA_M7D( zB!G<{z<I4`&@#>mA`R~ZLGx|0pMu|^PA-Vw3Z6o}P@vw=43c$3pwL4U2ob<iP4qC1 z40HxH-5t}70mq{pT$(PwFl=Y)G>5tc1uPT`Xjg1{f?lxxAySszU<~hH9Emk)&kVMe zqskD1mj;{ZQH@O+D43=d|E0<mi#Rq<vZDb}<^x|iVxD(LAIAe)Hs*^Fv{)=DK$QVa zmi+fhU~jkXap+Vv<W@mr?j|h#y10nuN8Z%&%?XHWXv^yycnQ4Mn}^I%bj0?&%sk|@ z12PBeo{S_1y`m9-OG2ilf=CRlg3$PAHI2?<h)*`IuCQK-ibAxaG00sxZ%JI0i^vj- z+S7T*xEsynsL(^Eb}~iuVB+~JAioI7H27$z(OEtC;y#eAJ0$)<lG3C|2sx{)E&|^6 zoW!>0=->ZP-#`KIoE`&dMV)9da1SD{EWP4So8x^#`uzwE7StB8AkZ88n6w{q4tRA) zO9I2=pnGdPaC;`A6|6KX?#fdj?(gpE-~r8A`VhkE-PhVtM*+9fh-dXx#INZN2E?qb z(xbte%i9|^^u>%k7M4E2h0x0$Z`kivHdBZSA}#=G$^-Qh=%&G7I|A+Zv}E9ql7c8< zG5X!Iq98M`x}eUvi-UCHbj(-I0Tb33Qn+Zt-w0c|np%?axo-zb+gDK&AN4XHT5|!( z)Y(&b@YiLAW0>#hKC-Gv{wQRy%{Pc+0^l*#xD$waz-!xxZD50}3K$$*4_0c=zelxt zvu34Br0|*y#rt9M%Qwe&fXuWTVonss#sV)IWFm);@I{b5&I8D&wtq8#(Fd|*`G6b+ z@?J_&GAh)^vwAUi?Fhp|Dhx2dN_=4a=(VV_m}B(aCd!sQCZRZXg)PKrqs|QViCr2l z-n1O+d-oesH>`=#V2Tua+`*5pbx@_V>s<b$eZ!2`a69I!Ge2lmV}fgJz6Z$S>Coh2 zX$W}qR%B0>+5!(AIMVuH-2hO$woxEpza%(gbL0~*iIp<oe<grm2txDJR2S&Ab|(gf z!RIrGiEU7x5x^;_J0rId6@-d8zyhbTvExXV0v8hl%z{f~W&HFzu{*uUA_TqKlmJA* zXNVu!qb=(tLXLZ~zPdr6U7i-MJj;mdr*7ET$hK;tmT#39{sxm~T)HJ7jNp2jTqCPz z$*_lT>iKf}5^A$F!z6pSooWqg*c!#`!LL^NeO)e^#8EUmI6squO!3OJduQ4K9JiX# zrur651~T2dTy)gt&0lB=i*y>$RNtBB3qozAA+o2f`|}Go;rI$4B%2)mvFDOR286^a z1pq>_S&`Df|2q~rf{K&T<fumoHuZyrDKUEq>#*eNMUGN{>Ib@&8&7eI_<T=s#6XC| zP3drtio%Ps_(Y@U84XV_l^xJaC9wW@e(&KpsxSO!ko<ny^%GtYmX4Vd>8)axKLC0= z{^?rV_-MR_J^P7sqNWK^O{=4FJA<mZa)i5!TWc7&oHzPpQte+qERx%@i(HYt^G$@n z4f@xz%aEQR##@CAz~LbW9gfIW3@nz?B|tZlUjTOcJ<HEi^XMM1?7agq2efqqMo^Md z#sy?PAkqjBps$h%oR5R0M;dm1yy>raZaS0x5={RdmLNT%;YFtzneH>5gtLI#hUmks zgmTXC+egN_L{CvAT7X`tpPF}uSFx?7e5~T7Yn$smM~+Zz*ZG~cTjh4VWSVs9nGjr2 zXjl;+Ta6;rE@|Z74W0X#RMV!t-qL$4QD66wtx#lW@vQIegTugP=3qhS4&_5xU%6EO zz@~>4*ctc*qh@zm!f=Bi$92!1aGA233B-Yy4B|K%*f978Dbu8mn3X4`o`8-Fee|Wh zr>n2-Ta8D!^ml2g$T#?#=8Q|PM^PU@+U}PvIJdvP88o?hi1F|K2uT(9cD4HKAveS% zMELKMuA;Q_#Xiye*5ZrASiE*!Y2uaDH(!=ICs2ZFmdm}D?5la3HR-G6M<{^MQTEPc zKX^(%saK$Ce^>GFGj6tPQmcA~^bed@{I|Dl1I(;vMml_`dTg$Jr!<LOfTN@D-^ViH zQjg6=ulZHE9eYXk%cKGRzdlCBfy;|EMXR)@6&*G4)C1?c&UC^ZDlPryS>~x9eY&<g zzTKJn_^n}gqf@kEOI~oV?^v1sfuE3;+~uy~@85?LRMR2Jp4`nn+TCKmGB*|6lvr7? z$K|g^&u;D>&~7$_mHt=~iDaq_Jf9=SYEqzj7JUZ!eZJS6)@+u(6GQ(B@}3%>IecyY zbYq%QS$+M916r+Kz;?^CsAHy;Y?JJCQfU58^Vb7g!lldI`;+)K=Y-AXclT|d+gmA2 z>Kr8A*pt~jFu0j?uEFPEeRx^m$<$e^3}de}tMH<E(y=V=eVk<T+gnG>aL$j`(aTB3 z>@lBo+Am~sx0>CQV4h#gfP2Mw$&Rv0Wu2YfR%d;hmCJd=1JToCS;@Z<_JKQx0n6^s zPq7o?=M<D(r3B<pFCPQOo&#mX=%gQ%dlu6lqFdEix=m&XxD+wtH68IUH%{9V`o(#z zJum!*nGTs@cj68=itTk*;iE!En<V~KeWGko+G<~D*gPC#bo|Uc_cz5ndBYI^<|0aA zsERH9DYqvv`ZmMvJQM3ObVqqG#$R*~zgy(V+zk_jNbDc@PhUIVcpt>vnmK48llUGD zQN3SXltI?rSNU@<jkV{4nk!W<Xegf&6&c4DG_K1%==*)V@B~KYV`1XW<(1j)`me0F zFs)>G2g?B0Z&#hc{_=QkwQ>71wLE)L69)D4keQDLS)*b18swwe8BuaJ=`hdyrz^}J zrH|jZ#GcaQzI0Y+JeKZI!<#SKfzyR&V(s&yM)mnn)LbD^BpQBU-)nv56~K{$2nXJ$ zMqE!klRZ#*_D!t>Jsh+7Xnn_1A+47FvA?!Di?SWb6>oFK-Ibj7ot?z)_1^8Y7RiY1 z<)fyEdtytrfD*NM`ttOtE5C>Kah|?PbX0G|aQ#3pd^;$kW8?=Y0we;_V`B9ffVX2$ zOZ{<n*%6_j3if;GVc%|eCiCKc)ne-R%kci<sN(|5h@X0(^ykUX<o+sJ`>m__Zj2g1 zQ>h&X=(q^)N>3dpl-r@)ye!x$@oiwZ7x$8li}2m>iz`btpZ?9=iDCkRfk_4@GlcwO zHw@k>NhSTh+7cWL+&c{2$fJWlIPw37i4gdZ!t;M6BR0tYg1Ge@_JOwE?%tNcuHLTR ze|>{}15|3q!7crTW?VWxwc(3?P35Ie@>P9zibo~<3EUhnmZlq&3y;GGVik~CKcW_` zW;>aW5s9HY_xXp?!aK?m38a5y5d<^E$3c6*;G=fN&}Wxk$Mx~lh9mMa?W507;L=gT z;X@5T=(O66lz5jW)$XIt9>?68+Pr%Lf>KlB<jJD^tf0*V$`JIS8PesbioBwnicoh1 z;oP-hd_bqcr0dIqd@2$9@6fhZEa=_(_AA{v1Ce+SRB^)X=hB#C<$<arI%VCw=s@M- z6=j{pV4JI9u-Xc6;OM3j5qjQ}x$KJDPy4(GnW2BU6P<TFzm0cK++jy8k@DRJ_~Ctz zbxuHz)k3-im!ocv^e1h2a7cLZO!@-i#w(?tbEd)%BP$N-eqq}$ArH~UROMy{GZKuE zeI0eLUa+L2g6?_oBr_%K{s#%_L-oMfa^R-KnLe`YnsE6hoD5#aJx#d7wF}-_AM_tE zhekpxNt;8eB_iOG8;k7C5N1kI6=vhYu_}EAKzL_x2;NIHW`O_n;>n&I9KHRg(qtMl zwZ9rwL#2*xPp_aE1Rm#(AaX)pTFQX}{+L?clYOxhXSFVxW#7&YiO}=<(*Fz04%e6f z@TiVX|13fFCS|D!R@y=qWPD!#p0I_YV(7?zyU))~4BY>Z$t@AsI4Wr>`|HEEfT(YV z0ey_cwNLxzb!;1zW!N?Q)rn#ik8P&U7YbRB=6N=QOxYDqKvP^%>40RNw%-jc{hisK zW`Idk8=gG?{EYqa-P)yb6@ew8kesy><g$I*sJa+{HIo=9$<dI_Grr!DNQPUk`siD4 znrVw7PS!mT5B3l@-i-$gn$3?4ScHw{cHbNht#$NxIW+&3H{QZvSM$X^O`CW)#0oYo zmq=&j&k7a^AOTL&@S)b9uTTgnDg+r4x8B^3GfojLaPaOPTU=8;N3!|p$qIP|RK@h{ zP!MEw%cT#b=k`z*e_ZKCW@{_UpCOoUzq4D9&R(4rRH`#rzHIxrIy-btZ0hlE)RrC~ zxF595240^N11ReNA1x$2e7i+{Z}-OcZj=!@AmH?qYak{(>!1p8=7HCe=s*q%SY?_7 zZ8xNIa3o5U4j=r`z>PZL0cud`@bt%$!Qd6H6<K;g^}ND8@x1r;Q7*MwJo;yS&`PZ? z&{H>|PkivfD0sgmLB{YNr&|h7CN#?=haf6zIJu)spAQG?PgJUd@>yQCCoDdR$`DvQ ziNcUfMNoi4-`QSS3N+?=dU0<r0@&eK!fbh+-3?ybgmINLtg2=tl*C=Ue;>=ivxlUH z&^AGG^MEt}0$vG|XQTk&uBz(eS=-w7eS~6iaR6}p#*`v})#L*Zq~Rs%?Y@>dq_q*2 zHuU+`wP~oaxBM@Oj&S2H+J=N4yk$9E@trH^T&jWy!|vJK%&k^U%(#TgG1ku(bDe2K zE0DcdoyBV_-bip;&g7!TEPH{1QX$E(5G3CY4H7?Ox!_DpU59<;kD>WWV#ui;<#-T1 zcljuS1f)-1N<0imFpm!wtSN4r)gd$Cs{MM)N;H3|OGxmMz@v7R<it&BGN>#-llOoj zWwmr!f?PH8;2mIt%Z5zK@>s~X+}<(4J+}dp+!AR5fxGo!sSLDVdVw12!(h^Vn7@3- z@ON@soKl4UQ^Aj4^nU+Ty@}ktiMY3#6sBD2UF$QuQEe4h{e^zO4_JN2+90gODP1=1 za*8qBl3xFV1w|&%+cBB67Eq8n?!S9-5icwL6Wt{Fd9jMS_{{@fLJK9~GdHlf^ZNV? zR8A^AMF81D;FUiJ%CWJ1t{afmCMzrv@`;ZcWZ1P45Og@+nj2Jj{gMQQd<QdX*~gQ> zYSi$~CNj0pS00$am+h}kUQS0u<@?MSK>o0}FT?;6W>?T|5BNdYl=pEIs2*`fYb~CH zySQl1@piUt$KP^5pz_xI#DG;4#rzBFioenE?O4Xs{i1YdTR0h~U8;|&0nefHMO1Ez zsmePe@j(<xBRm&sg6)fv3GvY(K(eo6I(g!y+)l=ohuxP(I}1s?9&&+L;M{z^eh6Q5 zOB1q3!(mN|YYzpG;+tdNhzl@K7W}ozGR2eGc|mODPa)CIRonN`z`Gnxcg-a*j)i(X zPMr@SsQ9KGoIkwy!1*%hom%w;K=LipQ33x20pR!n0BxFxD#$tvk!H+7{vDx+Tt2GG zrTF05=^jc0h8%%*0+nV`a}p-<@z(Wj6o$%nL=XR9_(Ed*of_nw<p=HRxsp<Lxt8wc zzeVUkx=uPI4V*QQeI_yP#uIL<NEhsI%J-CxSk$eA=*cH3RghA9*xvIH6eVi<Mfxx| zRrx`mB-j|#MFXetTKhy~k9nK7j$GqU?&tS1xlw@5@B3aX%FRLySkmmRgTP82F#Q}L z1a|A!H#J+KBgE<X(#c;*dF5hshb)p1Bo$tfUOtC3DKTpw1I<CBJdk{u-ev?`o(rD* znXD*8)0S?v+oGIAnlU^W)Rvm~Se_UpD0NyFUfO-@v8s~frdR7hCyefLLg~1|y(+L^ zjMm#47EuQ;g!g(@<3X(h1+Ou^VLvD>$=z$9k0vMm+l%CZ{U*Or;QhCbK=;VK5B`7I z0Y_%h^dwFiO3#wB@)_9v+M)bFaYG->(L6O-Uv0alF@q^}*v>7Hz>&WPoy79&9e8o% zm-#MapJPB`(>@IDTXBYZ7vPZ0jG?N%JIINc_m7FPeHV~dosC%Fz*G?W8$+-NOpNw@ z_q~qU7|EF_VL?UmAi{jWU#X-&a-5s9h33*kmTPy_N!q@B!qG+?_d+d>vU1|-lhc$Q zPRZ>%B+i@!$v4_0jo`X-MsZ>U7K9qKcy(fh=z7CubwK$|;h=Im>&AMEE|%2%7<=j> z<k)!yO<g#GB0|Ex!y9POzSp{jK`wV~r36jc(6|WhAMAQQKdZdU2>Wbjo=XCi%9~GI z2mJh@zS9AIYv(w~P-)fI-IZ~JAqCRfY~+6pV0*y$zBUBO+{D9t_5j{cd5j`E2?5^B zr(bUSGNDujfcGZ@rzp^<h~ig7tk9lJl=XkB>w5k&bYJaV=H5@DMqgrq8iUnQ`V@ay z#+ONIuBu3aNB3=TRfaIEi=vkkKoMhq%C+2p!UZw<v{~to80GY7YA1^N$C+bH-6kUN zJe-dPKxTy>1&9F?y9Y!h6uY!%`z{_F$+8+;8<mw{YEmvcL#9}(wL$q?yP83&pTlXc zXMqk>P)R$uf!p%jo;?_a$P}-s%_M}6UWEdUp5X{$7q}ZZji)kG9G$2jQ3L}z`k|}z z@_j`Ow{fArIKX!t)rmnA@bjlCt&bcZr7u5IMolC;Ow*JO512I2O+42_??spD<WvN$ z1$6=bJN#lI4!A9!@5e|4UK3W*v4*uzGA(E0!|)o*{z)^(LZJb*RcY|{lweLgz2CFM zU>U!_Fv#ZqVR=T-=%T`RO#)EXYTH`IN6&oZYWOl%ehv6VgY%2~t4x5(QwquKG&2q% zWi^!l3e>6#Ccg#|RsNO6fWkXu-I|7gek;~LH~@f_-z_6plL4~d@o>oOFr=p`gf`*i z-hLp*?p+|i;7osV6@xu<RmcS3;r~8G=jqJvgNz1Oo^wVJ2Muo<sP|lz$v$%C3>)u9 zzQG>6`=_*JT+Oa}hQ5`ekxp0{%x2eE!UywAp5lCs(hX{Y5!1-$_EMA=Yj{3vy1g@J zuNt{wm>KLH=D-0N$v_8?p5u}_(1>KYmrp0B>AcpI%=q4PpI+2uQCcN3c&n}$4X3?2 zLVk*+{H0YY4X@k*v~R@;58%52ivkfS(07mKn2jti&juPja$L}atIUx-<Z~5E1OQI< z(D{8=+ZHx0S|Y|tr2T+#s%Oax8)FuUKBpq*0Eh=lQWGkplD&PGEy_iPxs@$PE}oEx zFSh%ny<<^8!7brRR+V0R>Dm;8meD0Z7EcUx5zzI=B6txQWh*Ab$P(QBN&dme^=lbf zb64ZJHy8b7Ss80L7m@76Q)-u)A+4lSGSr21dxRgJS7wX+?f-EFA~$ul^mK}%$mGV_ zs&n1Jd$H$e2GA0-d`o)TX;3};gl3Add9cx(9pwjs{N$4hmKsozAVg{^KnyjAwTYR? zw>}CYKcL*~!C(?cJ4a->j=L}yHT)EoYLy|uZ*vDY(eWT^TSQ9ScdezEw|B>szEJu> z?^s^6OHq&w>&7Ov#%{h4>;|kuV|Q5S@&mpEF$%N2cFSNP2cI30ub0e6R7^z7^4j*M zT1Qdn*NO5*qH1a~DdeB$Meuv?LYVwf;-V`NE?@+1&$m}s4w2t1wQ<5vA{UqZ0mV!? zlSotAWr5)G)4<Adt3sa))=Ha}8?0Av!FwOQxLBI;08(ZAwce%!fh#5iKo;HqCy4AM zS^L`(0H|_;tS%I&%V34mA~EC|ORv&1lHf<@Uph+KxE={3LjssoWE+u4O7%MQMv+RC zZI8HgaWiF};b&6szbho(5zFt*D>eSX_%$dHZ7LVcS0j1vy%16f*A_#OZ+NbRiM1eQ z2wtNk=+XlJwW~#fDvM#snm5BKN8A*5WWkYT*(dfzCg8wLIU{HlF{L4kpFu9`qi=z^ zE>eQb|4_jJ@*dI8!%YBqkZg8uVFOe^BhC545HtA24U>1*Htbn|ssdinN)v*w?RVh- z2o3PkX9py5QrQN=>bnM(POzl=tCBxGC;PtiN>bn`;lHSIe|GDQ@f4uK1YVFTCN+1| zUU#DF>c8W{bH!r0a}r7SC)CBB%(Kz$sqzqB*K_1s(7el*==YwX*<O=u={f1BDA77$ z{@4dbjdcI1`5mmjkDWrQ#D-?d@+1TFROAW>J)V$vtO@v4dQwPfEQ|my=KIYEz+KnY zp?}Eih2!hYJE)z}i*=J3n|jc1Ee&?O8KF{e63tBU<bPUOz(P)SP2E(J29#HNY1Z^W zrtyvs6QE?z8zAd1yb3{TGjJeAXg^N^r2B6V93wkjYCJ_Oadjs-V1iHZJvHd4Md3a} zh(!;wt4tg<m)>v||A(dDRd{Di``LZ?;)nW23>TR1T?nihwwPiLWNm(tU$=jTq|v}c zsu3D4;@}B4L&_2Dj<Tg#B&yko2&5b*wcTVNgR~0Q2p+f1K{+6q_C7@s0FUc}$zOOt zO{w3{(v-_jI&>{*L_;^fDhN$kS4TXm^X@=0{d<APXw)qbP-ixN(Sw1&ICmUSd$w6? z%+P-NJ@Qx<)wGfG4Pk~-=J^m7if$6e;43bciKP2n4136QVgHua>C}9j4AF^1_kT#j zRX*fN{4bJ#EO*cy^+cR^SV~Gl=7f~0+T2p#=%0TBbH6)#|4{q82d*iuuO-YLAzzMJ zQ%{!Lu(X&BGB46M$}_mS(R4@9k@-&6{qh{Q5`QDmuv`=Nbm`MQ;ph2v6)+E*u$|Lq zj!QaQw(W<ijP>*{PJA~iRy(u7b{+`NDN4p<EsC>WMwjrXe7kP+@zszg$bY@l%DfuJ zi^1&eVr`BFB5X>E!d@;2WvnXOIf<tzW8t={6WI)k2XUug(@GeKF9P*8FH{0*M_}zo zO#t<qJ0Arg^*IVGc}(HqPJn6m%hm?-Mn*^oUAD7CPGrsUo(9E%w5#cqQ1%xcc`_Zr zK;-y4*6n9vry3k@yV`$kUM{i!yDzQ(Zt>q@g9l;|mq6?LAthW*T>Ql3+?vkB@i%vO zTKi#h^8lJCQO1DT$WDu2ok|&kX7b`9($uM&x>;$&=zAGaXAg}dFlrLl0e6S7!oGn1 z!h^9&(<@iCHSF>Wx0q-pc??5G$A}`gGhVDnRTB~X)Hs?tbZ+s2Yj43)*{LIo_3xNF zzO70wrflicemr>I;J&BRjDM8F*bpZk)u@5y=rAXYMoj6?GW8u(y~$weuUp^oq@MC> zr%ifhMR%!#t*~lJ=BeRK;m#Z-42@h!w0-%J(#M^@mJ#Zw9sgHxN|yG*>dw$7?t|f~ zoPeGXWqSsTKdWYc9-)MFa~FiAn}fdp+`ZH$x8`9f$GP~h%dS|y$|68IZrixd5&dRJ zaHBTC-`adWwbEMnxwMt=(J=$tp*%=fUtLE^m(xIERcDD&Mgr~sSRST_6bjaz^s2u8 zV|!o0@<4WG(jxiqJ;!)6qr@{^9QwV<tfZ?ug&tOiphQ!Vv9BeS%pVHx#(leUvZ+?Q z-nT-4n`Kk^M$xHCv8~4XpL2a*q9rp8(o(bT`E`PJCTj?IrOKRFglt04A&R_Bu!doX zM*dXHWNhh}U8RV6irqI7>FRfiUn+nJK%%qv*_ju;sy~Xexr_StP@+$(S{>8lVs~Y^ zCfxJI$ZNl<jJbyCr`UmHz|%<+$_-x1bZMZ0l?HF?C*CU}>|{xkw$85*tn}g5Aplv4 z;baO6fTC%oqh5sUy`Eti`;D<1#t=n_JKoO$_XfHjurPS#?@9ZHrnMILGahnTVli?s zs{Lje$U$3q>yP}lXl=0jZ2kSdC8a;<-!Yf*Z`^9X*2S*mG8V-suo-SM0Gk*FE7P-< zA?JjM!26Xt%bD}0DE_olRDM;IEm3A3ckMUkXMwX5{U3Tj7h9h>a1z0~7S^Upk-Z;~ zUcE6sr$Ea-UG=H0WvsnNVzT1Fr?vc&;+tvfJGRP&I;{msb8zIdt%vL~z6;UXmokNN zwr&L^e+2twKPS27zf6R8VdI1Ri15niXWRG3rxBOn9ow<lk4O9>833_e!Jk1?C`LpL zsT+=vK|17mChS7&?G-IU7_V5U=l?;2K)JGXP3<?J0uDrsbnD5;^La^&h8_3mvJ>|z ze<3W=@oomeiP_iFCPJE-P=vR}zfF`gIC~V%#6=2ekbu`#vnKJG0S*yTK^mjH`?#OO z&1HFidh;(8Lc;()@J!0(Mouj-^jAP?aC#*=#MOj3t-#Cv_g?JQo)0rmz$V-_UP>Rg zXuC+Dv^fpBaMo`uA4JP_QT;cDp?p(|;xe!PNqZN(`#GPjIChw~UBz^ABCDlSUAh+q z_j}NT6Lt6YHW!h2&8yX>K=t9|q34+nr`qKSBZ_!;Ir2B{^=kl;vQ%n2@4RmQXBs^& z)||&UCM4fiU)FPVL`cej`!1Vuw6N+J9?|27>)O-bKr_oaP^?)sT5PxEBx{k)S2@~B zQkJ|_DuC^9LV;~W%3(wgy7zw(`q5wvi1Pk=80qe}vsC@7^+VyD$M+#<T~n}leON;x zMl_>xhM*B3$pAM?b0$l-+-MyZ30C5qjiWKf14iJ`S5~{dvJ*$^lOnII6w~57$r`BE z7wwBTu*gU<?E?pxk3}Bdqw*oCB=x*bLXwfG5>Rs>7qw5OWkDDZ_~~{RMl$G{JP(>7 z9r5c)smm>2d%N*_o&Uyx@z_0im7ktU8+GTdyKo!7T(T{qe}$Arnso1s=;_&zI}9pN zWPC^Yk1U%0>)YTxg1GI`dDu%A1?t}ca!M;_`ZWx!wd%k;y=}KjEpD>Acg_FD>@jLc zs=jmU(;RH$k5OAjuJ3&s&<}OhXZdK4l0XQv)?W6V1)}l+9Bs*(Ry9m_QgHiMeC7TN zY0Bb>jerR*(m3d~gQ$xtpI_j>mKadf&bhgllLc08GrX*$CugibGIBdyF>pvfU0EU# zlCd(gZ28MY3J%~D^!;#xCv9l_YkZr>+@t!bwEK?)UnBQJeJv`aNac&Gz#`uxZjZC^ zmK+XYo%|PCWOF|YnY(5oDX*Rn(8Pz)TWG*53Ea+}6ggV8v)%t^jkhy<_^*n<-D`p4 z?LA(w;%Z*15a}FmUZp!9R8(i}AycM^!q)93vUBt`BiYHc)8kV4t~TG7w%z<6Tnrjd z8yqmLsK5%Nk)DZ;40iGoRFSg{v%{_q(0J$ASHeL;=la|YodZ!k2Qj*S!NDvt?HB^d z4Ww$%uNYgkoNrT3v5r+78h`j(@Yl7FEw<!0B_Xftw8-;#L|Ogzs!qKnsEZ+?Q#mg* zo5f^AAR_h{8D-^Lj2Cdr=7$XlfVyxEkbifRfaqGFy+1clj3#oEy#n0&K3R;4bWP91 z|Et%nzXE+x3)szJ4jId4a83iRR$OFRp6CN1nXWHV2e1+o7hl`{7tlDsO&(tzifCH| zdw*LTw>#+#DZ7ud0Uh{k1ckPhGXW>xFKDuaRxTrO3`XrtY#e5Kyj8*lYVN1{vN}CY z4X)uZCZk0WVgu3$^;mpO|6Qu|(}uBO{l@jEZR6<9rnmzBO^R~U2-_F|LJVU?&x$=~ z_`&#IaqyI)uojP!UH!Wlp;*@NT9THt_^SH{laCD%dV=GHvg#@iN<|E-Kbw$_;X$`| z97J63Q$V!Tj&exB85OZK%&*N1+^b3t<WFV7H9k-vIcXB(O<gf><0LP?Py#OMi~yg~ zJo|t)&1SP@t*#c>y+RLv9G<ts6)z5Ip~pNwAcCfn6$BjHUSfa&b#564s6XlS{fXe} zZ%?q2CAM-;1Y)AlfXU80v(q?TQx1g1x&a3g2vBlf=&<;Ts()Q;mO~r=`gZYVf5^g% zo$TG=M9xfZ)qcK}jkKWxv_D8T(GfOm^!fnN*WL@Q`5%gQhuX9YIHYlBf-NR4po@9F z6(I5ig5&|<$~*qt@gGF8n;F+1YK!EYe3;f!z-J8S)-U+uA>lT4KQ!<=Moy>sR38U1 z;}}?D$F*}4Qf-Wg9jMqG(->GZM)%DZPjbeLA)Tw#eisKohm`MM24r7%G>B0r)`f2z z2L#V6L-cxi7A}-`95NpdgO^T6(IjA{{bV7t{2ycW;RycK)vEH=iOdS8OG6)<rFPO` z$=9drvaz4hhy&`|V8;*<Q6W77y&M^>RI{9~N~k5#!3<8Nlifjkz@v%)R-VlFlbJzW zoEiWWfwSSdP~)Fd==^O+yERvDI#V%oy3aECXL|{4)z#-6|8n2y0}WKpkU1!c&i6tR z@cMIC%V14x`f9VaS`s=EUpBK-jAqDDOe2xmI{>(_D}4x1R}T&|f%Ji#HmJiEyss1% z0RB`%A4F)lqc7#IIKzv#0Zvw8`U{pW=12OzHgzzbU2QA6w)wID<d1jmKhQ)Gh0=}% zw%1Gcv&fPYH482i5(3ZY=^bKVg5g>6giK2f0)+YOh~70lbEduOC<Ipx(t$+(uNow7 zP#ky}0-^Iq_f8<loQv)_LVD2rVsr|cD}Hn1d+VBV+E4dSYV|iAhDPz;D-mg1mQeY- zNC}%lF0#^79Q>=|donr%OF@Gj$DRdf<slB=@(3c5S_8_30X+HljvFPiB$t)SNnj(p z*h`dH8d4ouZEVJ2JuP}s2NL=uDdfM;Z@kAMP5W(pNUYY5^R?r&kLAShOJ8o}AJNQI zd9#KbX=PBYimjO0SxXF?gBBc3!P<$wxMj*fK>9kWW9+#QXU57b1Bzl7Am;({?lv0K zCVJ*0a7V$qI0Bg))ABmppgIYb!~UUTpOPFrc3K={lV6~wa=u9LLhUhQCSZ*bc&%9v z{sN(5SVQ&A;Y}2<L?KeLp+WS>*Qj8W6RWkw0#fl`0f1yEy^1vDMkvZFaS+SYD5#Gu zZunJsKN6*N383gnfC$jMR$@{MN0YSLqpOe1d78~n7nWDP_#C(Ey9BaAc_W0D&>%gi zQ&_Uv#B}5dQi6<PV=mWWkAybyGs+;wEC1!(tpAypnomzwGo%esxFoNjLB1MD-(R0* zB{kA#<G7FmJ*Usf3IbzgX_cpr-T|NiyG%5^vtlry?>$357LnAyS9}M&OY8dT$Bt1} zVWflY(P(1Vffxh}Fmc4MVq;DS(ya1eu|RV~vTub0@vjjq%<v#v0eON+br%rs?rJEX zIg@D|)=(tkTS;LnxetXmuLmgrBoM5Wau<wUuD`jR)hTY;D;-<9<$2=Iv`L461F`(G z1uBp{io7-Ghq;*Sh%<%l5V?UDN74w*I>~6eMIzXnw+^3-&pO%?ZnxCS#5fTqHK_{S ziv^S^Mv${1cpp%b29*(=f)+ZL4xtNm-eIX%1)wFdZE@Eios|EU!De@so&ax$INIQ* zw!cHfK6T$!W^ln8P*~v4cNab@M3j^+3DP6xkW>yt#)#N>d@Q&DV1uK{0KRq&RF<-U z-)T;iPguO*Zi@5Zac8Vz`RnIWchP_!qCkkV-a%&1+IhJVH*wC;IcsfaME_)Xe4{&r z@j5E60~30>#CzivLMw|kde28OxPw=8@WYcdo@Og?y``|!q?f4AybWc&kQr?W1n2EI z)Z~Ixvaz6cJlPdc3dgPi_<g-=|1^L(Kb}Z_9C^|^zc1N$6WH9NeE~fC^F**Ug9E<1 zRh|(1Yk->q@sua;GZFa&Pn^KwqG<CBQ?wxrKZ299B8It$I>px?SiFaTR_Zqfp!JMM zrV&`HYhLqVW%wB`@LGzI&y2_<CmjNan8OM|VJp6KJQ9DIs{n_%8YS-Kd9YvV($3=2 zu5mt@KE(oH1+Y_mOFOLWyto5Y6GO746OU*jp|e;*MixA75U1!{)hwuXjG&wa>;;^` zz$xK-?g$d}iD#;Xjx;t>e@B1wlRb;2V*L})YB{i9s;T+Ls*@FEb1+H(0*?F0(Ns2% z0{f65<mA5fj|nIb=P6yVKt<-M3rJ9B1dk#PJ9ywmL)dzG2UdtFhQl5gL^Zm_5x<W9 z!~**lr@L0c0m+bl&MOWo%)kbxZUhU_qmcX;>i^*l>Hi;ZutVx~Q;poe?A<-xoqaw3 zdWZiE_I9`b>H0I+g*=M&%<c=pJXxJ$bX}fGh<|$0{rl29AyL=a0xkreooBLNIsTw5 zj8juF`32QY{W+NshPkXK82*kTh_U?OZXDi1Y+FRDns?5~{Ds2vaA5Rbmn5*6qE&Fj zTYauv4q+GMVtLxt(`Ee@TfV){g6IJpFW&azO9I=xkj>(os=RG};9@;M^T#)WOy9-S z<+391ta9kVX~_|<=gp@R%mH5V3&hj<0-0%&>rIS7KVl#JnQ_n~$bJ7Z#p%@#vGzJi z*~fCrNv98;5vvczc`?|eBYoohikZui=dX&^&9IE?nmSQiw|}^~KOPCjYO9+Z%cp-f z%{2HvaJ;twve0?$CT%2iJKZpn)WDjC6;pm2T5C(3eSQ4sW#;`gNAt?~KF{ovG1Uw2 z41!ddzbQwGQs%uO@U?OHBnsX-SSjQOU{0A&6(tJ#)RCoE8wk>8a==mva{k_1Ryl!# zMd2s3wIvHzMjOE@_L5g^&(y6^9O?C*hX8!c8+kk0PZ64jn=!(o$P5Hpw2R<Ks`_~> zT_w8>39vEnIN2)3_Zu*{Il$;cYDxp^-ztu=nRz5j@%EW0%^!Rm2+gdGiPC9o6KS+O zy)`9)SOaN?*(382Npi5_=Sk5P)Sd>>^H`FHc8aom^zYH6`@07{S!fj3vxk&=WSnO6 zM`lO?z;f&5>kyfhS|Q28{D)2^6Xab}fD4`-tdFXK1IxGZo45@%EXmcQ!7+(U>>Fmx z76E?T@IvaD5ia;gU!Xef?xId*u{JP_T!v&S0xltN=J~0zTL3JZpg{XGEZl{_`^W!c z{6j=}p%dx-n*OLu-FO+(BjCRfyZ_D!342WNn<fpRD%}|ewV!XWTs0oz^t;gq@DN}B z*5K|nz;u;OMAwUv2s6ZxGzfNb$yl)^d^P5dxg^=<eG6Sq&qh0RhJDKi59Z1euwZU{ zFa#Nd>pT6$Q0)Hx?2Y3|{odl|s~G2ZHUNC9;=|-C`i`=J%7AxR9t+xU_HUr^GGKTc zNSgKRw!)`JOk{G(>?K<4?Y>4KpP&;`aRK7^5<*5d!A8v~!!O<jfcEmZtbTm>;AKiq zB&v)?@H}CHzZMKG;*bG}fYQT-foS<^`ip7C!9~SJ*Vi2j-;*x9d$MhW)lPd(S!I|0 ze?)zEJe7a=_vb$6aE^WK%`qc;WQJoTL^KH*l~A@q=4~s9Qe>+{rI2K095ZEy?2*0q zp3nXLJ<s#{^^aHo9PV>}#&x}~_mJjr<+6ROqkk9PUTrPM=*6uOflQVX)?V{>nWpsb zWw$xXViGbLh^v-x)>cCJQpbVo2>L=ppIT}Q3ViCP*cIo-R+GG=?-=K?vmNrni6<%5 zKNcZbA0o_lGRQjvnl8|J0^RnJj4S^g=}*oF-GKLg1zLfBQ?X3I0ij2RKFdc|U|WVT z53GQu5?}&?B?@Hn)dJ@ATU0p3k$<GC+JcI1MVBE!Usz0@p-qC~kfv4HX!;wwFCjVG zoUHoy+-%i=GutDfmP^jK$qgGD_c(`tGfT)iq^}UUG5*L2)*@_XNR=?d7@23k9Cz!a zqb!;)UKj7Wcd6g7B59slHkh`73lUi&-5(}a1p!uvPo5bAm?h%AC$c*4e$(i^ZjDOw z#Vw!EyA9kuVg%zks^Ikq7H*>}4k*KCvH<dq?Z_RFU>(kmd!cxYw4x4MGV%b_opd22 zsz)&j&=@;1BKz)4w)?r6hqTCsv!*oIP6-XIVw7z;FTn0A3~cJ_Ac%lgSB|;s7%@X| zm^0=z{xdcuU#47l5cU1*qzLva6W7;{^@!r#<?RuW`7JC`E9B`Fz#l~jqYraq8MBQ- zM910RZ;pM?OH3^)qCVWRGT_(s1yzFp-r7+IJkjn;x3ECgZ#h;<^u=rE;tXCZQKp@0 z8e;veiC(0b|Fqy!!vC0SB+-J%@XlFv)N*esqY~9I)w33kdeLk>N{p-MdLdXO|0mzO zga@5*qSCau!@+OuAW9t2?8}Xbg5svdQ1kf?=N`WZU?W2OAns1-O4Y$L#HZ+3=}bXG zAg`9i@2Om)K9$d@!q;C>2Tq#t&E%(qU3+UGahaWg`b+Z~6EJw39mYl}6QUHz#siyC zg6RUiGK*}DsUva|wXM{Rx@6@#JB%6ib13X*V71(>t?&iDUm5S?cYcY09VkrC{>-kw z7&!#z4a()R1pfL>OV)SGFS$stX=VFl2es;RbY$fQoC0sJv{nyNWXAq{e~wgfA^5{5 zYZ;RChDYTa*?dqzw(kEv-tmvT4SM5%#}!3PacwP#3H_`-(DD6WSk4bB3<fwPbF{U+ zMxYc_pz_jg)Y*6jL5&61Ya)LyI5OM+k<%}u=Z+2eJUGN>4h~x9|0}>wQ@j+qN}wOx z{R-8`X}@HSjE9isR0P*3w<!*zK8kf<z$y)xR>?RzlR}TA29_6M!Rw79U*B+u=%sk) z6?@&>v~hqVY_d;reN^pJ#NpA-00r?l--bl7R$?k0*6?#}4XgwuA)&nwe!RgH*kzoc zF{Fv5#i>zE6vQlJ)Gu<l{UKYH5Ep#<g|X8kR(z(T=Rub|+?gF*olQxMQh!_XCo`60 z;&lgI#%@B;51c@gAQ~pbv*qC|%gt6juf2V>p70fqfmMa=^sI|pL3^nBMjjKt(D9Uc zN{H~1<3b!h0z+|2Pnsv<eO9EVw4Z#y<a014K8vdNY%PD^dJNV}YC%-5x<;-SB{6Ys zsU5iOcCg2{u}P?^eT!N$f(E$<MvMD~K9BFHGXS5)t!7t0(v~^|tK&q#>QO5d@LdV# znxO$t)77hAGmAv?av1Twbg1V&H#aUHso&U@eNyR&hFA5Ol)_`ttNPdQ&LQAgwR0-E z&-@Nf^o61D0B}&i5;6gg{+CVj-vL_^@yib%j^Pgs9P0)rcm5P|jVw%@_bE4;2?ufi zzK5;-?zvcRaN6gR0Zu!Dm7odg*O1XFmM(OxM@>Tb>X_vtu}S93eL6P;kWlc@L}a$J zX?a=!)b}@sE}!~pxXtk;NZVbNlJuiGD3l7Qv(uZX2JKACcsBy-@#zvUHePdW#^&qY zqYMSe7|JxYmh|_>NSANVP`HhIJY!qse!S`G8e+3i4=EknOBW+D63bO4r8DsQH}c6s zXH361pDQ!joqMm6R{w+&njFaXpY8wA1OUq;y0rPcDEZ}MS9_^DnI7i-a*k)-$B(xk z-{8^e<OU>8-@p@&U>t04y7ajjLoNO`{!HZiv$)z!#Obbd$<Fus$8CC>vQxl8SdNE8 z4PV;luyLO@SmsSy<`?@hq;c-=`R8v4l!e~4{@|>lD0pU?+}U6>mb3H*MRFx6*sRW1 z@Vd?br0F~GKZ7zsIr)smaK1&{MuN0R%1i^+YWkSdS^BKOjH?j1x_RNHzdSQhQw>t8 zMoIrUrFD`;_BnUDTjpb%_chD9Aa{cijwlu4W0-;xusiT5e_7@3M`N_V7mQ9ls9(7w z*4OQCJP{mjTJri7@G(eScnX*<L>GjODWUFgL4r~EXOXt-*@)S;Q%NC;GFi6^a@fpF zFk^drMS}2M0Qk5rbAb-_Rwgz8J9AcOJOuDmnfCpipAQ~<pE6jaf)7^6Nz|OpbebWz zS8{miDAkjFu%Jtk0O#hrK5#(vuRoV&b83?0Ucbr^P!|GjV)~~GA|3|j08&6vK<*<) zq@@)hN{~FTO?KKHU@_Uv8=;@ncXE9xE|=4lP=wU^Ezu|<xs@pQnpk#7(kqp;w6KLA zsgj!lf8+mBq>n^hHPb5bkQ5~G#9EE5w~5&ZF@F$!Wug~HXp}ii{S9c~LhPpy&Q{Mk z@;2_%#%tbCm<-8-oZk0(s{1=T);R;6Q~5TBo$RYIRHro1q>YX9V0G%^AdjNv;Y$%9 zDalKG)2my3f&-X>jrDv##1(XTdHG}+m@V#c6zJ2PWSs-6@~-P63Me<jT!etiqWI@T z6v)T00miyVl==&jq~Z_#e5CR;w)2<>ZsyEjl#(<+K_f~=o9|vSH-)@0ug$+aFz4;0 z^giB@^<KnaAF7t>sdt?&`Gs1B9fbL`%Y)QWd~fS62jZ!nmbrT<qS$UNvr_dHV_%RE zV_E4ItkqQj|5I0tLjkU2^^Id+Kc(wb(N7noGr;a9js00EIvdYTnmBCL$x#LbFO812 z^)RgdqvJw@jdhe8SjiAf0!tay`u`N#=Y(9<6H!}#Dv4O~SmdtXODMv^B?ch<658$P zVdf*_cQrYx=)C2@Tbcb5zm?ra*bBp;ri3<4G&RBsP)Fw8s<mlMg3ceue!TQr<CY8k z^LS4@M+=vgIXDyrWt!#CdM<~%03UP${ac6uA$9Rbxf!Za@nUMk>Lb8|Qe(`RhganN zhy)}b7jX2l0+5zrJ&6Ji&-SPHT~J`AEZO7p13U50DofE#m+{u4M?Rs9@cq%gHb{E+ z!6a)v_v@p*<sB-xCKAzs{OLUp)b`a-oIDm}MDRj`T?>`j@e0w$%(f?P#_L=L1+Kxt zol#(QLj?Redp~4d1mmDFPDLqknZ_K>=|HA4><|VIj+J6|#bnTzzV@8Ph<hNf%0tmW zitXY?+*r@jv)gxpl4B+DfQR#O1A~iRcpXH^E)TO&x*s9k7kO?|G<YlGl}kMKV&D{7 zroh4b=Q0t3%kbvGM`RH1l45k>G8sTtqOGL9cw+plJ6D}He5yCdp95@YsG^|dqZJJn z(6*MyP1@lEsHm7GB;E7KwXqj=04vJh!R>KHM=0z-0-$t^U3LFqZMxYAB@E|+OQJ9$ zItO|3E#m|Gu|#cu4mV->PZYt?A0#?VNDvYvjx4|3Q=K$7n(OwIv{ug<Fdpb9Yc_{` zYmEyRdidie1r)dNF0`vr7Dbcb7AllVhS(*zBZJi`x)7Vn+rI&YiI`qyY*qUbuh-~= z1RjF_UM&ZR<HZot<by%qz;<3xD^O;;v~3c3f4*hOlkJB@fqUJBAsKWOa+2GWo<(Lk zkTl>47>uWZ``V8Gl`elpHD%1CXuYFY?P_m7O#<b+6sR$WFW3+id^MvY%keTOm9z)R z-@t4uSl5roxk*=wSkAUq)XG2APu6lt6v=pY+k}n_Bq0^Yh=}v5+z40N<@hIAqgh2A zqhDKbH)MO+%_;I-;>(%g@n1E{1zEK>VWA<K`nZ3{7$YS6il{OhZOB;Fx@IuH-hExL z!0xHqwW{i)e!2zV@_A4QR{85GqQg|VX>rT}UaO~-t%Qo%>ol_8+}xCWaS4i-J>dc= z8H%K9H9eI<Qea5<8u1r)%$%Yl&F^>sR4gCg!qO}pSD(K^()2u-{w@Nt9PPq^LpAG9 zR4^~u*l|4sT+QjoDsnzH26$mO;&^BfXwvrF2;IDEB6kwG8xj5g{3mDs7dE(!?9rVo zZLc}HdwRRt`udxD#zdv1q$DLIRW&yErY9%=^&N{iFLLt}ztPjqzAGAAX=0hB{<&v} zoSB^kPcczB|Hvx3<W><c!&3%Ah~Egi6pVZFyKbMCe8Mdv3uciw2VB0+>~~8sB;Y_> zAq_|#<;bp#bA6$qzy@Z^Srw0x8&1be4&WN0cAou18E`fO1^;Mgxo{rZ8}$>T^c-tN zmS?Ho{gvub6n1f@`U2Vj{Z!qoYTz`1c<_w^3eTZL1}cGxDk#g}GeAq32=}XJ9=&}7 z{jq%SBJJjBkOaL+KruyA%xuzL#uEX?Va)AV<jW$n`KqBo@^2wB8kfnU4r`fK6K3Sj zGc8dYy$A<XmWw<>y-W}a)@pnl4d|`^BJ$xNw#8lx1(@Z5>{YTRSM=>~w@xGkpdlpr zW4hZCPHMIKiD1o}p9Oz@uQ4#R_fk}=z%pIrO(BO5tB=VEZaaad-~0jX(W@&^)C48G zJ2ASW=8w7<?6#JXp9hvNxNwU2K%{xGk!%31$MFNw$x{p%+lr^Vh8&$^<<uScjRadM zwM$7RrPl`tHb359YI&m<A>GL+eqM<H#sC-cP@CL0YSML+bn2`09N&-1{Cg?h-|QIY zw%}E2M=@47n_yR1zg9yoa_2!1bc>5|U7AV*myA@~FrnHS*jTGZ+5@DcEyiAe;D%2R zmbQNVYx}FBPg<-^+`Z4kD5X&=;9?_>8=DWd?!%xI0*9$UFKrMVIJT8JWeH}2ZWw~G z{S#I<u$W*k0bcYRN~v~e)igAp%cFo%jt5~#i7BYDhd`b1%1biv{3-aw203_=Ie6ws z&}xXptTFPN3~)ar*@=>w-AzaBIqKpN>sZ{e($b<p;R|}5l5d)_9_DMKKCI?aJK7I1 zTwfbENF`PhK0jgf<r?eEA~%uxIO4_hPz~x3I^&JX0LZB0*zybZgVGniqH3h?yp_p= zpHVq_QNC!Nl7xC^%kyAkY9%lce6|Wg6OT>4jbPJ{>+-3<t|i#4GhOjVrPASpjt0-b z)CGalu5=nPV6nR5W-6t$%E+ENYAg{6F5WXmGz|}S+XcaENt399Q-Cm1M9C3TiWz;1 zQQL7{UhqAp>}TpUcDYRY%@%dmhf*HXL_+TFrCoOVU=fv1;Q`P82nL>eDf8)#vURQc z@IBKqv<>gdP0I>ULhm4QL#rQ9Fx2Du1f|H1HCMyj=)kp(`*<L!R&7t-Z0~xWC`bwX zgXEF-*0JPgjc~fY{O;uj&9CO_u=dxwUiHlu0<$VV47`zXn(ECe!{`78&Y%O58UD(Q za3zmzhIKm_vkOQ>eV%(rgW)iVM3|v+5Mn%sjGqcDAe+@0@HQ^!<5>H(@B;ZK|0Ov+ z+h^yH9M_<}uIs+4jKwCt(Ih_>G1^tFRDO3l8|x&v7?65>`&6N5`1QzW3DYREVVBXL zl!Ox%cY11K0|WKh3w`9bnlj1j1!u3Y1hQ>9HsGP~#7QTp&B~<+bCObpZi%D<q@^kp zIUEs_0RcGPmreo#wO$IoUgyDVx4T~#i;N3fbPWTj{LBfqR-{CvPwq4(A|iWUa1KOU zx2byp*8V#<n89XwqX^)3RrZ;{+eu~0g1xFHn5g%rLtY0U*^Ce<OEeZ8xGeXH`sX7h zv!D8H#C$yO3(ux!6k=|xfHD(QiNvhRsYi2j|D3xt=5D^a(h+kdYp5HsH|e9P7`D7h zO$-+Dxl|ZNj>uHQZddp#d$VCq(lc7Us7bgC)shnO3moSz{H~tc#PuCEfqI`yu0#yT zL*&hXGdyJp2hW*R+TTP+zj`{G-XKp{^>hM0hkj@oa1<TNJ<x<E(2>$vq4Fd24+!qH zW;w}E0*3)B82~?~kx2Fuy)H}%AY#VJ5jDau+}_X_gbJEKL;{Yc$%-2!|Bw%dNCAxS zi{ot3tDvy%&gP|@s90)tEGZa8^Iz$x`ZhJm>B_mj10<LER3ST~?T6UjzB$}J?P`S1 z>BBf8pJoU?H?mp$P`dOAZ_s;$s(Wzo8ueh#LNO`ZqSvSyf?HN8!HhS-@3`f){a2Y; z95;6V?|#rRJJ`FK4}4B|cgTU;zDhATJfH*BL0hI(fz&qW=~&|xA9}*!zI^j+FdwPK zGvgU*bA=qZ9A<n6AS8zf_3SdBNLw{OF9WT?q4xla%TS=-l~8iH-SqhlHqJ#jKgQj} z&xUk{L_t6iL7>Riq`mwLefM0JX?K<J_CB0TNT^`B(ewZ`w)?=%WIf`tA`*`lqAib) zc#1{ov0dktL<;(`H4QHa7`a$e)^=9PLs_yOS0UkVuaTP3?*x(Mfu{>eiV!eUexSQd z*Je8X^;1dG9#bXx<mh%{*C@Ipx?cm)LT{e}1;@Q){;zDrAjy@=@7`C5)`5XlgOEHa zzS;_+EIs^A18`T^kqOh5ogf&RWd*}w(HF$PW}$v^X7Gbo^9tR0rc3o#i!Vf~ig0pL zV6nT*(m)<;pL)OAuFK}Y!9O~}RJW2fL1;{g>s*R9Ybi61e8_r#+lvyAG#kDazYL?$ zZsY|rI`}EcDQwL)b})?Zv#Q=<BSQ3U`6$tOSl$qIHbCRHO)<lfRahO6t{SX<r?3L^ zoe38_|6Mvno#KOM(ALjEV6*vC29zFdpF*~n`+3m^JA++!SV+b~M8TjV7e8lOCwiN~ ziD^?+Qr@YVYOpK5phQ9RQzQ_y-(P^hQ7flr@L;<bJgYl}$+J9%%3SY^!x*ZgoGV?( zi4-*ii-u2T{WECN!B=Vo21Zy*oevX@7=~-t0(3enBJ}t#O$_qv>Tl$Kj@Y%`t&<Io zyIN{GTk;%_nd~^|6yVTt^(gCCAB@rY;3;psZC^3<``^;|)R4agyZh8K6)Q~`<+<v2 zeZK0K9GE)4+wb$V+fCzmdw!qGyTI@!P&*-huzc&}Zl$4zP4CXZWa6V~*=&vHxBi|Z z${lv3EPj-D%b6POcd%F|Q=ATTxC<gmJp<AY%Hk}J`hDy)u2i;8zb+qOHKyf|-Rv0r zJ8_`Bvi@xK>*_sUSuNh4+G}~o2U9PqD_JD1zD_*gO%|o}DEqzsJj)GWx?)Usp3Lg{ zUFmIK{06RaIuBKCYf<@mk6Age2gc)`oocfPd$MQm%MyVHhaK0hA0dBzZ&Y5x8%G_r z>2t%THYwGIRy)>7-3!JK8vc>-vGz|z=6;|4g_ULMtWWege|4d5<dI66uB<R?(V^AP z4#O06`E-R0e>+o0KaQUY`Z+1OjGC$!b8eq3SdU648AhyD-@^!Y7FCwE%0EzCM7JcE z_doA=ND6GtKGij7KB+UDn|Sw8irB%Hv?I-ep2g{B$=!ndf4tHjFzr7U6(EY~@Ss%m zh31U<ZDi8#ar3Nxe3&5bCYFQwA<BBSVzfN(5pkkd!a)<wJ7v2z+%P8@EGs;1SE)DF z#PYgh;p#2^ob#GA5w~TjYYBE-<Aco^&!?M``qlC-%jtF+4ZdKze&=iM<ctz$+~w3n zwRc4H^w+fY-9hcT;Bb*oOS??atV`j5l*>VQ^iRi8bhPffL7Hn9Uvu<3y8cQ1nVbzi z1=HSSo0p&kL0R|I8nvNchVMFIywt<sMM*mrQiKoX2N%~`r$@*7UGT(f+LWh`kzLZ< z$=RalxNty=m(_~QcKG}68iyDPtnjRMPdk%B6|PlwQ)NPdz7pdCbNa^`57)LA-Yk?0 zVXCg&e=fzWyeL-vw_;1}dmaTk!$rTP9pgdM4!9@BMJ<RNh7>ZBskWBv<T9etICR05 zjUkHCvN<6ef1YSwZ~;&Q>6Dm7ozM1rAFDIsvQS^|LJa-IuTW8}wT(38Oz-W`W}u>C zu&=E0VR`aVgH)u(hR02HIxUDvBb)F$aSE0w7Gr3BR;q3qU7`HV4tUhrrR22fk2YTe zR6^(Cd*2RQB|i6@H%JF@!A^aqS}AjAB~5j~Pnx~XokM3FrBZk4g4}!Czle~6p(fxS zS>hsJ<SeivHD?zoc=-|s(Sa?~4yYT%Yzl0PR-LD{rki!@#K*qxI-P#*c>9QJ|8N3& zHjf`0tKlPDR@MNtXWuRKC!)9iz0@>+%-GhC@#pTYm0?HR8tdg2ZXU-wqCVu_T5xU< z2T}Iw0Vf+BFUMby5imAVL%khn{2x0ipquvlF*`5dn3jF)vh__$-5Rq`>DgX)E@8v} zqj#i~BAWJOff>}k9qawMgF5q6jRyFL$;D0Ku=2Q!XfwZzE3kvPe{D3%ggkyGFRa~a zDa+B(>Ya1pkl{v-K7|`+BXB}-!?WK4))cdtIyL00^{)XAi1Y>!te!Y8s(ML{#O!Xv zE|kBT=DyFj^Q#5qi0-EFbo4(JD7X9Y427o~+`yozd0TXCF7)sVQ!CqJ<>_mceGs!F z!X5YV%b;~;1mASyYG%$$q-4RhP9OxfJA`3Tn<P(_-V7-LRJQ3hsGUv>k+}Vkm6fXM z=&dYN0b<&@E3HeXJ9+<1C5j~QCYX8_jD;6V$WH9A_#!%VGbjA8cMWtn-z8jdF1-&g z61dLi48darl(_3}01L#ngnM)IbXkua9F!e1h=Q=#2$2q_aGbdN56@IyyAQsxkSvV2 ziNsL<XLgt05gHV_+I{k-Yf6XzyUMQ&{-uv68d1gp@BX4he4{w^>?A<*;p`j)&Z0p# zj>6U<ZTdT19Rb{;xj6Riw5Uv6Ygk8{9tuYMpKK7hK;~vB3v})q#P?~Pci)K0?4tS% zAiVD#vcIwCFFao;DlA1j9NfNdmohq9trTMAv*yMlPKR>h*&k&hf{XdXmVFx6xrk_k z>iQ{v#*tQOGaM?Kt!il^$h9jA;C#Yv@CjOf^>GVH<fBXq6g}E#&KcEyPe~X93>xG% zo=k2|586Yix=UiTAEPh`9EK#kr_FjBsdcX;{IM8SJa_I^k$J-?zu!@ENnX`f(C*<| z8L>xhknK$Z+F^zFELNc@rMgYmrnV5L9Rm1MNEYXkR<RJ9Am_YBd4m{rfhPN()K+Gg zcb<Ys^{Gjw8NqFd=6@@ItgY6^*p>z=(Ac}cH+Jf)&(6z?+nx&cB>MW*9Mtre7^NqT zys>^>HmXa0V_4i+Z=D6ms}e%VZg+cbhuB!FEQ)<<dhKLh;2aln*P&rw0lfZ@MdfRF zpVRqx^1UcH{kw>Q&1Xfffd6Vt@|fZsi0~vd0?mXaqSejQ>hte3?<rs2*@RuRKYmZC zZkUeo8`i2+%ZyKD<nhqVHn@cHA7=+ok4ESU$%Ml%6Zvj&<^`}}Ad-A>SDAd;Yp8#f zd6G<(g5i<^B|#DzDJns#(MR_2_6xK?{KOkf@^;V1>Y3{M1UJykrf0F9SsCq84O1gu zv4@cc%I&E!M8KaY99C*er(tJI0l{({ik0u}?{IkBNK?HK&xL_0ia0Q@tDHEelm=xT z=m&n>^Zm#H{@u%F?{KhoAQv%OdaCemG<6SOMe5Tu$s8X8)c+ThAj%*EcI4l_Ot{1y z<Y&sF_%g@%NcZ1A!=ruU!(%;DJ&UrEQnKO_5=yE^tH=6jv-!2ULtEMPA5Y$#qQL5Y zjNgqv+&-vyTyl&xrhG<0N3Qdso3Y^b)+PYO@Z_UZ>3W^@DK`~dD4|QiQ*-1CHAy0% zVd!kA2%8$PX+fHvz9So%J6W08CPnb-`iGp~JRr9>h;nQ%g;Z=5vXrMVjNZtntR3>d ztMO*1Oxbef=)jZ}4+y!vKT)ta9P@AZB#j5x^{61|5fzF2l~M*<1iMy;e?YtGhPngp z{_5q`5*EVb;e{bS6K|otp7$7*21=6LyF;`0*yd?AEeGA2lIu1}+Gr$Itq5`hJO*hE z_C~qgC!DTp0oHuFx!8kO6{#5#Ki{q7gqYMbc485N7MfIb6uL;t77k`$yu0wTbW;<L zX~?cnU^#zYn2-ty!42AkIlegWAq4S}Uf@}|Dt@~FsNx7z=_~ZazgV)kV;F_Nxbai& zw41S~3r|4#P79r9-#F0a^;Jd_o=DE#TH9UUGG?D96B^S7c*}px`0AuwT0GyUwYNbk zmd={j*&YIMB|%2q+G8z*Jgv)eYv;|{!cCC5jNxLI&|;R|nU^_tsB+UYquJri(g1|X z?EEh$L){>)-q_asW03Ltvs*z9WV#=tcW-7fmsh`AK)kreG^sFChLG8yaXK0;>l*af z9?_N2rO!}k>j=^vBXa+>r-$uEJKKXeLF2sTBPG!7a^+HKac$svdW6)))0+;&m#cTV zK!jQc_xG5Qw;LjoPN>~*E755i?@DiIb_=Tr#M^?bs9^skg8aspM0I{T$G|p#U;bz5 zWRV$?w{ld?2n#E&XrrF)U1w7?n0UW_FXl(_sxdX2+{<62_9&)fU9lDW5il%Auxy4y z&`R(GVnvm<=Dj*O`uz8oXt>(Fer7Xs)Q%_bKzZM{xgleWkJ0AtWpG&OOZ!02)A|;b z)35smx1yppr;M>kz^><Sds-za(VBbu30~HxAd`hSF+2$SqJo%g0N=yrom8}?q(%@0 zc$6PkO}QNV))ltaFasyvv-YpiZ5!yZ1Jf1=mJ2Gy0y~WT#a=O@WlnPqb!OO#ypcmx zafi>3T1}JUAT26F(ULKCRe&lA<*cJ)(=ihGChl9wJ(Aml$U%c{{uP<R_ZKh4T!+_O z5#1Lasbc@<O|3L}9H)mM8!cz;)y0y<T=SS*x}Jot8e<$CO79(H6J)7|<#s#pEGC8N zyrtL1JlB&7!eiX+&!#DQJBvU!E}YY?2gDn<F}n-mt1H?f$o|fYz6w@*H>BRezBOkp z-=38skO#Al_?(s&=#~ObErGraW66hTL~!)5T^Sgd2G<OBQ4$+7Qc#mZOcY_6tx3mc zjDS+C7(L>57UjguaeK9{Q-hb2tWG{h8LU57I7c2uX`=Bh({@3+cfm<HJJ)LuM&l7I zxEb)AUb?km(s)wB6k*NFVTk&1{=MqKX{UysQ|aReJhl%QpO~Wt4yf9(9U*1y{lSQr z3!W3XC8B0Zm6tWy$eBBzK(N$n>ZmFT_QDQ?dQdv^tq2nl-n&mC-I{+TdQ$QA$4!z) zPx>I)*v{T<Dxxu~O|i(em&S=qP+))zc3%hrZqHVvK#rk7iIlOgh_wm*%9S&q&&S~! z6F>2I;KUgX=0&55J_AbgnfPnaCkBh)vHQZ8p{7&(UK|+tSV8Ceta01+w{u<>?Ny?k zle}I(DVC%82w)UB2jY!5Wc<hAxH{ZtVTSuW>FGuLJ;g%KQPE_cj;|rT+LE6iBny%1 zwz=xbCaaE~qV*Co!Pj5fA!eq&%Lt8IdE&1|bIC7))7D#YzpFS>ZX#uEIg@R3^)Dm< zCvEoQb56?Ji>)HmVc>9U>;g1dEd#E<d~n`$4G%|K{LS>8MzG!3A5&c5j_2ljL06ho zymh>C=JTKuPN(3ql`ln6Z{Ly~9WBk+mp}uw%`XACJVSzpLL3=`Yn&o%46FG-$5{!S z+w=yVL+RdWZF3_!EGChO4WEjl#KY7b|Lw7QW6gFk*H($D6$4qs*E0V%<<<{<W4hfu z6ptlQWS+uo*{|Iq3Tg>xdO>N51aT8WKnlD+6^XpMk9%_V8qKEO(j@n&qrt{-f?Kvf zk?XhM&nkwi9rTzSUtl8)hzkFLmB*ycUjxZU*{sZ<It^Z+-6ePNLTu5hX+?f&9MO`2 z#2GT!!9P$OqcG#@A9)l47Tg#Ak$>?h^gL?Tyg&Q-7JTj|rCZ=>R7*wZ)?+QfL<llV z6%uJW{XxLrwJJI0ylkE?vvyJV44Mt;_+fG$749ixC!zM+FDD?H7lIFb$1>RHs`QcJ ze010<o+|4sD~KJ=4L_53eS0XF+f4i)?$#9w86Dpnx<h4}Y#6&UOKr9}M%1gcXS#WE zLou1XbRT~6y@<btfUP!8UTjZnQT$t`8{VX+H+c$Fcka-_8z*GVOb(%9<%YnussgT9 z8cjgV;5-kR!4u1&FR)UZMl}WfZ2KQ)3R2(&b7WjXLunPTW#_^kS8;)I{Q}}FWGsLq zw%BEn5wFyiD5>K&L^928)NuK|de-6KiJ_M_jP3uC8g7`IiLwC@Dh@&nUiwX)sM3vx zJidojWOPXeC3-|0`afCQhSQm;&LXea4sv^*9y)Y%YhpVXjZ4T3yR(MZ%=*cEqRA#G z=TchGWb8uD(!TwL)3hU|Vol{q;rjuIuJ<OtHUMl^LEq0Q@lmIZc3V?pP@nTTfaM{_ zCgo%pM-CIPPkWtm637VP{dG1F)#Wb#eZt+Hi!yj)W&;cSsvWzoc9IibcyqdDZhdz? zK@O)79^NPNfMoAU4%@nW%#O2RBWkRY$%A)?oJr3r{5YOwthl1$^7e2r$u1L;N2Xz- z-2L{8)ae$6gJ_jA1k6snN~iU;h+GXLL(gSSCZalBKeynNBQg4`%Blk=EkUqWp0D=K zMRh6-Y7XU$@R|58(5-BT+_ig|bkk=zh=O?9fS+C!)$WXl&S$^%ejfwjIIx@&jIWTM zfGDH7WWW0-|62dJ!rUlAue;X9UVlas7L5HphTt2m0k?HXdmD*~C2)*Vds`ZWo83$- zW_V)+{%B~^;!Buxm~k+{nj2w%JdX|iYv6XN=~A#R*?KFUa{e=)w0UyGT@y02fJL+p z^pi*^(UqnFOijn4X$|KM$yVMJNw8jz8aqh!I#MmdS8IFZt7jGmv(cFoqR24l+rw7G zUJd<IVpulue`frKLOOU!x-Mkn)u(KwT^!^VuD!avc=%OPgt68E;I9piyT3rb>@uM= zrrH79F|kRP9Ews0uo%b;>MM6(%EJ(5RSWM-g10#?bhHXVxF?jsRVm5iO-iS1&e7LU zoABrqIcanDl11?70cD;U%`qS{?gkYBLZN>%#K%K1Zy3ok&Z3E%v<O8Fh7V~u<kXmv zOy%P0Y9M(Igu`+A=A^fi@(ycPsP(_rEQM|EGA%VDcil31rpmkz@SJ81%hZIkGgi>J z&t?)wXe=F)-l@y%{`f2?YK1b)(aACCo|M1rb?Wt_Pe3U}zIwVXrvLu+WTr{r@Unjq zP;)vtkh66}v+q_8ae$y77~%Z_@6d{+ThGh<j*)Nxt>{G*#Idr`QS)u0Hy8ysFax`9 zR%#Da9yU)byCKP55vA86^+K631F5y6S;|WwO5yNvJA|=Fj{RK5^mfbT*e^@(<P(vo zrLjHZ5D;K^|1c(<;@M_+%Y<^mX-H`{7>p5-ZI^~@JLTJ)#g=T8Rqb<v)%^Buiv4S2 zd=wcMKo_>yvZ_Sf>Z5sF!JN382JS`LmxYQi)ZT)31Y)~*9}k?h^$1NXzXAfQtwzp# z)U!g7rS=Xl<488^SB06uiL^K=Yz|XthN~*~uh2X}F})=lqN&0aSe-?DC#I_D0RDV_ zF)zIG(`6(kbF-;h;|By#B9l_d*@Uad@L_hV4#<4}oekqK-{@?@I?+OREiN5qnTx%8 z546R9&dHd?*p$d<I!Uij&l?5{!Oanf7!{2J+e%yOr&6XJo(zVP<H`hb^n--%KNBC| zad;lqn<%~zS;o009@4E2fj)jt3wAdvvp9l#;qg$U=Ii^Ls%JFLJii#L)eWN9SUPVw zKd0D;QP#dFT{iRh>9Np9RPMd5`)l_LA+Fp?;B3Sr+>a_{dtqiczp=hdbLgp|vO_-2 z4HkFyM7pat%mIAc1v26MzUNL~u)`bVjv8y5%Qc?7%}8vTxp4aJ%I}+G4hLwF-J1k$ z#L)Oh`%o+%445<p-Ve9XqH_G30Q5epenD{!w%-%wbN}|QyX>=oods5}ESvVj9v`DD z5fBiqGw1b^dHP|Gm8=Tz_#Wfx%ip>CH*{Z(kyh&)#ZA*`ek={PM7Ew*f9!I7ewpkn zmPW9Ld)uH|uzZ6@eJ0=9R0p3sa{J?sd&L7)MTdJsF6Guc9CA_h5j82hr$bsrk!bBy zgU0g@7Ah}$4tK^jUwm@U@6yiv9nXQ~%`Ywy4BpmQZQetfLHo)H(F7v7U^{oOgs-7u z#c#=dRMrQD9Zb>DVuPr8iQLNo7N@y4U-#xFULEGi+H3r29+rV#O(0R?5_eDCWccp^ zhLcRAnQmPVQn~IEX_)<EU;H5p>qL0tm;TcB;+)4db|&Jz+-)(%cM@+P=&PCN9}b4= zM?5b^uu@+?TH5}|S)E#k4nw$ozr489a6TFNV9w8+$Oq3aX1Q?3n?2+#74<1lsQ+x+ ze3%;j?_;{g)F;uZgTCU?+zu30ur(_Q-&z>hPQG&?u_q3Azt)}ml3VGpJh#^3M(@@8 zRZzPzS)84oUf|w)l&hLWu};k(HTnxm&}cBtF81!M{_8YXsncIoSxODSkC2<WXMLxv z%&wnf$O&~D)?)nrycabh(6o4ik(M&bF{r6!j_oNZceplJ{i`}tJ*cr_xqaaSUlSZ{ z8h(6@+^jppyXfrhUlN{uFY5Ngk*TdnRh`B=KLt}*;rG<4YUtNPGVw+FkK?nh^$8br zEQnxjqcqucKHvZObAHn`Ms6$XS9~#};WJC%l=L{fhyXy-_@bp<PXVu5=-kP-olBGj zcc1%h)4MCZK7TtsyL;kDdhu^YP)LsNgQhNGa)7K_l6~CXLhd}5Eo>{I_@izMKT}Po z?j#eiURLGDXrnqCILb(ef9-#x;oJTh`>GZJ(WRaT_kO>OUrnHcBUGf|5Ul&%{OVN6 zhoy=#Ou}Qfe}!Q!7ouLIyDWDyc>y1YgVdkIOq;GN;#}L?EBE7s8uYkZeRmZ5@9%O{ zxA$OA-m-nw{YL5{12!LN@Ee~rpFk4@565J=sL`-#a+jP`fpGH0VRQ=$zU}ASeQz31 zE`Km?!%90kL~TTOObwV4bY^30ZBL^@zS;d5y>L+s7Wgi^yjF3&eInq|p{1`i^gtWe zx<WPEGv40o1z?GmoqhDT;&)4)8jTZkKi5e!vzHw)nr#Q(fb>6pk~#TB1Tq|9R9=FR ztniCbjSy730rh}qj+`v_C{dWVYk&EH!?#yoa7~edGIvuy|B)9hMDsunlpvz9>!ugm z|5s!L{4a`Ohum#5ya!Q?|7M1ICx>RnW+tZpO^(ctPWKI{-!uB}+tL4d=<mWi|Gn_m zsq4RkI6Z%GWv`X(@Os?GU6)M`TSbry-5Fr@;ZqUBnJd5=rio1F<xXTJf}e>xeNzRj zJjAC}l<`?j1vg$lEfnfkp9(y-a#(N5bw&JVu2&yU*1R-)2J{bzH}m}a0g=gJOnkD| zuE&0Y<_4sSvN=!-BHj#AV+L>ri(6YwTf2+8s%Y{~00dZmtW=BUA{h12qr@`0_KVs$ zh{NE8D`_caxN|6z***&R6MD39IPz!fF<$}Mbzdr1+j|9qH!nBAzfd&9S~~*eh~w6} z*tA4#*RhWa@4Co)hEFm3)vt$NTW|EHjw@C@L2P(61gC8%RMl<*kT3wGvS|JklgQ#H z^e7|AZ1DgTCUte?{GGAUL4Tu@>&)*6|MDb@Mp})8dn9pxTDA}Ais65E^7Pr@8na{0 z6YsZIT8R(QC)ZhB%h6^~9J-WddUs<{?g8X~OBP)*y0QWJjdFql*5gs?J_ki(Z_ZI= z6VVe&2&A6`e<dEHOfbYwL05z`n)m7+8N8JNh`MeEx|CmM(BM_kNn{9<)}QV8B2h0Z zuSzohe840MsN;fRpzezZ8ny*TMvgqcpX@0$(0^K5H!ZY#DWSHlkQn%))FaWB(We}7 zY$GGObr7B_tdiG%9k-=LN+M)&^bESumsQs>ImQHRILbF~(o$O#cA8U!l?=d4fsXXj z1>E2X8+v5=>`gt;v3Bl4n<Qfr2l{fbdLfS$P^tU<A|Q<l1;*PFMa+(uXn}|jyza`m z=9h~yJst&Mw+yw5m==T%{#2G!oQ>6T5RBu~fZzwt=5{C$7i9FQ0}#nIPZC3%s4ZnA zEi%LNN#tHZv>r&7+Luu%`4T`pG>^q@NR2PeRZc!oVF<e$eHbs#UGitxSY!4(J|Q1@ zssJ*<+P`G4EBHQ>@Kjh^<e6X#thCCUvj|JsA_jIn`G}z5MO}$k*5>O<${)DMcsVD~ zm$kMgpWPF4-{RH+vy~f72Tw8K?=qp)L-(S+6*@o*lr&Yj_|%UlS1g>oAtq2<0ofd* zVUl~I&`yu$>M{zz8cZ*cK2!QBr(I|ND7Et$E)qMrfaybUXYsx~3K@+mr=X}=0M~Gd zRUGDJ1qq4{vu0UMeWEHmDGZJuNvsRZx%}yE8FfC{c*pdt<9?#XFJJt#$&sLr*s$=M zU!|f!IuC%~(}5bz#|52=;L2;+pPF0=bfJhQR{s8*PC>E`BvH(uD=SvEMayh^64;yu zH&g}wpq~Dtg)eP`2DJvlqC-44GMNW=eym%s^kiW;kZ$6GarNR98Q}(;A?pfTZK7<v zKvOh|RFqh{JuBqXyntk)1YODe>vA38O-2V*4~noximb=&Ork+g0lDLgv-+Pz5DV7r z^T4M{7-5JuJ-1cP{5WlVfl1o``>S7s8#NSXuw!!!|AX1I$lYa5f3Z`3(!pwgS9@@o z>gb8HKHH0(`Ow%fnPhmAt7tsWy7P))LKQkHyoUI>R+b7M>c$bOi3h3bA$f`lw|+g@ zw*cn(bBE_$;@Z8Mg=N2z#kI(dDi0oQAfNR&B{f_TEVOg~L=jjW=)_qSQ%4S~&2D`` z1!bc$u@3vq)#4C9Xe^n_)?P=f#}+m!f$a!~`$_S?DH{ZhY+DIz5BSibz#-&jRpj_C zj1q(hrawD+G@XPqLCo}WH5Yi#Ly94?MS}1~m|*@G$gI9JkAg$VtyH)tRQL49P2F92 z{Z0R|sc<)V7v9JcklaBKZYF6Cd=;|1l~>eJ<|c*jjSQz>1Z!h*_(E*)nE0^9qhr0k zaml@bPBP+IDC!p~xS$*)tGRgWZsw0NeLem2(GBQjqF>;^-M^PV6zo0nBTL;|@hSmv z6{y3<Om`J5<btG=_HTu}Cqt2p3e`6}551XzKbgqt`p!mO(DCSEg6L7@p;bI8uHA1* z$r7=P>RGsTTru{x4B@nN%+dTo0jJYcnD&FJZ{h&e6nS?BK2p9<1=D`6u?AeBTm&#d zPbP#WiGn)_+COAp82_>apD`FYbkQU1V#?uTwQy1KoqbJxdMI(1UGTsA;ZCD!I|NQ= z_5Je^Ve>wFD2)ptxct3gu|3OwIgO~wb@41CXVNvq^}Yu*ULj6Z--I^L0)S4bRGA;m z;6+wo!?Sx9M(B9vsv${B_-Lv85k&eBu2Nn`-$Ls<v6gF!76+`BkdLHI#ZlP_g6quE zod)NtGMbO>ATyw&<I$TfvDF|sc=ux-3kY)kN((=v-rw=U0L|I=={$l{^BiLi&wDl0 zdj9@S+&Dv|*pY<LTqwjwSKZ)dtK1E`KTPA5fwR$<3-Ue9>x~x;)*F%k(o;MY%*w$6 z>3vMxhinOxko75ixac+kC(QrOgJCtIwe|<OTN(KWk5oY{wK+1F@vGjE`NZ~Ef6j=f z^3m{#xVZOiIyB*ooaflonV2?}$ujc_GS~JD-f9%d5%efKWrR4(_!OPojvRp&9iYSE zM351vfE;L>epGQz`@b+mlCyo#z&CbP0OA`SvR1xry`REDtjlzam)|qG0S-B@!;;SA zCV-cEG6-!TK!$?7Ug_Pr1OmxI(I$}ZAHb)|KL)VGM(BSY^WzJXFrVuOi8qyg?dyJQ z4LTJR;)bz5Aoka)CkAxo+5J;4*d9%%i!0ksL%abfQ7<$@@4$BKZ^iYXx==#Ye9MkH z?eV19I8)N4{O=N#?48%bTL<_+Cr|YEH1f5wW-QJV!WT;e)roXzkA6k6nbx1ZCy)ue zz_nAuKFK`hu|_pMziOTH2$342z!~#uOZU9kW;NJrqvU|R7@4(nO4%qr4;)-aYYyxx zbzDdIQS^^C#y!E~bTWWdZpv{W^1TvHv>CvCri}~E(-a@{X!M!<Fdip|Xfn`ND#NV; z!j$JI+uv)9hQ=2tK2Z6c|C;5cXn!u9Ia@|^1(E1OyLs4s2fQ-|37H{T%0vp*!j@F( zJ*=kqRCn88>ju|f#^@`T?rJN&FS6ABB!(g;>Gt+8@j120{VI^wj%ESRF~oi+Hw?mb zlIW#*_uT!*1G0w;i&9iT1ufl>!}%7+u)4(KrgS2Y193<9p)jc?bO({wUZomI^4<Be zEYaa*xSoiDn>6Ev_oyi5A$-`E>P!GUkYH40@U|{2SlCfg^Akjf_t$3Q%6so30ZHa3 z3fCoE&l#tNm`HfwhD7KLou3rfl1W|C#)MU*bzSn;+0LZyN%wU8=h^>JAN7Z7v-ITt z6~t{8P&_Zvf325&i{&lW7Js34wZHQFnIv=cT&L3e(xfK0>!dw|U}+cLt72Z@@!(ra zZBzr^rs_TvWG#6LyyVXOwvX;P`}w5n4b2DfvR8?9#!p=Pz61pzN$<H4AaC)g*xTP% zhK@BufecoB@ORj{e}D!2nAm_+X|9Z-0gBjufztp0qphYF$QR~GmEKHADr}~|#>5xo zEsuU^Lt6r=kC|vf15(CkLQ6-u^m+kx#~6|a!hLk!P^z||%kKmVdr{yivel6<_`I*& zXL6tXRz~xo?O$Zx)Vp_bM(|GK4=jj_qxKr(GZA4=g+<Q#vtb_Bxg1m|sLQf#Y1z*T zu;;vTUMRMCAw%AwLy-`rPO!13e>@w6T!=FTkKW}y-&@%r+pTg9T+0In!P||OKRxpH z{MNr6E*B~CQZEIx8VCP4Z-z)^e4+YOR)B~;yLS8(0Rdq}EK7~(RxpCA`vR|ED3h2x zDoF!~f$cgbaFLsa7gf^Njkmbcgx)ILCbsS;Bz{(`8{f42(~i^u1A@AW^O~3=vu(<h z6R%!eh-XewbZnEzfC(}&wxtKA%dspJ6~yGjjJ*_{PwK>$zm8O?DEhC|xAEH4yqpo5 zdNV3lk4;0rA4l|?Yn5NgWjAVy-+u)4eP%D&0E3GW3g9U}@`Uso?XJlT$MS3_x?vh` zjTyi)UDLQl=b?>A$Br03vl3v4tX}mnpdC+UV+{rNgOm%&D>PvJ5v-T;i>*uy5N*~x z=yv<(7{S=V!G-T(AZ*(Dw2ow$b(IlB9o|hvH_yRu(aI)EOeqn4DKyqbL5pz^0az;) z=P7}H#{v0f&%tUP6N8y@WutXf4>D)mmUw`Hko3V*!IxI>T>f%M@KtUop@1gLX%k)S z=1;&kuj93GyquUC!=EZ=_ym~(*0J!%E1vq6PhJ=;^8@K8fGCJ+`P|-5f!1H=-{eGt zOhB9*T~M^Vo50r4r@9jKu;8S6z*26<<B{S(ABeP?T|QwUy;UVXyA|2YUW{QxG{F5M z_z#`=-n|<LBz<CF(=u*(8QdYLU3H`+Em=@j1X@icv4GXKvba;`C7DE<-d^!gTfh?H zjzxK7Kjal8q{_8*Qe!xXND7bhnt%t(-cO!(q4Ng&DmmAJPURES+@<J>m`GNU{*39N z70V}+)D#y+AqGdz9-0C&EG-f>ixSty)P9ZB#Q$09X??H)wVNZ}3+aC)|H!b5aXRY= zOJ4*GDGuDy$SWL6iQVF?PB!GKugRCQ4WAp6Jf&{EPF{Snu`nMkW<q&KVh|drt$$Tr z>QBiCQ=KJ|-8k$K@1CI?qgwInl>|)+#6NlQ-NPuG&0fS7D9#ic_h3)(9A8lEjiL8N z1Ec9srZzvKe)Z}upm`m7uoqiU8*bpj6o*I}{wr{fRNtO)d8amYS=ebOyXaT!q#DI} zg+xnp2CGD$vOa)RIC?$wHWUU*p%Rt`aeBTt#t7_}e2_gj+}-R<pK)Ql>uLb2R$`~f z-)CALE8xpD(E7Hs-H33d3y?6IN9pN#C=@KrzH$CImIZ{J4DEL-tH0r+&S{JUQeC6g zeNdsq*oIqGrXm18SNk`rdv74(z!X%R_xDTq6whksA;iDsmgZ$6-<+j(M1KW}ylEtu z5R2oiI!XX!odtuan8KQFKPAh;XkdnF1R6<ptG4b*Vh5N>N%wd*B^(Y$0^`1{A%T8- z#oTl#+@4BKtH0f6g7Ysk4<QD10qCq602hX#kh&hCpfi;*#1MAb+=fk;7sJ?KX&cVH z`NlRA^_nj8_TXS4h#Dk^MX@jbUc1SQV8mrSJ`VNg-(bgu+pF8QPtMIIN8f;6KXF-> z%sjm%ZTWPBrJ{In%@*CF;KVueketlTme#e6c9a!l2C|ciS>Si}8F!J?!#{E*bU=Cw z%LPdP$a&ko<G`B%Q;3?HUnADz`w5LhHw95wvmGnURjO!lj`(<;<#{#?5c73lrII!w zrbF-Qepanie{v-C`r7k~Q?^ZePM(?!cQfjaHGOCkZXZ1v{c3pmA?BsdC+L=7_!T1R z*RCeMQEMW&H#r@?`b87?{(TeeCi!w`m-`olFphtJ&1-pcw|!y!pXf%(#4RY`u%w&{ zrWyp>L7;CsvQ*7G>3L@3d8pBnJz{0h6zS=a#WgsU5g>Q_NiO^DJ1`g&yO15tNdT~C zfFLg=cxG~zj2f(RGY<ne^GGEG72kLc?k~sPgGGw&bqLWuXA0EP-b=K92}8bBsE2@! z@c$4FQqBJ&9CwkOf@&&%&Au-wB_%5@dFHJ8%HsO$)Ijf4|KR+<@YK|{(yM8Ky3+|3 z7gm<Ei-c`=-n{&pZ@HbtS@^A+!tV$IZ)d;RC0V$Xc_Ssl%{_YQeOiKHR!R76tWZ?c zmIuCeh%TgQvH3Pt()^)vQGwCUe#Dz-{ItJm$%9wZ(oU@<kWQyOa-I|i7Vs@!y|r-r zZkd6#kw<|2K~w0CacRPmT?v)jasST)KDgfz-qKETOX}#KnW=79a_8wF+ZB_GI%q!? z3yr;eG+pi$4+k6t4CewEtMx)KXyJUoXG%c!WIkh>g9HvMtT2a_4g7%j`wm|hEb^-4 z6AHZ95o>6@b5WWeJoLI}k{|qL>YN@eZG$En1tT2S*4{;Lot5=+HR~-S4!ZgT4(<`| zkAs2Sp2Oi2SHxMxg}<i;YAa&DVx+{dTwPy`2l>nUt$qc-S>64VW|qT=qYLl#s}84l z&5w00C%IV{52Y+0s0=<+=~m_t??Lw(N<Ee=D;!OtO7Zl@-MY5&Es4&r%GtAXdScb; zM4*5^>j`s$&Mh&?ETz9poz5*^_O*F$->qULJno*hy&Vu_AJe~@sx@@zdSU#u&)Qwj z&;gZ~W}TS!mA@7fVH}4YKi=Oh|M#fN*KYnGwAzSO^T|B({S?Vv|CL8+r}7>-j~_AD z<XpE)|0dKxPqU1qs;B)GM}ETv>&=;|#CO)h`X6s^TS!PB$Jjp9KFs4aY=bJ%8FQGJ zUmRC6A*S|+uL2@wKAD`_Bhw3?Z!n5hrW*b><|d+7v31P0=kj-GwCipuh4oZv^(X#} zn%)lUR}Byn2lVNx&;`2Fe#71uf2+OtOIfe>;##}3!fityR>F)u&qtxiHIEF(Jgh!0 z<y}jXjG=JwcINl&wAXDwzNglQQ(s=}biC?9&O7Q&cZxZWV;;lyNL^m?wZ>}(i%C{; zd<VzB-nH=g+wi0f!5yt4)pC!ellU2FEWy6ntNN>ImBq|yuJQkxssCt-6(qP6ezl`$ z^wuk7lh@m4Yi(^^xps1vNxAHrBW>XgSVSx*A*`Uo$rdyVxl1dYr6zgoJQUuM^OI^9 zP>o2TWn0>k0-0ToPPf@0en+;$hT-_2`fV3c{uqW0ho_P@2Pvpz@`NCk9=1v6^k;pS ztxc$8PG8h`a_(2M7^SKFa59#}>Uu)vSZ;ae`45Z;vE*)8b|C1xnWMd7sJ)Db92P&O z%L~D!q^s|M8*bjYOrE<jQTM0QW#|y^BQQ+;*v{~Z2$ytz%l$fc(*GgqOv9;q!?u5~ zJ)1X~$1ReXkdR@Eh=?X+CPI;+M8;)S#!9J7JBpM>^ANif%ACw$o5?)SyzBoQ&wD(+ zY>vYR%evRS?(4eF^ZZFy-Gu`Kg%s;Di#wxnWMF$gW2(I|^NHYGjpr+85@Dq2#^Kh( zb-kuJOQllx=&%v^ZWdF(&d@6TL=Zzb^sK}y?97vF#=ToeaEAWH`2nxOp$lCz!>5g( zBFO@S_a2oRAtf3BjCOx)pN|uN{Ma$qn)hfj3l?xxk)-zYvsAAzCU5E1&1kbky?OTU zS7vLV@@c8j4<EID^icdt?Kolal|f`@cjIe+Roagm&sQ=Jca;s<B0xqpLFBMEzxFJ_ z?WHx%^T0mFs7H#Gw(Pd!Iix?!bP2fHfW@WtLEC1<)9AK8%gmN9#eQL^s_I_udLeJ# z{4Tm?x^Eyuvn;c2_MFeExt={Lrp%U<?L2TPXL9FCF!2tP*Z>6L;d9b9@C9*?NCwgN zc%g5|Wdbk*SiozJPfa22NT40NDhi?+UN^WCW9>9Ia#5&aJtjBRxTVQL`1GpdMc`_t zUg#;7t{HG*=C)T|Dg;#DE55F>bU#1Y!%thDX}asKYb!)N<JElHMhhO=JI+9D+43IW zCIH6we&xM6SZK9&mj2S*CmDKocS4Q9b9SYMQzi@IZScsr=LZRpn+qvkW*4pfSLrdr z3BfO4I>;0ETteo&7N7O_SRBI&)2PmUmZIo~{}Lpl*pZH<z;JPNy5UCU%5MHmh#~I8 zr+Zag^=3MW6GN43F)a5^&3&!n)<rc1`E#+nhQP?0(=^WF8%xOrOX7@a-8Th#r0&0` z+Pv>m=$4mwIKMHL&J;^4e#d5U<JiAfhiQSvBtImkE9B>22^LoQOAxGtVSno6?1eaW zA&=dr-r;&i*wnymMD9aU4K{hTXwspZ9!3df-JCSDPwswXg2ZjT7t#W+h1kN2<UWsG zB}2~(wekt%)ilH<LUZ3_T$4D{v1(K&Y7cyDuM!L&Du>EIMEnMww9+5LLkj#i$ZdU6 z%{VZ4*W>#aFS8{#_0a2d=kFQ+Q`ES8_V{>6Dg*Y)tnj+C?n7AR?>GmSu@2OBw2UE{ zUhC2;8EcrW(4M|3-r=h@l4>g}cPF#F-lY5qeP-?(Bp9VQp7DNr;L+W4Pp4RtD*>4Q zw^bqd&oUBvd5WYqcIu^m&M|vcV0z;wmrFF858&^RS`1_XP;4ey)3)Z2{Y|bI&2njk zI2;)P{?zRxG@vQVQiloK&x=gZkf~=9(vMx>LC#M?%MXD)p7`MUP}*TY>`V<q0p=4s zBS^b}_i-BMutFKEqsj|V=_m>qbn~Fu#+g+N%}v^^k;9GLM+Q$n%J;45pR{2;^Ir@> z)FE*YD0cP)*~=d%lR;#yjplwWLjUc*BQCkO0t8mJuR}e5gvbmazH4U9#j8gNtqqx4 z96cN{PSaEMj69-{m34c5`Q*#DqfI{o?4p>Ona`qj?KAEU$fR<?#^ubnnpBR#Is2P> zwuoQsBofw9JyeE(c(2ex)n7cBo7~63T(NM*;e&^{f|S8b-PfpBw!mx6A11;@ol%_f z|KiMEkZ<e$z#CHKy-S2u+p?_bUofFa+=7xGn*%y2BeguOeUYe{V=KJv`b>`uH`2C( zZZI(0t2^zNy<~)!yC?5b%?$x@;fZtxO7z=rI=Ybx$DST}MigM2%5G6^?BbD{oh>q} zlST3O{Tf5vcfXOS#}wT`We4Qaab=en84O90R*a5hiEO<HDL(0^xXkl~x!|aLVCj@h z)+?bL@H+|7Yk?Y#wdom3eccsD<;4XN0G~N{g7~kZ{WT<d+(3{BNatcXgLYlgVRr%~ zPmY#k$k9(4%gFxb%0qgJwk;KfFA77eFk|*5<`!)uQzvxzh72!|G%wj6I=K1w<&)4y z)pk*lZSPJ4{&|&2D9e<L=k^YCp5`YBUoae1VNk%c;_4ldu}J1ecX0kfLn@<qh|t8Z zuzn%HfrV2&iz|DT5sMti`80OKas3?22T^bDH$u6)*YL@+rWrd^IE~&wRr^m{rGX6W zDaLB{W2Ivwo729`WOtzw1^}w|R(49tgGK_c+;ikdxNa_Z5D|v5%bOlRa&%h^eWZv8 zV|De!2zpB2Fby<-*urRa*R_G?@I$-V<xT=TS1o*h7%>f+<H*9o5vWXqgvAWfC+?jm zq{XV#Zo`n<MiQFOS`F*I#v!4CgLGCw>W&`JxzD#bDWbpKBS#rT9W6|R>1%uboBP0) zXx)h#26<)5A-7ThCm1J|PFy~V5=9;iI4>i9BA@u^cbfWh=bgFc5#{pTF9N4;OXaa0 z1?$024mbfD(br_~f@#hSu1T@FqH)wlo6Ek@fA=7i8KEpgGH_$Kj>I>UG_WcFUQZlx ztHN#W7ih+r5*YzePM$oKW?1BfkVI-goKE!L4|g$ue<<i>91c@*o`k0IVyX>frfhC| zG}m(bUH*3JfmvRNlD1@s#LAUmn9GTZmb-<8C_$H-e|(BNN<Q)ACQOr0it^wk4W}2> zlO-1A86!yK^a<vm#lL41SDDV`b-oj!Cl#H?)46(v;uYWxF{&zphxy_lTNQJjG5HeU zHeiePcV6V62!USr^lcj?GpWWtKz=Gz98?b0NMlt{@q(=fx1ZrlLcr9-=)ws{Ku8vj z-Ip;I#9~$8-B7oO>?$#+*HfKVpD_Hu4h30jCKzL3DM#Qqdpy~=+O6xgy&$`*rl}X$ zH+Z*L*i)=j6R&*33NDy!EYe%NtR#1J%lL+g%m^#{fbxU3?APfXOhsVG{NrtUQ?~y6 zFeP>u?dVh1hO^q-jITnh&Q~YP?x3BI1C>FA%fSLDFDqkk(v1a$ETT*&+mE4M0Ra_q z)xj%AuF@TR90--4C>=&PJG4;9YfiRo-XpYmw58lItA-wqo2*xF7+!|7Ur^_gT0`x= z<gb2XYM|=v4<0;)PU8qKrw0NN=m~W}-zVE%1gK94oq7R3%=Pq<@B-H6c2N|#<ythO zN(b)&2cS-P!K(H)5c$QcW8~U)z+0`FFsmp<&vHxi2wl~)E=<jJH=ez`D~WN>@X8fv z;7{fQ_FH*^78Q^}Ef^|>Ejo1K?Z0p*GDZBitIXs=cUq-19vq@Op<Qwg5OxyPdXO1% z3Cc7+{QX-2eEV_lsaGtayJ<Yfc-Idd95Vlt_)V<grdQVDAn=O%*os6dKXyka57aZQ zuCJ7qgN9EClgn%6XQt=5B-+2&ej`gF4+t|F(2st~?$ICq8tJj0eeTHsR0wbD0Z-q0 zF@A1A#1-6E*gg}1;!1(tRN%LdsdV;$myFJoFkXC|A9eb!&=2fazbgrUU9R1FwV$1C zXyrv%o{q-IBz{mkj%ty*@{Q>f4$aIObC1N2M)DYpL^)`3O{VM(DA3cXSWm8u2hHp9 z>|_O_6E|n)>|}ng)6DmMS(`rWS+{Nuqz76JVQH4jg+m7>)WLocVxklk+PrW2(R*Vc z>*fg*te(Y24Z=<}mu@HwdZM}yAwsLQ)S5whGV9=r1SEOX$^Oo5R?YuVaW4-l7!5!h zztSEmx&8dBUQZ#kYAmbAff+p<qJ<%SxR}8!4m>1)CIK*qAQ#8cePOjuvzU%yOEUk# zuF+$uwFu=#o_gViR-O4)c4Z#QEAf`{SRC9zR|bVgcslgIf%t|mM2=o?V*GB;%^-*o zrdpEBvT;&7S<!XJO5jD-%OYss_m$J34R@|mD$F3V;^+2Bp7%HN`an*K2gIIe+_twB z+=b2IVMIE~NPSN$&{=150Nbzpf1m(1CdW%v6C)o}a~{RyzSfF@UqkSA&Gn8GS(2db zMer>Xsbm*Ob3y+Qk#a}mx)-2564eTEl`_Y_RElFKqg^v^>DGFZwVNoM4FKnkq*jJV ztSxe|GX3t!CGE)Ovxb-@wN;oL;paNa8TKVpo+}Z-(V0f{fNi1Zb{<3v<cC)Nb{@+n zc8fofSSydrM@D{K5pu^Kyc16J^}~P^YjVpU{XSMQV|p;4dHPk=ehmfI{cg~O2VV*i zp*#v1!mVXJtB|5cnIfDah;^DTcHb8wzz7=RHnGP)|KQH$pP@eJSpeHs0|YJfPnsIE z?~>Pi1y%s$Wv%H$S%@bj`F&$DJqZbmFUdzGPdb9w)nYjucgRWmM=x1`7ZEe(EpDDI z3{WphE_*eLpeg^qk3c8z-$D9+{2ngI=Z8t3IiB8;{wdnP@-bQYV+!&bn#*&2LnHm| zT?2nIB@$>h{+_41`U(|P%k|EQY`FhvY!Y%*Q(%T@E5!WveH2B6kDkR925mK^l1F~y z1c*A}&cVbGSwgtH>xbfgAF76Zai~agC3g-Sk)L;ls<IYr&HfrA{gxh#Y0h~wP)Cd7 zek`}yh1;YnLqYSBZEq#b`|<mUn?&k4P6kTk_m`3&<fc0)R86)s5DfYm7n39!Ixukz z54BD06+Vpngl`+q|6)jH2b2UkRtWIla!1dFR)GC)^z4a!CIi~&=L8yN-n>|b&I{+d zZulZ58>k@p?+KeZ?49(#{LRc5h!-V{rv#3$XF2wcqooTpSw@_F4?Em5Xet+1Cr}N- zPqLCY5}8CJjJ-y1qOaMn=s9p|62es;SALrNbFRu`ZEavbI0AQB<xt(uRbrx`tk^TM z2c40)KFWUcSP#KqRTI_5n+e9mr+GvR&*RAe&gdNSxJgI0NyrExzhKL-!T8fN{@oc$ z2;!h^@96*<@zeCeEr0_lcJrB`Z$jSya>uw3MmG)(`|ssQ!r;#lB__amZ~=G(9A!5R zohD<wx=m^6w!_G6m?!|BStt-srmFF(P3(0Y<;HhqA6Leez9uE+jbwYs$U<W)q@lyj z<nSZCMP5rVLnh7roAj`(L;rRhm2;OI&OPBo`~w}3Vx3)m_uUtYCu;3B`VJ6<yn0!W zBCGsRlhGP%iEqQJ0;S1rb$AVE{`7x=itQOgtXhbfM}fY%%ntea>kF+tOk!Lk>Nb_L z2M=D-Sgq#~ljrA9m=g04F9)Ge!TV=_AAyh61(2*E&>3ChNk$fS)xYi-Bqy=fR_Jwz zAr&~4h6-52fp6=+(l>kv0$$t@nv6p(ZS(S_;%mi|Ho3HnbhBj<y~t}EkAFp}a4xUF zY9p~m7N3wsnV2Vp>+_|v*cPEXTP74G--B{F99<T#L--6vNkK%>CDrL}zbEIF+T!%) z^V{hke&s0q#zocMD+uMRt;FoB(!;X{%E{7w7P}o@!lq|I_=oW=V||_XqHu8Y`X5?7 zJZ$40*09cs4?@msq;5ZKrDA5)aXvsRmjt9F)FL>x2f(RE^(JzP1eoS^A+-iN%^vpk zIwHOm$&R2t=Dwv&PY$Zb#XD6oqDbDCze4Bx9)y*Keu`chCDGf%=u88dWr6HZ+~X1t zA}&r8QCm;xxyrt1^7-~HM6k)^8{zAH$3I`bZs+cOI?W7sSg1j!hBHO1{6aX#*kPxy zYS|aLaSukj-uLcZ7y2xCT~k-j1YgeC7c5QxXK>=}nHyxqC<rLmx8Dt1Ji$m6M>blE zrH2t$-%mc<2Mu(R2Qo!rb%ja7%JVYAt#peN_zO@jW!dRq1vT#QQSG^q10=r!`h8&B zXD21pGj#%S@kchS*rP$DvpNk-9^RKYZEC+M!31b(gE%r~llQ3ojWn+uDi)AZkb0OM zFjlL2Y;#n7avgQ0i_DOEMOP&vxkO?T-Bs@qB9Y8;{miPuH1<C^vcOi4=vP#b(IH{g zRNP3Fpe^COs7>6G5&AfH?za0taC3BGAOA}iAB70|kK>WM$sSPc)*>fZ=E@f*bGzEM zu2nRLHT<GVaRcOE2=1H>4h>yt<m_t&+xed(ro~O0fVB@;#zRW*6@IPtn0*=LW6jAg z^!KJF&SI0H(^|SpeY`0i9=wP{Oew$SJDQw+iqCaAA7T&V#<F9Uts;@!bPSQPHiYu^ z7%5?00Wc#`?q+8mZ(dgPEa+ilD`P$<u`T}j%&VOvDbdL_p8q{3p0wJ1mz{?i;2fzy zG{0mq$c&T&Na0s#!Z-)+ESxq`xMYW<h`js6D~h^1TGM}mpXGEwE$>S(63uZ!cG9k- z?R9VZm3yq9?aRNQ`mIwYo~eQ&dt><fVlA$pYyv-Ey9%TK^$*0lr0=D0=ul5rdWNiF zdN4}8!OL6UI9)faS<NR7R3s;(zKg+Cr^kH`re7cd>nGco22tR)JLA?VazCT7Cm{Fb zOdmW!krzeS;N1<&;h&FjhQC>mT=7#_e)4;rQ$(sgUnAb10$dPXXmblzHG9L5sdu!? zPT%@vqXbq>M{fPJO-ZTN^6x>dqgp4dQ$hq>Uu*;_Hk%zsC_ep7O(%3cQ|H$q?n?`5 z+=G4tPl{g`4Q=0C^oz+_(YVX?uYGMi^<%uA3M0R0JJSTGxsj*--qre0e+MQ#x!2dK z)%r_93Tx>-`_=3Iz2Co>x}|i6z4>mAbSD);nD1R&1+jyP&+aDGsPpGOs6#p1nGf$R zYaPwKp&H`rxR19sYCOyOKz{U|q57M8JQ7Rr;EFZtm!Fx_wy@rsOAIvRBzh<G-|^#G z-1)tgoBP{Z<)KSMc&>pPB{tKZ|9J73_O!0T29{v63ETlFXeY1T$3VgCLCUr_8GC}I z_RY&$_VdTsZqqqGbblpwiN1^7#AL-p)I_RL%Xe3pMYXHP!`sc=>Wb=~mTH!X`RMe_ z<m8X*DL3uM^*XL4#FL75q8JqzAN_QC_>0PlWp92l9)9xq)!B(aP?67p8e9WU98hIz zmoqC0HLm_iN*r~#KYqXN56_RcSFYB(D_>D8%s5q;nQ~MqSt=YAU~r^i#&X{@N<c$? zZ<xh3=kY~3@8C#j_kfC$5_m<~dp+;^R=0j{jC$Wo0gqSOouc298ySO`1RZ&pYbk#Z z0!rzaW>V+Hias~kQ{E?=Cop#m;?w@g?QQlu^$y7ST@lNfIT6cx$M0ZH>lmK)ie;|9 z0JPoy9j({?agf#l5}ESTPo()y0{e{}1~M<catp=F1R6v@&-2+CecDT_C-xy0nd`=1 z1HY`M29!V5w1mwC&%KdwQ;VOu>+CxU@M<TA*yVG1j*f2c2P*44@)lPDC?bHoFs^Fx z8}2Pl{LJmKVi+obYdF+V@{qV~fX7s3=J9;4!Hae?*^+3FRm*!;f0Xi5^&dQni@fnw z-3etRLcXZ#&>O~d_VIPJE0Oi#C!zt(TLVEh+jDjm;u$su8M8ApCH;~J=PqAWLN-X( zy<+w_Jw7qyTj{LXE4?l)3-A9-iD<av(hdm<K`3hv&yD_K)b(>Og0o@_Gws|*<L2%j zxNl&^Y1`wI=dpmg(jf!vgLO+ZL4(HlJJLbZ1F@Pcw|=EBtPEn_6ruK_PI04<1GZ$b zz01iZl(T)eH+I8>My5vtUwt%#<3(;!!*GPxW*tR)TYtqZ*%~RRqh$LqC8WKWv1#?( zL%L$epB(dDo8brN__N&80k2mYPBVq3T990iG;$K9wdq`*sl?=KoB2!gV?fnf_4wVT zZUx=EMY?SPeX&y`GdH-AsZR2!w-kw$d^{rtqQwt{W|=OnF?ZK{dr3_oflI9d0OC%Y z4w^>bLGS#&$qEYE&m06p&^08-7Lh%$<_P^p@QIq)VO~7qRNpS6nagMg*Dq5hEYb#6 zN9JmVldTY_f$^(*R3^^2@U^bP7yMZR*D8$TPp#10S>@A}@I{BA{M{DM){-zZ=|G%} z)4VS5GqA#aL?=jdoZDajQ$pw~-G`E+4deG)UBmCZj5~$aH|-@@zs=Y4LoprxtseVT zKGK0R97*z5E0#BP&zt)q2zSYa9p#uk4L`0?P{)81w~(d=Vda*VsjK>}$4Ey`+NXej z*YDAgOk>0R-|0xB5T0|7lj0_zO{H6(E7MyZT*{o_ifai@ciE8uuIgKxGsXZcK4nA# zH6!Ksl|b7MJiPnztYvYVv$B31$Brhap1ubN=a<VN0)HNn!u(6mkAhFQ=X>YpdDO_q zp6wJHafDAG7}&Rv5)ibU8&kZ<$ywKde)rf$|3ilV4};sktHwWvnV(?Sc;S)q<9Af+ zHzq-65&3-4J73^ZpcHG-sL&AU5cCuck+IcGyIgj^(Nwpc;JkXyIPf4?4^Zc)5N{UT z`9n7Ev<H&wm%QMyFT@AHLw)O?OA={I(elb?=EqO<K5ESP;ro@jhkxLO-_{3vxr2qG zNqr&k9*_$X09nzYqecsm#!I^yz-{lFVzCya&Q%4lvHlQ6k=W=|=Z=*;OljL%+pv2S ziyOpf{$8L;PcK}6b<jDV&6VV-d5Z{;Hw;nmSlTq`t3}!Jd$P!f&rIDupDFRoV*E~{ zb3{%f_Kf8-X679+B>JF^?ug56NKEuM3aJ_Sm=RdDp7Q4OqBs75Y21;so=VO{t`iG- zLI@+RcA-k=(Rn=551+afmJw}*+`*v)0mZUP>kXEx>twpc^`*c-W=LaytMcoF>lSG0 z5rYqo^S|FO9zYzhI2Kz?LBKwi$@XC(m=kyv0CJY-q)5FLjb_WE>5qdig>-PCD4mtl zi*ARdPUR$gqHPstMQ6rUdVuFlQ*U?Abz9Q>Q}i_X0mjxc<7Z&5a)8HyKjqWg8CTzt zK?#;sH7i+9l$QDIp);B|d?$mI{l$DsguWr86KStNr6Iu%zTWHCtWtHmCBE3t-)FqI z>zF(f0Dc)QI57N~HAR}9-#1>&R-cUP<yY1}*f{bR+>L0+DymFJE4Ifi&R#t<5o^jG zH@Cr{%Pa4{vHBD>6;m_0g7{%y?nR@rld(UM$to6*l{h_%wI!Jda(05MPtlaEK)g2x z*{6yQ1Sp{_t}Mb{3CxOi$<X~4`b|k#htFsPgK$z1*<5U31(#XA#`twYxmLd7!5OZ5 zsqY0?+!LsiUqK2_!yxw+_teo&H06&Q21|G*DeC$rMuqXJwk#pSzheJKbIyR!SHo;0 z`;V6#Hdg)qf?cr_`ysgJc94XpvIOWGUzMiBA{jAfsW-s)lNrBP{j+85%Uw5HZ&81W zFB4JcLWA~$A)4cQ8p;$_uj^$268tZM_L0LWf&t!{{Ndq^!jbi16C60TtFeu3TRrj^ z5HR(v{6b1D+2kAVFfiJu`3F?jTfzposo%wu!x#aRprK7!;FA+(4ua+KqSiY33<pL( zMXi4Y&omxdukgvTk1)$Uu_&L3NX}iJfR6>quW{(_-`DuRlX&DgqY>A8{KFalr6rN3 zZ<nKnR|0&d+ym4)HD>W3xCXig<;1Ng`oOxkPVOL@>-7316KxwVuXh7${|Kb_LXOE= zjI8A(tK|nLz!JQ;HQ0R;l&RMsWl~w-npWu6Jdvi;!|7hR&4r~}_Yx<ke0O&*r!lFJ z?^YLAVoo8$t~>sX;KIQn2<m&L1iGbZ%Z(@?4|8Ig4vSDfu0i}@Usd3qd4;mtD|gkz zm$$@yg*DkQ!`jaT{VQW>E0i_#AL{L6@m{8{9ZVm(Yg7Ywj3+C5j59~Jd^{ED667~3 z%I!Un=6065aX;DMV}-UApkAAEC+NmdhgOiG5Td;PeTP>_-L*F6MiO-F*U}#W@M&-* z;iA1@CKGCC@H5_Bj&pjxnY_et|2UiuOVnV&5hkA3I*+hOm2Kb?G%fc@p)JJ8m7az` zQFgYGDITSUM-p&Hz4-B)(3;BPddmdmrS+Csh1dTw_z{a^WJf@({~Jwl;s06{uE<{k z<$Zd@+ut=f-t&hx*xA!NEGH$UATOt;rm{Xl>+jc8o11#f6W8)oU-po&-_c^9EIQW6 z%sXQvx7Pw<|Ivwy(OqFVBrB>8S=nDW>~3@XBdaSpzV<>2Njz%D!Sr8`H&bnrXS~zk z8p%fweW8E9?<DxyJ5wSge%3yO3P6SLo*&{Kh_}7*-TD<$I3XMCxPf=Ma<(ls;3ie< zKvNO>T*%#VB~`;wQknL-8v8L6B`OEtL$l|Q4Ky7}xqfY5!}Ari*6`mhw7XNhm4^fN z1x!|h&)vwNjl~h+GB*oAN8~juV0%(30{309Jp%CFI2flQsAfaecoQXEBvVglf;Lp& zeK%KP6Y%&231^)Z|19R_%xgobErC<KN<ye&J$U#O<Jn`dgUY6SY~DoZ#GS1*2R*+A zMq1a7_J_1glONL>WogY22sj8W7Dkq$zeEb}kUnxjh<V{xN1$riS<Qf>CpZtMgIluZ zAGNBpw1I5h<$KMgdzvHnP^%D1Ne&S3Oikl8I}4>C3?4gB2{K2wO$1yaL$T%tyfxN! zh&@6;oU$uv10B1{-Vnh?*ve6HZPPmo|CM!KtPh98Tmiiba>EuMmvdg`u1B*OR74w| zTzV#W@3f?jET=)1)C%^YvMfCV)|B_<x221*?gE1H<ilStVTGR@9*-cM;rJ&#k)fnG zmGF5dTJ<qc7qh$0oU#BoX*p0%M{r?f$q_@5hfNgi^L2?^Eq?(;(JPb>fx@RE9h9Fd zE>pO%WvFN&$*M;?VurgcgeHx=9#LuaN$XWBm*D{h^7pJ|KCDHRXe@lqt^NmUsvKej z<h}UlP#Hja&kUJr**(`{1!SZ*^BYz4;1ytw^(SD;J~{sYA6J8DyeeowuPK=^Ec1>x zWjQ5I!Qc*4M&frx4c@m3LxLYaCXW^HeP)!ecjEg(Vv-)-$DPVcp!6^~e3NHD#XQAI zbhBc#&#!JUZ)e@R3;!Uog4gaVH<lOGas2!1OvuVBERC2H>_3xtE_e0k&cW(iujwZB zp4}zy^;F82-o@j9`FY9`>aP&C_u3>@u1pcF3w;+_99tI)EqMXz;(#YLKg_r$xESpU z0b;;L-RK7qaHjqMQIh@M-$^y02mE0BBEm&l$=D|Va?No!)YGmk1vm_`((@9QUg(Md z(;)XV+BhT@0EvTX6ET*4W0Q!_Ezot|n7Vx=bNX`G?UL$f_A0$Nvs`C<WF)pS=04I{ ziV4TiJ^2O`N2D>w{E5=>7uMir-;C;>F@)p>2rPWqv{qZ>Tn)f=X09X_Y_566-T7DZ zg9n*jX|gS0!##E(F|FDGER9+f7|w`2uBvo*bW86GGg;dpAQTbDQV9>bl%O#zqM^uO z?Wq_ku|sHq6X^;1sVm;2rwE=XzX9O+%Yta|`WcP_rzWz>gV#f%20*V9*Mi3pL6EI5 zwXRbDL&E?_!B)*?SmT{BB?yrMI%(!5Y&Iz}$QiL1ksIcI?bH*CeAjW+qY(PE7vIZo zm$emoFegl7hZ$qFE$HdLMUdz%wyJ!iT=kw|kEbNU)vBjtjuR**XH_oE;;Z!ZR6$$F z0VBO-^!?-vEjj>E##0Vl+@yd?=9h(Ef3fl|_`z$MVR-h-h8f_Al-I`Q^nxQDng6LJ zToTQ=Dx{e;0VpYd$BlZZcRqn$K>hL@x!}2>Q?T}}0wXwgs2xWcRENPtyzs>wj+f+z z7eUw}D+Llq5-JuIJ9!PBnXvqk9^O_J_-THPL(pgE*AMEP0&MSl%X_5$D}&@kNo+{u zIV-O$4Bdr9JS&4!5E18X)7o;ZKhG}maB&2i^SR5+x?)n^GaLG#@ma-NDViES<6SZu zK3=*)oEReg?xu%`$jVv^JQ(qTU|)@*?t0F}GqCO0oWPxAK9E62%Lwb)pMxTpfQj=_ zc-JG$ezbRk?-npMEV5hh5KsZlHM+=~jXXGJfdczKU<4oCJs}QAnZ{7^kS11#Bz?OF z71`42=Nv_u6tWSehTj4ZKN57%E^|IkI>9Q@=#-6CK0`omHr?Cz{48Y&Udc9}>T$RS zF%@MufMGwlAmPpdG@uqtau=3W*U8IbktD9%>3nN<M^;|IjKji}=$gUIDE-S5t#ba_ z0P~^(%D*OxjuK13Bd;&lM%S(rH<Hl^T8pm`nc}YBm0b+XfMr+B_HnnJ8mBCGLw{@o zA`-p{uG|*@H14dymEU|`D$hYwtcu@Kpf3&P%U8hz$#V;JOUT*vc?dlP?6VyugP(6v z0DAwh*c4#IIH=40Kxuj38jC-Lh=VZ5E1+GZlkW?EwDliRo0EA`caus)-#t;$pm`gF z*PNZfK8kN)X6~j^*aOmN*U7@suU-?irK7O?7`!%-W&ecMJ6*~-Z$j52uAXa6j}unk zLrq@}0tD?VbrEvedZ14hweg@h4c=VQ`eKQC?c2rEMNgz!hw^aV$pe>nzfIRu?f^A1 zG(<O6qaX;p-joTc*!v%F<%VKF)a_ltK|OC`UIC&*SRVK7O{WJGyH^0aD3=sujV2<_ zQhM-c;tQY^UY<33%7$g9aR@;CG@ziVrZFXxed3LKW7MV9C__2gpfEO7pI3s#KPB?# zoUoL|>$835eTu)p2D??LH<1l`o=^|rJ+D(bEA1mQPh>2XGn_^uIBEuuXff=*j(ELK z-XYQLudD`OlIM@gP^3-oY(*mTE<R+|C2%~%0W1wGA}+QCMNLdw^SO!x2Kd^#lZLNM z8*mnKkKRK&T*a=3xOAzqNxr8ZnfP_OFbmfp?pj|{Y(q!e^wli|pnbQ|M4DWVpj?sy z`T!U^%|NzIz~JhHC<(?8{qM}MAKE~kj24vC7(Q}}?^((C1;cISJVpQ9%Ok(}e72Go z{UoxWv`8JBzeAA=)ZRPfGb$M+v@2mx<(u+_AEW-enup6#f~8h|TajURVz5eF)41n0 z8*+UtpovA%vx-Ltgqoj4!(zTMvxwpDRDuX2_!hd*?w(Th0o-L!>EDW&wdZ<pH0bu; zy{$blKmwuF6GO@vSl}_r>um_|++ROH!zd7SJ!>t1msYCt28O`>7oh?1NIrmk7X%Vm z%uv*@s{7*WBXHh`h)z{+xXM&uv0_y?y*;3Tb@6xKk6%zSdo|#b!TPoM!JGE_hk-eV zJj$hyeA!3vnYSJrV7gEH&oU><U7~Zz5o$x|xkk}+;qnaHN`!FTa}^zs#*OsRg|B~8 z4;!;t<b|la_!lS?l%>CnL0$p}UjCy`9@eSvu-#jK*m97iAFnY@v7cy7N>T+jCd?WP zMexS&kkTnWuky<8vm>E>j8it`vT&}|X8jkY<SfnAQO6@V?i+?hS=I8&h%Q32ZPVgA zWmOPiP7>@&x99-(paHac0VV#^^E^D81eFwY!GLPz0?<L%jxv}6WVE2vuHmwN<GocT zQ|RQoAF-nO1p%p^d4&Z+FS2T#J+=-QSNOK*M1O_8{;uy8Lj=;D&OUK=**98pPtMrI z`xL}q@AO8(7(a_8IZx+(-zeNYMm%|k@%sHBaVP2SR}--}-t$?<?HAM=K*!!5*!sPR zes1~HV=3t7HlOrIw#uI(B`sa&?z-}~8@G%xW$&avo|zBbtanmpzVM)7zj1k(PNO+n z_S^hk*aOWGnIJ+@ZlSSwdrME)e}DF!nzOz+x87>qxN+-Q#*vRcTORzqLG?_BLxn;X z=+B%O?jH3susqs5W@}00KP%nAw952Ew|gONwt6M$k;zBX<M<LmmX_)#rN3rPR-V~( z&MEwDvkoaQGAJ}_=9lhp{%1C1lyp+6|D>nDo734s;*A#DUvAv5?Ue~MRIY6d4f?R; z{Qg)$Rm_u#(45g4Md6_j!N<%Bcct4YTV}>el|uE@-ptAetTxxmE=Ymd4<##}*7csY zRb5-!c)frjpJz3UGe-hlYW5P>7u(MpNqt30U#`sCc=GSg`Fua+cl@b5w?({9)Lv_S z<cPlei86Fg<Ahd0J1grndz_f2R0Ol)wdTle*KR2mq30HtH_gpXHdG7G+&CV-ebiEQ zUnE;DoTsq5|Hx~lF0SzxKJ|`kdFX6zWHWyx@6aN)%2vX7tOe^V;EgD>2&rlx{(fv} znYR0I>eMr+O>o>SH*-Od@A*UF?8J3K)4sM<>jP@Vmprx1%-!{joPppx^ZMyp@3qud z9&Q1_`<Cr(ZmOs2k_X@F9XE0awrEN|7<Ng0oHcYE!Q^Z`(u3f_*bc6vZAuBFT?1@_ ziF;y|@xpHO-?clklqhc5(`~oiCMKcRZgmeljTU%fu0Kc7l)COqf~W3%K>;|){9L!^ zm9vN@n*g|(Z!QdooKsK)Or-w|(cfK$j(;sYqI&M0_@<{V&&J7j;cQ<n{z<h_5FJ(5 zl_ekk*ZK9=!#DVk7%a)<JoWRJlf`ZMr&6MbKHC<6IUG(I)(pH5QX*e_>Z&>N3(fhL zl*B&$48Y$gp_dPf_hR_&q0?R>Pa^o1wvXe%)?{da4{oLT#H7i@G?UKRTi>R7GrR2| z`^eA2LT7YV>9LT#*Q5@pwFaa-7s4(E%+#2?^jLm?n%MvGLcq64((S8E&Fmbc;BdFg zTY{YfmKeH^G+2o-qxpmjc}HBkcjP|IIqHBWDB=p9jPt6#dwfdjme`w<oWX{__A|^A zLR{XHyByp6UWhi-{flP*zLfr_Lwil;r6K&Z!%f6gk<9pjy+Ar9`aftlX+56)NTit% zS@+^>6*@!fnLyx!tB-k}L?FA)?Fnrk+lds-yFtTYW@=lrb9zSwP8^39>JV@Td(#h` zCvNQR-n;YljPz3W9~*nP6&h6UEZ8;U_Kc|pc?i({;3x-ehXua2bF5qMk@BVAnH+7Y zSxFT}X|PqAqA7|T9q@Vo45HEXof#TJW4z=)o+nV4DzE3TZfkBgjh;~9Pd)^HLqq#_ zJ;vUaS=k>OeR5S|Q|(>i?&GJ4PTW3j65G?!v#~$R&-u_Ua$`wu3@6+%hGO5(7{-3% z|F1m(FyGF`4j64+-~{~(oi=jH|Ncsq)U_DDV--d68vZG@JBvOyaBD`Uv#wo7PO05h z+sQKwSyDN?vw1AOB#wz3bbG;W14Sl(EMTAViri`rRbx%V-aBTrX^#i$fP42Gp~r4l z4p>e4NKJ1CT!9=Nhj7m)nvcd<rJ)?07=h&+%d0fpV(DZn$TEZ|goH5z!?gHcHHWll zD*g)aGZjP=nn07ff#Y`g$9IlxOZnZsUBhDXlaWQ3H%c@srVLLZSN$8eA0OEl1NsAH zUm)_&Uc!-8F;OFWW>#Elm=_VGY>qaW=rNVXiWjTF+CTp4nEDujhF-ga?|KD)f8!3s zk(3C9LwBD5S5_d{wU3akA`a@=U#v~i!@{v#*tYg-f_y9ka>EP+jFV3i87R+In|wgc zi-7i4KJvj@6F*2rw-G}m+sKvdl)1$#^L^~r@AnZ4QCk*g6dDN<R~D9kjb;kF^WmnE zCp{|-Gz>~ptLfqYC3}GM|Lat^Ar(yOa^^hGSbuMSZ(C2#$ar6WPiOn@Q3b_g(z3D| z8r64Y##}5p9-hCcYW6U;^}6oRbRK!>Pj>-)wCMo?>!!8KHKb4IOG7Wi=}!fukrV3A zzEFw$7%zZ>k_#@D78Zo$CZFNcgPI_4^I)*9o=(k5IZ(hMD+$2v_*kQgQLzR9zIhM) zb-~ho?Z5Ug*Dsx6^N}Lo#DMLhEZnoZJhp!X{5;gN9g6--j)Jix^D7gXqwR0C)LV6Q zC=fW<m*Qt0x(bj&=;vrfRRLH{f2cgVphpiDuOgwgt1j-6;vd`kq5);dfC@pp0eSDD zl{+6Y7Md}E5@CQxe0ETXoA0jvwk>ybDZb*oW8uFByJvyIu{VQrzUs`g#Oh{pW{hPo zYJlU2RqTQ`op43~-LTpv=?yP#T*B4zl;-x+mz)EoD8i2{%Vsr@e6sDQb73zCtihYI zjsT|J$d1@51H#CHhI|VZQSLw<rQC>(f~*;m?MK%Z=8JD0EC*|{P>+JW>DnZhn^XX_ z4syS(zq`_hN(Uf&BdbX37BFU=*A2Q9hC+orACy6$MPnRDNtkfB?+9YPqId#H72Ars z)u#9GGahrSSJmSmcuX@Dg2Ql`ZXSQ7I?$J|*P~^KWpeKl52SZ&Uy@#a*qk>dpAdf# z)A5zpmMnB&0X@-#MAHYw7Kwr*(uCO0WSj~=j*K;M{d7@9%!&tG>?RVOgjbHgm1+0} z#sFxJOS*GXKUaD|oujmOh!U7*aS-OUk=k!erIm*6UIemIZDq@-l{qkfuxo<r6CjlE ztxk;|R0qzqOziR;NkS+vV!QbC$scS0YrJsRgQEd#-RMB5_XaKL5{R!W#tb5m^+Wn3 z0h^iMX3fEvu|MfLgiG{hT>OdR1}fE8=DwfoK&N{LF4nRSq;;KBkL%>RoEoyqM4+3B zHgamQl3iOx=^bpbk!}s1MEy@n!}K^V4n+zr(d8adbG$;sAzX9u$fwkjq26UVkSVRl zkxXXbd~>RR6-3X8GQRtA9pX;;dY>>XgCaxV)#XAuuC~;s%q1sZuVMD?x{<!wn;)UW z`+KVWTo<Ur&>WKlxPj2th;8)5pR;~gn6oI9j}P0x?E7ycDeEu_f6|!@Tsv9`a0I!b zgA=Kxs`ANX;&u(XkG-dW=6c=(^b+}TC@^T?K@)k$5q=@J`bi`;!{FUt7c&-;5X;n^ z2h^J^j)3lp-R#(J?WMHje}~AYemfjuuZB-q)BiZ@0I4&EliGjn{M8(~7w@3N%}U}? zuM!r0zy$avZ@ok}-$|2nDiVPOW)QiK>7E5!^RY$GR#4gdVyN02IIV#KNA&R|DrqKk z+u<y}=?LJbAE;X2e%jsWmj&KKJR=j8T06WT<>9`w#wAFec6RJD3M^h^1&pR{)eiw9 z)xIYlaUI&ap>AnF@<pM_Wo-?sm-%U=-NB21k<WHC|Nw!u8zEA2uS5RT+4Ecd=x- zBz!YCLCW7Z0>x{5r8cYuad**FHR4c2q18M{G}b}FCpm|J8FoPOFAu*zpF8FcD6>^% zR)8V?aq1`N5<p7rv5S{KHTilknq&kQ{xXq}(9#UfrTt#Gqa_2p7^y<DsQ$(z?7SBL z$7DM3y=P>u_qlc|PGYvLWV8kI;ATu7@@(d11zGY@K1{!pfPhC|mIYwEbQ<nI!-deK zwdc~4Au5*M-lE2kG#P~@NeYl*5Qc`)gNU@}txBK>Z=z;0+p|A<K`#TcAB|cK*$cB) z2#3d?OuAsg#rzF>|3Wb8jEcrHT-!e_W(u+P!X{!_tCc69dc`XTE&bYYAme6x1Lx|u zwr(YEa5nG@)57sdiLeLAgp%r4%6Pc>iMLl)lX}Lhx)X|G1vP*cz&zzUg8f!V{gqnO zlS8ry!?$XF$-TAGs1wISA*NuG9hTmOC}Dv3L3M~w+7YtloDc%F<O{uljMoB0MlrC8 zlq`<sDkZ@S8nRBKU<D&OCD&D;Q@c0`6p-^-wW`c!#voVwnNrQu^iF0B+Xg4;9IM8! zzeH3G!uMvj4*5(|r<32DByn6K{&o{tjKI)!3G47b5yBy9&Gz?y3GA8lf*!fra(#z8 zt?UvjCZi89<skX(P41$S0puV{nDN{@U6|l>;o5rEf&kZ#y9zGK`wQco+;szcm90P= zPAa!?0FuLt!$b2LN4ED&sdz8?1la|XFIBt%gsJ@L_tOD~N8`E|klE<Z154C*FC!VO zJcz%-k8fK|!+C+C77HGGd9`<=5H@`QG(<vz0HOgzAh;+JEGOFWL?<QVL_Ri1%#1?F zt^RJP$x_Y`%jW$wwE0(*2@R#6uZF_lnWTGeW86_kz9kzz5Dw>l5*~3&o{*h?{ratI zO{5n2i&F-HpNuLRjzaSE8MD|JdG|@L$uBmM(A1(=kqS@9wQr^j2*I2)%!hwd2(^77 zxCAS61N{*Vw@Zh1<eGDCEuR4Pdp`*D@FYFtCiL-_{GQ*T=XgL|njW%=mx5f$ieovU zF910@^zKz5@@{cH0Bl=!o1kyCl1V1nO7jv}y~GNawEYD1Bp*&*{x%APu~l88WlSZE zsopGqiMwrgPGjrwore$OtA3OoSJ=EO4-74yYWOmb1akZ0Uxu@loJ*rDlKAP*vJzdO zI!(fb$&B9qD)(;URXZETe<o+9HG>-$fV47>ccGSi+kJkr{~C+|oryf6!8!Dd$dZy* zlN|`lst(!UCGL&e*APJ>;V1s&*N}(=hJmj`k3;s8<nn6g_{k7K$`w-ETAgEnk=)Fk zP@%Q*xNvmZYBTca`FA*ZAf1>RHwXu>2QzB1vfH=3#S#zA<uC!2n=@gkK3rzUx36w8 zysv`2$T(6Cf*d~nUBBx(@5$M66A#>?t>N+AjOW_-^>|0DglAWXabXyyRAh-VRV<w@ zqB7k_EVQETUlM4t+QQ*isKQ~=RR2wR@g3dC-@632qpt;0UgL634fVT&o*$Yl+3?R3 z3TSxP>UW7rQUZa9BLPga@6g~z_1+-#(HDBaDo47*^j>p!N7>8n19&B<esp(IDA6-! zhm2lyrD#{}COtC;z;SbI;}8oeON7S~IrbdIf<<j)j<giquLQXJ6v=O^LtX;~;6mJ7 zN2{Fbulp|52GA(LBdFR*le)$EFeBIcUiQlPpF?)}8gAkjvq%P6F&>Z;$waDK`Yt+E zbC=Z=e7H0K-D`6@WJKo}YtKo15@n*z?WCvJo!~cubxf!gHnlu-i|L@a3=O{9O`x!w z<rZ{k@_ApJNQ+o~4AcXWarSK?-hVdFvfKc(`(dAN2HhcFqqg1=YL*WMA)nZ&chGVL zLB$Nmr6@&oXTA<>?4C{i&(adwCk>4qnADNsz*jtgAD&3d1w^=WD2o7!gf4@!QgJVk z#of#!KX<68T^<Z<i&J?Sfl7$#+N|Oy`qOk)%owrBMmNk*z6P1ARP$9h>z2Bc5Ce0A zYZ>sgzr2qs``-u<(Lj2@BBagDCVjd#ng#FBR?uXUd%HKq-Q~Iixli&B1(}-C`0sK( zw$_#^Jm~;pO~r;M_>YQ3EHdNB-#N*Zvlkf}=)uQPf8B#U#CWc9Q~5N9${CQxF`>n^ zaOl&?nCqzLpzPFs?+!~I3J^S3_bzk5OLp}XK*>)<5JiBb(>Eal80A-mK-BtsD$Rxp zFjCBCUVPlN!{MZO`NJVZwk~meF+(Mak}}6`dfWV*z~;Hxd)a5LvMj#M30vxuF+LMY zYE{scUB)sf2MPV?*W;o*LM|yvnqU~FEw9da!SB-0b}9bQtjnq%d`VyC>J`MSb7V(| zvmE`dI$R#a4Z7xC{HvKqe?J$Za5?{a7=DHsY#d<7x`JYETl`SbDW8GB%`1>YMH5Y8 z7_vhXxiq)C_g|b(foOP6uKpcq2qiw8x|BMAvERDo&H&oh4v>cT>l7&DaLpmG8PxF# z^?e7`rtsaw-v1rHJqfJ>*lks17Bi-pE<E+o77>=sf4qA}%UGl?ui7l7jp>2Bxiy}D z)8P+mGV!zaCrC}W&Ov}b(jKYqxFfYA+vok~Tg)+VM^Nx5H-=)d$kazBQV<sC;&6R4 zak2D(#5toDw3rmL@jlz}_b>C^-b`aF`<=1Dyet$69xGhTgumK;k2+9d=GeSg5XlI? zRpdH&y62T?d)j|gIS`LHi~2%mx-S7;mbC!_vT+z!K%1S%iQKy^G-L|&7{|C+!JIs> z`g{DZD(7K*e24<zp+d+7tv-I55NXA1aIZW?Z1?f=Fv`>I6#c_lH%-6Ubeo`=e<daV zJ4r^B59*ov;g5-0(BoOp;213Yi5Tsz^z>!Aaby_x`7@sJhJ|YJC8!N4#o>+wm64q% zV^vMon&te}7aH};HY-Bb`+p4J7Dbm`fc<&o5qeswJfy(8b14+ZDN55)8Ep;O-tlNw zh7VB*Z8f1L696X925;JYgo-w9BkG=pyc!+`@<@lMz5SgDB6uCZ=LTtPCj%Jb*g!AO zJ5X^U82nero(h?X|JXb^BKnXs4SyyNghXA8ug;cYjr3`JahiT{JEe2mGW6Zs%e*_E zN>iL)$Y?I+9SyvC8?7e*-AnceuY~9vpGFbGq?4DliS9}4MFO?96{Q21i`Tc!ch%;P zT+3;?BgF`KoehrE$QTq6&;Zm;cZ?c$Uf~Pa8jJGWS9}>9VgQ|siuH7d99Kp__u%&C z5nmLA4+u`p4Nd->>|*wUJISSa2b<G_$k^baTw_*^BwY9$Az283qAaB?86dfg$hXoL zj8o*Nxa_G9JjS7=a%Cx{7!f}|HRK?TMT@q-x<2)Mnm%A;F33Chs&}NB@%`760mt_i zV|M~&Ot(U}^mhxsd*|fq;<?n9!+#-TsCK3<MqXXNlZp#1Nhdt3X9YNd&#zTmPHVfL zsB}3UL(LK>ulf=#=MlR_*_7e<v4U5aZQEP_^;BrP;qhHNnEm{uDF3^`n<+zYf4{wz z>K-TkW5;-+GSE1<-Q?)jmea9w&kz^;D}|-R={pPAb3uMGE?8c+OU<9=?h<d|BMEV@ zex#0U=ANf8dUerwQOu0(b6qd}bp1k~2e#OJSUc|a;QEb;clZ4F?p>V{OD8JFE_B?3 zqWof1uS8_e1L+Q#)$ew>R@OfQyW%Dc4%59Z@pX=u=hiGsE0;dUw>~ux(Hg{_eP^PS z_j$x|{tkhu?@!PA#_Z?MOAAhl1?M<^%l@<cAwmB5#na-ID;~?GP7O}6opA|Pfq9~= z1`nP8<(mt1&_l9ALu{h$&7)-(4OVl9{V&#!T9042wtDSx28g}*RwRF9DYtU}wx55$ z)8hgIwK&3DkF)^KIgv+GD$5)n70~ak|5xyUB;5Y@^&gAlI`Vl>BRl5M;@sR=|KGvR zKb>72Ep44`o!x%}#82;5oaVdt#d&wb%=<k3uds_PeK{VwLpRzaisd64{^dNqBsZZU zD3HXO_~3ze2#+&shlagml>NByh%<Ne%ddc&9}`zPl>0qt{Zsti*K=k!k~_t_TL@P# z{;lHYt7@mS=imRUp((`HP}um40aPlT)2db_U^)q>rv(K%%1+Ir*7-H++D5J8^&#r$ z5F;@^51C<2EY0H-m@hUlyup(xJgJ<(lqbeEvGz81%wgjgRNvbpWS<umF1~sbk+p}+ zOe_t|YM&zA%xj9hM)Nf;{0&cYhXJE~3#dkKv-AI5H||2E3pF^mMBteB&m8}Iyj}KH zY2*R39lKn9=8#y6Q<e2}P402}D=f{Z^mMC76KCyX693z8p1Ly_{)S=<?YY(YF~)fX zN}P$8@UiZ{amF6Sockv}g6ikPWnBkaN|%0~OIrc<*pEh9S7g_%@OSv9zR*!mOa2+U zt-q$5N3nx8|0&hn@27PprM_hW_SX-D4xxJb4}PVr@IX~-Ju+S%wQ(g0LC3%oW_Gaj z7$oOrDnDs&*fq>y{rX0TT!I4S33Yy+``d$$^e#jnrz3aV=+4@?_&qiCEDX7ZwM&v| zHzUW{@tFK%zR0>$F+jx?I3Y)|gzqwa&zIX$KPaYPe7+O}ESvp#*7R@LPKdE$*qyzs znAuX6orZcT2}MYHFr*L;#bYIewGq*H6p1lg`cu~Gaf_%tQ;Sy@Z<NL9N2cL^7JT6n zJ&d}pu&l`o2=Y8Q*!OQQ{-a~(+RU-pVa0FH%a%8W?x~)+L!W3K<oq6Obf|!}CpXm7 z=M~pksRa(;zha?v6GU!4LOH1(xz9pkUR#S(M!|S6u)uEcug0u>eQ2Qsf?K*!mNA0| zgB^o6`eVn6fArfp>uy({B}>CC--dG*5J4dvbz2OLJ9{}4(vAzFKm-WJX&M;sY7}zJ z)sD=?dzqL$+7q{wDGYe5wI`j<VGt0jNxsWlCTZ#Ab=<2HrcZtyz;R!N)9Z{1qmB|k z&f(Z+t~L6!&a1_*$pz-l+eu99AOGEOzOWYc=;57nQtGitd*9)S#y3Dm?b#ihfz(VV z#9L!-B6dc?!QJz4y~}c0^4whLJc6_e*sgy|<u4;hmy$o*Sl4Wyq&56t<hL)W^xv&w z0=!^g>nzdl5QcWC<vO6&X#ujXwYzQ*hg3#liM094=BJeuQ%H92#kL$4wl8bGBoC5p z>&{|+g6n|v2tsb?-;;$L<1Yd#Z!<mm^IfYWpj|CaE12YfWkK0{G$aS2_`kadU#2?~ zStRJ__%xnCUyGD|>W?Zq_C)gvPE^r_V>)~ctlbKMSBX$Y`FoDsgg=blh#Aq|^p9V) zq<cyHyvCD*mQtXF-CpW%l5DyP&$Z6m={~R>x&N!C5~R}YR&QQmLu#6Hu=xr@e2q`U zlfaLmwoS}H5F~4A4yE00e~TTlk>U1V4h3F^-gh;+4Ufe5Z3s#wqPVdkpWpG<YJy{{ zPfmWCWPZUl`u~Xf?szKSxc}=u%jQ_w9HWqokQt6LlW57zNJg32GHxRjA}S)BP?D?? z$~smQMIoDGlbOB!?(gq;Ua#l;!OMT{b6xj!eLnBcdq8-na5OA}hM`OZRx!K(`p&O- z$MCxbEGWO@XT+DU8R=Z_Vy=>=+2l6t;E#&<D-l<Ve(I8;B6vdIR!~c+{hSOhMw1ev zZ1PM#WTNgA6~5U~;gkw<gN?E%iiCwP1$cI)c-{^C!nLTkK4X=}A(+%Q>ZX_iKBC@h z9D_=%$dp$FC`pA%|D$^L#>Fsq7hoe%k4$LGLt9sOqsV>%&CQDiV{605;22qkM7`x) z=l!C$+2c2IKv|tTcD63+jNuhY`?<ZsT%r~<TOfjs)MW3xkV8xBqf$s?J1Xk&C<5II zLX?q-imRGaflF06W_haYUa@&zYDQbawp3&%!?TY~7e^_Sm8=KX5XsWJ3TC#SF*1=Q zY+MZ`K}yu&F(w7R>{dE2KxftdUh2osuNhS4-)jLeh@c2uHtuc*yJ-AA^X;j+dfjkP z37=t!&H4hX)zJCo)q!H^VlW9k+mLXFhl9A*M?bjmpuR8nbfJtp`<FJ`BzCAtkjL@M znDia%A}bWY2Rj81hl>R4=tID1uSbc49AL5_f=_xH6)LW+860Xr3!&n8arb1RUWien zwoWnIQe*+O4dUgck6_Th9J5o-m}y|^zBx~1J^b_Zg8$#P>^MX#?t3;=Z-b8zv##<g z(MDX5u?-)Lk7Pl51I4usJGqm`@U|a&OQ0l3??a*e(Y2ki#UC@=cTuTdRB3SWRZU4j z#Nfb$waAPR4XHhC2(uF91})wGIx}RmDOFXsF?d0#rKfL3LzK-4X0SP|`xpOl*;;YJ zfZ?*udceU{FaWQ7X3yucC$^n72kLa{u+Cp=_h(wLmebeU@S6}uwlMhCwmu{aB*iSz z>Lfg-p$}09aQ(;HQ7)X6$UCm``Qm5EpSAjTChM+<61^`nm-IfPb4hQ~JUCY|5>kbd zOf1<@Ag}GfC^kFOM^Z5jr-<9g(Me2FE9E<Fa8megYQQj#W5#tU#RhnMso46*%SN|- zz(gRUZSojEVZ}~;V<Q#k{<)`IqFd#2H%hTY!Q3aTv&Sp<>vB+*XBxJcjqO7=61oNr zn7v4ledqqC#!x;$5ZPE&7<|N%RE4md;M%$^df-$Rf_P{d+?kZZ8vm|6_tXv<f2E;l z^)3x@DcyUF=4OS_PU^~qLj`>~dQ7KXxT^7!D*A>)y53CY-Jdf!^o!dP`=0ABh=q!o zg`*<Z%PG4KSQ<OiXnxG=5=0=C`~3S*dMxuN-G*mVsj_+!51G!2^5F@exeAK0*dH>T zCxt)(!xji&1SN-)0cw$oTSc_3^KHAKh<R?;WL@wcu5y8wa2E)v2NpMggNmc&F9k#h zF+9lbd|bQNk%3UDLS8VQ28;6|Zqx|>xbBe^yd{-^5)A!y5+qJ~DPHb$%Vl5^B<`Ph zNp+zNqLt~&BXdy$2IP(_oRpJ$^h?gohXt`~YY07YNyvQFBQr9X-wyf!J%V_f=n(MS zG@RC~m^B(>P_K!PDy3)|EByLU_$=E^q{R|VqaD{e<sb_+ef#=5qw4!Fl$2u!1BnI; zel)<@=^9Xp|4b`7qQ8bF^Z;9u1<&<45eAOL+As5uZ!V;S?#OG%q48-9q+rUE!_6%^ z=~bk!uBxe%%3=a=`66BEI=6`O{@%f!8Hltlz5=MFOO@W7y<saeOI7m855<;fduxj7 zFH3YhMa(&YnU-9FBcQp|#U+~xOrO2Ym5kQIc}&Xx%gX0^8gsgrnkvIh><-sO`jQC` zQSz)R@mu&!rU#r3^&nh^i&KdM!yMqZc%}FZH4*}=bF_RIMLz4`Row<VNKhp*n`u0W zy&uu@Ej!t+bzx@8WUTtA#{DL6n}K)Uh>@D#Xxyg3o!-NG+}=Do>aUgK0b)atTbuCF zLI=)<LaLhxA00+mtFIPc7=67Eb;9|1DFA|j8@0vMpwi#c|IL<rO!7%IJqD?KF0;zO z`L{h1u_3IH6d0iF31}3*c>Jtf4a?<|gUVN4JoQ~=FDCh@oM(Kp640tnJZ^9?J7UJB zr!J)7!_^B)H4GlzFy{38h;SrKmf%GHNu}$tMRK6CVoHp<Is0+@L_j?J)Ou}`3J~^X zF4rc7r_}wd!<ZIDjgCU3III1C0^F(Y{7`qprg-Y&qnm0P)h(3O+oLr1pcC80p%<Ua zfoqMWZimIa{m5BYD|d~Z<S8vY@mCnYsmcnVR)SV3HPgCwV&}{`iudSMn{ZzCXcPwn zjWWKnrVN3coB--j$*`#^?)k+loR35=E`4`CUi+w@@4C;rCav2rKE9KQOjpS{-@%#j z%MVV%*6?33eMHZk8pjk)aH={xu_bG94r4RgtiIbl^!{m<wm69T3?v+1mX4(BatQM~ zl&R=DuL?@l+bAx+w_+nwpW>wOfX)5V;)p<0U-z|&Z%2DZ77&c)fje#(9Xg-f6zX>r z_T4-Ceh&!{!yWm?5w#98aR62*cE12#kC?EK7UgJR_|>?)M`;fNab>rA61R1~XwKVw z-7eB`!%;|(y0~kT?ys{>8EFGA=N<+ncYP1eeTVm+lcb9L#bCy?z)2zP($d%pWd!Qs zKLQ>CPCPn_O4Img<lA|t1bX=T*#5i=T^=LzRcWS8f8Pp2{skGnxL-9D8tjt^(Tcrw z642ACmZL)rVa{3R^<4=;hhE&ehGB?Dl$_WBQ1tfRp7-O&g6{;dGdN$g_eb~`rh04Y z!Lz*`6yTodX`7-V*0<pSiQ9Tg7@<zJ>0Kont)B*5_<@|yJW5!n(f0rcWoDxA?Z)T- zo;w98DFHkY;#ZcW$Vs9yEFYykIm#`|@zY|`I&(?cm_@L{?X6?j2ltZmj(Sf;_!R1W zF<e(sO)_y|ul2&VBS>P+aoKlbk?fJrL24EbVvZIcu)ufRR^c9%Uh=}xdo&;@S0qh5 z82%Lh@$uR%d%k}T+Z!gG!!zHuR7%mo6P49V*4WezuwL^s6t1p6mY}hl@tdLz0#VUh z3v0pZC<4MLx_-2trQqb{N-_-*0SGS=aQXj62(z$G=oQUSYCu@YN8YOeZfr`%S?2}_ zXY2t3e(}Xw=7ikarwwOJpAeV6IUf(r{=wO8YUz;(cIKj1<&9B{-y=LE;1=k@IfWjW zpGB*LQB8})#%YJ2#%XGYlxR2GzgVE{JhgfAv7)$*M7AjgB34m1#)d)Q)I~;?r4D@- z93bCY^xmZV%IX+baW_eJcT0PQ;7}TN=jy1habplOYwdYbOi`7MDR44?1?mFEc9Roi zqh}-61u{7hjcJ{06_gz>4Iv=b_Aoa*JB)*aerr5I!C~4<ENt++J?c>qEf(KN@p=>k z858TFoBDk9jtopzZBNUWSl?4Jo|=qH{K`m@{C-7rtc!sg6HsmcF=v;J<@h%pMH^Nn zIuYLI;Y^MAh!q00&~MAC@3bi_$B1pdx-VWl_eyW9>`!?)`5*N+=4H=ILk+pE{OAI= zz>und_IJ$lEp-VygR$X?)^&>&tb{su2K9x5UeKrv+7!=(pi3REDNqRrNUj8|2moF( zJ2h8RzF(c#H0?D6Sj{WGjC&jMQ#1!fSxdUc7D>MnR}bu$eE6K)vv-^TY*lcHRON+@ zw-KVF;vxeSbg1My%kEwu_dz^GOV%m5>r(YqNoVh`UyMW}zxXuTc}6ZYQb_xPJvktM z<ye?yo}mo!RSBCEr;d$3p3!C?igZT95anTzbEBYzfv#NAcj2o9aOuVXA7M~m@P<x{ z9*}p2{Ak`J%NbG4j4x8gR6OM*mb1PNOUC@jt&>^>+cYt2<(tJo)PsTdh`bj28C7`- z?L$OgigrJoZgz#ZKzJpGb>^TBJ@NOnv^xOi!J)cFfI29MEV_S%0OTH^d?o=!$nG!r z%rI1KZ8lV}*9w%ykhIDFg%}k0k?;9`AcnihZ~U7mKeo>P-+wxO^$h&_)j!nLInveB z+uNzG>`M8#dF*fg9e%GYB^f2%3kVLosQ>QWmY9CzuXX)X50gI5QLQHuqRc1+#x6%e z>J#JH)TTwASvuz(6JFM?37rDq&*H$fgJTnpf5!w@ezLl)@7LA5DPHNaU?zUnINa-J zZ~eLSFYBl{I}d2x{K?^KLF6Adny>z>1rp~Oc*XpvR@V2{NB{7o;A2KIMz*yfK-{g` z+W3hU`Bo>w2Fkv<cVP&t<)O5gDbu%`lZ4U{>;+ZabOPXYQgA&+f@sgcH#BJyzY)>0 z09o3m0+ZYj-3GInM4_0M!ms0lTJB%|z`NA5Rw?vF@NZIU{dD#_3XPtR5OKog3Q!>> z+Q=%!kZ)1h8h7TDo$OV65&-TMY7J^kUOP{5A+v)RA)c;-6UgMe^Df_yQ)!5NzVz?T z#zKf+fSYiV{r*nNJr2lCfH+-n<O2OTzUqE7-<l&Qwhi%;B~c#Fie_%rg)-xY)&|Gi zkQ1csR^6kGM%)(*IzTKqNHK)9?sEWX^G}dG=@`O>HsAV#E*eQZIm<Aa{BlC>uZ{MK zJys0WX^d3zeDzg2Ob4^2Jz@a@d8}J8o7o#CM#|Tia}3cO+?9`s&i_<g!iu%^kWyZj z`hp-DA#|UP-9x+S^Qk&KL=s2mrG4wfJ)rK`AQ~WV`QP=d;hcNl+15(^cE-f^@QYig zxxE@wvXtS-;k5J1wCz;b_WN6h<<rFBLhCrSon-+*R^W!}bhlZ~oJz=IM+P&mQXU_z zl(qmM6gcZ=R@IA^r}~DB9>fxk@|n)38WPu71CYJ@*WAj|tW|F!_d$e?F#~*>_94Di zj2M9)QIc%ZHOJ<(SYCQU-V=+b$OU7MeY)f$*m}2263t=Api6#ATPx%}05*m7klC+& z3{m!+H*L6w-Cw3ny7?^e+X*NcuRHa{C8fBP4`Gsk^oxr)2(R|<7{r*NfP{42Uq78x z_3GU>BfR^Ab5G;@YZV3j&)|tJr#R?SvW}U9pLOO|;4vSN0^8W3{e`^2Cn!6fOOqO- z!RulGEOzwEUk6Wu6d@q*8u}N^X4pdHHDx{w_{SfvzjyUI@Q`uip^|^(#YH)FyiAA! z(1{SlFP=e>d#9b_epQY6N!Nv-+)p;YQ^ZrE5{(oW9uUj}x!ECuld~AX^i0^$gFX?N z(vQmo;xP}(oeV9fQ+^B3XI=*Ibxt;RP~)h0Q7j>o{^pV$BDh6^O4sf6EruVTmHNJJ zP8Ilbnsw>ce;*C`C;IbL@2cDAAgcPiT;NzcGK8@UC^hSYC^WB8odn9P|G^wW1vv{u z4&3Y{64&>7eITIKv5w5hS*D+&?8(iL$4dDv&4_EwK#9ZwvC#_{+=oCd5u)#ekwxPB z<~WpWG9@$PrPs%!jA*ak+I)B}oN}e1fag)a7Ve(2^H~do2oN)$#Scd|swnZ=YaSvo z3GbzKdeQ_2kS<d&uZQXP$2_mI6+^Y(m2#G>)9F9{_!zqP^rMhvJyWQ_A)n04jF3Qa z*lY2h-F6-xzH7M@joRx~yfGbmaI$_K2Xk$Arf2Q_i?{(=p`pQ=IxGb_*_Opd)nSi+ zUbhep!f|&lAls>N8Jrq@?`{lecT8Y(SPavYQ#^&z%4_P(D@o*u6^X<V3Fr~AjC!?m zxWcQAiRaIkY<ZfGRsFl(ekwXoP7gIKlYabysj~lUbkgy+f^%ii(3u#)`YWx>t@ZdY zD$Nz@Ek@?wtOO{VConamk^Ww*SwK9o-ZDpqjRo}eH`0%E8-H-Py{Nj^VtQtNJtAfF zO_fIIJ`-x)TlrQ#*77XJep}WOJcfdo1&Dke^RjRo&q|Mgbshv~p(vhyUmO_#yy<s~ zp^LclZO{^tjok>403<MJ4P??BTp_^QTbO@{C4^<{(6>-zPJ>tQgD86pU^D)2(|tVo zD$DHBU;tb0lAbdbfoFWyvuDnshVfnx+cjsh1IMVHuGBl)&X>>>tr0ZCU(ae9KUSj; zC*|iBU1^)>VYKOy%gbM529);4H>rVq9IBa`x=vT!u0#@azVppgkc?uPk?csl7kcCt zIONpV(#8OKtvSqsr8Ok&sXCi?{^r29F)-@ZzlFmDM;yT0gbZwzVF6)jqd7WCE9~%W zNdBlcWE?NeXM&EnQ3uaolcoWL*tmi=T+EjyQ7rAnaHlz(m{jFm=gSEEgc2iTa7xH| zZbg=pis)=}o@M2a8H(?EocW7A&ME$Wcit)NYJd!$b4|FP=i8Y2nr%sLLlFAEA~?}T z3GsfpMNpy-uN3bXIX(EtolCwdc=zqQifIu{fzANbIWcGT*NzTH{taXgv#>(dBiqi> z`1G}2rXNyJj7P<0wQd;9@+lNb?0i;&J)52xtTu$9<WUDxt?bk<^E(!2|BAWMHJZT0 z4oJ+wkz=2@$?Y5PuiiR%<0?)kpv)C|`GS2rafJ!Q1D4E{q)sALAd%0>4$uRBeZGEG zAr`GJbiL5lq<8qTztY3zzG*yFmc-_>wsL)5w%Ujj>_N2pqOmBOgEq#*%OKI_*f~st z3^zZ<)}&4S_4N!cp$bts$(5zuQd`G5*KfD!$sHG^l@zg0jw?3-?X5gVWoB^z-+AO~ zFaP(gAaX$~Nl8V+2G;6FUjQXHYjkK$BJm~|^Q~Y9aW_ygtZ}s*6+r6-3OF~-#9ZT5 zlArUt1}41JWL}mrF_69TzKh(#WU6GNZNRD1TI46TwgH8|?{b+V=oyL;xtJEWGh%X2 z|9*1*T;j6l-!Z>mMl!8)sVKVQU$}=eWd6|*YRUYQ#FI`Gmt2%W{q=B8miOnQs3XTH z5u}S=)l8Akj@nPXDyAX*t2@VjZzfpL4os@u140&%WYrw$I)3cb&Yj2ikV{4tl$2Z# zm2r*JnqHgF2pvogHnD3|ubViU%2I@^T&Fld)UAlW^UscjpkUBw9PY-OmDLujxD|>9 zVsrBx;XteU4^jpvDI72Z?PPWkFj!3P7-C4}oV)6zSO6Mi%}--o!sRw!!6XKN7ULH$ zTo-;9mRt7bCTjKW%VXQj%bNNhYKlaeGu&j1JoL)u&iQRa`HDnw?+;FNgxv#O>PyT- zjDaR06^l`)4-t9jYp90zLu5#Sem*2DJGoqX9|vsv#m>|&qex8%-i&W991HaL($2Va z6DbYETMUY7?r(LOt$pM2++Ue?<)B%)YW&lsxSY29V}b0Rd!4I`ehPqqKL@2j+B38R zz(p7_#AsgskPWtU_zgPGn6LsHi|kYn>vz1=Z=1{zn(aBr`1V*B$*3Ey{#<zB44)E_ zOos5_rg+Aj#L4h5`N_oa)>>U>bVoP+6_Z8f92y$+l<oS+u!y3L@Mf0B45wyY!xJ?0 z@bxN62!LiIfYIlj`K`Y@Zk~1GSH^oSVSOFmk83?qxft@6r_Y89=Lw?eU$A?iF3Erg zF}0NIeY6foTM4>09*-uhmE+kw?#p@@TSv_D;#<6Q6#b_`NypjU#kS#RD9{qdP_4Gc z2nf5oTz2U2%^VSNByZGc93-l^0f=zTkwDyg0~n5IiS%GS?F)UOPt!S-k_MW7t6dB= zq6b%3&X`p_$(zv`#VfSXtF*B#;fgEGd8w@5cUL|b-J#jxzsAR6@a>N+x|7D<lF%Mb z@0m)!po!NiPnD=)<*GUB@=y{CEMC<S%9q7}K38j;n>F>VKIOyv$T4+d<M{I9<?X?H z*0Db(EcOpl4nChtY7P(uQX_6({5uPZ$$xn9mkd6jPix@TtB#f<EkK{+3P)c^)|m-A z3?Rv<U*V3a)nx;bCP_I=U{@DL!<!sVU`HC3$kTyH_=`Hc@}}{Bu^6Yz;YBo5iJC~0 zk})Q6^5vh0u2r4runJG}6-Vkk`+zv*2ytq%kz#6&&t)J@DIE3fJC#pijWkrWL6?vc z|58pwVCgYT;g8aa4_AGzX`KYYCnQh-XdO)J;135@T8T?<q~Z`wD}<Cw%LkTjLS`9D zd;cav_rq+<H>;b~ZthH6*PIzvZT1AD6uHuxu`Nw+MyH^AkEyC}fFudv4mw-OL0i^R zh{Fa!$nKxdd4R?<AB;Iefcf#dVj{G}4x<P7ad=`!w{<Hf{O}qG!@l<X#1ZlBE1x90 z5BqgQ*RF{evstaHj$^9w-GWK@)&r%*ZB?BNu5Oc;wpf`}ZdVrnh+hXakRr*R=0ePd z0$7a1&_r$6JU&lAV0Rl&NwvAYt7%PW;_KmG++lr?Mf`10qFRkn`AlFz05+umy7c@X z*-*oF*wLS&-5B~=QFv~pGU@0r5^O4}Y#uZcv4l505BP8^*HIoc4xR_IewUCXks0f~ ztBMpX>ccl~@ODn01n1@p&B;Ee@UTRhC<LhWM0PG?@JhmefX&zI9ziER^_&+G8(gtK z%z_yx|GiTiav!keFUxrg^$5!o@}<kO-nb!LgP=>9B#)AR2z(VKaxTx%xKdLG>%loq zOuWFwi_?@l5#e*k_iL}DDT+ARyfIjM{vr1ph39Da_Bkw=Y%G4Dn#QJ`yhiLrwvn08 z#MMg)E7zZgo#!#}&kF7}q)awaR`M={iNI0&H${jcZ2lhtHVc%6{lKIJP&sR?zJW$) zr#6CUd-%<_mR%=k&kGAqhWeeYtd9a?atNi+jH$DU4@fp?Zj)onWnC*@-&9IOOa%37 z8I@!b5tt_9pYZPpHgU)MJOA*lTVjRleC8f+=Zs~NEfgnDJ>~O<N^7U34Mg%VdJjY+ z8E(Sbkhit<CWgj746DZZoC=X8=JpvfHtv!!HYSTZ*Yx9c3Tbda!AgrdS{Kl_Cq+C| z%2CWk*lYl73~$KlMa|8<W<2Vzh&Nm~Zx*GPe0DUJe9`*Y(MAUrL##M_faRoxc|ZtV zOYfS4Iuno;3K0a9xN=vB<g_#7PjCrNgtp`E!^A-iHiDY$U>W-LkJ!gov#7ZuhTr<} z55lhyVH_<|FwF{oph_Asn|VhQ{l!yd{09D;{=EQ|mI#n?P#?*Yi7q{AccgxaLsA9% zFuinkF}6sTsCg^|j}dIW(0l3vZjW8{oPo9ZQ`?D;oT8vJDC;t9%Ur<#0d#hf0m1q8 zq2tmBWvTr-{I|Jd>xepy8osES70&5mF>Z9U_`+*C3q@v}6*|^37TV4YW;p<UWhZD0 zfvizLOKyExARg;I^8|pC0=MBiqb*kwUuswvvJpeR`fkAC_f6J3Vr~rHx{9H13#-0O zs$ak$I$A_&iJXB=s{TSxmR#RZ#dn9-<@`l5Y4R_z8RwY!jZ^%AjyAF3&zLw^+*R6n zN(htTl8rG<48`MSyZu<S_sZpaP&Q7{9SS4jF{~;z^@2c)4$uO<iAV`sk<T8ZgKI}p zKmJ<&nTToSM-$e+4ByZUOXiX({96*SbV>6lXuK~N0!1NY>#L(*_O{=8f!4~Q?L~h@ z9B?=cK%I7?1JsMR)u2PfESK<aCR79>Uf8)ba1H+2c$1fpijhH-B3@%mrzD@u^%g}I z1Q;UpKVSwq<p0177XUz1#Re;PZ_oGMfe9&TDdZ!qqI@_#J2&uixNDfw%P(#<CV7r6 zqHk$20uv36<uTL>e@V{1^L>`ZE{iHa6z`>PomV-dOsc7&Hf2c~!F9f*dcgUoK8)0E z%hW)?_zSeZ47m8&{`qwp?(n(QMg3D_XhNPYyRD-bAkR*esNN~n2nj${EFG!razpLU zt3&G?k9A6tEOkD*v1;u<)m^aKA2+!EVucFkX_}jl<8V*~Vu|%SLp77>U08%Z(75c0 z#m9&6p#Uj2%M^Zq!3?;I6Nrd;3%$N1MAlC)Mkxi6p~VK_Fn3v<Fm5iak};rCSGMX` z`w;%3yCj9`&U<PT_iTCQtcPl1`ZJ#`<q2U_Q*^D#<jFMOiktA%-GtfHE1E>TJVTF4 zaJor`i&slo86jjnl-$U8{p2QXi%y1`@w~m`jTZw3Xz=shJ8$ej+X+~O3U~vXzHdQi zX{)t4k2a>L6K5JfbpR!iqaB$&#)U%`f`35bId)Tz^?T(<Sp$YZ0C4@Axwp2A+$IMH z8u<*~n>_UJN!^>!wSR^X6|J%^D@?}XWA>c{@s#ZQoTj=&_C_fUC9FqxH<CmN@v4jS zO-W=^#V2l>vrM`^J+b>jNn2P2$HKW-Nl`A@+Y8ZYNustG#khbs)Lf&e7+cd&B_-+x z64#Rm6+7RG^WMI+;M4LL`>yU{m^fl@jRkPKtN#+amUq|2cMO=F^#9gY#hc|8HPs#4 zVYzI5Y8ug@uXDqr3hj^Q4~AQ~Tdj`~KcrwIZTW+}e={|AAbc%<5Cnj6*%p5?Zh#XD zW@k!?I8#d;hO%}GjiT>ZlutDKyx=b#q)FB@r79sLn`NTO1i-JnxXQ<+E&OaIY3dwo zKVFvI;lwE!`zAJuuF7hhsZVAFHPH5Lw8UOKAU%YPTM40)JqfrxBEA{Jr1l1;aFJI( z2h#j({`@`D<MHR`Wd*sbB6sH|PcguU#m6LC>(}K%5TXO}aglJmq2pE<w0{oy!-nv2 z@OKk3(kGrB*F^&(mEKbVgJGP|wIvPRuzC+xsl&zmk|0qqjf0sePp`t9%?MGhW7Qk& zA*=>pUPc2LH1%~VLb?6;<O>mB_8y3qWG`QNNAwjC5yk)vf@tt7TlER+L?nqho@vwH zX31ly30IXY@chZaW`ZdgjM&kSNh8{<p>FlJ)q$G=s=(wwF_Xe?zyn_*L~%x8siQg= z!o|7`_ndxsGCv-OlMEG2^6E&+(Uix6k#e^HFeHFT>tBIC4Cg&h%TZs`&aB~09fg1m z(t_&xEltd_`-TpV9HaDqs_%B7oCIe(>N>DPVOT~Z@{)^Dn^9;M8kFt$?aUQlr%Zi9 z5ffE)0g-bNY+XsK2dtv_m|E6s`88(A50I0Ao+LtOJZsR*3{HSZ+#f}s?PrpgG|GIR zN8`SxD?XzLn|WzjIZ3IAEUZ1uzE-`Zv}KTB#kFH7Yte4+z$Ixe-TBpjU!U&HHRJmJ zT#Q2f5k5vR$_%jv4&=nBrQf@5@YCXSnXksHru!trqi}D$crd5bd`13ML8EC%-V3@I zRWo1_bp`^+^&s#pllVe(*x!iXSl}>(iaZ<Qf9T`RI5L3Rj&`%v2gWO%7`BzJ;rw|3 z(n37%BpmCk*8ly979^cGXhZ1ikv`2h8S)L~vi%`}PD}s|=wuOVSC*kR!Y1#W{mv>J z)($a}k&qlJ9hm)>q*29;*`oP~wB)<3;@$Vbs{(a(J@L4R;!?F^%e$qqzAOSK&hVo5 zJ1w4bAG}iRV;J3dHeahAH$_6}pX{AmetE?FoN7TzfcHe0MY3SGqTR(`UO(6|zY3$Q z@K%1ue+10eW*@xJ?#}vp@SJc&DRd$n&He5@KJwFO!47yn5eU`VU|jFyVJ=r(FWR8r zg}8fqg(c<R4ErY@RhBIMcw(|$t0pWFv=(#YEQRMVX5EPj(-H62+v2S)zU=?ef6#Pq zHvi8*p);Wx92?tY3yb}yZJS<p9Q}p9e-6$oV;C{Ncoy6OXLmonYWeu$)3Vz7b;7}O zam`g9spmgG?;V=*6m@603*^e~>=nqp5aa#DxAg}3VOY`fId*!g=GA4_<4eZ;Ez8Pk zpD|UT?*EFbx4JtoIDNWNbE3Z2iT=mi{?1oi-ggG>2TH8jdegm*sjIGhUwl()GsTP# zm36DsUs+1Hzl}@3&bm(he5=LY@1Q62bUQ*2?~l~))w*&;N$#qtpX_^1T(A5xQ&^Rm zAo&xW%A4mH*O=(Jm}uj2LDc;5J1%;;q-cj{;}gMj+f>|U*j2qljW5}ui=v~4%>2nW zPHxg4>5de29K;oNlqPH}IrdJt>LhX)PD?9EsoxD*Q0?tWL^8eL&is5?x+o`CMw~4# zZcKL4Jd|;VYD`Lb)+dm2COGTQ$T3(5XkU)|J$PFM3u|XLrcNIQ1iK|VWN|O?tHScO zr<+~W1zve8OP&nt`oKR?JJ@sMV+Sul^%T1S@Zgl;nTZn9+=n}(NB1Ptal42`m8i+4 zk@)=ji#H_aw3Q`&;Y&+=h$%$#89yNcnRQFbuuJ~<4<#<qJfo9*3eMk=u{DFw)pVm| zDc3=HELJDXPuh(R7UDxf!`oA%5D7<xFt{1WH>Ec1X8xgQ*~j4FmB{#;$w6;Fm29}0 zYGk$<_z)PC-I;}tlk<<xuCN2*th`>E3s=16m_3=mivxE8On4o1@xeD-k5>M;w$pzC zXwoIb%V(;p#;eLA0#r83oD*^1SY-qOiyB9dB}kRrn+-g>Msh<}C|1N}wNl<npTA6v z2)`JR(&AAhHO;lD=Bb_WAJgM|6N^k2nPuugNe<CZT<Sxsb6qw5BISC^2?ynf>#+Da zMZ=WkBSJ*fkSneIHR`Gjfo<`ihb%G>FJBqMR`F>$ov{9jLJpW*e*dZx;s+?Xd*+*; zPhn+IU5`Q?9M*Zaz9Xu5UCz|H!*wv-Kz;b!{e7rYDy$d)k*m+jX&y6_*Yetl#W66V z;A!=8A2Ihv3_Mp9CYWdZII&8Jn~;*9%ro-H=we5N$`SS)Z>!nhnvHEfNWI%0-9(6< zR8pAg4T1XRY(8=|o}aIKVCaHs_4`HJ!891~(=T=_&Kkf!W~|Y$RNn)fKO4wn0WyE* zcH(I6%a;wuvWjsPEY{ur1jlvVOg^yv6VbY6Q~+Du(r}eas`U$BMU^DhoVf5R;Da(7 z(<4>D{nEu55q_1SoWO|L#_IhK*7I#w_x+2@s{*FwRmc6dlYYO?8qFK*i){f<=3Lke z%*kD7Ky4vU`dh|4gmp!U5^wpRqW&*OB}i^BQ@xX!ppbQ`H*2#*LmJQ$l_A3K;^`lG z1n}r``XvMNB6-JJNjDVYH~bHeCfhW9TGMcsMgvQaLsP4vi5VQ_$I{<D6x%F)pgVPK z(0t0;PPTik#-BA*D(X^1-jSLHn&_2Vucis{kaPW?>m4t2P-G90WjFoP@-+gTt6^vX zdGXH0{TMu$u7VN%QF+mO!)qt=>z;V#Or<eB?wbBX52%o=n8JmsGxujl4gG4S&JP&Q z`a}vaB+MIJ)fn0PVO+mfe@n~G7)iO`MtJ-e4f7adHmF|7=pvy9h|g0OQ$!}+AWBC= z|NEE<T|Z1q{0L%1NpF<A+M{C68G~bBExneH_j;#k#Brj-EP1o+K82%>hKEpr+p!4y zsS!$}I6mHC{TK%0jbAgBfqJIBFfN@ZU|3y$zpFwtY&eAp5Ks3$<7i>;W1)SDu+T#y zUU4wno2@m*K75rpHy)i3pQkDBbPK>CiKL%KcP2EO+_1c`Lxd0`phpzz3pd2wdqWed z&*n{E*7Hism@`^n%@wc9?6A6<;@_;hQ0stNRrqrwo}CYQJTi}e4gXW7@fA%@gy*1o zB-3HSCeN1hZJgneF9AZ_M>wJI&!V$AU9_+X;o|m(iU~%tcYj~)DfoI={~Aw=TrJLp zK-rpMASKWS*M?>-0NPV^`y~>9s<V3hZ`<<0W*&W11Pf5AYju6jdOlCS-4o9vziKVx zVa%;48(uo2<@6$9eQU5+J~1$Q=<k`duuI(Kmk0u7D59(f;1A4LDVE8|Iv>nvC%|NX zsW^H6VL+1F$}rP$kugCIp~mrBG%)hgRUdb`hE{;*sgu7d(bH=n#3y)DO}Z<`k&gJs zt;I+-g*-5;1MPArS_~v9Agm}(vYlV5!ciR^z2@&;hw}%qr|{AHSBVRoHR~L-Wd#A% zM@*gUq^hcI4LUOYU_(y_pH69d>+O?UA(@DkEiDn}eor63P5VPL%dh803FWtn7_?!w zKwbUhbt)4149-(d?Gu*J|CPCC-!s2whG9LEjVmo|eejLo_wA2Q(WsxC1f>59RGW27 zQtin9GxPg1@lf`HRkKmDPjAH=i>2TY|5o~-rjH+maUw<t&Dr@}9%GW!*+;>gI2%wf zYAqf3kly&<`hZHGKAj{|zNtZP(Sg1X@($B!Bgm377A2;^?*$Ma^R)So{6Ep?0dnI` zT?aH1>qKs888xm{c$Z$aJc<MU8zpE!$p@PCv1gAM2gTGA54I1H!rV>q@D?MiVonPK zffDh*aKj{z+G!g?!`ifG*_%-|LYz0a;Qgv#2_`?K3-gLr&z9G0eG4IRo&0yK`j%5~ z4V_=w47sKxGVUE1la)GAmRptCfsgt3<a4_W{4%!whL$X_hCuF3ZQ`vq6&ZG(CUyEo z(0XP`!)cDa^X@{*YUtHT_z`${0^UlJ0nD~UHO4P557&4ij^S6lXs12TE7su%(Vr!J zT|#J9v}sly|8YI2GobsOb-|@!!TP2jsS~62(5BJ(-{eB*!I<A`Xsa68+!@uTL;R@3 zNw;85;$_9w(BqDY3!^W0pY2$?r=77*dt><OP?{Bv-rp}cL;oXWTUPyg3QoF(pM{nz z&V@kdyf*{YCX4%)UZx*j98;FNphj^t)z2wf7Hzrk*7J$e)Dg3PAOQIsWWqJR$WQB2 zRJNdLd6Pd|aVm;r=F%P8wUYnv=j-}vs9lsi^>g1Ceh~@noFT<Z*A~`AF^6rf@s#j< z`0`^0ZfZW53ICarQUP0kyB)rD_*rNyu=$zgQF)dDtbwi2sLRv<Bmp3kn9@>pqbqvN z@q@ZeW0eHr?^HgqT!DuV@4i=r&vZNCT9y8+$)$_oSoy13Ai7(hnNJfvA}@69m(?>< zWZW$bZ=$$v$}*uZ(Eth&Vq@bsx9a!1NcR;#Z1mNzl9>H8uw*$^%}Kjr$cW?kWlQ4V zACXLcK>pB&6K^t4#Z4jYckBBTH);lUi!iHaf}eBfk9IbU`JEb)gL}@v;2vp)B49`4 zbxW}ZHKJ=<qQK7NP|k*f?R48r4OidfsunO(uO0j)u`9~cC%PS0Fja?xi0W`d7sK|{ zs;|*cyCc~9C<S5BL>zARK}nmch8rxv@W(F~@Zy&Eu_$^ue)e;EdkDh>Sl7fwE|fbs z(-@1}mP~y5V@j3#I^GM|AVg2L|Bcunw)`I~f#@*7d6xb6-2HvM!(+pJ6O%JbQm3S4 zPD@HDt1L`Rj1LU)Ul{)3c+uzr^X`^PAWL8FrQ&hba@9i9l#kNXD+E-m^XnXREebeY zxa5wm3^Ns(koV=pXuioy>(V#(r>C6oF`TLyhz!tThx{v{3lOK!&0*)+Xc6M#WI{3H z3$UIe=Hcp<ezYrz{m|AhnD8<}i?(8Ur`E`Fc4jR;k*aRVi#fc*z<{m2en0DIa~7a5 z*z%ougoaE0R~LrTKl0)NEk%s@6`bmcN6h~3?2K*X)hhx3wG(rL#g`Ym*!uh;W^KKy znS9IKZm2JY@H;S3kQhZz0O}{L_KQ2iPd^Ll_?1lj{?_|dose%Ho7HfK9;1HIm*ey2 zX8Hcx#}Bo0do|miv9vWH%N(hhLwbeAA<JqLu(`{`Go86{dbM=KIf|9oXfwS;OON;O zbΞ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%0A|1y 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%0DB0&)F7eepE{9n2F1^UfiR$hmV3;g$MJJw`LM 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	qrgO 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�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 z%0A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≻|>L{Jg} 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	FGp8qlZW2zI#R1E3pk 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%0AT&^GVn6Up}s}$DkwPY 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%0A>eqifP6n%AK!F53FBQEIWs(PDdJH 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�K6Y8Fv_W;uAZ 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 literal 0 HcmV?d00001 diff --git a/dist/assets/index.3d64fa62.js b/dist/assets/index.3d64fa62.js new file mode 100644 index 0000000..2dcc151 --- /dev/null +++ b/dist/assets/index.3d64fa62.js @@ -0,0 +1,63 @@ +var vt=Object.defineProperty;var kt=(a,t,s)=>t in a?vt(a,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):a[t]=s;var i=(a,t,s)=>(kt(a,typeof t!="symbol"?t+"":t,s),s);import{P as wt,W as bt,S as J,F as st,C as ot,a as Z,A as Mt,T as xt,N as v,M as m,R as I,B as L,b as _,I as S,c as at,d as F,e as P,V as y,f as Ct,g as K,h as It,E as Pt,i as zt,j as Lt,k as V}from"./vendor.b16e062d.js";const St=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))e(o);new MutationObserver(o=>{for(const n of o)if(n.type==="childList")for(const d of n.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&e(d)}).observe(document,{childList:!0,subtree:!0});function s(o){const n={};return o.integrity&&(n.integrity=o.integrity),o.referrerpolicy&&(n.referrerPolicy=o.referrerpolicy),o.crossorigin==="use-credentials"?n.credentials="include":o.crossorigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function e(o){if(o.ep)return;o.ep=!0;const n=s(o);fetch(o.href,n)}};St();class Et{constructor(){i(this,"camera");i(this,"scene");i(this,"renderer");i(this,"initCamera",()=>{this.camera.fov=50,this.camera.aspect=window.innerWidth/window.innerHeight,this.camera.near=.01,this.camera.far=500,this.camera.updateProjectionMatrix(),this.camera.position.set(8,50,8),this.camera.lookAt(100,30,100),window.addEventListener("resize",()=>{this.camera.aspect=window.innerWidth/window.innerHeight,this.camera.updateProjectionMatrix()})});i(this,"initScene",()=>{this.scene=new J;const t=8900331;this.scene.fog=new st(t,1,96),this.scene.background=new ot(t);const s=new Z(16777215,.5);s.position.set(500,500,500),this.scene.add(s);const e=new Z(16777215,.2);e.position.set(-500,500,-500),this.scene.add(e);const o=new Mt(4210752);this.scene.add(o)});i(this,"initRenderer",()=>{this.renderer.setSize(window.innerWidth,window.innerHeight),document.body.appendChild(this.renderer.domElement),window.addEventListener("resize",()=>{this.renderer.setSize(window.innerWidth,window.innerHeight)})});this.camera=new wt,this.renderer=new bt,this.scene=new J,this.initScene(),this.initRenderer(),this.initCamera()}}var b=(a=>(a.walking="walking",a.sprinting="sprinting",a.flying="flying",a.sprintFlying="sprintFlying",a.sneaking="sneaking",a))(b||{}),G=(a=>(a[a.walking=5.612]="walking",a[a.sprinting=5.612]="sprinting",a[a.flying=21.78]="flying",a[a.sprintFlying=21.78]="sprintFlying",a[a.sneaking=1.95]="sneaking",a))(G||{});class Ft{constructor(){i(this,"mode","walking");i(this,"speed",G[this.mode]);i(this,"falling",38.4);i(this,"jump",1.2522);i(this,"body",{height:1.8,width:.5})}setMode(t){this.mode=t,this.speed=G[this.mode]}}var Ht="/dist/assets/stone.fa5e82cb.png",At="/dist/assets/coal_ore.29c9a29e.png",jt="/dist/assets/iron_ore.78230e9e.png",Bt="/dist/assets/grass_block_side.1f5d4845.png",qt="/dist/assets/grass_top_green.be9cf310.png",Rt="/dist/assets/dirt.fb045025.png",Ot="/dist/assets/oak_log.fc1a2462.png",_t="/dist/assets/oak_log_top.6a68c340.png",Gt="/dist/assets/oak_leaves.776aee85.png",Xt="/dist/assets/sand.f4bf1751.png",$t="/dist/assets/oak_planks.be4a7f91.png",Nt="/dist/assets/diamond_block.fb45cc99.png",Tt="/dist/assets/quartz_block_side.0e4d401c.png",Yt="/dist/assets/glass.17e849a2.png",Dt="/dist/assets/bedrock.3e3a8330.png",w=(a=>(a.grass="grass",a.dirt="dirt",a.tree="tree",a.leaf="leaf",a.sand="sand",a.stone="stone",a.coal="coal",a.wood="wood",a.diamond="diamond",a.quartz="quartz",a.glass="glass",a.bedrock="bedrock",a))(w||{});let k=new xt;const nt=k.load(qt),q=k.load(Bt),R=k.load(Ot),X=k.load(_t),$=k.load(Rt),rt=k.load(Ht),lt=k.load(At),Ut=k.load(jt),ht=k.load(Gt),ct=k.load(Xt),dt=k.load($t),ut=k.load(Nt),mt=k.load(Tt),gt=k.load(Yt),ft=k.load(Dt);nt.magFilter=v;q.magFilter=v;R.magFilter=v;X.magFilter=v;$.magFilter=v;rt.magFilter=v;lt.magFilter=v;Ut.magFilter=v;ht.magFilter=v;ct.magFilter=v;dt.magFilter=v;ut.magFilter=v;mt.magFilter=v;gt.magFilter=v;ft.magFilter=v;class Wt{constructor(){i(this,"materials",{grass:[new m({map:q}),new m({map:q}),new m({map:nt}),new m({map:$}),new m({map:q}),new m({map:q})],dirt:new m({map:$}),sand:new m({map:ct}),tree:[new m({map:R}),new m({map:R}),new m({map:X}),new m({map:X}),new m({map:R}),new m({map:R})],leaf:new m({map:ht,color:new ot(0,1,0),transparent:!0}),stone:new m({map:rt}),coal:new m({map:lt}),wood:new m({map:dt}),diamond:new m({map:ut}),quartz:new m({map:mt}),glass:new m({map:gt,transparent:!0}),bedrock:new m({map:ft})});i(this,"get",t=>this.materials[t])}}class N{constructor(t,s,e,o,n){i(this,"object");i(this,"x");i(this,"y");i(this,"z");i(this,"type");i(this,"placed");this.x=t,this.y=s,this.z=e,this.type=o,this.placed=n}}class Jt{constructor(t,s,e){i(this,"scene");i(this,"camera");i(this,"terrain");i(this,"raycaster");i(this,"block",null);i(this,"geometry",new L(1.01,1.01,1.01));i(this,"material",new m({transparent:!0,opacity:.25}));i(this,"mesh",new _(new L,this.material));i(this,"index",0);i(this,"instanceMesh",new S(new L,new at,1e3));this.camera=s,this.scene=t,this.terrain=e,this.raycaster=new I,this.raycaster.far=8}update(){this.scene.remove(this.mesh),this.index=0,this.instanceMesh.instanceMatrix=new F(new Float32Array(1e3*16),16);const t=this.camera.position,s=new P,e=new Map,o=this.terrain.noise;let n=Math.round(t.x),d=Math.round(t.z);for(let l=-8;l<8;l++)for(let h=-8;h<8;h++){let g=n+l,u=d+h,p=Math.floor(o.get(g/o.gap,u/o.gap,o.seed)*o.amp)+30;e.set(`${g}_${p}_${u}`,this.index),s.setPosition(g,p,u),this.instanceMesh.setMatrixAt(this.index++,s);let M=o.get(g/o.stoneGap,u/o.stoneGap,o.stoneSeed)*o.stoneAmp;if(o.get(g/o.treeGap,u/o.treeGap,o.treeSeed)*o.treeAmp>o.treeThreshold&&p-30>=-3&&M<o.stoneThreshold)for(let c=1;c<=o.treeHeight;c++)e.set(`${g}_${p+c}_${u}`,this.index),s.setPosition(g,p+c,u),this.instanceMesh.setMatrixAt(this.index++,s)}for(const l of this.terrain.customBlocks)if(l.placed)s.setPosition(l.x,l.y,l.z),this.instanceMesh.setMatrixAt(this.index++,s);else if(e.has(`${l.x}_${l.y}_${l.z}`)){let h=e.get(`${l.x}_${l.y}_${l.z}`);this.instanceMesh.setMatrixAt(h,new P().set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0))}if(this.raycaster.setFromCamera({x:0,y:0},this.camera),this.block=this.raycaster.intersectObject(this.instanceMesh)[0],this.block&&this.block.object instanceof S&&typeof this.block.instanceId=="number"){this.mesh=new _(this.geometry,this.material);let l=new P;this.block.object.getMatrixAt(this.block.instanceId,l);const h=new y().setFromMatrixPosition(l);this.mesh.position.set(h.x,h.y,h.z),this.scene.add(this.mesh)}}}class Zt{constructor(){i(this,"noise",new Ct);i(this,"seed",Math.random());i(this,"gap",22);i(this,"amp",8);i(this,"stoneSeed",this.seed*.4);i(this,"stoneGap",12);i(this,"stoneAmp",8);i(this,"stoneThreshold",3.5);i(this,"coalSeed",this.seed*.5);i(this,"coalGap",3);i(this,"coalAmp",8);i(this,"coalThreshold",3);i(this,"treeSeed",this.seed*.7);i(this,"treeGap",2);i(this,"treeAmp",6);i(this,"treeHeight",10);i(this,"treeThreshold",4);i(this,"leafSeed",this.seed*.8);i(this,"leafGap",2);i(this,"leafAmp",5);i(this,"leafThreshold",-.03);i(this,"get",(t,s,e)=>this.noise.noise(t,s,e))}}function Kt(){return new Worker("/dist/assets/generate.707bb76c.js",{type:"module"})}var f=(a=>(a[a.grass=0]="grass",a[a.sand=1]="sand",a[a.tree=2]="tree",a[a.leaf=3]="leaf",a[a.dirt=4]="dirt",a[a.stone=5]="stone",a[a.coal=6]="coal",a[a.wood=7]="wood",a[a.diamond=8]="diamond",a[a.quartz=9]="quartz",a[a.glass=10]="glass",a[a.bedrock=11]="bedrock",a))(f||{});class Vt{constructor(t,s){i(this,"scene");i(this,"camera");i(this,"distance",3);i(this,"chunkSize",24);i(this,"maxCount");i(this,"chunk",new K(0,0));i(this,"previousChunk",new K(0,0));i(this,"noise",new Zt);i(this,"materials",new Wt);i(this,"materialType",[w.grass,w.sand,w.tree,w.leaf,w.dirt,w.stone,w.coal,w.wood,w.diamond,w.quartz,w.glass,w.bedrock]);i(this,"blocks",[]);i(this,"blocksCount",[]);i(this,"blocksFactor",[1,.2,.1,.7,.1,.2,.1,.1,.1,.1,.1,.1]);i(this,"customBlocks",[]);i(this,"highlight");i(this,"idMap",new Map);i(this,"generateWorker",new Kt);i(this,"cloud",new S(new L(20,5,14),new m({transparent:!0,color:16777215,opacity:.4}),1e3));i(this,"cloudCount",0);i(this,"cloudGap",5);i(this,"getCount",t=>this.blocksCount[t]);i(this,"setCount",t=>{this.blocksCount[t]=this.blocksCount[t]+1});i(this,"initBlocks",()=>{for(const s of this.blocks)this.scene.remove(s);this.blocks=[];const t=new L;for(let s=0;s<this.materialType.length;s++){let e=new S(t,this.materials.get(this.materialType[s]),this.maxCount*this.blocksFactor[s]);e.name=f[s],this.blocks.push(e),this.scene.add(e)}this.blocksCount=new Array(this.materialType.length).fill(0)});i(this,"resetBlocks",()=>{for(let t=0;t<this.blocks.length;t++)this.blocks[t].instanceMatrix=new F(new Float32Array(this.maxCount*this.blocksFactor[t]*16),16)});i(this,"generate",()=>{if(this.blocksCount=new Array(this.blocks.length).fill(0),this.generateWorker.postMessage({distance:this.distance,chunk:this.chunk,noiseSeed:this.noise.seed,treeSeed:this.noise.treeSeed,stoneSeed:this.noise.stoneSeed,coalSeed:this.noise.coalSeed,idMap:new Map,blocksFactor:this.blocksFactor,blocksCount:this.blocksCount,customBlocks:this.customBlocks,chunkSize:this.chunkSize}),this.cloudGap++>5){this.cloudGap=0,this.cloud.instanceMatrix=new F(new Float32Array(1e3*16),16),this.cloudCount=0;for(let t=-this.chunkSize*this.distance*3+this.chunkSize*this.chunk.x;t<this.chunkSize*this.distance*3+this.chunkSize+this.chunkSize*this.chunk.x;t+=20)for(let s=-this.chunkSize*this.distance*3+this.chunkSize*this.chunk.y;s<this.chunkSize*this.distance*3+this.chunkSize+this.chunkSize*this.chunk.y;s+=20){const e=new P;e.setPosition(t,80+(Math.random()-.5)*30,s),Math.random()>.8&&this.cloud.setMatrixAt(this.cloudCount++,e)}this.cloud.instanceMatrix.needsUpdate=!0}});i(this,"generateAdjacentBlocks",t=>{const{x:s,y:e,z:o}=t,n=this.noise,d=Math.floor(n.get(s/n.gap,o/n.gap,n.seed)*n.amp);if(e>30+d)return;const l=n.get(s/n.stoneGap,o/n.stoneGap,n.stoneSeed)*n.stoneAmp;let h;l>n.stoneThreshold||e<23?h=5:d<-3?h=1:h=4,this.buildBlock(new y(s,e-1,o),h),this.buildBlock(new y(s,e+1,o),h),this.buildBlock(new y(s-1,e,o),h),this.buildBlock(new y(s+1,e,o),h),this.buildBlock(new y(s,e,o-1),h),this.buildBlock(new y(s,e,o+1),h),this.blocks[h].instanceMatrix.needsUpdate=!0});i(this,"buildBlock",(t,s)=>{const e=this.noise,o=Math.floor(e.get(t.x/e.gap,t.z/e.gap,e.seed)*e.amp);if(t.y>=30+o||t.y<0)return;t.y===0&&(s=11);for(const d of this.customBlocks)if(d.x===t.x&&d.y===t.y&&d.z===t.z)return;this.customBlocks.push(new N(t.x,t.y,t.z,s,!0));const n=new P;n.setPosition(t),this.blocks[s].setMatrixAt(this.getCount(s),n),this.blocks[s].instanceMatrix.needsUpdate=!0,this.setCount(s)});i(this,"update",()=>{this.chunk.set(Math.floor(this.camera.position.x/this.chunkSize),Math.floor(this.camera.position.z/this.chunkSize)),(this.chunk.x!==this.previousChunk.x||this.chunk.y!==this.previousChunk.y)&&this.generate(),this.previousChunk.copy(this.chunk),this.highlight.update()});this.scene=t,this.camera=s,this.maxCount=(this.distance*this.chunkSize*2+this.chunkSize)**2+500,this.highlight=new Jt(t,s,this),this.scene.add(this.cloud),this.generateWorker.onmessage=e=>{this.resetBlocks(),this.idMap=e.data.idMap,this.blocksCount=e.data.blocksCount;for(let o=0;o<e.data.arrays.length;o++)this.blocks[o].instanceMatrix=new F(this.blocks[o].instanceMatrix.array=e.data.arrays[o],16);for(const o of this.blocks)o.instanceMatrix.needsUpdate=!0}}}const Qt=a=>{const t=document.createElement("template");t.innerHTML=a,window.document.body.appendChild(t.content)},x=/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent);class te{constructor(t,s,e,o,n){i(this,"scene");i(this,"camera");i(this,"player");i(this,"terrain");i(this,"control");i(this,"audio");i(this,"velocity",new y(0,0,0));i(this,"frontCollide",!1);i(this,"backCollide",!1);i(this,"leftCollide",!1);i(this,"rightCollide",!1);i(this,"downCollide",!0);i(this,"upCollide",!1);i(this,"isJumping",!1);i(this,"raycasterDown",new I);i(this,"raycasterUp",new I);i(this,"raycasterFront",new I);i(this,"raycasterBack",new I);i(this,"raycasterRight",new I);i(this,"raycasterLeft",new I);i(this,"tempMesh",new S(new L(1,1,1),new at,100));i(this,"tempMeshMatrix",new F(new Float32Array(100*16),16));i(this,"p1",performance.now());i(this,"p2",performance.now());i(this,"raycaster");i(this,"far");i(this,"holdingBlock",f.grass);i(this,"holdingBlocks",[f.grass,f.stone,f.tree,f.wood,f.diamond,f.quartz,f.glass,f.grass,f.grass,f.grass]);i(this,"holdingIndex",0);i(this,"wheelGap",!1);i(this,"clickInterval");i(this,"jumpInterval");i(this,"mouseHolding",!1);i(this,"spaceHolding",!1);i(this,"initRayCaster",()=>{this.raycasterUp.ray.direction=new y(0,1,0),this.raycasterDown.ray.direction=new y(0,-1,0),this.raycasterFront.ray.direction=new y(1,0,0),this.raycasterBack.ray.direction=new y(-1,0,0),this.raycasterLeft.ray.direction=new y(0,0,-1),this.raycasterRight.ray.direction=new y(0,0,1),this.raycasterUp.far=1.2,this.raycasterDown.far=this.player.body.height,this.raycasterFront.far=this.player.body.width,this.raycasterBack.far=this.player.body.width,this.raycasterLeft.far=this.player.body.width,this.raycasterRight.far=this.player.body.width});i(this,"setMovementHandler",t=>{if(!t.repeat)switch(t.key){case"q":this.player.mode===b.walking?this.player.setMode(b.flying):this.player.setMode(b.walking),this.velocity.y=0,this.velocity.x=0,this.velocity.z=0;break;case"w":case"W":this.velocity.x+=this.player.speed;break;case"s":case"S":this.velocity.x-=this.player.speed;break;case"a":case"A":this.velocity.z-=this.player.speed;break;case"d":case"D":this.velocity.z+=this.player.speed;break;case" ":this.player.mode===b.walking?this.isJumping||(this.velocity.y=8,this.isJumping=!0,this.downCollide=!1,this.far=0,setTimeout(()=>{this.far=this.player.body.height},300)):this.velocity.y+=this.player.speed,this.player.mode===b.walking&&!this.spaceHolding&&(this.spaceHolding=!0,this.jumpInterval=setInterval(()=>{this.setMovementHandler(t)},10));break;case"Shift":this.player.mode===b.walking||(this.velocity.y-=this.player.speed);break}});i(this,"resetMovementHandler",t=>{if(!t.repeat)switch(t.key){case"w":case"W":this.velocity.x=0;break;case"s":case"S":this.velocity.x=0;break;case"a":case"A":this.velocity.z=0;break;case"d":case"D":this.velocity.z=0;break;case" ":if(this.jumpInterval&&clearInterval(this.jumpInterval),this.spaceHolding=!1,this.player.mode===b.walking)return;this.velocity.y=0;break;case"Shift":if(this.player.mode===b.walking)return;this.velocity.y=0;break}});i(this,"mousedownHandler",t=>{t.preventDefault(),this.raycaster.setFromCamera({x:0,y:0},this.camera);const s=this.raycaster.intersectObjects(this.terrain.blocks)[0],e=new P;switch(t.button){case 0:if(s&&s.object instanceof S){s.object.getMatrixAt(s.instanceId,e);const o=new y().setFromMatrixPosition(e);if(f[s.object.name]===f.bedrock){this.terrain.generateAdjacentBlocks(o);return}s.object.setMatrixAt(s.instanceId,new P().set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),this.audio.playSound(f[s.object.name]);const n=new _(new L(1,1,1),this.terrain.materials.get(this.terrain.materialType[parseInt(f[s.object.name])]));n.position.set(o.x,o.y,o.z),this.scene.add(n);const d=performance.now();let l=0;const h=()=>{if(performance.now()-d>250){this.scene.remove(n),cancelAnimationFrame(l);return}l=requestAnimationFrame(h),n.geometry.scale(.85,.85,.85)};h(),s.object.instanceMatrix.needsUpdate=!0;let g=!1;for(const u of this.terrain.customBlocks)u.x===o.x&&u.y===o.y&&u.z===o.z&&(g=!0,u.placed=!1);g||this.terrain.customBlocks.push(new N(o.x,o.y,o.z,f[s.object.name],!1)),this.terrain.generateAdjacentBlocks(o)}break;case 2:if(s&&s.object instanceof S){const o=s.face.normal;s.object.getMatrixAt(s.instanceId,e);const n=new y().setFromMatrixPosition(e);if(n.x+o.x===Math.round(this.camera.position.x)&&n.z+o.z===Math.round(this.camera.position.z)&&(n.y+o.y===Math.round(this.camera.position.y)||n.y+o.y===Math.round(this.camera.position.y-1)))return;e.setPosition(o.x+n.x,o.y+n.y,o.z+n.z),this.terrain.blocks[this.holdingBlock].setMatrixAt(this.terrain.getCount(this.holdingBlock),e),this.terrain.setCount(this.holdingBlock),this.audio.playSound(this.holdingBlock),this.terrain.blocks[this.holdingBlock].instanceMatrix.needsUpdate=!0,this.terrain.customBlocks.push(new N(o.x+n.x,o.y+n.y,o.z+n.z,this.holdingBlock,!0))}break}!x&&!this.mouseHolding&&(this.mouseHolding=!0,this.clickInterval=setInterval(()=>{this.mousedownHandler(t)},333))});i(this,"mouseupHandler",()=>{this.clickInterval&&clearInterval(this.clickInterval),this.mouseHolding=!1});i(this,"changeHoldingBlockHandler",t=>{var s;isNaN(parseInt(t.key))||t.key==="0"||(this.holdingIndex=parseInt(t.key)-1,this.holdingBlock=(s=this.holdingBlocks[this.holdingIndex])!=null?s:f.grass)});i(this,"wheelHandler",t=>{var s;this.wheelGap||(this.wheelGap=!0,setTimeout(()=>{this.wheelGap=!1},100),t.deltaY>0?(this.holdingIndex++,this.holdingIndex>9&&(this.holdingIndex=0)):t.deltaY<0&&(this.holdingIndex--,this.holdingIndex<0&&(this.holdingIndex=9)),this.holdingBlock=(s=this.holdingBlocks[this.holdingIndex])!=null?s:f.grass)});i(this,"initEventListeners",()=>{document.addEventListener("pointerlockchange",()=>{document.pointerLockElement?(document.body.addEventListener("keydown",this.changeHoldingBlockHandler),document.body.addEventListener("wheel",this.wheelHandler),document.body.addEventListener("keydown",this.setMovementHandler),document.body.addEventListener("keyup",this.resetMovementHandler),document.body.addEventListener("mousedown",this.mousedownHandler),document.body.addEventListener("mouseup",this.mouseupHandler)):(document.body.removeEventListener("keydown",this.changeHoldingBlockHandler),document.body.removeEventListener("wheel",this.wheelHandler),document.body.removeEventListener("keydown",this.setMovementHandler),document.body.removeEventListener("keyup",this.resetMovementHandler),document.body.removeEventListener("mousedown",this.mousedownHandler),document.body.removeEventListener("mouseup",this.mouseupHandler),this.velocity=new y(0,0,0))})});i(this,"moveZ",(t,s)=>{this.camera.position.z+=t*(this.player.speed/Math.PI)*2*s});i(this,"collideCheckAll",(t,s,e,o)=>{this.collideCheck(4,t,s,e,o),this.collideCheck(0,t,s,e),this.collideCheck(1,t,s,e),this.collideCheck(2,t,s,e),this.collideCheck(3,t,s,e),this.collideCheck(5,t,s,e)});i(this,"collideCheck",(t,s,e,o,n=this.player.body.width)=>{const d=new P;let l=0;this.tempMesh.instanceMatrix=new F(new Float32Array(100*16),16);let h=!1,g=new Array(this.terrain.noise.treeHeight+1).fill(!1),u=Math.round(s.x),p=Math.round(s.z);switch(t){case 0:u++,this.raycasterFront.ray.origin=s;break;case 1:u--,this.raycasterBack.ray.origin=s;break;case 2:p--,this.raycasterLeft.ray.origin=s;break;case 3:p++,this.raycasterRight.ray.origin=s;break;case 4:this.raycasterDown.ray.origin=s,this.raycasterDown.far=n;break;case 5:this.raycasterUp.ray.origin=new y().copy(s),this.raycasterUp.ray.origin.y--;break}let M=Math.floor(e.get(u/e.gap,p/e.gap,e.seed)*e.amp)+30;for(const c of o)if(c.x===u&&c.z===p)if(c.placed)d.setPosition(c.x,c.y,c.z),this.tempMesh.setMatrixAt(l++,d);else if(c.y===M)h=!0;else for(let r=1;r<=this.terrain.noise.treeHeight;r++)c.y===M+r&&(g[r]=!0);h||(d.setPosition(u,M,p),this.tempMesh.setMatrixAt(l++,d));for(let c=1;c<=this.terrain.noise.treeHeight;c++)if(!g[c]){let r=e.get(u/e.treeGap,p/e.treeGap,e.treeSeed)*e.treeAmp,z=e.get(u/e.stoneGap,p/e.stoneGap,e.stoneSeed)*e.stoneAmp;r>e.treeThreshold&&M>=27&&z<e.stoneThreshold&&(d.setPosition(u,M+c,p),this.tempMesh.setMatrixAt(l++,d))}this.tempMesh.instanceMatrix.needsUpdate=!0;const C=new y(s.x,s.y-1,s.z);switch(t){case 0:{const c=this.raycasterFront.intersectObject(this.tempMesh).length;this.raycasterFront.ray.origin=C;const r=this.raycasterFront.intersectObject(this.tempMesh).length;c||r?this.frontCollide=!0:this.frontCollide=!1;break}case 1:{const c=this.raycasterBack.intersectObject(this.tempMesh).length;this.raycasterBack.ray.origin=C;const r=this.raycasterBack.intersectObject(this.tempMesh).length;c||r?this.backCollide=!0:this.backCollide=!1;break}case 2:{const c=this.raycasterLeft.intersectObject(this.tempMesh).length;this.raycasterLeft.ray.origin=C;const r=this.raycasterLeft.intersectObject(this.tempMesh).length;c||r?this.leftCollide=!0:this.leftCollide=!1;break}case 3:{const c=this.raycasterRight.intersectObject(this.tempMesh).length;this.raycasterRight.ray.origin=C;const r=this.raycasterRight.intersectObject(this.tempMesh).length;c||r?this.rightCollide=!0:this.rightCollide=!1;break}case 4:{this.raycasterDown.intersectObject(this.tempMesh).length?this.downCollide=!0:this.downCollide=!1;break}case 5:{this.raycasterUp.intersectObject(this.tempMesh).length?this.upCollide=!0:this.upCollide=!1;break}}});i(this,"update",()=>{this.p1=performance.now();const t=(this.p1-this.p2)/1e3;if(this.player.mode===b.flying)this.control.moveForward(this.velocity.x*t),this.control.moveRight(this.velocity.z*t),this.camera.position.y+=this.velocity.y*t;else{this.collideCheckAll(this.camera.position,this.terrain.noise,this.terrain.customBlocks,this.far-this.velocity.y*t),Math.abs(this.velocity.y)<this.player.falling&&(this.velocity.y-=25*t),this.upCollide&&(this.velocity.y=-225*t,this.far=this.player.body.height),this.downCollide&&!this.isJumping?this.velocity.y=0:this.downCollide&&this.isJumping&&(this.isJumping=!1);let s=new y(0,0,-1).applyQuaternion(this.camera.quaternion),e=Math.atan2(s.x,s.z);this.frontCollide||this.backCollide||this.leftCollide||this.rightCollide?(this.frontCollide&&(e<Math.PI&&e>0&&this.velocity.x>0?(!this.leftCollide&&e>Math.PI/2||!this.rightCollide&&e<Math.PI/2)&&this.moveZ(Math.PI/2-e,t):!this.leftCollide&&!this.rightCollide&&this.velocity.x>0&&this.control.moveForward(this.velocity.x*t),e<0&&e>-Math.PI&&this.velocity.x<0?(!this.leftCollide&&e>-Math.PI/2||!this.rightCollide&&e<-Math.PI/2)&&this.moveZ(-Math.PI/2-e,t):!this.leftCollide&&!this.rightCollide&&this.velocity.x<0&&this.control.moveForward(this.velocity.x*t),e<Math.PI/2&&e>-Math.PI/2&&this.velocity.z<0?(!this.rightCollide&&e<0||!this.leftCollide&&e>0)&&this.moveZ(-e,t):!this.leftCollide&&!this.rightCollide&&this.velocity.z<0&&this.control.moveRight(this.velocity.z*t),(e<-Math.PI/2||e>Math.PI/2)&&this.velocity.z>0?(!this.rightCollide&&e>0&&this.moveZ(Math.PI-e,t),!this.leftCollide&&e<0&&this.moveZ(-Math.PI-e,t)):!this.leftCollide&&!this.rightCollide&&this.velocity.z>0&&this.control.moveRight(this.velocity.z*t)),this.backCollide&&(e<0&&e>-Math.PI&&this.velocity.x>0?(!this.leftCollide&&e<-Math.PI/2||!this.rightCollide&&e>-Math.PI/2)&&this.moveZ(Math.PI/2+e,t):!this.leftCollide&&!this.rightCollide&&this.velocity.x>0&&this.control.moveForward(this.velocity.x*t),e<Math.PI&&e>0&&this.velocity.x<0?(!this.leftCollide&&e<Math.PI/2||!this.rightCollide&&e>Math.PI/2)&&this.moveZ(e-Math.PI/2,t):!this.leftCollide&&!this.rightCollide&&this.velocity.x<0&&this.control.moveForward(this.velocity.x*t),(e<-Math.PI/2||e>Math.PI/2)&&this.velocity.z<0?(!this.leftCollide&&e>0&&this.moveZ(-Math.PI+e,t),!this.rightCollide&&e<0&&this.moveZ(Math.PI+e,t)):!this.leftCollide&&!this.rightCollide&&this.velocity.z<0&&this.control.moveRight(this.velocity.z*t),e<Math.PI/2&&e>-Math.PI/2&&this.velocity.z>0?(!this.leftCollide&&e<0||!this.rightCollide&&e>0)&&this.moveZ(e,t):!this.leftCollide&&!this.rightCollide&&this.velocity.z>0&&this.control.moveRight(this.velocity.z*t)),this.leftCollide&&((e<-Math.PI/2||e>Math.PI/2)&&this.velocity.x>0?(!this.frontCollide&&e>0&&this.moveX(Math.PI-e,t),!this.backCollide&&e<0&&this.moveX(-Math.PI-e,t)):!this.frontCollide&&!this.backCollide&&this.velocity.x>0?this.control.moveForward(this.velocity.x*t):this.frontCollide&&e<0&&e>-Math.PI/2&&this.velocity.x>0?this.control.moveForward(this.velocity.x*t):this.backCollide&&e<Math.PI/2&&e>0&&this.velocity.x>0&&this.control.moveForward(this.velocity.x*t),e<Math.PI/2&&e>-Math.PI/2&&this.velocity.x<0?(!this.frontCollide&&e<0||!this.backCollide&&e>0)&&this.moveX(-e,t):!this.frontCollide&&!this.backCollide&&this.velocity.x<0?this.control.moveForward(this.velocity.x*t):this.frontCollide&&e<Math.PI&&e>Math.PI/2&&this.velocity.x<0?this.control.moveForward(this.velocity.x*t):this.backCollide&&e>-Math.PI&&e<-Math.PI/2&&this.velocity.x<0&&this.control.moveForward(this.velocity.x*t),e>0&&e<Math.PI&&this.velocity.z<0?(!this.backCollide&&e>Math.PI/2||!this.frontCollide&&e<Math.PI/2)&&this.moveX(Math.PI/2-e,t):!this.frontCollide&&!this.backCollide&&this.velocity.z<0?this.control.moveRight(this.velocity.z*t):this.frontCollide&&e>-Math.PI&&e<-Math.PI/2&&this.velocity.z<0?this.control.moveRight(this.velocity.z*t):this.backCollide&&e>-Math.PI/2&&e<0&&this.velocity.z<0&&this.control.moveRight(this.velocity.z*t),e<0&&e>-Math.PI&&this.velocity.z>0?(!this.backCollide&&e>-Math.PI/2||!this.frontCollide&&e<-Math.PI/2)&&this.moveX(-Math.PI/2-e,t):!this.frontCollide&&!this.backCollide&&this.velocity.z>0?this.control.moveRight(this.velocity.z*t):this.frontCollide&&e<Math.PI/2&&e>0&&this.velocity.z>0?this.control.moveRight(this.velocity.z*t):this.backCollide&&e<Math.PI&&e>Math.PI/2&&this.velocity.z>0&&this.control.moveRight(this.velocity.z*t)),this.rightCollide&&(e<Math.PI/2&&e>-Math.PI/2&&this.velocity.x>0?(!this.backCollide&&e<0||!this.frontCollide&&e>0)&&this.moveX(e,t):!this.frontCollide&&!this.backCollide&&this.velocity.x>0?this.control.moveForward(this.velocity.x*t):this.frontCollide&&e<-Math.PI/2&&e>-Math.PI&&this.velocity.x>0?this.control.moveForward(this.velocity.x*t):this.backCollide&&e<Math.PI&&e>Math.PI/2&&this.velocity.x>0&&this.control.moveForward(this.velocity.x*t),(e<-Math.PI/2||e>Math.PI/2)&&this.velocity.x<0?(!this.backCollide&&e>0&&this.moveX(-Math.PI+e,t),!this.frontCollide&&e<0&&this.moveX(Math.PI+e,t)):!this.frontCollide&&!this.backCollide&&this.velocity.x<0?this.control.moveForward(this.velocity.x*t):this.frontCollide&&e<Math.PI/2&&e>0&&this.velocity.x<0?this.control.moveForward(this.velocity.x*t):this.backCollide&&e<0&&e>-Math.PI/2&&this.velocity.x<0&&this.control.moveForward(this.velocity.x*t),e<0&&e>-Math.PI&&this.velocity.z<0?(!this.frontCollide&&e>-Math.PI/2||!this.backCollide&&e<-Math.PI/2)&&this.moveX(Math.PI/2+e,t):!this.frontCollide&&!this.backCollide&&this.velocity.z<0?this.control.moveRight(this.velocity.z*t):this.frontCollide&&e>Math.PI/2&&e<Math.PI&&this.velocity.z<0?this.control.moveRight(this.velocity.z*t):this.backCollide&&e>0&&e<Math.PI/2&&this.velocity.z<0&&this.control.moveRight(this.velocity.z*t),e>0&&e<Math.PI&&this.velocity.z>0?(!this.frontCollide&&e>Math.PI/2||!this.backCollide&&e<Math.PI/2)&&this.moveX(e-Math.PI/2,t):!this.frontCollide&&!this.backCollide&&this.velocity.z>0?this.control.moveRight(this.velocity.z*t):this.frontCollide&&e>-Math.PI/2&&e<0&&this.velocity.z>0?this.control.moveRight(this.velocity.z*t):this.backCollide&&e>-Math.PI&&e<-Math.PI/2&&this.velocity.z>0&&this.control.moveRight(this.velocity.z*t))):(this.control.moveForward(this.velocity.x*t),this.control.moveRight(this.velocity.z*t)),this.camera.position.y+=this.velocity.y*t,this.camera.position.y<-100&&(this.camera.position.y=60)}this.p2=this.p1});this.scene=t,this.camera=s,this.player=e,this.terrain=o,this.control=new It(s,document.body),this.audio=n,this.raycaster=new I,this.raycaster.far=8,this.far=this.player.body.height,this.initRayCaster(),this.initEventListeners()}moveX(t,s){this.camera.position.x+=t*(this.player.speed/Math.PI)*2*s}}class ee{constructor(){i(this,"p1",performance.now());i(this,"p2",performance.now());i(this,"gap",performance.now());i(this,"fps",document.createElement("div"));i(this,"count",0);i(this,"update",()=>{this.p1=performance.now(),this.count++,performance.now()-this.gap>1e3&&(this.fps.innerHTML=`FPS: ${this.count}`,this.gap=performance.now(),this.count=0),this.p2=this.p1});this.fps.className="fps",this.fps.innerHTML="FPS: 60",document.body.appendChild(this.fps)}}var ie="/dist/assets/grass.020eb145.png",se="/dist/assets/stone.53e38748.png",oe="/dist/assets/tree.98a9b0d4.png",ae="/dist/assets/wood.9768871f.png",ne="/dist/assets/diamond.b6171099.png",re="/dist/assets/quartz.9ffd1d51.png",le="/dist/assets/glass.3e48b289.png";class he{constructor(){i(this,"wheelGap",!1);i(this,"current",0);i(this,"icon",[ie,se,oe,ae,ne,re,le]);i(this,"iconIndex",0);i(this,"y",0);i(this,"bag",document.createElement("div"));i(this,"items",new Array(10).fill(null).map(()=>{let t=document.createElement("div");t.className="item";let s=document.createElement("img");return this.icon[this.iconIndex]&&(s.className="icon",s.alt="block",s.src=this.icon[this.iconIndex++],t.appendChild(s)),t}));if(!x){this.bag.className="bag",this.items[0].classList.add("selected");for(let t=0;t<this.items.length;t++)this.bag.appendChild(this.items[t]);document.body.appendChild(this.bag),document.body.addEventListener("keydown",t=>{if(!(isNaN(parseInt(t.key))||t.key==="0")){for(let s=0;s<this.items.length;s++)this.items[s].classList.remove("selected");this.current=parseInt(t.key)-1,this.items[this.current].classList.add("selected")}}),document.body.addEventListener("wheel",t=>{if(!this.wheelGap){this.wheelGap=!0,setTimeout(()=>{this.wheelGap=!1},100),t.deltaY>0?(this.current++,this.current>9&&(this.current=0)):t.deltaY<0&&(this.current--,this.current<0&&(this.current=9));for(let s=0;s<this.items.length;s++)this.items[s].classList.remove("selected");this.items[this.current].classList.add("selected")}})}}}var ce=`<div class="joystick"> + <button id="action-front" class="joystick-button front" role="div">\u{1F53C}</button> + <button id="action-left" class="joystick-button left" role="div">\u25C0\uFE0F</button> + <button id="action-right" class="joystick-button right" role="div">\u25B6\uFE0F</button> + <button id="action-back" class="joystick-button back" role="div">\u{1F53D}</button> + <button id="action-mode" class="joystick-button mode" role="div">\u23F9\uFE0F</button> + <button id="action-up" class="joystick-button up" role="div">\u{1F53C}</button> + <button id="action-down" class="joystick-button down hidden" role="div"> + \u{1F53D} + </button> +</div> + +<style> + .joystick { + position: fixed; + bottom: 0; + display: grid; + width: 100%; + grid-template-columns: repeat(auto-fill, 50px); + grid-template-rows: repeat(3, 1fr); + gap: 10px; + padding: 10px; + } + .joystick-button { + width: 52px; + height: 50px; + font-size: 50px; + line-height: 50px; + padding: 0px; + border: none; + background-color: transparent; + } + .front { + grid-column: 2 / 3; + grid-row: 1; + } + .left { + grid-column: 1 / 2; + grid-row: 2; + } + .right { + grid-column: 3 / 4; + grid-row: 2; + } + .back { + grid-column: 2 / 3; + grid-row: 3; + } + .mode { + grid-column: 2 / 3; + grid-row: 2; + } + .up { + grid-column: -3 / -2; + grid-row: 2; + } + .down { + grid-column: -3 / -2; + grid-row: 3; + } +</style> +`;class de{constructor(t){i(this,"control");i(this,"pageX",0);i(this,"pageY",0);i(this,"clickX",0);i(this,"clickY",0);i(this,"euler");i(this,"clickTimeout");i(this,"clickInterval");i(this,"hold",!1);i(this,"emitKeyboardEvent",t=>({key:t}));i(this,"emitClickEvent",t=>({button:t,preventDefault:()=>{}}));i(this,"initButton",({actionKey:t,key:s})=>{const e=document.querySelector(`#action-${t}`);e.addEventListener("pointermove",o=>{o.stopPropagation()}),e.addEventListener("pointerdown",o=>{this.control.setMovementHandler(this.emitKeyboardEvent(s)),o.stopPropagation()}),e.addEventListener("pointerup",o=>{this.control.resetMovementHandler(this.emitKeyboardEvent(s)),o.stopPropagation()}),t==="mode"&&s==="q"&&(this.initButton({actionKey:"mode",key:" "}),e.addEventListener("pointerdown",()=>{var o,n;this.control.player.mode===b.flying?(o=document.querySelector("#action-down"))==null||o.classList.remove("hidden"):(n=document.querySelector("#action-down"))==null||n.classList.add("hidden")}))});i(this,"init",()=>{Qt(ce),this.initButton({actionKey:"front",key:"w"}),this.initButton({actionKey:"left",key:"a"}),this.initButton({actionKey:"right",key:"d"}),this.initButton({actionKey:"back",key:"s"}),this.initButton({actionKey:"mode",key:"q"}),this.initButton({actionKey:"up",key:" "}),this.initButton({actionKey:"down",key:"Shift"}),document.addEventListener("pointermove",t=>{(this.pageX!==0||this.pageY!==0)&&(this.euler.setFromQuaternion(this.control.camera.quaternion),this.euler.y-=.01*(t.pageX-this.pageX),this.euler.x-=.01*(t.pageY-this.pageY),this.euler.x=Math.max(-Math.PI/2,Math.min(Math.PI/2,this.euler.x)),this.control.camera.quaternion.setFromEuler(this.euler)),this.pageX=t.pageX,this.pageY=t.pageY,this.clickTimeout&&clearTimeout(this.clickTimeout)}),document.addEventListener("pointerdown",t=>{this.clickX=t.pageX,this.clickY=t.pageY,this.clickTimeout=setTimeout(()=>{t.pageX===this.clickX&&t.pageY===this.clickY&&(this.control.mousedownHandler(this.emitClickEvent(0)),this.clickInterval=setInterval(()=>{this.control.mousedownHandler(this.emitClickEvent(0))},333),this.hold=!0)},500)}),document.addEventListener("pointerup",t=>{this.clickTimeout&&clearTimeout(this.clickTimeout),this.clickInterval&&clearInterval(this.clickInterval),!this.hold&&t.pageX===this.clickX&&t.pageY===this.clickY&&this.control.mousedownHandler(this.emitClickEvent(2)),this.hold=!1,this.pageX=0,this.pageY=0})});this.control=t,this.euler=new Pt(0,0,0,"YXZ")}}class ue{constructor(t,s){i(this,"fps");i(this,"bag");i(this,"joystick");i(this,"menu",document.querySelector(".menu"));i(this,"crossHair",document.createElement("div"));i(this,"play",document.querySelector("#play"));i(this,"control",document.querySelector("#control"));i(this,"setting",document.querySelector("#setting"));i(this,"feature",document.querySelector("#feature"));i(this,"back",document.querySelector("#back"));i(this,"exit",document.querySelector("#exit"));i(this,"save",document.querySelector("#save"));i(this,"saveModal",document.querySelector(".save-modal"));i(this,"loadModal",document.querySelector(".load-modal"));i(this,"settings",document.querySelector(".settings"));i(this,"features",document.querySelector(".features"));i(this,"github",document.querySelector(".github"));i(this,"distance",document.querySelector("#distance"));i(this,"distanceInput",document.querySelector("#distance-input"));i(this,"fov",document.querySelector("#fov"));i(this,"fovInput",document.querySelector("#fov-input"));i(this,"music",document.querySelector("#music"));i(this,"musicInput",document.querySelector("#music-input"));i(this,"settingBack",document.querySelector("#setting-back"));i(this,"onPlay",()=>{var t,s,e;x&&this.joystick.init(),(t=this.menu)==null||t.classList.add("hidden"),(s=this.menu)==null||s.classList.remove("start"),this.play&&(this.play.innerHTML="Resume"),this.crossHair.classList.remove("hidden"),this.github&&this.github.classList.add("hidden"),(e=this.feature)==null||e.classList.add("hidden")});i(this,"onPause",()=>{var t;(t=this.menu)==null||t.classList.remove("hidden"),this.crossHair.classList.add("hidden"),this.save&&(this.save.innerHTML="Save and Exit"),this.github&&this.github.classList.remove("hidden")});i(this,"onExit",()=>{var t,s;(t=this.menu)==null||t.classList.add("start"),this.play&&(this.play.innerHTML="Play"),this.save&&(this.save.innerHTML="Load Game"),(s=this.feature)==null||s.classList.remove("hidden")});i(this,"onSave",()=>{var t;(t=this.saveModal)==null||t.classList.remove("hidden"),setTimeout(()=>{var s;(s=this.saveModal)==null||s.classList.add("show")}),setTimeout(()=>{var s;(s=this.saveModal)==null||s.classList.remove("show")},1e3),setTimeout(()=>{var s;(s=this.saveModal)==null||s.classList.add("hidden")},1350)});i(this,"onLoad",()=>{var t;(t=this.loadModal)==null||t.classList.remove("hidden"),setTimeout(()=>{var s;(s=this.loadModal)==null||s.classList.add("show")}),setTimeout(()=>{var s;(s=this.loadModal)==null||s.classList.remove("show")},1e3),setTimeout(()=>{var s;(s=this.loadModal)==null||s.classList.add("hidden")},1350)});i(this,"update",()=>{this.fps.update()});var e,o,n,d,l,h,g,u,p,M,C,c;this.fps=new ee,this.bag=new he,this.joystick=new de(s),this.crossHair.className="cross-hair",this.crossHair.innerHTML="+",document.body.appendChild(this.crossHair),(e=this.play)==null||e.addEventListener("click",()=>{var r;((r=this.play)==null?void 0:r.innerHTML)==="Play"&&(this.onPlay(),t.noise.seed=Math.random(),t.noise.stoneSeed=Math.random(),t.noise.treeSeed=Math.random(),t.noise.coalSeed=Math.random(),t.noise.leafSeed=Math.random(),t.customBlocks=[],t.initBlocks(),t.generate(),t.camera.position.y=40,s.player.setMode(b.walking)),!x&&s.control.lock()}),(o=this.save)==null||o.addEventListener("click",()=>{var r,z,U,W;if(((r=this.save)==null?void 0:r.innerHTML)==="Save and Exit")window.localStorage.setItem("block",JSON.stringify(t.customBlocks)),window.localStorage.setItem("seed",JSON.stringify(t.noise.seed)),window.localStorage.setItem("position",JSON.stringify({x:t.camera.position.x,y:t.camera.position.y,z:t.camera.position.z})),this.onExit(),this.onSave();else{t.noise.seed=(z=Number(window.localStorage.getItem("seed")))!=null?z:Math.random();const pt=(U=JSON.parse(window.localStorage.getItem("block")||"null"))!=null?U:[];t.customBlocks=pt,t.initBlocks(),t.generate();const E=(W=JSON.parse(window.localStorage.getItem("position")||"null"))!=null?W:null;E&&(t.camera.position.x=E.x),E&&(t.camera.position.y=E.y),E&&(t.camera.position.z=E.z),this.onPlay(),this.onLoad(),!x&&s.control.lock()}}),(n=this.feature)==null||n.addEventListener("click",()=>{var r;(r=this.features)==null||r.classList.remove("hidden")}),(d=this.back)==null||d.addEventListener("click",()=>{var r;(r=this.features)==null||r.classList.add("hidden")}),(l=this.setting)==null||l.addEventListener("click",()=>{var r;(r=this.settings)==null||r.classList.remove("hidden")}),(h=this.settingBack)==null||h.addEventListener("click",()=>{var r;(r=this.settings)==null||r.classList.add("hidden")}),(g=this.distanceInput)==null||g.addEventListener("input",r=>{this.distance&&r.target instanceof HTMLInputElement&&(this.distance.innerHTML=`Render Distance: ${r.target.value}`)}),(u=this.fovInput)==null||u.addEventListener("input",r=>{this.fov&&r.target instanceof HTMLInputElement&&(this.fov.innerHTML=`Field of View: ${r.target.value}`,s.camera.fov=parseInt(r.target.value),s.camera.updateProjectionMatrix())}),(p=this.musicInput)==null||p.addEventListener("input",r=>{if(this.fov&&r.target instanceof HTMLInputElement){const z=r.target.value==="0";s.audio.disabled=z,this.music.innerHTML=`Music: ${z?"Off":"On"}`}}),(M=this.settingBack)==null||M.addEventListener("click",()=>{this.distanceInput instanceof HTMLInputElement&&(t.distance=parseInt(this.distanceInput.value),t.maxCount=(t.distance*t.chunkSize*2+t.chunkSize)**2+500,t.initBlocks(),t.generate(),t.scene.fog=new st(8900331,1,t.distance*24+24))}),document.body.addEventListener("keydown",r=>{r.key==="e"&&document.pointerLockElement&&!x&&s.control.unlock(),r.key==="f"&&(document.fullscreenElement?document.exitFullscreen():document.body.requestFullscreen())}),(C=this.exit)==null||C.addEventListener("click",()=>{this.onExit()}),document.addEventListener("pointerlockchange",()=>{document.pointerLockElement?this.onPlay():this.onPause()}),document.addEventListener("contextmenu",r=>{r.preventDefault()}),(c=document.querySelector("canvas"))==null||c.addEventListener("click",r=>{r.preventDefault(),!x&&s.control.lock()})}}var me="/dist/assets/hal3.2642662e.ogg",ge="/dist/assets/grass1.3619fdb8.ogg",fe="/dist/assets/grass2.b0763cf2.ogg",ye="/dist/assets/grass3.9ac02803.ogg",pe="/dist/assets/grass4.dd733357.ogg",ve="/dist/assets/sand1.1260ef32.ogg",ke="/dist/assets/sand2.74ef2fa1.ogg",we="/dist/assets/sand3.0441e996.ogg",be="/dist/assets/sand4.42ac9116.ogg",H="/dist/assets/stone1.97f2a8a7.ogg",A="/dist/assets/stone2.98a5c319.ogg",j="/dist/assets/stone3.19273f0e.ogg",B="/dist/assets/stone4.b164e732.ogg",Me="/dist/assets/dirt1.55a610c8.ogg",xe="/dist/assets/dirt2.60ebf0ed.ogg",Ce="/dist/assets/dirt3.ab5e4b40.ogg",Ie="/dist/assets/dirt4.fd4aa755.ogg",Q="/dist/assets/tree1.cb6071c8.ogg",tt="/dist/assets/tree2.59edca84.ogg",et="/dist/assets/tree3.cf6be231.ogg",it="/dist/assets/tree4.de868b31.ogg",Pe="/dist/assets/leaf1.74400cfe.ogg",ze="/dist/assets/leaf2.b7636085.ogg",Le="/dist/assets/leaf3.6228533c.ogg",Se="/dist/assets/leaf4.72db3634.ogg";class Ee{constructor(t){i(this,"disabled",!1);i(this,"sourceSet",[[ge,fe,ye,pe],[ve,ke,we,be],[Q,tt,et,it],[Pe,ze,Le,Se],[Me,xe,Ce,Ie],[H,A,j,B],[H,A,j,B],[Q,tt,et,it],[H,A,j,B],[H,A,j,B],[H,A,j,B]]);i(this,"soundSet",[]);i(this,"index",0);if(x)return;const s=new zt,e=new Lt;t.add(s);const o=new V(s);o.autoplay=!1,e.load(me,n=>{o.setBuffer(n),o.setVolume(.1),o.setLoop(!0),o.isPlaying&&(o.pause(),o.play())}),document.addEventListener("pointerlockchange",()=>{document.pointerLockElement&&!o.isPlaying&&!this.disabled?o.play():o.pause()});for(const n of this.sourceSet){const d=[];for(const l of n)e.load(l,h=>{const g=new V(s);g.setBuffer(h),g.setVolume(.15),d.push(g)});this.soundSet.push(d)}}playSound(t){var s,e;!this.disabled&&!x&&(this.index++===3&&(this.index=0),(e=(s=this.soundSet[t])==null?void 0:s[this.index])==null||e.play())}}const T=new Et,O=T.camera,Y=T.scene,Fe=T.renderer,He=new Ft,Ae=new Ee(O),D=new Vt(Y,O),yt=new te(Y,O,He,D,Ae),je=new ue(D,yt);(function a(){requestAnimationFrame(a),yt.update(),D.update(),je.update(),Fe.render(Y,O)})(); +//# sourceMappingURL=index.3d64fa62.js.map diff --git a/dist/assets/index.3d64fa62.js.map b/dist/assets/index.3d64fa62.js.map new file mode 100644 index 0000000..4daa705 --- /dev/null +++ b/dist/assets/index.3d64fa62.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.3d64fa62.js","sources":["../../vite/modulepreload-polyfill","../../src/core/index.ts","../../src/player/index.ts","../../src/static/textures/block/stone.png","../../src/static/textures/block/coal_ore.png","../../src/static/textures/block/iron_ore.png","../../src/static/textures/block/grass_block_side.png","../../src/static/textures/block/grass_top_green.png","../../src/static/textures/block/dirt.png","../../src/static/textures/block/oak_log.png","../../src/static/textures/block/oak_log_top.png","../../src/static/textures/block/oak_leaves.png","../../src/static/textures/block/sand.png","../../src/static/textures/block/oak_planks.png","../../src/static/textures/block/diamond_block.png","../../src/static/textures/block/quartz_block_side.png","../../src/static/textures/block/glass.png","../../src/static/textures/block/bedrock.png","../../src/terrain/mesh/materials.ts","../../src/terrain/mesh/block.ts","../../src/terrain/highlight/index.ts","../../src/terrain/noise/index.ts","../../src/terrain/index.ts","../../src/utils/index.ts","../../src/control/index.ts","../../src/ui/fps/index.ts","../../src/static/block-icon/grass.png","../../src/static/block-icon/stone.png","../../src/static/block-icon/tree.png","../../src/static/block-icon/wood.png","../../src/static/block-icon/diamond.png","../../src/static/block-icon/quartz.png","../../src/static/block-icon/glass.png","../../src/ui/bag/index.ts","../../src/ui/joystick/joystick.html?raw","../../src/ui/joystick/index.ts","../../src/ui/index.ts","../../src/audio/musics/hal3.ogg","../../src/audio/blocks/grass1.ogg","../../src/audio/blocks/grass2.ogg","../../src/audio/blocks/grass3.ogg","../../src/audio/blocks/grass4.ogg","../../src/audio/blocks/sand1.ogg","../../src/audio/blocks/sand2.ogg","../../src/audio/blocks/sand3.ogg","../../src/audio/blocks/sand4.ogg","../../src/audio/blocks/stone1.ogg","../../src/audio/blocks/stone2.ogg","../../src/audio/blocks/stone3.ogg","../../src/audio/blocks/stone4.ogg","../../src/audio/blocks/dirt1.ogg","../../src/audio/blocks/dirt2.ogg","../../src/audio/blocks/dirt3.ogg","../../src/audio/blocks/dirt4.ogg","../../src/audio/blocks/tree1.ogg","../../src/audio/blocks/tree2.ogg","../../src/audio/blocks/tree3.ogg","../../src/audio/blocks/tree4.ogg","../../src/audio/blocks/leaf1.ogg","../../src/audio/blocks/leaf2.ogg","../../src/audio/blocks/leaf3.ogg","../../src/audio/blocks/leaf4.ogg","../../src/audio/index.ts","../../src/main.ts"],"sourcesContent":["const p = function polyfill() {\n const relList = document.createElement('link').relList;\n if (relList && relList.supports && relList.supports('modulepreload')) {\n return;\n }\n for (const link of document.querySelectorAll('link[rel=\"modulepreload\"]')) {\n processPreload(link);\n }\n new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type !== 'childList') {\n continue;\n }\n for (const node of mutation.addedNodes) {\n if (node.tagName === 'LINK' && node.rel === 'modulepreload')\n processPreload(node);\n }\n }\n }).observe(document, { childList: true, subtree: true });\n function getFetchOpts(script) {\n const fetchOpts = {};\n if (script.integrity)\n fetchOpts.integrity = script.integrity;\n if (script.referrerpolicy)\n fetchOpts.referrerPolicy = script.referrerpolicy;\n if (script.crossorigin === 'use-credentials')\n fetchOpts.credentials = 'include';\n else if (script.crossorigin === 'anonymous')\n fetchOpts.credentials = 'omit';\n else\n fetchOpts.credentials = 'same-origin';\n return fetchOpts;\n }\n function processPreload(link) {\n if (link.ep)\n // ep marker = processed\n return;\n link.ep = true;\n // prepopulate the load record\n const fetchOpts = getFetchOpts(link);\n fetch(link.href, fetchOpts);\n }\n};__VITE_IS_MODERN__&&p();","import * as THREE from 'three'\n\nexport default class Core {\n constructor() {\n this.camera = new THREE.PerspectiveCamera()\n this.renderer = new THREE.WebGLRenderer()\n this.scene = new THREE.Scene()\n this.initScene()\n this.initRenderer()\n this.initCamera()\n }\n\n camera: THREE.PerspectiveCamera\n scene: THREE.Scene\n renderer: THREE.Renderer\n\n initCamera = () => {\n this.camera.fov = 50\n this.camera.aspect = window.innerWidth / window.innerHeight\n this.camera.near = 0.01\n this.camera.far = 500\n this.camera.updateProjectionMatrix()\n this.camera.position.set(8, 50, 8)\n\n this.camera.lookAt(100, 30, 100)\n\n window.addEventListener('resize', () => {\n this.camera.aspect = window.innerWidth / window.innerHeight\n this.camera.updateProjectionMatrix()\n })\n }\n\n initScene = () => {\n this.scene = new THREE.Scene()\n const backgroundColor = 0x87ceeb\n\n this.scene.fog = new THREE.Fog(backgroundColor, 1, 96)\n this.scene.background = new THREE.Color(backgroundColor)\n\n const sunLight = new THREE.PointLight(0xffffff, 0.5)\n sunLight.position.set(500, 500, 500)\n this.scene.add(sunLight)\n\n const sunLight2 = new THREE.PointLight(0xffffff, 0.2)\n sunLight2.position.set(-500, 500, -500)\n this.scene.add(sunLight2)\n\n const reflectionLight = new THREE.AmbientLight(0x404040)\n this.scene.add(reflectionLight)\n }\n\n initRenderer = () => {\n this.renderer.setSize(window.innerWidth, window.innerHeight)\n document.body.appendChild(this.renderer.domElement)\n\n window.addEventListener('resize', () => {\n this.renderer.setSize(window.innerWidth, window.innerHeight)\n })\n }\n}\n","export enum Mode {\n walking = 'walking',\n sprinting = 'sprinting',\n flying = 'flying',\n sprintFlying = 'sprintFlying',\n sneaking = 'sneaking'\n}\n\nexport enum Speed {\n // walking = 4.317,\n walking = 5.612,\n sprinting = 5.612,\n // flying = 10.89,\n flying = 21.78,\n sprintFlying = 21.78,\n sneaking = 1.95\n}\nexport default class Player {\n mode = Mode.walking\n speed = Speed[this.mode]\n\n setMode(Mode: Mode) {\n this.mode = Mode\n this.speed = Speed[this.mode]\n }\n falling = 38.4\n\n jump = 1.2522\n\n body = {\n height: 1.8,\n width: 0.5\n }\n}\n","export default \"__VITE_ASSET__fa5e82cb__\"","export default \"__VITE_ASSET__29c9a29e__\"","export default \"__VITE_ASSET__78230e9e__\"","export default \"__VITE_ASSET__1f5d4845__\"","export default \"__VITE_ASSET__be9cf310__\"","export default \"__VITE_ASSET__fb045025__\"","export default \"__VITE_ASSET__fc1a2462__\"","export default \"__VITE_ASSET__6a68c340__\"","export default \"__VITE_ASSET__776aee85__\"","export default \"__VITE_ASSET__f4bf1751__\"","export default \"__VITE_ASSET__be4a7f91__\"","export default \"__VITE_ASSET__fb45cc99__\"","export default \"__VITE_ASSET__0e4d401c__\"","export default \"__VITE_ASSET__17e849a2__\"","export default \"__VITE_ASSET__3e3a8330__\"","import * as THREE from 'three'\nimport stone from '../../static/textures/block/stone.png'\nimport coal_ore from '../../static/textures/block/coal_ore.png'\nimport iron_ore from '../../static/textures/block/iron_ore.png'\nimport grass_side from '../../static/textures/block/grass_block_side.png'\nimport grass_top_green from '../../static/textures/block/grass_top_green.png'\nimport dirt from '../../static/textures/block/dirt.png'\nimport oak_log from '../../static/textures/block/oak_log.png'\nimport oak_log_top from '../../static/textures/block/oak_log_top.png'\nimport oak_leaves from '../../static/textures/block/oak_leaves.png'\nimport sand from '../../static/textures/block/sand.png'\n// import water from '../../static/textures/block/water.png'\nimport oak_wood from '../../static/textures/block/oak_planks.png'\nimport diamond from '../../static/textures/block/diamond_block.png'\nimport quartz from '../../static/textures/block/quartz_block_side.png'\nimport glass from '../../static/textures/block/glass.png'\nimport bedrock from '../../static/textures/block/bedrock.png'\n\nexport enum MaterialType {\n grass = 'grass',\n dirt = 'dirt',\n tree = 'tree',\n leaf = 'leaf',\n sand = 'sand',\n // water = 'water',\n stone = 'stone',\n coal = 'coal',\n wood = 'wood',\n diamond = 'diamond',\n quartz = 'quartz',\n glass = 'glass',\n bedrock = 'bedrock'\n}\nlet loader = new THREE.TextureLoader()\n\n// load texture\nconst grassTopMaterial = loader.load(grass_top_green)\nconst grassMaterial = loader.load(grass_side)\nconst treeMaterial = loader.load(oak_log)\nconst treeTopMaterial = loader.load(oak_log_top)\nconst dirtMaterial = loader.load(dirt)\nconst stoneMaterial = loader.load(stone)\nconst coalMaterial = loader.load(coal_ore)\nconst ironMaterial = loader.load(iron_ore)\nconst leafMaterial = loader.load(oak_leaves)\nconst sandMaterial = loader.load(sand)\n// const waterMaterial = loader.load(water)\nconst woodMaterial = loader.load(oak_wood)\nconst diamondMaterial = loader.load(diamond)\nconst quartzMaterial = loader.load(quartz)\nconst glassMaterial = loader.load(glass)\nconst bedrockMaterial = loader.load(bedrock)\n\n// pixelate texture\ngrassTopMaterial.magFilter = THREE.NearestFilter\ngrassMaterial.magFilter = THREE.NearestFilter\ntreeMaterial.magFilter = THREE.NearestFilter\ntreeTopMaterial.magFilter = THREE.NearestFilter\ndirtMaterial.magFilter = THREE.NearestFilter\nstoneMaterial.magFilter = THREE.NearestFilter\ncoalMaterial.magFilter = THREE.NearestFilter\nironMaterial.magFilter = THREE.NearestFilter\nleafMaterial.magFilter = THREE.NearestFilter\nsandMaterial.magFilter = THREE.NearestFilter\n// waterMaterial.magFilter = THREE.NearestFilter\nwoodMaterial.magFilter = THREE.NearestFilter\ndiamondMaterial.magFilter = THREE.NearestFilter\nquartzMaterial.magFilter = THREE.NearestFilter\nglassMaterial.magFilter = THREE.NearestFilter\nbedrockMaterial.magFilter = THREE.NearestFilter\n\nexport default class Materials {\n materials = {\n grass: [\n new THREE.MeshStandardMaterial({ map: grassMaterial }),\n new THREE.MeshStandardMaterial({ map: grassMaterial }),\n new THREE.MeshStandardMaterial({\n map: grassTopMaterial\n }),\n new THREE.MeshStandardMaterial({ map: dirtMaterial }),\n new THREE.MeshStandardMaterial({ map: grassMaterial }),\n new THREE.MeshStandardMaterial({ map: grassMaterial })\n ],\n dirt: new THREE.MeshStandardMaterial({ map: dirtMaterial }),\n sand: new THREE.MeshStandardMaterial({ map: sandMaterial }),\n tree: [\n new THREE.MeshStandardMaterial({ map: treeMaterial }),\n new THREE.MeshStandardMaterial({ map: treeMaterial }),\n new THREE.MeshStandardMaterial({ map: treeTopMaterial }),\n new THREE.MeshStandardMaterial({ map: treeTopMaterial }),\n new THREE.MeshStandardMaterial({ map: treeMaterial }),\n new THREE.MeshStandardMaterial({ map: treeMaterial })\n ],\n leaf: new THREE.MeshStandardMaterial({\n map: leafMaterial,\n color: new THREE.Color(0, 1, 0),\n transparent: true\n }),\n // water: new THREE.MeshStandardMaterial({\n // map: waterMaterial,\n // transparent: true,\n // opacity: 0.7\n // }),\n stone: new THREE.MeshStandardMaterial({ map: stoneMaterial }),\n coal: new THREE.MeshStandardMaterial({ map: coalMaterial }),\n wood: new THREE.MeshStandardMaterial({ map: woodMaterial }),\n diamond: new THREE.MeshStandardMaterial({ map: diamondMaterial }),\n quartz: new THREE.MeshStandardMaterial({ map: quartzMaterial }),\n glass: new THREE.MeshStandardMaterial({\n map: glassMaterial,\n transparent: true\n }),\n bedrock: new THREE.MeshStandardMaterial({ map: bedrockMaterial })\n }\n\n get = (\n type: MaterialType\n ): THREE.MeshStandardMaterial | THREE.MeshStandardMaterial[] => {\n return this.materials[type]\n }\n}\n","import { BlockType } from '../index'\n\n/**\n * Custom block\n */\nexport default class Block {\n object: any\n constructor(\n x: number,\n y: number,\n z: number,\n type: BlockType,\n placed: boolean\n ) {\n this.x = x\n this.y = y\n this.z = z\n this.type = type\n this.placed = placed\n }\n x: number\n y: number\n z: number\n type: BlockType\n placed: boolean\n}\n","import * as THREE from 'three'\nimport Terrain from '..'\n\n/**\n * Highlight block on crosshair\n */\nexport default class BlockHighlight {\n constructor(\n scene: THREE.Scene,\n camera: THREE.PerspectiveCamera,\n terrain: Terrain\n ) {\n this.camera = camera\n this.scene = scene\n this.terrain = terrain\n this.raycaster = new THREE.Raycaster()\n this.raycaster.far = 8\n }\n\n scene: THREE.Scene\n camera: THREE.PerspectiveCamera\n terrain: Terrain\n raycaster: THREE.Raycaster\n block: THREE.Intersection | null = null\n\n // highlight block mesh\n geometry = new THREE.BoxGeometry(1.01, 1.01, 1.01)\n material = new THREE.MeshStandardMaterial({\n transparent: true,\n opacity: 0.25\n // depthWrite: false\n })\n mesh = new THREE.Mesh(new THREE.BoxGeometry(), this.material)\n\n // block simulation\n index = 0\n instanceMesh = new THREE.InstancedMesh(\n new THREE.BoxGeometry(),\n new THREE.MeshBasicMaterial(),\n 1000\n )\n\n update() {\n // remove last highlight and reset block simulation\n this.scene.remove(this.mesh)\n this.index = 0\n this.instanceMesh.instanceMatrix = new THREE.InstancedBufferAttribute(\n new Float32Array(1000 * 16),\n 16\n )\n\n const position = this.camera.position\n const matrix = new THREE.Matrix4()\n const idMap = new Map<string, number>()\n const noise = this.terrain.noise\n\n let xPos = Math.round(position.x)\n let zPos = Math.round(position.z)\n\n for (let i = -8; i < 8; i++) {\n for (let j = -8; j < 8; j++) {\n // check terrain\n let x = xPos + i\n let z = zPos + j\n let y =\n Math.floor(\n noise.get(x / noise.gap, z / noise.gap, noise.seed) * noise.amp\n ) + 30\n\n idMap.set(`${x}_${y}_${z}`, this.index)\n matrix.setPosition(x, y, z)\n this.instanceMesh.setMatrixAt(this.index++, matrix)\n\n let stoneOffset =\n noise.get(x / noise.stoneGap, z / noise.stoneGap, noise.stoneSeed) *\n noise.stoneAmp\n\n let treeOffset =\n noise.get(x / noise.treeGap, z / noise.treeGap, noise.treeSeed) *\n noise.treeAmp\n\n // check tree\n if (\n treeOffset > noise.treeThreshold &&\n y - 30 >= -3 &&\n stoneOffset < noise.stoneThreshold\n ) {\n for (let t = 1; t <= noise.treeHeight; t++) {\n idMap.set(`${x}_${y + t}_${z}`, this.index)\n matrix.setPosition(x, y + t, z)\n this.instanceMesh.setMatrixAt(this.index++, matrix)\n }\n\n // leaf\n // for (let i = -3; i < 3; i++) {\n // for (let j = -3; j < 3; j++) {\n // for (let k = -3; k < 3; k++) {\n // if (i === 0 && k === 0) {\n // continue\n // }\n // let leafOffset =\n // noise.get(\n // (x + i + j) / noise.leafGap,\n // (z + k) / noise.leafGap,\n // noise.leafSeed\n // ) * noise.leafAmp\n\n // if (leafOffset > noise.leafThreshold) {\n // idMap.set(\n // `${x + i}_${y + noise.treeHeight + j}_${z + k}`,\n // this.index\n // )\n // matrix.setPosition(x + i, y + noise.treeHeight + j, z + k)\n // this.instanceMesh.setMatrixAt(this.index++, matrix)\n // }\n // }\n // }\n // }\n }\n }\n }\n\n // check custom blocks\n for (const block of this.terrain.customBlocks) {\n if (block.placed) {\n matrix.setPosition(block.x, block.y, block.z)\n this.instanceMesh.setMatrixAt(this.index++, matrix)\n } else {\n if (idMap.has(`${block.x}_${block.y}_${block.z}`)) {\n let id = idMap.get(`${block.x}_${block.y}_${block.z}`)\n this.instanceMesh.setMatrixAt(\n id!,\n new THREE.Matrix4().set(\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n )\n )\n }\n }\n }\n\n // highlight new block\n this.raycaster.setFromCamera({ x: 0, y: 0 }, this.camera)\n this.block = this.raycaster.intersectObject(this.instanceMesh)[0]\n if (\n this.block &&\n this.block.object instanceof THREE.InstancedMesh &&\n typeof this.block.instanceId === 'number'\n ) {\n this.mesh = new THREE.Mesh(this.geometry, this.material)\n let matrix = new THREE.Matrix4()\n this.block.object.getMatrixAt(this.block.instanceId, matrix)\n const position = new THREE.Vector3().setFromMatrixPosition(matrix)\n\n this.mesh.position.set(position.x, position.y, position.z)\n this.scene.add(this.mesh)\n }\n }\n}\n","import { ImprovedNoise } from 'three/examples/jsm/math/ImprovedNoise'\n// import { SimplexNoise } from 'three/examples/jsm/math/SimplexNoise'\n\nexport default class Noise {\n noise = new ImprovedNoise()\n seed = Math.random()\n gap = 22\n amp = 8\n\n stoneSeed = this.seed * 0.4\n stoneGap = 12\n stoneAmp = 8\n stoneThreshold = 3.5\n\n coalSeed = this.seed * 0.5\n coalGap = 3\n coalAmp = 8\n coalThreshold = 3\n\n treeSeed = this.seed * 0.7\n treeGap = 2\n treeAmp = 6\n treeHeight = 10\n treeThreshold = 4\n\n leafSeed = this.seed * 0.8\n leafGap = 2\n leafAmp = 5\n leafThreshold = -0.03\n\n get = (x: number, y: number, z: number) => {\n return this.noise.noise(x, y, z)\n }\n}\n","import * as THREE from 'three'\nimport Materials, { MaterialType } from './mesh/materials'\nimport Block from './mesh/block'\nimport Highlight from './highlight'\nimport Noise from './noise'\n\nimport Generate from './worker/generate?worker'\n\nexport enum BlockType {\n grass = 0,\n sand = 1,\n tree = 2,\n leaf = 3,\n dirt = 4,\n stone = 5,\n coal = 6,\n wood = 7,\n diamond = 8,\n quartz = 9,\n glass = 10,\n bedrock = 11\n}\nexport default class Terrain {\n constructor(scene: THREE.Scene, camera: THREE.PerspectiveCamera) {\n this.scene = scene\n this.camera = camera\n this.maxCount =\n (this.distance * this.chunkSize * 2 + this.chunkSize) ** 2 + 500\n this.highlight = new Highlight(scene, camera, this)\n this.scene.add(this.cloud)\n\n // generate worker callback handler\n this.generateWorker.onmessage = (\n msg: MessageEvent<{\n idMap: Map<string, number>\n arrays: ArrayLike<number>[]\n blocksCount: number[]\n }>\n ) => {\n this.resetBlocks()\n this.idMap = msg.data.idMap\n this.blocksCount = msg.data.blocksCount\n\n for (let i = 0; i < msg.data.arrays.length; i++) {\n this.blocks[i].instanceMatrix = new THREE.InstancedBufferAttribute(\n (this.blocks[i].instanceMatrix.array = msg.data.arrays[i]),\n 16\n )\n }\n\n for (const block of this.blocks) {\n block.instanceMatrix.needsUpdate = true\n }\n }\n }\n // core properties\n scene: THREE.Scene\n camera: THREE.PerspectiveCamera\n distance = 3\n chunkSize = 24\n\n // terrain properties\n maxCount: number\n chunk = new THREE.Vector2(0, 0)\n previousChunk = new THREE.Vector2(0, 0)\n noise = new Noise()\n\n // materials\n materials = new Materials()\n materialType = [\n MaterialType.grass,\n MaterialType.sand,\n MaterialType.tree,\n MaterialType.leaf,\n MaterialType.dirt,\n MaterialType.stone,\n MaterialType.coal,\n MaterialType.wood,\n MaterialType.diamond,\n MaterialType.quartz,\n MaterialType.glass,\n MaterialType.bedrock\n ]\n\n // other properties\n blocks: THREE.InstancedMesh[] = []\n blocksCount: number[] = []\n blocksFactor = [1, 0.2, 0.1, 0.7, 0.1, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]\n\n customBlocks: Block[] = []\n highlight: Highlight\n\n idMap = new Map<string, number>()\n generateWorker = new Generate()\n\n // cloud\n cloud = new THREE.InstancedMesh(\n new THREE.BoxGeometry(20, 5, 14),\n new THREE.MeshStandardMaterial({\n transparent: true,\n color: 0xffffff,\n opacity: 0.4\n }),\n 1000\n )\n cloudCount = 0\n cloudGap = 5\n\n getCount = (type: BlockType) => {\n return this.blocksCount[type]\n }\n\n setCount = (type: BlockType) => {\n this.blocksCount[type] = this.blocksCount[type] + 1\n }\n\n initBlocks = () => {\n // reset\n for (const block of this.blocks) {\n this.scene.remove(block)\n }\n this.blocks = []\n\n // create instance meshes\n const geometry = new THREE.BoxGeometry()\n\n for (let i = 0; i < this.materialType.length; i++) {\n let block = new THREE.InstancedMesh(\n geometry,\n this.materials.get(this.materialType[i]),\n this.maxCount * this.blocksFactor[i]\n )\n block.name = BlockType[i]\n this.blocks.push(block)\n this.scene.add(block)\n }\n\n this.blocksCount = new Array(this.materialType.length).fill(0)\n }\n\n resetBlocks = () => {\n // reest count and instance matrix\n for (let i = 0; i < this.blocks.length; i++) {\n this.blocks[i].instanceMatrix = new THREE.InstancedBufferAttribute(\n new Float32Array(this.maxCount * this.blocksFactor[i] * 16),\n 16\n )\n }\n }\n\n generate = () => {\n this.blocksCount = new Array(this.blocks.length).fill(0)\n // post work to generate worker\n this.generateWorker.postMessage({\n distance: this.distance,\n chunk: this.chunk,\n noiseSeed: this.noise.seed,\n treeSeed: this.noise.treeSeed,\n stoneSeed: this.noise.stoneSeed,\n coalSeed: this.noise.coalSeed,\n idMap: new Map<string, number>(),\n blocksFactor: this.blocksFactor,\n blocksCount: this.blocksCount,\n customBlocks: this.customBlocks,\n chunkSize: this.chunkSize\n })\n\n // cloud\n\n if (this.cloudGap++ > 5) {\n this.cloudGap = 0\n this.cloud.instanceMatrix = new THREE.InstancedBufferAttribute(\n new Float32Array(1000 * 16),\n 16\n )\n this.cloudCount = 0\n for (\n let x =\n -this.chunkSize * this.distance * 3 + this.chunkSize * this.chunk.x;\n x <\n this.chunkSize * this.distance * 3 +\n this.chunkSize +\n this.chunkSize * this.chunk.x;\n x += 20\n ) {\n for (\n let z =\n -this.chunkSize * this.distance * 3 + this.chunkSize * this.chunk.y;\n z <\n this.chunkSize * this.distance * 3 +\n this.chunkSize +\n this.chunkSize * this.chunk.y;\n z += 20\n ) {\n const matrix = new THREE.Matrix4()\n matrix.setPosition(x, 80 + (Math.random() - 0.5) * 30, z)\n\n if (Math.random() > 0.8) {\n this.cloud.setMatrixAt(this.cloudCount++, matrix)\n }\n }\n }\n this.cloud.instanceMatrix.needsUpdate = true\n }\n }\n\n // generate adjacent blocks after removing a block (vertical infinity world)\n generateAdjacentBlocks = (position: THREE.Vector3) => {\n const { x, y, z } = position\n const noise = this.noise\n const yOffset = Math.floor(\n noise.get(x / noise.gap, z / noise.gap, noise.seed) * noise.amp\n )\n\n if (y > 30 + yOffset) {\n return\n }\n\n const stoneOffset =\n noise.get(x / noise.stoneGap, z / noise.stoneGap, noise.stoneSeed) *\n noise.stoneAmp\n\n let type: BlockType\n\n if (stoneOffset > noise.stoneThreshold || y < 23) {\n type = BlockType.stone\n } else {\n if (yOffset < -3) {\n type = BlockType.sand\n } else {\n type = BlockType.dirt\n }\n }\n\n this.buildBlock(new THREE.Vector3(x, y - 1, z), type)\n this.buildBlock(new THREE.Vector3(x, y + 1, z), type)\n this.buildBlock(new THREE.Vector3(x - 1, y, z), type)\n this.buildBlock(new THREE.Vector3(x + 1, y, z), type)\n this.buildBlock(new THREE.Vector3(x, y, z - 1), type)\n this.buildBlock(new THREE.Vector3(x, y, z + 1), type)\n\n this.blocks[type].instanceMatrix.needsUpdate = true\n }\n\n buildBlock = (position: THREE.Vector3, type: BlockType) => {\n const noise = this.noise\n // check if it's natural terrain\n const yOffset = Math.floor(\n noise.get(position.x / noise.gap, position.z / noise.gap, noise.seed) *\n noise.amp\n )\n if (position.y >= 30 + yOffset || position.y < 0) {\n return\n }\n\n position.y === 0 && (type = BlockType.bedrock)\n\n // check custom blocks\n for (const block of this.customBlocks) {\n if (\n block.x === position.x &&\n block.y === position.y &&\n block.z === position.z\n ) {\n return\n }\n }\n\n // build block\n this.customBlocks.push(\n new Block(position.x, position.y, position.z, type, true)\n )\n\n const matrix = new THREE.Matrix4()\n matrix.setPosition(position)\n this.blocks[type].setMatrixAt(this.getCount(type), matrix)\n this.blocks[type].instanceMatrix.needsUpdate = true\n this.setCount(type)\n }\n\n update = () => {\n this.chunk.set(\n Math.floor(this.camera.position.x / this.chunkSize),\n Math.floor(this.camera.position.z / this.chunkSize)\n )\n\n //generate terrain when getting into new chunk\n if (\n this.chunk.x !== this.previousChunk.x ||\n this.chunk.y !== this.previousChunk.y\n ) {\n this.generate()\n }\n\n this.previousChunk.copy(this.chunk)\n\n this.highlight.update()\n }\n}\n","export const htmlToDom = (html: string) => {\n const templateDom = document.createElement('template')\n templateDom.innerHTML = html\n window.document.body.appendChild(templateDom.content)\n}\n\nexport const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(\n navigator.userAgent\n)\n","import * as THREE from 'three'\nimport { PointerLockControls } from 'three/examples/jsm/controls/PointerLockControls'\nimport Player, { Mode } from '../player'\nimport Terrain, { BlockType } from '../terrain'\n\nimport Block from '../terrain/mesh/block'\nimport Noise from '../terrain/noise'\nimport Audio from '../audio'\nimport { isMobile } from '../utils'\nenum Side {\n front,\n back,\n left,\n right,\n down,\n up\n}\n\nexport default class Control {\n constructor(\n scene: THREE.Scene,\n camera: THREE.PerspectiveCamera,\n player: Player,\n terrain: Terrain,\n audio: Audio\n ) {\n this.scene = scene\n this.camera = camera\n this.player = player\n this.terrain = terrain\n this.control = new PointerLockControls(camera, document.body)\n this.audio = audio\n\n this.raycaster = new THREE.Raycaster()\n this.raycaster.far = 8\n this.far = this.player.body.height\n\n this.initRayCaster()\n this.initEventListeners()\n }\n\n // core properties\n scene: THREE.Scene\n camera: THREE.PerspectiveCamera\n player: Player\n terrain: Terrain\n control: PointerLockControls\n audio: Audio\n velocity = new THREE.Vector3(0, 0, 0)\n\n // collide and jump properties\n frontCollide = false\n backCollide = false\n leftCollide = false\n rightCollide = false\n downCollide = true\n upCollide = false\n isJumping = false\n\n raycasterDown = new THREE.Raycaster()\n raycasterUp = new THREE.Raycaster()\n raycasterFront = new THREE.Raycaster()\n raycasterBack = new THREE.Raycaster()\n raycasterRight = new THREE.Raycaster()\n raycasterLeft = new THREE.Raycaster()\n\n tempMesh = new THREE.InstancedMesh(\n new THREE.BoxGeometry(1, 1, 1),\n new THREE.MeshBasicMaterial(),\n 100\n )\n tempMeshMatrix = new THREE.InstancedBufferAttribute(\n new Float32Array(100 * 16),\n 16\n )\n\n // other properties\n p1 = performance.now()\n p2 = performance.now()\n raycaster: THREE.Raycaster\n far: number\n\n holdingBlock = BlockType.grass\n holdingBlocks = [\n BlockType.grass,\n BlockType.stone,\n BlockType.tree,\n BlockType.wood,\n BlockType.diamond,\n BlockType.quartz,\n BlockType.glass,\n BlockType.grass,\n BlockType.grass,\n BlockType.grass\n ]\n holdingIndex = 0\n wheelGap = false\n clickInterval?: ReturnType<typeof setInterval>\n jumpInterval?: ReturnType<typeof setInterval>\n mouseHolding = false\n spaceHolding = false\n\n initRayCaster = () => {\n this.raycasterUp.ray.direction = new THREE.Vector3(0, 1, 0)\n this.raycasterDown.ray.direction = new THREE.Vector3(0, -1, 0)\n this.raycasterFront.ray.direction = new THREE.Vector3(1, 0, 0)\n this.raycasterBack.ray.direction = new THREE.Vector3(-1, 0, 0)\n this.raycasterLeft.ray.direction = new THREE.Vector3(0, 0, -1)\n this.raycasterRight.ray.direction = new THREE.Vector3(0, 0, 1)\n\n this.raycasterUp.far = 1.2\n this.raycasterDown.far = this.player.body.height\n this.raycasterFront.far = this.player.body.width\n this.raycasterBack.far = this.player.body.width\n this.raycasterLeft.far = this.player.body.width\n this.raycasterRight.far = this.player.body.width\n }\n\n setMovementHandler = (e: KeyboardEvent) => {\n if (e.repeat) {\n return\n }\n\n switch (e.key) {\n case 'q':\n if (this.player.mode === Mode.walking) {\n this.player.setMode(Mode.flying)\n } else {\n this.player.setMode(Mode.walking)\n }\n this.velocity.y = 0\n this.velocity.x = 0\n this.velocity.z = 0\n break\n case 'w':\n case 'W':\n this.velocity.x += this.player.speed\n break\n case 's':\n case 'S':\n this.velocity.x -= this.player.speed\n break\n case 'a':\n case 'A':\n this.velocity.z -= this.player.speed\n break\n case 'd':\n case 'D':\n this.velocity.z += this.player.speed\n break\n case ' ':\n if (this.player.mode === Mode.walking) {\n // jump\n if (!this.isJumping) {\n this.velocity.y = 8\n this.isJumping = true\n this.downCollide = false\n this.far = 0\n setTimeout(() => {\n this.far = this.player.body.height\n }, 300)\n }\n } else {\n this.velocity.y += this.player.speed\n }\n if (this.player.mode === Mode.walking && !this.spaceHolding) {\n this.spaceHolding = true\n this.jumpInterval = setInterval(() => {\n this.setMovementHandler(e)\n }, 10)\n }\n break\n case 'Shift':\n if (this.player.mode === Mode.walking) {\n } else {\n this.velocity.y -= this.player.speed\n }\n break\n default:\n break\n }\n }\n\n resetMovementHandler = (e: KeyboardEvent) => {\n if (e.repeat) {\n return\n }\n\n switch (e.key) {\n case 'w':\n case 'W':\n this.velocity.x = 0\n break\n case 's':\n case 'S':\n this.velocity.x = 0\n break\n case 'a':\n case 'A':\n this.velocity.z = 0\n break\n case 'd':\n case 'D':\n this.velocity.z = 0\n break\n case ' ':\n this.jumpInterval && clearInterval(this.jumpInterval)\n this.spaceHolding = false\n if (this.player.mode === Mode.walking) {\n return\n }\n this.velocity.y = 0\n break\n case 'Shift':\n if (this.player.mode === Mode.walking) {\n return\n }\n this.velocity.y = 0\n break\n default:\n break\n }\n }\n\n mousedownHandler = (e: MouseEvent) => {\n e.preventDefault()\n // let p1 = performance.now()\n this.raycaster.setFromCamera({ x: 0, y: 0 }, this.camera)\n const block = this.raycaster.intersectObjects(this.terrain.blocks)[0]\n const matrix = new THREE.Matrix4()\n\n switch (e.button) {\n // left click to remove block\n case 0:\n {\n if (block && block.object instanceof THREE.InstancedMesh) {\n // calculate position\n block.object.getMatrixAt(block.instanceId!, matrix)\n const position = new THREE.Vector3().setFromMatrixPosition(matrix)\n\n // don't remove bedrock\n if (\n (BlockType[block.object.name as any] as unknown as BlockType) ===\n BlockType.bedrock\n ) {\n this.terrain.generateAdjacentBlocks(position)\n return\n }\n\n // remove the block\n block.object.setMatrixAt(\n block.instanceId!,\n new THREE.Matrix4().set(\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n )\n )\n\n // block and sound effect\n this.audio.playSound(\n BlockType[block.object.name as any] as unknown as BlockType\n )\n\n const mesh = new THREE.Mesh(\n new THREE.BoxGeometry(1, 1, 1),\n this.terrain.materials.get(\n this.terrain.materialType[\n parseInt(BlockType[block.object.name as any])\n ]\n )\n )\n mesh.position.set(position.x, position.y, position.z)\n this.scene.add(mesh)\n const time = performance.now()\n let raf = 0\n const animate = () => {\n if (performance.now() - time > 250) {\n this.scene.remove(mesh)\n cancelAnimationFrame(raf)\n return\n }\n raf = requestAnimationFrame(animate)\n mesh.geometry.scale(0.85, 0.85, 0.85)\n }\n animate()\n\n // update\n block.object.instanceMatrix.needsUpdate = true\n\n // check existence\n let existed = false\n for (const customBlock of this.terrain.customBlocks) {\n if (\n customBlock.x === position.x &&\n customBlock.y === position.y &&\n customBlock.z === position.z\n ) {\n existed = true\n customBlock.placed = false\n }\n }\n\n // add to custom blocks when it's not existed\n if (!existed) {\n this.terrain.customBlocks.push(\n new Block(\n position.x,\n position.y,\n position.z,\n BlockType[block.object.name as any] as unknown as BlockType,\n false\n )\n )\n }\n\n // generate adjacent blocks\n this.terrain.generateAdjacentBlocks(position)\n }\n }\n break\n\n // right click to put block\n case 2:\n {\n if (block && block.object instanceof THREE.InstancedMesh) {\n // calculate normal and position\n const normal = block.face!.normal\n block.object.getMatrixAt(block.instanceId!, matrix)\n const position = new THREE.Vector3().setFromMatrixPosition(matrix)\n\n // return when block overlaps with player\n if (\n position.x + normal.x === Math.round(this.camera.position.x) &&\n position.z + normal.z === Math.round(this.camera.position.z) &&\n (position.y + normal.y === Math.round(this.camera.position.y) ||\n position.y + normal.y ===\n Math.round(this.camera.position.y - 1))\n ) {\n return\n }\n\n // put the block\n matrix.setPosition(\n normal.x + position.x,\n normal.y + position.y,\n normal.z + position.z\n )\n this.terrain.blocks[this.holdingBlock].setMatrixAt(\n this.terrain.getCount(this.holdingBlock),\n matrix\n )\n this.terrain.setCount(this.holdingBlock)\n\n //sound effect\n this.audio.playSound(this.holdingBlock)\n\n // update\n this.terrain.blocks[this.holdingBlock].instanceMatrix.needsUpdate =\n true\n\n // add to custom blocks\n this.terrain.customBlocks.push(\n new Block(\n normal.x + position.x,\n normal.y + position.y,\n normal.z + position.z,\n this.holdingBlock,\n true\n )\n )\n }\n }\n break\n default:\n break\n }\n\n if (!isMobile && !this.mouseHolding) {\n this.mouseHolding = true\n this.clickInterval = setInterval(() => {\n this.mousedownHandler(e)\n }, 333)\n }\n\n // console.log(performance.now() - p1)\n }\n mouseupHandler = () => {\n this.clickInterval && clearInterval(this.clickInterval)\n this.mouseHolding = false\n }\n\n changeHoldingBlockHandler = (e: KeyboardEvent) => {\n if (isNaN(parseInt(e.key)) || e.key === '0') {\n return\n }\n this.holdingIndex = parseInt(e.key) - 1\n\n this.holdingBlock = this.holdingBlocks[this.holdingIndex] ?? BlockType.grass\n }\n\n wheelHandler = (e: WheelEvent) => {\n if (!this.wheelGap) {\n this.wheelGap = true\n setTimeout(() => {\n this.wheelGap = false\n }, 100)\n if (e.deltaY > 0) {\n this.holdingIndex++\n this.holdingIndex > 9 && (this.holdingIndex = 0)\n } else if (e.deltaY < 0) {\n this.holdingIndex--\n this.holdingIndex < 0 && (this.holdingIndex = 9)\n }\n this.holdingBlock =\n this.holdingBlocks[this.holdingIndex] ?? BlockType.grass\n }\n }\n\n initEventListeners = () => {\n // add / remove handler when pointer lock / unlock\n document.addEventListener('pointerlockchange', () => {\n if (document.pointerLockElement) {\n document.body.addEventListener(\n 'keydown',\n this.changeHoldingBlockHandler\n )\n document.body.addEventListener('wheel', this.wheelHandler)\n document.body.addEventListener('keydown', this.setMovementHandler)\n document.body.addEventListener('keyup', this.resetMovementHandler)\n document.body.addEventListener('mousedown', this.mousedownHandler)\n document.body.addEventListener('mouseup', this.mouseupHandler)\n } else {\n document.body.removeEventListener(\n 'keydown',\n this.changeHoldingBlockHandler\n )\n document.body.removeEventListener('wheel', this.wheelHandler)\n document.body.removeEventListener('keydown', this.setMovementHandler)\n document.body.removeEventListener('keyup', this.resetMovementHandler)\n document.body.removeEventListener('mousedown', this.mousedownHandler)\n document.body.removeEventListener('mouseup', this.mouseupHandler)\n this.velocity = new THREE.Vector3(0, 0, 0)\n }\n })\n }\n\n // move along X with direction factor\n moveX(distance: number, delta: number) {\n this.camera.position.x +=\n distance * (this.player.speed / Math.PI) * 2 * delta\n }\n\n // move along Z with direction factor\n moveZ = (distance: number, delta: number) => {\n this.camera.position.z +=\n distance * (this.player.speed / Math.PI) * 2 * delta\n }\n\n // collide checking\n collideCheckAll = (\n position: THREE.Vector3,\n noise: Noise,\n customBlocks: Block[],\n far: number\n ) => {\n this.collideCheck(Side.down, position, noise, customBlocks, far)\n this.collideCheck(Side.front, position, noise, customBlocks)\n this.collideCheck(Side.back, position, noise, customBlocks)\n this.collideCheck(Side.left, position, noise, customBlocks)\n this.collideCheck(Side.right, position, noise, customBlocks)\n this.collideCheck(Side.up, position, noise, customBlocks)\n }\n\n collideCheck = (\n side: Side,\n position: THREE.Vector3,\n noise: Noise,\n customBlocks: Block[],\n far: number = this.player.body.width\n ) => {\n const matrix = new THREE.Matrix4()\n\n //reset simulation blocks\n let index = 0\n this.tempMesh.instanceMatrix = new THREE.InstancedBufferAttribute(\n new Float32Array(100 * 16),\n 16\n )\n\n // block to remove\n let removed = false\n let treeRemoved = new Array<boolean>(\n this.terrain.noise.treeHeight + 1\n ).fill(false)\n\n // get block position\n let x = Math.round(position.x)\n let z = Math.round(position.z)\n\n switch (side) {\n case Side.front:\n x++\n this.raycasterFront.ray.origin = position\n break\n case Side.back:\n x--\n this.raycasterBack.ray.origin = position\n break\n case Side.left:\n z--\n this.raycasterLeft.ray.origin = position\n break\n case Side.right:\n z++\n this.raycasterRight.ray.origin = position\n break\n case Side.down:\n this.raycasterDown.ray.origin = position\n this.raycasterDown.far = far\n break\n case Side.up:\n this.raycasterUp.ray.origin = new THREE.Vector3().copy(position)\n this.raycasterUp.ray.origin.y--\n break\n }\n\n let y =\n Math.floor(\n noise.get(x / noise.gap, z / noise.gap, noise.seed) * noise.amp\n ) + 30\n\n // check custom blocks\n for (const block of customBlocks) {\n if (block.x === x && block.z === z) {\n if (block.placed) {\n // placed blocks\n matrix.setPosition(block.x, block.y, block.z)\n this.tempMesh.setMatrixAt(index++, matrix)\n } else if (block.y === y) {\n // removed blocks\n removed = true\n } else {\n for (let i = 1; i <= this.terrain.noise.treeHeight; i++) {\n if (block.y === y + i) {\n treeRemoved[i] = true\n }\n }\n }\n }\n }\n\n // update simulation blocks (ignore removed blocks)\n if (!removed) {\n matrix.setPosition(x, y, z)\n this.tempMesh.setMatrixAt(index++, matrix)\n }\n for (let i = 1; i <= this.terrain.noise.treeHeight; i++) {\n if (!treeRemoved[i]) {\n let treeOffset =\n noise.get(x / noise.treeGap, z / noise.treeGap, noise.treeSeed) *\n noise.treeAmp\n\n let stoneOffset =\n noise.get(x / noise.stoneGap, z / noise.stoneGap, noise.stoneSeed) *\n noise.stoneAmp\n\n if (\n treeOffset > noise.treeThreshold &&\n y >= 27 &&\n stoneOffset < noise.stoneThreshold\n ) {\n matrix.setPosition(x, y + i, z)\n this.tempMesh.setMatrixAt(index++, matrix)\n }\n }\n }\n\n this.tempMesh.instanceMatrix.needsUpdate = true\n\n // update collide\n const origin = new THREE.Vector3(position.x, position.y - 1, position.z)\n switch (side) {\n case Side.front: {\n const c1 = this.raycasterFront.intersectObject(this.tempMesh).length\n this.raycasterFront.ray.origin = origin\n const c2 = this.raycasterFront.intersectObject(this.tempMesh).length\n c1 || c2 ? (this.frontCollide = true) : (this.frontCollide = false)\n\n break\n }\n case Side.back: {\n const c1 = this.raycasterBack.intersectObject(this.tempMesh).length\n this.raycasterBack.ray.origin = origin\n const c2 = this.raycasterBack.intersectObject(this.tempMesh).length\n c1 || c2 ? (this.backCollide = true) : (this.backCollide = false)\n break\n }\n case Side.left: {\n const c1 = this.raycasterLeft.intersectObject(this.tempMesh).length\n this.raycasterLeft.ray.origin = origin\n const c2 = this.raycasterLeft.intersectObject(this.tempMesh).length\n c1 || c2 ? (this.leftCollide = true) : (this.leftCollide = false)\n break\n }\n case Side.right: {\n const c1 = this.raycasterRight.intersectObject(this.tempMesh).length\n this.raycasterRight.ray.origin = origin\n const c2 = this.raycasterRight.intersectObject(this.tempMesh).length\n c1 || c2 ? (this.rightCollide = true) : (this.rightCollide = false)\n break\n }\n case Side.down: {\n const c1 = this.raycasterDown.intersectObject(this.tempMesh).length\n c1 ? (this.downCollide = true) : (this.downCollide = false)\n break\n }\n case Side.up: {\n const c1 = this.raycasterUp.intersectObject(this.tempMesh).length\n c1 ? (this.upCollide = true) : (this.upCollide = false)\n break\n }\n }\n }\n\n update = () => {\n this.p1 = performance.now()\n const delta = (this.p1 - this.p2) / 1000\n if (\n // dev mode\n this.player.mode === Mode.flying\n ) {\n this.control.moveForward(this.velocity.x * delta)\n this.control.moveRight(this.velocity.z * delta)\n this.camera.position.y += this.velocity.y * delta\n } else {\n // normal mode\n this.collideCheckAll(\n this.camera.position,\n this.terrain.noise,\n this.terrain.customBlocks,\n this.far - this.velocity.y * delta\n )\n\n // gravity\n if (Math.abs(this.velocity.y) < this.player.falling) {\n this.velocity.y -= 25 * delta\n }\n\n // up collide handler\n if (this.upCollide) {\n this.velocity.y = -225 * delta\n this.far = this.player.body.height\n }\n\n // down collide and jump handler\n if (this.downCollide && !this.isJumping) {\n this.velocity.y = 0\n } else if (this.downCollide && this.isJumping) {\n this.isJumping = false\n }\n\n // side collide handler\n let vector = new THREE.Vector3(0, 0, -1).applyQuaternion(\n this.camera.quaternion\n )\n let direction = Math.atan2(vector.x, vector.z)\n if (\n this.frontCollide ||\n this.backCollide ||\n this.leftCollide ||\n this.rightCollide\n ) {\n // collide front (positive x)\n if (this.frontCollide) {\n // camera front\n if (direction < Math.PI && direction > 0 && this.velocity.x > 0) {\n if (\n (!this.leftCollide && direction > Math.PI / 2) ||\n (!this.rightCollide && direction < Math.PI / 2)\n ) {\n this.moveZ(Math.PI / 2 - direction, delta)\n }\n } else if (\n !this.leftCollide &&\n !this.rightCollide &&\n this.velocity.x > 0\n ) {\n this.control.moveForward(this.velocity.x * delta)\n }\n\n // camera back\n if (direction < 0 && direction > -Math.PI && this.velocity.x < 0) {\n if (\n (!this.leftCollide && direction > -Math.PI / 2) ||\n (!this.rightCollide && direction < -Math.PI / 2)\n ) {\n this.moveZ(-Math.PI / 2 - direction, delta)\n }\n } else if (\n !this.leftCollide &&\n !this.rightCollide &&\n this.velocity.x < 0\n ) {\n this.control.moveForward(this.velocity.x * delta)\n }\n\n // camera left\n if (\n direction < Math.PI / 2 &&\n direction > -Math.PI / 2 &&\n this.velocity.z < 0\n ) {\n if (\n (!this.rightCollide && direction < 0) ||\n (!this.leftCollide && direction > 0)\n ) {\n this.moveZ(-direction, delta)\n }\n } else if (\n !this.leftCollide &&\n !this.rightCollide &&\n this.velocity.z < 0\n ) {\n this.control.moveRight(this.velocity.z * delta)\n }\n\n // camera right\n if (\n (direction < -Math.PI / 2 || direction > Math.PI / 2) &&\n this.velocity.z > 0\n ) {\n if (!this.rightCollide && direction > 0) {\n this.moveZ(Math.PI - direction, delta)\n }\n if (!this.leftCollide && direction < 0) {\n this.moveZ(-Math.PI - direction, delta)\n }\n } else if (\n !this.leftCollide &&\n !this.rightCollide &&\n this.velocity.z > 0\n ) {\n this.control.moveRight(this.velocity.z * delta)\n }\n }\n\n // collide back (negative x)\n if (this.backCollide) {\n // camera front\n if (direction < 0 && direction > -Math.PI && this.velocity.x > 0) {\n if (\n (!this.leftCollide && direction < -Math.PI / 2) ||\n (!this.rightCollide && direction > -Math.PI / 2)\n ) {\n this.moveZ(Math.PI / 2 + direction, delta)\n }\n } else if (\n !this.leftCollide &&\n !this.rightCollide &&\n this.velocity.x > 0\n ) {\n this.control.moveForward(this.velocity.x * delta)\n }\n\n // camera back\n if (direction < Math.PI && direction > 0 && this.velocity.x < 0) {\n if (\n (!this.leftCollide && direction < Math.PI / 2) ||\n (!this.rightCollide && direction > Math.PI / 2)\n ) {\n this.moveZ(direction - Math.PI / 2, delta)\n }\n } else if (\n !this.leftCollide &&\n !this.rightCollide &&\n this.velocity.x < 0\n ) {\n this.control.moveForward(this.velocity.x * delta)\n }\n\n // camera left\n if (\n (direction < -Math.PI / 2 || direction > Math.PI / 2) &&\n this.velocity.z < 0\n ) {\n if (!this.leftCollide && direction > 0) {\n this.moveZ(-Math.PI + direction, delta)\n }\n if (!this.rightCollide && direction < 0) {\n this.moveZ(Math.PI + direction, delta)\n }\n } else if (\n !this.leftCollide &&\n !this.rightCollide &&\n this.velocity.z < 0\n ) {\n this.control.moveRight(this.velocity.z * delta)\n }\n\n // camera right\n if (\n direction < Math.PI / 2 &&\n direction > -Math.PI / 2 &&\n this.velocity.z > 0\n ) {\n if (\n (!this.leftCollide && direction < 0) ||\n (!this.rightCollide && direction > 0)\n ) {\n this.moveZ(direction, delta)\n }\n } else if (\n !this.leftCollide &&\n !this.rightCollide &&\n this.velocity.z > 0\n ) {\n this.control.moveRight(this.velocity.z * delta)\n }\n }\n\n // collide left (negative z)\n if (this.leftCollide) {\n // camera front\n if (\n (direction < -Math.PI / 2 || direction > Math.PI / 2) &&\n this.velocity.x > 0\n ) {\n if (!this.frontCollide && direction > 0) {\n this.moveX(Math.PI - direction, delta)\n }\n if (!this.backCollide && direction < 0) {\n this.moveX(-Math.PI - direction, delta)\n }\n } else if (\n !this.frontCollide &&\n !this.backCollide &&\n this.velocity.x > 0\n ) {\n this.control.moveForward(this.velocity.x * delta)\n } else if (\n this.frontCollide &&\n direction < 0 &&\n direction > -Math.PI / 2 &&\n this.velocity.x > 0\n ) {\n this.control.moveForward(this.velocity.x * delta)\n } else if (\n this.backCollide &&\n direction < Math.PI / 2 &&\n direction > 0 &&\n this.velocity.x > 0\n ) {\n this.control.moveForward(this.velocity.x * delta)\n }\n\n // camera back\n if (\n direction < Math.PI / 2 &&\n direction > -Math.PI / 2 &&\n this.velocity.x < 0\n ) {\n if (\n (!this.frontCollide && direction < 0) ||\n (!this.backCollide && direction > 0)\n ) {\n this.moveX(-direction, delta)\n }\n } else if (\n !this.frontCollide &&\n !this.backCollide &&\n this.velocity.x < 0\n ) {\n this.control.moveForward(this.velocity.x * delta)\n } else if (\n this.frontCollide &&\n direction < Math.PI &&\n direction > Math.PI / 2 &&\n this.velocity.x < 0\n ) {\n this.control.moveForward(this.velocity.x * delta)\n } else if (\n this.backCollide &&\n direction > -Math.PI &&\n direction < -Math.PI / 2 &&\n this.velocity.x < 0\n ) {\n this.control.moveForward(this.velocity.x * delta)\n }\n\n // camera left\n if (direction > 0 && direction < Math.PI && this.velocity.z < 0) {\n if (\n (!this.backCollide && direction > Math.PI / 2) ||\n (!this.frontCollide && direction < Math.PI / 2)\n ) {\n this.moveX(Math.PI / 2 - direction, delta)\n }\n } else if (\n !this.frontCollide &&\n !this.backCollide &&\n this.velocity.z < 0\n ) {\n this.control.moveRight(this.velocity.z * delta)\n } else if (\n this.frontCollide &&\n direction > -Math.PI &&\n direction < -Math.PI / 2 &&\n this.velocity.z < 0\n ) {\n this.control.moveRight(this.velocity.z * delta)\n } else if (\n this.backCollide &&\n direction > -Math.PI / 2 &&\n direction < 0 &&\n this.velocity.z < 0\n ) {\n this.control.moveRight(this.velocity.z * delta)\n }\n\n // camera right\n if (direction < 0 && direction > -Math.PI && this.velocity.z > 0) {\n if (\n (!this.backCollide && direction > -Math.PI / 2) ||\n (!this.frontCollide && direction < -Math.PI / 2)\n ) {\n this.moveX(-Math.PI / 2 - direction, delta)\n }\n } else if (\n !this.frontCollide &&\n !this.backCollide &&\n this.velocity.z > 0\n ) {\n this.control.moveRight(this.velocity.z * delta)\n } else if (\n this.frontCollide &&\n direction < Math.PI / 2 &&\n direction > 0 &&\n this.velocity.z > 0\n ) {\n this.control.moveRight(this.velocity.z * delta)\n } else if (\n this.backCollide &&\n direction < Math.PI &&\n direction > Math.PI / 2 &&\n this.velocity.z > 0\n ) {\n this.control.moveRight(this.velocity.z * delta)\n }\n }\n\n // collide right (positive z)\n if (this.rightCollide) {\n // camera front\n if (\n direction < Math.PI / 2 &&\n direction > -Math.PI / 2 &&\n this.velocity.x > 0\n ) {\n if (\n (!this.backCollide && direction < 0) ||\n (!this.frontCollide && direction > 0)\n ) {\n this.moveX(direction, delta)\n }\n } else if (\n !this.frontCollide &&\n !this.backCollide &&\n this.velocity.x > 0\n ) {\n this.control.moveForward(this.velocity.x * delta)\n } else if (\n this.frontCollide &&\n direction < -Math.PI / 2 &&\n direction > -Math.PI &&\n this.velocity.x > 0\n ) {\n this.control.moveForward(this.velocity.x * delta)\n } else if (\n this.backCollide &&\n direction < Math.PI &&\n direction > Math.PI / 2 &&\n this.velocity.x > 0\n ) {\n this.control.moveForward(this.velocity.x * delta)\n }\n\n // camera back\n if (\n (direction < -Math.PI / 2 || direction > Math.PI / 2) &&\n this.velocity.x < 0\n ) {\n if (!this.backCollide && direction > 0) {\n this.moveX(-Math.PI + direction, delta)\n }\n if (!this.frontCollide && direction < 0) {\n this.moveX(Math.PI + direction, delta)\n }\n } else if (\n !this.frontCollide &&\n !this.backCollide &&\n this.velocity.x < 0\n ) {\n this.control.moveForward(this.velocity.x * delta)\n } else if (\n this.frontCollide &&\n direction < Math.PI / 2 &&\n direction > 0 &&\n this.velocity.x < 0\n ) {\n this.control.moveForward(this.velocity.x * delta)\n } else if (\n this.backCollide &&\n direction < 0 &&\n direction > -Math.PI / 2 &&\n this.velocity.x < 0\n ) {\n this.control.moveForward(this.velocity.x * delta)\n }\n\n // camera left\n if (direction < 0 && direction > -Math.PI && this.velocity.z < 0) {\n if (\n (!this.frontCollide && direction > -Math.PI / 2) ||\n (!this.backCollide && direction < -Math.PI / 2)\n ) {\n this.moveX(Math.PI / 2 + direction, delta)\n }\n } else if (\n !this.frontCollide &&\n !this.backCollide &&\n this.velocity.z < 0\n ) {\n this.control.moveRight(this.velocity.z * delta)\n } else if (\n this.frontCollide &&\n direction > Math.PI / 2 &&\n direction < Math.PI &&\n this.velocity.z < 0\n ) {\n this.control.moveRight(this.velocity.z * delta)\n } else if (\n this.backCollide &&\n direction > 0 &&\n direction < Math.PI / 2 &&\n this.velocity.z < 0\n ) {\n this.control.moveRight(this.velocity.z * delta)\n }\n\n // camera right\n if (direction > 0 && direction < Math.PI && this.velocity.z > 0) {\n if (\n (!this.frontCollide && direction > Math.PI / 2) ||\n (!this.backCollide && direction < Math.PI / 2)\n ) {\n this.moveX(direction - Math.PI / 2, delta)\n }\n } else if (\n !this.frontCollide &&\n !this.backCollide &&\n this.velocity.z > 0\n ) {\n this.control.moveRight(this.velocity.z * delta)\n } else if (\n this.frontCollide &&\n direction > -Math.PI / 2 &&\n direction < 0 &&\n this.velocity.z > 0\n ) {\n this.control.moveRight(this.velocity.z * delta)\n } else if (\n this.backCollide &&\n direction > -Math.PI &&\n direction < -Math.PI / 2 &&\n this.velocity.z > 0\n ) {\n this.control.moveRight(this.velocity.z * delta)\n }\n }\n } else {\n // no collide\n this.control.moveForward(this.velocity.x * delta)\n this.control.moveRight(this.velocity.z * delta)\n }\n\n this.camera.position.y += this.velocity.y * delta\n\n // catching net\n if (this.camera.position.y < -100) {\n this.camera.position.y = 60\n }\n }\n this.p2 = this.p1\n }\n}\n","/**\n * Display current FPS\n */\nexport default class FPS {\n constructor() {\n this.fps.className = 'fps'\n this.fps.innerHTML = `FPS: 60`\n\n document.body.appendChild(this.fps)\n }\n\n p1 = performance.now()\n p2 = performance.now()\n gap = performance.now()\n fps = document.createElement('div')\n count = 0\n\n update = () => {\n this.p1 = performance.now()\n this.count++\n\n if (performance.now() - this.gap > 1000) {\n this.fps.innerHTML = `FPS: ${this.count}`\n this.gap = performance.now()\n this.count = 0\n }\n\n this.p2 = this.p1\n }\n}\n","export default \"__VITE_ASSET__020eb145__\"","export default \"__VITE_ASSET__53e38748__\"","export default \"__VITE_ASSET__98a9b0d4__\"","export default \"__VITE_ASSET__9768871f__\"","export default \"__VITE_ASSET__b6171099__\"","export default \"__VITE_ASSET__9ffd1d51__\"","export default \"__VITE_ASSET__3e48b289__\"","import grass from '../../static/block-icon/grass.png'\nimport stone from '../../static/block-icon/stone.png'\nimport tree from '../../static/block-icon/tree.png'\nimport wood from '../../static/block-icon/wood.png'\nimport diamond from '../../static/block-icon/diamond.png'\nimport quartz from '../../static/block-icon/quartz.png'\nimport glass from '../../static/block-icon/glass.png'\nimport { isMobile } from '../../utils'\n\nexport default class Bag {\n constructor() {\n if (isMobile) return\n\n this.bag.className = 'bag'\n this.items[0].classList.add('selected')\n\n for (let i = 0; i < this.items.length; i++) {\n this.bag.appendChild(this.items[i])\n }\n document.body.appendChild(this.bag)\n\n document.body.addEventListener('keydown', (e: KeyboardEvent) => {\n if (isNaN(parseInt(e.key)) || e.key === '0') {\n return\n }\n\n for (let i = 0; i < this.items.length; i++) {\n this.items[i].classList.remove('selected')\n }\n\n this.current = parseInt(e.key) - 1\n this.items[this.current].classList.add('selected')\n })\n\n document.body.addEventListener('wheel', (e: WheelEvent) => {\n if (!this.wheelGap) {\n this.wheelGap = true\n setTimeout(() => {\n this.wheelGap = false\n }, 100)\n if (e.deltaY > 0) {\n this.current++\n this.current > 9 && (this.current = 0)\n } else if (e.deltaY < 0) {\n this.current--\n this.current < 0 && (this.current = 9)\n }\n for (let i = 0; i < this.items.length; i++) {\n this.items[i].classList.remove('selected')\n }\n this.items[this.current].classList.add('selected')\n }\n })\n }\n wheelGap = false\n current = 0\n icon = [grass, stone, tree, wood, diamond, quartz, glass]\n iconIndex = 0\n y = 0\n\n bag = document.createElement('div')\n\n items = new Array(10).fill(null).map(() => {\n let item = document.createElement('div')\n item.className = 'item'\n\n let img = document.createElement('img')\n if (this.icon[this.iconIndex]) {\n img.className = 'icon'\n img.alt = 'block'\n img.src = this.icon[this.iconIndex++]\n item.appendChild(img)\n }\n\n return item\n })\n}\n","export default \"<div class=\\\"joystick\\\">\\n <button id=\\\"action-front\\\" class=\\\"joystick-button front\\\" role=\\\"div\\\">🔼</button>\\n <button id=\\\"action-left\\\" class=\\\"joystick-button left\\\" role=\\\"div\\\">â—€ï¸</button>\\n <button id=\\\"action-right\\\" class=\\\"joystick-button right\\\" role=\\\"div\\\">â–¶ï¸</button>\\n <button id=\\\"action-back\\\" class=\\\"joystick-button back\\\" role=\\\"div\\\">🔽</button>\\n <button id=\\\"action-mode\\\" class=\\\"joystick-button mode\\\" role=\\\"div\\\">â¹ï¸</button>\\n <button id=\\\"action-up\\\" class=\\\"joystick-button up\\\" role=\\\"div\\\">🔼</button>\\n <button id=\\\"action-down\\\" class=\\\"joystick-button down hidden\\\" role=\\\"div\\\">\\n 🔽\\n </button>\\n</div>\\n\\n<style>\\n .joystick {\\n position: fixed;\\n bottom: 0;\\n display: grid;\\n width: 100%;\\n grid-template-columns: repeat(auto-fill, 50px);\\n grid-template-rows: repeat(3, 1fr);\\n gap: 10px;\\n padding: 10px;\\n }\\n .joystick-button {\\n width: 52px;\\n height: 50px;\\n font-size: 50px;\\n line-height: 50px;\\n padding: 0px;\\n border: none;\\n background-color: transparent;\\n }\\n .front {\\n grid-column: 2 / 3;\\n grid-row: 1;\\n }\\n .left {\\n grid-column: 1 / 2;\\n grid-row: 2;\\n }\\n .right {\\n grid-column: 3 / 4;\\n grid-row: 2;\\n }\\n .back {\\n grid-column: 2 / 3;\\n grid-row: 3;\\n }\\n .mode {\\n grid-column: 2 / 3;\\n grid-row: 2;\\n }\\n .up {\\n grid-column: -3 / -2;\\n grid-row: 2;\\n }\\n .down {\\n grid-column: -3 / -2;\\n grid-row: 3;\\n }\\n</style>\\n\"","import * as THREE from 'three'\nimport Control from '../../control'\nimport { Mode } from '../../player'\nimport { htmlToDom } from '../../utils'\nimport UI from './joystick.html?raw'\n\nenum ActionKey {\n FRONT = 'front',\n LEFT = 'left',\n RIGHT = 'right',\n BACK = 'back',\n MODE = 'mode',\n JUMP = 'jump',\n UP = 'up',\n DOWN = 'down'\n}\n\nexport default class Joystick {\n constructor(control: Control) {\n this.control = control\n this.euler = new THREE.Euler(0, 0, 0, 'YXZ')\n }\n\n control: Control\n pageX = 0\n pageY = 0\n clickX = 0\n clickY = 0\n euler: THREE.Euler\n clickTimeout?: ReturnType<typeof setTimeout>\n clickInterval?: ReturnType<typeof setInterval>\n hold = false\n\n // emit keyboard event\n private emitKeyboardEvent = (key: string) => {\n return {\n key\n } as KeyboardEvent\n }\n\n // emit click event\n private emitClickEvent = (button: number) => {\n return {\n button,\n preventDefault: () => { }\n } as MouseEvent\n }\n\n // init joystick button\n private initButton = ({\n actionKey,\n key\n }: {\n actionKey: ActionKey\n key: string\n }) => {\n const button = document.querySelector(\n `#action-${actionKey}`\n ) as HTMLButtonElement\n button.addEventListener('pointermove', e => {\n e.stopPropagation()\n })\n button.addEventListener('pointerdown', e => {\n this.control.setMovementHandler(this.emitKeyboardEvent(key))\n e.stopPropagation()\n })\n button.addEventListener('pointerup', e => {\n this.control.resetMovementHandler(this.emitKeyboardEvent(key))\n e.stopPropagation()\n })\n // extra config for mode switch button\n if (actionKey === ActionKey.MODE && key === 'q') {\n this.initButton({ actionKey: ActionKey.MODE, key: ' ' })\n button.addEventListener('pointerdown', () => {\n if (this.control.player.mode === Mode.flying) {\n document.querySelector('#action-down')?.classList.remove('hidden')\n } else {\n document.querySelector('#action-down')?.classList.add('hidden')\n }\n })\n }\n }\n\n init = () => {\n htmlToDom(UI)\n\n this.initButton({ actionKey: ActionKey.FRONT, key: 'w' })\n this.initButton({ actionKey: ActionKey.LEFT, key: 'a' })\n this.initButton({ actionKey: ActionKey.RIGHT, key: 'd' })\n this.initButton({ actionKey: ActionKey.BACK, key: 's' })\n this.initButton({ actionKey: ActionKey.MODE, key: 'q' })\n this.initButton({ actionKey: ActionKey.UP, key: ' ' })\n this.initButton({ actionKey: ActionKey.DOWN, key: 'Shift' })\n\n // camera control\n document.addEventListener('pointermove', e => {\n if (this.pageX !== 0 || this.pageY !== 0) {\n this.euler.setFromQuaternion(this.control.camera.quaternion)\n this.euler.y -= 0.01 * (e.pageX - this.pageX)\n this.euler.x -= 0.01 * (e.pageY - this.pageY)\n this.euler.x = Math.max(\n -Math.PI / 2,\n Math.min(Math.PI / 2, this.euler.x)\n )\n this.control.camera.quaternion.setFromEuler(this.euler)\n }\n this.pageX = e.pageX\n this.pageY = e.pageY\n this.clickTimeout && clearTimeout(this.clickTimeout)\n })\n\n // click control\n document.addEventListener('pointerdown', e => {\n this.clickX = e.pageX\n this.clickY = e.pageY\n\n this.clickTimeout = setTimeout(() => {\n if (e.pageX === this.clickX && e.pageY === this.clickY) {\n this.control.mousedownHandler(this.emitClickEvent(0))\n this.clickInterval = setInterval(() => {\n this.control.mousedownHandler(this.emitClickEvent(0))\n }, 333)\n this.hold = true\n }\n }, 500)\n })\n\n document.addEventListener('pointerup', e => {\n this.clickTimeout && clearTimeout(this.clickTimeout)\n this.clickInterval && clearInterval(this.clickInterval)\n\n if (!this.hold && e.pageX === this.clickX && e.pageY === this.clickY) {\n this.control.mousedownHandler(this.emitClickEvent(2))\n }\n this.hold = false\n this.pageX = 0\n this.pageY = 0\n })\n }\n}\n","import FPS from './fps'\nimport Bag from './bag'\nimport Terrain from '../terrain'\nimport Block from '../terrain/mesh/block'\nimport Control from '../control'\nimport { Mode } from '../player'\nimport Joystick from './joystick'\nimport { isMobile } from '../utils'\nimport * as THREE from 'three'\n\nexport default class UI {\n constructor(terrain: Terrain, control: Control) {\n this.fps = new FPS()\n this.bag = new Bag()\n this.joystick = new Joystick(control)\n\n this.crossHair.className = 'cross-hair'\n this.crossHair.innerHTML = '+'\n document.body.appendChild(this.crossHair)\n\n // play\n this.play?.addEventListener('click', () => {\n if (this.play?.innerHTML === 'Play') {\n this.onPlay()\n\n // reset game\n terrain.noise.seed = Math.random()\n terrain.noise.stoneSeed = Math.random()\n terrain.noise.treeSeed = Math.random()\n terrain.noise.coalSeed = Math.random()\n terrain.noise.leafSeed = Math.random()\n terrain.customBlocks = []\n terrain.initBlocks()\n terrain.generate()\n terrain.camera.position.y = 40\n control.player.setMode(Mode.walking)\n }\n !isMobile && control.control.lock()\n })\n\n // save load\n this.save?.addEventListener('click', () => {\n if (this.save?.innerHTML === 'Save and Exit') {\n // save game\n window.localStorage.setItem(\n 'block',\n JSON.stringify(terrain.customBlocks)\n )\n window.localStorage.setItem('seed', JSON.stringify(terrain.noise.seed))\n\n window.localStorage.setItem(\n 'position',\n JSON.stringify({\n x: terrain.camera.position.x,\n y: terrain.camera.position.y,\n z: terrain.camera.position.z\n })\n )\n\n // ui update\n this.onExit()\n this.onSave()\n } else {\n // load game\n terrain.noise.seed =\n Number(window.localStorage.getItem('seed')) ?? Math.random()\n\n const customBlocks =\n (JSON.parse(\n window.localStorage.getItem('block') || 'null'\n ) as Block[]) ?? []\n\n terrain.customBlocks = customBlocks\n terrain.initBlocks()\n terrain.generate()\n\n const position =\n (JSON.parse(window.localStorage.getItem('position') || 'null') as {\n x: number\n y: number\n z: number\n }) ?? null\n\n position && (terrain.camera.position.x = position.x)\n position && (terrain.camera.position.y = position.y)\n position && (terrain.camera.position.z = position.z)\n\n // ui update\n this.onPlay()\n this.onLoad()\n !isMobile && control.control.lock()\n }\n })\n\n // guide\n this.feature?.addEventListener('click', () => {\n this.features?.classList.remove('hidden')\n })\n this.back?.addEventListener('click', () => {\n this.features?.classList.add('hidden')\n })\n\n // setting\n this.setting?.addEventListener('click', () => {\n this.settings?.classList.remove('hidden')\n })\n this.settingBack?.addEventListener('click', () => {\n this.settings?.classList.add('hidden')\n })\n\n // render distance\n this.distanceInput?.addEventListener('input', (e: Event) => {\n if (this.distance && e.target instanceof HTMLInputElement) {\n this.distance.innerHTML = `Render Distance: ${e.target.value}`\n }\n })\n\n // fov\n this.fovInput?.addEventListener('input', (e: Event) => {\n if (this.fov && e.target instanceof HTMLInputElement) {\n this.fov.innerHTML = `Field of View: ${e.target.value}`\n control.camera.fov = parseInt(e.target.value)\n control.camera.updateProjectionMatrix()\n }\n })\n\n // music\n this.musicInput?.addEventListener('input', (e: Event) => {\n if (this.fov && e.target instanceof HTMLInputElement) {\n const disabled = e.target.value === '0'\n control.audio.disabled = disabled\n this.music!.innerHTML = `Music: ${disabled ? 'Off' : 'On'}`\n }\n })\n\n // apply settings\n this.settingBack?.addEventListener('click', () => {\n if (this.distanceInput instanceof HTMLInputElement) {\n terrain.distance = parseInt(this.distanceInput.value)\n terrain.maxCount =\n (terrain.distance * terrain.chunkSize * 2 + terrain.chunkSize) ** 2 +\n 500\n\n terrain.initBlocks()\n terrain.generate()\n terrain.scene.fog = new THREE.Fog(\n 0x87ceeb,\n 1,\n terrain.distance * 24 + 24\n )\n }\n })\n\n // menu and fullscreen\n document.body.addEventListener('keydown', (e: KeyboardEvent) => {\n // menu\n if (e.key === 'e' && document.pointerLockElement) {\n !isMobile && control.control.unlock()\n }\n\n // fullscreen\n if (e.key === 'f') {\n if (document.fullscreenElement) {\n document.exitFullscreen()\n } else {\n document.body.requestFullscreen()\n }\n }\n })\n\n // exit\n this.exit?.addEventListener('click', () => {\n this.onExit()\n })\n\n // play / pause handler\n document.addEventListener('pointerlockchange', () => {\n if (document.pointerLockElement) {\n this.onPlay()\n } else {\n this.onPause()\n }\n })\n\n // disable context menu\n document.addEventListener('contextmenu', e => {\n e.preventDefault()\n })\n\n // fallback lock handler\n document.querySelector('canvas')?.addEventListener('click', (e: Event) => {\n e.preventDefault()\n !isMobile && control.control.lock()\n })\n }\n\n fps: FPS\n bag: Bag\n joystick: Joystick\n\n menu = document.querySelector('.menu')\n crossHair = document.createElement('div')\n\n // buttons\n play = document.querySelector('#play')\n control = document.querySelector('#control')\n setting = document.querySelector('#setting')\n feature = document.querySelector('#feature')\n back = document.querySelector('#back')\n exit = document.querySelector('#exit')\n save = document.querySelector('#save')\n\n // modals\n saveModal = document.querySelector('.save-modal')\n loadModal = document.querySelector('.load-modal')\n settings = document.querySelector('.settings')\n features = document.querySelector('.features')\n github = document.querySelector('.github')\n\n // settings\n distance = document.querySelector('#distance')\n distanceInput = document.querySelector('#distance-input')\n\n fov = document.querySelector('#fov')\n fovInput = document.querySelector('#fov-input')\n\n music = document.querySelector('#music')\n musicInput = document.querySelector('#music-input')\n\n settingBack = document.querySelector('#setting-back')\n\n onPlay = () => {\n isMobile && this.joystick.init()\n this.menu?.classList.add('hidden')\n this.menu?.classList.remove('start')\n this.play && (this.play.innerHTML = 'Resume')\n this.crossHair.classList.remove('hidden')\n this.github && this.github.classList.add('hidden')\n this.feature?.classList.add('hidden')\n }\n\n onPause = () => {\n this.menu?.classList.remove('hidden')\n this.crossHair.classList.add('hidden')\n this.save && (this.save.innerHTML = 'Save and Exit')\n this.github && this.github.classList.remove('hidden')\n }\n\n onExit = () => {\n this.menu?.classList.add('start')\n this.play && (this.play.innerHTML = 'Play')\n this.save && (this.save.innerHTML = 'Load Game')\n this.feature?.classList.remove('hidden')\n }\n\n onSave = () => {\n this.saveModal?.classList.remove('hidden')\n setTimeout(() => {\n this.saveModal?.classList.add('show')\n })\n setTimeout(() => {\n this.saveModal?.classList.remove('show')\n }, 1000)\n\n setTimeout(() => {\n this.saveModal?.classList.add('hidden')\n }, 1350)\n }\n\n onLoad = () => {\n this.loadModal?.classList.remove('hidden')\n setTimeout(() => {\n this.loadModal?.classList.add('show')\n })\n setTimeout(() => {\n this.loadModal?.classList.remove('show')\n }, 1000)\n\n setTimeout(() => {\n this.loadModal?.classList.add('hidden')\n }, 1350)\n }\n\n update = () => {\n this.fps.update()\n }\n}\n","export default \"__VITE_ASSET__2642662e__\"","export default \"__VITE_ASSET__3619fdb8__\"","export default \"__VITE_ASSET__b0763cf2__\"","export default \"__VITE_ASSET__9ac02803__\"","export default \"__VITE_ASSET__dd733357__\"","export default \"__VITE_ASSET__1260ef32__\"","export default \"__VITE_ASSET__74ef2fa1__\"","export default \"__VITE_ASSET__0441e996__\"","export default \"__VITE_ASSET__42ac9116__\"","export default \"__VITE_ASSET__97f2a8a7__\"","export default \"__VITE_ASSET__98a5c319__\"","export default \"__VITE_ASSET__19273f0e__\"","export default \"__VITE_ASSET__b164e732__\"","export default \"__VITE_ASSET__55a610c8__\"","export default \"__VITE_ASSET__60ebf0ed__\"","export default \"__VITE_ASSET__ab5e4b40__\"","export default \"__VITE_ASSET__fd4aa755__\"","export default \"__VITE_ASSET__cb6071c8__\"","export default \"__VITE_ASSET__59edca84__\"","export default \"__VITE_ASSET__cf6be231__\"","export default \"__VITE_ASSET__de868b31__\"","export default \"__VITE_ASSET__74400cfe__\"","export default \"__VITE_ASSET__b7636085__\"","export default \"__VITE_ASSET__6228533c__\"","export default \"__VITE_ASSET__72db3634__\"","import * as THREE from 'three'\nimport hal3 from './musics/hal3.ogg'\nimport { BlockType } from '../terrain'\n\nimport grass1 from './blocks/grass1.ogg'\nimport grass2 from './blocks/grass2.ogg'\nimport grass3 from './blocks/grass3.ogg'\nimport grass4 from './blocks/grass4.ogg'\n\nimport sand1 from './blocks/sand1.ogg'\nimport sand2 from './blocks/sand2.ogg'\nimport sand3 from './blocks/sand3.ogg'\nimport sand4 from './blocks/sand4.ogg'\n\nimport stone1 from './blocks/stone1.ogg'\nimport stone2 from './blocks/stone2.ogg'\nimport stone3 from './blocks/stone3.ogg'\nimport stone4 from './blocks/stone4.ogg'\n\nimport dirt1 from './blocks/dirt1.ogg'\nimport dirt2 from './blocks/dirt2.ogg'\nimport dirt3 from './blocks/dirt3.ogg'\nimport dirt4 from './blocks/dirt4.ogg'\n\nimport tree1 from './blocks/tree1.ogg'\nimport tree2 from './blocks/tree2.ogg'\nimport tree3 from './blocks/tree3.ogg'\nimport tree4 from './blocks/tree4.ogg'\n\nimport leaf1 from './blocks/leaf1.ogg'\nimport leaf2 from './blocks/leaf2.ogg'\nimport leaf3 from './blocks/leaf3.ogg'\nimport leaf4 from './blocks/leaf4.ogg'\nimport { isMobile } from '../utils'\n\nexport default class Audio {\n constructor(camera: THREE.PerspectiveCamera) {\n if (isMobile) return\n\n const listener = new THREE.AudioListener()\n const audioLoader = new THREE.AudioLoader()\n camera.add(listener)\n\n // load bgm\n const bgm = new THREE.Audio(listener)\n bgm.autoplay = false\n audioLoader.load(hal3, buffer => {\n bgm.setBuffer(buffer)\n bgm.setVolume(0.1)\n bgm.setLoop(true)\n if (bgm.isPlaying) {\n bgm.pause()\n bgm.play()\n }\n })\n\n // play / pause bgm\n document.addEventListener('pointerlockchange', () => {\n if (document.pointerLockElement && !bgm.isPlaying && !this.disabled) {\n bgm.play()\n } else {\n bgm.pause()\n }\n })\n\n // load sound effect\n for (const types of this.sourceSet) {\n const audios: THREE.Audio[] = []\n for (const type of types) {\n audioLoader.load(type, buffer => {\n const audio = new THREE.Audio(listener!)\n audio.setBuffer(buffer)\n audio.setVolume(0.15)\n audios.push(audio)\n })\n }\n this.soundSet.push(audios)\n }\n }\n\n disabled = false\n\n sourceSet = [\n [grass1, grass2, grass3, grass4],\n [sand1, sand2, sand3, sand4],\n [tree1, tree2, tree3, tree4],\n [leaf1, leaf2, leaf3, leaf4],\n [dirt1, dirt2, dirt3, dirt4],\n [stone1, stone2, stone3, stone4],\n [stone1, stone2, stone3, stone4],\n [tree1, tree2, tree3, tree4],\n [stone1, stone2, stone3, stone4],\n [stone1, stone2, stone3, stone4],\n [stone1, stone2, stone3, stone4]\n ]\n\n soundSet: THREE.Audio[][] = []\n\n index = 0\n\n playSound(type: BlockType) {\n if (!this.disabled && !isMobile) {\n this.index++ === 3 && (this.index = 0)\n this.soundSet[type]?.[this.index]?.play()\n }\n }\n}\n","import Core from './core'\nimport Control from './control'\nimport Player from './player'\nimport Terrain from './terrain'\nimport UI from './ui'\nimport Audio from './audio'\n\nimport './style.css'\n\nconst core = new Core()\nconst camera = core.camera\nconst scene = core.scene\nconst renderer = core.renderer\n\nconst player = new Player()\nconst audio = new Audio(camera)\n\nconst terrain = new Terrain(scene, camera)\nconst control = new Control(scene, camera, player, terrain, audio)\n\nconst ui = new UI(terrain, control)\n\n// animation\n;(function animate() {\n // let p1 = performance.now()\n requestAnimationFrame(animate)\n\n control.update()\n terrain.update()\n ui.update()\n\n renderer.render(scene, camera)\n // console.log(performance.now()-p1)\n})()\n"],"names":["THREE.Scene","THREE.Fog","THREE.Color","THREE.PointLight","THREE.AmbientLight","THREE.PerspectiveCamera","THREE.WebGLRenderer","THREE.TextureLoader","stone","diamond","quartz","glass","THREE.NearestFilter","THREE.MeshStandardMaterial","THREE.BoxGeometry","THREE.Mesh","THREE.InstancedMesh","THREE.MeshBasicMaterial","THREE.Raycaster","THREE.InstancedBufferAttribute","THREE.Matrix4","THREE.Vector3","THREE.Vector2","Generate","Highlight","UI","THREE.Euler","THREE.AudioListener","THREE.AudioLoader","THREE.Audio"],"mappings":"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"} \ No newline at end of file diff --git a/dist/assets/index.648ad158.css b/dist/assets/index.648ad158.css new file mode 100644 index 0000000..195bcdf --- /dev/null +++ b/dist/assets/index.648ad158.css @@ -0,0 +1 @@ +body{font-family:Minecraft,Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;overflow:hidden}*{touch-action:none}@font-face{font-family:Minecraft;src:url(/dist/assets/mc-font.c5bcd562.otf);font-display:swap}.start{background-image:url(/dist/assets/menu.e25a1d96.jpeg);background-repeat:no-repeat;background-size:100% 100%}.start #exit{display:none}.menu{z-index:1;position:fixed;left:0%;top:0%;display:flex;flex-direction:column;align-items:center;width:100vw;height:75vh;padding-top:25vh;text-align:center;user-select:none;background-color:#1c1c1cb3}.button{width:300px;margin-bottom:15px;padding:10px;display:inline-block;font-family:Minecraft,Avenir,Helvetica,Arial,sans-serif;font-size:1.2rem;color:#fff;background-color:#727272;cursor:pointer;border-left:2px solid #a4a4a4;border-top:2px solid #a4a4a4;border-bottom:2px solid #545655;border-right:2px solid #545655;box-shadow:0 0 0 2px #000}.button:hover{background-color:#218306;border-left:2px solid #17cd07;border-top:2px solid #17cd07;border-bottom:2px solid #004e00;border-right:2px solid #004e00;box-shadow:0 0 0 2px #fff}.footer{position:fixed;color:#fff;left:50%;top:100%;opacity:75%;transform:translate(-50%,-100%);font-family:sans-serif}.fps{position:fixed;color:#fff;left:0%;top:0%;padding:5px;margin:1px;border:2px solid rgb(141,139,139);background-color:#1c1c1c80}.bag{position:fixed;left:50%;top:100%;transform:translate(-50%,-100%);width:fit-content;background-color:#1c1c1c80;height:62px}.item{display:inline-block;width:56px;height:56px;margin:1px;border:2px solid rgb(141,139,139)}.selected{border:2px solid rgb(236,234,234);outline:1px solid rgb(236,234,234)}.icon{display:block;margin:auto;transform:translateY(20%);width:40px;height:40px}.cross-hair{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);user-select:none;font-size:3rem;color:#fff}.hidden{display:none}.features{z-index:2;position:fixed;left:50%;top:20%;transform:translate(-50%);width:300px;color:#fff;background-color:#727272;border-left:2px solid #a4a4a4;border-top:2px solid #a4a4a4;border-bottom:2px solid #545655;border-right:2px solid #545655;box-shadow:0 0 0 2px #000;padding:0 30px;text-align:center;user-select:none;text-align:left;line-height:1.8rem}.save-modal,.load-modal{z-index:3;position:fixed;left:50%;transform:translate(-50%);margin-top:calc(25vh + 62px);padding:12px 0;width:300px;color:#fff;background-color:#218306;border-left:2px solid #17cd07;border-top:2px solid #17cd07;border-bottom:2px solid #004e00;border-right:2px solid #004e00;box-shadow:0 0 0 2px #fff;opacity:0%;transition:opacity .35s ease-in-out;text-align:center;user-select:none}.load-modal{background-color:#727272;border-left:2px solid #a4a4a4;border-top:2px solid #a4a4a4;border-bottom:2px solid #545655;border-right:2px solid #545655;box-shadow:0 0 0 2px #000}.show{transition:opacity .5s ease-in-out;opacity:100%}.github svg{z-index:3;fill:#727272;position:fixed;left:100%;top:-1%;transform:translate(-99%) rotate(-90deg) scaleY(-1)}.settings{z-index:2;position:fixed;left:50%;top:20%;transform:translate(-50%);width:300px;height:370px;color:#fff;background-color:#727272;border-left:2px solid #a4a4a4;border-top:2px solid #a4a4a4;border-bottom:2px solid #545655;border-right:2px solid #545655;box-shadow:0 0 0 2px #000;padding:0 30px;text-align:center;user-select:none;text-align:left;line-height:1.8rem}#distance-input,#fov-input{appearance:none;width:100%;height:16px;background-color:#ddd;box-shadow:0 0 0 2px #000}#music-input{appearance:none;width:14%;height:16px;background-color:#ddd;box-shadow:0 0 0 2px #000}#distance-input::-webkit-slider-thumb:hover,#fov-input::-webkit-slider-thumb:hover,#music-input::-webkit-slider-thumb:hover{background-color:#218306;border-left:2px solid #17cd07;border-top:2px solid #17cd07;border-bottom:2px solid #004e00;border-right:2px solid #004e00;box-shadow:0 0 0 2px #fff}#distance-input::-webkit-slider-thumb,#fov-input::-webkit-slider-thumb,#music-input::-webkit-slider-thumb{appearance:none;width:20px;height:30px;background-color:#727272;border-left:2px solid #a4a4a4;border-top:2px solid #a4a4a4;border-bottom:2px solid #545655;border-right:2px solid #545655;box-shadow:0 0 0 2px #000;cursor:pointer}#distance-input::-moz-range-thumb,#fov-input::-moz-range-thumb,#music-input::-moz-range-thumb{appearance:none;width:20px;height:30px;background-color:#727272;border-left:2px solid #a4a4a4;border-top:2px solid #a4a4a4;border-bottom:2px solid #545655;border-right:2px solid #545655;box-shadow:0 0 0 2px #000;cursor:pointer}*{-webkit-touch-callout:none;-moz-touch-callout:none;-ms-touch-callout:none;-webkit-user-select:none;user-select:none} diff --git a/dist/assets/iron_ore.78230e9e.png b/dist/assets/iron_ore.78230e9e.png new file mode 100644 index 0000000000000000000000000000000000000000..31b655bbfaf94bbe1a66e73cdb50809479f8ed02 GIT binary patch literal 541 zcmV+&0^<FNP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005xNkl<ZIE_`4 zF>ljA7=|As50O4gxuMcUcpwuQva|~eVt^$=VuJzZcF2S}^C$8LVD7@+ZVVM;ktL)e zw?i}3RSy;QBHcv{mCRs&N8-`G_rCXizSr4ev1q;b02pKN-V<X4KtzZ!5<;LTiuBGH zgFd;6RpgvwGMS_UdZ~U3A>f?DT1$+PT*V;-LI}Lu8*y^kAR;*D0Mc}8EgyDwxc>cz z)0-9%AveY(OWu2au7`-U036Py{JOfPS`Ctuqv{T03^6ucgr@1HsS|Yr@cDbBEK9(n z=ZrCIY94Ju5fMTNe0u+i!`T!ONl-t&d4_Y2rfCQv5M#s`L$2@u_Fqm}-|uiyp98Qv z{L3;M0dP^DGkZFuS`E^4?|lbRVSV}bpF9BBkh-n``05m<#_HEtmL;#pc_O>n1&y=5 zcN|rB#28a7Ws!Geb*iVXYpk_t3uiyh`Z!RrT_O=7o6qO1mO?~$@i^n;GNeruMUgCP z96b+^>of&(ded%YRAEsRsTa%4q^PNhK$@yHo2KF5`4ismbsUbD50H%*x3^TQL04sM zqW7K<Lbs~E`y#^e@`3SH$HDg^-@6r&4x&1+*7o*Dd-mS5G^0Mu_KznbT?EaqB0W@= fWx8aO{ASF5oRBMciJYEw00000NkvXXu0mjfLLc-n literal 0 HcmV?d00001 diff --git a/dist/assets/leaf1.74400cfe.ogg b/dist/assets/leaf1.74400cfe.ogg new file mode 100644 index 0000000000000000000000000000000000000000..3eee4c168ca6800fd66d01f280abcc9113ed4350 GIT binary patch literal 14501 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 literal 0 HcmV?d00001 diff --git a/dist/assets/leaf2.b7636085.ogg b/dist/assets/leaf2.b7636085.ogg new file mode 100644 index 0000000000000000000000000000000000000000..0b480e36fc076c7981c35ebea6c428a9c37eaf80 GIT binary patch literal 18850 zcmb@tbzD?k_cuHkfQo=crwRxX4&4Yy4Jj!tAl(chtx`&Nr!aI#3>_lf-6fp^k^>CG zJO{k4`**+3`+lD1pZ9zYo4xm1d+ojAyY@bZgQBUa3g`ytpNnuUMdYf=FYh0RMTO;T z>tJXOz3RaFRCo0Y1bUTs^ZIu+mg3dO|6Eriv49padusdx4b1=Z8oT*d5*NVm&fLz7 zRnfte#>(7K{aQYa3=R7$Fz+i4FgMK$1zQ&y@T*sJG$zI_#tt-4Gh-_&DC3o6eBehy zL0s{TgtCybgs75)GS=<CVqc1ht7Cz10XkTYrtQ;UxEcsV2m-x-&WImnBEtxa&UoP( zA1!@VYkT!AKKff5iBT}P{ojIy^TQJm=oaYHi#ws2Ycdx7e5ND}p$_SM<_f$yG&q58 zfAih>bxdz$lU<Q*Y17Y0hkIZ1HV81<YiU})$I4fQ;a6IJ5}*j6aOkAXNp`r)l$-wL zE_)}9j~x4ER+Iw&W^QIE|JI9&L9u%*6~hoY@R+($aRaul2ehAWJ^7#F&b1yiz*@wx zNk0&Z;a-XV%9tJR0Eqgl77geVpe9Hv;;~HW<DOEAzM<!e2h49DaSd@usHn=T0hg1m zhO_a6v(tpLr)IpLcD1KwwV(E+pDxnRfW-fw`_yv*d39f_PJ;zXf5sQP%=rB&+4m*B z?>Bw@3vYlvT$zOCPUKU@$V{1R6N_T=q)M}bO6#67=AJUVYZed|z;bn^n<r-fzit!F zSmXcu{o1UP3G^DUWrsaQhy8O2<>ws^%sAH;?gRloeXY#g=D;Zh<?Mh80=Jaoo33cN zz9Tt;f1PmUb`a<_n4-;|q6@HwGRueqmj+a50xCZNnBvMJ|L5!Tb-VzI(59HgT71Ig z2sgMk%O^lANd~Ss-rt!3hOZebG>L<WhkbnbiL2>(kCR54zo{lM)a1n{U3<`~pL7}U zC1ZC&TYAD^BD7xyFA?^)=K3%Rrzme2=p$WE#&0Jz0Qk&@6LIpU-T`AZ2NTzFYaRo& zZ_!B%@EX;>^8N{nJiX-pX1+yW#JA}r%bGj7K<(^9@^0UqtG@p|d|m^7Gngc4Px(UQ z8H#QAm^Pa>ipntzKPnyE$(ThI5-JJF^HEYJWq>(;xz?Np1o9=kj^cld>rnn1#aWSo zOx-Wad)a%KuZqH!e*WzrErjBDU?7T_xqv7Rfv=@Pi}|E2VeoOSm#}DM2qWw-q5!AT zd<YlCCcOrUf4oCCV-A3d|90G;=K~KYhyLpx*r#~=kPf(q*jZFKgw#~kG@Pw9<D6!y z{B$Rs7A8CwCPMUy{r~sC`VVqI0BC%#F&S+b4DLwwQ4qWH*TMfH$Nq6g1VvZGbJ?=z z^25x12b_wBoI{T!-g3&TJkcF`;xs~Jtir83!eu<7W<2I>JXL9|UFE4+`43?J!e(K@ z>A#S31(BzGq07>dxBdq?=`TW;ctfAbL_XJyq<4)q{g#-Qkh+=o{qFyU9J9cj_`sa6 zf$LvGUwn%-|CX3v^WCbuc)RxhdjAJGQV!378$gbP!}I?_&QCCfIDn=yX8FUvItmQ| z26dDm{%;3>KtIFrWUuqcTV<9pWv(%07By9&|1)9$>KLc|2q$3J7!ZgQ1lni=tWFr2 z8LLIusL{>$f(xk!HhJ7S?+%L>4R!dFU<l!R0nh0N!@fr7Xuphj+G>E$ucpA5E4n@| zgUf;gq`h09w*cJ4zJgmx41+~GY2E~baY=o@g0X3R21Rk{{G!=$X=B2bTS<Us7maVU zm<(xjxUw`11o{NR0e<df42D0!dYudceF=wt1>-(3BIL)-b0k#GC-DjAW1xfLLtfCq z2q6%Fz`p+cL%+-&x~#_#nLM9x<rgrR62yWLMxp{?aVAv03j+w|jPS?W5SI2pFm3`= znSDLWS6K@n#PTt~fDt$u(UHoQu&i-_;5aC=NfWKCY@QcAs`Y{n4iM;K#<eWL+2e+I z*P@EDMhz_(E6248uP4vCn*53&!va-+;LyhOi!uTufVCL+Ux^wPeF4iF){=q2l_0Wo zuyHZQBKWwWTppYZA_IuhlF5UQY84g1Nd#~i{jOG35vvslh7lRPfL%`x115)8UQJ%1 zs%(BW!lI}hm^=?q&=OoZZV>`*r!eZ{gFQB~U~C`N3TCOKFe>D7xz?NrSQQ)~u(Sgv zxn30uFhZ`VjSO-v3YdIcE2IccrUC&Jw2;dKw$ffWoCFGtxS9h_0*LA$v19?Z-=A0@ znxDSxN@kr95Y1g+bH=7^Pv*d7Y$Ne)r-7095HhyKLkXY4NTB#)?LZCEbyZ`e^nG~c z7eWXlBd{$i{RZ~(_deOJOCUf0!doD*8z2(jXv1E<bsE42zTwKjeCrgx%F2O+%7NhZ zWFI96Bt}^dymr-Rk*5p+w_o?=83$kW5dxCoz}BDaLny|`2p<Q=Is&u7V3Yj7SYS%P z-dcb>fDZ;6H{8DFql1lV1=0E{LuBY+v4%llpa$?oYXyO0Rh1!m0AEmPyD|jGd*eV~ zdm=C|;IQD*b}bdimAQaEElc18g9Dskup|d%Bx58d&3^geq+f^ZW57~)hInBAWGEp! zZUhuh42RYM2!yN;%3|iUFgb`cT^11^5NFElj2SQ`WqP_SRV_vkXa_Lw&QGxyoFC{w z;W)tVmGu}n)c8jOW@x7nhX7VK3I<{t=v$9g22_rR0tE%IUjXMGz<Lx$y@0u(p@1!b zzK$!xda}{q-Q*4k#AF9-zCYf6fPRTc2jF=Fln3k*V92#y$^1wFZd@3rG<XeIG$ikD zGg|p?lacO<N(*@BiYf-c?y3nG4U%%z%!rN_!v(epz;b?o!C}#=T1+s288DUlU%Ofq zfk1z5;egU_kgH4aGLqe6zSa>7^b^3cC^oIp)yc>gD1dd6T&?p}2Hs<`vWFmP;8cbO z=#K-S>pHd|GK^PIaTO_7p?2l`f0~xSTCSQT0@qYau>aqt5#H6pEy3ej*Hp`1_&-fc z2!J@tBChpl0NUeP(Ei&X8ctr&C(6km{J&&|-o4MDeTnr+5CoEDygpb0=(;lcl{fx9 zXM(f;Q~RI3>)P5sgx)LX1oN#?T#ZeJDgfdC`6lS~r;w*fkAiPKxzZ6AaCNZ3b@+!v zGNZ2z9HUMKOZItq712O~qJsgE&r;dT$H*81sKVm>5NHBHT38BXF3UVPkx>XGkj(;F z+R2~@z%+n9Kzss8a1vk{PZVdoVgVG@0fqsDKKS~TL4aCOP0p2+aUJNM(3KSUTCzJ} zhIm0<&}+I$-WJHP=AxP1wH;<bAW23*1N?tH74sLSe;vmJApSZeu9_dN@ay=OAlCU` z1mD3cU|$oI#28_~2%KxD)A}kw{v|wwynsdjD++dn%YRrNUImsi|KBkAdnWlS>N?_- zA$R`rT_0AWA6_l;?+73OulO?l5|km=aeF1|N*)lrwEq%-iLNKVCMb*H(*1`30|Wr8 z`bz*N`nPr^1q2$r_UD5bBEuX~4XV%2?vm2~#n&RR{r$^p@%-QM&wxDhkEDNB@&AAG z|8ojZZVw*L&y73ertf6<UsBv>y~ZFBfVh@;qfk)>0LEID@n4k0HnOsYAy%ba5Ya1R zDFZMWXWz(;j)Xvp+K7yT6MU4FnScxm<il}%F$fEsNIR%>P0JD|BMZo&R{>Vs;1dq9 zELtTo`oXt8E&75HK4}=tHKFB>pH~40fS>4C_VIlMGCX*k4BE$qoRtM6Ct4PB;iN$c zvtg4KAzbUp?u7iOqgo*~YgCSdqU%(SkRo6g>=(kJ_4rc*e`ndpwLb4dz>m9NQ2+$C z<(?2S)yD=5MDk$s6^m#!iRAzvlEN3C|C9<3)EQz2dad&+GMvBX$M9Ej#h-+qf&6k8 z^cC39f`J6&``0Iifq$X?Utk6v66kq>1Ngh<;@;u>kfm&egYN`4(gq(SMbO46gQFga zhK(u(#k>ztxAP(XbiJVgPdS8N0gFIG38Tji5jCn1K8w=zXxcBy70I$)c%lkgmMkAS zUoe0xAG7;Du9()^1k$--L8)UfSSGJ67P1bU-$7qMpqmfaAK^ZJ{rNK<i1)R0_zlqA zdw7&B60cvg(q{flx0B;#NZ|&7M8EbDe*4-+1I{3O!IXXTQ`>ES4^Zdeq;y^NC)S%f zgKfGvVz^?2U*1u?#=67HyXem_|Hqd+IbB6{>uR2>=jz{p6{bK>zb7OtZ~Qq0-FZMt z%LwKZm3a%KW8k6zodQWv{nJ-7lQmv`LE+b8ZzQE5atcbys{eV-@afa1Yu?vD`RUW& z7YVP4ue(53FA}a84;Y#n$gC~RwY9Z%EUnDUF_?S|MgoJ8!(fCl7$r_DK5NVNSI&c8 zm`v{@TgUga)bE<=E+U&y<@ohAm?6clhlmS@!^=B;h=Yhq%RLNYZ@!Tmy)>(AIq3PW zO(b-$MO!+hsL5sXB<jcMs<VjcD+kKcIu~tMfd?4k&tEb&H`(g{l#^E==m|ktT(`0L zzTn#|s1X!w=k9h4%i7nvmY;>R(b^)yylkhYwijGhx1XTooY7XZA>{4>l3y-1rmcx! zwI4Tbh<tJ9W?HbxJVs1B+&)LpIXt6<DlvyLv?0!Ka<JX2)5nx6DcWdzlY7BZnLw>v zTsM<hNT1HQ_zAe>H$IEgw{g6yUsBw3K5OZ9p|h}cM?0}`R>zA!NNWqx&@e^voZew> z{0$qYK>+L8+~s>?58bDjBkW_@u&#tmS)S~>d+_XSJ3{ft+XJG{WK~y<)6QIG)5~%} z9<(lGAf@oCEliC?DoNcY?;eCihH9rPwRrK5SCT}Tu7JLxwrt~q;Q3VZ$}e`4gIw=c z#GW|3;Y@P@!%doB6J0jzO{)KN_lVfC=g$te{@3=B7U9qbVp5=Fx_dRjA3k88pq9Pk zYSV;sYCM?@_8Y-<Xrgj-*a(DU&tJ;Mi^$!D(z<@?+eN6Or+{jc|Jw!Y6Q#`x(MF~| z9}&-5hVj9h6CHgV5#98vpg+%D)K=kpyZ2k^f?!E^lf|YTQDbzvrg+vG?Zk^5V~mQ+ zzV@yHM`v-x=p?0s-%&NE(^J*A@dLD_)5AWSx>SU|V*^)TQr2WCYN8~jTv@ic&*YY0 zP_y#Sicu2FYTJL9#|oyCrTJm8#kt6aVLS}C9AU|vD@btW8#f3nM(6jmhGw>LR7Mgj z;0cO~$2Cs+)B9JO3E<y1n;%Ao6cp_2)VIJ54=pJ@Stp7c-5zO-*TeK@UT)|N;X$e? zK#qJ3uWi2ANYS-JTF#&5AKqTgb~*TQ5j~=D`DfBAoQ*|&V4g?BRDZp#s$h9?fyhDH z<A9eaW;tO!!k})PxEw7tYh*Sz6vC_^_+-%irPMh6qTG;tbj|^{h1(=v`%!J!uTJDt zczOFDP^+lK4d4(xd)ZiiSZ?4ro_2Y*ie%F+IS=cA`M|98sW97#Ph1MJCZ}B29jRu{ zd|aM~*LoT*2FtS6jFexvB965BYteR)zU<-qy7nu=E1{zf9CjIMN;ZDCZ5zuA?M>Nr zk{0OcEk5Wxn-w+hW&eUVUxjfmSf}=cBL57}33xs1k!7QjgbE1vxlJcc2-#AdgcgK} z<*mhDw4e3+8Z+9jAzQ^)E2i+YO)ltCOM<wog=iU+Sb|1uH48jv2(r`z)Ja(dH>0)t z+Hh_v_g4&pdbxz|f*#A+79J)odhGfLA?LQ)Rz=Xi)AmlQ>$ZyZYxjCS!Y$7Fj7P@o z{<!6gqpFMIYncwxxqPg=?6fmGXSW=Jv|6bzyzS**VLK_RfWI4p7K$1^Zw5uDaTTLh z``DiS!W)dl0`af*Fg;EOrPFuDZJu9LpB<FZ`nT}r?(W#sqV69eq^6()UMO`Gg@+-# zbw^z0g;T>W=^UyfN1yVbteO)QbXISV@!%g|n_dz`k8}^@r1l8d^v-Q?FK<pDGRR#A zTFQmo)<e$c5-cirPavhpg88bp<Ld3=;Q>KG$R=Z2aqZ^ie6!EC&&=}NrbEnL$?O6| z?^1CmR;3bYg|bf6FGJ78cW@%ow$Cgar<tf_p>s2-!h2@@tA_FcEOqWjSv@Kl{Wv0r zXORJdid8yu)%mElb&t7|Cr*0w!m)`laubKc!$GgwAH#(-cUc$eAu%62<~mk{D`db7 z6^{I~uadsi*&HtJpYEbQz+FEY?-|yLaQ1f#z7?y2vpCd(Tja2l{+P4|H;>y{@{abN zTUs~KoAegUE{uBV)y*xO*{@jGyjFhmz<p{d@>C$jzGArPMu~7iJ7rM+jH-2}R8>uR z{#o;~w%T|pV{67Fnb)0zeOfK@fOo@Qioa0BUG5N%SZK~i9H*y&Y{bex-|Y5?++6lr z%Cq|L$Wu}>GRqnFgq9$*?PD(At`TGT$lkB;-PrWL8F6u;dd;E`f+QjdapQM3-z1Dk zY8q<EbNvZclS*da2RMH;&Hs#3_=j9N3+f8Wt`fjJ8&Afz=7_QpL)^>k{%WYZ`kd>F zX*JEhAg_X8%Vmwb_l+PfA&&gWK{2L76Qh?ae@ru)Uc?YIez+?_lxXyTknOVR_zk5a zvx^N=j!^!qr8Ld3tTk49_C3uJ)M&TPF1K}8uNm?_!N3{Wk0zfVtlf9Ktc*UaxFT%5 zXSFPjO=I+p^P|k6ZT6-E6j9%wJ!5DLTuWsW;pMG@qv|^M()AM@UNnZ~v`c<SNxSz9 zMA%`rrGP7;l<eju{%sm-9$OXbR{SRrmj|WeE<edktkf4(*N%m6XhW+m{&Oph!`92; z)Wu2Cf*<>4Da0o|6y%mi?^qoN@6PZH#OnqeIQkx%a~;01UJH`i^sJT+<J>5x7cAv@ zbU5j#w3#VysldlkTOpHg3ARe67py0F_serhy1)Fv_H%Det%_{@92U5BQlfyEe0}4O z+SS$;;+O5>8)hgwl^}`XS8nj&fV+vlYMyGjZT+HgRlP=QeUC<*&;}a^`zY@zc<?<g zFABMUMa`rd7EcPJ!4=V{%H3s7Gv&fyQ!*EyT{_}n2c}JqO?2sT-DjN_<SGvtq-xt6 zosF$6?7#5x&b>;UP{ehMv52C$tNzdemc4lN#2y*YxJjs;(>0AK=JAmkn5jUrr?r%T z_c#S>I~;cu+^uo3TlYNzAFF!WIANBH#l%ZWH4N#tPt#=7S>0S{CAC>!{(;ocjM~(E z#)d0+@iu5BurB%TVJ8j^%<W-4Z(~rOe&|Frtk64<XL0e)$c9AYUJqPFvafWl^JACw zz4g(iZQ>&)0iz!X=aHQQp>wqqd6E470HR$yJ68X&GybnC<)<MRHA{E-xpowPx?^WL zkkv6)87S(YC7-GkE}uzNe)Zyi6R>1+fbv;gCxx<Q@1p~4`nI{|$c6`fy_)*o3GHnr zb{S;bwRvF81J86tztMwj-x+2Os@64~tPKYRQw_(rP?XKnW2xJ4y7tww?vo}n^gfzb zqeu}q_UDj?(y^z5gJyI@pa5iTlJG0joB8o)SlDJDrIrqZ-H8nwc}3-sQqq~{Wa3cF zWPi6i18vO5p)-%=ewvyQX&s0)*qozEHH3^j$U3Scn@69tFElingxNK`mKWOoBP<)G zuN*tL(umS`&I`-*7P_Ok%1j!tIO&_GUB_@z;_Q$=nGkBNK<}fb(jz^y++EQ>SyNC@ zaUA`p$p>b)G-;r)SMC{)oP)5e%h8cAsPYM0@9inr1gpviw~U(01rQZ$M*6$sjy-rr zVq^Zx&|$uG<$byIhE12c6FFL0#}_$2<96<9aQd7|OGd7@owrB1Y>U&8&w<R!+MI08 zK=B}NDA#YbkgGo09lg83igc54Fmv#xS+k2Z*&u2xFPX4)<|onXGm)K5q9FmJ8rz2E zewoX{+8RRNC{pYNoGoICqgkbCx~o688$8%fRT{1o32)YZf8IQiouR(NF}-mcQo1~A z-P+NFm8-v%FX&_;RgS)Q<I+OGCr&{qwFt}V52{ULrDHT`(K3n2{z1WOTaNX!<PCua zG`<Hp*K~f@>XV^d2Dd5=Je^SIk{=yS)&uTmwj<s>C8{xJuawm~^hePdnG2y+<~OQ$ zmyPNK2Ke_-ZQ5nte0({s4Quem;1c_-w?-D6pThXC10F3V^g=Op2#12UNMTdxZ@m6T zt&NgDm9_gnd#krwkARCH{i{?&Vi)hC6pq7YeAGvstA_7z3wX^vvmv#2krm)2-iSu| zh!2D^JwT5Ut2L8tWwL<Z(#y|CEL^w@d4?-VBC?ROFG0TPcfQ=CaxTZh#(n*X?3@C! z))6ZCOIs9Qzo^8wom+gnzjK#>Z3epqez+(IuZGJfxmsvf(w?hpdpz2BbH^FZ#3jX% zCJ~saC%$M;Kq55~wW_za%3vnK-+$gSeEzPg1hw5u<7LcDN{uP}gBqtw{7_(?HQvMN zRC!U@sUW7qCp?l?#oKzh3DrhBhrjxsY2tDYwKIQ}$?IO*{_E5m;cPv0@ZNf;bPP85 z8R>r~L*w(?5jnB(cK(9^^OO$1B!iSu&u<A4c?z<j)7d5p8^hUFPK#)d(k$at-4XHW zB1yJ~bqsnN>S<wQOsH5=mZ;J5{l4V>cGWmZG2_v<9p_)B#FmoNhFiNuYfn2}OpjyU z>?LfQ5OI*h%wwH@m|FJ{a4{l2BR_wC^XBm<LyE6{Ai=c*mSRvwE$hf?NLu>M40oQi zr)$1ELdAva19W_*rOM_a-tb(yd|_4M2R~kmlnAq&lDdygteSI(1}J4DS;)XjW5T<p zzl*>*?h+d!l{atBQNNrg!Hg|u-7ln^D6kf4sIJtHrTTWdxIbrZfR^adi`652jfw6d z6*vlQr9zFphu{0OjnIC&{m#F7ws0apHyPDnk)heZh66ok@-|g2GT-uhbbDz&@X6S6 zK+tY%uk1MiXl&h+3{BC3Y$d2&x}aVzBaNLbJX@@OaIf9Xnh!n{hk!`(3U7Ipsu{DW zO77$oDK?K#$zdUrbNQ0l4hX)GjO<3A|1?QrAG43C%Wj|zeU~%x>_+O?T`Z9A7y8%t z8>lD<q%2G_v(5QuPTmVUjqq*vu&wW27VK|l31B~*pY8=yQ_oSJM#w9~uf^jNL=DJ% zwED1;VbxI>N6o8e)i(Zec}jYT3hFJASlwCl{(g*a-^kF)nGu($As!K!>n&H2;ZdFS zz~-N~4b{DCYjTEBdS1Ixd?KxuWSrVHp^`H;<P@1jBiOR|mA^6r-^km^Q$@Hw;3Oko z=oVn<X&FE8+6*9lhITW3rC8wL2uqpGHGz^O_cvJ`Pm}ErDiGP|#dOz@J<j2?PwCI- zX$6nIk!au=eYRHwH6w}rtT+`Tp%Hp^8YaM+*%rf*bhKPh6ns$3KR|_6ruPmq!a={w z_ss3{dei#iW`t;QIZ`+t?Yp|OQXe_vYaccFopQvmh)p|sylpYkR&k>9wzY1tzVYSj zfh0HSvtcrJFGt&S-I5&2wV^bA%94q~6s<B{U9ZCgrE$XHy6$x?vb%nr1d_r>?`8Ae zHWWkQy0SEXvUQgADTOC6_;V9f)~uCMasm+5h^K-Li3^O9JA~Vq5~{HL_aBcNm(180 z0wSGBaX_p%+)ivEX2ncAn^EeP1uu&Sd-U^YqSQ)XJoYA-?aRy0Ke<HXm6l~XYj=15 zAiqT0*^vKEdp|0s#4x=CmG1e@^SXYH*Raz=XE(K&QYd|%TH@)c=7n6vCZ}8j*_W-4 zRU&uH36Qr9zI^IhMufO|E-2qkeZ%!DQ$$vcIb>gif`TU=y;`l91$P${tTq}^m+lv= zh4O)+zRxVAEI$47Ny1O||9O*e^|6BJY|k+%1`~+EIAbtc7>p(c6RM@BrDbJl3e@JK z@44c>!uqZM_CzbQi(Q`W+_(C!yr7heNYcy+ENbGUo{R6hPn!{jiHfVp(J4UTCX}fs z*1m6gH$oS^QNtU!_M7*3+FFXM##-Lmoi&;}4w-bvXaad;-4`p;L83BKnOC=ZXxd*p zCaB1hILd3Hn6o3?|CKL=q2*=K;D_$DP8qEw&WpDeM%%Wi9Mra@b`EL8e8mibpjB%` z^J!NG%t4!gr*@+y8?O+D^0()CcnFMl2H&tS*+OUQGK`4cC~9?<i+;DlNr*ow?vX~V zwxmd<1Fja!Sd@4!In?z-Qaim6cl5~beCc|#v!4liGtf#0=DN_nSWfKc+!;~XjlB58 zpQo5=kajh_Nf_`wE$WA0RX(r8>6-1T1fzl}Em*df$AqfCcF-114NF4$WECo8X=8N= zH|P1MAMX{~ha0J9XM$}nn(vw4^|GZ9<JehPG3U)mLC||KwH$7JC#}4pc(JtQvY=J` zSbshbd19+7s5Zm*)-n)!!4S#w@)5ScF0<-rurV6-!_(wMn!XN3NflfoX(*SHyjPT4 zt7k9c^r*_gsV<|8eF(v^K;XT!V3B%c*Ud(Lpy(%37X3W}H8PfPT)44!(2R8=uxbnQ z-t&yBW+q~KaTcvT-+*71HoUX<R=@{0xGdDG#@6HQZhP7oc$eWv&s2&#x%VsejT7Ef zuY1Mn6`l{HiM4W@mre>rD+L8pLsZ$^jAE3c8;SXA`a8wj&PU2%v!4{Z&xczF<#3vj zGNz%BO9f-&1#Oq|W9xQ$WI6R@^=q7zA@to!2M2DxsTzzK<Ff7<p777yz35GHb1)=K zgZnAmuH`i}F@`FHV^l!Ux1Tv{TlE8IK6)7oyY<Ec-^QfraRst$6SBSo?gi&bfxbVX zf0kQWnJ1*yXGSaFrW(nkqgiB+<fkgm3f68eho;VRS$x!rt@$D-Bv3m1eMrzXk?^CN zz>t;Wh5<BHN6Kf-Sdqs^fXzP!vgF7vX-SSY(V;{SI?ks0)Rm{TtGOi#C26C<^5&z? z6XR=dwL3g6>By>fA*|D>+Nr(19Yq0LW?f3=^)<D;rB8^5*XiTK8Y67vKZ>WgDpXo1 zdsav4-AP+fS7T+uc{bt^-@6-ZMOUsOJWS)m*FZfcJTdAf{RTQ%_0tTN<K)Q$HPfS7 zbNk3jpw)k&uo-S7;+0@d!?v!$Hl_=o?<P3p645z63)sEAs!X4vJtoLitW)z;8ia~% zUwtt>XL{SVM=6TRDwMs_rX`1{vsHgyZYQ<Z|JXriN5634urJKJ0X)F!o*3R2&`uuB z^dq!$y=11@8Ea1LH!|TDVlREl5?N`ioW#tlnaq*IuomPMzWoFfI$%IPYeq5|y8ebO z>CPeb<8?W;THWyM%}ZB}q4g&X`g^0AIIr0($Au)|+e!*$a8rC9-vp7cCAQnCjJH$I zy@|u<$M#C_2nOm^_~*i{8L7X{-qX&}K1S{Did=$EbNBIeD3o@_DxORtpTd&$w6?ns zH?#TJu@$t6eULTJ{H@ZeA8-ku{6TnKss}$%=r*xF&KtWICMTD+kcyVwD0!7s0(#s6 z+hhMcc^D<KZ?wJm&LP92SoRM@(^)ziwb<d~*hI`1IPktDalo|H&&S8df0ukNb&mI0 z*13(HHrI}su%!Lt3CV*g(;Dfr5V_vo+iZLaSfIw}XCy6)w?BFQ8G@;?#McR(SHo3! zhS#UP!IdW+1{2L1Y~-mGoFykcdD+f6#+%>ZdZs*UF|^Apu@>eL@oq#W{4wav^+jkR zjem*EZpd9hT7xnHD+K#u-taqT>T;(yPF8#>!EcQoTQAOPq3lD6o_)9@QhJ|fQG~5y zw(L~>zW!ZB7_x<rgCzT5<B(e4XUBl5M^x)d6{*vZCH&1w$1ho=0hGh@Tk;=26n@E< zvWgHaNke>2fbi4HwRLL^wUsY_&R{{*>OT8Q(jw$!q~0>jMpTwSSM_aZt~+QSti<uE zqn|tBSU86w0T~)6Djw9{I%mxvD{)U>bNhG&@2pb|7I>^_@tq`a>XyVCET`<QBdP%L z_FeU|+T2VxAtFYpb4yL5Z!T7HU2oqDy;#oh@AK<Y6JS>FeBLME?dXrsu@JA3Z8YOf zVbh(Q<8^zpIW$P>QnfEnusE+&$<RBcx8%>rb_V{o=6U>rC69;(XXL`JB0GDC9M#Nn zp8CT{C1r!i@RH_lA2uzWE~<$2aD8Lh_t(d5-|Q@E3n;|Q@VNWj&t2f5?x@;)8qK>9 z7563^ZHHQ)w|H&t5u<pXm8)@d!d>LIQ}dm_-k$q_o?_Z&BVDPB3E}LH@LU~iaOG#b zCH^N~5QAU&FmmF26IppgtF>u(ne8?B%g?rJzw3Jwx7fGysEiA(3g@8@7$teN$cDAT z$Nm*{rK)>2k0?m*JP@djm(Y-@2$oV5zEz`cR4(w*s@TM~rYk_P$T~d*jK#DjVqt!A zrV*?`0$o?GJ7W=!UXBO#5_}R|@SlkwpUzkuE$Tuk%?v4<7G;H;cTR1oRz6~%S3-@J zK9ot$rs|P7-*tP3vux-x%a4a7Q0$*3L4F~bc=V|EPd|jLXI5hMwVQ78F;cTH)4WM@ za>~5-Sf~XZbtH>;*6P^gc#>ytzjK0yRC}`jZmphj=B$yzY~eUNITYnZO{>-;T2oSV z$Lm+I;!OyHTgAf}Mlv?P$;T6-tD%qC!(Q3Q_F5;wqK1;VTuKr{V9fEKMN+CuR(C|| z9`U=9L>n{P%usrD#vb=-*Gcbk_v86{M(uh^K^s`04=pq~14hu_8(x_WEC;Swu4PgA zjcL2yDuWF(uM4i9U9K!K-|staFmB+^!L0KsFpxi|px0NBM(n+uNS-Mk($P;TJv~N9 z6!)n=5mWwSy|a-pTq)`Vm1^WY9lS3>nJi+Pd#a{+(^#cWojy%ymFR=jHW(jr|6_WC zW#til3UYx$xn{?ALgz;8bHR=drzx5#G`obE@}V)vBaX|FuW-LMv}n}Ii!{<=gTvOq zsLg)PNh89qb^$&1zH@^6r%>Z0bN(eko0F)flbNJqm$IyilD6WSoU{2v2HCk;p>=jY zgHY*0vxK-k8DE3ek$hii*J~fQiF-ZWEjSZC-)82jH8l3m$$IaU#Y=ivBD{z`KUC#c zD!w(C=N=|jzA&V2@A2t^O31oi&7EiZ;~;@YNHBWn__tp@C%u}!=mn?4QI*!?)Lp(` zTbJP*O;!#^HPamjQu@|pzR}_eaV)YsHaeCwsWH<l1N;yt`XZ2XR15YkT#zJNA3<V) z@<h+JY)MZEX6uZPN;1@G-)#ttbn$do7ZmX*+HeiI<k#LiTdC$OI|u=%<ZPJZj%4;R z2-qP<;>Zuth7>!En>(gXvr1o`hmOeH{c0|LA9fwPp)dDQ$YOpj*3?YbLmij7{vj9# z8(Iy?$0Ep2%^Eg#P#HB|hv?aLVz8F+M3^+NA}>cOH|11jgx5pn=-?q<jnbRt@TyrP zoxQ8QLzMF(`w_1Qx$c%sfF)DxS($*256!xPw}atUDE%XRU48cU*vNLCeqVYk&dz6> z=_SmKp7mTj_Cw{9h4p0FD0<;lDeG4+8KxamBi<w83=$DC&_g1F<zVw1RVo4cpg~5% zPuxK|+}o0}0?|FU$EdlHYHuMYhFj(w?_V@~S!H>8Rk<S)*N!_(C?7xkB>l8#xZ>5F z56@#7%qg`mE4MOH9$u8??^(7Nra9&3)XJed7BL(2vOLmx9|AG+DR}Lea`zx~v){^j zzh)zL*uFno*BRHdJijxZ{-802JvzS&#!al-nXdI6P;IZS?sC;zuchBgJ1*rE&o<4J zN*>J&omfjwBU%c@rf<eT(W{ETxjA{2UR!tRe`oZvQSA3ANb0ntCv_eP5`F(;iCcer zN@&@M6qVWg(87pXuuS*eCbOcVjlr%Aq65{uC0JwcVCWZdHn0*rK{MYLT63x=UJ6UV zgh4SDYvbiQP~p;g^QhF;>3;qZSnhC@825$WNmu*<&Kw2Q{^OB|qAgrxYX4Mw@uFA+ z`dX-6kWnC|(riwOrCV~g#94MHK!RUGksz$}(VDN2DaCQnDmgVVQY3(9E|dr)EIyev ztZN>NE(v8+DsFvD3$hyJuLOgzyu2Iq>~^fgt7N!5tpsW)rnbX*^_Iq8S(PXEDm%u{ zQaE}J=y>>hYHU|b<>+(QS~nu9mhqxX*NDQtODiq5jibglz)Pbg2V+u~(q4`lwS%Cn z(YsF;RP*mH+9;m;C^oh6_YK%gW=)vYdGll_)z_RyiO!d=r!3AUb@adEuTROZ*=2py z^vM|CrZ*zmeG_A8&S4cjHK2KiU(0U1w8&xmbQ#gnocJR02sHP^47AhB*<1R$`J%)* zEzf&1xYE^Zz2MxW(EEqkoSCpSY;?=Vak=6w>Z4Vvoy(JP31MEDX5(X5ZV7RPH`XkH z$y}yCnedYL=Ims><+Q1ky(xSssNYbEF!{X!Js!HXWJV(qv9X)OE*tb@hNz&e&by*7 zWnOz^)G$wicdvqbe0;w&sxAj<l4d!N!A3bNX=dhecXgQPPcl4N-yPKu`Q?tnmA^0^ zr&JuasM}cy-GJK#QsTAFa;i2z)%^@UML%HD6HYE3K_qD$hwnO_pkWwWa}B}l<$2u! zo4uCL(?a{y<<RPcG~y0$m6(9Z{bRDrdvgll?TARcZQUvRg_W|t33Ah}ri--FH(o<z zTAnzxO4LVm?6j31!<dyAqi?SaUf{h5I-G0V;g&6i5)r{p_!nXY^qDp05%LYab-hC> zR4WML(wSod^M#{X;lRD^-)S;FN#_0YjB&Hm8#L{emoGxV^YUrV&p86$)p&?7*qe_h zAy<cg6NS*Vr|5I@w>`ja6R>z73ObrRnzRtJ`;2VSsU4f^xL9r9H}+n2^R`95m>Hqk zS=~8dR_y56FOsvFOZh$9l~y2+u&ZdTF;Xzqd1NDAw`Dy0nBF^8+mX<*WPI?zmXcAW z;bqyVbxk)_K*%tX<dBCqWx%xWMww5`!@U<b;z>LaN@&;oiQ~|m-dv1)gZ`P;R@%1m zc{$1hX?DD~>)J75ml)(^FR;_*RMlWLx3+%}x#@JiX+FGLQ{(Pcah~APf6_q=$LuRX zyA>2)L^m{QPLzJzb{(qs;(||O%7YHoQQ>@-J6;F7r<0!1PLfc*G!Ac1>(ITPnS!O^ zvDxi!ORnZ`OkF7087=X(i%fQon^w*s6y+10t15<DGOtA9yZcutD2|aE^5vWTCckPv zugMg!>8<(^jIYyf#}F*eOY4(U&ZPF!$!`oYkXQzY&OD?V)3IFt(E_d)Xvj~1yVsie zGowrT^-!3K#+!RoA8Ep5b#_Q<xhw1(3l$4&2?XZmGRH);6g5(uPs~L|v<fZy9C6V6 zUb7Z(gw=4+55vR;{ho}*$T~bV@!OA!cxzc>9JZ6&=hq!B4weu0cv&mvHeSa60bR_J zWk4CM!>BdA-!~<<6|GJ6iC}Cztw#l!UfL@7ywtZ$s7IhKcO@#E%g!+ujSr~uroHor zDulye>oY=aJ-%XlUMz>yMS1p{6yL@SQ!cl^N*U%j_*^89XADM=AoR~>bcOxW$+b-2 zWxs=5bGYEJG<U5H<AH`tO72GbCf{x9X7zY7B5G6phUzzO-x5$1LLW;E5bKr4IFFa} zw{GSy9SS&o7a@0=@<uFbz4~Amqm(e7cQO^_%gEk5HXwm`S9zCM|9djh=!uTzQPTjo zQ;*kOspBTp;hf1q#OOVTr_NLYzj9%3-ZFf@e57~j5R`{W8UJ)#h4;BN*5H@hA0?^{ z4I{&KQ#y${Z$lJEyL*(@1pm!mk4v?86@om?^&PwM8P(pWd*U-WyYhJPI@;tuM4*2@ z^?>}(3mV{y84y=}=MjyTmZ^oIsrh>h#{Gklp}~6tbK?&fjFX0@#ydlO494PO@C`nV z7ENZQxToMLbkm-%a-6<#eoW}#bZsne&Yjh`SkhNz5xg*+z(tTpKaE@o4G7^yl-B4T z#I&->nJ87q$3SdEpQm~sYIx2QQ`iS)I~fQ@PY33LS|=|EKlt6NzZ{;}rWB|26yB?v z>HKhZK6#*lJZnhrJCQsWD|^)MbyKs#2H)~smAd85X-nEdNY+?k2pfX9&UtKfE{6Sf z(a3$&kv)OMuZ(WOOUB!uL-|0xlNThaKYng62M8Qd9#ZP3W;W?Hx?;-0jF<USTrJI0 z8=Lg%bzR0wFV^Jm+Ah@VJ!g$O&|-?rFHO1oL^`?Z6ZVp0nT~5R!Io`qG{H2%`DR=k zTgu|RT$A@mbu`-};=S|PmkqdhV|S~`yk#hUVD=w*=Xy6Dvt`cfth$<S@?4w~X`&MJ z(p>A43f+aV$LqX{K0u;u20WD4E%%Bv42q^j`>RZ{*}2bV-P-?rC3q8oUO3t8v}SpH zihsf;^dxYCj#%53eaheN9G!zThSj<vi07Dy&+N7Fq=D`DkK^W$jo@Wb-TYo7>f<Kx zxAF3nyRk-KSUG9nT9Ux8ZzE{Nv-c`Hl`tZLUBjD2T#+tl{S!@#N;gj^)ozIbRj7R} z9^&A9>DGSLwxGO=4fB1RqZPB>hjR6u9;X;6@@zo!h49u{-gr*i*p9dB)~0KGj^sd6 zQTfcw+C@CF#zJjonq%=OPJYWgvWvRI=_SR>?Gyc{e+uXI#Pfr@ngy%KUqX!^>WHR+ z2MJT00zY?u84E57vG|IEH}?E)p%#CmG^W4>e$jP!xQl!tkk(Xj+||@L=Ouk6oTpM< z>y|*=v3t(sY<mv%j$u7#I6pVDY{m2YV8zuYus)jlh{^t57SC_g6TZC>c?X8vKa+F6 zHPs@X(@vQlh)7*jrN-aC3538cdT@ezGpgnwHi@o4ME9a1rQnF#E!7cX!@2F6wGw0M z7))N5Du3h~?H$}@zf$JH@oQ<5$Uu_LEXmG(M$FH9W857r+xAoFd<zmyTUA&?-}1ut zw7-{45Or8{TiM4*=@u=>?&JPN)63;Pn=^DDfo+)-8in5@+1{ZVMsXy$ukdW3w5e=? z)rB=cWcPP9Ibznfy#vM{ia0zsKO1RD)17K~vWhM+Jolo4j*Hmo4m(pJU_Eo_(VA)2 z!)J9{eEqg-o9$x=`+~LhF_*LNn1uqPnHf({-cz&2xPw9#Mw_$1_yfk8yCTBK=MC%c zbxG^YXZBQ<Hl;$VZqC_ueQ%+0<;%7(x9sY_WDckRYc@X+$rAQ$#2=VeA2~|qPRouf z-%IG0t{M{Bn4iy5v+SJ~1dBbtbw`cw-2S3|8V)U{)^D&gwhl`&QnVbyAUT6xtBB7( z?--ZBw=}f;A<dsh-&`menqwVsh^r~cd$;F^S6bSWqUc1$h_0cUTsW|&Xtq~iu{$FU zO0X@I@bvC;lKN>Xo(4p9aCDoVXCyblq*;rMxSI2mY$T~3@aI)JlU>S78gF?h8}F}2 zg{JM8+d?MuN-|H&g0TJ07lK147wcc`a%c^Bxy;Y@rcT<91(ORptMko5582+PyWJ$B zWwfNy+`cHCC-7Dap!d-tFcdGE$WX+f*%6vtmvZg8ieDSWb0qqv!t!%Y#VN_$+)k2h zbZq<>>ju~xpwsD!_D>v*t?)FmV9hkKVswq{1(_S~=is?TfpwwF!1oGxusSk)jbjU* zlL<6h*A;OX^3kS|oDjK);fc8UvOeKGlFDp5W%*C<-Ur*>2AfL9{`+50>u<*_b!&8( zI?gRGCh||!`4S&g)|H?!u@slok3+_u<fB$YI+KYchnzV~?q660fY?-1{dEISM@*10 z2V?Q`q@WAEx)K4sF(Nb=kNDy@3ATU667{7%4-fvVehS7C)>N;l<w8~995&G*#^CO4 zZdjz`s+)f}<S<cLleioBup{CzQbhYmOr%4!?MT_%O-ba=hL^^&MzSBDi<QGoM>jRI zJe82_^LE9vy0y2@X+WHaa2o8K%`eAIbz}1rZHOJ`uG)){g5$9Tqz6x!-s;>dYm4=b zkBRXn!_HQN+-bJ(CRQsI0reZ)L9*1gbiR{PQB8PHr9A6!`zks1Us>O#go1VKi5?p9 z^!C_<RK~g8Y8TwEj?(<Suo#aHE#BT<9dX=Q(4*E5EGQYRu-P3w+1g3i3tK6g`-Y&D zap+6kz4YOdOImweP_qzR%v>vjW^qb;Ru_KkKjr<sVEoR@?GmOEXmO<TM40-#{J4VW zAn?im&YyTJF_xfuAhWjajP&$vB9?pNQaMYi^>S*)ChH0wDi=EQ?5wvNe|(IWrpG!} zZ~W4B+)1erEct$WYzxI;!MY4iZpy7fA$o01S4&z|#^?4dZm++>{MmTVY4Y+Wh+?za zzBAZkQ4do%Fm>sGJeg#{n2wp4=jBXAaT<{yCQvO4x=bO~{W2_nwSIeP`bD?SU4(nm zfS?V9F=@h4ch4nHWgC_&{soFe0yr;c_g8yhTa@*(Zm)FeW)$wtTbs|Zhz|TXE^&C= zias`N3p#7)9L=r<>{{C*cI9L}W$-#uZoMq2oTMCfj%<8<lbS>ET}`v0s26>==7QHt z&(Tn+y>#L_xRq+vkLt#Tr`;w#yBLh*Job7|lAD5EFjoEOEo?lg_h3)mlj$*WJlU$C zvyi<@lx#yOrN>a^6S=iGw)MWYvX1!m^Df&XKK{5WVt#o$(>Iq=LOPeDiMM5s&C)N~ zXC0@??9z?51l2@i*tJ_O6)a=YAD$CT6~^M6_pG}>REuy&CmrQTi5;A9>Y6T;hYK!D znC3q=Y1n$Xrx~~H22ApKaaF0`)AW@YDi|55vT5CY&(q}Q_RQ`ll51TZZDn35EkA6w zsxfBvBb}#)RVL)env?fNh)^rW-_L!+1ZmollxbuKV&44nypYzPW09f>{jAYRSU2nD z+2RDjfX3cCHy2moSw3W#wuMM`cAp)_TI1UtC#h#WnQTi+Q+w5AF*IgkN`064wS5}X z7WsBBFRT8XAw5IcPCOqNojl#KMtz~iSr^EX#xL{X=)YwEvh$j%q=sLVd|wd0Yz@#K zi1Q-ja~>Lz>Y^k)gcq+04<JV8`@?unO3Ljwa$JwrhpDI(<>wWGU?#z7X%)hjid88m zl*wCDn(XbeO@d8ePrhk#_qiMa(!()NVWE9QG!^WF23v;$)1FMA#%kRzhr1WXYz2+> z>9~A5uV0FocCC08Ix@Ln>w+xaFzDa5PtF`~I4cv%a3qKqB;|mizlq=}b~;<=QVXxV z_x#MqZkkY))Y?VQrSa&wP3Yc8W<il|Kf1a4*aVO5*u1IJ+!AHu-!}5-815{gK5%Ez zvRd0wo)s>nW6{BYI;r4H>Z0s&J2ulN^_-5?X&<kc*%i!vwdpnS{-nj>tVAIV)uC+e zNiDP>_Y}KgI$&goUqyojxltKmX`>zft3zL(4ZZ7Q$+nwovP2`k0A^Gb?l>pWLRfdH zeL-X{6sIR!H)vws+RpWGVItXGnDT$mJv>g-Wx&{S_2n>1#(dj;V--)QO*+lH_ag;v zWtVRbqYSnk`z{mG6!iA6jD@xBcCrkbfDhs7M3cKfX4#=%@A<lgimwuZJn{Hx5p(Hv z(&0e=`Ca}+P2DXvq!G=FN(iAm^68|?ZnWy%WB0eO0{C4M;mEB4d#7=xr<++uDEp~r zNb<0X>?E<i0>_0JX0KkvQIhKoY`&=onf<9vOJ_o#6GR7Ma?!O>xkom6@d1zZYv!Bb zhrfS_j9*esx1<Gek?hrau&B&FBFKa{8(8N}JI}?%nDZza)pU5ByC^N^-Z|Ug)@pF4 zDAkR9Q^qd*AflGCTrzn^T0S22fGdpJM*71`akvrfjn);KXPn<McnpT_+g7IUTB9}D zl(hxedVWVEqIx1myOf$X;*Ba-pGHsfNR}@8PNMRLzbR1TTjyqGO^+GjPP(O=wP}QA zw#Ip0o|8r)UuW@UMgjk?Q#knsAM~i+>!P`CLT_%if$JnGnofF_uQBPBJjK?6i_h5> z_k3Z<N0%;V*J<hkuU_Pob0Yzmm<nuS++w8bW58J2p59gD+tnkpAgH@P^7G<|&H5HL zkakym3uiKay!Y6wQg>*I4=c4S5-i9em5-f{vT_vU<IvUp(#5$a2<4hxXqII0h56Qs z+6H%vaFw~xq7|p74_PLyOHenwsb)^9abX!l&%`9nHgAxCRyJDS1l}zsYZ2-i4jUH9 z;ieAKjeB_FT}GY6P}@CYQD`}(Q<aMUY;WIT_ml7=cbg)j$V{qNdWhWF(aA(xLF46+ zGxH;%wZaC|P+y)m&~-BvrZ4fNpsYV{a0*$yR-kAO#go&u0oyafGsLQ3YGcj3VLci{ zbm-;G>sfj}9H&g%{H_?G|BmX;?L2Lm6%$txjW(|2?Vtm^l+WvpNSBGMFef$LDhttM zBbBN$<Wz4B65aXi>Yoz!eT&n@M7j?|8h}Urs@Q`kBl=H5=@bbjrHutf__rBaU#k2V z;o8pdx_}|3bjB_xx=w!Wl=9e)Sv&7`KTyxd;23^<BfHJ8VBluz5gV7JvR-3hlxD3R zER4%*0&??t`NdyO6nlR&XFbw<U2V?qEg#Ynz#>6g(u`02&*M-pVV1%JC)b(_gSRIg zLJfxA6OvxV`pN=1n>?O%weDUPCC_V11$c#|P?uY-F3f@ih+<*+%<TBom@rt}91&{d z&qhu8$4G4|**<&BjL79iHvNbqvO<_^re|)@BvoKDZ7`tRmZfR7aV$IS#l6rFu$pzs zJD>iVmh4LP;@-;fZOzaxmB-7kQAZIUy;n`K=g72C@=&cr<L83x69(mtAKix?9B%0U z(y?}>bIW}qCDfY@PdALd+ryQR6y@z@6^ZN!C<-I4i+c_U8nUyndUF`@P$n&9)2)1m zeWEjhT$O7-t0THzx~hl^x-1}6@E}S3OCd>;W7OnjzKcEQ<W9CNb7Bd;=SzZ-h-T{= ziV(lAH_jR2SjY<G{XnALJBEyWtSL-SJVM{3Ii73NE(n!8eRa{5GGBVHT9oY9GXwv< zqryOEZE};y92Ks0;p%O3>x=5WwuORk5r%D<8yz=?)ovianoueoMLh7;%uC{u^-=6= zF4DJNV-E6Li{WtVTUg=i$kNm~gl{tu<A)RtzI);{a8G7omAM1j_s+7rA@QjwYOPqC z-1odH{k%vk<M{iK82rbk%sSItWi+i>i#RFvJI0L*%nxB6+*SHRuJ0EKj#I*`?%asO z3{L%>YJE?ZZCN3jo8kHr<z?H`S~SA2O_tFgWluxdG?@0whm*Eqit?K>>Yi?+(KR;I z)~cbGr>5H`<N8NWPNn-&j$cI-ITE4DrPK05*ocuV%8%MUs}C8Ijy=4yb2K`BSE#}t z_xcsWtzeV?d4&LE5s=&+@!$9u3=IYYeCa{yhy`4iK0)-(qgeMXK2_OQ$;brfIaL+R znmF&6A9kqDv`8$?Uv4@^&J?$&jie}h_S8;k?grEtjRs4)`BqADDIhy3M!BYRfe+%i z2|Q05_1)_VWA#n@=cmfN=16LOJ=`^B^q8E68&lm^sqSt0L%QtPq<1#5gfn@lmQ&iw z7R>weo!m(Xv!a}B^ksYp71hMUXG6K><D=-$)CzCLaO3OX88RVxY{cCN15KTPc~*AM z-0*i7ySr;vjh3PM>wMp0J0!oe!RQI@)b`~C*Q`@P?OF~xT28cfAwsw2!-5tCRTCQW zieOqI8&R2u;reMvp2i2Y$0(>MV2xUn364ikG&P3tk60BK_D+)umUqug`L(h|ST)-z z?$ykF7yxS`7q_d_(#Uh%od*&4c7A`#s+^gYU51>+R#G0ikLic%Ga~B)A>Z-6>Ug&Z zgYOSaYioxHID{e9+xWfgMEd>gzZ^rIM9!-r$<`mWZM0M4-ijz16w^fQZ~EJsqv|cS z-!}E4cr2G6hur@bc!=NjC6RRUZR-?8x#{O3l?O*F6W$AOXzkssq|n<J<M;F*y_Fpf z)gWl_b@aO7wdxY}vYp{TO!dV5E=h5c8{2cY1zG)Do9jLKhqgrXaLUOw8>=FTmJbys zeXL!#_u!(9y?je669@UdDcuC$Tr){L71d)Z*QZ`#Ji%)i9j>!H?2s)SnRUqsAuX+6 z=`XOT9AB2siDI#+j>Z>uj=10~y0%UX_&#ijHK1}wjo5V8qR%;dwwv7x55-(mHS(HL zlem-3w`fkDJ(C)s3-<U~?@o_&e_8`Mc1sGeR}EB@VeX2V@!|U*zh{edr_NhZdfMD& z#)IJ39WS*<*&+8Fe{hu%21DrR^<3ipnlBr&0*)q;b^1e>dBz(>9?JgVR29SII0vfu z4Zbyw>?}_f8nw*4xqf}UOs1?#wIQJ{rcgmO!u=fAyMO8=NY(am_s4z?J(4q2kaB_f zP?iU0J5KWF@$Ss$Z@sWFWnmNX{6V}REPEo#c!%bMd7eWMzQh4MPTZ5G!uA*)j2qDw z6_L$PjGrUXDCt4#6P$nfXpzz=btB7agzy1dAEQ5kx1)z=Y0ap{$Va0`vk#KiP>S#C zSx#pqy8{l?tZk@1kH`J50B8f3{E7Lg7Auc!=c*H~j%4BqF|snE#GP>W_(A1HNjW(f zCx=#Jk`Cw%?b-f%TT^S@f9LySK;{j8=(6v{zkxUY|D8fla%I8cs+IKio9oOZOL=Um z`9)?oi~r}molVx9H=~mix-8+aj4(1M4O_3LtH)uSbWn?S;Od%uLLNiU&zBC=^k<J+ zQD<D+Cu{OUK@*bBXwAN#wNDzs6>ooR^rjS*dGSr^5{VcIe7`oG*mJe7&8fHL5Y<sy zIkU=tR3V*`sgC5Wf^FCo+^vmAEJ;KVAOT);^S#}Z5YzTdY~`AggFo1bLvuPQjT}~s zTZwqNelwWya80Hs&+>KaSC*5>KCJ!NQEE-T+2>K}i1xc$-Bu3|cX9G2aqA9qn$~5A zN(~bI-F@CQm{W&M(0Xq9h?c1P$WiLl7zwLr&cm^zUNiA%;;>1t)29P-v-i9#HR*@v zHhYqquA0$2p4WC<)ppiD$LL*YE_<-7Ej}7NK5T-p;<K@p{8hr(9E=={VIw={T}$&# z=w@<yG`e!$ZSA_{WR~bLmc(hG;y3rwhX+l1>o|2}u{<=>L#@3lqwChPnjZGiIosm3 z>T<GAJds$SjLiE3otEu;Njvv<Ny=)sHDCbb{=JEnX0r^V;o{<>olLd0?cXB(CMif+ zS5;A0#A&z~$7bXEU;Y#_u3v3uvaxC#k2GI}<2tjpq55dM*0XNvp?t6Xv7RwX`@>j; z`6M1X-Xmvg#1gn45BBTEoNIvHmi4vGePTXeer>bk*Ewl!z4Ujc<@fjPcTlUY><JT& z4{9nF)M4ihEqrF}mWhv;g1&}J^@-X|{i?}Cws*w16?ZtCMpu5}bd-tPPHCm3OBF6{ zk*=vI;<kYi`>E{EnVeP!XN9WlC}kq%TPxAo)+$f2rZifbYm3}<9!Q_q&GBUai_m|M z^#9(e&$&ssjL+A?IJUZdo_w0m|17ScF{E`fw>D!Hs3Qe{1C;tYcTEHY0Dg13ubmqn z101Lg2{Fbo#u#G+001O}c9V{w1G9}J^p6vr_hF5Rr%GDawk8uH9w}b4mYuG@u-g^s zy5=D{P<GqhcH5%d=Y;p&j@8NPybsrk+I^5CygzaxtK(R}vs(m<yDght5~H0yI;^Zh MsB(Y{01gfg4oRE<6#xJL literal 0 HcmV?d00001 diff --git a/dist/assets/leaf3.6228533c.ogg b/dist/assets/leaf3.6228533c.ogg new file mode 100644 index 0000000000000000000000000000000000000000..332945b4717bf04216d6c4de1a2caf2a768a6f32 GIT binary patch literal 17529 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 literal 0 HcmV?d00001 diff --git a/dist/assets/leaf4.72db3634.ogg b/dist/assets/leaf4.72db3634.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ac41361ed3eea05c2c301423180d368b822a3474 GIT binary patch literal 15743 zcmb`ucUY56_bwVl1uTdH(wlUt0qIRZr5CBvrI*ko^s3UO_YNY2A{`992uSZ8sRBX> zRR|Dz_5;4}_xsL1=i2+9^IQ*;nOSSr%-n0;Gn2W3ilwDG=mzMYXZKfz#8sBgI}V9O zjpgd#WMU1ys=#{RaP<KKaTj7=f7W8DT($hqbJY?HC@srz(mmA1{6C)w?7x=y0EIW! zj#iv1PL{N`)+Sol_G#s4dAPxX+`M3ZS{7voH(D?^HzTcuxtqBYE!4`~))vZoWf>p% zd#Nm~^5UhMnA%H8)t72mxBi-ClakiL0^tI3up({8`{8I!5QqQ-ddt9yA7>%Q3X9KX z@koxBy~=fPhbG5|c95EegFF9CXrGx8gFrVy?^*C7bJpZ+28Aq1nIoM(3t1}*=F{SQ zdi_fXukDb@)IRT99>ji-l@a&8&MgoC+H+aDKq9rP#3Y0+h!jYIDV@6M^3$E}JT3VA z@eWTnt-m4<GB-|H7+H`LDZIh*ZCL6q$G1^=Meu}{X=&4K18?Y{5F-7b1n+ttw7^)T zZj+f2Na0?Y4`Izqb^=WOofa+VJupp>Obn4+1yNrG<-iDo%0ByRLcS5+m+Bfyn!w{? zpzUft<?1r!>Z6k!s8{QwQyZu^9cX|KG$sxD=RNjWL|?tvQ>VoOeWn*mTw(q4g#630 z&=>50pyC@Kvnxnw@nWB_#^%W7S=f|Xr&U`ORonGdviDWqyH){V0V-F|XY16w|JQ4w zlW6{bf1g`*KLtGpu<UwA+4YX$r5Zz*6Fbf|!rdUir_a^cJDi@$K%aF%MS)kw`9)8> z;=qC8gMXcH<#rJ0IheBJ9c2%Ih8oA16Q4FzYznG01we6y$p88Ia2+qeMCdXs5^dh& z@<tn9!}1<5OPY-<eeZ8ifI>+2Z`#!1RMdbFe(LJyLZY;>)=-T!=DNb<v}+IA4w9_^ zzGUr9>G+&7oC+P3yO#?4oAY>-hEq~F3e=Gy((yaVi~&9C(NvtmpKpM+I>V`J1$9I~ zE;K%k8D6LH*WN#2QD~Sx*ebLHv<RI^gVf;}0J#&h^qm2`tGfR^e4Yb-GoB{x%=k#_ z6M5T&h%S#Vj@mg2KkhTQn>Cj@BJ!1dp}(pc88giJ<MqsGL7)JF>nQ#=xen#OQJfq5 z>1i)ZRX<N3`&ClhJ}A6d-cBHW4-7;xJ0B3m5%9H4XsM7a1O}hfWrM}5$+N=#G74}i zty#3>ZL({U1SLE5vgQM<_;1JkVHkQyHS%BY&>rRMM~uKb!o#7?E2gQTsqJc~ljJg6 z6KF8)vN+|lI2B<;67;_Z)_<4-0!R~Z&B=I^aBx?;zp@nGUkCrooOeWBF_b+q3<{MD zN~7!p`_EKR&qfGezJ8{pPHZqj>@xP)T%F%wjL&>b(|p3!{AabfUX71V^*@C9OPj?h zm;YkU6-Ay1MXt!k-uxftd}fJU7L25qi)GM>W%5Y03{5Re$wU@@x%0m<$Ldpl@~8Ze zPl%96me54&(A2MWUu=6zH|zhe?|+yh<HP{G0CQeCG5i;EzJn>H0X9{#E1~|*QEUVN z)cGaJe>(sK`W}5x;d&i;t;R8-#y6qHp{XJEe`X9Iop`1+_6z_v0R$ogfz~?!)Cpp9 z5_JihwR?qF_|S%63!)zjUa(}zNT)w3Ch|fo@ccnAEF?x>k1giO4`X~`O=Z>sNyMZa zE(Z><?A-*t2IwXg0{%g25-!<I`yw2SOBN6UzD?&pEQ!k)7|(-Cmk_P?gA^$C&<4ay z$&tlJtI5JZp!Xmg;O}nsa5OR2^K=mCV>C1bj7w}vAdFk+OrZ9a)IVB?nGuRF&%y{J zke3GpJO~D}K{-6eTq1e7LjPzr78p!b-i8%MsxHsrN}zTJ1_-QK;Y51!9G#!QxG7LI z9z<?{nl2zn6k>(}EpW2qW7QzA+(|&-JS>N#jaO5%E{q@7WnqK^0>*?%T?jaD(&XN? zsgm4r6C2j*N!{Y>&U3FizY@rCK$Ycj=n@7cS%DV7Sj-2nOpQviz;Z`*<zR4Cc?Cw; zq!eoje9}a*5Kb;H2bj{8D};~hmXyFrMQ~XIuSWGPQTG!V_SlpKcHKD)=p0^s)%iCK zHS4PuHYJ@v=Y_xoA>issn+R|xrRjhWjL6i6wR2oIoTHl3w3yHBdghOTQNaNLM<)Qu z^{6<27K$Yu<nq_1fX*j%BTC@p>hiz@Z4?WEt+XEwCxrqnuKIwJ0;al1AsoQ=`yC5J z`#pe1)v8+_M0*F=oNv>0rt{*mc8~^i(!xmn30OOlp#)E0q)>dRP9P`WbCqMI3V3wo z7Xo=!R$yCJ{RQmhZ~gOrEQ11rif@9XZh%Mw;!XO65VU{~0;1Kzg%FehYHFVd)INa` z>Hezn@(F5+;I*qdn?f~taOZVhp?UaK9RXk&4s8AD{sdC2tnf*otuxRY3^pwcv<12Z z@YV(F0eUdlq{-&B9wTgAH;gVoO<s->mS_?N26BL2ylxmcQA16>5YP*&=v0#j*1buf zt}_+r7jRg3MW?R1{1se4oh}48!QcQV7_3*ra<39zPFuAF;(WdiSt0<bdnWh5LFrHe z9^4q{Jt-VICm;}V&D5l<>0pZTvW&Tpg@8Cy<6+H)sj4wC=4$A&f<RjUyj$O;Se}_N zf}(MN-7A*}IMf8i12A+_O3MQ%n}!214b&mx)qp7{LxF@6*e`%{4}cz}X+HoLG!no9 zsO!2CAkt0$?k0F3&{IcX^DTdE2K^ZG8KCD4P$95OfaR}oB@ZM8v~gk2WWj5|pydny z7UR|a7Fijuq;!CHuB1``?XHRdX!03X#q9WaDO_Ni0FVm=0EfkE=stx3$^cYae{r=b z0fGM9!~uQ2L7^oh$Vz^f{d$gApzi>eC2!N2UY(2rfCLyP>D4&7v+og+S3UyC0;jTj z!2EFlc3sDoyd3LQR9r>MRj6G#|DPfR7|T_WRODI;0SEmpn%=t_I0QVYdo6|Z!~ZEl z<N?M(O85}*0JSG|p@X+Tw9f=V@2RHCh1=vt-n`AGW5aqc3IfTpULPz0c3pvf<&A&O znc%$t<o>7bI=A+Zp#RD_;X-SaS8daw%0T#kzy>{kAMqrOF#IO*)f{mFSBD#4hkvwu zPW&~%30mZ^bpJ<J5e+O*j4&YbIjZ}GSXmQ*sc^VH0*XM87FPf(7o-sW*ffF)Sj|3h zbdp220ce2v0PzVdg42M?WU4gll?pIXeV`d27=R<L00D9(b@^9TCiS7aVpmq+Yw2D9 z49TK`py!O!g6;C7I!jiL*Er09K(APV8Q}lpsf52Y{p+}=0OPMi;;LwN#b4*Y0;%r* z5(Eri5&K%8D#Z!|THsteoi0FC{$If(c@|jwzouYUy!=Py(N$on3I7d~zh{!armiDS zO&;&B-t}Q6{?XMS|F!@E@JcWHuRu-yI&QB_UD*SIm+oHy(9w10*8(*uT*m(hV1NN& zRDT6PNB`!otbjnn*ZzE%@Yp1uOq==x{T(u<zx-MPw!eRMZ5aM-PY<j!|5*BW6#xGh z|3A9`74+T1`M!=vVfjW*n2qv2=QRf(1B`1=HjR{I2577cN&cuRwVs<hDsNlCCog#g zmKs2lNuKqB_*i-Ql8(ow;VJ%VYEOX`6j%=@@ulQB;E(mfD%Nx%IN7<t3VIb_rA_|P z@{p2MQqyuF#Ec{hD}34{oNr3k3%~FiU;uuk4;c^&0akeMBsp||4?U*<SWbnM^5JAb z3G!gmHW7S?bT0zo<8j@Hx;1L&VMzqFvwR7#3l56m(0Tu<gTH|c@F5ob9|+?v+7tnS z4cQe#XZqWNfk+;1y;6~^C4~$Lp(z9Kg^#K4fx06cLC^KMW21%p%11*eRK62@0M?f~ zpb%g~3kMdUfWJO5`Sh3S|3zltO9GQ1Z~%YPTG~JQHDWnWdH>6U8(G5-(_-k7)WC6s zl2PNTVF_=8wH*CP-d}HMz_%QN5C9QqBtiV7$#$KFypT-=BA)JJ`nPn2o_mtYx)2Vt zZWd;6H4#q$(YG00B(R*D6jeBfgXIc466F!V`5p8T1j2sELx@ZC{KJQPAi?Ld(KkSM z?%tznfBF15Ctc3>&yI?M%o+S3kYq?dL1;(^EjXK;<!K)F`;J>d-k|Q`Y1xL__ng@J z!yN`VQn*qCAKy?u$HEg7Tnb`d_!B^p{#jjP<Eo#l@72Em6n=u9d`U@JS^skk!h1+Y z#|jpblzR;<$G}4iItCU&t@j~T7HfjSqT<h`Uc8c(S5#J2)A-Ld!~6H|uXUdT>HGJ8 zFA}~3oBh>ub&+tTSUUb>l+wz^9s)de)^@taHrBQf3}zC8d5ggWVK8RS$If^x`ycwm z&RQQ}{zU07P>XOk)d~4w=uuId0=sim(_Y1m)}3i-sE&(Pjza4^ffF(aINYaUB35!r zh5UoIjoiV_{t)@nel4CdY8<ut`qN#85n9`J?Wz(N{l<bQF*i46CeV%XxyDBdYTNz` z%?O$EUnR+YjtXO}S&K(IUCkOI+F2KeONZypmWRx9ev=E@?0r^iG>r;Uvr~)CNq5WV z;%&TdXE97c;*9dei69hB+TcKw;*LLI^*26#U(Z?1RFk1J`6W<Jv0&nFOdW8+fK6{q zWb!2ob3{`&Z>U?ZkNH#E;Bz)Iw&-^0xqA9uZIgL?0drY%fm#~cKf5$wCVnhXr>{GM zgZDBnPz>8Gt3iy9N%OVdcCVb0hs&ia32ysSmj@UA`HR8B$#h+v@mLK(@qxlZ{hA)2 zbTXHqm)w)Ay1N-NDC;s9W7yhv=B{mmzKJuM6(=8zx%im*p?AYxffsFK%emL#YZbeo z6x8dSi?4J0W_a!|9yoK|U~uT;3m2ehL3;l#d0-~$w<(mMY1gQCKVv5A!A|cO@6p(! z-~k%YZz|TD8TmZ@6au6KT6Rg)emQ%4eyZ^pem=$K#&+lI<S>8!-O2B?HLsl-fibHZ z8JwXL!4)2tgepeMW$P)gk3!?W2DY<}5{>Sj@)v844BzRKskOGP_EFYNtFs<>6TiVo z{`+pztquy%7Wg4O!3(7F8WHWe%p!|Nm+#V9)Y#PE&XPAe4L#+BY@q2faX4xCCM&jB z(xS1k>7o=lz_rRl#3G}gxLLdQ$8`IqdQFuk3q^=)iK0y*#Fw2NW>?nwLb}B0CCA3N zpF?*c%9E2@!x{7qdGMGe4g_zp%)aZAnL)y(K*J^BGv#se4!s?B?z=h1vpay^%k7Km z^Yx3<`?iYcv*Ph3DasIMaGbaOQktWJ*WK~y&-i8^t4)db1W*6SN7PHhp}C`a%DAP- zIu5&*gr1&@0;NRsjCw93WBiukxAYy_LlP329j-ef#YeN=m?fi<ML&mxlhtTqf$CGn zGt?h0q=mTsr9(YYi=mDobV8akj6)e!ao2P}@pK(M)0+KYB9gvFaqv&4<cmkAoPCp? zd>&*7f7hI<@|^idRIq{cTNcpP!))x2vcEb%`yET7ey?nFK1g_Ml%L<ycru+t!AZ%N zyVzBBaiHVn7Px9&wd}zjE)W{!zhk&WqA$4Ti?jlNlDm=q03J1N)ggaU$a|7^DRyE9 zyR?_V<7xdAtgFAk_q~GL;IkY)cJ4fg|Lp+N{a7RKq($zM+IKaz8H+4Lmy1a&n_V@t zQx#$RHDfDXQwi2?7nMo2!pby|X*Xu;GLf4r0dCR7#LwDWR|%IQ6uda6_Nt#ibccf@ z%I8Y9F5M~L>);<t)ZA5FWC(T(5iAG`fnlZJx`msb@R7;Y1?l(<!WcXvc4ms$>6yy( z4o@o#-GSERPxhoIsYz;^&5K;ttlpBung3N|!~Q!*VRc3B#iO*ID1seFvprVw(d3;o zC_)ai&h_Rc8H!&At9YIu#*Cnwz_jzQCg%(LW^2UuxE)E8)4t5v&lr;W1BTUsQR6J| zmcAl+UCBT=%-@h1w`UlqzBy;%hzAki8aEbiYOq<Ks<uPCKj%$kaXI4M^v+s<re=TK zFhx(Q2h01Sk<tvC_{Zf(YAA1%Vv`qoy9urBkVw-djh|?V_7aOKfs|!IhVDGbfrc8m z^&7D>nx)uqkdffWEXdy#RZ8Y)c3#*uUt}N7^mI5t+8^w$D)LeEBz=?fX!u?;q@+Mj z@=LOHVLpr_9LyJ1QU1mM&(s3O5~*g9c;VRK*3fY7Kjhm3PB=<R2#&l!tn4Ct{M6rF z<mFvD&29A6@|>sl_ILhTVE!XAS1PKwlq=cwc|!GU^E=D;@c!XfRqUDEC;oSTiRi0n zZ}tlOvP&ix!f}51^8F}CRx-fXmtPb!%~C4bn3j2bG%@BE+0-dA*pY*-@hkXA^+w;J ztf!gXe%Ih$i?PMWHi*^5u0(^qhv+SvOPvCGylv%t44uWh)m-(n?I};Gr}kSv|Lj(b zm1_HL&z@}rJ94##6M_0!v6#{-Wpm4pRwm{B>d&V&_jZ#E_Aau;_0fmO^>THer4_b8 z>Bncg)71ki`3;%7l^J+L^1R_#M@6!iS?UNVgilqbieXhw{vOp}!k;yDbY%0gL0`{H z({5pTOMk_hqYX^{_G3&uV?F(>75;nd`yeBcQMbsk3VHDjAN04w9O*^dQ*jA<Z%RM- z!RF>v{%?1Pr$9y_$Mz|#1@lcPlLpb~IAvhJAG5)Xs>%xVEwd}8H~98*C-GUP#LwL$ zXOpc+s-&sy+Fa)&n2WgDkVd{o{m-<@dL??+(}nFUqqEI=Or${Iiai{`zwL1r6|cVF zV>gk9`qH$yObwnH4?m(aDlJTz>C=iPZ}$tQemR>Z?x<9jS+_m(bKX<J73${EYvZ@j z2>{pPt-otCBv>kQgkDI=(tO)Q(dcRQN@~{Nfc}A9hTDAU&c)tnc*DtSNSevQglpWc z_+inWe~|y&k&K|r_Sv1;jP0y9wyv>#HOvAtc|P4o^*ztNn$GKBMCLQ11$gwg$fmxI z2PZg^({q+}(USK5)^OlxEYR~nw8+?W7OG>BO^m#iKXDO0oADEGUhQ>>ldzE!uA!Rs zC_v|@tmv1t5KCL{bFfjVH)YS2PL9EM4G-HoI}8jLBYg9g&k0XEDN_Gf-`>uQigWw* zN|d`O*ti@uA>mX}a&Ihk$t_inuI21}Wx$_(dF-o;Ue}PquA8i{u(z)H*r4cm7nt0Y z#O`a#)QKaLZXx?)-++7`MYKw_1F$kCvIM`X$Zha1<!|OZSE}{(cvM5$Tv+3EL5NcJ zyk%xb=YxLKI>n)XnUDT??|}_>V!dh7oRYz>?Ba;zuOalAQS~uZ{a~yx)S214$R|&9 zEaZh8NdtKoiK<?sm%Uvt&_|2CV}7b1R#Hb7-0u~t&B(YlZ^l2tex5#9)=58pQMFo_ z$jlAbsjW(O!1&ajW-PldEjb^qomy&DBTN%oCiz@X&oeLG1Ce^>+t^0k`Yjk7uJukY zUJbF3rDS9DzF(v7?*|$iHTTEg=IusPDs!A?vpzU1-coy{(YbIAp|*a~SEo6GJeVH$ zQ7Dz}Fn@Sqm1qao1^M2jNL<AtBFGN%eW0^kB3=IDPl>yIGzxBy<hP#nI+qhMOVHkI zOz-7Y*qBV|E19gAdw?h$du(d<uA1~66H_Wj>R#I9J9la_H_s-raBtg#qsd<;+fkUo zsYor<0As(fL6-eJq1_!?nlkuy*Lix>*0VJf6ZmjBn?q~?c{JLFn2uS<%uAKAnB6~w z<f{~KSUMda)aZF^Z5^$2+sZXI@cumej*4GW(@Q(RLFGcJgT|I9pV^QJttfb!+S{Ft zN4cH6doyz$;3H;hF*_MUc42A-$)1fWxpc2`p`qTIYGt3*x4A8(ALct#EMYbMfMWhI z$E}zuV9o+;5%eXc`crTn#;>ajwUcb@4O<U>ns8>rDu9HbO2rMe9^2d;h{+$WeM*%E zs+b_ACN<@`i4e844(zX*oXO73j`75w<z0(fIL&PAs9mXh%{)7ps}l$|*WmPD;x{Gy z#7Wn`Ot#c(OIgwHBfSs(uHtqv|ES)v4JP6|KA6$o=s>Zuxcm6*?q__pKnr!tM&GE( zETK%E;8KsaqQnt<4Q;>eM!Vj?lQqO}=W?@m=XRu+gxP~3rVbnan@RRH3tuLKMxv|p za6EKLj+8N<zdUDEi(YYZ)~XQG4DWAi4trG)2%AJ5|2nTpxXa%qq5EeXuV?{U1Y6Z| zws<J(>0(CGQr(pG`srd019*+|-bC26w7H7F7ge@bWQElUTUHUL^*SkC&nR;hZgM<J z9eVw3PJA#=(7xEW|8{Brj((Ms^X;Fq<2ix_fjt>?fgc!#Vzur-6m)Yw;%Z18Yk-=G z`hrDo)q;NgLRMrDXZT%oC@I8REOSDq0}krzrhU@Q<nCu#pB9beR)`XZ^V(TDBc3Vq zZ&p^a@#Vg2+}5UI?)#a`WS~7YO42m)=D~>7;t3tX!g%3fWu~v6Wd!mdO)SWP(HEce zXS4emWpEZ-<bc&A*saP|*r4~xySb5p8ft|hx$e;z>d+EpWCpYgZKT+!Qj*(*jLeWu zL=UKlC^O^GC+Mj!R~cD`Pio*lB@At!q_w{_rZHQc4c93O{V?#1yy0EF%!+(OhY-&$ z4JS_Vg0xQ-cWcNR^77!fvCdgyS}rz~&6l*h*e!j^D-r!ljy$#&R_~fMw`rr`X+6Fh zdP<(pb0&9?M~Io=37Q4Z{$@z3gT&TL7YW8O@9m`o1`T41m%cxm!YM3_cAz5=Aez}W ztEh-AZO7pAA4?k3?}{~;YN~cNpqMtO<IM+uvpK;;v;&`z{)Ww1`MmlpCkp*pmv=#} zVSEg&GRz(`>QhCWXx$Ytjo&Qi;xs?S+4h)eJvOdk^7^Aw6m_;?uO(4VNp({<PGDq= zeAO*};$!XQCy$oNtT-rqIUy&of>6CMZ-Ebe!ms1VjFKZQ$i^ny*(LPz36EAe&Oq+V zsD4me*hXN7oz}EKuoqQ65xK}H<K&yw98w6G72!9Wv|qXmavj!fX!r$39Bu5|IL&?e z8he4UlQt_YW0vG}WUD}%&4|eSj;MXq=_%42t$Rb&>UW=8!pSEq9@2>WH@j+NfHPz7 z+8}S4U%B>W)+(6<x~run@o40?3i+KnlkM%9PlHkDh@@h!9_~7lt=5Dbp-i>SCv0Jj z+N~8&E3E^+Wkl5ZP4N%id<6n6s8eLhyuZ)%f)GLR5N&!|8}TzfZ(#CM)Ie*T#qmMf z=8~_I`S4!PBm28loC8aov+ra^WFtHnj4JC&wnOzMzo#qWF3yuMiQ#r&8h$y<R%G0d ztrb_X&tOfgCG9D+Xe+h4=al2%dVg%~*c6>TpyKmYH%eE=23g=1=YcA+;oY53c@&hu zt)F_{>Gbol@MKe3`(;Llh4s^tXN76v-n{SX*N@Vp3bgQ*1vK5FIG5Ak%Jn=_9yt;f zpI`LROI~u;*$XqxqhQF07Y>I{SD~f5Ic$UI^OmYDwKuI&g=4qWgdTMF!Ml}|EqPs> zOwvZ~^p|j(q?d;W!1h=)xE1?MmBxaf=hJVl$$d?;%cS;ot2xj9(FfLI!M82pE!M`b zuA3lT8==%wM;kA%Ya9(|^^h(~eY`)?>s_O#6zb%I$~X{qO5B)x1JmJxzhxO%(wa<2 z%{a(8HhdJkSiO{ljVL+bD^j4kJk@p^Ci89fp2-g>>yvP4fS4yN8??Zl_S7|RV%kg` z8c5ZPNv)!Ns_<RE%r{0BmF=QDRs35ijp$*wm8(w#?Kj7CiwIDjGY?^PF1Y!>?C2c! zH#N@CohgWve5eSwj^)eu((~eao)H;FFomuSBYqui`@pr~vWh;=w4FFF2WE?rL(zPe zH9<^@lS+Dt<3Td);t_XPHY%R)lAPz|Me{&m&l~%xvwq0}PZsje$<<?r?^asSPx>cC z9E{35=bIW8j>Qf>rDf<=9H<jj#E~Qiw($mzE=1g{7o@*LiSFtAR{c?wzo)fD5c^Y^ z3j5A`%_V8j-z$#i+}Af8*H;`@zoJ;FB_^cAU<ORyni?4zKy0jl`;A5?2L}wM1B0=~ zVC)~?yvuRpCO7C$PSzqiFPiJM6TiMVQ51{5qp{1-Yq)ThJymj+3EKFnc*S`=;&jRW zq$zg4FN}Yp%P(t|=Zr0DR-1o2BWW?pt|iN8Lv)}+)Xs=2dBexjQFrLL$S+=JX7sCr zQK_eRHD*6aMgae8m?o)X;$Y1hvE*Ba5E9SSMzmZ)h0RWogk9z_gU&VUc^t%1vpT;0 znHScsS(U-_dCg>j>|Ve1GxN-1)=DOfU@A2R5kW~^cZ*qJ_(=o7!K@CcQ^+~zq_hka z4(c?Zm8xiWgS6Ot{h&&0Wida_)VBXM-bBwgAIHQb%lkD9wNG~EIXuAqX%!jHBd#W6 z(>^9h@wD^@HeF27m0P2^CF-_Ak%P1C(%q%-sGkLK)FC@~47Yv!Up-*D@Bc0G))cI6 zIJ{qH1=-9elaMoGw+S`8gbY<nJX}gJdzM$(G+B1^)_6^3@k#tpUKT?tn~YMM$N{Nl zM~uyGPk-0NZ$!%R+`}J!YmF%PQ<a5p)LE`w5sDD==4Mb8BgBCGNnTH;Sxk6Sgiq)Z zP4e*PB<KTaeI-XY&WkFCn<TtBnv*}I)FU>wvvw^$CPbwao<l+#<z9yS<JxigZToFP zH^rqyIv(pXGhFa_b~PAvem>LtWl}emeEC64=c~@R`Nv`T(h--FH6mUWex;tq^$pl& z(Z*K}Vi5`z6r3kdo6g>iAr$*p{*<-O4-LJd&l{rN10HCohWq7+sipC&u_da;bfv1x z?4{OD^{tgezgeq6Vuc00`t-45QN7KhxH`B1#vyFGVZIa6UlA7By1YUX^Tf?kr6Cpv z8)7<laWYWnqLfB0OoiH6NhmW?m8OnKzwNKWTjXMBvc9d?d=OJy^XvRI*-tWt)2872 z(PlKm=5_9Bk$7%Jbs%A4)(&A}$CjYAV3IB3MsS(N5yHnaf)-YJ;~^-#^#wU;H^cqC zgBl4W=W^*-R0FEDt}(SsSfwMpix=a|JGkRspx0TSViv$aSn_mJUM22sse?E=f~!>8 z=8}6<f<pR4nmQ*q?`uVETHKv_?g{S`@~wL7rar}C6xa?2#Ly$p&8;X$N;$8zRN7|0 zyF$eVmERUPOI1ASwXoJ#G2AknuXp0HG~7NGB0ovo)wlaf+2%~y(z07AK3M9^wO1)I zr?GvEm$KS`5%BfC7`NuXus<rMGZ)KC_DW_74`{s^kZ#Nse)H{?=Q-EI!IFEsOz8s- z)Dn8SO^+QSzba=1+}&+W_&R3wjU%#;4x-AI?h_Q4kz2CS=dXyNidk7ad0jbm{*u>_ zvhk+cT7|FHZ=v;?G1r3=ijubR$<$K?kl9Eh3rIHlY-;Qn^2)yI4UPV|;Yr?d(nZnq zmu>Y3jx`m9Mr;T7cv7jpuL+GNxUW`0n&SG5Ie0$2YsA&`&I39!q?4QKR8Cx-#AMi2 z!XcmZJx~`peM4_o%CNs-DPs9NdV?26LFl_z<0Iw@F-}9|DP;tw`fmsO2~oQ5=$D_H zoutM2ZIxip=fUs<E%1wo=Xn(h`6XVK@2Q(E<}o2e3;W0NWfN!mdfWy>#8c<K9V0u_ zQ-YtJCt!tN5Zq+4uG9!8l0mOJ`0A%{b<K|$;q7l?s_$#ND<fwQIl*)i6mqOoY5r)R zTXmWfgkWDKFY<lW!{gHVDg%}t*_eVEdza#p?`1z_ed<-3(`~i~_USN5%#X01F@|B! z5^20}>h}BLIYE4uC91UD@HLp^2y@z*l($RMTimx&u@=oFelqdYW1ql|#LqBdYhGn4 zLYi%W)kePXgF~m3n8JJi)=t~`56|7b2nR0D9R(x&oYQPwEz|1ucj{L1;!h0;?{<UC zIPMaISZeQ|?Vk;aI=4Ev7M2zPcPd5;4q2tPV}$wV(KYqfvqyP;=lkEx^h@s*2VHO= z=7<_RWA2z>E(O|NJ_-yKgeb!Vs`roFJBbZcNUYd0q?MNprEBiS-mvf#H8Q4v7lrc~ zfV>%fZsWFzyxiCoQF2R<NZ&0*96JixdZ2czX&ii`B^FugW>m5srw;fwEYEpma+0&P zh-!s2efSZnIqPy#RiBpLNy6@Q|FEXnr))uD&<6RjKj!mz;q>}ty6)}L<;H+|G~o+6 zJkYmQ7A9;}Zp`KxaTcqq{4AC0f;ro#;Ihk$)Ajk48f_!afl{$^C)*kYqqROyZTmFA ztti4>7P}LVqKzJ`lG3D=OtlJS`|k_M74Jqf-#tooWZw>fhZ&KMOL%&;5jx^+43{h} zHuL^z2JI&h2Hl_p9XHqe)~{UNIjq`9`&i{q8GNoOvEiMpa|+{EGIZZ>$h<&8#q3@k z*wi?G=GZ+#`|0Y^RP{ae3G1pKYS-uTszFyO%VAEpSTFxvQkI2vtXMbgs8n>Ei;hoZ zJs6T$kl=4}@$TBIsa$ch#CYzGKJyAQXi?AFYi{ayIpxnBg2oJ-tS-H0IxIWQ*jF<( zL)D9(tiWkFeLW79<;Cqbht>|e$hS+$bXpQ?D%T7ze5ppr)RUJ7td>{W!%$hgBGrQV zeQ`3g9#nkl?b*t^cEQ^7vPSnK6RYxi^SVO@rMs1Ra;9<yzR9V4GPf#ro2{71IOyB4 zmPkQIapN$rllRKJA;ar{=&gvE<Z6i?kWdDb*?wGFi?93fMFgpfj@Wt2(W*Khyijmf zUcqMyx4=(G!On2yEq~f4VNm-ricsG(8X=8+n=#gk>NbDqXUv<+LUf7$#?;+WT)Ba& z<_m(5Cp2sdE<>=~KIGZViS&$QK{J*BmA};IWoyenGKZZl*!yn0=s5T7*8|PU;vG3d zluU0=yObClZMFH47$fAtLqk7L%?)eiy+~{mzIP8<IZ>bbFQZ-CHV_uoZV}T9cFmV8 zJ8NN9+BH76oh=Vn$9x;P`1F#MjgLQ?oR6J#Y*u|#>7zn7lSw-JJyTkN)*Q}0wRW@X zP7-$;h(st!p`3Wui9=fuZjhVZTtgPHSp$c|QM}u(AE?sr8Hby^oj3dP5jHQVf9jmG zxsu5e)E;e%D`x447H?hTVWP*#)=Esd)?|!{R&-4V4iXiJ(Nx1SErQov+LRyR5JzmK z$8@7~I(qsz;#YG9M$>I}J3Rd>^G>#o@q)h@tSo&0O&@f5HZ4Kw<s?*6O+cO0xBG?v z-0fMj6qA=9RQNKxVA?{r%!gu>eX6orsQrT~RzL^n)}17Swg60DoYBQ$D>|(DeE4wS zY;pIjOvMp0bn^6Peak6~bCt_W2vHU`WxXR@q0W416IilmteN=gTbmXP=LLJd!SCaT zHIEiU(-|i+aG^U7c9aL5XdP!~X?J?uKIfI4PtFz%6Z;f$-D3oqA-&%WJ{FXE))zdg zb@s;BMb?;wmB#Odae;5|gE_U>Bni(M!|J5QB(dK(lYzRfXeB)_nf0m{Kdb$6gH0aR zH&y-_D9Um-GuUz{O4qew*<(;q`~`NqEb$S&RWiP05qtk=uQsC@QHnFIjUA08I^nGv ztJd~B!1ve^|1f7Tqf7v`h#7Up_e0OG^f`!k9#hh!HXXe=dR5<K;nAVl%z9`ewD2bO z+h*^!aJlBswf$cw)cP|&^fnXkl47lW`=NVxD2&F`uRtR^Osk5q$U(I=tt$?`{wFDq zVzLKIIA8?}q=-%R$M+t>bcbTCiTg{~E@g#ze%dDY990z6vS;~N#$`d-${YKOH2iO< zv4#scp<gB0Ld-h7n|O;@izlCtd*aMyQXYRp$4cKBYJ!qxEaaKp<~J7_qm+FV{9@DS zLSgSUI<zqQqBzv<Oh<97q+aGo!#7jK!L2W8%{>xUpS1=n&J&JUc?VHYLI`qxK{cN2 zn0JIoyY8jG%qTk*s4N0cAz@{F+cT%hPs+Mne|UB;<{K2c*fmu2jg2RzWm2m&piM=V z+%F<w(i^7@b`b3<{oLEkOLnuZT(1#h)<xUrCnx#-doA6q8Hffq>9DTC2tMzlqR@}t z&}GXCkdngNEgPnYjPkm1u}S%ow~D(fOq2$L$u5$WBH31{x^Q@F$OuIkQo)3>?Ey2# z2-wH!@xvS+KO1EwoH3**S-^<(>UpQP2#!e7t<_(uveQ$!_m6CjE<7HT#R+w&hkmNm z<6<~B{aDEK6x?(%@Gi-53Lg9OcXOxR@bJ^dgC69aIB^wsHT83HFueb5=8@vO{1-hv z+pcO1|HbEMtKSW0ZK*!?Dz9zhg5%s>@89)9rx*mNWIO**wjymED_`!?XOg*P)M&^X zo|d4zG5_RT>8$X0^URLKwEGjEZ<kdtJBopRS2WgjkzL1Zg_R9)Qt_@#wb}_cR_F!J zSEBtDFY9)TN2uq`CM*;JXA@#0vz~O-VmxM5xIfEWIVzb%ySm$-_I+R1(J2X}z=))t z-}ZApF^9&r96kG;^MUW8`sD3`2YKT<^jI6mN<7G<TWfDD18q1DQ(z@bM4Dfwc<pvM z6vJaaC2`<;X1PzjS-nLM#VUyUy=C;9UIuY+vt)*IaZ#Y9%<E_VTT?GRe%I56U!f>} zjD1>wv_7F%Fy%>?K?8DTjRPk9;eH~6d;Kr9UhEQOwDs)A8<+7ba#&_KM86uqQ?sw` zqpU2akkrhmjtXa*A*3C6P!MWMU#P&`Izypgz3C(I=k1~)O1xbn4K=todXaKJj7=eG ztfyzhv;K3h+YYmR^PL@|2#s2Y3}Yr{Yn#=c)>iqM3WOum1Amy7EtQE>w_qV1IFgHP zv!aG3&OX_Vk5e@L=D<bz_<Xuxz56DeN=!){IXmBy4ZCqpVi{+WSnk~iRA{13$1`z- zk_SQT97x(^*fwn(cG&Hy{Ixm=+lgG~kU)B5K$Y@Q9IEaI^6mEL#9O*+Lime{1LV&j zQ)!I6kp~Q68GWinDb!>+8~L#oP4}!ZmEzyrpYz(<7Ftu~H8|LDe54BHb*gzl5m9+e zKbLD7yvWiADccQ(LrJ51EW~jylB00<IlNOD$em?DT@2wVDVwyF`#g+R(4l6%gwFLw zqvMh)UZr@^%j9?#uUpz3ZrXiH`AkES2})%_0k<5rmNxgA#3^Kc?p8c)X*k~`K`(hZ zCQHbxr`}nH;+*up6SkV|b$CuwqU<{O=UmlKa6!K)f+CnCbdO`sjqIBTRjGKsu9q*D zw&Vfn3j5)Y{i)lZ=cm6IK!)r~G`UhAS~j|p_wG->(W^p@LMe>~eI_^#6`O><RuB4m zag0u`R6Tk{CBo3=^*U>9d@fGF(gUykgRtaw^_Ek!=Yql+;Ye9cOLc$c{;`D)@e7=G ze<2&Ez(FCTQL|&+&x^Cs$QpOzwBVeTjIOCj6Y2@*g}sX>jrEKJdsjvfOb`mD6O@UY zbn2fb9U5GFZQ5Iluu-*=(b|79-9tkKOEBiX0lJK*$HG1ay`@PuUo0EkQ3;dOX<r%s zu8!cHuPWlyHPX-EZQq`}kh>u=FHJ^1@b06zn*(&A!o$5h2%Vl;EVfB9jSS}bN$q8@ zXv{3?>XzDd^rOo;qQPUt+L1|A@flmIzl5^dJsZsN%Gq!Jth^+Pn&6g!vn_A*n|klT zwMe5$vO4<;n$o!~jR?%tGv_Bkoh3+k2fiV5<n6l5wEWHx!r8}DkLMQ$vV9)4FCl-I z{;tg!cHr9?nKP8KonZDibVbr;b}ZGNF^OA)ql~IZ?aAtieDyOG>!)YT8w7iU2iCu@ z*9hBGy2sU)EBe)6js*uB{H$ZMip-zkYTHy|i9DFKq&&r3EMyRt<1xzG7vgQVYZ-}y z4eSR?xcSIfs>*%S`Ms5BOfch?t4GNn^cv<`Ryps+-}q&g6Yn=*Sh_*@wa;R1Le-)G zV_ujsr5l=WE&4|m0@V}>j#8zKcSx)hNHC&XEz2L8qf9>PU(s#&lOL6EBVvSMAoYd8 z`?1^2e)r%x6X|1ti<9xQlwbL|Xk`h1&I_fVOpr2VsQ_2NVMW;kwM?jsA-gwA{u$!Z zrq;EKZIvR=>>e@oEZla@AvI=QKh^WgEDzoB8z%D+-_fnpLUwz7Pb=^elHlP_I`nUs z>hnFPy}dX#-?re^Ma5Zsxsl;)$M{3sxOlq0ObLnc=y=W~E_+F?CLEBzBjSMAZ>Len z8m7lyi9q%k7g}1$fLE(w`$(%_%IV_am6jNWyvM9jc|EGL;`##Y4kz=?@G?Pfu0bYC za#%BKC^lYJXz<b$>c*|_8v!3<R>2=#U%kP*zKFV6uJ}I}QNT}@K#S^FNCFJT0D}Sk zb4Lz?p?r;nh1DFlB6NrUjD_s2SUe@uP`yCfAZnA5g6><2R+gZfyp`_M%F&<j$&rL3 zq~+{<Hf1u>I{MgV$YDmDDuZKQ&JeoRy_fbQ4cI&TwN~FP<^0LNc;&ery_9(-H^1M| z>ERh|%+2X7wlf+kG;M8ll(4m=nFd>xbWOxBtvv6D88H1U(&HQbqtI+Q^T(YNJ5z-e zQy)@g2sdd;-r-hW=WTk_$m?|J*s;#N7i}WUI%%XD!a-v}<SGc&TA@@yF4FqQd+Igb zwJWi`d+*yQza_wiBEQ~!Tsmj3lQlQWC|<(vAwU`sd_W(pbDW(ktzAFj#tn(tC6$i) zfvY001cuV&^}U8q^-#uG*|>NtG=yQLO($9`F3Bq7Mpaagr|WUlI4yRTu^&jvVSUH< zJ1~|lESQVfV5~oRYd1b5r<vv}CXuLn+A+1Su|M*Ihm6EXIN5%Bl`hSbzw(z;CyR5e zwXJvDW|L!FeV9@GWQPNpo5a`cuk~sBlWb#8I;JJ?@2#`EgShi!`g?<1Uf0hNo$ARr z*uyiLrDx{&_oG_rp}x?w_PuQ+Ui;KW`VKkmTq&GuG4Jc8{TrP+BY1XbJ6wi1*1JY@ zNzkoTiDtWBNYf5NFL(BpQ}6ZYX5ZzK<^J28Q@+#5@Lu1-%8wxf`43j^u7O$l7uRgW zlL}Br>A4Pb#o>bMT$^wGW=PoTUT_=p#)vUhD&Owfnjh-@aOTX*N73T9IH1%2ySwX7 zhZfTc`}E5(_Mf6@KBps1<Uht8r1r|hR31u=xfUHbZ(8QEWs%Mz8cXgr$I%xqd|>z- zzW0gi$S@HZi^dKck~p6hL)jY$AWlbMhEEg_GiAm8TFZ`x_SCabHwc@Lr~ywVL@ny~ zPNff3xF5fg;OiNG^Z7@-T_xIjq3sEiamt;+ncFz@t%aEfZBIxN7D%gXy}J^@B})BW z*~4QaiM>mg>3IBo?VeChK_SJBaZ$M}rCI?!d0U%x|A<UeD%~iGtlHfWTTu>~*vXY& zETk_|k$-GYTFq+}4&S_5RGwedlA*KEf%6gj?U(!dfc4XJ{lURoq(9znpTG2k@QNAo zy>5K@TkuSajV6Ptt24`;(Y9@1usfymp0n`u2~(b1zZdG6E|{`7BKOFSFT6dbgw05J zgJeu=t{S|2aA0ikLy1QH%?Oi^_7`$V+J%7?O6)2DH&1?L+c{yb@w+ZuGIpK%H2vA^ zBC?=qN2S*%T%&xRwd@7?2v-c@jEC@3BTwj&@%q>D6PG-Z_GVGRae0p2e*G~&+*o0q z*=C{<b9<G91dsV)X|0+Tql35&gCLcT!rZUC0ueRJ$)h%9BLm2>yLZt{Q;!!4RW+>@ z$5D3F9>unmZ@7f5N88ezOrh+$b*Jd1z;y1Sr{5741=)4;oa{Hh9)6<z+(4zhr<hS^ zs!Nq{vD>^;<es^8-#Q<asb}aHao?-hia*F-Oaw|oQUd2^(Y6no)gk!`>YC|m)Z=by z?vuIHdzRltL6REhP6+SH&*IusA&&O>N*us{q1z8dLi<gGsuG0gZw>0=C;m2H`y=-! zIpp(WF>#dhkXuq+5rft6uN#K`{@u3x(x5kU<4yc&CQ=QsUG$TRtgh5{SxEUhWXDrH zG@QY8MF#mwow=sXg8M|DQV4Ib+4}L6jKm9-W%zGvK2uK~_?uI%4abX<%P?oV6gO{S zurBh>Xf;>Sr0-Exnzv(a>cPm^ud-6+RB=vY1vVe(T(@PPoP^@sVoAez6uUK9p@$RZ ziyTS9P_V&czk^q)(o)OM>!GDcc+lien%s}>WOti{D9JQVhuQlMzSfCnZ5atr2#wKt z%<~U7yMTAT%4JaMyZpcxHX|SXQ5{fEw#D><S~(#j=Va>%>pOL^E*#S%^JX7cp4<k0 zk)_mr)ST^v6^eb=b&gOIM<|-SUV=K~{8#UC)Vi0=H(LJO6vO*za%5Q&dgt{iA(min z(1B517t=>s`~u~IS2w3_xV-J_d|RxN-uFlS-GuR_>G#XBclJmqKLLCHeDlWWz~-oJ z-)3Z@`)dA{BJ=EH@6F;@eB>9t?r^KVE&E!IgeS8GwPsc~3jInB(2H}<&xdNx-IVBF zP|&Hqz3*<?*8rWi^C4Us)0DiVyP+99sn^kEhN<A_bi~zg$}{1gX=<%3uC0kLef7@a zvB;$6rvi567Na>T1@h)P3qeCnqHLAijY7BmNo2BS_>&|QLSnEZVb^=XzC)-6&RDOk z>$!8$Shk<RF!gRDb?!yR_Dr(Dt6-I{FDJV?7Yv_ZYuJ41n$pOo&gxtisAz<y_J$go zD)}mUJ<v)Epn0jY5t??1o`8g83n{OF#l7P`*3dG5e4%My&hX`Q;uPMKM@#p#H}~;m z+-sBR`*3n#n`(?Yuq|t^5afBZphK8d8YNQsW7BPmTwuFhWI&_K*?Y57b9^VH+HR=3 zG$!NWKqVpdPmjd~%8UU%A->YxpK!K&2@nKQ?({`BGvTc#B8aHRXLN03L2e7^4-d9} zy37I>h^wtQZ6cur^yB;EAtGU`&vYkr4{<)RrIgGbB{Np!ouyU9#d+{-OQRSjkmz)Q z4bxJM8s2BjFowiz+;{FMAFnpPjDF@qMddraZ!5H+2FH^&66fWTsNC=uQSQg<w!-Wd zzt24+&bcl2%qw;ujLEv_V1ZO!pPqn^%k2Uat=)8HZF0f+Lr^Z$MYY_w<+^zbm&CEq z`{j%yM}@NA66-VE+RoZt#P#BSp67S?_XX{6A7-qJ8AKkXMmG@i(CBRKDE#W~ISCt> zCXVXe_V%S(L@M5xS&v%Ay43S}b8;sq3R9!);1=hWkB&>btanZvo%H+?o7L#Ecu}Gh zxfo@O>0q?(?}GNnG<K$Rsoz=L_J(<kmn3yAuQ~}fRX9o)TQNwFbdHR+jd2Cn$T<3) z!ad7MT-$|C6YpQBCm5j<;}Drtem!qvA{o9a?U47aggPVlXdgdaUR0-lKp(ogDx;&2 z#?>4{*d%fOS+tj$8|@A!-f5YtY|?%jCstKmq!%;2gUP5umk|^;9FpM;uj9V`c6Jkp zjE1rd3hM74W}-o+;RL4PSfKZj#MwtRe1x;Lt@*t^_UISk{!Ez{=?GQFhDs^Ah1c=b k<=ZVRk`3ig(He}b`Jm^_VJb8edsXFgj^WR5;^X80FZxfkmjD0& literal 0 HcmV?d00001 diff --git a/dist/assets/mc-font.c5bcd562.otf b/dist/assets/mc-font.c5bcd562.otf new file mode 100644 index 0000000000000000000000000000000000000000..54f08ad42ae2c7e9eb4d46c7b621544e32cfc9a2 GIT binary patch literal 11016 zcmb_i33yZ2l|JuDmhAhCuziu6X>t?U2tUGN_OJ(m*<u1H2D1dQ7-O)(TfML*L~KDI zNC;bqLlUwZ6FO}^G9@%^)oq%zGcE0;ZH5*mZ8I%j>h^VJ(nzjEJ^y)<X(s7(zI@+E z-+Q|6zPp@zmj9f4j}|UoypRNi$w9ud*|U9LI?$6vlzoKgjt}Q7s+>U@;WH$Kn^?GL z#OPYzBQ7E>56^3=8>*TI{xOv#LKkv0*49+5^Xv(tOt0X&s}>b*;rJ@b@8R;-HneSB z(TNfbju7c>4OLs4=_zinW#i^*tZJy)_RrtBhUaFCcci(gwXOFejRrk<CZA0U=$U@3 z=-lf5Q~pQ}$92@xPfA=T|MJ^A!Qs>2z_WvNuEhs^9M^j%;Jz16>m2Ek>{prFQ$(Nx zcXH}?X-BZ2Z2h3V4A1k@zuGDqtqtSWyw=Re(O2N#%6Ur{P>g&f>m5GK^(JV06V*2V zv=3~GeB6!((1+<-l#6iLEpX4lQ@X5^n}%e{4!Vs-Wy(&<r}>$37EPg5nX(J@9hq`A z<<YrJIfruT%b9XN`V4&sJkgvvm~#eQ%ak=L(0rM)P9AM^rtF{zS|C$)Qn9u*Q_iBT zT1TerqGG)uQ_d!zJ~mU%p<DFDnQ}iW)$7ZenzyyoZK!SYo%M|#IcmIb?KWR|Rdv%^ z-^`k|O^r>Z^XnRGs#~how^h_^Xs@qo8C5!R<jBd)(#bbp4bQy0S>el6EU9T}t!rxZ zr8@-|`9_XR7i*i^s+$@&^NZ366DBuQZK`Q%TVGmVw{~>txYE1Ejvqhn=3srJm(QHj zQq^2rSKaEH-PG9D`cX1xx75`5);G2I%9<J)YFeu6s_K1}tu<6eP1H==sD<ii1JzO+ z`RFXJ(KHgW8;{ajy!BBzRZ%tCu0?q!)!?^@8gZ3Es&y#U;B5=qtj7oyc-lbiRFCHt zj8clR_&b>@X&x=51t@*8*YJ<^`(z8>$674GJT26U`I#2q|ClLAi%`R}esum?v~082 z(MX$b_9&$Z_)ew<(7Op^a+~#_x*j911t&^r9Im@)Ech`V<xf)faoWqlqd7J|n!(dL z%-D+AX4`bOq5Qvbb2j?a;OoQuO(^?p`80qsUTHN(ssdF$@Uay&0EP6W6=y8vHr8C2 zWic*b-ObNdl=%ACXX~2H8+IH#v1Q|?^*dKKhiWSpEv{U$blLLzSFBpSJG^V{aV^W0 zog<9gexCk$`2_<CKXc39efCy$`yIZb#=54CRw^ER=g?szMvfXi?ym6@CQhC{qip7^ z+4Jt5zaUuuM8iJP9d43z+rUA7qLLv*!%N42iIb*Gn|e3RDW7`}(Y6O4uQ^GlY`UD@ z{d?>J5Eh^N%s_S3!v`MNOKt6T1#T@|c!(DEJ+JF4eDe1+S2^{2abHFOK;JDi0^D2( z-mM1jSZCU4C%r%~)92}nbP;ItHK5E7=^gqx{gQq|zop;P2b7{-?Wp6dZ-B43IKTL_ z#kUvF9jKQ~DG8L!C|OfdU9!Hn7c;P?%>)cDu`OUDENU}7i;>S^<bSY7{#It>cj@2h zefk~!2axoyjXde*$TjxJ7`*o%aiiY1aQ)CO{Q;#P;kwlO0`4<<r}hTy`m)~H_HXdd z@25K7UG;9+wJq10uGL+ea`lNT_gz_VW&V|sS4yu8hlVTzeaxUQ&^K^rtiMd};{F~k z+b?DA{M3y)!u>z(-@kp^N^3Ck2HHUf=>%<|jj*Tn;POgvBm_&SfK@Jr1eO2=meF#$ zpH{#Vtft)*rd_bL<De~zT$BxuBFKOb=tmyv55JI41@JzKZl^oI?IPGaORxiWP)vjA zP8v$XV3~KpJ}1yb*z!EO7k0V;GO4F0U_bjHnQinSZHH|?OrL|wouqZ(fewpt!e<Sl zf#jzWGU2@@(KL9dsdP6~EdX1cLvsnbYFitAdS7F|{>hI9bt6sF3O)hMTw9#zPl=&g zVwj$|#TiY8dM@+?vu?}U-2XP$WBI3VyY*B7yqT8W|Fgw+j-EWHe8HmSE7#RE9($p^ zv2Ns;=@a>9<n)<U&CM-MTWdboUR7V$xW2Bju5DXO)w;Uss`}RUhK8y(_>$I!y84>+ zRn;|hjhk<lTiY8Os_JW6o2%B<tgqo>b$$EVb#+w@O^xdi>$J4hHnq3b{KeUY23Lpf z{68FCpA(})SU2RB137u=R!Dj^uxbNj)B@Cb5R%<bhv*12qJy5H=V2Fb(6{I<`aW#p zs%>j&d-xM9!l7krxmuxit9FMrP&2hDTA4OSo2T8URcb4>wOX^*rah>IwSC%A?WFdk z_N?}zc2+yDUDUp!eN%f=`+@eh_KtQ<`?dDI_Mz6R8~OlU=|%b=eW*S{AFof+1Ntoe z9(}%kpT0z2p|8<5>TUW~eV6_)qNPXlqx$3ellt@eOL~`nLBFWS^l#~J=|9r1>c7x` zt^Zd4gZ_cuqu+2i9oddtN1kJVLph2arelbs)G^vI!7<qpaLjhha|9igj^&P(jw)}F zG6oBm;S=%DAYqJE@tAR^8l~LEWEHidmL!r_!b6pnig+!zyc#g$F*6mhELS|XQ<-l0 z^RQ{UP=8h>BCb;^8Ji;Hl|Vc+Rul`*2<0-orZVml?#;q$n8TG}CAtSIqeMh4!#heC zDZkUNjEN!{GfbZ_lCg-wtr)jZ2bWAEdXF;ZD@jreRnj|MOjNQs>MRll$cu+ID5EDh zRT&BY5M`KSMWeE;0wx^e_XLLv!#fqL8;1U5n5Hl$2rG($h4JweT_g;wr$m{i8->GI zGB-?g&lQF_S{PQdFq{L0F-}N9DgPiL^Lz<^;V>b60mHjRrTi|#8ZV5(p-fJ}I9{IL zuxGa{3<x5sRGHW-+$n#`f3NajR^xzJBvSqxL1TsR^aRV55m0uI^xV<;yqGx{Nh?zh z!y5o46`&*$F?{h*Jaj-ML(f21pzdX1J|K)^0t`<0lOZrS<qs;ud#5ti2rwbdA!hVK z@F5vGs-}uDs*9K0pb~!Xel=XkCFTNkOh6Jg4FzR9aWoNeV7?{7GE4{y6_&%OfB+xL zFz6oPfgJAz$02lM6|^Pc$22o|=-u35j4%$Vdw9@z$QB10IE$36W0={no`oFnHQEFw z8mLTTpR$a7m~bp8Gp3;sU8QV}F2r0=N)019UJ}WWu?sCN^yL*UR$fRl9x|Ne;7Oq@ z=VkDOV=zK8^t9+wiEfaNZe#eC@|z&>S!EQ0uNFqZ$nt!^uoi=A4AT?z8ncvKWhG;7 zV;oj%q#`r$>I}$qd&~_G#!)DXF-&--u?m|OzD6SQq{8@kwvr(%t_*tJZDGkSLxTgL z^F)77@HsS4gU6*of-VtUG94xwl||nq8t=ruf!@^Udm4a<$~1rv&C=+yMspnWFB;8r z(ogM;)H@D3hTtQMt~qF_gMLMDQQCf@{2cfpxFfn%<IUL`cKYyh9Fnv_qY-Nm;16Dd zax@?y+!}lcTnPM^hJfY(!Ii)tav0_yxI!Q%ToO={cV&p>))KrO;E`_E;O5|&G;~=_ z^f+k;NjpSZ6x&SF4(r-c(vE1_G15+ucHG{Fxe0y{j+R~|xLSBG4V%h+*c37@JE;(4 ztbx~i5#IifK-b%~(ZJJMZMXKg_BHK?+WR_oj`}=c;$nT9zDIu<$oHoHp2O`J<!Eq3 z9hV&6cl0_-ohzK%onLZZb>7Gto>iH(DQjQW$*c=m*RpzD!gY&lj4SABcST)aa9wh} z<@$wNxbJXJaj$Ye@BW_K%FfFkkzJmBU-pXZ9odJnAJ6_$_V=={Xa6ZDFK0^5wwxU~ zkL7gb{95G0PS%JWqDx#8-QrJ1fic9GWRx2ljZ;R4aoYHr@%!BVxubFy<+kTOll%4D zpX7Gu{yz7^+(ho5``y-We7|M=HuY=h7wz|SzaM$XGt4v2Q|?*jIpF!S=ezy;_n*+e zy#LPr&-VXDUQXVUychHR`E&Aj<)6*JT;MDiR8UdyY{5SP1((PsxnF)!zLorrXN$5{ ziYk@rJ_<mALApH?g*92A)rF-nqXkO7X%-d<`L^kNK%^oOfO|5wN|`PX%)_$Q3;AJ{ zkk^x;WN5HL8F<#gZ9->-rwl*}ySFSyJQfjS#BpU!S0>b&Q4e?>ipPqS2bKnut5@># zm1+yXKaQ_UF0riP%5+x3BBHR}r9yV3{Dm`w+&EFevVc0r?-!mIYzGsMEf6w`fUqtg zEH}C((ATPn?iVr;s8%u@PKF9wRgKu9yvbN1GSNoRb1-h_44c+w^^~{~Ohl}dKOWnU zW>&L$Nu?q;f<WYB$~vd)6#=5<2W@Hx%(*b(U(D3F!GKtk@+AB#)E=xW8LPlZHb;Ac zZqHuEAq{M3M<2@?%bw6QCknS`ypWxH#AC`WYf}+a3VCFvYPQ#GW6;Y=4v&LY?_p)$ z2<{awz;|quvI^ySaHbjl((<PKiEg|Eieml-2t{sf6;D7`7Uq^0*_%S9QTxpst?-hj zc~<c&kU100!Qg!i_56`vO+<QvwGa<L$byqzBrJD3`ao`*foa?$3O}+E8l3PaB3qTb zj8-LTkeUVXEVrczZav5f<cG6;Y=?MEtPpZWGL(w=lsvFQ%@&?nn3koxL~RrC*m5OL zhT9a}<8&eOX|0mJ@ChYn(9=rpqL~m-81#By1fQM}3o)Z*c~4;a(?XtsHkGJ{mAr0E zfz~|^k*2y!1t@ScVg3>oeZW=`IL5As%Dh>ejHUb`Wvx-NYaU#K&6<lH%A1IQk(M<A zO99VQ5v<x~;#Tfp3J(<3kM+a9%iKW5JPN`X3msr7MU)JMuvRD<Vxia&CHDrBu_%g# zl`Q$FbuaXHDF{WY<0=0%Wg#5sGR>z&CQ`Z@V1+X~gylk1ltegnN{v(qhH$$Yc!39j zmAXB11ZyE|^bsL11%<r-Y2{fhK;BAaQ}-20L?*z=c;zJ;t6cIc#5VOt*mT}45Nd@$ zGYgWx76(QI^MSNP*p7|ziGw3~rmy)7;^wQxN>yREy%dgz<|z3(bqGul<_TWUOaNL! z;XY#EkL6dwfQL(DnZ*KSyk5z#?*`|?KoOg7$Dm`UfGF}rz%seymR$ivgr}5cn&uWY zO}Jzw!a=AE^DGS*<|ZJ5ZOJa#6%P#tli3I$_tOdgBdSucW|=mS9R!mGrTkGLD}f3o zpyQwo9d-*KhaN_Q9IO#72KX{fd|}27ALB;A#trZa13s!`#~#Qm89O5O+E#Ru&3&$r z<;j>6F)FCzPg*?Jp@=}m4;DcO@wrRMZ!?T?G-tY4rx4Di+gs}Zq>F{@S){H5c%BDi zAl}ROEBUTj2xA5`GXx=iz&HqFfDUC!{yY(Zo*uXH_8_G23b4TM-3kQqR%7{K5y?(# zC*FfMY|643Y@DiOZ4|bbtWI<{tEI|3qI_J6hbAB}gfi|;boT|oOax5JdK~JI3>|?z zz}PM%{5?Tan8^_AzYV|z+mM|z)%CPS0cv0)pN}YS2T*Vi!0kLootu<A58L;pgDXqM zY%>Owof#-R+yE~cF`jLE3>R<{E?LV{Usx`z!X<D=D{v(ub&Sm@+E8Vhb*#zp7?6Qi zYjb>Ysgj+O)Oyut67muoguGw_o4hm;Ds>?VlUR<17bY=8zz0D-vyyOcUcZvN?cNq| zRbV7+A>#=0nHxrj-NY}`)*xSFTj*5sRUY%TzA;~&q@d%+!-rrYU130eJmkhBRQqTE z0bWEw{Fq3V2OyOBftB!kE`ESA2iOL}!Zl6!ln27D5UlD6e>?=Yh4<EA0VM}GceA5) z$77GE=iz8AsOE*o;HaMv=0MntTfPEs4tYX1-;O#1;4v#i?JDKv&6i7d#$!BE^F#rK z=!|Bt8(@4MJiJ%Q6F}oGfbo3T!1<`NTI^*<{JgN_yX{ae%X%*D`YuDL(G{Rzq^JQv zO;DX;WLhE?y!J-k@+5$eouUS|lZ@?!2w^3w6g2*wNkYB{JBV;s<|7=V-Iv7ytQ-eS zhAhe<wU{XwEKiJNi?M?W_*2U&70+S3GtBJVfW1FR_?HPFF#vN$_)Y-?ZV~3=imint zFdjs_vx;lj;(mhpUuQc+?Z2)9(fDA2koN}=oW*XM<?oW$vBQxc00#g_iO5-HFTg6W z5yVyx`6i-|Un2Ne0oLHg-rNgmza0-%z}DeHA^%^Ffr`9mo)Lqfa0!1{S=dp*d9!^d zL+#45L{x~4LOR3qpbt$#PN%g(e#5tg!3^dBRj}a-Q)L0Jz>e(9Rx%HM2JL-5fRI&z zS*GLtG>&;@Dvs0GFbn1g`Lmal9k4tAdJ=vH)^kh&Ao0gop=X<@;Jq(g%TrIm>2oyZ zlEdMPSHcx{%v2kc1@c}A1D0M5M4dxX4gdwbBLJ&_D3`o95RbvDo+Z?lAdmstuuX4& zSnynJ?9k*T^I7EyKy}%yct>tJrS~{?m2O##ZtxQ@!osbhkQZ`H$lXQIFVLUHJ&r60 z6WHC32aYod$<RSoDp?PYX-64dfgRW<R|6+`+Zhizp9k1Ml$obWVZUR{;Ti;h!vyH} zW?Frs-frIvv`3%_Aca{1IwOd_y2}+We~DtjF^g>+c|p~Sd1{`JvG7Q65PMcI_9UbL zec7huBWtRJ$-K)a)~aGMPbzpCj$R-y6DJ9)@xA`2Epl*ZY$8$)ZlUR1vk)f{@^~^f z2uB!p0FI~<c94kdgaqOt5Cfxxjsjw^6~%oI5ZjG7z<fq6gU^MDFmlVI;pGBM1dZik zbFP9&5eK2cE8(RIFD)~~LIft@z5UP?V1U>ub_sbH(m!eo|GWtZgU^%Yvr%oC-u+@H z7Ag<3CqWx@KW{pRux|{d{D}SzLoC<%sKWMcXL+Dw;wS|FiiwDbJ*cg`XAx3ktm_ka zFp{sNhqJ(@vo=Yf{T0@CJFsqs#v*XT);xA2$T2lX+ikGICl#Y^DzX^Nb9pu@-$Zdh zna_xg%4|@D`_(XY3hxu3D;@%545HB)$k-LQQ+W98gGv@Kh7_R!XoC0q(8zN=;ZFyZ zplxwH)DujHlAS646v%84TpTyR%OHZs(QusL?OxAy=x>9N7vUBsitP~NGT`gQPPJQ% z1)S`C)P|i4m~t+l>jEf9TP-vSd#v*amT*=yO+dDYlMtrKE)JCEhZ&s1QD@4J$nP0D z)U{d^EFm7V1>GJvqz(#b0sM~@Vpw8d{c7Nt;GNeVh=M~6+Y;YS_#w6TVS5KL4I)i! z#X`r}am8cLfuCX6SRH#Le3-us8&J7gwU%j(hj1Pgsl_?a{&XBrBILOMOshx%&nzFX zD!}(VAK!f(&<0>02=IaEcHn>xU1xY$D2kKcXY>1fyvKfkI|b|k!aM)~!6qnD#|E}v zC7=X0LRbYheU@C+6N~`lT(a@Bl8uLjY=r&0<*E^=gvrXMQT;TkpH5dJ=J&*3w_|kM zh(mUaWeYeq0X%?hcBZ;Hs>c>`jL^0y7+pMuJpzJtob2%Yb_6q?1wRDK@Xv)aEG$RR z3635YCIB!V0yZ8@bvGfJX;qWaM_vs-EZD(Z2`72Ka6Sx6x)L@4lUKuAL}C}OCLY?Z zI+Ua5!jp)9Uxc2U){D^TME5iBSSvvsqfQ9&XUgqwy@0x~UFmroH$dXqJ{V1200!@~ z4L*<;55ewt5%5xY61z;Of_>_lSqDhF5k4gl2&TGSH-gR+q9=G7>VxPRXJkbPc#b1D zn}N8VecIQ_a&_Vi!Ax{x6S`|9`<xC{0IK$(xxB=(z(6<^+ujALE}@-U?zH&00iCeX zG+j6nMQDqt$O#4iDu9d|m^efLZ4Y64`ViD<F~CW{xFEkcgvf2O18APlPUtWO_91qX zXMEOSoKQ+%9{8F!06~)7QVg)%jO_4rPHgEzkPaYqaPSafUhW%+q(Lgt4LR&`rn(1- zo(s>}F#*ShFhY`VV~=#MRLP$)@Fip0MOXk>6Uw~D4)6=su%-3{8F?^wewdH;+z@{e z`?z8%f@`Cj0VaY-^u*R1RK=zVc{$Myg+h<#uyF&c-nF)a#xS;m9<=LVo@(6G(G%RM zb_3UwF@$=_&@`Y4x8r8fo**Ay6m-}TEpH)e6W!oFTl50}>LYyC2sX>PtXPOb(PyI2 zCJHz~b|IJ&2m}9tFJ?|#1q^GEfTP@_94|ra=deS?84Co)_{zJVLpYm`q;QsNZ)T#v zpB$<ZvI6cnBxVZ)$I}U7Dx!D@>w?3xA3z1F!FYHWlzo8+pCx}gkn*2YQRhAA2#dtQ zg>6<0Rq~BQ_mc_+5SofD6jZYdDhPm2bccB6^cV5#xd09mviL9|I}D7>57?VpA5ank z0Ej@oVMH(3A-#@153w0`gkJ*sg!e%Y&W1tE6JabJwXEdJfu+zm(0n2c@)w5@vELs~ zN9=fT$rr=eq?&F3yWAK~#}-IIz!<^)cM&uUv4e|BY+9H^4r}3d80E_0R!+1)#a>pZ zeGMiZ0SCT|r~o!L3LqhW%<RR{Gu{BbJbPcTjmjQ580WKwGh>yvRo#AOd~a?}G#6Qi z0g0jB(~_cmF6u&t(Sxj_ANj-K_?N&q<PE3Nbee@+UnO#r=^WN3WEnTp1ISPA!x`=| z9LJtUX15dn68a*&hEwLR(%0z+^tPQf{)L^}O;Ad6X@*vSEY@dn)@o`)aNasu3uv>n za&3WDp{>^Hk;U4k?bP;Y5$#d!g!UBjSe@Fd+LyI&Xx~E)i!)fi)PAG=UP~f}<<PTr zso$dCuKV>;eY8G9FULvkGJUmPgX~q4-l{*KhxNVsflU7DIsL5us{SSY%lg;!Zz6kj zS^ug2GyUK6U+KTmf2aSK{wL(G@CPKE?+RqF3LUpOiX0`5p^g!bF*uu1$QB@}g#3>= z!p;HNx^ojfkwsF-d-##?K;Fi};k=1t66dp~qZ{H>!;4%EHn%Ci8{32wvNe|5D8+fe z8D-5v@?;ot7$M{iVkK~yJ;7p5X#g>d=wxAxhXnD6%uWa=RyfnZ3=26+g*g$aaB6~g zNJu;&GXS4~8*(y{&D_K?X7Cv!j!G|9s-ql2U=-x6qW59aa;#>Ia2rp6zGP^MFmA4g z)y4Q6XFSpo>TDjc9o?Mf-RNM|GP$N<O%%o?s2U&S8bjE{+7XChpP?KdCyXb>XwIq4 z<s4CyGS*?DLS|6<tm87U@j8e^C?0WRhlvx2IUMsMqcIL9hBZ&ImnjT}5D)eRKvd4q ztUzvrY2AiJ46$=ynAz}l3apTiDVXYQ0z}_uM=FpE?*Ot0&vtssCKGgdkt>Q;a2^Zk zptZm!L}I6eg@ApP8X?++u^qXvF~~r{CB_UsOT*5r3;|;RULB)GS<oCjBk|(INnk4C zHp&F}!o)GqrH=v(1S?Om5Yb_SZPA9c8(gp(VE}wE1ClvGmZpU)79Z*DgTpqCG2V82 zjmN-c5PSqlKP(vZ`jJlL2#v!Nn|`Rw%NUzyhSDMF^f}ONZANl4<TSQ|4_HMvP5_W` zWbY5rnjj$p6`0NpFbxC{1z{t?N6W@3AWte{Y*n5vL~1TiR7H&;ECI+D6JrkweZce> zYo}sW^+Let5Jca2$c4lY{zpLkf4fg};eUFcs{N-K`_r`5KKKhA{67#4{}b$^jo<O} zrx~xWZQmGu&;Osl_WxBt>&Jil=CIem>-fmp_?^8TUQ^!%8T8Tl*Vfs$er{uz|Ax%^ t#^iY%NDT6SCU2IxZg1upzg)igjJDkVqgP+wkN)ynZ>|q?aQ3k8^WRfGX$AlQ literal 0 HcmV?d00001 diff --git a/dist/assets/mc.5fa29ff9.ico b/dist/assets/mc.5fa29ff9.ico new file mode 100644 index 0000000000000000000000000000000000000000..ecc93ff12b32772e61b54ddd3be456cea8d47442 GIT binary patch literal 1989 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 X^P+%Gl2Uh400000NkvXXu0mjfi%jEj literal 0 HcmV?d00001 diff --git a/dist/assets/menu.e25a1d96.jpeg b/dist/assets/menu.e25a1d96.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..933fe734bb45a8160e67ae04c78a536b96f4ae31 GIT binary patch literal 44989 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 literal 0 HcmV?d00001 diff --git a/dist/assets/oak_leaves.776aee85.png b/dist/assets/oak_leaves.776aee85.png new file mode 100644 index 0000000000000000000000000000000000000000..5fcd721443f9d94bc10d47f1f8103a2c8a94f9a1 GIT binary patch literal 457 zcmV;)0XF`LP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004yNkl<ZIE{6a z!HMfY5JaoRzYB-ZNCD{L1Qx+0B5)^Q9D{HIBiI0Z(|N!+fq&TmWF`co2zn3uYnU~B zU4%4UQ?ILM#3pk9h@Vl?J$V>|#3eca*vaH_zBmBvuN}j2fSpVLAl;Kc(gV$K91uUF z06-Xn*ku0o_X~N;h)eYOI*ay-_RxY)x+l-ijF0dE;ZHiv*SQen?Wc%TwL5hJ0C9<) zw~YO@qi!cZGqh8zx3y5#6k!bVhhps&dCQouvj70aVGKoRllgEQz;*%P7cRvNh(x5~ zChehx_6j?hG<nNKY?FB%5Cd)xZOLdj4uv+|lQ$fZP3CmbPQfwSWL~oQ7bMs7Goz`U zY%*VOYgvp-bP~`tF44mngx?LF>OR-oiubbs0NQKGL_3A{iiR_0nB3^SSDNr0#vs}$ z<UR3v-t}1sW01@F;!K}4%_BXay_Otm8oKa^@2|ZO(Lmx7okjnn;e=RAQ|%N@Eq<Rr z?+7mv(J2mNkS0I#uVm{&V(+iL9HhFfxJ3U3O|(=O?|;?o00000NkvXXu0mjftXa+q literal 0 HcmV?d00001 diff --git a/dist/assets/oak_log.fc1a2462.png b/dist/assets/oak_log.fc1a2462.png new file mode 100644 index 0000000000000000000000000000000000000000..527b9e37c63ebc49461268e309c69d05edc9eb30 GIT binary patch literal 404 zcmV;F0c-w=P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00047Nkl<ZIE{6Z zF;2rk5JexBA{Ta|RUFF=Ynn({G&G2c7VZG&;7;6uw2^2cq)?zBQN?L2Cy^EGBBFo- zX0waURG#(B|MUOM(f!@!*CMaDzBnc?Y5=D5CAT+cPJVTsqLYxxY-MW8s=?zoeBY<6 z8ve`e5Mba3V7=Y(^s?+M1{e(o08D19);~`tApo%ooQC)1#^h1IhY(3fpJy{j*oEUX zGT)~s5t&vj^2(5UfO(8nfKEaKxcT^W8139hcz!Edk5RuzSv6!@vET2FyiBV$K-bvP zpp(#XT(%;f0C=$qjHYoKISqds1++Cmrd7*Gpamu##46z7@zs?edWA7o0n_>6Ho7J= z03x9)#%W|cS#Njvz7HH$@7a6Ki`r<kwb~xYfr*jM9Z19~ATMf0!-0`yvq}wsXBXIO y(@DsByCW}Z=YSS@<xFQxv<tczWl}rJs^J?W$e{+vX}A>t0000<MNUMnLSTX!53+Iq literal 0 HcmV?d00001 diff --git a/dist/assets/oak_log_top.6a68c340.png b/dist/assets/oak_log_top.6a68c340.png new file mode 100644 index 0000000000000000000000000000000000000000..38d7eb1c7003bfc1565f14e3d6609cbe6ebd6320 GIT binary patch literal 426 zcmV;b0agBqP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004TNkl<ZIE{sq z!AiqG5Qe|j1e(N@C27G@Ja|*;3y4=wzJNzxz{l|=d=b5Q_Ebtm6g0A!G+S6i4{@iP zV0A9Z%+AjK|35Rm%k$Y+QCjjeWULZi^$O<$j8($JqZZ#k0|<)Ja&>WnZ^qU{VT`dg z`7q`5qXZxd<5u4F%^iWOc6<K-z+ToQMQRtLEA(nD7c^^(t^hbbIv`I&0>9$f=?s9{ zd^Q1<wGg@3e6f_Az$NTuF}3-`*qYzW#iKB8(Ea#9QCbN)dwzNo8i2r_Oh@9YWI$0` z`gs~+Y>m;CRDF4`nM_BhWPnNra<PjfPec0dAX2-+(+R0pYZ1|*=~9pa+swgt-|l}< zly>W7N1>&MCvs8R%^VnAN!y?i^5wnhjxVq;cxw*)Bq!Qrx}BCoCT-NL<%QPZcos)H zn<48`0GKb9GQ$6vYokz@s0>twu{A0g2oivNm{M$6sGh&hKD58q`EXzHs#gGf0}E=s UNa);tXaE2J07*qoM6N<$f`OC4z5oCK literal 0 HcmV?d00001 diff --git a/dist/assets/oak_planks.be4a7f91.png b/dist/assets/oak_planks.be4a7f91.png new file mode 100644 index 0000000000000000000000000000000000000000..39a00be7d241a8fc1378d511fbaeadc5b943c40a GIT binary patch literal 444 zcmV;t0Ym<YP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004lNkl<ZIE{Ui z!AiqG5Qe{E3QbaFS(P>jBK0Kn<iUgQAb9uSu`lGq^kpg{l(cBW(l*&ZDD|+JbQ{#U zEX>T#{QtlIcBXHyds`KR-H0eWp&f<Y{h5FN_#^-byAif3uoa~9Z$i~a#XZ7q)HK_w zKzadElM$*ufozvTa&^%ROigyQRmDA|KT+BtNax=yGB<sw-H=6Au*`A*208{{ndJ<0 ze3V~iIl<`Wn(^HUv-FGG<Pv~!z0uFLshGUv@m@O$;2^Em8%$oJ;vOb1v1ZGxhA#Yt zYN#B|z~m){@*rC5@iki#r5gnPc8Sj9dA#?z4s~>-frQlCJ)P;>>t5d3=Xid0%70PV z9jVEj4_52Vfm?lw9ulI9oB-Br3EcMRSAKG_Jp>?8nzXIKZ$9vA;upUbygWTHOTS2z zZahD-JHXl1_d!_u!v7z^YQ1S-iZDKO87?^y+Ez6J;VoWBl*U#?W2Di|wG*t)8ICpT mOrFPk-|uZbd`<knAn^kPLH|OMsTP0$0000<MNUMnLSTZyBGP{V literal 0 HcmV?d00001 diff --git a/dist/assets/quartz.9ffd1d51.png b/dist/assets/quartz.9ffd1d51.png new file mode 100644 index 0000000000000000000000000000000000000000..d807c6428b6a4e124336f87d4e4e9c85c65638d4 GIT binary patch literal 3300 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 literal 0 HcmV?d00001 diff --git a/dist/assets/quartz_block_side.0e4d401c.png b/dist/assets/quartz_block_side.0e4d401c.png new file mode 100644 index 0000000000000000000000000000000000000000..0d6ee66ed0e4551b4a58800e885b947cac6854d6 GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`vproLLo7}&on*_`pup3*^Z(VD z7}JT3jg2lodmKcae3#nKu&Bw}u>ONw>GO?;<zxEfin;>sw}^zftyN~R-_F*yf~!#Y z)ZT5n!WO|-xOWHdlZp`AB3!pA;cqgp%KBBNTMisDwCR@gXiA*Xt9~SI1?Q1$88M+o znMViqTd8Lp6!N;S!<^f&=EIS|ZDp6%ZA}Z1YrVvK(3CSOd<O&1+I4Li_m*Y?oyp+o L>gTe~DWM4fPRdXb literal 0 HcmV?d00001 diff --git a/dist/assets/sand.f4bf1751.png b/dist/assets/sand.f4bf1751.png new file mode 100644 index 0000000000000000000000000000000000000000..bc48301a6f571835e05876129cbedd4f2c78b316 GIT binary patch literal 445 zcmV;u0Yd(XP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004mNkl<ZIE{6a zJ#X7E5Qd)!)If<83>SeAxkEf8=+E!oKN8r31H|<QglI6uYEXf6a9>t(P%aYhcz5qT zJl-AmKR!Zx0>C=Y&<DmCsOpBH5C64Y&IhWxA?seZXkE^S*}rw3Znt5Kf#u^9Lm&9^ z^&8!8Ltc7}ExCK!e*YNyz|bBsg#%#u_=HqV*BAqN=^0}HATK?cBrVs^$=JPavF>`% zI-mZlx=G3M(gTo<F);LjVzElu)vLY=5DNuc=P?R;-@gE)DpPpcU(SaVEPEzEGG5LH zip6RMbc`W^yJeB7=V@Q>`<HY;HdDA%RRxoRyu5-^5<&a@tDnJ>FSMtWJX5x*WPvk< zyWYxQ`2sFhV+@$ko*3FA_Wof8PSu7!Bp)!Fm#S_sV+_flnV3@6UJ9iu-GX}4&}f8Z zGq$8ytf=bd(=Ax%F}Fig)eYTlgS~&CsvAOk!n!z9H&tk+FU~qou~@<SAIzywZ$@Je nU~Uh<&riXs2C!T|&wPIX{6Z$Z<)xQl00000NkvXXu0mjfd=JTY literal 0 HcmV?d00001 diff --git a/dist/assets/sand1.1260ef32.ogg b/dist/assets/sand1.1260ef32.ogg new file mode 100644 index 0000000000000000000000000000000000000000..e9cb62d711997bbb140fb5bd82adb43f4d3e842d GIT binary patch literal 5543 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 J(ymYe^q-T7+v5NL literal 0 HcmV?d00001 diff --git a/dist/assets/sand2.74ef2fa1.ogg b/dist/assets/sand2.74ef2fa1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ce2eeb09da9ebca55c2977682127bd3cf25fbf1b GIT binary patch literal 5553 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 a<f2{N@wL#Rm304ANNp9gaVBAp#NPpMbJ`pL literal 0 HcmV?d00001 diff --git a/dist/assets/sand3.0441e996.ogg b/dist/assets/sand3.0441e996.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c94fc1b10f2af3926aa526b9bccff0464bcec372 GIT binary patch literal 5552 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 VTNM`_V~@mcfh1}ro<QQz-vE$7361~& literal 0 HcmV?d00001 diff --git a/dist/assets/sand4.42ac9116.ogg b/dist/assets/sand4.42ac9116.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ae2d818d0f09f612ef22e9848acb65419976d5ae GIT binary patch literal 5491 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 KB54gtLw^I}9N`!M literal 0 HcmV?d00001 diff --git a/dist/assets/stone.53e38748.png b/dist/assets/stone.53e38748.png new file mode 100644 index 0000000000000000000000000000000000000000..9a7400317653704fcc0443c7f0a4ca9b4f0eab9b GIT binary patch literal 9189 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 PuPC{bJcts)p>zKSb{PAG literal 0 HcmV?d00001 diff --git a/dist/assets/stone.fa5e82cb.png b/dist/assets/stone.fa5e82cb.png new file mode 100644 index 0000000000000000000000000000000000000000..5c52c6fe177fe7c3686305a8a45e77ba15cbe848 GIT binary patch literal 316 zcmV-C0mJ@@P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00034Nkl<ZIE{Ui zsgeaD3`NgW;nD(!;G_F15pf8j=ZUW51*&J_SaP?(&wby&q?&VLW&nr?X2x2J>$+ku zSDAAHU}n*fFNsL3RW-o;Zt>=|Rvfy5%nZ<4+t@|q0T2;-?_r_V%A6Asq1GDvUQPf| zTyplF?EutT11O&Z6lZb9QzF0^W3#l@0-*Q)DDcWGV~nuncRV}?o^$RYs%kJ?*Tonk z8cutWfwP<eo{HYe%)am7OglIK2Ut{<)>_DQsj9m9&RK0^^vB`8{+hj?`$*kxIT3Th z`A@j29JHBHGNPGnU|F(=&|2F@+IxROJef{4x$@M2?_YRheaplNz2^f#r`rhh_9VOj O0000<MNUMnLSTYM1d(|F literal 0 HcmV?d00001 diff --git a/dist/assets/stone1.97f2a8a7.ogg b/dist/assets/stone1.97f2a8a7.ogg new file mode 100644 index 0000000000000000000000000000000000000000..746d282e81c9fbcdfde0966a3123096ecf3c87ba GIT binary patch literal 6695 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 bzw=P9bU*MUaU4(*XcWj#TA_%F&;<Vn#7vW< literal 0 HcmV?d00001 diff --git a/dist/assets/stone2.98a5c319.ogg b/dist/assets/stone2.98a5c319.ogg new file mode 100644 index 0000000000000000000000000000000000000000..333c9704ece8e9482fd4097af66fe5c8596cba9a GIT binary patch literal 6728 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 Sd<qfCdO#Fbze@{w3-}+~EXWrC literal 0 HcmV?d00001 diff --git a/dist/assets/stone3.19273f0e.ogg b/dist/assets/stone3.19273f0e.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f8b629fc3d782f588dc98ed562f2231425cb23ea GIT binary patch literal 6627 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 DVtany literal 0 HcmV?d00001 diff --git a/dist/assets/stone4.b164e732.ogg b/dist/assets/stone4.b164e732.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d705cf350e749642f45f3d035385c988d7dbed49 GIT binary patch literal 6516 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 literal 0 HcmV?d00001 diff --git a/dist/assets/tree.98a9b0d4.png b/dist/assets/tree.98a9b0d4.png new file mode 100644 index 0000000000000000000000000000000000000000..ba0534fb2f0527dee27307267b863a8b421bab18 GIT binary patch literal 8628 zcmX9^3p|tSA7`wxLc@^MDK#gv=0qzgkt}Q!^KM>@hO-J$Xx$Y>F_%u4&7l-JV>fJ0 z$|YJd%8sr!CsGH=u|?-p>QANr^Ew}w*`DWp_dMU<?|XUnksG|-&lF>aF)%PN4e<A+ z8yFZ8k)L@+;FayyPxyg{E5U&f1w1MW;B9Lc{p5fp|7f|w#_UQaZ7T^!T58cKV0${_ z@OEZyD;BPG#QM3~?xwr$a9>PuwchEo?B<22jU>DEt1SJ=cB__}QQU1;J6Jf_nMG2U z|C;V!lgBK}-VyEn!&WzIS0`-bW_!t*5TA869zWp%y%tA$Esff?d~ewLxb37c{~s#z z82qD@cxWwk6W)8hwW=a1HfVKflxMH&TQyjp;Q{*gPy_Ebf9^6cSk@8Xy9GMj_x8oU zeb0Vc*qO2*qHI}=61(h@RrzM`K(z7g@1HxOjz4fYbk=kI@T0${gZ^|}Mfmo2Nn=3g zX<E_5j`K(Ni}|`XO(1tLp|WW|IW(%FL`-6JLpC+LB=f^U(_cB4c&oSvPR}jM;u-Oc z3A#4bq`&B~4|foSYd95O(X>D132fZ&Uf800xl}jYQ$oo8O|(kI-FL^W1MkUr5S*!h zNm^NvP(iJGVn*0M(9iAd6-Ao&w38Rian3r{6!@*niI5OzTOITF92HJ<?7<}03~DMA zSDHIZjy<6G-wzS~G6#M_f<9l6ewSF9-1uQmwFVv86XoUp=xB0~%85{zVX%$SSR+n* ztsC{`8}TodXGxTJ=wFYk%fs%FLYD_uH;OPt!KKT?_F=Ba@6+$SyN&th!?Ws;loc2w zp~ynhmi@rvqMOB?3OXy*eQwwV&Di5MmC9{HW@s78X2SzV7W`m+kPX*ywAr3tklUoW z8OYdkwPt41cJr5ksx1k&2b)W^6|aJ!YhVcpWv=6?^1cx(&4$!^`rwg<t*(qc<sN=D z)uH^uqZXo6OE93a)kA9?3o(jkwg=ZGaUIW2|0<=YWQ&JTVZ$C5-{oU*qF*i(f*Fku ze_oE|q6sUZcrr7tEP=JVZi45ygY&HO-*(8ODYN^?T+QJA|Cy82$>l?~0dEMuS};cK zDy?vbI$hMs*XedKA0ci{On~U|l2&4K0R~qoc}NyzVFsS4>v}_q=#Q72JEMzqJ;FL> z)Jguk(C;+4@X$Zh$K)#Up2cC%ilk05u1b8Nd?;TyN{2dIhU~-}JGq{73D2!?Cs8;w zsc}t1SyKfeC6o7gn5TP~5>*=txkhyoDc7ddf!RMX{?b8ZgtRr!ma>Y$=wxrxlhVeG zm}g&)eC}SkE&k=%hd0bU9;tkb2~zHLC*OfPaOI~LCA`Q;Q>du;{n;hL2A^cC{w-ea zskx7jT~Z}#$eB?|TCW)~l8Ys*qDIkxy=Z0mP~?v0iiDBA-2@ZpDNnaAZBlP7x#zy4 zC^$2*5*0RPy8PMhU~*c>fJeDc*|e0^690$c-XQX~wgB6{hN0(&x#d-DWRIE&Qgq*{ z;3a}5y0^NcyBB|(K5?e&c5cF7RP{|-Pdw|IXdKfoZp-m_Ko=hQ3_XqIuYAPm3kbwT zG<pjgXO=Qx(LxbDNwQF6*Vyp~p5DzWL-oEAVgfl11h=re^kQ#Kmr&$mX;Y@0JS%?j zrS>FuSIogKg}9>b-)<>u=I##fuOSV|n|gkvhO2D9ujND6F}GuGbg=lm)6Yoz$}U*p z_FZ5l%2MzqP@@+$TLS%M7m|s&OI=s)!%J8$by?|+uF08Mg(J{26MI1a_{UfhUW@nd zA@0XpicT!<?XBfVhVn&c?_OQy67lUx5XGu1Pq+8eX5yjuC+}G^cD4fKH=gH(o;yv4 zt{hvCNZ5YmpSh*oFa08R<t4sG;SOyih>J0+Lvg8Pbe2gbVK>&ZsO20-(%0zC@23hq zvN6wu7KGO`<HeZqEZyR9)!2oOF&j}yqj!C=^R@!q-UBIrhKh&(aF1Y}9$6Z`pX2np z(OZST{AKZ%mgdj`?t54Ac81uU!m+FR$GypkqKYT%Y%4Cc=ykx4Cg5;YBKJd8iG+!@ z1aTmqFJ2iOP<CMf-~3VA^npQ!xd=R;*uI6ID5Uen%50;&3RGB?1>tA$CL1c6M8WL> z6uLj)1Xgp^cc5y=%dS1SR(5%?aLa=ASw+K7YvpYviMuVGtpZ=&Ir-GHWs&}YC56Ih z>^Z%A?RR3}pn#RT+x+(t@#`Gblo*v<%8Ly3Oi~V6F$(6Jzg!AiOM4!YXHq+LH~z72 z@B4Z4<S+JosQiMr=8P&+(#AOXPuY-X(iIZDjVZh^W+8$OcL_wl1lPv|TnkJeF0m43 z=YGN4*uVetS25-dzJ6!i(HBH+8$bVl1HOUPuzyGhx5iT_dWy=f-F~@diBR@wJw2uQ zxpRGR2v6UA`J()n3c~(O3~T20Ry&%J)44zHR9n6E(TpFF(gVgr$#W$a6$?cPtS^kK zyo1nRr}6@OeRAALL_7;k=%Hq3CCs<hCEdLdyyRb_(?_?WNy@U{T4Pu48P9`6e9ZZ0 zNs6UjOlYTw?Xc`{qh;FLg<8My^Y2-%)NM{2f*E}vQxa+l@g-FYG-GhBy|qvzVU^yf z=(_9?zw`C`)zD)P|FSmS5{Okyr9+G5(JghbJy^`drZ>~gn?*d9i4R<DJ`j;73eLsg z0E2F_Q!q3XBUkE%Z}vwqJ{;igMU%>Xd{o(1-r1Y@CQzi@{oLeC%T3;zzWU#HR`yNa zs*s%AO{~`PaRYOLubg~z%S)Ch-Tf%}G=2k-8j|uRwQBU#rQg7^u2NA9(9@QGGYH8+ zlacc1+j96X-u<tmVX85o`HalOofST17Bzv{7|35#Nz_;qsWAaQ*{7nzj*t#@7(;*2 zabhLs;r_<v)xpavF09pTBR*uO)K&x~E-@Pz8?|Xlxcf#>TjjE)_G-72qyWCqd6Y5i z5!~O{CzfXoY~!Mde)UWA!+vKOe_2SnS&@|q&iuAis9&+_G~+LnhFP<XaK(VuFCtop zCfz+c^)!Y<f&<<SU_Y=^J70u0((9m`F%6lLch@JL^Hqf4sHlN_N<7izBK}Dck0(hn z1tJyS6*@RTxd-uic{zLSnVAxkyfpaN)q&PkA_D7l&qKa|YGZy@=n8E7?Bp~zQ-Y?w zhcA^9%^*A}xIPV!6Fn{?1TQbIgKNbohNa-+pD`(O@{aXfu6TkuEpE<re!hvn8a;6C zrLVhno_Le?vh<n4e_LF@;iV7Zb5>!mwa}G{icP%%Q0es{<nN~Ua4kM)a+jrbm15<_ zaG=(~BUX$|X{ltm8{~pcd(kHChu$<^f*Ud+Pi2DZg62Ub^Ly(euVu*4E|YFX!@k*B zT``^~&4`qGEbXXBu`(M^iTuKOUM$U&JY$x1-5D}}#y2Kb(&4fuvi9EDQ^HXAa-**a zL+n9~M-yn-ffOfFodWh1DzXxcv}et&^Ng&I?vdY2i&tRyYwts=-~Dpqo#z~W=h5jG zv6<AEmh@w8)*OX<0sdqenDsmXdW?}~VNCe<9Bj``Zu=1mg0Hk)u(uvn+)Nw9*VVe2 zZXuu9b8k7d3tFllSbQ<Ko*kg{G0QVzIv1tqwp7_lHiaLPjQ@cW*;|Jmksb01Z@%}k zvf3RpOt(;nygeLLe=v!_?9x_S99uK~<z&ORbLsb%e{Q_h^5O6T;VJKtYugvHuUyT< zOLobc-J_$ICJklaCi{1hl9q`siRr&T&88L;>d$n+ca4c5hRy+G7aIHAxpV7M(6ZK2 znsl16(;>8&29ZJ<4-$40*ri3@^|9eyj)ibH>&}KFctVkgRgqc^#<BY2CXiGh%pb|n z{DJeos;zoU{xI3~LoYM_Xiae!GSgnfB+-&EQ87UteU0?7zCj#g$dw;K88JJOi-BvI z5w~O>HUhHh(Aw1EF4l!<4QtEDj5*E{r-<Ge#!mlKcVBgzI98v^seSi3iD6UcJE9F$ zq`mZ^$c8)NYo}@9k~VS>%ybJop*vaZJoKYtRXX*Iw2~>QF%pP!xSQ6ooxm3b)+W@b zF9ts=Id+Yj?ne%)hT4xF4&p#bFcqE$hukD`(|+eUUkMZ@Koj8J12z5>S%#rN)Tg*~ zV4=KXZ+KgTYSO7;7a{C=YK4QA<iH?YcNK_d+_cX^&*#CHO$Cg>zTrCJ)%-NaFImp( z7HPlv$_DJk^hJC{U_DCOhL-u?b7k`2FP<dz1vUGc6)8D=2X}`oiU&D`8qy$Vg@mQ# zWe78HQ6ZW}U%o4&3sTx0D)Q&M;^ZrDSW6$GW%FPRd|s>r;8(g9l^yuaTB69%aPWlK z2fNAIUiYh4XJ(r3qh*&A_cbSaJF19ZjYGO4IxKLC4w6gAhG24BQob;YF__RsZ@25T zuJK?T?@@K_*cyUOw9lRVrAYL6B2L!bp?<nt=FodE@}5t7!k{Gd0TsI0SD*xUnO+Lx zBvD3!t|DO$jv=>|M>I&Frx8?WV{9&!1EFQEj1_{WXu<R}4whtSXmbsv*?G{-5*ipf z4}W7VW^4r4PLfdq2j<Q<4%&f%X4cp_+hlt;*;q8FM7o48SwibaF~P?D*o=ncT*hlx z0K_F1ntKr3zgpe}Mcta?jEr|RRJOJWFS9ZjuPyjANLiBgECWwqYedXg@dBEsAuVck zB5wssfMVwAtB4_sXx-rcpl&sR^-F1n&e}OdZVNGY{Iim-<au)$y(3^yAkGI+s*Etu z_r=n8nK(n|zEO3bpOW5@`Yr@isJ-rz;>2@n`9Tcig#xSam6e6dZxhi(4l(RH3N%}N zb8`7~He5kpq_LB^?933l5+~;n`7Sg=+9EYyge*{z&4W9m2-i{CwdwgdLmE~;ZVD52 z3Qz(Irq)!HL6*!RhG3n4M#?I2Br=rKUl+kxc}4TuYGvvoZGSb2xoIBM5zCcL*sybX z@DeIi0Q2A{WbL@ukOT9|fm#beW9ya{eC_4MY)WO9Vtds#S<MQ8C_{s@V7M_cFd<Uw zb!*?gN65CO>R$S8C8lu0=QB+6pmq=YTn*nM)J<R{m_9SPgGd|Zeg8U_NRf5=5osJ) zqPFBGTzAk88p!N41R`4Y_g@_G$*VZImE3_yOV8(0$-xLrc3qIO++Hy>OoA0s_Zwgn z9`-r-n!Vw=blE*am?McX0AP{-cmB78P9LStrsmdRjAWG7&dcDCVm8DUV_>obr5*H^ zZ8@KSwpPneOpM^vB~=`m*LP!3&@7G<d$!a7&sbC11`S5mTDyOdv+RWS@-2KE1=$!Z z0Nl)A%vMD+cpfLYS8gc%gCjd}RnYorO|>%u?0Xgb5Pq9#HWze__cB84;Dp?RVad!+ z{PL|XS}3fYs<To!#5J1BD|2BoA$H08T}XeGD6AAWbM>yoa+OW&zzYMKiL<_@P?)xi z2`XD<DfdOoJV2YHm_xj%Y>l++O`JKPEe}3~Bb6E{bckloKXg_j>bQ4OnX2Ty;Rs(1 z7aba!Ld!%MlOK&`m|kO<t7d8eF~lj@P#Q?CX#*W<{86(0Nj{JUENHu)3`RN7WcnhU z;y<82eOX48Qh_vJK_!$FnIe!P8w0|Q)lby;)|;sZjGTEpAHYRGq=8VsyvMU#1sGqF zqZwHZYF_ANpr2U^4>bj<;o&{RxkxwPv%`t$VNkp7S42T;lzm2kGrA9)g7XS{`6UI* zB$0&zvWAw`^nhM=&^~^TX;9MJn^>ryv{&SH>p%${Y-$d3AZ63F3`S+&_-v`R8Ua{t z7%~rhTN{W?{M}ICpgpmVSZb_z7(QR)sUScdK<RunIY3-?F92}VzcO-m6?`#*L)xAO z80hnNfpTxn?t&{(g5N+HkhY7ZD0vw8<X1zPKkUbm`Kkc?%O$~!oWTZzlVCFd{AE*Q zB4PoZE9Abar4yN;Z6-Yxg}sRQo6W*@32X~8VrJ_y;jPGi);t0o3>oS_Sp!Uw!HTML zast3(4#GJ<M+pNi1S8<CaT{V)%?z0bPJucDpDG#pNgJq=_2jD%9Y<JiNW+1mBjV{8 z!ci0G+<}vweQ)RgH-yz6K%_8R_xTmFD0Iv<7b)<b@lN=%tBqp%CA=M26IKotGRhsa zH=Ws22mLujdN&8^x0YdSKyz-0S<VLi{wnU<d)j#(P)NltNhOCX&X<@-yAWMUoB)M$ zU=EdtD^LJiiY%&bsLr3?CF+ywSV+aX8*d&%e1!^EptS1w$dsRoYl<i`-;uz{Yl@E% z|Hw?GZDc#J5fdQs?S0#n76GlYS#Pa>E^8yC)yJHtA&t{}3Xl?@gL+V;p(u5A))GF9 zt5IO{SimQxae&p8t^$9g5yqP~g;cAk{7+AECP(HY9Q&+Tx-_T0<>9go%!duZ<2m&K z)twH#A}SoornK|6XD1-iz0M`YAn|Vuyb&$=o;`xV`-3qYVwiZxB@K(Hjvw3PG<?td zKjI9YNo705792zB4t&W5;pG~Xmb4Eb*+An!<{PwXbteMu*bly$!kqf&26|6Y+>+B{ z@1}mzx_3s6fUOMA129+sO&A*bw(mc0Hq=MeWb16<=XD*>HVSbjv>TA^UQD@bSVclR z9Y`2h7J_&w4br*F=7t(Nhh$*jVSm}yEKZB)ATb_Dexer&%t0~viIu=CMOQ#Zz$pq> zD15Uyr8}AIBtRczH%_qwuZ*N^c+uYQVMZnOJb^DNR9a}Hh21#K5gc#~6w?@p@H|*j z$bAs#^5MJ)qzw?MD%$E!C9Iwuhm?JYkIe_c!mXPMnIbT{N^THq6Ua;*a&gXV7mGav zFCUyC^CYJ8dxI?*mtH0dq8|cT0NshQzEyusEw`HCd3xQ*=Rf?|RG!#g;usq+_9d?T zXn5x2|K`c=!xM-{St*iLs{e>?i6pPUyi_-wq6tI_kgp8&Q;Xn`#mtU+O}Srm-1txP zL!4g3%tgGem9Nn(C$PCumOv2VjlilzXy?)QD++K`+hxY*XPwtW@=v2~5)D@*sDK<E z$^`5(Pi%MS9a%vFtUL>CL(7KG!()+C|I5kHh<6d|(M)66-#gfpAi!_kN<jD)AXgv< zsF_ZSgg*n}ip;DZ046S&@mmjgJXYi?Fk;?75+gYXVe3cxk9C`z+1vrd=aATiMfwzY zvmp>p(C7tN0WMIf>+t~Y_~jTIWR6lqTsOBhu^8)s+v1&L3oz=VcxIJ0E@1vFI@^B) za?$u%ZoP^_++dJsn<Kmvk>5Z5S^ZR!Lq6bT02C1fo4#aFFxsLA8u`zcToTtKe(G^; zx3uVRS|I4idvcWi%^aj?i1KAHMjf>ImsTg<LJXc;*a5_`_DBW2VdOgkI#z+aWo+qD zwx%If_Hs3QJ}5^fJi1{^b}w2#m<ivbZ_{Lf-XBBW5(^>^W7JiUar_VPMp1sUw1hKH z6~WlVhD#yjSSKKvav%}IE94Gw<o!ZM&{W;TK?JEYcj4h7z-mo$ZE`355m?o%OBu^N z!YaB1+(Ui{W;yx%!r3Y{-^0j8cLP@U?adIjc9t9nmOjKw_J)JTe2h)})lHjsbMl|n zbfLARnG4Ui+1z3_tFq~*lSin~OFk&i0wopdcq)oz6hh+S1TqMe<VoPW4s1$#E0OV3 z=M|wnjP#X$?Q8hDC`V|xD>q>^Q}U>Yi>!=h{!l=v`IzxpKn7&Ofp~;sPK~_ECBOV; zAZvXDf^Gd2RhF$!eR`Rur1Lp|Pq#hp1Y`Avh#oYc^u|b@!|L_D3-oFB>F+pET`uWC z=^b1OWmXhH{~rhhI$092`P^Fhr6SHsHl<g6)O7Wd)Yi79H&m}=5)$^?OSUT|bYTtB zZl<sfqffn<?y&-77hXOt@cq;ID@W9HSljdJ1xpSV*>$LNq10ytX<$$ZqV)U0Ta^mv zjPUAv&bR)TOFlW8o(Zu{-fKczlto0XIT3s@KJe?C@8454|M+g>x%3Gwmm9k1MNV<Y z`NK!f?0q~j6K5=&2ZC*z1gyhdmj!>egdT#<6F0(LaLXfq1JLrH`7}B=90P}_-q&Hm zgsGLlARGkI74s#K&_TPs`yPl`D8Vg`?C+Rx)UiGLh-W$C{ww1BK8x4@GSEFwPX5y0 zkA^X7z}F0%kV7eFgE<AU)pLLod=>(q>1UNk<OrYELH$UWzEK!&Dwq_e4*a%sr<TAF z=WxG2&OrK*7_$0qD$HDL=uCxmmn$drb*=aF;H1j}zBsrX#q7mOrKaMn>=|4A;r2SH zjqVp$EPWY&Bz!s-9%`!#%s$u%EOlbH5h1pI{Fy?F$T-L}c4`)E-JlCXC6@3I%|tQ7 zKvkMb)2OQuM+J2lnWM(I?5`)YgF+NFE12u=LqbEGVyK`KB#&A4<?|bT@tCwh$AZa~ zgcY_@8V;Ox^BJODfGh(8SY)|Dh7Ms{2sUX`j@^?Gh>%S$GP-6%BH2cI<?BL3RAO5e zjlQp2`bX;tG;^?|O!p-O%rjH^@G)@mMBT?=LpVF{tgT_<sYE$Zcro0F#u|p6%mZGI zmOV3pE2g)~T1k3G<S;T1zRud&wrVwC@{%f$(!FI{okFnEV9#CzmRToM@(34;gc%e` z1mN3XIk-o6fafsCxu3vr+y-z;7C2aodjRerN^Gw`zOrZRd6Cc@3n1Y|#5HCKZ_5aj z8sLe11qP>J{uozGZE3ITL!@RX3AsK#{4Xk`)R_Tl$(hb<oWv$_)}}bb-JtqFM8rNC zV0}PlHOaeTtC{NAj}C+x*>2vNEWYk6+`l;t996goHTw=aY6%fHiS^NoLHaNRQE&xw zzinbO9y!c#+xukO<b4A8tdSg}xkjXAb)+ikmb){$26oFPN81>p9F^a^3I`^<P|E0# zKuQ9%BT|b6IY+z^$pr09J6PXFCr8iS1=3aEb!B!*w~)8}cy&h<^F^q++*p)>JAt%9 z2ESqYS8e~fYbq3R^QWE~#N&V(`cjB3qo+9H8?v@}0Q@eHC7<jMPtV~hhm5!&<v-Hf zfO&J-Xg=6PHYZbGv-T9%-Byh!PEP!&^^0mC9xwhq*bs490LSNc0+d%I+{_Mt;|en2 z&qP1jA-;5J)7O+7u-UFVA);+^aQ+5$OZeSbN>aNV>a06J1}8NOrUcDg+lnaO!TI2K z;w{9*>La?9u}8u&>Zh976r8lNecH+<h0mGVjP!X6UQm`%pO>LA0%vCj&DtUb6&BQV zOec`oDUsD(YKyRF>uV)goMPQ#c5cE_1o1yyV#Js0h^Yf3IpAbWRrB=U(rb0;+NvE$ zvDabc#$@wEitJ6ip|thP99G-()dnO4k8s9p*2r3e4V`5GH*m8J%nu(k@HJOi`|@8S zmifL8dX<NP4Y$g^#w)~vSh5;r-SBaRRR_2n8NF0yArR$r{=4+|+gWH5J}ZR;nl0D) zx1T5D?Z5_H`3m29d+F5gIhvc%d=h%_aOWqGp%V7J<U1<XEkQ!<aIzyJ6;mHFa53S? zhcMt!FvP5{c9O{rw2ll>;qS<-H%A<pBLsCSLVutX9Yvth)$1Cmd_|KPfS&o`xS?}f z9m0RrF_7{A&O-BIR=LM62^Ji(nICRr6PwWjDx6>nBy?3=?(!Jm8ZF!KHGpZz_*bO& zQPwk$n|=m_DCMJ&n+DtGX+cH=67<2<(D{PVf3dC$>EL&*%LsVznRzVtbl{{9xR{R& zQiv(wwqy2Fl@c{C5G^BdBsPf_d8`f{*Tfd#@o{M<(7c)Q1TGOI_T*g6?c>UlE_j!r zpk(&&v;F!7?ZhvE1e~Jej-}kum08S`=8qJfiy4n#7k8;$`Oc6sVJ6y5(E!rT|BlU= zApt{t{2HFHlE5aPyrlx7PPatXel2hD-`n~vq*Gs3M+>fi91Q@Qik~-E5+Hl?>c-*l z{&_GV?tv2mL(+On>C_=G&F*gByOS#2G32n2v=O{`3%uyS1Wkcvk0<0Nm}$ML=xPDE z0AJ&SCjM~Yvgi$){M|3DsQy~EaFznr(a(7^E(G$v@PBu;=|*G0jjAuVPrnlN$T;HL zvJ=)!cSAM3Bli0bxCULQB`lz-U3*t*57LMx*t~D&Aduz+!uNGORtWLlh(130A<WZS zUU7rS-DFL~@}&01z0QD*)W3Zz0<|XUZAUn{^N|8=)Gnes#kL$d&B2jEj)bSQEROwG znQJ0>HbxYKnQZY5;+@pnbZp`kf=4I;E!(p|dQQy_Ki?3@FGSl4>APuw5m=g#BW@8t zRT%sxDP039n#JMg6*2nXU~ux|2CDE-kP^ey4%$l4_S`p67hI^0@VZI#n&gA$pTKj{ zYUyYlkYMl~ZOFG^Cdh%EgHYtkXgi9766~CHenkjhcyPBq{%ClYI>KDhj*@B0!u*7e z0*$!<zb4LP4lM0){*Ar@UZ3cas07VcA2||@=R0V-gCdwCKnD+Qj3w8uXH%jDjS)b@ zn(V=TR=FesKNiy}=q9v!y`O;lr-qbAHFSng+>-5V{d6K8Ks!WdAqzhO{(NG@R}lCL z(s?RYt$(kOo9JD|Rtnws{AX|x6(I4=OxpN116RO~5>tW9a)n3t%+d0@JkMxYMmF*q z$g&_NO6<4-yi}gAVQu}ZiSC)Hr%oEzIBV)@y14;EqGpe;jo#qj8w>&{+kI<%*r)yv D&uFa; literal 0 HcmV?d00001 diff --git a/dist/assets/tree1.cb6071c8.ogg b/dist/assets/tree1.cb6071c8.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f9a474a38d5b67cc788e86b02c6d88cd69e9bce4 GIT binary patch literal 6541 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 NJa9rjDhRyg{~vApS(N|) literal 0 HcmV?d00001 diff --git a/dist/assets/tree2.59edca84.ogg b/dist/assets/tree2.59edca84.ogg new file mode 100644 index 0000000000000000000000000000000000000000..b55d49ba593ecee7396a9d1e6579657149da34f3 GIT binary patch literal 6294 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 J?a3kw{{s(a-a!BW literal 0 HcmV?d00001 diff --git a/dist/assets/tree3.cf6be231.ogg b/dist/assets/tree3.cf6be231.ogg new file mode 100644 index 0000000000000000000000000000000000000000..61922ae9a57b0abb1249056e9846caca00b0bd2e GIT binary patch literal 6604 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 literal 0 HcmV?d00001 diff --git a/dist/assets/tree4.de868b31.ogg b/dist/assets/tree4.de868b31.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f5a02c500713e72ef79f10493b9b07f3a11503f7 GIT binary patch literal 6817 zcmai3c|4Tg_kXO}(qOVR%GwxF2pL5v+gN89YZKXbGDcL&GQ?PtorYxJeaH-1O7@U7 zTZodKXt9)h`aPrX=llEq{`kGV_jTt!=iYP9`<{F5xzD-JYm8l7OaXe}U&WENtc6D2 zR0uSpJ4qMd<7e-Nrw!0uEvG#Iz?X~e@L5l1Ow;^#p=r`M=;XL1PMP2TQMefXzzBg{ zOE+KFv&Mcd!k%vS=7-?IdcyLuvKM5P<mG8tbWDGQMK!OO(*f!LAdcsk(k{UB5+Q<` zCIa&?&3=z{0Zjw0Fqpi7O|Jw#K_ov%Gs;FXbT9!6&=ekM1VV`<4HgligsNp?I9wH^ zqLAR28*L1t`A?&TbOpH@EJDP2S!Is!1?4>$Q447a0mqhwiN`eSGsDY~ps={2u1PpE zav4T!m6jxhwaeD?5*ZaGW5YhlcE1g0*Nn;x*HhdRB)Vt>^8T4aTthb@oLQrrpQx<? zTEL8~hZ1`=iUo;MNS0GXVFkzIKmq{d<VuoqCD|Z?HEcjP06^5y(5{=X*N<SYt6}Uc zN3EDZX8<gqoGvL}H~y1uqPSI}#9>{GE|u=BIjr)B>bd}6g67b=2|aSC=Li5SIm)C0 zOHzR=X(=k6g&0{*4}<^!BRGx171K*P$yW!=u;Wy(ssE@psZIii>YxuH!*0$c%u%uo z0?dc|0GbiPMUrg~`Nzp2{3y;`)(Ye-c|OOAGZR&f6e8<Vf)XE-o+FpY`2N?6WVwEj z$|YNIWP)-_<n|mZwm%fSI%qIciZ*t$f5nc>)d^CkD}oX-<0v4-RN)q%sb39Jy3d0! zkM(I|cpB7Uv)Zu&BlFO@#m&!C9}jkblyT?EdotwTB8PH^P6pSj4vCDrF^ymuUUC)I z=CT)*U(wiImSq(TCu^<_ExYC?tFTC<+{B>Ze;iH^sI!PfKry=iH1<&<k^Fu=h@zY@ zlvGJ^ZmfK-^s~OhMrFPH8Rta~xpv5vGZpO^Q!m9aOOMaUrOfbJb8C+Z3I>HJNXD=o z`cD}2y(Y7OV*;9nY#)UvBKxsP75{OkFl}o9!1ya{h)d{y>lfGnmjs#{tTH3=iX*04 zSc21dD#5BQ*k&REw;MbI);+=v%Ty<;|5N`g9X!#(V6gvL2%?i8--lclPlo)nOmIU1 zU#QMuyy?}5>ko^+8J0HwreMsYiiT>9C}4+<<Ioqp&`M4tia1jx9M;^+BGt==N|;J> zn%WJX{f~+}a=1ip08mL3LnMkK66clU#r4!(yQKhiX4;7)eUyx!S56eyOO$X+bO}l= z&d6NJ$d)QS6agSK5n3S?29inwNyUNj%TbB08L7o3nP++m*BdI={##`~3~+G(@E6zd z6W76rYhgg*(7PcVH1ERN<ixf7q<e=I{;Y9`M-_Cah5w(I#=kZI061R%1??Sz8FEXE zVq~zUGNTx+QB&-HD~2NqhCHBSS!oBh1xD<bDNfL1l}RT_wu>)gG>#ya`(?v&cDa$^ z<Sr;uGodq8kC;w7SBwA}JXdnva_um`e)OuiRzFfosGt+6Q<C=<jjAr>KaY~2nt9BV z!S1SLfuMejPyy6|R1GQtN5CKZ)4_z}bm~w52!&wS5E04t{fMOmOpn|m3`0T|kxl!N zl3B?;$kSO#+=v3Q1IQ&O_v<Z?lZN#q!T4yQ1Am&53XWO;1P;vk!rmk)7(yisd9;k7 zxKSRh(G-O@3W{hmtRd8J)C_CIYdD%BVR+uq5Q;VB(ZU|bnx-0JQ=A4Aye7@CGrU-A zos-QD7$=0;^M;eW*wHaVEQJ7eXHvXo(*6yF9XG?;C}BsbifDfv8tY^QA_q8)Q?V9f z1Vbop+|+RLI2N0Vog8(-rV?!Zu{aCd_&C;LCwOu!7&k_^!B0aTA0=P|2)1KhvuOmJ z<>^DKa9GePMGzUZ$_s?D_?OMt$!)?Y!3)QuHBLj;!lvLr-PshULz`(_Qvv};^>Rq} zvf(oVZ3ekFQgAbAgeiV++-}?(1+OW89PR?nV%!UNA<}9**wzedYvD9`!Q5&GJcreU zS$=KoD8V!!!j|A<TTigH^2RMSQR6)Kd*s$$od2cmZ>yX-N<~z8v$vJ6?X`ZEZrnPf zI#Np*!4hW7aJFe)HUi!_okLKoJwuC~2%GV^`LSRZ0bE*TPtCdVnsSc1%@b{(_gib; zQE&E9<2}}Ts`pV&yD3hAUQ-s%ICx)!7p$@B{Jk4sE@%m10MtWRopKJtgA4%S3HT@k z%OiU*`5_`87!rSY0unCaV1z<QP)tznTn-Sau6)OSJ=TI+D9R0yJZz1Spqij!Dk#>b z9@UW;YxaU#OO%@&#oWQ8qBBa4H3N^4U&>F$Sf44VO-1Sy;1e)ML<$lyF%kv*XO{9E z2hl6S`DU2tl6<Ixq(o;TCRU<A(1s*a$B*X(p)k?aAR`9R#p}?|<zNCrfs-Q&YRysZ z6@Er25UNi@4}{X!Lpb;AtqSMA)zG0q=^;R?JV7XZJvk~r-Wx#`M7e=b9(ssQ5K4wR zt-?|fVP?-!&^}?`_nczxaX5LoM8P}zatb*4(SmkMObJb+ta_Z^;SGX%%``@_j{i=j zOx<-nry9i^PeP3II((L^6ZYtDz6AkS-p-GTuI@1Rh>=?|LDANsuU8FD?o}~%5@gUO zFX`lW=&$a)Zt6jy^4~F%8M}u6+}sHZcdu9kp%7HEM`iQ)beJ>%*c~1@qP&S~HwqAD z0|41bxg}u*HZY4NGlQoyDG_-@gqSS9Buq@eEWwD0)@$T&6O>0ma<X+yb#fxcLyi~B z^>bi`whJ$8{|H1xmNNnvI)EeI!7AG&v(&veULq)4vb3;ll`3YH4JVbBmQuZfvJv33 zp|aBEaHOHKY%SaEa723T1*lb8T6w1Tg->ZI_@)J~6<d!>R~x{Qnho}{wVoR3DXRC0 zw$%pk#zFO3>$wRE?Z2po=};^88)ScV`hxG>ORwmF;+Du!E+bMWJv;4H=m?tFDeMTr zbPE%~e2O3@W5ATe3<Cgq14)KMvva|BzGyjR%-W#>Y+`7XM+KNN5A){#+t2|R9!>yr zOvx1`&H2ZV$7y~<6vDzeRN9j9gL;w@1)y8W;fWYj3Lb;fE1`_hqLt=7X9&hkrc==4 zjWFoZSh*cAeq=hW@dK)0%*Rm1rtx4Gc4t6?B?(hTS%eWeODWbK{m4CG1CQ!4L4SxQ zKM*nky8pIa+bRoO%OUii4PYTA+xLN!UO~w%(yl5G{&ew1a-CpTgXJlWOUuYKF6|=P z2kv<|cp$UzoQGFZl|wFzi2t9iCU^%uysHlW>(=^|CQQ4((g7h%oM5U^Dv$TYDDYa+ zLWy=y414D%Eq7iQxhSo~D8lp{tBdHUb=DSGsK>I2<SRHD$vNh?TjNW>9RR{WbrCv% znT5?62zf=<x+J{J$P%vv02)z!km$&Wxvd;-VbMbRkaot1Ye4Z|^}3DqA!iw`4R(OZ zo<$Q9W(iZLV^voE5D9<3MLa>yF*REi264d*3e3>~bM=6zXl7gY;KbbW)*iqLCPuLE z1A73Vd^IF0YEf2RK}lKVlA5|E7!!X=NJz*bp$@hoA%~w9jH2d;Ljdj5f+l$VO7jlC zq-0f5SxI40UU5lzU0Gp%0XZc-I_jR@r6J+lNx#NV60=6+p3EvB?{?jIa_{e-AJcV2 zF4PT)#l^3G?fRX?0QfJ2{ay0|aWadXuTXU%C??}p-OuXTtar{`4$a0xOWP6$JH0P` zw1J<`nSKf6iPd}P$nR4)0TXNwz#Sp!oEw;biu&*%Gk)ghC_%sf-1Kkv-o~WjwX;55 zRWEmXzZUUz=r3sHT<SCS<Q7h0$3TCYZrd7l_c<_BzN}75ST-}dWbT5G#aIdzrCD=U z3|i)XvGVbuuk`U5TW>*g+hr?1*lH85d}pQM<sx*gxx6aUx$J3G4Q?%I3hU1kvD#pE zOsxjk-25y0ok#(FeefLyfG2QyknV45+yu1G!33pnmUDG<38Gq_rKY;kJ&^)ye^%tS zyz-kx2912!WEwlN|MFmJzdlItm4(Qsrc+UK5f^L5d0u_t9pZjLTA5cu5HMD4%i2YV zJ9!O3>*FU_zbSDgg&MdfY;>@G*LksMCIqoloGp#7Oog$%bec3}0(?`KpV0BzYX-A- ziuvTLPE(#4Y71^HNw_AaUy(h?IV1bIvX|H3d+W2)6@RHo;TF=(k3k{$w3$1aqS~b} zzZ5^nWB>a*)6bfUcK6k$gW7rZpH!;t_&;!Y+~$xU9OmUYORr-cQlH_MPz(*$HE?|v z&Z8(+RTXf(-aGAMTqt_i`q^fGd~(8B=+~=TGAVTzQ01XQoC4Ngd*WAwuMOQQyR}p8 z-m&x`y7y<fiv}=c?UHU+vt1!Y5zy?~o3S}c$0lo|ba08|!o+h+DooZAd#%*O^}@-& zCFA^Fd-A|W=x00S>kPKzn?{DGAZCS4Bw2$`+0lmP0yW|RkqZwq_wJ|h?fu1=^RVst z+y>(ps_dgxT?Ly!M^>E|jz5Y>Qn&qoF|#UqCji$8h|29Ar?G2SLqc=4X1G85^v|D= zWc@}7_rH35Y#|NmvfDtB(lHmfb!pAoujuW@FB7rH%(tPknz?K6eDaaYJ$75%6+_zT zkLu^)lD-2?Ph1B8WjZxP);!cc%#Hq~y)uXO34lv|8?9M-HN8OSH3fN{vb}R-y?!U# zbYPNPJQ$%V(o71pwq1w07dNPPdOTFK7ytS3I`{fc!AQ)JPxMu6cR2d<#Ncuad6TEU z#Ohc*3D?kQe)c}%cwF!3m0kWe>d^qNuu1w8SvP{FrXR$!2I-Wz%<S3)y?t7xw(zMG znopM}lDMTwKs^0;DcO@C#50sVG_0k|8T2<?#*eK!N1$bc?2*;n7@#KAui*5EHR$Gt zyOmRQIPbmWTX(hF5AL|_xJeiWo%X<xwcq1^hZ_XG%l&Bn<OcnhN0JU1>9<Qd=R6pt zFB`SLre>DGqmHrD^_w{S<V5rN@tyiAdNIdMFR&}?WQtT6?-}tulIUMzlO3=GKb33C zcLK?qPf0HYn4H~ycpa0RdcLS&;mc4IR|0vorx$N3;5LB}_)^L69==f-k)FeUx_(XX zq1V%;_eoBUI9*Y$0iFHf+ZXGky}rx*#;X<BqqkjuPCOWoR^D4!2zswFd-nY9Vhb+H zk*=Ppr%T24gtpE4_xW<BGjU%g&b%NKj^8YQ$Wp|7Vpn~(aFzOqYx-#jzbZ?(ZJ~GY zHKONlQC{{^PT#U;_is%|t#}_$_~ZDU;Wp=4uEkfp;Y^85?0kKa!l8Oz@2dQA^O3*d zS;0r;G=@UXZ9}f=KEPqZw69g4ponmvw#R3T96+m%J!#-Dx49v3<M(LkpsIT`cHnKU zo>;45o730;Oy$1D8&<*3?(7<ZW-*!_>?Frq=-t|u>q=ffw&Qc0oo^3*F-7Tk$c{5R zeZOu7jklT`<^G08F#9HD`S4gY5eX7IrQVTeXJQAGz9x&x_Cg+)KsM84N|UbUaqHjn z%h=e5MJ=60%62ebmz*i06ui3%WZ2-M<EK-0@@=pZBHT6Ng^B!cYF-pza0ll%Cv5NE z_Y0mGPm5Ymt~&PF?eyA*X|!ZNXPw4h>Js-yp8RdOZeR~=hka|EPj5(E#_!VmhNA9f z)!xc~1rY4Y(0=kc`2n|27yraCHd=r97&vEdoWbxq*_o(7_Hdp!t!d=*NYvl!<p&qV zR`sBtX1^8`$D|(IaNCkIbH4n&GRoKY41z8jjvL|M=!g^%uE#zI+JM;1<aug0KeCM7 zMct)tW#iTh|NfTNac95x)cynv-c_ILR$kXaXMqUIYQ1_oYT$9i`nk7-fe)RkZ2&rR zYsVgkM?VTDd7_)|0TAEOU=5r35`E4Co8=9U-CFBwagTfB$iTT*571T~(ED=+&#kLY z(zy|T&myg4ssgH~or6x;|H3EcpR%8eDiz#zWSMk)-OZC{<ksKb6ma#?dw6ptzL=3m zY%hB5BxgXQ3wwI#q=HjLd+XYxmn(AI10r`%r@!_a8%~>9PnkGTaM7LAHEKTZs$5i1 zU$)9MC7jpQf{uSZK6GQZ=J<KdmrUW*Gp4$?6dUU|1%kM7=Zg+_Q;|GAb)`o3AK%_+ zJ-DbkJS{VS!&N1AEw$=H)xCMN_ftJ*ZqXBs{;F-qFNbf5{neX4@H|ERUG)P3!Ks^M zdENpMe&MtJ%1@GaONOP&j=f+@UHVCQ^RD34F#0XN4AlgeZ^dqOS?U#*8KT|w@!|(R z;bl0!6t(RUbn~+9DY?i`11iXk&{faJ*1E|m(l@2yjb+Fy<hxjWZ0vCNr3Pz7#KLIG zZB~VNPnj7qkD^}aeGAb=`HL16fz@QhgpXL#g9_U|iL>@!2Nd4A@X>q9IeF?Q#JoG% zDD2b@3H1LU#dUF5lF9k8&!#a_*mc1rsBAO&g?z1f$o->SbVB#w!RMN<OaQ*;M(ivM zi5$cEDd|J;TJ2WPFYhmWTHO5oOZ)M|iXRio^2g{S>Wvf4@BCN_oGSc@*59adRtXQ< zoigW=7UllX`iq~Lx%0u4u*b^n^RbvdQxD6@5zKm2p?QU8qvQdpq>2AmzSO;njwhu( z=A%(Io$S&+lr{}Vp>tztp<|xM6SVUbHmSjIS4OhMB-gil6VYQY?3fc}6a24S(>!t= z9{gm(lo8l^-a?wbm`mrW?@U%Q<rcN_S!>U;ntkcG=4QKE`2O3=q~4~7Gbdaw#mmSl zk}oE$={Jn``f(lITScrdueI42a0P7dHh<%KcFk~m`V8Njrc5{86_cIpcdog=Za~)$ zdR|>B4ANK}j+A~YSyorIfaG*LS&;gg{JbZvBLH%o&B7tCsi;S1PV1Gy^NI$hW0jU7 z&vfe8>;ljejQ8LNO|?g-=|WB&fz>*QYtW}Vc@^@B^>>hR9~fI-+>4(toM^YTBMqD# zNc!$*F1Eztz29DX&IaSY-iufv;<rlcC2pNc_?Z^LUg|`3wN1Hnv~RhpsqU<pp}4Db z)VURLo1-pP%kN0_>t;s>8YSWV6=rQM`Y>I&XYU{SCRSfuA1N>Q?!}eGZd)$p8Sa~z z$wEH6UO37{&ro}hBXV$he8><0jeJ2l!UMDfGXRb$9>e;v$_-MeV6{^+QS)sFLj%rw zH&5<%<gBIu!`$u`4{dwi;7?g3m+~1&@;Q8wI>`%(SIFLYZCBOwtl71>xm>s-=bM@@ zx^ns`|BL0Fkn~O{l~JK;(lv?R{Od-<G`VX+%hvk{d{9X`Y$sRz%J*c&q*#%axQq+F z9lGsm$<lQ~vNenDB(u}8tjoal-CvXn+j9Drr|y~Gxy9_~S5qv_8k-;9e|Q((Ezhsr z96EuD_DJKi_^e}bY(~XSzh?i7?wu?#zS7#h4$)_UE7vRs1}S|<6EEHwMpB3TO)?rC zGJ9+;hfSrd#xZQ3^BVu$`6;Vn{cVxfoZfc-8=EYPADYIewd}qjV3@D1ccSfikNbIN zoG@rix&1AcX^`cpDIIVfe$eb?OQaX94`#yFB=X-jY_OtyH!?9SDOAenSq`;oGf|mz z7V;E7KD68YVZ(>J*UMRMIv=JbWgQiRwOGlOy3*EFN>({CH)K1?9W#VB9g-tm$hunS zMlX-2W;;5F#;LrS;1K`fc<H#)$y>Hk24+6lqMskdv|B_#=e5cve`J}J{~orqbBC4v zs>4jitiO6%E3^fu!4L2|7cd$MkQ`FDyu3Y8DknP+6ZFbhfIQbAX6b&u;_8o})<EF< z*~n(TlAG_|L*Ag0B^kGNEdyTX>a#j+vaY49vhpjRo5Z|GQvTx0&GMXb`yNW`;ik#v z-Rj1zgY>M~M`)L_9~LQQsuyp!7TSj1NBO|-=qu@*eS9#h7Zg#~6GktsenbsE^Q-uj zNelB_XG5j9To`kgjZ>-9_<m1dZFAp&?(K&6_UXCoI8)<WS~9`z56ime>n4^d_5RjO za+h!NRdu+QQXUI={ea)WPjJR=K^-2T-A4DJL0N6u1M``gX`xXnj0rZ<Gkpw68Ppg> z-kOsczS(?7(8)x2_x3Zjh}c`YJ(c1Erl3PWJ8VHabWIW&^;y(+{n!cYszHgP(|j+! z*%z)E8{+deigFfZ>zPhTE47vcoIL+^dmHoO!qEnU{4@qxRL`vhTQg0jiw-=W`a0)& zNJbj+m1DZ~=vJ}I=E)_2C8aCM#f#VV-%9le9GD%n3$fOj%?+WO{ka{4LTF*KS#Fz2 zuLOk3uycWb8bJZJD&D#N!j^22av&Kuf9tX8SXsy~!rLrGyVR{Ft0rqprjRNuLH05b QA_N1%8QcMK|9A-SKkoMdga7~l literal 0 HcmV?d00001 diff --git a/dist/assets/vendor.b16e062d.js b/dist/assets/vendor.b16e062d.js new file mode 100644 index 0000000..7fe44f5 --- /dev/null +++ b/dist/assets/vendor.b16e062d.js @@ -0,0 +1,3015 @@ +/** + * @license + * Copyright 2010-2022 Three.js Authors + * SPDX-License-Identifier: MIT + */const is="137";const ep=1003;const Es="300 es";class on{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});const n=this._listeners;n[e]===void 0&&(n[e]=[]),n[e].indexOf(t)===-1&&n[e].push(t)}hasEventListener(e,t){if(this._listeners===void 0)return!1;const n=this._listeners;return n[e]!==void 0&&n[e].indexOf(t)!==-1}removeEventListener(e,t){if(this._listeners===void 0)return;const i=this._listeners[e];if(i!==void 0){const r=i.indexOf(t);r!==-1&&i.splice(r,1)}}dispatchEvent(e){if(this._listeners===void 0)return;const n=this._listeners[e.type];if(n!==void 0){e.target=this;const i=n.slice(0);for(let r=0,a=i.length;r<a;r++)i[r].call(this,e);e.target=null}}}const st=[];for(let s=0;s<256;s++)st[s]=(s<16?"0":"")+s.toString(16);const fr=Math.PI/180,Zr=180/Math.PI;function Ft(){const s=Math.random()*4294967295|0,e=Math.random()*4294967295|0,t=Math.random()*4294967295|0,n=Math.random()*4294967295|0;return(st[s&255]+st[s>>8&255]+st[s>>16&255]+st[s>>24&255]+"-"+st[e&255]+st[e>>8&255]+"-"+st[e>>16&15|64]+st[e>>24&255]+"-"+st[t&63|128]+st[t>>8&255]+"-"+st[t>>16&255]+st[t>>24&255]+st[n&255]+st[n>>8&255]+st[n>>16&255]+st[n>>24&255]).toUpperCase()}function vt(s,e,t){return Math.max(e,Math.min(t,s))}function Lo(s,e){return(s%e+e)%e}function pr(s,e,t){return(1-t)*s+t*e}function As(s){return(s&s-1)===0&&s!==0}function Po(s){return Math.pow(2,Math.floor(Math.log(s)/Math.LN2))}class J{constructor(e=0,t=0){this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e,t){return t!==void 0?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this)}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e,t){return t!==void 0?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this)}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,n=this.y,i=e.elements;return this.x=i[0]*t+i[3]*n+i[6],this.y=i[1]*t+i[4]*n+i[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,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=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.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}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,n=this.y-e.y;return t*t+n*n}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t,n){return n!==void 0&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const n=Math.cos(t),i=Math.sin(t),r=this.x-e.x,a=this.y-e.y;return this.x=r*n-a*i+e.x,this.y=r*i+a*n+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}J.prototype.isVector2=!0;class at{constructor(){this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}set(e,t,n,i,r,a,o,c,l){const h=this.elements;return h[0]=e,h[1]=i,h[2]=o,h[3]=t,h[4]=r,h[5]=c,h[6]=n,h[7]=a,h[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],this}extractBasis(e,t,n){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const n=e.elements,i=t.elements,r=this.elements,a=n[0],o=n[3],c=n[6],l=n[1],h=n[4],u=n[7],d=n[2],p=n[5],g=n[8],_=i[0],M=i[3],m=i[6],f=i[1],E=i[4],y=i[7],T=i[2],C=i[5],L=i[8];return r[0]=a*_+o*f+c*T,r[3]=a*M+o*E+c*C,r[6]=a*m+o*y+c*L,r[1]=l*_+h*f+u*T,r[4]=l*M+h*E+u*C,r[7]=l*m+h*y+u*L,r[2]=d*_+p*f+g*T,r[5]=d*M+p*E+g*C,r[8]=d*m+p*y+g*L,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],a=e[4],o=e[5],c=e[6],l=e[7],h=e[8];return t*a*h-t*o*l-n*r*h+n*o*c+i*r*l-i*a*c}invert(){const e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],a=e[4],o=e[5],c=e[6],l=e[7],h=e[8],u=h*a-o*l,d=o*c-h*r,p=l*r-a*c,g=t*u+n*d+i*p;if(g===0)return this.set(0,0,0,0,0,0,0,0,0);const _=1/g;return e[0]=u*_,e[1]=(i*l-h*n)*_,e[2]=(o*n-i*a)*_,e[3]=d*_,e[4]=(h*t-i*c)*_,e[5]=(i*r-o*t)*_,e[6]=p*_,e[7]=(n*c-l*t)*_,e[8]=(a*t-n*r)*_,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,n,i,r,a,o){const c=Math.cos(r),l=Math.sin(r);return this.set(n*c,n*l,-n*(c*a+l*o)+a+e,-i*l,i*c,-i*(-l*a+c*o)+o+t,0,0,1),this}scale(e,t){const n=this.elements;return n[0]*=e,n[3]*=e,n[6]*=e,n[1]*=t,n[4]*=t,n[7]*=t,this}rotate(e){const t=Math.cos(e),n=Math.sin(e),i=this.elements,r=i[0],a=i[3],o=i[6],c=i[1],l=i[4],h=i[7];return i[0]=t*r+n*c,i[3]=t*a+n*l,i[6]=t*o+n*h,i[1]=-n*r+t*c,i[4]=-n*a+t*l,i[7]=-n*o+t*h,this}translate(e,t){const n=this.elements;return n[0]+=e*n[2],n[3]+=e*n[5],n[6]+=e*n[8],n[1]+=t*n[2],n[4]+=t*n[5],n[7]+=t*n[8],this}equals(e){const t=this.elements,n=e.elements;for(let i=0;i<9;i++)if(t[i]!==n[i])return!1;return!0}fromArray(e,t=0){for(let n=0;n<9;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){const n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e}clone(){return new this.constructor().fromArray(this.elements)}}at.prototype.isMatrix3=!0;function Na(s){for(let e=s.length-1;e>=0;--e)if(s[e]>65535)return!0;return!1}function fi(s){return document.createElementNS("http://www.w3.org/1999/xhtml",s)}const za={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},wt={h:0,s:0,l:0},Ti={h:0,s:0,l:0};function mr(s,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?s+(e-s)*6*t:t<1/2?e:t<2/3?s+(e-s)*6*(2/3-t):s}function Wn(s){return s<.04045?s*.0773993808:Math.pow(s*.9478672986+.0521327014,2.4)}function gr(s){return s<.0031308?s*12.92:1.055*Math.pow(s,.41666)-.055}class me{constructor(e,t,n){return t===void 0&&n===void 0?this.set(e):this.setRGB(e,t,n)}set(e){return e&&e.isColor?this.copy(e):typeof e=="number"?this.setHex(e):typeof e=="string"&&this.setStyle(e),this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,this}setRGB(e,t,n){return this.r=e,this.g=t,this.b=n,this}setHSL(e,t,n){if(e=Lo(e,1),t=vt(t,0,1),n=vt(n,0,1),t===0)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+t):n+t-n*t,r=2*n-i;this.r=mr(r,i,e+1/3),this.g=mr(r,i,e),this.b=mr(r,i,e-1/3)}return this}setStyle(e){function t(i){i!==void 0&&parseFloat(i)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let n;if(n=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(e)){let i;const r=n[1],a=n[2];switch(r){case"rgb":case"rgba":if(i=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return this.r=Math.min(255,parseInt(i[1],10))/255,this.g=Math.min(255,parseInt(i[2],10))/255,this.b=Math.min(255,parseInt(i[3],10))/255,t(i[4]),this;if(i=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return this.r=Math.min(100,parseInt(i[1],10))/100,this.g=Math.min(100,parseInt(i[2],10))/100,this.b=Math.min(100,parseInt(i[3],10))/100,t(i[4]),this;break;case"hsl":case"hsla":if(i=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a)){const o=parseFloat(i[1])/360,c=parseInt(i[2],10)/100,l=parseInt(i[3],10)/100;return t(i[4]),this.setHSL(o,c,l)}break}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(e)){const i=n[1],r=i.length;if(r===3)return this.r=parseInt(i.charAt(0)+i.charAt(0),16)/255,this.g=parseInt(i.charAt(1)+i.charAt(1),16)/255,this.b=parseInt(i.charAt(2)+i.charAt(2),16)/255,this;if(r===6)return this.r=parseInt(i.charAt(0)+i.charAt(1),16)/255,this.g=parseInt(i.charAt(2)+i.charAt(3),16)/255,this.b=parseInt(i.charAt(4)+i.charAt(5),16)/255,this}return e&&e.length>0?this.setColorName(e):this}setColorName(e){const t=za[e.toLowerCase()];return t!==void 0?this.setHex(t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=Wn(e.r),this.g=Wn(e.g),this.b=Wn(e.b),this}copyLinearToSRGB(e){return this.r=gr(e.r),this.g=gr(e.g),this.b=gr(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return this.r*255<<16^this.g*255<<8^this.b*255<<0}getHexString(){return("000000"+this.getHex().toString(16)).slice(-6)}getHSL(e){const t=this.r,n=this.g,i=this.b,r=Math.max(t,n,i),a=Math.min(t,n,i);let o,c;const l=(a+r)/2;if(a===r)o=0,c=0;else{const h=r-a;switch(c=l<=.5?h/(r+a):h/(2-r-a),r){case t:o=(n-i)/h+(n<i?6:0);break;case n:o=(i-t)/h+2;break;case i:o=(t-n)/h+4;break}o/=6}return e.h=o,e.s=c,e.l=l,e}getStyle(){return"rgb("+(this.r*255|0)+","+(this.g*255|0)+","+(this.b*255|0)+")"}offsetHSL(e,t,n){return this.getHSL(wt),wt.h+=e,wt.s+=t,wt.l+=n,this.setHSL(wt.h,wt.s,wt.l),this}add(e){return this.r+=e.r,this.g+=e.g,this.b+=e.b,this}addColors(e,t){return this.r=e.r+t.r,this.g=e.g+t.g,this.b=e.b+t.b,this}addScalar(e){return this.r+=e,this.g+=e,this.b+=e,this}sub(e){return this.r=Math.max(0,this.r-e.r),this.g=Math.max(0,this.g-e.g),this.b=Math.max(0,this.b-e.b),this}multiply(e){return this.r*=e.r,this.g*=e.g,this.b*=e.b,this}multiplyScalar(e){return this.r*=e,this.g*=e,this.b*=e,this}lerp(e,t){return this.r+=(e.r-this.r)*t,this.g+=(e.g-this.g)*t,this.b+=(e.b-this.b)*t,this}lerpColors(e,t,n){return this.r=e.r+(t.r-e.r)*n,this.g=e.g+(t.g-e.g)*n,this.b=e.b+(t.b-e.b)*n,this}lerpHSL(e,t){this.getHSL(wt),e.getHSL(Ti);const n=pr(wt.h,Ti.h,t),i=pr(wt.s,Ti.s,t),r=pr(wt.l,Ti.l,t);return this.setHSL(n,i,r),this}equals(e){return e.r===this.r&&e.g===this.g&&e.b===this.b}fromArray(e,t=0){return this.r=e[t],this.g=e[t+1],this.b=e[t+2],this}toArray(e=[],t=0){return e[t]=this.r,e[t+1]=this.g,e[t+2]=this.b,e}fromBufferAttribute(e,t){return this.r=e.getX(t),this.g=e.getY(t),this.b=e.getZ(t),e.normalized===!0&&(this.r/=255,this.g/=255,this.b/=255),this}toJSON(){return this.getHex()}}me.NAMES=za;me.prototype.isColor=!0;me.prototype.r=1;me.prototype.g=1;me.prototype.b=1;let Sn;class xn{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement=="undefined")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{Sn===void 0&&(Sn=fi("canvas")),Sn.width=e.width,Sn.height=e.height;const n=Sn.getContext("2d");e instanceof ImageData?n.putImageData(e,0,0):n.drawImage(e,0,0,e.width,e.height),t=Sn}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&e instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap){const t=fi("canvas");t.width=e.width,t.height=e.height;const n=t.getContext("2d");n.drawImage(e,0,0,e.width,e.height);const i=n.getImageData(0,0,e.width,e.height),r=i.data;for(let a=0;a<r.length;a++)r[a]=Wn(r[a]/255)*255;return n.putImageData(i,0,0),t}else if(e.data){const t=e.data.slice(0);for(let n=0;n<t.length;n++)t instanceof Uint8Array||t instanceof Uint8ClampedArray?t[n]=Math.floor(Wn(t[n]/255)*255):t[n]=Wn(t[n]);return{data:t,width:e.width,height:e.height}}else return console.warn("THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied."),e}}let Do=0;class rt extends on{constructor(e=rt.DEFAULT_IMAGE,t=rt.DEFAULT_MAPPING,n=1001,i=1001,r=1006,a=1008,o=1023,c=1009,l=1,h=3e3){super();Object.defineProperty(this,"id",{value:Do++}),this.uuid=Ft(),this.name="",this.image=e,this.mipmaps=[],this.mapping=t,this.wrapS=n,this.wrapT=i,this.magFilter=r,this.minFilter=a,this.anisotropy=l,this.format=o,this.internalFormat=null,this.type=c,this.offset=new J(0,0),this.repeat=new J(1,1),this.center=new J(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new at,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=h,this.userData={},this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1,this.needsPMREMUpdate=!1}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(e){return this.name=e.name,this.image=e.image,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.encoding=e.encoding,this.userData=JSON.parse(JSON.stringify(e.userData)),this}toJSON(e){const t=e===void 0||typeof e=="string";if(!t&&e.textures[this.uuid]!==void 0)return e.textures[this.uuid];const n={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,mapping:this.mapping,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,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(this.image!==void 0){const i=this.image;if(i.uuid===void 0&&(i.uuid=Ft()),!t&&e.images[i.uuid]===void 0){let r;if(Array.isArray(i)){r=[];for(let a=0,o=i.length;a<o;a++)i[a].isDataTexture?r.push(_r(i[a].image)):r.push(_r(i[a]))}else r=_r(i);e.images[i.uuid]={uuid:i.uuid,url:r}}n.image=i.uuid}return JSON.stringify(this.userData)!=="{}"&&(n.userData=this.userData),t||(e.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==300)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case 1e3:e.x=e.x-Math.floor(e.x);break;case 1001:e.x=e.x<0?0:1;break;case 1002:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case 1e3:e.y=e.y-Math.floor(e.y);break;case 1001:e.y=e.y<0?0:1;break;case 1002:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&this.version++}}rt.DEFAULT_IMAGE=void 0;rt.DEFAULT_MAPPING=300;rt.prototype.isTexture=!0;function _r(s){return typeof HTMLImageElement!="undefined"&&s instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&s instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&s instanceof ImageBitmap?xn.getDataURL(s):s.data?{data:Array.prototype.slice.call(s.data),width:s.width,height:s.height,type:s.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}class ke{constructor(e=0,t=0,n=0,i=1){this.x=e,this.y=t,this.z=n,this.w=i}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,n,i){return this.x=e,this.y=t,this.z=n,this.w=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){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: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e,t){return t!==void 0?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this)}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e,t){return t!==void 0?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this)}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,n=this.y,i=this.z,r=this.w,a=e.elements;return this.x=a[0]*t+a[4]*n+a[8]*i+a[12]*r,this.y=a[1]*t+a[5]*n+a[9]*i+a[13]*r,this.z=a[2]*t+a[6]*n+a[10]*i+a[14]*r,this.w=a[3]*t+a[7]*n+a[11]*i+a[15]*r,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,n,i,r;const c=e.elements,l=c[0],h=c[4],u=c[8],d=c[1],p=c[5],g=c[9],_=c[2],M=c[6],m=c[10];if(Math.abs(h-d)<.01&&Math.abs(u-_)<.01&&Math.abs(g-M)<.01){if(Math.abs(h+d)<.1&&Math.abs(u+_)<.1&&Math.abs(g+M)<.1&&Math.abs(l+p+m-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const E=(l+1)/2,y=(p+1)/2,T=(m+1)/2,C=(h+d)/4,L=(u+_)/4,Y=(g+M)/4;return E>y&&E>T?E<.01?(n=0,i=.707106781,r=.707106781):(n=Math.sqrt(E),i=C/n,r=L/n):y>T?y<.01?(n=.707106781,i=0,r=.707106781):(i=Math.sqrt(y),n=C/i,r=Y/i):T<.01?(n=.707106781,i=.707106781,r=0):(r=Math.sqrt(T),n=L/r,i=Y/r),this.set(n,i,r,t),this}let f=Math.sqrt((M-g)*(M-g)+(u-_)*(u-_)+(d-h)*(d-h));return Math.abs(f)<.001&&(f=1),this.x=(M-g)/f,this.y=(u-_)/f,this.z=(d-h)/f,this.w=Math.acos((l+p+m-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,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=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.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(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this.w=e.w+(t.w-e.w)*n,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t,n){return n!==void 0&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),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}}ke.prototype.isVector4=!0;class Mt extends on{constructor(e,t,n={}){super();this.width=e,this.height=t,this.depth=1,this.scissor=new ke(0,0,e,t),this.scissorTest=!1,this.viewport=new ke(0,0,e,t),this.texture=new rt(void 0,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.isRenderTargetTexture=!0,this.texture.image={width:e,height:t,depth:1},this.texture.generateMipmaps=n.generateMipmaps!==void 0?n.generateMipmaps:!1,this.texture.internalFormat=n.internalFormat!==void 0?n.internalFormat:null,this.texture.minFilter=n.minFilter!==void 0?n.minFilter:1006,this.depthBuffer=n.depthBuffer!==void 0?n.depthBuffer:!0,this.stencilBuffer=n.stencilBuffer!==void 0?n.stencilBuffer:!1,this.depthTexture=n.depthTexture!==void 0?n.depthTexture:null}setTexture(e){e.image={width:this.width,height:this.height,depth:this.depth},this.texture=e}setSize(e,t,n=1){(this.width!==e||this.height!==t||this.depth!==n)&&(this.width=e,this.height=t,this.depth=n,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){return this.width=e.width,this.height=e.height,this.depth=e.depth,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.image=Object.assign({},e.texture.image),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,this.depthTexture=e.depthTexture,this}dispose(){this.dispatchEvent({type:"dispose"})}}Mt.prototype.isWebGLRenderTarget=!0;class Io extends Mt{constructor(e,t,n){super(e,t);const i=this.texture;this.texture=[];for(let r=0;r<n;r++)this.texture[r]=i.clone()}setSize(e,t,n=1){if(this.width!==e||this.height!==t||this.depth!==n){this.width=e,this.height=t,this.depth=n;for(let i=0,r=this.texture.length;i<r;i++)this.texture[i].image.width=e,this.texture[i].image.height=t,this.texture[i].image.depth=n;this.dispose()}return this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t),this}copy(e){this.dispose(),this.width=e.width,this.height=e.height,this.depth=e.depth,this.viewport.set(0,0,this.width,this.height),this.scissor.set(0,0,this.width,this.height),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,this.depthTexture=e.depthTexture,this.texture.length=0;for(let t=0,n=e.texture.length;t<n;t++)this.texture[t]=e.texture[t].clone();return this}}Io.prototype.isWebGLMultipleRenderTargets=!0;class rs extends Mt{constructor(e,t,n={}){super(e,t,n);this.samples=4,this.ignoreDepthForMultisampleCopy=n.ignoreDepth!==void 0?n.ignoreDepth:!0,this.useRenderToTexture=n.useRenderToTexture!==void 0?n.useRenderToTexture:!1,this.useRenderbuffer=this.useRenderToTexture===!1}copy(e){return super.copy.call(this,e),this.samples=e.samples,this.useRenderToTexture=e.useRenderToTexture,this.useRenderbuffer=e.useRenderbuffer,this}}rs.prototype.isWebGLMultisampleRenderTarget=!0;class dt{constructor(e=0,t=0,n=0,i=1){this._x=e,this._y=t,this._z=n,this._w=i}static slerp(e,t,n,i){return console.warn("THREE.Quaternion: Static .slerp() has been deprecated. Use qm.slerpQuaternions( qa, qb, t ) instead."),n.slerpQuaternions(e,t,i)}static slerpFlat(e,t,n,i,r,a,o){let c=n[i+0],l=n[i+1],h=n[i+2],u=n[i+3];const d=r[a+0],p=r[a+1],g=r[a+2],_=r[a+3];if(o===0){e[t+0]=c,e[t+1]=l,e[t+2]=h,e[t+3]=u;return}if(o===1){e[t+0]=d,e[t+1]=p,e[t+2]=g,e[t+3]=_;return}if(u!==_||c!==d||l!==p||h!==g){let M=1-o;const m=c*d+l*p+h*g+u*_,f=m>=0?1:-1,E=1-m*m;if(E>Number.EPSILON){const T=Math.sqrt(E),C=Math.atan2(T,m*f);M=Math.sin(M*C)/T,o=Math.sin(o*C)/T}const y=o*f;if(c=c*M+d*y,l=l*M+p*y,h=h*M+g*y,u=u*M+_*y,M===1-o){const T=1/Math.sqrt(c*c+l*l+h*h+u*u);c*=T,l*=T,h*=T,u*=T}}e[t]=c,e[t+1]=l,e[t+2]=h,e[t+3]=u}static multiplyQuaternionsFlat(e,t,n,i,r,a){const o=n[i],c=n[i+1],l=n[i+2],h=n[i+3],u=r[a],d=r[a+1],p=r[a+2],g=r[a+3];return e[t]=o*g+h*u+c*p-l*d,e[t+1]=c*g+h*d+l*u-o*p,e[t+2]=l*g+h*p+o*d-c*u,e[t+3]=h*g-o*u-c*d-l*p,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,n,i){return this._x=e,this._y=t,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t){if(!(e&&e.isEuler))throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");const n=e._x,i=e._y,r=e._z,a=e._order,o=Math.cos,c=Math.sin,l=o(n/2),h=o(i/2),u=o(r/2),d=c(n/2),p=c(i/2),g=c(r/2);switch(a){case"XYZ":this._x=d*h*u+l*p*g,this._y=l*p*u-d*h*g,this._z=l*h*g+d*p*u,this._w=l*h*u-d*p*g;break;case"YXZ":this._x=d*h*u+l*p*g,this._y=l*p*u-d*h*g,this._z=l*h*g-d*p*u,this._w=l*h*u+d*p*g;break;case"ZXY":this._x=d*h*u-l*p*g,this._y=l*p*u+d*h*g,this._z=l*h*g+d*p*u,this._w=l*h*u-d*p*g;break;case"ZYX":this._x=d*h*u-l*p*g,this._y=l*p*u+d*h*g,this._z=l*h*g-d*p*u,this._w=l*h*u+d*p*g;break;case"YZX":this._x=d*h*u+l*p*g,this._y=l*p*u+d*h*g,this._z=l*h*g-d*p*u,this._w=l*h*u-d*p*g;break;case"XZY":this._x=d*h*u-l*p*g,this._y=l*p*u-d*h*g,this._z=l*h*g+d*p*u,this._w=l*h*u+d*p*g;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return t!==!1&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const n=t/2,i=Math.sin(n);return this._x=e.x*i,this._y=e.y*i,this._z=e.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,n=t[0],i=t[4],r=t[8],a=t[1],o=t[5],c=t[9],l=t[2],h=t[6],u=t[10],d=n+o+u;if(d>0){const p=.5/Math.sqrt(d+1);this._w=.25/p,this._x=(h-c)*p,this._y=(r-l)*p,this._z=(a-i)*p}else if(n>o&&n>u){const p=2*Math.sqrt(1+n-o-u);this._w=(h-c)/p,this._x=.25*p,this._y=(i+a)/p,this._z=(r+l)/p}else if(o>u){const p=2*Math.sqrt(1+o-n-u);this._w=(r-l)/p,this._x=(i+a)/p,this._y=.25*p,this._z=(c+h)/p}else{const p=2*Math.sqrt(1+u-n-o);this._w=(a-i)/p,this._x=(r+l)/p,this._y=(c+h)/p,this._z=.25*p}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let n=e.dot(t)+1;return n<Number.EPSILON?(n=0,Math.abs(e.x)>Math.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=n):(this._x=0,this._y=-e.z,this._z=e.y,this._w=n)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=n),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(vt(this.dot(e),-1,1)))}rotateTowards(e,t){const n=this.angleTo(e);if(n===0)return this;const i=Math.min(1,t/n);return this.slerp(e,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(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._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 e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e,t){return t!==void 0?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(e,t)):this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const n=e._x,i=e._y,r=e._z,a=e._w,o=t._x,c=t._y,l=t._z,h=t._w;return this._x=n*h+a*o+i*l-r*c,this._y=i*h+a*c+r*o-n*l,this._z=r*h+a*l+n*c-i*o,this._w=a*h-n*o-i*c-r*l,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);const n=this._x,i=this._y,r=this._z,a=this._w;let o=a*e._w+n*e._x+i*e._y+r*e._z;if(o<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,o=-o):this.copy(e),o>=1)return this._w=a,this._x=n,this._y=i,this._z=r,this;const c=1-o*o;if(c<=Number.EPSILON){const p=1-t;return this._w=p*a+t*this._w,this._x=p*n+t*this._x,this._y=p*i+t*this._y,this._z=p*r+t*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(c),h=Math.atan2(l,o),u=Math.sin((1-t)*h)/l,d=Math.sin(t*h)/l;return this._w=a*u+this._w*d,this._x=n*u+this._x*d,this._y=i*u+this._y*d,this._z=r*u+this._z*d,this._onChangeCallback(),this}slerpQuaternions(e,t,n){return this.copy(e).slerp(t,n)}random(){const e=Math.random(),t=Math.sqrt(1-e),n=Math.sqrt(e),i=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(t*Math.cos(i),n*Math.sin(r),n*Math.cos(r),t*Math.sin(i))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}}dt.prototype.isQuaternion=!0;class w{constructor(e=0,t=0,n=0){this.x=e,this.y=t,this.z=n}set(e,t,n){return n===void 0&&(n=this.z),this.x=e,this.y=t,this.z=n,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e,t){return t!==void 0?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this)}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e,t){return t!==void 0?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this)}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e,t){return t!==void 0?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(e,t)):(this.x*=e.x,this.y*=e.y,this.z*=e.z,this)}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return e&&e.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(Rs.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(Rs.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,n=this.y,i=this.z,r=e.elements;return this.x=r[0]*t+r[3]*n+r[6]*i,this.y=r[1]*t+r[4]*n+r[7]*i,this.z=r[2]*t+r[5]*n+r[8]*i,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,n=this.y,i=this.z,r=e.elements,a=1/(r[3]*t+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*t+r[4]*n+r[8]*i+r[12])*a,this.y=(r[1]*t+r[5]*n+r[9]*i+r[13])*a,this.z=(r[2]*t+r[6]*n+r[10]*i+r[14])*a,this}applyQuaternion(e){const t=this.x,n=this.y,i=this.z,r=e.x,a=e.y,o=e.z,c=e.w,l=c*t+a*i-o*n,h=c*n+o*t-r*i,u=c*i+r*n-a*t,d=-r*t-a*n-o*i;return this.x=l*c+d*-r+h*-o-u*-a,this.y=h*c+d*-a+u*-r-l*-o,this.z=u*c+d*-o+l*-a-h*-r,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,n=this.y,i=this.z,r=e.elements;return this.x=r[0]*t+r[4]*n+r[8]*i,this.y=r[1]*t+r[5]*n+r[9]*i,this.z=r[2]*t+r[6]*n+r[10]*i,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,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=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.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(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this}cross(e,t){return t!==void 0?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(e,t)):this.crossVectors(this,e)}crossVectors(e,t){const n=e.x,i=e.y,r=e.z,a=t.x,o=t.y,c=t.z;return this.x=i*c-r*o,this.y=r*a-n*c,this.z=n*o-i*a,this}projectOnVector(e){const t=e.lengthSq();if(t===0)return this.set(0,0,0);const n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)}projectOnPlane(e){return xr.copy(this).projectOnVector(e),this.sub(xr)}reflect(e){return this.sub(xr.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const n=this.dot(e)/t;return Math.acos(vt(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,n=this.y-e.y,i=this.z-e.z;return t*t+n*n+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,n){const i=Math.sin(t)*e;return this.x=i*Math.sin(n),this.y=Math.cos(t)*e,this.z=i*Math.cos(n),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,n){return this.x=e*Math.sin(t),this.y=n,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),n=this.setFromMatrixColumn(e,1).length(),i=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=i,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t,n){return n!==void 0&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=(Math.random()-.5)*2,t=Math.random()*Math.PI*2,n=Math.sqrt(1-e**2);return this.x=n*Math.cos(t),this.y=n*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}w.prototype.isVector3=!0;const xr=new w,Rs=new dt;class At{constructor(e=new w(1/0,1/0,1/0),t=new w(-1/0,-1/0,-1/0)){this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){let t=1/0,n=1/0,i=1/0,r=-1/0,a=-1/0,o=-1/0;for(let c=0,l=e.length;c<l;c+=3){const h=e[c],u=e[c+1],d=e[c+2];h<t&&(t=h),u<n&&(n=u),d<i&&(i=d),h>r&&(r=h),u>a&&(a=u),d>o&&(o=d)}return this.min.set(t,n,i),this.max.set(r,a,o),this}setFromBufferAttribute(e){let t=1/0,n=1/0,i=1/0,r=-1/0,a=-1/0,o=-1/0;for(let c=0,l=e.count;c<l;c++){const h=e.getX(c),u=e.getY(c),d=e.getZ(c);h<t&&(t=h),u<n&&(n=u),d<i&&(i=d),h>r&&(r=h),u>a&&(a=u),d>o&&(o=d)}return this.min.set(t,n,i),this.max.set(r,a,o),this}setFromPoints(e){this.makeEmpty();for(let t=0,n=e.length;t<n;t++)this.expandByPoint(e[t]);return this}setFromCenterAndSize(e,t){const n=hn.copy(t).multiplyScalar(.5);return this.min.copy(e).sub(n),this.max.copy(e).add(n),this}setFromObject(e,t=!1){return this.makeEmpty(),this.expandByObject(e,t)}clone(){return new this.constructor().copy(this)}copy(e){return this.min.copy(e.min),this.max.copy(e.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(e){return this.isEmpty()?e.set(0,0,0):e.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(e){return this.isEmpty()?e.set(0,0,0):e.subVectors(this.max,this.min)}expandByPoint(e){return this.min.min(e),this.max.max(e),this}expandByVector(e){return this.min.sub(e),this.max.add(e),this}expandByScalar(e){return this.min.addScalar(-e),this.max.addScalar(e),this}expandByObject(e,t=!1){e.updateWorldMatrix(!1,!1);const n=e.geometry;if(n!==void 0)if(t&&n.attributes!=null&&n.attributes.position!==void 0){const r=n.attributes.position;for(let a=0,o=r.count;a<o;a++)hn.fromBufferAttribute(r,a).applyMatrix4(e.matrixWorld),this.expandByPoint(hn)}else n.boundingBox===null&&n.computeBoundingBox(),vr.copy(n.boundingBox),vr.applyMatrix4(e.matrixWorld),this.union(vr);const i=e.children;for(let r=0,a=i.length;r<a;r++)this.expandByObject(i[r],t);return this}containsPoint(e){return!(e.x<this.min.x||e.x>this.max.x||e.y<this.min.y||e.y>this.max.y||e.z<this.min.z||e.z>this.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.x<this.min.x||e.min.x>this.max.x||e.max.y<this.min.y||e.min.y>this.max.y||e.max.z<this.min.z||e.min.z>this.max.z)}intersectsSphere(e){return this.clampPoint(e.center,hn),hn.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),t<=-e.constant&&n>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(ei),Ei.subVectors(this.max,ei),bn.subVectors(e.a,ei),wn.subVectors(e.b,ei),Tn.subVectors(e.c,ei),Xt.subVectors(wn,bn),Yt.subVectors(Tn,wn),un.subVectors(bn,Tn);let t=[0,-Xt.z,Xt.y,0,-Yt.z,Yt.y,0,-un.z,un.y,Xt.z,0,-Xt.x,Yt.z,0,-Yt.x,un.z,0,-un.x,-Xt.y,Xt.x,0,-Yt.y,Yt.x,0,-un.y,un.x,0];return!yr(t,bn,wn,Tn,Ei)||(t=[1,0,0,0,1,0,0,0,1],!yr(t,bn,wn,Tn,Ei))?!1:(Ai.crossVectors(Xt,Yt),t=[Ai.x,Ai.y,Ai.z],yr(t,bn,wn,Tn,Ei))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return hn.copy(e).clamp(this.min,this.max).sub(e).length()}getBoundingSphere(e){return this.getCenter(e.center),e.radius=this.getSize(hn).length()*.5,e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(Ot[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Ot[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Ot[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Ot[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Ot[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Ot[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Ot[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Ot[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Ot),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}At.prototype.isBox3=!0;const Ot=[new w,new w,new w,new w,new w,new w,new w,new w],hn=new w,vr=new At,bn=new w,wn=new w,Tn=new w,Xt=new w,Yt=new w,un=new w,ei=new w,Ei=new w,Ai=new w,dn=new w;function yr(s,e,t,n,i){for(let r=0,a=s.length-3;r<=a;r+=3){dn.fromArray(s,r);const o=i.x*Math.abs(dn.x)+i.y*Math.abs(dn.y)+i.z*Math.abs(dn.z),c=e.dot(dn),l=t.dot(dn),h=n.dot(dn);if(Math.max(-Math.max(c,l,h),Math.min(c,l,h))>o)return!1}return!0}const Fo=new At,Cs=new w,Ri=new w,Mr=new w;class Zn{constructor(e=new w,t=-1){this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const n=this.center;t!==void 0?n.copy(t):Fo.setFromPoints(e).getCenter(n);let i=0;for(let r=0,a=e.length;r<a;r++)i=Math.max(i,n.distanceToSquared(e[r]));return this.radius=Math.sqrt(i),this}copy(e){return this.center.copy(e.center),this.radius=e.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(e){return e.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(e){return e.distanceTo(this.center)-this.radius}intersectsSphere(e){const t=this.radius+e.radius;return e.center.distanceToSquared(this.center)<=t*t}intersectsBox(e){return e.intersectsSphere(this)}intersectsPlane(e){return Math.abs(e.distanceToPoint(this.center))<=this.radius}clampPoint(e,t){const n=this.center.distanceToSquared(e);return t.copy(e),n>this.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){Mr.subVectors(e,this.center);const t=Mr.lengthSq();if(t>this.radius*this.radius){const n=Math.sqrt(t),i=(n-this.radius)*.5;this.center.add(Mr.multiplyScalar(i/n)),this.radius+=i}return this}union(e){return this.center.equals(e.center)===!0?Ri.set(0,0,1).multiplyScalar(e.radius):Ri.subVectors(e.center,this.center).normalize().multiplyScalar(e.radius),this.expandByPoint(Cs.copy(e.center).add(Ri)),this.expandByPoint(Cs.copy(e.center).sub(Ri)),this}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}const Gt=new w,Sr=new w,Ci=new w,Zt=new w,br=new w,Li=new w,wr=new w;class vn{constructor(e=new w,t=new w(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.direction).multiplyScalar(e).add(this.origin)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Gt)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const n=t.dot(this.direction);return n<0?t.copy(this.origin):t.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=Gt.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Gt.copy(this.direction).multiplyScalar(t).add(this.origin),Gt.distanceToSquared(e))}distanceSqToSegment(e,t,n,i){Sr.copy(e).add(t).multiplyScalar(.5),Ci.copy(t).sub(e).normalize(),Zt.copy(this.origin).sub(Sr);const r=e.distanceTo(t)*.5,a=-this.direction.dot(Ci),o=Zt.dot(this.direction),c=-Zt.dot(Ci),l=Zt.lengthSq(),h=Math.abs(1-a*a);let u,d,p,g;if(h>0)if(u=a*c-o,d=a*o-c,g=r*h,u>=0)if(d>=-g)if(d<=g){const _=1/h;u*=_,d*=_,p=u*(u+a*d+2*o)+d*(a*u+d+2*c)+l}else d=r,u=Math.max(0,-(a*d+o)),p=-u*u+d*(d+2*c)+l;else d=-r,u=Math.max(0,-(a*d+o)),p=-u*u+d*(d+2*c)+l;else d<=-g?(u=Math.max(0,-(-a*r+o)),d=u>0?-r:Math.min(Math.max(-r,-c),r),p=-u*u+d*(d+2*c)+l):d<=g?(u=0,d=Math.min(Math.max(-r,-c),r),p=d*(d+2*c)+l):(u=Math.max(0,-(a*r+o)),d=u>0?r:Math.min(Math.max(-r,-c),r),p=-u*u+d*(d+2*c)+l);else d=a>0?-r:r,u=Math.max(0,-(a*d+o)),p=-u*u+d*(d+2*c)+l;return n&&n.copy(this.direction).multiplyScalar(u).add(this.origin),i&&i.copy(Ci).multiplyScalar(d).add(Sr),p}intersectSphere(e,t){Gt.subVectors(e.center,this.origin);const n=Gt.dot(this.direction),i=Gt.dot(Gt)-n*n,r=e.radius*e.radius;if(i>r)return null;const a=Math.sqrt(r-i),o=n-a,c=n+a;return o<0&&c<0?null:o<0?this.at(c,t):this.at(o,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;const n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null}intersectPlane(e,t){const n=this.distanceToPlane(e);return n===null?null:this.at(n,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let n,i,r,a,o,c;const l=1/this.direction.x,h=1/this.direction.y,u=1/this.direction.z,d=this.origin;return l>=0?(n=(e.min.x-d.x)*l,i=(e.max.x-d.x)*l):(n=(e.max.x-d.x)*l,i=(e.min.x-d.x)*l),h>=0?(r=(e.min.y-d.y)*h,a=(e.max.y-d.y)*h):(r=(e.max.y-d.y)*h,a=(e.min.y-d.y)*h),n>a||r>i||((r>n||n!==n)&&(n=r),(a<i||i!==i)&&(i=a),u>=0?(o=(e.min.z-d.z)*u,c=(e.max.z-d.z)*u):(o=(e.max.z-d.z)*u,c=(e.min.z-d.z)*u),n>c||o>i)||((o>n||n!==n)&&(n=o),(c<i||i!==i)&&(i=c),i<0)?null:this.at(n>=0?n:i,t)}intersectsBox(e){return this.intersectBox(e,Gt)!==null}intersectTriangle(e,t,n,i,r){br.subVectors(t,e),Li.subVectors(n,e),wr.crossVectors(br,Li);let a=this.direction.dot(wr),o;if(a>0){if(i)return null;o=1}else if(a<0)o=-1,a=-a;else return null;Zt.subVectors(this.origin,e);const c=o*this.direction.dot(Li.crossVectors(Zt,Li));if(c<0)return null;const l=o*this.direction.dot(br.cross(Zt));if(l<0||c+l>a)return null;const h=-o*Zt.dot(wr);return h<0?null:this.at(h/a,r)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class ve{constructor(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}set(e,t,n,i,r,a,o,c,l,h,u,d,p,g,_,M){const m=this.elements;return m[0]=e,m[4]=t,m[8]=n,m[12]=i,m[1]=r,m[5]=a,m[9]=o,m[13]=c,m[2]=l,m[6]=h,m[10]=u,m[14]=d,m[3]=p,m[7]=g,m[11]=_,m[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 ve().fromArray(this.elements)}copy(e){const t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],this}copyPosition(e){const t=this.elements,n=e.elements;return t[12]=n[12],t[13]=n[13],t[14]=n[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,n){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(e,t,n){return this.set(e.x,t.x,n.x,0,e.y,t.y,n.y,0,e.z,t.z,n.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,n=e.elements,i=1/En.setFromMatrixColumn(e,0).length(),r=1/En.setFromMatrixColumn(e,1).length(),a=1/En.setFromMatrixColumn(e,2).length();return t[0]=n[0]*i,t[1]=n[1]*i,t[2]=n[2]*i,t[3]=0,t[4]=n[4]*r,t[5]=n[5]*r,t[6]=n[6]*r,t[7]=0,t[8]=n[8]*a,t[9]=n[9]*a,t[10]=n[10]*a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){e&&e.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");const t=this.elements,n=e.x,i=e.y,r=e.z,a=Math.cos(n),o=Math.sin(n),c=Math.cos(i),l=Math.sin(i),h=Math.cos(r),u=Math.sin(r);if(e.order==="XYZ"){const d=a*h,p=a*u,g=o*h,_=o*u;t[0]=c*h,t[4]=-c*u,t[8]=l,t[1]=p+g*l,t[5]=d-_*l,t[9]=-o*c,t[2]=_-d*l,t[6]=g+p*l,t[10]=a*c}else if(e.order==="YXZ"){const d=c*h,p=c*u,g=l*h,_=l*u;t[0]=d+_*o,t[4]=g*o-p,t[8]=a*l,t[1]=a*u,t[5]=a*h,t[9]=-o,t[2]=p*o-g,t[6]=_+d*o,t[10]=a*c}else if(e.order==="ZXY"){const d=c*h,p=c*u,g=l*h,_=l*u;t[0]=d-_*o,t[4]=-a*u,t[8]=g+p*o,t[1]=p+g*o,t[5]=a*h,t[9]=_-d*o,t[2]=-a*l,t[6]=o,t[10]=a*c}else if(e.order==="ZYX"){const d=a*h,p=a*u,g=o*h,_=o*u;t[0]=c*h,t[4]=g*l-p,t[8]=d*l+_,t[1]=c*u,t[5]=_*l+d,t[9]=p*l-g,t[2]=-l,t[6]=o*c,t[10]=a*c}else if(e.order==="YZX"){const d=a*c,p=a*l,g=o*c,_=o*l;t[0]=c*h,t[4]=_-d*u,t[8]=g*u+p,t[1]=u,t[5]=a*h,t[9]=-o*h,t[2]=-l*h,t[6]=p*u+g,t[10]=d-_*u}else if(e.order==="XZY"){const d=a*c,p=a*l,g=o*c,_=o*l;t[0]=c*h,t[4]=-u,t[8]=l*h,t[1]=d*u+_,t[5]=a*h,t[9]=p*u-g,t[2]=g*u-p,t[6]=o*h,t[10]=_*u+d}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(Bo,e,No)}lookAt(e,t,n){const i=this.elements;return _t.subVectors(e,t),_t.lengthSq()===0&&(_t.z=1),_t.normalize(),jt.crossVectors(n,_t),jt.lengthSq()===0&&(Math.abs(n.z)===1?_t.x+=1e-4:_t.z+=1e-4,_t.normalize(),jt.crossVectors(n,_t)),jt.normalize(),Pi.crossVectors(_t,jt),i[0]=jt.x,i[4]=Pi.x,i[8]=_t.x,i[1]=jt.y,i[5]=Pi.y,i[9]=_t.y,i[2]=jt.z,i[6]=Pi.z,i[10]=_t.z,this}multiply(e,t){return t!==void 0?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(e,t)):this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const n=e.elements,i=t.elements,r=this.elements,a=n[0],o=n[4],c=n[8],l=n[12],h=n[1],u=n[5],d=n[9],p=n[13],g=n[2],_=n[6],M=n[10],m=n[14],f=n[3],E=n[7],y=n[11],T=n[15],C=i[0],L=i[4],Y=i[8],se=i[12],Z=i[1],x=i[5],R=i[9],D=i[13],B=i[2],N=i[6],I=i[10],V=i[14],j=i[3],ce=i[7],O=i[11],X=i[15];return r[0]=a*C+o*Z+c*B+l*j,r[4]=a*L+o*x+c*N+l*ce,r[8]=a*Y+o*R+c*I+l*O,r[12]=a*se+o*D+c*V+l*X,r[1]=h*C+u*Z+d*B+p*j,r[5]=h*L+u*x+d*N+p*ce,r[9]=h*Y+u*R+d*I+p*O,r[13]=h*se+u*D+d*V+p*X,r[2]=g*C+_*Z+M*B+m*j,r[6]=g*L+_*x+M*N+m*ce,r[10]=g*Y+_*R+M*I+m*O,r[14]=g*se+_*D+M*V+m*X,r[3]=f*C+E*Z+y*B+T*j,r[7]=f*L+E*x+y*N+T*ce,r[11]=f*Y+E*R+y*I+T*O,r[15]=f*se+E*D+y*V+T*X,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],n=e[4],i=e[8],r=e[12],a=e[1],o=e[5],c=e[9],l=e[13],h=e[2],u=e[6],d=e[10],p=e[14],g=e[3],_=e[7],M=e[11],m=e[15];return g*(+r*c*u-i*l*u-r*o*d+n*l*d+i*o*p-n*c*p)+_*(+t*c*p-t*l*d+r*a*d-i*a*p+i*l*h-r*c*h)+M*(+t*l*u-t*o*p-r*a*u+n*a*p+r*o*h-n*l*h)+m*(-i*o*h-t*c*u+t*o*d+i*a*u-n*a*d+n*c*h)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,n){const i=this.elements;return e.isVector3?(i[12]=e.x,i[13]=e.y,i[14]=e.z):(i[12]=e,i[13]=t,i[14]=n),this}invert(){const e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],a=e[4],o=e[5],c=e[6],l=e[7],h=e[8],u=e[9],d=e[10],p=e[11],g=e[12],_=e[13],M=e[14],m=e[15],f=u*M*l-_*d*l+_*c*p-o*M*p-u*c*m+o*d*m,E=g*d*l-h*M*l-g*c*p+a*M*p+h*c*m-a*d*m,y=h*_*l-g*u*l+g*o*p-a*_*p-h*o*m+a*u*m,T=g*u*c-h*_*c-g*o*d+a*_*d+h*o*M-a*u*M,C=t*f+n*E+i*y+r*T;if(C===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const L=1/C;return e[0]=f*L,e[1]=(_*d*r-u*M*r-_*i*p+n*M*p+u*i*m-n*d*m)*L,e[2]=(o*M*r-_*c*r+_*i*l-n*M*l-o*i*m+n*c*m)*L,e[3]=(u*c*r-o*d*r-u*i*l+n*d*l+o*i*p-n*c*p)*L,e[4]=E*L,e[5]=(h*M*r-g*d*r+g*i*p-t*M*p-h*i*m+t*d*m)*L,e[6]=(g*c*r-a*M*r-g*i*l+t*M*l+a*i*m-t*c*m)*L,e[7]=(a*d*r-h*c*r+h*i*l-t*d*l-a*i*p+t*c*p)*L,e[8]=y*L,e[9]=(g*u*r-h*_*r-g*n*p+t*_*p+h*n*m-t*u*m)*L,e[10]=(a*_*r-g*o*r+g*n*l-t*_*l-a*n*m+t*o*m)*L,e[11]=(h*o*r-a*u*r-h*n*l+t*u*l+a*n*p-t*o*p)*L,e[12]=T*L,e[13]=(h*_*i-g*u*i+g*n*d-t*_*d-h*n*M+t*u*M)*L,e[14]=(g*o*i-a*_*i-g*n*c+t*_*c+a*n*M-t*o*M)*L,e[15]=(a*u*i-h*o*i+h*n*c-t*u*c-a*n*d+t*o*d)*L,this}scale(e){const t=this.elements,n=e.x,i=e.y,r=e.z;return t[0]*=n,t[4]*=i,t[8]*=r,t[1]*=n,t[5]*=i,t[9]*=r,t[2]*=n,t[6]*=i,t[10]*=r,t[3]*=n,t[7]*=i,t[11]*=r,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],n=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],i=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,n,i))}makeTranslation(e,t,n){return this.set(1,0,0,e,0,1,0,t,0,0,1,n,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),n=Math.sin(e);return this.set(1,0,0,0,0,t,-n,0,0,n,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),n=Math.sin(e);return this.set(t,0,n,0,0,1,0,0,-n,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,0,n,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const n=Math.cos(t),i=Math.sin(t),r=1-n,a=e.x,o=e.y,c=e.z,l=r*a,h=r*o;return this.set(l*a+n,l*o-i*c,l*c+i*o,0,l*o+i*c,h*o+n,h*c-i*a,0,l*c-i*o,h*c+i*a,r*c*c+n,0,0,0,0,1),this}makeScale(e,t,n){return this.set(e,0,0,0,0,t,0,0,0,0,n,0,0,0,0,1),this}makeShear(e,t,n,i,r,a){return this.set(1,n,r,0,e,1,a,0,t,i,1,0,0,0,0,1),this}compose(e,t,n){const i=this.elements,r=t._x,a=t._y,o=t._z,c=t._w,l=r+r,h=a+a,u=o+o,d=r*l,p=r*h,g=r*u,_=a*h,M=a*u,m=o*u,f=c*l,E=c*h,y=c*u,T=n.x,C=n.y,L=n.z;return i[0]=(1-(_+m))*T,i[1]=(p+y)*T,i[2]=(g-E)*T,i[3]=0,i[4]=(p-y)*C,i[5]=(1-(d+m))*C,i[6]=(M+f)*C,i[7]=0,i[8]=(g+E)*L,i[9]=(M-f)*L,i[10]=(1-(d+_))*L,i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,this}decompose(e,t,n){const i=this.elements;let r=En.set(i[0],i[1],i[2]).length();const a=En.set(i[4],i[5],i[6]).length(),o=En.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),e.x=i[12],e.y=i[13],e.z=i[14],Tt.copy(this);const l=1/r,h=1/a,u=1/o;return Tt.elements[0]*=l,Tt.elements[1]*=l,Tt.elements[2]*=l,Tt.elements[4]*=h,Tt.elements[5]*=h,Tt.elements[6]*=h,Tt.elements[8]*=u,Tt.elements[9]*=u,Tt.elements[10]*=u,t.setFromRotationMatrix(Tt),n.x=r,n.y=a,n.z=o,this}makePerspective(e,t,n,i,r,a){a===void 0&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");const o=this.elements,c=2*r/(t-e),l=2*r/(n-i),h=(t+e)/(t-e),u=(n+i)/(n-i),d=-(a+r)/(a-r),p=-2*a*r/(a-r);return o[0]=c,o[4]=0,o[8]=h,o[12]=0,o[1]=0,o[5]=l,o[9]=u,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(e,t,n,i,r,a){const o=this.elements,c=1/(t-e),l=1/(n-i),h=1/(a-r),u=(t+e)*c,d=(n+i)*l,p=(a+r)*h;return o[0]=2*c,o[4]=0,o[8]=0,o[12]=-u,o[1]=0,o[5]=2*l,o[9]=0,o[13]=-d,o[2]=0,o[6]=0,o[10]=-2*h,o[14]=-p,o[3]=0,o[7]=0,o[11]=0,o[15]=1,this}equals(e){const t=this.elements,n=e.elements;for(let i=0;i<16;i++)if(t[i]!==n[i])return!1;return!0}fromArray(e,t=0){for(let n=0;n<16;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){const n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e[t+9]=n[9],e[t+10]=n[10],e[t+11]=n[11],e[t+12]=n[12],e[t+13]=n[13],e[t+14]=n[14],e[t+15]=n[15],e}}ve.prototype.isMatrix4=!0;const En=new w,Tt=new ve,Bo=new w(0,0,0),No=new w(1,1,1),jt=new w,Pi=new w,_t=new w,Ls=new ve,Ps=new dt;class yn{constructor(e=0,t=0,n=0,i=yn.DefaultOrder){this._x=e,this._y=t,this._z=n,this._order=i}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,n,i=this._order){return this._x=e,this._y=t,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,n=!0){const i=e.elements,r=i[0],a=i[4],o=i[8],c=i[1],l=i[5],h=i[9],u=i[2],d=i[6],p=i[10];switch(t){case"XYZ":this._y=Math.asin(vt(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-h,p),this._z=Math.atan2(-a,r)):(this._x=Math.atan2(d,l),this._z=0);break;case"YXZ":this._x=Math.asin(-vt(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(o,p),this._z=Math.atan2(c,l)):(this._y=Math.atan2(-u,r),this._z=0);break;case"ZXY":this._x=Math.asin(vt(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(-u,p),this._z=Math.atan2(-a,l)):(this._y=0,this._z=Math.atan2(c,r));break;case"ZYX":this._y=Math.asin(-vt(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(d,p),this._z=Math.atan2(c,r)):(this._x=0,this._z=Math.atan2(-a,l));break;case"YZX":this._z=Math.asin(vt(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-h,l),this._y=Math.atan2(-u,r)):(this._x=0,this._y=Math.atan2(o,p));break;case"XZY":this._z=Math.asin(-vt(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(d,l),this._y=Math.atan2(o,r)):(this._x=Math.atan2(-h,p),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,n===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,n){return Ls.makeRotationFromQuaternion(e),this.setFromRotationMatrix(Ls,t,n)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return Ps.setFromEuler(this),this.setFromQuaternion(Ps,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}toVector3(e){return e?e.set(this._x,this._y,this._z):new w(this._x,this._y,this._z)}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}}yn.prototype.isEuler=!0;yn.DefaultOrder="XYZ";yn.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];class ss{constructor(){this.mask=1}set(e){this.mask=(1<<e|0)>>>0}enable(e){this.mask|=1<<e|0}enableAll(){this.mask=-1}toggle(e){this.mask^=1<<e|0}disable(e){this.mask&=~(1<<e|0)}disableAll(){this.mask=0}test(e){return(this.mask&e.mask)!==0}isEnabled(e){return(this.mask&(1<<e|0))!==0}}let zo=0;const Ds=new w,An=new dt,Vt=new ve,Di=new w,ti=new w,Uo=new w,Oo=new dt,Is=new w(1,0,0),Fs=new w(0,1,0),Bs=new w(0,0,1),Go={type:"added"},Ns={type:"removed"};class Ue extends on{constructor(){super();Object.defineProperty(this,"id",{value:zo++}),this.uuid=Ft(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=Ue.DefaultUp.clone();const e=new w,t=new yn,n=new dt,i=new w(1,1,1);function r(){n.setFromEuler(t,!1)}function a(){t.setFromQuaternion(n,void 0,!1)}t._onChange(r),n._onChange(a),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:e},rotation:{configurable:!0,enumerable:!0,value:t},quaternion:{configurable:!0,enumerable:!0,value:n},scale:{configurable:!0,enumerable:!0,value:i},modelViewMatrix:{value:new ve},normalMatrix:{value:new at}}),this.matrix=new ve,this.matrixWorld=new ve,this.matrixAutoUpdate=Ue.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new ss,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeRender(){}onAfterRender(){}applyMatrix4(e){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(e),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(e){return this.quaternion.premultiply(e),this}setRotationFromAxisAngle(e,t){this.quaternion.setFromAxisAngle(e,t)}setRotationFromEuler(e){this.quaternion.setFromEuler(e,!0)}setRotationFromMatrix(e){this.quaternion.setFromRotationMatrix(e)}setRotationFromQuaternion(e){this.quaternion.copy(e)}rotateOnAxis(e,t){return An.setFromAxisAngle(e,t),this.quaternion.multiply(An),this}rotateOnWorldAxis(e,t){return An.setFromAxisAngle(e,t),this.quaternion.premultiply(An),this}rotateX(e){return this.rotateOnAxis(Is,e)}rotateY(e){return this.rotateOnAxis(Fs,e)}rotateZ(e){return this.rotateOnAxis(Bs,e)}translateOnAxis(e,t){return Ds.copy(e).applyQuaternion(this.quaternion),this.position.add(Ds.multiplyScalar(t)),this}translateX(e){return this.translateOnAxis(Is,e)}translateY(e){return this.translateOnAxis(Fs,e)}translateZ(e){return this.translateOnAxis(Bs,e)}localToWorld(e){return e.applyMatrix4(this.matrixWorld)}worldToLocal(e){return e.applyMatrix4(Vt.copy(this.matrixWorld).invert())}lookAt(e,t,n){e.isVector3?Di.copy(e):Di.set(e,t,n);const i=this.parent;this.updateWorldMatrix(!0,!1),ti.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?Vt.lookAt(ti,Di,this.up):Vt.lookAt(Di,ti,this.up),this.quaternion.setFromRotationMatrix(Vt),i&&(Vt.extractRotation(i.matrixWorld),An.setFromRotationMatrix(Vt),this.quaternion.premultiply(An.invert()))}add(e){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return e===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",e),this):(e&&e.isObject3D?(e.parent!==null&&e.parent.remove(e),e.parent=this,this.children.push(e),e.dispatchEvent(Go)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",e),this)}remove(e){if(arguments.length>1){for(let n=0;n<arguments.length;n++)this.remove(arguments[n]);return this}const t=this.children.indexOf(e);return t!==-1&&(e.parent=null,this.children.splice(t,1),e.dispatchEvent(Ns)),this}removeFromParent(){const e=this.parent;return e!==null&&e.remove(this),this}clear(){for(let e=0;e<this.children.length;e++){const t=this.children[e];t.parent=null,t.dispatchEvent(Ns)}return this.children.length=0,this}attach(e){return this.updateWorldMatrix(!0,!1),Vt.copy(this.matrixWorld).invert(),e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),Vt.multiply(e.parent.matrixWorld)),e.applyMatrix4(Vt),this.add(e),e.updateWorldMatrix(!1,!0),this}getObjectById(e){return this.getObjectByProperty("id",e)}getObjectByName(e){return this.getObjectByProperty("name",e)}getObjectByProperty(e,t){if(this[e]===t)return this;for(let n=0,i=this.children.length;n<i;n++){const a=this.children[n].getObjectByProperty(e,t);if(a!==void 0)return a}}getWorldPosition(e){return this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ti,e,Uo),e}getWorldScale(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ti,Oo,e),e}getWorldDirection(e){this.updateWorldMatrix(!0,!1);const t=this.matrixWorld.elements;return e.set(t[8],t[9],t[10]).normalize()}raycast(){}traverse(e){e(this);const t=this.children;for(let n=0,i=t.length;n<i;n++)t[n].traverse(e)}traverseVisible(e){if(this.visible===!1)return;e(this);const t=this.children;for(let n=0,i=t.length;n<i;n++)t[n].traverseVisible(e)}traverseAncestors(e){const t=this.parent;t!==null&&(e(t),t.traverseAncestors(e))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,e=!0);const t=this.children;for(let n=0,i=t.length;n<i;n++)t[n].updateMatrixWorld(e)}updateWorldMatrix(e,t){const n=this.parent;if(e===!0&&n!==null&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),t===!0){const i=this.children;for(let r=0,a=i.length;r<a;r++)i[r].updateWorldMatrix(!1,!0)}}toJSON(e){const t=e===void 0||typeof e=="string",n={};t&&(e={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{}},n.metadata={version:4.5,type:"Object",generator:"Object3D.toJSON"});const i={};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.castShadow===!0&&(i.castShadow=!0),this.receiveShadow===!0&&(i.receiveShadow=!0),this.visible===!1&&(i.visible=!1),this.frustumCulled===!1&&(i.frustumCulled=!1),this.renderOrder!==0&&(i.renderOrder=this.renderOrder),JSON.stringify(this.userData)!=="{}"&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),this.matrixAutoUpdate===!1&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(i.instanceColor=this.instanceColor.toJSON()));function r(o,c){return o[c.uuid]===void 0&&(o[c.uuid]=c.toJSON(e)),c.uuid}if(this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&(i.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(e.geometries,this.geometry);const o=this.geometry.parameters;if(o!==void 0&&o.shapes!==void 0){const c=o.shapes;if(Array.isArray(c))for(let l=0,h=c.length;l<h;l++){const u=c[l];r(e.shapes,u)}else r(e.shapes,c)}}if(this.isSkinnedMesh&&(i.bindMode=this.bindMode,i.bindMatrix=this.bindMatrix.toArray(),this.skeleton!==void 0&&(r(e.skeletons,this.skeleton),i.skeleton=this.skeleton.uuid)),this.material!==void 0)if(Array.isArray(this.material)){const o=[];for(let c=0,l=this.material.length;c<l;c++)o.push(r(e.materials,this.material[c]));i.material=o}else i.material=r(e.materials,this.material);if(this.children.length>0){i.children=[];for(let o=0;o<this.children.length;o++)i.children.push(this.children[o].toJSON(e).object)}if(this.animations.length>0){i.animations=[];for(let o=0;o<this.animations.length;o++){const c=this.animations[o];i.animations.push(r(e.animations,c))}}if(t){const o=a(e.geometries),c=a(e.materials),l=a(e.textures),h=a(e.images),u=a(e.shapes),d=a(e.skeletons),p=a(e.animations);o.length>0&&(n.geometries=o),c.length>0&&(n.materials=c),l.length>0&&(n.textures=l),h.length>0&&(n.images=h),u.length>0&&(n.shapes=u),d.length>0&&(n.skeletons=d),p.length>0&&(n.animations=p)}return n.object=i,n;function a(o){const c=[];for(const l in o){const h=o[l];delete h.metadata,c.push(h)}return c}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let n=0;n<e.children.length;n++){const i=e.children[n];this.add(i.clone())}return this}}Ue.DefaultUp=new w(0,1,0);Ue.DefaultMatrixAutoUpdate=!0;Ue.prototype.isObject3D=!0;const Et=new w,Ht=new w,Tr=new w,kt=new w,Rn=new w,Cn=new w,zs=new w,Er=new w,Ar=new w,Rr=new w;class Qe{constructor(e=new w,t=new w,n=new w){this.a=e,this.b=t,this.c=n}static getNormal(e,t,n,i){i.subVectors(n,t),Et.subVectors(e,t),i.cross(Et);const r=i.lengthSq();return r>0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(e,t,n,i,r){Et.subVectors(i,t),Ht.subVectors(n,t),Tr.subVectors(e,t);const a=Et.dot(Et),o=Et.dot(Ht),c=Et.dot(Tr),l=Ht.dot(Ht),h=Ht.dot(Tr),u=a*l-o*o;if(u===0)return r.set(-2,-1,-1);const d=1/u,p=(l*c-o*h)*d,g=(a*h-o*c)*d;return r.set(1-p-g,g,p)}static containsPoint(e,t,n,i){return this.getBarycoord(e,t,n,i,kt),kt.x>=0&&kt.y>=0&&kt.x+kt.y<=1}static getUV(e,t,n,i,r,a,o,c){return this.getBarycoord(e,t,n,i,kt),c.set(0,0),c.addScaledVector(r,kt.x),c.addScaledVector(a,kt.y),c.addScaledVector(o,kt.z),c}static isFrontFacing(e,t,n,i){return Et.subVectors(n,t),Ht.subVectors(e,t),Et.cross(Ht).dot(i)<0}set(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this}setFromPointsAndIndices(e,t,n,i){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[i]),this}setFromAttributeAndIndices(e,t,n,i){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,n),this.c.fromBufferAttribute(e,i),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return Et.subVectors(this.c,this.b),Ht.subVectors(this.a,this.b),Et.cross(Ht).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return Qe.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return Qe.getBarycoord(e,this.a,this.b,this.c,t)}getUV(e,t,n,i,r){return Qe.getUV(e,this.a,this.b,this.c,t,n,i,r)}containsPoint(e){return Qe.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return Qe.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const n=this.a,i=this.b,r=this.c;let a,o;Rn.subVectors(i,n),Cn.subVectors(r,n),Er.subVectors(e,n);const c=Rn.dot(Er),l=Cn.dot(Er);if(c<=0&&l<=0)return t.copy(n);Ar.subVectors(e,i);const h=Rn.dot(Ar),u=Cn.dot(Ar);if(h>=0&&u<=h)return t.copy(i);const d=c*u-h*l;if(d<=0&&c>=0&&h<=0)return a=c/(c-h),t.copy(n).addScaledVector(Rn,a);Rr.subVectors(e,r);const p=Rn.dot(Rr),g=Cn.dot(Rr);if(g>=0&&p<=g)return t.copy(r);const _=p*l-c*g;if(_<=0&&l>=0&&g<=0)return o=l/(l-g),t.copy(n).addScaledVector(Cn,o);const M=h*g-p*u;if(M<=0&&u-h>=0&&p-g>=0)return zs.subVectors(r,i),o=(u-h)/(u-h+(p-g)),t.copy(i).addScaledVector(zs,o);const m=1/(M+_+d);return a=_*m,o=d*m,t.copy(n).addScaledVector(Rn,a).addScaledVector(Cn,o)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}let Vo=0;class ut extends on{constructor(){super();Object.defineProperty(this,"id",{value:Vo++}),this.uuid=Ft(),this.name="",this.type="Material",this.fog=!0,this.blending=1,this.side=0,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=100,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=7680,this.stencilZFail=7680,this.stencilZPass=7680,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.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const t in e){const n=e[t];if(n===void 0){console.warn("THREE.Material: '"+t+"' parameter is undefined.");continue}if(t==="shading"){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=n===1;continue}const i=this[t];if(i===void 0){console.warn("THREE."+this.type+": '"+t+"' is not a property of this material.");continue}i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[t]=n}}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==1&&(n.blending=this.blending),this.side!==0&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaToCoverage===!0&&(n.alphaToCoverage=this.alphaToCoverage),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=this.premultipliedAlpha),this.wireframe===!0&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=this.flatShading),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),JSON.stringify(this.userData)!=="{}"&&(n.userData=this.userData);function i(r){const a=[];for(const o in r){const c=r[o];delete c.metadata,a.push(c)}return a}if(t){const r=i(e.textures),a=i(e.images);r.length>0&&(n.textures=r),a.length>0&&(n.images=a)}return n}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.fog=e.fog,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let n=null;if(t!==null){const i=t.length;n=new Array(i);for(let r=0;r!==i;++r)n[r]=t[r].clone()}return this.clippingPlanes=n,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}}ut.prototype.isMaterial=!0;class as extends ut{constructor(e){super();this.type="MeshBasicMaterial",this.color=new me(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.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this}}as.prototype.isMeshBasicMaterial=!0;const qe=new w,Ii=new J;class tt{constructor(e,t,n){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=n===!0,this.usage=35044,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this}copyAt(e,t,n){e*=this.itemSize,n*=t.itemSize;for(let i=0,r=this.itemSize;i<r;i++)this.array[e+i]=t.array[n+i];return this}copyArray(e){return this.array.set(e),this}copyColorsArray(e){const t=this.array;let n=0;for(let i=0,r=e.length;i<r;i++){let a=e[i];a===void 0&&(console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",i),a=new me),t[n++]=a.r,t[n++]=a.g,t[n++]=a.b}return this}copyVector2sArray(e){const t=this.array;let n=0;for(let i=0,r=e.length;i<r;i++){let a=e[i];a===void 0&&(console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",i),a=new J),t[n++]=a.x,t[n++]=a.y}return this}copyVector3sArray(e){const t=this.array;let n=0;for(let i=0,r=e.length;i<r;i++){let a=e[i];a===void 0&&(console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",i),a=new w),t[n++]=a.x,t[n++]=a.y,t[n++]=a.z}return this}copyVector4sArray(e){const t=this.array;let n=0;for(let i=0,r=e.length;i<r;i++){let a=e[i];a===void 0&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",i),a=new ke),t[n++]=a.x,t[n++]=a.y,t[n++]=a.z,t[n++]=a.w}return this}applyMatrix3(e){if(this.itemSize===2)for(let t=0,n=this.count;t<n;t++)Ii.fromBufferAttribute(this,t),Ii.applyMatrix3(e),this.setXY(t,Ii.x,Ii.y);else if(this.itemSize===3)for(let t=0,n=this.count;t<n;t++)qe.fromBufferAttribute(this,t),qe.applyMatrix3(e),this.setXYZ(t,qe.x,qe.y,qe.z);return this}applyMatrix4(e){for(let t=0,n=this.count;t<n;t++)qe.x=this.getX(t),qe.y=this.getY(t),qe.z=this.getZ(t),qe.applyMatrix4(e),this.setXYZ(t,qe.x,qe.y,qe.z);return this}applyNormalMatrix(e){for(let t=0,n=this.count;t<n;t++)qe.x=this.getX(t),qe.y=this.getY(t),qe.z=this.getZ(t),qe.applyNormalMatrix(e),this.setXYZ(t,qe.x,qe.y,qe.z);return this}transformDirection(e){for(let t=0,n=this.count;t<n;t++)qe.x=this.getX(t),qe.y=this.getY(t),qe.z=this.getZ(t),qe.transformDirection(e),this.setXYZ(t,qe.x,qe.y,qe.z);return this}set(e,t=0){return this.array.set(e,t),this}getX(e){return this.array[e*this.itemSize]}setX(e,t){return this.array[e*this.itemSize]=t,this}getY(e){return this.array[e*this.itemSize+1]}setY(e,t){return this.array[e*this.itemSize+1]=t,this}getZ(e){return this.array[e*this.itemSize+2]}setZ(e,t){return this.array[e*this.itemSize+2]=t,this}getW(e){return this.array[e*this.itemSize+3]}setW(e,t){return this.array[e*this.itemSize+3]=t,this}setXY(e,t,n){return e*=this.itemSize,this.array[e+0]=t,this.array[e+1]=n,this}setXYZ(e,t,n,i){return e*=this.itemSize,this.array[e+0]=t,this.array[e+1]=n,this.array[e+2]=i,this}setXYZW(e,t,n,i,r){return e*=this.itemSize,this.array[e+0]=t,this.array[e+1]=n,this.array[e+2]=i,this.array[e+3]=r,this}onUpload(e){return this.onUploadCallback=e,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const e={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized};return this.name!==""&&(e.name=this.name),this.usage!==35044&&(e.usage=this.usage),(this.updateRange.offset!==0||this.updateRange.count!==-1)&&(e.updateRange=this.updateRange),e}}tt.prototype.isBufferAttribute=!0;class Ua extends tt{constructor(e,t,n){super(new Uint16Array(e),t,n)}}class Oa extends tt{constructor(e,t,n){super(new Uint32Array(e),t,n)}}class Ho extends tt{constructor(e,t,n){super(new Uint16Array(e),t,n)}}Ho.prototype.isFloat16BufferAttribute=!0;class it extends tt{constructor(e,t,n){super(new Float32Array(e),t,n)}}let ko=0;const yt=new ve,Cr=new Ue,Ln=new w,xt=new At,ni=new At,nt=new w;class Ye extends on{constructor(){super();Object.defineProperty(this,"id",{value:ko++}),this.uuid=Ft(),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(e){return Array.isArray(e)?this.index=new(Na(e)?Oa:Ua)(e,1):this.index=e,this}getAttribute(e){return this.attributes[e]}setAttribute(e,t){return this.attributes[e]=t,this}deleteAttribute(e){return delete this.attributes[e],this}hasAttribute(e){return this.attributes[e]!==void 0}addGroup(e,t,n=0){this.groups.push({start:e,count:t,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(e,t){this.drawRange.start=e,this.drawRange.count=t}applyMatrix4(e){const t=this.attributes.position;t!==void 0&&(t.applyMatrix4(e),t.needsUpdate=!0);const n=this.attributes.normal;if(n!==void 0){const r=new at().getNormalMatrix(e);n.applyNormalMatrix(r),n.needsUpdate=!0}const i=this.attributes.tangent;return i!==void 0&&(i.transformDirection(e),i.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}applyQuaternion(e){return yt.makeRotationFromQuaternion(e),this.applyMatrix4(yt),this}rotateX(e){return yt.makeRotationX(e),this.applyMatrix4(yt),this}rotateY(e){return yt.makeRotationY(e),this.applyMatrix4(yt),this}rotateZ(e){return yt.makeRotationZ(e),this.applyMatrix4(yt),this}translate(e,t,n){return yt.makeTranslation(e,t,n),this.applyMatrix4(yt),this}scale(e,t,n){return yt.makeScale(e,t,n),this.applyMatrix4(yt),this}lookAt(e){return Cr.lookAt(e),Cr.updateMatrix(),this.applyMatrix4(Cr.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Ln).negate(),this.translate(Ln.x,Ln.y,Ln.z),this}setFromPoints(e){const t=[];for(let n=0,i=e.length;n<i;n++){const r=e[n];t.push(r.x,r.y,r.z||0)}return this.setAttribute("position",new it(t,3)),this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new At);const e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set "mesh.frustumCulled" to "false".',this),this.boundingBox.set(new w(-1/0,-1/0,-1/0),new w(1/0,1/0,1/0));return}if(e!==void 0){if(this.boundingBox.setFromBufferAttribute(e),t)for(let n=0,i=t.length;n<i;n++){const r=t[n];xt.setFromBufferAttribute(r),this.morphTargetsRelative?(nt.addVectors(this.boundingBox.min,xt.min),this.boundingBox.expandByPoint(nt),nt.addVectors(this.boundingBox.max,xt.max),this.boundingBox.expandByPoint(nt)):(this.boundingBox.expandByPoint(xt.min),this.boundingBox.expandByPoint(xt.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(){this.boundingSphere===null&&(this.boundingSphere=new Zn);const e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set "mesh.frustumCulled" to "false".',this),this.boundingSphere.set(new w,1/0);return}if(e){const n=this.boundingSphere.center;if(xt.setFromBufferAttribute(e),t)for(let r=0,a=t.length;r<a;r++){const o=t[r];ni.setFromBufferAttribute(o),this.morphTargetsRelative?(nt.addVectors(xt.min,ni.min),xt.expandByPoint(nt),nt.addVectors(xt.max,ni.max),xt.expandByPoint(nt)):(xt.expandByPoint(ni.min),xt.expandByPoint(ni.max))}xt.getCenter(n);let i=0;for(let r=0,a=e.count;r<a;r++)nt.fromBufferAttribute(e,r),i=Math.max(i,n.distanceToSquared(nt));if(t)for(let r=0,a=t.length;r<a;r++){const o=t[r],c=this.morphTargetsRelative;for(let l=0,h=o.count;l<h;l++)nt.fromBufferAttribute(o,l),c&&(Ln.fromBufferAttribute(e,l),nt.add(Ln)),i=Math.max(i,n.distanceToSquared(nt))}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 e=this.index,t=this.attributes;if(e===null||t.position===void 0||t.normal===void 0||t.uv===void 0){console.error("THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");return}const n=e.array,i=t.position.array,r=t.normal.array,a=t.uv.array,o=i.length/3;t.tangent===void 0&&this.setAttribute("tangent",new tt(new Float32Array(4*o),4));const c=t.tangent.array,l=[],h=[];for(let Z=0;Z<o;Z++)l[Z]=new w,h[Z]=new w;const u=new w,d=new w,p=new w,g=new J,_=new J,M=new J,m=new w,f=new w;function E(Z,x,R){u.fromArray(i,Z*3),d.fromArray(i,x*3),p.fromArray(i,R*3),g.fromArray(a,Z*2),_.fromArray(a,x*2),M.fromArray(a,R*2),d.sub(u),p.sub(u),_.sub(g),M.sub(g);const D=1/(_.x*M.y-M.x*_.y);!isFinite(D)||(m.copy(d).multiplyScalar(M.y).addScaledVector(p,-_.y).multiplyScalar(D),f.copy(p).multiplyScalar(_.x).addScaledVector(d,-M.x).multiplyScalar(D),l[Z].add(m),l[x].add(m),l[R].add(m),h[Z].add(f),h[x].add(f),h[R].add(f))}let y=this.groups;y.length===0&&(y=[{start:0,count:n.length}]);for(let Z=0,x=y.length;Z<x;++Z){const R=y[Z],D=R.start,B=R.count;for(let N=D,I=D+B;N<I;N+=3)E(n[N+0],n[N+1],n[N+2])}const T=new w,C=new w,L=new w,Y=new w;function se(Z){L.fromArray(r,Z*3),Y.copy(L);const x=l[Z];T.copy(x),T.sub(L.multiplyScalar(L.dot(x))).normalize(),C.crossVectors(Y,x);const D=C.dot(h[Z])<0?-1:1;c[Z*4]=T.x,c[Z*4+1]=T.y,c[Z*4+2]=T.z,c[Z*4+3]=D}for(let Z=0,x=y.length;Z<x;++Z){const R=y[Z],D=R.start,B=R.count;for(let N=D,I=D+B;N<I;N+=3)se(n[N+0]),se(n[N+1]),se(n[N+2])}}computeVertexNormals(){const e=this.index,t=this.getAttribute("position");if(t!==void 0){let n=this.getAttribute("normal");if(n===void 0)n=new tt(new Float32Array(t.count*3),3),this.setAttribute("normal",n);else for(let d=0,p=n.count;d<p;d++)n.setXYZ(d,0,0,0);const i=new w,r=new w,a=new w,o=new w,c=new w,l=new w,h=new w,u=new w;if(e)for(let d=0,p=e.count;d<p;d+=3){const g=e.getX(d+0),_=e.getX(d+1),M=e.getX(d+2);i.fromBufferAttribute(t,g),r.fromBufferAttribute(t,_),a.fromBufferAttribute(t,M),h.subVectors(a,r),u.subVectors(i,r),h.cross(u),o.fromBufferAttribute(n,g),c.fromBufferAttribute(n,_),l.fromBufferAttribute(n,M),o.add(h),c.add(h),l.add(h),n.setXYZ(g,o.x,o.y,o.z),n.setXYZ(_,c.x,c.y,c.z),n.setXYZ(M,l.x,l.y,l.z)}else for(let d=0,p=t.count;d<p;d+=3)i.fromBufferAttribute(t,d+0),r.fromBufferAttribute(t,d+1),a.fromBufferAttribute(t,d+2),h.subVectors(a,r),u.subVectors(i,r),h.cross(u),n.setXYZ(d+0,h.x,h.y,h.z),n.setXYZ(d+1,h.x,h.y,h.z),n.setXYZ(d+2,h.x,h.y,h.z);this.normalizeNormals(),n.needsUpdate=!0}}merge(e,t){if(!(e&&e.isBufferGeometry)){console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.",e);return}t===void 0&&(t=0,console.warn("THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge."));const n=this.attributes;for(const i in n){if(e.attributes[i]===void 0)continue;const a=n[i].array,o=e.attributes[i],c=o.array,l=o.itemSize*t,h=Math.min(c.length,a.length-l);for(let u=0,d=l;u<h;u++,d++)a[d]=c[u]}return this}normalizeNormals(){const e=this.attributes.normal;for(let t=0,n=e.count;t<n;t++)nt.fromBufferAttribute(e,t),nt.normalize(),e.setXYZ(t,nt.x,nt.y,nt.z)}toNonIndexed(){function e(o,c){const l=o.array,h=o.itemSize,u=o.normalized,d=new l.constructor(c.length*h);let p=0,g=0;for(let _=0,M=c.length;_<M;_++){o.isInterleavedBufferAttribute?p=c[_]*o.data.stride+o.offset:p=c[_]*h;for(let m=0;m<h;m++)d[g++]=l[p++]}return new tt(d,h,u)}if(this.index===null)return console.warn("THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;const t=new Ye,n=this.index.array,i=this.attributes;for(const o in i){const c=i[o],l=e(c,n);t.setAttribute(o,l)}const r=this.morphAttributes;for(const o in r){const c=[],l=r[o];for(let h=0,u=l.length;h<u;h++){const d=l[h],p=e(d,n);c.push(p)}t.morphAttributes[o]=c}t.morphTargetsRelative=this.morphTargetsRelative;const a=this.groups;for(let o=0,c=a.length;o<c;o++){const l=a[o];t.addGroup(l.start,l.count,l.materialIndex)}return t}toJSON(){const e={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(e.uuid=this.uuid,e.type=this.type,this.name!==""&&(e.name=this.name),Object.keys(this.userData).length>0&&(e.userData=this.userData),this.parameters!==void 0){const c=this.parameters;for(const l in c)c[l]!==void 0&&(e[l]=c[l]);return e}e.data={attributes:{}};const t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const n=this.attributes;for(const c in n){const l=n[c];e.data.attributes[c]=l.toJSON(e.data)}const i={};let r=!1;for(const c in this.morphAttributes){const l=this.morphAttributes[c],h=[];for(let u=0,d=l.length;u<d;u++){const p=l[u];h.push(p.toJSON(e.data))}h.length>0&&(i[c]=h,r=!0)}r&&(e.data.morphAttributes=i,e.data.morphTargetsRelative=this.morphTargetsRelative);const a=this.groups;a.length>0&&(e.data.groups=JSON.parse(JSON.stringify(a)));const o=this.boundingSphere;return o!==null&&(e.data.boundingSphere={center:o.center.toArray(),radius:o.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const t={};this.name=e.name;const n=e.index;n!==null&&this.setIndex(n.clone(t));const i=e.attributes;for(const l in i){const h=i[l];this.setAttribute(l,h.clone(t))}const r=e.morphAttributes;for(const l in r){const h=[],u=r[l];for(let d=0,p=u.length;d<p;d++)h.push(u[d].clone(t));this.morphAttributes[l]=h}this.morphTargetsRelative=e.morphTargetsRelative;const a=e.groups;for(let l=0,h=a.length;l<h;l++){const u=a[l];this.addGroup(u.start,u.count,u.materialIndex)}const o=e.boundingBox;o!==null&&(this.boundingBox=o.clone());const c=e.boundingSphere;return c!==null&&(this.boundingSphere=c.clone()),this.drawRange.start=e.drawRange.start,this.drawRange.count=e.drawRange.count,this.userData=e.userData,e.parameters!==void 0&&(this.parameters=Object.assign({},e.parameters)),this}dispose(){this.dispatchEvent({type:"dispose"})}}Ye.prototype.isBufferGeometry=!0;const Us=new ve,Pn=new vn,Lr=new Zn,Jt=new w,$t=new w,Kt=new w,Pr=new w,Dr=new w,Ir=new w,Fi=new w,Bi=new w,Ni=new w,zi=new J,Ui=new J,Oi=new J,Fr=new w,Gi=new w;class mt extends Ue{constructor(e=new Ye,t=new as){super();this.type="Mesh",this.geometry=e,this.material=t,this.updateMorphTargets()}copy(e){return super.copy(e),e.morphTargetInfluences!==void 0&&(this.morphTargetInfluences=e.morphTargetInfluences.slice()),e.morphTargetDictionary!==void 0&&(this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),this.material=e.material,this.geometry=e.geometry,this}updateMorphTargets(){const e=this.geometry;if(e.isBufferGeometry){const t=e.morphAttributes,n=Object.keys(t);if(n.length>0){const i=t[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,a=i.length;r<a;r++){const o=i[r].name||String(r);this.morphTargetInfluences.push(0),this.morphTargetDictionary[o]=r}}}}else{const t=e.morphTargets;t!==void 0&&t.length>0&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}}raycast(e,t){const n=this.geometry,i=this.material,r=this.matrixWorld;if(i===void 0||(n.boundingSphere===null&&n.computeBoundingSphere(),Lr.copy(n.boundingSphere),Lr.applyMatrix4(r),e.ray.intersectsSphere(Lr)===!1)||(Us.copy(r).invert(),Pn.copy(e.ray).applyMatrix4(Us),n.boundingBox!==null&&Pn.intersectsBox(n.boundingBox)===!1))return;let a;if(n.isBufferGeometry){const o=n.index,c=n.attributes.position,l=n.morphAttributes.position,h=n.morphTargetsRelative,u=n.attributes.uv,d=n.attributes.uv2,p=n.groups,g=n.drawRange;if(o!==null)if(Array.isArray(i))for(let _=0,M=p.length;_<M;_++){const m=p[_],f=i[m.materialIndex],E=Math.max(m.start,g.start),y=Math.min(o.count,Math.min(m.start+m.count,g.start+g.count));for(let T=E,C=y;T<C;T+=3){const L=o.getX(T),Y=o.getX(T+1),se=o.getX(T+2);a=Vi(this,f,e,Pn,c,l,h,u,d,L,Y,se),a&&(a.faceIndex=Math.floor(T/3),a.face.materialIndex=m.materialIndex,t.push(a))}}else{const _=Math.max(0,g.start),M=Math.min(o.count,g.start+g.count);for(let m=_,f=M;m<f;m+=3){const E=o.getX(m),y=o.getX(m+1),T=o.getX(m+2);a=Vi(this,i,e,Pn,c,l,h,u,d,E,y,T),a&&(a.faceIndex=Math.floor(m/3),t.push(a))}}else if(c!==void 0)if(Array.isArray(i))for(let _=0,M=p.length;_<M;_++){const m=p[_],f=i[m.materialIndex],E=Math.max(m.start,g.start),y=Math.min(c.count,Math.min(m.start+m.count,g.start+g.count));for(let T=E,C=y;T<C;T+=3){const L=T,Y=T+1,se=T+2;a=Vi(this,f,e,Pn,c,l,h,u,d,L,Y,se),a&&(a.faceIndex=Math.floor(T/3),a.face.materialIndex=m.materialIndex,t.push(a))}}else{const _=Math.max(0,g.start),M=Math.min(c.count,g.start+g.count);for(let m=_,f=M;m<f;m+=3){const E=m,y=m+1,T=m+2;a=Vi(this,i,e,Pn,c,l,h,u,d,E,y,T),a&&(a.faceIndex=Math.floor(m/3),t.push(a))}}}else n.isGeometry&&console.error("THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}}mt.prototype.isMesh=!0;function Wo(s,e,t,n,i,r,a,o){let c;if(e.side===1?c=n.intersectTriangle(a,r,i,!0,o):c=n.intersectTriangle(i,r,a,e.side!==2,o),c===null)return null;Gi.copy(o),Gi.applyMatrix4(s.matrixWorld);const l=t.ray.origin.distanceTo(Gi);return l<t.near||l>t.far?null:{distance:l,point:Gi.clone(),object:s}}function Vi(s,e,t,n,i,r,a,o,c,l,h,u){Jt.fromBufferAttribute(i,l),$t.fromBufferAttribute(i,h),Kt.fromBufferAttribute(i,u);const d=s.morphTargetInfluences;if(r&&d){Fi.set(0,0,0),Bi.set(0,0,0),Ni.set(0,0,0);for(let g=0,_=r.length;g<_;g++){const M=d[g],m=r[g];M!==0&&(Pr.fromBufferAttribute(m,l),Dr.fromBufferAttribute(m,h),Ir.fromBufferAttribute(m,u),a?(Fi.addScaledVector(Pr,M),Bi.addScaledVector(Dr,M),Ni.addScaledVector(Ir,M)):(Fi.addScaledVector(Pr.sub(Jt),M),Bi.addScaledVector(Dr.sub($t),M),Ni.addScaledVector(Ir.sub(Kt),M)))}Jt.add(Fi),$t.add(Bi),Kt.add(Ni)}s.isSkinnedMesh&&(s.boneTransform(l,Jt),s.boneTransform(h,$t),s.boneTransform(u,Kt));const p=Wo(s,e,t,n,Jt,$t,Kt,Fr);if(p){o&&(zi.fromBufferAttribute(o,l),Ui.fromBufferAttribute(o,h),Oi.fromBufferAttribute(o,u),p.uv=Qe.getUV(Fr,Jt,$t,Kt,zi,Ui,Oi,new J)),c&&(zi.fromBufferAttribute(c,l),Ui.fromBufferAttribute(c,h),Oi.fromBufferAttribute(c,u),p.uv2=Qe.getUV(Fr,Jt,$t,Kt,zi,Ui,Oi,new J));const g={a:l,b:h,c:u,normal:new w,materialIndex:0};Qe.getNormal(Jt,$t,Kt,g.normal),p.face=g}return p}class xi extends Ye{constructor(e=1,t=1,n=1,i=1,r=1,a=1){super();this.type="BoxGeometry",this.parameters={width:e,height:t,depth:n,widthSegments:i,heightSegments:r,depthSegments:a};const o=this;i=Math.floor(i),r=Math.floor(r),a=Math.floor(a);const c=[],l=[],h=[],u=[];let d=0,p=0;g("z","y","x",-1,-1,n,t,e,a,r,0),g("z","y","x",1,-1,n,t,-e,a,r,1),g("x","z","y",1,1,e,n,t,i,a,2),g("x","z","y",1,-1,e,n,-t,i,a,3),g("x","y","z",1,-1,e,t,n,i,r,4),g("x","y","z",-1,-1,e,t,-n,i,r,5),this.setIndex(c),this.setAttribute("position",new it(l,3)),this.setAttribute("normal",new it(h,3)),this.setAttribute("uv",new it(u,2));function g(_,M,m,f,E,y,T,C,L,Y,se){const Z=y/L,x=T/Y,R=y/2,D=T/2,B=C/2,N=L+1,I=Y+1;let V=0,j=0;const ce=new w;for(let O=0;O<I;O++){const X=O*x-D;for(let ne=0;ne<N;ne++){const ue=ne*Z-R;ce[_]=ue*f,ce[M]=X*E,ce[m]=B,l.push(ce.x,ce.y,ce.z),ce[_]=0,ce[M]=0,ce[m]=C>0?1:-1,h.push(ce.x,ce.y,ce.z),u.push(ne/L),u.push(1-O/Y),V+=1}}for(let O=0;O<Y;O++)for(let X=0;X<L;X++){const ne=d+X+N*O,ue=d+X+N*(O+1),ge=d+(X+1)+N*(O+1),U=d+(X+1)+N*O;c.push(ne,ue,U),c.push(ue,ge,U),j+=6}o.addGroup(p,j,se),p+=j,d+=V}}static fromJSON(e){return new xi(e.width,e.height,e.depth,e.widthSegments,e.heightSegments,e.depthSegments)}}function Xn(s){const e={};for(const t in s){e[t]={};for(const n in s[t]){const i=s[t][n];i&&(i.isColor||i.isMatrix3||i.isMatrix4||i.isVector2||i.isVector3||i.isVector4||i.isTexture||i.isQuaternion)?e[t][n]=i.clone():Array.isArray(i)?e[t][n]=i.slice():e[t][n]=i}}return e}function lt(s){const e={};for(let t=0;t<s.length;t++){const n=Xn(s[t]);for(const i in n)e[i]=n[i]}return e}const qo={clone:Xn,merge:lt};var Xo=`void main() { + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); +}`,Yo=`void main() { + gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 ); +}`;class _n extends ut{constructor(e){super();this.type="ShaderMaterial",this.defines={},this.uniforms={},this.vertexShader=Xo,this.fragmentShader=Yo,this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,e!==void 0&&(e.attributes!==void 0&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(e))}copy(e){return super.copy(e),this.fragmentShader=e.fragmentShader,this.vertexShader=e.vertexShader,this.uniforms=Xn(e.uniforms),this.defines=Object.assign({},e.defines),this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.lights=e.lights,this.clipping=e.clipping,this.extensions=Object.assign({},e.extensions),this.glslVersion=e.glslVersion,this}toJSON(e){const t=super.toJSON(e);t.glslVersion=this.glslVersion,t.uniforms={};for(const i in this.uniforms){const a=this.uniforms[i].value;a&&a.isTexture?t.uniforms[i]={type:"t",value:a.toJSON(e).uuid}:a&&a.isColor?t.uniforms[i]={type:"c",value:a.getHex()}:a&&a.isVector2?t.uniforms[i]={type:"v2",value:a.toArray()}:a&&a.isVector3?t.uniforms[i]={type:"v3",value:a.toArray()}:a&&a.isVector4?t.uniforms[i]={type:"v4",value:a.toArray()}:a&&a.isMatrix3?t.uniforms[i]={type:"m3",value:a.toArray()}:a&&a.isMatrix4?t.uniforms[i]={type:"m4",value:a.toArray()}:t.uniforms[i]={value:a}}Object.keys(this.defines).length>0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader;const n={};for(const i in this.extensions)this.extensions[i]===!0&&(n[i]=!0);return Object.keys(n).length>0&&(t.extensions=n),t}}_n.prototype.isShaderMaterial=!0;class os extends Ue{constructor(){super();this.type="Camera",this.matrixWorldInverse=new ve,this.projectionMatrix=new ve,this.projectionMatrixInverse=new ve}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this}getWorldDirection(e){this.updateWorldMatrix(!0,!1);const t=this.matrixWorld.elements;return e.set(-t[8],-t[9],-t[10]).normalize()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}os.prototype.isCamera=!0;class pt extends os{constructor(e=50,t=1,n=.1,i=2e3){super();this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=Zr*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(fr*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return Zr*2*Math.atan(Math.tan(fr*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(e,t,n,i,r,a){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(fr*.5*this.fov)/this.zoom,n=2*t,i=this.aspect*n,r=-.5*i;const a=this.view;if(this.view!==null&&this.view.enabled){const c=a.fullWidth,l=a.fullHeight;r+=a.offsetX*i/c,t-=a.offsetY*n/l,i*=a.width/c,n*=a.height/l}const o=this.filmOffset;o!==0&&(r+=e*o/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,t,t-n,e,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}pt.prototype.isPerspectiveCamera=!0;const Dn=90,In=1;class ls extends Ue{constructor(e,t,n){super();if(this.type="CubeCamera",n.isWebGLCubeRenderTarget!==!0){console.error("THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.");return}this.renderTarget=n;const i=new pt(Dn,In,e,t);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new w(1,0,0)),this.add(i);const r=new pt(Dn,In,e,t);r.layers=this.layers,r.up.set(0,-1,0),r.lookAt(new w(-1,0,0)),this.add(r);const a=new pt(Dn,In,e,t);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(new w(0,1,0)),this.add(a);const o=new pt(Dn,In,e,t);o.layers=this.layers,o.up.set(0,0,-1),o.lookAt(new w(0,-1,0)),this.add(o);const c=new pt(Dn,In,e,t);c.layers=this.layers,c.up.set(0,-1,0),c.lookAt(new w(0,0,1)),this.add(c);const l=new pt(Dn,In,e,t);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new w(0,0,-1)),this.add(l)}update(e,t){this.parent===null&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,a,o,c,l]=this.children,h=e.xr.enabled,u=e.getRenderTarget();e.xr.enabled=!1;const d=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,e.setRenderTarget(n,0),e.render(t,i),e.setRenderTarget(n,1),e.render(t,r),e.setRenderTarget(n,2),e.render(t,a),e.setRenderTarget(n,3),e.render(t,o),e.setRenderTarget(n,4),e.render(t,c),n.texture.generateMipmaps=d,e.setRenderTarget(n,5),e.render(t,l),e.setRenderTarget(u),e.xr.enabled=h,n.texture.needsPMREMUpdate=!0}}class sr extends rt{constructor(e,t,n,i,r,a,o,c,l,h){e=e!==void 0?e:[],t=t!==void 0?t:301;super(e,t,n,i,r,a,o,c,l,h);this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}sr.prototype.isCubeTexture=!0;class Ga extends Mt{constructor(e,t,n){Number.isInteger(t)&&(console.warn("THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )"),t=n);super(e,e,t);t=t||{},this.texture=new sr(void 0,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:1006}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.format=1023,this.texture.encoding=t.encoding,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include <begin_vertex> + #include <project_vertex> + + } + `,fragmentShader:` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include <common> + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + `},i=new xi(5,5,5),r=new _n({name:"CubemapFromEquirect",uniforms:Xn(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});r.uniforms.tEquirect.value=t;const a=new mt(i,r),o=t.minFilter;return t.minFilter===1008&&(t.minFilter=1006),new ls(1,10,this).update(e,a),t.minFilter=o,a.geometry.dispose(),a.material.dispose(),this}clear(e,t,n,i){const r=e.getRenderTarget();for(let a=0;a<6;a++)e.setRenderTarget(this,a),e.clear(t,n,i);e.setRenderTarget(r)}}Ga.prototype.isWebGLCubeRenderTarget=!0;const Br=new w,Zo=new w,jo=new at;class qt{constructor(e=new w(1,0,0),t=0){this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,n,i){return this.normal.set(e,t,n),this.constant=i,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,n){const i=Br.subVectors(n,t).cross(Zo.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(i,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(this.normal).multiplyScalar(-this.distanceToPoint(e)).add(e)}intersectLine(e,t){const n=e.delta(Br),i=this.normal.dot(n);if(i===0)return this.distanceToPoint(e.start)===0?t.copy(e.start):null;const r=-(e.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:t.copy(n).multiplyScalar(r).add(e.start)}intersectsLine(e){const t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const n=t||jo.getNormalMatrix(e),i=this.coplanarPoint(Br).applyMatrix4(e),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}qt.prototype.isPlane=!0;const Fn=new Zn,Hi=new w;class ar{constructor(e=new qt,t=new qt,n=new qt,i=new qt,r=new qt,a=new qt){this.planes=[e,t,n,i,r,a]}set(e,t,n,i,r,a){const o=this.planes;return o[0].copy(e),o[1].copy(t),o[2].copy(n),o[3].copy(i),o[4].copy(r),o[5].copy(a),this}copy(e){const t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this}setFromProjectionMatrix(e){const t=this.planes,n=e.elements,i=n[0],r=n[1],a=n[2],o=n[3],c=n[4],l=n[5],h=n[6],u=n[7],d=n[8],p=n[9],g=n[10],_=n[11],M=n[12],m=n[13],f=n[14],E=n[15];return t[0].setComponents(o-i,u-c,_-d,E-M).normalize(),t[1].setComponents(o+i,u+c,_+d,E+M).normalize(),t[2].setComponents(o+r,u+l,_+p,E+m).normalize(),t[3].setComponents(o-r,u-l,_-p,E-m).normalize(),t[4].setComponents(o-a,u-h,_-g,E-f).normalize(),t[5].setComponents(o+a,u+h,_+g,E+f).normalize(),this}intersectsObject(e){const t=e.geometry;return t.boundingSphere===null&&t.computeBoundingSphere(),Fn.copy(t.boundingSphere).applyMatrix4(e.matrixWorld),this.intersectsSphere(Fn)}intersectsSprite(e){return Fn.center.set(0,0,0),Fn.radius=.7071067811865476,Fn.applyMatrix4(e.matrixWorld),this.intersectsSphere(Fn)}intersectsSphere(e){const t=this.planes,n=e.center,i=-e.radius;for(let r=0;r<6;r++)if(t[r].distanceToPoint(n)<i)return!1;return!0}intersectsBox(e){const t=this.planes;for(let n=0;n<6;n++){const i=t[n];if(Hi.x=i.normal.x>0?e.max.x:e.min.x,Hi.y=i.normal.y>0?e.max.y:e.min.y,Hi.z=i.normal.z>0?e.max.z:e.min.z,i.distanceToPoint(Hi)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let n=0;n<6;n++)if(t[n].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function Va(){let s=null,e=!1,t=null,n=null;function i(r,a){t(r,a),n=s.requestAnimationFrame(i)}return{start:function(){e!==!0&&t!==null&&(n=s.requestAnimationFrame(i),e=!0)},stop:function(){s.cancelAnimationFrame(n),e=!1},setAnimationLoop:function(r){t=r},setContext:function(r){s=r}}}function Jo(s,e){const t=e.isWebGL2,n=new WeakMap;function i(l,h){const u=l.array,d=l.usage,p=s.createBuffer();s.bindBuffer(h,p),s.bufferData(h,u,d),l.onUploadCallback();let g=5126;return u instanceof Float32Array?g=5126:u instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):u instanceof Uint16Array?l.isFloat16BufferAttribute?t?g=5131:console.warn("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2."):g=5123:u instanceof Int16Array?g=5122:u instanceof Uint32Array?g=5125:u instanceof Int32Array?g=5124:u instanceof Int8Array?g=5120:(u instanceof Uint8Array||u instanceof Uint8ClampedArray)&&(g=5121),{buffer:p,type:g,bytesPerElement:u.BYTES_PER_ELEMENT,version:l.version}}function r(l,h,u){const d=h.array,p=h.updateRange;s.bindBuffer(u,l),p.count===-1?s.bufferSubData(u,0,d):(t?s.bufferSubData(u,p.offset*d.BYTES_PER_ELEMENT,d,p.offset,p.count):s.bufferSubData(u,p.offset*d.BYTES_PER_ELEMENT,d.subarray(p.offset,p.offset+p.count)),p.count=-1)}function a(l){return l.isInterleavedBufferAttribute&&(l=l.data),n.get(l)}function o(l){l.isInterleavedBufferAttribute&&(l=l.data);const h=n.get(l);h&&(s.deleteBuffer(h.buffer),n.delete(l))}function c(l,h){if(l.isGLBufferAttribute){const d=n.get(l);(!d||d.version<l.version)&&n.set(l,{buffer:l.buffer,type:l.type,bytesPerElement:l.elementSize,version:l.version});return}l.isInterleavedBufferAttribute&&(l=l.data);const u=n.get(l);u===void 0?n.set(l,i(l,h)):u.version<l.version&&(r(u.buffer,l,h),u.version=l.version)}return{get:a,remove:o,update:c}}class cs extends Ye{constructor(e=1,t=1,n=1,i=1){super();this.type="PlaneGeometry",this.parameters={width:e,height:t,widthSegments:n,heightSegments:i};const r=e/2,a=t/2,o=Math.floor(n),c=Math.floor(i),l=o+1,h=c+1,u=e/o,d=t/c,p=[],g=[],_=[],M=[];for(let m=0;m<h;m++){const f=m*d-a;for(let E=0;E<l;E++){const y=E*u-r;g.push(y,-f,0),_.push(0,0,1),M.push(E/o),M.push(1-m/c)}}for(let m=0;m<c;m++)for(let f=0;f<o;f++){const E=f+l*m,y=f+l*(m+1),T=f+1+l*(m+1),C=f+1+l*m;p.push(E,y,C),p.push(y,T,C)}this.setIndex(p),this.setAttribute("position",new it(g,3)),this.setAttribute("normal",new it(_,3)),this.setAttribute("uv",new it(M,2))}static fromJSON(e){return new cs(e.width,e.height,e.widthSegments,e.heightSegments)}}var $o=`#ifdef USE_ALPHAMAP + diffuseColor.a *= texture2D( alphaMap, vUv ).g; +#endif`,Ko=`#ifdef USE_ALPHAMAP + uniform sampler2D alphaMap; +#endif`,Qo=`#ifdef USE_ALPHATEST + if ( diffuseColor.a < alphaTest ) discard; +#endif`,el=`#ifdef USE_ALPHATEST + uniform float alphaTest; +#endif`,tl=`#ifdef USE_AOMAP + float ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0; + reflectedLight.indirectDiffuse *= ambientOcclusion; + #if defined( USE_ENVMAP ) && defined( STANDARD ) + float dotNV = saturate( dot( geometry.normal, geometry.viewDir ) ); + reflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness ); + #endif +#endif`,nl=`#ifdef USE_AOMAP + uniform sampler2D aoMap; + uniform float aoMapIntensity; +#endif`,il="vec3 transformed = vec3( position );",rl=`vec3 objectNormal = vec3( normal ); +#ifdef USE_TANGENT + vec3 objectTangent = vec3( tangent.xyz ); +#endif`,sl=`vec3 BRDF_Lambert( const in vec3 diffuseColor ) { + return RECIPROCAL_PI * diffuseColor; +} +vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} +float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { + float a2 = pow2( alpha ); + float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); + float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); + return 0.5 / max( gv + gl, EPSILON ); +} +float D_GGX( const in float alpha, const in float dotNH ) { + float a2 = pow2( alpha ); + float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; + return RECIPROCAL_PI * a2 / pow2( denom ); +} +vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 f0, const in float f90, const in float roughness ) { + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + return F * ( V * D ); +} +vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { + const float LUT_SIZE = 64.0; + const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; + const float LUT_BIAS = 0.5 / LUT_SIZE; + float dotNV = saturate( dot( N, V ) ); + vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); + uv = uv * LUT_SCALE + LUT_BIAS; + return uv; +} +float LTC_ClippedSphereFormFactor( const in vec3 f ) { + float l = length( f ); + return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); +} +vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { + float x = dot( v1, v2 ); + float y = abs( x ); + float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; + float b = 3.4175940 + ( 4.1616724 + y ) * y; + float v = a / b; + float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; + return cross( v1, v2 ) * theta_sintheta; +} +vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { + vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; + vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; + vec3 lightNormal = cross( v1, v2 ); + if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); + vec3 T1, T2; + T1 = normalize( V - N * dot( V, N ) ); + T2 = - cross( N, T1 ); + mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); + vec3 coords[ 4 ]; + coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); + coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); + coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); + coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); + coords[ 0 ] = normalize( coords[ 0 ] ); + coords[ 1 ] = normalize( coords[ 1 ] ); + coords[ 2 ] = normalize( coords[ 2 ] ); + coords[ 3 ] = normalize( coords[ 3 ] ); + vec3 vectorFormFactor = vec3( 0.0 ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); + float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); + return vec3( result ); +} +float G_BlinnPhong_Implicit( ) { + return 0.25; +} +float D_BlinnPhong( const in float shininess, const in float dotNH ) { + return RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess ); +} +vec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( specularColor, 1.0, dotVH ); + float G = G_BlinnPhong_Implicit( ); + float D = D_BlinnPhong( shininess, dotNH ); + return F * ( G * D ); +} +#if defined( USE_SHEEN ) +float D_Charlie( float roughness, float dotNH ) { + float alpha = pow2( roughness ); + float invAlpha = 1.0 / alpha; + float cos2h = dotNH * dotNH; + float sin2h = max( 1.0 - cos2h, 0.0078125 ); + return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); +} +float V_Neubelt( float dotNV, float dotNL ) { + return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); +} +vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float D = D_Charlie( sheenRoughness, dotNH ); + float V = V_Neubelt( dotNV, dotNL ); + return sheenColor * ( D * V ); +} +#endif`,al=`#ifdef USE_BUMPMAP + uniform sampler2D bumpMap; + uniform float bumpScale; + vec2 dHdxy_fwd() { + vec2 dSTdx = dFdx( vUv ); + vec2 dSTdy = dFdy( vUv ); + float Hll = bumpScale * texture2D( bumpMap, vUv ).x; + float dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll; + float dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll; + return vec2( dBx, dBy ); + } + vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) { + vec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) ); + vec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) ); + vec3 vN = surf_norm; + vec3 R1 = cross( vSigmaY, vN ); + vec3 R2 = cross( vN, vSigmaX ); + float fDet = dot( vSigmaX, R1 ) * faceDirection; + vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 ); + return normalize( abs( fDet ) * surf_norm - vGrad ); + } +#endif`,ol=`#if NUM_CLIPPING_PLANES > 0 + vec4 plane; + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + bool clipped = true; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; + } + #pragma unroll_loop_end + if ( clipped ) discard; + #endif +#endif`,ll=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; + uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; +#endif`,cl=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; +#endif`,hl=`#if NUM_CLIPPING_PLANES > 0 + vClipPosition = - mvPosition.xyz; +#endif`,ul=`#if defined( USE_COLOR_ALPHA ) + diffuseColor *= vColor; +#elif defined( USE_COLOR ) + diffuseColor.rgb *= vColor; +#endif`,dl=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) + varying vec3 vColor; +#endif`,fl=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + varying vec3 vColor; +#endif`,pl=`#if defined( USE_COLOR_ALPHA ) + vColor = vec4( 1.0 ); +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + vColor = vec3( 1.0 ); +#endif +#ifdef USE_COLOR + vColor *= color; +#endif +#ifdef USE_INSTANCING_COLOR + vColor.xyz *= instanceColor.xyz; +#endif`,ml=`#define PI 3.141592653589793 +#define PI2 6.283185307179586 +#define PI_HALF 1.5707963267948966 +#define RECIPROCAL_PI 0.3183098861837907 +#define RECIPROCAL_PI2 0.15915494309189535 +#define EPSILON 1e-6 +#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +#define whiteComplement( a ) ( 1.0 - saturate( a ) ) +float pow2( const in float x ) { return x*x; } +float pow3( const in float x ) { return x*x*x; } +float pow4( const in float x ) { float x2 = x*x; return x2*x2; } +float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } +float average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); } +highp float rand( const in vec2 uv ) { + const highp float a = 12.9898, b = 78.233, c = 43758.5453; + highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); + return fract( sin( sn ) * c ); +} +#ifdef HIGH_PRECISION + float precisionSafeLength( vec3 v ) { return length( v ); } +#else + float precisionSafeLength( vec3 v ) { + float maxComponent = max3( abs( v ) ); + return length( v / maxComponent ) * maxComponent; + } +#endif +struct IncidentLight { + vec3 color; + vec3 direction; + bool visible; +}; +struct ReflectedLight { + vec3 directDiffuse; + vec3 directSpecular; + vec3 indirectDiffuse; + vec3 indirectSpecular; +}; +struct GeometricContext { + vec3 position; + vec3 normal; + vec3 viewDir; +#ifdef USE_CLEARCOAT + vec3 clearcoatNormal; +#endif +}; +vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); +} +vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); +} +mat3 transposeMat3( const in mat3 m ) { + mat3 tmp; + tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); + tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); + tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); + return tmp; +} +float linearToRelativeLuminance( const in vec3 color ) { + vec3 weights = vec3( 0.2126, 0.7152, 0.0722 ); + return dot( weights, color.rgb ); +} +bool isPerspectiveMatrix( mat4 m ) { + return m[ 2 ][ 3 ] == - 1.0; +} +vec2 equirectUv( in vec3 dir ) { + float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; + float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; + return vec2( u, v ); +}`,gl=`#ifdef ENVMAP_TYPE_CUBE_UV + #define cubeUV_maxMipLevel 8.0 + #define cubeUV_minMipLevel 4.0 + #define cubeUV_maxTileSize 256.0 + #define cubeUV_minTileSize 16.0 + float getFace( vec3 direction ) { + vec3 absDirection = abs( direction ); + float face = - 1.0; + if ( absDirection.x > absDirection.z ) { + if ( absDirection.x > absDirection.y ) + face = direction.x > 0.0 ? 0.0 : 3.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } else { + if ( absDirection.z > absDirection.y ) + face = direction.z > 0.0 ? 2.0 : 5.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } + return face; + } + vec2 getUV( vec3 direction, float face ) { + vec2 uv; + if ( face == 0.0 ) { + uv = vec2( direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 1.0 ) { + uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); + } else if ( face == 2.0 ) { + uv = vec2( - direction.x, direction.y ) / abs( direction.z ); + } else if ( face == 3.0 ) { + uv = vec2( - direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 4.0 ) { + uv = vec2( - direction.x, direction.z ) / abs( direction.y ); + } else { + uv = vec2( direction.x, direction.y ) / abs( direction.z ); + } + return 0.5 * ( uv + 1.0 ); + } + vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { + float face = getFace( direction ); + float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); + mipInt = max( mipInt, cubeUV_minMipLevel ); + float faceSize = exp2( mipInt ); + float texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize ); + vec2 uv = getUV( direction, face ) * ( faceSize - 1.0 ) + 0.5; + if ( face > 2.0 ) { + uv.y += faceSize; + face -= 3.0; + } + uv.x += face * faceSize; + if ( mipInt < cubeUV_maxMipLevel ) { + uv.y += 2.0 * cubeUV_maxTileSize; + } + uv.y += filterInt * 2.0 * cubeUV_minTileSize; + uv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize ); + uv *= texelSize; + return texture2D( envMap, uv ).rgb; + } + #define r0 1.0 + #define v0 0.339 + #define m0 - 2.0 + #define r1 0.8 + #define v1 0.276 + #define m1 - 1.0 + #define r4 0.4 + #define v4 0.046 + #define m4 2.0 + #define r5 0.305 + #define v5 0.016 + #define m5 3.0 + #define r6 0.21 + #define v6 0.0038 + #define m6 4.0 + float roughnessToMip( float roughness ) { + float mip = 0.0; + if ( roughness >= r1 ) { + mip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0; + } else if ( roughness >= r4 ) { + mip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1; + } else if ( roughness >= r5 ) { + mip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4; + } else if ( roughness >= r6 ) { + mip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5; + } else { + mip = - 2.0 * log2( 1.16 * roughness ); } + return mip; + } + vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { + float mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel ); + float mipF = fract( mip ); + float mipInt = floor( mip ); + vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); + if ( mipF == 0.0 ) { + return vec4( color0, 1.0 ); + } else { + vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); + return vec4( mix( color0, color1, mipF ), 1.0 ); + } + } +#endif`,_l=`vec3 transformedNormal = objectNormal; +#ifdef USE_INSTANCING + mat3 m = mat3( instanceMatrix ); + transformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) ); + transformedNormal = m * transformedNormal; +#endif +transformedNormal = normalMatrix * transformedNormal; +#ifdef FLIP_SIDED + transformedNormal = - transformedNormal; +#endif +#ifdef USE_TANGENT + vec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #ifdef FLIP_SIDED + transformedTangent = - transformedTangent; + #endif +#endif`,xl=`#ifdef USE_DISPLACEMENTMAP + uniform sampler2D displacementMap; + uniform float displacementScale; + uniform float displacementBias; +#endif`,vl=`#ifdef USE_DISPLACEMENTMAP + transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias ); +#endif`,yl=`#ifdef USE_EMISSIVEMAP + vec4 emissiveColor = texture2D( emissiveMap, vUv ); + totalEmissiveRadiance *= emissiveColor.rgb; +#endif`,Ml=`#ifdef USE_EMISSIVEMAP + uniform sampler2D emissiveMap; +#endif`,Sl="gl_FragColor = linearToOutputTexel( gl_FragColor );",bl=`vec4 LinearToLinear( in vec4 value ) { + return value; +} +vec4 LinearTosRGB( in vec4 value ) { + return 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 ); +}`,wl=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vec3 cameraToFrag; + if ( isOrthographic ) { + cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToFrag = normalize( vWorldPosition - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vec3 reflectVec = reflect( cameraToFrag, worldNormal ); + #else + vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); + #endif + #else + vec3 reflectVec = vReflect; + #endif + #ifdef ENVMAP_TYPE_CUBE + vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); + #elif defined( ENVMAP_TYPE_CUBE_UV ) + vec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 ); + #else + vec4 envColor = vec4( 0.0 ); + #endif + #ifdef ENVMAP_BLENDING_MULTIPLY + outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_MIX ) + outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_ADD ) + outgoingLight += envColor.xyz * specularStrength * reflectivity; + #endif +#endif`,Tl=`#ifdef USE_ENVMAP + uniform float envMapIntensity; + uniform float flipEnvMap; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; + #else + uniform sampler2D envMap; + #endif + +#endif`,El=`#ifdef USE_ENVMAP + uniform float reflectivity; + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + varying vec3 vWorldPosition; + uniform float refractionRatio; + #else + varying vec3 vReflect; + #endif +#endif`,Al=`#ifdef USE_ENVMAP + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + + varying vec3 vWorldPosition; + #else + varying vec3 vReflect; + uniform float refractionRatio; + #endif +#endif`,Rl=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vWorldPosition = worldPosition.xyz; + #else + vec3 cameraToVertex; + if ( isOrthographic ) { + cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vReflect = reflect( cameraToVertex, worldNormal ); + #else + vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); + #endif + #endif +#endif`,Cl=`#ifdef USE_FOG + vFogDepth = - mvPosition.z; +#endif`,Ll=`#ifdef USE_FOG + varying float vFogDepth; +#endif`,Pl=`#ifdef USE_FOG + #ifdef FOG_EXP2 + float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); + #else + float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); + #endif + gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); +#endif`,Dl=`#ifdef USE_FOG + uniform vec3 fogColor; + varying float vFogDepth; + #ifdef FOG_EXP2 + uniform float fogDensity; + #else + uniform float fogNear; + uniform float fogFar; + #endif +#endif`,Il=`#ifdef USE_GRADIENTMAP + uniform sampler2D gradientMap; +#endif +vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { + float dotNL = dot( normal, lightDirection ); + vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); + #ifdef USE_GRADIENTMAP + return vec3( texture2D( gradientMap, coord ).r ); + #else + return ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 ); + #endif +}`,Fl=`#ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vUv2 ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + #ifndef PHYSICALLY_CORRECT_LIGHTS + lightMapIrradiance *= PI; + #endif + reflectedLight.indirectDiffuse += lightMapIrradiance; +#endif`,Bl=`#ifdef USE_LIGHTMAP + uniform sampler2D lightMap; + uniform float lightMapIntensity; +#endif`,Nl=`vec3 diffuse = vec3( 1.0 ); +GeometricContext geometry; +geometry.position = mvPosition.xyz; +geometry.normal = normalize( transformedNormal ); +geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz ); +GeometricContext backGeometry; +backGeometry.position = geometry.position; +backGeometry.normal = -geometry.normal; +backGeometry.viewDir = geometry.viewDir; +vLightFront = vec3( 0.0 ); +vIndirectFront = vec3( 0.0 ); +#ifdef DOUBLE_SIDED + vLightBack = vec3( 0.0 ); + vIndirectBack = vec3( 0.0 ); +#endif +IncidentLight directLight; +float dotNL; +vec3 directLightColor_Diffuse; +vIndirectFront += getAmbientLightIrradiance( ambientLightColor ); +vIndirectFront += getLightProbeIrradiance( lightProbe, geometry.normal ); +#ifdef DOUBLE_SIDED + vIndirectBack += getAmbientLightIrradiance( ambientLightColor ); + vIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry.normal ); +#endif +#if NUM_POINT_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + getPointLightInfo( pointLights[ i ], geometry, directLight ); + dotNL = dot( geometry.normal, directLight.direction ); + directLightColor_Diffuse = directLight.color; + vLightFront += saturate( dotNL ) * directLightColor_Diffuse; + #ifdef DOUBLE_SIDED + vLightBack += saturate( - dotNL ) * directLightColor_Diffuse; + #endif + } + #pragma unroll_loop_end +#endif +#if NUM_SPOT_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + getSpotLightInfo( spotLights[ i ], geometry, directLight ); + dotNL = dot( geometry.normal, directLight.direction ); + directLightColor_Diffuse = directLight.color; + vLightFront += saturate( dotNL ) * directLightColor_Diffuse; + #ifdef DOUBLE_SIDED + vLightBack += saturate( - dotNL ) * directLightColor_Diffuse; + #endif + } + #pragma unroll_loop_end +#endif +#if NUM_DIR_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + getDirectionalLightInfo( directionalLights[ i ], geometry, directLight ); + dotNL = dot( geometry.normal, directLight.direction ); + directLightColor_Diffuse = directLight.color; + vLightFront += saturate( dotNL ) * directLightColor_Diffuse; + #ifdef DOUBLE_SIDED + vLightBack += saturate( - dotNL ) * directLightColor_Diffuse; + #endif + } + #pragma unroll_loop_end +#endif +#if NUM_HEMI_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + vIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal ); + #ifdef DOUBLE_SIDED + vIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry.normal ); + #endif + } + #pragma unroll_loop_end +#endif`,zl=`uniform bool receiveShadow; +uniform vec3 ambientLightColor; +uniform vec3 lightProbe[ 9 ]; +vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { + float x = normal.x, y = normal.y, z = normal.z; + vec3 result = shCoefficients[ 0 ] * 0.886227; + result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; + result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; + result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; + result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; + result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; + result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); + result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; + result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); + return result; +} +vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); + return irradiance; +} +vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { + vec3 irradiance = ambientLightColor; + return irradiance; +} +float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { + #if defined ( PHYSICALLY_CORRECT_LIGHTS ) + float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); + if ( cutoffDistance > 0.0 ) { + distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); + } + return distanceFalloff; + #else + if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) { + return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent ); + } + return 1.0; + #endif +} +float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { + return smoothstep( coneCosine, penumbraCosine, angleCosine ); +} +#if NUM_DIR_LIGHTS > 0 + struct DirectionalLight { + vec3 direction; + vec3 color; + }; + uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; + void getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) { + light.color = directionalLight.color; + light.direction = directionalLight.direction; + light.visible = true; + } +#endif +#if NUM_POINT_LIGHTS > 0 + struct PointLight { + vec3 position; + vec3 color; + float distance; + float decay; + }; + uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; + void getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) { + vec3 lVector = pointLight.position - geometry.position; + light.direction = normalize( lVector ); + float lightDistance = length( lVector ); + light.color = pointLight.color; + light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } +#endif +#if NUM_SPOT_LIGHTS > 0 + struct SpotLight { + vec3 position; + vec3 direction; + vec3 color; + float distance; + float decay; + float coneCos; + float penumbraCos; + }; + uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; + void getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) { + vec3 lVector = spotLight.position - geometry.position; + light.direction = normalize( lVector ); + float angleCos = dot( light.direction, spotLight.direction ); + float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); + if ( spotAttenuation > 0.0 ) { + float lightDistance = length( lVector ); + light.color = spotLight.color * spotAttenuation; + light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } else { + light.color = vec3( 0.0 ); + light.visible = false; + } + } +#endif +#if NUM_RECT_AREA_LIGHTS > 0 + struct RectAreaLight { + vec3 color; + vec3 position; + vec3 halfWidth; + vec3 halfHeight; + }; + uniform sampler2D ltc_1; uniform sampler2D ltc_2; + uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; +#endif +#if NUM_HEMI_LIGHTS > 0 + struct HemisphereLight { + vec3 direction; + vec3 skyColor; + vec3 groundColor; + }; + uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; + vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { + float dotNL = dot( normal, hemiLight.direction ); + float hemiDiffuseWeight = 0.5 * dotNL + 0.5; + vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); + return irradiance; + } +#endif`,Ul=`#if defined( USE_ENVMAP ) + #ifdef ENVMAP_MODE_REFRACTION + uniform float refractionRatio; + #endif + vec3 getIBLIrradiance( const in vec3 normal ) { + #if defined( ENVMAP_TYPE_CUBE_UV ) + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 ); + return PI * envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { + #if defined( ENVMAP_TYPE_CUBE_UV ) + vec3 reflectVec; + #ifdef ENVMAP_MODE_REFLECTION + reflectVec = reflect( - viewDir, normal ); + reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); + #else + reflectVec = refract( - viewDir, normal, refractionRatio ); + #endif + reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ); + return envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } +#endif`,Ol=`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;`,Gl=`varying vec3 vViewPosition; +struct ToonMaterial { + vec3 diffuseColor; +}; +void RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + vec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Toon +#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon +#define Material_LightProbeLOD( material ) (0)`,Vl=`BlinnPhongMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularColor = specular; +material.specularShininess = shininess; +material.specularStrength = specularStrength;`,Hl=`varying vec3 vViewPosition; +struct BlinnPhongMaterial { + vec3 diffuseColor; + vec3 specularColor; + float specularShininess; + float specularStrength; +}; +void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometry.normal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); + reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength; +} +void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_BlinnPhong +#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong +#define Material_LightProbeLOD( material ) (0)`,kl=`PhysicalMaterial material; +material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); +vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) ); +float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); +material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; +material.roughness = min( material.roughness, 1.0 ); +#ifdef IOR + #ifdef SPECULAR + float specularIntensityFactor = specularIntensity; + vec3 specularColorFactor = specularColor; + #ifdef USE_SPECULARINTENSITYMAP + specularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a; + #endif + #ifdef USE_SPECULARCOLORMAP + specularColorFactor *= texture2D( specularColorMap, vUv ).rgb; + #endif + material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); + #else + float specularIntensityFactor = 1.0; + vec3 specularColorFactor = vec3( 1.0 ); + material.specularF90 = 1.0; + #endif + material.specularColor = mix( min( pow2( ( ior - 1.0 ) / ( ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); +#else + material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); + material.specularF90 = 1.0; +#endif +#ifdef USE_CLEARCOAT + material.clearcoat = clearcoat; + material.clearcoatRoughness = clearcoatRoughness; + material.clearcoatF0 = vec3( 0.04 ); + material.clearcoatF90 = 1.0; + #ifdef USE_CLEARCOATMAP + material.clearcoat *= texture2D( clearcoatMap, vUv ).x; + #endif + #ifdef USE_CLEARCOAT_ROUGHNESSMAP + material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y; + #endif + material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); + material.clearcoatRoughness += geometryRoughness; + material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); +#endif +#ifdef USE_SHEEN + material.sheenColor = sheenColor; + #ifdef USE_SHEENCOLORMAP + material.sheenColor *= texture2D( sheenColorMap, vUv ).rgb; + #endif + material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); + #ifdef USE_SHEENROUGHNESSMAP + material.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a; + #endif +#endif`,Wl=`struct PhysicalMaterial { + vec3 diffuseColor; + float roughness; + vec3 specularColor; + float specularF90; + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + #ifdef USE_SHEEN + vec3 sheenColor; + float sheenRoughness; + #endif +}; +vec3 clearcoatSpecular = vec3( 0.0 ); +vec3 sheenSpecular = vec3( 0.0 ); +float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness) { + float dotNV = saturate( dot( normal, viewDir ) ); + float r2 = roughness * roughness; + float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; + float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; + float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); + return saturate( DG * RECIPROCAL_PI ); +} +vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); + const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); + vec4 r = roughness * c0 + c1; + float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; + vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; + return fab; +} +vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { + vec2 fab = DFGApprox( normal, viewDir, roughness ); + return specularColor * fab.x + specularF90 * fab.y; +} +void 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 ) { + vec2 fab = DFGApprox( normal, viewDir, roughness ); + vec3 FssEss = specularColor * fab.x + specularF90 * fab.y; + float Ess = fab.x + fab.y; + float Ems = 1.0 - Ess; + vec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); + singleScatter += FssEss; + multiScatter += Fms * Ems; +} +#if NUM_RECT_AREA_LIGHTS > 0 + void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + vec3 normal = geometry.normal; + vec3 viewDir = geometry.viewDir; + vec3 position = geometry.position; + vec3 lightPos = rectAreaLight.position; + vec3 halfWidth = rectAreaLight.halfWidth; + vec3 halfHeight = rectAreaLight.halfHeight; + vec3 lightColor = rectAreaLight.color; + float roughness = material.roughness; + vec3 rectCoords[ 4 ]; + rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; + rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; + rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; + vec2 uv = LTC_Uv( normal, viewDir, roughness ); + vec4 t1 = texture2D( ltc_1, uv ); + vec4 t2 = texture2D( ltc_2, uv ); + mat3 mInv = mat3( + vec3( t1.x, 0, t1.y ), + vec3( 0, 1, 0 ), + vec3( t1.z, 0, t1.w ) + ); + vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); + reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); + reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); + } +#endif +void RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometry.normal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + #ifdef USE_CLEARCOAT + float dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) ); + vec3 ccIrradiance = dotNLcc * directLight.color; + clearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness ); + #endif + reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness ); + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { + #ifdef USE_CLEARCOAT + clearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness ); + #endif + vec3 singleScattering = vec3( 0.0 ); + vec3 multiScattering = vec3( 0.0 ); + vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; + computeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); + vec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) ); + reflectedLight.indirectSpecular += radiance * singleScattering; + reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; + reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; +} +#define RE_Direct RE_Direct_Physical +#define RE_Direct_RectArea RE_Direct_RectArea_Physical +#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical +#define RE_IndirectSpecular RE_IndirectSpecular_Physical +float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { + return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); +}`,ql=` +GeometricContext geometry; +geometry.position = - vViewPosition; +geometry.normal = normal; +geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); +#ifdef USE_CLEARCOAT + geometry.clearcoatNormal = clearcoatNormal; +#endif +IncidentLight directLight; +#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) + PointLight pointLight; + #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + pointLight = pointLights[ i ]; + getPointLightInfo( pointLight, geometry, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) + pointLightShadow = pointLightShadows[ i ]; + directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) + SpotLight spotLight; + #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + spotLight = spotLights[ i ]; + getSpotLightInfo( spotLight, geometry, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + spotLightShadow = spotLightShadows[ i ]; + directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) + DirectionalLight directionalLight; + #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + directionalLight = directionalLights[ i ]; + getDirectionalLightInfo( directionalLight, geometry, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) + directionalLightShadow = directionalLightShadows[ i ]; + directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) + RectAreaLight rectAreaLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { + rectAreaLight = rectAreaLights[ i ]; + RE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if defined( RE_IndirectDiffuse ) + vec3 iblIrradiance = vec3( 0.0 ); + vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); + irradiance += getLightProbeIrradiance( lightProbe, geometry.normal ); + #if ( NUM_HEMI_LIGHTS > 0 ) + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal ); + } + #pragma unroll_loop_end + #endif +#endif +#if defined( RE_IndirectSpecular ) + vec3 radiance = vec3( 0.0 ); + vec3 clearcoatRadiance = vec3( 0.0 ); +#endif`,Xl=`#if defined( RE_IndirectDiffuse ) + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vUv2 ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + #ifndef PHYSICALLY_CORRECT_LIGHTS + lightMapIrradiance *= PI; + #endif + irradiance += lightMapIrradiance; + #endif + #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) + iblIrradiance += getIBLIrradiance( geometry.normal ); + #endif +#endif +#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) + radiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness ); + #ifdef USE_CLEARCOAT + clearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness ); + #endif +#endif`,Yl=`#if defined( RE_IndirectDiffuse ) + RE_IndirectDiffuse( irradiance, geometry, material, reflectedLight ); +#endif +#if defined( RE_IndirectSpecular ) + RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight ); +#endif`,Zl=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; +#endif`,jl=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + uniform float logDepthBufFC; + varying float vFragDepth; + varying float vIsPerspective; +#endif`,Jl=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + varying float vFragDepth; + varying float vIsPerspective; + #else + uniform float logDepthBufFC; + #endif +#endif`,$l=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + vFragDepth = 1.0 + gl_Position.w; + vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); + #else + if ( isPerspectiveMatrix( projectionMatrix ) ) { + gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0; + gl_Position.z *= gl_Position.w; + } + #endif +#endif`,Kl=`#ifdef USE_MAP + vec4 sampledDiffuseColor = texture2D( map, vUv ); + #ifdef DECODE_VIDEO_TEXTURE + sampledDiffuseColor = 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 ); + #endif + diffuseColor *= sampledDiffuseColor; +#endif`,Ql=`#ifdef USE_MAP + uniform sampler2D map; +#endif`,ec=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; +#endif +#ifdef USE_MAP + diffuseColor *= texture2D( map, uv ); +#endif +#ifdef USE_ALPHAMAP + diffuseColor.a *= texture2D( alphaMap, uv ).g; +#endif`,tc=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + uniform mat3 uvTransform; +#endif +#ifdef USE_MAP + uniform sampler2D map; +#endif +#ifdef USE_ALPHAMAP + uniform sampler2D alphaMap; +#endif`,nc=`float metalnessFactor = metalness; +#ifdef USE_METALNESSMAP + vec4 texelMetalness = texture2D( metalnessMap, vUv ); + metalnessFactor *= texelMetalness.b; +#endif`,ic=`#ifdef USE_METALNESSMAP + uniform sampler2D metalnessMap; +#endif`,rc=`#ifdef USE_MORPHNORMALS + objectNormal *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1, 2 ) * morphTargetInfluences[ i ]; + } + #else + objectNormal += morphNormal0 * morphTargetInfluences[ 0 ]; + objectNormal += morphNormal1 * morphTargetInfluences[ 1 ]; + objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; + objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; + #endif +#endif`,sc=`#ifdef USE_MORPHTARGETS + uniform float morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + uniform sampler2DArray morphTargetsTexture; + uniform vec2 morphTargetsTextureSize; + vec3 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset, const in int stride ) { + float texelIndex = float( vertexIndex * stride + offset ); + float y = floor( texelIndex / morphTargetsTextureSize.x ); + float x = texelIndex - y * morphTargetsTextureSize.x; + vec3 morphUV = vec3( ( x + 0.5 ) / morphTargetsTextureSize.x, y / morphTargetsTextureSize.y, morphTargetIndex ); + return texture( morphTargetsTexture, morphUV ).xyz; + } + #else + #ifndef USE_MORPHNORMALS + uniform float morphTargetInfluences[ 8 ]; + #else + uniform float morphTargetInfluences[ 4 ]; + #endif + #endif +#endif`,ac=`#ifdef USE_MORPHTARGETS + transformed *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + #ifndef USE_MORPHNORMALS + if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0, 1 ) * morphTargetInfluences[ i ]; + #else + if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0, 2 ) * morphTargetInfluences[ i ]; + #endif + } + #else + transformed += morphTarget0 * morphTargetInfluences[ 0 ]; + transformed += morphTarget1 * morphTargetInfluences[ 1 ]; + transformed += morphTarget2 * morphTargetInfluences[ 2 ]; + transformed += morphTarget3 * morphTargetInfluences[ 3 ]; + #ifndef USE_MORPHNORMALS + transformed += morphTarget4 * morphTargetInfluences[ 4 ]; + transformed += morphTarget5 * morphTargetInfluences[ 5 ]; + transformed += morphTarget6 * morphTargetInfluences[ 6 ]; + transformed += morphTarget7 * morphTargetInfluences[ 7 ]; + #endif + #endif +#endif`,oc=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; +#ifdef FLAT_SHADED + vec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) ); + vec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) ); + vec3 normal = normalize( cross( fdx, fdy ) ); +#else + vec3 normal = normalize( vNormal ); + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + #ifdef USE_TANGENT + vec3 tangent = normalize( vTangent ); + vec3 bitangent = normalize( vBitangent ); + #ifdef DOUBLE_SIDED + tangent = tangent * faceDirection; + bitangent = bitangent * faceDirection; + #endif + #if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP ) + mat3 vTBN = mat3( tangent, bitangent, normal ); + #endif + #endif +#endif +vec3 geometryNormal = normal;`,lc=`#ifdef OBJECTSPACE_NORMALMAP + normal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; + #ifdef FLIP_SIDED + normal = - normal; + #endif + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + normal = normalize( normalMatrix * normal ); +#elif defined( TANGENTSPACE_NORMALMAP ) + vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; + mapN.xy *= normalScale; + #ifdef USE_TANGENT + normal = normalize( vTBN * mapN ); + #else + normal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection ); + #endif +#elif defined( USE_BUMPMAP ) + normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); +#endif`,cc=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,hc=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,uc=`#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #endif +#endif`,dc=`#ifdef USE_NORMALMAP + uniform sampler2D normalMap; + uniform vec2 normalScale; +#endif +#ifdef OBJECTSPACE_NORMALMAP + uniform mat3 normalMatrix; +#endif +#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) ) + vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) { + vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) ); + vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) ); + vec2 st0 = dFdx( vUv.st ); + vec2 st1 = dFdy( vUv.st ); + vec3 N = surf_norm; + vec3 q1perp = cross( q1, N ); + vec3 q0perp = cross( N, q0 ); + vec3 T = q1perp * st0.x + q0perp * st1.x; + vec3 B = q1perp * st0.y + q0perp * st1.y; + float det = max( dot( T, T ), dot( B, B ) ); + float scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det ); + return normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z ); + } +#endif`,fc=`#ifdef USE_CLEARCOAT + vec3 clearcoatNormal = geometryNormal; +#endif`,pc=`#ifdef USE_CLEARCOAT_NORMALMAP + vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0; + clearcoatMapN.xy *= clearcoatNormalScale; + #ifdef USE_TANGENT + clearcoatNormal = normalize( vTBN * clearcoatMapN ); + #else + clearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection ); + #endif +#endif`,mc=`#ifdef USE_CLEARCOATMAP + uniform sampler2D clearcoatMap; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform sampler2D clearcoatRoughnessMap; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform sampler2D clearcoatNormalMap; + uniform vec2 clearcoatNormalScale; +#endif`,gc=`#ifdef OPAQUE +diffuseColor.a = 1.0; +#endif +#ifdef USE_TRANSMISSION +diffuseColor.a *= transmissionAlpha + 0.1; +#endif +gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,_c=`vec3 packNormalToRGB( const in vec3 normal ) { + return normalize( normal ) * 0.5 + 0.5; +} +vec3 unpackRGBToNormal( const in vec3 rgb ) { + return 2.0 * rgb.xyz - 1.0; +} +const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.; +const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. ); +const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. ); +const float ShiftRight8 = 1. / 256.; +vec4 packDepthToRGBA( const in float v ) { + vec4 r = vec4( fract( v * PackFactors ), v ); + r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale; +} +float unpackRGBAToDepth( const in vec4 v ) { + return dot( v, UnpackFactors ); +} +vec4 pack2HalfToRGBA( vec2 v ) { + vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); + return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); +} +vec2 unpackRGBATo2Half( vec4 v ) { + return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); +} +float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { + return ( viewZ + near ) / ( near - far ); +} +float orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) { + return linearClipZ * ( near - far ) - near; +} +float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { + return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); +} +float perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) { + return ( near * far ) / ( ( far - near ) * invClipZ - far ); +}`,xc=`#ifdef PREMULTIPLIED_ALPHA + gl_FragColor.rgb *= gl_FragColor.a; +#endif`,vc=`vec4 mvPosition = vec4( transformed, 1.0 ); +#ifdef USE_INSTANCING + mvPosition = instanceMatrix * mvPosition; +#endif +mvPosition = modelViewMatrix * mvPosition; +gl_Position = projectionMatrix * mvPosition;`,yc=`#ifdef DITHERING + gl_FragColor.rgb = dithering( gl_FragColor.rgb ); +#endif`,Mc=`#ifdef DITHERING + vec3 dithering( vec3 color ) { + float grid_position = rand( gl_FragCoord.xy ); + vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); + dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); + return color + dither_shift_RGB; + } +#endif`,Sc=`float roughnessFactor = roughness; +#ifdef USE_ROUGHNESSMAP + vec4 texelRoughness = texture2D( roughnessMap, vUv ); + roughnessFactor *= texelRoughness.g; +#endif`,bc=`#ifdef USE_ROUGHNESSMAP + uniform sampler2D roughnessMap; +#endif`,wc=`#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; + varying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif + float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { + return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); + } + vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { + return unpackRGBATo2Half( texture2D( shadow, uv ) ); + } + float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ + float occlusion = 1.0; + vec2 distribution = texture2DDistribution( shadow, uv ); + float hard_shadow = step( compare , distribution.x ); + if (hard_shadow != 1.0 ) { + float distance = compare - distribution.x ; + float variance = max( 0.00000, distribution.y * distribution.y ); + float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); + } + return occlusion; + } + float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) { + float shadow = 1.0; + shadowCoord.xyz /= shadowCoord.w; + shadowCoord.z += shadowBias; + bvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 ); + bool inFrustum = all( inFrustumVec ); + bvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 ); + bool frustumTest = all( frustumTestVec ); + if ( frustumTest ) { + #if defined( SHADOWMAP_TYPE_PCF ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx0 = - texelSize.x * shadowRadius; + float dy0 = - texelSize.y * shadowRadius; + float dx1 = + texelSize.x * shadowRadius; + float dy1 = + texelSize.y * shadowRadius; + float dx2 = dx0 / 2.0; + float dy2 = dy0 / 2.0; + float dx3 = dx1 / 2.0; + float dy3 = dy1 / 2.0; + shadow = ( + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) + ) * ( 1.0 / 17.0 ); + #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx = texelSize.x; + float dy = texelSize.y; + vec2 uv = shadowCoord.xy; + vec2 f = fract( uv * shadowMapSize + 0.5 ); + uv -= f * texelSize; + shadow = ( + texture2DCompare( shadowMap, uv, shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), + f.x ), + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), + f.x ), + f.y ) + ) * ( 1.0 / 9.0 ); + #elif defined( SHADOWMAP_TYPE_VSM ) + shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); + #else + shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); + #endif + } + return shadow; + } + vec2 cubeToUV( vec3 v, float texelSizeY ) { + vec3 absV = abs( v ); + float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); + absV *= scaleToCube; + v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); + vec2 planar = v.xy; + float almostATexel = 1.5 * texelSizeY; + float almostOne = 1.0 - almostATexel; + if ( absV.z >= almostOne ) { + if ( v.z > 0.0 ) + planar.x = 4.0 - v.x; + } else if ( absV.x >= almostOne ) { + float signX = sign( v.x ); + planar.x = v.z * signX + 2.0 * signX; + } else if ( absV.y >= almostOne ) { + float signY = sign( v.y ); + planar.x = v.x + 2.0 * signY + 2.0; + planar.y = v.z * signY - 2.0; + } + return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); + } + float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { + vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); + vec3 lightToPosition = shadowCoord.xyz; + float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; + vec3 bd3D = normalize( lightToPosition ); + #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) + vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; + return ( + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) + ) * ( 1.0 / 9.0 ); + #else + return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); + #endif + } +#endif`,Tc=`#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ]; + varying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif +#endif`,Ec=`#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 + vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + vec4 shadowWorldPosition; + #endif + #if NUM_DIR_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); + vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 ); + vSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); + vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif +#endif`,Ac=`float getShadowMask() { + float shadow = 1.0; + #ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + directionalLight = directionalLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + spotLight = spotLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + pointLight = pointLightShadows[ i ]; + shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; + } + #pragma unroll_loop_end + #endif + #endif + return shadow; +}`,Rc=`#ifdef USE_SKINNING + mat4 boneMatX = getBoneMatrix( skinIndex.x ); + mat4 boneMatY = getBoneMatrix( skinIndex.y ); + mat4 boneMatZ = getBoneMatrix( skinIndex.z ); + mat4 boneMatW = getBoneMatrix( skinIndex.w ); +#endif`,Cc=`#ifdef USE_SKINNING + uniform mat4 bindMatrix; + uniform mat4 bindMatrixInverse; + #ifdef BONE_TEXTURE + uniform highp sampler2D boneTexture; + uniform int boneTextureSize; + mat4 getBoneMatrix( const in float i ) { + float j = i * 4.0; + float x = mod( j, float( boneTextureSize ) ); + float y = floor( j / float( boneTextureSize ) ); + float dx = 1.0 / float( boneTextureSize ); + float dy = 1.0 / float( boneTextureSize ); + y = dy * ( y + 0.5 ); + vec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) ); + vec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) ); + vec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) ); + vec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) ); + mat4 bone = mat4( v1, v2, v3, v4 ); + return bone; + } + #else + uniform mat4 boneMatrices[ MAX_BONES ]; + mat4 getBoneMatrix( const in float i ) { + mat4 bone = boneMatrices[ int(i) ]; + return bone; + } + #endif +#endif`,Lc=`#ifdef USE_SKINNING + vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); + vec4 skinned = vec4( 0.0 ); + skinned += boneMatX * skinVertex * skinWeight.x; + skinned += boneMatY * skinVertex * skinWeight.y; + skinned += boneMatZ * skinVertex * skinWeight.z; + skinned += boneMatW * skinVertex * skinWeight.w; + transformed = ( bindMatrixInverse * skinned ).xyz; +#endif`,Pc=`#ifdef USE_SKINNING + mat4 skinMatrix = mat4( 0.0 ); + skinMatrix += skinWeight.x * boneMatX; + skinMatrix += skinWeight.y * boneMatY; + skinMatrix += skinWeight.z * boneMatZ; + skinMatrix += skinWeight.w * boneMatW; + skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; + objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; + #ifdef USE_TANGENT + objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #endif +#endif`,Dc=`float specularStrength; +#ifdef USE_SPECULARMAP + vec4 texelSpecular = texture2D( specularMap, vUv ); + specularStrength = texelSpecular.r; +#else + specularStrength = 1.0; +#endif`,Ic=`#ifdef USE_SPECULARMAP + uniform sampler2D specularMap; +#endif`,Fc=`#if defined( TONE_MAPPING ) + gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); +#endif`,Bc=`#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +uniform float toneMappingExposure; +vec3 LinearToneMapping( vec3 color ) { + return toneMappingExposure * color; +} +vec3 ReinhardToneMapping( vec3 color ) { + color *= toneMappingExposure; + return saturate( color / ( vec3( 1.0 ) + color ) ); +} +vec3 OptimizedCineonToneMapping( vec3 color ) { + color *= toneMappingExposure; + color = max( vec3( 0.0 ), color - 0.004 ); + return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); +} +vec3 RRTAndODTFit( vec3 v ) { + vec3 a = v * ( v + 0.0245786 ) - 0.000090537; + vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; + return a / b; +} +vec3 ACESFilmicToneMapping( vec3 color ) { + const mat3 ACESInputMat = mat3( + vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), + vec3( 0.04823, 0.01566, 0.83777 ) + ); + const mat3 ACESOutputMat = mat3( + vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), + vec3( -0.07367, -0.00605, 1.07602 ) + ); + color *= toneMappingExposure / 0.6; + color = ACESInputMat * color; + color = RRTAndODTFit( color ); + color = ACESOutputMat * color; + return saturate( color ); +} +vec3 CustomToneMapping( vec3 color ) { return color; }`,Nc=`#ifdef USE_TRANSMISSION + float transmissionAlpha = 1.0; + float transmissionFactor = transmission; + float thicknessFactor = thickness; + #ifdef USE_TRANSMISSIONMAP + transmissionFactor *= texture2D( transmissionMap, vUv ).r; + #endif + #ifdef USE_THICKNESSMAP + thicknessFactor *= texture2D( thicknessMap, vUv ).g; + #endif + vec3 pos = vWorldPosition; + vec3 v = normalize( cameraPosition - pos ); + vec3 n = inverseTransformDirection( normal, viewMatrix ); + vec4 transmission = getIBLVolumeRefraction( + n, v, roughnessFactor, material.diffuseColor, material.specularColor, material.specularF90, + pos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor, + attenuationColor, attenuationDistance ); + totalDiffuse = mix( totalDiffuse, transmission.rgb, transmissionFactor ); + transmissionAlpha = mix( transmissionAlpha, transmission.a, transmissionFactor ); +#endif`,zc=`#ifdef USE_TRANSMISSION + uniform float transmission; + uniform float thickness; + uniform float attenuationDistance; + uniform vec3 attenuationColor; + #ifdef USE_TRANSMISSIONMAP + uniform sampler2D transmissionMap; + #endif + #ifdef USE_THICKNESSMAP + uniform sampler2D thicknessMap; + #endif + uniform vec2 transmissionSamplerSize; + uniform sampler2D transmissionSamplerMap; + uniform mat4 modelMatrix; + uniform mat4 projectionMatrix; + varying vec3 vWorldPosition; + vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { + vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); + vec3 modelScale; + modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); + modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); + modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); + return normalize( refractionVector ) * thickness * modelScale; + } + float applyIorToRoughness( const in float roughness, const in float ior ) { + return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); + } + vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { + float framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); + #ifdef TEXTURE_LOD_EXT + return texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod ); + #else + return texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod ); + #endif + } + vec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { + if ( attenuationDistance == 0.0 ) { + return radiance; + } else { + vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; + vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance * radiance; + } + } + vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, + const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, + const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness, + const in vec3 attenuationColor, const in float attenuationDistance ) { + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); + vec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance ); + vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); + return vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a ); + } +#endif`,Uc=`#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) ) + varying vec2 vUv; +#endif`,Oc=`#ifdef USE_UV + #ifdef UVS_VERTEX_ONLY + vec2 vUv; + #else + varying vec2 vUv; + #endif + uniform mat3 uvTransform; +#endif`,Gc=`#ifdef USE_UV + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; +#endif`,Vc=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + varying vec2 vUv2; +#endif`,Hc=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + attribute vec2 uv2; + varying vec2 vUv2; + uniform mat3 uv2Transform; +#endif`,kc=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + vUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy; +#endif`,Wc=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) + vec4 worldPosition = vec4( transformed, 1.0 ); + #ifdef USE_INSTANCING + worldPosition = instanceMatrix * worldPosition; + #endif + worldPosition = modelMatrix * worldPosition; +#endif`;const qc=`varying vec2 vUv; +uniform mat3 uvTransform; +void main() { + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + gl_Position = vec4( position.xy, 1.0, 1.0 ); +}`,Xc=`uniform sampler2D t2D; +varying vec2 vUv; +void main() { + gl_FragColor = texture2D( t2D, vUv ); + #include <tonemapping_fragment> + #include <encodings_fragment> +}`,Yc=`varying vec3 vWorldDirection; +#include <common> +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include <begin_vertex> + #include <project_vertex> + gl_Position.z = gl_Position.w; +}`,Zc=`#include <envmap_common_pars_fragment> +uniform float opacity; +varying vec3 vWorldDirection; +#include <cube_uv_reflection_fragment> +void main() { + vec3 vReflect = vWorldDirection; + #include <envmap_fragment> + gl_FragColor = envColor; + gl_FragColor.a *= opacity; + #include <tonemapping_fragment> + #include <encodings_fragment> +}`,jc=`#include <common> +#include <uv_pars_vertex> +#include <displacementmap_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +varying vec2 vHighPrecisionZW; +void main() { + #include <uv_vertex> + #include <skinbase_vertex> + #ifdef USE_DISPLACEMENTMAP + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinnormal_vertex> + #endif + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <displacementmap_vertex> + #include <project_vertex> + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + vHighPrecisionZW = gl_Position.zw; +}`,Jc=`#if DEPTH_PACKING == 3200 + uniform float opacity; +#endif +#include <common> +#include <packing> +#include <uv_pars_fragment> +#include <map_pars_fragment> +#include <alphamap_pars_fragment> +#include <alphatest_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +varying vec2 vHighPrecisionZW; +void main() { + #include <clipping_planes_fragment> + vec4 diffuseColor = vec4( 1.0 ); + #if DEPTH_PACKING == 3200 + diffuseColor.a = opacity; + #endif + #include <map_fragment> + #include <alphamap_fragment> + #include <alphatest_fragment> + #include <logdepthbuf_fragment> + float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; + #if DEPTH_PACKING == 3200 + gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); + #elif DEPTH_PACKING == 3201 + gl_FragColor = packDepthToRGBA( fragCoordZ ); + #endif +}`,$c=`#define DISTANCE +varying vec3 vWorldPosition; +#include <common> +#include <uv_pars_vertex> +#include <displacementmap_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <uv_vertex> + #include <skinbase_vertex> + #ifdef USE_DISPLACEMENTMAP + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinnormal_vertex> + #endif + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <displacementmap_vertex> + #include <project_vertex> + #include <worldpos_vertex> + #include <clipping_planes_vertex> + vWorldPosition = worldPosition.xyz; +}`,Kc=`#define DISTANCE +uniform vec3 referencePosition; +uniform float nearDistance; +uniform float farDistance; +varying vec3 vWorldPosition; +#include <common> +#include <packing> +#include <uv_pars_fragment> +#include <map_pars_fragment> +#include <alphamap_pars_fragment> +#include <alphatest_pars_fragment> +#include <clipping_planes_pars_fragment> +void main () { + #include <clipping_planes_fragment> + vec4 diffuseColor = vec4( 1.0 ); + #include <map_fragment> + #include <alphamap_fragment> + #include <alphatest_fragment> + float dist = length( vWorldPosition - referencePosition ); + dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); + dist = saturate( dist ); + gl_FragColor = packDepthToRGBA( dist ); +}`,Qc=`varying vec3 vWorldDirection; +#include <common> +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include <begin_vertex> + #include <project_vertex> +}`,eh=`uniform sampler2D tEquirect; +varying vec3 vWorldDirection; +#include <common> +void main() { + vec3 direction = normalize( vWorldDirection ); + vec2 sampleUV = equirectUv( direction ); + gl_FragColor = texture2D( tEquirect, sampleUV ); + #include <tonemapping_fragment> + #include <encodings_fragment> +}`,th=`uniform float scale; +attribute float lineDistance; +varying float vLineDistance; +#include <common> +#include <color_pars_vertex> +#include <fog_pars_vertex> +#include <morphtarget_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + vLineDistance = scale * lineDistance; + #include <color_vertex> + #include <begin_vertex> + #include <morphtarget_vertex> + #include <project_vertex> + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + #include <fog_vertex> +}`,nh=`uniform vec3 diffuse; +uniform float opacity; +uniform float dashSize; +uniform float totalSize; +varying float vLineDistance; +#include <common> +#include <color_pars_fragment> +#include <fog_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + if ( mod( vLineDistance, totalSize ) > dashSize ) { + discard; + } + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include <logdepthbuf_fragment> + #include <color_fragment> + outgoingLight = diffuseColor.rgb; + #include <output_fragment> + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> + #include <premultiplied_alpha_fragment> +}`,ih=`#include <common> +#include <uv_pars_vertex> +#include <uv2_pars_vertex> +#include <envmap_pars_vertex> +#include <color_pars_vertex> +#include <fog_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <uv_vertex> + #include <uv2_vertex> + #include <color_vertex> + #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinbase_vertex> + #include <skinnormal_vertex> + #include <defaultnormal_vertex> + #endif + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <project_vertex> + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + #include <worldpos_vertex> + #include <envmap_vertex> + #include <fog_vertex> +}`,rh=`uniform vec3 diffuse; +uniform float opacity; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +#include <common> +#include <dithering_pars_fragment> +#include <color_pars_fragment> +#include <uv_pars_fragment> +#include <uv2_pars_fragment> +#include <map_pars_fragment> +#include <alphamap_pars_fragment> +#include <alphatest_pars_fragment> +#include <aomap_pars_fragment> +#include <lightmap_pars_fragment> +#include <envmap_common_pars_fragment> +#include <envmap_pars_fragment> +#include <cube_uv_reflection_fragment> +#include <fog_pars_fragment> +#include <specularmap_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + vec4 diffuseColor = vec4( diffuse, opacity ); + #include <logdepthbuf_fragment> + #include <map_fragment> + #include <color_fragment> + #include <alphamap_fragment> + #include <alphatest_fragment> + #include <specularmap_fragment> + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + #ifdef USE_LIGHTMAP + vec4 lightMapTexel= texture2D( lightMap, vUv2 ); + reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity; + #else + reflectedLight.indirectDiffuse += vec3( 1.0 ); + #endif + #include <aomap_fragment> + reflectedLight.indirectDiffuse *= diffuseColor.rgb; + vec3 outgoingLight = reflectedLight.indirectDiffuse; + #include <envmap_fragment> + #include <output_fragment> + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> + #include <premultiplied_alpha_fragment> + #include <dithering_fragment> +}`,sh=`#define LAMBERT +varying vec3 vLightFront; +varying vec3 vIndirectFront; +#ifdef DOUBLE_SIDED + varying vec3 vLightBack; + varying vec3 vIndirectBack; +#endif +#include <common> +#include <uv_pars_vertex> +#include <uv2_pars_vertex> +#include <envmap_pars_vertex> +#include <bsdfs> +#include <lights_pars_begin> +#include <color_pars_vertex> +#include <fog_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <shadowmap_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <uv_vertex> + #include <uv2_vertex> + #include <color_vertex> + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinbase_vertex> + #include <skinnormal_vertex> + #include <defaultnormal_vertex> + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <project_vertex> + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + #include <worldpos_vertex> + #include <envmap_vertex> + #include <lights_lambert_vertex> + #include <shadowmap_vertex> + #include <fog_vertex> +}`,ah=`uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +varying vec3 vLightFront; +varying vec3 vIndirectFront; +#ifdef DOUBLE_SIDED + varying vec3 vLightBack; + varying vec3 vIndirectBack; +#endif +#include <common> +#include <packing> +#include <dithering_pars_fragment> +#include <color_pars_fragment> +#include <uv_pars_fragment> +#include <uv2_pars_fragment> +#include <map_pars_fragment> +#include <alphamap_pars_fragment> +#include <alphatest_pars_fragment> +#include <aomap_pars_fragment> +#include <lightmap_pars_fragment> +#include <emissivemap_pars_fragment> +#include <envmap_common_pars_fragment> +#include <envmap_pars_fragment> +#include <cube_uv_reflection_fragment> +#include <bsdfs> +#include <lights_pars_begin> +#include <fog_pars_fragment> +#include <shadowmap_pars_fragment> +#include <shadowmask_pars_fragment> +#include <specularmap_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include <logdepthbuf_fragment> + #include <map_fragment> + #include <color_fragment> + #include <alphamap_fragment> + #include <alphatest_fragment> + #include <specularmap_fragment> + #include <emissivemap_fragment> + #ifdef DOUBLE_SIDED + reflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack; + #else + reflectedLight.indirectDiffuse += vIndirectFront; + #endif + #include <lightmap_fragment> + reflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb ); + #ifdef DOUBLE_SIDED + reflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack; + #else + reflectedLight.directDiffuse = vLightFront; + #endif + reflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask(); + #include <aomap_fragment> + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include <envmap_fragment> + #include <output_fragment> + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> + #include <premultiplied_alpha_fragment> + #include <dithering_fragment> +}`,oh=`#define MATCAP +varying vec3 vViewPosition; +#include <common> +#include <uv_pars_vertex> +#include <color_pars_vertex> +#include <displacementmap_pars_vertex> +#include <fog_pars_vertex> +#include <normal_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <uv_vertex> + #include <color_vertex> + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinbase_vertex> + #include <skinnormal_vertex> + #include <defaultnormal_vertex> + #include <normal_vertex> + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <displacementmap_vertex> + #include <project_vertex> + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + #include <fog_vertex> + vViewPosition = - mvPosition.xyz; +}`,lh=`#define MATCAP +uniform vec3 diffuse; +uniform float opacity; +uniform sampler2D matcap; +varying vec3 vViewPosition; +#include <common> +#include <dithering_pars_fragment> +#include <color_pars_fragment> +#include <uv_pars_fragment> +#include <map_pars_fragment> +#include <alphamap_pars_fragment> +#include <alphatest_pars_fragment> +#include <fog_pars_fragment> +#include <normal_pars_fragment> +#include <bumpmap_pars_fragment> +#include <normalmap_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + vec4 diffuseColor = vec4( diffuse, opacity ); + #include <logdepthbuf_fragment> + #include <map_fragment> + #include <color_fragment> + #include <alphamap_fragment> + #include <alphatest_fragment> + #include <normal_fragment_begin> + #include <normal_fragment_maps> + vec3 viewDir = normalize( vViewPosition ); + vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); + vec3 y = cross( viewDir, x ); + vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; + #ifdef USE_MATCAP + vec4 matcapColor = texture2D( matcap, uv ); + #else + vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); + #endif + vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; + #include <output_fragment> + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> + #include <premultiplied_alpha_fragment> + #include <dithering_fragment> +}`,ch=`#define NORMAL +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + varying vec3 vViewPosition; +#endif +#include <common> +#include <uv_pars_vertex> +#include <displacementmap_pars_vertex> +#include <normal_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <uv_vertex> + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinbase_vertex> + #include <skinnormal_vertex> + #include <defaultnormal_vertex> + #include <normal_vertex> + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <displacementmap_vertex> + #include <project_vertex> + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + vViewPosition = - mvPosition.xyz; +#endif +}`,hh=`#define NORMAL +uniform float opacity; +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + varying vec3 vViewPosition; +#endif +#include <packing> +#include <uv_pars_fragment> +#include <normal_pars_fragment> +#include <bumpmap_pars_fragment> +#include <normalmap_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + #include <logdepthbuf_fragment> + #include <normal_fragment_begin> + #include <normal_fragment_maps> + gl_FragColor = vec4( packNormalToRGB( normal ), opacity ); + #ifdef OPAQUE + gl_FragColor.a = 1.0; + #endif +}`,uh=`#define PHONG +varying vec3 vViewPosition; +#include <common> +#include <uv_pars_vertex> +#include <uv2_pars_vertex> +#include <displacementmap_pars_vertex> +#include <envmap_pars_vertex> +#include <color_pars_vertex> +#include <fog_pars_vertex> +#include <normal_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <shadowmap_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <uv_vertex> + #include <uv2_vertex> + #include <color_vertex> + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinbase_vertex> + #include <skinnormal_vertex> + #include <defaultnormal_vertex> + #include <normal_vertex> + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <displacementmap_vertex> + #include <project_vertex> + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + vViewPosition = - mvPosition.xyz; + #include <worldpos_vertex> + #include <envmap_vertex> + #include <shadowmap_vertex> + #include <fog_vertex> +}`,dh=`#define PHONG +uniform vec3 diffuse; +uniform vec3 emissive; +uniform vec3 specular; +uniform float shininess; +uniform float opacity; +#include <common> +#include <packing> +#include <dithering_pars_fragment> +#include <color_pars_fragment> +#include <uv_pars_fragment> +#include <uv2_pars_fragment> +#include <map_pars_fragment> +#include <alphamap_pars_fragment> +#include <alphatest_pars_fragment> +#include <aomap_pars_fragment> +#include <lightmap_pars_fragment> +#include <emissivemap_pars_fragment> +#include <envmap_common_pars_fragment> +#include <envmap_pars_fragment> +#include <cube_uv_reflection_fragment> +#include <fog_pars_fragment> +#include <bsdfs> +#include <lights_pars_begin> +#include <normal_pars_fragment> +#include <lights_phong_pars_fragment> +#include <shadowmap_pars_fragment> +#include <bumpmap_pars_fragment> +#include <normalmap_pars_fragment> +#include <specularmap_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include <logdepthbuf_fragment> + #include <map_fragment> + #include <color_fragment> + #include <alphamap_fragment> + #include <alphatest_fragment> + #include <specularmap_fragment> + #include <normal_fragment_begin> + #include <normal_fragment_maps> + #include <emissivemap_fragment> + #include <lights_phong_fragment> + #include <lights_fragment_begin> + #include <lights_fragment_maps> + #include <lights_fragment_end> + #include <aomap_fragment> + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; + #include <envmap_fragment> + #include <output_fragment> + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> + #include <premultiplied_alpha_fragment> + #include <dithering_fragment> +}`,fh=`#define STANDARD +varying vec3 vViewPosition; +#ifdef USE_TRANSMISSION + varying vec3 vWorldPosition; +#endif +#include <common> +#include <uv_pars_vertex> +#include <uv2_pars_vertex> +#include <displacementmap_pars_vertex> +#include <color_pars_vertex> +#include <fog_pars_vertex> +#include <normal_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <shadowmap_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <uv_vertex> + #include <uv2_vertex> + #include <color_vertex> + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinbase_vertex> + #include <skinnormal_vertex> + #include <defaultnormal_vertex> + #include <normal_vertex> + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <displacementmap_vertex> + #include <project_vertex> + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + vViewPosition = - mvPosition.xyz; + #include <worldpos_vertex> + #include <shadowmap_vertex> + #include <fog_vertex> +#ifdef USE_TRANSMISSION + vWorldPosition = worldPosition.xyz; +#endif +}`,ph=`#define STANDARD +#ifdef PHYSICAL + #define IOR + #define SPECULAR +#endif +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float roughness; +uniform float metalness; +uniform float opacity; +#ifdef IOR + uniform float ior; +#endif +#ifdef SPECULAR + uniform float specularIntensity; + uniform vec3 specularColor; + #ifdef USE_SPECULARINTENSITYMAP + uniform sampler2D specularIntensityMap; + #endif + #ifdef USE_SPECULARCOLORMAP + uniform sampler2D specularColorMap; + #endif +#endif +#ifdef USE_CLEARCOAT + uniform float clearcoat; + uniform float clearcoatRoughness; +#endif +#ifdef USE_SHEEN + uniform vec3 sheenColor; + uniform float sheenRoughness; + #ifdef USE_SHEENCOLORMAP + uniform sampler2D sheenColorMap; + #endif + #ifdef USE_SHEENROUGHNESSMAP + uniform sampler2D sheenRoughnessMap; + #endif +#endif +varying vec3 vViewPosition; +#include <common> +#include <packing> +#include <dithering_pars_fragment> +#include <color_pars_fragment> +#include <uv_pars_fragment> +#include <uv2_pars_fragment> +#include <map_pars_fragment> +#include <alphamap_pars_fragment> +#include <alphatest_pars_fragment> +#include <aomap_pars_fragment> +#include <lightmap_pars_fragment> +#include <emissivemap_pars_fragment> +#include <bsdfs> +#include <cube_uv_reflection_fragment> +#include <envmap_common_pars_fragment> +#include <envmap_physical_pars_fragment> +#include <fog_pars_fragment> +#include <lights_pars_begin> +#include <normal_pars_fragment> +#include <lights_physical_pars_fragment> +#include <transmission_pars_fragment> +#include <shadowmap_pars_fragment> +#include <bumpmap_pars_fragment> +#include <normalmap_pars_fragment> +#include <clearcoat_pars_fragment> +#include <roughnessmap_pars_fragment> +#include <metalnessmap_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include <logdepthbuf_fragment> + #include <map_fragment> + #include <color_fragment> + #include <alphamap_fragment> + #include <alphatest_fragment> + #include <roughnessmap_fragment> + #include <metalnessmap_fragment> + #include <normal_fragment_begin> + #include <normal_fragment_maps> + #include <clearcoat_normal_fragment_begin> + #include <clearcoat_normal_fragment_maps> + #include <emissivemap_fragment> + #include <lights_physical_fragment> + #include <lights_fragment_begin> + #include <lights_fragment_maps> + #include <lights_fragment_end> + #include <aomap_fragment> + vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; + vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; + #include <transmission_fragment> + vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; + #ifdef USE_SHEEN + float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); + outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular; + #endif + #ifdef USE_CLEARCOAT + float dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) ); + vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); + outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat; + #endif + #include <output_fragment> + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> + #include <premultiplied_alpha_fragment> + #include <dithering_fragment> +}`,mh=`#define TOON +varying vec3 vViewPosition; +#include <common> +#include <uv_pars_vertex> +#include <uv2_pars_vertex> +#include <displacementmap_pars_vertex> +#include <color_pars_vertex> +#include <fog_pars_vertex> +#include <normal_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <shadowmap_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <uv_vertex> + #include <uv2_vertex> + #include <color_vertex> + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinbase_vertex> + #include <skinnormal_vertex> + #include <defaultnormal_vertex> + #include <normal_vertex> + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <displacementmap_vertex> + #include <project_vertex> + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + vViewPosition = - mvPosition.xyz; + #include <worldpos_vertex> + #include <shadowmap_vertex> + #include <fog_vertex> +}`,gh=`#define TOON +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include <common> +#include <packing> +#include <dithering_pars_fragment> +#include <color_pars_fragment> +#include <uv_pars_fragment> +#include <uv2_pars_fragment> +#include <map_pars_fragment> +#include <alphamap_pars_fragment> +#include <alphatest_pars_fragment> +#include <aomap_pars_fragment> +#include <lightmap_pars_fragment> +#include <emissivemap_pars_fragment> +#include <gradientmap_pars_fragment> +#include <fog_pars_fragment> +#include <bsdfs> +#include <lights_pars_begin> +#include <normal_pars_fragment> +#include <lights_toon_pars_fragment> +#include <shadowmap_pars_fragment> +#include <bumpmap_pars_fragment> +#include <normalmap_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include <logdepthbuf_fragment> + #include <map_fragment> + #include <color_fragment> + #include <alphamap_fragment> + #include <alphatest_fragment> + #include <normal_fragment_begin> + #include <normal_fragment_maps> + #include <emissivemap_fragment> + #include <lights_toon_fragment> + #include <lights_fragment_begin> + #include <lights_fragment_maps> + #include <lights_fragment_end> + #include <aomap_fragment> + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include <output_fragment> + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> + #include <premultiplied_alpha_fragment> + #include <dithering_fragment> +}`,_h=`uniform float size; +uniform float scale; +#include <common> +#include <color_pars_vertex> +#include <fog_pars_vertex> +#include <morphtarget_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <color_vertex> + #include <begin_vertex> + #include <morphtarget_vertex> + #include <project_vertex> + gl_PointSize = size; + #ifdef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); + #endif + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + #include <worldpos_vertex> + #include <fog_vertex> +}`,xh=`uniform vec3 diffuse; +uniform float opacity; +#include <common> +#include <color_pars_fragment> +#include <map_particle_pars_fragment> +#include <alphatest_pars_fragment> +#include <fog_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include <logdepthbuf_fragment> + #include <map_particle_fragment> + #include <color_fragment> + #include <alphatest_fragment> + outgoingLight = diffuseColor.rgb; + #include <output_fragment> + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> + #include <premultiplied_alpha_fragment> +}`,vh=`#include <common> +#include <fog_pars_vertex> +#include <morphtarget_pars_vertex> +#include <skinning_pars_vertex> +#include <shadowmap_pars_vertex> +void main() { + #include <beginnormal_vertex> + #include <morphnormal_vertex> + #include <skinbase_vertex> + #include <skinnormal_vertex> + #include <defaultnormal_vertex> + #include <begin_vertex> + #include <morphtarget_vertex> + #include <skinning_vertex> + #include <project_vertex> + #include <worldpos_vertex> + #include <shadowmap_vertex> + #include <fog_vertex> +}`,yh=`uniform vec3 color; +uniform float opacity; +#include <common> +#include <packing> +#include <fog_pars_fragment> +#include <bsdfs> +#include <lights_pars_begin> +#include <shadowmap_pars_fragment> +#include <shadowmask_pars_fragment> +void main() { + gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> +}`,Mh=`uniform float rotation; +uniform vec2 center; +#include <common> +#include <uv_pars_vertex> +#include <fog_pars_vertex> +#include <logdepthbuf_pars_vertex> +#include <clipping_planes_pars_vertex> +void main() { + #include <uv_vertex> + vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); + vec2 scale; + scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); + scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); + #ifndef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + #endif + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + gl_Position = projectionMatrix * mvPosition; + #include <logdepthbuf_vertex> + #include <clipping_planes_vertex> + #include <fog_vertex> +}`,Sh=`uniform vec3 diffuse; +uniform float opacity; +#include <common> +#include <uv_pars_fragment> +#include <map_pars_fragment> +#include <alphamap_pars_fragment> +#include <alphatest_pars_fragment> +#include <fog_pars_fragment> +#include <logdepthbuf_pars_fragment> +#include <clipping_planes_pars_fragment> +void main() { + #include <clipping_planes_fragment> + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include <logdepthbuf_fragment> + #include <map_fragment> + #include <alphamap_fragment> + #include <alphatest_fragment> + outgoingLight = diffuseColor.rgb; + #include <output_fragment> + #include <tonemapping_fragment> + #include <encodings_fragment> + #include <fog_fragment> +}`,Pe={alphamap_fragment:$o,alphamap_pars_fragment:Ko,alphatest_fragment:Qo,alphatest_pars_fragment:el,aomap_fragment:tl,aomap_pars_fragment:nl,begin_vertex:il,beginnormal_vertex:rl,bsdfs:sl,bumpmap_pars_fragment:al,clipping_planes_fragment:ol,clipping_planes_pars_fragment:ll,clipping_planes_pars_vertex:cl,clipping_planes_vertex:hl,color_fragment:ul,color_pars_fragment:dl,color_pars_vertex:fl,color_vertex:pl,common:ml,cube_uv_reflection_fragment:gl,defaultnormal_vertex:_l,displacementmap_pars_vertex:xl,displacementmap_vertex:vl,emissivemap_fragment:yl,emissivemap_pars_fragment:Ml,encodings_fragment:Sl,encodings_pars_fragment:bl,envmap_fragment:wl,envmap_common_pars_fragment:Tl,envmap_pars_fragment:El,envmap_pars_vertex:Al,envmap_physical_pars_fragment:Ul,envmap_vertex:Rl,fog_vertex:Cl,fog_pars_vertex:Ll,fog_fragment:Pl,fog_pars_fragment:Dl,gradientmap_pars_fragment:Il,lightmap_fragment:Fl,lightmap_pars_fragment:Bl,lights_lambert_vertex:Nl,lights_pars_begin:zl,lights_toon_fragment:Ol,lights_toon_pars_fragment:Gl,lights_phong_fragment:Vl,lights_phong_pars_fragment:Hl,lights_physical_fragment:kl,lights_physical_pars_fragment:Wl,lights_fragment_begin:ql,lights_fragment_maps:Xl,lights_fragment_end:Yl,logdepthbuf_fragment:Zl,logdepthbuf_pars_fragment:jl,logdepthbuf_pars_vertex:Jl,logdepthbuf_vertex:$l,map_fragment:Kl,map_pars_fragment:Ql,map_particle_fragment:ec,map_particle_pars_fragment:tc,metalnessmap_fragment:nc,metalnessmap_pars_fragment:ic,morphnormal_vertex:rc,morphtarget_pars_vertex:sc,morphtarget_vertex:ac,normal_fragment_begin:oc,normal_fragment_maps:lc,normal_pars_fragment:cc,normal_pars_vertex:hc,normal_vertex:uc,normalmap_pars_fragment:dc,clearcoat_normal_fragment_begin:fc,clearcoat_normal_fragment_maps:pc,clearcoat_pars_fragment:mc,output_fragment:gc,packing:_c,premultiplied_alpha_fragment:xc,project_vertex:vc,dithering_fragment:yc,dithering_pars_fragment:Mc,roughnessmap_fragment:Sc,roughnessmap_pars_fragment:bc,shadowmap_pars_fragment:wc,shadowmap_pars_vertex:Tc,shadowmap_vertex:Ec,shadowmask_pars_fragment:Ac,skinbase_vertex:Rc,skinning_pars_vertex:Cc,skinning_vertex:Lc,skinnormal_vertex:Pc,specularmap_fragment:Dc,specularmap_pars_fragment:Ic,tonemapping_fragment:Fc,tonemapping_pars_fragment:Bc,transmission_fragment:Nc,transmission_pars_fragment:zc,uv_pars_fragment:Uc,uv_pars_vertex:Oc,uv_vertex:Gc,uv2_pars_fragment:Vc,uv2_pars_vertex:Hc,uv2_vertex:kc,worldpos_vertex:Wc,background_vert:qc,background_frag:Xc,cube_vert:Yc,cube_frag:Zc,depth_vert:jc,depth_frag:Jc,distanceRGBA_vert:$c,distanceRGBA_frag:Kc,equirect_vert:Qc,equirect_frag:eh,linedashed_vert:th,linedashed_frag:nh,meshbasic_vert:ih,meshbasic_frag:rh,meshlambert_vert:sh,meshlambert_frag:ah,meshmatcap_vert:oh,meshmatcap_frag:lh,meshnormal_vert:ch,meshnormal_frag:hh,meshphong_vert:uh,meshphong_frag:dh,meshphysical_vert:fh,meshphysical_frag:ph,meshtoon_vert:mh,meshtoon_frag:gh,points_vert:_h,points_frag:xh,shadow_vert:vh,shadow_frag:yh,sprite_vert:Mh,sprite_frag:Sh},ee={common:{diffuse:{value:new me(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new at},uv2Transform:{value:new at},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new J(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new me(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{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 me(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new at}},sprite:{diffuse:{value:new me(16777215)},opacity:{value:1},center:{value:new J(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new at}}},It={basic:{uniforms:lt([ee.common,ee.specularmap,ee.envmap,ee.aomap,ee.lightmap,ee.fog]),vertexShader:Pe.meshbasic_vert,fragmentShader:Pe.meshbasic_frag},lambert:{uniforms:lt([ee.common,ee.specularmap,ee.envmap,ee.aomap,ee.lightmap,ee.emissivemap,ee.fog,ee.lights,{emissive:{value:new me(0)}}]),vertexShader:Pe.meshlambert_vert,fragmentShader:Pe.meshlambert_frag},phong:{uniforms:lt([ee.common,ee.specularmap,ee.envmap,ee.aomap,ee.lightmap,ee.emissivemap,ee.bumpmap,ee.normalmap,ee.displacementmap,ee.fog,ee.lights,{emissive:{value:new me(0)},specular:{value:new me(1118481)},shininess:{value:30}}]),vertexShader:Pe.meshphong_vert,fragmentShader:Pe.meshphong_frag},standard:{uniforms:lt([ee.common,ee.envmap,ee.aomap,ee.lightmap,ee.emissivemap,ee.bumpmap,ee.normalmap,ee.displacementmap,ee.roughnessmap,ee.metalnessmap,ee.fog,ee.lights,{emissive:{value:new me(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Pe.meshphysical_vert,fragmentShader:Pe.meshphysical_frag},toon:{uniforms:lt([ee.common,ee.aomap,ee.lightmap,ee.emissivemap,ee.bumpmap,ee.normalmap,ee.displacementmap,ee.gradientmap,ee.fog,ee.lights,{emissive:{value:new me(0)}}]),vertexShader:Pe.meshtoon_vert,fragmentShader:Pe.meshtoon_frag},matcap:{uniforms:lt([ee.common,ee.bumpmap,ee.normalmap,ee.displacementmap,ee.fog,{matcap:{value:null}}]),vertexShader:Pe.meshmatcap_vert,fragmentShader:Pe.meshmatcap_frag},points:{uniforms:lt([ee.points,ee.fog]),vertexShader:Pe.points_vert,fragmentShader:Pe.points_frag},dashed:{uniforms:lt([ee.common,ee.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Pe.linedashed_vert,fragmentShader:Pe.linedashed_frag},depth:{uniforms:lt([ee.common,ee.displacementmap]),vertexShader:Pe.depth_vert,fragmentShader:Pe.depth_frag},normal:{uniforms:lt([ee.common,ee.bumpmap,ee.normalmap,ee.displacementmap,{opacity:{value:1}}]),vertexShader:Pe.meshnormal_vert,fragmentShader:Pe.meshnormal_frag},sprite:{uniforms:lt([ee.sprite,ee.fog]),vertexShader:Pe.sprite_vert,fragmentShader:Pe.sprite_frag},background:{uniforms:{uvTransform:{value:new at},t2D:{value:null}},vertexShader:Pe.background_vert,fragmentShader:Pe.background_frag},cube:{uniforms:lt([ee.envmap,{opacity:{value:1}}]),vertexShader:Pe.cube_vert,fragmentShader:Pe.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Pe.equirect_vert,fragmentShader:Pe.equirect_frag},distanceRGBA:{uniforms:lt([ee.common,ee.displacementmap,{referencePosition:{value:new w},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Pe.distanceRGBA_vert,fragmentShader:Pe.distanceRGBA_frag},shadow:{uniforms:lt([ee.lights,ee.fog,{color:{value:new me(0)},opacity:{value:1}}]),vertexShader:Pe.shadow_vert,fragmentShader:Pe.shadow_frag}};It.physical={uniforms:lt([It.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new J(1,1)},clearcoatNormalMap:{value:null},sheen:{value:0},sheenColor:{value:new me(0)},sheenColorMap:{value:null},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new J},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new me(0)},specularIntensity:{value:1},specularIntensityMap:{value:null},specularColor:{value:new me(1,1,1)},specularColorMap:{value:null}}]),vertexShader:Pe.meshphysical_vert,fragmentShader:Pe.meshphysical_frag};function bh(s,e,t,n,i,r){const a=new me(0);let o=i===!0?0:1,c,l,h=null,u=0,d=null;function p(_,M){let m=!1,f=M.isScene===!0?M.background:null;f&&f.isTexture&&(f=e.get(f));const E=s.xr,y=E.getSession&&E.getSession();y&&y.environmentBlendMode==="additive"&&(f=null),f===null?g(a,o):f&&f.isColor&&(g(f,1),m=!0),(s.autoClear||m)&&s.clear(s.autoClearColor,s.autoClearDepth,s.autoClearStencil),f&&(f.isCubeTexture||f.mapping===306)?(l===void 0&&(l=new mt(new xi(1,1,1),new _n({name:"BackgroundCubeMaterial",uniforms:Xn(It.cube.uniforms),vertexShader:It.cube.vertexShader,fragmentShader:It.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(T,C,L){this.matrixWorld.copyPosition(L.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),n.update(l)),l.material.uniforms.envMap.value=f,l.material.uniforms.flipEnvMap.value=f.isCubeTexture&&f.isRenderTargetTexture===!1?-1:1,(h!==f||u!==f.version||d!==s.toneMapping)&&(l.material.needsUpdate=!0,h=f,u=f.version,d=s.toneMapping),_.unshift(l,l.geometry,l.material,0,0,null)):f&&f.isTexture&&(c===void 0&&(c=new mt(new cs(2,2),new _n({name:"BackgroundMaterial",uniforms:Xn(It.background.uniforms),vertexShader:It.background.vertexShader,fragmentShader:It.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),n.update(c)),c.material.uniforms.t2D.value=f,f.matrixAutoUpdate===!0&&f.updateMatrix(),c.material.uniforms.uvTransform.value.copy(f.matrix),(h!==f||u!==f.version||d!==s.toneMapping)&&(c.material.needsUpdate=!0,h=f,u=f.version,d=s.toneMapping),_.unshift(c,c.geometry,c.material,0,0,null))}function g(_,M){t.buffers.color.setClear(_.r,_.g,_.b,M,r)}return{getClearColor:function(){return a},setClearColor:function(_,M=1){a.set(_),o=M,g(a,o)},getClearAlpha:function(){return o},setClearAlpha:function(_){o=_,g(a,o)},render:p}}function wh(s,e,t,n){const i=s.getParameter(34921),r=n.isWebGL2?null:e.get("OES_vertex_array_object"),a=n.isWebGL2||r!==null,o={},c=_(null);let l=c;function h(D,B,N,I,V){let j=!1;if(a){const ce=g(I,N,B);l!==ce&&(l=ce,d(l.object)),j=M(I,V),j&&m(I,V)}else{const ce=B.wireframe===!0;(l.geometry!==I.id||l.program!==N.id||l.wireframe!==ce)&&(l.geometry=I.id,l.program=N.id,l.wireframe=ce,j=!0)}D.isInstancedMesh===!0&&(j=!0),V!==null&&t.update(V,34963),j&&(L(D,B,N,I),V!==null&&s.bindBuffer(34963,t.get(V).buffer))}function u(){return n.isWebGL2?s.createVertexArray():r.createVertexArrayOES()}function d(D){return n.isWebGL2?s.bindVertexArray(D):r.bindVertexArrayOES(D)}function p(D){return n.isWebGL2?s.deleteVertexArray(D):r.deleteVertexArrayOES(D)}function g(D,B,N){const I=N.wireframe===!0;let V=o[D.id];V===void 0&&(V={},o[D.id]=V);let j=V[B.id];j===void 0&&(j={},V[B.id]=j);let ce=j[I];return ce===void 0&&(ce=_(u()),j[I]=ce),ce}function _(D){const B=[],N=[],I=[];for(let V=0;V<i;V++)B[V]=0,N[V]=0,I[V]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:B,enabledAttributes:N,attributeDivisors:I,object:D,attributes:{},index:null}}function M(D,B){const N=l.attributes,I=D.attributes;let V=0;for(const j in I){const ce=N[j],O=I[j];if(ce===void 0||ce.attribute!==O||ce.data!==O.data)return!0;V++}return l.attributesNum!==V||l.index!==B}function m(D,B){const N={},I=D.attributes;let V=0;for(const j in I){const ce=I[j],O={};O.attribute=ce,ce.data&&(O.data=ce.data),N[j]=O,V++}l.attributes=N,l.attributesNum=V,l.index=B}function f(){const D=l.newAttributes;for(let B=0,N=D.length;B<N;B++)D[B]=0}function E(D){y(D,0)}function y(D,B){const N=l.newAttributes,I=l.enabledAttributes,V=l.attributeDivisors;N[D]=1,I[D]===0&&(s.enableVertexAttribArray(D),I[D]=1),V[D]!==B&&((n.isWebGL2?s:e.get("ANGLE_instanced_arrays"))[n.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](D,B),V[D]=B)}function T(){const D=l.newAttributes,B=l.enabledAttributes;for(let N=0,I=B.length;N<I;N++)B[N]!==D[N]&&(s.disableVertexAttribArray(N),B[N]=0)}function C(D,B,N,I,V,j){n.isWebGL2===!0&&(N===5124||N===5125)?s.vertexAttribIPointer(D,B,N,V,j):s.vertexAttribPointer(D,B,N,I,V,j)}function L(D,B,N,I){if(n.isWebGL2===!1&&(D.isInstancedMesh||I.isInstancedBufferGeometry)&&e.get("ANGLE_instanced_arrays")===null)return;f();const V=I.attributes,j=N.getAttributes(),ce=B.defaultAttributeValues;for(const O in j){const X=j[O];if(X.location>=0){let ne=V[O];if(ne===void 0&&(O==="instanceMatrix"&&D.instanceMatrix&&(ne=D.instanceMatrix),O==="instanceColor"&&D.instanceColor&&(ne=D.instanceColor)),ne!==void 0){const ue=ne.normalized,ge=ne.itemSize,U=t.get(ne);if(U===void 0)continue;const Ne=U.buffer,fe=U.type,Se=U.bytesPerElement;if(ne.isInterleavedBufferAttribute){const oe=ne.data,Re=oe.stride,be=ne.offset;if(oe&&oe.isInstancedInterleavedBuffer){for(let k=0;k<X.locationSize;k++)y(X.location+k,oe.meshPerAttribute);D.isInstancedMesh!==!0&&I._maxInstanceCount===void 0&&(I._maxInstanceCount=oe.meshPerAttribute*oe.count)}else for(let k=0;k<X.locationSize;k++)E(X.location+k);s.bindBuffer(34962,Ne);for(let k=0;k<X.locationSize;k++)C(X.location+k,ge/X.locationSize,fe,ue,Re*Se,(be+ge/X.locationSize*k)*Se)}else{if(ne.isInstancedBufferAttribute){for(let oe=0;oe<X.locationSize;oe++)y(X.location+oe,ne.meshPerAttribute);D.isInstancedMesh!==!0&&I._maxInstanceCount===void 0&&(I._maxInstanceCount=ne.meshPerAttribute*ne.count)}else for(let oe=0;oe<X.locationSize;oe++)E(X.location+oe);s.bindBuffer(34962,Ne);for(let oe=0;oe<X.locationSize;oe++)C(X.location+oe,ge/X.locationSize,fe,ue,ge*Se,ge/X.locationSize*oe*Se)}}else if(ce!==void 0){const ue=ce[O];if(ue!==void 0)switch(ue.length){case 2:s.vertexAttrib2fv(X.location,ue);break;case 3:s.vertexAttrib3fv(X.location,ue);break;case 4:s.vertexAttrib4fv(X.location,ue);break;default:s.vertexAttrib1fv(X.location,ue)}}}}T()}function Y(){x();for(const D in o){const B=o[D];for(const N in B){const I=B[N];for(const V in I)p(I[V].object),delete I[V];delete B[N]}delete o[D]}}function se(D){if(o[D.id]===void 0)return;const B=o[D.id];for(const N in B){const I=B[N];for(const V in I)p(I[V].object),delete I[V];delete B[N]}delete o[D.id]}function Z(D){for(const B in o){const N=o[B];if(N[D.id]===void 0)continue;const I=N[D.id];for(const V in I)p(I[V].object),delete I[V];delete N[D.id]}}function x(){R(),l!==c&&(l=c,d(l.object))}function R(){c.geometry=null,c.program=null,c.wireframe=!1}return{setup:h,reset:x,resetDefaultState:R,dispose:Y,releaseStatesOfGeometry:se,releaseStatesOfProgram:Z,initAttributes:f,enableAttribute:E,disableUnusedAttributes:T}}function Th(s,e,t,n){const i=n.isWebGL2;let r;function a(l){r=l}function o(l,h){s.drawArrays(r,l,h),t.update(h,r,1)}function c(l,h,u){if(u===0)return;let d,p;if(i)d=s,p="drawArraysInstanced";else if(d=e.get("ANGLE_instanced_arrays"),p="drawArraysInstancedANGLE",d===null){console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}d[p](r,l,h,u),t.update(h,r,u)}this.setMode=a,this.render=o,this.renderInstances=c}function Eh(s,e,t){let n;function i(){if(n!==void 0)return n;if(e.has("EXT_texture_filter_anisotropic")===!0){const L=e.get("EXT_texture_filter_anisotropic");n=s.getParameter(L.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else n=0;return n}function r(L){if(L==="highp"){if(s.getShaderPrecisionFormat(35633,36338).precision>0&&s.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";L="mediump"}return L==="mediump"&&s.getShaderPrecisionFormat(35633,36337).precision>0&&s.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const a=typeof WebGL2RenderingContext!="undefined"&&s instanceof WebGL2RenderingContext||typeof WebGL2ComputeRenderingContext!="undefined"&&s instanceof WebGL2ComputeRenderingContext;let o=t.precision!==void 0?t.precision:"highp";const c=r(o);c!==o&&(console.warn("THREE.WebGLRenderer:",o,"not supported, using",c,"instead."),o=c);const l=a||e.has("WEBGL_draw_buffers"),h=t.logarithmicDepthBuffer===!0,u=s.getParameter(34930),d=s.getParameter(35660),p=s.getParameter(3379),g=s.getParameter(34076),_=s.getParameter(34921),M=s.getParameter(36347),m=s.getParameter(36348),f=s.getParameter(36349),E=d>0,y=a||e.has("OES_texture_float"),T=E&&y,C=a?s.getParameter(36183):0;return{isWebGL2:a,drawBuffers:l,getMaxAnisotropy:i,getMaxPrecision:r,precision:o,logarithmicDepthBuffer:h,maxTextures:u,maxVertexTextures:d,maxTextureSize:p,maxCubemapSize:g,maxAttributes:_,maxVertexUniforms:M,maxVaryings:m,maxFragmentUniforms:f,vertexTextures:E,floatFragmentTextures:y,floatVertexTextures:T,maxSamples:C}}function Ah(s){const e=this;let t=null,n=0,i=!1,r=!1;const a=new qt,o=new at,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(u,d,p){const g=u.length!==0||d||n!==0||i;return i=d,t=h(u,p,0),n=u.length,g},this.beginShadows=function(){r=!0,h(null)},this.endShadows=function(){r=!1,l()},this.setState=function(u,d,p){const g=u.clippingPlanes,_=u.clipIntersection,M=u.clipShadows,m=s.get(u);if(!i||g===null||g.length===0||r&&!M)r?h(null):l();else{const f=r?0:n,E=f*4;let y=m.clippingState||null;c.value=y,y=h(g,d,E,p);for(let T=0;T!==E;++T)y[T]=t[T];m.clippingState=y,this.numIntersection=_?this.numPlanes:0,this.numPlanes+=f}};function l(){c.value!==t&&(c.value=t,c.needsUpdate=n>0),e.numPlanes=n,e.numIntersection=0}function h(u,d,p,g){const _=u!==null?u.length:0;let M=null;if(_!==0){if(M=c.value,g!==!0||M===null){const m=p+_*4,f=d.matrixWorldInverse;o.getNormalMatrix(f),(M===null||M.length<m)&&(M=new Float32Array(m));for(let E=0,y=p;E!==_;++E,y+=4)a.copy(u[E]).applyMatrix4(f,o),a.normal.toArray(M,y),M[y+3]=a.constant}c.value=M,c.needsUpdate=!0}return e.numPlanes=_,e.numIntersection=0,M}}function Rh(s){let e=new WeakMap;function t(a,o){return o===303?a.mapping=301:o===304&&(a.mapping=302),a}function n(a){if(a&&a.isTexture&&a.isRenderTargetTexture===!1){const o=a.mapping;if(o===303||o===304)if(e.has(a)){const c=e.get(a).texture;return t(c,a.mapping)}else{const c=a.image;if(c&&c.height>0){const l=new Ga(c.height/2);return l.fromEquirectangularTexture(s,a),e.set(a,l),a.addEventListener("dispose",i),t(l.texture,a.mapping)}else return null}}return a}function i(a){const o=a.target;o.removeEventListener("dispose",i);const c=e.get(o);c!==void 0&&(e.delete(o),c.dispose())}function r(){e=new WeakMap}return{get:n,dispose:r}}class hs extends os{constructor(e=-1,t=1,n=1,i=-1,r=.1,a=2e3){super();this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=n,this.bottom=i,this.near=r,this.far=a,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,n,i,r,a){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-e,a=n+e,o=i+t,c=i-t;if(this.view!==null&&this.view.enabled){const l=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=l*this.view.offsetX,a=r+l*this.view.width,o-=h*this.view.offsetY,c=o-h*this.view.height}this.projectionMatrix.makeOrthographic(r,a,o,c,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}}hs.prototype.isOrthographicCamera=!0;class or extends _n{constructor(e){super(e);this.type="RawShaderMaterial"}}or.prototype.isRawShaderMaterial=!0;const qn=4,tn=8,Dt=Math.pow(2,tn),Ha=[.125,.215,.35,.446,.526,.582],ka=tn-qn+1+Ha.length,Bn=20,Nr=new hs,{_lodPlanes:ii,_sizeLods:Os,_sigmas:ki}=Ch(),Gs=new me;let zr=null;const gn=(1+Math.sqrt(5))/2,Nn=1/gn,Vs=[new w(1,1,1),new w(-1,1,1),new w(1,1,-1),new w(-1,1,-1),new w(0,gn,Nn),new w(0,gn,-Nn),new w(Nn,0,gn),new w(-Nn,0,gn),new w(gn,Nn,0),new w(-gn,Nn,0)];class Hs{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._blurMaterial=Lh(Bn),this._equirectShader=null,this._cubemapShader=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,n=.1,i=100){zr=this._renderer.getRenderTarget();const r=this._allocateTargets();return this._sceneToCubeUV(e,n,i,r),t>0&&this._blur(r,0,0,t),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapShader===null&&(this._cubemapShader=qs(),this._compileMaterial(this._cubemapShader))}compileEquirectangularShader(){this._equirectShader===null&&(this._equirectShader=Ws(),this._compileMaterial(this._equirectShader))}dispose(){this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose(),this._cubemapShader!==null&&this._cubemapShader.dispose(),this._equirectShader!==null&&this._equirectShader.dispose();for(let e=0;e<ii.length;e++)ii[e].dispose()}_cleanup(e){this._renderer.setRenderTarget(zr),e.scissorTest=!1,Wi(e,0,0,e.width,e.height)}_fromTexture(e,t){zr=this._renderer.getRenderTarget();const n=t||this._allocateTargets(e);return this._textureToCubeUV(e,n),this._applyPMREM(n),this._cleanup(n),n}_allocateTargets(e){const t={magFilter:1006,minFilter:1006,generateMipmaps:!1,type:1016,format:1023,encoding:3e3,depthBuffer:!1},n=ks(t);return n.depthBuffer=!e,this._pingPongRenderTarget===null&&(this._pingPongRenderTarget=ks(t)),n}_compileMaterial(e){const t=new mt(ii[0],e);this._renderer.compile(t,Nr)}_sceneToCubeUV(e,t,n,i){const o=new pt(90,1,t,n),c=[1,-1,1,1,1,1],l=[1,1,1,-1,-1,-1],h=this._renderer,u=h.autoClear,d=h.toneMapping;h.getClearColor(Gs),h.toneMapping=0,h.autoClear=!1;const p=new as({name:"PMREM.Background",side:1,depthWrite:!1,depthTest:!1}),g=new mt(new xi,p);let _=!1;const M=e.background;M?M.isColor&&(p.color.copy(M),e.background=null,_=!0):(p.color.copy(Gs),_=!0);for(let m=0;m<6;m++){const f=m%3;f===0?(o.up.set(0,c[m],0),o.lookAt(l[m],0,0)):f===1?(o.up.set(0,0,c[m]),o.lookAt(0,l[m],0)):(o.up.set(0,c[m],0),o.lookAt(0,0,l[m])),Wi(i,f*Dt,m>2?Dt:0,Dt,Dt),h.setRenderTarget(i),_&&h.render(g,o),h.render(e,o)}g.geometry.dispose(),g.material.dispose(),h.toneMapping=d,h.autoClear=u,e.background=M}_textureToCubeUV(e,t){const n=this._renderer,i=e.mapping===301||e.mapping===302;i?(this._cubemapShader===null&&(this._cubemapShader=qs()),this._cubemapShader.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectShader===null&&(this._equirectShader=Ws());const r=i?this._cubemapShader:this._equirectShader,a=new mt(ii[0],r),o=r.uniforms;o.envMap.value=e,i||o.texelSize.value.set(1/e.image.width,1/e.image.height),Wi(t,0,0,3*Dt,2*Dt),n.setRenderTarget(t),n.render(a,Nr)}_applyPMREM(e){const t=this._renderer,n=t.autoClear;t.autoClear=!1;for(let i=1;i<ka;i++){const r=Math.sqrt(ki[i]*ki[i]-ki[i-1]*ki[i-1]),a=Vs[(i-1)%Vs.length];this._blur(e,i-1,i,r,a)}t.autoClear=n}_blur(e,t,n,i,r){const a=this._pingPongRenderTarget;this._halfBlur(e,a,t,n,i,"latitudinal",r),this._halfBlur(a,e,n,n,i,"longitudinal",r)}_halfBlur(e,t,n,i,r,a,o){const c=this._renderer,l=this._blurMaterial;a!=="latitudinal"&&a!=="longitudinal"&&console.error("blur direction must be either latitudinal or longitudinal!");const h=3,u=new mt(ii[i],l),d=l.uniforms,p=Os[n]-1,g=isFinite(r)?Math.PI/(2*p):2*Math.PI/(2*Bn-1),_=r/g,M=isFinite(r)?1+Math.floor(h*_):Bn;M>Bn&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${M} samples when the maximum is set to ${Bn}`);const m=[];let f=0;for(let C=0;C<Bn;++C){const L=C/_,Y=Math.exp(-L*L/2);m.push(Y),C===0?f+=Y:C<M&&(f+=2*Y)}for(let C=0;C<m.length;C++)m[C]=m[C]/f;d.envMap.value=e.texture,d.samples.value=M,d.weights.value=m,d.latitudinal.value=a==="latitudinal",o&&(d.poleAxis.value=o),d.dTheta.value=g,d.mipInt.value=tn-n;const E=Os[i],y=3*Math.max(0,Dt-2*E),T=(i===0?0:2*Dt)+2*E*(i>tn-qn?i-tn+qn:0);Wi(t,y,T,3*E,2*E),c.setRenderTarget(t),c.render(u,Nr)}}function Ch(){const s=[],e=[],t=[];let n=tn;for(let i=0;i<ka;i++){const r=Math.pow(2,n);e.push(r);let a=1/r;i>tn-qn?a=Ha[i-tn+qn-1]:i===0&&(a=0),t.push(a);const o=1/(r-1),c=-o/2,l=1+o/2,h=[c,c,l,c,l,l,c,c,l,l,c,l],u=6,d=6,p=3,g=2,_=1,M=new Float32Array(p*d*u),m=new Float32Array(g*d*u),f=new Float32Array(_*d*u);for(let y=0;y<u;y++){const T=y%3*2/3-1,C=y>2?0:-1,L=[T,C,0,T+2/3,C,0,T+2/3,C+1,0,T,C,0,T+2/3,C+1,0,T,C+1,0];M.set(L,p*d*y),m.set(h,g*d*y);const Y=[y,y,y,y,y,y];f.set(Y,_*d*y)}const E=new Ye;E.setAttribute("position",new tt(M,p)),E.setAttribute("uv",new tt(m,g)),E.setAttribute("faceIndex",new tt(f,_)),s.push(E),n>qn&&n--}return{_lodPlanes:s,_sizeLods:e,_sigmas:t}}function ks(s){const e=new Mt(3*Dt,3*Dt,s);return e.texture.mapping=306,e.texture.name="PMREM.cubeUv",e.scissorTest=!0,e}function Wi(s,e,t,n,i){s.viewport.set(e,t,n,i),s.scissor.set(e,t,n,i)}function Lh(s){const e=new Float32Array(s),t=new w(0,1,0);return new or({name:"SphericalGaussianBlur",defines:{n:s},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:e},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:t}},vertexShader:us(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include <cube_uv_reflection_fragment> + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + `,blending:0,depthTest:!1,depthWrite:!1})}function Ws(){const s=new J(1,1);return new or({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null},texelSize:{value:s}},vertexShader:us(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform vec2 texelSize; + + #include <common> + + void main() { + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + vec2 f = fract( uv / texelSize - 0.5 ); + uv -= f * texelSize; + vec3 tl = texture2D ( envMap, uv ).rgb; + uv.x += texelSize.x; + vec3 tr = texture2D ( envMap, uv ).rgb; + uv.y += texelSize.y; + vec3 br = texture2D ( envMap, uv ).rgb; + uv.x -= texelSize.x; + vec3 bl = texture2D ( envMap, uv ).rgb; + + vec3 tm = mix( tl, tr, f.x ); + vec3 bm = mix( bl, br, f.x ); + gl_FragColor.rgb = mix( tm, bm, f.y ); + + } + `,blending:0,depthTest:!1,depthWrite:!1})}function qs(){return new or({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:us(),fragmentShader:` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + `,blending:0,depthTest:!1,depthWrite:!1})}function us(){return` + + precision mediump float; + precision mediump int; + + attribute vec3 position; + attribute vec2 uv; + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + `}function Ph(s){let e=new WeakMap,t=null;function n(o){if(o&&o.isTexture){const c=o.mapping,l=c===303||c===304,h=c===301||c===302;if(l||h)if(o.isRenderTargetTexture&&o.needsPMREMUpdate===!0){o.needsPMREMUpdate=!1;let u=e.get(o);return t===null&&(t=new Hs(s)),u=l?t.fromEquirectangular(o,u):t.fromCubemap(o,u),e.set(o,u),u.texture}else{if(e.has(o))return e.get(o).texture;{const u=o.image;if(l&&u&&u.height>0||h&&u&&i(u)){t===null&&(t=new Hs(s));const d=l?t.fromEquirectangular(o):t.fromCubemap(o);return e.set(o,d),o.addEventListener("dispose",r),d.texture}else return null}}}return o}function i(o){let c=0;const l=6;for(let h=0;h<l;h++)o[h]!==void 0&&c++;return c===l}function r(o){const c=o.target;c.removeEventListener("dispose",r);const l=e.get(c);l!==void 0&&(e.delete(c),l.dispose())}function a(){e=new WeakMap,t!==null&&(t.dispose(),t=null)}return{get:n,dispose:a}}function Dh(s){const e={};function t(n){if(e[n]!==void 0)return e[n];let i;switch(n){case"WEBGL_depth_texture":i=s.getExtension("WEBGL_depth_texture")||s.getExtension("MOZ_WEBGL_depth_texture")||s.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":i=s.getExtension("EXT_texture_filter_anisotropic")||s.getExtension("MOZ_EXT_texture_filter_anisotropic")||s.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":i=s.getExtension("WEBGL_compressed_texture_s3tc")||s.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||s.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":i=s.getExtension("WEBGL_compressed_texture_pvrtc")||s.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:i=s.getExtension(n)}return e[n]=i,i}return{has:function(n){return t(n)!==null},init:function(n){n.isWebGL2?t("EXT_color_buffer_float"):(t("WEBGL_depth_texture"),t("OES_texture_float"),t("OES_texture_half_float"),t("OES_texture_half_float_linear"),t("OES_standard_derivatives"),t("OES_element_index_uint"),t("OES_vertex_array_object"),t("ANGLE_instanced_arrays")),t("OES_texture_float_linear"),t("EXT_color_buffer_half_float"),t("WEBGL_multisampled_render_to_texture")},get:function(n){const i=t(n);return i===null&&console.warn("THREE.WebGLRenderer: "+n+" extension not supported."),i}}}function Ih(s,e,t,n){const i={},r=new WeakMap;function a(u){const d=u.target;d.index!==null&&e.remove(d.index);for(const g in d.attributes)e.remove(d.attributes[g]);d.removeEventListener("dispose",a),delete i[d.id];const p=r.get(d);p&&(e.remove(p),r.delete(d)),n.releaseStatesOfGeometry(d),d.isInstancedBufferGeometry===!0&&delete d._maxInstanceCount,t.memory.geometries--}function o(u,d){return i[d.id]===!0||(d.addEventListener("dispose",a),i[d.id]=!0,t.memory.geometries++),d}function c(u){const d=u.attributes;for(const g in d)e.update(d[g],34962);const p=u.morphAttributes;for(const g in p){const _=p[g];for(let M=0,m=_.length;M<m;M++)e.update(_[M],34962)}}function l(u){const d=[],p=u.index,g=u.attributes.position;let _=0;if(p!==null){const f=p.array;_=p.version;for(let E=0,y=f.length;E<y;E+=3){const T=f[E+0],C=f[E+1],L=f[E+2];d.push(T,C,C,L,L,T)}}else{const f=g.array;_=g.version;for(let E=0,y=f.length/3-1;E<y;E+=3){const T=E+0,C=E+1,L=E+2;d.push(T,C,C,L,L,T)}}const M=new(Na(d)?Oa:Ua)(d,1);M.version=_;const m=r.get(u);m&&e.remove(m),r.set(u,M)}function h(u){const d=r.get(u);if(d){const p=u.index;p!==null&&d.version<p.version&&l(u)}else l(u);return r.get(u)}return{get:o,update:c,getWireframeAttribute:h}}function Fh(s,e,t,n){const i=n.isWebGL2;let r;function a(d){r=d}let o,c;function l(d){o=d.type,c=d.bytesPerElement}function h(d,p){s.drawElements(r,p,o,d*c),t.update(p,r,1)}function u(d,p,g){if(g===0)return;let _,M;if(i)_=s,M="drawElementsInstanced";else if(_=e.get("ANGLE_instanced_arrays"),M="drawElementsInstancedANGLE",_===null){console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}_[M](r,p,o,d*c,g),t.update(p,r,g)}this.setMode=a,this.setIndex=l,this.render=h,this.renderInstances=u}function Bh(s){const e={geometries:0,textures:0},t={frame:0,calls:0,triangles:0,points:0,lines:0};function n(r,a,o){switch(t.calls++,a){case 4:t.triangles+=o*(r/3);break;case 1:t.lines+=o*(r/2);break;case 3:t.lines+=o*(r-1);break;case 2:t.lines+=o*r;break;case 0:t.points+=o*r;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",a);break}}function i(){t.frame++,t.calls=0,t.triangles=0,t.points=0,t.lines=0}return{memory:e,render:t,programs:null,autoReset:!0,reset:i,update:n}}class ds extends rt{constructor(e=null,t=1,n=1,i=1){super(null);this.image={data:e,width:t,height:n,depth:i},this.magFilter=1003,this.minFilter=1003,this.wrapR=1001,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}ds.prototype.isDataTexture2DArray=!0;function Nh(s,e){return s[0]-e[0]}function zh(s,e){return Math.abs(e[1])-Math.abs(s[1])}function Xs(s,e){let t=1;const n=e.isInterleavedBufferAttribute?e.data.array:e.array;n instanceof Int8Array?t=127:n instanceof Int16Array?t=32767:n instanceof Int32Array?t=2147483647:console.error("THREE.WebGLMorphtargets: Unsupported morph attribute data type: ",n),s.divideScalar(t)}function Uh(s,e,t){const n={},i=new Float32Array(8),r=new WeakMap,a=new w,o=[];for(let l=0;l<8;l++)o[l]=[l,0];function c(l,h,u,d){const p=l.morphTargetInfluences;if(e.isWebGL2===!0){const g=h.morphAttributes.position.length;let _=r.get(h);if(_===void 0||_.count!==g){let R=function(){Z.dispose(),r.delete(h),h.removeEventListener("dispose",R)};_!==void 0&&_.texture.dispose();const f=h.morphAttributes.normal!==void 0,E=h.morphAttributes.position,y=h.morphAttributes.normal||[],T=h.attributes.position.count,C=f===!0?2:1;let L=T*C,Y=1;L>e.maxTextureSize&&(Y=Math.ceil(L/e.maxTextureSize),L=e.maxTextureSize);const se=new Float32Array(L*Y*4*g),Z=new ds(se,L,Y,g);Z.format=1023,Z.type=1015,Z.needsUpdate=!0;const x=C*4;for(let D=0;D<g;D++){const B=E[D],N=y[D],I=L*Y*4*D;for(let V=0;V<B.count;V++){a.fromBufferAttribute(B,V),B.normalized===!0&&Xs(a,B);const j=V*x;se[I+j+0]=a.x,se[I+j+1]=a.y,se[I+j+2]=a.z,se[I+j+3]=0,f===!0&&(a.fromBufferAttribute(N,V),N.normalized===!0&&Xs(a,N),se[I+j+4]=a.x,se[I+j+5]=a.y,se[I+j+6]=a.z,se[I+j+7]=0)}}_={count:g,texture:Z,size:new J(L,Y)},r.set(h,_),h.addEventListener("dispose",R)}let M=0;for(let f=0;f<p.length;f++)M+=p[f];const m=h.morphTargetsRelative?1:1-M;d.getUniforms().setValue(s,"morphTargetBaseInfluence",m),d.getUniforms().setValue(s,"morphTargetInfluences",p),d.getUniforms().setValue(s,"morphTargetsTexture",_.texture,t),d.getUniforms().setValue(s,"morphTargetsTextureSize",_.size)}else{const g=p===void 0?0:p.length;let _=n[h.id];if(_===void 0||_.length!==g){_=[];for(let y=0;y<g;y++)_[y]=[y,0];n[h.id]=_}for(let y=0;y<g;y++){const T=_[y];T[0]=y,T[1]=p[y]}_.sort(zh);for(let y=0;y<8;y++)y<g&&_[y][1]?(o[y][0]=_[y][0],o[y][1]=_[y][1]):(o[y][0]=Number.MAX_SAFE_INTEGER,o[y][1]=0);o.sort(Nh);const M=h.morphAttributes.position,m=h.morphAttributes.normal;let f=0;for(let y=0;y<8;y++){const T=o[y],C=T[0],L=T[1];C!==Number.MAX_SAFE_INTEGER&&L?(M&&h.getAttribute("morphTarget"+y)!==M[C]&&h.setAttribute("morphTarget"+y,M[C]),m&&h.getAttribute("morphNormal"+y)!==m[C]&&h.setAttribute("morphNormal"+y,m[C]),i[y]=L,f+=L):(M&&h.hasAttribute("morphTarget"+y)===!0&&h.deleteAttribute("morphTarget"+y),m&&h.hasAttribute("morphNormal"+y)===!0&&h.deleteAttribute("morphNormal"+y),i[y]=0)}const E=h.morphTargetsRelative?1:1-f;d.getUniforms().setValue(s,"morphTargetBaseInfluence",E),d.getUniforms().setValue(s,"morphTargetInfluences",i)}}return{update:c}}function Oh(s,e,t,n){let i=new WeakMap;function r(c){const l=n.render.frame,h=c.geometry,u=e.get(c,h);return i.get(u)!==l&&(e.update(u),i.set(u,l)),c.isInstancedMesh&&(c.hasEventListener("dispose",o)===!1&&c.addEventListener("dispose",o),t.update(c.instanceMatrix,34962),c.instanceColor!==null&&t.update(c.instanceColor,34962)),u}function a(){i=new WeakMap}function o(c){const l=c.target;l.removeEventListener("dispose",o),t.remove(l.instanceMatrix),l.instanceColor!==null&&t.remove(l.instanceColor)}return{update:r,dispose:a}}class Wa extends rt{constructor(e=null,t=1,n=1,i=1){super(null);this.image={data:e,width:t,height:n,depth:i},this.magFilter=1003,this.minFilter=1003,this.wrapR=1001,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}Wa.prototype.isDataTexture3D=!0;const qa=new rt,Xa=new ds,Ya=new Wa,Za=new sr,Ys=[],Zs=[],js=new Float32Array(16),Js=new Float32Array(9),$s=new Float32Array(4);function jn(s,e,t){const n=s[0];if(n<=0||n>0)return s;const i=e*t;let r=Ys[i];if(r===void 0&&(r=new Float32Array(i),Ys[i]=r),e!==0){n.toArray(r,0);for(let a=1,o=0;a!==e;++a)o+=t,s[a].toArray(r,o)}return r}function ft(s,e){if(s.length!==e.length)return!1;for(let t=0,n=s.length;t<n;t++)if(s[t]!==e[t])return!1;return!0}function ht(s,e){for(let t=0,n=e.length;t<n;t++)s[t]=e[t]}function lr(s,e){let t=Zs[e];t===void 0&&(t=new Int32Array(e),Zs[e]=t);for(let n=0;n!==e;++n)t[n]=s.allocateTextureUnit();return t}function Gh(s,e){const t=this.cache;t[0]!==e&&(s.uniform1f(this.addr,e),t[0]=e)}function Vh(s,e){const t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y)&&(s.uniform2f(this.addr,e.x,e.y),t[0]=e.x,t[1]=e.y);else{if(ft(t,e))return;s.uniform2fv(this.addr,e),ht(t,e)}}function Hh(s,e){const t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z)&&(s.uniform3f(this.addr,e.x,e.y,e.z),t[0]=e.x,t[1]=e.y,t[2]=e.z);else if(e.r!==void 0)(t[0]!==e.r||t[1]!==e.g||t[2]!==e.b)&&(s.uniform3f(this.addr,e.r,e.g,e.b),t[0]=e.r,t[1]=e.g,t[2]=e.b);else{if(ft(t,e))return;s.uniform3fv(this.addr,e),ht(t,e)}}function kh(s,e){const t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z||t[3]!==e.w)&&(s.uniform4f(this.addr,e.x,e.y,e.z,e.w),t[0]=e.x,t[1]=e.y,t[2]=e.z,t[3]=e.w);else{if(ft(t,e))return;s.uniform4fv(this.addr,e),ht(t,e)}}function Wh(s,e){const t=this.cache,n=e.elements;if(n===void 0){if(ft(t,e))return;s.uniformMatrix2fv(this.addr,!1,e),ht(t,e)}else{if(ft(t,n))return;$s.set(n),s.uniformMatrix2fv(this.addr,!1,$s),ht(t,n)}}function qh(s,e){const t=this.cache,n=e.elements;if(n===void 0){if(ft(t,e))return;s.uniformMatrix3fv(this.addr,!1,e),ht(t,e)}else{if(ft(t,n))return;Js.set(n),s.uniformMatrix3fv(this.addr,!1,Js),ht(t,n)}}function Xh(s,e){const t=this.cache,n=e.elements;if(n===void 0){if(ft(t,e))return;s.uniformMatrix4fv(this.addr,!1,e),ht(t,e)}else{if(ft(t,n))return;js.set(n),s.uniformMatrix4fv(this.addr,!1,js),ht(t,n)}}function Yh(s,e){const t=this.cache;t[0]!==e&&(s.uniform1i(this.addr,e),t[0]=e)}function Zh(s,e){const t=this.cache;ft(t,e)||(s.uniform2iv(this.addr,e),ht(t,e))}function jh(s,e){const t=this.cache;ft(t,e)||(s.uniform3iv(this.addr,e),ht(t,e))}function Jh(s,e){const t=this.cache;ft(t,e)||(s.uniform4iv(this.addr,e),ht(t,e))}function $h(s,e){const t=this.cache;t[0]!==e&&(s.uniform1ui(this.addr,e),t[0]=e)}function Kh(s,e){const t=this.cache;ft(t,e)||(s.uniform2uiv(this.addr,e),ht(t,e))}function Qh(s,e){const t=this.cache;ft(t,e)||(s.uniform3uiv(this.addr,e),ht(t,e))}function eu(s,e){const t=this.cache;ft(t,e)||(s.uniform4uiv(this.addr,e),ht(t,e))}function tu(s,e,t){const n=this.cache,i=t.allocateTextureUnit();n[0]!==i&&(s.uniform1i(this.addr,i),n[0]=i),t.safeSetTexture2D(e||qa,i)}function nu(s,e,t){const n=this.cache,i=t.allocateTextureUnit();n[0]!==i&&(s.uniform1i(this.addr,i),n[0]=i),t.setTexture3D(e||Ya,i)}function iu(s,e,t){const n=this.cache,i=t.allocateTextureUnit();n[0]!==i&&(s.uniform1i(this.addr,i),n[0]=i),t.safeSetTextureCube(e||Za,i)}function ru(s,e,t){const n=this.cache,i=t.allocateTextureUnit();n[0]!==i&&(s.uniform1i(this.addr,i),n[0]=i),t.setTexture2DArray(e||Xa,i)}function su(s){switch(s){case 5126:return Gh;case 35664:return Vh;case 35665:return Hh;case 35666:return kh;case 35674:return Wh;case 35675:return qh;case 35676:return Xh;case 5124:case 35670:return Yh;case 35667:case 35671:return Zh;case 35668:case 35672:return jh;case 35669:case 35673:return Jh;case 5125:return $h;case 36294:return Kh;case 36295:return Qh;case 36296:return eu;case 35678:case 36198:case 36298:case 36306:case 35682:return tu;case 35679:case 36299:case 36307:return nu;case 35680:case 36300:case 36308:case 36293:return iu;case 36289:case 36303:case 36311:case 36292:return ru}}function au(s,e){s.uniform1fv(this.addr,e)}function ou(s,e){const t=jn(e,this.size,2);s.uniform2fv(this.addr,t)}function lu(s,e){const t=jn(e,this.size,3);s.uniform3fv(this.addr,t)}function cu(s,e){const t=jn(e,this.size,4);s.uniform4fv(this.addr,t)}function hu(s,e){const t=jn(e,this.size,4);s.uniformMatrix2fv(this.addr,!1,t)}function uu(s,e){const t=jn(e,this.size,9);s.uniformMatrix3fv(this.addr,!1,t)}function du(s,e){const t=jn(e,this.size,16);s.uniformMatrix4fv(this.addr,!1,t)}function fu(s,e){s.uniform1iv(this.addr,e)}function pu(s,e){s.uniform2iv(this.addr,e)}function mu(s,e){s.uniform3iv(this.addr,e)}function gu(s,e){s.uniform4iv(this.addr,e)}function _u(s,e){s.uniform1uiv(this.addr,e)}function xu(s,e){s.uniform2uiv(this.addr,e)}function vu(s,e){s.uniform3uiv(this.addr,e)}function yu(s,e){s.uniform4uiv(this.addr,e)}function Mu(s,e,t){const n=e.length,i=lr(t,n);s.uniform1iv(this.addr,i);for(let r=0;r!==n;++r)t.safeSetTexture2D(e[r]||qa,i[r])}function Su(s,e,t){const n=e.length,i=lr(t,n);s.uniform1iv(this.addr,i);for(let r=0;r!==n;++r)t.setTexture3D(e[r]||Ya,i[r])}function bu(s,e,t){const n=e.length,i=lr(t,n);s.uniform1iv(this.addr,i);for(let r=0;r!==n;++r)t.safeSetTextureCube(e[r]||Za,i[r])}function wu(s,e,t){const n=e.length,i=lr(t,n);s.uniform1iv(this.addr,i);for(let r=0;r!==n;++r)t.setTexture2DArray(e[r]||Xa,i[r])}function Tu(s){switch(s){case 5126:return au;case 35664:return ou;case 35665:return lu;case 35666:return cu;case 35674:return hu;case 35675:return uu;case 35676:return du;case 5124:case 35670:return fu;case 35667:case 35671:return pu;case 35668:case 35672:return mu;case 35669:case 35673:return gu;case 5125:return _u;case 36294:return xu;case 36295:return vu;case 36296:return yu;case 35678:case 36198:case 36298:case 36306:case 35682:return Mu;case 35679:case 36299:case 36307:return Su;case 35680:case 36300:case 36308:case 36293:return bu;case 36289:case 36303:case 36311:case 36292:return wu}}function Eu(s,e,t){this.id=s,this.addr=t,this.cache=[],this.setValue=su(e.type)}function ja(s,e,t){this.id=s,this.addr=t,this.cache=[],this.size=e.size,this.setValue=Tu(e.type)}ja.prototype.updateCache=function(s){const e=this.cache;s instanceof Float32Array&&e.length!==s.length&&(this.cache=new Float32Array(s.length)),ht(e,s)};function Ja(s){this.id=s,this.seq=[],this.map={}}Ja.prototype.setValue=function(s,e,t){const n=this.seq;for(let i=0,r=n.length;i!==r;++i){const a=n[i];a.setValue(s,e[a.id],t)}};const Ur=/(\w+)(\])?(\[|\.)?/g;function Ks(s,e){s.seq.push(e),s.map[e.id]=e}function Au(s,e,t){const n=s.name,i=n.length;for(Ur.lastIndex=0;;){const r=Ur.exec(n),a=Ur.lastIndex;let o=r[1];const c=r[2]==="]",l=r[3];if(c&&(o=o|0),l===void 0||l==="["&&a+2===i){Ks(t,l===void 0?new Eu(o,s,e):new ja(o,s,e));break}else{let u=t.map[o];u===void 0&&(u=new Ja(o),Ks(t,u)),t=u}}}function nn(s,e){this.seq=[],this.map={};const t=s.getProgramParameter(e,35718);for(let n=0;n<t;++n){const i=s.getActiveUniform(e,n),r=s.getUniformLocation(e,i.name);Au(i,r,this)}}nn.prototype.setValue=function(s,e,t,n){const i=this.map[e];i!==void 0&&i.setValue(s,t,n)};nn.prototype.setOptional=function(s,e,t){const n=e[t];n!==void 0&&this.setValue(s,t,n)};nn.upload=function(s,e,t,n){for(let i=0,r=e.length;i!==r;++i){const a=e[i],o=t[a.id];o.needsUpdate!==!1&&a.setValue(s,o.value,n)}};nn.seqWithValue=function(s,e){const t=[];for(let n=0,i=s.length;n!==i;++n){const r=s[n];r.id in e&&t.push(r)}return t};function Qs(s,e,t){const n=s.createShader(e);return s.shaderSource(n,t),s.compileShader(n),n}let Ru=0;function Cu(s){const e=s.split(` +`);for(let t=0;t<e.length;t++)e[t]=t+1+": "+e[t];return e.join(` +`)}function Lu(s){switch(s){case 3e3:return["Linear","( value )"];case 3001:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",s),["Linear","( value )"]}}function ea(s,e,t){const n=s.getShaderParameter(e,35713),i=s.getShaderInfoLog(e).trim();return n&&i===""?"":t.toUpperCase()+` + +`+i+` + +`+Cu(s.getShaderSource(e))}function Pu(s,e){const t=Lu(e);return"vec4 "+s+"( vec4 value ) { return LinearTo"+t[0]+t[1]+"; }"}function Du(s,e){let t;switch(e){case 1:t="Linear";break;case 2:t="Reinhard";break;case 3:t="OptimizedCineon";break;case 4:t="ACESFilmic";break;case 5:t="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),t="Linear"}return"vec3 "+s+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}function Iu(s){return[s.extensionDerivatives||s.envMapCubeUV||s.bumpMap||s.tangentSpaceNormalMap||s.clearcoatNormalMap||s.flatShading||s.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(s.extensionFragDepth||s.logarithmicDepthBuffer)&&s.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",s.extensionDrawBuffers&&s.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(s.extensionShaderTextureLOD||s.envMap||s.transmission)&&s.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(ci).join(` +`)}function Fu(s){const e=[];for(const t in s){const n=s[t];n!==!1&&e.push("#define "+t+" "+n)}return e.join(` +`)}function Bu(s,e){const t={},n=s.getProgramParameter(e,35721);for(let i=0;i<n;i++){const r=s.getActiveAttrib(e,i),a=r.name;let o=1;r.type===35674&&(o=2),r.type===35675&&(o=3),r.type===35676&&(o=4),t[a]={type:r.type,location:s.getAttribLocation(e,a),locationSize:o}}return t}function ci(s){return s!==""}function ta(s,e){return s.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).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/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function na(s,e){return s.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const Nu=/^[ \t]*#include +<([\w\d./]+)>/gm;function jr(s){return s.replace(Nu,zu)}function zu(s,e){const t=Pe[e];if(t===void 0)throw new Error("Can not resolve #include <"+e+">");return jr(t)}const Uu=/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,Ou=/#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 ia(s){return s.replace(Ou,$a).replace(Uu,Gu)}function Gu(s,e,t,n){return console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead."),$a(s,e,t,n)}function $a(s,e,t,n){let i="";for(let r=parseInt(e);r<parseInt(t);r++)i+=n.replace(/\[\s*i\s*\]/g,"[ "+r+" ]").replace(/UNROLLED_LOOP_INDEX/g,r);return i}function ra(s){let e="precision "+s.precision+` float; +precision `+s.precision+" int;";return s.precision==="highp"?e+=` +#define HIGH_PRECISION`:s.precision==="mediump"?e+=` +#define MEDIUM_PRECISION`:s.precision==="lowp"&&(e+=` +#define LOW_PRECISION`),e}function Vu(s){let e="SHADOWMAP_TYPE_BASIC";return s.shadowMapType===1?e="SHADOWMAP_TYPE_PCF":s.shadowMapType===2?e="SHADOWMAP_TYPE_PCF_SOFT":s.shadowMapType===3&&(e="SHADOWMAP_TYPE_VSM"),e}function Hu(s){let e="ENVMAP_TYPE_CUBE";if(s.envMap)switch(s.envMapMode){case 301:case 302:e="ENVMAP_TYPE_CUBE";break;case 306:case 307:e="ENVMAP_TYPE_CUBE_UV";break}return e}function ku(s){let e="ENVMAP_MODE_REFLECTION";if(s.envMap)switch(s.envMapMode){case 302:case 307:e="ENVMAP_MODE_REFRACTION";break}return e}function Wu(s){let e="ENVMAP_BLENDING_NONE";if(s.envMap)switch(s.combine){case 0:e="ENVMAP_BLENDING_MULTIPLY";break;case 1:e="ENVMAP_BLENDING_MIX";break;case 2:e="ENVMAP_BLENDING_ADD";break}return e}function qu(s,e,t,n){const i=s.getContext(),r=t.defines;let a=t.vertexShader,o=t.fragmentShader;const c=Vu(t),l=Hu(t),h=ku(t),u=Wu(t),d=t.isWebGL2?"":Iu(t),p=Fu(r),g=i.createProgram();let _,M,m=t.glslVersion?"#version "+t.glslVersion+` +`:"";t.isRawShaderMaterial?(_=[p].filter(ci).join(` +`),_.length>0&&(_+=` +`),M=[d,p].filter(ci).join(` +`),M.length>0&&(M+=` +`)):(_=[ra(t),"#define SHADER_NAME "+t.shaderName,p,t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define MAX_BONES "+t.maxBones,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+h:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMap&&t.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",t.normalMap&&t.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.displacementMap&&t.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",t.specularColorMap?"#define USE_SPECULARCOLORMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEENCOLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",t.vertexTangents?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUvs?"#define USE_UV":"",t.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.useVertexTexture?"#define BONE_TEXTURE":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphTargets&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",t.morphTargets&&t.isWebGL2?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` +`].filter(ci).join(` +`),M=[d,ra(t),"#define SHADER_NAME "+t.shaderName,p,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+l:"",t.envMap?"#define "+h:"",t.envMap?"#define "+u:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMap&&t.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",t.normalMap&&t.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",t.specularColorMap?"#define USE_SPECULARCOLORMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEENCOLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.vertexTangents?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUvs?"#define USE_UV":"",t.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"",(t.extensionShaderTextureLOD||t.envMap)&&t.rendererExtensionShaderTextureLod?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==0?"#define TONE_MAPPING":"",t.toneMapping!==0?Pe.tonemapping_pars_fragment:"",t.toneMapping!==0?Du("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.transparent?"":"#define OPAQUE",Pe.encodings_pars_fragment,Pu("linearToOutputTexel",t.outputEncoding),t.depthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",` +`].filter(ci).join(` +`)),a=jr(a),a=ta(a,t),a=na(a,t),o=jr(o),o=ta(o,t),o=na(o,t),a=ia(a),o=ia(o),t.isWebGL2&&t.isRawShaderMaterial!==!0&&(m=`#version 300 es +`,_=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(` +`)+` +`+_,M=["#define varying in",t.glslVersion===Es?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===Es?"":"#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(` +`)+` +`+M);const f=m+_+a,E=m+M+o,y=Qs(i,35633,f),T=Qs(i,35632,E);if(i.attachShader(g,y),i.attachShader(g,T),t.index0AttributeName!==void 0?i.bindAttribLocation(g,0,t.index0AttributeName):t.morphTargets===!0&&i.bindAttribLocation(g,0,"position"),i.linkProgram(g),s.debug.checkShaderErrors){const Y=i.getProgramInfoLog(g).trim(),se=i.getShaderInfoLog(y).trim(),Z=i.getShaderInfoLog(T).trim();let x=!0,R=!0;if(i.getProgramParameter(g,35714)===!1){x=!1;const D=ea(i,y,"vertex"),B=ea(i,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+i.getError()+" - VALIDATE_STATUS "+i.getProgramParameter(g,35715)+` + +Program Info Log: `+Y+` +`+D+` +`+B)}else Y!==""?console.warn("THREE.WebGLProgram: Program Info Log:",Y):(se===""||Z==="")&&(R=!1);R&&(this.diagnostics={runnable:x,programLog:Y,vertexShader:{log:se,prefix:_},fragmentShader:{log:Z,prefix:M}})}i.deleteShader(y),i.deleteShader(T);let C;this.getUniforms=function(){return C===void 0&&(C=new nn(i,g)),C};let L;return this.getAttributes=function(){return L===void 0&&(L=Bu(i,g)),L},this.destroy=function(){n.releaseStatesOfProgram(this),i.deleteProgram(g),this.program=void 0},this.name=t.shaderName,this.id=Ru++,this.cacheKey=e,this.usedTimes=1,this.program=g,this.vertexShader=y,this.fragmentShader=T,this}let Xu=0;class Yu{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const t=e.vertexShader,n=e.fragmentShader,i=this._getShaderStage(t),r=this._getShaderStage(n),a=this._getShaderCacheForMaterial(e);return a.has(i)===!1&&(a.add(i),i.usedTimes++),a.has(r)===!1&&(a.add(r),r.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const n of t)n.usedTimes--,n.usedTimes===0&&this.shaderCache.delete(n);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;return t.has(e)===!1&&t.set(e,new Set),t.get(e)}_getShaderStage(e){const t=this.shaderCache;if(t.has(e)===!1){const n=new Zu;t.set(e,n)}return t.get(e)}}class Zu{constructor(){this.id=Xu++,this.usedTimes=0}}function ju(s,e,t,n,i,r,a){const o=new ss,c=new Yu,l=[],h=i.isWebGL2,u=i.logarithmicDepthBuffer,d=i.floatVertexTextures,p=i.maxVertexUniforms,g=i.vertexTextures;let _=i.precision;const M={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(x){const D=x.skeleton.bones;if(d)return 1024;{const N=Math.floor((p-20)/4),I=Math.min(N,D.length);return I<D.length?(console.warn("THREE.WebGLRenderer: Skeleton has "+D.length+" bones. This GPU supports "+I+"."),0):I}}function f(x,R,D,B,N){const I=B.fog,V=x.isMeshStandardMaterial?B.environment:null,j=(x.isMeshStandardMaterial?t:e).get(x.envMap||V),ce=M[x.type],O=N.isSkinnedMesh?m(N):0;x.precision!==null&&(_=i.getMaxPrecision(x.precision),_!==x.precision&&console.warn("THREE.WebGLProgram.getParameters:",x.precision,"not supported, using",_,"instead."));let X,ne,ue,ge;if(ce){const oe=It[ce];X=oe.vertexShader,ne=oe.fragmentShader}else X=x.vertexShader,ne=x.fragmentShader,c.update(x),ue=c.getVertexShaderID(x),ge=c.getFragmentShaderID(x);const U=s.getRenderTarget(),Ne=x.alphaTest>0,fe=x.clearcoat>0;return{isWebGL2:h,shaderID:ce,shaderName:x.type,vertexShader:X,fragmentShader:ne,defines:x.defines,customVertexShaderID:ue,customFragmentShaderID:ge,isRawShaderMaterial:x.isRawShaderMaterial===!0,glslVersion:x.glslVersion,precision:_,instancing:N.isInstancedMesh===!0,instancingColor:N.isInstancedMesh===!0&&N.instanceColor!==null,supportsVertexTextures:g,outputEncoding:U===null?s.outputEncoding:U.isXRRenderTarget===!0?U.texture.encoding:3e3,map:!!x.map,matcap:!!x.matcap,envMap:!!j,envMapMode:j&&j.mapping,envMapCubeUV:!!j&&(j.mapping===306||j.mapping===307),lightMap:!!x.lightMap,aoMap:!!x.aoMap,emissiveMap:!!x.emissiveMap,bumpMap:!!x.bumpMap,normalMap:!!x.normalMap,objectSpaceNormalMap:x.normalMapType===1,tangentSpaceNormalMap:x.normalMapType===0,decodeVideoTexture:!!x.map&&x.map.isVideoTexture===!0&&x.map.encoding===3001,clearcoat:fe,clearcoatMap:fe&&!!x.clearcoatMap,clearcoatRoughnessMap:fe&&!!x.clearcoatRoughnessMap,clearcoatNormalMap:fe&&!!x.clearcoatNormalMap,displacementMap:!!x.displacementMap,roughnessMap:!!x.roughnessMap,metalnessMap:!!x.metalnessMap,specularMap:!!x.specularMap,specularIntensityMap:!!x.specularIntensityMap,specularColorMap:!!x.specularColorMap,transparent:x.transparent,alphaMap:!!x.alphaMap,alphaTest:Ne,gradientMap:!!x.gradientMap,sheen:x.sheen>0,sheenColorMap:!!x.sheenColorMap,sheenRoughnessMap:!!x.sheenRoughnessMap,transmission:x.transmission>0,transmissionMap:!!x.transmissionMap,thicknessMap:!!x.thicknessMap,combine:x.combine,vertexTangents:!!x.normalMap&&!!N.geometry&&!!N.geometry.attributes.tangent,vertexColors:x.vertexColors,vertexAlphas:x.vertexColors===!0&&!!N.geometry&&!!N.geometry.attributes.color&&N.geometry.attributes.color.itemSize===4,vertexUvs:!!x.map||!!x.bumpMap||!!x.normalMap||!!x.specularMap||!!x.alphaMap||!!x.emissiveMap||!!x.roughnessMap||!!x.metalnessMap||!!x.clearcoatMap||!!x.clearcoatRoughnessMap||!!x.clearcoatNormalMap||!!x.displacementMap||!!x.transmissionMap||!!x.thicknessMap||!!x.specularIntensityMap||!!x.specularColorMap||!!x.sheenColorMap||!!x.sheenRoughnessMap,uvsVertexOnly:!(!!x.map||!!x.bumpMap||!!x.normalMap||!!x.specularMap||!!x.alphaMap||!!x.emissiveMap||!!x.roughnessMap||!!x.metalnessMap||!!x.clearcoatNormalMap||x.transmission>0||!!x.transmissionMap||!!x.thicknessMap||!!x.specularIntensityMap||!!x.specularColorMap||x.sheen>0||!!x.sheenColorMap||!!x.sheenRoughnessMap)&&!!x.displacementMap,fog:!!I,useFog:x.fog,fogExp2:I&&I.isFogExp2,flatShading:!!x.flatShading,sizeAttenuation:x.sizeAttenuation,logarithmicDepthBuffer:u,skinning:N.isSkinnedMesh===!0&&O>0,maxBones:O,useVertexTexture:d,morphTargets:!!N.geometry&&!!N.geometry.morphAttributes.position,morphNormals:!!N.geometry&&!!N.geometry.morphAttributes.normal,morphTargetsCount:!!N.geometry&&!!N.geometry.morphAttributes.position?N.geometry.morphAttributes.position.length:0,numDirLights:R.directional.length,numPointLights:R.point.length,numSpotLights:R.spot.length,numRectAreaLights:R.rectArea.length,numHemiLights:R.hemi.length,numDirLightShadows:R.directionalShadowMap.length,numPointLightShadows:R.pointShadowMap.length,numSpotLightShadows:R.spotShadowMap.length,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:x.dithering,shadowMapEnabled:s.shadowMap.enabled&&D.length>0,shadowMapType:s.shadowMap.type,toneMapping:x.toneMapped?s.toneMapping:0,physicallyCorrectLights:s.physicallyCorrectLights,premultipliedAlpha:x.premultipliedAlpha,doubleSided:x.side===2,flipSided:x.side===1,depthPacking:x.depthPacking!==void 0?x.depthPacking:!1,index0AttributeName:x.index0AttributeName,extensionDerivatives:x.extensions&&x.extensions.derivatives,extensionFragDepth:x.extensions&&x.extensions.fragDepth,extensionDrawBuffers:x.extensions&&x.extensions.drawBuffers,extensionShaderTextureLOD:x.extensions&&x.extensions.shaderTextureLOD,rendererExtensionFragDepth:h||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||n.has("EXT_shader_texture_lod"),customProgramCacheKey:x.customProgramCacheKey()}}function E(x){const R=[];if(x.shaderID?R.push(x.shaderID):(R.push(x.customVertexShaderID),R.push(x.customFragmentShaderID)),x.defines!==void 0)for(const D in x.defines)R.push(D),R.push(x.defines[D]);return x.isRawShaderMaterial===!1&&(y(R,x),T(R,x),R.push(s.outputEncoding)),R.push(x.customProgramCacheKey),R.join()}function y(x,R){x.push(R.precision),x.push(R.outputEncoding),x.push(R.envMapMode),x.push(R.combine),x.push(R.vertexUvs),x.push(R.fogExp2),x.push(R.sizeAttenuation),x.push(R.maxBones),x.push(R.morphTargetsCount),x.push(R.numDirLights),x.push(R.numPointLights),x.push(R.numSpotLights),x.push(R.numHemiLights),x.push(R.numRectAreaLights),x.push(R.numDirLightShadows),x.push(R.numPointLightShadows),x.push(R.numSpotLightShadows),x.push(R.shadowMapType),x.push(R.toneMapping),x.push(R.numClippingPlanes),x.push(R.numClipIntersection)}function T(x,R){o.disableAll(),R.isWebGL2&&o.enable(0),R.supportsVertexTextures&&o.enable(1),R.instancing&&o.enable(2),R.instancingColor&&o.enable(3),R.map&&o.enable(4),R.matcap&&o.enable(5),R.envMap&&o.enable(6),R.envMapCubeUV&&o.enable(7),R.lightMap&&o.enable(8),R.aoMap&&o.enable(9),R.emissiveMap&&o.enable(10),R.bumpMap&&o.enable(11),R.normalMap&&o.enable(12),R.objectSpaceNormalMap&&o.enable(13),R.tangentSpaceNormalMap&&o.enable(14),R.clearcoat&&o.enable(15),R.clearcoatMap&&o.enable(16),R.clearcoatRoughnessMap&&o.enable(17),R.clearcoatNormalMap&&o.enable(18),R.displacementMap&&o.enable(19),R.specularMap&&o.enable(20),R.roughnessMap&&o.enable(21),R.metalnessMap&&o.enable(22),R.gradientMap&&o.enable(23),R.alphaMap&&o.enable(24),R.alphaTest&&o.enable(25),R.vertexColors&&o.enable(26),R.vertexAlphas&&o.enable(27),R.vertexUvs&&o.enable(28),R.vertexTangents&&o.enable(29),R.uvsVertexOnly&&o.enable(30),R.fog&&o.enable(31),x.push(o.mask),o.disableAll(),R.useFog&&o.enable(0),R.flatShading&&o.enable(1),R.logarithmicDepthBuffer&&o.enable(2),R.skinning&&o.enable(3),R.useVertexTexture&&o.enable(4),R.morphTargets&&o.enable(5),R.morphNormals&&o.enable(6),R.premultipliedAlpha&&o.enable(7),R.shadowMapEnabled&&o.enable(8),R.physicallyCorrectLights&&o.enable(9),R.doubleSided&&o.enable(10),R.flipSided&&o.enable(11),R.depthPacking&&o.enable(12),R.dithering&&o.enable(13),R.specularIntensityMap&&o.enable(14),R.specularColorMap&&o.enable(15),R.transmission&&o.enable(16),R.transmissionMap&&o.enable(17),R.thicknessMap&&o.enable(18),R.sheen&&o.enable(19),R.sheenColorMap&&o.enable(20),R.sheenRoughnessMap&&o.enable(21),R.decodeVideoTexture&&o.enable(22),R.transparent&&o.enable(23),x.push(o.mask)}function C(x){const R=M[x.type];let D;if(R){const B=It[R];D=qo.clone(B.uniforms)}else D=x.uniforms;return D}function L(x,R){let D;for(let B=0,N=l.length;B<N;B++){const I=l[B];if(I.cacheKey===R){D=I,++D.usedTimes;break}}return D===void 0&&(D=new qu(s,R,x,r),l.push(D)),D}function Y(x){if(--x.usedTimes===0){const R=l.indexOf(x);l[R]=l[l.length-1],l.pop(),x.destroy()}}function se(x){c.remove(x)}function Z(){c.dispose()}return{getParameters:f,getProgramCacheKey:E,getUniforms:C,acquireProgram:L,releaseProgram:Y,releaseShaderCache:se,programs:l,dispose:Z}}function Ju(){let s=new WeakMap;function e(r){let a=s.get(r);return a===void 0&&(a={},s.set(r,a)),a}function t(r){s.delete(r)}function n(r,a,o){s.get(r)[a]=o}function i(){s=new WeakMap}return{get:e,remove:t,update:n,dispose:i}}function $u(s,e){return s.groupOrder!==e.groupOrder?s.groupOrder-e.groupOrder:s.renderOrder!==e.renderOrder?s.renderOrder-e.renderOrder:s.material.id!==e.material.id?s.material.id-e.material.id:s.z!==e.z?s.z-e.z:s.id-e.id}function sa(s,e){return s.groupOrder!==e.groupOrder?s.groupOrder-e.groupOrder:s.renderOrder!==e.renderOrder?s.renderOrder-e.renderOrder:s.z!==e.z?e.z-s.z:s.id-e.id}function aa(){const s=[];let e=0;const t=[],n=[],i=[];function r(){e=0,t.length=0,n.length=0,i.length=0}function a(u,d,p,g,_,M){let m=s[e];return m===void 0?(m={id:u.id,object:u,geometry:d,material:p,groupOrder:g,renderOrder:u.renderOrder,z:_,group:M},s[e]=m):(m.id=u.id,m.object=u,m.geometry=d,m.material=p,m.groupOrder=g,m.renderOrder=u.renderOrder,m.z=_,m.group=M),e++,m}function o(u,d,p,g,_,M){const m=a(u,d,p,g,_,M);p.transmission>0?n.push(m):p.transparent===!0?i.push(m):t.push(m)}function c(u,d,p,g,_,M){const m=a(u,d,p,g,_,M);p.transmission>0?n.unshift(m):p.transparent===!0?i.unshift(m):t.unshift(m)}function l(u,d){t.length>1&&t.sort(u||$u),n.length>1&&n.sort(d||sa),i.length>1&&i.sort(d||sa)}function h(){for(let u=e,d=s.length;u<d;u++){const p=s[u];if(p.id===null)break;p.id=null,p.object=null,p.geometry=null,p.material=null,p.group=null}}return{opaque:t,transmissive:n,transparent:i,init:r,push:o,unshift:c,finish:h,sort:l}}function Ku(){let s=new WeakMap;function e(n,i){let r;return s.has(n)===!1?(r=new aa,s.set(n,[r])):i>=s.get(n).length?(r=new aa,s.get(n).push(r)):r=s.get(n)[i],r}function t(){s=new WeakMap}return{get:e,dispose:t}}function Qu(){const s={};return{get:function(e){if(s[e.id]!==void 0)return s[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new w,color:new me};break;case"SpotLight":t={position:new w,direction:new w,color:new me,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new w,color:new me,distance:0,decay:0};break;case"HemisphereLight":t={direction:new w,skyColor:new me,groundColor:new me};break;case"RectAreaLight":t={color:new me,position:new w,halfWidth:new w,halfHeight:new w};break}return s[e.id]=t,t}}}function ed(){const s={};return{get:function(e){if(s[e.id]!==void 0)return s[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new J};break;case"SpotLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new J};break;case"PointLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new J,shadowCameraNear:1,shadowCameraFar:1e3};break}return s[e.id]=t,t}}}let td=0;function nd(s,e){return(e.castShadow?1:0)-(s.castShadow?1:0)}function id(s,e){const t=new Qu,n=ed(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let h=0;h<9;h++)i.probe.push(new w);const r=new w,a=new ve,o=new ve;function c(h,u){let d=0,p=0,g=0;for(let se=0;se<9;se++)i.probe[se].set(0,0,0);let _=0,M=0,m=0,f=0,E=0,y=0,T=0,C=0;h.sort(nd);const L=u!==!0?Math.PI:1;for(let se=0,Z=h.length;se<Z;se++){const x=h[se],R=x.color,D=x.intensity,B=x.distance,N=x.shadow&&x.shadow.map?x.shadow.map.texture:null;if(x.isAmbientLight)d+=R.r*D*L,p+=R.g*D*L,g+=R.b*D*L;else if(x.isLightProbe)for(let I=0;I<9;I++)i.probe[I].addScaledVector(x.sh.coefficients[I],D);else if(x.isDirectionalLight){const I=t.get(x);if(I.color.copy(x.color).multiplyScalar(x.intensity*L),x.castShadow){const V=x.shadow,j=n.get(x);j.shadowBias=V.bias,j.shadowNormalBias=V.normalBias,j.shadowRadius=V.radius,j.shadowMapSize=V.mapSize,i.directionalShadow[_]=j,i.directionalShadowMap[_]=N,i.directionalShadowMatrix[_]=x.shadow.matrix,y++}i.directional[_]=I,_++}else if(x.isSpotLight){const I=t.get(x);if(I.position.setFromMatrixPosition(x.matrixWorld),I.color.copy(R).multiplyScalar(D*L),I.distance=B,I.coneCos=Math.cos(x.angle),I.penumbraCos=Math.cos(x.angle*(1-x.penumbra)),I.decay=x.decay,x.castShadow){const V=x.shadow,j=n.get(x);j.shadowBias=V.bias,j.shadowNormalBias=V.normalBias,j.shadowRadius=V.radius,j.shadowMapSize=V.mapSize,i.spotShadow[m]=j,i.spotShadowMap[m]=N,i.spotShadowMatrix[m]=x.shadow.matrix,C++}i.spot[m]=I,m++}else if(x.isRectAreaLight){const I=t.get(x);I.color.copy(R).multiplyScalar(D),I.halfWidth.set(x.width*.5,0,0),I.halfHeight.set(0,x.height*.5,0),i.rectArea[f]=I,f++}else if(x.isPointLight){const I=t.get(x);if(I.color.copy(x.color).multiplyScalar(x.intensity*L),I.distance=x.distance,I.decay=x.decay,x.castShadow){const V=x.shadow,j=n.get(x);j.shadowBias=V.bias,j.shadowNormalBias=V.normalBias,j.shadowRadius=V.radius,j.shadowMapSize=V.mapSize,j.shadowCameraNear=V.camera.near,j.shadowCameraFar=V.camera.far,i.pointShadow[M]=j,i.pointShadowMap[M]=N,i.pointShadowMatrix[M]=x.shadow.matrix,T++}i.point[M]=I,M++}else if(x.isHemisphereLight){const I=t.get(x);I.skyColor.copy(x.color).multiplyScalar(D*L),I.groundColor.copy(x.groundColor).multiplyScalar(D*L),i.hemi[E]=I,E++}}f>0&&(e.isWebGL2||s.has("OES_texture_float_linear")===!0?(i.rectAreaLTC1=ee.LTC_FLOAT_1,i.rectAreaLTC2=ee.LTC_FLOAT_2):s.has("OES_texture_half_float_linear")===!0?(i.rectAreaLTC1=ee.LTC_HALF_1,i.rectAreaLTC2=ee.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),i.ambient[0]=d,i.ambient[1]=p,i.ambient[2]=g;const Y=i.hash;(Y.directionalLength!==_||Y.pointLength!==M||Y.spotLength!==m||Y.rectAreaLength!==f||Y.hemiLength!==E||Y.numDirectionalShadows!==y||Y.numPointShadows!==T||Y.numSpotShadows!==C)&&(i.directional.length=_,i.spot.length=m,i.rectArea.length=f,i.point.length=M,i.hemi.length=E,i.directionalShadow.length=y,i.directionalShadowMap.length=y,i.pointShadow.length=T,i.pointShadowMap.length=T,i.spotShadow.length=C,i.spotShadowMap.length=C,i.directionalShadowMatrix.length=y,i.pointShadowMatrix.length=T,i.spotShadowMatrix.length=C,Y.directionalLength=_,Y.pointLength=M,Y.spotLength=m,Y.rectAreaLength=f,Y.hemiLength=E,Y.numDirectionalShadows=y,Y.numPointShadows=T,Y.numSpotShadows=C,i.version=td++)}function l(h,u){let d=0,p=0,g=0,_=0,M=0;const m=u.matrixWorldInverse;for(let f=0,E=h.length;f<E;f++){const y=h[f];if(y.isDirectionalLight){const T=i.directional[d];T.direction.setFromMatrixPosition(y.matrixWorld),r.setFromMatrixPosition(y.target.matrixWorld),T.direction.sub(r),T.direction.transformDirection(m),d++}else if(y.isSpotLight){const T=i.spot[g];T.position.setFromMatrixPosition(y.matrixWorld),T.position.applyMatrix4(m),T.direction.setFromMatrixPosition(y.matrixWorld),r.setFromMatrixPosition(y.target.matrixWorld),T.direction.sub(r),T.direction.transformDirection(m),g++}else if(y.isRectAreaLight){const T=i.rectArea[_];T.position.setFromMatrixPosition(y.matrixWorld),T.position.applyMatrix4(m),o.identity(),a.copy(y.matrixWorld),a.premultiply(m),o.extractRotation(a),T.halfWidth.set(y.width*.5,0,0),T.halfHeight.set(0,y.height*.5,0),T.halfWidth.applyMatrix4(o),T.halfHeight.applyMatrix4(o),_++}else if(y.isPointLight){const T=i.point[p];T.position.setFromMatrixPosition(y.matrixWorld),T.position.applyMatrix4(m),p++}else if(y.isHemisphereLight){const T=i.hemi[M];T.direction.setFromMatrixPosition(y.matrixWorld),T.direction.transformDirection(m),T.direction.normalize(),M++}}}return{setup:c,setupView:l,state:i}}function oa(s,e){const t=new id(s,e),n=[],i=[];function r(){n.length=0,i.length=0}function a(u){n.push(u)}function o(u){i.push(u)}function c(u){t.setup(n,u)}function l(u){t.setupView(n,u)}return{init:r,state:{lightsArray:n,shadowsArray:i,lights:t},setupLights:c,setupLightsView:l,pushLight:a,pushShadow:o}}function rd(s,e){let t=new WeakMap;function n(r,a=0){let o;return t.has(r)===!1?(o=new oa(s,e),t.set(r,[o])):a>=t.get(r).length?(o=new oa(s,e),t.get(r).push(o)):o=t.get(r)[a],o}function i(){t=new WeakMap}return{get:n,dispose:i}}class Ka extends ut{constructor(e){super();this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}Ka.prototype.isMeshDepthMaterial=!0;class Qa extends ut{constructor(e){super();this.type="MeshDistanceMaterial",this.referencePosition=new w,this.nearDistance=1,this.farDistance=1e3,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(e)}copy(e){return super.copy(e),this.referencePosition.copy(e.referencePosition),this.nearDistance=e.nearDistance,this.farDistance=e.farDistance,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}Qa.prototype.isMeshDistanceMaterial=!0;const sd=`void main() { + gl_Position = vec4( position, 1.0 ); +}`,ad=`uniform sampler2D shadow_pass; +uniform vec2 resolution; +uniform float radius; +#include <packing> +void main() { + const float samples = float( VSM_SAMPLES ); + float mean = 0.0; + float squared_mean = 0.0; + float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); + float uvStart = samples <= 1.0 ? 0.0 : - 1.0; + for ( float i = 0.0; i < samples; i ++ ) { + float uvOffset = uvStart + i * uvStride; + #ifdef HORIZONTAL_PASS + vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); + mean += distribution.x; + squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; + #else + float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); + mean += depth; + squared_mean += depth * depth; + #endif + } + mean = mean / samples; + squared_mean = squared_mean / samples; + float std_dev = sqrt( squared_mean - mean * mean ); + gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); +}`;function eo(s,e,t){let n=new ar;const i=new J,r=new J,a=new ke,o=new Ka({depthPacking:3201}),c=new Qa,l={},h=t.maxTextureSize,u={0:1,1:0,2:2},d=new _n({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new J},radius:{value:4}},vertexShader:sd,fragmentShader:ad}),p=d.clone();p.defines.HORIZONTAL_PASS=1;const g=new Ye;g.setAttribute("position",new tt(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const _=new mt(g,d),M=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1,this.render=function(y,T,C){if(M.enabled===!1||M.autoUpdate===!1&&M.needsUpdate===!1||y.length===0)return;const L=s.getRenderTarget(),Y=s.getActiveCubeFace(),se=s.getActiveMipmapLevel(),Z=s.state;Z.setBlending(0),Z.buffers.color.setClear(1,1,1,1),Z.buffers.depth.setTest(!0),Z.setScissorTest(!1);for(let x=0,R=y.length;x<R;x++){const D=y[x],B=D.shadow;if(B===void 0){console.warn("THREE.WebGLShadowMap:",D,"has no shadow.");continue}if(B.autoUpdate===!1&&B.needsUpdate===!1)continue;i.copy(B.mapSize);const N=B.getFrameExtents();if(i.multiply(N),r.copy(B.mapSize),(i.x>h||i.y>h)&&(i.x>h&&(r.x=Math.floor(h/N.x),i.x=r.x*N.x,B.mapSize.x=r.x),i.y>h&&(r.y=Math.floor(h/N.y),i.y=r.y*N.y,B.mapSize.y=r.y)),B.map===null&&!B.isPointLightShadow&&this.type===3){const V={minFilter:1006,magFilter:1006,format:1023};B.map=new Mt(i.x,i.y,V),B.map.texture.name=D.name+".shadowMap",B.mapPass=new Mt(i.x,i.y,V),B.camera.updateProjectionMatrix()}if(B.map===null){const V={minFilter:1003,magFilter:1003,format:1023};B.map=new Mt(i.x,i.y,V),B.map.texture.name=D.name+".shadowMap",B.camera.updateProjectionMatrix()}s.setRenderTarget(B.map),s.clear();const I=B.getViewportCount();for(let V=0;V<I;V++){const j=B.getViewport(V);a.set(r.x*j.x,r.y*j.y,r.x*j.z,r.y*j.w),Z.viewport(a),B.updateMatrices(D,V),n=B.getFrustum(),E(T,C,B.camera,D,this.type)}!B.isPointLightShadow&&this.type===3&&m(B,C),B.needsUpdate=!1}M.needsUpdate=!1,s.setRenderTarget(L,Y,se)};function m(y,T){const C=e.update(_);d.defines.VSM_SAMPLES!==y.blurSamples&&(d.defines.VSM_SAMPLES=y.blurSamples,p.defines.VSM_SAMPLES=y.blurSamples,d.needsUpdate=!0,p.needsUpdate=!0),d.uniforms.shadow_pass.value=y.map.texture,d.uniforms.resolution.value=y.mapSize,d.uniforms.radius.value=y.radius,s.setRenderTarget(y.mapPass),s.clear(),s.renderBufferDirect(T,null,C,d,_,null),p.uniforms.shadow_pass.value=y.mapPass.texture,p.uniforms.resolution.value=y.mapSize,p.uniforms.radius.value=y.radius,s.setRenderTarget(y.map),s.clear(),s.renderBufferDirect(T,null,C,p,_,null)}function f(y,T,C,L,Y,se,Z){let x=null;const R=L.isPointLight===!0?y.customDistanceMaterial:y.customDepthMaterial;if(R!==void 0?x=R:x=L.isPointLight===!0?c:o,s.localClippingEnabled&&C.clipShadows===!0&&C.clippingPlanes.length!==0||C.displacementMap&&C.displacementScale!==0||C.alphaMap&&C.alphaTest>0){const D=x.uuid,B=C.uuid;let N=l[D];N===void 0&&(N={},l[D]=N);let I=N[B];I===void 0&&(I=x.clone(),N[B]=I),x=I}return x.visible=C.visible,x.wireframe=C.wireframe,Z===3?x.side=C.shadowSide!==null?C.shadowSide:C.side:x.side=C.shadowSide!==null?C.shadowSide:u[C.side],x.alphaMap=C.alphaMap,x.alphaTest=C.alphaTest,x.clipShadows=C.clipShadows,x.clippingPlanes=C.clippingPlanes,x.clipIntersection=C.clipIntersection,x.displacementMap=C.displacementMap,x.displacementScale=C.displacementScale,x.displacementBias=C.displacementBias,x.wireframeLinewidth=C.wireframeLinewidth,x.linewidth=C.linewidth,L.isPointLight===!0&&x.isMeshDistanceMaterial===!0&&(x.referencePosition.setFromMatrixPosition(L.matrixWorld),x.nearDistance=Y,x.farDistance=se),x}function E(y,T,C,L,Y){if(y.visible===!1)return;if(y.layers.test(T.layers)&&(y.isMesh||y.isLine||y.isPoints)&&(y.castShadow||y.receiveShadow&&Y===3)&&(!y.frustumCulled||n.intersectsObject(y))){y.modelViewMatrix.multiplyMatrices(C.matrixWorldInverse,y.matrixWorld);const x=e.update(y),R=y.material;if(Array.isArray(R)){const D=x.groups;for(let B=0,N=D.length;B<N;B++){const I=D[B],V=R[I.materialIndex];if(V&&V.visible){const j=f(y,x,V,L,C.near,C.far,Y);s.renderBufferDirect(C,null,x,j,y,I)}}}else if(R.visible){const D=f(y,x,R,L,C.near,C.far,Y);s.renderBufferDirect(C,null,x,D,y,null)}}const Z=y.children;for(let x=0,R=Z.length;x<R;x++)E(Z[x],T,C,L,Y)}}function od(s,e,t){const n=t.isWebGL2;function i(){let A=!1;const he=new ke;let ae=null;const Me=new ke(0,0,0,0);return{setMask:function(W){ae!==W&&!A&&(s.colorMask(W,W,W,W),ae=W)},setLocked:function(W){A=W},setClear:function(W,xe,De,Ze,gt){gt===!0&&(W*=Ze,xe*=Ze,De*=Ze),he.set(W,xe,De,Ze),Me.equals(he)===!1&&(s.clearColor(W,xe,De,Ze),Me.copy(he))},reset:function(){A=!1,ae=null,Me.set(-1,0,0,0)}}}function r(){let A=!1,he=null,ae=null,Me=null;return{setTest:function(W){W?U(2929):Ne(2929)},setMask:function(W){he!==W&&!A&&(s.depthMask(W),he=W)},setFunc:function(W){if(ae!==W){if(W)switch(W){case 0:s.depthFunc(512);break;case 1:s.depthFunc(519);break;case 2:s.depthFunc(513);break;case 3:s.depthFunc(515);break;case 4:s.depthFunc(514);break;case 5:s.depthFunc(518);break;case 6:s.depthFunc(516);break;case 7:s.depthFunc(517);break;default:s.depthFunc(515)}else s.depthFunc(515);ae=W}},setLocked:function(W){A=W},setClear:function(W){Me!==W&&(s.clearDepth(W),Me=W)},reset:function(){A=!1,he=null,ae=null,Me=null}}}function a(){let A=!1,he=null,ae=null,Me=null,W=null,xe=null,De=null,Ze=null,gt=null;return{setTest:function(Je){A||(Je?U(2960):Ne(2960))},setMask:function(Je){he!==Je&&!A&&(s.stencilMask(Je),he=Je)},setFunc:function(Je,Rt,zt){(ae!==Je||Me!==Rt||W!==zt)&&(s.stencilFunc(Je,Rt,zt),ae=Je,Me=Rt,W=zt)},setOp:function(Je,Rt,zt){(xe!==Je||De!==Rt||Ze!==zt)&&(s.stencilOp(Je,Rt,zt),xe=Je,De=Rt,Ze=zt)},setLocked:function(Je){A=Je},setClear:function(Je){gt!==Je&&(s.clearStencil(Je),gt=Je)},reset:function(){A=!1,he=null,ae=null,Me=null,W=null,xe=null,De=null,Ze=null,gt=null}}}const o=new i,c=new r,l=new a;let h={},u={},d=new WeakMap,p=[],g=null,_=!1,M=null,m=null,f=null,E=null,y=null,T=null,C=null,L=!1,Y=null,se=null,Z=null,x=null,R=null;const D=s.getParameter(35661);let B=!1,N=0;const I=s.getParameter(7938);I.indexOf("WebGL")!==-1?(N=parseFloat(/^WebGL (\d)/.exec(I)[1]),B=N>=1):I.indexOf("OpenGL ES")!==-1&&(N=parseFloat(/^OpenGL ES (\d)/.exec(I)[1]),B=N>=2);let V=null,j={};const ce=s.getParameter(3088),O=s.getParameter(2978),X=new ke().fromArray(ce),ne=new ke().fromArray(O);function ue(A,he,ae){const Me=new Uint8Array(4),W=s.createTexture();s.bindTexture(A,W),s.texParameteri(A,10241,9728),s.texParameteri(A,10240,9728);for(let xe=0;xe<ae;xe++)s.texImage2D(he+xe,0,6408,1,1,0,6408,5121,Me);return W}const ge={};ge[3553]=ue(3553,3553,1),ge[34067]=ue(34067,34069,6),o.setClear(0,0,0,1),c.setClear(1),l.setClear(0),U(2929),c.setFunc(3),$(!1),le(1),U(2884),k(0);function U(A){h[A]!==!0&&(s.enable(A),h[A]=!0)}function Ne(A){h[A]!==!1&&(s.disable(A),h[A]=!1)}function fe(A,he){return u[A]!==he?(s.bindFramebuffer(A,he),u[A]=he,n&&(A===36009&&(u[36160]=he),A===36160&&(u[36009]=he)),!0):!1}function Se(A,he){let ae=p,Me=!1;if(A)if(ae=d.get(he),ae===void 0&&(ae=[],d.set(he,ae)),A.isWebGLMultipleRenderTargets){const W=A.texture;if(ae.length!==W.length||ae[0]!==36064){for(let xe=0,De=W.length;xe<De;xe++)ae[xe]=36064+xe;ae.length=W.length,Me=!0}}else ae[0]!==36064&&(ae[0]=36064,Me=!0);else ae[0]!==1029&&(ae[0]=1029,Me=!0);Me&&(t.isWebGL2?s.drawBuffers(ae):e.get("WEBGL_draw_buffers").drawBuffersWEBGL(ae))}function oe(A){return g!==A?(s.useProgram(A),g=A,!0):!1}const Re={[100]:32774,[101]:32778,[102]:32779};if(n)Re[103]=32775,Re[104]=32776;else{const A=e.get("EXT_blend_minmax");A!==null&&(Re[103]=A.MIN_EXT,Re[104]=A.MAX_EXT)}const be={[200]:0,[201]:1,[202]:768,[204]:770,[210]:776,[208]:774,[206]:772,[203]:769,[205]:771,[209]:775,[207]:773};function k(A,he,ae,Me,W,xe,De,Ze){if(A===0){_===!0&&(Ne(3042),_=!1);return}if(_===!1&&(U(3042),_=!0),A!==5){if(A!==M||Ze!==L){if((m!==100||y!==100)&&(s.blendEquation(32774),m=100,y=100),Ze)switch(A){case 1:s.blendFuncSeparate(1,771,1,771);break;case 2:s.blendFunc(1,1);break;case 3:s.blendFuncSeparate(0,769,0,1);break;case 4:s.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",A);break}else switch(A){case 1:s.blendFuncSeparate(770,771,1,771);break;case 2:s.blendFunc(770,1);break;case 3:s.blendFuncSeparate(0,769,0,1);break;case 4:s.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",A);break}f=null,E=null,T=null,C=null,M=A,L=Ze}return}W=W||he,xe=xe||ae,De=De||Me,(he!==m||W!==y)&&(s.blendEquationSeparate(Re[he],Re[W]),m=he,y=W),(ae!==f||Me!==E||xe!==T||De!==C)&&(s.blendFuncSeparate(be[ae],be[Me],be[xe],be[De]),f=ae,E=Me,T=xe,C=De),M=A,L=null}function Q(A,he){A.side===2?Ne(2884):U(2884);let ae=A.side===1;he&&(ae=!ae),$(ae),A.blending===1&&A.transparent===!1?k(0):k(A.blending,A.blendEquation,A.blendSrc,A.blendDst,A.blendEquationAlpha,A.blendSrcAlpha,A.blendDstAlpha,A.premultipliedAlpha),c.setFunc(A.depthFunc),c.setTest(A.depthTest),c.setMask(A.depthWrite),o.setMask(A.colorWrite);const Me=A.stencilWrite;l.setTest(Me),Me&&(l.setMask(A.stencilWriteMask),l.setFunc(A.stencilFunc,A.stencilRef,A.stencilFuncMask),l.setOp(A.stencilFail,A.stencilZFail,A.stencilZPass)),ye(A.polygonOffset,A.polygonOffsetFactor,A.polygonOffsetUnits),A.alphaToCoverage===!0?U(32926):Ne(32926)}function $(A){Y!==A&&(A?s.frontFace(2304):s.frontFace(2305),Y=A)}function le(A){A!==0?(U(2884),A!==se&&(A===1?s.cullFace(1029):A===2?s.cullFace(1028):s.cullFace(1032))):Ne(2884),se=A}function re(A){A!==Z&&(B&&s.lineWidth(A),Z=A)}function ye(A,he,ae){A?(U(32823),(x!==he||R!==ae)&&(s.polygonOffset(he,ae),x=he,R=ae)):Ne(32823)}function we(A){A?U(3089):Ne(3089)}function Ie(A){A===void 0&&(A=33984+D-1),V!==A&&(s.activeTexture(A),V=A)}function We(A,he){V===null&&Ie();let ae=j[V];ae===void 0&&(ae={type:void 0,texture:void 0},j[V]=ae),(ae.type!==A||ae.texture!==he)&&(s.bindTexture(A,he||ge[A]),ae.type=A,ae.texture=he)}function Ve(){const A=j[V];A!==void 0&&A.type!==void 0&&(s.bindTexture(A.type,null),A.type=void 0,A.texture=void 0)}function b(){try{s.compressedTexImage2D.apply(s,arguments)}catch(A){console.error("THREE.WebGLState:",A)}}function v(){try{s.texSubImage2D.apply(s,arguments)}catch(A){console.error("THREE.WebGLState:",A)}}function H(){try{s.texSubImage3D.apply(s,arguments)}catch(A){console.error("THREE.WebGLState:",A)}}function K(){try{s.compressedTexSubImage2D.apply(s,arguments)}catch(A){console.error("THREE.WebGLState:",A)}}function de(){try{s.texStorage2D.apply(s,arguments)}catch(A){console.error("THREE.WebGLState:",A)}}function G(){try{s.texStorage3D.apply(s,arguments)}catch(A){console.error("THREE.WebGLState:",A)}}function _e(){try{s.texImage2D.apply(s,arguments)}catch(A){console.error("THREE.WebGLState:",A)}}function pe(){try{s.texImage3D.apply(s,arguments)}catch(A){console.error("THREE.WebGLState:",A)}}function ie(A){X.equals(A)===!1&&(s.scissor(A.x,A.y,A.z,A.w),X.copy(A))}function te(A){ne.equals(A)===!1&&(s.viewport(A.x,A.y,A.z,A.w),ne.copy(A))}function Ee(){s.disable(3042),s.disable(2884),s.disable(2929),s.disable(32823),s.disable(3089),s.disable(2960),s.disable(32926),s.blendEquation(32774),s.blendFunc(1,0),s.blendFuncSeparate(1,0,1,0),s.colorMask(!0,!0,!0,!0),s.clearColor(0,0,0,0),s.depthMask(!0),s.depthFunc(513),s.clearDepth(1),s.stencilMask(4294967295),s.stencilFunc(519,0,4294967295),s.stencilOp(7680,7680,7680),s.clearStencil(0),s.cullFace(1029),s.frontFace(2305),s.polygonOffset(0,0),s.activeTexture(33984),s.bindFramebuffer(36160,null),n===!0&&(s.bindFramebuffer(36009,null),s.bindFramebuffer(36008,null)),s.useProgram(null),s.lineWidth(1),s.scissor(0,0,s.canvas.width,s.canvas.height),s.viewport(0,0,s.canvas.width,s.canvas.height),h={},V=null,j={},u={},d=new WeakMap,p=[],g=null,_=!1,M=null,m=null,f=null,E=null,y=null,T=null,C=null,L=!1,Y=null,se=null,Z=null,x=null,R=null,X.set(0,0,s.canvas.width,s.canvas.height),ne.set(0,0,s.canvas.width,s.canvas.height),o.reset(),c.reset(),l.reset()}return{buffers:{color:o,depth:c,stencil:l},enable:U,disable:Ne,bindFramebuffer:fe,drawBuffers:Se,useProgram:oe,setBlending:k,setMaterial:Q,setFlipSided:$,setCullFace:le,setLineWidth:re,setPolygonOffset:ye,setScissorTest:we,activeTexture:Ie,bindTexture:We,unbindTexture:Ve,compressedTexImage2D:b,texImage2D:_e,texImage3D:pe,texStorage2D:de,texStorage3D:G,texSubImage2D:v,texSubImage3D:H,compressedTexSubImage2D:K,scissor:ie,viewport:te,reset:Ee}}function ld(s,e,t,n,i,r,a){const o=i.isWebGL2,c=i.maxTextures,l=i.maxCubemapSize,h=i.maxTextureSize,u=i.maxSamples,p=e.has("WEBGL_multisampled_render_to_texture")?e.get("WEBGL_multisampled_render_to_texture"):void 0,g=new WeakMap;let _,M=!1;try{M=typeof OffscreenCanvas!="undefined"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function m(b,v){return M?new OffscreenCanvas(b,v):fi("canvas")}function f(b,v,H,K){let de=1;if((b.width>K||b.height>K)&&(de=K/Math.max(b.width,b.height)),de<1||v===!0)if(typeof HTMLImageElement!="undefined"&&b instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&b instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&b instanceof ImageBitmap){const G=v?Po:Math.floor,_e=G(de*b.width),pe=G(de*b.height);_===void 0&&(_=m(_e,pe));const ie=H?m(_e,pe):_;return ie.width=_e,ie.height=pe,ie.getContext("2d").drawImage(b,0,0,_e,pe),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+b.width+"x"+b.height+") to ("+_e+"x"+pe+")."),ie}else return"data"in b&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+b.width+"x"+b.height+")."),b;return b}function E(b){return As(b.width)&&As(b.height)}function y(b){return o?!1:b.wrapS!==1001||b.wrapT!==1001||b.minFilter!==1003&&b.minFilter!==1006}function T(b,v){return b.generateMipmaps&&v&&b.minFilter!==1003&&b.minFilter!==1006}function C(b){s.generateMipmap(b)}function L(b,v,H,K,de=!1){if(o===!1)return v;if(b!==null){if(s[b]!==void 0)return s[b];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+b+"'")}let G=v;return v===6403&&(H===5126&&(G=33326),H===5131&&(G=33325),H===5121&&(G=33321)),v===33319&&(H===5126&&(G=33328),H===5131&&(G=33327),H===5121&&(G=33323)),v===6408&&(H===5126&&(G=34836),H===5131&&(G=34842),H===5121&&(G=K===3001&&de===!1?35907:32856),H===32819&&(G=32854),H===32820&&(G=32855)),(G===33325||G===33326||G===33327||G===33328||G===34842||G===34836)&&e.get("EXT_color_buffer_float"),G}function Y(b,v,H){return T(b,H)===!0||b.isFramebufferTexture&&b.minFilter!==1003&&b.minFilter!==1006?Math.log2(Math.max(v.width,v.height))+1:b.mipmaps!==void 0&&b.mipmaps.length>0?b.mipmaps.length:b.isCompressedTexture&&Array.isArray(b.image)?v.mipmaps.length:1}function se(b){return b===1003||b===1004||b===1005?9728:9729}function Z(b){const v=b.target;v.removeEventListener("dispose",Z),R(v),v.isVideoTexture&&g.delete(v),a.memory.textures--}function x(b){const v=b.target;v.removeEventListener("dispose",x),D(v)}function R(b){const v=n.get(b);v.__webglInit!==void 0&&(s.deleteTexture(v.__webglTexture),n.remove(b))}function D(b){const v=b.texture,H=n.get(b),K=n.get(v);if(!!b){if(K.__webglTexture!==void 0&&(s.deleteTexture(K.__webglTexture),a.memory.textures--),b.depthTexture&&b.depthTexture.dispose(),b.isWebGLCubeRenderTarget)for(let de=0;de<6;de++)s.deleteFramebuffer(H.__webglFramebuffer[de]),H.__webglDepthbuffer&&s.deleteRenderbuffer(H.__webglDepthbuffer[de]);else s.deleteFramebuffer(H.__webglFramebuffer),H.__webglDepthbuffer&&s.deleteRenderbuffer(H.__webglDepthbuffer),H.__webglMultisampledFramebuffer&&s.deleteFramebuffer(H.__webglMultisampledFramebuffer),H.__webglColorRenderbuffer&&s.deleteRenderbuffer(H.__webglColorRenderbuffer),H.__webglDepthRenderbuffer&&s.deleteRenderbuffer(H.__webglDepthRenderbuffer);if(b.isWebGLMultipleRenderTargets)for(let de=0,G=v.length;de<G;de++){const _e=n.get(v[de]);_e.__webglTexture&&(s.deleteTexture(_e.__webglTexture),a.memory.textures--),n.remove(v[de])}n.remove(v),n.remove(b)}}let B=0;function N(){B=0}function I(){const b=B;return b>=c&&console.warn("THREE.WebGLTextures: Trying to use "+b+" texture units while this GPU supports only "+c),B+=1,b}function V(b,v){const H=n.get(b);if(b.isVideoTexture&&re(b),b.version>0&&H.__version!==b.version){const K=b.image;if(K===void 0)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else if(K.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{U(H,b,v);return}}t.activeTexture(33984+v),t.bindTexture(3553,H.__webglTexture)}function j(b,v){const H=n.get(b);if(b.version>0&&H.__version!==b.version){U(H,b,v);return}t.activeTexture(33984+v),t.bindTexture(35866,H.__webglTexture)}function ce(b,v){const H=n.get(b);if(b.version>0&&H.__version!==b.version){U(H,b,v);return}t.activeTexture(33984+v),t.bindTexture(32879,H.__webglTexture)}function O(b,v){const H=n.get(b);if(b.version>0&&H.__version!==b.version){Ne(H,b,v);return}t.activeTexture(33984+v),t.bindTexture(34067,H.__webglTexture)}const X={[1e3]:10497,[1001]:33071,[1002]:33648},ne={[1003]:9728,[1004]:9984,[1005]:9986,[1006]:9729,[1007]:9985,[1008]:9987};function ue(b,v,H){if(H?(s.texParameteri(b,10242,X[v.wrapS]),s.texParameteri(b,10243,X[v.wrapT]),(b===32879||b===35866)&&s.texParameteri(b,32882,X[v.wrapR]),s.texParameteri(b,10240,ne[v.magFilter]),s.texParameteri(b,10241,ne[v.minFilter])):(s.texParameteri(b,10242,33071),s.texParameteri(b,10243,33071),(b===32879||b===35866)&&s.texParameteri(b,32882,33071),(v.wrapS!==1001||v.wrapT!==1001)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),s.texParameteri(b,10240,se(v.magFilter)),s.texParameteri(b,10241,se(v.minFilter)),v.minFilter!==1003&&v.minFilter!==1006&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),e.has("EXT_texture_filter_anisotropic")===!0){const K=e.get("EXT_texture_filter_anisotropic");if(v.type===1015&&e.has("OES_texture_float_linear")===!1||o===!1&&v.type===1016&&e.has("OES_texture_half_float_linear")===!1)return;(v.anisotropy>1||n.get(v).__currentAnisotropy)&&(s.texParameterf(b,K.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(v.anisotropy,i.getMaxAnisotropy())),n.get(v).__currentAnisotropy=v.anisotropy)}}function ge(b,v){b.__webglInit===void 0&&(b.__webglInit=!0,v.addEventListener("dispose",Z),b.__webglTexture=s.createTexture(),a.memory.textures++)}function U(b,v,H){let K=3553;v.isDataTexture2DArray&&(K=35866),v.isDataTexture3D&&(K=32879),ge(b,v),t.activeTexture(33984+H),t.bindTexture(K,b.__webglTexture),s.pixelStorei(37440,v.flipY),s.pixelStorei(37441,v.premultiplyAlpha),s.pixelStorei(3317,v.unpackAlignment),s.pixelStorei(37443,0);const de=y(v)&&E(v.image)===!1;let G=f(v.image,de,!1,h);G=ye(v,G);const _e=E(G)||o,pe=r.convert(v.format,v.encoding);let ie=r.convert(v.type),te=L(v.internalFormat,pe,ie,v.encoding,v.isVideoTexture);ue(K,v,_e);let Ee;const A=v.mipmaps,he=o&&v.isVideoTexture!==!0,ae=b.__version===void 0,Me=Y(v,G,_e);if(v.isDepthTexture)te=6402,o?v.type===1015?te=36012:v.type===1014?te=33190:v.type===1020?te=35056:te=33189:v.type===1015&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),v.format===1026&&te===6402&&v.type!==1012&&v.type!==1014&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),v.type=1012,ie=r.convert(v.type)),v.format===1027&&te===6402&&(te=34041,v.type!==1020&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),v.type=1020,ie=r.convert(v.type))),he&&ae?t.texStorage2D(3553,1,te,G.width,G.height):t.texImage2D(3553,0,te,G.width,G.height,0,pe,ie,null);else if(v.isDataTexture)if(A.length>0&&_e){he&&ae&&t.texStorage2D(3553,Me,te,A[0].width,A[0].height);for(let W=0,xe=A.length;W<xe;W++)Ee=A[W],he?t.texSubImage2D(3553,0,0,0,Ee.width,Ee.height,pe,ie,Ee.data):t.texImage2D(3553,W,te,Ee.width,Ee.height,0,pe,ie,Ee.data);v.generateMipmaps=!1}else he?(ae&&t.texStorage2D(3553,Me,te,G.width,G.height),t.texSubImage2D(3553,0,0,0,G.width,G.height,pe,ie,G.data)):t.texImage2D(3553,0,te,G.width,G.height,0,pe,ie,G.data);else if(v.isCompressedTexture){he&&ae&&t.texStorage2D(3553,Me,te,A[0].width,A[0].height);for(let W=0,xe=A.length;W<xe;W++)Ee=A[W],v.format!==1023?pe!==null?he?t.compressedTexSubImage2D(3553,W,0,0,Ee.width,Ee.height,pe,Ee.data):t.compressedTexImage2D(3553,W,te,Ee.width,Ee.height,0,Ee.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):he?t.texSubImage2D(3553,W,0,0,Ee.width,Ee.height,pe,ie,Ee.data):t.texImage2D(3553,W,te,Ee.width,Ee.height,0,pe,ie,Ee.data)}else if(v.isDataTexture2DArray)he?(ae&&t.texStorage3D(35866,Me,te,G.width,G.height,G.depth),t.texSubImage3D(35866,0,0,0,0,G.width,G.height,G.depth,pe,ie,G.data)):t.texImage3D(35866,0,te,G.width,G.height,G.depth,0,pe,ie,G.data);else if(v.isDataTexture3D)he?(ae&&t.texStorage3D(32879,Me,te,G.width,G.height,G.depth),t.texSubImage3D(32879,0,0,0,0,G.width,G.height,G.depth,pe,ie,G.data)):t.texImage3D(32879,0,te,G.width,G.height,G.depth,0,pe,ie,G.data);else if(v.isFramebufferTexture)he&&ae?t.texStorage2D(3553,Me,te,G.width,G.height):t.texImage2D(3553,0,te,G.width,G.height,0,pe,ie,null);else if(A.length>0&&_e){he&&ae&&t.texStorage2D(3553,Me,te,A[0].width,A[0].height);for(let W=0,xe=A.length;W<xe;W++)Ee=A[W],he?t.texSubImage2D(3553,W,0,0,pe,ie,Ee):t.texImage2D(3553,W,te,pe,ie,Ee);v.generateMipmaps=!1}else he?(ae&&t.texStorage2D(3553,Me,te,G.width,G.height),t.texSubImage2D(3553,0,0,0,pe,ie,G)):t.texImage2D(3553,0,te,pe,ie,G);T(v,_e)&&C(K),b.__version=v.version,v.onUpdate&&v.onUpdate(v)}function Ne(b,v,H){if(v.image.length!==6)return;ge(b,v),t.activeTexture(33984+H),t.bindTexture(34067,b.__webglTexture),s.pixelStorei(37440,v.flipY),s.pixelStorei(37441,v.premultiplyAlpha),s.pixelStorei(3317,v.unpackAlignment),s.pixelStorei(37443,0);const K=v&&(v.isCompressedTexture||v.image[0].isCompressedTexture),de=v.image[0]&&v.image[0].isDataTexture,G=[];for(let W=0;W<6;W++)!K&&!de?G[W]=f(v.image[W],!1,!0,l):G[W]=de?v.image[W].image:v.image[W],G[W]=ye(v,G[W]);const _e=G[0],pe=E(_e)||o,ie=r.convert(v.format,v.encoding),te=r.convert(v.type),Ee=L(v.internalFormat,ie,te,v.encoding),A=o&&v.isVideoTexture!==!0,he=b.__version===void 0;let ae=Y(v,_e,pe);ue(34067,v,pe);let Me;if(K){A&&he&&t.texStorage2D(34067,ae,Ee,_e.width,_e.height);for(let W=0;W<6;W++){Me=G[W].mipmaps;for(let xe=0;xe<Me.length;xe++){const De=Me[xe];v.format!==1023?ie!==null?A?t.compressedTexSubImage2D(34069+W,xe,0,0,De.width,De.height,ie,De.data):t.compressedTexImage2D(34069+W,xe,Ee,De.width,De.height,0,De.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):A?t.texSubImage2D(34069+W,xe,0,0,De.width,De.height,ie,te,De.data):t.texImage2D(34069+W,xe,Ee,De.width,De.height,0,ie,te,De.data)}}}else{Me=v.mipmaps,A&&he&&(Me.length>0&&ae++,t.texStorage2D(34067,ae,Ee,G[0].width,G[0].height));for(let W=0;W<6;W++)if(de){A?t.texSubImage2D(34069+W,0,0,0,G[W].width,G[W].height,ie,te,G[W].data):t.texImage2D(34069+W,0,Ee,G[W].width,G[W].height,0,ie,te,G[W].data);for(let xe=0;xe<Me.length;xe++){const Ze=Me[xe].image[W].image;A?t.texSubImage2D(34069+W,xe+1,0,0,Ze.width,Ze.height,ie,te,Ze.data):t.texImage2D(34069+W,xe+1,Ee,Ze.width,Ze.height,0,ie,te,Ze.data)}}else{A?t.texSubImage2D(34069+W,0,0,0,ie,te,G[W]):t.texImage2D(34069+W,0,Ee,ie,te,G[W]);for(let xe=0;xe<Me.length;xe++){const De=Me[xe];A?t.texSubImage2D(34069+W,xe+1,0,0,ie,te,De.image[W]):t.texImage2D(34069+W,xe+1,Ee,ie,te,De.image[W])}}}T(v,pe)&&C(34067),b.__version=v.version,v.onUpdate&&v.onUpdate(v)}function fe(b,v,H,K,de){const G=r.convert(H.format,H.encoding),_e=r.convert(H.type),pe=L(H.internalFormat,G,_e,H.encoding);n.get(v).__hasExternalTextures||(de===32879||de===35866?t.texImage3D(de,0,pe,v.width,v.height,v.depth,0,G,_e,null):t.texImage2D(de,0,pe,v.width,v.height,0,G,_e,null)),t.bindFramebuffer(36160,b),v.useRenderToTexture?p.framebufferTexture2DMultisampleEXT(36160,K,de,n.get(H).__webglTexture,0,le(v)):s.framebufferTexture2D(36160,K,de,n.get(H).__webglTexture,0),t.bindFramebuffer(36160,null)}function Se(b,v,H){if(s.bindRenderbuffer(36161,b),v.depthBuffer&&!v.stencilBuffer){let K=33189;if(H||v.useRenderToTexture){const de=v.depthTexture;de&&de.isDepthTexture&&(de.type===1015?K=36012:de.type===1014&&(K=33190));const G=le(v);v.useRenderToTexture?p.renderbufferStorageMultisampleEXT(36161,G,K,v.width,v.height):s.renderbufferStorageMultisample(36161,G,K,v.width,v.height)}else s.renderbufferStorage(36161,K,v.width,v.height);s.framebufferRenderbuffer(36160,36096,36161,b)}else if(v.depthBuffer&&v.stencilBuffer){const K=le(v);H&&v.useRenderbuffer?s.renderbufferStorageMultisample(36161,K,35056,v.width,v.height):v.useRenderToTexture?p.renderbufferStorageMultisampleEXT(36161,K,35056,v.width,v.height):s.renderbufferStorage(36161,34041,v.width,v.height),s.framebufferRenderbuffer(36160,33306,36161,b)}else{const K=v.isWebGLMultipleRenderTargets===!0?v.texture[0]:v.texture,de=r.convert(K.format,K.encoding),G=r.convert(K.type),_e=L(K.internalFormat,de,G,K.encoding),pe=le(v);H&&v.useRenderbuffer?s.renderbufferStorageMultisample(36161,pe,_e,v.width,v.height):v.useRenderToTexture?p.renderbufferStorageMultisampleEXT(36161,pe,_e,v.width,v.height):s.renderbufferStorage(36161,_e,v.width,v.height)}s.bindRenderbuffer(36161,null)}function oe(b,v){if(v&&v.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(t.bindFramebuffer(36160,b),!(v.depthTexture&&v.depthTexture.isDepthTexture))throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");(!n.get(v.depthTexture).__webglTexture||v.depthTexture.image.width!==v.width||v.depthTexture.image.height!==v.height)&&(v.depthTexture.image.width=v.width,v.depthTexture.image.height=v.height,v.depthTexture.needsUpdate=!0),V(v.depthTexture,0);const K=n.get(v.depthTexture).__webglTexture,de=le(v);if(v.depthTexture.format===1026)v.useRenderToTexture?p.framebufferTexture2DMultisampleEXT(36160,36096,3553,K,0,de):s.framebufferTexture2D(36160,36096,3553,K,0);else if(v.depthTexture.format===1027)v.useRenderToTexture?p.framebufferTexture2DMultisampleEXT(36160,33306,3553,K,0,de):s.framebufferTexture2D(36160,33306,3553,K,0);else throw new Error("Unknown depthTexture format")}function Re(b){const v=n.get(b),H=b.isWebGLCubeRenderTarget===!0;if(b.depthTexture&&!v.__autoAllocateDepthBuffer){if(H)throw new Error("target.depthTexture not supported in Cube render targets");oe(v.__webglFramebuffer,b)}else if(H){v.__webglDepthbuffer=[];for(let K=0;K<6;K++)t.bindFramebuffer(36160,v.__webglFramebuffer[K]),v.__webglDepthbuffer[K]=s.createRenderbuffer(),Se(v.__webglDepthbuffer[K],b,!1)}else t.bindFramebuffer(36160,v.__webglFramebuffer),v.__webglDepthbuffer=s.createRenderbuffer(),Se(v.__webglDepthbuffer,b,!1);t.bindFramebuffer(36160,null)}function be(b,v,H){const K=n.get(b);v!==void 0&&fe(K.__webglFramebuffer,b,b.texture,36064,3553),H!==void 0&&Re(b)}function k(b){const v=b.texture,H=n.get(b),K=n.get(v);b.addEventListener("dispose",x),b.isWebGLMultipleRenderTargets!==!0&&(K.__webglTexture===void 0&&(K.__webglTexture=s.createTexture()),K.__version=v.version,a.memory.textures++);const de=b.isWebGLCubeRenderTarget===!0,G=b.isWebGLMultipleRenderTargets===!0,_e=v.isDataTexture3D||v.isDataTexture2DArray,pe=E(b)||o;if(de){H.__webglFramebuffer=[];for(let ie=0;ie<6;ie++)H.__webglFramebuffer[ie]=s.createFramebuffer()}else if(H.__webglFramebuffer=s.createFramebuffer(),G)if(i.drawBuffers){const ie=b.texture;for(let te=0,Ee=ie.length;te<Ee;te++){const A=n.get(ie[te]);A.__webglTexture===void 0&&(A.__webglTexture=s.createTexture(),a.memory.textures++)}}else console.warn("THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.");else if(b.useRenderbuffer)if(o){H.__webglMultisampledFramebuffer=s.createFramebuffer(),H.__webglColorRenderbuffer=s.createRenderbuffer(),s.bindRenderbuffer(36161,H.__webglColorRenderbuffer);const ie=r.convert(v.format,v.encoding),te=r.convert(v.type),Ee=L(v.internalFormat,ie,te,v.encoding),A=le(b);s.renderbufferStorageMultisample(36161,A,Ee,b.width,b.height),t.bindFramebuffer(36160,H.__webglMultisampledFramebuffer),s.framebufferRenderbuffer(36160,36064,36161,H.__webglColorRenderbuffer),s.bindRenderbuffer(36161,null),b.depthBuffer&&(H.__webglDepthRenderbuffer=s.createRenderbuffer(),Se(H.__webglDepthRenderbuffer,b,!0)),t.bindFramebuffer(36160,null)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.");if(de){t.bindTexture(34067,K.__webglTexture),ue(34067,v,pe);for(let ie=0;ie<6;ie++)fe(H.__webglFramebuffer[ie],b,v,36064,34069+ie);T(v,pe)&&C(34067),t.unbindTexture()}else if(G){const ie=b.texture;for(let te=0,Ee=ie.length;te<Ee;te++){const A=ie[te],he=n.get(A);t.bindTexture(3553,he.__webglTexture),ue(3553,A,pe),fe(H.__webglFramebuffer,b,A,36064+te,3553),T(A,pe)&&C(3553)}t.unbindTexture()}else{let ie=3553;_e&&(o?ie=v.isDataTexture3D?32879:35866:console.warn("THREE.DataTexture3D and THREE.DataTexture2DArray only supported with WebGL2.")),t.bindTexture(ie,K.__webglTexture),ue(ie,v,pe),fe(H.__webglFramebuffer,b,v,36064,ie),T(v,pe)&&C(ie),t.unbindTexture()}b.depthBuffer&&Re(b)}function Q(b){const v=E(b)||o,H=b.isWebGLMultipleRenderTargets===!0?b.texture:[b.texture];for(let K=0,de=H.length;K<de;K++){const G=H[K];if(T(G,v)){const _e=b.isWebGLCubeRenderTarget?34067:3553,pe=n.get(G).__webglTexture;t.bindTexture(_e,pe),C(_e),t.unbindTexture()}}}function $(b){if(b.useRenderbuffer)if(o){const v=b.width,H=b.height;let K=16384;const de=[36064],G=b.stencilBuffer?33306:36096;b.depthBuffer&&de.push(G),b.ignoreDepthForMultisampleCopy||(b.depthBuffer&&(K|=256),b.stencilBuffer&&(K|=1024));const _e=n.get(b);t.bindFramebuffer(36008,_e.__webglMultisampledFramebuffer),t.bindFramebuffer(36009,_e.__webglFramebuffer),b.ignoreDepthForMultisampleCopy&&(s.invalidateFramebuffer(36008,[G]),s.invalidateFramebuffer(36009,[G])),s.blitFramebuffer(0,0,v,H,0,0,v,H,K,9728),s.invalidateFramebuffer(36008,de),t.bindFramebuffer(36008,null),t.bindFramebuffer(36009,_e.__webglMultisampledFramebuffer)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.")}function le(b){return o&&(b.useRenderbuffer||b.useRenderToTexture)?Math.min(u,b.samples):0}function re(b){const v=a.render.frame;g.get(b)!==v&&(g.set(b,v),b.update())}function ye(b,v){const H=b.encoding,K=b.format,de=b.type;return b.isCompressedTexture===!0||b.isVideoTexture===!0||b.format===1035||H!==3e3&&(H===3001?o===!1?e.has("EXT_sRGB")===!0&&K===1023?(b.format=1035,b.minFilter=1006,b.generateMipmaps=!1):v=xn.sRGBToLinear(v):(K!==1023||de!==1009)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",H)),v}let we=!1,Ie=!1;function We(b,v){b&&b.isWebGLRenderTarget&&(we===!1&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),we=!0),b=b.texture),V(b,v)}function Ve(b,v){b&&b.isWebGLCubeRenderTarget&&(Ie===!1&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),Ie=!0),b=b.texture),O(b,v)}this.allocateTextureUnit=I,this.resetTextureUnits=N,this.setTexture2D=V,this.setTexture2DArray=j,this.setTexture3D=ce,this.setTextureCube=O,this.rebindTextures=be,this.setupRenderTarget=k,this.updateRenderTargetMipmap=Q,this.updateMultisampleRenderTarget=$,this.setupDepthRenderbuffer=Re,this.setupFrameBufferTexture=fe,this.safeSetTexture2D=We,this.safeSetTextureCube=Ve}function cd(s,e,t){const n=t.isWebGL2;function i(r,a=null){let o;if(r===1009)return 5121;if(r===1017)return 32819;if(r===1018)return 32820;if(r===1010)return 5120;if(r===1011)return 5122;if(r===1012)return 5123;if(r===1013)return 5124;if(r===1014)return 5125;if(r===1015)return 5126;if(r===1016)return n?5131:(o=e.get("OES_texture_half_float"),o!==null?o.HALF_FLOAT_OES:null);if(r===1021)return 6406;if(r===1023)return 6408;if(r===1024)return 6409;if(r===1025)return 6410;if(r===1026)return 6402;if(r===1027)return 34041;if(r===1028)return 6403;if(r===1022)return console.warn("THREE.WebGLRenderer: THREE.RGBFormat has been removed. Use THREE.RGBAFormat instead. https://github.com/mrdoob/three.js/pull/23228"),6408;if(r===1035)return o=e.get("EXT_sRGB"),o!==null?o.SRGB_ALPHA_EXT:null;if(r===1029)return 36244;if(r===1030)return 33319;if(r===1031)return 33320;if(r===1033)return 36249;if(r===33776||r===33777||r===33778||r===33779)if(a===3001)if(o=e.get("WEBGL_compressed_texture_s3tc_srgb"),o!==null){if(r===33776)return o.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(r===33777)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(r===33778)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(r===33779)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(o=e.get("WEBGL_compressed_texture_s3tc"),o!==null){if(r===33776)return o.COMPRESSED_RGB_S3TC_DXT1_EXT;if(r===33777)return o.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(r===33778)return o.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(r===33779)return o.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(r===35840||r===35841||r===35842||r===35843)if(o=e.get("WEBGL_compressed_texture_pvrtc"),o!==null){if(r===35840)return o.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(r===35841)return o.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(r===35842)return o.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(r===35843)return o.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(r===36196)return o=e.get("WEBGL_compressed_texture_etc1"),o!==null?o.COMPRESSED_RGB_ETC1_WEBGL:null;if(r===37492||r===37496)if(o=e.get("WEBGL_compressed_texture_etc"),o!==null){if(r===37492)return a===3001?o.COMPRESSED_SRGB8_ETC2:o.COMPRESSED_RGB8_ETC2;if(r===37496)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:o.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(r===37808||r===37809||r===37810||r===37811||r===37812||r===37813||r===37814||r===37815||r===37816||r===37817||r===37818||r===37819||r===37820||r===37821)if(o=e.get("WEBGL_compressed_texture_astc"),o!==null){if(r===37808)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:o.COMPRESSED_RGBA_ASTC_4x4_KHR;if(r===37809)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:o.COMPRESSED_RGBA_ASTC_5x4_KHR;if(r===37810)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:o.COMPRESSED_RGBA_ASTC_5x5_KHR;if(r===37811)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:o.COMPRESSED_RGBA_ASTC_6x5_KHR;if(r===37812)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:o.COMPRESSED_RGBA_ASTC_6x6_KHR;if(r===37813)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:o.COMPRESSED_RGBA_ASTC_8x5_KHR;if(r===37814)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:o.COMPRESSED_RGBA_ASTC_8x6_KHR;if(r===37815)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:o.COMPRESSED_RGBA_ASTC_8x8_KHR;if(r===37816)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:o.COMPRESSED_RGBA_ASTC_10x5_KHR;if(r===37817)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:o.COMPRESSED_RGBA_ASTC_10x6_KHR;if(r===37818)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:o.COMPRESSED_RGBA_ASTC_10x8_KHR;if(r===37819)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:o.COMPRESSED_RGBA_ASTC_10x10_KHR;if(r===37820)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:o.COMPRESSED_RGBA_ASTC_12x10_KHR;if(r===37821)return a===3001?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:o.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(r===36492)if(o=e.get("EXT_texture_compression_bptc"),o!==null){if(r===36492)return a===3001?o.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:o.COMPRESSED_RGBA_BPTC_UNORM_EXT}else return null;if(r===1020)return n?34042:(o=e.get("WEBGL_depth_texture"),o!==null?o.UNSIGNED_INT_24_8_WEBGL:null)}return{convert:i}}class to extends pt{constructor(e=[]){super();this.cameras=e}}to.prototype.isArrayCamera=!0;class hi extends Ue{constructor(){super();this.type="Group"}}hi.prototype.isGroup=!0;const hd={type:"move"};class Or{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new hi,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new hi,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new w,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new w),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new hi,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new w,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new w),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,n){let i=null,r=null,a=null;const o=this._targetRay,c=this._grip,l=this._hand;if(e&&t.session.visibilityState!=="visible-blurred")if(o!==null&&(i=t.getPose(e.targetRaySpace,n),i!==null&&(o.matrix.fromArray(i.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),i.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(i.linearVelocity)):o.hasLinearVelocity=!1,i.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(i.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(hd))),l&&e.hand){a=!0;for(const _ of e.hand.values()){const M=t.getJointPose(_,n);if(l.joints[_.jointName]===void 0){const f=new hi;f.matrixAutoUpdate=!1,f.visible=!1,l.joints[_.jointName]=f,l.add(f)}const m=l.joints[_.jointName];M!==null&&(m.matrix.fromArray(M.transform.matrix),m.matrix.decompose(m.position,m.rotation,m.scale),m.jointRadius=M.radius),m.visible=M!==null}const h=l.joints["index-finger-tip"],u=l.joints["thumb-tip"],d=h.position.distanceTo(u.position),p=.02,g=.005;l.inputState.pinching&&d>p+g?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!l.inputState.pinching&&d<=p-g&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else c!==null&&e.gripSpace&&(r=t.getPose(e.gripSpace,n),r!==null&&(c.matrix.fromArray(r.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),r.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(r.linearVelocity)):c.hasLinearVelocity=!1,r.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(r.angularVelocity)):c.hasAngularVelocity=!1));return o!==null&&(o.visible=i!==null),c!==null&&(c.visible=r!==null),l!==null&&(l.visible=a!==null),this}}class Jr extends rt{constructor(e,t,n,i,r,a,o,c,l,h){if(h=h!==void 0?h:1026,h!==1026&&h!==1027)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");n===void 0&&h===1026&&(n=1012),n===void 0&&h===1027&&(n=1020);super(null,i,r,a,o,c,h,n,l);this.image={width:e,height:t},this.magFilter=o!==void 0?o:1003,this.minFilter=c!==void 0?c:1003,this.flipY=!1,this.generateMipmaps=!1}}Jr.prototype.isDepthTexture=!0;class ud extends on{constructor(e,t){super();const n=this;let i=null,r=1,a=null,o="local-floor";const c=e.extensions.has("WEBGL_multisampled_render_to_texture");let l=null,h=null,u=null,d=null,p=!1,g=null;const _=t.getContextAttributes();let M=null,m=null;const f=[],E=new Map,y=new pt;y.layers.enable(1),y.viewport=new ke;const T=new pt;T.layers.enable(2),T.viewport=new ke;const C=[y,T],L=new to;L.layers.enable(1),L.layers.enable(2);let Y=null,se=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(O){let X=f[O];return X===void 0&&(X=new Or,f[O]=X),X.getTargetRaySpace()},this.getControllerGrip=function(O){let X=f[O];return X===void 0&&(X=new Or,f[O]=X),X.getGripSpace()},this.getHand=function(O){let X=f[O];return X===void 0&&(X=new Or,f[O]=X),X.getHandSpace()};function Z(O){const X=E.get(O.inputSource);X&&X.dispatchEvent({type:O.type,data:O.inputSource})}function x(){E.forEach(function(O,X){O.disconnect(X)}),E.clear(),Y=null,se=null,e.setRenderTarget(M),d=null,u=null,h=null,i=null,m=null,ce.stop(),n.isPresenting=!1,n.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(O){r=O,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(O){o=O,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return a},this.getBaseLayer=function(){return u!==null?u:d},this.getBinding=function(){return h},this.getFrame=function(){return g},this.getSession=function(){return i},this.setSession=async function(O){if(i=O,i!==null){if(M=e.getRenderTarget(),i.addEventListener("select",Z),i.addEventListener("selectstart",Z),i.addEventListener("selectend",Z),i.addEventListener("squeeze",Z),i.addEventListener("squeezestart",Z),i.addEventListener("squeezeend",Z),i.addEventListener("end",x),i.addEventListener("inputsourceschange",R),_.xrCompatible!==!0&&await t.makeXRCompatible(),i.renderState.layers===void 0||e.capabilities.isWebGL2===!1){const X={antialias:i.renderState.layers===void 0?_.antialias:!0,alpha:_.alpha,depth:_.depth,stencil:_.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,t,X),i.updateRenderState({baseLayer:d}),m=new Mt(d.framebufferWidth,d.framebufferHeight,{format:1023,type:1009,encoding:e.outputEncoding})}else{p=_.antialias;let X=null,ne=null,ue=null;_.depth&&(ue=_.stencil?35056:33190,X=_.stencil?1027:1026,ne=_.stencil?1020:1012);const ge={colorFormat:e.outputEncoding===3001?35907:32856,depthFormat:ue,scaleFactor:r};h=new XRWebGLBinding(i,t),u=h.createProjectionLayer(ge),i.updateRenderState({layers:[u]}),p?m=new rs(u.textureWidth,u.textureHeight,{format:1023,type:1009,depthTexture:new Jr(u.textureWidth,u.textureHeight,ne,void 0,void 0,void 0,void 0,void 0,void 0,X),stencilBuffer:_.stencil,ignoreDepth:u.ignoreDepthValues,useRenderToTexture:c,encoding:e.outputEncoding}):m=new Mt(u.textureWidth,u.textureHeight,{format:1023,type:1009,depthTexture:new Jr(u.textureWidth,u.textureHeight,ne,void 0,void 0,void 0,void 0,void 0,void 0,X),stencilBuffer:_.stencil,ignoreDepth:u.ignoreDepthValues,encoding:e.outputEncoding})}m.isXRRenderTarget=!0,this.setFoveation(1),a=await i.requestReferenceSpace(o),ce.setContext(i),ce.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}};function R(O){const X=i.inputSources;for(let ne=0;ne<f.length;ne++)E.set(X[ne],f[ne]);for(let ne=0;ne<O.removed.length;ne++){const ue=O.removed[ne],ge=E.get(ue);ge&&(ge.dispatchEvent({type:"disconnected",data:ue}),E.delete(ue))}for(let ne=0;ne<O.added.length;ne++){const ue=O.added[ne],ge=E.get(ue);ge&&ge.dispatchEvent({type:"connected",data:ue})}}const D=new w,B=new w;function N(O,X,ne){D.setFromMatrixPosition(X.matrixWorld),B.setFromMatrixPosition(ne.matrixWorld);const ue=D.distanceTo(B),ge=X.projectionMatrix.elements,U=ne.projectionMatrix.elements,Ne=ge[14]/(ge[10]-1),fe=ge[14]/(ge[10]+1),Se=(ge[9]+1)/ge[5],oe=(ge[9]-1)/ge[5],Re=(ge[8]-1)/ge[0],be=(U[8]+1)/U[0],k=Ne*Re,Q=Ne*be,$=ue/(-Re+be),le=$*-Re;X.matrixWorld.decompose(O.position,O.quaternion,O.scale),O.translateX(le),O.translateZ($),O.matrixWorld.compose(O.position,O.quaternion,O.scale),O.matrixWorldInverse.copy(O.matrixWorld).invert();const re=Ne+$,ye=fe+$,we=k-le,Ie=Q+(ue-le),We=Se*fe/ye*re,Ve=oe*fe/ye*re;O.projectionMatrix.makePerspective(we,Ie,We,Ve,re,ye)}function I(O,X){X===null?O.matrixWorld.copy(O.matrix):O.matrixWorld.multiplyMatrices(X.matrixWorld,O.matrix),O.matrixWorldInverse.copy(O.matrixWorld).invert()}this.updateCamera=function(O){if(i===null)return;L.near=T.near=y.near=O.near,L.far=T.far=y.far=O.far,(Y!==L.near||se!==L.far)&&(i.updateRenderState({depthNear:L.near,depthFar:L.far}),Y=L.near,se=L.far);const X=O.parent,ne=L.cameras;I(L,X);for(let ge=0;ge<ne.length;ge++)I(ne[ge],X);L.matrixWorld.decompose(L.position,L.quaternion,L.scale),O.position.copy(L.position),O.quaternion.copy(L.quaternion),O.scale.copy(L.scale),O.matrix.copy(L.matrix),O.matrixWorld.copy(L.matrixWorld);const ue=O.children;for(let ge=0,U=ue.length;ge<U;ge++)ue[ge].updateMatrixWorld(!0);ne.length===2?N(L,y,T):L.projectionMatrix.copy(y.projectionMatrix)},this.getCamera=function(){return L},this.getFoveation=function(){if(u!==null)return u.fixedFoveation;if(d!==null)return d.fixedFoveation},this.setFoveation=function(O){u!==null&&(u.fixedFoveation=O),d!==null&&d.fixedFoveation!==void 0&&(d.fixedFoveation=O)};let V=null;function j(O,X){if(l=X.getViewerPose(a),g=X,l!==null){const ue=l.views;d!==null&&(e.setRenderTargetFramebuffer(m,d.framebuffer),e.setRenderTarget(m));let ge=!1;ue.length!==L.cameras.length&&(L.cameras.length=0,ge=!0);for(let U=0;U<ue.length;U++){const Ne=ue[U];let fe=null;if(d!==null)fe=d.getViewport(Ne);else{const oe=h.getViewSubImage(u,Ne);fe=oe.viewport,U===0&&(e.setRenderTargetTextures(m,oe.colorTexture,u.ignoreDepthValues?void 0:oe.depthStencilTexture),e.setRenderTarget(m))}const Se=C[U];Se.matrix.fromArray(Ne.transform.matrix),Se.projectionMatrix.fromArray(Ne.projectionMatrix),Se.viewport.set(fe.x,fe.y,fe.width,fe.height),U===0&&L.matrix.copy(Se.matrix),ge===!0&&L.cameras.push(Se)}}const ne=i.inputSources;for(let ue=0;ue<f.length;ue++){const ge=f[ue],U=ne[ue];ge.update(U,X,a)}V&&V(O,X),g=null}const ce=new Va;ce.setAnimationLoop(j),this.setAnimationLoop=function(O){V=O},this.dispose=function(){}}}function dd(s){function e(m,f){m.fogColor.value.copy(f.color),f.isFog?(m.fogNear.value=f.near,m.fogFar.value=f.far):f.isFogExp2&&(m.fogDensity.value=f.density)}function t(m,f,E,y,T){f.isMeshBasicMaterial?n(m,f):f.isMeshLambertMaterial?(n(m,f),c(m,f)):f.isMeshToonMaterial?(n(m,f),h(m,f)):f.isMeshPhongMaterial?(n(m,f),l(m,f)):f.isMeshStandardMaterial?(n(m,f),f.isMeshPhysicalMaterial?d(m,f,T):u(m,f)):f.isMeshMatcapMaterial?(n(m,f),p(m,f)):f.isMeshDepthMaterial?(n(m,f),g(m,f)):f.isMeshDistanceMaterial?(n(m,f),_(m,f)):f.isMeshNormalMaterial?(n(m,f),M(m,f)):f.isLineBasicMaterial?(i(m,f),f.isLineDashedMaterial&&r(m,f)):f.isPointsMaterial?a(m,f,E,y):f.isSpriteMaterial?o(m,f):f.isShadowMaterial?(m.color.value.copy(f.color),m.opacity.value=f.opacity):f.isShaderMaterial&&(f.uniformsNeedUpdate=!1)}function n(m,f){m.opacity.value=f.opacity,f.color&&m.diffuse.value.copy(f.color),f.emissive&&m.emissive.value.copy(f.emissive).multiplyScalar(f.emissiveIntensity),f.map&&(m.map.value=f.map),f.alphaMap&&(m.alphaMap.value=f.alphaMap),f.specularMap&&(m.specularMap.value=f.specularMap),f.alphaTest>0&&(m.alphaTest.value=f.alphaTest);const E=s.get(f).envMap;E&&(m.envMap.value=E,m.flipEnvMap.value=E.isCubeTexture&&E.isRenderTargetTexture===!1?-1:1,m.reflectivity.value=f.reflectivity,m.ior.value=f.ior,m.refractionRatio.value=f.refractionRatio),f.lightMap&&(m.lightMap.value=f.lightMap,m.lightMapIntensity.value=f.lightMapIntensity),f.aoMap&&(m.aoMap.value=f.aoMap,m.aoMapIntensity.value=f.aoMapIntensity);let y;f.map?y=f.map:f.specularMap?y=f.specularMap:f.displacementMap?y=f.displacementMap:f.normalMap?y=f.normalMap:f.bumpMap?y=f.bumpMap:f.roughnessMap?y=f.roughnessMap:f.metalnessMap?y=f.metalnessMap:f.alphaMap?y=f.alphaMap:f.emissiveMap?y=f.emissiveMap:f.clearcoatMap?y=f.clearcoatMap:f.clearcoatNormalMap?y=f.clearcoatNormalMap:f.clearcoatRoughnessMap?y=f.clearcoatRoughnessMap:f.specularIntensityMap?y=f.specularIntensityMap:f.specularColorMap?y=f.specularColorMap:f.transmissionMap?y=f.transmissionMap:f.thicknessMap?y=f.thicknessMap:f.sheenColorMap?y=f.sheenColorMap:f.sheenRoughnessMap&&(y=f.sheenRoughnessMap),y!==void 0&&(y.isWebGLRenderTarget&&(y=y.texture),y.matrixAutoUpdate===!0&&y.updateMatrix(),m.uvTransform.value.copy(y.matrix));let T;f.aoMap?T=f.aoMap:f.lightMap&&(T=f.lightMap),T!==void 0&&(T.isWebGLRenderTarget&&(T=T.texture),T.matrixAutoUpdate===!0&&T.updateMatrix(),m.uv2Transform.value.copy(T.matrix))}function i(m,f){m.diffuse.value.copy(f.color),m.opacity.value=f.opacity}function r(m,f){m.dashSize.value=f.dashSize,m.totalSize.value=f.dashSize+f.gapSize,m.scale.value=f.scale}function a(m,f,E,y){m.diffuse.value.copy(f.color),m.opacity.value=f.opacity,m.size.value=f.size*E,m.scale.value=y*.5,f.map&&(m.map.value=f.map),f.alphaMap&&(m.alphaMap.value=f.alphaMap),f.alphaTest>0&&(m.alphaTest.value=f.alphaTest);let T;f.map?T=f.map:f.alphaMap&&(T=f.alphaMap),T!==void 0&&(T.matrixAutoUpdate===!0&&T.updateMatrix(),m.uvTransform.value.copy(T.matrix))}function o(m,f){m.diffuse.value.copy(f.color),m.opacity.value=f.opacity,m.rotation.value=f.rotation,f.map&&(m.map.value=f.map),f.alphaMap&&(m.alphaMap.value=f.alphaMap),f.alphaTest>0&&(m.alphaTest.value=f.alphaTest);let E;f.map?E=f.map:f.alphaMap&&(E=f.alphaMap),E!==void 0&&(E.matrixAutoUpdate===!0&&E.updateMatrix(),m.uvTransform.value.copy(E.matrix))}function c(m,f){f.emissiveMap&&(m.emissiveMap.value=f.emissiveMap)}function l(m,f){m.specular.value.copy(f.specular),m.shininess.value=Math.max(f.shininess,1e-4),f.emissiveMap&&(m.emissiveMap.value=f.emissiveMap),f.bumpMap&&(m.bumpMap.value=f.bumpMap,m.bumpScale.value=f.bumpScale,f.side===1&&(m.bumpScale.value*=-1)),f.normalMap&&(m.normalMap.value=f.normalMap,m.normalScale.value.copy(f.normalScale),f.side===1&&m.normalScale.value.negate()),f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias)}function h(m,f){f.gradientMap&&(m.gradientMap.value=f.gradientMap),f.emissiveMap&&(m.emissiveMap.value=f.emissiveMap),f.bumpMap&&(m.bumpMap.value=f.bumpMap,m.bumpScale.value=f.bumpScale,f.side===1&&(m.bumpScale.value*=-1)),f.normalMap&&(m.normalMap.value=f.normalMap,m.normalScale.value.copy(f.normalScale),f.side===1&&m.normalScale.value.negate()),f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias)}function u(m,f){m.roughness.value=f.roughness,m.metalness.value=f.metalness,f.roughnessMap&&(m.roughnessMap.value=f.roughnessMap),f.metalnessMap&&(m.metalnessMap.value=f.metalnessMap),f.emissiveMap&&(m.emissiveMap.value=f.emissiveMap),f.bumpMap&&(m.bumpMap.value=f.bumpMap,m.bumpScale.value=f.bumpScale,f.side===1&&(m.bumpScale.value*=-1)),f.normalMap&&(m.normalMap.value=f.normalMap,m.normalScale.value.copy(f.normalScale),f.side===1&&m.normalScale.value.negate()),f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias),s.get(f).envMap&&(m.envMapIntensity.value=f.envMapIntensity)}function d(m,f,E){u(m,f),m.ior.value=f.ior,f.sheen>0&&(m.sheenColor.value.copy(f.sheenColor).multiplyScalar(f.sheen),m.sheenRoughness.value=f.sheenRoughness,f.sheenColorMap&&(m.sheenColorMap.value=f.sheenColorMap),f.sheenRoughnessMap&&(m.sheenRoughnessMap.value=f.sheenRoughnessMap)),f.clearcoat>0&&(m.clearcoat.value=f.clearcoat,m.clearcoatRoughness.value=f.clearcoatRoughness,f.clearcoatMap&&(m.clearcoatMap.value=f.clearcoatMap),f.clearcoatRoughnessMap&&(m.clearcoatRoughnessMap.value=f.clearcoatRoughnessMap),f.clearcoatNormalMap&&(m.clearcoatNormalScale.value.copy(f.clearcoatNormalScale),m.clearcoatNormalMap.value=f.clearcoatNormalMap,f.side===1&&m.clearcoatNormalScale.value.negate())),f.transmission>0&&(m.transmission.value=f.transmission,m.transmissionSamplerMap.value=E.texture,m.transmissionSamplerSize.value.set(E.width,E.height),f.transmissionMap&&(m.transmissionMap.value=f.transmissionMap),m.thickness.value=f.thickness,f.thicknessMap&&(m.thicknessMap.value=f.thicknessMap),m.attenuationDistance.value=f.attenuationDistance,m.attenuationColor.value.copy(f.attenuationColor)),m.specularIntensity.value=f.specularIntensity,m.specularColor.value.copy(f.specularColor),f.specularIntensityMap&&(m.specularIntensityMap.value=f.specularIntensityMap),f.specularColorMap&&(m.specularColorMap.value=f.specularColorMap)}function p(m,f){f.matcap&&(m.matcap.value=f.matcap),f.bumpMap&&(m.bumpMap.value=f.bumpMap,m.bumpScale.value=f.bumpScale,f.side===1&&(m.bumpScale.value*=-1)),f.normalMap&&(m.normalMap.value=f.normalMap,m.normalScale.value.copy(f.normalScale),f.side===1&&m.normalScale.value.negate()),f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias)}function g(m,f){f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias)}function _(m,f){f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias),m.referencePosition.value.copy(f.referencePosition),m.nearDistance.value=f.nearDistance,m.farDistance.value=f.farDistance}function M(m,f){f.bumpMap&&(m.bumpMap.value=f.bumpMap,m.bumpScale.value=f.bumpScale,f.side===1&&(m.bumpScale.value*=-1)),f.normalMap&&(m.normalMap.value=f.normalMap,m.normalScale.value.copy(f.normalScale),f.side===1&&m.normalScale.value.negate()),f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias)}return{refreshFogUniforms:e,refreshMaterialUniforms:t}}function fd(){const s=fi("canvas");return s.style.display="block",s}function He(s={}){const e=s.canvas!==void 0?s.canvas:fd(),t=s.context!==void 0?s.context:null,n=s.alpha!==void 0?s.alpha:!1,i=s.depth!==void 0?s.depth:!0,r=s.stencil!==void 0?s.stencil:!0,a=s.antialias!==void 0?s.antialias:!1,o=s.premultipliedAlpha!==void 0?s.premultipliedAlpha:!0,c=s.preserveDrawingBuffer!==void 0?s.preserveDrawingBuffer:!1,l=s.powerPreference!==void 0?s.powerPreference:"default",h=s.failIfMajorPerformanceCaveat!==void 0?s.failIfMajorPerformanceCaveat:!1;let u=null,d=null;const p=[],g=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=3e3,this.physicallyCorrectLights=!1,this.toneMapping=0,this.toneMappingExposure=1;const _=this;let M=!1,m=0,f=0,E=null,y=-1,T=null;const C=new ke,L=new ke;let Y=null,se=e.width,Z=e.height,x=1,R=null,D=null;const B=new ke(0,0,se,Z),N=new ke(0,0,se,Z);let I=!1;const V=new ar;let j=!1,ce=!1,O=null;const X=new ve,ne=new w,ue={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function ge(){return E===null?x:1}let U=t;function Ne(S,P){for(let z=0;z<S.length;z++){const F=S[z],q=e.getContext(F,P);if(q!==null)return q}return null}try{const S={alpha:!0,depth:i,stencil:r,antialias:a,premultipliedAlpha:o,preserveDrawingBuffer:c,powerPreference:l,failIfMajorPerformanceCaveat:h};if("setAttribute"in e&&e.setAttribute("data-engine",`three.js r${is}`),e.addEventListener("webglcontextlost",Ee,!1),e.addEventListener("webglcontextrestored",A,!1),U===null){const P=["webgl2","webgl","experimental-webgl"];if(_.isWebGL1Renderer===!0&&P.shift(),U=Ne(P,S),U===null)throw Ne(P)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}U.getShaderPrecisionFormat===void 0&&(U.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(S){throw console.error("THREE.WebGLRenderer: "+S.message),S}let fe,Se,oe,Re,be,k,Q,$,le,re,ye,we,Ie,We,Ve,b,v,H,K,de,G,_e,pe;function ie(){fe=new Dh(U),Se=new Eh(U,fe,s),fe.init(Se),_e=new cd(U,fe,Se),oe=new od(U,fe,Se),Re=new Bh(U),be=new Ju,k=new ld(U,fe,oe,be,Se,_e,Re),Q=new Rh(_),$=new Ph(_),le=new Jo(U,Se),pe=new wh(U,fe,le,Se),re=new Ih(U,le,Re,pe),ye=new Oh(U,re,le,Re),K=new Uh(U,Se,k),b=new Ah(be),we=new ju(_,Q,$,fe,Se,pe,b),Ie=new dd(be),We=new Ku,Ve=new rd(fe,Se),H=new bh(_,Q,oe,ye,n,o),v=new eo(_,ye,Se),de=new Th(U,fe,Re,Se),G=new Fh(U,fe,Re,Se),Re.programs=we.programs,_.capabilities=Se,_.extensions=fe,_.properties=be,_.renderLists=We,_.shadowMap=v,_.state=oe,_.info=Re}ie();const te=new ud(_,U);this.xr=te,this.getContext=function(){return U},this.getContextAttributes=function(){return U.getContextAttributes()},this.forceContextLoss=function(){const S=fe.get("WEBGL_lose_context");S&&S.loseContext()},this.forceContextRestore=function(){const S=fe.get("WEBGL_lose_context");S&&S.restoreContext()},this.getPixelRatio=function(){return x},this.setPixelRatio=function(S){S!==void 0&&(x=S,this.setSize(se,Z,!1))},this.getSize=function(S){return S.set(se,Z)},this.setSize=function(S,P,z){if(te.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}se=S,Z=P,e.width=Math.floor(S*x),e.height=Math.floor(P*x),z!==!1&&(e.style.width=S+"px",e.style.height=P+"px"),this.setViewport(0,0,S,P)},this.getDrawingBufferSize=function(S){return S.set(se*x,Z*x).floor()},this.setDrawingBufferSize=function(S,P,z){se=S,Z=P,x=z,e.width=Math.floor(S*z),e.height=Math.floor(P*z),this.setViewport(0,0,S,P)},this.getCurrentViewport=function(S){return S.copy(C)},this.getViewport=function(S){return S.copy(B)},this.setViewport=function(S,P,z,F){S.isVector4?B.set(S.x,S.y,S.z,S.w):B.set(S,P,z,F),oe.viewport(C.copy(B).multiplyScalar(x).floor())},this.getScissor=function(S){return S.copy(N)},this.setScissor=function(S,P,z,F){S.isVector4?N.set(S.x,S.y,S.z,S.w):N.set(S,P,z,F),oe.scissor(L.copy(N).multiplyScalar(x).floor())},this.getScissorTest=function(){return I},this.setScissorTest=function(S){oe.setScissorTest(I=S)},this.setOpaqueSort=function(S){R=S},this.setTransparentSort=function(S){D=S},this.getClearColor=function(S){return S.copy(H.getClearColor())},this.setClearColor=function(){H.setClearColor.apply(H,arguments)},this.getClearAlpha=function(){return H.getClearAlpha()},this.setClearAlpha=function(){H.setClearAlpha.apply(H,arguments)},this.clear=function(S,P,z){let F=0;(S===void 0||S)&&(F|=16384),(P===void 0||P)&&(F|=256),(z===void 0||z)&&(F|=1024),U.clear(F)},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",Ee,!1),e.removeEventListener("webglcontextrestored",A,!1),We.dispose(),Ve.dispose(),be.dispose(),Q.dispose(),$.dispose(),ye.dispose(),pe.dispose(),we.dispose(),te.dispose(),te.removeEventListener("sessionstart",De),te.removeEventListener("sessionend",Ze),O&&(O.dispose(),O=null),gt.stop()};function Ee(S){S.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),M=!0}function A(){console.log("THREE.WebGLRenderer: Context Restored."),M=!1;const S=Re.autoReset,P=v.enabled,z=v.autoUpdate,F=v.needsUpdate,q=v.type;ie(),Re.autoReset=S,v.enabled=P,v.autoUpdate=z,v.needsUpdate=F,v.type=q}function he(S){const P=S.target;P.removeEventListener("dispose",he),ae(P)}function ae(S){Me(S),be.remove(S)}function Me(S){const P=be.get(S).programs;P!==void 0&&(P.forEach(function(z){we.releaseProgram(z)}),S.isShaderMaterial&&we.releaseShaderCache(S))}this.renderBufferDirect=function(S,P,z,F,q,Te){P===null&&(P=ue);const Ae=q.isMesh&&q.matrixWorld.determinant()<0,Le=Ao(S,P,z,F,q);oe.setMaterial(F,Ae);let Ce=z.index;const Oe=z.attributes.position;if(Ce===null){if(Oe===void 0||Oe.count===0)return}else if(Ce.count===0)return;let Fe=1;F.wireframe===!0&&(Ce=re.getWireframeAttribute(z),Fe=2),pe.setup(q,F,Le,z,Ce);let Be,$e=de;Ce!==null&&(Be=le.get(Ce),$e=G,$e.setIndex(Be));const cn=Ce!==null?Ce.count:Oe.count,Mn=z.drawRange.start*Fe,ze=z.drawRange.count*Fe,Ct=Te!==null?Te.start*Fe:0,et=Te!==null?Te.count*Fe:1/0,Lt=Math.max(Mn,Ct),wi=Math.min(cn,Mn+ze,Ct+et)-1,Pt=Math.max(0,wi-Lt+1);if(Pt!==0){if(q.isMesh)F.wireframe===!0?(oe.setLineWidth(F.wireframeLinewidth*ge()),$e.setMode(1)):$e.setMode(4);else if(q.isLine){let Ut=F.linewidth;Ut===void 0&&(Ut=1),oe.setLineWidth(Ut*ge()),q.isLineSegments?$e.setMode(1):q.isLineLoop?$e.setMode(2):$e.setMode(3)}else q.isPoints?$e.setMode(0):q.isSprite&&$e.setMode(4);if(q.isInstancedMesh)$e.renderInstances(Lt,Pt,q.count);else if(z.isInstancedBufferGeometry){const Ut=Math.min(z.instanceCount,z._maxInstanceCount);$e.renderInstances(Lt,Pt,Ut)}else $e.render(Lt,Pt)}},this.compile=function(S,P){d=Ve.get(S),d.init(),g.push(d),S.traverseVisible(function(z){z.isLight&&z.layers.test(P.layers)&&(d.pushLight(z),z.castShadow&&d.pushShadow(z))}),d.setupLights(_.physicallyCorrectLights),S.traverse(function(z){const F=z.material;if(F)if(Array.isArray(F))for(let q=0;q<F.length;q++){const Te=F[q];dr(Te,S,z)}else dr(F,S,z)}),g.pop(),d=null};let W=null;function xe(S){W&&W(S)}function De(){gt.stop()}function Ze(){gt.start()}const gt=new Va;gt.setAnimationLoop(xe),typeof window!="undefined"&>.setContext(window),this.setAnimationLoop=function(S){W=S,te.setAnimationLoop(S),S===null?gt.stop():gt.start()},te.addEventListener("sessionstart",De),te.addEventListener("sessionend",Ze),this.render=function(S,P){if(P!==void 0&&P.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(M===!0)return;S.autoUpdate===!0&&S.updateMatrixWorld(),P.parent===null&&P.updateMatrixWorld(),te.enabled===!0&&te.isPresenting===!0&&(te.cameraAutoUpdate===!0&&te.updateCamera(P),P=te.getCamera()),S.isScene===!0&&S.onBeforeRender(_,S,P,E),d=Ve.get(S,g.length),d.init(),g.push(d),X.multiplyMatrices(P.projectionMatrix,P.matrixWorldInverse),V.setFromProjectionMatrix(X),ce=this.localClippingEnabled,j=b.init(this.clippingPlanes,ce,P),u=We.get(S,p.length),u.init(),p.push(u),Je(S,P,0,_.sortObjects),u.finish(),_.sortObjects===!0&&u.sort(R,D),j===!0&&b.beginShadows();const z=d.state.shadowsArray;if(v.render(z,S,P),j===!0&&b.endShadows(),this.info.autoReset===!0&&this.info.reset(),H.render(u,S),d.setupLights(_.physicallyCorrectLights),P.isArrayCamera){const F=P.cameras;for(let q=0,Te=F.length;q<Te;q++){const Ae=F[q];Rt(u,S,Ae,Ae.viewport)}}else Rt(u,S,P);E!==null&&(k.updateMultisampleRenderTarget(E),k.updateRenderTargetMipmap(E)),S.isScene===!0&&S.onAfterRender(_,S,P),oe.buffers.depth.setTest(!0),oe.buffers.depth.setMask(!0),oe.buffers.color.setMask(!0),oe.setPolygonOffset(!1),pe.resetDefaultState(),y=-1,T=null,g.pop(),g.length>0?d=g[g.length-1]:d=null,p.pop(),p.length>0?u=p[p.length-1]:u=null};function Je(S,P,z,F){if(S.visible===!1)return;if(S.layers.test(P.layers)){if(S.isGroup)z=S.renderOrder;else if(S.isLOD)S.autoUpdate===!0&&S.update(P);else if(S.isLight)d.pushLight(S),S.castShadow&&d.pushShadow(S);else if(S.isSprite){if(!S.frustumCulled||V.intersectsSprite(S)){F&&ne.setFromMatrixPosition(S.matrixWorld).applyMatrix4(X);const Ae=ye.update(S),Le=S.material;Le.visible&&u.push(S,Ae,Le,z,ne.z,null)}}else if((S.isMesh||S.isLine||S.isPoints)&&(S.isSkinnedMesh&&S.skeleton.frame!==Re.render.frame&&(S.skeleton.update(),S.skeleton.frame=Re.render.frame),!S.frustumCulled||V.intersectsObject(S))){F&&ne.setFromMatrixPosition(S.matrixWorld).applyMatrix4(X);const Ae=ye.update(S),Le=S.material;if(Array.isArray(Le)){const Ce=Ae.groups;for(let Oe=0,Fe=Ce.length;Oe<Fe;Oe++){const Be=Ce[Oe],$e=Le[Be.materialIndex];$e&&$e.visible&&u.push(S,Ae,$e,z,ne.z,Be)}}else Le.visible&&u.push(S,Ae,Le,z,ne.z,null)}}const Te=S.children;for(let Ae=0,Le=Te.length;Ae<Le;Ae++)Je(Te[Ae],P,z,F)}function Rt(S,P,z,F){const q=S.opaque,Te=S.transmissive,Ae=S.transparent;d.setupLightsView(z),Te.length>0&&zt(q,P,z),F&&oe.viewport(C.copy(F)),q.length>0&&bi(q,P,z),Te.length>0&&bi(Te,P,z),Ae.length>0&&bi(Ae,P,z)}function zt(S,P,z){if(O===null){const Ae=a===!0&&Se.isWebGL2===!0?rs:Mt;O=new Ae(1024,1024,{generateMipmaps:!0,type:_e.convert(1016)!==null?1016:1009,minFilter:1008,magFilter:1003,wrapS:1001,wrapT:1001,useRenderToTexture:fe.has("WEBGL_multisampled_render_to_texture")})}const F=_.getRenderTarget();_.setRenderTarget(O),_.clear();const q=_.toneMapping;_.toneMapping=0,bi(S,P,z),_.toneMapping=q,k.updateMultisampleRenderTarget(O),k.updateRenderTargetMipmap(O),_.setRenderTarget(F)}function bi(S,P,z){const F=P.isScene===!0?P.overrideMaterial:null;for(let q=0,Te=S.length;q<Te;q++){const Ae=S[q],Le=Ae.object,Ce=Ae.geometry,Oe=F===null?Ae.material:F,Fe=Ae.group;Le.layers.test(z.layers)&&Eo(Le,P,z,Ce,Oe,Fe)}}function Eo(S,P,z,F,q,Te){S.onBeforeRender(_,P,z,F,q,Te),S.modelViewMatrix.multiplyMatrices(z.matrixWorldInverse,S.matrixWorld),S.normalMatrix.getNormalMatrix(S.modelViewMatrix),q.onBeforeRender(_,P,z,F,S,Te),q.transparent===!0&&q.side===2?(q.side=1,q.needsUpdate=!0,_.renderBufferDirect(z,P,F,q,S,Te),q.side=0,q.needsUpdate=!0,_.renderBufferDirect(z,P,F,q,S,Te),q.side=2):_.renderBufferDirect(z,P,F,q,S,Te),S.onAfterRender(_,P,z,F,q,Te)}function dr(S,P,z){P.isScene!==!0&&(P=ue);const F=be.get(S),q=d.state.lights,Te=d.state.shadowsArray,Ae=q.state.version,Le=we.getParameters(S,q.state,Te,P,z),Ce=we.getProgramCacheKey(Le);let Oe=F.programs;F.environment=S.isMeshStandardMaterial?P.environment:null,F.fog=P.fog,F.envMap=(S.isMeshStandardMaterial?$:Q).get(S.envMap||F.environment),Oe===void 0&&(S.addEventListener("dispose",he),Oe=new Map,F.programs=Oe);let Fe=Oe.get(Ce);if(Fe!==void 0){if(F.currentProgram===Fe&&F.lightsStateVersion===Ae)return Ts(S,Le),Fe}else Le.uniforms=we.getUniforms(S),S.onBuild(z,Le,_),S.onBeforeCompile(Le,_),Fe=we.acquireProgram(Le,Ce),Oe.set(Ce,Fe),F.uniforms=Le.uniforms;const Be=F.uniforms;(!S.isShaderMaterial&&!S.isRawShaderMaterial||S.clipping===!0)&&(Be.clippingPlanes=b.uniform),Ts(S,Le),F.needsLights=Co(S),F.lightsStateVersion=Ae,F.needsLights&&(Be.ambientLightColor.value=q.state.ambient,Be.lightProbe.value=q.state.probe,Be.directionalLights.value=q.state.directional,Be.directionalLightShadows.value=q.state.directionalShadow,Be.spotLights.value=q.state.spot,Be.spotLightShadows.value=q.state.spotShadow,Be.rectAreaLights.value=q.state.rectArea,Be.ltc_1.value=q.state.rectAreaLTC1,Be.ltc_2.value=q.state.rectAreaLTC2,Be.pointLights.value=q.state.point,Be.pointLightShadows.value=q.state.pointShadow,Be.hemisphereLights.value=q.state.hemi,Be.directionalShadowMap.value=q.state.directionalShadowMap,Be.directionalShadowMatrix.value=q.state.directionalShadowMatrix,Be.spotShadowMap.value=q.state.spotShadowMap,Be.spotShadowMatrix.value=q.state.spotShadowMatrix,Be.pointShadowMap.value=q.state.pointShadowMap,Be.pointShadowMatrix.value=q.state.pointShadowMatrix);const $e=Fe.getUniforms(),cn=nn.seqWithValue($e.seq,Be);return F.currentProgram=Fe,F.uniformsList=cn,Fe}function Ts(S,P){const z=be.get(S);z.outputEncoding=P.outputEncoding,z.instancing=P.instancing,z.skinning=P.skinning,z.morphTargets=P.morphTargets,z.morphNormals=P.morphNormals,z.morphTargetsCount=P.morphTargetsCount,z.numClippingPlanes=P.numClippingPlanes,z.numIntersection=P.numClipIntersection,z.vertexAlphas=P.vertexAlphas,z.vertexTangents=P.vertexTangents,z.toneMapping=P.toneMapping}function Ao(S,P,z,F,q){P.isScene!==!0&&(P=ue),k.resetTextureUnits();const Te=P.fog,Ae=F.isMeshStandardMaterial?P.environment:null,Le=E===null?_.outputEncoding:E.isXRRenderTarget===!0?E.texture.encoding:3e3,Ce=(F.isMeshStandardMaterial?$:Q).get(F.envMap||Ae),Oe=F.vertexColors===!0&&!!z.attributes.color&&z.attributes.color.itemSize===4,Fe=!!F.normalMap&&!!z.attributes.tangent,Be=!!z.morphAttributes.position,$e=!!z.morphAttributes.normal,cn=z.morphAttributes.position?z.morphAttributes.position.length:0,Mn=F.toneMapped?_.toneMapping:0,ze=be.get(F),Ct=d.state.lights;if(j===!0&&(ce===!0||S!==T)){const bt=S===T&&F.id===y;b.setState(F,S,bt)}let et=!1;F.version===ze.__version?(ze.needsLights&&ze.lightsStateVersion!==Ct.state.version||ze.outputEncoding!==Le||q.isInstancedMesh&&ze.instancing===!1||!q.isInstancedMesh&&ze.instancing===!0||q.isSkinnedMesh&&ze.skinning===!1||!q.isSkinnedMesh&&ze.skinning===!0||ze.envMap!==Ce||F.fog&&ze.fog!==Te||ze.numClippingPlanes!==void 0&&(ze.numClippingPlanes!==b.numPlanes||ze.numIntersection!==b.numIntersection)||ze.vertexAlphas!==Oe||ze.vertexTangents!==Fe||ze.morphTargets!==Be||ze.morphNormals!==$e||ze.toneMapping!==Mn||Se.isWebGL2===!0&&ze.morphTargetsCount!==cn)&&(et=!0):(et=!0,ze.__version=F.version);let Lt=ze.currentProgram;et===!0&&(Lt=dr(F,P,q));let wi=!1,Pt=!1,Ut=!1;const ot=Lt.getUniforms(),Qn=ze.uniforms;if(oe.useProgram(Lt.program)&&(wi=!0,Pt=!0,Ut=!0),F.id!==y&&(y=F.id,Pt=!0),wi||T!==S){if(ot.setValue(U,"projectionMatrix",S.projectionMatrix),Se.logarithmicDepthBuffer&&ot.setValue(U,"logDepthBufFC",2/(Math.log(S.far+1)/Math.LN2)),T!==S&&(T=S,Pt=!0,Ut=!0),F.isShaderMaterial||F.isMeshPhongMaterial||F.isMeshToonMaterial||F.isMeshStandardMaterial||F.envMap){const bt=ot.map.cameraPosition;bt!==void 0&&bt.setValue(U,ne.setFromMatrixPosition(S.matrixWorld))}(F.isMeshPhongMaterial||F.isMeshToonMaterial||F.isMeshLambertMaterial||F.isMeshBasicMaterial||F.isMeshStandardMaterial||F.isShaderMaterial)&&ot.setValue(U,"isOrthographic",S.isOrthographicCamera===!0),(F.isMeshPhongMaterial||F.isMeshToonMaterial||F.isMeshLambertMaterial||F.isMeshBasicMaterial||F.isMeshStandardMaterial||F.isShaderMaterial||F.isShadowMaterial||q.isSkinnedMesh)&&ot.setValue(U,"viewMatrix",S.matrixWorldInverse)}if(q.isSkinnedMesh){ot.setOptional(U,q,"bindMatrix"),ot.setOptional(U,q,"bindMatrixInverse");const bt=q.skeleton;bt&&(Se.floatVertexTextures?(bt.boneTexture===null&&bt.computeBoneTexture(),ot.setValue(U,"boneTexture",bt.boneTexture,k),ot.setValue(U,"boneTextureSize",bt.boneTextureSize)):ot.setOptional(U,bt,"boneMatrices"))}return!!z&&(z.morphAttributes.position!==void 0||z.morphAttributes.normal!==void 0)&&K.update(q,z,F,Lt),(Pt||ze.receiveShadow!==q.receiveShadow)&&(ze.receiveShadow=q.receiveShadow,ot.setValue(U,"receiveShadow",q.receiveShadow)),Pt&&(ot.setValue(U,"toneMappingExposure",_.toneMappingExposure),ze.needsLights&&Ro(Qn,Ut),Te&&F.fog&&Ie.refreshFogUniforms(Qn,Te),Ie.refreshMaterialUniforms(Qn,F,x,Z,O),nn.upload(U,ze.uniformsList,Qn,k)),F.isShaderMaterial&&F.uniformsNeedUpdate===!0&&(nn.upload(U,ze.uniformsList,Qn,k),F.uniformsNeedUpdate=!1),F.isSpriteMaterial&&ot.setValue(U,"center",q.center),ot.setValue(U,"modelViewMatrix",q.modelViewMatrix),ot.setValue(U,"normalMatrix",q.normalMatrix),ot.setValue(U,"modelMatrix",q.matrixWorld),Lt}function Ro(S,P){S.ambientLightColor.needsUpdate=P,S.lightProbe.needsUpdate=P,S.directionalLights.needsUpdate=P,S.directionalLightShadows.needsUpdate=P,S.pointLights.needsUpdate=P,S.pointLightShadows.needsUpdate=P,S.spotLights.needsUpdate=P,S.spotLightShadows.needsUpdate=P,S.rectAreaLights.needsUpdate=P,S.hemisphereLights.needsUpdate=P}function Co(S){return S.isMeshLambertMaterial||S.isMeshToonMaterial||S.isMeshPhongMaterial||S.isMeshStandardMaterial||S.isShadowMaterial||S.isShaderMaterial&&S.lights===!0}this.getActiveCubeFace=function(){return m},this.getActiveMipmapLevel=function(){return f},this.getRenderTarget=function(){return E},this.setRenderTargetTextures=function(S,P,z){be.get(S.texture).__webglTexture=P,be.get(S.depthTexture).__webglTexture=z;const F=be.get(S);F.__hasExternalTextures=!0,F.__hasExternalTextures&&(F.__autoAllocateDepthBuffer=z===void 0,F.__autoAllocateDepthBuffer||S.useRenderToTexture&&(console.warn("render-to-texture extension was disabled because an external texture was provided"),S.useRenderToTexture=!1,S.useRenderbuffer=!0))},this.setRenderTargetFramebuffer=function(S,P){const z=be.get(S);z.__webglFramebuffer=P,z.__useDefaultFramebuffer=P===void 0},this.setRenderTarget=function(S,P=0,z=0){E=S,m=P,f=z;let F=!0;if(S){const Ce=be.get(S);Ce.__useDefaultFramebuffer!==void 0?(oe.bindFramebuffer(36160,null),F=!1):Ce.__webglFramebuffer===void 0?k.setupRenderTarget(S):Ce.__hasExternalTextures&&k.rebindTextures(S,be.get(S.texture).__webglTexture,be.get(S.depthTexture).__webglTexture)}let q=null,Te=!1,Ae=!1;if(S){const Ce=S.texture;(Ce.isDataTexture3D||Ce.isDataTexture2DArray)&&(Ae=!0);const Oe=be.get(S).__webglFramebuffer;S.isWebGLCubeRenderTarget?(q=Oe[P],Te=!0):S.useRenderbuffer?q=be.get(S).__webglMultisampledFramebuffer:q=Oe,C.copy(S.viewport),L.copy(S.scissor),Y=S.scissorTest}else C.copy(B).multiplyScalar(x).floor(),L.copy(N).multiplyScalar(x).floor(),Y=I;if(oe.bindFramebuffer(36160,q)&&Se.drawBuffers&&F&&oe.drawBuffers(S,q),oe.viewport(C),oe.scissor(L),oe.setScissorTest(Y),Te){const Ce=be.get(S.texture);U.framebufferTexture2D(36160,36064,34069+P,Ce.__webglTexture,z)}else if(Ae){const Ce=be.get(S.texture),Oe=P||0;U.framebufferTextureLayer(36160,36064,Ce.__webglTexture,z||0,Oe)}y=-1},this.readRenderTargetPixels=function(S,P,z,F,q,Te,Ae){if(!(S&&S.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Le=be.get(S).__webglFramebuffer;if(S.isWebGLCubeRenderTarget&&Ae!==void 0&&(Le=Le[Ae]),Le){oe.bindFramebuffer(36160,Le);try{const Ce=S.texture,Oe=Ce.format,Fe=Ce.type;if(Oe!==1023&&_e.convert(Oe)!==U.getParameter(35739)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const Be=Fe===1016&&(fe.has("EXT_color_buffer_half_float")||Se.isWebGL2&&fe.has("EXT_color_buffer_float"));if(Fe!==1009&&_e.convert(Fe)!==U.getParameter(35738)&&!(Fe===1015&&(Se.isWebGL2||fe.has("OES_texture_float")||fe.has("WEBGL_color_buffer_float")))&&!Be){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}U.checkFramebufferStatus(36160)===36053?P>=0&&P<=S.width-F&&z>=0&&z<=S.height-q&&U.readPixels(P,z,F,q,_e.convert(Oe),_e.convert(Fe),Te):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.")}finally{const Ce=E!==null?be.get(E).__webglFramebuffer:null;oe.bindFramebuffer(36160,Ce)}}},this.copyFramebufferToTexture=function(S,P,z=0){if(P.isFramebufferTexture!==!0){console.error("THREE.WebGLRenderer: copyFramebufferToTexture() can only be used with FramebufferTexture.");return}const F=Math.pow(2,-z),q=Math.floor(P.image.width*F),Te=Math.floor(P.image.height*F);k.setTexture2D(P,0),U.copyTexSubImage2D(3553,z,0,0,S.x,S.y,q,Te),oe.unbindTexture()},this.copyTextureToTexture=function(S,P,z,F=0){const q=P.image.width,Te=P.image.height,Ae=_e.convert(z.format),Le=_e.convert(z.type);k.setTexture2D(z,0),U.pixelStorei(37440,z.flipY),U.pixelStorei(37441,z.premultiplyAlpha),U.pixelStorei(3317,z.unpackAlignment),P.isDataTexture?U.texSubImage2D(3553,F,S.x,S.y,q,Te,Ae,Le,P.image.data):P.isCompressedTexture?U.compressedTexSubImage2D(3553,F,S.x,S.y,P.mipmaps[0].width,P.mipmaps[0].height,Ae,P.mipmaps[0].data):U.texSubImage2D(3553,F,S.x,S.y,Ae,Le,P.image),F===0&&z.generateMipmaps&&U.generateMipmap(3553),oe.unbindTexture()},this.copyTextureToTexture3D=function(S,P,z,F,q=0){if(_.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const Te=S.max.x-S.min.x+1,Ae=S.max.y-S.min.y+1,Le=S.max.z-S.min.z+1,Ce=_e.convert(F.format),Oe=_e.convert(F.type);let Fe;if(F.isDataTexture3D)k.setTexture3D(F,0),Fe=32879;else if(F.isDataTexture2DArray)k.setTexture2DArray(F,0),Fe=35866;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}U.pixelStorei(37440,F.flipY),U.pixelStorei(37441,F.premultiplyAlpha),U.pixelStorei(3317,F.unpackAlignment);const Be=U.getParameter(3314),$e=U.getParameter(32878),cn=U.getParameter(3316),Mn=U.getParameter(3315),ze=U.getParameter(32877),Ct=z.isCompressedTexture?z.mipmaps[0]:z.image;U.pixelStorei(3314,Ct.width),U.pixelStorei(32878,Ct.height),U.pixelStorei(3316,S.min.x),U.pixelStorei(3315,S.min.y),U.pixelStorei(32877,S.min.z),z.isDataTexture||z.isDataTexture3D?U.texSubImage3D(Fe,q,P.x,P.y,P.z,Te,Ae,Le,Ce,Oe,Ct.data):z.isCompressedTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),U.compressedTexSubImage3D(Fe,q,P.x,P.y,P.z,Te,Ae,Le,Ce,Ct.data)):U.texSubImage3D(Fe,q,P.x,P.y,P.z,Te,Ae,Le,Ce,Oe,Ct),U.pixelStorei(3314,Be),U.pixelStorei(32878,$e),U.pixelStorei(3316,cn),U.pixelStorei(3315,Mn),U.pixelStorei(32877,ze),q===0&&F.generateMipmaps&&U.generateMipmap(Fe),oe.unbindTexture()},this.initTexture=function(S){k.setTexture2D(S,0),oe.unbindTexture()},this.resetState=function(){m=0,f=0,E=null,oe.reset(),pe.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}He.prototype.isWebGLRenderer=!0;class pd extends He{}pd.prototype.isWebGL1Renderer=!0;class fs{constructor(e,t=1,n=1e3){this.name="",this.color=new me(e),this.near=t,this.far=n}clone(){return new fs(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}fs.prototype.isFog=!0;class no extends Ue{constructor(){super();this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.autoUpdate=e.autoUpdate,this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),t}}no.prototype.isScene=!0;class vi{constructor(e,t){this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=35044,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Ft()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,n){e*=this.stride,n*=t.stride;for(let i=0,r=this.stride;i<r;i++)this.array[e+i]=t.array[n+i];return this}set(e,t=0){return this.array.set(e,t),this}clone(e){e.arrayBuffers===void 0&&(e.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=Ft()),e.arrayBuffers[this.array.buffer._uuid]===void 0&&(e.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const t=new this.array.constructor(e.arrayBuffers[this.array.buffer._uuid]),n=new this.constructor(t,this.stride);return n.setUsage(this.usage),n}onUpload(e){return this.onUploadCallback=e,this}toJSON(e){return e.arrayBuffers===void 0&&(e.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=Ft()),e.arrayBuffers[this.array.buffer._uuid]===void 0&&(e.arrayBuffers[this.array.buffer._uuid]=Array.prototype.slice.call(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}vi.prototype.isInterleavedBuffer=!0;const Ke=new w;class pi{constructor(e,t,n,i=!1){this.name="",this.data=e,this.itemSize=t,this.offset=n,this.normalized=i===!0}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(e){this.data.needsUpdate=e}applyMatrix4(e){for(let t=0,n=this.data.count;t<n;t++)Ke.x=this.getX(t),Ke.y=this.getY(t),Ke.z=this.getZ(t),Ke.applyMatrix4(e),this.setXYZ(t,Ke.x,Ke.y,Ke.z);return this}applyNormalMatrix(e){for(let t=0,n=this.count;t<n;t++)Ke.x=this.getX(t),Ke.y=this.getY(t),Ke.z=this.getZ(t),Ke.applyNormalMatrix(e),this.setXYZ(t,Ke.x,Ke.y,Ke.z);return this}transformDirection(e){for(let t=0,n=this.count;t<n;t++)Ke.x=this.getX(t),Ke.y=this.getY(t),Ke.z=this.getZ(t),Ke.transformDirection(e),this.setXYZ(t,Ke.x,Ke.y,Ke.z);return this}setX(e,t){return this.data.array[e*this.data.stride+this.offset]=t,this}setY(e,t){return this.data.array[e*this.data.stride+this.offset+1]=t,this}setZ(e,t){return this.data.array[e*this.data.stride+this.offset+2]=t,this}setW(e,t){return this.data.array[e*this.data.stride+this.offset+3]=t,this}getX(e){return this.data.array[e*this.data.stride+this.offset]}getY(e){return this.data.array[e*this.data.stride+this.offset+1]}getZ(e){return this.data.array[e*this.data.stride+this.offset+2]}getW(e){return this.data.array[e*this.data.stride+this.offset+3]}setXY(e,t,n){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=n,this}setXYZ(e,t,n,i){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=n,this.data.array[e+2]=i,this}setXYZW(e,t,n,i,r){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=n,this.data.array[e+2]=i,this.data.array[e+3]=r,this}clone(e){if(e===void 0){console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.");const t=[];for(let n=0;n<this.count;n++){const i=n*this.data.stride+this.offset;for(let r=0;r<this.itemSize;r++)t.push(this.data.array[i+r])}return new tt(new this.array.constructor(t),this.itemSize,this.normalized)}else return e.interleavedBuffers===void 0&&(e.interleavedBuffers={}),e.interleavedBuffers[this.data.uuid]===void 0&&(e.interleavedBuffers[this.data.uuid]=this.data.clone(e)),new pi(e.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(e){if(e===void 0){console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.");const t=[];for(let n=0;n<this.count;n++){const i=n*this.data.stride+this.offset;for(let r=0;r<this.itemSize;r++)t.push(this.data.array[i+r])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}else return e.interleavedBuffers===void 0&&(e.interleavedBuffers={}),e.interleavedBuffers[this.data.uuid]===void 0&&(e.interleavedBuffers[this.data.uuid]=this.data.toJSON(e)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}pi.prototype.isInterleavedBufferAttribute=!0;class io extends ut{constructor(e){super();this.type="SpriteMaterial",this.color=new me(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.alphaMap=e.alphaMap,this.rotation=e.rotation,this.sizeAttenuation=e.sizeAttenuation,this}}io.prototype.isSpriteMaterial=!0;let zn;const ri=new w,Un=new w,On=new w,Gn=new J,si=new J,ro=new ve,qi=new w,ai=new w,Xi=new w,la=new J,Gr=new J,ca=new J;class md extends Ue{constructor(e){super();if(this.type="Sprite",zn===void 0){zn=new Ye;const t=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),n=new vi(t,5);zn.setIndex([0,1,2,0,2,3]),zn.setAttribute("position",new pi(n,3,0,!1)),zn.setAttribute("uv",new pi(n,2,3,!1))}this.geometry=zn,this.material=e!==void 0?e:new io,this.center=new J(.5,.5)}raycast(e,t){e.camera===null&&console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'),Un.setFromMatrixScale(this.matrixWorld),ro.copy(e.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(e.camera.matrixWorldInverse,this.matrixWorld),On.setFromMatrixPosition(this.modelViewMatrix),e.camera.isPerspectiveCamera&&this.material.sizeAttenuation===!1&&Un.multiplyScalar(-On.z);const n=this.material.rotation;let i,r;n!==0&&(r=Math.cos(n),i=Math.sin(n));const a=this.center;Yi(qi.set(-.5,-.5,0),On,a,Un,i,r),Yi(ai.set(.5,-.5,0),On,a,Un,i,r),Yi(Xi.set(.5,.5,0),On,a,Un,i,r),la.set(0,0),Gr.set(1,0),ca.set(1,1);let o=e.ray.intersectTriangle(qi,ai,Xi,!1,ri);if(o===null&&(Yi(ai.set(-.5,.5,0),On,a,Un,i,r),Gr.set(0,1),o=e.ray.intersectTriangle(qi,Xi,ai,!1,ri),o===null))return;const c=e.ray.origin.distanceTo(ri);c<e.near||c>e.far||t.push({distance:c,point:ri.clone(),uv:Qe.getUV(ri,qi,ai,Xi,la,Gr,ca,new J),face:null,object:this})}copy(e){return super.copy(e),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}}md.prototype.isSprite=!0;function Yi(s,e,t,n,i,r){Gn.subVectors(s,t).addScalar(.5).multiply(n),i!==void 0?(si.x=r*Gn.x-i*Gn.y,si.y=i*Gn.x+r*Gn.y):si.copy(Gn),s.copy(e),s.x+=si.x,s.y+=si.y,s.applyMatrix4(ro)}const ha=new w,ua=new ke,da=new ke,gd=new w,fa=new ve;class so extends mt{constructor(e,t){super(e,t);this.type="SkinnedMesh",this.bindMode="attached",this.bindMatrix=new ve,this.bindMatrixInverse=new ve}copy(e){return super.copy(e),this.bindMode=e.bindMode,this.bindMatrix.copy(e.bindMatrix),this.bindMatrixInverse.copy(e.bindMatrixInverse),this.skeleton=e.skeleton,this}bind(e,t){this.skeleton=e,t===void 0&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),t=this.matrixWorld),this.bindMatrix.copy(t),this.bindMatrixInverse.copy(t).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const e=new ke,t=this.geometry.attributes.skinWeight;for(let n=0,i=t.count;n<i;n++){e.x=t.getX(n),e.y=t.getY(n),e.z=t.getZ(n),e.w=t.getW(n);const r=1/e.manhattanLength();r!==1/0?e.multiplyScalar(r):e.set(1,0,0,0),t.setXYZW(n,e.x,e.y,e.z,e.w)}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.bindMode==="attached"?this.bindMatrixInverse.copy(this.matrixWorld).invert():this.bindMode==="detached"?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)}boneTransform(e,t){const n=this.skeleton,i=this.geometry;ua.fromBufferAttribute(i.attributes.skinIndex,e),da.fromBufferAttribute(i.attributes.skinWeight,e),ha.copy(t).applyMatrix4(this.bindMatrix),t.set(0,0,0);for(let r=0;r<4;r++){const a=da.getComponent(r);if(a!==0){const o=ua.getComponent(r);fa.multiplyMatrices(n.bones[o].matrixWorld,n.boneInverses[o]),t.addScaledVector(gd.copy(ha).applyMatrix4(fa),a)}}return t.applyMatrix4(this.bindMatrixInverse)}}so.prototype.isSkinnedMesh=!0;class _d extends Ue{constructor(){super();this.type="Bone"}}_d.prototype.isBone=!0;class xd extends rt{constructor(e=null,t=1,n=1,i,r,a,o,c,l=1003,h=1003,u,d){super(null,a,o,c,l,h,i,r,u,d);this.image={data:e,width:t,height:n},this.magFilter=l,this.minFilter=h,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}xd.prototype.isDataTexture=!0;class $r extends tt{constructor(e,t,n,i=1){typeof n=="number"&&(i=n,n=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument."));super(e,t,n);this.meshPerAttribute=i}copy(e){return super.copy(e),this.meshPerAttribute=e.meshPerAttribute,this}toJSON(){const e=super.toJSON();return e.meshPerAttribute=this.meshPerAttribute,e.isInstancedBufferAttribute=!0,e}}$r.prototype.isInstancedBufferAttribute=!0;const pa=new ve,ma=new ve,Zi=[],oi=new mt;class vd extends mt{constructor(e,t,n){super(e,t);this.instanceMatrix=new $r(new Float32Array(n*16),16),this.instanceColor=null,this.count=n,this.frustumCulled=!1}copy(e){return super.copy(e),this.instanceMatrix.copy(e.instanceMatrix),e.instanceColor!==null&&(this.instanceColor=e.instanceColor.clone()),this.count=e.count,this}getColorAt(e,t){t.fromArray(this.instanceColor.array,e*3)}getMatrixAt(e,t){t.fromArray(this.instanceMatrix.array,e*16)}raycast(e,t){const n=this.matrixWorld,i=this.count;if(oi.geometry=this.geometry,oi.material=this.material,oi.material!==void 0)for(let r=0;r<i;r++){this.getMatrixAt(r,pa),ma.multiplyMatrices(n,pa),oi.matrixWorld=ma,oi.raycast(e,Zi);for(let a=0,o=Zi.length;a<o;a++){const c=Zi[a];c.instanceId=r,c.object=this,t.push(c)}Zi.length=0}}setColorAt(e,t){this.instanceColor===null&&(this.instanceColor=new $r(new Float32Array(this.instanceMatrix.count*3),3)),t.toArray(this.instanceColor.array,e*3)}setMatrixAt(e,t){t.toArray(this.instanceMatrix.array,e*16)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:"dispose"})}}vd.prototype.isInstancedMesh=!0;class yi extends ut{constructor(e){super();this.type="LineBasicMaterial",this.color=new me(16777215),this.linewidth=1,this.linecap="round",this.linejoin="round",this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.linewidth=e.linewidth,this.linecap=e.linecap,this.linejoin=e.linejoin,this}}yi.prototype.isLineBasicMaterial=!0;const ga=new w,_a=new w,xa=new ve,Vr=new vn,ji=new Zn;class ps extends Ue{constructor(e=new Ye,t=new yi){super();this.type="Line",this.geometry=e,this.material=t,this.updateMorphTargets()}copy(e){return super.copy(e),this.material=e.material,this.geometry=e.geometry,this}computeLineDistances(){const e=this.geometry;if(e.isBufferGeometry)if(e.index===null){const t=e.attributes.position,n=[0];for(let i=1,r=t.count;i<r;i++)ga.fromBufferAttribute(t,i-1),_a.fromBufferAttribute(t,i),n[i]=n[i-1],n[i]+=ga.distanceTo(_a);e.setAttribute("lineDistance",new it(n,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else e.isGeometry&&console.error("THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");return this}raycast(e,t){const n=this.geometry,i=this.matrixWorld,r=e.params.Line.threshold,a=n.drawRange;if(n.boundingSphere===null&&n.computeBoundingSphere(),ji.copy(n.boundingSphere),ji.applyMatrix4(i),ji.radius+=r,e.ray.intersectsSphere(ji)===!1)return;xa.copy(i).invert(),Vr.copy(e.ray).applyMatrix4(xa);const o=r/((this.scale.x+this.scale.y+this.scale.z)/3),c=o*o,l=new w,h=new w,u=new w,d=new w,p=this.isLineSegments?2:1;if(n.isBufferGeometry){const g=n.index,M=n.attributes.position;if(g!==null){const m=Math.max(0,a.start),f=Math.min(g.count,a.start+a.count);for(let E=m,y=f-1;E<y;E+=p){const T=g.getX(E),C=g.getX(E+1);if(l.fromBufferAttribute(M,T),h.fromBufferAttribute(M,C),Vr.distanceSqToSegment(l,h,d,u)>c)continue;d.applyMatrix4(this.matrixWorld);const Y=e.ray.origin.distanceTo(d);Y<e.near||Y>e.far||t.push({distance:Y,point:u.clone().applyMatrix4(this.matrixWorld),index:E,face:null,faceIndex:null,object:this})}}else{const m=Math.max(0,a.start),f=Math.min(M.count,a.start+a.count);for(let E=m,y=f-1;E<y;E+=p){if(l.fromBufferAttribute(M,E),h.fromBufferAttribute(M,E+1),Vr.distanceSqToSegment(l,h,d,u)>c)continue;d.applyMatrix4(this.matrixWorld);const C=e.ray.origin.distanceTo(d);C<e.near||C>e.far||t.push({distance:C,point:u.clone().applyMatrix4(this.matrixWorld),index:E,face:null,faceIndex:null,object:this})}}}else n.isGeometry&&console.error("THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}updateMorphTargets(){const e=this.geometry;if(e.isBufferGeometry){const t=e.morphAttributes,n=Object.keys(t);if(n.length>0){const i=t[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,a=i.length;r<a;r++){const o=i[r].name||String(r);this.morphTargetInfluences.push(0),this.morphTargetDictionary[o]=r}}}}else{const t=e.morphTargets;t!==void 0&&t.length>0&&console.error("THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}ps.prototype.isLine=!0;const va=new w,ya=new w;class ms extends ps{constructor(e,t){super(e,t);this.type="LineSegments"}computeLineDistances(){const e=this.geometry;if(e.isBufferGeometry)if(e.index===null){const t=e.attributes.position,n=[];for(let i=0,r=t.count;i<r;i+=2)va.fromBufferAttribute(t,i),ya.fromBufferAttribute(t,i+1),n[i]=i===0?0:n[i-1],n[i+1]=n[i]+va.distanceTo(ya);e.setAttribute("lineDistance",new it(n,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else e.isGeometry&&console.error("THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");return this}}ms.prototype.isLineSegments=!0;class yd extends ps{constructor(e,t){super(e,t);this.type="LineLoop"}}yd.prototype.isLineLoop=!0;class ao extends ut{constructor(e){super();this.type="PointsMaterial",this.color=new me(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.alphaMap=e.alphaMap,this.size=e.size,this.sizeAttenuation=e.sizeAttenuation,this}}ao.prototype.isPointsMaterial=!0;const Ma=new ve,Kr=new vn,Ji=new Zn,$i=new w;class Md extends Ue{constructor(e=new Ye,t=new ao){super();this.type="Points",this.geometry=e,this.material=t,this.updateMorphTargets()}copy(e){return super.copy(e),this.material=e.material,this.geometry=e.geometry,this}raycast(e,t){const n=this.geometry,i=this.matrixWorld,r=e.params.Points.threshold,a=n.drawRange;if(n.boundingSphere===null&&n.computeBoundingSphere(),Ji.copy(n.boundingSphere),Ji.applyMatrix4(i),Ji.radius+=r,e.ray.intersectsSphere(Ji)===!1)return;Ma.copy(i).invert(),Kr.copy(e.ray).applyMatrix4(Ma);const o=r/((this.scale.x+this.scale.y+this.scale.z)/3),c=o*o;if(n.isBufferGeometry){const l=n.index,u=n.attributes.position;if(l!==null){const d=Math.max(0,a.start),p=Math.min(l.count,a.start+a.count);for(let g=d,_=p;g<_;g++){const M=l.getX(g);$i.fromBufferAttribute(u,M),Sa($i,M,c,i,e,t,this)}}else{const d=Math.max(0,a.start),p=Math.min(u.count,a.start+a.count);for(let g=d,_=p;g<_;g++)$i.fromBufferAttribute(u,g),Sa($i,g,c,i,e,t,this)}}else console.error("THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}updateMorphTargets(){const e=this.geometry;if(e.isBufferGeometry){const t=e.morphAttributes,n=Object.keys(t);if(n.length>0){const i=t[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,a=i.length;r<a;r++){const o=i[r].name||String(r);this.morphTargetInfluences.push(0),this.morphTargetDictionary[o]=r}}}}else{const t=e.morphTargets;t!==void 0&&t.length>0&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}Md.prototype.isPoints=!0;function Sa(s,e,t,n,i,r,a){const o=Kr.distanceSqToPoint(s);if(o<t){const c=new w;Kr.closestPointToPoint(s,c),c.applyMatrix4(n);const l=i.ray.origin.distanceTo(c);if(l<i.near||l>i.far)return;r.push({distance:l,distanceToRay:Math.sqrt(o),point:c,index:e,face:null,object:a})}}class Sd extends rt{constructor(e,t,n,i,r,a,o,c,l){super(e,t,n,i,r,a,o,c,l);this.minFilter=a!==void 0?a:1006,this.magFilter=r!==void 0?r:1006,this.generateMipmaps=!1;const h=this;function u(){h.needsUpdate=!0,e.requestVideoFrameCallback(u)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(u)}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}Sd.prototype.isVideoTexture=!0;class bd extends rt{constructor(e,t,n){super({width:e,height:t});this.format=n,this.magFilter=1003,this.minFilter=1003,this.generateMipmaps=!1,this.needsUpdate=!0}}bd.prototype.isFramebufferTexture=!0;class wd extends rt{constructor(e,t,n,i,r,a,o,c,l,h,u,d){super(null,a,o,c,l,h,i,r,u,d);this.image={width:t,height:n},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}wd.prototype.isCompressedTexture=!0;class Td extends rt{constructor(e,t,n,i,r,a,o,c,l){super(e,t,n,i,r,a,o,c,l);this.needsUpdate=!0}}Td.prototype.isCanvasTexture=!0;new w;new w;new w;new Qe;class St{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){const n=this.getUtoTmapping(e);return this.getPoint(n,t)}getPoints(e=5){const t=[];for(let n=0;n<=e;n++)t.push(this.getPoint(n/e));return t}getSpacedPoints(e=5){const t=[];for(let n=0;n<=e;n++)t.push(this.getPointAt(n/e));return t}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const t=[];let n,i=this.getPoint(0),r=0;t.push(0);for(let a=1;a<=e;a++)n=this.getPoint(a/e),r+=n.distanceTo(i),t.push(r),i=n;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const n=this.getLengths();let i=0;const r=n.length;let a;t?a=t:a=e*n[r-1];let o=0,c=r-1,l;for(;o<=c;)if(i=Math.floor(o+(c-o)/2),l=n[i]-a,l<0)o=i+1;else if(l>0)c=i-1;else{c=i;break}if(i=c,n[i]===a)return i/(r-1);const h=n[i],d=n[i+1]-h,p=(a-h)/d;return(i+p)/(r-1)}getTangent(e,t){let i=e-1e-4,r=e+1e-4;i<0&&(i=0),r>1&&(r=1);const a=this.getPoint(i),o=this.getPoint(r),c=t||(a.isVector2?new J:new w);return c.copy(o).sub(a).normalize(),c}getTangentAt(e,t){const n=this.getUtoTmapping(e);return this.getTangent(n,t)}computeFrenetFrames(e,t){const n=new w,i=[],r=[],a=[],o=new w,c=new ve;for(let p=0;p<=e;p++){const g=p/e;i[p]=this.getTangentAt(g,new w)}r[0]=new w,a[0]=new w;let l=Number.MAX_VALUE;const h=Math.abs(i[0].x),u=Math.abs(i[0].y),d=Math.abs(i[0].z);h<=l&&(l=h,n.set(1,0,0)),u<=l&&(l=u,n.set(0,1,0)),d<=l&&n.set(0,0,1),o.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],o),a[0].crossVectors(i[0],r[0]);for(let p=1;p<=e;p++){if(r[p]=r[p-1].clone(),a[p]=a[p-1].clone(),o.crossVectors(i[p-1],i[p]),o.length()>Number.EPSILON){o.normalize();const g=Math.acos(vt(i[p-1].dot(i[p]),-1,1));r[p].applyMatrix4(c.makeRotationAxis(o,g))}a[p].crossVectors(i[p],r[p])}if(t===!0){let p=Math.acos(vt(r[0].dot(r[e]),-1,1));p/=e,i[0].dot(o.crossVectors(r[0],r[e]))>0&&(p=-p);for(let g=1;g<=e;g++)r[g].applyMatrix4(c.makeRotationAxis(i[g],p*g)),a[g].crossVectors(i[g],r[g])}return{tangents:i,normals:r,binormals:a}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class cr extends St{constructor(e=0,t=0,n=1,i=1,r=0,a=Math.PI*2,o=!1,c=0){super();this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=a,this.aClockwise=o,this.aRotation=c}getPoint(e,t){const n=t||new J,i=Math.PI*2;let r=this.aEndAngle-this.aStartAngle;const a=Math.abs(r)<Number.EPSILON;for(;r<0;)r+=i;for(;r>i;)r-=i;r<Number.EPSILON&&(a?r=0:r=i),this.aClockwise===!0&&!a&&(r===i?r=-i:r=r-i);const o=this.aStartAngle+e*r;let c=this.aX+this.xRadius*Math.cos(o),l=this.aY+this.yRadius*Math.sin(o);if(this.aRotation!==0){const h=Math.cos(this.aRotation),u=Math.sin(this.aRotation),d=c-this.aX,p=l-this.aY;c=d*h-p*u+this.aX,l=d*u+p*h+this.aY}return n.set(c,l)}copy(e){return super.copy(e),this.aX=e.aX,this.aY=e.aY,this.xRadius=e.xRadius,this.yRadius=e.yRadius,this.aStartAngle=e.aStartAngle,this.aEndAngle=e.aEndAngle,this.aClockwise=e.aClockwise,this.aRotation=e.aRotation,this}toJSON(){const e=super.toJSON();return e.aX=this.aX,e.aY=this.aY,e.xRadius=this.xRadius,e.yRadius=this.yRadius,e.aStartAngle=this.aStartAngle,e.aEndAngle=this.aEndAngle,e.aClockwise=this.aClockwise,e.aRotation=this.aRotation,e}fromJSON(e){return super.fromJSON(e),this.aX=e.aX,this.aY=e.aY,this.xRadius=e.xRadius,this.yRadius=e.yRadius,this.aStartAngle=e.aStartAngle,this.aEndAngle=e.aEndAngle,this.aClockwise=e.aClockwise,this.aRotation=e.aRotation,this}}cr.prototype.isEllipseCurve=!0;class oo extends cr{constructor(e,t,n,i,r,a){super(e,t,n,n,i,r,a);this.type="ArcCurve"}}oo.prototype.isArcCurve=!0;function gs(){let s=0,e=0,t=0,n=0;function i(r,a,o,c){s=r,e=o,t=-3*r+3*a-2*o-c,n=2*r-2*a+o+c}return{initCatmullRom:function(r,a,o,c,l){i(a,o,l*(o-r),l*(c-a))},initNonuniformCatmullRom:function(r,a,o,c,l,h,u){let d=(a-r)/l-(o-r)/(l+h)+(o-a)/h,p=(o-a)/h-(c-a)/(h+u)+(c-o)/u;d*=h,p*=h,i(a,o,d,p)},calc:function(r){const a=r*r,o=a*r;return s+e*r+t*a+n*o}}}const Ki=new w,Hr=new gs,kr=new gs,Wr=new gs;class lo extends St{constructor(e=[],t=!1,n="centripetal",i=.5){super();this.type="CatmullRomCurve3",this.points=e,this.closed=t,this.curveType=n,this.tension=i}getPoint(e,t=new w){const n=t,i=this.points,r=i.length,a=(r-(this.closed?0:1))*e;let o=Math.floor(a),c=a-o;this.closed?o+=o>0?0:(Math.floor(Math.abs(o)/r)+1)*r:c===0&&o===r-1&&(o=r-2,c=1);let l,h;this.closed||o>0?l=i[(o-1)%r]:(Ki.subVectors(i[0],i[1]).add(i[0]),l=Ki);const u=i[o%r],d=i[(o+1)%r];if(this.closed||o+2<r?h=i[(o+2)%r]:(Ki.subVectors(i[r-1],i[r-2]).add(i[r-1]),h=Ki),this.curveType==="centripetal"||this.curveType==="chordal"){const p=this.curveType==="chordal"?.5:.25;let g=Math.pow(l.distanceToSquared(u),p),_=Math.pow(u.distanceToSquared(d),p),M=Math.pow(d.distanceToSquared(h),p);_<1e-4&&(_=1),g<1e-4&&(g=_),M<1e-4&&(M=_),Hr.initNonuniformCatmullRom(l.x,u.x,d.x,h.x,g,_,M),kr.initNonuniformCatmullRom(l.y,u.y,d.y,h.y,g,_,M),Wr.initNonuniformCatmullRom(l.z,u.z,d.z,h.z,g,_,M)}else this.curveType==="catmullrom"&&(Hr.initCatmullRom(l.x,u.x,d.x,h.x,this.tension),kr.initCatmullRom(l.y,u.y,d.y,h.y,this.tension),Wr.initCatmullRom(l.z,u.z,d.z,h.z,this.tension));return n.set(Hr.calc(c),kr.calc(c),Wr.calc(c)),n}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t<n;t++){const i=e.points[t];this.points.push(i.clone())}return this.closed=e.closed,this.curveType=e.curveType,this.tension=e.tension,this}toJSON(){const e=super.toJSON();e.points=[];for(let t=0,n=this.points.length;t<n;t++){const i=this.points[t];e.points.push(i.toArray())}return e.closed=this.closed,e.curveType=this.curveType,e.tension=this.tension,e}fromJSON(e){super.fromJSON(e),this.points=[];for(let t=0,n=e.points.length;t<n;t++){const i=e.points[t];this.points.push(new w().fromArray(i))}return this.closed=e.closed,this.curveType=e.curveType,this.tension=e.tension,this}}lo.prototype.isCatmullRomCurve3=!0;function ba(s,e,t,n,i){const r=(n-e)*.5,a=(i-t)*.5,o=s*s,c=s*o;return(2*t-2*n+r+a)*c+(-3*t+3*n-2*r-a)*o+r*s+t}function Ed(s,e){const t=1-s;return t*t*e}function Ad(s,e){return 2*(1-s)*s*e}function Rd(s,e){return s*s*e}function ui(s,e,t,n){return Ed(s,e)+Ad(s,t)+Rd(s,n)}function Cd(s,e){const t=1-s;return t*t*t*e}function Ld(s,e){const t=1-s;return 3*t*t*s*e}function Pd(s,e){return 3*(1-s)*s*s*e}function Dd(s,e){return s*s*s*e}function di(s,e,t,n,i){return Cd(s,e)+Ld(s,t)+Pd(s,n)+Dd(s,i)}class _s extends St{constructor(e=new J,t=new J,n=new J,i=new J){super();this.type="CubicBezierCurve",this.v0=e,this.v1=t,this.v2=n,this.v3=i}getPoint(e,t=new J){const n=t,i=this.v0,r=this.v1,a=this.v2,o=this.v3;return n.set(di(e,i.x,r.x,a.x,o.x),di(e,i.y,r.y,a.y,o.y)),n}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this.v3.copy(e.v3),this}toJSON(){const e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e.v3=this.v3.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this.v3.fromArray(e.v3),this}}_s.prototype.isCubicBezierCurve=!0;class co extends St{constructor(e=new w,t=new w,n=new w,i=new w){super();this.type="CubicBezierCurve3",this.v0=e,this.v1=t,this.v2=n,this.v3=i}getPoint(e,t=new w){const n=t,i=this.v0,r=this.v1,a=this.v2,o=this.v3;return n.set(di(e,i.x,r.x,a.x,o.x),di(e,i.y,r.y,a.y,o.y),di(e,i.z,r.z,a.z,o.z)),n}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this.v3.copy(e.v3),this}toJSON(){const e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e.v3=this.v3.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this.v3.fromArray(e.v3),this}}co.prototype.isCubicBezierCurve3=!0;class hr extends St{constructor(e=new J,t=new J){super();this.type="LineCurve",this.v1=e,this.v2=t}getPoint(e,t=new J){const n=t;return e===1?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(e).add(this.v1)),n}getPointAt(e,t){return this.getPoint(e,t)}getTangent(e,t){const n=t||new J;return n.copy(this.v2).sub(this.v1).normalize(),n}copy(e){return super.copy(e),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){const e=super.toJSON();return e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}}hr.prototype.isLineCurve=!0;class Id extends St{constructor(e=new w,t=new w){super();this.type="LineCurve3",this.isLineCurve3=!0,this.v1=e,this.v2=t}getPoint(e,t=new w){const n=t;return e===1?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(e).add(this.v1)),n}getPointAt(e,t){return this.getPoint(e,t)}copy(e){return super.copy(e),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){const e=super.toJSON();return e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}}class xs extends St{constructor(e=new J,t=new J,n=new J){super();this.type="QuadraticBezierCurve",this.v0=e,this.v1=t,this.v2=n}getPoint(e,t=new J){const n=t,i=this.v0,r=this.v1,a=this.v2;return n.set(ui(e,i.x,r.x,a.x),ui(e,i.y,r.y,a.y)),n}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){const e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}}xs.prototype.isQuadraticBezierCurve=!0;class ho extends St{constructor(e=new w,t=new w,n=new w){super();this.type="QuadraticBezierCurve3",this.v0=e,this.v1=t,this.v2=n}getPoint(e,t=new w){const n=t,i=this.v0,r=this.v1,a=this.v2;return n.set(ui(e,i.x,r.x,a.x),ui(e,i.y,r.y,a.y),ui(e,i.z,r.z,a.z)),n}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){const e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}}ho.prototype.isQuadraticBezierCurve3=!0;class vs extends St{constructor(e=[]){super();this.type="SplineCurve",this.points=e}getPoint(e,t=new J){const n=t,i=this.points,r=(i.length-1)*e,a=Math.floor(r),o=r-a,c=i[a===0?a:a-1],l=i[a],h=i[a>i.length-2?i.length-1:a+1],u=i[a>i.length-3?i.length-1:a+2];return n.set(ba(o,c.x,l.x,h.x,u.x),ba(o,c.y,l.y,h.y,u.y)),n}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t<n;t++){const i=e.points[t];this.points.push(i.clone())}return this}toJSON(){const e=super.toJSON();e.points=[];for(let t=0,n=this.points.length;t<n;t++){const i=this.points[t];e.points.push(i.toArray())}return e}fromJSON(e){super.fromJSON(e),this.points=[];for(let t=0,n=e.points.length;t<n;t++){const i=e.points[t];this.points.push(new J().fromArray(i))}return this}}vs.prototype.isSplineCurve=!0;var uo=Object.freeze({__proto__:null,ArcCurve:oo,CatmullRomCurve3:lo,CubicBezierCurve:_s,CubicBezierCurve3:co,EllipseCurve:cr,LineCurve:hr,LineCurve3:Id,QuadraticBezierCurve:xs,QuadraticBezierCurve3:ho,SplineCurve:vs});class Fd extends St{constructor(){super();this.type="CurvePath",this.curves=[],this.autoClose=!1}add(e){this.curves.push(e)}closePath(){const e=this.curves[0].getPoint(0),t=this.curves[this.curves.length-1].getPoint(1);e.equals(t)||this.curves.push(new hr(t,e))}getPoint(e,t){const n=e*this.getLength(),i=this.getCurveLengths();let r=0;for(;r<i.length;){if(i[r]>=n){const a=i[r]-n,o=this.curves[r],c=o.getLength(),l=c===0?0:1-a/c;return o.getPointAt(l,t)}r++}return null}getLength(){const e=this.getCurveLengths();return e[e.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 e=[];let t=0;for(let n=0,i=this.curves.length;n<i;n++)t+=this.curves[n].getLength(),e.push(t);return this.cacheLengths=e,e}getSpacedPoints(e=40){const t=[];for(let n=0;n<=e;n++)t.push(this.getPoint(n/e));return this.autoClose&&t.push(t[0]),t}getPoints(e=12){const t=[];let n;for(let i=0,r=this.curves;i<r.length;i++){const a=r[i],o=a&&a.isEllipseCurve?e*2:a&&(a.isLineCurve||a.isLineCurve3)?1:a&&a.isSplineCurve?e*a.points.length:e,c=a.getPoints(o);for(let l=0;l<c.length;l++){const h=c[l];n&&n.equals(h)||(t.push(h),n=h)}}return this.autoClose&&t.length>1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,n=e.curves.length;t<n;t++){const i=e.curves[t];this.curves.push(i.clone())}return this.autoClose=e.autoClose,this}toJSON(){const e=super.toJSON();e.autoClose=this.autoClose,e.curves=[];for(let t=0,n=this.curves.length;t<n;t++){const i=this.curves[t];e.curves.push(i.toJSON())}return e}fromJSON(e){super.fromJSON(e),this.autoClose=e.autoClose,this.curves=[];for(let t=0,n=e.curves.length;t<n;t++){const i=e.curves[t];this.curves.push(new uo[i.type]().fromJSON(i))}return this}}class Qr extends Fd{constructor(e){super();this.type="Path",this.currentPoint=new J,e&&this.setFromPoints(e)}setFromPoints(e){this.moveTo(e[0].x,e[0].y);for(let t=1,n=e.length;t<n;t++)this.lineTo(e[t].x,e[t].y);return this}moveTo(e,t){return this.currentPoint.set(e,t),this}lineTo(e,t){const n=new hr(this.currentPoint.clone(),new J(e,t));return this.curves.push(n),this.currentPoint.set(e,t),this}quadraticCurveTo(e,t,n,i){const r=new xs(this.currentPoint.clone(),new J(e,t),new J(n,i));return this.curves.push(r),this.currentPoint.set(n,i),this}bezierCurveTo(e,t,n,i,r,a){const o=new _s(this.currentPoint.clone(),new J(e,t),new J(n,i),new J(r,a));return this.curves.push(o),this.currentPoint.set(r,a),this}splineThru(e){const t=[this.currentPoint.clone()].concat(e),n=new vs(t);return this.curves.push(n),this.currentPoint.copy(e[e.length-1]),this}arc(e,t,n,i,r,a){const o=this.currentPoint.x,c=this.currentPoint.y;return this.absarc(e+o,t+c,n,i,r,a),this}absarc(e,t,n,i,r,a){return this.absellipse(e,t,n,n,i,r,a),this}ellipse(e,t,n,i,r,a,o,c){const l=this.currentPoint.x,h=this.currentPoint.y;return this.absellipse(e+l,t+h,n,i,r,a,o,c),this}absellipse(e,t,n,i,r,a,o,c){const l=new cr(e,t,n,i,r,a,o,c);if(this.curves.length>0){const u=l.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(l);const h=l.getPoint(1);return this.currentPoint.copy(h),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class Mi extends Qr{constructor(e){super(e);this.uuid=Ft(),this.type="Shape",this.holes=[]}getPointsHoles(e){const t=[];for(let n=0,i=this.holes.length;n<i;n++)t[n]=this.holes[n].getPoints(e);return t}extractPoints(e){return{shape:this.getPoints(e),holes:this.getPointsHoles(e)}}copy(e){super.copy(e),this.holes=[];for(let t=0,n=e.holes.length;t<n;t++){const i=e.holes[t];this.holes.push(i.clone())}return this}toJSON(){const e=super.toJSON();e.uuid=this.uuid,e.holes=[];for(let t=0,n=this.holes.length;t<n;t++){const i=this.holes[t];e.holes.push(i.toJSON())}return e}fromJSON(e){super.fromJSON(e),this.uuid=e.uuid,this.holes=[];for(let t=0,n=e.holes.length;t<n;t++){const i=e.holes[t];this.holes.push(new Qr().fromJSON(i))}return this}}const Bd={triangulate:function(s,e,t=2){const n=e&&e.length,i=n?e[0]*t:s.length;let r=fo(s,0,i,t,!0);const a=[];if(!r||r.next===r.prev)return a;let o,c,l,h,u,d,p;if(n&&(r=Gd(s,e,r,t)),s.length>80*t){o=l=s[0],c=h=s[1];for(let g=t;g<i;g+=t)u=s[g],d=s[g+1],u<o&&(o=u),d<c&&(c=d),u>l&&(l=u),d>h&&(h=d);p=Math.max(l-o,h-c),p=p!==0?1/p:0}return mi(r,a,t,o,c,p),a}};function fo(s,e,t,n,i){let r,a;if(i===$d(s,e,t,n)>0)for(r=e;r<t;r+=n)a=wa(r,s[r],s[r+1],a);else for(r=t-n;r>=e;r-=n)a=wa(r,s[r],s[r+1],a);return a&&ur(a,a.next)&&(_i(a),a=a.next),a}function sn(s,e){if(!s)return s;e||(e=s);let t=s,n;do if(n=!1,!t.steiner&&(ur(t,t.next)||je(t.prev,t,t.next)===0)){if(_i(t),t=e=t.prev,t===t.next)break;n=!0}else t=t.next;while(n||t!==e);return e}function mi(s,e,t,n,i,r,a){if(!s)return;!a&&r&&qd(s,n,i,r);let o=s,c,l;for(;s.prev!==s.next;){if(c=s.prev,l=s.next,r?zd(s,n,i,r):Nd(s)){e.push(c.i/t),e.push(s.i/t),e.push(l.i/t),_i(s),s=l.next,o=l.next;continue}if(s=l,s===o){a?a===1?(s=Ud(sn(s),e,t),mi(s,e,t,n,i,r,2)):a===2&&Od(s,e,t,n,i,r):mi(sn(s),e,t,n,i,r,1);break}}}function Nd(s){const e=s.prev,t=s,n=s.next;if(je(e,t,n)>=0)return!1;let i=s.next.next;for(;i!==s.prev;){if(kn(e.x,e.y,t.x,t.y,n.x,n.y,i.x,i.y)&&je(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function zd(s,e,t,n){const i=s.prev,r=s,a=s.next;if(je(i,r,a)>=0)return!1;const o=i.x<r.x?i.x<a.x?i.x:a.x:r.x<a.x?r.x:a.x,c=i.y<r.y?i.y<a.y?i.y:a.y:r.y<a.y?r.y:a.y,l=i.x>r.x?i.x>a.x?i.x:a.x:r.x>a.x?r.x:a.x,h=i.y>r.y?i.y>a.y?i.y:a.y:r.y>a.y?r.y:a.y,u=es(o,c,e,t,n),d=es(l,h,e,t,n);let p=s.prevZ,g=s.nextZ;for(;p&&p.z>=u&&g&&g.z<=d;){if(p!==s.prev&&p!==s.next&&kn(i.x,i.y,r.x,r.y,a.x,a.y,p.x,p.y)&&je(p.prev,p,p.next)>=0||(p=p.prevZ,g!==s.prev&&g!==s.next&&kn(i.x,i.y,r.x,r.y,a.x,a.y,g.x,g.y)&&je(g.prev,g,g.next)>=0))return!1;g=g.nextZ}for(;p&&p.z>=u;){if(p!==s.prev&&p!==s.next&&kn(i.x,i.y,r.x,r.y,a.x,a.y,p.x,p.y)&&je(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;g&&g.z<=d;){if(g!==s.prev&&g!==s.next&&kn(i.x,i.y,r.x,r.y,a.x,a.y,g.x,g.y)&&je(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function Ud(s,e,t){let n=s;do{const i=n.prev,r=n.next.next;!ur(i,r)&&po(i,n,n.next,r)&&gi(i,r)&&gi(r,i)&&(e.push(i.i/t),e.push(n.i/t),e.push(r.i/t),_i(n),_i(n.next),n=s=r),n=n.next}while(n!==s);return sn(n)}function Od(s,e,t,n,i,r){let a=s;do{let o=a.next.next;for(;o!==a.prev;){if(a.i!==o.i&&Zd(a,o)){let c=mo(a,o);a=sn(a,a.next),c=sn(c,c.next),mi(a,e,t,n,i,r),mi(c,e,t,n,i,r);return}o=o.next}a=a.next}while(a!==s)}function Gd(s,e,t,n){const i=[];let r,a,o,c,l;for(r=0,a=e.length;r<a;r++)o=e[r]*n,c=r<a-1?e[r+1]*n:s.length,l=fo(s,o,c,n,!1),l===l.next&&(l.steiner=!0),i.push(Yd(l));for(i.sort(Vd),r=0;r<i.length;r++)Hd(i[r],t),t=sn(t,t.next);return t}function Vd(s,e){return s.x-e.x}function Hd(s,e){if(e=kd(s,e),e){const t=mo(e,s);sn(e,e.next),sn(t,t.next)}}function kd(s,e){let t=e;const n=s.x,i=s.y;let r=-1/0,a;do{if(i<=t.y&&i>=t.next.y&&t.next.y!==t.y){const d=t.x+(i-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(d<=n&&d>r){if(r=d,d===n){if(i===t.y)return t;if(i===t.next.y)return t.next}a=t.x<t.next.x?t:t.next}}t=t.next}while(t!==e);if(!a)return null;if(n===r)return a;const o=a,c=a.x,l=a.y;let h=1/0,u;t=a;do n>=t.x&&t.x>=c&&n!==t.x&&kn(i<l?n:r,i,c,l,i<l?r:n,i,t.x,t.y)&&(u=Math.abs(i-t.y)/(n-t.x),gi(t,s)&&(u<h||u===h&&(t.x>a.x||t.x===a.x&&Wd(a,t)))&&(a=t,h=u)),t=t.next;while(t!==o);return a}function Wd(s,e){return je(s.prev,s,e.prev)<0&&je(e.next,s,s.next)<0}function qd(s,e,t,n){let i=s;do i.z===null&&(i.z=es(i.x,i.y,e,t,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==s);i.prevZ.nextZ=null,i.prevZ=null,Xd(i)}function Xd(s){let e,t,n,i,r,a,o,c,l=1;do{for(t=s,s=null,r=null,a=0;t;){for(a++,n=t,o=0,e=0;e<l&&(o++,n=n.nextZ,!!n);e++);for(c=l;o>0||c>0&&n;)o!==0&&(c===0||!n||t.z<=n.z)?(i=t,t=t.nextZ,o--):(i=n,n=n.nextZ,c--),r?r.nextZ=i:s=i,i.prevZ=r,r=i;t=n}r.nextZ=null,l*=2}while(a>1);return s}function es(s,e,t,n,i){return s=32767*(s-t)*i,e=32767*(e-n)*i,s=(s|s<<8)&16711935,s=(s|s<<4)&252645135,s=(s|s<<2)&858993459,s=(s|s<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,s|e<<1}function Yd(s){let e=s,t=s;do(e.x<t.x||e.x===t.x&&e.y<t.y)&&(t=e),e=e.next;while(e!==s);return t}function kn(s,e,t,n,i,r,a,o){return(i-a)*(e-o)-(s-a)*(r-o)>=0&&(s-a)*(n-o)-(t-a)*(e-o)>=0&&(t-a)*(r-o)-(i-a)*(n-o)>=0}function Zd(s,e){return s.next.i!==e.i&&s.prev.i!==e.i&&!jd(s,e)&&(gi(s,e)&&gi(e,s)&&Jd(s,e)&&(je(s.prev,s,e.prev)||je(s,e.prev,e))||ur(s,e)&&je(s.prev,s,s.next)>0&&je(e.prev,e,e.next)>0)}function je(s,e,t){return(e.y-s.y)*(t.x-e.x)-(e.x-s.x)*(t.y-e.y)}function ur(s,e){return s.x===e.x&&s.y===e.y}function po(s,e,t,n){const i=er(je(s,e,t)),r=er(je(s,e,n)),a=er(je(t,n,s)),o=er(je(t,n,e));return!!(i!==r&&a!==o||i===0&&Qi(s,t,e)||r===0&&Qi(s,n,e)||a===0&&Qi(t,s,n)||o===0&&Qi(t,e,n))}function Qi(s,e,t){return e.x<=Math.max(s.x,t.x)&&e.x>=Math.min(s.x,t.x)&&e.y<=Math.max(s.y,t.y)&&e.y>=Math.min(s.y,t.y)}function er(s){return s>0?1:s<0?-1:0}function jd(s,e){let t=s;do{if(t.i!==s.i&&t.next.i!==s.i&&t.i!==e.i&&t.next.i!==e.i&&po(t,t.next,s,e))return!0;t=t.next}while(t!==s);return!1}function gi(s,e){return je(s.prev,s,s.next)<0?je(s,e,s.next)>=0&&je(s,s.prev,e)>=0:je(s,e,s.prev)<0||je(s,s.next,e)<0}function Jd(s,e){let t=s,n=!1;const i=(s.x+e.x)/2,r=(s.y+e.y)/2;do t.y>r!=t.next.y>r&&t.next.y!==t.y&&i<(t.next.x-t.x)*(r-t.y)/(t.next.y-t.y)+t.x&&(n=!n),t=t.next;while(t!==s);return n}function mo(s,e){const t=new ts(s.i,s.x,s.y),n=new ts(e.i,e.x,e.y),i=s.next,r=e.prev;return s.next=e,e.prev=s,t.next=i,i.prev=t,n.next=t,t.prev=n,r.next=n,n.prev=r,n}function wa(s,e,t,n){const i=new ts(s,e,t);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function _i(s){s.next.prev=s.prev,s.prev.next=s.next,s.prevZ&&(s.prevZ.nextZ=s.nextZ),s.nextZ&&(s.nextZ.prevZ=s.prevZ)}function ts(s,e,t){this.i=s,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function $d(s,e,t,n){let i=0;for(let r=e,a=t-n;r<t;r+=n)i+=(s[a]-s[r])*(s[r+1]+s[a+1]),a=r;return i}class rn{static area(e){const t=e.length;let n=0;for(let i=t-1,r=0;r<t;i=r++)n+=e[i].x*e[r].y-e[r].x*e[i].y;return n*.5}static isClockWise(e){return rn.area(e)<0}static triangulateShape(e,t){const n=[],i=[],r=[];Ta(e),Ea(n,e);let a=e.length;t.forEach(Ta);for(let c=0;c<t.length;c++)i.push(a),a+=t[c].length,Ea(n,t[c]);const o=Bd.triangulate(n,i);for(let c=0;c<o.length;c+=3)r.push(o.slice(c,c+3));return r}}function Ta(s){const e=s.length;e>2&&s[e-1].equals(s[0])&&s.pop()}function Ea(s,e){for(let t=0;t<e.length;t++)s.push(e[t].x),s.push(e[t].y)}class Jn extends Ye{constructor(e=new Mi([new J(.5,.5),new J(-.5,.5),new J(-.5,-.5),new J(.5,-.5)]),t={}){super();this.type="ExtrudeGeometry",this.parameters={shapes:e,options:t},e=Array.isArray(e)?e:[e];const n=this,i=[],r=[];for(let o=0,c=e.length;o<c;o++){const l=e[o];a(l)}this.setAttribute("position",new it(i,3)),this.setAttribute("uv",new it(r,2)),this.computeVertexNormals();function a(o){const c=[],l=t.curveSegments!==void 0?t.curveSegments:12,h=t.steps!==void 0?t.steps:1;let u=t.depth!==void 0?t.depth:1,d=t.bevelEnabled!==void 0?t.bevelEnabled:!0,p=t.bevelThickness!==void 0?t.bevelThickness:.2,g=t.bevelSize!==void 0?t.bevelSize:p-.1,_=t.bevelOffset!==void 0?t.bevelOffset:0,M=t.bevelSegments!==void 0?t.bevelSegments:3;const m=t.extrudePath,f=t.UVGenerator!==void 0?t.UVGenerator:Kd;t.amount!==void 0&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),u=t.amount);let E,y=!1,T,C,L,Y;m&&(E=m.getSpacedPoints(h),y=!0,d=!1,T=m.computeFrenetFrames(h,!1),C=new w,L=new w,Y=new w),d||(M=0,p=0,g=0,_=0);const se=o.extractPoints(l);let Z=se.shape;const x=se.holes;if(!rn.isClockWise(Z)){Z=Z.reverse();for(let k=0,Q=x.length;k<Q;k++){const $=x[k];rn.isClockWise($)&&(x[k]=$.reverse())}}const D=rn.triangulateShape(Z,x),B=Z;for(let k=0,Q=x.length;k<Q;k++){const $=x[k];Z=Z.concat($)}function N(k,Q,$){return Q||console.error("THREE.ExtrudeGeometry: vec does not exist"),Q.clone().multiplyScalar($).add(k)}const I=Z.length,V=D.length;function j(k,Q,$){let le,re,ye;const we=k.x-Q.x,Ie=k.y-Q.y,We=$.x-k.x,Ve=$.y-k.y,b=we*we+Ie*Ie,v=we*Ve-Ie*We;if(Math.abs(v)>Number.EPSILON){const H=Math.sqrt(b),K=Math.sqrt(We*We+Ve*Ve),de=Q.x-Ie/H,G=Q.y+we/H,_e=$.x-Ve/K,pe=$.y+We/K,ie=((_e-de)*Ve-(pe-G)*We)/(we*Ve-Ie*We);le=de+we*ie-k.x,re=G+Ie*ie-k.y;const te=le*le+re*re;if(te<=2)return new J(le,re);ye=Math.sqrt(te/2)}else{let H=!1;we>Number.EPSILON?We>Number.EPSILON&&(H=!0):we<-Number.EPSILON?We<-Number.EPSILON&&(H=!0):Math.sign(Ie)===Math.sign(Ve)&&(H=!0),H?(le=-Ie,re=we,ye=Math.sqrt(b)):(le=we,re=Ie,ye=Math.sqrt(b/2))}return new J(le/ye,re/ye)}const ce=[];for(let k=0,Q=B.length,$=Q-1,le=k+1;k<Q;k++,$++,le++)$===Q&&($=0),le===Q&&(le=0),ce[k]=j(B[k],B[$],B[le]);const O=[];let X,ne=ce.concat();for(let k=0,Q=x.length;k<Q;k++){const $=x[k];X=[];for(let le=0,re=$.length,ye=re-1,we=le+1;le<re;le++,ye++,we++)ye===re&&(ye=0),we===re&&(we=0),X[le]=j($[le],$[ye],$[we]);O.push(X),ne=ne.concat(X)}for(let k=0;k<M;k++){const Q=k/M,$=p*Math.cos(Q*Math.PI/2),le=g*Math.sin(Q*Math.PI/2)+_;for(let re=0,ye=B.length;re<ye;re++){const we=N(B[re],ce[re],le);fe(we.x,we.y,-$)}for(let re=0,ye=x.length;re<ye;re++){const we=x[re];X=O[re];for(let Ie=0,We=we.length;Ie<We;Ie++){const Ve=N(we[Ie],X[Ie],le);fe(Ve.x,Ve.y,-$)}}}const ue=g+_;for(let k=0;k<I;k++){const Q=d?N(Z[k],ne[k],ue):Z[k];y?(L.copy(T.normals[0]).multiplyScalar(Q.x),C.copy(T.binormals[0]).multiplyScalar(Q.y),Y.copy(E[0]).add(L).add(C),fe(Y.x,Y.y,Y.z)):fe(Q.x,Q.y,0)}for(let k=1;k<=h;k++)for(let Q=0;Q<I;Q++){const $=d?N(Z[Q],ne[Q],ue):Z[Q];y?(L.copy(T.normals[k]).multiplyScalar($.x),C.copy(T.binormals[k]).multiplyScalar($.y),Y.copy(E[k]).add(L).add(C),fe(Y.x,Y.y,Y.z)):fe($.x,$.y,u/h*k)}for(let k=M-1;k>=0;k--){const Q=k/M,$=p*Math.cos(Q*Math.PI/2),le=g*Math.sin(Q*Math.PI/2)+_;for(let re=0,ye=B.length;re<ye;re++){const we=N(B[re],ce[re],le);fe(we.x,we.y,u+$)}for(let re=0,ye=x.length;re<ye;re++){const we=x[re];X=O[re];for(let Ie=0,We=we.length;Ie<We;Ie++){const Ve=N(we[Ie],X[Ie],le);y?fe(Ve.x,Ve.y+E[h-1].y,E[h-1].x+$):fe(Ve.x,Ve.y,u+$)}}}ge(),U();function ge(){const k=i.length/3;if(d){let Q=0,$=I*Q;for(let le=0;le<V;le++){const re=D[le];Se(re[2]+$,re[1]+$,re[0]+$)}Q=h+M*2,$=I*Q;for(let le=0;le<V;le++){const re=D[le];Se(re[0]+$,re[1]+$,re[2]+$)}}else{for(let Q=0;Q<V;Q++){const $=D[Q];Se($[2],$[1],$[0])}for(let Q=0;Q<V;Q++){const $=D[Q];Se($[0]+I*h,$[1]+I*h,$[2]+I*h)}}n.addGroup(k,i.length/3-k,0)}function U(){const k=i.length/3;let Q=0;Ne(B,Q),Q+=B.length;for(let $=0,le=x.length;$<le;$++){const re=x[$];Ne(re,Q),Q+=re.length}n.addGroup(k,i.length/3-k,1)}function Ne(k,Q){let $=k.length;for(;--$>=0;){const le=$;let re=$-1;re<0&&(re=k.length-1);for(let ye=0,we=h+M*2;ye<we;ye++){const Ie=I*ye,We=I*(ye+1),Ve=Q+le+Ie,b=Q+re+Ie,v=Q+re+We,H=Q+le+We;oe(Ve,b,v,H)}}}function fe(k,Q,$){c.push(k),c.push(Q),c.push($)}function Se(k,Q,$){Re(k),Re(Q),Re($);const le=i.length/3,re=f.generateTopUV(n,i,le-3,le-2,le-1);be(re[0]),be(re[1]),be(re[2])}function oe(k,Q,$,le){Re(k),Re(Q),Re(le),Re(Q),Re($),Re(le);const re=i.length/3,ye=f.generateSideWallUV(n,i,re-6,re-3,re-2,re-1);be(ye[0]),be(ye[1]),be(ye[3]),be(ye[1]),be(ye[2]),be(ye[3])}function Re(k){i.push(c[k*3+0]),i.push(c[k*3+1]),i.push(c[k*3+2])}function be(k){r.push(k.x),r.push(k.y)}}}toJSON(){const e=super.toJSON(),t=this.parameters.shapes,n=this.parameters.options;return Qd(t,n,e)}static fromJSON(e,t){const n=[];for(let r=0,a=e.shapes.length;r<a;r++){const o=t[e.shapes[r]];n.push(o)}const i=e.options.extrudePath;return i!==void 0&&(e.options.extrudePath=new uo[i.type]().fromJSON(i)),new Jn(n,e.options)}}const Kd={generateTopUV:function(s,e,t,n,i){const r=e[t*3],a=e[t*3+1],o=e[n*3],c=e[n*3+1],l=e[i*3],h=e[i*3+1];return[new J(r,a),new J(o,c),new J(l,h)]},generateSideWallUV:function(s,e,t,n,i,r){const a=e[t*3],o=e[t*3+1],c=e[t*3+2],l=e[n*3],h=e[n*3+1],u=e[n*3+2],d=e[i*3],p=e[i*3+1],g=e[i*3+2],_=e[r*3],M=e[r*3+1],m=e[r*3+2];return Math.abs(o-h)<Math.abs(a-l)?[new J(a,1-c),new J(l,1-u),new J(d,1-g),new J(_,1-m)]:[new J(o,1-c),new J(h,1-u),new J(p,1-g),new J(M,1-m)]}};function Qd(s,e,t){if(t.shapes=[],Array.isArray(s))for(let n=0,i=s.length;n<i;n++){const r=s[n];t.shapes.push(r.uuid)}else t.shapes.push(s.uuid);return e.extrudePath!==void 0&&(t.options.extrudePath=e.extrudePath.toJSON()),t}class ys extends Ye{constructor(e=new Mi([new J(0,.5),new J(-.5,-.5),new J(.5,-.5)]),t=12){super();this.type="ShapeGeometry",this.parameters={shapes:e,curveSegments:t};const n=[],i=[],r=[],a=[];let o=0,c=0;if(Array.isArray(e)===!1)l(e);else for(let h=0;h<e.length;h++)l(e[h]),this.addGroup(o,c,h),o+=c,c=0;this.setIndex(n),this.setAttribute("position",new it(i,3)),this.setAttribute("normal",new it(r,3)),this.setAttribute("uv",new it(a,2));function l(h){const u=i.length/3,d=h.extractPoints(t);let p=d.shape;const g=d.holes;rn.isClockWise(p)===!1&&(p=p.reverse());for(let M=0,m=g.length;M<m;M++){const f=g[M];rn.isClockWise(f)===!0&&(g[M]=f.reverse())}const _=rn.triangulateShape(p,g);for(let M=0,m=g.length;M<m;M++){const f=g[M];p=p.concat(f)}for(let M=0,m=p.length;M<m;M++){const f=p[M];i.push(f.x,f.y,0),r.push(0,0,1),a.push(f.x,f.y)}for(let M=0,m=_.length;M<m;M++){const f=_[M],E=f[0]+u,y=f[1]+u,T=f[2]+u;n.push(E,y,T),c+=3}}}toJSON(){const e=super.toJSON(),t=this.parameters.shapes;return ef(t,e)}static fromJSON(e,t){const n=[];for(let i=0,r=e.shapes.length;i<r;i++){const a=t[e.shapes[i]];n.push(a)}return new ys(n,e.curveSegments)}}function ef(s,e){if(e.shapes=[],Array.isArray(s))for(let t=0,n=s.length;t<n;t++){const i=s[t];e.shapes.push(i.uuid)}else e.shapes.push(s.uuid);return e}class tf extends ut{constructor(e){super();this.type="ShadowMaterial",this.color=new me(0),this.transparent=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this}}tf.prototype.isShadowMaterial=!0;class go extends ut{constructor(e){super();this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new me(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 me(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new J(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.defines={STANDARD:""},this.color.copy(e.color),this.roughness=e.roughness,this.metalness=e.metalness,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.roughnessMap=e.roughnessMap,this.metalnessMap=e.metalnessMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapIntensity=e.envMapIntensity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this}}go.prototype.isMeshStandardMaterial=!0;class nf extends go{constructor(e){super();this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new J(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,"reflectivity",{get:function(){return vt(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(t){this.ior=(1+.4*t)/(1-.4*t)}}),this.sheenColor=new me(0),this.sheenColorMap=null,this.sheenRoughness=1,this.sheenRoughnessMap=null,this.transmissionMap=null,this.thickness=0,this.thicknessMap=null,this.attenuationDistance=0,this.attenuationColor=new me(1,1,1),this.specularIntensity=1,this.specularIntensityMap=null,this.specularColor=new me(1,1,1),this.specularColorMap=null,this._sheen=0,this._clearcoat=0,this._transmission=0,this.setValues(e)}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}nf.prototype.isMeshPhysicalMaterial=!0;class rf extends ut{constructor(e){super();this.type="MeshPhongMaterial",this.color=new me(16777215),this.specular=new me(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new me(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new J(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this}}rf.prototype.isMeshPhongMaterial=!0;class sf extends ut{constructor(e){super();this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new me(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new me(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new J(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.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this}}sf.prototype.isMeshToonMaterial=!0;class af extends ut{constructor(e){super();this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new J(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}af.prototype.isMeshNormalMaterial=!0;class of extends ut{constructor(e){super();this.type="MeshLambertMaterial",this.color=new me(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new me(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this}}of.prototype.isMeshLambertMaterial=!0;class lf extends ut{constructor(e){super();this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new me(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new J(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this}}lf.prototype.isMeshMatcapMaterial=!0;class cf extends yi{constructor(e){super();this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}cf.prototype.isLineDashedMaterial=!0;const Xe={arraySlice:function(s,e,t){return Xe.isTypedArray(s)?new s.constructor(s.subarray(e,t!==void 0?t:s.length)):s.slice(e,t)},convertArray:function(s,e,t){return!s||!t&&s.constructor===e?s:typeof e.BYTES_PER_ELEMENT=="number"?new e(s):Array.prototype.slice.call(s)},isTypedArray:function(s){return ArrayBuffer.isView(s)&&!(s instanceof DataView)},getKeyframeOrder:function(s){function e(i,r){return s[i]-s[r]}const t=s.length,n=new Array(t);for(let i=0;i!==t;++i)n[i]=i;return n.sort(e),n},sortedArray:function(s,e,t){const n=s.length,i=new s.constructor(n);for(let r=0,a=0;a!==n;++r){const o=t[r]*e;for(let c=0;c!==e;++c)i[a++]=s[o+c]}return i},flattenJSON:function(s,e,t,n){let i=1,r=s[0];for(;r!==void 0&&r[n]===void 0;)r=s[i++];if(r===void 0)return;let a=r[n];if(a!==void 0)if(Array.isArray(a))do a=r[n],a!==void 0&&(e.push(r.time),t.push.apply(t,a)),r=s[i++];while(r!==void 0);else if(a.toArray!==void 0)do a=r[n],a!==void 0&&(e.push(r.time),a.toArray(t,t.length)),r=s[i++];while(r!==void 0);else do a=r[n],a!==void 0&&(e.push(r.time),t.push(a)),r=s[i++];while(r!==void 0)},subclip:function(s,e,t,n,i=30){const r=s.clone();r.name=e;const a=[];for(let c=0;c<r.tracks.length;++c){const l=r.tracks[c],h=l.getValueSize(),u=[],d=[];for(let p=0;p<l.times.length;++p){const g=l.times[p]*i;if(!(g<t||g>=n)){u.push(l.times[p]);for(let _=0;_<h;++_)d.push(l.values[p*h+_])}}u.length!==0&&(l.times=Xe.convertArray(u,l.times.constructor),l.values=Xe.convertArray(d,l.values.constructor),a.push(l))}r.tracks=a;let o=1/0;for(let c=0;c<r.tracks.length;++c)o>r.tracks[c].times[0]&&(o=r.tracks[c].times[0]);for(let c=0;c<r.tracks.length;++c)r.tracks[c].shift(-1*o);return r.resetDuration(),r},makeClipAdditive:function(s,e=0,t=s,n=30){n<=0&&(n=30);const i=t.tracks.length,r=e/n;for(let a=0;a<i;++a){const o=t.tracks[a],c=o.ValueTypeName;if(c==="bool"||c==="string")continue;const l=s.tracks.find(function(m){return m.name===o.name&&m.ValueTypeName===c});if(l===void 0)continue;let h=0;const u=o.getValueSize();o.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(h=u/3);let d=0;const p=l.getValueSize();l.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(d=p/3);const g=o.times.length-1;let _;if(r<=o.times[0]){const m=h,f=u-h;_=Xe.arraySlice(o.values,m,f)}else if(r>=o.times[g]){const m=g*u+h,f=m+u-h;_=Xe.arraySlice(o.values,m,f)}else{const m=o.createInterpolant(),f=h,E=u-h;m.evaluate(r),_=Xe.arraySlice(m.resultBuffer,f,E)}c==="quaternion"&&new dt().fromArray(_).normalize().conjugate().toArray(_);const M=l.times.length;for(let m=0;m<M;++m){const f=m*p+d;if(c==="quaternion")dt.multiplyQuaternionsFlat(l.values,f,_,0,l.values,f);else{const E=p-d*2;for(let y=0;y<E;++y)l.values[f+y]-=_[y]}}}return s.blendMode=2501,s}};class an{constructor(e,t,n,i){this.parameterPositions=e,this._cachedIndex=0,this.resultBuffer=i!==void 0?i:new t.constructor(n),this.sampleValues=t,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(e){const t=this.parameterPositions;let n=this._cachedIndex,i=t[n],r=t[n-1];e:{t:{let a;n:{i:if(!(e<i)){for(let o=n+2;;){if(i===void 0){if(e<r)break i;return n=t.length,this._cachedIndex=n,this.afterEnd_(n-1,e,r)}if(n===o)break;if(r=i,i=t[++n],e<i)break t}a=t.length;break n}if(!(e>=r)){const o=t[1];e<o&&(n=2,r=o);for(let c=n-2;;){if(r===void 0)return this._cachedIndex=0,this.beforeStart_(0,e,i);if(n===c)break;if(i=r,r=t[--n-1],e>=r)break t}a=n,n=0;break n}break e}for(;n<a;){const o=n+a>>>1;e<t[o]?a=o:n=o+1}if(i=t[n],r=t[n-1],r===void 0)return this._cachedIndex=0,this.beforeStart_(0,e,i);if(i===void 0)return n=t.length,this._cachedIndex=n,this.afterEnd_(n-1,r,e)}this._cachedIndex=n,this.intervalChanged_(n,r,i)}return this.interpolate_(n,r,e,i)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(e){const t=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=e*i;for(let a=0;a!==i;++a)t[a]=n[r+a];return t}interpolate_(){throw new Error("call to abstract method")}intervalChanged_(){}}an.prototype.beforeStart_=an.prototype.copySampleValue_;an.prototype.afterEnd_=an.prototype.copySampleValue_;class hf extends an{constructor(e,t,n,i){super(e,t,n,i);this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:2400,endingEnd:2400}}intervalChanged_(e,t,n){const i=this.parameterPositions;let r=e-2,a=e+1,o=i[r],c=i[a];if(o===void 0)switch(this.getSettings_().endingStart){case 2401:r=e,o=2*t-n;break;case 2402:r=i.length-2,o=t+i[r]-i[r+1];break;default:r=e,o=n}if(c===void 0)switch(this.getSettings_().endingEnd){case 2401:a=e,c=2*n-t;break;case 2402:a=1,c=n+i[1]-i[0];break;default:a=e-1,c=t}const l=(n-t)*.5,h=this.valueSize;this._weightPrev=l/(t-o),this._weightNext=l/(c-n),this._offsetPrev=r*h,this._offsetNext=a*h}interpolate_(e,t,n,i){const r=this.resultBuffer,a=this.sampleValues,o=this.valueSize,c=e*o,l=c-o,h=this._offsetPrev,u=this._offsetNext,d=this._weightPrev,p=this._weightNext,g=(n-t)/(i-t),_=g*g,M=_*g,m=-d*M+2*d*_-d*g,f=(1+d)*M+(-1.5-2*d)*_+(-.5+d)*g+1,E=(-1-p)*M+(1.5+p)*_+.5*g,y=p*M-p*_;for(let T=0;T!==o;++T)r[T]=m*a[h+T]+f*a[l+T]+E*a[c+T]+y*a[u+T];return r}}class _o extends an{constructor(e,t,n,i){super(e,t,n,i)}interpolate_(e,t,n,i){const r=this.resultBuffer,a=this.sampleValues,o=this.valueSize,c=e*o,l=c-o,h=(n-t)/(i-t),u=1-h;for(let d=0;d!==o;++d)r[d]=a[l+d]*u+a[c+d]*h;return r}}class uf extends an{constructor(e,t,n,i){super(e,t,n,i)}interpolate_(e){return this.copySampleValue_(e-1)}}class Nt{constructor(e,t,n,i){if(e===void 0)throw new Error("THREE.KeyframeTrack: track name is undefined");if(t===void 0||t.length===0)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+e);this.name=e,this.times=Xe.convertArray(t,this.TimeBufferType),this.values=Xe.convertArray(n,this.ValueBufferType),this.setInterpolation(i||this.DefaultInterpolation)}static toJSON(e){const t=e.constructor;let n;if(t.toJSON!==this.toJSON)n=t.toJSON(e);else{n={name:e.name,times:Xe.convertArray(e.times,Array),values:Xe.convertArray(e.values,Array)};const i=e.getInterpolation();i!==e.DefaultInterpolation&&(n.interpolation=i)}return n.type=e.ValueTypeName,n}InterpolantFactoryMethodDiscrete(e){return new uf(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodLinear(e){return new _o(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodSmooth(e){return new hf(this.times,this.values,this.getValueSize(),e)}setInterpolation(e){let t;switch(e){case 2300:t=this.InterpolantFactoryMethodDiscrete;break;case 2301:t=this.InterpolantFactoryMethodLinear;break;case 2302:t=this.InterpolantFactoryMethodSmooth;break}if(t===void 0){const n="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(this.createInterpolant===void 0)if(e!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);else throw new Error(n);return console.warn("THREE.KeyframeTrack:",n),this}return this.createInterpolant=t,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return 2300;case this.InterpolantFactoryMethodLinear:return 2301;case this.InterpolantFactoryMethodSmooth:return 2302}}getValueSize(){return this.values.length/this.times.length}shift(e){if(e!==0){const t=this.times;for(let n=0,i=t.length;n!==i;++n)t[n]+=e}return this}scale(e){if(e!==1){const t=this.times;for(let n=0,i=t.length;n!==i;++n)t[n]*=e}return this}trim(e,t){const n=this.times,i=n.length;let r=0,a=i-1;for(;r!==i&&n[r]<e;)++r;for(;a!==-1&&n[a]>t;)--a;if(++a,r!==0||a!==i){r>=a&&(a=Math.max(a,1),r=a-1);const o=this.getValueSize();this.times=Xe.arraySlice(n,r,a),this.values=Xe.arraySlice(this.values,r*o,a*o)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const n=this.times,i=this.values,r=n.length;r===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let a=null;for(let o=0;o!==r;o++){const c=n[o];if(typeof c=="number"&&isNaN(c)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,o,c),e=!1;break}if(a!==null&&a>c){console.error("THREE.KeyframeTrack: Out of order keys.",this,o,c,a),e=!1;break}a=c}if(i!==void 0&&Xe.isTypedArray(i))for(let o=0,c=i.length;o!==c;++o){const l=i[o];if(isNaN(l)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,o,l),e=!1;break}}return e}optimize(){const e=Xe.arraySlice(this.times),t=Xe.arraySlice(this.values),n=this.getValueSize(),i=this.getInterpolation()===2302,r=e.length-1;let a=1;for(let o=1;o<r;++o){let c=!1;const l=e[o],h=e[o+1];if(l!==h&&(o!==1||l!==e[0]))if(i)c=!0;else{const u=o*n,d=u-n,p=u+n;for(let g=0;g!==n;++g){const _=t[u+g];if(_!==t[d+g]||_!==t[p+g]){c=!0;break}}}if(c){if(o!==a){e[a]=e[o];const u=o*n,d=a*n;for(let p=0;p!==n;++p)t[d+p]=t[u+p]}++a}}if(r>0){e[a]=e[r];for(let o=r*n,c=a*n,l=0;l!==n;++l)t[c+l]=t[o+l];++a}return a!==e.length?(this.times=Xe.arraySlice(e,0,a),this.values=Xe.arraySlice(t,0,a*n)):(this.times=e,this.values=t),this}clone(){const e=Xe.arraySlice(this.times,0),t=Xe.arraySlice(this.values,0),n=this.constructor,i=new n(this.name,e,t);return i.createInterpolant=this.createInterpolant,i}}Nt.prototype.TimeBufferType=Float32Array;Nt.prototype.ValueBufferType=Float32Array;Nt.prototype.DefaultInterpolation=2301;class $n extends Nt{}$n.prototype.ValueTypeName="bool";$n.prototype.ValueBufferType=Array;$n.prototype.DefaultInterpolation=2300;$n.prototype.InterpolantFactoryMethodLinear=void 0;$n.prototype.InterpolantFactoryMethodSmooth=void 0;class xo extends Nt{}xo.prototype.ValueTypeName="color";class ir extends Nt{}ir.prototype.ValueTypeName="number";class df extends an{constructor(e,t,n,i){super(e,t,n,i)}interpolate_(e,t,n,i){const r=this.resultBuffer,a=this.sampleValues,o=this.valueSize,c=(n-t)/(i-t);let l=e*o;for(let h=l+o;l!==h;l+=4)dt.slerpFlat(r,0,a,l-o,a,l,c);return r}}class Si extends Nt{InterpolantFactoryMethodLinear(e){return new df(this.times,this.values,this.getValueSize(),e)}}Si.prototype.ValueTypeName="quaternion";Si.prototype.DefaultInterpolation=2301;Si.prototype.InterpolantFactoryMethodSmooth=void 0;class Kn extends Nt{}Kn.prototype.ValueTypeName="string";Kn.prototype.ValueBufferType=Array;Kn.prototype.DefaultInterpolation=2300;Kn.prototype.InterpolantFactoryMethodLinear=void 0;Kn.prototype.InterpolantFactoryMethodSmooth=void 0;class rr extends Nt{}rr.prototype.ValueTypeName="vector";class Aa{constructor(e,t=-1,n,i=2500){this.name=e,this.tracks=n,this.duration=t,this.blendMode=i,this.uuid=Ft(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],n=e.tracks,i=1/(e.fps||1);for(let a=0,o=n.length;a!==o;++a)t.push(pf(n[a]).scale(i));const r=new this(e.name,e.duration,t,e.blendMode);return r.uuid=e.uuid,r}static toJSON(e){const t=[],n=e.tracks,i={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let r=0,a=n.length;r!==a;++r)t.push(Nt.toJSON(n[r]));return i}static CreateFromMorphTargetSequence(e,t,n,i){const r=t.length,a=[];for(let o=0;o<r;o++){let c=[],l=[];c.push((o+r-1)%r,o,(o+1)%r),l.push(0,1,0);const h=Xe.getKeyframeOrder(c);c=Xe.sortedArray(c,1,h),l=Xe.sortedArray(l,1,h),!i&&c[0]===0&&(c.push(r),l.push(l[0])),a.push(new ir(".morphTargetInfluences["+t[o].name+"]",c,l).scale(1/n))}return new this(e,-1,a)}static findByName(e,t){let n=e;if(!Array.isArray(e)){const i=e;n=i.geometry&&i.geometry.animations||i.animations}for(let i=0;i<n.length;i++)if(n[i].name===t)return n[i];return null}static CreateClipsFromMorphTargetSequences(e,t,n){const i={},r=/^([\w-]*?)([\d]+)$/;for(let o=0,c=e.length;o<c;o++){const l=e[o],h=l.name.match(r);if(h&&h.length>1){const u=h[1];let d=i[u];d||(i[u]=d=[]),d.push(l)}}const a=[];for(const o in i)a.push(this.CreateFromMorphTargetSequence(o,i[o],t,n));return a}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(u,d,p,g,_){if(p.length!==0){const M=[],m=[];Xe.flattenJSON(p,M,m,g),M.length!==0&&_.push(new u(d,M,m))}},i=[],r=e.name||"default",a=e.fps||30,o=e.blendMode;let c=e.length||-1;const l=e.hierarchy||[];for(let u=0;u<l.length;u++){const d=l[u].keys;if(!(!d||d.length===0))if(d[0].morphTargets){const p={};let g;for(g=0;g<d.length;g++)if(d[g].morphTargets)for(let _=0;_<d[g].morphTargets.length;_++)p[d[g].morphTargets[_]]=-1;for(const _ in p){const M=[],m=[];for(let f=0;f!==d[g].morphTargets.length;++f){const E=d[g];M.push(E.time),m.push(E.morphTarget===_?1:0)}i.push(new ir(".morphTargetInfluence["+_+"]",M,m))}c=p.length*(a||1)}else{const p=".bones["+t[u].name+"]";n(rr,p+".position",d,"pos",i),n(Si,p+".quaternion",d,"rot",i),n(rr,p+".scale",d,"scl",i)}}return i.length===0?null:new this(r,c,i,o)}resetDuration(){const e=this.tracks;let t=0;for(let n=0,i=e.length;n!==i;++n){const r=this.tracks[n];t=Math.max(t,r.times[r.times.length-1])}return this.duration=t,this}trim(){for(let e=0;e<this.tracks.length;e++)this.tracks[e].trim(0,this.duration);return this}validate(){let e=!0;for(let t=0;t<this.tracks.length;t++)e=e&&this.tracks[t].validate();return e}optimize(){for(let e=0;e<this.tracks.length;e++)this.tracks[e].optimize();return this}clone(){const e=[];for(let t=0;t<this.tracks.length;t++)e.push(this.tracks[t].clone());return new this.constructor(this.name,this.duration,e,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function ff(s){switch(s.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return ir;case"vector":case"vector2":case"vector3":case"vector4":return rr;case"color":return xo;case"quaternion":return Si;case"bool":case"boolean":return $n;case"string":return Kn}throw new Error("THREE.KeyframeTrack: Unsupported typeName: "+s)}function pf(s){if(s.type===void 0)throw new Error("THREE.KeyframeTrack: track type undefined, can not parse");const e=ff(s.type);if(s.times===void 0){const t=[],n=[];Xe.flattenJSON(s.keys,t,n,"value"),s.times=t,s.values=n}return e.parse!==void 0?e.parse(s):new e(s.name,s.times,s.values,s.interpolation)}const Yn={enabled:!1,files:{},add:function(s,e){this.enabled!==!1&&(this.files[s]=e)},get:function(s){if(this.enabled!==!1)return this.files[s]},remove:function(s){delete this.files[s]},clear:function(){this.files={}}};class mf{constructor(e,t,n){const i=this;let r=!1,a=0,o=0,c;const l=[];this.onStart=void 0,this.onLoad=e,this.onProgress=t,this.onError=n,this.itemStart=function(h){o++,r===!1&&i.onStart!==void 0&&i.onStart(h,a,o),r=!0},this.itemEnd=function(h){a++,i.onProgress!==void 0&&i.onProgress(h,a,o),a===o&&(r=!1,i.onLoad!==void 0&&i.onLoad())},this.itemError=function(h){i.onError!==void 0&&i.onError(h)},this.resolveURL=function(h){return c?c(h):h},this.setURLModifier=function(h){return c=h,this},this.addHandler=function(h,u){return l.push(h,u),this},this.removeHandler=function(h){const u=l.indexOf(h);return u!==-1&&l.splice(u,2),this},this.getHandler=function(h){for(let u=0,d=l.length;u<d;u+=2){const p=l[u],g=l[u+1];if(p.global&&(p.lastIndex=0),p.test(h))return g}return null}}}const gf=new mf;class ln{constructor(e){this.manager=e!==void 0?e:gf,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(e,t){const n=this;return new Promise(function(i,r){n.load(e,i,t,r)})}parse(){}setCrossOrigin(e){return this.crossOrigin=e,this}setWithCredentials(e){return this.withCredentials=e,this}setPath(e){return this.path=e,this}setResourcePath(e){return this.resourcePath=e,this}setRequestHeader(e){return this.requestHeader=e,this}}const Wt={};class _f extends ln{constructor(e){super(e)}load(e,t,n,i){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const r=Yn.get(e);if(r!==void 0)return this.manager.itemStart(e),setTimeout(()=>{t&&t(r),this.manager.itemEnd(e)},0),r;if(Wt[e]!==void 0){Wt[e].push({onLoad:t,onProgress:n,onError:i});return}Wt[e]=[],Wt[e].push({onLoad:t,onProgress:n,onError:i});const a=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),o=this.mimeType,c=this.responseType;fetch(a).then(l=>{if(l.status===200||l.status===0){if(l.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream=="undefined"||l.body.getReader===void 0)return l;const h=Wt[e],u=l.body.getReader(),d=l.headers.get("Content-Length"),p=d?parseInt(d):0,g=p!==0;let _=0;const M=new ReadableStream({start(m){f();function f(){u.read().then(({done:E,value:y})=>{if(E)m.close();else{_+=y.byteLength;const T=new ProgressEvent("progress",{lengthComputable:g,loaded:_,total:p});for(let C=0,L=h.length;C<L;C++){const Y=h[C];Y.onProgress&&Y.onProgress(T)}m.enqueue(y),f()}})}}});return new Response(M)}else throw Error(`fetch for "${l.url}" responded with ${l.status}: ${l.statusText}`)}).then(l=>{switch(c){case"arraybuffer":return l.arrayBuffer();case"blob":return l.blob();case"document":return l.text().then(h=>new DOMParser().parseFromString(h,o));case"json":return l.json();default:if(o===void 0)return l.text();{const u=/charset="?([^;"\s]*)"?/i.exec(o),d=u&&u[1]?u[1].toLowerCase():void 0,p=new TextDecoder(d);return l.arrayBuffer().then(g=>p.decode(g))}}}).then(l=>{Yn.add(e,l);const h=Wt[e];delete Wt[e];for(let u=0,d=h.length;u<d;u++){const p=h[u];p.onLoad&&p.onLoad(l)}}).catch(l=>{const h=Wt[e];if(h===void 0)throw this.manager.itemError(e),l;delete Wt[e];for(let u=0,d=h.length;u<d;u++){const p=h[u];p.onError&&p.onError(l)}this.manager.itemError(e)}).finally(()=>{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class vo extends ln{constructor(e){super(e)}load(e,t,n,i){this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const r=this,a=Yn.get(e);if(a!==void 0)return r.manager.itemStart(e),setTimeout(function(){t&&t(a),r.manager.itemEnd(e)},0),a;const o=fi("img");function c(){h(),Yn.add(e,this),t&&t(this),r.manager.itemEnd(e)}function l(u){h(),i&&i(u),r.manager.itemError(e),r.manager.itemEnd(e)}function h(){o.removeEventListener("load",c,!1),o.removeEventListener("error",l,!1)}return o.addEventListener("load",c,!1),o.addEventListener("error",l,!1),e.substr(0,5)!=="data:"&&this.crossOrigin!==void 0&&(o.crossOrigin=this.crossOrigin),r.manager.itemStart(e),o.src=e,o}}class xf extends ln{constructor(e){super(e)}load(e,t,n,i){const r=new sr,a=new vo(this.manager);a.setCrossOrigin(this.crossOrigin),a.setPath(this.path);let o=0;function c(l){a.load(e[l],function(h){r.images[l]=h,o++,o===6&&(r.needsUpdate=!0,t&&t(r))},void 0,i)}for(let l=0;l<e.length;++l)c(l);return r}}class vf extends ln{constructor(e){super(e)}load(e,t,n,i){const r=new rt,a=new vo(this.manager);return a.setCrossOrigin(this.crossOrigin),a.setPath(this.path),a.load(e,function(o){r.image=o,r.needsUpdate=!0,t!==void 0&&t(r)},n,i),r}}class Bt extends Ue{constructor(e,t=1){super();this.type="Light",this.color=new me(e),this.intensity=t}dispose(){}copy(e){return super.copy(e),this.color.copy(e.color),this.intensity=e.intensity,this}toJSON(e){const t=super.toJSON(e);return t.object.color=this.color.getHex(),t.object.intensity=this.intensity,this.groundColor!==void 0&&(t.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(t.object.distance=this.distance),this.angle!==void 0&&(t.object.angle=this.angle),this.decay!==void 0&&(t.object.decay=this.decay),this.penumbra!==void 0&&(t.object.penumbra=this.penumbra),this.shadow!==void 0&&(t.object.shadow=this.shadow.toJSON()),t}}Bt.prototype.isLight=!0;class yf extends Bt{constructor(e,t,n){super(e,n);this.type="HemisphereLight",this.position.copy(Ue.DefaultUp),this.updateMatrix(),this.groundColor=new me(t)}copy(e){return Bt.prototype.copy.call(this,e),this.groundColor.copy(e.groundColor),this}}yf.prototype.isHemisphereLight=!0;const Ra=new ve,Ca=new w,La=new w;class Ms{constructor(e){this.camera=e,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new J(512,512),this.map=null,this.mapPass=null,this.matrix=new ve,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new ar,this._frameExtents=new J(1,1),this._viewportCount=1,this._viewports=[new ke(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(e){const t=this.camera,n=this.matrix;Ca.setFromMatrixPosition(e.matrixWorld),t.position.copy(Ca),La.setFromMatrixPosition(e.target.matrixWorld),t.lookAt(La),t.updateMatrixWorld(),Ra.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Ra),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(t.projectionMatrix),n.multiply(t.matrixWorldInverse)}getViewport(e){return this._viewports[e]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(e){return this.camera=e.camera.clone(),this.bias=e.bias,this.radius=e.radius,this.mapSize.copy(e.mapSize),this}clone(){return new this.constructor().copy(this)}toJSON(){const e={};return this.bias!==0&&(e.bias=this.bias),this.normalBias!==0&&(e.normalBias=this.normalBias),this.radius!==1&&(e.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&&(e.mapSize=this.mapSize.toArray()),e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e}}class yo extends Ms{constructor(){super(new pt(50,1,.5,500));this.focus=1}updateMatrices(e){const t=this.camera,n=Zr*2*e.angle*this.focus,i=this.mapSize.width/this.mapSize.height,r=e.distance||t.far;(n!==t.fov||i!==t.aspect||r!==t.far)&&(t.fov=n,t.aspect=i,t.far=r,t.updateProjectionMatrix()),super.updateMatrices(e)}copy(e){return super.copy(e),this.focus=e.focus,this}}yo.prototype.isSpotLightShadow=!0;class Mf extends Bt{constructor(e,t,n=0,i=Math.PI/3,r=0,a=1){super(e,t);this.type="SpotLight",this.position.copy(Ue.DefaultUp),this.updateMatrix(),this.target=new Ue,this.distance=n,this.angle=i,this.penumbra=r,this.decay=a,this.shadow=new yo}get power(){return this.intensity*Math.PI}set power(e){this.intensity=e/Math.PI}dispose(){this.shadow.dispose()}copy(e){return super.copy(e),this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}Mf.prototype.isSpotLight=!0;const Pa=new ve,li=new w,qr=new w;class Mo extends Ms{constructor(){super(new pt(90,1,.5,500));this._frameExtents=new J(4,2),this._viewportCount=6,this._viewports=[new ke(2,1,1,1),new ke(0,1,1,1),new ke(3,1,1,1),new ke(1,1,1,1),new ke(3,0,1,1),new ke(1,0,1,1)],this._cubeDirections=[new w(1,0,0),new w(-1,0,0),new w(0,0,1),new w(0,0,-1),new w(0,1,0),new w(0,-1,0)],this._cubeUps=[new w(0,1,0),new w(0,1,0),new w(0,1,0),new w(0,1,0),new w(0,0,1),new w(0,0,-1)]}updateMatrices(e,t=0){const n=this.camera,i=this.matrix,r=e.distance||n.far;r!==n.far&&(n.far=r,n.updateProjectionMatrix()),li.setFromMatrixPosition(e.matrixWorld),n.position.copy(li),qr.copy(n.position),qr.add(this._cubeDirections[t]),n.up.copy(this._cubeUps[t]),n.lookAt(qr),n.updateMatrixWorld(),i.makeTranslation(-li.x,-li.y,-li.z),Pa.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Pa)}}Mo.prototype.isPointLightShadow=!0;class Sf extends Bt{constructor(e,t,n=0,i=1){super(e,t);this.type="PointLight",this.distance=n,this.decay=i,this.shadow=new Mo}get power(){return this.intensity*4*Math.PI}set power(e){this.intensity=e/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(e){return super.copy(e),this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}}Sf.prototype.isPointLight=!0;class So extends Ms{constructor(){super(new hs(-5,5,5,-5,.5,500))}}So.prototype.isDirectionalLightShadow=!0;class bf extends Bt{constructor(e,t){super(e,t);this.type="DirectionalLight",this.position.copy(Ue.DefaultUp),this.updateMatrix(),this.target=new Ue,this.shadow=new So}dispose(){this.shadow.dispose()}copy(e){return super.copy(e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}bf.prototype.isDirectionalLight=!0;class wf extends Bt{constructor(e,t){super(e,t);this.type="AmbientLight"}}wf.prototype.isAmbientLight=!0;class Tf extends Bt{constructor(e,t,n=10,i=10){super(e,t);this.type="RectAreaLight",this.width=n,this.height=i}get power(){return this.intensity*this.width*this.height*Math.PI}set power(e){this.intensity=e/(this.width*this.height*Math.PI)}copy(e){return super.copy(e),this.width=e.width,this.height=e.height,this}toJSON(e){const t=super.toJSON(e);return t.object.width=this.width,t.object.height=this.height,t}}Tf.prototype.isRectAreaLight=!0;class bo{constructor(){this.coefficients=[];for(let e=0;e<9;e++)this.coefficients.push(new w)}set(e){for(let t=0;t<9;t++)this.coefficients[t].copy(e[t]);return this}zero(){for(let e=0;e<9;e++)this.coefficients[e].set(0,0,0);return this}getAt(e,t){const n=e.x,i=e.y,r=e.z,a=this.coefficients;return t.copy(a[0]).multiplyScalar(.282095),t.addScaledVector(a[1],.488603*i),t.addScaledVector(a[2],.488603*r),t.addScaledVector(a[3],.488603*n),t.addScaledVector(a[4],1.092548*(n*i)),t.addScaledVector(a[5],1.092548*(i*r)),t.addScaledVector(a[6],.315392*(3*r*r-1)),t.addScaledVector(a[7],1.092548*(n*r)),t.addScaledVector(a[8],.546274*(n*n-i*i)),t}getIrradianceAt(e,t){const n=e.x,i=e.y,r=e.z,a=this.coefficients;return t.copy(a[0]).multiplyScalar(.886227),t.addScaledVector(a[1],2*.511664*i),t.addScaledVector(a[2],2*.511664*r),t.addScaledVector(a[3],2*.511664*n),t.addScaledVector(a[4],2*.429043*n*i),t.addScaledVector(a[5],2*.429043*i*r),t.addScaledVector(a[6],.743125*r*r-.247708),t.addScaledVector(a[7],2*.429043*n*r),t.addScaledVector(a[8],.429043*(n*n-i*i)),t}add(e){for(let t=0;t<9;t++)this.coefficients[t].add(e.coefficients[t]);return this}addScaledSH(e,t){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(e.coefficients[n],t);return this}scale(e){for(let t=0;t<9;t++)this.coefficients[t].multiplyScalar(e);return this}lerp(e,t){for(let n=0;n<9;n++)this.coefficients[n].lerp(e.coefficients[n],t);return this}equals(e){for(let t=0;t<9;t++)if(!this.coefficients[t].equals(e.coefficients[t]))return!1;return!0}copy(e){return this.set(e.coefficients)}clone(){return new this.constructor().copy(this)}fromArray(e,t=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].fromArray(e,t+i*3);return this}toArray(e=[],t=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].toArray(e,t+i*3);return e}static getBasisAt(e,t){const n=e.x,i=e.y,r=e.z;t[0]=.282095,t[1]=.488603*i,t[2]=.488603*r,t[3]=.488603*n,t[4]=1.092548*n*i,t[5]=1.092548*i*r,t[6]=.315392*(3*r*r-1),t[7]=1.092548*n*r,t[8]=.546274*(n*n-i*i)}}bo.prototype.isSphericalHarmonics3=!0;class Ss extends Bt{constructor(e=new bo,t=1){super(void 0,t);this.sh=e}copy(e){return super.copy(e),this.sh.copy(e.sh),this}fromJSON(e){return this.intensity=e.intensity,this.sh.fromArray(e.sh),this}toJSON(e){const t=super.toJSON(e);return t.object.sh=this.sh.toArray(),t}}Ss.prototype.isLightProbe=!0;class Ef{static decodeText(e){if(typeof TextDecoder!="undefined")return new TextDecoder().decode(e);let t="";for(let n=0,i=e.length;n<i;n++)t+=String.fromCharCode(e[n]);try{return decodeURIComponent(escape(t))}catch{return t}}static extractUrlBase(e){const t=e.lastIndexOf("/");return t===-1?"./":e.substr(0,t+1)}static resolveURL(e,t){return typeof e!="string"||e===""?"":(/^https?:\/\//i.test(t)&&/^\//.test(e)&&(t=t.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(e)||/^data:.*,.*$/i.test(e)||/^blob:.*$/i.test(e)?e:t+e)}}class Af extends Ye{constructor(){super();this.type="InstancedBufferGeometry",this.instanceCount=1/0}copy(e){return super.copy(e),this.instanceCount=e.instanceCount,this}clone(){return new this.constructor().copy(this)}toJSON(){const e=super.toJSON(this);return e.instanceCount=this.instanceCount,e.isInstancedBufferGeometry=!0,e}}Af.prototype.isInstancedBufferGeometry=!0;class Rf extends ln{constructor(e){super(e);typeof createImageBitmap=="undefined"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch=="undefined"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,t,n,i){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const r=this,a=Yn.get(e);if(a!==void 0)return r.manager.itemStart(e),setTimeout(function(){t&&t(a),r.manager.itemEnd(e)},0),a;const o={};o.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",o.headers=this.requestHeader,fetch(e,o).then(function(c){return c.blob()}).then(function(c){return createImageBitmap(c,Object.assign(r.options,{colorSpaceConversion:"none"}))}).then(function(c){Yn.add(e,c),t&&t(c),r.manager.itemEnd(e)}).catch(function(c){i&&i(c),r.manager.itemError(e),r.manager.itemEnd(e)}),r.manager.itemStart(e)}}Rf.prototype.isImageBitmapLoader=!0;let tr;const wo={getContext:function(){return tr===void 0&&(tr=new(window.AudioContext||window.webkitAudioContext)),tr},setContext:function(s){tr=s}};class Cf extends ln{constructor(e){super(e)}load(e,t,n,i){const r=this,a=new _f(this.manager);a.setResponseType("arraybuffer"),a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,function(o){try{const c=o.slice(0);wo.getContext().decodeAudioData(c,function(h){t(h)})}catch(c){i?i(c):console.error(c),r.manager.itemError(e)}},n,i)}}class Lf extends Ss{constructor(e,t,n=1){super(void 0,n);const i=new me().set(e),r=new me().set(t),a=new w(i.r,i.g,i.b),o=new w(r.r,r.g,r.b),c=Math.sqrt(Math.PI),l=c*Math.sqrt(.75);this.sh.coefficients[0].copy(a).add(o).multiplyScalar(c),this.sh.coefficients[1].copy(a).sub(o).multiplyScalar(l)}}Lf.prototype.isHemisphereLightProbe=!0;class Pf extends Ss{constructor(e,t=1){super(void 0,t);const n=new me().set(e);this.sh.coefficients[0].set(n.r,n.g,n.b).multiplyScalar(2*Math.sqrt(Math.PI))}}Pf.prototype.isAmbientLightProbe=!0;class Df{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Da(),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 e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const t=Da();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}function Da(){return(typeof performance=="undefined"?Date:performance).now()}const fn=new w,Ia=new dt,If=new w,pn=new w;class tp extends Ue{constructor(){super();this.type="AudioListener",this.context=wo.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new Df}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(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(e){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e);const t=this.context.listener,n=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(fn,Ia,If),pn.set(0,0,-1).applyQuaternion(Ia),t.positionX){const i=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(fn.x,i),t.positionY.linearRampToValueAtTime(fn.y,i),t.positionZ.linearRampToValueAtTime(fn.z,i),t.forwardX.linearRampToValueAtTime(pn.x,i),t.forwardY.linearRampToValueAtTime(pn.y,i),t.forwardZ.linearRampToValueAtTime(pn.z,i),t.upX.linearRampToValueAtTime(n.x,i),t.upY.linearRampToValueAtTime(n.y,i),t.upZ.linearRampToValueAtTime(n.z,i)}else t.setPosition(fn.x,fn.y,fn.z),t.setOrientation(pn.x,pn.y,pn.z,n.x,n.y,n.z)}}class Ff extends Ue{constructor(e){super();this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.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(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;const t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e<t;e++)this.filters[e-1].connect(this.filters[e]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this}disconnect(){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e<t;e++)this.filters[e-1].disconnect(this.filters[e]);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(e){return e||(e=[]),this._connected===!0?(this.disconnect(),this.filters=e.slice(),this.connect()):this.filters=e.slice(),this}setDetune(e){if(this.detune=e,this.source.detune!==void 0)return this.isPlaying===!0&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(e){return this.setFilters(e?[e]:[])}setPlaybackRate(e){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.playbackRate=e,this.isPlaying===!0&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=!1}getLoop(){return this.hasPlaybackControl===!1?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop}setLoop(e){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.loop=e,this.isPlaying===!0&&(this.source.loop=this.loop),this}setLoopStart(e){return this.loopStart=e,this}setLoopEnd(e){return this.loopEnd=e,this}getVolume(){return this.gain.gain.value}setVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}}class Bf{constructor(e,t,n){this.binding=e,this.valueSize=n;let i,r,a;switch(t){case"quaternion":i=this._slerp,r=this._slerpAdditive,a=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(n*6),this._workIndex=5;break;case"string":case"bool":i=this._select,r=this._select,a=this._setAdditiveIdentityOther,this.buffer=new Array(n*5);break;default:i=this._lerp,r=this._lerpAdditive,a=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(n*5)}this._mixBufferRegion=i,this._mixBufferRegionAdditive=r,this._setIdentity=a,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}accumulate(e,t){const n=this.buffer,i=this.valueSize,r=e*i+i;let a=this.cumulativeWeight;if(a===0){for(let o=0;o!==i;++o)n[r+o]=n[o];a=t}else{a+=t;const o=t/a;this._mixBufferRegion(n,r,0,o,i)}this.cumulativeWeight=a}accumulateAdditive(e){const t=this.buffer,n=this.valueSize,i=n*this._addIndex;this.cumulativeWeightAdditive===0&&this._setIdentity(),this._mixBufferRegionAdditive(t,i,0,e,n),this.cumulativeWeightAdditive+=e}apply(e){const t=this.valueSize,n=this.buffer,i=e*t+t,r=this.cumulativeWeight,a=this.cumulativeWeightAdditive,o=this.binding;if(this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,r<1){const c=t*this._origIndex;this._mixBufferRegion(n,i,c,1-r,t)}a>0&&this._mixBufferRegionAdditive(n,i,this._addIndex*t,1,t);for(let c=t,l=t+t;c!==l;++c)if(n[c]!==n[c+t]){o.setValue(n,i);break}}saveOriginalState(){const e=this.binding,t=this.buffer,n=this.valueSize,i=n*this._origIndex;e.getValue(t,i);for(let r=n,a=i;r!==a;++r)t[r]=t[i+r%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let n=e;n<t;n++)this.buffer[n]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){const e=this._origIndex*this.valueSize,t=this._addIndex*this.valueSize;for(let n=0;n<this.valueSize;n++)this.buffer[t+n]=this.buffer[e+n]}_select(e,t,n,i,r){if(i>=.5)for(let a=0;a!==r;++a)e[t+a]=e[n+a]}_slerp(e,t,n,i){dt.slerpFlat(e,t,e,t,e,n,i)}_slerpAdditive(e,t,n,i,r){const a=this._workIndex*r;dt.multiplyQuaternionsFlat(e,a,e,t,e,n),dt.slerpFlat(e,t,e,t,e,a,i)}_lerp(e,t,n,i,r){const a=1-i;for(let o=0;o!==r;++o){const c=t+o;e[c]=e[c]*a+e[n+o]*i}}_lerpAdditive(e,t,n,i,r){for(let a=0;a!==r;++a){const o=t+a;e[o]=e[o]+e[n+a]*i}}}const bs="\\[\\]\\.:\\/",Nf=new RegExp("["+bs+"]","g"),ws="[^"+bs+"]",zf="[^"+bs.replace("\\.","")+"]",Uf=/((?:WC+[\/:])*)/.source.replace("WC",ws),Of=/(WCOD+)?/.source.replace("WCOD",zf),Gf=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",ws),Vf=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",ws),Hf=new RegExp("^"+Uf+Of+Gf+Vf+"$"),kf=["material","materials","bones"];class Wf{constructor(e,t,n){const i=n||Ge.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,i)}getValue(e,t){this.bind();const n=this._targetGroup.nCachedObjects_,i=this._bindings[n];i!==void 0&&i.getValue(e,t)}setValue(e,t){const n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,r=n.length;i!==r;++i)n[i].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].unbind()}}class Ge{constructor(e,t,n){this.path=t,this.parsedPath=n||Ge.parseTrackName(t),this.node=Ge.findNode(e,this.parsedPath.nodeName)||e,this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,n){return e&&e.isAnimationObjectGroup?new Ge.Composite(e,t,n):new Ge(e,t,n)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(Nf,"")}static parseTrackName(e){const t=Hf.exec(e);if(!t)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const n={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(i!==void 0&&i!==-1){const r=n.nodeName.substring(i+1);kf.indexOf(r)!==-1&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=r)}if(n.propertyName===null||n.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return n}static findNode(e,t){if(!t||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){const n=e.skeleton.getBoneByName(t);if(n!==void 0)return n}if(e.children){const n=function(r){for(let a=0;a<r.length;a++){const o=r[a];if(o.name===t||o.uuid===t)return o;const c=n(o.children);if(c)return c}return null},i=n(e.children);if(i)return i}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(e,t){e[t]=this.targetObject[this.propertyName]}_getValue_array(e,t){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)e[t++]=n[i]}_getValue_arrayElement(e,t){e[t]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(e,t){this.resolvedProperty.toArray(e,t)}_setValue_direct(e,t){this.targetObject[this.propertyName]=e[t]}_setValue_direct_setNeedsUpdate(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(e,t){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=e[t++]}_setValue_array_setNeedsUpdate(e,t){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=e[t++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(e,t){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=e[t++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(e,t){this.resolvedProperty[this.propertyIndex]=e[t]}_setValue_arrayElement_setNeedsUpdate(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(e,t){this.resolvedProperty.fromArray(e,t)}_setValue_fromArray_setNeedsUpdate(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(e,t){this.bind(),this.getValue(e,t)}_setValue_unbound(e,t){this.bind(),this.setValue(e,t)}bind(){let e=this.node;const t=this.parsedPath,n=t.objectName,i=t.propertyName;let r=t.propertyIndex;if(e||(e=Ge.findNode(this.rootNode,t.nodeName)||this.rootNode,this.node=e),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!e){console.error("THREE.PropertyBinding: Trying to update node for track: "+this.path+" but it wasn't found.");return}if(n){let l=t.objectIndex;switch(n){case"materials":if(!e.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!e.material.materials){console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);return}e=e.material.materials;break;case"bones":if(!e.skeleton){console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);return}e=e.skeleton.bones;for(let h=0;h<e.length;h++)if(e[h].name===l){l=h;break}break;default:if(e[n]===void 0){console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);return}e=e[n]}if(l!==void 0){if(e[l]===void 0){console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,e);return}e=e[l]}}const a=e[i];if(a===void 0){const l=t.nodeName;console.error("THREE.PropertyBinding: Trying to update property for track: "+l+"."+i+" but it wasn't found.",e);return}let o=this.Versioning.None;this.targetObject=e,e.needsUpdate!==void 0?o=this.Versioning.NeedsUpdate:e.matrixWorldNeedsUpdate!==void 0&&(o=this.Versioning.MatrixWorldNeedsUpdate);let c=this.BindingType.Direct;if(r!==void 0){if(i==="morphTargetInfluences"){if(!e.geometry){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);return}if(e.geometry.isBufferGeometry){if(!e.geometry.morphAttributes){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);return}e.morphTargetDictionary[r]!==void 0&&(r=e.morphTargetDictionary[r])}else{console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.",this);return}}c=this.BindingType.ArrayElement,this.resolvedProperty=a,this.propertyIndex=r}else a.fromArray!==void 0&&a.toArray!==void 0?(c=this.BindingType.HasFromToArray,this.resolvedProperty=a):Array.isArray(a)?(c=this.BindingType.EntireArray,this.resolvedProperty=a):this.propertyName=i;this.getValue=this.GetterByBindingType[c],this.setValue=this.SetterByBindingTypeAndVersioning[c][o]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}Ge.Composite=Wf;Ge.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3};Ge.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2};Ge.prototype.GetterByBindingType=[Ge.prototype._getValue_direct,Ge.prototype._getValue_array,Ge.prototype._getValue_arrayElement,Ge.prototype._getValue_toArray];Ge.prototype.SetterByBindingTypeAndVersioning=[[Ge.prototype._setValue_direct,Ge.prototype._setValue_direct_setNeedsUpdate,Ge.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[Ge.prototype._setValue_array,Ge.prototype._setValue_array_setNeedsUpdate,Ge.prototype._setValue_array_setMatrixWorldNeedsUpdate],[Ge.prototype._setValue_arrayElement,Ge.prototype._setValue_arrayElement_setNeedsUpdate,Ge.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[Ge.prototype._setValue_fromArray,Ge.prototype._setValue_fromArray_setNeedsUpdate,Ge.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];class qf{constructor(e,t,n=null,i=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=n,this.blendMode=i;const r=t.tracks,a=r.length,o=new Array(a),c={endingStart:2400,endingEnd:2400};for(let l=0;l!==a;++l){const h=r[l].createInterpolant(null);o[l]=h,h.settings=c}this._interpolantSettings=c,this._interpolants=o,this._propertyBindings=new Array(a),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,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&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,n){if(e.fadeOut(t),this.fadeIn(t),n){const i=this._clip.duration,r=e._clip.duration,a=r/i,o=i/r;e.warp(1,a,t),this.warp(o,1,t)}return this}crossFadeTo(e,t,n){return e.crossFadeFrom(this,t,n)}stopFading(){const e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,n){const i=this._mixer,r=i.time,a=this.timeScale;let o=this._timeScaleInterpolant;o===null&&(o=i._lendControlInterpolant(),this._timeScaleInterpolant=o);const c=o.parameterPositions,l=o.sampleValues;return c[0]=r,c[1]=r+n,l[0]=e/a,l[1]=t/a,this}stopWarping(){const e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,n,i){if(!this.enabled){this._updateWeight(e);return}const r=this._startTime;if(r!==null){const c=(e-r)*n;if(c<0||n===0)return;this._startTime=null,t=n*c}t*=this._updateTimeScale(e);const a=this._updateTime(t),o=this._updateWeight(e);if(o>0){const c=this._interpolants,l=this._propertyBindings;switch(this.blendMode){case 2501:for(let h=0,u=c.length;h!==u;++h)c[h].evaluate(a),l[h].accumulateAdditive(o);break;case 2500:default:for(let h=0,u=c.length;h!==u;++h)c[h].evaluate(a),l[h].accumulate(i,o)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const n=this._weightInterpolant;if(n!==null){const i=n.evaluate(e)[0];t*=i,e>n.parameterPositions[1]&&(this.stopFading(),i===0&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const n=this._timeScaleInterpolant;n!==null&&(t*=n.evaluate(e)[0],e>n.parameterPositions[1]&&(this.stopWarping(),t===0?this.paused=!0:this.timeScale=t))}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,n=this.loop;let i=this.time+e,r=this._loopCount;const a=n===2202;if(e===0)return r===-1?i:a&&(r&1)===1?t-i:i;if(n===2200){r===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(i>=t)i=t;else if(i<0)i=0;else{this.time=i;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(r===-1&&(e>=0?(r=0,this._setEndings(!0,this.repetitions===0,a)):this._setEndings(this.repetitions===0,!0,a)),i>=t||i<0){const o=Math.floor(i/t);i-=t*o,r+=Math.abs(o);const c=this.repetitions-r;if(c<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=e>0?t:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(c===1){const l=e<0;this._setEndings(l,!l,a)}else this._setEndings(!1,!1,a);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:o})}}else this.time=i;if(a&&(r&1)===1)return t-i}return i}_setEndings(e,t,n){const i=this._interpolantSettings;n?(i.endingStart=2401,i.endingEnd=2401):(e?i.endingStart=this.zeroSlopeAtStart?2401:2400:i.endingStart=2402,t?i.endingEnd=this.zeroSlopeAtEnd?2401:2400:i.endingEnd=2402)}_scheduleFading(e,t,n){const i=this._mixer,r=i.time;let a=this._weightInterpolant;a===null&&(a=i._lendControlInterpolant(),this._weightInterpolant=a);const o=a.parameterPositions,c=a.sampleValues;return o[0]=r,c[0]=t,o[1]=r+e,c[1]=n,this}}class Xf extends on{constructor(e){super();this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){const n=e._localRoot||this._root,i=e._clip.tracks,r=i.length,a=e._propertyBindings,o=e._interpolants,c=n.uuid,l=this._bindingsByRootAndName;let h=l[c];h===void 0&&(h={},l[c]=h);for(let u=0;u!==r;++u){const d=i[u],p=d.name;let g=h[p];if(g!==void 0)++g.referenceCount,a[u]=g;else{if(g=a[u],g!==void 0){g._cacheIndex===null&&(++g.referenceCount,this._addInactiveBinding(g,c,p));continue}const _=t&&t._propertyBindings[u].binding.parsedPath;g=new Bf(Ge.create(n,p,_),d.ValueTypeName,d.getValueSize()),++g.referenceCount,this._addInactiveBinding(g,c,p),a[u]=g}o[u].resultBuffer=g.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const n=(e._localRoot||this._root).uuid,i=e._clip.uuid,r=this._actionsByClip[i];this._bindAction(e,r&&r.knownActions[0]),this._addInactiveAction(e,i,n)}const t=e._propertyBindings;for(let n=0,i=t.length;n!==i;++n){const r=t[n];r.useCount++===0&&(this._lendBinding(r),r.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let n=0,i=t.length;n!==i;++n){const r=t[n];--r.useCount===0&&(r.restoreOriginalState(),this._takeBackBinding(r))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const t=e._cacheIndex;return t!==null&&t<this._nActiveActions}_addInactiveAction(e,t,n){const i=this._actions,r=this._actionsByClip;let a=r[t];if(a===void 0)a={knownActions:[e],actionByRoot:{}},e._byClipCacheIndex=0,r[t]=a;else{const o=a.knownActions;e._byClipCacheIndex=o.length,o.push(e)}e._cacheIndex=i.length,i.push(e),a.actionByRoot[n]=e}_removeInactiveAction(e){const t=this._actions,n=t[t.length-1],i=e._cacheIndex;n._cacheIndex=i,t[i]=n,t.pop(),e._cacheIndex=null;const r=e._clip.uuid,a=this._actionsByClip,o=a[r],c=o.knownActions,l=c[c.length-1],h=e._byClipCacheIndex;l._byClipCacheIndex=h,c[h]=l,c.pop(),e._byClipCacheIndex=null;const u=o.actionByRoot,d=(e._localRoot||this._root).uuid;delete u[d],c.length===0&&delete a[r],this._removeInactiveBindingsForAction(e)}_removeInactiveBindingsForAction(e){const t=e._propertyBindings;for(let n=0,i=t.length;n!==i;++n){const r=t[n];--r.referenceCount===0&&this._removeInactiveBinding(r)}}_lendAction(e){const t=this._actions,n=e._cacheIndex,i=this._nActiveActions++,r=t[i];e._cacheIndex=i,t[i]=e,r._cacheIndex=n,t[n]=r}_takeBackAction(e){const t=this._actions,n=e._cacheIndex,i=--this._nActiveActions,r=t[i];e._cacheIndex=i,t[i]=e,r._cacheIndex=n,t[n]=r}_addInactiveBinding(e,t,n){const i=this._bindingsByRootAndName,r=this._bindings;let a=i[t];a===void 0&&(a={},i[t]=a),a[n]=e,e._cacheIndex=r.length,r.push(e)}_removeInactiveBinding(e){const t=this._bindings,n=e.binding,i=n.rootNode.uuid,r=n.path,a=this._bindingsByRootAndName,o=a[i],c=t[t.length-1],l=e._cacheIndex;c._cacheIndex=l,t[l]=c,t.pop(),delete o[r],Object.keys(o).length===0&&delete a[i]}_lendBinding(e){const t=this._bindings,n=e._cacheIndex,i=this._nActiveBindings++,r=t[i];e._cacheIndex=i,t[i]=e,r._cacheIndex=n,t[n]=r}_takeBackBinding(e){const t=this._bindings,n=e._cacheIndex,i=--this._nActiveBindings,r=t[i];e._cacheIndex=i,t[i]=e,r._cacheIndex=n,t[n]=r}_lendControlInterpolant(){const e=this._controlInterpolants,t=this._nActiveControlInterpolants++;let n=e[t];return n===void 0&&(n=new _o(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),n.__cacheIndex=t,e[t]=n),n}_takeBackControlInterpolant(e){const t=this._controlInterpolants,n=e.__cacheIndex,i=--this._nActiveControlInterpolants,r=t[i];e.__cacheIndex=i,t[i]=e,r.__cacheIndex=n,t[n]=r}clipAction(e,t,n){const i=t||this._root,r=i.uuid;let a=typeof e=="string"?Aa.findByName(i,e):e;const o=a!==null?a.uuid:e,c=this._actionsByClip[o];let l=null;if(n===void 0&&(a!==null?n=a.blendMode:n=2500),c!==void 0){const u=c.actionByRoot[r];if(u!==void 0&&u.blendMode===n)return u;l=c.knownActions[0],a===null&&(a=l._clip)}if(a===null)return null;const h=new qf(this,a,t,n);return this._bindAction(h,l),this._addInactiveAction(h,o,r),h}existingAction(e,t){const n=t||this._root,i=n.uuid,r=typeof e=="string"?Aa.findByName(n,e):e,a=r?r.uuid:e,o=this._actionsByClip[a];return o!==void 0&&o.actionByRoot[i]||null}stopAllAction(){const e=this._actions,t=this._nActiveActions;for(let n=t-1;n>=0;--n)e[n].stop();return this}update(e){e*=this.timeScale;const t=this._actions,n=this._nActiveActions,i=this.time+=e,r=Math.sign(e),a=this._accuIndex^=1;for(let l=0;l!==n;++l)t[l]._update(i,e,r,a);const o=this._bindings,c=this._nActiveBindings;for(let l=0;l!==c;++l)o[l].apply(a);return this}setTime(e){this.time=0;for(let t=0;t<this._actions.length;t++)this._actions[t].time=0;return this.update(e)}getRoot(){return this._root}uncacheClip(e){const t=this._actions,n=e.uuid,i=this._actionsByClip,r=i[n];if(r!==void 0){const a=r.knownActions;for(let o=0,c=a.length;o!==c;++o){const l=a[o];this._deactivateAction(l);const h=l._cacheIndex,u=t[t.length-1];l._cacheIndex=null,l._byClipCacheIndex=null,u._cacheIndex=h,t[h]=u,t.pop(),this._removeInactiveBindingsForAction(l)}delete i[n]}}uncacheRoot(e){const t=e.uuid,n=this._actionsByClip;for(const a in n){const o=n[a].actionByRoot,c=o[t];c!==void 0&&(this._deactivateAction(c),this._removeInactiveAction(c))}const i=this._bindingsByRootAndName,r=i[t];if(r!==void 0)for(const a in r){const o=r[a];o.restoreOriginalState(),this._removeInactiveBinding(o)}}uncacheAction(e,t){const n=this.existingAction(e,t);n!==null&&(this._deactivateAction(n),this._removeInactiveAction(n))}}Xf.prototype._controlInterpolantsResultBuffer=new Float32Array(1);class Yf extends vi{constructor(e,t,n=1){super(e,t);this.meshPerAttribute=n}copy(e){return super.copy(e),this.meshPerAttribute=e.meshPerAttribute,this}clone(e){const t=super.clone(e);return t.meshPerAttribute=this.meshPerAttribute,t}toJSON(e){const t=super.toJSON(e);return t.isInstancedInterleavedBuffer=!0,t.meshPerAttribute=this.meshPerAttribute,t}}Yf.prototype.isInstancedInterleavedBuffer=!0;class np{constructor(e,t,n=0,i=1/0){this.ray=new vn(e,t),this.near=n,this.far=i,this.camera=null,this.layers=new ss,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(e,t){this.ray.set(e,t)}setFromCamera(e,t){t&&t.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(t.matrixWorld),this.ray.direction.set(e.x,e.y,.5).unproject(t).sub(this.ray.origin).normalize(),this.camera=t):t&&t.isOrthographicCamera?(this.ray.origin.set(e.x,e.y,(t.near+t.far)/(t.near-t.far)).unproject(t),this.ray.direction.set(0,0,-1).transformDirection(t.matrixWorld),this.camera=t):console.error("THREE.Raycaster: Unsupported camera type: "+t.type)}intersectObject(e,t=!0,n=[]){return ns(e,this,n,t),n.sort(Fa),n}intersectObjects(e,t=!0,n=[]){for(let i=0,r=e.length;i<r;i++)ns(e[i],this,n,t);return n.sort(Fa),n}}function Fa(s,e){return s.distance-e.distance}function ns(s,e,t,n){if(s.layers.test(e.layers)&&s.raycast(e,t),n===!0){const i=s.children;for(let r=0,a=i.length;r<a;r++)ns(i[r],e,t,!0)}}const Qt=new w,nr=new ve,Xr=new ve;class Zf extends ms{constructor(e){const t=To(e),n=new Ye,i=[],r=[],a=new me(0,0,1),o=new me(0,1,0);for(let l=0;l<t.length;l++){const h=t[l];h.parent&&h.parent.isBone&&(i.push(0,0,0),i.push(0,0,0),r.push(a.r,a.g,a.b),r.push(o.r,o.g,o.b))}n.setAttribute("position",new it(i,3)),n.setAttribute("color",new it(r,3));const c=new yi({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0});super(n,c);this.type="SkeletonHelper",this.isSkeletonHelper=!0,this.root=e,this.bones=t,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}updateMatrixWorld(e){const t=this.bones,n=this.geometry,i=n.getAttribute("position");Xr.copy(this.root.matrixWorld).invert();for(let r=0,a=0;r<t.length;r++){const o=t[r];o.parent&&o.parent.isBone&&(nr.multiplyMatrices(Xr,o.matrixWorld),Qt.setFromMatrixPosition(nr),i.setXYZ(a,Qt.x,Qt.y,Qt.z),nr.multiplyMatrices(Xr,o.parent.matrixWorld),Qt.setFromMatrixPosition(nr),i.setXYZ(a+1,Qt.x,Qt.y,Qt.z),a+=2)}n.getAttribute("position").needsUpdate=!0,super.updateMatrixWorld(e)}}function To(s){const e=[];s&&s.isBone&&e.push(s);for(let t=0;t<s.children.length;t++)e.push.apply(e,To(s.children[t]));return e}class jf extends ms{constructor(e=10,t=10,n=4473924,i=8947848){n=new me(n),i=new me(i);const r=t/2,a=e/t,o=e/2,c=[],l=[];for(let d=0,p=0,g=-o;d<=t;d++,g+=a){c.push(-o,0,g,o,0,g),c.push(g,0,-o,g,0,o);const _=d===r?n:i;_.toArray(l,p),p+=3,_.toArray(l,p),p+=3,_.toArray(l,p),p+=3,_.toArray(l,p),p+=3}const h=new Ye;h.setAttribute("position",new it(c,3)),h.setAttribute("color",new it(l,3));const u=new yi({vertexColors:!0,toneMapped:!1});super(h,u);this.type="GridHelper"}}const Jf=new Float32Array(1);new Int32Array(Jf.buffer);St.create=function(s,e){return console.log("THREE.Curve.create() has been deprecated"),s.prototype=Object.create(St.prototype),s.prototype.constructor=s,s.prototype.getPoint=e,s};Qr.prototype.fromPoints=function(s){return console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints()."),this.setFromPoints(s)};jf.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")};Zf.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")};ln.prototype.extractUrlBase=function(s){return console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead."),Ef.extractUrlBase(s)};ln.Handlers={add:function(){console.error("THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.")},get:function(){console.error("THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.")}};At.prototype.center=function(s){return console.warn("THREE.Box3: .center() has been renamed to .getCenter()."),this.getCenter(s)};At.prototype.empty=function(){return console.warn("THREE.Box3: .empty() has been renamed to .isEmpty()."),this.isEmpty()};At.prototype.isIntersectionBox=function(s){return console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(s)};At.prototype.isIntersectionSphere=function(s){return console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(s)};At.prototype.size=function(s){return console.warn("THREE.Box3: .size() has been renamed to .getSize()."),this.getSize(s)};Zn.prototype.empty=function(){return console.warn("THREE.Sphere: .empty() has been renamed to .isEmpty()."),this.isEmpty()};ar.prototype.setFromMatrix=function(s){return console.warn("THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix()."),this.setFromProjectionMatrix(s)};at.prototype.flattenToArrayOffset=function(s,e){return console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(s,e)};at.prototype.multiplyVector3=function(s){return console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead."),s.applyMatrix3(this)};at.prototype.multiplyVector3Array=function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")};at.prototype.applyToBufferAttribute=function(s){return console.warn("THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead."),s.applyMatrix3(this)};at.prototype.applyToVector3Array=function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")};at.prototype.getInverse=function(s){return console.warn("THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(s).invert()};ve.prototype.extractPosition=function(s){return console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition()."),this.copyPosition(s)};ve.prototype.flattenToArrayOffset=function(s,e){return console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(s,e)};ve.prototype.getPosition=function(){return console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead."),new w().setFromMatrixColumn(this,3)};ve.prototype.setRotationFromQuaternion=function(s){return console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion()."),this.makeRotationFromQuaternion(s)};ve.prototype.multiplyToArray=function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")};ve.prototype.multiplyVector3=function(s){return console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead."),s.applyMatrix4(this)};ve.prototype.multiplyVector4=function(s){return console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead."),s.applyMatrix4(this)};ve.prototype.multiplyVector3Array=function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")};ve.prototype.rotateAxis=function(s){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead."),s.transformDirection(this)};ve.prototype.crossVector=function(s){return console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead."),s.applyMatrix4(this)};ve.prototype.translate=function(){console.error("THREE.Matrix4: .translate() has been removed.")};ve.prototype.rotateX=function(){console.error("THREE.Matrix4: .rotateX() has been removed.")};ve.prototype.rotateY=function(){console.error("THREE.Matrix4: .rotateY() has been removed.")};ve.prototype.rotateZ=function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")};ve.prototype.rotateByAxis=function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")};ve.prototype.applyToBufferAttribute=function(s){return console.warn("THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead."),s.applyMatrix4(this)};ve.prototype.applyToVector3Array=function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")};ve.prototype.makeFrustum=function(s,e,t,n,i,r){return console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead."),this.makePerspective(s,e,n,t,i,r)};ve.prototype.getInverse=function(s){return console.warn("THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(s).invert()};qt.prototype.isIntersectionLine=function(s){return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."),this.intersectsLine(s)};dt.prototype.multiplyVector3=function(s){return console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead."),s.applyQuaternion(this)};dt.prototype.inverse=function(){return console.warn("THREE.Quaternion: .inverse() has been renamed to invert()."),this.invert()};vn.prototype.isIntersectionBox=function(s){return console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(s)};vn.prototype.isIntersectionPlane=function(s){return console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane()."),this.intersectsPlane(s)};vn.prototype.isIntersectionSphere=function(s){return console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(s)};Qe.prototype.area=function(){return console.warn("THREE.Triangle: .area() has been renamed to .getArea()."),this.getArea()};Qe.prototype.barycoordFromPoint=function(s,e){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),this.getBarycoord(s,e)};Qe.prototype.midpoint=function(s){return console.warn("THREE.Triangle: .midpoint() has been renamed to .getMidpoint()."),this.getMidpoint(s)};Qe.prototypenormal=function(s){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),this.getNormal(s)};Qe.prototype.plane=function(s){return console.warn("THREE.Triangle: .plane() has been renamed to .getPlane()."),this.getPlane(s)};Qe.barycoordFromPoint=function(s,e,t,n,i){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),Qe.getBarycoord(s,e,t,n,i)};Qe.normal=function(s,e,t,n){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),Qe.getNormal(s,e,t,n)};Mi.prototype.extractAllPoints=function(s){return console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead."),this.extractPoints(s)};Mi.prototype.extrude=function(s){return console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead."),new Jn(this,s)};Mi.prototype.makeGeometry=function(s){return console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead."),new ys(this,s)};J.prototype.fromAttribute=function(s,e,t){return console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(s,e,t)};J.prototype.distanceToManhattan=function(s){return console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(s)};J.prototype.lengthManhattan=function(){return console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()};w.prototype.setEulerFromRotationMatrix=function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")};w.prototype.setEulerFromQuaternion=function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")};w.prototype.getPositionFromMatrix=function(s){return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."),this.setFromMatrixPosition(s)};w.prototype.getScaleFromMatrix=function(s){return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."),this.setFromMatrixScale(s)};w.prototype.getColumnFromMatrix=function(s,e){return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."),this.setFromMatrixColumn(e,s)};w.prototype.applyProjection=function(s){return console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead."),this.applyMatrix4(s)};w.prototype.fromAttribute=function(s,e,t){return console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(s,e,t)};w.prototype.distanceToManhattan=function(s){return console.warn("THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(s)};w.prototype.lengthManhattan=function(){return console.warn("THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()};ke.prototype.fromAttribute=function(s,e,t){return console.warn("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(s,e,t)};ke.prototype.lengthManhattan=function(){return console.warn("THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()};Ue.prototype.getChildByName=function(s){return console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName()."),this.getObjectByName(s)};Ue.prototype.renderDepth=function(){console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")};Ue.prototype.translate=function(s,e){return console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead."),this.translateOnAxis(e,s)};Ue.prototype.getWorldRotation=function(){console.error("THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.")};Ue.prototype.applyMatrix=function(s){return console.warn("THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(s)};Object.defineProperties(Ue.prototype,{eulerOrder:{get:function(){return console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order},set:function(s){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order=s}},useQuaternion:{get:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")},set:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")}}});mt.prototype.setDrawMode=function(){console.error("THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")};Object.defineProperties(mt.prototype,{drawMode:{get:function(){return console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode."),0},set:function(){console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")}}});so.prototype.initBones=function(){console.error("THREE.SkinnedMesh: initBones() has been removed.")};pt.prototype.setLens=function(s,e){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup."),e!==void 0&&(this.filmGauge=e),this.setFocalLength(s)};Object.defineProperties(Bt.prototype,{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(s){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov."),this.shadow.camera.fov=s}},shadowCameraLeft:{set:function(s){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left."),this.shadow.camera.left=s}},shadowCameraRight:{set:function(s){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right."),this.shadow.camera.right=s}},shadowCameraTop:{set:function(s){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top."),this.shadow.camera.top=s}},shadowCameraBottom:{set:function(s){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom."),this.shadow.camera.bottom=s}},shadowCameraNear:{set:function(s){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near."),this.shadow.camera.near=s}},shadowCameraFar:{set:function(s){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far."),this.shadow.camera.far=s}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(s){console.warn("THREE.Light: .shadowBias is now .shadow.bias."),this.shadow.bias=s}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(s){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width."),this.shadow.mapSize.width=s}},shadowMapHeight:{set:function(s){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height."),this.shadow.mapSize.height=s}}});Object.defineProperties(tt.prototype,{length:{get:function(){return console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead."),this.array.length}},dynamic:{get:function(){return console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.usage===35048},set:function(){console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.setUsage(35048)}}});tt.prototype.setDynamic=function(s){return console.warn("THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(s===!0?35048:35044),this};tt.prototype.copyIndicesArray=function(){console.error("THREE.BufferAttribute: .copyIndicesArray() has been removed.")},tt.prototype.setArray=function(){console.error("THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")};Ye.prototype.addIndex=function(s){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex()."),this.setIndex(s)};Ye.prototype.addAttribute=function(s,e){return console.warn("THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute()."),!(e&&e.isBufferAttribute)&&!(e&&e.isInterleavedBufferAttribute)?(console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.setAttribute(s,new tt(arguments[1],arguments[2]))):s==="index"?(console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(e),this):this.setAttribute(s,e)};Ye.prototype.addDrawCall=function(s,e,t){t!==void 0&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset."),console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup()."),this.addGroup(s,e)};Ye.prototype.clearDrawCalls=function(){console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups()."),this.clearGroups()};Ye.prototype.computeOffsets=function(){console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.")};Ye.prototype.removeAttribute=function(s){return console.warn("THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute()."),this.deleteAttribute(s)};Ye.prototype.applyMatrix=function(s){return console.warn("THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(s)};Object.defineProperties(Ye.prototype,{drawcalls:{get:function(){return console.error("THREE.BufferGeometry: .drawcalls has been renamed to .groups."),this.groups}},offsets:{get:function(){return console.warn("THREE.BufferGeometry: .offsets has been renamed to .groups."),this.groups}}});vi.prototype.setDynamic=function(s){return console.warn("THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(s===!0?35048:35044),this};vi.prototype.setArray=function(){console.error("THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")};Jn.prototype.getArrays=function(){console.error("THREE.ExtrudeGeometry: .getArrays() has been removed.")};Jn.prototype.addShapeList=function(){console.error("THREE.ExtrudeGeometry: .addShapeList() has been removed.")};Jn.prototype.addShape=function(){console.error("THREE.ExtrudeGeometry: .addShape() has been removed.")};no.prototype.dispose=function(){console.error("THREE.Scene: .dispose() has been removed.")};Object.defineProperties(ut.prototype,{wrapAround:{get:function(){console.warn("THREE.Material: .wrapAround has been removed.")},set:function(){console.warn("THREE.Material: .wrapAround has been removed.")}},overdraw:{get:function(){console.warn("THREE.Material: .overdraw has been removed.")},set:function(){console.warn("THREE.Material: .overdraw has been removed.")}},wrapRGB:{get:function(){return console.warn("THREE.Material: .wrapRGB has been removed."),new me}},shading:{get:function(){console.error("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(s){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=s===1}},stencilMask:{get:function(){return console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask},set:function(s){console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask=s}},vertexTangents:{get:function(){console.warn("THREE."+this.type+": .vertexTangents has been removed.")},set:function(){console.warn("THREE."+this.type+": .vertexTangents has been removed.")}}});Object.defineProperties(_n.prototype,{derivatives:{get:function(){return console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives},set:function(s){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives=s}}});He.prototype.clearTarget=function(s,e,t,n){console.warn("THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead."),this.setRenderTarget(s),this.clear(e,t,n)};He.prototype.animate=function(s){console.warn("THREE.WebGLRenderer: .animate() is now .setAnimationLoop()."),this.setAnimationLoop(s)};He.prototype.getCurrentRenderTarget=function(){return console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget()."),this.getRenderTarget()};He.prototype.getMaxAnisotropy=function(){return console.warn("THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy()."),this.capabilities.getMaxAnisotropy()};He.prototype.getPrecision=function(){return console.warn("THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision."),this.capabilities.precision};He.prototype.resetGLState=function(){return console.warn("THREE.WebGLRenderer: .resetGLState() is now .state.reset()."),this.state.reset()};He.prototype.supportsFloatTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' )."),this.extensions.get("OES_texture_float")};He.prototype.supportsHalfFloatTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' )."),this.extensions.get("OES_texture_half_float")};He.prototype.supportsStandardDerivatives=function(){return console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' )."),this.extensions.get("OES_standard_derivatives")};He.prototype.supportsCompressedTextureS3TC=function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' )."),this.extensions.get("WEBGL_compressed_texture_s3tc")};He.prototype.supportsCompressedTexturePVRTC=function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' )."),this.extensions.get("WEBGL_compressed_texture_pvrtc")};He.prototype.supportsBlendMinMax=function(){return console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' )."),this.extensions.get("EXT_blend_minmax")};He.prototype.supportsVertexTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures."),this.capabilities.vertexTextures};He.prototype.supportsInstancedArrays=function(){return console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' )."),this.extensions.get("ANGLE_instanced_arrays")};He.prototype.enableScissorTest=function(s){console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest()."),this.setScissorTest(s)};He.prototype.initMaterial=function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")};He.prototype.addPrePlugin=function(){console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")};He.prototype.addPostPlugin=function(){console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")};He.prototype.updateShadowMap=function(){console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")};He.prototype.setFaceCulling=function(){console.warn("THREE.WebGLRenderer: .setFaceCulling() has been removed.")};He.prototype.allocTextureUnit=function(){console.warn("THREE.WebGLRenderer: .allocTextureUnit() has been removed.")};He.prototype.setTexture=function(){console.warn("THREE.WebGLRenderer: .setTexture() has been removed.")};He.prototype.setTexture2D=function(){console.warn("THREE.WebGLRenderer: .setTexture2D() has been removed.")};He.prototype.setTextureCube=function(){console.warn("THREE.WebGLRenderer: .setTextureCube() has been removed.")};He.prototype.getActiveMipMapLevel=function(){return console.warn("THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel()."),this.getActiveMipmapLevel()};Object.defineProperties(He.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(s){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled."),this.shadowMap.enabled=s}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(s){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type."),this.shadowMap.type=s}},shadowMapCullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")}},context:{get:function(){return console.warn("THREE.WebGLRenderer: .context has been removed. Use .getContext() instead."),this.getContext()}},vr:{get:function(){return console.warn("THREE.WebGLRenderer: .vr has been renamed to .xr"),this.xr}},gammaInput:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead."),!1},set:function(){console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.")}},gammaOutput:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),!1},set:function(s){console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),this.outputEncoding=s===!0?3001:3e3}},toneMappingWhitePoint:{get:function(){return console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed."),1},set:function(){console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.")}},gammaFactor:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaFactor has been removed."),2},set:function(){console.warn("THREE.WebGLRenderer: .gammaFactor has been removed.")}}});Object.defineProperties(eo.prototype,{cullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")}},renderReverseSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")}},renderSingleSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")}}});Object.defineProperties(Mt.prototype,{wrapS:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS},set:function(s){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS=s}},wrapT:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT},set:function(s){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT=s}},magFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter},set:function(s){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter=s}},minFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter},set:function(s){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter=s}},anisotropy:{get:function(){return console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy},set:function(s){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy=s}},offset:{get:function(){return console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset},set:function(s){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset=s}},repeat:{get:function(){return console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat},set:function(s){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat=s}},format:{get:function(){return console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format},set:function(s){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format=s}},type:{get:function(){return console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type},set:function(s){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type=s}},generateMipmaps:{get:function(){return console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps},set:function(s){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps=s}}});Ff.prototype.load=function(s){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");const e=this;return new Cf().load(s,function(n){e.setBuffer(n)}),this};ls.prototype.updateCubeMap=function(s,e){return console.warn("THREE.CubeCamera: .updateCubeMap() is now .update()."),this.update(s,e)};ls.prototype.clear=function(s,e,t,n){return console.warn("THREE.CubeCamera: .clear() is now .renderTarget.clear()."),this.renderTarget.clear(s,e,t,n)};xn.crossOrigin=void 0;xn.loadTexture=function(s,e,t,n){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");const i=new vf;i.setCrossOrigin(this.crossOrigin);const r=i.load(s,t,void 0,n);return e&&(r.mapping=e),r};xn.loadTextureCube=function(s,e,t,n){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");const i=new xf;i.setCrossOrigin(this.crossOrigin);const r=i.load(s,t,void 0,n);return e&&(r.mapping=e),r};xn.loadCompressedTexture=function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")};xn.loadCompressedTextureCube=function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")};typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:is}}));typeof window!="undefined"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=is);const Vn=new yn(0,0,0,"YXZ"),Hn=new w,$f={type:"change"},Kf={type:"lock"},Qf={type:"unlock"},Ba=Math.PI/2;class ip extends on{constructor(e,t){super();t===void 0&&(console.warn('THREE.PointerLockControls: The second parameter "domElement" is now mandatory.'),t=document.body),this.domElement=t,this.isLocked=!1,this.minPolarAngle=0,this.maxPolarAngle=Math.PI;const n=this;function i(o){if(n.isLocked===!1)return;const c=o.movementX||o.mozMovementX||o.webkitMovementX||0,l=o.movementY||o.mozMovementY||o.webkitMovementY||0;Vn.setFromQuaternion(e.quaternion),Vn.y-=c*.002,Vn.x-=l*.002,Vn.x=Math.max(Ba-n.maxPolarAngle,Math.min(Ba-n.minPolarAngle,Vn.x)),e.quaternion.setFromEuler(Vn),n.dispatchEvent($f)}function r(){n.domElement.ownerDocument.pointerLockElement===n.domElement?(n.dispatchEvent(Kf),n.isLocked=!0):(n.dispatchEvent(Qf),n.isLocked=!1)}function a(){console.error("THREE.PointerLockControls: Unable to use Pointer Lock API")}this.connect=function(){n.domElement.ownerDocument.addEventListener("mousemove",i),n.domElement.ownerDocument.addEventListener("pointerlockchange",r),n.domElement.ownerDocument.addEventListener("pointerlockerror",a)},this.disconnect=function(){n.domElement.ownerDocument.removeEventListener("mousemove",i),n.domElement.ownerDocument.removeEventListener("pointerlockchange",r),n.domElement.ownerDocument.removeEventListener("pointerlockerror",a)},this.dispose=function(){this.disconnect()},this.getObject=function(){return e},this.getDirection=function(){const o=new w(0,0,-1);return function(c){return c.copy(o).applyQuaternion(e.quaternion)}}(),this.moveForward=function(o){Hn.setFromMatrixColumn(e.matrix,0),Hn.crossVectors(e.up,Hn),e.position.addScaledVector(Hn,o)},this.moveRight=function(o){Hn.setFromMatrixColumn(e.matrix,0),e.position.addScaledVector(Hn,o)},this.lock=function(){this.domElement.requestPointerLock()},this.unlock=function(){n.domElement.ownerDocument.exitPointerLock()},this.connect()}}const ct=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180];for(let s=0;s<256;s++)ct[256+s]=ct[s];function Yr(s){return s*s*s*(s*(s*6-15)+10)}function mn(s,e,t){return e+s*(t-e)}function en(s,e,t,n){const i=s&15,r=i<8?e:t,a=i<4?t:i==12||i==14?e:n;return((i&1)==0?r:-r)+((i&2)==0?a:-a)}class rp{noise(e,t,n){const i=Math.floor(e),r=Math.floor(t),a=Math.floor(n),o=i&255,c=r&255,l=a&255;e-=i,t-=r,n-=a;const h=e-1,u=t-1,d=n-1,p=Yr(e),g=Yr(t),_=Yr(n),M=ct[o]+c,m=ct[M]+l,f=ct[M+1]+l,E=ct[o+1]+c,y=ct[E]+l,T=ct[E+1]+l;return mn(_,mn(g,mn(p,en(ct[m],e,t,n),en(ct[y],h,t,n)),mn(p,en(ct[f],e,u,n),en(ct[T],h,u,n))),mn(g,mn(p,en(ct[m+1],e,t,d),en(ct[y+1],h,t,d)),mn(p,en(ct[f+1],e,u,d),en(ct[T+1],h,u,d))))}}export{wf as A,xi as B,me as C,yn as E,fs as F,vd as I,go as M,ep as N,pt as P,np as R,no as S,vf as T,w as V,He as W,Sf as a,mt as b,as as c,$r as d,ve as e,rp as f,J as g,ip as h,tp as i,Cf as j,Ff as k}; +//# sourceMappingURL=vendor.b16e062d.js.map diff --git a/dist/assets/vendor.b16e062d.js.map b/dist/assets/vendor.b16e062d.js.map new file mode 100644 index 0000000..43e86e3 --- /dev/null +++ b/dist/assets/vendor.b16e062d.js.map @@ -0,0 +1 @@ +{"version":3,"file":"vendor.b16e062d.js","sources":["../../node_modules/three/build/three.module.js","../../node_modules/three/examples/jsm/controls/PointerLockControls.js","../../node_modules/three/examples/jsm/math/ImprovedNoise.js"],"sourcesContent":["/**\n * @license\n * Copyright 2010-2022 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\nconst REVISION = '137';\nconst MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };\nconst TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };\nconst CullFaceNone = 0;\nconst CullFaceBack = 1;\nconst CullFaceFront = 2;\nconst CullFaceFrontBack = 3;\nconst BasicShadowMap = 0;\nconst PCFShadowMap = 1;\nconst PCFSoftShadowMap = 2;\nconst VSMShadowMap = 3;\nconst FrontSide = 0;\nconst BackSide = 1;\nconst DoubleSide = 2;\nconst FlatShading = 1;\nconst SmoothShading = 2;\nconst NoBlending = 0;\nconst NormalBlending = 1;\nconst AdditiveBlending = 2;\nconst SubtractiveBlending = 3;\nconst MultiplyBlending = 4;\nconst CustomBlending = 5;\nconst AddEquation = 100;\nconst SubtractEquation = 101;\nconst ReverseSubtractEquation = 102;\nconst MinEquation = 103;\nconst MaxEquation = 104;\nconst ZeroFactor = 200;\nconst OneFactor = 201;\nconst SrcColorFactor = 202;\nconst OneMinusSrcColorFactor = 203;\nconst SrcAlphaFactor = 204;\nconst OneMinusSrcAlphaFactor = 205;\nconst DstAlphaFactor = 206;\nconst OneMinusDstAlphaFactor = 207;\nconst DstColorFactor = 208;\nconst OneMinusDstColorFactor = 209;\nconst SrcAlphaSaturateFactor = 210;\nconst NeverDepth = 0;\nconst AlwaysDepth = 1;\nconst LessDepth = 2;\nconst LessEqualDepth = 3;\nconst EqualDepth = 4;\nconst GreaterEqualDepth = 5;\nconst GreaterDepth = 6;\nconst NotEqualDepth = 7;\nconst MultiplyOperation = 0;\nconst MixOperation = 1;\nconst AddOperation = 2;\nconst NoToneMapping = 0;\nconst LinearToneMapping = 1;\nconst ReinhardToneMapping = 2;\nconst CineonToneMapping = 3;\nconst ACESFilmicToneMapping = 4;\nconst CustomToneMapping = 5;\n\nconst UVMapping = 300;\nconst CubeReflectionMapping = 301;\nconst CubeRefractionMapping = 302;\nconst EquirectangularReflectionMapping = 303;\nconst EquirectangularRefractionMapping = 304;\nconst CubeUVReflectionMapping = 306;\nconst CubeUVRefractionMapping = 307;\nconst RepeatWrapping = 1000;\nconst ClampToEdgeWrapping = 1001;\nconst MirroredRepeatWrapping = 1002;\nconst NearestFilter = 1003;\nconst NearestMipmapNearestFilter = 1004;\nconst NearestMipMapNearestFilter = 1004;\nconst NearestMipmapLinearFilter = 1005;\nconst NearestMipMapLinearFilter = 1005;\nconst LinearFilter = 1006;\nconst LinearMipmapNearestFilter = 1007;\nconst LinearMipMapNearestFilter = 1007;\nconst LinearMipmapLinearFilter = 1008;\nconst LinearMipMapLinearFilter = 1008;\nconst UnsignedByteType = 1009;\nconst ByteType = 1010;\nconst ShortType = 1011;\nconst UnsignedShortType = 1012;\nconst IntType = 1013;\nconst UnsignedIntType = 1014;\nconst FloatType = 1015;\nconst HalfFloatType = 1016;\nconst UnsignedShort4444Type = 1017;\nconst UnsignedShort5551Type = 1018;\nconst UnsignedInt248Type = 1020;\nconst AlphaFormat = 1021;\nconst RGBFormat = 1022;\nconst RGBAFormat = 1023;\nconst LuminanceFormat = 1024;\nconst LuminanceAlphaFormat = 1025;\nconst DepthFormat = 1026;\nconst DepthStencilFormat = 1027;\nconst RedFormat = 1028;\nconst RedIntegerFormat = 1029;\nconst RGFormat = 1030;\nconst RGIntegerFormat = 1031;\nconst RGBAIntegerFormat = 1033;\n\nconst RGB_S3TC_DXT1_Format = 33776;\nconst RGBA_S3TC_DXT1_Format = 33777;\nconst RGBA_S3TC_DXT3_Format = 33778;\nconst RGBA_S3TC_DXT5_Format = 33779;\nconst RGB_PVRTC_4BPPV1_Format = 35840;\nconst RGB_PVRTC_2BPPV1_Format = 35841;\nconst RGBA_PVRTC_4BPPV1_Format = 35842;\nconst RGBA_PVRTC_2BPPV1_Format = 35843;\nconst RGB_ETC1_Format = 36196;\nconst RGB_ETC2_Format = 37492;\nconst RGBA_ETC2_EAC_Format = 37496;\nconst RGBA_ASTC_4x4_Format = 37808;\nconst RGBA_ASTC_5x4_Format = 37809;\nconst RGBA_ASTC_5x5_Format = 37810;\nconst RGBA_ASTC_6x5_Format = 37811;\nconst RGBA_ASTC_6x6_Format = 37812;\nconst RGBA_ASTC_8x5_Format = 37813;\nconst RGBA_ASTC_8x6_Format = 37814;\nconst RGBA_ASTC_8x8_Format = 37815;\nconst RGBA_ASTC_10x5_Format = 37816;\nconst RGBA_ASTC_10x6_Format = 37817;\nconst RGBA_ASTC_10x8_Format = 37818;\nconst RGBA_ASTC_10x10_Format = 37819;\nconst RGBA_ASTC_12x10_Format = 37820;\nconst RGBA_ASTC_12x12_Format = 37821;\nconst RGBA_BPTC_Format = 36492;\nconst LoopOnce = 2200;\nconst LoopRepeat = 2201;\nconst LoopPingPong = 2202;\nconst InterpolateDiscrete = 2300;\nconst InterpolateLinear = 2301;\nconst InterpolateSmooth = 2302;\nconst ZeroCurvatureEnding = 2400;\nconst ZeroSlopeEnding = 2401;\nconst WrapAroundEnding = 2402;\nconst NormalAnimationBlendMode = 2500;\nconst AdditiveAnimationBlendMode = 2501;\nconst TrianglesDrawMode = 0;\nconst TriangleStripDrawMode = 1;\nconst TriangleFanDrawMode = 2;\nconst LinearEncoding = 3000;\nconst sRGBEncoding = 3001;\nconst BasicDepthPacking = 3200;\nconst RGBADepthPacking = 3201;\nconst TangentSpaceNormalMap = 0;\nconst ObjectSpaceNormalMap = 1;\n\nconst ZeroStencilOp = 0;\nconst KeepStencilOp = 7680;\nconst ReplaceStencilOp = 7681;\nconst IncrementStencilOp = 7682;\nconst DecrementStencilOp = 7683;\nconst IncrementWrapStencilOp = 34055;\nconst DecrementWrapStencilOp = 34056;\nconst InvertStencilOp = 5386;\n\nconst NeverStencilFunc = 512;\nconst LessStencilFunc = 513;\nconst EqualStencilFunc = 514;\nconst LessEqualStencilFunc = 515;\nconst GreaterStencilFunc = 516;\nconst NotEqualStencilFunc = 517;\nconst GreaterEqualStencilFunc = 518;\nconst AlwaysStencilFunc = 519;\n\nconst StaticDrawUsage = 35044;\nconst DynamicDrawUsage = 35048;\nconst StreamDrawUsage = 35040;\nconst StaticReadUsage = 35045;\nconst DynamicReadUsage = 35049;\nconst StreamReadUsage = 35041;\nconst StaticCopyUsage = 35046;\nconst DynamicCopyUsage = 35050;\nconst StreamCopyUsage = 35042;\n\nconst GLSL1 = '100';\nconst GLSL3 = '300 es';\n\nconst _SRGBAFormat = 1035; // fallback for WebGL 1\n\n/**\n * https://github.com/mrdoob/eventdispatcher.js/\n */\n\nclass EventDispatcher {\n\n\taddEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) this._listeners = {};\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners[ type ] === undefined ) {\n\n\t\t\tlisteners[ type ] = [];\n\n\t\t}\n\n\t\tif ( listeners[ type ].indexOf( listener ) === - 1 ) {\n\n\t\t\tlisteners[ type ].push( listener );\n\n\t\t}\n\n\t}\n\n\thasEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return false;\n\n\t\tconst listeners = this._listeners;\n\n\t\treturn listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1;\n\n\t}\n\n\tremoveEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tconst index = listenerArray.indexOf( listener );\n\n\t\t\tif ( index !== - 1 ) {\n\n\t\t\t\tlistenerArray.splice( index, 1 );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tdispatchEvent( event ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ event.type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tevent.target = this;\n\n\t\t\t// Make a copy, in case listeners are removed while iterating.\n\t\t\tconst array = listenerArray.slice( 0 );\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i ++ ) {\n\n\t\t\t\tarray[ i ].call( this, event );\n\n\t\t\t}\n\n\t\t\tevent.target = null;\n\n\t\t}\n\n\t}\n\n}\n\nconst _lut = [];\n\nfor ( let i = 0; i < 256; i ++ ) {\n\n\t_lut[ i ] = ( i < 16 ? '0' : '' ) + ( i ).toString( 16 );\n\n}\n\nlet _seed = 1234567;\n\n\nconst DEG2RAD = Math.PI / 180;\nconst RAD2DEG = 180 / Math.PI;\n\n// http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\nfunction generateUUID() {\n\n\tconst d0 = Math.random() * 0xffffffff | 0;\n\tconst d1 = Math.random() * 0xffffffff | 0;\n\tconst d2 = Math.random() * 0xffffffff | 0;\n\tconst d3 = Math.random() * 0xffffffff | 0;\n\tconst uuid = _lut[ d0 & 0xff ] + _lut[ d0 >> 8 & 0xff ] + _lut[ d0 >> 16 & 0xff ] + _lut[ d0 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d1 & 0xff ] + _lut[ d1 >> 8 & 0xff ] + '-' + _lut[ d1 >> 16 & 0x0f | 0x40 ] + _lut[ d1 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d2 & 0x3f | 0x80 ] + _lut[ d2 >> 8 & 0xff ] + '-' + _lut[ d2 >> 16 & 0xff ] + _lut[ d2 >> 24 & 0xff ] +\n\t\t\t_lut[ d3 & 0xff ] + _lut[ d3 >> 8 & 0xff ] + _lut[ d3 >> 16 & 0xff ] + _lut[ d3 >> 24 & 0xff ];\n\n\t// .toUpperCase() here flattens concatenated strings to save heap memory space.\n\treturn uuid.toUpperCase();\n\n}\n\nfunction clamp( value, min, max ) {\n\n\treturn Math.max( min, Math.min( max, value ) );\n\n}\n\n// compute euclidian modulo of m % n\n// https://en.wikipedia.org/wiki/Modulo_operation\nfunction euclideanModulo( n, m ) {\n\n\treturn ( ( n % m ) + m ) % m;\n\n}\n\n// Linear mapping from range <a1, a2> to range <b1, b2>\nfunction mapLinear( x, a1, a2, b1, b2 ) {\n\n\treturn b1 + ( x - a1 ) * ( b2 - b1 ) / ( a2 - a1 );\n\n}\n\n// https://www.gamedev.net/tutorials/programming/general-and-gameplay-programming/inverse-lerp-a-super-useful-yet-often-overlooked-function-r5230/\nfunction inverseLerp( x, y, value ) {\n\n\tif ( x !== y ) {\n\n\t\treturn ( value - x ) / ( y - x );\n\n\t} else {\n\n\t\treturn 0;\n\n\t}\n\n}\n\n// https://en.wikipedia.org/wiki/Linear_interpolation\nfunction lerp( x, y, t ) {\n\n\treturn ( 1 - t ) * x + t * y;\n\n}\n\n// http://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/\nfunction damp( x, y, lambda, dt ) {\n\n\treturn lerp( x, y, 1 - Math.exp( - lambda * dt ) );\n\n}\n\n// https://www.desmos.com/calculator/vcsjnyz7x4\nfunction pingpong( x, length = 1 ) {\n\n\treturn length - Math.abs( euclideanModulo( x, length * 2 ) - length );\n\n}\n\n// http://en.wikipedia.org/wiki/Smoothstep\nfunction smoothstep( x, min, max ) {\n\n\tif ( x <= min ) return 0;\n\tif ( x >= max ) return 1;\n\n\tx = ( x - min ) / ( max - min );\n\n\treturn x * x * ( 3 - 2 * x );\n\n}\n\nfunction smootherstep( x, min, max ) {\n\n\tif ( x <= min ) return 0;\n\tif ( x >= max ) return 1;\n\n\tx = ( x - min ) / ( max - min );\n\n\treturn x * x * x * ( x * ( x * 6 - 15 ) + 10 );\n\n}\n\n// Random integer from <low, high> interval\nfunction randInt( low, high ) {\n\n\treturn low + Math.floor( Math.random() * ( high - low + 1 ) );\n\n}\n\n// Random float from <low, high> interval\nfunction randFloat( low, high ) {\n\n\treturn low + Math.random() * ( high - low );\n\n}\n\n// Random float from <-range/2, range/2> interval\nfunction randFloatSpread( range ) {\n\n\treturn range * ( 0.5 - Math.random() );\n\n}\n\n// Deterministic pseudo-random float in the interval [ 0, 1 ]\nfunction seededRandom( s ) {\n\n\tif ( s !== undefined ) _seed = s % 2147483647;\n\n\t// Park-Miller algorithm\n\n\t_seed = _seed * 16807 % 2147483647;\n\n\treturn ( _seed - 1 ) / 2147483646;\n\n}\n\nfunction degToRad( degrees ) {\n\n\treturn degrees * DEG2RAD;\n\n}\n\nfunction radToDeg( radians ) {\n\n\treturn radians * RAD2DEG;\n\n}\n\nfunction isPowerOfTwo( value ) {\n\n\treturn ( value & ( value - 1 ) ) === 0 && value !== 0;\n\n}\n\nfunction ceilPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.ceil( Math.log( value ) / Math.LN2 ) );\n\n}\n\nfunction floorPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.floor( Math.log( value ) / Math.LN2 ) );\n\n}\n\nfunction setQuaternionFromProperEuler( q, a, b, c, order ) {\n\n\t// Intrinsic Proper Euler Angles - see https://en.wikipedia.org/wiki/Euler_angles\n\n\t// rotations are applied to the axes in the order specified by 'order'\n\t// rotation by angle 'a' is applied first, then by angle 'b', then by angle 'c'\n\t// angles are in radians\n\n\tconst cos = Math.cos;\n\tconst sin = Math.sin;\n\n\tconst c2 = cos( b / 2 );\n\tconst s2 = sin( b / 2 );\n\n\tconst c13 = cos( ( a + c ) / 2 );\n\tconst s13 = sin( ( a + c ) / 2 );\n\n\tconst c1_3 = cos( ( a - c ) / 2 );\n\tconst s1_3 = sin( ( a - c ) / 2 );\n\n\tconst c3_1 = cos( ( c - a ) / 2 );\n\tconst s3_1 = sin( ( c - a ) / 2 );\n\n\tswitch ( order ) {\n\n\t\tcase 'XYX':\n\t\t\tq.set( c2 * s13, s2 * c1_3, s2 * s1_3, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'YZY':\n\t\t\tq.set( s2 * s1_3, c2 * s13, s2 * c1_3, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'ZXZ':\n\t\t\tq.set( s2 * c1_3, s2 * s1_3, c2 * s13, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'XZX':\n\t\t\tq.set( c2 * s13, s2 * s3_1, s2 * c3_1, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'YXY':\n\t\t\tq.set( s2 * c3_1, c2 * s13, s2 * s3_1, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'ZYZ':\n\t\t\tq.set( s2 * s3_1, s2 * c3_1, c2 * s13, c2 * c13 );\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: ' + order );\n\n\t}\n\n}\n\nvar MathUtils = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tDEG2RAD: DEG2RAD,\n\tRAD2DEG: RAD2DEG,\n\tgenerateUUID: generateUUID,\n\tclamp: clamp,\n\teuclideanModulo: euclideanModulo,\n\tmapLinear: mapLinear,\n\tinverseLerp: inverseLerp,\n\tlerp: lerp,\n\tdamp: damp,\n\tpingpong: pingpong,\n\tsmoothstep: smoothstep,\n\tsmootherstep: smootherstep,\n\trandInt: randInt,\n\trandFloat: randFloat,\n\trandFloatSpread: randFloatSpread,\n\tseededRandom: seededRandom,\n\tdegToRad: degToRad,\n\tradToDeg: radToDeg,\n\tisPowerOfTwo: isPowerOfTwo,\n\tceilPowerOfTwo: ceilPowerOfTwo,\n\tfloorPowerOfTwo: floorPowerOfTwo,\n\tsetQuaternionFromProperEuler: setQuaternionFromProperEuler\n});\n\nclass Vector2 {\n\n\tconstructor( x = 0, y = 0 ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.x;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.x = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.y;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.y = value;\n\n\t}\n\n\tset( x, y ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' );\n\t\t\treturn this.addVectors( v, w );\n\n\t\t}\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' );\n\t\t\treturn this.subVectors( v, w );\n\n\t\t}\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ];\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ];\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x );\n\t\tthis.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y;\n\n\t}\n\n\tcross( v ) {\n\n\t\treturn this.x * v.y - this.y * v.x;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tangle() {\n\n\t\t// computes the angle in radians with respect to the positive x-axis\n\n\t\tconst angle = Math.atan2( - this.y, - this.x ) + Math.PI;\n\n\t\treturn angle;\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y;\n\t\treturn dx * dx + dy * dy;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index, offset ) {\n\n\t\tif ( offset !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector2: offset has been removed from .fromBufferAttribute().' );\n\n\t\t}\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\n\t\treturn this;\n\n\t}\n\n\trotateAround( center, angle ) {\n\n\t\tconst c = Math.cos( angle ), s = Math.sin( angle );\n\n\t\tconst x = this.x - center.x;\n\t\tconst y = this.y - center.y;\n\n\t\tthis.x = x * c - y * s + center.x;\n\t\tthis.y = x * s + y * c + center.y;\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\n\t}\n\n}\n\nVector2.prototype.isVector2 = true;\n\nclass Matrix3 {\n\n\tconstructor() {\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t];\n\n\t\tif ( arguments.length > 0 ) {\n\n\t\t\tconsole.error( 'THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.' );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 1 ] = n21; te[ 2 ] = n31;\n\t\tte[ 3 ] = n12; te[ 4 ] = n22; te[ 5 ] = n32;\n\t\tte[ 6 ] = n13; te[ 7 ] = n23; te[ 8 ] = n33;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ];\n\t\tte[ 3 ] = me[ 3 ]; te[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ];\n\t\tte[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ]; te[ 8 ] = me[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrix3Column( this, 0 );\n\t\tyAxis.setFromMatrix3Column( this, 1 );\n\t\tzAxis.setFromMatrix3Column( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix4( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 4 ], me[ 8 ],\n\t\t\tme[ 1 ], me[ 5 ], me[ 9 ],\n\t\t\tme[ 2 ], me[ 6 ], me[ 10 ]\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 3 ], a13 = ae[ 6 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 4 ], a23 = ae[ 7 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 5 ], a33 = ae[ 8 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 3 ], b13 = be[ 6 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 4 ], b23 = be[ 7 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 5 ], b33 = be[ 8 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31;\n\t\tte[ 3 ] = a11 * b12 + a12 * b22 + a13 * b32;\n\t\tte[ 6 ] = a11 * b13 + a12 * b23 + a13 * b33;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31;\n\t\tte[ 4 ] = a21 * b12 + a22 * b22 + a23 * b32;\n\t\tte[ 7 ] = a21 * b13 + a22 * b23 + a23 * b33;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31;\n\t\tte[ 5 ] = a31 * b12 + a32 * b22 + a33 * b32;\n\t\tte[ 8 ] = a31 * b13 + a32 * b23 + a33 * b33;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 3 ] *= s; te[ 6 ] *= s;\n\t\tte[ 1 ] *= s; te[ 4 ] *= s; te[ 7 ] *= s;\n\t\tte[ 2 ] *= s; te[ 5 ] *= s; te[ 8 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst a = te[ 0 ], b = te[ 1 ], c = te[ 2 ],\n\t\t\td = te[ 3 ], e = te[ 4 ], f = te[ 5 ],\n\t\t\tg = te[ 6 ], h = te[ 7 ], i = te[ 8 ];\n\n\t\treturn a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g;\n\n\t}\n\n\tinvert() {\n\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ],\n\t\t\tn12 = te[ 3 ], n22 = te[ 4 ], n32 = te[ 5 ],\n\t\t\tn13 = te[ 6 ], n23 = te[ 7 ], n33 = te[ 8 ],\n\n\t\t\tt11 = n33 * n22 - n32 * n23,\n\t\t\tt12 = n32 * n13 - n33 * n12,\n\t\t\tt13 = n23 * n12 - n22 * n13,\n\n\t\t\tdet = n11 * t11 + n21 * t12 + n31 * t13;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n31 * n23 - n33 * n21 ) * detInv;\n\t\tte[ 2 ] = ( n32 * n21 - n31 * n22 ) * detInv;\n\n\t\tte[ 3 ] = t12 * detInv;\n\t\tte[ 4 ] = ( n33 * n11 - n31 * n13 ) * detInv;\n\t\tte[ 5 ] = ( n31 * n12 - n32 * n11 ) * detInv;\n\n\t\tte[ 6 ] = t13 * detInv;\n\t\tte[ 7 ] = ( n21 * n13 - n23 * n11 ) * detInv;\n\t\tte[ 8 ] = ( n22 * n11 - n21 * n12 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\ttranspose() {\n\n\t\tlet tmp;\n\t\tconst m = this.elements;\n\n\t\ttmp = m[ 1 ]; m[ 1 ] = m[ 3 ]; m[ 3 ] = tmp;\n\t\ttmp = m[ 2 ]; m[ 2 ] = m[ 6 ]; m[ 6 ] = tmp;\n\t\ttmp = m[ 5 ]; m[ 5 ] = m[ 7 ]; m[ 7 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tgetNormalMatrix( matrix4 ) {\n\n\t\treturn this.setFromMatrix4( matrix4 ).invert().transpose();\n\n\t}\n\n\ttransposeIntoArray( r ) {\n\n\t\tconst m = this.elements;\n\n\t\tr[ 0 ] = m[ 0 ];\n\t\tr[ 1 ] = m[ 3 ];\n\t\tr[ 2 ] = m[ 6 ];\n\t\tr[ 3 ] = m[ 1 ];\n\t\tr[ 4 ] = m[ 4 ];\n\t\tr[ 5 ] = m[ 7 ];\n\t\tr[ 6 ] = m[ 2 ];\n\t\tr[ 7 ] = m[ 5 ];\n\t\tr[ 8 ] = m[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetUvTransform( tx, ty, sx, sy, rotation, cx, cy ) {\n\n\t\tconst c = Math.cos( rotation );\n\t\tconst s = Math.sin( rotation );\n\n\t\tthis.set(\n\t\t\tsx * c, sx * s, - sx * ( c * cx + s * cy ) + cx + tx,\n\t\t\t- sy * s, sy * c, - sy * ( - s * cx + c * cy ) + cy + ty,\n\t\t\t0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tscale( sx, sy ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= sx; te[ 3 ] *= sx; te[ 6 ] *= sx;\n\t\tte[ 1 ] *= sy; te[ 4 ] *= sy; te[ 7 ] *= sy;\n\n\t\treturn this;\n\n\t}\n\n\trotate( theta ) {\n\n\t\tconst c = Math.cos( theta );\n\t\tconst s = Math.sin( theta );\n\n\t\tconst te = this.elements;\n\n\t\tconst a11 = te[ 0 ], a12 = te[ 3 ], a13 = te[ 6 ];\n\t\tconst a21 = te[ 1 ], a22 = te[ 4 ], a23 = te[ 7 ];\n\n\t\tte[ 0 ] = c * a11 + s * a21;\n\t\tte[ 3 ] = c * a12 + s * a22;\n\t\tte[ 6 ] = c * a13 + s * a23;\n\n\t\tte[ 1 ] = - s * a11 + c * a21;\n\t\tte[ 4 ] = - s * a12 + c * a22;\n\t\tte[ 7 ] = - s * a13 + c * a23;\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( tx, ty ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] += tx * te[ 2 ]; te[ 3 ] += tx * te[ 5 ]; te[ 6 ] += tx * te[ 8 ];\n\t\tte[ 1 ] += ty * te[ 2 ]; te[ 4 ] += ty * te[ 5 ]; te[ 7 ] += ty * te[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\n\t\treturn array;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().fromArray( this.elements );\n\n\t}\n\n}\n\nMatrix3.prototype.isMatrix3 = true;\n\nfunction arrayNeedsUint32( array ) {\n\n\t// assumes larger values usually on last\n\n\tfor ( let i = array.length - 1; i >= 0; -- i ) {\n\n\t\tif ( array[ i ] > 65535 ) return true;\n\n\t}\n\n\treturn false;\n\n}\n\nconst TYPED_ARRAYS = {\n\tInt8Array: Int8Array,\n\tUint8Array: Uint8Array,\n\tUint8ClampedArray: Uint8ClampedArray,\n\tInt16Array: Int16Array,\n\tUint16Array: Uint16Array,\n\tInt32Array: Int32Array,\n\tUint32Array: Uint32Array,\n\tFloat32Array: Float32Array,\n\tFloat64Array: Float64Array\n};\n\nfunction getTypedArray( type, buffer ) {\n\n\treturn new TYPED_ARRAYS[ type ]( buffer );\n\n}\n\nfunction createElementNS( name ) {\n\n\treturn document.createElementNS( 'http://www.w3.org/1999/xhtml', name );\n\n}\n\nconst _colorKeywords = { 'aliceblue': 0xF0F8FF, 'antiquewhite': 0xFAEBD7, 'aqua': 0x00FFFF, 'aquamarine': 0x7FFFD4, 'azure': 0xF0FFFF,\n\t'beige': 0xF5F5DC, 'bisque': 0xFFE4C4, 'black': 0x000000, 'blanchedalmond': 0xFFEBCD, 'blue': 0x0000FF, 'blueviolet': 0x8A2BE2,\n\t'brown': 0xA52A2A, 'burlywood': 0xDEB887, 'cadetblue': 0x5F9EA0, 'chartreuse': 0x7FFF00, 'chocolate': 0xD2691E, 'coral': 0xFF7F50,\n\t'cornflowerblue': 0x6495ED, 'cornsilk': 0xFFF8DC, 'crimson': 0xDC143C, 'cyan': 0x00FFFF, 'darkblue': 0x00008B, 'darkcyan': 0x008B8B,\n\t'darkgoldenrod': 0xB8860B, 'darkgray': 0xA9A9A9, 'darkgreen': 0x006400, 'darkgrey': 0xA9A9A9, 'darkkhaki': 0xBDB76B, 'darkmagenta': 0x8B008B,\n\t'darkolivegreen': 0x556B2F, 'darkorange': 0xFF8C00, 'darkorchid': 0x9932CC, 'darkred': 0x8B0000, 'darksalmon': 0xE9967A, 'darkseagreen': 0x8FBC8F,\n\t'darkslateblue': 0x483D8B, 'darkslategray': 0x2F4F4F, 'darkslategrey': 0x2F4F4F, 'darkturquoise': 0x00CED1, 'darkviolet': 0x9400D3,\n\t'deeppink': 0xFF1493, 'deepskyblue': 0x00BFFF, 'dimgray': 0x696969, 'dimgrey': 0x696969, 'dodgerblue': 0x1E90FF, 'firebrick': 0xB22222,\n\t'floralwhite': 0xFFFAF0, 'forestgreen': 0x228B22, 'fuchsia': 0xFF00FF, 'gainsboro': 0xDCDCDC, 'ghostwhite': 0xF8F8FF, 'gold': 0xFFD700,\n\t'goldenrod': 0xDAA520, 'gray': 0x808080, 'green': 0x008000, 'greenyellow': 0xADFF2F, 'grey': 0x808080, 'honeydew': 0xF0FFF0, 'hotpink': 0xFF69B4,\n\t'indianred': 0xCD5C5C, 'indigo': 0x4B0082, 'ivory': 0xFFFFF0, 'khaki': 0xF0E68C, 'lavender': 0xE6E6FA, 'lavenderblush': 0xFFF0F5, 'lawngreen': 0x7CFC00,\n\t'lemonchiffon': 0xFFFACD, 'lightblue': 0xADD8E6, 'lightcoral': 0xF08080, 'lightcyan': 0xE0FFFF, 'lightgoldenrodyellow': 0xFAFAD2, 'lightgray': 0xD3D3D3,\n\t'lightgreen': 0x90EE90, 'lightgrey': 0xD3D3D3, 'lightpink': 0xFFB6C1, 'lightsalmon': 0xFFA07A, 'lightseagreen': 0x20B2AA, 'lightskyblue': 0x87CEFA,\n\t'lightslategray': 0x778899, 'lightslategrey': 0x778899, 'lightsteelblue': 0xB0C4DE, 'lightyellow': 0xFFFFE0, 'lime': 0x00FF00, 'limegreen': 0x32CD32,\n\t'linen': 0xFAF0E6, 'magenta': 0xFF00FF, 'maroon': 0x800000, 'mediumaquamarine': 0x66CDAA, 'mediumblue': 0x0000CD, 'mediumorchid': 0xBA55D3,\n\t'mediumpurple': 0x9370DB, 'mediumseagreen': 0x3CB371, 'mediumslateblue': 0x7B68EE, 'mediumspringgreen': 0x00FA9A, 'mediumturquoise': 0x48D1CC,\n\t'mediumvioletred': 0xC71585, 'midnightblue': 0x191970, 'mintcream': 0xF5FFFA, 'mistyrose': 0xFFE4E1, 'moccasin': 0xFFE4B5, 'navajowhite': 0xFFDEAD,\n\t'navy': 0x000080, 'oldlace': 0xFDF5E6, 'olive': 0x808000, 'olivedrab': 0x6B8E23, 'orange': 0xFFA500, 'orangered': 0xFF4500, 'orchid': 0xDA70D6,\n\t'palegoldenrod': 0xEEE8AA, 'palegreen': 0x98FB98, 'paleturquoise': 0xAFEEEE, 'palevioletred': 0xDB7093, 'papayawhip': 0xFFEFD5, 'peachpuff': 0xFFDAB9,\n\t'peru': 0xCD853F, 'pink': 0xFFC0CB, 'plum': 0xDDA0DD, 'powderblue': 0xB0E0E6, 'purple': 0x800080, 'rebeccapurple': 0x663399, 'red': 0xFF0000, 'rosybrown': 0xBC8F8F,\n\t'royalblue': 0x4169E1, 'saddlebrown': 0x8B4513, 'salmon': 0xFA8072, 'sandybrown': 0xF4A460, 'seagreen': 0x2E8B57, 'seashell': 0xFFF5EE,\n\t'sienna': 0xA0522D, 'silver': 0xC0C0C0, 'skyblue': 0x87CEEB, 'slateblue': 0x6A5ACD, 'slategray': 0x708090, 'slategrey': 0x708090, 'snow': 0xFFFAFA,\n\t'springgreen': 0x00FF7F, 'steelblue': 0x4682B4, 'tan': 0xD2B48C, 'teal': 0x008080, 'thistle': 0xD8BFD8, 'tomato': 0xFF6347, 'turquoise': 0x40E0D0,\n\t'violet': 0xEE82EE, 'wheat': 0xF5DEB3, 'white': 0xFFFFFF, 'whitesmoke': 0xF5F5F5, 'yellow': 0xFFFF00, 'yellowgreen': 0x9ACD32 };\n\nconst _hslA = { h: 0, s: 0, l: 0 };\nconst _hslB = { h: 0, s: 0, l: 0 };\n\nfunction hue2rgb( p, q, t ) {\n\n\tif ( t < 0 ) t += 1;\n\tif ( t > 1 ) t -= 1;\n\tif ( t < 1 / 6 ) return p + ( q - p ) * 6 * t;\n\tif ( t < 1 / 2 ) return q;\n\tif ( t < 2 / 3 ) return p + ( q - p ) * 6 * ( 2 / 3 - t );\n\treturn p;\n\n}\n\nfunction SRGBToLinear( c ) {\n\n\treturn ( c < 0.04045 ) ? c * 0.0773993808 : Math.pow( c * 0.9478672986 + 0.0521327014, 2.4 );\n\n}\n\nfunction LinearToSRGB( c ) {\n\n\treturn ( c < 0.0031308 ) ? c * 12.92 : 1.055 * ( Math.pow( c, 0.41666 ) ) - 0.055;\n\n}\n\nclass Color {\n\n\tconstructor( r, g, b ) {\n\n\t\tif ( g === undefined && b === undefined ) {\n\n\t\t\t// r is THREE.Color, hex or string\n\t\t\treturn this.set( r );\n\n\t\t}\n\n\t\treturn this.setRGB( r, g, b );\n\n\t}\n\n\tset( value ) {\n\n\t\tif ( value && value.isColor ) {\n\n\t\t\tthis.copy( value );\n\n\t\t} else if ( typeof value === 'number' ) {\n\n\t\t\tthis.setHex( value );\n\n\t\t} else if ( typeof value === 'string' ) {\n\n\t\t\tthis.setStyle( value );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.r = scalar;\n\t\tthis.g = scalar;\n\t\tthis.b = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetHex( hex ) {\n\n\t\thex = Math.floor( hex );\n\n\t\tthis.r = ( hex >> 16 & 255 ) / 255;\n\t\tthis.g = ( hex >> 8 & 255 ) / 255;\n\t\tthis.b = ( hex & 255 ) / 255;\n\n\t\treturn this;\n\n\t}\n\n\tsetRGB( r, g, b ) {\n\n\t\tthis.r = r;\n\t\tthis.g = g;\n\t\tthis.b = b;\n\n\t\treturn this;\n\n\t}\n\n\tsetHSL( h, s, l ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\t\th = euclideanModulo( h, 1 );\n\t\ts = clamp( s, 0, 1 );\n\t\tl = clamp( l, 0, 1 );\n\n\t\tif ( s === 0 ) {\n\n\t\t\tthis.r = this.g = this.b = l;\n\n\t\t} else {\n\n\t\t\tconst p = l <= 0.5 ? l * ( 1 + s ) : l + s - ( l * s );\n\t\t\tconst q = ( 2 * l ) - p;\n\n\t\t\tthis.r = hue2rgb( q, p, h + 1 / 3 );\n\t\t\tthis.g = hue2rgb( q, p, h );\n\t\t\tthis.b = hue2rgb( q, p, h - 1 / 3 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetStyle( style ) {\n\n\t\tfunction handleAlpha( string ) {\n\n\t\t\tif ( string === undefined ) return;\n\n\t\t\tif ( parseFloat( string ) < 1 ) {\n\n\t\t\t\tconsole.warn( 'THREE.Color: Alpha component of ' + style + ' will be ignored.' );\n\n\t\t\t}\n\n\t\t}\n\n\n\t\tlet m;\n\n\t\tif ( m = /^((?:rgb|hsl)a?)\\(([^\\)]*)\\)/.exec( style ) ) {\n\n\t\t\t// rgb / hsl\n\n\t\t\tlet color;\n\t\t\tconst name = m[ 1 ];\n\t\t\tconst components = m[ 2 ];\n\n\t\t\tswitch ( name ) {\n\n\t\t\t\tcase 'rgb':\n\t\t\t\tcase 'rgba':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(255,0,0) rgba(255,0,0,0.5)\n\t\t\t\t\t\tthis.r = Math.min( 255, parseInt( color[ 1 ], 10 ) ) / 255;\n\t\t\t\t\t\tthis.g = Math.min( 255, parseInt( color[ 2 ], 10 ) ) / 255;\n\t\t\t\t\t\tthis.b = Math.min( 255, parseInt( color[ 3 ], 10 ) ) / 255;\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(100%,0%,0%) rgba(100%,0%,0%,0.5)\n\t\t\t\t\t\tthis.r = Math.min( 100, parseInt( color[ 1 ], 10 ) ) / 100;\n\t\t\t\t\t\tthis.g = Math.min( 100, parseInt( color[ 2 ], 10 ) ) / 100;\n\t\t\t\t\t\tthis.b = Math.min( 100, parseInt( color[ 3 ], 10 ) ) / 100;\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'hsl':\n\t\t\t\tcase 'hsla':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// hsl(120,50%,50%) hsla(120,50%,50%,0.5)\n\t\t\t\t\t\tconst h = parseFloat( color[ 1 ] ) / 360;\n\t\t\t\t\t\tconst s = parseInt( color[ 2 ], 10 ) / 100;\n\t\t\t\t\t\tconst l = parseInt( color[ 3 ], 10 ) / 100;\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setHSL( h, s, l );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t} else if ( m = /^\\#([A-Fa-f\\d]+)$/.exec( style ) ) {\n\n\t\t\t// hex color\n\n\t\t\tconst hex = m[ 1 ];\n\t\t\tconst size = hex.length;\n\n\t\t\tif ( size === 3 ) {\n\n\t\t\t\t// #ff0\n\t\t\t\tthis.r = parseInt( hex.charAt( 0 ) + hex.charAt( 0 ), 16 ) / 255;\n\t\t\t\tthis.g = parseInt( hex.charAt( 1 ) + hex.charAt( 1 ), 16 ) / 255;\n\t\t\t\tthis.b = parseInt( hex.charAt( 2 ) + hex.charAt( 2 ), 16 ) / 255;\n\n\t\t\t\treturn this;\n\n\t\t\t} else if ( size === 6 ) {\n\n\t\t\t\t// #ff0000\n\t\t\t\tthis.r = parseInt( hex.charAt( 0 ) + hex.charAt( 1 ), 16 ) / 255;\n\t\t\t\tthis.g = parseInt( hex.charAt( 2 ) + hex.charAt( 3 ), 16 ) / 255;\n\t\t\t\tthis.b = parseInt( hex.charAt( 4 ) + hex.charAt( 5 ), 16 ) / 255;\n\n\t\t\t\treturn this;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( style && style.length > 0 ) {\n\n\t\t\treturn this.setColorName( style );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetColorName( style ) {\n\n\t\t// color keywords\n\t\tconst hex = _colorKeywords[ style.toLowerCase() ];\n\n\t\tif ( hex !== undefined ) {\n\n\t\t\t// red\n\t\t\tthis.setHex( hex );\n\n\t\t} else {\n\n\t\t\t// unknown color\n\t\t\tconsole.warn( 'THREE.Color: Unknown color ' + style );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.r, this.g, this.b );\n\n\t}\n\n\tcopy( color ) {\n\n\t\tthis.r = color.r;\n\t\tthis.g = color.g;\n\t\tthis.b = color.b;\n\n\t\treturn this;\n\n\t}\n\n\tcopySRGBToLinear( color ) {\n\n\t\tthis.r = SRGBToLinear( color.r );\n\t\tthis.g = SRGBToLinear( color.g );\n\t\tthis.b = SRGBToLinear( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tcopyLinearToSRGB( color ) {\n\n\t\tthis.r = LinearToSRGB( color.r );\n\t\tthis.g = LinearToSRGB( color.g );\n\t\tthis.b = LinearToSRGB( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tconvertSRGBToLinear() {\n\n\t\tthis.copySRGBToLinear( this );\n\n\t\treturn this;\n\n\t}\n\n\tconvertLinearToSRGB() {\n\n\t\tthis.copyLinearToSRGB( this );\n\n\t\treturn this;\n\n\t}\n\n\tgetHex() {\n\n\t\treturn ( this.r * 255 ) << 16 ^ ( this.g * 255 ) << 8 ^ ( this.b * 255 ) << 0;\n\n\t}\n\n\tgetHexString() {\n\n\t\treturn ( '000000' + this.getHex().toString( 16 ) ).slice( - 6 );\n\n\t}\n\n\tgetHSL( target ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\n\t\tconst r = this.r, g = this.g, b = this.b;\n\n\t\tconst max = Math.max( r, g, b );\n\t\tconst min = Math.min( r, g, b );\n\n\t\tlet hue, saturation;\n\t\tconst lightness = ( min + max ) / 2.0;\n\n\t\tif ( min === max ) {\n\n\t\t\thue = 0;\n\t\t\tsaturation = 0;\n\n\t\t} else {\n\n\t\t\tconst delta = max - min;\n\n\t\t\tsaturation = lightness <= 0.5 ? delta / ( max + min ) : delta / ( 2 - max - min );\n\n\t\t\tswitch ( max ) {\n\n\t\t\t\tcase r: hue = ( g - b ) / delta + ( g < b ? 6 : 0 ); break;\n\t\t\t\tcase g: hue = ( b - r ) / delta + 2; break;\n\t\t\t\tcase b: hue = ( r - g ) / delta + 4; break;\n\n\t\t\t}\n\n\t\t\thue /= 6;\n\n\t\t}\n\n\t\ttarget.h = hue;\n\t\ttarget.s = saturation;\n\t\ttarget.l = lightness;\n\n\t\treturn target;\n\n\t}\n\n\tgetStyle() {\n\n\t\treturn 'rgb(' + ( ( this.r * 255 ) | 0 ) + ',' + ( ( this.g * 255 ) | 0 ) + ',' + ( ( this.b * 255 ) | 0 ) + ')';\n\n\t}\n\n\toffsetHSL( h, s, l ) {\n\n\t\tthis.getHSL( _hslA );\n\n\t\t_hslA.h += h; _hslA.s += s; _hslA.l += l;\n\n\t\tthis.setHSL( _hslA.h, _hslA.s, _hslA.l );\n\n\t\treturn this;\n\n\t}\n\n\tadd( color ) {\n\n\t\tthis.r += color.r;\n\t\tthis.g += color.g;\n\t\tthis.b += color.b;\n\n\t\treturn this;\n\n\t}\n\n\taddColors( color1, color2 ) {\n\n\t\tthis.r = color1.r + color2.r;\n\t\tthis.g = color1.g + color2.g;\n\t\tthis.b = color1.b + color2.b;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.r += s;\n\t\tthis.g += s;\n\t\tthis.b += s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( color ) {\n\n\t\tthis.r = Math.max( 0, this.r - color.r );\n\t\tthis.g = Math.max( 0, this.g - color.g );\n\t\tthis.b = Math.max( 0, this.b - color.b );\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( color ) {\n\n\t\tthis.r *= color.r;\n\t\tthis.g *= color.g;\n\t\tthis.b *= color.b;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tthis.r *= s;\n\t\tthis.g *= s;\n\t\tthis.b *= s;\n\n\t\treturn this;\n\n\t}\n\n\tlerp( color, alpha ) {\n\n\t\tthis.r += ( color.r - this.r ) * alpha;\n\t\tthis.g += ( color.g - this.g ) * alpha;\n\t\tthis.b += ( color.b - this.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpColors( color1, color2, alpha ) {\n\n\t\tthis.r = color1.r + ( color2.r - color1.r ) * alpha;\n\t\tthis.g = color1.g + ( color2.g - color1.g ) * alpha;\n\t\tthis.b = color1.b + ( color2.b - color1.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpHSL( color, alpha ) {\n\n\t\tthis.getHSL( _hslA );\n\t\tcolor.getHSL( _hslB );\n\n\t\tconst h = lerp( _hslA.h, _hslB.h, alpha );\n\t\tconst s = lerp( _hslA.s, _hslB.s, alpha );\n\t\tconst l = lerp( _hslA.l, _hslB.l, alpha );\n\n\t\tthis.setHSL( h, s, l );\n\n\t\treturn this;\n\n\t}\n\n\tequals( c ) {\n\n\t\treturn ( c.r === this.r ) && ( c.g === this.g ) && ( c.b === this.b );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.r = array[ offset ];\n\t\tthis.g = array[ offset + 1 ];\n\t\tthis.b = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.r;\n\t\tarray[ offset + 1 ] = this.g;\n\t\tarray[ offset + 2 ] = this.b;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.r = attribute.getX( index );\n\t\tthis.g = attribute.getY( index );\n\t\tthis.b = attribute.getZ( index );\n\n\t\tif ( attribute.normalized === true ) {\n\n\t\t\t// assuming Uint8Array\n\n\t\t\tthis.r /= 255;\n\t\t\tthis.g /= 255;\n\t\t\tthis.b /= 255;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.getHex();\n\n\t}\n\n}\n\nColor.NAMES = _colorKeywords;\n\nColor.prototype.isColor = true;\nColor.prototype.r = 1;\nColor.prototype.g = 1;\nColor.prototype.b = 1;\n\nlet _canvas;\n\nclass ImageUtils {\n\n\tstatic getDataURL( image ) {\n\n\t\tif ( /^data:/i.test( image.src ) ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tif ( typeof HTMLCanvasElement == 'undefined' ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tlet canvas;\n\n\t\tif ( image instanceof HTMLCanvasElement ) {\n\n\t\t\tcanvas = image;\n\n\t\t} else {\n\n\t\t\tif ( _canvas === undefined ) _canvas = createElementNS( 'canvas' );\n\n\t\t\t_canvas.width = image.width;\n\t\t\t_canvas.height = image.height;\n\n\t\t\tconst context = _canvas.getContext( '2d' );\n\n\t\t\tif ( image instanceof ImageData ) {\n\n\t\t\t\tcontext.putImageData( image, 0, 0 );\n\n\t\t\t} else {\n\n\t\t\t\tcontext.drawImage( image, 0, 0, image.width, image.height );\n\n\t\t\t}\n\n\t\t\tcanvas = _canvas;\n\n\t\t}\n\n\t\tif ( canvas.width > 2048 || canvas.height > 2048 ) {\n\n\t\t\tconsole.warn( 'THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons', image );\n\n\t\t\treturn canvas.toDataURL( 'image/jpeg', 0.6 );\n\n\t\t} else {\n\n\t\t\treturn canvas.toDataURL( 'image/png' );\n\n\t\t}\n\n\t}\n\n\tstatic sRGBToLinear( image ) {\n\n\t\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t\tconst canvas = createElementNS( 'canvas' );\n\n\t\t\tcanvas.width = image.width;\n\t\t\tcanvas.height = image.height;\n\n\t\t\tconst context = canvas.getContext( '2d' );\n\t\t\tcontext.drawImage( image, 0, 0, image.width, image.height );\n\n\t\t\tconst imageData = context.getImageData( 0, 0, image.width, image.height );\n\t\t\tconst data = imageData.data;\n\n\t\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\t\tdata[ i ] = SRGBToLinear( data[ i ] / 255 ) * 255;\n\n\t\t\t}\n\n\t\t\tcontext.putImageData( imageData, 0, 0 );\n\n\t\t\treturn canvas;\n\n\t\t} else if ( image.data ) {\n\n\t\t\tconst data = image.data.slice( 0 );\n\n\t\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\t\tif ( data instanceof Uint8Array || data instanceof Uint8ClampedArray ) {\n\n\t\t\t\t\tdata[ i ] = Math.floor( SRGBToLinear( data[ i ] / 255 ) * 255 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// assuming float\n\n\t\t\t\t\tdata[ i ] = SRGBToLinear( data[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tdata: data,\n\t\t\t\twidth: image.width,\n\t\t\t\theight: image.height\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.' );\n\t\t\treturn image;\n\n\t\t}\n\n\t}\n\n}\n\nlet textureId = 0;\n\nclass Texture extends EventDispatcher {\n\n\tconstructor( image = Texture.DEFAULT_IMAGE, mapping = Texture.DEFAULT_MAPPING, wrapS = ClampToEdgeWrapping, wrapT = ClampToEdgeWrapping, magFilter = LinearFilter, minFilter = LinearMipmapLinearFilter, format = RGBAFormat, type = UnsignedByteType, anisotropy = 1, encoding = LinearEncoding ) {\n\n\t\tsuper();\n\n\t\tObject.defineProperty( this, 'id', { value: textureId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\n\t\tthis.image = image;\n\t\tthis.mipmaps = [];\n\n\t\tthis.mapping = mapping;\n\n\t\tthis.wrapS = wrapS;\n\t\tthis.wrapT = wrapT;\n\n\t\tthis.magFilter = magFilter;\n\t\tthis.minFilter = minFilter;\n\n\t\tthis.anisotropy = anisotropy;\n\n\t\tthis.format = format;\n\t\tthis.internalFormat = null;\n\t\tthis.type = type;\n\n\t\tthis.offset = new Vector2( 0, 0 );\n\t\tthis.repeat = new Vector2( 1, 1 );\n\t\tthis.center = new Vector2( 0, 0 );\n\t\tthis.rotation = 0;\n\n\t\tthis.matrixAutoUpdate = true;\n\t\tthis.matrix = new Matrix3();\n\n\t\tthis.generateMipmaps = true;\n\t\tthis.premultiplyAlpha = false;\n\t\tthis.flipY = true;\n\t\tthis.unpackAlignment = 4;\t// valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml)\n\n\t\t// Values of encoding !== THREE.LinearEncoding only supported on map, envMap and emissiveMap.\n\t\t//\n\t\t// Also changing the encoding after already used by a Material will not automatically make the Material\n\t\t// update. You need to explicitly call Material.needsUpdate to trigger it to recompile.\n\t\tthis.encoding = encoding;\n\n\t\tthis.userData = {};\n\n\t\tthis.version = 0;\n\t\tthis.onUpdate = null;\n\n\t\tthis.isRenderTargetTexture = false; // indicates whether a texture belongs to a render target or not\n\t\tthis.needsPMREMUpdate = false; // indicates whether this texture should be processed by PMREMGenerator or not (only relevant for render target textures)\n\n\t}\n\n\tupdateMatrix() {\n\n\t\tthis.matrix.setUvTransform( this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.image = source.image;\n\t\tthis.mipmaps = source.mipmaps.slice( 0 );\n\n\t\tthis.mapping = source.mapping;\n\n\t\tthis.wrapS = source.wrapS;\n\t\tthis.wrapT = source.wrapT;\n\n\t\tthis.magFilter = source.magFilter;\n\t\tthis.minFilter = source.minFilter;\n\n\t\tthis.anisotropy = source.anisotropy;\n\n\t\tthis.format = source.format;\n\t\tthis.internalFormat = source.internalFormat;\n\t\tthis.type = source.type;\n\n\t\tthis.offset.copy( source.offset );\n\t\tthis.repeat.copy( source.repeat );\n\t\tthis.center.copy( source.center );\n\t\tthis.rotation = source.rotation;\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\t\tthis.matrix.copy( source.matrix );\n\n\t\tthis.generateMipmaps = source.generateMipmaps;\n\t\tthis.premultiplyAlpha = source.premultiplyAlpha;\n\t\tthis.flipY = source.flipY;\n\t\tthis.unpackAlignment = source.unpackAlignment;\n\t\tthis.encoding = source.encoding;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( ! isRootObject && meta.textures[ this.uuid ] !== undefined ) {\n\n\t\t\treturn meta.textures[ this.uuid ];\n\n\t\t}\n\n\t\tconst output = {\n\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'Texture',\n\t\t\t\tgenerator: 'Texture.toJSON'\n\t\t\t},\n\n\t\t\tuuid: this.uuid,\n\t\t\tname: this.name,\n\n\t\t\tmapping: this.mapping,\n\n\t\t\trepeat: [ this.repeat.x, this.repeat.y ],\n\t\t\toffset: [ this.offset.x, this.offset.y ],\n\t\t\tcenter: [ this.center.x, this.center.y ],\n\t\t\trotation: this.rotation,\n\n\t\t\twrap: [ this.wrapS, this.wrapT ],\n\n\t\t\tformat: this.format,\n\t\t\ttype: this.type,\n\t\t\tencoding: this.encoding,\n\n\t\t\tminFilter: this.minFilter,\n\t\t\tmagFilter: this.magFilter,\n\t\t\tanisotropy: this.anisotropy,\n\n\t\t\tflipY: this.flipY,\n\n\t\t\tpremultiplyAlpha: this.premultiplyAlpha,\n\t\t\tunpackAlignment: this.unpackAlignment\n\n\t\t};\n\n\t\tif ( this.image !== undefined ) {\n\n\t\t\t// TODO: Move to THREE.Image\n\n\t\t\tconst image = this.image;\n\n\t\t\tif ( image.uuid === undefined ) {\n\n\t\t\t\timage.uuid = generateUUID(); // UGH\n\n\t\t\t}\n\n\t\t\tif ( ! isRootObject && meta.images[ image.uuid ] === undefined ) {\n\n\t\t\t\tlet url;\n\n\t\t\t\tif ( Array.isArray( image ) ) {\n\n\t\t\t\t\t// process array of images e.g. CubeTexture\n\n\t\t\t\t\turl = [];\n\n\t\t\t\t\tfor ( let i = 0, l = image.length; i < l; i ++ ) {\n\n\t\t\t\t\t\t// check cube texture with data textures\n\n\t\t\t\t\t\tif ( image[ i ].isDataTexture ) {\n\n\t\t\t\t\t\t\turl.push( serializeImage( image[ i ].image ) );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\turl.push( serializeImage( image[ i ] ) );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// process single image\n\n\t\t\t\t\turl = serializeImage( image );\n\n\t\t\t\t}\n\n\t\t\t\tmeta.images[ image.uuid ] = {\n\t\t\t\t\tuuid: image.uuid,\n\t\t\t\t\turl: url\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t\toutput.image = image.uuid;\n\n\t\t}\n\n\t\tif ( JSON.stringify( this.userData ) !== '{}' ) output.userData = this.userData;\n\n\t\tif ( ! isRootObject ) {\n\n\t\t\tmeta.textures[ this.uuid ] = output;\n\n\t\t}\n\n\t\treturn output;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\ttransformUv( uv ) {\n\n\t\tif ( this.mapping !== UVMapping ) return uv;\n\n\t\tuv.applyMatrix3( this.matrix );\n\n\t\tif ( uv.x < 0 || uv.x > 1 ) {\n\n\t\t\tswitch ( this.wrapS ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.x = uv.x < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.x ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.x = Math.ceil( uv.x ) - uv.x;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( uv.y < 0 || uv.y > 1 ) {\n\n\t\t\tswitch ( this.wrapT ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.y = uv.y < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.y ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.y = Math.ceil( uv.y ) - uv.y;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.flipY ) {\n\n\t\t\tuv.y = 1 - uv.y;\n\n\t\t}\n\n\t\treturn uv;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n}\n\nTexture.DEFAULT_IMAGE = undefined;\nTexture.DEFAULT_MAPPING = UVMapping;\n\nTexture.prototype.isTexture = true;\n\nfunction serializeImage( image ) {\n\n\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t// default images\n\n\t\treturn ImageUtils.getDataURL( image );\n\n\t} else {\n\n\t\tif ( image.data ) {\n\n\t\t\t// images of DataTexture\n\n\t\t\treturn {\n\t\t\t\tdata: Array.prototype.slice.call( image.data ),\n\t\t\t\twidth: image.width,\n\t\t\t\theight: image.height,\n\t\t\t\ttype: image.data.constructor.name\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.Texture: Unable to serialize Texture.' );\n\t\t\treturn {};\n\n\t\t}\n\n\t}\n\n}\n\nclass Vector4 {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.z;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.z = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.w;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.w = value;\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\t\tthis.w = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetW( w ) {\n\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tcase 3: this.w = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tcase 3: return this.w;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z, this.w );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\t\tthis.w = ( v.w !== undefined ) ? v.w : 1;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' );\n\t\t\treturn this.addVectors( v, w );\n\n\t\t}\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\t\tthis.w += v.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\t\tthis.w += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\t\tthis.w = a.w + b.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\t\tthis.w += v.w * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' );\n\t\t\treturn this.subVectors( v, w );\n\n\t\t}\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\t\tthis.w -= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\t\tthis.w -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\t\tthis.w = a.w - b.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\t\tthis.w *= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\t\tthis.w *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z, w = this.w;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] * w;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] * w;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] * w;\n\t\tthis.w = e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] * w;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tsetAxisAngleFromQuaternion( q ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm\n\n\t\t// q is assumed to be normalized\n\n\t\tthis.w = 2 * Math.acos( q.w );\n\n\t\tconst s = Math.sqrt( 1 - q.w * q.w );\n\n\t\tif ( s < 0.0001 ) {\n\n\t\t\tthis.x = 1;\n\t\t\tthis.y = 0;\n\t\t\tthis.z = 0;\n\n\t\t} else {\n\n\t\t\tthis.x = q.x / s;\n\t\t\tthis.y = q.y / s;\n\t\t\tthis.z = q.z / s;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetAxisAngleFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tlet angle, x, y, z; // variables for result\n\t\tconst epsilon = 0.01,\t\t// margin to allow for rounding errors\n\t\t\tepsilon2 = 0.1,\t\t// margin to distinguish between 0 and 180 degrees\n\n\t\t\tte = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tif ( ( Math.abs( m12 - m21 ) < epsilon ) &&\n\t\t ( Math.abs( m13 - m31 ) < epsilon ) &&\n\t\t ( Math.abs( m23 - m32 ) < epsilon ) ) {\n\n\t\t\t// singularity found\n\t\t\t// first check for identity matrix which must have +1 for all terms\n\t\t\t// in leading diagonal and zero in other terms\n\n\t\t\tif ( ( Math.abs( m12 + m21 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m13 + m31 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m23 + m32 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m11 + m22 + m33 - 3 ) < epsilon2 ) ) {\n\n\t\t\t\t// this singularity is identity matrix so angle = 0\n\n\t\t\t\tthis.set( 1, 0, 0, 0 );\n\n\t\t\t\treturn this; // zero angle, arbitrary axis\n\n\t\t\t}\n\n\t\t\t// otherwise this singularity is angle = 180\n\n\t\t\tangle = Math.PI;\n\n\t\t\tconst xx = ( m11 + 1 ) / 2;\n\t\t\tconst yy = ( m22 + 1 ) / 2;\n\t\t\tconst zz = ( m33 + 1 ) / 2;\n\t\t\tconst xy = ( m12 + m21 ) / 4;\n\t\t\tconst xz = ( m13 + m31 ) / 4;\n\t\t\tconst yz = ( m23 + m32 ) / 4;\n\n\t\t\tif ( ( xx > yy ) && ( xx > zz ) ) {\n\n\t\t\t\t// m11 is the largest diagonal term\n\n\t\t\t\tif ( xx < epsilon ) {\n\n\t\t\t\t\tx = 0;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tx = Math.sqrt( xx );\n\t\t\t\t\ty = xy / x;\n\t\t\t\t\tz = xz / x;\n\n\t\t\t\t}\n\n\t\t\t} else if ( yy > zz ) {\n\n\t\t\t\t// m22 is the largest diagonal term\n\n\t\t\t\tif ( yy < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\ty = Math.sqrt( yy );\n\t\t\t\t\tx = xy / y;\n\t\t\t\t\tz = yz / y;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// m33 is the largest diagonal term so base result on this\n\n\t\t\t\tif ( zz < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tz = Math.sqrt( zz );\n\t\t\t\t\tx = xz / z;\n\t\t\t\t\ty = yz / z;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.set( x, y, z, angle );\n\n\t\t\treturn this; // return 180 deg rotation\n\n\t\t}\n\n\t\t// as we have reached here there are no singularities so we can handle normally\n\n\t\tlet s = Math.sqrt( ( m32 - m23 ) * ( m32 - m23 ) +\n\t\t\t( m13 - m31 ) * ( m13 - m31 ) +\n\t\t\t( m21 - m12 ) * ( m21 - m12 ) ); // used to normalize\n\n\t\tif ( Math.abs( s ) < 0.001 ) s = 1;\n\n\t\t// prevent divide by zero, should not happen if matrix is orthogonal and should be\n\t\t// caught by singularity test above, but I've left it in just in case\n\n\t\tthis.x = ( m32 - m23 ) / s;\n\t\tthis.y = ( m13 - m31 ) / s;\n\t\tthis.z = ( m21 - m12 ) / s;\n\t\tthis.w = Math.acos( ( m11 + m22 + m33 - 1 ) / 2 );\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\t\tthis.w = Math.min( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\t\tthis.w = Math.max( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\t\tthis.z = Math.max( min.z, Math.min( max.z, this.z ) );\n\t\tthis.w = Math.max( min.w, Math.min( max.w, this.w ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\t\tthis.z = Math.max( minVal, Math.min( maxVal, this.z ) );\n\t\tthis.w = Math.max( minVal, Math.min( maxVal, this.w ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\t\tthis.w = Math.floor( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\t\tthis.w = Math.ceil( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\t\tthis.w = Math.round( this.w );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x );\n\t\tthis.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y );\n\t\tthis.z = ( this.z < 0 ) ? Math.ceil( this.z ) : Math.floor( this.z );\n\t\tthis.w = ( this.w < 0 ) ? Math.ceil( this.w ) : Math.floor( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\t\tthis.w = - this.w;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z ) + Math.abs( this.w );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\t\tthis.w += ( v.w - this.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\t\tthis.w = v1.w + ( v2.w - v1.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) && ( v.w === this.w ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\t\tthis.w = array[ offset + 3 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\t\tarray[ offset + 3 ] = this.w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index, offset ) {\n\n\t\tif ( offset !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector4: offset has been removed from .fromBufferAttribute().' );\n\n\t\t}\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\t\tthis.w = attribute.getW( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\t\tthis.w = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\t\tyield this.z;\n\t\tyield this.w;\n\n\t}\n\n}\n\nVector4.prototype.isVector4 = true;\n\n/*\n In options, we can specify:\n * Texture parameters for an auto-generated target texture\n * depthBuffer/stencilBuffer: Booleans to indicate if we should generate these buffers\n*/\nclass WebGLRenderTarget extends EventDispatcher {\n\n\tconstructor( width, height, options = {} ) {\n\n\t\tsuper();\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\tthis.depth = 1;\n\n\t\tthis.scissor = new Vector4( 0, 0, width, height );\n\t\tthis.scissorTest = false;\n\n\t\tthis.viewport = new Vector4( 0, 0, width, height );\n\n\t\tthis.texture = new Texture( undefined, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.encoding );\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t\tthis.texture.image = { width: width, height: height, depth: 1 };\n\n\t\tthis.texture.generateMipmaps = options.generateMipmaps !== undefined ? options.generateMipmaps : false;\n\t\tthis.texture.internalFormat = options.internalFormat !== undefined ? options.internalFormat : null;\n\t\tthis.texture.minFilter = options.minFilter !== undefined ? options.minFilter : LinearFilter;\n\n\t\tthis.depthBuffer = options.depthBuffer !== undefined ? options.depthBuffer : true;\n\t\tthis.stencilBuffer = options.stencilBuffer !== undefined ? options.stencilBuffer : false;\n\t\tthis.depthTexture = options.depthTexture !== undefined ? options.depthTexture : null;\n\n\t}\n\n\tsetTexture( texture ) {\n\n\t\ttexture.image = {\n\t\t\twidth: this.width,\n\t\t\theight: this.height,\n\t\t\tdepth: this.depth\n\t\t};\n\n\t\tthis.texture = texture;\n\n\t}\n\n\tsetSize( width, height, depth = 1 ) {\n\n\t\tif ( this.width !== width || this.height !== height || this.depth !== depth ) {\n\n\t\t\tthis.width = width;\n\t\t\tthis.height = height;\n\t\t\tthis.depth = depth;\n\n\t\t\tthis.texture.image.width = width;\n\t\t\tthis.texture.image.height = height;\n\t\t\tthis.texture.image.depth = depth;\n\n\t\t\tthis.dispose();\n\n\t\t}\n\n\t\tthis.viewport.set( 0, 0, width, height );\n\t\tthis.scissor.set( 0, 0, width, height );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.width = source.width;\n\t\tthis.height = source.height;\n\t\tthis.depth = source.depth;\n\n\t\tthis.viewport.copy( source.viewport );\n\n\t\tthis.texture = source.texture.clone();\n\n\t\t// ensure image object is not shared, see #20328\n\n\t\tthis.texture.image = Object.assign( {}, source.texture.image );\n\n\t\tthis.depthBuffer = source.depthBuffer;\n\t\tthis.stencilBuffer = source.stencilBuffer;\n\t\tthis.depthTexture = source.depthTexture;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nWebGLRenderTarget.prototype.isWebGLRenderTarget = true;\n\nclass WebGLMultipleRenderTargets extends WebGLRenderTarget {\n\n\tconstructor( width, height, count ) {\n\n\t\tsuper( width, height );\n\n\t\tconst texture = this.texture;\n\n\t\tthis.texture = [];\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.texture[ i ] = texture.clone();\n\n\t\t}\n\n\t}\n\n\tsetSize( width, height, depth = 1 ) {\n\n\t\tif ( this.width !== width || this.height !== height || this.depth !== depth ) {\n\n\t\t\tthis.width = width;\n\t\t\tthis.height = height;\n\t\t\tthis.depth = depth;\n\n\t\t\tfor ( let i = 0, il = this.texture.length; i < il; i ++ ) {\n\n\t\t\t\tthis.texture[ i ].image.width = width;\n\t\t\t\tthis.texture[ i ].image.height = height;\n\t\t\t\tthis.texture[ i ].image.depth = depth;\n\n\t\t\t}\n\n\t\t\tthis.dispose();\n\n\t\t}\n\n\t\tthis.viewport.set( 0, 0, width, height );\n\t\tthis.scissor.set( 0, 0, width, height );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.dispose();\n\n\t\tthis.width = source.width;\n\t\tthis.height = source.height;\n\t\tthis.depth = source.depth;\n\n\t\tthis.viewport.set( 0, 0, this.width, this.height );\n\t\tthis.scissor.set( 0, 0, this.width, this.height );\n\n\t\tthis.depthBuffer = source.depthBuffer;\n\t\tthis.stencilBuffer = source.stencilBuffer;\n\t\tthis.depthTexture = source.depthTexture;\n\n\t\tthis.texture.length = 0;\n\n\t\tfor ( let i = 0, il = source.texture.length; i < il; i ++ ) {\n\n\t\t\tthis.texture[ i ] = source.texture[ i ].clone();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nWebGLMultipleRenderTargets.prototype.isWebGLMultipleRenderTargets = true;\n\nclass WebGLMultisampleRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( width, height, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.samples = 4;\n\n\t\tthis.ignoreDepthForMultisampleCopy = options.ignoreDepth !== undefined ? options.ignoreDepth : true;\n\t\tthis.useRenderToTexture = ( options.useRenderToTexture !== undefined ) ? options.useRenderToTexture : false;\n\t\tthis.useRenderbuffer = this.useRenderToTexture === false;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy.call( this, source );\n\n\t\tthis.samples = source.samples;\n\t\tthis.useRenderToTexture = source.useRenderToTexture;\n\t\tthis.useRenderbuffer = source.useRenderbuffer;\n\n\t\treturn this;\n\n\t}\n\n}\n\nWebGLMultisampleRenderTarget.prototype.isWebGLMultisampleRenderTarget = true;\n\nclass Quaternion {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t}\n\n\tstatic slerp( qa, qb, qm, t ) {\n\n\t\tconsole.warn( 'THREE.Quaternion: Static .slerp() has been deprecated. Use qm.slerpQuaternions( qa, qb, t ) instead.' );\n\t\treturn qm.slerpQuaternions( qa, qb, t );\n\n\t}\n\n\tstatic slerpFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t ) {\n\n\t\t// fuzz-free, array-based Quaternion SLERP operation\n\n\t\tlet x0 = src0[ srcOffset0 + 0 ],\n\t\t\ty0 = src0[ srcOffset0 + 1 ],\n\t\t\tz0 = src0[ srcOffset0 + 2 ],\n\t\t\tw0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 + 0 ],\n\t\t\ty1 = src1[ srcOffset1 + 1 ],\n\t\t\tz1 = src1[ srcOffset1 + 2 ],\n\t\t\tw1 = src1[ srcOffset1 + 3 ];\n\n\t\tif ( t === 0 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x0;\n\t\t\tdst[ dstOffset + 1 ] = y0;\n\t\t\tdst[ dstOffset + 2 ] = z0;\n\t\t\tdst[ dstOffset + 3 ] = w0;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( t === 1 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x1;\n\t\t\tdst[ dstOffset + 1 ] = y1;\n\t\t\tdst[ dstOffset + 2 ] = z1;\n\t\t\tdst[ dstOffset + 3 ] = w1;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1 ) {\n\n\t\t\tlet s = 1 - t;\n\t\t\tconst cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1,\n\t\t\t\tdir = ( cos >= 0 ? 1 : - 1 ),\n\t\t\t\tsqrSin = 1 - cos * cos;\n\n\t\t\t// Skip the Slerp for tiny steps to avoid numeric problems:\n\t\t\tif ( sqrSin > Number.EPSILON ) {\n\n\t\t\t\tconst sin = Math.sqrt( sqrSin ),\n\t\t\t\t\tlen = Math.atan2( sin, cos * dir );\n\n\t\t\t\ts = Math.sin( s * len ) / sin;\n\t\t\t\tt = Math.sin( t * len ) / sin;\n\n\t\t\t}\n\n\t\t\tconst tDir = t * dir;\n\n\t\t\tx0 = x0 * s + x1 * tDir;\n\t\t\ty0 = y0 * s + y1 * tDir;\n\t\t\tz0 = z0 * s + z1 * tDir;\n\t\t\tw0 = w0 * s + w1 * tDir;\n\n\t\t\t// Normalize in case we just did a lerp:\n\t\t\tif ( s === 1 - t ) {\n\n\t\t\t\tconst f = 1 / Math.sqrt( x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0 );\n\n\t\t\t\tx0 *= f;\n\t\t\t\ty0 *= f;\n\t\t\t\tz0 *= f;\n\t\t\t\tw0 *= f;\n\n\t\t\t}\n\n\t\t}\n\n\t\tdst[ dstOffset ] = x0;\n\t\tdst[ dstOffset + 1 ] = y0;\n\t\tdst[ dstOffset + 2 ] = z0;\n\t\tdst[ dstOffset + 3 ] = w0;\n\n\t}\n\n\tstatic multiplyQuaternionsFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1 ) {\n\n\t\tconst x0 = src0[ srcOffset0 ];\n\t\tconst y0 = src0[ srcOffset0 + 1 ];\n\t\tconst z0 = src0[ srcOffset0 + 2 ];\n\t\tconst w0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 ];\n\t\tconst y1 = src1[ srcOffset1 + 1 ];\n\t\tconst z1 = src1[ srcOffset1 + 2 ];\n\t\tconst w1 = src1[ srcOffset1 + 3 ];\n\n\t\tdst[ dstOffset ] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;\n\t\tdst[ dstOffset + 1 ] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;\n\t\tdst[ dstOffset + 2 ] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;\n\t\tdst[ dstOffset + 3 ] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;\n\n\t\treturn dst;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget w() {\n\n\t\treturn this._w;\n\n\t}\n\n\tset w( value ) {\n\n\t\tthis._w = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._w );\n\n\t}\n\n\tcopy( quaternion ) {\n\n\t\tthis._x = quaternion.x;\n\t\tthis._y = quaternion.y;\n\t\tthis._z = quaternion.z;\n\t\tthis._w = quaternion.w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromEuler( euler, update ) {\n\n\t\tif ( ! ( euler && euler.isEuler ) ) {\n\n\t\t\tthrow new Error( 'THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.' );\n\n\t\t}\n\n\t\tconst x = euler._x, y = euler._y, z = euler._z, order = euler._order;\n\n\t\t// http://www.mathworks.com/matlabcentral/fileexchange/\n\t\t// \t20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/\n\t\t//\tcontent/SpinCalc.m\n\n\t\tconst cos = Math.cos;\n\t\tconst sin = Math.sin;\n\n\t\tconst c1 = cos( x / 2 );\n\t\tconst c2 = cos( y / 2 );\n\t\tconst c3 = cos( z / 2 );\n\n\t\tconst s1 = sin( x / 2 );\n\t\tconst s2 = sin( y / 2 );\n\t\tconst s3 = sin( z / 2 );\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.warn( 'THREE.Quaternion: .setFromEuler() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tif ( update !== false ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAxisAngle( axis, angle ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm\n\n\t\t// assumes axis is normalized\n\n\t\tconst halfAngle = angle / 2, s = Math.sin( halfAngle );\n\n\t\tthis._x = axis.x * s;\n\t\tthis._y = axis.y * s;\n\t\tthis._z = axis.z * s;\n\t\tthis._w = Math.cos( halfAngle );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ],\n\n\t\t\ttrace = m11 + m22 + m33;\n\n\t\tif ( trace > 0 ) {\n\n\t\t\tconst s = 0.5 / Math.sqrt( trace + 1.0 );\n\n\t\t\tthis._w = 0.25 / s;\n\t\t\tthis._x = ( m32 - m23 ) * s;\n\t\t\tthis._y = ( m13 - m31 ) * s;\n\t\t\tthis._z = ( m21 - m12 ) * s;\n\n\t\t} else if ( m11 > m22 && m11 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m11 - m22 - m33 );\n\n\t\t\tthis._w = ( m32 - m23 ) / s;\n\t\t\tthis._x = 0.25 * s;\n\t\t\tthis._y = ( m12 + m21 ) / s;\n\t\t\tthis._z = ( m13 + m31 ) / s;\n\n\t\t} else if ( m22 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m22 - m11 - m33 );\n\n\t\t\tthis._w = ( m13 - m31 ) / s;\n\t\t\tthis._x = ( m12 + m21 ) / s;\n\t\t\tthis._y = 0.25 * s;\n\t\t\tthis._z = ( m23 + m32 ) / s;\n\n\t\t} else {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m33 - m11 - m22 );\n\n\t\t\tthis._w = ( m21 - m12 ) / s;\n\t\t\tthis._x = ( m13 + m31 ) / s;\n\t\t\tthis._y = ( m23 + m32 ) / s;\n\t\t\tthis._z = 0.25 * s;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromUnitVectors( vFrom, vTo ) {\n\n\t\t// assumes direction vectors vFrom and vTo are normalized\n\n\t\tlet r = vFrom.dot( vTo ) + 1;\n\n\t\tif ( r < Number.EPSILON ) {\n\n\t\t\t// vFrom and vTo point in opposite directions\n\n\t\t\tr = 0;\n\n\t\t\tif ( Math.abs( vFrom.x ) > Math.abs( vFrom.z ) ) {\n\n\t\t\t\tthis._x = - vFrom.y;\n\t\t\t\tthis._y = vFrom.x;\n\t\t\t\tthis._z = 0;\n\t\t\t\tthis._w = r;\n\n\t\t\t} else {\n\n\t\t\t\tthis._x = 0;\n\t\t\t\tthis._y = - vFrom.z;\n\t\t\t\tthis._z = vFrom.y;\n\t\t\t\tthis._w = r;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// crossVectors( vFrom, vTo ); // inlined to avoid cyclic dependency on Vector3\n\n\t\t\tthis._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\n\t\t\tthis._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\n\t\t\tthis._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\n\t\t\tthis._w = r;\n\n\t\t}\n\n\t\treturn this.normalize();\n\n\t}\n\n\tangleTo( q ) {\n\n\t\treturn 2 * Math.acos( Math.abs( clamp( this.dot( q ), - 1, 1 ) ) );\n\n\t}\n\n\trotateTowards( q, step ) {\n\n\t\tconst angle = this.angleTo( q );\n\n\t\tif ( angle === 0 ) return this;\n\n\t\tconst t = Math.min( 1, step / angle );\n\n\t\tthis.slerp( q, t );\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\treturn this.set( 0, 0, 0, 1 );\n\n\t}\n\n\tinvert() {\n\n\t\t// quaternion is assumed to have unit length\n\n\t\treturn this.conjugate();\n\n\t}\n\n\tconjugate() {\n\n\t\tthis._x *= - 1;\n\t\tthis._y *= - 1;\n\t\tthis._z *= - 1;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w );\n\n\t}\n\n\tnormalize() {\n\n\t\tlet l = this.length();\n\n\t\tif ( l === 0 ) {\n\n\t\t\tthis._x = 0;\n\t\t\tthis._y = 0;\n\t\t\tthis._z = 0;\n\t\t\tthis._w = 1;\n\n\t\t} else {\n\n\t\t\tl = 1 / l;\n\n\t\t\tthis._x = this._x * l;\n\t\t\tthis._y = this._y * l;\n\t\t\tthis._z = this._z * l;\n\t\t\tthis._w = this._w * l;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( q, p ) {\n\n\t\tif ( p !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.' );\n\t\t\treturn this.multiplyQuaternions( q, p );\n\n\t\t}\n\n\t\treturn this.multiplyQuaternions( this, q );\n\n\t}\n\n\tpremultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( q, this );\n\n\t}\n\n\tmultiplyQuaternions( a, b ) {\n\n\t\t// from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm\n\n\t\tconst qax = a._x, qay = a._y, qaz = a._z, qaw = a._w;\n\t\tconst qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w;\n\n\t\tthis._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n\t\tthis._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n\t\tthis._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n\t\tthis._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerp( qb, t ) {\n\n\t\tif ( t === 0 ) return this;\n\t\tif ( t === 1 ) return this.copy( qb );\n\n\t\tconst x = this._x, y = this._y, z = this._z, w = this._w;\n\n\t\t// http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/\n\n\t\tlet cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;\n\n\t\tif ( cosHalfTheta < 0 ) {\n\n\t\t\tthis._w = - qb._w;\n\t\t\tthis._x = - qb._x;\n\t\t\tthis._y = - qb._y;\n\t\t\tthis._z = - qb._z;\n\n\t\t\tcosHalfTheta = - cosHalfTheta;\n\n\t\t} else {\n\n\t\t\tthis.copy( qb );\n\n\t\t}\n\n\t\tif ( cosHalfTheta >= 1.0 ) {\n\n\t\t\tthis._w = w;\n\t\t\tthis._x = x;\n\t\t\tthis._y = y;\n\t\t\tthis._z = z;\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta;\n\n\t\tif ( sqrSinHalfTheta <= Number.EPSILON ) {\n\n\t\t\tconst s = 1 - t;\n\t\t\tthis._w = s * w + t * this._w;\n\t\t\tthis._x = s * x + t * this._x;\n\t\t\tthis._y = s * y + t * this._y;\n\t\t\tthis._z = s * z + t * this._z;\n\n\t\t\tthis.normalize();\n\t\t\tthis._onChangeCallback();\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sinHalfTheta = Math.sqrt( sqrSinHalfTheta );\n\t\tconst halfTheta = Math.atan2( sinHalfTheta, cosHalfTheta );\n\t\tconst ratioA = Math.sin( ( 1 - t ) * halfTheta ) / sinHalfTheta,\n\t\t\tratioB = Math.sin( t * halfTheta ) / sinHalfTheta;\n\n\t\tthis._w = ( w * ratioA + this._w * ratioB );\n\t\tthis._x = ( x * ratioA + this._x * ratioB );\n\t\tthis._y = ( y * ratioA + this._y * ratioB );\n\t\tthis._z = ( z * ratioA + this._z * ratioB );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerpQuaternions( qa, qb, t ) {\n\n\t\treturn this.copy( qa ).slerp( qb, t );\n\n\t}\n\n\trandom() {\n\n\t\t// Derived from http://planning.cs.uiuc.edu/node198.html\n\t\t// Note, this source uses w, x, y, z ordering,\n\t\t// so we swap the order below.\n\n\t\tconst u1 = Math.random();\n\t\tconst sqrt1u1 = Math.sqrt( 1 - u1 );\n\t\tconst sqrtu1 = Math.sqrt( u1 );\n\n\t\tconst u2 = 2 * Math.PI * Math.random();\n\n\t\tconst u3 = 2 * Math.PI * Math.random();\n\n\t\treturn this.set(\n\t\t\tsqrt1u1 * Math.cos( u2 ),\n\t\t\tsqrtu1 * Math.sin( u3 ),\n\t\t\tsqrtu1 * Math.cos( u3 ),\n\t\t\tsqrt1u1 * Math.sin( u2 ),\n\t\t);\n\n\t}\n\n\tequals( quaternion ) {\n\n\t\treturn ( quaternion._x === this._x ) && ( quaternion._y === this._y ) && ( quaternion._z === this._z ) && ( quaternion._w === this._w );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis._x = array[ offset ];\n\t\tthis._y = array[ offset + 1 ];\n\t\tthis._z = array[ offset + 2 ];\n\t\tthis._w = array[ offset + 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis._x = attribute.getX( index );\n\t\tthis._y = attribute.getY( index );\n\t\tthis._z = attribute.getZ( index );\n\t\tthis._w = attribute.getW( index );\n\n\t\treturn this;\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n}\n\nQuaternion.prototype.isQuaternion = true;\n\nclass Vector3 {\n\n\tconstructor( x = 0, y = 0, z = 0 ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t}\n\n\tset( x, y, z ) {\n\n\t\tif ( z === undefined ) z = this.z; // sprite.scale.set(x,y)\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' );\n\t\t\treturn this.addVectors( v, w );\n\n\t\t}\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' );\n\t\t\treturn this.subVectors( v, w );\n\n\t\t}\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.' );\n\t\t\treturn this.multiplyVectors( v, w );\n\n\t\t}\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyVectors( a, b ) {\n\n\t\tthis.x = a.x * b.x;\n\t\tthis.y = a.y * b.y;\n\t\tthis.z = a.z * b.z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyEuler( euler ) {\n\n\t\tif ( ! ( euler && euler.isEuler ) ) {\n\n\t\t\tconsole.error( 'THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.' );\n\n\t\t}\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromEuler( euler ) );\n\n\t}\n\n\tapplyAxisAngle( axis, angle ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromAxisAngle( axis, angle ) );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 5 ] * y + e[ 8 ] * z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\treturn this.applyMatrix3( m ).normalize();\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tconst w = 1 / ( e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] );\n\n\t\tthis.x = ( e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] ) * w;\n\t\tthis.y = ( e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] ) * w;\n\t\tthis.z = ( e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] ) * w;\n\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst qx = q.x, qy = q.y, qz = q.z, qw = q.w;\n\n\t\t// calculate quat * vector\n\n\t\tconst ix = qw * x + qy * z - qz * y;\n\t\tconst iy = qw * y + qz * x - qx * z;\n\t\tconst iz = qw * z + qx * y - qy * x;\n\t\tconst iw = - qx * x - qy * y - qz * z;\n\n\t\t// calculate result * inverse quat\n\n\t\tthis.x = ix * qw + iw * - qx + iy * - qz - iz * - qy;\n\t\tthis.y = iy * qw + iw * - qy + iz * - qx - ix * - qz;\n\t\tthis.z = iz * qw + iw * - qz + ix * - qy - iy * - qx;\n\n\t\treturn this;\n\n\t}\n\n\tproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.matrixWorldInverse ).applyMatrix4( camera.projectionMatrix );\n\n\t}\n\n\tunproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.projectionMatrixInverse ).applyMatrix4( camera.matrixWorld );\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\t// input: THREE.Matrix4 affine matrix\n\t\t// vector interpreted as a direction\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z;\n\n\t\treturn this.normalize();\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\t\tthis.z /= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\t\tthis.z = Math.max( min.z, Math.min( max.z, this.z ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\t\tthis.z = Math.max( minVal, Math.min( maxVal, this.z ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x );\n\t\tthis.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y );\n\t\tthis.z = ( this.z < 0 ) ? Math.ceil( this.z ) : Math.floor( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z;\n\n\t}\n\n\t// TODO lengthSquared?\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tcross( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.' );\n\t\t\treturn this.crossVectors( v, w );\n\n\t\t}\n\n\t\treturn this.crossVectors( this, v );\n\n\t}\n\n\tcrossVectors( a, b ) {\n\n\t\tconst ax = a.x, ay = a.y, az = a.z;\n\t\tconst bx = b.x, by = b.y, bz = b.z;\n\n\t\tthis.x = ay * bz - az * by;\n\t\tthis.y = az * bx - ax * bz;\n\t\tthis.z = ax * by - ay * bx;\n\n\t\treturn this;\n\n\t}\n\n\tprojectOnVector( v ) {\n\n\t\tconst denominator = v.lengthSq();\n\n\t\tif ( denominator === 0 ) return this.set( 0, 0, 0 );\n\n\t\tconst scalar = v.dot( this ) / denominator;\n\n\t\treturn this.copy( v ).multiplyScalar( scalar );\n\n\t}\n\n\tprojectOnPlane( planeNormal ) {\n\n\t\t_vector$c.copy( this ).projectOnVector( planeNormal );\n\n\t\treturn this.sub( _vector$c );\n\n\t}\n\n\treflect( normal ) {\n\n\t\t// reflect incident vector off plane orthogonal to normal\n\t\t// normal is assumed to have unit length\n\n\t\treturn this.sub( _vector$c.copy( normal ).multiplyScalar( 2 * this.dot( normal ) ) );\n\n\t}\n\n\tangleTo( v ) {\n\n\t\tconst denominator = Math.sqrt( this.lengthSq() * v.lengthSq() );\n\n\t\tif ( denominator === 0 ) return Math.PI / 2;\n\n\t\tconst theta = this.dot( v ) / denominator;\n\n\t\t// clamp, to handle numerical problems\n\n\t\treturn Math.acos( clamp( theta, - 1, 1 ) );\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z;\n\n\t\treturn dx * dx + dy * dy + dz * dz;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y ) + Math.abs( this.z - v.z );\n\n\t}\n\n\tsetFromSpherical( s ) {\n\n\t\treturn this.setFromSphericalCoords( s.radius, s.phi, s.theta );\n\n\t}\n\n\tsetFromSphericalCoords( radius, phi, theta ) {\n\n\t\tconst sinPhiRadius = Math.sin( phi ) * radius;\n\n\t\tthis.x = sinPhiRadius * Math.sin( theta );\n\t\tthis.y = Math.cos( phi ) * radius;\n\t\tthis.z = sinPhiRadius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCylindrical( c ) {\n\n\t\treturn this.setFromCylindricalCoords( c.radius, c.theta, c.y );\n\n\t}\n\n\tsetFromCylindricalCoords( radius, theta, y ) {\n\n\t\tthis.x = radius * Math.sin( theta );\n\t\tthis.y = y;\n\t\tthis.z = radius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixPosition( m ) {\n\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 12 ];\n\t\tthis.y = e[ 13 ];\n\t\tthis.z = e[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixScale( m ) {\n\n\t\tconst sx = this.setFromMatrixColumn( m, 0 ).length();\n\t\tconst sy = this.setFromMatrixColumn( m, 1 ).length();\n\t\tconst sz = this.setFromMatrixColumn( m, 2 ).length();\n\n\t\tthis.x = sx;\n\t\tthis.y = sy;\n\t\tthis.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixColumn( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 4 );\n\n\t}\n\n\tsetFromMatrix3Column( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 3 );\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index, offset ) {\n\n\t\tif ( offset !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector3: offset has been removed from .fromBufferAttribute().' );\n\n\t\t}\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\trandomDirection() {\n\n\t\t// Derived from https://mathworld.wolfram.com/SpherePointPicking.html\n\n\t\tconst u = ( Math.random() - 0.5 ) * 2;\n\t\tconst t = Math.random() * Math.PI * 2;\n\t\tconst f = Math.sqrt( 1 - u ** 2 );\n\n\t\tthis.x = f * Math.cos( t );\n\t\tthis.y = f * Math.sin( t );\n\t\tthis.z = u;\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\t\tyield this.z;\n\n\t}\n\n}\n\nVector3.prototype.isVector3 = true;\n\nconst _vector$c = /*@__PURE__*/ new Vector3();\nconst _quaternion$4 = /*@__PURE__*/ new Quaternion();\n\nclass Box3 {\n\n\tconstructor( min = new Vector3( + Infinity, + Infinity, + Infinity ), max = new Vector3( - Infinity, - Infinity, - Infinity ) ) {\n\n\t\tthis.min = min;\n\t\tthis.max = max;\n\n\t}\n\n\tset( min, max ) {\n\n\t\tthis.min.copy( min );\n\t\tthis.max.copy( max );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromArray( array ) {\n\n\t\tlet minX = + Infinity;\n\t\tlet minY = + Infinity;\n\t\tlet minZ = + Infinity;\n\n\t\tlet maxX = - Infinity;\n\t\tlet maxY = - Infinity;\n\t\tlet maxZ = - Infinity;\n\n\t\tfor ( let i = 0, l = array.length; i < l; i += 3 ) {\n\n\t\t\tconst x = array[ i ];\n\t\t\tconst y = array[ i + 1 ];\n\t\t\tconst z = array[ i + 2 ];\n\n\t\t\tif ( x < minX ) minX = x;\n\t\t\tif ( y < minY ) minY = y;\n\t\t\tif ( z < minZ ) minZ = z;\n\n\t\t\tif ( x > maxX ) maxX = x;\n\t\t\tif ( y > maxY ) maxY = y;\n\t\t\tif ( z > maxZ ) maxZ = z;\n\n\t\t}\n\n\t\tthis.min.set( minX, minY, minZ );\n\t\tthis.max.set( maxX, maxY, maxZ );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromBufferAttribute( attribute ) {\n\n\t\tlet minX = + Infinity;\n\t\tlet minY = + Infinity;\n\t\tlet minZ = + Infinity;\n\n\t\tlet maxX = - Infinity;\n\t\tlet maxY = - Infinity;\n\t\tlet maxZ = - Infinity;\n\n\t\tfor ( let i = 0, l = attribute.count; i < l; i ++ ) {\n\n\t\t\tconst x = attribute.getX( i );\n\t\t\tconst y = attribute.getY( i );\n\t\t\tconst z = attribute.getZ( i );\n\n\t\t\tif ( x < minX ) minX = x;\n\t\t\tif ( y < minY ) minY = y;\n\t\t\tif ( z < minZ ) minZ = z;\n\n\t\t\tif ( x > maxX ) maxX = x;\n\t\t\tif ( y > maxY ) maxY = y;\n\t\t\tif ( z > maxZ ) maxZ = z;\n\n\t\t}\n\n\t\tthis.min.set( minX, minY, minZ );\n\t\tthis.max.set( maxX, maxY, maxZ );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( points[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCenterAndSize( center, size ) {\n\n\t\tconst halfSize = _vector$b.copy( size ).multiplyScalar( 0.5 );\n\n\t\tthis.min.copy( center ).sub( halfSize );\n\t\tthis.max.copy( center ).add( halfSize );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromObject( object, precise = false ) {\n\n\t\tthis.makeEmpty();\n\n\t\treturn this.expandByObject( object, precise );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( box ) {\n\n\t\tthis.min.copy( box.min );\n\t\tthis.max.copy( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.min.x = this.min.y = this.min.z = + Infinity;\n\t\tthis.max.x = this.max.y = this.max.z = - Infinity;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\t// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n\n\t\treturn ( this.max.x < this.min.x ) || ( this.max.y < this.min.y ) || ( this.max.z < this.min.z );\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.addVectors( this.min, this.max ).multiplyScalar( 0.5 );\n\n\t}\n\n\tgetSize( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.subVectors( this.max, this.min );\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tthis.min.min( point );\n\t\tthis.max.max( point );\n\n\t\treturn this;\n\n\t}\n\n\texpandByVector( vector ) {\n\n\t\tthis.min.sub( vector );\n\t\tthis.max.add( vector );\n\n\t\treturn this;\n\n\t}\n\n\texpandByScalar( scalar ) {\n\n\t\tthis.min.addScalar( - scalar );\n\t\tthis.max.addScalar( scalar );\n\n\t\treturn this;\n\n\t}\n\n\texpandByObject( object, precise = false ) {\n\n\t\t// Computes the world-axis-aligned bounding box of an object (including its children),\n\t\t// accounting for both the object's, and children's, world transforms\n\n\t\tobject.updateWorldMatrix( false, false );\n\n\t\tconst geometry = object.geometry;\n\n\t\tif ( geometry !== undefined ) {\n\n\t\t\tif ( precise && geometry.attributes != undefined && geometry.attributes.position !== undefined ) {\n\n\t\t\t\tconst position = geometry.attributes.position;\n\t\t\t\tfor ( let i = 0, l = position.count; i < l; i ++ ) {\n\n\t\t\t\t\t_vector$b.fromBufferAttribute( position, i ).applyMatrix4( object.matrixWorld );\n\t\t\t\t\tthis.expandByPoint( _vector$b );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( geometry.boundingBox === null ) {\n\n\t\t\t\t\tgeometry.computeBoundingBox();\n\n\t\t\t\t}\n\n\t\t\t\t_box$3.copy( geometry.boundingBox );\n\t\t\t\t_box$3.applyMatrix4( object.matrixWorld );\n\n\t\t\t\tthis.union( _box$3 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tthis.expandByObject( children[ i ], precise );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn point.x < this.min.x || point.x > this.max.x ||\n\t\t\tpoint.y < this.min.y || point.y > this.max.y ||\n\t\t\tpoint.z < this.min.z || point.z > this.max.z ? false : true;\n\n\t}\n\n\tcontainsBox( box ) {\n\n\t\treturn this.min.x <= box.min.x && box.max.x <= this.max.x &&\n\t\t\tthis.min.y <= box.min.y && box.max.y <= this.max.y &&\n\t\t\tthis.min.z <= box.min.z && box.max.z <= this.max.z;\n\n\t}\n\n\tgetParameter( point, target ) {\n\n\t\t// This can potentially have a divide by zero if the box\n\t\t// has a size dimension of 0.\n\n\t\treturn target.set(\n\t\t\t( point.x - this.min.x ) / ( this.max.x - this.min.x ),\n\t\t\t( point.y - this.min.y ) / ( this.max.y - this.min.y ),\n\t\t\t( point.z - this.min.z ) / ( this.max.z - this.min.z )\n\t\t);\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\t// using 6 splitting planes to rule out intersections.\n\t\treturn box.max.x < this.min.x || box.min.x > this.max.x ||\n\t\t\tbox.max.y < this.min.y || box.min.y > this.max.y ||\n\t\t\tbox.max.z < this.min.z || box.min.z > this.max.z ? false : true;\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\t// Find the point on the AABB closest to the sphere center.\n\t\tthis.clampPoint( sphere.center, _vector$b );\n\n\t\t// If that point is inside the sphere, the AABB and sphere intersect.\n\t\treturn _vector$b.distanceToSquared( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// We compute the minimum and maximum dot product values. If those values\n\t\t// are on the same side (back or front) of the plane, then there is no intersection.\n\n\t\tlet min, max;\n\n\t\tif ( plane.normal.x > 0 ) {\n\n\t\t\tmin = plane.normal.x * this.min.x;\n\t\t\tmax = plane.normal.x * this.max.x;\n\n\t\t} else {\n\n\t\t\tmin = plane.normal.x * this.max.x;\n\t\t\tmax = plane.normal.x * this.min.x;\n\n\t\t}\n\n\t\tif ( plane.normal.y > 0 ) {\n\n\t\t\tmin += plane.normal.y * this.min.y;\n\t\t\tmax += plane.normal.y * this.max.y;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.y * this.max.y;\n\t\t\tmax += plane.normal.y * this.min.y;\n\n\t\t}\n\n\t\tif ( plane.normal.z > 0 ) {\n\n\t\t\tmin += plane.normal.z * this.min.z;\n\t\t\tmax += plane.normal.z * this.max.z;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.z * this.max.z;\n\t\t\tmax += plane.normal.z * this.min.z;\n\n\t\t}\n\n\t\treturn ( min <= - plane.constant && max >= - plane.constant );\n\n\t}\n\n\tintersectsTriangle( triangle ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// compute box center and extents\n\t\tthis.getCenter( _center );\n\t\t_extents.subVectors( this.max, _center );\n\n\t\t// translate triangle to aabb origin\n\t\t_v0$2.subVectors( triangle.a, _center );\n\t\t_v1$7.subVectors( triangle.b, _center );\n\t\t_v2$3.subVectors( triangle.c, _center );\n\n\t\t// compute edge vectors for triangle\n\t\t_f0.subVectors( _v1$7, _v0$2 );\n\t\t_f1.subVectors( _v2$3, _v1$7 );\n\t\t_f2.subVectors( _v0$2, _v2$3 );\n\n\t\t// test against axes that are given by cross product combinations of the edges of the triangle and the edges of the aabb\n\t\t// make an axis testing of each of the 3 sides of the aabb against each of the 3 sides of the triangle = 9 axis of separation\n\t\t// axis_ij = u_i x f_j (u0, u1, u2 = face normals of aabb = x,y,z axes vectors since aabb is axis aligned)\n\t\tlet axes = [\n\t\t\t0, - _f0.z, _f0.y, 0, - _f1.z, _f1.y, 0, - _f2.z, _f2.y,\n\t\t\t_f0.z, 0, - _f0.x, _f1.z, 0, - _f1.x, _f2.z, 0, - _f2.x,\n\t\t\t- _f0.y, _f0.x, 0, - _f1.y, _f1.x, 0, - _f2.y, _f2.x, 0\n\t\t];\n\t\tif ( ! satForAxes( axes, _v0$2, _v1$7, _v2$3, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// test 3 face normals from the aabb\n\t\taxes = [ 1, 0, 0, 0, 1, 0, 0, 0, 1 ];\n\t\tif ( ! satForAxes( axes, _v0$2, _v1$7, _v2$3, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// finally testing the face normal of the triangle\n\t\t// use already existing triangle edge vectors here\n\t\t_triangleNormal.crossVectors( _f0, _f1 );\n\t\taxes = [ _triangleNormal.x, _triangleNormal.y, _triangleNormal.z ];\n\n\t\treturn satForAxes( axes, _v0$2, _v1$7, _v2$3, _extents );\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\tconst clampedPoint = _vector$b.copy( point ).clamp( this.min, this.max );\n\n\t\treturn clampedPoint.sub( point ).length();\n\n\t}\n\n\tgetBoundingSphere( target ) {\n\n\t\tthis.getCenter( target.center );\n\n\t\ttarget.radius = this.getSize( _vector$b ).length() * 0.5;\n\n\t\treturn target;\n\n\t}\n\n\tintersect( box ) {\n\n\t\tthis.min.max( box.min );\n\t\tthis.max.min( box.max );\n\n\t\t// ensure that if there is no overlap, the result is fully empty, not slightly empty with non-inf/+inf values that will cause subsequence intersects to erroneously return valid values.\n\t\tif ( this.isEmpty() ) this.makeEmpty();\n\n\t\treturn this;\n\n\t}\n\n\tunion( box ) {\n\n\t\tthis.min.min( box.min );\n\t\tthis.max.max( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\t// transform of empty box is an empty box.\n\t\tif ( this.isEmpty() ) return this;\n\n\t\t// NOTE: I am using a binary pattern to specify all 2^3 combinations below\n\t\t_points[ 0 ].set( this.min.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 000\n\t\t_points[ 1 ].set( this.min.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 001\n\t\t_points[ 2 ].set( this.min.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 010\n\t\t_points[ 3 ].set( this.min.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 011\n\t\t_points[ 4 ].set( this.max.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 100\n\t\t_points[ 5 ].set( this.max.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 101\n\t\t_points[ 6 ].set( this.max.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 110\n\t\t_points[ 7 ].set( this.max.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 111\n\n\t\tthis.setFromPoints( _points );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.min.add( offset );\n\t\tthis.max.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\tequals( box ) {\n\n\t\treturn box.min.equals( this.min ) && box.max.equals( this.max );\n\n\t}\n\n}\n\nBox3.prototype.isBox3 = true;\n\nconst _points = [\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3()\n];\n\nconst _vector$b = /*@__PURE__*/ new Vector3();\n\nconst _box$3 = /*@__PURE__*/ new Box3();\n\n// triangle centered vertices\n\nconst _v0$2 = /*@__PURE__*/ new Vector3();\nconst _v1$7 = /*@__PURE__*/ new Vector3();\nconst _v2$3 = /*@__PURE__*/ new Vector3();\n\n// triangle edge vectors\n\nconst _f0 = /*@__PURE__*/ new Vector3();\nconst _f1 = /*@__PURE__*/ new Vector3();\nconst _f2 = /*@__PURE__*/ new Vector3();\n\nconst _center = /*@__PURE__*/ new Vector3();\nconst _extents = /*@__PURE__*/ new Vector3();\nconst _triangleNormal = /*@__PURE__*/ new Vector3();\nconst _testAxis = /*@__PURE__*/ new Vector3();\n\nfunction satForAxes( axes, v0, v1, v2, extents ) {\n\n\tfor ( let i = 0, j = axes.length - 3; i <= j; i += 3 ) {\n\n\t\t_testAxis.fromArray( axes, i );\n\t\t// project the aabb onto the seperating axis\n\t\tconst r = extents.x * Math.abs( _testAxis.x ) + extents.y * Math.abs( _testAxis.y ) + extents.z * Math.abs( _testAxis.z );\n\t\t// project all 3 vertices of the triangle onto the seperating axis\n\t\tconst p0 = v0.dot( _testAxis );\n\t\tconst p1 = v1.dot( _testAxis );\n\t\tconst p2 = v2.dot( _testAxis );\n\t\t// actual test, basically see if either of the most extreme of the triangle points intersects r\n\t\tif ( Math.max( - Math.max( p0, p1, p2 ), Math.min( p0, p1, p2 ) ) > r ) {\n\n\t\t\t// points of the projected triangle are outside the projected half-length of the aabb\n\t\t\t// the axis is seperating and we can exit\n\t\t\treturn false;\n\n\t\t}\n\n\t}\n\n\treturn true;\n\n}\n\nconst _box$2 = /*@__PURE__*/ new Box3();\nconst _v1$6 = /*@__PURE__*/ new Vector3();\nconst _toFarthestPoint = /*@__PURE__*/ new Vector3();\nconst _toPoint = /*@__PURE__*/ new Vector3();\n\nclass Sphere {\n\n\tconstructor( center = new Vector3(), radius = - 1 ) {\n\n\t\tthis.center = center;\n\t\tthis.radius = radius;\n\n\t}\n\n\tset( center, radius ) {\n\n\t\tthis.center.copy( center );\n\t\tthis.radius = radius;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points, optionalCenter ) {\n\n\t\tconst center = this.center;\n\n\t\tif ( optionalCenter !== undefined ) {\n\n\t\t\tcenter.copy( optionalCenter );\n\n\t\t} else {\n\n\t\t\t_box$2.setFromPoints( points ).getCenter( center );\n\n\t\t}\n\n\t\tlet maxRadiusSq = 0;\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( points[ i ] ) );\n\n\t\t}\n\n\t\tthis.radius = Math.sqrt( maxRadiusSq );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( sphere ) {\n\n\t\tthis.center.copy( sphere.center );\n\t\tthis.radius = sphere.radius;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\treturn ( this.radius < 0 );\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.center.set( 0, 0, 0 );\n\t\tthis.radius = - 1;\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn ( point.distanceToSquared( this.center ) <= ( this.radius * this.radius ) );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn ( point.distanceTo( this.center ) - this.radius );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst radiusSum = this.radius + sphere.radius;\n\n\t\treturn sphere.center.distanceToSquared( this.center ) <= ( radiusSum * radiusSum );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsSphere( this );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\treturn Math.abs( plane.distanceToPoint( this.center ) ) <= this.radius;\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\tconst deltaLengthSq = this.center.distanceToSquared( point );\n\n\t\ttarget.copy( point );\n\n\t\tif ( deltaLengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\ttarget.sub( this.center ).normalize();\n\t\t\ttarget.multiplyScalar( this.radius ).add( this.center );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\tgetBoundingBox( target ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\t// Empty sphere produces empty bounding box\n\t\t\ttarget.makeEmpty();\n\t\t\treturn target;\n\n\t\t}\n\n\t\ttarget.set( this.center, this.center );\n\t\ttarget.expandByScalar( this.radius );\n\n\t\treturn target;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tthis.center.applyMatrix4( matrix );\n\t\tthis.radius = this.radius * matrix.getMaxScaleOnAxis();\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.center.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\t// from https://github.com/juj/MathGeoLib/blob/2940b99b99cfe575dd45103ef20f4019dee15b54/src/Geometry/Sphere.cpp#L649-L671\n\n\t\t_toPoint.subVectors( point, this.center );\n\n\t\tconst lengthSq = _toPoint.lengthSq();\n\n\t\tif ( lengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\tconst length = Math.sqrt( lengthSq );\n\t\t\tconst missingRadiusHalf = ( length - this.radius ) * 0.5;\n\n\t\t\t// Nudge this sphere towards the target point. Add half the missing distance to radius,\n\t\t\t// and the other half to position. This gives a tighter enclosure, instead of if\n\t\t\t// the whole missing distance were just added to radius.\n\n\t\t\tthis.center.add( _toPoint.multiplyScalar( missingRadiusHalf / length ) );\n\t\t\tthis.radius += missingRadiusHalf;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tunion( sphere ) {\n\n\t\t// from https://github.com/juj/MathGeoLib/blob/2940b99b99cfe575dd45103ef20f4019dee15b54/src/Geometry/Sphere.cpp#L759-L769\n\n\t\t// To enclose another sphere into this sphere, we only need to enclose two points:\n\t\t// 1) Enclose the farthest point on the other sphere into this sphere.\n\t\t// 2) Enclose the opposite point of the farthest point into this sphere.\n\n\t\t if ( this.center.equals( sphere.center ) === true ) {\n\n\t\t\t _toFarthestPoint.set( 0, 0, 1 ).multiplyScalar( sphere.radius );\n\n\n\t\t} else {\n\n\t\t\t_toFarthestPoint.subVectors( sphere.center, this.center ).normalize().multiplyScalar( sphere.radius );\n\n\t\t}\n\n\t\tthis.expandByPoint( _v1$6.copy( sphere.center ).add( _toFarthestPoint ) );\n\t\tthis.expandByPoint( _v1$6.copy( sphere.center ).sub( _toFarthestPoint ) );\n\n\t\treturn this;\n\n\t}\n\n\tequals( sphere ) {\n\n\t\treturn sphere.center.equals( this.center ) && ( sphere.radius === this.radius );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _vector$a = /*@__PURE__*/ new Vector3();\nconst _segCenter = /*@__PURE__*/ new Vector3();\nconst _segDir = /*@__PURE__*/ new Vector3();\nconst _diff = /*@__PURE__*/ new Vector3();\n\nconst _edge1 = /*@__PURE__*/ new Vector3();\nconst _edge2 = /*@__PURE__*/ new Vector3();\nconst _normal$1 = /*@__PURE__*/ new Vector3();\n\nclass Ray {\n\n\tconstructor( origin = new Vector3(), direction = new Vector3( 0, 0, - 1 ) ) {\n\n\t\tthis.origin = origin;\n\t\tthis.direction = direction;\n\n\t}\n\n\tset( origin, direction ) {\n\n\t\tthis.origin.copy( origin );\n\t\tthis.direction.copy( direction );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( ray ) {\n\n\t\tthis.origin.copy( ray.origin );\n\t\tthis.direction.copy( ray.direction );\n\n\t\treturn this;\n\n\t}\n\n\tat( t, target ) {\n\n\t\treturn target.copy( this.direction ).multiplyScalar( t ).add( this.origin );\n\n\t}\n\n\tlookAt( v ) {\n\n\t\tthis.direction.copy( v ).sub( this.origin ).normalize();\n\n\t\treturn this;\n\n\t}\n\n\trecast( t ) {\n\n\t\tthis.origin.copy( this.at( t, _vector$a ) );\n\n\t\treturn this;\n\n\t}\n\n\tclosestPointToPoint( point, target ) {\n\n\t\ttarget.subVectors( point, this.origin );\n\n\t\tconst directionDistance = target.dot( this.direction );\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn target.copy( this.origin );\n\n\t\t}\n\n\t\treturn target.copy( this.direction ).multiplyScalar( directionDistance ).add( this.origin );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn Math.sqrt( this.distanceSqToPoint( point ) );\n\n\t}\n\n\tdistanceSqToPoint( point ) {\n\n\t\tconst directionDistance = _vector$a.subVectors( point, this.origin ).dot( this.direction );\n\n\t\t// point behind the ray\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn this.origin.distanceToSquared( point );\n\n\t\t}\n\n\t\t_vector$a.copy( this.direction ).multiplyScalar( directionDistance ).add( this.origin );\n\n\t\treturn _vector$a.distanceToSquared( point );\n\n\t}\n\n\tdistanceSqToSegment( v0, v1, optionalPointOnRay, optionalPointOnSegment ) {\n\n\t\t// from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteDistRaySegment.h\n\t\t// It returns the min distance between the ray and the segment\n\t\t// defined by v0 and v1\n\t\t// It can also set two optional targets :\n\t\t// - The closest point on the ray\n\t\t// - The closest point on the segment\n\n\t\t_segCenter.copy( v0 ).add( v1 ).multiplyScalar( 0.5 );\n\t\t_segDir.copy( v1 ).sub( v0 ).normalize();\n\t\t_diff.copy( this.origin ).sub( _segCenter );\n\n\t\tconst segExtent = v0.distanceTo( v1 ) * 0.5;\n\t\tconst a01 = - this.direction.dot( _segDir );\n\t\tconst b0 = _diff.dot( this.direction );\n\t\tconst b1 = - _diff.dot( _segDir );\n\t\tconst c = _diff.lengthSq();\n\t\tconst det = Math.abs( 1 - a01 * a01 );\n\t\tlet s0, s1, sqrDist, extDet;\n\n\t\tif ( det > 0 ) {\n\n\t\t\t// The ray and segment are not parallel.\n\n\t\t\ts0 = a01 * b1 - b0;\n\t\t\ts1 = a01 * b0 - b1;\n\t\t\textDet = segExtent * det;\n\n\t\t\tif ( s0 >= 0 ) {\n\n\t\t\t\tif ( s1 >= - extDet ) {\n\n\t\t\t\t\tif ( s1 <= extDet ) {\n\n\t\t\t\t\t\t// region 0\n\t\t\t\t\t\t// Minimum at interior points of ray and segment.\n\n\t\t\t\t\t\tconst invDet = 1 / det;\n\t\t\t\t\t\ts0 *= invDet;\n\t\t\t\t\t\ts1 *= invDet;\n\t\t\t\t\t\tsqrDist = s0 * ( s0 + a01 * s1 + 2 * b0 ) + s1 * ( a01 * s0 + s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// region 1\n\n\t\t\t\t\t\ts1 = segExtent;\n\t\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 5\n\n\t\t\t\t\ts1 = - segExtent;\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( s1 <= - extDet ) {\n\n\t\t\t\t\t// region 4\n\n\t\t\t\t\ts0 = Math.max( 0, - ( - a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? - segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else if ( s1 <= extDet ) {\n\n\t\t\t\t\t// region 3\n\n\t\t\t\t\ts0 = 0;\n\t\t\t\t\ts1 = Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 2\n\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// Ray and segment are parallel.\n\n\t\t\ts1 = ( a01 > 0 ) ? - segExtent : segExtent;\n\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t}\n\n\t\tif ( optionalPointOnRay ) {\n\n\t\t\toptionalPointOnRay.copy( this.direction ).multiplyScalar( s0 ).add( this.origin );\n\n\t\t}\n\n\t\tif ( optionalPointOnSegment ) {\n\n\t\t\toptionalPointOnSegment.copy( _segDir ).multiplyScalar( s1 ).add( _segCenter );\n\n\t\t}\n\n\t\treturn sqrDist;\n\n\t}\n\n\tintersectSphere( sphere, target ) {\n\n\t\t_vector$a.subVectors( sphere.center, this.origin );\n\t\tconst tca = _vector$a.dot( this.direction );\n\t\tconst d2 = _vector$a.dot( _vector$a ) - tca * tca;\n\t\tconst radius2 = sphere.radius * sphere.radius;\n\n\t\tif ( d2 > radius2 ) return null;\n\n\t\tconst thc = Math.sqrt( radius2 - d2 );\n\n\t\t// t0 = first intersect point - entrance on front of sphere\n\t\tconst t0 = tca - thc;\n\n\t\t// t1 = second intersect point - exit point on back of sphere\n\t\tconst t1 = tca + thc;\n\n\t\t// test to see if both t0 and t1 are behind the ray - if so, return null\n\t\tif ( t0 < 0 && t1 < 0 ) return null;\n\n\t\t// test to see if t0 is behind the ray:\n\t\t// if it is, the ray is inside the sphere, so return the second exit point scaled by t1,\n\t\t// in order to always return an intersect point that is in front of the ray.\n\t\tif ( t0 < 0 ) return this.at( t1, target );\n\n\t\t// else t0 is in front of the ray, so return the first collision point scaled by t0\n\t\treturn this.at( t0, target );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn this.distanceSqToPoint( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tdistanceToPlane( plane ) {\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( plane.distanceToPoint( this.origin ) === 0 ) {\n\n\t\t\t\treturn 0;\n\n\t\t\t}\n\n\t\t\t// Null is preferable to undefined since undefined means.... it is undefined\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( this.origin.dot( plane.normal ) + plane.constant ) / denominator;\n\n\t\t// Return if the ray never intersects the plane\n\n\t\treturn t >= 0 ? t : null;\n\n\t}\n\n\tintersectPlane( plane, target ) {\n\n\t\tconst t = this.distanceToPlane( plane );\n\n\t\tif ( t === null ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn this.at( t, target );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// check if the ray lies on the plane first\n\n\t\tconst distToPoint = plane.distanceToPoint( this.origin );\n\n\t\tif ( distToPoint === 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator * distToPoint < 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\t// ray origin is behind the plane (and is pointing behind it)\n\n\t\treturn false;\n\n\t}\n\n\tintersectBox( box, target ) {\n\n\t\tlet tmin, tmax, tymin, tymax, tzmin, tzmax;\n\n\t\tconst invdirx = 1 / this.direction.x,\n\t\t\tinvdiry = 1 / this.direction.y,\n\t\t\tinvdirz = 1 / this.direction.z;\n\n\t\tconst origin = this.origin;\n\n\t\tif ( invdirx >= 0 ) {\n\n\t\t\ttmin = ( box.min.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.max.x - origin.x ) * invdirx;\n\n\t\t} else {\n\n\t\t\ttmin = ( box.max.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.min.x - origin.x ) * invdirx;\n\n\t\t}\n\n\t\tif ( invdiry >= 0 ) {\n\n\t\t\ttymin = ( box.min.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.max.y - origin.y ) * invdiry;\n\n\t\t} else {\n\n\t\t\ttymin = ( box.max.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.min.y - origin.y ) * invdiry;\n\n\t\t}\n\n\t\tif ( ( tmin > tymax ) || ( tymin > tmax ) ) return null;\n\n\t\t// These lines also handle the case where tmin or tmax is NaN\n\t\t// (result of 0 * Infinity). x !== x returns true if x is NaN\n\n\t\tif ( tymin > tmin || tmin !== tmin ) tmin = tymin;\n\n\t\tif ( tymax < tmax || tmax !== tmax ) tmax = tymax;\n\n\t\tif ( invdirz >= 0 ) {\n\n\t\t\ttzmin = ( box.min.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.max.z - origin.z ) * invdirz;\n\n\t\t} else {\n\n\t\t\ttzmin = ( box.max.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.min.z - origin.z ) * invdirz;\n\n\t\t}\n\n\t\tif ( ( tmin > tzmax ) || ( tzmin > tmax ) ) return null;\n\n\t\tif ( tzmin > tmin || tmin !== tmin ) tmin = tzmin;\n\n\t\tif ( tzmax < tmax || tmax !== tmax ) tmax = tzmax;\n\n\t\t//return point closest to the ray (positive side)\n\n\t\tif ( tmax < 0 ) return null;\n\n\t\treturn this.at( tmin >= 0 ? tmin : tmax, target );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn this.intersectBox( box, _vector$a ) !== null;\n\n\t}\n\n\tintersectTriangle( a, b, c, backfaceCulling, target ) {\n\n\t\t// Compute the offset origin, edges, and normal.\n\n\t\t// from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteIntrRay3Triangle3.h\n\n\t\t_edge1.subVectors( b, a );\n\t\t_edge2.subVectors( c, a );\n\t\t_normal$1.crossVectors( _edge1, _edge2 );\n\n\t\t// Solve Q + t*D = b1*E1 + b2*E2 (Q = kDiff, D = ray direction,\n\t\t// E1 = kEdge1, E2 = kEdge2, N = Cross(E1,E2)) by\n\t\t// |Dot(D,N)|*b1 = sign(Dot(D,N))*Dot(D,Cross(Q,E2))\n\t\t// |Dot(D,N)|*b2 = sign(Dot(D,N))*Dot(D,Cross(E1,Q))\n\t\t// |Dot(D,N)|*t = -sign(Dot(D,N))*Dot(Q,N)\n\t\tlet DdN = this.direction.dot( _normal$1 );\n\t\tlet sign;\n\n\t\tif ( DdN > 0 ) {\n\n\t\t\tif ( backfaceCulling ) return null;\n\t\t\tsign = 1;\n\n\t\t} else if ( DdN < 0 ) {\n\n\t\t\tsign = - 1;\n\t\t\tDdN = - DdN;\n\n\t\t} else {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t_diff.subVectors( this.origin, a );\n\t\tconst DdQxE2 = sign * this.direction.dot( _edge2.crossVectors( _diff, _edge2 ) );\n\n\t\t// b1 < 0, no intersection\n\t\tif ( DdQxE2 < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst DdE1xQ = sign * this.direction.dot( _edge1.cross( _diff ) );\n\n\t\t// b2 < 0, no intersection\n\t\tif ( DdE1xQ < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// b1+b2 > 1, no intersection\n\t\tif ( DdQxE2 + DdE1xQ > DdN ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Line intersects triangle, check if ray does.\n\t\tconst QdN = - sign * _diff.dot( _normal$1 );\n\n\t\t// t < 0, no intersection\n\t\tif ( QdN < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Ray intersects triangle.\n\t\treturn this.at( QdN / DdN, target );\n\n\t}\n\n\tapplyMatrix4( matrix4 ) {\n\n\t\tthis.origin.applyMatrix4( matrix4 );\n\t\tthis.direction.transformDirection( matrix4 );\n\n\t\treturn this;\n\n\t}\n\n\tequals( ray ) {\n\n\t\treturn ray.origin.equals( this.origin ) && ray.direction.equals( this.direction );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nclass Matrix4 {\n\n\tconstructor() {\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t];\n\n\t\tif ( arguments.length > 0 ) {\n\n\t\t\tconsole.error( 'THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.' );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 4 ] = n12; te[ 8 ] = n13; te[ 12 ] = n14;\n\t\tte[ 1 ] = n21; te[ 5 ] = n22; te[ 9 ] = n23; te[ 13 ] = n24;\n\t\tte[ 2 ] = n31; te[ 6 ] = n32; te[ 10 ] = n33; te[ 14 ] = n34;\n\t\tte[ 3 ] = n41; te[ 7 ] = n42; te[ 11 ] = n43; te[ 15 ] = n44;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Matrix4().fromArray( this.elements );\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ]; te[ 3 ] = me[ 3 ];\n\t\tte[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ]; te[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ];\n\t\tte[ 8 ] = me[ 8 ]; te[ 9 ] = me[ 9 ]; te[ 10 ] = me[ 10 ]; te[ 11 ] = me[ 11 ];\n\t\tte[ 12 ] = me[ 12 ]; te[ 13 ] = me[ 13 ]; te[ 14 ] = me[ 14 ]; te[ 15 ] = me[ 15 ];\n\n\t\treturn this;\n\n\t}\n\n\tcopyPosition( m ) {\n\n\t\tconst te = this.elements, me = m.elements;\n\n\t\tte[ 12 ] = me[ 12 ];\n\t\tte[ 13 ] = me[ 13 ];\n\t\tte[ 14 ] = me[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix3( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 3 ], me[ 6 ], 0,\n\t\t\tme[ 1 ], me[ 4 ], me[ 7 ], 0,\n\t\t\tme[ 2 ], me[ 5 ], me[ 8 ], 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrixColumn( this, 0 );\n\t\tyAxis.setFromMatrixColumn( this, 1 );\n\t\tzAxis.setFromMatrixColumn( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tmakeBasis( xAxis, yAxis, zAxis ) {\n\n\t\tthis.set(\n\t\t\txAxis.x, yAxis.x, zAxis.x, 0,\n\t\t\txAxis.y, yAxis.y, zAxis.y, 0,\n\t\t\txAxis.z, yAxis.z, zAxis.z, 0,\n\t\t\t0, 0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractRotation( m ) {\n\n\t\t// this method does not support reflection matrices\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tconst scaleX = 1 / _v1$5.setFromMatrixColumn( m, 0 ).length();\n\t\tconst scaleY = 1 / _v1$5.setFromMatrixColumn( m, 1 ).length();\n\t\tconst scaleZ = 1 / _v1$5.setFromMatrixColumn( m, 2 ).length();\n\n\t\tte[ 0 ] = me[ 0 ] * scaleX;\n\t\tte[ 1 ] = me[ 1 ] * scaleX;\n\t\tte[ 2 ] = me[ 2 ] * scaleX;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = me[ 4 ] * scaleY;\n\t\tte[ 5 ] = me[ 5 ] * scaleY;\n\t\tte[ 6 ] = me[ 6 ] * scaleY;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = me[ 8 ] * scaleZ;\n\t\tte[ 9 ] = me[ 9 ] * scaleZ;\n\t\tte[ 10 ] = me[ 10 ] * scaleZ;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromEuler( euler ) {\n\n\t\tif ( ! ( euler && euler.isEuler ) ) {\n\n\t\t\tconsole.error( 'THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.' );\n\n\t\t}\n\n\t\tconst te = this.elements;\n\n\t\tconst x = euler.x, y = euler.y, z = euler.z;\n\t\tconst a = Math.cos( x ), b = Math.sin( x );\n\t\tconst c = Math.cos( y ), d = Math.sin( y );\n\t\tconst e = Math.cos( z ), f = Math.sin( z );\n\n\t\tif ( euler.order === 'XYZ' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - c * f;\n\t\t\tte[ 8 ] = d;\n\n\t\t\tte[ 1 ] = af + be * d;\n\t\t\tte[ 5 ] = ae - bf * d;\n\t\t\tte[ 9 ] = - b * c;\n\n\t\t\tte[ 2 ] = bf - ae * d;\n\t\t\tte[ 6 ] = be + af * d;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YXZ' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce + df * b;\n\t\t\tte[ 4 ] = de * b - cf;\n\t\t\tte[ 8 ] = a * d;\n\n\t\t\tte[ 1 ] = a * f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b;\n\n\t\t\tte[ 2 ] = cf * b - de;\n\t\t\tte[ 6 ] = df + ce * b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZXY' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce - df * b;\n\t\t\tte[ 4 ] = - a * f;\n\t\t\tte[ 8 ] = de + cf * b;\n\n\t\t\tte[ 1 ] = cf + de * b;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = df - ce * b;\n\n\t\t\tte[ 2 ] = - a * d;\n\t\t\tte[ 6 ] = b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZYX' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = be * d - af;\n\t\t\tte[ 8 ] = ae * d + bf;\n\n\t\t\tte[ 1 ] = c * f;\n\t\t\tte[ 5 ] = bf * d + ae;\n\t\t\tte[ 9 ] = af * d - be;\n\n\t\t\tte[ 2 ] = - d;\n\t\t\tte[ 6 ] = b * c;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YZX' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = bd - ac * f;\n\t\t\tte[ 8 ] = bc * f + ad;\n\n\t\t\tte[ 1 ] = f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b * e;\n\n\t\t\tte[ 2 ] = - d * e;\n\t\t\tte[ 6 ] = ad * f + bc;\n\t\t\tte[ 10 ] = ac - bd * f;\n\n\t\t} else if ( euler.order === 'XZY' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - f;\n\t\t\tte[ 8 ] = d * e;\n\n\t\t\tte[ 1 ] = ac * f + bd;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = ad * f - bc;\n\n\t\t\tte[ 2 ] = bc * f - ad;\n\t\t\tte[ 6 ] = b * e;\n\t\t\tte[ 10 ] = bd * f + ac;\n\n\t\t}\n\n\t\t// bottom row\n\t\tte[ 3 ] = 0;\n\t\tte[ 7 ] = 0;\n\t\tte[ 11 ] = 0;\n\n\t\t// last column\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromQuaternion( q ) {\n\n\t\treturn this.compose( _zero, q, _one );\n\n\t}\n\n\tlookAt( eye, target, up ) {\n\n\t\tconst te = this.elements;\n\n\t\t_z.subVectors( eye, target );\n\n\t\tif ( _z.lengthSq() === 0 ) {\n\n\t\t\t// eye and target are in the same position\n\n\t\t\t_z.z = 1;\n\n\t\t}\n\n\t\t_z.normalize();\n\t\t_x.crossVectors( up, _z );\n\n\t\tif ( _x.lengthSq() === 0 ) {\n\n\t\t\t// up and z are parallel\n\n\t\t\tif ( Math.abs( up.z ) === 1 ) {\n\n\t\t\t\t_z.x += 0.0001;\n\n\t\t\t} else {\n\n\t\t\t\t_z.z += 0.0001;\n\n\t\t\t}\n\n\t\t\t_z.normalize();\n\t\t\t_x.crossVectors( up, _z );\n\n\t\t}\n\n\t\t_x.normalize();\n\t\t_y.crossVectors( _z, _x );\n\n\t\tte[ 0 ] = _x.x; te[ 4 ] = _y.x; te[ 8 ] = _z.x;\n\t\tte[ 1 ] = _x.y; te[ 5 ] = _y.y; te[ 9 ] = _z.y;\n\t\tte[ 2 ] = _x.z; te[ 6 ] = _y.z; te[ 10 ] = _z.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m, n ) {\n\n\t\tif ( n !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.' );\n\t\t\treturn this.multiplyMatrices( m, n );\n\n\t\t}\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 4 ], a13 = ae[ 8 ], a14 = ae[ 12 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 5 ], a23 = ae[ 9 ], a24 = ae[ 13 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 6 ], a33 = ae[ 10 ], a34 = ae[ 14 ];\n\t\tconst a41 = ae[ 3 ], a42 = ae[ 7 ], a43 = ae[ 11 ], a44 = ae[ 15 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 4 ], b13 = be[ 8 ], b14 = be[ 12 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 5 ], b23 = be[ 9 ], b24 = be[ 13 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 6 ], b33 = be[ 10 ], b34 = be[ 14 ];\n\t\tconst b41 = be[ 3 ], b42 = be[ 7 ], b43 = be[ 11 ], b44 = be[ 15 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n\t\tte[ 4 ] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n\t\tte[ 8 ] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n\t\tte[ 12 ] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n\t\tte[ 5 ] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n\t\tte[ 9 ] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n\t\tte[ 13 ] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n\t\tte[ 6 ] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n\t\tte[ 10 ] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n\t\tte[ 14 ] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n\n\t\tte[ 3 ] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n\t\tte[ 7 ] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n\t\tte[ 11 ] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n\t\tte[ 15 ] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 4 ] *= s; te[ 8 ] *= s; te[ 12 ] *= s;\n\t\tte[ 1 ] *= s; te[ 5 ] *= s; te[ 9 ] *= s; te[ 13 ] *= s;\n\t\tte[ 2 ] *= s; te[ 6 ] *= s; te[ 10 ] *= s; te[ 14 ] *= s;\n\t\tte[ 3 ] *= s; te[ 7 ] *= s; te[ 11 ] *= s; te[ 15 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst n11 = te[ 0 ], n12 = te[ 4 ], n13 = te[ 8 ], n14 = te[ 12 ];\n\t\tconst n21 = te[ 1 ], n22 = te[ 5 ], n23 = te[ 9 ], n24 = te[ 13 ];\n\t\tconst n31 = te[ 2 ], n32 = te[ 6 ], n33 = te[ 10 ], n34 = te[ 14 ];\n\t\tconst n41 = te[ 3 ], n42 = te[ 7 ], n43 = te[ 11 ], n44 = te[ 15 ];\n\n\t\t//TODO: make this more efficient\n\t\t//( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm )\n\n\t\treturn (\n\t\t\tn41 * (\n\t\t\t\t+ n14 * n23 * n32\n\t\t\t\t - n13 * n24 * n32\n\t\t\t\t - n14 * n22 * n33\n\t\t\t\t + n12 * n24 * n33\n\t\t\t\t + n13 * n22 * n34\n\t\t\t\t - n12 * n23 * n34\n\t\t\t) +\n\t\t\tn42 * (\n\t\t\t\t+ n11 * n23 * n34\n\t\t\t\t - n11 * n24 * n33\n\t\t\t\t + n14 * n21 * n33\n\t\t\t\t - n13 * n21 * n34\n\t\t\t\t + n13 * n24 * n31\n\t\t\t\t - n14 * n23 * n31\n\t\t\t) +\n\t\t\tn43 * (\n\t\t\t\t+ n11 * n24 * n32\n\t\t\t\t - n11 * n22 * n34\n\t\t\t\t - n14 * n21 * n32\n\t\t\t\t + n12 * n21 * n34\n\t\t\t\t + n14 * n22 * n31\n\t\t\t\t - n12 * n24 * n31\n\t\t\t) +\n\t\t\tn44 * (\n\t\t\t\t- n13 * n22 * n31\n\t\t\t\t - n11 * n23 * n32\n\t\t\t\t + n11 * n22 * n33\n\t\t\t\t + n13 * n21 * n32\n\t\t\t\t - n12 * n21 * n33\n\t\t\t\t + n12 * n23 * n31\n\t\t\t)\n\n\t\t);\n\n\t}\n\n\ttranspose() {\n\n\t\tconst te = this.elements;\n\t\tlet tmp;\n\n\t\ttmp = te[ 1 ]; te[ 1 ] = te[ 4 ]; te[ 4 ] = tmp;\n\t\ttmp = te[ 2 ]; te[ 2 ] = te[ 8 ]; te[ 8 ] = tmp;\n\t\ttmp = te[ 6 ]; te[ 6 ] = te[ 9 ]; te[ 9 ] = tmp;\n\n\t\ttmp = te[ 3 ]; te[ 3 ] = te[ 12 ]; te[ 12 ] = tmp;\n\t\ttmp = te[ 7 ]; te[ 7 ] = te[ 13 ]; te[ 13 ] = tmp;\n\t\ttmp = te[ 11 ]; te[ 11 ] = te[ 14 ]; te[ 14 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tsetPosition( x, y, z ) {\n\n\t\tconst te = this.elements;\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\tte[ 12 ] = x.x;\n\t\t\tte[ 13 ] = x.y;\n\t\t\tte[ 14 ] = x.z;\n\n\t\t} else {\n\n\t\t\tte[ 12 ] = x;\n\t\t\tte[ 13 ] = y;\n\t\t\tte[ 14 ] = z;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tinvert() {\n\n\t\t// based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ], n41 = te[ 3 ],\n\t\t\tn12 = te[ 4 ], n22 = te[ 5 ], n32 = te[ 6 ], n42 = te[ 7 ],\n\t\t\tn13 = te[ 8 ], n23 = te[ 9 ], n33 = te[ 10 ], n43 = te[ 11 ],\n\t\t\tn14 = te[ 12 ], n24 = te[ 13 ], n34 = te[ 14 ], n44 = te[ 15 ],\n\n\t\t\tt11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44,\n\t\t\tt12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44,\n\t\t\tt13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44,\n\t\t\tt14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;\n\n\t\tconst det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44 ) * detInv;\n\t\tte[ 2 ] = ( n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44 ) * detInv;\n\t\tte[ 3 ] = ( n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43 ) * detInv;\n\n\t\tte[ 4 ] = t12 * detInv;\n\t\tte[ 5 ] = ( n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44 ) * detInv;\n\t\tte[ 6 ] = ( n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44 ) * detInv;\n\t\tte[ 7 ] = ( n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43 ) * detInv;\n\n\t\tte[ 8 ] = t13 * detInv;\n\t\tte[ 9 ] = ( n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44 ) * detInv;\n\t\tte[ 10 ] = ( n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44 ) * detInv;\n\t\tte[ 11 ] = ( n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43 ) * detInv;\n\n\t\tte[ 12 ] = t14 * detInv;\n\t\tte[ 13 ] = ( n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34 ) * detInv;\n\t\tte[ 14 ] = ( n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34 ) * detInv;\n\t\tte[ 15 ] = ( n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\tscale( v ) {\n\n\t\tconst te = this.elements;\n\t\tconst x = v.x, y = v.y, z = v.z;\n\n\t\tte[ 0 ] *= x; te[ 4 ] *= y; te[ 8 ] *= z;\n\t\tte[ 1 ] *= x; te[ 5 ] *= y; te[ 9 ] *= z;\n\t\tte[ 2 ] *= x; te[ 6 ] *= y; te[ 10 ] *= z;\n\t\tte[ 3 ] *= x; te[ 7 ] *= y; te[ 11 ] *= z;\n\n\t\treturn this;\n\n\t}\n\n\tgetMaxScaleOnAxis() {\n\n\t\tconst te = this.elements;\n\n\t\tconst scaleXSq = te[ 0 ] * te[ 0 ] + te[ 1 ] * te[ 1 ] + te[ 2 ] * te[ 2 ];\n\t\tconst scaleYSq = te[ 4 ] * te[ 4 ] + te[ 5 ] * te[ 5 ] + te[ 6 ] * te[ 6 ];\n\t\tconst scaleZSq = te[ 8 ] * te[ 8 ] + te[ 9 ] * te[ 9 ] + te[ 10 ] * te[ 10 ];\n\n\t\treturn Math.sqrt( Math.max( scaleXSq, scaleYSq, scaleZSq ) );\n\n\t}\n\n\tmakeTranslation( x, y, z ) {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, x,\n\t\t\t0, 1, 0, y,\n\t\t\t0, 0, 1, z,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationX( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, c, - s, 0,\n\t\t\t0, s, c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationY( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t c, 0, s, 0,\n\t\t\t 0, 1, 0, 0,\n\t\t\t- s, 0, c, 0,\n\t\t\t 0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationZ( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\tc, - s, 0, 0,\n\t\t\ts, c, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationAxis( axis, angle ) {\n\n\t\t// Based on http://www.gamedev.net/reference/articles/article1199.asp\n\n\t\tconst c = Math.cos( angle );\n\t\tconst s = Math.sin( angle );\n\t\tconst t = 1 - c;\n\t\tconst x = axis.x, y = axis.y, z = axis.z;\n\t\tconst tx = t * x, ty = t * y;\n\n\t\tthis.set(\n\n\t\t\ttx * x + c, tx * y - s * z, tx * z + s * y, 0,\n\t\t\ttx * y + s * z, ty * y + c, ty * z - s * x, 0,\n\t\t\ttx * z - s * y, ty * z + s * x, t * z * z + c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeScale( x, y, z ) {\n\n\t\tthis.set(\n\n\t\t\tx, 0, 0, 0,\n\t\t\t0, y, 0, 0,\n\t\t\t0, 0, z, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeShear( xy, xz, yx, yz, zx, zy ) {\n\n\t\tthis.set(\n\n\t\t\t1, yx, zx, 0,\n\t\t\txy, 1, zy, 0,\n\t\t\txz, yz, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = quaternion._x, y = quaternion._y, z = quaternion._z, w = quaternion._w;\n\t\tconst x2 = x + x,\ty2 = y + y, z2 = z + z;\n\t\tconst xx = x * x2, xy = x * y2, xz = x * z2;\n\t\tconst yy = y * y2, yz = y * z2, zz = z * z2;\n\t\tconst wx = w * x2, wy = w * y2, wz = w * z2;\n\n\t\tconst sx = scale.x, sy = scale.y, sz = scale.z;\n\n\t\tte[ 0 ] = ( 1 - ( yy + zz ) ) * sx;\n\t\tte[ 1 ] = ( xy + wz ) * sx;\n\t\tte[ 2 ] = ( xz - wy ) * sx;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = ( xy - wz ) * sy;\n\t\tte[ 5 ] = ( 1 - ( xx + zz ) ) * sy;\n\t\tte[ 6 ] = ( yz + wx ) * sy;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = ( xz + wy ) * sz;\n\t\tte[ 9 ] = ( yz - wx ) * sz;\n\t\tte[ 10 ] = ( 1 - ( xx + yy ) ) * sz;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = position.x;\n\t\tte[ 13 ] = position.y;\n\t\tte[ 14 ] = position.z;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tdecompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tlet sx = _v1$5.set( te[ 0 ], te[ 1 ], te[ 2 ] ).length();\n\t\tconst sy = _v1$5.set( te[ 4 ], te[ 5 ], te[ 6 ] ).length();\n\t\tconst sz = _v1$5.set( te[ 8 ], te[ 9 ], te[ 10 ] ).length();\n\n\t\t// if determine is negative, we need to invert one scale\n\t\tconst det = this.determinant();\n\t\tif ( det < 0 ) sx = - sx;\n\n\t\tposition.x = te[ 12 ];\n\t\tposition.y = te[ 13 ];\n\t\tposition.z = te[ 14 ];\n\n\t\t// scale the rotation part\n\t\t_m1$2.copy( this );\n\n\t\tconst invSX = 1 / sx;\n\t\tconst invSY = 1 / sy;\n\t\tconst invSZ = 1 / sz;\n\n\t\t_m1$2.elements[ 0 ] *= invSX;\n\t\t_m1$2.elements[ 1 ] *= invSX;\n\t\t_m1$2.elements[ 2 ] *= invSX;\n\n\t\t_m1$2.elements[ 4 ] *= invSY;\n\t\t_m1$2.elements[ 5 ] *= invSY;\n\t\t_m1$2.elements[ 6 ] *= invSY;\n\n\t\t_m1$2.elements[ 8 ] *= invSZ;\n\t\t_m1$2.elements[ 9 ] *= invSZ;\n\t\t_m1$2.elements[ 10 ] *= invSZ;\n\n\t\tquaternion.setFromRotationMatrix( _m1$2 );\n\n\t\tscale.x = sx;\n\t\tscale.y = sy;\n\t\tscale.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tmakePerspective( left, right, top, bottom, near, far ) {\n\n\t\tif ( far === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.' );\n\n\t\t}\n\n\t\tconst te = this.elements;\n\t\tconst x = 2 * near / ( right - left );\n\t\tconst y = 2 * near / ( top - bottom );\n\n\t\tconst a = ( right + left ) / ( right - left );\n\t\tconst b = ( top + bottom ) / ( top - bottom );\n\t\tconst c = - ( far + near ) / ( far - near );\n\t\tconst d = - 2 * far * near / ( far - near );\n\n\t\tte[ 0 ] = x;\tte[ 4 ] = 0;\tte[ 8 ] = a;\tte[ 12 ] = 0;\n\t\tte[ 1 ] = 0;\tte[ 5 ] = y;\tte[ 9 ] = b;\tte[ 13 ] = 0;\n\t\tte[ 2 ] = 0;\tte[ 6 ] = 0;\tte[ 10 ] = c;\tte[ 14 ] = d;\n\t\tte[ 3 ] = 0;\tte[ 7 ] = 0;\tte[ 11 ] = - 1;\tte[ 15 ] = 0;\n\n\t\treturn this;\n\n\t}\n\n\tmakeOrthographic( left, right, top, bottom, near, far ) {\n\n\t\tconst te = this.elements;\n\t\tconst w = 1.0 / ( right - left );\n\t\tconst h = 1.0 / ( top - bottom );\n\t\tconst p = 1.0 / ( far - near );\n\n\t\tconst x = ( right + left ) * w;\n\t\tconst y = ( top + bottom ) * h;\n\t\tconst z = ( far + near ) * p;\n\n\t\tte[ 0 ] = 2 * w;\tte[ 4 ] = 0;\tte[ 8 ] = 0;\tte[ 12 ] = - x;\n\t\tte[ 1 ] = 0;\tte[ 5 ] = 2 * h;\tte[ 9 ] = 0;\tte[ 13 ] = - y;\n\t\tte[ 2 ] = 0;\tte[ 6 ] = 0;\tte[ 10 ] = - 2 * p;\tte[ 14 ] = - z;\n\t\tte[ 3 ] = 0;\tte[ 7 ] = 0;\tte[ 11 ] = 0;\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\t\tarray[ offset + 9 ] = te[ 9 ];\n\t\tarray[ offset + 10 ] = te[ 10 ];\n\t\tarray[ offset + 11 ] = te[ 11 ];\n\n\t\tarray[ offset + 12 ] = te[ 12 ];\n\t\tarray[ offset + 13 ] = te[ 13 ];\n\t\tarray[ offset + 14 ] = te[ 14 ];\n\t\tarray[ offset + 15 ] = te[ 15 ];\n\n\t\treturn array;\n\n\t}\n\n}\n\nMatrix4.prototype.isMatrix4 = true;\n\nconst _v1$5 = /*@__PURE__*/ new Vector3();\nconst _m1$2 = /*@__PURE__*/ new Matrix4();\nconst _zero = /*@__PURE__*/ new Vector3( 0, 0, 0 );\nconst _one = /*@__PURE__*/ new Vector3( 1, 1, 1 );\nconst _x = /*@__PURE__*/ new Vector3();\nconst _y = /*@__PURE__*/ new Vector3();\nconst _z = /*@__PURE__*/ new Vector3();\n\nconst _matrix$1 = /*@__PURE__*/ new Matrix4();\nconst _quaternion$3 = /*@__PURE__*/ new Quaternion();\n\nclass Euler {\n\n\tconstructor( x = 0, y = 0, z = 0, order = Euler.DefaultOrder ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget order() {\n\n\t\treturn this._order;\n\n\t}\n\n\tset order( value ) {\n\n\t\tthis._order = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, order = this._order ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._order );\n\n\t}\n\n\tcopy( euler ) {\n\n\t\tthis._x = euler._x;\n\t\tthis._y = euler._y;\n\t\tthis._z = euler._z;\n\t\tthis._order = euler._order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m, order = this._order, update = true ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements;\n\t\tconst m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ];\n\t\tconst m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ];\n\t\tconst m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\n\t\t\t\tthis._y = Math.asin( clamp( m13, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m13 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\n\t\t\t\tthis._x = Math.asin( - clamp( m23, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m23 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\n\t\t\t\tthis._x = Math.asin( clamp( m32, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m32 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = 0;\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\n\t\t\t\tthis._y = Math.asin( - clamp( m31, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m31 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\n\t\t\t\tthis._z = Math.asin( clamp( m21, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m21 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m22 );\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\n\t\t\t\tthis._z = Math.asin( - clamp( m12, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m12 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._y = Math.atan2( m13, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._y = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tconsole.warn( 'THREE.Euler: .setFromRotationMatrix() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tthis._order = order;\n\n\t\tif ( update === true ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromQuaternion( q, order, update ) {\n\n\t\t_matrix$1.makeRotationFromQuaternion( q );\n\n\t\treturn this.setFromRotationMatrix( _matrix$1, order, update );\n\n\t}\n\n\tsetFromVector3( v, order = this._order ) {\n\n\t\treturn this.set( v.x, v.y, v.z, order );\n\n\t}\n\n\treorder( newOrder ) {\n\n\t\t// WARNING: this discards revolution information -bhouston\n\n\t\t_quaternion$3.setFromEuler( this );\n\n\t\treturn this.setFromQuaternion( _quaternion$3, newOrder );\n\n\t}\n\n\tequals( euler ) {\n\n\t\treturn ( euler._x === this._x ) && ( euler._y === this._y ) && ( euler._z === this._z ) && ( euler._order === this._order );\n\n\t}\n\n\tfromArray( array ) {\n\n\t\tthis._x = array[ 0 ];\n\t\tthis._y = array[ 1 ];\n\t\tthis._z = array[ 2 ];\n\t\tif ( array[ 3 ] !== undefined ) this._order = array[ 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._order;\n\n\t\treturn array;\n\n\t}\n\n\ttoVector3( optionalResult ) {\n\n\t\tif ( optionalResult ) {\n\n\t\t\treturn optionalResult.set( this._x, this._y, this._z );\n\n\t\t} else {\n\n\t\t\treturn new Vector3( this._x, this._y, this._z );\n\n\t\t}\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n}\n\nEuler.prototype.isEuler = true;\n\nEuler.DefaultOrder = 'XYZ';\nEuler.RotationOrders = [ 'XYZ', 'YZX', 'ZXY', 'XZY', 'YXZ', 'ZYX' ];\n\nclass Layers {\n\n\tconstructor() {\n\n\t\tthis.mask = 1 | 0;\n\n\t}\n\n\tset( channel ) {\n\n\t\tthis.mask = ( 1 << channel | 0 ) >>> 0;\n\n\t}\n\n\tenable( channel ) {\n\n\t\tthis.mask |= 1 << channel | 0;\n\n\t}\n\n\tenableAll() {\n\n\t\tthis.mask = 0xffffffff | 0;\n\n\t}\n\n\ttoggle( channel ) {\n\n\t\tthis.mask ^= 1 << channel | 0;\n\n\t}\n\n\tdisable( channel ) {\n\n\t\tthis.mask &= ~ ( 1 << channel | 0 );\n\n\t}\n\n\tdisableAll() {\n\n\t\tthis.mask = 0;\n\n\t}\n\n\ttest( layers ) {\n\n\t\treturn ( this.mask & layers.mask ) !== 0;\n\n\t}\n\n\tisEnabled( channel ) {\n\n\t\treturn ( this.mask & ( 1 << channel | 0 ) ) !== 0;\n\n\t}\n\n}\n\nlet _object3DId = 0;\n\nconst _v1$4 = /*@__PURE__*/ new Vector3();\nconst _q1 = /*@__PURE__*/ new Quaternion();\nconst _m1$1 = /*@__PURE__*/ new Matrix4();\nconst _target = /*@__PURE__*/ new Vector3();\n\nconst _position$3 = /*@__PURE__*/ new Vector3();\nconst _scale$2 = /*@__PURE__*/ new Vector3();\nconst _quaternion$2 = /*@__PURE__*/ new Quaternion();\n\nconst _xAxis = /*@__PURE__*/ new Vector3( 1, 0, 0 );\nconst _yAxis = /*@__PURE__*/ new Vector3( 0, 1, 0 );\nconst _zAxis = /*@__PURE__*/ new Vector3( 0, 0, 1 );\n\nconst _addedEvent = { type: 'added' };\nconst _removedEvent = { type: 'removed' };\n\nclass Object3D extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tObject.defineProperty( this, 'id', { value: _object3DId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'Object3D';\n\n\t\tthis.parent = null;\n\t\tthis.children = [];\n\n\t\tthis.up = Object3D.DefaultUp.clone();\n\n\t\tconst position = new Vector3();\n\t\tconst rotation = new Euler();\n\t\tconst quaternion = new Quaternion();\n\t\tconst scale = new Vector3( 1, 1, 1 );\n\n\t\tfunction onRotationChange() {\n\n\t\t\tquaternion.setFromEuler( rotation, false );\n\n\t\t}\n\n\t\tfunction onQuaternionChange() {\n\n\t\t\trotation.setFromQuaternion( quaternion, undefined, false );\n\n\t\t}\n\n\t\trotation._onChange( onRotationChange );\n\t\tquaternion._onChange( onQuaternionChange );\n\n\t\tObject.defineProperties( this, {\n\t\t\tposition: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: position\n\t\t\t},\n\t\t\trotation: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: rotation\n\t\t\t},\n\t\t\tquaternion: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: quaternion\n\t\t\t},\n\t\t\tscale: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: scale\n\t\t\t},\n\t\t\tmodelViewMatrix: {\n\t\t\t\tvalue: new Matrix4()\n\t\t\t},\n\t\t\tnormalMatrix: {\n\t\t\t\tvalue: new Matrix3()\n\t\t\t}\n\t\t} );\n\n\t\tthis.matrix = new Matrix4();\n\t\tthis.matrixWorld = new Matrix4();\n\n\t\tthis.matrixAutoUpdate = Object3D.DefaultMatrixAutoUpdate;\n\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\tthis.layers = new Layers();\n\t\tthis.visible = true;\n\n\t\tthis.castShadow = false;\n\t\tthis.receiveShadow = false;\n\n\t\tthis.frustumCulled = true;\n\t\tthis.renderOrder = 0;\n\n\t\tthis.animations = [];\n\n\t\tthis.userData = {};\n\n\t}\n\n\tonBeforeRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tonAfterRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tthis.matrix.premultiply( matrix );\n\n\t\tthis.matrix.decompose( this.position, this.quaternion, this.scale );\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\tthis.quaternion.premultiply( q );\n\n\t\treturn this;\n\n\t}\n\n\tsetRotationFromAxisAngle( axis, angle ) {\n\n\t\t// assumes axis is normalized\n\n\t\tthis.quaternion.setFromAxisAngle( axis, angle );\n\n\t}\n\n\tsetRotationFromEuler( euler ) {\n\n\t\tthis.quaternion.setFromEuler( euler, true );\n\n\t}\n\n\tsetRotationFromMatrix( m ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tthis.quaternion.setFromRotationMatrix( m );\n\n\t}\n\n\tsetRotationFromQuaternion( q ) {\n\n\t\t// assumes q is normalized\n\n\t\tthis.quaternion.copy( q );\n\n\t}\n\n\trotateOnAxis( axis, angle ) {\n\n\t\t// rotate object on axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.multiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateOnWorldAxis( axis, angle ) {\n\n\t\t// rotate object on axis in world space\n\t\t// axis is assumed to be normalized\n\t\t// method assumes no rotated parent\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.premultiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateX( angle ) {\n\n\t\treturn this.rotateOnAxis( _xAxis, angle );\n\n\t}\n\n\trotateY( angle ) {\n\n\t\treturn this.rotateOnAxis( _yAxis, angle );\n\n\t}\n\n\trotateZ( angle ) {\n\n\t\treturn this.rotateOnAxis( _zAxis, angle );\n\n\t}\n\n\ttranslateOnAxis( axis, distance ) {\n\n\t\t// translate object by distance along axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_v1$4.copy( axis ).applyQuaternion( this.quaternion );\n\n\t\tthis.position.add( _v1$4.multiplyScalar( distance ) );\n\n\t\treturn this;\n\n\t}\n\n\ttranslateX( distance ) {\n\n\t\treturn this.translateOnAxis( _xAxis, distance );\n\n\t}\n\n\ttranslateY( distance ) {\n\n\t\treturn this.translateOnAxis( _yAxis, distance );\n\n\t}\n\n\ttranslateZ( distance ) {\n\n\t\treturn this.translateOnAxis( _zAxis, distance );\n\n\t}\n\n\tlocalToWorld( vector ) {\n\n\t\treturn vector.applyMatrix4( this.matrixWorld );\n\n\t}\n\n\tworldToLocal( vector ) {\n\n\t\treturn vector.applyMatrix4( _m1$1.copy( this.matrixWorld ).invert() );\n\n\t}\n\n\tlookAt( x, y, z ) {\n\n\t\t// This method does not support objects having non-uniformly-scaled parent(s)\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\t_target.copy( x );\n\n\t\t} else {\n\n\t\t\t_target.set( x, y, z );\n\n\t\t}\n\n\t\tconst parent = this.parent;\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_position$3.setFromMatrixPosition( this.matrixWorld );\n\n\t\tif ( this.isCamera || this.isLight ) {\n\n\t\t\t_m1$1.lookAt( _position$3, _target, this.up );\n\n\t\t} else {\n\n\t\t\t_m1$1.lookAt( _target, _position$3, this.up );\n\n\t\t}\n\n\t\tthis.quaternion.setFromRotationMatrix( _m1$1 );\n\n\t\tif ( parent ) {\n\n\t\t\t_m1$1.extractRotation( parent.matrixWorld );\n\t\t\t_q1.setFromRotationMatrix( _m1$1 );\n\t\t\tthis.quaternion.premultiply( _q1.invert() );\n\n\t\t}\n\n\t}\n\n\tadd( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.add( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object === this ) {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object can\\'t be added as a child of itself.', object );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object && object.isObject3D ) {\n\n\t\t\tif ( object.parent !== null ) {\n\n\t\t\t\tobject.parent.remove( object );\n\n\t\t\t}\n\n\t\t\tobject.parent = this;\n\t\t\tthis.children.push( object );\n\n\t\t\tobject.dispatchEvent( _addedEvent );\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object not an instance of THREE.Object3D.', object );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremove( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.remove( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst index = this.children.indexOf( object );\n\n\t\tif ( index !== - 1 ) {\n\n\t\t\tobject.parent = null;\n\t\t\tthis.children.splice( index, 1 );\n\n\t\t\tobject.dispatchEvent( _removedEvent );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremoveFromParent() {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tparent.remove( this );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclear() {\n\n\t\tfor ( let i = 0; i < this.children.length; i ++ ) {\n\n\t\t\tconst object = this.children[ i ];\n\n\t\t\tobject.parent = null;\n\n\t\t\tobject.dispatchEvent( _removedEvent );\n\n\t\t}\n\n\t\tthis.children.length = 0;\n\n\t\treturn this;\n\n\n\t}\n\n\tattach( object ) {\n\n\t\t// adds object as a child of this, while maintaining the object's world transform\n\n\t\t// Note: This method does not support scene graphs having non-uniformly-scaled nodes(s)\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_m1$1.copy( this.matrixWorld ).invert();\n\n\t\tif ( object.parent !== null ) {\n\n\t\t\tobject.parent.updateWorldMatrix( true, false );\n\n\t\t\t_m1$1.multiply( object.parent.matrixWorld );\n\n\t\t}\n\n\t\tobject.applyMatrix4( _m1$1 );\n\n\t\tthis.add( object );\n\n\t\tobject.updateWorldMatrix( false, true );\n\n\t\treturn this;\n\n\t}\n\n\tgetObjectById( id ) {\n\n\t\treturn this.getObjectByProperty( 'id', id );\n\n\t}\n\n\tgetObjectByName( name ) {\n\n\t\treturn this.getObjectByProperty( 'name', name );\n\n\t}\n\n\tgetObjectByProperty( name, value ) {\n\n\t\tif ( this[ name ] === value ) return this;\n\n\t\tfor ( let i = 0, l = this.children.length; i < l; i ++ ) {\n\n\t\t\tconst child = this.children[ i ];\n\t\t\tconst object = child.getObjectByProperty( name, value );\n\n\t\t\tif ( object !== undefined ) {\n\n\t\t\t\treturn object;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn undefined;\n\n\t}\n\n\tgetWorldPosition( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn target.setFromMatrixPosition( this.matrixWorld );\n\n\t}\n\n\tgetWorldQuaternion( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position$3, target, _scale$2 );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldScale( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position$3, _quaternion$2, target );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tconst e = this.matrixWorld.elements;\n\n\t\treturn target.set( e[ 8 ], e[ 9 ], e[ 10 ] ).normalize();\n\n\t}\n\n\traycast( /* raycaster, intersects */ ) {}\n\n\ttraverse( callback ) {\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverse( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseVisible( callback ) {\n\n\t\tif ( this.visible === false ) return;\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverseVisible( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseAncestors( callback ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tcallback( parent );\n\n\t\t\tparent.traverseAncestors( callback );\n\n\t\t}\n\n\t}\n\n\tupdateMatrix() {\n\n\t\tthis.matrix.compose( this.position, this.quaternion, this.scale );\n\n\t\tthis.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.matrixWorldNeedsUpdate || force ) {\n\n\t\t\tif ( this.parent === null ) {\n\n\t\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t\t} else {\n\n\t\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t\t}\n\n\t\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\t\tforce = true;\n\n\t\t}\n\n\t\t// update children\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].updateMatrixWorld( force );\n\n\t\t}\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( updateParents === true && parent !== null ) {\n\n\t\t\tparent.updateWorldMatrix( true, false );\n\n\t\t}\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.parent === null ) {\n\n\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t} else {\n\n\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t}\n\n\t\t// update children\n\n\t\tif ( updateChildren === true ) {\n\n\t\t\tconst children = this.children;\n\n\t\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\t\tchildren[ i ].updateWorldMatrix( false, true );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\t// meta is a string when called from JSON.stringify\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tconst output = {};\n\n\t\t// meta is a hash used to collect geometries, materials.\n\t\t// not providing it implies that this is the root object\n\t\t// being serialized.\n\t\tif ( isRootObject ) {\n\n\t\t\t// initialize meta obj\n\t\t\tmeta = {\n\t\t\t\tgeometries: {},\n\t\t\t\tmaterials: {},\n\t\t\t\ttextures: {},\n\t\t\t\timages: {},\n\t\t\t\tshapes: {},\n\t\t\t\tskeletons: {},\n\t\t\t\tanimations: {}\n\t\t\t};\n\n\t\t\toutput.metadata = {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'Object',\n\t\t\t\tgenerator: 'Object3D.toJSON'\n\t\t\t};\n\n\t\t}\n\n\t\t// standard Object3D serialization\n\n\t\tconst object = {};\n\n\t\tobject.uuid = this.uuid;\n\t\tobject.type = this.type;\n\n\t\tif ( this.name !== '' ) object.name = this.name;\n\t\tif ( this.castShadow === true ) object.castShadow = true;\n\t\tif ( this.receiveShadow === true ) object.receiveShadow = true;\n\t\tif ( this.visible === false ) object.visible = false;\n\t\tif ( this.frustumCulled === false ) object.frustumCulled = false;\n\t\tif ( this.renderOrder !== 0 ) object.renderOrder = this.renderOrder;\n\t\tif ( JSON.stringify( this.userData ) !== '{}' ) object.userData = this.userData;\n\n\t\tobject.layers = this.layers.mask;\n\t\tobject.matrix = this.matrix.toArray();\n\n\t\tif ( this.matrixAutoUpdate === false ) object.matrixAutoUpdate = false;\n\n\t\t// object specific properties\n\n\t\tif ( this.isInstancedMesh ) {\n\n\t\t\tobject.type = 'InstancedMesh';\n\t\t\tobject.count = this.count;\n\t\t\tobject.instanceMatrix = this.instanceMatrix.toJSON();\n\t\t\tif ( this.instanceColor !== null ) object.instanceColor = this.instanceColor.toJSON();\n\n\t\t}\n\n\t\t//\n\n\t\tfunction serialize( library, element ) {\n\n\t\t\tif ( library[ element.uuid ] === undefined ) {\n\n\t\t\t\tlibrary[ element.uuid ] = element.toJSON( meta );\n\n\t\t\t}\n\n\t\t\treturn element.uuid;\n\n\t\t}\n\n\t\tif ( this.isScene ) {\n\n\t\t\tif ( this.background ) {\n\n\t\t\t\tif ( this.background.isColor ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON();\n\n\t\t\t\t} else if ( this.background.isTexture ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON( meta ).uuid;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.environment && this.environment.isTexture ) {\n\n\t\t\t\tobject.environment = this.environment.toJSON( meta ).uuid;\n\n\t\t\t}\n\n\t\t} else if ( this.isMesh || this.isLine || this.isPoints ) {\n\n\t\t\tobject.geometry = serialize( meta.geometries, this.geometry );\n\n\t\t\tconst parameters = this.geometry.parameters;\n\n\t\t\tif ( parameters !== undefined && parameters.shapes !== undefined ) {\n\n\t\t\t\tconst shapes = parameters.shapes;\n\n\t\t\t\tif ( Array.isArray( shapes ) ) {\n\n\t\t\t\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\t\t\t\tconst shape = shapes[ i ];\n\n\t\t\t\t\t\tserialize( meta.shapes, shape );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tserialize( meta.shapes, shapes );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.isSkinnedMesh ) {\n\n\t\t\tobject.bindMode = this.bindMode;\n\t\t\tobject.bindMatrix = this.bindMatrix.toArray();\n\n\t\t\tif ( this.skeleton !== undefined ) {\n\n\t\t\t\tserialize( meta.skeletons, this.skeleton );\n\n\t\t\t\tobject.skeleton = this.skeleton.uuid;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.material !== undefined ) {\n\n\t\t\tif ( Array.isArray( this.material ) ) {\n\n\t\t\t\tconst uuids = [];\n\n\t\t\t\tfor ( let i = 0, l = this.material.length; i < l; i ++ ) {\n\n\t\t\t\t\tuuids.push( serialize( meta.materials, this.material[ i ] ) );\n\n\t\t\t\t}\n\n\t\t\t\tobject.material = uuids;\n\n\t\t\t} else {\n\n\t\t\t\tobject.material = serialize( meta.materials, this.material );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.children.length > 0 ) {\n\n\t\t\tobject.children = [];\n\n\t\t\tfor ( let i = 0; i < this.children.length; i ++ ) {\n\n\t\t\t\tobject.children.push( this.children[ i ].toJSON( meta ).object );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.animations.length > 0 ) {\n\n\t\t\tobject.animations = [];\n\n\t\t\tfor ( let i = 0; i < this.animations.length; i ++ ) {\n\n\t\t\t\tconst animation = this.animations[ i ];\n\n\t\t\t\tobject.animations.push( serialize( meta.animations, animation ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( isRootObject ) {\n\n\t\t\tconst geometries = extractFromCache( meta.geometries );\n\t\t\tconst materials = extractFromCache( meta.materials );\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\t\t\tconst shapes = extractFromCache( meta.shapes );\n\t\t\tconst skeletons = extractFromCache( meta.skeletons );\n\t\t\tconst animations = extractFromCache( meta.animations );\n\n\t\t\tif ( geometries.length > 0 ) output.geometries = geometries;\n\t\t\tif ( materials.length > 0 ) output.materials = materials;\n\t\t\tif ( textures.length > 0 ) output.textures = textures;\n\t\t\tif ( images.length > 0 ) output.images = images;\n\t\t\tif ( shapes.length > 0 ) output.shapes = shapes;\n\t\t\tif ( skeletons.length > 0 ) output.skeletons = skeletons;\n\t\t\tif ( animations.length > 0 ) output.animations = animations;\n\n\t\t}\n\n\t\toutput.object = object;\n\n\t\treturn output;\n\n\t\t// extract data from the cache hash\n\t\t// remove metadata on each item\n\t\t// and return as array\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t}\n\n\tclone( recursive ) {\n\n\t\treturn new this.constructor().copy( this, recursive );\n\n\t}\n\n\tcopy( source, recursive = true ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.up.copy( source.up );\n\n\t\tthis.position.copy( source.position );\n\t\tthis.rotation.order = source.rotation.order;\n\t\tthis.quaternion.copy( source.quaternion );\n\t\tthis.scale.copy( source.scale );\n\n\t\tthis.matrix.copy( source.matrix );\n\t\tthis.matrixWorld.copy( source.matrixWorld );\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\t\tthis.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate;\n\n\t\tthis.layers.mask = source.layers.mask;\n\t\tthis.visible = source.visible;\n\n\t\tthis.castShadow = source.castShadow;\n\t\tthis.receiveShadow = source.receiveShadow;\n\n\t\tthis.frustumCulled = source.frustumCulled;\n\t\tthis.renderOrder = source.renderOrder;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\tif ( recursive === true ) {\n\n\t\t\tfor ( let i = 0; i < source.children.length; i ++ ) {\n\n\t\t\t\tconst child = source.children[ i ];\n\t\t\t\tthis.add( child.clone() );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nObject3D.DefaultUp = new Vector3( 0, 1, 0 );\nObject3D.DefaultMatrixAutoUpdate = true;\n\nObject3D.prototype.isObject3D = true;\n\nconst _v0$1 = /*@__PURE__*/ new Vector3();\nconst _v1$3 = /*@__PURE__*/ new Vector3();\nconst _v2$2 = /*@__PURE__*/ new Vector3();\nconst _v3$1 = /*@__PURE__*/ new Vector3();\n\nconst _vab = /*@__PURE__*/ new Vector3();\nconst _vac = /*@__PURE__*/ new Vector3();\nconst _vbc = /*@__PURE__*/ new Vector3();\nconst _vap = /*@__PURE__*/ new Vector3();\nconst _vbp = /*@__PURE__*/ new Vector3();\nconst _vcp = /*@__PURE__*/ new Vector3();\n\nclass Triangle {\n\n\tconstructor( a = new Vector3(), b = new Vector3(), c = new Vector3() ) {\n\n\t\tthis.a = a;\n\t\tthis.b = b;\n\t\tthis.c = c;\n\n\t}\n\n\tstatic getNormal( a, b, c, target ) {\n\n\t\ttarget.subVectors( c, b );\n\t\t_v0$1.subVectors( a, b );\n\t\ttarget.cross( _v0$1 );\n\n\t\tconst targetLengthSq = target.lengthSq();\n\t\tif ( targetLengthSq > 0 ) {\n\n\t\t\treturn target.multiplyScalar( 1 / Math.sqrt( targetLengthSq ) );\n\n\t\t}\n\n\t\treturn target.set( 0, 0, 0 );\n\n\t}\n\n\t// static/instance method to calculate barycentric coordinates\n\t// based on: http://www.blackpawn.com/texts/pointinpoly/default.html\n\tstatic getBarycoord( point, a, b, c, target ) {\n\n\t\t_v0$1.subVectors( c, a );\n\t\t_v1$3.subVectors( b, a );\n\t\t_v2$2.subVectors( point, a );\n\n\t\tconst dot00 = _v0$1.dot( _v0$1 );\n\t\tconst dot01 = _v0$1.dot( _v1$3 );\n\t\tconst dot02 = _v0$1.dot( _v2$2 );\n\t\tconst dot11 = _v1$3.dot( _v1$3 );\n\t\tconst dot12 = _v1$3.dot( _v2$2 );\n\n\t\tconst denom = ( dot00 * dot11 - dot01 * dot01 );\n\n\t\t// collinear or singular triangle\n\t\tif ( denom === 0 ) {\n\n\t\t\t// arbitrary location outside of triangle?\n\t\t\t// not sure if this is the best idea, maybe should be returning undefined\n\t\t\treturn target.set( - 2, - 1, - 1 );\n\n\t\t}\n\n\t\tconst invDenom = 1 / denom;\n\t\tconst u = ( dot11 * dot02 - dot01 * dot12 ) * invDenom;\n\t\tconst v = ( dot00 * dot12 - dot01 * dot02 ) * invDenom;\n\n\t\t// barycentric coordinates must always sum to 1\n\t\treturn target.set( 1 - u - v, v, u );\n\n\t}\n\n\tstatic containsPoint( point, a, b, c ) {\n\n\t\tthis.getBarycoord( point, a, b, c, _v3$1 );\n\n\t\treturn ( _v3$1.x >= 0 ) && ( _v3$1.y >= 0 ) && ( ( _v3$1.x + _v3$1.y ) <= 1 );\n\n\t}\n\n\tstatic getUV( point, p1, p2, p3, uv1, uv2, uv3, target ) {\n\n\t\tthis.getBarycoord( point, p1, p2, p3, _v3$1 );\n\n\t\ttarget.set( 0, 0 );\n\t\ttarget.addScaledVector( uv1, _v3$1.x );\n\t\ttarget.addScaledVector( uv2, _v3$1.y );\n\t\ttarget.addScaledVector( uv3, _v3$1.z );\n\n\t\treturn target;\n\n\t}\n\n\tstatic isFrontFacing( a, b, c, direction ) {\n\n\t\t_v0$1.subVectors( c, b );\n\t\t_v1$3.subVectors( a, b );\n\n\t\t// strictly front facing\n\t\treturn ( _v0$1.cross( _v1$3 ).dot( direction ) < 0 ) ? true : false;\n\n\t}\n\n\tset( a, b, c ) {\n\n\t\tthis.a.copy( a );\n\t\tthis.b.copy( b );\n\t\tthis.c.copy( c );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPointsAndIndices( points, i0, i1, i2 ) {\n\n\t\tthis.a.copy( points[ i0 ] );\n\t\tthis.b.copy( points[ i1 ] );\n\t\tthis.c.copy( points[ i2 ] );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAttributeAndIndices( attribute, i0, i1, i2 ) {\n\n\t\tthis.a.fromBufferAttribute( attribute, i0 );\n\t\tthis.b.fromBufferAttribute( attribute, i1 );\n\t\tthis.c.fromBufferAttribute( attribute, i2 );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( triangle ) {\n\n\t\tthis.a.copy( triangle.a );\n\t\tthis.b.copy( triangle.b );\n\t\tthis.c.copy( triangle.c );\n\n\t\treturn this;\n\n\t}\n\n\tgetArea() {\n\n\t\t_v0$1.subVectors( this.c, this.b );\n\t\t_v1$3.subVectors( this.a, this.b );\n\n\t\treturn _v0$1.cross( _v1$3 ).length() * 0.5;\n\n\t}\n\n\tgetMidpoint( target ) {\n\n\t\treturn target.addVectors( this.a, this.b ).add( this.c ).multiplyScalar( 1 / 3 );\n\n\t}\n\n\tgetNormal( target ) {\n\n\t\treturn Triangle.getNormal( this.a, this.b, this.c, target );\n\n\t}\n\n\tgetPlane( target ) {\n\n\t\treturn target.setFromCoplanarPoints( this.a, this.b, this.c );\n\n\t}\n\n\tgetBarycoord( point, target ) {\n\n\t\treturn Triangle.getBarycoord( point, this.a, this.b, this.c, target );\n\n\t}\n\n\tgetUV( point, uv1, uv2, uv3, target ) {\n\n\t\treturn Triangle.getUV( point, this.a, this.b, this.c, uv1, uv2, uv3, target );\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn Triangle.containsPoint( point, this.a, this.b, this.c );\n\n\t}\n\n\tisFrontFacing( direction ) {\n\n\t\treturn Triangle.isFrontFacing( this.a, this.b, this.c, direction );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsTriangle( this );\n\n\t}\n\n\tclosestPointToPoint( p, target ) {\n\n\t\tconst a = this.a, b = this.b, c = this.c;\n\t\tlet v, w;\n\n\t\t// algorithm thanks to Real-Time Collision Detection by Christer Ericson,\n\t\t// published by Morgan Kaufmann Publishers, (c) 2005 Elsevier Inc.,\n\t\t// under the accompanying license; see chapter 5.1.5 for detailed explanation.\n\t\t// basically, we're distinguishing which of the voronoi regions of the triangle\n\t\t// the point lies in with the minimum amount of redundant computation.\n\n\t\t_vab.subVectors( b, a );\n\t\t_vac.subVectors( c, a );\n\t\t_vap.subVectors( p, a );\n\t\tconst d1 = _vab.dot( _vap );\n\t\tconst d2 = _vac.dot( _vap );\n\t\tif ( d1 <= 0 && d2 <= 0 ) {\n\n\t\t\t// vertex region of A; barycentric coords (1, 0, 0)\n\t\t\treturn target.copy( a );\n\n\t\t}\n\n\t\t_vbp.subVectors( p, b );\n\t\tconst d3 = _vab.dot( _vbp );\n\t\tconst d4 = _vac.dot( _vbp );\n\t\tif ( d3 >= 0 && d4 <= d3 ) {\n\n\t\t\t// vertex region of B; barycentric coords (0, 1, 0)\n\t\t\treturn target.copy( b );\n\n\t\t}\n\n\t\tconst vc = d1 * d4 - d3 * d2;\n\t\tif ( vc <= 0 && d1 >= 0 && d3 <= 0 ) {\n\n\t\t\tv = d1 / ( d1 - d3 );\n\t\t\t// edge region of AB; barycentric coords (1-v, v, 0)\n\t\t\treturn target.copy( a ).addScaledVector( _vab, v );\n\n\t\t}\n\n\t\t_vcp.subVectors( p, c );\n\t\tconst d5 = _vab.dot( _vcp );\n\t\tconst d6 = _vac.dot( _vcp );\n\t\tif ( d6 >= 0 && d5 <= d6 ) {\n\n\t\t\t// vertex region of C; barycentric coords (0, 0, 1)\n\t\t\treturn target.copy( c );\n\n\t\t}\n\n\t\tconst vb = d5 * d2 - d1 * d6;\n\t\tif ( vb <= 0 && d2 >= 0 && d6 <= 0 ) {\n\n\t\t\tw = d2 / ( d2 - d6 );\n\t\t\t// edge region of AC; barycentric coords (1-w, 0, w)\n\t\t\treturn target.copy( a ).addScaledVector( _vac, w );\n\n\t\t}\n\n\t\tconst va = d3 * d6 - d5 * d4;\n\t\tif ( va <= 0 && ( d4 - d3 ) >= 0 && ( d5 - d6 ) >= 0 ) {\n\n\t\t\t_vbc.subVectors( c, b );\n\t\t\tw = ( d4 - d3 ) / ( ( d4 - d3 ) + ( d5 - d6 ) );\n\t\t\t// edge region of BC; barycentric coords (0, 1-w, w)\n\t\t\treturn target.copy( b ).addScaledVector( _vbc, w ); // edge region of BC\n\n\t\t}\n\n\t\t// face region\n\t\tconst denom = 1 / ( va + vb + vc );\n\t\t// u = va * denom\n\t\tv = vb * denom;\n\t\tw = vc * denom;\n\n\t\treturn target.copy( a ).addScaledVector( _vab, v ).addScaledVector( _vac, w );\n\n\t}\n\n\tequals( triangle ) {\n\n\t\treturn triangle.a.equals( this.a ) && triangle.b.equals( this.b ) && triangle.c.equals( this.c );\n\n\t}\n\n}\n\nlet materialId = 0;\n\nclass Material extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tObject.defineProperty( this, 'id', { value: materialId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'Material';\n\n\t\tthis.fog = true;\n\n\t\tthis.blending = NormalBlending;\n\t\tthis.side = FrontSide;\n\t\tthis.vertexColors = false;\n\n\t\tthis.opacity = 1;\n\t\tthis.transparent = false;\n\n\t\tthis.blendSrc = SrcAlphaFactor;\n\t\tthis.blendDst = OneMinusSrcAlphaFactor;\n\t\tthis.blendEquation = AddEquation;\n\t\tthis.blendSrcAlpha = null;\n\t\tthis.blendDstAlpha = null;\n\t\tthis.blendEquationAlpha = null;\n\n\t\tthis.depthFunc = LessEqualDepth;\n\t\tthis.depthTest = true;\n\t\tthis.depthWrite = true;\n\n\t\tthis.stencilWriteMask = 0xff;\n\t\tthis.stencilFunc = AlwaysStencilFunc;\n\t\tthis.stencilRef = 0;\n\t\tthis.stencilFuncMask = 0xff;\n\t\tthis.stencilFail = KeepStencilOp;\n\t\tthis.stencilZFail = KeepStencilOp;\n\t\tthis.stencilZPass = KeepStencilOp;\n\t\tthis.stencilWrite = false;\n\n\t\tthis.clippingPlanes = null;\n\t\tthis.clipIntersection = false;\n\t\tthis.clipShadows = false;\n\n\t\tthis.shadowSide = null;\n\n\t\tthis.colorWrite = true;\n\n\t\tthis.precision = null; // override the renderer's default precision for this material\n\n\t\tthis.polygonOffset = false;\n\t\tthis.polygonOffsetFactor = 0;\n\t\tthis.polygonOffsetUnits = 0;\n\n\t\tthis.dithering = false;\n\n\t\tthis.alphaToCoverage = false;\n\t\tthis.premultipliedAlpha = false;\n\n\t\tthis.visible = true;\n\n\t\tthis.toneMapped = true;\n\n\t\tthis.userData = {};\n\n\t\tthis.version = 0;\n\n\t\tthis._alphaTest = 0;\n\n\t}\n\n\tget alphaTest() {\n\n\t\treturn this._alphaTest;\n\n\t}\n\n\tset alphaTest( value ) {\n\n\t\tif ( this._alphaTest > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._alphaTest = value;\n\n\t}\n\n\tonBuild( /* shaderobject, renderer */ ) {}\n\n\tonBeforeRender( /* renderer, scene, camera, geometry, object, group */ ) {}\n\n\tonBeforeCompile( /* shaderobject, renderer */ ) {}\n\n\tcustomProgramCacheKey() {\n\n\t\treturn this.onBeforeCompile.toString();\n\n\t}\n\n\tsetValues( values ) {\n\n\t\tif ( values === undefined ) return;\n\n\t\tfor ( const key in values ) {\n\n\t\t\tconst newValue = values[ key ];\n\n\t\t\tif ( newValue === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.Material: \\'' + key + '\\' parameter is undefined.' );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\t// for backward compatability if shading is set in the constructor\n\t\t\tif ( key === 'shading' ) {\n\n\t\t\t\tconsole.warn( 'THREE.' + this.type + ': .shading has been removed. Use the boolean .flatShading instead.' );\n\t\t\t\tthis.flatShading = ( newValue === FlatShading ) ? true : false;\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst currentValue = this[ key ];\n\n\t\t\tif ( currentValue === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.' + this.type + ': \\'' + key + '\\' is not a property of this material.' );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tif ( currentValue && currentValue.isColor ) {\n\n\t\t\t\tcurrentValue.set( newValue );\n\n\t\t\t} else if ( ( currentValue && currentValue.isVector3 ) && ( newValue && newValue.isVector3 ) ) {\n\n\t\t\t\tcurrentValue.copy( newValue );\n\n\t\t\t} else {\n\n\t\t\t\tthis[ key ] = newValue;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRoot = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( isRoot ) {\n\n\t\t\tmeta = {\n\t\t\t\ttextures: {},\n\t\t\t\timages: {}\n\t\t\t};\n\n\t\t}\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'Material',\n\t\t\t\tgenerator: 'Material.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard Material serialization\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\n\t\tif ( this.name !== '' ) data.name = this.name;\n\n\t\tif ( this.color && this.color.isColor ) data.color = this.color.getHex();\n\n\t\tif ( this.roughness !== undefined ) data.roughness = this.roughness;\n\t\tif ( this.metalness !== undefined ) data.metalness = this.metalness;\n\n\t\tif ( this.sheen !== undefined ) data.sheen = this.sheen;\n\t\tif ( this.sheenColor && this.sheenColor.isColor ) data.sheenColor = this.sheenColor.getHex();\n\t\tif ( this.sheenRoughness !== undefined ) data.sheenRoughness = this.sheenRoughness;\n\t\tif ( this.emissive && this.emissive.isColor ) data.emissive = this.emissive.getHex();\n\t\tif ( this.emissiveIntensity && this.emissiveIntensity !== 1 ) data.emissiveIntensity = this.emissiveIntensity;\n\n\t\tif ( this.specular && this.specular.isColor ) data.specular = this.specular.getHex();\n\t\tif ( this.specularIntensity !== undefined ) data.specularIntensity = this.specularIntensity;\n\t\tif ( this.specularColor && this.specularColor.isColor ) data.specularColor = this.specularColor.getHex();\n\t\tif ( this.shininess !== undefined ) data.shininess = this.shininess;\n\t\tif ( this.clearcoat !== undefined ) data.clearcoat = this.clearcoat;\n\t\tif ( this.clearcoatRoughness !== undefined ) data.clearcoatRoughness = this.clearcoatRoughness;\n\n\t\tif ( this.clearcoatMap && this.clearcoatMap.isTexture ) {\n\n\t\t\tdata.clearcoatMap = this.clearcoatMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture ) {\n\n\t\t\tdata.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture ) {\n\n\t\t\tdata.clearcoatNormalMap = this.clearcoatNormalMap.toJSON( meta ).uuid;\n\t\t\tdata.clearcoatNormalScale = this.clearcoatNormalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.map && this.map.isTexture ) data.map = this.map.toJSON( meta ).uuid;\n\t\tif ( this.matcap && this.matcap.isTexture ) data.matcap = this.matcap.toJSON( meta ).uuid;\n\t\tif ( this.alphaMap && this.alphaMap.isTexture ) data.alphaMap = this.alphaMap.toJSON( meta ).uuid;\n\n\t\tif ( this.lightMap && this.lightMap.isTexture ) {\n\n\t\t\tdata.lightMap = this.lightMap.toJSON( meta ).uuid;\n\t\t\tdata.lightMapIntensity = this.lightMapIntensity;\n\n\t\t}\n\n\t\tif ( this.aoMap && this.aoMap.isTexture ) {\n\n\t\t\tdata.aoMap = this.aoMap.toJSON( meta ).uuid;\n\t\t\tdata.aoMapIntensity = this.aoMapIntensity;\n\n\t\t}\n\n\t\tif ( this.bumpMap && this.bumpMap.isTexture ) {\n\n\t\t\tdata.bumpMap = this.bumpMap.toJSON( meta ).uuid;\n\t\t\tdata.bumpScale = this.bumpScale;\n\n\t\t}\n\n\t\tif ( this.normalMap && this.normalMap.isTexture ) {\n\n\t\t\tdata.normalMap = this.normalMap.toJSON( meta ).uuid;\n\t\t\tdata.normalMapType = this.normalMapType;\n\t\t\tdata.normalScale = this.normalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.displacementMap && this.displacementMap.isTexture ) {\n\n\t\t\tdata.displacementMap = this.displacementMap.toJSON( meta ).uuid;\n\t\t\tdata.displacementScale = this.displacementScale;\n\t\t\tdata.displacementBias = this.displacementBias;\n\n\t\t}\n\n\t\tif ( this.roughnessMap && this.roughnessMap.isTexture ) data.roughnessMap = this.roughnessMap.toJSON( meta ).uuid;\n\t\tif ( this.metalnessMap && this.metalnessMap.isTexture ) data.metalnessMap = this.metalnessMap.toJSON( meta ).uuid;\n\n\t\tif ( this.emissiveMap && this.emissiveMap.isTexture ) data.emissiveMap = this.emissiveMap.toJSON( meta ).uuid;\n\t\tif ( this.specularMap && this.specularMap.isTexture ) data.specularMap = this.specularMap.toJSON( meta ).uuid;\n\t\tif ( this.specularIntensityMap && this.specularIntensityMap.isTexture ) data.specularIntensityMap = this.specularIntensityMap.toJSON( meta ).uuid;\n\t\tif ( this.specularColorMap && this.specularColorMap.isTexture ) data.specularColorMap = this.specularColorMap.toJSON( meta ).uuid;\n\n\t\tif ( this.envMap && this.envMap.isTexture ) {\n\n\t\t\tdata.envMap = this.envMap.toJSON( meta ).uuid;\n\n\t\t\tif ( this.combine !== undefined ) data.combine = this.combine;\n\n\t\t}\n\n\t\tif ( this.envMapIntensity !== undefined ) data.envMapIntensity = this.envMapIntensity;\n\t\tif ( this.reflectivity !== undefined ) data.reflectivity = this.reflectivity;\n\t\tif ( this.refractionRatio !== undefined ) data.refractionRatio = this.refractionRatio;\n\n\t\tif ( this.gradientMap && this.gradientMap.isTexture ) {\n\n\t\t\tdata.gradientMap = this.gradientMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.transmission !== undefined ) data.transmission = this.transmission;\n\t\tif ( this.transmissionMap && this.transmissionMap.isTexture ) data.transmissionMap = this.transmissionMap.toJSON( meta ).uuid;\n\t\tif ( this.thickness !== undefined ) data.thickness = this.thickness;\n\t\tif ( this.thicknessMap && this.thicknessMap.isTexture ) data.thicknessMap = this.thicknessMap.toJSON( meta ).uuid;\n\t\tif ( this.attenuationDistance !== undefined ) data.attenuationDistance = this.attenuationDistance;\n\t\tif ( this.attenuationColor !== undefined ) data.attenuationColor = this.attenuationColor.getHex();\n\n\t\tif ( this.size !== undefined ) data.size = this.size;\n\t\tif ( this.shadowSide !== null ) data.shadowSide = this.shadowSide;\n\t\tif ( this.sizeAttenuation !== undefined ) data.sizeAttenuation = this.sizeAttenuation;\n\n\t\tif ( this.blending !== NormalBlending ) data.blending = this.blending;\n\t\tif ( this.side !== FrontSide ) data.side = this.side;\n\t\tif ( this.vertexColors ) data.vertexColors = true;\n\n\t\tif ( this.opacity < 1 ) data.opacity = this.opacity;\n\t\tif ( this.transparent === true ) data.transparent = this.transparent;\n\n\t\tdata.depthFunc = this.depthFunc;\n\t\tdata.depthTest = this.depthTest;\n\t\tdata.depthWrite = this.depthWrite;\n\t\tdata.colorWrite = this.colorWrite;\n\n\t\tdata.stencilWrite = this.stencilWrite;\n\t\tdata.stencilWriteMask = this.stencilWriteMask;\n\t\tdata.stencilFunc = this.stencilFunc;\n\t\tdata.stencilRef = this.stencilRef;\n\t\tdata.stencilFuncMask = this.stencilFuncMask;\n\t\tdata.stencilFail = this.stencilFail;\n\t\tdata.stencilZFail = this.stencilZFail;\n\t\tdata.stencilZPass = this.stencilZPass;\n\n\t\t// rotation (SpriteMaterial)\n\t\tif ( this.rotation && this.rotation !== 0 ) data.rotation = this.rotation;\n\n\t\tif ( this.polygonOffset === true ) data.polygonOffset = true;\n\t\tif ( this.polygonOffsetFactor !== 0 ) data.polygonOffsetFactor = this.polygonOffsetFactor;\n\t\tif ( this.polygonOffsetUnits !== 0 ) data.polygonOffsetUnits = this.polygonOffsetUnits;\n\n\t\tif ( this.linewidth && this.linewidth !== 1 ) data.linewidth = this.linewidth;\n\t\tif ( this.dashSize !== undefined ) data.dashSize = this.dashSize;\n\t\tif ( this.gapSize !== undefined ) data.gapSize = this.gapSize;\n\t\tif ( this.scale !== undefined ) data.scale = this.scale;\n\n\t\tif ( this.dithering === true ) data.dithering = true;\n\n\t\tif ( this.alphaTest > 0 ) data.alphaTest = this.alphaTest;\n\t\tif ( this.alphaToCoverage === true ) data.alphaToCoverage = this.alphaToCoverage;\n\t\tif ( this.premultipliedAlpha === true ) data.premultipliedAlpha = this.premultipliedAlpha;\n\n\t\tif ( this.wireframe === true ) data.wireframe = this.wireframe;\n\t\tif ( this.wireframeLinewidth > 1 ) data.wireframeLinewidth = this.wireframeLinewidth;\n\t\tif ( this.wireframeLinecap !== 'round' ) data.wireframeLinecap = this.wireframeLinecap;\n\t\tif ( this.wireframeLinejoin !== 'round' ) data.wireframeLinejoin = this.wireframeLinejoin;\n\n\t\tif ( this.flatShading === true ) data.flatShading = this.flatShading;\n\n\t\tif ( this.visible === false ) data.visible = false;\n\n\t\tif ( this.toneMapped === false ) data.toneMapped = false;\n\n\t\tif ( JSON.stringify( this.userData ) !== '{}' ) data.userData = this.userData;\n\n\t\t// TODO: Copied from Object3D.toJSON\n\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t\tif ( isRoot ) {\n\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\n\t\t\tif ( textures.length > 0 ) data.textures = textures;\n\t\t\tif ( images.length > 0 ) data.images = images;\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.fog = source.fog;\n\n\t\tthis.blending = source.blending;\n\t\tthis.side = source.side;\n\t\tthis.vertexColors = source.vertexColors;\n\n\t\tthis.opacity = source.opacity;\n\t\tthis.transparent = source.transparent;\n\n\t\tthis.blendSrc = source.blendSrc;\n\t\tthis.blendDst = source.blendDst;\n\t\tthis.blendEquation = source.blendEquation;\n\t\tthis.blendSrcAlpha = source.blendSrcAlpha;\n\t\tthis.blendDstAlpha = source.blendDstAlpha;\n\t\tthis.blendEquationAlpha = source.blendEquationAlpha;\n\n\t\tthis.depthFunc = source.depthFunc;\n\t\tthis.depthTest = source.depthTest;\n\t\tthis.depthWrite = source.depthWrite;\n\n\t\tthis.stencilWriteMask = source.stencilWriteMask;\n\t\tthis.stencilFunc = source.stencilFunc;\n\t\tthis.stencilRef = source.stencilRef;\n\t\tthis.stencilFuncMask = source.stencilFuncMask;\n\t\tthis.stencilFail = source.stencilFail;\n\t\tthis.stencilZFail = source.stencilZFail;\n\t\tthis.stencilZPass = source.stencilZPass;\n\t\tthis.stencilWrite = source.stencilWrite;\n\n\t\tconst srcPlanes = source.clippingPlanes;\n\t\tlet dstPlanes = null;\n\n\t\tif ( srcPlanes !== null ) {\n\n\t\t\tconst n = srcPlanes.length;\n\t\t\tdstPlanes = new Array( n );\n\n\t\t\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\t\t\tdstPlanes[ i ] = srcPlanes[ i ].clone();\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.clippingPlanes = dstPlanes;\n\t\tthis.clipIntersection = source.clipIntersection;\n\t\tthis.clipShadows = source.clipShadows;\n\n\t\tthis.shadowSide = source.shadowSide;\n\n\t\tthis.colorWrite = source.colorWrite;\n\n\t\tthis.precision = source.precision;\n\n\t\tthis.polygonOffset = source.polygonOffset;\n\t\tthis.polygonOffsetFactor = source.polygonOffsetFactor;\n\t\tthis.polygonOffsetUnits = source.polygonOffsetUnits;\n\n\t\tthis.dithering = source.dithering;\n\n\t\tthis.alphaTest = source.alphaTest;\n\t\tthis.alphaToCoverage = source.alphaToCoverage;\n\t\tthis.premultipliedAlpha = source.premultipliedAlpha;\n\n\t\tthis.visible = source.visible;\n\n\t\tthis.toneMapped = source.toneMapped;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n}\n\nMaterial.prototype.isMaterial = true;\n\n/**\n * parameters = {\n * color: <hex>,\n * opacity: <float>,\n * map: new THREE.Texture( <Image> ),\n *\n * lightMap: new THREE.Texture( <Image> ),\n * lightMapIntensity: <float>\n *\n * aoMap: new THREE.Texture( <Image> ),\n * aoMapIntensity: <float>\n *\n * specularMap: new THREE.Texture( <Image> ),\n *\n * alphaMap: new THREE.Texture( <Image> ),\n *\n * envMap: new THREE.CubeTexture( [posx, negx, posy, negy, posz, negz] ),\n * combine: THREE.Multiply,\n * reflectivity: <float>,\n * refractionRatio: <float>,\n *\n * depthTest: <bool>,\n * depthWrite: <bool>,\n *\n * wireframe: <boolean>,\n * wireframeLinewidth: <float>,\n * }\n */\n\nclass MeshBasicMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'MeshBasicMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // emissive\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshBasicMaterial.prototype.isMeshBasicMaterial = true;\n\nconst _vector$9 = /*@__PURE__*/ new Vector3();\nconst _vector2$1 = /*@__PURE__*/ new Vector2();\n\nclass BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tif ( Array.isArray( array ) ) {\n\n\t\t\tthrow new TypeError( 'THREE.BufferAttribute: array should be a Typed Array.' );\n\n\t\t}\n\n\t\tthis.name = '';\n\n\t\tthis.array = array;\n\t\tthis.itemSize = itemSize;\n\t\tthis.count = array !== undefined ? array.length / itemSize : 0;\n\t\tthis.normalized = normalized === true;\n\n\t\tthis.usage = StaticDrawUsage;\n\t\tthis.updateRange = { offset: 0, count: - 1 };\n\n\t\tthis.version = 0;\n\n\t}\n\n\tonUploadCallback() {}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\t\tthis.array = new source.array.constructor( source.array );\n\t\tthis.itemSize = source.itemSize;\n\t\tthis.count = source.count;\n\t\tthis.normalized = source.normalized;\n\n\t\tthis.usage = source.usage;\n\n\t\treturn this;\n\n\t}\n\n\tcopyAt( index1, attribute, index2 ) {\n\n\t\tindex1 *= this.itemSize;\n\t\tindex2 *= attribute.itemSize;\n\n\t\tfor ( let i = 0, l = this.itemSize; i < l; i ++ ) {\n\n\t\t\tthis.array[ index1 + i ] = attribute.array[ index2 + i ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcopyArray( array ) {\n\n\t\tthis.array.set( array );\n\n\t\treturn this;\n\n\t}\n\n\tcopyColorsArray( colors ) {\n\n\t\tconst array = this.array;\n\t\tlet offset = 0;\n\n\t\tfor ( let i = 0, l = colors.length; i < l; i ++ ) {\n\n\t\t\tlet color = colors[ i ];\n\n\t\t\tif ( color === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.BufferAttribute.copyColorsArray(): color is undefined', i );\n\t\t\t\tcolor = new Color();\n\n\t\t\t}\n\n\t\t\tarray[ offset ++ ] = color.r;\n\t\t\tarray[ offset ++ ] = color.g;\n\t\t\tarray[ offset ++ ] = color.b;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcopyVector2sArray( vectors ) {\n\n\t\tconst array = this.array;\n\t\tlet offset = 0;\n\n\t\tfor ( let i = 0, l = vectors.length; i < l; i ++ ) {\n\n\t\t\tlet vector = vectors[ i ];\n\n\t\t\tif ( vector === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.BufferAttribute.copyVector2sArray(): vector is undefined', i );\n\t\t\t\tvector = new Vector2();\n\n\t\t\t}\n\n\t\t\tarray[ offset ++ ] = vector.x;\n\t\t\tarray[ offset ++ ] = vector.y;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcopyVector3sArray( vectors ) {\n\n\t\tconst array = this.array;\n\t\tlet offset = 0;\n\n\t\tfor ( let i = 0, l = vectors.length; i < l; i ++ ) {\n\n\t\t\tlet vector = vectors[ i ];\n\n\t\t\tif ( vector === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.BufferAttribute.copyVector3sArray(): vector is undefined', i );\n\t\t\t\tvector = new Vector3();\n\n\t\t\t}\n\n\t\t\tarray[ offset ++ ] = vector.x;\n\t\t\tarray[ offset ++ ] = vector.y;\n\t\t\tarray[ offset ++ ] = vector.z;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcopyVector4sArray( vectors ) {\n\n\t\tconst array = this.array;\n\t\tlet offset = 0;\n\n\t\tfor ( let i = 0, l = vectors.length; i < l; i ++ ) {\n\n\t\t\tlet vector = vectors[ i ];\n\n\t\t\tif ( vector === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.BufferAttribute.copyVector4sArray(): vector is undefined', i );\n\t\t\t\tvector = new Vector4();\n\n\t\t\t}\n\n\t\t\tarray[ offset ++ ] = vector.x;\n\t\t\tarray[ offset ++ ] = vector.y;\n\t\t\tarray[ offset ++ ] = vector.z;\n\t\t\tarray[ offset ++ ] = vector.w;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tif ( this.itemSize === 2 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector2$1.fromBufferAttribute( this, i );\n\t\t\t\t_vector2$1.applyMatrix3( m );\n\n\t\t\t\tthis.setXY( i, _vector2$1.x, _vector2$1.y );\n\n\t\t\t}\n\n\t\t} else if ( this.itemSize === 3 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector$9.fromBufferAttribute( this, i );\n\t\t\t\t_vector$9.applyMatrix3( m );\n\n\t\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.x = this.getX( i );\n\t\t\t_vector$9.y = this.getY( i );\n\t\t\t_vector$9.z = this.getZ( i );\n\n\t\t\t_vector$9.applyMatrix4( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.x = this.getX( i );\n\t\t\t_vector$9.y = this.getY( i );\n\t\t\t_vector$9.z = this.getZ( i );\n\n\t\t\t_vector$9.applyNormalMatrix( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.x = this.getX( i );\n\t\t\t_vector$9.y = this.getY( i );\n\t\t\t_vector$9.z = this.getZ( i );\n\n\t\t\t_vector$9.transformDirection( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tset( value, offset = 0 ) {\n\n\t\tthis.array.set( value, offset );\n\n\t\treturn this;\n\n\t}\n\n\tgetX( index ) {\n\n\t\treturn this.array[ index * this.itemSize ];\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tthis.array[ index * this.itemSize ] = x;\n\n\t\treturn this;\n\n\t}\n\n\tgetY( index ) {\n\n\t\treturn this.array[ index * this.itemSize + 1 ];\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tthis.array[ index * this.itemSize + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tgetZ( index ) {\n\n\t\treturn this.array[ index * this.itemSize + 2 ];\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tthis.array[ index * this.itemSize + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tgetW( index ) {\n\n\t\treturn this.array[ index * this.itemSize + 3 ];\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tthis.array[ index * this.itemSize + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\t\tthis.array[ index + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tonUpload( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.array, this.itemSize ).copy( this );\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\titemSize: this.itemSize,\n\t\t\ttype: this.array.constructor.name,\n\t\t\tarray: Array.prototype.slice.call( this.array ),\n\t\t\tnormalized: this.normalized\n\t\t};\n\n\t\tif ( this.name !== '' ) data.name = this.name;\n\t\tif ( this.usage !== StaticDrawUsage ) data.usage = this.usage;\n\t\tif ( this.updateRange.offset !== 0 || this.updateRange.count !== - 1 ) data.updateRange = this.updateRange;\n\n\t\treturn data;\n\n\t}\n\n}\n\nBufferAttribute.prototype.isBufferAttribute = true;\n\n//\n\nclass Int8BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int8Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint8BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint8Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint8ClampedBufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint8ClampedArray( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Int16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Int32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Float16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nFloat16BufferAttribute.prototype.isFloat16BufferAttribute = true;\n\nclass Float32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Float32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Float64BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Float64Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nlet _id$1 = 0;\n\nconst _m1 = /*@__PURE__*/ new Matrix4();\nconst _obj = /*@__PURE__*/ new Object3D();\nconst _offset = /*@__PURE__*/ new Vector3();\nconst _box$1 = /*@__PURE__*/ new Box3();\nconst _boxMorphTargets = /*@__PURE__*/ new Box3();\nconst _vector$8 = /*@__PURE__*/ new Vector3();\n\nclass BufferGeometry extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tObject.defineProperty( this, 'id', { value: _id$1 ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'BufferGeometry';\n\n\t\tthis.index = null;\n\t\tthis.attributes = {};\n\n\t\tthis.morphAttributes = {};\n\t\tthis.morphTargetsRelative = false;\n\n\t\tthis.groups = [];\n\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\tthis.drawRange = { start: 0, count: Infinity };\n\n\t\tthis.userData = {};\n\n\t}\n\n\tgetIndex() {\n\n\t\treturn this.index;\n\n\t}\n\n\tsetIndex( index ) {\n\n\t\tif ( Array.isArray( index ) ) {\n\n\t\t\tthis.index = new ( arrayNeedsUint32( index ) ? Uint32BufferAttribute : Uint16BufferAttribute )( index, 1 );\n\n\t\t} else {\n\n\t\t\tthis.index = index;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetAttribute( name ) {\n\n\t\treturn this.attributes[ name ];\n\n\t}\n\n\tsetAttribute( name, attribute ) {\n\n\t\tthis.attributes[ name ] = attribute;\n\n\t\treturn this;\n\n\t}\n\n\tdeleteAttribute( name ) {\n\n\t\tdelete this.attributes[ name ];\n\n\t\treturn this;\n\n\t}\n\n\thasAttribute( name ) {\n\n\t\treturn this.attributes[ name ] !== undefined;\n\n\t}\n\n\taddGroup( start, count, materialIndex = 0 ) {\n\n\t\tthis.groups.push( {\n\n\t\t\tstart: start,\n\t\t\tcount: count,\n\t\t\tmaterialIndex: materialIndex\n\n\t\t} );\n\n\t}\n\n\tclearGroups() {\n\n\t\tthis.groups = [];\n\n\t}\n\n\tsetDrawRange( start, count ) {\n\n\t\tthis.drawRange.start = start;\n\t\tthis.drawRange.count = count;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tconst position = this.attributes.position;\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tposition.applyMatrix4( matrix );\n\n\t\t\tposition.needsUpdate = true;\n\n\t\t}\n\n\t\tconst normal = this.attributes.normal;\n\n\t\tif ( normal !== undefined ) {\n\n\t\t\tconst normalMatrix = new Matrix3().getNormalMatrix( matrix );\n\n\t\t\tnormal.applyNormalMatrix( normalMatrix );\n\n\t\t\tnormal.needsUpdate = true;\n\n\t\t}\n\n\t\tconst tangent = this.attributes.tangent;\n\n\t\tif ( tangent !== undefined ) {\n\n\t\t\ttangent.transformDirection( matrix );\n\n\t\t\ttangent.needsUpdate = true;\n\n\t\t}\n\n\t\tif ( this.boundingBox !== null ) {\n\n\t\t\tthis.computeBoundingBox();\n\n\t\t}\n\n\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\tthis.computeBoundingSphere();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\t_m1.makeRotationFromQuaternion( q );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateX( angle ) {\n\n\t\t// rotate geometry around world x-axis\n\n\t\t_m1.makeRotationX( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateY( angle ) {\n\n\t\t// rotate geometry around world y-axis\n\n\t\t_m1.makeRotationY( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateZ( angle ) {\n\n\t\t// rotate geometry around world z-axis\n\n\t\t_m1.makeRotationZ( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( x, y, z ) {\n\n\t\t// translate geometry\n\n\t\t_m1.makeTranslation( x, y, z );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\tscale( x, y, z ) {\n\n\t\t// scale geometry\n\n\t\t_m1.makeScale( x, y, z );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\tlookAt( vector ) {\n\n\t\t_obj.lookAt( vector );\n\n\t\t_obj.updateMatrix();\n\n\t\tthis.applyMatrix4( _obj.matrix );\n\n\t\treturn this;\n\n\t}\n\n\tcenter() {\n\n\t\tthis.computeBoundingBox();\n\n\t\tthis.boundingBox.getCenter( _offset ).negate();\n\n\t\tthis.translate( _offset.x, _offset.y, _offset.z );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tconst position = [];\n\n\t\tfor ( let i = 0, l = points.length; i < l; i ++ ) {\n\n\t\t\tconst point = points[ i ];\n\t\t\tposition.push( point.x, point.y, point.z || 0 );\n\n\t\t}\n\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( position, 3 ) );\n\n\t\treturn this;\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set \"mesh.frustumCulled\" to \"false\".', this );\n\n\t\t\tthis.boundingBox.set(\n\t\t\t\tnew Vector3( - Infinity, - Infinity, - Infinity ),\n\t\t\t\tnew Vector3( + Infinity, + Infinity, + Infinity )\n\t\t\t);\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tthis.boundingBox.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_box$1.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$8.addVectors( this.boundingBox.min, _box$1.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$8 );\n\n\t\t\t\t\t\t_vector$8.addVectors( this.boundingBox.max, _box$1.max );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$8 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$1.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$1.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthis.boundingBox.makeEmpty();\n\n\t\t}\n\n\t\tif ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set \"mesh.frustumCulled\" to \"false\".', this );\n\n\t\t\tthis.boundingSphere.set( new Vector3(), Infinity );\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position ) {\n\n\t\t\t// first, find the center of the bounding sphere\n\n\t\t\tconst center = this.boundingSphere.center;\n\n\t\t\t_box$1.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_boxMorphTargets.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$8.addVectors( _box$1.min, _boxMorphTargets.min );\n\t\t\t\t\t\t_box$1.expandByPoint( _vector$8 );\n\n\t\t\t\t\t\t_vector$8.addVectors( _box$1.max, _boxMorphTargets.max );\n\t\t\t\t\t\t_box$1.expandByPoint( _vector$8 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_box$1.expandByPoint( _boxMorphTargets.min );\n\t\t\t\t\t\t_box$1.expandByPoint( _boxMorphTargets.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t_box$1.getCenter( center );\n\n\t\t\t// second, try to find a boundingSphere with a radius smaller than the\n\t\t\t// boundingSphere of the boundingBox: sqrt(3) smaller in the best case\n\n\t\t\tlet maxRadiusSq = 0;\n\n\t\t\tfor ( let i = 0, il = position.count; i < il; i ++ ) {\n\n\t\t\t\t_vector$8.fromBufferAttribute( position, i );\n\n\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) );\n\n\t\t\t}\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\tconst morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t\t\t\tfor ( let j = 0, jl = morphAttribute.count; j < jl; j ++ ) {\n\n\t\t\t\t\t\t_vector$8.fromBufferAttribute( morphAttribute, j );\n\n\t\t\t\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t\t\t\t_offset.fromBufferAttribute( position, j );\n\t\t\t\t\t\t\t_vector$8.add( _offset );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.boundingSphere.radius = Math.sqrt( maxRadiusSq );\n\n\t\t\tif ( isNaN( this.boundingSphere.radius ) ) {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcomputeTangents() {\n\n\t\tconst index = this.index;\n\t\tconst attributes = this.attributes;\n\n\t\t// based on http://www.terathon.com/code/tangent.html\n\t\t// (per vertex tangents)\n\n\t\tif ( index === null ||\n\t\t\t attributes.position === undefined ||\n\t\t\t attributes.normal === undefined ||\n\t\t\t attributes.uv === undefined ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst indices = index.array;\n\t\tconst positions = attributes.position.array;\n\t\tconst normals = attributes.normal.array;\n\t\tconst uvs = attributes.uv.array;\n\n\t\tconst nVertices = positions.length / 3;\n\n\t\tif ( attributes.tangent === undefined ) {\n\n\t\t\tthis.setAttribute( 'tangent', new BufferAttribute( new Float32Array( 4 * nVertices ), 4 ) );\n\n\t\t}\n\n\t\tconst tangents = attributes.tangent.array;\n\n\t\tconst tan1 = [], tan2 = [];\n\n\t\tfor ( let i = 0; i < nVertices; i ++ ) {\n\n\t\t\ttan1[ i ] = new Vector3();\n\t\t\ttan2[ i ] = new Vector3();\n\n\t\t}\n\n\t\tconst vA = new Vector3(),\n\t\t\tvB = new Vector3(),\n\t\t\tvC = new Vector3(),\n\n\t\t\tuvA = new Vector2(),\n\t\t\tuvB = new Vector2(),\n\t\t\tuvC = new Vector2(),\n\n\t\t\tsdir = new Vector3(),\n\t\t\ttdir = new Vector3();\n\n\t\tfunction handleTriangle( a, b, c ) {\n\n\t\t\tvA.fromArray( positions, a * 3 );\n\t\t\tvB.fromArray( positions, b * 3 );\n\t\t\tvC.fromArray( positions, c * 3 );\n\n\t\t\tuvA.fromArray( uvs, a * 2 );\n\t\t\tuvB.fromArray( uvs, b * 2 );\n\t\t\tuvC.fromArray( uvs, c * 2 );\n\n\t\t\tvB.sub( vA );\n\t\t\tvC.sub( vA );\n\n\t\t\tuvB.sub( uvA );\n\t\t\tuvC.sub( uvA );\n\n\t\t\tconst r = 1.0 / ( uvB.x * uvC.y - uvC.x * uvB.y );\n\n\t\t\t// silently ignore degenerate uv triangles having coincident or colinear vertices\n\n\t\t\tif ( ! isFinite( r ) ) return;\n\n\t\t\tsdir.copy( vB ).multiplyScalar( uvC.y ).addScaledVector( vC, - uvB.y ).multiplyScalar( r );\n\t\t\ttdir.copy( vC ).multiplyScalar( uvB.x ).addScaledVector( vB, - uvC.x ).multiplyScalar( r );\n\n\t\t\ttan1[ a ].add( sdir );\n\t\t\ttan1[ b ].add( sdir );\n\t\t\ttan1[ c ].add( sdir );\n\n\t\t\ttan2[ a ].add( tdir );\n\t\t\ttan2[ b ].add( tdir );\n\t\t\ttan2[ c ].add( tdir );\n\n\t\t}\n\n\t\tlet groups = this.groups;\n\n\t\tif ( groups.length === 0 ) {\n\n\t\t\tgroups = [ {\n\t\t\t\tstart: 0,\n\t\t\t\tcount: indices.length\n\t\t\t} ];\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleTriangle(\n\t\t\t\t\tindices[ j + 0 ],\n\t\t\t\t\tindices[ j + 1 ],\n\t\t\t\t\tindices[ j + 2 ]\n\t\t\t\t);\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst tmp = new Vector3(), tmp2 = new Vector3();\n\t\tconst n = new Vector3(), n2 = new Vector3();\n\n\t\tfunction handleVertex( v ) {\n\n\t\t\tn.fromArray( normals, v * 3 );\n\t\t\tn2.copy( n );\n\n\t\t\tconst t = tan1[ v ];\n\n\t\t\t// Gram-Schmidt orthogonalize\n\n\t\t\ttmp.copy( t );\n\t\t\ttmp.sub( n.multiplyScalar( n.dot( t ) ) ).normalize();\n\n\t\t\t// Calculate handedness\n\n\t\t\ttmp2.crossVectors( n2, t );\n\t\t\tconst test = tmp2.dot( tan2[ v ] );\n\t\t\tconst w = ( test < 0.0 ) ? - 1.0 : 1.0;\n\n\t\t\ttangents[ v * 4 ] = tmp.x;\n\t\t\ttangents[ v * 4 + 1 ] = tmp.y;\n\t\t\ttangents[ v * 4 + 2 ] = tmp.z;\n\t\t\ttangents[ v * 4 + 3 ] = w;\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleVertex( indices[ j + 0 ] );\n\t\t\t\thandleVertex( indices[ j + 1 ] );\n\t\t\t\thandleVertex( indices[ j + 2 ] );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcomputeVertexNormals() {\n\n\t\tconst index = this.index;\n\t\tconst positionAttribute = this.getAttribute( 'position' );\n\n\t\tif ( positionAttribute !== undefined ) {\n\n\t\t\tlet normalAttribute = this.getAttribute( 'normal' );\n\n\t\t\tif ( normalAttribute === undefined ) {\n\n\t\t\t\tnormalAttribute = new BufferAttribute( new Float32Array( positionAttribute.count * 3 ), 3 );\n\t\t\t\tthis.setAttribute( 'normal', normalAttribute );\n\n\t\t\t} else {\n\n\t\t\t\t// reset existing normals to zero\n\n\t\t\t\tfor ( let i = 0, il = normalAttribute.count; i < il; i ++ ) {\n\n\t\t\t\t\tnormalAttribute.setXYZ( i, 0, 0, 0 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst pA = new Vector3(), pB = new Vector3(), pC = new Vector3();\n\t\t\tconst nA = new Vector3(), nB = new Vector3(), nC = new Vector3();\n\t\t\tconst cb = new Vector3(), ab = new Vector3();\n\n\t\t\t// indexed elements\n\n\t\t\tif ( index ) {\n\n\t\t\t\tfor ( let i = 0, il = index.count; i < il; i += 3 ) {\n\n\t\t\t\t\tconst vA = index.getX( i + 0 );\n\t\t\t\t\tconst vB = index.getX( i + 1 );\n\t\t\t\t\tconst vC = index.getX( i + 2 );\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, vA );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, vB );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, vC );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnA.fromBufferAttribute( normalAttribute, vA );\n\t\t\t\t\tnB.fromBufferAttribute( normalAttribute, vB );\n\t\t\t\t\tnC.fromBufferAttribute( normalAttribute, vC );\n\n\t\t\t\t\tnA.add( cb );\n\t\t\t\t\tnB.add( cb );\n\t\t\t\t\tnC.add( cb );\n\n\t\t\t\t\tnormalAttribute.setXYZ( vA, nA.x, nA.y, nA.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vB, nB.x, nB.y, nB.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vC, nC.x, nC.y, nC.z );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// non-indexed elements (unconnected triangle soup)\n\n\t\t\t\tfor ( let i = 0, il = positionAttribute.count; i < il; i += 3 ) {\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, i + 0 );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, i + 1 );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, i + 2 );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnormalAttribute.setXYZ( i + 0, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 1, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 2, cb.x, cb.y, cb.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.normalizeNormals();\n\n\t\t\tnormalAttribute.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\tmerge( geometry, offset ) {\n\n\t\tif ( ! ( geometry && geometry.isBufferGeometry ) ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.', geometry );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( offset === undefined ) {\n\n\t\t\toffset = 0;\n\n\t\t\tconsole.warn(\n\t\t\t\t'THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. '\n\t\t\t\t+ 'Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge.'\n\t\t\t);\n\n\t\t}\n\n\t\tconst attributes = this.attributes;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tif ( geometry.attributes[ key ] === undefined ) continue;\n\n\t\t\tconst attribute1 = attributes[ key ];\n\t\t\tconst attributeArray1 = attribute1.array;\n\n\t\t\tconst attribute2 = geometry.attributes[ key ];\n\t\t\tconst attributeArray2 = attribute2.array;\n\n\t\t\tconst attributeOffset = attribute2.itemSize * offset;\n\t\t\tconst length = Math.min( attributeArray2.length, attributeArray1.length - attributeOffset );\n\n\t\t\tfor ( let i = 0, j = attributeOffset; i < length; i ++, j ++ ) {\n\n\t\t\t\tattributeArray1[ j ] = attributeArray2[ i ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tnormalizeNormals() {\n\n\t\tconst normals = this.attributes.normal;\n\n\t\tfor ( let i = 0, il = normals.count; i < il; i ++ ) {\n\n\t\t\t_vector$8.fromBufferAttribute( normals, i );\n\n\t\t\t_vector$8.normalize();\n\n\t\t\tnormals.setXYZ( i, _vector$8.x, _vector$8.y, _vector$8.z );\n\n\t\t}\n\n\t}\n\n\ttoNonIndexed() {\n\n\t\tfunction convertBufferAttribute( attribute, indices ) {\n\n\t\t\tconst array = attribute.array;\n\t\t\tconst itemSize = attribute.itemSize;\n\t\t\tconst normalized = attribute.normalized;\n\n\t\t\tconst array2 = new array.constructor( indices.length * itemSize );\n\n\t\t\tlet index = 0, index2 = 0;\n\n\t\t\tfor ( let i = 0, l = indices.length; i < l; i ++ ) {\n\n\t\t\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\tindex = indices[ i ] * attribute.data.stride + attribute.offset;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tindex = indices[ i ] * itemSize;\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let j = 0; j < itemSize; j ++ ) {\n\n\t\t\t\t\tarray2[ index2 ++ ] = array[ index ++ ];\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new BufferAttribute( array2, itemSize, normalized );\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.index === null ) {\n\n\t\t\tconsole.warn( 'THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.' );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst geometry2 = new BufferGeometry();\n\n\t\tconst indices = this.index.array;\n\t\tconst attributes = this.attributes;\n\n\t\t// attributes\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\n\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\tgeometry2.setAttribute( name, newAttribute );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = this.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst morphArray = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, il = morphAttribute.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = morphAttribute[ i ];\n\n\t\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\t\tmorphArray.push( newAttribute );\n\n\t\t\t}\n\n\t\t\tgeometry2.morphAttributes[ name ] = morphArray;\n\n\t\t}\n\n\t\tgeometry2.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = this.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tgeometry2.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\treturn geometry2;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'BufferGeometry',\n\t\t\t\tgenerator: 'BufferGeometry.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard BufferGeometry serialization\n\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\t\tif ( this.name !== '' ) data.name = this.name;\n\t\tif ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData;\n\n\t\tif ( this.parameters !== undefined ) {\n\n\t\t\tconst parameters = this.parameters;\n\n\t\t\tfor ( const key in parameters ) {\n\n\t\t\t\tif ( parameters[ key ] !== undefined ) data[ key ] = parameters[ key ];\n\n\t\t\t}\n\n\t\t\treturn data;\n\n\t\t}\n\n\t\t// for simplicity the code assumes attributes are not shared across geometries, see #15811\n\n\t\tdata.data = { attributes: {} };\n\n\t\tconst index = this.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tdata.data.index = {\n\t\t\t\ttype: index.array.constructor.name,\n\t\t\t\tarray: Array.prototype.slice.call( index.array )\n\t\t\t};\n\n\t\t}\n\n\t\tconst attributes = this.attributes;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tconst attribute = attributes[ key ];\n\n\t\t\tdata.data.attributes[ key ] = attribute.toJSON( data.data );\n\n\t\t}\n\n\t\tconst morphAttributes = {};\n\t\tlet hasMorphAttributes = false;\n\n\t\tfor ( const key in this.morphAttributes ) {\n\n\t\t\tconst attributeArray = this.morphAttributes[ key ];\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0, il = attributeArray.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = attributeArray[ i ];\n\n\t\t\t\tarray.push( attribute.toJSON( data.data ) );\n\n\t\t\t}\n\n\t\t\tif ( array.length > 0 ) {\n\n\t\t\t\tmorphAttributes[ key ] = array;\n\n\t\t\t\thasMorphAttributes = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( hasMorphAttributes ) {\n\n\t\t\tdata.data.morphAttributes = morphAttributes;\n\t\t\tdata.data.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t}\n\n\t\tconst groups = this.groups;\n\n\t\tif ( groups.length > 0 ) {\n\n\t\t\tdata.data.groups = JSON.parse( JSON.stringify( groups ) );\n\n\t\t}\n\n\t\tconst boundingSphere = this.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tdata.data.boundingSphere = {\n\t\t\t\tcenter: boundingSphere.center.toArray(),\n\t\t\t\tradius: boundingSphere.radius\n\t\t\t};\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tclone() {\n\n\t\t return new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\t// reset\n\n\t\tthis.index = null;\n\t\tthis.attributes = {};\n\t\tthis.morphAttributes = {};\n\t\tthis.groups = [];\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\t// used for storing cloned, shared data\n\n\t\tconst data = {};\n\n\t\t// name\n\n\t\tthis.name = source.name;\n\n\t\t// index\n\n\t\tconst index = source.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tthis.setIndex( index.clone( data ) );\n\n\t\t}\n\n\t\t// attributes\n\n\t\tconst attributes = source.attributes;\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\t\t\tthis.setAttribute( name, attribute.clone( data ) );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = source.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst array = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, l = morphAttribute.length; i < l; i ++ ) {\n\n\t\t\t\tarray.push( morphAttribute[ i ].clone( data ) );\n\n\t\t\t}\n\n\t\t\tthis.morphAttributes[ name ] = array;\n\n\t\t}\n\n\t\tthis.morphTargetsRelative = source.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = source.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tthis.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\t// bounding box\n\n\t\tconst boundingBox = source.boundingBox;\n\n\t\tif ( boundingBox !== null ) {\n\n\t\t\tthis.boundingBox = boundingBox.clone();\n\n\t\t}\n\n\t\t// bounding sphere\n\n\t\tconst boundingSphere = source.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tthis.boundingSphere = boundingSphere.clone();\n\n\t\t}\n\n\t\t// draw range\n\n\t\tthis.drawRange.start = source.drawRange.start;\n\t\tthis.drawRange.count = source.drawRange.count;\n\n\t\t// user data\n\n\t\tthis.userData = source.userData;\n\n\t\t// geometry generator parameters\n\n\t\tif ( source.parameters !== undefined ) this.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nBufferGeometry.prototype.isBufferGeometry = true;\n\nconst _inverseMatrix$2 = /*@__PURE__*/ new Matrix4();\nconst _ray$2 = /*@__PURE__*/ new Ray();\nconst _sphere$3 = /*@__PURE__*/ new Sphere();\n\nconst _vA$1 = /*@__PURE__*/ new Vector3();\nconst _vB$1 = /*@__PURE__*/ new Vector3();\nconst _vC$1 = /*@__PURE__*/ new Vector3();\n\nconst _tempA = /*@__PURE__*/ new Vector3();\nconst _tempB = /*@__PURE__*/ new Vector3();\nconst _tempC = /*@__PURE__*/ new Vector3();\n\nconst _morphA = /*@__PURE__*/ new Vector3();\nconst _morphB = /*@__PURE__*/ new Vector3();\nconst _morphC = /*@__PURE__*/ new Vector3();\n\nconst _uvA$1 = /*@__PURE__*/ new Vector2();\nconst _uvB$1 = /*@__PURE__*/ new Vector2();\nconst _uvC$1 = /*@__PURE__*/ new Vector2();\n\nconst _intersectionPoint = /*@__PURE__*/ new Vector3();\nconst _intersectionPointWorld = /*@__PURE__*/ new Vector3();\n\nclass Mesh extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new MeshBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Mesh';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tif ( source.morphTargetInfluences !== undefined ) {\n\n\t\t\tthis.morphTargetInfluences = source.morphTargetInfluences.slice();\n\n\t\t}\n\n\t\tif ( source.morphTargetDictionary !== undefined ) {\n\n\t\t\tthis.morphTargetDictionary = Object.assign( {}, source.morphTargetDictionary );\n\n\t\t}\n\n\t\tthis.material = source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tif ( geometry.isBufferGeometry ) {\n\n\t\t\tconst morphAttributes = geometry.morphAttributes;\n\t\t\tconst keys = Object.keys( morphAttributes );\n\n\t\t\tif ( keys.length > 0 ) {\n\n\t\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst morphTargets = geometry.morphTargets;\n\n\t\t\tif ( morphTargets !== undefined && morphTargets.length > 0 ) {\n\n\t\t\t\tconsole.error( 'THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst material = this.material;\n\t\tconst matrixWorld = this.matrixWorld;\n\n\t\tif ( material === undefined ) return;\n\n\t\t// Checking boundingSphere distance to ray\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere$3.copy( geometry.boundingSphere );\n\t\t_sphere$3.applyMatrix4( matrixWorld );\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere$3 ) === false ) return;\n\n\t\t//\n\n\t\t_inverseMatrix$2.copy( matrixWorld ).invert();\n\t\t_ray$2.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$2 );\n\n\t\t// Check boundingBox before continuing\n\n\t\tif ( geometry.boundingBox !== null ) {\n\n\t\t\tif ( _ray$2.intersectsBox( geometry.boundingBox ) === false ) return;\n\n\t\t}\n\n\t\tlet intersection;\n\n\t\tif ( geometry.isBufferGeometry ) {\n\n\t\t\tconst index = geometry.index;\n\t\t\tconst position = geometry.attributes.position;\n\t\t\tconst morphPosition = geometry.morphAttributes.position;\n\t\t\tconst morphTargetsRelative = geometry.morphTargetsRelative;\n\t\t\tconst uv = geometry.attributes.uv;\n\t\t\tconst uv2 = geometry.attributes.uv2;\n\t\t\tconst groups = geometry.groups;\n\t\t\tconst drawRange = geometry.drawRange;\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\t// indexed buffer geometry\n\n\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\t\tconst end = Math.min( index.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) );\n\n\t\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\t\tconst a = index.getX( j );\n\t\t\t\t\t\t\tconst b = index.getX( j + 1 );\n\t\t\t\t\t\t\tconst c = index.getX( j + 2 );\n\n\t\t\t\t\t\t\tintersection = checkBufferGeometryIntersection( this, groupMaterial, raycaster, _ray$2, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c );\n\n\t\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\t\tconst a = index.getX( i );\n\t\t\t\t\t\tconst b = index.getX( i + 1 );\n\t\t\t\t\t\tconst c = index.getX( i + 2 );\n\n\t\t\t\t\t\tintersection = checkBufferGeometryIntersection( this, material, raycaster, _ray$2, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( position !== undefined ) {\n\n\t\t\t\t// non-indexed buffer geometry\n\n\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\t\tconst end = Math.min( position.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) );\n\n\t\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\t\tconst a = j;\n\t\t\t\t\t\t\tconst b = j + 1;\n\t\t\t\t\t\t\tconst c = j + 2;\n\n\t\t\t\t\t\t\tintersection = checkBufferGeometryIntersection( this, groupMaterial, raycaster, _ray$2, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c );\n\n\t\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\t\tconst end = Math.min( position.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\t\tconst a = i;\n\t\t\t\t\t\tconst b = i + 1;\n\t\t\t\t\t\tconst c = i + 2;\n\n\t\t\t\t\t\tintersection = checkBufferGeometryIntersection( this, material, raycaster, _ray$2, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else if ( geometry.isGeometry ) {\n\n\t\t\tconsole.error( 'THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' );\n\n\t\t}\n\n\t}\n\n}\n\nMesh.prototype.isMesh = true;\n\nfunction checkIntersection( object, material, raycaster, ray, pA, pB, pC, point ) {\n\n\tlet intersect;\n\n\tif ( material.side === BackSide ) {\n\n\t\tintersect = ray.intersectTriangle( pC, pB, pA, true, point );\n\n\t} else {\n\n\t\tintersect = ray.intersectTriangle( pA, pB, pC, material.side !== DoubleSide, point );\n\n\t}\n\n\tif ( intersect === null ) return null;\n\n\t_intersectionPointWorld.copy( point );\n\t_intersectionPointWorld.applyMatrix4( object.matrixWorld );\n\n\tconst distance = raycaster.ray.origin.distanceTo( _intersectionPointWorld );\n\n\tif ( distance < raycaster.near || distance > raycaster.far ) return null;\n\n\treturn {\n\t\tdistance: distance,\n\t\tpoint: _intersectionPointWorld.clone(),\n\t\tobject: object\n\t};\n\n}\n\nfunction checkBufferGeometryIntersection( object, material, raycaster, ray, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c ) {\n\n\t_vA$1.fromBufferAttribute( position, a );\n\t_vB$1.fromBufferAttribute( position, b );\n\t_vC$1.fromBufferAttribute( position, c );\n\n\tconst morphInfluences = object.morphTargetInfluences;\n\n\tif ( morphPosition && morphInfluences ) {\n\n\t\t_morphA.set( 0, 0, 0 );\n\t\t_morphB.set( 0, 0, 0 );\n\t\t_morphC.set( 0, 0, 0 );\n\n\t\tfor ( let i = 0, il = morphPosition.length; i < il; i ++ ) {\n\n\t\t\tconst influence = morphInfluences[ i ];\n\t\t\tconst morphAttribute = morphPosition[ i ];\n\n\t\t\tif ( influence === 0 ) continue;\n\n\t\t\t_tempA.fromBufferAttribute( morphAttribute, a );\n\t\t\t_tempB.fromBufferAttribute( morphAttribute, b );\n\t\t\t_tempC.fromBufferAttribute( morphAttribute, c );\n\n\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t_morphA.addScaledVector( _tempA, influence );\n\t\t\t\t_morphB.addScaledVector( _tempB, influence );\n\t\t\t\t_morphC.addScaledVector( _tempC, influence );\n\n\t\t\t} else {\n\n\t\t\t\t_morphA.addScaledVector( _tempA.sub( _vA$1 ), influence );\n\t\t\t\t_morphB.addScaledVector( _tempB.sub( _vB$1 ), influence );\n\t\t\t\t_morphC.addScaledVector( _tempC.sub( _vC$1 ), influence );\n\n\t\t\t}\n\n\t\t}\n\n\t\t_vA$1.add( _morphA );\n\t\t_vB$1.add( _morphB );\n\t\t_vC$1.add( _morphC );\n\n\t}\n\n\tif ( object.isSkinnedMesh ) {\n\n\t\tobject.boneTransform( a, _vA$1 );\n\t\tobject.boneTransform( b, _vB$1 );\n\t\tobject.boneTransform( c, _vC$1 );\n\n\t}\n\n\tconst intersection = checkIntersection( object, material, raycaster, ray, _vA$1, _vB$1, _vC$1, _intersectionPoint );\n\n\tif ( intersection ) {\n\n\t\tif ( uv ) {\n\n\t\t\t_uvA$1.fromBufferAttribute( uv, a );\n\t\t\t_uvB$1.fromBufferAttribute( uv, b );\n\t\t\t_uvC$1.fromBufferAttribute( uv, c );\n\n\t\t\tintersection.uv = Triangle.getUV( _intersectionPoint, _vA$1, _vB$1, _vC$1, _uvA$1, _uvB$1, _uvC$1, new Vector2() );\n\n\t\t}\n\n\t\tif ( uv2 ) {\n\n\t\t\t_uvA$1.fromBufferAttribute( uv2, a );\n\t\t\t_uvB$1.fromBufferAttribute( uv2, b );\n\t\t\t_uvC$1.fromBufferAttribute( uv2, c );\n\n\t\t\tintersection.uv2 = Triangle.getUV( _intersectionPoint, _vA$1, _vB$1, _vC$1, _uvA$1, _uvB$1, _uvC$1, new Vector2() );\n\n\t\t}\n\n\t\tconst face = {\n\t\t\ta: a,\n\t\t\tb: b,\n\t\t\tc: c,\n\t\t\tnormal: new Vector3(),\n\t\t\tmaterialIndex: 0\n\t\t};\n\n\t\tTriangle.getNormal( _vA$1, _vB$1, _vC$1, face.normal );\n\n\t\tintersection.face = face;\n\n\t}\n\n\treturn intersection;\n\n}\n\nclass BoxGeometry extends BufferGeometry {\n\n\tconstructor( width = 1, height = 1, depth = 1, widthSegments = 1, heightSegments = 1, depthSegments = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'BoxGeometry';\n\n\t\tthis.parameters = {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\tdepth: depth,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\tdepthSegments: depthSegments\n\t\t};\n\n\t\tconst scope = this;\n\n\t\t// segments\n\n\t\twidthSegments = Math.floor( widthSegments );\n\t\theightSegments = Math.floor( heightSegments );\n\t\tdepthSegments = Math.floor( depthSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet numberOfVertices = 0;\n\t\tlet groupStart = 0;\n\n\t\t// build each side of the box geometry\n\n\t\tbuildPlane( 'z', 'y', 'x', - 1, - 1, depth, height, width, depthSegments, heightSegments, 0 ); // px\n\t\tbuildPlane( 'z', 'y', 'x', 1, - 1, depth, height, - width, depthSegments, heightSegments, 1 ); // nx\n\t\tbuildPlane( 'x', 'z', 'y', 1, 1, width, depth, height, widthSegments, depthSegments, 2 ); // py\n\t\tbuildPlane( 'x', 'z', 'y', 1, - 1, width, depth, - height, widthSegments, depthSegments, 3 ); // ny\n\t\tbuildPlane( 'x', 'y', 'z', 1, - 1, width, height, depth, widthSegments, heightSegments, 4 ); // pz\n\t\tbuildPlane( 'x', 'y', 'z', - 1, - 1, width, height, - depth, widthSegments, heightSegments, 5 ); // nz\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\tfunction buildPlane( u, v, w, udir, vdir, width, height, depth, gridX, gridY, materialIndex ) {\n\n\t\t\tconst segmentWidth = width / gridX;\n\t\t\tconst segmentHeight = height / gridY;\n\n\t\t\tconst widthHalf = width / 2;\n\t\t\tconst heightHalf = height / 2;\n\t\t\tconst depthHalf = depth / 2;\n\n\t\t\tconst gridX1 = gridX + 1;\n\t\t\tconst gridY1 = gridY + 1;\n\n\t\t\tlet vertexCounter = 0;\n\t\t\tlet groupCount = 0;\n\n\t\t\tconst vector = new Vector3();\n\n\t\t\t// generate vertices, normals and uvs\n\n\t\t\tfor ( let iy = 0; iy < gridY1; iy ++ ) {\n\n\t\t\t\tconst y = iy * segmentHeight - heightHalf;\n\n\t\t\t\tfor ( let ix = 0; ix < gridX1; ix ++ ) {\n\n\t\t\t\t\tconst x = ix * segmentWidth - widthHalf;\n\n\t\t\t\t\t// set values to correct vector component\n\n\t\t\t\t\tvector[ u ] = x * udir;\n\t\t\t\t\tvector[ v ] = y * vdir;\n\t\t\t\t\tvector[ w ] = depthHalf;\n\n\t\t\t\t\t// now apply vector to vertex buffer\n\n\t\t\t\t\tvertices.push( vector.x, vector.y, vector.z );\n\n\t\t\t\t\t// set values to correct vector component\n\n\t\t\t\t\tvector[ u ] = 0;\n\t\t\t\t\tvector[ v ] = 0;\n\t\t\t\t\tvector[ w ] = depth > 0 ? 1 : - 1;\n\n\t\t\t\t\t// now apply vector to normal buffer\n\n\t\t\t\t\tnormals.push( vector.x, vector.y, vector.z );\n\n\t\t\t\t\t// uvs\n\n\t\t\t\t\tuvs.push( ix / gridX );\n\t\t\t\t\tuvs.push( 1 - ( iy / gridY ) );\n\n\t\t\t\t\t// counters\n\n\t\t\t\t\tvertexCounter += 1;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// indices\n\n\t\t\t// 1. you need three indices to draw a single face\n\t\t\t// 2. a single segment consists of two faces\n\t\t\t// 3. so we need to generate six (2*3) indices per segment\n\n\t\t\tfor ( let iy = 0; iy < gridY; iy ++ ) {\n\n\t\t\t\tfor ( let ix = 0; ix < gridX; ix ++ ) {\n\n\t\t\t\t\tconst a = numberOfVertices + ix + gridX1 * iy;\n\t\t\t\t\tconst b = numberOfVertices + ix + gridX1 * ( iy + 1 );\n\t\t\t\t\tconst c = numberOfVertices + ( ix + 1 ) + gridX1 * ( iy + 1 );\n\t\t\t\t\tconst d = numberOfVertices + ( ix + 1 ) + gridX1 * iy;\n\n\t\t\t\t\t// faces\n\n\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\tindices.push( b, c, d );\n\n\t\t\t\t\t// increase counter\n\n\t\t\t\t\tgroupCount += 6;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// add a group to the geometry. this will ensure multi material support\n\n\t\t\tscope.addGroup( groupStart, groupCount, materialIndex );\n\n\t\t\t// calculate new start value for groups\n\n\t\t\tgroupStart += groupCount;\n\n\t\t\t// update total number of vertices\n\n\t\t\tnumberOfVertices += vertexCounter;\n\n\t\t}\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new BoxGeometry( data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments );\n\n\t}\n\n}\n\n/**\n * Uniform Utilities\n */\n\nfunction cloneUniforms( src ) {\n\n\tconst dst = {};\n\n\tfor ( const u in src ) {\n\n\t\tdst[ u ] = {};\n\n\t\tfor ( const p in src[ u ] ) {\n\n\t\t\tconst property = src[ u ][ p ];\n\n\t\t\tif ( property && ( property.isColor ||\n\t\t\t\tproperty.isMatrix3 || property.isMatrix4 ||\n\t\t\t\tproperty.isVector2 || property.isVector3 || property.isVector4 ||\n\t\t\t\tproperty.isTexture || property.isQuaternion ) ) {\n\n\t\t\t\tdst[ u ][ p ] = property.clone();\n\n\t\t\t} else if ( Array.isArray( property ) ) {\n\n\t\t\t\tdst[ u ][ p ] = property.slice();\n\n\t\t\t} else {\n\n\t\t\t\tdst[ u ][ p ] = property;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\treturn dst;\n\n}\n\nfunction mergeUniforms( uniforms ) {\n\n\tconst merged = {};\n\n\tfor ( let u = 0; u < uniforms.length; u ++ ) {\n\n\t\tconst tmp = cloneUniforms( uniforms[ u ] );\n\n\t\tfor ( const p in tmp ) {\n\n\t\t\tmerged[ p ] = tmp[ p ];\n\n\t\t}\n\n\t}\n\n\treturn merged;\n\n}\n\n// Legacy\n\nconst UniformsUtils = { clone: cloneUniforms, merge: mergeUniforms };\n\nvar default_vertex = \"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\";\n\nvar default_fragment = \"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\";\n\n/**\n * parameters = {\n * defines: { \"label\" : \"value\" },\n * uniforms: { \"parameter1\": { value: 1.0 }, \"parameter2\": { value2: 2 } },\n *\n * fragmentShader: <string>,\n * vertexShader: <string>,\n *\n * wireframe: <boolean>,\n * wireframeLinewidth: <float>,\n *\n * lights: <bool>\n * }\n */\n\nclass ShaderMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'ShaderMaterial';\n\n\t\tthis.defines = {};\n\t\tthis.uniforms = {};\n\n\t\tthis.vertexShader = default_vertex;\n\t\tthis.fragmentShader = default_fragment;\n\n\t\tthis.linewidth = 1;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.fog = false; // set to use scene fog\n\t\tthis.lights = false; // set to use scene lights\n\t\tthis.clipping = false; // set to use user-defined clipping planes\n\n\t\tthis.extensions = {\n\t\t\tderivatives: false, // set to use derivatives\n\t\t\tfragDepth: false, // set to use fragment depth values\n\t\t\tdrawBuffers: false, // set to use draw buffers\n\t\t\tshaderTextureLOD: false // set to use shader texture LOD\n\t\t};\n\n\t\t// When rendered geometry doesn't include these attributes but the material does,\n\t\t// use these default values in WebGL. This avoids errors when buffer data is missing.\n\t\tthis.defaultAttributeValues = {\n\t\t\t'color': [ 1, 1, 1 ],\n\t\t\t'uv': [ 0, 0 ],\n\t\t\t'uv2': [ 0, 0 ]\n\t\t};\n\n\t\tthis.index0AttributeName = undefined;\n\t\tthis.uniformsNeedUpdate = false;\n\n\t\tthis.glslVersion = null;\n\n\t\tif ( parameters !== undefined ) {\n\n\t\t\tif ( parameters.attributes !== undefined ) {\n\n\t\t\t\tconsole.error( 'THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.' );\n\n\t\t\t}\n\n\t\t\tthis.setValues( parameters );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.fragmentShader = source.fragmentShader;\n\t\tthis.vertexShader = source.vertexShader;\n\n\t\tthis.uniforms = cloneUniforms( source.uniforms );\n\n\t\tthis.defines = Object.assign( {}, source.defines );\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\tthis.lights = source.lights;\n\t\tthis.clipping = source.clipping;\n\n\t\tthis.extensions = Object.assign( {}, source.extensions );\n\n\t\tthis.glslVersion = source.glslVersion;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.glslVersion = this.glslVersion;\n\t\tdata.uniforms = {};\n\n\t\tfor ( const name in this.uniforms ) {\n\n\t\t\tconst uniform = this.uniforms[ name ];\n\t\t\tconst value = uniform.value;\n\n\t\t\tif ( value && value.isTexture ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 't',\n\t\t\t\t\tvalue: value.toJSON( meta ).uuid\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isColor ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'c',\n\t\t\t\t\tvalue: value.getHex()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector2 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v2',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector3 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v3',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector4 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v4',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isMatrix3 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'm3',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isMatrix4 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'm4',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\tvalue: value\n\t\t\t\t};\n\n\t\t\t\t// note: the array variants v2v, v3v, v4v, m4v and tv are not supported so far\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( Object.keys( this.defines ).length > 0 ) data.defines = this.defines;\n\n\t\tdata.vertexShader = this.vertexShader;\n\t\tdata.fragmentShader = this.fragmentShader;\n\n\t\tconst extensions = {};\n\n\t\tfor ( const key in this.extensions ) {\n\n\t\t\tif ( this.extensions[ key ] === true ) extensions[ key ] = true;\n\n\t\t}\n\n\t\tif ( Object.keys( extensions ).length > 0 ) data.extensions = extensions;\n\n\t\treturn data;\n\n\t}\n\n}\n\nShaderMaterial.prototype.isShaderMaterial = true;\n\nclass Camera extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'Camera';\n\n\t\tthis.matrixWorldInverse = new Matrix4();\n\n\t\tthis.projectionMatrix = new Matrix4();\n\t\tthis.projectionMatrixInverse = new Matrix4();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.matrixWorldInverse.copy( source.matrixWorldInverse );\n\n\t\tthis.projectionMatrix.copy( source.projectionMatrix );\n\t\tthis.projectionMatrixInverse.copy( source.projectionMatrixInverse );\n\n\t\treturn this;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tconst e = this.matrixWorld.elements;\n\n\t\treturn target.set( - e[ 8 ], - e[ 9 ], - e[ 10 ] ).normalize();\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tsuper.updateWorldMatrix( updateParents, updateChildren );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nCamera.prototype.isCamera = true;\n\nclass PerspectiveCamera extends Camera {\n\n\tconstructor( fov = 50, aspect = 1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'PerspectiveCamera';\n\n\t\tthis.fov = fov;\n\t\tthis.zoom = 1;\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\t\tthis.focus = 10;\n\n\t\tthis.aspect = aspect;\n\t\tthis.view = null;\n\n\t\tthis.filmGauge = 35;\t// width of the film (default in millimeters)\n\t\tthis.filmOffset = 0;\t// horizontal film offset (same unit as gauge)\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.fov = source.fov;\n\t\tthis.zoom = source.zoom;\n\n\t\tthis.near = source.near;\n\t\tthis.far = source.far;\n\t\tthis.focus = source.focus;\n\n\t\tthis.aspect = source.aspect;\n\t\tthis.view = source.view === null ? null : Object.assign( {}, source.view );\n\n\t\tthis.filmGauge = source.filmGauge;\n\t\tthis.filmOffset = source.filmOffset;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the FOV by focal length in respect to the current .filmGauge.\n\t *\n\t * The default film gauge is 35, so that the focal length can be specified for\n\t * a 35mm (full frame) camera.\n\t *\n\t * Values for focal length and film gauge must have the same unit.\n\t */\n\tsetFocalLength( focalLength ) {\n\n\t\t/** see {@link http://www.bobatkins.com/photography/technical/field_of_view.html} */\n\t\tconst vExtentSlope = 0.5 * this.getFilmHeight() / focalLength;\n\n\t\tthis.fov = RAD2DEG * 2 * Math.atan( vExtentSlope );\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\t/**\n\t * Calculates the focal length from the current .fov and .filmGauge.\n\t */\n\tgetFocalLength() {\n\n\t\tconst vExtentSlope = Math.tan( DEG2RAD * 0.5 * this.fov );\n\n\t\treturn 0.5 * this.getFilmHeight() / vExtentSlope;\n\n\t}\n\n\tgetEffectiveFOV() {\n\n\t\treturn RAD2DEG * 2 * Math.atan(\n\t\t\tMath.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom );\n\n\t}\n\n\tgetFilmWidth() {\n\n\t\t// film not completely covered in portrait format (aspect < 1)\n\t\treturn this.filmGauge * Math.min( this.aspect, 1 );\n\n\t}\n\n\tgetFilmHeight() {\n\n\t\t// film not completely covered in landscape format (aspect > 1)\n\t\treturn this.filmGauge / Math.max( this.aspect, 1 );\n\n\t}\n\n\t/**\n\t * Sets an offset in a larger frustum. This is useful for multi-window or\n\t * multi-monitor/multi-machine setups.\n\t *\n\t * For example, if you have 3x2 monitors and each monitor is 1920x1080 and\n\t * the monitors are in grid like this\n\t *\n\t * +---+---+---+\n\t * | A | B | C |\n\t * +---+---+---+\n\t * | D | E | F |\n\t * +---+---+---+\n\t *\n\t * then for each monitor you would call it like this\n\t *\n\t * const w = 1920;\n\t * const h = 1080;\n\t * const fullWidth = w * 3;\n\t * const fullHeight = h * 2;\n\t *\n\t * --A--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );\n\t * --B--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );\n\t * --C--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );\n\t * --D--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );\n\t * --E--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );\n\t * --F--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );\n\t *\n\t * Note there is no reason monitors have to be the same size or in a grid.\n\t */\n\tsetViewOffset( fullWidth, fullHeight, x, y, width, height ) {\n\n\t\tthis.aspect = fullWidth / fullHeight;\n\n\t\tif ( this.view === null ) {\n\n\t\t\tthis.view = {\n\t\t\t\tenabled: true,\n\t\t\t\tfullWidth: 1,\n\t\t\t\tfullHeight: 1,\n\t\t\t\toffsetX: 0,\n\t\t\t\toffsetY: 0,\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1\n\t\t\t};\n\n\t\t}\n\n\t\tthis.view.enabled = true;\n\t\tthis.view.fullWidth = fullWidth;\n\t\tthis.view.fullHeight = fullHeight;\n\t\tthis.view.offsetX = x;\n\t\tthis.view.offsetY = y;\n\t\tthis.view.width = width;\n\t\tthis.view.height = height;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tclearViewOffset() {\n\n\t\tif ( this.view !== null ) {\n\n\t\t\tthis.view.enabled = false;\n\n\t\t}\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tupdateProjectionMatrix() {\n\n\t\tconst near = this.near;\n\t\tlet top = near * Math.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom;\n\t\tlet height = 2 * top;\n\t\tlet width = this.aspect * height;\n\t\tlet left = - 0.5 * width;\n\t\tconst view = this.view;\n\n\t\tif ( this.view !== null && this.view.enabled ) {\n\n\t\t\tconst fullWidth = view.fullWidth,\n\t\t\t\tfullHeight = view.fullHeight;\n\n\t\t\tleft += view.offsetX * width / fullWidth;\n\t\t\ttop -= view.offsetY * height / fullHeight;\n\t\t\twidth *= view.width / fullWidth;\n\t\t\theight *= view.height / fullHeight;\n\n\t\t}\n\n\t\tconst skew = this.filmOffset;\n\t\tif ( skew !== 0 ) left += near * skew / this.getFilmWidth();\n\n\t\tthis.projectionMatrix.makePerspective( left, left + width, top, top - height, near, this.far );\n\n\t\tthis.projectionMatrixInverse.copy( this.projectionMatrix ).invert();\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.fov = this.fov;\n\t\tdata.object.zoom = this.zoom;\n\n\t\tdata.object.near = this.near;\n\t\tdata.object.far = this.far;\n\t\tdata.object.focus = this.focus;\n\n\t\tdata.object.aspect = this.aspect;\n\n\t\tif ( this.view !== null ) data.object.view = Object.assign( {}, this.view );\n\n\t\tdata.object.filmGauge = this.filmGauge;\n\t\tdata.object.filmOffset = this.filmOffset;\n\n\t\treturn data;\n\n\t}\n\n}\n\nPerspectiveCamera.prototype.isPerspectiveCamera = true;\n\nconst fov = 90, aspect = 1;\n\nclass CubeCamera extends Object3D {\n\n\tconstructor( near, far, renderTarget ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CubeCamera';\n\n\t\tif ( renderTarget.isWebGLCubeRenderTarget !== true ) {\n\n\t\t\tconsole.error( 'THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis.renderTarget = renderTarget;\n\n\t\tconst cameraPX = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPX.layers = this.layers;\n\t\tcameraPX.up.set( 0, - 1, 0 );\n\t\tcameraPX.lookAt( new Vector3( 1, 0, 0 ) );\n\t\tthis.add( cameraPX );\n\n\t\tconst cameraNX = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNX.layers = this.layers;\n\t\tcameraNX.up.set( 0, - 1, 0 );\n\t\tcameraNX.lookAt( new Vector3( - 1, 0, 0 ) );\n\t\tthis.add( cameraNX );\n\n\t\tconst cameraPY = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPY.layers = this.layers;\n\t\tcameraPY.up.set( 0, 0, 1 );\n\t\tcameraPY.lookAt( new Vector3( 0, 1, 0 ) );\n\t\tthis.add( cameraPY );\n\n\t\tconst cameraNY = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNY.layers = this.layers;\n\t\tcameraNY.up.set( 0, 0, - 1 );\n\t\tcameraNY.lookAt( new Vector3( 0, - 1, 0 ) );\n\t\tthis.add( cameraNY );\n\n\t\tconst cameraPZ = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPZ.layers = this.layers;\n\t\tcameraPZ.up.set( 0, - 1, 0 );\n\t\tcameraPZ.lookAt( new Vector3( 0, 0, 1 ) );\n\t\tthis.add( cameraPZ );\n\n\t\tconst cameraNZ = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNZ.layers = this.layers;\n\t\tcameraNZ.up.set( 0, - 1, 0 );\n\t\tcameraNZ.lookAt( new Vector3( 0, 0, - 1 ) );\n\t\tthis.add( cameraNZ );\n\n\t}\n\n\tupdate( renderer, scene ) {\n\n\t\tif ( this.parent === null ) this.updateMatrixWorld();\n\n\t\tconst renderTarget = this.renderTarget;\n\n\t\tconst [ cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ ] = this.children;\n\n\t\tconst currentXrEnabled = renderer.xr.enabled;\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\n\t\trenderer.xr.enabled = false;\n\n\t\tconst generateMipmaps = renderTarget.texture.generateMipmaps;\n\n\t\trenderTarget.texture.generateMipmaps = false;\n\n\t\trenderer.setRenderTarget( renderTarget, 0 );\n\t\trenderer.render( scene, cameraPX );\n\n\t\trenderer.setRenderTarget( renderTarget, 1 );\n\t\trenderer.render( scene, cameraNX );\n\n\t\trenderer.setRenderTarget( renderTarget, 2 );\n\t\trenderer.render( scene, cameraPY );\n\n\t\trenderer.setRenderTarget( renderTarget, 3 );\n\t\trenderer.render( scene, cameraNY );\n\n\t\trenderer.setRenderTarget( renderTarget, 4 );\n\t\trenderer.render( scene, cameraPZ );\n\n\t\trenderTarget.texture.generateMipmaps = generateMipmaps;\n\n\t\trenderer.setRenderTarget( renderTarget, 5 );\n\t\trenderer.render( scene, cameraNZ );\n\n\t\trenderer.setRenderTarget( currentRenderTarget );\n\n\t\trenderer.xr.enabled = currentXrEnabled;\n\n\t\trenderTarget.texture.needsPMREMUpdate = true;\n\n\t}\n\n}\n\nclass CubeTexture extends Texture {\n\n\tconstructor( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding ) {\n\n\t\timages = images !== undefined ? images : [];\n\t\tmapping = mapping !== undefined ? mapping : CubeReflectionMapping;\n\n\t\tsuper( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding );\n\n\t\tthis.flipY = false;\n\n\t}\n\n\tget images() {\n\n\t\treturn this.image;\n\n\t}\n\n\tset images( value ) {\n\n\t\tthis.image = value;\n\n\t}\n\n}\n\nCubeTexture.prototype.isCubeTexture = true;\n\nclass WebGLCubeRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( size, options, dummy ) {\n\n\t\tif ( Number.isInteger( options ) ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )' );\n\n\t\t\toptions = dummy;\n\n\t\t}\n\n\t\tsuper( size, size, options );\n\n\t\toptions = options || {};\n\n\t\t// By convention -- likely based on the RenderMan spec from the 1990's -- cube maps are specified by WebGL (and three.js)\n\t\t// in a coordinate system in which positive-x is to the right when looking up the positive-z axis -- in other words,\n\t\t// in a left-handed coordinate system. By continuing this convention, preexisting cube maps continued to render correctly.\n\n\t\t// three.js uses a right-handed coordinate system. So environment maps used in three.js appear to have px and nx swapped\n\t\t// and the flag isRenderTargetTexture controls this conversion. The flip is not required when using WebGLCubeRenderTarget.texture\n\t\t// as a cube texture (this is detected when isRenderTargetTexture is set to true for cube textures).\n\n\t\tthis.texture = new CubeTexture( undefined, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.encoding );\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t\tthis.texture.generateMipmaps = options.generateMipmaps !== undefined ? options.generateMipmaps : false;\n\t\tthis.texture.minFilter = options.minFilter !== undefined ? options.minFilter : LinearFilter;\n\n\t}\n\n\tfromEquirectangularTexture( renderer, texture ) {\n\n\t\tthis.texture.type = texture.type;\n\t\tthis.texture.format = RGBAFormat; // see #18859\n\t\tthis.texture.encoding = texture.encoding;\n\n\t\tthis.texture.generateMipmaps = texture.generateMipmaps;\n\t\tthis.texture.minFilter = texture.minFilter;\n\t\tthis.texture.magFilter = texture.magFilter;\n\n\t\tconst shader = {\n\n\t\t\tuniforms: {\n\t\t\t\ttEquirect: { value: null },\n\t\t\t},\n\n\t\t\tvertexShader: /* glsl */`\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`,\n\n\t\t\tfragmentShader: /* glsl */`\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`\n\t\t};\n\n\t\tconst geometry = new BoxGeometry( 5, 5, 5 );\n\n\t\tconst material = new ShaderMaterial( {\n\n\t\t\tname: 'CubemapFromEquirect',\n\n\t\t\tuniforms: cloneUniforms( shader.uniforms ),\n\t\t\tvertexShader: shader.vertexShader,\n\t\t\tfragmentShader: shader.fragmentShader,\n\t\t\tside: BackSide,\n\t\t\tblending: NoBlending\n\n\t\t} );\n\n\t\tmaterial.uniforms.tEquirect.value = texture;\n\n\t\tconst mesh = new Mesh( geometry, material );\n\n\t\tconst currentMinFilter = texture.minFilter;\n\n\t\t// Avoid blurred poles\n\t\tif ( texture.minFilter === LinearMipmapLinearFilter ) texture.minFilter = LinearFilter;\n\n\t\tconst camera = new CubeCamera( 1, 10, this );\n\t\tcamera.update( renderer, mesh );\n\n\t\ttexture.minFilter = currentMinFilter;\n\n\t\tmesh.geometry.dispose();\n\t\tmesh.material.dispose();\n\n\t\treturn this;\n\n\t}\n\n\tclear( renderer, color, depth, stencil ) {\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\trenderer.setRenderTarget( this, i );\n\n\t\t\trenderer.clear( color, depth, stencil );\n\n\t\t}\n\n\t\trenderer.setRenderTarget( currentRenderTarget );\n\n\t}\n\n}\n\nWebGLCubeRenderTarget.prototype.isWebGLCubeRenderTarget = true;\n\nconst _vector1 = /*@__PURE__*/ new Vector3();\nconst _vector2 = /*@__PURE__*/ new Vector3();\nconst _normalMatrix = /*@__PURE__*/ new Matrix3();\n\nclass Plane {\n\n\tconstructor( normal = new Vector3( 1, 0, 0 ), constant = 0 ) {\n\n\t\t// normal is assumed to be normalized\n\n\t\tthis.normal = normal;\n\t\tthis.constant = constant;\n\n\t}\n\n\tset( normal, constant ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = constant;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponents( x, y, z, w ) {\n\n\t\tthis.normal.set( x, y, z );\n\t\tthis.constant = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromNormalAndCoplanarPoint( normal, point ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = - point.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCoplanarPoints( a, b, c ) {\n\n\t\tconst normal = _vector1.subVectors( c, b ).cross( _vector2.subVectors( a, b ) ).normalize();\n\n\t\t// Q: should an error be thrown if normal is zero (e.g. degenerate plane)?\n\n\t\tthis.setFromNormalAndCoplanarPoint( normal, a );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( plane ) {\n\n\t\tthis.normal.copy( plane.normal );\n\t\tthis.constant = plane.constant;\n\n\t\treturn this;\n\n\t}\n\n\tnormalize() {\n\n\t\t// Note: will lead to a divide by zero if the plane is invalid.\n\n\t\tconst inverseNormalLength = 1.0 / this.normal.length();\n\t\tthis.normal.multiplyScalar( inverseNormalLength );\n\t\tthis.constant *= inverseNormalLength;\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.constant *= - 1;\n\t\tthis.normal.negate();\n\n\t\treturn this;\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.normal.dot( point ) + this.constant;\n\n\t}\n\n\tdistanceToSphere( sphere ) {\n\n\t\treturn this.distanceToPoint( sphere.center ) - sphere.radius;\n\n\t}\n\n\tprojectPoint( point, target ) {\n\n\t\treturn target.copy( this.normal ).multiplyScalar( - this.distanceToPoint( point ) ).add( point );\n\n\t}\n\n\tintersectLine( line, target ) {\n\n\t\tconst direction = line.delta( _vector1 );\n\n\t\tconst denominator = this.normal.dot( direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( this.distanceToPoint( line.start ) === 0 ) {\n\n\t\t\t\treturn target.copy( line.start );\n\n\t\t\t}\n\n\t\t\t// Unsure if this is the correct method to handle this case.\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( line.start.dot( this.normal ) + this.constant ) / denominator;\n\n\t\tif ( t < 0 || t > 1 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn target.copy( direction ).multiplyScalar( t ).add( line.start );\n\n\t}\n\n\tintersectsLine( line ) {\n\n\t\t// Note: this tests if a line intersects the plane, not whether it (or its end-points) are coplanar with it.\n\n\t\tconst startSign = this.distanceToPoint( line.start );\n\t\tconst endSign = this.distanceToPoint( line.end );\n\n\t\treturn ( startSign < 0 && endSign > 0 ) || ( endSign < 0 && startSign > 0 );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsPlane( this );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn sphere.intersectsPlane( this );\n\n\t}\n\n\tcoplanarPoint( target ) {\n\n\t\treturn target.copy( this.normal ).multiplyScalar( - this.constant );\n\n\t}\n\n\tapplyMatrix4( matrix, optionalNormalMatrix ) {\n\n\t\tconst normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix( matrix );\n\n\t\tconst referencePoint = this.coplanarPoint( _vector1 ).applyMatrix4( matrix );\n\n\t\tconst normal = this.normal.applyMatrix3( normalMatrix ).normalize();\n\n\t\tthis.constant = - referencePoint.dot( normal );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.constant -= offset.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tequals( plane ) {\n\n\t\treturn plane.normal.equals( this.normal ) && ( plane.constant === this.constant );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nPlane.prototype.isPlane = true;\n\nconst _sphere$2 = /*@__PURE__*/ new Sphere();\nconst _vector$7 = /*@__PURE__*/ new Vector3();\n\nclass Frustum {\n\n\tconstructor( p0 = new Plane(), p1 = new Plane(), p2 = new Plane(), p3 = new Plane(), p4 = new Plane(), p5 = new Plane() ) {\n\n\t\tthis.planes = [ p0, p1, p2, p3, p4, p5 ];\n\n\t}\n\n\tset( p0, p1, p2, p3, p4, p5 ) {\n\n\t\tconst planes = this.planes;\n\n\t\tplanes[ 0 ].copy( p0 );\n\t\tplanes[ 1 ].copy( p1 );\n\t\tplanes[ 2 ].copy( p2 );\n\t\tplanes[ 3 ].copy( p3 );\n\t\tplanes[ 4 ].copy( p4 );\n\t\tplanes[ 5 ].copy( p5 );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( frustum ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tplanes[ i ].copy( frustum.planes[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromProjectionMatrix( m ) {\n\n\t\tconst planes = this.planes;\n\t\tconst me = m.elements;\n\t\tconst me0 = me[ 0 ], me1 = me[ 1 ], me2 = me[ 2 ], me3 = me[ 3 ];\n\t\tconst me4 = me[ 4 ], me5 = me[ 5 ], me6 = me[ 6 ], me7 = me[ 7 ];\n\t\tconst me8 = me[ 8 ], me9 = me[ 9 ], me10 = me[ 10 ], me11 = me[ 11 ];\n\t\tconst me12 = me[ 12 ], me13 = me[ 13 ], me14 = me[ 14 ], me15 = me[ 15 ];\n\n\t\tplanes[ 0 ].setComponents( me3 - me0, me7 - me4, me11 - me8, me15 - me12 ).normalize();\n\t\tplanes[ 1 ].setComponents( me3 + me0, me7 + me4, me11 + me8, me15 + me12 ).normalize();\n\t\tplanes[ 2 ].setComponents( me3 + me1, me7 + me5, me11 + me9, me15 + me13 ).normalize();\n\t\tplanes[ 3 ].setComponents( me3 - me1, me7 - me5, me11 - me9, me15 - me13 ).normalize();\n\t\tplanes[ 4 ].setComponents( me3 - me2, me7 - me6, me11 - me10, me15 - me14 ).normalize();\n\t\tplanes[ 5 ].setComponents( me3 + me2, me7 + me6, me11 + me10, me15 + me14 ).normalize();\n\n\t\treturn this;\n\n\t}\n\n\tintersectsObject( object ) {\n\n\t\tconst geometry = object.geometry;\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere$2.copy( geometry.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\treturn this.intersectsSphere( _sphere$2 );\n\n\t}\n\n\tintersectsSprite( sprite ) {\n\n\t\t_sphere$2.center.set( 0, 0, 0 );\n\t\t_sphere$2.radius = 0.7071067811865476;\n\t\t_sphere$2.applyMatrix4( sprite.matrixWorld );\n\n\t\treturn this.intersectsSphere( _sphere$2 );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst planes = this.planes;\n\t\tconst center = sphere.center;\n\t\tconst negRadius = - sphere.radius;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst distance = planes[ i ].distanceToPoint( center );\n\n\t\t\tif ( distance < negRadius ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst plane = planes[ i ];\n\n\t\t\t// corner at max distance\n\n\t\t\t_vector$7.x = plane.normal.x > 0 ? box.max.x : box.min.x;\n\t\t\t_vector$7.y = plane.normal.y > 0 ? box.max.y : box.min.y;\n\t\t\t_vector$7.z = plane.normal.z > 0 ? box.max.z : box.min.z;\n\n\t\t\tif ( plane.distanceToPoint( _vector$7 ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tif ( planes[ i ].distanceToPoint( point ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nfunction WebGLAnimation() {\n\n\tlet context = null;\n\tlet isAnimating = false;\n\tlet animationLoop = null;\n\tlet requestId = null;\n\n\tfunction onAnimationFrame( time, frame ) {\n\n\t\tanimationLoop( time, frame );\n\n\t\trequestId = context.requestAnimationFrame( onAnimationFrame );\n\n\t}\n\n\treturn {\n\n\t\tstart: function () {\n\n\t\t\tif ( isAnimating === true ) return;\n\t\t\tif ( animationLoop === null ) return;\n\n\t\t\trequestId = context.requestAnimationFrame( onAnimationFrame );\n\n\t\t\tisAnimating = true;\n\n\t\t},\n\n\t\tstop: function () {\n\n\t\t\tcontext.cancelAnimationFrame( requestId );\n\n\t\t\tisAnimating = false;\n\n\t\t},\n\n\t\tsetAnimationLoop: function ( callback ) {\n\n\t\t\tanimationLoop = callback;\n\n\t\t},\n\n\t\tsetContext: function ( value ) {\n\n\t\t\tcontext = value;\n\n\t\t}\n\n\t};\n\n}\n\nfunction WebGLAttributes( gl, capabilities ) {\n\n\tconst isWebGL2 = capabilities.isWebGL2;\n\n\tconst buffers = new WeakMap();\n\n\tfunction createBuffer( attribute, bufferType ) {\n\n\t\tconst array = attribute.array;\n\t\tconst usage = attribute.usage;\n\n\t\tconst buffer = gl.createBuffer();\n\n\t\tgl.bindBuffer( bufferType, buffer );\n\t\tgl.bufferData( bufferType, array, usage );\n\n\t\tattribute.onUploadCallback();\n\n\t\tlet type = 5126;\n\n\t\tif ( array instanceof Float32Array ) {\n\n\t\t\ttype = 5126;\n\n\t\t} else if ( array instanceof Float64Array ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.' );\n\n\t\t} else if ( array instanceof Uint16Array ) {\n\n\t\t\tif ( attribute.isFloat16BufferAttribute ) {\n\n\t\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\t\ttype = 5131;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.' );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\ttype = 5123;\n\n\t\t\t}\n\n\t\t} else if ( array instanceof Int16Array ) {\n\n\t\t\ttype = 5122;\n\n\t\t} else if ( array instanceof Uint32Array ) {\n\n\t\t\ttype = 5125;\n\n\t\t} else if ( array instanceof Int32Array ) {\n\n\t\t\ttype = 5124;\n\n\t\t} else if ( array instanceof Int8Array ) {\n\n\t\t\ttype = 5120;\n\n\t\t} else if ( array instanceof Uint8Array ) {\n\n\t\t\ttype = 5121;\n\n\t\t} else if ( array instanceof Uint8ClampedArray ) {\n\n\t\t\ttype = 5121;\n\n\t\t}\n\n\t\treturn {\n\t\t\tbuffer: buffer,\n\t\t\ttype: type,\n\t\t\tbytesPerElement: array.BYTES_PER_ELEMENT,\n\t\t\tversion: attribute.version\n\t\t};\n\n\t}\n\n\tfunction updateBuffer( buffer, attribute, bufferType ) {\n\n\t\tconst array = attribute.array;\n\t\tconst updateRange = attribute.updateRange;\n\n\t\tgl.bindBuffer( bufferType, buffer );\n\n\t\tif ( updateRange.count === - 1 ) {\n\n\t\t\t// Not using update ranges\n\n\t\t\tgl.bufferSubData( bufferType, 0, array );\n\n\t\t} else {\n\n\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\tgl.bufferSubData( bufferType, updateRange.offset * array.BYTES_PER_ELEMENT,\n\t\t\t\t\tarray, updateRange.offset, updateRange.count );\n\n\t\t\t} else {\n\n\t\t\t\tgl.bufferSubData( bufferType, updateRange.offset * array.BYTES_PER_ELEMENT,\n\t\t\t\t\tarray.subarray( updateRange.offset, updateRange.offset + updateRange.count ) );\n\n\t\t\t}\n\n\t\t\tupdateRange.count = - 1; // reset range\n\n\t\t}\n\n\t}\n\n\t//\n\n\tfunction get( attribute ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\treturn buffers.get( attribute );\n\n\t}\n\n\tfunction remove( attribute ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\tconst data = buffers.get( attribute );\n\n\t\tif ( data ) {\n\n\t\t\tgl.deleteBuffer( data.buffer );\n\n\t\t\tbuffers.delete( attribute );\n\n\t\t}\n\n\t}\n\n\tfunction update( attribute, bufferType ) {\n\n\t\tif ( attribute.isGLBufferAttribute ) {\n\n\t\t\tconst cached = buffers.get( attribute );\n\n\t\t\tif ( ! cached || cached.version < attribute.version ) {\n\n\t\t\t\tbuffers.set( attribute, {\n\t\t\t\t\tbuffer: attribute.buffer,\n\t\t\t\t\ttype: attribute.type,\n\t\t\t\t\tbytesPerElement: attribute.elementSize,\n\t\t\t\t\tversion: attribute.version\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\tconst data = buffers.get( attribute );\n\n\t\tif ( data === undefined ) {\n\n\t\t\tbuffers.set( attribute, createBuffer( attribute, bufferType ) );\n\n\t\t} else if ( data.version < attribute.version ) {\n\n\t\t\tupdateBuffer( data.buffer, attribute, bufferType );\n\n\t\t\tdata.version = attribute.version;\n\n\t\t}\n\n\t}\n\n\treturn {\n\n\t\tget: get,\n\t\tremove: remove,\n\t\tupdate: update\n\n\t};\n\n}\n\nclass PlaneGeometry extends BufferGeometry {\n\n\tconstructor( width = 1, height = 1, widthSegments = 1, heightSegments = 1 ) {\n\n\t\tsuper();\n\t\tthis.type = 'PlaneGeometry';\n\n\t\tthis.parameters = {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments\n\t\t};\n\n\t\tconst width_half = width / 2;\n\t\tconst height_half = height / 2;\n\n\t\tconst gridX = Math.floor( widthSegments );\n\t\tconst gridY = Math.floor( heightSegments );\n\n\t\tconst gridX1 = gridX + 1;\n\t\tconst gridY1 = gridY + 1;\n\n\t\tconst segment_width = width / gridX;\n\t\tconst segment_height = height / gridY;\n\n\t\t//\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\tfor ( let iy = 0; iy < gridY1; iy ++ ) {\n\n\t\t\tconst y = iy * segment_height - height_half;\n\n\t\t\tfor ( let ix = 0; ix < gridX1; ix ++ ) {\n\n\t\t\t\tconst x = ix * segment_width - width_half;\n\n\t\t\t\tvertices.push( x, - y, 0 );\n\n\t\t\t\tnormals.push( 0, 0, 1 );\n\n\t\t\t\tuvs.push( ix / gridX );\n\t\t\t\tuvs.push( 1 - ( iy / gridY ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfor ( let iy = 0; iy < gridY; iy ++ ) {\n\n\t\t\tfor ( let ix = 0; ix < gridX; ix ++ ) {\n\n\t\t\t\tconst a = ix + gridX1 * iy;\n\t\t\t\tconst b = ix + gridX1 * ( iy + 1 );\n\t\t\t\tconst c = ( ix + 1 ) + gridX1 * ( iy + 1 );\n\t\t\t\tconst d = ( ix + 1 ) + gridX1 * iy;\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new PlaneGeometry( data.width, data.height, data.widthSegments, data.heightSegments );\n\n\t}\n\n}\n\nvar alphamap_fragment = \"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\\n#endif\";\n\nvar alphamap_pars_fragment = \"#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\n\nvar alphatest_fragment = \"#ifdef USE_ALPHATEST\\n\\tif ( diffuseColor.a < alphaTest ) discard;\\n#endif\";\n\nvar alphatest_pars_fragment = \"#ifdef USE_ALPHATEST\\n\\tuniform float alphaTest;\\n#endif\";\n\nvar aomap_fragment = \"#ifdef USE_AOMAP\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\\t\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\\n\\t#endif\\n#endif\";\n\nvar aomap_pars_fragment = \"#ifdef USE_AOMAP\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n#endif\";\n\nvar begin_vertex = \"vec3 transformed = vec3( position );\";\n\nvar beginnormal_vertex = \"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\";\n\nvar bsdfs = \"vec3 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 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}\\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 f0, const in float f90, const in float 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\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\tfloat D = D_GGX( alpha, dotNH );\\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}\\nfloat 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}\\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\";\n\nvar bumpmap_pars_fragment = \"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vUv );\\n\\t\\tvec2 dSTdy = dFdy( vUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + 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 = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\\n\\t\\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\\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\";\n\nvar clipping_planes_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvec4 plane;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\tplane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\tbool clipped = true;\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\tif ( clipped ) discard;\\n\\t#endif\\n#endif\";\n\nvar clipping_planes_pars_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\";\n\nvar clipping_planes_pars_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n#endif\";\n\nvar clipping_planes_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvClipPosition = - mvPosition.xyz;\\n#endif\";\n\nvar color_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\\tdiffuseColor *= vColor;\\n#elif defined( USE_COLOR )\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\";\n\nvar color_pars_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\n\nvar color_pars_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\n\nvar color_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\\tvColor = vec4( 1.0 );\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_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\nvar 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; }\\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 color ) { return dot( color, vec3( 0.3333 ) ); }\\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};\\nstruct GeometricContext {\\n\\tvec3 position;\\n\\tvec3 normal;\\n\\tvec3 viewDir;\\n#ifdef USE_CLEARCOAT\\n\\tvec3 clearcoatNormal;\\n#endif\\n};\\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 linearToRelativeLuminance( const in vec3 color ) {\\n\\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\\n\\treturn dot( weights, color.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}\";\n\nvar cube_uv_reflection_fragment = \"#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t#define cubeUV_maxMipLevel 8.0\\n\\t#define cubeUV_minMipLevel 4.0\\n\\t#define cubeUV_maxTileSize 256.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\\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\\n\\t\\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 ) + 0.5;\\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\\tif ( mipInt < cubeUV_maxMipLevel ) {\\n\\t\\t\\tuv.y += 2.0 * cubeUV_maxTileSize;\\n\\t\\t}\\n\\t\\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\\n\\t\\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\\n\\t\\tuv *= texelSize;\\n\\t\\treturn texture2D( envMap, uv ).rgb;\\n\\t}\\n\\t#define r0 1.0\\n\\t#define v0 0.339\\n\\t#define m0 - 2.0\\n\\t#define r1 0.8\\n\\t#define v1 0.276\\n\\t#define m1 - 1.0\\n\\t#define r4 0.4\\n\\t#define v4 0.046\\n\\t#define m4 2.0\\n\\t#define r5 0.305\\n\\t#define v5 0.016\\n\\t#define m5 3.0\\n\\t#define r6 0.21\\n\\t#define v6 0.0038\\n\\t#define m6 4.0\\n\\tfloat roughnessToMip( float roughness ) {\\n\\t\\tfloat mip = 0.0;\\n\\t\\tif ( roughness >= r1 ) {\\n\\t\\t\\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\\n\\t\\t} else if ( roughness >= r4 ) {\\n\\t\\t\\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\\n\\t\\t} else if ( roughness >= r5 ) {\\n\\t\\t\\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\\n\\t\\t} else if ( roughness >= r6 ) {\\n\\t\\t\\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + 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 ), m0, cubeUV_maxMipLevel );\\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\";\n\nvar defaultnormal_vertex = \"vec3 transformedNormal = objectNormal;\\n#ifdef USE_INSTANCING\\n\\tmat3 m = mat3( instanceMatrix );\\n\\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\\n\\ttransformedNormal = m * transformedNormal;\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#ifdef FLIP_SIDED\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\t#endif\\n#endif\";\n\nvar displacementmap_pars_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\";\n\nvar displacementmap_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\\n#endif\";\n\nvar emissivemap_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\";\n\nvar emissivemap_pars_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\";\n\nvar encodings_fragment = \"gl_FragColor = linearToOutputTexel( gl_FragColor );\";\n\nvar encodings_pars_fragment = \"vec4 LinearToLinear( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 LinearTosRGB( 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}\";\n\nvar 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, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\\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\";\n\nvar envmap_common_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\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\";\n\nvar envmap_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float reflectivity;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\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\";\n\nvar envmap_pars_vertex = \"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\\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\";\n\nvar 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\";\n\nvar fog_vertex = \"#ifdef USE_FOG\\n\\tvFogDepth = - mvPosition.z;\\n#endif\";\n\nvar fog_pars_vertex = \"#ifdef USE_FOG\\n\\tvarying float vFogDepth;\\n#endif\";\n\nvar 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\";\n\nvar 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\";\n\nvar 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\\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\\n\\t#endif\\n}\";\n\nvar lightmap_fragment = \"#ifdef USE_LIGHTMAP\\n\\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\\n\\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tlightMapIrradiance *= PI;\\n\\t#endif\\n\\treflectedLight.indirectDiffuse += lightMapIrradiance;\\n#endif\";\n\nvar lightmap_pars_fragment = \"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\";\n\nvar lights_lambert_vertex = \"vec3 diffuse = vec3( 1.0 );\\nGeometricContext geometry;\\ngeometry.position = mvPosition.xyz;\\ngeometry.normal = normalize( transformedNormal );\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\\nGeometricContext backGeometry;\\nbackGeometry.position = geometry.position;\\nbackGeometry.normal = -geometry.normal;\\nbackGeometry.viewDir = geometry.viewDir;\\nvLightFront = vec3( 0.0 );\\nvIndirectFront = vec3( 0.0 );\\n#ifdef DOUBLE_SIDED\\n\\tvLightBack = vec3( 0.0 );\\n\\tvIndirectBack = vec3( 0.0 );\\n#endif\\nIncidentLight directLight;\\nfloat dotNL;\\nvec3 directLightColor_Diffuse;\\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry.normal );\\n#ifdef DOUBLE_SIDED\\n\\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\\n\\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry.normal );\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tgetPointLightInfo( pointLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tgetSpotLightInfo( spotLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_DIR_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tgetDirectionalLightInfo( directionalLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry.normal );\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\";\n\nvar lights_pars_begin = \"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\nuniform vec3 lightProbe[ 9 ];\\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\\t#if defined ( PHYSICALLY_CORRECT_LIGHTS )\\n\\t\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\t\\tif ( cutoffDistance > 0.0 ) {\\n\\t\\t\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t\\t}\\n\\t\\treturn distanceFalloff;\\n\\t#else\\n\\t\\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\\n\\t\\t\\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\\n\\t\\t}\\n\\t\\treturn 1.0;\\n\\t#endif\\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, const in GeometricContext geometry, 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 GeometricContext geometry, out IncidentLight light ) {\\n\\t\\tvec3 lVector = pointLight.position - geometry.position;\\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 GeometricContext geometry, out IncidentLight light ) {\\n\\t\\tvec3 lVector = spotLight.position - geometry.position;\\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\";\n\nvar envmap_physical_pars_fragment = \"#if defined( USE_ENVMAP )\\n\\t#ifdef ENVMAP_MODE_REFRACTION\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n\\tvec3 getIBLIrradiance( const in vec3 normal ) {\\n\\t\\t#if defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, 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#if defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 reflectVec;\\n\\t\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\t\\treflectVec = reflect( - viewDir, normal );\\n\\t\\t\\t\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\t\\t\\t#else\\n\\t\\t\\t\\treflectVec = refract( - viewDir, normal, refractionRatio );\\n\\t\\t\\t#endif\\n\\t\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, 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#endif\";\n\nvar lights_toon_fragment = \"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\";\n\nvar lights_toon_pars_fragment = \"varying vec3 vViewPosition;\\nstruct ToonMaterial {\\n\\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, 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\\n#define Material_LightProbeLOD( material )\\t(0)\";\n\nvar lights_phong_fragment = \"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\";\n\nvar 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 GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, 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\\n#define Material_LightProbeLOD( material )\\t(0)\";\n\nvar lights_physical_fragment = \"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\\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\\t#ifdef SPECULAR\\n\\t\\tfloat specularIntensityFactor = specularIntensity;\\n\\t\\tvec3 specularColorFactor = specularColor;\\n\\t\\t#ifdef USE_SPECULARINTENSITYMAP\\n\\t\\t\\tspecularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a;\\n\\t\\t#endif\\n\\t\\t#ifdef USE_SPECULARCOLORMAP\\n\\t\\t\\tspecularColorFactor *= texture2D( specularColorMap, vUv ).rgb;\\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( ( ior - 1.0 ) / ( 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, vUv ).x;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).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_SHEEN\\n\\tmaterial.sheenColor = sheenColor;\\n\\t#ifdef USE_SHEENCOLORMAP\\n\\t\\tmaterial.sheenColor *= texture2D( sheenColorMap, vUv ).rgb;\\n\\t#endif\\n\\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\\n\\t#ifdef USE_SHEENROUGHNESSMAP\\n\\t\\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a;\\n\\t#endif\\n#endif\";\n\nvar lights_physical_pars_fragment = \"struct PhysicalMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat roughness;\\n\\tvec3 specularColor;\\n\\tfloat specularF90;\\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_SHEEN\\n\\t\\tvec3 sheenColor;\\n\\t\\tfloat sheenRoughness;\\n\\t#endif\\n};\\nvec3 clearcoatSpecular = vec3( 0.0 );\\nvec3 sheenSpecular = vec3( 0.0 );\\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}\\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\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\tvec3 FssEss = specularColor * fab.x + specularF90 * fab.y;\\n\\tfloat Ess = fab.x + fab.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 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 GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometry.normal;\\n\\t\\tvec3 viewDir = geometry.viewDir;\\n\\t\\tvec3 position = geometry.position;\\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 GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\\n\\t\\tvec3 ccIrradiance = dotNLcc * directLight.color;\\n\\t\\tclearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\\n\\t#endif\\n\\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness );\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, 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 GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\\n\\t#endif\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\\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}\";\n\nvar lights_fragment_begin = \"\\nGeometricContext geometry;\\ngeometry.position = - vViewPosition;\\ngeometry.normal = normal;\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\n#ifdef USE_CLEARCOAT\\n\\tgeometry.clearcoatNormal = clearcoatNormal;\\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, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, 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\\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, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, 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, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, 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, geometry, 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\\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\\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 ], geometry.normal );\\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\";\n\nvar lights_fragment_maps = \"#if defined( RE_IndirectDiffuse )\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\\n\\t\\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tlightMapIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tiblIrradiance += getIBLIrradiance( geometry.normal );\\n\\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\\n\\t#endif\\n#endif\";\n\nvar lights_fragment_end = \"#if defined( RE_IndirectDiffuse )\\n\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\\n#endif\";\n\nvar logdepthbuf_fragment = \"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\";\n\nvar logdepthbuf_pars_fragment = \"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";\n\nvar logdepthbuf_pars_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t\\tvarying float vIsPerspective;\\n\\t#else\\n\\t\\tuniform float logDepthBufFC;\\n\\t#endif\\n#endif\";\n\nvar logdepthbuf_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n\\t#else\\n\\t\\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\\n\\t\\t\\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\\n\\t\\t\\tgl_Position.z *= gl_Position.w;\\n\\t\\t}\\n\\t#endif\\n#endif\";\n\nvar map_fragment = \"#ifdef USE_MAP\\n\\tvec4 sampledDiffuseColor = texture2D( map, vUv );\\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#endif\\n\\tdiffuseColor *= sampledDiffuseColor;\\n#endif\";\n\nvar map_pars_fragment = \"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\";\n\nvar map_particle_fragment = \"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\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\";\n\nvar map_particle_pars_fragment = \"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tuniform mat3 uvTransform;\\n#endif\\n#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\n\nvar metalnessmap_fragment = \"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\";\n\nvar metalnessmap_pars_fragment = \"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\";\n\nvar morphnormal_vertex = \"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\t\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1, 2 ) * morphTargetInfluences[ i ];\\n\\t\\t}\\n\\t#else\\n\\t\\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\\n\\t\\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\\n\\t\\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\\n\\t\\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\\n\\t#endif\\n#endif\";\n\nvar morphtarget_pars_vertex = \"#ifdef USE_MORPHTARGETS\\n\\tuniform float morphTargetBaseInfluence;\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\t\\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\t\\tuniform sampler2DArray morphTargetsTexture;\\n\\t\\tuniform vec2 morphTargetsTextureSize;\\n\\t\\tvec3 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset, const in int stride ) {\\n\\t\\t\\tfloat texelIndex = float( vertexIndex * stride + offset );\\n\\t\\t\\tfloat y = floor( texelIndex / morphTargetsTextureSize.x );\\n\\t\\t\\tfloat x = texelIndex - y * morphTargetsTextureSize.x;\\n\\t\\t\\tvec3 morphUV = vec3( ( x + 0.5 ) / morphTargetsTextureSize.x, y / morphTargetsTextureSize.y, morphTargetIndex );\\n\\t\\t\\treturn texture( morphTargetsTexture, morphUV ).xyz;\\n\\t\\t}\\n\\t#else\\n\\t\\t#ifndef USE_MORPHNORMALS\\n\\t\\t\\tuniform float morphTargetInfluences[ 8 ];\\n\\t\\t#else\\n\\t\\t\\tuniform float morphTargetInfluences[ 4 ];\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar morphtarget_vertex = \"#ifdef USE_MORPHTARGETS\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\t\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t\\t#ifndef USE_MORPHNORMALS\\n\\t\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0, 1 ) * morphTargetInfluences[ i ];\\n\\t\\t\\t#else\\n\\t\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0, 2 ) * morphTargetInfluences[ i ];\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\t#else\\n\\t\\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\\n\\t\\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\\n\\t\\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\\n\\t\\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\\n\\t\\t#ifndef USE_MORPHNORMALS\\n\\t\\t\\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\\n\\t\\t\\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\\n\\t\\t\\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\\n\\t\\t\\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar normal_fragment_begin = \"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n#ifdef FLAT_SHADED\\n\\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\\n\\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\t#ifdef USE_TANGENT\\n\\t\\tvec3 tangent = normalize( vTangent );\\n\\t\\tvec3 bitangent = normalize( vBitangent );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\ttangent = tangent * faceDirection;\\n\\t\\t\\tbitangent = bitangent * faceDirection;\\n\\t\\t#endif\\n\\t\\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\\n\\t\\t\\tmat3 vTBN = mat3( tangent, bitangent, normal );\\n\\t\\t#endif\\n\\t#endif\\n#endif\\nvec3 geometryNormal = normal;\";\n\nvar normal_fragment_maps = \"#ifdef OBJECTSPACE_NORMALMAP\\n\\tnormal = texture2D( normalMap, vUv ).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( TANGENTSPACE_NORMALMAP )\\n\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\t#ifdef USE_TANGENT\\n\\t\\tnormal = normalize( vTBN * mapN );\\n\\t#else\\n\\t\\tnormal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection );\\n\\t#endif\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n#endif\";\n\nvar 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\";\n\nvar 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\";\n\nvar 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\";\n\nvar normalmap_pars_fragment = \"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n#endif\\n#ifdef OBJECTSPACE_NORMALMAP\\n\\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\\n\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\\n\\t\\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\\n\\t\\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\\n\\t\\tvec2 st0 = dFdx( vUv.st );\\n\\t\\tvec2 st1 = dFdy( vUv.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 : faceDirection * inversesqrt( det );\\n\\t\\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\\n\\t}\\n#endif\";\n\nvar clearcoat_normal_fragment_begin = \"#ifdef USE_CLEARCOAT\\n\\tvec3 clearcoatNormal = geometryNormal;\\n#endif\";\n\nvar clearcoat_normal_fragment_maps = \"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\t#ifdef USE_TANGENT\\n\\t\\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\\n\\t#else\\n\\t\\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\\n\\t#endif\\n#endif\";\n\nvar clearcoat_pars_fragment = \"#ifdef USE_CLEARCOATMAP\\n\\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n#endif\";\n\nvar output_fragment = \"#ifdef OPAQUE\\ndiffuseColor.a = 1.0;\\n#endif\\n#ifdef USE_TRANSMISSION\\ndiffuseColor.a *= transmissionAlpha + 0.1;\\n#endif\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\";\n\nvar 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}\\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 linearClipZ, const in float near, const in float far ) {\\n\\treturn linearClipZ * ( 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 invClipZ, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\\n}\";\n\nvar premultiplied_alpha_fragment = \"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\";\n\nvar project_vertex = \"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_INSTANCING\\n\\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\";\n\nvar dithering_fragment = \"#ifdef DITHERING\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\";\n\nvar 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\";\n\nvar roughnessmap_fragment = \"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\";\n\nvar roughnessmap_pars_fragment = \"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\";\n\nvar shadowmap_pars_fragment = \"#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 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\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\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 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 shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\\n\\t\\tbool inFrustum = all( inFrustumVec );\\n\\t\\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\\n\\t\\tbool frustumTest = all( frustumTestVec );\\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 shadow;\\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 shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\\t\\tdp += shadowBias;\\n\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t#endif\\n\\t}\\n#endif\";\n\nvar shadowmap_pars_vertex = \"#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 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 mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\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 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\";\n\nvar shadowmap_vertex = \"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\tvec4 shadowWorldPosition;\\n\\t#endif\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\";\n\nvar 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.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.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ 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.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}\";\n\nvar 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\";\n\nvar skinning_pars_vertex = \"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\t#ifdef BONE_TEXTURE\\n\\t\\tuniform highp sampler2D boneTexture;\\n\\t\\tuniform int boneTextureSize;\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tfloat j = i * 4.0;\\n\\t\\t\\tfloat x = mod( j, float( boneTextureSize ) );\\n\\t\\t\\tfloat y = floor( j / float( boneTextureSize ) );\\n\\t\\t\\tfloat dx = 1.0 / float( boneTextureSize );\\n\\t\\t\\tfloat dy = 1.0 / float( boneTextureSize );\\n\\t\\t\\ty = dy * ( y + 0.5 );\\n\\t\\t\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\n\\t\\t\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\n\\t\\t\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\n\\t\\t\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\n\\t\\t\\tmat4 bone = mat4( v1, v2, v3, v4 );\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#else\\n\\t\\tuniform mat4 boneMatrices[ MAX_BONES ];\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tmat4 bone = boneMatrices[ int(i) ];\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#endif\\n#endif\";\n\nvar 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\";\n\nvar 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\";\n\nvar specularmap_fragment = \"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\";\n\nvar specularmap_pars_fragment = \"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\";\n\nvar tonemapping_fragment = \"#if defined( TONE_MAPPING )\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\";\n\nvar 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 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}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\";\n\nvar transmission_fragment = \"#ifdef USE_TRANSMISSION\\n\\tfloat transmissionAlpha = 1.0;\\n\\tfloat transmissionFactor = transmission;\\n\\tfloat thicknessFactor = thickness;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\ttransmissionFactor *= texture2D( transmissionMap, vUv ).r;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tthicknessFactor *= texture2D( thicknessMap, vUv ).g;\\n\\t#endif\\n\\tvec3 pos = vWorldPosition;\\n\\tvec3 v = normalize( cameraPosition - pos );\\n\\tvec3 n = inverseTransformDirection( normal, viewMatrix );\\n\\tvec4 transmission = getIBLVolumeRefraction(\\n\\t\\tn, v, roughnessFactor, material.diffuseColor, material.specularColor, material.specularF90,\\n\\t\\tpos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,\\n\\t\\tattenuationColor, attenuationDistance );\\n\\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, transmissionFactor );\\n\\ttransmissionAlpha = mix( transmissionAlpha, transmission.a, transmissionFactor );\\n#endif\";\n\nvar 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\\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 framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\\n\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\treturn texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod );\\n\\t\\t#else\\n\\t\\t\\treturn texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod );\\n\\t\\t#endif\\n\\t}\\n\\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tif ( attenuationDistance == 0.0 ) {\\n\\t\\t\\treturn radiance;\\n\\t\\t} else {\\n\\t\\t\\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\\n\\t\\t\\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\\t\\t\\treturn transmittance * radiance;\\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 ior, const in float thickness,\\n\\t\\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\\n\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\trefractionCoords += 1.0;\\n\\t\\trefractionCoords /= 2.0;\\n\\t\\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\\n\\t\\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\\n\\t\\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\\n\\t\\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\\n\\t}\\n#endif\";\n\nvar uv_pars_fragment = \"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\\n\\tvarying vec2 vUv;\\n#endif\";\n\nvar uv_pars_vertex = \"#ifdef USE_UV\\n\\t#ifdef UVS_VERTEX_ONLY\\n\\t\\tvec2 vUv;\\n\\t#else\\n\\t\\tvarying vec2 vUv;\\n\\t#endif\\n\\tuniform mat3 uvTransform;\\n#endif\";\n\nvar uv_vertex = \"#ifdef USE_UV\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n#endif\";\n\nvar uv2_pars_fragment = \"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvarying vec2 vUv2;\\n#endif\";\n\nvar uv2_pars_vertex = \"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tattribute vec2 uv2;\\n\\tvarying vec2 vUv2;\\n\\tuniform mat3 uv2Transform;\\n#endif\";\n\nvar uv2_vertex = \"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\\n#endif\";\n\nvar worldpos_vertex = \"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION )\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\t#ifdef USE_INSTANCING\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\t#endif\\n\\tworldPosition = modelMatrix * worldPosition;\\n#endif\";\n\nconst vertex$g = \"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}\";\n\nconst fragment$g = \"uniform sampler2D t2D;\\nvarying vec2 vUv;\\nvoid main() {\\n\\tgl_FragColor = texture2D( t2D, vUv );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n}\";\n\nconst 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}\";\n\nconst fragment$f = \"#include <envmap_common_pars_fragment>\\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\n#include <cube_uv_reflection_fragment>\\nvoid main() {\\n\\tvec3 vReflect = vWorldDirection;\\n\\t#include <envmap_fragment>\\n\\tgl_FragColor = envColor;\\n\\tgl_FragColor.a *= opacity;\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n}\";\n\nconst vertex$e = \"#include <common>\\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 <skinbase_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}\";\n\nconst 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 <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( 1.0 );\\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 <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}\";\n\nconst vertex$d = \"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include <common>\\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 <skinbase_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}\";\n\nconst 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 <clipping_planes_pars_fragment>\\nvoid main () {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist );\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n}\";\n\nconst 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}\";\n\nconst 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 <encodings_fragment>\\n}\";\n\nconst vertex$b = \"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\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>\\nvoid main() {\\n\\tvLineDistance = scale * lineDistance;\\n\\t#include <color_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}\";\n\nconst 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 <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <color_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n}\";\n\nconst vertex$a = \"#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_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 <uv2_vertex>\\n\\t#include <color_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}\";\n\nconst 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 <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_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 <cube_uv_reflection_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\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\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 <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, vUv2 );\\n\\t\\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity;\\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 <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";\n\nconst vertex$9 = \"#define LAMBERT\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <color_pars_vertex>\\n#include <fog_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 <uv2_vertex>\\n\\t#include <color_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 <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 <lights_lambert_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\";\n\nconst fragment$9 = \"uniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_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 <cube_uv_reflection_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <fog_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <shadowmask_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\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 <specularmap_fragment>\\n\\t#include <emissivemap_fragment>\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vIndirectFront;\\n\\t#endif\\n\\t#include <lightmap_fragment>\\n\\treflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\\n\\t#else\\n\\t\\treflectedLight.directDiffuse = vLightFront;\\n\\t#endif\\n\\treflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask();\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include <envmap_fragment>\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";\n\nconst vertex$8 = \"#define MATCAP\\nvarying vec3 vViewPosition;\\n#include <common>\\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 <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}\";\n\nconst 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 <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\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\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 <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 <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";\n\nconst vertex$7 = \"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#include <common>\\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 <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#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\";\n\nconst fragment$7 = \"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\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\\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 ), opacity );\\n\\t#ifdef OPAQUE\\n\\t\\tgl_FragColor.a = 1.0;\\n\\t#endif\\n}\";\n\nconst vertex$6 = \"#define PHONG\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_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 <uv2_vertex>\\n\\t#include <color_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}\";\n\nconst 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 <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_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 <cube_uv_reflection_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\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\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 <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 <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";\n\nconst vertex$5 = \"#define STANDARD\\nvarying vec3 vViewPosition;\\n#ifdef USE_TRANSMISSION\\n\\tvarying vec3 vWorldPosition;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_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 <uv2_vertex>\\n\\t#include <color_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}\";\n\nconst fragment$5 = \"#define STANDARD\\n#ifdef PHYSICAL\\n\\t#define IOR\\n\\t#define 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 SPECULAR\\n\\tuniform float specularIntensity;\\n\\tuniform vec3 specularColor;\\n\\t#ifdef USE_SPECULARINTENSITYMAP\\n\\t\\tuniform sampler2D specularIntensityMap;\\n\\t#endif\\n\\t#ifdef USE_SPECULARCOLORMAP\\n\\t\\tuniform sampler2D specularColorMap;\\n\\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tuniform float clearcoat;\\n\\tuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\n\\tuniform vec3 sheenColor;\\n\\tuniform float sheenRoughness;\\n\\t#ifdef USE_SHEENCOLORMAP\\n\\t\\tuniform sampler2D sheenColorMap;\\n\\t#endif\\n\\t#ifdef USE_SHEENROUGHNESSMAP\\n\\t\\tuniform sampler2D sheenRoughnessMap;\\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 <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <bsdfs>\\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 <roughnessmap_pars_fragment>\\n#include <metalnessmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\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 <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 + sheenSpecular;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\\n\\t\\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\\n\\t\\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\\n\\t#endif\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";\n\nconst vertex$4 = \"#define TOON\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_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 <uv2_vertex>\\n\\t#include <color_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}\";\n\nconst 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 <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_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\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\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 <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 <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";\n\nconst 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>\\nvoid main() {\\n\\t#include <color_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}\";\n\nconst 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 <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_particle_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphatest_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n}\";\n\nconst vertex$2 = \"#include <common>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\nvoid main() {\\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 <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <project_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\";\n\nconst 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 <shadowmap_pars_fragment>\\n#include <shadowmask_pars_fragment>\\nvoid main() {\\n\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n}\";\n\nconst 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}\";\n\nconst 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 <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n}\";\n\nconst ShaderChunk = {\n\talphamap_fragment: alphamap_fragment,\n\talphamap_pars_fragment: alphamap_pars_fragment,\n\talphatest_fragment: alphatest_fragment,\n\talphatest_pars_fragment: alphatest_pars_fragment,\n\taomap_fragment: aomap_fragment,\n\taomap_pars_fragment: aomap_pars_fragment,\n\tbegin_vertex: begin_vertex,\n\tbeginnormal_vertex: beginnormal_vertex,\n\tbsdfs: bsdfs,\n\tbumpmap_pars_fragment: bumpmap_pars_fragment,\n\tclipping_planes_fragment: clipping_planes_fragment,\n\tclipping_planes_pars_fragment: clipping_planes_pars_fragment,\n\tclipping_planes_pars_vertex: clipping_planes_pars_vertex,\n\tclipping_planes_vertex: clipping_planes_vertex,\n\tcolor_fragment: color_fragment,\n\tcolor_pars_fragment: color_pars_fragment,\n\tcolor_pars_vertex: color_pars_vertex,\n\tcolor_vertex: color_vertex,\n\tcommon: common,\n\tcube_uv_reflection_fragment: cube_uv_reflection_fragment,\n\tdefaultnormal_vertex: defaultnormal_vertex,\n\tdisplacementmap_pars_vertex: displacementmap_pars_vertex,\n\tdisplacementmap_vertex: displacementmap_vertex,\n\temissivemap_fragment: emissivemap_fragment,\n\temissivemap_pars_fragment: emissivemap_pars_fragment,\n\tencodings_fragment: encodings_fragment,\n\tencodings_pars_fragment: encodings_pars_fragment,\n\tenvmap_fragment: envmap_fragment,\n\tenvmap_common_pars_fragment: envmap_common_pars_fragment,\n\tenvmap_pars_fragment: envmap_pars_fragment,\n\tenvmap_pars_vertex: envmap_pars_vertex,\n\tenvmap_physical_pars_fragment: envmap_physical_pars_fragment,\n\tenvmap_vertex: envmap_vertex,\n\tfog_vertex: fog_vertex,\n\tfog_pars_vertex: fog_pars_vertex,\n\tfog_fragment: fog_fragment,\n\tfog_pars_fragment: fog_pars_fragment,\n\tgradientmap_pars_fragment: gradientmap_pars_fragment,\n\tlightmap_fragment: lightmap_fragment,\n\tlightmap_pars_fragment: lightmap_pars_fragment,\n\tlights_lambert_vertex: lights_lambert_vertex,\n\tlights_pars_begin: lights_pars_begin,\n\tlights_toon_fragment: lights_toon_fragment,\n\tlights_toon_pars_fragment: lights_toon_pars_fragment,\n\tlights_phong_fragment: lights_phong_fragment,\n\tlights_phong_pars_fragment: lights_phong_pars_fragment,\n\tlights_physical_fragment: lights_physical_fragment,\n\tlights_physical_pars_fragment: lights_physical_pars_fragment,\n\tlights_fragment_begin: lights_fragment_begin,\n\tlights_fragment_maps: lights_fragment_maps,\n\tlights_fragment_end: lights_fragment_end,\n\tlogdepthbuf_fragment: logdepthbuf_fragment,\n\tlogdepthbuf_pars_fragment: logdepthbuf_pars_fragment,\n\tlogdepthbuf_pars_vertex: logdepthbuf_pars_vertex,\n\tlogdepthbuf_vertex: logdepthbuf_vertex,\n\tmap_fragment: map_fragment,\n\tmap_pars_fragment: map_pars_fragment,\n\tmap_particle_fragment: map_particle_fragment,\n\tmap_particle_pars_fragment: map_particle_pars_fragment,\n\tmetalnessmap_fragment: metalnessmap_fragment,\n\tmetalnessmap_pars_fragment: metalnessmap_pars_fragment,\n\tmorphnormal_vertex: morphnormal_vertex,\n\tmorphtarget_pars_vertex: morphtarget_pars_vertex,\n\tmorphtarget_vertex: morphtarget_vertex,\n\tnormal_fragment_begin: normal_fragment_begin,\n\tnormal_fragment_maps: normal_fragment_maps,\n\tnormal_pars_fragment: normal_pars_fragment,\n\tnormal_pars_vertex: normal_pars_vertex,\n\tnormal_vertex: normal_vertex,\n\tnormalmap_pars_fragment: normalmap_pars_fragment,\n\tclearcoat_normal_fragment_begin: clearcoat_normal_fragment_begin,\n\tclearcoat_normal_fragment_maps: clearcoat_normal_fragment_maps,\n\tclearcoat_pars_fragment: clearcoat_pars_fragment,\n\toutput_fragment: output_fragment,\n\tpacking: packing,\n\tpremultiplied_alpha_fragment: premultiplied_alpha_fragment,\n\tproject_vertex: project_vertex,\n\tdithering_fragment: dithering_fragment,\n\tdithering_pars_fragment: dithering_pars_fragment,\n\troughnessmap_fragment: roughnessmap_fragment,\n\troughnessmap_pars_fragment: roughnessmap_pars_fragment,\n\tshadowmap_pars_fragment: shadowmap_pars_fragment,\n\tshadowmap_pars_vertex: shadowmap_pars_vertex,\n\tshadowmap_vertex: shadowmap_vertex,\n\tshadowmask_pars_fragment: shadowmask_pars_fragment,\n\tskinbase_vertex: skinbase_vertex,\n\tskinning_pars_vertex: skinning_pars_vertex,\n\tskinning_vertex: skinning_vertex,\n\tskinnormal_vertex: skinnormal_vertex,\n\tspecularmap_fragment: specularmap_fragment,\n\tspecularmap_pars_fragment: specularmap_pars_fragment,\n\ttonemapping_fragment: tonemapping_fragment,\n\ttonemapping_pars_fragment: tonemapping_pars_fragment,\n\ttransmission_fragment: transmission_fragment,\n\ttransmission_pars_fragment: transmission_pars_fragment,\n\tuv_pars_fragment: uv_pars_fragment,\n\tuv_pars_vertex: uv_pars_vertex,\n\tuv_vertex: uv_vertex,\n\tuv2_pars_fragment: uv2_pars_fragment,\n\tuv2_pars_vertex: uv2_pars_vertex,\n\tuv2_vertex: uv2_vertex,\n\tworldpos_vertex: worldpos_vertex,\n\n\tbackground_vert: vertex$g,\n\tbackground_frag: fragment$g,\n\tcube_vert: vertex$f,\n\tcube_frag: fragment$f,\n\tdepth_vert: vertex$e,\n\tdepth_frag: fragment$e,\n\tdistanceRGBA_vert: vertex$d,\n\tdistanceRGBA_frag: fragment$d,\n\tequirect_vert: vertex$c,\n\tequirect_frag: fragment$c,\n\tlinedashed_vert: vertex$b,\n\tlinedashed_frag: fragment$b,\n\tmeshbasic_vert: vertex$a,\n\tmeshbasic_frag: fragment$a,\n\tmeshlambert_vert: vertex$9,\n\tmeshlambert_frag: fragment$9,\n\tmeshmatcap_vert: vertex$8,\n\tmeshmatcap_frag: fragment$8,\n\tmeshnormal_vert: vertex$7,\n\tmeshnormal_frag: fragment$7,\n\tmeshphong_vert: vertex$6,\n\tmeshphong_frag: fragment$6,\n\tmeshphysical_vert: vertex$5,\n\tmeshphysical_frag: fragment$5,\n\tmeshtoon_vert: vertex$4,\n\tmeshtoon_frag: fragment$4,\n\tpoints_vert: vertex$3,\n\tpoints_frag: fragment$3,\n\tshadow_vert: vertex$2,\n\tshadow_frag: fragment$2,\n\tsprite_vert: vertex$1,\n\tsprite_frag: fragment$1\n};\n\n/**\n * Uniforms library for shared webgl shaders\n */\n\nconst UniformsLib = {\n\n\tcommon: {\n\n\t\tdiffuse: { value: new Color( 0xffffff ) },\n\t\topacity: { value: 1.0 },\n\n\t\tmap: { value: null },\n\t\tuvTransform: { value: new Matrix3() },\n\t\tuv2Transform: { value: new Matrix3() },\n\n\t\talphaMap: { value: null },\n\t\talphaTest: { value: 0 }\n\n\t},\n\n\tspecularmap: {\n\n\t\tspecularMap: { value: null },\n\n\t},\n\n\tenvmap: {\n\n\t\tenvMap: { value: null },\n\t\tflipEnvMap: { value: - 1 },\n\t\treflectivity: { value: 1.0 }, // basic, lambert, phong\n\t\tior: { value: 1.5 }, // standard, physical\n\t\trefractionRatio: { value: 0.98 }\n\n\t},\n\n\taomap: {\n\n\t\taoMap: { value: null },\n\t\taoMapIntensity: { value: 1 }\n\n\t},\n\n\tlightmap: {\n\n\t\tlightMap: { value: null },\n\t\tlightMapIntensity: { value: 1 }\n\n\t},\n\n\temissivemap: {\n\n\t\temissiveMap: { value: null }\n\n\t},\n\n\tbumpmap: {\n\n\t\tbumpMap: { value: null },\n\t\tbumpScale: { value: 1 }\n\n\t},\n\n\tnormalmap: {\n\n\t\tnormalMap: { value: null },\n\t\tnormalScale: { value: new Vector2( 1, 1 ) }\n\n\t},\n\n\tdisplacementmap: {\n\n\t\tdisplacementMap: { value: null },\n\t\tdisplacementScale: { value: 1 },\n\t\tdisplacementBias: { value: 0 }\n\n\t},\n\n\troughnessmap: {\n\n\t\troughnessMap: { value: null }\n\n\t},\n\n\tmetalnessmap: {\n\n\t\tmetalnessMap: { value: null }\n\n\t},\n\n\tgradientmap: {\n\n\t\tgradientMap: { value: null }\n\n\t},\n\n\tfog: {\n\n\t\tfogDensity: { value: 0.00025 },\n\t\tfogNear: { value: 1 },\n\t\tfogFar: { value: 2000 },\n\t\tfogColor: { value: new Color( 0xffffff ) }\n\n\t},\n\n\tlights: {\n\n\t\tambientLightColor: { value: [] },\n\n\t\tlightProbe: { value: [] },\n\n\t\tdirectionalLights: { value: [], properties: {\n\t\t\tdirection: {},\n\t\t\tcolor: {}\n\t\t} },\n\n\t\tdirectionalLightShadows: { value: [], properties: {\n\t\t\tshadowBias: {},\n\t\t\tshadowNormalBias: {},\n\t\t\tshadowRadius: {},\n\t\t\tshadowMapSize: {}\n\t\t} },\n\n\t\tdirectionalShadowMap: { value: [] },\n\t\tdirectionalShadowMatrix: { value: [] },\n\n\t\tspotLights: { value: [], properties: {\n\t\t\tcolor: {},\n\t\t\tposition: {},\n\t\t\tdirection: {},\n\t\t\tdistance: {},\n\t\t\tconeCos: {},\n\t\t\tpenumbraCos: {},\n\t\t\tdecay: {}\n\t\t} },\n\n\t\tspotLightShadows: { value: [], properties: {\n\t\t\tshadowBias: {},\n\t\t\tshadowNormalBias: {},\n\t\t\tshadowRadius: {},\n\t\t\tshadowMapSize: {}\n\t\t} },\n\n\t\tspotShadowMap: { value: [] },\n\t\tspotShadowMatrix: { value: [] },\n\n\t\tpointLights: { value: [], properties: {\n\t\t\tcolor: {},\n\t\t\tposition: {},\n\t\t\tdecay: {},\n\t\t\tdistance: {}\n\t\t} },\n\n\t\tpointLightShadows: { value: [], properties: {\n\t\t\tshadowBias: {},\n\t\t\tshadowNormalBias: {},\n\t\t\tshadowRadius: {},\n\t\t\tshadowMapSize: {},\n\t\t\tshadowCameraNear: {},\n\t\t\tshadowCameraFar: {}\n\t\t} },\n\n\t\tpointShadowMap: { value: [] },\n\t\tpointShadowMatrix: { value: [] },\n\n\t\themisphereLights: { value: [], properties: {\n\t\t\tdirection: {},\n\t\t\tskyColor: {},\n\t\t\tgroundColor: {}\n\t\t} },\n\n\t\t// TODO (abelnation): RectAreaLight BRDF data needs to be moved from example to main src\n\t\trectAreaLights: { value: [], properties: {\n\t\t\tcolor: {},\n\t\t\tposition: {},\n\t\t\twidth: {},\n\t\t\theight: {}\n\t\t} },\n\n\t\tltc_1: { value: null },\n\t\tltc_2: { value: null }\n\n\t},\n\n\tpoints: {\n\n\t\tdiffuse: { value: new Color( 0xffffff ) },\n\t\topacity: { value: 1.0 },\n\t\tsize: { value: 1.0 },\n\t\tscale: { value: 1.0 },\n\t\tmap: { value: null },\n\t\talphaMap: { value: null },\n\t\talphaTest: { value: 0 },\n\t\tuvTransform: { value: new Matrix3() }\n\n\t},\n\n\tsprite: {\n\n\t\tdiffuse: { value: new Color( 0xffffff ) },\n\t\topacity: { value: 1.0 },\n\t\tcenter: { value: new Vector2( 0.5, 0.5 ) },\n\t\trotation: { value: 0.0 },\n\t\tmap: { value: null },\n\t\talphaMap: { value: null },\n\t\talphaTest: { value: 0 },\n\t\tuvTransform: { value: new Matrix3() }\n\n\t}\n\n};\n\nconst ShaderLib = {\n\n\tbasic: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.specularmap,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.fog\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshbasic_vert,\n\t\tfragmentShader: ShaderChunk.meshbasic_frag\n\n\t},\n\n\tlambert: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.specularmap,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: new Color( 0x000000 ) }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshlambert_vert,\n\t\tfragmentShader: ShaderChunk.meshlambert_frag\n\n\t},\n\n\tphong: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.specularmap,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: new Color( 0x000000 ) },\n\t\t\t\tspecular: { value: new Color( 0x111111 ) },\n\t\t\t\tshininess: { value: 30 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshphong_vert,\n\t\tfragmentShader: ShaderChunk.meshphong_frag\n\n\t},\n\n\tstandard: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.roughnessmap,\n\t\t\tUniformsLib.metalnessmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: new Color( 0x000000 ) },\n\t\t\t\troughness: { value: 1.0 },\n\t\t\t\tmetalness: { value: 0.0 },\n\t\t\t\tenvMapIntensity: { value: 1 } // temporary\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshphysical_vert,\n\t\tfragmentShader: ShaderChunk.meshphysical_frag\n\n\t},\n\n\ttoon: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.gradientmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: new Color( 0x000000 ) }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshtoon_vert,\n\t\tfragmentShader: ShaderChunk.meshtoon_frag\n\n\t},\n\n\tmatcap: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.fog,\n\t\t\t{\n\t\t\t\tmatcap: { value: null }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshmatcap_vert,\n\t\tfragmentShader: ShaderChunk.meshmatcap_frag\n\n\t},\n\n\tpoints: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.points,\n\t\t\tUniformsLib.fog\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.points_vert,\n\t\tfragmentShader: ShaderChunk.points_frag\n\n\t},\n\n\tdashed: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.fog,\n\t\t\t{\n\t\t\t\tscale: { value: 1 },\n\t\t\t\tdashSize: { value: 1 },\n\t\t\t\ttotalSize: { value: 2 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.linedashed_vert,\n\t\tfragmentShader: ShaderChunk.linedashed_frag\n\n\t},\n\n\tdepth: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.displacementmap\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.depth_vert,\n\t\tfragmentShader: ShaderChunk.depth_frag\n\n\t},\n\n\tnormal: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\t{\n\t\t\t\topacity: { value: 1.0 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshnormal_vert,\n\t\tfragmentShader: ShaderChunk.meshnormal_frag\n\n\t},\n\n\tsprite: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.sprite,\n\t\t\tUniformsLib.fog\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.sprite_vert,\n\t\tfragmentShader: ShaderChunk.sprite_frag\n\n\t},\n\n\tbackground: {\n\n\t\tuniforms: {\n\t\t\tuvTransform: { value: new Matrix3() },\n\t\t\tt2D: { value: null },\n\t\t},\n\n\t\tvertexShader: ShaderChunk.background_vert,\n\t\tfragmentShader: ShaderChunk.background_frag\n\n\t},\n\t/* -------------------------------------------------------------------------\n\t//\tCube map shader\n\t ------------------------------------------------------------------------- */\n\n\tcube: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.envmap,\n\t\t\t{\n\t\t\t\topacity: { value: 1.0 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.cube_vert,\n\t\tfragmentShader: ShaderChunk.cube_frag\n\n\t},\n\n\tequirect: {\n\n\t\tuniforms: {\n\t\t\ttEquirect: { value: null },\n\t\t},\n\n\t\tvertexShader: ShaderChunk.equirect_vert,\n\t\tfragmentShader: ShaderChunk.equirect_frag\n\n\t},\n\n\tdistanceRGBA: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.displacementmap,\n\t\t\t{\n\t\t\t\treferencePosition: { value: new Vector3() },\n\t\t\t\tnearDistance: { value: 1 },\n\t\t\t\tfarDistance: { value: 1000 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.distanceRGBA_vert,\n\t\tfragmentShader: ShaderChunk.distanceRGBA_frag\n\n\t},\n\n\tshadow: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.lights,\n\t\t\tUniformsLib.fog,\n\t\t\t{\n\t\t\t\tcolor: { value: new Color( 0x00000 ) },\n\t\t\t\topacity: { value: 1.0 }\n\t\t\t},\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.shadow_vert,\n\t\tfragmentShader: ShaderChunk.shadow_frag\n\n\t}\n\n};\n\nShaderLib.physical = {\n\n\tuniforms: mergeUniforms( [\n\t\tShaderLib.standard.uniforms,\n\t\t{\n\t\t\tclearcoat: { value: 0 },\n\t\t\tclearcoatMap: { value: null },\n\t\t\tclearcoatRoughness: { value: 0 },\n\t\t\tclearcoatRoughnessMap: { value: null },\n\t\t\tclearcoatNormalScale: { value: new Vector2( 1, 1 ) },\n\t\t\tclearcoatNormalMap: { value: null },\n\t\t\tsheen: { value: 0 },\n\t\t\tsheenColor: { value: new Color( 0x000000 ) },\n\t\t\tsheenColorMap: { value: null },\n\t\t\tsheenRoughness: { value: 1 },\n\t\t\tsheenRoughnessMap: { value: null },\n\t\t\ttransmission: { value: 0 },\n\t\t\ttransmissionMap: { value: null },\n\t\t\ttransmissionSamplerSize: { value: new Vector2() },\n\t\t\ttransmissionSamplerMap: { value: null },\n\t\t\tthickness: { value: 0 },\n\t\t\tthicknessMap: { value: null },\n\t\t\tattenuationDistance: { value: 0 },\n\t\t\tattenuationColor: { value: new Color( 0x000000 ) },\n\t\t\tspecularIntensity: { value: 1 },\n\t\t\tspecularIntensityMap: { value: null },\n\t\t\tspecularColor: { value: new Color( 1, 1, 1 ) },\n\t\t\tspecularColorMap: { value: null },\n\t\t}\n\t] ),\n\n\tvertexShader: ShaderChunk.meshphysical_vert,\n\tfragmentShader: ShaderChunk.meshphysical_frag\n\n};\n\nfunction WebGLBackground( renderer, cubemaps, state, objects, alpha, premultipliedAlpha ) {\n\n\tconst clearColor = new Color( 0x000000 );\n\tlet clearAlpha = alpha === true ? 0 : 1;\n\n\tlet planeMesh;\n\tlet boxMesh;\n\n\tlet currentBackground = null;\n\tlet currentBackgroundVersion = 0;\n\tlet currentTonemapping = null;\n\n\tfunction render( renderList, scene ) {\n\n\t\tlet forceClear = false;\n\t\tlet background = scene.isScene === true ? scene.background : null;\n\n\t\tif ( background && background.isTexture ) {\n\n\t\t\tbackground = cubemaps.get( background );\n\n\t\t}\n\n\t\t// Ignore background in AR\n\t\t// TODO: Reconsider this.\n\n\t\tconst xr = renderer.xr;\n\t\tconst session = xr.getSession && xr.getSession();\n\n\t\tif ( session && session.environmentBlendMode === 'additive' ) {\n\n\t\t\tbackground = null;\n\n\t\t}\n\n\t\tif ( background === null ) {\n\n\t\t\tsetClear( clearColor, clearAlpha );\n\n\t\t} else if ( background && background.isColor ) {\n\n\t\t\tsetClear( background, 1 );\n\t\t\tforceClear = true;\n\n\t\t}\n\n\t\tif ( renderer.autoClear || forceClear ) {\n\n\t\t\trenderer.clear( renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil );\n\n\t\t}\n\n\t\tif ( background && ( background.isCubeTexture || background.mapping === CubeUVReflectionMapping ) ) {\n\n\t\t\tif ( boxMesh === undefined ) {\n\n\t\t\t\tboxMesh = new Mesh(\n\t\t\t\t\tnew BoxGeometry( 1, 1, 1 ),\n\t\t\t\t\tnew ShaderMaterial( {\n\t\t\t\t\t\tname: 'BackgroundCubeMaterial',\n\t\t\t\t\t\tuniforms: cloneUniforms( ShaderLib.cube.uniforms ),\n\t\t\t\t\t\tvertexShader: ShaderLib.cube.vertexShader,\n\t\t\t\t\t\tfragmentShader: ShaderLib.cube.fragmentShader,\n\t\t\t\t\t\tside: BackSide,\n\t\t\t\t\t\tdepthTest: false,\n\t\t\t\t\t\tdepthWrite: false,\n\t\t\t\t\t\tfog: false\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tboxMesh.geometry.deleteAttribute( 'normal' );\n\t\t\t\tboxMesh.geometry.deleteAttribute( 'uv' );\n\n\t\t\t\tboxMesh.onBeforeRender = function ( renderer, scene, camera ) {\n\n\t\t\t\t\tthis.matrixWorld.copyPosition( camera.matrixWorld );\n\n\t\t\t\t};\n\n\t\t\t\t// enable code injection for non-built-in material\n\t\t\t\tObject.defineProperty( boxMesh.material, 'envMap', {\n\n\t\t\t\t\tget: function () {\n\n\t\t\t\t\t\treturn this.uniforms.envMap.value;\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\tobjects.update( boxMesh );\n\n\t\t\t}\n\n\t\t\tboxMesh.material.uniforms.envMap.value = background;\n\t\t\tboxMesh.material.uniforms.flipEnvMap.value = ( background.isCubeTexture && background.isRenderTargetTexture === false ) ? - 1 : 1;\n\n\t\t\tif ( currentBackground !== background ||\n\t\t\t\tcurrentBackgroundVersion !== background.version ||\n\t\t\t\tcurrentTonemapping !== renderer.toneMapping ) {\n\n\t\t\t\tboxMesh.material.needsUpdate = true;\n\n\t\t\t\tcurrentBackground = background;\n\t\t\t\tcurrentBackgroundVersion = background.version;\n\t\t\t\tcurrentTonemapping = renderer.toneMapping;\n\n\t\t\t}\n\n\t\t\t// push to the pre-sorted opaque render list\n\t\t\trenderList.unshift( boxMesh, boxMesh.geometry, boxMesh.material, 0, 0, null );\n\n\t\t} else if ( background && background.isTexture ) {\n\n\t\t\tif ( planeMesh === undefined ) {\n\n\t\t\t\tplaneMesh = new Mesh(\n\t\t\t\t\tnew PlaneGeometry( 2, 2 ),\n\t\t\t\t\tnew ShaderMaterial( {\n\t\t\t\t\t\tname: 'BackgroundMaterial',\n\t\t\t\t\t\tuniforms: cloneUniforms( ShaderLib.background.uniforms ),\n\t\t\t\t\t\tvertexShader: ShaderLib.background.vertexShader,\n\t\t\t\t\t\tfragmentShader: ShaderLib.background.fragmentShader,\n\t\t\t\t\t\tside: FrontSide,\n\t\t\t\t\t\tdepthTest: false,\n\t\t\t\t\t\tdepthWrite: false,\n\t\t\t\t\t\tfog: false\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tplaneMesh.geometry.deleteAttribute( 'normal' );\n\n\t\t\t\t// enable code injection for non-built-in material\n\t\t\t\tObject.defineProperty( planeMesh.material, 'map', {\n\n\t\t\t\t\tget: function () {\n\n\t\t\t\t\t\treturn this.uniforms.t2D.value;\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\tobjects.update( planeMesh );\n\n\t\t\t}\n\n\t\t\tplaneMesh.material.uniforms.t2D.value = background;\n\n\t\t\tif ( background.matrixAutoUpdate === true ) {\n\n\t\t\t\tbackground.updateMatrix();\n\n\t\t\t}\n\n\t\t\tplaneMesh.material.uniforms.uvTransform.value.copy( background.matrix );\n\n\t\t\tif ( currentBackground !== background ||\n\t\t\t\tcurrentBackgroundVersion !== background.version ||\n\t\t\t\tcurrentTonemapping !== renderer.toneMapping ) {\n\n\t\t\t\tplaneMesh.material.needsUpdate = true;\n\n\t\t\t\tcurrentBackground = background;\n\t\t\t\tcurrentBackgroundVersion = background.version;\n\t\t\t\tcurrentTonemapping = renderer.toneMapping;\n\n\t\t\t}\n\n\n\t\t\t// push to the pre-sorted opaque render list\n\t\t\trenderList.unshift( planeMesh, planeMesh.geometry, planeMesh.material, 0, 0, null );\n\n\t\t}\n\n\t}\n\n\tfunction setClear( color, alpha ) {\n\n\t\tstate.buffers.color.setClear( color.r, color.g, color.b, alpha, premultipliedAlpha );\n\n\t}\n\n\treturn {\n\n\t\tgetClearColor: function () {\n\n\t\t\treturn clearColor;\n\n\t\t},\n\t\tsetClearColor: function ( color, alpha = 1 ) {\n\n\t\t\tclearColor.set( color );\n\t\t\tclearAlpha = alpha;\n\t\t\tsetClear( clearColor, clearAlpha );\n\n\t\t},\n\t\tgetClearAlpha: function () {\n\n\t\t\treturn clearAlpha;\n\n\t\t},\n\t\tsetClearAlpha: function ( alpha ) {\n\n\t\t\tclearAlpha = alpha;\n\t\t\tsetClear( clearColor, clearAlpha );\n\n\t\t},\n\t\trender: render\n\n\t};\n\n}\n\nfunction WebGLBindingStates( gl, extensions, attributes, capabilities ) {\n\n\tconst maxVertexAttributes = gl.getParameter( 34921 );\n\n\tconst extension = capabilities.isWebGL2 ? null : extensions.get( 'OES_vertex_array_object' );\n\tconst vaoAvailable = capabilities.isWebGL2 || extension !== null;\n\n\tconst bindingStates = {};\n\n\tconst defaultState = createBindingState( null );\n\tlet currentState = defaultState;\n\n\tfunction setup( object, material, program, geometry, index ) {\n\n\t\tlet updateBuffers = false;\n\n\t\tif ( vaoAvailable ) {\n\n\t\t\tconst state = getBindingState( geometry, program, material );\n\n\t\t\tif ( currentState !== state ) {\n\n\t\t\t\tcurrentState = state;\n\t\t\t\tbindVertexArrayObject( currentState.object );\n\n\t\t\t}\n\n\t\t\tupdateBuffers = needsUpdate( geometry, index );\n\n\t\t\tif ( updateBuffers ) saveCache( geometry, index );\n\n\t\t} else {\n\n\t\t\tconst wireframe = ( material.wireframe === true );\n\n\t\t\tif ( currentState.geometry !== geometry.id ||\n\t\t\t\tcurrentState.program !== program.id ||\n\t\t\t\tcurrentState.wireframe !== wireframe ) {\n\n\t\t\t\tcurrentState.geometry = geometry.id;\n\t\t\t\tcurrentState.program = program.id;\n\t\t\t\tcurrentState.wireframe = wireframe;\n\n\t\t\t\tupdateBuffers = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( object.isInstancedMesh === true ) {\n\n\t\t\tupdateBuffers = true;\n\n\t\t}\n\n\t\tif ( index !== null ) {\n\n\t\t\tattributes.update( index, 34963 );\n\n\t\t}\n\n\t\tif ( updateBuffers ) {\n\n\t\t\tsetupVertexAttributes( object, material, program, geometry );\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\tgl.bindBuffer( 34963, attributes.get( index ).buffer );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction createVertexArrayObject() {\n\n\t\tif ( capabilities.isWebGL2 ) return gl.createVertexArray();\n\n\t\treturn extension.createVertexArrayOES();\n\n\t}\n\n\tfunction bindVertexArrayObject( vao ) {\n\n\t\tif ( capabilities.isWebGL2 ) return gl.bindVertexArray( vao );\n\n\t\treturn extension.bindVertexArrayOES( vao );\n\n\t}\n\n\tfunction deleteVertexArrayObject( vao ) {\n\n\t\tif ( capabilities.isWebGL2 ) return gl.deleteVertexArray( vao );\n\n\t\treturn extension.deleteVertexArrayOES( vao );\n\n\t}\n\n\tfunction getBindingState( geometry, program, material ) {\n\n\t\tconst wireframe = ( material.wireframe === true );\n\n\t\tlet programMap = bindingStates[ geometry.id ];\n\n\t\tif ( programMap === undefined ) {\n\n\t\t\tprogramMap = {};\n\t\t\tbindingStates[ geometry.id ] = programMap;\n\n\t\t}\n\n\t\tlet stateMap = programMap[ program.id ];\n\n\t\tif ( stateMap === undefined ) {\n\n\t\t\tstateMap = {};\n\t\t\tprogramMap[ program.id ] = stateMap;\n\n\t\t}\n\n\t\tlet state = stateMap[ wireframe ];\n\n\t\tif ( state === undefined ) {\n\n\t\t\tstate = createBindingState( createVertexArrayObject() );\n\t\t\tstateMap[ wireframe ] = state;\n\n\t\t}\n\n\t\treturn state;\n\n\t}\n\n\tfunction createBindingState( vao ) {\n\n\t\tconst newAttributes = [];\n\t\tconst enabledAttributes = [];\n\t\tconst attributeDivisors = [];\n\n\t\tfor ( let i = 0; i < maxVertexAttributes; i ++ ) {\n\n\t\t\tnewAttributes[ i ] = 0;\n\t\t\tenabledAttributes[ i ] = 0;\n\t\t\tattributeDivisors[ i ] = 0;\n\n\t\t}\n\n\t\treturn {\n\n\t\t\t// for backward compatibility on non-VAO support browser\n\t\t\tgeometry: null,\n\t\t\tprogram: null,\n\t\t\twireframe: false,\n\n\t\t\tnewAttributes: newAttributes,\n\t\t\tenabledAttributes: enabledAttributes,\n\t\t\tattributeDivisors: attributeDivisors,\n\t\t\tobject: vao,\n\t\t\tattributes: {},\n\t\t\tindex: null\n\n\t\t};\n\n\t}\n\n\tfunction needsUpdate( geometry, index ) {\n\n\t\tconst cachedAttributes = currentState.attributes;\n\t\tconst geometryAttributes = geometry.attributes;\n\n\t\tlet attributesNum = 0;\n\n\t\tfor ( const key in geometryAttributes ) {\n\n\t\t\tconst cachedAttribute = cachedAttributes[ key ];\n\t\t\tconst geometryAttribute = geometryAttributes[ key ];\n\n\t\t\tif ( cachedAttribute === undefined ) return true;\n\n\t\t\tif ( cachedAttribute.attribute !== geometryAttribute ) return true;\n\n\t\t\tif ( cachedAttribute.data !== geometryAttribute.data ) return true;\n\n\t\t\tattributesNum ++;\n\n\t\t}\n\n\t\tif ( currentState.attributesNum !== attributesNum ) return true;\n\n\t\tif ( currentState.index !== index ) return true;\n\n\t\treturn false;\n\n\t}\n\n\tfunction saveCache( geometry, index ) {\n\n\t\tconst cache = {};\n\t\tconst attributes = geometry.attributes;\n\t\tlet attributesNum = 0;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tconst attribute = attributes[ key ];\n\n\t\t\tconst data = {};\n\t\t\tdata.attribute = attribute;\n\n\t\t\tif ( attribute.data ) {\n\n\t\t\t\tdata.data = attribute.data;\n\n\t\t\t}\n\n\t\t\tcache[ key ] = data;\n\n\t\t\tattributesNum ++;\n\n\t\t}\n\n\t\tcurrentState.attributes = cache;\n\t\tcurrentState.attributesNum = attributesNum;\n\n\t\tcurrentState.index = index;\n\n\t}\n\n\tfunction initAttributes() {\n\n\t\tconst newAttributes = currentState.newAttributes;\n\n\t\tfor ( let i = 0, il = newAttributes.length; i < il; i ++ ) {\n\n\t\t\tnewAttributes[ i ] = 0;\n\n\t\t}\n\n\t}\n\n\tfunction enableAttribute( attribute ) {\n\n\t\tenableAttributeAndDivisor( attribute, 0 );\n\n\t}\n\n\tfunction enableAttributeAndDivisor( attribute, meshPerAttribute ) {\n\n\t\tconst newAttributes = currentState.newAttributes;\n\t\tconst enabledAttributes = currentState.enabledAttributes;\n\t\tconst attributeDivisors = currentState.attributeDivisors;\n\n\t\tnewAttributes[ attribute ] = 1;\n\n\t\tif ( enabledAttributes[ attribute ] === 0 ) {\n\n\t\t\tgl.enableVertexAttribArray( attribute );\n\t\t\tenabledAttributes[ attribute ] = 1;\n\n\t\t}\n\n\t\tif ( attributeDivisors[ attribute ] !== meshPerAttribute ) {\n\n\t\t\tconst extension = capabilities.isWebGL2 ? gl : extensions.get( 'ANGLE_instanced_arrays' );\n\n\t\t\textension[ capabilities.isWebGL2 ? 'vertexAttribDivisor' : 'vertexAttribDivisorANGLE' ]( attribute, meshPerAttribute );\n\t\t\tattributeDivisors[ attribute ] = meshPerAttribute;\n\n\t\t}\n\n\t}\n\n\tfunction disableUnusedAttributes() {\n\n\t\tconst newAttributes = currentState.newAttributes;\n\t\tconst enabledAttributes = currentState.enabledAttributes;\n\n\t\tfor ( let i = 0, il = enabledAttributes.length; i < il; i ++ ) {\n\n\t\t\tif ( enabledAttributes[ i ] !== newAttributes[ i ] ) {\n\n\t\t\t\tgl.disableVertexAttribArray( i );\n\t\t\t\tenabledAttributes[ i ] = 0;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction vertexAttribPointer( index, size, type, normalized, stride, offset ) {\n\n\t\tif ( capabilities.isWebGL2 === true && ( type === 5124 || type === 5125 ) ) {\n\n\t\t\tgl.vertexAttribIPointer( index, size, type, stride, offset );\n\n\t\t} else {\n\n\t\t\tgl.vertexAttribPointer( index, size, type, normalized, stride, offset );\n\n\t\t}\n\n\t}\n\n\tfunction setupVertexAttributes( object, material, program, geometry ) {\n\n\t\tif ( capabilities.isWebGL2 === false && ( object.isInstancedMesh || geometry.isInstancedBufferGeometry ) ) {\n\n\t\t\tif ( extensions.get( 'ANGLE_instanced_arrays' ) === null ) return;\n\n\t\t}\n\n\t\tinitAttributes();\n\n\t\tconst geometryAttributes = geometry.attributes;\n\n\t\tconst programAttributes = program.getAttributes();\n\n\t\tconst materialDefaultAttributeValues = material.defaultAttributeValues;\n\n\t\tfor ( const name in programAttributes ) {\n\n\t\t\tconst programAttribute = programAttributes[ name ];\n\n\t\t\tif ( programAttribute.location >= 0 ) {\n\n\t\t\t\tlet geometryAttribute = geometryAttributes[ name ];\n\n\t\t\t\tif ( geometryAttribute === undefined ) {\n\n\t\t\t\t\tif ( name === 'instanceMatrix' && object.instanceMatrix ) geometryAttribute = object.instanceMatrix;\n\t\t\t\t\tif ( name === 'instanceColor' && object.instanceColor ) geometryAttribute = object.instanceColor;\n\n\t\t\t\t}\n\n\t\t\t\tif ( geometryAttribute !== undefined ) {\n\n\t\t\t\t\tconst normalized = geometryAttribute.normalized;\n\t\t\t\t\tconst size = geometryAttribute.itemSize;\n\n\t\t\t\t\tconst attribute = attributes.get( geometryAttribute );\n\n\t\t\t\t\t// TODO Attribute may not be available on context restore\n\n\t\t\t\t\tif ( attribute === undefined ) continue;\n\n\t\t\t\t\tconst buffer = attribute.buffer;\n\t\t\t\t\tconst type = attribute.type;\n\t\t\t\t\tconst bytesPerElement = attribute.bytesPerElement;\n\n\t\t\t\t\tif ( geometryAttribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\t\tconst data = geometryAttribute.data;\n\t\t\t\t\t\tconst stride = data.stride;\n\t\t\t\t\t\tconst offset = geometryAttribute.offset;\n\n\t\t\t\t\t\tif ( data && data.isInstancedInterleavedBuffer ) {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttributeAndDivisor( programAttribute.location + i, data.meshPerAttribute );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( object.isInstancedMesh !== true && geometry._maxInstanceCount === undefined ) {\n\n\t\t\t\t\t\t\t\tgeometry._maxInstanceCount = data.meshPerAttribute * data.count;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttribute( programAttribute.location + i );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tgl.bindBuffer( 34962, buffer );\n\n\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\tvertexAttribPointer(\n\t\t\t\t\t\t\t\tprogramAttribute.location + i,\n\t\t\t\t\t\t\t\tsize / programAttribute.locationSize,\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\tnormalized,\n\t\t\t\t\t\t\t\tstride * bytesPerElement,\n\t\t\t\t\t\t\t\t( offset + ( size / programAttribute.locationSize ) * i ) * bytesPerElement\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( geometryAttribute.isInstancedBufferAttribute ) {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttributeAndDivisor( programAttribute.location + i, geometryAttribute.meshPerAttribute );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( object.isInstancedMesh !== true && geometry._maxInstanceCount === undefined ) {\n\n\t\t\t\t\t\t\t\tgeometry._maxInstanceCount = geometryAttribute.meshPerAttribute * geometryAttribute.count;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttribute( programAttribute.location + i );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tgl.bindBuffer( 34962, buffer );\n\n\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\tvertexAttribPointer(\n\t\t\t\t\t\t\t\tprogramAttribute.location + i,\n\t\t\t\t\t\t\t\tsize / programAttribute.locationSize,\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\tnormalized,\n\t\t\t\t\t\t\t\tsize * bytesPerElement,\n\t\t\t\t\t\t\t\t( size / programAttribute.locationSize ) * i * bytesPerElement\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( materialDefaultAttributeValues !== undefined ) {\n\n\t\t\t\t\tconst value = materialDefaultAttributeValues[ name ];\n\n\t\t\t\t\tif ( value !== undefined ) {\n\n\t\t\t\t\t\tswitch ( value.length ) {\n\n\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\tgl.vertexAttrib2fv( programAttribute.location, value );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase 3:\n\t\t\t\t\t\t\t\tgl.vertexAttrib3fv( programAttribute.location, value );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase 4:\n\t\t\t\t\t\t\t\tgl.vertexAttrib4fv( programAttribute.location, value );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tgl.vertexAttrib1fv( programAttribute.location, value );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tdisableUnusedAttributes();\n\n\t}\n\n\tfunction dispose() {\n\n\t\treset();\n\n\t\tfor ( const geometryId in bindingStates ) {\n\n\t\t\tconst programMap = bindingStates[ geometryId ];\n\n\t\t\tfor ( const programId in programMap ) {\n\n\t\t\t\tconst stateMap = programMap[ programId ];\n\n\t\t\t\tfor ( const wireframe in stateMap ) {\n\n\t\t\t\t\tdeleteVertexArrayObject( stateMap[ wireframe ].object );\n\n\t\t\t\t\tdelete stateMap[ wireframe ];\n\n\t\t\t\t}\n\n\t\t\t\tdelete programMap[ programId ];\n\n\t\t\t}\n\n\t\t\tdelete bindingStates[ geometryId ];\n\n\t\t}\n\n\t}\n\n\tfunction releaseStatesOfGeometry( geometry ) {\n\n\t\tif ( bindingStates[ geometry.id ] === undefined ) return;\n\n\t\tconst programMap = bindingStates[ geometry.id ];\n\n\t\tfor ( const programId in programMap ) {\n\n\t\t\tconst stateMap = programMap[ programId ];\n\n\t\t\tfor ( const wireframe in stateMap ) {\n\n\t\t\t\tdeleteVertexArrayObject( stateMap[ wireframe ].object );\n\n\t\t\t\tdelete stateMap[ wireframe ];\n\n\t\t\t}\n\n\t\t\tdelete programMap[ programId ];\n\n\t\t}\n\n\t\tdelete bindingStates[ geometry.id ];\n\n\t}\n\n\tfunction releaseStatesOfProgram( program ) {\n\n\t\tfor ( const geometryId in bindingStates ) {\n\n\t\t\tconst programMap = bindingStates[ geometryId ];\n\n\t\t\tif ( programMap[ program.id ] === undefined ) continue;\n\n\t\t\tconst stateMap = programMap[ program.id ];\n\n\t\t\tfor ( const wireframe in stateMap ) {\n\n\t\t\t\tdeleteVertexArrayObject( stateMap[ wireframe ].object );\n\n\t\t\t\tdelete stateMap[ wireframe ];\n\n\t\t\t}\n\n\t\t\tdelete programMap[ program.id ];\n\n\t\t}\n\n\t}\n\n\tfunction reset() {\n\n\t\tresetDefaultState();\n\n\t\tif ( currentState === defaultState ) return;\n\n\t\tcurrentState = defaultState;\n\t\tbindVertexArrayObject( currentState.object );\n\n\t}\n\n\t// for backward-compatilibity\n\n\tfunction resetDefaultState() {\n\n\t\tdefaultState.geometry = null;\n\t\tdefaultState.program = null;\n\t\tdefaultState.wireframe = false;\n\n\t}\n\n\treturn {\n\n\t\tsetup: setup,\n\t\treset: reset,\n\t\tresetDefaultState: resetDefaultState,\n\t\tdispose: dispose,\n\t\treleaseStatesOfGeometry: releaseStatesOfGeometry,\n\t\treleaseStatesOfProgram: releaseStatesOfProgram,\n\n\t\tinitAttributes: initAttributes,\n\t\tenableAttribute: enableAttribute,\n\t\tdisableUnusedAttributes: disableUnusedAttributes\n\n\t};\n\n}\n\nfunction WebGLBufferRenderer( gl, extensions, info, capabilities ) {\n\n\tconst isWebGL2 = capabilities.isWebGL2;\n\n\tlet mode;\n\n\tfunction setMode( value ) {\n\n\t\tmode = value;\n\n\t}\n\n\tfunction render( start, count ) {\n\n\t\tgl.drawArrays( mode, start, count );\n\n\t\tinfo.update( count, mode, 1 );\n\n\t}\n\n\tfunction renderInstances( start, count, primcount ) {\n\n\t\tif ( primcount === 0 ) return;\n\n\t\tlet extension, methodName;\n\n\t\tif ( isWebGL2 ) {\n\n\t\t\textension = gl;\n\t\t\tmethodName = 'drawArraysInstanced';\n\n\t\t} else {\n\n\t\t\textension = extensions.get( 'ANGLE_instanced_arrays' );\n\t\t\tmethodName = 'drawArraysInstancedANGLE';\n\n\t\t\tif ( extension === null ) {\n\n\t\t\t\tconsole.error( 'THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.' );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t\textension[ methodName ]( mode, start, count, primcount );\n\n\t\tinfo.update( count, mode, primcount );\n\n\t}\n\n\t//\n\n\tthis.setMode = setMode;\n\tthis.render = render;\n\tthis.renderInstances = renderInstances;\n\n}\n\nfunction WebGLCapabilities( gl, extensions, parameters ) {\n\n\tlet maxAnisotropy;\n\n\tfunction getMaxAnisotropy() {\n\n\t\tif ( maxAnisotropy !== undefined ) return maxAnisotropy;\n\n\t\tif ( extensions.has( 'EXT_texture_filter_anisotropic' ) === true ) {\n\n\t\t\tconst extension = extensions.get( 'EXT_texture_filter_anisotropic' );\n\n\t\t\tmaxAnisotropy = gl.getParameter( extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT );\n\n\t\t} else {\n\n\t\t\tmaxAnisotropy = 0;\n\n\t\t}\n\n\t\treturn maxAnisotropy;\n\n\t}\n\n\tfunction getMaxPrecision( precision ) {\n\n\t\tif ( precision === 'highp' ) {\n\n\t\t\tif ( gl.getShaderPrecisionFormat( 35633, 36338 ).precision > 0 &&\n\t\t\t\tgl.getShaderPrecisionFormat( 35632, 36338 ).precision > 0 ) {\n\n\t\t\t\treturn 'highp';\n\n\t\t\t}\n\n\t\t\tprecision = 'mediump';\n\n\t\t}\n\n\t\tif ( precision === 'mediump' ) {\n\n\t\t\tif ( gl.getShaderPrecisionFormat( 35633, 36337 ).precision > 0 &&\n\t\t\t\tgl.getShaderPrecisionFormat( 35632, 36337 ).precision > 0 ) {\n\n\t\t\t\treturn 'mediump';\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn 'lowp';\n\n\t}\n\n\tconst isWebGL2 = ( typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext ) ||\n\t\t( typeof WebGL2ComputeRenderingContext !== 'undefined' && gl instanceof WebGL2ComputeRenderingContext );\n\n\tlet precision = parameters.precision !== undefined ? parameters.precision : 'highp';\n\tconst maxPrecision = getMaxPrecision( precision );\n\n\tif ( maxPrecision !== precision ) {\n\n\t\tconsole.warn( 'THREE.WebGLRenderer:', precision, 'not supported, using', maxPrecision, 'instead.' );\n\t\tprecision = maxPrecision;\n\n\t}\n\n\tconst drawBuffers = isWebGL2 || extensions.has( 'WEBGL_draw_buffers' );\n\n\tconst logarithmicDepthBuffer = parameters.logarithmicDepthBuffer === true;\n\n\tconst maxTextures = gl.getParameter( 34930 );\n\tconst maxVertexTextures = gl.getParameter( 35660 );\n\tconst maxTextureSize = gl.getParameter( 3379 );\n\tconst maxCubemapSize = gl.getParameter( 34076 );\n\n\tconst maxAttributes = gl.getParameter( 34921 );\n\tconst maxVertexUniforms = gl.getParameter( 36347 );\n\tconst maxVaryings = gl.getParameter( 36348 );\n\tconst maxFragmentUniforms = gl.getParameter( 36349 );\n\n\tconst vertexTextures = maxVertexTextures > 0;\n\tconst floatFragmentTextures = isWebGL2 || extensions.has( 'OES_texture_float' );\n\tconst floatVertexTextures = vertexTextures && floatFragmentTextures;\n\n\tconst maxSamples = isWebGL2 ? gl.getParameter( 36183 ) : 0;\n\n\treturn {\n\n\t\tisWebGL2: isWebGL2,\n\n\t\tdrawBuffers: drawBuffers,\n\n\t\tgetMaxAnisotropy: getMaxAnisotropy,\n\t\tgetMaxPrecision: getMaxPrecision,\n\n\t\tprecision: precision,\n\t\tlogarithmicDepthBuffer: logarithmicDepthBuffer,\n\n\t\tmaxTextures: maxTextures,\n\t\tmaxVertexTextures: maxVertexTextures,\n\t\tmaxTextureSize: maxTextureSize,\n\t\tmaxCubemapSize: maxCubemapSize,\n\n\t\tmaxAttributes: maxAttributes,\n\t\tmaxVertexUniforms: maxVertexUniforms,\n\t\tmaxVaryings: maxVaryings,\n\t\tmaxFragmentUniforms: maxFragmentUniforms,\n\n\t\tvertexTextures: vertexTextures,\n\t\tfloatFragmentTextures: floatFragmentTextures,\n\t\tfloatVertexTextures: floatVertexTextures,\n\n\t\tmaxSamples: maxSamples\n\n\t};\n\n}\n\nfunction WebGLClipping( properties ) {\n\n\tconst scope = this;\n\n\tlet globalState = null,\n\t\tnumGlobalPlanes = 0,\n\t\tlocalClippingEnabled = false,\n\t\trenderingShadows = false;\n\n\tconst plane = new Plane(),\n\t\tviewNormalMatrix = new Matrix3(),\n\n\t\tuniform = { value: null, needsUpdate: false };\n\n\tthis.uniform = uniform;\n\tthis.numPlanes = 0;\n\tthis.numIntersection = 0;\n\n\tthis.init = function ( planes, enableLocalClipping, camera ) {\n\n\t\tconst enabled =\n\t\t\tplanes.length !== 0 ||\n\t\t\tenableLocalClipping ||\n\t\t\t// enable state of previous frame - the clipping code has to\n\t\t\t// run another frame in order to reset the state:\n\t\t\tnumGlobalPlanes !== 0 ||\n\t\t\tlocalClippingEnabled;\n\n\t\tlocalClippingEnabled = enableLocalClipping;\n\n\t\tglobalState = projectPlanes( planes, camera, 0 );\n\t\tnumGlobalPlanes = planes.length;\n\n\t\treturn enabled;\n\n\t};\n\n\tthis.beginShadows = function () {\n\n\t\trenderingShadows = true;\n\t\tprojectPlanes( null );\n\n\t};\n\n\tthis.endShadows = function () {\n\n\t\trenderingShadows = false;\n\t\tresetGlobalState();\n\n\t};\n\n\tthis.setState = function ( material, camera, useCache ) {\n\n\t\tconst planes = material.clippingPlanes,\n\t\t\tclipIntersection = material.clipIntersection,\n\t\t\tclipShadows = material.clipShadows;\n\n\t\tconst materialProperties = properties.get( material );\n\n\t\tif ( ! localClippingEnabled || planes === null || planes.length === 0 || renderingShadows && ! clipShadows ) {\n\n\t\t\t// there's no local clipping\n\n\t\t\tif ( renderingShadows ) {\n\n\t\t\t\t// there's no global clipping\n\n\t\t\t\tprojectPlanes( null );\n\n\t\t\t} else {\n\n\t\t\t\tresetGlobalState();\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst nGlobal = renderingShadows ? 0 : numGlobalPlanes,\n\t\t\t\tlGlobal = nGlobal * 4;\n\n\t\t\tlet dstArray = materialProperties.clippingState || null;\n\n\t\t\tuniform.value = dstArray; // ensure unique state\n\n\t\t\tdstArray = projectPlanes( planes, camera, lGlobal, useCache );\n\n\t\t\tfor ( let i = 0; i !== lGlobal; ++ i ) {\n\n\t\t\t\tdstArray[ i ] = globalState[ i ];\n\n\t\t\t}\n\n\t\t\tmaterialProperties.clippingState = dstArray;\n\t\t\tthis.numIntersection = clipIntersection ? this.numPlanes : 0;\n\t\t\tthis.numPlanes += nGlobal;\n\n\t\t}\n\n\n\t};\n\n\tfunction resetGlobalState() {\n\n\t\tif ( uniform.value !== globalState ) {\n\n\t\t\tuniform.value = globalState;\n\t\t\tuniform.needsUpdate = numGlobalPlanes > 0;\n\n\t\t}\n\n\t\tscope.numPlanes = numGlobalPlanes;\n\t\tscope.numIntersection = 0;\n\n\t}\n\n\tfunction projectPlanes( planes, camera, dstOffset, skipTransform ) {\n\n\t\tconst nPlanes = planes !== null ? planes.length : 0;\n\t\tlet dstArray = null;\n\n\t\tif ( nPlanes !== 0 ) {\n\n\t\t\tdstArray = uniform.value;\n\n\t\t\tif ( skipTransform !== true || dstArray === null ) {\n\n\t\t\t\tconst flatSize = dstOffset + nPlanes * 4,\n\t\t\t\t\tviewMatrix = camera.matrixWorldInverse;\n\n\t\t\t\tviewNormalMatrix.getNormalMatrix( viewMatrix );\n\n\t\t\t\tif ( dstArray === null || dstArray.length < flatSize ) {\n\n\t\t\t\t\tdstArray = new Float32Array( flatSize );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0, i4 = dstOffset; i !== nPlanes; ++ i, i4 += 4 ) {\n\n\t\t\t\t\tplane.copy( planes[ i ] ).applyMatrix4( viewMatrix, viewNormalMatrix );\n\n\t\t\t\t\tplane.normal.toArray( dstArray, i4 );\n\t\t\t\t\tdstArray[ i4 + 3 ] = plane.constant;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tuniform.value = dstArray;\n\t\t\tuniform.needsUpdate = true;\n\n\t\t}\n\n\t\tscope.numPlanes = nPlanes;\n\t\tscope.numIntersection = 0;\n\n\t\treturn dstArray;\n\n\t}\n\n}\n\nfunction WebGLCubeMaps( renderer ) {\n\n\tlet cubemaps = new WeakMap();\n\n\tfunction mapTextureMapping( texture, mapping ) {\n\n\t\tif ( mapping === EquirectangularReflectionMapping ) {\n\n\t\t\ttexture.mapping = CubeReflectionMapping;\n\n\t\t} else if ( mapping === EquirectangularRefractionMapping ) {\n\n\t\t\ttexture.mapping = CubeRefractionMapping;\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tfunction get( texture ) {\n\n\t\tif ( texture && texture.isTexture && texture.isRenderTargetTexture === false ) {\n\n\t\t\tconst mapping = texture.mapping;\n\n\t\t\tif ( mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping ) {\n\n\t\t\t\tif ( cubemaps.has( texture ) ) {\n\n\t\t\t\t\tconst cubemap = cubemaps.get( texture ).texture;\n\t\t\t\t\treturn mapTextureMapping( cubemap, texture.mapping );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconst image = texture.image;\n\n\t\t\t\t\tif ( image && image.height > 0 ) {\n\n\t\t\t\t\t\tconst renderTarget = new WebGLCubeRenderTarget( image.height / 2 );\n\t\t\t\t\t\trenderTarget.fromEquirectangularTexture( renderer, texture );\n\t\t\t\t\t\tcubemaps.set( texture, renderTarget );\n\n\t\t\t\t\t\ttexture.addEventListener( 'dispose', onTextureDispose );\n\n\t\t\t\t\t\treturn mapTextureMapping( renderTarget.texture, texture.mapping );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// image not yet ready. try the conversion next frame\n\n\t\t\t\t\t\treturn null;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tfunction onTextureDispose( event ) {\n\n\t\tconst texture = event.target;\n\n\t\ttexture.removeEventListener( 'dispose', onTextureDispose );\n\n\t\tconst cubemap = cubemaps.get( texture );\n\n\t\tif ( cubemap !== undefined ) {\n\n\t\t\tcubemaps.delete( texture );\n\t\t\tcubemap.dispose();\n\n\t\t}\n\n\t}\n\n\tfunction dispose() {\n\n\t\tcubemaps = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nclass OrthographicCamera extends Camera {\n\n\tconstructor( left = - 1, right = 1, top = 1, bottom = - 1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'OrthographicCamera';\n\n\t\tthis.zoom = 1;\n\t\tthis.view = null;\n\n\t\tthis.left = left;\n\t\tthis.right = right;\n\t\tthis.top = top;\n\t\tthis.bottom = bottom;\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.left = source.left;\n\t\tthis.right = source.right;\n\t\tthis.top = source.top;\n\t\tthis.bottom = source.bottom;\n\t\tthis.near = source.near;\n\t\tthis.far = source.far;\n\n\t\tthis.zoom = source.zoom;\n\t\tthis.view = source.view === null ? null : Object.assign( {}, source.view );\n\n\t\treturn this;\n\n\t}\n\n\tsetViewOffset( fullWidth, fullHeight, x, y, width, height ) {\n\n\t\tif ( this.view === null ) {\n\n\t\t\tthis.view = {\n\t\t\t\tenabled: true,\n\t\t\t\tfullWidth: 1,\n\t\t\t\tfullHeight: 1,\n\t\t\t\toffsetX: 0,\n\t\t\t\toffsetY: 0,\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1\n\t\t\t};\n\n\t\t}\n\n\t\tthis.view.enabled = true;\n\t\tthis.view.fullWidth = fullWidth;\n\t\tthis.view.fullHeight = fullHeight;\n\t\tthis.view.offsetX = x;\n\t\tthis.view.offsetY = y;\n\t\tthis.view.width = width;\n\t\tthis.view.height = height;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tclearViewOffset() {\n\n\t\tif ( this.view !== null ) {\n\n\t\t\tthis.view.enabled = false;\n\n\t\t}\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tupdateProjectionMatrix() {\n\n\t\tconst dx = ( this.right - this.left ) / ( 2 * this.zoom );\n\t\tconst dy = ( this.top - this.bottom ) / ( 2 * this.zoom );\n\t\tconst cx = ( this.right + this.left ) / 2;\n\t\tconst cy = ( this.top + this.bottom ) / 2;\n\n\t\tlet left = cx - dx;\n\t\tlet right = cx + dx;\n\t\tlet top = cy + dy;\n\t\tlet bottom = cy - dy;\n\n\t\tif ( this.view !== null && this.view.enabled ) {\n\n\t\t\tconst scaleW = ( this.right - this.left ) / this.view.fullWidth / this.zoom;\n\t\t\tconst scaleH = ( this.top - this.bottom ) / this.view.fullHeight / this.zoom;\n\n\t\t\tleft += scaleW * this.view.offsetX;\n\t\t\tright = left + scaleW * this.view.width;\n\t\t\ttop -= scaleH * this.view.offsetY;\n\t\t\tbottom = top - scaleH * this.view.height;\n\n\t\t}\n\n\t\tthis.projectionMatrix.makeOrthographic( left, right, top, bottom, this.near, this.far );\n\n\t\tthis.projectionMatrixInverse.copy( this.projectionMatrix ).invert();\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.zoom = this.zoom;\n\t\tdata.object.left = this.left;\n\t\tdata.object.right = this.right;\n\t\tdata.object.top = this.top;\n\t\tdata.object.bottom = this.bottom;\n\t\tdata.object.near = this.near;\n\t\tdata.object.far = this.far;\n\n\t\tif ( this.view !== null ) data.object.view = Object.assign( {}, this.view );\n\n\t\treturn data;\n\n\t}\n\n}\n\nOrthographicCamera.prototype.isOrthographicCamera = true;\n\nclass RawShaderMaterial extends ShaderMaterial {\n\n\tconstructor( parameters ) {\n\n\t\tsuper( parameters );\n\n\t\tthis.type = 'RawShaderMaterial';\n\n\t}\n\n}\n\nRawShaderMaterial.prototype.isRawShaderMaterial = true;\n\nconst LOD_MIN = 4;\nconst LOD_MAX = 8;\nconst SIZE_MAX = Math.pow( 2, LOD_MAX );\n\n// The standard deviations (radians) associated with the extra mips. These are\n// chosen to approximate a Trowbridge-Reitz distribution function times the\n// geometric shadowing function. These sigma values squared must match the\n// variance #defines in cube_uv_reflection_fragment.glsl.js.\nconst EXTRA_LOD_SIGMA = [ 0.125, 0.215, 0.35, 0.446, 0.526, 0.582 ];\n\nconst TOTAL_LODS = LOD_MAX - LOD_MIN + 1 + EXTRA_LOD_SIGMA.length;\n\n// The maximum length of the blur for loop. Smaller sigmas will use fewer\n// samples and exit early, but not recompile the shader.\nconst MAX_SAMPLES = 20;\n\nconst _flatCamera = /*@__PURE__*/ new OrthographicCamera();\nconst { _lodPlanes, _sizeLods, _sigmas } = /*@__PURE__*/ _createPlanes();\nconst _clearColor = /*@__PURE__*/ new Color();\nlet _oldTarget = null;\n\n// Golden Ratio\nconst PHI = ( 1 + Math.sqrt( 5 ) ) / 2;\nconst INV_PHI = 1 / PHI;\n\n// Vertices of a dodecahedron (except the opposites, which represent the\n// same axis), used as axis directions evenly spread on a sphere.\nconst _axisDirections = [\n\t/*@__PURE__*/ new Vector3( 1, 1, 1 ),\n\t/*@__PURE__*/ new Vector3( - 1, 1, 1 ),\n\t/*@__PURE__*/ new Vector3( 1, 1, - 1 ),\n\t/*@__PURE__*/ new Vector3( - 1, 1, - 1 ),\n\t/*@__PURE__*/ new Vector3( 0, PHI, INV_PHI ),\n\t/*@__PURE__*/ new Vector3( 0, PHI, - INV_PHI ),\n\t/*@__PURE__*/ new Vector3( INV_PHI, 0, PHI ),\n\t/*@__PURE__*/ new Vector3( - INV_PHI, 0, PHI ),\n\t/*@__PURE__*/ new Vector3( PHI, INV_PHI, 0 ),\n\t/*@__PURE__*/ new Vector3( - PHI, INV_PHI, 0 ) ];\n\n/**\n * This class generates a Prefiltered, Mipmapped Radiance Environment Map\n * (PMREM) from a cubeMap environment texture. This allows different levels of\n * blur to be quickly accessed based on material roughness. It is packed into a\n * special CubeUV format that allows us to perform custom interpolation so that\n * we can support nonlinear formats such as RGBE. Unlike a traditional mipmap\n * chain, it only goes down to the LOD_MIN level (above), and then creates extra\n * even more filtered 'mips' at the same LOD_MIN resolution, associated with\n * higher roughness levels. In this way we maintain resolution to smoothly\n * interpolate diffuse lighting while limiting sampling computation.\n *\n * Paper: Fast, Accurate Image-Based Lighting\n * https://drive.google.com/file/d/15y8r_UpKlU9SvV4ILb0C3qCPecS8pvLz/view\n*/\n\nclass PMREMGenerator {\n\n\tconstructor( renderer ) {\n\n\t\tthis._renderer = renderer;\n\t\tthis._pingPongRenderTarget = null;\n\n\t\tthis._blurMaterial = _getBlurShader( MAX_SAMPLES );\n\t\tthis._equirectShader = null;\n\t\tthis._cubemapShader = null;\n\n\t\tthis._compileMaterial( this._blurMaterial );\n\n\t}\n\n\t/**\n\t * Generates a PMREM from a supplied Scene, which can be faster than using an\n\t * image if networking bandwidth is low. Optional sigma specifies a blur radius\n\t * in radians to be applied to the scene before PMREM generation. Optional near\n\t * and far planes ensure the scene is rendered in its entirety (the cubeCamera\n\t * is placed at the origin).\n\t */\n\tfromScene( scene, sigma = 0, near = 0.1, far = 100 ) {\n\n\t\t_oldTarget = this._renderer.getRenderTarget();\n\t\tconst cubeUVRenderTarget = this._allocateTargets();\n\n\t\tthis._sceneToCubeUV( scene, near, far, cubeUVRenderTarget );\n\t\tif ( sigma > 0 ) {\n\n\t\t\tthis._blur( cubeUVRenderTarget, 0, 0, sigma );\n\n\t\t}\n\n\t\tthis._applyPMREM( cubeUVRenderTarget );\n\t\tthis._cleanup( cubeUVRenderTarget );\n\n\t\treturn cubeUVRenderTarget;\n\n\t}\n\n\t/**\n\t * Generates a PMREM from an equirectangular texture, which can be either LDR\n\t * or HDR. The ideal input image size is 1k (1024 x 512),\n\t * as this matches best with the 256 x 256 cubemap output.\n\t */\n\tfromEquirectangular( equirectangular, renderTarget = null ) {\n\n\t\treturn this._fromTexture( equirectangular, renderTarget );\n\n\t}\n\n\t/**\n\t * Generates a PMREM from an cubemap texture, which can be either LDR\n\t * or HDR. The ideal input cube size is 256 x 256,\n\t * as this matches best with the 256 x 256 cubemap output.\n\t */\n\tfromCubemap( cubemap, renderTarget = null ) {\n\n\t\treturn this._fromTexture( cubemap, renderTarget );\n\n\t}\n\n\t/**\n\t * Pre-compiles the cubemap shader. You can get faster start-up by invoking this method during\n\t * your texture's network fetch for increased concurrency.\n\t */\n\tcompileCubemapShader() {\n\n\t\tif ( this._cubemapShader === null ) {\n\n\t\t\tthis._cubemapShader = _getCubemapShader();\n\t\t\tthis._compileMaterial( this._cubemapShader );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Pre-compiles the equirectangular shader. You can get faster start-up by invoking this method during\n\t * your texture's network fetch for increased concurrency.\n\t */\n\tcompileEquirectangularShader() {\n\n\t\tif ( this._equirectShader === null ) {\n\n\t\t\tthis._equirectShader = _getEquirectShader();\n\t\t\tthis._compileMaterial( this._equirectShader );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Disposes of the PMREMGenerator's internal memory. Note that PMREMGenerator is a static class,\n\t * so you should not need more than one PMREMGenerator object. If you do, calling dispose() on\n\t * one of them will cause any others to also become unusable.\n\t */\n\tdispose() {\n\n\t\tthis._blurMaterial.dispose();\n\n\t\tif ( this._pingPongRenderTarget !== null ) this._pingPongRenderTarget.dispose();\n\n\t\tif ( this._cubemapShader !== null ) this._cubemapShader.dispose();\n\t\tif ( this._equirectShader !== null ) this._equirectShader.dispose();\n\n\t\tfor ( let i = 0; i < _lodPlanes.length; i ++ ) {\n\n\t\t\t_lodPlanes[ i ].dispose();\n\n\t\t}\n\n\t}\n\n\t// private interface\n\n\t_cleanup( outputTarget ) {\n\n\t\tthis._renderer.setRenderTarget( _oldTarget );\n\t\toutputTarget.scissorTest = false;\n\t\t_setViewport( outputTarget, 0, 0, outputTarget.width, outputTarget.height );\n\n\t}\n\n\t_fromTexture( texture, renderTarget ) {\n\n\t\t_oldTarget = this._renderer.getRenderTarget();\n\t\tconst cubeUVRenderTarget = renderTarget || this._allocateTargets( texture );\n\t\tthis._textureToCubeUV( texture, cubeUVRenderTarget );\n\t\tthis._applyPMREM( cubeUVRenderTarget );\n\t\tthis._cleanup( cubeUVRenderTarget );\n\n\t\treturn cubeUVRenderTarget;\n\n\t}\n\n\t_allocateTargets( texture ) { // warning: null texture is valid\n\n\t\tconst params = {\n\t\t\tmagFilter: LinearFilter,\n\t\t\tminFilter: LinearFilter,\n\t\t\tgenerateMipmaps: false,\n\t\t\ttype: HalfFloatType,\n\t\t\tformat: RGBAFormat,\n\t\t\tencoding: LinearEncoding,\n\t\t\tdepthBuffer: false\n\t\t};\n\n\t\tconst cubeUVRenderTarget = _createRenderTarget( params );\n\t\tcubeUVRenderTarget.depthBuffer = texture ? false : true;\n\n\t\tif ( this._pingPongRenderTarget === null ) {\n\n\t\t\tthis._pingPongRenderTarget = _createRenderTarget( params );\n\n\t\t}\n\n\t\treturn cubeUVRenderTarget;\n\n\t}\n\n\t_compileMaterial( material ) {\n\n\t\tconst tmpMesh = new Mesh( _lodPlanes[ 0 ], material );\n\t\tthis._renderer.compile( tmpMesh, _flatCamera );\n\n\t}\n\n\t_sceneToCubeUV( scene, near, far, cubeUVRenderTarget ) {\n\n\t\tconst fov = 90;\n\t\tconst aspect = 1;\n\t\tconst cubeCamera = new PerspectiveCamera( fov, aspect, near, far );\n\t\tconst upSign = [ 1, - 1, 1, 1, 1, 1 ];\n\t\tconst forwardSign = [ 1, 1, 1, - 1, - 1, - 1 ];\n\t\tconst renderer = this._renderer;\n\n\t\tconst originalAutoClear = renderer.autoClear;\n\t\tconst toneMapping = renderer.toneMapping;\n\t\trenderer.getClearColor( _clearColor );\n\n\t\trenderer.toneMapping = NoToneMapping;\n\t\trenderer.autoClear = false;\n\n\t\tconst backgroundMaterial = new MeshBasicMaterial( {\n\t\t\tname: 'PMREM.Background',\n\t\t\tside: BackSide,\n\t\t\tdepthWrite: false,\n\t\t\tdepthTest: false,\n\t\t} );\n\n\t\tconst backgroundBox = new Mesh( new BoxGeometry(), backgroundMaterial );\n\n\t\tlet useSolidColor = false;\n\t\tconst background = scene.background;\n\n\t\tif ( background ) {\n\n\t\t\tif ( background.isColor ) {\n\n\t\t\t\tbackgroundMaterial.color.copy( background );\n\t\t\t\tscene.background = null;\n\t\t\t\tuseSolidColor = true;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tbackgroundMaterial.color.copy( _clearColor );\n\t\t\tuseSolidColor = true;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst col = i % 3;\n\t\t\tif ( col === 0 ) {\n\n\t\t\t\tcubeCamera.up.set( 0, upSign[ i ], 0 );\n\t\t\t\tcubeCamera.lookAt( forwardSign[ i ], 0, 0 );\n\n\t\t\t} else if ( col === 1 ) {\n\n\t\t\t\tcubeCamera.up.set( 0, 0, upSign[ i ] );\n\t\t\t\tcubeCamera.lookAt( 0, forwardSign[ i ], 0 );\n\n\t\t\t} else {\n\n\t\t\t\tcubeCamera.up.set( 0, upSign[ i ], 0 );\n\t\t\t\tcubeCamera.lookAt( 0, 0, forwardSign[ i ] );\n\n\t\t\t}\n\n\t\t\t_setViewport( cubeUVRenderTarget,\n\t\t\t\tcol * SIZE_MAX, i > 2 ? SIZE_MAX : 0, SIZE_MAX, SIZE_MAX );\n\t\t\trenderer.setRenderTarget( cubeUVRenderTarget );\n\n\t\t\tif ( useSolidColor ) {\n\n\t\t\t\trenderer.render( backgroundBox, cubeCamera );\n\n\t\t\t}\n\n\t\t\trenderer.render( scene, cubeCamera );\n\n\t\t}\n\n\t\tbackgroundBox.geometry.dispose();\n\t\tbackgroundBox.material.dispose();\n\n\t\trenderer.toneMapping = toneMapping;\n\t\trenderer.autoClear = originalAutoClear;\n\t\tscene.background = background;\n\n\t}\n\n\t_textureToCubeUV( texture, cubeUVRenderTarget ) {\n\n\t\tconst renderer = this._renderer;\n\n\t\tconst isCubeTexture = ( texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping );\n\n\t\tif ( isCubeTexture ) {\n\n\t\t\tif ( this._cubemapShader === null ) {\n\n\t\t\t\tthis._cubemapShader = _getCubemapShader();\n\n\t\t\t}\n\n\t\t\tthis._cubemapShader.uniforms.flipEnvMap.value = ( texture.isRenderTargetTexture === false ) ? - 1 : 1;\n\n\t\t} else {\n\n\t\t\tif ( this._equirectShader === null ) {\n\n\t\t\t\tthis._equirectShader = _getEquirectShader();\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst material = isCubeTexture ? this._cubemapShader : this._equirectShader;\n\t\tconst mesh = new Mesh( _lodPlanes[ 0 ], material );\n\n\t\tconst uniforms = material.uniforms;\n\n\t\tuniforms[ 'envMap' ].value = texture;\n\n\t\tif ( ! isCubeTexture ) {\n\n\t\t\tuniforms[ 'texelSize' ].value.set( 1.0 / texture.image.width, 1.0 / texture.image.height );\n\n\t\t}\n\n\t\t_setViewport( cubeUVRenderTarget, 0, 0, 3 * SIZE_MAX, 2 * SIZE_MAX );\n\n\t\trenderer.setRenderTarget( cubeUVRenderTarget );\n\t\trenderer.render( mesh, _flatCamera );\n\n\t}\n\n\t_applyPMREM( cubeUVRenderTarget ) {\n\n\t\tconst renderer = this._renderer;\n\t\tconst autoClear = renderer.autoClear;\n\t\trenderer.autoClear = false;\n\n\t\tfor ( let i = 1; i < TOTAL_LODS; i ++ ) {\n\n\t\t\tconst sigma = Math.sqrt( _sigmas[ i ] * _sigmas[ i ] - _sigmas[ i - 1 ] * _sigmas[ i - 1 ] );\n\n\t\t\tconst poleAxis = _axisDirections[ ( i - 1 ) % _axisDirections.length ];\n\n\t\t\tthis._blur( cubeUVRenderTarget, i - 1, i, sigma, poleAxis );\n\n\t\t}\n\n\t\trenderer.autoClear = autoClear;\n\n\t}\n\n\t/**\n\t * This is a two-pass Gaussian blur for a cubemap. Normally this is done\n\t * vertically and horizontally, but this breaks down on a cube. Here we apply\n\t * the blur latitudinally (around the poles), and then longitudinally (towards\n\t * the poles) to approximate the orthogonally-separable blur. It is least\n\t * accurate at the poles, but still does a decent job.\n\t */\n\t_blur( cubeUVRenderTarget, lodIn, lodOut, sigma, poleAxis ) {\n\n\t\tconst pingPongRenderTarget = this._pingPongRenderTarget;\n\n\t\tthis._halfBlur(\n\t\t\tcubeUVRenderTarget,\n\t\t\tpingPongRenderTarget,\n\t\t\tlodIn,\n\t\t\tlodOut,\n\t\t\tsigma,\n\t\t\t'latitudinal',\n\t\t\tpoleAxis );\n\n\t\tthis._halfBlur(\n\t\t\tpingPongRenderTarget,\n\t\t\tcubeUVRenderTarget,\n\t\t\tlodOut,\n\t\t\tlodOut,\n\t\t\tsigma,\n\t\t\t'longitudinal',\n\t\t\tpoleAxis );\n\n\t}\n\n\t_halfBlur( targetIn, targetOut, lodIn, lodOut, sigmaRadians, direction, poleAxis ) {\n\n\t\tconst renderer = this._renderer;\n\t\tconst blurMaterial = this._blurMaterial;\n\n\t\tif ( direction !== 'latitudinal' && direction !== 'longitudinal' ) {\n\n\t\t\tconsole.error(\n\t\t\t\t'blur direction must be either latitudinal or longitudinal!' );\n\n\t\t}\n\n\t\t// Number of standard deviations at which to cut off the discrete approximation.\n\t\tconst STANDARD_DEVIATIONS = 3;\n\n\t\tconst blurMesh = new Mesh( _lodPlanes[ lodOut ], blurMaterial );\n\t\tconst blurUniforms = blurMaterial.uniforms;\n\n\t\tconst pixels = _sizeLods[ lodIn ] - 1;\n\t\tconst radiansPerPixel = isFinite( sigmaRadians ) ? Math.PI / ( 2 * pixels ) : 2 * Math.PI / ( 2 * MAX_SAMPLES - 1 );\n\t\tconst sigmaPixels = sigmaRadians / radiansPerPixel;\n\t\tconst samples = isFinite( sigmaRadians ) ? 1 + Math.floor( STANDARD_DEVIATIONS * sigmaPixels ) : MAX_SAMPLES;\n\n\t\tif ( samples > MAX_SAMPLES ) {\n\n\t\t\tconsole.warn( `sigmaRadians, ${\n\t\t\t\tsigmaRadians}, is too large and will clip, as it requested ${\n\t\t\t\tsamples} samples when the maximum is set to ${MAX_SAMPLES}` );\n\n\t\t}\n\n\t\tconst weights = [];\n\t\tlet sum = 0;\n\n\t\tfor ( let i = 0; i < MAX_SAMPLES; ++ i ) {\n\n\t\t\tconst x = i / sigmaPixels;\n\t\t\tconst weight = Math.exp( - x * x / 2 );\n\t\t\tweights.push( weight );\n\n\t\t\tif ( i === 0 ) {\n\n\t\t\t\tsum += weight;\n\n\t\t\t} else if ( i < samples ) {\n\n\t\t\t\tsum += 2 * weight;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfor ( let i = 0; i < weights.length; i ++ ) {\n\n\t\t\tweights[ i ] = weights[ i ] / sum;\n\n\t\t}\n\n\t\tblurUniforms[ 'envMap' ].value = targetIn.texture;\n\t\tblurUniforms[ 'samples' ].value = samples;\n\t\tblurUniforms[ 'weights' ].value = weights;\n\t\tblurUniforms[ 'latitudinal' ].value = direction === 'latitudinal';\n\n\t\tif ( poleAxis ) {\n\n\t\t\tblurUniforms[ 'poleAxis' ].value = poleAxis;\n\n\t\t}\n\n\t\tblurUniforms[ 'dTheta' ].value = radiansPerPixel;\n\t\tblurUniforms[ 'mipInt' ].value = LOD_MAX - lodIn;\n\n\t\tconst outputSize = _sizeLods[ lodOut ];\n\t\tconst x = 3 * Math.max( 0, SIZE_MAX - 2 * outputSize );\n\t\tconst y = ( lodOut === 0 ? 0 : 2 * SIZE_MAX ) + 2 * outputSize * ( lodOut > LOD_MAX - LOD_MIN ? lodOut - LOD_MAX + LOD_MIN : 0 );\n\n\t\t_setViewport( targetOut, x, y, 3 * outputSize, 2 * outputSize );\n\t\trenderer.setRenderTarget( targetOut );\n\t\trenderer.render( blurMesh, _flatCamera );\n\n\t}\n\n}\n\nfunction _createPlanes() {\n\n\tconst _lodPlanes = [];\n\tconst _sizeLods = [];\n\tconst _sigmas = [];\n\n\tlet lod = LOD_MAX;\n\n\tfor ( let i = 0; i < TOTAL_LODS; i ++ ) {\n\n\t\tconst sizeLod = Math.pow( 2, lod );\n\t\t_sizeLods.push( sizeLod );\n\t\tlet sigma = 1.0 / sizeLod;\n\n\t\tif ( i > LOD_MAX - LOD_MIN ) {\n\n\t\t\tsigma = EXTRA_LOD_SIGMA[ i - LOD_MAX + LOD_MIN - 1 ];\n\n\t\t} else if ( i === 0 ) {\n\n\t\t\tsigma = 0;\n\n\t\t}\n\n\t\t_sigmas.push( sigma );\n\n\t\tconst texelSize = 1.0 / ( sizeLod - 1 );\n\t\tconst min = - texelSize / 2;\n\t\tconst max = 1 + texelSize / 2;\n\t\tconst uv1 = [ min, min, max, min, max, max, min, min, max, max, min, max ];\n\n\t\tconst cubeFaces = 6;\n\t\tconst vertices = 6;\n\t\tconst positionSize = 3;\n\t\tconst uvSize = 2;\n\t\tconst faceIndexSize = 1;\n\n\t\tconst position = new Float32Array( positionSize * vertices * cubeFaces );\n\t\tconst uv = new Float32Array( uvSize * vertices * cubeFaces );\n\t\tconst faceIndex = new Float32Array( faceIndexSize * vertices * cubeFaces );\n\n\t\tfor ( let face = 0; face < cubeFaces; face ++ ) {\n\n\t\t\tconst x = ( face % 3 ) * 2 / 3 - 1;\n\t\t\tconst y = face > 2 ? 0 : - 1;\n\t\t\tconst coordinates = [\n\t\t\t\tx, y, 0,\n\t\t\t\tx + 2 / 3, y, 0,\n\t\t\t\tx + 2 / 3, y + 1, 0,\n\t\t\t\tx, y, 0,\n\t\t\t\tx + 2 / 3, y + 1, 0,\n\t\t\t\tx, y + 1, 0\n\t\t\t];\n\t\t\tposition.set( coordinates, positionSize * vertices * face );\n\t\t\tuv.set( uv1, uvSize * vertices * face );\n\t\t\tconst fill = [ face, face, face, face, face, face ];\n\t\t\tfaceIndex.set( fill, faceIndexSize * vertices * face );\n\n\t\t}\n\n\t\tconst planes = new BufferGeometry();\n\t\tplanes.setAttribute( 'position', new BufferAttribute( position, positionSize ) );\n\t\tplanes.setAttribute( 'uv', new BufferAttribute( uv, uvSize ) );\n\t\tplanes.setAttribute( 'faceIndex', new BufferAttribute( faceIndex, faceIndexSize ) );\n\t\t_lodPlanes.push( planes );\n\n\t\tif ( lod > LOD_MIN ) {\n\n\t\t\tlod --;\n\n\t\t}\n\n\t}\n\n\treturn { _lodPlanes, _sizeLods, _sigmas };\n\n}\n\nfunction _createRenderTarget( params ) {\n\n\tconst cubeUVRenderTarget = new WebGLRenderTarget( 3 * SIZE_MAX, 3 * SIZE_MAX, params );\n\tcubeUVRenderTarget.texture.mapping = CubeUVReflectionMapping;\n\tcubeUVRenderTarget.texture.name = 'PMREM.cubeUv';\n\tcubeUVRenderTarget.scissorTest = true;\n\treturn cubeUVRenderTarget;\n\n}\n\nfunction _setViewport( target, x, y, width, height ) {\n\n\ttarget.viewport.set( x, y, width, height );\n\ttarget.scissor.set( x, y, width, height );\n\n}\n\nfunction _getBlurShader( maxSamples ) {\n\n\tconst weights = new Float32Array( maxSamples );\n\tconst poleAxis = new Vector3( 0, 1, 0 );\n\tconst shaderMaterial = new RawShaderMaterial( {\n\n\t\tname: 'SphericalGaussianBlur',\n\n\t\tdefines: { 'n': maxSamples },\n\n\t\tuniforms: {\n\t\t\t'envMap': { value: null },\n\t\t\t'samples': { value: 1 },\n\t\t\t'weights': { value: weights },\n\t\t\t'latitudinal': { value: false },\n\t\t\t'dTheta': { value: 0 },\n\t\t\t'mipInt': { value: 0 },\n\t\t\t'poleAxis': { value: poleAxis }\n\t\t},\n\n\t\tvertexShader: _getCommonVertexShader(),\n\n\t\tfragmentShader: /* glsl */`\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`,\n\n\t\tblending: NoBlending,\n\t\tdepthTest: false,\n\t\tdepthWrite: false\n\n\t} );\n\n\treturn shaderMaterial;\n\n}\n\nfunction _getEquirectShader() {\n\n\tconst texelSize = new Vector2( 1, 1 );\n\tconst shaderMaterial = new RawShaderMaterial( {\n\n\t\tname: 'EquirectangularToCubeUV',\n\n\t\tuniforms: {\n\t\t\t'envMap': { value: null },\n\t\t\t'texelSize': { value: texelSize }\n\t\t},\n\n\t\tvertexShader: _getCommonVertexShader(),\n\n\t\tfragmentShader: /* glsl */`\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 vec2 texelSize;\n\n\t\t\t#include <common>\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tvec2 f = fract( uv / texelSize - 0.5 );\n\t\t\t\tuv -= f * texelSize;\n\t\t\t\tvec3 tl = texture2D ( envMap, uv ).rgb;\n\t\t\t\tuv.x += texelSize.x;\n\t\t\t\tvec3 tr = texture2D ( envMap, uv ).rgb;\n\t\t\t\tuv.y += texelSize.y;\n\t\t\t\tvec3 br = texture2D ( envMap, uv ).rgb;\n\t\t\t\tuv.x -= texelSize.x;\n\t\t\t\tvec3 bl = texture2D ( envMap, uv ).rgb;\n\n\t\t\t\tvec3 tm = mix( tl, tr, f.x );\n\t\t\t\tvec3 bm = mix( bl, br, f.x );\n\t\t\t\tgl_FragColor.rgb = mix( tm, bm, f.y );\n\n\t\t\t}\n\t\t`,\n\n\t\tblending: NoBlending,\n\t\tdepthTest: false,\n\t\tdepthWrite: false\n\n\t} );\n\n\treturn shaderMaterial;\n\n}\n\nfunction _getCubemapShader() {\n\n\tconst shaderMaterial = new RawShaderMaterial( {\n\n\t\tname: 'CubemapToCubeUV',\n\n\t\tuniforms: {\n\t\t\t'envMap': { value: null },\n\t\t\t'flipEnvMap': { value: - 1 }\n\t\t},\n\n\t\tvertexShader: _getCommonVertexShader(),\n\n\t\tfragmentShader: /* glsl */`\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`,\n\n\t\tblending: NoBlending,\n\t\tdepthTest: false,\n\t\tdepthWrite: false\n\n\t} );\n\n\treturn shaderMaterial;\n\n}\n\nfunction _getCommonVertexShader() {\n\n\treturn /* glsl */`\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute vec3 position;\n\t\tattribute vec2 uv;\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`;\n\n}\n\nfunction WebGLCubeUVMaps( renderer ) {\n\n\tlet cubeUVmaps = new WeakMap();\n\n\tlet pmremGenerator = null;\n\n\tfunction get( texture ) {\n\n\t\tif ( texture && texture.isTexture ) {\n\n\t\t\tconst mapping = texture.mapping;\n\n\t\t\tconst isEquirectMap = ( mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping );\n\t\t\tconst isCubeMap = ( mapping === CubeReflectionMapping || mapping === CubeRefractionMapping );\n\n\t\t\t// equirect/cube map to cubeUV conversion\n\n\t\t\tif ( isEquirectMap || isCubeMap ) {\n\n\t\t\t\tif ( texture.isRenderTargetTexture && texture.needsPMREMUpdate === true ) {\n\n\t\t\t\t\ttexture.needsPMREMUpdate = false;\n\n\t\t\t\t\tlet renderTarget = cubeUVmaps.get( texture );\n\n\t\t\t\t\tif ( pmremGenerator === null ) pmremGenerator = new PMREMGenerator( renderer );\n\n\t\t\t\t\trenderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular( texture, renderTarget ) : pmremGenerator.fromCubemap( texture, renderTarget );\n\t\t\t\t\tcubeUVmaps.set( texture, renderTarget );\n\n\t\t\t\t\treturn renderTarget.texture;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( cubeUVmaps.has( texture ) ) {\n\n\t\t\t\t\t\treturn cubeUVmaps.get( texture ).texture;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst image = texture.image;\n\n\t\t\t\t\t\tif ( ( isEquirectMap && image && image.height > 0 ) || ( isCubeMap && image && isCubeTextureComplete( image ) ) ) {\n\n\t\t\t\t\t\t\tif ( pmremGenerator === null ) pmremGenerator = new PMREMGenerator( renderer );\n\n\t\t\t\t\t\t\tconst renderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular( texture ) : pmremGenerator.fromCubemap( texture );\n\t\t\t\t\t\t\tcubeUVmaps.set( texture, renderTarget );\n\n\t\t\t\t\t\t\ttexture.addEventListener( 'dispose', onTextureDispose );\n\n\t\t\t\t\t\t\treturn renderTarget.texture;\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// image not yet ready. try the conversion next frame\n\n\t\t\t\t\t\t\treturn null;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tfunction isCubeTextureComplete( image ) {\n\n\t\tlet count = 0;\n\t\tconst length = 6;\n\n\t\tfor ( let i = 0; i < length; i ++ ) {\n\n\t\t\tif ( image[ i ] !== undefined ) count ++;\n\n\t\t}\n\n\t\treturn count === length;\n\n\n\t}\n\n\tfunction onTextureDispose( event ) {\n\n\t\tconst texture = event.target;\n\n\t\ttexture.removeEventListener( 'dispose', onTextureDispose );\n\n\t\tconst cubemapUV = cubeUVmaps.get( texture );\n\n\t\tif ( cubemapUV !== undefined ) {\n\n\t\t\tcubeUVmaps.delete( texture );\n\t\t\tcubemapUV.dispose();\n\n\t\t}\n\n\t}\n\n\tfunction dispose() {\n\n\t\tcubeUVmaps = new WeakMap();\n\n\t\tif ( pmremGenerator !== null ) {\n\n\t\t\tpmremGenerator.dispose();\n\t\t\tpmremGenerator = null;\n\n\t\t}\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction WebGLExtensions( gl ) {\n\n\tconst extensions = {};\n\n\tfunction getExtension( name ) {\n\n\t\tif ( extensions[ name ] !== undefined ) {\n\n\t\t\treturn extensions[ name ];\n\n\t\t}\n\n\t\tlet extension;\n\n\t\tswitch ( name ) {\n\n\t\t\tcase 'WEBGL_depth_texture':\n\t\t\t\textension = gl.getExtension( 'WEBGL_depth_texture' ) || gl.getExtension( 'MOZ_WEBGL_depth_texture' ) || gl.getExtension( 'WEBKIT_WEBGL_depth_texture' );\n\t\t\t\tbreak;\n\n\t\t\tcase 'EXT_texture_filter_anisotropic':\n\t\t\t\textension = gl.getExtension( 'EXT_texture_filter_anisotropic' ) || gl.getExtension( 'MOZ_EXT_texture_filter_anisotropic' ) || gl.getExtension( 'WEBKIT_EXT_texture_filter_anisotropic' );\n\t\t\t\tbreak;\n\n\t\t\tcase 'WEBGL_compressed_texture_s3tc':\n\t\t\t\textension = gl.getExtension( 'WEBGL_compressed_texture_s3tc' ) || gl.getExtension( 'MOZ_WEBGL_compressed_texture_s3tc' ) || gl.getExtension( 'WEBKIT_WEBGL_compressed_texture_s3tc' );\n\t\t\t\tbreak;\n\n\t\t\tcase 'WEBGL_compressed_texture_pvrtc':\n\t\t\t\textension = gl.getExtension( 'WEBGL_compressed_texture_pvrtc' ) || gl.getExtension( 'WEBKIT_WEBGL_compressed_texture_pvrtc' );\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\textension = gl.getExtension( name );\n\n\t\t}\n\n\t\textensions[ name ] = extension;\n\n\t\treturn extension;\n\n\t}\n\n\treturn {\n\n\t\thas: function ( name ) {\n\n\t\t\treturn getExtension( name ) !== null;\n\n\t\t},\n\n\t\tinit: function ( capabilities ) {\n\n\t\t\tif ( capabilities.isWebGL2 ) {\n\n\t\t\t\tgetExtension( 'EXT_color_buffer_float' );\n\n\t\t\t} else {\n\n\t\t\t\tgetExtension( 'WEBGL_depth_texture' );\n\t\t\t\tgetExtension( 'OES_texture_float' );\n\t\t\t\tgetExtension( 'OES_texture_half_float' );\n\t\t\t\tgetExtension( 'OES_texture_half_float_linear' );\n\t\t\t\tgetExtension( 'OES_standard_derivatives' );\n\t\t\t\tgetExtension( 'OES_element_index_uint' );\n\t\t\t\tgetExtension( 'OES_vertex_array_object' );\n\t\t\t\tgetExtension( 'ANGLE_instanced_arrays' );\n\n\t\t\t}\n\n\t\t\tgetExtension( 'OES_texture_float_linear' );\n\t\t\tgetExtension( 'EXT_color_buffer_half_float' );\n\t\t\tgetExtension( 'WEBGL_multisampled_render_to_texture' );\n\n\t\t},\n\n\t\tget: function ( name ) {\n\n\t\t\tconst extension = getExtension( name );\n\n\t\t\tif ( extension === null ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: ' + name + ' extension not supported.' );\n\n\t\t\t}\n\n\t\t\treturn extension;\n\n\t\t}\n\n\t};\n\n}\n\nfunction WebGLGeometries( gl, attributes, info, bindingStates ) {\n\n\tconst geometries = {};\n\tconst wireframeAttributes = new WeakMap();\n\n\tfunction onGeometryDispose( event ) {\n\n\t\tconst geometry = event.target;\n\n\t\tif ( geometry.index !== null ) {\n\n\t\t\tattributes.remove( geometry.index );\n\n\t\t}\n\n\t\tfor ( const name in geometry.attributes ) {\n\n\t\t\tattributes.remove( geometry.attributes[ name ] );\n\n\t\t}\n\n\t\tgeometry.removeEventListener( 'dispose', onGeometryDispose );\n\n\t\tdelete geometries[ geometry.id ];\n\n\t\tconst attribute = wireframeAttributes.get( geometry );\n\n\t\tif ( attribute ) {\n\n\t\t\tattributes.remove( attribute );\n\t\t\twireframeAttributes.delete( geometry );\n\n\t\t}\n\n\t\tbindingStates.releaseStatesOfGeometry( geometry );\n\n\t\tif ( geometry.isInstancedBufferGeometry === true ) {\n\n\t\t\tdelete geometry._maxInstanceCount;\n\n\t\t}\n\n\t\t//\n\n\t\tinfo.memory.geometries --;\n\n\t}\n\n\tfunction get( object, geometry ) {\n\n\t\tif ( geometries[ geometry.id ] === true ) return geometry;\n\n\t\tgeometry.addEventListener( 'dispose', onGeometryDispose );\n\n\t\tgeometries[ geometry.id ] = true;\n\n\t\tinfo.memory.geometries ++;\n\n\t\treturn geometry;\n\n\t}\n\n\tfunction update( geometry ) {\n\n\t\tconst geometryAttributes = geometry.attributes;\n\n\t\t// Updating index buffer in VAO now. See WebGLBindingStates.\n\n\t\tfor ( const name in geometryAttributes ) {\n\n\t\t\tattributes.update( geometryAttributes[ name ], 34962 );\n\n\t\t}\n\n\t\t// morph targets\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst array = morphAttributes[ name ];\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i ++ ) {\n\n\t\t\t\tattributes.update( array[ i ], 34962 );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction updateWireframeAttribute( geometry ) {\n\n\t\tconst indices = [];\n\n\t\tconst geometryIndex = geometry.index;\n\t\tconst geometryPosition = geometry.attributes.position;\n\t\tlet version = 0;\n\n\t\tif ( geometryIndex !== null ) {\n\n\t\t\tconst array = geometryIndex.array;\n\t\t\tversion = geometryIndex.version;\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i += 3 ) {\n\n\t\t\t\tconst a = array[ i + 0 ];\n\t\t\t\tconst b = array[ i + 1 ];\n\t\t\t\tconst c = array[ i + 2 ];\n\n\t\t\t\tindices.push( a, b, b, c, c, a );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst array = geometryPosition.array;\n\t\t\tversion = geometryPosition.version;\n\n\t\t\tfor ( let i = 0, l = ( array.length / 3 ) - 1; i < l; i += 3 ) {\n\n\t\t\t\tconst a = i + 0;\n\t\t\t\tconst b = i + 1;\n\t\t\t\tconst c = i + 2;\n\n\t\t\t\tindices.push( a, b, b, c, c, a );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst attribute = new ( arrayNeedsUint32( indices ) ? Uint32BufferAttribute : Uint16BufferAttribute )( indices, 1 );\n\t\tattribute.version = version;\n\n\t\t// Updating index buffer in VAO now. See WebGLBindingStates\n\n\t\t//\n\n\t\tconst previousAttribute = wireframeAttributes.get( geometry );\n\n\t\tif ( previousAttribute ) attributes.remove( previousAttribute );\n\n\t\t//\n\n\t\twireframeAttributes.set( geometry, attribute );\n\n\t}\n\n\tfunction getWireframeAttribute( geometry ) {\n\n\t\tconst currentAttribute = wireframeAttributes.get( geometry );\n\n\t\tif ( currentAttribute ) {\n\n\t\t\tconst geometryIndex = geometry.index;\n\n\t\t\tif ( geometryIndex !== null ) {\n\n\t\t\t\t// if the attribute is obsolete, create a new one\n\n\t\t\t\tif ( currentAttribute.version < geometryIndex.version ) {\n\n\t\t\t\t\tupdateWireframeAttribute( geometry );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tupdateWireframeAttribute( geometry );\n\n\t\t}\n\n\t\treturn wireframeAttributes.get( geometry );\n\n\t}\n\n\treturn {\n\n\t\tget: get,\n\t\tupdate: update,\n\n\t\tgetWireframeAttribute: getWireframeAttribute\n\n\t};\n\n}\n\nfunction WebGLIndexedBufferRenderer( gl, extensions, info, capabilities ) {\n\n\tconst isWebGL2 = capabilities.isWebGL2;\n\n\tlet mode;\n\n\tfunction setMode( value ) {\n\n\t\tmode = value;\n\n\t}\n\n\tlet type, bytesPerElement;\n\n\tfunction setIndex( value ) {\n\n\t\ttype = value.type;\n\t\tbytesPerElement = value.bytesPerElement;\n\n\t}\n\n\tfunction render( start, count ) {\n\n\t\tgl.drawElements( mode, count, type, start * bytesPerElement );\n\n\t\tinfo.update( count, mode, 1 );\n\n\t}\n\n\tfunction renderInstances( start, count, primcount ) {\n\n\t\tif ( primcount === 0 ) return;\n\n\t\tlet extension, methodName;\n\n\t\tif ( isWebGL2 ) {\n\n\t\t\textension = gl;\n\t\t\tmethodName = 'drawElementsInstanced';\n\n\t\t} else {\n\n\t\t\textension = extensions.get( 'ANGLE_instanced_arrays' );\n\t\t\tmethodName = 'drawElementsInstancedANGLE';\n\n\t\t\tif ( extension === null ) {\n\n\t\t\t\tconsole.error( 'THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.' );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t\textension[ methodName ]( mode, count, type, start * bytesPerElement, primcount );\n\n\t\tinfo.update( count, mode, primcount );\n\n\t}\n\n\t//\n\n\tthis.setMode = setMode;\n\tthis.setIndex = setIndex;\n\tthis.render = render;\n\tthis.renderInstances = renderInstances;\n\n}\n\nfunction WebGLInfo( gl ) {\n\n\tconst memory = {\n\t\tgeometries: 0,\n\t\ttextures: 0\n\t};\n\n\tconst render = {\n\t\tframe: 0,\n\t\tcalls: 0,\n\t\ttriangles: 0,\n\t\tpoints: 0,\n\t\tlines: 0\n\t};\n\n\tfunction update( count, mode, instanceCount ) {\n\n\t\trender.calls ++;\n\n\t\tswitch ( mode ) {\n\n\t\t\tcase 4:\n\t\t\t\trender.triangles += instanceCount * ( count / 3 );\n\t\t\t\tbreak;\n\n\t\t\tcase 1:\n\t\t\t\trender.lines += instanceCount * ( count / 2 );\n\t\t\t\tbreak;\n\n\t\t\tcase 3:\n\t\t\t\trender.lines += instanceCount * ( count - 1 );\n\t\t\t\tbreak;\n\n\t\t\tcase 2:\n\t\t\t\trender.lines += instanceCount * count;\n\t\t\t\tbreak;\n\n\t\t\tcase 0:\n\t\t\t\trender.points += instanceCount * count;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.error( 'THREE.WebGLInfo: Unknown draw mode:', mode );\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\tfunction reset() {\n\n\t\trender.frame ++;\n\t\trender.calls = 0;\n\t\trender.triangles = 0;\n\t\trender.points = 0;\n\t\trender.lines = 0;\n\n\t}\n\n\treturn {\n\t\tmemory: memory,\n\t\trender: render,\n\t\tprograms: null,\n\t\tautoReset: true,\n\t\treset: reset,\n\t\tupdate: update\n\t};\n\n}\n\nclass DataTexture2DArray extends Texture {\n\n\tconstructor( data = null, width = 1, height = 1, depth = 1 ) {\n\n\t\tsuper( null );\n\n\t\tthis.image = { data, width, height, depth };\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nDataTexture2DArray.prototype.isDataTexture2DArray = true;\n\nfunction numericalSort( a, b ) {\n\n\treturn a[ 0 ] - b[ 0 ];\n\n}\n\nfunction absNumericalSort( a, b ) {\n\n\treturn Math.abs( b[ 1 ] ) - Math.abs( a[ 1 ] );\n\n}\n\nfunction denormalize( morph, attribute ) {\n\n\tlet denominator = 1;\n\tconst array = attribute.isInterleavedBufferAttribute ? attribute.data.array : attribute.array;\n\n\tif ( array instanceof Int8Array ) denominator = 127;\n\telse if ( array instanceof Int16Array ) denominator = 32767;\n\telse if ( array instanceof Int32Array ) denominator = 2147483647;\n\telse console.error( 'THREE.WebGLMorphtargets: Unsupported morph attribute data type: ', array );\n\n\tmorph.divideScalar( denominator );\n\n}\n\nfunction WebGLMorphtargets( gl, capabilities, textures ) {\n\n\tconst influencesList = {};\n\tconst morphInfluences = new Float32Array( 8 );\n\tconst morphTextures = new WeakMap();\n\tconst morph = new Vector3();\n\n\tconst workInfluences = [];\n\n\tfor ( let i = 0; i < 8; i ++ ) {\n\n\t\tworkInfluences[ i ] = [ i, 0 ];\n\n\t}\n\n\tfunction update( object, geometry, material, program ) {\n\n\t\tconst objectInfluences = object.morphTargetInfluences;\n\n\t\tif ( capabilities.isWebGL2 === true ) {\n\n\t\t\t// instead of using attributes, the WebGL 2 code path encodes morph targets\n\t\t\t// into an array of data textures. Each layer represents a single morph target.\n\n\t\t\tconst numberOfMorphTargets = geometry.morphAttributes.position.length;\n\n\t\t\tlet entry = morphTextures.get( geometry );\n\n\t\t\tif ( entry === undefined || entry.count !== numberOfMorphTargets ) {\n\n\t\t\t\tif ( entry !== undefined ) entry.texture.dispose();\n\n\t\t\t\tconst hasMorphNormals = geometry.morphAttributes.normal !== undefined;\n\n\t\t\t\tconst morphTargets = geometry.morphAttributes.position;\n\t\t\t\tconst morphNormals = geometry.morphAttributes.normal || [];\n\n\t\t\t\tconst numberOfVertices = geometry.attributes.position.count;\n\t\t\t\tconst numberOfVertexData = ( hasMorphNormals === true ) ? 2 : 1; // (v,n) vs. (v)\n\n\t\t\t\tlet width = numberOfVertices * numberOfVertexData;\n\t\t\t\tlet height = 1;\n\n\t\t\t\tif ( width > capabilities.maxTextureSize ) {\n\n\t\t\t\t\theight = Math.ceil( width / capabilities.maxTextureSize );\n\t\t\t\t\twidth = capabilities.maxTextureSize;\n\n\t\t\t\t}\n\n\t\t\t\tconst buffer = new Float32Array( width * height * 4 * numberOfMorphTargets );\n\n\t\t\t\tconst texture = new DataTexture2DArray( buffer, width, height, numberOfMorphTargets );\n\t\t\t\ttexture.format = RGBAFormat; // using RGBA since RGB might be emulated (and is thus slower)\n\t\t\t\ttexture.type = FloatType;\n\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\t// fill buffer\n\n\t\t\t\tconst vertexDataStride = numberOfVertexData * 4;\n\n\t\t\t\tfor ( let i = 0; i < numberOfMorphTargets; i ++ ) {\n\n\t\t\t\t\tconst morphTarget = morphTargets[ i ];\n\t\t\t\t\tconst morphNormal = morphNormals[ i ];\n\n\t\t\t\t\tconst offset = width * height * 4 * i;\n\n\t\t\t\t\tfor ( let j = 0; j < morphTarget.count; j ++ ) {\n\n\t\t\t\t\t\tmorph.fromBufferAttribute( morphTarget, j );\n\n\t\t\t\t\t\tif ( morphTarget.normalized === true ) denormalize( morph, morphTarget );\n\n\t\t\t\t\t\tconst stride = j * vertexDataStride;\n\n\t\t\t\t\t\tbuffer[ offset + stride + 0 ] = morph.x;\n\t\t\t\t\t\tbuffer[ offset + stride + 1 ] = morph.y;\n\t\t\t\t\t\tbuffer[ offset + stride + 2 ] = morph.z;\n\t\t\t\t\t\tbuffer[ offset + stride + 3 ] = 0;\n\n\t\t\t\t\t\tif ( hasMorphNormals === true ) {\n\n\t\t\t\t\t\t\tmorph.fromBufferAttribute( morphNormal, j );\n\n\t\t\t\t\t\t\tif ( morphNormal.normalized === true ) denormalize( morph, morphNormal );\n\n\t\t\t\t\t\t\tbuffer[ offset + stride + 4 ] = morph.x;\n\t\t\t\t\t\t\tbuffer[ offset + stride + 5 ] = morph.y;\n\t\t\t\t\t\t\tbuffer[ offset + stride + 6 ] = morph.z;\n\t\t\t\t\t\t\tbuffer[ offset + stride + 7 ] = 0;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tentry = {\n\t\t\t\t\tcount: numberOfMorphTargets,\n\t\t\t\t\ttexture: texture,\n\t\t\t\t\tsize: new Vector2( width, height )\n\t\t\t\t};\n\n\t\t\t\tmorphTextures.set( geometry, entry );\n\n\t\t\t\tfunction disposeTexture() {\n\n\t\t\t\t\ttexture.dispose();\n\n\t\t\t\t\tmorphTextures.delete( geometry );\n\n\t\t\t\t\tgeometry.removeEventListener( 'dispose', disposeTexture );\n\n\t\t\t\t}\n\n\t\t\t\tgeometry.addEventListener( 'dispose', disposeTexture );\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tlet morphInfluencesSum = 0;\n\n\t\t\tfor ( let i = 0; i < objectInfluences.length; i ++ ) {\n\n\t\t\t\tmorphInfluencesSum += objectInfluences[ i ];\n\n\t\t\t}\n\n\t\t\tconst morphBaseInfluence = geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\n\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetBaseInfluence', morphBaseInfluence );\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetInfluences', objectInfluences );\n\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetsTexture', entry.texture, textures );\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetsTextureSize', entry.size );\n\n\n\t\t} else {\n\n\t\t\t// When object doesn't have morph target influences defined, we treat it as a 0-length array\n\t\t\t// This is important to make sure we set up morphTargetBaseInfluence / morphTargetInfluences\n\n\t\t\tconst length = objectInfluences === undefined ? 0 : objectInfluences.length;\n\n\t\t\tlet influences = influencesList[ geometry.id ];\n\n\t\t\tif ( influences === undefined || influences.length !== length ) {\n\n\t\t\t\t// initialise list\n\n\t\t\t\tinfluences = [];\n\n\t\t\t\tfor ( let i = 0; i < length; i ++ ) {\n\n\t\t\t\t\tinfluences[ i ] = [ i, 0 ];\n\n\t\t\t\t}\n\n\t\t\t\tinfluencesList[ geometry.id ] = influences;\n\n\t\t\t}\n\n\t\t\t// Collect influences\n\n\t\t\tfor ( let i = 0; i < length; i ++ ) {\n\n\t\t\t\tconst influence = influences[ i ];\n\n\t\t\t\tinfluence[ 0 ] = i;\n\t\t\t\tinfluence[ 1 ] = objectInfluences[ i ];\n\n\t\t\t}\n\n\t\t\tinfluences.sort( absNumericalSort );\n\n\t\t\tfor ( let i = 0; i < 8; i ++ ) {\n\n\t\t\t\tif ( i < length && influences[ i ][ 1 ] ) {\n\n\t\t\t\t\tworkInfluences[ i ][ 0 ] = influences[ i ][ 0 ];\n\t\t\t\t\tworkInfluences[ i ][ 1 ] = influences[ i ][ 1 ];\n\n\t\t\t\t} else {\n\n\t\t\t\t\tworkInfluences[ i ][ 0 ] = Number.MAX_SAFE_INTEGER;\n\t\t\t\t\tworkInfluences[ i ][ 1 ] = 0;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tworkInfluences.sort( numericalSort );\n\n\t\t\tconst morphTargets = geometry.morphAttributes.position;\n\t\t\tconst morphNormals = geometry.morphAttributes.normal;\n\n\t\t\tlet morphInfluencesSum = 0;\n\n\t\t\tfor ( let i = 0; i < 8; i ++ ) {\n\n\t\t\t\tconst influence = workInfluences[ i ];\n\t\t\t\tconst index = influence[ 0 ];\n\t\t\t\tconst value = influence[ 1 ];\n\n\t\t\t\tif ( index !== Number.MAX_SAFE_INTEGER && value ) {\n\n\t\t\t\t\tif ( morphTargets && geometry.getAttribute( 'morphTarget' + i ) !== morphTargets[ index ] ) {\n\n\t\t\t\t\t\tgeometry.setAttribute( 'morphTarget' + i, morphTargets[ index ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( morphNormals && geometry.getAttribute( 'morphNormal' + i ) !== morphNormals[ index ] ) {\n\n\t\t\t\t\t\tgeometry.setAttribute( 'morphNormal' + i, morphNormals[ index ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tmorphInfluences[ i ] = value;\n\t\t\t\t\tmorphInfluencesSum += value;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( morphTargets && geometry.hasAttribute( 'morphTarget' + i ) === true ) {\n\n\t\t\t\t\t\tgeometry.deleteAttribute( 'morphTarget' + i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( morphNormals && geometry.hasAttribute( 'morphNormal' + i ) === true ) {\n\n\t\t\t\t\t\tgeometry.deleteAttribute( 'morphNormal' + i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tmorphInfluences[ i ] = 0;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// GLSL shader uses formula baseinfluence * base + sum(target * influence)\n\t\t\t// This allows us to switch between absolute morphs and relative morphs without changing shader code\n\t\t\t// When baseinfluence = 1 - sum(influence), the above is equivalent to sum((target - base) * influence)\n\t\t\tconst morphBaseInfluence = geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\n\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetBaseInfluence', morphBaseInfluence );\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetInfluences', morphInfluences );\n\n\t\t}\n\n\t}\n\n\treturn {\n\n\t\tupdate: update\n\n\t};\n\n}\n\nfunction WebGLObjects( gl, geometries, attributes, info ) {\n\n\tlet updateMap = new WeakMap();\n\n\tfunction update( object ) {\n\n\t\tconst frame = info.render.frame;\n\n\t\tconst geometry = object.geometry;\n\t\tconst buffergeometry = geometries.get( object, geometry );\n\n\t\t// Update once per frame\n\n\t\tif ( updateMap.get( buffergeometry ) !== frame ) {\n\n\t\t\tgeometries.update( buffergeometry );\n\n\t\t\tupdateMap.set( buffergeometry, frame );\n\n\t\t}\n\n\t\tif ( object.isInstancedMesh ) {\n\n\t\t\tif ( object.hasEventListener( 'dispose', onInstancedMeshDispose ) === false ) {\n\n\t\t\t\tobject.addEventListener( 'dispose', onInstancedMeshDispose );\n\n\t\t\t}\n\n\t\t\tattributes.update( object.instanceMatrix, 34962 );\n\n\t\t\tif ( object.instanceColor !== null ) {\n\n\t\t\t\tattributes.update( object.instanceColor, 34962 );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn buffergeometry;\n\n\t}\n\n\tfunction dispose() {\n\n\t\tupdateMap = new WeakMap();\n\n\t}\n\n\tfunction onInstancedMeshDispose( event ) {\n\n\t\tconst instancedMesh = event.target;\n\n\t\tinstancedMesh.removeEventListener( 'dispose', onInstancedMeshDispose );\n\n\t\tattributes.remove( instancedMesh.instanceMatrix );\n\n\t\tif ( instancedMesh.instanceColor !== null ) attributes.remove( instancedMesh.instanceColor );\n\n\t}\n\n\treturn {\n\n\t\tupdate: update,\n\t\tdispose: dispose\n\n\t};\n\n}\n\nclass DataTexture3D extends Texture {\n\n\tconstructor( data = null, width = 1, height = 1, depth = 1 ) {\n\n\t\t// We're going to add .setXXX() methods for setting properties later.\n\t\t// Users can still set in DataTexture3D directly.\n\t\t//\n\t\t//\tconst texture = new THREE.DataTexture3D( data, width, height, depth );\n\t\t// \ttexture.anisotropy = 16;\n\t\t//\n\t\t// See #14839\n\n\t\tsuper( null );\n\n\t\tthis.image = { data, width, height, depth };\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nDataTexture3D.prototype.isDataTexture3D = true;\n\n/**\n * Uniforms of a program.\n * Those form a tree structure with a special top-level container for the root,\n * which you get by calling 'new WebGLUniforms( gl, program )'.\n *\n *\n * Properties of inner nodes including the top-level container:\n *\n * .seq - array of nested uniforms\n * .map - nested uniforms by name\n *\n *\n * Methods of all nodes except the top-level container:\n *\n * .setValue( gl, value, [textures] )\n *\n * \t\tuploads a uniform value(s)\n * \tthe 'textures' parameter is needed for sampler uniforms\n *\n *\n * Static methods of the top-level container (textures factorizations):\n *\n * .upload( gl, seq, values, textures )\n *\n * \t\tsets uniforms in 'seq' to 'values[id].value'\n *\n * .seqWithValue( seq, values ) : filteredSeq\n *\n * \t\tfilters 'seq' entries with corresponding entry in values\n *\n *\n * Methods of the top-level container (textures factorizations):\n *\n * .setValue( gl, name, value, textures )\n *\n * \t\tsets uniform with name 'name' to 'value'\n *\n * .setOptional( gl, obj, prop )\n *\n * \t\tlike .set for an optional property of the object\n *\n */\n\nconst emptyTexture = new Texture();\nconst emptyTexture2dArray = new DataTexture2DArray();\nconst emptyTexture3d = new DataTexture3D();\nconst emptyCubeTexture = new CubeTexture();\n\n// --- Utilities ---\n\n// Array Caches (provide typed arrays for temporary by size)\n\nconst arrayCacheF32 = [];\nconst arrayCacheI32 = [];\n\n// Float32Array caches used for uploading Matrix uniforms\n\nconst mat4array = new Float32Array( 16 );\nconst mat3array = new Float32Array( 9 );\nconst mat2array = new Float32Array( 4 );\n\n// Flattening for arrays of vectors and matrices\n\nfunction flatten( array, nBlocks, blockSize ) {\n\n\tconst firstElem = array[ 0 ];\n\n\tif ( firstElem <= 0 || firstElem > 0 ) return array;\n\t// unoptimized: ! isNaN( firstElem )\n\t// see http://jacksondunstan.com/articles/983\n\n\tconst n = nBlocks * blockSize;\n\tlet r = arrayCacheF32[ n ];\n\n\tif ( r === undefined ) {\n\n\t\tr = new Float32Array( n );\n\t\tarrayCacheF32[ n ] = r;\n\n\t}\n\n\tif ( nBlocks !== 0 ) {\n\n\t\tfirstElem.toArray( r, 0 );\n\n\t\tfor ( let i = 1, offset = 0; i !== nBlocks; ++ i ) {\n\n\t\t\toffset += blockSize;\n\t\t\tarray[ i ].toArray( r, offset );\n\n\t\t}\n\n\t}\n\n\treturn r;\n\n}\n\nfunction arraysEqual( a, b ) {\n\n\tif ( a.length !== b.length ) return false;\n\n\tfor ( let i = 0, l = a.length; i < l; i ++ ) {\n\n\t\tif ( a[ i ] !== b[ i ] ) return false;\n\n\t}\n\n\treturn true;\n\n}\n\nfunction copyArray( a, b ) {\n\n\tfor ( let i = 0, l = b.length; i < l; i ++ ) {\n\n\t\ta[ i ] = b[ i ];\n\n\t}\n\n}\n\n// Texture unit allocation\n\nfunction allocTexUnits( textures, n ) {\n\n\tlet r = arrayCacheI32[ n ];\n\n\tif ( r === undefined ) {\n\n\t\tr = new Int32Array( n );\n\t\tarrayCacheI32[ n ] = r;\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\tr[ i ] = textures.allocateTextureUnit();\n\n\t}\n\n\treturn r;\n\n}\n\n// --- Setters ---\n\n// Note: Defining these methods externally, because they come in a bunch\n// and this way their names minify.\n\n// Single scalar\n\nfunction setValueV1f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( cache[ 0 ] === v ) return;\n\n\tgl.uniform1f( this.addr, v );\n\n\tcache[ 0 ] = v;\n\n}\n\n// Single float vector (from flat array or THREE.VectorN)\n\nfunction setValueV2f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y ) {\n\n\t\t\tgl.uniform2f( this.addr, v.x, v.y );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform2fv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV3f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z ) {\n\n\t\t\tgl.uniform3f( this.addr, v.x, v.y, v.z );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\n\t\t}\n\n\t} else if ( v.r !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.r || cache[ 1 ] !== v.g || cache[ 2 ] !== v.b ) {\n\n\t\t\tgl.uniform3f( this.addr, v.r, v.g, v.b );\n\n\t\t\tcache[ 0 ] = v.r;\n\t\t\tcache[ 1 ] = v.g;\n\t\t\tcache[ 2 ] = v.b;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform3fv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV4f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z || cache[ 3 ] !== v.w ) {\n\n\t\t\tgl.uniform4f( this.addr, v.x, v.y, v.z, v.w );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\t\t\tcache[ 3 ] = v.w;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform4fv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\n// Single matrix (from flat array or THREE.MatrixN)\n\nfunction setValueM2( gl, v ) {\n\n\tconst cache = this.cache;\n\tconst elements = v.elements;\n\n\tif ( elements === undefined ) {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniformMatrix2fv( this.addr, false, v );\n\n\t\tcopyArray( cache, v );\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, elements ) ) return;\n\n\t\tmat2array.set( elements );\n\n\t\tgl.uniformMatrix2fv( this.addr, false, mat2array );\n\n\t\tcopyArray( cache, elements );\n\n\t}\n\n}\n\nfunction setValueM3( gl, v ) {\n\n\tconst cache = this.cache;\n\tconst elements = v.elements;\n\n\tif ( elements === undefined ) {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniformMatrix3fv( this.addr, false, v );\n\n\t\tcopyArray( cache, v );\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, elements ) ) return;\n\n\t\tmat3array.set( elements );\n\n\t\tgl.uniformMatrix3fv( this.addr, false, mat3array );\n\n\t\tcopyArray( cache, elements );\n\n\t}\n\n}\n\nfunction setValueM4( gl, v ) {\n\n\tconst cache = this.cache;\n\tconst elements = v.elements;\n\n\tif ( elements === undefined ) {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniformMatrix4fv( this.addr, false, v );\n\n\t\tcopyArray( cache, v );\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, elements ) ) return;\n\n\t\tmat4array.set( elements );\n\n\t\tgl.uniformMatrix4fv( this.addr, false, mat4array );\n\n\t\tcopyArray( cache, elements );\n\n\t}\n\n}\n\n// Single integer / boolean\n\nfunction setValueV1i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( cache[ 0 ] === v ) return;\n\n\tgl.uniform1i( this.addr, v );\n\n\tcache[ 0 ] = v;\n\n}\n\n// Single integer / boolean vector (from flat array)\n\nfunction setValueV2i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( arraysEqual( cache, v ) ) return;\n\n\tgl.uniform2iv( this.addr, v );\n\n\tcopyArray( cache, v );\n\n}\n\nfunction setValueV3i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( arraysEqual( cache, v ) ) return;\n\n\tgl.uniform3iv( this.addr, v );\n\n\tcopyArray( cache, v );\n\n}\n\nfunction setValueV4i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( arraysEqual( cache, v ) ) return;\n\n\tgl.uniform4iv( this.addr, v );\n\n\tcopyArray( cache, v );\n\n}\n\n// Single unsigned integer\n\nfunction setValueV1ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( cache[ 0 ] === v ) return;\n\n\tgl.uniform1ui( this.addr, v );\n\n\tcache[ 0 ] = v;\n\n}\n\n// Single unsigned integer vector (from flat array)\n\nfunction setValueV2ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( arraysEqual( cache, v ) ) return;\n\n\tgl.uniform2uiv( this.addr, v );\n\n\tcopyArray( cache, v );\n\n}\n\nfunction setValueV3ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( arraysEqual( cache, v ) ) return;\n\n\tgl.uniform3uiv( this.addr, v );\n\n\tcopyArray( cache, v );\n\n}\n\nfunction setValueV4ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( arraysEqual( cache, v ) ) return;\n\n\tgl.uniform4uiv( this.addr, v );\n\n\tcopyArray( cache, v );\n\n}\n\n\n// Single texture (2D / Cube)\n\nfunction setValueT1( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.safeSetTexture2D( v || emptyTexture, unit );\n\n}\n\nfunction setValueT3D1( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.setTexture3D( v || emptyTexture3d, unit );\n\n}\n\nfunction setValueT6( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.safeSetTextureCube( v || emptyCubeTexture, unit );\n\n}\n\nfunction setValueT2DArray1( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.setTexture2DArray( v || emptyTexture2dArray, unit );\n\n}\n\n// Helper to pick the right setter for the singular case\n\nfunction getSingularSetter( type ) {\n\n\tswitch ( type ) {\n\n\t\tcase 0x1406: return setValueV1f; // FLOAT\n\t\tcase 0x8b50: return setValueV2f; // _VEC2\n\t\tcase 0x8b51: return setValueV3f; // _VEC3\n\t\tcase 0x8b52: return setValueV4f; // _VEC4\n\n\t\tcase 0x8b5a: return setValueM2; // _MAT2\n\t\tcase 0x8b5b: return setValueM3; // _MAT3\n\t\tcase 0x8b5c: return setValueM4; // _MAT4\n\n\t\tcase 0x1404: case 0x8b56: return setValueV1i; // INT, BOOL\n\t\tcase 0x8b53: case 0x8b57: return setValueV2i; // _VEC2\n\t\tcase 0x8b54: case 0x8b58: return setValueV3i; // _VEC3\n\t\tcase 0x8b55: case 0x8b59: return setValueV4i; // _VEC4\n\n\t\tcase 0x1405: return setValueV1ui; // UINT\n\t\tcase 0x8dc6: return setValueV2ui; // _VEC2\n\t\tcase 0x8dc7: return setValueV3ui; // _VEC3\n\t\tcase 0x8dc8: return setValueV4ui; // _VEC4\n\n\t\tcase 0x8b5e: // SAMPLER_2D\n\t\tcase 0x8d66: // SAMPLER_EXTERNAL_OES\n\t\tcase 0x8dca: // INT_SAMPLER_2D\n\t\tcase 0x8dd2: // UNSIGNED_INT_SAMPLER_2D\n\t\tcase 0x8b62: // SAMPLER_2D_SHADOW\n\t\t\treturn setValueT1;\n\n\t\tcase 0x8b5f: // SAMPLER_3D\n\t\tcase 0x8dcb: // INT_SAMPLER_3D\n\t\tcase 0x8dd3: // UNSIGNED_INT_SAMPLER_3D\n\t\t\treturn setValueT3D1;\n\n\t\tcase 0x8b60: // SAMPLER_CUBE\n\t\tcase 0x8dcc: // INT_SAMPLER_CUBE\n\t\tcase 0x8dd4: // UNSIGNED_INT_SAMPLER_CUBE\n\t\tcase 0x8dc5: // SAMPLER_CUBE_SHADOW\n\t\t\treturn setValueT6;\n\n\t\tcase 0x8dc1: // SAMPLER_2D_ARRAY\n\t\tcase 0x8dcf: // INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dd7: // UNSIGNED_INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dc4: // SAMPLER_2D_ARRAY_SHADOW\n\t\t\treturn setValueT2DArray1;\n\n\t}\n\n}\n\n\n// Array of scalars\n\nfunction setValueV1fArray( gl, v ) {\n\n\tgl.uniform1fv( this.addr, v );\n\n}\n\n// Array of vectors (from flat array or array of THREE.VectorN)\n\nfunction setValueV2fArray( gl, v ) {\n\n\tconst data = flatten( v, this.size, 2 );\n\n\tgl.uniform2fv( this.addr, data );\n\n}\n\nfunction setValueV3fArray( gl, v ) {\n\n\tconst data = flatten( v, this.size, 3 );\n\n\tgl.uniform3fv( this.addr, data );\n\n}\n\nfunction setValueV4fArray( gl, v ) {\n\n\tconst data = flatten( v, this.size, 4 );\n\n\tgl.uniform4fv( this.addr, data );\n\n}\n\n// Array of matrices (from flat array or array of THREE.MatrixN)\n\nfunction setValueM2Array( gl, v ) {\n\n\tconst data = flatten( v, this.size, 4 );\n\n\tgl.uniformMatrix2fv( this.addr, false, data );\n\n}\n\nfunction setValueM3Array( gl, v ) {\n\n\tconst data = flatten( v, this.size, 9 );\n\n\tgl.uniformMatrix3fv( this.addr, false, data );\n\n}\n\nfunction setValueM4Array( gl, v ) {\n\n\tconst data = flatten( v, this.size, 16 );\n\n\tgl.uniformMatrix4fv( this.addr, false, data );\n\n}\n\n// Array of integer / boolean\n\nfunction setValueV1iArray( gl, v ) {\n\n\tgl.uniform1iv( this.addr, v );\n\n}\n\n// Array of integer / boolean vectors (from flat array)\n\nfunction setValueV2iArray( gl, v ) {\n\n\tgl.uniform2iv( this.addr, v );\n\n}\n\nfunction setValueV3iArray( gl, v ) {\n\n\tgl.uniform3iv( this.addr, v );\n\n}\n\nfunction setValueV4iArray( gl, v ) {\n\n\tgl.uniform4iv( this.addr, v );\n\n}\n\n// Array of unsigned integer\n\nfunction setValueV1uiArray( gl, v ) {\n\n\tgl.uniform1uiv( this.addr, v );\n\n}\n\n// Array of unsigned integer vectors (from flat array)\n\nfunction setValueV2uiArray( gl, v ) {\n\n\tgl.uniform2uiv( this.addr, v );\n\n}\n\nfunction setValueV3uiArray( gl, v ) {\n\n\tgl.uniform3uiv( this.addr, v );\n\n}\n\nfunction setValueV4uiArray( gl, v ) {\n\n\tgl.uniform4uiv( this.addr, v );\n\n}\n\n\n// Array of textures (2D / 3D / Cube / 2DArray)\n\nfunction setValueT1Array( gl, v, textures ) {\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tgl.uniform1iv( this.addr, units );\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.safeSetTexture2D( v[ i ] || emptyTexture, units[ i ] );\n\n\t}\n\n}\n\nfunction setValueT3DArray( gl, v, textures ) {\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tgl.uniform1iv( this.addr, units );\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTexture3D( v[ i ] || emptyTexture3d, units[ i ] );\n\n\t}\n\n}\n\nfunction setValueT6Array( gl, v, textures ) {\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tgl.uniform1iv( this.addr, units );\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.safeSetTextureCube( v[ i ] || emptyCubeTexture, units[ i ] );\n\n\t}\n\n}\n\nfunction setValueT2DArrayArray( gl, v, textures ) {\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tgl.uniform1iv( this.addr, units );\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTexture2DArray( v[ i ] || emptyTexture2dArray, units[ i ] );\n\n\t}\n\n}\n\n\n// Helper to pick the right setter for a pure (bottom-level) array\n\nfunction getPureArraySetter( type ) {\n\n\tswitch ( type ) {\n\n\t\tcase 0x1406: return setValueV1fArray; // FLOAT\n\t\tcase 0x8b50: return setValueV2fArray; // _VEC2\n\t\tcase 0x8b51: return setValueV3fArray; // _VEC3\n\t\tcase 0x8b52: return setValueV4fArray; // _VEC4\n\n\t\tcase 0x8b5a: return setValueM2Array; // _MAT2\n\t\tcase 0x8b5b: return setValueM3Array; // _MAT3\n\t\tcase 0x8b5c: return setValueM4Array; // _MAT4\n\n\t\tcase 0x1404: case 0x8b56: return setValueV1iArray; // INT, BOOL\n\t\tcase 0x8b53: case 0x8b57: return setValueV2iArray; // _VEC2\n\t\tcase 0x8b54: case 0x8b58: return setValueV3iArray; // _VEC3\n\t\tcase 0x8b55: case 0x8b59: return setValueV4iArray; // _VEC4\n\n\t\tcase 0x1405: return setValueV1uiArray; // UINT\n\t\tcase 0x8dc6: return setValueV2uiArray; // _VEC2\n\t\tcase 0x8dc7: return setValueV3uiArray; // _VEC3\n\t\tcase 0x8dc8: return setValueV4uiArray; // _VEC4\n\n\t\tcase 0x8b5e: // SAMPLER_2D\n\t\tcase 0x8d66: // SAMPLER_EXTERNAL_OES\n\t\tcase 0x8dca: // INT_SAMPLER_2D\n\t\tcase 0x8dd2: // UNSIGNED_INT_SAMPLER_2D\n\t\tcase 0x8b62: // SAMPLER_2D_SHADOW\n\t\t\treturn setValueT1Array;\n\n\t\tcase 0x8b5f: // SAMPLER_3D\n\t\tcase 0x8dcb: // INT_SAMPLER_3D\n\t\tcase 0x8dd3: // UNSIGNED_INT_SAMPLER_3D\n\t\t\treturn setValueT3DArray;\n\n\t\tcase 0x8b60: // SAMPLER_CUBE\n\t\tcase 0x8dcc: // INT_SAMPLER_CUBE\n\t\tcase 0x8dd4: // UNSIGNED_INT_SAMPLER_CUBE\n\t\tcase 0x8dc5: // SAMPLER_CUBE_SHADOW\n\t\t\treturn setValueT6Array;\n\n\t\tcase 0x8dc1: // SAMPLER_2D_ARRAY\n\t\tcase 0x8dcf: // INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dd7: // UNSIGNED_INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dc4: // SAMPLER_2D_ARRAY_SHADOW\n\t\t\treturn setValueT2DArrayArray;\n\n\t}\n\n}\n\n// --- Uniform Classes ---\n\nfunction SingleUniform( id, activeInfo, addr ) {\n\n\tthis.id = id;\n\tthis.addr = addr;\n\tthis.cache = [];\n\tthis.setValue = getSingularSetter( activeInfo.type );\n\n\t// this.path = activeInfo.name; // DEBUG\n\n}\n\nfunction PureArrayUniform( id, activeInfo, addr ) {\n\n\tthis.id = id;\n\tthis.addr = addr;\n\tthis.cache = [];\n\tthis.size = activeInfo.size;\n\tthis.setValue = getPureArraySetter( activeInfo.type );\n\n\t// this.path = activeInfo.name; // DEBUG\n\n}\n\nPureArrayUniform.prototype.updateCache = function ( data ) {\n\n\tconst cache = this.cache;\n\n\tif ( data instanceof Float32Array && cache.length !== data.length ) {\n\n\t\tthis.cache = new Float32Array( data.length );\n\n\t}\n\n\tcopyArray( cache, data );\n\n};\n\nfunction StructuredUniform( id ) {\n\n\tthis.id = id;\n\n\tthis.seq = [];\n\tthis.map = {};\n\n}\n\nStructuredUniform.prototype.setValue = function ( gl, value, textures ) {\n\n\tconst seq = this.seq;\n\n\tfor ( let i = 0, n = seq.length; i !== n; ++ i ) {\n\n\t\tconst u = seq[ i ];\n\t\tu.setValue( gl, value[ u.id ], textures );\n\n\t}\n\n};\n\n// --- Top-level ---\n\n// Parser - builds up the property tree from the path strings\n\nconst RePathPart = /(\\w+)(\\])?(\\[|\\.)?/g;\n\n// extracts\n// \t- the identifier (member name or array index)\n// - followed by an optional right bracket (found when array index)\n// - followed by an optional left bracket or dot (type of subscript)\n//\n// Note: These portions can be read in a non-overlapping fashion and\n// allow straightforward parsing of the hierarchy that WebGL encodes\n// in the uniform names.\n\nfunction addUniform( container, uniformObject ) {\n\n\tcontainer.seq.push( uniformObject );\n\tcontainer.map[ uniformObject.id ] = uniformObject;\n\n}\n\nfunction parseUniform( activeInfo, addr, container ) {\n\n\tconst path = activeInfo.name,\n\t\tpathLength = path.length;\n\n\t// reset RegExp object, because of the early exit of a previous run\n\tRePathPart.lastIndex = 0;\n\n\twhile ( true ) {\n\n\t\tconst match = RePathPart.exec( path ),\n\t\t\tmatchEnd = RePathPart.lastIndex;\n\n\t\tlet id = match[ 1 ];\n\t\tconst idIsIndex = match[ 2 ] === ']',\n\t\t\tsubscript = match[ 3 ];\n\n\t\tif ( idIsIndex ) id = id | 0; // convert to integer\n\n\t\tif ( subscript === undefined || subscript === '[' && matchEnd + 2 === pathLength ) {\n\n\t\t\t// bare name or \"pure\" bottom-level array \"[0]\" suffix\n\n\t\t\taddUniform( container, subscript === undefined ?\n\t\t\t\tnew SingleUniform( id, activeInfo, addr ) :\n\t\t\t\tnew PureArrayUniform( id, activeInfo, addr ) );\n\n\t\t\tbreak;\n\n\t\t} else {\n\n\t\t\t// step into inner node / create it in case it doesn't exist\n\n\t\t\tconst map = container.map;\n\t\t\tlet next = map[ id ];\n\n\t\t\tif ( next === undefined ) {\n\n\t\t\t\tnext = new StructuredUniform( id );\n\t\t\t\taddUniform( container, next );\n\n\t\t\t}\n\n\t\t\tcontainer = next;\n\n\t\t}\n\n\t}\n\n}\n\n// Root Container\n\nfunction WebGLUniforms( gl, program ) {\n\n\tthis.seq = [];\n\tthis.map = {};\n\n\tconst n = gl.getProgramParameter( program, 35718 );\n\n\tfor ( let i = 0; i < n; ++ i ) {\n\n\t\tconst info = gl.getActiveUniform( program, i ),\n\t\t\taddr = gl.getUniformLocation( program, info.name );\n\n\t\tparseUniform( info, addr, this );\n\n\t}\n\n}\n\nWebGLUniforms.prototype.setValue = function ( gl, name, value, textures ) {\n\n\tconst u = this.map[ name ];\n\n\tif ( u !== undefined ) u.setValue( gl, value, textures );\n\n};\n\nWebGLUniforms.prototype.setOptional = function ( gl, object, name ) {\n\n\tconst v = object[ name ];\n\n\tif ( v !== undefined ) this.setValue( gl, name, v );\n\n};\n\n\n// Static interface\n\nWebGLUniforms.upload = function ( gl, seq, values, textures ) {\n\n\tfor ( let i = 0, n = seq.length; i !== n; ++ i ) {\n\n\t\tconst u = seq[ i ],\n\t\t\tv = values[ u.id ];\n\n\t\tif ( v.needsUpdate !== false ) {\n\n\t\t\t// note: always updating when .needsUpdate is undefined\n\t\t\tu.setValue( gl, v.value, textures );\n\n\t\t}\n\n\t}\n\n};\n\nWebGLUniforms.seqWithValue = function ( seq, values ) {\n\n\tconst r = [];\n\n\tfor ( let i = 0, n = seq.length; i !== n; ++ i ) {\n\n\t\tconst u = seq[ i ];\n\t\tif ( u.id in values ) r.push( u );\n\n\t}\n\n\treturn r;\n\n};\n\nfunction WebGLShader( gl, type, string ) {\n\n\tconst shader = gl.createShader( type );\n\n\tgl.shaderSource( shader, string );\n\tgl.compileShader( shader );\n\n\treturn shader;\n\n}\n\nlet programIdCount = 0;\n\nfunction addLineNumbers( string ) {\n\n\tconst lines = string.split( '\\n' );\n\n\tfor ( let i = 0; i < lines.length; i ++ ) {\n\n\t\tlines[ i ] = ( i + 1 ) + ': ' + lines[ i ];\n\n\t}\n\n\treturn lines.join( '\\n' );\n\n}\n\nfunction getEncodingComponents( encoding ) {\n\n\tswitch ( encoding ) {\n\n\t\tcase LinearEncoding:\n\t\t\treturn [ 'Linear', '( value )' ];\n\t\tcase sRGBEncoding:\n\t\t\treturn [ 'sRGB', '( value )' ];\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.WebGLProgram: Unsupported encoding:', encoding );\n\t\t\treturn [ 'Linear', '( value )' ];\n\n\t}\n\n}\n\nfunction getShaderErrors( gl, shader, type ) {\n\n\tconst status = gl.getShaderParameter( shader, 35713 );\n\tconst errors = gl.getShaderInfoLog( shader ).trim();\n\n\tif ( status && errors === '' ) return '';\n\n\t// --enable-privileged-webgl-extension\n\t// console.log( '**' + type + '**', gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( shader ) );\n\n\treturn type.toUpperCase() + '\\n\\n' + errors + '\\n\\n' + addLineNumbers( gl.getShaderSource( shader ) );\n\n}\n\nfunction getTexelEncodingFunction( functionName, encoding ) {\n\n\tconst components = getEncodingComponents( encoding );\n\treturn 'vec4 ' + functionName + '( vec4 value ) { return LinearTo' + components[ 0 ] + components[ 1 ] + '; }';\n\n}\n\nfunction getToneMappingFunction( functionName, toneMapping ) {\n\n\tlet toneMappingName;\n\n\tswitch ( toneMapping ) {\n\n\t\tcase LinearToneMapping:\n\t\t\ttoneMappingName = 'Linear';\n\t\t\tbreak;\n\n\t\tcase ReinhardToneMapping:\n\t\t\ttoneMappingName = 'Reinhard';\n\t\t\tbreak;\n\n\t\tcase CineonToneMapping:\n\t\t\ttoneMappingName = 'OptimizedCineon';\n\t\t\tbreak;\n\n\t\tcase ACESFilmicToneMapping:\n\t\t\ttoneMappingName = 'ACESFilmic';\n\t\t\tbreak;\n\n\t\tcase CustomToneMapping:\n\t\t\ttoneMappingName = 'Custom';\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.WebGLProgram: Unsupported toneMapping:', toneMapping );\n\t\t\ttoneMappingName = 'Linear';\n\n\t}\n\n\treturn 'vec3 ' + functionName + '( vec3 color ) { return ' + toneMappingName + 'ToneMapping( color ); }';\n\n}\n\nfunction generateExtensions( parameters ) {\n\n\tconst chunks = [\n\t\t( parameters.extensionDerivatives || parameters.envMapCubeUV || parameters.bumpMap || parameters.tangentSpaceNormalMap || parameters.clearcoatNormalMap || parameters.flatShading || parameters.shaderID === 'physical' ) ? '#extension GL_OES_standard_derivatives : enable' : '',\n\t\t( parameters.extensionFragDepth || parameters.logarithmicDepthBuffer ) && parameters.rendererExtensionFragDepth ? '#extension GL_EXT_frag_depth : enable' : '',\n\t\t( parameters.extensionDrawBuffers && parameters.rendererExtensionDrawBuffers ) ? '#extension GL_EXT_draw_buffers : require' : '',\n\t\t( parameters.extensionShaderTextureLOD || parameters.envMap || parameters.transmission ) && parameters.rendererExtensionShaderTextureLod ? '#extension GL_EXT_shader_texture_lod : enable' : ''\n\t];\n\n\treturn chunks.filter( filterEmptyLine ).join( '\\n' );\n\n}\n\nfunction generateDefines( defines ) {\n\n\tconst chunks = [];\n\n\tfor ( const name in defines ) {\n\n\t\tconst value = defines[ name ];\n\n\t\tif ( value === false ) continue;\n\n\t\tchunks.push( '#define ' + name + ' ' + value );\n\n\t}\n\n\treturn chunks.join( '\\n' );\n\n}\n\nfunction fetchAttributeLocations( gl, program ) {\n\n\tconst attributes = {};\n\n\tconst n = gl.getProgramParameter( program, 35721 );\n\n\tfor ( let i = 0; i < n; i ++ ) {\n\n\t\tconst info = gl.getActiveAttrib( program, i );\n\t\tconst name = info.name;\n\n\t\tlet locationSize = 1;\n\t\tif ( info.type === 35674 ) locationSize = 2;\n\t\tif ( info.type === 35675 ) locationSize = 3;\n\t\tif ( info.type === 35676 ) locationSize = 4;\n\n\t\t// console.log( 'THREE.WebGLProgram: ACTIVE VERTEX ATTRIBUTE:', name, i );\n\n\t\tattributes[ name ] = {\n\t\t\ttype: info.type,\n\t\t\tlocation: gl.getAttribLocation( program, name ),\n\t\t\tlocationSize: locationSize\n\t\t};\n\n\t}\n\n\treturn attributes;\n\n}\n\nfunction filterEmptyLine( string ) {\n\n\treturn string !== '';\n\n}\n\nfunction replaceLightNums( string, parameters ) {\n\n\treturn string\n\t\t.replace( /NUM_DIR_LIGHTS/g, parameters.numDirLights )\n\t\t.replace( /NUM_SPOT_LIGHTS/g, parameters.numSpotLights )\n\t\t.replace( /NUM_RECT_AREA_LIGHTS/g, parameters.numRectAreaLights )\n\t\t.replace( /NUM_POINT_LIGHTS/g, parameters.numPointLights )\n\t\t.replace( /NUM_HEMI_LIGHTS/g, parameters.numHemiLights )\n\t\t.replace( /NUM_DIR_LIGHT_SHADOWS/g, parameters.numDirLightShadows )\n\t\t.replace( /NUM_SPOT_LIGHT_SHADOWS/g, parameters.numSpotLightShadows )\n\t\t.replace( /NUM_POINT_LIGHT_SHADOWS/g, parameters.numPointLightShadows );\n\n}\n\nfunction replaceClippingPlaneNums( string, parameters ) {\n\n\treturn string\n\t\t.replace( /NUM_CLIPPING_PLANES/g, parameters.numClippingPlanes )\n\t\t.replace( /UNION_CLIPPING_PLANES/g, ( parameters.numClippingPlanes - parameters.numClipIntersection ) );\n\n}\n\n// Resolve Includes\n\nconst includePattern = /^[ \\t]*#include +<([\\w\\d./]+)>/gm;\n\nfunction resolveIncludes( string ) {\n\n\treturn string.replace( includePattern, includeReplacer );\n\n}\n\nfunction includeReplacer( match, include ) {\n\n\tconst string = ShaderChunk[ include ];\n\n\tif ( string === undefined ) {\n\n\t\tthrow new Error( 'Can not resolve #include <' + include + '>' );\n\n\t}\n\n\treturn resolveIncludes( string );\n\n}\n\n// Unroll Loops\n\nconst deprecatedUnrollLoopPattern = /#pragma unroll_loop[\\s]+?for \\( int i \\= (\\d+)\\; i < (\\d+)\\; i \\+\\+ \\) \\{([\\s\\S]+?)(?=\\})\\}/g;\nconst 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;\n\nfunction unrollLoops( string ) {\n\n\treturn string\n\t\t.replace( unrollLoopPattern, loopReplacer )\n\t\t.replace( deprecatedUnrollLoopPattern, deprecatedLoopReplacer );\n\n}\n\nfunction deprecatedLoopReplacer( match, start, end, snippet ) {\n\n\tconsole.warn( 'WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead.' );\n\treturn loopReplacer( match, start, end, snippet );\n\n}\n\nfunction loopReplacer( match, start, end, snippet ) {\n\n\tlet string = '';\n\n\tfor ( let i = parseInt( start ); i < parseInt( end ); i ++ ) {\n\n\t\tstring += snippet\n\t\t\t.replace( /\\[\\s*i\\s*\\]/g, '[ ' + i + ' ]' )\n\t\t\t.replace( /UNROLLED_LOOP_INDEX/g, i );\n\n\t}\n\n\treturn string;\n\n}\n\n//\n\nfunction generatePrecision( parameters ) {\n\n\tlet precisionstring = 'precision ' + parameters.precision + ' float;\\nprecision ' + parameters.precision + ' int;';\n\n\tif ( parameters.precision === 'highp' ) {\n\n\t\tprecisionstring += '\\n#define HIGH_PRECISION';\n\n\t} else if ( parameters.precision === 'mediump' ) {\n\n\t\tprecisionstring += '\\n#define MEDIUM_PRECISION';\n\n\t} else if ( parameters.precision === 'lowp' ) {\n\n\t\tprecisionstring += '\\n#define LOW_PRECISION';\n\n\t}\n\n\treturn precisionstring;\n\n}\n\nfunction generateShadowMapTypeDefine( parameters ) {\n\n\tlet shadowMapTypeDefine = 'SHADOWMAP_TYPE_BASIC';\n\n\tif ( parameters.shadowMapType === PCFShadowMap ) {\n\n\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF';\n\n\t} else if ( parameters.shadowMapType === PCFSoftShadowMap ) {\n\n\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF_SOFT';\n\n\t} else if ( parameters.shadowMapType === VSMShadowMap ) {\n\n\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_VSM';\n\n\t}\n\n\treturn shadowMapTypeDefine;\n\n}\n\nfunction generateEnvMapTypeDefine( parameters ) {\n\n\tlet envMapTypeDefine = 'ENVMAP_TYPE_CUBE';\n\n\tif ( parameters.envMap ) {\n\n\t\tswitch ( parameters.envMapMode ) {\n\n\t\t\tcase CubeReflectionMapping:\n\t\t\tcase CubeRefractionMapping:\n\t\t\t\tenvMapTypeDefine = 'ENVMAP_TYPE_CUBE';\n\t\t\t\tbreak;\n\n\t\t\tcase CubeUVReflectionMapping:\n\t\t\tcase CubeUVRefractionMapping:\n\t\t\t\tenvMapTypeDefine = 'ENVMAP_TYPE_CUBE_UV';\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\treturn envMapTypeDefine;\n\n}\n\nfunction generateEnvMapModeDefine( parameters ) {\n\n\tlet envMapModeDefine = 'ENVMAP_MODE_REFLECTION';\n\n\tif ( parameters.envMap ) {\n\n\t\tswitch ( parameters.envMapMode ) {\n\n\t\t\tcase CubeRefractionMapping:\n\t\t\tcase CubeUVRefractionMapping:\n\n\t\t\t\tenvMapModeDefine = 'ENVMAP_MODE_REFRACTION';\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\treturn envMapModeDefine;\n\n}\n\nfunction generateEnvMapBlendingDefine( parameters ) {\n\n\tlet envMapBlendingDefine = 'ENVMAP_BLENDING_NONE';\n\n\tif ( parameters.envMap ) {\n\n\t\tswitch ( parameters.combine ) {\n\n\t\t\tcase MultiplyOperation:\n\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_MULTIPLY';\n\t\t\t\tbreak;\n\n\t\t\tcase MixOperation:\n\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_MIX';\n\t\t\t\tbreak;\n\n\t\t\tcase AddOperation:\n\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_ADD';\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\treturn envMapBlendingDefine;\n\n}\n\nfunction WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {\n\n\t// TODO Send this event to Three.js DevTools\n\t// console.log( 'WebGLProgram', cacheKey );\n\n\tconst gl = renderer.getContext();\n\n\tconst defines = parameters.defines;\n\n\tlet vertexShader = parameters.vertexShader;\n\tlet fragmentShader = parameters.fragmentShader;\n\n\tconst shadowMapTypeDefine = generateShadowMapTypeDefine( parameters );\n\tconst envMapTypeDefine = generateEnvMapTypeDefine( parameters );\n\tconst envMapModeDefine = generateEnvMapModeDefine( parameters );\n\tconst envMapBlendingDefine = generateEnvMapBlendingDefine( parameters );\n\n\tconst customExtensions = parameters.isWebGL2 ? '' : generateExtensions( parameters );\n\n\tconst customDefines = generateDefines( defines );\n\n\tconst program = gl.createProgram();\n\n\tlet prefixVertex, prefixFragment;\n\tlet versionString = parameters.glslVersion ? '#version ' + parameters.glslVersion + '\\n' : '';\n\n\tif ( parameters.isRawShaderMaterial ) {\n\n\t\tprefixVertex = [\n\n\t\t\tcustomDefines\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t\tif ( prefixVertex.length > 0 ) {\n\n\t\t\tprefixVertex += '\\n';\n\n\t\t}\n\n\t\tprefixFragment = [\n\n\t\t\tcustomExtensions,\n\t\t\tcustomDefines\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t\tif ( prefixFragment.length > 0 ) {\n\n\t\t\tprefixFragment += '\\n';\n\n\t\t}\n\n\t} else {\n\n\t\tprefixVertex = [\n\n\t\t\tgeneratePrecision( parameters ),\n\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines,\n\n\t\t\tparameters.instancing ? '#define USE_INSTANCING' : '',\n\t\t\tparameters.instancingColor ? '#define USE_INSTANCING_COLOR' : '',\n\n\t\t\tparameters.supportsVertexTextures ? '#define VERTEX_TEXTURES' : '',\n\n\t\t\t'#define MAX_BONES ' + parameters.maxBones,\n\t\t\t( parameters.useFog && parameters.fog ) ? '#define USE_FOG' : '',\n\t\t\t( parameters.useFog && parameters.fogExp2 ) ? '#define FOG_EXP2' : '',\n\n\t\t\tparameters.map ? '#define USE_MAP' : '',\n\t\t\tparameters.envMap ? '#define USE_ENVMAP' : '',\n\t\t\tparameters.envMap ? '#define ' + envMapModeDefine : '',\n\t\t\tparameters.lightMap ? '#define USE_LIGHTMAP' : '',\n\t\t\tparameters.aoMap ? '#define USE_AOMAP' : '',\n\t\t\tparameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '',\n\t\t\tparameters.bumpMap ? '#define USE_BUMPMAP' : '',\n\t\t\tparameters.normalMap ? '#define USE_NORMALMAP' : '',\n\t\t\t( parameters.normalMap && parameters.objectSpaceNormalMap ) ? '#define OBJECTSPACE_NORMALMAP' : '',\n\t\t\t( parameters.normalMap && parameters.tangentSpaceNormalMap ) ? '#define TANGENTSPACE_NORMALMAP' : '',\n\n\t\t\tparameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '',\n\t\t\tparameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '',\n\t\t\tparameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '',\n\n\t\t\tparameters.displacementMap && parameters.supportsVertexTextures ? '#define USE_DISPLACEMENTMAP' : '',\n\n\t\t\tparameters.specularMap ? '#define USE_SPECULARMAP' : '',\n\t\t\tparameters.specularIntensityMap ? '#define USE_SPECULARINTENSITYMAP' : '',\n\t\t\tparameters.specularColorMap ? '#define USE_SPECULARCOLORMAP' : '',\n\n\t\t\tparameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '',\n\t\t\tparameters.metalnessMap ? '#define USE_METALNESSMAP' : '',\n\t\t\tparameters.alphaMap ? '#define USE_ALPHAMAP' : '',\n\n\t\t\tparameters.transmission ? '#define USE_TRANSMISSION' : '',\n\t\t\tparameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '',\n\t\t\tparameters.thicknessMap ? '#define USE_THICKNESSMAP' : '',\n\n\t\t\tparameters.sheenColorMap ? '#define USE_SHEENCOLORMAP' : '',\n\t\t\tparameters.sheenRoughnessMap ? '#define USE_SHEENROUGHNESSMAP' : '',\n\n\t\t\tparameters.vertexTangents ? '#define USE_TANGENT' : '',\n\t\t\tparameters.vertexColors ? '#define USE_COLOR' : '',\n\t\t\tparameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '',\n\t\t\tparameters.vertexUvs ? '#define USE_UV' : '',\n\t\t\tparameters.uvsVertexOnly ? '#define UVS_VERTEX_ONLY' : '',\n\n\t\t\tparameters.flatShading ? '#define FLAT_SHADED' : '',\n\n\t\t\tparameters.skinning ? '#define USE_SKINNING' : '',\n\t\t\tparameters.useVertexTexture ? '#define BONE_TEXTURE' : '',\n\n\t\t\tparameters.morphTargets ? '#define USE_MORPHTARGETS' : '',\n\t\t\tparameters.morphNormals && parameters.flatShading === false ? '#define USE_MORPHNORMALS' : '',\n\t\t\t( parameters.morphTargets && parameters.isWebGL2 ) ? '#define MORPHTARGETS_TEXTURE' : '',\n\t\t\t( parameters.morphTargets && parameters.isWebGL2 ) ? '#define MORPHTARGETS_COUNT ' + parameters.morphTargetsCount : '',\n\t\t\tparameters.doubleSided ? '#define DOUBLE_SIDED' : '',\n\t\t\tparameters.flipSided ? '#define FLIP_SIDED' : '',\n\n\t\t\tparameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '',\n\t\t\tparameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '',\n\n\t\t\tparameters.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '',\n\n\t\t\tparameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',\n\t\t\t( parameters.logarithmicDepthBuffer && parameters.rendererExtensionFragDepth ) ? '#define USE_LOGDEPTHBUF_EXT' : '',\n\n\t\t\t'uniform mat4 modelMatrix;',\n\t\t\t'uniform mat4 modelViewMatrix;',\n\t\t\t'uniform mat4 projectionMatrix;',\n\t\t\t'uniform mat4 viewMatrix;',\n\t\t\t'uniform mat3 normalMatrix;',\n\t\t\t'uniform vec3 cameraPosition;',\n\t\t\t'uniform bool isOrthographic;',\n\n\t\t\t'#ifdef USE_INSTANCING',\n\n\t\t\t'\tattribute mat4 instanceMatrix;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_INSTANCING_COLOR',\n\n\t\t\t'\tattribute vec3 instanceColor;',\n\n\t\t\t'#endif',\n\n\t\t\t'attribute vec3 position;',\n\t\t\t'attribute vec3 normal;',\n\t\t\t'attribute vec2 uv;',\n\n\t\t\t'#ifdef USE_TANGENT',\n\n\t\t\t'\tattribute vec4 tangent;',\n\n\t\t\t'#endif',\n\n\t\t\t'#if defined( USE_COLOR_ALPHA )',\n\n\t\t\t'\tattribute vec4 color;',\n\n\t\t\t'#elif defined( USE_COLOR )',\n\n\t\t\t'\tattribute vec3 color;',\n\n\t\t\t'#endif',\n\n\t\t\t'#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )',\n\n\t\t\t'\tattribute vec3 morphTarget0;',\n\t\t\t'\tattribute vec3 morphTarget1;',\n\t\t\t'\tattribute vec3 morphTarget2;',\n\t\t\t'\tattribute vec3 morphTarget3;',\n\n\t\t\t'\t#ifdef USE_MORPHNORMALS',\n\n\t\t\t'\t\tattribute vec3 morphNormal0;',\n\t\t\t'\t\tattribute vec3 morphNormal1;',\n\t\t\t'\t\tattribute vec3 morphNormal2;',\n\t\t\t'\t\tattribute vec3 morphNormal3;',\n\n\t\t\t'\t#else',\n\n\t\t\t'\t\tattribute vec3 morphTarget4;',\n\t\t\t'\t\tattribute vec3 morphTarget5;',\n\t\t\t'\t\tattribute vec3 morphTarget6;',\n\t\t\t'\t\tattribute vec3 morphTarget7;',\n\n\t\t\t'\t#endif',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_SKINNING',\n\n\t\t\t'\tattribute vec4 skinIndex;',\n\t\t\t'\tattribute vec4 skinWeight;',\n\n\t\t\t'#endif',\n\n\t\t\t'\\n'\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t\tprefixFragment = [\n\n\t\t\tcustomExtensions,\n\n\t\t\tgeneratePrecision( parameters ),\n\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines,\n\n\t\t\t( parameters.useFog && parameters.fog ) ? '#define USE_FOG' : '',\n\t\t\t( parameters.useFog && parameters.fogExp2 ) ? '#define FOG_EXP2' : '',\n\n\t\t\tparameters.map ? '#define USE_MAP' : '',\n\t\t\tparameters.matcap ? '#define USE_MATCAP' : '',\n\t\t\tparameters.envMap ? '#define USE_ENVMAP' : '',\n\t\t\tparameters.envMap ? '#define ' + envMapTypeDefine : '',\n\t\t\tparameters.envMap ? '#define ' + envMapModeDefine : '',\n\t\t\tparameters.envMap ? '#define ' + envMapBlendingDefine : '',\n\t\t\tparameters.lightMap ? '#define USE_LIGHTMAP' : '',\n\t\t\tparameters.aoMap ? '#define USE_AOMAP' : '',\n\t\t\tparameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '',\n\t\t\tparameters.bumpMap ? '#define USE_BUMPMAP' : '',\n\t\t\tparameters.normalMap ? '#define USE_NORMALMAP' : '',\n\t\t\t( parameters.normalMap && parameters.objectSpaceNormalMap ) ? '#define OBJECTSPACE_NORMALMAP' : '',\n\t\t\t( parameters.normalMap && parameters.tangentSpaceNormalMap ) ? '#define TANGENTSPACE_NORMALMAP' : '',\n\n\t\t\tparameters.clearcoat ? '#define USE_CLEARCOAT' : '',\n\t\t\tparameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '',\n\t\t\tparameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '',\n\t\t\tparameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '',\n\n\t\t\tparameters.specularMap ? '#define USE_SPECULARMAP' : '',\n\t\t\tparameters.specularIntensityMap ? '#define USE_SPECULARINTENSITYMAP' : '',\n\t\t\tparameters.specularColorMap ? '#define USE_SPECULARCOLORMAP' : '',\n\t\t\tparameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '',\n\t\t\tparameters.metalnessMap ? '#define USE_METALNESSMAP' : '',\n\n\t\t\tparameters.alphaMap ? '#define USE_ALPHAMAP' : '',\n\t\t\tparameters.alphaTest ? '#define USE_ALPHATEST' : '',\n\n\t\t\tparameters.sheen ? '#define USE_SHEEN' : '',\n\t\t\tparameters.sheenColorMap ? '#define USE_SHEENCOLORMAP' : '',\n\t\t\tparameters.sheenRoughnessMap ? '#define USE_SHEENROUGHNESSMAP' : '',\n\n\t\t\tparameters.transmission ? '#define USE_TRANSMISSION' : '',\n\t\t\tparameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '',\n\t\t\tparameters.thicknessMap ? '#define USE_THICKNESSMAP' : '',\n\n\t\t\tparameters.decodeVideoTexture ? '#define DECODE_VIDEO_TEXTURE' : '',\n\n\t\t\tparameters.vertexTangents ? '#define USE_TANGENT' : '',\n\t\t\tparameters.vertexColors || parameters.instancingColor ? '#define USE_COLOR' : '',\n\t\t\tparameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '',\n\t\t\tparameters.vertexUvs ? '#define USE_UV' : '',\n\t\t\tparameters.uvsVertexOnly ? '#define UVS_VERTEX_ONLY' : '',\n\n\t\t\tparameters.gradientMap ? '#define USE_GRADIENTMAP' : '',\n\n\t\t\tparameters.flatShading ? '#define FLAT_SHADED' : '',\n\n\t\t\tparameters.doubleSided ? '#define DOUBLE_SIDED' : '',\n\t\t\tparameters.flipSided ? '#define FLIP_SIDED' : '',\n\n\t\t\tparameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '',\n\t\t\tparameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '',\n\n\t\t\tparameters.premultipliedAlpha ? '#define PREMULTIPLIED_ALPHA' : '',\n\n\t\t\tparameters.physicallyCorrectLights ? '#define PHYSICALLY_CORRECT_LIGHTS' : '',\n\n\t\t\tparameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',\n\t\t\t( parameters.logarithmicDepthBuffer && parameters.rendererExtensionFragDepth ) ? '#define USE_LOGDEPTHBUF_EXT' : '',\n\n\t\t\t( ( parameters.extensionShaderTextureLOD || parameters.envMap ) && parameters.rendererExtensionShaderTextureLod ) ? '#define TEXTURE_LOD_EXT' : '',\n\n\t\t\t'uniform mat4 viewMatrix;',\n\t\t\t'uniform vec3 cameraPosition;',\n\t\t\t'uniform bool isOrthographic;',\n\n\t\t\t( parameters.toneMapping !== NoToneMapping ) ? '#define TONE_MAPPING' : '',\n\t\t\t( parameters.toneMapping !== NoToneMapping ) ? ShaderChunk[ 'tonemapping_pars_fragment' ] : '', // this code is required here because it is used by the toneMapping() function defined below\n\t\t\t( parameters.toneMapping !== NoToneMapping ) ? getToneMappingFunction( 'toneMapping', parameters.toneMapping ) : '',\n\n\t\t\tparameters.dithering ? '#define DITHERING' : '',\n\t\t\tparameters.transparent ? '' : '#define OPAQUE',\n\n\t\t\tShaderChunk[ 'encodings_pars_fragment' ], // this code is required here because it is used by the various encoding/decoding function defined below\n\t\t\tgetTexelEncodingFunction( 'linearToOutputTexel', parameters.outputEncoding ),\n\n\t\t\tparameters.depthPacking ? '#define DEPTH_PACKING ' + parameters.depthPacking : '',\n\n\t\t\t'\\n'\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t}\n\n\tvertexShader = resolveIncludes( vertexShader );\n\tvertexShader = replaceLightNums( vertexShader, parameters );\n\tvertexShader = replaceClippingPlaneNums( vertexShader, parameters );\n\n\tfragmentShader = resolveIncludes( fragmentShader );\n\tfragmentShader = replaceLightNums( fragmentShader, parameters );\n\tfragmentShader = replaceClippingPlaneNums( fragmentShader, parameters );\n\n\tvertexShader = unrollLoops( vertexShader );\n\tfragmentShader = unrollLoops( fragmentShader );\n\n\tif ( parameters.isWebGL2 && parameters.isRawShaderMaterial !== true ) {\n\n\t\t// GLSL 3.0 conversion for built-in materials and ShaderMaterial\n\n\t\tversionString = '#version 300 es\\n';\n\n\t\tprefixVertex = [\n\t\t\t'precision mediump sampler2DArray;',\n\t\t\t'#define attribute in',\n\t\t\t'#define varying out',\n\t\t\t'#define texture2D texture'\n\t\t].join( '\\n' ) + '\\n' + prefixVertex;\n\n\t\tprefixFragment = [\n\t\t\t'#define varying in',\n\t\t\t( parameters.glslVersion === GLSL3 ) ? '' : 'layout(location = 0) out highp vec4 pc_fragColor;',\n\t\t\t( parameters.glslVersion === GLSL3 ) ? '' : '#define gl_FragColor pc_fragColor',\n\t\t\t'#define gl_FragDepthEXT gl_FragDepth',\n\t\t\t'#define texture2D texture',\n\t\t\t'#define textureCube texture',\n\t\t\t'#define texture2DProj textureProj',\n\t\t\t'#define texture2DLodEXT textureLod',\n\t\t\t'#define texture2DProjLodEXT textureProjLod',\n\t\t\t'#define textureCubeLodEXT textureLod',\n\t\t\t'#define texture2DGradEXT textureGrad',\n\t\t\t'#define texture2DProjGradEXT textureProjGrad',\n\t\t\t'#define textureCubeGradEXT textureGrad'\n\t\t].join( '\\n' ) + '\\n' + prefixFragment;\n\n\t}\n\n\tconst vertexGlsl = versionString + prefixVertex + vertexShader;\n\tconst fragmentGlsl = versionString + prefixFragment + fragmentShader;\n\n\t// console.log( '*VERTEX*', vertexGlsl );\n\t// console.log( '*FRAGMENT*', fragmentGlsl );\n\n\tconst glVertexShader = WebGLShader( gl, 35633, vertexGlsl );\n\tconst glFragmentShader = WebGLShader( gl, 35632, fragmentGlsl );\n\n\tgl.attachShader( program, glVertexShader );\n\tgl.attachShader( program, glFragmentShader );\n\n\t// Force a particular attribute to index 0.\n\n\tif ( parameters.index0AttributeName !== undefined ) {\n\n\t\tgl.bindAttribLocation( program, 0, parameters.index0AttributeName );\n\n\t} else if ( parameters.morphTargets === true ) {\n\n\t\t// programs with morphTargets displace position out of attribute 0\n\t\tgl.bindAttribLocation( program, 0, 'position' );\n\n\t}\n\n\tgl.linkProgram( program );\n\n\t// check for link errors\n\tif ( renderer.debug.checkShaderErrors ) {\n\n\t\tconst programLog = gl.getProgramInfoLog( program ).trim();\n\t\tconst vertexLog = gl.getShaderInfoLog( glVertexShader ).trim();\n\t\tconst fragmentLog = gl.getShaderInfoLog( glFragmentShader ).trim();\n\n\t\tlet runnable = true;\n\t\tlet haveDiagnostics = true;\n\n\t\tif ( gl.getProgramParameter( program, 35714 ) === false ) {\n\n\t\t\trunnable = false;\n\n\t\t\tconst vertexErrors = getShaderErrors( gl, glVertexShader, 'vertex' );\n\t\t\tconst fragmentErrors = getShaderErrors( gl, glFragmentShader, 'fragment' );\n\n\t\t\tconsole.error(\n\t\t\t\t'THREE.WebGLProgram: Shader Error ' + gl.getError() + ' - ' +\n\t\t\t\t'VALIDATE_STATUS ' + gl.getProgramParameter( program, 35715 ) + '\\n\\n' +\n\t\t\t\t'Program Info Log: ' + programLog + '\\n' +\n\t\t\t\tvertexErrors + '\\n' +\n\t\t\t\tfragmentErrors\n\t\t\t);\n\n\t\t} else if ( programLog !== '' ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLProgram: Program Info Log:', programLog );\n\n\t\t} else if ( vertexLog === '' || fragmentLog === '' ) {\n\n\t\t\thaveDiagnostics = false;\n\n\t\t}\n\n\t\tif ( haveDiagnostics ) {\n\n\t\t\tthis.diagnostics = {\n\n\t\t\t\trunnable: runnable,\n\n\t\t\t\tprogramLog: programLog,\n\n\t\t\t\tvertexShader: {\n\n\t\t\t\t\tlog: vertexLog,\n\t\t\t\t\tprefix: prefixVertex\n\n\t\t\t\t},\n\n\t\t\t\tfragmentShader: {\n\n\t\t\t\t\tlog: fragmentLog,\n\t\t\t\t\tprefix: prefixFragment\n\n\t\t\t\t}\n\n\t\t\t};\n\n\t\t}\n\n\t}\n\n\t// Clean up\n\n\t// Crashes in iOS9 and iOS10. #18402\n\t// gl.detachShader( program, glVertexShader );\n\t// gl.detachShader( program, glFragmentShader );\n\n\tgl.deleteShader( glVertexShader );\n\tgl.deleteShader( glFragmentShader );\n\n\t// set up caching for uniform locations\n\n\tlet cachedUniforms;\n\n\tthis.getUniforms = function () {\n\n\t\tif ( cachedUniforms === undefined ) {\n\n\t\t\tcachedUniforms = new WebGLUniforms( gl, program );\n\n\t\t}\n\n\t\treturn cachedUniforms;\n\n\t};\n\n\t// set up caching for attribute locations\n\n\tlet cachedAttributes;\n\n\tthis.getAttributes = function () {\n\n\t\tif ( cachedAttributes === undefined ) {\n\n\t\t\tcachedAttributes = fetchAttributeLocations( gl, program );\n\n\t\t}\n\n\t\treturn cachedAttributes;\n\n\t};\n\n\t// free resource\n\n\tthis.destroy = function () {\n\n\t\tbindingStates.releaseStatesOfProgram( this );\n\n\t\tgl.deleteProgram( program );\n\t\tthis.program = undefined;\n\n\t};\n\n\t//\n\n\tthis.name = parameters.shaderName;\n\tthis.id = programIdCount ++;\n\tthis.cacheKey = cacheKey;\n\tthis.usedTimes = 1;\n\tthis.program = program;\n\tthis.vertexShader = glVertexShader;\n\tthis.fragmentShader = glFragmentShader;\n\n\treturn this;\n\n}\n\nlet _id = 0;\n\nclass WebGLShaderCache {\n\n\tconstructor() {\n\n\t\tthis.shaderCache = new Map();\n\t\tthis.materialCache = new Map();\n\n\t}\n\n\tupdate( material ) {\n\n\t\tconst vertexShader = material.vertexShader;\n\t\tconst fragmentShader = material.fragmentShader;\n\n\t\tconst vertexShaderStage = this._getShaderStage( vertexShader );\n\t\tconst fragmentShaderStage = this._getShaderStage( fragmentShader );\n\n\t\tconst materialShaders = this._getShaderCacheForMaterial( material );\n\n\t\tif ( materialShaders.has( vertexShaderStage ) === false ) {\n\n\t\t\tmaterialShaders.add( vertexShaderStage );\n\t\t\tvertexShaderStage.usedTimes ++;\n\n\t\t}\n\n\t\tif ( materialShaders.has( fragmentShaderStage ) === false ) {\n\n\t\t\tmaterialShaders.add( fragmentShaderStage );\n\t\t\tfragmentShaderStage.usedTimes ++;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremove( material ) {\n\n\t\tconst materialShaders = this.materialCache.get( material );\n\n\t\tfor ( const shaderStage of materialShaders ) {\n\n\t\t\tshaderStage.usedTimes --;\n\n\t\t\tif ( shaderStage.usedTimes === 0 ) this.shaderCache.delete( shaderStage );\n\n\t\t}\n\n\t\tthis.materialCache.delete( material );\n\n\t\treturn this;\n\n\t}\n\n\tgetVertexShaderID( material ) {\n\n\t\treturn this._getShaderStage( material.vertexShader ).id;\n\n\t}\n\n\tgetFragmentShaderID( material ) {\n\n\t\treturn this._getShaderStage( material.fragmentShader ).id;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shaderCache.clear();\n\t\tthis.materialCache.clear();\n\n\t}\n\n\t_getShaderCacheForMaterial( material ) {\n\n\t\tconst cache = this.materialCache;\n\n\t\tif ( cache.has( material ) === false ) {\n\n\t\t\tcache.set( material, new Set() );\n\n\t\t}\n\n\t\treturn cache.get( material );\n\n\t}\n\n\t_getShaderStage( code ) {\n\n\t\tconst cache = this.shaderCache;\n\n\t\tif ( cache.has( code ) === false ) {\n\n\t\t\tconst stage = new WebGLShaderStage();\n\t\t\tcache.set( code, stage );\n\n\t\t}\n\n\t\treturn cache.get( code );\n\n\t}\n\n}\n\nclass WebGLShaderStage {\n\n\tconstructor() {\n\n\t\tthis.id = _id ++;\n\n\t\tthis.usedTimes = 0;\n\n\t}\n\n}\n\nfunction WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping ) {\n\n\tconst _programLayers = new Layers();\n\tconst _customShaders = new WebGLShaderCache();\n\tconst programs = [];\n\n\tconst isWebGL2 = capabilities.isWebGL2;\n\tconst logarithmicDepthBuffer = capabilities.logarithmicDepthBuffer;\n\tconst floatVertexTextures = capabilities.floatVertexTextures;\n\tconst maxVertexUniforms = capabilities.maxVertexUniforms;\n\tconst vertexTextures = capabilities.vertexTextures;\n\tlet precision = capabilities.precision;\n\n\tconst shaderIDs = {\n\t\tMeshDepthMaterial: 'depth',\n\t\tMeshDistanceMaterial: 'distanceRGBA',\n\t\tMeshNormalMaterial: 'normal',\n\t\tMeshBasicMaterial: 'basic',\n\t\tMeshLambertMaterial: 'lambert',\n\t\tMeshPhongMaterial: 'phong',\n\t\tMeshToonMaterial: 'toon',\n\t\tMeshStandardMaterial: 'physical',\n\t\tMeshPhysicalMaterial: 'physical',\n\t\tMeshMatcapMaterial: 'matcap',\n\t\tLineBasicMaterial: 'basic',\n\t\tLineDashedMaterial: 'dashed',\n\t\tPointsMaterial: 'points',\n\t\tShadowMaterial: 'shadow',\n\t\tSpriteMaterial: 'sprite'\n\t};\n\n\tfunction getMaxBones( object ) {\n\n\t\tconst skeleton = object.skeleton;\n\t\tconst bones = skeleton.bones;\n\n\t\tif ( floatVertexTextures ) {\n\n\t\t\treturn 1024;\n\n\t\t} else {\n\n\t\t\t// default for when object is not specified\n\t\t\t// ( for example when prebuilding shader to be used with multiple objects )\n\t\t\t//\n\t\t\t// - leave some extra space for other uniforms\n\t\t\t// - limit here is ANGLE's 254 max uniform vectors\n\t\t\t// (up to 54 should be safe)\n\n\t\t\tconst nVertexUniforms = maxVertexUniforms;\n\t\t\tconst nVertexMatrices = Math.floor( ( nVertexUniforms - 20 ) / 4 );\n\n\t\t\tconst maxBones = Math.min( nVertexMatrices, bones.length );\n\n\t\t\tif ( maxBones < bones.length ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Skeleton has ' + bones.length + ' bones. This GPU supports ' + maxBones + '.' );\n\t\t\t\treturn 0;\n\n\t\t\t}\n\n\t\t\treturn maxBones;\n\n\t\t}\n\n\t}\n\n\tfunction getParameters( material, lights, shadows, scene, object ) {\n\n\t\tconst fog = scene.fog;\n\t\tconst environment = material.isMeshStandardMaterial ? scene.environment : null;\n\n\t\tconst envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment );\n\n\t\tconst shaderID = shaderIDs[ material.type ];\n\n\t\t// heuristics to create shader parameters according to lights in the scene\n\t\t// (not to blow over maxLights budget)\n\n\t\tconst maxBones = object.isSkinnedMesh ? getMaxBones( object ) : 0;\n\n\t\tif ( material.precision !== null ) {\n\n\t\t\tprecision = capabilities.getMaxPrecision( material.precision );\n\n\t\t\tif ( precision !== material.precision ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLProgram.getParameters:', material.precision, 'not supported, using', precision, 'instead.' );\n\n\t\t\t}\n\n\t\t}\n\n\t\tlet vertexShader, fragmentShader;\n\t\tlet customVertexShaderID, customFragmentShaderID;\n\n\t\tif ( shaderID ) {\n\n\t\t\tconst shader = ShaderLib[ shaderID ];\n\n\t\t\tvertexShader = shader.vertexShader;\n\t\t\tfragmentShader = shader.fragmentShader;\n\n\t\t} else {\n\n\t\t\tvertexShader = material.vertexShader;\n\t\t\tfragmentShader = material.fragmentShader;\n\n\t\t\t_customShaders.update( material );\n\n\t\t\tcustomVertexShaderID = _customShaders.getVertexShaderID( material );\n\t\t\tcustomFragmentShaderID = _customShaders.getFragmentShaderID( material );\n\n\t\t}\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\n\t\tconst useAlphaTest = material.alphaTest > 0;\n\t\tconst useClearcoat = material.clearcoat > 0;\n\n\t\tconst parameters = {\n\n\t\t\tisWebGL2: isWebGL2,\n\n\t\t\tshaderID: shaderID,\n\t\t\tshaderName: material.type,\n\n\t\t\tvertexShader: vertexShader,\n\t\t\tfragmentShader: fragmentShader,\n\t\t\tdefines: material.defines,\n\n\t\t\tcustomVertexShaderID: customVertexShaderID,\n\t\t\tcustomFragmentShaderID: customFragmentShaderID,\n\n\t\t\tisRawShaderMaterial: material.isRawShaderMaterial === true,\n\t\t\tglslVersion: material.glslVersion,\n\n\t\t\tprecision: precision,\n\n\t\t\tinstancing: object.isInstancedMesh === true,\n\t\t\tinstancingColor: object.isInstancedMesh === true && object.instanceColor !== null,\n\n\t\t\tsupportsVertexTextures: vertexTextures,\n\t\t\toutputEncoding: ( currentRenderTarget === null ) ? renderer.outputEncoding : ( currentRenderTarget.isXRRenderTarget === true ? currentRenderTarget.texture.encoding : LinearEncoding ),\n\t\t\tmap: !! material.map,\n\t\t\tmatcap: !! material.matcap,\n\t\t\tenvMap: !! envMap,\n\t\t\tenvMapMode: envMap && envMap.mapping,\n\t\t\tenvMapCubeUV: ( !! envMap ) && ( ( envMap.mapping === CubeUVReflectionMapping ) || ( envMap.mapping === CubeUVRefractionMapping ) ),\n\t\t\tlightMap: !! material.lightMap,\n\t\t\taoMap: !! material.aoMap,\n\t\t\temissiveMap: !! material.emissiveMap,\n\t\t\tbumpMap: !! material.bumpMap,\n\t\t\tnormalMap: !! material.normalMap,\n\t\t\tobjectSpaceNormalMap: material.normalMapType === ObjectSpaceNormalMap,\n\t\t\ttangentSpaceNormalMap: material.normalMapType === TangentSpaceNormalMap,\n\n\t\t\tdecodeVideoTexture: !! material.map && ( material.map.isVideoTexture === true ) && ( material.map.encoding === sRGBEncoding ),\n\n\t\t\tclearcoat: useClearcoat,\n\t\t\tclearcoatMap: useClearcoat && !! material.clearcoatMap,\n\t\t\tclearcoatRoughnessMap: useClearcoat && !! material.clearcoatRoughnessMap,\n\t\t\tclearcoatNormalMap: useClearcoat && !! material.clearcoatNormalMap,\n\n\t\t\tdisplacementMap: !! material.displacementMap,\n\t\t\troughnessMap: !! material.roughnessMap,\n\t\t\tmetalnessMap: !! material.metalnessMap,\n\t\t\tspecularMap: !! material.specularMap,\n\t\t\tspecularIntensityMap: !! material.specularIntensityMap,\n\t\t\tspecularColorMap: !! material.specularColorMap,\n\n\t\t\ttransparent: material.transparent,\n\n\t\t\talphaMap: !! material.alphaMap,\n\t\t\talphaTest: useAlphaTest,\n\n\t\t\tgradientMap: !! material.gradientMap,\n\n\t\t\tsheen: material.sheen > 0,\n\t\t\tsheenColorMap: !! material.sheenColorMap,\n\t\t\tsheenRoughnessMap: !! material.sheenRoughnessMap,\n\n\t\t\ttransmission: material.transmission > 0,\n\t\t\ttransmissionMap: !! material.transmissionMap,\n\t\t\tthicknessMap: !! material.thicknessMap,\n\n\t\t\tcombine: material.combine,\n\n\t\t\tvertexTangents: ( !! material.normalMap && !! object.geometry && !! object.geometry.attributes.tangent ),\n\t\t\tvertexColors: material.vertexColors,\n\t\t\tvertexAlphas: material.vertexColors === true && !! object.geometry && !! object.geometry.attributes.color && object.geometry.attributes.color.itemSize === 4,\n\t\t\tvertexUvs: !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatMap || !! material.clearcoatRoughnessMap || !! material.clearcoatNormalMap || !! material.displacementMap || !! material.transmissionMap || !! material.thicknessMap || !! material.specularIntensityMap || !! material.specularColorMap || !! material.sheenColorMap || !! material.sheenRoughnessMap,\n\t\t\tuvsVertexOnly: ! ( !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatNormalMap || material.transmission > 0 || !! material.transmissionMap || !! material.thicknessMap || !! material.specularIntensityMap || !! material.specularColorMap || material.sheen > 0 || !! material.sheenColorMap || !! material.sheenRoughnessMap ) && !! material.displacementMap,\n\n\t\t\tfog: !! fog,\n\t\t\tuseFog: material.fog,\n\t\t\tfogExp2: ( fog && fog.isFogExp2 ),\n\n\t\t\tflatShading: !! material.flatShading,\n\n\t\t\tsizeAttenuation: material.sizeAttenuation,\n\t\t\tlogarithmicDepthBuffer: logarithmicDepthBuffer,\n\n\t\t\tskinning: object.isSkinnedMesh === true && maxBones > 0,\n\t\t\tmaxBones: maxBones,\n\t\t\tuseVertexTexture: floatVertexTextures,\n\n\t\t\tmorphTargets: !! object.geometry && !! object.geometry.morphAttributes.position,\n\t\t\tmorphNormals: !! object.geometry && !! object.geometry.morphAttributes.normal,\n\t\t\tmorphTargetsCount: ( !! object.geometry && !! object.geometry.morphAttributes.position ) ? object.geometry.morphAttributes.position.length : 0,\n\n\t\t\tnumDirLights: lights.directional.length,\n\t\t\tnumPointLights: lights.point.length,\n\t\t\tnumSpotLights: lights.spot.length,\n\t\t\tnumRectAreaLights: lights.rectArea.length,\n\t\t\tnumHemiLights: lights.hemi.length,\n\n\t\t\tnumDirLightShadows: lights.directionalShadowMap.length,\n\t\t\tnumPointLightShadows: lights.pointShadowMap.length,\n\t\t\tnumSpotLightShadows: lights.spotShadowMap.length,\n\n\t\t\tnumClippingPlanes: clipping.numPlanes,\n\t\t\tnumClipIntersection: clipping.numIntersection,\n\n\t\t\tdithering: material.dithering,\n\n\t\t\tshadowMapEnabled: renderer.shadowMap.enabled && shadows.length > 0,\n\t\t\tshadowMapType: renderer.shadowMap.type,\n\n\t\t\ttoneMapping: material.toneMapped ? renderer.toneMapping : NoToneMapping,\n\t\t\tphysicallyCorrectLights: renderer.physicallyCorrectLights,\n\n\t\t\tpremultipliedAlpha: material.premultipliedAlpha,\n\n\t\t\tdoubleSided: material.side === DoubleSide,\n\t\t\tflipSided: material.side === BackSide,\n\n\t\t\tdepthPacking: ( material.depthPacking !== undefined ) ? material.depthPacking : false,\n\n\t\t\tindex0AttributeName: material.index0AttributeName,\n\n\t\t\textensionDerivatives: material.extensions && material.extensions.derivatives,\n\t\t\textensionFragDepth: material.extensions && material.extensions.fragDepth,\n\t\t\textensionDrawBuffers: material.extensions && material.extensions.drawBuffers,\n\t\t\textensionShaderTextureLOD: material.extensions && material.extensions.shaderTextureLOD,\n\n\t\t\trendererExtensionFragDepth: isWebGL2 || extensions.has( 'EXT_frag_depth' ),\n\t\t\trendererExtensionDrawBuffers: isWebGL2 || extensions.has( 'WEBGL_draw_buffers' ),\n\t\t\trendererExtensionShaderTextureLod: isWebGL2 || extensions.has( 'EXT_shader_texture_lod' ),\n\n\t\t\tcustomProgramCacheKey: material.customProgramCacheKey()\n\n\t\t};\n\n\t\treturn parameters;\n\n\t}\n\n\tfunction getProgramCacheKey( parameters ) {\n\n\t\tconst array = [];\n\n\t\tif ( parameters.shaderID ) {\n\n\t\t\tarray.push( parameters.shaderID );\n\n\t\t} else {\n\n\t\t\tarray.push( parameters.customVertexShaderID );\n\t\t\tarray.push( parameters.customFragmentShaderID );\n\n\t\t}\n\n\t\tif ( parameters.defines !== undefined ) {\n\n\t\t\tfor ( const name in parameters.defines ) {\n\n\t\t\t\tarray.push( name );\n\t\t\t\tarray.push( parameters.defines[ name ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( parameters.isRawShaderMaterial === false ) {\n\n\t\t\tgetProgramCacheKeyParameters( array, parameters );\n\t\t\tgetProgramCacheKeyBooleans( array, parameters );\n\t\t\tarray.push( renderer.outputEncoding );\n\n\t\t}\n\n\t\tarray.push( parameters.customProgramCacheKey );\n\n\t\treturn array.join();\n\n\t}\n\n\tfunction getProgramCacheKeyParameters( array, parameters ) {\n\n\t\tarray.push( parameters.precision );\n\t\tarray.push( parameters.outputEncoding );\n\t\tarray.push( parameters.envMapMode );\n\t\tarray.push( parameters.combine );\n\t\tarray.push( parameters.vertexUvs );\n\t\tarray.push( parameters.fogExp2 );\n\t\tarray.push( parameters.sizeAttenuation );\n\t\tarray.push( parameters.maxBones );\n\t\tarray.push( parameters.morphTargetsCount );\n\t\tarray.push( parameters.numDirLights );\n\t\tarray.push( parameters.numPointLights );\n\t\tarray.push( parameters.numSpotLights );\n\t\tarray.push( parameters.numHemiLights );\n\t\tarray.push( parameters.numRectAreaLights );\n\t\tarray.push( parameters.numDirLightShadows );\n\t\tarray.push( parameters.numPointLightShadows );\n\t\tarray.push( parameters.numSpotLightShadows );\n\t\tarray.push( parameters.shadowMapType );\n\t\tarray.push( parameters.toneMapping );\n\t\tarray.push( parameters.numClippingPlanes );\n\t\tarray.push( parameters.numClipIntersection );\n\n\t}\n\n\tfunction getProgramCacheKeyBooleans( array, parameters ) {\n\n\t\t_programLayers.disableAll();\n\n\t\tif ( parameters.isWebGL2 )\n\t\t\t_programLayers.enable( 0 );\n\t\tif ( parameters.supportsVertexTextures )\n\t\t\t_programLayers.enable( 1 );\n\t\tif ( parameters.instancing )\n\t\t\t_programLayers.enable( 2 );\n\t\tif ( parameters.instancingColor )\n\t\t\t_programLayers.enable( 3 );\n\t\tif ( parameters.map )\n\t\t\t_programLayers.enable( 4 );\n\t\tif ( parameters.matcap )\n\t\t\t_programLayers.enable( 5 );\n\t\tif ( parameters.envMap )\n\t\t\t_programLayers.enable( 6 );\n\t\tif ( parameters.envMapCubeUV )\n\t\t\t_programLayers.enable( 7 );\n\t\tif ( parameters.lightMap )\n\t\t\t_programLayers.enable( 8 );\n\t\tif ( parameters.aoMap )\n\t\t\t_programLayers.enable( 9 );\n\t\tif ( parameters.emissiveMap )\n\t\t\t_programLayers.enable( 10 );\n\t\tif ( parameters.bumpMap )\n\t\t\t_programLayers.enable( 11 );\n\t\tif ( parameters.normalMap )\n\t\t\t_programLayers.enable( 12 );\n\t\tif ( parameters.objectSpaceNormalMap )\n\t\t\t_programLayers.enable( 13 );\n\t\tif ( parameters.tangentSpaceNormalMap )\n\t\t\t_programLayers.enable( 14 );\n\t\tif ( parameters.clearcoat )\n\t\t\t_programLayers.enable( 15 );\n\t\tif ( parameters.clearcoatMap )\n\t\t\t_programLayers.enable( 16 );\n\t\tif ( parameters.clearcoatRoughnessMap )\n\t\t\t_programLayers.enable( 17 );\n\t\tif ( parameters.clearcoatNormalMap )\n\t\t\t_programLayers.enable( 18 );\n\t\tif ( parameters.displacementMap )\n\t\t\t_programLayers.enable( 19 );\n\t\tif ( parameters.specularMap )\n\t\t\t_programLayers.enable( 20 );\n\t\tif ( parameters.roughnessMap )\n\t\t\t_programLayers.enable( 21 );\n\t\tif ( parameters.metalnessMap )\n\t\t\t_programLayers.enable( 22 );\n\t\tif ( parameters.gradientMap )\n\t\t\t_programLayers.enable( 23 );\n\t\tif ( parameters.alphaMap )\n\t\t\t_programLayers.enable( 24 );\n\t\tif ( parameters.alphaTest )\n\t\t\t_programLayers.enable( 25 );\n\t\tif ( parameters.vertexColors )\n\t\t\t_programLayers.enable( 26 );\n\t\tif ( parameters.vertexAlphas )\n\t\t\t_programLayers.enable( 27 );\n\t\tif ( parameters.vertexUvs )\n\t\t\t_programLayers.enable( 28 );\n\t\tif ( parameters.vertexTangents )\n\t\t\t_programLayers.enable( 29 );\n\t\tif ( parameters.uvsVertexOnly )\n\t\t\t_programLayers.enable( 30 );\n\t\tif ( parameters.fog )\n\t\t\t_programLayers.enable( 31 );\n\n\t\tarray.push( _programLayers.mask );\n\t\t_programLayers.disableAll();\n\n\t\tif ( parameters.useFog )\n\t\t\t_programLayers.enable( 0 );\n\t\tif ( parameters.flatShading )\n\t\t\t_programLayers.enable( 1 );\n\t\tif ( parameters.logarithmicDepthBuffer )\n\t\t\t_programLayers.enable( 2 );\n\t\tif ( parameters.skinning )\n\t\t\t_programLayers.enable( 3 );\n\t\tif ( parameters.useVertexTexture )\n\t\t\t_programLayers.enable( 4 );\n\t\tif ( parameters.morphTargets )\n\t\t\t_programLayers.enable( 5 );\n\t\tif ( parameters.morphNormals )\n\t\t\t_programLayers.enable( 6 );\n\t\tif ( parameters.premultipliedAlpha )\n\t\t\t_programLayers.enable( 7 );\n\t\tif ( parameters.shadowMapEnabled )\n\t\t\t_programLayers.enable( 8 );\n\t\tif ( parameters.physicallyCorrectLights )\n\t\t\t_programLayers.enable( 9 );\n\t\tif ( parameters.doubleSided )\n\t\t\t_programLayers.enable( 10 );\n\t\tif ( parameters.flipSided )\n\t\t\t_programLayers.enable( 11 );\n\t\tif ( parameters.depthPacking )\n\t\t\t_programLayers.enable( 12 );\n\t\tif ( parameters.dithering )\n\t\t\t_programLayers.enable( 13 );\n\t\tif ( parameters.specularIntensityMap )\n\t\t\t_programLayers.enable( 14 );\n\t\tif ( parameters.specularColorMap )\n\t\t\t_programLayers.enable( 15 );\n\t\tif ( parameters.transmission )\n\t\t\t_programLayers.enable( 16 );\n\t\tif ( parameters.transmissionMap )\n\t\t\t_programLayers.enable( 17 );\n\t\tif ( parameters.thicknessMap )\n\t\t\t_programLayers.enable( 18 );\n\t\tif ( parameters.sheen )\n\t\t\t_programLayers.enable( 19 );\n\t\tif ( parameters.sheenColorMap )\n\t\t\t_programLayers.enable( 20 );\n\t\tif ( parameters.sheenRoughnessMap )\n\t\t\t_programLayers.enable( 21 );\n\t\tif ( parameters.decodeVideoTexture )\n\t\t\t_programLayers.enable( 22 );\n\t\tif ( parameters.transparent )\n\t\t\t_programLayers.enable( 23 );\n\n\t\tarray.push( _programLayers.mask );\n\n\t}\n\n\tfunction getUniforms( material ) {\n\n\t\tconst shaderID = shaderIDs[ material.type ];\n\t\tlet uniforms;\n\n\t\tif ( shaderID ) {\n\n\t\t\tconst shader = ShaderLib[ shaderID ];\n\t\t\tuniforms = UniformsUtils.clone( shader.uniforms );\n\n\t\t} else {\n\n\t\t\tuniforms = material.uniforms;\n\n\t\t}\n\n\t\treturn uniforms;\n\n\t}\n\n\tfunction acquireProgram( parameters, cacheKey ) {\n\n\t\tlet program;\n\n\t\t// Check if code has been already compiled\n\t\tfor ( let p = 0, pl = programs.length; p < pl; p ++ ) {\n\n\t\t\tconst preexistingProgram = programs[ p ];\n\n\t\t\tif ( preexistingProgram.cacheKey === cacheKey ) {\n\n\t\t\t\tprogram = preexistingProgram;\n\t\t\t\t++ program.usedTimes;\n\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( program === undefined ) {\n\n\t\t\tprogram = new WebGLProgram( renderer, cacheKey, parameters, bindingStates );\n\t\t\tprograms.push( program );\n\n\t\t}\n\n\t\treturn program;\n\n\t}\n\n\tfunction releaseProgram( program ) {\n\n\t\tif ( -- program.usedTimes === 0 ) {\n\n\t\t\t// Remove from unordered set\n\t\t\tconst i = programs.indexOf( program );\n\t\t\tprograms[ i ] = programs[ programs.length - 1 ];\n\t\t\tprograms.pop();\n\n\t\t\t// Free WebGL resources\n\t\t\tprogram.destroy();\n\n\t\t}\n\n\t}\n\n\tfunction releaseShaderCache( material ) {\n\n\t\t_customShaders.remove( material );\n\n\t}\n\n\tfunction dispose() {\n\n\t\t_customShaders.dispose();\n\n\t}\n\n\treturn {\n\t\tgetParameters: getParameters,\n\t\tgetProgramCacheKey: getProgramCacheKey,\n\t\tgetUniforms: getUniforms,\n\t\tacquireProgram: acquireProgram,\n\t\treleaseProgram: releaseProgram,\n\t\treleaseShaderCache: releaseShaderCache,\n\t\t// Exposed for resource monitoring & error feedback via renderer.info:\n\t\tprograms: programs,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction WebGLProperties() {\n\n\tlet properties = new WeakMap();\n\n\tfunction get( object ) {\n\n\t\tlet map = properties.get( object );\n\n\t\tif ( map === undefined ) {\n\n\t\t\tmap = {};\n\t\t\tproperties.set( object, map );\n\n\t\t}\n\n\t\treturn map;\n\n\t}\n\n\tfunction remove( object ) {\n\n\t\tproperties.delete( object );\n\n\t}\n\n\tfunction update( object, key, value ) {\n\n\t\tproperties.get( object )[ key ] = value;\n\n\t}\n\n\tfunction dispose() {\n\n\t\tproperties = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tremove: remove,\n\t\tupdate: update,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction painterSortStable( a, b ) {\n\n\tif ( a.groupOrder !== b.groupOrder ) {\n\n\t\treturn a.groupOrder - b.groupOrder;\n\n\t} else if ( a.renderOrder !== b.renderOrder ) {\n\n\t\treturn a.renderOrder - b.renderOrder;\n\n\t} else if ( a.material.id !== b.material.id ) {\n\n\t\treturn a.material.id - b.material.id;\n\n\t} else if ( a.z !== b.z ) {\n\n\t\treturn a.z - b.z;\n\n\t} else {\n\n\t\treturn a.id - b.id;\n\n\t}\n\n}\n\nfunction reversePainterSortStable( a, b ) {\n\n\tif ( a.groupOrder !== b.groupOrder ) {\n\n\t\treturn a.groupOrder - b.groupOrder;\n\n\t} else if ( a.renderOrder !== b.renderOrder ) {\n\n\t\treturn a.renderOrder - b.renderOrder;\n\n\t} else if ( a.z !== b.z ) {\n\n\t\treturn b.z - a.z;\n\n\t} else {\n\n\t\treturn a.id - b.id;\n\n\t}\n\n}\n\n\nfunction WebGLRenderList() {\n\n\tconst renderItems = [];\n\tlet renderItemsIndex = 0;\n\n\tconst opaque = [];\n\tconst transmissive = [];\n\tconst transparent = [];\n\n\tfunction init() {\n\n\t\trenderItemsIndex = 0;\n\n\t\topaque.length = 0;\n\t\ttransmissive.length = 0;\n\t\ttransparent.length = 0;\n\n\t}\n\n\tfunction getNextRenderItem( object, geometry, material, groupOrder, z, group ) {\n\n\t\tlet renderItem = renderItems[ renderItemsIndex ];\n\n\t\tif ( renderItem === undefined ) {\n\n\t\t\trenderItem = {\n\t\t\t\tid: object.id,\n\t\t\t\tobject: object,\n\t\t\t\tgeometry: geometry,\n\t\t\t\tmaterial: material,\n\t\t\t\tgroupOrder: groupOrder,\n\t\t\t\trenderOrder: object.renderOrder,\n\t\t\t\tz: z,\n\t\t\t\tgroup: group\n\t\t\t};\n\n\t\t\trenderItems[ renderItemsIndex ] = renderItem;\n\n\t\t} else {\n\n\t\t\trenderItem.id = object.id;\n\t\t\trenderItem.object = object;\n\t\t\trenderItem.geometry = geometry;\n\t\t\trenderItem.material = material;\n\t\t\trenderItem.groupOrder = groupOrder;\n\t\t\trenderItem.renderOrder = object.renderOrder;\n\t\t\trenderItem.z = z;\n\t\t\trenderItem.group = group;\n\n\t\t}\n\n\t\trenderItemsIndex ++;\n\n\t\treturn renderItem;\n\n\t}\n\n\tfunction push( object, geometry, material, groupOrder, z, group ) {\n\n\t\tconst renderItem = getNextRenderItem( object, geometry, material, groupOrder, z, group );\n\n\t\tif ( material.transmission > 0.0 ) {\n\n\t\t\ttransmissive.push( renderItem );\n\n\t\t} else if ( material.transparent === true ) {\n\n\t\t\ttransparent.push( renderItem );\n\n\t\t} else {\n\n\t\t\topaque.push( renderItem );\n\n\t\t}\n\n\t}\n\n\tfunction unshift( object, geometry, material, groupOrder, z, group ) {\n\n\t\tconst renderItem = getNextRenderItem( object, geometry, material, groupOrder, z, group );\n\n\t\tif ( material.transmission > 0.0 ) {\n\n\t\t\ttransmissive.unshift( renderItem );\n\n\t\t} else if ( material.transparent === true ) {\n\n\t\t\ttransparent.unshift( renderItem );\n\n\t\t} else {\n\n\t\t\topaque.unshift( renderItem );\n\n\t\t}\n\n\t}\n\n\tfunction sort( customOpaqueSort, customTransparentSort ) {\n\n\t\tif ( opaque.length > 1 ) opaque.sort( customOpaqueSort || painterSortStable );\n\t\tif ( transmissive.length > 1 ) transmissive.sort( customTransparentSort || reversePainterSortStable );\n\t\tif ( transparent.length > 1 ) transparent.sort( customTransparentSort || reversePainterSortStable );\n\n\t}\n\n\tfunction finish() {\n\n\t\t// Clear references from inactive renderItems in the list\n\n\t\tfor ( let i = renderItemsIndex, il = renderItems.length; i < il; i ++ ) {\n\n\t\t\tconst renderItem = renderItems[ i ];\n\n\t\t\tif ( renderItem.id === null ) break;\n\n\t\t\trenderItem.id = null;\n\t\t\trenderItem.object = null;\n\t\t\trenderItem.geometry = null;\n\t\t\trenderItem.material = null;\n\t\t\trenderItem.group = null;\n\n\t\t}\n\n\t}\n\n\treturn {\n\n\t\topaque: opaque,\n\t\ttransmissive: transmissive,\n\t\ttransparent: transparent,\n\n\t\tinit: init,\n\t\tpush: push,\n\t\tunshift: unshift,\n\t\tfinish: finish,\n\n\t\tsort: sort\n\t};\n\n}\n\nfunction WebGLRenderLists() {\n\n\tlet lists = new WeakMap();\n\n\tfunction get( scene, renderCallDepth ) {\n\n\t\tlet list;\n\n\t\tif ( lists.has( scene ) === false ) {\n\n\t\t\tlist = new WebGLRenderList();\n\t\t\tlists.set( scene, [ list ] );\n\n\t\t} else {\n\n\t\t\tif ( renderCallDepth >= lists.get( scene ).length ) {\n\n\t\t\t\tlist = new WebGLRenderList();\n\t\t\t\tlists.get( scene ).push( list );\n\n\t\t\t} else {\n\n\t\t\t\tlist = lists.get( scene )[ renderCallDepth ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn list;\n\n\t}\n\n\tfunction dispose() {\n\n\t\tlists = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction UniformsCache() {\n\n\tconst lights = {};\n\n\treturn {\n\n\t\tget: function ( light ) {\n\n\t\t\tif ( lights[ light.id ] !== undefined ) {\n\n\t\t\t\treturn lights[ light.id ];\n\n\t\t\t}\n\n\t\t\tlet uniforms;\n\n\t\t\tswitch ( light.type ) {\n\n\t\t\t\tcase 'DirectionalLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tdirection: new Vector3(),\n\t\t\t\t\t\tcolor: new Color()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'SpotLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tposition: new Vector3(),\n\t\t\t\t\t\tdirection: new Vector3(),\n\t\t\t\t\t\tcolor: new Color(),\n\t\t\t\t\t\tdistance: 0,\n\t\t\t\t\t\tconeCos: 0,\n\t\t\t\t\t\tpenumbraCos: 0,\n\t\t\t\t\t\tdecay: 0\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'PointLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tposition: new Vector3(),\n\t\t\t\t\t\tcolor: new Color(),\n\t\t\t\t\t\tdistance: 0,\n\t\t\t\t\t\tdecay: 0\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'HemisphereLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tdirection: new Vector3(),\n\t\t\t\t\t\tskyColor: new Color(),\n\t\t\t\t\t\tgroundColor: new Color()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'RectAreaLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tcolor: new Color(),\n\t\t\t\t\t\tposition: new Vector3(),\n\t\t\t\t\t\thalfWidth: new Vector3(),\n\t\t\t\t\t\thalfHeight: new Vector3()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tlights[ light.id ] = uniforms;\n\n\t\t\treturn uniforms;\n\n\t\t}\n\n\t};\n\n}\n\nfunction ShadowUniformsCache() {\n\n\tconst lights = {};\n\n\treturn {\n\n\t\tget: function ( light ) {\n\n\t\t\tif ( lights[ light.id ] !== undefined ) {\n\n\t\t\t\treturn lights[ light.id ];\n\n\t\t\t}\n\n\t\t\tlet uniforms;\n\n\t\t\tswitch ( light.type ) {\n\n\t\t\t\tcase 'DirectionalLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tshadowBias: 0,\n\t\t\t\t\t\tshadowNormalBias: 0,\n\t\t\t\t\t\tshadowRadius: 1,\n\t\t\t\t\t\tshadowMapSize: new Vector2()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'SpotLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tshadowBias: 0,\n\t\t\t\t\t\tshadowNormalBias: 0,\n\t\t\t\t\t\tshadowRadius: 1,\n\t\t\t\t\t\tshadowMapSize: new Vector2()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'PointLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tshadowBias: 0,\n\t\t\t\t\t\tshadowNormalBias: 0,\n\t\t\t\t\t\tshadowRadius: 1,\n\t\t\t\t\t\tshadowMapSize: new Vector2(),\n\t\t\t\t\t\tshadowCameraNear: 1,\n\t\t\t\t\t\tshadowCameraFar: 1000\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\t// TODO (abelnation): set RectAreaLight shadow uniforms\n\n\t\t\t}\n\n\t\t\tlights[ light.id ] = uniforms;\n\n\t\t\treturn uniforms;\n\n\t\t}\n\n\t};\n\n}\n\n\n\nlet nextVersion = 0;\n\nfunction shadowCastingLightsFirst( lightA, lightB ) {\n\n\treturn ( lightB.castShadow ? 1 : 0 ) - ( lightA.castShadow ? 1 : 0 );\n\n}\n\nfunction WebGLLights( extensions, capabilities ) {\n\n\tconst cache = new UniformsCache();\n\n\tconst shadowCache = ShadowUniformsCache();\n\n\tconst state = {\n\n\t\tversion: 0,\n\n\t\thash: {\n\t\t\tdirectionalLength: - 1,\n\t\t\tpointLength: - 1,\n\t\t\tspotLength: - 1,\n\t\t\trectAreaLength: - 1,\n\t\t\themiLength: - 1,\n\n\t\t\tnumDirectionalShadows: - 1,\n\t\t\tnumPointShadows: - 1,\n\t\t\tnumSpotShadows: - 1\n\t\t},\n\n\t\tambient: [ 0, 0, 0 ],\n\t\tprobe: [],\n\t\tdirectional: [],\n\t\tdirectionalShadow: [],\n\t\tdirectionalShadowMap: [],\n\t\tdirectionalShadowMatrix: [],\n\t\tspot: [],\n\t\tspotShadow: [],\n\t\tspotShadowMap: [],\n\t\tspotShadowMatrix: [],\n\t\trectArea: [],\n\t\trectAreaLTC1: null,\n\t\trectAreaLTC2: null,\n\t\tpoint: [],\n\t\tpointShadow: [],\n\t\tpointShadowMap: [],\n\t\tpointShadowMatrix: [],\n\t\themi: []\n\n\t};\n\n\tfor ( let i = 0; i < 9; i ++ ) state.probe.push( new Vector3() );\n\n\tconst vector3 = new Vector3();\n\tconst matrix4 = new Matrix4();\n\tconst matrix42 = new Matrix4();\n\n\tfunction setup( lights, physicallyCorrectLights ) {\n\n\t\tlet r = 0, g = 0, b = 0;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) state.probe[ i ].set( 0, 0, 0 );\n\n\t\tlet directionalLength = 0;\n\t\tlet pointLength = 0;\n\t\tlet spotLength = 0;\n\t\tlet rectAreaLength = 0;\n\t\tlet hemiLength = 0;\n\n\t\tlet numDirectionalShadows = 0;\n\t\tlet numPointShadows = 0;\n\t\tlet numSpotShadows = 0;\n\n\t\tlights.sort( shadowCastingLightsFirst );\n\n\t\t// artist-friendly light intensity scaling factor\n\t\tconst scaleFactor = ( physicallyCorrectLights !== true ) ? Math.PI : 1;\n\n\t\tfor ( let i = 0, l = lights.length; i < l; i ++ ) {\n\n\t\t\tconst light = lights[ i ];\n\n\t\t\tconst color = light.color;\n\t\t\tconst intensity = light.intensity;\n\t\t\tconst distance = light.distance;\n\n\t\t\tconst shadowMap = ( light.shadow && light.shadow.map ) ? light.shadow.map.texture : null;\n\n\t\t\tif ( light.isAmbientLight ) {\n\n\t\t\t\tr += color.r * intensity * scaleFactor;\n\t\t\t\tg += color.g * intensity * scaleFactor;\n\t\t\t\tb += color.b * intensity * scaleFactor;\n\n\t\t\t} else if ( light.isLightProbe ) {\n\n\t\t\t\tfor ( let j = 0; j < 9; j ++ ) {\n\n\t\t\t\t\tstate.probe[ j ].addScaledVector( light.sh.coefficients[ j ], intensity );\n\n\t\t\t\t}\n\n\t\t\t} else if ( light.isDirectionalLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.color.copy( light.color ).multiplyScalar( light.intensity * scaleFactor );\n\n\t\t\t\tif ( light.castShadow ) {\n\n\t\t\t\t\tconst shadow = light.shadow;\n\n\t\t\t\t\tconst shadowUniforms = shadowCache.get( light );\n\n\t\t\t\t\tshadowUniforms.shadowBias = shadow.bias;\n\t\t\t\t\tshadowUniforms.shadowNormalBias = shadow.normalBias;\n\t\t\t\t\tshadowUniforms.shadowRadius = shadow.radius;\n\t\t\t\t\tshadowUniforms.shadowMapSize = shadow.mapSize;\n\n\t\t\t\t\tstate.directionalShadow[ directionalLength ] = shadowUniforms;\n\t\t\t\t\tstate.directionalShadowMap[ directionalLength ] = shadowMap;\n\t\t\t\t\tstate.directionalShadowMatrix[ directionalLength ] = light.shadow.matrix;\n\n\t\t\t\t\tnumDirectionalShadows ++;\n\n\t\t\t\t}\n\n\t\t\t\tstate.directional[ directionalLength ] = uniforms;\n\n\t\t\t\tdirectionalLength ++;\n\n\t\t\t} else if ( light.isSpotLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\n\t\t\t\tuniforms.color.copy( color ).multiplyScalar( intensity * scaleFactor );\n\t\t\t\tuniforms.distance = distance;\n\n\t\t\t\tuniforms.coneCos = Math.cos( light.angle );\n\t\t\t\tuniforms.penumbraCos = Math.cos( light.angle * ( 1 - light.penumbra ) );\n\t\t\t\tuniforms.decay = light.decay;\n\n\t\t\t\tif ( light.castShadow ) {\n\n\t\t\t\t\tconst shadow = light.shadow;\n\n\t\t\t\t\tconst shadowUniforms = shadowCache.get( light );\n\n\t\t\t\t\tshadowUniforms.shadowBias = shadow.bias;\n\t\t\t\t\tshadowUniforms.shadowNormalBias = shadow.normalBias;\n\t\t\t\t\tshadowUniforms.shadowRadius = shadow.radius;\n\t\t\t\t\tshadowUniforms.shadowMapSize = shadow.mapSize;\n\n\t\t\t\t\tstate.spotShadow[ spotLength ] = shadowUniforms;\n\t\t\t\t\tstate.spotShadowMap[ spotLength ] = shadowMap;\n\t\t\t\t\tstate.spotShadowMatrix[ spotLength ] = light.shadow.matrix;\n\n\t\t\t\t\tnumSpotShadows ++;\n\n\t\t\t\t}\n\n\t\t\t\tstate.spot[ spotLength ] = uniforms;\n\n\t\t\t\tspotLength ++;\n\n\t\t\t} else if ( light.isRectAreaLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\t// (a) intensity is the total visible light emitted\n\t\t\t\t//uniforms.color.copy( color ).multiplyScalar( intensity / ( light.width * light.height * Math.PI ) );\n\n\t\t\t\t// (b) intensity is the brightness of the light\n\t\t\t\tuniforms.color.copy( color ).multiplyScalar( intensity );\n\n\t\t\t\tuniforms.halfWidth.set( light.width * 0.5, 0.0, 0.0 );\n\t\t\t\tuniforms.halfHeight.set( 0.0, light.height * 0.5, 0.0 );\n\n\t\t\t\tstate.rectArea[ rectAreaLength ] = uniforms;\n\n\t\t\t\trectAreaLength ++;\n\n\t\t\t} else if ( light.isPointLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.color.copy( light.color ).multiplyScalar( light.intensity * scaleFactor );\n\t\t\t\tuniforms.distance = light.distance;\n\t\t\t\tuniforms.decay = light.decay;\n\n\t\t\t\tif ( light.castShadow ) {\n\n\t\t\t\t\tconst shadow = light.shadow;\n\n\t\t\t\t\tconst shadowUniforms = shadowCache.get( light );\n\n\t\t\t\t\tshadowUniforms.shadowBias = shadow.bias;\n\t\t\t\t\tshadowUniforms.shadowNormalBias = shadow.normalBias;\n\t\t\t\t\tshadowUniforms.shadowRadius = shadow.radius;\n\t\t\t\t\tshadowUniforms.shadowMapSize = shadow.mapSize;\n\t\t\t\t\tshadowUniforms.shadowCameraNear = shadow.camera.near;\n\t\t\t\t\tshadowUniforms.shadowCameraFar = shadow.camera.far;\n\n\t\t\t\t\tstate.pointShadow[ pointLength ] = shadowUniforms;\n\t\t\t\t\tstate.pointShadowMap[ pointLength ] = shadowMap;\n\t\t\t\t\tstate.pointShadowMatrix[ pointLength ] = light.shadow.matrix;\n\n\t\t\t\t\tnumPointShadows ++;\n\n\t\t\t\t}\n\n\t\t\t\tstate.point[ pointLength ] = uniforms;\n\n\t\t\t\tpointLength ++;\n\n\t\t\t} else if ( light.isHemisphereLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.skyColor.copy( light.color ).multiplyScalar( intensity * scaleFactor );\n\t\t\t\tuniforms.groundColor.copy( light.groundColor ).multiplyScalar( intensity * scaleFactor );\n\n\t\t\t\tstate.hemi[ hemiLength ] = uniforms;\n\n\t\t\t\themiLength ++;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( rectAreaLength > 0 ) {\n\n\t\t\tif ( capabilities.isWebGL2 ) {\n\n\t\t\t\t// WebGL 2\n\n\t\t\t\tstate.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1;\n\t\t\t\tstate.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2;\n\n\t\t\t} else {\n\n\t\t\t\t// WebGL 1\n\n\t\t\t\tif ( extensions.has( 'OES_texture_float_linear' ) === true ) {\n\n\t\t\t\t\tstate.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1;\n\t\t\t\t\tstate.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2;\n\n\t\t\t\t} else if ( extensions.has( 'OES_texture_half_float_linear' ) === true ) {\n\n\t\t\t\t\tstate.rectAreaLTC1 = UniformsLib.LTC_HALF_1;\n\t\t\t\t\tstate.rectAreaLTC2 = UniformsLib.LTC_HALF_2;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( 'THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.' );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.ambient[ 0 ] = r;\n\t\tstate.ambient[ 1 ] = g;\n\t\tstate.ambient[ 2 ] = b;\n\n\t\tconst hash = state.hash;\n\n\t\tif ( hash.directionalLength !== directionalLength ||\n\t\t\thash.pointLength !== pointLength ||\n\t\t\thash.spotLength !== spotLength ||\n\t\t\thash.rectAreaLength !== rectAreaLength ||\n\t\t\thash.hemiLength !== hemiLength ||\n\t\t\thash.numDirectionalShadows !== numDirectionalShadows ||\n\t\t\thash.numPointShadows !== numPointShadows ||\n\t\t\thash.numSpotShadows !== numSpotShadows ) {\n\n\t\t\tstate.directional.length = directionalLength;\n\t\t\tstate.spot.length = spotLength;\n\t\t\tstate.rectArea.length = rectAreaLength;\n\t\t\tstate.point.length = pointLength;\n\t\t\tstate.hemi.length = hemiLength;\n\n\t\t\tstate.directionalShadow.length = numDirectionalShadows;\n\t\t\tstate.directionalShadowMap.length = numDirectionalShadows;\n\t\t\tstate.pointShadow.length = numPointShadows;\n\t\t\tstate.pointShadowMap.length = numPointShadows;\n\t\t\tstate.spotShadow.length = numSpotShadows;\n\t\t\tstate.spotShadowMap.length = numSpotShadows;\n\t\t\tstate.directionalShadowMatrix.length = numDirectionalShadows;\n\t\t\tstate.pointShadowMatrix.length = numPointShadows;\n\t\t\tstate.spotShadowMatrix.length = numSpotShadows;\n\n\t\t\thash.directionalLength = directionalLength;\n\t\t\thash.pointLength = pointLength;\n\t\t\thash.spotLength = spotLength;\n\t\t\thash.rectAreaLength = rectAreaLength;\n\t\t\thash.hemiLength = hemiLength;\n\n\t\t\thash.numDirectionalShadows = numDirectionalShadows;\n\t\t\thash.numPointShadows = numPointShadows;\n\t\t\thash.numSpotShadows = numSpotShadows;\n\n\t\t\tstate.version = nextVersion ++;\n\n\t\t}\n\n\t}\n\n\tfunction setupView( lights, camera ) {\n\n\t\tlet directionalLength = 0;\n\t\tlet pointLength = 0;\n\t\tlet spotLength = 0;\n\t\tlet rectAreaLength = 0;\n\t\tlet hemiLength = 0;\n\n\t\tconst viewMatrix = camera.matrixWorldInverse;\n\n\t\tfor ( let i = 0, l = lights.length; i < l; i ++ ) {\n\n\t\t\tconst light = lights[ i ];\n\n\t\t\tif ( light.isDirectionalLight ) {\n\n\t\t\t\tconst uniforms = state.directional[ directionalLength ];\n\n\t\t\t\tuniforms.direction.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tvector3.setFromMatrixPosition( light.target.matrixWorld );\n\t\t\t\tuniforms.direction.sub( vector3 );\n\t\t\t\tuniforms.direction.transformDirection( viewMatrix );\n\n\t\t\t\tdirectionalLength ++;\n\n\t\t\t} else if ( light.isSpotLight ) {\n\n\t\t\t\tconst uniforms = state.spot[ spotLength ];\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.position.applyMatrix4( viewMatrix );\n\n\t\t\t\tuniforms.direction.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tvector3.setFromMatrixPosition( light.target.matrixWorld );\n\t\t\t\tuniforms.direction.sub( vector3 );\n\t\t\t\tuniforms.direction.transformDirection( viewMatrix );\n\n\t\t\t\tspotLength ++;\n\n\t\t\t} else if ( light.isRectAreaLight ) {\n\n\t\t\t\tconst uniforms = state.rectArea[ rectAreaLength ];\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.position.applyMatrix4( viewMatrix );\n\n\t\t\t\t// extract local rotation of light to derive width/height half vectors\n\t\t\t\tmatrix42.identity();\n\t\t\t\tmatrix4.copy( light.matrixWorld );\n\t\t\t\tmatrix4.premultiply( viewMatrix );\n\t\t\t\tmatrix42.extractRotation( matrix4 );\n\n\t\t\t\tuniforms.halfWidth.set( light.width * 0.5, 0.0, 0.0 );\n\t\t\t\tuniforms.halfHeight.set( 0.0, light.height * 0.5, 0.0 );\n\n\t\t\t\tuniforms.halfWidth.applyMatrix4( matrix42 );\n\t\t\t\tuniforms.halfHeight.applyMatrix4( matrix42 );\n\n\t\t\t\trectAreaLength ++;\n\n\t\t\t} else if ( light.isPointLight ) {\n\n\t\t\t\tconst uniforms = state.point[ pointLength ];\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.position.applyMatrix4( viewMatrix );\n\n\t\t\t\tpointLength ++;\n\n\t\t\t} else if ( light.isHemisphereLight ) {\n\n\t\t\t\tconst uniforms = state.hemi[ hemiLength ];\n\n\t\t\t\tuniforms.direction.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.direction.transformDirection( viewMatrix );\n\t\t\t\tuniforms.direction.normalize();\n\n\t\t\t\themiLength ++;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\treturn {\n\t\tsetup: setup,\n\t\tsetupView: setupView,\n\t\tstate: state\n\t};\n\n}\n\nfunction WebGLRenderState( extensions, capabilities ) {\n\n\tconst lights = new WebGLLights( extensions, capabilities );\n\n\tconst lightsArray = [];\n\tconst shadowsArray = [];\n\n\tfunction init() {\n\n\t\tlightsArray.length = 0;\n\t\tshadowsArray.length = 0;\n\n\t}\n\n\tfunction pushLight( light ) {\n\n\t\tlightsArray.push( light );\n\n\t}\n\n\tfunction pushShadow( shadowLight ) {\n\n\t\tshadowsArray.push( shadowLight );\n\n\t}\n\n\tfunction setupLights( physicallyCorrectLights ) {\n\n\t\tlights.setup( lightsArray, physicallyCorrectLights );\n\n\t}\n\n\tfunction setupLightsView( camera ) {\n\n\t\tlights.setupView( lightsArray, camera );\n\n\t}\n\n\tconst state = {\n\t\tlightsArray: lightsArray,\n\t\tshadowsArray: shadowsArray,\n\n\t\tlights: lights\n\t};\n\n\treturn {\n\t\tinit: init,\n\t\tstate: state,\n\t\tsetupLights: setupLights,\n\t\tsetupLightsView: setupLightsView,\n\n\t\tpushLight: pushLight,\n\t\tpushShadow: pushShadow\n\t};\n\n}\n\nfunction WebGLRenderStates( extensions, capabilities ) {\n\n\tlet renderStates = new WeakMap();\n\n\tfunction get( scene, renderCallDepth = 0 ) {\n\n\t\tlet renderState;\n\n\t\tif ( renderStates.has( scene ) === false ) {\n\n\t\t\trenderState = new WebGLRenderState( extensions, capabilities );\n\t\t\trenderStates.set( scene, [ renderState ] );\n\n\t\t} else {\n\n\t\t\tif ( renderCallDepth >= renderStates.get( scene ).length ) {\n\n\t\t\t\trenderState = new WebGLRenderState( extensions, capabilities );\n\t\t\t\trenderStates.get( scene ).push( renderState );\n\n\t\t\t} else {\n\n\t\t\t\trenderState = renderStates.get( scene )[ renderCallDepth ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn renderState;\n\n\t}\n\n\tfunction dispose() {\n\n\t\trenderStates = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\n/**\n * parameters = {\n *\n * opacity: <float>,\n *\n * map: new THREE.Texture( <Image> ),\n *\n * alphaMap: new THREE.Texture( <Image> ),\n *\n * displacementMap: new THREE.Texture( <Image> ),\n * displacementScale: <float>,\n * displacementBias: <float>,\n *\n * wireframe: <boolean>,\n * wireframeLinewidth: <float>\n * }\n */\n\nclass MeshDepthMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'MeshDepthMaterial';\n\n\t\tthis.depthPacking = BasicDepthPacking;\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.fog = false;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.depthPacking = source.depthPacking;\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshDepthMaterial.prototype.isMeshDepthMaterial = true;\n\n/**\n * parameters = {\n *\n * referencePosition: <float>,\n * nearDistance: <float>,\n * farDistance: <float>,\n *\n * map: new THREE.Texture( <Image> ),\n *\n * alphaMap: new THREE.Texture( <Image> ),\n *\n * displacementMap: new THREE.Texture( <Image> ),\n * displacementScale: <float>,\n * displacementBias: <float>\n *\n * }\n */\n\nclass MeshDistanceMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'MeshDistanceMaterial';\n\n\t\tthis.referencePosition = new Vector3();\n\t\tthis.nearDistance = 1;\n\t\tthis.farDistance = 1000;\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.fog = false;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.referencePosition.copy( source.referencePosition );\n\t\tthis.nearDistance = source.nearDistance;\n\t\tthis.farDistance = source.farDistance;\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshDistanceMaterial.prototype.isMeshDistanceMaterial = true;\n\nconst vertex = \"void main() {\\n\\tgl_Position = vec4( position, 1.0 );\\n}\";\n\nconst 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}\";\n\nfunction WebGLShadowMap( _renderer, _objects, _capabilities ) {\n\n\tlet _frustum = new Frustum();\n\n\tconst _shadowMapSize = new Vector2(),\n\t\t_viewportSize = new Vector2(),\n\n\t\t_viewport = new Vector4(),\n\n\t\t_depthMaterial = new MeshDepthMaterial( { depthPacking: RGBADepthPacking } ),\n\t\t_distanceMaterial = new MeshDistanceMaterial(),\n\n\t\t_materialCache = {},\n\n\t\t_maxTextureSize = _capabilities.maxTextureSize;\n\n\tconst shadowSide = { 0: BackSide, 1: FrontSide, 2: DoubleSide };\n\n\tconst shadowMaterialVertical = new ShaderMaterial( {\n\t\tdefines: {\n\t\t\tVSM_SAMPLES: 8\n\t\t},\n\t\tuniforms: {\n\t\t\tshadow_pass: { value: null },\n\t\t\tresolution: { value: new Vector2() },\n\t\t\tradius: { value: 4.0 }\n\t\t},\n\n\t\tvertexShader: vertex,\n\t\tfragmentShader: fragment\n\n\t} );\n\n\tconst shadowMaterialHorizontal = shadowMaterialVertical.clone();\n\tshadowMaterialHorizontal.defines.HORIZONTAL_PASS = 1;\n\n\tconst fullScreenTri = new BufferGeometry();\n\tfullScreenTri.setAttribute(\n\t\t'position',\n\t\tnew BufferAttribute(\n\t\t\tnew Float32Array( [ - 1, - 1, 0.5, 3, - 1, 0.5, - 1, 3, 0.5 ] ),\n\t\t\t3\n\t\t)\n\t);\n\n\tconst fullScreenMesh = new Mesh( fullScreenTri, shadowMaterialVertical );\n\n\tconst scope = this;\n\n\tthis.enabled = false;\n\n\tthis.autoUpdate = true;\n\tthis.needsUpdate = false;\n\n\tthis.type = PCFShadowMap;\n\n\tthis.render = function ( lights, scene, camera ) {\n\n\t\tif ( scope.enabled === false ) return;\n\t\tif ( scope.autoUpdate === false && scope.needsUpdate === false ) return;\n\n\t\tif ( lights.length === 0 ) return;\n\n\t\tconst currentRenderTarget = _renderer.getRenderTarget();\n\t\tconst activeCubeFace = _renderer.getActiveCubeFace();\n\t\tconst activeMipmapLevel = _renderer.getActiveMipmapLevel();\n\n\t\tconst _state = _renderer.state;\n\n\t\t// Set GL state for depth map.\n\t\t_state.setBlending( NoBlending );\n\t\t_state.buffers.color.setClear( 1, 1, 1, 1 );\n\t\t_state.buffers.depth.setTest( true );\n\t\t_state.setScissorTest( false );\n\n\t\t// render depth map\n\n\t\tfor ( let i = 0, il = lights.length; i < il; i ++ ) {\n\n\t\t\tconst light = lights[ i ];\n\t\t\tconst shadow = light.shadow;\n\n\t\t\tif ( shadow === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLShadowMap:', light, 'has no shadow.' );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tif ( shadow.autoUpdate === false && shadow.needsUpdate === false ) continue;\n\n\t\t\t_shadowMapSize.copy( shadow.mapSize );\n\n\t\t\tconst shadowFrameExtents = shadow.getFrameExtents();\n\n\t\t\t_shadowMapSize.multiply( shadowFrameExtents );\n\n\t\t\t_viewportSize.copy( shadow.mapSize );\n\n\t\t\tif ( _shadowMapSize.x > _maxTextureSize || _shadowMapSize.y > _maxTextureSize ) {\n\n\t\t\t\tif ( _shadowMapSize.x > _maxTextureSize ) {\n\n\t\t\t\t\t_viewportSize.x = Math.floor( _maxTextureSize / shadowFrameExtents.x );\n\t\t\t\t\t_shadowMapSize.x = _viewportSize.x * shadowFrameExtents.x;\n\t\t\t\t\tshadow.mapSize.x = _viewportSize.x;\n\n\t\t\t\t}\n\n\t\t\t\tif ( _shadowMapSize.y > _maxTextureSize ) {\n\n\t\t\t\t\t_viewportSize.y = Math.floor( _maxTextureSize / shadowFrameExtents.y );\n\t\t\t\t\t_shadowMapSize.y = _viewportSize.y * shadowFrameExtents.y;\n\t\t\t\t\tshadow.mapSize.y = _viewportSize.y;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( shadow.map === null && ! shadow.isPointLightShadow && this.type === VSMShadowMap ) {\n\n\t\t\t\tconst pars = { minFilter: LinearFilter, magFilter: LinearFilter, format: RGBAFormat };\n\n\t\t\t\tshadow.map = new WebGLRenderTarget( _shadowMapSize.x, _shadowMapSize.y, pars );\n\t\t\t\tshadow.map.texture.name = light.name + '.shadowMap';\n\n\t\t\t\tshadow.mapPass = new WebGLRenderTarget( _shadowMapSize.x, _shadowMapSize.y, pars );\n\n\t\t\t\tshadow.camera.updateProjectionMatrix();\n\n\t\t\t}\n\n\t\t\tif ( shadow.map === null ) {\n\n\t\t\t\tconst pars = { minFilter: NearestFilter, magFilter: NearestFilter, format: RGBAFormat };\n\n\t\t\t\tshadow.map = new WebGLRenderTarget( _shadowMapSize.x, _shadowMapSize.y, pars );\n\t\t\t\tshadow.map.texture.name = light.name + '.shadowMap';\n\n\t\t\t\tshadow.camera.updateProjectionMatrix();\n\n\t\t\t}\n\n\t\t\t_renderer.setRenderTarget( shadow.map );\n\t\t\t_renderer.clear();\n\n\t\t\tconst viewportCount = shadow.getViewportCount();\n\n\t\t\tfor ( let vp = 0; vp < viewportCount; vp ++ ) {\n\n\t\t\t\tconst viewport = shadow.getViewport( vp );\n\n\t\t\t\t_viewport.set(\n\t\t\t\t\t_viewportSize.x * viewport.x,\n\t\t\t\t\t_viewportSize.y * viewport.y,\n\t\t\t\t\t_viewportSize.x * viewport.z,\n\t\t\t\t\t_viewportSize.y * viewport.w\n\t\t\t\t);\n\n\t\t\t\t_state.viewport( _viewport );\n\n\t\t\t\tshadow.updateMatrices( light, vp );\n\n\t\t\t\t_frustum = shadow.getFrustum();\n\n\t\t\t\trenderObject( scene, camera, shadow.camera, light, this.type );\n\n\t\t\t}\n\n\t\t\t// do blur pass for VSM\n\n\t\t\tif ( ! shadow.isPointLightShadow && this.type === VSMShadowMap ) {\n\n\t\t\t\tVSMPass( shadow, camera );\n\n\t\t\t}\n\n\t\t\tshadow.needsUpdate = false;\n\n\t\t}\n\n\t\tscope.needsUpdate = false;\n\n\t\t_renderer.setRenderTarget( currentRenderTarget, activeCubeFace, activeMipmapLevel );\n\n\t};\n\n\tfunction VSMPass( shadow, camera ) {\n\n\t\tconst geometry = _objects.update( fullScreenMesh );\n\n\t\tif ( shadowMaterialVertical.defines.VSM_SAMPLES !== shadow.blurSamples ) {\n\n\t\t\tshadowMaterialVertical.defines.VSM_SAMPLES = shadow.blurSamples;\n\t\t\tshadowMaterialHorizontal.defines.VSM_SAMPLES = shadow.blurSamples;\n\n\t\t\tshadowMaterialVertical.needsUpdate = true;\n\t\t\tshadowMaterialHorizontal.needsUpdate = true;\n\n\t\t}\n\n\t\t// vertical pass\n\n\t\tshadowMaterialVertical.uniforms.shadow_pass.value = shadow.map.texture;\n\t\tshadowMaterialVertical.uniforms.resolution.value = shadow.mapSize;\n\t\tshadowMaterialVertical.uniforms.radius.value = shadow.radius;\n\t\t_renderer.setRenderTarget( shadow.mapPass );\n\t\t_renderer.clear();\n\t\t_renderer.renderBufferDirect( camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null );\n\n\t\t// horizontal pass\n\n\t\tshadowMaterialHorizontal.uniforms.shadow_pass.value = shadow.mapPass.texture;\n\t\tshadowMaterialHorizontal.uniforms.resolution.value = shadow.mapSize;\n\t\tshadowMaterialHorizontal.uniforms.radius.value = shadow.radius;\n\t\t_renderer.setRenderTarget( shadow.map );\n\t\t_renderer.clear();\n\t\t_renderer.renderBufferDirect( camera, null, geometry, shadowMaterialHorizontal, fullScreenMesh, null );\n\n\t}\n\n\tfunction getDepthMaterial( object, geometry, material, light, shadowCameraNear, shadowCameraFar, type ) {\n\n\t\tlet result = null;\n\n\t\tconst customMaterial = ( light.isPointLight === true ) ? object.customDistanceMaterial : object.customDepthMaterial;\n\n\t\tif ( customMaterial !== undefined ) {\n\n\t\t\tresult = customMaterial;\n\n\t\t} else {\n\n\t\t\tresult = ( light.isPointLight === true ) ? _distanceMaterial : _depthMaterial;\n\n\t\t}\n\n\t\tif ( ( _renderer.localClippingEnabled && material.clipShadows === true && material.clippingPlanes.length !== 0 ) ||\n\t\t\t( material.displacementMap && material.displacementScale !== 0 ) ||\n\t\t\t( material.alphaMap && material.alphaTest > 0 ) ) {\n\n\t\t\t// in this case we need a unique material instance reflecting the\n\t\t\t// appropriate state\n\n\t\t\tconst keyA = result.uuid, keyB = material.uuid;\n\n\t\t\tlet materialsForVariant = _materialCache[ keyA ];\n\n\t\t\tif ( materialsForVariant === undefined ) {\n\n\t\t\t\tmaterialsForVariant = {};\n\t\t\t\t_materialCache[ keyA ] = materialsForVariant;\n\n\t\t\t}\n\n\t\t\tlet cachedMaterial = materialsForVariant[ keyB ];\n\n\t\t\tif ( cachedMaterial === undefined ) {\n\n\t\t\t\tcachedMaterial = result.clone();\n\t\t\t\tmaterialsForVariant[ keyB ] = cachedMaterial;\n\n\t\t\t}\n\n\t\t\tresult = cachedMaterial;\n\n\t\t}\n\n\t\tresult.visible = material.visible;\n\t\tresult.wireframe = material.wireframe;\n\n\t\tif ( type === VSMShadowMap ) {\n\n\t\t\tresult.side = ( material.shadowSide !== null ) ? material.shadowSide : material.side;\n\n\t\t} else {\n\n\t\t\tresult.side = ( material.shadowSide !== null ) ? material.shadowSide : shadowSide[ material.side ];\n\n\t\t}\n\n\t\tresult.alphaMap = material.alphaMap;\n\t\tresult.alphaTest = material.alphaTest;\n\n\t\tresult.clipShadows = material.clipShadows;\n\t\tresult.clippingPlanes = material.clippingPlanes;\n\t\tresult.clipIntersection = material.clipIntersection;\n\n\t\tresult.displacementMap = material.displacementMap;\n\t\tresult.displacementScale = material.displacementScale;\n\t\tresult.displacementBias = material.displacementBias;\n\n\t\tresult.wireframeLinewidth = material.wireframeLinewidth;\n\t\tresult.linewidth = material.linewidth;\n\n\t\tif ( light.isPointLight === true && result.isMeshDistanceMaterial === true ) {\n\n\t\t\tresult.referencePosition.setFromMatrixPosition( light.matrixWorld );\n\t\t\tresult.nearDistance = shadowCameraNear;\n\t\t\tresult.farDistance = shadowCameraFar;\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\tfunction renderObject( object, camera, shadowCamera, light, type ) {\n\n\t\tif ( object.visible === false ) return;\n\n\t\tconst visible = object.layers.test( camera.layers );\n\n\t\tif ( visible && ( object.isMesh || object.isLine || object.isPoints ) ) {\n\n\t\t\tif ( ( object.castShadow || ( object.receiveShadow && type === VSMShadowMap ) ) && ( ! object.frustumCulled || _frustum.intersectsObject( object ) ) ) {\n\n\t\t\t\tobject.modelViewMatrix.multiplyMatrices( shadowCamera.matrixWorldInverse, object.matrixWorld );\n\n\t\t\t\tconst geometry = _objects.update( object );\n\t\t\t\tconst material = object.material;\n\n\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\tconst groups = geometry.groups;\n\n\t\t\t\t\tfor ( let k = 0, kl = groups.length; k < kl; k ++ ) {\n\n\t\t\t\t\t\tconst group = groups[ k ];\n\t\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\t\tif ( groupMaterial && groupMaterial.visible ) {\n\n\t\t\t\t\t\t\tconst depthMaterial = getDepthMaterial( object, geometry, groupMaterial, light, shadowCamera.near, shadowCamera.far, type );\n\n\t\t\t\t\t\t\t_renderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, group );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( material.visible ) {\n\n\t\t\t\t\tconst depthMaterial = getDepthMaterial( object, geometry, material, light, shadowCamera.near, shadowCamera.far, type );\n\n\t\t\t\t\t_renderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, null );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\trenderObject( children[ i ], camera, shadowCamera, light, type );\n\n\t\t}\n\n\t}\n\n}\n\nfunction WebGLState( gl, extensions, capabilities ) {\n\n\tconst isWebGL2 = capabilities.isWebGL2;\n\n\tfunction ColorBuffer() {\n\n\t\tlet locked = false;\n\n\t\tconst color = new Vector4();\n\t\tlet currentColorMask = null;\n\t\tconst currentColorClear = new Vector4( 0, 0, 0, 0 );\n\n\t\treturn {\n\n\t\t\tsetMask: function ( colorMask ) {\n\n\t\t\t\tif ( currentColorMask !== colorMask && ! locked ) {\n\n\t\t\t\t\tgl.colorMask( colorMask, colorMask, colorMask, colorMask );\n\t\t\t\t\tcurrentColorMask = colorMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetLocked: function ( lock ) {\n\n\t\t\t\tlocked = lock;\n\n\t\t\t},\n\n\t\t\tsetClear: function ( r, g, b, a, premultipliedAlpha ) {\n\n\t\t\t\tif ( premultipliedAlpha === true ) {\n\n\t\t\t\t\tr *= a; g *= a; b *= a;\n\n\t\t\t\t}\n\n\t\t\t\tcolor.set( r, g, b, a );\n\n\t\t\t\tif ( currentColorClear.equals( color ) === false ) {\n\n\t\t\t\t\tgl.clearColor( r, g, b, a );\n\t\t\t\t\tcurrentColorClear.copy( color );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\treset: function () {\n\n\t\t\t\tlocked = false;\n\n\t\t\t\tcurrentColorMask = null;\n\t\t\t\tcurrentColorClear.set( - 1, 0, 0, 0 ); // set to invalid state\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\tfunction DepthBuffer() {\n\n\t\tlet locked = false;\n\n\t\tlet currentDepthMask = null;\n\t\tlet currentDepthFunc = null;\n\t\tlet currentDepthClear = null;\n\n\t\treturn {\n\n\t\t\tsetTest: function ( depthTest ) {\n\n\t\t\t\tif ( depthTest ) {\n\n\t\t\t\t\tenable( 2929 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tdisable( 2929 );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetMask: function ( depthMask ) {\n\n\t\t\t\tif ( currentDepthMask !== depthMask && ! locked ) {\n\n\t\t\t\t\tgl.depthMask( depthMask );\n\t\t\t\t\tcurrentDepthMask = depthMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetFunc: function ( depthFunc ) {\n\n\t\t\t\tif ( currentDepthFunc !== depthFunc ) {\n\n\t\t\t\t\tif ( depthFunc ) {\n\n\t\t\t\t\t\tswitch ( depthFunc ) {\n\n\t\t\t\t\t\t\tcase NeverDepth:\n\n\t\t\t\t\t\t\t\tgl.depthFunc( 512 );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase AlwaysDepth:\n\n\t\t\t\t\t\t\t\tgl.depthFunc( 519 );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase LessDepth:\n\n\t\t\t\t\t\t\t\tgl.depthFunc( 513 );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase LessEqualDepth:\n\n\t\t\t\t\t\t\t\tgl.depthFunc( 515 );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase EqualDepth:\n\n\t\t\t\t\t\t\t\tgl.depthFunc( 514 );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase GreaterEqualDepth:\n\n\t\t\t\t\t\t\t\tgl.depthFunc( 518 );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase GreaterDepth:\n\n\t\t\t\t\t\t\t\tgl.depthFunc( 516 );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase NotEqualDepth:\n\n\t\t\t\t\t\t\t\tgl.depthFunc( 517 );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tdefault:\n\n\t\t\t\t\t\t\t\tgl.depthFunc( 515 );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tgl.depthFunc( 515 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrentDepthFunc = depthFunc;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetLocked: function ( lock ) {\n\n\t\t\t\tlocked = lock;\n\n\t\t\t},\n\n\t\t\tsetClear: function ( depth ) {\n\n\t\t\t\tif ( currentDepthClear !== depth ) {\n\n\t\t\t\t\tgl.clearDepth( depth );\n\t\t\t\t\tcurrentDepthClear = depth;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\treset: function () {\n\n\t\t\t\tlocked = false;\n\n\t\t\t\tcurrentDepthMask = null;\n\t\t\t\tcurrentDepthFunc = null;\n\t\t\t\tcurrentDepthClear = null;\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\tfunction StencilBuffer() {\n\n\t\tlet locked = false;\n\n\t\tlet currentStencilMask = null;\n\t\tlet currentStencilFunc = null;\n\t\tlet currentStencilRef = null;\n\t\tlet currentStencilFuncMask = null;\n\t\tlet currentStencilFail = null;\n\t\tlet currentStencilZFail = null;\n\t\tlet currentStencilZPass = null;\n\t\tlet currentStencilClear = null;\n\n\t\treturn {\n\n\t\t\tsetTest: function ( stencilTest ) {\n\n\t\t\t\tif ( ! locked ) {\n\n\t\t\t\t\tif ( stencilTest ) {\n\n\t\t\t\t\t\tenable( 2960 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tdisable( 2960 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetMask: function ( stencilMask ) {\n\n\t\t\t\tif ( currentStencilMask !== stencilMask && ! locked ) {\n\n\t\t\t\t\tgl.stencilMask( stencilMask );\n\t\t\t\t\tcurrentStencilMask = stencilMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetFunc: function ( stencilFunc, stencilRef, stencilMask ) {\n\n\t\t\t\tif ( currentStencilFunc !== stencilFunc ||\n\t\t\t\t currentStencilRef !== stencilRef ||\n\t\t\t\t currentStencilFuncMask !== stencilMask ) {\n\n\t\t\t\t\tgl.stencilFunc( stencilFunc, stencilRef, stencilMask );\n\n\t\t\t\t\tcurrentStencilFunc = stencilFunc;\n\t\t\t\t\tcurrentStencilRef = stencilRef;\n\t\t\t\t\tcurrentStencilFuncMask = stencilMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetOp: function ( stencilFail, stencilZFail, stencilZPass ) {\n\n\t\t\t\tif ( currentStencilFail !== stencilFail ||\n\t\t\t\t currentStencilZFail !== stencilZFail ||\n\t\t\t\t currentStencilZPass !== stencilZPass ) {\n\n\t\t\t\t\tgl.stencilOp( stencilFail, stencilZFail, stencilZPass );\n\n\t\t\t\t\tcurrentStencilFail = stencilFail;\n\t\t\t\t\tcurrentStencilZFail = stencilZFail;\n\t\t\t\t\tcurrentStencilZPass = stencilZPass;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetLocked: function ( lock ) {\n\n\t\t\t\tlocked = lock;\n\n\t\t\t},\n\n\t\t\tsetClear: function ( stencil ) {\n\n\t\t\t\tif ( currentStencilClear !== stencil ) {\n\n\t\t\t\t\tgl.clearStencil( stencil );\n\t\t\t\t\tcurrentStencilClear = stencil;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\treset: function () {\n\n\t\t\t\tlocked = false;\n\n\t\t\t\tcurrentStencilMask = null;\n\t\t\t\tcurrentStencilFunc = null;\n\t\t\t\tcurrentStencilRef = null;\n\t\t\t\tcurrentStencilFuncMask = null;\n\t\t\t\tcurrentStencilFail = null;\n\t\t\t\tcurrentStencilZFail = null;\n\t\t\t\tcurrentStencilZPass = null;\n\t\t\t\tcurrentStencilClear = null;\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\t//\n\n\tconst colorBuffer = new ColorBuffer();\n\tconst depthBuffer = new DepthBuffer();\n\tconst stencilBuffer = new StencilBuffer();\n\n\tlet enabledCapabilities = {};\n\n\tlet currentBoundFramebuffers = {};\n\tlet currentDrawbuffers = new WeakMap();\n\tlet defaultDrawbuffers = [];\n\n\tlet currentProgram = null;\n\n\tlet currentBlendingEnabled = false;\n\tlet currentBlending = null;\n\tlet currentBlendEquation = null;\n\tlet currentBlendSrc = null;\n\tlet currentBlendDst = null;\n\tlet currentBlendEquationAlpha = null;\n\tlet currentBlendSrcAlpha = null;\n\tlet currentBlendDstAlpha = null;\n\tlet currentPremultipledAlpha = false;\n\n\tlet currentFlipSided = null;\n\tlet currentCullFace = null;\n\n\tlet currentLineWidth = null;\n\n\tlet currentPolygonOffsetFactor = null;\n\tlet currentPolygonOffsetUnits = null;\n\n\tconst maxTextures = gl.getParameter( 35661 );\n\n\tlet lineWidthAvailable = false;\n\tlet version = 0;\n\tconst glVersion = gl.getParameter( 7938 );\n\n\tif ( glVersion.indexOf( 'WebGL' ) !== - 1 ) {\n\n\t\tversion = parseFloat( /^WebGL (\\d)/.exec( glVersion )[ 1 ] );\n\t\tlineWidthAvailable = ( version >= 1.0 );\n\n\t} else if ( glVersion.indexOf( 'OpenGL ES' ) !== - 1 ) {\n\n\t\tversion = parseFloat( /^OpenGL ES (\\d)/.exec( glVersion )[ 1 ] );\n\t\tlineWidthAvailable = ( version >= 2.0 );\n\n\t}\n\n\tlet currentTextureSlot = null;\n\tlet currentBoundTextures = {};\n\n\tconst scissorParam = gl.getParameter( 3088 );\n\tconst viewportParam = gl.getParameter( 2978 );\n\n\tconst currentScissor = new Vector4().fromArray( scissorParam );\n\tconst currentViewport = new Vector4().fromArray( viewportParam );\n\n\tfunction createTexture( type, target, count ) {\n\n\t\tconst data = new Uint8Array( 4 ); // 4 is required to match default unpack alignment of 4.\n\t\tconst texture = gl.createTexture();\n\n\t\tgl.bindTexture( type, texture );\n\t\tgl.texParameteri( type, 10241, 9728 );\n\t\tgl.texParameteri( type, 10240, 9728 );\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tgl.texImage2D( target + i, 0, 6408, 1, 1, 0, 6408, 5121, data );\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tconst emptyTextures = {};\n\temptyTextures[ 3553 ] = createTexture( 3553, 3553, 1 );\n\temptyTextures[ 34067 ] = createTexture( 34067, 34069, 6 );\n\n\t// init\n\n\tcolorBuffer.setClear( 0, 0, 0, 1 );\n\tdepthBuffer.setClear( 1 );\n\tstencilBuffer.setClear( 0 );\n\n\tenable( 2929 );\n\tdepthBuffer.setFunc( LessEqualDepth );\n\n\tsetFlipSided( false );\n\tsetCullFace( CullFaceBack );\n\tenable( 2884 );\n\n\tsetBlending( NoBlending );\n\n\t//\n\n\tfunction enable( id ) {\n\n\t\tif ( enabledCapabilities[ id ] !== true ) {\n\n\t\t\tgl.enable( id );\n\t\t\tenabledCapabilities[ id ] = true;\n\n\t\t}\n\n\t}\n\n\tfunction disable( id ) {\n\n\t\tif ( enabledCapabilities[ id ] !== false ) {\n\n\t\t\tgl.disable( id );\n\t\t\tenabledCapabilities[ id ] = false;\n\n\t\t}\n\n\t}\n\n\tfunction bindFramebuffer( target, framebuffer ) {\n\n\t\tif ( currentBoundFramebuffers[ target ] !== framebuffer ) {\n\n\t\t\tgl.bindFramebuffer( target, framebuffer );\n\n\t\t\tcurrentBoundFramebuffers[ target ] = framebuffer;\n\n\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\t// 36009 is equivalent to 36160\n\n\t\t\t\tif ( target === 36009 ) {\n\n\t\t\t\t\tcurrentBoundFramebuffers[ 36160 ] = framebuffer;\n\n\t\t\t\t}\n\n\t\t\t\tif ( target === 36160 ) {\n\n\t\t\t\t\tcurrentBoundFramebuffers[ 36009 ] = framebuffer;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tfunction drawBuffers( renderTarget, framebuffer ) {\n\n\t\tlet drawBuffers = defaultDrawbuffers;\n\n\t\tlet needsUpdate = false;\n\n\t\tif ( renderTarget ) {\n\n\t\t\tdrawBuffers = currentDrawbuffers.get( framebuffer );\n\n\t\t\tif ( drawBuffers === undefined ) {\n\n\t\t\t\tdrawBuffers = [];\n\t\t\t\tcurrentDrawbuffers.set( framebuffer, drawBuffers );\n\n\t\t\t}\n\n\t\t\tif ( renderTarget.isWebGLMultipleRenderTargets ) {\n\n\t\t\t\tconst textures = renderTarget.texture;\n\n\t\t\t\tif ( drawBuffers.length !== textures.length || drawBuffers[ 0 ] !== 36064 ) {\n\n\t\t\t\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tdrawBuffers[ i ] = 36064 + i;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tdrawBuffers.length = textures.length;\n\n\t\t\t\t\tneedsUpdate = true;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( drawBuffers[ 0 ] !== 36064 ) {\n\n\t\t\t\t\tdrawBuffers[ 0 ] = 36064;\n\n\t\t\t\t\tneedsUpdate = true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( drawBuffers[ 0 ] !== 1029 ) {\n\n\t\t\t\tdrawBuffers[ 0 ] = 1029;\n\n\t\t\t\tneedsUpdate = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( needsUpdate ) {\n\n\t\t\tif ( capabilities.isWebGL2 ) {\n\n\t\t\t\tgl.drawBuffers( drawBuffers );\n\n\t\t\t} else {\n\n\t\t\t\textensions.get( 'WEBGL_draw_buffers' ).drawBuffersWEBGL( drawBuffers );\n\n\t\t\t}\n\n\t\t}\n\n\n\t}\n\n\tfunction useProgram( program ) {\n\n\t\tif ( currentProgram !== program ) {\n\n\t\t\tgl.useProgram( program );\n\n\t\t\tcurrentProgram = program;\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tconst equationToGL = {\n\t\t[ AddEquation ]: 32774,\n\t\t[ SubtractEquation ]: 32778,\n\t\t[ ReverseSubtractEquation ]: 32779\n\t};\n\n\tif ( isWebGL2 ) {\n\n\t\tequationToGL[ MinEquation ] = 32775;\n\t\tequationToGL[ MaxEquation ] = 32776;\n\n\t} else {\n\n\t\tconst extension = extensions.get( 'EXT_blend_minmax' );\n\n\t\tif ( extension !== null ) {\n\n\t\t\tequationToGL[ MinEquation ] = extension.MIN_EXT;\n\t\t\tequationToGL[ MaxEquation ] = extension.MAX_EXT;\n\n\t\t}\n\n\t}\n\n\tconst factorToGL = {\n\t\t[ ZeroFactor ]: 0,\n\t\t[ OneFactor ]: 1,\n\t\t[ SrcColorFactor ]: 768,\n\t\t[ SrcAlphaFactor ]: 770,\n\t\t[ SrcAlphaSaturateFactor ]: 776,\n\t\t[ DstColorFactor ]: 774,\n\t\t[ DstAlphaFactor ]: 772,\n\t\t[ OneMinusSrcColorFactor ]: 769,\n\t\t[ OneMinusSrcAlphaFactor ]: 771,\n\t\t[ OneMinusDstColorFactor ]: 775,\n\t\t[ OneMinusDstAlphaFactor ]: 773\n\t};\n\n\tfunction setBlending( blending, blendEquation, blendSrc, blendDst, blendEquationAlpha, blendSrcAlpha, blendDstAlpha, premultipliedAlpha ) {\n\n\t\tif ( blending === NoBlending ) {\n\n\t\t\tif ( currentBlendingEnabled === true ) {\n\n\t\t\t\tdisable( 3042 );\n\t\t\t\tcurrentBlendingEnabled = false;\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( currentBlendingEnabled === false ) {\n\n\t\t\tenable( 3042 );\n\t\t\tcurrentBlendingEnabled = true;\n\n\t\t}\n\n\t\tif ( blending !== CustomBlending ) {\n\n\t\t\tif ( blending !== currentBlending || premultipliedAlpha !== currentPremultipledAlpha ) {\n\n\t\t\t\tif ( currentBlendEquation !== AddEquation || currentBlendEquationAlpha !== AddEquation ) {\n\n\t\t\t\t\tgl.blendEquation( 32774 );\n\n\t\t\t\t\tcurrentBlendEquation = AddEquation;\n\t\t\t\t\tcurrentBlendEquationAlpha = AddEquation;\n\n\t\t\t\t}\n\n\t\t\t\tif ( premultipliedAlpha ) {\n\n\t\t\t\t\tswitch ( blending ) {\n\n\t\t\t\t\t\tcase NormalBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( 1, 771, 1, 771 );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase AdditiveBlending:\n\t\t\t\t\t\t\tgl.blendFunc( 1, 1 );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase SubtractiveBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( 0, 769, 0, 1 );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase MultiplyBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( 0, 768, 0, 770 );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tconsole.error( 'THREE.WebGLState: Invalid blending: ', blending );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tswitch ( blending ) {\n\n\t\t\t\t\t\tcase NormalBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( 770, 771, 1, 771 );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase AdditiveBlending:\n\t\t\t\t\t\t\tgl.blendFunc( 770, 1 );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase SubtractiveBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( 0, 769, 0, 1 );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase MultiplyBlending:\n\t\t\t\t\t\t\tgl.blendFunc( 0, 768 );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tconsole.error( 'THREE.WebGLState: Invalid blending: ', blending );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tcurrentBlendSrc = null;\n\t\t\t\tcurrentBlendDst = null;\n\t\t\t\tcurrentBlendSrcAlpha = null;\n\t\t\t\tcurrentBlendDstAlpha = null;\n\n\t\t\t\tcurrentBlending = blending;\n\t\t\t\tcurrentPremultipledAlpha = premultipliedAlpha;\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t// custom blending\n\n\t\tblendEquationAlpha = blendEquationAlpha || blendEquation;\n\t\tblendSrcAlpha = blendSrcAlpha || blendSrc;\n\t\tblendDstAlpha = blendDstAlpha || blendDst;\n\n\t\tif ( blendEquation !== currentBlendEquation || blendEquationAlpha !== currentBlendEquationAlpha ) {\n\n\t\t\tgl.blendEquationSeparate( equationToGL[ blendEquation ], equationToGL[ blendEquationAlpha ] );\n\n\t\t\tcurrentBlendEquation = blendEquation;\n\t\t\tcurrentBlendEquationAlpha = blendEquationAlpha;\n\n\t\t}\n\n\t\tif ( blendSrc !== currentBlendSrc || blendDst !== currentBlendDst || blendSrcAlpha !== currentBlendSrcAlpha || blendDstAlpha !== currentBlendDstAlpha ) {\n\n\t\t\tgl.blendFuncSeparate( factorToGL[ blendSrc ], factorToGL[ blendDst ], factorToGL[ blendSrcAlpha ], factorToGL[ blendDstAlpha ] );\n\n\t\t\tcurrentBlendSrc = blendSrc;\n\t\t\tcurrentBlendDst = blendDst;\n\t\t\tcurrentBlendSrcAlpha = blendSrcAlpha;\n\t\t\tcurrentBlendDstAlpha = blendDstAlpha;\n\n\t\t}\n\n\t\tcurrentBlending = blending;\n\t\tcurrentPremultipledAlpha = null;\n\n\t}\n\n\tfunction setMaterial( material, frontFaceCW ) {\n\n\t\tmaterial.side === DoubleSide\n\t\t\t? disable( 2884 )\n\t\t\t: enable( 2884 );\n\n\t\tlet flipSided = ( material.side === BackSide );\n\t\tif ( frontFaceCW ) flipSided = ! flipSided;\n\n\t\tsetFlipSided( flipSided );\n\n\t\t( material.blending === NormalBlending && material.transparent === false )\n\t\t\t? setBlending( NoBlending )\n\t\t\t: setBlending( material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.premultipliedAlpha );\n\n\t\tdepthBuffer.setFunc( material.depthFunc );\n\t\tdepthBuffer.setTest( material.depthTest );\n\t\tdepthBuffer.setMask( material.depthWrite );\n\t\tcolorBuffer.setMask( material.colorWrite );\n\n\t\tconst stencilWrite = material.stencilWrite;\n\t\tstencilBuffer.setTest( stencilWrite );\n\t\tif ( stencilWrite ) {\n\n\t\t\tstencilBuffer.setMask( material.stencilWriteMask );\n\t\t\tstencilBuffer.setFunc( material.stencilFunc, material.stencilRef, material.stencilFuncMask );\n\t\t\tstencilBuffer.setOp( material.stencilFail, material.stencilZFail, material.stencilZPass );\n\n\t\t}\n\n\t\tsetPolygonOffset( material.polygonOffset, material.polygonOffsetFactor, material.polygonOffsetUnits );\n\n\t\tmaterial.alphaToCoverage === true\n\t\t\t? enable( 32926 )\n\t\t\t: disable( 32926 );\n\n\t}\n\n\t//\n\n\tfunction setFlipSided( flipSided ) {\n\n\t\tif ( currentFlipSided !== flipSided ) {\n\n\t\t\tif ( flipSided ) {\n\n\t\t\t\tgl.frontFace( 2304 );\n\n\t\t\t} else {\n\n\t\t\t\tgl.frontFace( 2305 );\n\n\t\t\t}\n\n\t\t\tcurrentFlipSided = flipSided;\n\n\t\t}\n\n\t}\n\n\tfunction setCullFace( cullFace ) {\n\n\t\tif ( cullFace !== CullFaceNone ) {\n\n\t\t\tenable( 2884 );\n\n\t\t\tif ( cullFace !== currentCullFace ) {\n\n\t\t\t\tif ( cullFace === CullFaceBack ) {\n\n\t\t\t\t\tgl.cullFace( 1029 );\n\n\t\t\t\t} else if ( cullFace === CullFaceFront ) {\n\n\t\t\t\t\tgl.cullFace( 1028 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tgl.cullFace( 1032 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tdisable( 2884 );\n\n\t\t}\n\n\t\tcurrentCullFace = cullFace;\n\n\t}\n\n\tfunction setLineWidth( width ) {\n\n\t\tif ( width !== currentLineWidth ) {\n\n\t\t\tif ( lineWidthAvailable ) gl.lineWidth( width );\n\n\t\t\tcurrentLineWidth = width;\n\n\t\t}\n\n\t}\n\n\tfunction setPolygonOffset( polygonOffset, factor, units ) {\n\n\t\tif ( polygonOffset ) {\n\n\t\t\tenable( 32823 );\n\n\t\t\tif ( currentPolygonOffsetFactor !== factor || currentPolygonOffsetUnits !== units ) {\n\n\t\t\t\tgl.polygonOffset( factor, units );\n\n\t\t\t\tcurrentPolygonOffsetFactor = factor;\n\t\t\t\tcurrentPolygonOffsetUnits = units;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tdisable( 32823 );\n\n\t\t}\n\n\t}\n\n\tfunction setScissorTest( scissorTest ) {\n\n\t\tif ( scissorTest ) {\n\n\t\t\tenable( 3089 );\n\n\t\t} else {\n\n\t\t\tdisable( 3089 );\n\n\t\t}\n\n\t}\n\n\t// texture\n\n\tfunction activeTexture( webglSlot ) {\n\n\t\tif ( webglSlot === undefined ) webglSlot = 33984 + maxTextures - 1;\n\n\t\tif ( currentTextureSlot !== webglSlot ) {\n\n\t\t\tgl.activeTexture( webglSlot );\n\t\t\tcurrentTextureSlot = webglSlot;\n\n\t\t}\n\n\t}\n\n\tfunction bindTexture( webglType, webglTexture ) {\n\n\t\tif ( currentTextureSlot === null ) {\n\n\t\t\tactiveTexture();\n\n\t\t}\n\n\t\tlet boundTexture = currentBoundTextures[ currentTextureSlot ];\n\n\t\tif ( boundTexture === undefined ) {\n\n\t\t\tboundTexture = { type: undefined, texture: undefined };\n\t\t\tcurrentBoundTextures[ currentTextureSlot ] = boundTexture;\n\n\t\t}\n\n\t\tif ( boundTexture.type !== webglType || boundTexture.texture !== webglTexture ) {\n\n\t\t\tgl.bindTexture( webglType, webglTexture || emptyTextures[ webglType ] );\n\n\t\t\tboundTexture.type = webglType;\n\t\t\tboundTexture.texture = webglTexture;\n\n\t\t}\n\n\t}\n\n\tfunction unbindTexture() {\n\n\t\tconst boundTexture = currentBoundTextures[ currentTextureSlot ];\n\n\t\tif ( boundTexture !== undefined && boundTexture.type !== undefined ) {\n\n\t\t\tgl.bindTexture( boundTexture.type, null );\n\n\t\t\tboundTexture.type = undefined;\n\t\t\tboundTexture.texture = undefined;\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texSubImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.texSubImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texSubImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.texSubImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexSubImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexSubImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texStorage2D() {\n\n\t\ttry {\n\n\t\t\tgl.texStorage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texStorage3D() {\n\n\t\ttry {\n\n\t\t\tgl.texStorage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.texImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.texImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\t//\n\n\tfunction scissor( scissor ) {\n\n\t\tif ( currentScissor.equals( scissor ) === false ) {\n\n\t\t\tgl.scissor( scissor.x, scissor.y, scissor.z, scissor.w );\n\t\t\tcurrentScissor.copy( scissor );\n\n\t\t}\n\n\t}\n\n\tfunction viewport( viewport ) {\n\n\t\tif ( currentViewport.equals( viewport ) === false ) {\n\n\t\t\tgl.viewport( viewport.x, viewport.y, viewport.z, viewport.w );\n\t\t\tcurrentViewport.copy( viewport );\n\n\t\t}\n\n\t}\n\n\t//\n\n\tfunction reset() {\n\n\t\t// reset state\n\n\t\tgl.disable( 3042 );\n\t\tgl.disable( 2884 );\n\t\tgl.disable( 2929 );\n\t\tgl.disable( 32823 );\n\t\tgl.disable( 3089 );\n\t\tgl.disable( 2960 );\n\t\tgl.disable( 32926 );\n\n\t\tgl.blendEquation( 32774 );\n\t\tgl.blendFunc( 1, 0 );\n\t\tgl.blendFuncSeparate( 1, 0, 1, 0 );\n\n\t\tgl.colorMask( true, true, true, true );\n\t\tgl.clearColor( 0, 0, 0, 0 );\n\n\t\tgl.depthMask( true );\n\t\tgl.depthFunc( 513 );\n\t\tgl.clearDepth( 1 );\n\n\t\tgl.stencilMask( 0xffffffff );\n\t\tgl.stencilFunc( 519, 0, 0xffffffff );\n\t\tgl.stencilOp( 7680, 7680, 7680 );\n\t\tgl.clearStencil( 0 );\n\n\t\tgl.cullFace( 1029 );\n\t\tgl.frontFace( 2305 );\n\n\t\tgl.polygonOffset( 0, 0 );\n\n\t\tgl.activeTexture( 33984 );\n\n\t\tgl.bindFramebuffer( 36160, null );\n\n\t\tif ( isWebGL2 === true ) {\n\n\t\t\tgl.bindFramebuffer( 36009, null );\n\t\t\tgl.bindFramebuffer( 36008, null );\n\n\t\t}\n\n\t\tgl.useProgram( null );\n\n\t\tgl.lineWidth( 1 );\n\n\t\tgl.scissor( 0, 0, gl.canvas.width, gl.canvas.height );\n\t\tgl.viewport( 0, 0, gl.canvas.width, gl.canvas.height );\n\n\t\t// reset internals\n\n\t\tenabledCapabilities = {};\n\n\t\tcurrentTextureSlot = null;\n\t\tcurrentBoundTextures = {};\n\n\t\tcurrentBoundFramebuffers = {};\n\t\tcurrentDrawbuffers = new WeakMap();\n\t\tdefaultDrawbuffers = [];\n\n\t\tcurrentProgram = null;\n\n\t\tcurrentBlendingEnabled = false;\n\t\tcurrentBlending = null;\n\t\tcurrentBlendEquation = null;\n\t\tcurrentBlendSrc = null;\n\t\tcurrentBlendDst = null;\n\t\tcurrentBlendEquationAlpha = null;\n\t\tcurrentBlendSrcAlpha = null;\n\t\tcurrentBlendDstAlpha = null;\n\t\tcurrentPremultipledAlpha = false;\n\n\t\tcurrentFlipSided = null;\n\t\tcurrentCullFace = null;\n\n\t\tcurrentLineWidth = null;\n\n\t\tcurrentPolygonOffsetFactor = null;\n\t\tcurrentPolygonOffsetUnits = null;\n\n\t\tcurrentScissor.set( 0, 0, gl.canvas.width, gl.canvas.height );\n\t\tcurrentViewport.set( 0, 0, gl.canvas.width, gl.canvas.height );\n\n\t\tcolorBuffer.reset();\n\t\tdepthBuffer.reset();\n\t\tstencilBuffer.reset();\n\n\t}\n\n\treturn {\n\n\t\tbuffers: {\n\t\t\tcolor: colorBuffer,\n\t\t\tdepth: depthBuffer,\n\t\t\tstencil: stencilBuffer\n\t\t},\n\n\t\tenable: enable,\n\t\tdisable: disable,\n\n\t\tbindFramebuffer: bindFramebuffer,\n\t\tdrawBuffers: drawBuffers,\n\n\t\tuseProgram: useProgram,\n\n\t\tsetBlending: setBlending,\n\t\tsetMaterial: setMaterial,\n\n\t\tsetFlipSided: setFlipSided,\n\t\tsetCullFace: setCullFace,\n\n\t\tsetLineWidth: setLineWidth,\n\t\tsetPolygonOffset: setPolygonOffset,\n\n\t\tsetScissorTest: setScissorTest,\n\n\t\tactiveTexture: activeTexture,\n\t\tbindTexture: bindTexture,\n\t\tunbindTexture: unbindTexture,\n\t\tcompressedTexImage2D: compressedTexImage2D,\n\t\ttexImage2D: texImage2D,\n\t\ttexImage3D: texImage3D,\n\n\t\ttexStorage2D: texStorage2D,\n\t\ttexStorage3D: texStorage3D,\n\t\ttexSubImage2D: texSubImage2D,\n\t\ttexSubImage3D: texSubImage3D,\n\t\tcompressedTexSubImage2D: compressedTexSubImage2D,\n\n\t\tscissor: scissor,\n\t\tviewport: viewport,\n\n\t\treset: reset\n\n\t};\n\n}\n\nfunction WebGLTextures( _gl, extensions, state, properties, capabilities, utils, info ) {\n\n\tconst isWebGL2 = capabilities.isWebGL2;\n\tconst maxTextures = capabilities.maxTextures;\n\tconst maxCubemapSize = capabilities.maxCubemapSize;\n\tconst maxTextureSize = capabilities.maxTextureSize;\n\tconst maxSamples = capabilities.maxSamples;\n\tconst hasMultisampledRenderToTexture = extensions.has( 'WEBGL_multisampled_render_to_texture' );\n\tconst MultisampledRenderToTextureExtension = hasMultisampledRenderToTexture ? extensions.get( 'WEBGL_multisampled_render_to_texture' ) : undefined;\n\n\tconst _videoTextures = new WeakMap();\n\tlet _canvas;\n\n\t// cordova iOS (as of 5.0) still uses UIWebView, which provides OffscreenCanvas,\n\t// also OffscreenCanvas.getContext(\"webgl\"), but not OffscreenCanvas.getContext(\"2d\")!\n\t// Some implementations may only implement OffscreenCanvas partially (e.g. lacking 2d).\n\n\tlet useOffscreenCanvas = false;\n\n\ttry {\n\n\t\tuseOffscreenCanvas = typeof OffscreenCanvas !== 'undefined'\n\t\t\t&& ( new OffscreenCanvas( 1, 1 ).getContext( '2d' ) ) !== null;\n\n\t} catch ( err ) {\n\n\t\t// Ignore any errors\n\n\t}\n\n\tfunction createCanvas( width, height ) {\n\n\t\t// Use OffscreenCanvas when available. Specially needed in web workers\n\n\t\treturn useOffscreenCanvas ?\n\t\t\tnew OffscreenCanvas( width, height ) : createElementNS( 'canvas' );\n\n\t}\n\n\tfunction resizeImage( image, needsPowerOfTwo, needsNewCanvas, maxSize ) {\n\n\t\tlet scale = 1;\n\n\t\t// handle case if texture exceeds max size\n\n\t\tif ( image.width > maxSize || image.height > maxSize ) {\n\n\t\t\tscale = maxSize / Math.max( image.width, image.height );\n\n\t\t}\n\n\t\t// only perform resize if necessary\n\n\t\tif ( scale < 1 || needsPowerOfTwo === true ) {\n\n\t\t\t// only perform resize for certain image types\n\n\t\t\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t\t\tconst floor = needsPowerOfTwo ? floorPowerOfTwo : Math.floor;\n\n\t\t\t\tconst width = floor( scale * image.width );\n\t\t\t\tconst height = floor( scale * image.height );\n\n\t\t\t\tif ( _canvas === undefined ) _canvas = createCanvas( width, height );\n\n\t\t\t\t// cube textures can't reuse the same canvas\n\n\t\t\t\tconst canvas = needsNewCanvas ? createCanvas( width, height ) : _canvas;\n\n\t\t\t\tcanvas.width = width;\n\t\t\t\tcanvas.height = height;\n\n\t\t\t\tconst context = canvas.getContext( '2d' );\n\t\t\t\tcontext.drawImage( image, 0, 0, width, height );\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture has been resized from (' + image.width + 'x' + image.height + ') to (' + width + 'x' + height + ').' );\n\n\t\t\t\treturn canvas;\n\n\t\t\t} else {\n\n\t\t\t\tif ( 'data' in image ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Image in DataTexture is too big (' + image.width + 'x' + image.height + ').' );\n\n\t\t\t\t}\n\n\t\t\t\treturn image;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn image;\n\n\t}\n\n\tfunction isPowerOfTwo$1( image ) {\n\n\t\treturn isPowerOfTwo( image.width ) && isPowerOfTwo( image.height );\n\n\t}\n\n\tfunction textureNeedsPowerOfTwo( texture ) {\n\n\t\tif ( isWebGL2 ) return false;\n\n\t\treturn ( texture.wrapS !== ClampToEdgeWrapping || texture.wrapT !== ClampToEdgeWrapping ) ||\n\t\t\t( texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter );\n\n\t}\n\n\tfunction textureNeedsGenerateMipmaps( texture, supportsMips ) {\n\n\t\treturn texture.generateMipmaps && supportsMips &&\n\t\t\ttexture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter;\n\n\t}\n\n\tfunction generateMipmap( target ) {\n\n\t\t_gl.generateMipmap( target );\n\n\t}\n\n\tfunction getInternalFormat( internalFormatName, glFormat, glType, encoding, isVideoTexture = false ) {\n\n\t\tif ( isWebGL2 === false ) return glFormat;\n\n\t\tif ( internalFormatName !== null ) {\n\n\t\t\tif ( _gl[ internalFormatName ] !== undefined ) return _gl[ internalFormatName ];\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format \\'' + internalFormatName + '\\'' );\n\n\t\t}\n\n\t\tlet internalFormat = glFormat;\n\n\t\tif ( glFormat === 6403 ) {\n\n\t\t\tif ( glType === 5126 ) internalFormat = 33326;\n\t\t\tif ( glType === 5131 ) internalFormat = 33325;\n\t\t\tif ( glType === 5121 ) internalFormat = 33321;\n\n\t\t}\n\n\t\tif ( glFormat === 33319 ) {\n\n\t\t\tif ( glType === 5126 ) internalFormat = 33328;\n\t\t\tif ( glType === 5131 ) internalFormat = 33327;\n\t\t\tif ( glType === 5121 ) internalFormat = 33323;\n\n\t\t}\n\n\t\tif ( glFormat === 6408 ) {\n\n\t\t\tif ( glType === 5126 ) internalFormat = 34836;\n\t\t\tif ( glType === 5131 ) internalFormat = 34842;\n\t\t\tif ( glType === 5121 ) internalFormat = ( encoding === sRGBEncoding && isVideoTexture === false ) ? 35907 : 32856;\n\t\t\tif ( glType === 32819 ) internalFormat = 32854;\n\t\t\tif ( glType === 32820 ) internalFormat = 32855;\n\n\t\t}\n\n\t\tif ( internalFormat === 33325 || internalFormat === 33326 ||\n\t\t\tinternalFormat === 33327 || internalFormat === 33328 ||\n\t\t\tinternalFormat === 34842 || internalFormat === 34836 ) {\n\n\t\t\textensions.get( 'EXT_color_buffer_float' );\n\n\t\t}\n\n\t\treturn internalFormat;\n\n\t}\n\n\tfunction getMipLevels( texture, image, supportsMips ) {\n\n\t\tif ( textureNeedsGenerateMipmaps( texture, supportsMips ) === true || ( texture.isFramebufferTexture && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter ) ) {\n\n\t\t\treturn Math.log2( Math.max( image.width, image.height ) ) + 1;\n\n\t\t} else if ( texture.mipmaps !== undefined && texture.mipmaps.length > 0 ) {\n\n\t\t\t// user-defined mipmaps\n\n\t\t\treturn texture.mipmaps.length;\n\n\t\t} else if ( texture.isCompressedTexture && Array.isArray( texture.image ) ) {\n\n\t\t\treturn image.mipmaps.length;\n\n\t\t} else {\n\n\t\t\t// texture without mipmaps (only base level)\n\n\t\t\treturn 1;\n\n\t\t}\n\n\t}\n\n\t// Fallback filters for non-power-of-2 textures\n\n\tfunction filterFallback( f ) {\n\n\t\tif ( f === NearestFilter || f === NearestMipmapNearestFilter || f === NearestMipmapLinearFilter ) {\n\n\t\t\treturn 9728;\n\n\t\t}\n\n\t\treturn 9729;\n\n\t}\n\n\t//\n\n\tfunction onTextureDispose( event ) {\n\n\t\tconst texture = event.target;\n\n\t\ttexture.removeEventListener( 'dispose', onTextureDispose );\n\n\t\tdeallocateTexture( texture );\n\n\t\tif ( texture.isVideoTexture ) {\n\n\t\t\t_videoTextures.delete( texture );\n\n\t\t}\n\n\t\tinfo.memory.textures --;\n\n\t}\n\n\tfunction onRenderTargetDispose( event ) {\n\n\t\tconst renderTarget = event.target;\n\n\t\trenderTarget.removeEventListener( 'dispose', onRenderTargetDispose );\n\n\t\tdeallocateRenderTarget( renderTarget );\n\n\t}\n\n\t//\n\n\tfunction deallocateTexture( texture ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( textureProperties.__webglInit === undefined ) return;\n\n\t\t_gl.deleteTexture( textureProperties.__webglTexture );\n\n\t\tproperties.remove( texture );\n\n\t}\n\n\tfunction deallocateRenderTarget( renderTarget ) {\n\n\t\tconst texture = renderTarget.texture;\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( ! renderTarget ) return;\n\n\t\tif ( textureProperties.__webglTexture !== undefined ) {\n\n\t\t\t_gl.deleteTexture( textureProperties.__webglTexture );\n\n\t\t\tinfo.memory.textures --;\n\n\t\t}\n\n\t\tif ( renderTarget.depthTexture ) {\n\n\t\t\trenderTarget.depthTexture.dispose();\n\n\t\t}\n\n\t\tif ( renderTarget.isWebGLCubeRenderTarget ) {\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\t_gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ i ] );\n\t\t\t\tif ( renderTargetProperties.__webglDepthbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthbuffer[ i ] );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t_gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer );\n\t\t\tif ( renderTargetProperties.__webglDepthbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthbuffer );\n\t\t\tif ( renderTargetProperties.__webglMultisampledFramebuffer ) _gl.deleteFramebuffer( renderTargetProperties.__webglMultisampledFramebuffer );\n\t\t\tif ( renderTargetProperties.__webglColorRenderbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglColorRenderbuffer );\n\t\t\tif ( renderTargetProperties.__webglDepthRenderbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthRenderbuffer );\n\n\t\t}\n\n\t\tif ( renderTarget.isWebGLMultipleRenderTargets ) {\n\n\t\t\tfor ( let i = 0, il = texture.length; i < il; i ++ ) {\n\n\t\t\t\tconst attachmentProperties = properties.get( texture[ i ] );\n\n\t\t\t\tif ( attachmentProperties.__webglTexture ) {\n\n\t\t\t\t\t_gl.deleteTexture( attachmentProperties.__webglTexture );\n\n\t\t\t\t\tinfo.memory.textures --;\n\n\t\t\t\t}\n\n\t\t\t\tproperties.remove( texture[ i ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tproperties.remove( texture );\n\t\tproperties.remove( renderTarget );\n\n\t}\n\n\t//\n\n\tlet textureUnits = 0;\n\n\tfunction resetTextureUnits() {\n\n\t\ttextureUnits = 0;\n\n\t}\n\n\tfunction allocateTextureUnit() {\n\n\t\tconst textureUnit = textureUnits;\n\n\t\tif ( textureUnit >= maxTextures ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLTextures: Trying to use ' + textureUnit + ' texture units while this GPU supports only ' + maxTextures );\n\n\t\t}\n\n\t\ttextureUnits += 1;\n\n\t\treturn textureUnit;\n\n\t}\n\n\t//\n\n\tfunction setTexture2D( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.isVideoTexture ) updateVideoTexture( texture );\n\n\t\tif ( texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tconst image = texture.image;\n\n\t\t\tif ( image === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture marked for update but image is undefined' );\n\n\t\t\t} else if ( image.complete === false ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture marked for update but image is incomplete' );\n\n\t\t\t} else {\n\n\t\t\t\tuploadTexture( textureProperties, texture, slot );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.activeTexture( 33984 + slot );\n\t\tstate.bindTexture( 3553, textureProperties.__webglTexture );\n\n\t}\n\n\tfunction setTexture2DArray( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tuploadTexture( textureProperties, texture, slot );\n\t\t\treturn;\n\n\t\t}\n\n\t\tstate.activeTexture( 33984 + slot );\n\t\tstate.bindTexture( 35866, textureProperties.__webglTexture );\n\n\t}\n\n\tfunction setTexture3D( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tuploadTexture( textureProperties, texture, slot );\n\t\t\treturn;\n\n\t\t}\n\n\t\tstate.activeTexture( 33984 + slot );\n\t\tstate.bindTexture( 32879, textureProperties.__webglTexture );\n\n\t}\n\n\tfunction setTextureCube( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tuploadCubeTexture( textureProperties, texture, slot );\n\t\t\treturn;\n\n\t\t}\n\n\t\tstate.activeTexture( 33984 + slot );\n\t\tstate.bindTexture( 34067, textureProperties.__webglTexture );\n\n\t}\n\n\tconst wrappingToGL = {\n\t\t[ RepeatWrapping ]: 10497,\n\t\t[ ClampToEdgeWrapping ]: 33071,\n\t\t[ MirroredRepeatWrapping ]: 33648\n\t};\n\n\tconst filterToGL = {\n\t\t[ NearestFilter ]: 9728,\n\t\t[ NearestMipmapNearestFilter ]: 9984,\n\t\t[ NearestMipmapLinearFilter ]: 9986,\n\n\t\t[ LinearFilter ]: 9729,\n\t\t[ LinearMipmapNearestFilter ]: 9985,\n\t\t[ LinearMipmapLinearFilter ]: 9987\n\t};\n\n\tfunction setTextureParameters( textureType, texture, supportsMips ) {\n\n\t\tif ( supportsMips ) {\n\n\t\t\t_gl.texParameteri( textureType, 10242, wrappingToGL[ texture.wrapS ] );\n\t\t\t_gl.texParameteri( textureType, 10243, wrappingToGL[ texture.wrapT ] );\n\n\t\t\tif ( textureType === 32879 || textureType === 35866 ) {\n\n\t\t\t\t_gl.texParameteri( textureType, 32882, wrappingToGL[ texture.wrapR ] );\n\n\t\t\t}\n\n\t\t\t_gl.texParameteri( textureType, 10240, filterToGL[ texture.magFilter ] );\n\t\t\t_gl.texParameteri( textureType, 10241, filterToGL[ texture.minFilter ] );\n\n\t\t} else {\n\n\t\t\t_gl.texParameteri( textureType, 10242, 33071 );\n\t\t\t_gl.texParameteri( textureType, 10243, 33071 );\n\n\t\t\tif ( textureType === 32879 || textureType === 35866 ) {\n\n\t\t\t\t_gl.texParameteri( textureType, 32882, 33071 );\n\n\t\t\t}\n\n\t\t\tif ( texture.wrapS !== ClampToEdgeWrapping || texture.wrapT !== ClampToEdgeWrapping ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.' );\n\n\t\t\t}\n\n\t\t\t_gl.texParameteri( textureType, 10240, filterFallback( texture.magFilter ) );\n\t\t\t_gl.texParameteri( textureType, 10241, filterFallback( texture.minFilter ) );\n\n\t\t\tif ( texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.' );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( extensions.has( 'EXT_texture_filter_anisotropic' ) === true ) {\n\n\t\t\tconst extension = extensions.get( 'EXT_texture_filter_anisotropic' );\n\n\t\t\tif ( texture.type === FloatType && extensions.has( 'OES_texture_float_linear' ) === false ) return; // verify extension for WebGL 1 and WebGL 2\n\t\t\tif ( isWebGL2 === false && ( texture.type === HalfFloatType && extensions.has( 'OES_texture_half_float_linear' ) === false ) ) return; // verify extension for WebGL 1 only\n\n\t\t\tif ( texture.anisotropy > 1 || properties.get( texture ).__currentAnisotropy ) {\n\n\t\t\t\t_gl.texParameterf( textureType, extension.TEXTURE_MAX_ANISOTROPY_EXT, Math.min( texture.anisotropy, capabilities.getMaxAnisotropy() ) );\n\t\t\t\tproperties.get( texture ).__currentAnisotropy = texture.anisotropy;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction initTexture( textureProperties, texture ) {\n\n\t\tif ( textureProperties.__webglInit === undefined ) {\n\n\t\t\ttextureProperties.__webglInit = true;\n\n\t\t\ttexture.addEventListener( 'dispose', onTextureDispose );\n\n\t\t\ttextureProperties.__webglTexture = _gl.createTexture();\n\n\t\t\tinfo.memory.textures ++;\n\n\t\t}\n\n\t}\n\n\tfunction uploadTexture( textureProperties, texture, slot ) {\n\n\t\tlet textureType = 3553;\n\n\t\tif ( texture.isDataTexture2DArray ) textureType = 35866;\n\t\tif ( texture.isDataTexture3D ) textureType = 32879;\n\n\t\tinitTexture( textureProperties, texture );\n\n\t\tstate.activeTexture( 33984 + slot );\n\t\tstate.bindTexture( textureType, textureProperties.__webglTexture );\n\n\t\t_gl.pixelStorei( 37440, texture.flipY );\n\t\t_gl.pixelStorei( 37441, texture.premultiplyAlpha );\n\t\t_gl.pixelStorei( 3317, texture.unpackAlignment );\n\t\t_gl.pixelStorei( 37443, 0 );\n\n\t\tconst needsPowerOfTwo = textureNeedsPowerOfTwo( texture ) && isPowerOfTwo$1( texture.image ) === false;\n\t\tlet image = resizeImage( texture.image, needsPowerOfTwo, false, maxTextureSize );\n\t\timage = verifyColorSpace( texture, image );\n\n\t\tconst supportsMips = isPowerOfTwo$1( image ) || isWebGL2,\n\t\t\tglFormat = utils.convert( texture.format, texture.encoding );\n\n\t\tlet glType = utils.convert( texture.type ),\n\t\t\tglInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.encoding, texture.isVideoTexture );\n\n\t\tsetTextureParameters( textureType, texture, supportsMips );\n\n\t\tlet mipmap;\n\t\tconst mipmaps = texture.mipmaps;\n\n\t\tconst useTexStorage = ( isWebGL2 && texture.isVideoTexture !== true );\n\t\tconst allocateMemory = ( textureProperties.__version === undefined );\n\t\tconst levels = getMipLevels( texture, image, supportsMips );\n\n\t\tif ( texture.isDepthTexture ) {\n\n\t\t\t// populate depth texture with dummy data\n\n\t\t\tglInternalFormat = 6402;\n\n\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\tif ( texture.type === FloatType ) {\n\n\t\t\t\t\tglInternalFormat = 36012;\n\n\t\t\t\t} else if ( texture.type === UnsignedIntType ) {\n\n\t\t\t\t\tglInternalFormat = 33190;\n\n\t\t\t\t} else if ( texture.type === UnsignedInt248Type ) {\n\n\t\t\t\t\tglInternalFormat = 35056;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tglInternalFormat = 33189; // WebGL2 requires sized internalformat for glTexImage2D\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( texture.type === FloatType ) {\n\n\t\t\t\t\tconsole.error( 'WebGLRenderer: Floating point depth texture requires WebGL2.' );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// validation checks for WebGL 1\n\n\t\t\tif ( texture.format === DepthFormat && glInternalFormat === 6402 ) {\n\n\t\t\t\t// The error INVALID_OPERATION is generated by texImage2D if format and internalformat are\n\t\t\t\t// DEPTH_COMPONENT and type is not UNSIGNED_SHORT or UNSIGNED_INT\n\t\t\t\t// (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/)\n\t\t\t\tif ( texture.type !== UnsignedShortType && texture.type !== UnsignedIntType ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.' );\n\n\t\t\t\t\ttexture.type = UnsignedShortType;\n\t\t\t\t\tglType = utils.convert( texture.type );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( texture.format === DepthStencilFormat && glInternalFormat === 6402 ) {\n\n\t\t\t\t// Depth stencil textures need the DEPTH_STENCIL internal format\n\t\t\t\t// (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/)\n\t\t\t\tglInternalFormat = 34041;\n\n\t\t\t\t// The error INVALID_OPERATION is generated by texImage2D if format and internalformat are\n\t\t\t\t// DEPTH_STENCIL and type is not UNSIGNED_INT_24_8_WEBGL.\n\t\t\t\t// (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/)\n\t\t\t\tif ( texture.type !== UnsignedInt248Type ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.' );\n\n\t\t\t\t\ttexture.type = UnsignedInt248Type;\n\t\t\t\t\tglType = utils.convert( texture.type );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\tstate.texStorage2D( 3553, 1, glInternalFormat, image.width, image.height );\n\n\t\t\t} else {\n\n\t\t\t\tstate.texImage2D( 3553, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, null );\n\n\t\t\t}\n\n\t\t} else if ( texture.isDataTexture ) {\n\n\t\t\t// use manually created mipmaps if available\n\t\t\t// if there are no manual mipmaps\n\t\t\t// set 0 level mipmap and then use GL to generate other mipmap levels\n\n\t\t\tif ( mipmaps.length > 0 && supportsMips ) {\n\n\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\tstate.texStorage2D( 3553, levels, glInternalFormat, mipmaps[ 0 ].width, mipmaps[ 0 ].height );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tstate.texSubImage2D( 3553, 0, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tstate.texImage2D( 3553, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\ttexture.generateMipmaps = false;\n\n\t\t\t} else {\n\n\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage2D( 3553, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tstate.texSubImage2D( 3553, 0, 0, 0, image.width, image.height, glFormat, glType, image.data );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tstate.texImage2D( 3553, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, image.data );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else if ( texture.isCompressedTexture ) {\n\n\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\tstate.texStorage2D( 3553, levels, glInternalFormat, mipmaps[ 0 ].width, mipmaps[ 0 ].height );\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\tif ( texture.format !== RGBAFormat ) {\n\n\t\t\t\t\tif ( glFormat !== null ) {\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tstate.compressedTexSubImage2D( 3553, i, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.compressedTexImage2D( 3553, i, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tstate.texSubImage2D( 3553, i, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tstate.texImage2D( 3553, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else if ( texture.isDataTexture2DArray ) {\n\n\t\t\tif ( useTexStorage ) {\n\n\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\tstate.texStorage3D( 35866, levels, glInternalFormat, image.width, image.height, image.depth );\n\n\t\t\t\t}\n\n\t\t\t\tstate.texSubImage3D( 35866, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data );\n\n\t\t\t} else {\n\n\t\t\t\tstate.texImage3D( 35866, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data );\n\n\t\t\t}\n\n\t\t} else if ( texture.isDataTexture3D ) {\n\n\t\t\tif ( useTexStorage ) {\n\n\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\tstate.texStorage3D( 32879, levels, glInternalFormat, image.width, image.height, image.depth );\n\n\t\t\t\t}\n\n\t\t\t\tstate.texSubImage3D( 32879, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data );\n\n\t\t\t} else {\n\n\t\t\t\tstate.texImage3D( 32879, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data );\n\n\t\t\t}\n\n\t\t} else if ( texture.isFramebufferTexture ) {\n\n\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\tstate.texStorage2D( 3553, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t} else {\n\n\t\t\t\tstate.texImage2D( 3553, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, null );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// regular Texture (image, video, canvas)\n\n\t\t\t// use manually created mipmaps if available\n\t\t\t// if there are no manual mipmaps\n\t\t\t// set 0 level mipmap and then use GL to generate other mipmap levels\n\n\t\t\tif ( mipmaps.length > 0 && supportsMips ) {\n\n\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\tstate.texStorage2D( 3553, levels, glInternalFormat, mipmaps[ 0 ].width, mipmaps[ 0 ].height );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tstate.texSubImage2D( 3553, i, 0, 0, glFormat, glType, mipmap );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tstate.texImage2D( 3553, i, glInternalFormat, glFormat, glType, mipmap );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\ttexture.generateMipmaps = false;\n\n\t\t\t} else {\n\n\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage2D( 3553, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tstate.texSubImage2D( 3553, 0, 0, 0, glFormat, glType, image );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tstate.texImage2D( 3553, 0, glInternalFormat, glFormat, glType, image );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( textureNeedsGenerateMipmaps( texture, supportsMips ) ) {\n\n\t\t\tgenerateMipmap( textureType );\n\n\t\t}\n\n\t\ttextureProperties.__version = texture.version;\n\n\t\tif ( texture.onUpdate ) texture.onUpdate( texture );\n\n\t}\n\n\tfunction uploadCubeTexture( textureProperties, texture, slot ) {\n\n\t\tif ( texture.image.length !== 6 ) return;\n\n\t\tinitTexture( textureProperties, texture );\n\n\t\tstate.activeTexture( 33984 + slot );\n\t\tstate.bindTexture( 34067, textureProperties.__webglTexture );\n\n\t\t_gl.pixelStorei( 37440, texture.flipY );\n\t\t_gl.pixelStorei( 37441, texture.premultiplyAlpha );\n\t\t_gl.pixelStorei( 3317, texture.unpackAlignment );\n\t\t_gl.pixelStorei( 37443, 0 );\n\n\t\tconst isCompressed = ( texture && ( texture.isCompressedTexture || texture.image[ 0 ].isCompressedTexture ) );\n\t\tconst isDataTexture = ( texture.image[ 0 ] && texture.image[ 0 ].isDataTexture );\n\n\t\tconst cubeImage = [];\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tif ( ! isCompressed && ! isDataTexture ) {\n\n\t\t\t\tcubeImage[ i ] = resizeImage( texture.image[ i ], false, true, maxCubemapSize );\n\n\t\t\t} else {\n\n\t\t\t\tcubeImage[ i ] = isDataTexture ? texture.image[ i ].image : texture.image[ i ];\n\n\t\t\t}\n\n\t\t\tcubeImage[ i ] = verifyColorSpace( texture, cubeImage[ i ] );\n\n\t\t}\n\n\t\tconst image = cubeImage[ 0 ],\n\t\t\tsupportsMips = isPowerOfTwo$1( image ) || isWebGL2,\n\t\t\tglFormat = utils.convert( texture.format, texture.encoding ),\n\t\t\tglType = utils.convert( texture.type ),\n\t\t\tglInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.encoding );\n\n\t\tconst useTexStorage = ( isWebGL2 && texture.isVideoTexture !== true );\n\t\tconst allocateMemory = ( textureProperties.__version === undefined );\n\t\tlet levels = getMipLevels( texture, image, supportsMips );\n\n\t\tsetTextureParameters( 34067, texture, supportsMips );\n\n\t\tlet mipmaps;\n\n\t\tif ( isCompressed ) {\n\n\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\tstate.texStorage2D( 34067, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tmipmaps = cubeImage[ i ].mipmaps;\n\n\t\t\t\tfor ( let j = 0; j < mipmaps.length; j ++ ) {\n\n\t\t\t\t\tconst mipmap = mipmaps[ j ];\n\n\t\t\t\t\tif ( texture.format !== RGBAFormat ) {\n\n\t\t\t\t\t\tif ( glFormat !== null ) {\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tstate.compressedTexSubImage2D( 34069 + i, j, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.compressedTexImage2D( 34069 + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()' );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tstate.texSubImage2D( 34069 + i, j, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( 34069 + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tmipmaps = texture.mipmaps;\n\n\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t// TODO: Uniformly handle mipmap definitions\n\t\t\t\t// Normal textures and compressed cube textures define base level + mips with their mipmap array\n\t\t\t\t// Uncompressed cube textures use their mipmap array only for mips (no base level)\n\n\t\t\t\tif ( mipmaps.length > 0 ) levels ++;\n\n\t\t\t\tstate.texStorage2D( 34067, levels, glInternalFormat, cubeImage[ 0 ].width, cubeImage[ 0 ].height );\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tif ( isDataTexture ) {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tstate.texSubImage2D( 34069 + i, 0, 0, 0, cubeImage[ i ].width, cubeImage[ i ].height, glFormat, glType, cubeImage[ i ].data );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tstate.texImage2D( 34069 + i, 0, glInternalFormat, cubeImage[ i ].width, cubeImage[ i ].height, 0, glFormat, glType, cubeImage[ i ].data );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let j = 0; j < mipmaps.length; j ++ ) {\n\n\t\t\t\t\t\tconst mipmap = mipmaps[ j ];\n\t\t\t\t\t\tconst mipmapImage = mipmap.image[ i ].image;\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tstate.texSubImage2D( 34069 + i, j + 1, 0, 0, mipmapImage.width, mipmapImage.height, glFormat, glType, mipmapImage.data );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( 34069 + i, j + 1, glInternalFormat, mipmapImage.width, mipmapImage.height, 0, glFormat, glType, mipmapImage.data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tstate.texSubImage2D( 34069 + i, 0, 0, 0, glFormat, glType, cubeImage[ i ] );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tstate.texImage2D( 34069 + i, 0, glInternalFormat, glFormat, glType, cubeImage[ i ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let j = 0; j < mipmaps.length; j ++ ) {\n\n\t\t\t\t\t\tconst mipmap = mipmaps[ j ];\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tstate.texSubImage2D( 34069 + i, j + 1, 0, 0, glFormat, glType, mipmap.image[ i ] );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( 34069 + i, j + 1, glInternalFormat, glFormat, glType, mipmap.image[ i ] );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( textureNeedsGenerateMipmaps( texture, supportsMips ) ) {\n\n\t\t\t// We assume images for cube map have the same size.\n\t\t\tgenerateMipmap( 34067 );\n\n\t\t}\n\n\t\ttextureProperties.__version = texture.version;\n\n\t\tif ( texture.onUpdate ) texture.onUpdate( texture );\n\n\t}\n\n\t// Render targets\n\n\t// Setup storage for target texture and bind it to correct framebuffer\n\tfunction setupFrameBufferTexture( framebuffer, renderTarget, texture, attachment, textureTarget ) {\n\n\t\tconst glFormat = utils.convert( texture.format, texture.encoding );\n\t\tconst glType = utils.convert( texture.type );\n\t\tconst glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.encoding );\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\tif ( ! renderTargetProperties.__hasExternalTextures ) {\n\n\t\t\tif ( textureTarget === 32879 || textureTarget === 35866 ) {\n\n\t\t\t\tstate.texImage3D( textureTarget, 0, glInternalFormat, renderTarget.width, renderTarget.height, renderTarget.depth, 0, glFormat, glType, null );\n\n\t\t\t} else {\n\n\t\t\t\tstate.texImage2D( textureTarget, 0, glInternalFormat, renderTarget.width, renderTarget.height, 0, glFormat, glType, null );\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.bindFramebuffer( 36160, framebuffer );\n\t\tif ( renderTarget.useRenderToTexture ) {\n\n\t\t\tMultisampledRenderToTextureExtension.framebufferTexture2DMultisampleEXT( 36160, attachment, textureTarget, properties.get( texture ).__webglTexture, 0, getRenderTargetSamples( renderTarget ) );\n\n\t\t} else {\n\n\t\t\t_gl.framebufferTexture2D( 36160, attachment, textureTarget, properties.get( texture ).__webglTexture, 0 );\n\n\t\t}\n\n\t\tstate.bindFramebuffer( 36160, null );\n\n\t}\n\n\n\t// Setup storage for internal depth/stencil buffers and bind to correct framebuffer\n\tfunction setupRenderBufferStorage( renderbuffer, renderTarget, isMultisample ) {\n\n\t\t_gl.bindRenderbuffer( 36161, renderbuffer );\n\n\t\tif ( renderTarget.depthBuffer && ! renderTarget.stencilBuffer ) {\n\n\t\t\tlet glInternalFormat = 33189;\n\n\t\t\tif ( isMultisample || renderTarget.useRenderToTexture ) {\n\n\t\t\t\tconst depthTexture = renderTarget.depthTexture;\n\n\t\t\t\tif ( depthTexture && depthTexture.isDepthTexture ) {\n\n\t\t\t\t\tif ( depthTexture.type === FloatType ) {\n\n\t\t\t\t\t\tglInternalFormat = 36012;\n\n\t\t\t\t\t} else if ( depthTexture.type === UnsignedIntType ) {\n\n\t\t\t\t\t\tglInternalFormat = 33190;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\n\t\t\t\tif ( renderTarget.useRenderToTexture ) {\n\n\t\t\t\t\tMultisampledRenderToTextureExtension.renderbufferStorageMultisampleEXT( 36161, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_gl.renderbufferStorageMultisample( 36161, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t_gl.renderbufferStorage( 36161, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t}\n\n\t\t\t_gl.framebufferRenderbuffer( 36160, 36096, 36161, renderbuffer );\n\n\t\t} else if ( renderTarget.depthBuffer && renderTarget.stencilBuffer ) {\n\n\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\n\t\t\tif ( isMultisample && renderTarget.useRenderbuffer ) {\n\n\t\t\t\t_gl.renderbufferStorageMultisample( 36161, samples, 35056, renderTarget.width, renderTarget.height );\n\n\t\t\t} else if ( renderTarget.useRenderToTexture ) {\n\n\t\t\t\tMultisampledRenderToTextureExtension.renderbufferStorageMultisampleEXT( 36161, samples, 35056, renderTarget.width, renderTarget.height );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.renderbufferStorage( 36161, 34041, renderTarget.width, renderTarget.height );\n\n\t\t\t}\n\n\n\t\t\t_gl.framebufferRenderbuffer( 36160, 33306, 36161, renderbuffer );\n\n\t\t} else {\n\n\t\t\t// Use the first texture for MRT so far\n\t\t\tconst texture = renderTarget.isWebGLMultipleRenderTargets === true ? renderTarget.texture[ 0 ] : renderTarget.texture;\n\n\t\t\tconst glFormat = utils.convert( texture.format, texture.encoding );\n\t\t\tconst glType = utils.convert( texture.type );\n\t\t\tconst glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.encoding );\n\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\n\t\t\tif ( isMultisample && renderTarget.useRenderbuffer ) {\n\n\t\t\t\t_gl.renderbufferStorageMultisample( 36161, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t} else if ( renderTarget.useRenderToTexture ) {\n\n\t\t\t\tMultisampledRenderToTextureExtension.renderbufferStorageMultisampleEXT( 36161, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.renderbufferStorage( 36161, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t}\n\n\t\t}\n\n\t\t_gl.bindRenderbuffer( 36161, null );\n\n\t}\n\n\t// Setup resources for a Depth Texture for a FBO (needs an extension)\n\tfunction setupDepthTexture( framebuffer, renderTarget ) {\n\n\t\tconst isCube = ( renderTarget && renderTarget.isWebGLCubeRenderTarget );\n\t\tif ( isCube ) throw new Error( 'Depth Texture with cube render targets is not supported' );\n\n\t\tstate.bindFramebuffer( 36160, framebuffer );\n\n\t\tif ( ! ( renderTarget.depthTexture && renderTarget.depthTexture.isDepthTexture ) ) {\n\n\t\t\tthrow new Error( 'renderTarget.depthTexture must be an instance of THREE.DepthTexture' );\n\n\t\t}\n\n\t\t// upload an empty depth texture with framebuffer size\n\t\tif ( ! properties.get( renderTarget.depthTexture ).__webglTexture ||\n\t\t\t\trenderTarget.depthTexture.image.width !== renderTarget.width ||\n\t\t\t\trenderTarget.depthTexture.image.height !== renderTarget.height ) {\n\n\t\t\trenderTarget.depthTexture.image.width = renderTarget.width;\n\t\t\trenderTarget.depthTexture.image.height = renderTarget.height;\n\t\t\trenderTarget.depthTexture.needsUpdate = true;\n\n\t\t}\n\n\t\tsetTexture2D( renderTarget.depthTexture, 0 );\n\n\t\tconst webglDepthTexture = properties.get( renderTarget.depthTexture ).__webglTexture;\n\t\tconst samples = getRenderTargetSamples( renderTarget );\n\n\t\tif ( renderTarget.depthTexture.format === DepthFormat ) {\n\n\t\t\tif ( renderTarget.useRenderToTexture ) {\n\n\t\t\t\tMultisampledRenderToTextureExtension.framebufferTexture2DMultisampleEXT( 36160, 36096, 3553, webglDepthTexture, 0, samples );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.framebufferTexture2D( 36160, 36096, 3553, webglDepthTexture, 0 );\n\n\t\t\t}\n\n\t\t} else if ( renderTarget.depthTexture.format === DepthStencilFormat ) {\n\n\t\t\tif ( renderTarget.useRenderToTexture ) {\n\n\t\t\t\tMultisampledRenderToTextureExtension.framebufferTexture2DMultisampleEXT( 36160, 33306, 3553, webglDepthTexture, 0, samples );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.framebufferTexture2D( 36160, 33306, 3553, webglDepthTexture, 0 );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'Unknown depthTexture format' );\n\n\t\t}\n\n\t}\n\n\t// Setup GL resources for a non-texture depth buffer\n\tfunction setupDepthRenderbuffer( renderTarget ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\tconst isCube = ( renderTarget.isWebGLCubeRenderTarget === true );\n\n\t\tif ( renderTarget.depthTexture && ! renderTargetProperties.__autoAllocateDepthBuffer ) {\n\n\t\t\tif ( isCube ) throw new Error( 'target.depthTexture not supported in Cube render targets' );\n\n\t\t\tsetupDepthTexture( renderTargetProperties.__webglFramebuffer, renderTarget );\n\n\t\t} else {\n\n\t\t\tif ( isCube ) {\n\n\t\t\t\trenderTargetProperties.__webglDepthbuffer = [];\n\n\t\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\t\tstate.bindFramebuffer( 36160, renderTargetProperties.__webglFramebuffer[ i ] );\n\t\t\t\t\trenderTargetProperties.__webglDepthbuffer[ i ] = _gl.createRenderbuffer();\n\t\t\t\t\tsetupRenderBufferStorage( renderTargetProperties.__webglDepthbuffer[ i ], renderTarget, false );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tstate.bindFramebuffer( 36160, renderTargetProperties.__webglFramebuffer );\n\t\t\t\trenderTargetProperties.__webglDepthbuffer = _gl.createRenderbuffer();\n\t\t\t\tsetupRenderBufferStorage( renderTargetProperties.__webglDepthbuffer, renderTarget, false );\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.bindFramebuffer( 36160, null );\n\n\t}\n\n\t// rebind framebuffer with external textures\n\tfunction rebindTextures( renderTarget, colorTexture, depthTexture ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\tif ( colorTexture !== undefined ) {\n\n\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, renderTarget.texture, 36064, 3553 );\n\n\t\t}\n\n\t\tif ( depthTexture !== undefined ) {\n\n\t\t\tsetupDepthRenderbuffer( renderTarget );\n\n\t\t}\n\n\t}\n\n\t// Set up GL resources for the render target\n\tfunction setupRenderTarget( renderTarget ) {\n\n\t\tconst texture = renderTarget.texture;\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\tconst textureProperties = properties.get( texture );\n\n\t\trenderTarget.addEventListener( 'dispose', onRenderTargetDispose );\n\n\t\tif ( renderTarget.isWebGLMultipleRenderTargets !== true ) {\n\n\t\t\tif ( textureProperties.__webglTexture === undefined ) {\n\n\t\t\t\ttextureProperties.__webglTexture = _gl.createTexture();\n\n\t\t\t}\n\n\t\t\ttextureProperties.__version = texture.version;\n\t\t\tinfo.memory.textures ++;\n\n\t\t}\n\n\t\tconst isCube = ( renderTarget.isWebGLCubeRenderTarget === true );\n\t\tconst isMultipleRenderTargets = ( renderTarget.isWebGLMultipleRenderTargets === true );\n\t\tconst isRenderTarget3D = texture.isDataTexture3D || texture.isDataTexture2DArray;\n\t\tconst supportsMips = isPowerOfTwo$1( renderTarget ) || isWebGL2;\n\n\t\t// Setup framebuffer\n\n\t\tif ( isCube ) {\n\n\t\t\trenderTargetProperties.__webglFramebuffer = [];\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\trenderTargetProperties.__webglFramebuffer[ i ] = _gl.createFramebuffer();\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\trenderTargetProperties.__webglFramebuffer = _gl.createFramebuffer();\n\n\t\t\tif ( isMultipleRenderTargets ) {\n\n\t\t\t\tif ( capabilities.drawBuffers ) {\n\n\t\t\t\t\tconst textures = renderTarget.texture;\n\n\t\t\t\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst attachmentProperties = properties.get( textures[ i ] );\n\n\t\t\t\t\t\tif ( attachmentProperties.__webglTexture === undefined ) {\n\n\t\t\t\t\t\t\tattachmentProperties.__webglTexture = _gl.createTexture();\n\n\t\t\t\t\t\t\tinfo.memory.textures ++;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.' );\n\n\t\t\t\t}\n\n\t\t\t} else if ( renderTarget.useRenderbuffer ) {\n\n\t\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\t\trenderTargetProperties.__webglMultisampledFramebuffer = _gl.createFramebuffer();\n\t\t\t\t\trenderTargetProperties.__webglColorRenderbuffer = _gl.createRenderbuffer();\n\n\t\t\t\t\t_gl.bindRenderbuffer( 36161, renderTargetProperties.__webglColorRenderbuffer );\n\n\t\t\t\t\tconst glFormat = utils.convert( texture.format, texture.encoding );\n\t\t\t\t\tconst glType = utils.convert( texture.type );\n\t\t\t\t\tconst glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.encoding );\n\t\t\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\t\t\t\t\t_gl.renderbufferStorageMultisample( 36161, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t\tstate.bindFramebuffer( 36160, renderTargetProperties.__webglMultisampledFramebuffer );\n\t\t\t\t\t_gl.framebufferRenderbuffer( 36160, 36064, 36161, renderTargetProperties.__webglColorRenderbuffer );\n\t\t\t\t\t_gl.bindRenderbuffer( 36161, null );\n\n\t\t\t\t\tif ( renderTarget.depthBuffer ) {\n\n\t\t\t\t\t\trenderTargetProperties.__webglDepthRenderbuffer = _gl.createRenderbuffer();\n\t\t\t\t\t\tsetupRenderBufferStorage( renderTargetProperties.__webglDepthRenderbuffer, renderTarget, true );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tstate.bindFramebuffer( 36160, null );\n\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.' );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Setup color buffer\n\n\t\tif ( isCube ) {\n\n\t\t\tstate.bindTexture( 34067, textureProperties.__webglTexture );\n\t\t\tsetTextureParameters( 34067, texture, supportsMips );\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ i ], renderTarget, texture, 36064, 34069 + i );\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture, supportsMips ) ) {\n\n\t\t\t\tgenerateMipmap( 34067 );\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t} else if ( isMultipleRenderTargets ) {\n\n\t\t\tconst textures = renderTarget.texture;\n\n\t\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\t\tconst attachment = textures[ i ];\n\t\t\t\tconst attachmentProperties = properties.get( attachment );\n\n\t\t\t\tstate.bindTexture( 3553, attachmentProperties.__webglTexture );\n\t\t\t\tsetTextureParameters( 3553, attachment, supportsMips );\n\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, attachment, 36064 + i, 3553 );\n\n\t\t\t\tif ( textureNeedsGenerateMipmaps( attachment, supportsMips ) ) {\n\n\t\t\t\t\tgenerateMipmap( 3553 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t} else {\n\n\t\t\tlet glTextureType = 3553;\n\n\t\t\tif ( isRenderTarget3D ) {\n\n\t\t\t\t// Render targets containing layers, i.e: Texture 3D and 2d arrays\n\n\t\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\t\tconst isTexture3D = texture.isDataTexture3D;\n\t\t\t\t\tglTextureType = isTexture3D ? 32879 : 35866;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.warn( 'THREE.DataTexture3D and THREE.DataTexture2DArray only supported with WebGL2.' );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstate.bindTexture( glTextureType, textureProperties.__webglTexture );\n\t\t\tsetTextureParameters( glTextureType, texture, supportsMips );\n\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, texture, 36064, glTextureType );\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture, supportsMips ) ) {\n\n\t\t\t\tgenerateMipmap( glTextureType );\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t}\n\n\t\t// Setup depth and stencil buffers\n\n\t\tif ( renderTarget.depthBuffer ) {\n\n\t\t\tsetupDepthRenderbuffer( renderTarget );\n\n\t\t}\n\n\t}\n\n\tfunction updateRenderTargetMipmap( renderTarget ) {\n\n\t\tconst supportsMips = isPowerOfTwo$1( renderTarget ) || isWebGL2;\n\n\t\tconst textures = renderTarget.isWebGLMultipleRenderTargets === true ? renderTarget.texture : [ renderTarget.texture ];\n\n\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\tconst texture = textures[ i ];\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture, supportsMips ) ) {\n\n\t\t\t\tconst target = renderTarget.isWebGLCubeRenderTarget ? 34067 : 3553;\n\t\t\t\tconst webglTexture = properties.get( texture ).__webglTexture;\n\n\t\t\t\tstate.bindTexture( target, webglTexture );\n\t\t\t\tgenerateMipmap( target );\n\t\t\t\tstate.unbindTexture();\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction updateMultisampleRenderTarget( renderTarget ) {\n\n\t\tif ( renderTarget.useRenderbuffer ) {\n\n\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\tconst width = renderTarget.width;\n\t\t\t\tconst height = renderTarget.height;\n\t\t\t\tlet mask = 16384;\n\t\t\t\tconst invalidationArray = [ 36064 ];\n\t\t\t\tconst depthStyle = renderTarget.stencilBuffer ? 33306 : 36096;\n\n\t\t\t\tif ( renderTarget.depthBuffer ) {\n\n\t\t\t\t\tinvalidationArray.push( depthStyle );\n\n\t\t\t\t}\n\n\t\t\t\tif ( ! renderTarget.ignoreDepthForMultisampleCopy ) {\n\n\t\t\t\t\tif ( renderTarget.depthBuffer ) mask |= 256;\n\t\t\t\t\tif ( renderTarget.stencilBuffer ) mask |= 1024;\n\n\t\t\t\t}\n\n\t\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\t\t\tstate.bindFramebuffer( 36008, renderTargetProperties.__webglMultisampledFramebuffer );\n\t\t\t\tstate.bindFramebuffer( 36009, renderTargetProperties.__webglFramebuffer );\n\n\t\t\t\tif ( renderTarget.ignoreDepthForMultisampleCopy ) {\n\n\t\t\t\t\t_gl.invalidateFramebuffer( 36008, [ depthStyle ] );\n\t\t\t\t\t_gl.invalidateFramebuffer( 36009, [ depthStyle ] );\n\n\t\t\t\t}\n\n\t\t\t\t_gl.blitFramebuffer( 0, 0, width, height, 0, 0, width, height, mask, 9728 );\n\t\t\t\t_gl.invalidateFramebuffer( 36008, invalidationArray );\n\n\t\t\t\tstate.bindFramebuffer( 36008, null );\n\t\t\t\tstate.bindFramebuffer( 36009, renderTargetProperties.__webglMultisampledFramebuffer );\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.' );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction getRenderTargetSamples( renderTarget ) {\n\n\t\treturn ( isWebGL2 && ( renderTarget.useRenderbuffer || renderTarget.useRenderToTexture ) ) ?\n\t\t\tMath.min( maxSamples, renderTarget.samples ) : 0;\n\n\t}\n\n\tfunction updateVideoTexture( texture ) {\n\n\t\tconst frame = info.render.frame;\n\n\t\t// Check the last frame we updated the VideoTexture\n\n\t\tif ( _videoTextures.get( texture ) !== frame ) {\n\n\t\t\t_videoTextures.set( texture, frame );\n\t\t\ttexture.update();\n\n\t\t}\n\n\t}\n\n\tfunction verifyColorSpace( texture, image ) {\n\n\t\tconst encoding = texture.encoding;\n\t\tconst format = texture.format;\n\t\tconst type = texture.type;\n\n\t\tif ( texture.isCompressedTexture === true || texture.isVideoTexture === true || texture.format === _SRGBAFormat ) return image;\n\n\t\tif ( encoding !== LinearEncoding ) {\n\n\t\t\t// sRGB\n\n\t\t\tif ( encoding === sRGBEncoding ) {\n\n\t\t\t\tif ( isWebGL2 === false ) {\n\n\t\t\t\t\t// in WebGL 1, try to use EXT_sRGB extension and unsized formats\n\n\t\t\t\t\tif ( extensions.has( 'EXT_sRGB' ) === true && format === RGBAFormat ) {\n\n\t\t\t\t\t\ttexture.format = _SRGBAFormat;\n\n\t\t\t\t\t\t// it's not possible to generate mips in WebGL 1 with this extension\n\n\t\t\t\t\t\ttexture.minFilter = LinearFilter;\n\t\t\t\t\t\ttexture.generateMipmaps = false;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// slow fallback (CPU decode)\n\n\t\t\t\t\t\timage = ImageUtils.sRGBToLinear( image );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// in WebGL 2 uncompressed textures can only be sRGB encoded if they have the RGBA8 format\n\n\t\t\t\t\tif ( format !== RGBAFormat || type !== UnsignedByteType ) {\n\n\t\t\t\t\t\tconsole.warn( 'THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.' );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconsole.error( 'THREE.WebGLTextures: Unsupported texture encoding:', encoding );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn image;\n\n\t}\n\n\t// backwards compatibility\n\n\tlet warnedTexture2D = false;\n\tlet warnedTextureCube = false;\n\n\tfunction safeSetTexture2D( texture, slot ) {\n\n\t\tif ( texture && texture.isWebGLRenderTarget ) {\n\n\t\t\tif ( warnedTexture2D === false ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLTextures.safeSetTexture2D: don\\'t use render targets as textures. Use their .texture property instead.' );\n\t\t\t\twarnedTexture2D = true;\n\n\t\t\t}\n\n\t\t\ttexture = texture.texture;\n\n\t\t}\n\n\t\tsetTexture2D( texture, slot );\n\n\t}\n\n\tfunction safeSetTextureCube( texture, slot ) {\n\n\t\tif ( texture && texture.isWebGLCubeRenderTarget ) {\n\n\t\t\tif ( warnedTextureCube === false ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLTextures.safeSetTextureCube: don\\'t use cube render targets as textures. Use their .texture property instead.' );\n\t\t\t\twarnedTextureCube = true;\n\n\t\t\t}\n\n\t\t\ttexture = texture.texture;\n\n\t\t}\n\n\n\t\tsetTextureCube( texture, slot );\n\n\t}\n\n\t//\n\n\tthis.allocateTextureUnit = allocateTextureUnit;\n\tthis.resetTextureUnits = resetTextureUnits;\n\n\tthis.setTexture2D = setTexture2D;\n\tthis.setTexture2DArray = setTexture2DArray;\n\tthis.setTexture3D = setTexture3D;\n\tthis.setTextureCube = setTextureCube;\n\tthis.rebindTextures = rebindTextures;\n\tthis.setupRenderTarget = setupRenderTarget;\n\tthis.updateRenderTargetMipmap = updateRenderTargetMipmap;\n\tthis.updateMultisampleRenderTarget = updateMultisampleRenderTarget;\n\tthis.setupDepthRenderbuffer = setupDepthRenderbuffer;\n\tthis.setupFrameBufferTexture = setupFrameBufferTexture;\n\n\tthis.safeSetTexture2D = safeSetTexture2D;\n\tthis.safeSetTextureCube = safeSetTextureCube;\n\n}\n\nfunction WebGLUtils( gl, extensions, capabilities ) {\n\n\tconst isWebGL2 = capabilities.isWebGL2;\n\n\tfunction convert( p, encoding = null ) {\n\n\t\tlet extension;\n\n\t\tif ( p === UnsignedByteType ) return 5121;\n\t\tif ( p === UnsignedShort4444Type ) return 32819;\n\t\tif ( p === UnsignedShort5551Type ) return 32820;\n\n\t\tif ( p === ByteType ) return 5120;\n\t\tif ( p === ShortType ) return 5122;\n\t\tif ( p === UnsignedShortType ) return 5123;\n\t\tif ( p === IntType ) return 5124;\n\t\tif ( p === UnsignedIntType ) return 5125;\n\t\tif ( p === FloatType ) return 5126;\n\n\t\tif ( p === HalfFloatType ) {\n\n\t\t\tif ( isWebGL2 ) return 5131;\n\n\t\t\textension = extensions.get( 'OES_texture_half_float' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\treturn extension.HALF_FLOAT_OES;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( p === AlphaFormat ) return 6406;\n\t\tif ( p === RGBAFormat ) return 6408;\n\t\tif ( p === LuminanceFormat ) return 6409;\n\t\tif ( p === LuminanceAlphaFormat ) return 6410;\n\t\tif ( p === DepthFormat ) return 6402;\n\t\tif ( p === DepthStencilFormat ) return 34041;\n\t\tif ( p === RedFormat ) return 6403;\n\n\t\tif ( p === RGBFormat ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: THREE.RGBFormat has been removed. Use THREE.RGBAFormat instead. https://github.com/mrdoob/three.js/pull/23228' );\n\t\t\treturn 6408;\n\n\t\t}\n\n\t\t// WebGL 1 sRGB fallback\n\n\t\tif ( p === _SRGBAFormat ) {\n\n\t\t\textension = extensions.get( 'EXT_sRGB' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\treturn extension.SRGB_ALPHA_EXT;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// WebGL2 formats.\n\n\t\tif ( p === RedIntegerFormat ) return 36244;\n\t\tif ( p === RGFormat ) return 33319;\n\t\tif ( p === RGIntegerFormat ) return 33320;\n\t\tif ( p === RGBAIntegerFormat ) return 36249;\n\n\t\t// S3TC\n\n\t\tif ( p === RGB_S3TC_DXT1_Format || p === RGBA_S3TC_DXT1_Format || p === RGBA_S3TC_DXT3_Format || p === RGBA_S3TC_DXT5_Format ) {\n\n\t\t\tif ( encoding === sRGBEncoding ) {\n\n\t\t\t\textension = extensions.get( 'WEBGL_compressed_texture_s3tc_srgb' );\n\n\t\t\t\tif ( extension !== null ) {\n\n\t\t\t\t\tif ( p === RGB_S3TC_DXT1_Format ) return extension.COMPRESSED_SRGB_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT1_Format ) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT3_Format ) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT5_Format ) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\textension = extensions.get( 'WEBGL_compressed_texture_s3tc' );\n\n\t\t\t\tif ( extension !== null ) {\n\n\t\t\t\t\tif ( p === RGB_S3TC_DXT1_Format ) return extension.COMPRESSED_RGB_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT1_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT3_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT5_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT;\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// PVRTC\n\n\t\tif ( p === RGB_PVRTC_4BPPV1_Format || p === RGB_PVRTC_2BPPV1_Format || p === RGBA_PVRTC_4BPPV1_Format || p === RGBA_PVRTC_2BPPV1_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_pvrtc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGB_PVRTC_4BPPV1_Format ) return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;\n\t\t\t\tif ( p === RGB_PVRTC_2BPPV1_Format ) return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;\n\t\t\t\tif ( p === RGBA_PVRTC_4BPPV1_Format ) return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;\n\t\t\t\tif ( p === RGBA_PVRTC_2BPPV1_Format ) return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// ETC1\n\n\t\tif ( p === RGB_ETC1_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_etc1' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\treturn extension.COMPRESSED_RGB_ETC1_WEBGL;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// ETC2\n\n\t\tif ( p === RGB_ETC2_Format || p === RGBA_ETC2_EAC_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_etc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGB_ETC2_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ETC2 : extension.COMPRESSED_RGB8_ETC2;\n\t\t\t\tif ( p === RGBA_ETC2_EAC_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC : extension.COMPRESSED_RGBA8_ETC2_EAC;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// ASTC\n\n\t\tif ( p === RGBA_ASTC_4x4_Format || p === RGBA_ASTC_5x4_Format || p === RGBA_ASTC_5x5_Format ||\n\t\t\tp === RGBA_ASTC_6x5_Format || p === RGBA_ASTC_6x6_Format || p === RGBA_ASTC_8x5_Format ||\n\t\t\tp === RGBA_ASTC_8x6_Format || p === RGBA_ASTC_8x8_Format || p === RGBA_ASTC_10x5_Format ||\n\t\t\tp === RGBA_ASTC_10x6_Format || p === RGBA_ASTC_10x8_Format || p === RGBA_ASTC_10x10_Format ||\n\t\t\tp === RGBA_ASTC_12x10_Format || p === RGBA_ASTC_12x12_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_astc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGBA_ASTC_4x4_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR : extension.COMPRESSED_RGBA_ASTC_4x4_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_5x4_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR : extension.COMPRESSED_RGBA_ASTC_5x4_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_5x5_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR : extension.COMPRESSED_RGBA_ASTC_5x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_6x5_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR : extension.COMPRESSED_RGBA_ASTC_6x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_6x6_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR : extension.COMPRESSED_RGBA_ASTC_6x6_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_8x5_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR : extension.COMPRESSED_RGBA_ASTC_8x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_8x6_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR : extension.COMPRESSED_RGBA_ASTC_8x6_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_8x8_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR : extension.COMPRESSED_RGBA_ASTC_8x8_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x5_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR : extension.COMPRESSED_RGBA_ASTC_10x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x6_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR : extension.COMPRESSED_RGBA_ASTC_10x6_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x8_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR : extension.COMPRESSED_RGBA_ASTC_10x8_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x10_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR : extension.COMPRESSED_RGBA_ASTC_10x10_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_12x10_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR : extension.COMPRESSED_RGBA_ASTC_12x10_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_12x12_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR : extension.COMPRESSED_RGBA_ASTC_12x12_KHR;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// BPTC\n\n\t\tif ( p === RGBA_BPTC_Format ) {\n\n\t\t\textension = extensions.get( 'EXT_texture_compression_bptc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGBA_BPTC_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT : extension.COMPRESSED_RGBA_BPTC_UNORM_EXT;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( p === UnsignedInt248Type ) {\n\n\t\t\tif ( isWebGL2 ) return 34042;\n\n\t\t\textension = extensions.get( 'WEBGL_depth_texture' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\treturn extension.UNSIGNED_INT_24_8_WEBGL;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\treturn { convert: convert };\n\n}\n\nclass ArrayCamera extends PerspectiveCamera {\n\n\tconstructor( array = [] ) {\n\n\t\tsuper();\n\n\t\tthis.cameras = array;\n\n\t}\n\n}\n\nArrayCamera.prototype.isArrayCamera = true;\n\nclass Group extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'Group';\n\n\t}\n\n}\n\nGroup.prototype.isGroup = true;\n\nconst _moveEvent = { type: 'move' };\n\nclass WebXRController {\n\n\tconstructor() {\n\n\t\tthis._targetRay = null;\n\t\tthis._grip = null;\n\t\tthis._hand = null;\n\n\t}\n\n\tgetHandSpace() {\n\n\t\tif ( this._hand === null ) {\n\n\t\t\tthis._hand = new Group();\n\t\t\tthis._hand.matrixAutoUpdate = false;\n\t\t\tthis._hand.visible = false;\n\n\t\t\tthis._hand.joints = {};\n\t\t\tthis._hand.inputState = { pinching: false };\n\n\t\t}\n\n\t\treturn this._hand;\n\n\t}\n\n\tgetTargetRaySpace() {\n\n\t\tif ( this._targetRay === null ) {\n\n\t\t\tthis._targetRay = new Group();\n\t\t\tthis._targetRay.matrixAutoUpdate = false;\n\t\t\tthis._targetRay.visible = false;\n\t\t\tthis._targetRay.hasLinearVelocity = false;\n\t\t\tthis._targetRay.linearVelocity = new Vector3();\n\t\t\tthis._targetRay.hasAngularVelocity = false;\n\t\t\tthis._targetRay.angularVelocity = new Vector3();\n\n\t\t}\n\n\t\treturn this._targetRay;\n\n\t}\n\n\tgetGripSpace() {\n\n\t\tif ( this._grip === null ) {\n\n\t\t\tthis._grip = new Group();\n\t\t\tthis._grip.matrixAutoUpdate = false;\n\t\t\tthis._grip.visible = false;\n\t\t\tthis._grip.hasLinearVelocity = false;\n\t\t\tthis._grip.linearVelocity = new Vector3();\n\t\t\tthis._grip.hasAngularVelocity = false;\n\t\t\tthis._grip.angularVelocity = new Vector3();\n\n\t\t}\n\n\t\treturn this._grip;\n\n\t}\n\n\tdispatchEvent( event ) {\n\n\t\tif ( this._targetRay !== null ) {\n\n\t\t\tthis._targetRay.dispatchEvent( event );\n\n\t\t}\n\n\t\tif ( this._grip !== null ) {\n\n\t\t\tthis._grip.dispatchEvent( event );\n\n\t\t}\n\n\t\tif ( this._hand !== null ) {\n\n\t\t\tthis._hand.dispatchEvent( event );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tdisconnect( inputSource ) {\n\n\t\tthis.dispatchEvent( { type: 'disconnected', data: inputSource } );\n\n\t\tif ( this._targetRay !== null ) {\n\n\t\t\tthis._targetRay.visible = false;\n\n\t\t}\n\n\t\tif ( this._grip !== null ) {\n\n\t\t\tthis._grip.visible = false;\n\n\t\t}\n\n\t\tif ( this._hand !== null ) {\n\n\t\t\tthis._hand.visible = false;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tupdate( inputSource, frame, referenceSpace ) {\n\n\t\tlet inputPose = null;\n\t\tlet gripPose = null;\n\t\tlet handPose = null;\n\n\t\tconst targetRay = this._targetRay;\n\t\tconst grip = this._grip;\n\t\tconst hand = this._hand;\n\n\t\tif ( inputSource && frame.session.visibilityState !== 'visible-blurred' ) {\n\n\t\t\tif ( targetRay !== null ) {\n\n\t\t\t\tinputPose = frame.getPose( inputSource.targetRaySpace, referenceSpace );\n\n\t\t\t\tif ( inputPose !== null ) {\n\n\t\t\t\t\ttargetRay.matrix.fromArray( inputPose.transform.matrix );\n\t\t\t\t\ttargetRay.matrix.decompose( targetRay.position, targetRay.rotation, targetRay.scale );\n\n\t\t\t\t\tif ( inputPose.linearVelocity ) {\n\n\t\t\t\t\t\ttargetRay.hasLinearVelocity = true;\n\t\t\t\t\t\ttargetRay.linearVelocity.copy( inputPose.linearVelocity );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ttargetRay.hasLinearVelocity = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( inputPose.angularVelocity ) {\n\n\t\t\t\t\t\ttargetRay.hasAngularVelocity = true;\n\t\t\t\t\t\ttargetRay.angularVelocity.copy( inputPose.angularVelocity );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ttargetRay.hasAngularVelocity = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.dispatchEvent( _moveEvent );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( hand && inputSource.hand ) {\n\n\t\t\t\thandPose = true;\n\n\t\t\t\tfor ( const inputjoint of inputSource.hand.values() ) {\n\n\t\t\t\t\t// Update the joints groups with the XRJoint poses\n\t\t\t\t\tconst jointPose = frame.getJointPose( inputjoint, referenceSpace );\n\n\t\t\t\t\tif ( hand.joints[ inputjoint.jointName ] === undefined ) {\n\n\t\t\t\t\t\t// The transform of this joint will be updated with the joint pose on each frame\n\t\t\t\t\t\tconst joint = new Group();\n\t\t\t\t\t\tjoint.matrixAutoUpdate = false;\n\t\t\t\t\t\tjoint.visible = false;\n\t\t\t\t\t\thand.joints[ inputjoint.jointName ] = joint;\n\t\t\t\t\t\t// ??\n\t\t\t\t\t\thand.add( joint );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst joint = hand.joints[ inputjoint.jointName ];\n\n\t\t\t\t\tif ( jointPose !== null ) {\n\n\t\t\t\t\t\tjoint.matrix.fromArray( jointPose.transform.matrix );\n\t\t\t\t\t\tjoint.matrix.decompose( joint.position, joint.rotation, joint.scale );\n\t\t\t\t\t\tjoint.jointRadius = jointPose.radius;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tjoint.visible = jointPose !== null;\n\n\t\t\t\t}\n\n\t\t\t\t// Custom events\n\n\t\t\t\t// Check pinchz\n\t\t\t\tconst indexTip = hand.joints[ 'index-finger-tip' ];\n\t\t\t\tconst thumbTip = hand.joints[ 'thumb-tip' ];\n\t\t\t\tconst distance = indexTip.position.distanceTo( thumbTip.position );\n\n\t\t\t\tconst distanceToPinch = 0.02;\n\t\t\t\tconst threshold = 0.005;\n\n\t\t\t\tif ( hand.inputState.pinching && distance > distanceToPinch + threshold ) {\n\n\t\t\t\t\thand.inputState.pinching = false;\n\t\t\t\t\tthis.dispatchEvent( {\n\t\t\t\t\t\ttype: 'pinchend',\n\t\t\t\t\t\thandedness: inputSource.handedness,\n\t\t\t\t\t\ttarget: this\n\t\t\t\t\t} );\n\n\t\t\t\t} else if ( ! hand.inputState.pinching && distance <= distanceToPinch - threshold ) {\n\n\t\t\t\t\thand.inputState.pinching = true;\n\t\t\t\t\tthis.dispatchEvent( {\n\t\t\t\t\t\ttype: 'pinchstart',\n\t\t\t\t\t\thandedness: inputSource.handedness,\n\t\t\t\t\t\ttarget: this\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( grip !== null && inputSource.gripSpace ) {\n\n\t\t\t\t\tgripPose = frame.getPose( inputSource.gripSpace, referenceSpace );\n\n\t\t\t\t\tif ( gripPose !== null ) {\n\n\t\t\t\t\t\tgrip.matrix.fromArray( gripPose.transform.matrix );\n\t\t\t\t\t\tgrip.matrix.decompose( grip.position, grip.rotation, grip.scale );\n\n\t\t\t\t\t\tif ( gripPose.linearVelocity ) {\n\n\t\t\t\t\t\t\tgrip.hasLinearVelocity = true;\n\t\t\t\t\t\t\tgrip.linearVelocity.copy( gripPose.linearVelocity );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tgrip.hasLinearVelocity = false;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( gripPose.angularVelocity ) {\n\n\t\t\t\t\t\t\tgrip.hasAngularVelocity = true;\n\t\t\t\t\t\t\tgrip.angularVelocity.copy( gripPose.angularVelocity );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tgrip.hasAngularVelocity = false;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( targetRay !== null ) {\n\n\t\t\ttargetRay.visible = ( inputPose !== null );\n\n\t\t}\n\n\t\tif ( grip !== null ) {\n\n\t\t\tgrip.visible = ( gripPose !== null );\n\n\t\t}\n\n\t\tif ( hand !== null ) {\n\n\t\t\thand.visible = ( handPose !== null );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass DepthTexture extends Texture {\n\n\tconstructor( width, height, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format ) {\n\n\t\tformat = format !== undefined ? format : DepthFormat;\n\n\t\tif ( format !== DepthFormat && format !== DepthStencilFormat ) {\n\n\t\t\tthrow new Error( 'DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat' );\n\n\t\t}\n\n\t\tif ( type === undefined && format === DepthFormat ) type = UnsignedShortType;\n\t\tif ( type === undefined && format === DepthStencilFormat ) type = UnsignedInt248Type;\n\n\t\tsuper( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\tthis.image = { width: width, height: height };\n\n\t\tthis.magFilter = magFilter !== undefined ? magFilter : NearestFilter;\n\t\tthis.minFilter = minFilter !== undefined ? minFilter : NearestFilter;\n\n\t\tthis.flipY = false;\n\t\tthis.generateMipmaps\t= false;\n\n\t}\n\n\n}\n\nDepthTexture.prototype.isDepthTexture = true;\n\nclass WebXRManager extends EventDispatcher {\n\n\tconstructor( renderer, gl ) {\n\n\t\tsuper();\n\n\t\tconst scope = this;\n\n\t\tlet session = null;\n\t\tlet framebufferScaleFactor = 1.0;\n\n\t\tlet referenceSpace = null;\n\t\tlet referenceSpaceType = 'local-floor';\n\t\tconst hasMultisampledRenderToTexture = renderer.extensions.has( 'WEBGL_multisampled_render_to_texture' );\n\n\t\tlet pose = null;\n\t\tlet glBinding = null;\n\t\tlet glProjLayer = null;\n\t\tlet glBaseLayer = null;\n\t\tlet isMultisample = false;\n\t\tlet xrFrame = null;\n\t\tconst attributes = gl.getContextAttributes();\n\t\tlet initialRenderTarget = null;\n\t\tlet newRenderTarget = null;\n\n\t\tconst controllers = [];\n\t\tconst inputSourcesMap = new Map();\n\n\t\t//\n\n\t\tconst cameraL = new PerspectiveCamera();\n\t\tcameraL.layers.enable( 1 );\n\t\tcameraL.viewport = new Vector4();\n\n\t\tconst cameraR = new PerspectiveCamera();\n\t\tcameraR.layers.enable( 2 );\n\t\tcameraR.viewport = new Vector4();\n\n\t\tconst cameras = [ cameraL, cameraR ];\n\n\t\tconst cameraVR = new ArrayCamera();\n\t\tcameraVR.layers.enable( 1 );\n\t\tcameraVR.layers.enable( 2 );\n\n\t\tlet _currentDepthNear = null;\n\t\tlet _currentDepthFar = null;\n\n\t\t//\n\n\t\tthis.cameraAutoUpdate = true;\n\t\tthis.enabled = false;\n\n\t\tthis.isPresenting = false;\n\n\t\tthis.getController = function ( index ) {\n\n\t\t\tlet controller = controllers[ index ];\n\n\t\t\tif ( controller === undefined ) {\n\n\t\t\t\tcontroller = new WebXRController();\n\t\t\t\tcontrollers[ index ] = controller;\n\n\t\t\t}\n\n\t\t\treturn controller.getTargetRaySpace();\n\n\t\t};\n\n\t\tthis.getControllerGrip = function ( index ) {\n\n\t\t\tlet controller = controllers[ index ];\n\n\t\t\tif ( controller === undefined ) {\n\n\t\t\t\tcontroller = new WebXRController();\n\t\t\t\tcontrollers[ index ] = controller;\n\n\t\t\t}\n\n\t\t\treturn controller.getGripSpace();\n\n\t\t};\n\n\t\tthis.getHand = function ( index ) {\n\n\t\t\tlet controller = controllers[ index ];\n\n\t\t\tif ( controller === undefined ) {\n\n\t\t\t\tcontroller = new WebXRController();\n\t\t\t\tcontrollers[ index ] = controller;\n\n\t\t\t}\n\n\t\t\treturn controller.getHandSpace();\n\n\t\t};\n\n\t\t//\n\n\t\tfunction onSessionEvent( event ) {\n\n\t\t\tconst controller = inputSourcesMap.get( event.inputSource );\n\n\t\t\tif ( controller ) {\n\n\t\t\t\tcontroller.dispatchEvent( { type: event.type, data: event.inputSource } );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onSessionEnd() {\n\n\t\t\tinputSourcesMap.forEach( function ( controller, inputSource ) {\n\n\t\t\t\tcontroller.disconnect( inputSource );\n\n\t\t\t} );\n\n\t\t\tinputSourcesMap.clear();\n\n\t\t\t_currentDepthNear = null;\n\t\t\t_currentDepthFar = null;\n\n\t\t\t// restore framebuffer/rendering state\n\n\t\t\trenderer.setRenderTarget( initialRenderTarget );\n\n\t\t\tglBaseLayer = null;\n\t\t\tglProjLayer = null;\n\t\t\tglBinding = null;\n\t\t\tsession = null;\n\t\t\tnewRenderTarget = null;\n\n\t\t\t//\n\n\t\t\tanimation.stop();\n\n\t\t\tscope.isPresenting = false;\n\n\t\t\tscope.dispatchEvent( { type: 'sessionend' } );\n\n\t\t}\n\n\t\tthis.setFramebufferScaleFactor = function ( value ) {\n\n\t\t\tframebufferScaleFactor = value;\n\n\t\t\tif ( scope.isPresenting === true ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebXRManager: Cannot change framebuffer scale while presenting.' );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.setReferenceSpaceType = function ( value ) {\n\n\t\t\treferenceSpaceType = value;\n\n\t\t\tif ( scope.isPresenting === true ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebXRManager: Cannot change reference space type while presenting.' );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.getReferenceSpace = function () {\n\n\t\t\treturn referenceSpace;\n\n\t\t};\n\n\t\tthis.getBaseLayer = function () {\n\n\t\t\treturn glProjLayer !== null ? glProjLayer : glBaseLayer;\n\n\t\t};\n\n\t\tthis.getBinding = function () {\n\n\t\t\treturn glBinding;\n\n\t\t};\n\n\t\tthis.getFrame = function () {\n\n\t\t\treturn xrFrame;\n\n\t\t};\n\n\t\tthis.getSession = function () {\n\n\t\t\treturn session;\n\n\t\t};\n\n\t\tthis.setSession = async function ( value ) {\n\n\t\t\tsession = value;\n\n\t\t\tif ( session !== null ) {\n\n\t\t\t\tinitialRenderTarget = renderer.getRenderTarget();\n\n\t\t\t\tsession.addEventListener( 'select', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'selectstart', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'selectend', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'squeeze', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'squeezestart', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'squeezeend', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'end', onSessionEnd );\n\t\t\t\tsession.addEventListener( 'inputsourceschange', onInputSourcesChange );\n\n\t\t\t\tif ( attributes.xrCompatible !== true ) {\n\n\t\t\t\t\tawait gl.makeXRCompatible();\n\n\t\t\t\t}\n\n\t\t\t\tif ( ( session.renderState.layers === undefined ) || ( renderer.capabilities.isWebGL2 === false ) ) {\n\n\t\t\t\t\tconst layerInit = {\n\t\t\t\t\t\tantialias: ( session.renderState.layers === undefined ) ? attributes.antialias : true,\n\t\t\t\t\t\talpha: attributes.alpha,\n\t\t\t\t\t\tdepth: attributes.depth,\n\t\t\t\t\t\tstencil: attributes.stencil,\n\t\t\t\t\t\tframebufferScaleFactor: framebufferScaleFactor\n\t\t\t\t\t};\n\n\t\t\t\t\tglBaseLayer = new XRWebGLLayer( session, gl, layerInit );\n\n\t\t\t\t\tsession.updateRenderState( { baseLayer: glBaseLayer } );\n\n\t\t\t\t\tnewRenderTarget = new WebGLRenderTarget(\n\t\t\t\t\t\tglBaseLayer.framebufferWidth,\n\t\t\t\t\t\tglBaseLayer.framebufferHeight,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tformat: RGBAFormat,\n\t\t\t\t\t\t\ttype: UnsignedByteType,\n\t\t\t\t\t\t\tencoding: renderer.outputEncoding\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t} else {\n\n\t\t\t\t\tisMultisample = attributes.antialias;\n\t\t\t\t\tlet depthFormat = null;\n\t\t\t\t\tlet depthType = null;\n\t\t\t\t\tlet glDepthFormat = null;\n\n\t\t\t\t\tif ( attributes.depth ) {\n\n\t\t\t\t\t\tglDepthFormat = attributes.stencil ? 35056 : 33190;\n\t\t\t\t\t\tdepthFormat = attributes.stencil ? DepthStencilFormat : DepthFormat;\n\t\t\t\t\t\tdepthType = attributes.stencil ? UnsignedInt248Type : UnsignedShortType;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst projectionlayerInit = {\n\t\t\t\t\t\tcolorFormat: ( renderer.outputEncoding === sRGBEncoding ) ? 35907 : 32856,\n\t\t\t\t\t\tdepthFormat: glDepthFormat,\n\t\t\t\t\t\tscaleFactor: framebufferScaleFactor\n\t\t\t\t\t};\n\n\t\t\t\t\tglBinding = new XRWebGLBinding( session, gl );\n\n\t\t\t\t\tglProjLayer = glBinding.createProjectionLayer( projectionlayerInit );\n\n\t\t\t\t\tsession.updateRenderState( { layers: [ glProjLayer ] } );\n\n\t\t\t\t\tif ( isMultisample ) {\n\n\t\t\t\t\t\tnewRenderTarget = new WebGLMultisampleRenderTarget(\n\t\t\t\t\t\t\tglProjLayer.textureWidth,\n\t\t\t\t\t\t\tglProjLayer.textureHeight,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tformat: RGBAFormat,\n\t\t\t\t\t\t\t\ttype: UnsignedByteType,\n\t\t\t\t\t\t\t\tdepthTexture: new DepthTexture( glProjLayer.textureWidth, glProjLayer.textureHeight, depthType, undefined, undefined, undefined, undefined, undefined, undefined, depthFormat ),\n\t\t\t\t\t\t\t\tstencilBuffer: attributes.stencil,\n\t\t\t\t\t\t\t\tignoreDepth: glProjLayer.ignoreDepthValues,\n\t\t\t\t\t\t\t\tuseRenderToTexture: hasMultisampledRenderToTexture,\n\t\t\t\t\t\t\t\tencoding: renderer.outputEncoding\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tnewRenderTarget = new WebGLRenderTarget(\n\t\t\t\t\t\t\tglProjLayer.textureWidth,\n\t\t\t\t\t\t\tglProjLayer.textureHeight,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tformat: RGBAFormat,\n\t\t\t\t\t\t\t\ttype: UnsignedByteType,\n\t\t\t\t\t\t\t\tdepthTexture: new DepthTexture( glProjLayer.textureWidth, glProjLayer.textureHeight, depthType, undefined, undefined, undefined, undefined, undefined, undefined, depthFormat ),\n\t\t\t\t\t\t\t\tstencilBuffer: attributes.stencil,\n\t\t\t\t\t\t\t\tignoreDepth: glProjLayer.ignoreDepthValues,\n\t\t\t\t\t\t\t\tencoding: renderer.outputEncoding\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tnewRenderTarget.isXRRenderTarget = true; // TODO Remove this when possible, see #23278\n\n\t\t\t\t// Set foveation to maximum.\n\t\t\t\tthis.setFoveation( 1.0 );\n\n\t\t\t\treferenceSpace = await session.requestReferenceSpace( referenceSpaceType );\n\n\t\t\t\tanimation.setContext( session );\n\t\t\t\tanimation.start();\n\n\t\t\t\tscope.isPresenting = true;\n\n\t\t\t\tscope.dispatchEvent( { type: 'sessionstart' } );\n\n\t\t\t}\n\n\t\t};\n\n\t\tfunction onInputSourcesChange( event ) {\n\n\t\t\tconst inputSources = session.inputSources;\n\n\t\t\t// Assign inputSources to available controllers\n\n\t\t\tfor ( let i = 0; i < controllers.length; i ++ ) {\n\n\t\t\t\tinputSourcesMap.set( inputSources[ i ], controllers[ i ] );\n\n\t\t\t}\n\n\t\t\t// Notify disconnected\n\n\t\t\tfor ( let i = 0; i < event.removed.length; i ++ ) {\n\n\t\t\t\tconst inputSource = event.removed[ i ];\n\t\t\t\tconst controller = inputSourcesMap.get( inputSource );\n\n\t\t\t\tif ( controller ) {\n\n\t\t\t\t\tcontroller.dispatchEvent( { type: 'disconnected', data: inputSource } );\n\t\t\t\t\tinputSourcesMap.delete( inputSource );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Notify connected\n\n\t\t\tfor ( let i = 0; i < event.added.length; i ++ ) {\n\n\t\t\t\tconst inputSource = event.added[ i ];\n\t\t\t\tconst controller = inputSourcesMap.get( inputSource );\n\n\t\t\t\tif ( controller ) {\n\n\t\t\t\t\tcontroller.dispatchEvent( { type: 'connected', data: inputSource } );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tconst cameraLPos = new Vector3();\n\t\tconst cameraRPos = new Vector3();\n\n\t\t/**\n\t\t * Assumes 2 cameras that are parallel and share an X-axis, and that\n\t\t * the cameras' projection and world matrices have already been set.\n\t\t * And that near and far planes are identical for both cameras.\n\t\t * Visualization of this technique: https://computergraphics.stackexchange.com/a/4765\n\t\t */\n\t\tfunction setProjectionFromUnion( camera, cameraL, cameraR ) {\n\n\t\t\tcameraLPos.setFromMatrixPosition( cameraL.matrixWorld );\n\t\t\tcameraRPos.setFromMatrixPosition( cameraR.matrixWorld );\n\n\t\t\tconst ipd = cameraLPos.distanceTo( cameraRPos );\n\n\t\t\tconst projL = cameraL.projectionMatrix.elements;\n\t\t\tconst projR = cameraR.projectionMatrix.elements;\n\n\t\t\t// VR systems will have identical far and near planes, and\n\t\t\t// most likely identical top and bottom frustum extents.\n\t\t\t// Use the left camera for these values.\n\t\t\tconst near = projL[ 14 ] / ( projL[ 10 ] - 1 );\n\t\t\tconst far = projL[ 14 ] / ( projL[ 10 ] + 1 );\n\t\t\tconst topFov = ( projL[ 9 ] + 1 ) / projL[ 5 ];\n\t\t\tconst bottomFov = ( projL[ 9 ] - 1 ) / projL[ 5 ];\n\n\t\t\tconst leftFov = ( projL[ 8 ] - 1 ) / projL[ 0 ];\n\t\t\tconst rightFov = ( projR[ 8 ] + 1 ) / projR[ 0 ];\n\t\t\tconst left = near * leftFov;\n\t\t\tconst right = near * rightFov;\n\n\t\t\t// Calculate the new camera's position offset from the\n\t\t\t// left camera. xOffset should be roughly half `ipd`.\n\t\t\tconst zOffset = ipd / ( - leftFov + rightFov );\n\t\t\tconst xOffset = zOffset * - leftFov;\n\n\t\t\t// TODO: Better way to apply this offset?\n\t\t\tcameraL.matrixWorld.decompose( camera.position, camera.quaternion, camera.scale );\n\t\t\tcamera.translateX( xOffset );\n\t\t\tcamera.translateZ( zOffset );\n\t\t\tcamera.matrixWorld.compose( camera.position, camera.quaternion, camera.scale );\n\t\t\tcamera.matrixWorldInverse.copy( camera.matrixWorld ).invert();\n\n\t\t\t// Find the union of the frustum values of the cameras and scale\n\t\t\t// the values so that the near plane's position does not change in world space,\n\t\t\t// although must now be relative to the new union camera.\n\t\t\tconst near2 = near + zOffset;\n\t\t\tconst far2 = far + zOffset;\n\t\t\tconst left2 = left - xOffset;\n\t\t\tconst right2 = right + ( ipd - xOffset );\n\t\t\tconst top2 = topFov * far / far2 * near2;\n\t\t\tconst bottom2 = bottomFov * far / far2 * near2;\n\n\t\t\tcamera.projectionMatrix.makePerspective( left2, right2, top2, bottom2, near2, far2 );\n\n\t\t}\n\n\t\tfunction updateCamera( camera, parent ) {\n\n\t\t\tif ( parent === null ) {\n\n\t\t\t\tcamera.matrixWorld.copy( camera.matrix );\n\n\t\t\t} else {\n\n\t\t\t\tcamera.matrixWorld.multiplyMatrices( parent.matrixWorld, camera.matrix );\n\n\t\t\t}\n\n\t\t\tcamera.matrixWorldInverse.copy( camera.matrixWorld ).invert();\n\n\t\t}\n\n\t\tthis.updateCamera = function ( camera ) {\n\n\t\t\tif ( session === null ) return;\n\n\t\t\tcameraVR.near = cameraR.near = cameraL.near = camera.near;\n\t\t\tcameraVR.far = cameraR.far = cameraL.far = camera.far;\n\n\t\t\tif ( _currentDepthNear !== cameraVR.near || _currentDepthFar !== cameraVR.far ) {\n\n\t\t\t\t// Note that the new renderState won't apply until the next frame. See #18320\n\n\t\t\t\tsession.updateRenderState( {\n\t\t\t\t\tdepthNear: cameraVR.near,\n\t\t\t\t\tdepthFar: cameraVR.far\n\t\t\t\t} );\n\n\t\t\t\t_currentDepthNear = cameraVR.near;\n\t\t\t\t_currentDepthFar = cameraVR.far;\n\n\t\t\t}\n\n\t\t\tconst parent = camera.parent;\n\t\t\tconst cameras = cameraVR.cameras;\n\n\t\t\tupdateCamera( cameraVR, parent );\n\n\t\t\tfor ( let i = 0; i < cameras.length; i ++ ) {\n\n\t\t\t\tupdateCamera( cameras[ i ], parent );\n\n\t\t\t}\n\n\t\t\tcameraVR.matrixWorld.decompose( cameraVR.position, cameraVR.quaternion, cameraVR.scale );\n\n\t\t\t// update user camera and its children\n\n\t\t\tcamera.position.copy( cameraVR.position );\n\t\t\tcamera.quaternion.copy( cameraVR.quaternion );\n\t\t\tcamera.scale.copy( cameraVR.scale );\n\t\t\tcamera.matrix.copy( cameraVR.matrix );\n\t\t\tcamera.matrixWorld.copy( cameraVR.matrixWorld );\n\n\t\t\tconst children = camera.children;\n\n\t\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\t\tchildren[ i ].updateMatrixWorld( true );\n\n\t\t\t}\n\n\t\t\t// update projection matrix for proper view frustum culling\n\n\t\t\tif ( cameras.length === 2 ) {\n\n\t\t\t\tsetProjectionFromUnion( cameraVR, cameraL, cameraR );\n\n\t\t\t} else {\n\n\t\t\t\t// assume single camera setup (AR)\n\n\t\t\t\tcameraVR.projectionMatrix.copy( cameraL.projectionMatrix );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.getCamera = function () {\n\n\t\t\treturn cameraVR;\n\n\t\t};\n\n\t\tthis.getFoveation = function () {\n\n\t\t\tif ( glProjLayer !== null ) {\n\n\t\t\t\treturn glProjLayer.fixedFoveation;\n\n\t\t\t}\n\n\t\t\tif ( glBaseLayer !== null ) {\n\n\t\t\t\treturn glBaseLayer.fixedFoveation;\n\n\t\t\t}\n\n\t\t\treturn undefined;\n\n\t\t};\n\n\t\tthis.setFoveation = function ( foveation ) {\n\n\t\t\t// 0 = no foveation = full resolution\n\t\t\t// 1 = maximum foveation = the edges render at lower resolution\n\n\t\t\tif ( glProjLayer !== null ) {\n\n\t\t\t\tglProjLayer.fixedFoveation = foveation;\n\n\t\t\t}\n\n\t\t\tif ( glBaseLayer !== null && glBaseLayer.fixedFoveation !== undefined ) {\n\n\t\t\t\tglBaseLayer.fixedFoveation = foveation;\n\n\t\t\t}\n\n\t\t};\n\n\t\t// Animation Loop\n\n\t\tlet onAnimationFrameCallback = null;\n\n\t\tfunction onAnimationFrame( time, frame ) {\n\n\t\t\tpose = frame.getViewerPose( referenceSpace );\n\t\t\txrFrame = frame;\n\n\t\t\tif ( pose !== null ) {\n\n\t\t\t\tconst views = pose.views;\n\n\t\t\t\tif ( glBaseLayer !== null ) {\n\n\t\t\t\t\trenderer.setRenderTargetFramebuffer( newRenderTarget, glBaseLayer.framebuffer );\n\t\t\t\t\trenderer.setRenderTarget( newRenderTarget );\n\n\t\t\t\t}\n\n\t\t\t\tlet cameraVRNeedsUpdate = false;\n\n\t\t\t\t// check if it's necessary to rebuild cameraVR's camera list\n\n\t\t\t\tif ( views.length !== cameraVR.cameras.length ) {\n\n\t\t\t\t\tcameraVR.cameras.length = 0;\n\t\t\t\t\tcameraVRNeedsUpdate = true;\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < views.length; i ++ ) {\n\n\t\t\t\t\tconst view = views[ i ];\n\n\t\t\t\t\tlet viewport = null;\n\n\t\t\t\t\tif ( glBaseLayer !== null ) {\n\n\t\t\t\t\t\tviewport = glBaseLayer.getViewport( view );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst glSubImage = glBinding.getViewSubImage( glProjLayer, view );\n\t\t\t\t\t\tviewport = glSubImage.viewport;\n\n\t\t\t\t\t\t// For side-by-side projection, we only produce a single texture for both eyes.\n\t\t\t\t\t\tif ( i === 0 ) {\n\n\t\t\t\t\t\t\trenderer.setRenderTargetTextures(\n\t\t\t\t\t\t\t\tnewRenderTarget,\n\t\t\t\t\t\t\t\tglSubImage.colorTexture,\n\t\t\t\t\t\t\t\tglProjLayer.ignoreDepthValues ? undefined : glSubImage.depthStencilTexture );\n\n\t\t\t\t\t\t\trenderer.setRenderTarget( newRenderTarget );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst camera = cameras[ i ];\n\n\t\t\t\t\tcamera.matrix.fromArray( view.transform.matrix );\n\t\t\t\t\tcamera.projectionMatrix.fromArray( view.projectionMatrix );\n\t\t\t\t\tcamera.viewport.set( viewport.x, viewport.y, viewport.width, viewport.height );\n\n\t\t\t\t\tif ( i === 0 ) {\n\n\t\t\t\t\t\tcameraVR.matrix.copy( camera.matrix );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( cameraVRNeedsUpdate === true ) {\n\n\t\t\t\t\t\tcameraVR.cameras.push( camera );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tconst inputSources = session.inputSources;\n\n\t\t\tfor ( let i = 0; i < controllers.length; i ++ ) {\n\n\t\t\t\tconst controller = controllers[ i ];\n\t\t\t\tconst inputSource = inputSources[ i ];\n\n\t\t\t\tcontroller.update( inputSource, frame, referenceSpace );\n\n\t\t\t}\n\n\t\t\tif ( onAnimationFrameCallback ) onAnimationFrameCallback( time, frame );\n\n\t\t\txrFrame = null;\n\n\t\t}\n\n\t\tconst animation = new WebGLAnimation();\n\n\t\tanimation.setAnimationLoop( onAnimationFrame );\n\n\t\tthis.setAnimationLoop = function ( callback ) {\n\n\t\t\tonAnimationFrameCallback = callback;\n\n\t\t};\n\n\t\tthis.dispose = function () {};\n\n\t}\n\n}\n\nfunction WebGLMaterials( properties ) {\n\n\tfunction refreshFogUniforms( uniforms, fog ) {\n\n\t\tuniforms.fogColor.value.copy( fog.color );\n\n\t\tif ( fog.isFog ) {\n\n\t\t\tuniforms.fogNear.value = fog.near;\n\t\t\tuniforms.fogFar.value = fog.far;\n\n\t\t} else if ( fog.isFogExp2 ) {\n\n\t\t\tuniforms.fogDensity.value = fog.density;\n\n\t\t}\n\n\t}\n\n\tfunction refreshMaterialUniforms( uniforms, material, pixelRatio, height, transmissionRenderTarget ) {\n\n\t\tif ( material.isMeshBasicMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isMeshLambertMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsLambert( uniforms, material );\n\n\t\t} else if ( material.isMeshToonMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsToon( uniforms, material );\n\n\t\t} else if ( material.isMeshPhongMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsPhong( uniforms, material );\n\n\t\t} else if ( material.isMeshStandardMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t\tif ( material.isMeshPhysicalMaterial ) {\n\n\t\t\t\trefreshUniformsPhysical( uniforms, material, transmissionRenderTarget );\n\n\t\t\t} else {\n\n\t\t\t\trefreshUniformsStandard( uniforms, material );\n\n\t\t\t}\n\n\t\t} else if ( material.isMeshMatcapMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsMatcap( uniforms, material );\n\n\t\t} else if ( material.isMeshDepthMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsDepth( uniforms, material );\n\n\t\t} else if ( material.isMeshDistanceMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsDistance( uniforms, material );\n\n\t\t} else if ( material.isMeshNormalMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsNormal( uniforms, material );\n\n\t\t} else if ( material.isLineBasicMaterial ) {\n\n\t\t\trefreshUniformsLine( uniforms, material );\n\n\t\t\tif ( material.isLineDashedMaterial ) {\n\n\t\t\t\trefreshUniformsDash( uniforms, material );\n\n\t\t\t}\n\n\t\t} else if ( material.isPointsMaterial ) {\n\n\t\t\trefreshUniformsPoints( uniforms, material, pixelRatio, height );\n\n\t\t} else if ( material.isSpriteMaterial ) {\n\n\t\t\trefreshUniformsSprites( uniforms, material );\n\n\t\t} else if ( material.isShadowMaterial ) {\n\n\t\t\tuniforms.color.value.copy( material.color );\n\t\t\tuniforms.opacity.value = material.opacity;\n\n\t\t} else if ( material.isShaderMaterial ) {\n\n\t\t\tmaterial.uniformsNeedUpdate = false; // #15581\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsCommon( uniforms, material ) {\n\n\t\tuniforms.opacity.value = material.opacity;\n\n\t\tif ( material.color ) {\n\n\t\t\tuniforms.diffuse.value.copy( material.color );\n\n\t\t}\n\n\t\tif ( material.emissive ) {\n\n\t\t\tuniforms.emissive.value.copy( material.emissive ).multiplyScalar( material.emissiveIntensity );\n\n\t\t}\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t}\n\n\t\tif ( material.alphaMap ) {\n\n\t\t\tuniforms.alphaMap.value = material.alphaMap;\n\n\t\t}\n\n\t\tif ( material.specularMap ) {\n\n\t\t\tuniforms.specularMap.value = material.specularMap;\n\n\t\t}\n\n\t\tif ( material.alphaTest > 0 ) {\n\n\t\t\tuniforms.alphaTest.value = material.alphaTest;\n\n\t\t}\n\n\t\tconst envMap = properties.get( material ).envMap;\n\n\t\tif ( envMap ) {\n\n\t\t\tuniforms.envMap.value = envMap;\n\n\t\t\tuniforms.flipEnvMap.value = ( envMap.isCubeTexture && envMap.isRenderTargetTexture === false ) ? - 1 : 1;\n\n\t\t\tuniforms.reflectivity.value = material.reflectivity;\n\t\t\tuniforms.ior.value = material.ior;\n\t\t\tuniforms.refractionRatio.value = material.refractionRatio;\n\n\t\t}\n\n\t\tif ( material.lightMap ) {\n\n\t\t\tuniforms.lightMap.value = material.lightMap;\n\t\t\tuniforms.lightMapIntensity.value = material.lightMapIntensity;\n\n\t\t}\n\n\t\tif ( material.aoMap ) {\n\n\t\t\tuniforms.aoMap.value = material.aoMap;\n\t\t\tuniforms.aoMapIntensity.value = material.aoMapIntensity;\n\n\t\t}\n\n\t\t// uv repeat and offset setting priorities\n\t\t// 1. color map\n\t\t// 2. specular map\n\t\t// 3. displacementMap map\n\t\t// 4. normal map\n\t\t// 5. bump map\n\t\t// 6. roughnessMap map\n\t\t// 7. metalnessMap map\n\t\t// 8. alphaMap map\n\t\t// 9. emissiveMap map\n\t\t// 10. clearcoat map\n\t\t// 11. clearcoat normal map\n\t\t// 12. clearcoat roughnessMap map\n\t\t// 13. specular intensity map\n\t\t// 14. specular tint map\n\t\t// 15. transmission map\n\t\t// 16. thickness map\n\n\t\tlet uvScaleMap;\n\n\t\tif ( material.map ) {\n\n\t\t\tuvScaleMap = material.map;\n\n\t\t} else if ( material.specularMap ) {\n\n\t\t\tuvScaleMap = material.specularMap;\n\n\t\t} else if ( material.displacementMap ) {\n\n\t\t\tuvScaleMap = material.displacementMap;\n\n\t\t} else if ( material.normalMap ) {\n\n\t\t\tuvScaleMap = material.normalMap;\n\n\t\t} else if ( material.bumpMap ) {\n\n\t\t\tuvScaleMap = material.bumpMap;\n\n\t\t} else if ( material.roughnessMap ) {\n\n\t\t\tuvScaleMap = material.roughnessMap;\n\n\t\t} else if ( material.metalnessMap ) {\n\n\t\t\tuvScaleMap = material.metalnessMap;\n\n\t\t} else if ( material.alphaMap ) {\n\n\t\t\tuvScaleMap = material.alphaMap;\n\n\t\t} else if ( material.emissiveMap ) {\n\n\t\t\tuvScaleMap = material.emissiveMap;\n\n\t\t} else if ( material.clearcoatMap ) {\n\n\t\t\tuvScaleMap = material.clearcoatMap;\n\n\t\t} else if ( material.clearcoatNormalMap ) {\n\n\t\t\tuvScaleMap = material.clearcoatNormalMap;\n\n\t\t} else if ( material.clearcoatRoughnessMap ) {\n\n\t\t\tuvScaleMap = material.clearcoatRoughnessMap;\n\n\t\t} else if ( material.specularIntensityMap ) {\n\n\t\t\tuvScaleMap = material.specularIntensityMap;\n\n\t\t} else if ( material.specularColorMap ) {\n\n\t\t\tuvScaleMap = material.specularColorMap;\n\n\t\t} else if ( material.transmissionMap ) {\n\n\t\t\tuvScaleMap = material.transmissionMap;\n\n\t\t} else if ( material.thicknessMap ) {\n\n\t\t\tuvScaleMap = material.thicknessMap;\n\n\t\t} else if ( material.sheenColorMap ) {\n\n\t\t\tuvScaleMap = material.sheenColorMap;\n\n\t\t} else if ( material.sheenRoughnessMap ) {\n\n\t\t\tuvScaleMap = material.sheenRoughnessMap;\n\n\t\t}\n\n\t\tif ( uvScaleMap !== undefined ) {\n\n\t\t\t// backwards compatibility\n\t\t\tif ( uvScaleMap.isWebGLRenderTarget ) {\n\n\t\t\t\tuvScaleMap = uvScaleMap.texture;\n\n\t\t\t}\n\n\t\t\tif ( uvScaleMap.matrixAutoUpdate === true ) {\n\n\t\t\t\tuvScaleMap.updateMatrix();\n\n\t\t\t}\n\n\t\t\tuniforms.uvTransform.value.copy( uvScaleMap.matrix );\n\n\t\t}\n\n\t\t// uv repeat and offset setting priorities for uv2\n\t\t// 1. ao map\n\t\t// 2. light map\n\n\t\tlet uv2ScaleMap;\n\n\t\tif ( material.aoMap ) {\n\n\t\t\tuv2ScaleMap = material.aoMap;\n\n\t\t} else if ( material.lightMap ) {\n\n\t\t\tuv2ScaleMap = material.lightMap;\n\n\t\t}\n\n\t\tif ( uv2ScaleMap !== undefined ) {\n\n\t\t\t// backwards compatibility\n\t\t\tif ( uv2ScaleMap.isWebGLRenderTarget ) {\n\n\t\t\t\tuv2ScaleMap = uv2ScaleMap.texture;\n\n\t\t\t}\n\n\t\t\tif ( uv2ScaleMap.matrixAutoUpdate === true ) {\n\n\t\t\t\tuv2ScaleMap.updateMatrix();\n\n\t\t\t}\n\n\t\t\tuniforms.uv2Transform.value.copy( uv2ScaleMap.matrix );\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsLine( uniforms, material ) {\n\n\t\tuniforms.diffuse.value.copy( material.color );\n\t\tuniforms.opacity.value = material.opacity;\n\n\t}\n\n\tfunction refreshUniformsDash( uniforms, material ) {\n\n\t\tuniforms.dashSize.value = material.dashSize;\n\t\tuniforms.totalSize.value = material.dashSize + material.gapSize;\n\t\tuniforms.scale.value = material.scale;\n\n\t}\n\n\tfunction refreshUniformsPoints( uniforms, material, pixelRatio, height ) {\n\n\t\tuniforms.diffuse.value.copy( material.color );\n\t\tuniforms.opacity.value = material.opacity;\n\t\tuniforms.size.value = material.size * pixelRatio;\n\t\tuniforms.scale.value = height * 0.5;\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t}\n\n\t\tif ( material.alphaMap ) {\n\n\t\t\tuniforms.alphaMap.value = material.alphaMap;\n\n\t\t}\n\n\t\tif ( material.alphaTest > 0 ) {\n\n\t\t\tuniforms.alphaTest.value = material.alphaTest;\n\n\t\t}\n\n\t\t// uv repeat and offset setting priorities\n\t\t// 1. color map\n\t\t// 2. alpha map\n\n\t\tlet uvScaleMap;\n\n\t\tif ( material.map ) {\n\n\t\t\tuvScaleMap = material.map;\n\n\t\t} else if ( material.alphaMap ) {\n\n\t\t\tuvScaleMap = material.alphaMap;\n\n\t\t}\n\n\t\tif ( uvScaleMap !== undefined ) {\n\n\t\t\tif ( uvScaleMap.matrixAutoUpdate === true ) {\n\n\t\t\t\tuvScaleMap.updateMatrix();\n\n\t\t\t}\n\n\t\t\tuniforms.uvTransform.value.copy( uvScaleMap.matrix );\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsSprites( uniforms, material ) {\n\n\t\tuniforms.diffuse.value.copy( material.color );\n\t\tuniforms.opacity.value = material.opacity;\n\t\tuniforms.rotation.value = material.rotation;\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t}\n\n\t\tif ( material.alphaMap ) {\n\n\t\t\tuniforms.alphaMap.value = material.alphaMap;\n\n\t\t}\n\n\t\tif ( material.alphaTest > 0 ) {\n\n\t\t\tuniforms.alphaTest.value = material.alphaTest;\n\n\t\t}\n\n\t\t// uv repeat and offset setting priorities\n\t\t// 1. color map\n\t\t// 2. alpha map\n\n\t\tlet uvScaleMap;\n\n\t\tif ( material.map ) {\n\n\t\t\tuvScaleMap = material.map;\n\n\t\t} else if ( material.alphaMap ) {\n\n\t\t\tuvScaleMap = material.alphaMap;\n\n\t\t}\n\n\t\tif ( uvScaleMap !== undefined ) {\n\n\t\t\tif ( uvScaleMap.matrixAutoUpdate === true ) {\n\n\t\t\t\tuvScaleMap.updateMatrix();\n\n\t\t\t}\n\n\t\t\tuniforms.uvTransform.value.copy( uvScaleMap.matrix );\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsLambert( uniforms, material ) {\n\n\t\tif ( material.emissiveMap ) {\n\n\t\t\tuniforms.emissiveMap.value = material.emissiveMap;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsPhong( uniforms, material ) {\n\n\t\tuniforms.specular.value.copy( material.specular );\n\t\tuniforms.shininess.value = Math.max( material.shininess, 1e-4 ); // to prevent pow( 0.0, 0.0 )\n\n\t\tif ( material.emissiveMap ) {\n\n\t\t\tuniforms.emissiveMap.value = material.emissiveMap;\n\n\t\t}\n\n\t\tif ( material.bumpMap ) {\n\n\t\t\tuniforms.bumpMap.value = material.bumpMap;\n\t\t\tuniforms.bumpScale.value = material.bumpScale;\n\t\t\tif ( material.side === BackSide ) uniforms.bumpScale.value *= - 1;\n\n\t\t}\n\n\t\tif ( material.normalMap ) {\n\n\t\t\tuniforms.normalMap.value = material.normalMap;\n\t\t\tuniforms.normalScale.value.copy( material.normalScale );\n\t\t\tif ( material.side === BackSide ) uniforms.normalScale.value.negate();\n\n\t\t}\n\n\t\tif ( material.displacementMap ) {\n\n\t\t\tuniforms.displacementMap.value = material.displacementMap;\n\t\t\tuniforms.displacementScale.value = material.displacementScale;\n\t\t\tuniforms.displacementBias.value = material.displacementBias;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsToon( uniforms, material ) {\n\n\t\tif ( material.gradientMap ) {\n\n\t\t\tuniforms.gradientMap.value = material.gradientMap;\n\n\t\t}\n\n\t\tif ( material.emissiveMap ) {\n\n\t\t\tuniforms.emissiveMap.value = material.emissiveMap;\n\n\t\t}\n\n\t\tif ( material.bumpMap ) {\n\n\t\t\tuniforms.bumpMap.value = material.bumpMap;\n\t\t\tuniforms.bumpScale.value = material.bumpScale;\n\t\t\tif ( material.side === BackSide ) uniforms.bumpScale.value *= - 1;\n\n\t\t}\n\n\t\tif ( material.normalMap ) {\n\n\t\t\tuniforms.normalMap.value = material.normalMap;\n\t\t\tuniforms.normalScale.value.copy( material.normalScale );\n\t\t\tif ( material.side === BackSide ) uniforms.normalScale.value.negate();\n\n\t\t}\n\n\t\tif ( material.displacementMap ) {\n\n\t\t\tuniforms.displacementMap.value = material.displacementMap;\n\t\t\tuniforms.displacementScale.value = material.displacementScale;\n\t\t\tuniforms.displacementBias.value = material.displacementBias;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsStandard( uniforms, material ) {\n\n\t\tuniforms.roughness.value = material.roughness;\n\t\tuniforms.metalness.value = material.metalness;\n\n\t\tif ( material.roughnessMap ) {\n\n\t\t\tuniforms.roughnessMap.value = material.roughnessMap;\n\n\t\t}\n\n\t\tif ( material.metalnessMap ) {\n\n\t\t\tuniforms.metalnessMap.value = material.metalnessMap;\n\n\t\t}\n\n\t\tif ( material.emissiveMap ) {\n\n\t\t\tuniforms.emissiveMap.value = material.emissiveMap;\n\n\t\t}\n\n\t\tif ( material.bumpMap ) {\n\n\t\t\tuniforms.bumpMap.value = material.bumpMap;\n\t\t\tuniforms.bumpScale.value = material.bumpScale;\n\t\t\tif ( material.side === BackSide ) uniforms.bumpScale.value *= - 1;\n\n\t\t}\n\n\t\tif ( material.normalMap ) {\n\n\t\t\tuniforms.normalMap.value = material.normalMap;\n\t\t\tuniforms.normalScale.value.copy( material.normalScale );\n\t\t\tif ( material.side === BackSide ) uniforms.normalScale.value.negate();\n\n\t\t}\n\n\t\tif ( material.displacementMap ) {\n\n\t\t\tuniforms.displacementMap.value = material.displacementMap;\n\t\t\tuniforms.displacementScale.value = material.displacementScale;\n\t\t\tuniforms.displacementBias.value = material.displacementBias;\n\n\t\t}\n\n\t\tconst envMap = properties.get( material ).envMap;\n\n\t\tif ( envMap ) {\n\n\t\t\t//uniforms.envMap.value = material.envMap; // part of uniforms common\n\t\t\tuniforms.envMapIntensity.value = material.envMapIntensity;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsPhysical( uniforms, material, transmissionRenderTarget ) {\n\n\t\trefreshUniformsStandard( uniforms, material );\n\n\t\tuniforms.ior.value = material.ior; // also part of uniforms common\n\n\t\tif ( material.sheen > 0 ) {\n\n\t\t\tuniforms.sheenColor.value.copy( material.sheenColor ).multiplyScalar( material.sheen );\n\n\t\t\tuniforms.sheenRoughness.value = material.sheenRoughness;\n\n\t\t\tif ( material.sheenColorMap ) {\n\n\t\t\t\tuniforms.sheenColorMap.value = material.sheenColorMap;\n\n\t\t\t}\n\n\t\t\tif ( material.sheenRoughnessMap ) {\n\n\t\t\t\tuniforms.sheenRoughnessMap.value = material.sheenRoughnessMap;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.clearcoat > 0 ) {\n\n\t\t\tuniforms.clearcoat.value = material.clearcoat;\n\t\t\tuniforms.clearcoatRoughness.value = material.clearcoatRoughness;\n\n\t\t\tif ( material.clearcoatMap ) {\n\n\t\t\t\tuniforms.clearcoatMap.value = material.clearcoatMap;\n\n\t\t\t}\n\n\t\t\tif ( material.clearcoatRoughnessMap ) {\n\n\t\t\t\tuniforms.clearcoatRoughnessMap.value = material.clearcoatRoughnessMap;\n\n\t\t\t}\n\n\t\t\tif ( material.clearcoatNormalMap ) {\n\n\t\t\t\tuniforms.clearcoatNormalScale.value.copy( material.clearcoatNormalScale );\n\t\t\t\tuniforms.clearcoatNormalMap.value = material.clearcoatNormalMap;\n\n\t\t\t\tif ( material.side === BackSide ) {\n\n\t\t\t\t\tuniforms.clearcoatNormalScale.value.negate();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.transmission > 0 ) {\n\n\t\t\tuniforms.transmission.value = material.transmission;\n\t\t\tuniforms.transmissionSamplerMap.value = transmissionRenderTarget.texture;\n\t\t\tuniforms.transmissionSamplerSize.value.set( transmissionRenderTarget.width, transmissionRenderTarget.height );\n\n\t\t\tif ( material.transmissionMap ) {\n\n\t\t\t\tuniforms.transmissionMap.value = material.transmissionMap;\n\n\t\t\t}\n\n\t\t\tuniforms.thickness.value = material.thickness;\n\n\t\t\tif ( material.thicknessMap ) {\n\n\t\t\t\tuniforms.thicknessMap.value = material.thicknessMap;\n\n\t\t\t}\n\n\t\t\tuniforms.attenuationDistance.value = material.attenuationDistance;\n\t\t\tuniforms.attenuationColor.value.copy( material.attenuationColor );\n\n\t\t}\n\n\t\tuniforms.specularIntensity.value = material.specularIntensity;\n\t\tuniforms.specularColor.value.copy( material.specularColor );\n\n\t\tif ( material.specularIntensityMap ) {\n\n\t\t\tuniforms.specularIntensityMap.value = material.specularIntensityMap;\n\n\t\t}\n\n\t\tif ( material.specularColorMap ) {\n\n\t\t\tuniforms.specularColorMap.value = material.specularColorMap;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsMatcap( uniforms, material ) {\n\n\t\tif ( material.matcap ) {\n\n\t\t\tuniforms.matcap.value = material.matcap;\n\n\t\t}\n\n\t\tif ( material.bumpMap ) {\n\n\t\t\tuniforms.bumpMap.value = material.bumpMap;\n\t\t\tuniforms.bumpScale.value = material.bumpScale;\n\t\t\tif ( material.side === BackSide ) uniforms.bumpScale.value *= - 1;\n\n\t\t}\n\n\t\tif ( material.normalMap ) {\n\n\t\t\tuniforms.normalMap.value = material.normalMap;\n\t\t\tuniforms.normalScale.value.copy( material.normalScale );\n\t\t\tif ( material.side === BackSide ) uniforms.normalScale.value.negate();\n\n\t\t}\n\n\t\tif ( material.displacementMap ) {\n\n\t\t\tuniforms.displacementMap.value = material.displacementMap;\n\t\t\tuniforms.displacementScale.value = material.displacementScale;\n\t\t\tuniforms.displacementBias.value = material.displacementBias;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsDepth( uniforms, material ) {\n\n\t\tif ( material.displacementMap ) {\n\n\t\t\tuniforms.displacementMap.value = material.displacementMap;\n\t\t\tuniforms.displacementScale.value = material.displacementScale;\n\t\t\tuniforms.displacementBias.value = material.displacementBias;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsDistance( uniforms, material ) {\n\n\t\tif ( material.displacementMap ) {\n\n\t\t\tuniforms.displacementMap.value = material.displacementMap;\n\t\t\tuniforms.displacementScale.value = material.displacementScale;\n\t\t\tuniforms.displacementBias.value = material.displacementBias;\n\n\t\t}\n\n\t\tuniforms.referencePosition.value.copy( material.referencePosition );\n\t\tuniforms.nearDistance.value = material.nearDistance;\n\t\tuniforms.farDistance.value = material.farDistance;\n\n\t}\n\n\tfunction refreshUniformsNormal( uniforms, material ) {\n\n\t\tif ( material.bumpMap ) {\n\n\t\t\tuniforms.bumpMap.value = material.bumpMap;\n\t\t\tuniforms.bumpScale.value = material.bumpScale;\n\t\t\tif ( material.side === BackSide ) uniforms.bumpScale.value *= - 1;\n\n\t\t}\n\n\t\tif ( material.normalMap ) {\n\n\t\t\tuniforms.normalMap.value = material.normalMap;\n\t\t\tuniforms.normalScale.value.copy( material.normalScale );\n\t\t\tif ( material.side === BackSide ) uniforms.normalScale.value.negate();\n\n\t\t}\n\n\t\tif ( material.displacementMap ) {\n\n\t\t\tuniforms.displacementMap.value = material.displacementMap;\n\t\t\tuniforms.displacementScale.value = material.displacementScale;\n\t\t\tuniforms.displacementBias.value = material.displacementBias;\n\n\t\t}\n\n\t}\n\n\treturn {\n\t\trefreshFogUniforms: refreshFogUniforms,\n\t\trefreshMaterialUniforms: refreshMaterialUniforms\n\t};\n\n}\n\nfunction createCanvasElement() {\n\n\tconst canvas = createElementNS( 'canvas' );\n\tcanvas.style.display = 'block';\n\treturn canvas;\n\n}\n\nfunction WebGLRenderer( parameters = {} ) {\n\n\tconst _canvas = parameters.canvas !== undefined ? parameters.canvas : createCanvasElement(),\n\t\t_context = parameters.context !== undefined ? parameters.context : null,\n\n\t\t_alpha = parameters.alpha !== undefined ? parameters.alpha : false,\n\t\t_depth = parameters.depth !== undefined ? parameters.depth : true,\n\t\t_stencil = parameters.stencil !== undefined ? parameters.stencil : true,\n\t\t_antialias = parameters.antialias !== undefined ? parameters.antialias : false,\n\t\t_premultipliedAlpha = parameters.premultipliedAlpha !== undefined ? parameters.premultipliedAlpha : true,\n\t\t_preserveDrawingBuffer = parameters.preserveDrawingBuffer !== undefined ? parameters.preserveDrawingBuffer : false,\n\t\t_powerPreference = parameters.powerPreference !== undefined ? parameters.powerPreference : 'default',\n\t\t_failIfMajorPerformanceCaveat = parameters.failIfMajorPerformanceCaveat !== undefined ? parameters.failIfMajorPerformanceCaveat : false;\n\n\tlet currentRenderList = null;\n\tlet currentRenderState = null;\n\n\t// render() can be called from within a callback triggered by another render.\n\t// We track this so that the nested render call gets its list and state isolated from the parent render call.\n\n\tconst renderListStack = [];\n\tconst renderStateStack = [];\n\n\t// public properties\n\n\tthis.domElement = _canvas;\n\n\t// Debug configuration container\n\tthis.debug = {\n\n\t\t/**\n\t\t * Enables error checking and reporting when shader programs are being compiled\n\t\t * @type {boolean}\n\t\t */\n\t\tcheckShaderErrors: true\n\t};\n\n\t// clearing\n\n\tthis.autoClear = true;\n\tthis.autoClearColor = true;\n\tthis.autoClearDepth = true;\n\tthis.autoClearStencil = true;\n\n\t// scene graph\n\n\tthis.sortObjects = true;\n\n\t// user-defined clipping\n\n\tthis.clippingPlanes = [];\n\tthis.localClippingEnabled = false;\n\n\t// physically based shading\n\n\tthis.outputEncoding = LinearEncoding;\n\n\t// physical lights\n\n\tthis.physicallyCorrectLights = false;\n\n\t// tone mapping\n\n\tthis.toneMapping = NoToneMapping;\n\tthis.toneMappingExposure = 1.0;\n\n\t// internal properties\n\n\tconst _this = this;\n\n\tlet _isContextLost = false;\n\n\t// internal state cache\n\n\tlet _currentActiveCubeFace = 0;\n\tlet _currentActiveMipmapLevel = 0;\n\tlet _currentRenderTarget = null;\n\tlet _currentMaterialId = - 1;\n\n\tlet _currentCamera = null;\n\n\tconst _currentViewport = new Vector4();\n\tconst _currentScissor = new Vector4();\n\tlet _currentScissorTest = null;\n\n\t//\n\n\tlet _width = _canvas.width;\n\tlet _height = _canvas.height;\n\n\tlet _pixelRatio = 1;\n\tlet _opaqueSort = null;\n\tlet _transparentSort = null;\n\n\tconst _viewport = new Vector4( 0, 0, _width, _height );\n\tconst _scissor = new Vector4( 0, 0, _width, _height );\n\tlet _scissorTest = false;\n\n\t// frustum\n\n\tconst _frustum = new Frustum();\n\n\t// clipping\n\n\tlet _clippingEnabled = false;\n\tlet _localClippingEnabled = false;\n\n\t// transmission\n\n\tlet _transmissionRenderTarget = null;\n\n\t// camera matrices cache\n\n\tconst _projScreenMatrix = new Matrix4();\n\n\tconst _vector3 = new Vector3();\n\n\tconst _emptyScene = { background: null, fog: null, environment: null, overrideMaterial: null, isScene: true };\n\n\tfunction getTargetPixelRatio() {\n\n\t\treturn _currentRenderTarget === null ? _pixelRatio : 1;\n\n\t}\n\n\t// initialize\n\n\tlet _gl = _context;\n\n\tfunction getContext( contextNames, contextAttributes ) {\n\n\t\tfor ( let i = 0; i < contextNames.length; i ++ ) {\n\n\t\t\tconst contextName = contextNames[ i ];\n\t\t\tconst context = _canvas.getContext( contextName, contextAttributes );\n\t\t\tif ( context !== null ) return context;\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\ttry {\n\n\t\tconst contextAttributes = {\n\t\t\talpha: true,\n\t\t\tdepth: _depth,\n\t\t\tstencil: _stencil,\n\t\t\tantialias: _antialias,\n\t\t\tpremultipliedAlpha: _premultipliedAlpha,\n\t\t\tpreserveDrawingBuffer: _preserveDrawingBuffer,\n\t\t\tpowerPreference: _powerPreference,\n\t\t\tfailIfMajorPerformanceCaveat: _failIfMajorPerformanceCaveat\n\t\t};\n\n\t\t// OffscreenCanvas does not have setAttribute, see #22811\n\t\tif ( 'setAttribute' in _canvas ) _canvas.setAttribute( 'data-engine', `three.js r${REVISION}` );\n\n\t\t// event listeners must be registered before WebGL context is created, see #12753\n\t\t_canvas.addEventListener( 'webglcontextlost', onContextLost, false );\n\t\t_canvas.addEventListener( 'webglcontextrestored', onContextRestore, false );\n\n\t\tif ( _gl === null ) {\n\n\t\t\tconst contextNames = [ 'webgl2', 'webgl', 'experimental-webgl' ];\n\n\t\t\tif ( _this.isWebGL1Renderer === true ) {\n\n\t\t\t\tcontextNames.shift();\n\n\t\t\t}\n\n\t\t\t_gl = getContext( contextNames, contextAttributes );\n\n\t\t\tif ( _gl === null ) {\n\n\t\t\t\tif ( getContext( contextNames ) ) {\n\n\t\t\t\t\tthrow new Error( 'Error creating WebGL context with your selected attributes.' );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new Error( 'Error creating WebGL context.' );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Some experimental-webgl implementations do not have getShaderPrecisionFormat\n\n\t\tif ( _gl.getShaderPrecisionFormat === undefined ) {\n\n\t\t\t_gl.getShaderPrecisionFormat = function () {\n\n\t\t\t\treturn { 'rangeMin': 1, 'rangeMax': 1, 'precision': 1 };\n\n\t\t\t};\n\n\t\t}\n\n\t} catch ( error ) {\n\n\t\tconsole.error( 'THREE.WebGLRenderer: ' + error.message );\n\t\tthrow error;\n\n\t}\n\n\tlet extensions, capabilities, state, info;\n\tlet properties, textures, cubemaps, cubeuvmaps, attributes, geometries, objects;\n\tlet programCache, materials, renderLists, renderStates, clipping, shadowMap;\n\n\tlet background, morphtargets, bufferRenderer, indexedBufferRenderer;\n\n\tlet utils, bindingStates;\n\n\tfunction initGLContext() {\n\n\t\textensions = new WebGLExtensions( _gl );\n\n\t\tcapabilities = new WebGLCapabilities( _gl, extensions, parameters );\n\n\t\textensions.init( capabilities );\n\n\t\tutils = new WebGLUtils( _gl, extensions, capabilities );\n\n\t\tstate = new WebGLState( _gl, extensions, capabilities );\n\n\t\tinfo = new WebGLInfo( _gl );\n\t\tproperties = new WebGLProperties();\n\t\ttextures = new WebGLTextures( _gl, extensions, state, properties, capabilities, utils, info );\n\t\tcubemaps = new WebGLCubeMaps( _this );\n\t\tcubeuvmaps = new WebGLCubeUVMaps( _this );\n\t\tattributes = new WebGLAttributes( _gl, capabilities );\n\t\tbindingStates = new WebGLBindingStates( _gl, extensions, attributes, capabilities );\n\t\tgeometries = new WebGLGeometries( _gl, attributes, info, bindingStates );\n\t\tobjects = new WebGLObjects( _gl, geometries, attributes, info );\n\t\tmorphtargets = new WebGLMorphtargets( _gl, capabilities, textures );\n\t\tclipping = new WebGLClipping( properties );\n\t\tprogramCache = new WebGLPrograms( _this, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping );\n\t\tmaterials = new WebGLMaterials( properties );\n\t\trenderLists = new WebGLRenderLists();\n\t\trenderStates = new WebGLRenderStates( extensions, capabilities );\n\t\tbackground = new WebGLBackground( _this, cubemaps, state, objects, _alpha, _premultipliedAlpha );\n\t\tshadowMap = new WebGLShadowMap( _this, objects, capabilities );\n\n\t\tbufferRenderer = new WebGLBufferRenderer( _gl, extensions, info, capabilities );\n\t\tindexedBufferRenderer = new WebGLIndexedBufferRenderer( _gl, extensions, info, capabilities );\n\n\t\tinfo.programs = programCache.programs;\n\n\t\t_this.capabilities = capabilities;\n\t\t_this.extensions = extensions;\n\t\t_this.properties = properties;\n\t\t_this.renderLists = renderLists;\n\t\t_this.shadowMap = shadowMap;\n\t\t_this.state = state;\n\t\t_this.info = info;\n\n\t}\n\n\tinitGLContext();\n\n\t// xr\n\n\tconst xr = new WebXRManager( _this, _gl );\n\n\tthis.xr = xr;\n\n\t// API\n\n\tthis.getContext = function () {\n\n\t\treturn _gl;\n\n\t};\n\n\tthis.getContextAttributes = function () {\n\n\t\treturn _gl.getContextAttributes();\n\n\t};\n\n\tthis.forceContextLoss = function () {\n\n\t\tconst extension = extensions.get( 'WEBGL_lose_context' );\n\t\tif ( extension ) extension.loseContext();\n\n\t};\n\n\tthis.forceContextRestore = function () {\n\n\t\tconst extension = extensions.get( 'WEBGL_lose_context' );\n\t\tif ( extension ) extension.restoreContext();\n\n\t};\n\n\tthis.getPixelRatio = function () {\n\n\t\treturn _pixelRatio;\n\n\t};\n\n\tthis.setPixelRatio = function ( value ) {\n\n\t\tif ( value === undefined ) return;\n\n\t\t_pixelRatio = value;\n\n\t\tthis.setSize( _width, _height, false );\n\n\t};\n\n\tthis.getSize = function ( target ) {\n\n\t\treturn target.set( _width, _height );\n\n\t};\n\n\tthis.setSize = function ( width, height, updateStyle ) {\n\n\t\tif ( xr.isPresenting ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Can\\'t change size while VR device is presenting.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\t_width = width;\n\t\t_height = height;\n\n\t\t_canvas.width = Math.floor( width * _pixelRatio );\n\t\t_canvas.height = Math.floor( height * _pixelRatio );\n\n\t\tif ( updateStyle !== false ) {\n\n\t\t\t_canvas.style.width = width + 'px';\n\t\t\t_canvas.style.height = height + 'px';\n\n\t\t}\n\n\t\tthis.setViewport( 0, 0, width, height );\n\n\t};\n\n\tthis.getDrawingBufferSize = function ( target ) {\n\n\t\treturn target.set( _width * _pixelRatio, _height * _pixelRatio ).floor();\n\n\t};\n\n\tthis.setDrawingBufferSize = function ( width, height, pixelRatio ) {\n\n\t\t_width = width;\n\t\t_height = height;\n\n\t\t_pixelRatio = pixelRatio;\n\n\t\t_canvas.width = Math.floor( width * pixelRatio );\n\t\t_canvas.height = Math.floor( height * pixelRatio );\n\n\t\tthis.setViewport( 0, 0, width, height );\n\n\t};\n\n\tthis.getCurrentViewport = function ( target ) {\n\n\t\treturn target.copy( _currentViewport );\n\n\t};\n\n\tthis.getViewport = function ( target ) {\n\n\t\treturn target.copy( _viewport );\n\n\t};\n\n\tthis.setViewport = function ( x, y, width, height ) {\n\n\t\tif ( x.isVector4 ) {\n\n\t\t\t_viewport.set( x.x, x.y, x.z, x.w );\n\n\t\t} else {\n\n\t\t\t_viewport.set( x, y, width, height );\n\n\t\t}\n\n\t\tstate.viewport( _currentViewport.copy( _viewport ).multiplyScalar( _pixelRatio ).floor() );\n\n\t};\n\n\tthis.getScissor = function ( target ) {\n\n\t\treturn target.copy( _scissor );\n\n\t};\n\n\tthis.setScissor = function ( x, y, width, height ) {\n\n\t\tif ( x.isVector4 ) {\n\n\t\t\t_scissor.set( x.x, x.y, x.z, x.w );\n\n\t\t} else {\n\n\t\t\t_scissor.set( x, y, width, height );\n\n\t\t}\n\n\t\tstate.scissor( _currentScissor.copy( _scissor ).multiplyScalar( _pixelRatio ).floor() );\n\n\t};\n\n\tthis.getScissorTest = function () {\n\n\t\treturn _scissorTest;\n\n\t};\n\n\tthis.setScissorTest = function ( boolean ) {\n\n\t\tstate.setScissorTest( _scissorTest = boolean );\n\n\t};\n\n\tthis.setOpaqueSort = function ( method ) {\n\n\t\t_opaqueSort = method;\n\n\t};\n\n\tthis.setTransparentSort = function ( method ) {\n\n\t\t_transparentSort = method;\n\n\t};\n\n\t// Clearing\n\n\tthis.getClearColor = function ( target ) {\n\n\t\treturn target.copy( background.getClearColor() );\n\n\t};\n\n\tthis.setClearColor = function () {\n\n\t\tbackground.setClearColor.apply( background, arguments );\n\n\t};\n\n\tthis.getClearAlpha = function () {\n\n\t\treturn background.getClearAlpha();\n\n\t};\n\n\tthis.setClearAlpha = function () {\n\n\t\tbackground.setClearAlpha.apply( background, arguments );\n\n\t};\n\n\tthis.clear = function ( color, depth, stencil ) {\n\n\t\tlet bits = 0;\n\n\t\tif ( color === undefined || color ) bits |= 16384;\n\t\tif ( depth === undefined || depth ) bits |= 256;\n\t\tif ( stencil === undefined || stencil ) bits |= 1024;\n\n\t\t_gl.clear( bits );\n\n\t};\n\n\tthis.clearColor = function () {\n\n\t\tthis.clear( true, false, false );\n\n\t};\n\n\tthis.clearDepth = function () {\n\n\t\tthis.clear( false, true, false );\n\n\t};\n\n\tthis.clearStencil = function () {\n\n\t\tthis.clear( false, false, true );\n\n\t};\n\n\t//\n\n\tthis.dispose = function () {\n\n\t\t_canvas.removeEventListener( 'webglcontextlost', onContextLost, false );\n\t\t_canvas.removeEventListener( 'webglcontextrestored', onContextRestore, false );\n\n\t\trenderLists.dispose();\n\t\trenderStates.dispose();\n\t\tproperties.dispose();\n\t\tcubemaps.dispose();\n\t\tcubeuvmaps.dispose();\n\t\tobjects.dispose();\n\t\tbindingStates.dispose();\n\t\tprogramCache.dispose();\n\n\t\txr.dispose();\n\n\t\txr.removeEventListener( 'sessionstart', onXRSessionStart );\n\t\txr.removeEventListener( 'sessionend', onXRSessionEnd );\n\n\t\tif ( _transmissionRenderTarget ) {\n\n\t\t\t_transmissionRenderTarget.dispose();\n\t\t\t_transmissionRenderTarget = null;\n\n\t\t}\n\n\t\tanimation.stop();\n\n\t};\n\n\t// Events\n\n\tfunction onContextLost( event ) {\n\n\t\tevent.preventDefault();\n\n\t\tconsole.log( 'THREE.WebGLRenderer: Context Lost.' );\n\n\t\t_isContextLost = true;\n\n\t}\n\n\tfunction onContextRestore( /* event */ ) {\n\n\t\tconsole.log( 'THREE.WebGLRenderer: Context Restored.' );\n\n\t\t_isContextLost = false;\n\n\t\tconst infoAutoReset = info.autoReset;\n\t\tconst shadowMapEnabled = shadowMap.enabled;\n\t\tconst shadowMapAutoUpdate = shadowMap.autoUpdate;\n\t\tconst shadowMapNeedsUpdate = shadowMap.needsUpdate;\n\t\tconst shadowMapType = shadowMap.type;\n\n\t\tinitGLContext();\n\n\t\tinfo.autoReset = infoAutoReset;\n\t\tshadowMap.enabled = shadowMapEnabled;\n\t\tshadowMap.autoUpdate = shadowMapAutoUpdate;\n\t\tshadowMap.needsUpdate = shadowMapNeedsUpdate;\n\t\tshadowMap.type = shadowMapType;\n\n\t}\n\n\tfunction onMaterialDispose( event ) {\n\n\t\tconst material = event.target;\n\n\t\tmaterial.removeEventListener( 'dispose', onMaterialDispose );\n\n\t\tdeallocateMaterial( material );\n\n\t}\n\n\t// Buffer deallocation\n\n\tfunction deallocateMaterial( material ) {\n\n\t\treleaseMaterialProgramReferences( material );\n\n\t\tproperties.remove( material );\n\n\t}\n\n\n\tfunction releaseMaterialProgramReferences( material ) {\n\n\t\tconst programs = properties.get( material ).programs;\n\n\t\tif ( programs !== undefined ) {\n\n\t\t\tprograms.forEach( function ( program ) {\n\n\t\t\t\tprogramCache.releaseProgram( program );\n\n\t\t\t} );\n\n\t\t\tif ( material.isShaderMaterial ) {\n\n\t\t\t\tprogramCache.releaseShaderCache( material );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t// Buffer rendering\n\n\tthis.renderBufferDirect = function ( camera, scene, geometry, material, object, group ) {\n\n\t\tif ( scene === null ) scene = _emptyScene; // renderBufferDirect second parameter used to be fog (could be null)\n\n\t\tconst frontFaceCW = ( object.isMesh && object.matrixWorld.determinant() < 0 );\n\n\t\tconst program = setProgram( camera, scene, geometry, material, object );\n\n\t\tstate.setMaterial( material, frontFaceCW );\n\n\t\t//\n\n\t\tlet index = geometry.index;\n\t\tconst position = geometry.attributes.position;\n\n\t\t//\n\n\t\tif ( index === null ) {\n\n\t\t\tif ( position === undefined || position.count === 0 ) return;\n\n\t\t} else if ( index.count === 0 ) {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t//\n\n\t\tlet rangeFactor = 1;\n\n\t\tif ( material.wireframe === true ) {\n\n\t\t\tindex = geometries.getWireframeAttribute( geometry );\n\t\t\trangeFactor = 2;\n\n\t\t}\n\n\t\tbindingStates.setup( object, material, program, geometry, index );\n\n\t\tlet attribute;\n\t\tlet renderer = bufferRenderer;\n\n\t\tif ( index !== null ) {\n\n\t\t\tattribute = attributes.get( index );\n\n\t\t\trenderer = indexedBufferRenderer;\n\t\t\trenderer.setIndex( attribute );\n\n\t\t}\n\n\t\t//\n\n\t\tconst dataCount = ( index !== null ) ? index.count : position.count;\n\n\t\tconst rangeStart = geometry.drawRange.start * rangeFactor;\n\t\tconst rangeCount = geometry.drawRange.count * rangeFactor;\n\n\t\tconst groupStart = group !== null ? group.start * rangeFactor : 0;\n\t\tconst groupCount = group !== null ? group.count * rangeFactor : Infinity;\n\n\t\tconst drawStart = Math.max( rangeStart, groupStart );\n\t\tconst drawEnd = Math.min( dataCount, rangeStart + rangeCount, groupStart + groupCount ) - 1;\n\n\t\tconst drawCount = Math.max( 0, drawEnd - drawStart + 1 );\n\n\t\tif ( drawCount === 0 ) return;\n\n\t\t//\n\n\t\tif ( object.isMesh ) {\n\n\t\t\tif ( material.wireframe === true ) {\n\n\t\t\t\tstate.setLineWidth( material.wireframeLinewidth * getTargetPixelRatio() );\n\t\t\t\trenderer.setMode( 1 );\n\n\t\t\t} else {\n\n\t\t\t\trenderer.setMode( 4 );\n\n\t\t\t}\n\n\t\t} else if ( object.isLine ) {\n\n\t\t\tlet lineWidth = material.linewidth;\n\n\t\t\tif ( lineWidth === undefined ) lineWidth = 1; // Not using Line*Material\n\n\t\t\tstate.setLineWidth( lineWidth * getTargetPixelRatio() );\n\n\t\t\tif ( object.isLineSegments ) {\n\n\t\t\t\trenderer.setMode( 1 );\n\n\t\t\t} else if ( object.isLineLoop ) {\n\n\t\t\t\trenderer.setMode( 2 );\n\n\t\t\t} else {\n\n\t\t\t\trenderer.setMode( 3 );\n\n\t\t\t}\n\n\t\t} else if ( object.isPoints ) {\n\n\t\t\trenderer.setMode( 0 );\n\n\t\t} else if ( object.isSprite ) {\n\n\t\t\trenderer.setMode( 4 );\n\n\t\t}\n\n\t\tif ( object.isInstancedMesh ) {\n\n\t\t\trenderer.renderInstances( drawStart, drawCount, object.count );\n\n\t\t} else if ( geometry.isInstancedBufferGeometry ) {\n\n\t\t\tconst instanceCount = Math.min( geometry.instanceCount, geometry._maxInstanceCount );\n\n\t\t\trenderer.renderInstances( drawStart, drawCount, instanceCount );\n\n\t\t} else {\n\n\t\t\trenderer.render( drawStart, drawCount );\n\n\t\t}\n\n\t};\n\n\t// Compile\n\n\tthis.compile = function ( scene, camera ) {\n\n\t\tcurrentRenderState = renderStates.get( scene );\n\t\tcurrentRenderState.init();\n\n\t\trenderStateStack.push( currentRenderState );\n\n\t\tscene.traverseVisible( function ( object ) {\n\n\t\t\tif ( object.isLight && object.layers.test( camera.layers ) ) {\n\n\t\t\t\tcurrentRenderState.pushLight( object );\n\n\t\t\t\tif ( object.castShadow ) {\n\n\t\t\t\t\tcurrentRenderState.pushShadow( object );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} );\n\n\t\tcurrentRenderState.setupLights( _this.physicallyCorrectLights );\n\n\t\tscene.traverse( function ( object ) {\n\n\t\t\tconst material = object.material;\n\n\t\t\tif ( material ) {\n\n\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\tfor ( let i = 0; i < material.length; i ++ ) {\n\n\t\t\t\t\t\tconst material2 = material[ i ];\n\n\t\t\t\t\t\tgetProgram( material2, scene, object );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tgetProgram( material, scene, object );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} );\n\n\t\trenderStateStack.pop();\n\t\tcurrentRenderState = null;\n\n\t};\n\n\t// Animation Loop\n\n\tlet onAnimationFrameCallback = null;\n\n\tfunction onAnimationFrame( time ) {\n\n\t\tif ( onAnimationFrameCallback ) onAnimationFrameCallback( time );\n\n\t}\n\n\tfunction onXRSessionStart() {\n\n\t\tanimation.stop();\n\n\t}\n\n\tfunction onXRSessionEnd() {\n\n\t\tanimation.start();\n\n\t}\n\n\tconst animation = new WebGLAnimation();\n\tanimation.setAnimationLoop( onAnimationFrame );\n\n\tif ( typeof window !== 'undefined' ) animation.setContext( window );\n\n\tthis.setAnimationLoop = function ( callback ) {\n\n\t\tonAnimationFrameCallback = callback;\n\t\txr.setAnimationLoop( callback );\n\n\t\t( callback === null ) ? animation.stop() : animation.start();\n\n\t};\n\n\txr.addEventListener( 'sessionstart', onXRSessionStart );\n\txr.addEventListener( 'sessionend', onXRSessionEnd );\n\n\t// Rendering\n\n\tthis.render = function ( scene, camera ) {\n\n\t\tif ( camera !== undefined && camera.isCamera !== true ) {\n\n\t\t\tconsole.error( 'THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( _isContextLost === true ) return;\n\n\t\t// update scene graph\n\n\t\tif ( scene.autoUpdate === true ) scene.updateMatrixWorld();\n\n\t\t// update camera matrices and frustum\n\n\t\tif ( camera.parent === null ) camera.updateMatrixWorld();\n\n\t\tif ( xr.enabled === true && xr.isPresenting === true ) {\n\n\t\t\tif ( xr.cameraAutoUpdate === true ) xr.updateCamera( camera );\n\n\t\t\tcamera = xr.getCamera(); // use XR camera for rendering\n\n\t\t}\n\n\t\t//\n\t\tif ( scene.isScene === true ) scene.onBeforeRender( _this, scene, camera, _currentRenderTarget );\n\n\t\tcurrentRenderState = renderStates.get( scene, renderStateStack.length );\n\t\tcurrentRenderState.init();\n\n\t\trenderStateStack.push( currentRenderState );\n\n\t\t_projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );\n\t\t_frustum.setFromProjectionMatrix( _projScreenMatrix );\n\n\t\t_localClippingEnabled = this.localClippingEnabled;\n\t\t_clippingEnabled = clipping.init( this.clippingPlanes, _localClippingEnabled, camera );\n\n\t\tcurrentRenderList = renderLists.get( scene, renderListStack.length );\n\t\tcurrentRenderList.init();\n\n\t\trenderListStack.push( currentRenderList );\n\n\t\tprojectObject( scene, camera, 0, _this.sortObjects );\n\n\t\tcurrentRenderList.finish();\n\n\t\tif ( _this.sortObjects === true ) {\n\n\t\t\tcurrentRenderList.sort( _opaqueSort, _transparentSort );\n\n\t\t}\n\n\t\t//\n\n\t\tif ( _clippingEnabled === true ) clipping.beginShadows();\n\n\t\tconst shadowsArray = currentRenderState.state.shadowsArray;\n\n\t\tshadowMap.render( shadowsArray, scene, camera );\n\n\t\tif ( _clippingEnabled === true ) clipping.endShadows();\n\n\t\t//\n\n\t\tif ( this.info.autoReset === true ) this.info.reset();\n\n\t\t//\n\n\t\tbackground.render( currentRenderList, scene );\n\n\t\t// render scene\n\n\t\tcurrentRenderState.setupLights( _this.physicallyCorrectLights );\n\n\t\tif ( camera.isArrayCamera ) {\n\n\t\t\tconst cameras = camera.cameras;\n\n\t\t\tfor ( let i = 0, l = cameras.length; i < l; i ++ ) {\n\n\t\t\t\tconst camera2 = cameras[ i ];\n\n\t\t\t\trenderScene( currentRenderList, scene, camera2, camera2.viewport );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\trenderScene( currentRenderList, scene, camera );\n\n\t\t}\n\n\t\t//\n\n\t\tif ( _currentRenderTarget !== null ) {\n\n\t\t\t// resolve multisample renderbuffers to a single-sample texture if necessary\n\n\t\t\ttextures.updateMultisampleRenderTarget( _currentRenderTarget );\n\n\t\t\t// Generate mipmap if we're using any kind of mipmap filtering\n\n\t\t\ttextures.updateRenderTargetMipmap( _currentRenderTarget );\n\n\t\t}\n\n\t\t//\n\n\t\tif ( scene.isScene === true ) scene.onAfterRender( _this, scene, camera );\n\n\t\t// Ensure depth buffer writing is enabled so it can be cleared on next render\n\n\t\tstate.buffers.depth.setTest( true );\n\t\tstate.buffers.depth.setMask( true );\n\t\tstate.buffers.color.setMask( true );\n\n\t\tstate.setPolygonOffset( false );\n\n\t\t// _gl.finish();\n\n\t\tbindingStates.resetDefaultState();\n\t\t_currentMaterialId = - 1;\n\t\t_currentCamera = null;\n\n\t\trenderStateStack.pop();\n\n\t\tif ( renderStateStack.length > 0 ) {\n\n\t\t\tcurrentRenderState = renderStateStack[ renderStateStack.length - 1 ];\n\n\t\t} else {\n\n\t\t\tcurrentRenderState = null;\n\n\t\t}\n\n\t\trenderListStack.pop();\n\n\t\tif ( renderListStack.length > 0 ) {\n\n\t\t\tcurrentRenderList = renderListStack[ renderListStack.length - 1 ];\n\n\t\t} else {\n\n\t\t\tcurrentRenderList = null;\n\n\t\t}\n\n\t};\n\n\tfunction projectObject( object, camera, groupOrder, sortObjects ) {\n\n\t\tif ( object.visible === false ) return;\n\n\t\tconst visible = object.layers.test( camera.layers );\n\n\t\tif ( visible ) {\n\n\t\t\tif ( object.isGroup ) {\n\n\t\t\t\tgroupOrder = object.renderOrder;\n\n\t\t\t} else if ( object.isLOD ) {\n\n\t\t\t\tif ( object.autoUpdate === true ) object.update( camera );\n\n\t\t\t} else if ( object.isLight ) {\n\n\t\t\t\tcurrentRenderState.pushLight( object );\n\n\t\t\t\tif ( object.castShadow ) {\n\n\t\t\t\t\tcurrentRenderState.pushShadow( object );\n\n\t\t\t\t}\n\n\t\t\t} else if ( object.isSprite ) {\n\n\t\t\t\tif ( ! object.frustumCulled || _frustum.intersectsSprite( object ) ) {\n\n\t\t\t\t\tif ( sortObjects ) {\n\n\t\t\t\t\t\t_vector3.setFromMatrixPosition( object.matrixWorld )\n\t\t\t\t\t\t\t.applyMatrix4( _projScreenMatrix );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst geometry = objects.update( object );\n\t\t\t\t\tconst material = object.material;\n\n\t\t\t\t\tif ( material.visible ) {\n\n\t\t\t\t\t\tcurrentRenderList.push( object, geometry, material, groupOrder, _vector3.z, null );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( object.isMesh || object.isLine || object.isPoints ) {\n\n\t\t\t\tif ( object.isSkinnedMesh ) {\n\n\t\t\t\t\t// update skeleton only once in a frame\n\n\t\t\t\t\tif ( object.skeleton.frame !== info.render.frame ) {\n\n\t\t\t\t\t\tobject.skeleton.update();\n\t\t\t\t\t\tobject.skeleton.frame = info.render.frame;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( ! object.frustumCulled || _frustum.intersectsObject( object ) ) {\n\n\t\t\t\t\tif ( sortObjects ) {\n\n\t\t\t\t\t\t_vector3.setFromMatrixPosition( object.matrixWorld )\n\t\t\t\t\t\t\t.applyMatrix4( _projScreenMatrix );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst geometry = objects.update( object );\n\t\t\t\t\tconst material = object.material;\n\n\t\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\t\tconst groups = geometry.groups;\n\n\t\t\t\t\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\t\t\tif ( groupMaterial && groupMaterial.visible ) {\n\n\t\t\t\t\t\t\t\tcurrentRenderList.push( object, geometry, groupMaterial, groupOrder, _vector3.z, group );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else if ( material.visible ) {\n\n\t\t\t\t\t\tcurrentRenderList.push( object, geometry, material, groupOrder, _vector3.z, null );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tprojectObject( children[ i ], camera, groupOrder, sortObjects );\n\n\t\t}\n\n\t}\n\n\tfunction renderScene( currentRenderList, scene, camera, viewport ) {\n\n\t\tconst opaqueObjects = currentRenderList.opaque;\n\t\tconst transmissiveObjects = currentRenderList.transmissive;\n\t\tconst transparentObjects = currentRenderList.transparent;\n\n\t\tcurrentRenderState.setupLightsView( camera );\n\n\t\tif ( transmissiveObjects.length > 0 ) renderTransmissionPass( opaqueObjects, scene, camera );\n\n\t\tif ( viewport ) state.viewport( _currentViewport.copy( viewport ) );\n\n\t\tif ( opaqueObjects.length > 0 ) renderObjects( opaqueObjects, scene, camera );\n\t\tif ( transmissiveObjects.length > 0 ) renderObjects( transmissiveObjects, scene, camera );\n\t\tif ( transparentObjects.length > 0 ) renderObjects( transparentObjects, scene, camera );\n\n\t}\n\n\tfunction renderTransmissionPass( opaqueObjects, scene, camera ) {\n\n\t\tif ( _transmissionRenderTarget === null ) {\n\n\t\t\tconst needsAntialias = _antialias === true && capabilities.isWebGL2 === true;\n\t\t\tconst renderTargetType = needsAntialias ? WebGLMultisampleRenderTarget : WebGLRenderTarget;\n\n\t\t\t_transmissionRenderTarget = new renderTargetType( 1024, 1024, {\n\t\t\t\tgenerateMipmaps: true,\n\t\t\t\ttype: utils.convert( HalfFloatType ) !== null ? HalfFloatType : UnsignedByteType,\n\t\t\t\tminFilter: LinearMipmapLinearFilter,\n\t\t\t\tmagFilter: NearestFilter,\n\t\t\t\twrapS: ClampToEdgeWrapping,\n\t\t\t\twrapT: ClampToEdgeWrapping,\n\t\t\t\tuseRenderToTexture: extensions.has( 'WEBGL_multisampled_render_to_texture' )\n\t\t\t} );\n\n\t\t}\n\n\t\tconst currentRenderTarget = _this.getRenderTarget();\n\t\t_this.setRenderTarget( _transmissionRenderTarget );\n\t\t_this.clear();\n\n\t\t// Turn off the features which can affect the frag color for opaque objects pass.\n\t\t// Otherwise they are applied twice in opaque objects pass and transmission objects pass.\n\t\tconst currentToneMapping = _this.toneMapping;\n\t\t_this.toneMapping = NoToneMapping;\n\n\t\trenderObjects( opaqueObjects, scene, camera );\n\n\t\t_this.toneMapping = currentToneMapping;\n\n\t\ttextures.updateMultisampleRenderTarget( _transmissionRenderTarget );\n\t\ttextures.updateRenderTargetMipmap( _transmissionRenderTarget );\n\n\t\t_this.setRenderTarget( currentRenderTarget );\n\n\t}\n\n\tfunction renderObjects( renderList, scene, camera ) {\n\n\t\tconst overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null;\n\n\t\tfor ( let i = 0, l = renderList.length; i < l; i ++ ) {\n\n\t\t\tconst renderItem = renderList[ i ];\n\n\t\t\tconst object = renderItem.object;\n\t\t\tconst geometry = renderItem.geometry;\n\t\t\tconst material = overrideMaterial === null ? renderItem.material : overrideMaterial;\n\t\t\tconst group = renderItem.group;\n\n\t\t\tif ( object.layers.test( camera.layers ) ) {\n\n\t\t\t\trenderObject( object, scene, camera, geometry, material, group );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction renderObject( object, scene, camera, geometry, material, group ) {\n\n\t\tobject.onBeforeRender( _this, scene, camera, geometry, material, group );\n\n\t\tobject.modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, object.matrixWorld );\n\t\tobject.normalMatrix.getNormalMatrix( object.modelViewMatrix );\n\n\t\tmaterial.onBeforeRender( _this, scene, camera, geometry, object, group );\n\n\t\tif ( material.transparent === true && material.side === DoubleSide ) {\n\n\t\t\tmaterial.side = BackSide;\n\t\t\tmaterial.needsUpdate = true;\n\t\t\t_this.renderBufferDirect( camera, scene, geometry, material, object, group );\n\n\t\t\tmaterial.side = FrontSide;\n\t\t\tmaterial.needsUpdate = true;\n\t\t\t_this.renderBufferDirect( camera, scene, geometry, material, object, group );\n\n\t\t\tmaterial.side = DoubleSide;\n\n\t\t} else {\n\n\t\t\t_this.renderBufferDirect( camera, scene, geometry, material, object, group );\n\n\t\t}\n\n\t\tobject.onAfterRender( _this, scene, camera, geometry, material, group );\n\n\t}\n\n\tfunction getProgram( material, scene, object ) {\n\n\t\tif ( scene.isScene !== true ) scene = _emptyScene; // scene could be a Mesh, Line, Points, ...\n\n\t\tconst materialProperties = properties.get( material );\n\n\t\tconst lights = currentRenderState.state.lights;\n\t\tconst shadowsArray = currentRenderState.state.shadowsArray;\n\n\t\tconst lightsStateVersion = lights.state.version;\n\n\t\tconst parameters = programCache.getParameters( material, lights.state, shadowsArray, scene, object );\n\t\tconst programCacheKey = programCache.getProgramCacheKey( parameters );\n\n\t\tlet programs = materialProperties.programs;\n\n\t\t// always update environment and fog - changing these trigger an getProgram call, but it's possible that the program doesn't change\n\n\t\tmaterialProperties.environment = material.isMeshStandardMaterial ? scene.environment : null;\n\t\tmaterialProperties.fog = scene.fog;\n\t\tmaterialProperties.envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || materialProperties.environment );\n\n\t\tif ( programs === undefined ) {\n\n\t\t\t// new material\n\n\t\t\tmaterial.addEventListener( 'dispose', onMaterialDispose );\n\n\t\t\tprograms = new Map();\n\t\t\tmaterialProperties.programs = programs;\n\n\t\t}\n\n\t\tlet program = programs.get( programCacheKey );\n\n\t\tif ( program !== undefined ) {\n\n\t\t\t// early out if program and light state is identical\n\n\t\t\tif ( materialProperties.currentProgram === program && materialProperties.lightsStateVersion === lightsStateVersion ) {\n\n\t\t\t\tupdateCommonMaterialProperties( material, parameters );\n\n\t\t\t\treturn program;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tparameters.uniforms = programCache.getUniforms( material );\n\n\t\t\tmaterial.onBuild( object, parameters, _this );\n\n\t\t\tmaterial.onBeforeCompile( parameters, _this );\n\n\t\t\tprogram = programCache.acquireProgram( parameters, programCacheKey );\n\t\t\tprograms.set( programCacheKey, program );\n\n\t\t\tmaterialProperties.uniforms = parameters.uniforms;\n\n\t\t}\n\n\t\tconst uniforms = materialProperties.uniforms;\n\n\t\tif ( ( ! material.isShaderMaterial && ! material.isRawShaderMaterial ) || material.clipping === true ) {\n\n\t\t\tuniforms.clippingPlanes = clipping.uniform;\n\n\t\t}\n\n\t\tupdateCommonMaterialProperties( material, parameters );\n\n\t\t// store the light setup it was created for\n\n\t\tmaterialProperties.needsLights = materialNeedsLights( material );\n\t\tmaterialProperties.lightsStateVersion = lightsStateVersion;\n\n\t\tif ( materialProperties.needsLights ) {\n\n\t\t\t// wire up the material to this renderer's lighting state\n\n\t\t\tuniforms.ambientLightColor.value = lights.state.ambient;\n\t\t\tuniforms.lightProbe.value = lights.state.probe;\n\t\t\tuniforms.directionalLights.value = lights.state.directional;\n\t\t\tuniforms.directionalLightShadows.value = lights.state.directionalShadow;\n\t\t\tuniforms.spotLights.value = lights.state.spot;\n\t\t\tuniforms.spotLightShadows.value = lights.state.spotShadow;\n\t\t\tuniforms.rectAreaLights.value = lights.state.rectArea;\n\t\t\tuniforms.ltc_1.value = lights.state.rectAreaLTC1;\n\t\t\tuniforms.ltc_2.value = lights.state.rectAreaLTC2;\n\t\t\tuniforms.pointLights.value = lights.state.point;\n\t\t\tuniforms.pointLightShadows.value = lights.state.pointShadow;\n\t\t\tuniforms.hemisphereLights.value = lights.state.hemi;\n\n\t\t\tuniforms.directionalShadowMap.value = lights.state.directionalShadowMap;\n\t\t\tuniforms.directionalShadowMatrix.value = lights.state.directionalShadowMatrix;\n\t\t\tuniforms.spotShadowMap.value = lights.state.spotShadowMap;\n\t\t\tuniforms.spotShadowMatrix.value = lights.state.spotShadowMatrix;\n\t\t\tuniforms.pointShadowMap.value = lights.state.pointShadowMap;\n\t\t\tuniforms.pointShadowMatrix.value = lights.state.pointShadowMatrix;\n\t\t\t// TODO (abelnation): add area lights shadow info to uniforms\n\n\t\t}\n\n\t\tconst progUniforms = program.getUniforms();\n\t\tconst uniformsList = WebGLUniforms.seqWithValue( progUniforms.seq, uniforms );\n\n\t\tmaterialProperties.currentProgram = program;\n\t\tmaterialProperties.uniformsList = uniformsList;\n\n\t\treturn program;\n\n\t}\n\n\tfunction updateCommonMaterialProperties( material, parameters ) {\n\n\t\tconst materialProperties = properties.get( material );\n\n\t\tmaterialProperties.outputEncoding = parameters.outputEncoding;\n\t\tmaterialProperties.instancing = parameters.instancing;\n\t\tmaterialProperties.skinning = parameters.skinning;\n\t\tmaterialProperties.morphTargets = parameters.morphTargets;\n\t\tmaterialProperties.morphNormals = parameters.morphNormals;\n\t\tmaterialProperties.morphTargetsCount = parameters.morphTargetsCount;\n\t\tmaterialProperties.numClippingPlanes = parameters.numClippingPlanes;\n\t\tmaterialProperties.numIntersection = parameters.numClipIntersection;\n\t\tmaterialProperties.vertexAlphas = parameters.vertexAlphas;\n\t\tmaterialProperties.vertexTangents = parameters.vertexTangents;\n\t\tmaterialProperties.toneMapping = parameters.toneMapping;\n\n\t}\n\n\tfunction setProgram( camera, scene, geometry, material, object ) {\n\n\t\tif ( scene.isScene !== true ) scene = _emptyScene; // scene could be a Mesh, Line, Points, ...\n\n\t\ttextures.resetTextureUnits();\n\n\t\tconst fog = scene.fog;\n\t\tconst environment = material.isMeshStandardMaterial ? scene.environment : null;\n\t\tconst encoding = ( _currentRenderTarget === null ) ? _this.outputEncoding : ( _currentRenderTarget.isXRRenderTarget === true ? _currentRenderTarget.texture.encoding : LinearEncoding );\n\t\tconst envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment );\n\t\tconst vertexAlphas = material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4;\n\t\tconst vertexTangents = !! material.normalMap && !! geometry.attributes.tangent;\n\t\tconst morphTargets = !! geometry.morphAttributes.position;\n\t\tconst morphNormals = !! geometry.morphAttributes.normal;\n\t\tconst morphTargetsCount = !! geometry.morphAttributes.position ? geometry.morphAttributes.position.length : 0;\n\t\tconst toneMapping = material.toneMapped ? _this.toneMapping : NoToneMapping;\n\n\t\tconst materialProperties = properties.get( material );\n\t\tconst lights = currentRenderState.state.lights;\n\n\t\tif ( _clippingEnabled === true ) {\n\n\t\t\tif ( _localClippingEnabled === true || camera !== _currentCamera ) {\n\n\t\t\t\tconst useCache =\n\t\t\t\t\tcamera === _currentCamera &&\n\t\t\t\t\tmaterial.id === _currentMaterialId;\n\n\t\t\t\t// we might want to call this function with some ClippingGroup\n\t\t\t\t// object instead of the material, once it becomes feasible\n\t\t\t\t// (#8465, #8379)\n\t\t\t\tclipping.setState( material, camera, useCache );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tlet needsProgramChange = false;\n\n\t\tif ( material.version === materialProperties.__version ) {\n\n\t\t\tif ( materialProperties.needsLights && ( materialProperties.lightsStateVersion !== lights.state.version ) ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( materialProperties.outputEncoding !== encoding ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancing === false ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( ! object.isInstancedMesh && materialProperties.instancing === true ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( object.isSkinnedMesh && materialProperties.skinning === false ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( ! object.isSkinnedMesh && materialProperties.skinning === true ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( materialProperties.envMap !== envMap ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( material.fog && materialProperties.fog !== fog ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( materialProperties.numClippingPlanes !== undefined &&\n\t\t\t\t( materialProperties.numClippingPlanes !== clipping.numPlanes ||\n\t\t\t\tmaterialProperties.numIntersection !== clipping.numIntersection ) ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( materialProperties.vertexAlphas !== vertexAlphas ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( materialProperties.vertexTangents !== vertexTangents ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( materialProperties.morphTargets !== morphTargets ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( materialProperties.morphNormals !== morphNormals ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( materialProperties.toneMapping !== toneMapping ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( capabilities.isWebGL2 === true && materialProperties.morphTargetsCount !== morphTargetsCount ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tneedsProgramChange = true;\n\t\t\tmaterialProperties.__version = material.version;\n\n\t\t}\n\n\t\t//\n\n\t\tlet program = materialProperties.currentProgram;\n\n\t\tif ( needsProgramChange === true ) {\n\n\t\t\tprogram = getProgram( material, scene, object );\n\n\t\t}\n\n\t\tlet refreshProgram = false;\n\t\tlet refreshMaterial = false;\n\t\tlet refreshLights = false;\n\n\t\tconst p_uniforms = program.getUniforms(),\n\t\t\tm_uniforms = materialProperties.uniforms;\n\n\t\tif ( state.useProgram( program.program ) ) {\n\n\t\t\trefreshProgram = true;\n\t\t\trefreshMaterial = true;\n\t\t\trefreshLights = true;\n\n\t\t}\n\n\t\tif ( material.id !== _currentMaterialId ) {\n\n\t\t\t_currentMaterialId = material.id;\n\n\t\t\trefreshMaterial = true;\n\n\t\t}\n\n\t\tif ( refreshProgram || _currentCamera !== camera ) {\n\n\t\t\tp_uniforms.setValue( _gl, 'projectionMatrix', camera.projectionMatrix );\n\n\t\t\tif ( capabilities.logarithmicDepthBuffer ) {\n\n\t\t\t\tp_uniforms.setValue( _gl, 'logDepthBufFC',\n\t\t\t\t\t2.0 / ( Math.log( camera.far + 1.0 ) / Math.LN2 ) );\n\n\t\t\t}\n\n\t\t\tif ( _currentCamera !== camera ) {\n\n\t\t\t\t_currentCamera = camera;\n\n\t\t\t\t// lighting uniforms depend on the camera so enforce an update\n\t\t\t\t// now, in case this material supports lights - or later, when\n\t\t\t\t// the next material that does gets activated:\n\n\t\t\t\trefreshMaterial = true;\t\t// set to true on material change\n\t\t\t\trefreshLights = true;\t\t// remains set until update done\n\n\t\t\t}\n\n\t\t\t// load material specific uniforms\n\t\t\t// (shader material also gets them for the sake of genericity)\n\n\t\t\tif ( material.isShaderMaterial ||\n\t\t\t\tmaterial.isMeshPhongMaterial ||\n\t\t\t\tmaterial.isMeshToonMaterial ||\n\t\t\t\tmaterial.isMeshStandardMaterial ||\n\t\t\t\tmaterial.envMap ) {\n\n\t\t\t\tconst uCamPos = p_uniforms.map.cameraPosition;\n\n\t\t\t\tif ( uCamPos !== undefined ) {\n\n\t\t\t\t\tuCamPos.setValue( _gl,\n\t\t\t\t\t\t_vector3.setFromMatrixPosition( camera.matrixWorld ) );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( material.isMeshPhongMaterial ||\n\t\t\t\tmaterial.isMeshToonMaterial ||\n\t\t\t\tmaterial.isMeshLambertMaterial ||\n\t\t\t\tmaterial.isMeshBasicMaterial ||\n\t\t\t\tmaterial.isMeshStandardMaterial ||\n\t\t\t\tmaterial.isShaderMaterial ) {\n\n\t\t\t\tp_uniforms.setValue( _gl, 'isOrthographic', camera.isOrthographicCamera === true );\n\n\t\t\t}\n\n\t\t\tif ( material.isMeshPhongMaterial ||\n\t\t\t\tmaterial.isMeshToonMaterial ||\n\t\t\t\tmaterial.isMeshLambertMaterial ||\n\t\t\t\tmaterial.isMeshBasicMaterial ||\n\t\t\t\tmaterial.isMeshStandardMaterial ||\n\t\t\t\tmaterial.isShaderMaterial ||\n\t\t\t\tmaterial.isShadowMaterial ||\n\t\t\t\tobject.isSkinnedMesh ) {\n\n\t\t\t\tp_uniforms.setValue( _gl, 'viewMatrix', camera.matrixWorldInverse );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// skinning and morph target uniforms must be set even if material didn't change\n\t\t// auto-setting of texture unit for bone and morph texture must go before other textures\n\t\t// otherwise textures used for skinning and morphing can take over texture units reserved for other material textures\n\n\t\tif ( object.isSkinnedMesh ) {\n\n\t\t\tp_uniforms.setOptional( _gl, object, 'bindMatrix' );\n\t\t\tp_uniforms.setOptional( _gl, object, 'bindMatrixInverse' );\n\n\t\t\tconst skeleton = object.skeleton;\n\n\t\t\tif ( skeleton ) {\n\n\t\t\t\tif ( capabilities.floatVertexTextures ) {\n\n\t\t\t\t\tif ( skeleton.boneTexture === null ) skeleton.computeBoneTexture();\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'boneTexture', skeleton.boneTexture, textures );\n\t\t\t\t\tp_uniforms.setValue( _gl, 'boneTextureSize', skeleton.boneTextureSize );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tp_uniforms.setOptional( _gl, skeleton, 'boneMatrices' );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( !! geometry && ( geometry.morphAttributes.position !== undefined || geometry.morphAttributes.normal !== undefined ) ) {\n\n\t\t\tmorphtargets.update( object, geometry, material, program );\n\n\t\t}\n\n\n\t\tif ( refreshMaterial || materialProperties.receiveShadow !== object.receiveShadow ) {\n\n\t\t\tmaterialProperties.receiveShadow = object.receiveShadow;\n\t\t\tp_uniforms.setValue( _gl, 'receiveShadow', object.receiveShadow );\n\n\t\t}\n\n\t\tif ( refreshMaterial ) {\n\n\t\t\tp_uniforms.setValue( _gl, 'toneMappingExposure', _this.toneMappingExposure );\n\n\t\t\tif ( materialProperties.needsLights ) {\n\n\t\t\t\t// the current material requires lighting info\n\n\t\t\t\t// note: all lighting uniforms are always set correctly\n\t\t\t\t// they simply reference the renderer's state for their\n\t\t\t\t// values\n\t\t\t\t//\n\t\t\t\t// use the current material's .needsUpdate flags to set\n\t\t\t\t// the GL state when required\n\n\t\t\t\tmarkUniformsLightsNeedsUpdate( m_uniforms, refreshLights );\n\n\t\t\t}\n\n\t\t\t// refresh uniforms common to several materials\n\n\t\t\tif ( fog && material.fog ) {\n\n\t\t\t\tmaterials.refreshFogUniforms( m_uniforms, fog );\n\n\t\t\t}\n\n\t\t\tmaterials.refreshMaterialUniforms( m_uniforms, material, _pixelRatio, _height, _transmissionRenderTarget );\n\n\t\t\tWebGLUniforms.upload( _gl, materialProperties.uniformsList, m_uniforms, textures );\n\n\t\t}\n\n\t\tif ( material.isShaderMaterial && material.uniformsNeedUpdate === true ) {\n\n\t\t\tWebGLUniforms.upload( _gl, materialProperties.uniformsList, m_uniforms, textures );\n\t\t\tmaterial.uniformsNeedUpdate = false;\n\n\t\t}\n\n\t\tif ( material.isSpriteMaterial ) {\n\n\t\t\tp_uniforms.setValue( _gl, 'center', object.center );\n\n\t\t}\n\n\t\t// common matrices\n\n\t\tp_uniforms.setValue( _gl, 'modelViewMatrix', object.modelViewMatrix );\n\t\tp_uniforms.setValue( _gl, 'normalMatrix', object.normalMatrix );\n\t\tp_uniforms.setValue( _gl, 'modelMatrix', object.matrixWorld );\n\n\t\treturn program;\n\n\t}\n\n\t// If uniforms are marked as clean, they don't need to be loaded to the GPU.\n\n\tfunction markUniformsLightsNeedsUpdate( uniforms, value ) {\n\n\t\tuniforms.ambientLightColor.needsUpdate = value;\n\t\tuniforms.lightProbe.needsUpdate = value;\n\n\t\tuniforms.directionalLights.needsUpdate = value;\n\t\tuniforms.directionalLightShadows.needsUpdate = value;\n\t\tuniforms.pointLights.needsUpdate = value;\n\t\tuniforms.pointLightShadows.needsUpdate = value;\n\t\tuniforms.spotLights.needsUpdate = value;\n\t\tuniforms.spotLightShadows.needsUpdate = value;\n\t\tuniforms.rectAreaLights.needsUpdate = value;\n\t\tuniforms.hemisphereLights.needsUpdate = value;\n\n\t}\n\n\tfunction materialNeedsLights( material ) {\n\n\t\treturn material.isMeshLambertMaterial || material.isMeshToonMaterial || material.isMeshPhongMaterial ||\n\t\t\tmaterial.isMeshStandardMaterial || material.isShadowMaterial ||\n\t\t\t( material.isShaderMaterial && material.lights === true );\n\n\t}\n\n\tthis.getActiveCubeFace = function () {\n\n\t\treturn _currentActiveCubeFace;\n\n\t};\n\n\tthis.getActiveMipmapLevel = function () {\n\n\t\treturn _currentActiveMipmapLevel;\n\n\t};\n\n\tthis.getRenderTarget = function () {\n\n\t\treturn _currentRenderTarget;\n\n\t};\n\n\tthis.setRenderTargetTextures = function ( renderTarget, colorTexture, depthTexture ) {\n\n\t\tproperties.get( renderTarget.texture ).__webglTexture = colorTexture;\n\t\tproperties.get( renderTarget.depthTexture ).__webglTexture = depthTexture;\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\trenderTargetProperties.__hasExternalTextures = true;\n\n\t\tif ( renderTargetProperties.__hasExternalTextures ) {\n\n\t\t\trenderTargetProperties.__autoAllocateDepthBuffer = depthTexture === undefined;\n\n\t\t\tif ( ! renderTargetProperties.__autoAllocateDepthBuffer ) {\n\n\t\t\t\t// The multisample_render_to_texture extension doesn't work properly if there\n\t\t\t\t// are midframe flushes and an external depth buffer. Disable use of the extension.\n\t\t\t\tif ( renderTarget.useRenderToTexture ) {\n\n\t\t\t\t\tconsole.warn( 'render-to-texture extension was disabled because an external texture was provided' );\n\t\t\t\t\trenderTarget.useRenderToTexture = false;\n\t\t\t\t\trenderTarget.useRenderbuffer = true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t};\n\n\tthis.setRenderTargetFramebuffer = function ( renderTarget, defaultFramebuffer ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\trenderTargetProperties.__webglFramebuffer = defaultFramebuffer;\n\t\trenderTargetProperties.__useDefaultFramebuffer = defaultFramebuffer === undefined;\n\n\t};\n\n\tthis.setRenderTarget = function ( renderTarget, activeCubeFace = 0, activeMipmapLevel = 0 ) {\n\n\t\t_currentRenderTarget = renderTarget;\n\t\t_currentActiveCubeFace = activeCubeFace;\n\t\t_currentActiveMipmapLevel = activeMipmapLevel;\n\t\tlet useDefaultFramebuffer = true;\n\n\t\tif ( renderTarget ) {\n\n\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\t\tif ( renderTargetProperties.__useDefaultFramebuffer !== undefined ) {\n\n\t\t\t\t// We need to make sure to rebind the framebuffer.\n\t\t\t\tstate.bindFramebuffer( 36160, null );\n\t\t\t\tuseDefaultFramebuffer = false;\n\n\t\t\t} else if ( renderTargetProperties.__webglFramebuffer === undefined ) {\n\n\t\t\t\ttextures.setupRenderTarget( renderTarget );\n\n\t\t\t} else if ( renderTargetProperties.__hasExternalTextures ) {\n\n\t\t\t\t// Color and depth texture must be rebound in order for the swapchain to update.\n\t\t\t\ttextures.rebindTextures( renderTarget, properties.get( renderTarget.texture ).__webglTexture, properties.get( renderTarget.depthTexture ).__webglTexture );\n\n\t\t\t}\n\n\t\t}\n\n\t\tlet framebuffer = null;\n\t\tlet isCube = false;\n\t\tlet isRenderTarget3D = false;\n\n\t\tif ( renderTarget ) {\n\n\t\t\tconst texture = renderTarget.texture;\n\n\t\t\tif ( texture.isDataTexture3D || texture.isDataTexture2DArray ) {\n\n\t\t\t\tisRenderTarget3D = true;\n\n\t\t\t}\n\n\t\t\tconst __webglFramebuffer = properties.get( renderTarget ).__webglFramebuffer;\n\n\t\t\tif ( renderTarget.isWebGLCubeRenderTarget ) {\n\n\t\t\t\tframebuffer = __webglFramebuffer[ activeCubeFace ];\n\t\t\t\tisCube = true;\n\n\t\t\t} else if ( renderTarget.useRenderbuffer ) {\n\n\t\t\t\tframebuffer = properties.get( renderTarget ).__webglMultisampledFramebuffer;\n\n\t\t\t} else {\n\n\t\t\t\tframebuffer = __webglFramebuffer;\n\n\t\t\t}\n\n\t\t\t_currentViewport.copy( renderTarget.viewport );\n\t\t\t_currentScissor.copy( renderTarget.scissor );\n\t\t\t_currentScissorTest = renderTarget.scissorTest;\n\n\t\t} else {\n\n\t\t\t_currentViewport.copy( _viewport ).multiplyScalar( _pixelRatio ).floor();\n\t\t\t_currentScissor.copy( _scissor ).multiplyScalar( _pixelRatio ).floor();\n\t\t\t_currentScissorTest = _scissorTest;\n\n\t\t}\n\n\t\tconst framebufferBound = state.bindFramebuffer( 36160, framebuffer );\n\n\t\tif ( framebufferBound && capabilities.drawBuffers && useDefaultFramebuffer ) {\n\n\t\t\tstate.drawBuffers( renderTarget, framebuffer );\n\n\t\t}\n\n\t\tstate.viewport( _currentViewport );\n\t\tstate.scissor( _currentScissor );\n\t\tstate.setScissorTest( _currentScissorTest );\n\n\t\tif ( isCube ) {\n\n\t\t\tconst textureProperties = properties.get( renderTarget.texture );\n\t\t\t_gl.framebufferTexture2D( 36160, 36064, 34069 + activeCubeFace, textureProperties.__webglTexture, activeMipmapLevel );\n\n\t\t} else if ( isRenderTarget3D ) {\n\n\t\t\tconst textureProperties = properties.get( renderTarget.texture );\n\t\t\tconst layer = activeCubeFace || 0;\n\t\t\t_gl.framebufferTextureLayer( 36160, 36064, textureProperties.__webglTexture, activeMipmapLevel || 0, layer );\n\n\t\t}\n\n\t\t_currentMaterialId = - 1; // reset current material to ensure correct uniform bindings\n\n\t};\n\n\tthis.readRenderTargetPixels = function ( renderTarget, x, y, width, height, buffer, activeCubeFaceIndex ) {\n\n\t\tif ( ! ( renderTarget && renderTarget.isWebGLRenderTarget ) ) {\n\n\t\t\tconsole.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tlet framebuffer = properties.get( renderTarget ).__webglFramebuffer;\n\n\t\tif ( renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== undefined ) {\n\n\t\t\tframebuffer = framebuffer[ activeCubeFaceIndex ];\n\n\t\t}\n\n\t\tif ( framebuffer ) {\n\n\t\t\tstate.bindFramebuffer( 36160, framebuffer );\n\n\t\t\ttry {\n\n\t\t\t\tconst texture = renderTarget.texture;\n\t\t\t\tconst textureFormat = texture.format;\n\t\t\t\tconst textureType = texture.type;\n\n\t\t\t\tif ( textureFormat !== RGBAFormat && utils.convert( textureFormat ) !== _gl.getParameter( 35739 ) ) {\n\n\t\t\t\t\tconsole.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.' );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tconst halfFloatSupportedByExt = ( textureType === HalfFloatType ) && ( extensions.has( 'EXT_color_buffer_half_float' ) || ( capabilities.isWebGL2 && extensions.has( 'EXT_color_buffer_float' ) ) );\n\n\t\t\t\tif ( textureType !== UnsignedByteType && utils.convert( textureType ) !== _gl.getParameter( 35738 ) && // Edge and Chrome Mac < 52 (#9513)\n\t\t\t\t\t! ( textureType === FloatType && ( capabilities.isWebGL2 || extensions.has( 'OES_texture_float' ) || extensions.has( 'WEBGL_color_buffer_float' ) ) ) && // Chrome Mac >= 52 and Firefox\n\t\t\t\t\t! halfFloatSupportedByExt ) {\n\n\t\t\t\t\tconsole.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.' );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tif ( _gl.checkFramebufferStatus( 36160 ) === 36053 ) {\n\n\t\t\t\t\t// the following if statement ensures valid read requests (no out-of-bounds pixels, see #8604)\n\n\t\t\t\t\tif ( ( x >= 0 && x <= ( renderTarget.width - width ) ) && ( y >= 0 && y <= ( renderTarget.height - height ) ) ) {\n\n\t\t\t\t\t\t_gl.readPixels( x, y, width, height, utils.convert( textureFormat ), utils.convert( textureType ), buffer );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( 'THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.' );\n\n\t\t\t\t}\n\n\t\t\t} finally {\n\n\t\t\t\t// restore framebuffer of current render target if necessary\n\n\t\t\t\tconst framebuffer = ( _currentRenderTarget !== null ) ? properties.get( _currentRenderTarget ).__webglFramebuffer : null;\n\t\t\t\tstate.bindFramebuffer( 36160, framebuffer );\n\n\t\t\t}\n\n\t\t}\n\n\t};\n\n\tthis.copyFramebufferToTexture = function ( position, texture, level = 0 ) {\n\n\t\tif ( texture.isFramebufferTexture !== true ) {\n\n\t\t\tconsole.error( 'THREE.WebGLRenderer: copyFramebufferToTexture() can only be used with FramebufferTexture.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst levelScale = Math.pow( 2, - level );\n\t\tconst width = Math.floor( texture.image.width * levelScale );\n\t\tconst height = Math.floor( texture.image.height * levelScale );\n\n\t\ttextures.setTexture2D( texture, 0 );\n\n\t\t_gl.copyTexSubImage2D( 3553, level, 0, 0, position.x, position.y, width, height );\n\n\t\tstate.unbindTexture();\n\n\t};\n\n\tthis.copyTextureToTexture = function ( position, srcTexture, dstTexture, level = 0 ) {\n\n\t\tconst width = srcTexture.image.width;\n\t\tconst height = srcTexture.image.height;\n\t\tconst glFormat = utils.convert( dstTexture.format );\n\t\tconst glType = utils.convert( dstTexture.type );\n\n\t\ttextures.setTexture2D( dstTexture, 0 );\n\n\t\t// As another texture upload may have changed pixelStorei\n\t\t// parameters, make sure they are correct for the dstTexture\n\t\t_gl.pixelStorei( 37440, dstTexture.flipY );\n\t\t_gl.pixelStorei( 37441, dstTexture.premultiplyAlpha );\n\t\t_gl.pixelStorei( 3317, dstTexture.unpackAlignment );\n\n\t\tif ( srcTexture.isDataTexture ) {\n\n\t\t\t_gl.texSubImage2D( 3553, level, position.x, position.y, width, height, glFormat, glType, srcTexture.image.data );\n\n\t\t} else {\n\n\t\t\tif ( srcTexture.isCompressedTexture ) {\n\n\t\t\t\t_gl.compressedTexSubImage2D( 3553, level, position.x, position.y, srcTexture.mipmaps[ 0 ].width, srcTexture.mipmaps[ 0 ].height, glFormat, srcTexture.mipmaps[ 0 ].data );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.texSubImage2D( 3553, level, position.x, position.y, glFormat, glType, srcTexture.image );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Generate mipmaps only when copying level 0\n\t\tif ( level === 0 && dstTexture.generateMipmaps ) _gl.generateMipmap( 3553 );\n\n\t\tstate.unbindTexture();\n\n\t};\n\n\tthis.copyTextureToTexture3D = function ( sourceBox, position, srcTexture, dstTexture, level = 0 ) {\n\n\t\tif ( _this.isWebGL1Renderer ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst width = sourceBox.max.x - sourceBox.min.x + 1;\n\t\tconst height = sourceBox.max.y - sourceBox.min.y + 1;\n\t\tconst depth = sourceBox.max.z - sourceBox.min.z + 1;\n\t\tconst glFormat = utils.convert( dstTexture.format );\n\t\tconst glType = utils.convert( dstTexture.type );\n\t\tlet glTarget;\n\n\t\tif ( dstTexture.isDataTexture3D ) {\n\n\t\t\ttextures.setTexture3D( dstTexture, 0 );\n\t\t\tglTarget = 32879;\n\n\t\t} else if ( dstTexture.isDataTexture2DArray ) {\n\n\t\t\ttextures.setTexture2DArray( dstTexture, 0 );\n\t\t\tglTarget = 35866;\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\t_gl.pixelStorei( 37440, dstTexture.flipY );\n\t\t_gl.pixelStorei( 37441, dstTexture.premultiplyAlpha );\n\t\t_gl.pixelStorei( 3317, dstTexture.unpackAlignment );\n\n\t\tconst unpackRowLen = _gl.getParameter( 3314 );\n\t\tconst unpackImageHeight = _gl.getParameter( 32878 );\n\t\tconst unpackSkipPixels = _gl.getParameter( 3316 );\n\t\tconst unpackSkipRows = _gl.getParameter( 3315 );\n\t\tconst unpackSkipImages = _gl.getParameter( 32877 );\n\n\t\tconst image = srcTexture.isCompressedTexture ? srcTexture.mipmaps[ 0 ] : srcTexture.image;\n\n\t\t_gl.pixelStorei( 3314, image.width );\n\t\t_gl.pixelStorei( 32878, image.height );\n\t\t_gl.pixelStorei( 3316, sourceBox.min.x );\n\t\t_gl.pixelStorei( 3315, sourceBox.min.y );\n\t\t_gl.pixelStorei( 32877, sourceBox.min.z );\n\n\t\tif ( srcTexture.isDataTexture || srcTexture.isDataTexture3D ) {\n\n\t\t\t_gl.texSubImage3D( glTarget, level, position.x, position.y, position.z, width, height, depth, glFormat, glType, image.data );\n\n\t\t} else {\n\n\t\t\tif ( srcTexture.isCompressedTexture ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture.' );\n\t\t\t\t_gl.compressedTexSubImage3D( glTarget, level, position.x, position.y, position.z, width, height, depth, glFormat, image.data );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.texSubImage3D( glTarget, level, position.x, position.y, position.z, width, height, depth, glFormat, glType, image );\n\n\t\t\t}\n\n\t\t}\n\n\t\t_gl.pixelStorei( 3314, unpackRowLen );\n\t\t_gl.pixelStorei( 32878, unpackImageHeight );\n\t\t_gl.pixelStorei( 3316, unpackSkipPixels );\n\t\t_gl.pixelStorei( 3315, unpackSkipRows );\n\t\t_gl.pixelStorei( 32877, unpackSkipImages );\n\n\t\t// Generate mipmaps only when copying level 0\n\t\tif ( level === 0 && dstTexture.generateMipmaps ) _gl.generateMipmap( glTarget );\n\n\t\tstate.unbindTexture();\n\n\t};\n\n\tthis.initTexture = function ( texture ) {\n\n\t\ttextures.setTexture2D( texture, 0 );\n\n\t\tstate.unbindTexture();\n\n\t};\n\n\tthis.resetState = function () {\n\n\t\t_currentActiveCubeFace = 0;\n\t\t_currentActiveMipmapLevel = 0;\n\t\t_currentRenderTarget = null;\n\n\t\tstate.reset();\n\t\tbindingStates.reset();\n\n\t};\n\n\tif ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {\n\n\t\t__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'observe', { detail: this } ) );\n\n\t}\n\n}\n\nWebGLRenderer.prototype.isWebGLRenderer = true;\n\nclass WebGL1Renderer extends WebGLRenderer {}\n\nWebGL1Renderer.prototype.isWebGL1Renderer = true;\n\nclass FogExp2 {\n\n\tconstructor( color, density = 0.00025 ) {\n\n\t\tthis.name = '';\n\n\t\tthis.color = new Color( color );\n\t\tthis.density = density;\n\n\t}\n\n\tclone() {\n\n\t\treturn new FogExp2( this.color, this.density );\n\n\t}\n\n\ttoJSON( /* meta */ ) {\n\n\t\treturn {\n\t\t\ttype: 'FogExp2',\n\t\t\tcolor: this.color.getHex(),\n\t\t\tdensity: this.density\n\t\t};\n\n\t}\n\n}\n\nFogExp2.prototype.isFogExp2 = true;\n\nclass Fog {\n\n\tconstructor( color, near = 1, far = 1000 ) {\n\n\t\tthis.name = '';\n\n\t\tthis.color = new Color( color );\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Fog( this.color, this.near, this.far );\n\n\t}\n\n\ttoJSON( /* meta */ ) {\n\n\t\treturn {\n\t\t\ttype: 'Fog',\n\t\t\tcolor: this.color.getHex(),\n\t\t\tnear: this.near,\n\t\t\tfar: this.far\n\t\t};\n\n\t}\n\n}\n\nFog.prototype.isFog = true;\n\nclass Scene extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'Scene';\n\n\t\tthis.background = null;\n\t\tthis.environment = null;\n\t\tthis.fog = null;\n\n\t\tthis.overrideMaterial = null;\n\n\t\tthis.autoUpdate = true; // checked by the renderer\n\n\t\tif ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {\n\n\t\t\t__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'observe', { detail: this } ) );\n\n\t\t}\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.background !== null ) this.background = source.background.clone();\n\t\tif ( source.environment !== null ) this.environment = source.environment.clone();\n\t\tif ( source.fog !== null ) this.fog = source.fog.clone();\n\n\t\tif ( source.overrideMaterial !== null ) this.overrideMaterial = source.overrideMaterial.clone();\n\n\t\tthis.autoUpdate = source.autoUpdate;\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tif ( this.fog !== null ) data.object.fog = this.fog.toJSON();\n\n\t\treturn data;\n\n\t}\n\n}\n\nScene.prototype.isScene = true;\n\nclass InterleavedBuffer {\n\n\tconstructor( array, stride ) {\n\n\t\tthis.array = array;\n\t\tthis.stride = stride;\n\t\tthis.count = array !== undefined ? array.length / stride : 0;\n\n\t\tthis.usage = StaticDrawUsage;\n\t\tthis.updateRange = { offset: 0, count: - 1 };\n\n\t\tthis.version = 0;\n\n\t\tthis.uuid = generateUUID();\n\n\t}\n\n\tonUploadCallback() {}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.array = new source.array.constructor( source.array );\n\t\tthis.count = source.count;\n\t\tthis.stride = source.stride;\n\t\tthis.usage = source.usage;\n\n\t\treturn this;\n\n\t}\n\n\tcopyAt( index1, attribute, index2 ) {\n\n\t\tindex1 *= this.stride;\n\t\tindex2 *= attribute.stride;\n\n\t\tfor ( let i = 0, l = this.stride; i < l; i ++ ) {\n\n\t\t\tthis.array[ index1 + i ] = attribute.array[ index2 + i ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tset( value, offset = 0 ) {\n\n\t\tthis.array.set( value, offset );\n\n\t\treturn this;\n\n\t}\n\n\tclone( data ) {\n\n\t\tif ( data.arrayBuffers === undefined ) {\n\n\t\t\tdata.arrayBuffers = {};\n\n\t\t}\n\n\t\tif ( this.array.buffer._uuid === undefined ) {\n\n\t\t\tthis.array.buffer._uuid = generateUUID();\n\n\t\t}\n\n\t\tif ( data.arrayBuffers[ this.array.buffer._uuid ] === undefined ) {\n\n\t\t\tdata.arrayBuffers[ this.array.buffer._uuid ] = this.array.slice( 0 ).buffer;\n\n\t\t}\n\n\t\tconst array = new this.array.constructor( data.arrayBuffers[ this.array.buffer._uuid ] );\n\n\t\tconst ib = new this.constructor( array, this.stride );\n\t\tib.setUsage( this.usage );\n\n\t\treturn ib;\n\n\t}\n\n\tonUpload( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( data ) {\n\n\t\tif ( data.arrayBuffers === undefined ) {\n\n\t\t\tdata.arrayBuffers = {};\n\n\t\t}\n\n\t\t// generate UUID for array buffer if necessary\n\n\t\tif ( this.array.buffer._uuid === undefined ) {\n\n\t\t\tthis.array.buffer._uuid = generateUUID();\n\n\t\t}\n\n\t\tif ( data.arrayBuffers[ this.array.buffer._uuid ] === undefined ) {\n\n\t\t\tdata.arrayBuffers[ this.array.buffer._uuid ] = Array.prototype.slice.call( new Uint32Array( this.array.buffer ) );\n\n\t\t}\n\n\t\t//\n\n\t\treturn {\n\t\t\tuuid: this.uuid,\n\t\t\tbuffer: this.array.buffer._uuid,\n\t\t\ttype: this.array.constructor.name,\n\t\t\tstride: this.stride\n\t\t};\n\n\t}\n\n}\n\nInterleavedBuffer.prototype.isInterleavedBuffer = true;\n\nconst _vector$6 = /*@__PURE__*/ new Vector3();\n\nclass InterleavedBufferAttribute {\n\n\tconstructor( interleavedBuffer, itemSize, offset, normalized = false ) {\n\n\t\tthis.name = '';\n\n\t\tthis.data = interleavedBuffer;\n\t\tthis.itemSize = itemSize;\n\t\tthis.offset = offset;\n\n\t\tthis.normalized = normalized === true;\n\n\t}\n\n\tget count() {\n\n\t\treturn this.data.count;\n\n\t}\n\n\tget array() {\n\n\t\treturn this.data.array;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tthis.data.needsUpdate = value;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tfor ( let i = 0, l = this.data.count; i < l; i ++ ) {\n\n\t\t\t_vector$6.x = this.getX( i );\n\t\t\t_vector$6.y = this.getY( i );\n\t\t\t_vector$6.z = this.getZ( i );\n\n\t\t\t_vector$6.applyMatrix4( m );\n\n\t\t\tthis.setXYZ( i, _vector$6.x, _vector$6.y, _vector$6.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$6.x = this.getX( i );\n\t\t\t_vector$6.y = this.getY( i );\n\t\t\t_vector$6.z = this.getZ( i );\n\n\t\t\t_vector$6.applyNormalMatrix( m );\n\n\t\t\tthis.setXYZ( i, _vector$6.x, _vector$6.y, _vector$6.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$6.x = this.getX( i );\n\t\t\t_vector$6.y = this.getY( i );\n\t\t\t_vector$6.z = this.getZ( i );\n\n\t\t\t_vector$6.transformDirection( m );\n\n\t\t\tthis.setXYZ( i, _vector$6.x, _vector$6.y, _vector$6.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tthis.data.array[ index * this.data.stride + this.offset ] = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tgetX( index ) {\n\n\t\treturn this.data.array[ index * this.data.stride + this.offset ];\n\n\t}\n\n\tgetY( index ) {\n\n\t\treturn this.data.array[ index * this.data.stride + this.offset + 1 ];\n\n\t}\n\n\tgetZ( index ) {\n\n\t\treturn this.data.array[ index * this.data.stride + this.offset + 2 ];\n\n\t}\n\n\tgetW( index ) {\n\n\t\treturn this.data.array[ index * this.data.stride + this.offset + 3 ];\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex = index * this.data.stride + this.offset;\n\n\t\tthis.data.array[ index + 0 ] = x;\n\t\tthis.data.array[ index + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex = index * this.data.stride + this.offset;\n\n\t\tthis.data.array[ index + 0 ] = x;\n\t\tthis.data.array[ index + 1 ] = y;\n\t\tthis.data.array[ index + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex = index * this.data.stride + this.offset;\n\n\t\tthis.data.array[ index + 0 ] = x;\n\t\tthis.data.array[ index + 1 ] = y;\n\t\tthis.data.array[ index + 2 ] = z;\n\t\tthis.data.array[ index + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tclone( data ) {\n\n\t\tif ( data === undefined ) {\n\n\t\t\tconsole.log( 'THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.' );\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0; i < this.count; i ++ ) {\n\n\t\t\t\tconst index = i * this.data.stride + this.offset;\n\n\t\t\t\tfor ( let j = 0; j < this.itemSize; j ++ ) {\n\n\t\t\t\t\tarray.push( this.data.array[ index + j ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new BufferAttribute( new this.array.constructor( array ), this.itemSize, this.normalized );\n\n\t\t} else {\n\n\t\t\tif ( data.interleavedBuffers === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers = {};\n\n\t\t\t}\n\n\t\t\tif ( data.interleavedBuffers[ this.data.uuid ] === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers[ this.data.uuid ] = this.data.clone( data );\n\n\t\t\t}\n\n\t\t\treturn new InterleavedBufferAttribute( data.interleavedBuffers[ this.data.uuid ], this.itemSize, this.offset, this.normalized );\n\n\t\t}\n\n\t}\n\n\ttoJSON( data ) {\n\n\t\tif ( data === undefined ) {\n\n\t\t\tconsole.log( 'THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.' );\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0; i < this.count; i ++ ) {\n\n\t\t\t\tconst index = i * this.data.stride + this.offset;\n\n\t\t\t\tfor ( let j = 0; j < this.itemSize; j ++ ) {\n\n\t\t\t\t\tarray.push( this.data.array[ index + j ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// deinterleave data and save it as an ordinary buffer attribute for now\n\n\t\t\treturn {\n\t\t\t\titemSize: this.itemSize,\n\t\t\t\ttype: this.array.constructor.name,\n\t\t\t\tarray: array,\n\t\t\t\tnormalized: this.normalized\n\t\t\t};\n\n\t\t} else {\n\n\t\t\t// save as true interlaved attribtue\n\n\t\t\tif ( data.interleavedBuffers === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers = {};\n\n\t\t\t}\n\n\t\t\tif ( data.interleavedBuffers[ this.data.uuid ] === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers[ this.data.uuid ] = this.data.toJSON( data );\n\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tisInterleavedBufferAttribute: true,\n\t\t\t\titemSize: this.itemSize,\n\t\t\t\tdata: this.data.uuid,\n\t\t\t\toffset: this.offset,\n\t\t\t\tnormalized: this.normalized\n\t\t\t};\n\n\t\t}\n\n\t}\n\n}\n\nInterleavedBufferAttribute.prototype.isInterleavedBufferAttribute = true;\n\n/**\n * parameters = {\n * color: <hex>,\n * map: new THREE.Texture( <Image> ),\n * alphaMap: new THREE.Texture( <Image> ),\n * rotation: <float>,\n * sizeAttenuation: <bool>\n * }\n */\n\nclass SpriteMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'SpriteMaterial';\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.rotation = 0;\n\n\t\tthis.sizeAttenuation = true;\n\n\t\tthis.transparent = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.rotation = source.rotation;\n\n\t\tthis.sizeAttenuation = source.sizeAttenuation;\n\n\t\treturn this;\n\n\t}\n\n}\n\nSpriteMaterial.prototype.isSpriteMaterial = true;\n\nlet _geometry;\n\nconst _intersectPoint = /*@__PURE__*/ new Vector3();\nconst _worldScale = /*@__PURE__*/ new Vector3();\nconst _mvPosition = /*@__PURE__*/ new Vector3();\n\nconst _alignedPosition = /*@__PURE__*/ new Vector2();\nconst _rotatedPosition = /*@__PURE__*/ new Vector2();\nconst _viewWorldMatrix = /*@__PURE__*/ new Matrix4();\n\nconst _vA = /*@__PURE__*/ new Vector3();\nconst _vB = /*@__PURE__*/ new Vector3();\nconst _vC = /*@__PURE__*/ new Vector3();\n\nconst _uvA = /*@__PURE__*/ new Vector2();\nconst _uvB = /*@__PURE__*/ new Vector2();\nconst _uvC = /*@__PURE__*/ new Vector2();\n\nclass Sprite extends Object3D {\n\n\tconstructor( material ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Sprite';\n\n\t\tif ( _geometry === undefined ) {\n\n\t\t\t_geometry = new BufferGeometry();\n\n\t\t\tconst float32Array = new Float32Array( [\n\t\t\t\t- 0.5, - 0.5, 0, 0, 0,\n\t\t\t\t0.5, - 0.5, 0, 1, 0,\n\t\t\t\t0.5, 0.5, 0, 1, 1,\n\t\t\t\t- 0.5, 0.5, 0, 0, 1\n\t\t\t] );\n\n\t\t\tconst interleavedBuffer = new InterleavedBuffer( float32Array, 5 );\n\n\t\t\t_geometry.setIndex( [ 0, 1, 2,\t0, 2, 3 ] );\n\t\t\t_geometry.setAttribute( 'position', new InterleavedBufferAttribute( interleavedBuffer, 3, 0, false ) );\n\t\t\t_geometry.setAttribute( 'uv', new InterleavedBufferAttribute( interleavedBuffer, 2, 3, false ) );\n\n\t\t}\n\n\t\tthis.geometry = _geometry;\n\t\tthis.material = ( material !== undefined ) ? material : new SpriteMaterial();\n\n\t\tthis.center = new Vector2( 0.5, 0.5 );\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tif ( raycaster.camera === null ) {\n\n\t\t\tconsole.error( 'THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.' );\n\n\t\t}\n\n\t\t_worldScale.setFromMatrixScale( this.matrixWorld );\n\n\t\t_viewWorldMatrix.copy( raycaster.camera.matrixWorld );\n\t\tthis.modelViewMatrix.multiplyMatrices( raycaster.camera.matrixWorldInverse, this.matrixWorld );\n\n\t\t_mvPosition.setFromMatrixPosition( this.modelViewMatrix );\n\n\t\tif ( raycaster.camera.isPerspectiveCamera && this.material.sizeAttenuation === false ) {\n\n\t\t\t_worldScale.multiplyScalar( - _mvPosition.z );\n\n\t\t}\n\n\t\tconst rotation = this.material.rotation;\n\t\tlet sin, cos;\n\n\t\tif ( rotation !== 0 ) {\n\n\t\t\tcos = Math.cos( rotation );\n\t\t\tsin = Math.sin( rotation );\n\n\t\t}\n\n\t\tconst center = this.center;\n\n\t\ttransformVertex( _vA.set( - 0.5, - 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\t\ttransformVertex( _vB.set( 0.5, - 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\t\ttransformVertex( _vC.set( 0.5, 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\n\t\t_uvA.set( 0, 0 );\n\t\t_uvB.set( 1, 0 );\n\t\t_uvC.set( 1, 1 );\n\n\t\t// check first triangle\n\t\tlet intersect = raycaster.ray.intersectTriangle( _vA, _vB, _vC, false, _intersectPoint );\n\n\t\tif ( intersect === null ) {\n\n\t\t\t// check second triangle\n\t\t\ttransformVertex( _vB.set( - 0.5, 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\t\t\t_uvB.set( 0, 1 );\n\n\t\t\tintersect = raycaster.ray.intersectTriangle( _vA, _vC, _vB, false, _intersectPoint );\n\t\t\tif ( intersect === null ) {\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst distance = raycaster.ray.origin.distanceTo( _intersectPoint );\n\n\t\tif ( distance < raycaster.near || distance > raycaster.far ) return;\n\n\t\tintersects.push( {\n\n\t\t\tdistance: distance,\n\t\t\tpoint: _intersectPoint.clone(),\n\t\t\tuv: Triangle.getUV( _intersectPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2() ),\n\t\t\tface: null,\n\t\t\tobject: this\n\n\t\t} );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tif ( source.center !== undefined ) this.center.copy( source.center );\n\n\t\tthis.material = source.material;\n\n\t\treturn this;\n\n\t}\n\n}\n\nSprite.prototype.isSprite = true;\n\nfunction transformVertex( vertexPosition, mvPosition, center, scale, sin, cos ) {\n\n\t// compute position in camera space\n\t_alignedPosition.subVectors( vertexPosition, center ).addScalar( 0.5 ).multiply( scale );\n\n\t// to check if rotation is not zero\n\tif ( sin !== undefined ) {\n\n\t\t_rotatedPosition.x = ( cos * _alignedPosition.x ) - ( sin * _alignedPosition.y );\n\t\t_rotatedPosition.y = ( sin * _alignedPosition.x ) + ( cos * _alignedPosition.y );\n\n\t} else {\n\n\t\t_rotatedPosition.copy( _alignedPosition );\n\n\t}\n\n\n\tvertexPosition.copy( mvPosition );\n\tvertexPosition.x += _rotatedPosition.x;\n\tvertexPosition.y += _rotatedPosition.y;\n\n\t// transform to world space\n\tvertexPosition.applyMatrix4( _viewWorldMatrix );\n\n}\n\nconst _v1$2 = /*@__PURE__*/ new Vector3();\nconst _v2$1 = /*@__PURE__*/ new Vector3();\n\nclass LOD extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis._currentLevel = 0;\n\n\t\tthis.type = 'LOD';\n\n\t\tObject.defineProperties( this, {\n\t\t\tlevels: {\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: []\n\t\t\t},\n\t\t\tisLOD: {\n\t\t\t\tvalue: true,\n\t\t\t}\n\t\t} );\n\n\t\tthis.autoUpdate = true;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source, false );\n\n\t\tconst levels = source.levels;\n\n\t\tfor ( let i = 0, l = levels.length; i < l; i ++ ) {\n\n\t\t\tconst level = levels[ i ];\n\n\t\t\tthis.addLevel( level.object.clone(), level.distance );\n\n\t\t}\n\n\t\tthis.autoUpdate = source.autoUpdate;\n\n\t\treturn this;\n\n\t}\n\n\taddLevel( object, distance = 0 ) {\n\n\t\tdistance = Math.abs( distance );\n\n\t\tconst levels = this.levels;\n\n\t\tlet l;\n\n\t\tfor ( l = 0; l < levels.length; l ++ ) {\n\n\t\t\tif ( distance < levels[ l ].distance ) {\n\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tlevels.splice( l, 0, { distance: distance, object: object } );\n\n\t\tthis.add( object );\n\n\t\treturn this;\n\n\t}\n\n\tgetCurrentLevel() {\n\n\t\treturn this._currentLevel;\n\n\t}\n\n\tgetObjectForDistance( distance ) {\n\n\t\tconst levels = this.levels;\n\n\t\tif ( levels.length > 0 ) {\n\n\t\t\tlet i, l;\n\n\t\t\tfor ( i = 1, l = levels.length; i < l; i ++ ) {\n\n\t\t\t\tif ( distance < levels[ i ].distance ) {\n\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn levels[ i - 1 ].object;\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst levels = this.levels;\n\n\t\tif ( levels.length > 0 ) {\n\n\t\t\t_v1$2.setFromMatrixPosition( this.matrixWorld );\n\n\t\t\tconst distance = raycaster.ray.origin.distanceTo( _v1$2 );\n\n\t\t\tthis.getObjectForDistance( distance ).raycast( raycaster, intersects );\n\n\t\t}\n\n\t}\n\n\tupdate( camera ) {\n\n\t\tconst levels = this.levels;\n\n\t\tif ( levels.length > 1 ) {\n\n\t\t\t_v1$2.setFromMatrixPosition( camera.matrixWorld );\n\t\t\t_v2$1.setFromMatrixPosition( this.matrixWorld );\n\n\t\t\tconst distance = _v1$2.distanceTo( _v2$1 ) / camera.zoom;\n\n\t\t\tlevels[ 0 ].object.visible = true;\n\n\t\t\tlet i, l;\n\n\t\t\tfor ( i = 1, l = levels.length; i < l; i ++ ) {\n\n\t\t\t\tif ( distance >= levels[ i ].distance ) {\n\n\t\t\t\t\tlevels[ i - 1 ].object.visible = false;\n\t\t\t\t\tlevels[ i ].object.visible = true;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis._currentLevel = i - 1;\n\n\t\t\tfor ( ; i < l; i ++ ) {\n\n\t\t\t\tlevels[ i ].object.visible = false;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tif ( this.autoUpdate === false ) data.object.autoUpdate = false;\n\n\t\tdata.object.levels = [];\n\n\t\tconst levels = this.levels;\n\n\t\tfor ( let i = 0, l = levels.length; i < l; i ++ ) {\n\n\t\t\tconst level = levels[ i ];\n\n\t\t\tdata.object.levels.push( {\n\t\t\t\tobject: level.object.uuid,\n\t\t\t\tdistance: level.distance\n\t\t\t} );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n}\n\nconst _basePosition = /*@__PURE__*/ new Vector3();\n\nconst _skinIndex = /*@__PURE__*/ new Vector4();\nconst _skinWeight = /*@__PURE__*/ new Vector4();\n\nconst _vector$5 = /*@__PURE__*/ new Vector3();\nconst _matrix = /*@__PURE__*/ new Matrix4();\n\nclass SkinnedMesh extends Mesh {\n\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'SkinnedMesh';\n\n\t\tthis.bindMode = 'attached';\n\t\tthis.bindMatrix = new Matrix4();\n\t\tthis.bindMatrixInverse = new Matrix4();\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.bindMode = source.bindMode;\n\t\tthis.bindMatrix.copy( source.bindMatrix );\n\t\tthis.bindMatrixInverse.copy( source.bindMatrixInverse );\n\n\t\tthis.skeleton = source.skeleton;\n\n\t\treturn this;\n\n\t}\n\n\tbind( skeleton, bindMatrix ) {\n\n\t\tthis.skeleton = skeleton;\n\n\t\tif ( bindMatrix === undefined ) {\n\n\t\t\tthis.updateMatrixWorld( true );\n\n\t\t\tthis.skeleton.calculateInverses();\n\n\t\t\tbindMatrix = this.matrixWorld;\n\n\t\t}\n\n\t\tthis.bindMatrix.copy( bindMatrix );\n\t\tthis.bindMatrixInverse.copy( bindMatrix ).invert();\n\n\t}\n\n\tpose() {\n\n\t\tthis.skeleton.pose();\n\n\t}\n\n\tnormalizeSkinWeights() {\n\n\t\tconst vector = new Vector4();\n\n\t\tconst skinWeight = this.geometry.attributes.skinWeight;\n\n\t\tfor ( let i = 0, l = skinWeight.count; i < l; i ++ ) {\n\n\t\t\tvector.x = skinWeight.getX( i );\n\t\t\tvector.y = skinWeight.getY( i );\n\t\t\tvector.z = skinWeight.getZ( i );\n\t\t\tvector.w = skinWeight.getW( i );\n\n\t\t\tconst scale = 1.0 / vector.manhattanLength();\n\n\t\t\tif ( scale !== Infinity ) {\n\n\t\t\t\tvector.multiplyScalar( scale );\n\n\t\t\t} else {\n\n\t\t\t\tvector.set( 1, 0, 0, 0 ); // do something reasonable\n\n\t\t\t}\n\n\t\t\tskinWeight.setXYZW( i, vector.x, vector.y, vector.z, vector.w );\n\n\t\t}\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tif ( this.bindMode === 'attached' ) {\n\n\t\t\tthis.bindMatrixInverse.copy( this.matrixWorld ).invert();\n\n\t\t} else if ( this.bindMode === 'detached' ) {\n\n\t\t\tthis.bindMatrixInverse.copy( this.bindMatrix ).invert();\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.SkinnedMesh: Unrecognized bindMode: ' + this.bindMode );\n\n\t\t}\n\n\t}\n\n\tboneTransform( index, target ) {\n\n\t\tconst skeleton = this.skeleton;\n\t\tconst geometry = this.geometry;\n\n\t\t_skinIndex.fromBufferAttribute( geometry.attributes.skinIndex, index );\n\t\t_skinWeight.fromBufferAttribute( geometry.attributes.skinWeight, index );\n\n\t\t_basePosition.copy( target ).applyMatrix4( this.bindMatrix );\n\n\t\ttarget.set( 0, 0, 0 );\n\n\t\tfor ( let i = 0; i < 4; i ++ ) {\n\n\t\t\tconst weight = _skinWeight.getComponent( i );\n\n\t\t\tif ( weight !== 0 ) {\n\n\t\t\t\tconst boneIndex = _skinIndex.getComponent( i );\n\n\t\t\t\t_matrix.multiplyMatrices( skeleton.bones[ boneIndex ].matrixWorld, skeleton.boneInverses[ boneIndex ] );\n\n\t\t\t\ttarget.addScaledVector( _vector$5.copy( _basePosition ).applyMatrix4( _matrix ), weight );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn target.applyMatrix4( this.bindMatrixInverse );\n\n\t}\n\n}\n\nSkinnedMesh.prototype.isSkinnedMesh = true;\n\nclass Bone extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'Bone';\n\n\t}\n\n}\n\nBone.prototype.isBone = true;\n\nclass DataTexture extends Texture {\n\n\tconstructor( data = null, width = 1, height = 1, format, type, mapping, wrapS, wrapT, magFilter = NearestFilter, minFilter = NearestFilter, anisotropy, encoding ) {\n\n\t\tsuper( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding );\n\n\t\tthis.image = { data: data, width: width, height: height };\n\n\t\tthis.magFilter = magFilter;\n\t\tthis.minFilter = minFilter;\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nDataTexture.prototype.isDataTexture = true;\n\nconst _offsetMatrix = /*@__PURE__*/ new Matrix4();\nconst _identityMatrix = /*@__PURE__*/ new Matrix4();\n\nclass Skeleton {\n\n\tconstructor( bones = [], boneInverses = [] ) {\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.bones = bones.slice( 0 );\n\t\tthis.boneInverses = boneInverses;\n\t\tthis.boneMatrices = null;\n\n\t\tthis.boneTexture = null;\n\t\tthis.boneTextureSize = 0;\n\n\t\tthis.frame = - 1;\n\n\t\tthis.init();\n\n\t}\n\n\tinit() {\n\n\t\tconst bones = this.bones;\n\t\tconst boneInverses = this.boneInverses;\n\n\t\tthis.boneMatrices = new Float32Array( bones.length * 16 );\n\n\t\t// calculate inverse bone matrices if necessary\n\n\t\tif ( boneInverses.length === 0 ) {\n\n\t\t\tthis.calculateInverses();\n\n\t\t} else {\n\n\t\t\t// handle special case\n\n\t\t\tif ( bones.length !== boneInverses.length ) {\n\n\t\t\t\tconsole.warn( 'THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.' );\n\n\t\t\t\tthis.boneInverses = [];\n\n\t\t\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\t\t\tthis.boneInverses.push( new Matrix4() );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcalculateInverses() {\n\n\t\tthis.boneInverses.length = 0;\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst inverse = new Matrix4();\n\n\t\t\tif ( this.bones[ i ] ) {\n\n\t\t\t\tinverse.copy( this.bones[ i ].matrixWorld ).invert();\n\n\t\t\t}\n\n\t\t\tthis.boneInverses.push( inverse );\n\n\t\t}\n\n\t}\n\n\tpose() {\n\n\t\t// recover the bind-time world matrices\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst bone = this.bones[ i ];\n\n\t\t\tif ( bone ) {\n\n\t\t\t\tbone.matrixWorld.copy( this.boneInverses[ i ] ).invert();\n\n\t\t\t}\n\n\t\t}\n\n\t\t// compute the local matrices, positions, rotations and scales\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst bone = this.bones[ i ];\n\n\t\t\tif ( bone ) {\n\n\t\t\t\tif ( bone.parent && bone.parent.isBone ) {\n\n\t\t\t\t\tbone.matrix.copy( bone.parent.matrixWorld ).invert();\n\t\t\t\t\tbone.matrix.multiply( bone.matrixWorld );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tbone.matrix.copy( bone.matrixWorld );\n\n\t\t\t\t}\n\n\t\t\t\tbone.matrix.decompose( bone.position, bone.quaternion, bone.scale );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tupdate() {\n\n\t\tconst bones = this.bones;\n\t\tconst boneInverses = this.boneInverses;\n\t\tconst boneMatrices = this.boneMatrices;\n\t\tconst boneTexture = this.boneTexture;\n\n\t\t// flatten bone matrices to array\n\n\t\tfor ( let i = 0, il = bones.length; i < il; i ++ ) {\n\n\t\t\t// compute the offset between the current and the original transform\n\n\t\t\tconst matrix = bones[ i ] ? bones[ i ].matrixWorld : _identityMatrix;\n\n\t\t\t_offsetMatrix.multiplyMatrices( matrix, boneInverses[ i ] );\n\t\t\t_offsetMatrix.toArray( boneMatrices, i * 16 );\n\n\t\t}\n\n\t\tif ( boneTexture !== null ) {\n\n\t\t\tboneTexture.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new Skeleton( this.bones, this.boneInverses );\n\n\t}\n\n\tcomputeBoneTexture() {\n\n\t\t// layout (1 matrix = 4 pixels)\n\t\t// RGBA RGBA RGBA RGBA (=> column1, column2, column3, column4)\n\t\t// with 8x8 pixel texture max 16 bones * 4 pixels = (8 * 8)\n\t\t// 16x16 pixel texture max 64 bones * 4 pixels = (16 * 16)\n\t\t// 32x32 pixel texture max 256 bones * 4 pixels = (32 * 32)\n\t\t// 64x64 pixel texture max 1024 bones * 4 pixels = (64 * 64)\n\n\t\tlet size = Math.sqrt( this.bones.length * 4 ); // 4 pixels needed for 1 matrix\n\t\tsize = ceilPowerOfTwo( size );\n\t\tsize = Math.max( size, 4 );\n\n\t\tconst boneMatrices = new Float32Array( size * size * 4 ); // 4 floats per RGBA pixel\n\t\tboneMatrices.set( this.boneMatrices ); // copy current values\n\n\t\tconst boneTexture = new DataTexture( boneMatrices, size, size, RGBAFormat, FloatType );\n\t\tboneTexture.needsUpdate = true;\n\n\t\tthis.boneMatrices = boneMatrices;\n\t\tthis.boneTexture = boneTexture;\n\t\tthis.boneTextureSize = size;\n\n\t\treturn this;\n\n\t}\n\n\tgetBoneByName( name ) {\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst bone = this.bones[ i ];\n\n\t\t\tif ( bone.name === name ) {\n\n\t\t\t\treturn bone;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn undefined;\n\n\t}\n\n\tdispose( ) {\n\n\t\tif ( this.boneTexture !== null ) {\n\n\t\t\tthis.boneTexture.dispose();\n\n\t\t\tthis.boneTexture = null;\n\n\t\t}\n\n\t}\n\n\tfromJSON( json, bones ) {\n\n\t\tthis.uuid = json.uuid;\n\n\t\tfor ( let i = 0, l = json.bones.length; i < l; i ++ ) {\n\n\t\t\tconst uuid = json.bones[ i ];\n\t\t\tlet bone = bones[ uuid ];\n\n\t\t\tif ( bone === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.Skeleton: No bone found with UUID:', uuid );\n\t\t\t\tbone = new Bone();\n\n\t\t\t}\n\n\t\t\tthis.bones.push( bone );\n\t\t\tthis.boneInverses.push( new Matrix4().fromArray( json.boneInverses[ i ] ) );\n\n\t\t}\n\n\t\tthis.init();\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'Skeleton',\n\t\t\t\tgenerator: 'Skeleton.toJSON'\n\t\t\t},\n\t\t\tbones: [],\n\t\t\tboneInverses: []\n\t\t};\n\n\t\tdata.uuid = this.uuid;\n\n\t\tconst bones = this.bones;\n\t\tconst boneInverses = this.boneInverses;\n\n\t\tfor ( let i = 0, l = bones.length; i < l; i ++ ) {\n\n\t\t\tconst bone = bones[ i ];\n\t\t\tdata.bones.push( bone.uuid );\n\n\t\t\tconst boneInverse = boneInverses[ i ];\n\t\t\tdata.boneInverses.push( boneInverse.toArray() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass InstancedBufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized, meshPerAttribute = 1 ) {\n\n\t\tif ( typeof normalized === 'number' ) {\n\n\t\t\tmeshPerAttribute = normalized;\n\n\t\t\tnormalized = false;\n\n\t\t\tconsole.error( 'THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.' );\n\n\t\t}\n\n\t\tsuper( array, itemSize, normalized );\n\n\t\tthis.meshPerAttribute = meshPerAttribute;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.meshPerAttribute = source.meshPerAttribute;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.meshPerAttribute = this.meshPerAttribute;\n\n\t\tdata.isInstancedBufferAttribute = true;\n\n\t\treturn data;\n\n\t}\n\n}\n\nInstancedBufferAttribute.prototype.isInstancedBufferAttribute = true;\n\nconst _instanceLocalMatrix = /*@__PURE__*/ new Matrix4();\nconst _instanceWorldMatrix = /*@__PURE__*/ new Matrix4();\n\nconst _instanceIntersects = [];\n\nconst _mesh = /*@__PURE__*/ new Mesh();\n\nclass InstancedMesh extends Mesh {\n\n\tconstructor( geometry, material, count ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.instanceMatrix = new InstancedBufferAttribute( new Float32Array( count * 16 ), 16 );\n\t\tthis.instanceColor = null;\n\n\t\tthis.count = count;\n\n\t\tthis.frustumCulled = false;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.instanceMatrix.copy( source.instanceMatrix );\n\n\t\tif ( source.instanceColor !== null ) this.instanceColor = source.instanceColor.clone();\n\n\t\tthis.count = source.count;\n\n\t\treturn this;\n\n\t}\n\n\tgetColorAt( index, color ) {\n\n\t\tcolor.fromArray( this.instanceColor.array, index * 3 );\n\n\t}\n\n\tgetMatrixAt( index, matrix ) {\n\n\t\tmatrix.fromArray( this.instanceMatrix.array, index * 16 );\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst raycastTimes = this.count;\n\n\t\t_mesh.geometry = this.geometry;\n\t\t_mesh.material = this.material;\n\n\t\tif ( _mesh.material === undefined ) return;\n\n\t\tfor ( let instanceId = 0; instanceId < raycastTimes; instanceId ++ ) {\n\n\t\t\t// calculate the world matrix for each instance\n\n\t\t\tthis.getMatrixAt( instanceId, _instanceLocalMatrix );\n\n\t\t\t_instanceWorldMatrix.multiplyMatrices( matrixWorld, _instanceLocalMatrix );\n\n\t\t\t// the mesh represents this single instance\n\n\t\t\t_mesh.matrixWorld = _instanceWorldMatrix;\n\n\t\t\t_mesh.raycast( raycaster, _instanceIntersects );\n\n\t\t\t// process the result of raycast\n\n\t\t\tfor ( let i = 0, l = _instanceIntersects.length; i < l; i ++ ) {\n\n\t\t\t\tconst intersect = _instanceIntersects[ i ];\n\t\t\t\tintersect.instanceId = instanceId;\n\t\t\t\tintersect.object = this;\n\t\t\t\tintersects.push( intersect );\n\n\t\t\t}\n\n\t\t\t_instanceIntersects.length = 0;\n\n\t\t}\n\n\t}\n\n\tsetColorAt( index, color ) {\n\n\t\tif ( this.instanceColor === null ) {\n\n\t\t\tthis.instanceColor = new InstancedBufferAttribute( new Float32Array( this.instanceMatrix.count * 3 ), 3 );\n\n\t\t}\n\n\t\tcolor.toArray( this.instanceColor.array, index * 3 );\n\n\t}\n\n\tsetMatrixAt( index, matrix ) {\n\n\t\tmatrix.toArray( this.instanceMatrix.array, index * 16 );\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nInstancedMesh.prototype.isInstancedMesh = true;\n\n/**\n * parameters = {\n * color: <hex>,\n * opacity: <float>,\n *\n * linewidth: <float>,\n * linecap: \"round\",\n * linejoin: \"round\"\n * }\n */\n\nclass LineBasicMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'LineBasicMaterial';\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.linewidth = 1;\n\t\tthis.linecap = 'round';\n\t\tthis.linejoin = 'round';\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.linewidth = source.linewidth;\n\t\tthis.linecap = source.linecap;\n\t\tthis.linejoin = source.linejoin;\n\n\t\treturn this;\n\n\t}\n\n}\n\nLineBasicMaterial.prototype.isLineBasicMaterial = true;\n\nconst _start$1 = /*@__PURE__*/ new Vector3();\nconst _end$1 = /*@__PURE__*/ new Vector3();\nconst _inverseMatrix$1 = /*@__PURE__*/ new Matrix4();\nconst _ray$1 = /*@__PURE__*/ new Ray();\nconst _sphere$1 = /*@__PURE__*/ new Sphere();\n\nclass Line extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new LineBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Line';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.material = source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\tcomputeLineDistances() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tif ( geometry.isBufferGeometry ) {\n\n\t\t\t// we assume non-indexed geometry\n\n\t\t\tif ( geometry.index === null ) {\n\n\t\t\t\tconst positionAttribute = geometry.attributes.position;\n\t\t\t\tconst lineDistances = [ 0 ];\n\n\t\t\t\tfor ( let i = 1, l = positionAttribute.count; i < l; i ++ ) {\n\n\t\t\t\t\t_start$1.fromBufferAttribute( positionAttribute, i - 1 );\n\t\t\t\t\t_end$1.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\t\tlineDistances[ i ] = lineDistances[ i - 1 ];\n\t\t\t\t\tlineDistances[ i ] += _start$1.distanceTo( _end$1 );\n\n\t\t\t\t}\n\n\t\t\t\tgeometry.setAttribute( 'lineDistance', new Float32BufferAttribute( lineDistances, 1 ) );\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.' );\n\n\t\t\t}\n\n\t\t} else if ( geometry.isGeometry ) {\n\n\t\t\tconsole.error( 'THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst threshold = raycaster.params.Line.threshold;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\t// Checking boundingSphere distance to ray\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere$1.copy( geometry.boundingSphere );\n\t\t_sphere$1.applyMatrix4( matrixWorld );\n\t\t_sphere$1.radius += threshold;\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere$1 ) === false ) return;\n\n\t\t//\n\n\t\t_inverseMatrix$1.copy( matrixWorld ).invert();\n\t\t_ray$1.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$1 );\n\n\t\tconst localThreshold = threshold / ( ( this.scale.x + this.scale.y + this.scale.z ) / 3 );\n\t\tconst localThresholdSq = localThreshold * localThreshold;\n\n\t\tconst vStart = new Vector3();\n\t\tconst vEnd = new Vector3();\n\t\tconst interSegment = new Vector3();\n\t\tconst interRay = new Vector3();\n\t\tconst step = this.isLineSegments ? 2 : 1;\n\n\t\tif ( geometry.isBufferGeometry ) {\n\n\t\t\tconst index = geometry.index;\n\t\t\tconst attributes = geometry.attributes;\n\t\t\tconst positionAttribute = attributes.position;\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, l = end - 1; i < l; i += step ) {\n\n\t\t\t\t\tconst a = index.getX( i );\n\t\t\t\t\tconst b = index.getX( i + 1 );\n\n\t\t\t\t\tvStart.fromBufferAttribute( positionAttribute, a );\n\t\t\t\t\tvEnd.fromBufferAttribute( positionAttribute, b );\n\n\t\t\t\t\tconst distSq = _ray$1.distanceSqToSegment( vStart, vEnd, interRay, interSegment );\n\n\t\t\t\t\tif ( distSq > localThresholdSq ) continue;\n\n\t\t\t\t\tinterRay.applyMatrix4( this.matrixWorld ); //Move back to world space for distance calculation\n\n\t\t\t\t\tconst distance = raycaster.ray.origin.distanceTo( interRay );\n\n\t\t\t\t\tif ( distance < raycaster.near || distance > raycaster.far ) continue;\n\n\t\t\t\t\tintersects.push( {\n\n\t\t\t\t\t\tdistance: distance,\n\t\t\t\t\t\t// What do we want? intersection point on the ray or on the segment??\n\t\t\t\t\t\t// point: raycaster.ray.at( distance ),\n\t\t\t\t\t\tpoint: interSegment.clone().applyMatrix4( this.matrixWorld ),\n\t\t\t\t\t\tindex: i,\n\t\t\t\t\t\tface: null,\n\t\t\t\t\t\tfaceIndex: null,\n\t\t\t\t\t\tobject: this\n\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( positionAttribute.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, l = end - 1; i < l; i += step ) {\n\n\t\t\t\t\tvStart.fromBufferAttribute( positionAttribute, i );\n\t\t\t\t\tvEnd.fromBufferAttribute( positionAttribute, i + 1 );\n\n\t\t\t\t\tconst distSq = _ray$1.distanceSqToSegment( vStart, vEnd, interRay, interSegment );\n\n\t\t\t\t\tif ( distSq > localThresholdSq ) continue;\n\n\t\t\t\t\tinterRay.applyMatrix4( this.matrixWorld ); //Move back to world space for distance calculation\n\n\t\t\t\t\tconst distance = raycaster.ray.origin.distanceTo( interRay );\n\n\t\t\t\t\tif ( distance < raycaster.near || distance > raycaster.far ) continue;\n\n\t\t\t\t\tintersects.push( {\n\n\t\t\t\t\t\tdistance: distance,\n\t\t\t\t\t\t// What do we want? intersection point on the ray or on the segment??\n\t\t\t\t\t\t// point: raycaster.ray.at( distance ),\n\t\t\t\t\t\tpoint: interSegment.clone().applyMatrix4( this.matrixWorld ),\n\t\t\t\t\t\tindex: i,\n\t\t\t\t\t\tface: null,\n\t\t\t\t\t\tfaceIndex: null,\n\t\t\t\t\t\tobject: this\n\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else if ( geometry.isGeometry ) {\n\n\t\t\tconsole.error( 'THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' );\n\n\t\t}\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tif ( geometry.isBufferGeometry ) {\n\n\t\t\tconst morphAttributes = geometry.morphAttributes;\n\t\t\tconst keys = Object.keys( morphAttributes );\n\n\t\t\tif ( keys.length > 0 ) {\n\n\t\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst morphTargets = geometry.morphTargets;\n\n\t\t\tif ( morphTargets !== undefined && morphTargets.length > 0 ) {\n\n\t\t\t\tconsole.error( 'THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.' );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nLine.prototype.isLine = true;\n\nconst _start = /*@__PURE__*/ new Vector3();\nconst _end = /*@__PURE__*/ new Vector3();\n\nclass LineSegments extends Line {\n\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'LineSegments';\n\n\t}\n\n\tcomputeLineDistances() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tif ( geometry.isBufferGeometry ) {\n\n\t\t\t// we assume non-indexed geometry\n\n\t\t\tif ( geometry.index === null ) {\n\n\t\t\t\tconst positionAttribute = geometry.attributes.position;\n\t\t\t\tconst lineDistances = [];\n\n\t\t\t\tfor ( let i = 0, l = positionAttribute.count; i < l; i += 2 ) {\n\n\t\t\t\t\t_start.fromBufferAttribute( positionAttribute, i );\n\t\t\t\t\t_end.fromBufferAttribute( positionAttribute, i + 1 );\n\n\t\t\t\t\tlineDistances[ i ] = ( i === 0 ) ? 0 : lineDistances[ i - 1 ];\n\t\t\t\t\tlineDistances[ i + 1 ] = lineDistances[ i ] + _start.distanceTo( _end );\n\n\t\t\t\t}\n\n\t\t\t\tgeometry.setAttribute( 'lineDistance', new Float32BufferAttribute( lineDistances, 1 ) );\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.' );\n\n\t\t\t}\n\n\t\t} else if ( geometry.isGeometry ) {\n\n\t\t\tconsole.error( 'THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nLineSegments.prototype.isLineSegments = true;\n\nclass LineLoop extends Line {\n\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'LineLoop';\n\n\t}\n\n}\n\nLineLoop.prototype.isLineLoop = true;\n\n/**\n * parameters = {\n * color: <hex>,\n * opacity: <float>,\n * map: new THREE.Texture( <Image> ),\n * alphaMap: new THREE.Texture( <Image> ),\n *\n * size: <float>,\n * sizeAttenuation: <bool>\n *\n * }\n */\n\nclass PointsMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'PointsMaterial';\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.size = 1;\n\t\tthis.sizeAttenuation = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.size = source.size;\n\t\tthis.sizeAttenuation = source.sizeAttenuation;\n\n\t\treturn this;\n\n\t}\n\n}\n\nPointsMaterial.prototype.isPointsMaterial = true;\n\nconst _inverseMatrix = /*@__PURE__*/ new Matrix4();\nconst _ray = /*@__PURE__*/ new Ray();\nconst _sphere = /*@__PURE__*/ new Sphere();\nconst _position$2 = /*@__PURE__*/ new Vector3();\n\nclass Points extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new PointsMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Points';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.material = source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst threshold = raycaster.params.Points.threshold;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\t// Checking boundingSphere distance to ray\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere.copy( geometry.boundingSphere );\n\t\t_sphere.applyMatrix4( matrixWorld );\n\t\t_sphere.radius += threshold;\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere ) === false ) return;\n\n\t\t//\n\n\t\t_inverseMatrix.copy( matrixWorld ).invert();\n\t\t_ray.copy( raycaster.ray ).applyMatrix4( _inverseMatrix );\n\n\t\tconst localThreshold = threshold / ( ( this.scale.x + this.scale.y + this.scale.z ) / 3 );\n\t\tconst localThresholdSq = localThreshold * localThreshold;\n\n\t\tif ( geometry.isBufferGeometry ) {\n\n\t\t\tconst index = geometry.index;\n\t\t\tconst attributes = geometry.attributes;\n\t\t\tconst positionAttribute = attributes.position;\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, il = end; i < il; i ++ ) {\n\n\t\t\t\t\tconst a = index.getX( i );\n\n\t\t\t\t\t_position$2.fromBufferAttribute( positionAttribute, a );\n\n\t\t\t\t\ttestPoint( _position$2, a, localThresholdSq, matrixWorld, raycaster, intersects, this );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( positionAttribute.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, l = end; i < l; i ++ ) {\n\n\t\t\t\t\t_position$2.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\t\ttestPoint( _position$2, i, localThresholdSq, matrixWorld, raycaster, intersects, this );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' );\n\n\t\t}\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tif ( geometry.isBufferGeometry ) {\n\n\t\t\tconst morphAttributes = geometry.morphAttributes;\n\t\t\tconst keys = Object.keys( morphAttributes );\n\n\t\t\tif ( keys.length > 0 ) {\n\n\t\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst morphTargets = geometry.morphTargets;\n\n\t\t\tif ( morphTargets !== undefined && morphTargets.length > 0 ) {\n\n\t\t\t\tconsole.error( 'THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.' );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nPoints.prototype.isPoints = true;\n\nfunction testPoint( point, index, localThresholdSq, matrixWorld, raycaster, intersects, object ) {\n\n\tconst rayPointDistanceSq = _ray.distanceSqToPoint( point );\n\n\tif ( rayPointDistanceSq < localThresholdSq ) {\n\n\t\tconst intersectPoint = new Vector3();\n\n\t\t_ray.closestPointToPoint( point, intersectPoint );\n\t\tintersectPoint.applyMatrix4( matrixWorld );\n\n\t\tconst distance = raycaster.ray.origin.distanceTo( intersectPoint );\n\n\t\tif ( distance < raycaster.near || distance > raycaster.far ) return;\n\n\t\tintersects.push( {\n\n\t\t\tdistance: distance,\n\t\t\tdistanceToRay: Math.sqrt( rayPointDistanceSq ),\n\t\t\tpoint: intersectPoint,\n\t\t\tindex: index,\n\t\t\tface: null,\n\t\t\tobject: object\n\n\t\t} );\n\n\t}\n\n}\n\nclass VideoTexture extends Texture {\n\n\tconstructor( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {\n\n\t\tsuper( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\tthis.minFilter = minFilter !== undefined ? minFilter : LinearFilter;\n\t\tthis.magFilter = magFilter !== undefined ? magFilter : LinearFilter;\n\n\t\tthis.generateMipmaps = false;\n\n\t\tconst scope = this;\n\n\t\tfunction updateVideo() {\n\n\t\t\tscope.needsUpdate = true;\n\t\t\tvideo.requestVideoFrameCallback( updateVideo );\n\n\t\t}\n\n\t\tif ( 'requestVideoFrameCallback' in video ) {\n\n\t\t\tvideo.requestVideoFrameCallback( updateVideo );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.image ).copy( this );\n\n\t}\n\n\tupdate() {\n\n\t\tconst video = this.image;\n\t\tconst hasVideoFrameCallback = 'requestVideoFrameCallback' in video;\n\n\t\tif ( hasVideoFrameCallback === false && video.readyState >= video.HAVE_CURRENT_DATA ) {\n\n\t\t\tthis.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n}\n\nVideoTexture.prototype.isVideoTexture = true;\n\nclass FramebufferTexture extends Texture {\n\n\tconstructor( width, height, format ) {\n\n\t\tsuper( { width, height } );\n\n\t\tthis.format = format;\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.generateMipmaps = false;\n\n\t\tthis.needsUpdate = true;\n\n\t}\n\n}\n\nFramebufferTexture.prototype.isFramebufferTexture = true;\n\nclass CompressedTexture extends Texture {\n\n\tconstructor( mipmaps, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, encoding ) {\n\n\t\tsuper( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding );\n\n\t\tthis.image = { width: width, height: height };\n\t\tthis.mipmaps = mipmaps;\n\n\t\t// no flipping for cube textures\n\t\t// (also flipping doesn't work for compressed textures )\n\n\t\tthis.flipY = false;\n\n\t\t// can't generate mipmaps for compressed textures\n\t\t// mips must be embedded in DDS files\n\n\t\tthis.generateMipmaps = false;\n\n\t}\n\n}\n\nCompressedTexture.prototype.isCompressedTexture = true;\n\nclass CanvasTexture extends Texture {\n\n\tconstructor( canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {\n\n\t\tsuper( canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\tthis.needsUpdate = true;\n\n\t}\n\n}\n\nCanvasTexture.prototype.isCanvasTexture = true;\n\nclass CircleGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, segments = 8, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CircleGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tsegments: segments,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\tsegments = Math.max( 3, segments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tconst vertex = new Vector3();\n\t\tconst uv = new Vector2();\n\n\t\t// center point\n\n\t\tvertices.push( 0, 0, 0 );\n\t\tnormals.push( 0, 0, 1 );\n\t\tuvs.push( 0.5, 0.5 );\n\n\t\tfor ( let s = 0, i = 3; s <= segments; s ++, i += 3 ) {\n\n\t\t\tconst segment = thetaStart + s / segments * thetaLength;\n\n\t\t\t// vertex\n\n\t\t\tvertex.x = radius * Math.cos( segment );\n\t\t\tvertex.y = radius * Math.sin( segment );\n\n\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t// normal\n\n\t\t\tnormals.push( 0, 0, 1 );\n\n\t\t\t// uvs\n\n\t\t\tuv.x = ( vertices[ i ] / radius + 1 ) / 2;\n\t\t\tuv.y = ( vertices[ i + 1 ] / radius + 1 ) / 2;\n\n\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let i = 1; i <= segments; i ++ ) {\n\n\t\t\tindices.push( i, i + 1, 0 );\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new CircleGeometry( data.radius, data.segments, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass CylinderGeometry extends BufferGeometry {\n\n\tconstructor( radiusTop = 1, radiusBottom = 1, height = 1, radialSegments = 8, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\t\tthis.type = 'CylinderGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradiusTop: radiusTop,\n\t\t\tradiusBottom: radiusBottom,\n\t\t\theight: height,\n\t\t\tradialSegments: radialSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\topenEnded: openEnded,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\tconst scope = this;\n\n\t\tradialSegments = Math.floor( radialSegments );\n\t\theightSegments = Math.floor( heightSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet index = 0;\n\t\tconst indexArray = [];\n\t\tconst halfHeight = height / 2;\n\t\tlet groupStart = 0;\n\n\t\t// generate geometry\n\n\t\tgenerateTorso();\n\n\t\tif ( openEnded === false ) {\n\n\t\t\tif ( radiusTop > 0 ) generateCap( true );\n\t\t\tif ( radiusBottom > 0 ) generateCap( false );\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\tfunction generateTorso() {\n\n\t\t\tconst normal = new Vector3();\n\t\t\tconst vertex = new Vector3();\n\n\t\t\tlet groupCount = 0;\n\n\t\t\t// this will be used to calculate the normal\n\t\t\tconst slope = ( radiusBottom - radiusTop ) / height;\n\n\t\t\t// generate vertices, normals and uvs\n\n\t\t\tfor ( let y = 0; y <= heightSegments; y ++ ) {\n\n\t\t\t\tconst indexRow = [];\n\n\t\t\t\tconst v = y / heightSegments;\n\n\t\t\t\t// calculate the radius of the current row\n\n\t\t\t\tconst radius = v * ( radiusBottom - radiusTop ) + radiusTop;\n\n\t\t\t\tfor ( let x = 0; x <= radialSegments; x ++ ) {\n\n\t\t\t\t\tconst u = x / radialSegments;\n\n\t\t\t\t\tconst theta = u * thetaLength + thetaStart;\n\n\t\t\t\t\tconst sinTheta = Math.sin( theta );\n\t\t\t\t\tconst cosTheta = Math.cos( theta );\n\n\t\t\t\t\t// vertex\n\n\t\t\t\t\tvertex.x = radius * sinTheta;\n\t\t\t\t\tvertex.y = - v * height + halfHeight;\n\t\t\t\t\tvertex.z = radius * cosTheta;\n\t\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t\t// normal\n\n\t\t\t\t\tnormal.set( sinTheta, slope, cosTheta ).normalize();\n\t\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t\t// uv\n\n\t\t\t\t\tuvs.push( u, 1 - v );\n\n\t\t\t\t\t// save index of vertex in respective row\n\n\t\t\t\t\tindexRow.push( index ++ );\n\n\t\t\t\t}\n\n\t\t\t\t// now save vertices of the row in our index array\n\n\t\t\t\tindexArray.push( indexRow );\n\n\t\t\t}\n\n\t\t\t// generate indices\n\n\t\t\tfor ( let x = 0; x < radialSegments; x ++ ) {\n\n\t\t\t\tfor ( let y = 0; y < heightSegments; y ++ ) {\n\n\t\t\t\t\t// we use the index array to access the correct indices\n\n\t\t\t\t\tconst a = indexArray[ y ][ x ];\n\t\t\t\t\tconst b = indexArray[ y + 1 ][ x ];\n\t\t\t\t\tconst c = indexArray[ y + 1 ][ x + 1 ];\n\t\t\t\t\tconst d = indexArray[ y ][ x + 1 ];\n\n\t\t\t\t\t// faces\n\n\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\tindices.push( b, c, d );\n\n\t\t\t\t\t// update group counter\n\n\t\t\t\t\tgroupCount += 6;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// add a group to the geometry. this will ensure multi material support\n\n\t\t\tscope.addGroup( groupStart, groupCount, 0 );\n\n\t\t\t// calculate new start value for groups\n\n\t\t\tgroupStart += groupCount;\n\n\t\t}\n\n\t\tfunction generateCap( top ) {\n\n\t\t\t// save the index of the first center vertex\n\t\t\tconst centerIndexStart = index;\n\n\t\t\tconst uv = new Vector2();\n\t\t\tconst vertex = new Vector3();\n\n\t\t\tlet groupCount = 0;\n\n\t\t\tconst radius = ( top === true ) ? radiusTop : radiusBottom;\n\t\t\tconst sign = ( top === true ) ? 1 : - 1;\n\n\t\t\t// first we generate the center vertex data of the cap.\n\t\t\t// because the geometry needs one set of uvs per face,\n\t\t\t// we must generate a center vertex per face/segment\n\n\t\t\tfor ( let x = 1; x <= radialSegments; x ++ ) {\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertices.push( 0, halfHeight * sign, 0 );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormals.push( 0, sign, 0 );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( 0.5, 0.5 );\n\n\t\t\t\t// increase index\n\n\t\t\t\tindex ++;\n\n\t\t\t}\n\n\t\t\t// save the index of the last center vertex\n\t\t\tconst centerIndexEnd = index;\n\n\t\t\t// now we generate the surrounding vertices, normals and uvs\n\n\t\t\tfor ( let x = 0; x <= radialSegments; x ++ ) {\n\n\t\t\t\tconst u = x / radialSegments;\n\t\t\t\tconst theta = u * thetaLength + thetaStart;\n\n\t\t\t\tconst cosTheta = Math.cos( theta );\n\t\t\t\tconst sinTheta = Math.sin( theta );\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = radius * sinTheta;\n\t\t\t\tvertex.y = halfHeight * sign;\n\t\t\t\tvertex.z = radius * cosTheta;\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormals.push( 0, sign, 0 );\n\n\t\t\t\t// uv\n\n\t\t\t\tuv.x = ( cosTheta * 0.5 ) + 0.5;\n\t\t\t\tuv.y = ( sinTheta * 0.5 * sign ) + 0.5;\n\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t\t// increase index\n\n\t\t\t\tindex ++;\n\n\t\t\t}\n\n\t\t\t// generate indices\n\n\t\t\tfor ( let x = 0; x < radialSegments; x ++ ) {\n\n\t\t\t\tconst c = centerIndexStart + x;\n\t\t\t\tconst i = centerIndexEnd + x;\n\n\t\t\t\tif ( top === true ) {\n\n\t\t\t\t\t// face top\n\n\t\t\t\t\tindices.push( i, i + 1, c );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// face bottom\n\n\t\t\t\t\tindices.push( i + 1, i, c );\n\n\t\t\t\t}\n\n\t\t\t\tgroupCount += 3;\n\n\t\t\t}\n\n\t\t\t// add a group to the geometry. this will ensure multi material support\n\n\t\t\tscope.addGroup( groupStart, groupCount, top === true ? 1 : 2 );\n\n\t\t\t// calculate new start value for groups\n\n\t\t\tgroupStart += groupCount;\n\n\t\t}\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new CylinderGeometry( data.radiusTop, data.radiusBottom, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass ConeGeometry extends CylinderGeometry {\n\n\tconstructor( radius = 1, height = 1, radialSegments = 8, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper( 0, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength );\n\n\t\tthis.type = 'ConeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\theight: height,\n\t\t\tradialSegments: radialSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\topenEnded: openEnded,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new ConeGeometry( data.radius, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass PolyhedronGeometry extends BufferGeometry {\n\n\tconstructor( vertices = [], indices = [], radius = 1, detail = 0 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'PolyhedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tvertices: vertices,\n\t\t\tindices: indices,\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t\t// default buffer data\n\n\t\tconst vertexBuffer = [];\n\t\tconst uvBuffer = [];\n\n\t\t// the subdivision creates the vertex buffer data\n\n\t\tsubdivide( detail );\n\n\t\t// all vertices should lie on a conceptual sphere with a given radius\n\n\t\tapplyRadius( radius );\n\n\t\t// finally, create the uv data\n\n\t\tgenerateUVs();\n\n\t\t// build non-indexed geometry\n\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertexBuffer, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( vertexBuffer.slice(), 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvBuffer, 2 ) );\n\n\t\tif ( detail === 0 ) {\n\n\t\t\tthis.computeVertexNormals(); // flat normals\n\n\t\t} else {\n\n\t\t\tthis.normalizeNormals(); // smooth normals\n\n\t\t}\n\n\t\t// helper functions\n\n\t\tfunction subdivide( detail ) {\n\n\t\t\tconst a = new Vector3();\n\t\t\tconst b = new Vector3();\n\t\t\tconst c = new Vector3();\n\n\t\t\t// iterate over all faces and apply a subdivison with the given detail value\n\n\t\t\tfor ( let i = 0; i < indices.length; i += 3 ) {\n\n\t\t\t\t// get the vertices of the face\n\n\t\t\t\tgetVertexByIndex( indices[ i + 0 ], a );\n\t\t\t\tgetVertexByIndex( indices[ i + 1 ], b );\n\t\t\t\tgetVertexByIndex( indices[ i + 2 ], c );\n\n\t\t\t\t// perform subdivision\n\n\t\t\t\tsubdivideFace( a, b, c, detail );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction subdivideFace( a, b, c, detail ) {\n\n\t\t\tconst cols = detail + 1;\n\n\t\t\t// we use this multidimensional array as a data structure for creating the subdivision\n\n\t\t\tconst v = [];\n\n\t\t\t// construct all of the vertices for this subdivision\n\n\t\t\tfor ( let i = 0; i <= cols; i ++ ) {\n\n\t\t\t\tv[ i ] = [];\n\n\t\t\t\tconst aj = a.clone().lerp( c, i / cols );\n\t\t\t\tconst bj = b.clone().lerp( c, i / cols );\n\n\t\t\t\tconst rows = cols - i;\n\n\t\t\t\tfor ( let j = 0; j <= rows; j ++ ) {\n\n\t\t\t\t\tif ( j === 0 && i === cols ) {\n\n\t\t\t\t\t\tv[ i ][ j ] = aj;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tv[ i ][ j ] = aj.clone().lerp( bj, j / rows );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// construct all of the faces\n\n\t\t\tfor ( let i = 0; i < cols; i ++ ) {\n\n\t\t\t\tfor ( let j = 0; j < 2 * ( cols - i ) - 1; j ++ ) {\n\n\t\t\t\t\tconst k = Math.floor( j / 2 );\n\n\t\t\t\t\tif ( j % 2 === 0 ) {\n\n\t\t\t\t\t\tpushVertex( v[ i ][ k + 1 ] );\n\t\t\t\t\t\tpushVertex( v[ i + 1 ][ k ] );\n\t\t\t\t\t\tpushVertex( v[ i ][ k ] );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tpushVertex( v[ i ][ k + 1 ] );\n\t\t\t\t\t\tpushVertex( v[ i + 1 ][ k + 1 ] );\n\t\t\t\t\t\tpushVertex( v[ i + 1 ][ k ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction applyRadius( radius ) {\n\n\t\t\tconst vertex = new Vector3();\n\n\t\t\t// iterate over the entire buffer and apply the radius to each vertex\n\n\t\t\tfor ( let i = 0; i < vertexBuffer.length; i += 3 ) {\n\n\t\t\t\tvertex.x = vertexBuffer[ i + 0 ];\n\t\t\t\tvertex.y = vertexBuffer[ i + 1 ];\n\t\t\t\tvertex.z = vertexBuffer[ i + 2 ];\n\n\t\t\t\tvertex.normalize().multiplyScalar( radius );\n\n\t\t\t\tvertexBuffer[ i + 0 ] = vertex.x;\n\t\t\t\tvertexBuffer[ i + 1 ] = vertex.y;\n\t\t\t\tvertexBuffer[ i + 2 ] = vertex.z;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction generateUVs() {\n\n\t\t\tconst vertex = new Vector3();\n\n\t\t\tfor ( let i = 0; i < vertexBuffer.length; i += 3 ) {\n\n\t\t\t\tvertex.x = vertexBuffer[ i + 0 ];\n\t\t\t\tvertex.y = vertexBuffer[ i + 1 ];\n\t\t\t\tvertex.z = vertexBuffer[ i + 2 ];\n\n\t\t\t\tconst u = azimuth( vertex ) / 2 / Math.PI + 0.5;\n\t\t\t\tconst v = inclination( vertex ) / Math.PI + 0.5;\n\t\t\t\tuvBuffer.push( u, 1 - v );\n\n\t\t\t}\n\n\t\t\tcorrectUVs();\n\n\t\t\tcorrectSeam();\n\n\t\t}\n\n\t\tfunction correctSeam() {\n\n\t\t\t// handle case when face straddles the seam, see #3269\n\n\t\t\tfor ( let i = 0; i < uvBuffer.length; i += 6 ) {\n\n\t\t\t\t// uv data of a single face\n\n\t\t\t\tconst x0 = uvBuffer[ i + 0 ];\n\t\t\t\tconst x1 = uvBuffer[ i + 2 ];\n\t\t\t\tconst x2 = uvBuffer[ i + 4 ];\n\n\t\t\t\tconst max = Math.max( x0, x1, x2 );\n\t\t\t\tconst min = Math.min( x0, x1, x2 );\n\n\t\t\t\t// 0.9 is somewhat arbitrary\n\n\t\t\t\tif ( max > 0.9 && min < 0.1 ) {\n\n\t\t\t\t\tif ( x0 < 0.2 ) uvBuffer[ i + 0 ] += 1;\n\t\t\t\t\tif ( x1 < 0.2 ) uvBuffer[ i + 2 ] += 1;\n\t\t\t\t\tif ( x2 < 0.2 ) uvBuffer[ i + 4 ] += 1;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction pushVertex( vertex ) {\n\n\t\t\tvertexBuffer.push( vertex.x, vertex.y, vertex.z );\n\n\t\t}\n\n\t\tfunction getVertexByIndex( index, vertex ) {\n\n\t\t\tconst stride = index * 3;\n\n\t\t\tvertex.x = vertices[ stride + 0 ];\n\t\t\tvertex.y = vertices[ stride + 1 ];\n\t\t\tvertex.z = vertices[ stride + 2 ];\n\n\t\t}\n\n\t\tfunction correctUVs() {\n\n\t\t\tconst a = new Vector3();\n\t\t\tconst b = new Vector3();\n\t\t\tconst c = new Vector3();\n\n\t\t\tconst centroid = new Vector3();\n\n\t\t\tconst uvA = new Vector2();\n\t\t\tconst uvB = new Vector2();\n\t\t\tconst uvC = new Vector2();\n\n\t\t\tfor ( let i = 0, j = 0; i < vertexBuffer.length; i += 9, j += 6 ) {\n\n\t\t\t\ta.set( vertexBuffer[ i + 0 ], vertexBuffer[ i + 1 ], vertexBuffer[ i + 2 ] );\n\t\t\t\tb.set( vertexBuffer[ i + 3 ], vertexBuffer[ i + 4 ], vertexBuffer[ i + 5 ] );\n\t\t\t\tc.set( vertexBuffer[ i + 6 ], vertexBuffer[ i + 7 ], vertexBuffer[ i + 8 ] );\n\n\t\t\t\tuvA.set( uvBuffer[ j + 0 ], uvBuffer[ j + 1 ] );\n\t\t\t\tuvB.set( uvBuffer[ j + 2 ], uvBuffer[ j + 3 ] );\n\t\t\t\tuvC.set( uvBuffer[ j + 4 ], uvBuffer[ j + 5 ] );\n\n\t\t\t\tcentroid.copy( a ).add( b ).add( c ).divideScalar( 3 );\n\n\t\t\t\tconst azi = azimuth( centroid );\n\n\t\t\t\tcorrectUV( uvA, j + 0, a, azi );\n\t\t\t\tcorrectUV( uvB, j + 2, b, azi );\n\t\t\t\tcorrectUV( uvC, j + 4, c, azi );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction correctUV( uv, stride, vector, azimuth ) {\n\n\t\t\tif ( ( azimuth < 0 ) && ( uv.x === 1 ) ) {\n\n\t\t\t\tuvBuffer[ stride ] = uv.x - 1;\n\n\t\t\t}\n\n\t\t\tif ( ( vector.x === 0 ) && ( vector.z === 0 ) ) {\n\n\t\t\t\tuvBuffer[ stride ] = azimuth / 2 / Math.PI + 0.5;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Angle around the Y axis, counter-clockwise when looking from above.\n\n\t\tfunction azimuth( vector ) {\n\n\t\t\treturn Math.atan2( vector.z, - vector.x );\n\n\t\t}\n\n\n\t\t// Angle above the XZ plane.\n\n\t\tfunction inclination( vector ) {\n\n\t\t\treturn Math.atan2( - vector.y, Math.sqrt( ( vector.x * vector.x ) + ( vector.z * vector.z ) ) );\n\n\t\t}\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new PolyhedronGeometry( data.vertices, data.indices, data.radius, data.details );\n\n\t}\n\n}\n\nclass DodecahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst t = ( 1 + Math.sqrt( 5 ) ) / 2;\n\t\tconst r = 1 / t;\n\n\t\tconst vertices = [\n\n\t\t\t// (±1, ±1, ±1)\n\t\t\t- 1, - 1, - 1,\t- 1, - 1, 1,\n\t\t\t- 1, 1, - 1, - 1, 1, 1,\n\t\t\t1, - 1, - 1, 1, - 1, 1,\n\t\t\t1, 1, - 1, 1, 1, 1,\n\n\t\t\t// (0, ±1/φ, ±φ)\n\t\t\t0, - r, - t, 0, - r, t,\n\t\t\t0, r, - t, 0, r, t,\n\n\t\t\t// (±1/φ, ±φ, 0)\n\t\t\t- r, - t, 0, - r, t, 0,\n\t\t\tr, - t, 0, r, t, 0,\n\n\t\t\t// (±φ, 0, ±1/φ)\n\t\t\t- t, 0, - r, t, 0, - r,\n\t\t\t- t, 0, r, t, 0, r\n\t\t];\n\n\t\tconst indices = [\n\t\t\t3, 11, 7, \t3, 7, 15, \t3, 15, 13,\n\t\t\t7, 19, 17, \t7, 17, 6, \t7, 6, 15,\n\t\t\t17, 4, 8, \t17, 8, 10, \t17, 10, 6,\n\t\t\t8, 0, 16, \t8, 16, 2, \t8, 2, 10,\n\t\t\t0, 12, 1, \t0, 1, 18, \t0, 18, 16,\n\t\t\t6, 10, 2, \t6, 2, 13, \t6, 13, 15,\n\t\t\t2, 16, 18, \t2, 18, 3, \t2, 3, 13,\n\t\t\t18, 1, 9, \t18, 9, 11, \t18, 11, 3,\n\t\t\t4, 14, 12, \t4, 12, 0, \t4, 0, 8,\n\t\t\t11, 9, 5, \t11, 5, 19, \t11, 19, 7,\n\t\t\t19, 5, 14, \t19, 14, 4, \t19, 4, 17,\n\t\t\t1, 12, 14, \t1, 14, 5, \t1, 5, 9\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'DodecahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new DodecahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nconst _v0 = new Vector3();\nconst _v1$1 = new Vector3();\nconst _normal = new Vector3();\nconst _triangle = new Triangle();\n\nclass EdgesGeometry extends BufferGeometry {\n\n\tconstructor( geometry = null, thresholdAngle = 1 ) {\n\n\t\tsuper();\n\t\tthis.type = 'EdgesGeometry';\n\n\t\tthis.parameters = {\n\t\t\tgeometry: geometry,\n\t\t\tthresholdAngle: thresholdAngle\n\t\t};\n\n\t\tif ( geometry !== null ) {\n\n\t\t\tconst precisionPoints = 4;\n\t\t\tconst precision = Math.pow( 10, precisionPoints );\n\t\t\tconst thresholdDot = Math.cos( DEG2RAD * thresholdAngle );\n\n\t\t\tconst indexAttr = geometry.getIndex();\n\t\t\tconst positionAttr = geometry.getAttribute( 'position' );\n\t\t\tconst indexCount = indexAttr ? indexAttr.count : positionAttr.count;\n\n\t\t\tconst indexArr = [ 0, 0, 0 ];\n\t\t\tconst vertKeys = [ 'a', 'b', 'c' ];\n\t\t\tconst hashes = new Array( 3 );\n\n\t\t\tconst edgeData = {};\n\t\t\tconst vertices = [];\n\t\t\tfor ( let i = 0; i < indexCount; i += 3 ) {\n\n\t\t\t\tif ( indexAttr ) {\n\n\t\t\t\t\tindexArr[ 0 ] = indexAttr.getX( i );\n\t\t\t\t\tindexArr[ 1 ] = indexAttr.getX( i + 1 );\n\t\t\t\t\tindexArr[ 2 ] = indexAttr.getX( i + 2 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tindexArr[ 0 ] = i;\n\t\t\t\t\tindexArr[ 1 ] = i + 1;\n\t\t\t\t\tindexArr[ 2 ] = i + 2;\n\n\t\t\t\t}\n\n\t\t\t\tconst { a, b, c } = _triangle;\n\t\t\t\ta.fromBufferAttribute( positionAttr, indexArr[ 0 ] );\n\t\t\t\tb.fromBufferAttribute( positionAttr, indexArr[ 1 ] );\n\t\t\t\tc.fromBufferAttribute( positionAttr, indexArr[ 2 ] );\n\t\t\t\t_triangle.getNormal( _normal );\n\n\t\t\t\t// create hashes for the edge from the vertices\n\t\t\t\thashes[ 0 ] = `${ Math.round( a.x * precision ) },${ Math.round( a.y * precision ) },${ Math.round( a.z * precision ) }`;\n\t\t\t\thashes[ 1 ] = `${ Math.round( b.x * precision ) },${ Math.round( b.y * precision ) },${ Math.round( b.z * precision ) }`;\n\t\t\t\thashes[ 2 ] = `${ Math.round( c.x * precision ) },${ Math.round( c.y * precision ) },${ Math.round( c.z * precision ) }`;\n\n\t\t\t\t// skip degenerate triangles\n\t\t\t\tif ( hashes[ 0 ] === hashes[ 1 ] || hashes[ 1 ] === hashes[ 2 ] || hashes[ 2 ] === hashes[ 0 ] ) {\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\t}\n\n\t\t\t\t// iterate over every edge\n\t\t\t\tfor ( let j = 0; j < 3; j ++ ) {\n\n\t\t\t\t\t// get the first and next vertex making up the edge\n\t\t\t\t\tconst jNext = ( j + 1 ) % 3;\n\t\t\t\t\tconst vecHash0 = hashes[ j ];\n\t\t\t\t\tconst vecHash1 = hashes[ jNext ];\n\t\t\t\t\tconst v0 = _triangle[ vertKeys[ j ] ];\n\t\t\t\t\tconst v1 = _triangle[ vertKeys[ jNext ] ];\n\n\t\t\t\t\tconst hash = `${ vecHash0 }_${ vecHash1 }`;\n\t\t\t\t\tconst reverseHash = `${ vecHash1 }_${ vecHash0 }`;\n\n\t\t\t\t\tif ( reverseHash in edgeData && edgeData[ reverseHash ] ) {\n\n\t\t\t\t\t\t// if we found a sibling edge add it into the vertex array if\n\t\t\t\t\t\t// it meets the angle threshold and delete the edge from the map.\n\t\t\t\t\t\tif ( _normal.dot( edgeData[ reverseHash ].normal ) <= thresholdDot ) {\n\n\t\t\t\t\t\t\tvertices.push( v0.x, v0.y, v0.z );\n\t\t\t\t\t\t\tvertices.push( v1.x, v1.y, v1.z );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tedgeData[ reverseHash ] = null;\n\n\t\t\t\t\t} else if ( ! ( hash in edgeData ) ) {\n\n\t\t\t\t\t\t// if we've already got an edge here then skip adding a new one\n\t\t\t\t\t\tedgeData[ hash ] = {\n\n\t\t\t\t\t\t\tindex0: indexArr[ j ],\n\t\t\t\t\t\t\tindex1: indexArr[ jNext ],\n\t\t\t\t\t\t\tnormal: _normal.clone(),\n\n\t\t\t\t\t\t};\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// iterate over all remaining, unmatched edges and add them to the vertex array\n\t\t\tfor ( const key in edgeData ) {\n\n\t\t\t\tif ( edgeData[ key ] ) {\n\n\t\t\t\t\tconst { index0, index1 } = edgeData[ key ];\n\t\t\t\t\t_v0.fromBufferAttribute( positionAttr, index0 );\n\t\t\t\t\t_v1$1.fromBufferAttribute( positionAttr, index1 );\n\n\t\t\t\t\tvertices.push( _v0.x, _v0.y, _v0.z );\n\t\t\t\t\tvertices.push( _v1$1.x, _v1$1.y, _v1$1.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * Extensible curve object.\n *\n * Some common of curve methods:\n * .getPoint( t, optionalTarget ), .getTangent( t, optionalTarget )\n * .getPointAt( u, optionalTarget ), .getTangentAt( u, optionalTarget )\n * .getPoints(), .getSpacedPoints()\n * .getLength()\n * .updateArcLengths()\n *\n * This following curves inherit from THREE.Curve:\n *\n * -- 2D curves --\n * THREE.ArcCurve\n * THREE.CubicBezierCurve\n * THREE.EllipseCurve\n * THREE.LineCurve\n * THREE.QuadraticBezierCurve\n * THREE.SplineCurve\n *\n * -- 3D curves --\n * THREE.CatmullRomCurve3\n * THREE.CubicBezierCurve3\n * THREE.LineCurve3\n * THREE.QuadraticBezierCurve3\n *\n * A series of curves can be represented as a THREE.CurvePath.\n *\n **/\n\nclass Curve {\n\n\tconstructor() {\n\n\t\tthis.type = 'Curve';\n\n\t\tthis.arcLengthDivisions = 200;\n\n\t}\n\n\t// Virtual base class method to overwrite and implement in subclasses\n\t//\t- t [0 .. 1]\n\n\tgetPoint( /* t, optionalTarget */ ) {\n\n\t\tconsole.warn( 'THREE.Curve: .getPoint() not implemented.' );\n\t\treturn null;\n\n\t}\n\n\t// Get point at relative position in curve according to arc length\n\t// - u [0 .. 1]\n\n\tgetPointAt( u, optionalTarget ) {\n\n\t\tconst t = this.getUtoTmapping( u );\n\t\treturn this.getPoint( t, optionalTarget );\n\n\t}\n\n\t// Get sequence of points using getPoint( t )\n\n\tgetPoints( divisions = 5 ) {\n\n\t\tconst points = [];\n\n\t\tfor ( let d = 0; d <= divisions; d ++ ) {\n\n\t\t\tpoints.push( this.getPoint( d / divisions ) );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\t// Get sequence of points using getPointAt( u )\n\n\tgetSpacedPoints( divisions = 5 ) {\n\n\t\tconst points = [];\n\n\t\tfor ( let d = 0; d <= divisions; d ++ ) {\n\n\t\t\tpoints.push( this.getPointAt( d / divisions ) );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\t// Get total curve arc length\n\n\tgetLength() {\n\n\t\tconst lengths = this.getLengths();\n\t\treturn lengths[ lengths.length - 1 ];\n\n\t}\n\n\t// Get list of cumulative segment lengths\n\n\tgetLengths( divisions = this.arcLengthDivisions ) {\n\n\t\tif ( this.cacheArcLengths &&\n\t\t\t( this.cacheArcLengths.length === divisions + 1 ) &&\n\t\t\t! this.needsUpdate ) {\n\n\t\t\treturn this.cacheArcLengths;\n\n\t\t}\n\n\t\tthis.needsUpdate = false;\n\n\t\tconst cache = [];\n\t\tlet current, last = this.getPoint( 0 );\n\t\tlet sum = 0;\n\n\t\tcache.push( 0 );\n\n\t\tfor ( let p = 1; p <= divisions; p ++ ) {\n\n\t\t\tcurrent = this.getPoint( p / divisions );\n\t\t\tsum += current.distanceTo( last );\n\t\t\tcache.push( sum );\n\t\t\tlast = current;\n\n\t\t}\n\n\t\tthis.cacheArcLengths = cache;\n\n\t\treturn cache; // { sums: cache, sum: sum }; Sum is in the last element.\n\n\t}\n\n\tupdateArcLengths() {\n\n\t\tthis.needsUpdate = true;\n\t\tthis.getLengths();\n\n\t}\n\n\t// Given u ( 0 .. 1 ), get a t to find p. This gives you points which are equidistant\n\n\tgetUtoTmapping( u, distance ) {\n\n\t\tconst arcLengths = this.getLengths();\n\n\t\tlet i = 0;\n\t\tconst il = arcLengths.length;\n\n\t\tlet targetArcLength; // The targeted u distance value to get\n\n\t\tif ( distance ) {\n\n\t\t\ttargetArcLength = distance;\n\n\t\t} else {\n\n\t\t\ttargetArcLength = u * arcLengths[ il - 1 ];\n\n\t\t}\n\n\t\t// binary search for the index with largest value smaller than target u distance\n\n\t\tlet low = 0, high = il - 1, comparison;\n\n\t\twhile ( low <= high ) {\n\n\t\t\ti = Math.floor( low + ( high - low ) / 2 ); // less likely to overflow, though probably not issue here, JS doesn't really have integers, all numbers are floats\n\n\t\t\tcomparison = arcLengths[ i ] - targetArcLength;\n\n\t\t\tif ( comparison < 0 ) {\n\n\t\t\t\tlow = i + 1;\n\n\t\t\t} else if ( comparison > 0 ) {\n\n\t\t\t\thigh = i - 1;\n\n\t\t\t} else {\n\n\t\t\t\thigh = i;\n\t\t\t\tbreak;\n\n\t\t\t\t// DONE\n\n\t\t\t}\n\n\t\t}\n\n\t\ti = high;\n\n\t\tif ( arcLengths[ i ] === targetArcLength ) {\n\n\t\t\treturn i / ( il - 1 );\n\n\t\t}\n\n\t\t// we could get finer grain at lengths, or use simple interpolation between two points\n\n\t\tconst lengthBefore = arcLengths[ i ];\n\t\tconst lengthAfter = arcLengths[ i + 1 ];\n\n\t\tconst segmentLength = lengthAfter - lengthBefore;\n\n\t\t// determine where we are between the 'before' and 'after' points\n\n\t\tconst segmentFraction = ( targetArcLength - lengthBefore ) / segmentLength;\n\n\t\t// add that fractional amount to t\n\n\t\tconst t = ( i + segmentFraction ) / ( il - 1 );\n\n\t\treturn t;\n\n\t}\n\n\t// Returns a unit vector tangent at t\n\t// In case any sub curve does not implement its tangent derivation,\n\t// 2 points a small delta apart will be used to find its gradient\n\t// which seems to give a reasonable approximation\n\n\tgetTangent( t, optionalTarget ) {\n\n\t\tconst delta = 0.0001;\n\t\tlet t1 = t - delta;\n\t\tlet t2 = t + delta;\n\n\t\t// Capping in case of danger\n\n\t\tif ( t1 < 0 ) t1 = 0;\n\t\tif ( t2 > 1 ) t2 = 1;\n\n\t\tconst pt1 = this.getPoint( t1 );\n\t\tconst pt2 = this.getPoint( t2 );\n\n\t\tconst tangent = optionalTarget || ( ( pt1.isVector2 ) ? new Vector2() : new Vector3() );\n\n\t\ttangent.copy( pt2 ).sub( pt1 ).normalize();\n\n\t\treturn tangent;\n\n\t}\n\n\tgetTangentAt( u, optionalTarget ) {\n\n\t\tconst t = this.getUtoTmapping( u );\n\t\treturn this.getTangent( t, optionalTarget );\n\n\t}\n\n\tcomputeFrenetFrames( segments, closed ) {\n\n\t\t// see http://www.cs.indiana.edu/pub/techreports/TR425.pdf\n\n\t\tconst normal = new Vector3();\n\n\t\tconst tangents = [];\n\t\tconst normals = [];\n\t\tconst binormals = [];\n\n\t\tconst vec = new Vector3();\n\t\tconst mat = new Matrix4();\n\n\t\t// compute the tangent vectors for each segment on the curve\n\n\t\tfor ( let i = 0; i <= segments; i ++ ) {\n\n\t\t\tconst u = i / segments;\n\n\t\t\ttangents[ i ] = this.getTangentAt( u, new Vector3() );\n\n\t\t}\n\n\t\t// select an initial normal vector perpendicular to the first tangent vector,\n\t\t// and in the direction of the minimum tangent xyz component\n\n\t\tnormals[ 0 ] = new Vector3();\n\t\tbinormals[ 0 ] = new Vector3();\n\t\tlet min = Number.MAX_VALUE;\n\t\tconst tx = Math.abs( tangents[ 0 ].x );\n\t\tconst ty = Math.abs( tangents[ 0 ].y );\n\t\tconst tz = Math.abs( tangents[ 0 ].z );\n\n\t\tif ( tx <= min ) {\n\n\t\t\tmin = tx;\n\t\t\tnormal.set( 1, 0, 0 );\n\n\t\t}\n\n\t\tif ( ty <= min ) {\n\n\t\t\tmin = ty;\n\t\t\tnormal.set( 0, 1, 0 );\n\n\t\t}\n\n\t\tif ( tz <= min ) {\n\n\t\t\tnormal.set( 0, 0, 1 );\n\n\t\t}\n\n\t\tvec.crossVectors( tangents[ 0 ], normal ).normalize();\n\n\t\tnormals[ 0 ].crossVectors( tangents[ 0 ], vec );\n\t\tbinormals[ 0 ].crossVectors( tangents[ 0 ], normals[ 0 ] );\n\n\n\t\t// compute the slowly-varying normal and binormal vectors for each segment on the curve\n\n\t\tfor ( let i = 1; i <= segments; i ++ ) {\n\n\t\t\tnormals[ i ] = normals[ i - 1 ].clone();\n\n\t\t\tbinormals[ i ] = binormals[ i - 1 ].clone();\n\n\t\t\tvec.crossVectors( tangents[ i - 1 ], tangents[ i ] );\n\n\t\t\tif ( vec.length() > Number.EPSILON ) {\n\n\t\t\t\tvec.normalize();\n\n\t\t\t\tconst theta = Math.acos( clamp( tangents[ i - 1 ].dot( tangents[ i ] ), - 1, 1 ) ); // clamp for floating pt errors\n\n\t\t\t\tnormals[ i ].applyMatrix4( mat.makeRotationAxis( vec, theta ) );\n\n\t\t\t}\n\n\t\t\tbinormals[ i ].crossVectors( tangents[ i ], normals[ i ] );\n\n\t\t}\n\n\t\t// if the curve is closed, postprocess the vectors so the first and last normal vectors are the same\n\n\t\tif ( closed === true ) {\n\n\t\t\tlet theta = Math.acos( clamp( normals[ 0 ].dot( normals[ segments ] ), - 1, 1 ) );\n\t\t\ttheta /= segments;\n\n\t\t\tif ( tangents[ 0 ].dot( vec.crossVectors( normals[ 0 ], normals[ segments ] ) ) > 0 ) {\n\n\t\t\t\ttheta = - theta;\n\n\t\t\t}\n\n\t\t\tfor ( let i = 1; i <= segments; i ++ ) {\n\n\t\t\t\t// twist a little...\n\t\t\t\tnormals[ i ].applyMatrix4( mat.makeRotationAxis( tangents[ i ], theta * i ) );\n\t\t\t\tbinormals[ i ].crossVectors( tangents[ i ], normals[ i ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\ttangents: tangents,\n\t\t\tnormals: normals,\n\t\t\tbinormals: binormals\n\t\t};\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.arcLengthDivisions = source.arcLengthDivisions;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'Curve',\n\t\t\t\tgenerator: 'Curve.toJSON'\n\t\t\t}\n\t\t};\n\n\t\tdata.arcLengthDivisions = this.arcLengthDivisions;\n\t\tdata.type = this.type;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tthis.arcLengthDivisions = json.arcLengthDivisions;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass EllipseCurve extends Curve {\n\n\tconstructor( aX = 0, aY = 0, xRadius = 1, yRadius = 1, aStartAngle = 0, aEndAngle = Math.PI * 2, aClockwise = false, aRotation = 0 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'EllipseCurve';\n\n\t\tthis.aX = aX;\n\t\tthis.aY = aY;\n\n\t\tthis.xRadius = xRadius;\n\t\tthis.yRadius = yRadius;\n\n\t\tthis.aStartAngle = aStartAngle;\n\t\tthis.aEndAngle = aEndAngle;\n\n\t\tthis.aClockwise = aClockwise;\n\n\t\tthis.aRotation = aRotation;\n\n\t}\n\n\tgetPoint( t, optionalTarget ) {\n\n\t\tconst point = optionalTarget || new Vector2();\n\n\t\tconst twoPi = Math.PI * 2;\n\t\tlet deltaAngle = this.aEndAngle - this.aStartAngle;\n\t\tconst samePoints = Math.abs( deltaAngle ) < Number.EPSILON;\n\n\t\t// ensures that deltaAngle is 0 .. 2 PI\n\t\twhile ( deltaAngle < 0 ) deltaAngle += twoPi;\n\t\twhile ( deltaAngle > twoPi ) deltaAngle -= twoPi;\n\n\t\tif ( deltaAngle < Number.EPSILON ) {\n\n\t\t\tif ( samePoints ) {\n\n\t\t\t\tdeltaAngle = 0;\n\n\t\t\t} else {\n\n\t\t\t\tdeltaAngle = twoPi;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.aClockwise === true && ! samePoints ) {\n\n\t\t\tif ( deltaAngle === twoPi ) {\n\n\t\t\t\tdeltaAngle = - twoPi;\n\n\t\t\t} else {\n\n\t\t\t\tdeltaAngle = deltaAngle - twoPi;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst angle = this.aStartAngle + t * deltaAngle;\n\t\tlet x = this.aX + this.xRadius * Math.cos( angle );\n\t\tlet y = this.aY + this.yRadius * Math.sin( angle );\n\n\t\tif ( this.aRotation !== 0 ) {\n\n\t\t\tconst cos = Math.cos( this.aRotation );\n\t\t\tconst sin = Math.sin( this.aRotation );\n\n\t\t\tconst tx = x - this.aX;\n\t\t\tconst ty = y - this.aY;\n\n\t\t\t// Rotate the point about the center of the ellipse.\n\t\t\tx = tx * cos - ty * sin + this.aX;\n\t\t\ty = tx * sin + ty * cos + this.aY;\n\n\t\t}\n\n\t\treturn point.set( x, y );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.aX = source.aX;\n\t\tthis.aY = source.aY;\n\n\t\tthis.xRadius = source.xRadius;\n\t\tthis.yRadius = source.yRadius;\n\n\t\tthis.aStartAngle = source.aStartAngle;\n\t\tthis.aEndAngle = source.aEndAngle;\n\n\t\tthis.aClockwise = source.aClockwise;\n\n\t\tthis.aRotation = source.aRotation;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.aX = this.aX;\n\t\tdata.aY = this.aY;\n\n\t\tdata.xRadius = this.xRadius;\n\t\tdata.yRadius = this.yRadius;\n\n\t\tdata.aStartAngle = this.aStartAngle;\n\t\tdata.aEndAngle = this.aEndAngle;\n\n\t\tdata.aClockwise = this.aClockwise;\n\n\t\tdata.aRotation = this.aRotation;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.aX = json.aX;\n\t\tthis.aY = json.aY;\n\n\t\tthis.xRadius = json.xRadius;\n\t\tthis.yRadius = json.yRadius;\n\n\t\tthis.aStartAngle = json.aStartAngle;\n\t\tthis.aEndAngle = json.aEndAngle;\n\n\t\tthis.aClockwise = json.aClockwise;\n\n\t\tthis.aRotation = json.aRotation;\n\n\t\treturn this;\n\n\t}\n\n}\n\nEllipseCurve.prototype.isEllipseCurve = true;\n\nclass ArcCurve extends EllipseCurve {\n\n\tconstructor( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tsuper( aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise );\n\n\t\tthis.type = 'ArcCurve';\n\n\t}\n\n}\n\nArcCurve.prototype.isArcCurve = true;\n\n/**\n * Centripetal CatmullRom Curve - which is useful for avoiding\n * cusps and self-intersections in non-uniform catmull rom curves.\n * http://www.cemyuksel.com/research/catmullrom_param/catmullrom.pdf\n *\n * curve.type accepts centripetal(default), chordal and catmullrom\n * curve.tension is used for catmullrom which defaults to 0.5\n */\n\n\n/*\nBased on an optimized c++ solution in\n - http://stackoverflow.com/questions/9489736/catmull-rom-curve-with-no-cusps-and-no-self-intersections/\n - http://ideone.com/NoEbVM\n\nThis CubicPoly class could be used for reusing some variables and calculations,\nbut for three.js curve use, it could be possible inlined and flatten into a single function call\nwhich can be placed in CurveUtils.\n*/\n\nfunction CubicPoly() {\n\n\tlet c0 = 0, c1 = 0, c2 = 0, c3 = 0;\n\n\t/*\n\t * Compute coefficients for a cubic polynomial\n\t * p(s) = c0 + c1*s + c2*s^2 + c3*s^3\n\t * such that\n\t * p(0) = x0, p(1) = x1\n\t * and\n\t * p'(0) = t0, p'(1) = t1.\n\t */\n\tfunction init( x0, x1, t0, t1 ) {\n\n\t\tc0 = x0;\n\t\tc1 = t0;\n\t\tc2 = - 3 * x0 + 3 * x1 - 2 * t0 - t1;\n\t\tc3 = 2 * x0 - 2 * x1 + t0 + t1;\n\n\t}\n\n\treturn {\n\n\t\tinitCatmullRom: function ( x0, x1, x2, x3, tension ) {\n\n\t\t\tinit( x1, x2, tension * ( x2 - x0 ), tension * ( x3 - x1 ) );\n\n\t\t},\n\n\t\tinitNonuniformCatmullRom: function ( x0, x1, x2, x3, dt0, dt1, dt2 ) {\n\n\t\t\t// compute tangents when parameterized in [t1,t2]\n\t\t\tlet t1 = ( x1 - x0 ) / dt0 - ( x2 - x0 ) / ( dt0 + dt1 ) + ( x2 - x1 ) / dt1;\n\t\t\tlet t2 = ( x2 - x1 ) / dt1 - ( x3 - x1 ) / ( dt1 + dt2 ) + ( x3 - x2 ) / dt2;\n\n\t\t\t// rescale tangents for parametrization in [0,1]\n\t\t\tt1 *= dt1;\n\t\t\tt2 *= dt1;\n\n\t\t\tinit( x1, x2, t1, t2 );\n\n\t\t},\n\n\t\tcalc: function ( t ) {\n\n\t\t\tconst t2 = t * t;\n\t\t\tconst t3 = t2 * t;\n\t\t\treturn c0 + c1 * t + c2 * t2 + c3 * t3;\n\n\t\t}\n\n\t};\n\n}\n\n//\n\nconst tmp = new Vector3();\nconst px = new CubicPoly(), py = new CubicPoly(), pz = new CubicPoly();\n\nclass CatmullRomCurve3 extends Curve {\n\n\tconstructor( points = [], closed = false, curveType = 'centripetal', tension = 0.5 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CatmullRomCurve3';\n\n\t\tthis.points = points;\n\t\tthis.closed = closed;\n\t\tthis.curveType = curveType;\n\t\tthis.tension = tension;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst points = this.points;\n\t\tconst l = points.length;\n\n\t\tconst p = ( l - ( this.closed ? 0 : 1 ) ) * t;\n\t\tlet intPoint = Math.floor( p );\n\t\tlet weight = p - intPoint;\n\n\t\tif ( this.closed ) {\n\n\t\t\tintPoint += intPoint > 0 ? 0 : ( Math.floor( Math.abs( intPoint ) / l ) + 1 ) * l;\n\n\t\t} else if ( weight === 0 && intPoint === l - 1 ) {\n\n\t\t\tintPoint = l - 2;\n\t\t\tweight = 1;\n\n\t\t}\n\n\t\tlet p0, p3; // 4 points (p1 & p2 defined below)\n\n\t\tif ( this.closed || intPoint > 0 ) {\n\n\t\t\tp0 = points[ ( intPoint - 1 ) % l ];\n\n\t\t} else {\n\n\t\t\t// extrapolate first point\n\t\t\ttmp.subVectors( points[ 0 ], points[ 1 ] ).add( points[ 0 ] );\n\t\t\tp0 = tmp;\n\n\t\t}\n\n\t\tconst p1 = points[ intPoint % l ];\n\t\tconst p2 = points[ ( intPoint + 1 ) % l ];\n\n\t\tif ( this.closed || intPoint + 2 < l ) {\n\n\t\t\tp3 = points[ ( intPoint + 2 ) % l ];\n\n\t\t} else {\n\n\t\t\t// extrapolate last point\n\t\t\ttmp.subVectors( points[ l - 1 ], points[ l - 2 ] ).add( points[ l - 1 ] );\n\t\t\tp3 = tmp;\n\n\t\t}\n\n\t\tif ( this.curveType === 'centripetal' || this.curveType === 'chordal' ) {\n\n\t\t\t// init Centripetal / Chordal Catmull-Rom\n\t\t\tconst pow = this.curveType === 'chordal' ? 0.5 : 0.25;\n\t\t\tlet dt0 = Math.pow( p0.distanceToSquared( p1 ), pow );\n\t\t\tlet dt1 = Math.pow( p1.distanceToSquared( p2 ), pow );\n\t\t\tlet dt2 = Math.pow( p2.distanceToSquared( p3 ), pow );\n\n\t\t\t// safety check for repeated points\n\t\t\tif ( dt1 < 1e-4 ) dt1 = 1.0;\n\t\t\tif ( dt0 < 1e-4 ) dt0 = dt1;\n\t\t\tif ( dt2 < 1e-4 ) dt2 = dt1;\n\n\t\t\tpx.initNonuniformCatmullRom( p0.x, p1.x, p2.x, p3.x, dt0, dt1, dt2 );\n\t\t\tpy.initNonuniformCatmullRom( p0.y, p1.y, p2.y, p3.y, dt0, dt1, dt2 );\n\t\t\tpz.initNonuniformCatmullRom( p0.z, p1.z, p2.z, p3.z, dt0, dt1, dt2 );\n\n\t\t} else if ( this.curveType === 'catmullrom' ) {\n\n\t\t\tpx.initCatmullRom( p0.x, p1.x, p2.x, p3.x, this.tension );\n\t\t\tpy.initCatmullRom( p0.y, p1.y, p2.y, p3.y, this.tension );\n\t\t\tpz.initCatmullRom( p0.z, p1.z, p2.z, p3.z, this.tension );\n\n\t\t}\n\n\t\tpoint.set(\n\t\t\tpx.calc( weight ),\n\t\t\tpy.calc( weight ),\n\t\t\tpz.calc( weight )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = source.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = source.points[ i ];\n\n\t\t\tthis.points.push( point.clone() );\n\n\t\t}\n\n\t\tthis.closed = source.closed;\n\t\tthis.curveType = source.curveType;\n\t\tthis.tension = source.tension;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.points = [];\n\n\t\tfor ( let i = 0, l = this.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = this.points[ i ];\n\t\t\tdata.points.push( point.toArray() );\n\n\t\t}\n\n\t\tdata.closed = this.closed;\n\t\tdata.curveType = this.curveType;\n\t\tdata.tension = this.tension;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = json.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = json.points[ i ];\n\t\t\tthis.points.push( new Vector3().fromArray( point ) );\n\n\t\t}\n\n\t\tthis.closed = json.closed;\n\t\tthis.curveType = json.curveType;\n\t\tthis.tension = json.tension;\n\n\t\treturn this;\n\n\t}\n\n}\n\nCatmullRomCurve3.prototype.isCatmullRomCurve3 = true;\n\n/**\n * Bezier Curves formulas obtained from\n * https://en.wikipedia.org/wiki/B%C3%A9zier_curve\n */\n\nfunction CatmullRom( t, p0, p1, p2, p3 ) {\n\n\tconst v0 = ( p2 - p0 ) * 0.5;\n\tconst v1 = ( p3 - p1 ) * 0.5;\n\tconst t2 = t * t;\n\tconst t3 = t * t2;\n\treturn ( 2 * p1 - 2 * p2 + v0 + v1 ) * t3 + ( - 3 * p1 + 3 * p2 - 2 * v0 - v1 ) * t2 + v0 * t + p1;\n\n}\n\n//\n\nfunction QuadraticBezierP0( t, p ) {\n\n\tconst k = 1 - t;\n\treturn k * k * p;\n\n}\n\nfunction QuadraticBezierP1( t, p ) {\n\n\treturn 2 * ( 1 - t ) * t * p;\n\n}\n\nfunction QuadraticBezierP2( t, p ) {\n\n\treturn t * t * p;\n\n}\n\nfunction QuadraticBezier( t, p0, p1, p2 ) {\n\n\treturn QuadraticBezierP0( t, p0 ) + QuadraticBezierP1( t, p1 ) +\n\t\tQuadraticBezierP2( t, p2 );\n\n}\n\n//\n\nfunction CubicBezierP0( t, p ) {\n\n\tconst k = 1 - t;\n\treturn k * k * k * p;\n\n}\n\nfunction CubicBezierP1( t, p ) {\n\n\tconst k = 1 - t;\n\treturn 3 * k * k * t * p;\n\n}\n\nfunction CubicBezierP2( t, p ) {\n\n\treturn 3 * ( 1 - t ) * t * t * p;\n\n}\n\nfunction CubicBezierP3( t, p ) {\n\n\treturn t * t * t * p;\n\n}\n\nfunction CubicBezier( t, p0, p1, p2, p3 ) {\n\n\treturn CubicBezierP0( t, p0 ) + CubicBezierP1( t, p1 ) + CubicBezierP2( t, p2 ) +\n\t\tCubicBezierP3( t, p3 );\n\n}\n\nclass CubicBezierCurve extends Curve {\n\n\tconstructor( v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2(), v3 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CubicBezierCurve';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\t\tthis.v3 = v3;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2, v3 = this.v3;\n\n\t\tpoint.set(\n\t\t\tCubicBezier( t, v0.x, v1.x, v2.x, v3.x ),\n\t\t\tCubicBezier( t, v0.y, v1.y, v2.y, v3.y )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\t\tthis.v3.copy( source.v3 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\t\tdata.v3 = this.v3.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\t\tthis.v3.fromArray( json.v3 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nCubicBezierCurve.prototype.isCubicBezierCurve = true;\n\nclass CubicBezierCurve3 extends Curve {\n\n\tconstructor( v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3(), v3 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CubicBezierCurve3';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\t\tthis.v3 = v3;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2, v3 = this.v3;\n\n\t\tpoint.set(\n\t\t\tCubicBezier( t, v0.x, v1.x, v2.x, v3.x ),\n\t\t\tCubicBezier( t, v0.y, v1.y, v2.y, v3.y ),\n\t\t\tCubicBezier( t, v0.z, v1.z, v2.z, v3.z )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\t\tthis.v3.copy( source.v3 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\t\tdata.v3 = this.v3.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\t\tthis.v3.fromArray( json.v3 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nCubicBezierCurve3.prototype.isCubicBezierCurve3 = true;\n\nclass LineCurve extends Curve {\n\n\tconstructor( v1 = new Vector2(), v2 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'LineCurve';\n\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tif ( t === 1 ) {\n\n\t\t\tpoint.copy( this.v2 );\n\n\t\t} else {\n\n\t\t\tpoint.copy( this.v2 ).sub( this.v1 );\n\t\t\tpoint.multiplyScalar( t ).add( this.v1 );\n\n\t\t}\n\n\t\treturn point;\n\n\t}\n\n\t// Line curve is linear, so we can overwrite default getPointAt\n\tgetPointAt( u, optionalTarget ) {\n\n\t\treturn this.getPoint( u, optionalTarget );\n\n\t}\n\n\tgetTangent( t, optionalTarget ) {\n\n\t\tconst tangent = optionalTarget || new Vector2();\n\n\t\ttangent.copy( this.v2 ).sub( this.v1 ).normalize();\n\n\t\treturn tangent;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nLineCurve.prototype.isLineCurve = true;\n\nclass LineCurve3 extends Curve {\n\n\tconstructor( v1 = new Vector3(), v2 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'LineCurve3';\n\t\tthis.isLineCurve3 = true;\n\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tif ( t === 1 ) {\n\n\t\t\tpoint.copy( this.v2 );\n\n\t\t} else {\n\n\t\t\tpoint.copy( this.v2 ).sub( this.v1 );\n\t\t\tpoint.multiplyScalar( t ).add( this.v1 );\n\n\t\t}\n\n\t\treturn point;\n\n\t}\n\t// Line curve is linear, so we can overwrite default getPointAt\n\tgetPointAt( u, optionalTarget ) {\n\n\t\treturn this.getPoint( u, optionalTarget );\n\n\t}\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass QuadraticBezierCurve extends Curve {\n\n\tconstructor( v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'QuadraticBezierCurve';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2;\n\n\t\tpoint.set(\n\t\t\tQuadraticBezier( t, v0.x, v1.x, v2.x ),\n\t\t\tQuadraticBezier( t, v0.y, v1.y, v2.y )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nQuadraticBezierCurve.prototype.isQuadraticBezierCurve = true;\n\nclass QuadraticBezierCurve3 extends Curve {\n\n\tconstructor( v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'QuadraticBezierCurve3';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2;\n\n\t\tpoint.set(\n\t\t\tQuadraticBezier( t, v0.x, v1.x, v2.x ),\n\t\t\tQuadraticBezier( t, v0.y, v1.y, v2.y ),\n\t\t\tQuadraticBezier( t, v0.z, v1.z, v2.z )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nQuadraticBezierCurve3.prototype.isQuadraticBezierCurve3 = true;\n\nclass SplineCurve extends Curve {\n\n\tconstructor( points = [] ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'SplineCurve';\n\n\t\tthis.points = points;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst points = this.points;\n\t\tconst p = ( points.length - 1 ) * t;\n\n\t\tconst intPoint = Math.floor( p );\n\t\tconst weight = p - intPoint;\n\n\t\tconst p0 = points[ intPoint === 0 ? intPoint : intPoint - 1 ];\n\t\tconst p1 = points[ intPoint ];\n\t\tconst p2 = points[ intPoint > points.length - 2 ? points.length - 1 : intPoint + 1 ];\n\t\tconst p3 = points[ intPoint > points.length - 3 ? points.length - 1 : intPoint + 2 ];\n\n\t\tpoint.set(\n\t\t\tCatmullRom( weight, p0.x, p1.x, p2.x, p3.x ),\n\t\t\tCatmullRom( weight, p0.y, p1.y, p2.y, p3.y )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = source.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = source.points[ i ];\n\n\t\t\tthis.points.push( point.clone() );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.points = [];\n\n\t\tfor ( let i = 0, l = this.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = this.points[ i ];\n\t\t\tdata.points.push( point.toArray() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = json.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = json.points[ i ];\n\t\t\tthis.points.push( new Vector2().fromArray( point ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nSplineCurve.prototype.isSplineCurve = true;\n\nvar Curves = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tArcCurve: ArcCurve,\n\tCatmullRomCurve3: CatmullRomCurve3,\n\tCubicBezierCurve: CubicBezierCurve,\n\tCubicBezierCurve3: CubicBezierCurve3,\n\tEllipseCurve: EllipseCurve,\n\tLineCurve: LineCurve,\n\tLineCurve3: LineCurve3,\n\tQuadraticBezierCurve: QuadraticBezierCurve,\n\tQuadraticBezierCurve3: QuadraticBezierCurve3,\n\tSplineCurve: SplineCurve\n});\n\n/**************************************************************\n *\tCurved Path - a curve path is simply a array of connected\n * curves, but retains the api of a curve\n **************************************************************/\n\nclass CurvePath extends Curve {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'CurvePath';\n\n\t\tthis.curves = [];\n\t\tthis.autoClose = false; // Automatically closes the path\n\n\t}\n\n\tadd( curve ) {\n\n\t\tthis.curves.push( curve );\n\n\t}\n\n\tclosePath() {\n\n\t\t// Add a line curve if start and end of lines are not connected\n\t\tconst startPoint = this.curves[ 0 ].getPoint( 0 );\n\t\tconst endPoint = this.curves[ this.curves.length - 1 ].getPoint( 1 );\n\n\t\tif ( ! startPoint.equals( endPoint ) ) {\n\n\t\t\tthis.curves.push( new LineCurve( endPoint, startPoint ) );\n\n\t\t}\n\n\t}\n\n\t// To get accurate point with reference to\n\t// entire path distance at time t,\n\t// following has to be done:\n\n\t// 1. Length of each sub path have to be known\n\t// 2. Locate and identify type of curve\n\t// 3. Get t for the curve\n\t// 4. Return curve.getPointAt(t')\n\n\tgetPoint( t, optionalTarget ) {\n\n\t\tconst d = t * this.getLength();\n\t\tconst curveLengths = this.getCurveLengths();\n\t\tlet i = 0;\n\n\t\t// To think about boundaries points.\n\n\t\twhile ( i < curveLengths.length ) {\n\n\t\t\tif ( curveLengths[ i ] >= d ) {\n\n\t\t\t\tconst diff = curveLengths[ i ] - d;\n\t\t\t\tconst curve = this.curves[ i ];\n\n\t\t\t\tconst segmentLength = curve.getLength();\n\t\t\t\tconst u = segmentLength === 0 ? 0 : 1 - diff / segmentLength;\n\n\t\t\t\treturn curve.getPointAt( u, optionalTarget );\n\n\t\t\t}\n\n\t\t\ti ++;\n\n\t\t}\n\n\t\treturn null;\n\n\t\t// loop where sum != 0, sum > d , sum+1 <d\n\n\t}\n\n\t// We cannot use the default THREE.Curve getPoint() with getLength() because in\n\t// THREE.Curve, getLength() depends on getPoint() but in THREE.CurvePath\n\t// getPoint() depends on getLength\n\n\tgetLength() {\n\n\t\tconst lens = this.getCurveLengths();\n\t\treturn lens[ lens.length - 1 ];\n\n\t}\n\n\t// cacheLengths must be recalculated.\n\tupdateArcLengths() {\n\n\t\tthis.needsUpdate = true;\n\t\tthis.cacheLengths = null;\n\t\tthis.getCurveLengths();\n\n\t}\n\n\t// Compute lengths and cache them\n\t// We cannot overwrite getLengths() because UtoT mapping uses it.\n\n\tgetCurveLengths() {\n\n\t\t// We use cache values if curves and cache array are same length\n\n\t\tif ( this.cacheLengths && this.cacheLengths.length === this.curves.length ) {\n\n\t\t\treturn this.cacheLengths;\n\n\t\t}\n\n\t\t// Get length of sub-curve\n\t\t// Push sums into cached array\n\n\t\tconst lengths = [];\n\t\tlet sums = 0;\n\n\t\tfor ( let i = 0, l = this.curves.length; i < l; i ++ ) {\n\n\t\t\tsums += this.curves[ i ].getLength();\n\t\t\tlengths.push( sums );\n\n\t\t}\n\n\t\tthis.cacheLengths = lengths;\n\n\t\treturn lengths;\n\n\t}\n\n\tgetSpacedPoints( divisions = 40 ) {\n\n\t\tconst points = [];\n\n\t\tfor ( let i = 0; i <= divisions; i ++ ) {\n\n\t\t\tpoints.push( this.getPoint( i / divisions ) );\n\n\t\t}\n\n\t\tif ( this.autoClose ) {\n\n\t\t\tpoints.push( points[ 0 ] );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\tgetPoints( divisions = 12 ) {\n\n\t\tconst points = [];\n\t\tlet last;\n\n\t\tfor ( let i = 0, curves = this.curves; i < curves.length; i ++ ) {\n\n\t\t\tconst curve = curves[ i ];\n\t\t\tconst resolution = ( curve && curve.isEllipseCurve ) ? divisions * 2\n\t\t\t\t: ( curve && ( curve.isLineCurve || curve.isLineCurve3 ) ) ? 1\n\t\t\t\t\t: ( curve && curve.isSplineCurve ) ? divisions * curve.points.length\n\t\t\t\t\t\t: divisions;\n\n\t\t\tconst pts = curve.getPoints( resolution );\n\n\t\t\tfor ( let j = 0; j < pts.length; j ++ ) {\n\n\t\t\t\tconst point = pts[ j ];\n\n\t\t\t\tif ( last && last.equals( point ) ) continue; // ensures no consecutive points are duplicates\n\n\t\t\t\tpoints.push( point );\n\t\t\t\tlast = point;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.autoClose && points.length > 1 && ! points[ points.length - 1 ].equals( points[ 0 ] ) ) {\n\n\t\t\tpoints.push( points[ 0 ] );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.curves = [];\n\n\t\tfor ( let i = 0, l = source.curves.length; i < l; i ++ ) {\n\n\t\t\tconst curve = source.curves[ i ];\n\n\t\t\tthis.curves.push( curve.clone() );\n\n\t\t}\n\n\t\tthis.autoClose = source.autoClose;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.autoClose = this.autoClose;\n\t\tdata.curves = [];\n\n\t\tfor ( let i = 0, l = this.curves.length; i < l; i ++ ) {\n\n\t\t\tconst curve = this.curves[ i ];\n\t\t\tdata.curves.push( curve.toJSON() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.autoClose = json.autoClose;\n\t\tthis.curves = [];\n\n\t\tfor ( let i = 0, l = json.curves.length; i < l; i ++ ) {\n\n\t\t\tconst curve = json.curves[ i ];\n\t\t\tthis.curves.push( new Curves[ curve.type ]().fromJSON( curve ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass Path extends CurvePath {\n\n\tconstructor( points ) {\n\n\t\tsuper();\n\t\tthis.type = 'Path';\n\n\t\tthis.currentPoint = new Vector2();\n\n\t\tif ( points ) {\n\n\t\t\tthis.setFromPoints( points );\n\n\t\t}\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.moveTo( points[ 0 ].x, points[ 0 ].y );\n\n\t\tfor ( let i = 1, l = points.length; i < l; i ++ ) {\n\n\t\t\tthis.lineTo( points[ i ].x, points[ i ].y );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmoveTo( x, y ) {\n\n\t\tthis.currentPoint.set( x, y ); // TODO consider referencing vectors instead of copying?\n\n\t\treturn this;\n\n\t}\n\n\tlineTo( x, y ) {\n\n\t\tconst curve = new LineCurve( this.currentPoint.clone(), new Vector2( x, y ) );\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.set( x, y );\n\n\t\treturn this;\n\n\t}\n\n\tquadraticCurveTo( aCPx, aCPy, aX, aY ) {\n\n\t\tconst curve = new QuadraticBezierCurve(\n\t\t\tthis.currentPoint.clone(),\n\t\t\tnew Vector2( aCPx, aCPy ),\n\t\t\tnew Vector2( aX, aY )\n\t\t);\n\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.set( aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tbezierCurveTo( aCP1x, aCP1y, aCP2x, aCP2y, aX, aY ) {\n\n\t\tconst curve = new CubicBezierCurve(\n\t\t\tthis.currentPoint.clone(),\n\t\t\tnew Vector2( aCP1x, aCP1y ),\n\t\t\tnew Vector2( aCP2x, aCP2y ),\n\t\t\tnew Vector2( aX, aY )\n\t\t);\n\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.set( aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tsplineThru( pts /*Array of Vector*/ ) {\n\n\t\tconst npts = [ this.currentPoint.clone() ].concat( pts );\n\n\t\tconst curve = new SplineCurve( npts );\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.copy( pts[ pts.length - 1 ] );\n\n\t\treturn this;\n\n\t}\n\n\tarc( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tconst x0 = this.currentPoint.x;\n\t\tconst y0 = this.currentPoint.y;\n\n\t\tthis.absarc( aX + x0, aY + y0, aRadius,\n\t\t\taStartAngle, aEndAngle, aClockwise );\n\n\t\treturn this;\n\n\t}\n\n\tabsarc( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tthis.absellipse( aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise );\n\n\t\treturn this;\n\n\t}\n\n\tellipse( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation ) {\n\n\t\tconst x0 = this.currentPoint.x;\n\t\tconst y0 = this.currentPoint.y;\n\n\t\tthis.absellipse( aX + x0, aY + y0, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation );\n\n\t\treturn this;\n\n\t}\n\n\tabsellipse( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation ) {\n\n\t\tconst curve = new EllipseCurve( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation );\n\n\t\tif ( this.curves.length > 0 ) {\n\n\t\t\t// if a previous curve is present, attempt to join\n\t\t\tconst firstPoint = curve.getPoint( 0 );\n\n\t\t\tif ( ! firstPoint.equals( this.currentPoint ) ) {\n\n\t\t\t\tthis.lineTo( firstPoint.x, firstPoint.y );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.curves.push( curve );\n\n\t\tconst lastPoint = curve.getPoint( 1 );\n\t\tthis.currentPoint.copy( lastPoint );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.currentPoint.copy( source.currentPoint );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.currentPoint = this.currentPoint.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.currentPoint.fromArray( json.currentPoint );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass Shape extends Path {\n\n\tconstructor( points ) {\n\n\t\tsuper( points );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.type = 'Shape';\n\n\t\tthis.holes = [];\n\n\t}\n\n\tgetPointsHoles( divisions ) {\n\n\t\tconst holesPts = [];\n\n\t\tfor ( let i = 0, l = this.holes.length; i < l; i ++ ) {\n\n\t\t\tholesPts[ i ] = this.holes[ i ].getPoints( divisions );\n\n\t\t}\n\n\t\treturn holesPts;\n\n\t}\n\n\t// get points of shape and holes (keypoints based on segments parameter)\n\n\textractPoints( divisions ) {\n\n\t\treturn {\n\n\t\t\tshape: this.getPoints( divisions ),\n\t\t\tholes: this.getPointsHoles( divisions )\n\n\t\t};\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.holes = [];\n\n\t\tfor ( let i = 0, l = source.holes.length; i < l; i ++ ) {\n\n\t\t\tconst hole = source.holes[ i ];\n\n\t\t\tthis.holes.push( hole.clone() );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.uuid = this.uuid;\n\t\tdata.holes = [];\n\n\t\tfor ( let i = 0, l = this.holes.length; i < l; i ++ ) {\n\n\t\t\tconst hole = this.holes[ i ];\n\t\t\tdata.holes.push( hole.toJSON() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.uuid = json.uuid;\n\t\tthis.holes = [];\n\n\t\tfor ( let i = 0, l = json.holes.length; i < l; i ++ ) {\n\n\t\t\tconst hole = json.holes[ i ];\n\t\t\tthis.holes.push( new Path().fromJSON( hole ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\n/**\n * Port from https://github.com/mapbox/earcut (v2.2.2)\n */\n\nconst Earcut = {\n\n\ttriangulate: function ( data, holeIndices, dim = 2 ) {\n\n\t\tconst hasHoles = holeIndices && holeIndices.length;\n\t\tconst outerLen = hasHoles ? holeIndices[ 0 ] * dim : data.length;\n\t\tlet outerNode = linkedList( data, 0, outerLen, dim, true );\n\t\tconst triangles = [];\n\n\t\tif ( ! outerNode || outerNode.next === outerNode.prev ) return triangles;\n\n\t\tlet minX, minY, maxX, maxY, x, y, invSize;\n\n\t\tif ( hasHoles ) outerNode = eliminateHoles( data, holeIndices, outerNode, dim );\n\n\t\t// if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n\t\tif ( data.length > 80 * dim ) {\n\n\t\t\tminX = maxX = data[ 0 ];\n\t\t\tminY = maxY = data[ 1 ];\n\n\t\t\tfor ( let i = dim; i < outerLen; i += dim ) {\n\n\t\t\t\tx = data[ i ];\n\t\t\t\ty = data[ i + 1 ];\n\t\t\t\tif ( x < minX ) minX = x;\n\t\t\t\tif ( y < minY ) minY = y;\n\t\t\t\tif ( x > maxX ) maxX = x;\n\t\t\t\tif ( y > maxY ) maxY = y;\n\n\t\t\t}\n\n\t\t\t// minX, minY and invSize are later used to transform coords into integers for z-order calculation\n\t\t\tinvSize = Math.max( maxX - minX, maxY - minY );\n\t\t\tinvSize = invSize !== 0 ? 1 / invSize : 0;\n\n\t\t}\n\n\t\tearcutLinked( outerNode, triangles, dim, minX, minY, invSize );\n\n\t\treturn triangles;\n\n\t}\n\n};\n\n// create a circular doubly linked list from polygon points in the specified winding order\nfunction linkedList( data, start, end, dim, clockwise ) {\n\n\tlet i, last;\n\n\tif ( clockwise === ( signedArea( data, start, end, dim ) > 0 ) ) {\n\n\t\tfor ( i = start; i < end; i += dim ) last = insertNode( i, data[ i ], data[ i + 1 ], last );\n\n\t} else {\n\n\t\tfor ( i = end - dim; i >= start; i -= dim ) last = insertNode( i, data[ i ], data[ i + 1 ], last );\n\n\t}\n\n\tif ( last && equals( last, last.next ) ) {\n\n\t\tremoveNode( last );\n\t\tlast = last.next;\n\n\t}\n\n\treturn last;\n\n}\n\n// eliminate colinear or duplicate points\nfunction filterPoints( start, end ) {\n\n\tif ( ! start ) return start;\n\tif ( ! end ) end = start;\n\n\tlet p = start,\n\t\tagain;\n\tdo {\n\n\t\tagain = false;\n\n\t\tif ( ! p.steiner && ( equals( p, p.next ) || area( p.prev, p, p.next ) === 0 ) ) {\n\n\t\t\tremoveNode( p );\n\t\t\tp = end = p.prev;\n\t\t\tif ( p === p.next ) break;\n\t\t\tagain = true;\n\n\t\t} else {\n\n\t\t\tp = p.next;\n\n\t\t}\n\n\t} while ( again || p !== end );\n\n\treturn end;\n\n}\n\n// main ear slicing loop which triangulates a polygon (given as a linked list)\nfunction earcutLinked( ear, triangles, dim, minX, minY, invSize, pass ) {\n\n\tif ( ! ear ) return;\n\n\t// interlink polygon nodes in z-order\n\tif ( ! pass && invSize ) indexCurve( ear, minX, minY, invSize );\n\n\tlet stop = ear,\n\t\tprev, next;\n\n\t// iterate through ears, slicing them one by one\n\twhile ( ear.prev !== ear.next ) {\n\n\t\tprev = ear.prev;\n\t\tnext = ear.next;\n\n\t\tif ( invSize ? isEarHashed( ear, minX, minY, invSize ) : isEar( ear ) ) {\n\n\t\t\t// cut off the triangle\n\t\t\ttriangles.push( prev.i / dim );\n\t\t\ttriangles.push( ear.i / dim );\n\t\t\ttriangles.push( next.i / dim );\n\n\t\t\tremoveNode( ear );\n\n\t\t\t// skipping the next vertex leads to less sliver triangles\n\t\t\tear = next.next;\n\t\t\tstop = next.next;\n\n\t\t\tcontinue;\n\n\t\t}\n\n\t\tear = next;\n\n\t\t// if we looped through the whole remaining polygon and can't find any more ears\n\t\tif ( ear === stop ) {\n\n\t\t\t// try filtering points and slicing again\n\t\t\tif ( ! pass ) {\n\n\t\t\t\tearcutLinked( filterPoints( ear ), triangles, dim, minX, minY, invSize, 1 );\n\n\t\t\t\t// if this didn't work, try curing all small self-intersections locally\n\n\t\t\t} else if ( pass === 1 ) {\n\n\t\t\t\tear = cureLocalIntersections( filterPoints( ear ), triangles, dim );\n\t\t\t\tearcutLinked( ear, triangles, dim, minX, minY, invSize, 2 );\n\n\t\t\t\t// as a last resort, try splitting the remaining polygon into two\n\n\t\t\t} else if ( pass === 2 ) {\n\n\t\t\t\tsplitEarcut( ear, triangles, dim, minX, minY, invSize );\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n}\n\n// check whether a polygon node forms a valid ear with adjacent nodes\nfunction isEar( ear ) {\n\n\tconst a = ear.prev,\n\t\tb = ear,\n\t\tc = ear.next;\n\n\tif ( area( a, b, c ) >= 0 ) return false; // reflex, can't be an ear\n\n\t// now make sure we don't have other points inside the potential ear\n\tlet p = ear.next.next;\n\n\twhile ( p !== ear.prev ) {\n\n\t\tif ( pointInTriangle( a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y ) &&\n\t\t\tarea( p.prev, p, p.next ) >= 0 ) return false;\n\t\tp = p.next;\n\n\t}\n\n\treturn true;\n\n}\n\nfunction isEarHashed( ear, minX, minY, invSize ) {\n\n\tconst a = ear.prev,\n\t\tb = ear,\n\t\tc = ear.next;\n\n\tif ( area( a, b, c ) >= 0 ) return false; // reflex, can't be an ear\n\n\t// triangle bbox; min & max are calculated like this for speed\n\tconst minTX = a.x < b.x ? ( a.x < c.x ? a.x : c.x ) : ( b.x < c.x ? b.x : c.x ),\n\t\tminTY = a.y < b.y ? ( a.y < c.y ? a.y : c.y ) : ( b.y < c.y ? b.y : c.y ),\n\t\tmaxTX = a.x > b.x ? ( a.x > c.x ? a.x : c.x ) : ( b.x > c.x ? b.x : c.x ),\n\t\tmaxTY = a.y > b.y ? ( a.y > c.y ? a.y : c.y ) : ( b.y > c.y ? b.y : c.y );\n\n\t// z-order range for the current triangle bbox;\n\tconst minZ = zOrder( minTX, minTY, minX, minY, invSize ),\n\t\tmaxZ = zOrder( maxTX, maxTY, minX, minY, invSize );\n\n\tlet p = ear.prevZ,\n\t\tn = ear.nextZ;\n\n\t// look for points inside the triangle in both directions\n\twhile ( p && p.z >= minZ && n && n.z <= maxZ ) {\n\n\t\tif ( p !== ear.prev && p !== ear.next &&\n\t\t\tpointInTriangle( a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y ) &&\n\t\t\tarea( p.prev, p, p.next ) >= 0 ) return false;\n\t\tp = p.prevZ;\n\n\t\tif ( n !== ear.prev && n !== ear.next &&\n\t\t\tpointInTriangle( a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y ) &&\n\t\t\tarea( n.prev, n, n.next ) >= 0 ) return false;\n\t\tn = n.nextZ;\n\n\t}\n\n\t// look for remaining points in decreasing z-order\n\twhile ( p && p.z >= minZ ) {\n\n\t\tif ( p !== ear.prev && p !== ear.next &&\n\t\t\tpointInTriangle( a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y ) &&\n\t\t\tarea( p.prev, p, p.next ) >= 0 ) return false;\n\t\tp = p.prevZ;\n\n\t}\n\n\t// look for remaining points in increasing z-order\n\twhile ( n && n.z <= maxZ ) {\n\n\t\tif ( n !== ear.prev && n !== ear.next &&\n\t\t\tpointInTriangle( a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y ) &&\n\t\t\tarea( n.prev, n, n.next ) >= 0 ) return false;\n\t\tn = n.nextZ;\n\n\t}\n\n\treturn true;\n\n}\n\n// go through all polygon nodes and cure small local self-intersections\nfunction cureLocalIntersections( start, triangles, dim ) {\n\n\tlet p = start;\n\tdo {\n\n\t\tconst a = p.prev,\n\t\t\tb = p.next.next;\n\n\t\tif ( ! equals( a, b ) && intersects( a, p, p.next, b ) && locallyInside( a, b ) && locallyInside( b, a ) ) {\n\n\t\t\ttriangles.push( a.i / dim );\n\t\t\ttriangles.push( p.i / dim );\n\t\t\ttriangles.push( b.i / dim );\n\n\t\t\t// remove two nodes involved\n\t\t\tremoveNode( p );\n\t\t\tremoveNode( p.next );\n\n\t\t\tp = start = b;\n\n\t\t}\n\n\t\tp = p.next;\n\n\t} while ( p !== start );\n\n\treturn filterPoints( p );\n\n}\n\n// try splitting polygon into two and triangulate them independently\nfunction splitEarcut( start, triangles, dim, minX, minY, invSize ) {\n\n\t// look for a valid diagonal that divides the polygon into two\n\tlet a = start;\n\tdo {\n\n\t\tlet b = a.next.next;\n\t\twhile ( b !== a.prev ) {\n\n\t\t\tif ( a.i !== b.i && isValidDiagonal( a, b ) ) {\n\n\t\t\t\t// split the polygon in two by the diagonal\n\t\t\t\tlet c = splitPolygon( a, b );\n\n\t\t\t\t// filter colinear points around the cuts\n\t\t\t\ta = filterPoints( a, a.next );\n\t\t\t\tc = filterPoints( c, c.next );\n\n\t\t\t\t// run earcut on each half\n\t\t\t\tearcutLinked( a, triangles, dim, minX, minY, invSize );\n\t\t\t\tearcutLinked( c, triangles, dim, minX, minY, invSize );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tb = b.next;\n\n\t\t}\n\n\t\ta = a.next;\n\n\t} while ( a !== start );\n\n}\n\n// link every hole into the outer loop, producing a single-ring polygon without holes\nfunction eliminateHoles( data, holeIndices, outerNode, dim ) {\n\n\tconst queue = [];\n\tlet i, len, start, end, list;\n\n\tfor ( i = 0, len = holeIndices.length; i < len; i ++ ) {\n\n\t\tstart = holeIndices[ i ] * dim;\n\t\tend = i < len - 1 ? holeIndices[ i + 1 ] * dim : data.length;\n\t\tlist = linkedList( data, start, end, dim, false );\n\t\tif ( list === list.next ) list.steiner = true;\n\t\tqueue.push( getLeftmost( list ) );\n\n\t}\n\n\tqueue.sort( compareX );\n\n\t// process holes from left to right\n\tfor ( i = 0; i < queue.length; i ++ ) {\n\n\t\teliminateHole( queue[ i ], outerNode );\n\t\touterNode = filterPoints( outerNode, outerNode.next );\n\n\t}\n\n\treturn outerNode;\n\n}\n\nfunction compareX( a, b ) {\n\n\treturn a.x - b.x;\n\n}\n\n// find a bridge between vertices that connects hole with an outer ring and and link it\nfunction eliminateHole( hole, outerNode ) {\n\n\touterNode = findHoleBridge( hole, outerNode );\n\tif ( outerNode ) {\n\n\t\tconst b = splitPolygon( outerNode, hole );\n\n\t\t// filter collinear points around the cuts\n\t\tfilterPoints( outerNode, outerNode.next );\n\t\tfilterPoints( b, b.next );\n\n\t}\n\n}\n\n// David Eberly's algorithm for finding a bridge between hole and outer polygon\nfunction findHoleBridge( hole, outerNode ) {\n\n\tlet p = outerNode;\n\tconst hx = hole.x;\n\tconst hy = hole.y;\n\tlet qx = - Infinity, m;\n\n\t// find a segment intersected by a ray from the hole's leftmost point to the left;\n\t// segment's endpoint with lesser x will be potential connection point\n\tdo {\n\n\t\tif ( hy <= p.y && hy >= p.next.y && p.next.y !== p.y ) {\n\n\t\t\tconst x = p.x + ( hy - p.y ) * ( p.next.x - p.x ) / ( p.next.y - p.y );\n\t\t\tif ( x <= hx && x > qx ) {\n\n\t\t\t\tqx = x;\n\t\t\t\tif ( x === hx ) {\n\n\t\t\t\t\tif ( hy === p.y ) return p;\n\t\t\t\t\tif ( hy === p.next.y ) return p.next;\n\n\t\t\t\t}\n\n\t\t\t\tm = p.x < p.next.x ? p : p.next;\n\n\t\t\t}\n\n\t\t}\n\n\t\tp = p.next;\n\n\t} while ( p !== outerNode );\n\n\tif ( ! m ) return null;\n\n\tif ( hx === qx ) return m; // hole touches outer segment; pick leftmost endpoint\n\n\t// look for points inside the triangle of hole point, segment intersection and endpoint;\n\t// if there are no points found, we have a valid connection;\n\t// otherwise choose the point of the minimum angle with the ray as connection point\n\n\tconst stop = m,\n\t\tmx = m.x,\n\t\tmy = m.y;\n\tlet tanMin = Infinity, tan;\n\n\tp = m;\n\n\tdo {\n\n\t\tif ( hx >= p.x && p.x >= mx && hx !== p.x &&\n\t\t\t\tpointInTriangle( hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y ) ) {\n\n\t\t\ttan = Math.abs( hy - p.y ) / ( hx - p.x ); // tangential\n\n\t\t\tif ( locallyInside( p, hole ) && ( tan < tanMin || ( tan === tanMin && ( p.x > m.x || ( p.x === m.x && sectorContainsSector( m, p ) ) ) ) ) ) {\n\n\t\t\t\tm = p;\n\t\t\t\ttanMin = tan;\n\n\t\t\t}\n\n\t\t}\n\n\t\tp = p.next;\n\n\t} while ( p !== stop );\n\n\treturn m;\n\n}\n\n// whether sector in vertex m contains sector in vertex p in the same coordinates\nfunction sectorContainsSector( m, p ) {\n\n\treturn area( m.prev, m, p.prev ) < 0 && area( p.next, m, m.next ) < 0;\n\n}\n\n// interlink polygon nodes in z-order\nfunction indexCurve( start, minX, minY, invSize ) {\n\n\tlet p = start;\n\tdo {\n\n\t\tif ( p.z === null ) p.z = zOrder( p.x, p.y, minX, minY, invSize );\n\t\tp.prevZ = p.prev;\n\t\tp.nextZ = p.next;\n\t\tp = p.next;\n\n\t} while ( p !== start );\n\n\tp.prevZ.nextZ = null;\n\tp.prevZ = null;\n\n\tsortLinked( p );\n\n}\n\n// Simon Tatham's linked list merge sort algorithm\n// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\nfunction sortLinked( list ) {\n\n\tlet i, p, q, e, tail, numMerges, pSize, qSize,\n\t\tinSize = 1;\n\n\tdo {\n\n\t\tp = list;\n\t\tlist = null;\n\t\ttail = null;\n\t\tnumMerges = 0;\n\n\t\twhile ( p ) {\n\n\t\t\tnumMerges ++;\n\t\t\tq = p;\n\t\t\tpSize = 0;\n\t\t\tfor ( i = 0; i < inSize; i ++ ) {\n\n\t\t\t\tpSize ++;\n\t\t\t\tq = q.nextZ;\n\t\t\t\tif ( ! q ) break;\n\n\t\t\t}\n\n\t\t\tqSize = inSize;\n\n\t\t\twhile ( pSize > 0 || ( qSize > 0 && q ) ) {\n\n\t\t\t\tif ( pSize !== 0 && ( qSize === 0 || ! q || p.z <= q.z ) ) {\n\n\t\t\t\t\te = p;\n\t\t\t\t\tp = p.nextZ;\n\t\t\t\t\tpSize --;\n\n\t\t\t\t} else {\n\n\t\t\t\t\te = q;\n\t\t\t\t\tq = q.nextZ;\n\t\t\t\t\tqSize --;\n\n\t\t\t\t}\n\n\t\t\t\tif ( tail ) tail.nextZ = e;\n\t\t\t\telse list = e;\n\n\t\t\t\te.prevZ = tail;\n\t\t\t\ttail = e;\n\n\t\t\t}\n\n\t\t\tp = q;\n\n\t\t}\n\n\t\ttail.nextZ = null;\n\t\tinSize *= 2;\n\n\t} while ( numMerges > 1 );\n\n\treturn list;\n\n}\n\n// z-order of a point given coords and inverse of the longer side of data bbox\nfunction zOrder( x, y, minX, minY, invSize ) {\n\n\t// coords are transformed into non-negative 15-bit integer range\n\tx = 32767 * ( x - minX ) * invSize;\n\ty = 32767 * ( y - minY ) * invSize;\n\n\tx = ( x | ( x << 8 ) ) & 0x00FF00FF;\n\tx = ( x | ( x << 4 ) ) & 0x0F0F0F0F;\n\tx = ( x | ( x << 2 ) ) & 0x33333333;\n\tx = ( x | ( x << 1 ) ) & 0x55555555;\n\n\ty = ( y | ( y << 8 ) ) & 0x00FF00FF;\n\ty = ( y | ( y << 4 ) ) & 0x0F0F0F0F;\n\ty = ( y | ( y << 2 ) ) & 0x33333333;\n\ty = ( y | ( y << 1 ) ) & 0x55555555;\n\n\treturn x | ( y << 1 );\n\n}\n\n// find the leftmost node of a polygon ring\nfunction getLeftmost( start ) {\n\n\tlet p = start,\n\t\tleftmost = start;\n\tdo {\n\n\t\tif ( p.x < leftmost.x || ( p.x === leftmost.x && p.y < leftmost.y ) ) leftmost = p;\n\t\tp = p.next;\n\n\t} while ( p !== start );\n\n\treturn leftmost;\n\n}\n\n// check if a point lies within a convex triangle\nfunction pointInTriangle( ax, ay, bx, by, cx, cy, px, py ) {\n\n\treturn ( cx - px ) * ( ay - py ) - ( ax - px ) * ( cy - py ) >= 0 &&\n\t\t\t( ax - px ) * ( by - py ) - ( bx - px ) * ( ay - py ) >= 0 &&\n\t\t\t( bx - px ) * ( cy - py ) - ( cx - px ) * ( by - py ) >= 0;\n\n}\n\n// check if a diagonal between two polygon nodes is valid (lies in polygon interior)\nfunction isValidDiagonal( a, b ) {\n\n\treturn a.next.i !== b.i && a.prev.i !== b.i && ! intersectsPolygon( a, b ) && // dones't intersect other edges\n\t\t( locallyInside( a, b ) && locallyInside( b, a ) && middleInside( a, b ) && // locally visible\n\t\t( area( a.prev, a, b.prev ) || area( a, b.prev, b ) ) || // does not create opposite-facing sectors\n\t\tequals( a, b ) && area( a.prev, a, a.next ) > 0 && area( b.prev, b, b.next ) > 0 ); // special zero-length case\n\n}\n\n// signed area of a triangle\nfunction area( p, q, r ) {\n\n\treturn ( q.y - p.y ) * ( r.x - q.x ) - ( q.x - p.x ) * ( r.y - q.y );\n\n}\n\n// check if two points are equal\nfunction equals( p1, p2 ) {\n\n\treturn p1.x === p2.x && p1.y === p2.y;\n\n}\n\n// check if two segments intersect\nfunction intersects( p1, q1, p2, q2 ) {\n\n\tconst o1 = sign( area( p1, q1, p2 ) );\n\tconst o2 = sign( area( p1, q1, q2 ) );\n\tconst o3 = sign( area( p2, q2, p1 ) );\n\tconst o4 = sign( area( p2, q2, q1 ) );\n\n\tif ( o1 !== o2 && o3 !== o4 ) return true; // general case\n\n\tif ( o1 === 0 && onSegment( p1, p2, q1 ) ) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n\tif ( o2 === 0 && onSegment( p1, q2, q1 ) ) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n\tif ( o3 === 0 && onSegment( p2, p1, q2 ) ) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n\tif ( o4 === 0 && onSegment( p2, q1, q2 ) ) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n\treturn false;\n\n}\n\n// for collinear points p, q, r, check if point q lies on segment pr\nfunction onSegment( p, q, r ) {\n\n\treturn q.x <= Math.max( p.x, r.x ) && q.x >= Math.min( p.x, r.x ) && q.y <= Math.max( p.y, r.y ) && q.y >= Math.min( p.y, r.y );\n\n}\n\nfunction sign( num ) {\n\n\treturn num > 0 ? 1 : num < 0 ? - 1 : 0;\n\n}\n\n// check if a polygon diagonal intersects any polygon segments\nfunction intersectsPolygon( a, b ) {\n\n\tlet p = a;\n\tdo {\n\n\t\tif ( p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&\n\t\t\t\tintersects( p, p.next, a, b ) ) return true;\n\t\tp = p.next;\n\n\t} while ( p !== a );\n\n\treturn false;\n\n}\n\n// check if a polygon diagonal is locally inside the polygon\nfunction locallyInside( a, b ) {\n\n\treturn area( a.prev, a, a.next ) < 0 ?\n\t\tarea( a, b, a.next ) >= 0 && area( a, a.prev, b ) >= 0 :\n\t\tarea( a, b, a.prev ) < 0 || area( a, a.next, b ) < 0;\n\n}\n\n// check if the middle point of a polygon diagonal is inside the polygon\nfunction middleInside( a, b ) {\n\n\tlet p = a,\n\t\tinside = false;\n\tconst px = ( a.x + b.x ) / 2,\n\t\tpy = ( a.y + b.y ) / 2;\n\tdo {\n\n\t\tif ( ( ( p.y > py ) !== ( p.next.y > py ) ) && p.next.y !== p.y &&\n\t\t\t\t( px < ( p.next.x - p.x ) * ( py - p.y ) / ( p.next.y - p.y ) + p.x ) )\n\t\t\tinside = ! inside;\n\t\tp = p.next;\n\n\t} while ( p !== a );\n\n\treturn inside;\n\n}\n\n// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\n// if one belongs to the outer ring and another to a hole, it merges it into a single ring\nfunction splitPolygon( a, b ) {\n\n\tconst a2 = new Node( a.i, a.x, a.y ),\n\t\tb2 = new Node( b.i, b.x, b.y ),\n\t\tan = a.next,\n\t\tbp = b.prev;\n\n\ta.next = b;\n\tb.prev = a;\n\n\ta2.next = an;\n\tan.prev = a2;\n\n\tb2.next = a2;\n\ta2.prev = b2;\n\n\tbp.next = b2;\n\tb2.prev = bp;\n\n\treturn b2;\n\n}\n\n// create a node and optionally link it with previous one (in a circular doubly linked list)\nfunction insertNode( i, x, y, last ) {\n\n\tconst p = new Node( i, x, y );\n\n\tif ( ! last ) {\n\n\t\tp.prev = p;\n\t\tp.next = p;\n\n\t} else {\n\n\t\tp.next = last.next;\n\t\tp.prev = last;\n\t\tlast.next.prev = p;\n\t\tlast.next = p;\n\n\t}\n\n\treturn p;\n\n}\n\nfunction removeNode( p ) {\n\n\tp.next.prev = p.prev;\n\tp.prev.next = p.next;\n\n\tif ( p.prevZ ) p.prevZ.nextZ = p.nextZ;\n\tif ( p.nextZ ) p.nextZ.prevZ = p.prevZ;\n\n}\n\nfunction Node( i, x, y ) {\n\n\t// vertex index in coordinates array\n\tthis.i = i;\n\n\t// vertex coordinates\n\tthis.x = x;\n\tthis.y = y;\n\n\t// previous and next vertex nodes in a polygon ring\n\tthis.prev = null;\n\tthis.next = null;\n\n\t// z-order curve value\n\tthis.z = null;\n\n\t// previous and next nodes in z-order\n\tthis.prevZ = null;\n\tthis.nextZ = null;\n\n\t// indicates whether this is a steiner point\n\tthis.steiner = false;\n\n}\n\nfunction signedArea( data, start, end, dim ) {\n\n\tlet sum = 0;\n\tfor ( let i = start, j = end - dim; i < end; i += dim ) {\n\n\t\tsum += ( data[ j ] - data[ i ] ) * ( data[ i + 1 ] + data[ j + 1 ] );\n\t\tj = i;\n\n\t}\n\n\treturn sum;\n\n}\n\nclass ShapeUtils {\n\n\t// calculate area of the contour polygon\n\n\tstatic area( contour ) {\n\n\t\tconst n = contour.length;\n\t\tlet a = 0.0;\n\n\t\tfor ( let p = n - 1, q = 0; q < n; p = q ++ ) {\n\n\t\t\ta += contour[ p ].x * contour[ q ].y - contour[ q ].x * contour[ p ].y;\n\n\t\t}\n\n\t\treturn a * 0.5;\n\n\t}\n\n\tstatic isClockWise( pts ) {\n\n\t\treturn ShapeUtils.area( pts ) < 0;\n\n\t}\n\n\tstatic triangulateShape( contour, holes ) {\n\n\t\tconst vertices = []; // flat array of vertices like [ x0,y0, x1,y1, x2,y2, ... ]\n\t\tconst holeIndices = []; // array of hole indices\n\t\tconst faces = []; // final array of vertex indices like [ [ a,b,d ], [ b,c,d ] ]\n\n\t\tremoveDupEndPts( contour );\n\t\taddContour( vertices, contour );\n\n\t\t//\n\n\t\tlet holeIndex = contour.length;\n\n\t\tholes.forEach( removeDupEndPts );\n\n\t\tfor ( let i = 0; i < holes.length; i ++ ) {\n\n\t\t\tholeIndices.push( holeIndex );\n\t\t\tholeIndex += holes[ i ].length;\n\t\t\taddContour( vertices, holes[ i ] );\n\n\t\t}\n\n\t\t//\n\n\t\tconst triangles = Earcut.triangulate( vertices, holeIndices );\n\n\t\t//\n\n\t\tfor ( let i = 0; i < triangles.length; i += 3 ) {\n\n\t\t\tfaces.push( triangles.slice( i, i + 3 ) );\n\n\t\t}\n\n\t\treturn faces;\n\n\t}\n\n}\n\nfunction removeDupEndPts( points ) {\n\n\tconst l = points.length;\n\n\tif ( l > 2 && points[ l - 1 ].equals( points[ 0 ] ) ) {\n\n\t\tpoints.pop();\n\n\t}\n\n}\n\nfunction addContour( vertices, contour ) {\n\n\tfor ( let i = 0; i < contour.length; i ++ ) {\n\n\t\tvertices.push( contour[ i ].x );\n\t\tvertices.push( contour[ i ].y );\n\n\t}\n\n}\n\n/**\n * Creates extruded geometry from a path shape.\n *\n * parameters = {\n *\n * curveSegments: <int>, // number of points on the curves\n * steps: <int>, // number of points for z-side extrusions / used for subdividing segments of extrude spline too\n * depth: <float>, // Depth to extrude the shape\n *\n * bevelEnabled: <bool>, // turn on bevel\n * bevelThickness: <float>, // how deep into the original shape bevel goes\n * bevelSize: <float>, // how far from shape outline (including bevelOffset) is bevel\n * bevelOffset: <float>, // how far from shape outline does bevel start\n * bevelSegments: <int>, // number of bevel layers\n *\n * extrudePath: <THREE.Curve> // curve to extrude shape along\n *\n * UVGenerator: <Object> // object that provides UV generator functions\n *\n * }\n */\n\nclass ExtrudeGeometry extends BufferGeometry {\n\n\tconstructor( shapes = new Shape( [ new Vector2( 0.5, 0.5 ), new Vector2( - 0.5, 0.5 ), new Vector2( - 0.5, - 0.5 ), new Vector2( 0.5, - 0.5 ) ] ), options = {} ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'ExtrudeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tshapes: shapes,\n\t\t\toptions: options\n\t\t};\n\n\t\tshapes = Array.isArray( shapes ) ? shapes : [ shapes ];\n\n\t\tconst scope = this;\n\n\t\tconst verticesArray = [];\n\t\tconst uvArray = [];\n\n\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\tconst shape = shapes[ i ];\n\t\t\taddShape( shape );\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( verticesArray, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvArray, 2 ) );\n\n\t\tthis.computeVertexNormals();\n\n\t\t// functions\n\n\t\tfunction addShape( shape ) {\n\n\t\t\tconst placeholder = [];\n\n\t\t\t// options\n\n\t\t\tconst curveSegments = options.curveSegments !== undefined ? options.curveSegments : 12;\n\t\t\tconst steps = options.steps !== undefined ? options.steps : 1;\n\t\t\tlet depth = options.depth !== undefined ? options.depth : 1;\n\n\t\t\tlet bevelEnabled = options.bevelEnabled !== undefined ? options.bevelEnabled : true;\n\t\t\tlet bevelThickness = options.bevelThickness !== undefined ? options.bevelThickness : 0.2;\n\t\t\tlet bevelSize = options.bevelSize !== undefined ? options.bevelSize : bevelThickness - 0.1;\n\t\t\tlet bevelOffset = options.bevelOffset !== undefined ? options.bevelOffset : 0;\n\t\t\tlet bevelSegments = options.bevelSegments !== undefined ? options.bevelSegments : 3;\n\n\t\t\tconst extrudePath = options.extrudePath;\n\n\t\t\tconst uvgen = options.UVGenerator !== undefined ? options.UVGenerator : WorldUVGenerator;\n\n\t\t\t// deprecated options\n\n\t\t\tif ( options.amount !== undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.ExtrudeBufferGeometry: amount has been renamed to depth.' );\n\t\t\t\tdepth = options.amount;\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tlet extrudePts, extrudeByPath = false;\n\t\t\tlet splineTube, binormal, normal, position2;\n\n\t\t\tif ( extrudePath ) {\n\n\t\t\t\textrudePts = extrudePath.getSpacedPoints( steps );\n\n\t\t\t\textrudeByPath = true;\n\t\t\t\tbevelEnabled = false; // bevels not supported for path extrusion\n\n\t\t\t\t// SETUP TNB variables\n\n\t\t\t\t// TODO1 - have a .isClosed in spline?\n\n\t\t\t\tsplineTube = extrudePath.computeFrenetFrames( steps, false );\n\n\t\t\t\t// console.log(splineTube, 'splineTube', splineTube.normals.length, 'steps', steps, 'extrudePts', extrudePts.length);\n\n\t\t\t\tbinormal = new Vector3();\n\t\t\t\tnormal = new Vector3();\n\t\t\t\tposition2 = new Vector3();\n\n\t\t\t}\n\n\t\t\t// Safeguards if bevels are not enabled\n\n\t\t\tif ( ! bevelEnabled ) {\n\n\t\t\t\tbevelSegments = 0;\n\t\t\t\tbevelThickness = 0;\n\t\t\t\tbevelSize = 0;\n\t\t\t\tbevelOffset = 0;\n\n\t\t\t}\n\n\t\t\t// Variables initialization\n\n\t\t\tconst shapePoints = shape.extractPoints( curveSegments );\n\n\t\t\tlet vertices = shapePoints.shape;\n\t\t\tconst holes = shapePoints.holes;\n\n\t\t\tconst reverse = ! ShapeUtils.isClockWise( vertices );\n\n\t\t\tif ( reverse ) {\n\n\t\t\t\tvertices = vertices.reverse();\n\n\t\t\t\t// Maybe we should also check if holes are in the opposite direction, just to be safe ...\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\n\t\t\t\t\tif ( ShapeUtils.isClockWise( ahole ) ) {\n\n\t\t\t\t\t\tholes[ h ] = ahole.reverse();\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\n\t\t\tconst faces = ShapeUtils.triangulateShape( vertices, holes );\n\n\t\t\t/* Vertices */\n\n\t\t\tconst contour = vertices; // vertices has all points but contour has only points of circumference\n\n\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\tconst ahole = holes[ h ];\n\n\t\t\t\tvertices = vertices.concat( ahole );\n\n\t\t\t}\n\n\n\t\t\tfunction scalePt2( pt, vec, size ) {\n\n\t\t\t\tif ( ! vec ) console.error( 'THREE.ExtrudeGeometry: vec does not exist' );\n\n\t\t\t\treturn vec.clone().multiplyScalar( size ).add( pt );\n\n\t\t\t}\n\n\t\t\tconst vlen = vertices.length, flen = faces.length;\n\n\n\t\t\t// Find directions for point movement\n\n\n\t\t\tfunction getBevelVec( inPt, inPrev, inNext ) {\n\n\t\t\t\t// computes for inPt the corresponding point inPt' on a new contour\n\t\t\t\t// shifted by 1 unit (length of normalized vector) to the left\n\t\t\t\t// if we walk along contour clockwise, this new contour is outside the old one\n\t\t\t\t//\n\t\t\t\t// inPt' is the intersection of the two lines parallel to the two\n\t\t\t\t// adjacent edges of inPt at a distance of 1 unit on the left side.\n\n\t\t\t\tlet v_trans_x, v_trans_y, shrink_by; // resulting translation vector for inPt\n\n\t\t\t\t// good reading for geometry algorithms (here: line-line intersection)\n\t\t\t\t// http://geomalgorithms.com/a05-_intersect-1.html\n\n\t\t\t\tconst v_prev_x = inPt.x - inPrev.x,\n\t\t\t\t\tv_prev_y = inPt.y - inPrev.y;\n\t\t\t\tconst v_next_x = inNext.x - inPt.x,\n\t\t\t\t\tv_next_y = inNext.y - inPt.y;\n\n\t\t\t\tconst v_prev_lensq = ( v_prev_x * v_prev_x + v_prev_y * v_prev_y );\n\n\t\t\t\t// check for collinear edges\n\t\t\t\tconst collinear0 = ( v_prev_x * v_next_y - v_prev_y * v_next_x );\n\n\t\t\t\tif ( Math.abs( collinear0 ) > Number.EPSILON ) {\n\n\t\t\t\t\t// not collinear\n\n\t\t\t\t\t// length of vectors for normalizing\n\n\t\t\t\t\tconst v_prev_len = Math.sqrt( v_prev_lensq );\n\t\t\t\t\tconst v_next_len = Math.sqrt( v_next_x * v_next_x + v_next_y * v_next_y );\n\n\t\t\t\t\t// shift adjacent points by unit vectors to the left\n\n\t\t\t\t\tconst ptPrevShift_x = ( inPrev.x - v_prev_y / v_prev_len );\n\t\t\t\t\tconst ptPrevShift_y = ( inPrev.y + v_prev_x / v_prev_len );\n\n\t\t\t\t\tconst ptNextShift_x = ( inNext.x - v_next_y / v_next_len );\n\t\t\t\t\tconst ptNextShift_y = ( inNext.y + v_next_x / v_next_len );\n\n\t\t\t\t\t// scaling factor for v_prev to intersection point\n\n\t\t\t\t\tconst sf = ( ( ptNextShift_x - ptPrevShift_x ) * v_next_y -\n\t\t\t\t\t\t\t( ptNextShift_y - ptPrevShift_y ) * v_next_x ) /\n\t\t\t\t\t\t( v_prev_x * v_next_y - v_prev_y * v_next_x );\n\n\t\t\t\t\t// vector from inPt to intersection point\n\n\t\t\t\t\tv_trans_x = ( ptPrevShift_x + v_prev_x * sf - inPt.x );\n\t\t\t\t\tv_trans_y = ( ptPrevShift_y + v_prev_y * sf - inPt.y );\n\n\t\t\t\t\t// Don't normalize!, otherwise sharp corners become ugly\n\t\t\t\t\t// but prevent crazy spikes\n\t\t\t\t\tconst v_trans_lensq = ( v_trans_x * v_trans_x + v_trans_y * v_trans_y );\n\t\t\t\t\tif ( v_trans_lensq <= 2 ) {\n\n\t\t\t\t\t\treturn new Vector2( v_trans_x, v_trans_y );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tshrink_by = Math.sqrt( v_trans_lensq / 2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// handle special case of collinear edges\n\n\t\t\t\t\tlet direction_eq = false; // assumes: opposite\n\n\t\t\t\t\tif ( v_prev_x > Number.EPSILON ) {\n\n\t\t\t\t\t\tif ( v_next_x > Number.EPSILON ) {\n\n\t\t\t\t\t\t\tdirection_eq = true;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( v_prev_x < - Number.EPSILON ) {\n\n\t\t\t\t\t\t\tif ( v_next_x < - Number.EPSILON ) {\n\n\t\t\t\t\t\t\t\tdirection_eq = true;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tif ( Math.sign( v_prev_y ) === Math.sign( v_next_y ) ) {\n\n\t\t\t\t\t\t\t\tdirection_eq = true;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( direction_eq ) {\n\n\t\t\t\t\t\t// console.log(\"Warning: lines are a straight sequence\");\n\t\t\t\t\t\tv_trans_x = - v_prev_y;\n\t\t\t\t\t\tv_trans_y = v_prev_x;\n\t\t\t\t\t\tshrink_by = Math.sqrt( v_prev_lensq );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// console.log(\"Warning: lines are a straight spike\");\n\t\t\t\t\t\tv_trans_x = v_prev_x;\n\t\t\t\t\t\tv_trans_y = v_prev_y;\n\t\t\t\t\t\tshrink_by = Math.sqrt( v_prev_lensq / 2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\treturn new Vector2( v_trans_x / shrink_by, v_trans_y / shrink_by );\n\n\t\t\t}\n\n\n\t\t\tconst contourMovements = [];\n\n\t\t\tfor ( let i = 0, il = contour.length, j = il - 1, k = i + 1; i < il; i ++, j ++, k ++ ) {\n\n\t\t\t\tif ( j === il ) j = 0;\n\t\t\t\tif ( k === il ) k = 0;\n\n\t\t\t\t// (j)---(i)---(k)\n\t\t\t\t// console.log('i,j,k', i, j , k)\n\n\t\t\t\tcontourMovements[ i ] = getBevelVec( contour[ i ], contour[ j ], contour[ k ] );\n\n\t\t\t}\n\n\t\t\tconst holesMovements = [];\n\t\t\tlet oneHoleMovements, verticesMovements = contourMovements.concat();\n\n\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\tconst ahole = holes[ h ];\n\n\t\t\t\toneHoleMovements = [];\n\n\t\t\t\tfor ( let i = 0, il = ahole.length, j = il - 1, k = i + 1; i < il; i ++, j ++, k ++ ) {\n\n\t\t\t\t\tif ( j === il ) j = 0;\n\t\t\t\t\tif ( k === il ) k = 0;\n\n\t\t\t\t\t// (j)---(i)---(k)\n\t\t\t\t\toneHoleMovements[ i ] = getBevelVec( ahole[ i ], ahole[ j ], ahole[ k ] );\n\n\t\t\t\t}\n\n\t\t\t\tholesMovements.push( oneHoleMovements );\n\t\t\t\tverticesMovements = verticesMovements.concat( oneHoleMovements );\n\n\t\t\t}\n\n\n\t\t\t// Loop bevelSegments, 1 for the front, 1 for the back\n\n\t\t\tfor ( let b = 0; b < bevelSegments; b ++ ) {\n\n\t\t\t\t//for ( b = bevelSegments; b > 0; b -- ) {\n\n\t\t\t\tconst t = b / bevelSegments;\n\t\t\t\tconst z = bevelThickness * Math.cos( t * Math.PI / 2 );\n\t\t\t\tconst bs = bevelSize * Math.sin( t * Math.PI / 2 ) + bevelOffset;\n\n\t\t\t\t// contract shape\n\n\t\t\t\tfor ( let i = 0, il = contour.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst vert = scalePt2( contour[ i ], contourMovements[ i ], bs );\n\n\t\t\t\t\tv( vert.x, vert.y, - z );\n\n\t\t\t\t}\n\n\t\t\t\t// expand holes\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\toneHoleMovements = holesMovements[ h ];\n\n\t\t\t\t\tfor ( let i = 0, il = ahole.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst vert = scalePt2( ahole[ i ], oneHoleMovements[ i ], bs );\n\n\t\t\t\t\t\tv( vert.x, vert.y, - z );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst bs = bevelSize + bevelOffset;\n\n\t\t\t// Back facing vertices\n\n\t\t\tfor ( let i = 0; i < vlen; i ++ ) {\n\n\t\t\t\tconst vert = bevelEnabled ? scalePt2( vertices[ i ], verticesMovements[ i ], bs ) : vertices[ i ];\n\n\t\t\t\tif ( ! extrudeByPath ) {\n\n\t\t\t\t\tv( vert.x, vert.y, 0 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// v( vert.x, vert.y + extrudePts[ 0 ].y, extrudePts[ 0 ].x );\n\n\t\t\t\t\tnormal.copy( splineTube.normals[ 0 ] ).multiplyScalar( vert.x );\n\t\t\t\t\tbinormal.copy( splineTube.binormals[ 0 ] ).multiplyScalar( vert.y );\n\n\t\t\t\t\tposition2.copy( extrudePts[ 0 ] ).add( normal ).add( binormal );\n\n\t\t\t\t\tv( position2.x, position2.y, position2.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Add stepped vertices...\n\t\t\t// Including front facing vertices\n\n\t\t\tfor ( let s = 1; s <= steps; s ++ ) {\n\n\t\t\t\tfor ( let i = 0; i < vlen; i ++ ) {\n\n\t\t\t\t\tconst vert = bevelEnabled ? scalePt2( vertices[ i ], verticesMovements[ i ], bs ) : vertices[ i ];\n\n\t\t\t\t\tif ( ! extrudeByPath ) {\n\n\t\t\t\t\t\tv( vert.x, vert.y, depth / steps * s );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// v( vert.x, vert.y + extrudePts[ s - 1 ].y, extrudePts[ s - 1 ].x );\n\n\t\t\t\t\t\tnormal.copy( splineTube.normals[ s ] ).multiplyScalar( vert.x );\n\t\t\t\t\t\tbinormal.copy( splineTube.binormals[ s ] ).multiplyScalar( vert.y );\n\n\t\t\t\t\t\tposition2.copy( extrudePts[ s ] ).add( normal ).add( binormal );\n\n\t\t\t\t\t\tv( position2.x, position2.y, position2.z );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\n\t\t\t// Add bevel segments planes\n\n\t\t\t//for ( b = 1; b <= bevelSegments; b ++ ) {\n\t\t\tfor ( let b = bevelSegments - 1; b >= 0; b -- ) {\n\n\t\t\t\tconst t = b / bevelSegments;\n\t\t\t\tconst z = bevelThickness * Math.cos( t * Math.PI / 2 );\n\t\t\t\tconst bs = bevelSize * Math.sin( t * Math.PI / 2 ) + bevelOffset;\n\n\t\t\t\t// contract shape\n\n\t\t\t\tfor ( let i = 0, il = contour.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst vert = scalePt2( contour[ i ], contourMovements[ i ], bs );\n\t\t\t\t\tv( vert.x, vert.y, depth + z );\n\n\t\t\t\t}\n\n\t\t\t\t// expand holes\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\toneHoleMovements = holesMovements[ h ];\n\n\t\t\t\t\tfor ( let i = 0, il = ahole.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst vert = scalePt2( ahole[ i ], oneHoleMovements[ i ], bs );\n\n\t\t\t\t\t\tif ( ! extrudeByPath ) {\n\n\t\t\t\t\t\t\tv( vert.x, vert.y, depth + z );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tv( vert.x, vert.y + extrudePts[ steps - 1 ].y, extrudePts[ steps - 1 ].x + z );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t/* Faces */\n\n\t\t\t// Top and bottom faces\n\n\t\t\tbuildLidFaces();\n\n\t\t\t// Sides faces\n\n\t\t\tbuildSideFaces();\n\n\n\t\t\t///// Internal functions\n\n\t\t\tfunction buildLidFaces() {\n\n\t\t\t\tconst start = verticesArray.length / 3;\n\n\t\t\t\tif ( bevelEnabled ) {\n\n\t\t\t\t\tlet layer = 0; // steps + 1\n\t\t\t\t\tlet offset = vlen * layer;\n\n\t\t\t\t\t// Bottom faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 2 ] + offset, face[ 1 ] + offset, face[ 0 ] + offset );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tlayer = steps + bevelSegments * 2;\n\t\t\t\t\toffset = vlen * layer;\n\n\t\t\t\t\t// Top faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 0 ] + offset, face[ 1 ] + offset, face[ 2 ] + offset );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Bottom faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 2 ], face[ 1 ], face[ 0 ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Top faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 0 ] + vlen * steps, face[ 1 ] + vlen * steps, face[ 2 ] + vlen * steps );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tscope.addGroup( start, verticesArray.length / 3 - start, 0 );\n\n\t\t\t}\n\n\t\t\t// Create faces for the z-sides of the shape\n\n\t\t\tfunction buildSideFaces() {\n\n\t\t\t\tconst start = verticesArray.length / 3;\n\t\t\t\tlet layeroffset = 0;\n\t\t\t\tsidewalls( contour, layeroffset );\n\t\t\t\tlayeroffset += contour.length;\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\tsidewalls( ahole, layeroffset );\n\n\t\t\t\t\t//, true\n\t\t\t\t\tlayeroffset += ahole.length;\n\n\t\t\t\t}\n\n\n\t\t\t\tscope.addGroup( start, verticesArray.length / 3 - start, 1 );\n\n\n\t\t\t}\n\n\t\t\tfunction sidewalls( contour, layeroffset ) {\n\n\t\t\t\tlet i = contour.length;\n\n\t\t\t\twhile ( -- i >= 0 ) {\n\n\t\t\t\t\tconst j = i;\n\t\t\t\t\tlet k = i - 1;\n\t\t\t\t\tif ( k < 0 ) k = contour.length - 1;\n\n\t\t\t\t\t//console.log('b', i,j, i-1, k,vertices.length);\n\n\t\t\t\t\tfor ( let s = 0, sl = ( steps + bevelSegments * 2 ); s < sl; s ++ ) {\n\n\t\t\t\t\t\tconst slen1 = vlen * s;\n\t\t\t\t\t\tconst slen2 = vlen * ( s + 1 );\n\n\t\t\t\t\t\tconst a = layeroffset + j + slen1,\n\t\t\t\t\t\t\tb = layeroffset + k + slen1,\n\t\t\t\t\t\t\tc = layeroffset + k + slen2,\n\t\t\t\t\t\t\td = layeroffset + j + slen2;\n\n\t\t\t\t\t\tf4( a, b, c, d );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tfunction v( x, y, z ) {\n\n\t\t\t\tplaceholder.push( x );\n\t\t\t\tplaceholder.push( y );\n\t\t\t\tplaceholder.push( z );\n\n\t\t\t}\n\n\n\t\t\tfunction f3( a, b, c ) {\n\n\t\t\t\taddVertex( a );\n\t\t\t\taddVertex( b );\n\t\t\t\taddVertex( c );\n\n\t\t\t\tconst nextIndex = verticesArray.length / 3;\n\t\t\t\tconst uvs = uvgen.generateTopUV( scope, verticesArray, nextIndex - 3, nextIndex - 2, nextIndex - 1 );\n\n\t\t\t\taddUV( uvs[ 0 ] );\n\t\t\t\taddUV( uvs[ 1 ] );\n\t\t\t\taddUV( uvs[ 2 ] );\n\n\t\t\t}\n\n\t\t\tfunction f4( a, b, c, d ) {\n\n\t\t\t\taddVertex( a );\n\t\t\t\taddVertex( b );\n\t\t\t\taddVertex( d );\n\n\t\t\t\taddVertex( b );\n\t\t\t\taddVertex( c );\n\t\t\t\taddVertex( d );\n\n\n\t\t\t\tconst nextIndex = verticesArray.length / 3;\n\t\t\t\tconst uvs = uvgen.generateSideWallUV( scope, verticesArray, nextIndex - 6, nextIndex - 3, nextIndex - 2, nextIndex - 1 );\n\n\t\t\t\taddUV( uvs[ 0 ] );\n\t\t\t\taddUV( uvs[ 1 ] );\n\t\t\t\taddUV( uvs[ 3 ] );\n\n\t\t\t\taddUV( uvs[ 1 ] );\n\t\t\t\taddUV( uvs[ 2 ] );\n\t\t\t\taddUV( uvs[ 3 ] );\n\n\t\t\t}\n\n\t\t\tfunction addVertex( index ) {\n\n\t\t\t\tverticesArray.push( placeholder[ index * 3 + 0 ] );\n\t\t\t\tverticesArray.push( placeholder[ index * 3 + 1 ] );\n\t\t\t\tverticesArray.push( placeholder[ index * 3 + 2 ] );\n\n\t\t\t}\n\n\n\t\t\tfunction addUV( vector2 ) {\n\n\t\t\t\tuvArray.push( vector2.x );\n\t\t\t\tuvArray.push( vector2.y );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tconst shapes = this.parameters.shapes;\n\t\tconst options = this.parameters.options;\n\n\t\treturn toJSON$1( shapes, options, data );\n\n\t}\n\n\tstatic fromJSON( data, shapes ) {\n\n\t\tconst geometryShapes = [];\n\n\t\tfor ( let j = 0, jl = data.shapes.length; j < jl; j ++ ) {\n\n\t\t\tconst shape = shapes[ data.shapes[ j ] ];\n\n\t\t\tgeometryShapes.push( shape );\n\n\t\t}\n\n\t\tconst extrudePath = data.options.extrudePath;\n\n\t\tif ( extrudePath !== undefined ) {\n\n\t\t\tdata.options.extrudePath = new Curves[ extrudePath.type ]().fromJSON( extrudePath );\n\n\t\t}\n\n\t\treturn new ExtrudeGeometry( geometryShapes, data.options );\n\n\t}\n\n}\n\nconst WorldUVGenerator = {\n\n\tgenerateTopUV: function ( geometry, vertices, indexA, indexB, indexC ) {\n\n\t\tconst a_x = vertices[ indexA * 3 ];\n\t\tconst a_y = vertices[ indexA * 3 + 1 ];\n\t\tconst b_x = vertices[ indexB * 3 ];\n\t\tconst b_y = vertices[ indexB * 3 + 1 ];\n\t\tconst c_x = vertices[ indexC * 3 ];\n\t\tconst c_y = vertices[ indexC * 3 + 1 ];\n\n\t\treturn [\n\t\t\tnew Vector2( a_x, a_y ),\n\t\t\tnew Vector2( b_x, b_y ),\n\t\t\tnew Vector2( c_x, c_y )\n\t\t];\n\n\t},\n\n\tgenerateSideWallUV: function ( geometry, vertices, indexA, indexB, indexC, indexD ) {\n\n\t\tconst a_x = vertices[ indexA * 3 ];\n\t\tconst a_y = vertices[ indexA * 3 + 1 ];\n\t\tconst a_z = vertices[ indexA * 3 + 2 ];\n\t\tconst b_x = vertices[ indexB * 3 ];\n\t\tconst b_y = vertices[ indexB * 3 + 1 ];\n\t\tconst b_z = vertices[ indexB * 3 + 2 ];\n\t\tconst c_x = vertices[ indexC * 3 ];\n\t\tconst c_y = vertices[ indexC * 3 + 1 ];\n\t\tconst c_z = vertices[ indexC * 3 + 2 ];\n\t\tconst d_x = vertices[ indexD * 3 ];\n\t\tconst d_y = vertices[ indexD * 3 + 1 ];\n\t\tconst d_z = vertices[ indexD * 3 + 2 ];\n\n\t\tif ( Math.abs( a_y - b_y ) < Math.abs( a_x - b_x ) ) {\n\n\t\t\treturn [\n\t\t\t\tnew Vector2( a_x, 1 - a_z ),\n\t\t\t\tnew Vector2( b_x, 1 - b_z ),\n\t\t\t\tnew Vector2( c_x, 1 - c_z ),\n\t\t\t\tnew Vector2( d_x, 1 - d_z )\n\t\t\t];\n\n\t\t} else {\n\n\t\t\treturn [\n\t\t\t\tnew Vector2( a_y, 1 - a_z ),\n\t\t\t\tnew Vector2( b_y, 1 - b_z ),\n\t\t\t\tnew Vector2( c_y, 1 - c_z ),\n\t\t\t\tnew Vector2( d_y, 1 - d_z )\n\t\t\t];\n\n\t\t}\n\n\t}\n\n};\n\nfunction toJSON$1( shapes, options, data ) {\n\n\tdata.shapes = [];\n\n\tif ( Array.isArray( shapes ) ) {\n\n\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\tconst shape = shapes[ i ];\n\n\t\t\tdata.shapes.push( shape.uuid );\n\n\t\t}\n\n\t} else {\n\n\t\tdata.shapes.push( shapes.uuid );\n\n\t}\n\n\tif ( options.extrudePath !== undefined ) data.options.extrudePath = options.extrudePath.toJSON();\n\n\treturn data;\n\n}\n\nclass IcosahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst t = ( 1 + Math.sqrt( 5 ) ) / 2;\n\n\t\tconst vertices = [\n\t\t\t- 1, t, 0, \t1, t, 0, \t- 1, - t, 0, \t1, - t, 0,\n\t\t\t0, - 1, t, \t0, 1, t,\t0, - 1, - t, \t0, 1, - t,\n\t\t\tt, 0, - 1, \tt, 0, 1, \t- t, 0, - 1, \t- t, 0, 1\n\t\t];\n\n\t\tconst indices = [\n\t\t\t0, 11, 5, \t0, 5, 1, \t0, 1, 7, \t0, 7, 10, \t0, 10, 11,\n\t\t\t1, 5, 9, \t5, 11, 4,\t11, 10, 2,\t10, 7, 6,\t7, 1, 8,\n\t\t\t3, 9, 4, \t3, 4, 2,\t3, 2, 6,\t3, 6, 8,\t3, 8, 9,\n\t\t\t4, 9, 5, \t2, 4, 11,\t6, 2, 10,\t8, 6, 7,\t9, 8, 1\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'IcosahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new IcosahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nclass LatheGeometry extends BufferGeometry {\n\n\tconstructor( points = [ new Vector2( 0, 0.5 ), new Vector2( 0.5, 0 ), new Vector2( 0, - 0.5 ) ], segments = 12, phiStart = 0, phiLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'LatheGeometry';\n\n\t\tthis.parameters = {\n\t\t\tpoints: points,\n\t\t\tsegments: segments,\n\t\t\tphiStart: phiStart,\n\t\t\tphiLength: phiLength\n\t\t};\n\n\t\tsegments = Math.floor( segments );\n\n\t\t// clamp phiLength so it's in range of [ 0, 2PI ]\n\n\t\tphiLength = clamp( phiLength, 0, Math.PI * 2 );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst uvs = [];\n\t\tconst initNormals = [];\n\t\tconst normals = [];\n\n\t\t// helper variables\n\n\t\tconst inverseSegments = 1.0 / segments;\n\t\tconst vertex = new Vector3();\n\t\tconst uv = new Vector2();\n\t\tconst normal = new Vector3();\n\t\tconst curNormal = new Vector3();\n\t\tconst prevNormal = new Vector3();\n\t\tlet dx = 0;\n\t\tlet dy = 0;\n\n\t\t// pre-compute normals for initial \"meridian\"\n\n\t\tfor ( let j = 0; j <= ( points.length - 1 ); j ++ ) {\n\n\t\t\tswitch ( j ) {\n\n\t\t\t\tcase 0:\t\t\t\t// special handling for 1st vertex on path\n\n\t\t\t\t\tdx = points[ j + 1 ].x - points[ j ].x;\n\t\t\t\t\tdy = points[ j + 1 ].y - points[ j ].y;\n\n\t\t\t\t\tnormal.x = dy * 1.0;\n\t\t\t\t\tnormal.y = - dx;\n\t\t\t\t\tnormal.z = dy * 0.0;\n\n\t\t\t\t\tprevNormal.copy( normal );\n\n\t\t\t\t\tnormal.normalize();\n\n\t\t\t\t\tinitNormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ( points.length - 1 ):\t// special handling for last Vertex on path\n\n\t\t\t\t\tinitNormals.push( prevNormal.x, prevNormal.y, prevNormal.z );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\t\t\t// default handling for all vertices in between\n\n\t\t\t\t\tdx = points[ j + 1 ].x - points[ j ].x;\n\t\t\t\t\tdy = points[ j + 1 ].y - points[ j ].y;\n\n\t\t\t\t\tnormal.x = dy * 1.0;\n\t\t\t\t\tnormal.y = - dx;\n\t\t\t\t\tnormal.z = dy * 0.0;\n\n\t\t\t\t\tcurNormal.copy( normal );\n\n\t\t\t\t\tnormal.x += prevNormal.x;\n\t\t\t\t\tnormal.y += prevNormal.y;\n\t\t\t\t\tnormal.z += prevNormal.z;\n\n\t\t\t\t\tnormal.normalize();\n\n\t\t\t\t\tinitNormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t\tprevNormal.copy( curNormal );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// generate vertices, uvs and normals\n\n\t\tfor ( let i = 0; i <= segments; i ++ ) {\n\n\t\t\tconst phi = phiStart + i * inverseSegments * phiLength;\n\n\t\t\tconst sin = Math.sin( phi );\n\t\t\tconst cos = Math.cos( phi );\n\n\t\t\tfor ( let j = 0; j <= ( points.length - 1 ); j ++ ) {\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = points[ j ].x * sin;\n\t\t\t\tvertex.y = points[ j ].y;\n\t\t\t\tvertex.z = points[ j ].x * cos;\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuv.x = i / segments;\n\t\t\t\tuv.y = j / ( points.length - 1 );\n\n\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t\t// normal\n\n\t\t\t\tconst x = initNormals[ 3 * j + 0 ] * sin;\n\t\t\t\tconst y = initNormals[ 3 * j + 1 ];\n\t\t\t\tconst z = initNormals[ 3 * j + 0 ] * cos;\n\n\t\t\t\tnormals.push( x, y, z );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let i = 0; i < segments; i ++ ) {\n\n\t\t\tfor ( let j = 0; j < ( points.length - 1 ); j ++ ) {\n\n\t\t\t\tconst base = j + i * points.length;\n\n\t\t\t\tconst a = base;\n\t\t\t\tconst b = base + points.length;\n\t\t\t\tconst c = base + points.length + 1;\n\t\t\t\tconst d = base + 1;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( c, d, b );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new LatheGeometry( data.points, data.segments, data.phiStart, data.phiLength );\n\n\t}\n\n}\n\nclass OctahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst vertices = [\n\t\t\t1, 0, 0, \t- 1, 0, 0,\t0, 1, 0,\n\t\t\t0, - 1, 0, \t0, 0, 1,\t0, 0, - 1\n\t\t];\n\n\t\tconst indices = [\n\t\t\t0, 2, 4,\t0, 4, 3,\t0, 3, 5,\n\t\t\t0, 5, 2,\t1, 2, 5,\t1, 5, 3,\n\t\t\t1, 3, 4,\t1, 4, 2\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'OctahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new OctahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nclass RingGeometry extends BufferGeometry {\n\n\tconstructor( innerRadius = 0.5, outerRadius = 1, thetaSegments = 8, phiSegments = 1, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'RingGeometry';\n\n\t\tthis.parameters = {\n\t\t\tinnerRadius: innerRadius,\n\t\t\touterRadius: outerRadius,\n\t\t\tthetaSegments: thetaSegments,\n\t\t\tphiSegments: phiSegments,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\tthetaSegments = Math.max( 3, thetaSegments );\n\t\tphiSegments = Math.max( 1, phiSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// some helper variables\n\n\t\tlet radius = innerRadius;\n\t\tconst radiusStep = ( ( outerRadius - innerRadius ) / phiSegments );\n\t\tconst vertex = new Vector3();\n\t\tconst uv = new Vector2();\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let j = 0; j <= phiSegments; j ++ ) {\n\n\t\t\tfor ( let i = 0; i <= thetaSegments; i ++ ) {\n\n\t\t\t\t// values are generate from the inside of the ring to the outside\n\n\t\t\t\tconst segment = thetaStart + i / thetaSegments * thetaLength;\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = radius * Math.cos( segment );\n\t\t\t\tvertex.y = radius * Math.sin( segment );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormals.push( 0, 0, 1 );\n\n\t\t\t\t// uv\n\n\t\t\t\tuv.x = ( vertex.x / outerRadius + 1 ) / 2;\n\t\t\t\tuv.y = ( vertex.y / outerRadius + 1 ) / 2;\n\n\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t}\n\n\t\t\t// increase the radius for next row of vertices\n\n\t\t\tradius += radiusStep;\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let j = 0; j < phiSegments; j ++ ) {\n\n\t\t\tconst thetaSegmentLevel = j * ( thetaSegments + 1 );\n\n\t\t\tfor ( let i = 0; i < thetaSegments; i ++ ) {\n\n\t\t\t\tconst segment = i + thetaSegmentLevel;\n\n\t\t\t\tconst a = segment;\n\t\t\t\tconst b = segment + thetaSegments + 1;\n\t\t\t\tconst c = segment + thetaSegments + 2;\n\t\t\t\tconst d = segment + 1;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new RingGeometry( data.innerRadius, data.outerRadius, data.thetaSegments, data.phiSegments, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass ShapeGeometry extends BufferGeometry {\n\n\tconstructor( shapes = new Shape( [ new Vector2( 0, 0.5 ), new Vector2( - 0.5, - 0.5 ), new Vector2( 0.5, - 0.5 ) ] ), curveSegments = 12 ) {\n\n\t\tsuper();\n\t\tthis.type = 'ShapeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tshapes: shapes,\n\t\t\tcurveSegments: curveSegments\n\t\t};\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet groupStart = 0;\n\t\tlet groupCount = 0;\n\n\t\t// allow single and array values for \"shapes\" parameter\n\n\t\tif ( Array.isArray( shapes ) === false ) {\n\n\t\t\taddShape( shapes );\n\n\t\t} else {\n\n\t\t\tfor ( let i = 0; i < shapes.length; i ++ ) {\n\n\t\t\t\taddShape( shapes[ i ] );\n\n\t\t\t\tthis.addGroup( groupStart, groupCount, i ); // enables MultiMaterial support\n\n\t\t\t\tgroupStart += groupCount;\n\t\t\t\tgroupCount = 0;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\n\t\t// helper functions\n\n\t\tfunction addShape( shape ) {\n\n\t\t\tconst indexOffset = vertices.length / 3;\n\t\t\tconst points = shape.extractPoints( curveSegments );\n\n\t\t\tlet shapeVertices = points.shape;\n\t\t\tconst shapeHoles = points.holes;\n\n\t\t\t// check direction of vertices\n\n\t\t\tif ( ShapeUtils.isClockWise( shapeVertices ) === false ) {\n\n\t\t\t\tshapeVertices = shapeVertices.reverse();\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0, l = shapeHoles.length; i < l; i ++ ) {\n\n\t\t\t\tconst shapeHole = shapeHoles[ i ];\n\n\t\t\t\tif ( ShapeUtils.isClockWise( shapeHole ) === true ) {\n\n\t\t\t\t\tshapeHoles[ i ] = shapeHole.reverse();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst faces = ShapeUtils.triangulateShape( shapeVertices, shapeHoles );\n\n\t\t\t// join vertices of inner and outer paths to a single array\n\n\t\t\tfor ( let i = 0, l = shapeHoles.length; i < l; i ++ ) {\n\n\t\t\t\tconst shapeHole = shapeHoles[ i ];\n\t\t\t\tshapeVertices = shapeVertices.concat( shapeHole );\n\n\t\t\t}\n\n\t\t\t// vertices, normals, uvs\n\n\t\t\tfor ( let i = 0, l = shapeVertices.length; i < l; i ++ ) {\n\n\t\t\t\tconst vertex = shapeVertices[ i ];\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, 0 );\n\t\t\t\tnormals.push( 0, 0, 1 );\n\t\t\t\tuvs.push( vertex.x, vertex.y ); // world uvs\n\n\t\t\t}\n\n\t\t\t// incides\n\n\t\t\tfor ( let i = 0, l = faces.length; i < l; i ++ ) {\n\n\t\t\t\tconst face = faces[ i ];\n\n\t\t\t\tconst a = face[ 0 ] + indexOffset;\n\t\t\t\tconst b = face[ 1 ] + indexOffset;\n\t\t\t\tconst c = face[ 2 ] + indexOffset;\n\n\t\t\t\tindices.push( a, b, c );\n\t\t\t\tgroupCount += 3;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tconst shapes = this.parameters.shapes;\n\n\t\treturn toJSON( shapes, data );\n\n\t}\n\n\tstatic fromJSON( data, shapes ) {\n\n\t\tconst geometryShapes = [];\n\n\t\tfor ( let j = 0, jl = data.shapes.length; j < jl; j ++ ) {\n\n\t\t\tconst shape = shapes[ data.shapes[ j ] ];\n\n\t\t\tgeometryShapes.push( shape );\n\n\t\t}\n\n\t\treturn new ShapeGeometry( geometryShapes, data.curveSegments );\n\n\t}\n\n}\n\nfunction toJSON( shapes, data ) {\n\n\tdata.shapes = [];\n\n\tif ( Array.isArray( shapes ) ) {\n\n\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\tconst shape = shapes[ i ];\n\n\t\t\tdata.shapes.push( shape.uuid );\n\n\t\t}\n\n\t} else {\n\n\t\tdata.shapes.push( shapes.uuid );\n\n\t}\n\n\treturn data;\n\n}\n\nclass SphereGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, widthSegments = 32, heightSegments = 16, phiStart = 0, phiLength = Math.PI * 2, thetaStart = 0, thetaLength = Math.PI ) {\n\n\t\tsuper();\n\t\tthis.type = 'SphereGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\tphiStart: phiStart,\n\t\t\tphiLength: phiLength,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\twidthSegments = Math.max( 3, Math.floor( widthSegments ) );\n\t\theightSegments = Math.max( 2, Math.floor( heightSegments ) );\n\n\t\tconst thetaEnd = Math.min( thetaStart + thetaLength, Math.PI );\n\n\t\tlet index = 0;\n\t\tconst grid = [];\n\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let iy = 0; iy <= heightSegments; iy ++ ) {\n\n\t\t\tconst verticesRow = [];\n\n\t\t\tconst v = iy / heightSegments;\n\n\t\t\t// special case for the poles\n\n\t\t\tlet uOffset = 0;\n\n\t\t\tif ( iy == 0 && thetaStart == 0 ) {\n\n\t\t\t\tuOffset = 0.5 / widthSegments;\n\n\t\t\t} else if ( iy == heightSegments && thetaEnd == Math.PI ) {\n\n\t\t\t\tuOffset = - 0.5 / widthSegments;\n\n\t\t\t}\n\n\t\t\tfor ( let ix = 0; ix <= widthSegments; ix ++ ) {\n\n\t\t\t\tconst u = ix / widthSegments;\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = - radius * Math.cos( phiStart + u * phiLength ) * Math.sin( thetaStart + v * thetaLength );\n\t\t\t\tvertex.y = radius * Math.cos( thetaStart + v * thetaLength );\n\t\t\t\tvertex.z = radius * Math.sin( phiStart + u * phiLength ) * Math.sin( thetaStart + v * thetaLength );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormal.copy( vertex ).normalize();\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( u + uOffset, 1 - v );\n\n\t\t\t\tverticesRow.push( index ++ );\n\n\t\t\t}\n\n\t\t\tgrid.push( verticesRow );\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let iy = 0; iy < heightSegments; iy ++ ) {\n\n\t\t\tfor ( let ix = 0; ix < widthSegments; ix ++ ) {\n\n\t\t\t\tconst a = grid[ iy ][ ix + 1 ];\n\t\t\t\tconst b = grid[ iy ][ ix ];\n\t\t\t\tconst c = grid[ iy + 1 ][ ix ];\n\t\t\t\tconst d = grid[ iy + 1 ][ ix + 1 ];\n\n\t\t\t\tif ( iy !== 0 || thetaStart > 0 ) indices.push( a, b, d );\n\t\t\t\tif ( iy !== heightSegments - 1 || thetaEnd < Math.PI ) indices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new SphereGeometry( data.radius, data.widthSegments, data.heightSegments, data.phiStart, data.phiLength, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass TetrahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst vertices = [\n\t\t\t1, 1, 1, \t- 1, - 1, 1, \t- 1, 1, - 1, \t1, - 1, - 1\n\t\t];\n\n\t\tconst indices = [\n\t\t\t2, 1, 0, \t0, 3, 2,\t1, 3, 0,\t2, 3, 1\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'TetrahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new TetrahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nclass TorusGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, tube = 0.4, radialSegments = 8, tubularSegments = 6, arc = Math.PI * 2 ) {\n\n\t\tsuper();\n\t\tthis.type = 'TorusGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\ttube: tube,\n\t\t\tradialSegments: radialSegments,\n\t\t\ttubularSegments: tubularSegments,\n\t\t\tarc: arc\n\t\t};\n\n\t\tradialSegments = Math.floor( radialSegments );\n\t\ttubularSegments = Math.floor( tubularSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tconst center = new Vector3();\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let j = 0; j <= radialSegments; j ++ ) {\n\n\t\t\tfor ( let i = 0; i <= tubularSegments; i ++ ) {\n\n\t\t\t\tconst u = i / tubularSegments * arc;\n\t\t\t\tconst v = j / radialSegments * Math.PI * 2;\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = ( radius + tube * Math.cos( v ) ) * Math.cos( u );\n\t\t\t\tvertex.y = ( radius + tube * Math.cos( v ) ) * Math.sin( u );\n\t\t\t\tvertex.z = tube * Math.sin( v );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tcenter.x = radius * Math.cos( u );\n\t\t\t\tcenter.y = radius * Math.sin( u );\n\t\t\t\tnormal.subVectors( vertex, center ).normalize();\n\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( i / tubularSegments );\n\t\t\t\tuvs.push( j / radialSegments );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// generate indices\n\n\t\tfor ( let j = 1; j <= radialSegments; j ++ ) {\n\n\t\t\tfor ( let i = 1; i <= tubularSegments; i ++ ) {\n\n\t\t\t\t// indices\n\n\t\t\t\tconst a = ( tubularSegments + 1 ) * j + i - 1;\n\t\t\t\tconst b = ( tubularSegments + 1 ) * ( j - 1 ) + i - 1;\n\t\t\t\tconst c = ( tubularSegments + 1 ) * ( j - 1 ) + i;\n\t\t\t\tconst d = ( tubularSegments + 1 ) * j + i;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new TorusGeometry( data.radius, data.tube, data.radialSegments, data.tubularSegments, data.arc );\n\n\t}\n\n}\n\nclass TorusKnotGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, tube = 0.4, tubularSegments = 64, radialSegments = 8, p = 2, q = 3 ) {\n\n\t\tsuper();\n\t\tthis.type = 'TorusKnotGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\ttube: tube,\n\t\t\ttubularSegments: tubularSegments,\n\t\t\tradialSegments: radialSegments,\n\t\t\tp: p,\n\t\t\tq: q\n\t\t};\n\n\t\ttubularSegments = Math.floor( tubularSegments );\n\t\tradialSegments = Math.floor( radialSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\n\t\tconst P1 = new Vector3();\n\t\tconst P2 = new Vector3();\n\n\t\tconst B = new Vector3();\n\t\tconst T = new Vector3();\n\t\tconst N = new Vector3();\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let i = 0; i <= tubularSegments; ++ i ) {\n\n\t\t\t// the radian \"u\" is used to calculate the position on the torus curve of the current tubular segement\n\n\t\t\tconst u = i / tubularSegments * p * Math.PI * 2;\n\n\t\t\t// now we calculate two points. P1 is our current position on the curve, P2 is a little farther ahead.\n\t\t\t// these points are used to create a special \"coordinate space\", which is necessary to calculate the correct vertex positions\n\n\t\t\tcalculatePositionOnCurve( u, p, q, radius, P1 );\n\t\t\tcalculatePositionOnCurve( u + 0.01, p, q, radius, P2 );\n\n\t\t\t// calculate orthonormal basis\n\n\t\t\tT.subVectors( P2, P1 );\n\t\t\tN.addVectors( P2, P1 );\n\t\t\tB.crossVectors( T, N );\n\t\t\tN.crossVectors( B, T );\n\n\t\t\t// normalize B, N. T can be ignored, we don't use it\n\n\t\t\tB.normalize();\n\t\t\tN.normalize();\n\n\t\t\tfor ( let j = 0; j <= radialSegments; ++ j ) {\n\n\t\t\t\t// now calculate the vertices. they are nothing more than an extrusion of the torus curve.\n\t\t\t\t// because we extrude a shape in the xy-plane, there is no need to calculate a z-value.\n\n\t\t\t\tconst v = j / radialSegments * Math.PI * 2;\n\t\t\t\tconst cx = - tube * Math.cos( v );\n\t\t\t\tconst cy = tube * Math.sin( v );\n\n\t\t\t\t// now calculate the final vertex position.\n\t\t\t\t// first we orient the extrusion with our basis vectos, then we add it to the current position on the curve\n\n\t\t\t\tvertex.x = P1.x + ( cx * N.x + cy * B.x );\n\t\t\t\tvertex.y = P1.y + ( cx * N.y + cy * B.y );\n\t\t\t\tvertex.z = P1.z + ( cx * N.z + cy * B.z );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal (P1 is always the center/origin of the extrusion, thus we can use it to calculate the normal)\n\n\t\t\t\tnormal.subVectors( vertex, P1 ).normalize();\n\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( i / tubularSegments );\n\t\t\t\tuvs.push( j / radialSegments );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// generate indices\n\n\t\tfor ( let j = 1; j <= tubularSegments; j ++ ) {\n\n\t\t\tfor ( let i = 1; i <= radialSegments; i ++ ) {\n\n\t\t\t\t// indices\n\n\t\t\t\tconst a = ( radialSegments + 1 ) * ( j - 1 ) + ( i - 1 );\n\t\t\t\tconst b = ( radialSegments + 1 ) * j + ( i - 1 );\n\t\t\t\tconst c = ( radialSegments + 1 ) * j + i;\n\t\t\t\tconst d = ( radialSegments + 1 ) * ( j - 1 ) + i;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\t// this function calculates the current position on the torus curve\n\n\t\tfunction calculatePositionOnCurve( u, p, q, radius, position ) {\n\n\t\t\tconst cu = Math.cos( u );\n\t\t\tconst su = Math.sin( u );\n\t\t\tconst quOverP = q / p * u;\n\t\t\tconst cs = Math.cos( quOverP );\n\n\t\t\tposition.x = radius * ( 2 + cs ) * 0.5 * cu;\n\t\t\tposition.y = radius * ( 2 + cs ) * su * 0.5;\n\t\t\tposition.z = radius * Math.sin( quOverP ) * 0.5;\n\n\t\t}\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new TorusKnotGeometry( data.radius, data.tube, data.tubularSegments, data.radialSegments, data.p, data.q );\n\n\t}\n\n}\n\nclass TubeGeometry extends BufferGeometry {\n\n\tconstructor( path = new QuadraticBezierCurve3( new Vector3( - 1, - 1, 0 ), new Vector3( - 1, 1, 0 ), new Vector3( 1, 1, 0 ) ), tubularSegments = 64, radius = 1, radialSegments = 8, closed = false ) {\n\n\t\tsuper();\n\t\tthis.type = 'TubeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tpath: path,\n\t\t\ttubularSegments: tubularSegments,\n\t\t\tradius: radius,\n\t\t\tradialSegments: radialSegments,\n\t\t\tclosed: closed\n\t\t};\n\n\t\tconst frames = path.computeFrenetFrames( tubularSegments, closed );\n\n\t\t// expose internals\n\n\t\tthis.tangents = frames.tangents;\n\t\tthis.normals = frames.normals;\n\t\tthis.binormals = frames.binormals;\n\n\t\t// helper variables\n\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\t\tconst uv = new Vector2();\n\t\tlet P = new Vector3();\n\n\t\t// buffer\n\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\t\tconst indices = [];\n\n\t\t// create buffer data\n\n\t\tgenerateBufferData();\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\t// functions\n\n\t\tfunction generateBufferData() {\n\n\t\t\tfor ( let i = 0; i < tubularSegments; i ++ ) {\n\n\t\t\t\tgenerateSegment( i );\n\n\t\t\t}\n\n\t\t\t// if the geometry is not closed, generate the last row of vertices and normals\n\t\t\t// at the regular position on the given path\n\t\t\t//\n\t\t\t// if the geometry is closed, duplicate the first row of vertices and normals (uvs will differ)\n\n\t\t\tgenerateSegment( ( closed === false ) ? tubularSegments : 0 );\n\n\t\t\t// uvs are generated in a separate function.\n\t\t\t// this makes it easy compute correct values for closed geometries\n\n\t\t\tgenerateUVs();\n\n\t\t\t// finally create faces\n\n\t\t\tgenerateIndices();\n\n\t\t}\n\n\t\tfunction generateSegment( i ) {\n\n\t\t\t// we use getPointAt to sample evenly distributed points from the given path\n\n\t\t\tP = path.getPointAt( i / tubularSegments, P );\n\n\t\t\t// retrieve corresponding normal and binormal\n\n\t\t\tconst N = frames.normals[ i ];\n\t\t\tconst B = frames.binormals[ i ];\n\n\t\t\t// generate normals and vertices for the current segment\n\n\t\t\tfor ( let j = 0; j <= radialSegments; j ++ ) {\n\n\t\t\t\tconst v = j / radialSegments * Math.PI * 2;\n\n\t\t\t\tconst sin = Math.sin( v );\n\t\t\t\tconst cos = - Math.cos( v );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormal.x = ( cos * N.x + sin * B.x );\n\t\t\t\tnormal.y = ( cos * N.y + sin * B.y );\n\t\t\t\tnormal.z = ( cos * N.z + sin * B.z );\n\t\t\t\tnormal.normalize();\n\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = P.x + radius * normal.x;\n\t\t\t\tvertex.y = P.y + radius * normal.y;\n\t\t\t\tvertex.z = P.z + radius * normal.z;\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction generateIndices() {\n\n\t\t\tfor ( let j = 1; j <= tubularSegments; j ++ ) {\n\n\t\t\t\tfor ( let i = 1; i <= radialSegments; i ++ ) {\n\n\t\t\t\t\tconst a = ( radialSegments + 1 ) * ( j - 1 ) + ( i - 1 );\n\t\t\t\t\tconst b = ( radialSegments + 1 ) * j + ( i - 1 );\n\t\t\t\t\tconst c = ( radialSegments + 1 ) * j + i;\n\t\t\t\t\tconst d = ( radialSegments + 1 ) * ( j - 1 ) + i;\n\n\t\t\t\t\t// faces\n\n\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\tindices.push( b, c, d );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction generateUVs() {\n\n\t\t\tfor ( let i = 0; i <= tubularSegments; i ++ ) {\n\n\t\t\t\tfor ( let j = 0; j <= radialSegments; j ++ ) {\n\n\t\t\t\t\tuv.x = i / tubularSegments;\n\t\t\t\t\tuv.y = j / radialSegments;\n\n\t\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.path = this.parameters.path.toJSON();\n\n\t\treturn data;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\t// This only works for built-in curves (e.g. CatmullRomCurve3).\n\t\t// User defined curves or instances of CurvePath will not be deserialized.\n\t\treturn new TubeGeometry(\n\t\t\tnew Curves[ data.path.type ]().fromJSON( data.path ),\n\t\t\tdata.tubularSegments,\n\t\t\tdata.radius,\n\t\t\tdata.radialSegments,\n\t\t\tdata.closed\n\t\t);\n\n\t}\n\n}\n\nclass WireframeGeometry extends BufferGeometry {\n\n\tconstructor( geometry = null ) {\n\n\t\tsuper();\n\t\tthis.type = 'WireframeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tgeometry: geometry\n\t\t};\n\n\t\tif ( geometry !== null ) {\n\n\t\t\t// buffer\n\n\t\t\tconst vertices = [];\n\t\t\tconst edges = new Set();\n\n\t\t\t// helper variables\n\n\t\t\tconst start = new Vector3();\n\t\t\tconst end = new Vector3();\n\n\t\t\tif ( geometry.index !== null ) {\n\n\t\t\t\t// indexed BufferGeometry\n\n\t\t\t\tconst position = geometry.attributes.position;\n\t\t\t\tconst indices = geometry.index;\n\t\t\t\tlet groups = geometry.groups;\n\n\t\t\t\tif ( groups.length === 0 ) {\n\n\t\t\t\t\tgroups = [ { start: 0, count: indices.count, materialIndex: 0 } ];\n\n\t\t\t\t}\n\n\t\t\t\t// create a data structure that contains all eges without duplicates\n\n\t\t\t\tfor ( let o = 0, ol = groups.length; o < ol; ++ o ) {\n\n\t\t\t\t\tconst group = groups[ o ];\n\n\t\t\t\t\tconst groupStart = group.start;\n\t\t\t\t\tconst groupCount = group.count;\n\n\t\t\t\t\tfor ( let i = groupStart, l = ( groupStart + groupCount ); i < l; i += 3 ) {\n\n\t\t\t\t\t\tfor ( let j = 0; j < 3; j ++ ) {\n\n\t\t\t\t\t\t\tconst index1 = indices.getX( i + j );\n\t\t\t\t\t\t\tconst index2 = indices.getX( i + ( j + 1 ) % 3 );\n\n\t\t\t\t\t\t\tstart.fromBufferAttribute( position, index1 );\n\t\t\t\t\t\t\tend.fromBufferAttribute( position, index2 );\n\n\t\t\t\t\t\t\tif ( isUniqueEdge( start, end, edges ) === true ) {\n\n\t\t\t\t\t\t\t\tvertices.push( start.x, start.y, start.z );\n\t\t\t\t\t\t\t\tvertices.push( end.x, end.y, end.z );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// non-indexed BufferGeometry\n\n\t\t\t\tconst position = geometry.attributes.position;\n\n\t\t\t\tfor ( let i = 0, l = ( position.count / 3 ); i < l; i ++ ) {\n\n\t\t\t\t\tfor ( let j = 0; j < 3; j ++ ) {\n\n\t\t\t\t\t\t// three edges per triangle, an edge is represented as (index1, index2)\n\t\t\t\t\t\t// e.g. the first triangle has the following edges: (0,1),(1,2),(2,0)\n\n\t\t\t\t\t\tconst index1 = 3 * i + j;\n\t\t\t\t\t\tconst index2 = 3 * i + ( ( j + 1 ) % 3 );\n\n\t\t\t\t\t\tstart.fromBufferAttribute( position, index1 );\n\t\t\t\t\t\tend.fromBufferAttribute( position, index2 );\n\n\t\t\t\t\t\tif ( isUniqueEdge( start, end, edges ) === true ) {\n\n\t\t\t\t\t\t\tvertices.push( start.x, start.y, start.z );\n\t\t\t\t\t\t\tvertices.push( end.x, end.y, end.z );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// build geometry\n\n\t\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\n\t\t}\n\n\t}\n\n}\n\nfunction isUniqueEdge( start, end, edges ) {\n\n\tconst hash1 = `${start.x},${start.y},${start.z}-${end.x},${end.y},${end.z}`;\n\tconst hash2 = `${end.x},${end.y},${end.z}-${start.x},${start.y},${start.z}`; // coincident edge\n\n\tif ( edges.has( hash1 ) === true || edges.has( hash2 ) === true ) {\n\n\t\treturn false;\n\n\t} else {\n\n\t\tedges.add( hash1, hash2 );\n\t\treturn true;\n\n\t}\n\n}\n\nvar Geometries = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tBoxGeometry: BoxGeometry,\n\tBoxBufferGeometry: BoxGeometry,\n\tCircleGeometry: CircleGeometry,\n\tCircleBufferGeometry: CircleGeometry,\n\tConeGeometry: ConeGeometry,\n\tConeBufferGeometry: ConeGeometry,\n\tCylinderGeometry: CylinderGeometry,\n\tCylinderBufferGeometry: CylinderGeometry,\n\tDodecahedronGeometry: DodecahedronGeometry,\n\tDodecahedronBufferGeometry: DodecahedronGeometry,\n\tEdgesGeometry: EdgesGeometry,\n\tExtrudeGeometry: ExtrudeGeometry,\n\tExtrudeBufferGeometry: ExtrudeGeometry,\n\tIcosahedronGeometry: IcosahedronGeometry,\n\tIcosahedronBufferGeometry: IcosahedronGeometry,\n\tLatheGeometry: LatheGeometry,\n\tLatheBufferGeometry: LatheGeometry,\n\tOctahedronGeometry: OctahedronGeometry,\n\tOctahedronBufferGeometry: OctahedronGeometry,\n\tPlaneGeometry: PlaneGeometry,\n\tPlaneBufferGeometry: PlaneGeometry,\n\tPolyhedronGeometry: PolyhedronGeometry,\n\tPolyhedronBufferGeometry: PolyhedronGeometry,\n\tRingGeometry: RingGeometry,\n\tRingBufferGeometry: RingGeometry,\n\tShapeGeometry: ShapeGeometry,\n\tShapeBufferGeometry: ShapeGeometry,\n\tSphereGeometry: SphereGeometry,\n\tSphereBufferGeometry: SphereGeometry,\n\tTetrahedronGeometry: TetrahedronGeometry,\n\tTetrahedronBufferGeometry: TetrahedronGeometry,\n\tTorusGeometry: TorusGeometry,\n\tTorusBufferGeometry: TorusGeometry,\n\tTorusKnotGeometry: TorusKnotGeometry,\n\tTorusKnotBufferGeometry: TorusKnotGeometry,\n\tTubeGeometry: TubeGeometry,\n\tTubeBufferGeometry: TubeGeometry,\n\tWireframeGeometry: WireframeGeometry\n});\n\n/**\n * parameters = {\n * color: <THREE.Color>\n * }\n */\n\nclass ShadowMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'ShadowMaterial';\n\n\t\tthis.color = new Color( 0x000000 );\n\t\tthis.transparent = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\treturn this;\n\n\t}\n\n}\n\nShadowMaterial.prototype.isShadowMaterial = true;\n\n/**\n * parameters = {\n * color: <hex>,\n * roughness: <float>,\n * metalness: <float>,\n * opacity: <float>,\n *\n * map: new THREE.Texture( <Image> ),\n *\n * lightMap: new THREE.Texture( <Image> ),\n * lightMapIntensity: <float>\n *\n * aoMap: new THREE.Texture( <Image> ),\n * aoMapIntensity: <float>\n *\n * emissive: <hex>,\n * emissiveIntensity: <float>\n * emissiveMap: new THREE.Texture( <Image> ),\n *\n * bumpMap: new THREE.Texture( <Image> ),\n * bumpScale: <float>,\n *\n * normalMap: new THREE.Texture( <Image> ),\n * normalMapType: THREE.TangentSpaceNormalMap,\n * normalScale: <Vector2>,\n *\n * displacementMap: new THREE.Texture( <Image> ),\n * displacementScale: <float>,\n * displacementBias: <float>,\n *\n * roughnessMap: new THREE.Texture( <Image> ),\n *\n * metalnessMap: new THREE.Texture( <Image> ),\n *\n * alphaMap: new THREE.Texture( <Image> ),\n *\n * envMap: new THREE.CubeTexture( [posx, negx, posy, negy, posz, negz] ),\n * envMapIntensity: <float>\n *\n * refractionRatio: <float>,\n *\n * wireframe: <boolean>,\n * wireframeLinewidth: <float>,\n *\n * flatShading: <bool>\n * }\n */\n\nclass MeshStandardMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.defines = { 'STANDARD': '' };\n\n\t\tthis.type = 'MeshStandardMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\t\tthis.roughness = 1.0;\n\t\tthis.metalness = 0.0;\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.roughnessMap = null;\n\n\t\tthis.metalnessMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.envMapIntensity = 1.0;\n\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.flatShading = false;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.defines = { 'STANDARD': '' };\n\n\t\tthis.color.copy( source.color );\n\t\tthis.roughness = source.roughness;\n\t\tthis.metalness = source.metalness;\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.roughnessMap = source.roughnessMap;\n\n\t\tthis.metalnessMap = source.metalnessMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.envMapIntensity = source.envMapIntensity;\n\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshStandardMaterial.prototype.isMeshStandardMaterial = true;\n\n/**\n * parameters = {\n * clearcoat: <float>,\n * clearcoatMap: new THREE.Texture( <Image> ),\n * clearcoatRoughness: <float>,\n * clearcoatRoughnessMap: new THREE.Texture( <Image> ),\n * clearcoatNormalScale: <Vector2>,\n * clearcoatNormalMap: new THREE.Texture( <Image> ),\n *\n * ior: <float>,\n * reflectivity: <float>,\n *\n * sheen: <float>,\n * sheenColor: <Color>,\n * sheenColorMap: new THREE.Texture( <Image> ),\n * sheenRoughness: <float>,\n * sheenRoughnessMap: new THREE.Texture( <Image> ),\n *\n * transmission: <float>,\n * transmissionMap: new THREE.Texture( <Image> ),\n *\n * thickness: <float>,\n * thicknessMap: new THREE.Texture( <Image> ),\n * attenuationDistance: <float>,\n * attenuationColor: <Color>,\n *\n * specularIntensity: <float>,\n * specularIntensityMap: new THREE.Texture( <Image> ),\n * specularColor: <Color>,\n * specularColorMap: new THREE.Texture( <Image> )\n * }\n */\n\nclass MeshPhysicalMaterial extends MeshStandardMaterial {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.defines = {\n\n\t\t\t'STANDARD': '',\n\t\t\t'PHYSICAL': ''\n\n\t\t};\n\n\t\tthis.type = 'MeshPhysicalMaterial';\n\n\t\tthis.clearcoatMap = null;\n\t\tthis.clearcoatRoughness = 0.0;\n\t\tthis.clearcoatRoughnessMap = null;\n\t\tthis.clearcoatNormalScale = new Vector2( 1, 1 );\n\t\tthis.clearcoatNormalMap = null;\n\n\t\tthis.ior = 1.5;\n\n\t\tObject.defineProperty( this, 'reflectivity', {\n\t\t\tget: function () {\n\n\t\t\t\treturn ( clamp( 2.5 * ( this.ior - 1 ) / ( this.ior + 1 ), 0, 1 ) );\n\n\t\t\t},\n\t\t\tset: function ( reflectivity ) {\n\n\t\t\t\tthis.ior = ( 1 + 0.4 * reflectivity ) / ( 1 - 0.4 * reflectivity );\n\n\t\t\t}\n\t\t} );\n\n\t\tthis.sheenColor = new Color( 0x000000 );\n\t\tthis.sheenColorMap = null;\n\t\tthis.sheenRoughness = 1.0;\n\t\tthis.sheenRoughnessMap = null;\n\n\t\tthis.transmissionMap = null;\n\n\t\tthis.thickness = 0;\n\t\tthis.thicknessMap = null;\n\t\tthis.attenuationDistance = 0.0;\n\t\tthis.attenuationColor = new Color( 1, 1, 1 );\n\n\t\tthis.specularIntensity = 1.0;\n\t\tthis.specularIntensityMap = null;\n\t\tthis.specularColor = new Color( 1, 1, 1 );\n\t\tthis.specularColorMap = null;\n\n\t\tthis._sheen = 0.0;\n\t\tthis._clearcoat = 0;\n\t\tthis._transmission = 0;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tget sheen() {\n\n\t\treturn this._sheen;\n\n\t}\n\n\tset sheen( value ) {\n\n\t\tif ( this._sheen > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._sheen = value;\n\n\t}\n\n\tget clearcoat() {\n\n\t\treturn this._clearcoat;\n\n\t}\n\n\tset clearcoat( value ) {\n\n\t\tif ( this._clearcoat > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._clearcoat = value;\n\n\t}\n\n\tget transmission() {\n\n\t\treturn this._transmission;\n\n\t}\n\n\tset transmission( value ) {\n\n\t\tif ( this._transmission > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._transmission = value;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.defines = {\n\n\t\t\t'STANDARD': '',\n\t\t\t'PHYSICAL': ''\n\n\t\t};\n\n\t\tthis.clearcoat = source.clearcoat;\n\t\tthis.clearcoatMap = source.clearcoatMap;\n\t\tthis.clearcoatRoughness = source.clearcoatRoughness;\n\t\tthis.clearcoatRoughnessMap = source.clearcoatRoughnessMap;\n\t\tthis.clearcoatNormalMap = source.clearcoatNormalMap;\n\t\tthis.clearcoatNormalScale.copy( source.clearcoatNormalScale );\n\n\t\tthis.ior = source.ior;\n\n\t\tthis.sheen = source.sheen;\n\t\tthis.sheenColor.copy( source.sheenColor );\n\t\tthis.sheenColorMap = source.sheenColorMap;\n\t\tthis.sheenRoughness = source.sheenRoughness;\n\t\tthis.sheenRoughnessMap = source.sheenRoughnessMap;\n\n\t\tthis.transmission = source.transmission;\n\t\tthis.transmissionMap = source.transmissionMap;\n\n\t\tthis.thickness = source.thickness;\n\t\tthis.thicknessMap = source.thicknessMap;\n\t\tthis.attenuationDistance = source.attenuationDistance;\n\t\tthis.attenuationColor.copy( source.attenuationColor );\n\n\t\tthis.specularIntensity = source.specularIntensity;\n\t\tthis.specularIntensityMap = source.specularIntensityMap;\n\t\tthis.specularColor.copy( source.specularColor );\n\t\tthis.specularColorMap = source.specularColorMap;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshPhysicalMaterial.prototype.isMeshPhysicalMaterial = true;\n\n/**\n * parameters = {\n * color: <hex>,\n * specular: <hex>,\n * shininess: <float>,\n * opacity: <float>,\n *\n * map: new THREE.Texture( <Image> ),\n *\n * lightMap: new THREE.Texture( <Image> ),\n * lightMapIntensity: <float>\n *\n * aoMap: new THREE.Texture( <Image> ),\n * aoMapIntensity: <float>\n *\n * emissive: <hex>,\n * emissiveIntensity: <float>\n * emissiveMap: new THREE.Texture( <Image> ),\n *\n * bumpMap: new THREE.Texture( <Image> ),\n * bumpScale: <float>,\n *\n * normalMap: new THREE.Texture( <Image> ),\n * normalMapType: THREE.TangentSpaceNormalMap,\n * normalScale: <Vector2>,\n *\n * displacementMap: new THREE.Texture( <Image> ),\n * displacementScale: <float>,\n * displacementBias: <float>,\n *\n * specularMap: new THREE.Texture( <Image> ),\n *\n * alphaMap: new THREE.Texture( <Image> ),\n *\n * envMap: new THREE.CubeTexture( [posx, negx, posy, negy, posz, negz] ),\n * combine: THREE.MultiplyOperation,\n * reflectivity: <float>,\n * refractionRatio: <float>,\n *\n * wireframe: <boolean>,\n * wireframeLinewidth: <float>,\n *\n * flatShading: <bool>\n * }\n */\n\nclass MeshPhongMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'MeshPhongMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\t\tthis.specular = new Color( 0x111111 );\n\t\tthis.shininess = 30;\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.flatShading = false;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\t\tthis.specular.copy( source.specular );\n\t\tthis.shininess = source.shininess;\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshPhongMaterial.prototype.isMeshPhongMaterial = true;\n\n/**\n * parameters = {\n * color: <hex>,\n *\n * map: new THREE.Texture( <Image> ),\n * gradientMap: new THREE.Texture( <Image> ),\n *\n * lightMap: new THREE.Texture( <Image> ),\n * lightMapIntensity: <float>\n *\n * aoMap: new THREE.Texture( <Image> ),\n * aoMapIntensity: <float>\n *\n * emissive: <hex>,\n * emissiveIntensity: <float>\n * emissiveMap: new THREE.Texture( <Image> ),\n *\n * bumpMap: new THREE.Texture( <Image> ),\n * bumpScale: <float>,\n *\n * normalMap: new THREE.Texture( <Image> ),\n * normalMapType: THREE.TangentSpaceNormalMap,\n * normalScale: <Vector2>,\n *\n * displacementMap: new THREE.Texture( <Image> ),\n * displacementScale: <float>,\n * displacementBias: <float>,\n *\n * alphaMap: new THREE.Texture( <Image> ),\n *\n * wireframe: <boolean>,\n * wireframeLinewidth: <float>,\n *\n * }\n */\n\nclass MeshToonMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.defines = { 'TOON': '' };\n\n\t\tthis.type = 'MeshToonMaterial';\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\t\tthis.gradientMap = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\t\tthis.gradientMap = source.gradientMap;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshToonMaterial.prototype.isMeshToonMaterial = true;\n\n/**\n * parameters = {\n * opacity: <float>,\n *\n * bumpMap: new THREE.Texture( <Image> ),\n * bumpScale: <float>,\n *\n * normalMap: new THREE.Texture( <Image> ),\n * normalMapType: THREE.TangentSpaceNormalMap,\n * normalScale: <Vector2>,\n *\n * displacementMap: new THREE.Texture( <Image> ),\n * displacementScale: <float>,\n * displacementBias: <float>,\n *\n * wireframe: <boolean>,\n * wireframeLinewidth: <float>\n *\n * flatShading: <bool>\n * }\n */\n\nclass MeshNormalMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'MeshNormalMaterial';\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.fog = false;\n\n\t\tthis.flatShading = false;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshNormalMaterial.prototype.isMeshNormalMaterial = true;\n\n/**\n * parameters = {\n * color: <hex>,\n * opacity: <float>,\n *\n * map: new THREE.Texture( <Image> ),\n *\n * lightMap: new THREE.Texture( <Image> ),\n * lightMapIntensity: <float>\n *\n * aoMap: new THREE.Texture( <Image> ),\n * aoMapIntensity: <float>\n *\n * emissive: <hex>,\n * emissiveIntensity: <float>\n * emissiveMap: new THREE.Texture( <Image> ),\n *\n * specularMap: new THREE.Texture( <Image> ),\n *\n * alphaMap: new THREE.Texture( <Image> ),\n *\n * envMap: new THREE.CubeTexture( [posx, negx, posy, negy, posz, negz] ),\n * combine: THREE.Multiply,\n * reflectivity: <float>,\n * refractionRatio: <float>,\n *\n * wireframe: <boolean>,\n * wireframeLinewidth: <float>,\n *\n * }\n */\n\nclass MeshLambertMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'MeshLambertMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshLambertMaterial.prototype.isMeshLambertMaterial = true;\n\n/**\n * parameters = {\n * color: <hex>,\n * opacity: <float>,\n *\n * matcap: new THREE.Texture( <Image> ),\n *\n * map: new THREE.Texture( <Image> ),\n *\n * bumpMap: new THREE.Texture( <Image> ),\n * bumpScale: <float>,\n *\n * normalMap: new THREE.Texture( <Image> ),\n * normalMapType: THREE.TangentSpaceNormalMap,\n * normalScale: <Vector2>,\n *\n * displacementMap: new THREE.Texture( <Image> ),\n * displacementScale: <float>,\n * displacementBias: <float>,\n *\n * alphaMap: new THREE.Texture( <Image> ),\n *\n * flatShading: <bool>\n * }\n */\n\nclass MeshMatcapMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.defines = { 'MATCAP': '' };\n\n\t\tthis.type = 'MeshMatcapMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\tthis.matcap = null;\n\n\t\tthis.map = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.flatShading = false;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.defines = { 'MATCAP': '' };\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.matcap = source.matcap;\n\n\t\tthis.map = source.map;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshMatcapMaterial.prototype.isMeshMatcapMaterial = true;\n\n/**\n * parameters = {\n * color: <hex>,\n * opacity: <float>,\n *\n * linewidth: <float>,\n *\n * scale: <float>,\n * dashSize: <float>,\n * gapSize: <float>\n * }\n */\n\nclass LineDashedMaterial extends LineBasicMaterial {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'LineDashedMaterial';\n\n\t\tthis.scale = 1;\n\t\tthis.dashSize = 3;\n\t\tthis.gapSize = 1;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.scale = source.scale;\n\t\tthis.dashSize = source.dashSize;\n\t\tthis.gapSize = source.gapSize;\n\n\t\treturn this;\n\n\t}\n\n}\n\nLineDashedMaterial.prototype.isLineDashedMaterial = true;\n\nvar Materials = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tShadowMaterial: ShadowMaterial,\n\tSpriteMaterial: SpriteMaterial,\n\tRawShaderMaterial: RawShaderMaterial,\n\tShaderMaterial: ShaderMaterial,\n\tPointsMaterial: PointsMaterial,\n\tMeshPhysicalMaterial: MeshPhysicalMaterial,\n\tMeshStandardMaterial: MeshStandardMaterial,\n\tMeshPhongMaterial: MeshPhongMaterial,\n\tMeshToonMaterial: MeshToonMaterial,\n\tMeshNormalMaterial: MeshNormalMaterial,\n\tMeshLambertMaterial: MeshLambertMaterial,\n\tMeshDepthMaterial: MeshDepthMaterial,\n\tMeshDistanceMaterial: MeshDistanceMaterial,\n\tMeshBasicMaterial: MeshBasicMaterial,\n\tMeshMatcapMaterial: MeshMatcapMaterial,\n\tLineDashedMaterial: LineDashedMaterial,\n\tLineBasicMaterial: LineBasicMaterial,\n\tMaterial: Material\n});\n\nconst AnimationUtils = {\n\n\t// same as Array.prototype.slice, but also works on typed arrays\n\tarraySlice: function ( array, from, to ) {\n\n\t\tif ( AnimationUtils.isTypedArray( array ) ) {\n\n\t\t\t// in ios9 array.subarray(from, undefined) will return empty array\n\t\t\t// but array.subarray(from) or array.subarray(from, len) is correct\n\t\t\treturn new array.constructor( array.subarray( from, to !== undefined ? to : array.length ) );\n\n\t\t}\n\n\t\treturn array.slice( from, to );\n\n\t},\n\n\t// converts an array to a specific type\n\tconvertArray: function ( array, type, forceClone ) {\n\n\t\tif ( ! array || // let 'undefined' and 'null' pass\n\t\t\t! forceClone && array.constructor === type ) return array;\n\n\t\tif ( typeof type.BYTES_PER_ELEMENT === 'number' ) {\n\n\t\t\treturn new type( array ); // create typed array\n\n\t\t}\n\n\t\treturn Array.prototype.slice.call( array ); // create Array\n\n\t},\n\n\tisTypedArray: function ( object ) {\n\n\t\treturn ArrayBuffer.isView( object ) &&\n\t\t\t! ( object instanceof DataView );\n\n\t},\n\n\t// returns an array by which times and values can be sorted\n\tgetKeyframeOrder: function ( times ) {\n\n\t\tfunction compareTime( i, j ) {\n\n\t\t\treturn times[ i ] - times[ j ];\n\n\t\t}\n\n\t\tconst n = times.length;\n\t\tconst result = new Array( n );\n\t\tfor ( let i = 0; i !== n; ++ i ) result[ i ] = i;\n\n\t\tresult.sort( compareTime );\n\n\t\treturn result;\n\n\t},\n\n\t// uses the array previously returned by 'getKeyframeOrder' to sort data\n\tsortedArray: function ( values, stride, order ) {\n\n\t\tconst nValues = values.length;\n\t\tconst result = new values.constructor( nValues );\n\n\t\tfor ( let i = 0, dstOffset = 0; dstOffset !== nValues; ++ i ) {\n\n\t\t\tconst srcOffset = order[ i ] * stride;\n\n\t\t\tfor ( let j = 0; j !== stride; ++ j ) {\n\n\t\t\t\tresult[ dstOffset ++ ] = values[ srcOffset + j ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn result;\n\n\t},\n\n\t// function for parsing AOS keyframe formats\n\tflattenJSON: function ( jsonKeys, times, values, valuePropertyName ) {\n\n\t\tlet i = 1, key = jsonKeys[ 0 ];\n\n\t\twhile ( key !== undefined && key[ valuePropertyName ] === undefined ) {\n\n\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t}\n\n\t\tif ( key === undefined ) return; // no data\n\n\t\tlet value = key[ valuePropertyName ];\n\t\tif ( value === undefined ) return; // no data\n\n\t\tif ( Array.isArray( value ) ) {\n\n\t\t\tdo {\n\n\t\t\t\tvalue = key[ valuePropertyName ];\n\n\t\t\t\tif ( value !== undefined ) {\n\n\t\t\t\t\ttimes.push( key.time );\n\t\t\t\t\tvalues.push.apply( values, value ); // push all elements\n\n\t\t\t\t}\n\n\t\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t\t} while ( key !== undefined );\n\n\t\t} else if ( value.toArray !== undefined ) {\n\n\t\t\t// ...assume THREE.Math-ish\n\n\t\t\tdo {\n\n\t\t\t\tvalue = key[ valuePropertyName ];\n\n\t\t\t\tif ( value !== undefined ) {\n\n\t\t\t\t\ttimes.push( key.time );\n\t\t\t\t\tvalue.toArray( values, values.length );\n\n\t\t\t\t}\n\n\t\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t\t} while ( key !== undefined );\n\n\t\t} else {\n\n\t\t\t// otherwise push as-is\n\n\t\t\tdo {\n\n\t\t\t\tvalue = key[ valuePropertyName ];\n\n\t\t\t\tif ( value !== undefined ) {\n\n\t\t\t\t\ttimes.push( key.time );\n\t\t\t\t\tvalues.push( value );\n\n\t\t\t\t}\n\n\t\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t\t} while ( key !== undefined );\n\n\t\t}\n\n\t},\n\n\tsubclip: function ( sourceClip, name, startFrame, endFrame, fps = 30 ) {\n\n\t\tconst clip = sourceClip.clone();\n\n\t\tclip.name = name;\n\n\t\tconst tracks = [];\n\n\t\tfor ( let i = 0; i < clip.tracks.length; ++ i ) {\n\n\t\t\tconst track = clip.tracks[ i ];\n\t\t\tconst valueSize = track.getValueSize();\n\n\t\t\tconst times = [];\n\t\t\tconst values = [];\n\n\t\t\tfor ( let j = 0; j < track.times.length; ++ j ) {\n\n\t\t\t\tconst frame = track.times[ j ] * fps;\n\n\t\t\t\tif ( frame < startFrame || frame >= endFrame ) continue;\n\n\t\t\t\ttimes.push( track.times[ j ] );\n\n\t\t\t\tfor ( let k = 0; k < valueSize; ++ k ) {\n\n\t\t\t\t\tvalues.push( track.values[ j * valueSize + k ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( times.length === 0 ) continue;\n\n\t\t\ttrack.times = AnimationUtils.convertArray( times, track.times.constructor );\n\t\t\ttrack.values = AnimationUtils.convertArray( values, track.values.constructor );\n\n\t\t\ttracks.push( track );\n\n\t\t}\n\n\t\tclip.tracks = tracks;\n\n\t\t// find minimum .times value across all tracks in the trimmed clip\n\n\t\tlet minStartTime = Infinity;\n\n\t\tfor ( let i = 0; i < clip.tracks.length; ++ i ) {\n\n\t\t\tif ( minStartTime > clip.tracks[ i ].times[ 0 ] ) {\n\n\t\t\t\tminStartTime = clip.tracks[ i ].times[ 0 ];\n\n\t\t\t}\n\n\t\t}\n\n\t\t// shift all tracks such that clip begins at t=0\n\n\t\tfor ( let i = 0; i < clip.tracks.length; ++ i ) {\n\n\t\t\tclip.tracks[ i ].shift( - 1 * minStartTime );\n\n\t\t}\n\n\t\tclip.resetDuration();\n\n\t\treturn clip;\n\n\t},\n\n\tmakeClipAdditive: function ( targetClip, referenceFrame = 0, referenceClip = targetClip, fps = 30 ) {\n\n\t\tif ( fps <= 0 ) fps = 30;\n\n\t\tconst numTracks = referenceClip.tracks.length;\n\t\tconst referenceTime = referenceFrame / fps;\n\n\t\t// Make each track's values relative to the values at the reference frame\n\t\tfor ( let i = 0; i < numTracks; ++ i ) {\n\n\t\t\tconst referenceTrack = referenceClip.tracks[ i ];\n\t\t\tconst referenceTrackType = referenceTrack.ValueTypeName;\n\n\t\t\t// Skip this track if it's non-numeric\n\t\t\tif ( referenceTrackType === 'bool' || referenceTrackType === 'string' ) continue;\n\n\t\t\t// Find the track in the target clip whose name and type matches the reference track\n\t\t\tconst targetTrack = targetClip.tracks.find( function ( track ) {\n\n\t\t\t\treturn track.name === referenceTrack.name\n\t\t\t\t\t&& track.ValueTypeName === referenceTrackType;\n\n\t\t\t} );\n\n\t\t\tif ( targetTrack === undefined ) continue;\n\n\t\t\tlet referenceOffset = 0;\n\t\t\tconst referenceValueSize = referenceTrack.getValueSize();\n\n\t\t\tif ( referenceTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline ) {\n\n\t\t\t\treferenceOffset = referenceValueSize / 3;\n\n\t\t\t}\n\n\t\t\tlet targetOffset = 0;\n\t\t\tconst targetValueSize = targetTrack.getValueSize();\n\n\t\t\tif ( targetTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline ) {\n\n\t\t\t\ttargetOffset = targetValueSize / 3;\n\n\t\t\t}\n\n\t\t\tconst lastIndex = referenceTrack.times.length - 1;\n\t\t\tlet referenceValue;\n\n\t\t\t// Find the value to subtract out of the track\n\t\t\tif ( referenceTime <= referenceTrack.times[ 0 ] ) {\n\n\t\t\t\t// Reference frame is earlier than the first keyframe, so just use the first keyframe\n\t\t\t\tconst startIndex = referenceOffset;\n\t\t\t\tconst endIndex = referenceValueSize - referenceOffset;\n\t\t\t\treferenceValue = AnimationUtils.arraySlice( referenceTrack.values, startIndex, endIndex );\n\n\t\t\t} else if ( referenceTime >= referenceTrack.times[ lastIndex ] ) {\n\n\t\t\t\t// Reference frame is after the last keyframe, so just use the last keyframe\n\t\t\t\tconst startIndex = lastIndex * referenceValueSize + referenceOffset;\n\t\t\t\tconst endIndex = startIndex + referenceValueSize - referenceOffset;\n\t\t\t\treferenceValue = AnimationUtils.arraySlice( referenceTrack.values, startIndex, endIndex );\n\n\t\t\t} else {\n\n\t\t\t\t// Interpolate to the reference value\n\t\t\t\tconst interpolant = referenceTrack.createInterpolant();\n\t\t\t\tconst startIndex = referenceOffset;\n\t\t\t\tconst endIndex = referenceValueSize - referenceOffset;\n\t\t\t\tinterpolant.evaluate( referenceTime );\n\t\t\t\treferenceValue = AnimationUtils.arraySlice( interpolant.resultBuffer, startIndex, endIndex );\n\n\t\t\t}\n\n\t\t\t// Conjugate the quaternion\n\t\t\tif ( referenceTrackType === 'quaternion' ) {\n\n\t\t\t\tconst referenceQuat = new Quaternion().fromArray( referenceValue ).normalize().conjugate();\n\t\t\t\treferenceQuat.toArray( referenceValue );\n\n\t\t\t}\n\n\t\t\t// Subtract the reference value from all of the track values\n\n\t\t\tconst numTimes = targetTrack.times.length;\n\t\t\tfor ( let j = 0; j < numTimes; ++ j ) {\n\n\t\t\t\tconst valueStart = j * targetValueSize + targetOffset;\n\n\t\t\t\tif ( referenceTrackType === 'quaternion' ) {\n\n\t\t\t\t\t// Multiply the conjugate for quaternion track types\n\t\t\t\t\tQuaternion.multiplyQuaternionsFlat(\n\t\t\t\t\t\ttargetTrack.values,\n\t\t\t\t\t\tvalueStart,\n\t\t\t\t\t\treferenceValue,\n\t\t\t\t\t\t0,\n\t\t\t\t\t\ttargetTrack.values,\n\t\t\t\t\t\tvalueStart\n\t\t\t\t\t);\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconst valueEnd = targetValueSize - targetOffset * 2;\n\n\t\t\t\t\t// Subtract each value for all other numeric track types\n\t\t\t\t\tfor ( let k = 0; k < valueEnd; ++ k ) {\n\n\t\t\t\t\t\ttargetTrack.values[ valueStart + k ] -= referenceValue[ k ];\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\ttargetClip.blendMode = AdditiveAnimationBlendMode;\n\n\t\treturn targetClip;\n\n\t}\n\n};\n\n/**\n * Abstract base class of interpolants over parametric samples.\n *\n * The parameter domain is one dimensional, typically the time or a path\n * along a curve defined by the data.\n *\n * The sample values can have any dimensionality and derived classes may\n * apply special interpretations to the data.\n *\n * This class provides the interval seek in a Template Method, deferring\n * the actual interpolation to derived classes.\n *\n * Time complexity is O(1) for linear access crossing at most two points\n * and O(log N) for random access, where N is the number of positions.\n *\n * References:\n *\n * \t\thttp://www.oodesign.com/template-method-pattern.html\n *\n */\n\nclass Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tthis.parameterPositions = parameterPositions;\n\t\tthis._cachedIndex = 0;\n\n\t\tthis.resultBuffer = resultBuffer !== undefined ?\n\t\t\tresultBuffer : new sampleValues.constructor( sampleSize );\n\t\tthis.sampleValues = sampleValues;\n\t\tthis.valueSize = sampleSize;\n\n\t\tthis.settings = null;\n\t\tthis.DefaultSettings_ = {};\n\n\t}\n\n\tevaluate( t ) {\n\n\t\tconst pp = this.parameterPositions;\n\t\tlet i1 = this._cachedIndex,\n\t\t\tt1 = pp[ i1 ],\n\t\t\tt0 = pp[ i1 - 1 ];\n\n\t\tvalidate_interval: {\n\n\t\t\tseek: {\n\n\t\t\t\tlet right;\n\n\t\t\t\tlinear_scan: {\n\n\t\t\t\t\t//- See http://jsperf.com/comparison-to-undefined/3\n\t\t\t\t\t//- slower code:\n\t\t\t\t\t//-\n\t\t\t\t\t//- \t\t\t\tif ( t >= t1 || t1 === undefined ) {\n\t\t\t\t\tforward_scan: if ( ! ( t < t1 ) ) {\n\n\t\t\t\t\t\tfor ( let giveUpAt = i1 + 2; ; ) {\n\n\t\t\t\t\t\t\tif ( t1 === undefined ) {\n\n\t\t\t\t\t\t\t\tif ( t < t0 ) break forward_scan;\n\n\t\t\t\t\t\t\t\t// after end\n\n\t\t\t\t\t\t\t\ti1 = pp.length;\n\t\t\t\t\t\t\t\tthis._cachedIndex = i1;\n\t\t\t\t\t\t\t\treturn this.afterEnd_( i1 - 1, t, t0 );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( i1 === giveUpAt ) break; // this loop\n\n\t\t\t\t\t\t\tt0 = t1;\n\t\t\t\t\t\t\tt1 = pp[ ++ i1 ];\n\n\t\t\t\t\t\t\tif ( t < t1 ) {\n\n\t\t\t\t\t\t\t\t// we have arrived at the sought interval\n\t\t\t\t\t\t\t\tbreak seek;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// prepare binary search on the right side of the index\n\t\t\t\t\t\tright = pp.length;\n\t\t\t\t\t\tbreak linear_scan;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t//- slower code:\n\t\t\t\t\t//-\t\t\t\t\tif ( t < t0 || t0 === undefined ) {\n\t\t\t\t\tif ( ! ( t >= t0 ) ) {\n\n\t\t\t\t\t\t// looping?\n\n\t\t\t\t\t\tconst t1global = pp[ 1 ];\n\n\t\t\t\t\t\tif ( t < t1global ) {\n\n\t\t\t\t\t\t\ti1 = 2; // + 1, using the scan for the details\n\t\t\t\t\t\t\tt0 = t1global;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// linear reverse scan\n\n\t\t\t\t\t\tfor ( let giveUpAt = i1 - 2; ; ) {\n\n\t\t\t\t\t\t\tif ( t0 === undefined ) {\n\n\t\t\t\t\t\t\t\t// before start\n\n\t\t\t\t\t\t\t\tthis._cachedIndex = 0;\n\t\t\t\t\t\t\t\treturn this.beforeStart_( 0, t, t1 );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( i1 === giveUpAt ) break; // this loop\n\n\t\t\t\t\t\t\tt1 = t0;\n\t\t\t\t\t\t\tt0 = pp[ -- i1 - 1 ];\n\n\t\t\t\t\t\t\tif ( t >= t0 ) {\n\n\t\t\t\t\t\t\t\t// we have arrived at the sought interval\n\t\t\t\t\t\t\t\tbreak seek;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// prepare binary search on the left side of the index\n\t\t\t\t\t\tright = i1;\n\t\t\t\t\t\ti1 = 0;\n\t\t\t\t\t\tbreak linear_scan;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// the interval is valid\n\n\t\t\t\t\tbreak validate_interval;\n\n\t\t\t\t} // linear scan\n\n\t\t\t\t// binary search\n\n\t\t\t\twhile ( i1 < right ) {\n\n\t\t\t\t\tconst mid = ( i1 + right ) >>> 1;\n\n\t\t\t\t\tif ( t < pp[ mid ] ) {\n\n\t\t\t\t\t\tright = mid;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ti1 = mid + 1;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tt1 = pp[ i1 ];\n\t\t\t\tt0 = pp[ i1 - 1 ];\n\n\t\t\t\t// check boundary cases, again\n\n\t\t\t\tif ( t0 === undefined ) {\n\n\t\t\t\t\tthis._cachedIndex = 0;\n\t\t\t\t\treturn this.beforeStart_( 0, t, t1 );\n\n\t\t\t\t}\n\n\t\t\t\tif ( t1 === undefined ) {\n\n\t\t\t\t\ti1 = pp.length;\n\t\t\t\t\tthis._cachedIndex = i1;\n\t\t\t\t\treturn this.afterEnd_( i1 - 1, t0, t );\n\n\t\t\t\t}\n\n\t\t\t} // seek\n\n\t\t\tthis._cachedIndex = i1;\n\n\t\t\tthis.intervalChanged_( i1, t0, t1 );\n\n\t\t} // validate_interval\n\n\t\treturn this.interpolate_( i1, t0, t, t1 );\n\n\t}\n\n\tgetSettings_() {\n\n\t\treturn this.settings || this.DefaultSettings_;\n\n\t}\n\n\tcopySampleValue_( index ) {\n\n\t\t// copies a sample value to the result buffer\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\t\t\toffset = index * stride;\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tresult[ i ] = values[ offset + i ];\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\t// Template methods for derived classes:\n\n\tinterpolate_( /* i1, t0, t, t1 */ ) {\n\n\t\tthrow new Error( 'call to abstract method' );\n\t\t// implementations shall return this.resultBuffer\n\n\t}\n\n\tintervalChanged_( /* i1, t0, t1 */ ) {\n\n\t\t// empty\n\n\t}\n\n}\n\n// ALIAS DEFINITIONS\n\nInterpolant.prototype.beforeStart_ = Interpolant.prototype.copySampleValue_;\nInterpolant.prototype.afterEnd_ = Interpolant.prototype.copySampleValue_;\n\n/**\n * Fast and simple cubic spline interpolant.\n *\n * It was derived from a Hermitian construction setting the first derivative\n * at each sample position to the linear slope between neighboring positions\n * over their parameter interval.\n */\n\nclass CubicInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t\tthis._weightPrev = - 0;\n\t\tthis._offsetPrev = - 0;\n\t\tthis._weightNext = - 0;\n\t\tthis._offsetNext = - 0;\n\n\t\tthis.DefaultSettings_ = {\n\n\t\t\tendingStart: ZeroCurvatureEnding,\n\t\t\tendingEnd: ZeroCurvatureEnding\n\n\t\t};\n\n\t}\n\n\tintervalChanged_( i1, t0, t1 ) {\n\n\t\tconst pp = this.parameterPositions;\n\t\tlet iPrev = i1 - 2,\n\t\t\tiNext = i1 + 1,\n\n\t\t\ttPrev = pp[ iPrev ],\n\t\t\ttNext = pp[ iNext ];\n\n\t\tif ( tPrev === undefined ) {\n\n\t\t\tswitch ( this.getSettings_().endingStart ) {\n\n\t\t\t\tcase ZeroSlopeEnding:\n\n\t\t\t\t\t// f'(t0) = 0\n\t\t\t\t\tiPrev = i1;\n\t\t\t\t\ttPrev = 2 * t0 - t1;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase WrapAroundEnding:\n\n\t\t\t\t\t// use the other end of the curve\n\t\t\t\t\tiPrev = pp.length - 2;\n\t\t\t\t\ttPrev = t0 + pp[ iPrev ] - pp[ iPrev + 1 ];\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault: // ZeroCurvatureEnding\n\n\t\t\t\t\t// f''(t0) = 0 a.k.a. Natural Spline\n\t\t\t\t\tiPrev = i1;\n\t\t\t\t\ttPrev = t1;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( tNext === undefined ) {\n\n\t\t\tswitch ( this.getSettings_().endingEnd ) {\n\n\t\t\t\tcase ZeroSlopeEnding:\n\n\t\t\t\t\t// f'(tN) = 0\n\t\t\t\t\tiNext = i1;\n\t\t\t\t\ttNext = 2 * t1 - t0;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase WrapAroundEnding:\n\n\t\t\t\t\t// use the other end of the curve\n\t\t\t\t\tiNext = 1;\n\t\t\t\t\ttNext = t1 + pp[ 1 ] - pp[ 0 ];\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault: // ZeroCurvatureEnding\n\n\t\t\t\t\t// f''(tN) = 0, a.k.a. Natural Spline\n\t\t\t\t\tiNext = i1 - 1;\n\t\t\t\t\ttNext = t0;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst halfDt = ( t1 - t0 ) * 0.5,\n\t\t\tstride = this.valueSize;\n\n\t\tthis._weightPrev = halfDt / ( t0 - tPrev );\n\t\tthis._weightNext = halfDt / ( tNext - t1 );\n\t\tthis._offsetPrev = iPrev * stride;\n\t\tthis._offsetNext = iNext * stride;\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\n\t\t\to1 = i1 * stride,\t\to0 = o1 - stride,\n\t\t\toP = this._offsetPrev, \toN = this._offsetNext,\n\t\t\twP = this._weightPrev,\twN = this._weightNext,\n\n\t\t\tp = ( t - t0 ) / ( t1 - t0 ),\n\t\t\tpp = p * p,\n\t\t\tppp = pp * p;\n\n\t\t// evaluate polynomials\n\n\t\tconst sP = - wP * ppp + 2 * wP * pp - wP * p;\n\t\tconst s0 = ( 1 + wP ) * ppp + ( - 1.5 - 2 * wP ) * pp + ( - 0.5 + wP ) * p + 1;\n\t\tconst s1 = ( - 1 - wN ) * ppp + ( 1.5 + wN ) * pp + 0.5 * p;\n\t\tconst sN = wN * ppp - wN * pp;\n\n\t\t// combine data linearly\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tresult[ i ] =\n\t\t\t\t\tsP * values[ oP + i ] +\n\t\t\t\t\ts0 * values[ o0 + i ] +\n\t\t\t\t\ts1 * values[ o1 + i ] +\n\t\t\t\t\tsN * values[ oN + i ];\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\nclass LinearInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\n\t\t\toffset1 = i1 * stride,\n\t\t\toffset0 = offset1 - stride,\n\n\t\t\tweight1 = ( t - t0 ) / ( t1 - t0 ),\n\t\t\tweight0 = 1 - weight1;\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tresult[ i ] =\n\t\t\t\t\tvalues[ offset0 + i ] * weight0 +\n\t\t\t\t\tvalues[ offset1 + i ] * weight1;\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\n/**\n *\n * Interpolant that evaluates to the sample value at the position preceeding\n * the parameter.\n */\n\nclass DiscreteInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tinterpolate_( i1 /*, t0, t, t1 */ ) {\n\n\t\treturn this.copySampleValue_( i1 - 1 );\n\n\t}\n\n}\n\nclass KeyframeTrack {\n\n\tconstructor( name, times, values, interpolation ) {\n\n\t\tif ( name === undefined ) throw new Error( 'THREE.KeyframeTrack: track name is undefined' );\n\t\tif ( times === undefined || times.length === 0 ) throw new Error( 'THREE.KeyframeTrack: no keyframes in track named ' + name );\n\n\t\tthis.name = name;\n\n\t\tthis.times = AnimationUtils.convertArray( times, this.TimeBufferType );\n\t\tthis.values = AnimationUtils.convertArray( values, this.ValueBufferType );\n\n\t\tthis.setInterpolation( interpolation || this.DefaultInterpolation );\n\n\t}\n\n\t// Serialization (in static context, because of constructor invocation\n\t// and automatic invocation of .toJSON):\n\n\tstatic toJSON( track ) {\n\n\t\tconst trackType = track.constructor;\n\n\t\tlet json;\n\n\t\t// derived classes can define a static toJSON method\n\t\tif ( trackType.toJSON !== this.toJSON ) {\n\n\t\t\tjson = trackType.toJSON( track );\n\n\t\t} else {\n\n\t\t\t// by default, we assume the data can be serialized as-is\n\t\t\tjson = {\n\n\t\t\t\t'name': track.name,\n\t\t\t\t'times': AnimationUtils.convertArray( track.times, Array ),\n\t\t\t\t'values': AnimationUtils.convertArray( track.values, Array )\n\n\t\t\t};\n\n\t\t\tconst interpolation = track.getInterpolation();\n\n\t\t\tif ( interpolation !== track.DefaultInterpolation ) {\n\n\t\t\t\tjson.interpolation = interpolation;\n\n\t\t\t}\n\n\t\t}\n\n\t\tjson.type = track.ValueTypeName; // mandatory\n\n\t\treturn json;\n\n\t}\n\n\tInterpolantFactoryMethodDiscrete( result ) {\n\n\t\treturn new DiscreteInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\tInterpolantFactoryMethodLinear( result ) {\n\n\t\treturn new LinearInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\tInterpolantFactoryMethodSmooth( result ) {\n\n\t\treturn new CubicInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\tsetInterpolation( interpolation ) {\n\n\t\tlet factoryMethod;\n\n\t\tswitch ( interpolation ) {\n\n\t\t\tcase InterpolateDiscrete:\n\n\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodDiscrete;\n\n\t\t\t\tbreak;\n\n\t\t\tcase InterpolateLinear:\n\n\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodLinear;\n\n\t\t\t\tbreak;\n\n\t\t\tcase InterpolateSmooth:\n\n\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodSmooth;\n\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\tif ( factoryMethod === undefined ) {\n\n\t\t\tconst message = 'unsupported interpolation for ' +\n\t\t\t\tthis.ValueTypeName + ' keyframe track named ' + this.name;\n\n\t\t\tif ( this.createInterpolant === undefined ) {\n\n\t\t\t\t// fall back to default, unless the default itself is messed up\n\t\t\t\tif ( interpolation !== this.DefaultInterpolation ) {\n\n\t\t\t\t\tthis.setInterpolation( this.DefaultInterpolation );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new Error( message ); // fatal, in this case\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconsole.warn( 'THREE.KeyframeTrack:', message );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tthis.createInterpolant = factoryMethod;\n\n\t\treturn this;\n\n\t}\n\n\tgetInterpolation() {\n\n\t\tswitch ( this.createInterpolant ) {\n\n\t\t\tcase this.InterpolantFactoryMethodDiscrete:\n\n\t\t\t\treturn InterpolateDiscrete;\n\n\t\t\tcase this.InterpolantFactoryMethodLinear:\n\n\t\t\t\treturn InterpolateLinear;\n\n\t\t\tcase this.InterpolantFactoryMethodSmooth:\n\n\t\t\t\treturn InterpolateSmooth;\n\n\t\t}\n\n\t}\n\n\tgetValueSize() {\n\n\t\treturn this.values.length / this.times.length;\n\n\t}\n\n\t// move all keyframes either forwards or backwards in time\n\tshift( timeOffset ) {\n\n\t\tif ( timeOffset !== 0.0 ) {\n\n\t\t\tconst times = this.times;\n\n\t\t\tfor ( let i = 0, n = times.length; i !== n; ++ i ) {\n\n\t\t\t\ttimes[ i ] += timeOffset;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// scale all keyframe times by a factor (useful for frame <-> seconds conversions)\n\tscale( timeScale ) {\n\n\t\tif ( timeScale !== 1.0 ) {\n\n\t\t\tconst times = this.times;\n\n\t\t\tfor ( let i = 0, n = times.length; i !== n; ++ i ) {\n\n\t\t\t\ttimes[ i ] *= timeScale;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// removes keyframes before and after animation without changing any values within the range [startTime, endTime].\n\t// IMPORTANT: We do not shift around keys to the start of the track time, because for interpolated keys this will change their values\n\ttrim( startTime, endTime ) {\n\n\t\tconst times = this.times,\n\t\t\tnKeys = times.length;\n\n\t\tlet from = 0,\n\t\t\tto = nKeys - 1;\n\n\t\twhile ( from !== nKeys && times[ from ] < startTime ) {\n\n\t\t\t++ from;\n\n\t\t}\n\n\t\twhile ( to !== - 1 && times[ to ] > endTime ) {\n\n\t\t\t-- to;\n\n\t\t}\n\n\t\t++ to; // inclusive -> exclusive bound\n\n\t\tif ( from !== 0 || to !== nKeys ) {\n\n\t\t\t// empty tracks are forbidden, so keep at least one keyframe\n\t\t\tif ( from >= to ) {\n\n\t\t\t\tto = Math.max( to, 1 );\n\t\t\t\tfrom = to - 1;\n\n\t\t\t}\n\n\t\t\tconst stride = this.getValueSize();\n\t\t\tthis.times = AnimationUtils.arraySlice( times, from, to );\n\t\t\tthis.values = AnimationUtils.arraySlice( this.values, from * stride, to * stride );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// ensure we do not get a GarbageInGarbageOut situation, make sure tracks are at least minimally viable\n\tvalidate() {\n\n\t\tlet valid = true;\n\n\t\tconst valueSize = this.getValueSize();\n\t\tif ( valueSize - Math.floor( valueSize ) !== 0 ) {\n\n\t\t\tconsole.error( 'THREE.KeyframeTrack: Invalid value size in track.', this );\n\t\t\tvalid = false;\n\n\t\t}\n\n\t\tconst times = this.times,\n\t\t\tvalues = this.values,\n\n\t\t\tnKeys = times.length;\n\n\t\tif ( nKeys === 0 ) {\n\n\t\t\tconsole.error( 'THREE.KeyframeTrack: Track is empty.', this );\n\t\t\tvalid = false;\n\n\t\t}\n\n\t\tlet prevTime = null;\n\n\t\tfor ( let i = 0; i !== nKeys; i ++ ) {\n\n\t\t\tconst currTime = times[ i ];\n\n\t\t\tif ( typeof currTime === 'number' && isNaN( currTime ) ) {\n\n\t\t\t\tconsole.error( 'THREE.KeyframeTrack: Time is not a valid number.', this, i, currTime );\n\t\t\t\tvalid = false;\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tif ( prevTime !== null && prevTime > currTime ) {\n\n\t\t\t\tconsole.error( 'THREE.KeyframeTrack: Out of order keys.', this, i, currTime, prevTime );\n\t\t\t\tvalid = false;\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tprevTime = currTime;\n\n\t\t}\n\n\t\tif ( values !== undefined ) {\n\n\t\t\tif ( AnimationUtils.isTypedArray( values ) ) {\n\n\t\t\t\tfor ( let i = 0, n = values.length; i !== n; ++ i ) {\n\n\t\t\t\t\tconst value = values[ i ];\n\n\t\t\t\t\tif ( isNaN( value ) ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.KeyframeTrack: Value is not a valid number.', this, i, value );\n\t\t\t\t\t\tvalid = false;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn valid;\n\n\t}\n\n\t// removes equivalent sequential keys as common in morph target sequences\n\t// (0,0,0,0,1,1,1,0,0,0,0,0,0,0) --> (0,0,1,1,0,0)\n\toptimize() {\n\n\t\t// times or values may be shared with other tracks, so overwriting is unsafe\n\t\tconst times = AnimationUtils.arraySlice( this.times ),\n\t\t\tvalues = AnimationUtils.arraySlice( this.values ),\n\t\t\tstride = this.getValueSize(),\n\n\t\t\tsmoothInterpolation = this.getInterpolation() === InterpolateSmooth,\n\n\t\t\tlastIndex = times.length - 1;\n\n\t\tlet writeIndex = 1;\n\n\t\tfor ( let i = 1; i < lastIndex; ++ i ) {\n\n\t\t\tlet keep = false;\n\n\t\t\tconst time = times[ i ];\n\t\t\tconst timeNext = times[ i + 1 ];\n\n\t\t\t// remove adjacent keyframes scheduled at the same time\n\n\t\t\tif ( time !== timeNext && ( i !== 1 || time !== times[ 0 ] ) ) {\n\n\t\t\t\tif ( ! smoothInterpolation ) {\n\n\t\t\t\t\t// remove unnecessary keyframes same as their neighbors\n\n\t\t\t\t\tconst offset = i * stride,\n\t\t\t\t\t\toffsetP = offset - stride,\n\t\t\t\t\t\toffsetN = offset + stride;\n\n\t\t\t\t\tfor ( let j = 0; j !== stride; ++ j ) {\n\n\t\t\t\t\t\tconst value = values[ offset + j ];\n\n\t\t\t\t\t\tif ( value !== values[ offsetP + j ] ||\n\t\t\t\t\t\t\tvalue !== values[ offsetN + j ] ) {\n\n\t\t\t\t\t\t\tkeep = true;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tkeep = true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// in-place compaction\n\n\t\t\tif ( keep ) {\n\n\t\t\t\tif ( i !== writeIndex ) {\n\n\t\t\t\t\ttimes[ writeIndex ] = times[ i ];\n\n\t\t\t\t\tconst readOffset = i * stride,\n\t\t\t\t\t\twriteOffset = writeIndex * stride;\n\n\t\t\t\t\tfor ( let j = 0; j !== stride; ++ j ) {\n\n\t\t\t\t\t\tvalues[ writeOffset + j ] = values[ readOffset + j ];\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t++ writeIndex;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// flush last keyframe (compaction looks ahead)\n\n\t\tif ( lastIndex > 0 ) {\n\n\t\t\ttimes[ writeIndex ] = times[ lastIndex ];\n\n\t\t\tfor ( let readOffset = lastIndex * stride, writeOffset = writeIndex * stride, j = 0; j !== stride; ++ j ) {\n\n\t\t\t\tvalues[ writeOffset + j ] = values[ readOffset + j ];\n\n\t\t\t}\n\n\t\t\t++ writeIndex;\n\n\t\t}\n\n\t\tif ( writeIndex !== times.length ) {\n\n\t\t\tthis.times = AnimationUtils.arraySlice( times, 0, writeIndex );\n\t\t\tthis.values = AnimationUtils.arraySlice( values, 0, writeIndex * stride );\n\n\t\t} else {\n\n\t\t\tthis.times = times;\n\t\t\tthis.values = values;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\tconst times = AnimationUtils.arraySlice( this.times, 0 );\n\t\tconst values = AnimationUtils.arraySlice( this.values, 0 );\n\n\t\tconst TypedKeyframeTrack = this.constructor;\n\t\tconst track = new TypedKeyframeTrack( this.name, times, values );\n\n\t\t// Interpolant argument to constructor is not saved, so copy the factory method directly.\n\t\ttrack.createInterpolant = this.createInterpolant;\n\n\t\treturn track;\n\n\t}\n\n}\n\nKeyframeTrack.prototype.TimeBufferType = Float32Array;\nKeyframeTrack.prototype.ValueBufferType = Float32Array;\nKeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;\n\n/**\n * A Track of Boolean keyframe values.\n */\nclass BooleanKeyframeTrack extends KeyframeTrack {}\n\nBooleanKeyframeTrack.prototype.ValueTypeName = 'bool';\nBooleanKeyframeTrack.prototype.ValueBufferType = Array;\nBooleanKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A Track of keyframe values that represent color.\n */\nclass ColorKeyframeTrack extends KeyframeTrack {}\n\nColorKeyframeTrack.prototype.ValueTypeName = 'color';\n\n/**\n * A Track of numeric keyframe values.\n */\nclass NumberKeyframeTrack extends KeyframeTrack {}\n\nNumberKeyframeTrack.prototype.ValueTypeName = 'number';\n\n/**\n * Spherical linear unit quaternion interpolant.\n */\n\nclass QuaternionLinearInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\n\t\t\talpha = ( t - t0 ) / ( t1 - t0 );\n\n\t\tlet offset = i1 * stride;\n\n\t\tfor ( let end = offset + stride; offset !== end; offset += 4 ) {\n\n\t\t\tQuaternion.slerpFlat( result, 0, values, offset - stride, values, offset, alpha );\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\n/**\n * A Track of quaternion keyframe values.\n */\nclass QuaternionKeyframeTrack extends KeyframeTrack {\n\n\tInterpolantFactoryMethodLinear( result ) {\n\n\t\treturn new QuaternionLinearInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n}\n\nQuaternionKeyframeTrack.prototype.ValueTypeName = 'quaternion';\n// ValueBufferType is inherited\nQuaternionKeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;\nQuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A Track that interpolates Strings\n */\nclass StringKeyframeTrack extends KeyframeTrack {}\n\nStringKeyframeTrack.prototype.ValueTypeName = 'string';\nStringKeyframeTrack.prototype.ValueBufferType = Array;\nStringKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A Track of vectored keyframe values.\n */\nclass VectorKeyframeTrack extends KeyframeTrack {}\n\nVectorKeyframeTrack.prototype.ValueTypeName = 'vector';\n\nclass AnimationClip {\n\n\tconstructor( name, duration = - 1, tracks, blendMode = NormalAnimationBlendMode ) {\n\n\t\tthis.name = name;\n\t\tthis.tracks = tracks;\n\t\tthis.duration = duration;\n\t\tthis.blendMode = blendMode;\n\n\t\tthis.uuid = generateUUID();\n\n\t\t// this means it should figure out its duration by scanning the tracks\n\t\tif ( this.duration < 0 ) {\n\n\t\t\tthis.resetDuration();\n\n\t\t}\n\n\t}\n\n\n\tstatic parse( json ) {\n\n\t\tconst tracks = [],\n\t\t\tjsonTracks = json.tracks,\n\t\t\tframeTime = 1.0 / ( json.fps || 1.0 );\n\n\t\tfor ( let i = 0, n = jsonTracks.length; i !== n; ++ i ) {\n\n\t\t\ttracks.push( parseKeyframeTrack( jsonTracks[ i ] ).scale( frameTime ) );\n\n\t\t}\n\n\t\tconst clip = new this( json.name, json.duration, tracks, json.blendMode );\n\t\tclip.uuid = json.uuid;\n\n\t\treturn clip;\n\n\t}\n\n\tstatic toJSON( clip ) {\n\n\t\tconst tracks = [],\n\t\t\tclipTracks = clip.tracks;\n\n\t\tconst json = {\n\n\t\t\t'name': clip.name,\n\t\t\t'duration': clip.duration,\n\t\t\t'tracks': tracks,\n\t\t\t'uuid': clip.uuid,\n\t\t\t'blendMode': clip.blendMode\n\n\t\t};\n\n\t\tfor ( let i = 0, n = clipTracks.length; i !== n; ++ i ) {\n\n\t\t\ttracks.push( KeyframeTrack.toJSON( clipTracks[ i ] ) );\n\n\t\t}\n\n\t\treturn json;\n\n\t}\n\n\tstatic CreateFromMorphTargetSequence( name, morphTargetSequence, fps, noLoop ) {\n\n\t\tconst numMorphTargets = morphTargetSequence.length;\n\t\tconst tracks = [];\n\n\t\tfor ( let i = 0; i < numMorphTargets; i ++ ) {\n\n\t\t\tlet times = [];\n\t\t\tlet values = [];\n\n\t\t\ttimes.push(\n\t\t\t\t( i + numMorphTargets - 1 ) % numMorphTargets,\n\t\t\t\ti,\n\t\t\t\t( i + 1 ) % numMorphTargets );\n\n\t\t\tvalues.push( 0, 1, 0 );\n\n\t\t\tconst order = AnimationUtils.getKeyframeOrder( times );\n\t\t\ttimes = AnimationUtils.sortedArray( times, 1, order );\n\t\t\tvalues = AnimationUtils.sortedArray( values, 1, order );\n\n\t\t\t// if there is a key at the first frame, duplicate it as the\n\t\t\t// last frame as well for perfect loop.\n\t\t\tif ( ! noLoop && times[ 0 ] === 0 ) {\n\n\t\t\t\ttimes.push( numMorphTargets );\n\t\t\t\tvalues.push( values[ 0 ] );\n\n\t\t\t}\n\n\t\t\ttracks.push(\n\t\t\t\tnew NumberKeyframeTrack(\n\t\t\t\t\t'.morphTargetInfluences[' + morphTargetSequence[ i ].name + ']',\n\t\t\t\t\ttimes, values\n\t\t\t\t).scale( 1.0 / fps ) );\n\n\t\t}\n\n\t\treturn new this( name, - 1, tracks );\n\n\t}\n\n\tstatic findByName( objectOrClipArray, name ) {\n\n\t\tlet clipArray = objectOrClipArray;\n\n\t\tif ( ! Array.isArray( objectOrClipArray ) ) {\n\n\t\t\tconst o = objectOrClipArray;\n\t\t\tclipArray = o.geometry && o.geometry.animations || o.animations;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < clipArray.length; i ++ ) {\n\n\t\t\tif ( clipArray[ i ].name === name ) {\n\n\t\t\t\treturn clipArray[ i ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\tstatic CreateClipsFromMorphTargetSequences( morphTargets, fps, noLoop ) {\n\n\t\tconst animationToMorphTargets = {};\n\n\t\t// tested with https://regex101.com/ on trick sequences\n\t\t// such flamingo_flyA_003, flamingo_run1_003, crdeath0059\n\t\tconst pattern = /^([\\w-]*?)([\\d]+)$/;\n\n\t\t// sort morph target names into animation groups based\n\t\t// patterns like Walk_001, Walk_002, Run_001, Run_002\n\t\tfor ( let i = 0, il = morphTargets.length; i < il; i ++ ) {\n\n\t\t\tconst morphTarget = morphTargets[ i ];\n\t\t\tconst parts = morphTarget.name.match( pattern );\n\n\t\t\tif ( parts && parts.length > 1 ) {\n\n\t\t\t\tconst name = parts[ 1 ];\n\n\t\t\t\tlet animationMorphTargets = animationToMorphTargets[ name ];\n\n\t\t\t\tif ( ! animationMorphTargets ) {\n\n\t\t\t\t\tanimationToMorphTargets[ name ] = animationMorphTargets = [];\n\n\t\t\t\t}\n\n\t\t\t\tanimationMorphTargets.push( morphTarget );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst clips = [];\n\n\t\tfor ( const name in animationToMorphTargets ) {\n\n\t\t\tclips.push( this.CreateFromMorphTargetSequence( name, animationToMorphTargets[ name ], fps, noLoop ) );\n\n\t\t}\n\n\t\treturn clips;\n\n\t}\n\n\t// parse the animation.hierarchy format\n\tstatic parseAnimation( animation, bones ) {\n\n\t\tif ( ! animation ) {\n\n\t\t\tconsole.error( 'THREE.AnimationClip: No animation in JSONLoader data.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst addNonemptyTrack = function ( trackType, trackName, animationKeys, propertyName, destTracks ) {\n\n\t\t\t// only return track if there are actually keys.\n\t\t\tif ( animationKeys.length !== 0 ) {\n\n\t\t\t\tconst times = [];\n\t\t\t\tconst values = [];\n\n\t\t\t\tAnimationUtils.flattenJSON( animationKeys, times, values, propertyName );\n\n\t\t\t\t// empty keys are filtered out, so check again\n\t\t\t\tif ( times.length !== 0 ) {\n\n\t\t\t\t\tdestTracks.push( new trackType( trackName, times, values ) );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tconst tracks = [];\n\n\t\tconst clipName = animation.name || 'default';\n\t\tconst fps = animation.fps || 30;\n\t\tconst blendMode = animation.blendMode;\n\n\t\t// automatic length determination in AnimationClip.\n\t\tlet duration = animation.length || - 1;\n\n\t\tconst hierarchyTracks = animation.hierarchy || [];\n\n\t\tfor ( let h = 0; h < hierarchyTracks.length; h ++ ) {\n\n\t\t\tconst animationKeys = hierarchyTracks[ h ].keys;\n\n\t\t\t// skip empty tracks\n\t\t\tif ( ! animationKeys || animationKeys.length === 0 ) continue;\n\n\t\t\t// process morph targets\n\t\t\tif ( animationKeys[ 0 ].morphTargets ) {\n\n\t\t\t\t// figure out all morph targets used in this track\n\t\t\t\tconst morphTargetNames = {};\n\n\t\t\t\tlet k;\n\n\t\t\t\tfor ( k = 0; k < animationKeys.length; k ++ ) {\n\n\t\t\t\t\tif ( animationKeys[ k ].morphTargets ) {\n\n\t\t\t\t\t\tfor ( let m = 0; m < animationKeys[ k ].morphTargets.length; m ++ ) {\n\n\t\t\t\t\t\t\tmorphTargetNames[ animationKeys[ k ].morphTargets[ m ] ] = - 1;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// create a track for each morph target with all zero\n\t\t\t\t// morphTargetInfluences except for the keys in which\n\t\t\t\t// the morphTarget is named.\n\t\t\t\tfor ( const morphTargetName in morphTargetNames ) {\n\n\t\t\t\t\tconst times = [];\n\t\t\t\t\tconst values = [];\n\n\t\t\t\t\tfor ( let m = 0; m !== animationKeys[ k ].morphTargets.length; ++ m ) {\n\n\t\t\t\t\t\tconst animationKey = animationKeys[ k ];\n\n\t\t\t\t\t\ttimes.push( animationKey.time );\n\t\t\t\t\t\tvalues.push( ( animationKey.morphTarget === morphTargetName ) ? 1 : 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttracks.push( new NumberKeyframeTrack( '.morphTargetInfluence[' + morphTargetName + ']', times, values ) );\n\n\t\t\t\t}\n\n\t\t\t\tduration = morphTargetNames.length * ( fps || 1.0 );\n\n\t\t\t} else {\n\n\t\t\t\t// ...assume skeletal animation\n\n\t\t\t\tconst boneName = '.bones[' + bones[ h ].name + ']';\n\n\t\t\t\taddNonemptyTrack(\n\t\t\t\t\tVectorKeyframeTrack, boneName + '.position',\n\t\t\t\t\tanimationKeys, 'pos', tracks );\n\n\t\t\t\taddNonemptyTrack(\n\t\t\t\t\tQuaternionKeyframeTrack, boneName + '.quaternion',\n\t\t\t\t\tanimationKeys, 'rot', tracks );\n\n\t\t\t\taddNonemptyTrack(\n\t\t\t\t\tVectorKeyframeTrack, boneName + '.scale',\n\t\t\t\t\tanimationKeys, 'scl', tracks );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( tracks.length === 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst clip = new this( clipName, duration, tracks, blendMode );\n\n\t\treturn clip;\n\n\t}\n\n\tresetDuration() {\n\n\t\tconst tracks = this.tracks;\n\t\tlet duration = 0;\n\n\t\tfor ( let i = 0, n = tracks.length; i !== n; ++ i ) {\n\n\t\t\tconst track = this.tracks[ i ];\n\n\t\t\tduration = Math.max( duration, track.times[ track.times.length - 1 ] );\n\n\t\t}\n\n\t\tthis.duration = duration;\n\n\t\treturn this;\n\n\t}\n\n\ttrim() {\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\tthis.tracks[ i ].trim( 0, this.duration );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tvalidate() {\n\n\t\tlet valid = true;\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\tvalid = valid && this.tracks[ i ].validate();\n\n\t\t}\n\n\t\treturn valid;\n\n\t}\n\n\toptimize() {\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\tthis.tracks[ i ].optimize();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\tconst tracks = [];\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\ttracks.push( this.tracks[ i ].clone() );\n\n\t\t}\n\n\t\treturn new this.constructor( this.name, this.duration, tracks, this.blendMode );\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.constructor.toJSON( this );\n\n\t}\n\n}\n\nfunction getTrackTypeForValueTypeName( typeName ) {\n\n\tswitch ( typeName.toLowerCase() ) {\n\n\t\tcase 'scalar':\n\t\tcase 'double':\n\t\tcase 'float':\n\t\tcase 'number':\n\t\tcase 'integer':\n\n\t\t\treturn NumberKeyframeTrack;\n\n\t\tcase 'vector':\n\t\tcase 'vector2':\n\t\tcase 'vector3':\n\t\tcase 'vector4':\n\n\t\t\treturn VectorKeyframeTrack;\n\n\t\tcase 'color':\n\n\t\t\treturn ColorKeyframeTrack;\n\n\t\tcase 'quaternion':\n\n\t\t\treturn QuaternionKeyframeTrack;\n\n\t\tcase 'bool':\n\t\tcase 'boolean':\n\n\t\t\treturn BooleanKeyframeTrack;\n\n\t\tcase 'string':\n\n\t\t\treturn StringKeyframeTrack;\n\n\t}\n\n\tthrow new Error( 'THREE.KeyframeTrack: Unsupported typeName: ' + typeName );\n\n}\n\nfunction parseKeyframeTrack( json ) {\n\n\tif ( json.type === undefined ) {\n\n\t\tthrow new Error( 'THREE.KeyframeTrack: track type undefined, can not parse' );\n\n\t}\n\n\tconst trackType = getTrackTypeForValueTypeName( json.type );\n\n\tif ( json.times === undefined ) {\n\n\t\tconst times = [], values = [];\n\n\t\tAnimationUtils.flattenJSON( json.keys, times, values, 'value' );\n\n\t\tjson.times = times;\n\t\tjson.values = values;\n\n\t}\n\n\t// derived classes can define a static parse method\n\tif ( trackType.parse !== undefined ) {\n\n\t\treturn trackType.parse( json );\n\n\t} else {\n\n\t\t// by default, we assume a constructor compatible with the base\n\t\treturn new trackType( json.name, json.times, json.values, json.interpolation );\n\n\t}\n\n}\n\nconst Cache = {\n\n\tenabled: false,\n\n\tfiles: {},\n\n\tadd: function ( key, file ) {\n\n\t\tif ( this.enabled === false ) return;\n\n\t\t// console.log( 'THREE.Cache', 'Adding key:', key );\n\n\t\tthis.files[ key ] = file;\n\n\t},\n\n\tget: function ( key ) {\n\n\t\tif ( this.enabled === false ) return;\n\n\t\t// console.log( 'THREE.Cache', 'Checking key:', key );\n\n\t\treturn this.files[ key ];\n\n\t},\n\n\tremove: function ( key ) {\n\n\t\tdelete this.files[ key ];\n\n\t},\n\n\tclear: function () {\n\n\t\tthis.files = {};\n\n\t}\n\n};\n\nclass LoadingManager {\n\n\tconstructor( onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tlet isLoading = false;\n\t\tlet itemsLoaded = 0;\n\t\tlet itemsTotal = 0;\n\t\tlet urlModifier = undefined;\n\t\tconst handlers = [];\n\n\t\t// Refer to #5689 for the reason why we don't set .onStart\n\t\t// in the constructor\n\n\t\tthis.onStart = undefined;\n\t\tthis.onLoad = onLoad;\n\t\tthis.onProgress = onProgress;\n\t\tthis.onError = onError;\n\n\t\tthis.itemStart = function ( url ) {\n\n\t\t\titemsTotal ++;\n\n\t\t\tif ( isLoading === false ) {\n\n\t\t\t\tif ( scope.onStart !== undefined ) {\n\n\t\t\t\t\tscope.onStart( url, itemsLoaded, itemsTotal );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tisLoading = true;\n\n\t\t};\n\n\t\tthis.itemEnd = function ( url ) {\n\n\t\t\titemsLoaded ++;\n\n\t\t\tif ( scope.onProgress !== undefined ) {\n\n\t\t\t\tscope.onProgress( url, itemsLoaded, itemsTotal );\n\n\t\t\t}\n\n\t\t\tif ( itemsLoaded === itemsTotal ) {\n\n\t\t\t\tisLoading = false;\n\n\t\t\t\tif ( scope.onLoad !== undefined ) {\n\n\t\t\t\t\tscope.onLoad();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.itemError = function ( url ) {\n\n\t\t\tif ( scope.onError !== undefined ) {\n\n\t\t\t\tscope.onError( url );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.resolveURL = function ( url ) {\n\n\t\t\tif ( urlModifier ) {\n\n\t\t\t\treturn urlModifier( url );\n\n\t\t\t}\n\n\t\t\treturn url;\n\n\t\t};\n\n\t\tthis.setURLModifier = function ( transform ) {\n\n\t\t\turlModifier = transform;\n\n\t\t\treturn this;\n\n\t\t};\n\n\t\tthis.addHandler = function ( regex, loader ) {\n\n\t\t\thandlers.push( regex, loader );\n\n\t\t\treturn this;\n\n\t\t};\n\n\t\tthis.removeHandler = function ( regex ) {\n\n\t\t\tconst index = handlers.indexOf( regex );\n\n\t\t\tif ( index !== - 1 ) {\n\n\t\t\t\thandlers.splice( index, 2 );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t};\n\n\t\tthis.getHandler = function ( file ) {\n\n\t\t\tfor ( let i = 0, l = handlers.length; i < l; i += 2 ) {\n\n\t\t\t\tconst regex = handlers[ i ];\n\t\t\t\tconst loader = handlers[ i + 1 ];\n\n\t\t\t\tif ( regex.global ) regex.lastIndex = 0; // see #17920\n\n\t\t\t\tif ( regex.test( file ) ) {\n\n\t\t\t\t\treturn loader;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn null;\n\n\t\t};\n\n\t}\n\n}\n\nconst DefaultLoadingManager = new LoadingManager();\n\nclass Loader {\n\n\tconstructor( manager ) {\n\n\t\tthis.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager;\n\n\t\tthis.crossOrigin = 'anonymous';\n\t\tthis.withCredentials = false;\n\t\tthis.path = '';\n\t\tthis.resourcePath = '';\n\t\tthis.requestHeader = {};\n\n\t}\n\n\tload( /* url, onLoad, onProgress, onError */ ) {}\n\n\tloadAsync( url, onProgress ) {\n\n\t\tconst scope = this;\n\n\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\tscope.load( url, resolve, onProgress, reject );\n\n\t\t} );\n\n\t}\n\n\tparse( /* data */ ) {}\n\n\tsetCrossOrigin( crossOrigin ) {\n\n\t\tthis.crossOrigin = crossOrigin;\n\t\treturn this;\n\n\t}\n\n\tsetWithCredentials( value ) {\n\n\t\tthis.withCredentials = value;\n\t\treturn this;\n\n\t}\n\n\tsetPath( path ) {\n\n\t\tthis.path = path;\n\t\treturn this;\n\n\t}\n\n\tsetResourcePath( resourcePath ) {\n\n\t\tthis.resourcePath = resourcePath;\n\t\treturn this;\n\n\t}\n\n\tsetRequestHeader( requestHeader ) {\n\n\t\tthis.requestHeader = requestHeader;\n\t\treturn this;\n\n\t}\n\n}\n\nconst loading = {};\n\nclass FileLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tif ( url === undefined ) url = '';\n\n\t\tif ( this.path !== undefined ) url = this.path + url;\n\n\t\turl = this.manager.resolveURL( url );\n\n\t\tconst cached = Cache.get( url );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tthis.manager.itemStart( url );\n\n\t\t\tsetTimeout( () => {\n\n\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\tthis.manager.itemEnd( url );\n\n\t\t\t}, 0 );\n\n\t\t\treturn cached;\n\n\t\t}\n\n\t\t// Check if request is duplicate\n\n\t\tif ( loading[ url ] !== undefined ) {\n\n\t\t\tloading[ url ].push( {\n\n\t\t\t\tonLoad: onLoad,\n\t\t\t\tonProgress: onProgress,\n\t\t\t\tonError: onError\n\n\t\t\t} );\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t// Initialise array for duplicate requests\n\t\tloading[ url ] = [];\n\n\t\tloading[ url ].push( {\n\t\t\tonLoad: onLoad,\n\t\t\tonProgress: onProgress,\n\t\t\tonError: onError,\n\t\t} );\n\n\t\t// create request\n\t\tconst req = new Request( url, {\n\t\t\theaders: new Headers( this.requestHeader ),\n\t\t\tcredentials: this.withCredentials ? 'include' : 'same-origin',\n\t\t\t// An abort controller could be added within a future PR\n\t\t} );\n\n\t\t// record states ( avoid data race )\n\t\tconst mimeType = this.mimeType;\n\t\tconst responseType = this.responseType;\n\n\t\t// start the fetch\n\t\tfetch( req )\n\t\t\t.then( response => {\n\n\t\t\t\tif ( response.status === 200 || response.status === 0 ) {\n\n\t\t\t\t\t// Some browsers return HTTP Status 0 when using non-http protocol\n\t\t\t\t\t// e.g. 'file://' or 'data://'. Handle as success.\n\n\t\t\t\t\tif ( response.status === 0 ) {\n\n\t\t\t\t\t\tconsole.warn( 'THREE.FileLoader: HTTP Status 0 received.' );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( typeof ReadableStream === 'undefined' || response.body.getReader === undefined ) {\n\n\t\t\t\t\t\treturn response;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst callbacks = loading[ url ];\n\t\t\t\t\tconst reader = response.body.getReader();\n\t\t\t\t\tconst contentLength = response.headers.get( 'Content-Length' );\n\t\t\t\t\tconst total = contentLength ? parseInt( contentLength ) : 0;\n\t\t\t\t\tconst lengthComputable = total !== 0;\n\t\t\t\t\tlet loaded = 0;\n\n\t\t\t\t\t// periodically read data into the new stream tracking while download progress\n\t\t\t\t\tconst stream = new ReadableStream( {\n\t\t\t\t\t\tstart( controller ) {\n\n\t\t\t\t\t\t\treadData();\n\n\t\t\t\t\t\t\tfunction readData() {\n\n\t\t\t\t\t\t\t\treader.read().then( ( { done, value } ) => {\n\n\t\t\t\t\t\t\t\t\tif ( done ) {\n\n\t\t\t\t\t\t\t\t\t\tcontroller.close();\n\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\tloaded += value.byteLength;\n\n\t\t\t\t\t\t\t\t\t\tconst event = new ProgressEvent( 'progress', { lengthComputable, loaded, total } );\n\t\t\t\t\t\t\t\t\t\tfor ( let i = 0, il = callbacks.length; i < il; i ++ ) {\n\n\t\t\t\t\t\t\t\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\t\t\t\t\t\t\t\tif ( callback.onProgress ) callback.onProgress( event );\n\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tcontroller.enqueue( value );\n\t\t\t\t\t\t\t\t\t\treadData();\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn new Response( stream );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow Error( `fetch for \"${response.url}\" responded with ${response.status}: ${response.statusText}` );\n\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.then( response => {\n\n\t\t\t\tswitch ( responseType ) {\n\n\t\t\t\t\tcase 'arraybuffer':\n\n\t\t\t\t\t\treturn response.arrayBuffer();\n\n\t\t\t\t\tcase 'blob':\n\n\t\t\t\t\t\treturn response.blob();\n\n\t\t\t\t\tcase 'document':\n\n\t\t\t\t\t\treturn response.text()\n\t\t\t\t\t\t\t.then( text => {\n\n\t\t\t\t\t\t\t\tconst parser = new DOMParser();\n\t\t\t\t\t\t\t\treturn parser.parseFromString( text, mimeType );\n\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\tcase 'json':\n\n\t\t\t\t\t\treturn response.json();\n\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tif ( mimeType === undefined ) {\n\n\t\t\t\t\t\t\treturn response.text();\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// sniff encoding\n\t\t\t\t\t\t\tconst re = /charset=\"?([^;\"\\s]*)\"?/i;\n\t\t\t\t\t\t\tconst exec = re.exec( mimeType );\n\t\t\t\t\t\t\tconst label = exec && exec[ 1 ] ? exec[ 1 ].toLowerCase() : undefined;\n\t\t\t\t\t\t\tconst decoder = new TextDecoder( label );\n\t\t\t\t\t\t\treturn response.arrayBuffer().then( ab => decoder.decode( ab ) );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.then( data => {\n\n\t\t\t\t// Add to cache only on HTTP success, so that we do not cache\n\t\t\t\t// error response bodies as proper responses to requests.\n\t\t\t\tCache.add( url, data );\n\n\t\t\t\tconst callbacks = loading[ url ];\n\t\t\t\tdelete loading[ url ];\n\n\t\t\t\tfor ( let i = 0, il = callbacks.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\t\tif ( callback.onLoad ) callback.onLoad( data );\n\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.catch( err => {\n\n\t\t\t\t// Abort errors and other errors are handled the same\n\n\t\t\t\tconst callbacks = loading[ url ];\n\n\t\t\t\tif ( callbacks === undefined ) {\n\n\t\t\t\t\t// When onLoad was called and url was deleted in `loading`\n\t\t\t\t\tthis.manager.itemError( url );\n\t\t\t\t\tthrow err;\n\n\t\t\t\t}\n\n\t\t\t\tdelete loading[ url ];\n\n\t\t\t\tfor ( let i = 0, il = callbacks.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\t\tif ( callback.onError ) callback.onError( err );\n\n\t\t\t\t}\n\n\t\t\t\tthis.manager.itemError( url );\n\n\t\t\t} )\n\t\t\t.finally( () => {\n\n\t\t\t\tthis.manager.itemEnd( url );\n\n\t\t\t} );\n\n\t\tthis.manager.itemStart( url );\n\n\t}\n\n\tsetResponseType( value ) {\n\n\t\tthis.responseType = value;\n\t\treturn this;\n\n\t}\n\n\tsetMimeType( value ) {\n\n\t\tthis.mimeType = value;\n\t\treturn this;\n\n\t}\n\n}\n\nclass AnimationLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( JSON.parse( text ) ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tparse( json ) {\n\n\t\tconst animations = [];\n\n\t\tfor ( let i = 0; i < json.length; i ++ ) {\n\n\t\t\tconst clip = AnimationClip.parse( json[ i ] );\n\n\t\t\tanimations.push( clip );\n\n\t\t}\n\n\t\treturn animations;\n\n\t}\n\n}\n\n/**\n * Abstract Base class to block based textures loader (dds, pvr, ...)\n *\n * Sub classes have to implement the parse() method which will be used in load().\n */\n\nclass CompressedTextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst images = [];\n\n\t\tconst texture = new CompressedTexture();\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\n\t\tlet loaded = 0;\n\n\t\tfunction loadTexture( i ) {\n\n\t\t\tloader.load( url[ i ], function ( buffer ) {\n\n\t\t\t\tconst texDatas = scope.parse( buffer, true );\n\n\t\t\t\timages[ i ] = {\n\t\t\t\t\twidth: texDatas.width,\n\t\t\t\t\theight: texDatas.height,\n\t\t\t\t\tformat: texDatas.format,\n\t\t\t\t\tmipmaps: texDatas.mipmaps\n\t\t\t\t};\n\n\t\t\t\tloaded += 1;\n\n\t\t\t\tif ( loaded === 6 ) {\n\n\t\t\t\t\tif ( texDatas.mipmapCount === 1 ) texture.minFilter = LinearFilter;\n\n\t\t\t\t\ttexture.image = images;\n\t\t\t\t\ttexture.format = texDatas.format;\n\t\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\t\tif ( onLoad ) onLoad( texture );\n\n\t\t\t\t}\n\n\t\t\t}, onProgress, onError );\n\n\t\t}\n\n\t\tif ( Array.isArray( url ) ) {\n\n\t\t\tfor ( let i = 0, il = url.length; i < il; ++ i ) {\n\n\t\t\t\tloadTexture( i );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// compressed cubemap texture stored in a single DDS file\n\n\t\t\tloader.load( url, function ( buffer ) {\n\n\t\t\t\tconst texDatas = scope.parse( buffer, true );\n\n\t\t\t\tif ( texDatas.isCubemap ) {\n\n\t\t\t\t\tconst faces = texDatas.mipmaps.length / texDatas.mipmapCount;\n\n\t\t\t\t\tfor ( let f = 0; f < faces; f ++ ) {\n\n\t\t\t\t\t\timages[ f ] = { mipmaps: [] };\n\n\t\t\t\t\t\tfor ( let i = 0; i < texDatas.mipmapCount; i ++ ) {\n\n\t\t\t\t\t\t\timages[ f ].mipmaps.push( texDatas.mipmaps[ f * texDatas.mipmapCount + i ] );\n\t\t\t\t\t\t\timages[ f ].format = texDatas.format;\n\t\t\t\t\t\t\timages[ f ].width = texDatas.width;\n\t\t\t\t\t\t\timages[ f ].height = texDatas.height;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttexture.image = images;\n\n\t\t\t\t} else {\n\n\t\t\t\t\ttexture.image.width = texDatas.width;\n\t\t\t\t\ttexture.image.height = texDatas.height;\n\t\t\t\t\ttexture.mipmaps = texDatas.mipmaps;\n\n\t\t\t\t}\n\n\t\t\t\tif ( texDatas.mipmapCount === 1 ) {\n\n\t\t\t\t\ttexture.minFilter = LinearFilter;\n\n\t\t\t\t}\n\n\t\t\t\ttexture.format = texDatas.format;\n\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\tif ( onLoad ) onLoad( texture );\n\n\t\t\t}, onProgress, onError );\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n}\n\nclass ImageLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tif ( this.path !== undefined ) url = this.path + url;\n\n\t\turl = this.manager.resolveURL( url );\n\n\t\tconst scope = this;\n\n\t\tconst cached = Cache.get( url );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tscope.manager.itemStart( url );\n\n\t\t\tsetTimeout( function () {\n\n\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t}, 0 );\n\n\t\t\treturn cached;\n\n\t\t}\n\n\t\tconst image = createElementNS( 'img' );\n\n\t\tfunction onImageLoad() {\n\n\t\t\tremoveEventListeners();\n\n\t\t\tCache.add( url, this );\n\n\t\t\tif ( onLoad ) onLoad( this );\n\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t}\n\n\t\tfunction onImageError( event ) {\n\n\t\t\tremoveEventListeners();\n\n\t\t\tif ( onError ) onError( event );\n\n\t\t\tscope.manager.itemError( url );\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t}\n\n\t\tfunction removeEventListeners() {\n\n\t\t\timage.removeEventListener( 'load', onImageLoad, false );\n\t\t\timage.removeEventListener( 'error', onImageError, false );\n\n\t\t}\n\n\t\timage.addEventListener( 'load', onImageLoad, false );\n\t\timage.addEventListener( 'error', onImageError, false );\n\n\t\tif ( url.substr( 0, 5 ) !== 'data:' ) {\n\n\t\t\tif ( this.crossOrigin !== undefined ) image.crossOrigin = this.crossOrigin;\n\n\t\t}\n\n\t\tscope.manager.itemStart( url );\n\n\t\timage.src = url;\n\n\t\treturn image;\n\n\t}\n\n}\n\nclass CubeTextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( urls, onLoad, onProgress, onError ) {\n\n\t\tconst texture = new CubeTexture();\n\n\t\tconst loader = new ImageLoader( this.manager );\n\t\tloader.setCrossOrigin( this.crossOrigin );\n\t\tloader.setPath( this.path );\n\n\t\tlet loaded = 0;\n\n\t\tfunction loadTexture( i ) {\n\n\t\t\tloader.load( urls[ i ], function ( image ) {\n\n\t\t\t\ttexture.images[ i ] = image;\n\n\t\t\t\tloaded ++;\n\n\t\t\t\tif ( loaded === 6 ) {\n\n\t\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\t\tif ( onLoad ) onLoad( texture );\n\n\t\t\t\t}\n\n\t\t\t}, undefined, onError );\n\n\t\t}\n\n\t\tfor ( let i = 0; i < urls.length; ++ i ) {\n\n\t\t\tloadTexture( i );\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n}\n\n/**\n * Abstract Base class to load generic binary textures formats (rgbe, hdr, ...)\n *\n * Sub classes have to implement the parse() method which will be used in load().\n */\n\nclass DataTextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst texture = new DataTexture();\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setPath( this.path );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\t\tloader.load( url, function ( buffer ) {\n\n\t\t\tconst texData = scope.parse( buffer );\n\n\t\t\tif ( ! texData ) return;\n\n\t\t\tif ( texData.image !== undefined ) {\n\n\t\t\t\ttexture.image = texData.image;\n\n\t\t\t} else if ( texData.data !== undefined ) {\n\n\t\t\t\ttexture.image.width = texData.width;\n\t\t\t\ttexture.image.height = texData.height;\n\t\t\t\ttexture.image.data = texData.data;\n\n\t\t\t}\n\n\t\t\ttexture.wrapS = texData.wrapS !== undefined ? texData.wrapS : ClampToEdgeWrapping;\n\t\t\ttexture.wrapT = texData.wrapT !== undefined ? texData.wrapT : ClampToEdgeWrapping;\n\n\t\t\ttexture.magFilter = texData.magFilter !== undefined ? texData.magFilter : LinearFilter;\n\t\t\ttexture.minFilter = texData.minFilter !== undefined ? texData.minFilter : LinearFilter;\n\n\t\t\ttexture.anisotropy = texData.anisotropy !== undefined ? texData.anisotropy : 1;\n\n\t\t\tif ( texData.encoding !== undefined ) {\n\n\t\t\t\ttexture.encoding = texData.encoding;\n\n\t\t\t}\n\n\t\t\tif ( texData.flipY !== undefined ) {\n\n\t\t\t\ttexture.flipY = texData.flipY;\n\n\t\t\t}\n\n\t\t\tif ( texData.format !== undefined ) {\n\n\t\t\t\ttexture.format = texData.format;\n\n\t\t\t}\n\n\t\t\tif ( texData.type !== undefined ) {\n\n\t\t\t\ttexture.type = texData.type;\n\n\t\t\t}\n\n\t\t\tif ( texData.mipmaps !== undefined ) {\n\n\t\t\t\ttexture.mipmaps = texData.mipmaps;\n\t\t\t\ttexture.minFilter = LinearMipmapLinearFilter; // presumably...\n\n\t\t\t}\n\n\t\t\tif ( texData.mipmapCount === 1 ) {\n\n\t\t\t\ttexture.minFilter = LinearFilter;\n\n\t\t\t}\n\n\t\t\tif ( texData.generateMipmaps !== undefined ) {\n\n\t\t\t\ttexture.generateMipmaps = texData.generateMipmaps;\n\n\t\t\t}\n\n\t\t\ttexture.needsUpdate = true;\n\n\t\t\tif ( onLoad ) onLoad( texture, texData );\n\n\t\t}, onProgress, onError );\n\n\n\t\treturn texture;\n\n\t}\n\n}\n\nclass TextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst texture = new Texture();\n\n\t\tconst loader = new ImageLoader( this.manager );\n\t\tloader.setCrossOrigin( this.crossOrigin );\n\t\tloader.setPath( this.path );\n\n\t\tloader.load( url, function ( image ) {\n\n\t\t\ttexture.image = image;\n\t\t\ttexture.needsUpdate = true;\n\n\t\t\tif ( onLoad !== undefined ) {\n\n\t\t\t\tonLoad( texture );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t\treturn texture;\n\n\t}\n\n}\n\nclass Light extends Object3D {\n\n\tconstructor( color, intensity = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Light';\n\n\t\tthis.color = new Color( color );\n\t\tthis.intensity = intensity;\n\n\t}\n\n\tdispose() {\n\n\t\t// Empty here in base class; some subclasses override.\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\t\tthis.intensity = source.intensity;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.color = this.color.getHex();\n\t\tdata.object.intensity = this.intensity;\n\n\t\tif ( this.groundColor !== undefined ) data.object.groundColor = this.groundColor.getHex();\n\n\t\tif ( this.distance !== undefined ) data.object.distance = this.distance;\n\t\tif ( this.angle !== undefined ) data.object.angle = this.angle;\n\t\tif ( this.decay !== undefined ) data.object.decay = this.decay;\n\t\tif ( this.penumbra !== undefined ) data.object.penumbra = this.penumbra;\n\n\t\tif ( this.shadow !== undefined ) data.object.shadow = this.shadow.toJSON();\n\n\t\treturn data;\n\n\t}\n\n}\n\nLight.prototype.isLight = true;\n\nclass HemisphereLight extends Light {\n\n\tconstructor( skyColor, groundColor, intensity ) {\n\n\t\tsuper( skyColor, intensity );\n\n\t\tthis.type = 'HemisphereLight';\n\n\t\tthis.position.copy( Object3D.DefaultUp );\n\t\tthis.updateMatrix();\n\n\t\tthis.groundColor = new Color( groundColor );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tLight.prototype.copy.call( this, source );\n\n\t\tthis.groundColor.copy( source.groundColor );\n\n\t\treturn this;\n\n\t}\n\n}\n\nHemisphereLight.prototype.isHemisphereLight = true;\n\nconst _projScreenMatrix$1 = /*@__PURE__*/ new Matrix4();\nconst _lightPositionWorld$1 = /*@__PURE__*/ new Vector3();\nconst _lookTarget$1 = /*@__PURE__*/ new Vector3();\n\nclass LightShadow {\n\n\tconstructor( camera ) {\n\n\t\tthis.camera = camera;\n\n\t\tthis.bias = 0;\n\t\tthis.normalBias = 0;\n\t\tthis.radius = 1;\n\t\tthis.blurSamples = 8;\n\n\t\tthis.mapSize = new Vector2( 512, 512 );\n\n\t\tthis.map = null;\n\t\tthis.mapPass = null;\n\t\tthis.matrix = new Matrix4();\n\n\t\tthis.autoUpdate = true;\n\t\tthis.needsUpdate = false;\n\n\t\tthis._frustum = new Frustum();\n\t\tthis._frameExtents = new Vector2( 1, 1 );\n\n\t\tthis._viewportCount = 1;\n\n\t\tthis._viewports = [\n\n\t\t\tnew Vector4( 0, 0, 1, 1 )\n\n\t\t];\n\n\t}\n\n\tgetViewportCount() {\n\n\t\treturn this._viewportCount;\n\n\t}\n\n\tgetFrustum() {\n\n\t\treturn this._frustum;\n\n\t}\n\n\tupdateMatrices( light ) {\n\n\t\tconst shadowCamera = this.camera;\n\t\tconst shadowMatrix = this.matrix;\n\n\t\t_lightPositionWorld$1.setFromMatrixPosition( light.matrixWorld );\n\t\tshadowCamera.position.copy( _lightPositionWorld$1 );\n\n\t\t_lookTarget$1.setFromMatrixPosition( light.target.matrixWorld );\n\t\tshadowCamera.lookAt( _lookTarget$1 );\n\t\tshadowCamera.updateMatrixWorld();\n\n\t\t_projScreenMatrix$1.multiplyMatrices( shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse );\n\t\tthis._frustum.setFromProjectionMatrix( _projScreenMatrix$1 );\n\n\t\tshadowMatrix.set(\n\t\t\t0.5, 0.0, 0.0, 0.5,\n\t\t\t0.0, 0.5, 0.0, 0.5,\n\t\t\t0.0, 0.0, 0.5, 0.5,\n\t\t\t0.0, 0.0, 0.0, 1.0\n\t\t);\n\n\t\tshadowMatrix.multiply( shadowCamera.projectionMatrix );\n\t\tshadowMatrix.multiply( shadowCamera.matrixWorldInverse );\n\n\t}\n\n\tgetViewport( viewportIndex ) {\n\n\t\treturn this._viewports[ viewportIndex ];\n\n\t}\n\n\tgetFrameExtents() {\n\n\t\treturn this._frameExtents;\n\n\t}\n\n\tdispose() {\n\n\t\tif ( this.map ) {\n\n\t\t\tthis.map.dispose();\n\n\t\t}\n\n\t\tif ( this.mapPass ) {\n\n\t\t\tthis.mapPass.dispose();\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.camera = source.camera.clone();\n\n\t\tthis.bias = source.bias;\n\t\tthis.radius = source.radius;\n\n\t\tthis.mapSize.copy( source.mapSize );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst object = {};\n\n\t\tif ( this.bias !== 0 ) object.bias = this.bias;\n\t\tif ( this.normalBias !== 0 ) object.normalBias = this.normalBias;\n\t\tif ( this.radius !== 1 ) object.radius = this.radius;\n\t\tif ( this.mapSize.x !== 512 || this.mapSize.y !== 512 ) object.mapSize = this.mapSize.toArray();\n\n\t\tobject.camera = this.camera.toJSON( false ).object;\n\t\tdelete object.camera.matrix;\n\n\t\treturn object;\n\n\t}\n\n}\n\nclass SpotLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new PerspectiveCamera( 50, 1, 0.5, 500 ) );\n\n\t\tthis.focus = 1;\n\n\t}\n\n\tupdateMatrices( light ) {\n\n\t\tconst camera = this.camera;\n\n\t\tconst fov = RAD2DEG * 2 * light.angle * this.focus;\n\t\tconst aspect = this.mapSize.width / this.mapSize.height;\n\t\tconst far = light.distance || camera.far;\n\n\t\tif ( fov !== camera.fov || aspect !== camera.aspect || far !== camera.far ) {\n\n\t\t\tcamera.fov = fov;\n\t\t\tcamera.aspect = aspect;\n\t\t\tcamera.far = far;\n\t\t\tcamera.updateProjectionMatrix();\n\n\t\t}\n\n\t\tsuper.updateMatrices( light );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.focus = source.focus;\n\n\t\treturn this;\n\n\t}\n\n}\n\nSpotLightShadow.prototype.isSpotLightShadow = true;\n\nclass SpotLight extends Light {\n\n\tconstructor( color, intensity, distance = 0, angle = Math.PI / 3, penumbra = 0, decay = 1 ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.type = 'SpotLight';\n\n\t\tthis.position.copy( Object3D.DefaultUp );\n\t\tthis.updateMatrix();\n\n\t\tthis.target = new Object3D();\n\n\t\tthis.distance = distance;\n\t\tthis.angle = angle;\n\t\tthis.penumbra = penumbra;\n\t\tthis.decay = decay; // for physically correct lights, should be 2.\n\n\t\tthis.shadow = new SpotLightShadow();\n\n\t}\n\n\tget power() {\n\n\t\t// compute the light's luminous power (in lumens) from its intensity (in candela)\n\t\t// by convention for a spotlight, luminous power (lm) = π * luminous intensity (cd)\n\t\treturn this.intensity * Math.PI;\n\n\t}\n\n\tset power( power ) {\n\n\t\t// set the light's intensity (in candela) from the desired luminous power (in lumens)\n\t\tthis.intensity = power / Math.PI;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shadow.dispose();\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.distance = source.distance;\n\t\tthis.angle = source.angle;\n\t\tthis.penumbra = source.penumbra;\n\t\tthis.decay = source.decay;\n\n\t\tthis.target = source.target.clone();\n\n\t\tthis.shadow = source.shadow.clone();\n\n\t\treturn this;\n\n\t}\n\n}\n\nSpotLight.prototype.isSpotLight = true;\n\nconst _projScreenMatrix = /*@__PURE__*/ new Matrix4();\nconst _lightPositionWorld = /*@__PURE__*/ new Vector3();\nconst _lookTarget = /*@__PURE__*/ new Vector3();\n\nclass PointLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new PerspectiveCamera( 90, 1, 0.5, 500 ) );\n\n\t\tthis._frameExtents = new Vector2( 4, 2 );\n\n\t\tthis._viewportCount = 6;\n\n\t\tthis._viewports = [\n\t\t\t// These viewports map a cube-map onto a 2D texture with the\n\t\t\t// following orientation:\n\t\t\t//\n\t\t\t// xzXZ\n\t\t\t// y Y\n\t\t\t//\n\t\t\t// X - Positive x direction\n\t\t\t// x - Negative x direction\n\t\t\t// Y - Positive y direction\n\t\t\t// y - Negative y direction\n\t\t\t// Z - Positive z direction\n\t\t\t// z - Negative z direction\n\n\t\t\t// positive X\n\t\t\tnew Vector4( 2, 1, 1, 1 ),\n\t\t\t// negative X\n\t\t\tnew Vector4( 0, 1, 1, 1 ),\n\t\t\t// positive Z\n\t\t\tnew Vector4( 3, 1, 1, 1 ),\n\t\t\t// negative Z\n\t\t\tnew Vector4( 1, 1, 1, 1 ),\n\t\t\t// positive Y\n\t\t\tnew Vector4( 3, 0, 1, 1 ),\n\t\t\t// negative Y\n\t\t\tnew Vector4( 1, 0, 1, 1 )\n\t\t];\n\n\t\tthis._cubeDirections = [\n\t\t\tnew Vector3( 1, 0, 0 ), new Vector3( - 1, 0, 0 ), new Vector3( 0, 0, 1 ),\n\t\t\tnew Vector3( 0, 0, - 1 ), new Vector3( 0, 1, 0 ), new Vector3( 0, - 1, 0 )\n\t\t];\n\n\t\tthis._cubeUps = [\n\t\t\tnew Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ),\n\t\t\tnew Vector3( 0, 1, 0 ), new Vector3( 0, 0, 1 ),\tnew Vector3( 0, 0, - 1 )\n\t\t];\n\n\t}\n\n\tupdateMatrices( light, viewportIndex = 0 ) {\n\n\t\tconst camera = this.camera;\n\t\tconst shadowMatrix = this.matrix;\n\n\t\tconst far = light.distance || camera.far;\n\n\t\tif ( far !== camera.far ) {\n\n\t\t\tcamera.far = far;\n\t\t\tcamera.updateProjectionMatrix();\n\n\t\t}\n\n\t\t_lightPositionWorld.setFromMatrixPosition( light.matrixWorld );\n\t\tcamera.position.copy( _lightPositionWorld );\n\n\t\t_lookTarget.copy( camera.position );\n\t\t_lookTarget.add( this._cubeDirections[ viewportIndex ] );\n\t\tcamera.up.copy( this._cubeUps[ viewportIndex ] );\n\t\tcamera.lookAt( _lookTarget );\n\t\tcamera.updateMatrixWorld();\n\n\t\tshadowMatrix.makeTranslation( - _lightPositionWorld.x, - _lightPositionWorld.y, - _lightPositionWorld.z );\n\n\t\t_projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );\n\t\tthis._frustum.setFromProjectionMatrix( _projScreenMatrix );\n\n\t}\n\n}\n\nPointLightShadow.prototype.isPointLightShadow = true;\n\nclass PointLight extends Light {\n\n\tconstructor( color, intensity, distance = 0, decay = 1 ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.type = 'PointLight';\n\n\t\tthis.distance = distance;\n\t\tthis.decay = decay; // for physically correct lights, should be 2.\n\n\t\tthis.shadow = new PointLightShadow();\n\n\t}\n\n\tget power() {\n\n\t\t// compute the light's luminous power (in lumens) from its intensity (in candela)\n\t\t// for an isotropic light source, luminous power (lm) = 4 π luminous intensity (cd)\n\t\treturn this.intensity * 4 * Math.PI;\n\n\t}\n\n\tset power( power ) {\n\n\t\t// set the light's intensity (in candela) from the desired luminous power (in lumens)\n\t\tthis.intensity = power / ( 4 * Math.PI );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shadow.dispose();\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.distance = source.distance;\n\t\tthis.decay = source.decay;\n\n\t\tthis.shadow = source.shadow.clone();\n\n\t\treturn this;\n\n\t}\n\n}\n\nPointLight.prototype.isPointLight = true;\n\nclass DirectionalLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new OrthographicCamera( - 5, 5, 5, - 5, 0.5, 500 ) );\n\n\t}\n\n}\n\nDirectionalLightShadow.prototype.isDirectionalLightShadow = true;\n\nclass DirectionalLight extends Light {\n\n\tconstructor( color, intensity ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.type = 'DirectionalLight';\n\n\t\tthis.position.copy( Object3D.DefaultUp );\n\t\tthis.updateMatrix();\n\n\t\tthis.target = new Object3D();\n\n\t\tthis.shadow = new DirectionalLightShadow();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shadow.dispose();\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.target = source.target.clone();\n\t\tthis.shadow = source.shadow.clone();\n\n\t\treturn this;\n\n\t}\n\n}\n\nDirectionalLight.prototype.isDirectionalLight = true;\n\nclass AmbientLight extends Light {\n\n\tconstructor( color, intensity ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.type = 'AmbientLight';\n\n\t}\n\n}\n\nAmbientLight.prototype.isAmbientLight = true;\n\nclass RectAreaLight extends Light {\n\n\tconstructor( color, intensity, width = 10, height = 10 ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.type = 'RectAreaLight';\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\n\t}\n\n\tget power() {\n\n\t\t// compute the light's luminous power (in lumens) from its intensity (in nits)\n\t\treturn this.intensity * this.width * this.height * Math.PI;\n\n\t}\n\n\tset power( power ) {\n\n\t\t// set the light's intensity (in nits) from the desired luminous power (in lumens)\n\t\tthis.intensity = power / ( this.width * this.height * Math.PI );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.width = source.width;\n\t\tthis.height = source.height;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.width = this.width;\n\t\tdata.object.height = this.height;\n\n\t\treturn data;\n\n\t}\n\n}\n\nRectAreaLight.prototype.isRectAreaLight = true;\n\n/**\n * Primary reference:\n * https://graphics.stanford.edu/papers/envmap/envmap.pdf\n *\n * Secondary reference:\n * https://www.ppsloan.org/publications/StupidSH36.pdf\n */\n\n// 3-band SH defined by 9 coefficients\n\nclass SphericalHarmonics3 {\n\n\tconstructor() {\n\n\t\tthis.coefficients = [];\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients.push( new Vector3() );\n\n\t\t}\n\n\t}\n\n\tset( coefficients ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].copy( coefficients[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tzero() {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].set( 0, 0, 0 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// get the radiance in the direction of the normal\n\t// target is a Vector3\n\tgetAt( normal, target ) {\n\n\t\t// normal is assumed to be unit length\n\n\t\tconst x = normal.x, y = normal.y, z = normal.z;\n\n\t\tconst coeff = this.coefficients;\n\n\t\t// band 0\n\t\ttarget.copy( coeff[ 0 ] ).multiplyScalar( 0.282095 );\n\n\t\t// band 1\n\t\ttarget.addScaledVector( coeff[ 1 ], 0.488603 * y );\n\t\ttarget.addScaledVector( coeff[ 2 ], 0.488603 * z );\n\t\ttarget.addScaledVector( coeff[ 3 ], 0.488603 * x );\n\n\t\t// band 2\n\t\ttarget.addScaledVector( coeff[ 4 ], 1.092548 * ( x * y ) );\n\t\ttarget.addScaledVector( coeff[ 5 ], 1.092548 * ( y * z ) );\n\t\ttarget.addScaledVector( coeff[ 6 ], 0.315392 * ( 3.0 * z * z - 1.0 ) );\n\t\ttarget.addScaledVector( coeff[ 7 ], 1.092548 * ( x * z ) );\n\t\ttarget.addScaledVector( coeff[ 8 ], 0.546274 * ( x * x - y * y ) );\n\n\t\treturn target;\n\n\t}\n\n\t// get the irradiance (radiance convolved with cosine lobe) in the direction of the normal\n\t// target is a Vector3\n\t// https://graphics.stanford.edu/papers/envmap/envmap.pdf\n\tgetIrradianceAt( normal, target ) {\n\n\t\t// normal is assumed to be unit length\n\n\t\tconst x = normal.x, y = normal.y, z = normal.z;\n\n\t\tconst coeff = this.coefficients;\n\n\t\t// band 0\n\t\ttarget.copy( coeff[ 0 ] ).multiplyScalar( 0.886227 ); // π * 0.282095\n\n\t\t// band 1\n\t\ttarget.addScaledVector( coeff[ 1 ], 2.0 * 0.511664 * y ); // ( 2 * π / 3 ) * 0.488603\n\t\ttarget.addScaledVector( coeff[ 2 ], 2.0 * 0.511664 * z );\n\t\ttarget.addScaledVector( coeff[ 3 ], 2.0 * 0.511664 * x );\n\n\t\t// band 2\n\t\ttarget.addScaledVector( coeff[ 4 ], 2.0 * 0.429043 * x * y ); // ( π / 4 ) * 1.092548\n\t\ttarget.addScaledVector( coeff[ 5 ], 2.0 * 0.429043 * y * z );\n\t\ttarget.addScaledVector( coeff[ 6 ], 0.743125 * z * z - 0.247708 ); // ( π / 4 ) * 0.315392 * 3\n\t\ttarget.addScaledVector( coeff[ 7 ], 2.0 * 0.429043 * x * z );\n\t\ttarget.addScaledVector( coeff[ 8 ], 0.429043 * ( x * x - y * y ) ); // ( π / 4 ) * 0.546274\n\n\t\treturn target;\n\n\t}\n\n\tadd( sh ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].add( sh.coefficients[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\taddScaledSH( sh, s ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].addScaledVector( sh.coefficients[ i ], s );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tscale( s ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].multiplyScalar( s );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tlerp( sh, alpha ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].lerp( sh.coefficients[ i ], alpha );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tequals( sh ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tif ( ! this.coefficients[ i ].equals( sh.coefficients[ i ] ) ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tcopy( sh ) {\n\n\t\treturn this.set( sh.coefficients );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tconst coefficients = this.coefficients;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tcoefficients[ i ].fromArray( array, offset + ( i * 3 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst coefficients = this.coefficients;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tcoefficients[ i ].toArray( array, offset + ( i * 3 ) );\n\n\t\t}\n\n\t\treturn array;\n\n\t}\n\n\t// evaluate the basis functions\n\t// shBasis is an Array[ 9 ]\n\tstatic getBasisAt( normal, shBasis ) {\n\n\t\t// normal is assumed to be unit length\n\n\t\tconst x = normal.x, y = normal.y, z = normal.z;\n\n\t\t// band 0\n\t\tshBasis[ 0 ] = 0.282095;\n\n\t\t// band 1\n\t\tshBasis[ 1 ] = 0.488603 * y;\n\t\tshBasis[ 2 ] = 0.488603 * z;\n\t\tshBasis[ 3 ] = 0.488603 * x;\n\n\t\t// band 2\n\t\tshBasis[ 4 ] = 1.092548 * x * y;\n\t\tshBasis[ 5 ] = 1.092548 * y * z;\n\t\tshBasis[ 6 ] = 0.315392 * ( 3 * z * z - 1 );\n\t\tshBasis[ 7 ] = 1.092548 * x * z;\n\t\tshBasis[ 8 ] = 0.546274 * ( x * x - y * y );\n\n\t}\n\n}\n\nSphericalHarmonics3.prototype.isSphericalHarmonics3 = true;\n\nclass LightProbe extends Light {\n\n\tconstructor( sh = new SphericalHarmonics3(), intensity = 1 ) {\n\n\t\tsuper( undefined, intensity );\n\n\t\tthis.sh = sh;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.sh.copy( source.sh );\n\n\t\treturn this;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tthis.intensity = json.intensity; // TODO: Move this bit to Light.fromJSON();\n\t\tthis.sh.fromArray( json.sh );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.sh = this.sh.toArray();\n\n\t\treturn data;\n\n\t}\n\n}\n\nLightProbe.prototype.isLightProbe = true;\n\nclass MaterialLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\t\tthis.textures = {};\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( scope.manager );\n\t\tloader.setPath( scope.path );\n\t\tloader.setRequestHeader( scope.requestHeader );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( JSON.parse( text ) ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tparse( json ) {\n\n\t\tconst textures = this.textures;\n\n\t\tfunction getTexture( name ) {\n\n\t\t\tif ( textures[ name ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.MaterialLoader: Undefined texture', name );\n\n\t\t\t}\n\n\t\t\treturn textures[ name ];\n\n\t\t}\n\n\t\tconst material = new Materials[ json.type ]();\n\n\t\tif ( json.uuid !== undefined ) material.uuid = json.uuid;\n\t\tif ( json.name !== undefined ) material.name = json.name;\n\t\tif ( json.color !== undefined && material.color !== undefined ) material.color.setHex( json.color );\n\t\tif ( json.roughness !== undefined ) material.roughness = json.roughness;\n\t\tif ( json.metalness !== undefined ) material.metalness = json.metalness;\n\t\tif ( json.sheen !== undefined ) material.sheen = json.sheen;\n\t\tif ( json.sheenColor !== undefined ) material.sheenColor = new Color().setHex( json.sheenColor );\n\t\tif ( json.sheenRoughness !== undefined ) material.sheenRoughness = json.sheenRoughness;\n\t\tif ( json.emissive !== undefined && material.emissive !== undefined ) material.emissive.setHex( json.emissive );\n\t\tif ( json.specular !== undefined && material.specular !== undefined ) material.specular.setHex( json.specular );\n\t\tif ( json.specularIntensity !== undefined ) material.specularIntensity = json.specularIntensity;\n\t\tif ( json.specularColor !== undefined && material.specularColor !== undefined ) material.specularColor.setHex( json.specularColor );\n\t\tif ( json.shininess !== undefined ) material.shininess = json.shininess;\n\t\tif ( json.clearcoat !== undefined ) material.clearcoat = json.clearcoat;\n\t\tif ( json.clearcoatRoughness !== undefined ) material.clearcoatRoughness = json.clearcoatRoughness;\n\t\tif ( json.transmission !== undefined ) material.transmission = json.transmission;\n\t\tif ( json.thickness !== undefined ) material.thickness = json.thickness;\n\t\tif ( json.attenuationDistance !== undefined ) material.attenuationDistance = json.attenuationDistance;\n\t\tif ( json.attenuationColor !== undefined && material.attenuationColor !== undefined ) material.attenuationColor.setHex( json.attenuationColor );\n\t\tif ( json.fog !== undefined ) material.fog = json.fog;\n\t\tif ( json.flatShading !== undefined ) material.flatShading = json.flatShading;\n\t\tif ( json.blending !== undefined ) material.blending = json.blending;\n\t\tif ( json.combine !== undefined ) material.combine = json.combine;\n\t\tif ( json.side !== undefined ) material.side = json.side;\n\t\tif ( json.shadowSide !== undefined ) material.shadowSide = json.shadowSide;\n\t\tif ( json.opacity !== undefined ) material.opacity = json.opacity;\n\t\tif ( json.transparent !== undefined ) material.transparent = json.transparent;\n\t\tif ( json.alphaTest !== undefined ) material.alphaTest = json.alphaTest;\n\t\tif ( json.depthTest !== undefined ) material.depthTest = json.depthTest;\n\t\tif ( json.depthWrite !== undefined ) material.depthWrite = json.depthWrite;\n\t\tif ( json.colorWrite !== undefined ) material.colorWrite = json.colorWrite;\n\n\t\tif ( json.stencilWrite !== undefined ) material.stencilWrite = json.stencilWrite;\n\t\tif ( json.stencilWriteMask !== undefined ) material.stencilWriteMask = json.stencilWriteMask;\n\t\tif ( json.stencilFunc !== undefined ) material.stencilFunc = json.stencilFunc;\n\t\tif ( json.stencilRef !== undefined ) material.stencilRef = json.stencilRef;\n\t\tif ( json.stencilFuncMask !== undefined ) material.stencilFuncMask = json.stencilFuncMask;\n\t\tif ( json.stencilFail !== undefined ) material.stencilFail = json.stencilFail;\n\t\tif ( json.stencilZFail !== undefined ) material.stencilZFail = json.stencilZFail;\n\t\tif ( json.stencilZPass !== undefined ) material.stencilZPass = json.stencilZPass;\n\n\t\tif ( json.wireframe !== undefined ) material.wireframe = json.wireframe;\n\t\tif ( json.wireframeLinewidth !== undefined ) material.wireframeLinewidth = json.wireframeLinewidth;\n\t\tif ( json.wireframeLinecap !== undefined ) material.wireframeLinecap = json.wireframeLinecap;\n\t\tif ( json.wireframeLinejoin !== undefined ) material.wireframeLinejoin = json.wireframeLinejoin;\n\n\t\tif ( json.rotation !== undefined ) material.rotation = json.rotation;\n\n\t\tif ( json.linewidth !== 1 ) material.linewidth = json.linewidth;\n\t\tif ( json.dashSize !== undefined ) material.dashSize = json.dashSize;\n\t\tif ( json.gapSize !== undefined ) material.gapSize = json.gapSize;\n\t\tif ( json.scale !== undefined ) material.scale = json.scale;\n\n\t\tif ( json.polygonOffset !== undefined ) material.polygonOffset = json.polygonOffset;\n\t\tif ( json.polygonOffsetFactor !== undefined ) material.polygonOffsetFactor = json.polygonOffsetFactor;\n\t\tif ( json.polygonOffsetUnits !== undefined ) material.polygonOffsetUnits = json.polygonOffsetUnits;\n\n\t\tif ( json.dithering !== undefined ) material.dithering = json.dithering;\n\n\t\tif ( json.alphaToCoverage !== undefined ) material.alphaToCoverage = json.alphaToCoverage;\n\t\tif ( json.premultipliedAlpha !== undefined ) material.premultipliedAlpha = json.premultipliedAlpha;\n\n\t\tif ( json.visible !== undefined ) material.visible = json.visible;\n\n\t\tif ( json.toneMapped !== undefined ) material.toneMapped = json.toneMapped;\n\n\t\tif ( json.userData !== undefined ) material.userData = json.userData;\n\n\t\tif ( json.vertexColors !== undefined ) {\n\n\t\t\tif ( typeof json.vertexColors === 'number' ) {\n\n\t\t\t\tmaterial.vertexColors = ( json.vertexColors > 0 ) ? true : false;\n\n\t\t\t} else {\n\n\t\t\t\tmaterial.vertexColors = json.vertexColors;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Shader Material\n\n\t\tif ( json.uniforms !== undefined ) {\n\n\t\t\tfor ( const name in json.uniforms ) {\n\n\t\t\t\tconst uniform = json.uniforms[ name ];\n\n\t\t\t\tmaterial.uniforms[ name ] = {};\n\n\t\t\t\tswitch ( uniform.type ) {\n\n\t\t\t\t\tcase 't':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = getTexture( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'c':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Color().setHex( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'v2':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Vector2().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'v3':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Vector3().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'v4':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Vector4().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'm3':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Matrix3().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'm4':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Matrix4().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = uniform.value;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( json.defines !== undefined ) material.defines = json.defines;\n\t\tif ( json.vertexShader !== undefined ) material.vertexShader = json.vertexShader;\n\t\tif ( json.fragmentShader !== undefined ) material.fragmentShader = json.fragmentShader;\n\n\t\tif ( json.extensions !== undefined ) {\n\n\t\t\tfor ( const key in json.extensions ) {\n\n\t\t\t\tmaterial.extensions[ key ] = json.extensions[ key ];\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Deprecated\n\n\t\tif ( json.shading !== undefined ) material.flatShading = json.shading === 1; // THREE.FlatShading\n\n\t\t// for PointsMaterial\n\n\t\tif ( json.size !== undefined ) material.size = json.size;\n\t\tif ( json.sizeAttenuation !== undefined ) material.sizeAttenuation = json.sizeAttenuation;\n\n\t\t// maps\n\n\t\tif ( json.map !== undefined ) material.map = getTexture( json.map );\n\t\tif ( json.matcap !== undefined ) material.matcap = getTexture( json.matcap );\n\n\t\tif ( json.alphaMap !== undefined ) material.alphaMap = getTexture( json.alphaMap );\n\n\t\tif ( json.bumpMap !== undefined ) material.bumpMap = getTexture( json.bumpMap );\n\t\tif ( json.bumpScale !== undefined ) material.bumpScale = json.bumpScale;\n\n\t\tif ( json.normalMap !== undefined ) material.normalMap = getTexture( json.normalMap );\n\t\tif ( json.normalMapType !== undefined ) material.normalMapType = json.normalMapType;\n\t\tif ( json.normalScale !== undefined ) {\n\n\t\t\tlet normalScale = json.normalScale;\n\n\t\t\tif ( Array.isArray( normalScale ) === false ) {\n\n\t\t\t\t// Blender exporter used to export a scalar. See #7459\n\n\t\t\t\tnormalScale = [ normalScale, normalScale ];\n\n\t\t\t}\n\n\t\t\tmaterial.normalScale = new Vector2().fromArray( normalScale );\n\n\t\t}\n\n\t\tif ( json.displacementMap !== undefined ) material.displacementMap = getTexture( json.displacementMap );\n\t\tif ( json.displacementScale !== undefined ) material.displacementScale = json.displacementScale;\n\t\tif ( json.displacementBias !== undefined ) material.displacementBias = json.displacementBias;\n\n\t\tif ( json.roughnessMap !== undefined ) material.roughnessMap = getTexture( json.roughnessMap );\n\t\tif ( json.metalnessMap !== undefined ) material.metalnessMap = getTexture( json.metalnessMap );\n\n\t\tif ( json.emissiveMap !== undefined ) material.emissiveMap = getTexture( json.emissiveMap );\n\t\tif ( json.emissiveIntensity !== undefined ) material.emissiveIntensity = json.emissiveIntensity;\n\n\t\tif ( json.specularMap !== undefined ) material.specularMap = getTexture( json.specularMap );\n\t\tif ( json.specularIntensityMap !== undefined ) material.specularIntensityMap = getTexture( json.specularIntensityMap );\n\t\tif ( json.specularColorMap !== undefined ) material.specularColorMap = getTexture( json.specularColorMap );\n\n\t\tif ( json.envMap !== undefined ) material.envMap = getTexture( json.envMap );\n\t\tif ( json.envMapIntensity !== undefined ) material.envMapIntensity = json.envMapIntensity;\n\n\t\tif ( json.reflectivity !== undefined ) material.reflectivity = json.reflectivity;\n\t\tif ( json.refractionRatio !== undefined ) material.refractionRatio = json.refractionRatio;\n\n\t\tif ( json.lightMap !== undefined ) material.lightMap = getTexture( json.lightMap );\n\t\tif ( json.lightMapIntensity !== undefined ) material.lightMapIntensity = json.lightMapIntensity;\n\n\t\tif ( json.aoMap !== undefined ) material.aoMap = getTexture( json.aoMap );\n\t\tif ( json.aoMapIntensity !== undefined ) material.aoMapIntensity = json.aoMapIntensity;\n\n\t\tif ( json.gradientMap !== undefined ) material.gradientMap = getTexture( json.gradientMap );\n\n\t\tif ( json.clearcoatMap !== undefined ) material.clearcoatMap = getTexture( json.clearcoatMap );\n\t\tif ( json.clearcoatRoughnessMap !== undefined ) material.clearcoatRoughnessMap = getTexture( json.clearcoatRoughnessMap );\n\t\tif ( json.clearcoatNormalMap !== undefined ) material.clearcoatNormalMap = getTexture( json.clearcoatNormalMap );\n\t\tif ( json.clearcoatNormalScale !== undefined ) material.clearcoatNormalScale = new Vector2().fromArray( json.clearcoatNormalScale );\n\n\t\tif ( json.transmissionMap !== undefined ) material.transmissionMap = getTexture( json.transmissionMap );\n\t\tif ( json.thicknessMap !== undefined ) material.thicknessMap = getTexture( json.thicknessMap );\n\n\t\tif ( json.sheenColorMap !== undefined ) material.sheenColorMap = getTexture( json.sheenColorMap );\n\t\tif ( json.sheenRoughnessMap !== undefined ) material.sheenRoughnessMap = getTexture( json.sheenRoughnessMap );\n\n\t\treturn material;\n\n\t}\n\n\tsetTextures( value ) {\n\n\t\tthis.textures = value;\n\t\treturn this;\n\n\t}\n\n}\n\nclass LoaderUtils {\n\n\tstatic decodeText( array ) {\n\n\t\tif ( typeof TextDecoder !== 'undefined' ) {\n\n\t\t\treturn new TextDecoder().decode( array );\n\n\t\t}\n\n\t\t// Avoid the String.fromCharCode.apply(null, array) shortcut, which\n\t\t// throws a \"maximum call stack size exceeded\" error for large arrays.\n\n\t\tlet s = '';\n\n\t\tfor ( let i = 0, il = array.length; i < il; i ++ ) {\n\n\t\t\t// Implicitly assumes little-endian.\n\t\t\ts += String.fromCharCode( array[ i ] );\n\n\t\t}\n\n\t\ttry {\n\n\t\t\t// merges multi-byte utf-8 characters.\n\n\t\t\treturn decodeURIComponent( escape( s ) );\n\n\t\t} catch ( e ) { // see #16358\n\n\t\t\treturn s;\n\n\t\t}\n\n\t}\n\n\tstatic extractUrlBase( url ) {\n\n\t\tconst index = url.lastIndexOf( '/' );\n\n\t\tif ( index === - 1 ) return './';\n\n\t\treturn url.substr( 0, index + 1 );\n\n\t}\n\n\tstatic resolveURL( url, path ) {\n\n\t\t// Invalid URL\n\t\tif ( typeof url !== 'string' || url === '' ) return '';\n\n\t\t// Host Relative URL\n\t\tif ( /^https?:\\/\\//i.test( path ) && /^\\//.test( url ) ) {\n\n\t\t\tpath = path.replace( /(^https?:\\/\\/[^\\/]+).*/i, '$1' );\n\n\t\t}\n\n\t\t// Absolute URL http://,https://,//\n\t\tif ( /^(https?:)?\\/\\//i.test( url ) ) return url;\n\n\t\t// Data URI\n\t\tif ( /^data:.*,.*$/i.test( url ) ) return url;\n\n\t\t// Blob URL\n\t\tif ( /^blob:.*$/i.test( url ) ) return url;\n\n\t\t// Relative URL\n\t\treturn path + url;\n\n\t}\n\n}\n\nclass InstancedBufferGeometry extends BufferGeometry {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'InstancedBufferGeometry';\n\t\tthis.instanceCount = Infinity;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.instanceCount = source.instanceCount;\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON( this );\n\n\t\tdata.instanceCount = this.instanceCount;\n\n\t\tdata.isInstancedBufferGeometry = true;\n\n\t\treturn data;\n\n\t}\n\n}\n\nInstancedBufferGeometry.prototype.isInstancedBufferGeometry = true;\n\nclass BufferGeometryLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( scope.manager );\n\t\tloader.setPath( scope.path );\n\t\tloader.setRequestHeader( scope.requestHeader );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( JSON.parse( text ) ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tparse( json ) {\n\n\t\tconst interleavedBufferMap = {};\n\t\tconst arrayBufferMap = {};\n\n\t\tfunction getInterleavedBuffer( json, uuid ) {\n\n\t\t\tif ( interleavedBufferMap[ uuid ] !== undefined ) return interleavedBufferMap[ uuid ];\n\n\t\t\tconst interleavedBuffers = json.interleavedBuffers;\n\t\t\tconst interleavedBuffer = interleavedBuffers[ uuid ];\n\n\t\t\tconst buffer = getArrayBuffer( json, interleavedBuffer.buffer );\n\n\t\t\tconst array = getTypedArray( interleavedBuffer.type, buffer );\n\t\t\tconst ib = new InterleavedBuffer( array, interleavedBuffer.stride );\n\t\t\tib.uuid = interleavedBuffer.uuid;\n\n\t\t\tinterleavedBufferMap[ uuid ] = ib;\n\n\t\t\treturn ib;\n\n\t\t}\n\n\t\tfunction getArrayBuffer( json, uuid ) {\n\n\t\t\tif ( arrayBufferMap[ uuid ] !== undefined ) return arrayBufferMap[ uuid ];\n\n\t\t\tconst arrayBuffers = json.arrayBuffers;\n\t\t\tconst arrayBuffer = arrayBuffers[ uuid ];\n\n\t\t\tconst ab = new Uint32Array( arrayBuffer ).buffer;\n\n\t\t\tarrayBufferMap[ uuid ] = ab;\n\n\t\t\treturn ab;\n\n\t\t}\n\n\t\tconst geometry = json.isInstancedBufferGeometry ? new InstancedBufferGeometry() : new BufferGeometry();\n\n\t\tconst index = json.data.index;\n\n\t\tif ( index !== undefined ) {\n\n\t\t\tconst typedArray = getTypedArray( index.type, index.array );\n\t\t\tgeometry.setIndex( new BufferAttribute( typedArray, 1 ) );\n\n\t\t}\n\n\t\tconst attributes = json.data.attributes;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tconst attribute = attributes[ key ];\n\t\t\tlet bufferAttribute;\n\n\t\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\tconst interleavedBuffer = getInterleavedBuffer( json.data, attribute.data );\n\t\t\t\tbufferAttribute = new InterleavedBufferAttribute( interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized );\n\n\t\t\t} else {\n\n\t\t\t\tconst typedArray = getTypedArray( attribute.type, attribute.array );\n\t\t\t\tconst bufferAttributeConstr = attribute.isInstancedBufferAttribute ? InstancedBufferAttribute : BufferAttribute;\n\t\t\t\tbufferAttribute = new bufferAttributeConstr( typedArray, attribute.itemSize, attribute.normalized );\n\n\t\t\t}\n\n\t\t\tif ( attribute.name !== undefined ) bufferAttribute.name = attribute.name;\n\t\t\tif ( attribute.usage !== undefined ) bufferAttribute.setUsage( attribute.usage );\n\n\t\t\tif ( attribute.updateRange !== undefined ) {\n\n\t\t\t\tbufferAttribute.updateRange.offset = attribute.updateRange.offset;\n\t\t\t\tbufferAttribute.updateRange.count = attribute.updateRange.count;\n\n\t\t\t}\n\n\t\t\tgeometry.setAttribute( key, bufferAttribute );\n\n\t\t}\n\n\t\tconst morphAttributes = json.data.morphAttributes;\n\n\t\tif ( morphAttributes ) {\n\n\t\t\tfor ( const key in morphAttributes ) {\n\n\t\t\t\tconst attributeArray = morphAttributes[ key ];\n\n\t\t\t\tconst array = [];\n\n\t\t\t\tfor ( let i = 0, il = attributeArray.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst attribute = attributeArray[ i ];\n\t\t\t\t\tlet bufferAttribute;\n\n\t\t\t\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\t\tconst interleavedBuffer = getInterleavedBuffer( json.data, attribute.data );\n\t\t\t\t\t\tbufferAttribute = new InterleavedBufferAttribute( interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst typedArray = getTypedArray( attribute.type, attribute.array );\n\t\t\t\t\t\tbufferAttribute = new BufferAttribute( typedArray, attribute.itemSize, attribute.normalized );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( attribute.name !== undefined ) bufferAttribute.name = attribute.name;\n\t\t\t\t\tarray.push( bufferAttribute );\n\n\t\t\t\t}\n\n\t\t\t\tgeometry.morphAttributes[ key ] = array;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst morphTargetsRelative = json.data.morphTargetsRelative;\n\n\t\tif ( morphTargetsRelative ) {\n\n\t\t\tgeometry.morphTargetsRelative = true;\n\n\t\t}\n\n\t\tconst groups = json.data.groups || json.data.drawcalls || json.data.offsets;\n\n\t\tif ( groups !== undefined ) {\n\n\t\t\tfor ( let i = 0, n = groups.length; i !== n; ++ i ) {\n\n\t\t\t\tconst group = groups[ i ];\n\n\t\t\t\tgeometry.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst boundingSphere = json.data.boundingSphere;\n\n\t\tif ( boundingSphere !== undefined ) {\n\n\t\t\tconst center = new Vector3();\n\n\t\t\tif ( boundingSphere.center !== undefined ) {\n\n\t\t\t\tcenter.fromArray( boundingSphere.center );\n\n\t\t\t}\n\n\t\t\tgeometry.boundingSphere = new Sphere( center, boundingSphere.radius );\n\n\t\t}\n\n\t\tif ( json.name ) geometry.name = json.name;\n\t\tif ( json.userData ) geometry.userData = json.userData;\n\n\t\treturn geometry;\n\n\t}\n\n}\n\nclass ObjectLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst path = ( this.path === '' ) ? LoaderUtils.extractUrlBase( url ) : this.path;\n\t\tthis.resourcePath = this.resourcePath || path;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\tlet json = null;\n\n\t\t\ttry {\n\n\t\t\t\tjson = JSON.parse( text );\n\n\t\t\t} catch ( error ) {\n\n\t\t\t\tif ( onError !== undefined ) onError( error );\n\n\t\t\t\tconsole.error( 'THREE:ObjectLoader: Can\\'t parse ' + url + '.', error.message );\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tconst metadata = json.metadata;\n\n\t\t\tif ( metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry' ) {\n\n\t\t\t\tconsole.error( 'THREE.ObjectLoader: Can\\'t load ' + url );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tscope.parse( json, onLoad );\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tasync loadAsync( url, onProgress ) {\n\n\t\tconst scope = this;\n\n\t\tconst path = ( this.path === '' ) ? LoaderUtils.extractUrlBase( url ) : this.path;\n\t\tthis.resourcePath = this.resourcePath || path;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\n\t\tconst text = await loader.loadAsync( url, onProgress );\n\n\t\tconst json = JSON.parse( text );\n\n\t\tconst metadata = json.metadata;\n\n\t\tif ( metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry' ) {\n\n\t\t\tthrow new Error( 'THREE.ObjectLoader: Can\\'t load ' + url );\n\n\t\t}\n\n\t\treturn await scope.parseAsync( json );\n\n\t}\n\n\tparse( json, onLoad ) {\n\n\t\tconst animations = this.parseAnimations( json.animations );\n\t\tconst shapes = this.parseShapes( json.shapes );\n\t\tconst geometries = this.parseGeometries( json.geometries, shapes );\n\n\t\tconst images = this.parseImages( json.images, function () {\n\n\t\t\tif ( onLoad !== undefined ) onLoad( object );\n\n\t\t} );\n\n\t\tconst textures = this.parseTextures( json.textures, images );\n\t\tconst materials = this.parseMaterials( json.materials, textures );\n\n\t\tconst object = this.parseObject( json.object, geometries, materials, textures, animations );\n\t\tconst skeletons = this.parseSkeletons( json.skeletons, object );\n\n\t\tthis.bindSkeletons( object, skeletons );\n\n\t\t//\n\n\t\tif ( onLoad !== undefined ) {\n\n\t\t\tlet hasImages = false;\n\n\t\t\tfor ( const uuid in images ) {\n\n\t\t\t\tif ( images[ uuid ] instanceof HTMLImageElement ) {\n\n\t\t\t\t\thasImages = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( hasImages === false ) onLoad( object );\n\n\t\t}\n\n\t\treturn object;\n\n\t}\n\n\tasync parseAsync( json ) {\n\n\t\tconst animations = this.parseAnimations( json.animations );\n\t\tconst shapes = this.parseShapes( json.shapes );\n\t\tconst geometries = this.parseGeometries( json.geometries, shapes );\n\n\t\tconst images = await this.parseImagesAsync( json.images );\n\n\t\tconst textures = this.parseTextures( json.textures, images );\n\t\tconst materials = this.parseMaterials( json.materials, textures );\n\n\t\tconst object = this.parseObject( json.object, geometries, materials, textures, animations );\n\t\tconst skeletons = this.parseSkeletons( json.skeletons, object );\n\n\t\tthis.bindSkeletons( object, skeletons );\n\n\t\treturn object;\n\n\t}\n\n\tparseShapes( json ) {\n\n\t\tconst shapes = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst shape = new Shape().fromJSON( json[ i ] );\n\n\t\t\t\tshapes[ shape.uuid ] = shape;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn shapes;\n\n\t}\n\n\tparseSkeletons( json, object ) {\n\n\t\tconst skeletons = {};\n\t\tconst bones = {};\n\n\t\t// generate bone lookup table\n\n\t\tobject.traverse( function ( child ) {\n\n\t\t\tif ( child.isBone ) bones[ child.uuid ] = child;\n\n\t\t} );\n\n\t\t// create skeletons\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst skeleton = new Skeleton().fromJSON( json[ i ], bones );\n\n\t\t\t\tskeletons[ skeleton.uuid ] = skeleton;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn skeletons;\n\n\t}\n\n\tparseGeometries( json, shapes ) {\n\n\t\tconst geometries = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tconst bufferGeometryLoader = new BufferGeometryLoader();\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tlet geometry;\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tswitch ( data.type ) {\n\n\t\t\t\t\tcase 'BufferGeometry':\n\t\t\t\t\tcase 'InstancedBufferGeometry':\n\n\t\t\t\t\t\tgeometry = bufferGeometryLoader.parse( data );\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'Geometry':\n\n\t\t\t\t\t\tconsole.error( 'THREE.ObjectLoader: The legacy Geometry type is no longer supported.' );\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tif ( data.type in Geometries ) {\n\n\t\t\t\t\t\t\tgeometry = Geometries[ data.type ].fromJSON( data, shapes );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tconsole.warn( `THREE.ObjectLoader: Unsupported geometry type \"${ data.type }\"` );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tgeometry.uuid = data.uuid;\n\n\t\t\t\tif ( data.name !== undefined ) geometry.name = data.name;\n\t\t\t\tif ( geometry.isBufferGeometry === true && data.userData !== undefined ) geometry.userData = data.userData;\n\n\t\t\t\tgeometries[ data.uuid ] = geometry;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn geometries;\n\n\t}\n\n\tparseMaterials( json, textures ) {\n\n\t\tconst cache = {}; // MultiMaterial\n\t\tconst materials = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tconst loader = new MaterialLoader();\n\t\t\tloader.setTextures( textures );\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tif ( data.type === 'MultiMaterial' ) {\n\n\t\t\t\t\t// Deprecated\n\n\t\t\t\t\tconst array = [];\n\n\t\t\t\t\tfor ( let j = 0; j < data.materials.length; j ++ ) {\n\n\t\t\t\t\t\tconst material = data.materials[ j ];\n\n\t\t\t\t\t\tif ( cache[ material.uuid ] === undefined ) {\n\n\t\t\t\t\t\t\tcache[ material.uuid ] = loader.parse( material );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tarray.push( cache[ material.uuid ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tmaterials[ data.uuid ] = array;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( cache[ data.uuid ] === undefined ) {\n\n\t\t\t\t\t\tcache[ data.uuid ] = loader.parse( data );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tmaterials[ data.uuid ] = cache[ data.uuid ];\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn materials;\n\n\t}\n\n\tparseAnimations( json ) {\n\n\t\tconst animations = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0; i < json.length; i ++ ) {\n\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tconst clip = AnimationClip.parse( data );\n\n\t\t\t\tanimations[ clip.uuid ] = clip;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn animations;\n\n\t}\n\n\tparseImages( json, onLoad ) {\n\n\t\tconst scope = this;\n\t\tconst images = {};\n\n\t\tlet loader;\n\n\t\tfunction loadImage( url ) {\n\n\t\t\tscope.manager.itemStart( url );\n\n\t\t\treturn loader.load( url, function () {\n\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t}, undefined, function () {\n\n\t\t\t\tscope.manager.itemError( url );\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t} );\n\n\t\t}\n\n\t\tfunction deserializeImage( image ) {\n\n\t\t\tif ( typeof image === 'string' ) {\n\n\t\t\t\tconst url = image;\n\n\t\t\t\tconst path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test( url ) ? url : scope.resourcePath + url;\n\n\t\t\t\treturn loadImage( path );\n\n\t\t\t} else {\n\n\t\t\t\tif ( image.data ) {\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdata: getTypedArray( image.type, image.data ),\n\t\t\t\t\t\twidth: image.width,\n\t\t\t\t\t\theight: image.height\n\t\t\t\t\t};\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( json !== undefined && json.length > 0 ) {\n\n\t\t\tconst manager = new LoadingManager( onLoad );\n\n\t\t\tloader = new ImageLoader( manager );\n\t\t\tloader.setCrossOrigin( this.crossOrigin );\n\n\t\t\tfor ( let i = 0, il = json.length; i < il; i ++ ) {\n\n\t\t\t\tconst image = json[ i ];\n\t\t\t\tconst url = image.url;\n\n\t\t\t\tif ( Array.isArray( url ) ) {\n\n\t\t\t\t\t// load array of images e.g CubeTexture\n\n\t\t\t\t\timages[ image.uuid ] = [];\n\n\t\t\t\t\tfor ( let j = 0, jl = url.length; j < jl; j ++ ) {\n\n\t\t\t\t\t\tconst currentUrl = url[ j ];\n\n\t\t\t\t\t\tconst deserializedImage = deserializeImage( currentUrl );\n\n\t\t\t\t\t\tif ( deserializedImage !== null ) {\n\n\t\t\t\t\t\t\tif ( deserializedImage instanceof HTMLImageElement ) {\n\n\t\t\t\t\t\t\t\timages[ image.uuid ].push( deserializedImage );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// special case: handle array of data textures for cube textures\n\n\t\t\t\t\t\t\t\timages[ image.uuid ].push( new DataTexture( deserializedImage.data, deserializedImage.width, deserializedImage.height ) );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// load single image\n\n\t\t\t\t\tconst deserializedImage = deserializeImage( image.url );\n\n\t\t\t\t\tif ( deserializedImage !== null ) {\n\n\t\t\t\t\t\timages[ image.uuid ] = deserializedImage;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn images;\n\n\t}\n\n\tasync parseImagesAsync( json ) {\n\n\t\tconst scope = this;\n\t\tconst images = {};\n\n\t\tlet loader;\n\n\t\tasync function deserializeImage( image ) {\n\n\t\t\tif ( typeof image === 'string' ) {\n\n\t\t\t\tconst url = image;\n\n\t\t\t\tconst path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test( url ) ? url : scope.resourcePath + url;\n\n\t\t\t\treturn await loader.loadAsync( path );\n\n\t\t\t} else {\n\n\t\t\t\tif ( image.data ) {\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdata: getTypedArray( image.type, image.data ),\n\t\t\t\t\t\twidth: image.width,\n\t\t\t\t\t\theight: image.height\n\t\t\t\t\t};\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( json !== undefined && json.length > 0 ) {\n\n\t\t\tloader = new ImageLoader( this.manager );\n\t\t\tloader.setCrossOrigin( this.crossOrigin );\n\n\t\t\tfor ( let i = 0, il = json.length; i < il; i ++ ) {\n\n\t\t\t\tconst image = json[ i ];\n\t\t\t\tconst url = image.url;\n\n\t\t\t\tif ( Array.isArray( url ) ) {\n\n\t\t\t\t\t// load array of images e.g CubeTexture\n\n\t\t\t\t\timages[ image.uuid ] = [];\n\n\t\t\t\t\tfor ( let j = 0, jl = url.length; j < jl; j ++ ) {\n\n\t\t\t\t\t\tconst currentUrl = url[ j ];\n\n\t\t\t\t\t\tconst deserializedImage = await deserializeImage( currentUrl );\n\n\t\t\t\t\t\tif ( deserializedImage !== null ) {\n\n\t\t\t\t\t\t\tif ( deserializedImage instanceof HTMLImageElement ) {\n\n\t\t\t\t\t\t\t\timages[ image.uuid ].push( deserializedImage );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// special case: handle array of data textures for cube textures\n\n\t\t\t\t\t\t\t\timages[ image.uuid ].push( new DataTexture( deserializedImage.data, deserializedImage.width, deserializedImage.height ) );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// load single image\n\n\t\t\t\t\tconst deserializedImage = await deserializeImage( image.url );\n\n\t\t\t\t\tif ( deserializedImage !== null ) {\n\n\t\t\t\t\t\timages[ image.uuid ] = deserializedImage;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn images;\n\n\t}\n\n\tparseTextures( json, images ) {\n\n\t\tfunction parseConstant( value, type ) {\n\n\t\t\tif ( typeof value === 'number' ) return value;\n\n\t\t\tconsole.warn( 'THREE.ObjectLoader.parseTexture: Constant should be in numeric form.', value );\n\n\t\t\treturn type[ value ];\n\n\t\t}\n\n\t\tconst textures = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tif ( data.image === undefined ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: No \"image\" specified for', data.uuid );\n\n\t\t\t\t}\n\n\t\t\t\tif ( images[ data.image ] === undefined ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined image', data.image );\n\n\t\t\t\t}\n\n\t\t\t\tlet texture;\n\t\t\t\tconst image = images[ data.image ];\n\n\t\t\t\tif ( Array.isArray( image ) ) {\n\n\t\t\t\t\ttexture = new CubeTexture( image );\n\n\t\t\t\t\tif ( image.length === 6 ) texture.needsUpdate = true;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( image && image.data ) {\n\n\t\t\t\t\t\ttexture = new DataTexture( image.data, image.width, image.height );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ttexture = new Texture( image );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( image ) texture.needsUpdate = true; // textures can have undefined image data\n\n\t\t\t\t}\n\n\t\t\t\ttexture.uuid = data.uuid;\n\n\t\t\t\tif ( data.name !== undefined ) texture.name = data.name;\n\n\t\t\t\tif ( data.mapping !== undefined ) texture.mapping = parseConstant( data.mapping, TEXTURE_MAPPING );\n\n\t\t\t\tif ( data.offset !== undefined ) texture.offset.fromArray( data.offset );\n\t\t\t\tif ( data.repeat !== undefined ) texture.repeat.fromArray( data.repeat );\n\t\t\t\tif ( data.center !== undefined ) texture.center.fromArray( data.center );\n\t\t\t\tif ( data.rotation !== undefined ) texture.rotation = data.rotation;\n\n\t\t\t\tif ( data.wrap !== undefined ) {\n\n\t\t\t\t\ttexture.wrapS = parseConstant( data.wrap[ 0 ], TEXTURE_WRAPPING );\n\t\t\t\t\ttexture.wrapT = parseConstant( data.wrap[ 1 ], TEXTURE_WRAPPING );\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.format !== undefined ) texture.format = data.format;\n\t\t\t\tif ( data.type !== undefined ) texture.type = data.type;\n\t\t\t\tif ( data.encoding !== undefined ) texture.encoding = data.encoding;\n\n\t\t\t\tif ( data.minFilter !== undefined ) texture.minFilter = parseConstant( data.minFilter, TEXTURE_FILTER );\n\t\t\t\tif ( data.magFilter !== undefined ) texture.magFilter = parseConstant( data.magFilter, TEXTURE_FILTER );\n\t\t\t\tif ( data.anisotropy !== undefined ) texture.anisotropy = data.anisotropy;\n\n\t\t\t\tif ( data.flipY !== undefined ) texture.flipY = data.flipY;\n\n\t\t\t\tif ( data.premultiplyAlpha !== undefined ) texture.premultiplyAlpha = data.premultiplyAlpha;\n\t\t\t\tif ( data.unpackAlignment !== undefined ) texture.unpackAlignment = data.unpackAlignment;\n\n\t\t\t\tif ( data.userData !== undefined ) texture.userData = data.userData;\n\n\t\t\t\ttextures[ data.uuid ] = texture;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn textures;\n\n\t}\n\n\tparseObject( data, geometries, materials, textures, animations ) {\n\n\t\tlet object;\n\n\t\tfunction getGeometry( name ) {\n\n\t\t\tif ( geometries[ name ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined geometry', name );\n\n\t\t\t}\n\n\t\t\treturn geometries[ name ];\n\n\t\t}\n\n\t\tfunction getMaterial( name ) {\n\n\t\t\tif ( name === undefined ) return undefined;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\n\t\t\t\tconst array = [];\n\n\t\t\t\tfor ( let i = 0, l = name.length; i < l; i ++ ) {\n\n\t\t\t\t\tconst uuid = name[ i ];\n\n\t\t\t\t\tif ( materials[ uuid ] === undefined ) {\n\n\t\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined material', uuid );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tarray.push( materials[ uuid ] );\n\n\t\t\t\t}\n\n\t\t\t\treturn array;\n\n\t\t\t}\n\n\t\t\tif ( materials[ name ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined material', name );\n\n\t\t\t}\n\n\t\t\treturn materials[ name ];\n\n\t\t}\n\n\t\tfunction getTexture( uuid ) {\n\n\t\t\tif ( textures[ uuid ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined texture', uuid );\n\n\t\t\t}\n\n\t\t\treturn textures[ uuid ];\n\n\t\t}\n\n\t\tlet geometry, material;\n\n\t\tswitch ( data.type ) {\n\n\t\t\tcase 'Scene':\n\n\t\t\t\tobject = new Scene();\n\n\t\t\t\tif ( data.background !== undefined ) {\n\n\t\t\t\t\tif ( Number.isInteger( data.background ) ) {\n\n\t\t\t\t\t\tobject.background = new Color( data.background );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tobject.background = getTexture( data.background );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.environment !== undefined ) {\n\n\t\t\t\t\tobject.environment = getTexture( data.environment );\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.fog !== undefined ) {\n\n\t\t\t\t\tif ( data.fog.type === 'Fog' ) {\n\n\t\t\t\t\t\tobject.fog = new Fog( data.fog.color, data.fog.near, data.fog.far );\n\n\t\t\t\t\t} else if ( data.fog.type === 'FogExp2' ) {\n\n\t\t\t\t\t\tobject.fog = new FogExp2( data.fog.color, data.fog.density );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'PerspectiveCamera':\n\n\t\t\t\tobject = new PerspectiveCamera( data.fov, data.aspect, data.near, data.far );\n\n\t\t\t\tif ( data.focus !== undefined ) object.focus = data.focus;\n\t\t\t\tif ( data.zoom !== undefined ) object.zoom = data.zoom;\n\t\t\t\tif ( data.filmGauge !== undefined ) object.filmGauge = data.filmGauge;\n\t\t\t\tif ( data.filmOffset !== undefined ) object.filmOffset = data.filmOffset;\n\t\t\t\tif ( data.view !== undefined ) object.view = Object.assign( {}, data.view );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'OrthographicCamera':\n\n\t\t\t\tobject = new OrthographicCamera( data.left, data.right, data.top, data.bottom, data.near, data.far );\n\n\t\t\t\tif ( data.zoom !== undefined ) object.zoom = data.zoom;\n\t\t\t\tif ( data.view !== undefined ) object.view = Object.assign( {}, data.view );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'AmbientLight':\n\n\t\t\t\tobject = new AmbientLight( data.color, data.intensity );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'DirectionalLight':\n\n\t\t\t\tobject = new DirectionalLight( data.color, data.intensity );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'PointLight':\n\n\t\t\t\tobject = new PointLight( data.color, data.intensity, data.distance, data.decay );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'RectAreaLight':\n\n\t\t\t\tobject = new RectAreaLight( data.color, data.intensity, data.width, data.height );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'SpotLight':\n\n\t\t\t\tobject = new SpotLight( data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'HemisphereLight':\n\n\t\t\t\tobject = new HemisphereLight( data.color, data.groundColor, data.intensity );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LightProbe':\n\n\t\t\t\tobject = new LightProbe().fromJSON( data );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'SkinnedMesh':\n\n\t\t\t\tgeometry = getGeometry( data.geometry );\n\t\t\t \tmaterial = getMaterial( data.material );\n\n\t\t\t\tobject = new SkinnedMesh( geometry, material );\n\n\t\t\t\tif ( data.bindMode !== undefined ) object.bindMode = data.bindMode;\n\t\t\t\tif ( data.bindMatrix !== undefined ) object.bindMatrix.fromArray( data.bindMatrix );\n\t\t\t\tif ( data.skeleton !== undefined ) object.skeleton = data.skeleton;\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Mesh':\n\n\t\t\t\tgeometry = getGeometry( data.geometry );\n\t\t\t\tmaterial = getMaterial( data.material );\n\n\t\t\t\tobject = new Mesh( geometry, material );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'InstancedMesh':\n\n\t\t\t\tgeometry = getGeometry( data.geometry );\n\t\t\t\tmaterial = getMaterial( data.material );\n\t\t\t\tconst count = data.count;\n\t\t\t\tconst instanceMatrix = data.instanceMatrix;\n\t\t\t\tconst instanceColor = data.instanceColor;\n\n\t\t\t\tobject = new InstancedMesh( geometry, material, count );\n\t\t\t\tobject.instanceMatrix = new InstancedBufferAttribute( new Float32Array( instanceMatrix.array ), 16 );\n\t\t\t\tif ( instanceColor !== undefined ) object.instanceColor = new InstancedBufferAttribute( new Float32Array( instanceColor.array ), instanceColor.itemSize );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LOD':\n\n\t\t\t\tobject = new LOD();\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Line':\n\n\t\t\t\tobject = new Line( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LineLoop':\n\n\t\t\t\tobject = new LineLoop( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LineSegments':\n\n\t\t\t\tobject = new LineSegments( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'PointCloud':\n\t\t\tcase 'Points':\n\n\t\t\t\tobject = new Points( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Sprite':\n\n\t\t\t\tobject = new Sprite( getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Group':\n\n\t\t\t\tobject = new Group();\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Bone':\n\n\t\t\t\tobject = new Bone();\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tobject = new Object3D();\n\n\t\t}\n\n\t\tobject.uuid = data.uuid;\n\n\t\tif ( data.name !== undefined ) object.name = data.name;\n\n\t\tif ( data.matrix !== undefined ) {\n\n\t\t\tobject.matrix.fromArray( data.matrix );\n\n\t\t\tif ( data.matrixAutoUpdate !== undefined ) object.matrixAutoUpdate = data.matrixAutoUpdate;\n\t\t\tif ( object.matrixAutoUpdate ) object.matrix.decompose( object.position, object.quaternion, object.scale );\n\n\t\t} else {\n\n\t\t\tif ( data.position !== undefined ) object.position.fromArray( data.position );\n\t\t\tif ( data.rotation !== undefined ) object.rotation.fromArray( data.rotation );\n\t\t\tif ( data.quaternion !== undefined ) object.quaternion.fromArray( data.quaternion );\n\t\t\tif ( data.scale !== undefined ) object.scale.fromArray( data.scale );\n\n\t\t}\n\n\t\tif ( data.castShadow !== undefined ) object.castShadow = data.castShadow;\n\t\tif ( data.receiveShadow !== undefined ) object.receiveShadow = data.receiveShadow;\n\n\t\tif ( data.shadow ) {\n\n\t\t\tif ( data.shadow.bias !== undefined ) object.shadow.bias = data.shadow.bias;\n\t\t\tif ( data.shadow.normalBias !== undefined ) object.shadow.normalBias = data.shadow.normalBias;\n\t\t\tif ( data.shadow.radius !== undefined ) object.shadow.radius = data.shadow.radius;\n\t\t\tif ( data.shadow.mapSize !== undefined ) object.shadow.mapSize.fromArray( data.shadow.mapSize );\n\t\t\tif ( data.shadow.camera !== undefined ) object.shadow.camera = this.parseObject( data.shadow.camera );\n\n\t\t}\n\n\t\tif ( data.visible !== undefined ) object.visible = data.visible;\n\t\tif ( data.frustumCulled !== undefined ) object.frustumCulled = data.frustumCulled;\n\t\tif ( data.renderOrder !== undefined ) object.renderOrder = data.renderOrder;\n\t\tif ( data.userData !== undefined ) object.userData = data.userData;\n\t\tif ( data.layers !== undefined ) object.layers.mask = data.layers;\n\n\t\tif ( data.children !== undefined ) {\n\n\t\t\tconst children = data.children;\n\n\t\t\tfor ( let i = 0; i < children.length; i ++ ) {\n\n\t\t\t\tobject.add( this.parseObject( children[ i ], geometries, materials, textures, animations ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( data.animations !== undefined ) {\n\n\t\t\tconst objectAnimations = data.animations;\n\n\t\t\tfor ( let i = 0; i < objectAnimations.length; i ++ ) {\n\n\t\t\t\tconst uuid = objectAnimations[ i ];\n\n\t\t\t\tobject.animations.push( animations[ uuid ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( data.type === 'LOD' ) {\n\n\t\t\tif ( data.autoUpdate !== undefined ) object.autoUpdate = data.autoUpdate;\n\n\t\t\tconst levels = data.levels;\n\n\t\t\tfor ( let l = 0; l < levels.length; l ++ ) {\n\n\t\t\t\tconst level = levels[ l ];\n\t\t\t\tconst child = object.getObjectByProperty( 'uuid', level.object );\n\n\t\t\t\tif ( child !== undefined ) {\n\n\t\t\t\t\tobject.addLevel( child, level.distance );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn object;\n\n\t}\n\n\tbindSkeletons( object, skeletons ) {\n\n\t\tif ( Object.keys( skeletons ).length === 0 ) return;\n\n\t\tobject.traverse( function ( child ) {\n\n\t\t\tif ( child.isSkinnedMesh === true && child.skeleton !== undefined ) {\n\n\t\t\t\tconst skeleton = skeletons[ child.skeleton ];\n\n\t\t\t\tif ( skeleton === undefined ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: No skeleton found with UUID:', child.skeleton );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tchild.bind( skeleton, child.bindMatrix );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} );\n\n\t}\n\n\t/* DEPRECATED */\n\n\tsetTexturePath( value ) {\n\n\t\tconsole.warn( 'THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath().' );\n\t\treturn this.setResourcePath( value );\n\n\t}\n\n}\n\nconst TEXTURE_MAPPING = {\n\tUVMapping: UVMapping,\n\tCubeReflectionMapping: CubeReflectionMapping,\n\tCubeRefractionMapping: CubeRefractionMapping,\n\tEquirectangularReflectionMapping: EquirectangularReflectionMapping,\n\tEquirectangularRefractionMapping: EquirectangularRefractionMapping,\n\tCubeUVReflectionMapping: CubeUVReflectionMapping,\n\tCubeUVRefractionMapping: CubeUVRefractionMapping\n};\n\nconst TEXTURE_WRAPPING = {\n\tRepeatWrapping: RepeatWrapping,\n\tClampToEdgeWrapping: ClampToEdgeWrapping,\n\tMirroredRepeatWrapping: MirroredRepeatWrapping\n};\n\nconst TEXTURE_FILTER = {\n\tNearestFilter: NearestFilter,\n\tNearestMipmapNearestFilter: NearestMipmapNearestFilter,\n\tNearestMipmapLinearFilter: NearestMipmapLinearFilter,\n\tLinearFilter: LinearFilter,\n\tLinearMipmapNearestFilter: LinearMipmapNearestFilter,\n\tLinearMipmapLinearFilter: LinearMipmapLinearFilter\n};\n\nclass ImageBitmapLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\tif ( typeof createImageBitmap === 'undefined' ) {\n\n\t\t\tconsole.warn( 'THREE.ImageBitmapLoader: createImageBitmap() not supported.' );\n\n\t\t}\n\n\t\tif ( typeof fetch === 'undefined' ) {\n\n\t\t\tconsole.warn( 'THREE.ImageBitmapLoader: fetch() not supported.' );\n\n\t\t}\n\n\t\tthis.options = { premultiplyAlpha: 'none' };\n\n\t}\n\n\tsetOptions( options ) {\n\n\t\tthis.options = options;\n\n\t\treturn this;\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tif ( url === undefined ) url = '';\n\n\t\tif ( this.path !== undefined ) url = this.path + url;\n\n\t\turl = this.manager.resolveURL( url );\n\n\t\tconst scope = this;\n\n\t\tconst cached = Cache.get( url );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tscope.manager.itemStart( url );\n\n\t\t\tsetTimeout( function () {\n\n\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t}, 0 );\n\n\t\t\treturn cached;\n\n\t\t}\n\n\t\tconst fetchOptions = {};\n\t\tfetchOptions.credentials = ( this.crossOrigin === 'anonymous' ) ? 'same-origin' : 'include';\n\t\tfetchOptions.headers = this.requestHeader;\n\n\t\tfetch( url, fetchOptions ).then( function ( res ) {\n\n\t\t\treturn res.blob();\n\n\t\t} ).then( function ( blob ) {\n\n\t\t\treturn createImageBitmap( blob, Object.assign( scope.options, { colorSpaceConversion: 'none' } ) );\n\n\t\t} ).then( function ( imageBitmap ) {\n\n\t\t\tCache.add( url, imageBitmap );\n\n\t\t\tif ( onLoad ) onLoad( imageBitmap );\n\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t} ).catch( function ( e ) {\n\n\t\t\tif ( onError ) onError( e );\n\n\t\t\tscope.manager.itemError( url );\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t} );\n\n\t\tscope.manager.itemStart( url );\n\n\t}\n\n}\n\nImageBitmapLoader.prototype.isImageBitmapLoader = true;\n\nlet _context;\n\nconst AudioContext = {\n\n\tgetContext: function () {\n\n\t\tif ( _context === undefined ) {\n\n\t\t\t_context = new ( window.AudioContext || window.webkitAudioContext )();\n\n\t\t}\n\n\t\treturn _context;\n\n\t},\n\n\tsetContext: function ( value ) {\n\n\t\t_context = value;\n\n\t}\n\n};\n\nclass AudioLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( buffer ) {\n\n\t\t\ttry {\n\n\t\t\t\t// Create a copy of the buffer. The `decodeAudioData` method\n\t\t\t\t// detaches the buffer when complete, preventing reuse.\n\t\t\t\tconst bufferCopy = buffer.slice( 0 );\n\n\t\t\t\tconst context = AudioContext.getContext();\n\t\t\t\tcontext.decodeAudioData( bufferCopy, function ( audioBuffer ) {\n\n\t\t\t\t\tonLoad( audioBuffer );\n\n\t\t\t\t} );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n}\n\nclass HemisphereLightProbe extends LightProbe {\n\n\tconstructor( skyColor, groundColor, intensity = 1 ) {\n\n\t\tsuper( undefined, intensity );\n\n\t\tconst color1 = new Color().set( skyColor );\n\t\tconst color2 = new Color().set( groundColor );\n\n\t\tconst sky = new Vector3( color1.r, color1.g, color1.b );\n\t\tconst ground = new Vector3( color2.r, color2.g, color2.b );\n\n\t\t// without extra factor of PI in the shader, should = 1 / Math.sqrt( Math.PI );\n\t\tconst c0 = Math.sqrt( Math.PI );\n\t\tconst c1 = c0 * Math.sqrt( 0.75 );\n\n\t\tthis.sh.coefficients[ 0 ].copy( sky ).add( ground ).multiplyScalar( c0 );\n\t\tthis.sh.coefficients[ 1 ].copy( sky ).sub( ground ).multiplyScalar( c1 );\n\n\t}\n\n}\n\nHemisphereLightProbe.prototype.isHemisphereLightProbe = true;\n\nclass AmbientLightProbe extends LightProbe {\n\n\tconstructor( color, intensity = 1 ) {\n\n\t\tsuper( undefined, intensity );\n\n\t\tconst color1 = new Color().set( color );\n\n\t\t// without extra factor of PI in the shader, would be 2 / Math.sqrt( Math.PI );\n\t\tthis.sh.coefficients[ 0 ].set( color1.r, color1.g, color1.b ).multiplyScalar( 2 * Math.sqrt( Math.PI ) );\n\n\t}\n\n}\n\nAmbientLightProbe.prototype.isAmbientLightProbe = true;\n\nconst _eyeRight = /*@__PURE__*/ new Matrix4();\nconst _eyeLeft = /*@__PURE__*/ new Matrix4();\nconst _projectionMatrix = /*@__PURE__*/ new Matrix4();\n\nclass StereoCamera {\n\n\tconstructor() {\n\n\t\tthis.type = 'StereoCamera';\n\n\t\tthis.aspect = 1;\n\n\t\tthis.eyeSep = 0.064;\n\n\t\tthis.cameraL = new PerspectiveCamera();\n\t\tthis.cameraL.layers.enable( 1 );\n\t\tthis.cameraL.matrixAutoUpdate = false;\n\n\t\tthis.cameraR = new PerspectiveCamera();\n\t\tthis.cameraR.layers.enable( 2 );\n\t\tthis.cameraR.matrixAutoUpdate = false;\n\n\t\tthis._cache = {\n\t\t\tfocus: null,\n\t\t\tfov: null,\n\t\t\taspect: null,\n\t\t\tnear: null,\n\t\t\tfar: null,\n\t\t\tzoom: null,\n\t\t\teyeSep: null\n\t\t};\n\n\t}\n\n\tupdate( camera ) {\n\n\t\tconst cache = this._cache;\n\n\t\tconst needsUpdate = cache.focus !== camera.focus || cache.fov !== camera.fov ||\n\t\t\tcache.aspect !== camera.aspect * this.aspect || cache.near !== camera.near ||\n\t\t\tcache.far !== camera.far || cache.zoom !== camera.zoom || cache.eyeSep !== this.eyeSep;\n\n\t\tif ( needsUpdate ) {\n\n\t\t\tcache.focus = camera.focus;\n\t\t\tcache.fov = camera.fov;\n\t\t\tcache.aspect = camera.aspect * this.aspect;\n\t\t\tcache.near = camera.near;\n\t\t\tcache.far = camera.far;\n\t\t\tcache.zoom = camera.zoom;\n\t\t\tcache.eyeSep = this.eyeSep;\n\n\t\t\t// Off-axis stereoscopic effect based on\n\t\t\t// http://paulbourke.net/stereographics/stereorender/\n\n\t\t\t_projectionMatrix.copy( camera.projectionMatrix );\n\t\t\tconst eyeSepHalf = cache.eyeSep / 2;\n\t\t\tconst eyeSepOnProjection = eyeSepHalf * cache.near / cache.focus;\n\t\t\tconst ymax = ( cache.near * Math.tan( DEG2RAD * cache.fov * 0.5 ) ) / cache.zoom;\n\t\t\tlet xmin, xmax;\n\n\t\t\t// translate xOffset\n\n\t\t\t_eyeLeft.elements[ 12 ] = - eyeSepHalf;\n\t\t\t_eyeRight.elements[ 12 ] = eyeSepHalf;\n\n\t\t\t// for left eye\n\n\t\t\txmin = - ymax * cache.aspect + eyeSepOnProjection;\n\t\t\txmax = ymax * cache.aspect + eyeSepOnProjection;\n\n\t\t\t_projectionMatrix.elements[ 0 ] = 2 * cache.near / ( xmax - xmin );\n\t\t\t_projectionMatrix.elements[ 8 ] = ( xmax + xmin ) / ( xmax - xmin );\n\n\t\t\tthis.cameraL.projectionMatrix.copy( _projectionMatrix );\n\n\t\t\t// for right eye\n\n\t\t\txmin = - ymax * cache.aspect - eyeSepOnProjection;\n\t\t\txmax = ymax * cache.aspect - eyeSepOnProjection;\n\n\t\t\t_projectionMatrix.elements[ 0 ] = 2 * cache.near / ( xmax - xmin );\n\t\t\t_projectionMatrix.elements[ 8 ] = ( xmax + xmin ) / ( xmax - xmin );\n\n\t\t\tthis.cameraR.projectionMatrix.copy( _projectionMatrix );\n\n\t\t}\n\n\t\tthis.cameraL.matrixWorld.copy( camera.matrixWorld ).multiply( _eyeLeft );\n\t\tthis.cameraR.matrixWorld.copy( camera.matrixWorld ).multiply( _eyeRight );\n\n\t}\n\n}\n\nclass Clock {\n\n\tconstructor( autoStart = true ) {\n\n\t\tthis.autoStart = autoStart;\n\n\t\tthis.startTime = 0;\n\t\tthis.oldTime = 0;\n\t\tthis.elapsedTime = 0;\n\n\t\tthis.running = false;\n\n\t}\n\n\tstart() {\n\n\t\tthis.startTime = now();\n\n\t\tthis.oldTime = this.startTime;\n\t\tthis.elapsedTime = 0;\n\t\tthis.running = true;\n\n\t}\n\n\tstop() {\n\n\t\tthis.getElapsedTime();\n\t\tthis.running = false;\n\t\tthis.autoStart = false;\n\n\t}\n\n\tgetElapsedTime() {\n\n\t\tthis.getDelta();\n\t\treturn this.elapsedTime;\n\n\t}\n\n\tgetDelta() {\n\n\t\tlet diff = 0;\n\n\t\tif ( this.autoStart && ! this.running ) {\n\n\t\t\tthis.start();\n\t\t\treturn 0;\n\n\t\t}\n\n\t\tif ( this.running ) {\n\n\t\t\tconst newTime = now();\n\n\t\t\tdiff = ( newTime - this.oldTime ) / 1000;\n\t\t\tthis.oldTime = newTime;\n\n\t\t\tthis.elapsedTime += diff;\n\n\t\t}\n\n\t\treturn diff;\n\n\t}\n\n}\n\nfunction now() {\n\n\treturn ( typeof performance === 'undefined' ? Date : performance ).now(); // see #10732\n\n}\n\nconst _position$1 = /*@__PURE__*/ new Vector3();\nconst _quaternion$1 = /*@__PURE__*/ new Quaternion();\nconst _scale$1 = /*@__PURE__*/ new Vector3();\nconst _orientation$1 = /*@__PURE__*/ new Vector3();\n\nclass AudioListener extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'AudioListener';\n\n\t\tthis.context = AudioContext.getContext();\n\n\t\tthis.gain = this.context.createGain();\n\t\tthis.gain.connect( this.context.destination );\n\n\t\tthis.filter = null;\n\n\t\tthis.timeDelta = 0;\n\n\t\t// private\n\n\t\tthis._clock = new Clock();\n\n\t}\n\n\tgetInput() {\n\n\t\treturn this.gain;\n\n\t}\n\n\tremoveFilter() {\n\n\t\tif ( this.filter !== null ) {\n\n\t\t\tthis.gain.disconnect( this.filter );\n\t\t\tthis.filter.disconnect( this.context.destination );\n\t\t\tthis.gain.connect( this.context.destination );\n\t\t\tthis.filter = null;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetFilter() {\n\n\t\treturn this.filter;\n\n\t}\n\n\tsetFilter( value ) {\n\n\t\tif ( this.filter !== null ) {\n\n\t\t\tthis.gain.disconnect( this.filter );\n\t\t\tthis.filter.disconnect( this.context.destination );\n\n\t\t} else {\n\n\t\t\tthis.gain.disconnect( this.context.destination );\n\n\t\t}\n\n\t\tthis.filter = value;\n\t\tthis.gain.connect( this.filter );\n\t\tthis.filter.connect( this.context.destination );\n\n\t\treturn this;\n\n\t}\n\n\tgetMasterVolume() {\n\n\t\treturn this.gain.gain.value;\n\n\t}\n\n\tsetMasterVolume( value ) {\n\n\t\tthis.gain.gain.setTargetAtTime( value, this.context.currentTime, 0.01 );\n\n\t\treturn this;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tconst listener = this.context.listener;\n\t\tconst up = this.up;\n\n\t\tthis.timeDelta = this._clock.getDelta();\n\n\t\tthis.matrixWorld.decompose( _position$1, _quaternion$1, _scale$1 );\n\n\t\t_orientation$1.set( 0, 0, - 1 ).applyQuaternion( _quaternion$1 );\n\n\t\tif ( listener.positionX ) {\n\n\t\t\t// code path for Chrome (see #14393)\n\n\t\t\tconst endTime = this.context.currentTime + this.timeDelta;\n\n\t\t\tlistener.positionX.linearRampToValueAtTime( _position$1.x, endTime );\n\t\t\tlistener.positionY.linearRampToValueAtTime( _position$1.y, endTime );\n\t\t\tlistener.positionZ.linearRampToValueAtTime( _position$1.z, endTime );\n\t\t\tlistener.forwardX.linearRampToValueAtTime( _orientation$1.x, endTime );\n\t\t\tlistener.forwardY.linearRampToValueAtTime( _orientation$1.y, endTime );\n\t\t\tlistener.forwardZ.linearRampToValueAtTime( _orientation$1.z, endTime );\n\t\t\tlistener.upX.linearRampToValueAtTime( up.x, endTime );\n\t\t\tlistener.upY.linearRampToValueAtTime( up.y, endTime );\n\t\t\tlistener.upZ.linearRampToValueAtTime( up.z, endTime );\n\n\t\t} else {\n\n\t\t\tlistener.setPosition( _position$1.x, _position$1.y, _position$1.z );\n\t\t\tlistener.setOrientation( _orientation$1.x, _orientation$1.y, _orientation$1.z, up.x, up.y, up.z );\n\n\t\t}\n\n\t}\n\n}\n\nclass Audio extends Object3D {\n\n\tconstructor( listener ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Audio';\n\n\t\tthis.listener = listener;\n\t\tthis.context = listener.context;\n\n\t\tthis.gain = this.context.createGain();\n\t\tthis.gain.connect( listener.getInput() );\n\n\t\tthis.autoplay = false;\n\n\t\tthis.buffer = null;\n\t\tthis.detune = 0;\n\t\tthis.loop = false;\n\t\tthis.loopStart = 0;\n\t\tthis.loopEnd = 0;\n\t\tthis.offset = 0;\n\t\tthis.duration = undefined;\n\t\tthis.playbackRate = 1;\n\t\tthis.isPlaying = false;\n\t\tthis.hasPlaybackControl = true;\n\t\tthis.source = null;\n\t\tthis.sourceType = 'empty';\n\n\t\tthis._startedAt = 0;\n\t\tthis._progress = 0;\n\t\tthis._connected = false;\n\n\t\tthis.filters = [];\n\n\t}\n\n\tgetOutput() {\n\n\t\treturn this.gain;\n\n\t}\n\n\tsetNodeSource( audioNode ) {\n\n\t\tthis.hasPlaybackControl = false;\n\t\tthis.sourceType = 'audioNode';\n\t\tthis.source = audioNode;\n\t\tthis.connect();\n\n\t\treturn this;\n\n\t}\n\n\tsetMediaElementSource( mediaElement ) {\n\n\t\tthis.hasPlaybackControl = false;\n\t\tthis.sourceType = 'mediaNode';\n\t\tthis.source = this.context.createMediaElementSource( mediaElement );\n\t\tthis.connect();\n\n\t\treturn this;\n\n\t}\n\n\tsetMediaStreamSource( mediaStream ) {\n\n\t\tthis.hasPlaybackControl = false;\n\t\tthis.sourceType = 'mediaStreamNode';\n\t\tthis.source = this.context.createMediaStreamSource( mediaStream );\n\t\tthis.connect();\n\n\t\treturn this;\n\n\t}\n\n\tsetBuffer( audioBuffer ) {\n\n\t\tthis.buffer = audioBuffer;\n\t\tthis.sourceType = 'buffer';\n\n\t\tif ( this.autoplay ) this.play();\n\n\t\treturn this;\n\n\t}\n\n\tplay( delay = 0 ) {\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: Audio is already playing.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis._startedAt = this.context.currentTime + delay;\n\n\t\tconst source = this.context.createBufferSource();\n\t\tsource.buffer = this.buffer;\n\t\tsource.loop = this.loop;\n\t\tsource.loopStart = this.loopStart;\n\t\tsource.loopEnd = this.loopEnd;\n\t\tsource.onended = this.onEnded.bind( this );\n\t\tsource.start( this._startedAt, this._progress + this.offset, this.duration );\n\n\t\tthis.isPlaying = true;\n\n\t\tthis.source = source;\n\n\t\tthis.setDetune( this.detune );\n\t\tthis.setPlaybackRate( this.playbackRate );\n\n\t\treturn this.connect();\n\n\t}\n\n\tpause() {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\t// update current progress\n\n\t\t\tthis._progress += Math.max( this.context.currentTime - this._startedAt, 0 ) * this.playbackRate;\n\n\t\t\tif ( this.loop === true ) {\n\n\t\t\t\t// ensure _progress does not exceed duration with looped audios\n\n\t\t\t\tthis._progress = this._progress % ( this.duration || this.buffer.duration );\n\n\t\t\t}\n\n\t\t\tthis.source.stop();\n\t\t\tthis.source.onended = null;\n\n\t\t\tthis.isPlaying = false;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tstop() {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis._progress = 0;\n\n\t\tthis.source.stop();\n\t\tthis.source.onended = null;\n\t\tthis.isPlaying = false;\n\n\t\treturn this;\n\n\t}\n\n\tconnect() {\n\n\t\tif ( this.filters.length > 0 ) {\n\n\t\t\tthis.source.connect( this.filters[ 0 ] );\n\n\t\t\tfor ( let i = 1, l = this.filters.length; i < l; i ++ ) {\n\n\t\t\t\tthis.filters[ i - 1 ].connect( this.filters[ i ] );\n\n\t\t\t}\n\n\t\t\tthis.filters[ this.filters.length - 1 ].connect( this.getOutput() );\n\n\t\t} else {\n\n\t\t\tthis.source.connect( this.getOutput() );\n\n\t\t}\n\n\t\tthis._connected = true;\n\n\t\treturn this;\n\n\t}\n\n\tdisconnect() {\n\n\t\tif ( this.filters.length > 0 ) {\n\n\t\t\tthis.source.disconnect( this.filters[ 0 ] );\n\n\t\t\tfor ( let i = 1, l = this.filters.length; i < l; i ++ ) {\n\n\t\t\t\tthis.filters[ i - 1 ].disconnect( this.filters[ i ] );\n\n\t\t\t}\n\n\t\t\tthis.filters[ this.filters.length - 1 ].disconnect( this.getOutput() );\n\n\t\t} else {\n\n\t\t\tthis.source.disconnect( this.getOutput() );\n\n\t\t}\n\n\t\tthis._connected = false;\n\n\t\treturn this;\n\n\t}\n\n\tgetFilters() {\n\n\t\treturn this.filters;\n\n\t}\n\n\tsetFilters( value ) {\n\n\t\tif ( ! value ) value = [];\n\n\t\tif ( this._connected === true ) {\n\n\t\t\tthis.disconnect();\n\t\t\tthis.filters = value.slice();\n\t\t\tthis.connect();\n\n\t\t} else {\n\n\t\t\tthis.filters = value.slice();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetDetune( value ) {\n\n\t\tthis.detune = value;\n\n\t\tif ( this.source.detune === undefined ) return; // only set detune when available\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tthis.source.detune.setTargetAtTime( this.detune, this.context.currentTime, 0.01 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetDetune() {\n\n\t\treturn this.detune;\n\n\t}\n\n\tgetFilter() {\n\n\t\treturn this.getFilters()[ 0 ];\n\n\t}\n\n\tsetFilter( filter ) {\n\n\t\treturn this.setFilters( filter ? [ filter ] : [] );\n\n\t}\n\n\tsetPlaybackRate( value ) {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis.playbackRate = value;\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tthis.source.playbackRate.setTargetAtTime( this.playbackRate, this.context.currentTime, 0.01 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetPlaybackRate() {\n\n\t\treturn this.playbackRate;\n\n\t}\n\n\tonEnded() {\n\n\t\tthis.isPlaying = false;\n\n\t}\n\n\tgetLoop() {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn this.loop;\n\n\t}\n\n\tsetLoop( value ) {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis.loop = value;\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tthis.source.loop = this.loop;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetLoopStart( value ) {\n\n\t\tthis.loopStart = value;\n\n\t\treturn this;\n\n\t}\n\n\tsetLoopEnd( value ) {\n\n\t\tthis.loopEnd = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetVolume() {\n\n\t\treturn this.gain.gain.value;\n\n\t}\n\n\tsetVolume( value ) {\n\n\t\tthis.gain.gain.setTargetAtTime( value, this.context.currentTime, 0.01 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _position = /*@__PURE__*/ new Vector3();\nconst _quaternion = /*@__PURE__*/ new Quaternion();\nconst _scale = /*@__PURE__*/ new Vector3();\nconst _orientation = /*@__PURE__*/ new Vector3();\n\nclass PositionalAudio extends Audio {\n\n\tconstructor( listener ) {\n\n\t\tsuper( listener );\n\n\t\tthis.panner = this.context.createPanner();\n\t\tthis.panner.panningModel = 'HRTF';\n\t\tthis.panner.connect( this.gain );\n\n\t}\n\n\tgetOutput() {\n\n\t\treturn this.panner;\n\n\t}\n\n\tgetRefDistance() {\n\n\t\treturn this.panner.refDistance;\n\n\t}\n\n\tsetRefDistance( value ) {\n\n\t\tthis.panner.refDistance = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetRolloffFactor() {\n\n\t\treturn this.panner.rolloffFactor;\n\n\t}\n\n\tsetRolloffFactor( value ) {\n\n\t\tthis.panner.rolloffFactor = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetDistanceModel() {\n\n\t\treturn this.panner.distanceModel;\n\n\t}\n\n\tsetDistanceModel( value ) {\n\n\t\tthis.panner.distanceModel = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetMaxDistance() {\n\n\t\treturn this.panner.maxDistance;\n\n\t}\n\n\tsetMaxDistance( value ) {\n\n\t\tthis.panner.maxDistance = value;\n\n\t\treturn this;\n\n\t}\n\n\tsetDirectionalCone( coneInnerAngle, coneOuterAngle, coneOuterGain ) {\n\n\t\tthis.panner.coneInnerAngle = coneInnerAngle;\n\t\tthis.panner.coneOuterAngle = coneOuterAngle;\n\t\tthis.panner.coneOuterGain = coneOuterGain;\n\n\t\treturn this;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tif ( this.hasPlaybackControl === true && this.isPlaying === false ) return;\n\n\t\tthis.matrixWorld.decompose( _position, _quaternion, _scale );\n\n\t\t_orientation.set( 0, 0, 1 ).applyQuaternion( _quaternion );\n\n\t\tconst panner = this.panner;\n\n\t\tif ( panner.positionX ) {\n\n\t\t\t// code path for Chrome and Firefox (see #14393)\n\n\t\t\tconst endTime = this.context.currentTime + this.listener.timeDelta;\n\n\t\t\tpanner.positionX.linearRampToValueAtTime( _position.x, endTime );\n\t\t\tpanner.positionY.linearRampToValueAtTime( _position.y, endTime );\n\t\t\tpanner.positionZ.linearRampToValueAtTime( _position.z, endTime );\n\t\t\tpanner.orientationX.linearRampToValueAtTime( _orientation.x, endTime );\n\t\t\tpanner.orientationY.linearRampToValueAtTime( _orientation.y, endTime );\n\t\t\tpanner.orientationZ.linearRampToValueAtTime( _orientation.z, endTime );\n\n\t\t} else {\n\n\t\t\tpanner.setPosition( _position.x, _position.y, _position.z );\n\t\t\tpanner.setOrientation( _orientation.x, _orientation.y, _orientation.z );\n\n\t\t}\n\n\t}\n\n}\n\nclass AudioAnalyser {\n\n\tconstructor( audio, fftSize = 2048 ) {\n\n\t\tthis.analyser = audio.context.createAnalyser();\n\t\tthis.analyser.fftSize = fftSize;\n\n\t\tthis.data = new Uint8Array( this.analyser.frequencyBinCount );\n\n\t\taudio.getOutput().connect( this.analyser );\n\n\t}\n\n\n\tgetFrequencyData() {\n\n\t\tthis.analyser.getByteFrequencyData( this.data );\n\n\t\treturn this.data;\n\n\t}\n\n\tgetAverageFrequency() {\n\n\t\tlet value = 0;\n\t\tconst data = this.getFrequencyData();\n\n\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\tvalue += data[ i ];\n\n\t\t}\n\n\t\treturn value / data.length;\n\n\t}\n\n}\n\nclass PropertyMixer {\n\n\tconstructor( binding, typeName, valueSize ) {\n\n\t\tthis.binding = binding;\n\t\tthis.valueSize = valueSize;\n\n\t\tlet mixFunction,\n\t\t\tmixFunctionAdditive,\n\t\t\tsetIdentity;\n\n\t\t// buffer layout: [ incoming | accu0 | accu1 | orig | addAccu | (optional work) ]\n\t\t//\n\t\t// interpolators can use .buffer as their .result\n\t\t// the data then goes to 'incoming'\n\t\t//\n\t\t// 'accu0' and 'accu1' are used frame-interleaved for\n\t\t// the cumulative result and are compared to detect\n\t\t// changes\n\t\t//\n\t\t// 'orig' stores the original state of the property\n\t\t//\n\t\t// 'add' is used for additive cumulative results\n\t\t//\n\t\t// 'work' is optional and is only present for quaternion types. It is used\n\t\t// to store intermediate quaternion multiplication results\n\n\t\tswitch ( typeName ) {\n\n\t\t\tcase 'quaternion':\n\t\t\t\tmixFunction = this._slerp;\n\t\t\t\tmixFunctionAdditive = this._slerpAdditive;\n\t\t\t\tsetIdentity = this._setAdditiveIdentityQuaternion;\n\n\t\t\t\tthis.buffer = new Float64Array( valueSize * 6 );\n\t\t\t\tthis._workIndex = 5;\n\t\t\t\tbreak;\n\n\t\t\tcase 'string':\n\t\t\tcase 'bool':\n\t\t\t\tmixFunction = this._select;\n\n\t\t\t\t// Use the regular mix function and for additive on these types,\n\t\t\t\t// additive is not relevant for non-numeric types\n\t\t\t\tmixFunctionAdditive = this._select;\n\n\t\t\t\tsetIdentity = this._setAdditiveIdentityOther;\n\n\t\t\t\tthis.buffer = new Array( valueSize * 5 );\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tmixFunction = this._lerp;\n\t\t\t\tmixFunctionAdditive = this._lerpAdditive;\n\t\t\t\tsetIdentity = this._setAdditiveIdentityNumeric;\n\n\t\t\t\tthis.buffer = new Float64Array( valueSize * 5 );\n\n\t\t}\n\n\t\tthis._mixBufferRegion = mixFunction;\n\t\tthis._mixBufferRegionAdditive = mixFunctionAdditive;\n\t\tthis._setIdentity = setIdentity;\n\t\tthis._origIndex = 3;\n\t\tthis._addIndex = 4;\n\n\t\tthis.cumulativeWeight = 0;\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t\tthis.useCount = 0;\n\t\tthis.referenceCount = 0;\n\n\t}\n\n\t// accumulate data in the 'incoming' region into 'accu<i>'\n\taccumulate( accuIndex, weight ) {\n\n\t\t// note: happily accumulating nothing when weight = 0, the caller knows\n\t\t// the weight and shouldn't have made the call in the first place\n\n\t\tconst buffer = this.buffer,\n\t\t\tstride = this.valueSize,\n\t\t\toffset = accuIndex * stride + stride;\n\n\t\tlet currentWeight = this.cumulativeWeight;\n\n\t\tif ( currentWeight === 0 ) {\n\n\t\t\t// accuN := incoming * weight\n\n\t\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\t\tbuffer[ offset + i ] = buffer[ i ];\n\n\t\t\t}\n\n\t\t\tcurrentWeight = weight;\n\n\t\t} else {\n\n\t\t\t// accuN := accuN + incoming * weight\n\n\t\t\tcurrentWeight += weight;\n\t\t\tconst mix = weight / currentWeight;\n\t\t\tthis._mixBufferRegion( buffer, offset, 0, mix, stride );\n\n\t\t}\n\n\t\tthis.cumulativeWeight = currentWeight;\n\n\t}\n\n\t// accumulate data in the 'incoming' region into 'add'\n\taccumulateAdditive( weight ) {\n\n\t\tconst buffer = this.buffer,\n\t\t\tstride = this.valueSize,\n\t\t\toffset = stride * this._addIndex;\n\n\t\tif ( this.cumulativeWeightAdditive === 0 ) {\n\n\t\t\t// add = identity\n\n\t\t\tthis._setIdentity();\n\n\t\t}\n\n\t\t// add := add + incoming * weight\n\n\t\tthis._mixBufferRegionAdditive( buffer, offset, 0, weight, stride );\n\t\tthis.cumulativeWeightAdditive += weight;\n\n\t}\n\n\t// apply the state of 'accu<i>' to the binding when accus differ\n\tapply( accuIndex ) {\n\n\t\tconst stride = this.valueSize,\n\t\t\tbuffer = this.buffer,\n\t\t\toffset = accuIndex * stride + stride,\n\n\t\t\tweight = this.cumulativeWeight,\n\t\t\tweightAdditive = this.cumulativeWeightAdditive,\n\n\t\t\tbinding = this.binding;\n\n\t\tthis.cumulativeWeight = 0;\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t\tif ( weight < 1 ) {\n\n\t\t\t// accuN := accuN + original * ( 1 - cumulativeWeight )\n\n\t\t\tconst originalValueOffset = stride * this._origIndex;\n\n\t\t\tthis._mixBufferRegion(\n\t\t\t\tbuffer, offset, originalValueOffset, 1 - weight, stride );\n\n\t\t}\n\n\t\tif ( weightAdditive > 0 ) {\n\n\t\t\t// accuN := accuN + additive accuN\n\n\t\t\tthis._mixBufferRegionAdditive( buffer, offset, this._addIndex * stride, 1, stride );\n\n\t\t}\n\n\t\tfor ( let i = stride, e = stride + stride; i !== e; ++ i ) {\n\n\t\t\tif ( buffer[ i ] !== buffer[ i + stride ] ) {\n\n\t\t\t\t// value has changed -> update scene graph\n\n\t\t\t\tbinding.setValue( buffer, offset );\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t// remember the state of the bound property and copy it to both accus\n\tsaveOriginalState() {\n\n\t\tconst binding = this.binding;\n\n\t\tconst buffer = this.buffer,\n\t\t\tstride = this.valueSize,\n\n\t\t\toriginalValueOffset = stride * this._origIndex;\n\n\t\tbinding.getValue( buffer, originalValueOffset );\n\n\t\t// accu[0..1] := orig -- initially detect changes against the original\n\t\tfor ( let i = stride, e = originalValueOffset; i !== e; ++ i ) {\n\n\t\t\tbuffer[ i ] = buffer[ originalValueOffset + ( i % stride ) ];\n\n\t\t}\n\n\t\t// Add to identity for additive\n\t\tthis._setIdentity();\n\n\t\tthis.cumulativeWeight = 0;\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t}\n\n\t// apply the state previously taken via 'saveOriginalState' to the binding\n\trestoreOriginalState() {\n\n\t\tconst originalValueOffset = this.valueSize * 3;\n\t\tthis.binding.setValue( this.buffer, originalValueOffset );\n\n\t}\n\n\t_setAdditiveIdentityNumeric() {\n\n\t\tconst startIndex = this._addIndex * this.valueSize;\n\t\tconst endIndex = startIndex + this.valueSize;\n\n\t\tfor ( let i = startIndex; i < endIndex; i ++ ) {\n\n\t\t\tthis.buffer[ i ] = 0;\n\n\t\t}\n\n\t}\n\n\t_setAdditiveIdentityQuaternion() {\n\n\t\tthis._setAdditiveIdentityNumeric();\n\t\tthis.buffer[ this._addIndex * this.valueSize + 3 ] = 1;\n\n\t}\n\n\t_setAdditiveIdentityOther() {\n\n\t\tconst startIndex = this._origIndex * this.valueSize;\n\t\tconst targetIndex = this._addIndex * this.valueSize;\n\n\t\tfor ( let i = 0; i < this.valueSize; i ++ ) {\n\n\t\t\tthis.buffer[ targetIndex + i ] = this.buffer[ startIndex + i ];\n\n\t\t}\n\n\t}\n\n\n\t// mix functions\n\n\t_select( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tif ( t >= 0.5 ) {\n\n\t\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\t\tbuffer[ dstOffset + i ] = buffer[ srcOffset + i ];\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_slerp( buffer, dstOffset, srcOffset, t ) {\n\n\t\tQuaternion.slerpFlat( buffer, dstOffset, buffer, dstOffset, buffer, srcOffset, t );\n\n\t}\n\n\t_slerpAdditive( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tconst workOffset = this._workIndex * stride;\n\n\t\t// Store result in intermediate buffer offset\n\t\tQuaternion.multiplyQuaternionsFlat( buffer, workOffset, buffer, dstOffset, buffer, srcOffset );\n\n\t\t// Slerp to the intermediate result\n\t\tQuaternion.slerpFlat( buffer, dstOffset, buffer, dstOffset, buffer, workOffset, t );\n\n\t}\n\n\t_lerp( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tconst s = 1 - t;\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tconst j = dstOffset + i;\n\n\t\t\tbuffer[ j ] = buffer[ j ] * s + buffer[ srcOffset + i ] * t;\n\n\t\t}\n\n\t}\n\n\t_lerpAdditive( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tconst j = dstOffset + i;\n\n\t\t\tbuffer[ j ] = buffer[ j ] + buffer[ srcOffset + i ] * t;\n\n\t\t}\n\n\t}\n\n}\n\n// Characters [].:/ are reserved for track binding syntax.\nconst _RESERVED_CHARS_RE = '\\\\[\\\\]\\\\.:\\\\/';\nconst _reservedRe = new RegExp( '[' + _RESERVED_CHARS_RE + ']', 'g' );\n\n// Attempts to allow node names from any language. ES5's `\\w` regexp matches\n// only latin characters, and the unicode \\p{L} is not yet supported. So\n// instead, we exclude reserved characters and match everything else.\nconst _wordChar = '[^' + _RESERVED_CHARS_RE + ']';\nconst _wordCharOrDot = '[^' + _RESERVED_CHARS_RE.replace( '\\\\.', '' ) + ']';\n\n// Parent directories, delimited by '/' or ':'. Currently unused, but must\n// be matched to parse the rest of the track name.\nconst _directoryRe = /((?:WC+[\\/:])*)/.source.replace( 'WC', _wordChar );\n\n// Target node. May contain word characters (a-zA-Z0-9_) and '.' or '-'.\nconst _nodeRe = /(WCOD+)?/.source.replace( 'WCOD', _wordCharOrDot );\n\n// Object on target node, and accessor. May not contain reserved\n// characters. Accessor may contain any character except closing bracket.\nconst _objectRe = /(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace( 'WC', _wordChar );\n\n// Property and accessor. May not contain reserved characters. Accessor may\n// contain any non-bracket characters.\nconst _propertyRe = /\\.(WC+)(?:\\[(.+)\\])?/.source.replace( 'WC', _wordChar );\n\nconst _trackRe = new RegExp( ''\n\t+ '^'\n\t+ _directoryRe\n\t+ _nodeRe\n\t+ _objectRe\n\t+ _propertyRe\n\t+ '$'\n);\n\nconst _supportedObjectNames = [ 'material', 'materials', 'bones' ];\n\nclass Composite {\n\n\tconstructor( targetGroup, path, optionalParsedPath ) {\n\n\t\tconst parsedPath = optionalParsedPath || PropertyBinding.parseTrackName( path );\n\n\t\tthis._targetGroup = targetGroup;\n\t\tthis._bindings = targetGroup.subscribe_( path, parsedPath );\n\n\t}\n\n\tgetValue( array, offset ) {\n\n\t\tthis.bind(); // bind all binding\n\n\t\tconst firstValidIndex = this._targetGroup.nCachedObjects_,\n\t\t\tbinding = this._bindings[ firstValidIndex ];\n\n\t\t// and only call .getValue on the first\n\t\tif ( binding !== undefined ) binding.getValue( array, offset );\n\n\t}\n\n\tsetValue( array, offset ) {\n\n\t\tconst bindings = this._bindings;\n\n\t\tfor ( let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tbindings[ i ].setValue( array, offset );\n\n\t\t}\n\n\t}\n\n\tbind() {\n\n\t\tconst bindings = this._bindings;\n\n\t\tfor ( let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tbindings[ i ].bind();\n\n\t\t}\n\n\t}\n\n\tunbind() {\n\n\t\tconst bindings = this._bindings;\n\n\t\tfor ( let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tbindings[ i ].unbind();\n\n\t\t}\n\n\t}\n\n}\n\n// Note: This class uses a State pattern on a per-method basis:\n// 'bind' sets 'this.getValue' / 'setValue' and shadows the\n// prototype version of these methods with one that represents\n// the bound state. When the property is not found, the methods\n// become no-ops.\nclass PropertyBinding {\n\n\tconstructor( rootNode, path, parsedPath ) {\n\n\t\tthis.path = path;\n\t\tthis.parsedPath = parsedPath || PropertyBinding.parseTrackName( path );\n\n\t\tthis.node = PropertyBinding.findNode( rootNode, this.parsedPath.nodeName ) || rootNode;\n\n\t\tthis.rootNode = rootNode;\n\n\t\t// initial state of these methods that calls 'bind'\n\t\tthis.getValue = this._getValue_unbound;\n\t\tthis.setValue = this._setValue_unbound;\n\n\t}\n\n\n\tstatic create( root, path, parsedPath ) {\n\n\t\tif ( ! ( root && root.isAnimationObjectGroup ) ) {\n\n\t\t\treturn new PropertyBinding( root, path, parsedPath );\n\n\t\t} else {\n\n\t\t\treturn new PropertyBinding.Composite( root, path, parsedPath );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Replaces spaces with underscores and removes unsupported characters from\n\t * node names, to ensure compatibility with parseTrackName().\n\t *\n\t * @param {string} name Node name to be sanitized.\n\t * @return {string}\n\t */\n\tstatic sanitizeNodeName( name ) {\n\n\t\treturn name.replace( /\\s/g, '_' ).replace( _reservedRe, '' );\n\n\t}\n\n\tstatic parseTrackName( trackName ) {\n\n\t\tconst matches = _trackRe.exec( trackName );\n\n\t\tif ( ! matches ) {\n\n\t\t\tthrow new Error( 'PropertyBinding: Cannot parse trackName: ' + trackName );\n\n\t\t}\n\n\t\tconst results = {\n\t\t\t// directoryName: matches[ 1 ], // (tschw) currently unused\n\t\t\tnodeName: matches[ 2 ],\n\t\t\tobjectName: matches[ 3 ],\n\t\t\tobjectIndex: matches[ 4 ],\n\t\t\tpropertyName: matches[ 5 ], // required\n\t\t\tpropertyIndex: matches[ 6 ]\n\t\t};\n\n\t\tconst lastDot = results.nodeName && results.nodeName.lastIndexOf( '.' );\n\n\t\tif ( lastDot !== undefined && lastDot !== - 1 ) {\n\n\t\t\tconst objectName = results.nodeName.substring( lastDot + 1 );\n\n\t\t\t// Object names must be checked against an allowlist. Otherwise, there\n\t\t\t// is no way to parse 'foo.bar.baz': 'baz' must be a property, but\n\t\t\t// 'bar' could be the objectName, or part of a nodeName (which can\n\t\t\t// include '.' characters).\n\t\t\tif ( _supportedObjectNames.indexOf( objectName ) !== - 1 ) {\n\n\t\t\t\tresults.nodeName = results.nodeName.substring( 0, lastDot );\n\t\t\t\tresults.objectName = objectName;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( results.propertyName === null || results.propertyName.length === 0 ) {\n\n\t\t\tthrow new Error( 'PropertyBinding: can not parse propertyName from trackName: ' + trackName );\n\n\t\t}\n\n\t\treturn results;\n\n\t}\n\n\tstatic findNode( root, nodeName ) {\n\n\t\tif ( ! nodeName || nodeName === '' || nodeName === '.' || nodeName === - 1 || nodeName === root.name || nodeName === root.uuid ) {\n\n\t\t\treturn root;\n\n\t\t}\n\n\t\t// search into skeleton bones.\n\t\tif ( root.skeleton ) {\n\n\t\t\tconst bone = root.skeleton.getBoneByName( nodeName );\n\n\t\t\tif ( bone !== undefined ) {\n\n\t\t\t\treturn bone;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// search into node subtree.\n\t\tif ( root.children ) {\n\n\t\t\tconst searchNodeSubtree = function ( children ) {\n\n\t\t\t\tfor ( let i = 0; i < children.length; i ++ ) {\n\n\t\t\t\t\tconst childNode = children[ i ];\n\n\t\t\t\t\tif ( childNode.name === nodeName || childNode.uuid === nodeName ) {\n\n\t\t\t\t\t\treturn childNode;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst result = searchNodeSubtree( childNode.children );\n\n\t\t\t\t\tif ( result ) return result;\n\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\n\t\t\t};\n\n\t\t\tconst subTreeNode = searchNodeSubtree( root.children );\n\n\t\t\tif ( subTreeNode ) {\n\n\t\t\t\treturn subTreeNode;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t// these are used to \"bind\" a nonexistent property\n\t_getValue_unavailable() {}\n\t_setValue_unavailable() {}\n\n\t// Getters\n\n\t_getValue_direct( buffer, offset ) {\n\n\t\tbuffer[ offset ] = this.targetObject[ this.propertyName ];\n\n\t}\n\n\t_getValue_array( buffer, offset ) {\n\n\t\tconst source = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = source.length; i !== n; ++ i ) {\n\n\t\t\tbuffer[ offset ++ ] = source[ i ];\n\n\t\t}\n\n\t}\n\n\t_getValue_arrayElement( buffer, offset ) {\n\n\t\tbuffer[ offset ] = this.resolvedProperty[ this.propertyIndex ];\n\n\t}\n\n\t_getValue_toArray( buffer, offset ) {\n\n\t\tthis.resolvedProperty.toArray( buffer, offset );\n\n\t}\n\n\t// Direct\n\n\t_setValue_direct( buffer, offset ) {\n\n\t\tthis.targetObject[ this.propertyName ] = buffer[ offset ];\n\n\t}\n\n\t_setValue_direct_setNeedsUpdate( buffer, offset ) {\n\n\t\tthis.targetObject[ this.propertyName ] = buffer[ offset ];\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_direct_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tthis.targetObject[ this.propertyName ] = buffer[ offset ];\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t// EntireArray\n\n\t_setValue_array( buffer, offset ) {\n\n\t\tconst dest = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = dest.length; i !== n; ++ i ) {\n\n\t\t\tdest[ i ] = buffer[ offset ++ ];\n\n\t\t}\n\n\t}\n\n\t_setValue_array_setNeedsUpdate( buffer, offset ) {\n\n\t\tconst dest = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = dest.length; i !== n; ++ i ) {\n\n\t\t\tdest[ i ] = buffer[ offset ++ ];\n\n\t\t}\n\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_array_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tconst dest = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = dest.length; i !== n; ++ i ) {\n\n\t\t\tdest[ i ] = buffer[ offset ++ ];\n\n\t\t}\n\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t// ArrayElement\n\n\t_setValue_arrayElement( buffer, offset ) {\n\n\t\tthis.resolvedProperty[ this.propertyIndex ] = buffer[ offset ];\n\n\t}\n\n\t_setValue_arrayElement_setNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty[ this.propertyIndex ] = buffer[ offset ];\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_arrayElement_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty[ this.propertyIndex ] = buffer[ offset ];\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t// HasToFromArray\n\n\t_setValue_fromArray( buffer, offset ) {\n\n\t\tthis.resolvedProperty.fromArray( buffer, offset );\n\n\t}\n\n\t_setValue_fromArray_setNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty.fromArray( buffer, offset );\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_fromArray_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty.fromArray( buffer, offset );\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t_getValue_unbound( targetArray, offset ) {\n\n\t\tthis.bind();\n\t\tthis.getValue( targetArray, offset );\n\n\t}\n\n\t_setValue_unbound( sourceArray, offset ) {\n\n\t\tthis.bind();\n\t\tthis.setValue( sourceArray, offset );\n\n\t}\n\n\t// create getter / setter pair for a property in the scene graph\n\tbind() {\n\n\t\tlet targetObject = this.node;\n\t\tconst parsedPath = this.parsedPath;\n\n\t\tconst objectName = parsedPath.objectName;\n\t\tconst propertyName = parsedPath.propertyName;\n\t\tlet propertyIndex = parsedPath.propertyIndex;\n\n\t\tif ( ! targetObject ) {\n\n\t\t\ttargetObject = PropertyBinding.findNode( this.rootNode, parsedPath.nodeName ) || this.rootNode;\n\n\t\t\tthis.node = targetObject;\n\n\t\t}\n\n\t\t// set fail state so we can just 'return' on error\n\t\tthis.getValue = this._getValue_unavailable;\n\t\tthis.setValue = this._setValue_unavailable;\n\n\t\t// ensure there is a value node\n\t\tif ( ! targetObject ) {\n\n\t\t\tconsole.error( 'THREE.PropertyBinding: Trying to update node for track: ' + this.path + ' but it wasn\\'t found.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( objectName ) {\n\n\t\t\tlet objectIndex = parsedPath.objectIndex;\n\n\t\t\t// special cases were we need to reach deeper into the hierarchy to get the face materials....\n\t\t\tswitch ( objectName ) {\n\n\t\t\t\tcase 'materials':\n\n\t\t\t\t\tif ( ! targetObject.material ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material as node does not have a material.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! targetObject.material.materials ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttargetObject = targetObject.material.materials;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'bones':\n\n\t\t\t\t\tif ( ! targetObject.skeleton ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// potential future optimization: skip this if propertyIndex is already an integer\n\t\t\t\t\t// and convert the integer string to a true integer.\n\n\t\t\t\t\ttargetObject = targetObject.skeleton.bones;\n\n\t\t\t\t\t// support resolving morphTarget names into indices.\n\t\t\t\t\tfor ( let i = 0; i < targetObject.length; i ++ ) {\n\n\t\t\t\t\t\tif ( targetObject[ i ].name === objectIndex ) {\n\n\t\t\t\t\t\t\tobjectIndex = i;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tif ( targetObject[ objectName ] === undefined ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to objectName of node undefined.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttargetObject = targetObject[ objectName ];\n\n\t\t\t}\n\n\n\t\t\tif ( objectIndex !== undefined ) {\n\n\t\t\t\tif ( targetObject[ objectIndex ] === undefined ) {\n\n\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.', this, targetObject );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\ttargetObject = targetObject[ objectIndex ];\n\n\t\t\t}\n\n\t\t}\n\n\t\t// resolve property\n\t\tconst nodeProperty = targetObject[ propertyName ];\n\n\t\tif ( nodeProperty === undefined ) {\n\n\t\t\tconst nodeName = parsedPath.nodeName;\n\n\t\t\tconsole.error( 'THREE.PropertyBinding: Trying to update property for track: ' + nodeName +\n\t\t\t\t'.' + propertyName + ' but it wasn\\'t found.', targetObject );\n\t\t\treturn;\n\n\t\t}\n\n\t\t// determine versioning scheme\n\t\tlet versioning = this.Versioning.None;\n\n\t\tthis.targetObject = targetObject;\n\n\t\tif ( targetObject.needsUpdate !== undefined ) { // material\n\n\t\t\tversioning = this.Versioning.NeedsUpdate;\n\n\t\t} else if ( targetObject.matrixWorldNeedsUpdate !== undefined ) { // node transform\n\n\t\t\tversioning = this.Versioning.MatrixWorldNeedsUpdate;\n\n\t\t}\n\n\t\t// determine how the property gets bound\n\t\tlet bindingType = this.BindingType.Direct;\n\n\t\tif ( propertyIndex !== undefined ) {\n\n\t\t\t// access a sub element of the property array (only primitives are supported right now)\n\n\t\t\tif ( propertyName === 'morphTargetInfluences' ) {\n\n\t\t\t\t// potential optimization, skip this if propertyIndex is already an integer, and convert the integer string to a true integer.\n\n\t\t\t\t// support resolving morphTarget names into indices.\n\t\t\t\tif ( ! targetObject.geometry ) {\n\n\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.', this );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tif ( targetObject.geometry.isBufferGeometry ) {\n\n\t\t\t\t\tif ( ! targetObject.geometry.morphAttributes ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( targetObject.morphTargetDictionary[ propertyIndex ] !== undefined ) {\n\n\t\t\t\t\t\tpropertyIndex = targetObject.morphTargetDictionary[ propertyIndex ];\n\n\t\t\t\t\t}\n\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.', this );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tbindingType = this.BindingType.ArrayElement;\n\n\t\t\tthis.resolvedProperty = nodeProperty;\n\t\t\tthis.propertyIndex = propertyIndex;\n\n\t\t} else if ( nodeProperty.fromArray !== undefined && nodeProperty.toArray !== undefined ) {\n\n\t\t\t// must use copy for Object3D.Euler/Quaternion\n\n\t\t\tbindingType = this.BindingType.HasFromToArray;\n\n\t\t\tthis.resolvedProperty = nodeProperty;\n\n\t\t} else if ( Array.isArray( nodeProperty ) ) {\n\n\t\t\tbindingType = this.BindingType.EntireArray;\n\n\t\t\tthis.resolvedProperty = nodeProperty;\n\n\t\t} else {\n\n\t\t\tthis.propertyName = propertyName;\n\n\t\t}\n\n\t\t// select getter / setter\n\t\tthis.getValue = this.GetterByBindingType[ bindingType ];\n\t\tthis.setValue = this.SetterByBindingTypeAndVersioning[ bindingType ][ versioning ];\n\n\t}\n\n\tunbind() {\n\n\t\tthis.node = null;\n\n\t\t// back to the prototype version of getValue / setValue\n\t\t// note: avoiding to mutate the shape of 'this' via 'delete'\n\t\tthis.getValue = this._getValue_unbound;\n\t\tthis.setValue = this._setValue_unbound;\n\n\t}\n\n}\n\nPropertyBinding.Composite = Composite;\n\nPropertyBinding.prototype.BindingType = {\n\tDirect: 0,\n\tEntireArray: 1,\n\tArrayElement: 2,\n\tHasFromToArray: 3\n};\n\nPropertyBinding.prototype.Versioning = {\n\tNone: 0,\n\tNeedsUpdate: 1,\n\tMatrixWorldNeedsUpdate: 2\n};\n\nPropertyBinding.prototype.GetterByBindingType = [\n\n\tPropertyBinding.prototype._getValue_direct,\n\tPropertyBinding.prototype._getValue_array,\n\tPropertyBinding.prototype._getValue_arrayElement,\n\tPropertyBinding.prototype._getValue_toArray,\n\n];\n\nPropertyBinding.prototype.SetterByBindingTypeAndVersioning = [\n\n\t[\n\t\t// Direct\n\t\tPropertyBinding.prototype._setValue_direct,\n\t\tPropertyBinding.prototype._setValue_direct_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_direct_setMatrixWorldNeedsUpdate,\n\n\t], [\n\n\t\t// EntireArray\n\n\t\tPropertyBinding.prototype._setValue_array,\n\t\tPropertyBinding.prototype._setValue_array_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_array_setMatrixWorldNeedsUpdate,\n\n\t], [\n\n\t\t// ArrayElement\n\t\tPropertyBinding.prototype._setValue_arrayElement,\n\t\tPropertyBinding.prototype._setValue_arrayElement_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate,\n\n\t], [\n\n\t\t// HasToFromArray\n\t\tPropertyBinding.prototype._setValue_fromArray,\n\t\tPropertyBinding.prototype._setValue_fromArray_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate,\n\n\t]\n\n];\n\n/**\n *\n * A group of objects that receives a shared animation state.\n *\n * Usage:\n *\n * - Add objects you would otherwise pass as 'root' to the\n * constructor or the .clipAction method of AnimationMixer.\n *\n * - Instead pass this object as 'root'.\n *\n * - You can also add and remove objects later when the mixer\n * is running.\n *\n * Note:\n *\n * Objects of this class appear as one object to the mixer,\n * so cache control of the individual objects must be done\n * on the group.\n *\n * Limitation:\n *\n * - The animated properties must be compatible among the\n * all objects in the group.\n *\n * - A single property can either be controlled through a\n * target group or directly, but not both.\n */\n\nclass AnimationObjectGroup {\n\n\tconstructor() {\n\n\t\tthis.uuid = generateUUID();\n\n\t\t// cached objects followed by the active ones\n\t\tthis._objects = Array.prototype.slice.call( arguments );\n\n\t\tthis.nCachedObjects_ = 0; // threshold\n\t\t// note: read by PropertyBinding.Composite\n\n\t\tconst indices = {};\n\t\tthis._indicesByUUID = indices; // for bookkeeping\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tindices[ arguments[ i ].uuid ] = i;\n\n\t\t}\n\n\t\tthis._paths = []; // inside: string\n\t\tthis._parsedPaths = []; // inside: { we don't care, here }\n\t\tthis._bindings = []; // inside: Array< PropertyBinding >\n\t\tthis._bindingsIndicesByPath = {}; // inside: indices in these arrays\n\n\t\tconst scope = this;\n\n\t\tthis.stats = {\n\n\t\t\tobjects: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._objects.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn this.total - scope.nCachedObjects_;\n\n\t\t\t\t}\n\t\t\t},\n\t\t\tget bindingsPerObject() {\n\n\t\t\t\treturn scope._bindings.length;\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\tadd() {\n\n\t\tconst objects = this._objects,\n\t\t\tindicesByUUID = this._indicesByUUID,\n\t\t\tpaths = this._paths,\n\t\t\tparsedPaths = this._parsedPaths,\n\t\t\tbindings = this._bindings,\n\t\t\tnBindings = bindings.length;\n\n\t\tlet knownObject = undefined,\n\t\t\tnObjects = objects.length,\n\t\t\tnCachedObjects = this.nCachedObjects_;\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tconst object = arguments[ i ],\n\t\t\t\tuuid = object.uuid;\n\t\t\tlet index = indicesByUUID[ uuid ];\n\n\t\t\tif ( index === undefined ) {\n\n\t\t\t\t// unknown object -> add it to the ACTIVE region\n\n\t\t\t\tindex = nObjects ++;\n\t\t\t\tindicesByUUID[ uuid ] = index;\n\t\t\t\tobjects.push( object );\n\n\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\tbindings[ j ].push( new PropertyBinding( object, paths[ j ], parsedPaths[ j ] ) );\n\n\t\t\t\t}\n\n\t\t\t} else if ( index < nCachedObjects ) {\n\n\t\t\t\tknownObject = objects[ index ];\n\n\t\t\t\t// move existing object to the ACTIVE region\n\n\t\t\t\tconst firstActiveIndex = -- nCachedObjects,\n\t\t\t\t\tlastCachedObject = objects[ firstActiveIndex ];\n\n\t\t\t\tindicesByUUID[ lastCachedObject.uuid ] = index;\n\t\t\t\tobjects[ index ] = lastCachedObject;\n\n\t\t\t\tindicesByUUID[ uuid ] = firstActiveIndex;\n\t\t\t\tobjects[ firstActiveIndex ] = object;\n\n\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\tconst bindingsForPath = bindings[ j ],\n\t\t\t\t\t\tlastCached = bindingsForPath[ firstActiveIndex ];\n\n\t\t\t\t\tlet binding = bindingsForPath[ index ];\n\n\t\t\t\t\tbindingsForPath[ index ] = lastCached;\n\n\t\t\t\t\tif ( binding === undefined ) {\n\n\t\t\t\t\t\t// since we do not bother to create new bindings\n\t\t\t\t\t\t// for objects that are cached, the binding may\n\t\t\t\t\t\t// or may not exist\n\n\t\t\t\t\t\tbinding = new PropertyBinding( object, paths[ j ], parsedPaths[ j ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbindingsForPath[ firstActiveIndex ] = binding;\n\n\t\t\t\t}\n\n\t\t\t} else if ( objects[ index ] !== knownObject ) {\n\n\t\t\t\tconsole.error( 'THREE.AnimationObjectGroup: Different objects with the same UUID ' +\n\t\t\t\t\t'detected. Clean the caches or recreate your infrastructure when reloading scenes.' );\n\n\t\t\t} // else the object is already where we want it to be\n\n\t\t} // for arguments\n\n\t\tthis.nCachedObjects_ = nCachedObjects;\n\n\t}\n\n\tremove() {\n\n\t\tconst objects = this._objects,\n\t\t\tindicesByUUID = this._indicesByUUID,\n\t\t\tbindings = this._bindings,\n\t\t\tnBindings = bindings.length;\n\n\t\tlet nCachedObjects = this.nCachedObjects_;\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tconst object = arguments[ i ],\n\t\t\t\tuuid = object.uuid,\n\t\t\t\tindex = indicesByUUID[ uuid ];\n\n\t\t\tif ( index !== undefined && index >= nCachedObjects ) {\n\n\t\t\t\t// move existing object into the CACHED region\n\n\t\t\t\tconst lastCachedIndex = nCachedObjects ++,\n\t\t\t\t\tfirstActiveObject = objects[ lastCachedIndex ];\n\n\t\t\t\tindicesByUUID[ firstActiveObject.uuid ] = index;\n\t\t\t\tobjects[ index ] = firstActiveObject;\n\n\t\t\t\tindicesByUUID[ uuid ] = lastCachedIndex;\n\t\t\t\tobjects[ lastCachedIndex ] = object;\n\n\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\tconst bindingsForPath = bindings[ j ],\n\t\t\t\t\t\tfirstActive = bindingsForPath[ lastCachedIndex ],\n\t\t\t\t\t\tbinding = bindingsForPath[ index ];\n\n\t\t\t\t\tbindingsForPath[ index ] = firstActive;\n\t\t\t\t\tbindingsForPath[ lastCachedIndex ] = binding;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} // for arguments\n\n\t\tthis.nCachedObjects_ = nCachedObjects;\n\n\t}\n\n\t// remove & forget\n\tuncache() {\n\n\t\tconst objects = this._objects,\n\t\t\tindicesByUUID = this._indicesByUUID,\n\t\t\tbindings = this._bindings,\n\t\t\tnBindings = bindings.length;\n\n\t\tlet nCachedObjects = this.nCachedObjects_,\n\t\t\tnObjects = objects.length;\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tconst object = arguments[ i ],\n\t\t\t\tuuid = object.uuid,\n\t\t\t\tindex = indicesByUUID[ uuid ];\n\n\t\t\tif ( index !== undefined ) {\n\n\t\t\t\tdelete indicesByUUID[ uuid ];\n\n\t\t\t\tif ( index < nCachedObjects ) {\n\n\t\t\t\t\t// object is cached, shrink the CACHED region\n\n\t\t\t\t\tconst firstActiveIndex = -- nCachedObjects,\n\t\t\t\t\t\tlastCachedObject = objects[ firstActiveIndex ],\n\t\t\t\t\t\tlastIndex = -- nObjects,\n\t\t\t\t\t\tlastObject = objects[ lastIndex ];\n\n\t\t\t\t\t// last cached object takes this object's place\n\t\t\t\t\tindicesByUUID[ lastCachedObject.uuid ] = index;\n\t\t\t\t\tobjects[ index ] = lastCachedObject;\n\n\t\t\t\t\t// last object goes to the activated slot and pop\n\t\t\t\t\tindicesByUUID[ lastObject.uuid ] = firstActiveIndex;\n\t\t\t\t\tobjects[ firstActiveIndex ] = lastObject;\n\t\t\t\t\tobjects.pop();\n\n\t\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\t\tconst bindingsForPath = bindings[ j ],\n\t\t\t\t\t\t\tlastCached = bindingsForPath[ firstActiveIndex ],\n\t\t\t\t\t\t\tlast = bindingsForPath[ lastIndex ];\n\n\t\t\t\t\t\tbindingsForPath[ index ] = lastCached;\n\t\t\t\t\t\tbindingsForPath[ firstActiveIndex ] = last;\n\t\t\t\t\t\tbindingsForPath.pop();\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// object is active, just swap with the last and pop\n\n\t\t\t\t\tconst lastIndex = -- nObjects,\n\t\t\t\t\t\tlastObject = objects[ lastIndex ];\n\n\t\t\t\t\tif ( lastIndex > 0 ) {\n\n\t\t\t\t\t\tindicesByUUID[ lastObject.uuid ] = index;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tobjects[ index ] = lastObject;\n\t\t\t\t\tobjects.pop();\n\n\t\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\t\tconst bindingsForPath = bindings[ j ];\n\n\t\t\t\t\t\tbindingsForPath[ index ] = bindingsForPath[ lastIndex ];\n\t\t\t\t\t\tbindingsForPath.pop();\n\n\t\t\t\t\t}\n\n\t\t\t\t} // cached or active\n\n\t\t\t} // if object is known\n\n\t\t} // for arguments\n\n\t\tthis.nCachedObjects_ = nCachedObjects;\n\n\t}\n\n\t// Internal interface used by befriended PropertyBinding.Composite:\n\n\tsubscribe_( path, parsedPath ) {\n\n\t\t// returns an array of bindings for the given path that is changed\n\t\t// according to the contained objects in the group\n\n\t\tconst indicesByPath = this._bindingsIndicesByPath;\n\t\tlet index = indicesByPath[ path ];\n\t\tconst bindings = this._bindings;\n\n\t\tif ( index !== undefined ) return bindings[ index ];\n\n\t\tconst paths = this._paths,\n\t\t\tparsedPaths = this._parsedPaths,\n\t\t\tobjects = this._objects,\n\t\t\tnObjects = objects.length,\n\t\t\tnCachedObjects = this.nCachedObjects_,\n\t\t\tbindingsForPath = new Array( nObjects );\n\n\t\tindex = bindings.length;\n\n\t\tindicesByPath[ path ] = index;\n\n\t\tpaths.push( path );\n\t\tparsedPaths.push( parsedPath );\n\t\tbindings.push( bindingsForPath );\n\n\t\tfor ( let i = nCachedObjects, n = objects.length; i !== n; ++ i ) {\n\n\t\t\tconst object = objects[ i ];\n\t\t\tbindingsForPath[ i ] = new PropertyBinding( object, path, parsedPath );\n\n\t\t}\n\n\t\treturn bindingsForPath;\n\n\t}\n\n\tunsubscribe_( path ) {\n\n\t\t// tells the group to forget about a property path and no longer\n\t\t// update the array previously obtained with 'subscribe_'\n\n\t\tconst indicesByPath = this._bindingsIndicesByPath,\n\t\t\tindex = indicesByPath[ path ];\n\n\t\tif ( index !== undefined ) {\n\n\t\t\tconst paths = this._paths,\n\t\t\t\tparsedPaths = this._parsedPaths,\n\t\t\t\tbindings = this._bindings,\n\t\t\t\tlastBindingsIndex = bindings.length - 1,\n\t\t\t\tlastBindings = bindings[ lastBindingsIndex ],\n\t\t\t\tlastBindingsPath = path[ lastBindingsIndex ];\n\n\t\t\tindicesByPath[ lastBindingsPath ] = index;\n\n\t\t\tbindings[ index ] = lastBindings;\n\t\t\tbindings.pop();\n\n\t\t\tparsedPaths[ index ] = parsedPaths[ lastBindingsIndex ];\n\t\t\tparsedPaths.pop();\n\n\t\t\tpaths[ index ] = paths[ lastBindingsIndex ];\n\t\t\tpaths.pop();\n\n\t\t}\n\n\t}\n\n}\n\nAnimationObjectGroup.prototype.isAnimationObjectGroup = true;\n\nclass AnimationAction {\n\n\tconstructor( mixer, clip, localRoot = null, blendMode = clip.blendMode ) {\n\n\t\tthis._mixer = mixer;\n\t\tthis._clip = clip;\n\t\tthis._localRoot = localRoot;\n\t\tthis.blendMode = blendMode;\n\n\t\tconst tracks = clip.tracks,\n\t\t\tnTracks = tracks.length,\n\t\t\tinterpolants = new Array( nTracks );\n\n\t\tconst interpolantSettings = {\n\t\t\tendingStart: ZeroCurvatureEnding,\n\t\t\tendingEnd: ZeroCurvatureEnding\n\t\t};\n\n\t\tfor ( let i = 0; i !== nTracks; ++ i ) {\n\n\t\t\tconst interpolant = tracks[ i ].createInterpolant( null );\n\t\t\tinterpolants[ i ] = interpolant;\n\t\t\tinterpolant.settings = interpolantSettings;\n\n\t\t}\n\n\t\tthis._interpolantSettings = interpolantSettings;\n\n\t\tthis._interpolants = interpolants; // bound by the mixer\n\n\t\t// inside: PropertyMixer (managed by the mixer)\n\t\tthis._propertyBindings = new Array( nTracks );\n\n\t\tthis._cacheIndex = null; // for the memory manager\n\t\tthis._byClipCacheIndex = null; // for the memory manager\n\n\t\tthis._timeScaleInterpolant = null;\n\t\tthis._weightInterpolant = null;\n\n\t\tthis.loop = LoopRepeat;\n\t\tthis._loopCount = - 1;\n\n\t\t// global mixer time when the action is to be started\n\t\t// it's set back to 'null' upon start of the action\n\t\tthis._startTime = null;\n\n\t\t// scaled local time of the action\n\t\t// gets clamped or wrapped to 0..clip.duration according to loop\n\t\tthis.time = 0;\n\n\t\tthis.timeScale = 1;\n\t\tthis._effectiveTimeScale = 1;\n\n\t\tthis.weight = 1;\n\t\tthis._effectiveWeight = 1;\n\n\t\tthis.repetitions = Infinity; // no. of repetitions when looping\n\n\t\tthis.paused = false; // true -> zero effective time scale\n\t\tthis.enabled = true; // false -> zero effective weight\n\n\t\tthis.clampWhenFinished = false;// keep feeding the last frame?\n\n\t\tthis.zeroSlopeAtStart = true;// for smooth interpolation w/o separate\n\t\tthis.zeroSlopeAtEnd = true;// clips for start, loop and end\n\n\t}\n\n\t// State & Scheduling\n\n\tplay() {\n\n\t\tthis._mixer._activateAction( this );\n\n\t\treturn this;\n\n\t}\n\n\tstop() {\n\n\t\tthis._mixer._deactivateAction( this );\n\n\t\treturn this.reset();\n\n\t}\n\n\treset() {\n\n\t\tthis.paused = false;\n\t\tthis.enabled = true;\n\n\t\tthis.time = 0; // restart clip\n\t\tthis._loopCount = - 1;// forget previous loops\n\t\tthis._startTime = null;// forget scheduling\n\n\t\treturn this.stopFading().stopWarping();\n\n\t}\n\n\tisRunning() {\n\n\t\treturn this.enabled && ! this.paused && this.timeScale !== 0 &&\n\t\t\tthis._startTime === null && this._mixer._isActiveAction( this );\n\n\t}\n\n\t// return true when play has been called\n\tisScheduled() {\n\n\t\treturn this._mixer._isActiveAction( this );\n\n\t}\n\n\tstartAt( time ) {\n\n\t\tthis._startTime = time;\n\n\t\treturn this;\n\n\t}\n\n\tsetLoop( mode, repetitions ) {\n\n\t\tthis.loop = mode;\n\t\tthis.repetitions = repetitions;\n\n\t\treturn this;\n\n\t}\n\n\t// Weight\n\n\t// set the weight stopping any scheduled fading\n\t// although .enabled = false yields an effective weight of zero, this\n\t// method does *not* change .enabled, because it would be confusing\n\tsetEffectiveWeight( weight ) {\n\n\t\tthis.weight = weight;\n\n\t\t// note: same logic as when updated at runtime\n\t\tthis._effectiveWeight = this.enabled ? weight : 0;\n\n\t\treturn this.stopFading();\n\n\t}\n\n\t// return the weight considering fading and .enabled\n\tgetEffectiveWeight() {\n\n\t\treturn this._effectiveWeight;\n\n\t}\n\n\tfadeIn( duration ) {\n\n\t\treturn this._scheduleFading( duration, 0, 1 );\n\n\t}\n\n\tfadeOut( duration ) {\n\n\t\treturn this._scheduleFading( duration, 1, 0 );\n\n\t}\n\n\tcrossFadeFrom( fadeOutAction, duration, warp ) {\n\n\t\tfadeOutAction.fadeOut( duration );\n\t\tthis.fadeIn( duration );\n\n\t\tif ( warp ) {\n\n\t\t\tconst fadeInDuration = this._clip.duration,\n\t\t\t\tfadeOutDuration = fadeOutAction._clip.duration,\n\n\t\t\t\tstartEndRatio = fadeOutDuration / fadeInDuration,\n\t\t\t\tendStartRatio = fadeInDuration / fadeOutDuration;\n\n\t\t\tfadeOutAction.warp( 1.0, startEndRatio, duration );\n\t\t\tthis.warp( endStartRatio, 1.0, duration );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcrossFadeTo( fadeInAction, duration, warp ) {\n\n\t\treturn fadeInAction.crossFadeFrom( this, duration, warp );\n\n\t}\n\n\tstopFading() {\n\n\t\tconst weightInterpolant = this._weightInterpolant;\n\n\t\tif ( weightInterpolant !== null ) {\n\n\t\t\tthis._weightInterpolant = null;\n\t\t\tthis._mixer._takeBackControlInterpolant( weightInterpolant );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// Time Scale Control\n\n\t// set the time scale stopping any scheduled warping\n\t// although .paused = true yields an effective time scale of zero, this\n\t// method does *not* change .paused, because it would be confusing\n\tsetEffectiveTimeScale( timeScale ) {\n\n\t\tthis.timeScale = timeScale;\n\t\tthis._effectiveTimeScale = this.paused ? 0 : timeScale;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\t// return the time scale considering warping and .paused\n\tgetEffectiveTimeScale() {\n\n\t\treturn this._effectiveTimeScale;\n\n\t}\n\n\tsetDuration( duration ) {\n\n\t\tthis.timeScale = this._clip.duration / duration;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\tsyncWith( action ) {\n\n\t\tthis.time = action.time;\n\t\tthis.timeScale = action.timeScale;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\thalt( duration ) {\n\n\t\treturn this.warp( this._effectiveTimeScale, 0, duration );\n\n\t}\n\n\twarp( startTimeScale, endTimeScale, duration ) {\n\n\t\tconst mixer = this._mixer,\n\t\t\tnow = mixer.time,\n\t\t\ttimeScale = this.timeScale;\n\n\t\tlet interpolant = this._timeScaleInterpolant;\n\n\t\tif ( interpolant === null ) {\n\n\t\t\tinterpolant = mixer._lendControlInterpolant();\n\t\t\tthis._timeScaleInterpolant = interpolant;\n\n\t\t}\n\n\t\tconst times = interpolant.parameterPositions,\n\t\t\tvalues = interpolant.sampleValues;\n\n\t\ttimes[ 0 ] = now;\n\t\ttimes[ 1 ] = now + duration;\n\n\t\tvalues[ 0 ] = startTimeScale / timeScale;\n\t\tvalues[ 1 ] = endTimeScale / timeScale;\n\n\t\treturn this;\n\n\t}\n\n\tstopWarping() {\n\n\t\tconst timeScaleInterpolant = this._timeScaleInterpolant;\n\n\t\tif ( timeScaleInterpolant !== null ) {\n\n\t\t\tthis._timeScaleInterpolant = null;\n\t\t\tthis._mixer._takeBackControlInterpolant( timeScaleInterpolant );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// Object Accessors\n\n\tgetMixer() {\n\n\t\treturn this._mixer;\n\n\t}\n\n\tgetClip() {\n\n\t\treturn this._clip;\n\n\t}\n\n\tgetRoot() {\n\n\t\treturn this._localRoot || this._mixer._root;\n\n\t}\n\n\t// Interna\n\n\t_update( time, deltaTime, timeDirection, accuIndex ) {\n\n\t\t// called by the mixer\n\n\t\tif ( ! this.enabled ) {\n\n\t\t\t// call ._updateWeight() to update ._effectiveWeight\n\n\t\t\tthis._updateWeight( time );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst startTime = this._startTime;\n\n\t\tif ( startTime !== null ) {\n\n\t\t\t// check for scheduled start of action\n\n\t\t\tconst timeRunning = ( time - startTime ) * timeDirection;\n\t\t\tif ( timeRunning < 0 || timeDirection === 0 ) {\n\n\t\t\t\treturn; // yet to come / don't decide when delta = 0\n\n\t\t\t}\n\n\t\t\t// start\n\n\t\t\tthis._startTime = null; // unschedule\n\t\t\tdeltaTime = timeDirection * timeRunning;\n\n\t\t}\n\n\t\t// apply time scale and advance time\n\n\t\tdeltaTime *= this._updateTimeScale( time );\n\t\tconst clipTime = this._updateTime( deltaTime );\n\n\t\t// note: _updateTime may disable the action resulting in\n\t\t// an effective weight of 0\n\n\t\tconst weight = this._updateWeight( time );\n\n\t\tif ( weight > 0 ) {\n\n\t\t\tconst interpolants = this._interpolants;\n\t\t\tconst propertyMixers = this._propertyBindings;\n\n\t\t\tswitch ( this.blendMode ) {\n\n\t\t\t\tcase AdditiveAnimationBlendMode:\n\n\t\t\t\t\tfor ( let j = 0, m = interpolants.length; j !== m; ++ j ) {\n\n\t\t\t\t\t\tinterpolants[ j ].evaluate( clipTime );\n\t\t\t\t\t\tpropertyMixers[ j ].accumulateAdditive( weight );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase NormalAnimationBlendMode:\n\t\t\t\tdefault:\n\n\t\t\t\t\tfor ( let j = 0, m = interpolants.length; j !== m; ++ j ) {\n\n\t\t\t\t\t\tinterpolants[ j ].evaluate( clipTime );\n\t\t\t\t\t\tpropertyMixers[ j ].accumulate( accuIndex, weight );\n\n\t\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_updateWeight( time ) {\n\n\t\tlet weight = 0;\n\n\t\tif ( this.enabled ) {\n\n\t\t\tweight = this.weight;\n\t\t\tconst interpolant = this._weightInterpolant;\n\n\t\t\tif ( interpolant !== null ) {\n\n\t\t\t\tconst interpolantValue = interpolant.evaluate( time )[ 0 ];\n\n\t\t\t\tweight *= interpolantValue;\n\n\t\t\t\tif ( time > interpolant.parameterPositions[ 1 ] ) {\n\n\t\t\t\t\tthis.stopFading();\n\n\t\t\t\t\tif ( interpolantValue === 0 ) {\n\n\t\t\t\t\t\t// faded out, disable\n\t\t\t\t\t\tthis.enabled = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis._effectiveWeight = weight;\n\t\treturn weight;\n\n\t}\n\n\t_updateTimeScale( time ) {\n\n\t\tlet timeScale = 0;\n\n\t\tif ( ! this.paused ) {\n\n\t\t\ttimeScale = this.timeScale;\n\n\t\t\tconst interpolant = this._timeScaleInterpolant;\n\n\t\t\tif ( interpolant !== null ) {\n\n\t\t\t\tconst interpolantValue = interpolant.evaluate( time )[ 0 ];\n\n\t\t\t\ttimeScale *= interpolantValue;\n\n\t\t\t\tif ( time > interpolant.parameterPositions[ 1 ] ) {\n\n\t\t\t\t\tthis.stopWarping();\n\n\t\t\t\t\tif ( timeScale === 0 ) {\n\n\t\t\t\t\t\t// motion has halted, pause\n\t\t\t\t\t\tthis.paused = true;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// warp done - apply final time scale\n\t\t\t\t\t\tthis.timeScale = timeScale;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis._effectiveTimeScale = timeScale;\n\t\treturn timeScale;\n\n\t}\n\n\t_updateTime( deltaTime ) {\n\n\t\tconst duration = this._clip.duration;\n\t\tconst loop = this.loop;\n\n\t\tlet time = this.time + deltaTime;\n\t\tlet loopCount = this._loopCount;\n\n\t\tconst pingPong = ( loop === LoopPingPong );\n\n\t\tif ( deltaTime === 0 ) {\n\n\t\t\tif ( loopCount === - 1 ) return time;\n\n\t\t\treturn ( pingPong && ( loopCount & 1 ) === 1 ) ? duration - time : time;\n\n\t\t}\n\n\t\tif ( loop === LoopOnce ) {\n\n\t\t\tif ( loopCount === - 1 ) {\n\n\t\t\t\t// just started\n\n\t\t\t\tthis._loopCount = 0;\n\t\t\t\tthis._setEndings( true, true, false );\n\n\t\t\t}\n\n\t\t\thandle_stop: {\n\n\t\t\t\tif ( time >= duration ) {\n\n\t\t\t\t\ttime = duration;\n\n\t\t\t\t} else if ( time < 0 ) {\n\n\t\t\t\t\ttime = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.time = time;\n\n\t\t\t\t\tbreak handle_stop;\n\n\t\t\t\t}\n\n\t\t\t\tif ( this.clampWhenFinished ) this.paused = true;\n\t\t\t\telse this.enabled = false;\n\n\t\t\t\tthis.time = time;\n\n\t\t\t\tthis._mixer.dispatchEvent( {\n\t\t\t\t\ttype: 'finished', action: this,\n\t\t\t\t\tdirection: deltaTime < 0 ? - 1 : 1\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t} else { // repetitive Repeat or PingPong\n\n\t\t\tif ( loopCount === - 1 ) {\n\n\t\t\t\t// just started\n\n\t\t\t\tif ( deltaTime >= 0 ) {\n\n\t\t\t\t\tloopCount = 0;\n\n\t\t\t\t\tthis._setEndings( true, this.repetitions === 0, pingPong );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// when looping in reverse direction, the initial\n\t\t\t\t\t// transition through zero counts as a repetition,\n\t\t\t\t\t// so leave loopCount at -1\n\n\t\t\t\t\tthis._setEndings( this.repetitions === 0, true, pingPong );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( time >= duration || time < 0 ) {\n\n\t\t\t\t// wrap around\n\n\t\t\t\tconst loopDelta = Math.floor( time / duration ); // signed\n\t\t\t\ttime -= duration * loopDelta;\n\n\t\t\t\tloopCount += Math.abs( loopDelta );\n\n\t\t\t\tconst pending = this.repetitions - loopCount;\n\n\t\t\t\tif ( pending <= 0 ) {\n\n\t\t\t\t\t// have to stop (switch state, clamp time, fire event)\n\n\t\t\t\t\tif ( this.clampWhenFinished ) this.paused = true;\n\t\t\t\t\telse this.enabled = false;\n\n\t\t\t\t\ttime = deltaTime > 0 ? duration : 0;\n\n\t\t\t\t\tthis.time = time;\n\n\t\t\t\t\tthis._mixer.dispatchEvent( {\n\t\t\t\t\t\ttype: 'finished', action: this,\n\t\t\t\t\t\tdirection: deltaTime > 0 ? 1 : - 1\n\t\t\t\t\t} );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// keep running\n\n\t\t\t\t\tif ( pending === 1 ) {\n\n\t\t\t\t\t\t// entering the last round\n\n\t\t\t\t\t\tconst atStart = deltaTime < 0;\n\t\t\t\t\t\tthis._setEndings( atStart, ! atStart, pingPong );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthis._setEndings( false, false, pingPong );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._loopCount = loopCount;\n\n\t\t\t\t\tthis.time = time;\n\n\t\t\t\t\tthis._mixer.dispatchEvent( {\n\t\t\t\t\t\ttype: 'loop', action: this, loopDelta: loopDelta\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tthis.time = time;\n\n\t\t\t}\n\n\t\t\tif ( pingPong && ( loopCount & 1 ) === 1 ) {\n\n\t\t\t\t// invert time for the \"pong round\"\n\n\t\t\t\treturn duration - time;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn time;\n\n\t}\n\n\t_setEndings( atStart, atEnd, pingPong ) {\n\n\t\tconst settings = this._interpolantSettings;\n\n\t\tif ( pingPong ) {\n\n\t\t\tsettings.endingStart = ZeroSlopeEnding;\n\t\t\tsettings.endingEnd = ZeroSlopeEnding;\n\n\t\t} else {\n\n\t\t\t// assuming for LoopOnce atStart == atEnd == true\n\n\t\t\tif ( atStart ) {\n\n\t\t\t\tsettings.endingStart = this.zeroSlopeAtStart ? ZeroSlopeEnding : ZeroCurvatureEnding;\n\n\t\t\t} else {\n\n\t\t\t\tsettings.endingStart = WrapAroundEnding;\n\n\t\t\t}\n\n\t\t\tif ( atEnd ) {\n\n\t\t\t\tsettings.endingEnd = this.zeroSlopeAtEnd ? ZeroSlopeEnding : ZeroCurvatureEnding;\n\n\t\t\t} else {\n\n\t\t\t\tsettings.endingEnd \t = WrapAroundEnding;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_scheduleFading( duration, weightNow, weightThen ) {\n\n\t\tconst mixer = this._mixer, now = mixer.time;\n\t\tlet interpolant = this._weightInterpolant;\n\n\t\tif ( interpolant === null ) {\n\n\t\t\tinterpolant = mixer._lendControlInterpolant();\n\t\t\tthis._weightInterpolant = interpolant;\n\n\t\t}\n\n\t\tconst times = interpolant.parameterPositions,\n\t\t\tvalues = interpolant.sampleValues;\n\n\t\ttimes[ 0 ] = now;\n\t\tvalues[ 0 ] = weightNow;\n\t\ttimes[ 1 ] = now + duration;\n\t\tvalues[ 1 ] = weightThen;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass AnimationMixer extends EventDispatcher {\n\n\tconstructor( root ) {\n\n\t\tsuper();\n\n\t\tthis._root = root;\n\t\tthis._initMemoryManager();\n\t\tthis._accuIndex = 0;\n\t\tthis.time = 0;\n\t\tthis.timeScale = 1.0;\n\n\t}\n\n\t_bindAction( action, prototypeAction ) {\n\n\t\tconst root = action._localRoot || this._root,\n\t\t\ttracks = action._clip.tracks,\n\t\t\tnTracks = tracks.length,\n\t\t\tbindings = action._propertyBindings,\n\t\t\tinterpolants = action._interpolants,\n\t\t\trootUuid = root.uuid,\n\t\t\tbindingsByRoot = this._bindingsByRootAndName;\n\n\t\tlet bindingsByName = bindingsByRoot[ rootUuid ];\n\n\t\tif ( bindingsByName === undefined ) {\n\n\t\t\tbindingsByName = {};\n\t\t\tbindingsByRoot[ rootUuid ] = bindingsByName;\n\n\t\t}\n\n\t\tfor ( let i = 0; i !== nTracks; ++ i ) {\n\n\t\t\tconst track = tracks[ i ],\n\t\t\t\ttrackName = track.name;\n\n\t\t\tlet binding = bindingsByName[ trackName ];\n\n\t\t\tif ( binding !== undefined ) {\n\n\t\t\t\t++ binding.referenceCount;\n\t\t\t\tbindings[ i ] = binding;\n\n\t\t\t} else {\n\n\t\t\t\tbinding = bindings[ i ];\n\n\t\t\t\tif ( binding !== undefined ) {\n\n\t\t\t\t\t// existing binding, make sure the cache knows\n\n\t\t\t\t\tif ( binding._cacheIndex === null ) {\n\n\t\t\t\t\t\t++ binding.referenceCount;\n\t\t\t\t\t\tthis._addInactiveBinding( binding, rootUuid, trackName );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\t}\n\n\t\t\t\tconst path = prototypeAction && prototypeAction.\n\t\t\t\t\t_propertyBindings[ i ].binding.parsedPath;\n\n\t\t\t\tbinding = new PropertyMixer(\n\t\t\t\t\tPropertyBinding.create( root, trackName, path ),\n\t\t\t\t\ttrack.ValueTypeName, track.getValueSize() );\n\n\t\t\t\t++ binding.referenceCount;\n\t\t\t\tthis._addInactiveBinding( binding, rootUuid, trackName );\n\n\t\t\t\tbindings[ i ] = binding;\n\n\t\t\t}\n\n\t\t\tinterpolants[ i ].resultBuffer = binding.buffer;\n\n\t\t}\n\n\t}\n\n\t_activateAction( action ) {\n\n\t\tif ( ! this._isActiveAction( action ) ) {\n\n\t\t\tif ( action._cacheIndex === null ) {\n\n\t\t\t\t// this action has been forgotten by the cache, but the user\n\t\t\t\t// appears to be still using it -> rebind\n\n\t\t\t\tconst rootUuid = ( action._localRoot || this._root ).uuid,\n\t\t\t\t\tclipUuid = action._clip.uuid,\n\t\t\t\t\tactionsForClip = this._actionsByClip[ clipUuid ];\n\n\t\t\t\tthis._bindAction( action,\n\t\t\t\t\tactionsForClip && actionsForClip.knownActions[ 0 ] );\n\n\t\t\t\tthis._addInactiveAction( action, clipUuid, rootUuid );\n\n\t\t\t}\n\n\t\t\tconst bindings = action._propertyBindings;\n\n\t\t\t// increment reference counts / sort out state\n\t\t\tfor ( let i = 0, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\t\tconst binding = bindings[ i ];\n\n\t\t\t\tif ( binding.useCount ++ === 0 ) {\n\n\t\t\t\t\tthis._lendBinding( binding );\n\t\t\t\t\tbinding.saveOriginalState();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis._lendAction( action );\n\n\t\t}\n\n\t}\n\n\t_deactivateAction( action ) {\n\n\t\tif ( this._isActiveAction( action ) ) {\n\n\t\t\tconst bindings = action._propertyBindings;\n\n\t\t\t// decrement reference counts / sort out state\n\t\t\tfor ( let i = 0, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\t\tconst binding = bindings[ i ];\n\n\t\t\t\tif ( -- binding.useCount === 0 ) {\n\n\t\t\t\t\tbinding.restoreOriginalState();\n\t\t\t\t\tthis._takeBackBinding( binding );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis._takeBackAction( action );\n\n\t\t}\n\n\t}\n\n\t// Memory manager\n\n\t_initMemoryManager() {\n\n\t\tthis._actions = []; // 'nActiveActions' followed by inactive ones\n\t\tthis._nActiveActions = 0;\n\n\t\tthis._actionsByClip = {};\n\t\t// inside:\n\t\t// {\n\t\t// \tknownActions: Array< AnimationAction > - used as prototypes\n\t\t// \tactionByRoot: AnimationAction - lookup\n\t\t// }\n\n\n\t\tthis._bindings = []; // 'nActiveBindings' followed by inactive ones\n\t\tthis._nActiveBindings = 0;\n\n\t\tthis._bindingsByRootAndName = {}; // inside: Map< name, PropertyMixer >\n\n\n\t\tthis._controlInterpolants = []; // same game as above\n\t\tthis._nActiveControlInterpolants = 0;\n\n\t\tconst scope = this;\n\n\t\tthis.stats = {\n\n\t\t\tactions: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._actions.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn scope._nActiveActions;\n\n\t\t\t\t}\n\t\t\t},\n\t\t\tbindings: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._bindings.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn scope._nActiveBindings;\n\n\t\t\t\t}\n\t\t\t},\n\t\t\tcontrolInterpolants: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._controlInterpolants.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn scope._nActiveControlInterpolants;\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\t// Memory management for AnimationAction objects\n\n\t_isActiveAction( action ) {\n\n\t\tconst index = action._cacheIndex;\n\t\treturn index !== null && index < this._nActiveActions;\n\n\t}\n\n\t_addInactiveAction( action, clipUuid, rootUuid ) {\n\n\t\tconst actions = this._actions,\n\t\t\tactionsByClip = this._actionsByClip;\n\n\t\tlet actionsForClip = actionsByClip[ clipUuid ];\n\n\t\tif ( actionsForClip === undefined ) {\n\n\t\t\tactionsForClip = {\n\n\t\t\t\tknownActions: [ action ],\n\t\t\t\tactionByRoot: {}\n\n\t\t\t};\n\n\t\t\taction._byClipCacheIndex = 0;\n\n\t\t\tactionsByClip[ clipUuid ] = actionsForClip;\n\n\t\t} else {\n\n\t\t\tconst knownActions = actionsForClip.knownActions;\n\n\t\t\taction._byClipCacheIndex = knownActions.length;\n\t\t\tknownActions.push( action );\n\n\t\t}\n\n\t\taction._cacheIndex = actions.length;\n\t\tactions.push( action );\n\n\t\tactionsForClip.actionByRoot[ rootUuid ] = action;\n\n\t}\n\n\t_removeInactiveAction( action ) {\n\n\t\tconst actions = this._actions,\n\t\t\tlastInactiveAction = actions[ actions.length - 1 ],\n\t\t\tcacheIndex = action._cacheIndex;\n\n\t\tlastInactiveAction._cacheIndex = cacheIndex;\n\t\tactions[ cacheIndex ] = lastInactiveAction;\n\t\tactions.pop();\n\n\t\taction._cacheIndex = null;\n\n\n\t\tconst clipUuid = action._clip.uuid,\n\t\t\tactionsByClip = this._actionsByClip,\n\t\t\tactionsForClip = actionsByClip[ clipUuid ],\n\t\t\tknownActionsForClip = actionsForClip.knownActions,\n\n\t\t\tlastKnownAction =\n\t\t\t\tknownActionsForClip[ knownActionsForClip.length - 1 ],\n\n\t\t\tbyClipCacheIndex = action._byClipCacheIndex;\n\n\t\tlastKnownAction._byClipCacheIndex = byClipCacheIndex;\n\t\tknownActionsForClip[ byClipCacheIndex ] = lastKnownAction;\n\t\tknownActionsForClip.pop();\n\n\t\taction._byClipCacheIndex = null;\n\n\n\t\tconst actionByRoot = actionsForClip.actionByRoot,\n\t\t\trootUuid = ( action._localRoot || this._root ).uuid;\n\n\t\tdelete actionByRoot[ rootUuid ];\n\n\t\tif ( knownActionsForClip.length === 0 ) {\n\n\t\t\tdelete actionsByClip[ clipUuid ];\n\n\t\t}\n\n\t\tthis._removeInactiveBindingsForAction( action );\n\n\t}\n\n\t_removeInactiveBindingsForAction( action ) {\n\n\t\tconst bindings = action._propertyBindings;\n\n\t\tfor ( let i = 0, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tconst binding = bindings[ i ];\n\n\t\t\tif ( -- binding.referenceCount === 0 ) {\n\n\t\t\t\tthis._removeInactiveBinding( binding );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_lendAction( action ) {\n\n\t\t// [ active actions | inactive actions ]\n\t\t// [ active actions >| inactive actions ]\n\t\t// s a\n\t\t// <-swap->\n\t\t// a s\n\n\t\tconst actions = this._actions,\n\t\t\tprevIndex = action._cacheIndex,\n\n\t\t\tlastActiveIndex = this._nActiveActions ++,\n\n\t\t\tfirstInactiveAction = actions[ lastActiveIndex ];\n\n\t\taction._cacheIndex = lastActiveIndex;\n\t\tactions[ lastActiveIndex ] = action;\n\n\t\tfirstInactiveAction._cacheIndex = prevIndex;\n\t\tactions[ prevIndex ] = firstInactiveAction;\n\n\t}\n\n\t_takeBackAction( action ) {\n\n\t\t// [ active actions | inactive actions ]\n\t\t// [ active actions |< inactive actions ]\n\t\t// a s\n\t\t// <-swap->\n\t\t// s a\n\n\t\tconst actions = this._actions,\n\t\t\tprevIndex = action._cacheIndex,\n\n\t\t\tfirstInactiveIndex = -- this._nActiveActions,\n\n\t\t\tlastActiveAction = actions[ firstInactiveIndex ];\n\n\t\taction._cacheIndex = firstInactiveIndex;\n\t\tactions[ firstInactiveIndex ] = action;\n\n\t\tlastActiveAction._cacheIndex = prevIndex;\n\t\tactions[ prevIndex ] = lastActiveAction;\n\n\t}\n\n\t// Memory management for PropertyMixer objects\n\n\t_addInactiveBinding( binding, rootUuid, trackName ) {\n\n\t\tconst bindingsByRoot = this._bindingsByRootAndName,\n\t\t\tbindings = this._bindings;\n\n\t\tlet bindingByName = bindingsByRoot[ rootUuid ];\n\n\t\tif ( bindingByName === undefined ) {\n\n\t\t\tbindingByName = {};\n\t\t\tbindingsByRoot[ rootUuid ] = bindingByName;\n\n\t\t}\n\n\t\tbindingByName[ trackName ] = binding;\n\n\t\tbinding._cacheIndex = bindings.length;\n\t\tbindings.push( binding );\n\n\t}\n\n\t_removeInactiveBinding( binding ) {\n\n\t\tconst bindings = this._bindings,\n\t\t\tpropBinding = binding.binding,\n\t\t\trootUuid = propBinding.rootNode.uuid,\n\t\t\ttrackName = propBinding.path,\n\t\t\tbindingsByRoot = this._bindingsByRootAndName,\n\t\t\tbindingByName = bindingsByRoot[ rootUuid ],\n\n\t\t\tlastInactiveBinding = bindings[ bindings.length - 1 ],\n\t\t\tcacheIndex = binding._cacheIndex;\n\n\t\tlastInactiveBinding._cacheIndex = cacheIndex;\n\t\tbindings[ cacheIndex ] = lastInactiveBinding;\n\t\tbindings.pop();\n\n\t\tdelete bindingByName[ trackName ];\n\n\t\tif ( Object.keys( bindingByName ).length === 0 ) {\n\n\t\t\tdelete bindingsByRoot[ rootUuid ];\n\n\t\t}\n\n\t}\n\n\t_lendBinding( binding ) {\n\n\t\tconst bindings = this._bindings,\n\t\t\tprevIndex = binding._cacheIndex,\n\n\t\t\tlastActiveIndex = this._nActiveBindings ++,\n\n\t\t\tfirstInactiveBinding = bindings[ lastActiveIndex ];\n\n\t\tbinding._cacheIndex = lastActiveIndex;\n\t\tbindings[ lastActiveIndex ] = binding;\n\n\t\tfirstInactiveBinding._cacheIndex = prevIndex;\n\t\tbindings[ prevIndex ] = firstInactiveBinding;\n\n\t}\n\n\t_takeBackBinding( binding ) {\n\n\t\tconst bindings = this._bindings,\n\t\t\tprevIndex = binding._cacheIndex,\n\n\t\t\tfirstInactiveIndex = -- this._nActiveBindings,\n\n\t\t\tlastActiveBinding = bindings[ firstInactiveIndex ];\n\n\t\tbinding._cacheIndex = firstInactiveIndex;\n\t\tbindings[ firstInactiveIndex ] = binding;\n\n\t\tlastActiveBinding._cacheIndex = prevIndex;\n\t\tbindings[ prevIndex ] = lastActiveBinding;\n\n\t}\n\n\n\t// Memory management of Interpolants for weight and time scale\n\n\t_lendControlInterpolant() {\n\n\t\tconst interpolants = this._controlInterpolants,\n\t\t\tlastActiveIndex = this._nActiveControlInterpolants ++;\n\n\t\tlet interpolant = interpolants[ lastActiveIndex ];\n\n\t\tif ( interpolant === undefined ) {\n\n\t\t\tinterpolant = new LinearInterpolant(\n\t\t\t\tnew Float32Array( 2 ), new Float32Array( 2 ),\n\t\t\t\t1, this._controlInterpolantsResultBuffer );\n\n\t\t\tinterpolant.__cacheIndex = lastActiveIndex;\n\t\t\tinterpolants[ lastActiveIndex ] = interpolant;\n\n\t\t}\n\n\t\treturn interpolant;\n\n\t}\n\n\t_takeBackControlInterpolant( interpolant ) {\n\n\t\tconst interpolants = this._controlInterpolants,\n\t\t\tprevIndex = interpolant.__cacheIndex,\n\n\t\t\tfirstInactiveIndex = -- this._nActiveControlInterpolants,\n\n\t\t\tlastActiveInterpolant = interpolants[ firstInactiveIndex ];\n\n\t\tinterpolant.__cacheIndex = firstInactiveIndex;\n\t\tinterpolants[ firstInactiveIndex ] = interpolant;\n\n\t\tlastActiveInterpolant.__cacheIndex = prevIndex;\n\t\tinterpolants[ prevIndex ] = lastActiveInterpolant;\n\n\t}\n\n\t// return an action for a clip optionally using a custom root target\n\t// object (this method allocates a lot of dynamic memory in case a\n\t// previously unknown clip/root combination is specified)\n\tclipAction( clip, optionalRoot, blendMode ) {\n\n\t\tconst root = optionalRoot || this._root,\n\t\t\trootUuid = root.uuid;\n\n\t\tlet clipObject = typeof clip === 'string' ? AnimationClip.findByName( root, clip ) : clip;\n\n\t\tconst clipUuid = clipObject !== null ? clipObject.uuid : clip;\n\n\t\tconst actionsForClip = this._actionsByClip[ clipUuid ];\n\t\tlet prototypeAction = null;\n\n\t\tif ( blendMode === undefined ) {\n\n\t\t\tif ( clipObject !== null ) {\n\n\t\t\t\tblendMode = clipObject.blendMode;\n\n\t\t\t} else {\n\n\t\t\t\tblendMode = NormalAnimationBlendMode;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( actionsForClip !== undefined ) {\n\n\t\t\tconst existingAction = actionsForClip.actionByRoot[ rootUuid ];\n\n\t\t\tif ( existingAction !== undefined && existingAction.blendMode === blendMode ) {\n\n\t\t\t\treturn existingAction;\n\n\t\t\t}\n\n\t\t\t// we know the clip, so we don't have to parse all\n\t\t\t// the bindings again but can just copy\n\t\t\tprototypeAction = actionsForClip.knownActions[ 0 ];\n\n\t\t\t// also, take the clip from the prototype action\n\t\t\tif ( clipObject === null )\n\t\t\t\tclipObject = prototypeAction._clip;\n\n\t\t}\n\n\t\t// clip must be known when specified via string\n\t\tif ( clipObject === null ) return null;\n\n\t\t// allocate all resources required to run it\n\t\tconst newAction = new AnimationAction( this, clipObject, optionalRoot, blendMode );\n\n\t\tthis._bindAction( newAction, prototypeAction );\n\n\t\t// and make the action known to the memory manager\n\t\tthis._addInactiveAction( newAction, clipUuid, rootUuid );\n\n\t\treturn newAction;\n\n\t}\n\n\t// get an existing action\n\texistingAction( clip, optionalRoot ) {\n\n\t\tconst root = optionalRoot || this._root,\n\t\t\trootUuid = root.uuid,\n\n\t\t\tclipObject = typeof clip === 'string' ?\n\t\t\t\tAnimationClip.findByName( root, clip ) : clip,\n\n\t\t\tclipUuid = clipObject ? clipObject.uuid : clip,\n\n\t\t\tactionsForClip = this._actionsByClip[ clipUuid ];\n\n\t\tif ( actionsForClip !== undefined ) {\n\n\t\t\treturn actionsForClip.actionByRoot[ rootUuid ] || null;\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t// deactivates all previously scheduled actions\n\tstopAllAction() {\n\n\t\tconst actions = this._actions,\n\t\t\tnActions = this._nActiveActions;\n\n\t\tfor ( let i = nActions - 1; i >= 0; -- i ) {\n\n\t\t\tactions[ i ].stop();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// advance the time and update apply the animation\n\tupdate( deltaTime ) {\n\n\t\tdeltaTime *= this.timeScale;\n\n\t\tconst actions = this._actions,\n\t\t\tnActions = this._nActiveActions,\n\n\t\t\ttime = this.time += deltaTime,\n\t\t\ttimeDirection = Math.sign( deltaTime ),\n\n\t\t\taccuIndex = this._accuIndex ^= 1;\n\n\t\t// run active actions\n\n\t\tfor ( let i = 0; i !== nActions; ++ i ) {\n\n\t\t\tconst action = actions[ i ];\n\n\t\t\taction._update( time, deltaTime, timeDirection, accuIndex );\n\n\t\t}\n\n\t\t// update scene graph\n\n\t\tconst bindings = this._bindings,\n\t\t\tnBindings = this._nActiveBindings;\n\n\t\tfor ( let i = 0; i !== nBindings; ++ i ) {\n\n\t\t\tbindings[ i ].apply( accuIndex );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// Allows you to seek to a specific time in an animation.\n\tsetTime( timeInSeconds ) {\n\n\t\tthis.time = 0; // Zero out time attribute for AnimationMixer object;\n\t\tfor ( let i = 0; i < this._actions.length; i ++ ) {\n\n\t\t\tthis._actions[ i ].time = 0; // Zero out time attribute for all associated AnimationAction objects.\n\n\t\t}\n\n\t\treturn this.update( timeInSeconds ); // Update used to set exact time. Returns \"this\" AnimationMixer object.\n\n\t}\n\n\t// return this mixer's root target object\n\tgetRoot() {\n\n\t\treturn this._root;\n\n\t}\n\n\t// free all resources specific to a particular clip\n\tuncacheClip( clip ) {\n\n\t\tconst actions = this._actions,\n\t\t\tclipUuid = clip.uuid,\n\t\t\tactionsByClip = this._actionsByClip,\n\t\t\tactionsForClip = actionsByClip[ clipUuid ];\n\n\t\tif ( actionsForClip !== undefined ) {\n\n\t\t\t// note: just calling _removeInactiveAction would mess up the\n\t\t\t// iteration state and also require updating the state we can\n\t\t\t// just throw away\n\n\t\t\tconst actionsToRemove = actionsForClip.knownActions;\n\n\t\t\tfor ( let i = 0, n = actionsToRemove.length; i !== n; ++ i ) {\n\n\t\t\t\tconst action = actionsToRemove[ i ];\n\n\t\t\t\tthis._deactivateAction( action );\n\n\t\t\t\tconst cacheIndex = action._cacheIndex,\n\t\t\t\t\tlastInactiveAction = actions[ actions.length - 1 ];\n\n\t\t\t\taction._cacheIndex = null;\n\t\t\t\taction._byClipCacheIndex = null;\n\n\t\t\t\tlastInactiveAction._cacheIndex = cacheIndex;\n\t\t\t\tactions[ cacheIndex ] = lastInactiveAction;\n\t\t\t\tactions.pop();\n\n\t\t\t\tthis._removeInactiveBindingsForAction( action );\n\n\t\t\t}\n\n\t\t\tdelete actionsByClip[ clipUuid ];\n\n\t\t}\n\n\t}\n\n\t// free all resources specific to a particular root target object\n\tuncacheRoot( root ) {\n\n\t\tconst rootUuid = root.uuid,\n\t\t\tactionsByClip = this._actionsByClip;\n\n\t\tfor ( const clipUuid in actionsByClip ) {\n\n\t\t\tconst actionByRoot = actionsByClip[ clipUuid ].actionByRoot,\n\t\t\t\taction = actionByRoot[ rootUuid ];\n\n\t\t\tif ( action !== undefined ) {\n\n\t\t\t\tthis._deactivateAction( action );\n\t\t\t\tthis._removeInactiveAction( action );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst bindingsByRoot = this._bindingsByRootAndName,\n\t\t\tbindingByName = bindingsByRoot[ rootUuid ];\n\n\t\tif ( bindingByName !== undefined ) {\n\n\t\t\tfor ( const trackName in bindingByName ) {\n\n\t\t\t\tconst binding = bindingByName[ trackName ];\n\t\t\t\tbinding.restoreOriginalState();\n\t\t\t\tthis._removeInactiveBinding( binding );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t// remove a targeted clip from the cache\n\tuncacheAction( clip, optionalRoot ) {\n\n\t\tconst action = this.existingAction( clip, optionalRoot );\n\n\t\tif ( action !== null ) {\n\n\t\t\tthis._deactivateAction( action );\n\t\t\tthis._removeInactiveAction( action );\n\n\t\t}\n\n\t}\n\n}\n\nAnimationMixer.prototype._controlInterpolantsResultBuffer = new Float32Array( 1 );\n\nclass Uniform {\n\n\tconstructor( value ) {\n\n\t\tif ( typeof value === 'string' ) {\n\n\t\t\tconsole.warn( 'THREE.Uniform: Type parameter is no longer needed.' );\n\t\t\tvalue = arguments[ 1 ];\n\n\t\t}\n\n\t\tthis.value = value;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Uniform( this.value.clone === undefined ? this.value : this.value.clone() );\n\n\t}\n\n}\n\nclass InstancedInterleavedBuffer extends InterleavedBuffer {\n\n\tconstructor( array, stride, meshPerAttribute = 1 ) {\n\n\t\tsuper( array, stride );\n\n\t\tthis.meshPerAttribute = meshPerAttribute;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.meshPerAttribute = source.meshPerAttribute;\n\n\t\treturn this;\n\n\t}\n\n\tclone( data ) {\n\n\t\tconst ib = super.clone( data );\n\n\t\tib.meshPerAttribute = this.meshPerAttribute;\n\n\t\treturn ib;\n\n\t}\n\n\ttoJSON( data ) {\n\n\t\tconst json = super.toJSON( data );\n\n\t\tjson.isInstancedInterleavedBuffer = true;\n\t\tjson.meshPerAttribute = this.meshPerAttribute;\n\n\t\treturn json;\n\n\t}\n\n}\n\nInstancedInterleavedBuffer.prototype.isInstancedInterleavedBuffer = true;\n\nclass GLBufferAttribute {\n\n\tconstructor( buffer, type, itemSize, elementSize, count ) {\n\n\t\tthis.buffer = buffer;\n\t\tthis.type = type;\n\t\tthis.itemSize = itemSize;\n\t\tthis.elementSize = elementSize;\n\t\tthis.count = count;\n\n\t\tthis.version = 0;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tsetBuffer( buffer ) {\n\n\t\tthis.buffer = buffer;\n\n\t\treturn this;\n\n\t}\n\n\tsetType( type, elementSize ) {\n\n\t\tthis.type = type;\n\t\tthis.elementSize = elementSize;\n\n\t\treturn this;\n\n\t}\n\n\tsetItemSize( itemSize ) {\n\n\t\tthis.itemSize = itemSize;\n\n\t\treturn this;\n\n\t}\n\n\tsetCount( count ) {\n\n\t\tthis.count = count;\n\n\t\treturn this;\n\n\t}\n\n}\n\nGLBufferAttribute.prototype.isGLBufferAttribute = true;\n\nclass Raycaster {\n\n\tconstructor( origin, direction, near = 0, far = Infinity ) {\n\n\t\tthis.ray = new Ray( origin, direction );\n\t\t// direction is assumed to be normalized (for accurate distance calculations)\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\t\tthis.camera = null;\n\t\tthis.layers = new Layers();\n\n\t\tthis.params = {\n\t\t\tMesh: {},\n\t\t\tLine: { threshold: 1 },\n\t\t\tLOD: {},\n\t\t\tPoints: { threshold: 1 },\n\t\t\tSprite: {}\n\t\t};\n\n\t}\n\n\tset( origin, direction ) {\n\n\t\t// direction is assumed to be normalized (for accurate distance calculations)\n\n\t\tthis.ray.set( origin, direction );\n\n\t}\n\n\tsetFromCamera( coords, camera ) {\n\n\t\tif ( camera && camera.isPerspectiveCamera ) {\n\n\t\t\tthis.ray.origin.setFromMatrixPosition( camera.matrixWorld );\n\t\t\tthis.ray.direction.set( coords.x, coords.y, 0.5 ).unproject( camera ).sub( this.ray.origin ).normalize();\n\t\t\tthis.camera = camera;\n\n\t\t} else if ( camera && camera.isOrthographicCamera ) {\n\n\t\t\tthis.ray.origin.set( coords.x, coords.y, ( camera.near + camera.far ) / ( camera.near - camera.far ) ).unproject( camera ); // set origin in plane of camera\n\t\t\tthis.ray.direction.set( 0, 0, - 1 ).transformDirection( camera.matrixWorld );\n\t\t\tthis.camera = camera;\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.Raycaster: Unsupported camera type: ' + camera.type );\n\n\t\t}\n\n\t}\n\n\tintersectObject( object, recursive = true, intersects = [] ) {\n\n\t\tintersectObject( object, this, intersects, recursive );\n\n\t\tintersects.sort( ascSort );\n\n\t\treturn intersects;\n\n\t}\n\n\tintersectObjects( objects, recursive = true, intersects = [] ) {\n\n\t\tfor ( let i = 0, l = objects.length; i < l; i ++ ) {\n\n\t\t\tintersectObject( objects[ i ], this, intersects, recursive );\n\n\t\t}\n\n\t\tintersects.sort( ascSort );\n\n\t\treturn intersects;\n\n\t}\n\n}\n\nfunction ascSort( a, b ) {\n\n\treturn a.distance - b.distance;\n\n}\n\nfunction intersectObject( object, raycaster, intersects, recursive ) {\n\n\tif ( object.layers.test( raycaster.layers ) ) {\n\n\t\tobject.raycast( raycaster, intersects );\n\n\t}\n\n\tif ( recursive === true ) {\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tintersectObject( children[ i ], raycaster, intersects, true );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * Ref: https://en.wikipedia.org/wiki/Spherical_coordinate_system\n *\n * The polar angle (phi) is measured from the positive y-axis. The positive y-axis is up.\n * The azimuthal angle (theta) is measured from the positive z-axis.\n */\n\nclass Spherical {\n\n\tconstructor( radius = 1, phi = 0, theta = 0 ) {\n\n\t\tthis.radius = radius;\n\t\tthis.phi = phi; // polar angle\n\t\tthis.theta = theta; // azimuthal angle\n\n\t\treturn this;\n\n\t}\n\n\tset( radius, phi, theta ) {\n\n\t\tthis.radius = radius;\n\t\tthis.phi = phi;\n\t\tthis.theta = theta;\n\n\t\treturn this;\n\n\t}\n\n\tcopy( other ) {\n\n\t\tthis.radius = other.radius;\n\t\tthis.phi = other.phi;\n\t\tthis.theta = other.theta;\n\n\t\treturn this;\n\n\t}\n\n\t// restrict phi to be betwee EPS and PI-EPS\n\tmakeSafe() {\n\n\t\tconst EPS = 0.000001;\n\t\tthis.phi = Math.max( EPS, Math.min( Math.PI - EPS, this.phi ) );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromVector3( v ) {\n\n\t\treturn this.setFromCartesianCoords( v.x, v.y, v.z );\n\n\t}\n\n\tsetFromCartesianCoords( x, y, z ) {\n\n\t\tthis.radius = Math.sqrt( x * x + y * y + z * z );\n\n\t\tif ( this.radius === 0 ) {\n\n\t\t\tthis.theta = 0;\n\t\t\tthis.phi = 0;\n\n\t\t} else {\n\n\t\t\tthis.theta = Math.atan2( x, z );\n\t\t\tthis.phi = Math.acos( clamp( y / this.radius, - 1, 1 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\n/**\n * Ref: https://en.wikipedia.org/wiki/Cylindrical_coordinate_system\n */\n\nclass Cylindrical {\n\n\tconstructor( radius = 1, theta = 0, y = 0 ) {\n\n\t\tthis.radius = radius; // distance from the origin to a point in the x-z plane\n\t\tthis.theta = theta; // counterclockwise angle in the x-z plane measured in radians from the positive z-axis\n\t\tthis.y = y; // height above the x-z plane\n\n\t\treturn this;\n\n\t}\n\n\tset( radius, theta, y ) {\n\n\t\tthis.radius = radius;\n\t\tthis.theta = theta;\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tcopy( other ) {\n\n\t\tthis.radius = other.radius;\n\t\tthis.theta = other.theta;\n\t\tthis.y = other.y;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromVector3( v ) {\n\n\t\treturn this.setFromCartesianCoords( v.x, v.y, v.z );\n\n\t}\n\n\tsetFromCartesianCoords( x, y, z ) {\n\n\t\tthis.radius = Math.sqrt( x * x + z * z );\n\t\tthis.theta = Math.atan2( x, z );\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _vector$4 = /*@__PURE__*/ new Vector2();\n\nclass Box2 {\n\n\tconstructor( min = new Vector2( + Infinity, + Infinity ), max = new Vector2( - Infinity, - Infinity ) ) {\n\n\t\tthis.min = min;\n\t\tthis.max = max;\n\n\t}\n\n\tset( min, max ) {\n\n\t\tthis.min.copy( min );\n\t\tthis.max.copy( max );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( points[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCenterAndSize( center, size ) {\n\n\t\tconst halfSize = _vector$4.copy( size ).multiplyScalar( 0.5 );\n\t\tthis.min.copy( center ).sub( halfSize );\n\t\tthis.max.copy( center ).add( halfSize );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( box ) {\n\n\t\tthis.min.copy( box.min );\n\t\tthis.max.copy( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.min.x = this.min.y = + Infinity;\n\t\tthis.max.x = this.max.y = - Infinity;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\t// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n\n\t\treturn ( this.max.x < this.min.x ) || ( this.max.y < this.min.y );\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0 ) : target.addVectors( this.min, this.max ).multiplyScalar( 0.5 );\n\n\t}\n\n\tgetSize( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0 ) : target.subVectors( this.max, this.min );\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tthis.min.min( point );\n\t\tthis.max.max( point );\n\n\t\treturn this;\n\n\t}\n\n\texpandByVector( vector ) {\n\n\t\tthis.min.sub( vector );\n\t\tthis.max.add( vector );\n\n\t\treturn this;\n\n\t}\n\n\texpandByScalar( scalar ) {\n\n\t\tthis.min.addScalar( - scalar );\n\t\tthis.max.addScalar( scalar );\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn point.x < this.min.x || point.x > this.max.x ||\n\t\t\tpoint.y < this.min.y || point.y > this.max.y ? false : true;\n\n\t}\n\n\tcontainsBox( box ) {\n\n\t\treturn this.min.x <= box.min.x && box.max.x <= this.max.x &&\n\t\t\tthis.min.y <= box.min.y && box.max.y <= this.max.y;\n\n\t}\n\n\tgetParameter( point, target ) {\n\n\t\t// This can potentially have a divide by zero if the box\n\t\t// has a size dimension of 0.\n\n\t\treturn target.set(\n\t\t\t( point.x - this.min.x ) / ( this.max.x - this.min.x ),\n\t\t\t( point.y - this.min.y ) / ( this.max.y - this.min.y )\n\t\t);\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\t// using 4 splitting planes to rule out intersections\n\n\t\treturn box.max.x < this.min.x || box.min.x > this.max.x ||\n\t\t\tbox.max.y < this.min.y || box.min.y > this.max.y ? false : true;\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\tconst clampedPoint = _vector$4.copy( point ).clamp( this.min, this.max );\n\t\treturn clampedPoint.sub( point ).length();\n\n\t}\n\n\tintersect( box ) {\n\n\t\tthis.min.max( box.min );\n\t\tthis.max.min( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tunion( box ) {\n\n\t\tthis.min.min( box.min );\n\t\tthis.max.max( box.max );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.min.add( offset );\n\t\tthis.max.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\tequals( box ) {\n\n\t\treturn box.min.equals( this.min ) && box.max.equals( this.max );\n\n\t}\n\n}\n\nBox2.prototype.isBox2 = true;\n\nconst _startP = /*@__PURE__*/ new Vector3();\nconst _startEnd = /*@__PURE__*/ new Vector3();\n\nclass Line3 {\n\n\tconstructor( start = new Vector3(), end = new Vector3() ) {\n\n\t\tthis.start = start;\n\t\tthis.end = end;\n\n\t}\n\n\tset( start, end ) {\n\n\t\tthis.start.copy( start );\n\t\tthis.end.copy( end );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( line ) {\n\n\t\tthis.start.copy( line.start );\n\t\tthis.end.copy( line.end );\n\n\t\treturn this;\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn target.addVectors( this.start, this.end ).multiplyScalar( 0.5 );\n\n\t}\n\n\tdelta( target ) {\n\n\t\treturn target.subVectors( this.end, this.start );\n\n\t}\n\n\tdistanceSq() {\n\n\t\treturn this.start.distanceToSquared( this.end );\n\n\t}\n\n\tdistance() {\n\n\t\treturn this.start.distanceTo( this.end );\n\n\t}\n\n\tat( t, target ) {\n\n\t\treturn this.delta( target ).multiplyScalar( t ).add( this.start );\n\n\t}\n\n\tclosestPointToPointParameter( point, clampToLine ) {\n\n\t\t_startP.subVectors( point, this.start );\n\t\t_startEnd.subVectors( this.end, this.start );\n\n\t\tconst startEnd2 = _startEnd.dot( _startEnd );\n\t\tconst startEnd_startP = _startEnd.dot( _startP );\n\n\t\tlet t = startEnd_startP / startEnd2;\n\n\t\tif ( clampToLine ) {\n\n\t\t\tt = clamp( t, 0, 1 );\n\n\t\t}\n\n\t\treturn t;\n\n\t}\n\n\tclosestPointToPoint( point, clampToLine, target ) {\n\n\t\tconst t = this.closestPointToPointParameter( point, clampToLine );\n\n\t\treturn this.delta( target ).multiplyScalar( t ).add( this.start );\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tthis.start.applyMatrix4( matrix );\n\t\tthis.end.applyMatrix4( matrix );\n\n\t\treturn this;\n\n\t}\n\n\tequals( line ) {\n\n\t\treturn line.start.equals( this.start ) && line.end.equals( this.end );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _vector$3 = /*@__PURE__*/ new Vector3();\n\nclass SpotLightHelper extends Object3D {\n\n\tconstructor( light, color ) {\n\n\t\tsuper();\n\t\tthis.light = light;\n\t\tthis.light.updateMatrixWorld();\n\n\t\tthis.matrix = light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.color = color;\n\n\t\tconst geometry = new BufferGeometry();\n\n\t\tconst positions = [\n\t\t\t0, 0, 0, \t0, 0, 1,\n\t\t\t0, 0, 0, \t1, 0, 1,\n\t\t\t0, 0, 0,\t- 1, 0, 1,\n\t\t\t0, 0, 0, \t0, 1, 1,\n\t\t\t0, 0, 0, \t0, - 1, 1\n\t\t];\n\n\t\tfor ( let i = 0, j = 1, l = 32; i < l; i ++, j ++ ) {\n\n\t\t\tconst p1 = ( i / l ) * Math.PI * 2;\n\t\t\tconst p2 = ( j / l ) * Math.PI * 2;\n\n\t\t\tpositions.push(\n\t\t\t\tMath.cos( p1 ), Math.sin( p1 ), 1,\n\t\t\t\tMath.cos( p2 ), Math.sin( p2 ), 1\n\t\t\t);\n\n\t\t}\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { fog: false, toneMapped: false } );\n\n\t\tthis.cone = new LineSegments( geometry, material );\n\t\tthis.add( this.cone );\n\n\t\tthis.update();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.cone.geometry.dispose();\n\t\tthis.cone.material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\tthis.light.updateMatrixWorld();\n\n\t\tconst coneLength = this.light.distance ? this.light.distance : 1000;\n\t\tconst coneWidth = coneLength * Math.tan( this.light.angle );\n\n\t\tthis.cone.scale.set( coneWidth, coneWidth, coneLength );\n\n\t\t_vector$3.setFromMatrixPosition( this.light.target.matrixWorld );\n\n\t\tthis.cone.lookAt( _vector$3 );\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.cone.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tthis.cone.material.color.copy( this.light.color );\n\n\t\t}\n\n\t}\n\n}\n\nconst _vector$2 = /*@__PURE__*/ new Vector3();\nconst _boneMatrix = /*@__PURE__*/ new Matrix4();\nconst _matrixWorldInv = /*@__PURE__*/ new Matrix4();\n\n\nclass SkeletonHelper extends LineSegments {\n\n\tconstructor( object ) {\n\n\t\tconst bones = getBoneList( object );\n\n\t\tconst geometry = new BufferGeometry();\n\n\t\tconst vertices = [];\n\t\tconst colors = [];\n\n\t\tconst color1 = new Color( 0, 0, 1 );\n\t\tconst color2 = new Color( 0, 1, 0 );\n\n\t\tfor ( let i = 0; i < bones.length; i ++ ) {\n\n\t\t\tconst bone = bones[ i ];\n\n\t\t\tif ( bone.parent && bone.parent.isBone ) {\n\n\t\t\t\tvertices.push( 0, 0, 0 );\n\t\t\t\tvertices.push( 0, 0, 0 );\n\t\t\t\tcolors.push( color1.r, color1.g, color1.b );\n\t\t\t\tcolors.push( color2.r, color2.g, color2.b );\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, depthTest: false, depthWrite: false, toneMapped: false, transparent: true } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'SkeletonHelper';\n\t\tthis.isSkeletonHelper = true;\n\n\t\tthis.root = object;\n\t\tthis.bones = bones;\n\n\t\tthis.matrix = object.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tconst bones = this.bones;\n\n\t\tconst geometry = this.geometry;\n\t\tconst position = geometry.getAttribute( 'position' );\n\n\t\t_matrixWorldInv.copy( this.root.matrixWorld ).invert();\n\n\t\tfor ( let i = 0, j = 0; i < bones.length; i ++ ) {\n\n\t\t\tconst bone = bones[ i ];\n\n\t\t\tif ( bone.parent && bone.parent.isBone ) {\n\n\t\t\t\t_boneMatrix.multiplyMatrices( _matrixWorldInv, bone.matrixWorld );\n\t\t\t\t_vector$2.setFromMatrixPosition( _boneMatrix );\n\t\t\t\tposition.setXYZ( j, _vector$2.x, _vector$2.y, _vector$2.z );\n\n\t\t\t\t_boneMatrix.multiplyMatrices( _matrixWorldInv, bone.parent.matrixWorld );\n\t\t\t\t_vector$2.setFromMatrixPosition( _boneMatrix );\n\t\t\t\tposition.setXYZ( j + 1, _vector$2.x, _vector$2.y, _vector$2.z );\n\n\t\t\t\tj += 2;\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometry.getAttribute( 'position' ).needsUpdate = true;\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t}\n\n}\n\n\nfunction getBoneList( object ) {\n\n\tconst boneList = [];\n\n\tif ( object && object.isBone ) {\n\n\t\tboneList.push( object );\n\n\t}\n\n\tfor ( let i = 0; i < object.children.length; i ++ ) {\n\n\t\tboneList.push.apply( boneList, getBoneList( object.children[ i ] ) );\n\n\t}\n\n\treturn boneList;\n\n}\n\nclass PointLightHelper extends Mesh {\n\n\tconstructor( light, sphereSize, color ) {\n\n\t\tconst geometry = new SphereGeometry( sphereSize, 4, 2 );\n\t\tconst material = new MeshBasicMaterial( { wireframe: true, fog: false, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.light = light;\n\t\tthis.light.updateMatrixWorld();\n\n\t\tthis.color = color;\n\n\t\tthis.type = 'PointLightHelper';\n\n\t\tthis.matrix = this.light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.update();\n\n\n\t\t/*\n\t// TODO: delete this comment?\n\tconst distanceGeometry = new THREE.IcosahedronBufferGeometry( 1, 2 );\n\tconst distanceMaterial = new THREE.MeshBasicMaterial( { color: hexColor, fog: false, wireframe: true, opacity: 0.1, transparent: true } );\n\n\tthis.lightSphere = new THREE.Mesh( bulbGeometry, bulbMaterial );\n\tthis.lightDistance = new THREE.Mesh( distanceGeometry, distanceMaterial );\n\n\tconst d = light.distance;\n\n\tif ( d === 0.0 ) {\n\n\t\tthis.lightDistance.visible = false;\n\n\t} else {\n\n\t\tthis.lightDistance.scale.set( d, d, d );\n\n\t}\n\n\tthis.add( this.lightDistance );\n\t*/\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tthis.material.color.copy( this.light.color );\n\n\t\t}\n\n\t\t/*\n\t\tconst d = this.light.distance;\n\n\t\tif ( d === 0.0 ) {\n\n\t\t\tthis.lightDistance.visible = false;\n\n\t\t} else {\n\n\t\t\tthis.lightDistance.visible = true;\n\t\t\tthis.lightDistance.scale.set( d, d, d );\n\n\t\t}\n\t\t*/\n\n\t}\n\n}\n\nconst _vector$1 = /*@__PURE__*/ new Vector3();\nconst _color1 = /*@__PURE__*/ new Color();\nconst _color2 = /*@__PURE__*/ new Color();\n\nclass HemisphereLightHelper extends Object3D {\n\n\tconstructor( light, size, color ) {\n\n\t\tsuper();\n\t\tthis.light = light;\n\t\tthis.light.updateMatrixWorld();\n\n\t\tthis.matrix = light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.color = color;\n\n\t\tconst geometry = new OctahedronGeometry( size );\n\t\tgeometry.rotateY( Math.PI * 0.5 );\n\n\t\tthis.material = new MeshBasicMaterial( { wireframe: true, fog: false, toneMapped: false } );\n\t\tif ( this.color === undefined ) this.material.vertexColors = true;\n\n\t\tconst position = geometry.getAttribute( 'position' );\n\t\tconst colors = new Float32Array( position.count * 3 );\n\n\t\tgeometry.setAttribute( 'color', new BufferAttribute( colors, 3 ) );\n\n\t\tthis.add( new Mesh( geometry, this.material ) );\n\n\t\tthis.update();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.children[ 0 ].geometry.dispose();\n\t\tthis.children[ 0 ].material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\tconst mesh = this.children[ 0 ];\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tconst colors = mesh.geometry.getAttribute( 'color' );\n\n\t\t\t_color1.copy( this.light.color );\n\t\t\t_color2.copy( this.light.groundColor );\n\n\t\t\tfor ( let i = 0, l = colors.count; i < l; i ++ ) {\n\n\t\t\t\tconst color = ( i < ( l / 2 ) ) ? _color1 : _color2;\n\n\t\t\t\tcolors.setXYZ( i, color.r, color.g, color.b );\n\n\t\t\t}\n\n\t\t\tcolors.needsUpdate = true;\n\n\t\t}\n\n\t\tmesh.lookAt( _vector$1.setFromMatrixPosition( this.light.matrixWorld ).negate() );\n\n\t}\n\n}\n\nclass GridHelper extends LineSegments {\n\n\tconstructor( size = 10, divisions = 10, color1 = 0x444444, color2 = 0x888888 ) {\n\n\t\tcolor1 = new Color( color1 );\n\t\tcolor2 = new Color( color2 );\n\n\t\tconst center = divisions / 2;\n\t\tconst step = size / divisions;\n\t\tconst halfSize = size / 2;\n\n\t\tconst vertices = [], colors = [];\n\n\t\tfor ( let i = 0, j = 0, k = - halfSize; i <= divisions; i ++, k += step ) {\n\n\t\t\tvertices.push( - halfSize, 0, k, halfSize, 0, k );\n\t\t\tvertices.push( k, 0, - halfSize, k, 0, halfSize );\n\n\t\t\tconst color = i === center ? color1 : color2;\n\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\n\t\t}\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'GridHelper';\n\n\t}\n\n}\n\nclass PolarGridHelper extends LineSegments {\n\n\tconstructor( radius = 10, radials = 16, circles = 8, divisions = 64, color1 = 0x444444, color2 = 0x888888 ) {\n\n\t\tcolor1 = new Color( color1 );\n\t\tcolor2 = new Color( color2 );\n\n\t\tconst vertices = [];\n\t\tconst colors = [];\n\n\t\t// create the radials\n\n\t\tfor ( let i = 0; i <= radials; i ++ ) {\n\n\t\t\tconst v = ( i / radials ) * ( Math.PI * 2 );\n\n\t\t\tconst x = Math.sin( v ) * radius;\n\t\t\tconst z = Math.cos( v ) * radius;\n\n\t\t\tvertices.push( 0, 0, 0 );\n\t\t\tvertices.push( x, 0, z );\n\n\t\t\tconst color = ( i & 1 ) ? color1 : color2;\n\n\t\t\tcolors.push( color.r, color.g, color.b );\n\t\t\tcolors.push( color.r, color.g, color.b );\n\n\t\t}\n\n\t\t// create the circles\n\n\t\tfor ( let i = 0; i <= circles; i ++ ) {\n\n\t\t\tconst color = ( i & 1 ) ? color1 : color2;\n\n\t\t\tconst r = radius - ( radius / circles * i );\n\n\t\t\tfor ( let j = 0; j < divisions; j ++ ) {\n\n\t\t\t\t// first vertex\n\n\t\t\t\tlet v = ( j / divisions ) * ( Math.PI * 2 );\n\n\t\t\t\tlet x = Math.sin( v ) * r;\n\t\t\t\tlet z = Math.cos( v ) * r;\n\n\t\t\t\tvertices.push( x, 0, z );\n\t\t\t\tcolors.push( color.r, color.g, color.b );\n\n\t\t\t\t// second vertex\n\n\t\t\t\tv = ( ( j + 1 ) / divisions ) * ( Math.PI * 2 );\n\n\t\t\t\tx = Math.sin( v ) * r;\n\t\t\t\tz = Math.cos( v ) * r;\n\n\t\t\t\tvertices.push( x, 0, z );\n\t\t\t\tcolors.push( color.r, color.g, color.b );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'PolarGridHelper';\n\n\t}\n\n}\n\nconst _v1 = /*@__PURE__*/ new Vector3();\nconst _v2 = /*@__PURE__*/ new Vector3();\nconst _v3 = /*@__PURE__*/ new Vector3();\n\nclass DirectionalLightHelper extends Object3D {\n\n\tconstructor( light, size, color ) {\n\n\t\tsuper();\n\t\tthis.light = light;\n\t\tthis.light.updateMatrixWorld();\n\n\t\tthis.matrix = light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.color = color;\n\n\t\tif ( size === undefined ) size = 1;\n\n\t\tlet geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( [\n\t\t\t- size, size, 0,\n\t\t\tsize, size, 0,\n\t\t\tsize, - size, 0,\n\t\t\t- size, - size, 0,\n\t\t\t- size, size, 0\n\t\t], 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { fog: false, toneMapped: false } );\n\n\t\tthis.lightPlane = new Line( geometry, material );\n\t\tthis.add( this.lightPlane );\n\n\t\tgeometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( [ 0, 0, 0, 0, 0, 1 ], 3 ) );\n\n\t\tthis.targetLine = new Line( geometry, material );\n\t\tthis.add( this.targetLine );\n\n\t\tthis.update();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.lightPlane.geometry.dispose();\n\t\tthis.lightPlane.material.dispose();\n\t\tthis.targetLine.geometry.dispose();\n\t\tthis.targetLine.material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\t_v1.setFromMatrixPosition( this.light.matrixWorld );\n\t\t_v2.setFromMatrixPosition( this.light.target.matrixWorld );\n\t\t_v3.subVectors( _v2, _v1 );\n\n\t\tthis.lightPlane.lookAt( _v2 );\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.lightPlane.material.color.set( this.color );\n\t\t\tthis.targetLine.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tthis.lightPlane.material.color.copy( this.light.color );\n\t\t\tthis.targetLine.material.color.copy( this.light.color );\n\n\t\t}\n\n\t\tthis.targetLine.lookAt( _v2 );\n\t\tthis.targetLine.scale.z = _v3.length();\n\n\t}\n\n}\n\nconst _vector = /*@__PURE__*/ new Vector3();\nconst _camera = /*@__PURE__*/ new Camera();\n\n/**\n *\t- shows frustum, line of sight and up of the camera\n *\t- suitable for fast updates\n * \t- based on frustum visualization in lightgl.js shadowmap example\n *\t\thttps://github.com/evanw/lightgl.js/blob/master/tests/shadowmap.html\n */\n\nclass CameraHelper extends LineSegments {\n\n\tconstructor( camera ) {\n\n\t\tconst geometry = new BufferGeometry();\n\t\tconst material = new LineBasicMaterial( { color: 0xffffff, vertexColors: true, toneMapped: false } );\n\n\t\tconst vertices = [];\n\t\tconst colors = [];\n\n\t\tconst pointMap = {};\n\n\t\t// colors\n\n\t\tconst colorFrustum = new Color( 0xffaa00 );\n\t\tconst colorCone = new Color( 0xff0000 );\n\t\tconst colorUp = new Color( 0x00aaff );\n\t\tconst colorTarget = new Color( 0xffffff );\n\t\tconst colorCross = new Color( 0x333333 );\n\n\t\t// near\n\n\t\taddLine( 'n1', 'n2', colorFrustum );\n\t\taddLine( 'n2', 'n4', colorFrustum );\n\t\taddLine( 'n4', 'n3', colorFrustum );\n\t\taddLine( 'n3', 'n1', colorFrustum );\n\n\t\t// far\n\n\t\taddLine( 'f1', 'f2', colorFrustum );\n\t\taddLine( 'f2', 'f4', colorFrustum );\n\t\taddLine( 'f4', 'f3', colorFrustum );\n\t\taddLine( 'f3', 'f1', colorFrustum );\n\n\t\t// sides\n\n\t\taddLine( 'n1', 'f1', colorFrustum );\n\t\taddLine( 'n2', 'f2', colorFrustum );\n\t\taddLine( 'n3', 'f3', colorFrustum );\n\t\taddLine( 'n4', 'f4', colorFrustum );\n\n\t\t// cone\n\n\t\taddLine( 'p', 'n1', colorCone );\n\t\taddLine( 'p', 'n2', colorCone );\n\t\taddLine( 'p', 'n3', colorCone );\n\t\taddLine( 'p', 'n4', colorCone );\n\n\t\t// up\n\n\t\taddLine( 'u1', 'u2', colorUp );\n\t\taddLine( 'u2', 'u3', colorUp );\n\t\taddLine( 'u3', 'u1', colorUp );\n\n\t\t// target\n\n\t\taddLine( 'c', 't', colorTarget );\n\t\taddLine( 'p', 'c', colorCross );\n\n\t\t// cross\n\n\t\taddLine( 'cn1', 'cn2', colorCross );\n\t\taddLine( 'cn3', 'cn4', colorCross );\n\n\t\taddLine( 'cf1', 'cf2', colorCross );\n\t\taddLine( 'cf3', 'cf4', colorCross );\n\n\t\tfunction addLine( a, b, color ) {\n\n\t\t\taddPoint( a, color );\n\t\t\taddPoint( b, color );\n\n\t\t}\n\n\t\tfunction addPoint( id, color ) {\n\n\t\t\tvertices.push( 0, 0, 0 );\n\t\t\tcolors.push( color.r, color.g, color.b );\n\n\t\t\tif ( pointMap[ id ] === undefined ) {\n\n\t\t\t\tpointMap[ id ] = [];\n\n\t\t\t}\n\n\t\t\tpointMap[ id ].push( ( vertices.length / 3 ) - 1 );\n\n\t\t}\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'CameraHelper';\n\n\t\tthis.camera = camera;\n\t\tif ( this.camera.updateProjectionMatrix ) this.camera.updateProjectionMatrix();\n\n\t\tthis.matrix = camera.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.pointMap = pointMap;\n\n\t\tthis.update();\n\n\t}\n\n\tupdate() {\n\n\t\tconst geometry = this.geometry;\n\t\tconst pointMap = this.pointMap;\n\n\t\tconst w = 1, h = 1;\n\n\t\t// we need just camera projection matrix inverse\n\t\t// world matrix must be identity\n\n\t\t_camera.projectionMatrixInverse.copy( this.camera.projectionMatrixInverse );\n\n\t\t// center / target\n\n\t\tsetPoint( 'c', pointMap, geometry, _camera, 0, 0, - 1 );\n\t\tsetPoint( 't', pointMap, geometry, _camera, 0, 0, 1 );\n\n\t\t// near\n\n\t\tsetPoint( 'n1', pointMap, geometry, _camera, - w, - h, - 1 );\n\t\tsetPoint( 'n2', pointMap, geometry, _camera, w, - h, - 1 );\n\t\tsetPoint( 'n3', pointMap, geometry, _camera, - w, h, - 1 );\n\t\tsetPoint( 'n4', pointMap, geometry, _camera, w, h, - 1 );\n\n\t\t// far\n\n\t\tsetPoint( 'f1', pointMap, geometry, _camera, - w, - h, 1 );\n\t\tsetPoint( 'f2', pointMap, geometry, _camera, w, - h, 1 );\n\t\tsetPoint( 'f3', pointMap, geometry, _camera, - w, h, 1 );\n\t\tsetPoint( 'f4', pointMap, geometry, _camera, w, h, 1 );\n\n\t\t// up\n\n\t\tsetPoint( 'u1', pointMap, geometry, _camera, w * 0.7, h * 1.1, - 1 );\n\t\tsetPoint( 'u2', pointMap, geometry, _camera, - w * 0.7, h * 1.1, - 1 );\n\t\tsetPoint( 'u3', pointMap, geometry, _camera, 0, h * 2, - 1 );\n\n\t\t// cross\n\n\t\tsetPoint( 'cf1', pointMap, geometry, _camera, - w, 0, 1 );\n\t\tsetPoint( 'cf2', pointMap, geometry, _camera, w, 0, 1 );\n\t\tsetPoint( 'cf3', pointMap, geometry, _camera, 0, - h, 1 );\n\t\tsetPoint( 'cf4', pointMap, geometry, _camera, 0, h, 1 );\n\n\t\tsetPoint( 'cn1', pointMap, geometry, _camera, - w, 0, - 1 );\n\t\tsetPoint( 'cn2', pointMap, geometry, _camera, w, 0, - 1 );\n\t\tsetPoint( 'cn3', pointMap, geometry, _camera, 0, - h, - 1 );\n\t\tsetPoint( 'cn4', pointMap, geometry, _camera, 0, h, - 1 );\n\n\t\tgeometry.getAttribute( 'position' ).needsUpdate = true;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\n\nfunction setPoint( point, pointMap, geometry, camera, x, y, z ) {\n\n\t_vector.set( x, y, z ).unproject( camera );\n\n\tconst points = pointMap[ point ];\n\n\tif ( points !== undefined ) {\n\n\t\tconst position = geometry.getAttribute( 'position' );\n\n\t\tfor ( let i = 0, l = points.length; i < l; i ++ ) {\n\n\t\t\tposition.setXYZ( points[ i ], _vector.x, _vector.y, _vector.z );\n\n\t\t}\n\n\t}\n\n}\n\nconst _box = /*@__PURE__*/ new Box3();\n\nclass BoxHelper extends LineSegments {\n\n\tconstructor( object, color = 0xffff00 ) {\n\n\t\tconst indices = 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 ] );\n\t\tconst positions = new Float32Array( 8 * 3 );\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setIndex( new BufferAttribute( indices, 1 ) );\n\t\tgeometry.setAttribute( 'position', new BufferAttribute( positions, 3 ) );\n\n\t\tsuper( geometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\n\t\tthis.object = object;\n\t\tthis.type = 'BoxHelper';\n\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.update();\n\n\t}\n\n\tupdate( object ) {\n\n\t\tif ( object !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.BoxHelper: .update() has no longer arguments.' );\n\n\t\t}\n\n\t\tif ( this.object !== undefined ) {\n\n\t\t\t_box.setFromObject( this.object );\n\n\t\t}\n\n\t\tif ( _box.isEmpty() ) return;\n\n\t\tconst min = _box.min;\n\t\tconst max = _box.max;\n\n\t\t/*\n\t\t\t5____4\n\t\t1/___0/|\n\t\t| 6__|_7\n\t\t2/___3/\n\n\t\t0: max.x, max.y, max.z\n\t\t1: min.x, max.y, max.z\n\t\t2: min.x, min.y, max.z\n\t\t3: max.x, min.y, max.z\n\t\t4: max.x, max.y, min.z\n\t\t5: min.x, max.y, min.z\n\t\t6: min.x, min.y, min.z\n\t\t7: max.x, min.y, min.z\n\t\t*/\n\n\t\tconst position = this.geometry.attributes.position;\n\t\tconst array = position.array;\n\n\t\tarray[ 0 ] = max.x; array[ 1 ] = max.y; array[ 2 ] = max.z;\n\t\tarray[ 3 ] = min.x; array[ 4 ] = max.y; array[ 5 ] = max.z;\n\t\tarray[ 6 ] = min.x; array[ 7 ] = min.y; array[ 8 ] = max.z;\n\t\tarray[ 9 ] = max.x; array[ 10 ] = min.y; array[ 11 ] = max.z;\n\t\tarray[ 12 ] = max.x; array[ 13 ] = max.y; array[ 14 ] = min.z;\n\t\tarray[ 15 ] = min.x; array[ 16 ] = max.y; array[ 17 ] = min.z;\n\t\tarray[ 18 ] = min.x; array[ 19 ] = min.y; array[ 20 ] = min.z;\n\t\tarray[ 21 ] = max.x; array[ 22 ] = min.y; array[ 23 ] = min.z;\n\n\t\tposition.needsUpdate = true;\n\n\t\tthis.geometry.computeBoundingSphere();\n\n\n\t}\n\n\tsetFromObject( object ) {\n\n\t\tthis.object = object;\n\t\tthis.update();\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tLineSegments.prototype.copy.call( this, source );\n\n\t\tthis.object = source.object;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass Box3Helper extends LineSegments {\n\n\tconstructor( box, color = 0xffff00 ) {\n\n\t\tconst indices = 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 ] );\n\n\t\tconst positions = [ 1, 1, 1, - 1, 1, 1, - 1, - 1, 1, 1, - 1, 1, 1, 1, - 1, - 1, 1, - 1, - 1, - 1, - 1, 1, - 1, - 1 ];\n\n\t\tconst geometry = new BufferGeometry();\n\n\t\tgeometry.setIndex( new BufferAttribute( indices, 1 ) );\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );\n\n\t\tsuper( geometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\n\t\tthis.box = box;\n\n\t\tthis.type = 'Box3Helper';\n\n\t\tthis.geometry.computeBoundingSphere();\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tconst box = this.box;\n\n\t\tif ( box.isEmpty() ) return;\n\n\t\tbox.getCenter( this.position );\n\n\t\tbox.getSize( this.scale );\n\n\t\tthis.scale.multiplyScalar( 0.5 );\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t}\n\n}\n\nclass PlaneHelper extends Line {\n\n\tconstructor( plane, size = 1, hex = 0xffff00 ) {\n\n\t\tconst color = hex;\n\n\t\tconst positions = [ 1, - 1, 1, - 1, 1, 1, - 1, - 1, 1, 1, 1, 1, - 1, 1, 1, - 1, - 1, 1, 1, - 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0 ];\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );\n\t\tgeometry.computeBoundingSphere();\n\n\t\tsuper( geometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\n\t\tthis.type = 'PlaneHelper';\n\n\t\tthis.plane = plane;\n\n\t\tthis.size = size;\n\n\t\tconst positions2 = [ 1, 1, 1, - 1, 1, 1, - 1, - 1, 1, 1, 1, 1, - 1, - 1, 1, 1, - 1, 1 ];\n\n\t\tconst geometry2 = new BufferGeometry();\n\t\tgeometry2.setAttribute( 'position', new Float32BufferAttribute( positions2, 3 ) );\n\t\tgeometry2.computeBoundingSphere();\n\n\t\tthis.add( new Mesh( geometry2, new MeshBasicMaterial( { color: color, opacity: 0.2, transparent: true, depthWrite: false, toneMapped: false } ) ) );\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tlet scale = - this.plane.constant;\n\n\t\tif ( Math.abs( scale ) < 1e-8 ) scale = 1e-8; // sign does not matter\n\n\t\tthis.scale.set( 0.5 * this.size, 0.5 * this.size, scale );\n\n\t\tthis.children[ 0 ].material.side = ( scale < 0 ) ? BackSide : FrontSide; // renderer flips side when determinant < 0; flipping not wanted here\n\n\t\tthis.lookAt( this.plane.normal );\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t}\n\n}\n\nconst _axis = /*@__PURE__*/ new Vector3();\nlet _lineGeometry, _coneGeometry;\n\nclass ArrowHelper extends Object3D {\n\n\t// dir is assumed to be normalized\n\n\tconstructor( dir = new Vector3( 0, 0, 1 ), origin = new Vector3( 0, 0, 0 ), length = 1, color = 0xffff00, headLength = length * 0.2, headWidth = headLength * 0.2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'ArrowHelper';\n\n\t\tif ( _lineGeometry === undefined ) {\n\n\t\t\t_lineGeometry = new BufferGeometry();\n\t\t\t_lineGeometry.setAttribute( 'position', new Float32BufferAttribute( [ 0, 0, 0, 0, 1, 0 ], 3 ) );\n\n\t\t\t_coneGeometry = new CylinderGeometry( 0, 0.5, 1, 5, 1 );\n\t\t\t_coneGeometry.translate( 0, - 0.5, 0 );\n\n\t\t}\n\n\t\tthis.position.copy( origin );\n\n\t\tthis.line = new Line( _lineGeometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\t\tthis.line.matrixAutoUpdate = false;\n\t\tthis.add( this.line );\n\n\t\tthis.cone = new Mesh( _coneGeometry, new MeshBasicMaterial( { color: color, toneMapped: false } ) );\n\t\tthis.cone.matrixAutoUpdate = false;\n\t\tthis.add( this.cone );\n\n\t\tthis.setDirection( dir );\n\t\tthis.setLength( length, headLength, headWidth );\n\n\t}\n\n\tsetDirection( dir ) {\n\n\t\t// dir is assumed to be normalized\n\n\t\tif ( dir.y > 0.99999 ) {\n\n\t\t\tthis.quaternion.set( 0, 0, 0, 1 );\n\n\t\t} else if ( dir.y < - 0.99999 ) {\n\n\t\t\tthis.quaternion.set( 1, 0, 0, 0 );\n\n\t\t} else {\n\n\t\t\t_axis.set( dir.z, 0, - dir.x ).normalize();\n\n\t\t\tconst radians = Math.acos( dir.y );\n\n\t\t\tthis.quaternion.setFromAxisAngle( _axis, radians );\n\n\t\t}\n\n\t}\n\n\tsetLength( length, headLength = length * 0.2, headWidth = headLength * 0.2 ) {\n\n\t\tthis.line.scale.set( 1, Math.max( 0.0001, length - headLength ), 1 ); // see #17458\n\t\tthis.line.updateMatrix();\n\n\t\tthis.cone.scale.set( headWidth, headLength, headWidth );\n\t\tthis.cone.position.y = length;\n\t\tthis.cone.updateMatrix();\n\n\t}\n\n\tsetColor( color ) {\n\n\t\tthis.line.material.color.set( color );\n\t\tthis.cone.material.color.set( color );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source, false );\n\n\t\tthis.line.copy( source.line );\n\t\tthis.cone.copy( source.cone );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass AxesHelper extends LineSegments {\n\n\tconstructor( size = 1 ) {\n\n\t\tconst vertices = [\n\t\t\t0, 0, 0,\tsize, 0, 0,\n\t\t\t0, 0, 0,\t0, size, 0,\n\t\t\t0, 0, 0,\t0, 0, size\n\t\t];\n\n\t\tconst colors = [\n\t\t\t1, 0, 0,\t1, 0.6, 0,\n\t\t\t0, 1, 0,\t0.6, 1, 0,\n\t\t\t0, 0, 1,\t0, 0.6, 1\n\t\t];\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'AxesHelper';\n\n\t}\n\n\tsetColors( xAxisColor, yAxisColor, zAxisColor ) {\n\n\t\tconst color = new Color();\n\t\tconst array = this.geometry.attributes.color.array;\n\n\t\tcolor.set( xAxisColor );\n\t\tcolor.toArray( array, 0 );\n\t\tcolor.toArray( array, 3 );\n\n\t\tcolor.set( yAxisColor );\n\t\tcolor.toArray( array, 6 );\n\t\tcolor.toArray( array, 9 );\n\n\t\tcolor.set( zAxisColor );\n\t\tcolor.toArray( array, 12 );\n\t\tcolor.toArray( array, 15 );\n\n\t\tthis.geometry.attributes.color.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nclass ShapePath {\n\n\tconstructor() {\n\n\t\tthis.type = 'ShapePath';\n\n\t\tthis.color = new Color();\n\n\t\tthis.subPaths = [];\n\t\tthis.currentPath = null;\n\n\t}\n\n\tmoveTo( x, y ) {\n\n\t\tthis.currentPath = new Path();\n\t\tthis.subPaths.push( this.currentPath );\n\t\tthis.currentPath.moveTo( x, y );\n\n\t\treturn this;\n\n\t}\n\n\tlineTo( x, y ) {\n\n\t\tthis.currentPath.lineTo( x, y );\n\n\t\treturn this;\n\n\t}\n\n\tquadraticCurveTo( aCPx, aCPy, aX, aY ) {\n\n\t\tthis.currentPath.quadraticCurveTo( aCPx, aCPy, aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tbezierCurveTo( aCP1x, aCP1y, aCP2x, aCP2y, aX, aY ) {\n\n\t\tthis.currentPath.bezierCurveTo( aCP1x, aCP1y, aCP2x, aCP2y, aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tsplineThru( pts ) {\n\n\t\tthis.currentPath.splineThru( pts );\n\n\t\treturn this;\n\n\t}\n\n\ttoShapes( isCCW, noHoles ) {\n\n\t\tfunction toShapesNoHoles( inSubpaths ) {\n\n\t\t\tconst shapes = [];\n\n\t\t\tfor ( let i = 0, l = inSubpaths.length; i < l; i ++ ) {\n\n\t\t\t\tconst tmpPath = inSubpaths[ i ];\n\n\t\t\t\tconst tmpShape = new Shape();\n\t\t\t\ttmpShape.curves = tmpPath.curves;\n\n\t\t\t\tshapes.push( tmpShape );\n\n\t\t\t}\n\n\t\t\treturn shapes;\n\n\t\t}\n\n\t\tfunction isPointInsidePolygon( inPt, inPolygon ) {\n\n\t\t\tconst polyLen = inPolygon.length;\n\n\t\t\t// inPt on polygon contour => immediate success or\n\t\t\t// toggling of inside/outside at every single! intersection point of an edge\n\t\t\t// with the horizontal line through inPt, left of inPt\n\t\t\t// not counting lowerY endpoints of edges and whole edges on that line\n\t\t\tlet inside = false;\n\t\t\tfor ( let p = polyLen - 1, q = 0; q < polyLen; p = q ++ ) {\n\n\t\t\t\tlet edgeLowPt = inPolygon[ p ];\n\t\t\t\tlet edgeHighPt = inPolygon[ q ];\n\n\t\t\t\tlet edgeDx = edgeHighPt.x - edgeLowPt.x;\n\t\t\t\tlet edgeDy = edgeHighPt.y - edgeLowPt.y;\n\n\t\t\t\tif ( Math.abs( edgeDy ) > Number.EPSILON ) {\n\n\t\t\t\t\t// not parallel\n\t\t\t\t\tif ( edgeDy < 0 ) {\n\n\t\t\t\t\t\tedgeLowPt = inPolygon[ q ]; edgeDx = - edgeDx;\n\t\t\t\t\t\tedgeHighPt = inPolygon[ p ]; edgeDy = - edgeDy;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ( inPt.y < edgeLowPt.y ) || ( inPt.y > edgeHighPt.y ) ) \t\tcontinue;\n\n\t\t\t\t\tif ( inPt.y === edgeLowPt.y ) {\n\n\t\t\t\t\t\tif ( inPt.x === edgeLowPt.x )\t\treturn\ttrue;\t\t// inPt is on contour ?\n\t\t\t\t\t\t// continue;\t\t\t\t// no intersection or edgeLowPt => doesn't count !!!\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst perpEdge = edgeDy * ( inPt.x - edgeLowPt.x ) - edgeDx * ( inPt.y - edgeLowPt.y );\n\t\t\t\t\t\tif ( perpEdge === 0 )\t\t\t\treturn\ttrue;\t\t// inPt is on contour ?\n\t\t\t\t\t\tif ( perpEdge < 0 ) \t\t\t\tcontinue;\n\t\t\t\t\t\tinside = ! inside;\t\t// true intersection left of inPt\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// parallel or collinear\n\t\t\t\t\tif ( inPt.y !== edgeLowPt.y ) \t\tcontinue;\t\t\t// parallel\n\t\t\t\t\t// edge lies on the same horizontal line as inPt\n\t\t\t\t\tif ( ( ( edgeHighPt.x <= inPt.x ) && ( inPt.x <= edgeLowPt.x ) ) ||\n\t\t\t\t\t\t ( ( edgeLowPt.x <= inPt.x ) && ( inPt.x <= edgeHighPt.x ) ) )\t\treturn\ttrue;\t// inPt: Point on contour !\n\t\t\t\t\t// continue;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn\tinside;\n\n\t\t}\n\n\t\tconst isClockWise = ShapeUtils.isClockWise;\n\n\t\tconst subPaths = this.subPaths;\n\t\tif ( subPaths.length === 0 ) return [];\n\n\t\tif ( noHoles === true )\treturn\ttoShapesNoHoles( subPaths );\n\n\n\t\tlet solid, tmpPath, tmpShape;\n\t\tconst shapes = [];\n\n\t\tif ( subPaths.length === 1 ) {\n\n\t\t\ttmpPath = subPaths[ 0 ];\n\t\t\ttmpShape = new Shape();\n\t\t\ttmpShape.curves = tmpPath.curves;\n\t\t\tshapes.push( tmpShape );\n\t\t\treturn shapes;\n\n\t\t}\n\n\t\tlet holesFirst = ! isClockWise( subPaths[ 0 ].getPoints() );\n\t\tholesFirst = isCCW ? ! holesFirst : holesFirst;\n\n\t\t// console.log(\"Holes first\", holesFirst);\n\n\t\tconst betterShapeHoles = [];\n\t\tconst newShapes = [];\n\t\tlet newShapeHoles = [];\n\t\tlet mainIdx = 0;\n\t\tlet tmpPoints;\n\n\t\tnewShapes[ mainIdx ] = undefined;\n\t\tnewShapeHoles[ mainIdx ] = [];\n\n\t\tfor ( let i = 0, l = subPaths.length; i < l; i ++ ) {\n\n\t\t\ttmpPath = subPaths[ i ];\n\t\t\ttmpPoints = tmpPath.getPoints();\n\t\t\tsolid = isClockWise( tmpPoints );\n\t\t\tsolid = isCCW ? ! solid : solid;\n\n\t\t\tif ( solid ) {\n\n\t\t\t\tif ( ( ! holesFirst ) && ( newShapes[ mainIdx ] ) )\tmainIdx ++;\n\n\t\t\t\tnewShapes[ mainIdx ] = { s: new Shape(), p: tmpPoints };\n\t\t\t\tnewShapes[ mainIdx ].s.curves = tmpPath.curves;\n\n\t\t\t\tif ( holesFirst )\tmainIdx ++;\n\t\t\t\tnewShapeHoles[ mainIdx ] = [];\n\n\t\t\t\t//console.log('cw', i);\n\n\t\t\t} else {\n\n\t\t\t\tnewShapeHoles[ mainIdx ].push( { h: tmpPath, p: tmpPoints[ 0 ] } );\n\n\t\t\t\t//console.log('ccw', i);\n\n\t\t\t}\n\n\t\t}\n\n\t\t// only Holes? -> probably all Shapes with wrong orientation\n\t\tif ( ! newShapes[ 0 ] )\treturn\ttoShapesNoHoles( subPaths );\n\n\n\t\tif ( newShapes.length > 1 ) {\n\n\t\t\tlet ambiguous = false;\n\t\t\tconst toChange = [];\n\n\t\t\tfor ( let sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx ++ ) {\n\n\t\t\t\tbetterShapeHoles[ sIdx ] = [];\n\n\t\t\t}\n\n\t\t\tfor ( let sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx ++ ) {\n\n\t\t\t\tconst sho = newShapeHoles[ sIdx ];\n\n\t\t\t\tfor ( let hIdx = 0; hIdx < sho.length; hIdx ++ ) {\n\n\t\t\t\t\tconst ho = sho[ hIdx ];\n\t\t\t\t\tlet hole_unassigned = true;\n\n\t\t\t\t\tfor ( let s2Idx = 0; s2Idx < newShapes.length; s2Idx ++ ) {\n\n\t\t\t\t\t\tif ( isPointInsidePolygon( ho.p, newShapes[ s2Idx ].p ) ) {\n\n\t\t\t\t\t\t\tif ( sIdx !== s2Idx )\ttoChange.push( { froms: sIdx, tos: s2Idx, hole: hIdx } );\n\t\t\t\t\t\t\tif ( hole_unassigned ) {\n\n\t\t\t\t\t\t\t\thole_unassigned = false;\n\t\t\t\t\t\t\t\tbetterShapeHoles[ s2Idx ].push( ho );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tambiguous = true;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( hole_unassigned ) {\n\n\t\t\t\t\t\tbetterShapeHoles[ sIdx ].push( ho );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t// console.log(\"ambiguous: \", ambiguous);\n\n\t\t\tif ( toChange.length > 0 ) {\n\n\t\t\t\t// console.log(\"to change: \", toChange);\n\t\t\t\tif ( ! ambiguous )\tnewShapeHoles = betterShapeHoles;\n\n\t\t\t}\n\n\t\t}\n\n\t\tlet tmpHoles;\n\n\t\tfor ( let i = 0, il = newShapes.length; i < il; i ++ ) {\n\n\t\t\ttmpShape = newShapes[ i ].s;\n\t\t\tshapes.push( tmpShape );\n\t\t\ttmpHoles = newShapeHoles[ i ];\n\n\t\t\tfor ( let j = 0, jl = tmpHoles.length; j < jl; j ++ ) {\n\n\t\t\t\ttmpShape.holes.push( tmpHoles[ j ].h );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//console.log(\"shape\", shapes);\n\n\t\treturn shapes;\n\n\t}\n\n}\n\nconst _floatView = new Float32Array( 1 );\nconst _int32View = new Int32Array( _floatView.buffer );\n\nclass DataUtils {\n\n\t// Converts float32 to float16 (stored as uint16 value).\n\n\tstatic toHalfFloat( val ) {\n\n\t\tif ( val > 65504 ) {\n\n\t\t\tconsole.warn( 'THREE.DataUtils.toHalfFloat(): value exceeds 65504.' );\n\n\t\t\tval = 65504; // maximum representable value in float16\n\n\t\t}\n\n\t\t// Source: http://gamedev.stackexchange.com/questions/17326/conversion-of-a-number-from-single-precision-floating-point-representation-to-a/17410#17410\n\n\t\t/* This method is faster than the OpenEXR implementation (very often\n\t\t* used, eg. in Ogre), with the additional benefit of rounding, inspired\n\t\t* by James Tursa?s half-precision code. */\n\n\t\t_floatView[ 0 ] = val;\n\t\tconst x = _int32View[ 0 ];\n\n\t\tlet bits = ( x >> 16 ) & 0x8000; /* Get the sign */\n\t\tlet m = ( x >> 12 ) & 0x07ff; /* Keep one extra bit for rounding */\n\t\tconst e = ( x >> 23 ) & 0xff; /* Using int is faster here */\n\n\t\t/* If zero, or denormal, or exponent underflows too much for a denormal\n\t\t\t* half, return signed zero. */\n\t\tif ( e < 103 ) return bits;\n\n\t\t/* If NaN, return NaN. If Inf or exponent overflow, return Inf. */\n\t\tif ( e > 142 ) {\n\n\t\t\tbits |= 0x7c00;\n\t\t\t/* If exponent was 0xff and one mantissa bit was set, it means NaN,\n\t\t\t\t\t\t* not Inf, so make sure we set one mantissa bit too. */\n\t\t\tbits |= ( ( e == 255 ) ? 0 : 1 ) && ( x & 0x007fffff );\n\t\t\treturn bits;\n\n\t\t}\n\n\t\t/* If exponent underflows but not too much, return a denormal */\n\t\tif ( e < 113 ) {\n\n\t\t\tm |= 0x0800;\n\t\t\t/* Extra rounding may overflow and set mantissa to 0 and exponent\n\t\t\t\t* to 1, which is OK. */\n\t\t\tbits |= ( m >> ( 114 - e ) ) + ( ( m >> ( 113 - e ) ) & 1 );\n\t\t\treturn bits;\n\n\t\t}\n\n\t\tbits |= ( ( e - 112 ) << 10 ) | ( m >> 1 );\n\t\t/* Extra rounding. An overflow will set mantissa to 0 and increment\n\t\t\t* the exponent, which is OK. */\n\t\tbits += m & 1;\n\t\treturn bits;\n\n\t}\n\n}\n\nconst LineStrip = 0;\nconst LinePieces = 1;\nconst NoColors = 0;\nconst FaceColors = 1;\nconst VertexColors = 2;\n\nfunction MeshFaceMaterial( materials ) {\n\n\tconsole.warn( 'THREE.MeshFaceMaterial has been removed. Use an Array instead.' );\n\treturn materials;\n\n}\n\nfunction MultiMaterial( materials = [] ) {\n\n\tconsole.warn( 'THREE.MultiMaterial has been removed. Use an Array instead.' );\n\tmaterials.isMultiMaterial = true;\n\tmaterials.materials = materials;\n\tmaterials.clone = function () {\n\n\t\treturn materials.slice();\n\n\t};\n\n\treturn materials;\n\n}\n\nfunction PointCloud( geometry, material ) {\n\n\tconsole.warn( 'THREE.PointCloud has been renamed to THREE.Points.' );\n\treturn new Points( geometry, material );\n\n}\n\nfunction Particle( material ) {\n\n\tconsole.warn( 'THREE.Particle has been renamed to THREE.Sprite.' );\n\treturn new Sprite( material );\n\n}\n\nfunction ParticleSystem( geometry, material ) {\n\n\tconsole.warn( 'THREE.ParticleSystem has been renamed to THREE.Points.' );\n\treturn new Points( geometry, material );\n\n}\n\nfunction PointCloudMaterial( parameters ) {\n\n\tconsole.warn( 'THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.' );\n\treturn new PointsMaterial( parameters );\n\n}\n\nfunction ParticleBasicMaterial( parameters ) {\n\n\tconsole.warn( 'THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.' );\n\treturn new PointsMaterial( parameters );\n\n}\n\nfunction ParticleSystemMaterial( parameters ) {\n\n\tconsole.warn( 'THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.' );\n\treturn new PointsMaterial( parameters );\n\n}\n\nfunction Vertex( x, y, z ) {\n\n\tconsole.warn( 'THREE.Vertex has been removed. Use THREE.Vector3 instead.' );\n\treturn new Vector3( x, y, z );\n\n}\n\n//\n\nfunction DynamicBufferAttribute( array, itemSize ) {\n\n\tconsole.warn( 'THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setUsage( THREE.DynamicDrawUsage ) instead.' );\n\treturn new BufferAttribute( array, itemSize ).setUsage( DynamicDrawUsage );\n\n}\n\nfunction Int8Attribute( array, itemSize ) {\n\n\tconsole.warn( 'THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead.' );\n\treturn new Int8BufferAttribute( array, itemSize );\n\n}\n\nfunction Uint8Attribute( array, itemSize ) {\n\n\tconsole.warn( 'THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead.' );\n\treturn new Uint8BufferAttribute( array, itemSize );\n\n}\n\nfunction Uint8ClampedAttribute( array, itemSize ) {\n\n\tconsole.warn( 'THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead.' );\n\treturn new Uint8ClampedBufferAttribute( array, itemSize );\n\n}\n\nfunction Int16Attribute( array, itemSize ) {\n\n\tconsole.warn( 'THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead.' );\n\treturn new Int16BufferAttribute( array, itemSize );\n\n}\n\nfunction Uint16Attribute( array, itemSize ) {\n\n\tconsole.warn( 'THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.' );\n\treturn new Uint16BufferAttribute( array, itemSize );\n\n}\n\nfunction Int32Attribute( array, itemSize ) {\n\n\tconsole.warn( 'THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead.' );\n\treturn new Int32BufferAttribute( array, itemSize );\n\n}\n\nfunction Uint32Attribute( array, itemSize ) {\n\n\tconsole.warn( 'THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead.' );\n\treturn new Uint32BufferAttribute( array, itemSize );\n\n}\n\nfunction Float32Attribute( array, itemSize ) {\n\n\tconsole.warn( 'THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead.' );\n\treturn new Float32BufferAttribute( array, itemSize );\n\n}\n\nfunction Float64Attribute( array, itemSize ) {\n\n\tconsole.warn( 'THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead.' );\n\treturn new Float64BufferAttribute( array, itemSize );\n\n}\n\n//\n\nCurve.create = function ( construct, getPoint ) {\n\n\tconsole.log( 'THREE.Curve.create() has been deprecated' );\n\n\tconstruct.prototype = Object.create( Curve.prototype );\n\tconstruct.prototype.constructor = construct;\n\tconstruct.prototype.getPoint = getPoint;\n\n\treturn construct;\n\n};\n\n//\n\nPath.prototype.fromPoints = function ( points ) {\n\n\tconsole.warn( 'THREE.Path: .fromPoints() has been renamed to .setFromPoints().' );\n\treturn this.setFromPoints( points );\n\n};\n\n//\n\nfunction AxisHelper( size ) {\n\n\tconsole.warn( 'THREE.AxisHelper has been renamed to THREE.AxesHelper.' );\n\treturn new AxesHelper( size );\n\n}\n\nfunction BoundingBoxHelper( object, color ) {\n\n\tconsole.warn( 'THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead.' );\n\treturn new BoxHelper( object, color );\n\n}\n\nfunction EdgesHelper( object, hex ) {\n\n\tconsole.warn( 'THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead.' );\n\treturn new LineSegments( new EdgesGeometry( object.geometry ), new LineBasicMaterial( { color: hex !== undefined ? hex : 0xffffff } ) );\n\n}\n\nGridHelper.prototype.setColors = function () {\n\n\tconsole.error( 'THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.' );\n\n};\n\nSkeletonHelper.prototype.update = function () {\n\n\tconsole.error( 'THREE.SkeletonHelper: update() no longer needs to be called.' );\n\n};\n\nfunction WireframeHelper( object, hex ) {\n\n\tconsole.warn( 'THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.' );\n\treturn new LineSegments( new WireframeGeometry( object.geometry ), new LineBasicMaterial( { color: hex !== undefined ? hex : 0xffffff } ) );\n\n}\n\n//\n\nLoader.prototype.extractUrlBase = function ( url ) {\n\n\tconsole.warn( 'THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.' );\n\treturn LoaderUtils.extractUrlBase( url );\n\n};\n\nLoader.Handlers = {\n\n\tadd: function ( /* regex, loader */ ) {\n\n\t\tconsole.error( 'THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.' );\n\n\t},\n\n\tget: function ( /* file */ ) {\n\n\t\tconsole.error( 'THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.' );\n\n\t}\n\n};\n\nfunction XHRLoader( manager ) {\n\n\tconsole.warn( 'THREE.XHRLoader has been renamed to THREE.FileLoader.' );\n\treturn new FileLoader( manager );\n\n}\n\nfunction BinaryTextureLoader( manager ) {\n\n\tconsole.warn( 'THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader.' );\n\treturn new DataTextureLoader( manager );\n\n}\n\n//\n\nBox2.prototype.center = function ( optionalTarget ) {\n\n\tconsole.warn( 'THREE.Box2: .center() has been renamed to .getCenter().' );\n\treturn this.getCenter( optionalTarget );\n\n};\n\nBox2.prototype.empty = function () {\n\n\tconsole.warn( 'THREE.Box2: .empty() has been renamed to .isEmpty().' );\n\treturn this.isEmpty();\n\n};\n\nBox2.prototype.isIntersectionBox = function ( box ) {\n\n\tconsole.warn( 'THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().' );\n\treturn this.intersectsBox( box );\n\n};\n\nBox2.prototype.size = function ( optionalTarget ) {\n\n\tconsole.warn( 'THREE.Box2: .size() has been renamed to .getSize().' );\n\treturn this.getSize( optionalTarget );\n\n};\n\n//\n\nBox3.prototype.center = function ( optionalTarget ) {\n\n\tconsole.warn( 'THREE.Box3: .center() has been renamed to .getCenter().' );\n\treturn this.getCenter( optionalTarget );\n\n};\n\nBox3.prototype.empty = function () {\n\n\tconsole.warn( 'THREE.Box3: .empty() has been renamed to .isEmpty().' );\n\treturn this.isEmpty();\n\n};\n\nBox3.prototype.isIntersectionBox = function ( box ) {\n\n\tconsole.warn( 'THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().' );\n\treturn this.intersectsBox( box );\n\n};\n\nBox3.prototype.isIntersectionSphere = function ( sphere ) {\n\n\tconsole.warn( 'THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().' );\n\treturn this.intersectsSphere( sphere );\n\n};\n\nBox3.prototype.size = function ( optionalTarget ) {\n\n\tconsole.warn( 'THREE.Box3: .size() has been renamed to .getSize().' );\n\treturn this.getSize( optionalTarget );\n\n};\n\n//\n\nSphere.prototype.empty = function () {\n\n\tconsole.warn( 'THREE.Sphere: .empty() has been renamed to .isEmpty().' );\n\treturn this.isEmpty();\n\n};\n\n//\n\nFrustum.prototype.setFromMatrix = function ( m ) {\n\n\tconsole.warn( 'THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix().' );\n\treturn this.setFromProjectionMatrix( m );\n\n};\n\n//\n\nLine3.prototype.center = function ( optionalTarget ) {\n\n\tconsole.warn( 'THREE.Line3: .center() has been renamed to .getCenter().' );\n\treturn this.getCenter( optionalTarget );\n\n};\n\n//\n\nMatrix3.prototype.flattenToArrayOffset = function ( array, offset ) {\n\n\tconsole.warn( 'THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.' );\n\treturn this.toArray( array, offset );\n\n};\n\nMatrix3.prototype.multiplyVector3 = function ( vector ) {\n\n\tconsole.warn( 'THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.' );\n\treturn vector.applyMatrix3( this );\n\n};\n\nMatrix3.prototype.multiplyVector3Array = function ( /* a */ ) {\n\n\tconsole.error( 'THREE.Matrix3: .multiplyVector3Array() has been removed.' );\n\n};\n\nMatrix3.prototype.applyToBufferAttribute = function ( attribute ) {\n\n\tconsole.warn( 'THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead.' );\n\treturn attribute.applyMatrix3( this );\n\n};\n\nMatrix3.prototype.applyToVector3Array = function ( /* array, offset, length */ ) {\n\n\tconsole.error( 'THREE.Matrix3: .applyToVector3Array() has been removed.' );\n\n};\n\nMatrix3.prototype.getInverse = function ( matrix ) {\n\n\tconsole.warn( 'THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.' );\n\treturn this.copy( matrix ).invert();\n\n};\n\n//\n\nMatrix4.prototype.extractPosition = function ( m ) {\n\n\tconsole.warn( 'THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().' );\n\treturn this.copyPosition( m );\n\n};\n\nMatrix4.prototype.flattenToArrayOffset = function ( array, offset ) {\n\n\tconsole.warn( 'THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.' );\n\treturn this.toArray( array, offset );\n\n};\n\nMatrix4.prototype.getPosition = function () {\n\n\tconsole.warn( 'THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.' );\n\treturn new Vector3().setFromMatrixColumn( this, 3 );\n\n};\n\nMatrix4.prototype.setRotationFromQuaternion = function ( q ) {\n\n\tconsole.warn( 'THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().' );\n\treturn this.makeRotationFromQuaternion( q );\n\n};\n\nMatrix4.prototype.multiplyToArray = function () {\n\n\tconsole.warn( 'THREE.Matrix4: .multiplyToArray() has been removed.' );\n\n};\n\nMatrix4.prototype.multiplyVector3 = function ( vector ) {\n\n\tconsole.warn( 'THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.' );\n\treturn vector.applyMatrix4( this );\n\n};\n\nMatrix4.prototype.multiplyVector4 = function ( vector ) {\n\n\tconsole.warn( 'THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.' );\n\treturn vector.applyMatrix4( this );\n\n};\n\nMatrix4.prototype.multiplyVector3Array = function ( /* a */ ) {\n\n\tconsole.error( 'THREE.Matrix4: .multiplyVector3Array() has been removed.' );\n\n};\n\nMatrix4.prototype.rotateAxis = function ( v ) {\n\n\tconsole.warn( 'THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.' );\n\tv.transformDirection( this );\n\n};\n\nMatrix4.prototype.crossVector = function ( vector ) {\n\n\tconsole.warn( 'THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.' );\n\treturn vector.applyMatrix4( this );\n\n};\n\nMatrix4.prototype.translate = function () {\n\n\tconsole.error( 'THREE.Matrix4: .translate() has been removed.' );\n\n};\n\nMatrix4.prototype.rotateX = function () {\n\n\tconsole.error( 'THREE.Matrix4: .rotateX() has been removed.' );\n\n};\n\nMatrix4.prototype.rotateY = function () {\n\n\tconsole.error( 'THREE.Matrix4: .rotateY() has been removed.' );\n\n};\n\nMatrix4.prototype.rotateZ = function () {\n\n\tconsole.error( 'THREE.Matrix4: .rotateZ() has been removed.' );\n\n};\n\nMatrix4.prototype.rotateByAxis = function () {\n\n\tconsole.error( 'THREE.Matrix4: .rotateByAxis() has been removed.' );\n\n};\n\nMatrix4.prototype.applyToBufferAttribute = function ( attribute ) {\n\n\tconsole.warn( 'THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead.' );\n\treturn attribute.applyMatrix4( this );\n\n};\n\nMatrix4.prototype.applyToVector3Array = function ( /* array, offset, length */ ) {\n\n\tconsole.error( 'THREE.Matrix4: .applyToVector3Array() has been removed.' );\n\n};\n\nMatrix4.prototype.makeFrustum = function ( left, right, bottom, top, near, far ) {\n\n\tconsole.warn( 'THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.' );\n\treturn this.makePerspective( left, right, top, bottom, near, far );\n\n};\n\nMatrix4.prototype.getInverse = function ( matrix ) {\n\n\tconsole.warn( 'THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.' );\n\treturn this.copy( matrix ).invert();\n\n};\n\n//\n\nPlane.prototype.isIntersectionLine = function ( line ) {\n\n\tconsole.warn( 'THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().' );\n\treturn this.intersectsLine( line );\n\n};\n\n//\n\nQuaternion.prototype.multiplyVector3 = function ( vector ) {\n\n\tconsole.warn( 'THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.' );\n\treturn vector.applyQuaternion( this );\n\n};\n\nQuaternion.prototype.inverse = function ( ) {\n\n\tconsole.warn( 'THREE.Quaternion: .inverse() has been renamed to invert().' );\n\treturn this.invert();\n\n};\n\n//\n\nRay.prototype.isIntersectionBox = function ( box ) {\n\n\tconsole.warn( 'THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().' );\n\treturn this.intersectsBox( box );\n\n};\n\nRay.prototype.isIntersectionPlane = function ( plane ) {\n\n\tconsole.warn( 'THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().' );\n\treturn this.intersectsPlane( plane );\n\n};\n\nRay.prototype.isIntersectionSphere = function ( sphere ) {\n\n\tconsole.warn( 'THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().' );\n\treturn this.intersectsSphere( sphere );\n\n};\n\n//\n\nTriangle.prototype.area = function () {\n\n\tconsole.warn( 'THREE.Triangle: .area() has been renamed to .getArea().' );\n\treturn this.getArea();\n\n};\n\nTriangle.prototype.barycoordFromPoint = function ( point, target ) {\n\n\tconsole.warn( 'THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().' );\n\treturn this.getBarycoord( point, target );\n\n};\n\nTriangle.prototype.midpoint = function ( target ) {\n\n\tconsole.warn( 'THREE.Triangle: .midpoint() has been renamed to .getMidpoint().' );\n\treturn this.getMidpoint( target );\n\n};\n\nTriangle.prototypenormal = function ( target ) {\n\n\tconsole.warn( 'THREE.Triangle: .normal() has been renamed to .getNormal().' );\n\treturn this.getNormal( target );\n\n};\n\nTriangle.prototype.plane = function ( target ) {\n\n\tconsole.warn( 'THREE.Triangle: .plane() has been renamed to .getPlane().' );\n\treturn this.getPlane( target );\n\n};\n\nTriangle.barycoordFromPoint = function ( point, a, b, c, target ) {\n\n\tconsole.warn( 'THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().' );\n\treturn Triangle.getBarycoord( point, a, b, c, target );\n\n};\n\nTriangle.normal = function ( a, b, c, target ) {\n\n\tconsole.warn( 'THREE.Triangle: .normal() has been renamed to .getNormal().' );\n\treturn Triangle.getNormal( a, b, c, target );\n\n};\n\n//\n\nShape.prototype.extractAllPoints = function ( divisions ) {\n\n\tconsole.warn( 'THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.' );\n\treturn this.extractPoints( divisions );\n\n};\n\nShape.prototype.extrude = function ( options ) {\n\n\tconsole.warn( 'THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.' );\n\treturn new ExtrudeGeometry( this, options );\n\n};\n\nShape.prototype.makeGeometry = function ( options ) {\n\n\tconsole.warn( 'THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.' );\n\treturn new ShapeGeometry( this, options );\n\n};\n\n//\n\nVector2.prototype.fromAttribute = function ( attribute, index, offset ) {\n\n\tconsole.warn( 'THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().' );\n\treturn this.fromBufferAttribute( attribute, index, offset );\n\n};\n\nVector2.prototype.distanceToManhattan = function ( v ) {\n\n\tconsole.warn( 'THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo().' );\n\treturn this.manhattanDistanceTo( v );\n\n};\n\nVector2.prototype.lengthManhattan = function () {\n\n\tconsole.warn( 'THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength().' );\n\treturn this.manhattanLength();\n\n};\n\n//\n\nVector3.prototype.setEulerFromRotationMatrix = function () {\n\n\tconsole.error( 'THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.' );\n\n};\n\nVector3.prototype.setEulerFromQuaternion = function () {\n\n\tconsole.error( 'THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.' );\n\n};\n\nVector3.prototype.getPositionFromMatrix = function ( m ) {\n\n\tconsole.warn( 'THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().' );\n\treturn this.setFromMatrixPosition( m );\n\n};\n\nVector3.prototype.getScaleFromMatrix = function ( m ) {\n\n\tconsole.warn( 'THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().' );\n\treturn this.setFromMatrixScale( m );\n\n};\n\nVector3.prototype.getColumnFromMatrix = function ( index, matrix ) {\n\n\tconsole.warn( 'THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().' );\n\treturn this.setFromMatrixColumn( matrix, index );\n\n};\n\nVector3.prototype.applyProjection = function ( m ) {\n\n\tconsole.warn( 'THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.' );\n\treturn this.applyMatrix4( m );\n\n};\n\nVector3.prototype.fromAttribute = function ( attribute, index, offset ) {\n\n\tconsole.warn( 'THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute().' );\n\treturn this.fromBufferAttribute( attribute, index, offset );\n\n};\n\nVector3.prototype.distanceToManhattan = function ( v ) {\n\n\tconsole.warn( 'THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo().' );\n\treturn this.manhattanDistanceTo( v );\n\n};\n\nVector3.prototype.lengthManhattan = function () {\n\n\tconsole.warn( 'THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength().' );\n\treturn this.manhattanLength();\n\n};\n\n//\n\nVector4.prototype.fromAttribute = function ( attribute, index, offset ) {\n\n\tconsole.warn( 'THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute().' );\n\treturn this.fromBufferAttribute( attribute, index, offset );\n\n};\n\nVector4.prototype.lengthManhattan = function () {\n\n\tconsole.warn( 'THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength().' );\n\treturn this.manhattanLength();\n\n};\n\n//\n\nObject3D.prototype.getChildByName = function ( name ) {\n\n\tconsole.warn( 'THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().' );\n\treturn this.getObjectByName( name );\n\n};\n\nObject3D.prototype.renderDepth = function () {\n\n\tconsole.warn( 'THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.' );\n\n};\n\nObject3D.prototype.translate = function ( distance, axis ) {\n\n\tconsole.warn( 'THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.' );\n\treturn this.translateOnAxis( axis, distance );\n\n};\n\nObject3D.prototype.getWorldRotation = function () {\n\n\tconsole.error( 'THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.' );\n\n};\n\nObject3D.prototype.applyMatrix = function ( matrix ) {\n\n\tconsole.warn( 'THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4().' );\n\treturn this.applyMatrix4( matrix );\n\n};\n\nObject.defineProperties( Object3D.prototype, {\n\n\teulerOrder: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.Object3D: .eulerOrder is now .rotation.order.' );\n\t\t\treturn this.rotation.order;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Object3D: .eulerOrder is now .rotation.order.' );\n\t\t\tthis.rotation.order = value;\n\n\t\t}\n\t},\n\tuseQuaternion: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.' );\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.' );\n\n\t\t}\n\t}\n\n} );\n\nMesh.prototype.setDrawMode = function () {\n\n\tconsole.error( 'THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.' );\n\n};\n\nObject.defineProperties( Mesh.prototype, {\n\n\tdrawMode: {\n\t\tget: function () {\n\n\t\t\tconsole.error( 'THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode.' );\n\t\t\treturn TrianglesDrawMode;\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.error( 'THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.' );\n\n\t\t}\n\t}\n\n} );\n\nSkinnedMesh.prototype.initBones = function () {\n\n\tconsole.error( 'THREE.SkinnedMesh: initBones() has been removed.' );\n\n};\n\n//\n\nPerspectiveCamera.prototype.setLens = function ( focalLength, filmGauge ) {\n\n\tconsole.warn( 'THREE.PerspectiveCamera.setLens is deprecated. ' +\n\t\t\t'Use .setFocalLength and .filmGauge for a photographic setup.' );\n\n\tif ( filmGauge !== undefined ) this.filmGauge = filmGauge;\n\tthis.setFocalLength( focalLength );\n\n};\n\n//\n\nObject.defineProperties( Light.prototype, {\n\tonlyShadow: {\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.Light: .onlyShadow has been removed.' );\n\n\t\t}\n\t},\n\tshadowCameraFov: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowCameraFov is now .shadow.camera.fov.' );\n\t\t\tthis.shadow.camera.fov = value;\n\n\t\t}\n\t},\n\tshadowCameraLeft: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowCameraLeft is now .shadow.camera.left.' );\n\t\t\tthis.shadow.camera.left = value;\n\n\t\t}\n\t},\n\tshadowCameraRight: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowCameraRight is now .shadow.camera.right.' );\n\t\t\tthis.shadow.camera.right = value;\n\n\t\t}\n\t},\n\tshadowCameraTop: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowCameraTop is now .shadow.camera.top.' );\n\t\t\tthis.shadow.camera.top = value;\n\n\t\t}\n\t},\n\tshadowCameraBottom: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom.' );\n\t\t\tthis.shadow.camera.bottom = value;\n\n\t\t}\n\t},\n\tshadowCameraNear: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowCameraNear is now .shadow.camera.near.' );\n\t\t\tthis.shadow.camera.near = value;\n\n\t\t}\n\t},\n\tshadowCameraFar: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowCameraFar is now .shadow.camera.far.' );\n\t\t\tthis.shadow.camera.far = value;\n\n\t\t}\n\t},\n\tshadowCameraVisible: {\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.' );\n\n\t\t}\n\t},\n\tshadowBias: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowBias is now .shadow.bias.' );\n\t\t\tthis.shadow.bias = value;\n\n\t\t}\n\t},\n\tshadowDarkness: {\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowDarkness has been removed.' );\n\n\t\t}\n\t},\n\tshadowMapWidth: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowMapWidth is now .shadow.mapSize.width.' );\n\t\t\tthis.shadow.mapSize.width = value;\n\n\t\t}\n\t},\n\tshadowMapHeight: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowMapHeight is now .shadow.mapSize.height.' );\n\t\t\tthis.shadow.mapSize.height = value;\n\n\t\t}\n\t}\n} );\n\n//\n\nObject.defineProperties( BufferAttribute.prototype, {\n\n\tlength: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.BufferAttribute: .length has been deprecated. Use .count instead.' );\n\t\t\treturn this.array.length;\n\n\t\t}\n\t},\n\tdynamic: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.' );\n\t\t\treturn this.usage === DynamicDrawUsage;\n\n\t\t},\n\t\tset: function ( /* value */ ) {\n\n\t\t\tconsole.warn( 'THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.' );\n\t\t\tthis.setUsage( DynamicDrawUsage );\n\n\t\t}\n\t}\n\n} );\n\nBufferAttribute.prototype.setDynamic = function ( value ) {\n\n\tconsole.warn( 'THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead.' );\n\tthis.setUsage( value === true ? DynamicDrawUsage : StaticDrawUsage );\n\treturn this;\n\n};\n\nBufferAttribute.prototype.copyIndicesArray = function ( /* indices */ ) {\n\n\tconsole.error( 'THREE.BufferAttribute: .copyIndicesArray() has been removed.' );\n\n},\n\nBufferAttribute.prototype.setArray = function ( /* array */ ) {\n\n\tconsole.error( 'THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers' );\n\n};\n\n//\n\nBufferGeometry.prototype.addIndex = function ( index ) {\n\n\tconsole.warn( 'THREE.BufferGeometry: .addIndex() has been renamed to .setIndex().' );\n\tthis.setIndex( index );\n\n};\n\nBufferGeometry.prototype.addAttribute = function ( name, attribute ) {\n\n\tconsole.warn( 'THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute().' );\n\n\tif ( ! ( attribute && attribute.isBufferAttribute ) && ! ( attribute && attribute.isInterleavedBufferAttribute ) ) {\n\n\t\tconsole.warn( 'THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).' );\n\n\t\treturn this.setAttribute( name, new BufferAttribute( arguments[ 1 ], arguments[ 2 ] ) );\n\n\t}\n\n\tif ( name === 'index' ) {\n\n\t\tconsole.warn( 'THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute.' );\n\t\tthis.setIndex( attribute );\n\n\t\treturn this;\n\n\t}\n\n\treturn this.setAttribute( name, attribute );\n\n};\n\nBufferGeometry.prototype.addDrawCall = function ( start, count, indexOffset ) {\n\n\tif ( indexOffset !== undefined ) {\n\n\t\tconsole.warn( 'THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset.' );\n\n\t}\n\n\tconsole.warn( 'THREE.BufferGeometry: .addDrawCall() is now .addGroup().' );\n\tthis.addGroup( start, count );\n\n};\n\nBufferGeometry.prototype.clearDrawCalls = function () {\n\n\tconsole.warn( 'THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups().' );\n\tthis.clearGroups();\n\n};\n\nBufferGeometry.prototype.computeOffsets = function () {\n\n\tconsole.warn( 'THREE.BufferGeometry: .computeOffsets() has been removed.' );\n\n};\n\nBufferGeometry.prototype.removeAttribute = function ( name ) {\n\n\tconsole.warn( 'THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute().' );\n\n\treturn this.deleteAttribute( name );\n\n};\n\nBufferGeometry.prototype.applyMatrix = function ( matrix ) {\n\n\tconsole.warn( 'THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4().' );\n\treturn this.applyMatrix4( matrix );\n\n};\n\nObject.defineProperties( BufferGeometry.prototype, {\n\n\tdrawcalls: {\n\t\tget: function () {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry: .drawcalls has been renamed to .groups.' );\n\t\t\treturn this.groups;\n\n\t\t}\n\t},\n\toffsets: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.BufferGeometry: .offsets has been renamed to .groups.' );\n\t\t\treturn this.groups;\n\n\t\t}\n\t}\n\n} );\n\nInterleavedBuffer.prototype.setDynamic = function ( value ) {\n\n\tconsole.warn( 'THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead.' );\n\tthis.setUsage( value === true ? DynamicDrawUsage : StaticDrawUsage );\n\treturn this;\n\n};\n\nInterleavedBuffer.prototype.setArray = function ( /* array */ ) {\n\n\tconsole.error( 'THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers' );\n\n};\n\n//\n\nExtrudeGeometry.prototype.getArrays = function () {\n\n\tconsole.error( 'THREE.ExtrudeGeometry: .getArrays() has been removed.' );\n\n};\n\nExtrudeGeometry.prototype.addShapeList = function () {\n\n\tconsole.error( 'THREE.ExtrudeGeometry: .addShapeList() has been removed.' );\n\n};\n\nExtrudeGeometry.prototype.addShape = function () {\n\n\tconsole.error( 'THREE.ExtrudeGeometry: .addShape() has been removed.' );\n\n};\n\n//\n\nScene.prototype.dispose = function () {\n\n\tconsole.error( 'THREE.Scene: .dispose() has been removed.' );\n\n};\n\n//\n\nUniform.prototype.onUpdate = function () {\n\n\tconsole.warn( 'THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead.' );\n\treturn this;\n\n};\n\n//\n\nObject.defineProperties( Material.prototype, {\n\n\twrapAround: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.Material: .wrapAround has been removed.' );\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.Material: .wrapAround has been removed.' );\n\n\t\t}\n\t},\n\n\toverdraw: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.Material: .overdraw has been removed.' );\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.Material: .overdraw has been removed.' );\n\n\t\t}\n\t},\n\n\twrapRGB: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.Material: .wrapRGB has been removed.' );\n\t\t\treturn new Color();\n\n\t\t}\n\t},\n\n\tshading: {\n\t\tget: function () {\n\n\t\t\tconsole.error( 'THREE.' + this.type + ': .shading has been removed. Use the boolean .flatShading instead.' );\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.' + this.type + ': .shading has been removed. Use the boolean .flatShading instead.' );\n\t\t\tthis.flatShading = ( value === FlatShading );\n\n\t\t}\n\t},\n\n\tstencilMask: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.' + this.type + ': .stencilMask has been removed. Use .stencilFuncMask instead.' );\n\t\t\treturn this.stencilFuncMask;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.' + this.type + ': .stencilMask has been removed. Use .stencilFuncMask instead.' );\n\t\t\tthis.stencilFuncMask = value;\n\n\t\t}\n\t},\n\n\tvertexTangents: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.' + this.type + ': .vertexTangents has been removed.' );\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.' + this.type + ': .vertexTangents has been removed.' );\n\n\t\t}\n\t},\n\n} );\n\nObject.defineProperties( ShaderMaterial.prototype, {\n\n\tderivatives: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.' );\n\t\t\treturn this.extensions.derivatives;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.' );\n\t\t\tthis.extensions.derivatives = value;\n\n\t\t}\n\t}\n\n} );\n\n//\n\nWebGLRenderer.prototype.clearTarget = function ( renderTarget, color, depth, stencil ) {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead.' );\n\tthis.setRenderTarget( renderTarget );\n\tthis.clear( color, depth, stencil );\n\n};\n\nWebGLRenderer.prototype.animate = function ( callback ) {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .animate() is now .setAnimationLoop().' );\n\tthis.setAnimationLoop( callback );\n\n};\n\nWebGLRenderer.prototype.getCurrentRenderTarget = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget().' );\n\treturn this.getRenderTarget();\n\n};\n\nWebGLRenderer.prototype.getMaxAnisotropy = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy().' );\n\treturn this.capabilities.getMaxAnisotropy();\n\n};\n\nWebGLRenderer.prototype.getPrecision = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision.' );\n\treturn this.capabilities.precision;\n\n};\n\nWebGLRenderer.prototype.resetGLState = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .resetGLState() is now .state.reset().' );\n\treturn this.state.reset();\n\n};\n\nWebGLRenderer.prototype.supportsFloatTextures = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( \\'OES_texture_float\\' ).' );\n\treturn this.extensions.get( 'OES_texture_float' );\n\n};\n\nWebGLRenderer.prototype.supportsHalfFloatTextures = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( \\'OES_texture_half_float\\' ).' );\n\treturn this.extensions.get( 'OES_texture_half_float' );\n\n};\n\nWebGLRenderer.prototype.supportsStandardDerivatives = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( \\'OES_standard_derivatives\\' ).' );\n\treturn this.extensions.get( 'OES_standard_derivatives' );\n\n};\n\nWebGLRenderer.prototype.supportsCompressedTextureS3TC = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( \\'WEBGL_compressed_texture_s3tc\\' ).' );\n\treturn this.extensions.get( 'WEBGL_compressed_texture_s3tc' );\n\n};\n\nWebGLRenderer.prototype.supportsCompressedTexturePVRTC = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( \\'WEBGL_compressed_texture_pvrtc\\' ).' );\n\treturn this.extensions.get( 'WEBGL_compressed_texture_pvrtc' );\n\n};\n\nWebGLRenderer.prototype.supportsBlendMinMax = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( \\'EXT_blend_minmax\\' ).' );\n\treturn this.extensions.get( 'EXT_blend_minmax' );\n\n};\n\nWebGLRenderer.prototype.supportsVertexTextures = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures.' );\n\treturn this.capabilities.vertexTextures;\n\n};\n\nWebGLRenderer.prototype.supportsInstancedArrays = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( \\'ANGLE_instanced_arrays\\' ).' );\n\treturn this.extensions.get( 'ANGLE_instanced_arrays' );\n\n};\n\nWebGLRenderer.prototype.enableScissorTest = function ( boolean ) {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest().' );\n\tthis.setScissorTest( boolean );\n\n};\n\nWebGLRenderer.prototype.initMaterial = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .initMaterial() has been removed.' );\n\n};\n\nWebGLRenderer.prototype.addPrePlugin = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .addPrePlugin() has been removed.' );\n\n};\n\nWebGLRenderer.prototype.addPostPlugin = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .addPostPlugin() has been removed.' );\n\n};\n\nWebGLRenderer.prototype.updateShadowMap = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .updateShadowMap() has been removed.' );\n\n};\n\nWebGLRenderer.prototype.setFaceCulling = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .setFaceCulling() has been removed.' );\n\n};\n\nWebGLRenderer.prototype.allocTextureUnit = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .allocTextureUnit() has been removed.' );\n\n};\n\nWebGLRenderer.prototype.setTexture = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .setTexture() has been removed.' );\n\n};\n\nWebGLRenderer.prototype.setTexture2D = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .setTexture2D() has been removed.' );\n\n};\n\nWebGLRenderer.prototype.setTextureCube = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .setTextureCube() has been removed.' );\n\n};\n\nWebGLRenderer.prototype.getActiveMipMapLevel = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel().' );\n\treturn this.getActiveMipmapLevel();\n\n};\n\nObject.defineProperties( WebGLRenderer.prototype, {\n\n\tshadowMapEnabled: {\n\t\tget: function () {\n\n\t\t\treturn this.shadowMap.enabled;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.' );\n\t\t\tthis.shadowMap.enabled = value;\n\n\t\t}\n\t},\n\tshadowMapType: {\n\t\tget: function () {\n\n\t\t\treturn this.shadowMap.type;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type.' );\n\t\t\tthis.shadowMap.type = value;\n\n\t\t}\n\t},\n\tshadowMapCullFace: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.' );\n\t\t\treturn undefined;\n\n\t\t},\n\t\tset: function ( /* value */ ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.' );\n\n\t\t}\n\t},\n\tcontext: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .context has been removed. Use .getContext() instead.' );\n\t\t\treturn this.getContext();\n\n\t\t}\n\t},\n\tvr: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .vr has been renamed to .xr' );\n\t\t\treturn this.xr;\n\n\t\t}\n\t},\n\tgammaInput: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.' );\n\t\t\treturn false;\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.' );\n\n\t\t}\n\t},\n\tgammaOutput: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.' );\n\t\t\treturn false;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.' );\n\t\t\tthis.outputEncoding = ( value === true ) ? sRGBEncoding : LinearEncoding;\n\n\t\t}\n\t},\n\ttoneMappingWhitePoint: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.' );\n\t\t\treturn 1.0;\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.' );\n\n\t\t}\n\t},\n\tgammaFactor: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .gammaFactor has been removed.' );\n\t\t\treturn 2;\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .gammaFactor has been removed.' );\n\n\t\t}\n\t}\n} );\n\nObject.defineProperties( WebGLShadowMap.prototype, {\n\n\tcullFace: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.' );\n\t\t\treturn undefined;\n\n\t\t},\n\t\tset: function ( /* cullFace */ ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.' );\n\n\t\t}\n\t},\n\trenderReverseSided: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.' );\n\t\t\treturn undefined;\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.' );\n\n\t\t}\n\t},\n\trenderSingleSided: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.' );\n\t\t\treturn undefined;\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.' );\n\n\t\t}\n\t}\n\n} );\n\nfunction WebGLRenderTargetCube( width, height, options ) {\n\n\tconsole.warn( 'THREE.WebGLRenderTargetCube( width, height, options ) is now WebGLCubeRenderTarget( size, options ).' );\n\treturn new WebGLCubeRenderTarget( width, options );\n\n}\n\n//\n\nObject.defineProperties( WebGLRenderTarget.prototype, {\n\n\twrapS: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.' );\n\t\t\treturn this.texture.wrapS;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.' );\n\t\t\tthis.texture.wrapS = value;\n\n\t\t}\n\t},\n\twrapT: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.' );\n\t\t\treturn this.texture.wrapT;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.' );\n\t\t\tthis.texture.wrapT = value;\n\n\t\t}\n\t},\n\tmagFilter: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.' );\n\t\t\treturn this.texture.magFilter;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.' );\n\t\t\tthis.texture.magFilter = value;\n\n\t\t}\n\t},\n\tminFilter: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.' );\n\t\t\treturn this.texture.minFilter;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.' );\n\t\t\tthis.texture.minFilter = value;\n\n\t\t}\n\t},\n\tanisotropy: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.' );\n\t\t\treturn this.texture.anisotropy;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.' );\n\t\t\tthis.texture.anisotropy = value;\n\n\t\t}\n\t},\n\toffset: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .offset is now .texture.offset.' );\n\t\t\treturn this.texture.offset;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .offset is now .texture.offset.' );\n\t\t\tthis.texture.offset = value;\n\n\t\t}\n\t},\n\trepeat: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .repeat is now .texture.repeat.' );\n\t\t\treturn this.texture.repeat;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .repeat is now .texture.repeat.' );\n\t\t\tthis.texture.repeat = value;\n\n\t\t}\n\t},\n\tformat: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .format is now .texture.format.' );\n\t\t\treturn this.texture.format;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .format is now .texture.format.' );\n\t\t\tthis.texture.format = value;\n\n\t\t}\n\t},\n\ttype: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .type is now .texture.type.' );\n\t\t\treturn this.texture.type;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .type is now .texture.type.' );\n\t\t\tthis.texture.type = value;\n\n\t\t}\n\t},\n\tgenerateMipmaps: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.' );\n\t\t\treturn this.texture.generateMipmaps;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.' );\n\t\t\tthis.texture.generateMipmaps = value;\n\n\t\t}\n\t}\n\n} );\n\n//\n\nAudio.prototype.load = function ( file ) {\n\n\tconsole.warn( 'THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.' );\n\tconst scope = this;\n\tconst audioLoader = new AudioLoader();\n\taudioLoader.load( file, function ( buffer ) {\n\n\t\tscope.setBuffer( buffer );\n\n\t} );\n\treturn this;\n\n};\n\n\nAudioAnalyser.prototype.getData = function () {\n\n\tconsole.warn( 'THREE.AudioAnalyser: .getData() is now .getFrequencyData().' );\n\treturn this.getFrequencyData();\n\n};\n\n//\n\nCubeCamera.prototype.updateCubeMap = function ( renderer, scene ) {\n\n\tconsole.warn( 'THREE.CubeCamera: .updateCubeMap() is now .update().' );\n\treturn this.update( renderer, scene );\n\n};\n\nCubeCamera.prototype.clear = function ( renderer, color, depth, stencil ) {\n\n\tconsole.warn( 'THREE.CubeCamera: .clear() is now .renderTarget.clear().' );\n\treturn this.renderTarget.clear( renderer, color, depth, stencil );\n\n};\n\nImageUtils.crossOrigin = undefined;\n\nImageUtils.loadTexture = function ( url, mapping, onLoad, onError ) {\n\n\tconsole.warn( 'THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.' );\n\n\tconst loader = new TextureLoader();\n\tloader.setCrossOrigin( this.crossOrigin );\n\n\tconst texture = loader.load( url, onLoad, undefined, onError );\n\n\tif ( mapping ) texture.mapping = mapping;\n\n\treturn texture;\n\n};\n\nImageUtils.loadTextureCube = function ( urls, mapping, onLoad, onError ) {\n\n\tconsole.warn( 'THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.' );\n\n\tconst loader = new CubeTextureLoader();\n\tloader.setCrossOrigin( this.crossOrigin );\n\n\tconst texture = loader.load( urls, onLoad, undefined, onError );\n\n\tif ( mapping ) texture.mapping = mapping;\n\n\treturn texture;\n\n};\n\nImageUtils.loadCompressedTexture = function () {\n\n\tconsole.error( 'THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.' );\n\n};\n\nImageUtils.loadCompressedTextureCube = function () {\n\n\tconsole.error( 'THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.' );\n\n};\n\n//\n\nfunction CanvasRenderer() {\n\n\tconsole.error( 'THREE.CanvasRenderer has been removed' );\n\n}\n\n//\n\nfunction JSONLoader() {\n\n\tconsole.error( 'THREE.JSONLoader has been removed.' );\n\n}\n\n//\n\nconst SceneUtils = {\n\n\tcreateMultiMaterialObject: function ( /* geometry, materials */ ) {\n\n\t\tconsole.error( 'THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js' );\n\n\t},\n\n\tdetach: function ( /* child, parent, scene */ ) {\n\n\t\tconsole.error( 'THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js' );\n\n\t},\n\n\tattach: function ( /* child, scene, parent */ ) {\n\n\t\tconsole.error( 'THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js' );\n\n\t}\n\n};\n\n//\n\nfunction LensFlare() {\n\n\tconsole.error( 'THREE.LensFlare has been moved to /examples/jsm/objects/Lensflare.js' );\n\n}\n\n//\n\nfunction ParametricGeometry() {\n\n\tconsole.error( 'THREE.ParametricGeometry has been moved to /examples/jsm/geometries/ParametricGeometry.js' );\n\treturn new BufferGeometry();\n\n}\n\nfunction TextGeometry() {\n\n\tconsole.error( 'THREE.TextGeometry has been moved to /examples/jsm/geometries/TextGeometry.js' );\n\treturn new BufferGeometry();\n\n}\n\nfunction FontLoader() {\n\n\tconsole.error( 'THREE.FontLoader has been moved to /examples/jsm/loaders/FontLoader.js' );\n\n}\n\nfunction Font() {\n\n\tconsole.error( 'THREE.Font has been moved to /examples/jsm/loaders/FontLoader.js' );\n\n}\n\nfunction ImmediateRenderObject() {\n\n\tconsole.error( 'THREE.ImmediateRenderObject has been removed.' );\n\n}\n\nif ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {\n\n\t__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'register', { detail: {\n\t\trevision: REVISION,\n\t} } ) );\n\n}\n\nif ( typeof window !== 'undefined' ) {\n\n\tif ( window.__THREE__ ) {\n\n\t\tconsole.warn( 'WARNING: Multiple instances of Three.js being imported.' );\n\n\t} else {\n\n\t\twindow.__THREE__ = REVISION;\n\n\t}\n\n}\n\nexport { ACESFilmicToneMapping, AddEquation, AddOperation, AdditiveAnimationBlendMode, AdditiveBlending, AlphaFormat, AlwaysDepth, AlwaysStencilFunc, AmbientLight, AmbientLightProbe, AnimationClip, AnimationLoader, AnimationMixer, AnimationObjectGroup, AnimationUtils, ArcCurve, ArrayCamera, ArrowHelper, Audio, AudioAnalyser, AudioContext, AudioListener, AudioLoader, AxesHelper, AxisHelper, BackSide, BasicDepthPacking, BasicShadowMap, BinaryTextureLoader, Bone, BooleanKeyframeTrack, BoundingBoxHelper, Box2, Box3, Box3Helper, BoxGeometry as BoxBufferGeometry, BoxGeometry, BoxHelper, BufferAttribute, BufferGeometry, BufferGeometryLoader, ByteType, Cache, Camera, CameraHelper, CanvasRenderer, CanvasTexture, CatmullRomCurve3, CineonToneMapping, CircleGeometry as CircleBufferGeometry, CircleGeometry, ClampToEdgeWrapping, Clock, Color, ColorKeyframeTrack, CompressedTexture, CompressedTextureLoader, ConeGeometry as ConeBufferGeometry, ConeGeometry, CubeCamera, CubeReflectionMapping, CubeRefractionMapping, CubeTexture, CubeTextureLoader, CubeUVReflectionMapping, CubeUVRefractionMapping, CubicBezierCurve, CubicBezierCurve3, CubicInterpolant, CullFaceBack, CullFaceFront, CullFaceFrontBack, CullFaceNone, Curve, CurvePath, CustomBlending, CustomToneMapping, CylinderGeometry as CylinderBufferGeometry, CylinderGeometry, Cylindrical, DataTexture, DataTexture2DArray, DataTexture3D, DataTextureLoader, DataUtils, DecrementStencilOp, DecrementWrapStencilOp, DefaultLoadingManager, DepthFormat, DepthStencilFormat, DepthTexture, DirectionalLight, DirectionalLightHelper, DiscreteInterpolant, DodecahedronGeometry as DodecahedronBufferGeometry, DodecahedronGeometry, DoubleSide, DstAlphaFactor, DstColorFactor, DynamicBufferAttribute, DynamicCopyUsage, DynamicDrawUsage, DynamicReadUsage, EdgesGeometry, EdgesHelper, EllipseCurve, EqualDepth, EqualStencilFunc, EquirectangularReflectionMapping, EquirectangularRefractionMapping, Euler, EventDispatcher, ExtrudeGeometry as ExtrudeBufferGeometry, ExtrudeGeometry, FaceColors, FileLoader, FlatShading, Float16BufferAttribute, Float32Attribute, Float32BufferAttribute, Float64Attribute, Float64BufferAttribute, FloatType, Fog, FogExp2, Font, FontLoader, FramebufferTexture, FrontSide, Frustum, GLBufferAttribute, GLSL1, GLSL3, GreaterDepth, GreaterEqualDepth, GreaterEqualStencilFunc, GreaterStencilFunc, GridHelper, Group, HalfFloatType, HemisphereLight, HemisphereLightHelper, HemisphereLightProbe, IcosahedronGeometry as IcosahedronBufferGeometry, IcosahedronGeometry, ImageBitmapLoader, ImageLoader, ImageUtils, ImmediateRenderObject, IncrementStencilOp, IncrementWrapStencilOp, InstancedBufferAttribute, InstancedBufferGeometry, InstancedInterleavedBuffer, InstancedMesh, Int16Attribute, Int16BufferAttribute, Int32Attribute, Int32BufferAttribute, Int8Attribute, Int8BufferAttribute, IntType, InterleavedBuffer, InterleavedBufferAttribute, Interpolant, InterpolateDiscrete, InterpolateLinear, InterpolateSmooth, InvertStencilOp, JSONLoader, KeepStencilOp, KeyframeTrack, LOD, LatheGeometry as LatheBufferGeometry, LatheGeometry, Layers, LensFlare, LessDepth, LessEqualDepth, LessEqualStencilFunc, LessStencilFunc, Light, LightProbe, Line, Line3, LineBasicMaterial, LineCurve, LineCurve3, LineDashedMaterial, LineLoop, LinePieces, LineSegments, LineStrip, LinearEncoding, LinearFilter, LinearInterpolant, LinearMipMapLinearFilter, LinearMipMapNearestFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearToneMapping, Loader, LoaderUtils, LoadingManager, LoopOnce, LoopPingPong, LoopRepeat, LuminanceAlphaFormat, LuminanceFormat, MOUSE, Material, MaterialLoader, MathUtils as Math, MathUtils, Matrix3, Matrix4, MaxEquation, Mesh, MeshBasicMaterial, MeshDepthMaterial, MeshDistanceMaterial, MeshFaceMaterial, MeshLambertMaterial, MeshMatcapMaterial, MeshNormalMaterial, MeshPhongMaterial, MeshPhysicalMaterial, MeshStandardMaterial, MeshToonMaterial, MinEquation, MirroredRepeatWrapping, MixOperation, MultiMaterial, MultiplyBlending, MultiplyOperation, NearestFilter, NearestMipMapLinearFilter, NearestMipMapNearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, NeverDepth, NeverStencilFunc, NoBlending, NoColors, NoToneMapping, NormalAnimationBlendMode, NormalBlending, NotEqualDepth, NotEqualStencilFunc, NumberKeyframeTrack, Object3D, ObjectLoader, ObjectSpaceNormalMap, OctahedronGeometry as OctahedronBufferGeometry, OctahedronGeometry, OneFactor, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcAlphaFactor, OneMinusSrcColorFactor, OrthographicCamera, PCFShadowMap, PCFSoftShadowMap, PMREMGenerator, ParametricGeometry, Particle, ParticleBasicMaterial, ParticleSystem, ParticleSystemMaterial, Path, PerspectiveCamera, Plane, PlaneGeometry as PlaneBufferGeometry, PlaneGeometry, PlaneHelper, PointCloud, PointCloudMaterial, PointLight, PointLightHelper, Points, PointsMaterial, PolarGridHelper, PolyhedronGeometry as PolyhedronBufferGeometry, PolyhedronGeometry, PositionalAudio, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, 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, RGB_ETC1_Format, RGB_ETC2_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGB_S3TC_DXT1_Format, RGFormat, RGIntegerFormat, RawShaderMaterial, Ray, Raycaster, RectAreaLight, RedFormat, RedIntegerFormat, ReinhardToneMapping, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, RingGeometry as RingBufferGeometry, RingGeometry, Scene, SceneUtils, ShaderChunk, ShaderLib, ShaderMaterial, ShadowMaterial, Shape, ShapeGeometry as ShapeBufferGeometry, ShapeGeometry, ShapePath, ShapeUtils, ShortType, Skeleton, SkeletonHelper, SkinnedMesh, SmoothShading, Sphere, SphereGeometry as SphereBufferGeometry, SphereGeometry, Spherical, SphericalHarmonics3, SplineCurve, SpotLight, SpotLightHelper, Sprite, SpriteMaterial, SrcAlphaFactor, SrcAlphaSaturateFactor, SrcColorFactor, StaticCopyUsage, StaticDrawUsage, StaticReadUsage, StereoCamera, StreamCopyUsage, StreamDrawUsage, StreamReadUsage, StringKeyframeTrack, SubtractEquation, SubtractiveBlending, TOUCH, TangentSpaceNormalMap, TetrahedronGeometry as TetrahedronBufferGeometry, TetrahedronGeometry, TextGeometry, Texture, TextureLoader, TorusGeometry as TorusBufferGeometry, TorusGeometry, TorusKnotGeometry as TorusKnotBufferGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry as TubeBufferGeometry, TubeGeometry, UVMapping, Uint16Attribute, Uint16BufferAttribute, Uint32Attribute, Uint32BufferAttribute, Uint8Attribute, Uint8BufferAttribute, Uint8ClampedAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsLib, UniformsUtils, UnsignedByteType, UnsignedInt248Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, Vertex, VertexColors, VideoTexture, WebGL1Renderer, WebGLCubeRenderTarget, WebGLMultipleRenderTargets, WebGLMultisampleRenderTarget, WebGLRenderTarget, WebGLRenderTargetCube, WebGLRenderer, WebGLUtils, WireframeGeometry, WireframeHelper, WrapAroundEnding, XHRLoader, ZeroCurvatureEnding, ZeroFactor, ZeroSlopeEnding, ZeroStencilOp, _SRGBAFormat, sRGBEncoding };\n","import {\n\tEuler,\n\tEventDispatcher,\n\tVector3\n} from 'three';\n\nconst _euler = new Euler( 0, 0, 0, 'YXZ' );\nconst _vector = new Vector3();\n\nconst _changeEvent = { type: 'change' };\nconst _lockEvent = { type: 'lock' };\nconst _unlockEvent = { type: 'unlock' };\n\nconst _PI_2 = Math.PI / 2;\n\nclass PointerLockControls extends EventDispatcher {\n\n\tconstructor( camera, domElement ) {\n\n\t\tsuper();\n\n\t\tif ( domElement === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.PointerLockControls: The second parameter \"domElement\" is now mandatory.' );\n\t\t\tdomElement = document.body;\n\n\t\t}\n\n\t\tthis.domElement = domElement;\n\t\tthis.isLocked = false;\n\n\t\t// Set to constrain the pitch of the camera\n\t\t// Range is 0 to Math.PI radians\n\t\tthis.minPolarAngle = 0; // radians\n\t\tthis.maxPolarAngle = Math.PI; // radians\n\n\t\tconst scope = this;\n\n\t\tfunction onMouseMove( event ) {\n\n\t\t\tif ( scope.isLocked === false ) return;\n\n\t\t\tconst movementX = event.movementX || event.mozMovementX || event.webkitMovementX || 0;\n\t\t\tconst movementY = event.movementY || event.mozMovementY || event.webkitMovementY || 0;\n\n\t\t\t_euler.setFromQuaternion( camera.quaternion );\n\n\t\t\t_euler.y -= movementX * 0.002;\n\t\t\t_euler.x -= movementY * 0.002;\n\n\t\t\t_euler.x = Math.max( _PI_2 - scope.maxPolarAngle, Math.min( _PI_2 - scope.minPolarAngle, _euler.x ) );\n\n\t\t\tcamera.quaternion.setFromEuler( _euler );\n\n\t\t\tscope.dispatchEvent( _changeEvent );\n\n\t\t}\n\n\t\tfunction onPointerlockChange() {\n\n\t\t\tif ( scope.domElement.ownerDocument.pointerLockElement === scope.domElement ) {\n\n\t\t\t\tscope.dispatchEvent( _lockEvent );\n\n\t\t\t\tscope.isLocked = true;\n\n\t\t\t} else {\n\n\t\t\t\tscope.dispatchEvent( _unlockEvent );\n\n\t\t\t\tscope.isLocked = false;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onPointerlockError() {\n\n\t\t\tconsole.error( 'THREE.PointerLockControls: Unable to use Pointer Lock API' );\n\n\t\t}\n\n\t\tthis.connect = function () {\n\n\t\t\tscope.domElement.ownerDocument.addEventListener( 'mousemove', onMouseMove );\n\t\t\tscope.domElement.ownerDocument.addEventListener( 'pointerlockchange', onPointerlockChange );\n\t\t\tscope.domElement.ownerDocument.addEventListener( 'pointerlockerror', onPointerlockError );\n\n\t\t};\n\n\t\tthis.disconnect = function () {\n\n\t\t\tscope.domElement.ownerDocument.removeEventListener( 'mousemove', onMouseMove );\n\t\t\tscope.domElement.ownerDocument.removeEventListener( 'pointerlockchange', onPointerlockChange );\n\t\t\tscope.domElement.ownerDocument.removeEventListener( 'pointerlockerror', onPointerlockError );\n\n\t\t};\n\n\t\tthis.dispose = function () {\n\n\t\t\tthis.disconnect();\n\n\t\t};\n\n\t\tthis.getObject = function () { // retaining this method for backward compatibility\n\n\t\t\treturn camera;\n\n\t\t};\n\n\t\tthis.getDirection = function () {\n\n\t\t\tconst direction = new Vector3( 0, 0, - 1 );\n\n\t\t\treturn function ( v ) {\n\n\t\t\t\treturn v.copy( direction ).applyQuaternion( camera.quaternion );\n\n\t\t\t};\n\n\t\t}();\n\n\t\tthis.moveForward = function ( distance ) {\n\n\t\t\t// move forward parallel to the xz-plane\n\t\t\t// assumes camera.up is y-up\n\n\t\t\t_vector.setFromMatrixColumn( camera.matrix, 0 );\n\n\t\t\t_vector.crossVectors( camera.up, _vector );\n\n\t\t\tcamera.position.addScaledVector( _vector, distance );\n\n\t\t};\n\n\t\tthis.moveRight = function ( distance ) {\n\n\t\t\t_vector.setFromMatrixColumn( camera.matrix, 0 );\n\n\t\t\tcamera.position.addScaledVector( _vector, distance );\n\n\t\t};\n\n\t\tthis.lock = function () {\n\n\t\t\tthis.domElement.requestPointerLock();\n\n\t\t};\n\n\t\tthis.unlock = function () {\n\n\t\t\tscope.domElement.ownerDocument.exitPointerLock();\n\n\t\t};\n\n\t\tthis.connect();\n\n\t}\n\n}\n\nexport { PointerLockControls };\n","// https://cs.nyu.edu/~perlin/noise/\n\nconst _p = [ 151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103, 30, 69, 142, 8, 99, 37, 240, 21, 10,\n\t 23, 190, 6, 148, 247, 120, 234, 75, 0, 26, 197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, 87,\n\t 174, 20, 125, 136, 171, 168, 68, 175, 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231, 83, 111, 229, 122, 60, 211,\n\t 133, 230, 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143, 54, 65, 25, 63, 161, 1, 216, 80, 73, 209, 76, 132, 187, 208,\n\t 89, 18, 169, 200, 196, 135, 130, 116, 188, 159, 86, 164, 100, 109, 198, 173, 186, 3, 64, 52, 217, 226, 250, 124, 123, 5,\n\t 202, 38, 147, 118, 126, 255, 82, 85, 212, 207, 206, 59, 227, 47, 16, 58, 17, 182, 189, 28, 42, 223, 183, 170, 213, 119,\n\t 248, 152, 2, 44, 154, 163, 70, 221, 153, 101, 155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, 108, 110, 79, 113, 224, 232,\n\t 178, 185, 112, 104, 218, 246, 97, 228, 251, 34, 242, 193, 238, 210, 144, 12, 191, 179, 162, 241, 81, 51, 145, 235, 249,\n\t 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157, 184, 84, 204, 176, 115, 121, 50, 45, 127, 4, 150, 254, 138, 236, 205,\n\t 93, 222, 114, 67, 29, 24, 72, 243, 141, 128, 195, 78, 66, 215, 61, 156, 180 ];\n\nfor ( let i = 0; i < 256; i ++ ) {\n\n\t_p[ 256 + i ] = _p[ i ];\n\n}\n\nfunction fade( t ) {\n\n\treturn t * t * t * ( t * ( t * 6 - 15 ) + 10 );\n\n}\n\nfunction lerp( t, a, b ) {\n\n\treturn a + t * ( b - a );\n\n}\n\nfunction grad( hash, x, y, z ) {\n\n\tconst h = hash & 15;\n\tconst u = h < 8 ? x : y, v = h < 4 ? y : h == 12 || h == 14 ? x : z;\n\treturn ( ( h & 1 ) == 0 ? u : - u ) + ( ( h & 2 ) == 0 ? v : - v );\n\n}\n\nclass ImprovedNoise {\n\n\tnoise( x, y, z ) {\n\n\t\tconst floorX = Math.floor( x ), floorY = Math.floor( y ), floorZ = Math.floor( z );\n\n\t\tconst X = floorX & 255, Y = floorY & 255, Z = floorZ & 255;\n\n\t\tx -= floorX;\n\t\ty -= floorY;\n\t\tz -= floorZ;\n\n\t\tconst xMinus1 = x - 1, yMinus1 = y - 1, zMinus1 = z - 1;\n\n\t\tconst u = fade( x ), v = fade( y ), w = fade( z );\n\n\t\tconst A = _p[ X ] + Y, AA = _p[ A ] + Z, AB = _p[ A + 1 ] + Z, B = _p[ X + 1 ] + Y, BA = _p[ B ] + Z, BB = _p[ B + 1 ] + Z;\n\n\t\treturn lerp( w, lerp( v, lerp( u, grad( _p[ AA ], x, y, z ),\n\t\t\tgrad( _p[ BA ], xMinus1, y, z ) ),\n\t\tlerp( u, grad( _p[ AB ], x, yMinus1, z ),\n\t\t\tgrad( _p[ BB ], xMinus1, yMinus1, z ) ) ),\n\t\tlerp( v, lerp( u, grad( _p[ AA + 1 ], x, y, zMinus1 ),\n\t\t\tgrad( _p[ BA + 1 ], xMinus1, y, zMinus1 ) ),\n\t\tlerp( u, grad( _p[ AB + 1 ], x, yMinus1, zMinus1 ),\n\t\t\tgrad( _p[ BB + 1 ], xMinus1, yMinus1, zMinus1 ) ) ) );\n\n\t}\n\n}\n\nexport { ImprovedNoise };\n"],"names":["lerp"],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA,GAKA,KAAM,IAAW,MAkEZ,KAAC,IAAgB,KA8GtB,KAAM,IAAQ,SAQd,QAAsB,CAErB,iBAAkB,EAAM,EAAW,CAElC,AAAK,KAAK,aAAe,QAAY,MAAK,WAAa,IAEvD,KAAM,GAAY,KAAK,WAEvB,AAAK,EAAW,KAAW,QAE1B,GAAW,GAAS,IAIhB,EAAW,GAAO,QAAS,KAAe,IAE9C,EAAW,GAAO,KAAM,GAM1B,iBAAkB,EAAM,EAAW,CAElC,GAAK,KAAK,aAAe,OAAY,MAAO,GAE5C,KAAM,GAAY,KAAK,WAEvB,MAAO,GAAW,KAAW,QAAa,EAAW,GAAO,QAAS,KAAe,GAIrF,oBAAqB,EAAM,EAAW,CAErC,GAAK,KAAK,aAAe,OAAY,OAGrC,KAAM,GAAgB,AADJ,KAAK,WACU,GAEjC,GAAK,IAAkB,OAAY,CAElC,KAAM,GAAQ,EAAc,QAAS,GAErC,AAAK,IAAU,IAEd,EAAc,OAAQ,EAAO,IAQhC,cAAe,EAAQ,CAEtB,GAAK,KAAK,aAAe,OAAY,OAGrC,KAAM,GAAgB,AADJ,KAAK,WACU,EAAM,MAEvC,GAAK,IAAkB,OAAY,CAElC,EAAM,OAAS,KAGf,KAAM,GAAQ,EAAc,MAAO,GAEnC,OAAU,GAAI,EAAG,EAAI,EAAM,OAAQ,EAAI,EAAG,IAEzC,EAAO,GAAI,KAAM,KAAM,GAIxB,EAAM,OAAS,OAQlB,KAAM,IAAO,GAEb,OAAU,GAAI,EAAG,EAAI,IAAK,IAEzB,GAAM,GAAQ,GAAI,GAAK,IAAM,IAAS,EAAI,SAAU,IAOrD,KAAM,IAAU,KAAK,GAAK,IACpB,GAAU,IAAM,KAAK,GAG3B,aAAwB,CAEvB,KAAM,GAAK,KAAK,SAAW,WAAa,EAClC,EAAK,KAAK,SAAW,WAAa,EAClC,EAAK,KAAK,SAAW,WAAa,EAClC,EAAK,KAAK,SAAW,WAAa,EAOxC,MAAO,AANM,IAAM,EAAK,KAAS,GAAM,GAAM,EAAI,KAAS,GAAM,GAAM,GAAK,KAAS,GAAM,GAAM,GAAK,KAAS,IAC5G,GAAM,EAAK,KAAS,GAAM,GAAM,EAAI,KAAS,IAAM,GAAM,GAAM,GAAK,GAAO,IAAS,GAAM,GAAM,GAAK,KAAS,IAC9G,GAAM,EAAK,GAAO,KAAS,GAAM,GAAM,EAAI,KAAS,IAAM,GAAM,GAAM,GAAK,KAAS,GAAM,GAAM,GAAK,KACrG,GAAM,EAAK,KAAS,GAAM,GAAM,EAAI,KAAS,GAAM,GAAM,GAAK,KAAS,GAAM,GAAM,GAAK,MAG9E,cAIb,YAAgB,EAAO,EAAK,EAAM,CAEjC,MAAO,MAAK,IAAK,EAAK,KAAK,IAAK,EAAK,IAMtC,YAA0B,EAAG,EAAI,CAEhC,MAAW,GAAI,EAAM,GAAM,EA2B5B,YAAe,EAAG,EAAG,EAAI,CAExB,MAAS,GAAI,GAAM,EAAI,EAAI,EAuF5B,YAAuB,EAAQ,CAE9B,MAAS,GAAU,EAAQ,KAAU,GAAK,IAAU,EAUrD,YAA0B,EAAQ,CAEjC,MAAO,MAAK,IAAK,EAAG,KAAK,MAAO,KAAK,IAAK,GAAU,KAAK,MAsF1D,OAAc,CAEb,YAAa,EAAI,EAAG,EAAI,EAAI,CAE3B,KAAK,EAAI,EACT,KAAK,EAAI,KAIN,QAAQ,CAEX,MAAO,MAAK,KAIT,OAAO,EAAQ,CAElB,KAAK,EAAI,KAIN,SAAS,CAEZ,MAAO,MAAK,KAIT,QAAQ,EAAQ,CAEnB,KAAK,EAAI,EAIV,IAAK,EAAG,EAAI,CAEX,YAAK,EAAI,EACT,KAAK,EAAI,EAEF,KAIR,UAAW,EAAS,CAEnB,YAAK,EAAI,EACT,KAAK,EAAI,EAEF,KAIR,KAAM,EAAI,CAET,YAAK,EAAI,EAEF,KAIR,KAAM,EAAI,CAET,YAAK,EAAI,EAEF,KAIR,aAAc,EAAO,EAAQ,CAE5B,OAAS,OAEH,GAAG,KAAK,EAAI,EAAO,UACnB,GAAG,KAAK,EAAI,EAAO,cACf,KAAM,IAAI,OAAO,0BAA4B,GAIvD,MAAO,MAIR,aAAc,EAAQ,CAErB,OAAS,OAEH,GAAG,MAAO,MAAK,MACf,GAAG,MAAO,MAAK,UACX,KAAM,IAAI,OAAO,0BAA4B,IAMxD,OAAQ,CAEP,MAAO,IAAI,MAAK,YAAa,KAAK,EAAG,KAAK,GAI3C,KAAM,EAAI,CAET,YAAK,EAAI,EAAE,EACX,KAAK,EAAI,EAAE,EAEJ,KAIR,IAAK,EAAG,EAAI,CAEX,MAAK,KAAM,OAEV,SAAQ,KAAM,yFACP,KAAK,WAAY,EAAG,IAI5B,MAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EAEL,MAIR,UAAW,EAAI,CAEd,YAAK,GAAK,EACV,KAAK,GAAK,EAEH,KAIR,WAAY,EAAG,EAAI,CAElB,YAAK,EAAI,EAAE,EAAI,EAAE,EACjB,KAAK,EAAI,EAAE,EAAI,EAAE,EAEV,KAIR,gBAAiB,EAAG,EAAI,CAEvB,YAAK,GAAK,EAAE,EAAI,EAChB,KAAK,GAAK,EAAE,EAAI,EAET,KAIR,IAAK,EAAG,EAAI,CAEX,MAAK,KAAM,OAEV,SAAQ,KAAM,yFACP,KAAK,WAAY,EAAG,IAI5B,MAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EAEL,MAIR,UAAW,EAAI,CAEd,YAAK,GAAK,EACV,KAAK,GAAK,EAEH,KAIR,WAAY,EAAG,EAAI,CAElB,YAAK,EAAI,EAAE,EAAI,EAAE,EACjB,KAAK,EAAI,EAAE,EAAI,EAAE,EAEV,KAIR,SAAU,EAAI,CAEb,YAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EAEL,KAIR,eAAgB,EAAS,CAExB,YAAK,GAAK,EACV,KAAK,GAAK,EAEH,KAIR,OAAQ,EAAI,CAEX,YAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EAEL,KAIR,aAAc,EAAS,CAEtB,MAAO,MAAK,eAAgB,EAAI,GAIjC,aAAc,EAAI,CAEjB,KAAM,GAAI,KAAK,EAAG,EAAI,KAAK,EACrB,EAAI,EAAE,SAEZ,YAAK,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,GACtC,KAAK,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,GAE/B,KAIR,IAAK,EAAI,CAER,YAAK,EAAI,KAAK,IAAK,KAAK,EAAG,EAAE,GAC7B,KAAK,EAAI,KAAK,IAAK,KAAK,EAAG,EAAE,GAEtB,KAIR,IAAK,EAAI,CAER,YAAK,EAAI,KAAK,IAAK,KAAK,EAAG,EAAE,GAC7B,KAAK,EAAI,KAAK,IAAK,KAAK,EAAG,EAAE,GAEtB,KAIR,MAAO,EAAK,EAAM,CAIjB,YAAK,EAAI,KAAK,IAAK,EAAI,EAAG,KAAK,IAAK,EAAI,EAAG,KAAK,IAChD,KAAK,EAAI,KAAK,IAAK,EAAI,EAAG,KAAK,IAAK,EAAI,EAAG,KAAK,IAEzC,KAIR,YAAa,EAAQ,EAAS,CAE7B,YAAK,EAAI,KAAK,IAAK,EAAQ,KAAK,IAAK,EAAQ,KAAK,IAClD,KAAK,EAAI,KAAK,IAAK,EAAQ,KAAK,IAAK,EAAQ,KAAK,IAE3C,KAIR,YAAa,EAAK,EAAM,CAEvB,KAAM,GAAS,KAAK,SAEpB,MAAO,MAAK,aAAc,GAAU,GAAI,eAAgB,KAAK,IAAK,EAAK,KAAK,IAAK,EAAK,KAIvF,OAAQ,CAEP,YAAK,EAAI,KAAK,MAAO,KAAK,GAC1B,KAAK,EAAI,KAAK,MAAO,KAAK,GAEnB,KAIR,MAAO,CAEN,YAAK,EAAI,KAAK,KAAM,KAAK,GACzB,KAAK,EAAI,KAAK,KAAM,KAAK,GAElB,KAIR,OAAQ,CAEP,YAAK,EAAI,KAAK,MAAO,KAAK,GAC1B,KAAK,EAAI,KAAK,MAAO,KAAK,GAEnB,KAIR,aAAc,CAEb,YAAK,EAAM,KAAK,EAAI,EAAM,KAAK,KAAM,KAAK,GAAM,KAAK,MAAO,KAAK,GACjE,KAAK,EAAM,KAAK,EAAI,EAAM,KAAK,KAAM,KAAK,GAAM,KAAK,MAAO,KAAK,GAE1D,KAIR,QAAS,CAER,YAAK,EAAI,CAAE,KAAK,EAChB,KAAK,EAAI,CAAE,KAAK,EAET,KAIR,IAAK,EAAI,CAER,MAAO,MAAK,EAAI,EAAE,EAAI,KAAK,EAAI,EAAE,EAIlC,MAAO,EAAI,CAEV,MAAO,MAAK,EAAI,EAAE,EAAI,KAAK,EAAI,EAAE,EAIlC,UAAW,CAEV,MAAO,MAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAIxC,QAAS,CAER,MAAO,MAAK,KAAM,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,GAInD,iBAAkB,CAEjB,MAAO,MAAK,IAAK,KAAK,GAAM,KAAK,IAAK,KAAK,GAI5C,WAAY,CAEX,MAAO,MAAK,aAAc,KAAK,UAAY,GAI5C,OAAQ,CAMP,MAFc,MAAK,MAAO,CAAE,KAAK,EAAG,CAAE,KAAK,GAAM,KAAK,GAMvD,WAAY,EAAI,CAEf,MAAO,MAAK,KAAM,KAAK,kBAAmB,IAI3C,kBAAmB,EAAI,CAEtB,KAAM,GAAK,KAAK,EAAI,EAAE,EAAG,EAAK,KAAK,EAAI,EAAE,EACzC,MAAO,GAAK,EAAK,EAAK,EAIvB,oBAAqB,EAAI,CAExB,MAAO,MAAK,IAAK,KAAK,EAAI,EAAE,GAAM,KAAK,IAAK,KAAK,EAAI,EAAE,GAIxD,UAAW,EAAS,CAEnB,MAAO,MAAK,YAAY,eAAgB,GAIzC,KAAM,EAAG,EAAQ,CAEhB,YAAK,GAAO,GAAE,EAAI,KAAK,GAAM,EAC7B,KAAK,GAAO,GAAE,EAAI,KAAK,GAAM,EAEtB,KAIR,YAAa,EAAI,EAAI,EAAQ,CAE5B,YAAK,EAAI,EAAG,EAAM,GAAG,EAAI,EAAG,GAAM,EAClC,KAAK,EAAI,EAAG,EAAM,GAAG,EAAI,EAAG,GAAM,EAE3B,KAIR,OAAQ,EAAI,CAEX,MAAW,GAAE,IAAM,KAAK,GAAS,EAAE,IAAM,KAAK,EAI/C,UAAW,EAAO,EAAS,EAAI,CAE9B,YAAK,EAAI,EAAO,GAChB,KAAK,EAAI,EAAO,EAAS,GAElB,KAIR,QAAS,EAAQ,GAAI,EAAS,EAAI,CAEjC,SAAO,GAAW,KAAK,EACvB,EAAO,EAAS,GAAM,KAAK,EAEpB,EAIR,oBAAqB,EAAW,EAAO,EAAS,CAE/C,MAAK,KAAW,QAEf,QAAQ,KAAM,uEAIf,KAAK,EAAI,EAAU,KAAM,GACzB,KAAK,EAAI,EAAU,KAAM,GAElB,KAIR,aAAc,EAAQ,EAAQ,CAE7B,KAAM,GAAI,KAAK,IAAK,GAAS,EAAI,KAAK,IAAK,GAErC,EAAI,KAAK,EAAI,EAAO,EACpB,EAAI,KAAK,EAAI,EAAO,EAE1B,YAAK,EAAI,EAAI,EAAI,EAAI,EAAI,EAAO,EAChC,KAAK,EAAI,EAAI,EAAI,EAAI,EAAI,EAAO,EAEzB,KAIR,QAAS,CAER,YAAK,EAAI,KAAK,SACd,KAAK,EAAI,KAAK,SAEP,OAIL,OAAO,WAAa,CAEtB,KAAM,MAAK,EACX,KAAM,MAAK,GAMb,EAAQ,UAAU,UAAY,GAE9B,QAAc,CAEb,aAAc,CAEb,KAAK,SAAW,CAEf,EAAG,EAAG,EACN,EAAG,EAAG,EACN,EAAG,EAAG,GAIF,UAAU,OAAS,GAEvB,QAAQ,MAAO,iFAMjB,IAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAM,CAElD,KAAM,GAAK,KAAK,SAEhB,SAAI,GAAM,EAAK,EAAI,GAAM,EAAK,EAAI,GAAM,EACxC,EAAI,GAAM,EAAK,EAAI,GAAM,EAAK,EAAI,GAAM,EACxC,EAAI,GAAM,EAAK,EAAI,GAAM,EAAK,EAAI,GAAM,EAEjC,KAIR,UAAW,CAEV,YAAK,IAEJ,EAAG,EAAG,EACN,EAAG,EAAG,EACN,EAAG,EAAG,GAIA,KAIR,KAAM,EAAI,CAET,KAAM,GAAK,KAAK,SACV,EAAK,EAAE,SAEb,SAAI,GAAM,EAAI,GAAK,EAAI,GAAM,EAAI,GAAK,EAAI,GAAM,EAAI,GACpD,EAAI,GAAM,EAAI,GAAK,EAAI,GAAM,EAAI,GAAK,EAAI,GAAM,EAAI,GACpD,EAAI,GAAM,EAAI,GAAK,EAAI,GAAM,EAAI,GAAK,EAAI,GAAM,EAAI,GAE7C,KAIR,aAAc,EAAO,EAAO,EAAQ,CAEnC,SAAM,qBAAsB,KAAM,GAClC,EAAM,qBAAsB,KAAM,GAClC,EAAM,qBAAsB,KAAM,GAE3B,KAIR,eAAgB,EAAI,CAEnB,KAAM,GAAK,EAAE,SAEb,YAAK,IAEJ,EAAI,GAAK,EAAI,GAAK,EAAI,GACtB,EAAI,GAAK,EAAI,GAAK,EAAI,GACtB,EAAI,GAAK,EAAI,GAAK,EAAI,KAIhB,KAIR,SAAU,EAAI,CAEb,MAAO,MAAK,iBAAkB,KAAM,GAIrC,YAAa,EAAI,CAEhB,MAAO,MAAK,iBAAkB,EAAG,MAIlC,iBAAkB,EAAG,EAAI,CAExB,KAAM,GAAK,EAAE,SACP,EAAK,EAAE,SACP,EAAK,KAAK,SAEV,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GACxC,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GACxC,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GAExC,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GACxC,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GACxC,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GAE9C,SAAI,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EACxC,EAAI,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EACxC,EAAI,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAExC,EAAI,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EACxC,EAAI,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EACxC,EAAI,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAExC,EAAI,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EACxC,EAAI,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EACxC,EAAI,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAEjC,KAIR,eAAgB,EAAI,CAEnB,KAAM,GAAK,KAAK,SAEhB,SAAI,IAAO,EAAG,EAAI,IAAO,EAAG,EAAI,IAAO,EACvC,EAAI,IAAO,EAAG,EAAI,IAAO,EAAG,EAAI,IAAO,EACvC,EAAI,IAAO,EAAG,EAAI,IAAO,EAAG,EAAI,IAAO,EAEhC,KAIR,aAAc,CAEb,KAAM,GAAK,KAAK,SAEV,EAAI,EAAI,GAAK,EAAI,EAAI,GAAK,EAAI,EAAI,GACvC,EAAI,EAAI,GAAK,EAAI,EAAI,GAAK,EAAI,EAAI,GAClC,EAAI,EAAI,GAAK,EAAI,EAAI,GAAK,EAAI,EAAI,GAEnC,MAAO,GAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAI5E,QAAS,CAER,KAAM,GAAK,KAAK,SAEf,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GACxC,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GACxC,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GAExC,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EACxB,EAAM,EAAM,EAAM,EAAM,EAExB,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAErC,GAAK,IAAQ,EAAI,MAAO,MAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAE1D,KAAM,GAAS,EAAI,EAEnB,SAAI,GAAM,EAAM,EAChB,EAAI,GAAQ,GAAM,EAAM,EAAM,GAAQ,EACtC,EAAI,GAAQ,GAAM,EAAM,EAAM,GAAQ,EAEtC,EAAI,GAAM,EAAM,EAChB,EAAI,GAAQ,GAAM,EAAM,EAAM,GAAQ,EACtC,EAAI,GAAQ,GAAM,EAAM,EAAM,GAAQ,EAEtC,EAAI,GAAM,EAAM,EAChB,EAAI,GAAQ,GAAM,EAAM,EAAM,GAAQ,EACtC,EAAI,GAAQ,GAAM,EAAM,EAAM,GAAQ,EAE/B,KAIR,WAAY,CAEX,GAAI,GACJ,KAAM,GAAI,KAAK,SAEf,SAAM,EAAG,GAAK,EAAG,GAAM,EAAG,GAAK,EAAG,GAAM,EACxC,EAAM,EAAG,GAAK,EAAG,GAAM,EAAG,GAAK,EAAG,GAAM,EACxC,EAAM,EAAG,GAAK,EAAG,GAAM,EAAG,GAAK,EAAG,GAAM,EAEjC,KAIR,gBAAiB,EAAU,CAE1B,MAAO,MAAK,eAAgB,GAAU,SAAS,YAIhD,mBAAoB,EAAI,CAEvB,KAAM,GAAI,KAAK,SAEf,SAAG,GAAM,EAAG,GACZ,EAAG,GAAM,EAAG,GACZ,EAAG,GAAM,EAAG,GACZ,EAAG,GAAM,EAAG,GACZ,EAAG,GAAM,EAAG,GACZ,EAAG,GAAM,EAAG,GACZ,EAAG,GAAM,EAAG,GACZ,EAAG,GAAM,EAAG,GACZ,EAAG,GAAM,EAAG,GAEL,KAIR,eAAgB,EAAI,EAAI,EAAI,EAAI,EAAU,EAAI,EAAK,CAElD,KAAM,GAAI,KAAK,IAAK,GACd,EAAI,KAAK,IAAK,GAEpB,YAAK,IACJ,EAAK,EAAG,EAAK,EAAG,CAAE,EAAO,GAAI,EAAK,EAAI,GAAO,EAAK,EAClD,CAAE,EAAK,EAAG,EAAK,EAAG,CAAE,EAAO,EAAE,EAAI,EAAK,EAAI,GAAO,EAAK,EACtD,EAAG,EAAG,GAGA,KAIR,MAAO,EAAI,EAAK,CAEf,KAAM,GAAK,KAAK,SAEhB,SAAI,IAAO,EAAI,EAAI,IAAO,EAAI,EAAI,IAAO,EACzC,EAAI,IAAO,EAAI,EAAI,IAAO,EAAI,EAAI,IAAO,EAElC,KAIR,OAAQ,EAAQ,CAEf,KAAM,GAAI,KAAK,IAAK,GACd,EAAI,KAAK,IAAK,GAEd,EAAK,KAAK,SAEV,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GACxC,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GAE9C,SAAI,GAAM,EAAI,EAAM,EAAI,EACxB,EAAI,GAAM,EAAI,EAAM,EAAI,EACxB,EAAI,GAAM,EAAI,EAAM,EAAI,EAExB,EAAI,GAAM,CAAE,EAAI,EAAM,EAAI,EAC1B,EAAI,GAAM,CAAE,EAAI,EAAM,EAAI,EAC1B,EAAI,GAAM,CAAE,EAAI,EAAM,EAAI,EAEnB,KAIR,UAAW,EAAI,EAAK,CAEnB,KAAM,GAAK,KAAK,SAEhB,SAAI,IAAO,EAAK,EAAI,GAAK,EAAI,IAAO,EAAK,EAAI,GAAK,EAAI,IAAO,EAAK,EAAI,GACtE,EAAI,IAAO,EAAK,EAAI,GAAK,EAAI,IAAO,EAAK,EAAI,GAAK,EAAI,IAAO,EAAK,EAAI,GAE/D,KAIR,OAAQ,EAAS,CAEhB,KAAM,GAAK,KAAK,SACV,EAAK,EAAO,SAElB,OAAU,GAAI,EAAG,EAAI,EAAG,IAEvB,GAAK,EAAI,KAAQ,EAAI,GAAM,MAAO,GAInC,MAAO,GAIR,UAAW,EAAO,EAAS,EAAI,CAE9B,OAAU,GAAI,EAAG,EAAI,EAAG,IAEvB,KAAK,SAAU,GAAM,EAAO,EAAI,GAIjC,MAAO,MAIR,QAAS,EAAQ,GAAI,EAAS,EAAI,CAEjC,KAAM,GAAK,KAAK,SAEhB,SAAO,GAAW,EAAI,GACtB,EAAO,EAAS,GAAM,EAAI,GAC1B,EAAO,EAAS,GAAM,EAAI,GAE1B,EAAO,EAAS,GAAM,EAAI,GAC1B,EAAO,EAAS,GAAM,EAAI,GAC1B,EAAO,EAAS,GAAM,EAAI,GAE1B,EAAO,EAAS,GAAM,EAAI,GAC1B,EAAO,EAAS,GAAM,EAAI,GAC1B,EAAO,EAAS,GAAM,EAAI,GAEnB,EAIR,OAAQ,CAEP,MAAO,IAAI,MAAK,cAAc,UAAW,KAAK,WAMhD,GAAQ,UAAU,UAAY,GAE9B,YAA2B,EAAQ,CAIlC,OAAU,GAAI,EAAM,OAAS,EAAG,GAAK,EAAG,EAAG,EAE1C,GAAK,EAAO,GAAM,MAAQ,MAAO,GAIlC,MAAO,GAsBR,YAA0B,EAAO,CAEhC,MAAO,UAAS,gBAAiB,+BAAgC,GAIlE,KAAM,IAAiB,CAAE,UAAa,SAAU,aAAgB,SAAU,KAAQ,MAAU,WAAc,QAAU,MAAS,SAC5H,MAAS,SAAU,OAAU,SAAU,MAAS,EAAU,eAAkB,SAAU,KAAQ,IAAU,WAAc,QACtH,MAAS,SAAU,UAAa,SAAU,UAAa,QAAU,WAAc,QAAU,UAAa,SAAU,MAAS,SACzH,eAAkB,QAAU,SAAY,SAAU,QAAW,SAAU,KAAQ,MAAU,SAAY,IAAU,SAAY,MAC3H,cAAiB,SAAU,SAAY,SAAU,UAAa,MAAU,SAAY,SAAU,UAAa,SAAU,YAAe,QACpI,eAAkB,QAAU,WAAc,SAAU,WAAc,SAAU,QAAW,QAAU,WAAc,SAAU,aAAgB,QACzI,cAAiB,QAAU,cAAiB,QAAU,cAAiB,QAAU,cAAiB,MAAU,WAAc,QAC1H,SAAY,SAAU,YAAe,MAAU,QAAW,QAAU,QAAW,QAAU,WAAc,QAAU,UAAa,SAC9H,YAAe,SAAU,YAAe,QAAU,QAAW,SAAU,UAAa,SAAU,WAAc,SAAU,KAAQ,SAC9H,UAAa,SAAU,KAAQ,QAAU,MAAS,MAAU,YAAe,SAAU,KAAQ,QAAU,SAAY,SAAU,QAAW,SACxI,UAAa,SAAU,OAAU,QAAU,MAAS,SAAU,MAAS,SAAU,SAAY,SAAU,cAAiB,SAAU,UAAa,QAC/I,aAAgB,SAAU,UAAa,SAAU,WAAc,SAAU,UAAa,SAAU,qBAAwB,SAAU,UAAa,SAC/I,WAAc,QAAU,UAAa,SAAU,UAAa,SAAU,YAAe,SAAU,cAAiB,QAAU,aAAgB,QAC1I,eAAkB,QAAU,eAAkB,QAAU,eAAkB,SAAU,YAAe,SAAU,KAAQ,MAAU,UAAa,QAC5I,MAAS,SAAU,QAAW,SAAU,OAAU,QAAU,iBAAoB,QAAU,WAAc,IAAU,aAAgB,SAClI,aAAgB,QAAU,eAAkB,QAAU,gBAAmB,QAAU,kBAAqB,MAAU,gBAAmB,QACrI,gBAAmB,SAAU,aAAgB,QAAU,UAAa,SAAU,UAAa,SAAU,SAAY,SAAU,YAAe,SAC1I,KAAQ,IAAU,QAAW,SAAU,MAAS,QAAU,UAAa,QAAU,OAAU,SAAU,UAAa,SAAU,OAAU,SACtI,cAAiB,SAAU,UAAa,SAAU,cAAiB,SAAU,cAAiB,SAAU,WAAc,SAAU,UAAa,SAC7I,KAAQ,SAAU,KAAQ,SAAU,KAAQ,SAAU,WAAc,SAAU,OAAU,QAAU,cAAiB,QAAU,IAAO,SAAU,UAAa,SAC3J,UAAa,QAAU,YAAe,QAAU,OAAU,SAAU,WAAc,SAAU,SAAY,QAAU,SAAY,SAC9H,OAAU,SAAU,OAAU,SAAU,QAAW,QAAU,UAAa,QAAU,UAAa,QAAU,UAAa,QAAU,KAAQ,SAC1I,YAAe,MAAU,UAAa,QAAU,IAAO,SAAU,KAAQ,MAAU,QAAW,SAAU,OAAU,SAAU,UAAa,QACzI,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,WAAc,SAAU,OAAU,SAAU,YAAe,UAEhH,GAAQ,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,GACzB,GAAQ,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,GAE/B,YAAkB,EAAG,EAAG,EAAI,CAI3B,MAFK,GAAI,GAAI,IAAK,GACb,EAAI,GAAI,IAAK,GACb,EAAI,EAAI,EAAW,EAAM,GAAI,GAAM,EAAI,EACvC,EAAI,EAAI,EAAW,EACnB,EAAI,EAAI,EAAW,EAAM,GAAI,GAAM,EAAM,GAAI,EAAI,GAC/C,EAIR,YAAuB,EAAI,CAE1B,MAAS,GAAI,OAAY,EAAI,YAAe,KAAK,IAAK,EAAI,YAAe,YAAc,KAIxF,YAAuB,EAAI,CAE1B,MAAS,GAAI,SAAc,EAAI,MAAQ,MAAU,KAAK,IAAK,EAAG,QAAc,KAI7E,QAAY,CAEX,YAAa,EAAG,EAAG,EAAI,CAEtB,MAAK,KAAM,QAAa,IAAM,OAGtB,KAAK,IAAK,GAIX,KAAK,OAAQ,EAAG,EAAG,GAI3B,IAAK,EAAQ,CAEZ,MAAK,IAAS,EAAM,QAEnB,KAAK,KAAM,GAEL,AAAK,MAAO,IAAU,SAE5B,KAAK,OAAQ,GAEF,MAAO,IAAU,UAE5B,KAAK,SAAU,GAIT,KAIR,UAAW,EAAS,CAEnB,YAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,EAAI,EAEF,KAIR,OAAQ,EAAM,CAEb,SAAM,KAAK,MAAO,GAElB,KAAK,EAAM,IAAO,GAAK,KAAQ,IAC/B,KAAK,EAAM,IAAO,EAAI,KAAQ,IAC9B,KAAK,EAAM,GAAM,KAAQ,IAElB,KAIR,OAAQ,EAAG,EAAG,EAAI,CAEjB,YAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,EAAI,EAEF,KAIR,OAAQ,EAAG,EAAG,EAAI,CAOjB,GAJA,EAAI,GAAiB,EAAG,GACxB,EAAI,GAAO,EAAG,EAAG,GACjB,EAAI,GAAO,EAAG,EAAG,GAEZ,IAAM,EAEV,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,MAErB,CAEN,KAAM,GAAI,GAAK,GAAM,EAAM,GAAI,GAAM,EAAI,EAAM,EAAI,EAC7C,EAAM,EAAI,EAAM,EAEtB,KAAK,EAAI,GAAS,EAAG,EAAG,EAAI,EAAI,GAChC,KAAK,EAAI,GAAS,EAAG,EAAG,GACxB,KAAK,EAAI,GAAS,EAAG,EAAG,EAAI,EAAI,GAIjC,MAAO,MAIR,SAAU,EAAQ,CAEjB,WAAsB,EAAS,CAE9B,AAAK,IAAW,QAEX,WAAY,GAAW,GAE3B,QAAQ,KAAM,mCAAqC,EAAQ,qBAO7D,GAAI,GAEJ,GAAK,EAAI,+BAA+B,KAAM,GAAU,CAIvD,GAAI,GACJ,KAAM,GAAO,EAAG,GACV,EAAa,EAAG,GAEtB,OAAS,OAEH,UACA,OAEJ,GAAK,EAAQ,+DAA+D,KAAM,GAGjF,YAAK,EAAI,KAAK,IAAK,IAAK,SAAU,EAAO,GAAK,KAAS,IACvD,KAAK,EAAI,KAAK,IAAK,IAAK,SAAU,EAAO,GAAK,KAAS,IACvD,KAAK,EAAI,KAAK,IAAK,IAAK,SAAU,EAAO,GAAK,KAAS,IAEvD,EAAa,EAAO,IAEb,KAIR,GAAK,EAAQ,qEAAqE,KAAM,GAGvF,YAAK,EAAI,KAAK,IAAK,IAAK,SAAU,EAAO,GAAK,KAAS,IACvD,KAAK,EAAI,KAAK,IAAK,IAAK,SAAU,EAAO,GAAK,KAAS,IACvD,KAAK,EAAI,KAAK,IAAK,IAAK,SAAU,EAAO,GAAK,KAAS,IAEvD,EAAa,EAAO,IAEb,KAIR,UAEI,UACA,OAEJ,GAAK,EAAQ,yEAAyE,KAAM,GAAe,CAG1G,KAAM,GAAI,WAAY,EAAO,IAAQ,IAC/B,EAAI,SAAU,EAAO,GAAK,IAAO,IACjC,EAAI,SAAU,EAAO,GAAK,IAAO,IAEvC,SAAa,EAAO,IAEb,KAAK,OAAQ,EAAG,EAAG,GAI3B,eAIS,EAAI,oBAAoB,KAAM,GAAU,CAInD,KAAM,GAAM,EAAG,GACT,EAAO,EAAI,OAEjB,GAAK,IAAS,EAGb,YAAK,EAAI,SAAU,EAAI,OAAQ,GAAM,EAAI,OAAQ,GAAK,IAAO,IAC7D,KAAK,EAAI,SAAU,EAAI,OAAQ,GAAM,EAAI,OAAQ,GAAK,IAAO,IAC7D,KAAK,EAAI,SAAU,EAAI,OAAQ,GAAM,EAAI,OAAQ,GAAK,IAAO,IAEtD,KAED,GAAK,IAAS,EAGpB,YAAK,EAAI,SAAU,EAAI,OAAQ,GAAM,EAAI,OAAQ,GAAK,IAAO,IAC7D,KAAK,EAAI,SAAU,EAAI,OAAQ,GAAM,EAAI,OAAQ,GAAK,IAAO,IAC7D,KAAK,EAAI,SAAU,EAAI,OAAQ,GAAM,EAAI,OAAQ,GAAK,IAAO,IAEtD,KAMT,MAAK,IAAS,EAAM,OAAS,EAErB,KAAK,aAAc,GAIpB,KAIR,aAAc,EAAQ,CAGrB,KAAM,GAAM,GAAgB,EAAM,eAElC,MAAK,KAAQ,OAGZ,KAAK,OAAQ,GAKb,QAAQ,KAAM,8BAAgC,GAIxC,KAIR,OAAQ,CAEP,MAAO,IAAI,MAAK,YAAa,KAAK,EAAG,KAAK,EAAG,KAAK,GAInD,KAAM,EAAQ,CAEb,YAAK,EAAI,EAAM,EACf,KAAK,EAAI,EAAM,EACf,KAAK,EAAI,EAAM,EAER,KAIR,iBAAkB,EAAQ,CAEzB,YAAK,EAAI,GAAc,EAAM,GAC7B,KAAK,EAAI,GAAc,EAAM,GAC7B,KAAK,EAAI,GAAc,EAAM,GAEtB,KAIR,iBAAkB,EAAQ,CAEzB,YAAK,EAAI,GAAc,EAAM,GAC7B,KAAK,EAAI,GAAc,EAAM,GAC7B,KAAK,EAAI,GAAc,EAAM,GAEtB,KAIR,qBAAsB,CAErB,YAAK,iBAAkB,MAEhB,KAIR,qBAAsB,CAErB,YAAK,iBAAkB,MAEhB,KAIR,QAAS,CAER,MAAS,MAAK,EAAI,KAAS,GAAO,KAAK,EAAI,KAAS,EAAM,KAAK,EAAI,KAAS,EAI7E,cAAe,CAEd,MAAS,UAAW,KAAK,SAAS,SAAU,KAAO,MAAO,IAI3D,OAAQ,EAAS,CAIhB,KAAM,GAAI,KAAK,EAAG,EAAI,KAAK,EAAG,EAAI,KAAK,EAEjC,EAAM,KAAK,IAAK,EAAG,EAAG,GACtB,EAAM,KAAK,IAAK,EAAG,EAAG,GAE5B,GAAI,GAAK,EACT,KAAM,GAAc,GAAM,GAAQ,EAElC,GAAK,IAAQ,EAEZ,EAAM,EACN,EAAa,MAEP,CAEN,KAAM,GAAQ,EAAM,EAIpB,OAFA,EAAa,GAAa,GAAM,EAAU,GAAM,GAAQ,EAAU,GAAI,EAAM,GAEnE,OAEH,GAAG,EAAQ,GAAI,GAAM,EAAU,GAAI,EAAI,EAAI,GAAK,UAChD,GAAG,EAAQ,GAAI,GAAM,EAAQ,EAAG,UAChC,GAAG,EAAQ,GAAI,GAAM,EAAQ,EAAG,MAItC,GAAO,EAIR,SAAO,EAAI,EACX,EAAO,EAAI,EACX,EAAO,EAAI,EAEJ,EAIR,UAAW,CAEV,MAAO,OAAa,MAAK,EAAI,IAAQ,GAAM,IAAU,MAAK,EAAI,IAAQ,GAAM,IAAU,MAAK,EAAI,IAAQ,GAAM,IAI9G,UAAW,EAAG,EAAG,EAAI,CAEpB,YAAK,OAAQ,IAEb,GAAM,GAAK,EAAG,GAAM,GAAK,EAAG,GAAM,GAAK,EAEvC,KAAK,OAAQ,GAAM,EAAG,GAAM,EAAG,GAAM,GAE9B,KAIR,IAAK,EAAQ,CAEZ,YAAK,GAAK,EAAM,EAChB,KAAK,GAAK,EAAM,EAChB,KAAK,GAAK,EAAM,EAET,KAIR,UAAW,EAAQ,EAAS,CAE3B,YAAK,EAAI,EAAO,EAAI,EAAO,EAC3B,KAAK,EAAI,EAAO,EAAI,EAAO,EAC3B,KAAK,EAAI,EAAO,EAAI,EAAO,EAEpB,KAIR,UAAW,EAAI,CAEd,YAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EAEH,KAIR,IAAK,EAAQ,CAEZ,YAAK,EAAI,KAAK,IAAK,EAAG,KAAK,EAAI,EAAM,GACrC,KAAK,EAAI,KAAK,IAAK,EAAG,KAAK,EAAI,EAAM,GACrC,KAAK,EAAI,KAAK,IAAK,EAAG,KAAK,EAAI,EAAM,GAE9B,KAIR,SAAU,EAAQ,CAEjB,YAAK,GAAK,EAAM,EAChB,KAAK,GAAK,EAAM,EAChB,KAAK,GAAK,EAAM,EAET,KAIR,eAAgB,EAAI,CAEnB,YAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EAEH,KAIR,KAAM,EAAO,EAAQ,CAEpB,YAAK,GAAO,GAAM,EAAI,KAAK,GAAM,EACjC,KAAK,GAAO,GAAM,EAAI,KAAK,GAAM,EACjC,KAAK,GAAO,GAAM,EAAI,KAAK,GAAM,EAE1B,KAIR,WAAY,EAAQ,EAAQ,EAAQ,CAEnC,YAAK,EAAI,EAAO,EAAM,GAAO,EAAI,EAAO,GAAM,EAC9C,KAAK,EAAI,EAAO,EAAM,GAAO,EAAI,EAAO,GAAM,EAC9C,KAAK,EAAI,EAAO,EAAM,GAAO,EAAI,EAAO,GAAM,EAEvC,KAIR,QAAS,EAAO,EAAQ,CAEvB,KAAK,OAAQ,IACb,EAAM,OAAQ,IAEd,KAAM,GAAIA,GAAM,GAAM,EAAG,GAAM,EAAG,GAC5B,EAAIA,GAAM,GAAM,EAAG,GAAM,EAAG,GAC5B,EAAIA,GAAM,GAAM,EAAG,GAAM,EAAG,GAElC,YAAK,OAAQ,EAAG,EAAG,GAEZ,KAIR,OAAQ,EAAI,CAEX,MAAS,GAAE,IAAM,KAAK,GAAS,EAAE,IAAM,KAAK,GAAS,EAAE,IAAM,KAAK,EAInE,UAAW,EAAO,EAAS,EAAI,CAE9B,YAAK,EAAI,EAAO,GAChB,KAAK,EAAI,EAAO,EAAS,GACzB,KAAK,EAAI,EAAO,EAAS,GAElB,KAIR,QAAS,EAAQ,GAAI,EAAS,EAAI,CAEjC,SAAO,GAAW,KAAK,EACvB,EAAO,EAAS,GAAM,KAAK,EAC3B,EAAO,EAAS,GAAM,KAAK,EAEpB,EAIR,oBAAqB,EAAW,EAAQ,CAEvC,YAAK,EAAI,EAAU,KAAM,GACzB,KAAK,EAAI,EAAU,KAAM,GACzB,KAAK,EAAI,EAAU,KAAM,GAEpB,EAAU,aAAe,IAI7B,MAAK,GAAK,IACV,KAAK,GAAK,IACV,KAAK,GAAK,KAIJ,KAIR,QAAS,CAER,MAAO,MAAK,UAMd,GAAM,MAAQ,GAEd,GAAM,UAAU,QAAU,GAC1B,GAAM,UAAU,EAAI,EACpB,GAAM,UAAU,EAAI,EACpB,GAAM,UAAU,EAAI,EAEpB,GAAI,IAEJ,QAAiB,OAET,YAAY,EAAQ,CAQ1B,GANK,UAAU,KAAM,EAAM,MAMtB,MAAO,oBAAqB,YAEhC,MAAO,GAAM,IAId,GAAI,GAEJ,GAAK,YAAiB,mBAErB,EAAS,MAEH,CAEN,AAAK,KAAY,QAAY,IAAU,GAAiB,WAExD,GAAQ,MAAQ,EAAM,MACtB,GAAQ,OAAS,EAAM,OAEvB,KAAM,GAAU,GAAQ,WAAY,MAEpC,AAAK,YAAiB,WAErB,EAAQ,aAAc,EAAO,EAAG,GAIhC,EAAQ,UAAW,EAAO,EAAG,EAAG,EAAM,MAAO,EAAM,QAIpD,EAAS,GAIV,MAAK,GAAO,MAAQ,MAAQ,EAAO,OAAS,KAE3C,SAAQ,KAAM,8EAA+E,GAEtF,EAAO,UAAW,aAAc,KAIhC,EAAO,UAAW,mBAMpB,cAAc,EAAQ,CAE5B,GAAO,MAAO,mBAAqB,aAAe,YAAiB,mBAChE,MAAO,oBAAsB,aAAe,YAAiB,oBAC7D,MAAO,cAAgB,aAAe,YAAiB,aAAgB,CAEzE,KAAM,GAAS,GAAiB,UAEhC,EAAO,MAAQ,EAAM,MACrB,EAAO,OAAS,EAAM,OAEtB,KAAM,GAAU,EAAO,WAAY,MACnC,EAAQ,UAAW,EAAO,EAAG,EAAG,EAAM,MAAO,EAAM,QAEnD,KAAM,GAAY,EAAQ,aAAc,EAAG,EAAG,EAAM,MAAO,EAAM,QAC3D,EAAO,EAAU,KAEvB,OAAU,GAAI,EAAG,EAAI,EAAK,OAAQ,IAEjC,EAAM,GAAM,GAAc,EAAM,GAAM,KAAQ,IAI/C,SAAQ,aAAc,EAAW,EAAG,GAE7B,UAEI,EAAM,KAAO,CAExB,KAAM,GAAO,EAAM,KAAK,MAAO,GAE/B,OAAU,GAAI,EAAG,EAAI,EAAK,OAAQ,IAEjC,AAAK,YAAgB,aAAc,YAAgB,mBAElD,EAAM,GAAM,KAAK,MAAO,GAAc,EAAM,GAAM,KAAQ,KAM1D,EAAM,GAAM,GAAc,EAAM,IAMlC,MAAO,CACN,KAAM,EACN,MAAO,EAAM,MACb,OAAQ,EAAM,YAKf,gBAAQ,KAAM,+FACP,GAQV,GAAI,IAAY,EAEhB,gBAAsB,GAAgB,CAErC,YAAa,EAAQ,GAAQ,cAAe,EAAU,GAAQ,gBAAiB,EAAQ,KAAqB,EAAQ,KAAqB,EAAY,KAAc,EAAY,KAA0B,EAAS,KAAY,EAAO,KAAkB,EAAa,EAAG,EAAW,IAAiB,CAElS,QAEA,OAAO,eAAgB,KAAM,KAAM,CAAE,MAAO,OAE5C,KAAK,KAAO,KAEZ,KAAK,KAAO,GAEZ,KAAK,MAAQ,EACb,KAAK,QAAU,GAEf,KAAK,QAAU,EAEf,KAAK,MAAQ,EACb,KAAK,MAAQ,EAEb,KAAK,UAAY,EACjB,KAAK,UAAY,EAEjB,KAAK,WAAa,EAElB,KAAK,OAAS,EACd,KAAK,eAAiB,KACtB,KAAK,KAAO,EAEZ,KAAK,OAAS,GAAI,GAAS,EAAG,GAC9B,KAAK,OAAS,GAAI,GAAS,EAAG,GAC9B,KAAK,OAAS,GAAI,GAAS,EAAG,GAC9B,KAAK,SAAW,EAEhB,KAAK,iBAAmB,GACxB,KAAK,OAAS,GAAI,IAElB,KAAK,gBAAkB,GACvB,KAAK,iBAAmB,GACxB,KAAK,MAAQ,GACb,KAAK,gBAAkB,EAMvB,KAAK,SAAW,EAEhB,KAAK,SAAW,GAEhB,KAAK,QAAU,EACf,KAAK,SAAW,KAEhB,KAAK,sBAAwB,GAC7B,KAAK,iBAAmB,GAIzB,cAAe,CAEd,KAAK,OAAO,eAAgB,KAAK,OAAO,EAAG,KAAK,OAAO,EAAG,KAAK,OAAO,EAAG,KAAK,OAAO,EAAG,KAAK,SAAU,KAAK,OAAO,EAAG,KAAK,OAAO,GAInI,OAAQ,CAEP,MAAO,IAAI,MAAK,cAAc,KAAM,MAIrC,KAAM,EAAS,CAEd,YAAK,KAAO,EAAO,KAEnB,KAAK,MAAQ,EAAO,MACpB,KAAK,QAAU,EAAO,QAAQ,MAAO,GAErC,KAAK,QAAU,EAAO,QAEtB,KAAK,MAAQ,EAAO,MACpB,KAAK,MAAQ,EAAO,MAEpB,KAAK,UAAY,EAAO,UACxB,KAAK,UAAY,EAAO,UAExB,KAAK,WAAa,EAAO,WAEzB,KAAK,OAAS,EAAO,OACrB,KAAK,eAAiB,EAAO,eAC7B,KAAK,KAAO,EAAO,KAEnB,KAAK,OAAO,KAAM,EAAO,QACzB,KAAK,OAAO,KAAM,EAAO,QACzB,KAAK,OAAO,KAAM,EAAO,QACzB,KAAK,SAAW,EAAO,SAEvB,KAAK,iBAAmB,EAAO,iBAC/B,KAAK,OAAO,KAAM,EAAO,QAEzB,KAAK,gBAAkB,EAAO,gBAC9B,KAAK,iBAAmB,EAAO,iBAC/B,KAAK,MAAQ,EAAO,MACpB,KAAK,gBAAkB,EAAO,gBAC9B,KAAK,SAAW,EAAO,SAEvB,KAAK,SAAW,KAAK,MAAO,KAAK,UAAW,EAAO,WAE5C,KAIR,OAAQ,EAAO,CAEd,KAAM,GAAiB,IAAS,QAAa,MAAO,IAAS,SAE7D,GAAK,CAAE,GAAgB,EAAK,SAAU,KAAK,QAAW,OAErD,MAAO,GAAK,SAAU,KAAK,MAI5B,KAAM,GAAS,CAEd,SAAU,CACT,QAAS,IACT,KAAM,UACN,UAAW,kBAGZ,KAAM,KAAK,KACX,KAAM,KAAK,KAEX,QAAS,KAAK,QAEd,OAAQ,CAAE,KAAK,OAAO,EAAG,KAAK,OAAO,GACrC,OAAQ,CAAE,KAAK,OAAO,EAAG,KAAK,OAAO,GACrC,OAAQ,CAAE,KAAK,OAAO,EAAG,KAAK,OAAO,GACrC,SAAU,KAAK,SAEf,KAAM,CAAE,KAAK,MAAO,KAAK,OAEzB,OAAQ,KAAK,OACb,KAAM,KAAK,KACX,SAAU,KAAK,SAEf,UAAW,KAAK,UAChB,UAAW,KAAK,UAChB,WAAY,KAAK,WAEjB,MAAO,KAAK,MAEZ,iBAAkB,KAAK,iBACvB,gBAAiB,KAAK,iBAIvB,GAAK,KAAK,QAAU,OAAY,CAI/B,KAAM,GAAQ,KAAK,MAQnB,GANK,EAAM,OAAS,QAEnB,GAAM,KAAO,MAIT,CAAE,GAAgB,EAAK,OAAQ,EAAM,QAAW,OAAY,CAEhE,GAAI,GAEJ,GAAK,MAAM,QAAS,GAAU,CAI7B,EAAM,GAEN,OAAU,GAAI,EAAG,EAAI,EAAM,OAAQ,EAAI,EAAG,IAIzC,AAAK,EAAO,GAAI,cAEf,EAAI,KAAM,GAAgB,EAAO,GAAI,QAIrC,EAAI,KAAM,GAAgB,EAAO,SAUnC,GAAM,GAAgB,GAIvB,EAAK,OAAQ,EAAM,MAAS,CAC3B,KAAM,EAAM,KACZ,IAAK,GAKP,EAAO,MAAQ,EAAM,KAItB,MAAK,MAAK,UAAW,KAAK,YAAe,MAAO,GAAO,SAAW,KAAK,UAEhE,GAEN,GAAK,SAAU,KAAK,MAAS,GAIvB,EAIR,SAAU,CAET,KAAK,cAAe,CAAE,KAAM,YAI7B,YAAa,EAAK,CAEjB,GAAK,KAAK,UAAY,IAAY,MAAO,GAIzC,GAFA,EAAG,aAAc,KAAK,QAEjB,EAAG,EAAI,GAAK,EAAG,EAAI,EAEvB,OAAS,KAAK,WAER,KAEJ,EAAG,EAAI,EAAG,EAAI,KAAK,MAAO,EAAG,GAC7B,UAEI,MAEJ,EAAG,EAAI,EAAG,EAAI,EAAI,EAAI,EACtB,UAEI,MAEJ,AAAK,KAAK,IAAK,KAAK,MAAO,EAAG,GAAM,KAAQ,EAE3C,EAAG,EAAI,KAAK,KAAM,EAAG,GAAM,EAAG,EAI9B,EAAG,EAAI,EAAG,EAAI,KAAK,MAAO,EAAG,GAI9B,MAMH,GAAK,EAAG,EAAI,GAAK,EAAG,EAAI,EAEvB,OAAS,KAAK,WAER,KAEJ,EAAG,EAAI,EAAG,EAAI,KAAK,MAAO,EAAG,GAC7B,UAEI,MAEJ,EAAG,EAAI,EAAG,EAAI,EAAI,EAAI,EACtB,UAEI,MAEJ,AAAK,KAAK,IAAK,KAAK,MAAO,EAAG,GAAM,KAAQ,EAE3C,EAAG,EAAI,KAAK,KAAM,EAAG,GAAM,EAAG,EAI9B,EAAG,EAAI,EAAG,EAAI,KAAK,MAAO,EAAG,GAI9B,MAMH,MAAK,MAAK,OAET,GAAG,EAAI,EAAI,EAAG,GAIR,KAIJ,aAAa,EAAQ,CAExB,AAAK,IAAU,IAAO,KAAK,WAM7B,GAAQ,cAAgB,OACxB,GAAQ,gBAAkB,IAE1B,GAAQ,UAAU,UAAY,GAE9B,YAAyB,EAAQ,CAEhC,MAAO,OAAO,mBAAqB,aAAe,YAAiB,mBAChE,MAAO,oBAAsB,aAAe,YAAiB,oBAC7D,MAAO,cAAgB,aAAe,YAAiB,aAIlD,GAAW,WAAY,GAIzB,EAAM,KAIH,CACN,KAAM,MAAM,UAAU,MAAM,KAAM,EAAM,MACxC,MAAO,EAAM,MACb,OAAQ,EAAM,OACd,KAAM,EAAM,KAAK,YAAY,MAK9B,SAAQ,KAAM,+CACP,IAQV,QAAc,CAEb,YAAa,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAI,CAEzC,KAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,EAAI,KAIN,QAAQ,CAEX,MAAO,MAAK,KAIT,OAAO,EAAQ,CAElB,KAAK,EAAI,KAIN,SAAS,CAEZ,MAAO,MAAK,KAIT,QAAQ,EAAQ,CAEnB,KAAK,EAAI,EAIV,IAAK,EAAG,EAAG,EAAG,EAAI,CAEjB,YAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,EAAI,EAEF,KAIR,UAAW,EAAS,CAEnB,YAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,EAAI,EAEF,KAIR,KAAM,EAAI,CAET,YAAK,EAAI,EAEF,KAIR,KAAM,EAAI,CAET,YAAK,EAAI,EAEF,KAIR,KAAM,EAAI,CAET,YAAK,EAAI,EAEF,KAIR,KAAM,EAAI,CAET,YAAK,EAAI,EAEF,KAIR,aAAc,EAAO,EAAQ,CAE5B,OAAS,OAEH,GAAG,KAAK,EAAI,EAAO,UACnB,GAAG,KAAK,EAAI,EAAO,UACnB,GAAG,KAAK,EAAI,EAAO,UACnB,GAAG,KAAK,EAAI,EAAO,cACf,KAAM,IAAI,OAAO,0BAA4B,GAIvD,MAAO,MAIR,aAAc,EAAQ,CAErB,OAAS,OAEH,GAAG,MAAO,MAAK,MACf,GAAG,MAAO,MAAK,MACf,GAAG,MAAO,MAAK,MACf,GAAG,MAAO,MAAK,UACX,KAAM,IAAI,OAAO,0BAA4B,IAMxD,OAAQ,CAEP,MAAO,IAAI,MAAK,YAAa,KAAK,EAAG,KAAK,EAAG,KAAK,EAAG,KAAK,GAI3D,KAAM,EAAI,CAET,YAAK,EAAI,EAAE,EACX,KAAK,EAAI,EAAE,EACX,KAAK,EAAI,EAAE,EACX,KAAK,EAAM,EAAE,IAAM,OAAc,EAAE,EAAI,EAEhC,KAIR,IAAK,EAAG,EAAI,CAEX,MAAK,KAAM,OAEV,SAAQ,KAAM,yFACP,KAAK,WAAY,EAAG,IAI5B,MAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EAEL,MAIR,UAAW,EAAI,CAEd,YAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EAEH,KAIR,WAAY,EAAG,EAAI,CAElB,YAAK,EAAI,EAAE,EAAI,EAAE,EACjB,KAAK,EAAI,EAAE,EAAI,EAAE,EACjB,KAAK,EAAI,EAAE,EAAI,EAAE,EACjB,KAAK,EAAI,EAAE,EAAI,EAAE,EAEV,KAIR,gBAAiB,EAAG,EAAI,CAEvB,YAAK,GAAK,EAAE,EAAI,EAChB,KAAK,GAAK,EAAE,EAAI,EAChB,KAAK,GAAK,EAAE,EAAI,EAChB,KAAK,GAAK,EAAE,EAAI,EAET,KAIR,IAAK,EAAG,EAAI,CAEX,MAAK,KAAM,OAEV,SAAQ,KAAM,yFACP,KAAK,WAAY,EAAG,IAI5B,MAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EAEL,MAIR,UAAW,EAAI,CAEd,YAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EAEH,KAIR,WAAY,EAAG,EAAI,CAElB,YAAK,EAAI,EAAE,EAAI,EAAE,EACjB,KAAK,EAAI,EAAE,EAAI,EAAE,EACjB,KAAK,EAAI,EAAE,EAAI,EAAE,EACjB,KAAK,EAAI,EAAE,EAAI,EAAE,EAEV,KAIR,SAAU,EAAI,CAEb,YAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EAEL,KAIR,eAAgB,EAAS,CAExB,YAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EAEH,KAIR,aAAc,EAAI,CAEjB,KAAM,GAAI,KAAK,EAAG,EAAI,KAAK,EAAG,EAAI,KAAK,EAAG,EAAI,KAAK,EAC7C,EAAI,EAAE,SAEZ,YAAK,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,IAAO,EAC1D,KAAK,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,IAAO,EAC1D,KAAK,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,IAAO,EAAI,EAAG,IAAO,EAC3D,KAAK,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,IAAO,EAAI,EAAG,IAAO,EAEpD,KAIR,aAAc,EAAS,CAEtB,MAAO,MAAK,eAAgB,EAAI,GAIjC,2BAA4B,EAAI,CAM/B,KAAK,EAAI,EAAI,KAAK,KAAM,EAAE,GAE1B,KAAM,GAAI,KAAK,KAAM,EAAI,EAAE,EAAI,EAAE,GAEjC,MAAK,GAAI,KAER,MAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,EAAI,GAIT,MAAK,EAAI,EAAE,EAAI,EACf,KAAK,EAAI,EAAE,EAAI,EACf,KAAK,EAAI,EAAE,EAAI,GAIT,KAIR,+BAAgC,EAAI,CAMnC,GAAI,GAAO,EAAG,EAAG,EACjB,KAGC,GAAK,EAAE,SAEP,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GACxC,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GACxC,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,IAEzC,GAAO,KAAK,IAAK,EAAM,GAAQ,KACxB,KAAK,IAAK,EAAM,GAAQ,KACxB,KAAK,IAAK,EAAM,GAAQ,IAAY,CAM1C,GAAO,KAAK,IAAK,EAAM,GAAQ,IACxB,KAAK,IAAK,EAAM,GAAQ,IACxB,KAAK,IAAK,EAAM,GAAQ,IACxB,KAAK,IAAK,EAAM,EAAM,EAAM,GAAM,GAIxC,YAAK,IAAK,EAAG,EAAG,EAAG,GAEZ,KAMR,EAAQ,KAAK,GAEb,KAAM,GAAO,GAAM,GAAM,EACnB,EAAO,GAAM,GAAM,EACnB,EAAO,GAAM,GAAM,EACnB,EAAO,GAAM,GAAQ,EACrB,EAAO,GAAM,GAAQ,EACrB,EAAO,GAAM,GAAQ,EAE3B,MAAO,GAAK,GAAU,EAAK,EAI1B,AAAK,EAAK,IAET,GAAI,EACJ,EAAI,WACJ,EAAI,YAIJ,GAAI,KAAK,KAAM,GACf,EAAI,EAAK,EACT,EAAI,EAAK,GAIJ,AAAK,EAAK,EAIhB,AAAK,EAAK,IAET,GAAI,WACJ,EAAI,EACJ,EAAI,YAIJ,GAAI,KAAK,KAAM,GACf,EAAI,EAAK,EACT,EAAI,EAAK,GAQV,AAAK,EAAK,IAET,GAAI,WACJ,EAAI,WACJ,EAAI,GAIJ,GAAI,KAAK,KAAM,GACf,EAAI,EAAK,EACT,EAAI,EAAK,GAMX,KAAK,IAAK,EAAG,EAAG,EAAG,GAEZ,KAMR,GAAI,GAAI,KAAK,KAAQ,GAAM,GAAU,GAAM,GACxC,GAAM,GAAU,GAAM,GACtB,GAAM,GAAU,GAAM,IAEzB,MAAK,MAAK,IAAK,GAAM,MAAQ,GAAI,GAKjC,KAAK,EAAM,GAAM,GAAQ,EACzB,KAAK,EAAM,GAAM,GAAQ,EACzB,KAAK,EAAM,GAAM,GAAQ,EACzB,KAAK,EAAI,KAAK,KAAQ,GAAM,EAAM,EAAM,GAAM,GAEvC,KAIR,IAAK,EAAI,CAER,YAAK,EAAI,KAAK,IAAK,KAAK,EAAG,EAAE,GAC7B,KAAK,EAAI,KAAK,IAAK,KAAK,EAAG,EAAE,GAC7B,KAAK,EAAI,KAAK,IAAK,KAAK,EAAG,EAAE,GAC7B,KAAK,EAAI,KAAK,IAAK,KAAK,EAAG,EAAE,GAEtB,KAIR,IAAK,EAAI,CAER,YAAK,EAAI,KAAK,IAAK,KAAK,EAAG,EAAE,GAC7B,KAAK,EAAI,KAAK,IAAK,KAAK,EAAG,EAAE,GAC7B,KAAK,EAAI,KAAK,IAAK,KAAK,EAAG,EAAE,GAC7B,KAAK,EAAI,KAAK,IAAK,KAAK,EAAG,EAAE,GAEtB,KAIR,MAAO,EAAK,EAAM,CAIjB,YAAK,EAAI,KAAK,IAAK,EAAI,EAAG,KAAK,IAAK,EAAI,EAAG,KAAK,IAChD,KAAK,EAAI,KAAK,IAAK,EAAI,EAAG,KAAK,IAAK,EAAI,EAAG,KAAK,IAChD,KAAK,EAAI,KAAK,IAAK,EAAI,EAAG,KAAK,IAAK,EAAI,EAAG,KAAK,IAChD,KAAK,EAAI,KAAK,IAAK,EAAI,EAAG,KAAK,IAAK,EAAI,EAAG,KAAK,IAEzC,KAIR,YAAa,EAAQ,EAAS,CAE7B,YAAK,EAAI,KAAK,IAAK,EAAQ,KAAK,IAAK,EAAQ,KAAK,IAClD,KAAK,EAAI,KAAK,IAAK,EAAQ,KAAK,IAAK,EAAQ,KAAK,IAClD,KAAK,EAAI,KAAK,IAAK,EAAQ,KAAK,IAAK,EAAQ,KAAK,IAClD,KAAK,EAAI,KAAK,IAAK,EAAQ,KAAK,IAAK,EAAQ,KAAK,IAE3C,KAIR,YAAa,EAAK,EAAM,CAEvB,KAAM,GAAS,KAAK,SAEpB,MAAO,MAAK,aAAc,GAAU,GAAI,eAAgB,KAAK,IAAK,EAAK,KAAK,IAAK,EAAK,KAIvF,OAAQ,CAEP,YAAK,EAAI,KAAK,MAAO,KAAK,GAC1B,KAAK,EAAI,KAAK,MAAO,KAAK,GAC1B,KAAK,EAAI,KAAK,MAAO,KAAK,GAC1B,KAAK,EAAI,KAAK,MAAO,KAAK,GAEnB,KAIR,MAAO,CAEN,YAAK,EAAI,KAAK,KAAM,KAAK,GACzB,KAAK,EAAI,KAAK,KAAM,KAAK,GACzB,KAAK,EAAI,KAAK,KAAM,KAAK,GACzB,KAAK,EAAI,KAAK,KAAM,KAAK,GAElB,KAIR,OAAQ,CAEP,YAAK,EAAI,KAAK,MAAO,KAAK,GAC1B,KAAK,EAAI,KAAK,MAAO,KAAK,GAC1B,KAAK,EAAI,KAAK,MAAO,KAAK,GAC1B,KAAK,EAAI,KAAK,MAAO,KAAK,GAEnB,KAIR,aAAc,CAEb,YAAK,EAAM,KAAK,EAAI,EAAM,KAAK,KAAM,KAAK,GAAM,KAAK,MAAO,KAAK,GACjE,KAAK,EAAM,KAAK,EAAI,EAAM,KAAK,KAAM,KAAK,GAAM,KAAK,MAAO,KAAK,GACjE,KAAK,EAAM,KAAK,EAAI,EAAM,KAAK,KAAM,KAAK,GAAM,KAAK,MAAO,KAAK,GACjE,KAAK,EAAM,KAAK,EAAI,EAAM,KAAK,KAAM,KAAK,GAAM,KAAK,MAAO,KAAK,GAE1D,KAIR,QAAS,CAER,YAAK,EAAI,CAAE,KAAK,EAChB,KAAK,EAAI,CAAE,KAAK,EAChB,KAAK,EAAI,CAAE,KAAK,EAChB,KAAK,EAAI,CAAE,KAAK,EAET,KAIR,IAAK,EAAI,CAER,MAAO,MAAK,EAAI,EAAE,EAAI,KAAK,EAAI,EAAE,EAAI,KAAK,EAAI,EAAE,EAAI,KAAK,EAAI,EAAE,EAIhE,UAAW,CAEV,MAAO,MAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAI5E,QAAS,CAER,MAAO,MAAK,KAAM,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,GAIvF,iBAAkB,CAEjB,MAAO,MAAK,IAAK,KAAK,GAAM,KAAK,IAAK,KAAK,GAAM,KAAK,IAAK,KAAK,GAAM,KAAK,IAAK,KAAK,GAItF,WAAY,CAEX,MAAO,MAAK,aAAc,KAAK,UAAY,GAI5C,UAAW,EAAS,CAEnB,MAAO,MAAK,YAAY,eAAgB,GAIzC,KAAM,EAAG,EAAQ,CAEhB,YAAK,GAAO,GAAE,EAAI,KAAK,GAAM,EAC7B,KAAK,GAAO,GAAE,EAAI,KAAK,GAAM,EAC7B,KAAK,GAAO,GAAE,EAAI,KAAK,GAAM,EAC7B,KAAK,GAAO,GAAE,EAAI,KAAK,GAAM,EAEtB,KAIR,YAAa,EAAI,EAAI,EAAQ,CAE5B,YAAK,EAAI,EAAG,EAAM,GAAG,EAAI,EAAG,GAAM,EAClC,KAAK,EAAI,EAAG,EAAM,GAAG,EAAI,EAAG,GAAM,EAClC,KAAK,EAAI,EAAG,EAAM,GAAG,EAAI,EAAG,GAAM,EAClC,KAAK,EAAI,EAAG,EAAM,GAAG,EAAI,EAAG,GAAM,EAE3B,KAIR,OAAQ,EAAI,CAEX,MAAW,GAAE,IAAM,KAAK,GAAS,EAAE,IAAM,KAAK,GAAS,EAAE,IAAM,KAAK,GAAS,EAAE,IAAM,KAAK,EAI3F,UAAW,EAAO,EAAS,EAAI,CAE9B,YAAK,EAAI,EAAO,GAChB,KAAK,EAAI,EAAO,EAAS,GACzB,KAAK,EAAI,EAAO,EAAS,GACzB,KAAK,EAAI,EAAO,EAAS,GAElB,KAIR,QAAS,EAAQ,GAAI,EAAS,EAAI,CAEjC,SAAO,GAAW,KAAK,EACvB,EAAO,EAAS,GAAM,KAAK,EAC3B,EAAO,EAAS,GAAM,KAAK,EAC3B,EAAO,EAAS,GAAM,KAAK,EAEpB,EAIR,oBAAqB,EAAW,EAAO,EAAS,CAE/C,MAAK,KAAW,QAEf,QAAQ,KAAM,uEAIf,KAAK,EAAI,EAAU,KAAM,GACzB,KAAK,EAAI,EAAU,KAAM,GACzB,KAAK,EAAI,EAAU,KAAM,GACzB,KAAK,EAAI,EAAU,KAAM,GAElB,KAIR,QAAS,CAER,YAAK,EAAI,KAAK,SACd,KAAK,EAAI,KAAK,SACd,KAAK,EAAI,KAAK,SACd,KAAK,EAAI,KAAK,SAEP,OAIL,OAAO,WAAa,CAEtB,KAAM,MAAK,EACX,KAAM,MAAK,EACX,KAAM,MAAK,EACX,KAAM,MAAK,GAMb,GAAQ,UAAU,UAAY,GAO9B,gBAAgC,GAAgB,CAE/C,YAAa,EAAO,EAAQ,EAAU,GAAK,CAE1C,QAEA,KAAK,MAAQ,EACb,KAAK,OAAS,EACd,KAAK,MAAQ,EAEb,KAAK,QAAU,GAAI,IAAS,EAAG,EAAG,EAAO,GACzC,KAAK,YAAc,GAEnB,KAAK,SAAW,GAAI,IAAS,EAAG,EAAG,EAAO,GAE1C,KAAK,QAAU,GAAI,IAAS,OAAW,EAAQ,QAAS,EAAQ,MAAO,EAAQ,MAAO,EAAQ,UAAW,EAAQ,UAAW,EAAQ,OAAQ,EAAQ,KAAM,EAAQ,WAAY,EAAQ,UACtL,KAAK,QAAQ,sBAAwB,GAErC,KAAK,QAAQ,MAAQ,CAAE,MAAO,EAAO,OAAQ,EAAQ,MAAO,GAE5D,KAAK,QAAQ,gBAAkB,EAAQ,kBAAoB,OAAY,EAAQ,gBAAkB,GACjG,KAAK,QAAQ,eAAiB,EAAQ,iBAAmB,OAAY,EAAQ,eAAiB,KAC9F,KAAK,QAAQ,UAAY,EAAQ,YAAc,OAAY,EAAQ,UAAY,KAE/E,KAAK,YAAc,EAAQ,cAAgB,OAAY,EAAQ,YAAc,GAC7E,KAAK,cAAgB,EAAQ,gBAAkB,OAAY,EAAQ,cAAgB,GACnF,KAAK,aAAe,EAAQ,eAAiB,OAAY,EAAQ,aAAe,KAIjF,WAAY,EAAU,CAErB,EAAQ,MAAQ,CACf,MAAO,KAAK,MACZ,OAAQ,KAAK,OACb,MAAO,KAAK,OAGb,KAAK,QAAU,EAIhB,QAAS,EAAO,EAAQ,EAAQ,EAAI,CAEnC,AAAK,MAAK,QAAU,GAAS,KAAK,SAAW,GAAU,KAAK,QAAU,IAErE,MAAK,MAAQ,EACb,KAAK,OAAS,EACd,KAAK,MAAQ,EAEb,KAAK,QAAQ,MAAM,MAAQ,EAC3B,KAAK,QAAQ,MAAM,OAAS,EAC5B,KAAK,QAAQ,MAAM,MAAQ,EAE3B,KAAK,WAIN,KAAK,SAAS,IAAK,EAAG,EAAG,EAAO,GAChC,KAAK,QAAQ,IAAK,EAAG,EAAG,EAAO,GAIhC,OAAQ,CAEP,MAAO,IAAI,MAAK,cAAc,KAAM,MAIrC,KAAM,EAAS,CAEd,YAAK,MAAQ,EAAO,MACpB,KAAK,OAAS,EAAO,OACrB,KAAK,MAAQ,EAAO,MAEpB,KAAK,SAAS,KAAM,EAAO,UAE3B,KAAK,QAAU,EAAO,QAAQ,QAI9B,KAAK,QAAQ,MAAQ,OAAO,OAAQ,GAAI,EAAO,QAAQ,OAEvD,KAAK,YAAc,EAAO,YAC1B,KAAK,cAAgB,EAAO,cAC5B,KAAK,aAAe,EAAO,aAEpB,KAIR,SAAU,CAET,KAAK,cAAe,CAAE,KAAM,aAM9B,GAAkB,UAAU,oBAAsB,GAElD,gBAAyC,GAAkB,CAE1D,YAAa,EAAO,EAAQ,EAAQ,CAEnC,MAAO,EAAO,GAEd,KAAM,GAAU,KAAK,QAErB,KAAK,QAAU,GAEf,OAAU,GAAI,EAAG,EAAI,EAAO,IAE3B,KAAK,QAAS,GAAM,EAAQ,QAM9B,QAAS,EAAO,EAAQ,EAAQ,EAAI,CAEnC,GAAK,KAAK,QAAU,GAAS,KAAK,SAAW,GAAU,KAAK,QAAU,EAAQ,CAE7E,KAAK,MAAQ,EACb,KAAK,OAAS,EACd,KAAK,MAAQ,EAEb,OAAU,GAAI,EAAG,EAAK,KAAK,QAAQ,OAAQ,EAAI,EAAI,IAElD,KAAK,QAAS,GAAI,MAAM,MAAQ,EAChC,KAAK,QAAS,GAAI,MAAM,OAAS,EACjC,KAAK,QAAS,GAAI,MAAM,MAAQ,EAIjC,KAAK,UAIN,YAAK,SAAS,IAAK,EAAG,EAAG,EAAO,GAChC,KAAK,QAAQ,IAAK,EAAG,EAAG,EAAO,GAExB,KAIR,KAAM,EAAS,CAEd,KAAK,UAEL,KAAK,MAAQ,EAAO,MACpB,KAAK,OAAS,EAAO,OACrB,KAAK,MAAQ,EAAO,MAEpB,KAAK,SAAS,IAAK,EAAG,EAAG,KAAK,MAAO,KAAK,QAC1C,KAAK,QAAQ,IAAK,EAAG,EAAG,KAAK,MAAO,KAAK,QAEzC,KAAK,YAAc,EAAO,YAC1B,KAAK,cAAgB,EAAO,cAC5B,KAAK,aAAe,EAAO,aAE3B,KAAK,QAAQ,OAAS,EAEtB,OAAU,GAAI,EAAG,EAAK,EAAO,QAAQ,OAAQ,EAAI,EAAI,IAEpD,KAAK,QAAS,GAAM,EAAO,QAAS,GAAI,QAIzC,MAAO,OAMT,GAA2B,UAAU,6BAA+B,GAEpE,gBAA2C,GAAkB,CAE5D,YAAa,EAAO,EAAQ,EAAU,GAAK,CAE1C,MAAO,EAAO,EAAQ,GAEtB,KAAK,QAAU,EAEf,KAAK,8BAAgC,EAAQ,cAAgB,OAAY,EAAQ,YAAc,GAC/F,KAAK,mBAAuB,EAAQ,qBAAuB,OAAc,EAAQ,mBAAqB,GACtG,KAAK,gBAAkB,KAAK,qBAAuB,GAIpD,KAAM,EAAS,CAEd,aAAM,KAAK,KAAM,KAAM,GAEvB,KAAK,QAAU,EAAO,QACtB,KAAK,mBAAqB,EAAO,mBACjC,KAAK,gBAAkB,EAAO,gBAEvB,MAMT,GAA6B,UAAU,+BAAiC,GAExE,QAAiB,CAEhB,YAAa,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAI,CAEzC,KAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,QAIJ,OAAO,EAAI,EAAI,EAAI,EAAI,CAE7B,eAAQ,KAAM,wGACP,EAAG,iBAAkB,EAAI,EAAI,SAI9B,WAAW,EAAK,EAAW,EAAM,EAAY,EAAM,EAAY,EAAI,CAIzE,GAAI,GAAK,EAAM,EAAa,GAC3B,EAAK,EAAM,EAAa,GACxB,EAAK,EAAM,EAAa,GACxB,EAAK,EAAM,EAAa,GAEzB,KAAM,GAAK,EAAM,EAAa,GAC7B,EAAK,EAAM,EAAa,GACxB,EAAK,EAAM,EAAa,GACxB,EAAK,EAAM,EAAa,GAEzB,GAAK,IAAM,EAAI,CAEd,EAAK,EAAY,GAAM,EACvB,EAAK,EAAY,GAAM,EACvB,EAAK,EAAY,GAAM,EACvB,EAAK,EAAY,GAAM,EACvB,OAID,GAAK,IAAM,EAAI,CAEd,EAAK,EAAY,GAAM,EACvB,EAAK,EAAY,GAAM,EACvB,EAAK,EAAY,GAAM,EACvB,EAAK,EAAY,GAAM,EACvB,OAID,GAAK,IAAO,GAAM,IAAO,GAAM,IAAO,GAAM,IAAO,EAAK,CAEvD,GAAI,GAAI,EAAI,EACZ,KAAM,GAAM,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAC9C,EAAQ,GAAO,EAAI,EAAI,GACvB,EAAS,EAAI,EAAM,EAGpB,GAAK,EAAS,OAAO,QAAU,CAE9B,KAAM,GAAM,KAAK,KAAM,GACtB,EAAM,KAAK,MAAO,EAAK,EAAM,GAE9B,EAAI,KAAK,IAAK,EAAI,GAAQ,EAC1B,EAAI,KAAK,IAAK,EAAI,GAAQ,EAI3B,KAAM,GAAO,EAAI,EAQjB,GANA,EAAK,EAAK,EAAI,EAAK,EACnB,EAAK,EAAK,EAAI,EAAK,EACnB,EAAK,EAAK,EAAI,EAAK,EACnB,EAAK,EAAK,EAAI,EAAK,EAGd,IAAM,EAAI,EAAI,CAElB,KAAM,GAAI,EAAI,KAAK,KAAM,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,GAE5D,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GAMR,EAAK,GAAc,EACnB,EAAK,EAAY,GAAM,EACvB,EAAK,EAAY,GAAM,EACvB,EAAK,EAAY,GAAM,QAIjB,yBAAyB,EAAK,EAAW,EAAM,EAAY,EAAM,EAAa,CAEpF,KAAM,GAAK,EAAM,GACX,EAAK,EAAM,EAAa,GACxB,EAAK,EAAM,EAAa,GACxB,EAAK,EAAM,EAAa,GAExB,EAAK,EAAM,GACX,EAAK,EAAM,EAAa,GACxB,EAAK,EAAM,EAAa,GACxB,EAAK,EAAM,EAAa,GAE9B,SAAK,GAAc,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACtD,EAAK,EAAY,GAAM,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAC1D,EAAK,EAAY,GAAM,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAC1D,EAAK,EAAY,GAAM,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAEnD,KAIJ,IAAI,CAEP,MAAO,MAAK,MAIT,GAAG,EAAQ,CAEd,KAAK,GAAK,EACV,KAAK,uBAIF,IAAI,CAEP,MAAO,MAAK,MAIT,GAAG,EAAQ,CAEd,KAAK,GAAK,EACV,KAAK,uBAIF,IAAI,CAEP,MAAO,MAAK,MAIT,GAAG,EAAQ,CAEd,KAAK,GAAK,EACV,KAAK,uBAIF,IAAI,CAEP,MAAO,MAAK,MAIT,GAAG,EAAQ,CAEd,KAAK,GAAK,EACV,KAAK,oBAIN,IAAK,EAAG,EAAG,EAAG,EAAI,CAEjB,YAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EAEV,KAAK,oBAEE,KAIR,OAAQ,CAEP,MAAO,IAAI,MAAK,YAAa,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,IAI9D,KAAM,EAAa,CAElB,YAAK,GAAK,EAAW,EACrB,KAAK,GAAK,EAAW,EACrB,KAAK,GAAK,EAAW,EACrB,KAAK,GAAK,EAAW,EAErB,KAAK,oBAEE,KAIR,aAAc,EAAO,EAAS,CAE7B,GAAK,CAAI,IAAS,EAAM,SAEvB,KAAM,IAAI,OAAO,oGAIlB,KAAM,GAAI,EAAM,GAAI,EAAI,EAAM,GAAI,EAAI,EAAM,GAAI,EAAQ,EAAM,OAMxD,EAAM,KAAK,IACX,EAAM,KAAK,IAEX,EAAK,EAAK,EAAI,GACd,EAAK,EAAK,EAAI,GACd,EAAK,EAAK,EAAI,GAEd,EAAK,EAAK,EAAI,GACd,EAAK,EAAK,EAAI,GACd,EAAK,EAAK,EAAI,GAEpB,OAAS,OAEH,MACJ,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,UAEI,MACJ,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,UAEI,MACJ,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,UAEI,MACJ,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,UAEI,MACJ,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,UAEI,MACJ,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,KAAK,GAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EACnC,cAGA,QAAQ,KAAM,mEAAqE,GAIrF,MAAK,KAAW,IAAQ,KAAK,oBAEtB,KAIR,iBAAkB,EAAM,EAAQ,CAM/B,KAAM,GAAY,EAAQ,EAAG,EAAI,KAAK,IAAK,GAE3C,YAAK,GAAK,EAAK,EAAI,EACnB,KAAK,GAAK,EAAK,EAAI,EACnB,KAAK,GAAK,EAAK,EAAI,EACnB,KAAK,GAAK,KAAK,IAAK,GAEpB,KAAK,oBAEE,KAIR,sBAAuB,EAAI,CAM1B,KAAM,GAAK,EAAE,SAEZ,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GACxC,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GACxC,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,IAExC,EAAQ,EAAM,EAAM,EAErB,GAAK,EAAQ,EAAI,CAEhB,KAAM,GAAI,GAAM,KAAK,KAAM,EAAQ,GAEnC,KAAK,GAAK,IAAO,EACjB,KAAK,GAAO,GAAM,GAAQ,EAC1B,KAAK,GAAO,GAAM,GAAQ,EAC1B,KAAK,GAAO,GAAM,GAAQ,UAEf,EAAM,GAAO,EAAM,EAAM,CAEpC,KAAM,GAAI,EAAM,KAAK,KAAM,EAAM,EAAM,EAAM,GAE7C,KAAK,GAAO,GAAM,GAAQ,EAC1B,KAAK,GAAK,IAAO,EACjB,KAAK,GAAO,GAAM,GAAQ,EAC1B,KAAK,GAAO,GAAM,GAAQ,UAEf,EAAM,EAAM,CAEvB,KAAM,GAAI,EAAM,KAAK,KAAM,EAAM,EAAM,EAAM,GAE7C,KAAK,GAAO,GAAM,GAAQ,EAC1B,KAAK,GAAO,GAAM,GAAQ,EAC1B,KAAK,GAAK,IAAO,EACjB,KAAK,GAAO,GAAM,GAAQ,MAEpB,CAEN,KAAM,GAAI,EAAM,KAAK,KAAM,EAAM,EAAM,EAAM,GAE7C,KAAK,GAAO,GAAM,GAAQ,EAC1B,KAAK,GAAO,GAAM,GAAQ,EAC1B,KAAK,GAAO,GAAM,GAAQ,EAC1B,KAAK,GAAK,IAAO,EAIlB,YAAK,oBAEE,KAIR,mBAAoB,EAAO,EAAM,CAIhC,GAAI,GAAI,EAAM,IAAK,GAAQ,EAE3B,MAAK,GAAI,OAAO,QAIf,GAAI,EAEJ,AAAK,KAAK,IAAK,EAAM,GAAM,KAAK,IAAK,EAAM,GAE1C,MAAK,GAAK,CAAE,EAAM,EAClB,KAAK,GAAK,EAAM,EAChB,KAAK,GAAK,EACV,KAAK,GAAK,GAIV,MAAK,GAAK,EACV,KAAK,GAAK,CAAE,EAAM,EAClB,KAAK,GAAK,EAAM,EAChB,KAAK,GAAK,IAQX,MAAK,GAAK,EAAM,EAAI,EAAI,EAAI,EAAM,EAAI,EAAI,EAC1C,KAAK,GAAK,EAAM,EAAI,EAAI,EAAI,EAAM,EAAI,EAAI,EAC1C,KAAK,GAAK,EAAM,EAAI,EAAI,EAAI,EAAM,EAAI,EAAI,EAC1C,KAAK,GAAK,GAIJ,KAAK,YAIb,QAAS,EAAI,CAEZ,MAAO,GAAI,KAAK,KAAM,KAAK,IAAK,GAAO,KAAK,IAAK,GAAK,GAAK,KAI5D,cAAe,EAAG,EAAO,CAExB,KAAM,GAAQ,KAAK,QAAS,GAE5B,GAAK,IAAU,EAAI,MAAO,MAE1B,KAAM,GAAI,KAAK,IAAK,EAAG,EAAO,GAE9B,YAAK,MAAO,EAAG,GAER,KAIR,UAAW,CAEV,MAAO,MAAK,IAAK,EAAG,EAAG,EAAG,GAI3B,QAAS,CAIR,MAAO,MAAK,YAIb,WAAY,CAEX,YAAK,IAAM,GACX,KAAK,IAAM,GACX,KAAK,IAAM,GAEX,KAAK,oBAEE,KAIR,IAAK,EAAI,CAER,MAAO,MAAK,GAAK,EAAE,GAAK,KAAK,GAAK,EAAE,GAAK,KAAK,GAAK,EAAE,GAAK,KAAK,GAAK,EAAE,GAIvE,UAAW,CAEV,MAAO,MAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAInF,QAAS,CAER,MAAO,MAAK,KAAM,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,IAI9F,WAAY,CAEX,GAAI,GAAI,KAAK,SAEb,MAAK,KAAM,EAEV,MAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,GAIV,GAAI,EAAI,EAER,KAAK,GAAK,KAAK,GAAK,EACpB,KAAK,GAAK,KAAK,GAAK,EACpB,KAAK,GAAK,KAAK,GAAK,EACpB,KAAK,GAAK,KAAK,GAAK,GAIrB,KAAK,oBAEE,KAIR,SAAU,EAAG,EAAI,CAEhB,MAAK,KAAM,OAEV,SAAQ,KAAM,0GACP,KAAK,oBAAqB,EAAG,IAI9B,KAAK,oBAAqB,KAAM,GAIxC,YAAa,EAAI,CAEhB,MAAO,MAAK,oBAAqB,EAAG,MAIrC,oBAAqB,EAAG,EAAI,CAI3B,KAAM,GAAM,EAAE,GAAI,EAAM,EAAE,GAAI,EAAM,EAAE,GAAI,EAAM,EAAE,GAC5C,EAAM,EAAE,GAAI,EAAM,EAAE,GAAI,EAAM,EAAE,GAAI,EAAM,EAAE,GAElD,YAAK,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EACpD,KAAK,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EACpD,KAAK,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EACpD,KAAK,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAEpD,KAAK,oBAEE,KAIR,MAAO,EAAI,EAAI,CAEd,GAAK,IAAM,EAAI,MAAO,MACtB,GAAK,IAAM,EAAI,MAAO,MAAK,KAAM,GAEjC,KAAM,GAAI,KAAK,GAAI,EAAI,KAAK,GAAI,EAAI,KAAK,GAAI,EAAI,KAAK,GAItD,GAAI,GAAe,EAAI,EAAG,GAAK,EAAI,EAAG,GAAK,EAAI,EAAG,GAAK,EAAI,EAAG,GAiB9D,GAfA,AAAK,EAAe,EAEnB,MAAK,GAAK,CAAE,EAAG,GACf,KAAK,GAAK,CAAE,EAAG,GACf,KAAK,GAAK,CAAE,EAAG,GACf,KAAK,GAAK,CAAE,EAAG,GAEf,EAAe,CAAE,GAIjB,KAAK,KAAM,GAIP,GAAgB,EAEpB,YAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EAEH,KAIR,KAAM,GAAkB,EAAM,EAAe,EAE7C,GAAK,GAAmB,OAAO,QAAU,CAExC,KAAM,GAAI,EAAI,EACd,YAAK,GAAK,EAAI,EAAI,EAAI,KAAK,GAC3B,KAAK,GAAK,EAAI,EAAI,EAAI,KAAK,GAC3B,KAAK,GAAK,EAAI,EAAI,EAAI,KAAK,GAC3B,KAAK,GAAK,EAAI,EAAI,EAAI,KAAK,GAE3B,KAAK,YACL,KAAK,oBAEE,KAIR,KAAM,GAAe,KAAK,KAAM,GAC1B,EAAY,KAAK,MAAO,EAAc,GACtC,EAAS,KAAK,IAAO,GAAI,GAAM,GAAc,EAClD,EAAS,KAAK,IAAK,EAAI,GAAc,EAEtC,YAAK,GAAO,EAAI,EAAS,KAAK,GAAK,EACnC,KAAK,GAAO,EAAI,EAAS,KAAK,GAAK,EACnC,KAAK,GAAO,EAAI,EAAS,KAAK,GAAK,EACnC,KAAK,GAAO,EAAI,EAAS,KAAK,GAAK,EAEnC,KAAK,oBAEE,KAIR,iBAAkB,EAAI,EAAI,EAAI,CAE7B,MAAO,MAAK,KAAM,GAAK,MAAO,EAAI,GAInC,QAAS,CAMR,KAAM,GAAK,KAAK,SACV,EAAU,KAAK,KAAM,EAAI,GACzB,EAAS,KAAK,KAAM,GAEpB,EAAK,EAAI,KAAK,GAAK,KAAK,SAExB,EAAK,EAAI,KAAK,GAAK,KAAK,SAE9B,MAAO,MAAK,IACX,EAAU,KAAK,IAAK,GACpB,EAAS,KAAK,IAAK,GACnB,EAAS,KAAK,IAAK,GACnB,EAAU,KAAK,IAAK,IAKtB,OAAQ,EAAa,CAEpB,MAAS,GAAW,KAAO,KAAK,IAAU,EAAW,KAAO,KAAK,IAAU,EAAW,KAAO,KAAK,IAAU,EAAW,KAAO,KAAK,GAIpI,UAAW,EAAO,EAAS,EAAI,CAE9B,YAAK,GAAK,EAAO,GACjB,KAAK,GAAK,EAAO,EAAS,GAC1B,KAAK,GAAK,EAAO,EAAS,GAC1B,KAAK,GAAK,EAAO,EAAS,GAE1B,KAAK,oBAEE,KAIR,QAAS,EAAQ,GAAI,EAAS,EAAI,CAEjC,SAAO,GAAW,KAAK,GACvB,EAAO,EAAS,GAAM,KAAK,GAC3B,EAAO,EAAS,GAAM,KAAK,GAC3B,EAAO,EAAS,GAAM,KAAK,GAEpB,EAIR,oBAAqB,EAAW,EAAQ,CAEvC,YAAK,GAAK,EAAU,KAAM,GAC1B,KAAK,GAAK,EAAU,KAAM,GAC1B,KAAK,GAAK,EAAU,KAAM,GAC1B,KAAK,GAAK,EAAU,KAAM,GAEnB,KAIR,UAAW,EAAW,CAErB,YAAK,kBAAoB,EAElB,KAIR,mBAAoB,GAIrB,GAAW,UAAU,aAAe,GAEpC,OAAc,CAEb,YAAa,EAAI,EAAG,EAAI,EAAG,EAAI,EAAI,CAElC,KAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,EAAI,EAIV,IAAK,EAAG,EAAG,EAAI,CAEd,MAAK,KAAM,QAAY,GAAI,KAAK,GAEhC,KAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,EAAI,EAEF,KAIR,UAAW,EAAS,CAEnB,YAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,EAAI,EAEF,KAIR,KAAM,EAAI,CAET,YAAK,EAAI,EAEF,KAIR,KAAM,EAAI,CAET,YAAK,EAAI,EAEF,KAIR,KAAM,EAAI,CAET,YAAK,EAAI,EAEF,KAIR,aAAc,EAAO,EAAQ,CAE5B,OAAS,OAEH,GAAG,KAAK,EAAI,EAAO,UACnB,GAAG,KAAK,EAAI,EAAO,UACnB,GAAG,KAAK,EAAI,EAAO,cACf,KAAM,IAAI,OAAO,0BAA4B,GAIvD,MAAO,MAIR,aAAc,EAAQ,CAErB,OAAS,OAEH,GAAG,MAAO,MAAK,MACf,GAAG,MAAO,MAAK,MACf,GAAG,MAAO,MAAK,UACX,KAAM,IAAI,OAAO,0BAA4B,IAMxD,OAAQ,CAEP,MAAO,IAAI,MAAK,YAAa,KAAK,EAAG,KAAK,EAAG,KAAK,GAInD,KAAM,EAAI,CAET,YAAK,EAAI,EAAE,EACX,KAAK,EAAI,EAAE,EACX,KAAK,EAAI,EAAE,EAEJ,KAIR,IAAK,EAAG,EAAI,CAEX,MAAK,KAAM,OAEV,SAAQ,KAAM,yFACP,KAAK,WAAY,EAAG,IAI5B,MAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EAEL,MAIR,UAAW,EAAI,CAEd,YAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EAEH,KAIR,WAAY,EAAG,EAAI,CAElB,YAAK,EAAI,EAAE,EAAI,EAAE,EACjB,KAAK,EAAI,EAAE,EAAI,EAAE,EACjB,KAAK,EAAI,EAAE,EAAI,EAAE,EAEV,KAIR,gBAAiB,EAAG,EAAI,CAEvB,YAAK,GAAK,EAAE,EAAI,EAChB,KAAK,GAAK,EAAE,EAAI,EAChB,KAAK,GAAK,EAAE,EAAI,EAET,KAIR,IAAK,EAAG,EAAI,CAEX,MAAK,KAAM,OAEV,SAAQ,KAAM,yFACP,KAAK,WAAY,EAAG,IAI5B,MAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EAEL,MAIR,UAAW,EAAI,CAEd,YAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EAEH,KAIR,WAAY,EAAG,EAAI,CAElB,YAAK,EAAI,EAAE,EAAI,EAAE,EACjB,KAAK,EAAI,EAAE,EAAI,EAAE,EACjB,KAAK,EAAI,EAAE,EAAI,EAAE,EAEV,KAIR,SAAU,EAAG,EAAI,CAEhB,MAAK,KAAM,OAEV,SAAQ,KAAM,mGACP,KAAK,gBAAiB,EAAG,IAIjC,MAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EAEL,MAIR,eAAgB,EAAS,CAExB,YAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EAEH,KAIR,gBAAiB,EAAG,EAAI,CAEvB,YAAK,EAAI,EAAE,EAAI,EAAE,EACjB,KAAK,EAAI,EAAE,EAAI,EAAE,EACjB,KAAK,EAAI,EAAE,EAAI,EAAE,EAEV,KAIR,WAAY,EAAQ,CAEnB,MAAS,IAAS,EAAM,SAEvB,QAAQ,MAAO,+FAIT,KAAK,gBAAiB,GAAc,aAAc,IAI1D,eAAgB,EAAM,EAAQ,CAE7B,MAAO,MAAK,gBAAiB,GAAc,iBAAkB,EAAM,IAIpE,aAAc,EAAI,CAEjB,KAAM,GAAI,KAAK,EAAG,EAAI,KAAK,EAAG,EAAI,KAAK,EACjC,EAAI,EAAE,SAEZ,YAAK,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAC5C,KAAK,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAC5C,KAAK,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAErC,KAIR,kBAAmB,EAAI,CAEtB,MAAO,MAAK,aAAc,GAAI,YAI/B,aAAc,EAAI,CAEjB,KAAM,GAAI,KAAK,EAAG,EAAI,KAAK,EAAG,EAAI,KAAK,EACjC,EAAI,EAAE,SAEN,EAAI,EAAM,GAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,IAAO,EAAI,EAAG,KAE3D,YAAK,EAAM,GAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,KAAS,EAC9D,KAAK,EAAM,GAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,KAAS,EAC9D,KAAK,EAAM,GAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,IAAO,EAAI,EAAG,KAAS,EAExD,KAIR,gBAAiB,EAAI,CAEpB,KAAM,GAAI,KAAK,EAAG,EAAI,KAAK,EAAG,EAAI,KAAK,EACjC,EAAK,EAAE,EAAG,EAAK,EAAE,EAAG,EAAK,EAAE,EAAG,EAAK,EAAE,EAIrC,EAAK,EAAK,EAAI,EAAK,EAAI,EAAK,EAC5B,EAAK,EAAK,EAAI,EAAK,EAAI,EAAK,EAC5B,EAAK,EAAK,EAAI,EAAK,EAAI,EAAK,EAC5B,EAAK,CAAE,EAAK,EAAI,EAAK,EAAI,EAAK,EAIpC,YAAK,EAAI,EAAK,EAAK,EAAK,CAAE,EAAK,EAAK,CAAE,EAAK,EAAK,CAAE,EAClD,KAAK,EAAI,EAAK,EAAK,EAAK,CAAE,EAAK,EAAK,CAAE,EAAK,EAAK,CAAE,EAClD,KAAK,EAAI,EAAK,EAAK,EAAK,CAAE,EAAK,EAAK,CAAE,EAAK,EAAK,CAAE,EAE3C,KAIR,QAAS,EAAS,CAEjB,MAAO,MAAK,aAAc,EAAO,oBAAqB,aAAc,EAAO,kBAI5E,UAAW,EAAS,CAEnB,MAAO,MAAK,aAAc,EAAO,yBAA0B,aAAc,EAAO,aAIjF,mBAAoB,EAAI,CAKvB,KAAM,GAAI,KAAK,EAAG,EAAI,KAAK,EAAG,EAAI,KAAK,EACjC,EAAI,EAAE,SAEZ,YAAK,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAC5C,KAAK,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAC5C,KAAK,EAAI,EAAG,GAAM,EAAI,EAAG,GAAM,EAAI,EAAG,IAAO,EAEtC,KAAK,YAIb,OAAQ,EAAI,CAEX,YAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EACZ,KAAK,GAAK,EAAE,EAEL,KAIR,aAAc,EAAS,CAEtB,MAAO,MAAK,eAAgB,EAAI,GAIjC,IAAK,EAAI,CAER,YAAK,EAAI,KAAK,IAAK,KAAK,EAAG,EAAE,GAC7B,KAAK,EAAI,KAAK,IAAK,KAAK,EAAG,EAAE,GAC7B,KAAK,EAAI,KAAK,IAAK,KAAK,EAAG,EAAE,GAEtB,KAIR,IAAK,EAAI,CAER,YAAK,EAAI,KAAK,IAAK,KAAK,EAAG,EAAE,GAC7B,KAAK,EAAI,KAAK,IAAK,KAAK,EAAG,EAAE,GAC7B,KAAK,EAAI,KAAK,IAAK,KAAK,EAAG,EAAE,GAEtB,KAIR,MAAO,EAAK,EAAM,CAIjB,YAAK,EAAI,KAAK,IAAK,EAAI,EAAG,KAAK,IAAK,EAAI,EAAG,KAAK,IAChD,KAAK,EAAI,KAAK,IAAK,EAAI,EAAG,KAAK,IAAK,EAAI,EAAG,KAAK,IAChD,KAAK,EAAI,KAAK,IAAK,EAAI,EAAG,KAAK,IAAK,EAAI,EAAG,KAAK,IAEzC,KAIR,YAAa,EAAQ,EAAS,CAE7B,YAAK,EAAI,KAAK,IAAK,EAAQ,KAAK,IAAK,EAAQ,KAAK,IAClD,KAAK,EAAI,KAAK,IAAK,EAAQ,KAAK,IAAK,EAAQ,KAAK,IAClD,KAAK,EAAI,KAAK,IAAK,EAAQ,KAAK,IAAK,EAAQ,KAAK,IAE3C,KAIR,YAAa,EAAK,EAAM,CAEvB,KAAM,GAAS,KAAK,SAEpB,MAAO,MAAK,aAAc,GAAU,GAAI,eAAgB,KAAK,IAAK,EAAK,KAAK,IAAK,EAAK,KAIvF,OAAQ,CAEP,YAAK,EAAI,KAAK,MAAO,KAAK,GAC1B,KAAK,EAAI,KAAK,MAAO,KAAK,GAC1B,KAAK,EAAI,KAAK,MAAO,KAAK,GAEnB,KAIR,MAAO,CAEN,YAAK,EAAI,KAAK,KAAM,KAAK,GACzB,KAAK,EAAI,KAAK,KAAM,KAAK,GACzB,KAAK,EAAI,KAAK,KAAM,KAAK,GAElB,KAIR,OAAQ,CAEP,YAAK,EAAI,KAAK,MAAO,KAAK,GAC1B,KAAK,EAAI,KAAK,MAAO,KAAK,GAC1B,KAAK,EAAI,KAAK,MAAO,KAAK,GAEnB,KAIR,aAAc,CAEb,YAAK,EAAM,KAAK,EAAI,EAAM,KAAK,KAAM,KAAK,GAAM,KAAK,MAAO,KAAK,GACjE,KAAK,EAAM,KAAK,EAAI,EAAM,KAAK,KAAM,KAAK,GAAM,KAAK,MAAO,KAAK,GACjE,KAAK,EAAM,KAAK,EAAI,EAAM,KAAK,KAAM,KAAK,GAAM,KAAK,MAAO,KAAK,GAE1D,KAIR,QAAS,CAER,YAAK,EAAI,CAAE,KAAK,EAChB,KAAK,EAAI,CAAE,KAAK,EAChB,KAAK,EAAI,CAAE,KAAK,EAET,KAIR,IAAK,EAAI,CAER,MAAO,MAAK,EAAI,EAAE,EAAI,KAAK,EAAI,EAAE,EAAI,KAAK,EAAI,EAAE,EAMjD,UAAW,CAEV,MAAO,MAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAI1D,QAAS,CAER,MAAO,MAAK,KAAM,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,GAIrE,iBAAkB,CAEjB,MAAO,MAAK,IAAK,KAAK,GAAM,KAAK,IAAK,KAAK,GAAM,KAAK,IAAK,KAAK,GAIjE,WAAY,CAEX,MAAO,MAAK,aAAc,KAAK,UAAY,GAI5C,UAAW,EAAS,CAEnB,MAAO,MAAK,YAAY,eAAgB,GAIzC,KAAM,EAAG,EAAQ,CAEhB,YAAK,GAAO,GAAE,EAAI,KAAK,GAAM,EAC7B,KAAK,GAAO,GAAE,EAAI,KAAK,GAAM,EAC7B,KAAK,GAAO,GAAE,EAAI,KAAK,GAAM,EAEtB,KAIR,YAAa,EAAI,EAAI,EAAQ,CAE5B,YAAK,EAAI,EAAG,EAAM,GAAG,EAAI,EAAG,GAAM,EAClC,KAAK,EAAI,EAAG,EAAM,GAAG,EAAI,EAAG,GAAM,EAClC,KAAK,EAAI,EAAG,EAAM,GAAG,EAAI,EAAG,GAAM,EAE3B,KAIR,MAAO,EAAG,EAAI,CAEb,MAAK,KAAM,OAEV,SAAQ,KAAM,6FACP,KAAK,aAAc,EAAG,IAIvB,KAAK,aAAc,KAAM,GAIjC,aAAc,EAAG,EAAI,CAEpB,KAAM,GAAK,EAAE,EAAG,EAAK,EAAE,EAAG,EAAK,EAAE,EAC3B,EAAK,EAAE,EAAG,EAAK,EAAE,EAAG,EAAK,EAAE,EAEjC,YAAK,EAAI,EAAK,EAAK,EAAK,EACxB,KAAK,EAAI,EAAK,EAAK,EAAK,EACxB,KAAK,EAAI,EAAK,EAAK,EAAK,EAEjB,KAIR,gBAAiB,EAAI,CAEpB,KAAM,GAAc,EAAE,WAEtB,GAAK,IAAgB,EAAI,MAAO,MAAK,IAAK,EAAG,EAAG,GAEhD,KAAM,GAAS,EAAE,IAAK,MAAS,EAE/B,MAAO,MAAK,KAAM,GAAI,eAAgB,GAIvC,eAAgB,EAAc,CAE7B,UAAU,KAAM,MAAO,gBAAiB,GAEjC,KAAK,IAAK,IAIlB,QAAS,EAAS,CAKjB,MAAO,MAAK,IAAK,GAAU,KAAM,GAAS,eAAgB,EAAI,KAAK,IAAK,KAIzE,QAAS,EAAI,CAEZ,KAAM,GAAc,KAAK,KAAM,KAAK,WAAa,EAAE,YAEnD,GAAK,IAAgB,EAAI,MAAO,MAAK,GAAK,EAE1C,KAAM,GAAQ,KAAK,IAAK,GAAM,EAI9B,MAAO,MAAK,KAAM,GAAO,EAAO,GAAK,IAItC,WAAY,EAAI,CAEf,MAAO,MAAK,KAAM,KAAK,kBAAmB,IAI3C,kBAAmB,EAAI,CAEtB,KAAM,GAAK,KAAK,EAAI,EAAE,EAAG,EAAK,KAAK,EAAI,EAAE,EAAG,EAAK,KAAK,EAAI,EAAE,EAE5D,MAAO,GAAK,EAAK,EAAK,EAAK,EAAK,EAIjC,oBAAqB,EAAI,CAExB,MAAO,MAAK,IAAK,KAAK,EAAI,EAAE,GAAM,KAAK,IAAK,KAAK,EAAI,EAAE,GAAM,KAAK,IAAK,KAAK,EAAI,EAAE,GAInF,iBAAkB,EAAI,CAErB,MAAO,MAAK,uBAAwB,EAAE,OAAQ,EAAE,IAAK,EAAE,OAIxD,uBAAwB,EAAQ,EAAK,EAAQ,CAE5C,KAAM,GAAe,KAAK,IAAK,GAAQ,EAEvC,YAAK,EAAI,EAAe,KAAK,IAAK,GAClC,KAAK,EAAI,KAAK,IAAK,GAAQ,EAC3B,KAAK,EAAI,EAAe,KAAK,IAAK,GAE3B,KAIR,mBAAoB,EAAI,CAEvB,MAAO,MAAK,yBAA0B,EAAE,OAAQ,EAAE,MAAO,EAAE,GAI5D,yBAA0B,EAAQ,EAAO,EAAI,CAE5C,YAAK,EAAI,EAAS,KAAK,IAAK,GAC5B,KAAK,EAAI,EACT,KAAK,EAAI,EAAS,KAAK,IAAK,GAErB,KAIR,sBAAuB,EAAI,CAE1B,KAAM,GAAI,EAAE,SAEZ,YAAK,EAAI,EAAG,IACZ,KAAK,EAAI,EAAG,IACZ,KAAK,EAAI,EAAG,IAEL,KAIR,mBAAoB,EAAI,CAEvB,KAAM,GAAK,KAAK,oBAAqB,EAAG,GAAI,SACtC,EAAK,KAAK,oBAAqB,EAAG,GAAI,SACtC,EAAK,KAAK,oBAAqB,EAAG,GAAI,SAE5C,YAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,EAAI,EAEF,KAIR,oBAAqB,EAAG,EAAQ,CAE/B,MAAO,MAAK,UAAW,EAAE,SAAU,EAAQ,GAI5C,qBAAsB,EAAG,EAAQ,CAEhC,MAAO,MAAK,UAAW,EAAE,SAAU,EAAQ,GAI5C,OAAQ,EAAI,CAEX,MAAW,GAAE,IAAM,KAAK,GAAS,EAAE,IAAM,KAAK,GAAS,EAAE,IAAM,KAAK,EAIrE,UAAW,EAAO,EAAS,EAAI,CAE9B,YAAK,EAAI,EAAO,GAChB,KAAK,EAAI,EAAO,EAAS,GACzB,KAAK,EAAI,EAAO,EAAS,GAElB,KAIR,QAAS,EAAQ,GAAI,EAAS,EAAI,CAEjC,SAAO,GAAW,KAAK,EACvB,EAAO,EAAS,GAAM,KAAK,EAC3B,EAAO,EAAS,GAAM,KAAK,EAEpB,EAIR,oBAAqB,EAAW,EAAO,EAAS,CAE/C,MAAK,KAAW,QAEf,QAAQ,KAAM,uEAIf,KAAK,EAAI,EAAU,KAAM,GACzB,KAAK,EAAI,EAAU,KAAM,GACzB,KAAK,EAAI,EAAU,KAAM,GAElB,KAIR,QAAS,CAER,YAAK,EAAI,KAAK,SACd,KAAK,EAAI,KAAK,SACd,KAAK,EAAI,KAAK,SAEP,KAIR,iBAAkB,CAIjB,KAAM,GAAM,MAAK,SAAW,IAAQ,EAC9B,EAAI,KAAK,SAAW,KAAK,GAAK,EAC9B,EAAI,KAAK,KAAM,EAAI,GAAK,GAE9B,YAAK,EAAI,EAAI,KAAK,IAAK,GACvB,KAAK,EAAI,EAAI,KAAK,IAAK,GACvB,KAAK,EAAI,EAEF,OAIL,OAAO,WAAa,CAEtB,KAAM,MAAK,EACX,KAAM,MAAK,EACX,KAAM,MAAK,GAMb,EAAQ,UAAU,UAAY,GAE9B,KAAM,IAA0B,GAAI,GAC9B,GAA8B,GAAI,IAExC,QAAW,CAEV,YAAa,EAAM,GAAI,GAAS,IAAY,IAAY,KAAc,EAAM,GAAI,GAAS,KAAY,KAAY,MAAe,CAE/H,KAAK,IAAM,EACX,KAAK,IAAM,EAIZ,IAAK,EAAK,EAAM,CAEf,YAAK,IAAI,KAAM,GACf,KAAK,IAAI,KAAM,GAER,KAIR,aAAc,EAAQ,CAErB,GAAI,GAAO,IACP,EAAO,IACP,EAAO,IAEP,EAAO,KACP,EAAO,KACP,EAAO,KAEX,OAAU,GAAI,EAAG,EAAI,EAAM,OAAQ,EAAI,EAAG,GAAK,EAAI,CAElD,KAAM,GAAI,EAAO,GACX,EAAI,EAAO,EAAI,GACf,EAAI,EAAO,EAAI,GAErB,AAAK,EAAI,GAAO,GAAO,GAClB,EAAI,GAAO,GAAO,GAClB,EAAI,GAAO,GAAO,GAElB,EAAI,GAAO,GAAO,GAClB,EAAI,GAAO,GAAO,GAClB,EAAI,GAAO,GAAO,GAIxB,YAAK,IAAI,IAAK,EAAM,EAAM,GAC1B,KAAK,IAAI,IAAK,EAAM,EAAM,GAEnB,KAIR,uBAAwB,EAAY,CAEnC,GAAI,GAAO,IACP,EAAO,IACP,EAAO,IAEP,EAAO,KACP,EAAO,KACP,EAAO,KAEX,OAAU,GAAI,EAAG,EAAI,EAAU,MAAO,EAAI,EAAG,IAAO,CAEnD,KAAM,GAAI,EAAU,KAAM,GACpB,EAAI,EAAU,KAAM,GACpB,EAAI,EAAU,KAAM,GAE1B,AAAK,EAAI,GAAO,GAAO,GAClB,EAAI,GAAO,GAAO,GAClB,EAAI,GAAO,GAAO,GAElB,EAAI,GAAO,GAAO,GAClB,EAAI,GAAO,GAAO,GAClB,EAAI,GAAO,GAAO,GAIxB,YAAK,IAAI,IAAK,EAAM,EAAM,GAC1B,KAAK,IAAI,IAAK,EAAM,EAAM,GAEnB,KAIR,cAAe,EAAS,CAEvB,KAAK,YAEL,OAAU,GAAI,EAAG,EAAK,EAAO,OAAQ,EAAI,EAAI,IAE5C,KAAK,cAAe,EAAQ,IAI7B,MAAO,MAIR,qBAAsB,EAAQ,EAAO,CAEpC,KAAM,GAAW,GAAU,KAAM,GAAO,eAAgB,IAExD,YAAK,IAAI,KAAM,GAAS,IAAK,GAC7B,KAAK,IAAI,KAAM,GAAS,IAAK,GAEtB,KAIR,cAAe,EAAQ,EAAU,GAAQ,CAExC,YAAK,YAEE,KAAK,eAAgB,EAAQ,GAIrC,OAAQ,CAEP,MAAO,IAAI,MAAK,cAAc,KAAM,MAIrC,KAAM,EAAM,CAEX,YAAK,IAAI,KAAM,EAAI,KACnB,KAAK,IAAI,KAAM,EAAI,KAEZ,KAIR,WAAY,CAEX,YAAK,IAAI,EAAI,KAAK,IAAI,EAAI,KAAK,IAAI,EAAI,IACvC,KAAK,IAAI,EAAI,KAAK,IAAI,EAAI,KAAK,IAAI,EAAI,KAEhC,KAIR,SAAU,CAIT,MAAS,MAAK,IAAI,EAAI,KAAK,IAAI,GAAS,KAAK,IAAI,EAAI,KAAK,IAAI,GAAS,KAAK,IAAI,EAAI,KAAK,IAAI,EAI9F,UAAW,EAAS,CAEnB,MAAO,MAAK,UAAY,EAAO,IAAK,EAAG,EAAG,GAAM,EAAO,WAAY,KAAK,IAAK,KAAK,KAAM,eAAgB,IAIzG,QAAS,EAAS,CAEjB,MAAO,MAAK,UAAY,EAAO,IAAK,EAAG,EAAG,GAAM,EAAO,WAAY,KAAK,IAAK,KAAK,KAInF,cAAe,EAAQ,CAEtB,YAAK,IAAI,IAAK,GACd,KAAK,IAAI,IAAK,GAEP,KAIR,eAAgB,EAAS,CAExB,YAAK,IAAI,IAAK,GACd,KAAK,IAAI,IAAK,GAEP,KAIR,eAAgB,EAAS,CAExB,YAAK,IAAI,UAAW,CAAE,GACtB,KAAK,IAAI,UAAW,GAEb,KAIR,eAAgB,EAAQ,EAAU,GAAQ,CAKzC,EAAO,kBAAmB,GAAO,IAEjC,KAAM,GAAW,EAAO,SAExB,GAAK,IAAa,OAEjB,GAAK,GAAW,EAAS,YAAc,MAAa,EAAS,WAAW,WAAa,OAAY,CAEhG,KAAM,GAAW,EAAS,WAAW,SACrC,OAAU,GAAI,EAAG,EAAI,EAAS,MAAO,EAAI,EAAG,IAE3C,GAAU,oBAAqB,EAAU,GAAI,aAAc,EAAO,aAClE,KAAK,cAAe,QAMrB,AAAK,GAAS,cAAgB,MAE7B,EAAS,qBAIV,GAAO,KAAM,EAAS,aACtB,GAAO,aAAc,EAAO,aAE5B,KAAK,MAAO,IAMd,KAAM,GAAW,EAAO,SAExB,OAAU,GAAI,EAAG,EAAI,EAAS,OAAQ,EAAI,EAAG,IAE5C,KAAK,eAAgB,EAAU,GAAK,GAIrC,MAAO,MAIR,cAAe,EAAQ,CAEtB,MAAO,IAAM,EAAI,KAAK,IAAI,GAAK,EAAM,EAAI,KAAK,IAAI,GACjD,EAAM,EAAI,KAAK,IAAI,GAAK,EAAM,EAAI,KAAK,IAAI,GAC3C,EAAM,EAAI,KAAK,IAAI,GAAK,EAAM,EAAI,KAAK,IAAI,GAI7C,YAAa,EAAM,CAElB,MAAO,MAAK,IAAI,GAAK,EAAI,IAAI,GAAK,EAAI,IAAI,GAAK,KAAK,IAAI,GACvD,KAAK,IAAI,GAAK,EAAI,IAAI,GAAK,EAAI,IAAI,GAAK,KAAK,IAAI,GACjD,KAAK,IAAI,GAAK,EAAI,IAAI,GAAK,EAAI,IAAI,GAAK,KAAK,IAAI,EAInD,aAAc,EAAO,EAAS,CAK7B,MAAO,GAAO,IACX,GAAM,EAAI,KAAK,IAAI,GAAQ,MAAK,IAAI,EAAI,KAAK,IAAI,GACjD,GAAM,EAAI,KAAK,IAAI,GAAQ,MAAK,IAAI,EAAI,KAAK,IAAI,GACjD,GAAM,EAAI,KAAK,IAAI,GAAQ,MAAK,IAAI,EAAI,KAAK,IAAI,IAKrD,cAAe,EAAM,CAGpB,MAAO,IAAI,IAAI,EAAI,KAAK,IAAI,GAAK,EAAI,IAAI,EAAI,KAAK,IAAI,GACrD,EAAI,IAAI,EAAI,KAAK,IAAI,GAAK,EAAI,IAAI,EAAI,KAAK,IAAI,GAC/C,EAAI,IAAI,EAAI,KAAK,IAAI,GAAK,EAAI,IAAI,EAAI,KAAK,IAAI,GAIjD,iBAAkB,EAAS,CAG1B,YAAK,WAAY,EAAO,OAAQ,IAGzB,GAAU,kBAAmB,EAAO,SAAc,EAAO,OAAS,EAAO,OAIjF,gBAAiB,EAAQ,CAKxB,GAAI,GAAK,EAET,MAAK,GAAM,OAAO,EAAI,EAErB,GAAM,EAAM,OAAO,EAAI,KAAK,IAAI,EAChC,EAAM,EAAM,OAAO,EAAI,KAAK,IAAI,GAIhC,GAAM,EAAM,OAAO,EAAI,KAAK,IAAI,EAChC,EAAM,EAAM,OAAO,EAAI,KAAK,IAAI,GAIjC,AAAK,EAAM,OAAO,EAAI,EAErB,IAAO,EAAM,OAAO,EAAI,KAAK,IAAI,EACjC,GAAO,EAAM,OAAO,EAAI,KAAK,IAAI,GAIjC,IAAO,EAAM,OAAO,EAAI,KAAK,IAAI,EACjC,GAAO,EAAM,OAAO,EAAI,KAAK,IAAI,GAIlC,AAAK,EAAM,OAAO,EAAI,EAErB,IAAO,EAAM,OAAO,EAAI,KAAK,IAAI,EACjC,GAAO,EAAM,OAAO,EAAI,KAAK,IAAI,GAIjC,IAAO,EAAM,OAAO,EAAI,KAAK,IAAI,EACjC,GAAO,EAAM,OAAO,EAAI,KAAK,IAAI,GAIzB,GAAO,CAAE,EAAM,UAAY,GAAO,CAAE,EAAM,SAIpD,mBAAoB,EAAW,CAE9B,GAAK,KAAK,UAET,MAAO,GAKR,KAAK,UAAW,IAChB,GAAS,WAAY,KAAK,IAAK,IAG/B,GAAM,WAAY,EAAS,EAAG,IAC9B,GAAM,WAAY,EAAS,EAAG,IAC9B,GAAM,WAAY,EAAS,EAAG,IAG9B,GAAI,WAAY,GAAO,IACvB,GAAI,WAAY,GAAO,IACvB,GAAI,WAAY,GAAO,IAKvB,GAAI,GAAO,CACV,EAAG,CAAE,GAAI,EAAG,GAAI,EAAG,EAAG,CAAE,GAAI,EAAG,GAAI,EAAG,EAAG,CAAE,GAAI,EAAG,GAAI,EACtD,GAAI,EAAG,EAAG,CAAE,GAAI,EAAG,GAAI,EAAG,EAAG,CAAE,GAAI,EAAG,GAAI,EAAG,EAAG,CAAE,GAAI,EACtD,CAAE,GAAI,EAAG,GAAI,EAAG,EAAG,CAAE,GAAI,EAAG,GAAI,EAAG,EAAG,CAAE,GAAI,EAAG,GAAI,EAAG,GAUvD,MARK,CAAE,GAAY,EAAM,GAAO,GAAO,GAAO,KAO9C,GAAO,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAC5B,CAAE,GAAY,EAAM,GAAO,GAAO,GAAO,KAEtC,GAMR,IAAgB,aAAc,GAAK,IACnC,EAAO,CAAE,GAAgB,EAAG,GAAgB,EAAG,GAAgB,GAExD,GAAY,EAAM,GAAO,GAAO,GAAO,KAI/C,WAAY,EAAO,EAAS,CAE3B,MAAO,GAAO,KAAM,GAAQ,MAAO,KAAK,IAAK,KAAK,KAInD,gBAAiB,EAAQ,CAIxB,MAAO,AAFc,IAAU,KAAM,GAAQ,MAAO,KAAK,IAAK,KAAK,KAE/C,IAAK,GAAQ,SAIlC,kBAAmB,EAAS,CAE3B,YAAK,UAAW,EAAO,QAEvB,EAAO,OAAS,KAAK,QAAS,IAAY,SAAW,GAE9C,EAIR,UAAW,EAAM,CAEhB,YAAK,IAAI,IAAK,EAAI,KAClB,KAAK,IAAI,IAAK,EAAI,KAGb,KAAK,WAAY,KAAK,YAEpB,KAIR,MAAO,EAAM,CAEZ,YAAK,IAAI,IAAK,EAAI,KAClB,KAAK,IAAI,IAAK,EAAI,KAEX,KAIR,aAAc,EAAS,CAGtB,MAAK,MAAK,UAAmB,KAG7B,IAAS,GAAI,IAAK,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,GAAI,aAAc,GACrE,GAAS,GAAI,IAAK,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,GAAI,aAAc,GACrE,GAAS,GAAI,IAAK,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,GAAI,aAAc,GACrE,GAAS,GAAI,IAAK,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,GAAI,aAAc,GACrE,GAAS,GAAI,IAAK,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,GAAI,aAAc,GACrE,GAAS,GAAI,IAAK,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,GAAI,aAAc,GACrE,GAAS,GAAI,IAAK,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,GAAI,aAAc,GACrE,GAAS,GAAI,IAAK,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,GAAI,aAAc,GAErE,KAAK,cAAe,IAEb,MAIR,UAAW,EAAS,CAEnB,YAAK,IAAI,IAAK,GACd,KAAK,IAAI,IAAK,GAEP,KAIR,OAAQ,EAAM,CAEb,MAAO,GAAI,IAAI,OAAQ,KAAK,MAAS,EAAI,IAAI,OAAQ,KAAK,MAM5D,GAAK,UAAU,OAAS,GAExB,KAAM,IAAU,CACD,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,IAGb,GAA0B,GAAI,GAE9B,GAAuB,GAAI,IAI3B,GAAsB,GAAI,GAC1B,GAAsB,GAAI,GAC1B,GAAsB,GAAI,GAI1B,GAAoB,GAAI,GACxB,GAAoB,GAAI,GACxB,GAAoB,GAAI,GAExB,GAAwB,GAAI,GAC5B,GAAyB,GAAI,GAC7B,GAAgC,GAAI,GACpC,GAA0B,GAAI,GAEpC,YAAqB,EAAM,EAAI,EAAI,EAAI,EAAU,CAEhD,OAAU,GAAI,EAAG,EAAI,EAAK,OAAS,EAAG,GAAK,EAAG,GAAK,EAAI,CAEtD,GAAU,UAAW,EAAM,GAE3B,KAAM,GAAI,EAAQ,EAAI,KAAK,IAAK,GAAU,GAAM,EAAQ,EAAI,KAAK,IAAK,GAAU,GAAM,EAAQ,EAAI,KAAK,IAAK,GAAU,GAEhH,EAAK,EAAG,IAAK,IACb,EAAK,EAAG,IAAK,IACb,EAAK,EAAG,IAAK,IAEnB,GAAK,KAAK,IAAK,CAAE,KAAK,IAAK,EAAI,EAAI,GAAM,KAAK,IAAK,EAAI,EAAI,IAAS,EAInE,MAAO,GAMT,MAAO,GAIR,KAAM,IAAuB,GAAI,IAC3B,GAAsB,GAAI,GAC1B,GAAiC,GAAI,GACrC,GAAyB,GAAI,GAEnC,QAAa,CAEZ,YAAa,EAAS,GAAI,GAAW,EAAS,GAAM,CAEnD,KAAK,OAAS,EACd,KAAK,OAAS,EAIf,IAAK,EAAQ,EAAS,CAErB,YAAK,OAAO,KAAM,GAClB,KAAK,OAAS,EAEP,KAIR,cAAe,EAAQ,EAAiB,CAEvC,KAAM,GAAS,KAAK,OAEpB,AAAK,IAAmB,OAEvB,EAAO,KAAM,GAIb,GAAO,cAAe,GAAS,UAAW,GAI3C,GAAI,GAAc,EAElB,OAAU,GAAI,EAAG,EAAK,EAAO,OAAQ,EAAI,EAAI,IAE5C,EAAc,KAAK,IAAK,EAAa,EAAO,kBAAmB,EAAQ,KAIxE,YAAK,OAAS,KAAK,KAAM,GAElB,KAIR,KAAM,EAAS,CAEd,YAAK,OAAO,KAAM,EAAO,QACzB,KAAK,OAAS,EAAO,OAEd,KAIR,SAAU,CAET,MAAS,MAAK,OAAS,EAIxB,WAAY,CAEX,YAAK,OAAO,IAAK,EAAG,EAAG,GACvB,KAAK,OAAS,GAEP,KAIR,cAAe,EAAQ,CAEtB,MAAS,GAAM,kBAAmB,KAAK,SAAc,KAAK,OAAS,KAAK,OAIzE,gBAAiB,EAAQ,CAExB,MAAS,GAAM,WAAY,KAAK,QAAW,KAAK,OAIjD,iBAAkB,EAAS,CAE1B,KAAM,GAAY,KAAK,OAAS,EAAO,OAEvC,MAAO,GAAO,OAAO,kBAAmB,KAAK,SAAc,EAAY,EAIxE,cAAe,EAAM,CAEpB,MAAO,GAAI,iBAAkB,MAI9B,gBAAiB,EAAQ,CAExB,MAAO,MAAK,IAAK,EAAM,gBAAiB,KAAK,UAAc,KAAK,OAIjE,WAAY,EAAO,EAAS,CAE3B,KAAM,GAAgB,KAAK,OAAO,kBAAmB,GAErD,SAAO,KAAM,GAER,EAAkB,KAAK,OAAS,KAAK,QAEzC,GAAO,IAAK,KAAK,QAAS,YAC1B,EAAO,eAAgB,KAAK,QAAS,IAAK,KAAK,SAIzC,EAIR,eAAgB,EAAS,CAExB,MAAK,MAAK,UAGT,GAAO,YACA,GAIR,GAAO,IAAK,KAAK,OAAQ,KAAK,QAC9B,EAAO,eAAgB,KAAK,QAErB,GAIR,aAAc,EAAS,CAEtB,YAAK,OAAO,aAAc,GAC1B,KAAK,OAAS,KAAK,OAAS,EAAO,oBAE5B,KAIR,UAAW,EAAS,CAEnB,YAAK,OAAO,IAAK,GAEV,KAIR,cAAe,EAAQ,CAItB,GAAS,WAAY,EAAO,KAAK,QAEjC,KAAM,GAAW,GAAS,WAE1B,GAAK,EAAa,KAAK,OAAS,KAAK,OAAW,CAE/C,KAAM,GAAS,KAAK,KAAM,GACpB,EAAsB,GAAS,KAAK,QAAW,GAMrD,KAAK,OAAO,IAAK,GAAS,eAAgB,EAAoB,IAC9D,KAAK,QAAU,EAIhB,MAAO,MAIR,MAAO,EAAS,CAQd,MAAK,MAAK,OAAO,OAAQ,EAAO,UAAa,GAE5C,GAAiB,IAAK,EAAG,EAAG,GAAI,eAAgB,EAAO,QAKxD,GAAiB,WAAY,EAAO,OAAQ,KAAK,QAAS,YAAY,eAAgB,EAAO,QAI9F,KAAK,cAAe,GAAM,KAAM,EAAO,QAAS,IAAK,KACrD,KAAK,cAAe,GAAM,KAAM,EAAO,QAAS,IAAK,KAE9C,KAIR,OAAQ,EAAS,CAEhB,MAAO,GAAO,OAAO,OAAQ,KAAK,SAAc,EAAO,SAAW,KAAK,OAIxE,OAAQ,CAEP,MAAO,IAAI,MAAK,cAAc,KAAM,OAMtC,KAAM,IAA0B,GAAI,GAC9B,GAA2B,GAAI,GAC/B,GAAwB,GAAI,GAC5B,GAAsB,GAAI,GAE1B,GAAuB,GAAI,GAC3B,GAAuB,GAAI,GAC3B,GAA0B,GAAI,GAEpC,QAAU,CAET,YAAa,EAAS,GAAI,GAAW,EAAY,GAAI,GAAS,EAAG,EAAG,IAAQ,CAE3E,KAAK,OAAS,EACd,KAAK,UAAY,EAIlB,IAAK,EAAQ,EAAY,CAExB,YAAK,OAAO,KAAM,GAClB,KAAK,UAAU,KAAM,GAEd,KAIR,KAAM,EAAM,CAEX,YAAK,OAAO,KAAM,EAAI,QACtB,KAAK,UAAU,KAAM,EAAI,WAElB,KAIR,GAAI,EAAG,EAAS,CAEf,MAAO,GAAO,KAAM,KAAK,WAAY,eAAgB,GAAI,IAAK,KAAK,QAIpE,OAAQ,EAAI,CAEX,YAAK,UAAU,KAAM,GAAI,IAAK,KAAK,QAAS,YAErC,KAIR,OAAQ,EAAI,CAEX,YAAK,OAAO,KAAM,KAAK,GAAI,EAAG,KAEvB,KAIR,oBAAqB,EAAO,EAAS,CAEpC,EAAO,WAAY,EAAO,KAAK,QAE/B,KAAM,GAAoB,EAAO,IAAK,KAAK,WAE3C,MAAK,GAAoB,EAEjB,EAAO,KAAM,KAAK,QAInB,EAAO,KAAM,KAAK,WAAY,eAAgB,GAAoB,IAAK,KAAK,QAIpF,gBAAiB,EAAQ,CAExB,MAAO,MAAK,KAAM,KAAK,kBAAmB,IAI3C,kBAAmB,EAAQ,CAE1B,KAAM,GAAoB,GAAU,WAAY,EAAO,KAAK,QAAS,IAAK,KAAK,WAI/E,MAAK,GAAoB,EAEjB,KAAK,OAAO,kBAAmB,GAIvC,IAAU,KAAM,KAAK,WAAY,eAAgB,GAAoB,IAAK,KAAK,QAExE,GAAU,kBAAmB,IAIrC,oBAAqB,EAAI,EAAI,EAAoB,EAAyB,CASzE,GAAW,KAAM,GAAK,IAAK,GAAK,eAAgB,IAChD,GAAQ,KAAM,GAAK,IAAK,GAAK,YAC7B,GAAM,KAAM,KAAK,QAAS,IAAK,IAE/B,KAAM,GAAY,EAAG,WAAY,GAAO,GAClC,EAAM,CAAE,KAAK,UAAU,IAAK,IAC5B,EAAK,GAAM,IAAK,KAAK,WACrB,EAAK,CAAE,GAAM,IAAK,IAClB,EAAI,GAAM,WACV,EAAM,KAAK,IAAK,EAAI,EAAM,GAChC,GAAI,GAAI,EAAI,EAAS,EAErB,GAAK,EAAM,EAQV,GAJA,EAAK,EAAM,EAAK,EAChB,EAAK,EAAM,EAAK,EAChB,EAAS,EAAY,EAEhB,GAAM,EAEV,GAAK,GAAM,CAAE,EAEZ,GAAK,GAAM,EAAS,CAKnB,KAAM,GAAS,EAAI,EACnB,GAAM,EACN,GAAM,EACN,EAAU,EAAO,GAAK,EAAM,EAAK,EAAI,GAAO,EAAO,GAAM,EAAK,EAAK,EAAI,GAAO,MAM9E,GAAK,EACL,EAAK,KAAK,IAAK,EAAG,CAAI,GAAM,EAAK,IACjC,EAAU,CAAE,EAAK,EAAK,EAAO,GAAK,EAAI,GAAO,MAQ9C,GAAK,CAAE,EACP,EAAK,KAAK,IAAK,EAAG,CAAI,GAAM,EAAK,IACjC,EAAU,CAAE,EAAK,EAAK,EAAO,GAAK,EAAI,GAAO,MAM9C,AAAK,IAAM,CAAE,EAIZ,GAAK,KAAK,IAAK,EAAG,CAAI,EAAE,EAAM,EAAY,IAC1C,EAAO,EAAK,EAAM,CAAE,EAAY,KAAK,IAAK,KAAK,IAAK,CAAE,EAAW,CAAE,GAAM,GACzE,EAAU,CAAE,EAAK,EAAK,EAAO,GAAK,EAAI,GAAO,GAEvC,AAAK,GAAM,EAIjB,GAAK,EACL,EAAK,KAAK,IAAK,KAAK,IAAK,CAAE,EAAW,CAAE,GAAM,GAC9C,EAAU,EAAO,GAAK,EAAI,GAAO,GAMjC,GAAK,KAAK,IAAK,EAAG,CAAI,GAAM,EAAY,IACxC,EAAO,EAAK,EAAM,EAAY,KAAK,IAAK,KAAK,IAAK,CAAE,EAAW,CAAE,GAAM,GACvE,EAAU,CAAE,EAAK,EAAK,EAAO,GAAK,EAAI,GAAO,OAU/C,GAAO,EAAM,EAAM,CAAE,EAAY,EACjC,EAAK,KAAK,IAAK,EAAG,CAAI,GAAM,EAAK,IACjC,EAAU,CAAE,EAAK,EAAK,EAAO,GAAK,EAAI,GAAO,EAI9C,MAAK,IAEJ,EAAmB,KAAM,KAAK,WAAY,eAAgB,GAAK,IAAK,KAAK,QAIrE,GAEJ,EAAuB,KAAM,IAAU,eAAgB,GAAK,IAAK,IAI3D,EAIR,gBAAiB,EAAQ,EAAS,CAEjC,GAAU,WAAY,EAAO,OAAQ,KAAK,QAC1C,KAAM,GAAM,GAAU,IAAK,KAAK,WAC1B,EAAK,GAAU,IAAK,IAAc,EAAM,EACxC,EAAU,EAAO,OAAS,EAAO,OAEvC,GAAK,EAAK,EAAU,MAAO,MAE3B,KAAM,GAAM,KAAK,KAAM,EAAU,GAG3B,EAAK,EAAM,EAGX,EAAK,EAAM,EAGjB,MAAK,GAAK,GAAK,EAAK,EAAW,KAK1B,EAAK,EAAW,KAAK,GAAI,EAAI,GAG3B,KAAK,GAAI,EAAI,GAIrB,iBAAkB,EAAS,CAE1B,MAAO,MAAK,kBAAmB,EAAO,SAAc,EAAO,OAAS,EAAO,OAI5E,gBAAiB,EAAQ,CAExB,KAAM,GAAc,EAAM,OAAO,IAAK,KAAK,WAE3C,GAAK,IAAgB,EAGpB,MAAK,GAAM,gBAAiB,KAAK,UAAa,EAEtC,EAMD,KAIR,KAAM,GAAI,CAAI,MAAK,OAAO,IAAK,EAAM,QAAW,EAAM,UAAa,EAInE,MAAO,IAAK,EAAI,EAAI,KAIrB,eAAgB,EAAO,EAAS,CAE/B,KAAM,GAAI,KAAK,gBAAiB,GAEhC,MAAK,KAAM,KAEH,KAID,KAAK,GAAI,EAAG,GAIpB,gBAAiB,EAAQ,CAIxB,KAAM,GAAc,EAAM,gBAAiB,KAAK,QAUhD,MARK,KAAgB,GAQhB,AAFe,EAAM,OAAO,IAAK,KAAK,WAExB,EAAc,EAYlC,aAAc,EAAK,EAAS,CAE3B,GAAI,GAAM,EAAM,EAAO,EAAO,EAAO,EAErC,KAAM,GAAU,EAAI,KAAK,UAAU,EAClC,EAAU,EAAI,KAAK,UAAU,EAC7B,EAAU,EAAI,KAAK,UAAU,EAExB,EAAS,KAAK,OAuDpB,MArDA,AAAK,IAAW,EAEf,GAAS,GAAI,IAAI,EAAI,EAAO,GAAM,EAClC,EAAS,GAAI,IAAI,EAAI,EAAO,GAAM,GAIlC,GAAS,GAAI,IAAI,EAAI,EAAO,GAAM,EAClC,EAAS,GAAI,IAAI,EAAI,EAAO,GAAM,GAInC,AAAK,GAAW,EAEf,GAAU,GAAI,IAAI,EAAI,EAAO,GAAM,EACnC,EAAU,GAAI,IAAI,EAAI,EAAO,GAAM,GAInC,GAAU,GAAI,IAAI,EAAI,EAAO,GAAM,EACnC,EAAU,GAAI,IAAI,EAAI,EAAO,GAAM,GAI7B,EAAO,GAAa,EAAQ,GAK9B,IAAQ,GAAQ,IAAS,IAAO,GAAO,GAEvC,GAAQ,GAAQ,IAAS,IAAO,GAAO,GAE5C,AAAK,GAAW,EAEf,GAAU,GAAI,IAAI,EAAI,EAAO,GAAM,EACnC,EAAU,GAAI,IAAI,EAAI,EAAO,GAAM,GAInC,GAAU,GAAI,IAAI,EAAI,EAAO,GAAM,EACnC,EAAU,GAAI,IAAI,EAAI,EAAO,GAAM,GAI7B,EAAO,GAAa,EAAQ,IAE9B,IAAQ,GAAQ,IAAS,IAAO,GAAO,GAEvC,GAAQ,GAAQ,IAAS,IAAO,GAAO,GAIvC,EAAO,GAAW,KAEhB,KAAK,GAAI,GAAQ,EAAI,EAAO,EAAM,GAI1C,cAAe,EAAM,CAEpB,MAAO,MAAK,aAAc,EAAK,MAAgB,KAIhD,kBAAmB,EAAG,EAAG,EAAG,EAAiB,EAAS,CAMrD,GAAO,WAAY,EAAG,GACtB,GAAO,WAAY,EAAG,GACtB,GAAU,aAAc,GAAQ,IAOhC,GAAI,GAAM,KAAK,UAAU,IAAK,IAC1B,EAEJ,GAAK,EAAM,EAAI,CAEd,GAAK,EAAkB,MAAO,MAC9B,EAAO,UAEI,EAAM,EAEjB,EAAO,GACP,EAAM,CAAE,MAIR,OAAO,MAIR,GAAM,WAAY,KAAK,OAAQ,GAC/B,KAAM,GAAS,EAAO,KAAK,UAAU,IAAK,GAAO,aAAc,GAAO,KAGtE,GAAK,EAAS,EAEb,MAAO,MAIR,KAAM,GAAS,EAAO,KAAK,UAAU,IAAK,GAAO,MAAO,KAUxD,GAPK,EAAS,GAOT,EAAS,EAAS,EAEtB,MAAO,MAKR,KAAM,GAAM,CAAE,EAAO,GAAM,IAAK,IAGhC,MAAK,GAAM,EAEH,KAKD,KAAK,GAAI,EAAM,EAAK,GAI5B,aAAc,EAAU,CAEvB,YAAK,OAAO,aAAc,GAC1B,KAAK,UAAU,mBAAoB,GAE5B,KAIR,OAAQ,EAAM,CAEb,MAAO,GAAI,OAAO,OAAQ,KAAK,SAAY,EAAI,UAAU,OAAQ,KAAK,WAIvE,OAAQ,CAEP,MAAO,IAAI,MAAK,cAAc,KAAM,OAMtC,QAAc,CAEb,aAAc,CAEb,KAAK,SAAW,CAEf,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,GAIL,UAAU,OAAS,GAEvB,QAAQ,MAAO,iFAMjB,IAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAM,CAErF,KAAM,GAAK,KAAK,SAEhB,SAAI,GAAM,EAAK,EAAI,GAAM,EAAK,EAAI,GAAM,EAAK,EAAI,IAAO,EACxD,EAAI,GAAM,EAAK,EAAI,GAAM,EAAK,EAAI,GAAM,EAAK,EAAI,IAAO,EACxD,EAAI,GAAM,EAAK,EAAI,GAAM,EAAK,EAAI,IAAO,EAAK,EAAI,IAAO,EACzD,EAAI,GAAM,EAAK,EAAI,GAAM,EAAK,EAAI,IAAO,EAAK,EAAI,IAAO,EAElD,KAIR,UAAW,CAEV,YAAK,IAEJ,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,GAIH,KAIR,OAAQ,CAEP,MAAO,IAAI,MAAU,UAAW,KAAK,UAItC,KAAM,EAAI,CAET,KAAM,GAAK,KAAK,SACV,EAAK,EAAE,SAEb,SAAI,GAAM,EAAI,GAAK,EAAI,GAAM,EAAI,GAAK,EAAI,GAAM,EAAI,GAAK,EAAI,GAAM,EAAI,GACvE,EAAI,GAAM,EAAI,GAAK,EAAI,GAAM,EAAI,GAAK,EAAI,GAAM,EAAI,GAAK,EAAI,GAAM,EAAI,GACvE,EAAI,GAAM,EAAI,GAAK,EAAI,GAAM,EAAI,GAAK,EAAI,IAAO,EAAI,IAAM,EAAI,IAAO,EAAI,IAC1E,EAAI,IAAO,EAAI,IAAM,EAAI,IAAO,EAAI,IAAM,EAAI,IAAO,EAAI,IAAM,EAAI,IAAO,EAAI,IAEvE,KAIR,aAAc,EAAI,CAEjB,KAAM,GAAK,KAAK,SAAU,EAAK,EAAE,SAEjC,SAAI,IAAO,EAAI,IACf,EAAI,IAAO,EAAI,IACf,EAAI,IAAO,EAAI,IAER,KAIR,eAAgB,EAAI,CAEnB,KAAM,GAAK,EAAE,SAEb,YAAK,IAEJ,EAAI,GAAK,EAAI,GAAK,EAAI,GAAK,EAC3B,EAAI,GAAK,EAAI,GAAK,EAAI,GAAK,EAC3B,EAAI,GAAK,EAAI,GAAK,EAAI,GAAK,EAC3B,EAAG,EAAG,EAAG,GAIH,KAIR,aAAc,EAAO,EAAO,EAAQ,CAEnC,SAAM,oBAAqB,KAAM,GACjC,EAAM,oBAAqB,KAAM,GACjC,EAAM,oBAAqB,KAAM,GAE1B,KAIR,UAAW,EAAO,EAAO,EAAQ,CAEhC,YAAK,IACJ,EAAM,EAAG,EAAM,EAAG,EAAM,EAAG,EAC3B,EAAM,EAAG,EAAM,EAAG,EAAM,EAAG,EAC3B,EAAM,EAAG,EAAM,EAAG,EAAM,EAAG,EAC3B,EAAG,EAAG,EAAG,GAGH,KAIR,gBAAiB,EAAI,CAIpB,KAAM,GAAK,KAAK,SACV,EAAK,EAAE,SAEP,EAAS,EAAI,GAAM,oBAAqB,EAAG,GAAI,SAC/C,EAAS,EAAI,GAAM,oBAAqB,EAAG,GAAI,SAC/C,EAAS,EAAI,GAAM,oBAAqB,EAAG,GAAI,SAErD,SAAI,GAAM,EAAI,GAAM,EACpB,EAAI,GAAM,EAAI,GAAM,EACpB,EAAI,GAAM,EAAI,GAAM,EACpB,EAAI,GAAM,EAEV,EAAI,GAAM,EAAI,GAAM,EACpB,EAAI,GAAM,EAAI,GAAM,EACpB,EAAI,GAAM,EAAI,GAAM,EACpB,EAAI,GAAM,EAEV,EAAI,GAAM,EAAI,GAAM,EACpB,EAAI,GAAM,EAAI,GAAM,EACpB,EAAI,IAAO,EAAI,IAAO,EACtB,EAAI,IAAO,EAEX,EAAI,IAAO,EACX,EAAI,IAAO,EACX,EAAI,IAAO,EACX,EAAI,IAAO,EAEJ,KAIR,sBAAuB,EAAQ,CAE9B,AAAS,GAAS,EAAM,SAEvB,QAAQ,MAAO,yGAIhB,KAAM,GAAK,KAAK,SAEV,EAAI,EAAM,EAAG,EAAI,EAAM,EAAG,EAAI,EAAM,EACpC,EAAI,KAAK,IAAK,GAAK,EAAI,KAAK,IAAK,GACjC,EAAI,KAAK,IAAK,GAAK,EAAI,KAAK,IAAK,GACjC,EAAI,KAAK,IAAK,GAAK,EAAI,KAAK,IAAK,GAEvC,GAAK,EAAM,QAAU,MAAQ,CAE5B,KAAM,GAAK,EAAI,EAAG,EAAK,EAAI,EAAG,EAAK,EAAI,EAAG,EAAK,EAAI,EAEnD,EAAI,GAAM,EAAI,EACd,EAAI,GAAM,CAAE,EAAI,EAChB,EAAI,GAAM,EAEV,EAAI,GAAM,EAAK,EAAK,EACpB,EAAI,GAAM,EAAK,EAAK,EACpB,EAAI,GAAM,CAAE,EAAI,EAEhB,EAAI,GAAM,EAAK,EAAK,EACpB,EAAI,GAAM,EAAK,EAAK,EACpB,EAAI,IAAO,EAAI,UAEJ,EAAM,QAAU,MAAQ,CAEnC,KAAM,GAAK,EAAI,EAAG,EAAK,EAAI,EAAG,EAAK,EAAI,EAAG,EAAK,EAAI,EAEnD,EAAI,GAAM,EAAK,EAAK,EACpB,EAAI,GAAM,EAAK,EAAI,EACnB,EAAI,GAAM,EAAI,EAEd,EAAI,GAAM,EAAI,EACd,EAAI,GAAM,EAAI,EACd,EAAI,GAAM,CAAE,EAEZ,EAAI,GAAM,EAAK,EAAI,EACnB,EAAI,GAAM,EAAK,EAAK,EACpB,EAAI,IAAO,EAAI,UAEJ,EAAM,QAAU,MAAQ,CAEnC,KAAM,GAAK,EAAI,EAAG,EAAK,EAAI,EAAG,EAAK,EAAI,EAAG,EAAK,EAAI,EAEnD,EAAI,GAAM,EAAK,EAAK,EACpB,EAAI,GAAM,CAAE,EAAI,EAChB,EAAI,GAAM,EAAK,EAAK,EAEpB,EAAI,GAAM,EAAK,EAAK,EACpB,EAAI,GAAM,EAAI,EACd,EAAI,GAAM,EAAK,EAAK,EAEpB,EAAI,GAAM,CAAE,EAAI,EAChB,EAAI,GAAM,EACV,EAAI,IAAO,EAAI,UAEJ,EAAM,QAAU,MAAQ,CAEnC,KAAM,GAAK,EAAI,EAAG,EAAK,EAAI,EAAG,EAAK,EAAI,EAAG,EAAK,EAAI,EAEnD,EAAI,GAAM,EAAI,EACd,EAAI,GAAM,EAAK,EAAI,EACnB,EAAI,GAAM,EAAK,EAAI,EAEnB,EAAI,GAAM,EAAI,EACd,EAAI,GAAM,EAAK,EAAI,EACnB,EAAI,GAAM,EAAK,EAAI,EAEnB,EAAI,GAAM,CAAE,EACZ,EAAI,GAAM,EAAI,EACd,EAAI,IAAO,EAAI,UAEJ,EAAM,QAAU,MAAQ,CAEnC,KAAM,GAAK,EAAI,EAAG,EAAK,EAAI,EAAG,EAAK,EAAI,EAAG,EAAK,EAAI,EAEnD,EAAI,GAAM,EAAI,EACd,EAAI,GAAM,EAAK,EAAK,EACpB,EAAI,GAAM,EAAK,EAAI,EAEnB,EAAI,GAAM,EACV,EAAI,GAAM,EAAI,EACd,EAAI,GAAM,CAAE,EAAI,EAEhB,EAAI,GAAM,CAAE,EAAI,EAChB,EAAI,GAAM,EAAK,EAAI,EACnB,EAAI,IAAO,EAAK,EAAK,UAEV,EAAM,QAAU,MAAQ,CAEnC,KAAM,GAAK,EAAI,EAAG,EAAK,EAAI,EAAG,EAAK,EAAI,EAAG,EAAK,EAAI,EAEnD,EAAI,GAAM,EAAI,EACd,EAAI,GAAM,CAAE,EACZ,EAAI,GAAM,EAAI,EAEd,EAAI,GAAM,EAAK,EAAI,EACnB,EAAI,GAAM,EAAI,EACd,EAAI,GAAM,EAAK,EAAI,EAEnB,EAAI,GAAM,EAAK,EAAI,EACnB,EAAI,GAAM,EAAI,EACd,EAAI,IAAO,EAAK,EAAI,EAKrB,SAAI,GAAM,EACV,EAAI,GAAM,EACV,EAAI,IAAO,EAGX,EAAI,IAAO,EACX,EAAI,IAAO,EACX,EAAI,IAAO,EACX,EAAI,IAAO,EAEJ,KAIR,2BAA4B,EAAI,CAE/B,MAAO,MAAK,QAAS,GAAO,EAAG,IAIhC,OAAQ,EAAK,EAAQ,EAAK,CAEzB,KAAM,GAAK,KAAK,SAEhB,UAAG,WAAY,EAAK,GAEf,GAAG,aAAe,GAItB,IAAG,EAAI,GAIR,GAAG,YACH,GAAG,aAAc,EAAI,IAEhB,GAAG,aAAe,GAItB,CAAK,KAAK,IAAK,EAAG,KAAQ,EAEzB,GAAG,GAAK,KAIR,GAAG,GAAK,KAIT,GAAG,YACH,GAAG,aAAc,EAAI,KAItB,GAAG,YACH,GAAG,aAAc,GAAI,IAErB,EAAI,GAAM,GAAG,EAAG,EAAI,GAAM,GAAG,EAAG,EAAI,GAAM,GAAG,EAC7C,EAAI,GAAM,GAAG,EAAG,EAAI,GAAM,GAAG,EAAG,EAAI,GAAM,GAAG,EAC7C,EAAI,GAAM,GAAG,EAAG,EAAI,GAAM,GAAG,EAAG,EAAI,IAAO,GAAG,EAEvC,KAIR,SAAU,EAAG,EAAI,CAEhB,MAAK,KAAM,OAEV,SAAQ,KAAM,oGACP,KAAK,iBAAkB,EAAG,IAI3B,KAAK,iBAAkB,KAAM,GAIrC,YAAa,EAAI,CAEhB,MAAO,MAAK,iBAAkB,EAAG,MAIlC,iBAAkB,EAAG,EAAI,CAExB,KAAM,GAAK,EAAE,SACP,EAAK,EAAE,SACP,EAAK,KAAK,SAEV,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,IACvD,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,IACvD,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,IAAM,EAAM,EAAI,IACxD,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,IAAM,EAAM,EAAI,IAExD,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,GAAM,EAAI,IACvD,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,IACvD,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,IAAM,EAAM,EAAI,IACxD,EAAM,EAAI,GAAK,GAAM,EAAI,GAAK,EAAM,EAAI,IAAM,EAAM,EAAI,IAE9D,SAAI,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EACpD,EAAI,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GACpD,EAAI,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EACpD,EAAI,IAAO,EAAM,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAErD,EAAI,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EACpD,EAAI,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GACpD,EAAI,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EACpD,EAAI,IAAO,EAAM,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAErD,EAAI,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EACpD,EAAI,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GACpD,EAAI,IAAO,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EACrD,EAAI,IAAO,EAAM,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAErD,EAAI,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EACpD,EAAI,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GACpD,EAAI,IAAO,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EACrD,EAAI,IAAO,EAAM,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAE9C,KAIR,eAAgB,EAAI,CAEnB,KAAM,GAAK,KAAK,SAEhB,SAAI,IAAO,EAAG,EAAI,IAAO,EAAG,EAAI,IAAO,EAAG,EAAI,KAAQ,EACtD,EAAI,IAAO,EAAG,EAAI,IAAO,EAAG,EAAI,IAAO,EAAG,EAAI,KAAQ,EACtD,EAAI,IAAO,EAAG,EAAI,IAAO,EAAG,EAAI,KAAQ,EAAG,EAAI,KAAQ,EACvD,EAAI,IAAO,EAAG,EAAI,IAAO,EAAG,EAAI,KAAQ,EAAG,EAAI,KAAQ,EAEhD,KAIR,aAAc,CAEb,KAAM,GAAK,KAAK,SAEV,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,IACvD,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,IACvD,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,IAAM,EAAM,EAAI,IACxD,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,IAAM,EAAM,EAAI,IAK9D,MACC,GACC,EAAE,EAAM,EAAM,EACX,EAAM,EAAM,EACZ,EAAM,EAAM,EACZ,EAAM,EAAM,EACZ,EAAM,EAAM,EACZ,EAAM,EAAM,GAEhB,EACC,EAAE,EAAM,EAAM,EACX,EAAM,EAAM,EACZ,EAAM,EAAM,EACZ,EAAM,EAAM,EACZ,EAAM,EAAM,EACZ,EAAM,EAAM,GAEhB,EACC,EAAE,EAAM,EAAM,EACX,EAAM,EAAM,EACZ,EAAM,EAAM,EACZ,EAAM,EAAM,EACZ,EAAM,EAAM,EACZ,EAAM,EAAM,GAEhB,EACC,EAAE,EAAM,EAAM,EACX,EAAM,EAAM,EACZ,EAAM,EAAM,EACZ,EAAM,EAAM,EACZ,EAAM,EAAM,EACZ,EAAM,EAAM,GAOlB,WAAY,CAEX,KAAM,GAAK,KAAK,SAChB,GAAI,GAEJ,SAAM,EAAI,GAAK,EAAI,GAAM,EAAI,GAAK,EAAI,GAAM,EAC5C,EAAM,EAAI,GAAK,EAAI,GAAM,EAAI,GAAK,EAAI,GAAM,EAC5C,EAAM,EAAI,GAAK,EAAI,GAAM,EAAI,GAAK,EAAI,GAAM,EAE5C,EAAM,EAAI,GAAK,EAAI,GAAM,EAAI,IAAM,EAAI,IAAO,EAC9C,EAAM,EAAI,GAAK,EAAI,GAAM,EAAI,IAAM,EAAI,IAAO,EAC9C,EAAM,EAAI,IAAM,EAAI,IAAO,EAAI,IAAM,EAAI,IAAO,EAEzC,KAIR,YAAa,EAAG,EAAG,EAAI,CAEtB,KAAM,GAAK,KAAK,SAEhB,MAAK,GAAE,UAEN,GAAI,IAAO,EAAE,EACb,EAAI,IAAO,EAAE,EACb,EAAI,IAAO,EAAE,GAIb,GAAI,IAAO,EACX,EAAI,IAAO,EACX,EAAI,IAAO,GAIL,KAIR,QAAS,CAGR,KAAM,GAAK,KAAK,SAEf,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GACvD,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GACvD,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,IAAM,EAAM,EAAI,IACxD,EAAM,EAAI,IAAM,EAAM,EAAI,IAAM,EAAM,EAAI,IAAM,EAAM,EAAI,IAE1D,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAC5G,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAC5G,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAC5G,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAEvG,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAEtD,GAAK,IAAQ,EAAI,MAAO,MAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAE/E,KAAM,GAAS,EAAI,EAEnB,SAAI,GAAM,EAAM,EAChB,EAAI,GAAQ,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAQ,EAC1H,EAAI,GAAQ,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAQ,EAC1H,EAAI,GAAQ,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAQ,EAE1H,EAAI,GAAM,EAAM,EAChB,EAAI,GAAQ,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAQ,EAC1H,EAAI,GAAQ,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAQ,EAC1H,EAAI,GAAQ,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAQ,EAE1H,EAAI,GAAM,EAAM,EAChB,EAAI,GAAQ,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAQ,EAC1H,EAAI,IAAS,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAQ,EAC3H,EAAI,IAAS,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAQ,EAE3H,EAAI,IAAO,EAAM,EACjB,EAAI,IAAS,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAQ,EAC3H,EAAI,IAAS,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAQ,EAC3H,EAAI,IAAS,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAQ,EAEpH,KAIR,MAAO,EAAI,CAEV,KAAM,GAAK,KAAK,SACV,EAAI,EAAE,EAAG,EAAI,EAAE,EAAG,EAAI,EAAE,EAE9B,SAAI,IAAO,EAAG,EAAI,IAAO,EAAG,EAAI,IAAO,EACvC,EAAI,IAAO,EAAG,EAAI,IAAO,EAAG,EAAI,IAAO,EACvC,EAAI,IAAO,EAAG,EAAI,IAAO,EAAG,EAAI,KAAQ,EACxC,EAAI,IAAO,EAAG,EAAI,IAAO,EAAG,EAAI,KAAQ,EAEjC,KAIR,mBAAoB,CAEnB,KAAM,GAAK,KAAK,SAEV,EAAW,EAAI,GAAM,EAAI,GAAM,EAAI,GAAM,EAAI,GAAM,EAAI,GAAM,EAAI,GACjE,EAAW,EAAI,GAAM,EAAI,GAAM,EAAI,GAAM,EAAI,GAAM,EAAI,GAAM,EAAI,GACjE,EAAW,EAAI,GAAM,EAAI,GAAM,EAAI,GAAM,EAAI,GAAM,EAAI,IAAO,EAAI,IAExE,MAAO,MAAK,KAAM,KAAK,IAAK,EAAU,EAAU,IAIjD,gBAAiB,EAAG,EAAG,EAAI,CAE1B,YAAK,IAEJ,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,GAIH,KAIR,cAAe,EAAQ,CAEtB,KAAM,GAAI,KAAK,IAAK,GAAS,EAAI,KAAK,IAAK,GAE3C,YAAK,IAEJ,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,CAAE,EAAG,EACX,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,GAIH,KAIR,cAAe,EAAQ,CAEtB,KAAM,GAAI,KAAK,IAAK,GAAS,EAAI,KAAK,IAAK,GAE3C,YAAK,IAEH,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACV,CAAE,EAAG,EAAG,EAAG,EACV,EAAG,EAAG,EAAG,GAIJ,KAIR,cAAe,EAAQ,CAEtB,KAAM,GAAI,KAAK,IAAK,GAAS,EAAI,KAAK,IAAK,GAE3C,YAAK,IAEJ,EAAG,CAAE,EAAG,EAAG,EACX,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,GAIH,KAIR,iBAAkB,EAAM,EAAQ,CAI/B,KAAM,GAAI,KAAK,IAAK,GACd,EAAI,KAAK,IAAK,GACd,EAAI,EAAI,EACR,EAAI,EAAK,EAAG,EAAI,EAAK,EAAG,EAAI,EAAK,EACjC,EAAK,EAAI,EAAG,EAAK,EAAI,EAE3B,YAAK,IAEJ,EAAK,EAAI,EAAG,EAAK,EAAI,EAAI,EAAG,EAAK,EAAI,EAAI,EAAG,EAC5C,EAAK,EAAI,EAAI,EAAG,EAAK,EAAI,EAAG,EAAK,EAAI,EAAI,EAAG,EAC5C,EAAK,EAAI,EAAI,EAAG,EAAK,EAAI,EAAI,EAAG,EAAI,EAAI,EAAI,EAAG,EAC/C,EAAG,EAAG,EAAG,GAIH,KAIR,UAAW,EAAG,EAAG,EAAI,CAEpB,YAAK,IAEJ,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,GAIH,KAIR,UAAW,EAAI,EAAI,EAAI,EAAI,EAAI,EAAK,CAEnC,YAAK,IAEJ,EAAG,EAAI,EAAI,EACX,EAAI,EAAG,EAAI,EACX,EAAI,EAAI,EAAG,EACX,EAAG,EAAG,EAAG,GAIH,KAIR,QAAS,EAAU,EAAY,EAAQ,CAEtC,KAAM,GAAK,KAAK,SAEV,EAAI,EAAW,GAAI,EAAI,EAAW,GAAI,EAAI,EAAW,GAAI,EAAI,EAAW,GACxE,EAAK,EAAI,EAAG,EAAK,EAAI,EAAG,EAAK,EAAI,EACjC,EAAK,EAAI,EAAI,EAAK,EAAI,EAAI,EAAK,EAAI,EACnC,EAAK,EAAI,EAAI,EAAK,EAAI,EAAI,EAAK,EAAI,EACnC,EAAK,EAAI,EAAI,EAAK,EAAI,EAAI,EAAK,EAAI,EAEnC,EAAK,EAAM,EAAG,EAAK,EAAM,EAAG,EAAK,EAAM,EAE7C,SAAI,GAAQ,GAAM,GAAK,IAAS,EAChC,EAAI,GAAQ,GAAK,GAAO,EACxB,EAAI,GAAQ,GAAK,GAAO,EACxB,EAAI,GAAM,EAEV,EAAI,GAAQ,GAAK,GAAO,EACxB,EAAI,GAAQ,GAAM,GAAK,IAAS,EAChC,EAAI,GAAQ,GAAK,GAAO,EACxB,EAAI,GAAM,EAEV,EAAI,GAAQ,GAAK,GAAO,EACxB,EAAI,GAAQ,GAAK,GAAO,EACxB,EAAI,IAAS,GAAM,GAAK,IAAS,EACjC,EAAI,IAAO,EAEX,EAAI,IAAO,EAAS,EACpB,EAAI,IAAO,EAAS,EACpB,EAAI,IAAO,EAAS,EACpB,EAAI,IAAO,EAEJ,KAIR,UAAW,EAAU,EAAY,EAAQ,CAExC,KAAM,GAAK,KAAK,SAEhB,GAAI,GAAK,GAAM,IAAK,EAAI,GAAK,EAAI,GAAK,EAAI,IAAM,SAChD,KAAM,GAAK,GAAM,IAAK,EAAI,GAAK,EAAI,GAAK,EAAI,IAAM,SAC5C,EAAK,GAAM,IAAK,EAAI,GAAK,EAAI,GAAK,EAAI,KAAO,SAInD,AAAK,AADO,KAAK,cACN,GAAI,GAAK,CAAE,GAEtB,EAAS,EAAI,EAAI,IACjB,EAAS,EAAI,EAAI,IACjB,EAAS,EAAI,EAAI,IAGjB,GAAM,KAAM,MAEZ,KAAM,GAAQ,EAAI,EACZ,EAAQ,EAAI,EACZ,EAAQ,EAAI,EAElB,UAAM,SAAU,IAAO,EACvB,GAAM,SAAU,IAAO,EACvB,GAAM,SAAU,IAAO,EAEvB,GAAM,SAAU,IAAO,EACvB,GAAM,SAAU,IAAO,EACvB,GAAM,SAAU,IAAO,EAEvB,GAAM,SAAU,IAAO,EACvB,GAAM,SAAU,IAAO,EACvB,GAAM,SAAU,KAAQ,EAExB,EAAW,sBAAuB,IAElC,EAAM,EAAI,EACV,EAAM,EAAI,EACV,EAAM,EAAI,EAEH,KAIR,gBAAiB,EAAM,EAAO,EAAK,EAAQ,EAAM,EAAM,CAEtD,AAAK,IAAQ,QAEZ,QAAQ,KAAM,wGAIf,KAAM,GAAK,KAAK,SACV,EAAI,EAAI,EAAS,GAAQ,GACzB,EAAI,EAAI,EAAS,GAAM,GAEvB,EAAM,GAAQ,GAAW,GAAQ,GACjC,EAAM,GAAM,GAAa,GAAM,GAC/B,EAAI,CAAI,GAAM,GAAW,GAAM,GAC/B,EAAI,GAAM,EAAM,EAAS,GAAM,GAErC,SAAI,GAAM,EAAG,EAAI,GAAM,EAAG,EAAI,GAAM,EAAG,EAAI,IAAO,EAClD,EAAI,GAAM,EAAG,EAAI,GAAM,EAAG,EAAI,GAAM,EAAG,EAAI,IAAO,EAClD,EAAI,GAAM,EAAG,EAAI,GAAM,EAAG,EAAI,IAAO,EAAG,EAAI,IAAO,EACnD,EAAI,GAAM,EAAG,EAAI,GAAM,EAAG,EAAI,IAAO,GAAK,EAAI,IAAO,EAE9C,KAIR,iBAAkB,EAAM,EAAO,EAAK,EAAQ,EAAM,EAAM,CAEvD,KAAM,GAAK,KAAK,SACV,EAAI,EAAQ,GAAQ,GACpB,EAAI,EAAQ,GAAM,GAClB,EAAI,EAAQ,GAAM,GAElB,EAAM,GAAQ,GAAS,EACvB,EAAM,GAAM,GAAW,EACvB,EAAM,GAAM,GAAS,EAE3B,SAAI,GAAM,EAAI,EAAG,EAAI,GAAM,EAAG,EAAI,GAAM,EAAG,EAAI,IAAO,CAAE,EACxD,EAAI,GAAM,EAAG,EAAI,GAAM,EAAI,EAAG,EAAI,GAAM,EAAG,EAAI,IAAO,CAAE,EACxD,EAAI,GAAM,EAAG,EAAI,GAAM,EAAG,EAAI,IAAO,GAAM,EAAG,EAAI,IAAO,CAAE,EAC3D,EAAI,GAAM,EAAG,EAAI,GAAM,EAAG,EAAI,IAAO,EAAG,EAAI,IAAO,EAE5C,KAIR,OAAQ,EAAS,CAEhB,KAAM,GAAK,KAAK,SACV,EAAK,EAAO,SAElB,OAAU,GAAI,EAAG,EAAI,GAAI,IAExB,GAAK,EAAI,KAAQ,EAAI,GAAM,MAAO,GAInC,MAAO,GAIR,UAAW,EAAO,EAAS,EAAI,CAE9B,OAAU,GAAI,EAAG,EAAI,GAAI,IAExB,KAAK,SAAU,GAAM,EAAO,EAAI,GAIjC,MAAO,MAIR,QAAS,EAAQ,GAAI,EAAS,EAAI,CAEjC,KAAM,GAAK,KAAK,SAEhB,SAAO,GAAW,EAAI,GACtB,EAAO,EAAS,GAAM,EAAI,GAC1B,EAAO,EAAS,GAAM,EAAI,GAC1B,EAAO,EAAS,GAAM,EAAI,GAE1B,EAAO,EAAS,GAAM,EAAI,GAC1B,EAAO,EAAS,GAAM,EAAI,GAC1B,EAAO,EAAS,GAAM,EAAI,GAC1B,EAAO,EAAS,GAAM,EAAI,GAE1B,EAAO,EAAS,GAAM,EAAI,GAC1B,EAAO,EAAS,GAAM,EAAI,GAC1B,EAAO,EAAS,IAAO,EAAI,IAC3B,EAAO,EAAS,IAAO,EAAI,IAE3B,EAAO,EAAS,IAAO,EAAI,IAC3B,EAAO,EAAS,IAAO,EAAI,IAC3B,EAAO,EAAS,IAAO,EAAI,IAC3B,EAAO,EAAS,IAAO,EAAI,IAEpB,GAMT,GAAQ,UAAU,UAAY,GAE9B,KAAM,IAAsB,GAAI,GAC1B,GAAsB,GAAI,IAC1B,GAAsB,GAAI,GAAS,EAAG,EAAG,GACzC,GAAqB,GAAI,GAAS,EAAG,EAAG,GACxC,GAAmB,GAAI,GACvB,GAAmB,GAAI,GACvB,GAAmB,GAAI,GAEvB,GAA0B,GAAI,IAC9B,GAA8B,GAAI,IAExC,QAAY,CAEX,YAAa,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAQ,GAAM,aAAe,CAE9D,KAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,OAAS,KAIX,IAAI,CAEP,MAAO,MAAK,MAIT,GAAG,EAAQ,CAEd,KAAK,GAAK,EACV,KAAK,uBAIF,IAAI,CAEP,MAAO,MAAK,MAIT,GAAG,EAAQ,CAEd,KAAK,GAAK,EACV,KAAK,uBAIF,IAAI,CAEP,MAAO,MAAK,MAIT,GAAG,EAAQ,CAEd,KAAK,GAAK,EACV,KAAK,uBAIF,QAAQ,CAEX,MAAO,MAAK,UAIT,OAAO,EAAQ,CAElB,KAAK,OAAS,EACd,KAAK,oBAIN,IAAK,EAAG,EAAG,EAAG,EAAQ,KAAK,OAAS,CAEnC,YAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,OAAS,EAEd,KAAK,oBAEE,KAIR,OAAQ,CAEP,MAAO,IAAI,MAAK,YAAa,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,QAI9D,KAAM,EAAQ,CAEb,YAAK,GAAK,EAAM,GAChB,KAAK,GAAK,EAAM,GAChB,KAAK,GAAK,EAAM,GAChB,KAAK,OAAS,EAAM,OAEpB,KAAK,oBAEE,KAIR,sBAAuB,EAAG,EAAQ,KAAK,OAAQ,EAAS,GAAO,CAI9D,KAAM,GAAK,EAAE,SACP,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GACxC,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GACxC,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,IAE9C,OAAS,OAEH,MAEJ,KAAK,GAAK,KAAK,KAAM,GAAO,EAAK,GAAK,IAEtC,AAAK,KAAK,IAAK,GAAQ,SAEtB,MAAK,GAAK,KAAK,MAAO,CAAE,EAAK,GAC7B,KAAK,GAAK,KAAK,MAAO,CAAE,EAAK,IAI7B,MAAK,GAAK,KAAK,MAAO,EAAK,GAC3B,KAAK,GAAK,GAIX,UAEI,MAEJ,KAAK,GAAK,KAAK,KAAM,CAAE,GAAO,EAAK,GAAK,IAExC,AAAK,KAAK,IAAK,GAAQ,SAEtB,MAAK,GAAK,KAAK,MAAO,EAAK,GAC3B,KAAK,GAAK,KAAK,MAAO,EAAK,IAI3B,MAAK,GAAK,KAAK,MAAO,CAAE,EAAK,GAC7B,KAAK,GAAK,GAIX,UAEI,MAEJ,KAAK,GAAK,KAAK,KAAM,GAAO,EAAK,GAAK,IAEtC,AAAK,KAAK,IAAK,GAAQ,SAEtB,MAAK,GAAK,KAAK,MAAO,CAAE,EAAK,GAC7B,KAAK,GAAK,KAAK,MAAO,CAAE,EAAK,IAI7B,MAAK,GAAK,EACV,KAAK,GAAK,KAAK,MAAO,EAAK,IAI5B,UAEI,MAEJ,KAAK,GAAK,KAAK,KAAM,CAAE,GAAO,EAAK,GAAK,IAExC,AAAK,KAAK,IAAK,GAAQ,SAEtB,MAAK,GAAK,KAAK,MAAO,EAAK,GAC3B,KAAK,GAAK,KAAK,MAAO,EAAK,IAI3B,MAAK,GAAK,EACV,KAAK,GAAK,KAAK,MAAO,CAAE,EAAK,IAI9B,UAEI,MAEJ,KAAK,GAAK,KAAK,KAAM,GAAO,EAAK,GAAK,IAEtC,AAAK,KAAK,IAAK,GAAQ,SAEtB,MAAK,GAAK,KAAK,MAAO,CAAE,EAAK,GAC7B,KAAK,GAAK,KAAK,MAAO,CAAE,EAAK,IAI7B,MAAK,GAAK,EACV,KAAK,GAAK,KAAK,MAAO,EAAK,IAI5B,UAEI,MAEJ,KAAK,GAAK,KAAK,KAAM,CAAE,GAAO,EAAK,GAAK,IAExC,AAAK,KAAK,IAAK,GAAQ,SAEtB,MAAK,GAAK,KAAK,MAAO,EAAK,GAC3B,KAAK,GAAK,KAAK,MAAO,EAAK,IAI3B,MAAK,GAAK,KAAK,MAAO,CAAE,EAAK,GAC7B,KAAK,GAAK,GAIX,cAIA,QAAQ,KAAM,uEAAyE,GAIzF,YAAK,OAAS,EAET,IAAW,IAAO,KAAK,oBAErB,KAIR,kBAAmB,EAAG,EAAO,EAAS,CAErC,UAAU,2BAA4B,GAE/B,KAAK,sBAAuB,GAAW,EAAO,GAItD,eAAgB,EAAG,EAAQ,KAAK,OAAS,CAExC,MAAO,MAAK,IAAK,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,GAIjC,QAAS,EAAW,CAInB,UAAc,aAAc,MAErB,KAAK,kBAAmB,GAAe,GAI/C,OAAQ,EAAQ,CAEf,MAAS,GAAM,KAAO,KAAK,IAAU,EAAM,KAAO,KAAK,IAAU,EAAM,KAAO,KAAK,IAAU,EAAM,SAAW,KAAK,OAIpH,UAAW,EAAQ,CAElB,YAAK,GAAK,EAAO,GACjB,KAAK,GAAK,EAAO,GACjB,KAAK,GAAK,EAAO,GACZ,EAAO,KAAQ,QAAY,MAAK,OAAS,EAAO,IAErD,KAAK,oBAEE,KAIR,QAAS,EAAQ,GAAI,EAAS,EAAI,CAEjC,SAAO,GAAW,KAAK,GACvB,EAAO,EAAS,GAAM,KAAK,GAC3B,EAAO,EAAS,GAAM,KAAK,GAC3B,EAAO,EAAS,GAAM,KAAK,OAEpB,EAIR,UAAW,EAAiB,CAE3B,MAAK,GAEG,EAAe,IAAK,KAAK,GAAI,KAAK,GAAI,KAAK,IAI3C,GAAI,GAAS,KAAK,GAAI,KAAK,GAAI,KAAK,IAM7C,UAAW,EAAW,CAErB,YAAK,kBAAoB,EAElB,KAIR,mBAAoB,GAIrB,GAAM,UAAU,QAAU,GAE1B,GAAM,aAAe,MACrB,GAAM,eAAiB,CAAE,MAAO,MAAO,MAAO,MAAO,MAAO,OAE5D,QAAa,CAEZ,aAAc,CAEb,KAAK,KAAO,EAIb,IAAK,EAAU,CAEd,KAAK,KAAS,IAAK,EAAU,KAAQ,EAItC,OAAQ,EAAU,CAEjB,KAAK,MAAQ,GAAK,EAAU,EAI7B,WAAY,CAEX,KAAK,KAAO,GAIb,OAAQ,EAAU,CAEjB,KAAK,MAAQ,GAAK,EAAU,EAI7B,QAAS,EAAU,CAElB,KAAK,MAAQ,CAAI,IAAK,EAAU,GAIjC,YAAa,CAEZ,KAAK,KAAO,EAIb,KAAM,EAAS,CAEd,MAAS,MAAK,KAAO,EAAO,QAAW,EAIxC,UAAW,EAAU,CAEpB,MAAS,MAAK,KAAS,IAAK,EAAU,MAAU,GAMlD,GAAI,IAAc,EAElB,KAAM,IAAsB,GAAI,GAC1B,GAAoB,GAAI,IACxB,GAAsB,GAAI,IAC1B,GAAwB,GAAI,GAE5B,GAA4B,GAAI,GAChC,GAAyB,GAAI,GAC7B,GAA8B,GAAI,IAElC,GAAuB,GAAI,GAAS,EAAG,EAAG,GAC1C,GAAuB,GAAI,GAAS,EAAG,EAAG,GAC1C,GAAuB,GAAI,GAAS,EAAG,EAAG,GAE1C,GAAc,CAAE,KAAM,SACtB,GAAgB,CAAE,KAAM,WAE9B,gBAAuB,GAAgB,CAEtC,aAAc,CAEb,QAEA,OAAO,eAAgB,KAAM,KAAM,CAAE,MAAO,OAE5C,KAAK,KAAO,KAEZ,KAAK,KAAO,GACZ,KAAK,KAAO,WAEZ,KAAK,OAAS,KACd,KAAK,SAAW,GAEhB,KAAK,GAAK,GAAS,UAAU,QAE7B,KAAM,GAAW,GAAI,GACf,EAAW,GAAI,IACf,EAAa,GAAI,IACjB,EAAQ,GAAI,GAAS,EAAG,EAAG,GAEjC,YAA4B,CAE3B,EAAW,aAAc,EAAU,IAIpC,YAA8B,CAE7B,EAAS,kBAAmB,EAAY,OAAW,IAIpD,EAAS,UAAW,GACpB,EAAW,UAAW,GAEtB,OAAO,iBAAkB,KAAM,CAC9B,SAAU,CACT,aAAc,GACd,WAAY,GACZ,MAAO,GAER,SAAU,CACT,aAAc,GACd,WAAY,GACZ,MAAO,GAER,WAAY,CACX,aAAc,GACd,WAAY,GACZ,MAAO,GAER,MAAO,CACN,aAAc,GACd,WAAY,GACZ,MAAO,GAER,gBAAiB,CAChB,MAAO,GAAI,KAEZ,aAAc,CACb,MAAO,GAAI,OAIb,KAAK,OAAS,GAAI,IAClB,KAAK,YAAc,GAAI,IAEvB,KAAK,iBAAmB,GAAS,wBACjC,KAAK,uBAAyB,GAE9B,KAAK,OAAS,GAAI,IAClB,KAAK,QAAU,GAEf,KAAK,WAAa,GAClB,KAAK,cAAgB,GAErB,KAAK,cAAgB,GACrB,KAAK,YAAc,EAEnB,KAAK,WAAa,GAElB,KAAK,SAAW,GAIjB,gBAA2E,EAE3E,eAA0E,EAE1E,aAAc,EAAS,CAEtB,AAAK,KAAK,kBAAmB,KAAK,eAElC,KAAK,OAAO,YAAa,GAEzB,KAAK,OAAO,UAAW,KAAK,SAAU,KAAK,WAAY,KAAK,OAI7D,gBAAiB,EAAI,CAEpB,YAAK,WAAW,YAAa,GAEtB,KAIR,yBAA0B,EAAM,EAAQ,CAIvC,KAAK,WAAW,iBAAkB,EAAM,GAIzC,qBAAsB,EAAQ,CAE7B,KAAK,WAAW,aAAc,EAAO,IAItC,sBAAuB,EAAI,CAI1B,KAAK,WAAW,sBAAuB,GAIxC,0BAA2B,EAAI,CAI9B,KAAK,WAAW,KAAM,GAIvB,aAAc,EAAM,EAAQ,CAK3B,UAAI,iBAAkB,EAAM,GAE5B,KAAK,WAAW,SAAU,IAEnB,KAIR,kBAAmB,EAAM,EAAQ,CAMhC,UAAI,iBAAkB,EAAM,GAE5B,KAAK,WAAW,YAAa,IAEtB,KAIR,QAAS,EAAQ,CAEhB,MAAO,MAAK,aAAc,GAAQ,GAInC,QAAS,EAAQ,CAEhB,MAAO,MAAK,aAAc,GAAQ,GAInC,QAAS,EAAQ,CAEhB,MAAO,MAAK,aAAc,GAAQ,GAInC,gBAAiB,EAAM,EAAW,CAKjC,UAAM,KAAM,GAAO,gBAAiB,KAAK,YAEzC,KAAK,SAAS,IAAK,GAAM,eAAgB,IAElC,KAIR,WAAY,EAAW,CAEtB,MAAO,MAAK,gBAAiB,GAAQ,GAItC,WAAY,EAAW,CAEtB,MAAO,MAAK,gBAAiB,GAAQ,GAItC,WAAY,EAAW,CAEtB,MAAO,MAAK,gBAAiB,GAAQ,GAItC,aAAc,EAAS,CAEtB,MAAO,GAAO,aAAc,KAAK,aAIlC,aAAc,EAAS,CAEtB,MAAO,GAAO,aAAc,GAAM,KAAM,KAAK,aAAc,UAI5D,OAAQ,EAAG,EAAG,EAAI,CAIjB,AAAK,EAAE,UAEN,GAAQ,KAAM,GAId,GAAQ,IAAK,EAAG,EAAG,GAIpB,KAAM,GAAS,KAAK,OAEpB,KAAK,kBAAmB,GAAM,IAE9B,GAAY,sBAAuB,KAAK,aAExC,AAAK,KAAK,UAAY,KAAK,QAE1B,GAAM,OAAQ,GAAa,GAAS,KAAK,IAIzC,GAAM,OAAQ,GAAS,GAAa,KAAK,IAI1C,KAAK,WAAW,sBAAuB,IAElC,GAEJ,IAAM,gBAAiB,EAAO,aAC9B,GAAI,sBAAuB,IAC3B,KAAK,WAAW,YAAa,GAAI,WAMnC,IAAK,EAAS,CAEb,GAAK,UAAU,OAAS,EAAI,CAE3B,OAAU,GAAI,EAAG,EAAI,UAAU,OAAQ,IAEtC,KAAK,IAAK,UAAW,IAItB,MAAO,MAIR,MAAK,KAAW,KAEf,SAAQ,MAAO,kEAAoE,GAC5E,MAIR,CAAK,GAAU,EAAO,WAEhB,GAAO,SAAW,MAEtB,EAAO,OAAO,OAAQ,GAIvB,EAAO,OAAS,KAChB,KAAK,SAAS,KAAM,GAEpB,EAAO,cAAe,KAItB,QAAQ,MAAO,gEAAiE,GAI1E,MAIR,OAAQ,EAAS,CAEhB,GAAK,UAAU,OAAS,EAAI,CAE3B,OAAU,GAAI,EAAG,EAAI,UAAU,OAAQ,IAEtC,KAAK,OAAQ,UAAW,IAIzB,MAAO,MAIR,KAAM,GAAQ,KAAK,SAAS,QAAS,GAErC,MAAK,KAAU,IAEd,GAAO,OAAS,KAChB,KAAK,SAAS,OAAQ,EAAO,GAE7B,EAAO,cAAe,KAIhB,KAIR,kBAAmB,CAElB,KAAM,GAAS,KAAK,OAEpB,MAAK,KAAW,MAEf,EAAO,OAAQ,MAIT,KAIR,OAAQ,CAEP,OAAU,GAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,IAAO,CAEjD,KAAM,GAAS,KAAK,SAAU,GAE9B,EAAO,OAAS,KAEhB,EAAO,cAAe,IAIvB,YAAK,SAAS,OAAS,EAEhB,KAKR,OAAQ,EAAS,CAMhB,YAAK,kBAAmB,GAAM,IAE9B,GAAM,KAAM,KAAK,aAAc,SAE1B,EAAO,SAAW,MAEtB,GAAO,OAAO,kBAAmB,GAAM,IAEvC,GAAM,SAAU,EAAO,OAAO,cAI/B,EAAO,aAAc,IAErB,KAAK,IAAK,GAEV,EAAO,kBAAmB,GAAO,IAE1B,KAIR,cAAe,EAAK,CAEnB,MAAO,MAAK,oBAAqB,KAAM,GAIxC,gBAAiB,EAAO,CAEvB,MAAO,MAAK,oBAAqB,OAAQ,GAI1C,oBAAqB,EAAM,EAAQ,CAElC,GAAK,KAAM,KAAW,EAAQ,MAAO,MAErC,OAAU,GAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,EAAI,EAAG,IAAO,CAGxD,KAAM,GAAS,AADD,KAAK,SAAU,GACR,oBAAqB,EAAM,GAEhD,GAAK,IAAW,OAEf,MAAO,IAUV,iBAAkB,EAAS,CAE1B,YAAK,kBAAmB,GAAM,IAEvB,EAAO,sBAAuB,KAAK,aAI3C,mBAAoB,EAAS,CAE5B,YAAK,kBAAmB,GAAM,IAE9B,KAAK,YAAY,UAAW,GAAa,EAAQ,IAE1C,EAIR,cAAe,EAAS,CAEvB,YAAK,kBAAmB,GAAM,IAE9B,KAAK,YAAY,UAAW,GAAa,GAAe,GAEjD,EAIR,kBAAmB,EAAS,CAE3B,KAAK,kBAAmB,GAAM,IAE9B,KAAM,GAAI,KAAK,YAAY,SAE3B,MAAO,GAAO,IAAK,EAAG,GAAK,EAAG,GAAK,EAAG,KAAO,YAI9C,SAAuC,EAEvC,SAAU,EAAW,CAEpB,EAAU,MAEV,KAAM,GAAW,KAAK,SAEtB,OAAU,GAAI,EAAG,EAAI,EAAS,OAAQ,EAAI,EAAG,IAE5C,EAAU,GAAI,SAAU,GAM1B,gBAAiB,EAAW,CAE3B,GAAK,KAAK,UAAY,GAAQ,OAE9B,EAAU,MAEV,KAAM,GAAW,KAAK,SAEtB,OAAU,GAAI,EAAG,EAAI,EAAS,OAAQ,EAAI,EAAG,IAE5C,EAAU,GAAI,gBAAiB,GAMjC,kBAAmB,EAAW,CAE7B,KAAM,GAAS,KAAK,OAEpB,AAAK,IAAW,MAEf,GAAU,GAEV,EAAO,kBAAmB,IAM5B,cAAe,CAEd,KAAK,OAAO,QAAS,KAAK,SAAU,KAAK,WAAY,KAAK,OAE1D,KAAK,uBAAyB,GAI/B,kBAAmB,EAAQ,CAE1B,AAAK,KAAK,kBAAmB,KAAK,eAE7B,MAAK,wBAA0B,IAEnC,CAAK,KAAK,SAAW,KAEpB,KAAK,YAAY,KAAM,KAAK,QAI5B,KAAK,YAAY,iBAAkB,KAAK,OAAO,YAAa,KAAK,QAIlE,KAAK,uBAAyB,GAE9B,EAAQ,IAMT,KAAM,GAAW,KAAK,SAEtB,OAAU,GAAI,EAAG,EAAI,EAAS,OAAQ,EAAI,EAAG,IAE5C,EAAU,GAAI,kBAAmB,GAMnC,kBAAmB,EAAe,EAAiB,CAElD,KAAM,GAAS,KAAK,OAsBpB,GApBK,IAAkB,IAAQ,IAAW,MAEzC,EAAO,kBAAmB,GAAM,IAI5B,KAAK,kBAAmB,KAAK,eAElC,AAAK,KAAK,SAAW,KAEpB,KAAK,YAAY,KAAM,KAAK,QAI5B,KAAK,YAAY,iBAAkB,KAAK,OAAO,YAAa,KAAK,QAM7D,IAAmB,GAAO,CAE9B,KAAM,GAAW,KAAK,SAEtB,OAAU,GAAI,EAAG,EAAI,EAAS,OAAQ,EAAI,EAAG,IAE5C,EAAU,GAAI,kBAAmB,GAAO,KAQ3C,OAAQ,EAAO,CAGd,KAAM,GAAiB,IAAS,QAAa,MAAO,IAAS,SAEvD,EAAS,GAKf,AAAK,GAGJ,GAAO,CACN,WAAY,GACZ,UAAW,GACX,SAAU,GACV,OAAQ,GACR,OAAQ,GACR,UAAW,GACX,WAAY,IAGb,EAAO,SAAW,CACjB,QAAS,IACT,KAAM,SACN,UAAW,oBAOb,KAAM,GAAS,GAEf,EAAO,KAAO,KAAK,KACnB,EAAO,KAAO,KAAK,KAEd,KAAK,OAAS,IAAK,GAAO,KAAO,KAAK,MACtC,KAAK,aAAe,IAAO,GAAO,WAAa,IAC/C,KAAK,gBAAkB,IAAO,GAAO,cAAgB,IACrD,KAAK,UAAY,IAAQ,GAAO,QAAU,IAC1C,KAAK,gBAAkB,IAAQ,GAAO,cAAgB,IACtD,KAAK,cAAgB,GAAI,GAAO,YAAc,KAAK,aACnD,KAAK,UAAW,KAAK,YAAe,MAAO,GAAO,SAAW,KAAK,UAEvE,EAAO,OAAS,KAAK,OAAO,KAC5B,EAAO,OAAS,KAAK,OAAO,UAEvB,KAAK,mBAAqB,IAAQ,GAAO,iBAAmB,IAI5D,KAAK,iBAET,GAAO,KAAO,gBACd,EAAO,MAAQ,KAAK,MACpB,EAAO,eAAiB,KAAK,eAAe,SACvC,KAAK,gBAAkB,MAAO,GAAO,cAAgB,KAAK,cAAc,WAM9E,WAAoB,EAAS,EAAU,CAEtC,MAAK,GAAS,EAAQ,QAAW,QAEhC,GAAS,EAAQ,MAAS,EAAQ,OAAQ,IAIpC,EAAQ,KAIhB,GAAK,KAAK,QAET,AAAK,KAAK,YAET,CAAK,KAAK,WAAW,QAEpB,EAAO,WAAa,KAAK,WAAW,SAEzB,KAAK,WAAW,WAE3B,GAAO,WAAa,KAAK,WAAW,OAAQ,GAAO,OAMhD,KAAK,aAAe,KAAK,YAAY,WAEzC,GAAO,YAAc,KAAK,YAAY,OAAQ,GAAO,cAI3C,KAAK,QAAU,KAAK,QAAU,KAAK,SAAW,CAEzD,EAAO,SAAW,EAAW,EAAK,WAAY,KAAK,UAEnD,KAAM,GAAa,KAAK,SAAS,WAEjC,GAAK,IAAe,QAAa,EAAW,SAAW,OAAY,CAElE,KAAM,GAAS,EAAW,OAE1B,GAAK,MAAM,QAAS,GAEnB,OAAU,GAAI,EAAG,EAAI,EAAO,OAAQ,EAAI,EAAG,IAAO,CAEjD,KAAM,GAAQ,EAAQ,GAEtB,EAAW,EAAK,OAAQ,OAMzB,GAAW,EAAK,OAAQ,IAuB3B,GAfK,KAAK,eAET,GAAO,SAAW,KAAK,SACvB,EAAO,WAAa,KAAK,WAAW,UAE/B,KAAK,WAAa,QAEtB,GAAW,EAAK,UAAW,KAAK,UAEhC,EAAO,SAAW,KAAK,SAAS,OAM7B,KAAK,WAAa,OAEtB,GAAK,MAAM,QAAS,KAAK,UAAa,CAErC,KAAM,GAAQ,GAEd,OAAU,GAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,EAAI,EAAG,IAEjD,EAAM,KAAM,EAAW,EAAK,UAAW,KAAK,SAAU,KAIvD,EAAO,SAAW,MAIlB,GAAO,SAAW,EAAW,EAAK,UAAW,KAAK,UAQpD,GAAK,KAAK,SAAS,OAAS,EAAI,CAE/B,EAAO,SAAW,GAElB,OAAU,GAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,IAE1C,EAAO,SAAS,KAAM,KAAK,SAAU,GAAI,OAAQ,GAAO,QAQ1D,GAAK,KAAK,WAAW,OAAS,EAAI,CAEjC,EAAO,WAAa,GAEpB,OAAU,GAAI,EAAG,EAAI,KAAK,WAAW,OAAQ,IAAO,CAEnD,KAAM,GAAY,KAAK,WAAY,GAEnC,EAAO,WAAW,KAAM,EAAW,EAAK,WAAY,KAMtD,GAAK,EAAe,CAEnB,KAAM,GAAa,EAAkB,EAAK,YACpC,EAAY,EAAkB,EAAK,WACnC,EAAW,EAAkB,EAAK,UAClC,EAAS,EAAkB,EAAK,QAChC,EAAS,EAAkB,EAAK,QAChC,EAAY,EAAkB,EAAK,WACnC,EAAa,EAAkB,EAAK,YAE1C,AAAK,EAAW,OAAS,GAAI,GAAO,WAAa,GAC5C,EAAU,OAAS,GAAI,GAAO,UAAY,GAC1C,EAAS,OAAS,GAAI,GAAO,SAAW,GACxC,EAAO,OAAS,GAAI,GAAO,OAAS,GACpC,EAAO,OAAS,GAAI,GAAO,OAAS,GACpC,EAAU,OAAS,GAAI,GAAO,UAAY,GAC1C,EAAW,OAAS,GAAI,GAAO,WAAa,GAIlD,SAAO,OAAS,EAET,EAKP,WAA2B,EAAQ,CAElC,KAAM,GAAS,GACf,SAAY,KAAO,GAAQ,CAE1B,KAAM,GAAO,EAAO,GACpB,MAAO,GAAK,SACZ,EAAO,KAAM,GAId,MAAO,IAMT,MAAO,EAAY,CAElB,MAAO,IAAI,MAAK,cAAc,KAAM,KAAM,GAI3C,KAAM,EAAQ,EAAY,GAAO,CA4BhC,GA1BA,KAAK,KAAO,EAAO,KAEnB,KAAK,GAAG,KAAM,EAAO,IAErB,KAAK,SAAS,KAAM,EAAO,UAC3B,KAAK,SAAS,MAAQ,EAAO,SAAS,MACtC,KAAK,WAAW,KAAM,EAAO,YAC7B,KAAK,MAAM,KAAM,EAAO,OAExB,KAAK,OAAO,KAAM,EAAO,QACzB,KAAK,YAAY,KAAM,EAAO,aAE9B,KAAK,iBAAmB,EAAO,iBAC/B,KAAK,uBAAyB,EAAO,uBAErC,KAAK,OAAO,KAAO,EAAO,OAAO,KACjC,KAAK,QAAU,EAAO,QAEtB,KAAK,WAAa,EAAO,WACzB,KAAK,cAAgB,EAAO,cAE5B,KAAK,cAAgB,EAAO,cAC5B,KAAK,YAAc,EAAO,YAE1B,KAAK,SAAW,KAAK,MAAO,KAAK,UAAW,EAAO,WAE9C,IAAc,GAElB,OAAU,GAAI,EAAG,EAAI,EAAO,SAAS,OAAQ,IAAO,CAEnD,KAAM,GAAQ,EAAO,SAAU,GAC/B,KAAK,IAAK,EAAM,SAMlB,MAAO,OAMT,GAAS,UAAY,GAAI,GAAS,EAAG,EAAG,GACxC,GAAS,wBAA0B,GAEnC,GAAS,UAAU,WAAa,GAEhC,KAAM,IAAsB,GAAI,GAC1B,GAAsB,GAAI,GAC1B,GAAsB,GAAI,GAC1B,GAAsB,GAAI,GAE1B,GAAqB,GAAI,GACzB,GAAqB,GAAI,GACzB,GAAqB,GAAI,GACzB,GAAqB,GAAI,GACzB,GAAqB,GAAI,GACzB,GAAqB,GAAI,GAE/B,QAAe,CAEd,YAAa,EAAI,GAAI,GAAW,EAAI,GAAI,GAAW,EAAI,GAAI,GAAY,CAEtE,KAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,EAAI,QAIH,WAAW,EAAG,EAAG,EAAG,EAAS,CAEnC,EAAO,WAAY,EAAG,GACtB,GAAM,WAAY,EAAG,GACrB,EAAO,MAAO,IAEd,KAAM,GAAiB,EAAO,WAC9B,MAAK,GAAiB,EAEd,EAAO,eAAgB,EAAI,KAAK,KAAM,IAIvC,EAAO,IAAK,EAAG,EAAG,SAMnB,cAAc,EAAO,EAAG,EAAG,EAAG,EAAS,CAE7C,GAAM,WAAY,EAAG,GACrB,GAAM,WAAY,EAAG,GACrB,GAAM,WAAY,EAAO,GAEzB,KAAM,GAAQ,GAAM,IAAK,IACnB,EAAQ,GAAM,IAAK,IACnB,EAAQ,GAAM,IAAK,IACnB,EAAQ,GAAM,IAAK,IACnB,EAAQ,GAAM,IAAK,IAEnB,EAAU,EAAQ,EAAQ,EAAQ,EAGxC,GAAK,IAAU,EAId,MAAO,GAAO,IAAK,GAAK,GAAK,IAI9B,KAAM,GAAW,EAAI,EACf,EAAM,GAAQ,EAAQ,EAAQ,GAAU,EACxC,EAAM,GAAQ,EAAQ,EAAQ,GAAU,EAG9C,MAAO,GAAO,IAAK,EAAI,EAAI,EAAG,EAAG,SAI3B,eAAe,EAAO,EAAG,EAAG,EAAI,CAEtC,YAAK,aAAc,EAAO,EAAG,EAAG,EAAG,IAE1B,GAAM,GAAK,GAAS,GAAM,GAAK,GAAW,GAAM,EAAI,GAAM,GAAO,QAIpE,OAAO,EAAO,EAAI,EAAI,EAAI,EAAK,EAAK,EAAK,EAAS,CAExD,YAAK,aAAc,EAAO,EAAI,EAAI,EAAI,IAEtC,EAAO,IAAK,EAAG,GACf,EAAO,gBAAiB,EAAK,GAAM,GACnC,EAAO,gBAAiB,EAAK,GAAM,GACnC,EAAO,gBAAiB,EAAK,GAAM,GAE5B,QAID,eAAe,EAAG,EAAG,EAAG,EAAY,CAE1C,UAAM,WAAY,EAAG,GACrB,GAAM,WAAY,EAAG,GAGZ,GAAM,MAAO,IAAQ,IAAK,GAAc,EAIlD,IAAK,EAAG,EAAG,EAAI,CAEd,YAAK,EAAE,KAAM,GACb,KAAK,EAAE,KAAM,GACb,KAAK,EAAE,KAAM,GAEN,KAIR,wBAAyB,EAAQ,EAAI,EAAI,EAAK,CAE7C,YAAK,EAAE,KAAM,EAAQ,IACrB,KAAK,EAAE,KAAM,EAAQ,IACrB,KAAK,EAAE,KAAM,EAAQ,IAEd,KAIR,2BAA4B,EAAW,EAAI,EAAI,EAAK,CAEnD,YAAK,EAAE,oBAAqB,EAAW,GACvC,KAAK,EAAE,oBAAqB,EAAW,GACvC,KAAK,EAAE,oBAAqB,EAAW,GAEhC,KAIR,OAAQ,CAEP,MAAO,IAAI,MAAK,cAAc,KAAM,MAIrC,KAAM,EAAW,CAEhB,YAAK,EAAE,KAAM,EAAS,GACtB,KAAK,EAAE,KAAM,EAAS,GACtB,KAAK,EAAE,KAAM,EAAS,GAEf,KAIR,SAAU,CAET,UAAM,WAAY,KAAK,EAAG,KAAK,GAC/B,GAAM,WAAY,KAAK,EAAG,KAAK,GAExB,GAAM,MAAO,IAAQ,SAAW,GAIxC,YAAa,EAAS,CAErB,MAAO,GAAO,WAAY,KAAK,EAAG,KAAK,GAAI,IAAK,KAAK,GAAI,eAAgB,EAAI,GAI9E,UAAW,EAAS,CAEnB,MAAO,IAAS,UAAW,KAAK,EAAG,KAAK,EAAG,KAAK,EAAG,GAIpD,SAAU,EAAS,CAElB,MAAO,GAAO,sBAAuB,KAAK,EAAG,KAAK,EAAG,KAAK,GAI3D,aAAc,EAAO,EAAS,CAE7B,MAAO,IAAS,aAAc,EAAO,KAAK,EAAG,KAAK,EAAG,KAAK,EAAG,GAI9D,MAAO,EAAO,EAAK,EAAK,EAAK,EAAS,CAErC,MAAO,IAAS,MAAO,EAAO,KAAK,EAAG,KAAK,EAAG,KAAK,EAAG,EAAK,EAAK,EAAK,GAItE,cAAe,EAAQ,CAEtB,MAAO,IAAS,cAAe,EAAO,KAAK,EAAG,KAAK,EAAG,KAAK,GAI5D,cAAe,EAAY,CAE1B,MAAO,IAAS,cAAe,KAAK,EAAG,KAAK,EAAG,KAAK,EAAG,GAIxD,cAAe,EAAM,CAEpB,MAAO,GAAI,mBAAoB,MAIhC,oBAAqB,EAAG,EAAS,CAEhC,KAAM,GAAI,KAAK,EAAG,EAAI,KAAK,EAAG,EAAI,KAAK,EACvC,GAAI,GAAG,EAQP,GAAK,WAAY,EAAG,GACpB,GAAK,WAAY,EAAG,GACpB,GAAK,WAAY,EAAG,GACpB,KAAM,GAAK,GAAK,IAAK,IACf,EAAK,GAAK,IAAK,IACrB,GAAK,GAAM,GAAK,GAAM,EAGrB,MAAO,GAAO,KAAM,GAIrB,GAAK,WAAY,EAAG,GACpB,KAAM,GAAK,GAAK,IAAK,IACf,EAAK,GAAK,IAAK,IACrB,GAAK,GAAM,GAAK,GAAM,EAGrB,MAAO,GAAO,KAAM,GAIrB,KAAM,GAAK,EAAK,EAAK,EAAK,EAC1B,GAAK,GAAM,GAAK,GAAM,GAAK,GAAM,EAEhC,SAAI,EAAO,GAAK,GAET,EAAO,KAAM,GAAI,gBAAiB,GAAM,GAIhD,GAAK,WAAY,EAAG,GACpB,KAAM,GAAK,GAAK,IAAK,IACf,EAAK,GAAK,IAAK,IACrB,GAAK,GAAM,GAAK,GAAM,EAGrB,MAAO,GAAO,KAAM,GAIrB,KAAM,GAAK,EAAK,EAAK,EAAK,EAC1B,GAAK,GAAM,GAAK,GAAM,GAAK,GAAM,EAEhC,SAAI,EAAO,GAAK,GAET,EAAO,KAAM,GAAI,gBAAiB,GAAM,GAIhD,KAAM,GAAK,EAAK,EAAK,EAAK,EAC1B,GAAK,GAAM,GAAO,EAAK,GAAQ,GAAO,EAAK,GAAQ,EAElD,UAAK,WAAY,EAAG,GACpB,EAAM,GAAK,GAAW,GAAK,EAAS,GAAK,IAElC,EAAO,KAAM,GAAI,gBAAiB,GAAM,GAKhD,KAAM,GAAQ,EAAM,GAAK,EAAK,GAE9B,SAAI,EAAK,EACT,EAAI,EAAK,EAEF,EAAO,KAAM,GAAI,gBAAiB,GAAM,GAAI,gBAAiB,GAAM,GAI3E,OAAQ,EAAW,CAElB,MAAO,GAAS,EAAE,OAAQ,KAAK,IAAO,EAAS,EAAE,OAAQ,KAAK,IAAO,EAAS,EAAE,OAAQ,KAAK,IAM/F,GAAI,IAAa,EAEjB,gBAAuB,GAAgB,CAEtC,aAAc,CAEb,QAEA,OAAO,eAAgB,KAAM,KAAM,CAAE,MAAO,OAE5C,KAAK,KAAO,KAEZ,KAAK,KAAO,GACZ,KAAK,KAAO,WAEZ,KAAK,IAAM,GAEX,KAAK,SAAW,EAChB,KAAK,KAAO,EACZ,KAAK,aAAe,GAEpB,KAAK,QAAU,EACf,KAAK,YAAc,GAEnB,KAAK,SAAW,IAChB,KAAK,SAAW,IAChB,KAAK,cAAgB,IACrB,KAAK,cAAgB,KACrB,KAAK,cAAgB,KACrB,KAAK,mBAAqB,KAE1B,KAAK,UAAY,EACjB,KAAK,UAAY,GACjB,KAAK,WAAa,GAElB,KAAK,iBAAmB,IACxB,KAAK,YAAc,IACnB,KAAK,WAAa,EAClB,KAAK,gBAAkB,IACvB,KAAK,YAAc,KACnB,KAAK,aAAe,KACpB,KAAK,aAAe,KACpB,KAAK,aAAe,GAEpB,KAAK,eAAiB,KACtB,KAAK,iBAAmB,GACxB,KAAK,YAAc,GAEnB,KAAK,WAAa,KAElB,KAAK,WAAa,GAElB,KAAK,UAAY,KAEjB,KAAK,cAAgB,GACrB,KAAK,oBAAsB,EAC3B,KAAK,mBAAqB,EAE1B,KAAK,UAAY,GAEjB,KAAK,gBAAkB,GACvB,KAAK,mBAAqB,GAE1B,KAAK,QAAU,GAEf,KAAK,WAAa,GAElB,KAAK,SAAW,GAEhB,KAAK,QAAU,EAEf,KAAK,WAAa,KAIf,YAAY,CAEf,MAAO,MAAK,cAIT,WAAW,EAAQ,CAEtB,AAAK,KAAK,WAAa,GAAM,EAAQ,GAEpC,KAAK,UAIN,KAAK,WAAa,EAInB,SAAwC,EAExC,gBAAyE,EAEzE,iBAAgD,EAEhD,uBAAwB,CAEvB,MAAO,MAAK,gBAAgB,WAI7B,UAAW,EAAS,CAEnB,GAAK,IAAW,OAEhB,SAAY,KAAO,GAAS,CAE3B,KAAM,GAAW,EAAQ,GAEzB,GAAK,IAAa,OAAY,CAE7B,QAAQ,KAAM,oBAAuB,EAAM,6BAC3C,SAKD,GAAK,IAAQ,UAAY,CAExB,QAAQ,KAAM,SAAW,KAAK,KAAO,sEACrC,KAAK,YAAgB,IAAa,EAClC,SAID,KAAM,GAAe,KAAM,GAE3B,GAAK,IAAiB,OAAY,CAEjC,QAAQ,KAAM,SAAW,KAAK,KAAO,MAAS,EAAM,yCACpD,SAID,AAAK,GAAgB,EAAa,QAEjC,EAAa,IAAK,GAEZ,AAAO,GAAgB,EAAa,WAAiB,GAAY,EAAS,UAEhF,EAAa,KAAM,GAInB,KAAM,GAAQ,GAQjB,OAAQ,EAAO,CAEd,KAAM,GAAW,IAAS,QAAa,MAAO,IAAS,SAEvD,AAAK,GAEJ,GAAO,CACN,SAAU,GACV,OAAQ,KAKV,KAAM,GAAO,CACZ,SAAU,CACT,QAAS,IACT,KAAM,WACN,UAAW,oBAKb,EAAK,KAAO,KAAK,KACjB,EAAK,KAAO,KAAK,KAEZ,KAAK,OAAS,IAAK,GAAK,KAAO,KAAK,MAEpC,KAAK,OAAS,KAAK,MAAM,SAAU,GAAK,MAAQ,KAAK,MAAM,UAE3D,KAAK,YAAc,QAAY,GAAK,UAAY,KAAK,WACrD,KAAK,YAAc,QAAY,GAAK,UAAY,KAAK,WAErD,KAAK,QAAU,QAAY,GAAK,MAAQ,KAAK,OAC7C,KAAK,YAAc,KAAK,WAAW,SAAU,GAAK,WAAa,KAAK,WAAW,UAC/E,KAAK,iBAAmB,QAAY,GAAK,eAAiB,KAAK,gBAC/D,KAAK,UAAY,KAAK,SAAS,SAAU,GAAK,SAAW,KAAK,SAAS,UACvE,KAAK,mBAAqB,KAAK,oBAAsB,GAAI,GAAK,kBAAoB,KAAK,mBAEvF,KAAK,UAAY,KAAK,SAAS,SAAU,GAAK,SAAW,KAAK,SAAS,UACvE,KAAK,oBAAsB,QAAY,GAAK,kBAAoB,KAAK,mBACrE,KAAK,eAAiB,KAAK,cAAc,SAAU,GAAK,cAAgB,KAAK,cAAc,UAC3F,KAAK,YAAc,QAAY,GAAK,UAAY,KAAK,WACrD,KAAK,YAAc,QAAY,GAAK,UAAY,KAAK,WACrD,KAAK,qBAAuB,QAAY,GAAK,mBAAqB,KAAK,oBAEvE,KAAK,cAAgB,KAAK,aAAa,WAE3C,GAAK,aAAe,KAAK,aAAa,OAAQ,GAAO,MAIjD,KAAK,uBAAyB,KAAK,sBAAsB,WAE7D,GAAK,sBAAwB,KAAK,sBAAsB,OAAQ,GAAO,MAInE,KAAK,oBAAsB,KAAK,mBAAmB,WAEvD,GAAK,mBAAqB,KAAK,mBAAmB,OAAQ,GAAO,KACjE,EAAK,qBAAuB,KAAK,qBAAqB,WAIlD,KAAK,KAAO,KAAK,IAAI,WAAY,GAAK,IAAM,KAAK,IAAI,OAAQ,GAAO,MACpE,KAAK,QAAU,KAAK,OAAO,WAAY,GAAK,OAAS,KAAK,OAAO,OAAQ,GAAO,MAChF,KAAK,UAAY,KAAK,SAAS,WAAY,GAAK,SAAW,KAAK,SAAS,OAAQ,GAAO,MAExF,KAAK,UAAY,KAAK,SAAS,WAEnC,GAAK,SAAW,KAAK,SAAS,OAAQ,GAAO,KAC7C,EAAK,kBAAoB,KAAK,mBAI1B,KAAK,OAAS,KAAK,MAAM,WAE7B,GAAK,MAAQ,KAAK,MAAM,OAAQ,GAAO,KACvC,EAAK,eAAiB,KAAK,gBAIvB,KAAK,SAAW,KAAK,QAAQ,WAEjC,GAAK,QAAU,KAAK,QAAQ,OAAQ,GAAO,KAC3C,EAAK,UAAY,KAAK,WAIlB,KAAK,WAAa,KAAK,UAAU,WAErC,GAAK,UAAY,KAAK,UAAU,OAAQ,GAAO,KAC/C,EAAK,cAAgB,KAAK,cAC1B,EAAK,YAAc,KAAK,YAAY,WAIhC,KAAK,iBAAmB,KAAK,gBAAgB,WAEjD,GAAK,gBAAkB,KAAK,gBAAgB,OAAQ,GAAO,KAC3D,EAAK,kBAAoB,KAAK,kBAC9B,EAAK,iBAAmB,KAAK,kBAIzB,KAAK,cAAgB,KAAK,aAAa,WAAY,GAAK,aAAe,KAAK,aAAa,OAAQ,GAAO,MACxG,KAAK,cAAgB,KAAK,aAAa,WAAY,GAAK,aAAe,KAAK,aAAa,OAAQ,GAAO,MAExG,KAAK,aAAe,KAAK,YAAY,WAAY,GAAK,YAAc,KAAK,YAAY,OAAQ,GAAO,MACpG,KAAK,aAAe,KAAK,YAAY,WAAY,GAAK,YAAc,KAAK,YAAY,OAAQ,GAAO,MACpG,KAAK,sBAAwB,KAAK,qBAAqB,WAAY,GAAK,qBAAuB,KAAK,qBAAqB,OAAQ,GAAO,MACxI,KAAK,kBAAoB,KAAK,iBAAiB,WAAY,GAAK,iBAAmB,KAAK,iBAAiB,OAAQ,GAAO,MAExH,KAAK,QAAU,KAAK,OAAO,WAE/B,GAAK,OAAS,KAAK,OAAO,OAAQ,GAAO,KAEpC,KAAK,UAAY,QAAY,GAAK,QAAU,KAAK,UAIlD,KAAK,kBAAoB,QAAY,GAAK,gBAAkB,KAAK,iBACjE,KAAK,eAAiB,QAAY,GAAK,aAAe,KAAK,cAC3D,KAAK,kBAAoB,QAAY,GAAK,gBAAkB,KAAK,iBAEjE,KAAK,aAAe,KAAK,YAAY,WAEzC,GAAK,YAAc,KAAK,YAAY,OAAQ,GAAO,MAI/C,KAAK,eAAiB,QAAY,GAAK,aAAe,KAAK,cAC3D,KAAK,iBAAmB,KAAK,gBAAgB,WAAY,GAAK,gBAAkB,KAAK,gBAAgB,OAAQ,GAAO,MACpH,KAAK,YAAc,QAAY,GAAK,UAAY,KAAK,WACrD,KAAK,cAAgB,KAAK,aAAa,WAAY,GAAK,aAAe,KAAK,aAAa,OAAQ,GAAO,MACxG,KAAK,sBAAwB,QAAY,GAAK,oBAAsB,KAAK,qBACzE,KAAK,mBAAqB,QAAY,GAAK,iBAAmB,KAAK,iBAAiB,UAEpF,KAAK,OAAS,QAAY,GAAK,KAAO,KAAK,MAC3C,KAAK,aAAe,MAAO,GAAK,WAAa,KAAK,YAClD,KAAK,kBAAoB,QAAY,GAAK,gBAAkB,KAAK,iBAEjE,KAAK,WAAa,GAAiB,GAAK,SAAW,KAAK,UACxD,KAAK,OAAS,GAAY,GAAK,KAAO,KAAK,MAC3C,KAAK,cAAe,GAAK,aAAe,IAExC,KAAK,QAAU,GAAI,GAAK,QAAU,KAAK,SACvC,KAAK,cAAgB,IAAO,GAAK,YAAc,KAAK,aAEzD,EAAK,UAAY,KAAK,UACtB,EAAK,UAAY,KAAK,UACtB,EAAK,WAAa,KAAK,WACvB,EAAK,WAAa,KAAK,WAEvB,EAAK,aAAe,KAAK,aACzB,EAAK,iBAAmB,KAAK,iBAC7B,EAAK,YAAc,KAAK,YACxB,EAAK,WAAa,KAAK,WACvB,EAAK,gBAAkB,KAAK,gBAC5B,EAAK,YAAc,KAAK,YACxB,EAAK,aAAe,KAAK,aACzB,EAAK,aAAe,KAAK,aAGpB,KAAK,UAAY,KAAK,WAAa,GAAI,GAAK,SAAW,KAAK,UAE5D,KAAK,gBAAkB,IAAO,GAAK,cAAgB,IACnD,KAAK,sBAAwB,GAAI,GAAK,oBAAsB,KAAK,qBACjE,KAAK,qBAAuB,GAAI,GAAK,mBAAqB,KAAK,oBAE/D,KAAK,WAAa,KAAK,YAAc,GAAI,GAAK,UAAY,KAAK,WAC/D,KAAK,WAAa,QAAY,GAAK,SAAW,KAAK,UACnD,KAAK,UAAY,QAAY,GAAK,QAAU,KAAK,SACjD,KAAK,QAAU,QAAY,GAAK,MAAQ,KAAK,OAE7C,KAAK,YAAc,IAAO,GAAK,UAAY,IAE3C,KAAK,UAAY,GAAI,GAAK,UAAY,KAAK,WAC3C,KAAK,kBAAoB,IAAO,GAAK,gBAAkB,KAAK,iBAC5D,KAAK,qBAAuB,IAAO,GAAK,mBAAqB,KAAK,oBAElE,KAAK,YAAc,IAAO,GAAK,UAAY,KAAK,WAChD,KAAK,mBAAqB,GAAI,GAAK,mBAAqB,KAAK,oBAC7D,KAAK,mBAAqB,SAAU,GAAK,iBAAmB,KAAK,kBACjE,KAAK,oBAAsB,SAAU,GAAK,kBAAoB,KAAK,mBAEnE,KAAK,cAAgB,IAAO,GAAK,YAAc,KAAK,aAEpD,KAAK,UAAY,IAAQ,GAAK,QAAU,IAExC,KAAK,aAAe,IAAQ,GAAK,WAAa,IAE9C,KAAK,UAAW,KAAK,YAAe,MAAO,GAAK,SAAW,KAAK,UAIrE,WAA2B,EAAQ,CAElC,KAAM,GAAS,GAEf,SAAY,KAAO,GAAQ,CAE1B,KAAM,GAAO,EAAO,GACpB,MAAO,GAAK,SACZ,EAAO,KAAM,GAId,MAAO,GAIR,GAAK,EAAS,CAEb,KAAM,GAAW,EAAkB,EAAK,UAClC,EAAS,EAAkB,EAAK,QAEtC,AAAK,EAAS,OAAS,GAAI,GAAK,SAAW,GACtC,EAAO,OAAS,GAAI,GAAK,OAAS,GAIxC,MAAO,GAIR,OAAQ,CAEP,MAAO,IAAI,MAAK,cAAc,KAAM,MAIrC,KAAM,EAAS,CAEd,KAAK,KAAO,EAAO,KAEnB,KAAK,IAAM,EAAO,IAElB,KAAK,SAAW,EAAO,SACvB,KAAK,KAAO,EAAO,KACnB,KAAK,aAAe,EAAO,aAE3B,KAAK,QAAU,EAAO,QACtB,KAAK,YAAc,EAAO,YAE1B,KAAK,SAAW,EAAO,SACvB,KAAK,SAAW,EAAO,SACvB,KAAK,cAAgB,EAAO,cAC5B,KAAK,cAAgB,EAAO,cAC5B,KAAK,cAAgB,EAAO,cAC5B,KAAK,mBAAqB,EAAO,mBAEjC,KAAK,UAAY,EAAO,UACxB,KAAK,UAAY,EAAO,UACxB,KAAK,WAAa,EAAO,WAEzB,KAAK,iBAAmB,EAAO,iBAC/B,KAAK,YAAc,EAAO,YAC1B,KAAK,WAAa,EAAO,WACzB,KAAK,gBAAkB,EAAO,gBAC9B,KAAK,YAAc,EAAO,YAC1B,KAAK,aAAe,EAAO,aAC3B,KAAK,aAAe,EAAO,aAC3B,KAAK,aAAe,EAAO,aAE3B,KAAM,GAAY,EAAO,eACzB,GAAI,GAAY,KAEhB,GAAK,IAAc,KAAO,CAEzB,KAAM,GAAI,EAAU,OACpB,EAAY,GAAI,OAAO,GAEvB,OAAU,GAAI,EAAG,IAAM,EAAG,EAAG,EAE5B,EAAW,GAAM,EAAW,GAAI,QAMlC,YAAK,eAAiB,EACtB,KAAK,iBAAmB,EAAO,iBAC/B,KAAK,YAAc,EAAO,YAE1B,KAAK,WAAa,EAAO,WAEzB,KAAK,WAAa,EAAO,WAEzB,KAAK,UAAY,EAAO,UAExB,KAAK,cAAgB,EAAO,cAC5B,KAAK,oBAAsB,EAAO,oBAClC,KAAK,mBAAqB,EAAO,mBAEjC,KAAK,UAAY,EAAO,UAExB,KAAK,UAAY,EAAO,UACxB,KAAK,gBAAkB,EAAO,gBAC9B,KAAK,mBAAqB,EAAO,mBAEjC,KAAK,QAAU,EAAO,QAEtB,KAAK,WAAa,EAAO,WAEzB,KAAK,SAAW,KAAK,MAAO,KAAK,UAAW,EAAO,WAE5C,KAIR,SAAU,CAET,KAAK,cAAe,CAAE,KAAM,eAIzB,aAAa,EAAQ,CAExB,AAAK,IAAU,IAAO,KAAK,WAM7B,GAAS,UAAU,WAAa,GA+BhC,gBAAgC,GAAS,CAExC,YAAa,EAAa,CAEzB,QAEA,KAAK,KAAO,oBAEZ,KAAK,MAAQ,GAAI,IAAO,UAExB,KAAK,IAAM,KAEX,KAAK,SAAW,KAChB,KAAK,kBAAoB,EAEzB,KAAK,MAAQ,KACb,KAAK,eAAiB,EAEtB,KAAK,YAAc,KAEnB,KAAK,SAAW,KAEhB,KAAK,OAAS,KACd,KAAK,QAAU,EACf,KAAK,aAAe,EACpB,KAAK,gBAAkB,IAEvB,KAAK,UAAY,GACjB,KAAK,mBAAqB,EAC1B,KAAK,iBAAmB,QACxB,KAAK,kBAAoB,QAEzB,KAAK,UAAW,GAIjB,KAAM,EAAS,CAEd,aAAM,KAAM,GAEZ,KAAK,MAAM,KAAM,EAAO,OAExB,KAAK,IAAM,EAAO,IAElB,KAAK,SAAW,EAAO,SACvB,KAAK,kBAAoB,EAAO,kBAEhC,KAAK,MAAQ,EAAO,MACpB,KAAK,eAAiB,EAAO,eAE7B,KAAK,YAAc,EAAO,YAE1B,KAAK,SAAW,EAAO,SAEvB,KAAK,OAAS,EAAO,OACrB,KAAK,QAAU,EAAO,QACtB,KAAK,aAAe,EAAO,aAC3B,KAAK,gBAAkB,EAAO,gBAE9B,KAAK,UAAY,EAAO,UACxB,KAAK,mBAAqB,EAAO,mBACjC,KAAK,iBAAmB,EAAO,iBAC/B,KAAK,kBAAoB,EAAO,kBAEzB,MAMT,GAAkB,UAAU,oBAAsB,GAElD,KAAM,IAA0B,GAAI,GAC9B,GAA2B,GAAI,GAErC,QAAsB,CAErB,YAAa,EAAO,EAAU,EAAa,CAE1C,GAAK,MAAM,QAAS,GAEnB,KAAM,IAAI,WAAW,yDAItB,KAAK,KAAO,GAEZ,KAAK,MAAQ,EACb,KAAK,SAAW,EAChB,KAAK,MAAQ,IAAU,OAAY,EAAM,OAAS,EAAW,EAC7D,KAAK,WAAa,IAAe,GAEjC,KAAK,MAAQ,MACb,KAAK,YAAc,CAAE,OAAQ,EAAG,MAAO,IAEvC,KAAK,QAAU,EAIhB,kBAAmB,KAEf,aAAa,EAAQ,CAExB,AAAK,IAAU,IAAO,KAAK,UAI5B,SAAU,EAAQ,CAEjB,YAAK,MAAQ,EAEN,KAIR,KAAM,EAAS,CAEd,YAAK,KAAO,EAAO,KACnB,KAAK,MAAQ,GAAI,GAAO,MAAM,YAAa,EAAO,OAClD,KAAK,SAAW,EAAO,SACvB,KAAK,MAAQ,EAAO,MACpB,KAAK,WAAa,EAAO,WAEzB,KAAK,MAAQ,EAAO,MAEb,KAIR,OAAQ,EAAQ,EAAW,EAAS,CAEnC,GAAU,KAAK,SACf,GAAU,EAAU,SAEpB,OAAU,GAAI,EAAG,EAAI,KAAK,SAAU,EAAI,EAAG,IAE1C,KAAK,MAAO,EAAS,GAAM,EAAU,MAAO,EAAS,GAItD,MAAO,MAIR,UAAW,EAAQ,CAElB,YAAK,MAAM,IAAK,GAET,KAIR,gBAAiB,EAAS,CAEzB,KAAM,GAAQ,KAAK,MACnB,GAAI,GAAS,EAEb,OAAU,GAAI,EAAG,EAAI,EAAO,OAAQ,EAAI,EAAG,IAAO,CAEjD,GAAI,GAAQ,EAAQ,GAEpB,AAAK,IAAU,QAEd,SAAQ,KAAM,8DAA+D,GAC7E,EAAQ,GAAI,KAIb,EAAO,KAAc,EAAM,EAC3B,EAAO,KAAc,EAAM,EAC3B,EAAO,KAAc,EAAM,EAI5B,MAAO,MAIR,kBAAmB,EAAU,CAE5B,KAAM,GAAQ,KAAK,MACnB,GAAI,GAAS,EAEb,OAAU,GAAI,EAAG,EAAI,EAAQ,OAAQ,EAAI,EAAG,IAAO,CAElD,GAAI,GAAS,EAAS,GAEtB,AAAK,IAAW,QAEf,SAAQ,KAAM,iEAAkE,GAChF,EAAS,GAAI,IAId,EAAO,KAAc,EAAO,EAC5B,EAAO,KAAc,EAAO,EAI7B,MAAO,MAIR,kBAAmB,EAAU,CAE5B,KAAM,GAAQ,KAAK,MACnB,GAAI,GAAS,EAEb,OAAU,GAAI,EAAG,EAAI,EAAQ,OAAQ,EAAI,EAAG,IAAO,CAElD,GAAI,GAAS,EAAS,GAEtB,AAAK,IAAW,QAEf,SAAQ,KAAM,iEAAkE,GAChF,EAAS,GAAI,IAId,EAAO,KAAc,EAAO,EAC5B,EAAO,KAAc,EAAO,EAC5B,EAAO,KAAc,EAAO,EAI7B,MAAO,MAIR,kBAAmB,EAAU,CAE5B,KAAM,GAAQ,KAAK,MACnB,GAAI,GAAS,EAEb,OAAU,GAAI,EAAG,EAAI,EAAQ,OAAQ,EAAI,EAAG,IAAO,CAElD,GAAI,GAAS,EAAS,GAEtB,AAAK,IAAW,QAEf,SAAQ,KAAM,iEAAkE,GAChF,EAAS,GAAI,KAId,EAAO,KAAc,EAAO,EAC5B,EAAO,KAAc,EAAO,EAC5B,EAAO,KAAc,EAAO,EAC5B,EAAO,KAAc,EAAO,EAI7B,MAAO,MAIR,aAAc,EAAI,CAEjB,GAAK,KAAK,WAAa,EAEtB,OAAU,GAAI,EAAG,EAAI,KAAK,MAAO,EAAI,EAAG,IAEvC,GAAW,oBAAqB,KAAM,GACtC,GAAW,aAAc,GAEzB,KAAK,MAAO,EAAG,GAAW,EAAG,GAAW,WAI9B,KAAK,WAAa,EAE7B,OAAU,GAAI,EAAG,EAAI,KAAK,MAAO,EAAI,EAAG,IAEvC,GAAU,oBAAqB,KAAM,GACrC,GAAU,aAAc,GAExB,KAAK,OAAQ,EAAG,GAAU,EAAG,GAAU,EAAG,GAAU,GAMtD,MAAO,MAIR,aAAc,EAAI,CAEjB,OAAU,GAAI,EAAG,EAAI,KAAK,MAAO,EAAI,EAAG,IAEvC,GAAU,EAAI,KAAK,KAAM,GACzB,GAAU,EAAI,KAAK,KAAM,GACzB,GAAU,EAAI,KAAK,KAAM,GAEzB,GAAU,aAAc,GAExB,KAAK,OAAQ,EAAG,GAAU,EAAG,GAAU,EAAG,GAAU,GAIrD,MAAO,MAIR,kBAAmB,EAAI,CAEtB,OAAU,GAAI,EAAG,EAAI,KAAK,MAAO,EAAI,EAAG,IAEvC,GAAU,EAAI,KAAK,KAAM,GACzB,GAAU,EAAI,KAAK,KAAM,GACzB,GAAU,EAAI,KAAK,KAAM,GAEzB,GAAU,kBAAmB,GAE7B,KAAK,OAAQ,EAAG,GAAU,EAAG,GAAU,EAAG,GAAU,GAIrD,MAAO,MAIR,mBAAoB,EAAI,CAEvB,OAAU,GAAI,EAAG,EAAI,KAAK,MAAO,EAAI,EAAG,IAEvC,GAAU,EAAI,KAAK,KAAM,GACzB,GAAU,EAAI,KAAK,KAAM,GACzB,GAAU,EAAI,KAAK,KAAM,GAEzB,GAAU,mBAAoB,GAE9B,KAAK,OAAQ,EAAG,GAAU,EAAG,GAAU,EAAG,GAAU,GAIrD,MAAO,MAIR,IAAK,EAAO,EAAS,EAAI,CAExB,YAAK,MAAM,IAAK,EAAO,GAEhB,KAIR,KAAM,EAAQ,CAEb,MAAO,MAAK,MAAO,EAAQ,KAAK,UAIjC,KAAM,EAAO,EAAI,CAEhB,YAAK,MAAO,EAAQ,KAAK,UAAa,EAE/B,KAIR,KAAM,EAAQ,CAEb,MAAO,MAAK,MAAO,EAAQ,KAAK,SAAW,GAI5C,KAAM,EAAO,EAAI,CAEhB,YAAK,MAAO,EAAQ,KAAK,SAAW,GAAM,EAEnC,KAIR,KAAM,EAAQ,CAEb,MAAO,MAAK,MAAO,EAAQ,KAAK,SAAW,GAI5C,KAAM,EAAO,EAAI,CAEhB,YAAK,MAAO,EAAQ,KAAK,SAAW,GAAM,EAEnC,KAIR,KAAM,EAAQ,CAEb,MAAO,MAAK,MAAO,EAAQ,KAAK,SAAW,GAI5C,KAAM,EAAO,EAAI,CAEhB,YAAK,MAAO,EAAQ,KAAK,SAAW,GAAM,EAEnC,KAIR,MAAO,EAAO,EAAG,EAAI,CAEpB,UAAS,KAAK,SAEd,KAAK,MAAO,EAAQ,GAAM,EAC1B,KAAK,MAAO,EAAQ,GAAM,EAEnB,KAIR,OAAQ,EAAO,EAAG,EAAG,EAAI,CAExB,UAAS,KAAK,SAEd,KAAK,MAAO,EAAQ,GAAM,EAC1B,KAAK,MAAO,EAAQ,GAAM,EAC1B,KAAK,MAAO,EAAQ,GAAM,EAEnB,KAIR,QAAS,EAAO,EAAG,EAAG,EAAG,EAAI,CAE5B,UAAS,KAAK,SAEd,KAAK,MAAO,EAAQ,GAAM,EAC1B,KAAK,MAAO,EAAQ,GAAM,EAC1B,KAAK,MAAO,EAAQ,GAAM,EAC1B,KAAK,MAAO,EAAQ,GAAM,EAEnB,KAIR,SAAU,EAAW,CAEpB,YAAK,iBAAmB,EAEjB,KAIR,OAAQ,CAEP,MAAO,IAAI,MAAK,YAAa,KAAK,MAAO,KAAK,UAAW,KAAM,MAIhE,QAAS,CAER,KAAM,GAAO,CACZ,SAAU,KAAK,SACf,KAAM,KAAK,MAAM,YAAY,KAC7B,MAAO,MAAM,UAAU,MAAM,KAAM,KAAK,OACxC,WAAY,KAAK,YAGlB,MAAK,MAAK,OAAS,IAAK,GAAK,KAAO,KAAK,MACpC,KAAK,QAAU,OAAkB,GAAK,MAAQ,KAAK,OACnD,MAAK,YAAY,SAAW,GAAK,KAAK,YAAY,QAAU,KAAM,GAAK,YAAc,KAAK,aAExF,GAMT,GAAgB,UAAU,kBAAoB,GA4C9C,gBAAoC,GAAgB,CAEnD,YAAa,EAAO,EAAU,EAAa,CAE1C,MAAO,GAAI,aAAa,GAAS,EAAU,IAgB7C,gBAAoC,GAAgB,CAEnD,YAAa,EAAO,EAAU,EAAa,CAE1C,MAAO,GAAI,aAAa,GAAS,EAAU,IAM7C,gBAAqC,GAAgB,CAEpD,YAAa,EAAO,EAAU,EAAa,CAE1C,MAAO,GAAI,aAAa,GAAS,EAAU,IAM7C,GAAuB,UAAU,yBAA2B,GAE5D,gBAAqC,GAAgB,CAEpD,YAAa,EAAO,EAAU,EAAa,CAE1C,MAAO,GAAI,cAAc,GAAS,EAAU,IAgB9C,GAAI,IAAQ,EAEZ,KAAM,IAAoB,GAAI,IACxB,GAAqB,GAAI,IACzB,GAAwB,GAAI,GAC5B,GAAuB,GAAI,IAC3B,GAAiC,GAAI,IACrC,GAA0B,GAAI,GAEpC,gBAA6B,GAAgB,CAE5C,aAAc,CAEb,QAEA,OAAO,eAAgB,KAAM,KAAM,CAAE,MAAO,OAE5C,KAAK,KAAO,KAEZ,KAAK,KAAO,GACZ,KAAK,KAAO,iBAEZ,KAAK,MAAQ,KACb,KAAK,WAAa,GAElB,KAAK,gBAAkB,GACvB,KAAK,qBAAuB,GAE5B,KAAK,OAAS,GAEd,KAAK,YAAc,KACnB,KAAK,eAAiB,KAEtB,KAAK,UAAY,CAAE,MAAO,EAAG,MAAO,KAEpC,KAAK,SAAW,GAIjB,UAAW,CAEV,MAAO,MAAK,MAIb,SAAU,EAAQ,CAEjB,MAAK,OAAM,QAAS,GAEnB,KAAK,MAAQ,GAAM,IAAkB,GAAU,GAAwB,IAAyB,EAAO,GAIvG,KAAK,MAAQ,EAIP,KAIR,aAAc,EAAO,CAEpB,MAAO,MAAK,WAAY,GAIzB,aAAc,EAAM,EAAY,CAE/B,YAAK,WAAY,GAAS,EAEnB,KAIR,gBAAiB,EAAO,CAEvB,aAAO,MAAK,WAAY,GAEjB,KAIR,aAAc,EAAO,CAEpB,MAAO,MAAK,WAAY,KAAW,OAIpC,SAAU,EAAO,EAAO,EAAgB,EAAI,CAE3C,KAAK,OAAO,KAAM,CAEjB,MAAO,EACP,MAAO,EACP,cAAe,IAMjB,aAAc,CAEb,KAAK,OAAS,GAIf,aAAc,EAAO,EAAQ,CAE5B,KAAK,UAAU,MAAQ,EACvB,KAAK,UAAU,MAAQ,EAIxB,aAAc,EAAS,CAEtB,KAAM,GAAW,KAAK,WAAW,SAEjC,AAAK,IAAa,QAEjB,GAAS,aAAc,GAEvB,EAAS,YAAc,IAIxB,KAAM,GAAS,KAAK,WAAW,OAE/B,GAAK,IAAW,OAAY,CAE3B,KAAM,GAAe,GAAI,MAAU,gBAAiB,GAEpD,EAAO,kBAAmB,GAE1B,EAAO,YAAc,GAItB,KAAM,GAAU,KAAK,WAAW,QAEhC,MAAK,KAAY,QAEhB,GAAQ,mBAAoB,GAE5B,EAAQ,YAAc,IAIlB,KAAK,cAAgB,MAEzB,KAAK,qBAID,KAAK,iBAAmB,MAE5B,KAAK,wBAIC,KAIR,gBAAiB,EAAI,CAEpB,UAAI,2BAA4B,GAEhC,KAAK,aAAc,IAEZ,KAIR,QAAS,EAAQ,CAIhB,UAAI,cAAe,GAEnB,KAAK,aAAc,IAEZ,KAIR,QAAS,EAAQ,CAIhB,UAAI,cAAe,GAEnB,KAAK,aAAc,IAEZ,KAIR,QAAS,EAAQ,CAIhB,UAAI,cAAe,GAEnB,KAAK,aAAc,IAEZ,KAIR,UAAW,EAAG,EAAG,EAAI,CAIpB,UAAI,gBAAiB,EAAG,EAAG,GAE3B,KAAK,aAAc,IAEZ,KAIR,MAAO,EAAG,EAAG,EAAI,CAIhB,UAAI,UAAW,EAAG,EAAG,GAErB,KAAK,aAAc,IAEZ,KAIR,OAAQ,EAAS,CAEhB,UAAK,OAAQ,GAEb,GAAK,eAEL,KAAK,aAAc,GAAK,QAEjB,KAIR,QAAS,CAER,YAAK,qBAEL,KAAK,YAAY,UAAW,IAAU,SAEtC,KAAK,UAAW,GAAQ,EAAG,GAAQ,EAAG,GAAQ,GAEvC,KAIR,cAAe,EAAS,CAEvB,KAAM,GAAW,GAEjB,OAAU,GAAI,EAAG,EAAI,EAAO,OAAQ,EAAI,EAAG,IAAO,CAEjD,KAAM,GAAQ,EAAQ,GACtB,EAAS,KAAM,EAAM,EAAG,EAAM,EAAG,EAAM,GAAK,GAI7C,YAAK,aAAc,WAAY,GAAI,IAAwB,EAAU,IAE9D,KAIR,oBAAqB,CAEpB,AAAK,KAAK,cAAgB,MAEzB,MAAK,YAAc,GAAI,KAIxB,KAAM,GAAW,KAAK,WAAW,SAC3B,EAA0B,KAAK,gBAAgB,SAErD,GAAK,GAAY,EAAS,oBAAsB,CAE/C,QAAQ,MAAO,kJAAmJ,MAElK,KAAK,YAAY,IAChB,GAAI,GAAS,KAAY,KAAY,MACrC,GAAI,GAAS,IAAY,IAAY,MAGtC,OAID,GAAK,IAAa,QAMjB,GAJA,KAAK,YAAY,uBAAwB,GAIpC,EAEJ,OAAU,GAAI,EAAG,EAAK,EAAwB,OAAQ,EAAI,EAAI,IAAO,CAEpE,KAAM,GAAiB,EAAyB,GAChD,GAAO,uBAAwB,GAE/B,AAAK,KAAK,qBAET,IAAU,WAAY,KAAK,YAAY,IAAK,GAAO,KACnD,KAAK,YAAY,cAAe,IAEhC,GAAU,WAAY,KAAK,YAAY,IAAK,GAAO,KACnD,KAAK,YAAY,cAAe,KAIhC,MAAK,YAAY,cAAe,GAAO,KACvC,KAAK,YAAY,cAAe,GAAO,WAU1C,MAAK,YAAY,YAIlB,AAAK,OAAO,KAAK,YAAY,IAAI,IAAO,MAAO,KAAK,YAAY,IAAI,IAAO,MAAO,KAAK,YAAY,IAAI,KAEtG,QAAQ,MAAO,sIAAuI,MAMxJ,uBAAwB,CAEvB,AAAK,KAAK,iBAAmB,MAE5B,MAAK,eAAiB,GAAI,KAI3B,KAAM,GAAW,KAAK,WAAW,SAC3B,EAA0B,KAAK,gBAAgB,SAErD,GAAK,GAAY,EAAS,oBAAsB,CAE/C,QAAQ,MAAO,wJAAyJ,MAExK,KAAK,eAAe,IAAK,GAAI,GAAW,KAExC,OAID,GAAK,EAAW,CAIf,KAAM,GAAS,KAAK,eAAe,OAMnC,GAJA,GAAO,uBAAwB,GAI1B,EAEJ,OAAU,GAAI,EAAG,EAAK,EAAwB,OAAQ,EAAI,EAAI,IAAO,CAEpE,KAAM,GAAiB,EAAyB,GAChD,GAAiB,uBAAwB,GAEzC,AAAK,KAAK,qBAET,IAAU,WAAY,GAAO,IAAK,GAAiB,KACnD,GAAO,cAAe,IAEtB,GAAU,WAAY,GAAO,IAAK,GAAiB,KACnD,GAAO,cAAe,KAItB,IAAO,cAAe,GAAiB,KACvC,GAAO,cAAe,GAAiB,MAQ1C,GAAO,UAAW,GAKlB,GAAI,GAAc,EAElB,OAAU,GAAI,EAAG,EAAK,EAAS,MAAO,EAAI,EAAI,IAE7C,GAAU,oBAAqB,EAAU,GAEzC,EAAc,KAAK,IAAK,EAAa,EAAO,kBAAmB,KAMhE,GAAK,EAEJ,OAAU,GAAI,EAAG,EAAK,EAAwB,OAAQ,EAAI,EAAI,IAAO,CAEpE,KAAM,GAAiB,EAAyB,GAC1C,EAAuB,KAAK,qBAElC,OAAU,GAAI,EAAG,EAAK,EAAe,MAAO,EAAI,EAAI,IAEnD,GAAU,oBAAqB,EAAgB,GAE1C,GAEJ,IAAQ,oBAAqB,EAAU,GACvC,GAAU,IAAK,KAIhB,EAAc,KAAK,IAAK,EAAa,EAAO,kBAAmB,KAQlE,KAAK,eAAe,OAAS,KAAK,KAAM,GAEnC,MAAO,KAAK,eAAe,SAE/B,QAAQ,MAAO,+HAAgI,OAQlJ,iBAAkB,CAEjB,KAAM,GAAQ,KAAK,MACb,EAAa,KAAK,WAKxB,GAAK,IAAU,MACb,EAAW,WAAa,QACxB,EAAW,SAAW,QACtB,EAAW,KAAO,OAAY,CAE/B,QAAQ,MAAO,gHACf,OAID,KAAM,GAAU,EAAM,MAChB,EAAY,EAAW,SAAS,MAChC,EAAU,EAAW,OAAO,MAC5B,EAAM,EAAW,GAAG,MAEpB,EAAY,EAAU,OAAS,EAErC,AAAK,EAAW,UAAY,QAE3B,KAAK,aAAc,UAAW,GAAI,IAAiB,GAAI,cAAc,EAAI,GAAa,IAIvF,KAAM,GAAW,EAAW,QAAQ,MAE9B,EAAO,GAAI,EAAO,GAExB,OAAU,GAAI,EAAG,EAAI,EAAW,IAE/B,EAAM,GAAM,GAAI,GAChB,EAAM,GAAM,GAAI,GAIjB,KAAM,GAAK,GAAI,GACd,EAAK,GAAI,GACT,EAAK,GAAI,GAET,EAAM,GAAI,GACV,EAAM,GAAI,GACV,EAAM,GAAI,GAEV,EAAO,GAAI,GACX,EAAO,GAAI,GAEZ,WAAyB,EAAG,EAAG,EAAI,CAElC,EAAG,UAAW,EAAW,EAAI,GAC7B,EAAG,UAAW,EAAW,EAAI,GAC7B,EAAG,UAAW,EAAW,EAAI,GAE7B,EAAI,UAAW,EAAK,EAAI,GACxB,EAAI,UAAW,EAAK,EAAI,GACxB,EAAI,UAAW,EAAK,EAAI,GAExB,EAAG,IAAK,GACR,EAAG,IAAK,GAER,EAAI,IAAK,GACT,EAAI,IAAK,GAET,KAAM,GAAI,EAAQ,GAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,GAI9C,AAAK,CAAE,SAAU,IAEjB,GAAK,KAAM,GAAK,eAAgB,EAAI,GAAI,gBAAiB,EAAI,CAAE,EAAI,GAAI,eAAgB,GACvF,EAAK,KAAM,GAAK,eAAgB,EAAI,GAAI,gBAAiB,EAAI,CAAE,EAAI,GAAI,eAAgB,GAEvF,EAAM,GAAI,IAAK,GACf,EAAM,GAAI,IAAK,GACf,EAAM,GAAI,IAAK,GAEf,EAAM,GAAI,IAAK,GACf,EAAM,GAAI,IAAK,GACf,EAAM,GAAI,IAAK,IAIhB,GAAI,GAAS,KAAK,OAElB,AAAK,EAAO,SAAW,GAEtB,GAAS,CAAE,CACV,MAAO,EACP,MAAO,EAAQ,UAKjB,OAAU,GAAI,EAAG,EAAK,EAAO,OAAQ,EAAI,EAAI,EAAG,EAAI,CAEnD,KAAM,GAAQ,EAAQ,GAEhB,EAAQ,EAAM,MACd,EAAQ,EAAM,MAEpB,OAAU,GAAI,EAAO,EAAK,EAAQ,EAAO,EAAI,EAAI,GAAK,EAErD,EACC,EAAS,EAAI,GACb,EAAS,EAAI,GACb,EAAS,EAAI,IAOhB,KAAM,GAAM,GAAI,GAAW,EAAO,GAAI,GAChC,EAAI,GAAI,GAAW,EAAK,GAAI,GAElC,YAAuB,EAAI,CAE1B,EAAE,UAAW,EAAS,EAAI,GAC1B,EAAG,KAAM,GAET,KAAM,GAAI,EAAM,GAIhB,EAAI,KAAM,GACV,EAAI,IAAK,EAAE,eAAgB,EAAE,IAAK,KAAQ,YAI1C,EAAK,aAAc,EAAI,GAEvB,KAAM,GAAM,AADC,EAAK,IAAK,EAAM,IACV,EAAQ,GAAQ,EAEnC,EAAU,EAAI,GAAM,EAAI,EACxB,EAAU,EAAI,EAAI,GAAM,EAAI,EAC5B,EAAU,EAAI,EAAI,GAAM,EAAI,EAC5B,EAAU,EAAI,EAAI,GAAM,EAIzB,OAAU,GAAI,EAAG,EAAK,EAAO,OAAQ,EAAI,EAAI,EAAG,EAAI,CAEnD,KAAM,GAAQ,EAAQ,GAEhB,EAAQ,EAAM,MACd,EAAQ,EAAM,MAEpB,OAAU,GAAI,EAAO,EAAK,EAAQ,EAAO,EAAI,EAAI,GAAK,EAErD,GAAc,EAAS,EAAI,IAC3B,GAAc,EAAS,EAAI,IAC3B,GAAc,EAAS,EAAI,KAQ9B,sBAAuB,CAEtB,KAAM,GAAQ,KAAK,MACb,EAAoB,KAAK,aAAc,YAE7C,GAAK,IAAsB,OAAY,CAEtC,GAAI,GAAkB,KAAK,aAAc,UAEzC,GAAK,IAAoB,OAExB,EAAkB,GAAI,IAAiB,GAAI,cAAc,EAAkB,MAAQ,GAAK,GACxF,KAAK,aAAc,SAAU,OAM7B,QAAU,GAAI,EAAG,EAAK,EAAgB,MAAO,EAAI,EAAI,IAEpD,EAAgB,OAAQ,EAAG,EAAG,EAAG,GAMnC,KAAM,GAAK,GAAI,GAAW,EAAK,GAAI,GAAW,EAAK,GAAI,GACjD,EAAK,GAAI,GAAW,EAAK,GAAI,GAAW,EAAK,GAAI,GACjD,EAAK,GAAI,GAAW,EAAK,GAAI,GAInC,GAAK,EAEJ,OAAU,GAAI,EAAG,EAAK,EAAM,MAAO,EAAI,EAAI,GAAK,EAAI,CAEnD,KAAM,GAAK,EAAM,KAAM,EAAI,GACrB,EAAK,EAAM,KAAM,EAAI,GACrB,EAAK,EAAM,KAAM,EAAI,GAE3B,EAAG,oBAAqB,EAAmB,GAC3C,EAAG,oBAAqB,EAAmB,GAC3C,EAAG,oBAAqB,EAAmB,GAE3C,EAAG,WAAY,EAAI,GACnB,EAAG,WAAY,EAAI,GACnB,EAAG,MAAO,GAEV,EAAG,oBAAqB,EAAiB,GACzC,EAAG,oBAAqB,EAAiB,GACzC,EAAG,oBAAqB,EAAiB,GAEzC,EAAG,IAAK,GACR,EAAG,IAAK,GACR,EAAG,IAAK,GAER,EAAgB,OAAQ,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAC3C,EAAgB,OAAQ,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAC3C,EAAgB,OAAQ,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,OAQ5C,QAAU,GAAI,EAAG,EAAK,EAAkB,MAAO,EAAI,EAAI,GAAK,EAE3D,EAAG,oBAAqB,EAAmB,EAAI,GAC/C,EAAG,oBAAqB,EAAmB,EAAI,GAC/C,EAAG,oBAAqB,EAAmB,EAAI,GAE/C,EAAG,WAAY,EAAI,GACnB,EAAG,WAAY,EAAI,GACnB,EAAG,MAAO,GAEV,EAAgB,OAAQ,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAC9C,EAAgB,OAAQ,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAC9C,EAAgB,OAAQ,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAMhD,KAAK,mBAEL,EAAgB,YAAc,IAMhC,MAAO,EAAU,EAAS,CAEzB,GAAK,CAAI,IAAY,EAAS,kBAAqB,CAElD,QAAQ,MAAO,kFAAmF,GAClG,OAID,AAAK,IAAW,QAEf,GAAS,EAET,QAAQ,KACP,2JAMF,KAAM,GAAa,KAAK,WAExB,SAAY,KAAO,GAAa,CAE/B,GAAK,EAAS,WAAY,KAAU,OAAY,SAGhD,KAAM,GAAkB,AADL,EAAY,GACI,MAE7B,EAAa,EAAS,WAAY,GAClC,EAAkB,EAAW,MAE7B,EAAkB,EAAW,SAAW,EACxC,EAAS,KAAK,IAAK,EAAgB,OAAQ,EAAgB,OAAS,GAE1E,OAAU,GAAI,EAAG,EAAI,EAAiB,EAAI,EAAQ,IAAM,IAEvD,EAAiB,GAAM,EAAiB,GAM1C,MAAO,MAIR,kBAAmB,CAElB,KAAM,GAAU,KAAK,WAAW,OAEhC,OAAU,GAAI,EAAG,EAAK,EAAQ,MAAO,EAAI,EAAI,IAE5C,GAAU,oBAAqB,EAAS,GAExC,GAAU,YAEV,EAAQ,OAAQ,EAAG,GAAU,EAAG,GAAU,EAAG,GAAU,GAMzD,cAAe,CAEd,WAAiC,EAAW,EAAU,CAErD,KAAM,GAAQ,EAAU,MAClB,EAAW,EAAU,SACrB,EAAa,EAAU,WAEvB,EAAS,GAAI,GAAM,YAAa,EAAQ,OAAS,GAEvD,GAAI,GAAQ,EAAG,EAAS,EAExB,OAAU,GAAI,EAAG,EAAI,EAAQ,OAAQ,EAAI,EAAG,IAAO,CAElD,AAAK,EAAU,6BAEd,EAAQ,EAAS,GAAM,EAAU,KAAK,OAAS,EAAU,OAIzD,EAAQ,EAAS,GAAM,EAIxB,OAAU,GAAI,EAAG,EAAI,EAAU,IAE9B,EAAQ,KAAc,EAAO,KAM/B,MAAO,IAAI,IAAiB,EAAQ,EAAU,GAM/C,GAAK,KAAK,QAAU,KAEnB,eAAQ,KAAM,+EACP,KAIR,KAAM,GAAY,GAAI,IAEhB,EAAU,KAAK,MAAM,MACrB,EAAa,KAAK,WAIxB,SAAY,KAAQ,GAAa,CAEhC,KAAM,GAAY,EAAY,GAExB,EAAe,EAAwB,EAAW,GAExD,EAAU,aAAc,EAAM,GAM/B,KAAM,GAAkB,KAAK,gBAE7B,SAAY,KAAQ,GAAkB,CAErC,KAAM,GAAa,GACb,EAAiB,EAAiB,GAExC,OAAU,GAAI,EAAG,EAAK,EAAe,OAAQ,EAAI,EAAI,IAAO,CAE3D,KAAM,GAAY,EAAgB,GAE5B,EAAe,EAAwB,EAAW,GAExD,EAAW,KAAM,GAIlB,EAAU,gBAAiB,GAAS,EAIrC,EAAU,qBAAuB,KAAK,qBAItC,KAAM,GAAS,KAAK,OAEpB,OAAU,GAAI,EAAG,EAAI,EAAO,OAAQ,EAAI,EAAG,IAAO,CAEjD,KAAM,GAAQ,EAAQ,GACtB,EAAU,SAAU,EAAM,MAAO,EAAM,MAAO,EAAM,eAIrD,MAAO,GAIR,QAAS,CAER,KAAM,GAAO,CACZ,SAAU,CACT,QAAS,IACT,KAAM,iBACN,UAAW,0BAWb,GALA,EAAK,KAAO,KAAK,KACjB,EAAK,KAAO,KAAK,KACZ,KAAK,OAAS,IAAK,GAAK,KAAO,KAAK,MACpC,OAAO,KAAM,KAAK,UAAW,OAAS,GAAI,GAAK,SAAW,KAAK,UAE/D,KAAK,aAAe,OAAY,CAEpC,KAAM,GAAa,KAAK,WAExB,SAAY,KAAO,GAElB,AAAK,EAAY,KAAU,QAAY,GAAM,GAAQ,EAAY,IAIlE,MAAO,GAMR,EAAK,KAAO,CAAE,WAAY,IAE1B,KAAM,GAAQ,KAAK,MAEnB,AAAK,IAAU,MAEd,GAAK,KAAK,MAAQ,CACjB,KAAM,EAAM,MAAM,YAAY,KAC9B,MAAO,MAAM,UAAU,MAAM,KAAM,EAAM,SAK3C,KAAM,GAAa,KAAK,WAExB,SAAY,KAAO,GAAa,CAE/B,KAAM,GAAY,EAAY,GAE9B,EAAK,KAAK,WAAY,GAAQ,EAAU,OAAQ,EAAK,MAItD,KAAM,GAAkB,GACxB,GAAI,GAAqB,GAEzB,SAAY,KAAO,MAAK,gBAAkB,CAEzC,KAAM,GAAiB,KAAK,gBAAiB,GAEvC,EAAQ,GAEd,OAAU,GAAI,EAAG,EAAK,EAAe,OAAQ,EAAI,EAAI,IAAO,CAE3D,KAAM,GAAY,EAAgB,GAElC,EAAM,KAAM,EAAU,OAAQ,EAAK,OAIpC,AAAK,EAAM,OAAS,GAEnB,GAAiB,GAAQ,EAEzB,EAAqB,IAMvB,AAAK,GAEJ,GAAK,KAAK,gBAAkB,EAC5B,EAAK,KAAK,qBAAuB,KAAK,sBAIvC,KAAM,GAAS,KAAK,OAEpB,AAAK,EAAO,OAAS,GAEpB,GAAK,KAAK,OAAS,KAAK,MAAO,KAAK,UAAW,KAIhD,KAAM,GAAiB,KAAK,eAE5B,MAAK,KAAmB,MAEvB,GAAK,KAAK,eAAiB,CAC1B,OAAQ,EAAe,OAAO,UAC9B,OAAQ,EAAe,SAKlB,EAIR,OAAQ,CAEN,MAAO,IAAI,MAAK,cAAc,KAAM,MAItC,KAAM,EAAS,CAId,KAAK,MAAQ,KACb,KAAK,WAAa,GAClB,KAAK,gBAAkB,GACvB,KAAK,OAAS,GACd,KAAK,YAAc,KACnB,KAAK,eAAiB,KAItB,KAAM,GAAO,GAIb,KAAK,KAAO,EAAO,KAInB,KAAM,GAAQ,EAAO,MAErB,AAAK,IAAU,MAEd,KAAK,SAAU,EAAM,MAAO,IAM7B,KAAM,GAAa,EAAO,WAE1B,SAAY,KAAQ,GAAa,CAEhC,KAAM,GAAY,EAAY,GAC9B,KAAK,aAAc,EAAM,EAAU,MAAO,IAM3C,KAAM,GAAkB,EAAO,gBAE/B,SAAY,KAAQ,GAAkB,CAErC,KAAM,GAAQ,GACR,EAAiB,EAAiB,GAExC,OAAU,GAAI,EAAG,EAAI,EAAe,OAAQ,EAAI,EAAG,IAElD,EAAM,KAAM,EAAgB,GAAI,MAAO,IAIxC,KAAK,gBAAiB,GAAS,EAIhC,KAAK,qBAAuB,EAAO,qBAInC,KAAM,GAAS,EAAO,OAEtB,OAAU,GAAI,EAAG,EAAI,EAAO,OAAQ,EAAI,EAAG,IAAO,CAEjD,KAAM,GAAQ,EAAQ,GACtB,KAAK,SAAU,EAAM,MAAO,EAAM,MAAO,EAAM,eAMhD,KAAM,GAAc,EAAO,YAE3B,AAAK,IAAgB,MAEpB,MAAK,YAAc,EAAY,SAMhC,KAAM,GAAiB,EAAO,eAE9B,MAAK,KAAmB,MAEvB,MAAK,eAAiB,EAAe,SAMtC,KAAK,UAAU,MAAQ,EAAO,UAAU,MACxC,KAAK,UAAU,MAAQ,EAAO,UAAU,MAIxC,KAAK,SAAW,EAAO,SAIlB,EAAO,aAAe,QAAY,MAAK,WAAa,OAAO,OAAQ,GAAI,EAAO,aAE5E,KAIR,SAAU,CAET,KAAK,cAAe,CAAE,KAAM,aAM9B,GAAe,UAAU,iBAAmB,GAE5C,KAAM,IAAiC,GAAI,IACrC,GAAuB,GAAI,IAC3B,GAA0B,GAAI,IAE9B,GAAsB,GAAI,GAC1B,GAAsB,GAAI,GAC1B,GAAsB,GAAI,GAE1B,GAAuB,GAAI,GAC3B,GAAuB,GAAI,GAC3B,GAAuB,GAAI,GAE3B,GAAwB,GAAI,GAC5B,GAAwB,GAAI,GAC5B,GAAwB,GAAI,GAE5B,GAAuB,GAAI,GAC3B,GAAuB,GAAI,GAC3B,GAAuB,GAAI,GAE3B,GAAmC,GAAI,GACvC,GAAwC,GAAI,GAElD,gBAAmB,GAAS,CAE3B,YAAa,EAAW,GAAI,IAAkB,EAAW,GAAI,IAAsB,CAElF,QAEA,KAAK,KAAO,OAEZ,KAAK,SAAW,EAChB,KAAK,SAAW,EAEhB,KAAK,qBAIN,KAAM,EAAS,CAEd,aAAM,KAAM,GAEP,EAAO,wBAA0B,QAErC,MAAK,sBAAwB,EAAO,sBAAsB,SAItD,EAAO,wBAA0B,QAErC,MAAK,sBAAwB,OAAO,OAAQ,GAAI,EAAO,wBAIxD,KAAK,SAAW,EAAO,SACvB,KAAK,SAAW,EAAO,SAEhB,KAIR,oBAAqB,CAEpB,KAAM,GAAW,KAAK,SAEtB,GAAK,EAAS,iBAAmB,CAEhC,KAAM,GAAkB,EAAS,gBAC3B,EAAO,OAAO,KAAM,GAE1B,GAAK,EAAK,OAAS,EAAI,CAEtB,KAAM,GAAiB,EAAiB,EAAM,IAE9C,GAAK,IAAmB,OAAY,CAEnC,KAAK,sBAAwB,GAC7B,KAAK,sBAAwB,GAE7B,OAAU,GAAI,EAAG,EAAK,EAAe,OAAQ,EAAI,EAAI,IAAO,CAE3D,KAAM,GAAO,EAAgB,GAAI,MAAQ,OAAQ,GAEjD,KAAK,sBAAsB,KAAM,GACjC,KAAK,sBAAuB,GAAS,SAQlC,CAEN,KAAM,GAAe,EAAS,aAE9B,AAAK,IAAiB,QAAa,EAAa,OAAS,GAExD,QAAQ,MAAO,yGAQlB,QAAS,EAAW,EAAa,CAEhC,KAAM,GAAW,KAAK,SAChB,EAAW,KAAK,SAChB,EAAc,KAAK,YAoBzB,GAlBK,IAAa,QAIb,GAAS,iBAAmB,MAAO,EAAS,wBAEjD,GAAU,KAAM,EAAS,gBACzB,GAAU,aAAc,GAEnB,EAAU,IAAI,iBAAkB,MAAgB,KAIrD,IAAiB,KAAM,GAAc,SACrC,GAAO,KAAM,EAAU,KAAM,aAAc,IAItC,EAAS,cAAgB,MAExB,GAAO,cAAe,EAAS,eAAkB,IAAQ,OAI/D,GAAI,GAEJ,GAAK,EAAS,iBAAmB,CAEhC,KAAM,GAAQ,EAAS,MACjB,EAAW,EAAS,WAAW,SAC/B,EAAgB,EAAS,gBAAgB,SACzC,EAAuB,EAAS,qBAChC,EAAK,EAAS,WAAW,GACzB,EAAM,EAAS,WAAW,IAC1B,EAAS,EAAS,OAClB,EAAY,EAAS,UAE3B,GAAK,IAAU,KAId,GAAK,MAAM,QAAS,GAEnB,OAAU,GAAI,EAAG,EAAK,EAAO,OAAQ,EAAI,EAAI,IAAO,CAEnD,KAAM,GAAQ,EAAQ,GAChB,EAAgB,EAAU,EAAM,eAEhC,EAAQ,KAAK,IAAK,EAAM,MAAO,EAAU,OACzC,EAAM,KAAK,IAAK,EAAM,MAAO,KAAK,IAAO,EAAM,MAAQ,EAAM,MAAW,EAAU,MAAQ,EAAU,QAE1G,OAAU,GAAI,EAAO,EAAK,EAAK,EAAI,EAAI,GAAK,EAAI,CAE/C,KAAM,GAAI,EAAM,KAAM,GAChB,EAAI,EAAM,KAAM,EAAI,GACpB,GAAI,EAAM,KAAM,EAAI,GAE1B,EAAe,GAAiC,KAAM,EAAe,EAAW,GAAQ,EAAU,EAAe,EAAsB,EAAI,EAAK,EAAG,EAAG,IAEjJ,GAEJ,GAAa,UAAY,KAAK,MAAO,EAAI,GACzC,EAAa,KAAK,cAAgB,EAAM,cACxC,EAAW,KAAM,SAQd,CAEN,KAAM,GAAQ,KAAK,IAAK,EAAG,EAAU,OAC/B,EAAM,KAAK,IAAK,EAAM,MAAS,EAAU,MAAQ,EAAU,OAEjE,OAAU,GAAI,EAAO,EAAK,EAAK,EAAI,EAAI,GAAK,EAAI,CAE/C,KAAM,GAAI,EAAM,KAAM,GAChB,EAAI,EAAM,KAAM,EAAI,GACpB,EAAI,EAAM,KAAM,EAAI,GAE1B,EAAe,GAAiC,KAAM,EAAU,EAAW,GAAQ,EAAU,EAAe,EAAsB,EAAI,EAAK,EAAG,EAAG,GAE5I,GAEJ,GAAa,UAAY,KAAK,MAAO,EAAI,GACzC,EAAW,KAAM,aAQT,IAAa,OAIxB,GAAK,MAAM,QAAS,GAEnB,OAAU,GAAI,EAAG,EAAK,EAAO,OAAQ,EAAI,EAAI,IAAO,CAEnD,KAAM,GAAQ,EAAQ,GAChB,EAAgB,EAAU,EAAM,eAEhC,EAAQ,KAAK,IAAK,EAAM,MAAO,EAAU,OACzC,EAAM,KAAK,IAAK,EAAS,MAAO,KAAK,IAAO,EAAM,MAAQ,EAAM,MAAW,EAAU,MAAQ,EAAU,QAE7G,OAAU,GAAI,EAAO,EAAK,EAAK,EAAI,EAAI,GAAK,EAAI,CAE/C,KAAM,GAAI,EACJ,EAAI,EAAI,EACR,GAAI,EAAI,EAEd,EAAe,GAAiC,KAAM,EAAe,EAAW,GAAQ,EAAU,EAAe,EAAsB,EAAI,EAAK,EAAG,EAAG,IAEjJ,GAEJ,GAAa,UAAY,KAAK,MAAO,EAAI,GACzC,EAAa,KAAK,cAAgB,EAAM,cACxC,EAAW,KAAM,SAQd,CAEN,KAAM,GAAQ,KAAK,IAAK,EAAG,EAAU,OAC/B,EAAM,KAAK,IAAK,EAAS,MAAS,EAAU,MAAQ,EAAU,OAEpE,OAAU,GAAI,EAAO,EAAK,EAAK,EAAI,EAAI,GAAK,EAAI,CAE/C,KAAM,GAAI,EACJ,EAAI,EAAI,EACR,EAAI,EAAI,EAEd,EAAe,GAAiC,KAAM,EAAU,EAAW,GAAQ,EAAU,EAAe,EAAsB,EAAI,EAAK,EAAG,EAAG,GAE5I,GAEJ,GAAa,UAAY,KAAK,MAAO,EAAI,GACzC,EAAW,KAAM,UAUf,AAAK,GAAS,YAEpB,QAAQ,MAAO,8FAQlB,GAAK,UAAU,OAAS,GAExB,YAA4B,EAAQ,EAAU,EAAW,EAAK,EAAI,EAAI,EAAI,EAAQ,CAEjF,GAAI,GAYJ,GAVA,AAAK,EAAS,OAAS,EAEtB,EAAY,EAAI,kBAAmB,EAAI,EAAI,EAAI,GAAM,GAIrD,EAAY,EAAI,kBAAmB,EAAI,EAAI,EAAI,EAAS,OAAS,EAAY,GAIzE,IAAc,KAAO,MAAO,MAEjC,GAAwB,KAAM,GAC9B,GAAwB,aAAc,EAAO,aAE7C,KAAM,GAAW,EAAU,IAAI,OAAO,WAAY,IAElD,MAAK,GAAW,EAAU,MAAQ,EAAW,EAAU,IAAa,KAE7D,CACN,SAAU,EACV,MAAO,GAAwB,QAC/B,OAAQ,GAKV,YAA0C,EAAQ,EAAU,EAAW,EAAK,EAAU,EAAe,EAAsB,EAAI,EAAK,EAAG,EAAG,EAAI,CAE7I,GAAM,oBAAqB,EAAU,GACrC,GAAM,oBAAqB,EAAU,GACrC,GAAM,oBAAqB,EAAU,GAErC,KAAM,GAAkB,EAAO,sBAE/B,GAAK,GAAiB,EAAkB,CAEvC,GAAQ,IAAK,EAAG,EAAG,GACnB,GAAQ,IAAK,EAAG,EAAG,GACnB,GAAQ,IAAK,EAAG,EAAG,GAEnB,OAAU,GAAI,EAAG,EAAK,EAAc,OAAQ,EAAI,EAAI,IAAO,CAE1D,KAAM,GAAY,EAAiB,GAC7B,EAAiB,EAAe,GAEtC,AAAK,IAAc,GAEnB,IAAO,oBAAqB,EAAgB,GAC5C,GAAO,oBAAqB,EAAgB,GAC5C,GAAO,oBAAqB,EAAgB,GAE5C,AAAK,EAEJ,IAAQ,gBAAiB,GAAQ,GACjC,GAAQ,gBAAiB,GAAQ,GACjC,GAAQ,gBAAiB,GAAQ,IAIjC,IAAQ,gBAAiB,GAAO,IAAK,IAAS,GAC9C,GAAQ,gBAAiB,GAAO,IAAK,IAAS,GAC9C,GAAQ,gBAAiB,GAAO,IAAK,IAAS,KAMhD,GAAM,IAAK,IACX,GAAM,IAAK,IACX,GAAM,IAAK,IAIZ,AAAK,EAAO,eAEX,GAAO,cAAe,EAAG,IACzB,EAAO,cAAe,EAAG,IACzB,EAAO,cAAe,EAAG,KAI1B,KAAM,GAAe,GAAmB,EAAQ,EAAU,EAAW,EAAK,GAAO,GAAO,GAAO,IAE/F,GAAK,EAAe,CAEnB,AAAK,GAEJ,IAAO,oBAAqB,EAAI,GAChC,GAAO,oBAAqB,EAAI,GAChC,GAAO,oBAAqB,EAAI,GAEhC,EAAa,GAAK,GAAS,MAAO,GAAoB,GAAO,GAAO,GAAO,GAAQ,GAAQ,GAAQ,GAAI,KAInG,GAEJ,IAAO,oBAAqB,EAAK,GACjC,GAAO,oBAAqB,EAAK,GACjC,GAAO,oBAAqB,EAAK,GAEjC,EAAa,IAAM,GAAS,MAAO,GAAoB,GAAO,GAAO,GAAO,GAAQ,GAAQ,GAAQ,GAAI,KAIzG,KAAM,GAAO,CACZ,EAAG,EACH,EAAG,EACH,EAAG,EACH,OAAQ,GAAI,GACZ,cAAe,GAGhB,GAAS,UAAW,GAAO,GAAO,GAAO,EAAK,QAE9C,EAAa,KAAO,EAIrB,MAAO,GAIR,gBAA0B,GAAe,CAExC,YAAa,EAAQ,EAAG,EAAS,EAAG,EAAQ,EAAG,EAAgB,EAAG,EAAiB,EAAG,EAAgB,EAAI,CAEzG,QAEA,KAAK,KAAO,cAEZ,KAAK,WAAa,CACjB,MAAO,EACP,OAAQ,EACR,MAAO,EACP,cAAe,EACf,eAAgB,EAChB,cAAe,GAGhB,KAAM,GAAQ,KAId,EAAgB,KAAK,MAAO,GAC5B,EAAiB,KAAK,MAAO,GAC7B,EAAgB,KAAK,MAAO,GAI5B,KAAM,GAAU,GACV,EAAW,GACX,EAAU,GACV,EAAM,GAIZ,GAAI,GAAmB,EACnB,EAAa,EAIjB,EAAY,IAAK,IAAK,IAAK,GAAK,GAAK,EAAO,EAAQ,EAAO,EAAe,EAAgB,GAC1F,EAAY,IAAK,IAAK,IAAK,EAAG,GAAK,EAAO,EAAQ,CAAE,EAAO,EAAe,EAAgB,GAC1F,EAAY,IAAK,IAAK,IAAK,EAAG,EAAG,EAAO,EAAO,EAAQ,EAAe,EAAe,GACrF,EAAY,IAAK,IAAK,IAAK,EAAG,GAAK,EAAO,EAAO,CAAE,EAAQ,EAAe,EAAe,GACzF,EAAY,IAAK,IAAK,IAAK,EAAG,GAAK,EAAO,EAAQ,EAAO,EAAe,EAAgB,GACxF,EAAY,IAAK,IAAK,IAAK,GAAK,GAAK,EAAO,EAAQ,CAAE,EAAO,EAAe,EAAgB,GAI5F,KAAK,SAAU,GACf,KAAK,aAAc,WAAY,GAAI,IAAwB,EAAU,IACrE,KAAK,aAAc,SAAU,GAAI,IAAwB,EAAS,IAClE,KAAK,aAAc,KAAM,GAAI,IAAwB,EAAK,IAE1D,WAAqB,EAAG,EAAG,EAAG,EAAM,EAAM,EAAO,EAAQ,EAAO,EAAO,EAAO,GAAgB,CAE7F,KAAM,GAAe,EAAQ,EACvB,EAAgB,EAAS,EAEzB,EAAY,EAAQ,EACpB,EAAa,EAAS,EACtB,EAAY,EAAQ,EAEpB,EAAS,EAAQ,EACjB,EAAS,EAAQ,EAEvB,GAAI,GAAgB,EAChB,EAAa,EAEjB,KAAM,IAAS,GAAI,GAInB,OAAU,GAAK,EAAG,EAAK,EAAQ,IAAQ,CAEtC,KAAM,GAAI,EAAK,EAAgB,EAE/B,OAAU,IAAK,EAAG,GAAK,EAAQ,KAAQ,CAEtC,KAAM,IAAI,GAAK,EAAe,EAI9B,GAAQ,GAAM,GAAI,EAClB,GAAQ,GAAM,EAAI,EAClB,GAAQ,GAAM,EAId,EAAS,KAAM,GAAO,EAAG,GAAO,EAAG,GAAO,GAI1C,GAAQ,GAAM,EACd,GAAQ,GAAM,EACd,GAAQ,GAAM,EAAQ,EAAI,EAAI,GAI9B,EAAQ,KAAM,GAAO,EAAG,GAAO,EAAG,GAAO,GAIzC,EAAI,KAAM,GAAK,GACf,EAAI,KAAM,EAAM,EAAK,GAIrB,GAAiB,GAYnB,OAAU,GAAK,EAAG,EAAK,EAAO,IAE7B,OAAU,GAAK,EAAG,EAAK,EAAO,IAAQ,CAErC,KAAM,IAAI,EAAmB,EAAK,EAAS,EACrC,GAAI,EAAmB,EAAK,EAAW,GAAK,GAC5C,GAAI,EAAqB,GAAK,GAAM,EAAW,GAAK,GACpD,EAAI,EAAqB,GAAK,GAAM,EAAS,EAInD,EAAQ,KAAM,GAAG,GAAG,GACpB,EAAQ,KAAM,GAAG,GAAG,GAIpB,GAAc,EAQhB,EAAM,SAAU,EAAY,EAAY,IAIxC,GAAc,EAId,GAAoB,SAMf,UAAU,EAAO,CAEvB,MAAO,IAAI,IAAa,EAAK,MAAO,EAAK,OAAQ,EAAK,MAAO,EAAK,cAAe,EAAK,eAAgB,EAAK,gBAU7G,YAAwB,EAAM,CAE7B,KAAM,GAAM,GAEZ,SAAY,KAAK,GAAM,CAEtB,EAAK,GAAM,GAEX,SAAY,KAAK,GAAK,GAAM,CAE3B,KAAM,GAAW,EAAK,GAAK,GAE3B,AAAK,GAAc,GAAS,SAC3B,EAAS,WAAa,EAAS,WAC/B,EAAS,WAAa,EAAS,WAAa,EAAS,WACrD,EAAS,WAAa,EAAS,cAE/B,EAAK,GAAK,GAAM,EAAS,QAEnB,AAAK,MAAM,QAAS,GAE1B,EAAK,GAAK,GAAM,EAAS,QAIzB,EAAK,GAAK,GAAM,GAQnB,MAAO,GAIR,YAAwB,EAAW,CAElC,KAAM,GAAS,GAEf,OAAU,GAAI,EAAG,EAAI,EAAS,OAAQ,IAAO,CAE5C,KAAM,GAAM,GAAe,EAAU,IAErC,SAAY,KAAK,GAEhB,EAAQ,GAAM,EAAK,GAMrB,MAAO,GAMR,KAAM,IAAgB,CAAE,MAAO,GAAe,MAAO,IAErD,GAAI,IAAiB;AAAA;AAAA,GAEjB,GAAmB;AAAA;AAAA,GAiBvB,gBAA6B,GAAS,CAErC,YAAa,EAAa,CAEzB,QAEA,KAAK,KAAO,iBAEZ,KAAK,QAAU,GACf,KAAK,SAAW,GAEhB,KAAK,aAAe,GACpB,KAAK,eAAiB,GAEtB,KAAK,UAAY,EAEjB,KAAK,UAAY,GACjB,KAAK,mBAAqB,EAE1B,KAAK,IAAM,GACX,KAAK,OAAS,GACd,KAAK,SAAW,GAEhB,KAAK,WAAa,CACjB,YAAa,GACb,UAAW,GACX,YAAa,GACb,iBAAkB,IAKnB,KAAK,uBAAyB,CAC7B,MAAS,CAAE,EAAG,EAAG,GACjB,GAAM,CAAE,EAAG,GACX,IAAO,CAAE,EAAG,IAGb,KAAK,oBAAsB,OAC3B,KAAK,mBAAqB,GAE1B,KAAK,YAAc,KAEd,IAAe,QAEd,GAAW,aAAe,QAE9B,QAAQ,MAAO,2FAIhB,KAAK,UAAW,IAMlB,KAAM,EAAS,CAEd,aAAM,KAAM,GAEZ,KAAK,eAAiB,EAAO,eAC7B,KAAK,aAAe,EAAO,aAE3B,KAAK,SAAW,GAAe,EAAO,UAEtC,KAAK,QAAU,OAAO,OAAQ,GAAI,EAAO,SAEzC,KAAK,UAAY,EAAO,UACxB,KAAK,mBAAqB,EAAO,mBAEjC,KAAK,OAAS,EAAO,OACrB,KAAK,SAAW,EAAO,SAEvB,KAAK,WAAa,OAAO,OAAQ,GAAI,EAAO,YAE5C,KAAK,YAAc,EAAO,YAEnB,KAIR,OAAQ,EAAO,CAEd,KAAM,GAAO,MAAM,OAAQ,GAE3B,EAAK,YAAc,KAAK,YACxB,EAAK,SAAW,GAEhB,SAAY,KAAQ,MAAK,SAAW,CAGnC,KAAM,GAAQ,AADE,KAAK,SAAU,GACT,MAEtB,AAAK,GAAS,EAAM,UAEnB,EAAK,SAAU,GAAS,CACvB,KAAM,IACN,MAAO,EAAM,OAAQ,GAAO,MAGvB,AAAK,GAAS,EAAM,QAE1B,EAAK,SAAU,GAAS,CACvB,KAAM,IACN,MAAO,EAAM,UAGR,AAAK,GAAS,EAAM,UAE1B,EAAK,SAAU,GAAS,CACvB,KAAM,KACN,MAAO,EAAM,WAGR,AAAK,GAAS,EAAM,UAE1B,EAAK,SAAU,GAAS,CACvB,KAAM,KACN,MAAO,EAAM,WAGR,AAAK,GAAS,EAAM,UAE1B,EAAK,SAAU,GAAS,CACvB,KAAM,KACN,MAAO,EAAM,WAGR,AAAK,GAAS,EAAM,UAE1B,EAAK,SAAU,GAAS,CACvB,KAAM,KACN,MAAO,EAAM,WAGR,AAAK,GAAS,EAAM,UAE1B,EAAK,SAAU,GAAS,CACvB,KAAM,KACN,MAAO,EAAM,WAKd,EAAK,SAAU,GAAS,CACvB,MAAO,GASV,AAAK,OAAO,KAAM,KAAK,SAAU,OAAS,GAAI,GAAK,QAAU,KAAK,SAElE,EAAK,aAAe,KAAK,aACzB,EAAK,eAAiB,KAAK,eAE3B,KAAM,GAAa,GAEnB,SAAY,KAAO,MAAK,WAEvB,AAAK,KAAK,WAAY,KAAU,IAAO,GAAY,GAAQ,IAI5D,MAAK,QAAO,KAAM,GAAa,OAAS,GAAI,GAAK,WAAa,GAEvD,GAMT,GAAe,UAAU,iBAAmB,GAE5C,gBAAqB,GAAS,CAE7B,aAAc,CAEb,QAEA,KAAK,KAAO,SAEZ,KAAK,mBAAqB,GAAI,IAE9B,KAAK,iBAAmB,GAAI,IAC5B,KAAK,wBAA0B,GAAI,IAIpC,KAAM,EAAQ,EAAY,CAEzB,aAAM,KAAM,EAAQ,GAEpB,KAAK,mBAAmB,KAAM,EAAO,oBAErC,KAAK,iBAAiB,KAAM,EAAO,kBACnC,KAAK,wBAAwB,KAAM,EAAO,yBAEnC,KAIR,kBAAmB,EAAS,CAE3B,KAAK,kBAAmB,GAAM,IAE9B,KAAM,GAAI,KAAK,YAAY,SAE3B,MAAO,GAAO,IAAK,CAAE,EAAG,GAAK,CAAE,EAAG,GAAK,CAAE,EAAG,KAAO,YAIpD,kBAAmB,EAAQ,CAE1B,MAAM,kBAAmB,GAEzB,KAAK,mBAAmB,KAAM,KAAK,aAAc,SAIlD,kBAAmB,EAAe,EAAiB,CAElD,MAAM,kBAAmB,EAAe,GAExC,KAAK,mBAAmB,KAAM,KAAK,aAAc,SAIlD,OAAQ,CAEP,MAAO,IAAI,MAAK,cAAc,KAAM,OAMtC,GAAO,UAAU,SAAW,GAE5B,gBAAgC,GAAO,CAEtC,YAAa,EAAM,GAAI,EAAS,EAAG,EAAO,GAAK,EAAM,IAAO,CAE3D,QAEA,KAAK,KAAO,oBAEZ,KAAK,IAAM,EACX,KAAK,KAAO,EAEZ,KAAK,KAAO,EACZ,KAAK,IAAM,EACX,KAAK,MAAQ,GAEb,KAAK,OAAS,EACd,KAAK,KAAO,KAEZ,KAAK,UAAY,GACjB,KAAK,WAAa,EAElB,KAAK,yBAIN,KAAM,EAAQ,EAAY,CAEzB,aAAM,KAAM,EAAQ,GAEpB,KAAK,IAAM,EAAO,IAClB,KAAK,KAAO,EAAO,KAEnB,KAAK,KAAO,EAAO,KACnB,KAAK,IAAM,EAAO,IAClB,KAAK,MAAQ,EAAO,MAEpB,KAAK,OAAS,EAAO,OACrB,KAAK,KAAO,EAAO,OAAS,KAAO,KAAO,OAAO,OAAQ,GAAI,EAAO,MAEpE,KAAK,UAAY,EAAO,UACxB,KAAK,WAAa,EAAO,WAElB,KAYR,eAAgB,EAAc,CAG7B,KAAM,GAAe,GAAM,KAAK,gBAAkB,EAElD,KAAK,IAAM,GAAU,EAAI,KAAK,KAAM,GACpC,KAAK,yBAON,gBAAiB,CAEhB,KAAM,GAAe,KAAK,IAAK,GAAU,GAAM,KAAK,KAEpD,MAAO,IAAM,KAAK,gBAAkB,EAIrC,iBAAkB,CAEjB,MAAO,IAAU,EAAI,KAAK,KACzB,KAAK,IAAK,GAAU,GAAM,KAAK,KAAQ,KAAK,MAI9C,cAAe,CAGd,MAAO,MAAK,UAAY,KAAK,IAAK,KAAK,OAAQ,GAIhD,eAAgB,CAGf,MAAO,MAAK,UAAY,KAAK,IAAK,KAAK,OAAQ,GAuChD,cAAe,EAAW,EAAY,EAAG,EAAG,EAAO,EAAS,CAE3D,KAAK,OAAS,EAAY,EAErB,KAAK,OAAS,MAElB,MAAK,KAAO,CACX,QAAS,GACT,UAAW,EACX,WAAY,EACZ,QAAS,EACT,QAAS,EACT,MAAO,EACP,OAAQ,IAKV,KAAK,KAAK,QAAU,GACpB,KAAK,KAAK,UAAY,EACtB,KAAK,KAAK,WAAa,EACvB,KAAK,KAAK,QAAU,EACpB,KAAK,KAAK,QAAU,EACpB,KAAK,KAAK,MAAQ,EAClB,KAAK,KAAK,OAAS,EAEnB,KAAK,yBAIN,iBAAkB,CAEjB,AAAK,KAAK,OAAS,MAElB,MAAK,KAAK,QAAU,IAIrB,KAAK,yBAIN,wBAAyB,CAExB,KAAM,GAAO,KAAK,KAClB,GAAI,GAAM,EAAO,KAAK,IAAK,GAAU,GAAM,KAAK,KAAQ,KAAK,KACzD,EAAS,EAAI,EACb,EAAQ,KAAK,OAAS,EACtB,EAAO,IAAQ,EACnB,KAAM,GAAO,KAAK,KAElB,GAAK,KAAK,OAAS,MAAQ,KAAK,KAAK,QAAU,CAE9C,KAAM,GAAY,EAAK,UACtB,EAAa,EAAK,WAEnB,GAAQ,EAAK,QAAU,EAAQ,EAC/B,GAAO,EAAK,QAAU,EAAS,EAC/B,GAAS,EAAK,MAAQ,EACtB,GAAU,EAAK,OAAS,EAIzB,KAAM,GAAO,KAAK,WAClB,AAAK,IAAS,GAAI,IAAQ,EAAO,EAAO,KAAK,gBAE7C,KAAK,iBAAiB,gBAAiB,EAAM,EAAO,EAAO,EAAK,EAAM,EAAQ,EAAM,KAAK,KAEzF,KAAK,wBAAwB,KAAM,KAAK,kBAAmB,SAI5D,OAAQ,EAAO,CAEd,KAAM,GAAO,MAAM,OAAQ,GAE3B,SAAK,OAAO,IAAM,KAAK,IACvB,EAAK,OAAO,KAAO,KAAK,KAExB,EAAK,OAAO,KAAO,KAAK,KACxB,EAAK,OAAO,IAAM,KAAK,IACvB,EAAK,OAAO,MAAQ,KAAK,MAEzB,EAAK,OAAO,OAAS,KAAK,OAErB,KAAK,OAAS,MAAO,GAAK,OAAO,KAAO,OAAO,OAAQ,GAAI,KAAK,OAErE,EAAK,OAAO,UAAY,KAAK,UAC7B,EAAK,OAAO,WAAa,KAAK,WAEvB,GAMT,GAAkB,UAAU,oBAAsB,GAElD,KAAM,IAAM,GAAI,GAAS,EAEzB,gBAAyB,GAAS,CAEjC,YAAa,EAAM,EAAK,EAAe,CAEtC,QAIA,GAFA,KAAK,KAAO,aAEP,EAAa,0BAA4B,GAAO,CAEpD,QAAQ,MAAO,0GACf,OAID,KAAK,aAAe,EAEpB,KAAM,GAAW,GAAI,IAAmB,GAAK,GAAQ,EAAM,GAC3D,EAAS,OAAS,KAAK,OACvB,EAAS,GAAG,IAAK,EAAG,GAAK,GACzB,EAAS,OAAQ,GAAI,GAAS,EAAG,EAAG,IACpC,KAAK,IAAK,GAEV,KAAM,GAAW,GAAI,IAAmB,GAAK,GAAQ,EAAM,GAC3D,EAAS,OAAS,KAAK,OACvB,EAAS,GAAG,IAAK,EAAG,GAAK,GACzB,EAAS,OAAQ,GAAI,GAAS,GAAK,EAAG,IACtC,KAAK,IAAK,GAEV,KAAM,GAAW,GAAI,IAAmB,GAAK,GAAQ,EAAM,GAC3D,EAAS,OAAS,KAAK,OACvB,EAAS,GAAG,IAAK,EAAG,EAAG,GACvB,EAAS,OAAQ,GAAI,GAAS,EAAG,EAAG,IACpC,KAAK,IAAK,GAEV,KAAM,GAAW,GAAI,IAAmB,GAAK,GAAQ,EAAM,GAC3D,EAAS,OAAS,KAAK,OACvB,EAAS,GAAG,IAAK,EAAG,EAAG,IACvB,EAAS,OAAQ,GAAI,GAAS,EAAG,GAAK,IACtC,KAAK,IAAK,GAEV,KAAM,GAAW,GAAI,IAAmB,GAAK,GAAQ,EAAM,GAC3D,EAAS,OAAS,KAAK,OACvB,EAAS,GAAG,IAAK,EAAG,GAAK,GACzB,EAAS,OAAQ,GAAI,GAAS,EAAG,EAAG,IACpC,KAAK,IAAK,GAEV,KAAM,GAAW,GAAI,IAAmB,GAAK,GAAQ,EAAM,GAC3D,EAAS,OAAS,KAAK,OACvB,EAAS,GAAG,IAAK,EAAG,GAAK,GACzB,EAAS,OAAQ,GAAI,GAAS,EAAG,EAAG,KACpC,KAAK,IAAK,GAIX,OAAQ,EAAU,EAAQ,CAEzB,AAAK,KAAK,SAAW,MAAO,KAAK,oBAEjC,KAAM,GAAe,KAAK,aAEpB,CAAE,EAAU,EAAU,EAAU,EAAU,EAAU,GAAa,KAAK,SAEtE,EAAmB,EAAS,GAAG,QAC/B,EAAsB,EAAS,kBAErC,EAAS,GAAG,QAAU,GAEtB,KAAM,GAAkB,EAAa,QAAQ,gBAE7C,EAAa,QAAQ,gBAAkB,GAEvC,EAAS,gBAAiB,EAAc,GACxC,EAAS,OAAQ,EAAO,GAExB,EAAS,gBAAiB,EAAc,GACxC,EAAS,OAAQ,EAAO,GAExB,EAAS,gBAAiB,EAAc,GACxC,EAAS,OAAQ,EAAO,GAExB,EAAS,gBAAiB,EAAc,GACxC,EAAS,OAAQ,EAAO,GAExB,EAAS,gBAAiB,EAAc,GACxC,EAAS,OAAQ,EAAO,GAExB,EAAa,QAAQ,gBAAkB,EAEvC,EAAS,gBAAiB,EAAc,GACxC,EAAS,OAAQ,EAAO,GAExB,EAAS,gBAAiB,GAE1B,EAAS,GAAG,QAAU,EAEtB,EAAa,QAAQ,iBAAmB,IAM1C,gBAA0B,GAAQ,CAEjC,YAAa,EAAQ,EAAS,EAAO,EAAO,EAAW,EAAW,EAAQ,EAAM,EAAY,EAAW,CAEtG,EAAS,IAAW,OAAY,EAAS,GACzC,EAAU,IAAY,OAAY,EAAU,IAE5C,MAAO,EAAQ,EAAS,EAAO,EAAO,EAAW,EAAW,EAAQ,EAAM,EAAY,GAEtF,KAAK,MAAQ,MAIV,SAAS,CAEZ,MAAO,MAAK,SAIT,QAAQ,EAAQ,CAEnB,KAAK,MAAQ,GAMf,GAAY,UAAU,cAAgB,GAEtC,gBAAoC,GAAkB,CAErD,YAAa,EAAM,EAAS,EAAQ,CAEnC,AAAK,OAAO,UAAW,IAEtB,SAAQ,KAAM,oGAEd,EAAU,GAIX,MAAO,EAAM,EAAM,GAEnB,EAAU,GAAW,GAUrB,KAAK,QAAU,GAAI,IAAa,OAAW,EAAQ,QAAS,EAAQ,MAAO,EAAQ,MAAO,EAAQ,UAAW,EAAQ,UAAW,EAAQ,OAAQ,EAAQ,KAAM,EAAQ,WAAY,EAAQ,UAC1L,KAAK,QAAQ,sBAAwB,GAErC,KAAK,QAAQ,gBAAkB,EAAQ,kBAAoB,OAAY,EAAQ,gBAAkB,GACjG,KAAK,QAAQ,UAAY,EAAQ,YAAc,OAAY,EAAQ,UAAY,KAIhF,2BAA4B,EAAU,EAAU,CAE/C,KAAK,QAAQ,KAAO,EAAQ,KAC5B,KAAK,QAAQ,OAAS,KACtB,KAAK,QAAQ,SAAW,EAAQ,SAEhC,KAAK,QAAQ,gBAAkB,EAAQ,gBACvC,KAAK,QAAQ,UAAY,EAAQ,UACjC,KAAK,QAAQ,UAAY,EAAQ,UAEjC,KAAM,GAAS,CAEd,SAAU,CACT,UAAW,CAAE,MAAO,OAGrB,aAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAoBxB,eAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAoBrB,EAAW,GAAI,IAAa,EAAG,EAAG,GAElC,EAAW,GAAI,IAAgB,CAEpC,KAAM,sBAEN,SAAU,GAAe,EAAO,UAChC,aAAc,EAAO,aACrB,eAAgB,EAAO,eACvB,KAAM,EACN,SAAU,IAIX,EAAS,SAAS,UAAU,MAAQ,EAEpC,KAAM,GAAO,GAAI,IAAM,EAAU,GAE3B,EAAmB,EAAQ,UAGjC,MAAK,GAAQ,YAAc,MAA2B,GAAQ,UAAY,MAG1E,AADe,GAAI,IAAY,EAAG,GAAI,MAC/B,OAAQ,EAAU,GAEzB,EAAQ,UAAY,EAEpB,EAAK,SAAS,UACd,EAAK,SAAS,UAEP,KAIR,MAAO,EAAU,EAAO,EAAO,EAAU,CAExC,KAAM,GAAsB,EAAS,kBAErC,OAAU,GAAI,EAAG,EAAI,EAAG,IAEvB,EAAS,gBAAiB,KAAM,GAEhC,EAAS,MAAO,EAAO,EAAO,GAI/B,EAAS,gBAAiB,IAM5B,GAAsB,UAAU,wBAA0B,GAE1D,KAAM,IAAyB,GAAI,GAC7B,GAAyB,GAAI,GAC7B,GAA8B,GAAI,IAExC,QAAY,CAEX,YAAa,EAAS,GAAI,GAAS,EAAG,EAAG,GAAK,EAAW,EAAI,CAI5D,KAAK,OAAS,EACd,KAAK,SAAW,EAIjB,IAAK,EAAQ,EAAW,CAEvB,YAAK,OAAO,KAAM,GAClB,KAAK,SAAW,EAET,KAIR,cAAe,EAAG,EAAG,EAAG,EAAI,CAE3B,YAAK,OAAO,IAAK,EAAG,EAAG,GACvB,KAAK,SAAW,EAET,KAIR,8BAA+B,EAAQ,EAAQ,CAE9C,YAAK,OAAO,KAAM,GAClB,KAAK,SAAW,CAAE,EAAM,IAAK,KAAK,QAE3B,KAIR,sBAAuB,EAAG,EAAG,EAAI,CAEhC,KAAM,GAAS,GAAS,WAAY,EAAG,GAAI,MAAO,GAAS,WAAY,EAAG,IAAM,YAIhF,YAAK,8BAA+B,EAAQ,GAErC,KAIR,KAAM,EAAQ,CAEb,YAAK,OAAO,KAAM,EAAM,QACxB,KAAK,SAAW,EAAM,SAEf,KAIR,WAAY,CAIX,KAAM,GAAsB,EAAM,KAAK,OAAO,SAC9C,YAAK,OAAO,eAAgB,GAC5B,KAAK,UAAY,EAEV,KAIR,QAAS,CAER,YAAK,UAAY,GACjB,KAAK,OAAO,SAEL,KAIR,gBAAiB,EAAQ,CAExB,MAAO,MAAK,OAAO,IAAK,GAAU,KAAK,SAIxC,iBAAkB,EAAS,CAE1B,MAAO,MAAK,gBAAiB,EAAO,QAAW,EAAO,OAIvD,aAAc,EAAO,EAAS,CAE7B,MAAO,GAAO,KAAM,KAAK,QAAS,eAAgB,CAAE,KAAK,gBAAiB,IAAU,IAAK,GAI1F,cAAe,EAAM,EAAS,CAE7B,KAAM,GAAY,EAAK,MAAO,IAExB,EAAc,KAAK,OAAO,IAAK,GAErC,GAAK,IAAgB,EAGpB,MAAK,MAAK,gBAAiB,EAAK,SAAY,EAEpC,EAAO,KAAM,EAAK,OAKnB,KAIR,KAAM,GAAI,CAAI,GAAK,MAAM,IAAK,KAAK,QAAW,KAAK,UAAa,EAEhE,MAAK,GAAI,GAAK,EAAI,EAEV,KAID,EAAO,KAAM,GAAY,eAAgB,GAAI,IAAK,EAAK,OAI/D,eAAgB,EAAO,CAItB,KAAM,GAAY,KAAK,gBAAiB,EAAK,OACvC,EAAU,KAAK,gBAAiB,EAAK,KAE3C,MAAS,GAAY,GAAK,EAAU,GAAS,EAAU,GAAK,EAAY,EAIzE,cAAe,EAAM,CAEpB,MAAO,GAAI,gBAAiB,MAI7B,iBAAkB,EAAS,CAE1B,MAAO,GAAO,gBAAiB,MAIhC,cAAe,EAAS,CAEvB,MAAO,GAAO,KAAM,KAAK,QAAS,eAAgB,CAAE,KAAK,UAI1D,aAAc,EAAQ,EAAuB,CAE5C,KAAM,GAAe,GAAwB,GAAc,gBAAiB,GAEtE,EAAiB,KAAK,cAAe,IAAW,aAAc,GAE9D,EAAS,KAAK,OAAO,aAAc,GAAe,YAExD,YAAK,SAAW,CAAE,EAAe,IAAK,GAE/B,KAIR,UAAW,EAAS,CAEnB,YAAK,UAAY,EAAO,IAAK,KAAK,QAE3B,KAIR,OAAQ,EAAQ,CAEf,MAAO,GAAM,OAAO,OAAQ,KAAK,SAAc,EAAM,WAAa,KAAK,SAIxE,OAAQ,CAEP,MAAO,IAAI,MAAK,cAAc,KAAM,OAMtC,GAAM,UAAU,QAAU,GAE1B,KAAM,IAA0B,GAAI,IAC9B,GAA0B,GAAI,GAEpC,QAAc,CAEb,YAAa,EAAK,GAAI,IAAS,EAAK,GAAI,IAAS,EAAK,GAAI,IAAS,EAAK,GAAI,IAAS,EAAK,GAAI,IAAS,EAAK,GAAI,IAAU,CAEzH,KAAK,OAAS,CAAE,EAAI,EAAI,EAAI,EAAI,EAAI,GAIrC,IAAK,EAAI,EAAI,EAAI,EAAI,EAAI,EAAK,CAE7B,KAAM,GAAS,KAAK,OAEpB,SAAQ,GAAI,KAAM,GAClB,EAAQ,GAAI,KAAM,GAClB,EAAQ,GAAI,KAAM,GAClB,EAAQ,GAAI,KAAM,GAClB,EAAQ,GAAI,KAAM,GAClB,EAAQ,GAAI,KAAM,GAEX,KAIR,KAAM,EAAU,CAEf,KAAM,GAAS,KAAK,OAEpB,OAAU,GAAI,EAAG,EAAI,EAAG,IAEvB,EAAQ,GAAI,KAAM,EAAQ,OAAQ,IAInC,MAAO,MAIR,wBAAyB,EAAI,CAE5B,KAAM,GAAS,KAAK,OACd,EAAK,EAAE,SACP,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GACvD,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAM,EAAI,GACvD,EAAM,EAAI,GAAK,EAAM,EAAI,GAAK,EAAO,EAAI,IAAM,EAAO,EAAI,IAC1D,EAAO,EAAI,IAAM,EAAO,EAAI,IAAM,EAAO,EAAI,IAAM,EAAO,EAAI,IAEpE,SAAQ,GAAI,cAAe,EAAM,EAAK,EAAM,EAAK,EAAO,EAAK,EAAO,GAAO,YAC3E,EAAQ,GAAI,cAAe,EAAM,EAAK,EAAM,EAAK,EAAO,EAAK,EAAO,GAAO,YAC3E,EAAQ,GAAI,cAAe,EAAM,EAAK,EAAM,EAAK,EAAO,EAAK,EAAO,GAAO,YAC3E,EAAQ,GAAI,cAAe,EAAM,EAAK,EAAM,EAAK,EAAO,EAAK,EAAO,GAAO,YAC3E,EAAQ,GAAI,cAAe,EAAM,EAAK,EAAM,EAAK,EAAO,EAAM,EAAO,GAAO,YAC5E,EAAQ,GAAI,cAAe,EAAM,EAAK,EAAM,EAAK,EAAO,EAAM,EAAO,GAAO,YAErE,KAIR,iBAAkB,EAAS,CAE1B,KAAM,GAAW,EAAO,SAExB,MAAK,GAAS,iBAAmB,MAAO,EAAS,wBAEjD,GAAU,KAAM,EAAS,gBAAiB,aAAc,EAAO,aAExD,KAAK,iBAAkB,IAI/B,iBAAkB,EAAS,CAE1B,UAAU,OAAO,IAAK,EAAG,EAAG,GAC5B,GAAU,OAAS,kBACnB,GAAU,aAAc,EAAO,aAExB,KAAK,iBAAkB,IAI/B,iBAAkB,EAAS,CAE1B,KAAM,GAAS,KAAK,OACd,EAAS,EAAO,OAChB,EAAY,CAAE,EAAO,OAE3B,OAAU,GAAI,EAAG,EAAI,EAAG,IAIvB,GAAK,AAFY,EAAQ,GAAI,gBAAiB,GAE9B,EAEf,MAAO,GAMT,MAAO,GAIR,cAAe,EAAM,CAEpB,KAAM,GAAS,KAAK,OAEpB,OAAU,GAAI,EAAG,EAAI,EAAG,IAAO,CAE9B,KAAM,GAAQ,EAAQ,GAQtB,GAJA,GAAU,EAAI,EAAM,OAAO,EAAI,EAAI,EAAI,IAAI,EAAI,EAAI,IAAI,EACvD,GAAU,EAAI,EAAM,OAAO,EAAI,EAAI,EAAI,IAAI,EAAI,EAAI,IAAI,EACvD,GAAU,EAAI,EAAM,OAAO,EAAI,EAAI,EAAI,IAAI,EAAI,EAAI,IAAI,EAElD,EAAM,gBAAiB,IAAc,EAEzC,MAAO,GAMT,MAAO,GAIR,cAAe,EAAQ,CAEtB,KAAM,GAAS,KAAK,OAEpB,OAAU,GAAI,EAAG,EAAI,EAAG,IAEvB,GAAK,EAAQ,GAAI,gBAAiB,GAAU,EAE3C,MAAO,GAMT,MAAO,GAIR,OAAQ,CAEP,MAAO,IAAI,MAAK,cAAc,KAAM,OAMtC,aAA0B,CAEzB,GAAI,GAAU,KACV,EAAc,GACd,EAAgB,KAChB,EAAY,KAEhB,WAA2B,EAAM,EAAQ,CAExC,EAAe,EAAM,GAErB,EAAY,EAAQ,sBAAuB,GAI5C,MAAO,CAEN,MAAO,UAAY,CAElB,AAAK,IAAgB,IAChB,IAAkB,MAEvB,GAAY,EAAQ,sBAAuB,GAE3C,EAAc,KAIf,KAAM,UAAY,CAEjB,EAAQ,qBAAsB,GAE9B,EAAc,IAIf,iBAAkB,SAAW,EAAW,CAEvC,EAAgB,GAIjB,WAAY,SAAW,EAAQ,CAE9B,EAAU,IAQb,YAA0B,EAAI,EAAe,CAE5C,KAAM,GAAW,EAAa,SAExB,EAAU,GAAI,SAEpB,WAAuB,EAAW,EAAa,CAE9C,KAAM,GAAQ,EAAU,MAClB,EAAQ,EAAU,MAElB,EAAS,EAAG,eAElB,EAAG,WAAY,EAAY,GAC3B,EAAG,WAAY,EAAY,EAAO,GAElC,EAAU,mBAEV,GAAI,GAAO,KAEX,MAAK,aAAiB,cAErB,EAAO,KAED,AAAK,YAAiB,cAE5B,QAAQ,KAAM,wEAER,AAAK,YAAiB,aAE5B,AAAK,EAAU,yBAEd,AAAK,EAEJ,EAAO,KAIP,QAAQ,KAAM,2EAMf,EAAO,KAIF,AAAK,YAAiB,YAE5B,EAAO,KAED,AAAK,YAAiB,aAE5B,EAAO,KAED,AAAK,YAAiB,YAE5B,EAAO,KAED,AAAK,YAAiB,WAE5B,EAAO,KAED,AAAK,aAAiB,aAIjB,YAAiB,qBAE5B,GAAO,MAID,CACN,OAAQ,EACR,KAAM,EACN,gBAAiB,EAAM,kBACvB,QAAS,EAAU,SAKrB,WAAuB,EAAQ,EAAW,EAAa,CAEtD,KAAM,GAAQ,EAAU,MAClB,EAAc,EAAU,YAE9B,EAAG,WAAY,EAAY,GAE3B,AAAK,EAAY,QAAU,GAI1B,EAAG,cAAe,EAAY,EAAG,GAIjC,CAAK,EAEJ,EAAG,cAAe,EAAY,EAAY,OAAS,EAAM,kBACxD,EAAO,EAAY,OAAQ,EAAY,OAIxC,EAAG,cAAe,EAAY,EAAY,OAAS,EAAM,kBACxD,EAAM,SAAU,EAAY,OAAQ,EAAY,OAAS,EAAY,QAIvE,EAAY,MAAQ,IAQtB,WAAc,EAAY,CAEzB,MAAK,GAAU,8BAA+B,GAAY,EAAU,MAE7D,EAAQ,IAAK,GAIrB,WAAiB,EAAY,CAE5B,AAAK,EAAU,8BAA+B,GAAY,EAAU,MAEpE,KAAM,GAAO,EAAQ,IAAK,GAE1B,AAAK,GAEJ,GAAG,aAAc,EAAK,QAEtB,EAAQ,OAAQ,IAMlB,WAAiB,EAAW,EAAa,CAExC,GAAK,EAAU,oBAAsB,CAEpC,KAAM,GAAS,EAAQ,IAAK,GAE5B,AAAK,EAAE,GAAU,EAAO,QAAU,EAAU,UAE3C,EAAQ,IAAK,EAAW,CACvB,OAAQ,EAAU,OAClB,KAAM,EAAU,KAChB,gBAAiB,EAAU,YAC3B,QAAS,EAAU,UAKrB,OAID,AAAK,EAAU,8BAA+B,GAAY,EAAU,MAEpE,KAAM,GAAO,EAAQ,IAAK,GAE1B,AAAK,IAAS,OAEb,EAAQ,IAAK,EAAW,EAAc,EAAW,IAEtC,EAAK,QAAU,EAAU,SAEpC,GAAc,EAAK,OAAQ,EAAW,GAEtC,EAAK,QAAU,EAAU,SAM3B,MAAO,CAEN,IAAK,EACL,OAAQ,EACR,OAAQ,GAMV,gBAA4B,GAAe,CAE1C,YAAa,EAAQ,EAAG,EAAS,EAAG,EAAgB,EAAG,EAAiB,EAAI,CAE3E,QACA,KAAK,KAAO,gBAEZ,KAAK,WAAa,CACjB,MAAO,EACP,OAAQ,EACR,cAAe,EACf,eAAgB,GAGjB,KAAM,GAAa,EAAQ,EACrB,EAAc,EAAS,EAEvB,EAAQ,KAAK,MAAO,GACpB,EAAQ,KAAK,MAAO,GAEpB,EAAS,EAAQ,EACjB,EAAS,EAAQ,EAEjB,EAAgB,EAAQ,EACxB,EAAiB,EAAS,EAI1B,EAAU,GACV,EAAW,GACX,EAAU,GACV,EAAM,GAEZ,OAAU,GAAK,EAAG,EAAK,EAAQ,IAAQ,CAEtC,KAAM,GAAI,EAAK,EAAiB,EAEhC,OAAU,GAAK,EAAG,EAAK,EAAQ,IAAQ,CAEtC,KAAM,GAAI,EAAK,EAAgB,EAE/B,EAAS,KAAM,EAAG,CAAE,EAAG,GAEvB,EAAQ,KAAM,EAAG,EAAG,GAEpB,EAAI,KAAM,EAAK,GACf,EAAI,KAAM,EAAM,EAAK,IAMvB,OAAU,GAAK,EAAG,EAAK,EAAO,IAE7B,OAAU,GAAK,EAAG,EAAK,EAAO,IAAQ,CAErC,KAAM,GAAI,EAAK,EAAS,EAClB,EAAI,EAAK,EAAW,GAAK,GACzB,EAAM,EAAK,EAAM,EAAW,GAAK,GACjC,EAAM,EAAK,EAAM,EAAS,EAEhC,EAAQ,KAAM,EAAG,EAAG,GACpB,EAAQ,KAAM,EAAG,EAAG,GAMtB,KAAK,SAAU,GACf,KAAK,aAAc,WAAY,GAAI,IAAwB,EAAU,IACrE,KAAK,aAAc,SAAU,GAAI,IAAwB,EAAS,IAClE,KAAK,aAAc,KAAM,GAAI,IAAwB,EAAK,UAIpD,UAAU,EAAO,CAEvB,MAAO,IAAI,IAAe,EAAK,MAAO,EAAK,OAAQ,EAAK,cAAe,EAAK,iBAM9E,GAAI,IAAoB;AAAA;AAAA,QAEpB,GAAyB;AAAA;AAAA,QAEzB,GAAqB;AAAA;AAAA,QAErB,GAA0B;AAAA;AAAA,QAE1B,GAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEjB,GAAsB;AAAA;AAAA;AAAA,QAEtB,GAAe,uCAEf,GAAqB;AAAA;AAAA;AAAA,QAErB,GAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAER,GAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAExB,GAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAE3B,GAAgC;AAAA;AAAA;AAAA,QAEhC,GAA8B;AAAA;AAAA,QAE9B,GAAyB;AAAA;AAAA,QAEzB,GAAiB;AAAA;AAAA;AAAA;AAAA,QAEjB,GAAsB;AAAA;AAAA;AAAA;AAAA,QAEtB,GAAoB;AAAA;AAAA;AAAA;AAAA,QAEpB,GAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEf,GAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAET,GAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAE9B,GAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEvB,GAA8B;AAAA;AAAA;AAAA;AAAA,QAE9B,GAAyB;AAAA;AAAA,QAEzB,GAAuB;AAAA;AAAA;AAAA,QAEvB,GAA4B;AAAA;AAAA,QAE5B,GAAqB,sDAErB,GAA0B;AAAA;AAAA;AAAA;AAAA;AAAA,GAE1B,GAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAElB,GAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAE9B,GAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEvB,GAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAErB,GAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEhB,GAAa;AAAA;AAAA,QAEb,GAAkB;AAAA;AAAA,QAElB,GAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEf,GAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEpB,GAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAE5B,GAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEpB,GAAyB;AAAA;AAAA;AAAA,QAEzB,GAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAExB,GAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEpB,GAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEhC,GAAuB;AAAA,2CAEvB,GAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gDAE5B,GAAwB;AAAA;AAAA;AAAA;AAAA,+CAExB,GAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gDAE7B,GAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAE3B,GAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEhC,GAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAExB,GAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEvB,GAAsB;AAAA;AAAA;AAAA;AAAA;AAAA,QAEtB,GAAuB;AAAA;AAAA,QAEvB,GAA4B;AAAA;AAAA;AAAA;AAAA,QAE5B,GAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAE1B,GAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAErB,GAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEf,GAAoB;AAAA;AAAA,QAEpB,GAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAExB,GAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAE7B,GAAwB;AAAA;AAAA;AAAA;AAAA,QAExB,GAA6B;AAAA;AAAA,QAE7B,GAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAErB,GAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAE1B,GAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAErB,GAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAExB,GAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEvB,GAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEvB,GAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAErB,GAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEhB,GAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAE1B,GAAkC;AAAA;AAAA,QAElC,GAAiC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEjC,GAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAE1B,GAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uDAElB,GAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEV,GAA+B;AAAA;AAAA,QAE/B,GAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,8CAEjB,GAAqB;AAAA;AAAA,QAErB,GAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAE1B,GAAwB;AAAA;AAAA;AAAA;AAAA,QAExB,GAA6B;AAAA;AAAA,QAE7B,GAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAE1B,GAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAExB,GAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEnB,GAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEX,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEb,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEX,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEb,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEX,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEb,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEX,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEb,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEX,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEb,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEX,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEb,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEX,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEb,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEX,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEb,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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"} \ No newline at end of file diff --git a/dist/assets/wood.9768871f.png b/dist/assets/wood.9768871f.png new file mode 100644 index 0000000000000000000000000000000000000000..96862b2614a48395c26133c16156206f18da7fc4 GIT binary patch literal 4414 zcmX9?dpy(o|7Tg)LTJ{Jj^YR(GnY^)xfC+R@R_-Ml1ma!9or~fgh_Jk>$F)MV=iO+ zV4<8gBGjlYoG!Cc%56EOtD=rlzxDY2@p-&H@5|%;em|eD=j-|YJU;ov0AC%HF-lEM zO~-HF-e5H~b==QKYn7@epzfTnDtHn1gWjsxRuFK#^x$QxM|b7XGtn+}nf~zsHl-Ag zNFU3T2-nLe_Qwa>Rb-OVVm#6hIvo#n$UVB--C;v~0Peu9&A}e#`yEXJRja6{1_y+w zdAxdZL``ii?6=nwOdoqK&l5beUy~biIpW=q{_gnLyMW$5b-YJGU*gUjJzKuJ_FtO8 z{KY74!~_a<7I3DZ(g-^mQidQCTPR4(Y{9xcc#>OffVb$=>x+!X{L`M^T|Bytg<^4A zXbLxhAwl774pIPZ!HgN$$JPF-9h$<&Kz1QWIf|4r6k=t`+b>${l!=m=`^HlQpS1G6 zXuwr<wGcmV&+9;EC0J>*vR=2%fq8@%U0}gGa+D0rz-4s=BLzHK0*&2XEh|?|mW`GA zhqK{ry!GUc6EhFPF@Uz&$=708#G^#vhwB3tqpP8zh-t~FF)M6CigR+YO=L0@d#qR1 z>@4`bg_7T)&bsI%u`o;ba8y+6+8XgCkW6}+L$G31_Nfn$aKqe$9OY{ro)xQTKwa{) zT^Ath+JR9R9CG&%7KlZUxADI3lAD^W!G`wq=#mLddoG&v1ef@|)IBsjxYDmja!V#F ze)+n7G~pMZZmB3^O<Ux5$EoFcUdW=Wj9F&}y&*g(Cytl+A2gGl4AQ};r2zvnh^;Ij zju+V2gtkp3U)#CY@v(iM*61-|d&htbC$UhWe;P5JWTY@i_WcRMxsaOQVNRCrW>fug z)*14Kg%So@yqHOJLjc1TWz&F)v9f7`QAw|8Mj!w2P{?AB;UAWgWBtVSxt9G)+oL*r zeiRPmcfFXK)2dD}ubF)JHcPmS(?+!g_aQORgP=(|O2DBP8ZprSb>44zOV-9{175zx zXh7JI{|}wwiQ!A1X8|W^@A$(#l7)LQaJyxH$D5NADIIvI^4#dF)2Y*sg;!2Kqj*|C z#Fjw?IDnL$fQZ&uu!&;Lq<VH(V8LPU{3gmTOqyrMW~}ezLDONR!Ar&a-B|CnHO2$t zQjYOm1^A8@bUp=huL9J7DNsN>MEr$CEOq8<fz!ewiHPHf=M7NY{vB(69VO6w`IT%p zFN*~A3=1Z1d2JOqUMUo4%TWmfPx?hiSp0T1nVzo?Wd}3GQ+6B4q+t-MH)n>FU)l7v z6AdWfr7VJwW86#nc1wyL*?H(t6ZZIxr?WFN`tXIp_Px5mnWOqq;^X9Z4^k60e>ioo z<bl|U@j$kmUFBA~b^7-tIrgM!y#c;XLVJn`<R~ZT5}}I0oO4+c5d#?UK3R;0L-D*K z8=e-JD2Q8n5mlAkBf-0|IB#+CZ}Ur4rQDrGBhs)zrs&sd#*9cKWM&VfcWd<C;<w7a z2&QyolIYC=67h{m3ObP6VT1+yF)CJYtf0jdBuO{fO^|^BI=s;LD11^?GF+$yuM0KD zW?%&2+%~cy)}9SrJ7e4!f)1@J4A_ZfdXZd(9*L8506{{R(RMItB&L^a0J(1~nOMqE z_7W(zOQec_C+Rii$uP||Esj0XosnB8%@>cH*2a$1U4x(+Ei7m{;5yPaIz?9zXMpGJ zzKc1q6AMNkENdH{HBNTM^D5`ZhxagN=@L;EVxD?0x(_+(s>-1}cJ}jc_mE5q8`dBh zq4BLrc(&g%F*{}w3S>h!eS=4T=erLXfID!)URYFrb%B_TNx-pm<~o6z0u4;qxyYyQ z1XRtXbFAX1L!vI}u|sbO*P2Z7Y*(T_K6^F|FP(|n#PBBB*}WKy{jEd+eIg5Mt(H-} z+wnYx4NRBvO`5U`zx=x}>@H*98Z_!0tja;LPW;&pyRd<3+7{FB^afx7if!L=)&l<P zO7+F=1K~~ks6!7w|Ib9XynLp5)8Qls>-f|;!aC*y4W{GY@kLUxXmxWCL_n(2f@D&? z4MEgTb*cFaOZ@#G^<1%p(hOVt-G1l-LnQvq#MTN?$)M8Y^Nl~&<ouHjuaiw8-6NkL z@3S~}og;!GT-StRu^=cZ(#C&(C=ru_HOZQounfr4o9mft0JcEHw3IYrwrnWvs*MhO z_mdN8@TT1Lv$r6Udo6ORqJm$b8oZt6de6sUPu$FdkLlS%r(#a=FG=&+RPlRugA0JA z;AY3TLQa7@XA0>uM5QP!pw#WcBIN|Q5_Xt1jZ%M1FTipLRL}VT@81MwgoW&szkHFS z58fmmP!bB6nt0xMo6{QPiX=-Tx<y0_bRX@muVjUv`qo+Kb+px(GXY@U)VDoJT!pV& zX5z5LNLCONC;NCU`j}J!CgOQ?DUV=?342DfCRN$+CL%7Qnq?|po+db@ZXA3Rh#Xe1 zGG{-Y2CGJXPz8p84!eDOd`jfN?4k0EE2lnu{U;&t)#tRb-Acml6^ZqNHFY`IqG!AG zMrLWL%(?UUwv7k5Po|RV3Uv(XY#iWbhtvOF)gE1o=fRIUscoKR$vDzE<K@H64U;dw zx$Bsd|MII^E}i_A1267xwv0ZXxIVL~p(fDdPqEp{Vs!Ielld`myeZg%ZP5gyOL3$} z72>mmlKHO(PyAgzqlfu&*_prYze}H-9Mmm>kG{j~LT#XWVjv==upx<>0e3}<=(O&e z&BMrnhsUnFU5WF-Y;Y~3y}3XO+PNszW+f87*718K)k*9^CmQ9-F4k3p6|khk4V!nD zR@_L%y%gJpT!S>jE3}3zMJK}H+nfEwU3OusL^r2`Cmx=2#cKW<h#cK6=mLjGA?7U8 z>srj4Tfh?M|IOnePg$P@7{3M+)<o&%ir~7pjTQn^XL$t}#gAL0b!)TU+&8*R74KVC z$0m&Sfp&D}>_P#1{s?s47HSUai`VR74aAT0TMe2$p>3132Pb3Y69(|tFrd|CruM*O z!T7}31yr++u-=#ZIANgr{`hRgw2SH!<F6_EqRPMDe7CdjF7oyF2T>tR#r+$*>60Jj zn5*asy6@ohE0%^P;L>+{r%MSV`PAR=lJ5AVGN=WC;ps=0Q*1K?KC($=aElSBCS^7S zEsECghOZ>$D28S595v&EMLm!k%(lkdNwUtRX5drA3BsN){aGkzeY7@IZ749hBjXb8 zWf#1Ad-L?-e?Jx)6yuqH`UU*;=|=pm<*m<NUf;c9Q@v8Iw=%J~<bG=0@!Uk^bl&Z% z@cljO-oHlpeo<yJKU<#-{qTopW4>&&E|-N?xN1W?+;`HcFo#INvFGclbD(FfGL8>j zR%fZpej%#kn8{<+g~1yyF_dd~_C~V>OV9vln<a@(^q3`Re~R^DZmmsn=#4NDLOgnU zNrSg2Jz>p8{C?6>BZ{0-Vy@`af@*Ff`2`+KD@^&s4tXwBv0v2B1gH1$A9jE`XsXV( zNz~*kFh9r{CvheU5`#slaHA!GX+^qiAgWboS<1$0lEMITJ!Bn(Cv*smF+!g#g;YU6 zwr(d|chQFIB7)$jS*RFi!6RGYE3D8;h9la}>l%K`Pw5~Ea4G75{R-XBAbRDjp<s>h zIseycaZ&^$dA*f9e1Z<<1~a|*6|&W6YB54yPL-YBNYdw-)g^^7l2tpFQ;N^SxxwCh zJH(xt0!k{!Ydodu!*g%ZmixK<U!8#WEoQy#lNIZ+ji>FoQ(?=l2O~~QM_7}Xe6=zi zdApvxGZ+Sf=loYO<~fw7L=qdm<eY*pi_h+MNmvB~#O#F86kn(kAi`-#P(xa6!=2~R z3Epj+u$gn~*#3>K_OJ^M9p*^Z7j@<yFyy*wfof>5nYz&)+W?zkdNsqgK$;S7K8(cl z_CuG-pzokoA<Yeef1iQ<G8%ZLNdw5@(!5Kh)dg{LP$^Ys)r7$-ptv9|cR~^$m{t$o zevc^ICLj5$--={?Heyz_IutQEmGka{6_IU4BCxxBTEB^wb7cg60Du`tvLp&(dlh~p z&DeGw1;9uSx59E^QY}KR)%slYnvdWZw7wP+)Xi<Ie>XX$IRl#5q|^Qjp)~JFnO25i z{DBhYHFGRibxGHP*4<f(p^k2!Qj}ISd_ghjEqG7`r}DJQhMh+kHW@f_Eyz_<Pw`n= zUF|DL(-#^{j8#6X1S~TWIU{K`P@|!OS});jcwxx0!}Ko9AR@X#WD@?DhaN67Q*Dh& zOe(Hz>p=Qe!5ZHC>pkMxu-T6*G{spooT!Z6L7M}&a)I0sb(|)?JjsP)7UoJOFq+Qc zNcCVx0l2P-GIRubR<WIw%84CMxd7?uF_OJh+-gXxk`d5bRr%7BYoHGn@P0mm8$sSL z&U^SDF2$B%<I|*jmp}YSCBAYhrdWCbM!*M{CdvB3g1fo=BrZteAYS&_F>EYo_yE#g zfEaa~`bs&S0-F(svfv!WNLn0RPCVB3TJ)YC#Y(C$;qBXY_Vn0F%kCJw9nj+xJ;JnN z+5Cjt-iRnITb(M1d6M6>ZW~Y{o4U&lDRw29Cb!N`v4a|okuZJqTzJF1ENP|ka-bS! zd+3uD3W<QJQ^)jnnhGLxc<*W0=s9RP(rx?Hr5%{wSZIm;AWJ!^PW%v;OTmA2kTFrw zF@nP*X=peu4;4cZ>=nh{fp!Lo_wh>@s5n(^g-<!w0w|KH|7?Y|JWB+sV6>U*JfZ1i zNiV`gxbjf%!mBZ()x7iOu0(iu*)T~k8JkOieZ6E4YrIsH*FfSTWe`^x&4&tmNs=Mn zky1G39whw^F#sQevke%D8z#LLL3}NvS%A?rIxgHKbK-+)^Dk6d`|>brSmq^a??>{U z92VH=oLyP86*^8VG%UaE(k-)<fBlTW*1A^P^3=*K$y$*{XW-{GKl5B<#tIN$-deBn z6nS)Sya&b`zF<MqIp35^4T2ME!5|JItO}|E)e31Ur#gS*$pJ?$Aq$o2k!3+GFFwB` z1pbYf@rbv!Y#4)3oIVe^lC&7g4NiS$QdDK932gMAHMW<_Ku>OM*b=l#QSbrQT~GH| zJXmMYx=wJa0Sd|UZ!}(AvkHOJ6Yy^<JjAV_V7;}xNVL>Q$XB`W89_N!q>5F4+~Pvn zRJNX7JrVZerEAWp4zC7HbmatFkxF^nRdhPzH^BaRggXyKfWr8KF4l0OfrYM}QthjG zKh2qh;c4L5=<^hnZ@>s9ol8Ti93^5qvqY?t7v_h})qoBy&?U^){kzbewG%VAFiTZ= z*msrAP5fuafPWzeFE|aubHZif*-CAqcGz*KNM(j@8+Bb&vtEF%Wy8#m%pYe17)d7j z%o4?Y*&j!&MIk>S1iPxnO{CTHc>cL#a{Qm`FJx~jfZI{m-e!8e+#G$}FGMz3^z~}@ z=`9Z;pS=n2Yl8B6PCfcH^3~3hww?W%p{w+v-$qZZC5m1la2H@*-gDaKvI9tUrn%sX z0)Z=3rVnIE^vOl1@V!9r#*pTTMvbOBvY2qtI`lmz_9^6oiA82|!#;phjyz?LmowV5 z3BFi&)4n~gDJF3w@yp@yh<L{;*fkygwk!PGBkx@#-PU~qMIETynl4Z*!~j3Uol`>e zEmGK(&@3cWOZN%uwSen2nx+j%4Z3LIUZzf45<ZA2G7GH_-eMHY*U|^4%y@UaiTQ;b o1FWY7o=$)?n8Ll>hR4Xc3#EgeGYwIyUl?kB-T`|BUeWab0|tFT5C8xG literal 0 HcmV?d00001 diff --git a/dist/index.html b/dist/index.html new file mode 100644 index 0000000..b8f5abb --- /dev/null +++ b/dist/index.html @@ -0,0 +1,96 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <link rel="icon" href="/dist/assets/mc.5fa29ff9.ico" /> + <meta + name="viewport" + content="width=device-width,initial-scale=1,maximum-scale=1" + /> + <meta + name="description" + content="Minecraft clone made with Three.js + TypeScript, play minecraft in your own browser!" + /> + <title>Minecraft - Three.js</title> + <script type="module" crossorigin src="/dist/assets/index.3d64fa62.js"></script> + <link rel="modulepreload" href="/dist/assets/vendor.b16e062d.js"> + <link rel="stylesheet" href="/dist/assets/index.648ad158.css"> + </head> + <body> + + <a + href="https://github.com/Vyse12138/minecraft-threejs" + title="Source on GitHub" + class="github" + target="_blank" + rel="noopener" + > + <svg width="72" height="72" viewBox="0 0 250 250"> + <path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path> + <path + d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" + fill="white" + ></path> + <path + d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" + fill="white" + ></path> + </svg> + </a> + <div class="menu start"> + <button id="play" class="button">Play</button> + <button id="save" class="button">Load Game</button> + <button id="setting" class="button">Setting</button> + <button id="feature" class="button">Guide</button> + <button id="exit" class="button">Exit</button> + <footer class="footer">© 2022 Yulei Zhu</footer> + </div> + + <div class="features hidden"> + <p> + <b> Left-Click: </b> destroy block <br /> + <b> Right-Click:</b> place block <br /> + <b> Wheel / Number Key: </b>change block <br /> + <b> WASD: </b>move <br /> + <b> Space: </b>jump <br /> + <b> Q:</b> normal / dev mode <br /> + <b> Shift:</b> fly up (in dev mode) <br /> + <b> F: </b>full screen <br /> + <b> E: </b>menu <br /> + </p> + <button id="back" class="button">Back</button> + </div> + + <div class="settings hidden"> + <p id="distance">Render Distance: 3</p> + <input + type="range" + id="distance-input" + min="1" + max="8" + value="3" + step="1" + /> + + <p id="fov">Field of View: 70</p> + <input + type="range" + id="fov-input" + min="40" + max="100" + value="70" + step="1" + /> + + <p id="music">Music: On</p> + <input type="range" id="music-input" min="0" max="1" value="1" step="1" /> + + <br /> + <br /> + <button id="setting-back" class="button">Apply</button> + </div> + + <div class="save-modal hidden">Game Saved!</div> + <div class="load-modal hidden">Game Loaded!</div> + </body> +</html> diff --git a/package.json b/package.json index aa448d8..874c9c6 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "description": "Minecraft clone made with Three.js and TypeScript", "scripts": { "dev": "vite", - "build": "vite build", + "build": "vite build --base=/dist/", "preview": "vite preview --port 8080", "lint": "tsc --noEmit" }, diff --git a/vite.config.ts b/vite.config.ts index 1cb7405..ece4235 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,8 +1,7 @@ -import { defineConfig } from 'vite'; - -// https://vitejs.dev/config/ -export default defineConfig({ - server: { - host: '0.0.0.0' +export default { + build: { + chunkSizeWarningLimit: 2000, + assetsInlineLimit: 0, + sourcemap: true } -}) \ No newline at end of file +} -- GitLab