From 610dfa8d78d26c942b74ea76a85acf393c7108cb Mon Sep 17 00:00:00 2001 From: Breck Yunits Date: Mon, 21 Oct 2024 10:51:05 -1000 Subject: [PATCH] --- .gitignore | 3 +- ScrollHub.js | 48 +++++++++++++++++-- dashboard.js | 52 ++++++++++++++++++++ earth_atmos_2048.jpg | Bin 0 -> 512606 bytes external/three.min.js | 6 +++ globe.css | 22 +++++++++ globe.js | 109 ++++++++++++++++++++++++++++++++++++++++++ globe.scroll | 8 ++++ 8 files changed, 243 insertions(+), 5 deletions(-) create mode 100644 earth_atmos_2048.jpg create mode 100644 external/three.min.js create mode 100644 globe.css create mode 100644 globe.js create mode 100644 globe.scroll diff --git a/.gitignore b/.gitignore index 2e138509..d99f8290 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,5 @@ list.scroll *.key *.txt trash/ -now.txt \ No newline at end of file +now.txt +ipToGeo/ \ No newline at end of file diff --git a/ScrollHub.js b/ScrollHub.js index 98def080..34ea5037 100644 --- a/ScrollHub.js +++ b/ScrollHub.js @@ -21,6 +21,9 @@ const httpBackend = require("git-http-backend") // PPS const { Particle } = require("scrollsdk/products/Particle.js") +// This +const { Dashboard } = require("./dashboard.js") + express.static.mime.define({ "text/plain": ["scroll", "parsers"] }) const parseUserAgent = userAgent => { @@ -57,7 +60,11 @@ class ScrollHub { this.templatesFolder = path.join(__dirname, "templates") this.trashFolder = path.join(__dirname, "trash") this.folderCache = {} + this.sseClients = new Set() this.storyCache = "" + this.globalLogFile = path.join(__dirname, "log.txt") + this.storyLogFile = path.join(__dirname, "now.txt") + this.dashboard = new Dashboard(this.globalLogFile) } startAll() { @@ -78,6 +85,7 @@ class ScrollHub { this.initHistoryRoutes() this.initZipRoutes() this.initCommandRoutes() + this.initSSERoute() this.enableStaticFileServing() @@ -86,6 +94,39 @@ class ScrollHub { return this.startServers() } + initSSERoute() { + const { app, globalLogFile } = this + app.get("/requests.htm", (req, res) => { + req.headers["accept-encoding"] = "identity" + res.writeHead(200, { + "Content-Type": "text/event-stream", + "Cache-Control": "no-cache", + Connection: "keep-alive" + }) + + // Send initial ping + res.write(": ping\n\n") + + const id = Date.now() + + const client = { + id, + res + } + + this.sseClients.add(client) + + req.on("close", () => this.sseClients.delete(client)) + }) + } + + async broadCastMessage(log, ip) { + if (!this.sseClients.size) return + const geo = await this.dashboard.ipToGeo(ip) + log = [log.trim(), geo.lat, geo.lon].join(" ") + this.sseClients.forEach(client => client.res.write(`data: ${JSON.stringify({ log })}\n\n`)) + } + enableCompression() { this.app.use(compression()) } @@ -143,8 +184,6 @@ class ScrollHub { } initAnalytics() { - this.globalLogFile = path.join(__dirname, "log.txt") - this.storyLogFile = path.join(__dirname, "now.txt") if (!fs.existsSync(this.storyLogFile)) fs.writeFileSync(this.storyLogFile, "", "utf8") const { app, folderCache, storyCache } = this app.use(this.logRequest.bind(this)) @@ -158,9 +197,8 @@ class ScrollHub { res.send(storyCache) }) - const { Dashboard } = require("./dashboard.js") app.get("/dashboard.csv", async (req, res) => { - const dashboard = new Dashboard(this.globalLogFile) + const { dashboard } = this await dashboard.processLogFile() const { csv } = dashboard res.setHeader("Content-Type", "text/plain") @@ -183,6 +221,8 @@ class ScrollHub { if (err) console.error("Failed to log request:", err) }) + this.broadCastMessage(logEntry, ip) + if (folderName && folderCache[folderName]) { const folderPath = path.join(rootFolder, folderName) const folderLogFile = path.join(folderPath, "log.txt") diff --git a/dashboard.js b/dashboard.js index 22060c81..b67fa819 100644 --- a/dashboard.js +++ b/dashboard.js @@ -1,5 +1,7 @@ const fs = require("fs") const readline = require("readline") +const fsp = require("fs").promises +const path = require("path") class Dashboard { constructor(inputFile) { @@ -7,6 +9,56 @@ class Dashboard { this.stats = {} // Combined daily and folder stats this.totalLines = 0 this.parsedLines = 0 + this.ipGeoMap = new Map() + } + + async ipToGeo(ip4) { + const { ipGeoMap } = this + // Check if the IP exists in the in-memory map + if (ipGeoMap.has(ip4)) return ipGeoMap.get(ip4) + + // Prepare the cache file path + const firstPart = ip4.split(".")[0] + const cacheDir = path.join(__dirname, "ipToGeo", firstPart) + const cacheFile = path.join(cacheDir, `${ip4}.json`) + + try { + // Check if the IP data exists in the cache folder + const cachedData = await fsp.readFile(cacheFile, "utf-8") + const geoData = JSON.parse(cachedData) + + // Store in the in-memory map and return + ipGeoMap.set(ip4, geoData) + return geoData + } catch (error) { + // If file doesn't exist or there's an error reading it, proceed to download + if (error.code !== "ENOENT") { + console.error(`Error reading cache file: ${error.message}`) + } + } + + try { + // Download data from ip-api.com using fetch + const response = await fetch(`http://ip-api.com/json/${ip4}`) + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`) + } + const geoData = await response.json() + + // Store the data in the in-memory map + ipGeoMap.set(ip4, geoData) + + // Ensure the cache directory exists + await fsp.mkdir(cacheDir, { recursive: true }) + + // Write the data to the cache file + await fsp.writeFile(cacheFile, JSON.stringify(geoData, null, 2)) + + return geoData + } catch (error) { + console.error(`Error fetching or caching geo data: ${error.message}`) + throw error + } } parseLogEntry(entry) { diff --git a/earth_atmos_2048.jpg b/earth_atmos_2048.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4275ab0836b482e4fbe1d5081976f3f2ffb41ffa GIT binary patch literal 512606 zcmeFYbyOTp*Du<`0E4>*mtetla7pl>!6gKDcMAgq4Ga#!3GTr)2@u@f-GT%X90CE( zJkKlNch36$xaY3B?z!i#Q&ZKwySirA-n*+yezp5?;c)}NQ<77Z13(}Upn&)RkDCOq zWqoX|06;|rU;_XE4S;|M05F0AA$|bp34ro94FF~!iht8~AeMiYK|++_0T4$36Or6N zynoX~2>NY=Er9&b|0W{NpAiXB<6m6=ah6w9QK#kQ6yy{F0A6k$ZV_%l5pF0gFOP@- zw+Jsk0D$vA|ET5h5diX#{>2Rq$OHe2{;L8+Km~#SDG%y@mKlWcA2Ndo{0@jeEiRL`%8X=29L|Ya{vt$6@rR_27y4((a|ulh_JCRF|o)A2yuz1 zp3qQJJ)xweW#nY0rDtcLq+}6dW#{JM=jW$k78Zx{igEJs^ZvyIgpQ7mg^5LmjZMZ& zM@h%~KOG)B0em#T4Cn!a=m8{r5Eviy*aOfYEKLZE}jEsT`K|{yDL=|nUu_Ak80~= zV*jDn5`YB;As!wWACLsDZ=dbH&yAFL+WMJP-YENI5$~s^lz%`0oKKUvhlcp+&_KrQ z55?Tp_@TEIF*H5eEqW=8t8u0KpVA9&;<8vqQy2$}M@IXHufgV50CD9LwQx0h(Cf)}P3Bl9FZzGBf;@phdX^iCQm4de|J;ljY zrHl5c>P@)+h@2W(zg}*HIJjeS3fZNSPiKs*`+S5#uR=$f$m}E zzRnJ;=o2$PmD%f!y7IU8J)+;&T6NN)szZXmEsWk^Qe)E$f8jop><~9r&EKB5w{RPB zzSSJ+aGGsw_4GLi>*e}%l`Ltm3epRGy#^N^kcBP7UQ7;{uv2V)gspN9106b!l=G3a zTJM?)C_d=L%&y<3=zzCjIW~=}eQkXNY(w%MEFO~gze4w)#${W2lKqzIAMri(^Pn-h z(;fGp{8Fn*AcwXG-6Pw|WdvtIU^&&V*RFSx3!r!%_p)XhbM41LX4%iFY2UQk00Y<>{$@MS0{+UvJZSx^I6=($jn ziq-V~d-?f3y;*QN5$k@>iEW2n^Y-;=z^a7nXh6tq)|ni=Z;nE;qn4GZ)D`(wDmi2c zTv%NsKNunA|Ei`sFocYIfOf|^RM~{~%l%CXm2>sGXh27QftWhmzGUiw;if{hj->W5 zvw+5Bkf5DwOI{Lgs}H*PLVP|FMEqGs>vu+bg~drzZM-CpED2_g0orRf_g9!@c)9E; z1J4rOTmlc9Y(_oX`7lX7&T!Gjf7aD3pl)$L_uHE*Ox-u`3z&TJGVjl(51bL9Y6C`g@L-rMJ+)_vco`0w(zYbLn}*WTF-6bC4;496?5Xt zmYAK5W=3b=#Pz4Vi9!FIqeV3Ld3FB--Lk+yxr99x4vDUC;~TXRjG0_puYORC&p?SF zz<{Z}Cf&Y!@WU8$jb}la8QS}-{wugvR1Q^5`X#p9Pj`a?o=!guy{n(U%Q8m|r)lqu zZ)JBrw>}UV2P+%cxl~iWMBfLm_y5$nA4^JEQ6qP<5zf zw)CYz_`@GApMf#6H+=iD@>~(SaQbB$h9;5un)M-LE1zvculUnOHz=h?wb{41dG#EH zOU%~6xTjlvYb{+50dqW`n9J%56ZR%=-rm||Xu&qz8{s$-DR@)Wp+TkTeXifA?dPhC zCoAJEcQik>{4vM#AidR7Wd|LUM3Y9&;xQi0D$g^EAxb!N(T5D+D!*M0XpjSYq?3?UQ08I%lX^KPc5pES!@S3k>E zNEF6%*4h53DJL&3sqtFPb!*hbz;w60R8^_Z-}^Q?O{c|Cv>TOimXrP*Bl4)gg*3+y z`nxvf!K^VBQfN4nYnQ#WFf|uoEfjGX)zD8eUt4y+Q={OY^Ff#bc1@r6b>_HH$neLT z$pTP>Q7B9vGM{U39^HXj#Au*(B?@08d+!WP5&2Bb zFC+_hNP6G*k8NYQ&P05EG%HL)mIy$k9wN=HL>LC2ED^|RG}(yt4X!#bbPQTrM1Zbu zgtxJ=b0I*+NEv;=f3r2~@qV#7B+4-)Il-lJaU3#VWUaBh#)j|iowTuvGidZ1%b ztAU)@{*IyKV_Du=0Y?Xlyeb>TU17F1-U+VKsNiniYGOOzeu;)LsyDum@I^(qK#F$P zk_)ezUzu@HY8uMVG?Wq7c(G5J9kd&d0Q-YLtgTz&aB*vPjJSlf1y-cmhpMx9h4Eee zSEElyM%gR%7k0ikUJ5AlBXRDDAsUgjWGcHkgKetZ(@3!m&5}Q>{Sv)Otgf<7)~;;o zo5`q$(D6puXagNgxO3+8c?qLw+;|G4gv!2fT1@x}cj}q8c>}Q&bZ`BO9cL)YIkK!{ zEvyp+<1sqxkrrjJlyNlLB$ufL_NWdT%PJ3whj!BySoGkK=lY(XEefk+GV1FwSpKjS z(@A~Lj()o&I7{gIp%AGMQ`!J&N3WkrLmQ$!GxL=kfPI*fWW8$fT zdX3ETDUHH)!1v0t}OI~^rF@lh(cpT{Csn}D-b_lmK>=|@FOWpW$NR$-(>vq0T zvGgS@;1Q_OvTs$kkZ+0G61TZZ#8JqxE)IasNj6bW7Bz)4!U}bREM+h)tkL7$P~V#2 zuHEWt)4wPW7vX;ufQIfU3OMbuY7EUw(|J8k+6-sCz($41N1|=rS6WR41KuA1*WV%shUj zkGFn%drRYlhinZqEo!*buAksj^N`PjE9vmhwnUztyC#v4RCs@OB-7b9O90SBU{HA>@wY`Y+;rWXvyk<|HKb+ zqr74OmkIX;v0Y8OlPGW`Toj&fSavf7p30Qb?#ie1pJ=Wu38!f#IJ<~7u(vClCn~H4 zA6#6Q2z9kSwb4;Nlj$QOfW`z*Q~uoRpi#OcWM{V3lH_85C;w{5b^XbLFsPRA^FI`A zSn;uPD>5bS^>kQ)U!Z#ssvpYFZ}jGl*_X0s7}@INujtpZM=rjHc9Nt4 z(E1r|3Z?0f4e>>e^9QMZ2Mpge2kQ;jquN*{#VRH`~_0@CH017(=juf zI1$#~<<%!E-*l}k$~&wXZj)}JW5#8nq(3IClsK$+ikJ!1JkBTby`*?iI{s+dQA=qA zyn`_(dTcewaMz^hXRD7uQ~r;JH)j%dELU~7*7)tD$c|*PX2l(n}pFFHZYAL`fxD@}mK# zp6y+ep<;FDhK4Laq06vK709}*>p~$Xk*pzwc3L7y|Da9M`>_9~G#^IM7}O@oW>>!3 zLX$$I4i2gI!yU>3E)bPqHXz8@iu=jm2rdFCQX9BK8M%JZEJ*6Y{JgA(c@Ky(plDv- z*dR8Re3<0p;^QVL&&I>UMTCpX$(_^G!r9D{)7;sS%g5A(i-(h&3lNj^aWOTwxAdSj zv$VE#5@-I^-oZ?3Ya!08E1<%y;_}?m##X`4&GMC>s+PH*y}7Ujv!n!un2(5$ql=@Z zhbgU(ql1&Xh>tk)-^@i2^k3Or%!op67FHsfFXaAN1aT$K{7+fDy}dcT`8b{3thsoE zg@w7edAWFbIS?f{+1gTXq4t zM485*Q28|IQJaAH|g+l}&Ji(#6f+ z?~Z0X8fg@m75*h9^1oCoR1%5MDHu`GU>?nX*O~-^FQ9o(q{S>I&|Y~5Y{8<^Q5SY3 z%$J$T`z7NxrC4MWyol-Kcyd!fyf7GUcLt~$UCit9I*&}4u102F1I#@gcImt+Tk`mNYuAR)34;@3Ww4|;)Jh^g3aO%zkW&=1uO0@B> zhA^4?dIl*W2OFf2+)iycCLt!<*d%xh`Gj4<%e6gV4uX& zDr%%k*UVdL`jc5VeB&6mv#3F2$u3R) zwsG!dtWo?v^rfnpJJ;Cm>6X0|F)eTgtKLsSD0q5E@}4kv`Yu>B)pDsM2LwfIsa)i- z$#V37)=u+JNGVL9XJO>*YLr>qRN;K1Ajdg5(Nvl26K=E}zrBS&4-Lrb{DU8gJl&uW z2Gf$}O0CTVK%*ofcN251@_( z_xY~Ds9G6OtBEEVna4N^wB})e_@p=y0wKDRzxpIFKPUqj$Rp(kQ_IS7?w|mPik*Pp z1o}3Umy_{oZ9)bpmJRuoFXj5LB@PlxwWcgD9V3$T23)%9C*S(+a+53w>$a#UZ**l4 zV+XK!14~*!T7aD7kqOxAi>V=Lr)-gX#Qd`S1(O;?-j4HA7g)S~1f-i}&ez!LI>HB} zS3YGCnZn7a(ZoW~#A38H94M&177(u}yIbEaw(%>etE5GBgA8yaaCWe|5~M^JLLNnSz%x(N25`QR|tCNHiJMB z>dlMVHnkqrwE1@(`+jTbeiPYsn1%~h3-TWq`XRe(aBR1*Osd8+<36iq#xO?83N9!F zOzVGre9x;1{lsj$wr1#7%T}iUE?PTkObaV~Xu~2Nw8E_hMH(_9!Ty2)^kDa@ZvNy} zgY1R=L;;~3KLU&Ne3hC?MAa|s^lKEz!MjK5N2sn{}BO5j8vuF(i17r&2SUeL-_{b!)ffXca=&_U};=#UZX@f5YD1M+F_kvP~&eM$Ne1kVxwsTW>11T0}5I+$vMb9&BV6bLj7?Ea%kpBt# z722!*Qh~<%G!OL+sv_C%32b#-aPtt%#l#OVhbdm<@x+xqCkiKj5#1FMQ(zi}{M&`w zKS&AG{G`(BnCLa-*i?&j9n+h_N1z=X{L>#potK&k4WM@44;0@=mli(0nLrzDu%4cS z!MB`I#H1=80Y-A>11T9MFAX-iKih*aT;|q6s`iB3G(V&*ukSET7F5TYMNxI^6&92g7K~rM z$j%#|qZzk{6vi1r{WH;E{3=g@)L_Wcuesg%ERM#a-jUegTy__RcGn|ptx9rH!`{!) zqNSR$aBUnhg%Jl3IYq)%TdvCxniw9ol!z}mQL;>r`@tg+GzC*wlR`^yb92!p>o0Nt z{bwIV*G$Qc4C{9U&4=xiF&lI}!6~BHh3zjO9kRk$Bmzsea!fwAg`WxlR*o8g6bQ+~ zY8oB0Y-!?Fh#C0G9Ij|`&8oSkb1_CiHKR@v!`fQNCd3Vbqbg7Z|HjJlx0t|gZVI17 zCaEpdDDBiz&kF>4LDnvLM3fWwqhel%mMxwys1_rEK*c`V8xkBNu!eS_tu1*K5hP!PGvvodhHc5&?N1ho9xcZG}2NweD{GY({GweEzj zOc0>N!sUegWA@JTSj~@di7$(~eMAk}U?K{X*d?`M-W00B!jKq{ZK1`RlG-Cx$cDHL zdcaF?R#KJ=Hi)c6joX=X4QC4lxGB<~QAF2$zL-*n4eYMRv;g<+_bg~73Hh2ksK>!s zL6RoUxqDJ9$s3!h^2hU_m!2jJ_J#c>U5pIXh% z9!%T@Yq&xr#K@d-H!$$QLff3FQ=Rc%ue#{06V5Mbf zMLX&UW4)^CO}>g(ILB*QJ7srs7PBB3Sl!3AS4LGXe0{FjERtGlZ)soJ`Ua)2cvFmf z1TX5UXN+9Rfoyw8(YOS(NYCKJGZGG+60m#_#Cqi<9>I7Iy`59S)92S{&{Sp&%l^QJ zhY{jN^ad10iNp6RNlMsJPw8h5*#fB9W=y{I@|TnfRb7u>o`iWKI^$dNF;Oo{bzF?q zNWjlsO1*vZn5!iE?20HuPZ~e%9GP8C;ngm7|61P$bPPR@Crt$By}et;PKINo#@(Xh%#l?Me?=rDQTmw) zj&G6PYSVdAChQqkoek3DpkQG9RGrtR%-s_IBF+Lqb$)zk&oN_o)>6=fe+=QdL@oJ^TFj!cJxX7tk4kmxBUNyLgH!P$7nkYK> zS=a);A?5Svcr6?7Rttbu1VEs3mw zpK<`?4H67#)X%aXM!l=6Jq#J=!s9&Il{d+&{^-qZ_)PiO(4SM-3ZFyol#WdJaHO76 zkU072v|3ku~R;oQzFymP~d^xe!O8eZkK}qh6FJ&V{Fr_~e*}@4*Hf>c2pDr){I`gDYT<}Dn zUNm#dF-AfiXEnrJLXU>)r_Vyy6;*q2g4H6m6p9p4S8$;h{88cn?os95 z7OcH@ag!*x`89Db;QEm1U$LwhpeanU#+uLBwQhF2GE|s!Uj3dZqmBD}EMMs(UJI`0O}J3s0IZ^JhHBfpz}o%s*+46IU!i_P*MaqQX0K zle!?^D6)v{_2C1iw>QN+e$~J`5x(+Df43>Z7Q7tOH7cP;K%Uj=L~OG9VJ^2}EwGgW#D3AidZW?J(yDXhD7l0|c1YE47w)7G=dZqi4=KlFtCIdT~ z{S0|oF~9QK=0L&kV}DlAuZhjV=uZ~SMV}-62+blj;-2v%yAG1NP4kp5cnbvh|9Avq z6w+1|C31^izj$C=6~|643t~ho?@d&0isJ2w_hOHX3ORe$R^>7p&AoNst~+pm-Wo(T zw2s$ySIzHmn7TApLd2((U|LX1GT}0URrFez&Wb9zayZ4(dO1YzwD(FzrJ#>W`%dkT z+qC(~t<#orB;A(;X8ZVwI;OdF^c-g#UU)+7>*t|&Uy7bEr%ly7ZyntYjNL0nI1s5V zHCH%T&GD~ghIv$ADz|68@2_1-Vn;hd=5?}2*;y(Nq1{YxrmEddBIt_p{+(ixboAyn z_u-=n=>tts;l1{>7ryuiHU|1NyQb_;;W2A;Q^&yrRmy78=sOB$BgG42dFyb= z-}@a;=c%TaZX9!rNZFXYtI-9YP7FN#l%dEobI>F9nSO1{moNfFI`}3gTkE$(zQr%% z_iRvpq9h@vgjZ=$2;8SK**1qKQSS{_jz0zS0hJ!T*afpa03}Ib2_pm{+MwLr&2g23!kJpeP4w zP8~NHs1a4gF39UZuQxK<-*f)F%wt)3%?sn$wnblZ6Aash{p^(%AA{sw)8esZMrGyk z)Ht)UkPE?9&xE#zSGL9BtBZLYT@D=IDxG$TwE-*U;DtoDoz@GlItFMa%}}wQ;NI`k$StU^yyp#T?xx_|=$lUt19*O(^$W76TpY314tl94j;BPpVRMi@A@@jLO907>2`+d?%7O zANO`wZe4YP#lIFdC&+p_Q?5}CRpu)cMs=Fz@+y?82d@aCiQ(t40WFC>1-|C;@ugPi z)T5*DAt5~B<3X@Qo;otiv`j2w)TdpgtV$)P%Cu!uIC4>7u4TwT^5(M);P?O;&3Z^i zfh{~-fGuQ`iQ`crEn?B2^8MCWGzvKvaY>9AvL97CQ^M0qsX-W97FMbcA1HZHge=2} zvT`=?unp?;Z0C3vpI;fax4++8G3-P5yw<47JbZ_yfoslwJ_4@%`KcMiM(8fYEnQ~r z{Z9U;_xorV1JiO}2|i$m@)3Y^kR2&p+;e%DUHX8oaX{jB2=j)iVTJ*2XseO>BE`Fa zl`{NQAKI^6B_zE(l1F);HuhQ=tBJqhg=2)#chjBv=kbh5zW*+KV*Pr8_-A+}d7X;9^*> zSg5A^iRwV<6kC{CxuQ0sJ4}(*Yv*o))I#P^Tdz!_fSl$7!$sbc+D(KHnN*)DZxA~M z=*|X=3JX5gH1a8@z@l{8!xF{MS&x{XnLu-7;LWVWr&BKsr^VxgNkO55KM{)uEVgBD zm{(TJd5F00~XVSUB~?Hs;j zGhVH2a_SXADJ4>>Qe>VGZ#+J!7gqz@R;Vj`WC)kS6i|2urm?tr?yGjsp7QsM^*7Qv z@*uo&A{j+GZLi-g5XQ3_v$fkh!@8D;B4z#8((I`}I7@6@w2jeGdYmT7lWKJo1);*Y zz1qeDqwcCV`t}05ahjfAcE?()^_*-hQ*HC>W5>i!7Yf5yM7EzXR1Ce#PGs5872Q5x zA1Ej=mV^mCZ67lX!RyZoxURdt%@};im{B;L>96c#9AW+cBWBXI~u8@+}m*OS&!);7T_s8XeRN_Mt6041RkJm(_0}53<^`yWX-4fxjpev z%r@p2tN{z!a;op|Xe(M7n8q~%4CA!Jp9Mabi~fGK^fbZQ!91CrPp%Vqs*Y9lBP_D| z5op^@VhOnU(K;m`c{{8#QHCWkNKC-{3C0-XjG)k^UXRmApS-DMz=bJ0bjroK>@lePjgAog+? z2@6Bw23kix%>u{FYFId&NcPYy zW$I_@WU4(;t+Jm+2WR@jNrtQPHT-TyzIu)X{Tz||mi6uOz4l3m zf}^Nv_@}cZQr?lRyUKLm`bG#tj-xD>!)OA&TGG2>mY1Y5xFzjZ@s7( zVE;uxXlr&d>h_+kzL!OzSbr6b%z0%X5*lAwz9lAK7~=73&34z}>@UA_ja)eCw`Yo; zruOUFH)n|WvcSN(Hsnf%HP&v?nk zg}dc+Enw6*mk!ln3jp;I=!*yz_kcG~Jp#@B$E;Ub}BTe*()mF}XkFLRdUfZ!W#t$$f@a&RLxa)MC9 z2T?DD{Fm|RZ%}-9r@l2ZIa(%qjGKDw9rMiwDqCYMS$E&t*&1Fu#W9jhGe#1%dU&&i zVih7SGWb$*+K-(StsE8q!FK-i2pnRb{QBr<5pM43TKQb;s#(w${Hrk)l}*RAODx7p z5}&VqOc387PM(!OKT&M^Q_yUtT#dgCzeM7f_LNoGVIw7ukPyBm?&qnJ$Lv~o@*w!L zhCrIYF|~>_=(R!6Y(zz)iiC1dM7EG^@#}=mn`@kTGsJ!uZ+V!`o|h2*;LC7z>0?~^ zr^EGGZOsek5cP+pjt23EOyapuv%H3eD}?-9lq5QJDOeq@I{a2fHMC()WWQk$XP=9f zd9z>m@G&_1iP>f?ZQ^{CYhTRr(~qT zXk!~^TA-(`XYGc$BW;M_yMd|AKjOtQ7G6(t-9cf4vf9R_3?eZPX{VXh{LUCu45glA ziO*co?)WqHb$fV03xRXYBW`jo6i%{MdfThCB~QCq_i0E(3W@~GXYQFR))x<_f1U2Z ztq4SgbsU@!8_m>m|Pa&VuDIZy*Sf)W15Mc!GS@9#_Ay{gGJ%WurpwoUSJiw ztDg$}`JAmLcEtNx<27%~YTf5wCGXorKG&W9CbxV9N^$i~Y_5$l=e%4lh1AAIhUQ#|;D`YL*8;&ibM_@c@sIZdZc_8mJOZSP%SmZrQ~-@Oof1T0V6Zih=HPv_!L zdYitWP8P2gZ8tPIeQK2fDu@y&>%?&J;aXle)guP&Vyxxdb<+)geAOK`oRK%RL0mn7 zUhDc#K95tnd(6&#WWP0o;7qCDOA{uuA0fY7)b>VFI7g#24eNIN@?~tCE%gy#NWAcT z1mtXPvv`c{Zu?>#%)|Y~x+n_kvDZECZvpWzEo5a4dj=zg!i4P`Bvv^v)7H_tU?6|t&)nW1 z<~rfTrE!VFb+iW6{KG1l;es}=?+={Cm=r}1G4cG=qV1x+R4XTHc28sSBSO}=aM&L% zph39h15>MiXiluEjxV?_oR5B=`fm#Kq^^peGN>G^VwtSi8Em6fIwsEP#A=~$oW8)9 zGapz+`cPo039g@99nlQNyu`a%0%qw)PX8q9B`3tnA41 zB$>yifSmSoBRVZ+#KhXyugc`oe$Ci(<+S7&bZ2>)W@7jVY^sIboAR63CNM`Fk>DSk zjbt_TWLIZcVssKzmi99eHnWNA`B_pe-P9+azaGr-zIk;ry)CI}+g3CeTEez`n7B07 z_OsnSkf?VtozL2@{6+AG+$WSnj9_Za#GzH|MEs!sl^#nS+U2Cyp;VFxIj1y06qQR%h{k6WE|`HdL=MQv1rce~Lvoo&O*-XsDkv z(MWJ~x~$Hc$)2;Cb3PXF)CZ+tMycNEBP$gVCoXEmQwnFg1v~0m@3ttf`28r6ptRLw z*F~?g6B#+FjGR^rx_U=11Coo?k{Zecw0Ta4xw*nWiDv(%n6j*FW4G}lS+ah4xPA~X zEu0}mAM$1c=_}bOo})(djf>oBxlC*$Wo3gi-l4`qes`JDJ0yH7Zy5_PK(bU?-jjs_ zCa1-@sdVpjieX<3nx1Rs)f+5d?03ba7b8%ieA(W#f%j)`tPqEnJdliME}VVws1egq zMxdi9h?u8at}8jjKcukicIS##$438^+@YbPw@UL|!%nv5A;^`8R9(^Dg=jm9E?rY$ zfEk%L1lO-oW+aAG(uOQSCUpSAeIN8dE4FqHdaJ+DeMIGLbP_;A2y%kR_V0=}0Dr5e&t|d}=E9=>dwI?B!Yf^i$ zL*4PuoC%F%eyD|(*xpXrIZUchlxZp{Zj5fG;Al}DMT4FyE{~_#yTN088*F*W+d}2) zJEDiK&ZfkrCt76W&hengi9VFoirZqiDaE}h&eZ~qd_hHOC48vQ@zPwauqXyxx{-e? zHK_)yc$L-g-wRc>O$qUMGOM5s4VXUy1IF?mG$Tmcu93x;!@iv_$hc@%!}d3+M@H+5 z7EK1rQ8_Tbm3k%6*JZD(3)VaWD=|ZXxWuF7{IQsoZBEzvn8gdL#lLs_qjsJ$F0 zQO@Ry1YRf>G=9#(L8{(RymbD!4u-$TX6I36tCS#9uY1yxY4+iy|C_8YcQ}`s)EgMF#4>mAM;dJma9_A>{@Em zy0=Q}AV%#HLMBoWc^SzAcYs{S0fn+CJn`#hA?;H4S1zP;LgXkf%NiP+e93j?lV>Z(OFJw4w0*j?CGol26v<~2z9yamHmUT7I_+`4wwS*PeWIyC zc_-3X)Kff%zU3?Lp-OB*< zdCyi~PRO10#Xe(8MQa&0pRfo{Iv1coZG~v8K+k?RY|ZBJ(SAM2^2RCwS_E{4bJ!Wq&sYUSZT9q5Q6yKYis6ZPSV^GUi-{|c7y!oZrH z_&4FVWp|QQm+MQ)^3H^2=$6yP8DqQobQHa7!SBV~m=l>+ipavf?n?N(MjD-?mwt8Y zW6xfG&%fe<2&o&{Cat06BOj;IJMu5Sck#v=#fYh|b38Zp9MGu8onCJwHTE=7SDap@ zn&!1jeRuznle{3p^CJL3p|*MN<-l0@yT%;Z@_YLRRM*{q{wr^QYE5>~{9CG{iE6$l zA1+y*wnE1?G%`>$yPL?PH);nqC_hIj_iRv^+)4ZqxOrDK>sK`Mg>_Z}yi)Y;+#ub| zY~<*)n}`Q!9+|`nId3kG`10=5^M{H*>xX{C{C+_?hdCXGWEa^c+YmJaJ$5g8ObvmxvXYlN zT3E&I$j2`2s(tZBbmtJYRmJQi#6HCNa*!EIK4{9osU%N1;NH+Q&pvhFtBPpp!y<8? z^f1~dPV?0D(U_ktxkI?|iH+h0sn_Qn8*LSKVwXh+;;tw&ejny6XE_M?1csLn{ThI(Mv86$pA39T=Ofm$xyLuIqeh#`Y9TTk2T&m=#kYO_gV1 z!X#&Y_q_G&D9VuS3qz`g)>qu)y(8|e+%tcgO{>;Z|1AuIOQ$sVe8e*HcqPfO&-t}f zRYUPX^~)SuFfAYbX=v8>4<)Q#e9%I_Va?ggSiw;z(+Ite}rr|*g}IX8x|8($2#~G+g8!3 zN2J40U`ObQ&L^y<`Itn*cu2%ERsii|;7j3XIa*$)Q|)mqRJyVsjH|lSzuEfIg2sba z^7kKVb7-e7#kkuQEF`U_ja`a#@wb#)zeun3Bx-G9Iqr!Q1dbdpeDXeFF6L@vny+5E zMSN!L;a}ouDR%s{ZpZIzkvcrXp)9?MbYorC;~`%pPHnO(XqH&(>Bx{(ieOeq6`fhh zN;P`t;D%0;t4Ko_$Eh9fd+H+-QK#b+_z>bblBGDLe z*~0=28hgGkr(ZOyOlaiP)WKrp1^8Rn_{TBvfvx<3T+{~MX0^9-;;ggL&Ef(dFD)-C zB)VMfr>~QG`^$V%!ub+%{idu83L5PVbaGE2FAT-a#w;7!UwDUXiNlHFdl{c+SzvMB z!qKXFC&yln*@_4>r4zX<$kfP%f=Jn=z~Dp`%OWrOWjWvE4HU6BKZ@reJMJ>EaH1$3 z7MPYgQYjgLgP1+$J^ioz`2Ke8qe#kC0?quxDGuxvDy5qNYy&mSi;=$(ZjNl=cza{e ztgbiV%6_2MRpgmGyM~(Gc{#5)cHI`$K+u99Ty^V@xd`cp<{i5x5!L3Yr^k&I>6eb` z2Bd_YztB>yvwO{Q?3>=Pi1DP5l4-QS1@m$ct8fVjtMbS$0u`QE`5}@TRkS7>80bmq zwxV3d^t+mzIG$~pzld~{kXyZKQ;E?MKXJC@RLiut*~`yl^SCJY*2o!8(xwS%$&HKp z$fp$Ky2VW~VCK8Pw+}H5_mVS1ji{__#1`x3f8u!D8s)T|{7j+#ncN*l_GE)kp8^>p zF*DJ|=PdWKAd9#NW1Dj!Jp-dd{FP_ywF1MPaQ*I7`sHt;?~&A?qUj23#JUZB>GH8L zehp53q(|o`dnKIHx>J5`U0mjRn!-7f_!BZ8U)cusya6Sx#&IOt*-A5fDn!RX z`>0-;$5svlz%YO+%*|mUf^wV2zzy5glL}|-r=^gfZNS0SK(RuqaYED72-LB>2g$IW z(t^-H>1As8=qHc+x?!yAIqpjCv}E!v;{>3y-c7J{>CXx3++L_G>33!MXPMhH-wZRk zE?)eQNF_;&})l#%VV)sfQ~y*D-2ZUlm|@T5Ne+O&d~1Yeh8g*OszFuE5=;a&7a>=mJ^2yr|KkE{wCCN<~loQ`ibL? zVE*u{Y0GTJ*rF)C%0cmwUfN7r%g9r5y~3(z12LjXywh4E#h;S)Wpm1G#S8sn3n#^s z`WO`xX7gF(u_&pETo?9;w+kB6#rr-gtXam8cws=??DW~E+ak7@LZ_d2+&?d0>tW|m zSLCm)afx&fkx5kbYU0LGs-cY0nW0z^*4XHX%Doi2ai5%6m7Vr#UixxmDly(j0xiZK zI~j4`+^%;V9Qd})^u_0vTtXGMRDR^)>wVj8{ijQlOW{vW>=!ePON&3v@lGv9f)`i@ zSjM9DEkJ@{+Tvd(4zvWte(_m#Oi4DR8G6baz10 zO2<+do9w6a)~)Z%Z<4lf*#E+MXP7ON@0Y1I-*}ffSY4eb;uS|2Zx-$IRB=nc1a3wz zW9H$LPAR6ONVmJ5?lCt@UzthGHuF~GvM1xqSiNJl9d`uB6WOa0OFTG%U?132CS+k} z_g?XnOfO+-ll_y3SCEq|U#IEnYh`09rAw1#3!{%;UKeGP^k%hexII5N{7m*Uza;NWRv}JhVRWf zrQFz`U~Uty7CsRSF4Z42cSz+BxE(L;WgEhjv%cf2m+O@9j@sxH)#F9MJkPO}{}QP7 zLetTGGvHI&nNzmz9eB~k``L^!u|&3SNnsglDxO%lzMdjsX{M+-8X|^tRTi@?Zt*_|xLNGPo+ZAaY>3!x^0y9U3 z%?w;7#`y`}8v6Uk{5tBLTE#@ocuVz1W}l@|Z?A<{HV8Y*8}EKs^yPk8J9Y!r$nimI z68ZEYwfyi+Rx-ci(~jZuW%*BSp;rnA@WLsp1AEns36E@~E33p^k2|@>FK=X!E#0^J zJ21Z!^bL2CX)2=aCVE?0V;VaC{_fC$^+4t6{Oy=e|KK%zPkGsa-=`=}t-(gGjIh<- z-x+)1x1O`yITBP8MX`~&rLVBcWco(fL_0v|CS}qQ@5{8`@T(7_k}+?l9jj@hA+kRD zj7_!8K+lAE9;6p=SJ)D zR^PQ93uC`h6!=8dkT4^g`<&|*Q&Hq%qg@I#2Z_Tcrz9`=Ziv4tM>b*;Y#E=aJOW$y z0}ABiHj0eRC28c0Nh>pH(vnkMiN5YQo8#>~x#G+Is@1p5vuxcm$o+ zkY&_%j8h*E8EqY~5)$as#?pT+3LP#@I`UC|^<&k!>at}1w))^w#qRJ$5dQ4@O4vIT zVgs_-@R_b9A7+WX+l$hI(3CU#wr0d!xPEZ}9c3JTt$qVPRD7DRYfJY=FobfWIg^$* zTK?$+AA88#EFb)wpElb|gwKR|+A2TyJ+vY_J_6p!zo?DceraH~sZ?iDwSJyG3E+X9 z-F$jd`$mUf;SYCJY)|4DDprXZu$VeZ|HnW(Y|B}H?zk$xr20V=&fXgW zW?NiQ^%TY=E5;}Pjk&W3iYx5GbmN}jZh^)nxVttk!3l)m*0>YgfuvsJD1E;Wqs`G~QdW5@fg zlAw4a(=;>D^?pZPfkY`cCqn(wXqeHq^`9jv8m4JO`xR%aez%9vk5!ukAUgR3MiV^ zP(aL4KoK1M74;c~)->RIwl+7*`iVhuubljshR>rM?cq=cpG|v}+B?2d zx`Fo=+7P)_z|O5>2Va3IEoThD6K7c|rXbp>Cvm=R(Fph4(KkFk$*SdT5WS>7Ucp}a z>*%+&!ME7Vb})aBjg_oaDRu^kAQ>g~WrAw}8$C34n_+6dd*qT!{=TdGWGIfk?4&BM zzLnM{N|bBteBq%vb1-sfMSgva7z9%%6aG#&UQji@qn$FhuyVU5YVeWE$1XHbOgg&?_1uhSs&XvvF{oloC1DZ@t8snF!5~#qNO4m3el?_nDJ79Z%Qzjd2zi; z>Nq1~RnKBo#xp&(p)5K!tZ9dFMAt$>|e~HmoWZ>6~3` zvP=&ZT@ir_S*nIQnViQ$i@U`XfZ~>H7QP@}h%>Rh`Zjs~2f+3TyCd;&G~n0RFajRC zr^H>)M|`67O9K&np_G$J!`4@J`X0#XQOR5x5RfC&E;?#)l?ysj&7O6+!_k|H>d1kcU1pw@k9>I2cV9VV4|^=jb~Sg{ooBm!QJh-9 zy@nc&?J(`a^@k_ZY?3hxetFM)5}`n%xI~_IOBPcBePSsy>&*EFQ0bbla5Pxl{=j80 z&0Uk-`w_FYYa27FCkQopVLi}>yEs^3`fXZ$`!runzf{7G#zz_{h(5JvZP1RwHWUX2Tr^~A@@t^cJ#y~~zRqVc=Ze4b zisKdk;rguG(_H!wF#n}8Useb?`zzLju!yL(d5(9!Sw9}Z(6jZ!_IC`_wP1O~jPA#2 zl{6a0XgxO4EwW!6e6LU-M!n_?_fFp^xjBZwL=`rrdhzqj;67`W z--y3&rs9KPdHSAu3Br2TgbM(0N!;XnzyQ37F=J55&%OHx7+6;;wEtM$<|&n_-P#BO zh7+afNA{2CNYqXIB*;e)*85Y3LiQt(SO2~IU-S6#3ZCZ^75Zz#=z&cxed4O0O%J$6 zD0+JF))`X1ReLw;b3zMM`BaP!S_Bu%1{~5do8~$?qWB3jzW8n@L&ECgfQN4c_4+X6~^DD)b9gi)h6^ z&Y3Vx>T!{slQEGcU}7DX1=$G6{Z}fy7&af-8`^&)tM6<8Q+9L&_b|Vjk-<5wUu9 zT73Qi=p7fjhb*3a%RlnA(nMkLZapg`uQ=H62g=YAtKm#(Wd+5UA)x04b+yYGB!-t9 z*T~TjpDO?#&b#H;%d)>2zIp;o!{6vD3f>gv;Nb8F5{`D>3mas1g>VFOny#*a24F4u||&7UY;gUN9v zfM(RZR`U&KM2ifg=U*b)taNPnG>$s$oWDAgW6P7P*wb;H8^3#SK>*~LoMEae93&ma zJ_vGWe3N;}xD{*mEgv_WlvcCr$c(l#42#>aq{eJhz#q@TwE8;bJ+jj}j_xp7kzBjG z{EGZn_7TO3_a8v*PAo5l|07LdVJO}gR)wUR24{Vx2*KU55+G(4W0ipwCCk3MW=v~$ z;#%8BSlEMFA5TuJaY=W}d)(+~hm?8zs^3Z#6+2ofb)%Mb0d zJK@d<_1o#e2vXJZymhE7w*JzKm3)f84~UZ%bO>NyU7Y6RSFQm`PbI=LpsJ5oT{bSN zoPB6ZiKosS=3JSi3Y_vy2?uTPjlhtc9|L7)KI3WZpXa@0Z9bmrU)+|Azo{*3?DX9k zUnsXHevKmwMbiBmzR3R_^FDTg41v1Zv)o_gIn0})OD%AnJCi0Xx>%Z z7OW&6r%s&E1@f?m8h((mGCXF9-s64s|;%i>j$)0(7>5Sby0va?$*jbt? zMdFc}d=hbp=tn}sDWOh=x<)}DaeW-~Ub@nUxuKrTJ11p#?1gph?Oj~cuJhRXiu@o? z>?1q=xay9_9ANv-^BT;4*ZD5Nq4}BOGpQ);f*-}@82ppG;);PSp8l%Cm0NM}&IXIN zML*~{pOTgB1nbreR@#?!o8=3{zSP3o3bz+eaez&$!5?j{#b-MV|u3cYGZAV{TEq>o?7cAx1+ zljwd-tk$c_tL)U=-$w<4j4mt5xyC!2*gZMe&%#-HQF+N-auLCA;+?naFXWbArJta? z_rHdohEX5<1JZ+#4u1wbA3=ZZ@Wad%Cg00ue~c(GI3O;hg6U#4;+SwxWwEyAX;Aa#Usky(yWAU~XI<}Zaay3@8dcGJ$XdeY%_ z*u-&_W$V3;jV{xC8^2L)u-f0LRCiy$4+`pu5%0xU`tN(J-fspqe!qS@l^;D*tSsDh zCtnN2Ma~7($JOH#HD`#`n-x!6-JjSrVl;=7eIL>e2HhZm!xU?En1=X$o%L}2rlQLl zrys6_Hl@D!j~n#lsvpIER7tL+yClyfi_WSmt7ZOajw!M{LTvhuOR%a<`5z!5qg`lI z#eZ%SmFG;tjYw(Y9?xRJqsIEdzJx&3k26%~OC(9!E50FTBayl)4NbxEE zPD>noG=AdyDB0`lt*MQ&`~zr}vyjwUyA#Oqo(KMaAjbbsL^!IiI`PSw=8}qBrg}DY zq;u=8Nf{gvGo^>JtLsOesa&Qz>(!Sp4QgEVuB2l>KLG=gUsd0s^0$%3> z@EzQ|-Nh1&==-Mh5$SkQI&h&AG9{ygBNMK2dOvzu$G-Oj*Ad_^6nnnDgwr`%{{w&y zM46s#pk!aLNOKzboL5^9Z^Qj zLAyF0i263;MG3A#K*j}!XF4b`>_=NEG75RS!9b(on2>Nyjli*5@+F8@A&Lrx8Sj6f z9lf_RFG_zvSX=xP<`R~lH!16R;)S-CD%xe1+~Gycspd$+i!Qm!qeb5@~!Ct*{JGTKK9=O^1CCxw+uCvMqwC?Soutw2R&iQRVzCwuiH` zE4->(yKJgYk%h-*tlWmi`bs?LwGu#YZU;!{BHgo#oTcvvkqc^_0ZCRN$q z*s608gCx<1ig+XfvC6_S9R(Rs5FyJXgC0@&SZRi(seLQ<*Mk1U0vN$gZ|REPmiM_F z7q`+!I$<`c8A2+J%uDL!-6!OGkhS|FY#9yQ401xT>bY4$Ew+LLN#7oTP;cKx!vVUbmlIwo?n(@m1CAxu4D_MMc;rH+60J@iwN+s!WPtDc&6p1>dO z{A5K0(mETXdAl5F;FiY>K#RH>sVh6lme=^p?cdmq(fq$*96#(EPZ3R9`gs2I$9J!) zW-@YATqMvX6BN_|EVQ(3b#k+abV^CXL%9yy7tJu zMEA~kV=O>ub4{+QyPhyfiS4nNC1dG~OV&)DY(m3Fm~RSph64gkVljC0S4EWy6_D8!Qe zY?OTf;_u(}+F39C(Us28*N*Z6mxO;8pNS?^9i>d@jp4aG8IrG(Oo@6RYG2Pl9kBJ% zM%;bp4B^|ofj9}C;(OcD$x;*H@oCDtk}=AYuq7j@a^{E~Kl{xbGP2eqUSJ%!rh&9g z$g2}UCc^v(fS_QwUXmUH>v79L%#ZdI5Lp@%3Y!Ttfvj)J9efn*Znfr{HhxA`eWRZ2G(ps; z5{!YuwU*C=_ov!OW-e#s=7qlLE@AeQaxcXhIuK8;36cj;KP&X9*@GO@^^d0zX#e_) zo8!%2z2nyHAj-223@??s59&RG!->~i!|2HS<6vT_oSj%DsW(*=Pd4AZH;@k^b@Mne zOB~db7zv{Ws0yydNm{NQlQ!70j<4IMoVl72rYSJ$L*Vybrgc9Ebf z`M(lnS;3mP_P=s`f2^|%fS(7mf{po1MT#c|7*$c%R}51%%0c1E;o1mI_y95g+*mMe zRuNBsf{_)nAx`!#8hK&1 zDWY8EK04Yc`g?nb8f8Jw?XMMJoyhV#WPFpa68`|*Fsb#-_cBe{W)*Aec5+@7=~qsR z7Mi+Js20$PG^hYuQUk@BA(?XWjJ>DUF}Lk%X!DW^Yh}yVa|R;ZIxrnM zqd=|T0`hQMAxyqDaCjrZZ*RwMewXqj6Cd#c^J)dahuVKTsyq_2@IG}$*9lkL=RV5I z)*p8zE}pSDoaGR-H5)Dw$$6Mc1IY;P>#A9$8Fc{NS!_;@pNir-ScHvppIz>%B8spO ziU^_7`LguSBWzj2?qFaP`c!mdf}{1k_;-G6f{qEwRxt=abaiUVb1}D(-)PkqUP)96 zcFMo%S2MPu#Bpg3uUTT5vWH*FhR1@8E-g2rnBtJoOA4&3*Qh0$J5hQQi9u9RSC0;e$|WTjt8&1#~e7kW~a#+Lfs;bZlu_EC`W_YYICF}TI^~jUk>(#hE6Et?OebQ@t z7X1fMK8C5zSK6D)8u2UF>viaA+l)a!6J#)E+6Mn3DP%1akz0r19_jkM?E87gEOj5# zF5*gs$j;xwJ-QGz6%iB~=|T$Ssk{cwjFy}fz%XW@EN z^8J9}T6)814vwE_=h#{senPTWs+}OfJ1RnAGOQ=oqswYe*7@a|$}so2ZFj?$!F4BF z9Y5JwDjeQesUh=}{narQt-{HCPO_c!N}!qmFcf{N1u=pI!>}L8uo?zs;NS69(|*ik zP&X72mA7^LNJiY|J>pL$9Es7HNsiY|Je(TmTcV4?BIsIUs^=+oz>u3;eOI}HWa&ci zd6%&-*aa}-;Hyg(r2lEB-Q9Tm=k})5Lud!)-9*2gxbq1D;u7@W)J#nyVRT6B}a4>2&9Ij z#IA|YuL+EaAKT)}Z9y0DX!lh4uOx>Qz$hN`9MB>!XmW6%{!C+}Hz6qrS_{ld%H_5? zP@+v`D3qoB#kCs(0o+nHhRAi6*evM?fd`A_FbwS;Y%D^da%X@PZ)J#Z8G$8qVnX6; zifE5uzRAw|hs#uh8TVNE3ZMA0JHJnw?SazHc8tMFpb-+})eo4qEfnF4Bn$!Hy-N~& zkcbua}fn=O13cfZAVVaZzqpFxZB@IvA*%0o74-Ylk>fW43gzaGl zcA6Jn37}Ahh&sNnWLZ984^Hn1!Wg?w4*nA61~uG1oDt3XId3V=Hm5pN6~Ns~^<*KF zNJgS<*EWYV4hws&##UxLCU#Es{&MdMnJ4;KWJ8)<@h}rJYF}3!lMmP(QoR(U7?dXr zw#jst3j1FaVW{gZd7KZ;@wRbSGS_V}f%#nlQ%-0Uhgg;m>I+rLv!m!Nk~<%o-S{!6 zsqtC3ykyKDSW#(-_bYKS+1l1o$2Jt>sYOJr)y?(`GjrbnS@nE2(qp8{Ml@Vq)-_|s z6=W_a5+!kJGq&~#7pZDn_+31a^eZ9<4tf6pKNRr;e?|D=FGNU94rDdLS)Ri*feSv<6}PWp za}399*2;^E$3~$z>BO+#aBpjCgv_nfcn}sY_g2mNF+aO!W2pYo)-9Es-OX`QGB#hS zb<^US!fuK_N!k`J0Aon61_33vN-cCMr+nc0y}|46+y(}tjcyf#6$Vuv<(g5#91;GH ztxiMUBp2lid$wKYf`D$523$Bx-i`-$J@#jPAV9@7_Qr;&EV!tje0?p%4po=`Ou3kuCz zf~H=A)@7`<(`zCe=HjoQIe*FSB58krc`p=^-)&_lc*fS4)|R6w#UsR4_~RYG(h8zL zpZ!g}APmkz816a3nYN0jwn|mA6*K96a;EXj<6Uk&SV^t{vS$i89X1nDFTLK^Gz$ED zJrPT-&V>dSSX~meyHx6K6>#(=&X0;`=JxU!Wzn6_LoS1iDastHpPq3-k;6-ntjk;n zmcqKfHM7oEU0Ia@sw|3AprHnp_0-`lbC8Ez^Uh9W4C}dzZYr-ums2pq)HTs;aP6$W zh6V$!jP(invJRNY(*V2gxKP4*F4lzK)(QuXitL`;IFGIrXp9W?Bk5BoT4T*p)G)c9 zvO;xH#v4jerpebXqJ`Npy^AvtX(tWDX()IlTsq}ff=;j>vQl=qi=juT$1|e*J3g^Yt(p3 z2t+0MsZ4f}iV%oBQVclePqORUGWpY`U}*_)C2hIol11Cx+s>m>$<9ZVRdN;ur~@N{ zh%FhFm-(&ays&aU8dY^%rF z9VRgcbvYBF_PUD{iBQk6x{}r0C%vxvcZk1LSVN_U6fCr^h~p(25dvDwQW~(h9^{VB ziUQLRHU2iS@*B zfUAC#S}k1c&@=Y&CRGRAZ+`lXKuaOtEz5LMNI<3AdiH6Vva+Lt%3sJ3e8P;#FVXBV zlc3;Ya_lKR$R3LD)>7Ntz4MG^j^~ka((ePiaA}fun?U*9`Y!suAymzBa>our9a(^5 zS1CIV{-%e`#WSZnN5`{&rp;`I9T)Od#aD>ntQuNE3C(6dON#LKIBx0>X~>dUN?2F2 zpQ;pY->(R39F+zvR5t3w-Q!!vDKVMXC)Bt(3Necsbrj8zz#2C^b!6!VF~BTOUGWzwwbph&*%dWSseb%c9?z z>^gW0X8WHfNpC8i-j_7AFIP?uSl-*sApP(}=jWQ{l4UX$|C>}oY*N(r)M~`zGT&N% zfO3ZO51>V#o}~1Mdn4=W$Q1^?#dX4)u^-Lx5 z6mmcHxHA8B_N4MI)0rmJ%*y2+3P7R6Q7M1{tKR#23*O5Yh5FKFj?#O>^q1V(^V|G% zOB~KWRu}d{cJ_5srKnNG@1Xkx%vv=)N#AcCjlalV_-y_XGB~qL z8;Nu;UJLu)CDH$qBiDDSz>4-ZuwXgZJv^ZNxYM1l#1+uSc|Z58fBSKp$l$NwV}v7p z{yfUIIp+{2r{U^aJf6S^bV-UDpHl!8LeE|MVmEZ zLpY~xVoTePxFG>zmb%;rY<$<27}C|Fg8TfB6~VgKoIdg|(*B6HzXw0Q()rq$ucuY9 zvM(gWyzJC+VLo9GkOyU5$acxY;F zO*tU{EXVx)W&!@ceDDF*SZX>87u#HhhfjV3*I_1gJG}7$0E8U{650tgYHSG;uH{N# zdMds5{*zeE;+>x5LWUP)LoQ3+o|O2~41G+gJ=MfpKDvKMU#ZH~u%VlE_bmOyIQc{@ zqb>T=(OSuzQryP2f3GX+wPS`(Y~rc{L$=vU<2>q;jjpMSRAO>7olX5g?%*WZj%xG5 z68#e!_opQXU2~XJiYaZ7)(}LQ&ezTUT>CRbau_;fH_f=#{P%BE9Zz{~vah41_nb<6 zMFZG$YJBHip}X0Pv#ft4`Z4@- z-}@~&(ukbYf&O%41Zb*oEE)IRGyZPuSDfj3yL-|8{9y*H7J-0nQb?+6ZNTRu9hr;i z^BMeVhfg{Ah0vqe(n+4L_6J1a`_>O;j5P-AIoh6(9UF}_CN$!aNLX}0^q+d6@~f;| z^`*l38MDqfA`4cTV4#A?^7B-la2xtQcn&fD%*Y&po!UQfFu!%7dChaHRcXbfOgj4sRn#M+7PiO-K z#m`Vaz?}xk7b94(h1IS_5!Y^`{v-xFDq=+p?|j$@4Y?L5#NZ-KMXzqVQ!Z^LX7z%r z?|qo^PiHugGo-?_q4w4~MF3*P!5|$uE5kSWTxz0Y(dq2e$yu!dVsm7Cu<0MTa9^S3 zaiD`vI89#$^ocxt#O!_n1OXC+`0DAKpZ3FTNF$#T&(_|4I>(s2X=8;nSYu+c^UUuD zNeV#MBYZ>p-__dCMBaCBo{IXnRGixA8&XqDLUUZTaYB-5Axx6`_?jJ}pOP&E zs6(=XnJF-vGX07T*E&025>q@=Jy&scq_C@@%gA%#{RbgK8w)A9iS{Sicvr<$Pw>me zf5nd14VB}@4%|C4Huh;^dIU?Gq5Qa%Gt^+|%$a?B+vWUJRexl! z_gB3(wWQ#C^Q$FGcinVrxX4&7vFh9zvGL+u%ihX^>aQF|Q@f{;iGqACI1g9GTq=E1?O^ICe> zeBe|xESzD0_zOD+GCtg}fB*^#MPSva#;}H&%HsKL`c`|B3+WmS$I91m21f5~Voqpz zplh%oFCG4*EtjauJm($3-cUJKn?7$ZV(&X;FBmba3o5Mu;JsuZCumq9#Z>0%^Ca8g zENozkfXm~iM{_a(a2<2rcQx%Jd)O0wA38tmos218AzDh5x!-}BTHWLc+X2FiX)$gpb5{YIh8qFm6@QXZ!}J*~80 zbr|I314r0KNJ1i<#?5Fwh^X1+fi9dO`ol6Ba{F3W*=NnD%@k3)ZzX?RJpfhVZHZ}W zU#+PO4O8J=T}?a}CdATnId2k*PH*_q@dXlLKdB8__j$H)mJgTdz~wPN;qn-GK{9#Q zV6>6mN;Dj(E#U;djmHl3mznF>)VUgBFno!~E+zo^Tvg&%*M0;0kdSZ92DJrHpbt{^ z-rnPYDx7oK1G%)I11a|t5hL3K3!*urdu+k#sQ{~XT1*16zh4V4Pv(z|t-`JBHHG2Y zo=S~zeOqB`$rqS;ZVsT3ybz)mEQpKY9J&|p?{#}{0@d0&LKCbUtEM?e&nJI5eRv~j zavFpRe$W2&a!~XCONzs%MmTMJ&@38fZLz}S&VaZZKOWU&rbKIxmo?9qhyx7wKuUIQ zd16;ZRx9SkNBx5M$ElCXcw2QgK$rIO9GP9Nnt>tzY zLL2hxrFPD8o$g{emY?`D$<WYnl6bEroumD5tIrB^^GjoG?A*tpEuNuJ;8_wXN9d%=3b9Z&(WI1YhC$yfk z9I*~vQP3I1*sR=@V4Sx3S11Q{e9uC?v<{{iylttwVkWmYY-Vi7%>@$Aka`W+RBg^T=6E5zIDx*mF8 zzj^fKQaY5expa|d=SMzL$^8R7drSXz8Z0|{npr4(OW@}!EW7v;LoaA^NiG0RUe)ZzX?;C2jbT@RgT96X^tvcG-upVUUvDNJ`W5D#~|XKsh2aY z7NWXv6r5RDVAd}Io4OOLwf@G#9cSDZSKA(x_=N9VX!t$HEU6mkhj@;%AJ9Tuhl$OG z1boJK&x&GmRDaDnoQ5UmMBwvBMelrOsjp!g74tA1aN^Q4OC~2LKd#Ly{B=9{T2DQ1 z)iPH}qrVd=HX9YA#6i}Kng!@wSy`fGZqGzrotGyQR@3+^eT)&^`sCiYuB(3}kRa_$ zuInmEJ`nWbO2qwp*U-zdw=Ng!SM0N)kCk@ay~JKxsVJpwR69fUGos>1sY+42mPQCvCKDC2jviy2JK=SwA>p&^7H#dN>TyETdgYAU31?T@m-&`^H(`^*!}C`N>SAL>eMi} zz;#e)OHMx>|2@15Lnh?UB|ml`ht3VS%r~HB`|JZ)SU=?^mQxsz6|tz&9Jp zW5Os>LpKV*8skDcY~GqimWIWjxy}Y4RD*f2q!#}H3>K>9m7CgR=(qDj6Q4&>w_TGO zT=d{&JqPCmFM6l+wN(2ri+B902mL;@Wvb3KQn2GNeP26H@XOgFk$_T)G|j#z=R`CK znL-hS&D6HE3poj%=`l9IJK!Ub1ie|S19sHZ+y=*Oo)&g`g+xGGA%U|nYqpqos3K3_ zE?E@cea30~Fek?3)>Q8HpM8d9BL~LXhSJovW;%`muDu0M%&Pn4cb8)vlm!g=5D?iyZSD_*(KQJdz}N^qQrRe zxgbW;Eh1Hb;w0g~f=?>wcOJh__Dgm~f@0%jpDYPAtQ}kUQmvcf@YiyErqWgM&o!gQ zBPBooS(sjnY2q6+*YaUc&}b4_TXGbm8!nzU(eTcp>ie#{3hCp%ehY@(G?W2Stec^(O3PC}H2}D@o9G_1DT^aOf$qJ7!o)w0I zLdfZ|6+6?*@KV(#NqLM#xTet+_dCokw6^0?2^)2trl(h6yF;Z=6^=}g*VBmGA6e9t z%a7t&-;G~?MX5}$V@4kF0q$&mV6H>SXQvU>^-}msaFkRT_jBQiM^|=H z9IXnrQPHbPY{l%~+Xw=V=9SWmu@|~|S zbFb<=I?s%)YCKcim|ds4q}2b+YQylX|9YHw0s-6&!qptDW*1dEWTYfH6D$T+o>k z{BN94K*~YR-``kTCJJT=suE{W@V5Vb$p;)4BY^z=zwH{ob>d+41-?&v`!gs!@CS>5 zDzHWXAwnl$C>@V(1Wry>?dyev*?Hr-*qF4Vw>zdwDDDp{^)7_7WHpc<{lDsy^RS>hf&2&~d03mY>X=trv15|t zH@Ck$kRzr3sQJINlp!Xxf8aQS%9GW{4+X|}6<#Wy5}%@q#@`KZKdK{a^uvcZ(=Z6^ z1s-$>4i~}+jn!G%Ogl>;`lu6ISB!M|wj#cS_c1u4!X-BMA?b=FK`Io6495cD5?HXB zFVM@Z5Ig|Wl-+?ZjOed9_5T0INb`-Qeo z&n<#w-Tw^j28*Ms^R?_WXNN)U$ZC7804V1d|mYRnQ%ZNFY| zKYIdVKLeV|~Uv!v_h@x{n%o4(IKX7T3bovXfJEdGj!+ddA$W$wzU@37l^KL9>%v0O1w;sBXp+grhm(hqJ1gBvXGAAuuBihg6 z>Beq<_;bQuVxHDME#cn4_$n=&f3l<(HP^S~*f7v7On5^WJE)g$K(RZXYrzUtX-}5f zO{U&S+mw&TEkacrELxA>cy?;x>xTVjW5)wa2!3;t`DO(h0-PcJvlq2JBWt(EwoNIO zi+m}%LNUVT?1{))2`1+;Ezn|WY`J$5_eBX}>v$uf!*%1!ID+sar3%qVx8m;`evhZ)i=92rab^GJdH5%4j;eZ8BwQx zsfsQed~sS8+ZOl_VC_|xpM@FpSO1(q(pUjqph^i?Rk9XbrF@=Tvi=#W1a>F=o-acq zvp()ZY+j=I9uW+LeF&}@bdRYd$W)ld>F@dkEzAPBI9 z^|!{n3~5%3{k@h`^QsODU2@HJ`v(}NOk1Sxgp9rRpQbdww-dSfA~!ahHw9ncP&}YB z!kG1BekrK***jWkqD&+8-9LcHl;@i@ny}3-UnSq@4p*{FzHJp1$ExXSuwTx9ic~um zV2Rq_cex7pZC zMG}`ikC#tv|Rtb+fDcf(2yM8kyt;(~_JMLM0uizX} zs;e)8-wWZih?KCzN=@#DzM^*x%@a9h^0B8sj?Qp?9)ql@6>aW&CRdGkaI!Gk80dI_ zThR;Ea-GoeW5XITOCO)b`M6;6X0t-W#X=C2OxbxhcGJ&j+Cb%>w8BR3(3^zI0rDjT zi`<&)B);VBJ7-IBHWY%M^FpKRHa2#yjB&%-Le2?rsc?&4>bWk%wApz{4R@j0r>>CC zxtSNML=~@8?*4`J`M;Z%_y}iZ@(gxXh?OC@b4nDAogKijm@a!I_FYF@=>(MJBN*Lt z>dh7O$~?x`@z1$Pjxz)fc3_-Odk7z>*ud&j<*O41j=!AtA(`im=p@k!1LVN%6eS$y z2%1Z1pdqaB^5kQE5JaGU7@n&7!Ezl*tC5wYP0M9bAR&ij8wZX<)!OF{$wA#IBx&b1 zu+p^?!mNeb5H0b|%B;=&OrA-uhhlq)HBRXzF%RXE`SOXyyiR;+?kfIm5LG;w{mE$2 zZDmGN&iA1sfs0Q82ilSA<>b*IlQZ3nD(2x2d8`gP8k|=mI&Z${F1^Rw9zF}ZEZ=dJ z1?SmCBSC+ONc!Qe)z~0wW3*h3Q%R8T{*g1J_F@PdcoKL@8>P&Q(@K{~#2)LxmK>qJ zr(UA{t?*V{^}lcR0_2ez{^#Iav1Fy+c9q~+$)v6zY1B13THYf-Xd)Gxut~U?usK$WJYb)X z{nS=dpro5>x_RX44WB%Axf}Ym&N*AGJljYnINL|oDXtl}x_D>lz=tNI0fwIEu?&$T zX#ySJdkV~FQ_wQ8Yx>{lJVqCOxfO!mhS$(_HN{PxsH%YU^*hT}MC^7(F`G8TFPh~D zIbG?sscP0~KhA`tBo}2Gvv=1g**+{^Qw?r3A32n_Mi|fREp8gdNfS(VRb9|Da1KR% z*SF9?Zze~O3ByF$ znhOWf@=YMhG=gXtV{8nkR}@L=lpq5wqCem*)x6P(5sX;r%RzM*raibrc>M>+W*kpg z`tqKH;z&}MST6^z#3979%NliMWb6G@7|6t|=kBKhXRZM@9Lop~d?YG4F52x+(9-xO z4`xF4a15-Qhn6H5l_pG?BrW@N*n{t2iFinyomt}(4XsEX=(wS)?7fVNSF+Oo%=ip@zv10>HST zdMiccuL-4pX2*Vo3^^9Ewqeh(64#R2mJfm6GK z-IG0E%97j2>iO4A+Cw#oZ^(~S&*I~bC9*cZy6Qqv&&@GJ&KTBT);^0=5=tV5xl=lF z;>3w~3q`7>_%<1GDsKfALPk<`0fN_RN_@`6iW;#VBmUq) zX>c6CXF<;12sT?89&O2#h`T)#s`{-${s(M%c2rjIJ>mmkKc5#*c%HN=Of2)O#at8K z%CUNS*P7D+-8(Y_w&R`Fe@Q9aDp1$Nt;b^s%R-GN^) zaYo;$bx%t51Tfl9 zXLQj(Scj0pvanSF6{QFyVfVN$LX2$yvo(3`qe(MGu+uLM+;_bqmvCKgCJ(c;hGi&s zjjn(kjFJcd`FQ8Fl+CD&)jD5R(rzV(Su$E($+_7s8KGtjPF$ASPVbgU&peD)UP9<9 zwUyPp8-Cv26L*DVFY?{$qXQ!hLFctKx3w2aFD9omBH7J6?jj0ymMowkz$9+qFJZI{ zcNpS|ER7iemdKAtxMFWxI#tg^ujY{Lqpdu$mTV=Qn6?0_;ltPSq0=JF&&mv+!j zf7T2WqVUSMNiWN~NO|p!`1as|mx=fnT6{Ahd(>Sy3@Z(^Fk9Rd-0KPPWevDsuZ%IC z+y^`yk_Z^93uauBFxoG~4N5s?R!gXiDxyFw)#E5g?mRX|LU>?C!`SWwsp&qIMOtZ? zj!WemWw*wDv9MD5cBSH@+qI&+kXp>?4&&ug@wtn+17TMK0ZszqDAvZQGZA(1zpeGS z+HF^=HH)ZL=h(c0OHzW-VUP{_Wb#rWv#pv$Ymc+dapE66KO6*pZ~MgM?LIBF)L=jD(Ua*OQ}lNaY;I(GH0H zwEh?M{O(gW(Hh%h+H!-aJa@#ByRgp(?+{?HP?7(Lo)ZvGG6)Mfk)xQIJk)?Hq?L+Xhq4e2x-FvDu z(F{shMHJ~I@?hf;#HV|l`Y1W$+-Fh2DQ!kxM2cY&Gd7_BKWob> zzknJ@-cu1H#En71zVA3vQ_&8Rxj9QOf#BbaAG9Q14O;_F1TzOv9X>ziek;_~fd4dI|7 z2HM3uLhM!&@u(-nFDB(Lp0kScF&1JzB78|}>Fwd^#xcQatrYi=&vUl=aL4z`W|ibs z+lAR1ENhL(6uB&fC`wPUoVWPd*E%MF72SoT(P>vRN%n1CS+69x0H}&fbh;9vG(@P( zPL5bFhar+Cba?T`POscmCXPkb{{RuXldrC&)q2MG>KAh}Gs!Gb1Lt!g#?$};#I^=8 zmj3{8&qW0u47T4TuZLd~dV}F!uANiSSAS*H7AYVS9mRG?r5F$h>JlB0Wuj<;CyQ1351p4uU?mKIn=@hXZGe(lefak+U5e#@`)Dob4 znc=DL!Rw6fC(quZ{knSJr0s3`LrT^r*X(6flKMS*($?lV1e=(|BJjWT#^4ugDDtS- ziVB}v=_4)P-ouN^(Z+h)<3Q_6wbnH5n6=PvZe@Fm>y0^OlEztOP#RaXxHl0a1GuP+ zL=}jXjoglr#N)NunNG@mCGk&G_ckWhC;Nhs4iB#2q#hV&BEEaUDE5B_de%hFt?))| z2Ft5#FZ%PTBhj>-I`S94wu}8yZzfcB{mf#*-bPp6pc2m;E<+(KqzCx(t&=kIMRz`; zUVhjA00p$mL(=^k#gIlXOd9c+`eB&mRzr& z@&1fF(LQo@4@~G+dffV-M|HLKoolJImrzC2Hn%nrx;ql=E-n0fR*O0POv{w*1wr1kEQ*Y0PYOP{uCmh;&)v?t6U7WToz1p~^?%Oa1yT-PZk znY7b6WM3Y?X-H%#lfRP-kmeAY5IhbFj*qD zxsBygNdxy`w~%mfLY#q-kz8ImF2?mEezVtXZ&Vm1+QgOFDzs7pGr>s$uOm=%#&{n7-0@JNnUzN8^7b6#xi|y!;(&hfKqxt&05EevEdYe#fIz^|2H`*< zaoar55f*mIjYdaooM-gnfRS=IpdK^pKpUt8-ZPI{0XKudpg7mY{{W3TH^9!Ax$Ewx zg6itp+!C!kp4LePlG`oYw6Q!}BPv*& z$f^#|t-A!{9QPUVIJ9?DOy#<-?L+YAr}Yo?PNmi0u$h)uQ#&abhyr&6EX$C13<2y8 z8PGRR@#NK_dcMJQ$2v*6~RhgfWu=!MwxMtnVXUO15<*lxcOv~ybj&;_5 z^&{we?Jjiasr65_2k>KI1PCT~2WrPGueA@UW{ia7V3HVaJrtAN%jyy1?xg*?`not~ zmI=YXzHlwxP1h0IyiOJtx3?z~>|pFXMDSYRt2(#o4WN`T7&~ zZI?{2)UBS{+W!EoZs)fa!z2{6wU+G5EUe_k3d-?1?+%dKz zisZ4jZOtQsPy2HGJZ);rr>y3Y?e9;P`Sz>`t1*R(ZXv$19@9)}tYH z`(5GMUUXckl5 z-c4kePVqXTr-@NBjr6cM+0_|dH zZeYER+IY7v8Az1)MS(km$GRd2U;WheF7MpzBeR%EAWQVO2HA-X z9BcMaORD1v#D>UbGB9LV@o`IH?$1DJdJLAf&_SwBZtf#oJpTZ3*pAGwcXa59;an>c$ilPTg|xYVv?yqTRa5P8dlKtVf3JF~ME%hobvb9W?`QyDhEqfRffn zk#{t5Msv@Lw4ON6m5As1&=%AXGRHrK0fg#3axR)mQ=Ng9>}bHTro8Smnd2#t}rw zs^(>JBw{I=RkfSLXU@swy}4l^n=PN?XJgOT<=(v7o9@p>loLf2#v1t|l279+8u`8Q zGoIe&qP4&_%^Tt$QS|eu>0Mg?08S`L4{voeOiq9HFvqFvPD$sQ+Q}u$F`;-JUJu$A zuVR8bYyPU&u9Pzujqj!kRF1`ic!%g%f$8g9<(5+LEODjDo6&!1FNn5s+dh-6>XFL{ zD{m9rO)?V012D*0BqO+2Rs{MUD-q8%=kxylf#ZqvgW%WgAJ=y_{ujpnmAKO_Qbk7A zrHypEbdP8orc3D}1+&R8k_abkV{Q+kIa}pX#ld!GqU`=Wd^yyw(?PK6eJ0}aR!HMm zu94B&OodgENkT~&z;5_n=RUZnAV|Pt4|Nw3`QW$!4{Pll41mRA$Vzj+bSo z0=jLqHtKjH7}W>=0D=Wt7GF5@?^J?jg*o&5ROv|W?zEY8iv_#2LhTb>M20!sb&Qt@KTAJ*?PWz=@%i*N}6!CHCRA z;DcPH)F|?qwTkuEI`yLAorJ6DKI**L)QT@ZFZd6aN@r31iS zSNmV}=T7SX0O@+iO2gCkbF&B})uO!d0F8i=f~v-o<8c1~(vxO+-?WCWJoD-7ZaDm3 z+|@7t0B&tUYm~CM)9h~aoNtol0fF6-cPJ5=E><$Kg&Aj%FjIgD%H?%Q@N3ja+O$90 z5?y}!JF6+9O9+5jro7VJ+r&%mfBec#8y%5?8H6Vs6B)?QcsC`ozmdvoM=$w2&(goQ zAH)q;sN}He#fs`_*TkCJRfw&W~ZQu|MiSKM=e<+$>OCIi zwEJB~K_rRyWVeZ>g_InXU_@*iX(Tce_qMX|tKy$p`HAX}O()LAtJOafbUlAU8b?su z*!2t-(mYQU=A0Mza;RAZi0$FXSe>M)Ku;w=;O-rJU$>tx_H&m{;$d#S8T>5JAhy_Y1%@edvPX%E6obvt-`28X{I72n`qj`Ad?&%s;j9f>RGa4-cFZ;FyR^S zjYHu#?DNte13Hm)-k|D@XQ^-P1TPG7JeJTyDzD!j4ats8<$yja$io=Qva?st>OC(G z68e7!qYptYOkeFWr+hp3i6xg_{7cm}jRQ}xh2fR--AdZkBz9&YNH&iwua7F=?kJ=H zPV#y5o|K%WqZ}>2jd$`o=ICP;bCn+^I*XySomyf40NOuS)^(8`%z@<8RtpH@jQP~8 zl1`=Df?c*CJT}!QZGGj{EPwt~qvW@LC9(3}6)mB^!F|q;@b~s*_?y)dy{qdMT0N^P zD@k*x4YF<_nIk9}UCsd@Hv?&6p^%<3^rkQRru?eDyPadv&$^>{vHg*HhfNa=3Jpt8 zxUrH%y=!N>Wpf_|P+LMu9G|@HA}HKg;}yYrSxap!>iP#BT^k2cd>2l-OHPyPuB6pE z4%<$Iy^MWVJkvvWEbsfrwuD6qj1o7<>ay;TvpbB8`XSaNtt-Emx0BB}C26#)#nN}- zb!JL0`e5}}P(^L3d^+mRoa!wmV<3|5!sN7SM+>tB)%@At<{Lon$BOE`BD@LyJMuNI zqyGS=55_GT*5g&OT{89UvPKx-2Wrws zH@P|i+J+k?!1kdA9jA&F0{5XCCsodJ4Gg&s@Nz|38j0h8F~)I3jJ7;QgXJ}&4Uz>u z+|b34G-Xd8%AwXQg;UMvHV1PkV#QAUr zJejaFIJ0Sf2i~99+xE+{>#KWDhJO)mZ7p@^(kp#6ql#rWQKUqT5sLj|JCGVKkyiCikKN#q*VgmQUKKX?0B!_<*kUG%20q}|`$Zjucq z%_P6Rkl}{af)#6pVgon-0CPE21he76jN+sInT3~E9|O;wU-9Rto@k|mr}eEHQCLb# zBsUh(CAzV2^T?N;ZcA+eJQEuuDVf=UkCbJ7()s@YuW8bDxQlDP=~vHpK2;j2;|)@`ax|RoA8XW?X_YX%D!mjAPnVSCmBjz_x$p+ZzexyxAMNHmHNBm zELv8(b*$<-^~L6)KZQD(+RF9doNX)_{?Bn6pa7@{BVY(t+Pl@a9-k!l)A8Ht!*P%O zpUe0;F0=8gU0dk&o|@_jWWKnKL%pmqT8I?~hN?k>Ztvno%81XIN|qS+^!*jvn&aPR znt3Vymu3g9hg;fPTXip0o3m>)__w;h*>Jnc25p;$RdzIGLMdDj%0MAk-;W$t$uDun zP4dnWa*;;HI568-sbxM!0|0FVWOJO8-y_PT9QsanF>``5!8ymz-}OJ83^okj-RLMq z$?sIOSx=v8h8V2Gf)E@~i6N?FUitiLrdE>`-M@>q8wnBa2BAbJ+JHF}00BJu&<_Cm zP?j#!>q6L|0YXrR9=(MM1pffElR_c1DAED%Kp^dpN|tJb?aeg-0nZ|$D5k1Z2Lp~f znxM{FX=Us@Y^n=$iSy5xleA3jZGqr5Vs z9_=S?D+i@f1G68O&`{M5MP?xs632{VB%eV?wK;Zd9_!V|=#ekL>c3f{hxqZ_^G5ECd=`Ux(FMxP6oo+Amg=p z(abV6i%wFyP5F$#?TLLInVjpjgpZxc55`A5tcOM0$7p< zAZN-Of$lS0<&i~SKEqLlt%hA$J)r_Z4t=xzK&g)^p9Pc}q;0#t*3UqNl)j+}ZU0kG|BP7qGNm3-O)ApMF3GAB}i&`a&4pJG0e~q?FaFGghAs zWqEeoT-*3=04!12m!9eYUVf(s*VNaRew2&hKauN?MJ3%Ci?4?XBO_ZI7)VjL#M2Xy zqb-(`Zb{@0e(@PNP&vOzFF$>Kk-za9?!IELLYpucU%SRs2Mj*(_84q%bM5+?@#O0q z_(^+^T^n8gU&*$mvD3t`TR!dW=Pu7!?TpggBDn`|%YxWvbn~OwNY%*Z0d2$YLcjS?rk75RL4l5FiW~~_(_=c%Bi)m{Lx_}j= zjFJ^bJ2@xQzH`9A1B%b7@ncc1-*qJVxNE8A3=p0Z%AlW5nfY_aJol}}2@A6pvq^C( z%C2_;0<&khJ;^<>@;Uac+C-+tNbNK3op4xZB$K<>IX=D59sO!rCYv@!O&Vxk-eDx} zP!+RD>jP6;jqUc20#*x#y#jM^e^NmrW9t>q55u*?W^<`x~Qc1wu zoM4fbHK=9M{Jy4Vj?5fdHG)GKu(W_)vhBFJM0nbAr1`u*5tq%LcKWZBAQ+_cIeR=V z=tB};m1a74otQA#6l9RafCtmp@bBwUGffJ`Y-UNc`;)myDo|~~$2bR`4<4t~R<*W9 zlPGGPME4RIZ|)?P>OwQQgBB_<4$uL|raoQq+PPnIJ0Z^3D=u=E25FR~ z($1ts+*3Qq0Kp6t4miRn!1|I+YUNbhM0g`D{^W_FO<=}*OObCe!;!J{{{T+)KTAsgdIppIWxqg#_<&I24DV_vv*5T5CrnsMx6 z<(f&{%{v#Bk1od~{YgC6bo>d)+BC0&mv>z`2Uuzh5-X=G5Q&yUu%=bXRv@WzB5zpa zSt4*ILm2t}Z&@r~x8}dI(Tk_m$vuxpXm-yFPS*_>kqo;+ld)J9C|F}BobDJT;P5bh zZ~3{Ob?`k8ql)kIujI@}Yo>I*vijFg-9>a{S!0d$D|rNV{wsg#sEyi1+qn6GX%y~d zCCahwkFJ~ANqe@l52n+@DD`h%^#@nmKT7o$zSDH$nWJG_O9dSlgA`hIA`!ryZVA3^l>^^AY%x~0VWvpJ2ShS?ns4|D=w6|yj@d^Ha2 z6?!c9VTv$2itWil!x5d*#VFaRI{ zh$qv62LSf~ftt1Ic_4&o*9Zhq#ugt4_-+|w-{xfmxH)1+9%3-TR3YT?_e`mpysU)o ziAeH{`efshc|HEVnFG?gnP%N*{;AX`i+?S_u?-vvGwx(lfT0u&DL7Cu+yDl0Msu>@ zrgKiQy0nciqPeoXhB%)qGfJKq3Xa(CIC!Arb~qRkt`+Q?-z;LFpc?-|CHf6JNmf9t_eo9ci@-#J{%- zWg=io_Ao3_%X7FFD;RBwItA^E0SL@ml`?L=jzUxAzxUs~#36 zyP1mZW%8;=wlq(?R24W<0-ObNmyXJ$(XI7&#w+fpo#(c@)nHB8iX*5x#~OHHSyc&e z2~-Q;&)Wkb29`ST4s70fQ}&YTo|T@@QPn!DSk%R=W*cY)<=$eC!Dd9=;zkuj+Yy2s zn9PMrzS4Qi0(((Z*@XDL`%`>D_{7&*e^Kj~lV~%t?bD=T;Q0XxlTms90QHp?Ld2OB0xp(!kAShC3wkPuoX4TXMtvba(*26?PX36(aDf?tZ=Nvd2yc@C{T zy~y6X+U1EZ*%@MR0Sk?fk1h!$vEnRi!533KckuJ7zBt~P7vbMtYI=$Al35{Zu_uJW zG{IvjW#AkDPFZomLJfK47lm`1(*_f z8QtX^ZO3nyCv5d2IS){2(n%eh7jVloh-E}c6_}<}ZUJ(3<&o1uxgPqDUxy~_$>`6EyZ5<*R(!0jo;OCro@1OJKP@}@C z42%FM4>|SM#(#vDsW(gYwzZ~C(A-93vy$Nq!O#g+)*yUF01UBELXW+GO?8eba*>BL zX!`fTZ-!qMtmf2oZ?HU9N~S5TE!AX)#fTKz@dS}FcDYlHhk3%uhmWGkIP+#)RF9LN zw7*>R??UxPqiOK#tKf(1wk-@6x=LP>*IUa8p6rd1$vjS*pLvgI!*5j;B5p31%LpQQVRmgq<~m=&p!1?^0wJ6wf)weI$c@Z z2&I7+!;u)PDFhHzun1-63^099o`~Iu~|mo4puVCn|7+m0V=FcRf)zz8Ahzzz8Q4hr`Ot|X&o_d z6x6GJ$N^24K!)XvKOS3pp&ud-#9*Y+TyA={-RNkn5AX zO>rurxRN+VTf^|mC4!(2na}c&!##@Da^W;_WIR&e^#4GwX_oGOOq64!W%gz zL5;h{GEtRAK?ib?$S9z0JsN7v%c!P#yRLt09e=Fv*HzN3n!1%a4u4#>^8#kwGe zl3N=>l?eMpjcyVI{-0Td88g7N;6w({5yl%!OG; zASqzP44mMV8@L(9IUH5em`;y#e#>9AMyJsF#fMF6+WdM)O-XRFUduYPgzrPRp(x6$ zoNZF1A!5UFjib$<2Bm1}k0l>ot^WXS?}BM8Hc@rOm)XE(caqlccHVFU2>4=l^Undi zr-D9v=_lZNR#Z^b{{U=HgnddS(z>+Q^HpJ}Gs?x*XbMh-7G^)NJl%bS}Fhwvp|UKn#HR zklRYmK`kN3W~xbkn6J9~{Yh83+B#BgA`K(`XIl8lsV0}UDK41It3QMwbO5lpmE#~5 ze-QwRXN?Gngi;6NChn9?rCrX8)7GC1EiMiBNPJG!`i}k>)@8J^>Q=qDWM|mfjwzKH zS8{O6mBw3ea;Fm2!&UAs-X|$P^%&@FZ(LrU>5iZ3EnYdInlyH^u~oYzSMC|Eqwk*$ zfr>)PcBayN-4{hFyI(Utxb)vd{8Q+Dzn!f$8(Sx70Gd&CqdlB)I+SKI$#TrD+vN<6 zft~qQJF<9B9HYIRVm5CyU1_pgbq&3YnmC0N$8iilW<-z7rw%sZNCbK=0T`}I z*9MwLC+V$A;a|h~E;KDasI({~6D$*2&8gdxlD5#X_;N@}wigJa7$3se&2CCk?98f1 zNYOqhbYD#GtDDBw?HbgL@lHs#KP`7*5ECeCO;#GGZKAeNtjAE;U zCZu>z_O1Q3dW-gQ)*)OMWY;8pQvU!^eNyd)>86rqnnR8T;>_#-#s*GCG3j3qBxQf8 zHSRu?B)d}>kt~>Z3^Vt5;Qn>SPL7Lm%W2*iGR$_X90J^D9D4r%d{%v7ttQ2Bp=ljE zq}%mxS?epN*-v#PoFSo_W|nAUNu*U+mB`wXMoE3DH?NrUUYr;w)PCQY$1Ygou;gxajm|l zn+iu9irIo9*dkVO&N#;kaz;H59k4N)e>#y1)sk*aO{{U0eb&Xjs%B)QGx02h%0L(F=Tg@7twz!(0$VrmJU0XYGc?9>y#E0C zB1jkvjKR~aTaN9V0^;6n{FYWP+AWOY|g>iTAn@kZ@mr|x7#y196~YnT-mX>j3}$jnuw^2*AY zD5_3P#nd~dT$mMFCH<}XDY{Euld81;00}fLT=?s{SkwudnLl^9yD4HAumBC%&JR3u z;Hhd{GULeFrg(=_>dAV2!&%QHCVi~s4g>w-1Fn4I0Pa>&3bshcc@HAD;(b;9l7DHQ zjp|JXE{@hB)4FS4f?*ecinh>S5{eRZEEPI=0%6s7OK^}&+xtp`*uf`96pA))!TK@o3_&8>lPqtYlw7FeG zCDdj`^TtKNIbv6qQUr=nHeGRCBM%x^6)$9-|sdXy7MtjniGZnIrUEx~C};igh$LmPz{MZ?Cc z!H>wQLf&9pPnrEopwbD+UMfGKPc~d4_aFF28nysU1h53uywT2K^?!@m>X-R zhlt+oBn-_UP; zL@5!pwRsvcU&In4+{rT}fw@;gtN;Ot$3DDXipK|Za-UZ@^2U4;xYhpvX&%4OJ|Fy9 z>Md69K-6^!o=axDl2frGGRYi%GqyLBL{!6)2_tI(yV07l#k6sP*6E*Vx=TvwkA~em zdS9nBk)+$*w7>anIsn#)#E?8f?6XU7p*G3lg_m$-krZGr<2uf>*30!a--qQNZw?0) zvCnnAFIKrM`drfLHbKYlEtQlhKfuur5yn6vO97ArFy_8gvZ%c-z4!7yf`e+$oPV}f zfi9rhZofUn?28Ul> z#L=z#!c(SM$0mZ2sDe0t(+$RAWk3eyK^%Kd7uHERCxO^>o;d1%tK8T3{2RxSxTMne zKkNBBAH(jK)%ECKU+LDi(yWsawaw^Kg^Bxt&xmu_1qCuWD~j>u%NYLae#6xWH^QT? z>e>~;=}Pn3#i?q8d}c8s!)+W}CTJGg zxPwU3^nqh5BxKDjxQ#Ytq!Hu;>Q*#j=Z(gEk&mI#=8Afozc0_{+fNd-3(J{@*0eK1e0JerYX(ttEj+Q)+vl1Ylrui%^(4`q{<9z zN|3_@p^h9@%H<6S$ zAXkl;Q}5fv^nR1ndS<$wE{}Hw%JZKJMQmV@K>*|sK?EK_1RBGOT$)l+;LVDLg`f%m zpb7w>3IL!A0H6v0pb7w>Dc)VjXBnP+?O#P!a(;@SllTKbaK5YfpV2YucO4_vFv%RD zRBo2poJr!6tKn@7>`n+96rORxI6I@0lJ0r;s(P!T5w0ZZ%ZppdZsm^3_S#u|3#80} zqE-{mw=0PodhAsT`^h%~8LMe;Z04P>)AamjC-|Mx8s@8JG}z$QbzM=Sx?5AM-%jx$ z-ku;p?QFgZsL6I&u(|WTHnUBy&gNC8-`;sgss8|HIl4zylThfXbTF5;v9#J=tt(29 zmr%uo(l!fy?aWnEx^3JQPI6RLOP?zD_!AyEIb41Y_w!Z!QNi^KDD334o2w%ha7Vr4 zeKO-uzgK*WhK#gN5M{>DBe`z)Mmerfj9(J^ubOr9JsC1eDy16tr}amhzAnz%&c4&y zTcx$KK!O0#!)($iB$f!awny(4QMwRtxeUv;zW)GC4H4h#e|CKBSKs0Om(b-w{5Z%e zq{y5QPFI{B$JZQ!4}JxDj1^WijFyQ&C%FT?3uK^^z~Y3WRZ;~E4_L`LpmHWys?nW9 zn*i@hGh?^|io6q&7LfJ_@Tq2$MiNgZp}GJ8?La$d6aap7GR65&P;LW?7KRs~NJ9Sr zjTxbvkEJY7qCz`T$w9oHX3z4i99-KGWJtmA z@r?JN(%&Sk2aQO6NT1(oD45)$C^8$npT}0B##2C)Kl-<92p~Ur*8fJaSuoyB;2| zBZVd0^Rh%GQe-)A&o%c_qvKB{F+37J_}~oYwM0`MBSW{GXT4Hg4Rj-l2(iIP0h=F< z111cCKtMCi3{xYT5smr$1x9K!>{ci?gU5Q!9W2gh+7J4~sF4yA1jtH(fDbr1IT-c8 z!8pP0cy$@p6>t5W@ZxzLFZ6b3bW3|%Ww*ACP$*zH89DbOmd<&}KHaPHbLwR$ZS(N> zA9@%fl_XF)U8&t9u|>QB31GP&Kd;ZfOO~>DGj=6R@bWo$sBJKOsdL<0hEFFTe{>9FnINyKVKL-($~KJrt@@? z$g5TRlKL2ZGWPGKqiE!XWr^4}^pkeq!}I5k{MPeE9b2^N_%-)2hEwSkNnf3r>mIqa zytw-uku)-6BXPiE@+uqC)Z_YBi$6mwO6@;qZ;9@~)~u%AX058P+H8@fL>srmyI=#p z;t3vKUfAq;Jb4^kc4whUNPV^Gk=EaFOy|!aIKdsx02uu0X*FZ7B)78}p5ikil6J&P zXO8*WpnU;7{{RCNY&L7RSI(q64Y8Ae><(}__Qro6eT8l?M>irgzmoz;a8dAg5y2}go`>G^d5wfsB-=2Ia3M?c6^SyXrpUnU;*7_?xv ztuRyo;Z@Y_1F$&n#ybJ&TVJe==_0baw!Ovz$syqKPi}Arf7Yvuh*M0paTFtKC}%3! z0kA+m_&NUm#0?qTw5u82Z82S-fTWNORE#!4 zbt!j~8xl$5%t*(n$A9fx&}UI*-&hI{+Q@D`=)uT7{lD#8<&VJ9lI|lI?n69K#v%lQ z9BvprxX-uBmGK;eD`f+$%M5DBRe>m&$miSN=k=|*N$lGqQ7%7FTC{DZwZ!Xe@_42M zk^CL_#_tRrfa8Eb$OMkYqJ!);q+?L&H%v+t5-`T|+aNXIVTzZOa04 zo=2{BgPuEM`BnA(yNw1@Sn2Bs?#vdE$dD70gB&au?ufwVYhk}EaC!n+hZ zM!;iqfCf914afNV9ODDm&|z_IUA#W$mo)aHN4&hay9n2EG|UFw>{z!L0ZTC??HB{l z3<1S`TBFVjrrkV0YVepue(N4H^aqoVm2sC<2un+7x?dtK#Ei(+>Q}?T8v)2Yvysk8 z`SNSN#3#GFmr;?VxeFxO!Em5%z~?v|mi1%nl5?8Qq#7*PU!5*TmdzB(Rijoae~94! z02b4gJ4h;2sq8zIrWWPsVAXD6X$Oe}3=t({U7Oc;0EGj72;6hWmpI48*fhp&L6mk(7`? zUvhmo`I1ICt^WX-lgH$Uu*9`%rPxMr*6AX8qm9`B@%&lOKDhdiTKdeMKOyR2;Ay(A zO=;3j?_n`e?f(F!wQ?Kyumc`D`gY(~qaR%^B$u~yl)8BKWyJV-8Mj$xmRKcq-lg_7 z7bJP3QIXD0OAWZ?PIpy)luNN!Nqxxw0Pv2RXKNw56H9azf=eCTa7G_I0~1@wNaSY{ zf_>LKSo%di-+$nbr1LRW{TXo6eUg3=)mz78lq_r9u?nXn0QL?~W#_kO`a>JmG&GCD-&bYPyx&KW3U^8@$r*J9E6VGGHD84WNMA3v*m$ zfk{_^wKk7kbnorG)Eb0#Qr-0h@Qo!&uPxNAx}-@cV{HSHpu0piW!c%B_<>6K2c7h* zvO0Rx)O{)YT6AYp>N9AzmKwe8q2i=ga=~n7o^Td3x>bdqfW*b}6A6vJ(veM^! zd&wg3%%Pb!2^W@AwT9pdoZ$10*{wy;YR(OyRt3pg3$VJ6U)PGlB`jak$|`vyOF# zPRZ7~*oHlR{=-SP3qG!~&LB|)aj|6agEPU*yUx=aC{;co!sDc8r?Hl-&U9y2X`1{~ z*>q;R4eptxhKA-vb2CA)MntkoD!Q*fsXM46r6rKSiF=AxaV0BO0PogwEQTltS^*Al>;=@7~bws)(a3T)MSm(;4 zBs=*~u_G@~-s}AhXx%6H>Cm=m6uOsCX_iJrF4p&VQNwhHAYj19cp#D(9#w!{q_-JZ z+u;{dJ_4t~zlYZrH@8}<&4c7-Awvkr+#~58moo1D zFX?4@;r{^2_#;K@ez1q&m6K_I2D;wz>Ge3KwwP&1mbQw5Kp9z891?Xux82BNlcfjsb7FFiG6Nk&ef()tRH*9|HR8r+N+L*7W^8 z%4qbH9m~gc6WqYh8W1Ezkj6Y={{X07TyhkmBBlqIEF6yb=8)fuAGZ%z{7JLE(lqT_ z`%2SwBjDe|Xw1tsw}!~k{`L06W!!i83W|7Atf12$M;P)anZ6GmABbA4ab9WNJO-Tw z`9Em;HhgJNw}@kTn{)PgjoDS5SgMuuxLL_M;KePbudaBymD2AGgW}H19AS|5 z1;|1`Yz6era5<$UODV>;`XhMO@+wH`Ns=ZEz#KTs4B+q>bDqcAtytAX7%#8wHw!7` zi*|Pi*sekEoOjQyN}=lrR?>M7sbj%8D782eEY z!kp(Ghj8ve0<1d8uiamtPlFGqk83e8^u|agmgUPDlXz44nFr>FECeF+Sfj zgTU7&Y4ix=)4UBlMHUp9oz})nMY+_p zn3g76sN-oQn(`=JJUQ?HjT$yP8F<61t0_`ONF_%90LsSuubIu`lI+ZsFMnsH>bgfw zUEEn|R~VY>Pm*I8xe!euw-Welt30c{SOh@1%N0O?)m=mzHQh-*2w)28J`>xluPwA}WGmtm5oGcf+T0V^XBo#HoM|z1 zWVGJ9)wFA?Jy%M-xr*~oO}29^&At}NELS9qF=i~iyvN^|;Fzfc1>i>@{iZm4&bF*yMsfWFL^nt`7k6 zIpFGy>Z5Sct?sqUgQ{sZrhA(OH*?G#(nWIWB9Ry~0K!77qdS^HKpnG}uv4?q-7bD3 z86mW?>RzGJR%>OtvV`l`Z)+%09!~{r#q z-7BWgr1c)DtOUBB?2mDB>nt$_C7WwQktR{_$`dL;*hoT$E2oRx*Q{vqF0t1-pHMp` z&D66)Dcs8Y%xFdwc{jKKD*W&W3clWz8aTOGPeJN?{SxIh4F+kgE@LP6kw{~0#ZO?I z;1Y6kgOa4Mc2a2*Q2kf0Is(Bgj^h zsrrjkfoydxQ&V_JV!^JYbt+dF+DOmPwlGKlWSYdXLOuj}iL}r4OMBQR(`LE?-TZjk z8Ja1PRPM@3ISe`4*x>&F2<2;py4-7KA(6?_KEiY#?Pu_xpn3)iU1MD84PR8SXs(k; z>K!ZX*OA`EIWW%)nIpDfu6$lDqiwi3id?AkC_J+LHSTrs{{Tm`)+MvQe<#a-iT?l< zA=foK`MO&E_WIXQbuv$@S*5kmSk-(u35xFMJaM;R%oU18?1g|M>0`&X_4)2c2~An8 z>e^%7$3IhPn%7Tkf)$s;wUg}gth0HfiWp~(Da)fDzZ&=}kdaHYZ55>UlE0W&$}8CX zS=Ds-LVIauf_tfFOK95%!NWSK``cCg zq@H*@9P?Psi(FkLet*i`kf^h_X?;ndu}H?Hc90bTi}+|j^cxjaWPFHT+?-;*Ec#rF z{;THx=e`->xs&>QsM;awK9CGjeNskN9QehH5)UUk&JWB3n&Cc|H~#=X1dfsFv48dT zGcolqM3@?5cY5Frq==^42mb&xR@?3{c>32r@bk<5tKVPAzw+@e8~8IVVb&cDG8VPH zMto;8q^P+guq=ZozjNBT6w$SAht+E++Jf#9;k$`3@0+M(f zd4_Shg>A)F{G8JUa0j z+R3L0{0W|_59=7-k@uFUpn?$_2 z>it7PxsK*}wJp%z-&kr)5kPzG_rcZK!4gRYyRi;8?JWv>&fIG(r`hD4mG?`#yHl{+(K-xF7k^;-+hA>I44Oa(y+|O#i z5;WO*lGmgz^qc$3H*7_$+d#KAFkTn%KFuS>&m>Znb|soMj7D2~s3Ue#t;MEt&3E=J z_;IOyqHP-9>r9$vl1Rn9%!VkP@tv_TBWUMpWFq8+3NQyLXy=IX14Q6t_s#)0=PCws-V$+X!Pl2( zZr4c>LmaV`W4N=*RZA1#$8N~(%FftQqIEIUs*U4xdoQg20B8=H>D>=W(7qD&b(WWT zVFVHCR_mxUV(2N3U$d<7oX5M;KMqCYx&-qN&h;LPt<-IKH?j0#)Y`2{KV_VnAB|l~ zU?%TXvb(p#g?F=nk{q0_^HZ{arer^3L`8(swlf2^B{{XXJH7~KD z>faJ|T~S`iFI_*}u*Rjy+s7sFK*-?d)6{0VL#6La^Wb%sR{NYuG#fijNi`c8blsBCNT| zJ8(ET?VrxP{-Q6n9+ft{{zl2C{7=_3eey!a;OB#K0|h4|ILN{0zDKokmq!=<8ug|> zs6H!oCZ!U_mbQ`F6=;ux7;qKI1mS~i@5vi*1_u?=9W)nzxBD>iHfwPFSJrIsjv!dl zHHdhyso09*K&g^S0zoHfPKt);p`>_+%tfGaAMJ5XcAATeSjkvC+XN#~rl zbQb34r0X3))S9K9k8!E%+V#^&O_WgHJ;ToIxMfwk4uTSxM~RWc#hBZ0CmnI*Y3z=3 z!lbu4AH)m&CeBlJ`%LM&?S=GH$Kl_NG~N{#F@VdNCtFxVft|b&4~OEDEQ>6R!F^a| zId=T{9$eUA%R0A7$MBQlEJhBPJw2;*#iVx)d3)5ld^XZX7>2g+q*aDl4#bs7Sq>Ee z@NkH=r8gJL_>x%FY?svF9bfwr=|2&F)b%cao+}+>PO-;l97fkqfJ+!?T1A!@pZA3F zk)IU2wGd2{{RwQj~ewKPRY}bA-n)f;iRO&GEWc> zoGUWpV`LGvxj4x3;McPjRgqf$K1ZHVaoPTS4QX@f&!-1C`r^83Fydq_#t%H>n%X!` z84%%yGsSG+&^9}Y$V`GlfDrl4Jq-@ADS`>_M2)sh5{4&|zc6b?B+K@X4VHcy4Zl(B8`<05ByJNKlQ6-Wufts9+d{%JbKXPLpfOsOI`? zi*};?`E~7oW{+Eb&i??lhOh8%R<+P?G>h4~ZcC9J)B;<%JS8V|l0X{Zz@t2=8>@Rg_wF^yU zM9#lu)FYj(OvOm>yjdc+hBkD5cPg$4Y;9($?VRKKcsyJ1tEw#H@xCZ^pGkDaj}D;n zLuIIazUM|Z@i_=mBd5V8)nKw^nIdU3;;!nixowqXGd?@Nm zbkr-JWT8GI-G;Mya2##@3| zXv;&l1@A&o!zVskGfE_9E$dk|!9Bco!6a+9m1Iz+HI6l9bGU8{<$+8tNFg62Z6IfG zJMH=T?kQtaYZ-0}=y2RYX|*tyGoc!vJwX zV_5po(jhHY%8-QTik4asR$DYE=Aar*C@5n;wF;16j2a6Rcda4|$n>bd5>FVbVua2{ zN&Kp?C@1i&qB4D>__10uY-uU&Kr|EDlu_vulZ6?hX$vlkONfDX+5)p9dBGu+5=IBp z@${l*TvG_9m55xgJ%e#lSyXv3>a`csPr11&6JaddMh~you>O_8U1V41<2y&CeT<@L zjIkLnE)o)QRT%C#1cC`raNKd9PJ0^jzeqczulYJIi@VrZv}mrk$g_Ah@u4C~cOC8M z6e{;8(BNPmK_FHC06oWNR?M!MPTIO%-!I)o`z<2Yc%{0UMuIZfjLOT9IU#ots!1NF zXwRVZ&RFRJlC+T?w4}}u*)Hi6q%MO*yMq|13D*cjLCus=O-1X z=_to(C+%E)nPbpN?!FDv`sHH z=gDpCPG&_Lmzo^(wm{dXuu=F>+QKm0$TG-i|%;DF<>tl6|CGunuv z6esCXqM^G*C|Nug655j1&9#^SP6luYJReTo$3C5jtWO%A&vQ|mTp6oQslT*Fi6wtA z1mW0ZjyV~@{XIP^$3I8HPmiS@nDtUf>3U~hSWc_{uPcdL8-quYxccrG!2G{F*UZW2 z*~R{zKRi!%KDsr#+_`=%HEVF`C7UCR_-%0>;ep=;w<+`o+<}^yaAm~pC;9I+lQukx znS{`O8s7Ca(pvP(z^f-Yyt;xUMbCDb*%SZ>CvaR2exF+(S1u(N?%?@(xio3&ukj@Jc)96{X@NsE6o~`tb;$1ttWgJ z)wD$OEAXR{QOML`L_5mxcol5cl3>g*Gx=38(2Xx0&OJG(5;xwLw9+F%bE(1h*(Fv` zrM9eX&zS9Cc;NHLrF@>VsmT{n*?9i|2fL?+H~WpM4MNV$8+%A&T%I=YcmQXBGI+*M zKb3sBxli{t{ioA{jCikcn6T8t5~v1B?IBM;_8&UqD4kO>jVr&JLA#y~a53-5@Aw+Q zwYkkTdpl>7bUoCTAdWMU#yS50JuBbSWovKtc)FZRpU;7BO4PT<;Yg~nf&!FWC>-!W z;C*m&+O?mjrKx=RG1K)s>3=Q><-1bFoqz;v&N6oUV~!87{C<9TTzEY*N?e&S)Y3F@ zS=vN_c06)4W#f^3wf7QBKRZvZfx%^8x<_nr$gbF+leVnmns11@@gnJq*p?|R<;c8N4DzuhoQ&;l-SRWX zK3_~^)2X)ax6rs`t8a<1O>rX{FS9C)#PEEq z2+uy)9-g%*)s?PpwE{dip^?T8HAw{65`o*eQK7`hjOM?_fnsmC7_%IIA0k1)!9L$wxSVmjhR?~gz8rjv$~w6)FQPP3 zIJJ{vFav3i#8m?avG32z@y;{!A=f(HeXrzs<h7$(kkh%xv*RG9g~s!>x^LeyqM4B`TAF#`c7U8=5<{f@nv@COI3DNnqs3ECvPP8 z83X0V^uemVCo185$M|c^p?T5}+eop&BQWQ2U;!T7jy|IU9`)BBq%V|nmr9om*Y#~S zYZ6{9ix?Y!c20JY{8=ZyaCtv5&pxa@OmZA2g~Y}OQqjQkw}60^F1ZNJ%V9D`3GPRJ z_|FyIPDycRG-Wz}skKg(yN_4Ut{U3z5_~yhJ6%b}3b4Zr5D38-Jd7UtYWWvOxPBLY z-@Sj*$#ZAa+Pdgu5HSULdi#=Imnms}rnRnW{Zp2KDzkHHyVjILz6KeQq0IvT4;-|@vT+o`&{YQQ- z>e|J>Q7z4_xwDTJ*0II^0G1My=9Scv(mCt{F;xWNa<mpjVl*kNjf&uKp){a<*M3 zt~E&4N)BavD+_4tp?L@($ooNNat<#+CDfWep>Nc8+P_gO zYZut;4TZGUuw0_7(_O)BFNC(Rhb{m?EUXdUP^zio`Ta|e6uzt=@L)O9cNhA18 zt6f{#+eI>JR>t1SDdV=7#F7+@IcG!KiN zK_IcUQ6zC*M8@01@(vad<+HR9WXJ_Z6dwNoHhm^rdRj}%n)BIwnd^plR_foM^m!)k z5i&`63S6ua_))SrW>v~?8T_DbWF#)!U}HI4pQ@T?j!1p3r3_Y6X|h^I(oKT1hm=U9 z5P4Ah7y-Bev|zD0J*u>Fv0P1ZqUL#Ik)7P`k&A9~vz+tJHtxyv1GvR$5xO$Q)BgZ6 zAOzhrFlJ;VoUjDtfG2nRv-eJTKDl7TUdwPKcy5b$o11>}Ny$EA-x zvx4$vuoNl(0B%QN>@W@oBLlGD)uJ{=9ndiaeApc0K8GNl*v2^Y;*2I*lIB@s5y<2O z7y~0|1dw?Cd=rjOrAik?V~wD)oGHn}WbHh2oPo&o_w^jr3E7#`G8w%WKz#^nHozy`eXn|;~YJ-d5| z+TElex(s~AN&f(!=}V$nAV8UAL~Lg`?lJmQY_>x!tSq5fVmKM|3}^EH06vvejI$hI zj1qQ^8+K5fWDm&KOJq!oV3RCyp64Tz^Y{M%x6-S0HCT8m!*YhsNXR(j{{XAE<|$<| z7HH7SZb*}61{1hAA2XlR1NrlmwxYz@&HR@NcgDa1NWz21hFJ0?|{?Ce;h zi2&d+Am_h)44A#?r{i7-u0cTL2x|01Rij&weYS%Q$f+Vd9JIzMo1i+4Q6@Vs&d%W8tV^VUWAr z0Hk?#vXa5K76&CT8!QOLC7M&^u&~8;Utg(#xzaTG&)OukfH*na0)l-qLC8J*K{@1l z8tIQdNO0f2n4TE5$H3O^I!{k2x+Qp#g6wBvdE+FW*f>035xcp?dgIs0a+5sL=+oh{ zr~V4wrby*y2h>Jek9_C){uRIcopxUnm-tV_!%wANX^vXhy5#W6PIx&P!TD#}y*Rq) z&y$4udBvH{BKuuW-otY$u-%RAxcQf31D;4ArLp+o>+Z?*=>t;1Pz&-Ohag z7|%Jt!(L|N)1}+uEOE@ttc+tk9I!dZ1J{l|oK{^{=TA|79_9R_FKnjSl*AOuGnYPN zpT~jEupRN*yuPVjzky?dG2J6IEKy%V(CW+?2=eX7D&CAZALr**5_sR}*y|`M^Zl3$ zZjnW}b`nJ_8%EQXM+`B}(inaj=RL4-UfiCLZaXdhCk4|x=VK?Y>GEsw+gRE~1X4s_ zJYbS}EOxJB-+%`0dz#_W<@GJL-{-vPmkzqB8>jp{jbjH>cal~Bj||~QJ&7Ra@yF0s z@_I^5{-2)qA&NMcHM(ozN1lBYmkn3FGg7?h z9b--;T*15ya~lRH=)ZW6m>Bujt{r|k@cv(j^JMArN4LXsGts({>07p&QPJVlAY!|g z<^^^@r;>%#g(Pv?lef?iT~;NXewpchPoHVa7H?ASQNL>6=C(WRe-!kq+kXjG{>cJ> zd=V*6}{pw>J?%HW?lz2R~iJ@tpc` z^5U}b>2%iqf6>)RNm}ka>***dJgn&$=P`}XgZwMV{P_BEYI=&@BU;RTrSg5C3wA=@ zb!g;Njn#5M;NiBO{9yX!1>pa$3x$rne2{5HEVPc$#ENrQGj>IQyBn|xE=YxJdfh~b~TohH76zeYw7df z?rvQtsPxv2A)l*l?wUX)Xy>)KSjrO~*yCj?%-}Xyh{*9U5bOlVy>a4MHdpn(mfrKj zn>?|8_*3xC-==yWNY#3STeXhjTZyk_G1|p5e)3JM*((Z` zB@_Ty24++)O?nmu7L=MtId#jJ#lK>7y{z(|#DCg9slGp1+v*<>;kQf6W$^7@!8Uji zyRVGWr;6fVF5Q*IEd=Y|K zj!yOS72K*=`PhZdNVzk|sg+eqym|VsjU4@4uq{dL-B$(@F1WHcG3o1TbKtbY_o*f% zF%=^_UvUkbe-Q;i&N$oE^e!p8?e6)11|ip5Nv{6@o+e)VR-Gr1S$MB*&Z!w^Mse!Q z>z+Gz8RHvIzn>gaTb`YJw2iAt>a7kf4^q%C^Z|FO+_-2pM!1$E7m<*uLK-;}ki(6^ zkw9z;?+2rQ@BMp>$_{&9=iK%;!M}|iF{?>y4!iJsq3-mpE5UtZRJYP?1>_b&K#zDJ zSe{8tAgfE^D|3v5ETXjYN%wyia+Wm?SIFOfIBEX?1ohsglHaGghIsFFJ19IRv5ZHj zTg3ZWW14;H=(`-^G9DO10LvOAfNvjIqqDDlk>l06K3VmbLh8Q@^^1O_gHDot0$AEx zTe;Dm(qdB%M7Hiwh~2OX$-z)v0o@q-nxmC=_iXs(X1!9jbmcI0KIrwzz$jCaa`PzmzkBcmLX<_blRBX_lYRO9^-=CSYIiM}J#KZRs5oRo7sdp`O!B zhERWddP|v{4Z=SH+9{;VWPr~aL^FwHT!4IY#G>v`*uNY4o5j^+%lc#Qz5YpU?RD)N zq4W^5)Z>oo%J5pp8M>b0D12oI%0N3?VB5htP(qBKH(}lhYiQN#a?2DH|vxRAQrOBX-6rqp=w~vA2vG^Tr*X-csA)bl=eSW9zNg zJ}x`gx3czGPp0~_QR$oLwe1q}YkR9^S>d{kiabuN4&c4R1L_7z#(gVNR(hc|E!X$( z?0p02fBKa5wVk)wx~j`b)}3QTQek^{k%oNiQH*?n&J{oQt}+H1X`9lS$vXGr=S2KQ zOU-9e=w#D6nss$soi6DT&DrsZCAN|o0e#zx6)4Z2F(mG&;(6I>yeilnBTig&|r^{MvCfR(%}k4z1|kw&@G4b6C3?f7a+>#SQCNJ~B!imto>uIYW7@#|;152Tp`AsA zWA}L(JZGQ4(vEU;SDgx-{Ab#fZW0;16SdF+Ye=+85lJ9^S)q$#L~5t!`cNrZa7}IC zk%u=Rpj8SAGV{A6oP*mK2h{iPnXA~`Qd_gX^e@ESD@dN&En81XZQ@yoGtV@8S&$NA zYgmlR(iPavyDU5~&YKoQ_&I$Wkvoq60582CXAh*|J)Yk`hQz-Tz9953QB7m6bS{r| zplagP7g1d^7WPuy#z01bCU$7l1yj2U%-JPFW!t7Mk1JIwuLo_fhyMWda?90WPSxLv z+wp(34Pz3;)pca5A0)U0)Sn<5$CmjBN%7Bw_rGku?5XeML=OpdG z1fNXy^yFvLo@$~!&QsOD1-d7#FIQdaiz6lStHt9b#J2Jn*bwoSg^-xak{L6!sX53e zH&L2KnWcOH_*>Ijg{|PW65d;?tO=>!OM8Sx+KP*K(v?I|L}50n0zzP86}Ckc$+YWs zx^KhldyAftveB%(Nb%vMF+$RnIRLQQ8#&k%o(lpGAW|tm&!Lv-o&@-X`*3OZN_tPB zH0utf)WBfSTG{=o7~+o#cZCuLQp^;1dw>Ol1!6JjhfONJJ|{U&`T8T|*Tp~DCsyix zR_w>qeJ!U+9PYA{()vqH;$?yHe0x`I{lN{K9G|>1Ui@7%T*>>Juc_ygPlT7l_&n8l zsL!ZM_ctXAx#tn0C>h`?DuqBj0ssKx7~;J#ijN=3mPHz8lU)vSWZN^^h{I)onHVCi z7;+te4`KLGlI&6iK}1B3!PmS_=~x;8YAZeCR}o%O6@Bp@s9< z(4!AM`JtpYwO}C$+uDVz6cSAZP-oJBTn}mz!m227=~bd8G~}O^N+_X8JH07HvBEYT z@l_$HJTIR$XpTh70sLwk9bbl-ab( z6M0Mw_-xFI-ego}l)sjJR{JB+u-fFF&Kq_D61#W($sFSZ4#b8S8THy&jNwVZK1ohZ z-JY0XRYvhAOlhIS5?r(}yd@S%z=frkpA5WyaT=Tgpk#j&$P0OSKB4yQ`T5DH^vG`L zG>FZNR};q(NY;4Pa`4RP+qV_+@wh2acK}yAj}^_$%kqw^8b-M!$k$@-$TF6|W$rli z=RcQh{Hs*brb^z?E#9ZP)9hXZM6A9d$`Eek{nC9@@s-9n;~6=ThUVqqW-R*iQn$9A z%-u98GO|n~AzDRZ7^ykzN{r(f_3mpjz^`DWX;*seQja(cqa&UVem;DCYtal0#H3YC zN;yCD(*O<+JF}ko2DR$iGSYvP{{TJY?{+UqH?uo%0A1UOKR-{Wf5Np1JbWeaM<;vd7VQ>1LSrG`{VvAqU#~!Uhm@0Z>OJ!&-o#3F6BS_**W&-^T%rG9;OoS_WGH4 zq`6;zp;e7PT$_TsNk)vVi7HJ7J&xoh*wlN2IjjxY$wC$)OcEr*1A41RSQ3PXjg znA}l-`WnW#_?6i8w?_xWZI~J7*0iLba}G^#tdLm-UlJDFI}?sM^sOXg*LG&*pjv4* zrLJx@S*@I;O1>SRh~b!z6qF}pEMs=x-XlH-{+{Ev&(vd#)k$Bzj`(vpyH37lN^zv# zSa`an>b{_}JVG-7^C1dV)UHC{=XM>Nx0DPs`61G{zx{2l{NK3s&#P7X)%&}6n*F~| z*-U^VHU@d!k5SGm&n~wl9W&97r-ap}O*cy05xypJeKJQKy)pI0Md=y$p!z8Jn5(@7 zU{m4BcVmo??OurbL&bc~FQf2gEBz+mZBV4{9l-Vef0(aSdZ<42?KsN}?d|jQ+KOaNqhFTpN6Cocz5Dw5@N3bB9_N>;o|Uokau03~aC&ukCn+jTs^X3vA5jRWZ7*vv6Kgh`vn1;LkOHnp9DfKrXZ|aMdU-zI z9lo@Cy<#%fnv^o9h*^wz{{Z)7Wd0*PzE#RtWV;$!qMbMVnXxo1yNT=w!CapH{lCsD zg)_aTR=2xI3ul}Ra(%x~`&OE>Ha6ns-tdDYWw1}*m z_N_)J({1u4t>Kf)7nHZJuYXFDg#{xrx?R=DYoG+9y8`=I{vN+9~4 ziwb;xeG9FwO#ByLYm96lOSHBF4Wtw4$MYci;=JxOcTF;#*7!?FB%paoRybk!29$A0zrP{HZBWP%)y#;}Rvjg;eAS@~nrRIp^ka*pf5a zwB}<$mV#4;+f; zrLyWs%USh|aI3>Pb(D;wrqO~283+0C^37r3eT}S$*L6K%uSAk7?Q%ce!O8Z|KjuYs zhB`9cnr+;zxCvQ90hJ^C73qpOwpz2*BDVeew)utv_aJ-Jlp6`rl|4mob?2G4NHfj| z$F?}eKDEu_Xx6kMYtT29_#}`>IsFIu^rObitc8Pr19HfGnf@m4kLB0 zNdtw>djK)cPjUTt`PR}SW*+26G1?dcJwW5@&;6^Ub}=o=0vObmj!d{Y#tskVn(3&` z5lD=uJObW^t&yQs3m)UQuW!#3AtFP+leZZd$G_!L=v9j~vc>#caxsi?$GsG+jxDINa+`gtO?jU-{VV#GgURhI2p+^^kJkyB{{Ua<^sKovN(ji!5Q-&`M!Q^) zq$vQA-^>6U4tw^j>Ma;|p2>-M-~rTfMmQPt$2j@_07~EL>}AnfYr8MM5Iz{}6kw13 zN5ATRwRE#Cic^3v(5}uqw%_ksOT<-_C6j`(&T=!#gS2{m;h)PNfUT(c88Ff+?=FqF zD-S8o8|k0zU3lahWv;aZI6<;701Os3CyZw}BQ@rhCUn$`HyuS`Z{>d#-=0E&#&Ou3 z)?dZ!e%y#vzivwJ;YO5-_v90TGC1`2{(iMRLu|Uoon7TS%&K>Gz{w-> z7|+j~)b&&~nEQ!*HQzFlGnEQPNdq2)9KG7GT+OdM1-zE9FF51y)b=^c(Qf*Ci$i1`F~@1 zI&}#CnCkbn_oG1SYiMm}jK`;&7|0}{X%6fjc9$oQ&b|E(c}+CsZ?_*hJUL$f0Jl%y z-`v?cW-T)Q5p6xRVbGsE-+6)0u0K92&7U;kFWr95J_oC&QIgYM_x_E-??cdLxii^m z%W9b67HOC%1DqYe@^Wx;c>^aIu7Boa@%n#fqx@(--%=6M`c#Rvpi*!~^2`|I`tyU1 z!y^E21xMFq@%b;{E|wL*%f6el)UIW^zLx6d;^p_w^G?znu)b9kX8@DQKZhjo+n;(q4- ztEn4&IkHaQmI3nr0QKkUd9TmGxNy&H0#M`qsz7h2t~>MF z=wkGoqqLQtOr0EM#>9Glg$|!@HJ-6;CFQJ#J~gDC6!Eth$dWfgnEVqXm7xhw=3FuaiGU&Kz&~=6m7S#q+ngy>F=7O%ar+WoE!+ z_4<>a=ZD;PFz!5ba;y7)!GZC<=W)EMwO^ zkCiIQnT?M2-YHB^;j;ECy>spOp2G*s2c>IGkuo`T8zg@L)W*bsNx<#j8SVAQ(yD_q zXttWBl&RrMBX2nXDvS&cGwb!It7f$lMW|V_u#1*nalh{a>6{LD=iei~4ICMDlx}qx zB0~(Y`NWbXd&mvb?&=soss2UP|LUdJOaJ{rxLmt&>qP*WN$^p)R;ANar6se=5hR z+&qI$t$)kJ6h9;{af6;ten;i_3VOJWY=rejp=*Si7}gfPd_6vZl)B!j&HIL`;aC-dU5>SVYYksy}RZLIP)opJ~nBOfkLKb2J%5*pW3TSsed zWVLA(vIDMNau0CIc*n05=;`M5Zet`(QpQWDkz|R8M6 zUJdJUDsJ1KxCEc*K;vt)fTaN zQbkjpz!k~Q%gi|+jtz5`25n?WkEu1AJGfTUOm?x@sf-sKhTK3<$AgkG0LFX!+!)$+ z)sk{jRAO)Xfv(|8bd4EMW5i$sAICkuUrO9DX=Ii|4R5RJb^)HwM@)ZzdMm=Lj!DZJMPyyotSZ(BGN#FyLq-TOa-MbuTAXhijrfFuc&*10!-lK7= z26xjGoyClshT=#+?HL2HAYdF=WiwclV7#ewfjiE%z}RfbGH$(QJ+9D zfHUcjdiA_mX6^EEjIzO0ZoP${w(Ii&oRSX(mJmiV2+0{AK1Z&8M~eddW|Z?k#5-oQ zGMSCW&lGLit%BGX10#%a>T!-c)^*{I)qc}jb4z>r5ZZ~_RGVHB+(x4!IUL~N^O4BM z$lzr2#dnK~RSJ)tf1}5nB=OUowEH*UWtC!Fy_^t753o|iW9C0F2>SY0l5>*UQg7(} z$G035(v(tO>t;l&622n>q>nG%Q^&V+&(rg-KDFEVf1cyA#NP6L+md)kW9ml`oSWE}GGxb(N2=IZ^6y-~KDSdf3VC zzUPvDjms5j-^=PB>6dcbm`VNHZ7Kj81DB3R9wYcXsL%F-D#oCA=@ zZ@*>0^!2Zr)&rTVYo_BY#0D_tdi%^xJOVon>A+?GF1#=K3uo1ae}HHlIsXIp{d zLIyV;cwvG#I2q&oIjW;vo4Ys8m+ITDm6BOHUgBFVLU<*yl6V9obQdv{mNVib=Xf{- z6=nV(G04TqZeu1dSgPyTV0J|mk}bv4NxJ~P2*?M4pImw#J7Gx&HHMtHIz|8mLHfQb zDvr&he$Z?1n?Th1V??!<{@Bpx(p4(Oza)lqT_A1dbx z3G*`j<@(UY6t+GFX-U1!&r0jH(HY~j-Yv>7-Ly0AB&jM+c9vXal#Kn+;s>yFXifzBTjlR)2D9#Uv!B#QhuZG(@v1e=%hEbI}$Fi<{rr%Sd zHtPM9z6-KC2mTj^*H3%BM&eb|*;q?FvmitR0K2LMU~$_EyU>GQA1_<3brhRV!MFBD z-RZp_EjKpSuFdE*%Dx_2j3 z*T9qXlwh0H8EwYvbVhvf9(1_KUE&4 zI->souW7SbT-n5{;>{ZPpTOPl4hcEP_VnZFUS}5j9;D9U(3( zMKoxRg-*nkN+t=;c5r)RjCpcBJ&ndTdaIy%Q=vW~+C!jq3dG$-c_i`dnJ(pyIHg^% z!D}6?h`uNx8^oK+LX`$E#G8w))3SdfmTs0Z5&$8CTl9BM;Bb&ok&J&*$`U?SDelx>ojWCttOe z&iV&vrG`|)BdNht-;it9i!^d8i@(nU%{&e}Nl}Y}_XjLLJXc*u3F1^;@e)&>4?I=7 zIcaei@hhC;F+~Bl$)< z_VoV%KMLiaC##K{>G1m5BwMt$wuBjO5X-m>44*=C*mwT`y?j~co8h0JhfNsvM%&WY zdKQ;@Zgou}=JElwq)^@%0~KtME@PFMO7Vm-u+BsJRx(ObTf6p`9AgKv{P&-vPuUOS z_e*?b=_s_mkkiJCb)drywa%2dF~GY{!vkcOjN=(NV0digGkFh1QR^rq5)H_#06)YC zC-a~ziUDW>fG7fh4FJu(j(boKpb7zw;Xys<4>){j>t2!RTT`fY-&je~t^2tx!Ml## z*{$DymMH-e=d;GD-ZW&#v5Ns+vBAC(#!^0K>Hh%rNww*3wCHo$Tx+(`hDbFQ-2+d7 zv`AxiZMh?JC;$(-6?rGt`YApSEOWl-)iodbr^^(&eV&n{+?_JkXxiw!fKPJ}Mht=c zM%XtHKyMIvNGA=1()4@rHnYD2kag$%PJSb6z9pYUS!w!Jl+mbhaS*wcWWg*@uZJEo zd$ep>cy2NeXmm@vGV&UqQ2yWjd8^s3lW%FJE!m1l{@jvZ?o%*1XvEhgRgsS6C3bEk zx;VfUba77iBgwJnDL-g`i77O<7X44D#PddCkVkbc*Wf8)ti?lZ0YOkOpatWK?y$$e z#TCl*V8V^ex!mr)rWk zfcw@;Fl6_uKz&*x6z3cYq)axN4MT!@`p}k02L#YjZq!1~sc`J5cxF`GSMbQs=Unwk z@$(HXUfg)#cO07BiwLVFfwqYg4`Y# zbA|1X=xa+I3nTknv7F~T{JHe1;Fv>SQIbXQq&tV8Be1Hm zq%5c6G@M{zdkhcKwLpVe-Oo*|=G)v!}N9)h)UbuC#Uz?s;^pTez(Mk07Q?(r*=x{$; z^+T+S=VQ%2mP?JrTTrJAc^na5$h7xIgCyK`W^UHdF#Xv8k3(8(QR1Fw7iEixlHY1L zQpdgzWAyz004n)e^U4ya%kT3(w?&3I zGe-n}P1E7_nwCH zIUoIvd)HYssr*j|{yrM5ZRB6_u1x-B1C5}8^7;I@=N02_&wUGWSsK-87setLk~W+)>L1sV7TqzJ(!uIo%hASxCquEHF+tZX5yMocH`| z(bPxQOHy9b&(Td`f`p~QoW+yV0A{%gr+(NaTI%Cg8AvN_Iq{Xgyc zVaRerp6SR6IZWesWBzh#sF-pZFu+TdBhzm`nfLn8$wuj7nF(d&axmV%O5AM`n)Fv8 zWWsPj&*C%B_pd~we3?d4E}*}hcotz*GmZFSNgkd50FbP{nh{pQn`P*{~ahSD~K0Fm+;`SX$6zHwaX zE)J=-M;4^;<_U0a2?2waY^cUcfH8rN2ci1rq@iU~q3?YR<(anQILjy`5!@bsDw-&| z#cvfcCA%pY$x<-6BN^oP=N*T7DtwW**n%xV-NH(}v*aA-+nzZ;PSvd*26cFthq>I$ zZP=n7alqq0@m(Vmo0S;Li=uHD-U-3n27aTEYoua@*(7KkgKjuJgm?U_AiLoWq>eCo z{?&s(k*FLHqtK4|{Cm}G7NbW~l#{>Z{l8k438Reno!IBt=k>))0-pvkjmo4SUvI*t zHd1vvyw>9&U}pdff8M76f#Q~RBYy|*A3kwaG=kiwEpT$qa(%yC8rGr^${h|n_(u6e3th{&Tn5`Q|h8!IzG*igaX4Q zgJ(bI&(gNGDiS0_@*Z}abL;e@Wio0I9IRQ$#!f#m^R7)Os%Tn%5+H;8BnXYwlT@zcj0?;M~z5pXx7_NhUKJCfJoWe5CMbg zIQn+|J!`VY;*M@c7VmO6Nc^n0Bo^cz{fBS!*1E)xVyfL-07RsOz&Y+Y`IB1Gm?KHp zp9C&P(0)Ik<5k4TE2}0R+y%x%A>4WSWSoAV)}r$lMTuGEWM#?_u+{g3w`Qp0kAwozciB?r4gXL4kPCJ}uzazM+q@N~U#kE$j1Qo`E&KIPF?{v4W~OI&ut->81fU0 zVD`ru#}!n|$pN!5W5vqtBaPgTelb^Hftv9z!8^nZOahKZ;sT$RPAd{tZY`qhaok*E zcZf#pg+Mlu@1EbE=v;<>mk#*~?nO<3GF?ybm( zV{r^mCS5{QEb?4x?@$>T-xcneAjNV_=RAI z%t8+Bc5LnK$8TK!08CL%iAFWJe&*?58?f2kYdLex^zO}PH+n@2*)G0oAa$VL`u!S zLg|S$DTRbrutbG{23dA2gfQ|A=vQ$kfW!_tBLLSYI}Rs9>OO?D{{T*k(?^@_n!vhf zZlkt^q>emrq0PETgt<~xRIw^M1pw9|X_dP;vf9ZLOl7u_ZPy^V8(9eBX#1YNjG6Qp z)kbV zdoyRJjI>N8*vB00^KD-FIQQoRn)UQKo*7$v9$u>#td8A{TFa+x(HuTuxR3>AjJ7s| zyBk=x4+A47+mYYbKS<3zp5AF$!yii*8=L%SP*|)SJ8`7R=4&aJ*N$x#StW7+BPGB$>Rfx8)?=50J5Z! z8JEO`2m`st0DmD|=aw+#o{VX~KVdvtRn@@CZO6D^ai67mrPo1uo|ts9d(mTk){Ep> z6VKcL4{wnb%{X;0boTCQN?1Mr0G?#A^##CR0wxgT=gYwS`-AlU)rs^fJMwNFQ+s}W zjKmk3ixIhGINESG6Q1KfBM$!nkLO+|jvmj?BiXIi+mOsB4lZO2JYsUA%fLOb3CH#{ zRl!+t5T7pd5y?EtLBaIojz6EhVakfPCSh}G*tVG(P68^j?(W&U4K~l(|E4 z3A&S2Le|E4VQ@;w0{}t57~n6rBPTu0ZDEgqa%LXmR=&OSUAwRZW&Zagx0~nn71d)) zf@)<+t|WN;E$lIj1IYSukLOh?7TG*;O5hV90hnYlP;>8&e=O$}ha_mc`lY3s_)rsZ zA?1%DK{@A+bK0=6xo*p5WiYSb&j}VnPAwrUHq=0w_>T8ap zX&6VD<6{~E8{}|CKhD+FB*|pXW4$QHqH!}x$7raeC&di42`G5!c#?)$*wDtOPU8rzbv4Pl(e7k0@l30Xo-~oaGgSyNuurFdopY8425LD}m6HDese|Nk*}X+$L2R;`t3KSealzU> zeSPuYj@3O`tz}fbidn=iTsw|1GutPYIT-f?x2euC)73PsQJq_v#o82x#(2-a^FP+P z8z#1n1!0EezUV&QxWVW3{3<&tBx_rFl&c0OoxbP!)V7Scsd8)Y43?8)Io{dq2H-~@ zA&;OO`qyVQBzd8Q!cWY%AW23SJI8P3T=+eFik8lZ6dy1vfKNZCFc_Z_R7Owvt`j!mu%i0J!>><<8N zd;0NGtW_BZt|A$@MrhjtOJRuLD1O z(}HvI#Ecu{lARdSJKO<`GJ+1=WFMHw$oxqkEZ0T)NZ_(_zqGz(REY#2DFpTae!1*3 z>r<0)f{w^Yrz)E#Ic7YA{5bFb06Fd3JXWYO@o^XpwQ%5(*!~|rK6NNrUQ)%pQ~)R# zE%WsL-Twf+Z7rx2uCFIUkf#mLCmi$GV4gks$FZvvmw(S`EtVHjom52=cx#Z$xNZf2 zK8@QM`F0+ZP^V~Sv+-2Ngs!ht-VwN%0rcrH{6)q zdA0O48S3D`Y69;{@Kay6n#vo6XMyEY9CNH>EBI27Rf?Z0V=S-bBY&2paZ8?mJFmHy znk!>N);g+fHdnBFX_9!Qcv&Wml&hm{Wyb`tKX`g)wrksuqSd?lo_Y0ce$!R|09u~+ z#Jk{N<=cP&`kp;8kB|e>zJzfosy=2&IXivJ)+KcX+i`OW?TwvxvB@BA*a#iTILB`M z`{qzQ`7xL6t`kmSJ3}0gwbY5vmkgUnlo94$NFxDrb4PYMYqH(Gv_!wdxOCTkU<1jpC?}od^>($c6zY-FD`D{SBqV| zmo{|07eiU+GT7;=ohf$(mba)bx2D@FCxLgeHf6w2JWLm6034EV zat=3TsVowX{{WvOjB`RxtoNTrvejd@mP9kiV|!UaP=+W%O7cp9 z!C??P6p|zW?i_Vq#<+HP-cQ-0#1Y^u4kzx}S!G+(IL&%EJ2mJ4|v3hF3y%MD6vewn(O?@m_z)VC3= zQsddx9oIPSLlK_bSKY%oN;fr3`B|Y9{{Tr0bH{*R?|N6EGsP%0Ot^2lMsti4R?G_V zgyqON`Ot~kNv7DrQ1E>yc8o8RD`jnaY+%+3x8Zgp*6i^#1@s{0jJ~@lQ_sPeW)6s934UxPk!~^#y!+LL(4H3WsLTagQ~8 z3RiodX-T4wRDRB%5qcam^^Svk6ey*nk~CSNiyo560g)pkz8#dF;9{(r?24`TU!R@~ z`V;>EPR&!OdP}LV`Ug|#St5$&6_VpqHX;e_fRDtDE+lnUDJKRsfG7fh4FQ1aKB0rAG|Qf#)DlOvv_mYS zCCda~yx1fRD9aL002Ap(4?E~TwP#Irs$4_R$tC^uxd+48>WrK5pAe{3VxX`NSGTC< zjp^jVmGSxPGyP%vOZ11sJD7C;0E$;1=r24?B1<`0AtiDdcScx@5rA1#GjKT-r3Wqy zOEQlqh(BpB`kM5|O4wZJUjwdV)%EETKLY(?X10rV?d6t5T$RG(?*drld3pBW=-j_? z#(hofkB8q7{x0=*#e3=XpNJZy`jqp#$+lMg+-&3$V?l*ax(AdDFO+$32h@f&4h}8f zCp04+>vm>?zc`>osTn*T)d<-zRbEAG#gm~>JjxrlzrWU$WwFFD=g?5inSC!oz1HWB z$4iDu=adr~A~7$wzT5+xdY;3%BNfXgc;i<4b4H^FBPZ285!4+EcyxZW(yw%z&`u+~ zw~`XT9BxA32SeRm304F$k_a_%WsYCk@9Xd+<0$fta18h39qX~rl4OEHrcen$LYBe6 zC(}OX{LM{CY})+t4L-=Z_60{U%#0>qysV@V>&Wlhnu<}Ywej2Ha+IWtXa;2%&PdP7x+$q}T5FQHV7|3Q0nTVq zyN_c)I1JDZ$DpAs0%wC%ISwFp6lj)4N3BCijUbKhC7A^etvGT@e|dDr|!-7ROz0Ti_6nmw6j|*G9qe3KdtPXMJQHDNH z%rlZsYtfIUt=|6tV-8or$}TS@oBse%FB#=jDaX`ey($SAD((k|&NJ&)gC1OCV8^!{ zRHASu?cK4TN>H*QA0!-OHLDgWB@ReD)a0m$%1@XBiq@JXlC8$mjPOSlmlH{m$$!C* z1Cz~aILyhAJnq;G1~KXD`Bz00V#lPQZ9~QgKK-jMi1kFcA8;Z(0s4MDtAFFS#^*QH zCC>xfye3dt}h#1j;d+!%Q4&&!Z+k< zXnp~cjna=O13kO<{A+OO=O?l}`8udWmc5IS42cNDj5G7&KZSiPRfTTs`57;&m*`*D zwUb461Ayxw3{MM#+v|$4>Z9Uw$_U4e&-SV6i)H&$E%{Wmk0&_JN8|qhCbKGsC05Mj@K|ZCA=Iw_0Dd#NC=s*!3gjSL(OVsx8B8zB9c=+EVAl;Mx)j)Iq0Mvf9rG@tvj6?NYw@bF&a}i^>GY~#U z037l1u8XIxe?Dc@WB%7Q&A`|pi3mKF?tVi6@$>xZ=}C7bmc;jPOR{BMnL8xh01J%d z_dWgdQ%Y-QNl!^@$D9V-M}!X`ZYPfT}9dLB&8>1t>I7m(E%bcmn#xd$Z z?cdV8?{mbaJZTw=6I)J{SQ(kdg&QoVo4z( z)LnNhfdhrNX}1w z4}9b2T__f9ujGrETMRe^W1psY6^TJT*fRF_7k4F{Wsrq9z&tNJ0qc%=?tRU3l8k#5 zF&`-xW${TT3KV10IUtew;#7-@ZBZJQ}GHvZUDOjlbrvy|4EOqJXEaKM zkw1uoE;0E2p5nDeTNqn%;ap^a+;jf`dT>iDSU|5Mc&qn8^#J|{xB1$nnY?lFDry^3 zn9-Ba0gt**uO~mt(-pXHv8k2eoG9>^ayiE}sUr_!>|qb@W;;PUMtR4%=lu2USY^8{ zo0##oIWWq5=LBGX2^i<|`F!(6(X!Yeg4@G`2PXjsu6XV+KcDokJl^Kf9QM}(baJy0 z2q0ycXXWqCG5z?cq-CQ4HtqWpJQ5GDV_ngLNQMYk2OwhwbKAdvm$&Irl@?YRC6GAE zs5$O3Gr+(&;q$dY(xGJ@6|@k%<+!cG#s*sLolBJo*d} zKBUpgh>^Z&4{>IsY6-p;R#sA~Sg&)2WsoipX2A7a9thz!nbs#wy1LMHogtvTifesF z9g*2ThaAC%!QvUGSrya<$pgcYiEJo^N0)=NY~lKrm9+h))q^o49}UJh?h4=^=lOQ^ zLnW$bDMZ0C7$n+88$1S5KLQPOvlm86BW-ZOZX|{+&4R^F264&9a6VZ$_pI<~Nip(h z?qges9wtIgHn1ara(vjwZaF#52Ox^7TZW7Qg^+@|QO6huzy0fWWuY47?UZdJZU#FJ zNB;mJ{c5PDXL8ru!p0S%1Cz)f=klqeabzaoKbZ=4#s|xf<;5zD>LQBVuzin-6O{#k z^7{Md>H5~2HxyX51C67_a(G`}D-5W#@jRHDYbXF@Z8-Jy1N(~2&><{{G08iQIW*mt z=(7VEr4d{{#bQYLpFy7d{{Y^jRIL>|dy9DK6NHKPmHWq@4tsIliCWy1zQg=E=3v=V z9!DhZ~mlhB-JKf$Nj_VE$v@o|9UL z=hTq~VGH9h%N>kZp5610rw8RxK)Q@C+NHgbgMf#&F^cO{jOw#t!$E2-CTDQFa08z!P6GXC( za#x>!FvtfU{l}$8w_>f!I(@9l^IJiA3M-KAjyH23AY&Yodu07jb69dJJi(~nLifi1 z08RxCcW?J>0ww}N$Y!I&=A^Pfz4c>WMU1KN}HL{j}Nh!A67{c4O{zW7)9w(*9DXZF zxF*q^xWnVkk_HE^c|M%pO62I`&S`(uH#!}}QfZP!DiUxRNygKHe57|d&JK9*>t9c$ z=+Rj;=Yz2M&rllsA_xYkfOPNVX^^eZw;!eicw-KKKK+b6*Fk>7|GFN&FAF()CL+ zr4*~r`b2MOIf>+Gp^ij;-ZW*o!TXBGBj!2xu3LE7>L|Rn@C~K* zX}$|+$7&B9n#TSik{JmA5Cd`Uxi}v)$2HOs)!4+T6{6H4lf?TbNf>758@a(hs2z{? z+_AXwVNFYhIqs)>c_xvRN4NkEGn}7ne=5e5nX7FYW!>C~Fp@L4hUW+0)BH8;jBOmr zWMd=vu^dFik(_g$dk^kvQK}sqTm9E%Rv?yU?%3iwEbm-tnppoQqa_SY7 z1A*M*pUaGWD-p*g_cY28Y9cnxyldh5hEUzP;kM%yzgK+zdxsnrrq-I_d;t_o3*etF zdH3M2JoYsf9XtMg$z}{JVMvU#5bOhRo$=~3{LOYVLv3#)jzJp+W$eIU^Y#A#wMjuW zVHd`!3NVV|+z)PhnQXfNg7LgHQly=snYah$3ZKu9onfaEmXk=G z{Q<1{#A`{4xY2H4!DxU!q<8#B7(ambuCdCDI1~g6Z!<@5Hj&&F zAotEO{{S_n+glo=r0MdkiTjuz4;!Hc$PJYofN(qW>U$1xUK#Dlw8(CBSd6N!5+F|3 zLi<#Ea(VjXU}J)PEOLhuz4no4ccU=h|jIdbTKa0788Ai}H zfJyZAAYSs=b$IH-jdv)DEk{K0+LQJGQj85fHPW;ReTRr%AfcvQ=Ny| z0!y(JlBBAY;3x&Lo;~sS^NoLz70EqYW)o4;?{uBw{u38G1uEoye8cknYosQp!I>u> zN-oU`5_t>($-pDA$2w?@$Ns~ZI@z;U#mLHQ0nKTawZiS6cP z0zK+ni~>2%J;@va_|<757Z&9b6^H@|$CNWmR^ z%ZH7#=1DO!ADGDmXY2S^Xyi#$mHRe1yl=B2e-tN)Iz@$CGv{c|J#r2|GoO4^ReKfM zThT|M-d?KLlTOs9G3oKgD=>(#R^wm<SjLgOQtc?^qc}$nr)dFG{{X0GcgMrkPH**Y{P;by z>DT>u@BJMf{{X7~7JNq0ZY{dD!t5|YW6Gl|SMNB_6LF?^AF8bSmqWe(0AAE}ImN}q0$AlYtvr%%Qxn7FdyMheS3{hUcwNnRIk}ofd7Za2 zvl7IgpK@y6#~Gt}(sbL~)n^$0 z$sT3sOMj|g1a2A{S?bp!+V=5m;$geRl}olqZ@b?<$o01Yl>daspE!t$^KEb3wWi?u*qZX z*c^7p`R!h7J5ng!^t(=hQQ1O}#|4)Fo_QXpAo~0Eu8T5XmPuo?oa_B1d#BEJqsX{s z$!xF+MnNYY`Ss&G@n27->mwyn+wOecqooZ;aKuMbiE%m*4ukeW9nli;LZcpzZE)zt*$P$4xqX5Zm%%Y$gxKg$V!39 zPo@}P42{HYB-hl#(8C_+@MY>HJ&tY(#|IVcJk1Ii_RR>G(^hf*0N#w1o5uaVUBRdS2|kEMsG)w4%ZgZ8iZiwZWM(%oIC zSlX5i1PKyB97q%Y08Tj26^%zKix?4)DZ-JO`HBs5x%696Ux^=DKVl!+7<^FDrs(Zr zIYzr^@?Fh(@LJo)clL%d60t)ee;1s}>?Gd7ou6}s8k(aJY4N%5^ihmf4U+bt3IL!A z0~xC7Nu=9Le>zJdM7xSYhDSdoRmmshIjWVBx;}e;(LcB6OZ+uY{5#Tj7Y)>FBBk0% zU|DTfjo_JHC25oqgi`Czn`j}c*@vTY-ThA%Ua>8gKFyDkzZ5^}0r5}bRfWe)UERYL zjUb*Ns|qB{j^0Bnpis`KDm*B*i^oBJ4fr7f@QdFEe^{az!63k#L77O}i` z=F5G%MkER(!9oiMRSN3FqXFhpOA`M8$HMKG*UG7WQOxy@qt*I@z#8rK&End`uv@J2 zJFHPDB~mcNgiuL1PzFgo$u;YaD8u%nk%Zgr$I7+`1vC~&vCx`{wt-a{vEAx0I3G%> zf<#eN=Gk`5k~vkRh)OartVkKp$cn~9+H~vYBPx5VH^J0b>2GnPeU8zs=5=NgqDbn| zk}{Gp%4aw`NDMKMa53^F(n2p&a&O5$;P-!%J`#_=Z=IRD?N0MnvX4o-oERdA#{_Nx zjwLKxYbjYy1%rx zf#tfAD2$Lqutpw6k@2x`zG4dlj==i#&DKjLH`~KvV(8RPvGDVtdWP?$wJxNw(Z$b7 zTFfK6y^tV{AH)9u(rxUUva%1m=Tge?;qYtAmQs_|%RLdr7_B7S(l+|W zw=IRVk351oE(*sXGB^*g@a$c{C66bTCnn-;^YSakqVK;R<5Sdr9Q7AVTSIZJX*0ub zFdi9uS5$4-0D@F-c*bx~$mX>mnp+}_9UmU0Z*ILwY?@7+vaIc@TqL`^5EV+r8jX+K zvH*<4pEK>jJIB;KU$y(ZP8o2i^Zt$()G+Dx`i;arI?^_tu0$;}26DcHkgJpP+CTV? z)%Ut-%5k|WXUfSH7U;(+o-5Ff5@EFG(v1Yi4k{2h6+oC;tPajQ)^b_sJr*zpCD96CFzTPP>*$R@=GI)y8|B(GZC}O4oLtE zcCBMp_eNQxU1}3EkqfYmM%6jPW7m=M^zEAU#~NIjD6w4bU`aj6_w7`z4Gsq&kUi)L z2@U|jOW(gH=1|x9oI=e-SV<%KynpA{KiI4&}3HBlkhoYi;CX=06h35yOQSLbEXm!K-vi1 zk7Mij=k%{HQ8t}l^Y1(KSn=fLTk-AgF(O|Th#nByg~dl6bu zY&JmGfv^x^MYFVjRQ~|PS22fMB#zz}?1-a*^&p&#cl@hfr9O8emw|w1EP<4q zob%lNwb>&q#K7RlT2gb6Hj;Dv@m;0C5s_Jxkc>AB4o`9O_O1;Yx-Y9C;gffK5zpiP zb69Dj*?u{S`Q-%m0Flq-_;;){YR9~>$L5pD4to>W{Ll9MYEu!H|aG_N6QF+AxjVkBxmxiMhTMWiqwhPR+);F2*@&g+q0hB;0^{j=bE!sMpomI_b4UF z1JiClzvqv_tsL5-rOn7y@h1eInCIKM6}ZCLETVpyxT~-ndP> zDkWIa22`+rL67sA%VCmCk#HHf9-gA2Y=lwVycyZ|Ng#qUKT6h{y9whkik*(QLM?IAGh@fO}y709@8eNI)R79AxB!Q-VFnM8Gc4Lw6V_)A6f7 zn%?-wfG{!GQN)%?N=^5$2YmL){cAg;RzTRws4NE`L(l12BV^*~2at>?9>XO4YH2Q_ zC%VU{IL1Ch=S2}@$#=WD@J2D|QN+559$@$pa6!&TJ--@?J|)yk71OZtlCA6OoSK>j zp&IBY$pd$CepJ(B)Kz=6QI;GJooPUth??v;>^A#gRbx+sEg7Xv+kySQZjSH6tJv|F~KCXWDr;J!BP*Q z;PKdToJF+wHz?VJ@Y)gJ%o}OQR$_Vf#&O&5uD5&{t3{=k#B+dloM2}I1LSzm>-?)V zMiFi+d1b@fxC{qiFi*CBwPnhRjh|2P;dK+UN3?G9x#38`BkTBMwQ!U0J4DM}+}lj1 z<{WY`$8j0-_8*Q9>yuoRS*Gm8NfdIB@PrD3I0uqGXWyUj*3)ZdW4T#v%1MM$LwS_r zpXcpYP%jNWS3@LTaCtk&;ea!r%#8XDYdVrGGan>(FfoK7K-kJD##nrS`RCkv*3~`8 z$Hk_*4oDK5p7}WS9AoD$^~P zTkEu$d^Pb6vZxCmjMFT9;ISA31fB*4Fe|D?87z8joWNX#jxtv`+*{3##2!dKpW&=L zkAbB#Zt0Gf&~=?c~ z4{Q_o(L`!1+R6*%Ll@56_deVcfP44-Dz!vgk60!_<43>9bB=L?k6u9e=A&!5X`=F7 zWbTUDM2ESJm=TX&56+`TlQt`OpQi2s}r$CGb0^ozd9fbBZ;HQ>Six}%gt>x6$^QUpAdi=SYU>W76IPlzWa*_2QwbRZ6hg!XI4rwP zJqZ~&`eftW*L2PfEPO4=1mV5&TyjTJGTV;vGPd>?H`)6$O6~suwTVBKd0ZhL%iwMu zUSAjSDO_l`R>${&*qk4{PC@*6uDY?cx?cmda^#nf#GCylbGO6{#Et>UI2=@tY&iB* zz18z1qnj@D-_PVZVV2o^Gljtb22svEJE_HZI;lal;_t_nzUR{D7DZ}mm$^T&9sZ+p z0}E@MvS2afF9$t_IOo3~QC?_cPjl%u*@uy02p!Z1IAOQ291d~E=zYy}Ruo8XE#;L1 zl86{!eE$IYa&i9vda6kcB^hjjxeVao9FjoCJoY`mTIi-IM~)%29f^|!jf6ISxjnx+ zCdfT-01f;@?!HLJZsQ>Ktd*8+boq5QTWfK>+xP$^pI|`b{gaCX3QgYVRGimtSR?R|u^P0JRKRT^!B+eykcUOT|r>X5y;OEB4DXISRdlycPR{H zda&SV`d94r*ZRGlrL1WBE!D(2FaH2{tR)?wB=NdE#eqM0N8V)x&=nk4)WvdD26Ow! z^}d>t<4o7=B}UeP`ga_9`;SW6 zfFHgozWj_=9+}!bv+4l(Q;x!j8gmXrc?C`eRAaw>eqQ3LiVVFUP*3EJQisFKd6be# zOvR9DmxvUw=nI=9l+0G zc=o5NNLgwfa{ks|w81-Xi~?|c*<4_p4>zZN{fRlvM~W=EnCN<{_REmWsm>5?RmmLv z)87~zatGAZ{{S662BvfkAF96Eh7$1P0z6x$fed>TxbV!ZK;Wpw-r8F;M2jS zGb{eRc`Pw~ut>Jkv5`cI1Z|f*s8E1psq+oE#s&sOb9mLA7DFPJGeE>?HxZGyaz%+; zoa1m(02@K%zBy9fy|~)F&peQ;AB7t20J^Wa>^(c0U9z(uEQ5`R zL}UYibIJLSneF}!rLi?KoTvngwEf}8&I#w75Agh}Y3wy_F{73lGq($l4n2N#Z57!v zNYP?xg8t=uo)2sf zrg_QyD#jixId}rb6oS!>_#6Vfdt=aXoMX3cDmiV>=jVxQeg;aVF|hb#p7`YR^y4_k zIn7wfcifE^Vx6I7QUOu-#z-7;4m)$4oQ(Suipz<2GD~tK+Zg3>k2X0T<#1g|9KA7XbI2?PA$mY1c&WmC}17OHcB;+_z$3B@S)9|6LN>_I__EGMgiCm1G z++=wy;beuepvTg?o*~rg4=iB@D?OilD?Ee6R38%r1xP+6pVmdI( zG6et-I3y_q7PUGn%2n6klFQE>|I(-!LyKz2srk^ z1A=|{9)`N&!t!zcjyZaW<5v0h7}+|~>3~_|R#nJRz~kqEpZUqgO?$ubo_{06y(8p} zcT(1_wPGTjf<{l>2Mh8f{{Wcp?_P{OEO73(f1G)v=Z_BGBWln!OFoafX>BgW zz+_f(Hz0Be@~KRb$8vuTYv*-1vUMpZ8t~tLnd-xm7+ZR;#*?Gcuyk#c>CM%BLbmpX zNYX`XcFrQ&peE1)mH>Axxryf-*T8vXrKUUo04LXVTHhZ7g=?P>G@T|$BhV4Ae9hyT zK~b|KXi`6mgPvG+!90rl7=0a+C-2+Ci}#)h^{M{Pn)-MabS}BlH9M$Y?&@td%)6Jv zS!R_8AfZwMfJdVS1$bh3!ISAS;(w)I%kInmOmZrg-xh3rUGPTITV?946H=E_NnHfk zjz+q9pL4&7{{X6Y6-Q=rKJdqfxPacCo2<e&@Bw2(l8luUxcvw~14-1Y52ORtJ zUR;sKk=D)lZ+|9r#^(iU*PU!F_fqQ7q+#9_R|jLowZR$fl3TaWpM3YMW9aco@coam zyq!)(;q68eJ$qA)x24MhI}8G&<`)G)=g<$AHRydLJP$vwlI~lz>U--`$ypaUD#`#n zla2u3laf7sdsjJhF_#+}hf^rCZPU7r-%%*HAy!pf<8F5Ijx&Nz3C=qYym6d(GIVl> z9D7f8KCMfWtZ91f&9W_;D@3@+4-%Yqz&n)iJvhg;e3{@;`n=DhUQ+*aPxr|wpIJNAOQ z_;c}Y(%W0Io(n7REv;^)7SY?sEyE)Pl~rw2B0C0WKWHoohBF_9zDWDv>Kq-Ud2?V* zZhXVmbd#i98%ZRJMj6S8g8)MiMn|?kJdZd>$t3vNy3qh0Gg`vu%j2aQK+gs4pqFO8oq*X|Fv5gygp(ki#jGTL%44irZ zYEBxJ2+oer@V`ya`o~d=Nb1|urbjTF{{S|=8zL1#(W@)65D5W6R|nH0cOMg|jIeRR z^s!B5-ST}c{gVCcdu^}XcLd8@cLA{x< zJu*r8*IJ`4Ok)U?VSL7fR?3c~{Dn$7r$k~g+OpBDL$-lIVSp;IFBK>aZ2D9JE_kXK z{{W?G$j7S@#S%Q%zb*Bw#>`jf8hN;Nb3zhS<$sCn~7#s(?c}#TL{Ps*DySB#1;Jjl0d)$*yITw znpXB_Y4tIE(dzDw{{X3nU35mDrgZ&=lcXIw#t#M1$1#>>UeY_Xq~!CsXC&a~99L+1 zK2lf5k>{6N6zOgs82Skq@Ho$`Z}#o(K6mv$TWdXADY@z!*{>xm?Y?(u8!qi59nMR6o!QSkvojpA zB>J&*u*B{we;?1_m?q;Flk>0%)V@TlV)YP%0Q6p7MjwFIoJJQLdJYPdg8b^m; zb5_XWJh<;rnnoEnecBZwHeyB%3qyW`6)e*NpD{`$fCtu;R>=d9Mk`ift0gav1w%SW z_X2Z6Ne&rqSJJa7sG3o1P!FqM0i25C{z=pPcXUWu5i=r!$MGP222FWoDNWlwFp7rB zTlp5?w&UL^I(8utl=nY(2hyuV9A+5Ce+rsSSVtSqcEkxk zPfDp?$js*$e&XNye5eD+ydHbx{+*3>jtM?bB>LEP=irIrfb1_H2t9LNgyR%=r7cg) zX>bCr+)I*4&OsbwkHF{OBZ~7&slE?vI#mAvaTKx_e-c(Dh#qeI0msuFv0irEk5nMB zs*0i|opL$G2d!NutcjIC+&LINxvg0!iOI(Y@H9vb;5KoRI}mYN+!oc9wy-!Ouq2CODtu| zIYXk$jini?-Me2U&3ud>3^z%R0LMMXc$fU9ls13uW&-ssXOG(-{JH;{RV$pP%bUhSlXmzxyK9#ALq~c3^+4( zP%kQx;q7GyBX9Kwn(J4|EQNrZ_k?UY#xh7J-^}5J`i7Wu_e0^`se67ezlo0h+8}Z^f>MLRiX-r!M1VFBLp1&RBRG% z+4q$0?f!SE$)YD!jegN15>EgF^zX$~`w^l$MSF>(f;M7|*%m{`JZ3X%i*GAs_>cV;BJE<;`Wp z*)X}vu?dF<0B4MUFXvftB@sRADGbSyJ-z<5r2|7&V(-6e06YBnG;yL6eW1)dIZLj1 z+z}1cDQZ@h-bYAwPIHWqHj#nI_V(kR+}2`~TkKb{j(dlUVUuymBq-w< z{JZD9bc}4xmFBxLk-QklP@oR|`{ZDIR-+0flgA@%DqD~0PHH+cLqRfSUjz~P(~b#3 zp(;YSBye&u$EQDl@7}8|SvtQfzdg=zlm2(CiX(B5Hxe*76;Pt1FjQj0k=**#Td~1e zI91LtPa?WLNMs_p@OS_p>0I1wgT>1+B=lkraf1{(qd-96SKv%0b|6&#$E@ z6Cok6*vHUuQJ_wG9OpSW&NJ!xaYlgDaz=mr8m$5T zDQ?{Qb43s;$cvBOWcy@_l**Z6D}^U;B&f(Fas6sa1=NXVXr|^66#Hk7uRqk*RfkNX zZZ@1T>8i^&P9CR6(Y4y^eherjmlQgU4g&au4#OpgKE=B5|+- z$nrLE^rMPpPK@+-5ly^Y+9xM)@ST%r$8R=s>Fc|XQfq^aaQ-IOu%hVkNPH5@6B1E( z2OwvFO6Q-zXTC98+5S-9^K#62kz|_l$cg2^R@}$f5HLPukUqJrY`8R+iCSAZEtO@2 zjL1$rH_mqBAfe@PpH%>k#ERN?&&-l^Hrr6SfbBvysKx*T{Ov~s%vp7{hm)6Q7#JgQ z?OFA7TO+yDBAJJYlH}mvZ5a9t_W5_K7&J!4ok6kTE94P^2?qoF{yb4b$hwT2I;6fu zV}u7F1_0;N81?@EKD^#EX-u>=>y4#y#4#j>=NTTXc{M#!E67uqRG1MvGZUUj_CDjk zKDpr4j0mP&gIg-wS^P%Zj2=6V`R~Vn=U8}6DVgm$?JwWMVy0yW8}bQ0fO0eG>~mbD z2ObS6S(U!D79b%C$?nH0828#c@$1Gv8s?>D+M`gqWqhvuZNLBzknMq=&lTP$CdR78 z2w6`fJBrA;-Glg!-$VU%WLp{7^yn|(`$f1|W+d(rl1Dt`E^tmr%96{HvKG*xoTX190}s4%}_z50*u6lp1>-Q!zI& z#}sAod?PEW%Mm+SM$i)P)If=ss;0@e%@6I?G_xyRN${LWCc~*9Q! z9A_kP-}BFNlah*}Gaup0Iq^}!P)YMJz&PW8bNupZ`$ZATXM`NSR0GZkAD@5Hs-pz9 zmodmkh|1D8@fPD8jt)pam1U~n(LC1Cux3Qg-T?yu4^QyaQeBF_3sw0~qJA z$H-NTnkz*prb}qVcIX=lz>+h^s5#FV{C^6yt9EASj?Zv*ksY2@Qs>E%0q2A0Iq#eS zk4#mUxYSt$*0EhHwBds=&hn**$>)GQ53fHu)LxhTn4DDkG#MfAWqWx~E07N(KhMAT zYxG#ArmY_vBpe^GuMNh*wSi;xt=XC5)JSh#ynqlsRI@&%BD|6oKfKLDqEr~#GPDsE4-EGsW&0|u$drpZG_2b2!jp_dna1hQ&!ZB%JnYIYgMKPu#~LN3xrS1HeC z+eR?m?r`mr2Rw0II5e?rY&v93cIx}K@;i>z!!A~jCQ6RX+oaUv)8l2!S+ey8p+dTh~JPDz_8qydN8NB|sn93N~R-(2}8DK)Y6 zw65yO7hjV4>_Kcohd2yJlni&ye!cvo*0S(vjlIgHZ*7bowKdD!Fp@zg!pf|?jA!-q z_paDdqB4!V2_bMvRs(S@!SCD91N{9fQk4}U-Yih$pdMj@PIw2`+w`SaBh;QpUmS%P z2h4!wv)G<7_|~A1qZ{^lS$3QjJn%?3`Tqchx2X;d(msg2k4{Z+1zTxC1#|_$%XS2D zo(UkHF_VsQ!~BHhU(u}&tm-{AVet2)Y~$)quY&KWZw<7B=`y&nfK23@b}~l(G?A2D z*i}XIC@x6a{PoUzEx$iI*x>K>fAtL2x<^E`&^{UTe@=Ak!t(fyZ)dzRlvO~BAuO&4 z%R982imw9=x~`4AoA`b+I?pg)d`s2-C2F$k-BWz`nzNw>YsZPBP~2iTq(+SZ^a>Xl zDy3Hfr130E^1_pEbES13!##IJw2M&c%|a_pS>ss}##tiqHaBhdGb#YuWTb3oSmVzeOs(rH~#>O zZ)Ubl{HR^n&ymUr?7uzg&a`P7$L!12mfA(nR@~^a_y2c3cH2}a-jRU`VU{r>0NE6WVZ#NYzRz}$>j{ZhRO5< zdL9AE2Q`UEsD0E1*}OToBVYsKD`b3z{n#Vajz^)*MJCJ19E!Oj(p}qd3k;0$lZ^iW zO47B-D9PCB7bpZiFOcAdasJW3Y`Yf$}yRkvg+7w(Bu zX~_4%&pv?j@~?g?k>{4iw3F@2XCQ)bIPOk6asGU(vyGTCFkiFb-Rr8r z-szZmE0S-wARs6V*z)tZ1L?u<-_r-@SXi3uZ(1s?+sa9eT1h?5M;@oPKhD+BW3Eg& zUjyKt;#b&`1qZNV3C}*b1N`=>Eh~lj@d_=OYgLjyLGclDxUN(K>M}46J@NFe6W_?` z9lXrtz161Q4P#j5$Nr{wf={W(IrTojTH`p&+H{Lv1EFYLL~<~dakW@u9lb}n_Q}Vk zNm)^E0D<7Pd@-G>R5=U$J-8n%j(eVKn&!XJzQ!VHToI7#8-uiN$=#98Gu!2ypL*{U znxmVOvX%Xc>P}ryv0Q@6*i|Fk6VJ;WgN*kT*A7>V=aLFTT4|z+*z6T4a^G+a=yd2;YqvjH64iJjfB`TD=YFBZZY~1-|?#^tBuH$ zOua07Lm+aUvVC##;QpNa&2x*~)f2^Z&b|;B3U=g-FCDw*p4s&E?^02sC)ko%yd)+^ z1Q2pZm>-ut`}6bksTHa0GD$^SF+*80|m zr*o)FsLCar{odKe2jmC&>t4(qJaKXFJY7b4W&O;iSddQcYtY%jBDU^wdCg?#1P@Mg zP62M`QM|Z~ZKt@E;Z7AD*r>)afK76a7)9DidG|VMZ<9OHk#zGGeyd_tj?jzZ4ZLJ9 zDfx4rGsbxy9)z2;l%J!hsb6k2p2e|{1YtPd4@#-5-O3xZa-8rPbq-6uIzV&KUtGb}`P-M;!O}sn&HX3tL~AuA2kOp7e~x&p=3kwWZ8X zcsO+_+@D@+j6Eu!D!yk~`aSl4V-9*lP(>0VM)^IGPI2#(f&G3}-FiwMYu){vWzbD? zUmxhYod>DhCyNk3#N)#(efi`8$oe0xbN>Lz!s*}Vk-z+WtL$nw);AUseV+a{icSs= zJ$rWIy|B$3i*3&=u}d4@V=H6T7xp+w+>_MtmNuJ!6k1 zXHEE#dv7M&prRsEA~p3>?8N8u{?+Hn=)~5{?+&rv=;+Y({{ToFe@^qZ+n zu}p`8Aetm>u{?<9+5(aUj@%xrER(F!zdGFH@usgFtH|Y$b>6EDwa$gA&nqN}v80b_ zCz1aEs0jVy;BXEKoG>8Qsq}DdPCo~KiTL~vI_f00m&f}08bpN^oIqKSG1^#Ri1Z{5 z+3#OU7hC*~4AN||BMDJFn^^|dIV3l+=Quv~w2nMBL&}0PMrjqnY~-5Bx*S0?E};Tr zpIQ>hQzoh~*=b=QZqGHUIk}KA!Pg6AQc6D0E!Tl+i7K>h_e6~$Dn=B9RVoS3Bz!)jq?R`8gX(nMQktoA z@;^jh4E{ItXT@zg+g9lfPAMAedZo1FLvk8DyVt^FmfN^xlX4t_tVcECJ*Qg-JkSZe zPz^1f)CZb>Xgvq6ue5uuPoXtPpi5ZZb7r>9G_$O6l44Po4$>bgg^zYv1tGA@xTMY* zZ7V-8optdeSL^G^<<{hm+ShS0S=mG(woSY$h}Ru}11*;IIVQgEPt!*h>z@Vu~HBR6xPS3d;x= z)MAG=UxsuXy5x?>*0!1FoEs3GA#>`)0guMBDQPNK zu_evBTDOMGtbg|8kLBy>iq1Tm)vGL{q=$bT=DJym9iPgUMupC5*rC0<)w4mn)`aAd zbKKC426@{;4_MjwUQhG>_0J|njc#f%a@iSsT@q`J`DoO}rHVUkbB=I;_c%HE4){D* zizit79*FebCs2Qbm)2I$-D{4JOEg|Eweez(;2V0(b`ila6aNp8bxx65!O|Mvl@&f#YB# zDm+)pAS`kBKs~#WgU9gtS5=kCUHNKE$ZPtex!V%EW1Ml1N868Z zWPmacIPLST8DJf;g=30Q06#fl{{R(qSv3os9ogct(Wvk|Fky^#sYO6e-#H#{&`|;% z#9$9z)zUHUb8@20S8oeooT1~I#POSi#ggG4Ao1(PV?`HLh_Z)Wk&fK(Pb1$s{Oe6n zTZ-FCs8fbG@|=txPUn$Pd4Psv3x|F^$olp_=4v%yvji!23tTusoNnQNKj~O<(ZN!( zytWw(Vqt|D$s>?>9ly_fR@P4uMHhwRCwO6wG05ZJIK^!=$TggdHZpPOKeu|cLg$Q6 zZVo+8KP=X0qKO^2V~|H69P%mxSlw8IDwR>jK%vyFfW_~k?JY1E)Nb=V#|#B`s2N0g0^DenoD;N3EKXLJ-sq3ttNaP{sgmK3LEKJ$-AQkz-tV&x4%tf-}xPTGH68 zV?fHqxX%L&N3YL0{{T6vnHa{Ds4F7yc^Tw>6?EAP(SY%mjD}&~BOrZ8t#W3QE68S* zN;?3%zVPFZZ}XbcNYXLP?-3hVfN`F9&#iTeQbt>1ytA*7n=8Q>_4cBQVY(mU$+<+X zcCqdOthHPkMS(MGi0UfQ&v2n|U1aMi1fN{Pd#&PQ_Os z4&8vk!K8Tv>4?A&f=J}#gZPify=FjyP_m7vi-pMt*0&vj1Td?v?nAB%VDZIjQrsj+ z$gBZg{kZo0YFSA{J<1KiiP{f*eFaTIiu*z-S5^&PaqWti zU~0Q^V_li_$;rpa(vU2{aL>Wy3>@H&{*{?Vf)?Oqu^1(WPDT$TcH*Rb%^74bEy4&g zCx-$~>E1 zHi^0)Prb4l-iJ6#R*@r&Oz2;8F5~xDWC9B30ZHKPVgcmxwD&54W*vGHP`O9K_+k*b zGPb}}_G6y^0Q_^Gl^;-}$n|z(X6U=fu9nJG+Q1oE!Sa#MnCBdEk=uiwIj#ES)tPwA zHmRpJMVvv};xa?G7$ZN-9y#aUxI;zoi~3m#PVKQ8^VUWla8$(b8VlM)nJ zipY5bfS`bV2**9WJJuRBm}&~^ak2zNk+90Kk^>XYXY~*=0nml%PlZp z9kv@Z(A*qH`>=WPg1;a#4t}`c`sTcKN7I9EpU;UzTF1F$GdPG6LOYY3ai2Fosr)@| zzayrmXYJ#*gyuk8jzW^4A8h;ltAwqEMs64)n=bf_1B`AtD;qaK-Kfu1<$gU$~XZQU4f?rZZxposXvz`=FKc&58lKiqJiT9@tIj?=C!;TgP$Gh-jSW?Tm3;1P@u zVtGE`lUm8>w*LTYUiJ4RdhZqRFda{=*lLmZdUSIa+!#qC;P%1D2L$}^J^e^Nj*F$9 zCvC4{{%IWZ=8X8id83SO^Bybco@PJ9E6VnvD0rVgdj~W!;5%}Y%TUhb@Bt$T;`1{c z06k4OBOR9{qbcKq@~d_nXl{HwfxtAeR#k3(Vusem%UBDrBxF`(=;xCnNZjq1LV=)C zNWnaRYV+idt&f?l!dAX}mVU_cA-IjWX5=!idB$=`=kW9x_pg_mAFF5RdOo+;Y}W#t zFi0g~au@~yxyu4`>GjCZe@f+Nx-!)0rEpZX)s85(@Xxu41osWd_Tz*7(S6R2C~O*j z8+&frMhPHf`k#8!p2l9pvsp;ROcA>y0$B#*!QR>^5-4R7z>17AgYUGt#f44R z=RetuxfFRmQR;R!wsJJuyreXMKZ6J?**)^^G2C`b48Qw*3TX?;{lQGgd z9k#Q51bTZ;k;vo3DniP60IHtDoNYXeo_NN1=E&o>CwM2^`U9-q{4M>LB#WlHx23K+ zi>T*?=I}MugvVqg@XGzFD|uxTyJ4hM%zhDMh2)Wg-B&Ddd0xeyZ363mwtvB`S4odT zv-mlu#PcMO%I|WpEIul*XGek)D`2}E4X^4LHVtE>2L2j+V}|Rg zJ|1e?R*d$EH2(nT+Qz2KkrIQKlI3m6z*~6?jXQkeq?$bxe`YNcs%?`_ z_?7UVO}3sw7UNLRuDl{6W-J*$cxGt}ef52zLH_{MlRiwT$$0*JO6cSN01*EG>20R! zHchO2Gt{Ss?3Q?}butyUJ9$;*UF*6aPa!~cP>qLUC3TKjM9Wru_xQ2G z^SEv2k+kSW|xbpIHco;d7uH~~Is84PJ#IZC}#z`T)!0*rMF~`0*u9)J; z*_4B;gX7a)`mPC0slB~lnqk??= z1D*#XJ-M!U@#&Cqv}&eSkx~RuHVkk%?s+_)a(@$EgsXEXX25^~Kqt`r%~bpWZYP=& z5ll1EFsZiv*@LMsEy}Y1jlb$)r{e7x9*`mbv&mK%9CqKY&K*mQ0 zC;aV21>Cm#5GDMvs>vW_$>oQ99Ou}5eRJ4~zO6lpsjf$*>6?ie-H(+($iO|Y26^ZH z^)y!lS(F!hm4VBU+t>g*axt9xWBPlFV>RfrfPj!QLeLSOPvt_5+9(9h-UUX=kkWI>?^1^X zZ5iZay$Uo(j`ZYeB?tx&sP(Hv)Lp#3y3`6a^v@|p2)o#l6nYH*0H2j(9w_7es=P}% zxpHPYbpW4noJYqBJCpfhzJH`|O;h&v_8#tm)VW^H?C9d|HC09&u^^TQzBBzXUl98Q za9pWWTaG;6bv+yM?s+_c^Tln(%-NY;Ug6v9o+ykkIE@$*Ksn9<`EqgIiyA~yY?62d z#kq!6Ge&;?cm(6P&PINJrAW(5*s_9WI=JXrd_uPK1CnwXcH@kU70C2HgVWx=v^^(E znm%Lne)gZoV_4O+X3}F}G=P~2j{qK2HgliAdmNl&11H&os9Cp3(dEm9;_i$X)2=0n z?_r8owvB?kp%|hT>>0qoC)l2Oz^<~APOW=8kzHLen+pIRBoCiGy+6-d*~QCyHa#m; zzR@#x6l)|G3eYf~J?QuYDj4=FxlRG{8f-LCGP=4`%eDL~hFgf#9}( zm1@pZR(x*Yipx5o@viO(0*I4i!xU}No=0OzMN4K#onztu0LATVp!F+FZ%TC+Hd7?g zGYk(e-d4wb;B6nm@Mm#<%vZiQ)*&w}-zT zZKTVcx%;^p$9z|t{49&H-~70Eo^QJU0I9!T^=DBCw_XA$O;%>b@nk=F3uhnbIZN%){)`tbQDd z+kbeDvSEPxxv!zoVbtyRJRMF)!SNxTk1feO=Dxw>L}wy}4diyIW~f5P(yC&F+)sKD zjiG2>Jt)X0&Z0CfYJkotOCQGr;~AiAa3|J+g)NQ+38YN=8VVD)Y6=)w=LUtL zN}s}l$j(P<$)qlQ2c=sSH)%Z7DIm!0RU<8r!S2SX2xMM;&!tAJ(qqD5a@A;#Lw5!{ zo4?Ea`BqdYwj7hRinJ_7Tz91l5FulQ2R|-qJ(ZeUiz*m`^X4NY5C%E=`(xXjk4&7x zYFrhnfH;dCsJv$TDAOv;)?S91hJ`+Fu)08+qiXjI5 zuan5ec&#EEUY{&20>(;-0m0fwetY|$pL`1S;F3#Y;&qUgw&|ALcK}zBUYk6Tm2web z8!gyYWh9lcE%q@QqdnZsaMAI=8*mSA$2Ia^MJC;!bE3wv!9_bL&uRjAo3f*Wp85LH z6Fp3(mhCPIWpVBZHPOzwGLWXxxI2_*o=sm^T`Xf;NTi2W`Cw5^8Gg|o29Nk#J@9zr z<|^y5MxPGJpg_zv49atnk8btT6*o-fnocVF4>rpDpDFhh)>u<{bVNxlY#SIOC_V{{RfH-T|^WInFu%0E*p(O+ zV4*<7_CBMEv|Ap+L5Bk&k34oY7UG4LN5B#dqa0(3sD*gf4jwbuk4@jDP+gi|8b+2g zk;g1SBwzuYV18AEs0fFHk`Dun(W2REEV6xjfH?fUsliH143Xriulac{Xn#z7$cdE@Y+yWFXZ8AVN_ z?hKRksL86yL~80<7bU^;9fziAZE{XUJC`Bzj{IZ4%a6~R&Da3vA&?N`w_pxMD)}{J zW=C>F!)fP{f^+=8O0VnJj2_Un4F@ZYe~z$sRF`l0oCY`I^m|Xkk)= z9ft$W#cdd4RRKFo1_0v=l4@9?vqK`T;0FVN>;C{1V(d{`CK>Z~C+S*bEHp%qDHyES zBJkNUw~|k6f8MRwCKEDk2cMVE_4!h)5{A#6c+X?+S)fT9tY-{P2>ySqMy&%PqCL4_ z#|w}N1Hae&{&mgSq{lpwz6ro?$9Er}H4Kjov4A9FxP!;`^vCB$tPSzRtQ)a8Cj%Kj zpRE!Cc$?ve&QzCx4>3QT;s$x+B+I0v<5?g(yYNfkn>k5WBrQH24kc%^Xe+2a`P z+OCi`E1aAFNj=E)sNx9?*@Up#GH`N7C-DCOIH{t|QCdk?I4$STHMJ5pGCQrT4o|)p z0RFXHELirt@lGUPks1AQQ$+-c3l(C6EIl!gUU~0P3K7VGfN)gz9OkN48U?v!%!3#` z`2JNiggtHvJo@~pq**FmZF1ShMh-9zJ@HdPEJwJA{m@inIqqnn%V8DRkA)fJ_dnCO z=SLC@dH0Qqr*Ee@1Nu=aD1t(Va)Ina9MY^NJV_+Kyl^&*=key7A~6O?4V|hu-Hv}s zvxWTS+dzxGq<-0bJNpHA`ScP;48NnZ3 zJ^9Z*m6Z#2TcYlbtGlGu(#pvj6EPV87sde$$A;t)>yQROIT@S_84hl&)NN%x0ow1k zZa^gf0Fj2y0Vg=*5O94#JPDQMXnn6%UD?9>NAC;nR^9+k`~ciw{yYQosPHDot!6V) z*N&lZmr+KbedYiFGmLqAXWzC#&wA8wq^QfCyCaf#ZyY_skmJk43@4Y2lkPmWm&wK&T1oze)GRZ1PnKH%;c604VT$=5PiA*pNfeN>j4(GNw zBRwHj$i>^;Fn==;yyx*X>rhMa9&C|qe{9&Tuz$W9#Mgf{Ohc zzn8?MlFKRFU9fxP_v6?6?OvZ%j~eawK5zLMvOTZe$H#*&X=NFN%_&mkWP1w_MWG^}Gr zXFM;I9P`{`f#2Wqu9|4hqC+D`g3J}i1xW*(@!02#cRz(i7WhV9MIKuCqSO~kkh8W# zrCScfk~8x6_Rk+$jtw($%A~ey;!kI&O>ebX#0W@tY#qlR`$s=Md!Bxo^-gbX$tr~p^`D0E1VZ9X)7c?N!b3hy#0!3n{AkfT}mj2fxVWeW%lx(!pB*THt4kh zUGfEHCnZXZen&OzT{3E)#QAemjP*xvV}F!BDJ>^|5oKt|>=X_@htj;#=sXX9{!=6t z>iq23?MfU$ zKHTPvrH@tE>2?~9n{jMpYs*s%GQ}pzB6A`(@J>T{6r(QzgB4Ps?yW3MwEPUY>}WPJ z+_Wdfa;OeG$`})zV0I(ecPI3&^QFL!=*h&;M20zBCI|4ZnEK@Kai4B+>U{?`o8Z-= ziHc21PqFD1cQVY(0{McHeJ}=j@7Q|&2fS(<%1JMYhVO*Vq42Nbo&NyAjaUBw5m{M7 z{{V;}f_R{oea$RQaR-1|i!%X*E#)ho+^XejKA+b=()Rg#w%p;9s*Ww6=kREKW!Kl8 zS*qN14Ddk&_j0|%$8H!!zCZ&NS7vTPf#za(1GX#aVChyB_|KWtUr_%5Rab&D-3z7k zma^AfMe##eYdt>G!ep|ww--0p%vpbR5G;!lDwcMU*;gyD9qbu=lZ@u-D*j0x{5mkk zwpHi3*?ua1(tSCr4Le5oG0@syOlbN`vq5oj65MJN<6u^u{^&T3Sb$uH-H9;GyLi1H z-fZWSti7UgkBk2Rv@cnFag$1u;w8)%5a`i7R*+l491y9Iw@CgP0K43Qxqt<>fO`t> z4vsKeGZN0_$;FM+=gH*+V~#lfzu~V+#FFtjJ{iwQ1$DuSUn67${Rh?EV3&_^SW@S5?AdJ^4 zvS4Kc$Zh430?OVLfIrX4hEaQ-=yegF4IWs&{eim2s``^y)ifAnvePXU?sUjCsbQY# z;&v(QJqgs9g;LlzkoU%T0->I{*|ccy+x_(QE571yp8_B zbh1M;#_J)5H9jP$0NEo-Rf?nv$`VPYPxV+G&&~`=Gqt-Kk-qb z*>ih74l+RC{{Y^x!9{75a6!+lN+}jVaG|iLx#Z*WHLZxpl~CYE+tVYT#4R8pGTB+@+DkSRuif<=cKQCFm2^L|HGh_&?-Q(j;a9xkG?iSda-FvbZ0S=QYi$X4J3!7{+%kv?)>t z@Sm4|PX5)=Dj{Mr^5b-vBN$V_IO87K{{TDI8%U{HmR3mzhR4pQAOYC=`u<(L&2xJe z$!y{fyG+B)CU8mPk6-Yg?3|pD5~4Zdal0RVx#RdwJvkiyBacc!(OcM(-CEW$y9bqG zIpYV{Cjzwh-qkSomP7`UW{T`rv2s6ihQK zq*_Zno-AaluNeb5&vD82?_MsuDvW9GXRD;gDN5GVZf18R!T|%GbICd5KDZv({W!0P z(e`Yt#Irt70z#Y<+yRW9JN;{FR7bldx70j2agCsI%A^o|Mo2gwq;b#IjynX+m9>c$ zHIYasDx?#DGI3lKP3j_=X|6Z{3X#s?p8o(Y$3DK_IxT~CX$cNoxg2e~DmesWit9%yNh5aYO$H0e#Fz3Fc+Ztc%HRx)^O4SdIPcG= z$n=L%U!@;Up~R>9nU?GRjh9ZklTfe)(eWdx4Uxaik-*69&mG1EPJ^vgrbfE1lY2)k zRwK&e2EM(YJ)t}BJJ6IkFdTbTM4_44%W&rc9{>F*{e2 zk^sQKCcbpN7Z&zx`f>D&@J#0&an-tyUu!pAU({wJsNS~u+9*;LEI21*YO9lsk_RM` zc_zKMu&heHr+yEN%s0fCC@-3X$$dgj^Igso9RoB??qs3Au{^`LNVZb_Mt9^dhHcSVw`^$HA(Ctc*Af7WZIPvRVn2heCnCI8X#ll zP_l)>O4dMvP7E}R#MtFDN`Z%b;>$=<)@;X@B!xrfd z)rpywHRl5@o!*#YdkmbDOjva*Y}}cm-O0U-c{w;Z&#$P*2j!9a*Rm+X8ys!3#sfGx z8;Lm2ucznDX|t1>)m}y}PrS*-IK~I`u8WH{$wX&>&4ZJWPuJy5B-T1Rc_-XcvW$`s zYRhzJu^dW9>6>;31Dub~1C#Uq)tNWgg_MOP1!E^8kj?q}9DmO>nM#Gxe$ku5*&*Dy z`SJ9xUr%yd@O*x%wOmUJ8iSF=bX_W39A}xy?gBH;*X}X-)?Y^!Pg>)^$t@$s`PqVf zc&xsbFx|g_=!adBTO^zEPx&W~YiI*BF{xqzB;@cuzV(Od*O|8*^Hkk0DiYfHLbTDv zg~xm^AXb)KaqM%SLpgIVn31;=c&OaKnRZRQlr>$8V`7kwV6j0_@|S`5DJFt05cA(!0qaEM1AtG08bReQQ(&jNt7g5P0Nr zK9vC=ltw@RsUD-Aam5^L7GjaWGK1zIjzG_R{#A)Cz*8fGy_az(B>cU*Q6iG~?+Ts> z1+YmN$okaLW|JzMwoIj~j~+PFUc682Q#(u|&)e zpWU1fP5_T!ELG`|9&%fZ>tJ;?8m zLH>JCj86$v62o=|JDQq;NT0HWRmM*^Y!mf3%{eO|mPY`qFjC*bqbHAJRU~DygR8{Y z#v9u_pPv=gGbD*I96omZ>nAz1DE-Twd~S+5XMmR4j4PI24iTTv~NTf!v4jN}97 z&p+Gx)Rd@(XZ<9U@-9=jB!)R2`$q%wt}iM^wAnb)0=NalANA@Dwlkc%558|+CcJhLmYoRb6qTe8c9I4L*yiq2V;&n{JvFqEsR{p~UIA1%#SMU8Xf45#1@o8;E0eu;zJ$7&}V_q_NdBa;gq;Y zm}WlUfCf1AJl7Vxl`;w21=}R#<8E`D9zJLJ)re$b?o~!Gff}|HoSbC(_T&8Yt*F@( zC^g@PO31*m<8q8-^Zt5$E2pY&gkn=mxj57Umsq3=;x5)W#zFMPKar=XmxD9w;)p)f zv5~Ss#PUhVJonG1deg-FqAc-z0J@1=#OH4wQr_GQ50`(fKgW_rmRR>>lHLG!3@~3# zLH__goYY-Byb0^$*pzDDXhUelkq$CRI5_RV_Vmql{{R8=+~oSo?eOHdn(N4h)!IfJ zWaPF02i3EI&&wW_#$6ldZ)KybdX)T0q}8XtjcwjR;Q^KL8zUh6^N(&gKQ8sh)#-bk zb=ugaJ3P^Z%I;i+JH|WYpF@&+Wb<7hlwRrl3}lwueM}%N3lz8^o4!U5etXx~#U&-N z^D{!&_{QV2kBzLgQ6M<}hdwhw*1zb|iktEGx| z_aw8+PMGYx3WZ_^dwGw{=DjOpjkZ}!-vp~gz+S?$mJ1@LF{wgYmn3&r=H=Q}`^<8G z9{DwlSe7-V8_9Vks$7`aWy#|Lx;AbQqPt8$;NaA=qJ@!}Rk$Z6mRh1FmuT(HLeW^Z zPE8Jp3%ln*L$QIH6|t^!z@QORCWNs<<0Bu91&Oq+1=#QleP|xVh|z~2fPJWPl#wxV z1|$HA5ibE3Vf&{aS{2xm1yP;ZG@zSgThHM`R81V)PER$fGT>z()MSCYNXI_;{{WiC zNGYmkA5@dJNiL~8#JhpJzXaD9^pJ_tb8_YUKR-N5u-?e6x^Ft?IB)4zeJo_Q+sx|> zvX37#W46`B{M+V%I}SqjRRb6U9kE<;ba8}l@tkF!Bz8}i`M)AwUx&ynP-DyC$AtlY zKp(Ge{MXKeFLz&0;QHxkT6sD*!#3#s2JLm8x7GD)8;F`YZCgvRx4CW0=G?}2k83Fd zU{qx+a_pdCv6dM!?Fiq!rC!r<$qakRvAu2abYJS4({u%tdVY06<1#P^g7)OM5zQjbV-Ce0EIobc=o`k4! z)H1~#lOy-4X%YjGLnDJ?mPV|(Z+kVgi#!jt(1ry2gP&eI^UY#VQdG?8 zu0BV&Za;4>tm=M_KM(#UX?7h$dlkHp+3T~JBGj#!m&q)0#LKooLY8&f(uKsOxhLo3 z^m^tm+F-01I4`}bZe-g^_Fe{Zc*OZa_j@NZeR8f*&`kiM~K($8?{ zo^7hKyDSqDLkZMKh}%!u@twS~bgef>NaxvEvg^OGW{=k0J150ohqpsW(b~#6gG;C- z!hNZVr`hEz3|La9fPkcPk1l?-ngy$6 zRb_YVNbbQv$?uWd>rzdX7cMR!jsPs=eB%$e61@5i!2bYGrDid0?pvc6@rG^g8NNfe z<;H%M(Gal>(()260p*#opO-zW4n8mB6QeS3;k_}yAchwN257j(8rzqTPZOjyV_i;T2b%q>_GF&N%k>{VPqh%<^LH z?qJxl+eR6fjK~2Vr+^7Oet%y|=>+?b#tWHADx+$g9P^yx<(}2q#Z~t(n{UXm70e3w zX3HqYI5`8;C;4OXtUPXwDI(~bf1XzN83O>1uOE(Uof|92d>~~djyNQD$6<`|kHWN; zTI5Zp(AI1L!|KI7l!G5FWd&CqIh7w&(_@5R<>RQ_8Thq@s{M)`@r!}rJs9lZ&! zpDax}k?xGtm7#Y#J^>|2%M*{`BOhO_Wg|_QOF@7Yz!>8>9lQGb`(nAt7A&(Q3d`Yz zU8G=;dxP@%ety-3v0mi4+k{YCCnuginH3FP7$>?r%E$pHxISQU^5lABwR%zJ(69O3 z2^_ZWz%bb&dZ5Q{#Qgoq`B$SKRXBP3Pajjz$2RNqzbc|ABaMjg)Nc1UAa<>0>m@!u zM8W9j!}mR2)NWc5i*nZu7FCpt3=T;g=f7`HpUV~VvdO)Vr;Z9cBXnI@?eLtqOl>$} zg(PD*7(KW?;~DG)dE9%Qjy=@T-Pcn8Sg~cFh3CT#O;kJ5^ejbOZ6gpbQhm1(KA&&M0%TQH)lR1RzjY-MOhn zu?p>@MN9*NGDa$*Q6ArFhU^S{1~j564I|p2pc(Yd0V+h#k}9NPQli{&ZUOPT^Q5Gp zt(Z?!q+62F5Qt)Z(&X+V?t$r#oq6!)l=qUPm%W{{K|^HqJMG7@8R)usVuQ!j#F4Q+ zUreq&kAKd*8NDMdU!s~l*m@PG_1*joE$D{anC!%aKK z=j+X8O4SoJnd8Zw%()RDVD82aFCOB{#*~4?tLn}lH=%A1Xn{8Oz%1~DJK9BK7T*cib-0a zt!@ysValR%ae`R)`U*)mu$!dck)JCRU%QC{gUKA@KaG2#hAVpC%=m9K=iS$q+Y!4k z8NkJKjzrxeymim#+=s-^BQ?^Ari(E|^6lKn7d)340Ajf2y8Sip3UN<+_iW6-w^WDh zgn^JS%A*6^QRuRaw&QmA0V~@B zo_@93IX0$aMLQyEcS2G{Am<+{%8}8s-oqaU2zld@agWRTpK6R-E8QuH_8?H8XM?*x zQfo`zXL74>;7R5<`uFWxDQo~TvE(T}y!uuE_;({HQH{eHIL1%(tiAzaOG6)UrM*Gq z{Ejh>-o~V6ET#5$-TT50JrA+{Kfzt4IKB);HOY1CNWTy>*lFKgkE z~k( z810_i;GFULdRAPh41Fp&4&x&zV}r*7`B7zl0FF&GLQJA%UAX{YG5&Zttt_{-0q|Os zViBAi^NvP850}rL{NkjiU}W*c&S7Q*oF6-KIODnXs|MEK$D21@!9xXKPzfKH^!EDK zO=*IuRztw@Wc@2Zkz+Cj$n$p@z&!Em-lJeugofJQy#D~1^rK*RfW^7S>~n*kPh4mD zQAiOqY@=|&RrVdepz~JmkWUhs7bBD$oSp~1J*yI+SRoXgo_l$_)TS(n;|I#Ejz@o7 z{{YQY8zT_7C6p2fKF9U;tEi|pc1Zyw;Nu^jIPFsW4GkU}9F902odFqj#?~BsyXLAy zY4WB&CCWnhRfSdu~D^Pin=!Evn?brK=-d*GkW zx$2-)YgUAUPBZ+zUxjN`f>vh1D7gc_AKr)$go#j}Dv^>w1M?Lgz_>_g^BXH|FvJ~9lM}EIJwAS&&u;yz zGJXJ#O{g}Z!N(Zq`B4G(%&_^MJ>#(MFn#!`C4Iqbc_3qtUQZwM_;XMUxbwCZa;F&N z9OjV)WsJ-WX@RhAV}sl92DNksBFazzj8KfJ3;1W|DYFHbH0EGsoM3Iv4}9a)VzVrj zv1rKK#tBw<_O9OQJqi2=zt*|Pre$><;3^jZK^fc^aQTm)zctC@@ids2`$G7I*C(*g zBR`iE;K_F5OpYkxxJ|-m?1Yj?2LywT$Jl4{tgM%_D~VY&*yjvpERURdMnD|*=Q;ed z@7k}dt^$b^xbZ0-H~_p7eO6xzYr zi!(EZJ&&*DThxg{7z6}Kk0=-!$NBwerDP{Ecm+&q03aNkWRIc#wUxLbawH(Oay`3# zT>f=v86;xcWS3?XW6*J)IUWB1w|c>7%Gg2`_slS$;G7o5JD*Rd2DwbsNp7Z!+_6;i zWWHVSKnEks-1?86c;h0jI5`q>QRLHaFFw-yqfLMlj1!z6fAcl;@pQU*JTvMXxGAJh zA;JpvBzff|iHt3`Aa*sXGNy(Y575xM$rdA$x#q1Ia_%arBey>~j5#7yhC&M|1$~7> z4oNa6c83iUGB>DGgZfmI6uC*AvCdK9jqx0VxUt>b=fBp933e-$@;(^%aBE2ADN!U4 z2}uMV^?5TnxS4o?iAqEOKIfh(DJb%Jw7I*h_77Irqn+9OKT7k~I&{pO!iNe+uwq&hkCaql2c79zE~#>~*FVJrAT>q%sNh>*Z-~BXweykuU-! zEF6O?49Ln82(1|2((g#Vbl0tZUsK%Wp?++0Nv>YujM7LM+?HX0xX-W{QTPh_{WLMb zTWZgX)lVi#G?S&>cOs5FIV!%)kbD%_(X+6@k{l4U%R z%hWpU*iPpIwF-v^*+NknIXS6jk`Vs@?W$5u+2GL`(k|bXQVt}FhD99rpb>^@qM^ZY z%|boNl1y-Up`9b7ZNOrIMu?U&d7-N$5R=;mtr^x>5i*V2ezZm$tW1%@sUL-CwdOx6 zI0K(t(92A*xm0WeE!&EZZOkQQxHOxY)uu?>!%S~rrGn?Sa1K8j^G~dVc--{Er<9eO z6!w-{L~8}}u)5riRw-hUd@?c#Xv={9;GC~wxyT0QR$G{ zNoS(zOAXw98Hz9)DjRx8M%Qs^362vUESS_Gcz7ZB=UWG_pfdo5yYt+XOdGe z&o`piR?8R_$tStZLs~?onjA7aRI&kLc&lWgr2hcArIia-$~`bSG%(oa+uTqf4eDr7 z`2)2Kvi6;EZ*6%6)~9YR?IU$E+ml-VBhejA+tAeD-zsJ;JQ+AHH^C-GKSJK0xI_|@% zu4S`pjUT9IyL~nv6Hf7rDs5QFCC=d_NgKwI<=!ZkC*m0;lgabm&cD&>QlreBL-4}$ zNVUJ~j;qsv(REE~<|!w!QM1F1$eGdt9_`{{vuvAU$Bn35zlR%i;*xwS-{dd3=DmMe zQFJUavfIPrI&5g(GZXo+rrkE=@;439_8SJ$wc8#x_cG*b_m`HIuNc$kVvefPD=Ah5 zq%HS`L+%7^a7IQ!3ywM{H_zt6%x<@38$`2(RSdh8x8b)OXXWXi;rHx$xa89-L7??j z&Y29lb4cH2x!B|~He;NXA=9H|86wUY{#=#h1?tZHBxj1Rkd4XknNp8oju zJ;?7}pqf@?zQi_`!ed{xy{a$!s#p3~a}4I}GFe`c-Pk22iTyv%KI2Cm7)Ik3x9o<=dVO z0>zA}2=l3KeKDRp_~_T-0z-dlfdya=Kf_C5T2djIQEI2eBjEX18unaY+zdY!p1NG!RH3fXwQSiJy@MfV;n(JayxNdO|8c%1RVFMN3#RvBB=&rpT?s`hma2|&-v?Ah@Gt7 zRWd}Za0dl>J-d9luRpGgc4u{pPjpaV%5ZWq-#m7%shBnmCgD~IQs9hlO@rn`WPX7D zAD_Tx5QHN<51A+R&U^cDn&jZk*;w5SEKI=X83bp5J#p#ycllM)V5fLv5bv}DgMbfj z_VN$so-^MSxF#OPzPAs?(j7qsc^nbkeE$F{?&6GDXzE@DNXTp)bKCOvtopk(X4j%> zW^>{%47l$28-06w0sdgupCl;h85=U)tV~Yrrzap1NymRt^{x#aEZ23Lm|PbD{8Rq` z-wEg3E;EcDeCP8u-x_{L9F+Mq9YJDgylYU(gbp2p9QvGqJN|z8ud&f&ZBzaak<`UU zf`P*it$U9@0|42>8p)@*9GTA1+J=%9PB@?!)S3n+GlIU9C5|1&XhuIHx3vjGWrlEQ zZ4E8XF`Bk0Ij9KPTi&B8Vg)0=G)T4?r2wi?aDAvt3?FI>3}@1U#Q6#f9-w~^p_a#B zAG^%~5d?8VNsG6f8WEC($7&FE3GG5QIZ%O`v}MSY@!GUtZ!|O}N$rZkXhD+Y2&$m-fg48+NV2NiQtTVKjyqWT1npa{vV$M(bCEBwI}cQ8=S(< z{td4F`N!7;-uo~{{Tna)SCRWU3*bJRTQk7j$N2-U=N@JKU0&F z&lTu$u1+#bz@e+o;RUI1#2+>Xws1eaeNK<1(fZ%Hcz?6xW$IQ(OOGEH{Tk~N+P&v8 z*zllG=L~ACj!#tG0^UMM+_^Mtj}(zoU{sP%2imgE@O_HLLO2}MH>7ZOJ;hQ{cGBEV z_?3dMsWps}(H6||>+|^eqcv@8qi`w#;{=Xm?;$O^;-HG@bA9*t;l2 zP)Y`4oyv2O#s?$w`uo=UIYp|y-_agUx-)a*^rg?Y$L-t1!^>`$AG>_x_(=3WkL6z6 z*tPDqXB-_v#O?e(=Cg4Omd;_2hR1JT`&WrH&$gwhU;Esrzl;;y`wG^@Gx{};iXQfS z1dGu6lfdKU{(8|p)hqn`v&+@wNol&Z^8Eaw^GvxQa<%jvTa9=8-1(7I?~fumWmn-w z2YhEWF=O>=m-{+SPI7W%p^te0;+m?P)NZ({=UCD`BTi~&$ELP z#HoBty_-sk{uE)xRQPfdyL+E6u=fY>#WD479?$(AZl|GHo!vham(0iN23M7)xlard z03c*!cFr^CD=#mtc6vH|3k-CxZvHH$s?!ijC!YEIIRl!9Vs%dl_>MtvG8IlfUA~nb z;H^E%zB7~Z2aYPnGzknW%Cp3!xGF&;?Z6oMpITpFj6qlX>^VQ@Z}_gDba9s@nbmg`r@t=49?O>E#?BTx4-t(w`(Q#j3=Qp9K<4z~z7-AD93VG3W=+kZYW= zKN6#4i&nLi{hd|hTm~f{{V84&0ub$#6Bbpp|DEqJGj8dIUbqF zAk~cY@)|YaYv4#y;5Z{8ivzd6sT}s^y$)8kqb1nv9i#<7RONiDj_2k z!Bzo)?T$JAb)6Q$Lh8-eX;HZ!?wK7UR01W{Uvw3i+Ku0M+@O_18$#(-~jIapmM;IXbdS@SBZ%@{z+>6Y# zw!3ZoNlcgD3O$_0Rc%TU!C^ zm%+y4$m9CnBTKAq@*^kANIl1Kx;W83*;el?i^j7l>{>yi(@dL#)J zK)6LY@0`?V44DY$ca)NO7~p+BrBuP2u+o~}!<5GFIr9+8O0VIJ91i(BXR)p`$!3x> zO<{3#;X=tIo%mizA3wv>`d1%Vky0nP(-y&1uL4F`kT;S}M||;+eK1FU{`C}`xHQ!n zTU{a@LoBWcE9}|JWQ>k6@;|vz4m@qT!4S+dPa0u)%^c;7tx>1`JX7Sh~Iz~vyBRKkC15zr5l}Z>N%F0*2 z8Rr=Ht?~#ao#Y!^BaYpuqL8x8Zxlp3tC7zeg7J>oqgD`$I=NJcV|U)(R{(u@ACK!w zVUHpR$%;-$AbC#V_+bA4ERV*eHckYR;!vbRG1y65WR5%IABS&$N~$ZlMyzH*y`MSf z1xW-9=dj1~A39%vO3IB1X#unh!0@M@2h$u6bjMUmjnc(26H3_d}P-9OLFm8RPUg73Y&Zb$l6{Et)h# zU7A>$^<_~Fq_G!sjJJqY)W%R?0t;lZ?X()izxFy@c>Rqfr*j)Fr8cp3bExWb#4aQ) zGvpECJ2psAsz!Op9#95GMloAZ(5Y@>OIG7NNYJAxCwF{y{E_TwbgqvFaG_aS)z?NzX%V&+pJ$UN3r>4T!9p+V;6vUN=|6C(lTHEg<5 z6YX*VfOx58^(a-H$n#LI8bb-)-i1nrWDk`rqBmh#WkW&R&MF!lA3dt4L~6%?O=yje z!SxkP-I3tungU_S?NE$qprSyggtBzne(=GoMkQd@`;P=;>q;iN8p*T&08HkTX-deJ zCoPX!70DLKapXoh?MBQ}W!r08$y~)6NJzjS1Cf(~k=$}X&$$A*zM>13gs{5c+if&m zGCO;#&Y{#JifAK41QGuD%_EGe?nAKv{vyl>rgCo7|KcQT)y4#O-{^LD+@h_;SitA6YyKOs7yb&zc zHXr$WW=Jq%R!H%`W;41%@;hcp8RTYm>5rqw{=~Y88YGgu$8^kC^W5jT&-wG_y|Bih zswpFcrsc~THva$>bTe#emNj5Xf(OsNOWZiRA(miI?w4r#)RVKMVMv6Mdz!_Yp}$H{ z5E5$HMXCekQ-C!7v}_5V_f|lv!xR8d7!_;?GwLea1HksCbX`+~8x3`u47K#bu1> z_fJNC()y02Z3jwRBsY(!X%gu3__>uW;ka9qG_gYz60wxCLQYcP>_V!5H<#zEE<5&H z{Xet1mF#%yRMKzyTIW{KwE3ipE%QLulc|zZ9Bk!7pACHbM~EF%4X1fAjEeTDMs;i7 zf0RaHwGC?aeKs8n_hJh|UTBitQd1y#GVdaS#Hu(}FOJBC7)GYI7^Ls>^I&UV>Qk5+ z#a+J7xtJpmMotH8aCjcwk8IZcTI42U+G0s0lG*Ng{YF2PZ7L%rGKq@#fC8W{duIb2 znF#f;}*Q=Z<}1IVUm!hitCC-_gV6mv^p5hSj=V^Bf$#z%hn=lfDk0kX)^ z$Kbo2px`SEcH{7*V|)TNUH(_vtiWIpc;`7BimlKmp4_Sli8HfDOBLW;xlx|n`{J_TTLzq;G0#6N zR8c8BbA=;!-KgSJSWBrQZP1dWgPeN(Ybg?NQ&lBmi=lGHX%I4=2>>blJwHnBvr0Ye z@;-(QZEN$vj(b?&4GZ9VF#e*u$E{2EYx>{tr#*PS5f8MzWwpe4R*zzId+NT$r)mGHCAKR1|$$UuJmWtQ0XPOV!WKG8+MEU zc;|ur{{TK~&+1~C=~<;E{1C%yBLm`jaqr3ezrHJ;PNpzBL#J~xTOtdxHbOxjT!K#- zCqK)aV0X=Y`Q?<|zv%iH@hEUCGJWXWZUdYZ&OtveK9!1VgP~ew2^bj(9_~TN$iO%X zK4P~SIX^NoNN=G)PzT7vd9#dzz{mBeEK;zfS$pw3o0TxfC(~&kA%p4Z_2#jnir6jk zvMw>VvD|le@4)Z!^!zGlXtp-uI9&_w*xBIcgU`1fzu?7KN!cjJI)y$J&yhzNEyr&E z0O$R>FCrN$3xRC1{gzy@BN-73U&K&hF>u@_Lt@_^e%IVaHf$F6@G5Bzd_&3C?-rzomNNk*(3^ z$%#o*D?O-}G9kgwVfFO~w|e*D>eKzl&Yw*MZr9Z63D^ZLrij<9MFt$$KgT`UoT-mI~nbY63E3VD?cRoLO~jlhdN*5*H_4NWOSzDTkN^*2O?hS3!Fin@Pb%ZFXj?Q($OI5@z~oX{ zR#!>;yBypl1#Nr#l0h#43gtl@oRD$f{?+8qg+puK$o65#=Jw#t!!zJC3dMK{)c-pPbvePfp>)0T+w7z79RWY&7S&tz6fbaAj>(hg)oF4n5&D8YC#keYax?D=T zSJ1)gno8Lg3deGsVEb3wuII_=`j?ZFT`@L!JXTMBqPat#DJG>IH44!*B5W zS7j8o{P_{??UF1m**M^Lty!5(E=iWp93C30*yi$?YYQVZivsK!V5GY$fs^Z;eqH-l z9J!+u?UwqYc%k0Ph54tsiFjy`^;71b&!JWwGNeK^#|s6M_mG?>Nd)_Q_s$>S>; zhU34d^!$5PwSig&QdG78;Ga>R-%S4iTDpN}#EGL=&PQ>O-2NoiG_WvA^F|Sv@D2-h zIL>?i6>Ccct4DM_PR`47gq$==8owE138{&=7m`|Jrl z`vQ2#{{RhQX)iJv3v&&?@TPQ;lwdI!$O9dllh3X(T;$r|1gjX_Vpu~dETfOT>6{To z=0La9|8WIdE26gpIbY+=2)h;|C+R&y!lDOB&G( zqlRT};{+T5oOyolZpRDr(*O;Sl6hTy7z3~k^X`kdFV3P}Rso-YD80l)||&p#udPw8CL9fJiSGq~`_ zB#fW0AB}nzz|X~QB1H<>2r@Y5C)gbRzs|hwR>)kpjLJ9XIqnCiZr7qmfHy-EyRo6dp6hV#O0l2E(_p1fKc& z9yrBID-mLka4Zg6=T}z5EE{1Ww$NBEPnC0l{{R(-DivfC*fp~l*;+Rk+>W?q&m$o6 zGxM#f8TJ*0v_?($Th<@qWKhIonFz@A!0vu|!1|ist*#0;Z;HMQr}ty{2LPX+Ki3p)or3JvDKac(Evt{bxX*sz zj^Ea>vR3v+VK1#Ntjf)9?9hb(6OIpT0DZaqtF$K>?80Lr)-E9mvnn)MIXEEm^9LW0 zs_-ULIb*X>Dr1iTWc&R+yZ-<>;Xlw3E&iCqERVJrvH&FuHsUkJap~+2)KeV%IV)6Y z6G`@2x7yCk!x&+~2l20Jj-|PqE~V+X+V_L)2X7>fK+hwLcdR&R<6@b2)UB;z4Q`=a z05Ay7Pi@%dxGZi@aBFuLjPCBIcH#*jcly_+Fs*>G+%ZC`27ibQX9w%g#zr&m{$jA$BNoa-OiF}Yc}E$?u1-H1x~ve)gDWB&p2RnQujBQtsdgm{T<+T$ z#_R)=kFS68wHZeR2-s7ce-|JgJq1MU5<>|OxCZpk9=YxF^sKfE7fc-DFarA#@9Dv* z9g1x;-UPI?7H&v*L6wfucLv7Z*#nI7az}mzPM@dOC#$i`sm}4GT(c*o!xYwrc_z3M zlq7AD)j}x991Ld}&u&I@j^13dsZu=<-EL!{w2I+>)b|FBWZJ@3+|BR1*MaiRJLL0L zQ)^<^b1-kfQ4DFlat78_MFZ*yWBHHAJaW_BjYO?`1gK)2BDccjKtlOr-z;){c;k;u zQlGS1HM1_qZw-7z2aJ*zC)Xb@Za%o+_Df?HD&9N!oU=If>;U-zkMr}UfvB79k*sXa zxNg8GILI7lC;QekS#=oKym=eU#Da2j$3HJh>Y$MvhBGi$5@%t+{72+!(JXOp42)0b zQiY5&Faw+qLH-K5P_Pp*1SuID9Go20(uSr)&y&s@)SvrRp=2Aj0LrRQa8L5%xvf!b zmN|l{20U)yX5|STW!{ zlg*Pi@L?t-FWli z&Och+6Dym06lM^YBXI}N9&z~8qpUSiPFq)v%H(#)tkKpPQ$<-Kbsl;hVP zyR@&}8791)ckN!&zoYk`u@6G8u^CR*?iarwQC}jc`zhIS^8O2Go;!HTF$z2)Lk<@Q zalkzCdjdNg_oN`-Crd`ElQhLdsp1vG3=_ZyI62@hPs`?e*P}{aMh){`dyQEJuc`PF zTs$ZNQ?#f~01Cf*EBsB#?mL3sTyoOdM)F(S*I2!;kd{V5R~)J1j(&afUw0HD;;Ns( z{Osi=Cw!R6ZWcc=IW^aU#tuUk?jomtNjS&L@b#seSeWaGUfigVU^0hR?ie1#5#RbA z4>isiRz_V}Hpg138peuf)Q zzyAPByN6Skgv7)8px@-D3V- z9w+f5u#)a(wMNN1mJ;3?oUu6y4=3KFI#@%5i!9QYEt=Y(e=86%U6Q7Ay6jG-IL1h3 z`Sum1v4-Tx8T~@>QJX|9A@t&+{y$H~}nh*%%CV&-l+J$Txf@5&V$0YWyGoF`C zS-f!6uFIYp_#$(`CxPpV=$56y!O6x{Z~p)e`n|eWSC3JGTX-bx;@w0hR8nwRP>xwi z+@PFgK^)h}>M`m*jvc=@Iu@&QVeuoa?cUo~cPX${T^w0V0{{R)=f>7jG^YV>s%vIKpcVvd*;u#h!XL(({jt)sY9P!S1F&E|UOkrnw+Mt+2Kgm}KOR$JAig zb&*GtEfwRky;nBR6uIYU0N~@kJLiE~c_P({W!r5!;y_jHq+naSD}Tpqf1RtGvL)Q9 z3>HeqY@nv&oy;-DKM&qU}@MX0SKg?wpCounxNNdORV zbJ&6E4&MA{1c>E)233_}Q{u@U)ohW2jE;L_JPcr;dekD{0lGv?$+?=`j|>b9jGTXZ zt}SvR>{#Inp;#*}NjN7z&(rBf@ALX8jw(YH0N|cRFg|_%0I%g;Q`pNyj1=%NG534_ z06|&3%S4a1J*>Ik{6z2v^ZuQyH(_i%N#ZAs<|J@VJfrlcmu0bwFk%B9K3=sPXsSin zrBmIq!1~}H*15E4GD77ELBgKjFV3YJB#h*lrv&6dFN8dV=bfYe)YD+j z>DNDPwRnKTMBtO}xDY=rxUXMElw0%r9~aX0nr-d6uMf}Qo*QKzetFJCeG}x%BP!m( z_GK3t9va}|IL=LYI=olmMiuR~%u ze9STCVS+t=M;upWj=A|9^^do`QpQJ2k-=|&UzKK9{K}og=N`Y`@FKdZTNz_xa*VCCwIbD0IHt(B=L-rbM5l) z#waKN5kc<0sU6VD_^e9tfl)#l+(^!Fpzv3Y+<$84kMuSqVdP_M*j`U0^MPHW zl({h5MY#0|qH^)7ZX_Iq1cUj1nKdPjGF`@}WbJz`!4KjzIXTZg{qg?*70*IOwKAEM z$vIo89hu0>XOcdC-(ODnt@hZ>nJDdV@D_`i95#doy$IL1$gsHzsB&_T)VK*>t_(1RI`3ORdoLo5y`EDHH^LX7*p`Jf$< zjFCVtN3{Un^aJA=CG%@6frz|(!~=jPTzD^shM*_{1e@{#VF3Acw-Ve#^8|09CxmHXQC~ZD%r5d zqeT>rvD+v?#^889_|88%`A@Brjcrfbd!^H)`<4KGQmwmkeAvspzmMe3>CsCm zG0C{bsz@Ju7#a1iH(!M~>RrD(7o_S`CX%PC;)&JSS~Do;JeE9u8T~8c^TGF%qboL; zZ;_VbLd<^XZKEId0~yXfRoe$$EKM%Qlc?xo)09<9oxA%@9`8qZB=DPo*ph4SLP~q1 z&C}#+>Hh$I zh_xn)Y2=d9K;s!XQaSbX!TdiGYvVM2gQSe11f;3{c$6ZEOp0W3pz*X0fBP)<{43PD zxm7+F(8f-Qa|QanuD(fuSaX>h5$@UxDFf@CKRW3ys=s1O&$-GS1^)KmeYn4U{fndQ z{uq$Q;uZjIL&wyp&U4>691hjbA6GRim+*#vN80@xcfNV;>@af+Nt?kmkFsndTm)fgynk~SM_`6G;7Kn`#`_#o#w2ZNk~0UY-k$*o7K zls`&5IXxW-yWf8^6?1wdoBseckt2C=fV+VHe1B}3=cf1Bp1gRLHKsfeK{=7xZ38F= zw%>8d1mIFjZOzeP-e*w|i^Yr#tF{0<5Pu$iUs}pt?4>n=SCy7?;q2fJ#Giga@BIFC zws2<(}TyR57xEFGjUCADhA^Wa5n&OerF#~T;uD<8AYHq9vrmLcgfs?83VA- z*ZdsuH+usd@fjST@&*KuM|1f906u_F@da(5mevxlBTB;OP|n-{k;r!e$8o?PPBZRn zQ@lCNK&>d++^G@U zvd172AW5CD#DU57CywBHbCK*S$vQ0ycw} zdlN?rToqTFc|o11a+q%2k30}F>)!*@lYU0IESq4YCxIOm+6)t4hmBjeLNNxT_kiZtbnj7R|c z9l0YXw-t44O&gH4zEmBoP@RCNByR73dmMXu(@`23Zvc)=GHzkU4cnUBB>M{JnaReuF~$N$dt=ad z{OfjMqMXSji{(`SWCdpA;Q9f<&(v1p&`89YnRc!GZ?gjmse}XDo=@`mS8W%;Ntq$P zTtSV+31ne{IQbvt^6l%Ja0OMhy0dQ|P9r$MjQ;>pp8o*mYg*K{V6wWRUL)D+3*k(C zIRO1Wb(f1vxPw??wvsR)NghgYeQ}O{pN)E#>OjcYUdyM1y@AkziAX(h`Mz#YeY@N?LVdw8{|J&w8?Tbjn9rdu+lyu%ah z>L#yyUF^2*|EM#{Q|jsBkGwj5)I9E={^kUu~TA(vVs ziB2|n7s?wP@r+~Ew)Z6q_ShJhog0Iaqz%CSpXa?aGBjCe;=EiU1Z<7Lj~=-{FHcig zw;n-C_e=_*qXdF8yWi9KgZ_8v43-Lztd2N1;EewOO51b{n2Bwp5=L^(*kiaK%DG;k zMFpU_V$&V5fJr#y`s4BW_U~OI2QS;d(8gS`$NP)Zq)!^g%pr}KE`5p5=iBqgJc{*7 zOB8gi+4Hce=ANhdPs6dAn)z;GOB+eIN9Ed1Kt&#;WbQ5K3E%<8Jbb9ew`bUIu-4lc z`z$hUg^Ysi}9nGTBB;hCV@nx#G7NqaFmDgekl$Bc7YND;iu{zKc>0~qx0T2Z1AZXNT_Z}XGdtpTOi z86@YmCU?gU%4R0|GN zp5r68)9cT*G=jy2tlFDyCv0OSosM`MkUoDQ$E_zN0;OZyEJRUG?Gp07AwHwfXMlaZ zJx>O#a$eQ}aKtJ1RUm*>Rr&kmO4m$JW#WTM(R zM+Ep_0l7v-dwxFN-#XS@`V~iVbogaA`t21w2+JP@yr5^0-!GRP{{X%{bC0QQ{-k%y z)3~j-HtjabIc?OUU|Fi7j9#f`V!4pO(d=l$dysy9pNOtL zw&h2+0&fy>Pn!Hf#}Z$}83PAF$?h}qKhnF|##4Bt)9=BGmBMa;u*W^eYKNvO_eMO0 zKYN2wo{kEc+D>aHQcPo<(9MoaG25CEmPBL`xAd)1&C1E)pTT?|TBaurNYC4$Win@+ za7Vpy>S3-8957||c^9_5%q{r17YxjS4(4R;06dZN#e8SFqx2Dbl&%oSOuMloa#z;` zXC;pS9{#`3={hLDt!l;#fRae3BoZ8Oaxg(Ee+-O%72gy+Y?9#PpDV_%+$>Vh45@h( zjU38V)uk%|>MAb8UlC!cy7O^|KJ&a%<8#0isuQ6R;23&7^B1nib1 zMjMZMsLY!{$QbZ>6baDZ5B=TfH5Sw%BgDuZjcDg>a50JxEN3{Q3j34A37jxk%LHA` zv=g;*22KZTk;(VRaw=L}hTmf$W1wE@MNXSsX#x!cn8<3;`q_I0OPmIKc+CrGKA6q>&LqmS!!2rwTa7@noD3N5~xW&m7&^ zmeD)O5S?ULw#2`{TXuOp&#%w0thlzS!jW$8UAn%17Iz@>6(a&T)L;xMAXQx8X8>op z$*e~NBirJ)_lZhU?#w&6?TlAuBNRkgpT0=>)U#BO)5m|#p+}*?-kZ0J`H9v01E|S%Gb~8 za9ZEuk6t{fo$hX_>5jXz@CKPO{hMsl$vew(0a)NbfG*L3R#yGv#5S;vX5F*G@kTO( z{M_$poENCN2U6)dqO!`X&=dk-WH;jNrN67KV=Ua|jGU8(u3~UPx+kYDCc4X{&XHxXm zsbrQtO=K;vlVFDK$w?0MbE;^3n%)6a(H)Sq);)jkAYT3Ec=jAGjH zOf4Lx*TI-i7mE?eC9ujj0kjYs4066~{{WWL^7C&Ldxnfk zW6EPVObm?rk5Bv8CnR-HGnP6n+^EspfJn$taC5*U{RV3inny(jS-H?}B0w8x-~s{X zo-jE$_4VX?@r zvTX_@7{+nm+aIsQp zb)GzoD#d~iep@F$ugq7c46DQ5VWU_3GpP_-TQJ8YH*$ZadR)9&EQazKpkD@Q2?2u< zlYqc_jyWFv>!vxT_FvhFD=5sN#^fCL$smzij2e-A3fxXwcJ@5t@X=Sr|A+F6FtxZvYI zkK{jtZrdwOLm zzESypvoe;>8d~SIuVF^+ApR|%hRGo~!Nzg#kNf>=(~>F1j(BpoNo3`DFU`$a<&F~8 ztf0#o+q`lzJD>Ufb@C+!kJ#gylvD9BQz{t@s1>q#^uf>1``1YDXk?cS8<)X35L0LLRZ_4?L~v`CRLbvwrFZRBVEDr(py zS(PJH+PuDb9{&J`rD8T#Rdq&eAjUxN!2Ca->03>PigN%Dg&80z1Q=SbDa-?P^W08(W_x1W3iq_1AG?roHBw+K{bDHdt zl26`9N#4xIzFVKf`qo-V4@|3hmn3pQ?a#}PdW;sNiX$5MdGQ;bzz@S2&**+tfKCbU z!V|~S8Tr?#J5lY5^?sGzp`I-h;LIA3f&9SaQ;;j`8 z^v9)Swl9UaZc-~$O;j<4)3lI9LrIIX*R?@ntbVj5lSVM44{Fjd#B7={h>8Q&Vb6M5YKXmYP^f4FCWeRcLN-QMY599l zqqse&01cyoLS2wBC%DEcNZd&F=e1L@83Sv&m@#q=8|uNZnlKQ7R}|K{n*cL4lCm1$*K8x9@s-l+nPH8kFO)r_&Tvn!&+A_9iwv&b)O`NCD#(;$<9F;a);8?U9f*!6 zJd$t#{&numlZ`h=lh(Mu(ygRqR^f!3(2~2mXVW?U)$uZTA8rs!bdvWkv3@&P?i>=# z274ZPh4V$I6B@&SilIn9rzD@9 zdhzwM#Hlr2#(dZ4xHjbNw(pd@J5_#eVt?@D%_5cw3==ddXeaySpP>*lbov74~dQM##Bh{A6+1_vHEN9%DG`Q@2+#L+G##O!Cud?6gRqyRvnzz~vjpIb@K_u?=I6sFq=Bhs8k78}DAuTrS zu_ry)pK?!s$2Bb8k+(2xZwfpH$8tv`{{Wt!+NyS1q6M>(6$^5Af(8nc>7F>waqofj zZ%eDdG)PFaQH3k$+prHO+dt&WCeL_p&<@bA!j=f2V4Zg`m+DhL~=iVIcxM9H~vj0tPnV;2-Pq=B`|nf=1&C zMI>QoVvI;WM_lvBAn-}=$9~*o=Dd%cj)@V;Zr%!r2$CVm&I1ojsNi<@BL}etid*mf z28zzHAn>*s2cYgp9m{7QT%VqJtt)0|g3x8ij18oBJQI&kTygE~T9=q0yt6FXgl(K~ zj##RYJvbRS9ANr>RjhOI4H4#67?>-{Mp;=#GmkZPgtxBW>nokjYIqkxdG95Sr+n(Rh(lM?WG4Td0C5cO8&4$KsJr8~}-`=*^GB8N8 zJIn&9AZ}>D0Pgt$4>|9S{k?I{NuWm(2;+}&-5AJOGB8))zDFM_t?&8#0pDeSD@hV& zTzN@cpTK7s{Co3LQ{jTNHiq%qd$rt&_Z8bMjP~R8&-AUzdRD;AqER0yCCF93d= zR~9I6PIix4&46Xvaoqm^Dywi-SmcqsZNw<6xDIqBn`Mx83|RIU=aPT9&MHeYdkrMU!CVwpWdw8Ek56yuS=T~|pwpy;cx>C090qgF zeLunZRCBVVUQIP+&x?-7=f|Z@MzolV-94dG6j(k|LgxhM(Biil8F4f{Lr*X}Ng9y6 z5Ig#F_2)J1$CA!xMd|GTC8Ef_V<6?=?Z0>m?APu?Fs3Fn^K_vGMa#qGIE*3U%<_x@*K8HS@xft~o(K}vdYK)}zsAFV8Oj&0A=OAwT z&D#K+43Ig;$W&4q4SDptci(#p7gDT&6s{Gw1Cz$=;1P_0&m-2iuDM4i6Ii)|7~8-u zqF?r@8ONqT1o!?#cjCH6`J)XK#e|EH*+nPcp53#b=6~Z(UK^81hSsg-kVhSfXYR)b zg*;&TeDDX(yJ2g4Cj{1>C_u8N*)fB;hSQH;J^q!6RqSQ6T-RsBi-iIGcD8?~f6Bc$ zBd|`*WuybY-ahr|qLbT51Bqn83H&>;+qQ9^ucc;48$7*9sIv<@HAuiwztJbHMo*{fy}@_X3`d%1E>M;lqY{D-&9S7=5nf-=RPnfA1Ibdl5nx>dnppJmPu z{{Un#GJD`wWs^^buq0O+e9Fh{ULb6hP!86>7(4<`ZuNa)?kHkhTxrarHZeFSE87Gg zUqf2bqzt~BJ=DNM4C);`<)zW@wCNcnT8dYB<$Qt8%wvhxyCui1XkmlOY$jt{;tdHEXksmCdY8Z1YueWpCfRT$%A1>ML$mt)`l)rn%#_T0#xHNCMa0!ukQ zXU-IT0Q%ERrQ{2?c4qmOd!=2g!mAPoxF;Tix$W~c==Dkq^*X@)cLR|(F|Q5#{%0A!4weZ4sJ{{T7k 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%0ALPi2ApS})ksRJJBp}{iZSU?kd(IU1>&@3 zsA`j*YFSwux1jGvYA8^ugU#NuEM2M&XiE@a9o>Zm4K5FUXj&pIp7b?9IiaKkRRU-0 zLLeOb)F^hK8l$~XJQ^9INYFPXh>eqv(yKBt$@Hv*L7djjg#dQ#KqqPe>f2AsvdGam zV0fZ4LgyTc(*lh8R77Q%+Z?rN9NE#jFK7!U=;Lcv@f5p=@(CH`yuMuS%W!aeXEpHs zA%(-v{69ZF2i55Mg*T=0z6~9|T{7QNSF*TukL@PGFLV1QWmz{xpY0*d%c zD_gG5e-r8HP1hE^$1mv1S+pH+X)PR$cW&~S729r9saE8W2bb>fTRp4k=bx;GuO3f6 zIOvr=$G7@hs|<=GcoiVQ&hX&)h*d}jDnKYp5t4ZF;4#m|%Z(%G@<$W@g6JUnt8q+BsX>k3Y}%$kVZ}EXSv>*7oE`%(J7$BaM8;8cmAZgC1ljEI}y2 zcn7~l`qgDKDP;fpNI!%PC>!(TIEFmU+B1MM6ID_n8n*CihV zyyr^KKlHAr4!5pp3Dna>mM?V9QHkDWnR0kg01?0L`R6^`CkNSPUe>yoqC z8rGT9mwIgW7jeU=+RS8D3c(bVZw^Js>{Wq6cY1qQ#*SI3ZMWR}Yp2IJTi*8g9$o8= zQ&O?Gk+i!jSacmP!V6~{iLz+<^X@q+z>ac!#~kN_^)M*Oex~jB@O~70uBAA-OJ(!- zo>$kQ(XMp}uQZ9SRyJP};#;!Qxng{(a521qN#_TQa4YO$a*S$K?%4TrNxiT0v7XUO z*;~yAfgJYHgBOeC@QRWbJ9iuqR|7c8o!BFh%4t7oxVkr=hq?`vmh;IJt2X)BOlYz* z#_9lNd~xaAWMc#z8sXGrY473jE;#Bp2D7t8W?7L;d2bImBo6yV277vB{Hx5eHOaj; zQ@^-|FpX^9H>+e|OT-$gq;IZ@|Z0AFgp*Ov^@ra~GVE*nT{IKd-%dV$KZ4 z%muk9MoSD9BRJ1L;ruwQt;{`)OtZxp+xM6O+nzs_bxE@*V?G!6M*#DZKfm_N}w4r@*=Zi%(wt=9%SbO z2hg6?(LI4GK{`va95W1%RD*%okbjjMO#-d)YjsGnH!;g|=s&${8c%Ri1xdp3laNQH zZJ;&WMmMMglT~g4*%{cbLXPZ6;0%9SvUCdqLkxSAcFxo|$jJ5j{{WcHbE{=WcT9>~ zg`U~~T(o2&s{#pEQ^@WK11e5CW7nN1pFgV1vAEl$p7x(~*3aL+g5;>TB-^x7s4<}o znNg75xId3I-=xQHe#b7iW~CO>dp_x}XJY{)mnEG3HS}4{Muy)IVqk9+aVARC*q2qA*ZT8Rm>xD(BXr876bytK1Qj zlSENQ2YRMj4c^oPj{`Iy+~a{jG!H{Uv7;We07tiKQBa6>nMYi+zepI*nWqsyhJanHZc>~@6HTGADk z>MgGtnFioCFc~NR08efd z_Q?m>oN#kBD6_0|HRfYAhqC)mkEU&v*KT5rHsvZo;gg?E}A(Zqdy=At};nJ zd_5jKU$uMtohP1C1^gb5vE}jDqcn)DyYdM_5f6Fw<&t#Mbs>l$Gf$jDEFAl zJZzvi&R3D&gU87GRu*{4(re;Z7Pn+D>DLz^v{5kwxyAtclfdT!lFJzK$fJB4O@U6H zw)<_|YS&wX!yKiynPYXw2*YxPIV6xXwLv*yUM!2(&X*nEdiVFgmpzX0eyv|~SJgEc zwR@>`E6u(%&AGOyQJ;_r);EaXokh0T*+bLUzYy>%b`V*HIN1> zSR94qkTHzlfKCqt*O#frr&0O&`+q!*9aMu<H7{C<9LeHc|E zp=rH6q-rSZq&~~Q1Y$&TvFk* z#fzJna~p!EJJo;(Xu;f1@a_k4c1=lt2RGI2?cs&2gBV{QKcnOmdwgbF+~kz@gn1dc%i=fdz0Ipfgo zzUP{#y*06%j{%-!a(6}n3b3fXaWHTs4 z@+&K&E*X#TL{AOoTn4W4c$6F6%fq$#Q@y<3@F5vD+Pr)GAMkb!KHBd=oeq~G7~5%g zT;Z{gxD00H4lz`_rQN@w`#<>pNo46F=Pmc9_NB+a-|;q%yVY(we){)Rv}=ofEFzFg zmvOjoql1J}Nb`9Y_(1M{ek7+!*WCMAQ;z)o4iBRB<;CsF-f9af!2IGhO^fI}xbhCc zKmY(o%-6Z%rLpB%ZSHlQJ6O^+NARt#eEHfGf~~>9$RKbDz&wM4f=?C3Qq$P=LZ`A~ z-hpiBjVV|p&RC|>r1GQ_kU{q#eRIWg$CXU!EKUWByP>C;gOXLT;xWRM_BcM7BO^Y! z=dtG`nbI{>=F+Ys zk`-_C;I178=5)w7Dh7N(ol&;&&W)&TwoYe( zSI8Iw31tOx$FT>Hcq5DqCX{rvZcuWTq|P_j{WW*0UYlJot?kf_OsE@aQJnb~$bfoh zCA|sGYte#AD}9a`@wq*>IduIaeQg_?i0!w6>wpH5vFlPF=f@~|OFkgTI_KZ|e6jPvhaj9DW6r<*1@8J?HZZA6pZ>o(7F zWJTF2N0Koi7zb&PWzHKo;1A(bw>om62p+q*__3owV!H1{X}6Z0S#u*>YBE`PuVVx( zjT)qFxe;<<~k0|_c`U?5-!5()$j50T|DVyvnR2-9q9AoqP4n3>9 zV|yIr_p=uy{{U(`TOfi+$p<4n_|NyoK6UAe(vB`xH6t;M@!y=EdgUjm)KwGBap1-# z2_&t!AV`2_B=9qwU=LDA0CG)pSm@NU(UT?ZVN0D+qO(U)u^IO>ANGt6exMP-=hn9j zX}ye2Z7s|#$5ZLDcp7X{wZxd;EQ}d#lxKh`x;G6Up&^JzbAAFY32f(ZI3W4SZZOBW?_PQJ zJ_l&vUCk@5`cF?1Nqwc5<7;?BW#=H|Zf0%H#ZQ+9Bn$zZsZvK=S)C;-_Z+feS7_uV zqJvHGg|v~GBMP&Su}DZcFBH3!9!7hX&OD`0J?*w~t&LMyYpc5;H5+(|k;=5CkjuHo z;kjdG{{U$qkg7;xfmARWib>l1`=U8tKc8cg>N2E);?~#4Z?lz*hm8>(C5(pf+ju9; zSy>9M(SwjNpG;LG+2xaOV~)x3A6)4BiEW{sRjxs2jo3U-oGHCbF$*5elq{t&_9%p>*SjZ%hftw?CKtjR1*!#F2I$b2A$H4kA z>tik7#LV34O?x4l*}_`BB#99`rCCYI+zB6e5Hc~eXSuFZY8xG)c{gw2e{z&JQwbNo zSn@uHIRtat=lJ%oKC{-KpC>4$^nPZqKg47QUBTc;TmDIBq zB&x}QfS^~@#G?#Wy^GDi;P|KJb%c9CEAWk7ZF9OJ$_<2?5` z`Sv^^29HGNtK4Fm>dRGAY~B;bxY@hPPp}8j`)7fkaCokoS~+V>9Jc09qU^>y{?OQ^wh6n5~-B5l|m-**a5a#crhf*A4GWLMOV zB^|jwbn-T6-9@Zwam-?h=ISX_4-k^$aZm>C2JU@H@6WY&#|7YyGLtb^lE$d5BxlBD z-QqS%oPM6!=bxaf7_*$E;$z{G4-m{r+ItM~pI^uNR+?rJxahXgFp}t)=Wu~wKn8M7 z;s*n;_dIs&YY~!9bIaFa$&wX~)3xyaJXdoSs#sh@ZZ2fDcmobMN3h`glixp%4Sg<} zc<=O|o$8)@{{Y){#`cr;T1eEQW=6>dzKVCr!K)&=*5!#l%!2^)oO9dWpW;QmQr({X zP3hAemwy-W2f!S8@SISKj-=BTzZM=i!nStv8eHH zpJ9->SDCj?aoiJw!1eU{{{Y8o_$pn`(8W@uVdX`OaFBu<_(Pz^af>NZ*)2c;1Sm2=H#%Vdid z;x_g*jZ5LkcScPBizvaBlRW3S#{=ca$Jf6&ub-BB+3UfNO0k#tjbn>GaGZ?x&zm2w zKRVY!{p~J`Pa}q^jSv(w>50Tjg9eu;L^*aX_1?sYJ*6j$?rfbA7Us7 z`%u~pgFqa6P%%l*Y8gmx1G%B0nZe1R7k4~RQ1A^>ScOULP*}r}#R@KQKqhlQFUU{` zXar%AjM0I+F~O|Ss~^QwMkx7JAbQ|X1~bUwfKokZ1`cXjQW2YPYRRG^#j4N{jCT|u zhl(1o$s8Jjhla?&??O<7p40=F0pGmW>FH3iUxh~U<&PzEBhC`|4? zZuBW3U%Ib5OwLVa-$;EJVl-TO@l{(>cvEW7G8$ zYnfFSV8#Pr^Y4R6!A?3~f05&Gsi`hgPu#m6gXo=ZeREER(bZys6`~uQHXHzVtCieG zZOU_y4g+J4$93I5sFT0N;a)xm>^e-#Ja*YFzaP}hYrQ4^0Extwv+lRmEf}nF7Rftu ze8bcc$UKrWl5t#dWO%q+K39k5bF9BwsdBsie2s(Qrmt}&&DM#k#{U57>@m0kv8p}- zI4S}HHsJ}tJCAa>tJFnOYmNpc*3XmCwlZE^Mr5@Y1jYof!my9TUq1XE-XUPe0LDmC zs6#0E@<*}*62|ISC-LDizS7Q+DF1BL0nn0U!8+LsTU7T$MHcm5~^L=iILO6A+HBCdIwN9hcpq@=$X0hMnEK;u0qi7gq zW(0xHH~?q1aa|+TMh}8Mk;#7Jd-!+LR<~AXs5*8*b$q583Zx= z+qvh5Rh6fvTP{yeNz>o!g+9*sItAv1Vb-x+bp6u!GOLG{FyVJA5KM<|3jvLruz2Op zO?cL6V`^OfY<&lU8CHk0Uvr#%LHHwOt!Z~-q~s|En08zjXN^E`2rAnO;BMSc3JAj; z!oB?`q#PP@?tH$t(dlg-$BZ@Kh8oXI#Fu6HkKk(=H|B*v@=D>bsjQ z@J(#@7DTt56;+eXfLY1&Fc@4Oc8)pCW2nNV-iry*zx}35$-dY_tZWX@^s5F&iqP20r>^8czJL$y>CY$UR#`O-G*P*B zW-~BDDvvff8Toqi`BhAXE42m#9@D_XNDAa<^Zh^XV)qQ@%^2|%lixfa?Z?x-dlBR) zUA#vO=e`f%f2Z}W#=|x1k!%?3eZ=9gFnAz(`+HY)W(xN)J8qH?K?{SC&jT1co(WF_ODM8TQXO$ESYOjI^`o`b(#lcsRvu>i6BG?WO1E?J#<+(K0kjc*!}= zNhIed+}G8`1&%a$@hyL;`EB67#u7<3@J(s6(-_%Jq|a)Wbx|WEnue$-Q9W}|jgKw2 zk?TTG+>=za7~>>VAW#Q-sS&ZkdC03m%OSJLtr%ov`Kv6Wfb4x}fbhAhWse`F2r#!e z6fF%tlxBxe3EzqV%4lE-_n;f|^r2{Pu1Bp3gx$s{N)Fr_8W54`Ku4MZNY8o}!A1^f zMoFA@p_&(QHAM_>N`{04j?^s@$8hkS(Hs&mO=ZUUAp;YfwmZQA?0QT;&OH_j5-L51GPFwP4Wz){;pUs}7 zk_lNrd_&S?o=6hr&f+r*|7~^3SQ3X~xBN3_&{N#db^xZE-4w*Ft z&$aRGXUEN+S)Ix8>|aAr+&z6O(MKyR+gjXSFpkn0C33++#)XMua0UQ8lh}ItRwp$M zT1Jv@gKTeyokI|Iy0T~j44)a%JxJgd$<7WqN{qi|w7;Ed-U{l0b59cDT3(V1gt$=GxbxvAt@T9!QVxMPfGkVxYrJp8-y zT=IHH9A74*f>P{V)V><)nqP|px4;Qq7H zH#hO!l{OX;ERA;lL~_F_ia908^5AC&86v$sKcu6TFBi3VSJ>m1q?R_*;dkx72Q$;J zt~9%d^(zTHDdBL)%0@x@c0W$l?wl0UjJHhl#!fEL*YrP&?qz4|3sZJob{Vbl8

d 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í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]+st[t>>16&255]+st[t>>24&255]+"-"+st[255&e]+st[e>>8&255]+"-"+st[e>>16&15|64]+st[e>>24&255]+"-"+st[63&n|128]+st[n>>8&255]+"-"+st[n>>16&255]+st[n>>24&255]+st[255&i]+st[i>>8&255]+st[i>>16&255]+st[i>>24&255]).toUpperCase()}function ht(t,e,n){return Math.max(e,Math.min(n,t))}function ut(t,e){return(t%e+e)%e}function dt(t,e,n){return(1-n)*t+n*e}function pt(t){return 0==(t&t-1)&&0!==t}function mt(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function ft(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}var gt=Object.freeze({__proto__:null,DEG2RAD:ot,RAD2DEG:lt,generateUUID:ct,clamp:ht,euclideanModulo:ut,mapLinear:function(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)},inverseLerp:function(t,e,n){return t!==e?(n-t)/(e-t):0},lerp:dt,damp:function(t,e,n,i){return dt(t,e,1-Math.exp(-n*i))},pingpong:function(t,e=1){return e-Math.abs(ut(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){return void 0!==t&&(at=t%2147483647),at=16807*at%2147483647,(at-1)/2147483646},degToRad:function(t){return t*ot},radToDeg:function(t){return t*lt},isPowerOfTwo:pt,ceilPowerOfTwo:mt,floorPowerOfTwo:ft,setQuaternionFromProperEuler:function(t,e,n,i,r){const s=Math.cos,a=Math.sin,o=s(n/2),l=a(n/2),c=s((e+i)/2),h=a((e+i)/2),u=s((e-i)/2),d=a((e-i)/2),p=s((i-e)/2),m=a((i-e)/2);switch(r){case"XYX":t.set(o*h,l*u,l*d,o*c);break;case"YZY":t.set(l*d,o*h,l*u,o*c);break;case"ZXZ":t.set(l*u,l*d,o*h,o*c);break;case"XZX":t.set(o*h,l*m,l*p,o*c);break;case"YXY":t.set(l*p,o*h,l*m,o*c);break;case"ZYZ":t.set(l*m,l*p,o*h,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}});class vt{constructor(t=0,e=0){this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=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(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}}vt.prototype.isVector2=!0;class yt{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(t,e,n,i,r,s,a,o,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=a,c[3]=e,c[4]=r,c[5]=o,c[6]=n,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],m=i[0],f=i[3],g=i[6],v=i[1],y=i[4],x=i[7],_=i[2],w=i[5],b=i[8];return r[0]=s*m+a*v+o*_,r[3]=s*f+a*y+o*w,r[6]=s*g+a*x+o*b,r[1]=l*m+c*v+h*_,r[4]=l*f+c*y+h*w,r[7]=l*g+c*x+h*b,r[2]=u*m+d*v+p*_,r[5]=u*f+d*y+p*w,r[8]=u*g+d*x+p*b,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8];return e*s*c-e*a*l-n*r*c+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=c*s-a*l,u=a*o-c*r,d=l*r-s*o,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const m=1/p;return t[0]=h*m,t[1]=(i*l-c*n)*m,t[2]=(a*n-i*s)*m,t[3]=u*m,t[4]=(c*e-i*o)*m,t[5]=(i*r-a*e)*m,t[6]=d*m,t[7]=(n*o-l*e)*m,t[8]=(s*e-n*r)*m,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1),this}scale(t,e){const n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=e,n[4]*=e,n[7]*=e,this}rotate(t){const e=Math.cos(t),n=Math.sin(t),i=this.elements,r=i[0],s=i[3],a=i[6],o=i[1],l=i[4],c=i[7];return i[0]=e*r+n*o,i[3]=e*s+n*l,i[6]=e*a+n*c,i[1]=-n*r+e*o,i[4]=-n*s+e*l,i[7]=-n*a+e*c,this}translate(t,e){const n=this.elements;return n[0]+=t*n[2],n[3]+=t*n[5],n[6]+=t*n[8],n[1]+=e*n[2],n[4]+=e*n[5],n[7]+=e*n[8],this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}let xt;yt.prototype.isMatrix3=!0;class _t{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if("undefined"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===xt&&(xt=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")),xt.width=t.width,xt.height=t.height;const n=xt.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=xt}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}}let wt=0;class bt extends rt{constructor(t=bt.DEFAULT_IMAGE,e=bt.DEFAULT_MAPPING,n=1001,i=1001,r=1006,s=1008,a=1023,o=1009,l=1,c=3e3){super(),Object.defineProperty(this,"id",{value:wt++}),this.uuid=ct(),this.name="",this.image=t,this.mipmaps=[],this.mapping=e,this.wrapS=n,this.wrapT=i,this.magFilter=r,this.minFilter=s,this.anisotropy=l,this.format=a,this.internalFormat=null,this.type=o,this.offset=new vt(0,0),this.repeat=new vt(1,1),this.center=new vt(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new yt,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=c,this.version=0,this.onUpdate=null}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(t){return this.name=t.name,this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this}toJSON(t){const e=void 0===t||"string"==typeof t;if(!e&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];const n={metadata:{version:4.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(void 0!==this.image){const i=this.image;if(void 0===i.uuid&&(i.uuid=ct()),!e&&void 0===t.images[i.uuid]){let e;if(Array.isArray(i)){e=[];for(let t=0,n=i.length;t1)switch(this.wrapS){case h:t.x=t.x-Math.floor(t.x);break;case u:t.x=t.x<0?0:1;break;case d:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case h:t.y=t.y-Math.floor(t.y);break;case u:t.y=t.y<0?0:1;break;case d:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&this.version++}}function Mt(t){return"undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap?_t.getDataURL(t):t.data?{data:Array.prototype.slice.call(t.data),width:t.width,height:t.height,type:t.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}bt.DEFAULT_IMAGE=void 0,bt.DEFAULT_MAPPING=i,bt.prototype.isTexture=!0;class St{constructor(t=0,e=0,n=0,i=1){this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],m=o[2],f=o[6],g=o[10];if(Math.abs(c-u)o&&t>v?tv?o=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+u*r,l=l*t+d*r,c=c*t+p*r,h=h*t+m*r,t===1-a){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t,l*=t,c*=t,h*=t}}t[e]=o,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],l=n[i+2],c=n[i+3],h=r[s],u=r[s+1],d=r[s+2],p=r[s+3];return t[e]=a*p+c*h+o*d-l*u,t[e+1]=o*p+c*u+l*h-a*d,t[e+2]=l*p+c*d+a*u-o*h,t[e+3]=c*p-a*h-o*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){if(!t||!t.isEuler)throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,l=a(n/2),c=a(i/2),h=a(r/2),u=o(n/2),d=o(i/2),p=o(r/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-o)*t,this._y=(r-l)*t,this._z=(s-i)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(r-l)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(s-i)/t,this._x=(r+l)/t,this._y=(o+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(ht(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t,e){return void 0!==e?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,l=e._z,c=e._w;return this._x=n*c+s*a+i*l-r*o,this._y=i*c+s*o+r*a-n*l,this._z=r*c+s*l+n*o-i*a,this._w=s*c-n*a-i*o-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=s*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=r*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){this.copy(t).slerp(e,n)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}At.prototype.isQuaternion=!0;class Lt{constructor(t=0,e=0,n=0){this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t,e){return void 0!==e?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return t&&t.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(Ct.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(Ct.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,l=o*e+s*i-a*n,c=o*n+a*e-r*i,h=o*i+r*n-s*e,u=-r*e-s*n-a*i;return this.x=l*o+u*-r+c*-a-h*-s,this.y=c*o+u*-s+h*-r-l*-a,this.z=h*o+u*-a+l*-s-c*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=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(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t,e){return void 0!==e?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(t,e)):this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return Rt.copy(this).projectOnVector(t),this.sub(Rt)}reflect(t){return this.sub(Rt.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(ht(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}}Lt.prototype.isVector3=!0;const Rt=new Lt,Ct=new At;class Pt{constructor(t=new Lt(1/0,1/0,1/0),e=new Lt(-1/0,-1/0,-1/0)){this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){let e=1/0,n=1/0,i=1/0,r=-1/0,s=-1/0,a=-1/0;for(let o=0,l=t.length;or&&(r=l),c>s&&(s=c),h>a&&(a=h)}return this.min.set(e,n,i),this.max.set(r,s,a),this}setFromBufferAttribute(t){let e=1/0,n=1/0,i=1/0,r=-1/0,s=-1/0,a=-1/0;for(let o=0,l=t.count;or&&(r=l),c>s&&(s=c),h>a&&(a=h)}return this.min.set(e,n,i),this.max.set(r,s,a),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return void 0===e&&(console.warn("THREE.Box3: .getParameter() target is now required"),e=new Lt),e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,It),It.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(Ut),kt.subVectors(this.max,Ut),Bt.subVectors(t.a,Ut),zt.subVectors(t.b,Ut),Ft.subVectors(t.c,Ut),Ot.subVectors(zt,Bt),Ht.subVectors(Ft,zt),Gt.subVectors(Bt,Ft);let e=[0,-Ot.z,Ot.y,0,-Ht.z,Ht.y,0,-Gt.z,Gt.y,Ot.z,0,-Ot.x,Ht.z,0,-Ht.x,Gt.z,0,-Gt.x,-Ot.y,Ot.x,0,-Ht.y,Ht.x,0,-Gt.y,Gt.x,0];return!!jt(e,Bt,zt,Ft,kt)&&(e=[1,0,0,0,1,0,0,0,1],!!jt(e,Bt,zt,Ft,kt)&&(Vt.crossVectors(Ot,Ht),e=[Vt.x,Vt.y,Vt.z],jt(e,Bt,zt,Ft,kt)))}clampPoint(t,e){return void 0===e&&(console.warn("THREE.Box3: .clampPoint() target is now required"),e=new Lt),e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return It.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return void 0===t&&console.error("THREE.Box3: .getBoundingSphere() target is now required"),this.getCenter(t.center),t.radius=.5*this.getSize(It).length(),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(Dt[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Dt[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Dt[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Dt[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Dt[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Dt[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Dt[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Dt[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Dt)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}Pt.prototype.isBox3=!0;const Dt=[new Lt,new Lt,new Lt,new Lt,new Lt,new Lt,new Lt,new Lt],It=new Lt,Nt=new Pt,Bt=new Lt,zt=new Lt,Ft=new Lt,Ot=new Lt,Ht=new Lt,Gt=new Lt,Ut=new Lt,kt=new Lt,Vt=new Lt,Wt=new Lt;function jt(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){Wt.fromArray(t,s);const a=r.x*Math.abs(Wt.x)+r.y*Math.abs(Wt.y)+r.z*Math.abs(Wt.z),o=e.dot(Wt),l=n.dot(Wt),c=i.dot(Wt);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const qt=new Pt,Xt=new Lt,Yt=new Lt,Zt=new Lt;class Jt{constructor(t=new Lt,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):qt.setFromPoints(t).getCenter(n);let i=0;for(let e=0,r=t.length;ethis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return void 0===t&&(console.warn("THREE.Sphere: .getBoundingBox() target is now required"),t=new Pt),this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){Zt.subVectors(t,this.center);const e=Zt.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.add(Zt.multiplyScalar(n/t)),this.radius+=n}return this}union(t){return Yt.subVectors(t.center,this.center).normalize().multiplyScalar(t.radius),this.expandByPoint(Xt.copy(t.center).add(Yt)),this.expandByPoint(Xt.copy(t.center).sub(Yt)),this}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Qt=new Lt,Kt=new Lt,$t=new Lt,te=new Lt,ee=new Lt,ne=new Lt,ie=new Lt;class re{constructor(t=new Lt,e=new Lt(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return void 0===e&&(console.warn("THREE.Ray: .at() target is now required"),e=new Lt),e.copy(this.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Qt)),this}closestPointToPoint(t,e){void 0===e&&(console.warn("THREE.Ray: .closestPointToPoint() target is now required"),e=new Lt),e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Qt.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Qt.copy(this.direction).multiplyScalar(e).add(this.origin),Qt.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){Kt.copy(t).add(e).multiplyScalar(.5),$t.copy(e).sub(t).normalize(),te.copy(this.origin).sub(Kt);const r=.5*t.distanceTo(e),s=-this.direction.dot($t),a=te.dot(this.direction),o=-te.dot($t),l=te.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=r*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*r+a)),u=h>0?-r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-r,-o),r),d=u*(u+2*o)+l):(h=Math.max(0,-(s*r+a)),u=h>0?r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l);else u=s>0?-r:r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.direction).multiplyScalar(h).add(this.origin),i&&i.copy($t).multiplyScalar(u).add(Kt),d}intersectSphere(t,e){Qt.subVectors(t.center,this.origin);const n=Qt.dot(this.direction),i=Qt.dot(Qt)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return a<0&&o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(r=(t.min.y-u.y)*c,s=(t.max.y-u.y)*c):(r=(t.max.y-u.y)*c,s=(t.min.y-u.y)*c),n>s||r>i?null:((r>n||n!=n)&&(n=r),(s=0?(a=(t.min.z-u.z)*h,o=(t.max.z-u.z)*h):(a=(t.max.z-u.z)*h,o=(t.min.z-u.z)*h),n>o||a>i?null:((a>n||n!=n)&&(n=a),(o=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,Qt)}intersectTriangle(t,e,n,i,r){ee.subVectors(e,t),ne.subVectors(n,t),ie.crossVectors(ee,ne);let s,a=this.direction.dot(ie);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}te.subVectors(this.origin,t);const o=s*this.direction.dot(ne.crossVectors(te,ne));if(o<0)return null;const l=s*this.direction.dot(ee.cross(te));if(l<0)return null;if(o+l>a)return null;const c=-s*te.dot(ie);return c<0?null:this.at(c/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class se{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(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=m,g[15]=f,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 se).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/ae.setFromMatrixColumn(t,0).length(),r=1/ae.setFromMatrixColumn(t,1).length(),s=1/ae.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){t&&t.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),l=Math.sin(i),c=Math.cos(r),h=Math.sin(r);if("XYZ"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=-o*h,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-a*o,e[2]=r-t*l,e[6]=i+n*l,e[10]=s*o}else if("YXZ"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*l,e[1]=s*h,e[5]=s*c,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if("ZXY"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*a,e[4]=-s*h,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*c,e[9]=r-t*a,e[2]=-s*l,e[6]=a,e[10]=s*o}else if("ZYX"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=i*l-n,e[8]=t*l+r,e[1]=o*h,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=a*o,e[10]=s*o}else if("YZX"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=r-t*h,e[8]=i*h+n,e[1]=h,e[5]=s*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-r*h}else if("XZY"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=-h,e[8]=l*c,e[1]=t*h+r,e[5]=s*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=a*c,e[10]=r*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(le,t,ce)}lookAt(t,e,n){const i=this.elements;return de.subVectors(t,e),0===de.lengthSq()&&(de.z=1),de.normalize(),he.crossVectors(n,de),0===he.lengthSq()&&(1===Math.abs(n.z)?de.x+=1e-4:de.z+=1e-4,de.normalize(),he.crossVectors(n,de)),he.normalize(),ue.crossVectors(de,he),i[0]=he.x,i[4]=ue.x,i[8]=de.x,i[1]=he.y,i[5]=ue.y,i[9]=de.y,i[2]=he.z,i[6]=ue.z,i[10]=de.z,this}multiply(t,e){return void 0!==e?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],m=n[6],f=n[10],g=n[14],v=n[3],y=n[7],x=n[11],_=n[15],w=i[0],b=i[4],M=i[8],S=i[12],T=i[1],E=i[5],A=i[9],L=i[13],R=i[2],C=i[6],P=i[10],D=i[14],I=i[3],N=i[7],B=i[11],z=i[15];return r[0]=s*w+a*T+o*R+l*I,r[4]=s*b+a*E+o*C+l*N,r[8]=s*M+a*A+o*P+l*B,r[12]=s*S+a*L+o*D+l*z,r[1]=c*w+h*T+u*R+d*I,r[5]=c*b+h*E+u*C+d*N,r[9]=c*M+h*A+u*P+d*B,r[13]=c*S+h*L+u*D+d*z,r[2]=p*w+m*T+f*R+g*I,r[6]=p*b+m*E+f*C+g*N,r[10]=p*M+m*A+f*P+g*B,r[14]=p*S+m*L+f*D+g*z,r[3]=v*w+y*T+x*R+_*I,r[7]=v*b+y*E+x*C+_*N,r[11]=v*M+y*A+x*P+_*B,r[15]=v*S+y*L+x*D+_*z,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+r*o*h-i*l*h-r*a*u+n*l*u+i*a*d-n*o*d)+t[7]*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*c-r*o*c)+t[11]*(+e*l*h-e*a*d-r*s*h+n*s*d+r*a*c-n*l*c)+t[15]*(-i*a*c-e*o*h+e*a*u+i*s*h-n*s*u+n*o*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],m=t[13],f=t[14],g=t[15],v=h*f*l-m*u*l+m*o*d-a*f*d-h*o*g+a*u*g,y=p*u*l-c*f*l-p*o*d+s*f*d+c*o*g-s*u*g,x=c*m*l-p*h*l+p*a*d-s*m*d-c*a*g+s*h*g,_=p*h*o-c*m*o-p*a*u+s*m*u+c*a*f-s*h*f,w=e*v+n*y+i*x+r*_;if(0===w)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const b=1/w;return t[0]=v*b,t[1]=(m*u*r-h*f*r-m*i*d+n*f*d+h*i*g-n*u*g)*b,t[2]=(a*f*r-m*o*r+m*i*l-n*f*l-a*i*g+n*o*g)*b,t[3]=(h*o*r-a*u*r-h*i*l+n*u*l+a*i*d-n*o*d)*b,t[4]=y*b,t[5]=(c*f*r-p*u*r+p*i*d-e*f*d-c*i*g+e*u*g)*b,t[6]=(p*o*r-s*f*r-p*i*l+e*f*l+s*i*g-e*o*g)*b,t[7]=(s*u*r-c*o*r+c*i*l-e*u*l-s*i*d+e*o*d)*b,t[8]=x*b,t[9]=(p*h*r-c*m*r-p*n*d+e*m*d+c*n*g-e*h*g)*b,t[10]=(s*m*r-p*a*r+p*n*l-e*m*l-s*n*g+e*a*g)*b,t[11]=(c*a*r-s*h*r-c*n*l+e*h*l+s*n*d-e*a*d)*b,t[12]=_*b,t[13]=(c*m*i-p*h*i+p*n*u-e*m*u-c*n*f+e*h*f)*b,t[14]=(p*a*i-s*m*i-p*n*o+e*m*o+s*n*f-e*a*f)*b,t[15]=(s*h*i-c*a*i+c*n*o-e*h*o-s*n*u+e*a*u)*b,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,l=r*s,c=r*a;return this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,c*a+n,c*o-i*s,0,l*o-i*a,c*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n){return this.set(1,e,n,0,t,1,n,0,t,e,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,l=r+r,c=s+s,h=a+a,u=r*l,d=r*c,p=r*h,m=s*c,f=s*h,g=a*h,v=o*l,y=o*c,x=o*h,_=n.x,w=n.y,b=n.z;return i[0]=(1-(m+g))*_,i[1]=(d+x)*_,i[2]=(p-y)*_,i[3]=0,i[4]=(d-x)*w,i[5]=(1-(u+g))*w,i[6]=(f+v)*w,i[7]=0,i[8]=(p+y)*b,i[9]=(f-v)*b,i[10]=(1-(u+m))*b,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=ae.set(i[0],i[1],i[2]).length();const s=ae.set(i[4],i[5],i[6]).length(),a=ae.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],oe.copy(this);const o=1/r,l=1/s,c=1/a;return oe.elements[0]*=o,oe.elements[1]*=o,oe.elements[2]*=o,oe.elements[4]*=l,oe.elements[5]*=l,oe.elements[6]*=l,oe.elements[8]*=c,oe.elements[9]*=c,oe.elements[10]*=c,e.setFromRotationMatrix(oe),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s){void 0===s&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");const a=this.elements,o=2*r/(e-t),l=2*r/(n-i),c=(e+t)/(e-t),h=(n+i)/(n-i),u=-(s+r)/(s-r),d=-2*s*r/(s-r);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,i,r,s){const a=this.elements,o=1/(e-t),l=1/(n-i),c=1/(s-r),h=(e+t)*o,u=(n+i)*l,d=(s+r)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}se.prototype.isMatrix4=!0;const ae=new Lt,oe=new se,le=new Lt(0,0,0),ce=new Lt(1,1,1),he=new Lt,ue=new Lt,de=new Lt,pe=new se,me=new At;class fe{constructor(t=0,e=0,n=0,i=fe.DefaultOrder){this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._order=i||this._order,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e,n){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],l=i[5],c=i[9],h=i[2],u=i[6],d=i[10];switch(e=e||this._order){case"XYZ":this._y=Math.asin(ht(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-ht(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,r),this._z=0);break;case"ZXY":this._x=Math.asin(ht(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-ht(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(ht(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-ht(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!1!==n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return pe.makeRotationFromQuaternion(t),this.setFromRotationMatrix(pe,e,n)}setFromVector3(t,e){return this.set(t.x,t.y,t.z,e||this._order)}reorder(t){return me.setFromEuler(this),this.setFromQuaternion(me,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}toVector3(t){return t?t.set(this._x,this._y,this._z):new Lt(this._x,this._y,this._z)}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}fe.prototype.isEuler=!0,fe.DefaultOrder="XYZ",fe.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];class ge{constructor(){this.mask=1}set(t){this.mask=1<1){for(let t=0;t1){for(let t=0;t0){i.children=[];for(let e=0;e0){i.animations=[];for(let e=0;e0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e1?null:e.copy(n).multiplyScalar(r).add(t.start)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return void 0===t&&(console.warn("THREE.Plane: .coplanarPoint() target is now required"),t=new Lt),t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||Ie.getNormalMatrix(t),i=this.coplanarPoint(Pe).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}Ne.prototype.isPlane=!0;const Be=new Lt,ze=new Lt,Fe=new Lt,Oe=new Lt,He=new Lt,Ge=new Lt,Ue=new Lt,ke=new Lt,Ve=new Lt,We=new Lt;class je{constructor(t=new Lt,e=new Lt,n=new Lt){this.a=t,this.b=e,this.c=n}static getNormal(t,e,n,i){void 0===i&&(console.warn("THREE.Triangle: .getNormal() target is now required"),i=new Lt),i.subVectors(n,e),Be.subVectors(t,e),i.cross(Be);const r=i.lengthSq();return r>0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){Be.subVectors(i,e),ze.subVectors(n,e),Fe.subVectors(t,e);const s=Be.dot(Be),a=Be.dot(ze),o=Be.dot(Fe),l=ze.dot(ze),c=ze.dot(Fe),h=s*l-a*a;if(void 0===r&&(console.warn("THREE.Triangle: .getBarycoord() target is now required"),r=new Lt),0===h)return r.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,Oe),Oe.x>=0&&Oe.y>=0&&Oe.x+Oe.y<=1}static getUV(t,e,n,i,r,s,a,o){return this.getBarycoord(t,e,n,i,Oe),o.set(0,0),o.addScaledVector(r,Oe.x),o.addScaledVector(s,Oe.y),o.addScaledVector(a,Oe.z),o}static isFrontFacing(t,e,n,i){return Be.subVectors(n,e),ze.subVectors(t,e),Be.cross(ze).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return Be.subVectors(this.c,this.b),ze.subVectors(this.a,this.b),.5*Be.cross(ze).length()}getMidpoint(t){return void 0===t&&(console.warn("THREE.Triangle: .getMidpoint() target is now required"),t=new Lt),t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return je.getNormal(this.a,this.b,this.c,t)}getPlane(t){return void 0===t&&(console.warn("THREE.Triangle: .getPlane() target is now required"),t=new Ne),t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return je.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,r){return je.getUV(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return je.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return je.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){void 0===e&&(console.warn("THREE.Triangle: .closestPointToPoint() target is now required"),e=new Lt);const n=this.a,i=this.b,r=this.c;let s,a;He.subVectors(i,n),Ge.subVectors(r,n),ke.subVectors(t,n);const o=He.dot(ke),l=Ge.dot(ke);if(o<=0&&l<=0)return e.copy(n);Ve.subVectors(t,i);const c=He.dot(Ve),h=Ge.dot(Ve);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),e.copy(n).addScaledVector(He,s);We.subVectors(t,r);const d=He.dot(We),p=Ge.dot(We);if(p>=0&&d<=p)return e.copy(r);const m=d*l-o*p;if(m<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(Ge,a);const f=c*p-d*h;if(f<=0&&h-c>=0&&d-p>=0)return Ue.subVectors(r,i),a=(h-c)/(h-c+(d-p)),e.copy(i).addScaledVector(Ue,a);const g=1/(f+m+u);return s=m*g,a=u*g,e.copy(n).addScaledVector(He,s).addScaledVector(Ge,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let qe=0;function Xe(){Object.defineProperty(this,"id",{value:qe++}),this.uuid=ct(),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=n,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=tt,this.stencilZFail=tt,this.stencilZPass=tt,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.alphaTest=0,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0}Xe.prototype=Object.assign(Object.create(rt.prototype),{constructor:Xe,isMaterial:!0,onBuild:function(){},onBeforeCompile:function(){},customProgramCacheKey:function(){return this.onBeforeCompile.toString()},setValues:function(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn("THREE.Material: '"+e+"' parameter is undefined.");continue}if("shading"===e){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===n;continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn("THREE."+this.type+": '"+e+"' is not a property of this material.")}},toJSON:function(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),this.sheen&&this.sheen.isColor&&(n.sheen=this.sheen.getHex()),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),0!==this.side&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(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&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.morphTargets&&(n.morphTargets=!0),!0===this.morphNormals&&(n.morphNormals=!0),!0===this.skinning&&(n.skinning=!0),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),"{}"!==JSON.stringify(this.userData)&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n},clone:function(){return(new this.constructor).copy(this)},copy:function(t){this.name=t.name,this.fog=t.fog,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),Object.defineProperty(Xe.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}});const Ye={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},Ze={h:0,s:0,l:0},Je={h:0,s:0,l:0};function Qe(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}function Ke(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function $e(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}class tn{constructor(t,e,n){return void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):"number"==typeof t?this.setHex(t):"string"==typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this}setRGB(t,e,n){return this.r=t,this.g=e,this.b=n,this}setHSL(t,e,n){if(t=ut(t,1),e=ht(e,0,1),n=ht(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=Qe(r,i,t+1/3),this.g=Qe(r,i,t),this.b=Qe(r,i,t-1/3)}return this}setStyle(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let n;if(n=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(t)){let t;const i=n[1],r=n[2];switch(i){case"rgb":case"rgba":if(t=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(r))return this.r=Math.min(255,parseInt(t[1],10))/255,this.g=Math.min(255,parseInt(t[2],10))/255,this.b=Math.min(255,parseInt(t[3],10))/255,e(t[4]),this;if(t=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(r))return this.r=Math.min(100,parseInt(t[1],10))/100,this.g=Math.min(100,parseInt(t[2],10))/100,this.b=Math.min(100,parseInt(t[3],10))/100,e(t[4]),this;break;case"hsl":case"hsla":if(t=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(r)){const n=parseFloat(t[1])/360,i=parseInt(t[2],10)/100,r=parseInt(t[3],10)/100;return e(t[4]),this.setHSL(n,i,r)}}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(t)){const t=n[1],e=t.length;if(3===e)return this.r=parseInt(t.charAt(0)+t.charAt(0),16)/255,this.g=parseInt(t.charAt(1)+t.charAt(1),16)/255,this.b=parseInt(t.charAt(2)+t.charAt(2),16)/255,this;if(6===e)return this.r=parseInt(t.charAt(0)+t.charAt(1),16)/255,this.g=parseInt(t.charAt(2)+t.charAt(3),16)/255,this.b=parseInt(t.charAt(4)+t.charAt(5),16)/255,this}return t&&t.length>0?this.setColorName(t):this}setColorName(t){const e=Ye[t.toLowerCase()];return void 0!==e?this.setHex(e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copyGammaToLinear(t,e=2){return this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this}copyLinearToGamma(t,e=2){const n=e>0?1/e:1;return this.r=Math.pow(t.r,n),this.g=Math.pow(t.g,n),this.b=Math.pow(t.b,n),this}convertGammaToLinear(t){return this.copyGammaToLinear(this,t),this}convertLinearToGamma(t){return this.copyLinearToGamma(this,t),this}copySRGBToLinear(t){return this.r=Ke(t.r),this.g=Ke(t.g),this.b=Ke(t.b),this}copyLinearToSRGB(t){return this.r=$e(t.r),this.g=$e(t.g),this.b=$e(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0}getHexString(){return("000000"+this.getHex().toString(16)).slice(-6)}getHSL(t){void 0===t&&(console.warn("THREE.Color: .getHSL() target is now required"),t={h:0,s:0,l:0});const e=this.r,n=this.g,i=this.b,r=Math.max(e,n,i),s=Math.min(e,n,i);let a,o;const l=(s+r)/2;if(s===r)a=0,o=0;else{const t=r-s;switch(o=l<=.5?t/(r+s):t/(2-r-s),r){case e:a=(n-i)/t+(ne&&(e=t[n]);return e}const vn={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function yn(t,e){return new vn[t](e)}let xn=0;const _n=new se,wn=new Ce,bn=new Lt,Mn=new Pt,Sn=new Pt,Tn=new Lt;class En extends rt{constructor(){super(),Object.defineProperty(this,"id",{value:xn++}),this.uuid=ct(),this.name="",this.type="BufferGeometry",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(t){return Array.isArray(t)?this.index=new(gn(t)>65535?dn:hn)(t,1):this.index=t,this}getAttribute(t){return this.attributes[t]}setAttribute(t,e){return this.attributes[t]=e,this}deleteAttribute(t){return delete this.attributes[t],this}hasAttribute(t){return void 0!==this.attributes[t]}addGroup(t,e,n=0){this.groups.push({start:t,count:e,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(t,e){this.drawRange.start=t,this.drawRange.count=e}applyMatrix4(t){const e=this.attributes.position;void 0!==e&&(e.applyMatrix4(t),e.needsUpdate=!0);const n=this.attributes.normal;if(void 0!==n){const e=(new yt).getNormalMatrix(t);n.applyNormalMatrix(e),n.needsUpdate=!0}const i=this.attributes.tangent;return void 0!==i&&(i.transformDirection(t),i.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}rotateX(t){return _n.makeRotationX(t),this.applyMatrix4(_n),this}rotateY(t){return _n.makeRotationY(t),this.applyMatrix4(_n),this}rotateZ(t){return _n.makeRotationZ(t),this.applyMatrix4(_n),this}translate(t,e,n){return _n.makeTranslation(t,e,n),this.applyMatrix4(_n),this}scale(t,e,n){return _n.makeScale(t,e,n),this.applyMatrix4(_n),this}lookAt(t){return wn.lookAt(t),wn.updateMatrix(),this.applyMatrix4(wn.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(bn).negate(),this.translate(bn.x,bn.y,bn.z),this}setFromPoints(t){const e=[];for(let n=0,i=t.length;n0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let r=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],s=[];for(let e=0,i=n.length;e0&&(i[e]=s,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new En).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const r=t.morphAttributes;for(const t in r){const n=[],i=r[t];for(let t=0,r=i.length;t0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e0&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}}raycast(t,e){const n=this.geometry,i=this.material,r=this.matrixWorld;if(void 0===i)return;if(null===n.boundingSphere&&n.computeBoundingSphere(),Rn.copy(n.boundingSphere),Rn.applyMatrix4(r),!1===t.ray.intersectsSphere(Rn))return;if(An.copy(r).invert(),Ln.copy(t.ray).applyMatrix4(An),null!==n.boundingBox&&!1===Ln.intersectsBox(n.boundingBox))return;let s;if(n.isBufferGeometry){const r=n.index,a=n.attributes.position,o=n.morphAttributes.position,l=n.morphTargetsRelative,c=n.attributes.uv,h=n.attributes.uv2,u=n.groups,d=n.drawRange;if(null!==r)if(Array.isArray(i))for(let n=0,p=u.length;nn.far?null:{distance:c,point:Vn.clone(),object:t}}(t,e,n,i,Cn,Pn,Dn,kn);if(p){o&&(Hn.fromBufferAttribute(o,c),Gn.fromBufferAttribute(o,h),Un.fromBufferAttribute(o,u),p.uv=je.getUV(kn,Cn,Pn,Dn,Hn,Gn,Un,new vt)),l&&(Hn.fromBufferAttribute(l,c),Gn.fromBufferAttribute(l,h),Un.fromBufferAttribute(l,u),p.uv2=je.getUV(kn,Cn,Pn,Dn,Hn,Gn,Un,new vt));const t={a:c,b:h,c:u,normal:new Lt,materialIndex:0};je.getNormal(Cn,Pn,Dn,t.normal),p.face=t}return p}Wn.prototype.isMesh=!0;class qn extends En{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,i,r,s,p,m,f,g,v){const y=s/f,x=p/g,_=s/2,w=p/2,b=m/2,M=f+1,S=g+1;let T=0,E=0;const A=new Lt;for(let s=0;s0?1:-1,c.push(A.x,A.y,A.z),h.push(o/f),h.push(1-s/g),T+=1}}for(let t=0;t0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}Jn.prototype.isShaderMaterial=!0;class Qn extends Ce{constructor(){super(),this.type="Camera",this.matrixWorldInverse=new se,this.projectionMatrix=new se,this.projectionMatrixInverse=new se}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){void 0===t&&(console.warn("THREE.Camera: .getWorldDirection() target is now required"),t=new Lt),this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}Qn.prototype.isCamera=!0;class Kn extends Qn{constructor(t=50,e=1,n=.1,i=2e3){super(),this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*lt*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*ot*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*lt*Math.atan(Math.tan(.5*ot*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*ot*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}Kn.prototype.isPerspectiveCamera=!0;const $n=90;class ti extends Ce{constructor(t,e,n){if(super(),this.type="CubeCamera",!0!==n.isWebGLCubeRenderTarget)return void console.error("THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.");this.renderTarget=n;const i=new Kn($n,1,t,e);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new Lt(1,0,0)),this.add(i);const r=new Kn($n,1,t,e);r.layers=this.layers,r.up.set(0,-1,0),r.lookAt(new Lt(-1,0,0)),this.add(r);const s=new Kn($n,1,t,e);s.layers=this.layers,s.up.set(0,0,1),s.lookAt(new Lt(0,1,0)),this.add(s);const a=new Kn($n,1,t,e);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(new Lt(0,-1,0)),this.add(a);const o=new Kn($n,1,t,e);o.layers=this.layers,o.up.set(0,-1,0),o.lookAt(new Lt(0,0,1)),this.add(o);const l=new Kn($n,1,t,e);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new Lt(0,0,-1)),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,s,a,o,l]=this.children,c=t.xr.enabled,h=t.getRenderTarget();t.xr.enabled=!1;const u=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,s),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,o),n.texture.generateMipmaps=u,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(h),t.xr.enabled=c}}class ei extends bt{constructor(t,e,n,i,s,a,o,l,c,h){super(t=void 0!==t?t:[],e=void 0!==e?e:r,n,i,s,a,o=void 0!==o?o:T,l,c,h),this._needsFlipEnvMap=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}ei.prototype.isCubeTexture=!0;class ni extends Tt{constructor(t,e,n){Number.isInteger(e)&&(console.warn("THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )"),e=n),super(t,t,e),e=e||{},this.texture=new ei(void 0,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:g,this.texture._needsFlipEnvMap=!1}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.format=E,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new qn(5,5,5),r=new Jn({name:"CubemapFromEquirect",uniforms:Xn(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});r.uniforms.tEquirect.value=e;const s=new Wn(i,r),a=e.minFilter;e.minFilter===y&&(e.minFilter=g);return new ti(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let r=0;r<6;r++)t.setRenderTarget(this,r),t.clear(e,n,i);t.setRenderTarget(r)}}ni.prototype.isWebGLCubeRenderTarget=!0;class ii extends bt{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u),this.image={data:t||null,width:e||1,height:n||1},this.magFilter=void 0!==l?l:p,this.minFilter=void 0!==c?c:p,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}ii.prototype.isDataTexture=!0;const ri=new Jt,si=new Lt;class ai{constructor(t=new Ne,e=new Ne,n=new Ne,i=new Ne,r=new Ne,s=new Ne){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],r=n[1],s=n[2],a=n[3],o=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],m=n[11],f=n[12],g=n[13],v=n[14],y=n[15];return e[0].setComponents(a-i,h-o,m-u,y-f).normalize(),e[1].setComponents(a+i,h+o,m+u,y+f).normalize(),e[2].setComponents(a+r,h+l,m+d,y+g).normalize(),e[3].setComponents(a-r,h-l,m-d,y-g).normalize(),e[4].setComponents(a-s,h-c,m-p,y-v).normalize(),e[5].setComponents(a+s,h+c,m+p,y+v).normalize(),this}intersectsObject(t){const e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),ri.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(ri)}intersectsSprite(t){return ri.center.set(0,0,0),ri.radius=.7071067811865476,ri.applyMatrix4(t.matrixWorld),this.intersectsSphere(ri)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)0?t.max.x:t.min.x,si.y=i.normal.y>0?t.max.y:t.min.y,si.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(si)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function oi(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function li(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function(e,r){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n#else\n\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t}\n\treturn 1.0;\n#endif\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\n\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\n\treturn Fr * fresnel + F0;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_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_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\n\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * 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}\nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\treturn specularColor * brdf.x + brdf.y;\n}\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\tvec3 FssEss = F * brdf.x + brdf.y;\n\tfloat Ess = brdf.x + brdf.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}\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_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie(float roughness, float NoH) {\n\tfloat invAlpha = 1.0 / roughness;\n\tfloat cos2h = NoH * NoH;\n\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\n}\nfloat V_Neubelt(float NoV, float NoL) {\n\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\n}\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\n\tvec3 N = geometry.normal;\n\tvec3 V = geometry.viewDir;\n\tvec3 H = normalize( V + L );\n\tfloat dotNH = saturate( dot( N, H ) );\n\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\n}\n#endif",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( 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",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",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\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",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 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 max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\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 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}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\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}",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 );\n\t\tvec2 f = fract( uv );\n\t\tuv += 0.5 - f;\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\tvec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x += texelSize;\n\t\tvec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.y += texelSize;\n\t\tvec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x -= texelSize;\n\t\tvec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tvec3 tm = mix( tl, tr, f.x );\n\t\tvec3 bm = mix( bl, br, f.x );\n\t\treturn mix( tm, bm, f.y );\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",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",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\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}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat D = max( maxRange / maxRGB, 1.0 );\n\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value ) {\n\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\n\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract( Le );\n\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\n\treturn vec4( max( vRGB, 0.0 ), 1.0 );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, 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#ifndef ENVMAP_TYPE_CUBE_UV\n\t\tenvColor = envMapTexelToLinear( envColor );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform int maxMipLevel;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\t#ifdef ENVMAP_MODE_REFRACTION\n\t\tuniform float refractionRatio;\n\t#endif\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( -viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( -viewDir, normal, refractionRatio );\n\t\t#endif\n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tfogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float fogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn texture2D( gradientMap, coord ).rgb;\n\t#else\n\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\treflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",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 );\n#ifdef DOUBLE_SIDED\n\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\n\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry );\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\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * 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\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * 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\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * 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 );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif",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 GeometricContext geometry ) {\n\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\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 getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.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 getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tdirectLight.color = pointLight.color;\n\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible = ( directLight.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 getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.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 GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\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\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_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_Diffuse_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)",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\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\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, 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_Diffuse_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)",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.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;\nmaterial.specularRoughness = min( material.specularRoughness, 1.0 );\n#ifdef REFLECTIVITY\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#endif\n#ifdef CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\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 = sheen;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat specularRoughness;\n\tvec3 specularColor;\n#ifdef CLEARCOAT\n\tfloat clearcoat;\n\tfloat clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tvec3 sheenColor;\n#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\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.specularRoughness;\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(\t\t0, 1,\t\t0 ),\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#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = ccDotNL * directLight.color;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tccIrradiance *= PI;\n\t\t#endif\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\n\t\t\tmaterial.specularRoughness,\n\t\t\tdirectLight.direction,\n\t\t\tgeometry,\n\t\t\tmaterial.sheenColor\n\t\t);\n\t#else\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\n\t#endif\n\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_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_Diffuse_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 CLEARCOAT\n\t\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t\tfloat ccDotNL = ccDotNV;\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\tfloat clearcoatInv = 1.0 - clearcoatDHR;\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\n\treflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef 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\tgetPointDirectLightIrradiance( 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\tgetSpotDirectLightIrradiance( 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\tgetDirectionalDirectLightIrradiance( 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 );\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 );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexelToLinear( 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 += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\n\t#ifdef CLEARCOAT\n\t\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\n\t#endif\n#endif",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",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",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",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",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",map_fragment:"#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",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",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifndef USE_MORPHNORMALS\n\t\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\t\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t#endif\n#endif",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;",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",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",clearcoat_normal_fragment_begin:"#ifdef CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",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",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",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}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",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\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t\tf.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\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t\tf.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",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",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",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}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\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",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn 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(\t1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108,\t1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605,\t1.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; }",transmissionmap_fragment:"#ifdef USE_TRANSMISSIONMAP\n\ttotalTransmission *= texture2D( transmissionMap, vUv ).r;\n#endif",transmissionmap_pars_fragment:"#ifdef USE_TRANSMISSIONMAP\n\tuniform sampler2D transmissionMap;\n#endif",uv_pars_fragment:"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif",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",uv_vertex:"#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif",uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\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",background_frag:"uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include \n\t#include \n}",background_vert:"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}",cube_frag:"#include \nuniform float opacity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 vReflect = vWorldDirection;\n\t#include \n\tgl_FragColor = envColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \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}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tvec4 texColor = texture2D( tEquirect, sampleUV );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include \n\t#include \n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \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 \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef USE_ENVMAP\n\t#include \n\t#include \n\t#include \n\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"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 \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \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 \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \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 \n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_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_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \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\tmatcapColor = matcapTexelToLinear( matcapColor );\n\t#else\n\t\tvec4 matcapColor = vec4( 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifndef FLAT_SHADED\n\t\tvNormal = normalize( transformedNormal );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \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 \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \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 \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define REFLECTIVITY\n\t#define CLEARCOAT\n\t#define TRANSMISSION\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef TRANSMISSION\n\tuniform float transmission;\n#endif\n#ifdef REFLECTIVITY\n\tuniform float reflectivity;\n#endif\n#ifdef CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheen;\n#endif\nvarying vec3 vViewPosition;\n#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#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \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#ifdef TRANSMISSION\n\t\tfloat totalTransmission = transmission;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#ifdef TRANSMISSION\n\t\tdiffuseColor.a *= mix( saturate( 1. - totalTransmission + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) ), 1.0, metalness );\n\t#endif\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#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#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#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\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",normal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#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#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n}",normal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#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#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#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\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \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 \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \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 \n\t#include \n\t#include \n}"},ui={common:{diffuse:{value:new tn(15658734)},opacity:{value:1},map:{value:null},uvTransform:{value:new yt},uv2Transform:{value:new yt},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},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 vt(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 tn(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 tn(15658734)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},uvTransform:{value:new yt}},sprite:{diffuse:{value:new tn(15658734)},opacity:{value:1},center:{value:new vt(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},uvTransform:{value:new yt}}},di={basic:{uniforms:Yn([ui.common,ui.specularmap,ui.envmap,ui.aomap,ui.lightmap,ui.fog]),vertexShader:hi.meshbasic_vert,fragmentShader:hi.meshbasic_frag},lambert:{uniforms:Yn([ui.common,ui.specularmap,ui.envmap,ui.aomap,ui.lightmap,ui.emissivemap,ui.fog,ui.lights,{emissive:{value:new tn(0)}}]),vertexShader:hi.meshlambert_vert,fragmentShader:hi.meshlambert_frag},phong:{uniforms:Yn([ui.common,ui.specularmap,ui.envmap,ui.aomap,ui.lightmap,ui.emissivemap,ui.bumpmap,ui.normalmap,ui.displacementmap,ui.fog,ui.lights,{emissive:{value:new tn(0)},specular:{value:new tn(1118481)},shininess:{value:30}}]),vertexShader:hi.meshphong_vert,fragmentShader:hi.meshphong_frag},standard:{uniforms:Yn([ui.common,ui.envmap,ui.aomap,ui.lightmap,ui.emissivemap,ui.bumpmap,ui.normalmap,ui.displacementmap,ui.roughnessmap,ui.metalnessmap,ui.fog,ui.lights,{emissive:{value:new tn(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:hi.meshphysical_vert,fragmentShader:hi.meshphysical_frag},toon:{uniforms:Yn([ui.common,ui.aomap,ui.lightmap,ui.emissivemap,ui.bumpmap,ui.normalmap,ui.displacementmap,ui.gradientmap,ui.fog,ui.lights,{emissive:{value:new tn(0)}}]),vertexShader:hi.meshtoon_vert,fragmentShader:hi.meshtoon_frag},matcap:{uniforms:Yn([ui.common,ui.bumpmap,ui.normalmap,ui.displacementmap,ui.fog,{matcap:{value:null}}]),vertexShader:hi.meshmatcap_vert,fragmentShader:hi.meshmatcap_frag},points:{uniforms:Yn([ui.points,ui.fog]),vertexShader:hi.points_vert,fragmentShader:hi.points_frag},dashed:{uniforms:Yn([ui.common,ui.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:hi.linedashed_vert,fragmentShader:hi.linedashed_frag},depth:{uniforms:Yn([ui.common,ui.displacementmap]),vertexShader:hi.depth_vert,fragmentShader:hi.depth_frag},normal:{uniforms:Yn([ui.common,ui.bumpmap,ui.normalmap,ui.displacementmap,{opacity:{value:1}}]),vertexShader:hi.normal_vert,fragmentShader:hi.normal_frag},sprite:{uniforms:Yn([ui.sprite,ui.fog]),vertexShader:hi.sprite_vert,fragmentShader:hi.sprite_frag},background:{uniforms:{uvTransform:{value:new yt},t2D:{value:null}},vertexShader:hi.background_vert,fragmentShader:hi.background_frag},cube:{uniforms:Yn([ui.envmap,{opacity:{value:1}}]),vertexShader:hi.cube_vert,fragmentShader:hi.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:hi.equirect_vert,fragmentShader:hi.equirect_frag},distanceRGBA:{uniforms:Yn([ui.common,ui.displacementmap,{referencePosition:{value:new Lt},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:hi.distanceRGBA_vert,fragmentShader:hi.distanceRGBA_frag},shadow:{uniforms:Yn([ui.lights,ui.fog,{color:{value:new tn(0)},opacity:{value:1}}]),vertexShader:hi.shadow_vert,fragmentShader:hi.shadow_frag}};function pi(t,e,n,i,r){const s=new tn(0);let a,o,c=0,h=null,u=0,d=null;function p(t,e){n.buffers.color.setClear(t.r,t.g,t.b,e,r)}return{getClearColor:function(){return s},setClearColor:function(t,e=1){s.set(t),c=e,p(s,c)},getClearAlpha:function(){return c},setClearAlpha:function(t){c=t,p(s,c)},render:function(n,r,m,f){let g=!0===r.isScene?r.background:null;g&&g.isTexture&&(g=e.get(g));const v=t.xr,y=v.getSession&&v.getSession();y&&"additive"===y.environmentBlendMode&&(g=null),null===g?p(s,c):g&&g.isColor&&(p(g,1),f=!0),(t.autoClear||f)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),g&&(g.isCubeTexture||g.mapping===l)?(void 0===o&&(o=new Wn(new qn(1,1,1),new Jn({name:"BackgroundCubeMaterial",uniforms:Xn(di.cube.uniforms),vertexShader:di.cube.vertexShader,fragmentShader:di.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),o.geometry.deleteAttribute("normal"),o.geometry.deleteAttribute("uv"),o.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(o.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(o)),o.material.uniforms.envMap.value=g,o.material.uniforms.flipEnvMap.value=g.isCubeTexture&&g._needsFlipEnvMap?-1:1,h===g&&u===g.version&&d===t.toneMapping||(o.material.needsUpdate=!0,h=g,u=g.version,d=t.toneMapping),n.unshift(o,o.geometry,o.material,0,0,null)):g&&g.isTexture&&(void 0===a&&(a=new Wn(new ci(2,2),new Jn({name:"BackgroundMaterial",uniforms:Xn(di.background.uniforms),vertexShader:di.background.vertexShader,fragmentShader:di.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),a.geometry.deleteAttribute("normal"),Object.defineProperty(a.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(a)),a.material.uniforms.t2D.value=g,!0===g.matrixAutoUpdate&&g.updateMatrix(),a.material.uniforms.uvTransform.value.copy(g.matrix),h===g&&u===g.version&&d===t.toneMapping||(a.material.needsUpdate=!0,h=g,u=g.version,d=t.toneMapping),n.unshift(a,a.geometry,a.material,0,0,null))}}}function mi(t,e,n,i){const r=t.getParameter(34921),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),a=i.isWebGL2||null!==s,o={},l=d(null);let c=l;function h(e){return i.isWebGL2?t.bindVertexArray(e):s.bindVertexArrayOES(e)}function u(e){return i.isWebGL2?t.deleteVertexArray(e):s.deleteVertexArrayOES(e)}function d(t){const e=[],n=[],i=[];for(let t=0;t=0){const s=l[e];if(void 0!==s){const e=s.normalized,r=s.itemSize,a=n.get(s);if(void 0===a)continue;const l=a.buffer,c=a.type,h=a.bytesPerElement;if(s.isInterleavedBufferAttribute){const n=s.data,a=n.stride,u=s.offset;n&&n.isInstancedInterleavedBuffer?(f(i,n.meshPerAttribute),void 0===o._maxInstanceCount&&(o._maxInstanceCount=n.meshPerAttribute*n.count)):m(i),t.bindBuffer(34962,l),v(i,r,c,e,a*h,u*h)}else s.isInstancedBufferAttribute?(f(i,s.meshPerAttribute),void 0===o._maxInstanceCount&&(o._maxInstanceCount=s.meshPerAttribute*s.count)):m(i),t.bindBuffer(34962,l),v(i,r,c,e,0,0)}else if("instanceMatrix"===e){const e=n.get(r.instanceMatrix);if(void 0===e)continue;const s=e.buffer,a=e.type;f(i+0,1),f(i+1,1),f(i+2,1),f(i+3,1),t.bindBuffer(34962,s),t.vertexAttribPointer(i+0,4,a,!1,64,0),t.vertexAttribPointer(i+1,4,a,!1,64,16),t.vertexAttribPointer(i+2,4,a,!1,64,32),t.vertexAttribPointer(i+3,4,a,!1,64,48)}else if("instanceColor"===e){const e=n.get(r.instanceColor);if(void 0===e)continue;const s=e.buffer,a=e.type;f(i,1),t.bindBuffer(34962,s),t.vertexAttribPointer(i,3,a,!1,12,0)}else if(void 0!==h){const n=h[e];if(void 0!==n)switch(n.length){case 2:t.vertexAttrib2fv(i,n);break;case 3:t.vertexAttrib3fv(i,n);break;case 4:t.vertexAttrib4fv(i,n);break;default:t.vertexAttrib1fv(i,n)}}}}g()}(r,l,u,y),null!==x&&t.bindBuffer(34963,n.get(x).buffer))},reset:y,resetDefaultState:x,dispose:function(){y();for(const t in o){const e=o[t];for(const t in e){const n=e[t];for(const t in n)u(n[t].object),delete n[t];delete e[t]}delete o[t]}},releaseStatesOfGeometry:function(t){if(void 0===o[t.id])return;const e=o[t.id];for(const t in e){const n=e[t];for(const t in n)u(n[t].object),delete n[t];delete e[t]}delete o[t.id]},releaseStatesOfProgram:function(t){for(const e in o){const n=o[e];if(void 0===n[t.id])continue;const i=n[t.id];for(const t in i)u(i[t].object),delete i[t];delete n[t.id]}},initAttributes:p,enableAttribute:m,disableUnusedAttributes:g}}function fi(t,e,n,i){const r=i.isWebGL2;let s;this.setMode=function(t){s=t},this.render=function(e,i){t.drawArrays(s,e,i),n.update(i,s,1)},this.renderInstances=function(i,a,o){if(0===o)return;let l,c;if(r)l=t,c="drawArraysInstanced";else if(l=e.get("ANGLE_instanced_arrays"),c="drawArraysInstancedANGLE",null===l)return void console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");l[c](s,i,a,o),n.update(a,s,o)}}function gi(t,e,n){let i;function r(e){if("highp"===e){if(t.getShaderPrecisionFormat(35633,36338).precision>0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const s="undefined"!=typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext||"undefined"!=typeof WebGL2ComputeRenderingContext&&t instanceof WebGL2ComputeRenderingContext;let a=void 0!==n.precision?n.precision:"highp";const o=r(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const l=!0===n.logarithmicDepthBuffer,c=t.getParameter(34930),h=t.getParameter(35660),u=t.getParameter(3379),d=t.getParameter(34076),p=t.getParameter(34921),m=t.getParameter(36347),f=t.getParameter(36348),g=t.getParameter(36349),v=h>0,y=s||e.has("OES_texture_float");return{isWebGL2:s,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===e.has("EXT_texture_filter_anisotropic")){const n=e.get("EXT_texture_filter_anisotropic");i=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:r,precision:a,logarithmicDepthBuffer:l,maxTextures:c,maxVertexTextures:h,maxTextureSize:u,maxCubemapSize:d,maxAttributes:p,maxVertexUniforms:m,maxVaryings:f,maxFragmentUniforms:g,vertexTextures:v,floatFragmentTextures:y,floatVertexTextures:v&&y,maxSamples:s?t.getParameter(36183):0}}function vi(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new Ne,o=new yt,l={value:null,needsUpdate:!1};function c(){l.value!==n&&(l.value=n,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(t,n,i,r){const s=null!==t?t.length:0;let c=null;if(0!==s){if(c=l.value,!0!==r||null===c){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===c||c.length0){const a=t.getRenderTarget(),o=new ni(s.height/2);return o.fromEquirectangularTexture(t,r),e.set(r,o),t.setRenderTarget(a),r.addEventListener("dispose",i),n(o.texture,r.mapping)}return null}}}return r},dispose:function(){e=new WeakMap}}}function xi(t){const e={};function n(n){if(void 0!==e[n])return e[n];let i;switch(n){case"WEBGL_depth_texture":i=t.getExtension("WEBGL_depth_texture")||t.getExtension("MOZ_WEBGL_depth_texture")||t.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":i=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":i=t.getExtension("WEBGL_compressed_texture_s3tc")||t.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":i=t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:i=t.getExtension(n)}return e[n]=i,i}return{has:function(t){return null!==n(t)},init:function(t){t.isWebGL2?n("EXT_color_buffer_float"):(n("WEBGL_depth_texture"),n("OES_texture_float"),n("OES_texture_half_float"),n("OES_texture_half_float_linear"),n("OES_standard_derivatives"),n("OES_element_index_uint"),n("OES_vertex_array_object"),n("ANGLE_instanced_arrays")),n("OES_texture_float_linear"),n("EXT_color_buffer_half_float")},get:function(t){const e=n(t);return null===e&&console.warn("THREE.WebGLRenderer: "+t+" extension not supported."),e}}}function _i(t,e,n,i){const r={},s=new WeakMap;function a(t){const o=t.target;null!==o.index&&e.remove(o.index);for(const t in o.attributes)e.remove(o.attributes[t]);o.removeEventListener("dispose",a),delete r[o.id];const l=s.get(o);l&&(e.remove(l),s.delete(o)),i.releaseStatesOfGeometry(o),!0===o.isInstancedBufferGeometry&&delete o._maxInstanceCount,n.memory.geometries--}function o(t){const n=[],i=t.index,r=t.attributes.position;let a=0;if(null!==i){const t=i.array;a=i.version;for(let e=0,i=t.length;e65535?dn:hn)(n,1);o.version=a;const l=s.get(t);l&&e.remove(l),s.set(t,o)}return{get:function(t,e){return!0===r[e.id]||(e.addEventListener("dispose",a),r[e.id]=!0,n.memory.geometries++),e},update:function(t){const n=t.attributes;for(const t in n)e.update(n[t],34962);const i=t.morphAttributes;for(const t in i){const n=i[t];for(let t=0,i=n.length;t0)return t;const r=e*n;let s=Ii[r];if(void 0===s&&(s=new Float32Array(r),Ii[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function Hi(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n/gm;function kr(t){return t.replace(Ur,Vr)}function Vr(t,e){const n=hi[e];if(void 0===n)throw new Error("Can not resolve #include <"+e+">");return kr(n)}const Wr=/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,jr=/#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 qr(t){return t.replace(jr,Yr).replace(Wr,Xr)}function Xr(t,e,n,i){return console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead."),Yr(t,e,n,i)}function Yr(t,e,n,i){let r="";for(let t=parseInt(e);t0?t.gammaFactor:1,v=n.isWebGL2?"":function(t){return[t.extensionDerivatives||t.envMapCubeUV||t.bumpMap||t.tangentSpaceNormalMap||t.clearcoatNormalMap||t.flatShading||"physical"===t.shaderID?"#extension GL_OES_standard_derivatives : enable":"",(t.extensionFragDepth||t.logarithmicDepthBuffer)&&t.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",t.extensionDrawBuffers&&t.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(t.extensionShaderTextureLOD||t.envMap)&&t.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(Or).join("\n")}(n),y=function(t){const e=[];for(const n in t){const i=t[n];!1!==i&&e.push("#define "+n+" "+i)}return e.join("\n")}(o),x=a.createProgram();let _,w,b=n.glslVersion?"#version "+n.glslVersion+"\n":"";n.isRawShaderMaterial?(_=[y].filter(Or).join("\n"),_.length>0&&(_+="\n"),w=[v,y].filter(Or).join("\n"),w.length>0&&(w+="\n")):(_=[Zr(n),"#define SHADER_NAME "+n.shaderName,y,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+g,"#define MAX_BONES "+n.maxBones,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+m:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.displacementMap&&n.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.useVertexTexture?"#define BONE_TEXTURE":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+d:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.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","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#ifdef USE_MORPHTARGETS","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Or).join("\n"),w=[v,Zr(n),"#define SHADER_NAME "+n.shaderName,y,n.alphaTest?"#define ALPHATEST "+n.alphaTest+(n.alphaTest%1?"":".0"):"","#define GAMMA_FACTOR "+g,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+p:"",n.envMap?"#define "+m:"",n.envMap?"#define "+f:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.sheen?"#define USE_SHEEN":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+d:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"",(n.extensionShaderTextureLOD||n.envMap)&&n.rendererExtensionShaderTextureLod?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",0!==n.toneMapping?"#define TONE_MAPPING":"",0!==n.toneMapping?hi.tonemapping_pars_fragment:"",0!==n.toneMapping?Fr("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",hi.encodings_pars_fragment,n.map?Br("mapTexelToLinear",n.mapEncoding):"",n.matcap?Br("matcapTexelToLinear",n.matcapEncoding):"",n.envMap?Br("envMapTexelToLinear",n.envMapEncoding):"",n.emissiveMap?Br("emissiveMapTexelToLinear",n.emissiveMapEncoding):"",n.lightMap?Br("lightMapTexelToLinear",n.lightMapEncoding):"",zr("linearToOutputTexel",n.outputEncoding),n.depthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(Or).join("\n")),h=kr(h),h=Hr(h,n),h=Gr(h,n),u=kr(u),u=Hr(u,n),u=Gr(u,n),h=qr(h),u=qr(u),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(b="#version 300 es\n",_=["#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+_,w=["#define varying in",n.glslVersion===it?"":"out highp vec4 pc_fragColor;",n.glslVersion===it?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+w);const M=b+w+u,S=Pr(a,35633,b+_+h),T=Pr(a,35632,M);if(a.attachShader(x,S),a.attachShader(x,T),void 0!==n.index0AttributeName?a.bindAttribLocation(x,0,n.index0AttributeName):!0===n.morphTargets&&a.bindAttribLocation(x,0,"position"),a.linkProgram(x),t.debug.checkShaderErrors){const t=a.getProgramInfoLog(x).trim(),e=a.getShaderInfoLog(S).trim(),n=a.getShaderInfoLog(T).trim();let i=!0,r=!0;if(!1===a.getProgramParameter(x,35714)){i=!1;const e=Nr(a,S,"vertex"),n=Nr(a,T,"fragment");console.error("THREE.WebGLProgram: shader error: ",a.getError(),"35715",a.getProgramParameter(x,35715),"gl.getProgramInfoLog",t,e,n)}else""!==t?console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",t):""!==e&&""!==n||(r=!1);r&&(this.diagnostics={runnable:i,programLog:t,vertexShader:{log:e,prefix:_},fragmentShader:{log:n,prefix:w}})}let E,A;return a.deleteShader(S),a.deleteShader(T),this.getUniforms=function(){return void 0===E&&(E=new Cr(a,x)),E},this.getAttributes=function(){return void 0===A&&(A=function(t,e){const n={},i=t.getProgramParameter(e,35721);for(let r=0;r0,maxBones:S,useVertexTexture:u,morphTargets:r.morphTargets,morphNormals:r.morphNormals,numDirLights:a.directional.length,numPointLights:a.point.length,numSpotLights:a.spot.length,numRectAreaLights:a.rectArea.length,numHemiLights:a.hemi.length,numDirLightShadows:a.directionalShadowMap.length,numPointLightShadows:a.pointShadowMap.length,numSpotLightShadows:a.spotShadowMap.length,numClippingPlanes:s.numPlanes,numClipIntersection:s.numIntersection,dithering:r.dithering,shadowMapEnabled:t.shadowMap.enabled&&g.length>0,shadowMapType:t.shadowMap.type,toneMapping:r.toneMapped?t.toneMapping:0,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:r.premultipliedAlpha,alphaTest:r.alphaTest,doubleSided:2===r.side,flipSided:1===r.side,depthPacking:void 0!==r.depthPacking&&r.depthPacking,index0AttributeName:r.index0AttributeName,extensionDerivatives:r.extensions&&r.extensions.derivatives,extensionFragDepth:r.extensions&&r.extensions.fragDepth,extensionDrawBuffers:r.extensions&&r.extensions.drawBuffers,extensionShaderTextureLOD:r.extensions&&r.extensions.shaderTextureLOD,rendererExtensionFragDepth:o||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:o||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:o||n.has("EXT_shader_texture_lod"),customProgramCacheKey:r.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.fragmentShader),n.push(e.vertexShader)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);if(!1===e.isRawShaderMaterial){for(let t=0;t1&&i.sort(t||$r),r.length>1&&r.sort(e||ts)}}}function ns(t){let e=new WeakMap;return{get:function(n,i){let r;return!1===e.has(n)?(r=new es(t),e.set(n,[r])):i>=e.get(n).length?(r=new es(t),e.get(n).push(r)):r=e.get(n)[i],r},dispose:function(){e=new WeakMap}}}function is(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new Lt,color:new tn};break;case"SpotLight":n={position:new Lt,direction:new Lt,color:new tn,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new Lt,color:new tn,distance:0,decay:0};break;case"HemisphereLight":n={direction:new Lt,skyColor:new tn,groundColor:new tn};break;case"RectAreaLight":n={color:new tn,position:new Lt,halfWidth:new Lt,halfHeight:new Lt}}return t[e.id]=n,n}}}let rs=0;function ss(t,e){return(e.castShadow?1:0)-(t.castShadow?1:0)}function as(t,e){const n=new is,i=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new vt};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new vt,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),r={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 t=0;t<9;t++)r.probe.push(new Lt);const s=new Lt,a=new se,o=new se;return{setup:function(s){let a=0,o=0,l=0;for(let t=0;t<9;t++)r.probe[t].set(0,0,0);let c=0,h=0,u=0,d=0,p=0,m=0,f=0,g=0;s.sort(ss);for(let t=0,e=s.length;t0&&(e.isWebGL2||!0===t.has("OES_texture_float_linear")?(r.rectAreaLTC1=ui.LTC_FLOAT_1,r.rectAreaLTC2=ui.LTC_FLOAT_2):!0===t.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=ui.LTC_HALF_1,r.rectAreaLTC2=ui.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=a,r.ambient[1]=o,r.ambient[2]=l;const v=r.hash;v.directionalLength===c&&v.pointLength===h&&v.spotLength===u&&v.rectAreaLength===d&&v.hemiLength===p&&v.numDirectionalShadows===m&&v.numPointShadows===f&&v.numSpotShadows===g||(r.directional.length=c,r.spot.length=u,r.rectArea.length=d,r.point.length=h,r.hemi.length=p,r.directionalShadow.length=m,r.directionalShadowMap.length=m,r.pointShadow.length=f,r.pointShadowMap.length=f,r.spotShadow.length=g,r.spotShadowMap.length=g,r.directionalShadowMatrix.length=m,r.pointShadowMatrix.length=f,r.spotShadowMatrix.length=g,v.directionalLength=c,v.pointLength=h,v.spotLength=u,v.rectAreaLength=d,v.hemiLength=p,v.numDirectionalShadows=m,v.numPointShadows=f,v.numSpotShadows=g,r.version=rs++)},setupView:function(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e=n.get(i).length?(s=new os(t,e),n.get(i).push(s)):s=n.get(i)[r],s},dispose:function(){n=new WeakMap}}}class cs extends Xe{constructor(t){super(),this.type="MeshDepthMaterial",this.depthPacking=3200,this.skinning=!1,this.morphTargets=!1,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(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}cs.prototype.isMeshDepthMaterial=!0;class hs extends Xe{constructor(t){super(),this.type="MeshDistanceMaterial",this.referencePosition=new Lt,this.nearDistance=1,this.farDistance=1e3,this.skinning=!1,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}hs.prototype.isMeshDistanceMaterial=!0;function us(t,e,n){let i=new ai;const r=new vt,s=new vt,a=new St,o=[],l=[],c={},h=n.maxTextureSize,u={0:1,1:0,2:2},d=new Jn({defines:{SAMPLE_RATE:2/8,HALF_SAMPLE_RATE:1/8},uniforms:{shadow_pass:{value:null},resolution:{value:new vt},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\n\tfor ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 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, i ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean * HALF_SAMPLE_RATE;\n\tsquared_mean = squared_mean * HALF_SAMPLE_RATE;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),m=d.clone();m.defines.HORIZONTAL_PASS=1;const f=new En;f.setAttribute("position",new sn(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const v=new Wn(f,d),y=this;function x(n,i){const r=e.update(v);d.uniforms.shadow_pass.value=n.map.texture,d.uniforms.resolution.value=n.mapSize,d.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,r,d,v,null),m.uniforms.shadow_pass.value=n.mapPass.texture,m.uniforms.resolution.value=n.mapSize,m.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,r,m,v,null)}function _(t,e,n){const i=t<<0|e<<1|n<<2;let r=o[i];return void 0===r&&(r=new cs({depthPacking:3201,morphTargets:t,skinning:e}),o[i]=r),r}function w(t,e,n){const i=t<<0|e<<1|n<<2;let r=l[i];return void 0===r&&(r=new hs({morphTargets:t,skinning:e}),l[i]=r),r}function b(e,n,i,r,s,a,o){let l=null,h=_,d=e.customDepthMaterial;if(!0===r.isPointLight&&(h=w,d=e.customDistanceMaterial),void 0===d){let t=!1;!0===i.morphTargets&&(t=n.morphAttributes&&n.morphAttributes.position&&n.morphAttributes.position.length>0);let r=!1;!0===e.isSkinnedMesh&&(!0===i.skinning?r=!0:console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",e));l=h(t,r,!0===e.isInstancedMesh)}else l=d;if(t.localClippingEnabled&&!0===i.clipShadows&&0!==i.clippingPlanes.length){const t=l.uuid,e=i.uuid;let n=c[t];void 0===n&&(n={},c[t]=n);let r=n[e];void 0===r&&(r=l.clone(),n[e]=r),l=r}return l.visible=i.visible,l.wireframe=i.wireframe,l.side=3===o?null!==i.shadowSide?i.shadowSide:i.side:null!==i.shadowSide?i.shadowSide:u[i.side],l.clipShadows=i.clipShadows,l.clippingPlanes=i.clippingPlanes,l.clipIntersection=i.clipIntersection,l.wireframeLinewidth=i.wireframeLinewidth,l.linewidth=i.linewidth,!0===r.isPointLight&&!0===l.isMeshDistanceMaterial&&(l.referencePosition.setFromMatrixPosition(r.matrixWorld),l.nearDistance=s,l.farDistance=a),l}function M(n,r,s,a,o){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&3===o)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),r=n.material;if(Array.isArray(r)){const e=i.groups;for(let l=0,c=e.length;lh||r.y>h)&&(r.x>h&&(s.x=Math.floor(h/m.x),r.x=s.x*m.x,u.mapSize.x=s.x),r.y>h&&(s.y=Math.floor(h/m.y),r.y=s.y*m.y,u.mapSize.y=s.y)),null===u.map&&!u.isPointLightShadow&&3===this.type){const t={minFilter:g,magFilter:g,format:E};u.map=new Tt(r.x,r.y,t),u.map.texture.name=c.name+".shadowMap",u.mapPass=new Tt(r.x,r.y,t),u.camera.updateProjectionMatrix()}if(null===u.map){const t={minFilter:p,magFilter:p,format:E};u.map=new Tt(r.x,r.y,t),u.map.texture.name=c.name+".shadowMap",u.camera.updateProjectionMatrix()}t.setRenderTarget(u.map),t.clear();const f=u.getViewportCount();for(let t=0;t=1):-1!==R.indexOf("OpenGL ES")&&(L=parseFloat(/^OpenGL ES (\d)/.exec(R)[1]),A=L>=2);let C=null,P={};const D=new St(0,0,t.canvas.width,t.canvas.height),I=new St(0,0,t.canvas.width,t.canvas.height);function N(e,n,i){const r=new Uint8Array(4),s=t.createTexture();t.bindTexture(e,s),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(let e=0;ei||t.height>i)&&(r=i/Math.max(t.width,t.height)),r<1||!0===e){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?ft:Math.floor,s=i(r*t.width),a=i(r*t.height);void 0===P&&(P=I(s,a));const o=n?I(s,a):P;o.width=s,o.height=a;return o.getContext("2d").drawImage(t,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+t.width+"x"+t.height+") to ("+s+"x"+a+")."),o}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+t.width+"x"+t.height+")."),t}return t}function B(t){return pt(t.width)&&pt(t.height)}function z(t,e){return t.generateMipmaps&&e&&t.minFilter!==p&&t.minFilter!==g}function F(e,n,r,s){t.generateMipmap(e);i.get(n).__maxMipLevel=Math.log2(Math.max(r,s))}function O(n,i,r){if(!1===o)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let s=i;return 6403===i&&(5126===r&&(s=33326),5131===r&&(s=33325),5121===r&&(s=33321)),6407===i&&(5126===r&&(s=34837),5131===r&&(s=34843),5121===r&&(s=32849)),6408===i&&(5126===r&&(s=34836),5131===r&&(s=34842),5121===r&&(s=32856)),33325!==s&&33326!==s&&34842!==s&&34836!==s||e.get("EXT_color_buffer_float"),s}function H(t){return t===p||t===m||t===f?9728:9729}function G(e){const n=e.target;n.removeEventListener("dispose",G),function(e){const n=i.get(e);if(void 0===n.__webglInit)return;t.deleteTexture(n.__webglTexture),i.remove(e)}(n),n.isVideoTexture&&C.delete(n),a.memory.textures--}function U(e){const n=e.target;n.removeEventListener("dispose",U),function(e){const n=e.texture,r=i.get(e),s=i.get(n);if(!e)return;void 0!==s.__webglTexture&&t.deleteTexture(s.__webglTexture);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(r.__webglFramebuffer[e]),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer[e]);else t.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer),r.__webglMultisampledFramebuffer&&t.deleteFramebuffer(r.__webglMultisampledFramebuffer),r.__webglColorRenderbuffer&&t.deleteRenderbuffer(r.__webglColorRenderbuffer),r.__webglDepthRenderbuffer&&t.deleteRenderbuffer(r.__webglDepthRenderbuffer);i.remove(n),i.remove(e)}(n),a.memory.textures--}let k=0;function V(t,e){const r=i.get(t);if(t.isVideoTexture&&function(t){const e=a.render.frame;C.get(t)!==e&&(C.set(t,e),t.update())}(t),t.version>0&&r.__version!==t.version){const n=t.image;if(void 0===n)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else{if(!1!==n.complete)return void Z(r,t,e);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.activeTexture(33984+e),n.bindTexture(3553,r.__webglTexture)}function W(e,r){const a=i.get(e);e.version>0&&a.__version!==e.version?function(e,i,r){if(6!==i.image.length)return;Y(e,i),n.activeTexture(33984+r),n.bindTexture(34067,e.__webglTexture),t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment),t.pixelStorei(37443,0);const a=i&&(i.isCompressedTexture||i.image[0].isCompressedTexture),l=i.image[0]&&i.image[0].isDataTexture,h=[];for(let t=0;t<6;t++)h[t]=a||l?l?i.image[t].image:i.image[t]:N(i.image[t],!1,!0,c);const u=h[0],d=B(u)||o,p=s.convert(i.format),m=s.convert(i.type),f=O(i.internalFormat,p,m);let g;if(X(34067,i,d),a){for(let t=0;t<6;t++){g=h[t].mipmaps;for(let e=0;e1||i.get(s).__currentAnisotropy)&&(t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy)}}function Y(e,n){void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",G),e.__webglTexture=t.createTexture(),a.memory.textures++)}function Z(e,i,r){let a=3553;i.isDataTexture2DArray&&(a=35866),i.isDataTexture3D&&(a=32879),Y(e,i),n.activeTexture(33984+r),n.bindTexture(a,e.__webglTexture),t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment),t.pixelStorei(37443,0);const l=function(t){return!o&&(t.wrapS!==u||t.wrapT!==u||t.minFilter!==p&&t.minFilter!==g)}(i)&&!1===B(i.image),c=N(i.image,l,!1,x),h=B(c)||o,d=s.convert(i.format);let m,f=s.convert(i.type),v=O(i.internalFormat,d,f);X(a,i,h);const y=i.mipmaps;if(i.isDepthTexture)v=6402,o?v=i.type===b?36012:i.type===w?33190:i.type===S?35056:33189:i.type===b&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),i.format===A&&6402===v&&i.type!==_&&i.type!==w&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),i.type=_,f=s.convert(i.type)),i.format===L&&6402===v&&(v=34041,i.type!==S&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),i.type=S,f=s.convert(i.type))),n.texImage2D(3553,0,v,c.width,c.height,0,d,f,null);else if(i.isDataTexture)if(y.length>0&&h){for(let t=0,e=y.length;t0&&h){for(let t=0,e=y.length;t=l&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+l),k+=1,t},this.resetTextureUnits=function(){k=0},this.setTexture2D=V,this.setTexture2DArray=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?Z(r,t,e):(n.activeTexture(33984+e),n.bindTexture(35866,r.__webglTexture))},this.setTexture3D=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?Z(r,t,e):(n.activeTexture(33984+e),n.bindTexture(32879,r.__webglTexture))},this.setTextureCube=W,this.setupRenderTarget=function(e){const r=e.texture,l=i.get(e),c=i.get(r);e.addEventListener("dispose",U),c.__webglTexture=t.createTexture(),c.__version=r.version,a.memory.textures++;const h=!0===e.isWebGLCubeRenderTarget,u=!0===e.isWebGLMultisampleRenderTarget,d=r.isDataTexture3D||r.isDataTexture2DArray,p=B(e)||o;if(!o||r.format!==T||r.type!==b&&r.type!==M||(r.format=E,console.warn("THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.")),h){l.__webglFramebuffer=[];for(let e=0;e<6;e++)l.__webglFramebuffer[e]=t.createFramebuffer()}else if(l.__webglFramebuffer=t.createFramebuffer(),u)if(o){l.__webglMultisampledFramebuffer=t.createFramebuffer(),l.__webglColorRenderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,l.__webglColorRenderbuffer);const i=s.convert(r.format),a=s.convert(r.type),o=O(r.internalFormat,i,a),c=$(e);t.renderbufferStorageMultisample(36161,c,o,e.width,e.height),n.bindFramebuffer(36160,l.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(36160,36064,36161,l.__webglColorRenderbuffer),t.bindRenderbuffer(36161,null),e.depthBuffer&&(l.__webglDepthRenderbuffer=t.createRenderbuffer(),Q(l.__webglDepthRenderbuffer,e,!0)),n.bindFramebuffer(36160,null)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.");if(h){n.bindTexture(34067,c.__webglTexture),X(34067,r,p);for(let t=0;t<6;t++)J(l.__webglFramebuffer[t],e,36064,34069+t);z(r,p)&&F(34067,r,e.width,e.height),n.bindTexture(34067,null)}else{let t=3553;if(d)if(o){t=r.isDataTexture3D?32879:35866}else console.warn("THREE.DataTexture3D and THREE.DataTexture2DArray only supported with WebGL2.");n.bindTexture(t,c.__webglTexture),X(t,r,p),J(l.__webglFramebuffer,e,36064,t),z(r,p)&&F(3553,r,e.width,e.height),n.bindTexture(3553,null)}e.depthBuffer&&K(e)},this.updateRenderTargetMipmap=function(t){const e=t.texture;if(z(e,B(t)||o)){const r=t.isWebGLCubeRenderTarget?34067:3553,s=i.get(e).__webglTexture;n.bindTexture(r,s),F(r,e,t.width,t.height),n.bindTexture(r,null)}},this.updateMultisampleRenderTarget=function(e){if(e.isWebGLMultisampleRenderTarget)if(o){const r=e.width,s=e.height;let a=16384;e.depthBuffer&&(a|=256),e.stencilBuffer&&(a|=1024);const o=i.get(e);n.bindFramebuffer(36008,o.__webglMultisampledFramebuffer),n.bindFramebuffer(36009,o.__webglFramebuffer),t.blitFramebuffer(0,0,r,s,0,0,r,s,a,9728),n.bindFramebuffer(36008,null),n.bindFramebuffer(36009,o.__webglMultisampledFramebuffer)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.")},this.safeSetTexture2D=function(t,e){t&&t.isWebGLRenderTarget&&(!1===tt&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),tt=!0),t=t.texture),V(t,e)},this.safeSetTextureCube=function(t,e){t&&t.isWebGLCubeRenderTarget&&(!1===et&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),et=!0),t=t.texture),W(t,e)}}function ms(t,e,n){const i=n.isWebGL2;return{convert:function(t){let n;if(t===x)return 5121;if(1017===t)return 32819;if(1018===t)return 32820;if(1019===t)return 33635;if(1010===t)return 5120;if(1011===t)return 5122;if(t===_)return 5123;if(1013===t)return 5124;if(t===w)return 5125;if(t===b)return 5126;if(t===M)return i?5131:(n=e.get("OES_texture_half_float"),null!==n?n.HALF_FLOAT_OES:null);if(1021===t)return 6406;if(t===T)return 6407;if(t===E)return 6408;if(1024===t)return 6409;if(1025===t)return 6410;if(t===A)return 6402;if(t===L)return 34041;if(1028===t)return 6403;if(1029===t)return 36244;if(1030===t)return 33319;if(1031===t)return 33320;if(1032===t)return 36248;if(1033===t)return 36249;if(t===R||t===C||t===P||t===D){if(n=e.get("WEBGL_compressed_texture_s3tc"),null===n)return null;if(t===R)return n.COMPRESSED_RGB_S3TC_DXT1_EXT;if(t===C)return n.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(t===P)return n.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(t===D)return n.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(t===I||t===N||t===B||t===z){if(n=e.get("WEBGL_compressed_texture_pvrtc"),null===n)return null;if(t===I)return n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(t===N)return n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(t===B)return n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(t===z)return n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===t)return n=e.get("WEBGL_compressed_texture_etc1"),null!==n?n.COMPRESSED_RGB_ETC1_WEBGL:null;if((t===F||t===O)&&(n=e.get("WEBGL_compressed_texture_etc"),null!==n)){if(t===F)return n.COMPRESSED_RGB8_ETC2;if(t===O)return n.COMPRESSED_RGBA8_ETC2_EAC}return 37808===t||37809===t||37810===t||37811===t||37812===t||37813===t||37814===t||37815===t||37816===t||37817===t||37818===t||37819===t||37820===t||37821===t||37840===t||37841===t||37842===t||37843===t||37844===t||37845===t||37846===t||37847===t||37848===t||37849===t||37850===t||37851===t||37852===t||37853===t?(n=e.get("WEBGL_compressed_texture_astc"),null!==n?t:null):36492===t?(n=e.get("EXT_texture_compression_bptc"),null!==n?t:null):t===S?i?34042:(n=e.get("WEBGL_depth_texture"),null!==n?n.UNSIGNED_INT_24_8_WEBGL:null):void 0}}}class fs extends Kn{constructor(t=[]){super(),this.cameras=t}}fs.prototype.isArrayCamera=!0;class gs extends Ce{constructor(){super(),this.type="Group"}}gs.prototype.isGroup=!0;const vs={type:"move"};class ys{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return null===this._hand&&(this._hand=new gs,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return null===this._targetRay&&(this._targetRay=new gs,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Lt,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Lt),this._targetRay}getGripSpace(){return null===this._grip&&(this._grip=new gs,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Lt,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Lt),this._grip}dispatchEvent(t){return null!==this._targetRay&&this._targetRay.dispatchEvent(t),null!==this._grip&&this._grip.dispatchEvent(t),null!==this._hand&&this._hand.dispatchEvent(t),this}disconnect(t){return this.dispatchEvent({type:"disconnected",data:t}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this}update(t,e,n){let i=null,r=null,s=null;const a=this._targetRay,o=this._grip,l=this._hand;if(t&&"visible-blurred"!==e.session.visibilityState)if(null!==a&&(i=e.getPose(t.targetRaySpace,n),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(vs))),l&&t.hand){s=!0;for(const i of t.hand.values()){const t=e.getJointPose(i,n);if(void 0===l.joints[i.jointName]){const t=new gs;t.matrixAutoUpdate=!1,t.visible=!1,l.joints[i.jointName]=t,l.add(t)}const r=l.joints[i.jointName];null!==t&&(r.matrix.fromArray(t.transform.matrix),r.matrix.decompose(r.position,r.rotation,r.scale),r.jointRadius=t.radius),r.visible=null!==t}const i=l.joints["index-finger-tip"],r=l.joints["thumb-tip"],a=i.position.distanceTo(r.position),o=.02,c=.005;l.inputState.pinching&&a>o+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==s),this}}class xs extends rt{constructor(t,e){super();const n=this,i=t.state;let r=null,s=1,a=null,o="local-floor",l=null;const c=[],h=new Map,u=new Kn;u.layers.enable(1),u.viewport=new St;const d=new Kn;d.layers.enable(2),d.viewport=new St;const p=[u,d],m=new fs;m.layers.enable(1),m.layers.enable(2);let f=null,g=null;function v(t){const e=h.get(t.inputSource);e&&e.dispatchEvent({type:t.type,data:t.inputSource})}function y(){h.forEach((function(t,e){t.disconnect(e)})),h.clear(),f=null,g=null,i.bindXRFramebuffer(null),t.setRenderTarget(t.getRenderTarget()),S.stop(),n.isPresenting=!1,n.dispatchEvent({type:"sessionend"})}function x(t){const e=r.inputSources;for(let t=0;t0&&Rt(s,t,e),a.length>0&&Rt(a,t,e),null!==_&&(J.updateRenderTargetMipmap(_),J.updateMultisampleRenderTarget(_)),!0===t.isScene&&t.onAfterRender(f,t,e),q.buffers.depth.setTest(!0),q.buffers.depth.setMask(!0),q.buffers.color.setMask(!0),q.setPolygonOffset(!1),dt.resetDefaultState(),w=-1,S=null,m.pop(),d=m.length>0?m[m.length-1]:null,p.pop(),u=p.length>0?p[p.length-1]:null},this.getActiveCubeFace=function(){return v},this.getActiveMipmapLevel=function(){return y},this.getRenderTarget=function(){return _},this.setRenderTarget=function(t,e=0,n=0){_=t,v=e,y=n,t&&void 0===Z.get(t).__webglFramebuffer&&J.setupRenderTarget(t);let i=null,r=!1,s=!1;if(t){const n=t.texture;(n.isDataTexture3D||n.isDataTexture2DArray)&&(s=!0);const a=Z.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(i=a[e],r=!0):i=t.isWebGLMultisampleRenderTarget?Z.get(t).__webglMultisampledFramebuffer:a,T.copy(t.viewport),A.copy(t.scissor),L=t.scissorTest}else T.copy(N).multiplyScalar(P).floor(),A.copy(B).multiplyScalar(P).floor(),L=z;if(q.bindFramebuffer(36160,i),q.viewport(T),q.scissor(A),q.setScissorTest(L),r){const i=Z.get(t.texture);pt.framebufferTexture2D(36160,36064,34069+e,i.__webglTexture,n)}else if(s){const i=Z.get(t.texture),r=e||0;pt.framebufferTextureLayer(36160,36064,i.__webglTexture,n||0,r)}},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=Z.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){q.bindFramebuffer(36160,o);try{const a=t.texture,o=a.format,l=a.type;if(o!==E&&ut.convert(o)!==pt.getParameter(35739))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===M&&(W.has("EXT_color_buffer_half_float")||j.isWebGL2&&W.has("EXT_color_buffer_float"));if(!(l===x||ut.convert(l)===pt.getParameter(35738)||l===b&&(j.isWebGL2||W.has("OES_texture_float")||W.has("WEBGL_color_buffer_float"))||c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");36053===pt.checkFramebufferStatus(36160)?e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&pt.readPixels(e,n,i,r,ut.convert(o),ut.convert(l),s):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.")}finally{const t=null!==_?Z.get(_).__webglFramebuffer:null;q.bindFramebuffer(36160,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const i=Math.pow(2,-n),r=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i),a=ut.convert(e.format);J.setTexture2D(e,0),pt.copyTexImage2D(3553,n,a,t.x,t.y,r,s,0),q.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const r=e.image.width,s=e.image.height,a=ut.convert(n.format),o=ut.convert(n.type);J.setTexture2D(n,0),pt.pixelStorei(37440,n.flipY),pt.pixelStorei(37441,n.premultiplyAlpha),pt.pixelStorei(3317,n.unpackAlignment),e.isDataTexture?pt.texSubImage2D(3553,i,t.x,t.y,r,s,a,o,e.image.data):e.isCompressedTexture?pt.compressedTexSubImage2D(3553,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):pt.texSubImage2D(3553,i,t.x,t.y,a,o,e.image),0===i&&n.generateMipmaps&&pt.generateMipmap(3553),q.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,r=0){if(f.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const{width:s,height:a,data:o}=n.image,l=ut.convert(i.format),c=ut.convert(i.type);let h;if(i.isDataTexture3D)J.setTexture3D(i,0),h=32879;else{if(!i.isDataTexture2DArray)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");J.setTexture2DArray(i,0),h=35866}pt.pixelStorei(37440,i.flipY),pt.pixelStorei(37441,i.premultiplyAlpha),pt.pixelStorei(3317,i.unpackAlignment);const u=pt.getParameter(3314),d=pt.getParameter(32878),p=pt.getParameter(3316),m=pt.getParameter(3315),g=pt.getParameter(32877);pt.pixelStorei(3314,s),pt.pixelStorei(32878,a),pt.pixelStorei(3316,t.min.x),pt.pixelStorei(3315,t.min.y),pt.pixelStorei(32877,t.min.z),pt.texSubImage3D(h,r,e.x,e.y,e.z,t.max.x-t.min.x+1,t.max.y-t.min.y+1,t.max.z-t.min.z+1,l,c,o),pt.pixelStorei(3314,u),pt.pixelStorei(32878,d),pt.pixelStorei(3316,p),pt.pixelStorei(3315,m),pt.pixelStorei(32877,g),0===r&&i.generateMipmaps&&pt.generateMipmap(h),q.unbindTexture()},this.initTexture=function(t){J.setTexture2D(t,0),q.unbindTexture()},this.resetState=function(){v=0,y=0,_=null,q.reset(),dt.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}class bs extends ws{}bs.prototype.isWebGL1Renderer=!0;class Ms{constructor(t,e=25e-5){this.name="",this.color=new tn(t),this.density=e}clone(){return new Ms(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}Ms.prototype.isFogExp2=!0;class Ss{constructor(t,e=1,n=1e3){this.name="",this.color=new tn(t),this.near=e,this.far=n}clone(){return new Ss(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}Ss.prototype.isFog=!0;class Ts extends Ce{constructor(){super(),this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.autoUpdate=t.autoUpdate,this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.background&&(e.object.background=this.background.toJSON(t)),null!==this.environment&&(e.object.environment=this.environment.toJSON(t)),null!==this.fog&&(e.object.fog=this.fog.toJSON()),e}}Ts.prototype.isScene=!0;class Es{constructor(t,e){this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=et,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=ct(),this.onUploadCallback=function(){}}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;it.far||e.push({distance:o,point:Ps.clone(),uv:je.getUV(Ps,Fs,Os,Hs,Gs,Us,ks,new vt),face:null,object:this})}copy(t){return super.copy(t),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function Ws(t,e,n,i,r,s){Ns.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(Bs.x=s*Ns.x-r*Ns.y,Bs.y=r*Ns.x+s*Ns.y):Bs.copy(Ns),t.copy(e),t.x+=Bs.x,t.y+=Bs.y,t.applyMatrix4(zs)}Vs.prototype.isSprite=!0;const js=new Lt,qs=new Lt;class Xs extends Ce{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let t=0,n=e.length;t0){let n,i;for(n=1,i=e.length;n0){js.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(js);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){js.setFromMatrixPosition(t.matrixWorld),qs.setFromMatrixPosition(this.matrixWorld);const n=js.distanceTo(qs)/t.zoom;let i,r;for(e[0].object.visible=!0,i=1,r=e.length;i=e[i].distance;i++)e[i-1].object.visible=!1,e[i].object.visible=!0;for(this._currentLevel=i-1;io)continue;u.applyMatrix4(this.matrixWorld);const d=t.ray.origin.distanceTo(u);dt.far||e.push({distance:d,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,s.start),i=Math.min(r.count,s.start+s.count)-1;no)continue;u.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(u);it.far||e.push({distance:i,point:h.clone().applyMatrix4(this.matrixWorld),index:n,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 t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e0&&console.error("THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}fa.prototype.isLine=!0;const ga=new Lt,va=new Lt;class ya extends fa{constructor(t,e){super(t,e),this.type="LineSegments"}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[];for(let t=0,i=e.count;t0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e0&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}function Ea(t,e,n,i,r,s,a){const o=ba.distanceSqToPoint(t);if(or.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}Ta.prototype.isPoints=!0;class Aa extends bt{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.format=void 0!==a?a:T,this.minFilter=void 0!==s?s:g,this.magFilter=void 0!==r?r:g,this.generateMipmaps=!1;const c=this;"requestVideoFrameCallback"in t&&t.requestVideoFrameCallback((function e(){c.needsUpdate=!0,t.requestVideoFrameCallback(e)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;!1==="requestVideoFrameCallback"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}Aa.prototype.isVideoTexture=!0;class La extends bt{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u),this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}La.prototype.isCompressedTexture=!0;class Ra extends bt{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.needsUpdate=!0}}Ra.prototype.isCanvasTexture=!0;class Ca extends bt{constructor(t,e,n,i,r,s,a,o,l,c){if((c=void 0!==c?c:A)!==A&&c!==L)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===A&&(n=_),void 0===n&&c===L&&(n=S),super(null,i,r,s,a,o,c,n,l),this.image={width:t,height:e},this.magFilter=void 0!==a?a:p,this.minFilter=void 0!==o?o:p,this.flipY=!1,this.generateMipmaps=!1}}Ca.prototype.isDepthTexture=!0;class Pa extends En{constructor(t=1,e=8,n=0,i=2*Math.PI){super(),this.type="CircleGeometry",this.parameters={radius:t,segments:e,thetaStart:n,thetaLength:i},e=Math.max(3,e);const r=[],s=[],a=[],o=[],l=new Lt,c=new vt;s.push(0,0,0),a.push(0,0,1),o.push(.5,.5);for(let r=0,h=3;r<=e;r++,h+=3){const u=n+r/e*i;l.x=t*Math.cos(u),l.y=t*Math.sin(u),s.push(l.x,l.y,l.z),a.push(0,0,1),c.x=(s[h]/t+1)/2,c.y=(s[h+1]/t+1)/2,o.push(c.x,c.y)}for(let t=1;t<=e;t++)r.push(t,t+1,0);this.setIndex(r),this.setAttribute("position",new mn(s,3)),this.setAttribute("normal",new mn(a,3)),this.setAttribute("uv",new mn(o,2))}}class Da extends En{constructor(t=1,e=1,n=1,i=8,r=1,s=!1,a=0,o=2*Math.PI){super(),this.type="CylinderGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:n,radialSegments:i,heightSegments:r,openEnded:s,thetaStart:a,thetaLength:o};const l=this;i=Math.floor(i),r=Math.floor(r);const c=[],h=[],u=[],d=[];let p=0;const m=[],f=n/2;let g=0;function v(n){const r=p,s=new vt,m=new Lt;let v=0;const y=!0===n?t:e,x=!0===n?1:-1;for(let t=1;t<=i;t++)h.push(0,f*x,0),u.push(0,x,0),d.push(.5,.5),p++;const _=p;for(let t=0;t<=i;t++){const e=t/i*o+a,n=Math.cos(e),r=Math.sin(e);m.x=y*r,m.y=f*x,m.z=y*n,h.push(m.x,m.y,m.z),u.push(0,x,0),s.x=.5*n+.5,s.y=.5*r*x+.5,d.push(s.x,s.y),p++}for(let t=0;t0&&v(!0),e>0&&v(!1)),this.setIndex(c),this.setAttribute("position",new mn(h,3)),this.setAttribute("normal",new mn(u,3)),this.setAttribute("uv",new mn(d,2))}}class Ia extends Da{constructor(t=1,e=1,n=8,i=1,r=!1,s=0,a=2*Math.PI){super(0,t,e,n,i,r,s,a),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}}class Na extends En{constructor(t,e,n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[],s=[];function a(t,e,n,i){const r=i+1,s=[];for(let i=0;i<=r;i++){s[i]=[];const a=t.clone().lerp(n,i/r),o=e.clone().lerp(n,i/r),l=r-i;for(let t=0;t<=l;t++)s[i][t]=0===t&&i===r?a:a.clone().lerp(o,t/l)}for(let t=0;t.9&&a<.1&&(e<.2&&(s[t+0]+=1),n<.2&&(s[t+2]+=1),i<.2&&(s[t+4]+=1))}}()}(),this.setAttribute("position",new mn(r,3)),this.setAttribute("normal",new mn(r.slice(),3)),this.setAttribute("uv",new mn(s,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}}class Ba extends Na{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e}}}const za=new Lt,Fa=new Lt,Oa=new Lt,Ha=new je;class Ga extends En{constructor(t,e){if(super(),this.type="EdgesGeometry",this.parameters={thresholdAngle:e},e=void 0!==e?e:1,!0===t.isGeometry)return void console.error("THREE.EdgesGeometry no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");const n=Math.pow(10,4),i=Math.cos(ot*e),r=t.getIndex(),s=t.getAttribute("position"),a=r?r.count:s.count,o=[0,0,0],l=["a","b","c"],c=new Array(3),h={},u=[];for(let t=0;t80*n){o=c=t[0],l=h=t[1];for(let e=n;ec&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?1/p:0}return Wa(s,a,n,o,l,p),a};function ka(t,e,n,i,r){let s,a;if(r===function(t,e,n,i){let r=0;for(let s=e,a=n-i;s0)for(s=e;s=e;s-=i)a=co(s,t[s],t[s+1],a);return a&&io(a,a.next)&&(ho(a),a=a.next),a}function Va(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!io(i,i.next)&&0!==no(i.prev,i,i.next))i=i.next;else{if(ho(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function Wa(t,e,n,i,r,s,a){if(!t)return;!a&&s&&function(t,e,n,i){let r=t;do{null===r.z&&(r.z=Ka(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){let e,n,i,r,s,a,o,l,c=1;do{for(n=t,t=null,s=null,a=0;n;){for(a++,i=n,o=0,e=0;e0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=i}s.nextZ=null,c*=2}while(a>1)}(r)}(t,i,r,s);let o,l,c=t;for(;t.prev!==t.next;)if(o=t.prev,l=t.next,s?qa(t,i,r,s):ja(t))e.push(o.i/n),e.push(t.i/n),e.push(l.i/n),ho(t),t=l.next,c=l.next;else if((t=l)===c){a?1===a?Wa(t=Xa(Va(t),e,n),e,n,i,r,s,2):2===a&&Ya(t,e,n,i,r,s):Wa(Va(t),e,n,i,r,s,1);break}}function ja(t){const e=t.prev,n=t,i=t.next;if(no(e,n,i)>=0)return!1;let r=t.next.next;for(;r!==t.prev;){if(to(e.x,e.y,n.x,n.y,i.x,i.y,r.x,r.y)&&no(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function qa(t,e,n,i){const r=t.prev,s=t,a=t.next;if(no(r,s,a)>=0)return!1;const o=r.xs.x?r.x>a.x?r.x:a.x:s.x>a.x?s.x:a.x,h=r.y>s.y?r.y>a.y?r.y:a.y:s.y>a.y?s.y:a.y,u=Ka(o,l,e,n,i),d=Ka(c,h,e,n,i);let p=t.prevZ,m=t.nextZ;for(;p&&p.z>=u&&m&&m.z<=d;){if(p!==t.prev&&p!==t.next&&to(r.x,r.y,s.x,s.y,a.x,a.y,p.x,p.y)&&no(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,m!==t.prev&&m!==t.next&&to(r.x,r.y,s.x,s.y,a.x,a.y,m.x,m.y)&&no(m.prev,m,m.next)>=0)return!1;m=m.nextZ}for(;p&&p.z>=u;){if(p!==t.prev&&p!==t.next&&to(r.x,r.y,s.x,s.y,a.x,a.y,p.x,p.y)&&no(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;m&&m.z<=d;){if(m!==t.prev&&m!==t.next&&to(r.x,r.y,s.x,s.y,a.x,a.y,m.x,m.y)&&no(m.prev,m,m.next)>=0)return!1;m=m.nextZ}return!0}function Xa(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;!io(r,s)&&ro(r,i,i.next,s)&&oo(r,s)&&oo(s,r)&&(e.push(r.i/n),e.push(i.i/n),e.push(s.i/n),ho(i),ho(i.next),i=t=s),i=i.next}while(i!==t);return Va(i)}function Ya(t,e,n,i,r,s){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&eo(a,t)){let o=lo(a,t);return a=Va(a,a.next),o=Va(o,o.next),Wa(a,e,n,i,r,s),void Wa(o,e,n,i,r,s)}t=t.next}a=a.next}while(a!==t)}function Za(t,e){return t.x-e.x}function Ja(t,e){if(e=function(t,e){let n=e;const i=t.x,r=t.y;let s,a=-1/0;do{if(r<=n.y&&r>=n.next.y&&n.next.y!==n.y){const t=n.x+(r-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(t<=i&&t>a){if(a=t,t===i){if(r===n.y)return n;if(r===n.next.y)return n.next}s=n.x=n.x&&n.x>=l&&i!==n.x&&to(rs.x||n.x===s.x&&Qa(s,n)))&&(s=n,u=h)),n=n.next}while(n!==o);return s}(t,e)){const n=lo(e,t);Va(e,e.next),Va(n,n.next)}}function Qa(t,e){return no(t.prev,t,e.prev)<0&&no(e.next,t,t.next)<0}function Ka(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*r)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-i)*r)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function $a(t){let e=t,n=t;do{(e.x=0&&(t-a)*(i-o)-(n-a)*(e-o)>=0&&(n-a)*(s-o)-(r-a)*(i-o)>=0}function eo(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&ro(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(oo(t,e)&&oo(e,t)&&function(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}(t,e)&&(no(t.prev,t,e.prev)||no(t,e.prev,e))||io(t,e)&&no(t.prev,t,t.next)>0&&no(e.prev,e,e.next)>0)}function no(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function io(t,e){return t.x===e.x&&t.y===e.y}function ro(t,e,n,i){const r=ao(no(t,e,n)),s=ao(no(t,e,i)),a=ao(no(n,i,t)),o=ao(no(n,i,e));return r!==s&&a!==o||(!(0!==r||!so(t,n,e))||(!(0!==s||!so(t,i,e))||(!(0!==a||!so(n,t,i))||!(0!==o||!so(n,e,i)))))}function so(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function ao(t){return t>0?1:t<0?-1:0}function oo(t,e){return no(t.prev,t,t.next)<0?no(t,e,t.next)>=0&&no(t,t.prev,e)>=0:no(t,e,t.prev)<0||no(t,t.next,e)<0}function lo(t,e){const n=new uo(t.i,t.x,t.y),i=new uo(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function co(t,e,n,i){const r=new uo(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function ho(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function uo(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}class po{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r2&&t[e-1].equals(t[0])&&t.pop()}function fo(t,e){for(let n=0;nNumber.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-o/u,m=e.y+a/u,f=((n.x-c/d-p)*c-(n.y+l/d-m)*l)/(a*c-o*l);i=p+a*f-t.x,r=m+o*f-t.y;const g=i*i+r*r;if(g<=2)return new vt(i,r);s=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(o)===Math.sign(c)&&(t=!0),t?(i=-o,r=a,s=Math.sqrt(h)):(i=a,r=o,s=Math.sqrt(h/2))}return new vt(i/s,r/s)}const P=[];for(let t=0,e=E.length,n=e-1,i=t+1;t=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=E.length;t=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+2*p;t=0?(t(i-o,p,h),u.subVectors(c,h)):(t(i+o,p,h),u.subVectors(h,c)),p-o>=0?(t(i,p-o,h),d.subVectors(c,h)):(t(i,p+o,h),d.subVectors(h,c)),l.crossVectors(u,d).normalize(),s.push(l.x,l.y,l.z),a.push(i,p)}}for(let t=0;t0)&&d.push(e,r,l),(t!==n-1||o=i)){l.push(e.times[t]);for(let n=0;ns.tracks[t].times[0]&&(o=s.tracks[t].times[0]);for(let t=0;t=i.times[u]){const t=u*l+o,e=t+l-o;d=Vo.arraySlice(i.values,t,e)}else{const t=i.createInterpolant(),e=o,n=l-o;t.evaluate(s),d=Vo.arraySlice(t.resultBuffer,e,n)}if("quaternion"===r){(new At).fromArray(d).normalize().conjugate().toArray(d)}const p=a.times.length;for(let t=0;t=r)break t;{const a=e[1];t=r)break e}s=n,n=0}}for(;n>>1;te;)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=Vo.arraySlice(n,r,s),this.values=Vo.arraySlice(this.values,r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let e=0;e!==r;e++){const i=n[e];if("number"==typeof i&&isNaN(i)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,e,i),t=!1;break}if(null!==s&&s>i){console.error("THREE.KeyframeTrack: Out of order keys.",this,e,i,s),t=!1;break}s=i}if(void 0!==i&&Vo.isTypedArray(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,e,n),t=!1;break}}return t}optimize(){const t=Vo.arraySlice(this.times),e=Vo.arraySlice(this.values),n=this.getValueSize(),i=this.getInterpolation()===U,r=t.length-1;let s=1;for(let a=1;a0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=Vo.arraySlice(t,0,s),this.values=Vo.arraySlice(e,0,s*n)):(this.times=t,this.values=e),this}clone(){const t=Vo.arraySlice(this.times,0),e=Vo.arraySlice(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}Yo.prototype.TimeBufferType=Float32Array,Yo.prototype.ValueBufferType=Float32Array,Yo.prototype.DefaultInterpolation=G;class Zo extends Yo{}Zo.prototype.ValueTypeName="bool",Zo.prototype.ValueBufferType=Array,Zo.prototype.DefaultInterpolation=H,Zo.prototype.InterpolantFactoryMethodLinear=void 0,Zo.prototype.InterpolantFactoryMethodSmooth=void 0;class Jo extends Yo{}Jo.prototype.ValueTypeName="color";class Qo extends Yo{}Qo.prototype.ValueTypeName="number";class Ko extends Wo{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let t=l+a;l!==t;l+=4)At.slerpFlat(r,0,s,l-a,s,l,o);return r}}class $o extends Yo{InterpolantFactoryMethodLinear(t){return new Ko(this.times,this.values,this.getValueSize(),t)}}$o.prototype.ValueTypeName="quaternion",$o.prototype.DefaultInterpolation=G,$o.prototype.InterpolantFactoryMethodSmooth=void 0;class tl extends Yo{}tl.prototype.ValueTypeName="string",tl.prototype.ValueBufferType=Array,tl.prototype.DefaultInterpolation=H,tl.prototype.InterpolantFactoryMethodLinear=void 0,tl.prototype.InterpolantFactoryMethodSmooth=void 0;class el extends Yo{}el.prototype.ValueTypeName="vector";class nl{constructor(t,e=-1,n,i=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=ct(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,r=n.length;t!==r;++t)e.push(il(n[t]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(Yo.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length,s=[];for(let t=0;t1){const t=s[1];let e=i[t];e||(i[t]=e=[]),e.push(n)}}const s=[];for(const t in i)s.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return s}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(t,e,n,i,r){if(0!==n.length){const s=[],a=[];Vo.flattenJSON(n,s,a,i),0!==s.length&&r.push(new t(e,s,a))}},i=[],r=t.name||"default",s=t.fps||30,a=t.blendMode;let o=t.length||-1;const l=t.hierarchy||[];for(let t=0;t0||0===t.search(/^data\:image\/jpeg/);r.format=i?T:E,r.needsUpdate=!0,void 0!==e&&e(r)}),n,i),r}}class ml{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),r=0;e.push(0);for(let s=1;s<=t;s++)n=this.getPoint(s/t),r+=n.distanceTo(i),e.push(r),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const r=n.length;let s;s=e||t*n[r-1];let a,o=0,l=r-1;for(;o<=l;)if(i=Math.floor(o+(l-o)/2),a=n[i]-s,a<0)o=i+1;else{if(!(a>0)){l=i;break}l=i-1}if(i=l,n[i]===s)return i/(r-1);const c=n[i];return(i+(s-c)/(n[i+1]-c))/(r-1)}getTangent(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),o=e||(s.isVector2?new vt:new Lt);return o.copy(a).sub(s).normalize(),o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new Lt,i=[],r=[],s=[],a=new Lt,o=new se;for(let e=0;e<=t;e++){const n=e/t;i[e]=this.getTangentAt(n,new Lt),i[e].normalize()}r[0]=new Lt,s[0]=new Lt;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),h=Math.abs(i[0].y),u=Math.abs(i[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let e=1;e<=t;e++){if(r[e]=r[e-1].clone(),s[e]=s[e-1].clone(),a.crossVectors(i[e-1],i[e]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(ht(i[e-1].dot(i[e]),-1,1));r[e].applyMatrix4(o.makeRotationAxis(a,t))}s[e].crossVectors(i[e],r[e])}if(!0===e){let e=Math.acos(ht(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n)),s[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class fl extends ml{constructor(t=0,e=0,n=1,i=1,r=0,s=2*Math.PI,a=!1,o=0){super(),this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(t,e){const n=e||new vt,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)i;)r-=i;r0?0:(Math.floor(Math.abs(l)/r)+1)*r:0===c&&l===r-1&&(l=r-2,c=1),this.closed||l>0?a=i[(l-1)%r]:(yl.subVectors(i[0],i[1]).add(i[0]),a=yl);const h=i[l%r],u=i[(l+1)%r];if(this.closed||l+2i.length-2?i.length-1:s+1],h=i[s>i.length-3?i.length-1:s+2];return n.set(Ml(a,o.x,l.x,c.x,h.x),Ml(a,o.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=e){const t=n[i]-e,r=this.curves[i],s=r.getLength(),a=0===s?0:1-t/s;return r.getPointAt(a)}i++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class zl extends Bl{constructor(t){super(t),this.uuid=ct(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,i=this.holes.length;n0:i.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const e in t.uniforms){const r=t.uniforms[e];switch(i.uniforms[e]={},r.type){case"t":i.uniforms[e].value=n(r.value);break;case"c":i.uniforms[e].value=(new tn).setHex(r.value);break;case"v2":i.uniforms[e].value=(new vt).fromArray(r.value);break;case"v3":i.uniforms[e].value=(new Lt).fromArray(r.value);break;case"v4":i.uniforms[e].value=(new St).fromArray(r.value);break;case"m3":i.uniforms[e].value=(new yt).fromArray(r.value);break;case"m4":i.uniforms[e].value=(new se).fromArray(r.value);break;default:i.uniforms[e].value=r.value}}if(void 0!==t.defines&&(i.defines=t.defines),void 0!==t.vertexShader&&(i.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(i.fragmentShader=t.fragmentShader),void 0!==t.extensions)for(const e in t.extensions)i.extensions[e]=t.extensions[e];if(void 0!==t.shading&&(i.flatShading=1===t.shading),void 0!==t.size&&(i.size=t.size),void 0!==t.sizeAttenuation&&(i.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(i.map=n(t.map)),void 0!==t.matcap&&(i.matcap=n(t.matcap)),void 0!==t.alphaMap&&(i.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(i.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(i.bumpScale=t.bumpScale),void 0!==t.normalMap&&(i.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(i.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),i.normalScale=(new vt).fromArray(e)}return void 0!==t.displacementMap&&(i.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(i.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(i.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(i.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(i.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(i.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(i.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(i.specularMap=n(t.specularMap)),void 0!==t.envMap&&(i.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(i.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(i.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(i.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(i.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(i.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(i.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(i.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(i.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(i.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(i.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new vt).fromArray(t.clearcoatNormalScale)),void 0!==t.transmission&&(i.transmission=t.transmission),void 0!==t.transmissionMap&&(i.transmissionMap=n(t.transmissionMap)),i}setTextures(t){return this.textures=t,this}}class rc{static decodeText(t){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e="";for(let n=0,i=t.length;nNumber.EPSILON){if(l<0&&(n=e[s],o=-o,a=e[r],l=-l),t.ya.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const r=po.isClockWise,s=this.subPaths;if(0===s.length)return[];if(!0===e)return n(s);let a,o,l;const c=[];if(1===s.length)return o=s[0],l=new zl,l.curves=o.curves,c.push(l),c;let h=!r(s[0].getPoints());h=t?!h:h;const u=[],d=[];let p,m,f=[],g=0;d[g]=void 0,f[g]=[];for(let e=0,n=s.length;e1){let t=!1;const e=[];for(let t=0,e=d.length;t0&&(t||(f=u))}for(let t=0,e=d.length;t0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,r=e+e;t!==r;++t)if(n[t]!==n[t+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,r=i;t!==r;++t)e[t]=e[i+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n=.5)for(let i=0;i!==r;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){At.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;At.multiplyQuaternionsFlat(t,s,t,e,t,n),At.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const Bc="\\[\\]\\.:\\/",zc=new RegExp("[\\[\\]\\.:\\/]","g"),Fc="[^\\[\\]\\.:\\/]",Oc="[^"+Bc.replace("\\.","")+"]",Hc=/((?:WC+[\/:])*)/.source.replace("WC",Fc),Gc=/(WCOD+)?/.source.replace("WCOD",Oc),Uc=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Fc),kc=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Fc),Vc=new RegExp("^"+Hc+Gc+Uc+kc+"$"),Wc=["material","materials","bones"];class jc{constructor(t,e,n){this.path=e,this.parsedPath=n||jc.parseTrackName(e),this.node=jc.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new jc.Composite(t,e,n):new jc(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(zc,"")}static parseTrackName(t){const e=Vc.exec(t);if(!e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==Wc.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(!e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i=r){const s=r++,c=t[s];e[c.uuid]=l,t[l]=c,e[o]=s,t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[l];e[l]=i,e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=e[o];if(void 0!==l)if(delete e[o],l0&&(e[a.uuid]=l),t[l]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[l]=e[r],e.pop()}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);i=r.length,n[t]=i,s.push(t),a.push(e),r.push(h);for(let n=c,i=o.length;n!==i;++n){const i=o[n];h[n]=new jc(i,t,e)}return h}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];e[t[a]]=n,s[n]=o,s.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}}qc.prototype.isAnimationObjectGroup=!0;class Xc{constructor(t,e,n=null,i=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=i;const r=e.tracks,s=r.length,a=new Array(s),o={endingStart:k,endingEnd:k};for(let t=0;t!==s;++t){const e=r[t].createInterpolant(null);a[t]=e,e.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=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&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,i=t._clip.duration,r=i/n,s=n/i;t.warp(1,r,e),this.warp(s,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,r=i.time,s=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=i._lendControlInterpolant(),this._timeScaleInterpolant=a);const o=a.parameterPositions,l=a.sampleValues;return o[0]=r,o[1]=r+n,l[0]=t/s,l[1]=e/s,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled)return void this._updateWeight(t);const r=this._startTime;if(null!==r){const i=(t-r)*n;if(i<0||0===n)return;this._startTime=null,e=n*i}e*=this._updateTimeScale(t);const s=this._updateTime(e),a=this._updateWeight(t);if(a>0){const t=this._interpolants,e=this._propertyBindings;switch(this.blendMode){case q:for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(s),e[n].accumulateAdditive(a);break;case j:default:for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(s),e[n].accumulate(i,a)}}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const s=2202===n;if(0===t)return-1===r?i:s&&1==(1&r)?e-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(s&&1==(1&r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=V,i.endingEnd=V):(i.endingStart=t?this.zeroSlopeAtStart?V:k:W,i.endingEnd=e?this.zeroSlopeAtEnd?V:k:W)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;null===s&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=r,o[0]=e,a[1]=r+t,o[1]=n,this}}class Yc extends rt{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,r=i.length,s=t._propertyBindings,a=t._interpolants,o=n.uuid,l=this._bindingsByRootAndName;let c=l[o];void 0===c&&(c={},l[o]=c);for(let t=0;t!==r;++t){const r=i[t],l=r.name;let h=c[l];if(void 0!==h)s[t]=h;else{if(h=s[t],void 0!==h){null===h._cacheIndex&&(++h.referenceCount,this._addInactiveBinding(h,o,l));continue}const i=e&&e._propertyBindings[t].binding.parsedPath;h=new Nc(jc.create(n,l,i),r.ValueTypeName,r.getValueSize()),++h.referenceCount,this._addInactiveBinding(h,o,l),s[t]=h}a[t].resultBuffer=h.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return null!==e&&e=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let a=0;a!==n;++a){e[a]._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let t=0;t!==o;++t)a[t].apply(s);return this}setTime(t){this.time=0;for(let t=0;tthis.max.x||t.ythis.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return void 0===e&&(console.warn("THREE.Box2: .getParameter() target is now required"),e=new vt),e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)}clampPoint(t,e){return void 0===e&&(console.warn("THREE.Box2: .clampPoint() target is now required"),e=new vt),e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return th.copy(t).clamp(this.min,this.max).sub(t).length()}intersect(t){return this.min.max(t.min),this.max.min(t.max),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}eh.prototype.isBox2=!0;const nh=new Lt,ih=new Lt;class rh{constructor(t=new Lt,e=new Lt){this.start=t,this.end=e}set(t,e){return this.start.copy(t),this.end.copy(e),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return void 0===t&&(console.warn("THREE.Line3: .getCenter() target is now required"),t=new Lt),t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return void 0===t&&(console.warn("THREE.Line3: .delta() target is now required"),t=new Lt),t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return void 0===e&&(console.warn("THREE.Line3: .at() target is now required"),e=new Lt),this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){nh.subVectors(t,this.start),ih.subVectors(this.end,this.start);const n=ih.dot(ih);let i=ih.dot(nh)/n;return e&&(i=ht(i,0,1)),i}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return void 0===n&&(console.warn("THREE.Line3: .closestPointToPoint() target is now required"),n=new Lt),this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}class sh extends Ce{constructor(t){super(),this.material=t,this.render=function(){},this.hasPositions=!1,this.hasNormals=!1,this.hasColors=!1,this.hasUvs=!1,this.positionArray=null,this.normalArray=null,this.colorArray=null,this.uvArray=null,this.count=0}}sh.prototype.isImmediateRenderObject=!0;const ah=new Lt;const oh=new Lt,lh=new se,ch=new se;class hh extends ya{constructor(t){const e=uh(t),n=new En,i=[],r=[],s=new tn(0,0,1),a=new tn(0,1,0);for(let t=0;t4?a=Ph[r-8+4-1]:0==r&&(a=0),n.push(a);const o=1/(s-1),l=-o/2,c=1+o/2,h=[l,l,c,l,c,c,l,l,c,c,l,c],u=6,d=6,p=3,m=2,f=1,g=new Float32Array(p*d*u),v=new Float32Array(m*d*u),y=new Float32Array(f*d*u);for(let t=0;t2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];g.set(i,p*d*t),v.set(h,m*d*t);const r=[t,t,t,t,t,t];y.set(r,f*d*t)}const x=new En;x.setAttribute("position",new sn(g,p)),x.setAttribute("uv",new sn(v,m)),x.setAttribute("faceIndex",new sn(y,f)),t.push(x),i>4&&i--}return{_lodPlanes:t,_sizeLods:e,_sigmas:n}}function Zh(t){const e=new Tt(3*Ch,3*Ch,t);return e.texture.mapping=l,e.texture.name="PMREM.cubeUv",e.scissorTest=!0,e}function Jh(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function Qh(){const t=new vt(1,1);return new Io({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null},texelSize:{value:t},inputEncoding:{value:Nh[3e3]},outputEncoding:{value:Nh[3e3]}},vertexShader:$h(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform vec2 texelSize;\n\n\t\t\t${tu()}\n\n\t\t\t#include \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 = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.x += texelSize.x;\n\t\t\t\tvec3 tr = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.y += texelSize.y;\n\t\t\t\tvec3 br = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.x -= texelSize.x;\n\t\t\t\tvec3 bl = envMapTexelToLinear( 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\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t`,blending:0,depthTest:!1,depthWrite:!1})}function Kh(){return new Io({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},inputEncoding:{value:Nh[3e3]},outputEncoding:{value:Nh[3e3]}},vertexShader:$h(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\t${tu()}\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb = envMapTexelToLinear( textureCube( envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ) ) ).rgb;\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t`,blending:0,depthTest:!1,depthWrite:!1})}function $h(){return"\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"}function tu(){return"\n\n\t\tuniform int inputEncoding;\n\t\tuniform int outputEncoding;\n\n\t\t#include \n\n\t\tvec4 inputTexelToLinear( vec4 value ) {\n\n\t\t\tif ( inputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( inputEncoding == 1 ) {\n\n\t\t\t\treturn sRGBToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 2 ) {\n\n\t\t\t\treturn RGBEToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 3 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 7.0 );\n\n\t\t\t} else if ( inputEncoding == 4 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 16.0 );\n\n\t\t\t} else if ( inputEncoding == 5 ) {\n\n\t\t\t\treturn RGBDToLinear( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn GammaToLinear( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 linearToOutputTexel( vec4 value ) {\n\n\t\t\tif ( outputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( outputEncoding == 1 ) {\n\n\t\t\t\treturn LinearTosRGB( value );\n\n\t\t\t} else if ( outputEncoding == 2 ) {\n\n\t\t\t\treturn LinearToRGBE( value );\n\n\t\t\t} else if ( outputEncoding == 3 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 7.0 );\n\n\t\t\t} else if ( outputEncoding == 4 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 16.0 );\n\n\t\t\t} else if ( outputEncoding == 5 ) {\n\n\t\t\t\treturn LinearToRGBD( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn LinearToGamma( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 envMapTexelToLinear( vec4 color ) {\n\n\t\t\treturn inputTexelToLinear( color );\n\n\t\t}\n\t"}ml.create=function(t,e){return console.log("THREE.Curve.create() has been deprecated"),t.prototype=Object.create(ml.prototype),t.prototype.constructor=t,t.prototype.getPoint=e,t},Bl.prototype.fromPoints=function(t){return console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints()."),this.setFromPoints(t)},fh.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")},hh.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")},ol.prototype.extractUrlBase=function(t){return console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead."),rc.extractUrlBase(t)},ol.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.")}},eh.prototype.center=function(t){return console.warn("THREE.Box2: .center() has been renamed to .getCenter()."),this.getCenter(t)},eh.prototype.empty=function(){return console.warn("THREE.Box2: .empty() has been renamed to .isEmpty()."),this.isEmpty()},eh.prototype.isIntersectionBox=function(t){return console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},eh.prototype.size=function(t){return console.warn("THREE.Box2: .size() has been renamed to .getSize()."),this.getSize(t)},Pt.prototype.center=function(t){return console.warn("THREE.Box3: .center() has been renamed to .getCenter()."),this.getCenter(t)},Pt.prototype.empty=function(){return console.warn("THREE.Box3: .empty() has been renamed to .isEmpty()."),this.isEmpty()},Pt.prototype.isIntersectionBox=function(t){return console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},Pt.prototype.isIntersectionSphere=function(t){return console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)},Pt.prototype.size=function(t){return console.warn("THREE.Box3: .size() has been renamed to .getSize()."),this.getSize(t)},Jt.prototype.empty=function(){return console.warn("THREE.Sphere: .empty() has been renamed to .isEmpty()."),this.isEmpty()},ai.prototype.setFromMatrix=function(t){return console.warn("THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix()."),this.setFromProjectionMatrix(t)},rh.prototype.center=function(t){return console.warn("THREE.Line3: .center() has been renamed to .getCenter()."),this.getCenter(t)},yt.prototype.flattenToArrayOffset=function(t,e){return console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,e)},yt.prototype.multiplyVector3=function(t){return console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead."),t.applyMatrix3(this)},yt.prototype.multiplyVector3Array=function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},yt.prototype.applyToBufferAttribute=function(t){return console.warn("THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead."),t.applyMatrix3(this)},yt.prototype.applyToVector3Array=function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")},yt.prototype.getInverse=function(t){return console.warn("THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(t).invert()},se.prototype.extractPosition=function(t){return console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition()."),this.copyPosition(t)},se.prototype.flattenToArrayOffset=function(t,e){return console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,e)},se.prototype.getPosition=function(){return console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead."),(new Lt).setFromMatrixColumn(this,3)},se.prototype.setRotationFromQuaternion=function(t){return console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion()."),this.makeRotationFromQuaternion(t)},se.prototype.multiplyToArray=function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},se.prototype.multiplyVector3=function(t){return console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},se.prototype.multiplyVector4=function(t){return console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},se.prototype.multiplyVector3Array=function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},se.prototype.rotateAxis=function(t){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead."),t.transformDirection(this)},se.prototype.crossVector=function(t){return console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},se.prototype.translate=function(){console.error("THREE.Matrix4: .translate() has been removed.")},se.prototype.rotateX=function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},se.prototype.rotateY=function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},se.prototype.rotateZ=function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},se.prototype.rotateByAxis=function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},se.prototype.applyToBufferAttribute=function(t){return console.warn("THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},se.prototype.applyToVector3Array=function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},se.prototype.makeFrustum=function(t,e,n,i,r,s){return console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead."),this.makePerspective(t,e,i,n,r,s)},se.prototype.getInverse=function(t){return console.warn("THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(t).invert()},Ne.prototype.isIntersectionLine=function(t){return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."),this.intersectsLine(t)},At.prototype.multiplyVector3=function(t){return console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead."),t.applyQuaternion(this)},At.prototype.inverse=function(){return console.warn("THREE.Quaternion: .inverse() has been renamed to invert()."),this.invert()},re.prototype.isIntersectionBox=function(t){return console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},re.prototype.isIntersectionPlane=function(t){return console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane()."),this.intersectsPlane(t)},re.prototype.isIntersectionSphere=function(t){return console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)},je.prototype.area=function(){return console.warn("THREE.Triangle: .area() has been renamed to .getArea()."),this.getArea()},je.prototype.barycoordFromPoint=function(t,e){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),this.getBarycoord(t,e)},je.prototype.midpoint=function(t){return console.warn("THREE.Triangle: .midpoint() has been renamed to .getMidpoint()."),this.getMidpoint(t)},je.prototypenormal=function(t){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),this.getNormal(t)},je.prototype.plane=function(t){return console.warn("THREE.Triangle: .plane() has been renamed to .getPlane()."),this.getPlane(t)},je.barycoordFromPoint=function(t,e,n,i,r){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),je.getBarycoord(t,e,n,i,r)},je.normal=function(t,e,n,i){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),je.getNormal(t,e,n,i)},zl.prototype.extractAllPoints=function(t){return console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead."),this.extractPoints(t)},zl.prototype.extrude=function(t){return console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead."),new go(this,t)},zl.prototype.makeGeometry=function(t){return console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead."),new Mo(this,t)},vt.prototype.fromAttribute=function(t,e,n){return console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,n)},vt.prototype.distanceToManhattan=function(t){return console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(t)},vt.prototype.lengthManhattan=function(){return console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()},Lt.prototype.setEulerFromRotationMatrix=function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},Lt.prototype.setEulerFromQuaternion=function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},Lt.prototype.getPositionFromMatrix=function(t){return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."),this.setFromMatrixPosition(t)},Lt.prototype.getScaleFromMatrix=function(t){return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."),this.setFromMatrixScale(t)},Lt.prototype.getColumnFromMatrix=function(t,e){return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."),this.setFromMatrixColumn(e,t)},Lt.prototype.applyProjection=function(t){return console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead."),this.applyMatrix4(t)},Lt.prototype.fromAttribute=function(t,e,n){return console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,n)},Lt.prototype.distanceToManhattan=function(t){return console.warn("THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(t)},Lt.prototype.lengthManhattan=function(){return console.warn("THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()},St.prototype.fromAttribute=function(t,e,n){return console.warn("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,n)},St.prototype.lengthManhattan=function(){return console.warn("THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()},Ce.prototype.getChildByName=function(t){return console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName()."),this.getObjectByName(t)},Ce.prototype.renderDepth=function(){console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")},Ce.prototype.translate=function(t,e){return console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead."),this.translateOnAxis(e,t)},Ce.prototype.getWorldRotation=function(){console.error("THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.")},Ce.prototype.applyMatrix=function(t){return console.warn("THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)},Object.defineProperties(Ce.prototype,{eulerOrder:{get:function(){return console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order},set:function(t){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order=t}},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.")}}}),Wn.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(Wn.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.")}}}),$s.prototype.initBones=function(){console.error("THREE.SkinnedMesh: initBones() has been removed.")},Kn.prototype.setLens=function(t,e){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup."),void 0!==e&&(this.filmGauge=e),this.setFocalLength(t)},Object.defineProperties(Fl.prototype,{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(t){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov."),this.shadow.camera.fov=t}},shadowCameraLeft:{set:function(t){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left."),this.shadow.camera.left=t}},shadowCameraRight:{set:function(t){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right."),this.shadow.camera.right=t}},shadowCameraTop:{set:function(t){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top."),this.shadow.camera.top=t}},shadowCameraBottom:{set:function(t){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom."),this.shadow.camera.bottom=t}},shadowCameraNear:{set:function(t){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near."),this.shadow.camera.near=t}},shadowCameraFar:{set:function(t){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far."),this.shadow.camera.far=t}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(t){console.warn("THREE.Light: .shadowBias is now .shadow.bias."),this.shadow.bias=t}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(t){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width."),this.shadow.mapSize.width=t}},shadowMapHeight:{set:function(t){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height."),this.shadow.mapSize.height=t}}}),Object.defineProperties(sn.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===nt},set:function(){console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.setUsage(nt)}}}),sn.prototype.setDynamic=function(t){return console.warn("THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(!0===t?nt:et),this},sn.prototype.copyIndicesArray=function(){console.error("THREE.BufferAttribute: .copyIndicesArray() has been removed.")},sn.prototype.setArray=function(){console.error("THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")},En.prototype.addIndex=function(t){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex()."),this.setIndex(t)},En.prototype.addAttribute=function(t,e){return console.warn("THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute()."),e&&e.isBufferAttribute||e&&e.isInterleavedBufferAttribute?"index"===t?(console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(e),this):this.setAttribute(t,e):(console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.setAttribute(t,new sn(arguments[1],arguments[2])))},En.prototype.addDrawCall=function(t,e,n){void 0!==n&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset."),console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup()."),this.addGroup(t,e)},En.prototype.clearDrawCalls=function(){console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups()."),this.clearGroups()},En.prototype.computeOffsets=function(){console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.")},En.prototype.removeAttribute=function(t){return console.warn("THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute()."),this.deleteAttribute(t)},En.prototype.applyMatrix=function(t){return console.warn("THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)},Object.defineProperties(En.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}}}),Es.prototype.setDynamic=function(t){return console.warn("THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(!0===t?nt:et),this},Es.prototype.setArray=function(){console.error("THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")},go.prototype.getArrays=function(){console.error("THREE.ExtrudeGeometry: .getArrays() has been removed.")},go.prototype.addShapeList=function(){console.error("THREE.ExtrudeGeometry: .addShapeList() has been removed.")},go.prototype.addShape=function(){console.error("THREE.ExtrudeGeometry: .addShape() has been removed.")},Ts.prototype.dispose=function(){console.error("THREE.Scene: .dispose() has been removed.")},Zc.prototype.onUpdate=function(){return console.warn("THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead."),this},Object.defineProperties(Xe.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 tn}},shading:{get:function(){console.error("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(t){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===t}},stencilMask:{get:function(){return console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask},set:function(t){console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask=t}}}),Object.defineProperties(Jn.prototype,{derivatives:{get:function(){return console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives},set:function(t){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives=t}}}),ws.prototype.clearTarget=function(t,e,n,i){console.warn("THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead."),this.setRenderTarget(t),this.clear(e,n,i)},ws.prototype.animate=function(t){console.warn("THREE.WebGLRenderer: .animate() is now .setAnimationLoop()."),this.setAnimationLoop(t)},ws.prototype.getCurrentRenderTarget=function(){return console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget()."),this.getRenderTarget()},ws.prototype.getMaxAnisotropy=function(){return console.warn("THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy()."),this.capabilities.getMaxAnisotropy()},ws.prototype.getPrecision=function(){return console.warn("THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision."),this.capabilities.precision},ws.prototype.resetGLState=function(){return console.warn("THREE.WebGLRenderer: .resetGLState() is now .state.reset()."),this.state.reset()},ws.prototype.supportsFloatTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' )."),this.extensions.get("OES_texture_float")},ws.prototype.supportsHalfFloatTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' )."),this.extensions.get("OES_texture_half_float")},ws.prototype.supportsStandardDerivatives=function(){return console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' )."),this.extensions.get("OES_standard_derivatives")},ws.prototype.supportsCompressedTextureS3TC=function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' )."),this.extensions.get("WEBGL_compressed_texture_s3tc")},ws.prototype.supportsCompressedTexturePVRTC=function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' )."),this.extensions.get("WEBGL_compressed_texture_pvrtc")},ws.prototype.supportsBlendMinMax=function(){return console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' )."),this.extensions.get("EXT_blend_minmax")},ws.prototype.supportsVertexTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures."),this.capabilities.vertexTextures},ws.prototype.supportsInstancedArrays=function(){return console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' )."),this.extensions.get("ANGLE_instanced_arrays")},ws.prototype.enableScissorTest=function(t){console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest()."),this.setScissorTest(t)},ws.prototype.initMaterial=function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")},ws.prototype.addPrePlugin=function(){console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")},ws.prototype.addPostPlugin=function(){console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")},ws.prototype.updateShadowMap=function(){console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")},ws.prototype.setFaceCulling=function(){console.warn("THREE.WebGLRenderer: .setFaceCulling() has been removed.")},ws.prototype.allocTextureUnit=function(){console.warn("THREE.WebGLRenderer: .allocTextureUnit() has been removed.")},ws.prototype.setTexture=function(){console.warn("THREE.WebGLRenderer: .setTexture() has been removed.")},ws.prototype.setTexture2D=function(){console.warn("THREE.WebGLRenderer: .setTexture2D() has been removed.")},ws.prototype.setTextureCube=function(){console.warn("THREE.WebGLRenderer: .setTextureCube() has been removed.")},ws.prototype.getActiveMipMapLevel=function(){return console.warn("THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel()."),this.getActiveMipmapLevel()},Object.defineProperties(ws.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled."),this.shadowMap.enabled=t}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type."),this.shadowMap.type=t}},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(t){console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),this.outputEncoding=!0===t?Y:X}},toneMappingWhitePoint:{get:function(){return console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed."),1},set:function(){console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.")}}}),Object.defineProperties(us.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(Tt.prototype,{wrapS:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS=t}},wrapT:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT=t}},magFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter=t}},minFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter=t}},anisotropy:{get:function(){return console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy},set:function(t){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy=t}},offset:{get:function(){return console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset},set:function(t){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset=t}},repeat:{get:function(){return console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat},set:function(t){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat=t}},format:{get:function(){return console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format},set:function(t){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format=t}},type:{get:function(){return console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type},set:function(t){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type=t}},generateMipmaps:{get:function(){return console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps},set:function(t){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps=t}}}),Lc.prototype.load=function(t){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");const e=this;return(new vc).load(t,(function(t){e.setBuffer(t)})),this},Ic.prototype.getData=function(){return console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData()."),this.getFrequencyData()},ti.prototype.updateCubeMap=function(t,e){return console.warn("THREE.CubeCamera: .updateCubeMap() is now .update()."),this.update(t,e)},ti.prototype.clear=function(t,e,n,i){return console.warn("THREE.CubeCamera: .clear() is now .renderTarget.clear()."),this.renderTarget.clear(t,e,n,i)},_t.crossOrigin=void 0,_t.loadTexture=function(t,e,n,i){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");const r=new pl;r.setCrossOrigin(this.crossOrigin);const s=r.load(t,n,void 0,i);return e&&(s.mapping=e),s},_t.loadTextureCube=function(t,e,n,i){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");const r=new ul;r.setCrossOrigin(this.crossOrigin);const s=r.load(t,n,void 0,i);return e&&(s.mapping=e),s},_t.loadCompressedTexture=function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")},_t.loadCompressedTextureCube=function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")};const eu={createMultiMaterialObject:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")},detach:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")},attach:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")}};"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:e}})),"undefined"!=typeof window&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=e),t.ACESFilmicToneMapping=4,t.AddEquation=n,t.AddOperation=2,t.AdditiveAnimationBlendMode=q,t.AdditiveBlending=2,t.AlphaFormat=1021,t.AlwaysDepth=1,t.AlwaysStencilFunc=519,t.AmbientLight=$l,t.AmbientLightProbe=xc,t.AnimationClip=nl,t.AnimationLoader=class extends ol{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new cl(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}parse(t){const e=[];for(let n=0;n.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{Sh.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(Sh,e)}}setLength(t,e=.2*t,n=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}},t.Audio=Lc,t.AudioAnalyser=Ic,t.AudioContext=gc,t.AudioListener=class extends Ce{constructor(){super(),this.type="AudioListener",this.context=gc.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new bc}getInput(){return this.gain}removeFilter(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(t){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=t,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}updateMatrixWorld(t){super.updateMatrixWorld(t);const e=this.context.listener,n=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(Sc,Tc,Ec),Ac.set(0,0,-1).applyQuaternion(Tc),e.positionX){const t=this.context.currentTime+this.timeDelta;e.positionX.linearRampToValueAtTime(Sc.x,t),e.positionY.linearRampToValueAtTime(Sc.y,t),e.positionZ.linearRampToValueAtTime(Sc.z,t),e.forwardX.linearRampToValueAtTime(Ac.x,t),e.forwardY.linearRampToValueAtTime(Ac.y,t),e.forwardZ.linearRampToValueAtTime(Ac.z,t),e.upX.linearRampToValueAtTime(n.x,t),e.upY.linearRampToValueAtTime(n.y,t),e.upZ.linearRampToValueAtTime(n.z,t)}else e.setPosition(Sc.x,Sc.y,Sc.z),e.setOrientation(Ac.x,Ac.y,Ac.z,n.x,n.y,n.z)}},t.AudioLoader=vc,t.AxesHelper=Ah,t.AxisHelper=function(t){return console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper."),new Ah(t)},t.BackSide=1,t.BasicDepthPacking=3200,t.BasicShadowMap=0,t.BinaryTextureLoader=function(t){return console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader."),new dl(t)},t.Bone=ta,t.BooleanKeyframeTrack=Zo,t.BoundingBoxHelper=function(t,e){return console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead."),new Mh(t,e)},t.Box2=eh,t.Box3=Pt,t.Box3Helper=class extends ya{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new En;i.setIndex(new sn(n,1)),i.setAttribute("position",new mn([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),super(i,new ca({color:e,toneMapped:!1})),this.box=t,this.type="Box3Helper",this.geometry.computeBoundingSphere()}updateMatrixWorld(t){const e=this.box;e.isEmpty()||(e.getCenter(this.position),e.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(t))}},t.BoxBufferGeometry=qn,t.BoxGeometry=qn,t.BoxHelper=Mh,t.BufferAttribute=sn,t.BufferGeometry=En,t.BufferGeometryLoader=oc,t.ByteType=1010,t.Cache=rl,t.Camera=Qn,t.CameraHelper=class extends ya{constructor(t){const e=new En,n=new ca({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],r=[],s={},a=new tn(16755200),o=new tn(16711680),l=new tn(43775),c=new tn(16777215),h=new tn(3355443);function u(t,e,n){d(t,n),d(e,n)}function d(t,e){i.push(0,0,0),r.push(e.r,e.g,e.b),void 0===s[t]&&(s[t]=[]),s[t].push(i.length/3-1)}u("n1","n2",a),u("n2","n4",a),u("n4","n3",a),u("n3","n1",a),u("f1","f2",a),u("f2","f4",a),u("f4","f3",a),u("f3","f1",a),u("n1","f1",a),u("n2","f2",a),u("n3","f3",a),u("n4","f4",a),u("p","n1",o),u("p","n2",o),u("p","n3",o),u("p","n4",o),u("u1","u2",l),u("u2","u3",l),u("u3","u1",l),u("c","t",c),u("p","c",h),u("cn1","cn2",h),u("cn3","cn4",h),u("cf1","cf2",h),u("cf3","cf4",h),e.setAttribute("position",new mn(i,3)),e.setAttribute("color",new mn(r,3)),super(e,n),this.type="CameraHelper",this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update()}update(){const t=this.geometry,e=this.pointMap;_h.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),wh("c",e,t,_h,0,0,-1),wh("t",e,t,_h,0,0,1),wh("n1",e,t,_h,-1,-1,-1),wh("n2",e,t,_h,1,-1,-1),wh("n3",e,t,_h,-1,1,-1),wh("n4",e,t,_h,1,1,-1),wh("f1",e,t,_h,-1,-1,1),wh("f2",e,t,_h,1,-1,1),wh("f3",e,t,_h,-1,1,1),wh("f4",e,t,_h,1,1,1),wh("u1",e,t,_h,.7,1.1,-1),wh("u2",e,t,_h,-.7,1.1,-1),wh("u3",e,t,_h,0,2,-1),wh("cf1",e,t,_h,-1,0,1),wh("cf2",e,t,_h,1,0,1),wh("cf3",e,t,_h,0,-1,1),wh("cf4",e,t,_h,0,1,1),wh("cn1",e,t,_h,-1,0,-1),wh("cn2",e,t,_h,1,0,-1),wh("cn3",e,t,_h,0,-1,-1),wh("cn4",e,t,_h,0,1,-1),t.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}},t.CanvasRenderer=function(){console.error("THREE.CanvasRenderer has been removed")},t.CanvasTexture=Ra,t.CatmullRomCurve3=bl,t.CineonToneMapping=3,t.CircleBufferGeometry=Pa,t.CircleGeometry=Pa,t.ClampToEdgeWrapping=u,t.Clock=bc,t.Color=tn,t.ColorKeyframeTrack=Jo,t.CompressedTexture=La,t.CompressedTextureLoader=class extends ol{constructor(t){super(t)}load(t,e,n,i){const r=this,s=[],a=new La,o=new cl(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(r.withCredentials);let l=0;function c(c){o.load(t[c],(function(t){const n=r.parse(t,!0);s[c]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps},l+=1,6===l&&(1===n.mipmapCount&&(a.minFilter=g),a.image=s,a.format=n.format,a.needsUpdate=!0,e&&e(a))}),n,i)}if(Array.isArray(t))for(let e=0,n=t.length;e>16&32768,i=e>>12&2047;const r=e>>23&255;return r<103?n:r>142?(n|=31744,n|=(255==r?0:1)&&8388607&e,n):r<113?(i|=2048,n|=(i>>114-r)+(i>>113-r&1),n):(n|=r-112<<10|i>>1,n+=1&i,n)}},t.DecrementStencilOp=7683,t.DecrementWrapStencilOp=34056,t.DefaultLoadingManager=al,t.DepthFormat=A,t.DepthStencilFormat=L,t.DepthTexture=Ca,t.DirectionalLight=Kl,t.DirectionalLightHelper=class extends Ce{constructor(t,e,n){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n,void 0===e&&(e=1);let i=new En;i.setAttribute("position",new mn([-e,e,0,e,e,0,e,-e,0,-e,-e,0,-e,e,0],3));const r=new ca({fog:!1,toneMapped:!1});this.lightPlane=new fa(i,r),this.add(this.lightPlane),i=new En,i.setAttribute("position",new mn([0,0,0,0,0,1],3)),this.targetLine=new fa(i,r),this.add(this.targetLine),this.update()}dispose(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()}update(){gh.setFromMatrixPosition(this.light.matrixWorld),vh.setFromMatrixPosition(this.light.target.matrixWorld),yh.subVectors(vh,gh),this.lightPlane.lookAt(vh),void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color)),this.targetLine.lookAt(vh),this.targetLine.scale.z=yh.length()}},t.DiscreteInterpolant=Xo,t.DodecahedronBufferGeometry=Ba,t.DodecahedronGeometry=Ba,t.DoubleSide=2,t.DstAlphaFactor=206,t.DstColorFactor=208,t.DynamicBufferAttribute=function(t,e){return console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setUsage( THREE.DynamicDrawUsage ) instead."),new sn(t,e).setUsage(nt)},t.DynamicCopyUsage=35050,t.DynamicDrawUsage=nt,t.DynamicReadUsage=35049,t.EdgesGeometry=Ga,t.EdgesHelper=function(t,e){return console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead."),new ya(new Ga(t.geometry),new ca({color:void 0!==e?e:16777215}))},t.EllipseCurve=fl,t.EqualDepth=4,t.EqualStencilFunc=514,t.EquirectangularReflectionMapping=a,t.EquirectangularRefractionMapping=o,t.Euler=fe,t.EventDispatcher=rt,t.ExtrudeBufferGeometry=go,t.ExtrudeGeometry=go,t.FaceColors=1,t.FileLoader=cl,t.FlatShading=1,t.Float16BufferAttribute=pn,t.Float32Attribute=function(t,e){return console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead."),new mn(t,e)},t.Float32BufferAttribute=mn,t.Float64Attribute=function(t,e){return console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead."),new fn(t,e)},t.Float64BufferAttribute=fn,t.FloatType=b,t.Fog=Ss,t.FogExp2=Ms,t.Font=pc,t.FontLoader=class extends ol{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new cl(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(r.withCredentials),s.load(t,(function(t){let n;try{n=JSON.parse(t)}catch(e){console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),n=JSON.parse(t.substring(65,t.length-2))}const i=r.parse(n);e&&e(i)}),n,i)}parse(t){return new pc(t)}},t.FrontSide=0,t.Frustum=ai,t.GLBufferAttribute=Qc,t.GLSL1="100",t.GLSL3=it,t.GammaEncoding=Z,t.GreaterDepth=6,t.GreaterEqualDepth=5,t.GreaterEqualStencilFunc=518,t.GreaterStencilFunc=516,t.GridHelper=fh,t.Group=gs,t.HalfFloatType=M,t.HemisphereLight=Ol,t.HemisphereLightHelper=class extends Ce{constructor(t,e,n){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n;const i=new _o(e);i.rotateY(.5*Math.PI),this.material=new en({wireframe:!0,fog:!1,toneMapped:!1}),void 0===this.color&&(this.material.vertexColors=!0);const r=i.getAttribute("position"),s=new Float32Array(3*r.count);i.setAttribute("color",new sn(s,3)),this.add(new Wn(i,this.material)),this.update()}dispose(){this.children[0].geometry.dispose(),this.children[0].material.dispose()}update(){const t=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{const e=t.geometry.getAttribute("color");ph.copy(this.light.color),mh.copy(this.light.groundColor);for(let t=0,n=e.count;t0){const n=new sl(e);r=new hl(n),r.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e\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\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t`,blending:0,depthTest:!1,depthWrite:!1})}(Ih),this._equirectShader=null,this._cubemapShader=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){kh=this._renderer.getRenderTarget();const r=this._allocateTargets();return this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t){return this._fromTexture(t)}fromCubemap(t){return this._fromTexture(t)}compileCubemapShader(){null===this._cubemapShader&&(this._cubemapShader=Kh(),this._compileMaterial(this._cubemapShader))}compileEquirectangularShader(){null===this._equirectShader&&(this._equirectShader=Qh(),this._compileMaterial(this._equirectShader))}dispose(){this._blurMaterial.dispose(),null!==this._cubemapShader&&this._cubemapShader.dispose(),null!==this._equirectShader&&this._equirectShader.dispose();for(let t=0;t2?Ch:0,Ch,Ch),o.setRenderTarget(i),u&&o.render(zh,r),o.render(t,r)}o.toneMapping=h,o.outputEncoding=c,o.autoClear=l}_textureToCubeUV(t,e){const n=this._renderer;t.isCubeTexture?null==this._cubemapShader&&(this._cubemapShader=Kh()):null==this._equirectShader&&(this._equirectShader=Qh());const i=t.isCubeTexture?this._cubemapShader:this._equirectShader,r=new Wn(Oh[0],i),s=i.uniforms;s.envMap.value=t,t.isCubeTexture||s.texelSize.value.set(1/t.image.width,1/t.image.height),s.inputEncoding.value=Nh[t.encoding],s.outputEncoding.value=Nh[e.texture.encoding],Jh(e,0,0,3*Ch,2*Ch),n.setRenderTarget(e),n.render(r,Fh)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let e=1;eIh&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to 20`);const f=[];let g=0;for(let t=0;t4?i-8+4:0),3*v,2*v),o.setRenderTarget(e),o.render(c,Fh)}},t.ParametricBufferGeometry=wo,t.ParametricGeometry=wo,t.Particle=function(t){return console.warn("THREE.Particle has been renamed to THREE.Sprite."),new Vs(t)},t.ParticleBasicMaterial=function(t){return console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial."),new _a(t)},t.ParticleSystem=function(t,e){return console.warn("THREE.ParticleSystem has been renamed to THREE.Points."),new Ta(t,e)},t.ParticleSystemMaterial=function(t){return console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial."),new _a(t)},t.Path=Bl,t.PerspectiveCamera=Kn,t.Plane=Ne,t.PlaneBufferGeometry=ci,t.PlaneGeometry=ci,t.PlaneHelper=class extends fa{constructor(t,e=1,n=16776960){const i=n,r=new En;r.setAttribute("position",new mn([1,-1,1,-1,1,1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,0,0,1,0,0,0],3)),r.computeBoundingSphere(),super(r,new ca({color:i,toneMapped:!1})),this.type="PlaneHelper",this.plane=t,this.size=e;const s=new En;s.setAttribute("position",new mn([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3)),s.computeBoundingSphere(),this.add(new Wn(s,new en({color:i,opacity:.2,transparent:!0,depthWrite:!1,toneMapped:!1})))}updateMatrixWorld(t){let e=-this.plane.constant;Math.abs(e)<1e-8&&(e=1e-8),this.scale.set(.5*this.size,.5*this.size,e),this.children[0].material.side=e<0?1:0,this.lookAt(this.plane.normal),super.updateMatrixWorld(t)}},t.PointCloud=function(t,e){return console.warn("THREE.PointCloud has been renamed to THREE.Points."),new Ta(t,e)},t.PointCloudMaterial=function(t){return console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial."),new _a(t)},t.PointLight=Zl,t.PointLightHelper=class extends Wn{constructor(t,e,n){super(new So(e,4,2),new en({wireframe:!0,fog:!1,toneMapped:!1})),this.light=t,this.light.updateMatrixWorld(),this.color=n,this.type="PointLightHelper",this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}dispose(){this.geometry.dispose(),this.material.dispose()}update(){void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)}},t.Points=Ta,t.PointsMaterial=_a,t.PolarGridHelper=class extends ya{constructor(t=10,e=16,n=8,i=64,r=4473924,s=8947848){r=new tn(r),s=new tn(s);const a=[],o=[];for(let n=0;n<=e;n++){const i=n/e*(2*Math.PI),l=Math.sin(i)*t,c=Math.cos(i)*t;a.push(0,0,0),a.push(l,0,c);const h=1&n?r:s;o.push(h.r,h.g,h.b),o.push(h.r,h.g,h.b)}for(let e=0;e<=n;e++){const l=1&e?r:s,c=t-t/n*e;for(let t=0;t { + spike.scale.y *= 0.95 + if (spike.scale.y < 0.01) { + earth.remove(spike) + spikes.splice(index, 1) + } + }) + + renderer.render(scene, camera) + } + + function latLongToVector3(lat, lon) { + const phi = (90 - lat) * (Math.PI / 180) + const theta = (lon + 180) * (Math.PI / 180) + const x = -0.5 * Math.sin(phi) * Math.cos(theta) + const y = 0.5 * Math.cos(phi) + const z = 0.5 * Math.sin(phi) * Math.sin(theta) + return new THREE.Vector3(x, y, z) + } + + function visualizeHit(request) { + console.log(request) + const { lat, long, type, page } = request + const position = latLongToVector3(lat, long) + + const spikeGeometry = new THREE.ConeGeometry(0.005, 0.2, 8) + spikeGeometry.translate(0, 0.05, 0) + spikeGeometry.rotateX(Math.PI / 2) + + const color = type === "read" ? 0xffffff : 0x00ff00 + const spikeMaterial = new THREE.MeshBasicMaterial({ color }) + + const spike = new THREE.Mesh(spikeGeometry, spikeMaterial) + spike.position.set(position.x, position.y, position.z) + spike.lookAt(new THREE.Vector3(0, 0, 0)) + + earth.add(spike) // Add spike to earth instead of scene + spikes.push(spike) + } + + init() + + const logContainer = document.getElementById("log-container") + const eventSource = new EventSource("/requests.htm") + eventSource.onmessage = function (event) { + const data = JSON.parse(event.data) + const logEntry = document.createElement("div") + logEntry.textContent = data.log + logContainer.appendChild(logEntry) + logContainer.scrollTop = logContainer.scrollHeight + + const parts = data.log.split(" ") + const long = parseFloat(parts.pop()) + const lat = parseFloat(parts.pop()) + const type = parts.shift() + const page = parts.shift() + + const request = { + lat, + long, + type, + page + } + visualizeHit(request) + } + eventSource.onerror = function (error) { + console.error("EventSource failed:", error) + eventSource.close() + } + // Log when the connection is opened + eventSource.onopen = function (event) { + console.log(event) + console.log("SSE connection opened") + } + } +} + +window.globe = new Globe() +globe.main() diff --git a/globe.scroll b/globe.scroll new file mode 100644 index 00000000..6a6e69ae --- /dev/null +++ b/globe.scroll @@ -0,0 +1,8 @@ +buildHtml +title Globe: ScrollHub Real-time Request Viewer + +div#log-container + +globe.css +external/three.min.js +globe.js \ No newline at end of file