From b1196bdd82ad120330fc109e2e57e3e93c644861 Mon Sep 17 00:00:00 2001 From: Mike Watling Date: Mon, 16 Sep 2024 11:41:51 +0100 Subject: [PATCH 01/35] Added content written by @erri120 in https://github.com/Nexus-Mods/NexusMods.App/pull/2009/files --- CHANGELOG.md | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 193624598a..fcc5c323a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,31 @@ # Changelog -## [v0.6.0](https://github.com/Nexus-Mods/NexusMods.App/releases/tag/v0.6.0) - 2024-08-29 +## [next]() - 2024-09-XX # Caution: To update the app, you must completely uninstall the old version, including all mods. [Learn More.](https://nexus-mods.github.io/NexusMods.App/users/faq/#why-do-i-have-to-uninstall-everything-to-update-the-app) +### New Features + +The Loadout and Library pages have been completely reworked and will continue to get closer to the design. + +TODO: comparison screenshots + +Cyberpunk support on Linux has been improved, the app can now run redmod via protontricks ([#1989](https://github.com/Nexus-Mods/NexusMods.App/pull/1989)). + +### Other Changes + +- The loadout name is shown in the top bar as a subtitle ([#1953](https://github.com/Nexus-Mods/NexusMods.App/pull/1953)). +- Set a minimum size of `360x360` for the main window ([#1947](https://github.com/Nexus-Mods/NexusMods.App/pull/1947)). +- Stardew Valley: Fixed enabled mods showing up as disabled in the diagnostics ([#1923](https://github.com/Nexus-Mods/NexusMods.App/pull/1953)). +- Linux: Fixed the game not launching when running through Steam ([#1917](https://github.com/Nexus-Mods/NexusMods.App/pull/1917)). + +### External Contributors + +- [@Patriot99](https://github.com/Patriot99): [#1896](https://github.com/Nexus-Mods/NexusMods.App/pull/1896) +- [LoulouNoLegend](https://github.com/LoulouNoLegend): [#1997](https://github.com/Nexus-Mods/NexusMods.App/pull/1997), [#1998](https://github.com/Nexus-Mods/NexusMods.App/pull/1998), [#1999](https://github.com/Nexus-Mods/NexusMods.App/pull/1999) + +## [v0.6.0](https://github.com/Nexus-Mods/NexusMods.App/releases/tag/v0.6.0) - 2024-09-03 + +**Caution: To update the app, you must completely uninstall the old version, including all mods. [Learn More.](https://nexus-mods.github.io/NexusMods.App/users/faq/#why-do-i-have-to-uninstall-everything-to-update-the-app)** This release enhances support for Cyberpunk 2077, adds multiple Loadouts per game and implements the back-end changes to support our new "Loadout items" data model. From 6cf0e8dc9f656cb986a8b2b1a66138d44337a980 Mon Sep 17 00:00:00 2001 From: Mike Watling Date: Mon, 16 Sep 2024 13:42:59 +0100 Subject: [PATCH 02/35] Updated changelog - need to convert the images to the hash file names --- CHANGELOG.md | 51 +++++++++++++++++++++----- docs/changelog-assets/Collection.webp | Bin 0 -> 23556 bytes docs/changelog-assets/REDmod.webp | Bin 0 -> 48640 bytes docs/changelog-assets/TreeView.webp | Bin 0 -> 223600 bytes 4 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 docs/changelog-assets/Collection.webp create mode 100644 docs/changelog-assets/REDmod.webp create mode 100644 docs/changelog-assets/TreeView.webp diff --git a/CHANGELOG.md b/CHANGELOG.md index fcc5c323a1..277f8e7d20 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,27 +1,58 @@ # Changelog -## [next]() - 2024-09-XX +## [0.6.1](https://github.com/Nexus-Mods/NexusMods.App/releases/tag/v0.6.1) - 2024-09-XX # Caution: To update the app, you must completely uninstall the old version, including all mods. [Learn More.](https://nexus-mods.github.io/NexusMods.App/users/faq/#why-do-i-have-to-uninstall-everything-to-update-the-app) -### New Features -The Loadout and Library pages have been completely reworked and will continue to get closer to the design. +This release adds a very basic implementation of downloading Collections, updates the UI to the new tree view and includes some enhancements when interacting with Windows applications via Linux. -TODO: comparison screenshots +### New UI for My Mods and Library +The My Mods and Library pages have been completely reworked to use the new tree view. Mods are now grouped by the mod page on Nexus Mods, meaning if download several files from the same page they will be grouped together. A "Switch View" option has been added to the toolbar to toggle these groupings on or off. We are continuing to work towards to designs shown in the previous changelog. -Cyberpunk support on Linux has been improved, the app can now run redmod via protontricks ([#1989](https://github.com/Nexus-Mods/NexusMods.App/pull/1989)). +![An image showing mods in the Library nested by mod page (left) or ungrouped (right)](./docs/changelog-assets/TreeView.webp) -### Other Changes +### EXPERIMENTAL - Collections +**WARNING: The feature is unfinished and not considered stable. It will not accurately install complex collections and is currently only functional for Premium users.** + +We've included a very early implementation of the Collections feature in this release. It's incomplete and will not install collections are the user has set them up in Vortex. Currently, only mods from Nexus Mods can be installed - anything from external websites or bundled with the collection will not install as expected. + +![A collection for Cyberpunk 2077 installed into a loadout.](./docs/changelog-assets/Collection.webp) + +Collections will appear as a separate list of mods in the left menu. Users can view all mods in the loadout from the new "Installed Mods" option at the top of the left menu. + +To start out, this will only be available to free users, but we are working on the free user journey separately and that will be available in a future release. + + +### Cyberpunk 2077 Enhancements +As a further enhancement to support for Cyberpunk 2077, we will now detect if the REDmod DLC is missing and problem the user to install it if required. + +![The diagnostic message for REDmod shown in the Health Check.](./docs/changelog-assets/REDmod.webp) -- The loadout name is shown in the top bar as a subtitle ([#1953](https://github.com/Nexus-Mods/NexusMods.App/pull/1953)). -- Set a minimum size of `360x360` for the main window ([#1947](https://github.com/Nexus-Mods/NexusMods.App/pull/1947)). +We've also fixed the issue which prevented REDmod from deploying automatically on Linux. This work also sets up a framework for running Windows apps and tools on a Linux system using [Protontricks](https://github.com/Matoking/protontricks) ([#1989](https://github.com/Nexus-Mods/NexusMods.App/pull/1989)). + +### Known Issues +- Deleting mods or removing mods from a loadout intermittently doesn't update the UI correctly. +- Trying to install a collection as a non-Premium user will fail with no error message. This is not supported in the current build. +- Once a collection is added to the app, it cannot be removed from the left menu. +- Collections allow users to modify the included mods but do not allow you to reset them to a the original state. +- The first row of the My Mods or Library tables will sometimes be misaligned with the headers. Scrolling or adjusting any column width will correct this. +- The "Switch View" option does not persist. + +### Other Features +- The name of the active loadout will now appear in the top bar ([#1953](https://github.com/Nexus-Mods/NexusMods.App/pull/1953)). +- The app now has a minimum window size of `360x360` to prevent it being resized to unusable dimensions ([#1947](https://github.com/Nexus-Mods/NexusMods.App/pull/1947)). + +### Bugfixes - Stardew Valley: Fixed enabled mods showing up as disabled in the diagnostics ([#1923](https://github.com/Nexus-Mods/NexusMods.App/pull/1953)). - Linux: Fixed the game not launching when running through Steam ([#1917](https://github.com/Nexus-Mods/NexusMods.App/pull/1917)). -### External Contributors +### Technical Changes +- Added a system for storing and displaying images in the app. +### External Contributors - [@Patriot99](https://github.com/Patriot99): [#1896](https://github.com/Nexus-Mods/NexusMods.App/pull/1896) -- [LoulouNoLegend](https://github.com/LoulouNoLegend): [#1997](https://github.com/Nexus-Mods/NexusMods.App/pull/1997), [#1998](https://github.com/Nexus-Mods/NexusMods.App/pull/1998), [#1999](https://github.com/Nexus-Mods/NexusMods.App/pull/1999) +- [@LoulouNoLegend](https://github.com/LoulouNoLegend): [#1997](https://github.com/Nexus-Mods/NexusMods.App/pull/1997), [#1998](https://github.com/Nexus-Mods/NexusMods.App/pull/1998), [#1999](https://github.com/Nexus-Mods/NexusMods.App/pull/1999) + ## [v0.6.0](https://github.com/Nexus-Mods/NexusMods.App/releases/tag/v0.6.0) - 2024-09-03 diff --git a/docs/changelog-assets/Collection.webp b/docs/changelog-assets/Collection.webp new file mode 100644 index 0000000000000000000000000000000000000000..70a92a284c81ce2eb25759f1ce3c8837aacb4650 GIT binary patch literal 23556 zcmZU)Q;;r9(52h9ZQHhOyL-3Yz1y~T+qP}nwr$(id%l@}&Y6o-@my3?M%}DfnH5=4 zr6MgM@vRF4q$w_s5DK@!a1Kan*i<@u7Dqui5VqP~%_y0{SEP&3QA|G4>pH>%Zdf;wSc->+kWq_6z!} zI1l;IcMNdP>jS(3u>G69!2S7tW1ax-z~8LzXD@Y=277%U{t^B=f`|TrKX;#qKXw4$ zU&XhkbHoq(=e*avoV`8(001QD#J}Jl;J5!3;Scm%^857!xFjqfoCQDu4EUw}=)aTh zw_ZWN+FArdzj+@C2m8+YcKrK&@coWHfR8oH_{M*cpH+_uR|FONY5*|+_;=9Px{JI} z!Fs}d{=Ik5&$DCqYsh!Rdd49@D1hXf=Xd2-@$0U-ZXfa=N7Aq4cia(YKW2#_>aW?) z(3jxL-mT!h|J>)*ulxJITgs)ri@ab$A;LlbNPo89zR!#w`=7Dty#v8ckMr-NFUgO- zDZ#5eL&0IeSbyc;onMo$y4SuRe=9(dzdiu^m-8#`b?-<2L6G3L?&t2?{@UO*?k6w6 zf5<=DU-EbC7xydeRq#vj+;7wOuiv;gykFMOp&tP7puh#0<_zp3Tqx7lH{(HuU`b~$ zr!_D#CLO%)VERzH!2JKhM0OWkBud~<4+1oCn5z_d?7bjSSk?3V1n0?s=FlCBUF6DC zU;NGAofbz_=%O89{P>~1XKcE}0vf&0TlkTuw7dgu=)pR$4i#C%Kl}V#JxQJh+CY} z!qG;-Xc@u`LT7EFlsWOMG?CB{E;-80^@13bgGE+7g@i~ve4A0*B=uZu6ec3HjEw{%%Nd9?;<@$kN%PYd~7T8trc7jk5aeb5Un7cb?`qLcxHvk zkNnHlv-*If|q6FWecIx5@#YT0Iy1k;!a^tq@s(WDpZChsh9vQ$X)^CIn|6b zrbyZF&<29QUTE-?K{2bW{ULxk@yujpUtZ|2A{4=?4@pS5Z;tpEIyCH6ni*Vk0r zeKnY(ypIy-tos*i>37ZGBg>D-cS+2-8vHqp4KGNweueRLmEuwhtjj#5?P?cLp z9r!@{PA|sz`=n>#)OT|-#qc*oZi?7KGIL$mgNOJ3&ENPTxdRJ=MC;lqJD+c22(qR) zX?9JsHUU4Rpt{r^0n>*PiK{fr|7*1Wv0M6*73%lFNu6Q_pH;Kmf0zXT{Q`dPm|a$^ zsZf(Y%^dYbhg)sVAJ`4Z!mgN2MQ7}OVXkQ{;4ll}MSpjfCxd#N5s#dYMbOT(JS<7< zh@|9a-+M}22w=vG6Tr~zC;KeR!AhLS@6-R%dKrnr@4LueSfQ2Y(2ItPl%Lw17@8Y1 z5;Xd%^mK;5pU^P`TFg*cusg4m+Wj5S?Y#RSZ&prkSd#VzcDgogLpHxyzm{4oKloMcBt0Em!H!T8NX=K;YLo?!grO zI2ZZ}%j&QBt%-`DQWh@BN3OyObebNPRON|>IaTVJUjKyIgZJUaza;Z-tWjYz$yzN6 zEd`{%gkHxB{#~gD@=7REFBFrmqDzb{vRMD@i(>jT6~K4ndMERFC&6%DYy~T4cht@f zNU1cN6S57~08dlSsb(;23%vSM^7aNpW=uNv^3NdtljzTjR1c~(r1>l|52^YAALpyj zw5cIkcACP`G$WqRU))ZkcS(4`FzxF!u40*wV=8^#9ayz0!a`)no9Hw5Tfi7kRWeV7 zKG10*aDA}>M0H=c=~bPJjk-E&J(H2r+SCM5gXi@o7?{b#0ih5BF>HSwL^l2~)W9gwC5%F7H{H*G!l2pYPk; zs7*qJJF#P7`tyJCDlk*>cA8{!HpvvtkUJ#-oM6(B#kxO#rJv?>Tx>f|U9t&0ZgD&^ zsTU=uoN;-PJuGg7_6z&zK;F=vTnQ>*pQ~xhlTKWMKYdk3gBYsi1|lai#?+)fotv3f zQP%9WOPV>`W5WGgLe5xK4pRd!9fR zm3Bve(;CCxBpPbY6{w`y%spDK*0g9r%{2E6ljpbTo!;T!39GX(3-qHhnme7`YA#}$*I_L1`QGvT=HvVVVW=$;a4M>Fgr(%)1b;{f?4@;qW1C1b8xx@f zU+7W^d;7^(&i@pgJWYzBwp0qz2W&)X50?r)Qc~Tn(ip%G6QV%x%><=JqBg*4hj~o( z1{(5eaB#3$nLX{RFb+>|7Sx{e)355@3s}A4B{;xo{lzNwzSR;*yC9&aPW493*xAr~ z#;n`+@|4zi8E(&J}LVckwMFDZGKQmxDu@4Itx{ywGW4Lb;i<;wcca|_XjC&j zl_8|uwLV4qkTC0kx)B)~U~9eDwy?%#plCS1B02_7{QGLamQ%OMD{Q9RvNKat8yDZt zBO$4!W@>-Q6dM{6Y>Dm55~Lj}sn@Y*-hIUWD};fr{D>`bF}kuR-2^9ll=)7uPZKG0 zZ_2*}22s-?#_0o zJ4i57{RhPWD}`zhULB?)(2=jdwfttp4C2Qorfm&LSJ z%Qk5P?at{B%B%0&UB&5Xegi(bbgu{;i&07lpC`{D-QkVfNUPpq`YHxx4q_E~A{>>! zI(dK4q=;Iq(1(V&`2N|JDU#73aiFv~WEj%$;S6?BbKswkQKtNuVrM_kv}@Lp(cUzC zJ7me5q0YHF`vLB!dNE7`c{mY3gXL&O;nEc%B2|s+!yk<1IXBrY!V1#hJ-?=M}sXe~NgtDhD3a6-tV;Q6ncWwv|(U}6pb0Y{FqCF~z<`&$q z8DS_8bC-N5uX2ZJ+$R%!=l2a44&0(b2Jaq+xHMzRV}*8o2CiP{q7J-b&;ux4R)@$! zP^UCS1j1?<>7xB(nnUo917-^tVBo7em8exQM5%zb{D*U9mD_CuJ~{fWyOo#@C8weG zc+eKstf(3|w4@*=Wvg-!8zsIc1KbLl6p_-~w<2GQxYIxj$>gRWMU}XQVA%_I$JSs){pZ%xpGTV zi+$!a+sp4H*|utAe6?vs5*YHu)Qy3o4MggWRqPj*n@m#%hBQ^BaG72~Nxz0 zYd@WS_ooyQBVpAUh_8B}Pwi8vHe|X2#M!k~yl*)eMH%_NH~EBi&qy&*IXg%<(7Rq_ zw1T2}Lb74R=yEocrYI3UfXgOM<`#B64jm~1r{UnwV^83f-ab5c!|etTS7g%)6k4yP z>G4pBGfJ#6r@c*i>EynV86}yO;d<`PcTeI4q3SC(OIeS_Cw9rW$(JPLHQ@^a@GreG z1%?w!l##@FnW_8N>KT-s&XJv5VJIz;IY*^R&eQL^3`4a89?EHBw9(a$-)DBnn4RjD+n9FwuEzH=z#pT8?!NJ%E z4wHh6Bt`*6(VNCeuDQ#jiHaTZr!2=)`$l;8PDYG(Yu6S(K*|yuh$l5xv~1aJAf#Ce zyqz1LQ*93*Cr|rb_ZEqYOJQa3Dudf0(6J;G0+|HY+-0SOqPJxDUK3$+? zHATlGYF^lDa)^-aX$B9i64&RI;P3V`$<1AStJw{B-_ag^J z?&&UIbYCHF9AJ%f?C@3N>Qz+VA9{7`%D89oP-(1Gx1e#T*r)Rl>^1Sg-f(i;;H@Q)4aKJg;2*?(^_QQWV?k9z49VHBOR02X(BH^8$a= zZgsESfeA^uKA`+{f;3V9?5hZxsqz}J)P9cn=weL?L9LieVIJiMpNAvg48pj{I*Dn# zfI+`&nu(qvG46MkE%&-VGLl$B@UTtR?kL8Hfdxvxxysbn?S{RiY>)Cn1)6%07+{MZwj9?nN&sDI)w$-HOggfNu0q zKILN`mMX+{RYE^x2BCO@Qs3N^-$sl(?V4-Fp-=2Fpd#`CC43m`Z))qyeKdz%BH1Hx z=3`&s-c}?EK8ev<%*hw9N8n=tu|PrXjDq7KYy%OFIorI90vJ1lz-e9byz zOYMMGuH67i4(Uv;grxuFF3r+PGIF0Y-^n?2tZ1LN?TD75aU@F^Mu2WIT|Cqw-KcFq z$w0AB;3wbB$tp;pqHl_owVOi4NDB@%{AHLd)jx$KBBd>hSdFN<|18saT$;G)7 z?{wogVvR0~g`rdOkI~oazgU=tbD!J~UvR>dQ{PaGDH|aCiXs|}Gm5UKx(E`w4RM+e zjh`_-XZC1U^q7xRg-@2!nf>kXOPKO{jI*LeiZX*xgR zwX~P)ePf;Bw9fDjGtj37q}F|Sqvy(mH3)OlN}DFcZsVjm=QYJiJ0O=i45!2WorQ5l za=O$Ovp^1_BglTgCsh@PE=F59HFYpVyaDzgnfKRsviL%^QRKJD{PkuL0)l#MM1-B4v?#QlzS}o4|PjCGsAk#3CH6L^_vi)+pmDD3`K^;s$JF;XY zXE6*74v!>6z`YiZXGh+jPn|xARcHm%Aeo=axQ`?4`%2oE#Wg?mdDTI>$GK@bx1Qi# z2)(-&Z3#n;$)ZT_0G9Pipqy#-LH{=o;m?7cs8IJYi(9OL+sC~YcDsNMeA@K0;8M1x zEP^V5CtIF<$FF2N8QQK^KQmVT6`z#@xk{9)DUeG<+CChj8G(KEne5`*4ywIlFuM@g zWZl79S*e}eZ2S%+;A#s8A?g$tc1<;O^om9WFp;~f-BRg&rAI5n&3@05$`9rU8$Hdf z`LRV;%VI`K2371g7HzpnVfomqjOv3BdbrP$5yRj{ABMk0({IZxzSB9N2Uj(C5q<*R z(*O8ur6niTXp&tT7u!9f8$W=6XOQ~ildKC%+=25pFp6zpR2U$L-2DwKNKy3F)X09n zQIi$!fO|fU2{?b$uwoyky~>yD54Dfduxx#(egph%_baLA)f*_Qov};jf#8dm33ZuT zPjQk@+3nlbqKuCw?82as!218^B3W`n1asSCU;<=eq6$33WdbkyCz}Z<8IByK%UvI@ zr3|gfx}EPPjZ7oE%jGl(>@ccQzo7k4%qgfV_eduJh)yQyPw~^4j(#|{BQBXf40Kj< zhPzk`b#=8+9$$TjQ&)<3{mgH%#22BkcvD{7t_Q`Eu~rwsTPNS!9@6y(A1a$&VhVx* zJ1sZpI-YNMeMSAh!1_!g28`en(^@Gc6c-?5@#O9DYCg-C{-_33a}~4{2abgkZ)nIT z2&?igBF;9TtE*V7=m=ZD zxpF^s5RE+W6CXaOEykn?A~g{G|R;kGJ*1ezF|LjB@jM?{m}U{p77pX$0)y zUOb}X){rgg)W%~|6tiyRd9^R7;aD4nanFwY3K6S7(B{;>rzLxRnms3SD17dP*Gi>d zYY9RIHi2?tfp<_k$IA=|Um7WZILsQgHtVkzi7kjbA@ra$iIDwxqa;NfUluAZwlXxh z%lO0=?YAPvK^V*Wu)Np>i^*-fTg;!ho@Tv=Q+GE_)`5aub;mg)1GS+i-WE)u+m}li zA@oZawh`5ICK&bLQzB#{UHpzq%(yCD49;?e!p43VO(6GiJI6Y3KoO`d&q`7%p*GEW z32NcG7?4Lt5C9#{SuEBSVaHxPd(?*5$cDytmn$OW%SvkRbTM>S zH%Xqj#=v7ww9VP7mZFmlT}8194Xk|ej3NmigVJ&COINI(;ZGz-^Yhh(w@6j`;c4P0 z-VDDj9S)FZ4@*B2Hm%sjs9CX&A0B=m(oZ8PJ3lFUncB+5=ITw#i)Db{_z z9MDv1uUeIIB+&mdXGetHPn2;}{Ku6fJ1rj(q$<9RV2YlU&KE*}^^|JxW^@4 zh|PR!&S%AU1SJpHEC3vLM71a_Bp5DX*So$5!^G&H@9@1SgRcdHz9a)CtA=Ud}@b?n48_9f;UUoVdpQZ zc+kUb)66R98PHOA?Nx>tthob*Uj3&mXos>vm=ORP0&bWzQt1A%ol-bf1a{IyHPGqJ z%tdRJZf><3F}(g0%4U3-x^}hwdk%Rj`(Ub8RvTc^+G8_k8YqPnuk$&=1NkVJalR8& zN)YY*ncC{On2|^56hYRM$oi9}Gx&+Tv@jB{9m#~H0R$*ugT)h&)woev}6E&FH^$iG3MRbwa6-W6k8&u z^?dh8OY@lP_f0mMiCIPBKXuD=mZW-bC$3^3G}BPrb&Db7?M+12I>n><{n8ImdWx3b zsDv4044HL$*OyA*((R?j0b?D+Io`XM%Q9RFj(X#G;JJn#;n7r=0a@>pECbHT1nC_vC6E+r& zKIb(t5`hiP#oHWRZf^z(pfjW>Ndosf$Oy25)n=qpaJ4Z{y=PS#LJkOlHa*=&c_?l=>(wK4W>7{ZEy*8O8rOf3Vi8-Wo!J^Vx>Do;+n z|97R>6F-j&cw;_ka^>5x9+CEKb#nuby>;T5{|b*fXl+<844%~Fl-=v}Lj1bB2?Ti6 z?M^1c6;6xXK=M@lskSF$4n=Yx-Z(rWzvzUAnn`c)Q}Y4HQQKUoKwcRn;EfzI0!y=i zBJ}%Ai7QxVe&_y+Xpj=P22}pmD@)chd7)-A(NUtn<_*!>Wb(`rBbLDhfqvHtP6>yl>`UWm`8bKf2h4>H_i=nL#N z5`x%|leksPeJQkv#xtgqwvbqJk+i83wGK@YT!m=B& z1hpM#{UHFdR&M%!0}mN;6gwJrk*b|ba|uygvXXO@*Rat@l|;hh>f<0b9BXClmK z+)c5ucY9j_%R#}y+3ei$n1>74{nl!PSU?M_|Bj1vd^I=-q`jV$iecyOY&>BzzhcbT z2hs$RRaJ2~Z3wbPCbZ*qw{S-~asQjN8)a=cQteslzr2s}X zNko;~ogz!Zz*xSamgt`!Hh&;o?V)+wSbnnEx#dMN0-|a&{;{Z?1?$V~Y6QtFk{FLt zF>)ur+7avn0=Q*_muxLJfeh0pAL;n2w3R&bfgR>W4nv*?-i3NoRGCa~n1P<$R?N%* ztB{^oa+t$6Gj&Ph)!V9ZS@LY|b zl3V`WJL8a=Pn%o$!;b`;Cb9zHPhP8WPwNyq(%t*4T0Mi|gTr0#Z`x8JH36^2!)CB2 zCt|vf#ZA!}mfT%Dxt*zGhLSiA`ZjZBjxh&felsMGPys&i-4aA6n|jAFRd1mBDaAq7 zxYII8yOZo@1zT17@E~p+oXGH^w~^|2Jce^@4Q2TDWr|F?=>v@vEK*HdzgBqVFPKZGLB|ZU z_5QHoNhDfR2My38^OezR3i)~dF4K;Zo{v3}(as!1*EreEsoU}Ztz-H&k_f}1dc)Br zog2AAf1L@85z=PDs3o|(P;>_eORt-pU!pT0o63#9G~IIar;ZGdU<;aCd8b?p|6H zXq>WhY`aw5YsmbRMDpIaIDvkk0${4zEQP9 z-2bcLWk589m#C*Oy@0{(^Nw>T_;(OpBPQ)1|GCm+dkFCKc;>R76DXP$x$_7KjXC;H zDZ<6hu1u6IgU(bl-Wg-74DsF%|DCA*DG#K7^G)uHTWD8>lcWa^vUC+)6*~_>*Nt2X z-%+i0kWtYQ>7gv*93rvVr+Iu@q)&DBm5;ICXY~H0lRg~$2>15r9Ov^Z(nUw+q8<*h z4cv*cS|u;*CE5C6w^2)eIH>|OC!&^jeTw*QV#iSzOWmx=ve(iJ_QN!HZ)<8)Pa4!q zSDipP36{XwR`K%gq7YnQc%2lc_=v;)x=gl9<%e)g5GvF9P?-RDxk2xNui4R8;NnVR z8zXb{DRF{Rpoq8$iRL44$$*}Wv)tjl!>P|`WDGW2M?OgSNCY_=eM}V5~Ai>md;azA- z^%>E0xbUz%mX9igw%|u{6##91F0*#*D-Np9j4N&{Q+41}(E^kZ6z*6Ad#Z(_W!VY; z_3w(`GVews?DO?`ec?6t?_}n9K^QMBrxkJ6co74wm)kBH`YO?8U-6bJRA6J0$kZG z1PMvJ8NZP47OjPs#U1taW)8xslif62Z^y;zdnYOHV$S}HRSbTEo}(0RJvg%b^qHxj zSQ=eH2xS@__!Vh?aGl|jVi^+E3ojtnB&V-Y)K9sUvB0SU`4Uo-(7ch}PzkCW3W!Xg zW;~EyLup3I3lzh(l9}J=7MtjOD9A(V;9i+Wqq#7sQ$zbqn1zOaj9O+?Qa6w+B(yKD zKT4R1kkWIaK&cFO#7^-&c46|-o+c*txv?pXG*zEu$~DnjGcphe61hq;UN+t$BY_}| zlOycmSgeCChj5X*1gm{b%O;fe=N(>r z52V3gC3!W2HSOlsCYm;;yN;O#(4Xfh*d#Z&IZL>NIW3-~Qd*Op&5W6t7iPT9kkEx6 zRBMLo6==}u@i8Me6Dg$WsHQltBb4OoBO*jPSz-Ad`ro*)~xzujJc-G&cn25lB67j|-djtrV)D`S9t0xa!HQK4{Ab^cC5rpML9 z8;WfZVw|%BXNp9w0FVK;rSA8CsI2^Irm45Qet8kEOPVB_$Mdl0BtX^C>juAMqx&a}v&E^*B69R5#Tg6~80*lf6G-b5V;F=yU z5>`AIH}?f9 z6tafcY=s*cVVO&eW>ksBJS2rKjd1gWbaz6C1qew!i3u0 zS4g_1Qrk=0x76!wx7h}T|Ay>J{5}gZ&iBBr!n@ zZ;>`afe1qq(Qn+>c zUV&Rm7^y(HNqxAOVbQ>yvy(E{0K>T|AP@8Luh>4O*1*>Un5c-N%asz$oHbRJ)*y3#KcW%x~*&oYT0`{r@6)F8%m;vZz+mWj_L z{O1jz67`xuuo4pkOyJLN5wZA`Jdm*;XrUSzO4nWoCd96CK2Nfztxvz0AC1(A8t(4a z4+PYztG@1?Tx|jUx_#FAPq`Ho`e>^tA=T^Czwkl@aCCDJj=L48Js|_UybI6`=w|(N zkhVI%{=I}z0qlvC_BT-b2HB=*PoHgLE`x9!IVUUJGs6*!I$6Q)bk({YGp@xs>dozQ z9>YV_B_KcRCGC0PH+gVV0HcWIPW(2F`Qo5rt^-ulJ$}=g>h)i|9a>xmgbQq6P9qjS zMe^p<>j6_RtR3UsqI>cYl7En`i>4qv;>skA4jY=g z2xC6MIpYM7tMjyi?RIr*cXVk{yzn^*kbGsyG}nkS`;3Dt9oVAc_lzD|6x+XPk0)5Z z9~>ap&fb-3<-QgM=8hT_p_07CIC585i$6mpaU@}4E`wgW5@ijBx#8STcU+mM-lDmSH=G|A5hx))J=Ctlv$`mekXD}pbuFj zuK7cxfjwi#u}3C@SO4dQj$wWFf9D~Hrc`@A&2-A&$zC6m6T6ea)(W`d7N+n&*dcAo zR@DF1jFYLsY6idg+4@q;uH}pZ8uRW&+t5cLp~!STckxSPI~9eL$QnN1cr4jEVH``c zY7&eeQk;RZm>QDtO0x|{d_L) zPl93$l)cJFRBs2BlOO#TQWzTn{RZcALSs~NZYpBBQ;Xg6{HD2))WJN3wlk+pR^#ma z&R}>!9T8!Pa@8?c)#_2`!qOq|bMHjYf~ek}$NdWA8VuH8+~Z8&>?F(nU+Pw`;W=ai_+0^h``@1mz z0m4rUV*^_PgI(G67t9hg0MD)#8d3p0UWbKxm^~S3mScorIWVXFzE9YkY~@Y z_{)g|)0dBMxlrkEYFpG%z`Xvx^e>&4Bw;l8psIlBWbg}Lk~du4blqSNf13a(uODm^ zVGQ2y66SR4$@)f6v$Tol>8!WX2dpPosa;CC?qUxV5KxciHd!7`U3qDULsOJ2)GFYM zmJ&FQ^d^i|5(^3bje^g|hjxy}lO^eIfP8l|;l^VC)M)&ibZfXLs!kL!FEybyWe1~X zoPabC_%0Z*bpM$&4R>s0vP*)wZ^ci*pUD)vc0~2V>rCM~vdTfF%yi}au!n4l1Sc(v z8NAIG|A}j*LAKz5{zA2b4X|fKMWY2`-MBj|k>qPz<#Td(X247paOub}8k7Ld)*{Ia z!R^d(!|01{55!{F+h|hYzb}PxNNHSye&q5l?Wg0CHdu}~QBFw(B++RM6F7@g@KvAc z-!PO*Jfzll(M&~+*MGi2DEv4dB63-Lq_>){LNvUfwgi;l$94BZ1x9&HSuy@l{DGt~ z$S^wqaU~_#6glxhTLVSe!4-S{Qw2+Y*r|}H2HU?xDpxNM+9!i6r@sc8!wV@v$Qs~F zcnM{laTedvIL#(*e1-fX?=LQb=odY?Rb&xLPZSF#1;l;@PLj^2;r>*!&HOzWP0``h ze%dCCW#pQ_pnll3OyP4ttil67xBH%O{6!bXzMhRu`%lKkU)y;vuX^+aL`)Y-b^aomHj z3o}_$MslI92EmEh?7sOWf4ZqjgFCi$qJIbWXyRoyx1?;ET|nMf|FXayv~y<#Y}(Q;lR9M16D zVVT3A({&q+^m_(86ryt|eh|JHHLw(kSE3P|d7CubYO;|^!=MM(cr8s!D77!`5t40R zFHxnLxn6)hIkcj4)Klh!Evaz~Rh_L=aN@OMz_A*nqc{s#V%f*BWY3vR;EFn+jo zyI{@f-EdN?Es+2EoluOIg9g8ZJ;EPg*qyxL)F^f*Tm>6ClEw949y4)Wm)r2y!d~$E zK@b9lFRvS}?_4tFzgj1@23Ky0hKkm5MCHa)>3RgFo69Tv*Ojlf%`w8GG1o5%cY`b>^RPTX!Lpbi40&?H{n_Sn6$EJJ_31o&mAnzd*hhU|3$YFMVL7gv|dO9N9R$c|0g+4jAokADwoZmT+55wPvaARaP2`@7e!&;UP zC+`noO6(zj5S<`I7$QLgK!$g(=?aMHB+P#D;RILarG@VJb{11dYLHei0qGIpq97f3 z(BN%{uAVfJOW2sJ!jzkyP-yGMaO&gEBPDA!Uk*QhKEf{av0WXm2|30@FsD;svEp~U;N-Cw1g z1g!#&tFF(rd@uS2owG(+|De=KB`n_xN_ne>AP$P6#EJ7t{PO-N<(<2iQve)OJPA()35wE%Rl{ib~iN1G$^ zE5-t%5c>yxD_FJNxo2p<+nt-!OEFf5{W7;5D>^ zu&Hg70S%NiLu1kelzGkvC+Z&8_0$oRAo?WharM48Ds_s6A@lOyR&R#dfS!(*_yb^R zD6Be6iEYXw&^rfnEq;UZNu3E5r2}xTPit+kgfJ4o7Kd z#uM#-vnP%C$tlM!)cbN@?5vts(-RcjvX9n;YTGgb&v@57C0qXr&EA*>7mZOa8&k~x zjg~+Xr_=~7H=)FQWlh5TalVD(ZBy*o*_2`cQ`Dg6Y$gN0p`a;rAnH}qtG z>4X?ZD(nh1R1%P6r{-+@{{5>;llH07>mIRPZf6WItLsO}F|GN12 z4BjtK2^ulCrTF&70zJRh!0}Yh0lC3;_8(r?hQ{QnVc^?F1AdG6CJ^9Q*{;z`{EiCRtk6n`$M2FnX;?K5G=_+W%F#uVOql4YJdP-mD>4f8aN9(O; zSoRCE<$rxxb@<2EW=@J;OfX08h5rAnXk%Z3)Fup3pOjE0@JeVtz*c)4R#1hW271 zxLGqD9?Goo9KF3a*q&7YTw!DB<9S%@P!6+brc`UEwWZgMB%3l2OyQ<}s_9cSAZn%( z@3nIQJ4l{c6|MUW)>h9^i>9xJ8LdLM{=z!MW%(-V!|1{6?#f9{b{NUsfL{(RVHC&I zrJCb^x2M@sfnr*V-zHSv(jBARX}Tc7bpD9DQZw4jir5fwJ`;YUU_bs@NvMxia_uGs zfj2pQX5`N@BeK}*HudgDFC~W3Hs98FC=eLCkDhE|t2bT37CUuqi(n%gVCvu!rd7i7 z-h@mL>Sf>d`%;$nP{?o&JFP5HHxWz*>$HRXF-suX220e@o)@}%dvqqk+drf*ZBHem zj^Xd#=Ez!8G&heQ5DoV2twb|H)S7b1`ze9{E{K)kS$CUeSgUc?Ovw~>1T>67BKP6* zQUW18JtmowaMH-{gxW2t)O)qP$*SY^T0G|XyUvx#6-d&>286()eU95e8-xWTzzxVe&cv|4{U-MfE`| z2cN<{&ZWp;duW2Heg>fzy1XyYq(tau9Nzjaq>YciwFOzZboSCs6aIK^*_M)wuhSD> z1$w55OTX&|J~W7%@;r#$p^NC2B8f^GZ^f9f0XxcTdV^kqhh6tkGd#v@#a-V>Yc<2< zOY#kEnG)gaPdcHC8Cduk5@97e^noS@t3K6DBT3bp9&1_w+o3_lE~XrJ2Syh}!rQX_ z__vAYzKJA@>vku-F}!Elu>SCCzbR1nOO3+N)zaFXFI2m8!Wlub%eE#u7M8IF)QYy;s2)(;cK_%CN zp4@}5#riV^UQXO6SG?y#2YG$(*G-}xH~Vv4xTI?|@KR;q(T>{fm1!V#gSL8S`&tr$ zG3TqmRt9n~mjY+as2=m8{To(1s3Q>(B?!2$n=#7cJHqx%rLOq`zN(~urHhNV#1ud* z1b5n0<3b;84DhdBTQ(HzBjp|@GjhG*R^a1PE(*Xo<}w+vKQX(4fDRUYpwUYW@B?>| zsmv?ShUWtmi%`t=N_oa|#;dX2_o@}uJ_>Y0#(yK}4}A{XX{I#lEIOq*p6vFz#oxsU z;c;N(5@sC+8n|q5=mT;nvb?IbMAOGZN{s%BuSTVo8c5ky*p)b!Uk!7E!x+nYpz+Jw zOG$uuXIY_2?X0QF<0EP2Byqe|UT^=T4D*3H=H;h2Vwo(kW&p?ake^9t}eR`#R zK||w5HvCQPAg5k%3pFhOk-R3INq2^TsQ) zcaKH+Cy%T}y%yUwJ|nUpQKtPI7i+;BL!blPv?OXxRMK78!4xwi!7M#`sb)O*dEEMK zn;qLnP!ru9>iqS~m3WtG>wgz4c z7wu_!@vf`;VB|4vi)Hl)-7O0F+9QI4=v{9iI+NfEm`SteCs4puOly97i7muXS|Oa& zEX1r@P-ZEhEyOEIS-WJD3xV@fU#Wjlb-U&r8Fnm;)nSFHD#G!?F8RSGIIV^PaqRJcBRo z9W5Z!6-KI%p|(ktPAGu5(1+O?epR9!tA~Dy+Vd@`c{S3grqiVKjZ}lymd_Sge;eDt zw)SADkYoMUu_df8CVbQ{^}H;bsy)k564v04%@P{b;dX7Nspq=e@9x}&fod04dd;iY zKDn}t5}ul?%f z3N5*VjD_7-MJ(#bylPk*>B2IFI~x&=ZpNFun3mCRJLMV_@(7baHooAK*zbdM0KqBv z@@a)NHq8)X;5J}S`kOmAG1(ub_C3+*Lz0@v5(7|1!&CJ2MIw$rQ_TWZNqjY8nR;%g z9%|Im`n@MMI6;#Flbc>*=RE+0j$q3=oJRL`Wfzz_X|Af@K|fe^ETh?*>)1g+6x7dQcsBoG zUDmr>baN?dr*FS9f1whONT*}&2XJi3GS15e1l*#z9yQyu3`U8`5Gv0iLC>UfY27UU zhC8jr4Ma+yX1d<@;=5fDMpbFXoGRiDENrx~s=aYU?+(VmzYi>wAe8Us9KPIPyM1zi zv09bk#P!ZtF@**IqPS1hZx{p_T~^lgc43I-PcNQ2_uTpsRft1zD#3ei8%eY2y`S5k z^3Pdxq^`KO2RpFMmeHg{rSxzLoGoQg)^L*^285NP6XJssAMtD#M4;eFJZSlc^`d;m z%V}NtM%EUNgnzvR7T6O9h7b6Pt9ZvJyWC6M@t>s5)tsP?`~2*JXIgpH>*VIeP{%zf zgo3aYe_qRQU_6H$3q4}&4^9LbBk&O}SJ`XRhgV8j{7!1e|Fmh3SZJUgh8L%Z!fcQz zyR(^S3hUbHdGe|j&_ltLje(1yP={j-yiiSU-y8Ya>K#TSA-J`O4QS9@>i-sbdone9 zm_s@l${`KvpL$7^VvyS-fZ;**_ZH4_s^;s>G^q0=1D7 zM@2PbSmB6ZTD)%kc6WqK@NuA>(%U79OWWQ^uke}AlKJ%&GSNa=km6b+lykslw|Pki zx^dYKe$lm(C2^U4@g`#)iRcE-C!+Qv?wG&_;6F3y#7e2+EIUPb(u57e-p7(kB=p zW3fCFyB9iTG|#p;fwxMPN+CVQ0UX4NPGJEFP~R>&sdmb}z#FsVi`RpE{wY?d=*jw% z^`YBsL8CxBdxhy!*pB<>%wTYl$aQ`Je-W}A15A4D$Kux{Pv48w;OaeRIsJgN3P9?t z>)ejii_@8t<8fIda2mUVIMe>Nl8uW;Aw#pDQd^2|6FPad#a9CC!XfQ994tTW`(-tdimO2=t9d}@>Pa(ra7 z!_5n(MB+BS!j;{7|33k28A~?0g1EbiE6O|T*dG7@0Ahba zGHOZ+|1J1aQseU}ue`oTV2lNu$QLPO0O1!x%t0?@AQ$W{!ig=x50fT|#O&G4L~X1I z|3xTP6o>(0RGRH4pE}a?K+A~PBJfa5-HmyKabSWX@as~&xJcu3q`#{{AhTh0qe&1! zR{Xr!dYn?B$Opz$rE=B8or!R=I4=4PH+aY;VML4$@eZ$t}Sf@@U0F2&!QVylhi zld1>A1PU6=pV82LPTW#M_oXQO42)(ggU!otMRsjDTS!mND^N(WIqc?667I@>r*{1p z%3~dSQJg&YW4Pc^^+8YuW16KC_m$P9NoT?WIvH!yAnzrU{fchRBupeW9AZC8N<7p# zl^Qj4Suh1oFQg;*cmNVbnTo?TjFe=7cPcn8fKqaEDSawKTACe}lf;z)4Rpy%v#UIi zn@oO!dKh;#%`GoM$mTdqDgRGh3nkovh**YcbH;XIY_)U#fd1Qa6&ekGhNwbDS5_pZ z_U#5n(s0Gpm-Hz-9-61r6B>WdVL7P`)rB8({Q8axj3J-?y!2pUsI>`n!L1ejR`?w@ zwLn(3h5LL}n?tnd6KyDgALEuk^l0lj^ebR38GKjtV@<2@S-_k_im&c`;1ac1ummtQ zSEg*wLKAQNZO`90FXw2+pEM)>9oHaqS6Ml$kv|$K z?U?cBMeM?W3zD}9G7}~tiw^B-Tpian|Hu0Un_=HH(-vRNQdziBeoEcRqB2&4KB$1M z!BYtNX&NtUcSsJvM6(y|lreePr{3O6Q+HhaGKvm<`7Z8JluUUHNnO5G-8x36a{ z!;^;wAx2hS{sM@T;O#AJ}A6p}z z@z2<;k_;M2!alhi!C7U&z{pVAGIf~iNb6nHj^7ComcG7!OVaqV?+wKqaJrV`@~lZk z4c9az2dmTWc9`-dQAM@832|sFr@Xy%9XjQ@U;3(eC${9qKvfjxNdLV{7Db3$O1gU z+UG$1{67w$MkXG6m-v${)Hy}b#WxwC&RRs~J9E+5<@jX>w$L(>Mo6rtw|F#}I?*LV znoW_(u(01!a(l-7MJ=%*-7TbdZtKXHyqKgEv@`)vv+r?q+ZkD9e=XEHJ0t>}n|xlI zuCu$vGLf0IK%+fRynsK+)vyu8Tn(3am8Dh5ymLXUA* zD}0kSu4JBYvFueG?sBSvlPe3Po2#^?fRwlyVp_8<$5Rpm$hIv1EUU|T&JoHnFuxkl z{QB17{5*tSu6j0)r2ggg)J+)zJ@OB>9?u#jS_m*t;ejB1NT_5dnj4UWDP1gFX`N^S zbgGeR2N5HA^uRD+fX`|Osm^)SXG1@(RR@9&9pC(g9OQTRFwSB{a8@TH%#r33Bd12h zG68`f#H@{S-halS0_fWB!yJg+K!cRmhtwZP)*au6cREeCT451kPIh?oe)aOZt4^mT z)(HV2XNXN|l}?~I`q94&VFh?Y*Rt3JT(uKVb$H{5uh$awInGJhHQJ<$8~JH29X-yH zTNXp(_Mhj`PIc0v^4urQfl+1Gu}`A&V?HNbPw%9H;&P%X$p zc3@ER_C#yl9;G3E#O>$XXjo+fxYR{i5ks-0dkrq4%rc7# z@+9(aI7*-Og8tWY!H*6{hv_sc^K>87Z0442y;5CPwc z>w%+&5lCU6Q9}bMBSh;uSD#nF3K<2%r4r}gg|}4wfBFrYYkwM#d`|Nr{UV1lao{|1 z8@6WMlb0`AOfUD$8VUCOW3erLFAL_04s_9=#R)fonE))=8@fU^?vgpuVbY;v(QJe^ z85@2Qf0DDjN8ajxCr>5$Bi@R$QY);qfyD7N04}!DPrym2oI)`hQm!a~1y{*o6#Ool zt2iys1f|(89B*M*2tH<<*`mLEaQ0VwI?EQKk2DKxUrbpC zRk0#i;`+Mu@m5LpSq41VXi@2}%ntY3tCv;UzBqGBfRf%1&WVwOD+MfWMWguRT;U)` z>25xP+ytN_nVvw|NAcww_uaVtY0hV;s{(rQnT^xfIe+5Wyo}vAwJFF~-4jzIldF&; zll+>ySSL)bC=En;QEOqr`2t?P#CAzFaQ(MM9nh`xC>@v7zM<-mpUHa7MnJlU-ohS%g#iPW` zN&b(DF2A(&27xuoySfP;JM_n)7NJE)&s*jpuH|#s>QyJMF`enV07std!wnZbrGBDM zBSw*n>rVkN;wd3E$V2UCu>K)<<;d&Zau)ZVn9LoRiTtea^Ec_^6VQPLl<^1}yU0qB zpPn$%xYT@O3omvfzr;bU(u?H7HmTFpDB@bQp2O8fg*MG@J+My-G^+n_7?gpv$zZRO zqbFqm4iz2}-&6dKT5Z~00hK?}6v^#O#FNW6^z%upo5EiobHOv4?ez_CrVJ~64;MOnE>efT&LceCYFnW>H4^%4 zsp(BK@w6la8mAVBoZX15sorXbD@HJ0OcbKYl5bRwy(Ksb%NMsqDkz5l&Vx2o==MY+ zvO-IJfS|TOaNEl0sr!I#G>;^JI3gu_=@k1|WDkiTn;bS`gd=b7A&*(A2|(osz?}}z z4VT5ni6F|1Yc`iBU_nppcR$8k;`hXV9Xd-=ZwW1T7_In>Qq{*AqZlG0g_#OM2a{XPFr>2oeeBTok2$5o;)v^V?MYQQ%AOkw9g=ut}3+-;0JEW%=bP~3z`dp zR``dfmTu_y(KDw zYl%UjN&P<5T)!9=vK&@H)H3Op?oW@AKKeOXsr=u1tT}slWZ3r0&xY((bw}!|7W8@* zXY4o9;wp1I$S_t^T)DU0!ja{T9RK#{Z2y zP<55$%fNlP#{aLwrU9PheJ}xe_`GY`3|pn9alIXDTt08Hz(^n0vJ0L}M+&3r378cJ zy@n_dAuw(Ij|rvHrarn`1F)8L$+vcmd@9@D&k%?+`}OD+Gn1V5i$ zQ&z8XYwHU|re!`N#sPQEIQHeNrSyx@?DbJ|w9c3QM+&ewL{1Ns3XJZ9Wdr^;>wgJy z?6P)fSu@q+oFEtX>QN+Oa5^c=XJz+=2baST8#2F-d6H+ zw->X{Bn->sG3cAw$G06~M1jpe>$1hzHztvu-zyWB9ssr~c`6~HeUb}xb@0J^Qc|fs z^f)^aEZ|1%1SUA`K<>YjmKSMg57rEyuEr@!i9>z3$8^nluRj-g?CKAE7Tq#^_UU_ot*>|L2)g_ za&MhzD1$|_iK2orvuMNiJc%*su>7mKw+Ut zzF<6s(%p|AJ155?QeJk_Zy(n2ePYv&ghBAV)U@F$W$C!k*}R;;x5^uERqpUj=Sm2D z4BD(}R0H>g!;C6UlSe=VSmR2JSmghe5`~AtBt!-N^K}>+@(FIL(nYn}Cq$`>jjT75 z$OS>V+rTHPT*Oyyn+dCW5IU8tuWiG4nR=EbJ^YO#I`?T$8qs<6hYGN7{u!hk=8MX1 zGzDV#V4g|qM+G#u!fG(i2zlc%SrtwJ@#}N<*KY%L-{!y`rO&S3r-pC%AdPevyLXY^ zE7RLrk$lOv;S`iK-l3X4(hQrs89YKU;B0ZDHBL)7d@0Jbd8>zsH?356 zZf$#50a`|ov3~DZqq4)`A#N{1_!zZD-D0QiNKcRfdE_7`3=;&>e7S##Qom?Z&unN9 z@xgJ`c3^?HQfRx{{IgHNfUB?q0Iq~(v|kM@@H4u^g25090KcHkl!3t1Py*bz=k1{) z;vD`l8fbt?9USXB;jSrE5i!Z?44%`wr6JDLZNTiyReNPRLo-j^3Li7*en||yZ!yIL zws1vVF4#Y3^7cSs5-e#w?Sk`sl?FEHyw5d_8)q#)o3O3_idWB4&G1M)?*ApC?*_y0 za+61}f90#rWQz3(CZryryF`}QaT&(dc>Fhu3JEkf^H8GNeZhaFw7m{!edL+Ju!Nz9 z(_^Z7v<0@ySE!@%7PxlA@kW??9Ty0rGT>_Ko2h%{n7-^%)M~~xJBeBV06=_Yz=|L$ zWHw@lw#P%XruIWXC_&O8Py+0AhYpi-HM;*(%BJ>&?MZE{e&3$v(g?3zYuIp16W$C?+> z*`rv9uVz~LW*oUlj$7}fE&lOp zgDX+?y$HVY8ijBdoZ9giLN{$lY-79^1zR5+n5HI0+th(o#WOfkg7GH+7r1B9Ncj7) zVv%ajG_K-8l9cF&e^}G8gDzY-LLVEYrh2|{fgqLA`Uue*d3LY5f6@=?hIjc_oY0!6 zPfhR*Qz-X}sh&Nx)K#pCm#^U=)816lhMyr3I{f;_90nzMh5!Hn01T>h6tScUH{-FO zx&&Nntf9)!!xO)7*Fn}~w*~Uo(`r&eNviKQ@|RK-a(fKo<7@_(nxsXjIHy#hc5C!G zAD-y{ZkI{IW-9&`4bXQeXYFC{lQNQ6rD0hV*32#PxEVVcOwf%&M#9_B*Zw1pZ+Wav zJo+2!;F!ppqoP$s#dt!56mEeZHyg(Jg!4a5H(&tI5|W}6{k%<=$2p+-w7{_8x|pv_ zP(()&A5^sZs6;e=-9Obe8W?BzQL`b?M6nWd7a6GS{{UIL!pIOET|~d$Uz3I(dl?0u z0ILyue-jBYnN&QJiyMG0!Zu{=)~Z@9Mq(qXRH!C@RPkKu!^t}!76#K(`88;i*eVSl z#bP96)g;FCxr-MEl6(Y=%WB?qG#52X&=Ld%>jjRnbXb|JC^VZurZ4JJr*gx@pLQ@- zDByd?diZXsS_1y_|o(M#7sF?8|N?Z-pBkxV}4u#7zx8u<#aMX_^wZK zyd6Mp2`!=)kbZ_`;m-T&83tg2)~~<9%NZd5d-jWKrG9~9mq~vO1c|}t6an%17OMD3 z8iP$0{K)J9&hzbXCB%o$3fzRX)vvgnj1GIS!zWsDO@L}QqRhoFn6A~rd6SSHG>*Tp zHPj8cPv>@)7!jDrtoQtCQ3g&17brBP_X%TAVxQQUm()P_Azp0=n{Ac(; zX#asjbZqP89`3`XAJbVg8%3QESb`!xVu~qqidXKyj7O-3?Z(YjqorF+p@>Z*w{>HF z*D{pDs+oTFsxU{&9BYDi=7_?OM-3P{n{V!plnoNdx)~Q%92Q@p9t}O!IZ&SJ==V_0Y*Xzm3L=P{qJkcwhebsCc z-6oZkU8dq8DH!Z8FoS1qgSJXV4jv@28I`9(qmcV5ThAAbhC8nRB+T_S0ikk2l`}fL zIFZ-@_ja?JOE;>VS)PLk&+Mu%zbIb*IcVy#`RChqrwcl&6dy@Md|*<6li^%xCxE9IsL$WR|ZK@Bgin z=?F2FGMn4?;P(0Paltli`k;#G%j`OXeeCl0>k!=__j90C!FVw0 zWx&DIS2p)69-C@mm7iiCf#cB=9+6f@@@8(Nj@ePp^IgDq!Ce zjkNm-IW9aZIiiFD=*R;vhnpmRKU2&@1p=d@%7(b430xi9G+vtBuuWK!L&5d6B|ci> z9FZR?h;veMU?UqH?avJpugEE(`lPi>s1ot*pU7}$0!`q=&8)|alVIR#V2{q>gCKEL z1wl|e!$K)Py24 zlT>~#SS$EsRLtBV2?>Jf&EUa@C$698TGHJvNC-XcUKgkNUX#k3$U9?!aTh)HjbHKs z;`t6?F;w_fqv+bMluih1aIe+KZ|N(9lmWR9Z!l_dh#m89gX9VhyI<0y!5+d4wD}qG z02=)#im%N2Z-!*_))rIm5h**#_t2|v;9b|(ROQSwkbu;%_-EchtGR7g9cu!DFB<;F zy}9Fy0wf zAQUrj)zsCkt~}%QIZ1E6LdE)iyrbHh&svRwV3V}TIX4Pddex$B{`Ni*DI9}4SKRC{ zr#x0`+SJl01GCre{;2{!m%)*QI>)~KVdWe(#iJLNFR>u?!WY6n#JuP#bB_e!H@e4b znz0w@;;4ATg?JUR10@t{?ErkvfXn~@00000KzslI0000008mpwNlpL&060QPO#|%! z000005CC`p000310swdb000310ysiRO#~WiY|AN4Y{*u6&pM&2I;P?yZ z`|5k-UE&A$v-y4JN%ITzBmNUGA7Abl0bu@7_@;b6eT={ID-|I4k$N-zcK?ij={NI7 zd<#F`+Z2%PZ}<29dA?iyAUxo>Quv6M;RF4izDwSYKj@eC6Z^J)I{j3C%fA!w^q2d| zeY5@~|Iyy+j{(&E5cn+svOmGUB;F(*6t4Tr2{!~r{G(rXzVq*@M`W}C)ZhL0&HI=u zgyH_be#XCVKm1?npYu=o?Eg)w_`~={{V(B)K(Qa*H;_Nv5AIj_r^H40^Zbjygul~I z>oNFC{GlwfbbXmAD?~XhbufD@TV(u~SfY9!KfG4XDI1+9-2SR5!k}+sNXaAooFI~LO)4E; zv9x{JJZz842J#Ng*q;R(o8X=LC9pR@T|a-KFlWy|=TZ#0J`Hx-`#hHY%Lnn5k@nQE z=PlRS3MDJTuN72)EDTr>w{?k;2Pz9S^()o!ZMB>f^JE7SiPUKc-OIjBa;GrI<=rsy zYhxLgIaOGrfex<&5%gx5Du{lgYJisb2rIj}Y118<8;| z&WrOgLNV4Ss`8@~D{bEmH)fF+kUnXJ^=Avw<;*J0z$2Lv763^tAox|9UpOqVV3*yU z_9mV%$qnZZ1T|D{UQ9Z9B|8~06t=lYNviEH>10n<(kU&V%^ew-VKhkl;oi#N z62`HLrtDwQ8cFGFKNDALRK7+cXFKXxl>bd&{zYrrG{jRmoLxsRigaO!9;@9{rW)HD z=_Id=Ws>;58FhOZMcE&Z!#bnOP*1h9K)mdO+746ofVP6-O*CU+To}g$?a1n{$T|=* zoTf_ur#@bDycCCc5O~In$j&WV zHbZZH4|9^e3IDVw~u`vDepVT5B7lIz0aJCpmeMTtYGohKKq zs=10H0~V-N5i=-6wY`qLmC`4>OGQ3T%t`d(Tl6$R!g^`dE&k0RvaxK@|7X~u=@U%S z`2mfw6Jo_@ta2yvNIaK?mYmw%3lc#&Qp4Pp9?#^qb}b}-R`S> zsq3$9eTTSAw6?`TYGf+gidtkU`+vp1QLpY^+8WHMFgoxFMX;lcwph1EQ@Qw(!M+vZ zm5F?Kb%=cnPbsSB$u)NG?Xn%A3cn7^t)( z!1r>e+M`4vTOJduKA5Zjt2C?Xrt5sX3&Bd7<0D(uP1}Bd6NZyACrGlYo3``$B8DLQ zUwI61wJ)gI-y+CR$B939B~b3EwrS=}JK$7W{6Y1#0-8B;hE1K(aTmb!1_l2yGmw+e zeWBANAt&E9d%qgnemceP1M!&3cD)epjA%36=9Y-B=Rc{q#V9;`kD?}yretO#7rM_8Ok^+Iq; zQklqr@{lvB$J;P9r?#b@I4J}wNf0O^``|@S*uK@x$-a=Je3N> z7E>Vuh*&4;=Y3ReF;HKlp}#D}u=yWD@8FRuU}s*K!if{Z#B+KchGeF<>Jl5D%yH<3r~;LI;~t!8&?7xTY3Y*%Kr0O zccdB;KVV(H>Igcgkj{}*ojN%sf9ATmBd61T zgfOL_NM0QhJiMZkEjO}W9sWc6{tvle84rFzfcsbNBKYHHe471*zEUS9qLgJAl@Q9i zRfAhd8fKpxYV%z!Y~a)1YxhWeot{*j=YfWdsS~5u(z9yIWZUb{QAJ=_ryT~ue*fX< zzmknJ7;V{rVKstKz(b_X18uv@EXe5+cR>erCA#NF-8!S@X5w>ygSZ?cD*} z-{tT z&y~dNkF-^(4FSwT`f@?#jj})GGkO1X%zF8+0*)=}e+L(Ex-46- zf4SB4oYu?#U$FSUk^28T|1W9(|CScc0iYki&n+`Gva4wb7G$FT$}@ZB!*gH9^TOtz zsy{SOQIs?!OnE(=LoT)IFrrWd)O^jZHjg zynxlc&CT_LW{CK;LShRWF@Kre&k9VCxG0v8&T~4;NFPn-YaXU&ocSuXU4t+}i6#Ig z94fh(XqYqCUp`+#cf!Lu3nsGMECDpU`+XJTHdLi#J z+adFCVi?(=5qO3V-N=DWY6ItZh4PL9)_E}D|4n| z_M|*Z{yDiPI5ScGDG$<0XdBUNVFP=oZ(HCLzyw%{Ft0Wv(NTGE!z#VS;X!a-(a z@yqOAKlS}rNa$&lWo5=(m6rfS{Q>6bqwzJ zxtZB#WgQC*yKwQ0HJ9j-`0Z0uM9di4Lm$v&rg?pg;RVgCqY>Jmp}W^1IXq-qz=n$T zBI7YkTI%d;(@T~2OROB{hKAN`iDbM*!vdm42E=<*_l>;Yim`BaIQ_k1DFQFc_^1K| z125G#JjaGIl^R2g5f@Ttgsna{nL`v7*K~GYw5sTFK+HC=D-=5m*+HO>6|3(YfwUFz zO*RHvX=vswT0(w01OGOC%`kx+Q9EX0zv#o{q_?O+5e6F(o>{3`KSuJvd5V;-zTSeG zevZ3AVD5ou3Zl=lMU4z=;EXk6Nk_c4uzKzywejr60e#3-3@K4pPA7KR2sD$%P7o>w z52Fwk*%pitnT0OWg{b@M=qqBKS=@W_rDwG3v`V(KD=x}q@sBK-Zk7;Fiaz`t$S7SC zF~OTpg5u&k)_)4UYlErbuVI~ybe$g=a)zu2S8uX8Dq_AoHcaR&ORYS?uZEo)5TvWj zPRXTR_9~%)V^H`nE+J`m%%6Ys(X~DidZz z=G@&EVhH92G>&G)169_Oh*%>dS8YP*I3#v41d(L$;eq44b+g1m^}=#yQ+J-(K`Dbl z#2jKszrD9y)-odR=7~fVwZG!$eP4osa!o#UW}ltM6_6ZIq@Qger)L)ofND@C8EZT4 zHQJX=A7EY0g92k!I)1pBRu|v>^_pFZUZ!KEfg)UT{_CBK=?FnZ0bIqa=cdnbdXW%= zeePbVkY04z4%7|DI#VHXL2`U&QWG7uyAkv4K4{*3f)g-Fb3Z60Fs?SMt1BLjxYrQ^ zhNUH5IBpntN&v*~lncRHb5C*NYSvf9iY(5AA_hwl`R70$e{bLsU4O>qV9x8)^lw5* ze*lPrk*EesTdd8Rv?Lyn`j5w~66>6ol~1J^QDB{}K64m&e_33unyP9hglA39ho;z`+WEw0Pb8TSInQG7zb4Wf8Z;Ndb-!2y+A_h zUwjBL_mvy%hF;;S)m{+rp4h9{g|eW#Tq0=9YdM1F!*913~v5G;VbP(E8Kd58_Z^BU{&TMUqO< zGLLRPzAZ5s`w|3WO)=|bV_>wXh)3L>;w|ToWPpm$#<0>Zi3tsgI5G&HEN z)A6ZiNuiyPJp-H{Bx`f!`|ZZhHmhqt)+(PS{YGFiSX05xVQT*Tv3a@b4o4|*mDPv) zK8`&vL$)nDqLeX5%S)7wDqA10fR=+(Di=-TWR15$scgt8GOjt=$>QplcU0;_{bX}7 zTYI$h!@}5PGc(%qnz0=Z^R6QG?Vea1u3L=~tYoFpCEMcadyKvOLFsc`R69Z*MYX!m z?=mabt8U}MMVWM;@gv_2X&=_L975jG0ZTKMz)2_u3R1a<{9=&o$w%HK&vX$m_y?QEBWoFtJZMTt3*_eTQ#GZ0GyuL z7u$s!XSv&pGbk{njFL%C3fOEOaTP8m>D(_HzsEj^(~?$XYT_B6*wAH~-oGq^}^I>S@QV^HX9UgHy0aaz*6JZN5I$@L z?jLr=Sp+Bmc$u;(B>K1L9TSK+1qkwipRapy^V5*yd#9N zSi$%S5_zno!gPP+3jI4WEpz-kbNDTp??}`Hcs)yEgH-={e2?8vmqDaagxk30VV9)`oF?%9kHMrSr zJN=|9_)TirZL0+e{T~6t1FMp?SM%_aibu;5+cgy7G?MLzQilw_xrtX?>HPXID-=^A z7-n%&?p;-#v2a`&Q3F>sQ^8K>dHRodUy45?U+`+_wa~O%m0(C$d}++TIIbycmA37I z-JsPwxT|gU(MOitW-PVgc+pk*anyBhWW~$oB%U7^G^Her?+^Ao(E+obyn1I#{iME* z30gQtP=?M<1Y4`3!2(fWgcVMKU>XV>GqbuOeKXmDqHHr-`G-jMhI{;fuI_`<5P2 zGsOQ2<_^mRiY9%3sL~)O?4;8X&DsB+*3hcrb(hr)M)vd{my&E&96q?m2-Qgn7DDcl zDEuLGKYqXc(qOit8V}KRrIgHw!*>sG*VRc_7LT+hN`vrj#jmqTl&f2?!*GE7&<;-g z356JIqR%_0V6ZhocSfu{tLCvMMCB5qle@<0aK(sG4lt=jNa_9@1Kqf8%3TrDj$es9 zwWEuuQ)DKLmXIwreZta%3&iz^f+fVS_Ooh|KJVkDy@RwR&zOI+K1}S&tqdf;de?)l zdFVWR3BKP*00y+1fF+DzssDm$gEQr@x9vnV7_?vciR2gNPZIgoBRcja$LP3f&M(Zd z@IX2LDm4=?ha{Yx1tYBHz9RI8>!0o_2Nc4G;)I>K+HBu66r6Jgp!X&@9Ekv_U}Bjb z+r&Ub8Ze4V7?PXLI2*Au`Ck3DZ14?tIms)B=m1FtRC}|Gx}h!($3?#&Q@1>uPw&<$ zcwuEzncw?>539uwG=3ziOmE=yrt_l*(yKCGrZYLmS4to2|J1GpGd1cuCdf@7ylN93 z$1?Vvvk$%=NZ-nw^pD*2*|FxKq|j7mqYAvA9yaT8Nq#oVbFC^d53*w>3z{r~E}vY9 zWS*3sP}O3Q;6P;#yrnbW8qNs)g$eW`EGk*M@8vu-JA|({jgNSB_pcZ;niaysz^yxV z^!x78nuF$=}dO;!E?6`4IOzO`;gLl{!?kXLVv^MDWl|%h;$;rw{I{eA+d&V9rY3+y5ncB^pxvln z0fvb1#r-5>^4h5n;puFcT0gfZJ-zUncJzzW=Wled~>&T zG1+#tmQTeYiL`V;=3UF72-IQ%TtIF5kmFfU<9zpAS zYQs?ujO}ws^5iZ^AbfY#>B|~5Nf75oO@?#zGG~xM#jG_6jtsF!S*CAOy9C~npk@z+ z5$;)f+O;D|^B(q7l$$fhjnxVIn_@TFDp+?fe)xKpYxfFCiu`d4fN=D+HCd>}gCq7@Y@Dq99ru%xt9$e^^x`y!2#b<8yl zx|cEcvOKV>$aFRHV9*p)&=nnj;p(UAC-TX@RmC$tGpd+9q;i&(B2NKcJIMmQ7qNjj zzaa285_*Li0#3Q=1yo2l6Z9nLmO1D-9fJJ9rMsNAJ&)7dy+8}d5#?^HE&20R|2Ep= zW#4LO9Hz`E5^8}zhIg>46(Fk;$^vPpQ8NW{Jw<}Kn<5^(2WY8E&CtX%>akD88FKh0 zu}~Kd`rOQ^t6rH*sB>%q-|13)MuRL*N=oz~8AIWnVI|MR59>3yK1IKn84GaL_fFl^ zqIS>P+#rCExkt}tl;`;R1C3v&Tbml%CD@nMtDMWTMI;w!Cdnt1H)U;_W4+YhjaGik2rY6(V=KXkmA2!6k+DTI_Jxc)ceF2T#>Kpeka-JQ zhyeX-0ZTvMoO7N{v@)jP@-heH|TS!%@CPv$$s*cv_`=djTvB)p`{!H z*?BZfsXpi5yBjRd_ze%Sq?17UZyU(9D-h{KkSoQ$xM=&=hQ42V>h!7#Zrbtt-ns{} zsqk69zS@bNActPWaRPtBl#CFIIfKPjVAptxg(Y33R3{;bCROH|zo_t!j0d;}H?|Sb zAc2ViRg%AUD>bV$q09V>$@I#*`)o(?f)ST0+)rAo$+j2O6ltuwQU0l>Q4=mYl4rYG zqp`o|=LEH-&o~a3JMW-sTP5mK=T#;@3P-nLvrk~jW{KcW&6VCbBh9@XvKmH3GWx@% zb?K&14SQmw{zMG<8)_NV78~j&pIQy(ro3@GND#6$@4Re~Y{lG>)LS=wIpc}9K_RNs z2?~`>TzwYgWnD=!DLmfDc<ZlnAk{YPfkIUSJUawbNCT5aDG_KZ)2<1O5WNlWj5A>OowKyH--W^ z8IclfgpaMmJDvDWO$JFHqAWIoKvXwoXz*($2$_2of_nIJfigV7p!#0bVNws|O$E9* zf9B>w&<@QGwsK6O&5Oyb1>)xm4*uY_+=@Km6>Io;r$GcJFprso&ti$PF|%_Q~^K#CWb1LVwuW2fO5XO;Z3&^$!{N23aJff?qe=1>`A~B5)xJa$g;6~}jta=={Ga-AH^+mC> z^d7)8=GuAbG?DEedGzF#)$A*ynUJ8@0JFYYf+t?jZWuIud)cJ1+0E@(iJ9uCtf~lnxg*mV z8KOb(kw>8u@HfvNfR{MfeLG@BKMGX$p9JDRi5^{a#pu~3Cc9yuZ-lpDTQVTC;xcOq z&vSuJ57a0il{y{RO%Ufsv^@wO0UUZ z1)QVRAC~dy;mZ5Vat4CydsT;t-;uWDX+vE$so!R@5aqzZaw43=cC`h!e);_l`9Ps% zr4w(6b=V#K`}A8t);e}4i3&Z>D{=}{A8CN5XAwJOa<+vK(&WbZsGGtt2t!uw_m|tk zsluK$Ut!zLo@@{)R-YUT$x-bvGocs&;@?32{ z1;%&?H0+dDscH}>Mv0K7gzEvp2wws78A`VnY?Hsb>@HIWQx%_q@fg1SnK!B&JyfB$ zyaNZ2C8H6S5_+R7Y*k%~{fi!z%2Tp$fuZnXwT(l4+l#8r7n#`9ffUcE&Rs8^LeA0C6UzQ&8`&2IoCYCEP2K8wbq5Y2?EUKzoVJ?i8AvmM zoO34KeQMexVGQEI2wi1cdTdb$Nh1LZsKCCzK*<)kYq)23{rc6B{d!sO1;)`|h#Pu% zn2aj978AkpJI55JnJ*Pxdu43 z86e^Qz)jKIE@n-=W@14Uhdx4s0V50`F2f*SG{1b%`aD3@MO3k6M|>;G_dbE1&mqhx zHpNgy?N-PCLF4ZBnTFQ%5K3_WrV=84ATT--O5s^$cn=WzX+&|Dr2Epi!p{_fym|tn z_{9~8I;p%kV9SO{qzIdYivdo-$OGCH{nc{>j3(Ash zMG=i3v*@#%Fp=AN_OVYB$h@olgxR$8@^_Cuoa_rFsdpiuV*TI8W)C zFCDTAQvz1X`cB$3z^hOZ(tASq?@xyn6n~3AbLqLXyb0|i7`tAVk&S1ou9->4dNrO{ z2bKf-?)UomQ)H)WT{``KF=)fbH)mtOX26)(B7p_Zd|?s4=`fnW)N!3_xpSiI>l>TT zHFE0?u-o2bhOTi~=oP8XVaB!=K4YjSr z4nqCD{3~|9vYoa*9a0xuHBtrQ_hb_CJ2-67HJq7iGwJN%6^ongyoCN&Fp%fbi%Yci zF|YAU-*jRT%LmjKJGLVJEc~D=4lNkcgJ&{zZ@_a1T^1#QtbNB&mx_Mp&7v8%UX9X- z?iuLggF+}A;O6-o)k&kDxh5%2$Fx~t{?LNz+c#+AXB3Y8h=jzU(ib|n+`EV?39t<42|8eZpCN|bkbkR{A6ob2#gZ*PAPZ*lRcL#$r1r#A`LEK@s5*Iv6Y1GtsD zZ$8TiQyE$i9qyFUI-Yd?;FCs+ksr)yDWpmgflw3)uM%?Reh!XdY4>t1Q7K@-sVYAGBljs$ z(`hzac?A|;XJ5th|U;i;|zQmrcWI)%v?-OHlR3hdS71deUWNzDal`1(bg!CnOlnH6m7j_g$Tp1EFalUvA? zLwjsy1BKDJlcJSjmEScTXx zR98>iQPU1BE7y`CZp2%cr_xZX!L|M8*3rbE%Y9O{Kw72IWKjRfGEe zf!=f#EL|_PbIVTq&aHI?x)oSu;pm@50^Qm;>H!He+4@@>GG`!1IWWH&<`Jkdf zsXevUhhAk_TM$z`t%*hwkq1Z$ZDSNcD9PgGFtDovAP`bDZ(t(0fKt~0((b1LZjAQ_ z@uFJ_C8Uf-F`?Oee>{~GIVXKgy;MA{Uh@!V-i6?^x%rT#oo~qx`&v?SnK@T#R91Lw zo4cXqLL`C!nV>J%mcs)S2oxLyVe)p1@7v*k;6}}r1gM*DMj?@Jb@|IW!Mv7@ z-ZhD@jW`*Q1OYPh`gFbd*br>+g3xHxEa|3JIyx4{m;O!23r$D>#d2@4XU9zHmZd4U z7Ve7B)?@3o>s+fep9~rL;GN?OS_dpWBiIa(1rQaPe1zp9Q$ctcb-}SU5G=15(L|S^ zIM~-*<048%g5!=XROH?Bdm-zF0USJ1QdH zA`SZsgILgRwT(7Y0*~9Lhv&k8BOCJs$=nkiSZ|0i1;t;AxIG)iQ9{>p(gz%=TcXc9 zIwf!OscKfkVm5-emi2mL+(C_{rN#*wZN=1_N}_J z3#HihGAY4g!G5|`T6>mnT)CnJl#4a{xMR`Ye`QK`L^Dbb6;C%*dL3>`l5{MMZjr?{ z-lK9tiV$f>AXO?&uCfiA)=YYR7BSvm_)$j662gl}M2yt6?sMeH#|`2VQCn>UKlG!e z2I-|gmaME6v&;xzc@pm+3{5Q?3MhUt`YXTb?!zpjO`4}a{x+i- zQnnTM8A*3A+^5fom+HbQTi#^@Jwv;>s^t|~P?K_41U^OH35)>9#nVKkH|I}p8Zd^R zhP@%hf+_Eg^JZ-efV#R?o<(diQDly7DLnOHEAnfF6|8{Pa2iMW zkqhhM8V)CVcNKgcA4M=Ah>EfP9f+Yl@h*Y<%tIhR*EXbh4yB-QGb()6l`Z;KrPBL6I@0kid-zQ%0DCR`XWH7G?A)Q)U#>Lra}=+9SVztT>D7& z?d`~*RS}U@2|%@W(&gq%Q)MbM&@s8x8b}#RQ=QqJUp#+bGSp5(w7;5Bc-QqjI>V#X zUl|OS%JWpN6tv#m0D~;h{FU2%7s?K0ucI-aHEU^=mi8%&v6RKcCmzN4RiM+G_#&9<{Bjn9i?UcMSKDzYGJ@5};jJ#%!U3*PBe8^r#L}cEaPy!?TxHLRuYp$bmlQR3GZ9?8x{bK+p38AksNNoa@z@p=60#0D zGHfYj(G3hHd|Exg_axAH3I&Cj6gdTvQq)p65Dtc?is48gDZB1V2CsmhpApinhrZmG#OMBZSd{m*_UcJYX;o5uBOdE~h z$W3S7B%~SGUeMgULtZF4Z`ORU{o6suKM+kg(!14&U6_^?fb|^Dga)vxyY!QE zh0xtFRG#7hbU{rrBMa5Cd+oM+9@@GWM9{qbsN!6eK=Q;HrH)UdhDbVr|zi`x2~k4RLzW{9J$ zT372M@VihTqop5ehO-5Ucmc^DZHF!%2laE7EaU(vB%{elJV*&o8Sx9goiQLh!11|y zmz=4IVJ+Vte}CYFeS1H$bhaU=J(wo$vix_$iHfTq{FWp~qP{^<OI&kA=^Gh+EtB;)`q4Dji7EEACVipXto!OhtO36NZ*2hQg6~)4~zbRzzVi ziR{~1=P-nCu-!V>l1nU+;LrK*{#yN)F3`Q-U2E=SU6j^L#ZvjC2X4?#Z7;Y@Tii>j zZl-opj*%g4bEqoK#*%g7ELMAJ)lEKatYaqjta=gYIVszqqSz9}_yqg7!VwnU z+=8to0ii}^Qn=V$uG`s<&~jUB4-WB|TIy zD(^tiw#W{~QC2ic=}GYb)}J*ZxIE8YJp|u@2{}@{)!>lq3OM~EcqBx zV>uFr8yP;H&%-)nl09SLSH`&vIE#7LCBJ|vq!gp#z4)a=*FS#v=BKe@G?vLXb}VBg z7KwvQwLG6eMYSOJe1)iidTvd&7MQ3{ z+HDSrl05m**Sh{1L^ilI2P|2W{@{Yjck?$W1{}#Wmbud|>P6!V7A{tw3Js4potj>^ z5iNevk(N^i*mq&{cC9MY@q75u=yT-TOz5nZcd*+rg;)D*WMN*=;~OE)X0`=E4W;;@ zJ1N4sS;jL#Yi#NujcYZCCC!8HIQ!f92o*su6;Ty{U4Oh+h(48N|> zC`Y%IBwt39SU`^Y8N8st;+!%Pi(P?{gDdCyCv1an*j1QrO~bA~P+o6GKEpzTv%~sl-bRQye0?>YOG6$$S}+nqZGL#i{8_GuYxK!5V`k-befSB#Rl(iLqO* z1W~>*pBC>UT~!q{ppd26d>SMR^yU-vxiRjDT@Q?s0e`B2WJLl!2mO%LXvRIP-^7?3&1%*y*2W$zt!Z6u;E>*kwEeZ(ZbxxlAC9Nf&Q&;+UI?rRXx1-z`0R z457}8&Y@-nQj)PTK8qg12rF&PBVKA|HH~QC5p|K~G+BswYiEs@QNz^VC@x4v(a{T< z>x}LSv8TPpYfnF-Ygn7m*7*vZZ3Og$*DMalcl! zh?zJ^$$_ksi>OhaGRe6^!h`q5Ls&0E+!kD~D)8a}d*Ox{a7eV(y5u4*z$QUK*q<~s z*n^j{nxGY@1b`I!g#W4K$ex=^v01n{B~Yga&88L9;YSrL0Dxd|iP@eimSokgS_WBa ztiY`@M>O>2=~Lt7vlW{nyGF3XXn>Hdh`>ogJh8?yB5tdK{(b1z>i)7i8zFsn(393M zUSUd^SK)$|PkRpCJT-tfLu_Lxh9pQf0@Diu0L{S;ZWwt%lrg*WzymjXr$b0^;`^jP@j<~=V6sb6Q+cdM7)RmOEY4o_d} zgk|D&4UF=_AA8`4gLYu$)XOi7`<}WqOD_lI^BMYdVKXR&8GC#-Z@3cN@LuYi+JMy6 zjBTJZxVb?Dl1AIvaC9}(h8%O0;<6NuUc0=xXer(}B?*T-$E%s)h1XnPiAd7}x1dQIIv9I}vE9hh5++OOeAr+N$X3-J{B>a?BESOFHGHCs z&R&j2)MKm+oNFX+71q57c}doQB0V{?nh*3zct#!#7>;{fx3;M)8=X}D^hjsxY6{wI zdu~)=2tjc{+e7VEfsT&l^;wPTtaAofmWmEpDj92ll$v!w6cc~)2^Dud+xshFXT>0m z8!efWAZbdQlGhO?P-7lCac=?y8;T;G^*FenW2u*Jvl z!uN(tu0#d&Kx)d>Nk~q8)*WX?H# ziCsZC99cOF{H?Y!_J<9QS3+j0-W1msmx#pWgc4v)Q^CE6aPP z{gI!)mI*Ao+>PGwlF9dHNTctrQ(tZaCh~I0;YtUzN^}r8e1KcE;*#_83ex+$Iqbr4 zYs0a0Zk?^yb#>_P*%gT}`HYbq6_jfuF7f3$&o89Q@utY`m<-l+pP8m`p?egc z#)qnc|79L+0mI+)y-g90sfrd92s^cb)vUgJ zTd`I|>bCpbL!}xLQT(yg)OJC@t>Bk@LeJ>ib6ewBN)qIn{$h}Mx?kZU@=4u$jPkqn zu{`(P!=vivysm}HGqEz&S@W;nj^~ZLgd)Gun=^EXLV{(+oZTjL4=3XSqvx$GE#H-+AQOV3yBfx^i*S4Fe!Z?O|1rdLIyM-s;|0^1n4io*j3lI zzYB^@f|;51^bGtR6%t>FdKg{adB$6Pi63H!Yp?8mL??wX)J|7(gAw~8Ylu%-Z2sd| zU=wT3p{NF><{XC5Mr(q!n;>f6FRFsz5+XzCQK9(}ztMiG!E$6Q2J{VB&^Z#Dvkc)Rw3-KhX!nyLPCBX!u#A&+M#~n{H?4L7K5&aCBs>YsO!)PqDdxWZcjUA zJKE_!_oYf8TrRn-NygRb>cAPm$;WXsSD#(zDo;@9}s0{8WmLvNMP3!Qbz9)fjRlTe2+|vsGm! zFVx<4xL9R~TQ_)^-#84Hmy0_*% z(1}QU#Jr>Vwi>4$YlPIwi$2Ns>_mjf(}{Ex9h1hP(e6B=h&a5YBO$wvW3znybs+=B z@YXv?Mr$oO6CqZbz67#u*%iEy4pR zE0G}$*Nd4t3Jq0aUresI?HyM$%hgd{I=+=Pwd1s#+dZ^5rWN z02=Kd+u1HBKmj6u?di&>F`WGHifvda2c>Vq;+>mm_X2DZU{{>TVkH-XfPwQp!Llak z?ovkd#{7$lg0Df8(Jm|jNG`)-L-Alssk~I*E$LHW)fQVaS2-9W1KO36s5&xBKG)+o zb!1uN@;n@NbPvb(eB01dqx}lT5wYsbYu&Q)2;c;)iWm!`bZ>wprmS=)J$Dk z7B?;rjh9s>o!HooOyaN=UaAA|pFv^Z#;c4Lt(B<(g6gEH3VgLDl_rT6mL&fsFj*nP<6c(JP4jl zSLMpxQcWA0!E%&gYfPK)ro&qm(|^{BbdJb2eyMMX+ca{ZF2{?I;-{FX4TR%)oi?nv zIj+3mme<59>`yw0UxJdD^Ea~r>p`hMq46J|`Bt>3-aY)X#mByJWW~B*qVym^ly?Va zkeVyxF)wh{h`Hp78eR{*KkF-z1=b|Y+hp{&V8qQ%!UBt4BNlUm^K3LJEVl+hE#oLL zrB6>+AgTinnIA!M8$v%?RGY)dcP)f&@aF`4O1}ej1)@;p^Lx<{VpDTC_0?dNDK~GU z=0u_~W16|8APtNoJ2zP$uYn7Z5RI$P+Y(?V9I`fYD-R}@tWL49X}~n3nR{!jGsW66 zq6urbv}}J$I+wl1mYMibX{StK@0r^3<$__3@h(JY@puL3W5I8r#^yQ zr9}h32KUNI!^l4Ywg#l`tu?A$wk5qZ=sas9U=O;!v9EBRJR z@8kJ(>p*We1QvrK-B#+a*9EEfOUzYg(p>;UaJjHr?{h~*8o%c;XNl1x6wM>A)vR5&Wtw;IUE#IE@50dheCp(LPpXRM2|z z{{Tfmy1yZ4(jVfsKehm|JtzcN^q+Cl6N(B0{XbMmZDB{JI!{z&fv{Kkw9=@d9mHz7 z^_k1-WtD!c!8U$>oCbs?rw7|Ihmw#{S5$jw39<}IbK5cKZ^ATl;{LY(2-wQsJmN{^ zZoTjf+yC%B4paxX!eMR$nL}PSKsOE+@>Cfhnf=($l745}(Ys$9y$XbLeWV8YZfxP- zJKxeh6`UzPn#7YEnCM#t59PFX^%dwRPl^Bk0Q<)>d|1Vx9*(u-nFzqHWn3M7FO`ub z&B{Iu;EF4Vi)Rs$uNiS1uo1WFG-FZNK(cfG;4}wh$NDmFuDBh%(cOv?1#v6WHX{*St)bWWc zChM#O&>LelWv=l9fesDoquMw*HVJNSPy5Dn3Yb@{#zz|swOHCkozKeQ6t4T2No|<> z01-(qlp0v*vN1;$Zw^w!v2)Z~l3XNMDVP8N0005^cic1sP8;wE-tsi-2gM7~cT1}5 zaV*NQwA=THx1R5)AP>!^*iyt`Lf@3jG($RsjJd8bcB~l{C;!aR+^rIc0~gF!Q|m0v zwL+q}71;WZY0wm&r>{a7g0Zj+QYsV-zJMovyo+_-iv!n!iFoow2o3m_wGPg>uIho* zYS-Znq=kaecCfKPc{>Bh)L&XX;9xVr0w!n-wk;9SFO$u*=QAVtq?Q?CiYh1kriiH+ z>Rx+^o|a8y?$|7gnRMY|CG90yr!@JHtog6M1=|u}(&DUIiejyieg7 zq`Z@`0000001Qv3J#CHd_q=G`%PimCcp8ZgZz7!d?^;%FgWg66?*VCD+I1n)mh^%S zxUct~J`eYGjL*ZNRjKDm6KU<8%eDhN$(3 zqVX2WrKVryvK%eV1LMKf?R&g03L~RAQ=fb*p`6Q0Kv)N#_tfG!q?^hpewvD zsSY~;1bFO%R%?Om!~}d?^YGPX(ooeZZPf07s$VPw5kf`Q#M;yU^M}F=QnBi-_lNG~ zzGeCJHA=CFGI^MN$e_ikujHwgMZQucWHaTNU>3~m)?x*xe%gkV!$YJCEYej&Kv2ZI zfsljkUdD2310zQ7mc1zCI!*#Cy`?$|Qt!>R<#i9cKElI`MzyY&??b}OBFy|oH7zri zdFvgH~71EFnqsiwAgs+NArUU{9Iy>w6{Ju0cfw6}=`Hl?VSdY4xVwLh2*Byd?hL z*Ig^jozUS3Wxz$h5$59L3_eL>cyMl7slDXv+T<_hc3mxc4W<7->C%5^3^`N_yg=%d z;lmvR&yA;lc{`_pg320h$n<{RB2;f?UQA!x%9gZx#8Q5zGIeb*v6m$h5i(>f#jR4H z=vqe2TyE1P9P#Y_qf^&`8$2_^$DzaJ7=?#FUUjLj^sD?8!qk9If0cPW^dR{^ZVkgp zM>rkMFe#n%?YSgVgh`J{9a5GU*8c222kLx^csqCI?*|!w;)|S-MfHgQ!C0N27iG>a z?w9o%m`W(+z6=$Cat`2OdWN279yc9y%J`%zZx{AtT|t!%8fvscpF#WQoJCNTsR>{c zVl4+_H?$B0W6F+|#A+m*iOIqM!Epjqe-a*+8chGXt+exEBlN!!k3xc*RLL(AQYFEi zubiXvIk!pbEv7q8=ftSY$1NN{?AhkZbQJGg8IJ;il$af zS7ir_$R$0KCO2dpYR5>Zdo{duR}^RBSvqlF-;L$eAx*J`e)-Q@ZxDr1I9pbqwI}DK z=xm)G_mw_J=VubW7-7HyaxtD#vapw7+L$*ZOIz`?<(KSvB zc(lU#y5c4s)K5*lS!;`^ENpoukYddWk)tAol%!pySMZ`YdHNPCH$t$EJ5fTOJkLYT zJT!feZ3P$2cLk7j1&QEAC12ugLn|rGC4bAb9 zz^ERi7DvwD#&NnFk=NG|EBk`v(S4q!i(3`fz~zI7dT0tToVJFzP;b;`e&dNH1boS7 z2k0lED@~CwyxCLW?6X{&|12q^Rf15q>X}r5`x9$jZC==ISH)yUOab|)9)Sn6OKZZ2 zX2r?uq&Mx1spc=U&ZedKWtxClB9N9e$ie@5D2htSl~Qcoz~F&b;#C|Gi0iSm&&I2E3=)xnz!rD!ow6 zP%bh=8gDX_SgP=GRq4`3a%gFs^ik2HNZN8$<&2i=m>DTCZra*Ci(ZTd4u_~(VktgHfz1WnIqO7k32z>M36aA8w5+9)R7uQD8TX$& z{k0lg?6=l{Z=Ub~gx@d7wsVN5tsy)P%EwwfhIume)dn6m?cDyO+})G&FD&_@T@kDK z!8QOH&`na(U?<>O5FPLjO0Xa8eE+iS29H0^thgAwjI?Id_I>edDD)$fu-P!J$5zTO z@gNTr#qgzcX3Q@7>ffe;S1BmpbWqDd#e0VtvXDY#Z`sDCn4)$Ta+gOm`~~gAS5c;l zKzVev0N&hMi|oh4HyfU`x1}y{GH0<)(tca?wivRR*@BT)=~ApC;=8` z!85^!__wH?ZTcWBPQ9&^w9%X-2j2%7#L=SVC~%@TdrwJ31K10#4!ReMR&Gt=Pfw*5 zW!=0)r%C#rP55xYU&!Vy`Io)}(eIWd8gXr7>j$RqK4^lUzBdC5#aaHq z0~?!tr^uD~2PqFO#}IkxHy|eQSJC56Ofs{ckWKh$>uKjZ`+t0ju9EjL0au6xH~?A zyynNm2`|%4Ql*M6w4^c^@aVk6J~g^0LHAh5qp*;o626$`eqbFt}2A(*_Qo7 z%3f~RIn&C9OJy|Hx~6r4d&--NFHG8T7IYNtF<;P|6ntF}GK)p7{rRv9_&A(rQ2+pb zpy_z3#9v(}GQ;e7Mcs`t=}U6gRIz)#+ydwY9Ii4qfl6n%&jm(fC}40cMBwy-|F@tD z%l1vyT(mSUywgR5FM#LBz#|=JEu8x>WQ=aUh&q5=5&;tfMQPe2e^99F`^hM6!47)XTS)uI=ZC5 z{LDU<&z9g36>f}1e>Y!W?9>|tDtx0dRHHhKhqz~Lt%+Yid?s8x7yB=7I7-Wo>x+Vy z>u5LMkbiiK);Tvj^whMB?(JUVhvrGoVJz;DU7)|MQ@Q4VdLgrTngA1TKao%@i^L6$ z9>LqHbed98fTKc&=PV;MM~Kx6($a^8j)5sd>xdg+lI|fDCUflqO_=akZr)$3Co^nMM6gt&#I;CY94qP z3^1&mcuOk%Yx0b94EPFOjAlM@KT<1U54mVZ`N=%KQ>oLY83z9y1ILg=t$=d^b$@S9 zIIWC$A(&W%ciowCks!wbk}fZEOx>dyLu!Q>{a@8O3R2krTn%r^*=I^?h6(2(&Z4+9 zQ><$33TfP_qJ=-dsV%989d|+tiK!8X)yc@_sIiCLWcfUrpT$DZo-^Df17C$5MD&Rw zrt+h*9}`JxgI=HD-&(@L5*IG|ne4gcs!vi~6qkkaqJ}509vlG)khb9nBJ_XZa^Y@2 z@s3z@5rotWl-)x*=tegna0)D}gffN#)4T)sZZQTjkMS7d0PJ&*sK6HCGZIF@$lG5H_PWw!0gf<(K6aH^8V=AJ+&c zRX5i>ahWu|sCzt|%7H5Qy>#+YeZjwLgwlp2$Z}H4I5?*tJHP@JqtoS6mgFl`^*U*ZikB;1H~1R>IDf3e zRJtGapx5$WnDa5=HcP`3i=Y|7pL29yOf~cQ&2`AY(Q>pq7gyhB#VltyRrWI}gl$K` z?)lTDw`4l|@nc-~m)O=0+Gsk0-qJxxOW4^Tpy5ySH|ZV!0BE*>OYiQ1E&0k_t}>^l z9p3~-H7%ka`QnhOs!Z4D7K)PX(L$7hK{ z7X_8^`tt+7U;Ta8lsZ$19v#>JT564WTjC0!HqUt7nX`aX| zk<;32h$Cn(fNHJ`Iw6xJiESn*o2N=Wwjrp#DoH{p06OGZ=(O!;3)GF|d34xXBWTFW zd-Gs^S4q(tJVB!>X(^K?8|?&F^-|b;$*ndp*mpL+0RZ0w*IzD^A+h8GjUt@Mn{zV?VjWl8M%zk zCe7=HX~XrFk;I({9%@a(RAXO4J5x+aBKD;{bxv7*8a;8k@$E^Ci&oVli-?MQj3C

_P8uoL*gRByXG(;1r1ND;i_7wm=Wv2NVHj*st7bPN*Or2! zp;8mp&ep3~JX!>g6c~3}G;8ssz%$O7@~Wy&qm*FPI_4`kjm# z_CS(X4fF9+z;;D%zr|q($MdPk7ni=)NL+&bkPwtOy+9am5elfcjNp#lcSOF5hHv)9 zvcH{rR~kNG;l9e{EeXGjp=jj@;DVON^^-z#wf3LyaL3xRvV%yCSnV$S&0cra4}F;s&V{3SNw5gat>@K%X-E_sn5tPM2QaA>I>A^a7bMGWhr&=VAo3e zHODD*43QzUE1&F)NZY=K;A7rl$Uwp{HwyR!J60(VNFL}@QIo$}b$}lr-F89F^I-U# zLtfOCTvK+1vz3a>z*#4_do`dBQdG)=Z+GH=#@P?@PBw9WE>s++mrB~e@)PpaN!#W2 zqqc|gc--Zy9dK>489q7CiP1XSVdQef3Mo|e0Zj8?M-bvkeGIrwsqpu7)PeJbawV4~ z*WkCj#@*FpP#sJA3!yN(xfuULK;UyZCRm9Ig?CpTPK#Wjld`Io?rBqERuK%67@jJP zm**sn{hSadyYE%xktVrgBR(LFCo@NSFvDlLl?Xi?7Ih79f1 zH#mNi*(a5d)z2MOnjsHTW>29M!Hg@gU4XmQoxAgfeORvojIZ+8ZO;lrfRT->C8hPR zDwnx30!36^9R$n?{=%W0MWf<<+0oEFC9jr;RDcI`s9W|9Stfxr-YxJX{gPpgM(yk#O}OEJohg7y#j4 z+&g=ItpM9zI4&?!ZB$MsN0&RxIgbg{ubHz0L|n9k*W)^?Lj>gr?Q!c$NmIBu?)6zb z+4n!8;b)iLy`>shQE<;c4QYzb1CRfFGw=Tnrb%ac)?@o?Z z=VahXh@?48%6Wb$4c~$Ae0glpVM@NIelZdjSEaWTr9FQMB2w<{siMQt3%*Em{S#T{_C*p8 z_q`K;R`yf>q5F)jc;H`db~uA6Qf*{t@i2aNk`B1U4Nkv!oF_5zMAr*EbJ%ZvIRIlx zQw3_QtdKmr#ZhOL+VT+dhjFq|<-tXDDVzm`89{2UPE-dB@LBy8&iwW#@G#IH3VCl- zax=w;x#4fBYIMcHR6gKGWTL_Ba$j@y+}ajuhW1$M0rp>LyU`)SNTS}_a}Nv3KUxP* z@0y5~SXf|!<4Qn9BhVbfPgUt&DJSmBtc6o29V&nzFViPOj;Ueh6C=bB4+k-_g0fSc zaT+iVl_aTU2G%5@WUB$r{;~R0_UcuW`C;yn8g)cKV*FyccQDQNwbP)o6#aPV`sAfP zvraBs)_7r~Xe-jgjMQMGk#d)q>Xsb^e?&E8gT|e;8U+uPGZU2m(jNc08qoxt_NXdZ zX0|N`t02nc`eQjajw->QL24SYOM;T9)0(z z+9e^=fPKSh7VSf?F={2!fWxKqJd*nDVz{3SE^C|Yp}WU|QrxPy5D2=|-bOi@Ra#~# ztRHxQ6++i%I3Uj_N|m^LZJ2vtfVwVoataR|r!Sov0<+^1?hdQYLuO2PBFhW=$yS3n z9+4*V5kol8>N1OgBd$KFirHxe{lYE1)s9U5ECF%%XtHVh2|pIO?1^Tw=zrBF5mtGr zpp_Tk3n2;1LOGWNh<%%d zRW$0DEH!WC`$5?>vmPj|r3%mY%agEY!z=I7x8yG|Z(EAsWyQdrlkZEk*7alsdh$*5 zL;3%2&u*6eGIJf_;aULsoEXCWQGIJMUM%~!L4KlPo;WBF*{$*JI<>IM*jYy=6%uJ# z8u>o<{C4Z6^elucZmIT7*5dxWg#O0_DbgI_@WCDBsu>N$Sn@S;mfbL2Wd4C=yxk;k^MXuO!_zzuDDv5L zhl{98rZ-V0b0l1l1Mbm9oIJPQ8`d%|wbD)ru-PpKj^9M~75W+|0t+D4N{9c~4i)3( zP%G=6*lx+ot;2jWe>XB&a?Ny(M^#yRnGfYJDu9T|<^nk#dLXk|Dc^GPV6W;iK&#VH zAJo+uh5t3~UVnC{sxJ>8T{_Lkx(uujKZj)JPotT0Q<^e2ga*pS6s5g-SNpsVxxS&K zdQyM-g6gpp`5|U}<#xKygLH_=?xJV5zh65%ior)tNKcnjXhnkJQc1J(=Anc*#foZ? zT4sv z2o*U5+oI)`B0V#+dbytPEteL^VrPSB%61gKW2I5lDJP4WK71ynqv`VVkX1*Ez4xO( zvN21((G>qy;@oak80>LDCzyKeYa{A%6}AL&aN`pA6QcpXIbw6nVO_Mh@YdZe-l>o0 zD$OadHBfkx7(i>1KHA(J&iqG?myQ=Gj<*i%qWc+%k`^-;p|Vr2=^iKV2Nbo_RQHtW zrQvEu>X?4N*qt%Hp_7sidTauYSmPOnBL`W?VY-qkphyBCya=LVMUYz7GBd9W+ps2j z<+=_O72auai~gpqF#a<73)Z^g6)S6pR1gk4<|UWFlJ>WVrY;VBtq2UgG4VGjj;jNx zW*7uPv@{_d-q65i(e0HL2DI)K^CNIS&h^FsBK-6~&V@!*iFYJ>L1vLq@{JnJJcH(` zR!g*g_0;eL?lUERGEye4D%((Dt(v^C4*bdJ?iK>Gt41rYqIb=R zE2=Mp4Oo>Ot*H;qgItJYk~|DXV+}`pKuRJ5wC~s4PyRX}!j?T#VxLB$aEYABJw^er ziksGaf%CH|voBcR?(m2Vq9g7Zv7Lex*`Tu3<3R87D-ou6N>SRVOABfu`t|W;;`@5w zs1(}Ws%O6b8a$f4w-a9{-Iw?&5*@9=pLH_{#?YL={_?FoGRAZ@!$8RLpMCZ@7w+O$W3z#U9|VI2ADs3rlma0+fy{z9&$Tw z662k)+eEX9Ty05?XiQV9PDZrFnWk|k;MIA59wz=A;#%w`<67tx@old*z~$3!C%pX1 z%|Zd@U3SYuSp^vA zY;QWq`QbB)beI|;XBN_tNB01=Cpb8+8FnPhWb31px7h@`6;8bPHMKP9%$e(%@HCE4 zU|+v&PU*7=T+x8e)`kFg1~s3rj;u`UA^5VoyiD>(0e3;M(4=;D&6M>x?ewwdp_L3o zvHBg5DhyFjOnHsWBT&P0tK&g~{7m8rg0}+)w=={z{Q9t&dsp@X1ZA@cM@T#<3w$(L zzQi2yY{0#_drq$ACl|4+bxCEBGDO0QeLJcC^qZE+F>e9tA0@gToK-^&5V1H4(2^1C zL}aDwr~X|F>xm$-kTqfXd7U8!3GEnszbNpVt>p0nv2hEPd&!n*yWEK3{|Mwc;s*+{j1$eKJbzE90)pu-AWGKE8z0`2{m8Yvib zP1*H~90T^o}9Lxu!jhrv*9o03HaoL~(w!BIn|IM6sS+L9;02OrwjLaLZPy z5V~Ego$K&=2<&J8$!eZ90)#0f3033QCQIbx*aJ*q#S=eoxE zc{$1N%j?a6*MHKhKp#gpAvmY&?g{`%JAZfqCD-hOiS zEtZZz8X$Ca35$%f86?{9RoYF|#DMcxw^T`TWWv4j=|x7lW{xP$BT_dV8f93A{`=<7 z0@(Mu(G)9SRWvMcz$q(8o-&NrEF1=tXVon8p4sC-;!Qrumca8Wqm)10?neb2EP*`< za|qbpA^w^gj6TvskZ32m`DG9{=R&_0(2M^H@^d00!M_gWmeWzYDdgbM@9xL7B9HXn zfN(F00laK4s4i~o$kZh!CH%}O)bbMThv5FlKkfJLb_+TLLPGs0i-+#MBU3GgP>+;s z=b}2TT4cejLpj~7h&J>e^W6Mo@xUOjvN<;mW0z;R`GD{6^Kjow@EF=vEt5nu=N+k8 zdDo5;NUJm&z}Fi5;D1zwV!)7Q4S*LwlpfpLOS5x`D%WgHeDEm(5lnC;qC!Vk!MA6! zA)Dx#N9FDY)+V=j4zR<~Qf^?=WD~+ZYjF)Ebrf6PIyYU(NvsMN=xf?YB6Spw%x1-b zaY;TeSZS=?D#5CQqex3QE{COv)? zmACw6<$5f-l%&MKK?CQhtXRfVma~Ri5CKj6G&w2_wAsbWQ^Z`AI4-be33?!lg9@BSxmoEXph7`Z5~N>Pif~ ze!-nFJ6;dQF@tw#`c2tZx*y@53n}+gpM#@~9P~no*x%_n9i%K#N9F;u{>p51QRXuG z9!E>JdaDmXiuj?#Blb?pclh7uu}r$ky-^?*uD*XFV|mTVT^oy|I!tM2_)6R)v7`@N zt4h-=R>)=SJ)Crm=`=lWx&~(UhzwSVqe!dqy9!WZdBrJ~8R6C_7Lun+yH$f`jg3mD z9=G@duX51M$}l*$)la9EPiNq;8wKK1rWECG$-g2JYb zrA^|*gDC%%&kKgw?x#c?$f_`Ihc_7VKjkLli~cQzC6a}|ssB?BZij3fV$)g#vx1gBY%v~GGg8yN5H%{)x|s`7C*B3J_yEo8S(y%AZHRa!op?y&QR2luUOW+h@0{U{sWy+^4u&zz z5gx#~$Iou4AHNAc4w>gFa7csVb~u3ln#GuG6s|gX+!R5N=O8>sxxt((*g(bysIuT8 zOP!C8w97M?o#mkKcA>x_R1{MWWGViwZI3NhlVuO*HUgW}M;_bc(y6`fnH|6|hwsJl ze@w{s8;@9HBIV|6s?F1jjuzUVzyJUM0AxPD?R6XFZCJ{m*MeAYXq*!uJrV>5Dn(48 zBk3SZQLnVjm+b`qp(R%~)Gz&;s`?4&AB}`oEy9a|>?%uIaM;~giQOMExrJ8&D_v5%bwreDDiV zj!}OD6S;bkTI=tRf_5Zm`azcYPiZ2^{(rIgytwfhju0&j36Pz9*E+O!gVaf$(mlTXj{X4AYmOK%|;oo>3oP( zmPXk1S|u|sELWF*)dliJSUwB^E*S-7FKHG&x)%U_$SlO!zQ(@S<~apO;3T(Ra2RJ5 zbgsIL&2eAx`j8|_j%ZLu7XHR-0FgD{I?8AwQQ#VqJ`ZMdzqhOV`CRTun zMDUDjH4Z@>P{7&uKhQk!hxCQ;4j@Y`v7R!;n29CfjgK?oGJW^KOMdFp&6&b#GygC6 zWU`hIC0UiWGERDpn_LCPiGnm2i1m>eS~L$(oQFTYY8j_deK|eKVOf+L6=C{MsmIPUgE%dT(+}Wb-Q|yWx68#C!Q;g_Woy^__H&aZVnFsz8sY*PK4i!lvbV~>0 z+WGw_Um_pc$&z*4)<_ph;p~{)u+|qC$H;*%I#rzMHH%XLAGpn(kchNc&6zv!J3z2_gyo$ipev+gcM=CZCe=6Ygw@;0Q&MMxcL$aV%eU zUtXC8aTrBa-6q&glaCv5GCKXMrNHWl9FvT~arx5(v9t>H{Vl8OMZU4B-AWdS;k1tY zEX(i@B;L-;9Bc=-f7 zA#P#X8-+v8Yiwf%aEzgcvP`Z^gb-rK!3JeYzgVX{gz#~ak8D$NZ_@%NyjF9EqFDNQ z=Uu-B0TvWXcUqn)i(XX8tIs)$0Gd-iAO+aD2myTKg|;uOR;6-k$lAfo@`Ez91>2&c z46OMGV%xpHU$-IU2}!a&cz5zFV8h~T%(F?dCB-Xr&#idDNwaIlN`0hFXn~e(G_vt8 zX$2(NT2)DzHlXSWAf~-?&GWq?mX-rnK~FMpVjIgO4Qq8;0{^-j#v&P9&&)%aHFJr~ z6ga)Xi#iXJOk&lg{!uE7*qUNJefe=P0Tt=hs(VPmCj#ce?xd-Ip8tE+gO$shcga?y z2gjS!GU z{_|rMx~sRZwm39WztuK1LdN^V=OOd7!1~wBwM|eB(7t9P&D$$YO%oMuW3F%|{=h%| z37hE}5iZ66r+k|tT-ZOVeqGyy>KiQpEt8y+IEoqdJvz9Esu3J0^2& zPeiE{NTrqxL@W(|tfGK^`9B815+abq`p}udTMj>jgOf7=!pxxaHt>dg8`(oBx*hX< zEsMuBU_Unedt1p4U(OpGq*%h1w?E`U$(~K~aQf_P8d{YN(z41tXPai00|)$)FRlx? z(MTsdlD6pE1w^4x$BGoH-mN9mG1H)gGCK4=(gGa=n1 zds@(o8iI#kJqhriL8T3n6GWwap=zrE9%^j{6S?9M+F6nvVQMF!v;q{+BPu>&G!g{5OuJy!BKk!O|9{p68vxKb&1+(>cgh^pbyqvcC z*`~ul^1A(%(BdE?tqTk2RuKjrkR;}3!ib|-bZIO(*83Zr z)g!QUk$~QM9u*j(u1M>9gKBLZRJ(8rtzEqg$Ii$Ph~rCw{z&81$Q7*C zzkGJ7(^gMCVk>6c2*e~uDj0ixP1R8fg~^?{G_GPB-43D=<~svGi{x*D*&5wFph2{z zJkwaccXs9I9-76y*9Dg^a}f6ar|{DQXa-HP)ijeUIgS zAuZiFAQ*?Wm#UWS;I6A3y|-XEME%;R3n;{p0mXx3i?T}hD`nY;``gwee>1~&kLOi# z289*a$j=O-Mz}}WqFY5``fJZmAK&{LN@FWpcJU@D12a|w1Yt|ptys>pQuuTMdX%Dc zn*u31-e7Z#)VT{(ge}F7Xe;u?b0j<~rQD`?2;on#R6qR}4Lgd{Sf=(yI^E?m`OnqG z=k{z>_b<+2nmg6(A%kwlrT*OTqb67X>#&9QP~KSD(y^wn1Dm<0LyIWU`_0#K2`MyI% zPfDwilw^w~L#VL>ubLexAWPykU+isJM3*;0>+`Qm3OV(PXa}L$e3g_Y;1)1k)H5UD zz=B17=hy^dHR)7-6!kG)Qbh%n%|F+XR;_7)ms;OT``32xJCX}NXY+JhHdD0i!Bh2$0}}vLfNNrWga~M$j&1*VBAdXB~l$N+VlId zbwek$n*lA3*1<7czEn^#<6GYntUCaOrz<;-5q)hQ74R_*-)dlGq>{h({Iv70T=*&^4|gl=9Qq93Z8ZL145+cK2W;oA=IzJXdIB5;0~Eoq5u6OCU1w zKCGTI6IUpk#{5?cp0LtF?wbf;yPk6=H#ST!km*j{GnjLzD^0NU8%K~UUu zACCAzpaOa890^q35KH7Xl+l0S_N>IIf28(-U4MvH>4TfAiYB-Pt8s^ix3uzas_dTX zelbSXy^h8%{`v^2S{s!ue7*aE%v*wD{0K2GoIa9rU(@=eB-vVynRNPuhg(T{dr!7e zkH^gCYdVym4{lZ`^3eO@(a6EYsoK_Yf5Bvt)HK=o@AWyxBF#|P#n8#HRzeI2Gl_;n z2KZ=k868sj7rV~%l;}a6a20qw7$!}cS2!$(1^5`Zhr`wuIOAAJKeq?L18U>oMz%MN z>`Zb2HecR#%Iq}DIa8l!zaKdgAY;bdL#utS#NVEC(U#%56Ad(M4{Myat`-(G8bA6q zcTNeWCqi!%CZ}7zTN;^oh!Uu+G6Y-7t$?q4=E7=)N&CDPT-pBKvr#jsfGN{BHbGG6 zdUMf*_XV}Q>nL#3uBToHGVrv)cs9|EUB8!BbV~UDh z%~FKtKx?*Ba!iS!@o#&I=CD7}+(qvGkz#w-kiIJpFbwbT-ccUNRqOo5ggqS=LH9^t ziA%Ka&b~?OV+k3Br@A;-Fh#hbIO}vY#!F1df*f~(RQC=HnRYcb=itkfY2)jl(6BC8 zp)CPJ%fgT!ExIS(mQ0Th*$>@AFM-+ zZ0sIpEqrxh+;L62fhHNN+2FwKm2x zC73b9>Nwg*W$8Mlv6SVH*e;Gt5-rp9iD++ zUKdZ{;tb30r~$W+6R+_1nE9a(@t1%OWBnQ<^f-f_0~_|1kb!XDi4=4=PDpv{Sac}xB2aP3EokT_GXz+IA8 z59vS(EOWFWDnCC)_CR3ll4MQ6ZsBn)li!;;>O+7Zl>iaK;`aUdPq>tZ)u{J7Vxloc z>VxW+-l~$DMp;mG+m2e4r+S>B+G8RjC;h<-bs#XH)J;88G5Q}c;Bc1#<)(!O;-Dbs zx#O0_BO@hs?j!VZAFbs^ z@}#$X)?t`}%fZINft*wYp_euS+`lOh^CvBFY7Yym0< zG&OwlrJ$5CoFI_H0{F1P?=8L}z{)(kZGOcSN1N5P)$e)rH9Sf4 z?`tGQ*oD23>K;-0)?1VpB(vk*1`jVP-U1{VyHM#OC;lb^=%3ki$pY65jgh@^8nZ`a z*jc8CBo$sQXNyNVv*P;x11l={-}^4v)@Y-1&kd{k+%etGdpWiYyY^mp8fMbc>6A4R zXqh4`2M@Y@=Rudp!i`*urG@kt*Hfb0-CvHQcLjsZ&5K-vh9P@Z6!qyiF=u5FA zBh*DcmYLxjAbtj$P&Z9>2(! z(FX|0vqIywVr8d$ZPC!243d=8_c`;RXk%kk#i2Sb7iE21m3NAxAQ^ZCzek$r9v-ld zLoBW=*j_O~r6Q6FB@1=`HfrKQLrX4}rDi$Wy1RBG&-a9oyQrIYcZxMVQi2i;Pi z!C_~bsGwCh{l}p#uCGYCU+1AcWQ|pc)!YR@LdR-nSOuhce;tti=e-|qHj48EuPDi$ zO*xBIqA-Fvp<*WH#m6zN_y7NTqdgcVfN7?K zWc;7=@vEzZ@E9*zOhrXRFL^Y2?-N?mGLg6*M`}{6IM~E?5pKqpO_w!!7%X@pjy6fJWc@sq&MYp zDUfoG$J8bYH11b`h^b#2pe1vd0}z0W40O!*h`w~9jil#F=A%bfc~#*lN;;gciTD6# zAaLnLhxi1~V3amp);?bGr_Uo8V2x3S;&1^W4SBe?3>Z}m4!*;eJPrL7$O#wsp?hxJN`=!ebsLl~+W84Zs3j(AbD zqJ51q+yTj`Vfy6!*KzCM`LW$SSvK4);y16(fs_a?I_%<)wE`Z_2Kv`{`Q;^phhE}5 z``z&sBHzTUG4e)oSXWzbL%Bf`oCCGnqZkssdX4Zi%U>RH_Z;yRNi(6NcoV3yhTQkJ z{2m?+4-qjdvyBnEAogxZ%X~miG^}Q)%Z)F73`7Jb3-{?;I1{(Qr>}Z{7ZG$QW1IW| zfc5wRzSA7nK6Q7YeQ&mlMFY+zNnTNvOsu%R@(N|rtcLzxv+Z2w1v1iIDlBMp zjCnMvh|?g|WF*3Tl_Nw54AVsm*kmQZf{YS0Xd5?I4){V)Tc_o|hpU~63`!-rY7cV$~`f)Dw=B|0*?-#2(W&Tn@g0+Aq< z9{%18uYh#OgS)YB21xngP9s+Yhouu9`xnuE4pmN}owCmx?rM!aL$bBvS8|1)LBYK> zvmXTPgj=ZN5YNa?{XTI6C981|58yR2j1-_53^#MnAv`Q8_X7%!GGAqCzA<0@E9q_< zONN5xP94ahl=u)Ph9s~zE3DZEl8t=DFq4ye-yF>aeH`j2l-VLSnn!m;%?PdE*J%uv zDDZU)ILC*&#zFioe2v~RI#<|K)Cm+MXdAr){7pwfBrrYYh zK7~adKolD;ZP;ANmJ#qv4>3~(SPB8HV4RA3TEGsnKmAS3vahnvMd@ovW$p5zmUWqi(}6gqL!NyGOliJLHpo%Vv{!=%E=hMGDZRIc^VtH_+G3K#^r#7j7Axp4cjp34Jq5j!uF6pZp_aV^^< zdWYy6*OH9q5G7f3xl(@E(2acpph;@C9x0p(JAp0oS)5cc%Cqrg0P^f-vsB}?S{(4Y zpTeE>)QFB(5jZfM`1l*Z@C8E~SRk5YzYwHu^E(h>@^U}Qt+58$GN~w}U)6vAuPOH~ zP0E-OBNm$kDNih+EnD%)Vt~I0;xv@Dy6{hpdpxi34q4sku^%W3K%ACnBUJA60ifez zW%kQ~j$JZYZ=YoYw{*1yvbfvau^rngjRO_EJD_1PZV&~qu;q*Sr|?r6z48-8;fRg( zl;TGR6x^}y9jLET{Pe)+GyrduwFCO|=)K#2G4Wl7W7hXNKUAQ|Ij*lw<1`t(-kR>H z-8~HiN<-B}R(PMp9EbaG@RF~SVOvS=yQsq)=hS_u*5Sa2*g0Qs?a6*Nrp^Q4?Sd=- zrUNe1vrt!!)+uk7>IxXfHJ_3HQ}n9>3XIGgymzG&$1skg1gnlnUV(*vLSj+TIb_ih zPVq*6=WHfU&qECQpS%7o$o;Fbz|jq`BJO#~jZ{TxshuWdqT@xS$2o#e^HnULp0&jw z`XLGA`U0ko(+{O=YdHl}lV>plmHaA{o5$g~(;tu9_&EoiW%p`#^{4go^AfD+9gj+~ zcKuTz+YUbNP=;4h;rs*RycUS6#x=k=9J6#eqNyC1=VMQ7YTN!4>w z0jVnl&C@iY0NJTnRkG8nd~^St-cFo-JDFV;*gS?5cH*n&yu`!79q#XI=R0+#v_fow zM1Vg7`ipL;`0BJHx%DleC{xhvvK;8%;H5SvlNPEkvoObN5K4@W0Y%TFgd|Q!(F$DF z___jodg?gGu3Ke2(?>Im34b(+0q@FiPtrq;okOrFFdC(=ZQHhO+qSKDZQHhO+qP}n zde@lO-8GBZO%_2VStXUK{5koK@b$Ck)ww3o>QC~i7R#5`p>4L#G4@Ezx%rA0t}6bE zXx?*%SbK^yc1{rPq$e73zLY44Wi<&qoB<_>Y7Q3cHwY(%8N-g=K! znD)++&cB$c(!YQ}I)6(XSls=AG?lFfaxXcsy!GlgwzFfeFeKqHSvUNz&q9rbfgr`}yIUbfq_vL2BFBz8(`tvj zD3|AEyY2+<4GwjS&Ba=7X;G;|yDW;Qom!7M15HPn&KDPAoVZ;?ZwP zROhzdF>d(X^=dHjl-RQq>6yn5j@|Wey7Do{--ue4re4nUQ6F14A>W~P7tYH!8_GUn< zOPPvD%005(t3pfHm|oH82Cj1PWlO^XXeg^SJ@%-gkgJnPx6FR=jQ1_)Muj^ z(;)rEIO6zO{K;}`L2nyk1R7qe+g6%O{GoCU>}BV?;`D`vE{w!6s--2rcJ%W{Ts5$( z$@jIE8oMDZ`^&!?+o(9ddCFfk|5#jAVFAGMsyeS_iKHVdSYCBc!nTXt0G4n@PuINf zC=Pb{?`z7;eW78w$H1f`hTZ;Vw$UQztHn{1^iBzD!7_N?-3rN$ zm)vWza4Q@qXE8z)DajhI`&|B8nDuPTqA>(p+w_iB4S2#NSex7LMu5z~hc%=ioFp%D z9&*XTZ?!~?S2VBCwWS6bU8G%5%`?QVq^I6TVmvFc3+?|ipd|!Mvc^}@M`Ut}6)(N~ z6-U408K8R)(BB!s80-(k)DB>uD9;|@QVnnJXp~wp0Fw$>k(`F2g$)f!@)xZekh#dH zTx8aix#1vZ^Jwd%z*j=5HaY0v-fz0D)0+{9JTh0@RQw(w0T0D@XF3h=gTs5=sXoT0 z5}C*`ihMcAyZKhiS23@TK?ZM-&oI)%e+Sn>&>FzNFuNDoYj;iCI4lGK0L01w03dL7 zT&PHm7;Bo$5No3!01yNRt7vPt&jx2%)#lxq$;bf*001rA_A3x%AVKfo#G^QxL{+Cj zl>;D(-ck+#5TKVdW05Xb=0uN2%rp(S8pGQZ{@VPhjw4Brsq$#yDqAeFpleVA9o&j9 zlHlL}8q}uyGj1vm<~3q$35@v7y_{(NI%ZG?^;=mJq6p&bbdcV4L?JZzt5pyH5TE}@ zA^s)ycJ;w9$pr%1SX7K&W3nqz-rvP%_<&%#A&Y=^Jyoamc{eqg1x^cv^mR7P)sTN~ zIrR^ze`B<=)*aOWGIBe0KmpiC6pEaKh3SOcB@Dca6jT}7DW4K>-^Ncf0c}e>9u-JV z1zl@?Qc`X`bGgq>mljA+`Mw*|mMdqb!I_Hxdcb5x^9|?5Cgy zjP_$>A(=WpGvUIB5%;XOf>%Q)vp+~9S|&7}nCn{vY>pPhRKFtM@lNxwnwa>}t5mBu zd~!)X_#^{so5uv#Goe}J;{TLZ6wS{UNBxZl0lc=}Wn7}T^UtpJqY8|&2%&t0i zz(ba&4$CD4fPt{jTZT7=h+WbFm-0mioN**Oh%L?399I> z1HF?dH!8J*Lw0GJ{th9*4#)vAc46x^y34@5& za{i3-gY86O?hV!lc@rhJPN?WasZ=!*1JXr~=oD}F<)`n|eruCKowf}*a5vg&HF^C- zI4KoI9T!ES$^h;`5iQ{6+kUA5vTg(*Ii?iY5vjUDM%s^K$weQ<;=!o|ih!*@-Dk>- z^Q?0+bEm?1%gz)3uENzF!3LL5F68nS_SLz}*|1nRwz>T{r>n^tzV|82?t;b?6Ha|v zpURRp&}#xbz=yjd!2|AA?;(!!paQauozjwjEFngIA74h%H-`sqZ1YL0GZF zd@EQy7k<44dy|4xls3>`EIsjT4L+O=yhesehJ5G1XoT;=-+4`n_>fp1yNClU!B>?W zv@U9!F7LE|qhMzedJV317Mj*%&%jMq+lRb?kt?&*ifMole9yTWr0RV zt_*k_>UN>h+o9?yv-N=qr+nbt*fEsw6xW5C%XMM!E|v>bx2~US`Ob3TE5JDXBD_2N zCW#piS6O5cxJ6LSw;YJ9t`Ijd%!29?AU#GKd9G1mz-crduf3W;n9sBeg|GZrQ70f(`Q(6XeS5(E$P#-Djy zB`NR@LdLr7Ku-Ll;5D|u(hI0M?DI~L{jXoNOB+D~fr-_Fev-K37uLj5GE#xskjuv1 zoLJ0E?H`lKk~2jLXg`Kre_P3sumfI(oxdqb@_fQKbSENWrICZwy=WYdx5QsbYJM8U zpqp5j{TysE_;YWD#9cBjh8J*V7p|FRKvwRJgsfeXo18RiXR|Y+T}KUsOt~v?q|90{;>%uHLCcN zTwA`vN$1PYS}xi<$BQ5RFz+K?7SvDIU%g7Zr*bc+`QtxIk8k<6S?PvXc@^i7c@_z6 z@Th4h|DRW1vpQKc=g?&N4E}RNNN6J=1t^wmPj#O0a$r2HfSMYEm8@_W#)6&*23ho& zi8(zc+1woZ221Z;EpN)Ok9pOgdG$KyA0j8vqDT%WtJNqprnd!?Z7AtFX$|F#7A;qB zt`1`#;7X?e160pWtE||nf6!fKhv!(@iro37bbLl4wQZB&Lvfr?#bUox-bw!(6F=>U z%85zQE*0T+{5mxs6H$XD-fUbFpt-NREoJ5pw~k_?s*GBCW@nRy5JsQ-^DgQ_Bejmd z&!hsK)F>H)(@xbp?^%5io6{#grzAxpRQKU)RkPDX;Zme~9 z=`;qRGtE#CB$)5l6hwT9bkV?C{S#Dk`YMhZH=}WoK@wca&_4y}J1S6cpv6uN#?`sI zkoL1$PY?)M{t2c}O5r<4?#R6hcAMGy{z8UJk73?n zUO^MZjwH(3^(nD%MAw_6dm9w%8u)Po`Jw9M3&kG2*WTn5Nd7iYC%RwQ4^&p49;Nw4 z&ztY*s809a3j4vX_{9lW2aHd@wkpluO>sp}#n`FydkCRvEgODJ|JiWxLkgZXxGyJkDpRs8~) zV2{`Y<8dy~{#;wn#4*er&T1zWuDN;M#x@MF(SDb)u3ack*EYq4L?+@rfQ*PF`Wjmg zvr2%3Z`kGOznJdH?$(noA>Ka~xB6tKb*913MfxX8S7^1;smlEOjj@{D9yhZ9>@HTH zvs56_C;2r;vSMLEuRcqJW|#B}VNV%=gAlk@QpGn;hH`3E3t#{+z_Qf#$7YjFNvz{5 zo0-9+kcTpa((WhmFRU1y%*~#Cwd{d$>hgu@b&`Nk1Pkq7-fK?{D4M-$MG`yTzHj$Y zsQu7;jg7;{TUwP-%{L1C-M9x7BvVaSc!KvJz%l>%1hj~;_Qimbi1p@bFK-mH80A%p zSuWm`x8QGI1s9mrKE?@MJ{^H(XJYtT^Kp( zO=`;yZUW6&^Utew!m6jicgKrx)eW9wNv-zwyMW;tUCQ; z{P#H|13hnE=SErH3kA};nbZ#q?>4i}wKWHq`Vd)qq*1gjIYT2H>7H^Z?M zzlA|DoXqA+GCo9FmJn#8zJ268lYGi~G?+!E3wVr~>@)Jk-LDnzhKfA}SV|6b8@$Y3 z#O|q9&169L#5QL@nw-_z)2a`|5r8!xcy_r?D9#x-G>~lhh}Qw3eo9@J)MTZI!pG^& z{^WK1L3L4}jxCq0ddMATSa8xM(`LVni|T6>dX04;i@(e+P58L(`-q(_V1_++I9h}F<7vy;809c)2WJsI=3GVk*^lmKQs zGsI%EpJ4#iz64c2N`nFKc1HQ;m`OXf`&-0Br--Z`Y4HFj1fN@<4MBiMRH+=Uo~Ta< z)*5@IHbY=mX=DZmAGTBT@|F-Q(MZdd__>)YZ0f=7uS4H8CSPD0RH+w0g3^g3TU@@* zZ6Z$We`ubb`nz$L(2UEh0BP~As!a0_ttVapIpmy48rBZtX+{$JpZ?MJN!3Azq$hGp zAi<7!hAb+omfikAWzQ}?`iwi_c08LxRL-OqjErm3a9dxEtf_EGKO#w~9D|CxTBAv% zJj0{jKDv;?_aL-4>LtJY5l4OVXc0;@Zt_t?!Q89$Anpr+-H|{Jln5Dxima`RI)goW zs`Zawap6QWQd@;tH1`qt{ z3jpKlS*tUQ$k)TcQ5mHkP0&(-Lz}h=fz)OsO|k9%_H=sTqfkmedb{g9(JTA+lPqN6 zR571urmMQ~fSt{Na@$(MG7pS^*e6?LmzY#-O?$(jXX+mHHtdPt)X-!I0*8RA0mvVb z{M5?ysY{rvOs6_hRx0BT;lw+dk#Zj)FWR(R5u_(HxPSw7f&R&_aDk?1I2K90bE_ok z(0wTN`gWFJHVVnZfxCSlH00$R5l>#?p%3*-OYhZSt5}Yy7*P6@sI-zsu;5$b>x(?{ z>Ku2A*ioNMfdB-OM|rwUj_0P`>XFof%S3PAD!+Ly<_uxu<&Q9I5OOK6vzdGb8LRx_ ztaG=-wHdYjr$0V=I-m~4^Pio!eYv~$q*_Hc%6XCI)jPq{&j~l;JZ)eePI(+{)={+m zW9?7;$mdWn)Tgay$D+w$^q>lZ5KPnPHJlku;H(s|$IgR>^=Dq?2g2BzGC#W}TADHy zZu(0-czf)YI0o_Vk^oZ`?#^J#4`w-iNL8b0d3pW`CQ=Tu3LTVT%tV(UN;qlOc;Ka# zRIC`8bIB`+g$F*u#U$-fN4f5T7cW4vFN=e>B|RR6T!rbdjWXaT>Ao;XDKv{17F;E! zf#hPi*G>i(bcp!rHV3(Vr4gr`Kp(QxxbyQ|GRXtMa0MK%BC1m9nPEJNDk2rQ{CldK zNG;;W1Wza7Fj_iS5scF+MrPnPW8z{@8D)>FLt1`MGq&vp#DNgK$AA}}+$hW83rqUh zfTebr_W{aSaJp|2mCi%&(O5QExGqUXO;iC; zK2henqrdi5({1Te{6ot@ycZ2w_X#)TuCEmL6#Tu=e=YUi1=ILJVB$YV^m#K4jB(#% zD*uh4?fbCIM4qH{cA>g#`L)gM9vtz|O;NDEmuBH<}+ zfi4DE8`h`oiOS#OT`%#LA8iJB`Kr)q3<2HRW90bG{HbV@&t25|Wx13Xab^mAK<-m< z@W#ShUY2|K$%9Y@RfB&gL`3&tmPc+=dPV1=H3B|b8bmt-TM41p(yF} z7UTWAn8&~iC z{CFcd-&!krO4JnJ&7oF8FrbRG_TXvPv8y<4gACv^R~ffcl4{l z?W|r8_N9W!oh3k0CAzSkE#w<*n=VWR{ydaY+Uac5Qoraw#dogof#!j9QvD6i# z6OBlLlj`y6d}%(v@E6x-6P3Pi_ALE=;=8sOLb*V2Nw@;P!>wgcBT=Xu6t%x{zlhR> z>mOY4tm2Oitik#Mi-%EOq)w{tKKW_dS@_Cri0EEh7BWeeOVo0UOfu1ENu=oF6s2&@ z9-xY8OJtNZjX`6w+#&kai39`LZkp8cn&(sLKc{qcfB$* z<$Q`!NzST-{Ip*~j`C?$7cB(3&v1qu;44s`3Illm%v89)$XYJ=#zI703m_?)5|E85 z7oG$SMG}@lil2=fXezcsGiB~?)f#8XI4 z{ZJ*0C=>%B$xfE!JB2!tDpVXFdxP#l9BTIg1z0Zh3az-DJAaOp|Il*4$Q4|`Y}gMy zb#?cbYsFc<@Jffzhon9uR#Ezua#7q#L}T>vAQej16D8V1{&86hqJ zuTMjYJ0}|GpCDff64SB%t!Bx0lq6);WS2Y``O8KT`H6LXsY7`jx0KLC@X%=@2@IqP zN0A~5NbJG1_qa{0&49_Wuef0-(+;G;v!l34XGWt;WrgLU`vOl1Drw1Gv)-Q??t^12 z;WFvP_8u78X9^C2&^sxZ9udT7Ji41U)oP7!m0MOSGcd7TqPxg~r>%12baSnmdF<$iq#%(z1( zS!f7Z@&T5ZYn1%yzB%vPdD;~BAY?}z#Qgu92CZc!?p#JQ)PCnMLN(VB4!w4WysHb| z!_6!N_Ad~{V{t->h=4JBs{$c>aLuyl6?&;%PPEI{CHXphp%C1HQ*7Gjw`8A zVqDt_crYwujqiMNi_~&Q7hlmQzDmq_&+n}3Qqbid+DFO; z@!igzk}ZTK0%r|I!iX$IEMoy=&jWV0Mj-rRR@WA^z;DqQ1;_8CA3h_R!6|fA{{#BtQ0g|_Di0DMWgS1kX8=ldH zs$p0gaB(V>aPuPmIdWicdMwYrW+#2}b~a_4WT3L)vG}K920SNHjqfw^wGJJt2^Xic zbto&|%^Q~aYg~|vwz}2_ap|_t`gg0X+`wI`5lOU0_V2m=0NLP=za?D5xk9Urp<{Z| zYRpQt)XMcB(ei_Z=%G7rID?lWy-KMpw8mHE4`waJx|zm<%VnF&R2W$>ms(M_b-fR2 zHG4(rH|ZB7cFuGiQWkFmzKwXIY4AkyZXX0Lj~hoO!sUXO!|t>B6#%{K-kAgc?!2N- zYIEb$eb!WH-ngZ>yVt|l>g_4%JdR80JkNMz3Auu`UZxh$Xq}A~>>Le+ZgOrJGB^+k zuD95Zjt`~IA0)>3=kO(x+ozB}8hh@ZAbG zs6~^lsxOII@{IjH3FXxxR%$)JFw54>EjHnIG z5GQ{MPkWIIe;k$C0=(cXeW?~SxiAI6N>2sXyslf;+mIfJl>%N_7!iWoC;Ldyg<#HY zeB()zJxT<~nKYLXca!N$9Fq?M6kK|;jN^gs@n7U0C>o+|ViMr%ho?He42x=Ya2c=hgA+$we$xN>G zsVj>F(ArXink9>mPrE@O+q%fM%LgFi=Y4nu%`PV($UQD{F+$ zZAO7mKBchBuY@XIxYG1gohz#s<~hKDkZN@Tt78OwddMfgsn1|dN1%bQ!{&{h=J`T! z#Ut`N($DF;OPi=GHPUrx>({HBO9E4EAHLqwJawC%e6F=XyFV_<9UBKA1mVTiFCWijW#$!#}E*XxG4(+8EE@|#W zh3c>A`)mNpN}c0OhopWr*3a0{k**rFt`|vR8{+0y)kKONRKWjafNCaNyFJFsa4W3X z8zgSGD{6R;g#id@K8hy4Y}KqP;jvLc`qsnPl4)Z*pOy_qQwG15r9c{6Nrt=E{=>jj zD=o=IC&#|;4bf(1qrVAR)N+u&?1U-n(}9k7;y^F{?JaZI|A~kaZ1{YAj)rf@ z-0TI6ZBhsQEre+VJL<0vR~eYs^w|J71&LeH%~?#s*QE|+sZrk#mM8`e60`r^DI!1lC{V!j;X0bKW*f<&{VA%R_4 zdK|PX+U`J$SfrLos0)ZChH(zuy4JsXv1+q_%Lvm5cJ&B2Qq9E={AA0(6uGu+y454c zken){%;?(P)D6;c+$WT ztEjQRnFInYqyp95BzMhwbn1Q09p!?pVB9L-@$V7KwySJMe=l+$HO2sy40!1CDWSyj ziP&EI*b=ypFxF?b1pV-7g;mizA4iOJl9!1NqYCrzSw@+x<%A@cZdP!5(%)Wf`0RnV zj9u7MIOfwymk0a3$V#479jbqSP|eaDW`c4M!+21pL9;Y@mU&U|)!yk5pxa#tU#DE9 zA!O}%u1(<`F*&dm)dr(2=oQ?11I)RXKc#_o#gl~0+WS1ab{-C4784p@J3_|WOJQ?q zcHkUF6g>+uxnolF4iQ| z3t0t=xoaHZ9v#GWsDF|ONj&k-ErxU2Rcbfn*H`1H!20=6)m=E6%>YH1`@8u4n7YJs zUFNaC;gtk6LD0j8M~FM^xps#*H>_We(Zppp7abLZHK{fA>~Z$rmj$?p!hB8CyVG-% z`){j}^)EJaG_m{lXS3~e}PhO zJ_d#0r?-uSqGSq52gO&16KPufE$SXguCvv+6g%0$D5oJ@g>o^B?ay<^UxectH!uQ6 ze3wlRZuHTtvH7sYUl>3B0HfqU#CD1p%TcGYp_;+P2&v#kEaZO+DXwspVD;TYptP;6*%EwxjNE>k%k z>7=Wi?s1m8XWQ3*3!YkxWkWuQZ#}r9s|o!a+OR2_fy(5-e{W7bDWH#fQBAQ^1 zx+Ayjg>t-aRfuya^K@zrypFVy^1GoEHJOj&LgLLKfQLh*05w@DuPRHsm6??6PoP`5 zs(?$DRAlTiCCf)j5GsrRk5G}NAAW88d>lT)d zB9D2`B{8z1lUtC@fK#0}*LM^QjqBQRm0n#K`i`922~`kov4Q0qDeS}z@xxtWw`OOS zm50=}-I|C{3NJfP7J#hJY){O{g6v!q8Q8ZNG{Kzf?5KJrXkCzYgmdyZN8G9;50;~Lp;Z%VF z0DFBZp8!QJ*w|QQ!t}Wu=beT0rFG%jPGN6}n4?HMs&FtN^>2&WFt0L>{d<04BLfXT z0`H{@%NblBZ+yaAB4!~=gF-}b$U1crHr(tnU-8iY=VCYDTXG{^?gBFPsXHZznFB7p zDJ$54w#vP#RnC?F2V-hJ)->$J>jUU6n3tlJpm4H%9MXu(=!NUKl$43|eGs#{FV0qs z#O?-G!>#=Uww+{B+u0gz`Sh|NVKYpIyirxYC+|-}kn7cINjq**knLnY&04!LMYV$r z^`?xM*^z2CH4&TU@f!2Wa}0%stzcR&U-@j)PK&{D)I6IRiUn2^mzV&_*Om? z1^i%g1z`?p;X(iJ5&j3+lgr}8lhYFz&cwCLN<>lMSYc6+v@o~DyFhjdTFrTJgw45a zknBUj`Z+IO`6y$e*w6Csy&pHdi4R>q!~?=JhIU*@XE%5nuWDSgaNu85it8x7~Q5$0V4O)$B)3b-lo8* zz$+1DA5mE+udWnHK1gBuvGEpxf6+gZ^;AhD;!4(AN|0@;rZxzZ{PAhpHc?qc(W}4e zcuvce1LtqD0a+7CaS7H5bF0qe6#@q7wpC_&P%*nGcGAtZF;39R1LucjN`2R|Ao76u zGqHe@`1`xI%jDGuuwD)#BY+P?^BX`p-AQ4@^ot>PUs~u7%<42Rz!Ti4GjzdpKx`8oBW~8t9HR9uZH`blQmjgrpiOp0a<~w^&-?LE zlH9_=G99a5S%0<2LdokR!N-blX~N`&G6k-c{26CW|GCR|y0brtE$3R*q6Tk=r*I-Z zbDykH{_zSK>q0XKs~s(@&kLi1tstG-42rg<7DWtx=E4IF?40EhCn>w5pF)o+Pk+~? z2!3>JGNdedmOCOZS{a7$HsU^O;Uy=OMvqm+-sDiy9G_X#C+hXhY6w|4_O9>B8x>$gT#nlOT*be9*M`bsw7+W=8?M{L zZ_v2ZT^`s)b0iItFB7q=2j+Il3*-RKgPw4M7oWQ5L%haVmV)Hg;SA6{8*F4WItM;= zWM<_gb`p6g(r0BQS(9+oFG-yHu`l`IWOBICEm62WE(q9R8pmM-_L991b`7wFvTK`` z7y|pi1Khi?A2T;K-7hCM96g3D3!Q1}WZDHxNsG*5RV%Nt|K!dxoj{8J9(EZ3uXfE= z^DmV!H*iAzrN#K!KYF@yxg%(d3x6mv0;2^t!*^pzZwKXFjb5L&`8a%q_3Z3a=5tAz zzU8ZLh!L;E*uzbC8w6P@IENt+2xKv7ZelnBDa>yIH#{J*ZLRvgp}9^phn7qaJp19~ zD=|+O8dSPP_@9CfFfitdB&}x_h>cN7x%CP>0;AeB( zmDm)9;KOROjcq}R228HE($+cQmt}S~B*Hn)#KPXjkUnT(RYKyd(jLJhvJ(tSagN5L zmUZyEokD_(*!# z{1|4lI6vFE&5ZTQ)C#>v>G$aHdOS-S7XI$oiq(gnFlIl_=?;X~D{U|z1za(7gto{_ zBvel^wBh>Rywtl^Vgi zYPm$?u-IcYW^h%~U83H-}7rq;`;Gf zb()QO0}sgYL6*C`FU@2rILKPNjtvv~;oY z>3p?sG}Zn9QHDa3&Zph%0s>8f3zA0_dHc955s9V4;R~W9LraSL)b<=X)2piX9dCuK zM54@=FRMB`o5=j8%AniDIApj4YaPadZ8Z(hHVS@l1Cge#XBL>h5uu$}Kt0LV$~4{C z8#rq&4;waFYu0B1mVhj3;Mc5N35>zKsaVimk8u{=vOT{z<1w5v_!tLRYVlBC7|w$^ zc!qX}fw&|`K%cN*L$xr8nc^m97!jm=;#U9qi4lbHOa5;$d5f&7DruTPFa0x`J^RI` ztUS;$(9nL^AhYk=ktB1HABJwkeHFpyKL0t>ip*S0PG~Y!?yU(yTjIUz^pp=xM3lJ!h< zfrtg?SIFovUhRILT~Qymnd?5LTjK{I2Iy|362MDWw@#W!@Xn~@#QdRNg8K*lXU|NM z%40-35CSsQYSdO-Q_%SRKocrUdmwi zj98t8{mygrT^XJJwSAv!&B{`OB?O!L(?D>Sg}u?VhDS`%_7jXp$6L9tH$M{@$yGYB~{-4NKnFT98bzhkE7GR0QQwa$id04&Hw`_k>=~v z!Lq7td%NvS&8b7z_6$TGG%$cAthv0Q^bNzA+jL2Fnw6JrOR)|d=@u` zS}XY_2AdzI-U^nFH+3Scw-~nS^8?kQ1`ilYDts6jdq5i1-5e^6)iASlNG7DTDz^Q$ z#qIF#g<1fQG7eUhw--p(sTbeKU1CPPIktU`1zjPVs%n93^xCNhOTklL@VREPiVZX& z{DK&`LWU6P)Rxbxbe)qJHk!=~U*(e+S&Ve(_ITTEKkoH-4vL|4&Cg|@6B41F96ySn z2_8UK7)C~yve_bKse|>Ass?pE-Tcb9;A|VkE)+tRbLY+{}lV;p#bFf0tDJ#>fsO3 z-6=>xbN^IWvFZ5pVYM`=kMH?d1rRc0$Yv)DGjD1Gnfx}}=3$s$8J0PhN7yMpd&Ki3 z_pQFXPIrpcy-^tp*r*6qCXmFcI%-abYdBj=Pdf14Z$TrZ>>Vb_0}ic&cFmOf&gbhV zUy~8wO!k|~O3Ak?SMudy60>|7Tb@yx@}J}=+a=8CX7@;$rdFP~8TT<-pR^Wio?tkp zP_qV}l^J1G3y%#LtGY2=8IqRB8@<%V%+y;u-bti?v+d*2FWE``1o;QDON}BN4GnE+ zi0B=70hVN(yYaZ8yq5rFj+NqV70VZt>7*L6|H8ibUi&SeRHI^9IO%b$$YZ~T+DSjv5+fLkK?|v?Kk3q-qV#g2N026Hz8{)l>PU0_n zfz!ZGoYChz;V30D*sg4iwx-OSvf0Y%z`eeQNMV2-IYLwDgA?W{w-lrHJ~h)i{L8a& zx@!)gKi4UM1z7Dm9yd<{C;8j(?$^}7{PSUS`@QKfnT+wn)L_$fz7F9L7WgG!o^gN^Z728X6>YN*9CKOu4+!97ugJj zzr*idrdv8a91PX|18ML>y7y)ah4tBtsWH(FxH6fBGd$kng!-&k*Ggyf9`Y)n_-?`1Zlo1x9ic!O*c2}gi)5-Ci>AG=mF$Qfwsdz2Hu)ZRI zw?4MpIo3r@_oG}(RN>UeeC?GWPeHv%v@&gppd~+VH+z%ga2cT%+7Nj#WJ(rNkx9&} z$HG#yW|A%MOv(FQE|rOW-L;)YR*BagV#FrNlD%aX=#&dlW5e9-%^akK9usztAB(Z> zIxRO^&68wl8H+ZBk16U?7BuJCLqZ3zoqc~yxY`vZw<^d{*=fbv1Q0d#lV=u-de<`K zx92gJ5X1hx_?`7T+6xG_7cK$quDe}BSd=;4T;MI(<>IH>rMIGdt@%;6*XeJ*Xn|-b zW#U%T?yil(F-kL}SnG|u)r1**7e_A6Q*^i6N8;-fCxbl((e9gNR|UBp4{2uAgYT7D z9A!kcCRCvQ0#)~A3Q;gZaxVMN4Jy!^DMop44Gezpls>H+zEN#c0Q?3#lA1M@k7Ffc zv;jUIJ`4&$mY~d|PZ?@xbdWj&dcX7~l_7R`!*9R#Iiz0sPk_Z48-SP)aYeFO*;c9s z8CKM#!^WODQS(<6yWL!5oIL3zN7|3#S%%EFecMW)$x`eG^{Hhz$0+$3lPd{-QCrjx zp1Qd=joA{_{H3{GBvvO{!d+aRSFmneJ>>s}1MZY!Xf5!;m z@pv(V6g{3T1b#R`j;HJVEI=1G2whc+e0xW1=*fTa@9JzN-5XWG&uQ`#uE2A8A2gg- z+WH1>*=oecBRQpn)rzNnxJ|11vCVaFe=mjw_?FH$;2Ac%O5Qsa^a-mnSE#OdN_HYEF3PkR7ALbk()Kx zN@0!&07xOD(k=P_?-um`n=2>_O3M8k%poKx3w-n6SqK0U|4Kjrp#NL`rw@eUzkM+O fav=Wu|JMII2SoV4bvOkhQ*}TD05AZP|Fr)P70l)! literal 0 HcmV?d00001 diff --git a/docs/changelog-assets/TreeView.webp b/docs/changelog-assets/TreeView.webp new file mode 100644 index 0000000000000000000000000000000000000000..030666bac861a26513bddd10617cd92c7270920f GIT binary patch literal 223600 zcmbrl19)WH)&&~d=yYt`w(X>2TOG4w8y(y3Bpuu6*jC3*I%d_&x%lt7=Ulz_>RVsF zs+C=}_g=N;7-Nn(OGR2j!qN&HL{nTuNkfV26CB829~cNA0^lI;GeozR;2`mLklCO# zmfs6nhAme%NOZQhmz^%2y}i`1TwyLdv-7RE_ufR`T=pknik|c#S38l)`j1#Pd(82B?2hB?fyXcM3@N# z5zGQ60#5-C07d{~lEDdZue%Fy;0pwG$<}4JMfZbW!TZG475IbmeGPDFHtq^}LvghR02DLm z5i9`?y*>fe?}6J}{oS#C_HTr5mVmo6$zKk;z;!`cV1u74;N}eYvm5y}^~K?_<^Z_Z zJqQeaw0M(!B|Npb=ziQ%5{P)gxPfcNl^epl~nvfAAbXF#E5I&5 zix1ed`!D1Jza?O|pE{r$F!nn9&3(Un-LD@g0Jywj-1D0j%mkXh2?J39Nmt;Hn(qe- zF8K}keF8KCZeFJrfSbTkpf_OUsrNkWmhrs%CvecW)6WiA{|Nr7`2>AOcrLgr*zIQt zoCCODz1#p#4b}w*fxdtxVA7l50O5#VDbN)N4KR3(doXwtJnj|(M*86b(%*t!IUj1y zfREj?Z>?W$e1UIEZ(o4wPn9n~VA8GMBlOMIwP1!|H}FYO46KcIjYD;-55-uP>o!T< zO~?80Ck!)rmX~xzJALcTRq)5eNq({gy_EH*M-c>R3xY)JZ)5g8uf$Mf^>Nbdnr6)c zz9>OxTEj(2D;`5T{c9}PvNUu0_JjZZ4H=c+*K!46gd^y7XXVvb?51*qi3U;}k0~n7 znhvM_azzJW_p=N_3iDv*RDFhkexl4P3v1rPxtj7D${3D_|2Pu#lT8!GTou)*6k2MF z>v(%qb6Gs*EYtqeu)<&;6lJ%|?^Lzu9g0r<3g@hM&VcO7C7csK8X9J_i_E>Sx7}$E zr9GAE82jHpE+4WHM^dcJd7$= z;q&!U>39y?D#gDW?2c(yo;IUi85N#3a|enzcIf|Uv@S;b^b@l{HON{0x8bHzbEn;b z8dLC%#%`6vyW;th%|)COlj9thf8mRJ1`kPQWTsn8&PiAM1U{<#pnSW;l&gW>L2P)* zP6?!Lzb|)#?SuN=rsYwj{r~y_jeKpybpgM>K<&y&!FsJDPRIO!In7mbOWdK{vZ^QZq79GW4HRm^9?AM1&H`C8F0y&@r2hVnF+Hs zBSZ!v705Ea#d)xAVGTHuPQP2&l@^E#O%QEat?nEpLw%VG^^;dB4zg%HPEC9_tS|?u zDHL$N_~UQ^pHKdzX5Jag0>2c{C2y5LO!G$?1(lqK~!TLV-EQkciXcXjLH`Cz}3M7GSPyYn_E@@`Z5|`9btkoI{~U zpv?v1yga*|7XjS)*?Qap#B_f~VE>)i02pcsYBqJX>>|V55m+907T|0!FQ=9XP9pC^ zkk05AkcFhOU&pg$|0Uu%Mhykqkk`tqAd_j6*R4y7hgvX1C>Zw)-391jZHjRMC< zMeNBc`yATHPb@WbDZD7|H1mri7KLC9wK%sP(Q#!vnGWyeHp;!p_5)9Cba{Z?E(i(< z@dNRi5O}du-GIbJsnV z5hlVkFJ5qba}T%G5Jqq1jAw!zBH>RN~X36s; zt*!&d$G++YdoJ-nLh;rlAAE;(aad!YItj2!3mF!V(_6Ni`dQs@Iz$pcCTCZPf+s&p zSZ`|M2VcU$(iJn;H)&%=fLl3{|E&($;xw;wJr_g9=oE4l?}j=Ve+fINPQUhRvyXZh zIpKE5Pj0`DZ{cQb#oUNs4uOZ?_?O`UIxk9uYG|}}Q*N(Yc+fkMw@T+R;=nFi?6DIz zZ-S@s`k48Ea(`>$TvPos;ON0*nR}gbwHlT)vUz1XiG@$*pqi3oV8N>7M1)EE0n5BX zuKB-34(#9@gWA8MBVONLiedShgn)xq;EUz(zs4mz>Rk(DdM}?JMcSfLo3-0Nb~O=n zIvd1DHU9;6)E+a*eJs^gGlg#7bDhBDPb8P?opMyQAJ{|a$aYtN&t!tDN|!P}Qtb@9`P3Cbp+4^IoZVK|JVqj%MzK z-GWI)zG3KM09mwg6@*jD?OxD1U>IDA75;3BE05OP{32WH3YSTOKopXls;8;4qW83u zYw;Q3SJP&@!Y}tZ@!C9kLZX^L3sbJ|zX1rwon^>z$&K zI*GIS@CZ2mI5^k)?&j1jJv3sGm2Sc^*V^(5jLUW({}CF$1;`Zf^YH}h_ht%a^C+IO z*T&<2aA!FE6A}6|s23q=fnrg}*0EGW9NVRq&D^;J6lYr47zTv5fawXb73ZSaEdo#*;s;lz zIx5N@<7~RsT}2w1qtWCluGz*9L64m|bY9&zv2b#7O}^~LOJ|J8v+A9ce73PE6X?jN z8To?C<6nOyF6*DsL$vsLA^+-o{u>)@6k4>^e7lhpQ+?lAGxZyqOP+-V)GadM#0nwe zssB(a|AX-OH&V!&kx#R##2t)l(EbQN?@iuMg?7mUzRp)4jLm1}4+6qnSOfoC^zF(Q znEc<6txeh9vBi%wZIh}up5YR+$#ayqeTW@O6mG+VUo$VI0tRGfYx4Qo6H&KI&pHYc zofM~dz@8=Qnk(C33_8VJi7%_$jNli!&Fk}jh2olOl!s{A-jf-hMb_IrNV+Gd+H>%ADy2MfDjVy1!OtNcOb~J^Ff06S@{8?1gy6OfUgm zZOb$dyVH-H;8sX(xQe@L)2{|D*5FAr!{&+-QL_K3cm^7e(@qJfBfyNcJEGd;Qc`>_ zzUFBk{K>3aw`sB8^~R67dQVxY6G0ie+tRZ4 zzQqEeOrKj7Hhzi%rm|2o4GOlT$bRd zv#MOXUM!$Qrgor81T?49XHS!!y6UU4#YsL_i^Mh`OBX5=)-V?R*m9X3TC}O@uR)WM zZ3>*+n6^Lf=tT8iItL`}2e+m|n~6BgcW{wtd&oC)9jsx_-LYe6v3@}6g?2<+;NHS& zVX%`!!}3Y9qAF{Bfs#YMkd}mc$bsbV*N3Pwd9iZMy8TH#SPZ+^WSMdkIkvaM=jl~> z!<`{pb_c@jK(9YF@q8oqCw+K?Qu7{u|5XjXYeg5z@X7CM_3{XJU~K09kW786!IVeoyIOV+5Kny=<%peJBOXA)mNnuX|wr?^qxfT;YnCt zx%hjj@f)5Fn@g!yv?VY@2eA9CQ|vEy(u1qhg{^&ZR6X`M$o9G6Uq(h`rooZ5$TYp< zXiAuS+B*Hm%7X?DP%ealI!-)qgtH{~^%)^a%2M4WZHZ;E*tY_~#H+2VXdjKoI4sogmJA1vvf+D;p^|k zF~lCg_yP5HdhUzM@rHkcMLtZ?phFq|pqp0~i|wgIL`eN?pfY^~P~yw^vKar>Uj8|H zFl2*(>}?iIOp8BP8W zhIURoQ4mxEDi{;ODiIbCf3Z@d+4w~voD>T}g)DpW5wqbSuBf4CrPVt?oPRn00foF} zrFE_You)t!vvoi8dL6SXLn7NF+rO0i*_THkpUJ=M|H$OE;F|Nf+xF zJ+q4gy&G#QZj9*V2wRP&W?0{$7Nea|K5DQ*CfGGJ+RGb$+T9ev4VLXtb93Q9p^+^C zM1$>&QRhjaIf(KTNAw@?Q4>4ryjh$19}M^(a>$Kqj^9?JWQO^_4XL>DK@Uobevy*j z@7>=qP#c& z6B_FFMEw2grnf<^P+GvB`g(h$E(Y;fgdSuZb)4Gp{wfBvJ`22z^F}G%%4$b++VZ(j z{)T<`HpWX?!G_4r970W+s8sTC@JD+q?4Vmqn-F}7QdZN$Ku(a-(&`p#%p(8 zj!Q_1fzChV$-tiUneRb5w$u^`gG+<$?t6R2yGdS*OpPLsUJM*K)Yy0$z0hmi z4;BtNB|FaM_Z1#D!w92$dG^apaE2)E1OQh>28Z?huu>c&=EP zZ6wqFSqu(kij(w!Fr5AA%lw;&ux9Hcd&ju`qm2`c?Ecm&d_s5-Vc-5B%AAB?c;DYa zVe1vEWtqaiv@NJn?>NsX@zN4}9{!zI^#4YIF3n~1LadMc-gv#4AuPWu$u)4vl5|Y`Zg2liQ~iw`iz%Y7+2r|T3PV(I)!#6OS*O&P%6dg2BO;f^U_wE<2h%cVDK*poyqPxt7@3^jt z;ASnCNiDY#dB3KVcYe-0$>c9??+adL7*dvfXzXXa`t_T)M?DxQkjbn1!q zQDFsdw1k_u{>9;&Z`sz)ko;^ZT7(AcA2sIo7oTX!0Nng%XtZ%`QwSB3712P~U}GCB zPd{y3CyrCk{vDaZU5Z>E=<&AQrm4qS&Yc^-8yKskv9c5D?HXLK?IBXX#EkK;IFkYZ zzO<%kg`1xVO8c?0te*Xq7%0^*FfNlU=7}AxPMI^SxDue|3LiYHmxtU3xB=8*?tXnl z_7Y$<1ZmC@4g3$s7g3Wb9{lSjb?l0U2Z$)pFVYJV)YHFVlQdQXc_hpI?0+XMZ7b|lw*Y|i8_N_OQlTM#|*asO;rxWk%iHLh(;g^@kw)>r3my|B-VeazyVDau|fj4R$*HiyyRS%>@>=`Pxg_Rj*U| zVitIX$y&uV$g%H{_;rQsQ!YZ2a9;eRjZFtE-270{AXWVUOzW#Zd2?@jhABNY2O+tg zBeCwEEn!`Xe}1KWJDO#6#VAXXlxlGtI6@7N{e1K`c|~M8HY_5oJT`(C8=y9K{NX2r zzYVs5Ug<Agl`;DqQm5X5Srrr{7U==m}G5LBepWapVm56g4j`+4nNFCKa)8wvSRYDR3t z^~EHe&oTGA>2Pey{SkufA0@=xqsX(ADCofi4a@Zaj9b6$ne@Zhh}mQ?C9#XQhNP66 z3bH3~8tjjG=tC0>BGdL+@cf*HMb7RVD$Qdw9&x7i4Y!le^`4}JR8^RE2uzhK2P!Jl zL0AL+rDP9IZA30bilfmG&Vf6aEY9I$Y~!@h{I{pD^s`xX!uYeK<5S z_ou=;Ify)P-!|N|m`5g4QvK@)dTVw>va2<~Jfa&k`wRD(+IFI|hr+*e)D~TXqUDQQB@%_cMU~O5?`RBcHpLW70|n1+7#Vra1>_wXQ5?=$Dnmsx=|K>XU0<&3zXG7D_NcN>l&NbhW97i_Q3qb zmu}-??C#WCRRLHDFRRW3+=z8~t~OBdoAzt*ns1a;vU`mKuJ#OqLFUO(Ei;p{hS z#3I{}iAY8Xr2jI7qn%ILPD;ym~+frSTZyK)1(#N|7#&C$M0kbm?L)Ae*%0$_7| zUEP^DM#7GE!7Pk;(nX7|HRlI!Aqm);0v3sov-`+WpUiFv(F$IoMDm;_ixR_ z?Daip_H>ib)s#CB6GLO21S>@7%}$T6vmKzV|5V)J3%d|0J1d!H8pq1TFasY;&_ZU+ z>17KqG?an*+rgOjX$vCbbQA+>6!oE9uT>?Lmp!vDgUxYgOk@&4Be;D1teV?u_j|6AU* z?xX%+N_&4#+IUdjcirEa^FO9(D~YHkeiOhPihVQtwkJ-eE-R;Ij-ygwyk2*%Qf^ky zn9S;F(KkEU7B^Fi*fi^wM*KPw6EYnsb?*aHfN@&}tI$L4F%mWRC)UP<+>HYyDzb#l z>6IayWTE9EpPECcQ^F*vEoG?t7*YFnrb(Qvxt8KUB?EBv4Yz?8<8T%tyS-|uF(`g5 zHwVwB6AVd2zUz}U0ZS>utb~x87X9ATS9(a+0pJAT3w?>C!@In-G9rz>VvCT9M+!5C zPj2{F-of;e#qM{CWOldjpx>d-{+!_5o46nsDcGrs|ADsEp*OTr84T?UZi8k?(4Jed z-0;x`d8zemD@7d1@mF+0s5fV70W|d5kiq#{{^|A*KWQz?=e-+T(FJB&hAEscko+I~ z9`ipEE%C)nLW1GprWc1Mm0Cq9qk*Emn~Mp163Z?#;iu5;wQkAWlPpYR_)@SuafB{B zeh@I>P_vtvVwfW+DLByqu4nt=?LsW>#uMv10W%Vw>$LnJwQm(-IGV(#TN(5=%N2NX zKev=AOsvE<6u$EyA_$CG7>Q%N)?K=J&3uh@WF_jiDk!YDT>>}kuRk<}frT9`Y^mR^ zB6mO7E?(&+_pE*yeU;?~|6tEO9NyKZqfowdp`_I`ab}hr6nk(ls2kKOd9h!f0fJ&D zXE!P4H(2SHwCr~SVd!+8NG)G3gF zsO|zF!1gSpwp+km`3L|zS@_QsxOSzDrQuomM3}>1^5?XsFrv~TVgYv}9qcLmzfsrp zj>F2_Q@t455CAN4TBEtDH}Jc(tyKpFCFrNjgt|Fv#{nly|ElkkxpEDb%`=gHr28h6 zRHJym@tfBn63S1a;4m%1K%j?(`5i4DWm7~gytP8x(Wf^^H}dq{OKg_cM^`=Y8?_tT zF3)Deg~)RJG!I}WRl4ixnUGARkzBYn5ha(2XqcPnvzK>GxH9aYYd4-q1RT=;rIi1l z0{L&1`FAPlYGVDn(&~TWLTc1HRQH|#Uhe;2^eOI)2dN4<#Bt)kElU486Q*flE{;Ix z^*OagF5nms_9$xOyM`f3L#8NAU&p5Mup-dF?NFlW{oqkM zouXFo1A?$w#+ZAA*6lhMPP4lX4mF*^1<8mKX?a*HAH&GI7U>rJwxH{U3SHwOYoXJ@ zuHeAjj;>D9UV5?lP5W8fvEa^faCVv*e-aBR5*2-4iBDFA+~wz;`RA(yx8E?5b&{+@ zdsn}82G5J(N@l)wRRQi^3X%OH?o9+1)-l;dAh(Qg#&VM+c9_L=^%D>L1berY-qu+b?SV&wVVD~o#f@;V|v?C zHRb-Naw9K`sH_K~*AZo$GDDH#i(qWmiPH#uTVA!KOF+>4q5h!NrfiW;=kyd>dpeJ4 zZM&bMyfnL-D&$b*1Xm}I&QJC%4G0FlAhjmNgdM2fzqTEWXqml@y*kQE;%+o^e}peL z(Y=gkxPzgD$f>l_H~qv(VYCuL-f=6+J-z-R6<@|CAaArsG;)hXRwhBZKb4^DB9psn zOl?*CGxp<;Xq}+Qpm?3UX+n3Wy5c_1?E4PY(Xq4z(ik*y)QWOXgke628_+`c$V;nD z{0c-j#Kq8{3fAdhvEFr4g8N4@PB;37S0Z}vIhK4Ish{X-kQH6%H5rH&&Z2_rc%<@~ zsen1wNO)!ktr z*7Ab~QgyB98}8u0B+==FvDeuvP8w;hBplT9WD?6b0`UVU!=+%DHL<@J=d!cgZ&C3I z0JFOd*njj_{+jxk!%o%`qmq3uO4Sz2KktZ#1l`4z__jGgnl~XGt8_FQ&+{~3C;BPf zJjR)+YjHcM%F!+%QpU6xsN#c%Gsxk^aM>&TJY!tF z((-{Y;7S%$BL4s$Ny`c(IFj#O@mv~bItJxnxY_WJ-5gtY&>rlZ$(Irm49=?BT|`Rd z+^rsNf+d%TcGnDuZ_^GcZWJl}h+I~2VW2!bKOZsVv4=U&kLAZEa-B-tkNH(uVLin7 z-&lUUk!KA+ySkNsP@~$a;I>I7F++izJI5^h8Y6N=IfX>*n2Z1cRoqC5^T90+^)+pD zoNS#|y4SlorzO;+K`ngYaOkFirRGCMrHhBG)G-)>XTNu|2wg?pEq#ibG|5DF*({;E ze(WQh0HrGR1nn`E)BuG0OI@V|-YOeK-}UeasF;lF2%sm2Vd>W|M|;>aJihT)S^MrJSsq{F`0CU!zP zRL6%g6*r7hKP+2`?v1b_(1_GTw$tc-zSF@==zhsFw*~6QYJM@pAA34Tpd+7I|Hbd7 zEx`6%MWYrAUJKF^%AvE2-!fzkj#>*Z?L#`zLhrs)s>IVCdaM{WDqk<_v=xLn{w37? z+02e9#{p@$q*u(R0Tk#YPXcARwtgYnfG+Vvz3D#P?5u{~qLM%V^RZg>j-R@oln#p?KkdhO%j3#1?H zlk7BMq=_VDt6C^>U~04rq^T;C_?PCgeLKAuZRX~FRZ5kSzDSQh+9K?VQH~(J^bm7f z!m~fYfw1jCr3s_OAK` zl1Z_b3_xN!d#Z@NDMGuwP-#=m0WVJbNXK{#%j+4eKAZAi!|ySQ_Nt&dH2cCPZo>$S z_F3dC+y})2dF-J9yi&4VVf-VBiVD)Dov+~)>j1!e)geZAf&_YVC@3?(34JR~9@TJL zgoCg^d+J*%;s>EbmCg*xg8Ro|ZEr>AQwq!RRyRud6zHhdTn(JQW+Z4)yB}Lt^aFnV z-;_Tzl`J}d8Q3Qf$gcLJdq)u=S@G9atO-v%6tah^Sy1JaGHdEvrdogs%3Psy+3_3T z+X<`*Z;1o#=>NFN_+Kk;N$f97rux)F9dSa6l8%S6`LfVE81>ubgO2H|Kwg=oHNo+` zDXt7a>=*L7nhl{Cv2EFv=$m=~G=3lbQhLhp7=~=Pe#S-4Q z`6LL=S?CVs=YC2z%}MODJ&LtFe`wBh5A4y-D)hYZ{usFC^qV`gv8iDG!{2di{!9LY zcm{;)74-Rhk1=GMG&{Q%Ri&N{vj`gt)=_N)tb<|>MrJ^yPw7#sPd3qnR$3>U0G-g~ zfq}(zGJ^QwJ~paL&sSGi{==amU7&-GlVRYj%T$2ZFM2AA89v<5Ehn5?HO)UZv#tzd z-^?g8!{l6X{C{sT{#{;@vUZ%}Fem!|+wT5LKeJ9CL>>qL&^_n;-4zT^qnkk(xAa>} z&cOE);pM0U-2zYANlFY2$^SByi^z9Od}O zwc8_-a79G~K$L-WY1>U$jo}(-PysmASvwUnMi{>SM*aTAYlExyU;Lq~z-pc%l3@d& zdABVejUW&JvF7Xg@-~gP#+B2(WNcJ@@AoFWE}DE;@-=*nxnqPx(1!xJ=?sP09 zs@ipk9gY7dDynH_bff6)bM7t{$=fh;YRQLmjK$~uY%=v;?kV|z`~ilI^uYExR{>W! z;?22}S5vHgU?CZGG@W3To!8eT!qCOLWluVKDKnA*kpO*9Wl(zF)3>#*(V*&_ zWoa;*ytPI8&K!82WnuE9(`f^;UF1y0$k;PM)I1OA_YJSyFOr9fxISrXzGSRBov==ZtOfPBYW?m?Bo5hlv%Y^NuO3UJ4R4D?--#O8&%PP0>aP%^w5(s;>E?uuJ}s z`*o1}S<8#4Y^h(BTuz31AO?jV|CfXH!}71jh?{n&0Ll&Ryy6+OrE{0<*7KTgqQSo=h$c}6oWs8k z3ccSmT-Z5Sj%UuTSR#!Vm$OFrB-tUjDUbSx^fe%r|14=89P>WIZi6Q#Svmx#X7H-u zeQC!?E`HI2*{g0lt{3Hv3X!VXY9Kdpr3i%DR}24o!KYw?p$$iIltmhO`q%q~AM3Xz z?*5R4he#owSS&%V62Z4WV(iU@0tX|%fEn z(Ygc%V6XP|??oHdi0cwLqbTqO>@(AT`U>M#=I|5Go*H#zoxi1B!L~ttbi2=i19&1a zqKL+mB`m>96^$Q=E*K$n0L{k>NH+_R7K0@PiHg zt@@#Lgrg}{73rm&IxjNOBe}*0BGt|HAD4p&=s|?10NcpHP`Z+@1-gp+#MOI?oN=$n z_@LU_5aPVhwK}CL;*}H}DhF^$&;rVABa@}x;2xb=ZH)ZzC5@lbBAmA&=CmlC*Otyf zd3HzJRceOOeCS)jD0dYuoL``lMu%FB`d+{1O$|O`SJW7-aA$%%h%=AT-6Npp2i5>a zt?`;qE(b%KyyFg7cbka!Zue^ruR10BXIaUq+gXFZRKYyV58zEAPaTG~aq1mNB3l@2 z)p{F)OAb?TK}62CtFQQ38GNxnsIDLe6%QO^lu!G4W>m5{-jd1fp)A|C!mp}{fa`0c z8%Au54E1){1$s08v$i5H01IbQ07uP%$YDmrC4Iy=(0QyE)<7{G2eCD^l(Ow}StyxaL?xO#nNCu&rt*xXb}^6(fy8Ztla$S!wui_oG~G`m(v`!n znraO}sDoFiH${DbQ=QVfbvIcIIj;!EXwoy%LEE7pVOFtzbOisyaqp98*|`IZnBNSF_U2BiHdTm@LY;Vkq=O z)K@O^r0@tHBG` zmw%thi}3)nloAkxWK5g>=(tX3pC+jAeNr8kvC*XMXKiq8)A&sbbX}#3mf&zBaa<3W zmDlS-IgAPse?#l}t*G*cXYD`>b1=+OTUHAbv%d25)Pr#BkBn_wweP?IFCRr8 zq~GM>#;eq|&v0Ib zvqd)e7$aPkI^ifjmZ&z+*OWX)nm&fWY=2eXXCu5JMTVj#0m8%3dp)EbL(SMW0#cgQ zES0N67;2Z!B81#lN5H|nxcx&KV2vDhLM^64#jQx?zpn5a=8p(hekEl@!ko~NrXV%Z zGc4m@X|S%rr}WvCfe`x^ekF|+cb0Y2eum#4Y?XI{O?VkSR*5ChiEM=Ui@tzb*^vy3 z{g|Myi?F#;$eE4ffLposv>3IJ7sQpNUiDEhPUlaHtcOobHxQdaYzEd3b9T>G!M)_A zgf#tQFyF{6;OQh8*fP;Bu8`Kdc=jv5xHA^y^>*(B6vK1PJcJ^qnRvJQ!b-e%F^<(VPX`BF zjmF)ybONTvLeGVy zeBy+(em^e{LvSjiJb6=PONck#mDUe)`n}n{<3^k~3)2iSp(8D7!tuOtg`LQJZXVx(PXQOY&O??Xb#E8xth)Di3)7Bp_--JJfE zl#34mJQVB&hAvo8c8aA%h8R)@$KhItwCpJ!RYY2>qpi)bcUO98I+;IAV?YZ&tKo}% zMA&Egydv<;av!5iR=-DjfccqSLzzk8l7Cn;e~dZoC+0d9zF6fRw-nk9HzafI2b0xi zMO(bv}=$95epD|G$v;0_^ESx#cjA%NyIjGitlJg)o0VXIDFb$qV z^ER{QG)x7$L6G*Y>&7_DgUH5^8+baP52U3=+5}ylAi1igNK~0YxU-74T$&mxgtZs+0pYx-^<{$FK+yR#>F5p0;WZ5t!R}!`_rh#& z$4MIKkN9r-N;(galj($>caV60v`(`n2nb6A!~GcR4@!OJl%YE5d7oB$Mt|x7f#Ap} z89YxC3Y|WBpMwMhFL-vOZFlO5efCEbdY=K$)z@?l>{Wrw2FrYZ38Kw{f0BLEP>`fG z4Vio3kD*{!6jwyiP59cfx;eKL&B`;7?uqFQyk)?dkCkQ3Pv6#u7hdAZ)$I2zRM^qI zP9CdNOx#yZKjQBksm98N(k9#4_T{lVJG1`26c%PNG|&9m_q2|-Sj26!e0$xizRBAY zI;xY2_eHTV!7fxA(~Cdq7=4`kAu3JTPooz0dCQn^AIY`nZY zT>gh{>T-Q1zsOWSf(YzTgH1r&)$D(I;KU7dS{GC2?A!sh&SM^Tt{IF-cQj}tP`nV^ z7Wq1r92NQENcq_m*{AbfA`5BG>EN}9oWW-P=uz3Ik$^RI&8%|kOPd3vA(#6h>qFF{ z_w%=j9;*cl+$rlA&s{dh*_Pd$$mBd2So{pp?zAbolEE0X1`l0fJ7ZjoN{)Lpwh&PI@)O4Y!?c9(-ex_Zs2|WP_ zkkcOe2A1xdzRQEpH6oWi6Lh2zyQRA1e(R>tQkKO4gdQ*GnA;4dFlD=M%_zX;fZ1Am z-KVJ94(W86A8sNS#EhLGn#UA5U1yDo6F=ZdD>JrlpNYECOmq(jQ&ww4bU1jZ;@~8V zA%X;_!k!JF#X~nhb*yBnMu&cxDvP*aD-Jltk3xQ!>3vN@#z&PT%op;|V{1iRY6!{R zKsuTe2jn!gSc_5K;ZU9Cuc7r6nnS5-qVUk)-l?GY_lQJE3)wTAx%e%X!?*##Nub15 zHB?V8#+~G0^J9i&aL9ruNAGNXKX<%XX=!p=r+-(WwcPG=y@L%gLsQ~fqNtq1~uluLto2Vs`NMr zcHtIA<&7iab_+dd_RU&Y2)IGWCQ5^|t>L9z!EIi(K5h>o8AzWg9zV{tmbq{m?ve2& z(P!8B?E^tu#&U99rJq>jyb2!jEyppnAyfPs#;?H1 zT9fYSNjXsSJ|psL=_na!GhKV7dY^@`_k_6)oVCalXu(UH&@5>xBH|{#;C~n`6Wl4Q zwx za55|e8g|hI3uWnOjR2uVJ+s9nC)jZ?(6FQOXWHSm2=Zw=XC0Q`*wY_PZ$-L z^p^HU*t-}Y@1vE`-?#@rlo59+Z}07dKx*IAG9jF;UBD)7iELKMM1yaGG zdkVad#Z~{^!RZVA#=dON+(Nu`Mmmfd)<4J=v%9Y9Z68+beRhx{fPz4f8AS!dS32Aj zrhEIa5BaF_(GLBtGwU&Q8;BV-orFqjc8SPB$6xn_tE=`AEcR2jzTW2`zb=xO#{zsl zv?eRBzEfMTvZF4&u^@ZGB0&jm^|Tr(LS^XiosQ;AIH4!Ec^9+AFNpj5pqlK?Csr`# z;5%2k>KM;G0)}=m{QR>U=qYVUswg(vY1je6bz|Uo=G4*2Xt+9#8K#7TdPAc)K9qTe zZ1Se})IVkt&ytUPwQi32L{C!?dMp;1^W*g&M!fXT5)N85`qB7anzJc-K08X;m791X zjhH2{Tf0DfGquzS-s%uQtg8jVX*XNDahl)x#N!BS(v1O;R^xq|%V5;s_!u3(ZLH#+ z>0&!waSJi|F)XGR>R>8!+$}&s@<@pQOP)d0^_%R0Ve?#5LeuX7|6rR zDcvqcX1T=p=NHMzhPB3unb>9g#P8ij`7-GUe~CDa{#xpTKj+GuQJ ztZyaPb4)GnX&O(39$VAmelEGAoh%em!pJYR9g#$m_QfALZ1eVwn$EwbG5Xia9x^Pp zO`ymJkCw|;GG06K=gRMz!arCdqKy>$KrYAc3B1f>ywJl<4%c>TJ9c}2O8cIwiPM+B zmFRzCe8`G=%a&EhgG4_@RGx3x2isZ~n^jdO6+B~2!J|@ak{W2+m;dwy_x_ksuC2Yr zfrOCeGx@DkFMarV%UZD*La(JGkE@~5NFayk#SdErTdzEG(f-`5;yNSIz0C<|ug^cL z?t1N`b6Yo_tX!y4@)m_3D2Kmm+J=P*om102_oI(dE@u7m&iLsk!ybB%mMJ2B4@-DA zjxHrIE%mGKhq3VdTJV?HREb5?-jw1vXu2m*jO8EHf7(>^~p{)^10Ky5~OPw%9_7Meufr( zl!EjW`k5^vld76h9Qcf}J1;Kfh%;%EC&OgDlIU1S$N$ky__OmpSX?RybohX``s0RH zEaSogT8o54$+D8b96ADmJ*+%jpiiYC$i{&TkxSg;w{Ks?X>@*M=f=sA@loo1zgLW? zdib~o%6#zPIvbyM`Qg{}h+DBV7}%TEC=GEtRRZHIERX)yz-EI~5P`Ho=LzU3wh>&!2LA z3!zOL(g#ev@RCnsI84h2j#OgeeGJeM<@L75uU#V)=M6|c4A&$xV|QTVCWB5%O*F<{ zw|_l?#6;h8?~lC)Q6p<*^BMmJS=kzC(iu4yJ5RxZo+g6~yDeyg_@i#sn}#h~$S*Gr zRFMrblZtWE$}@F0<@-hY#t+4vmNX@6=dyyW_DAV6M}ESY9qqf%rdYY#WTU4ALJ5Vv z!3z%;E}fb%E+usiPN+*-YNc%$>q7`liD1ogCE8T&B?ftB!bEesQ`sr*Q34?O8V%b= z;V@0i6!?AD!slybqpA;OW?fVE?=1K!gz${L6KRydVh(oRQ0;==W(~E^nBToV_rGvs zHh{ISy&TsQkvSWL(}n6gdW%UC{0Po*;9H|i6lDulMY_rg9K|&zq5+kS;VG^8Xyqg> zpNS+=v}4porJ)bnt~y0+m%ZuRwO_a;m^(5Z#*16a zm}JI@-RvvXMn6MRj|z%92;|Up>9^S15%Zi|w_bdc39g~&zM08pI0_Ol8J+~j`5mOE zS*VZ6=Y`i&+B$aM;}cc2Zd8PT$ zdE}~tKj`bR!&p;cAw#uuL<@;#@@Ja-P`h#w{zNCApRW$QgGtDU6wzihT;WdzYN)Y^ z)9uL(QsMk%z;PyqsfcK*rKA2IgIn7pjH4ndPm`dhFWqiiKj0rTYKkvhJ3x5tV%)Pe zb^y|i!rh=`Pc00iyfJ#}9^Wr`{2Mh|2=Po*IL#@T$e))@4q3bg>~rN=p3sQ)aeKiF zdfkum!T~q&Tc*tDY7y<DIwDub&-CSqiN4pMHc(Q9{LNkEPdt@)Ohl1rqfs-8zTm!c=5`$T|6!i zrd<17maf?c498Xoy>)?VaBq^ToS7Hi&(cml_}{XY_<4)Kq=W-W^^(TE7e|e6#K0#F{|NbLf9%X#k9l+C5C-eZj|cY|2y!Lr9!tJSD&spDmr#)S+HSHb9BT27|9u|;o6b`(}Z+druq z*NyJzIERKX{asE8JBj*M#{(~D-g1^Q5xb!dO(`_6c-(O=p{KktYbTZRzmw}0!iQAi zSGiRvGE15`QXu7@Gl`ut-b2Iy;BoKsl?G3_PU~fzgXn&B!0O}~HL=(mUhZXva_;Px zKWag%4fnf-mBZr9OBt$TBgb&dFK_pP6sb#5X_*ub_5G~^Q%fv99L+m+xbM8 z^flPW;ZMUeUdB4*(-T+`nJ4`%SjFn9Z5Oq3N%YcM%#tFDm?!-hl2;4okcs z9aXdyGtd#oeAK3}8SWM6atRWINj^T^{7d~xA$GoDL9G1hl?UGgJ>xYCQ0ztx zbWERP{M!Xd`~WI7iQR^eC#NFu4mj5 z^lspDvQ*nRSFgobc1@9WR#_H-?1|k$P}{5I+;h%%^errqG;l+;(EmpAW5bYeIpyyw z)diVENb}XyIoU2mJ}uGzi(=4|9GqxOMVvk(?nhm={mT@U<*mRIobG6hLw=!Y!N|)+ zE7KsLkDD3;T4gk(OMPt-?Ap0=QJG5R(sOGIkQN1Ofa5Z|-Zb^1 zbR)R6L{9?XUxm#D6Sf#$&mR037Q|k~bsZT(9%E;+&LyNua@&mV@YGz;)FE{+E3pIGRCO}DcX2#DUk|^Ev^nTxMDp>`F zuo}SyaeRpPyjBceY)6-lpcZ|Fqy^zELK7FHZ$wA~J+-~OaN*wUZsuew! zooxPFK3-My69K%DV6MZctM0c^Tb?YEvVnz#L2$ze74aJfrH~J-ZoZa&l~9v zb61AEal&1@O%(ha^pcxbS7J#W8m{{`Dk_5NNItbKmtZ{onUK4%vxg!EW*}KjX9g^< zRSpiBWv#6&-PRBzl*ArTvyrMCrr3KNtv~}2D{GLp7m3M9UOhS{fCvGm( zb6mh?A!RivB{Ef*COVP`V}%56yp(ZPD)61{Y(b=fKnUFhqjCyoAoSxhZ$=<_sQ*yo7Bc zxbEK>RASaEL3Y-kNJ8$J264|ZM!0SkIrvRl?nYhLlkK$74QL4_52HbOa2TM&zaYpr ziE>GKqNCJZt7|fYRftDKycy;PNtOE-#oVvNEDEKtkgxN6UFY&t)Dnk=_I`Uo2k1_i zqpa>11BF~B_RQul%3ONB(vV&XQ1JC=wyLE@+t9fpP~Z(m1L`P~5$IWd?yc+u4bo<< za$GZ`m=fo)@({d5FQ}1IzyskLG_}76Jw0}G*hKgmMhTp8*$P0NIld0sqUYRq=-O`2 zr?C^oTIK~7UzBJ8n}h1!sWV|P7Mxx5Yyez zm(^T`RD1>+EFz9~BY7ug=Jw-!eSXzye}XY369NcF?wHuBUDcsQX%t8?4ifZW0}+*e zG||qZ&~FrK#5w)3*l0t63bv#|8)_<8bxra*)bmZS7>z?9Y?iN7( z(&l{V?6MCV)Sf62(TJ!RSZHX<&CxboTt0@?$JsZvmqaWLJv+Tc>L}e&HvvFgBkR)Y z=%j3LKOO_O>90Wcr|blJik4ZbMtQ;%I)vxHj@#Z|`M^10ZLdd>2ANm&phJYNY1L#_LfyoB!kDw^A{fSj3<-C7R{ z-hvKgG0#!!4MPP$WW)#`-k&*~k?Xa-jpiPrOpfw7yd?$14nW#-wPB|ySn@yhMgf@A z>k2mJFYgc^S!)wNjhwmPp7n@fN?WA<>}JwTd2-bwnpu+^;3P*zj$F_NoaTsochGx^ z0Bt9ZzEuTb-iq6(_Z$|~j+vO50Qc4}mYOHXcS4{iR^Z|?+%6lYa@y@$KC6+6Gx?Av z?Z`J`LAwfROVlt6OYLbV1jk1m+K0-785h|E?UeCuN&s9|qAU8F z-_@wrLQj3dM6AKk{laS*mzZxTZe0b~K>9v_nJs)$MLhzFme7IBuXnA%RwA@hsHmR- zOOetABPjvJ#$k?btY+qxgB7;F3e0mfj&u$d!tF~8fGdRc@oq}j+Db$upsl{LC+=-C zS9AgVx>M{;1kbBa0(w@9z^Dc}Edg70jC*#76iwUXZ}bu3?Xr)&|YbTo6p{TL~>{+R%+loZA;} z;29id&#NqvUJht)NnF1|oCq$v8F^?S7pb~ak0w$sP@8}xcNp7d&n6u0es*b~xO3*8 zR1g$=)zE^5ECwo2dY#T}g-(@#U4pOQhBEZ`oocVj7`S;{07$zJEMT#e@fJAhDBrq1 zPGV|r{lr$0o^4ia@yuf1FD3$c`FM(ZZu`u>eSQE({Qy|;bVziP=~mi6G5(NESwa@kXU||***Y@!(OUj zM?xUthfzk#+7ZVvr*&LLqcy1grJjFV*+`wmAZo_UxTB3`F| zQy%<8?L{AYHd2FLo4b@#q$;n2wo_@9y!iZuq+WXcIWW}*HpJG7P$5W}r7i438hW(A zQ>&|Q7wGMIiJm8TaBot4crMNe@jx~z<7MgDcNIyjKz|R1g(vJb zqb90u3jws3%K`5QX}2h8Y)Vk4E+PGcG#cKK69$7@B$+&rvaynJVh!_VKXLQaf;KA^ zJ+_L|J`!~ypu4`^BqW^$;9HNfE&roa z?=6fr65tAHxTGz9N8b1r2G*OQLqA}$5I}ydivjA_DC)GoKHhN)G!<_rNbTW#8~LBx zDT;p{j8o5$eE--!#!%PYdnD)tb)#qwmP_RLwhv>ut!FaQR}uu?Jy?gxgb@|d=$qFk zs}0w3E;6UBcXUwv&Hy118|y=JcAV~B2$H?pyN#!*FtEJxvBTtpml94-}kVmJm0+O)dPiD=vd zBOwP|iQMUNjFw#5OuxzyPFh*R1_$lnNkpiZ^1u~Oq8!)Np(=fJ^rhsLV1gb_dAS*y zP$AM&%cUYW7h6wO`$r=(wDXID@pMTBIzhMNf}ArW-W`TyWaRjK=w++ohAqg+_D&`# zJ+@WJM1;BRb_8?=(f)&*+1M;x7F^6HKqxbc211;;Lr;85E zUJ{mCO?H074KdYJzWfMdtwYugP3P}YN_ay9&Rb-r;t-NRAwm3Kq4C!BTRo3OY4j3V zsv)K!!S;3XncrQk99CY$vaD)L{RcBX8jr#A!)!P*rYT(TY8kCv;D0}ur4u-N;((!lZ zUKiiTBa?-4tc3Q!2%)1mY&ZJ6)#nG+6rDR{0_0vX zDu+HQ_sCLXA1nkEOMLxwqSoWcoL=eyas;e4y(9iG+VFLwH1(br1qV^L; zKu98NW@YG{x?;kcde+bD#+oc3ip#o`oB9P|1mR%;>q%_WvhxJjOK5{sA=Na-j0UZ@ zI%|zj^0d8mhSsl?I;Xw(PvhuhjDq^SZ8>T2tbA}$IW1V)sK;6xYeSMz@y$w$$M==g zNJWe53mJ!{;v9J-T(-njM~8eXn$h-b&WpnqMX#xbX~9O_lFY}jsbnh_&-`KT?<|Dj zY=dYli`j4792r5zW2Ub*r}V9gvx>AHB=uISC`U+9TBS6A>R>h^QwGX-Ve!5I!{muj zGFC_26uM6i!44cib%ZOCNS84Vrykd;hs77q+M69TG9hnizKsQp-?EkZwHG_JK5-lX zJUITkS7+S}OHj5oUwFTTw~ogSt>=(ZSIcKveV4FiYlYn0o-JPGc~Cbfv?y0HkjPRy zezpY1O{w_qgW$1sWYFH1*b_ zDKA!g`|9jsxBQ%8;vC*mV)L&W$inC= z$qZEAuUb!?*jpq9=f@_~3DPy52vFS(g35+C4jHktc$d5XdhAw@!M>yOAP18MKghAy zM3=llRtrZP@*lTj)u2G)e5NkNdVwfD2RbI`Wq`G|u;pYS!C9VQW~rHj@nusTR!VZU zqcN2!>_#xW6&wV_=2ID_BbWVEa}mJzcOcUtk?z;6OE0#k+Q}v0 z=C42VC-NFx0#7LKPb6+l!Mubj6lKGAGZi7Ah57j9Nf{}ln@iH<358;vJ*newvIsQG zEbXs$u1uj`t?hAHTsX*x(Mv=J6fEI8)yk~5Z3W`9{jMRx4D9)S5{7(Mn*!JBz`e5>qa2_e2Jtiz2S9`IWxnJfv;t2~4?K-Xg}!lU<| z{y{EW-)wn(4+V_Ufc^hf%3 zyt^qcgI+$5BcZDk4mt-BD6em$WVd$*Eu$8dFx|}M8HcBr4W76dQw=3D+w*c+ zrDy#v-b0pU_5{9il-@Ia3xSfLz}HL3I(v*ObNwWAZnm+mZQgKO5?cn7p}=L!EPjaEH;i z{05di({o#+%mkqlZ?VpAGQLpLF2{uRAJvJv`8J?T@ngvl@D^LmDcj@|$YNUvVUtOo z4&2-kj*BsycNA#TX`lm?t*lBj7T6hwK10vN_98#Pi}YchI6sOK+>8A36^CAGpD+W27j>da1J-jaP2L?xc+pVHX$Ky7-pm-nM( zgUWeB3}4S^e|?$eIfXi-IWC%uFvL#yk--@+jFk#-*AS>*2v#heG+dALyJXAzhVYuC zUM7e&^=LP5?-zm_(HR|3t4TbC^>shFlU&qt?X`Z65-vCM-K23sY#fITDCajJldFuS zA9^{t5WODq=_l%g1-6LdM8^Rko`D^92!p{);74TQr5|r#ow~YwKJYBk=xTjQ)DJlk zbSQIi?`19I{xj@!eO7MjYR8bbF4$6Ref{?p*b8EU2KA-7zw_oHA>&PuGyNh$XidR- z*nW}|AP&hu#f4z-?9JdYMwDR5vpV6Ne=Y_EQ56B-#}heSB#cgwC#Nn6INPs|1c-4X z_6ZU(8r$3;=~_Pzg0ND;?dyY0y*jtSYSZf^i+)L*Athu%+Ql3Nw>O+-9jI#DXOAuO zXI0^rjwTdU4Of1yuGLk%vCf>YrnjF6_$gnZi`JX-&B|||O;Hze)=|=D+`}!%lfVfw zeBR#dF4Tm6YJJ6yvaN*0n;g&JuR##xtL8OPMxKUV!J|o91xgIKbG}(B#Ef(I93Vno z$~8VOq6E~8y7(A@RMjm|tQxn%EcPmw!Z$KLZ84USvbFLU>sM-s4WB$N5|m+hx>&2} zSuD0~(!oRZN^8y|C@@%bLxanjp!8YvH9j>Mxwvyd6p>gPGR(;Y)^%Z~>*FpD1U}zI z7P86as*|%RyjBxpkJxA^{~yxfoBYVAI5^$C^x^9Ffmy}S_w_SN+wlXEvj8ZU)CR?d z{>n?b{+!E}yh-NS=zx+HL4_z;Bgga%T6)^cJDTKW z$;J__&|qEg*id*Lmq)%U5v@>XnH0F?k>X`duSTx(KgfZm##mfHoAq?hVpy0%JIO0^ zkogr}(BD)0yn62b0_7cispEXhJNQ%Xvbsv1wWK(5*vyVaxox&}#_04ISn$VN+;W5c zz8+|9TI^ZRC$aYpH{D&zy`>KdS18JY(7)-vgZdqtpMXE7MWb8BIHU7HF{Lz1F_3xZ zS~D=vZxM<8>-?na$4k7pnQYk7l-@!AeM(l|pxghjM)&()I_4BYZwyy9o275)Iud7B zU~7E=?5GfVpUNp>sLAWdxMr)tXN@<{iPM_wg=K-Uk{I*lr9FlW%S?35JKH{pWHhE8 zKPg3baO#4~w1hsIBND)97sdL+Oa6BSV=-z^r>Ml+MFa{4-9s|to+*|moP4R?75|s1 zpo<^Zkaq7lKjqd}$#}mf;otRr^c#B=@#B_=PDGg)nA_;XQ9^Q^`v-b zfQNG=Sz{%ZQe09nzT>@)UG(V$_v8-g77|IGT*}#w3PXA}>X#qej9s3+VFUo?Cw@s} z7dt)uVE-&{OnhOvsd256POf?3rVdDum2cG-nfWss`eW-$y89n-Jm;5;n^6B%`P_W$ z&_y6drg|AYK#9iYQT5HQPKc)8&6VR2sO;(P(pXy;HOl}Ed|PjPC2|sFeNuS|s=`WQ z7z(;qoy38Qan<8a_OE&=SloH+#^c{_Uw>U&;UZd0Ym?ADe0SZ_05 zpQy92Zk#wGC~+k8O$9w&0JbiP8JZ^f=@3UL;eHM#Q6GoBF}LYJ;j&XhJl zKSSH{}@$0{F{@nXuWCx*pmbg=zmk38L&{vuT9i1XLf<#A{v5J1yl-^&XA z^K6en>p$~)X5>G)a8R)q+7=MUXQ*nZPa9E((QOUWKle0lfCo|pU1JiZebVvzg-=^~ zf<=Xz94_x(sGW6%yxs(jpG2C+D$$C}KLF^bqnA<$2+OS(^<$)w<|=4_iHk7%UV*vE z{z$x=!vQ@AqH0WZ7+6G!7_aF$NYt!=O%^>jN}+V((BwK9t(`PfTv`izyquM{pE4P(U^T!!v;^pE6FpC zwDim*#@YqP4{y-hFGFY55)g5g2>`tR8_|n)bSAZ`fBGxH{trIQ)Lbnq>9+Gv=&dVn zaH>!9!QivkbAggZmfEyobFU^x4|fG|T#}OFEFjX|js_`ru$+Ev3|Gs52`B85P*|iX za^_Q+EFymmA<}m}%<)ov^H`Porudw}2p$+sl(3a$8vC-nwiyp~b%-Q!FL~dYt{IRX zT{Zh}DV*>{w+QQ46>J%NpuKZ8AmROdt%~XyYA{z#MUT6ojrxFUNrH>8M@a^!4n1ye zHGwMpt&ExB_klZ5ymX(6E?h=_aY6qtDiINm>|2WG54il_QE+?YLqg3)3t&7>To_g1 zh*V{1f{@gf8Pttu-gu`+E_M|9uEUmUia6n?PlHE3Q1F>8JIs7wx#pUR{YREn9>lOg zVzgn27>!@&xDt|6l#>q@zz2if+8=7ufE6t2KBE2i5d@hvWolPSJ;t#ji-Z!uf^Irj zktZBUoHe1cW;|d~MAp4CF2`XXXrD`ldI+V9J66ga==Rf*cKYb^mZs`@;{~*YJK~A!+eu<+PJ=|U!_>q6wSX>Zu&nY7WkLLay;|lIf)4+*cl4t za+z1IB3mSurd6tD!j3ov;bic5zy3Xp=f0x^<>aT7?xFtuA~CAD2RS@5>Du2}$ z`X|in(oxJM9|Q~QL=?xGZdkeydY_VRa%gPRf~TIS>FhLEf^@CQmp}B4*1rK33NTQ^ z>d>#Zm2h`~{CessZbpZckwcS-ka>4ASDsiD%JmpMQrJF41 zkPCU!>PCMZx^GcG%`(KMp?OReb}=1Pic$+=YXW*ctbk5yyV+47c=^Q> z{90;CES_Hk6KwB6BiwmWFcJOEuC3fYBEfMXs&fbK4GoUg8;<~wE%Iu-dw}w*8h;-% zvu;b6Ti6FX36ly9L4QME+wx7H;M1MU5V0?q@+N8gcilx3wkkLdu4)7p5JLLHZ7_jG zM6Gv&hW#11?izC4|`2;c}ugF-VC6|W0GqfJ0b zErDd|7yO-+myIC&lj4~}3}o!X)S?cXvZ)C&mjCQDgMc?*Vo|1fc{0f?b@OVV?_T8v zTrv;xLP0t9D0Iz5U}1l!o)gl?xS|qH$?N4A4WN!oWX!^IRHnW2?{3LlCk8q(gN+zc zb$e9nYPi6}B>&Od7lo2I{jlf<9-Gh~xb9YrH^zd!SR{laztq=gQ881$36D$!k!|eV zHdg+>hDo!dXtLrkK`M|7OvCoqKFj^6Htm0R@Tz`k+J8lB11CX=TGB*dxxE=VFknvT5?u3P{+KUv{N`SW;vn<{y>)H$ptL2GJN*S)y0dvYqKxX3enQyHV8t)JOb!Sj(+bDW4fLl0*)$EjB~=jARBPX&Dsj4 z?>D4wI3!vA7SlTebL4$$%W$VDv{&C^!D$lvP_2*g1Y7`N`bp*%|B8^5-W}t4ZI^QA zdVU_qcq*r}OxHE>t;&>lXAF;PAILj&#Y_8^Z<#ds1f z|6hJLA_SWGV(=0a@;4t$tFNgu%p|xC34=Xe5bSmmp|ck5nrF6Q3Hq)N36VRr=27bN zCmQgr2k|+rvET zQ$$$o-k^*G8Y#&k-g-sivt6r{fAkAhZI zDLX+qsa1pt+er5F$DTS%#_ZkiBz8B<5(d8%F=ef^WM+h$uLd~jd~a>$v}UEwc)Y*y zb>)(4>(1GpkM?D-K|y3*%ln}wA1qvaD?C~XBVYop40rQEt>M(=1b{^Z2CziG#?N337jn&zLF8f@@>|=nzX;RiM%N`b-CjHbO5z zZbtC9#PpOL+YhLR!&gNT> z+XIv?vR=~)j4cCmlCm1ZsE1Glq=?$~Kd*}_zH&WagBr?<@oXIV-}A1<%O znuU!zI673MYT5>|Cp&Re9sg)+2zMHbh;7`dp3{N%R0i9!&`WhjHIp_!4i)$3{oeB; zV+f*w<@9?RDX8i4gKq3f4&HawSH`Ydgm?{y0KOz#U>G`zm@@|Pg>|GmC z9OOAOUb!Th?li->0yV?|DzH)*;ja!&N-(X}N;Rc%5ABRTY}V4SNl-W0G#T6vT16Ei z#}sgL*fR%Yvip0mVUCoJDW-yZ*52_BJ`@&r;l0;H-?j$GBPQ9d89PJc&F)FEjJ|ib zjmvap=#0X)ZdLChE^k!{OZ6SD+xrBTAQx~1;$v*)*5cd_$vJP9``2yULjZ;UJ5>Vs zI@IK2pzdXOxK0eT9r}*ArO%4-`+i|@p3gu&c7Lj-HzcuO=Vt2f5#YHK#@n-lsynJl zF1DF_^Nm;OyE@GurDqdonWw8iK(-9Q^CP{R;WXa2ity$LQtqDY(#o@LIjP!hAP#277>e1Ez>23;<`g_LYaOJ_4k}u4Ie9C&UFm zF$oe1FWa~2$xH#w)$|*bh1uiLA&D4jSTUR?uHAOh{qj)eX-n62_}bn|h7}Ar0BXae zbNil)+Hn8O-2Rtgp3B=LDaQHKa^oaw0Pw)`%kismUbr&~=%9MIqrT{_0%CGHb1#jL zkjYpHQX*a{oL|XE-N%aj$+~JW=(QtG)6!b`$sPGW9Z+G;Du84VJIK9c{5AKwv{k!Z z)`ylk#3f3a%HM4I81-V;^sl({9OcO-F+-GccQ7Aw;DGy~wGoL7@7o0f&GPA9evrAO zt`kDNAhOe&@imDPD?5Odl;T1Y-9C0Y0k^fuFh~M{k>Z}fp7@S4uAL~1mhAY1nG2~l z>Nwp&qCAB(HvqLX^AyPe`aG+wP)HNQ2)ID{J;8P!w$ZguGj9da8!(m=| zKY8ipqZdXIDMG>AJ0+}+cC%d;!VKH)${UIj&+M=$Lv9^3Q?tx?qhWu41E4LuRmC$d zo*c_OAB*O#qZ67_jm`9gtUsV)#fWpyqD%danQ=&E2=>^jd$icKJO2M)XKlOB%;ay! zmqANCrx6Ebp|Jd==Iwnqc5rxc^oia}%2n?+xAX$_A)b@s@gUDx2s-D(gwm*l%aM8o z?oquVOn^(Efo`TDjr{au7RvigSYn``(XeRp@2e)G9hAQrR#Q~x9N;Ma?VXgdb(CoJ1 ztARpd!th&kZKu`q`23=ySDr-aE+vHr7e(X&X*5f68*Q7>)%4ycV?nwt=UuB3;R|%; zaALIz(PIkE9I$yR)icLJ_9I2`u{QhnZs`Su=mkkR6LyGk!brt!hr-{CIfrC|#Z-Q{ z@iMd_%q5{bWc+F(rj7%v#hy?mlMTXt07?bXnh8B zH~57*`f~tFO&1bXM(yiV$pg49wd~tt_8;USwnG+B3rC5q%{i`lTXWh1IGObGx?YQ3%J{_^m$t1-xUO?6|#0~(%eri*>A zbh+^VG@NBtwb~2?&o5OV1?T}BlA zHD@^!soO?E9%$#%Cc-*ilstZWdIGW5pZ~j#BO`_E=4a4?#2(t4Qonr+s6#mx3}=X%&w+4Z)(4d#D5o_BXO^<;G!$D zqRJF$^I8G&^r_o2;KzkKJJr{;UpHubIOr2sgcQrL5ckF(*p+iai&X2-cxVSHth0*F zg&32BK)o2wjqNmgyj)c<0z#y41^2lz)GTmmEac|Hf!+DFD-4k-OW7TIWw4@wuR{L4 z>iVm)+&FODKcj8F_LagNPiF~_>CQ%B#|(G(j@hZ1$`plVx3U zTI3okMYQ@BB(~7H>ksfRw6Dppt-8DV>IyEo81?c>;u|oA7~~F))xUyTNJ$;h0dfRP zk^pwwm36)H6qBguPOciB((yVvDr7fJmY}gHh1%S=00+;;wlBH=C^lLLREoUK!n2Q# z#rbcxEz6nf7MilGv%TI;p|9s-!NOnK53%~-apq3A+6lSW?mYc!X~4Uw4XuI*hD;j_ zFR0Oz2VjaEw3~Ef>VoDeu(Qi(>M>H_$_PP|uIqd-56(V4kELexq#~kzqM_uW2YYW_ zW)sZ5W-dO3xl{dVE8X$r06c z?ZUQao+zgf#cCjVW*r3XO&t=mo7VQY7-UeoICL&+r(-sts%x0Xb_=;4#SvB+LFvP$ zxUn$HVLiQ}+meyHKCOK|)YIe4RQ{DPyuF3qNH8ju)t3fH%to0sV$roblT0ZAY;Cbg z1i*7Cvis7a*7)U-@<-ByG$rb%)us43hxU{YcKeW;cFr0P(K(hd=-F)D^|a>k?@7!c zzys7O#?$kTk2b0ORaphX*AhN*xF)Ue=6^1P(ezQ34+yX=NFksxOmxAd@?>V=KDRoN z6izZ!U6BD@Aw!U@)%?6tQR)%{x2WZFZzBiMi0W9-Jz9t+D@pgM=rHnLc91|c-Xc^> zoaSU})sp%+d6G@&eDLU-aRCxObz7B?;+NTn^d|nKNql+Plt3??xcVPb5?`bmzD;!J zNFf*uk+}9Rg@u$^lBC5f@$|7_LNtx8uuBxKtXnRTI-=IA@9~3tyeaTbB5~+nB$_mf7l$jA$;`8#Jj)U)ncUQ?s*hgQq-$@32?J8WJ^kK z<-c>bR`21jd9z${4vI(1p~V-SP!)GB!e6{7&B3dC=#8|QQ=bq3^V5Y@ZXa0T;61Y? zHq7Fo6e{R>s0LdEl_r72M^6}En3OUCMC-=8y)+M{Bi~IwZyHf_aOhmuPR48TW#>OP z-!p$C5e`QrM^)Fi3fZ1`qMSn&sDb61Up$|b8M5q0lDEjKl0V2SR!{qV(V;h7RPx)f zLz%I4T=~^RuN0VL7S~~^&MSESv)=eAkPlB@AzW~f{>XPJc`r-BWj+4u=OuQ{_1GWyZeka&ATpbNFIw5dI+LViRMfOmb^-l(*!jD z-5`IY@j=$ET|S?}^wd_7J!Hi$pxJ)u1(lrUwigHq;t7Uqn2YB!4vdH{b*Gsm1u~8_ zJ)#YtOpy;5e~DMZFOjwP!y|I9v!VWkmedHjlAJd|yrvGwfUc0C$X4q9UMVQ`2?5*H z7)u3$>i$mI&h;$&mRE$R=J9Q5!6wEeYP|^9r)Ki4#<0kyG7z885g^ONgAPRl^I8aRQd|3m*2@ZRA)9rf$(fk+i1^rsU-@LAN8r*s@t7RB2-hl# z>lFBU%z0_&+~{=_v+vKi*p}lBsy4Ft`Tn&;ft~?t^OP{`$4f<$xQR3QCdojlwc~9$ zOtz5cwCt)RdYdhJEXzQo0(9nQD6>R@(uXjPLw`;HByHf@;lALGe5CRNMI&evYPQ`H zBglGVyTB@owjC&Lz1sU9{j2`@99^H%+zo8N_rjH9g8+Ivp3;0BdOF!KnFx(|Ac8EM zPRqMIXU-fpZR8gSoxuE>&RZfh3ObPW>f
vYMe5&?^A;DYoFvW9dv%AF9-&wqGY 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
;?u? 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 literal 0 HcmV?d00001 From 9b5f4819c657bbf908415775d689e6e6d68a1a2a Mon Sep 17 00:00:00 2001 From: Mike Watling Date: Mon, 16 Sep 2024 13:46:31 +0100 Subject: [PATCH 03/35] Renamed the images with nonsense names --- CHANGELOG.md | 6 +++--- ...74378b896e717e6de5329e5b55eb94b12ffcc4ea24.webp} | Bin ...effc472a467939bc35cadb83bad75aad4ab9d37d7f.webp} | Bin ...be044c8ec781692afd83f2e53b87a77fd42a370165.webp} | Bin 4 files changed, 3 insertions(+), 3 deletions(-) rename docs/changelog-assets/{REDmod.webp => 2cb64fe333e1b494f89de774378b896e717e6de5329e5b55eb94b12ffcc4ea24.webp} (100%) rename docs/changelog-assets/{TreeView.webp => 6c19b8d75d09172e1a1913effc472a467939bc35cadb83bad75aad4ab9d37d7f.webp} (100%) rename docs/changelog-assets/{Collection.webp => fd22c03e1b3b444797d997be044c8ec781692afd83f2e53b87a77fd42a370165.webp} (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 277f8e7d20..ede1d601c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,14 +9,14 @@ This release adds a very basic implementation of downloading Collections, update ### New UI for My Mods and Library The My Mods and Library pages have been completely reworked to use the new tree view. Mods are now grouped by the mod page on Nexus Mods, meaning if download several files from the same page they will be grouped together. A "Switch View" option has been added to the toolbar to toggle these groupings on or off. We are continuing to work towards to designs shown in the previous changelog. -![An image showing mods in the Library nested by mod page (left) or ungrouped (right)](./docs/changelog-assets/TreeView.webp) +![An image showing mods in the Library nested by mod page (left) or ungrouped (right)](./docs/changelog-assets/6c19b8d75d09172e1a1913effc472a467939bc35cadb83bad75aad4ab9d37d7f.webp) ### EXPERIMENTAL - Collections **WARNING: The feature is unfinished and not considered stable. It will not accurately install complex collections and is currently only functional for Premium users.** We've included a very early implementation of the Collections feature in this release. It's incomplete and will not install collections are the user has set them up in Vortex. Currently, only mods from Nexus Mods can be installed - anything from external websites or bundled with the collection will not install as expected. -![A collection for Cyberpunk 2077 installed into a loadout.](./docs/changelog-assets/Collection.webp) +![A collection for Cyberpunk 2077 installed into a loadout.](./docs/changelog-assets/fd22c03e1b3b444797d997be044c8ec781692afd83f2e53b87a77fd42a370165.webp) Collections will appear as a separate list of mods in the left menu. Users can view all mods in the loadout from the new "Installed Mods" option at the top of the left menu. @@ -26,7 +26,7 @@ To start out, this will only be available to free users, but we are working on t ### Cyberpunk 2077 Enhancements As a further enhancement to support for Cyberpunk 2077, we will now detect if the REDmod DLC is missing and problem the user to install it if required. -![The diagnostic message for REDmod shown in the Health Check.](./docs/changelog-assets/REDmod.webp) +![The diagnostic message for REDmod shown in the Health Check.](./docs/changelog-assets/2cb64fe333e1b494f89de774378b896e717e6de5329e5b55eb94b12ffcc4ea24.webp) We've also fixed the issue which prevented REDmod from deploying automatically on Linux. This work also sets up a framework for running Windows apps and tools on a Linux system using [Protontricks](https://github.com/Matoking/protontricks) ([#1989](https://github.com/Nexus-Mods/NexusMods.App/pull/1989)). diff --git a/docs/changelog-assets/REDmod.webp b/docs/changelog-assets/2cb64fe333e1b494f89de774378b896e717e6de5329e5b55eb94b12ffcc4ea24.webp similarity index 100% rename from docs/changelog-assets/REDmod.webp rename to docs/changelog-assets/2cb64fe333e1b494f89de774378b896e717e6de5329e5b55eb94b12ffcc4ea24.webp diff --git a/docs/changelog-assets/TreeView.webp b/docs/changelog-assets/6c19b8d75d09172e1a1913effc472a467939bc35cadb83bad75aad4ab9d37d7f.webp similarity index 100% rename from docs/changelog-assets/TreeView.webp rename to docs/changelog-assets/6c19b8d75d09172e1a1913effc472a467939bc35cadb83bad75aad4ab9d37d7f.webp diff --git a/docs/changelog-assets/Collection.webp b/docs/changelog-assets/fd22c03e1b3b444797d997be044c8ec781692afd83f2e53b87a77fd42a370165.webp similarity index 100% rename from docs/changelog-assets/Collection.webp rename to docs/changelog-assets/fd22c03e1b3b444797d997be044c8ec781692afd83f2e53b87a77fd42a370165.webp From 9262b73fe10bc0207b1e3a90e76e56f31d8a19bf Mon Sep 17 00:00:00 2001 From: Mike Watling Date: Mon, 16 Sep 2024 13:47:19 +0100 Subject: [PATCH 04/35] Fixed typo --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ede1d601c0..f6883d5405 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,7 +20,7 @@ We've included a very early implementation of the Collections feature in this re Collections will appear as a separate list of mods in the left menu. Users can view all mods in the loadout from the new "Installed Mods" option at the top of the left menu. -To start out, this will only be available to free users, but we are working on the free user journey separately and that will be available in a future release. +To start out, this will only be available to Premium users, but we are working on the free user journey separately and that will be available in a future release. ### Cyberpunk 2077 Enhancements From 23e30672768aa79c4f933b2c9ac35f91ead7567c Mon Sep 17 00:00:00 2001 From: Mike Watling Date: Mon, 16 Sep 2024 13:51:49 +0100 Subject: [PATCH 05/35] Fixed a few additional typos --- CHANGELOG.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f6883d5405..40a28057a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,17 +14,17 @@ The My Mods and Library pages have been completely reworked to use the new tree ### EXPERIMENTAL - Collections **WARNING: The feature is unfinished and not considered stable. It will not accurately install complex collections and is currently only functional for Premium users.** -We've included a very early implementation of the Collections feature in this release. It's incomplete and will not install collections are the user has set them up in Vortex. Currently, only mods from Nexus Mods can be installed - anything from external websites or bundled with the collection will not install as expected. +We've included a very early implementation of the Collections feature in this release. It's incomplete and will not install collections as the user has set them up in Vortex. Currently, only mods from Nexus Mods can be installed - anything from external websites or bundled with the collection will not install as expected. ![A collection for Cyberpunk 2077 installed into a loadout.](./docs/changelog-assets/fd22c03e1b3b444797d997be044c8ec781692afd83f2e53b87a77fd42a370165.webp) Collections will appear as a separate list of mods in the left menu. Users can view all mods in the loadout from the new "Installed Mods" option at the top of the left menu. -To start out, this will only be available to Premium users, but we are working on the free user journey separately and that will be available in a future release. +To start out, this will only be available to Premium users, but we are working on the free user journey separately and this will be available in a future release. ### Cyberpunk 2077 Enhancements -As a further enhancement to support for Cyberpunk 2077, we will now detect if the REDmod DLC is missing and problem the user to install it if required. +As a further enhancement to support for Cyberpunk 2077, we will now detect if the REDmod DLC is missing and prompt the user to install it if required. ![The diagnostic message for REDmod shown in the Health Check.](./docs/changelog-assets/2cb64fe333e1b494f89de774378b896e717e6de5329e5b55eb94b12ffcc4ea24.webp) @@ -32,6 +32,7 @@ We've also fixed the issue which prevented REDmod from deploying automatically o ### Known Issues - Deleting mods or removing mods from a loadout intermittently doesn't update the UI correctly. +- Trying to install a collection with an unsupported type of mod (e.g. Bundled or External) will fail with no error message. This is not supported in the current build. - Trying to install a collection as a non-Premium user will fail with no error message. This is not supported in the current build. - Once a collection is added to the app, it cannot be removed from the left menu. - Collections allow users to modify the included mods but do not allow you to reset them to a the original state. From 6887bef72baf26871a33edc68d2b681258f4ef50 Mon Sep 17 00:00:00 2001 From: Mike Watling Date: Mon, 16 Sep 2024 14:00:58 +0100 Subject: [PATCH 06/35] Added a "v" to the version for consistency --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 40a28057a5..e41977bb26 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## [0.6.1](https://github.com/Nexus-Mods/NexusMods.App/releases/tag/v0.6.1) - 2024-09-XX +## [v0.6.1](https://github.com/Nexus-Mods/NexusMods.App/releases/tag/v0.6.1) - 2024-09-XX # Caution: To update the app, you must completely uninstall the old version, including all mods. [Learn More.](https://nexus-mods.github.io/NexusMods.App/users/faq/#why-do-i-have-to-uninstall-everything-to-update-the-app) From 29907907c8d1000b65e7d56d69c5e8450c814042 Mon Sep 17 00:00:00 2001 From: Mike Watling Date: Tue, 17 Sep 2024 08:08:55 +0100 Subject: [PATCH 07/35] Attempted to correct the nonsense names given to images... again --- CHANGELOG.md | 6 +++--- ...4.webp => 531dc13e8116620f8ded4a8a98b281da.webp} | Bin ...f.webp => 823627a8ccb068dc1559d62cd3326ebe.webp} | Bin ...5.webp => 8a591449d6a8cddc5d2bad7d1fd5c849.webp} | Bin 4 files changed, 3 insertions(+), 3 deletions(-) rename docs/changelog-assets/{2cb64fe333e1b494f89de774378b896e717e6de5329e5b55eb94b12ffcc4ea24.webp => 531dc13e8116620f8ded4a8a98b281da.webp} (100%) rename docs/changelog-assets/{6c19b8d75d09172e1a1913effc472a467939bc35cadb83bad75aad4ab9d37d7f.webp => 823627a8ccb068dc1559d62cd3326ebe.webp} (100%) rename docs/changelog-assets/{fd22c03e1b3b444797d997be044c8ec781692afd83f2e53b87a77fd42a370165.webp => 8a591449d6a8cddc5d2bad7d1fd5c849.webp} (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index e41977bb26..9e44ea4bc4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,14 +9,14 @@ This release adds a very basic implementation of downloading Collections, update ### New UI for My Mods and Library The My Mods and Library pages have been completely reworked to use the new tree view. Mods are now grouped by the mod page on Nexus Mods, meaning if download several files from the same page they will be grouped together. A "Switch View" option has been added to the toolbar to toggle these groupings on or off. We are continuing to work towards to designs shown in the previous changelog. -![An image showing mods in the Library nested by mod page (left) or ungrouped (right)](./docs/changelog-assets/6c19b8d75d09172e1a1913effc472a467939bc35cadb83bad75aad4ab9d37d7f.webp) +![An image showing mods in the Library nested by mod page (left) or ungrouped (right)](./docs/changelog-assets/823627a8ccb068dc1559d62cd3326ebe.webp) ### EXPERIMENTAL - Collections **WARNING: The feature is unfinished and not considered stable. It will not accurately install complex collections and is currently only functional for Premium users.** We've included a very early implementation of the Collections feature in this release. It's incomplete and will not install collections as the user has set them up in Vortex. Currently, only mods from Nexus Mods can be installed - anything from external websites or bundled with the collection will not install as expected. -![A collection for Cyberpunk 2077 installed into a loadout.](./docs/changelog-assets/fd22c03e1b3b444797d997be044c8ec781692afd83f2e53b87a77fd42a370165.webp) +![A collection for Cyberpunk 2077 installed into a loadout.](./docs/changelog-assets/8a591449d6a8cddc5d2bad7d1fd5c849.webp) Collections will appear as a separate list of mods in the left menu. Users can view all mods in the loadout from the new "Installed Mods" option at the top of the left menu. @@ -26,7 +26,7 @@ To start out, this will only be available to Premium users, but we are working o ### Cyberpunk 2077 Enhancements As a further enhancement to support for Cyberpunk 2077, we will now detect if the REDmod DLC is missing and prompt the user to install it if required. -![The diagnostic message for REDmod shown in the Health Check.](./docs/changelog-assets/2cb64fe333e1b494f89de774378b896e717e6de5329e5b55eb94b12ffcc4ea24.webp) +![The diagnostic message for REDmod shown in the Health Check.](./docs/changelog-assets/531dc13e8116620f8ded4a8a98b281da.webp) We've also fixed the issue which prevented REDmod from deploying automatically on Linux. This work also sets up a framework for running Windows apps and tools on a Linux system using [Protontricks](https://github.com/Matoking/protontricks) ([#1989](https://github.com/Nexus-Mods/NexusMods.App/pull/1989)). diff --git a/docs/changelog-assets/2cb64fe333e1b494f89de774378b896e717e6de5329e5b55eb94b12ffcc4ea24.webp b/docs/changelog-assets/531dc13e8116620f8ded4a8a98b281da.webp similarity index 100% rename from docs/changelog-assets/2cb64fe333e1b494f89de774378b896e717e6de5329e5b55eb94b12ffcc4ea24.webp rename to docs/changelog-assets/531dc13e8116620f8ded4a8a98b281da.webp diff --git a/docs/changelog-assets/6c19b8d75d09172e1a1913effc472a467939bc35cadb83bad75aad4ab9d37d7f.webp b/docs/changelog-assets/823627a8ccb068dc1559d62cd3326ebe.webp similarity index 100% rename from docs/changelog-assets/6c19b8d75d09172e1a1913effc472a467939bc35cadb83bad75aad4ab9d37d7f.webp rename to docs/changelog-assets/823627a8ccb068dc1559d62cd3326ebe.webp diff --git a/docs/changelog-assets/fd22c03e1b3b444797d997be044c8ec781692afd83f2e53b87a77fd42a370165.webp b/docs/changelog-assets/8a591449d6a8cddc5d2bad7d1fd5c849.webp similarity index 100% rename from docs/changelog-assets/fd22c03e1b3b444797d997be044c8ec781692afd83f2e53b87a77fd42a370165.webp rename to docs/changelog-assets/8a591449d6a8cddc5d2bad7d1fd5c849.webp From b64bd2a794f81d9cd95ce49123bba63bd4eddacf Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Wed, 18 Sep 2024 13:28:52 +0200 Subject: [PATCH 08/35] WIP: Add BG3 installers --- .../IModInstallDestination.cs | 6 - .../GameCapabilities/InstallFolderTarget.cs | 18 +- .../AdvancedManualInstallerUI.cs | 1 - .../GenericPatternMatchInstaller.cs | 187 ++++++++++++++++++ .../BaldursGate3/BaldursGate3.cs | 51 ++++- .../BaldursGate3/Installers/BG3SEInstaller.cs | 34 ++++ .../NexusMods.Games.Larian.csproj | 1 + .../ModInstallDestinationTests.cs | 5 +- 8 files changed, 274 insertions(+), 29 deletions(-) create mode 100644 src/Games/NexusMods.Games.Generic/Installers/GenericPatternMatchInstaller.cs create mode 100644 src/Games/NexusMods.Games.Larian/BaldursGate3/Installers/BG3SEInstaller.cs diff --git a/src/Abstractions/NexusMods.Abstractions.GameLocators/GameCapabilities/IModInstallDestination.cs b/src/Abstractions/NexusMods.Abstractions.GameLocators/GameCapabilities/IModInstallDestination.cs index 0c7ff76f34..06a3b03e3d 100644 --- a/src/Abstractions/NexusMods.Abstractions.GameLocators/GameCapabilities/IModInstallDestination.cs +++ b/src/Abstractions/NexusMods.Abstractions.GameLocators/GameCapabilities/IModInstallDestination.cs @@ -1,4 +1,3 @@ -using NexusMods.Abstractions.Games.GameCapabilities; using NexusMods.Paths; namespace NexusMods.Abstractions.GameLocators.GameCapabilities; @@ -56,11 +55,6 @@ public static void AddCommonLocations(IReadOnlyDictionary(), - KnownValidSubfolders = Array.Empty(), - KnownValidFileExtensions = Array.Empty(), - FileExtensionsToDiscard = Array.Empty(), - SubPathsToDiscard = Array.Empty() }); } } diff --git a/src/Abstractions/NexusMods.Abstractions.GameLocators/GameCapabilities/InstallFolderTarget.cs b/src/Abstractions/NexusMods.Abstractions.GameLocators/GameCapabilities/InstallFolderTarget.cs index 49dd8dc8da..d6b124f8eb 100644 --- a/src/Abstractions/NexusMods.Abstractions.GameLocators/GameCapabilities/InstallFolderTarget.cs +++ b/src/Abstractions/NexusMods.Abstractions.GameLocators/GameCapabilities/InstallFolderTarget.cs @@ -1,8 +1,6 @@ -using NexusMods.Abstractions.GameLocators; -using NexusMods.Abstractions.GameLocators.GameCapabilities; -using NexusMods.Paths; +using NexusMods.Paths; -namespace NexusMods.Abstractions.Games.GameCapabilities; +namespace NexusMods.Abstractions.GameLocators.GameCapabilities; ///

/// Represents a target path for installing simple mods archives @@ -21,32 +19,32 @@ public class InstallFolderTarget : IModInstallDestination /// /// List of known recognizable aliases that can be directly mapped to the . /// - public IEnumerable KnownSourceFolderNames { get; init; } = Enumerable.Empty(); + public IEnumerable KnownSourceFolderNames { get; init; } = []; /// /// List of known recognizable first level subfolders of the target . /// NOTE: Only include folders that are only likely to appear at this level of the folder hierarchy. /// - public IEnumerable KnownValidSubfolders { get; init; } = Enumerable.Empty(); + public IEnumerable Names { get; init; } = []; /// /// List of known recognizable file extensions for direct children of the target . /// NOTE: Only include file extensions that are only likely to appear at this level of the folder hierarchy. /// - public IEnumerable KnownValidFileExtensions { get; init; } = Enumerable.Empty(); + public IEnumerable KnownValidFileExtensions { get; init; } = []; /// /// List of subPaths of the target that should be discarded. /// - public IEnumerable SubPathsToDiscard { get; init; } = Enumerable.Empty(); + public IEnumerable SubPathsToDiscard { get; init; } = []; /// /// List of file extensions to discard when installing to this target. /// - public IEnumerable FileExtensionsToDiscard { get; init; } = Enumerable.Empty(); + public IEnumerable FileExtensionsToDiscard { get; init; } = []; /// /// Collection of Targets that are nested paths relative to . /// - public IEnumerable SubTargets { get; init; } = Enumerable.Empty(); + public IEnumerable SubTargets { get; init; } = []; } diff --git a/src/Games/NexusMods.Games.AdvancedInstaller.UI/AdvancedManualInstallerUI.cs b/src/Games/NexusMods.Games.AdvancedInstaller.UI/AdvancedManualInstallerUI.cs index e88024936f..33270138d7 100644 --- a/src/Games/NexusMods.Games.AdvancedInstaller.UI/AdvancedManualInstallerUI.cs +++ b/src/Games/NexusMods.Games.AdvancedInstaller.UI/AdvancedManualInstallerUI.cs @@ -48,7 +48,6 @@ public override async ValueTask ExecuteAsync( CancellationToken cancellationToken) { if (Headless) return new NotSupported(); - var tree = LibraryArchiveTree.Create(libraryArchive); var (shouldInstall, deploymentData) = await GetDeploymentDataAsync(Language.AdvancedInstaller_Manual_Mod, tree, loadout); diff --git a/src/Games/NexusMods.Games.Generic/Installers/GenericPatternMatchInstaller.cs b/src/Games/NexusMods.Games.Generic/Installers/GenericPatternMatchInstaller.cs new file mode 100644 index 0000000000..517b552225 --- /dev/null +++ b/src/Games/NexusMods.Games.Generic/Installers/GenericPatternMatchInstaller.cs @@ -0,0 +1,187 @@ +using System.Diagnostics.CodeAnalysis; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using NexusMods.Abstractions.GameLocators.GameCapabilities; +using NexusMods.Abstractions.Library.Installers; +using NexusMods.Abstractions.Library.Models; +using NexusMods.Abstractions.Loadouts; +using NexusMods.MnemonicDB.Abstractions; +using NexusMods.Paths; +using NexusMods.Paths.Trees; +using NexusMods.Paths.Trees.Traits; + +namespace NexusMods.Games.Generic.Installers; + +using InstallDataTuple = (LoadoutItemGroup.New loadoutGroup, ITransaction transaction, Loadout.ReadOnly loadout); + +public class GenericPatternMatchInstaller : ALibraryArchiveInstaller +{ + public GenericPatternMatchInstaller(IServiceProvider serviceProvider) : + base(serviceProvider, serviceProvider.GetRequiredService>()) + { + } + + public InstallFolderTarget[] InstallFolderTargets { get; init; } = []; + + public override ValueTask ExecuteAsync( + LibraryArchive.ReadOnly libraryArchive, + LoadoutItemGroup.New loadoutGroup, + ITransaction transaction, + Loadout.ReadOnly loadout, + CancellationToken cancellationToken) + { + var installDataTuple = (loadoutGroup, transaction, loadout); + if (InstallFolderTargets.Length == 0) + return ValueTask.FromResult(new NotSupported()); + + var tree = libraryArchive.GetTree(); + + return InstallFolderTargets.Any(target => TryInstallForTarget(target, tree, installDataTuple)) + ? ValueTask.FromResult(new Success()) + : ValueTask.FromResult(new NotSupported()); + } + + private bool TryInstallForTarget(InstallFolderTarget target, KeyedBox tree, InstallDataTuple installDataTuple) + { + foreach (var node in tree.EnumerateChildrenBfs()) + { + if (!TryGetMatch(node.Value, target, out var match)) continue; + DoInstall(match ?? tree, target, installDataTuple); + return true; + } + + return false; + } + + private static bool TryGetMatch(KeyedBox node, InstallFolderTarget target, [NotNullWhen(true)] out KeyedBox? match) + { + match = null; + + if (node.IsFile()) + { + // Check if file has a known child file extension + if (target.KnownValidFileExtensions.Contains(node.Key().Extension)) + { + match = node.Parent()!; + return true; + } + } + else + { + // Check if the directory name is a known source folder + if (target.KnownSourceFolderNames.Contains(node.Key().Name)) + { + match = node; + return true; + } + + // Check if the directory name is a known subfolder + if (target.Names.Contains(node.Key().Name)) + { + match = node.Parent()!; + return true; + } + } + + return false; + } + + private void DoInstall(KeyedBox tree, InstallFolderTarget target, InstallDataTuple installDataTuple) + { + var dropDepth = tree.Depth(); + var (loadoutGroup, transaction, loadout) = installDataTuple; + + // Discard files and directories based on the target configuration + var fileNodes = tree.EnumerateFilesBfsWhereBranch(node => + { + if (node.IsDirectory()) + { + var relativePath = node.Item.Path.DropFirst(dropDepth); + // prune branch if directory is in the discard list + if (target.SubPathsToDiscard.Contains(relativePath)) + { + return false; + } + } + else + { + // prune file if file extension is in the discard list + if (target.FileExtensionsToDiscard.Contains(node.Key().Extension)) + { + return false; + } + } + + return true; + } + ); + + // Add the files to the loadout + foreach (var fileNode in fileNodes) + { + // rebase the path to the target location + var relativePath = fileNode.Item.Path.DropFirst(dropDepth); + relativePath = target.DestinationGamePath.Path.Join(relativePath); + + GenerateFileItem(target, + transaction, + loadout, + relativePath, + loadoutGroup, + fileNode + ); + } + } + + protected virtual void GenerateFileItem( + InstallFolderTarget target, + ITransaction transaction, + Loadout.ReadOnly loadout, + RelativePath relativePath, + LoadoutItemGroup.New loadoutGroup, + KeyedBox fileNode) + { + var _ = new LoadoutFile.New(transaction, out var id) + { + LoadoutItemWithTargetPath = new LoadoutItemWithTargetPath.New(transaction, id) + { + TargetPath = (loadout.Id, target.DestinationGamePath.LocationId, relativePath), + LoadoutItem = new LoadoutItem.New(transaction, id) + { + Name = relativePath.Name, + LoadoutId = loadout.Id, + ParentId = loadoutGroup.Id, + }, + }, + Hash = fileNode.Item.LibraryFile.Value.Hash, + Size = fileNode.Item.LibraryFile.Value.Size, + }; + } +} + +internal static class KeyedBoxExtensions +{ + public static IEnumerable> EnumerateFilesBfsWhereBranch( + this KeyedBox item, + Func, bool> predicate) + { + var queue = new Queue>(); + foreach (var child in item.Children()) + { + queue.Enqueue(child.Value); + } + + while (queue.TryDequeue(out var current)) + { + if (!predicate(current)) continue; + + if (current.IsFile()) + { + yield return current; + } + + foreach (var grandChild in current.Item.Children) + queue.Enqueue(grandChild.Value); + } + } +} diff --git a/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3.cs b/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3.cs index 351ca73468..50645d198a 100644 --- a/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3.cs +++ b/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3.cs @@ -7,7 +7,9 @@ using NexusMods.Abstractions.Games.DTO; using NexusMods.Abstractions.IO; using NexusMods.Abstractions.IO.StreamFactories; +using NexusMods.Abstractions.Library.Installers; using NexusMods.Abstractions.Loadouts.Synchronizers; +using NexusMods.Games.Generic.Installers; using NexusMods.Paths; namespace NexusMods.Games.Larian.BaldursGate3; @@ -17,13 +19,13 @@ public class BaldursGate3 : AGame, ISteamGame, IGogGame private readonly IServiceProvider _serviceProvider; private readonly IOSInformation _osInformation; public override string Name => "Baldur's Gate 3"; - + public IEnumerable SteamIds => [1086940u]; public IEnumerable GogIds => [1456460669]; public static GameDomain GameDomain => GameDomain.From("baldursgate3"); public override GameDomain Domain => GameDomain; - + public BaldursGate3(IServiceProvider provider) : base(provider) { _serviceProvider = provider; @@ -42,9 +44,9 @@ protected override IReadOnlyDictionary GetLocations(IF var result = new Dictionary() { { LocationId.Game, installation.Path }, - { LocationId.From("Mods"), fileSystem.GetKnownPath(KnownPath.HomeDirectory).Combine("Larian Studios/Baldur's Gate 3/Mods") }, - { LocationId.From("PlayerProfiles"), fileSystem.GetKnownPath(KnownPath.HomeDirectory).Combine("Larian Studios/Baldur's Gate 3/PlayerProfiles/Public") }, - { LocationId.From("ScriptExtenderConfig"), fileSystem.GetKnownPath(KnownPath.HomeDirectory).Combine("Larian Studios/Baldur's Gate 3/ScriptExtender") }, + { LocationId.From("Mods"), fileSystem.GetKnownPath(KnownPath.LocalApplicationDataDirectory).Combine("Larian Studios/Baldur's Gate 3/Mods") }, + { LocationId.From("PlayerProfiles"), fileSystem.GetKnownPath(KnownPath.LocalApplicationDataDirectory).Combine("Larian Studios/Baldur's Gate 3/PlayerProfiles/Public") }, + { LocationId.From("ScriptExtenderConfig"), fileSystem.GetKnownPath(KnownPath.LocalApplicationDataDirectory).Combine("Larian Studios/Baldur's Gate 3/ScriptExtender") }, }; return result; } @@ -52,15 +54,46 @@ protected override IReadOnlyDictionary GetLocations(IF /// public override List GetInstallDestinations(IReadOnlyDictionary locations) { - // TODO: fill this in for Generic installer - return []; + return + [ + ]; } - + + public override ILibraryItemInstaller[] LibraryItemInstallers => + [ + new GenericPatternMatchInstaller(_serviceProvider) + { + InstallFolderTargets = + [ + new InstallFolderTarget + { + // Pak mods + DestinationGamePath = new GamePath(LocationId.From("Mods"), ""), + KnownValidFileExtensions = [new Extension(".pak")], + }, + new InstallFolderTarget + { + // bin and NativeMods mods + DestinationGamePath = new GamePath(LocationId.Game, "bin"), + KnownSourceFolderNames = ["bin"], + Names = ["NativeMods"], + }, + new InstallFolderTarget + { + // loose files Data mods + DestinationGamePath = new GamePath(LocationId.Game, "Data"), + KnownSourceFolderNames = ["Data"], + Names = ["Generated", "Public"], + }, + ], + }, + ]; + protected override ILoadoutSynchronizer MakeSynchronizer(IServiceProvider provider) { return new BaldursGate3Synchronizer(provider); } - + // TODO: We are using Icon for both Spine and GameWidget and GameImage is unused. We should use GameImage for the GameWidget, but need to update all the games to have better images. public override IStreamFactory Icon => new EmbededResourceStreamFactory("NexusMods.Games.Larian.Resources.BaldursGate3.icon.png"); diff --git a/src/Games/NexusMods.Games.Larian/BaldursGate3/Installers/BG3SEInstaller.cs b/src/Games/NexusMods.Games.Larian/BaldursGate3/Installers/BG3SEInstaller.cs new file mode 100644 index 0000000000..0f4eb884a6 --- /dev/null +++ b/src/Games/NexusMods.Games.Larian/BaldursGate3/Installers/BG3SEInstaller.cs @@ -0,0 +1,34 @@ +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using NexusMods.Abstractions.Library.Installers; +using NexusMods.Abstractions.Library.Models; +using NexusMods.Abstractions.Loadouts; +using NexusMods.MnemonicDB.Abstractions; +using NexusMods.Paths.Trees.Traits; + +namespace NexusMods.Games.Larian.BaldursGate3.Installers; + +public class BG3SEInstaller : ALibraryArchiveInstaller +{ + public BG3SEInstaller(IServiceProvider serviceProvider) : + base(serviceProvider, serviceProvider.GetRequiredService>()) + { + } + + public override ValueTask ExecuteAsync( + LibraryArchive.ReadOnly libraryArchive, + LoadoutItemGroup.New loadoutGroup, + ITransaction transaction, + Loadout.ReadOnly loadout, + CancellationToken cancellationToken) + { + var tree = libraryArchive.GetTree(); + var nodes = tree.FindSubPathsByKeyUpward(["DWrite.dll"]); + if (nodes.Count == 0) + return ValueTask.FromResult(new NotSupported()); + var dllNode = nodes[0]; + var parent = dllNode.Parent() ?? tree; + + return ValueTask.FromResult(new NotSupported()); + } +} diff --git a/src/Games/NexusMods.Games.Larian/NexusMods.Games.Larian.csproj b/src/Games/NexusMods.Games.Larian/NexusMods.Games.Larian.csproj index a87de8aaa1..a07634b348 100644 --- a/src/Games/NexusMods.Games.Larian/NexusMods.Games.Larian.csproj +++ b/src/Games/NexusMods.Games.Larian/NexusMods.Games.Larian.csproj @@ -3,6 +3,7 @@ + diff --git a/tests/Games/NexusMods.Games.AdvancedInstaller.Tests/ModInstallDestinationTests.cs b/tests/Games/NexusMods.Games.AdvancedInstaller.Tests/ModInstallDestinationTests.cs index fd686439a2..7f9044fd0c 100644 --- a/tests/Games/NexusMods.Games.AdvancedInstaller.Tests/ModInstallDestinationTests.cs +++ b/tests/Games/NexusMods.Games.AdvancedInstaller.Tests/ModInstallDestinationTests.cs @@ -1,7 +1,6 @@ using FluentAssertions; using NexusMods.Abstractions.GameLocators; using NexusMods.Abstractions.GameLocators.GameCapabilities; -using NexusMods.Abstractions.Games.GameCapabilities; using NexusMods.Paths; namespace NexusMods.Games.AdvancedInstaller.Tests; @@ -57,7 +56,7 @@ public void FromInstallFolderTargets_DetectsNestedChildren() static readonly InstallFolderTarget GameRootInstallFolderTarget = new() { DestinationGamePath = new GamePath(LocationId.Game, RelativePath.Empty), - KnownValidSubfolders = new[] { "data" }, - SubTargets = new[] { DataInstallFolderTarget } + Names = [ "data" ], + SubTargets = [DataInstallFolderTarget] }; } From e406804db825c260c4d5b757846d1a0e095df800 Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Thu, 19 Sep 2024 13:01:13 +0200 Subject: [PATCH 09/35] Add support for installing Script Extender --- .../LibraryArchiveTreeExtensions.cs | 33 +++++++++++++++++++ .../GenericPatternMatchInstaller.cs | 28 +--------------- .../BaldursGate3/BaldursGate3.cs | 2 ++ .../BaldursGate3/Installers/BG3SEInstaller.cs | 30 +++++++++++++++-- 4 files changed, 64 insertions(+), 29 deletions(-) create mode 100644 src/Games/NexusMods.Games.Generic/Extensions/LibraryArchiveTreeExtensions.cs diff --git a/src/Games/NexusMods.Games.Generic/Extensions/LibraryArchiveTreeExtensions.cs b/src/Games/NexusMods.Games.Generic/Extensions/LibraryArchiveTreeExtensions.cs new file mode 100644 index 0000000000..52c3a5f028 --- /dev/null +++ b/src/Games/NexusMods.Games.Generic/Extensions/LibraryArchiveTreeExtensions.cs @@ -0,0 +1,33 @@ +using NexusMods.Paths.Trees; +using NexusMods.Paths.Trees.Traits; + +namespace NexusMods.Games.Generic.Extensions; + +public static class LibraryArchiveTreeExtensions +{ + public static IEnumerable> EnumerateFilesBfsWhereBranch( + this KeyedBox item, + Func, bool> predicate) + where TKey : notnull + where TSelf : struct, IHaveAFileOrDirectory, IHaveBoxedChildrenWithKey, IHaveKey + { + var queue = new Queue>(); + foreach (var child in item.Children()) + { + queue.Enqueue(child.Value); + } + + while (queue.TryDequeue(out var current)) + { + if (!predicate(current)) continue; + + if (current.IsFile()) + { + yield return current; + } + + foreach (var grandChild in current.Item.Children) + queue.Enqueue(grandChild.Value); + } + } +} diff --git a/src/Games/NexusMods.Games.Generic/Installers/GenericPatternMatchInstaller.cs b/src/Games/NexusMods.Games.Generic/Installers/GenericPatternMatchInstaller.cs index 517b552225..aab6e961ec 100644 --- a/src/Games/NexusMods.Games.Generic/Installers/GenericPatternMatchInstaller.cs +++ b/src/Games/NexusMods.Games.Generic/Installers/GenericPatternMatchInstaller.cs @@ -5,6 +5,7 @@ using NexusMods.Abstractions.Library.Installers; using NexusMods.Abstractions.Library.Models; using NexusMods.Abstractions.Loadouts; +using NexusMods.Games.Generic.Extensions; using NexusMods.MnemonicDB.Abstractions; using NexusMods.Paths; using NexusMods.Paths.Trees; @@ -158,30 +159,3 @@ protected virtual void GenerateFileItem( }; } } - -internal static class KeyedBoxExtensions -{ - public static IEnumerable> EnumerateFilesBfsWhereBranch( - this KeyedBox item, - Func, bool> predicate) - { - var queue = new Queue>(); - foreach (var child in item.Children()) - { - queue.Enqueue(child.Value); - } - - while (queue.TryDequeue(out var current)) - { - if (!predicate(current)) continue; - - if (current.IsFile()) - { - yield return current; - } - - foreach (var grandChild in current.Item.Children) - queue.Enqueue(grandChild.Value); - } - } -} diff --git a/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3.cs b/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3.cs index 50645d198a..a086f378ec 100644 --- a/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3.cs +++ b/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3.cs @@ -10,6 +10,7 @@ using NexusMods.Abstractions.Library.Installers; using NexusMods.Abstractions.Loadouts.Synchronizers; using NexusMods.Games.Generic.Installers; +using NexusMods.Games.Larian.BaldursGate3.Installers; using NexusMods.Paths; namespace NexusMods.Games.Larian.BaldursGate3; @@ -61,6 +62,7 @@ public override List GetInstallDestinations(IReadOnlyDic public override ILibraryItemInstaller[] LibraryItemInstallers => [ + new BG3SEInstaller(_serviceProvider), new GenericPatternMatchInstaller(_serviceProvider) { InstallFolderTargets = diff --git a/src/Games/NexusMods.Games.Larian/BaldursGate3/Installers/BG3SEInstaller.cs b/src/Games/NexusMods.Games.Larian/BaldursGate3/Installers/BG3SEInstaller.cs index 0f4eb884a6..9e8895bf85 100644 --- a/src/Games/NexusMods.Games.Larian/BaldursGate3/Installers/BG3SEInstaller.cs +++ b/src/Games/NexusMods.Games.Larian/BaldursGate3/Installers/BG3SEInstaller.cs @@ -1,16 +1,18 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; +using NexusMods.Abstractions.GameLocators; using NexusMods.Abstractions.Library.Installers; using NexusMods.Abstractions.Library.Models; using NexusMods.Abstractions.Loadouts; using NexusMods.MnemonicDB.Abstractions; +using NexusMods.Paths; using NexusMods.Paths.Trees.Traits; namespace NexusMods.Games.Larian.BaldursGate3.Installers; public class BG3SEInstaller : ALibraryArchiveInstaller { - public BG3SEInstaller(IServiceProvider serviceProvider) : + public BG3SEInstaller(IServiceProvider serviceProvider) : base(serviceProvider, serviceProvider.GetRequiredService>()) { } @@ -29,6 +31,30 @@ public override ValueTask ExecuteAsync( var dllNode = nodes[0]; var parent = dllNode.Parent() ?? tree; - return ValueTask.FromResult(new NotSupported()); + List results = []; + foreach (var fileNode in parent.EnumerateFilesBfs()) + { + var relativePath = new RelativePath("Bin").Join(fileNode.Value.Item.Path.DropFirst(parent.Depth())); + var loadoutFile = new LoadoutFile.New(transaction, out var id) + { + LoadoutItemWithTargetPath = new LoadoutItemWithTargetPath.New(transaction, id) + { + TargetPath = (loadout.Id, LocationId.Game, relativePath), + LoadoutItem = new LoadoutItem.New(transaction, id) + { + Name = relativePath.Name, + LoadoutId = loadout.Id, + ParentId = loadoutGroup.Id, + }, + }, + Hash = fileNode.Value.Item.LibraryFile.Value.Hash, + Size = fileNode.Value.Item.LibraryFile.Value.Size, + }; + results.Add(loadoutFile); + } + + return results.Count > 0 + ? ValueTask.FromResult(new Success()) + : ValueTask.FromResult(new NotSupported()); } } From e7ac5a19eac95312a3e61a1c41f80b849247a624 Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Thu, 19 Sep 2024 13:01:40 +0200 Subject: [PATCH 10/35] Reduce manage time by ignoring most game files --- .../BaldursGate3/BaldursGate3Synchronizer.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3Synchronizer.cs b/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3Synchronizer.cs index 7ae1bee6ae..cd7a2bdc47 100644 --- a/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3Synchronizer.cs +++ b/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3Synchronizer.cs @@ -10,6 +10,7 @@ public class BaldursGate3Synchronizer : ALoadoutSynchronizer private readonly BaldursGate3Settings _settings; private static GamePath GameFolder => new(LocationId.Game, ""); + private static GamePath DataFolder => new(LocationId.Game, "Data"); private static GamePath PublicPlayerProfiles => new(LocationId.From("PlayerProfiles"), ""); private static GamePath ModSettingsFile => new(LocationId.From("PlayerProfiles"), "modsettings.lsx"); @@ -24,7 +25,11 @@ public BaldursGate3Synchronizer(IServiceProvider provider) : base(provider) public override bool IsIgnoredPath(GamePath path) { // Always ignore all PlayerProfile files except the modsettings file. - return path.InFolder(PublicPlayerProfiles) && path.Path != ModSettingsFile.Path; + if (path.InFolder(PublicPlayerProfiles)) + return path.Path != ModSettingsFile.Path; + if (path.InFolder(DataFolder)) + return true; + return false; } public override bool IsIgnoredBackupPath(GamePath path) From 82209843bf36e2b26761dc33cf9b78aad9caaf61 Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Thu, 19 Sep 2024 13:24:42 +0200 Subject: [PATCH 11/35] WIP installer tests --- NexusMods.App.sln | 7 ++++ .../NexusMods.Games.Larian.Tests.csproj | 7 ++++ .../NexusMods.Games.Larian.Tests/Startup.cs | 33 +++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 tests/Games/NexusMods.Games.Larian.Tests/NexusMods.Games.Larian.Tests.csproj create mode 100644 tests/Games/NexusMods.Games.Larian.Tests/Startup.cs diff --git a/NexusMods.App.sln b/NexusMods.App.sln index e5cf3acc10..b4605a1686 100644 --- a/NexusMods.App.sln +++ b/NexusMods.App.sln @@ -258,6 +258,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Abstractions.Medi EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Games.Larian", "src\Games\NexusMods.Games.Larian\NexusMods.Games.Larian.csproj", "{2A35EBB5-1CA6-4F5D-8CE8-352146C82C28}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Games.Larian.Tests", "tests\Games\NexusMods.Games.Larian.Tests\NexusMods.Games.Larian.Tests.csproj", "{425F7A13-99A2-4231-B0C1-C56EB819C174}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -668,6 +670,10 @@ Global {2A35EBB5-1CA6-4F5D-8CE8-352146C82C28}.Debug|Any CPU.Build.0 = Debug|Any CPU {2A35EBB5-1CA6-4F5D-8CE8-352146C82C28}.Release|Any CPU.ActiveCfg = Release|Any CPU {2A35EBB5-1CA6-4F5D-8CE8-352146C82C28}.Release|Any CPU.Build.0 = Release|Any CPU + {425F7A13-99A2-4231-B0C1-C56EB819C174}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {425F7A13-99A2-4231-B0C1-C56EB819C174}.Debug|Any CPU.Build.0 = Debug|Any CPU + {425F7A13-99A2-4231-B0C1-C56EB819C174}.Release|Any CPU.ActiveCfg = Release|Any CPU + {425F7A13-99A2-4231-B0C1-C56EB819C174}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -787,6 +793,7 @@ Global {8C817874-7A88-450E-B216-851A1B03684C} = {52AF9D62-7D5B-4AD0-BA12-86F2AA67428B} {5CB6D02C-07D0-4C0D-BF5C-4E2E958A0612} = {0CB73565-1207-4A56-A79F-6A8E9BBD795C} {2A35EBB5-1CA6-4F5D-8CE8-352146C82C28} = {70D38D24-79AE-4600-8E83-17F3C11BA81F} + {425F7A13-99A2-4231-B0C1-C56EB819C174} = {05B06AC1-7F2B-492F-983E-5BC63CDBF20D} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {9F9F8352-34DD-42C0-8564-EE9AF34A3501} diff --git a/tests/Games/NexusMods.Games.Larian.Tests/NexusMods.Games.Larian.Tests.csproj b/tests/Games/NexusMods.Games.Larian.Tests/NexusMods.Games.Larian.Tests.csproj new file mode 100644 index 0000000000..fdb03c8816 --- /dev/null +++ b/tests/Games/NexusMods.Games.Larian.Tests/NexusMods.Games.Larian.Tests.csproj @@ -0,0 +1,7 @@ + + + + + + + diff --git a/tests/Games/NexusMods.Games.Larian.Tests/Startup.cs b/tests/Games/NexusMods.Games.Larian.Tests/Startup.cs new file mode 100644 index 0000000000..6bf791c9e0 --- /dev/null +++ b/tests/Games/NexusMods.Games.Larian.Tests/Startup.cs @@ -0,0 +1,33 @@ +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using NexusMods.Abstractions.FileStore; +using NexusMods.Abstractions.Games; +using NexusMods.Abstractions.GuidedInstallers; +using NexusMods.Abstractions.Loadouts; +using NexusMods.Abstractions.Serialization; +using NexusMods.App.BuildInfo; +using NexusMods.Games.FOMOD; +using NexusMods.Games.Larian.BaldursGate3; +using NexusMods.Games.RedEngine; +using NexusMods.Games.TestFramework; +using NexusMods.StandardGameLocators.TestHelpers; + +namespace NexusMods.Games.Larian.Tests; + +public class Startup +{ + public void ConfigureServices(IServiceCollection container) + { + container + .AddSingleton() + .AddDefaultServicesForTesting() + .AddUniversalGameLocator(new Version("1.61")) + .AddBaldursGate3() + .AddLogging(builder => builder.AddXUnit()) + .AddGames() + .AddSerializationAbstractions() + .AddLoadoutAbstractions() + .AddFileStoreAbstractions() + .Validate(); + } +} From b64100f5812c5a2c05051475ac3371bb65ce3d6c Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Mon, 23 Sep 2024 11:40:47 +0200 Subject: [PATCH 12/35] Exclude other files when installing bg3 Pak mods --- .../NexusMods.Games.Larian/BaldursGate3/BaldursGate3.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3.cs b/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3.cs index a086f378ec..63c0e4398d 100644 --- a/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3.cs +++ b/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3.cs @@ -12,6 +12,7 @@ using NexusMods.Games.Generic.Installers; using NexusMods.Games.Larian.BaldursGate3.Installers; using NexusMods.Paths; +using NexusMods.Paths.Utilities; namespace NexusMods.Games.Larian.BaldursGate3; @@ -72,6 +73,11 @@ public override List GetInstallDestinations(IReadOnlyDic // Pak mods DestinationGamePath = new GamePath(LocationId.From("Mods"), ""), KnownValidFileExtensions = [new Extension(".pak")], + FileExtensionsToDiscard = + [ + KnownExtensions.Txt, KnownExtensions.Md, KnownExtensions.Pdf, KnownExtensions.Png, + KnownExtensions.Json, new Extension(".lnk"), + ], }, new InstallFolderTarget { From 3e2a3aedf176e5b130176973d2a2895cd57e50ae Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Mon, 23 Sep 2024 11:41:19 +0200 Subject: [PATCH 13/35] Add Installation tests for all types of BG3 installers --- ...tCaseName=BG3 Script Extender.verified.txt | 12 +++ ...lBG3Mods_testCaseName=Bin Mod.verified.txt | 7 ++ ...BG3Mods_testCaseName=Data Mod.verified.txt | 12 +++ ...c Mod with nested Data folder.verified.txt | 12 +++ ...seName=Multiple Pak files Mod.verified.txt | 12 +++ ...s_testCaseName=NativeMods Mod.verified.txt | 12 +++ ...s_testCaseName=Nested Pak Mod.verified.txt | 7 ++ ...s_testCaseName=Simple Pak Mod.verified.txt | 7 ++ .../BaldursGate3/BG3InstallerTests.cs | 84 +++++++++++++++++++ .../NexusMods.Games.Larian.Tests/Startup.cs | 4 +- 10 files changed, 166 insertions(+), 3 deletions(-) create mode 100644 tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=BG3 Script Extender.verified.txt create mode 100644 tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Bin Mod.verified.txt create mode 100644 tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Data Mod.verified.txt create mode 100644 tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Data Public Mod with nested Data folder.verified.txt create mode 100644 tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Multiple Pak files Mod.verified.txt create mode 100644 tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=NativeMods Mod.verified.txt create mode 100644 tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Nested Pak Mod.verified.txt create mode 100644 tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Simple Pak Mod.verified.txt create mode 100644 tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.cs diff --git a/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=BG3 Script Extender.verified.txt b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=BG3 Script Extender.verified.txt new file mode 100644 index 0000000000..5afc503be9 --- /dev/null +++ b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=BG3 Script Extender.verified.txt @@ -0,0 +1,12 @@ +[ + { + FromPath: DWrite.dll, + Hash: 0x8EF806095E9F8F9B, + ToGamePath: {Game}/Bin/DWrite.dll + }, + { + FromPath: ScriptExtenderSettings.json, + Hash: 0x273ED670FBF4332F, + ToGamePath: {Game}/Bin/ScriptExtenderSettings.json + } +] \ No newline at end of file diff --git a/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Bin Mod.verified.txt b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Bin Mod.verified.txt new file mode 100644 index 0000000000..6307ff86ab --- /dev/null +++ b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Bin Mod.verified.txt @@ -0,0 +1,7 @@ +[ + { + FromPath: bin/bink2w64.dll, + Hash: 0xC6363140D5333C3E, + ToGamePath: {Game}/bin/bink2w64.dll + } +] \ No newline at end of file diff --git a/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Data Mod.verified.txt b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Data Mod.verified.txt new file mode 100644 index 0000000000..7dc07d5f87 --- /dev/null +++ b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Data Mod.verified.txt @@ -0,0 +1,12 @@ +[ + { + FromPath: Recommended/Data/Generated/Public/Shared/Content/Assets/Characters/Character Editor Presets/Origin Presets/[PAK]_Shadowheart/_merged.lsf, + Hash: 0x8ED74FCCE6291C5E, + ToGamePath: {Game}/Data/Generated/Public/Shared/Content/Assets/Characters/Character Editor Presets/Origin Presets/[PAK]_Shadowheart/_merged.lsf + }, + { + FromPath: Recommended/Data/Generated/Public/Shared/Assets/Characters/_Models/Humans/_Female/_Hair/Resources/HAIR_HUM_F_Shadowheart_Spring.gr2, + Hash: 0x3103D39FC0AEBDE5, + ToGamePath: {Game}/Data/Generated/Public/Shared/Assets/Characters/_Models/Humans/_Female/_Hair/Resources/HAIR_HUM_F_Shadowheart_Spring.gr2 + } +] \ No newline at end of file diff --git a/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Data Public Mod with nested Data folder.verified.txt b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Data Public Mod with nested Data folder.verified.txt new file mode 100644 index 0000000000..70ccbc5d7b --- /dev/null +++ b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Data Public Mod with nested Data folder.verified.txt @@ -0,0 +1,12 @@ +[ + { + FromPath: Public/Shared/Stats/Generated/Data/XPData.txt, + Hash: 0x649540DCE31F2D3A, + ToGamePath: {Game}/Data/Public/Shared/Stats/Generated/Data/XPData.txt + }, + { + FromPath: Public/SharedDev/Stats/Generated/Data/XPData.txt, + Hash: 0xBA2BFF7CA4B1C424, + ToGamePath: {Game}/Data/Public/SharedDev/Stats/Generated/Data/XPData.txt + } +] \ No newline at end of file diff --git a/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Multiple Pak files Mod.verified.txt b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Multiple Pak files Mod.verified.txt new file mode 100644 index 0000000000..f460894dd8 --- /dev/null +++ b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Multiple Pak files Mod.verified.txt @@ -0,0 +1,12 @@ +[ + { + FromPath: myMod1.pak, + Hash: 0x12382AC3D91AF5AC, + ToGamePath: {Mods}/myMod1.pak + }, + { + FromPath: myMod2.pak, + Hash: 0x39F52D14C582063C, + ToGamePath: {Mods}/myMod2.pak + } +] \ No newline at end of file diff --git a/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=NativeMods Mod.verified.txt b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=NativeMods Mod.verified.txt new file mode 100644 index 0000000000..4bfef51d11 --- /dev/null +++ b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=NativeMods Mod.verified.txt @@ -0,0 +1,12 @@ +[ + { + FromPath: NativeMods/BG3NativeCameraTweaks.dll, + Hash: 0x9D3A484CEE5E5A51, + ToGamePath: {Game}/bin/NativeMods/BG3NativeCameraTweaks.dll + }, + { + FromPath: BG3NativeCameraTweaks.toml, + Hash: 0xF52CC272D80C600A, + ToGamePath: {Game}/bin/BG3NativeCameraTweaks.toml + } +] \ No newline at end of file diff --git a/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Nested Pak Mod.verified.txt b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Nested Pak Mod.verified.txt new file mode 100644 index 0000000000..c07f55776c --- /dev/null +++ b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Nested Pak Mod.verified.txt @@ -0,0 +1,7 @@ +[ + { + FromPath: Mods/myMod.pak, + Hash: 0x33C4706972EAAE6E, + ToGamePath: {Mods}/myMod.pak + } +] \ No newline at end of file diff --git a/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Simple Pak Mod.verified.txt b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Simple Pak Mod.verified.txt new file mode 100644 index 0000000000..a847ae9fe2 --- /dev/null +++ b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Simple Pak Mod.verified.txt @@ -0,0 +1,7 @@ +[ + { + FromPath: myMod.pak, + Hash: 0x23BC397CD47BAFDA, + ToGamePath: {Mods}/myMod.pak + } +] \ No newline at end of file diff --git a/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.cs b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.cs new file mode 100644 index 0000000000..d1b9a6b851 --- /dev/null +++ b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.cs @@ -0,0 +1,84 @@ +using System.Runtime.CompilerServices; +using Microsoft.Extensions.DependencyInjection; +using NexusMods.Games.Generic.Installers; +using NexusMods.Games.Larian.BaldursGate3; +using NexusMods.Games.Larian.BaldursGate3.Installers; +using NexusMods.Games.TestFramework; +using NexusMods.Paths; +using NexusMods.StandardGameLocators.TestHelpers; +using Xunit.Abstractions; + +namespace NexusMods.Games.Larian.Tests.BaldursGate3; + +public class BG3InstallerTests(ITestOutputHelper outputHelper) : ALibraryArchiveInstallerTests(outputHelper) +{ + protected override IServiceCollection AddServices(IServiceCollection services) + { + return base.AddServices(services) + .AddBaldursGate3() + .AddUniversalGameLocator(new Version("1.6.1")); + } + + + /// + /// Test cases, key is the name, the values are the archive file paths. + /// + public static readonly List<(string TestName, Type InstallerType, string[] Paths)> TestCases = + [ + ("BG3 Script Extender", typeof(BG3SEInstaller), ["DWrite.dll", "ScriptExtenderSettings.json"]), + ("Simple Pak Mod", typeof(GenericPatternMatchInstaller), ["myMod.pak", "info.json"]), + ("Nested Pak Mod", typeof(GenericPatternMatchInstaller), ["Mods/myMod.pak", "Mods/info.json", "readme.txt"]), + ("Multiple Pak files Mod", typeof(GenericPatternMatchInstaller), ["myMod1.pak", "myMod2.pak", "info.json", "readme.txt"]), + ("Bin Mod", typeof(GenericPatternMatchInstaller), ["bin/bink2w64.dll", "bink2w64_original.dll"]), + ("NativeMods Mod", typeof(GenericPatternMatchInstaller), [ + "NativeMods/BG3NativeCameraTweaks.dll", + "BG3NativeCameraTweaks.toml", + ]), + ("Data Mod", typeof(GenericPatternMatchInstaller), [ + "Recommended/Data/Generated/Public/Shared/Assets/Characters/_Models/Humans/_Female/_Hair/Resources/HAIR_HUM_F_Shadowheart_Spring.gr2", + "Recommended/Data/Generated/Public/Shared/Content/Assets/Characters/Character Editor Presets/Origin Presets/[PAK]_Shadowheart/_merged.lsf" + ]), + ("Data Public Mod with nested Data folder", typeof(GenericPatternMatchInstaller), [ + "Public/Shared/Stats/Generated/Data/XPData.txt", + "Public/SharedDev/Stats/Generated/Data/XPData.txt", + ]), + ]; + + public static IEnumerable TestCaseData() + { + return TestCases.Select(row => (object[]) [row.TestName, row.InstallerType, row.Paths]); + } + + + [Theory] + [MemberData(nameof(TestCaseData))] + public async Task CanInstallBG3Mods(string testCaseName, Type installerType, string[] archivePaths) + { + var loadout = await CreateLoadout(); + var archive = await AddFromPaths(archivePaths); + var group = await Install(installerType, loadout, archive); + + await VerifyChildren(ChildrenFilesAndHashes(group), archivePaths).UseParameters(testCaseName); + } + + + private static SettingsTask VerifyChildren( + IEnumerable<(RelativePath FromPath, Hashing.xxHash64.Hash Hash, Abstractions.GameLocators.GamePath GamePath)> childrenFilesAndHashes, + string[] archivePaths, + [CallerFilePath] string sourceFile = "") + { + var asArray = childrenFilesAndHashes.ToArray(); + + return Verify(asArray.Select(row => + new + { + FromPath = row.FromPath.ToString(), + Hash = row.Hash.ToString(), + ToGamePath = row.GamePath.ToString(), + } + // ReSharper disable once ExplicitCallerInfoArgument + ), + sourceFile: sourceFile + ); + } +} diff --git a/tests/Games/NexusMods.Games.Larian.Tests/Startup.cs b/tests/Games/NexusMods.Games.Larian.Tests/Startup.cs index 6bf791c9e0..1876805268 100644 --- a/tests/Games/NexusMods.Games.Larian.Tests/Startup.cs +++ b/tests/Games/NexusMods.Games.Larian.Tests/Startup.cs @@ -6,9 +6,7 @@ using NexusMods.Abstractions.Loadouts; using NexusMods.Abstractions.Serialization; using NexusMods.App.BuildInfo; -using NexusMods.Games.FOMOD; using NexusMods.Games.Larian.BaldursGate3; -using NexusMods.Games.RedEngine; using NexusMods.Games.TestFramework; using NexusMods.StandardGameLocators.TestHelpers; @@ -21,7 +19,7 @@ public void ConfigureServices(IServiceCollection container) container .AddSingleton() .AddDefaultServicesForTesting() - .AddUniversalGameLocator(new Version("1.61")) + .AddUniversalGameLocator(new Version("1.61")) .AddBaldursGate3() .AddLogging(builder => builder.AddXUnit()) .AddGames() From f3f6d47f42455b426e0dbdbbd140b828ebf92cd1 Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Mon, 23 Sep 2024 11:56:29 +0200 Subject: [PATCH 14/35] Add comments for installers --- .../Installers/GenericPatternMatchInstaller.cs | 8 ++++++++ .../BaldursGate3/Installers/BG3SEInstaller.cs | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/src/Games/NexusMods.Games.Generic/Installers/GenericPatternMatchInstaller.cs b/src/Games/NexusMods.Games.Generic/Installers/GenericPatternMatchInstaller.cs index aab6e961ec..47da9c83a9 100644 --- a/src/Games/NexusMods.Games.Generic/Installers/GenericPatternMatchInstaller.cs +++ b/src/Games/NexusMods.Games.Generic/Installers/GenericPatternMatchInstaller.cs @@ -15,6 +15,14 @@ namespace NexusMods.Games.Generic.Installers; using InstallDataTuple = (LoadoutItemGroup.New loadoutGroup, ITransaction transaction, Loadout.ReadOnly loadout); + +/// +/// Generic mod installer for mods that only need to have their contents placed to a specific game location +/// (). +/// Tries to match the mod archive folder structure to requirements. +/// +/// Example: myMod/Textures/myTexture.dds -> Skyrim/Data/Textures/myTexture.dds +/// public class GenericPatternMatchInstaller : ALibraryArchiveInstaller { public GenericPatternMatchInstaller(IServiceProvider serviceProvider) : diff --git a/src/Games/NexusMods.Games.Larian/BaldursGate3/Installers/BG3SEInstaller.cs b/src/Games/NexusMods.Games.Larian/BaldursGate3/Installers/BG3SEInstaller.cs index 9e8895bf85..6d13ef787d 100644 --- a/src/Games/NexusMods.Games.Larian/BaldursGate3/Installers/BG3SEInstaller.cs +++ b/src/Games/NexusMods.Games.Larian/BaldursGate3/Installers/BG3SEInstaller.cs @@ -10,6 +10,11 @@ namespace NexusMods.Games.Larian.BaldursGate3.Installers; +/// +/// Installer for the Baldur's Gate 3 Script Extender +/// BG3SE GitHub Repository +/// BG3SE Nexus Mods Page +/// public class BG3SEInstaller : ALibraryArchiveInstaller { public BG3SEInstaller(IServiceProvider serviceProvider) : From b2b9da07e8583579dc8e14d05c803d51c6b02aa1 Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Mon, 23 Sep 2024 12:09:38 +0200 Subject: [PATCH 15/35] Fix tests --- ...a Public Mod with nested Data folder.verified.txt | 12 ++++++------ .../BaldursGate3/BG3InstallerTests.cs | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Data Public Mod with nested Data folder.verified.txt b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Data Public Mod with nested Data folder.verified.txt index 70ccbc5d7b..1283abd521 100644 --- a/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Data Public Mod with nested Data folder.verified.txt +++ b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.CanInstallBG3Mods_testCaseName=Data Public Mod with nested Data folder.verified.txt @@ -1,12 +1,12 @@ [ { - FromPath: Public/Shared/Stats/Generated/Data/XPData.txt, - Hash: 0x649540DCE31F2D3A, - ToGamePath: {Game}/Data/Public/Shared/Stats/Generated/Data/XPData.txt + FromPath: Public/Shared/Stats/Generated/Data/XPData1.txt, + Hash: 0xC98EB6BC4E8661F0, + ToGamePath: {Game}/Data/Public/Shared/Stats/Generated/Data/XPData1.txt }, { - FromPath: Public/SharedDev/Stats/Generated/Data/XPData.txt, - Hash: 0xBA2BFF7CA4B1C424, - ToGamePath: {Game}/Data/Public/SharedDev/Stats/Generated/Data/XPData.txt + FromPath: Public/SharedDev/Stats/Generated/Data/XPData2.txt, + Hash: 0x9345F61E5A6C7013, + ToGamePath: {Game}/Data/Public/SharedDev/Stats/Generated/Data/XPData2.txt } ] \ No newline at end of file diff --git a/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.cs b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.cs index d1b9a6b851..f19794be6e 100644 --- a/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.cs +++ b/tests/Games/NexusMods.Games.Larian.Tests/BaldursGate3/BG3InstallerTests.cs @@ -36,11 +36,11 @@ protected override IServiceCollection AddServices(IServiceCollection services) ]), ("Data Mod", typeof(GenericPatternMatchInstaller), [ "Recommended/Data/Generated/Public/Shared/Assets/Characters/_Models/Humans/_Female/_Hair/Resources/HAIR_HUM_F_Shadowheart_Spring.gr2", - "Recommended/Data/Generated/Public/Shared/Content/Assets/Characters/Character Editor Presets/Origin Presets/[PAK]_Shadowheart/_merged.lsf" + "Recommended/Data/Generated/Public/Shared/Content/Assets/Characters/Character Editor Presets/Origin Presets/[PAK]_Shadowheart/_merged.lsf", ]), ("Data Public Mod with nested Data folder", typeof(GenericPatternMatchInstaller), [ - "Public/Shared/Stats/Generated/Data/XPData.txt", - "Public/SharedDev/Stats/Generated/Data/XPData.txt", + "Public/Shared/Stats/Generated/Data/XPData1.txt", + "Public/SharedDev/Stats/Generated/Data/XPData2.txt", ]), ]; From 35d769ee85cb6f7771ffc07ac9c02b52fed4f039 Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Tue, 24 Sep 2024 12:33:03 +0200 Subject: [PATCH 16/35] Avoid indexing 60GB of `Archive/Pc/Content` folder for CP to speedup management of the game --- .../Cyberpunk2077/Cyberpunk2077Synchronizer.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Games/NexusMods.Games.RedEngine/Cyberpunk2077/Cyberpunk2077Synchronizer.cs b/src/Games/NexusMods.Games.RedEngine/Cyberpunk2077/Cyberpunk2077Synchronizer.cs index ccfeca98f5..30145ef8e5 100644 --- a/src/Games/NexusMods.Games.RedEngine/Cyberpunk2077/Cyberpunk2077Synchronizer.cs +++ b/src/Games/NexusMods.Games.RedEngine/Cyberpunk2077/Cyberpunk2077Synchronizer.cs @@ -27,6 +27,10 @@ public class Cyberpunk2077Synchronizer : ALoadoutSynchronizer /// private static GamePath RedModTweaksFolder => new(LocationId.Game, "tools/redmod/tweaks"); + private static GamePath ArchivePcContentFolder => new(LocationId.Game, "archive/pc/content"); + + private static GamePath ArchivePcEp1Folder => new(LocationId.Game, "archive/pc/ep1"); + private readonly RedModDeployTool _redModTool; @@ -41,16 +45,18 @@ protected internal Cyberpunk2077Synchronizer(IServiceProvider provider) : base(p private static readonly GamePath[] IgnoredBackupFolders = [ - new GamePath(LocationId.Game, "archive/pc/content"), - new GamePath(LocationId.Game, "archive/pc/ep1"), + ArchivePcContentFolder, + ArchivePcEp1Folder, ]; public override bool IsIgnoredPath(GamePath path) { // Ignore the mod cache folder, as it's regenerated by redmod every time we deploy using the tool. + return path.InFolder(RedModCacheFolder) - || path.InFolder(RedModScriptsFolder) - || path.InFolder(RedModTweaksFolder); + || path.InFolder(RedModScriptsFolder) + || path.InFolder(RedModTweaksFolder) + || !_settings.DoFullGameBackup && (path.InFolder(ArchivePcContentFolder) || path.InFolder(ArchivePcEp1Folder)); } public override async Task Synchronize(Loadout.ReadOnly loadout) From d7d8d6c8b255c24852e2674ecaa3f0c0fd456c83 Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Tue, 24 Sep 2024 13:13:20 +0200 Subject: [PATCH 17/35] Add IRunGameTool for BG3 --- .../BaldursGate3/RunGameTools/BG3RunGameTool.cs | 10 ++++++++++ .../NexusMods.Games.Larian/BaldursGate3/Services.cs | 3 +++ 2 files changed, 13 insertions(+) create mode 100644 src/Games/NexusMods.Games.Larian/BaldursGate3/RunGameTools/BG3RunGameTool.cs diff --git a/src/Games/NexusMods.Games.Larian/BaldursGate3/RunGameTools/BG3RunGameTool.cs b/src/Games/NexusMods.Games.Larian/BaldursGate3/RunGameTools/BG3RunGameTool.cs new file mode 100644 index 0000000000..fa2f4600dc --- /dev/null +++ b/src/Games/NexusMods.Games.Larian/BaldursGate3/RunGameTools/BG3RunGameTool.cs @@ -0,0 +1,10 @@ +using NexusMods.Abstractions.Games; + +namespace NexusMods.Games.Larian.BaldursGate3.RunGameTools; + +public class BG3RunGameTool : RunGameTool +{ + public BG3RunGameTool(IServiceProvider serviceProvider, BaldursGate3 game) : base(serviceProvider, game) + { + } +} diff --git a/src/Games/NexusMods.Games.Larian/BaldursGate3/Services.cs b/src/Games/NexusMods.Games.Larian/BaldursGate3/Services.cs index 94f8761f47..eed4afbb1f 100644 --- a/src/Games/NexusMods.Games.Larian/BaldursGate3/Services.cs +++ b/src/Games/NexusMods.Games.Larian/BaldursGate3/Services.cs @@ -1,6 +1,8 @@ using Microsoft.Extensions.DependencyInjection; using NexusMods.Abstractions.Games; +using NexusMods.Abstractions.Loadouts; using NexusMods.Abstractions.Settings; +using NexusMods.Games.Larian.BaldursGate3.RunGameTools; namespace NexusMods.Games.Larian.BaldursGate3; @@ -10,6 +12,7 @@ public static IServiceCollection AddBaldursGate3(this IServiceCollection service { services .AddGame() + .AddSingleton() .AddSettings(); return services; From efcf6a8797fd9a47f4a3f7264a8c8fd49fa2ddb9 Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Tue, 24 Sep 2024 13:23:53 +0200 Subject: [PATCH 18/35] Still deploy mods in index ignored paths --- .../ALoadoutSynchronizer.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Abstractions/NexusMods.Abstractions.Loadouts.Synchronizers/ALoadoutSynchronizer.cs b/src/Abstractions/NexusMods.Abstractions.Loadouts.Synchronizers/ALoadoutSynchronizer.cs index d4a4f9ad13..c69e65317c 100644 --- a/src/Abstractions/NexusMods.Abstractions.Loadouts.Synchronizers/ALoadoutSynchronizer.cs +++ b/src/Abstractions/NexusMods.Abstractions.Loadouts.Synchronizers/ALoadoutSynchronizer.cs @@ -177,7 +177,6 @@ public SyncTree BuildSyncTree(DiskState currentState, DiskState previousTree, IE return file; }) .Where(f => !f.TryGetAsDeletedFile(out _)) - .Where(f => !IsIgnoredPath(f.TargetPath)) .OfTypeLoadoutFile(); return BuildSyncTree(currentState, previousTree, grouped); From d5104fd3a6254fd419e46f0a44394af5ee863ed0 Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Tue, 24 Sep 2024 15:15:30 +0200 Subject: [PATCH 19/35] Added comments with examples for mod types --- .../BaldursGate3/BaldursGate3.cs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3.cs b/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3.cs index 63c0e4398d..91c7fe074a 100644 --- a/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3.cs +++ b/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3.cs @@ -68,27 +68,37 @@ public override List GetInstallDestinations(IReadOnlyDic { InstallFolderTargets = [ + // Pak mods + // Examples: + // - ImpUI (ImprovedUI) Patch7Ready + // - NPC Visual Overhaul (WIP) - NPC VO new InstallFolderTarget { - // Pak mods DestinationGamePath = new GamePath(LocationId.From("Mods"), ""), KnownValidFileExtensions = [new Extension(".pak")], FileExtensionsToDiscard = [ - KnownExtensions.Txt, KnownExtensions.Md, KnownExtensions.Pdf, KnownExtensions.Png, + KnownExtensions.Txt, KnownExtensions.Md, KnownExtensions.Pdf, KnownExtensions.Png, KnownExtensions.Json, new Extension(".lnk"), ], }, + + // bin and NativeMods mods + // Examples: + // - Native Mod Loader + // - Achievement Enabler new InstallFolderTarget { - // bin and NativeMods mods DestinationGamePath = new GamePath(LocationId.Game, "bin"), KnownSourceFolderNames = ["bin"], Names = ["NativeMods"], }, + + // loose files Data mods + // Examples: + // - Fast XP new InstallFolderTarget { - // loose files Data mods DestinationGamePath = new GamePath(LocationId.Game, "Data"), KnownSourceFolderNames = ["Data"], Names = ["Generated", "Public"], From 5160426fb4451d6f198ba1e8655be95f85d7eabd Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Tue, 24 Sep 2024 15:39:55 +0200 Subject: [PATCH 20/35] Only ignore game pak files inside Data not loose files --- .../BaldursGate3/BaldursGate3Synchronizer.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3Synchronizer.cs b/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3Synchronizer.cs index cd7a2bdc47..43a3e5cce6 100644 --- a/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3Synchronizer.cs +++ b/src/Games/NexusMods.Games.Larian/BaldursGate3/BaldursGate3Synchronizer.cs @@ -2,6 +2,7 @@ using NexusMods.Abstractions.GameLocators; using NexusMods.Abstractions.Loadouts.Synchronizers; using NexusMods.Abstractions.Settings; +using NexusMods.Paths; namespace NexusMods.Games.Larian.BaldursGate3; @@ -15,6 +16,8 @@ public class BaldursGate3Synchronizer : ALoadoutSynchronizer private static GamePath ModSettingsFile => new(LocationId.From("PlayerProfiles"), "modsettings.lsx"); + private static Extension PakExtension => new Extension(".pak"); + public BaldursGate3Synchronizer(IServiceProvider provider) : base(provider) { @@ -27,9 +30,10 @@ public override bool IsIgnoredPath(GamePath path) // Always ignore all PlayerProfile files except the modsettings file. if (path.InFolder(PublicPlayerProfiles)) return path.Path != ModSettingsFile.Path; - if (path.InFolder(DataFolder)) - return true; - return false; + + if (_settings.DoFullGameBackup) return false; + + return path.InFolder(DataFolder) && path.Extension == PakExtension; } public override bool IsIgnoredBackupPath(GamePath path) From 56172a8922a0f5f2224ac62d1ea92de9ad9f405f Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Tue, 24 Sep 2024 16:08:22 +0200 Subject: [PATCH 21/35] Disable managing Cyberpunk Saves --- .../Cyberpunk2077/Cyberpunk2077Game.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Games/NexusMods.Games.RedEngine/Cyberpunk2077/Cyberpunk2077Game.cs b/src/Games/NexusMods.Games.RedEngine/Cyberpunk2077/Cyberpunk2077Game.cs index 91bcf3055a..4146f23ddb 100644 --- a/src/Games/NexusMods.Games.RedEngine/Cyberpunk2077/Cyberpunk2077Game.cs +++ b/src/Games/NexusMods.Games.RedEngine/Cyberpunk2077/Cyberpunk2077Game.cs @@ -41,10 +41,12 @@ protected override IReadOnlyDictionary GetLocations(IF var result = new Dictionary() { { LocationId.Game, installation.Path }, - { - LocationId.Saves, - fileSystem.GetKnownPath(KnownPath.HomeDirectory).Combine("Saved Games/CD Projekt Red/Cyberpunk 2077") - }, + // Skip managing saves for now, to prevent accidental deletion of saves + // e.g. when removing loadouts, un-managing the game, or uninstalling the app + // { + // LocationId.Saves, + // fileSystem.GetKnownPath(KnownPath.HomeDirectory).Combine("Saved Games/CD Projekt Red/Cyberpunk 2077") + // }, { LocationId.AppData, fileSystem.GetKnownPath(KnownPath.LocalApplicationDataDirectory) From b47197b01320aba0b62f58e97cb73de2902129ea Mon Sep 17 00:00:00 2001 From: Mike Watling Date: Tue, 24 Sep 2024 15:30:16 +0100 Subject: [PATCH 22/35] Updated changelog for 0.6.1 release --- CHANGELOG.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e44ea4bc4..433b709676 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,13 @@ # Changelog -## [v0.6.1](https://github.com/Nexus-Mods/NexusMods.App/releases/tag/v0.6.1) - 2024-09-XX +## [v0.6.1](https://github.com/Nexus-Mods/NexusMods.App/releases/tag/v0.6.1) - 2024-09-24 # Caution: To update the app, you must completely uninstall the old version, including all mods. [Learn More.](https://nexus-mods.github.io/NexusMods.App/users/faq/#why-do-i-have-to-uninstall-everything-to-update-the-app) This release adds a very basic implementation of downloading Collections, updates the UI to the new tree view and includes some enhancements when interacting with Windows applications via Linux. ### New UI for My Mods and Library -The My Mods and Library pages have been completely reworked to use the new tree view. Mods are now grouped by the mod page on Nexus Mods, meaning if download several files from the same page they will be grouped together. A "Switch View" option has been added to the toolbar to toggle these groupings on or off. We are continuing to work towards to designs shown in the previous changelog. +The My Mods and Library pages have been completely reworked to use the new tree view. Mods are now grouped by the mod page on Nexus Mods, meaning if download several files from the same page they will be grouped together. A "Switch View" option has been added to the toolbar to toggle these groupings on or off. We are continuing to work towards to designs shown in the [previous changelog](./docs/changelog-assets/1b28e2fad5b5a6431a72c286d1bcd3fd.webp). ![An image showing mods in the Library nested by mod page (left) or ungrouped (right)](./docs/changelog-assets/823627a8ccb068dc1559d62cd3326ebe.webp) @@ -20,7 +20,7 @@ We've included a very early implementation of the Collections feature in this re Collections will appear as a separate list of mods in the left menu. Users can view all mods in the loadout from the new "Installed Mods" option at the top of the left menu. -To start out, this will only be available to Premium users, but we are working on the free user journey separately and this will be available in a future release. +To start out, this will only be available to Premium users, but we are working on the free user journey separately which requires considerably more UI elements to be created. This will be available in a future release. ### Cyberpunk 2077 Enhancements @@ -31,7 +31,6 @@ As a further enhancement to support for Cyberpunk 2077, we will now detect if th We've also fixed the issue which prevented REDmod from deploying automatically on Linux. This work also sets up a framework for running Windows apps and tools on a Linux system using [Protontricks](https://github.com/Matoking/protontricks) ([#1989](https://github.com/Nexus-Mods/NexusMods.App/pull/1989)). ### Known Issues -- Deleting mods or removing mods from a loadout intermittently doesn't update the UI correctly. - Trying to install a collection with an unsupported type of mod (e.g. Bundled or External) will fail with no error message. This is not supported in the current build. - Trying to install a collection as a non-Premium user will fail with no error message. This is not supported in the current build. - Once a collection is added to the app, it cannot be removed from the left menu. From 84f6f572dde31bda29cade7318092021548a3e37 Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Tue, 24 Sep 2024 17:04:54 +0200 Subject: [PATCH 23/35] Fix issue with data not being initialized for LoadoutItems when scrolling very fast, causing issues during mass mod deletion --- .../LoadoutPage/FakeParentLoadoutItemModel.cs | 14 ++++++-------- .../Pages/LocalFileDataProvider.cs | 3 +-- .../Pages/NexusModsDataProvider.cs | 3 +-- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/NexusMods.App.UI/Pages/LoadoutPage/FakeParentLoadoutItemModel.cs b/src/NexusMods.App.UI/Pages/LoadoutPage/FakeParentLoadoutItemModel.cs index 41cad3e01f..c3f01e5d16 100644 --- a/src/NexusMods.App.UI/Pages/LoadoutPage/FakeParentLoadoutItemModel.cs +++ b/src/NexusMods.App.UI/Pages/LoadoutPage/FakeParentLoadoutItemModel.cs @@ -11,24 +11,22 @@ public class FakeParentLoadoutItemModel : LoadoutItemModel { public required IObservable InstalledAtObservable { get; init; } - public required IObservable> LoadoutItemIdsObservable { get; init; } + public IObservable> LoadoutItemIdsObservable { get; } public ObservableHashSet LoadoutItemIds { get; private set; } = []; public override IReadOnlyCollection GetLoadoutItemIds() => LoadoutItemIds; private readonly IDisposable _modelActivationDisposable; - private readonly SerialDisposable _loadoutItemIdsDisposable = new(); + private readonly IDisposable _loadoutItemIdsDisposable; - public FakeParentLoadoutItemModel() : base(default(LoadoutItemId)) + public FakeParentLoadoutItemModel(IObservable> loadoutItemIdsObservable) : base(default(LoadoutItemId)) { + LoadoutItemIdsObservable = loadoutItemIdsObservable; + _loadoutItemIdsDisposable = LoadoutItemIdsObservable.OnUI().SubscribeWithErrorLogging(changeSet => LoadoutItemIds.ApplyChanges(changeSet)); + _modelActivationDisposable = WhenModelActivated(this, static (model, disposables) => { model.InstalledAtObservable.OnUI().Subscribe(date => model.InstalledAt.Value = date).AddTo(disposables); - - if (model._loadoutItemIdsDisposable.Disposable is null) - { - model._loadoutItemIdsDisposable.Disposable = model.LoadoutItemIdsObservable.OnUI().SubscribeWithErrorLogging(changeSet => model.LoadoutItemIds.ApplyChanges(changeSet)); - } }); } diff --git a/src/NexusMods.App.UI/Pages/LocalFileDataProvider.cs b/src/NexusMods.App.UI/Pages/LocalFileDataProvider.cs index 3684c9f578..8d42d8ed6f 100644 --- a/src/NexusMods.App.UI/Pages/LocalFileDataProvider.cs +++ b/src/NexusMods.App.UI/Pages/LocalFileDataProvider.cs @@ -158,11 +158,10 @@ public IObservable> ObserveNestedLoadoutI return isEnabled.HasValue ? isEnabled.Value : null; }).DistinctUntilChanged(x => x is null ? -1 : x.Value ? 1 : 0); - LoadoutItemModel model = new FakeParentLoadoutItemModel + LoadoutItemModel model = new FakeParentLoadoutItemModel(loadoutItemIdsObservable) { NameObservable = Observable.Return(libraryFile.AsLibraryItem().Name), InstalledAtObservable = installedAtObservable, - LoadoutItemIdsObservable = loadoutItemIdsObservable, IsEnabledObservable = isEnabledObservable, HasChildrenObservable = Observable.Return(true), diff --git a/src/NexusMods.App.UI/Pages/NexusModsDataProvider.cs b/src/NexusMods.App.UI/Pages/NexusModsDataProvider.cs index e459e9c9bd..90c396a39a 100644 --- a/src/NexusMods.App.UI/Pages/NexusModsDataProvider.cs +++ b/src/NexusMods.App.UI/Pages/NexusModsDataProvider.cs @@ -180,11 +180,10 @@ public IObservable> ObserveNestedLoadoutI return isEnabled.HasValue ? isEnabled.Value : null; }).DistinctUntilChanged(x => x is null ? -1 : x.Value ? 1 : 0); - LoadoutItemModel model = new FakeParentLoadoutItemModel + LoadoutItemModel model = new FakeParentLoadoutItemModel(loadoutItemIdsObservable) { NameObservable = Observable.Return(modPage.Name), InstalledAtObservable = installedAtObservable, - LoadoutItemIdsObservable = loadoutItemIdsObservable, IsEnabledObservable = isEnabledObservable, HasChildrenObservable = hasChildrenObservable, From e91f53a6e974843e6de7d5b1e4b1ff3ae619e5a1 Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Tue, 24 Sep 2024 18:06:57 +0200 Subject: [PATCH 24/35] Only show one warning per mod for Mod overrides Game Files SDV health check --- .../Emitters/ModOverwritesGameFilesEmitter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Games/NexusMods.Games.StardewValley/Emitters/ModOverwritesGameFilesEmitter.cs b/src/Games/NexusMods.Games.StardewValley/Emitters/ModOverwritesGameFilesEmitter.cs index 5a8f0554f6..dca760fb52 100644 --- a/src/Games/NexusMods.Games.StardewValley/Emitters/ModOverwritesGameFilesEmitter.cs +++ b/src/Games/NexusMods.Games.StardewValley/Emitters/ModOverwritesGameFilesEmitter.cs @@ -32,7 +32,7 @@ public async IAsyncEnumerable Diagnose( }) .Where(file => ((GamePath)file.AsLoadoutItemWithTargetPath().TargetPath).StartsWith(ContentDirectoryPath)) .Select(file => file.AsLoadoutItemWithTargetPath().AsLoadoutItem().Parent) - .ToArray(); + .DistinctBy(item => item.Id); foreach (var group in groups) { From 3b4078f3b8ab1fde25acd6d73f6959a892664e6c Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Tue, 24 Sep 2024 18:08:17 +0200 Subject: [PATCH 25/35] Fix exception when rendering health check details of "mod override game files" SDV warning --- src/Games/NexusMods.Games.StardewValley/Diagnostics.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Games/NexusMods.Games.StardewValley/Diagnostics.cs b/src/Games/NexusMods.Games.StardewValley/Diagnostics.cs index b72a6b35d6..4ee86102a2 100644 --- a/src/Games/NexusMods.Games.StardewValley/Diagnostics.cs +++ b/src/Games/NexusMods.Games.StardewValley/Diagnostics.cs @@ -278,7 +278,7 @@ of the mod from {NexusModsLink}. .WithSeverity(DiagnosticSeverity.Suggestion) .WithSummary("Mod {GroupName} overwrites game files") .WithDetails(""" -Mod {Mod} overwrites game files. This can cause compatibility issues and have other +Mod {GroupName} overwrites game files. This can cause compatibility issues and have other unintended side-effects. See the {SMAPIWikiLink} for details. You can resolve this diagnostic by replacing {Group} with a SMAPI mod that doesn't From 2d86e5e28edd88f0f46f2f7448355679d3269f1d Mon Sep 17 00:00:00 2001 From: Mike Watling Date: Wed, 25 Sep 2024 08:13:03 +0100 Subject: [PATCH 26/35] Added a surprise bug that was found just before the release to the known issues. (This is already fixed, but won't be in the public version yet!) --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 433b709676..5609d42466 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,7 @@ As a further enhancement to support for Cyberpunk 2077, we will now detect if th We've also fixed the issue which prevented REDmod from deploying automatically on Linux. This work also sets up a framework for running Windows apps and tools on a Linux system using [Protontricks](https://github.com/Matoking/protontricks) ([#1989](https://github.com/Nexus-Mods/NexusMods.App/pull/1989)). ### Known Issues +- When batch selecting mods in My Mods and using the remove button the app will occasionally fail to remove mods that are not currently visible in the UI due to scrolling. - Trying to install a collection with an unsupported type of mod (e.g. Bundled or External) will fail with no error message. This is not supported in the current build. - Trying to install a collection as a non-Premium user will fail with no error message. This is not supported in the current build. - Once a collection is added to the app, it cannot be removed from the left menu. From 58cefe9fbbf026322f2ea04c3e3921229f378c05 Mon Sep 17 00:00:00 2001 From: Timothy Baldridge Date: Wed, 25 Sep 2024 10:00:24 -0600 Subject: [PATCH 27/35] Initial UI design for the collection install page (#2080) * WIP * Most of the design is wired up, just need to pretty it up and add the backend implementation * Add commented out background image --- .../Assets/DesignTime/header-background.webp | Bin 0 -> 225382 bytes src/NexusMods.App.UI/NexusMods.App.UI.csproj | 6 + .../CollectionDownloadDesignViewModel.cs | 31 +++++ .../CollectionDownloadView.axaml | 125 ++++++++++++++++++ .../CollectionDownloadView.axaml.cs | 69 ++++++++++ .../ICollectionDownloadViewModel.cs | 84 ++++++++++++ .../Styles/StylesIndex.axaml | 1 + .../CollectionDownloadPage.axaml | 90 +++++++++++++ 8 files changed, 406 insertions(+) create mode 100644 src/NexusMods.App.UI/Assets/DesignTime/header-background.webp create mode 100644 src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadDesignViewModel.cs create mode 100644 src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadView.axaml create mode 100644 src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadView.axaml.cs create mode 100644 src/NexusMods.App.UI/Pages/CollectionDownload/ICollectionDownloadViewModel.cs create mode 100644 src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/CollectionDownloadPage/CollectionDownloadPage.axaml diff --git a/src/NexusMods.App.UI/Assets/DesignTime/header-background.webp b/src/NexusMods.App.UI/Assets/DesignTime/header-background.webp new file mode 100644 index 0000000000000000000000000000000000000000..e389a0d11df170071386f3105a0b6425f7712842 GIT binary patch literal 225382 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

hAJ zqqZ!-h^J*h1-ElPFM-2J@ipV%9LNmJ5Gk8aepIWb7O1xz4-1%H|V5HL`5Mc^}+8|*R%~EYAuHH*K?jw z!@dUYhh6H^B)X=xXCo5u$g_5$Ceb{ybUhQ!s7bJAcR=C#yN=iPm|Kxe91?uttESF` z+t@ouq=z+15&Q2ldlvKf-cp!YsTE!k*xieyhUZJ2w#ALLIT`NOsLGk8Hd6(0R3o0Q zh@A`ejRzMn9Qcf9Y97o?iIm7L^)4TUj-UH4YFEW4Drs7U%WU!w42tok(j|22p-3NS zuha?GbPO>6B>oFt@(wZDOrmHUP(UP#MN0kDy>*O<0;pmt72O)hW#rWn%y6%J;BL&V zS`5NP3~WUPZDVTwGUn3h+a-SKDFO$+gH+W5Le0eA4K03h@!`sD%(4!$&Ye=z+e2Od zTCj$O=q>G)g$q|XS@i%s72W@iCL$dUNr@LIQ=^t<9ACOB94j81TGrPQZLvZKQCt|U-9aJo{5Vp2K`01hUls~oPW4;gX<=OBJGr7814 zRKF}6v@kwPeS}ot5*K+JTB7}@3lA9Uti_$E?B3kn$)%#|>Z9QKBL~z7AWxH36HOsD zQHI^+h0~fnc)FGLggv@LChl6GVM};#giK67A$Pxo*XqNWK2T%evXnmXDVo{tblWo5 z;w6yUkIO7W9lTDM;mZ0{tbnZ)n0SjpB{YXAVeGCW=q>SbT^k{dNcYZg=KZ>q4j<=QIf5$Ddl6B%j&FSa zkWaAr&sLmcEP?LN2u=OO^bxw;iNw?%G=z=Qn?IcbM)(3ZW6|{!j8YU8!VFenYx67_`ueh`_8#}zSOWga$1Iq}QjnfsL&Bcl zi3AqJ#U+5ch=<>99RUyn6)%SPntP(Ij)){!&6JUykd+#Jb!|KNt@h}~S)m`8+8dcP zsx3wJ8(*p91~OHuuCsM6uYL=a3C>-?kPfPV0BeM`6>}BN~dZcw2{~ zM96;a+3A}+X7z@~t!6g~6-z5bYF4JMc~a~_c7(QCV(PZ)Qef%OIp7lIZQHCh@C95> z=fRe|7S>wHe_UJBt-n=qlq&Zlzkt)5&7M*W$C1sfG2L_2D{0WZo?WHtpTH{y}v6R9XB*%&^QAG^3qJ*A}qA{cG9UE8C7H3Khcjp{x zHU-owN`=vZDE=V!+T4nZe3@QJX@<1~jh5#FDPp7*V_QG6IP9a@NFGSg2?XF;Wc~5% zLW4FUcw(S=ESzv=a5ZdHPflC1gLd~HNye?1zdu5p$;46%TLL^lIYCz=V)%{OP*Y}w z-;(yTsr=Z1j??*XbXA? zT3b*q`#5D@@sm?(g1R@-L3*0s1x7)B4Ed#hu{eXZ-NvUJ(|R&6>#y?l=ck%cba^+BeVElf=RSRUM&4Yqr{6iNSPwr*zJYXFJdU?W&PA#_SuQpUJu?cPV2VtQ`DPX+GraDO&X!Z1NvtEOwQc zGsUifAtgvZc}dIQktE!oIY?T25A2Hk8|YV!SRKCvME6i8*Q7AcAaU_pZ-_!^gD_VF zCjEBJON((Ux;0^qU#Drwu+&Cn65>g#nJgFG3+F0qpL7%3BkohH@(C49!%E7_%r^m% z>cUBNB&H%+=rb(eD0W^xH8s?qgK00@(vw-j^Cj|lk)E~SnyYH;=BP>|1-xkx zG)vt_*j1fB9IK!AH5Sm^6(7NX4h~4oA4Tp)$iRnXsc!H0>^eFs| zjZcFbncrcdxDuRlA(sOgXudm}45d~>DC*nCTHrNtG=fK@zRy)&yqAV+bR0m5d5yOA zt74(OMCvmbWf1DlIcJSrf}R{@=dy_R66%R6tb$lrHqn^iNvD3GfYhuNJ%m9@4W3J8 zSB-Ze7tG(<`g?sxv?{UAX2W!;fdx{1u|J?X)Zsn>_E;xJ$DuTtx4zUK*lS}bki~jS zQe8!bPvgB>cGQHyV37k%(dSc(966tMKmCeAJpGd#QKo>8{oqL*bKPPckLdnCQ~+%T{~I z=W4p6uLT3O$X>_o(dFz#vNY{C(@#(lN!g$?0S%eOs=<(o18Tbi%zb>|kXpZ|y`+1A zFigixS;+`#JYG=I!$He`VYM6Ul93&2&ApP*L-%CGc=SQnF%7yx;^CP#f3@z0!;?H_ z1^b;(LX*|^es)>Pc&v!JctDiug>yj!2_LYx%eeki73Bw^HqZ1iyKr#R!cD3k%+!C0 z1VyYI z%M@8{xP>WPXAO)Ob*jF<+}6#58V;?054Kai~1s#s}S)H^Vtu&YaEr` zdjUl`=T0Nv2?7zxDl?r0R@5o($F%DMjtP#mWef6{R#{iu!XkAP+!;+227G@CKaN^C zn`}Kb_#*f4)Pzco%wR-#fo*_a5;VslH(C@w>j)IjCn5Cx_mwTm>kMCHZ{B3`9A>TT zqs-LYh%ep%=ptO{i+fHC<&Bm3#$VTmYX{l7C%S3^7TnUle+3Lins`!p)9=YYSV`~N zf%dzUM!j+^z4>Vo`_e@nMAZ2Yf@bd)YkS7^iWLoKqh45#E@QQs14F6u_{}h16V_4W zC+KbZQ_pqBacfyj2`aw9$r0~9)4ge9-9tZmfkoy3WY*oFh88<=T!j;ftZ3#C`ws_E-3m%`t&Tjyo=xs!P;dAEzVT&+r6PrbjO zyKhfc&3ADQ(trvq@Tz-=nDlsbNml#Wc%7tlsn9VakF~AqFbYzzv0lU{#}$nGJuSYL(#KHQ5< z#gPXNR0<<%#+va2DFU`kE(<6d7n=C~BkHMEvn|#?Lfkcrpr+%&cQnO7eJG zMnZ|gdHc6R-n!#`Zhc6aMLVOL^O!BJkZGL!RV(kIr0v|~v(8?He3N|v;Ce{jOy%S; zb(gj?U|I^1v$R3$h6BgHG^r=&;doOyYfS(rn(=cg?F<+`NuZryO>p(xMTm&NF5BX< ze7|o(iKx#cf{9=OHADYK|GZjU0r04*J6HX8N4F{>CqlKG?TA?*^6yr;F_1PZN$O;W z7j`r}zCxAUW)C$NMgGnth1NmhXUn=egpl)NGOw-nVx10m(}9B(W~Dln0Nc=xBtxsK zyjApc6nwS?_g(;ZJ^&r+BP?9ADQZ2FMTHW`>qS)ZI)4&TBD58~3j)erY%FJwK!)cg z3r|3aB_W2=-f|THB}Pax+P(9;k){caK8ers1kDQI6!e=xJW@+pCEs_@NZpKw>sq@z z6l;HMdzQd=%~Ub-RDF{BcY|&8Y+1wwAzrk`pCWfCL%%| z@aiG^gHN8iXj&1)!5#6SDz+hlC$hhR`4dr&n=ChFDtrtR0Gg!`1eqiZ{gIpMvPyNP zaJTOc@?UVmuK%r8aF z0b>@_Kz)Z=VRhK$DzO}2i|?PTJGj$mHE+aN%N|xpW8P}tC(`hiEL}f7F#ITxTG#v=D4IJ&*c2|f3-HW9PJ4_s8`)I zn2DfUV$D|>$E?E%-$O}6MY#0!Cec$bPMqkT&vtR(%We1z>WTjsswyQ-Vh(I+{R7Ev zuGDe%xF-*I>29(5;k4pDn=$RjdUE|bO_jc^{1k|WDoY#JWGB=EOv8j0?@#b+h+pejjfBTP9f7ZjsS#N#uGeS8z!{8f!9ZW$IL+nEhjJtdv(_y2EM zr4ca3#mE|v54+Rcv49J$pBR|0o_<`rfqLjNFYIeN)A0VVoNbx)97yj0NpBu2%cxZx zNPKubj0WIBkiMDrF~DoPPu*I+hr_Q>VlXmiQL;~#$6b+ympRb}y=170+3;zbv1`9B zXx7Fc6a3C4e<{NOMDMZ{uQm-eM8h1|`5+MAZ@#4BQ%HRy!Th2(zeru848!A9rqz}D!bM!_m>@vOf$@E+XrF$TbnoFk%q zxiESDhd&cE7QF%QM1WY1fT`R4huQM1{MDQZGK@61_l4%JEMi541Jv_&{$OE4NK7&& zQ`>r_lre$(Wl5v8m#60uRcQw~`-&4tC~mRhcsynMPoI&}#}c$@2LBskUHDU+;#K4J zZ@;*O5cBKGh!(kR=`VhLO zjmqH)d&UMMPbvxFs%0wC{bVLl?ppy_5t9U6LSy?0o8Qg18w1sv_3;i~uICFxxIm zA+WE?*eCvP{=l%%?hK$+`FFg%;>ao1%*Y&`pesk#k}rhqpw{K=AQd7reJjIUb5FPG zh<*IuEdmAOIsTkTws0@2#7IpG$qEn905OnjdRUG24hYrnC$`>0w>7F64sB#B*uFWl zevY`U_d5N|T#jHJeR&SaHEBqT zD7l*?bGy2qZ-8T%qPh`mKKVgFj8rM7er80!3{{&&Uu#+8lJf{&rK3we#S>+`wql$~ z<=o=Z)3?yU5n<0oy&4$mV=*jfb?t1kvz4F8lV0s@Lf2r0NUjiX6{gW|MzjiYM*s zuMjXwfBL*koi_yWA{~AHYhq%-<>BVvE&qowcz!#>1#5vLe04Ybe|e}E(V5SI_Ti}N ztqe=aBz|OpdS%s>oG^^2A6$=)`m}XVY0o;7Z0ufLln!rZMI0eMs_qgPaTZBV-0ye$ z#cV-|e503CPubRhhL3FSy@C9ja%KINO1=D!O%f-(GGKOuf4B7gH^Mx6Rl2~O(fM^;28evk#Oyo)5cXv_t*|#wn;Yb4jxo&F%at zThm9c7nFWR)3;RbY4U3IXH5Fvwl&UPztZ;N4InoKR=+K9H~6c4VX>V|YIfU~YUNul zHROFj3qs(6ACEZ-4&}qPCMQ`7R7jB~b`HX}MW#utq~SeKC4fK6C%%xk#}`VF{U}8h zFH#q~2jI{t|C7yh>B7GxwAN!ZKbR8v!3UhHG#o=@BFwS7VU+i4>P=%#P?N~+zzr4g zdz*x8k?5W1^Hlr#p9G!ccr2~+=!mQ!R)+d{lU5+5aKWIdZarN)Arq_HjlM>={)3i+ z2i#JUU)?E9O#glc($uGTN0c8*rkrP_f-#0TWvtlERG60@@xhoDff)QVTY&hW=4O|a z+c4}<5`(_1*2&(CD$Z$5Bd50>9`_7G9kg_}Mm1Zj#~5FaLx=$~orcvq#a~DGBGeIv zk4&RxUD(0XcnPS8jChx#VmU}x?JaLB(sK1y)_1ze)q zkM@ak{nXXkD0U|mPH+N$RY8BPfNaW^$q^X8wGh8xfD2cpR<7+gaKbVkPwt7(Gphe< zP^MQWXg25nQ1e1&3eLj{Fm|?(q6JfdvT?|pVP0o%Homfl0NhXg+NUo}W>sklcn3gH zx`fi1<(TM;UlpHRQyx$OBogQ`sBpCtkuSVn?fCe#|!XE1&PX( zQT<-Lk=V^t5Q@jz8+Fe}Jg8Do}2*mZwamiEBY~^SvQ5y`$%-iHgCnl-sqDBilhAxD*vk?T5Ym5WhL3qOp%4HwzBtfk zBKW0y(Ol(&?h)nXor;hFUb3x>7`4;E6u70OnRJfl#3N*5tjwXes&Z0oaI zA)9v;c?ej_gI>XsSz56UMcLMH&Phwzz}l?PC2i5S_a-lkhql0=qVdhw#)i_l7{T2` zw>M7UiApilY((RtPYJOe&|{a5cDE8wb^pnV3d$LSM^Fwih( zAVS5hIwSoFqAFTInv%W0X+tZ%FNh(Sd*~X+0Spg@@b9PbA}%7kBX<9VidgH@Vm?`| zGBS8Zfa>Je)LvduO`2#j$NtbnV~4BcmJDX{4pca2FO(L1Bhmw=nt#1#cBEcBckjf>dsL=BFOi_OSAqc4GoigGgErh zN@Q{(-5HAzrsz0*KepIQwoL&edG}ob*G>Ojq%zM{{iGSalZk;H=JWc8ohF@StE?$j zp*`X~iEaYUAK`e`b%Q#hg1kIAF_=`{zztUeX)A-@iLyjSxb$y`Yaq1Lx~^l9f9I9d z^jk2qKJhTka$tzP^;4na3$WXix;dzMic!QNix)-I&D1^}jWx3|89}O9k&o#f^a%3; z(sq*}`ox9BozFZlkC&all2KoFQP>c`0Q4cdVKPY;&o?5=+OYYZc(IQ{?Hnqs5VsRk zR88{KMnKGN5C4Jp3trZ;3?v@C2WYDDY2KOgktP_Ijm)y3a@aq0*VcZJ4}aBx%Ez1H zB@je;333d<4Vu0gFGmjrX~)JM^g4j}s?Y9V`&Z|Q?|)QN4p*Dy0kh+;GM=TCG^URm zfmXcG+;JG;GF5%JDOI%;u1}-&-|%d$s94#`rYuLXJ?>7+)nl}3YC=osY>6Wp5ouYj z*BnrAml_pI=VOtYuNw4%=o=C!m8s~=JO;qvrxQ+Z%6~n=B`d&9EEA>ZIsf#;19G+F zO8r*HO)!pM#EuL$1pZHMHH)vm9#0pS2OJK*8&>$ESH%I8c~*b#Qh$Kzp=eE+pkQYW z&B!QI^QR8f)AVcEHMKC?&`Ao#po|OF*e=T8VY~ykHZG z`&6h%Im$^B2+>02Ta4Pdo16_?7&2H_SQhn_DYKK2Rn=H*6pD4f!frBbjszFU)s?Bd zE#vptCJpfa_`iGa6Q~0DX zZ8j>dvmDJGeUhUstVNI3r-K$oQr`a8sc^uWO6rG6=8peP+0b4`SMI65I8uo`Oa2n1 zeuug@06tJ0Psy!y)$9S52jcH17zq@IeJfbdH?QU;lqQ;(-use>czoDQ z@5RR>oU?_)9kmZ*h&W0X>B_?A*V2bBz@-Rey~p|!30`&%)I=gJ1Ab`Us)*xSFR{LZ zXvc|nv#ESmuV5GIajo-YH|;rD@eV-2u0(b+>}a-Xsup<(2=@MyBlz=GRvWq z+)qo$lO#RXT>3`+zvY_elVR;h9>th>I&5u20u0l;l*?SU7E$#>a0Q55RI;3XkbkQj zvR=eEjclxQfcq?IES0gzD5$jil5sKk<_B=h*xJA$+vFry@Y%RhMPa&;aW}xq0-uW) z^QY9&a)5%}!^bqv9vO)^W%dgSC_%ZzOU5fb2)~=M#s`ZVK848km3p1ag#07^pQh?N zyOEaBxJ~YkQ?RIq(gcX8G9=qHlh>&E9b={bY9okg_MW!|Y|T-K$bMAB+tZ95RSg*q za*&VBVD?-?c*$chqgsOLq5>?jpf1nLc0O(5r~E6eK&}8GoH-%a(Nh<|l)#x+2v$c# zxOTDtsfRHe>?TD4}k86OZ2F)c#xwL-(?KRN*CJ1Ay)RRurQs z+=+&DjR`fCktE!cd&0RTF&8z2jy*B8)cTghKmRDw^$Rl4-Y6VeFp9V*V8t2v?uTvm zTwHE1Ro++ wGeEQJYnooq2RJ2MuH|>Dt6Co+qI#2>~m_k1+tNPK&f=an|`#axW?+&OZ zOi9&8srWw_Y{j3z?8muv?nKAupqEDuS}lxMpf5`SkNeDqC_4u+J99&@AW&evPp~6q zp*G!G#u+USIHCI1*>cx7h)6Qbj~El(s&$zEw-j40r_Rk}*7Vt`lr1|l#grvV%2G+r z)Y-Byv*AzV2TRR(xFU0N7CQ};9$tfsHjWhB`SH10MKE_j96cpS^QAMt_n;Z0(_25JJF2InaoK{e=Wo%5-_4Wm@9YxEv+VDG1za6irbir8HTEuNbp97x z)H6D8eCn_;D4-TdYLUXVEJpFkQGo!Se3PVpXYFY>hNy;c5EwvbXUIdFM8Qb^l@~Ph zA)`uAlTI&*bGA7xN9f&8x|;Ym|6Kwu!J+`dni=jf)b)beh|E0(L0<*wHzI}jNFxYH z{Gimc2t95-{TbibxX1YW5W2KLD>YkjSy@ZZDPrfkV4@dWgIXT=v}=$w{&i7osHQX4 ze0L)&`0lgYVYzSQpQ+IHbk+wcglvsgn4D0wY&Vh`9bO37<0H7SVN${`8ZFBMVqua`M95-0;MWP|9}@2ImIIsRdxYwVHX_#dd&B<5 zOcN=C?D!$Vv_DJ=fR&XBxAo4{y6>$-aI>hz;aSKXc=wniZ>pZLTe|kYadpNroFw8F zzaU4Q-cob-2D|%ZNUh|zW%l5mc!8e#1vQQ{2BKb`>({8_0(TOR+&Ig24jG+uHyB`A z<2LJo=W_ZoM7MYdR9aptvxSYEpG`k=PL_ANS*Yk~WAhz_;K1eZ9iQm->aY?w+wm#% zf?WH=bsWt5h68FrAalYa+Cr9m`hYn_Gj$Ur@@Gg{*qO-s`~_d*s7eXEjtEqG=tTgi zxO(X=ixC2Ia^!3aY^29?SlR~IzPaSZA4t<3-LJO{doh_z=0X!NK)fM{*}6P%08b}H z(l}x9wOR{@8Q}kACY?lC?99s*z{(yV@)|lsR1PD%RWiD;Gm5l(0;lotn-1Q>!-Ynk z=a1n7CUidN#5HP;Gj1j2cmJ49PdCG*6xErPUQ41%fig z3BXgQU>@cG$6pD1A8|~i^6RLnPBr1|B^Tq1o68kYFP2E4BPd?v=)`AO{b63|0c~Q3 zs1SAb=+r5+KDMg8=7UlKem8RrFZg;Eybdi+LiMar)i)z9PQ)+i8BjYo4Av1wRbxZ#SNqp7m%!%gXRLz^4ZskWO{V~YBbK$V%oqq z%$MB=v`_xmCKyoC+U(;7G;I&`U_l zhJ@>c^;5G?3}XOzo@U2aJW7l$1jacyv3|3jc25hgz5Ztf{pTW8z&GBQ0BW zo+S)ru0IWQe`sd#YlC{5IjgI0^K` zPosay<50tqi^AamG2;z@a{$J(_YWVqf0zuWwPMF{C;3k5iM@5_jJhb?bC5AR+ioZ{ z2H8D^tA^GKU>?ufXz0J>YvTyqRkbJFJxz|azUfF`pmTy(ZHv@u@Itcniql~{Jzo6` z@)`enYGeFESKxU6ATy_7Pt*5Y;3TdW6PRuE^;j9{2PMW_o9llgaCI#CX0eLJ#)>{F z3|o)0ORGaMQXWl3X0IK&S0bS_IP$3G8PU}jkrL3@Jxs!MbS^Oe#T}Cy^%7ebtoy;Y zHHa1?-m8*}^NvR6h_nUF{88%CvH>~BL%A&|ojYf0y_4TzlqlsZWNrJH3n8^#`fO7I zurfBB>u&stNj040{atJQt1hFG1z@mJQDu~p$0tzh2s(*d_ILmJef(dUB}m&VCuwP| z(C>ItkVQ)xQ=o23nxP7D&5A&eKZ@aL1c}TX&x%R;cd)1w-%R7f1ZPv9)10vzNwe{= z6iLm+SE@Hl7=W!Ix`eVeQSz=HqD2@fJ3;gF*?pNUH2WA@UwD2q*sF?3SoIG!g(0B8 zZeu-)%Z@=z^9|a8rJn!|&dVQe^wv>x^bmLagsGBrI5=D`so05jDDw7f_m#Vcpz>Tu z>^WrGS`Y3g;+RuxN$96q3yC$~`2hd5qCZ^c#^l&(KZ_b8Y}TrAfsz864?RWC2}Y8D zegzb= zAOVyB00000Uzf%ttN^Y~xuz0_U_PraA*9S+08Sm7Pgtd_wZU_*o~B~LT#d_}d$rz2 zKt~^?w&4$pfY4F1e`krgEtOj-Y1jEBv+mM#I2uL?T1aE>deDz={UDYS9=nL231@L~ zuCUo_h206qIE#)IzYy(N))H^1_TG96jKhYTSEq4<9L}v0oijtxVe)Mw1z>;Avd+!8 zM1tF9!nc{!VDk@-ONfLqgI!Te4|K7(VgWs5+xjE}j-nfeQ|;hra`IX$U;xC2Y9btk z&s2W}2bLe1z#f}1HBO_@QBj)nn*mmumY5*b*i-@Dv`^ApYLffGblFeRIl|-&(H15} zy*?r2vMG!~M`Do0n3n_KC_^gofb@M1@jG>v2iw02A=TesjQ~LTsL4tABkY$F2C7>m z+b!?%fvLK56?p&Bj>;i}$F$`p%`4&5_$>Qv#OUF%=)))AY5D85tf#i+Gh3woM z?2A_^8iwMzZEt6}M1*2X^^FCp?YXvNwMv1;sJB;bKq*MpCZTA%$2f4K5gk~;kUGt( zIFQBTR%uhK8~ySv-eD!*A7pwnT4i!N&>>nCJspsc@-r+(hAVVnBlaqoFXMki1MwTmx`l`4}*EjW!5gYI-=hrpWM z@JF0FyT6eh88;uF1NTu3%bItn?8%29=J4a5X7pa0iGS5nMdkt3ir6EVxuRy@f3<7e z&o3^Hd+doe60OQt&#~YjokBEg2>PoK*)T^v(LnVhf!)!+pu@`!$3v4j7}2V~&_K05 zm@(Mtz-GFJigk>J$xTwN!txB3KB7F055N3au%lH1UX-oP7iF+&}%LIX+>N7pg~8ejI7S zo$767Ki*rq={|^MD=jto-mKkWQDH=dBq@zQ@7Z6L(qOiH(%r`+si$Sof7l3xr)RDA z%!|6lr`TlG9((TaAlQ7XyEcYfGxu;03c!&jRjN@e`kA35yA}Pg84=wsc6P$>WFv;U zLWBL?`KoPrPcX7#aD{1Ure>9!TYyr`{dKvwRI3&LgjBV0ICPoGTe7c>Xdn$hvIU{d`7$v+ zPFPd9^M1sxq$Q2Ygz^9`ifSn5=8wDL`kyDYyI2^>CU0x-bMvi5bIAU7A9tt}pq9n6ID>i0s} zl|T4@Ej%ZlxiPuf^d>?Ju0F}L-CQTe8(G$lcbV$Luq!{3u6J_|6%ACSS|t*_P>g|6 za<^4nW5(4u<;o+#|J6pfu$X#jdNc-}thq&Rt1F|sD$3BN%c7ZStX<@vqBO~mN5`<6 z?pPKw-Zc`0EPvl860797K59?Rj;u7^F~2`{A3}79$W;6^zXx!QOamKHIp?F_mLL|I zgs5TO;0e1LEfnMKf^Obt<&cJ^Cq;%|xe$>NtX@@4P&!m@2t7{=F@m2}cgb+6(Nk$x z@HY;d)Rc!AV9R0eVy7a-!i-vfWA%T6X9UsshthXQ6kh~Ifp~{)(vi)MU{V~NXHMm1 zAB({N+3l#mRgwg#zEG#!L5nR`k!qP}h+XHAP%^Tx`#RWYu zc%a$|sO~r2vO+O`6JwUzQZ7bljK|snL^Y}w^08%(dB-8c7lDi$thEfc@OB-@&(M-H zTf}WS^5Zh3YNpYC!>hFjDvGiyn4Oo+T;eM?Fv|4v!uF45dNi^M2QV)h0$$ApohKH6 zc?(m+@}%9P>AEf$H(xv;HNJ~P>b2GYqq$m|JFB`I)ayAZfqW8r#vW7*i#&=PSWw5D zur+*qtq#vEHk!rwSTUSS$O_V2bS?KKaapdijMchFEWvgcOY6vGcU{r0dM#~cEAFaR z&+!SEl3y9YSa)HoGkfytyYzF`wiMbNM2|bO)!4!Q@xQvN*6@jCEd?mks>J5qG9fW$ z0Viz%VW|@;ab?OIa03Uq1rIVr;cC{js?~cM5C+Ov)Ua)N?e5vwi!(acgRQ0}W1FG` zfTPue1hKBzPGR1XF4l#Cs0PUjCWlOlw93X-O4FN=!WTmBYo){?fAs? z+(8GyVIwi-y`Nc;?0?rDSH!_*N)$@M62GrhyWZ!ul91ZHt`3iiVB~h`w`!bOM6`6T zB!q@BBTP%@m7zi0twUDX=CJ<*Vq3bd^+V}VeS@x|%+vCJ6^jnF8-af&D!XbTmAy7V0)T(TJ1t55 zX@tVmYtet9r|-8gJ+Pf7*BMtJ3Fva-CiJn*GY~mrEO**SCAD8ABY8*)`jx{`9@j*ibhSU0RMTpUsiLnYRhaEQ5l#WJ42G|u*g)x7I=#YL ziez5ZbK|wtVEZHUqT6$p!Q^5${dmd*f5FBZC=J5qP)#2}iPZY+$s^lB$5mQdi0Rb{ zt$%Jn7h5S&$ftDDA70_9p17;Ph=XrW$W=pUnf#(_&=R__uVF%6Vp5rrYD zzKxG3E$d}L_3+GK2w+>;B2<#8M}C@M$u`>13oVhV%4NW3p z322F#2bQ=hQ6wt$6U%1M>Fe#pkw&FGNI*8 zQ~JC;e(y1$#O5#eq$(`gYVnz`3nNbhkT*?(|7^%}xakgBPz8#d`RcT+$`aT}(lg+6 zce3~94Fa}huTW6bbvPtd81ly<96`uTc`!koGPVOcUxFF_%euEVId>GN)}r{XvTF_p zcVv(o4(4>fWb&j<2K`#VH*h$5SgP^VopAcvPX{~a_4pmhTKqu~WkhT&(Xs9}=S-88 z!un*0^?yddq97-Qjk4%2jL4aXzLGdJ>dHG#HyL*zYxmDJoRG0+UI;q4zi42};*hGM zeY|El>{(>e4tB>1+$&A7;{BMz%JF=_U#sk}mJIW|Zzl_l7|-2dq9~i|j#P{Tp;4V6 zZKPb!>6u^sXcynuy)6k`=6nz&d@E%=6Pr$Yew>8`-F16A*KgSda?m=)e^nwP+0P9y zxO|Vkl~0pT=y&izt_2$(E$OOotP54xWah8TXUl_c`bB2cB7M*Ve)yQyBZB%SNHu!Z zSESDBQRZ*8n+~4{W);0Vx3KwWAVJw9yHfN4w*SwcWJ!W9s$g!$3QQy$!OiPoXP?SR zWJp-L)+9TiWDzu9-NUq>xVMA6CnCc-KEQ4g|_ZvdCw7WiOjfU ziwBo6gOc;o+ZQMUCgE*(S6EgZXE5SV!nc7_!Pr5q%C!k0;>ys4TLVKes|&+opIeF; z%(g7jPm}eF^I=Owj`XB)68cQ6itE_t_rhdAxoX36Ix?wB2XN*;ch^idBp6X}AA>HJ z+i;_6lA_CgjJE=;c);O`p_>By)>O?pv2OURN2xjf^TFjc$Bc?l6GQAVz*$xeoUzL= zq|{9Z?3ic0L)8?i_>J@8^;^iV{&SMCOf^c_eF00g1PsQ)s%K&svm_9Sg^iX#uX%8M zLvdL0Otj_=pNdGriB#Y-Y(Q!wZ&&5jL4Ml`$AK1(`L3rO`UR|mbbLk_{CxZ3zT#9j zeRg9YzYZ9u;J14I^>ohpQcKc4#ia{{utdqAE&EBAx~xsZtvYOyiJA`hGC6)cU~2;I zPiYN*C95;>OpZcCtlOS@=4Rd3_Z?b=qyk=_Fi6H>A9UGq+=P(=T0dN)qqeuN5}P?H zvFn#?DPnnB#myJm`+p=Dew6{1KI&oS=|h>ur#_vSpvYO7O(X(^m8Bf=WVR{;rtr$H zSx&j1wEIzWf#0|4oWxv=Zb=3>$d(SHP~Vkzhu}^<&SQb;N;iLc5El{G`zB)U1>qX9 zR{zU#h+u2ihqiony@j&D76DmBo*R8ZOkOWpxjx8w+86ZiF1oYsa8=S`*gOj z^+axpgNCoGWOQ8MQ9dUgM^3lh?^F>Z9cp6c{|}>0Qt0IxJ(U|E(SkS+fYYo~r8_&~ zB_va6tsf9M7uk7QYR!Hi*HTsLJvGCEbLWu4dZjZ&$XJX&;=`{l+?ULQp}-jLMA{B% zT{yCsfAe})7?^qpv8E3dHPyxzxp(AuULm?3sp*0yjD_wmSoJq2-l8})>#a2Bhye9FZTvQ4> zM-7uHqJNJ1VXGbc{xUUp0bssWINBx&vq_M7Go7uowc6Xj(VuZDGKMl1>7bSvI8fIl zHZ(w&iQbd&B!?jD_X??rFHZ?;)&tMWU3TxiX!;@!{A;Ylid*59#R}F#0I?=}Ls~LS zi!4G)SLbMqM7y!*oRXGGO9QV4@dxS6Lfa7f;f2>vXW=8g0J&Ur01P}Df-EWbl*M(B z3awTbsY%Ru9fMo>Te)1m2kdx{ewzoyO_`&5;pTo77=AQl%+6^fVl;7Fx?~(m(A;K7 zZeER!7e1ixT^0#a3I;QIe*$q$sAM5!vQ~!uXXw1f3C8C8-pnsDGyF-V2-=&-QlcJE zO&Lfz5)z+h`UE;ka|Qs>FBt^(WTM&GA(z9YgtJAqsIiE#4m#`mZAxCCGllMxdnx zMLw%2@ou}#{4N<2T^Oj*fc=5XTXKhwIxJDVk=lJoA1RkW;T|Q*I`^@Xd-34iUZM+>yv>||WH+X?<_V-23N7kWo7SHr3GP}g|gd|`>0GGyPuIp?*eli1@e7p=*ibW;;PQJ9%4d} z3t=VooWSd1h{v3`%Rw18SwWcte3hQPH4loz)riGr*tll&j#Nn&{}&FCw%}QpD9gjc z1<_c|<<}9tLb3r?DJe=C#V>tAQF^d)dxm8v;L7Tvtr6@IWyR91_Cp&07oJKdFe7`6 zpr^@x*cQlx@Y!KCCCwEli#bebMZnqm9u+~Lf@kBj*ogc=qR>_LCh-Hi_x*J)M8l5LZ|a_X4!&N3o0)ga8$zZ_%)T z#C`$mv6@SCq@}inM4(9HADr%0(?6J(_odnVMi7UEi>7ocQQWIaeCN~6l&W*wl-|DQ z%i#m!9y}SUKwp!r4MH}mVl+!N#WS6QnY|D!G{F}}ue<|uSGx!D4fA zhI~_2X;Tu3MRW{9p@uviOo?T;6?4s8VKr?39=0?N{vluJNQ+6=5d&>Az=|{D3`g^} zwr(4f0|sm+d{8nQV!w^z>RW-I=YbX8z5N)UtZ2l9UmB#q+T=<_8O}Ro$OHazvDOcO zdEzCsp2VN_Hj}P(a^nhb#9!D9vZj+i)@>F;lYeFLjH^1g{%4;FS0oD3BV^&+KDCU* zqjm-5`wL24dfdOUhHoR5XpxESR*$YfbIIs;tLqjPB@F+~QheY%#`yG9B5a+@^iHi- zDY#p?4XFOg0q*1^aKxlBtqnmG(9YKTW&9-A&7UDaV}Q7>Mko#8MCoAzWPh@v6_eSt%1p$B_{q;jqV8aFbZAz249=j#dqhR7*90L;pfv`d z{I_AFj`kZhGy>LoA!YD$A>LaPCi7;6;qCg&puXGV+xd#y^IpBE<;ewMd>5h0wmhpW zlZdJSzfkq$`c>XV8ja*oO`M{K#JMF~3HHpv3iTq^z_=YupKxl?=t&|ZJMRaOt(FnO z;k>nf+Jd(6k7{jCqxo%j3T;aSupR7LBPqS&l9)At=Aup01E>x3k4tJIPku4k$8ZCM zWt`D!?qc+I1&?-C2vp>z<=JE2pfrYY@(%t-kNf(|O$wJfPj(?j{K)GtPpFqWV=Xoi zT9r4U5C!LY>H-LU_hiwy!jv0|w+j;OQ}=Y*BV2V9OaU~yZFC--pVk)jL~w%vrt;|3 zCg;50V>b)PX|*qqYlC$1SAFk7fiFFJ(0rC}bIgs=b9#l>JtL~J)anv-G zN-kT^R}N4j3}|3e>SXBSRkOjff!fw^u_b@U_wum39E%DxvEp=4-|5LhK;HC zMsE1Ee{B)^qSvTAS3vYb=9FnMeuX!D8JkaHHWNt^T!~nuqymykN|k>V=%i6*`=Q9> zo`LxW=>LUIsab>myHUkYSR!7)VHa{uz;5P;;aiWWSJt#m?b(92*pS)mVmGd|j?H@M1=pX#oJ;&#*}SZXZCG&j zoBZWoLu1HSu3fD6!D+I7(9jsnk2ICMADXgHwXqJEC_G9tKG4?&?3V>lhB87j2L9oA z$srl|q3>gaW{O<+dl|DlX-tP2ljXwWJFx4}Qygbx+wIOjnEWUEzkE!&pTDm+K$_k3 zrtdhDr<$vBFD>;k_ftcatm$qHIzA*NEfNTf)~q44Nw979Wv0zQ_)&YlCnOT@ z_;nqO_!DYaN^W3EERKHP+$j^gBF|n6waVH%UR8;=N-34~DIE~s{3L}h8-;h2OeY!O zqbB?#UpozDvfS#~CPZ?XIy#b&^YQ8zvBY>cEnDPAvD8|RTr73l&(ppoW)Gt#C=HKP zJ8A9>OK)m^;qKim&FLH$2)WTAVx(+IQV0AoPaStM5yD^2&V~Q0AS@<%%qf)f4K*$y z180!dIHlr2QhqE&FT-sM@SiN`i%Tn))#KRJnX{I*leRHIo~R1tb~1VH3QQT@M!=M0 zk8rPKT7iza7Uy78TakhcciL%r9RbJ_UIgVvGOK*iY4Z>rEsBQMuqTrST*KyQ?b+hE zB<~Z^#bQ;bD5h0MDL&?_wIQ=9A2nh1G?%#qbD@C>0AX;XZ|t~@P4P-Cm|!N<#m2v4 zw*3T18I{dTPYqy^B(R3}^V1tqX)DxRS{nFxh8BD9u)0qe_JE&$0){ zylV6og$0$06GtIPVqiuN5T($=K#3A3?h~i9U%w*AY3cvwJgVJe40B?;M1`VvteQz3 zD|$S^8pc0ve8tAjt&bn-RJeyY*yBf01V)68rjDwdwRP`8#LbI#R^*2CcUF~&I}Wv6 zFbjD)S|fP33`r%o`{TEm7G(2}`-ZUb+m*?m?yFo^L{B+`Grkq+ROd z1f|a`EZ+c6zP*vQgxfS_Ay>Lx%j$_mXe?#$!wKpq-Qy+WKys(|c8S*!HSz30@`@*x z#7obu_J#PNc4NBw2hsnGHyI!PCPsx4X6)!v_@C7kjO#-kKl$cM{*9<`_Ls@C1Rcdh z?F?hQtNl1gT4Io0)SmKHMcS=%5=w0jX@uvj&c7u@7YsY zG&@3Mlj^Lrb0*L?7;^mRepV&aH{Wa`Qp)hNlh;TfB0=ruYj&RWH!;&0L;NogAy=CR zKW$HoDdU_UY59wsB^BnJ^3=j_9Xr{FKWAnMLK_rzY*1)fZ1yN72tuC~;#!l7_ z00cke<|5pnVup+8jQMLAikp`@3z+nO=8hYLwXlt5`vo~L1ZmDmU{Y$QJgE8a#l$ub zmF0(k_lg*%1=*4&ZkUwp^2Dl-KrO1+p#XoQfFEKW=q@XYg{pt|FU^HR=U#M)cW!Gu zQ6z?{o|sWH-=G;fwZ_!OIyYyp6sQo@Uq+||Pl~3}T06p#_%vQ}7T+R0wxaVad$j8LM zKw@M}_s9gTM~hJK(vDMVa`_R8OIkYv@;p1#e-KTHsDD`EW(d%h6=-_E&Nag=2V%Y~ zX5;V{>DY1mqN9S0#<3+SN!zP9vL5|G*J~G3O}NqjW*yE)4t)Dtl45H{1Q{il;pcc7 z(Y%T7B&KQ1E8mu=RU_eAL;Y3ElY(rL195CdslAbWz>WP`v{Ub5ux9QW5)4ZRu3Bt} zm2TN59gmlyNavqA7W0^?BViM457kxa2-=z9dP%~kDaisdBpBynps}~w>Vg_NEvQ$d z1eQ03cISB7;*akx2$N9wxZ5!O6LI{)9#5mrH$J*J?AwYC1cuU&GY(>H$b94WXf0VO z6YrW|w;%TyUYFAO-Cw%+@fsK?K2no9F^3twP_uAuug!`E?$C~m-It)Y6$jzT`3kJw zJ1?U7iIhmweKq_dhlsHo1cur03a6>}GQTO&&6Lvj5X-idEbo|&YAiP2SeGC_J!`>d zbnD6)sldsl3^9l1%Hb(>~*Z1Aq~$3hUhEh6?wf+wZazYdwvaQeWx5zzuf>9 zhdd>G`t<}aBYT-9xE*C+DNvun_~@@=zJ!?~urJ(=MYW2?&A-6!>2epPWH0bhhnl1;pIQ>rT_5JF`qOs=MKi}Oqp8D>eJfqqdU&K6X#?p5zM8oP2Y~a zCjmMM9ndNDs!7;4m5XqdC51OHLv%1(w=tD*6|c3@X$i1h)9#@c{|zYwV9ZwVDe(8p zg?clKVdEhlKsQbVNtz{ovSHcQcK0QqBaAyg#>gxDU81)Ecs=_Jg>d;P@b#Gl2YI%n zQ_$Je<`$=-LxJU?S$6=?ZRcLVY*~>^Eny6J3F<^iM?Us7wMUX_BMwO;sp6)nu{%JV zN)VcjldnEo=`~ILu@fmzFVt3tHPqv;>JPTXjS>$nW~a%rq&5l7UYVxnJJ%o;w>`}iSrZ-X z`EM4wV=a1aWTyYMIb6k4g;7M~ft)VwaVFNJ(#6nNXT!lroxkovUM~vJWs7C+3b_F0 zWJx{YqMpXs{3w3Ibeajky0NM1w~}nO@NP-~iohz3+ei~R>en@CWa=+NuWHyCqk~8; zxoX|cvij1S6=b7Hv64SI=OD|hq9I&J`UpGFghla)|N4-J?$Onw_%EVvIs>&Wm9&yGV9$m$K#`GAgw zV-iS7m9vt8-W3p9rM2eH=egzkRl_8QdY(A$^HPkkpgjEXh;70{oAk(C80?!C()P0LKt@%MrAv z8GUK!v9PI6Lws~IgbD*g?kO3Z-kfNS7!}U_$rJZr?3)FxSN zjxmF81x=LF=aC}%{k&V=Ge3i_Y2K zatmp(AyF^hyp|*1DVDbgsZ=sHGy(j$aE#|NQn2U(x-$;^zL>G<+i@7n_7ST_wZGgW zno#REMuStZ;Hc<^!W{5xhS+p=rS=>mTsl|V3oa0CK2+)~ycb!f$ggE;blfEJK)^ss z=_e*)GZw9b4Q}vK#x1j*#zjHjxplFn zgI{4$?9>KOCSZKL?0Q)zw7P=~Ja40opY}RQzbi1sFqW(4q;`(YOJJgsIY4XO`TW9e zt`m`Tfvyo35*kA1rK2#L7Sa?ojF8N{j5`iN{v)HMd#Da=X5LJfj~3N|x3eNnUEO!a z!P10B)$CU2GxSTF4=}RZ_pTPv>j&ZZ(ty|zfFtrv?AnJ+eM402&}yolXe=YC?>Ze5 zvRfeL6D#;)-iaJ4#fa4Nl6^?_td?t9)`;iLf`XPEH8DgTzG(HFDk8r;^|H zzpGI!(uG=%7I4dC3O86(z^8f&UjwXG|Jd9LFX1Uu&Z2~_jZk5;zpK_FU4z8zOV_Ma z8DispR_NiBIYY#uAEv_>xN1%dA`dpLal;7lVj}F>oHOKllI5-f_TD_ztZp1g4s7>i zvi>49FNLjmy9@Ct2_|m3djM`AZX1xhH*P2!XMYm!T9Yz&D48#wts7h`4DnoD1uaUb z(Z(18!2RE=QHPwOMqe>c&EL4awENYC{&8Ck&zII0N1`;I#87Lm8|3`Ajz9jMTz3|9 zPO_GFE^11GQMp#(!GGzE7%b-0uX0LQ?*(*yS{yB~R|6$uTY8;-@m{WNlKxV~VhXFp z{}3Q*>sufc6KwI$N~+}hR!p45fcA2i%=eY?mVAl5acoUIzfCV!K`V~;XVk?lj!U2f zI*O1`=9geIdDELg`K5wQKukC?^oF~+-h~@KSSG{vuyQ%mM^zFS;8b89a|+&YTYbYp zC2^LHHF{w^*HB=Q*El zU{_icg1vo90S5umw2A|>29?eIpTRsstC#TggW^VcuL%K_)kSvH;c46&Eg$tUnKvhQ zx@T>krE-6Nkqfl>~F4`~s2S$<=1l&?-#MkV3u-r$k_r|c z!R~7;j_vDX_0P$-M6;<>H~7@u;NDyAst%t6@a(0Uc12xqXNnL764y7&eZ(4iWK8*An;UoP!uz_H*Oa`nnQ=OpgEP6Ss}_zh_%`{g(#r7>slrQ)N?kJr*@^ub48076Q?T! zf^aSgx7hTrt$BRKk=~s;XJ%rUxo@F-1PqR!2!i&s+1AlG24Ch|2Xr-a>eE~)1?M?e z&B`q2=~Sc*pT=Y?nk1Q(D@3m?Ol&=ZIb+)^+9DDti|NR-%9&?22^X2l%wShf<+JiE z|B!OF5Ho$FVx1NbOMNlTaC;qgr~+q+&lpk284Wx(I|vo=Ix3^*0YrfgsddIyXYq{Z z)gWBn#YMs{uG+G%> zbAQos$6Gk;dPm@V3-cIt7Gs1bp0XPdP8cr4mU~vM5>AFvgP`w@6s3U-W$1rcg}| z9wma=2rU^{5{CQEsM=;qAjQ{sXF_Mnyg_VS+%BsqZLo(d*!{S3zAP9rNuc9Wh6r@` zUkh!s769wrbEC+=e+0~Ku2UhR0%xM@6r)q;Q;XUwewmjV6;0q-Z^gf^lJ#jFj^=h{ zn;Zk%z9uhePz;h#kht`I101x^({Vz zpZ`a6#IZGfPh3p81vJ>_GR$CkDgbc?MqgTH3eQ@{ zLw}!afrL0e_IVp1R#|?_-U`IwoG_nIh^tx#DZ9As3^!ZOvE$AN7^khSyCT|~D{ZIw~vO`6l&RpD+U ziF@R<%)(M=3?c~^<^i?3IZ<-lpjL{OKWne4_jM zwV_Kv*!c=0{0n-U)(@!Own;1(IW(LaiI`>#I~?@V7KByHCx_v%LqAqfX@0pb2lMqw zgwc>x71J1Hf2ba6x+N8Q+S=2v&Uw2E>gwwHXpvGIl8WnSIZMIW+Gobd=?2Z!Q{ksZ zUTaRiKz1&i+Q3Ot{=ze7u4LVfM5EwRFYal>pISUj?|&(@57Ki}rDU(fbaLej16QLQ zH&BEcSlVK1D#s}Q8(GL;+wB-__rGmqD8xo+@8D`ed!VaL0LWG^_QG(~@kk#_Yv&IA zROZ$UE4y2TvkCf@n3VIbRB(lsf@@2pP&O@IUyn-W4E<3Vt&;L?9;KMjOwR-_A%AOH zaOFm!_$1pK!5Yhc#NZh7gu?LA)+4HuVsupNx-5n*{E%E}ZeJc@ofMEmu9XIdy4Hg- z80OCi1mf?r5BF!3b)UyOdMxC@1hq6?s>9zALSLP_XhBz3n9AIkO?r(aZyJmvcji=u zc^mU$m)!z3Dq1qUcaI9b%C&|>fXwyv-BfW{3uwZTO3ge8d{=|Yjrg3v9D7V_WSRN7=J?8TmQHSQ18-s^7$0c#jgN zx6j9Bbq#GpMCS}k4{x|W`FB?6hycKN;P>kv3{cv40 zJ3ZTeqy0JozvZ(2U7kANxo#kkf9fTme+_CVilCvND{sVa<~O(;*i>4~4y8tY6XZKJ zUcNIiqgHALefjerNz2M2W>u63U3n);r%r}#qSy|5EHV(`HJA=aIRHS*CGtH02+~jYF;2#>pVQ$xZM3ro1BpRqh_8rQq`)iQQOs;=CnPI+oP^G*E#3Fq|s>xn;V0l zXxMV7i}}nCqwcvzkK7Jy!D3yo>e8A!Fi=+7J~WQH&TDsGRz)KyK}L6pRiEWMJE9J# zclq>Hl7~rfX#iGBZW55z{QN(lu?}=GGGDOgY0F6da4|NSgsQ>qfqpnT#gr-F*E^vU zYr0HSb;y(L!dXdmpHA#Up49Nw)V|$?{I4!#RrVPZg>o}Tbx@fOpC6S9{d1nPgYM=v}NW5|J{o6txt({Ba5i6JU-FU#ksj?TV z4_JyD&c~ps)p>0P=zVGZ_&shvv!}F} zm!yXi!T5q0yRr%+P#+}TfAd^LMW527=ZPQZP93V}&HxDJdzXnvW~*l!xqz*QB}7_} zDi$qQ*@ORId!R2TxxvZA-U{!5FN9-qt^}GuRoR@(Nnr9Eo~F<4=8M_Rzs&4I%b(^y zUpzqaj>LxkUOmESPV-GF?cqB0#?~Oh;(1ACGYbO3gaoToPN>Q~+IDXu67FIaPVENZ#bqFc?9mu&`rAXTmBRLr$ExN)hH*CLq~<95rPlZ}@xxI2 z6qA!CncXRf8`J+8DM1e|^TtXstkBG|uJC$y>O-fpgib1oC_1$hHGi^yDkcpNAb zwdK6NpNvazVO1i7x=WDvz(K!7Xd8^Lz_9sLiTdEV-Qc8%+(64Go$_ZKa|`^^{`PM7 z5F;>TdP(pqGkh z^xm0WN+q0LCef8jL>qD|`<}g9)BH}){iwCAP6bh;$^{Dso#ngpEXy@D^mE2d(-7C6 z?3enEJDwXhy=RKc$yc;sP>Ggjs@bsjJRFWM1iH3X8RN4`b6NUpVjc_s%}3YN+pQAy zH7vPK0SizN#!*%XHC^wzzuxYr;PbPV_fTsxsOmIFhA0}vk{$Kzy4Yjyu4f1dDa)MR z>RN*>$b7pKG5E4Wy+_n_4f}Mm;^{yg8fEJeHA=W%91$-pbWCkr{p$6KaxQL`^3Y#1 zQ^i^JNapdnudBNFHDQ67k>X}Vr?#jvy#Odk1fW`L7D^s@dttqLkvFfcMqC|Wj^g#xcm(@tUHo`6TyK=YDW=p@130nPaL;gnuGB9gn z$@Ns06)nhrc}18t^L039Oh7>|#@U~L2+wz2fM)l3ha7-EdXWzr!cv_G^uDIes6Ebn z9^mBIlXtNE_naA2MvK#@7DzPeW@yYi9Bj+wAqhz0n+Z^q=+8rPZ@iA3r5R_O<^6x|9ng*=@qOTi#C7^6fp1kvTHq%mQDTm8xy}a^Z8p`~* zhKj&_2ma;J=oOLSKUQ5AAN&e!E$LovUc3|mE>F$vx#=A@&k2nb*iEXAO{T6G(&wMO z4fU3TwWXL<%tNnY3Z-zIGzI6P6EZ=lPci{;J+Nehk&*NXWX10(Fto zI;;5_XI8QtgU{Oe3gczlJzQu^#Ofz3woN$&)50qV-!TRv90_`@e@<#>K37+d8?fRT}sNx0lJfzxuJW@a%GRy<$`BPGeOSu{K9hTCw&VD{Y8V}IM%QkgJiPH ztGERslQKKnS-N=MH7z3(#sBJcf-l|M>vB)9%|?+I>37)m7gDX|jN;-3W~2m*2wDfGtX2DoFmc+Fgq z{6VA@nR{~!nfI```{W7+e?6$Id%Oi$ZXA&Xx?v@xLoKHgkyu=XL^M7g-X#d8A4qhQ zS?X;(YplS7cd%mVW1+av+SB@g-_~Z-c5obF0P8K{U!Fgx>2F;#HOYBx*xnWXcDa)< zmlw2>I4vic#l?D|ciSBiKh4EG>=?fm9hvKDFS&sju?Jj0sx3X~*Q9d}P|rmhF?^uG z-h5}BiNGTac!ISI0(Q#K$HCp#J@>SXStjbV*Zb4ApL0cp;1YdiDKo1ZpS8z^&$L}p z{|GEq7|uHAWm7RxVGXEdH+%m>?=>1ahx_hkmI>LiQsQXYksYZ0TFb|Hl;lJNtVjm` z>MKEd?VEAs-QN7IYJ5&ZOs(^b3j;vwqgAI1yTurV1DT^w@BPmAU_{B7sUYC9Efl;o zy@SsdVt^I0DxKcP6v%4V3*%VS=>)+@FL?t7?G7!@p|WX(i}8z>c81RQ9M8%_sm z^cgijFi_IY@kzM{T&P9H(OboCZig^27-zP2$tx8K)?FZ1%q=5y$G4#R8@a^2IP@C@SKx-8+$dI)bC69fm^a5 z>dZHg31TqZNa;`lE;)9o0!nkhR2D8}TZnbOGdQ@M1>zXqMH1#@!C=MG zf-Ge~@e45MvAR##)A#`lFStr7V9HkD9`Kd(QDBHn2sU56*u)o)bqRhny=UDX0j1^A z-1jU$f_2=R;I1{`(dCUu{y@=9>__4%)`^DwHZ+N-oQ+b?YFt!BJjm`jaZvXX5vD~F z;PPgYt^Q2}kf#i+8oslD40yOw3qSn#(LkOo-Wst~0odA!(0w^7dY*_{oaSbv?RCJ% znoQ`OgYU8u8FxRk8r9WSHEYgy0&uy`kJRmm3RYuebtx%DG%de9cqQ+>f|Txw zS}?{$vUvLq7NHzL)=ZqHv^dE|G}oBMHJ%7lZ2PP_=o;-w)LLEBiz%;q=U1Hg1}@FE z_hFNKZQEyq6}WqzfD*aS4f@Vn0)sfKM$j7U=e+WjseXJkb~?byF|#TJ9j*TY!s}Rm zh-VSbR2au|?Nc5lLNj4XOJdY{^{*=Qkqu2mB21p{JV^-oUaymD0v&O6lOLW`_DJgL z){-4o$=Evq%!=R+xNEk*^9esT*nM^6hV7Blp0je>CdGVDsRW8$?t2w6giu|cMMJq* z?adwE@&J>M?ny5hmRiPLUC}SlZTYN%ehQUP}a+D?fBZyP}r$;%%^!h26E;tKYOd7PFj$V2BN*XEal z?GE5f)q%+^7g+B`B`u|o#U~Y3LXwFvn)xf#kWQL8?=r+LV)8N8*?Y{>WbeuLUZI^c ztA^8J?0tqWy6q(&)Xrk5M%K()7mgcUpPH@vVvc!x@h*d~X->{*?Ra5R^RW5t!KM>L zWs&V416N0U;7l8D&#y%(6&@t>D%mi?%4g1ISOPjqtuAGrYe1er5Q~3S)|yWyD4n3Un?( z%;AUsb72={>ygo)`~!hq;)I-LJ03^^K*( zUwQiV=PpFKEkV-JRuG<|Gep{4=vJQc!T;&4p;5%%cwFZX?bpD&SQIQrRxyf?tQR9n z2F`?lFH|s3fPjYi52!8>a94I{aHBQ4>UL9=h-?yxv#90{BIVqXZ;hoGkw8tX(5yq{kEVES$B)C5iA{ zqX{jjd0%SwvVocJ8GM*CMak%wm6lTFMZUr3AcpdkM$iBDyYBe5WjQpcwh&jM9hLSuwHyR zcdu9gKffz)IFvy;CsxHUR#o&aCN%<8bjUElg&@5W_!{QN8o)skYelA9CtUQ{S^7lA z=mo2|{BQ}F0(!q@((ZFcq_xG0Xv&1F_spFz+Gu0WYxBwCMRov@=F^L_+$#m zxKesYp_-UoVQIB@09>q|Nx%`3cu}K?c=IDQb|;{&a*XXft%p2}6*Q9k2yv6AF^;5) zw&MWzF_4O~l*M#R zE!$8DSp-(kn!;z*sI2l&2f;|7BkQ^`1Xo`D{ux<9KA?c{+Uyx$fXQogE}(MTF%!EH ztuS&?NI1_Js4)TvWO(M|SDSYV$O{OFV>?#xg*JgAZ5guANM3H|@%-rJK&hm3IjW@RqyLr2@T%xAt62HgU-2iK0VQWJyUp)RYum8n zZur?qXLJ8a5}!wa{Cm(_3aQJT3as<@7i=G&OXc|MVOTr{yQYepVsFKW_7}2ON&Jv& zzJeaSq4(7GQ4ypgtYgyTNW1K*ShdbHH^e5sH0H-uo)lWQ!H~bn6R>CymG1!hrrdfM z!MW}*2@MSjpwQr&zZz>zfxOt>twS=GWR!e-y?)~Mhha*tk)15X&^o;gY%*2a18rmw zWpOyx{yI|*e1|MKYt(^nW;j0jSDKk#=whuDPm2Yb`idmsTM924%g*nF4;?i^Dhja) zXJCNp;CpqNeAt*>T{~wIj}aVhw-e5It4e>BZ9^X`-m+_d%5XX=i~})d@H#>|+1wDB zKz;_}e9ygoDsYP8HeE@sg4sPcemIv7)6SO*##@Axo2jyG(I7HX%N@x=$D5;3uCK(? z)&jJ;{0@Bvy5!X4fd?THbbPbEXi0%U1U?8Q$%g%&8o)FGWQ$BpB^ zqp?=ATt3Ye0n~BonNPFb;Cg^rXH~@dstUo4=z5>w3u$nmtrV7u`fffVcUUyB*^~_> z4a)t^7pL|CxLZPYz^4C5fC>`!8J*ggOxIbB-M`a$>2_K!v-{$sryRhuA>~cL8aVQX z)P^C{Uv7N(8%+#1)(OZTv9#@n9fAeNg=Zl&xWDk@2YJZ{4feHE_KQYb4vFb(?;th_ z3qr$jt;*c8k_|1at4y}(0`=$G^&^c#Mt4=5Dr<=mrjVdKT!!9fL^b*G9%KCILs`tF zn1a3D6gi#I-|~vFYmf{w3st%!yI$8dql8a;p$)3XtP7B0hNKpzM!HAt$nK!*=i_RX zXqYWrOVG08S*%LypCYmoKGuXFY@51o#glyeSNn9U^Fl;3#fv@K;fx&wI(kQXo$1gE zX$$g4ylTt@w;lOhnm^_m^0Wp|Yz^2J%tWI^fv=h1d=dOWp}jCf5qQoN6)lkv=#@Z{vSPGE{-cUM$IZYS~&rjshT z<4upD*xZgm1Bb>}5Bk}S2ZX+2#0}}<0{y;CPtz>QK`a!^8n_9bGH2|8mUfN{)N8_l zvxJ1E)2o>6`6n#07P#G{qcAnmEozMt`V;C; zgMzX4E{(>zOhZo#LI^jPN_e-#xYrAJ+sJ$PQBZPPuH-(v`RxJfsEzv+Ji0MhcV;rd z%Gu6U8uALD)ybd7*o1$&{8m}0vXe6Osk}N24Q{o9S%Qclh_JkQv8L%blB-d=(~Z<1 zlPtn)r}{L#w{Neb;7GAUpTB-S~jnY^Ox zt_oZw(Q?Zb(%efTS&xK>o$Dy&w?QH^qMsPPz$SyQ&ig<=UcIuh2x|GCi zP+HG;#_EgXhKRDPtqZ+yhu`qtukI&Eam#3I+|h|el`p+RPzL5V5VKFgz%CQJ3H?rs zNFw}A^A9vhvI#5%ceWsT6?8JMn(8}OrkNZ@Cp!xz30_W#>JFO`Ct^v!O?a4>KadTntoA0<$@P%PX2p3rNqoL=aIVo}Ti zosSvCix(_RGLT&hTXdK8P9jsIB_xJTRPj1^q;tc=5z6S?T5heWPoD(G3NNJ3Lm){S!@}*^-T7dgBG(QCXivJ34f}o zDl!4P-j=i?X{YF1@x1Re&~ZpNFt?(D%G_0-SMRXe$~%xjbDQ5bvL;HK04K%;j8m~Q zL~b2{ZB}G6TysCKgS0wNF_r_{x;VOzPcm7bNBeTKKhYrH=c1btv0NOfEdCuOel^QO zl?$*W+R#TMQDxTI$HY^K7GYH`fTSHuf6Th7)b*^XRq?!F>h|yjapB+8wq?1Icgj?+ z{f)7kzkcKxKzO)T%PQc8Ih-IX^L6rRX59TGq+%reArD|J^G_cPI8cQS4%M8ae;KTr zx!?jV*!#}cQKw#S+k3^qORCX~t|nG2VKzcI#OP#YqKnZwbO0kFjZ94^-{rK!gN4*$ zW5)@_Sw$7{(Y;HwUM=URRyDni^vh=}J)P@r^#y0k<3bO9x$1udd?7d=YblIFLeZY_ z>ihi09Yz{b|FI@+V_9bXmZ%d!;QQ|vJ+eR{j!`v6O~KIgUJ>llsgC;|EX-zVuQ~Ve zNV{9L30GY-aXeeZP7yx0dpBvl4K&*Eu=n`P0kMNRMj?sU|J3};CXdjxLs&TFK~#8r>(7yigF zjKVwXHa03q{{Mp!R_E6}1KRIq&+@d8#Eo{s+a)TaJXDlbFyp{zL{I>70d|Y|p;@&2 zhBWSM?e;BO@j(>;G6oO_Sy)vSSe|iFNWm@)LmpDDwrZ(EaSEr&7ak zOn;HeBTkQec=fG2(d`AJqnidOP{ttp4Bsjnw-NIh=DS`UcApA7UJ51&)#GEh&*&w# zzG;}JD8$z6AmTbytB0pcmo;yD%OR;;yJ0(utjn-+i8d!ISsUTb>SO;eD>RNM>PoUc1DgzPK`IarAz17qGX0;2? z-*#>_`;dla;__`f-%3bSFgBUQ8+7c#9b|j0ZXVmC_|N&=dz!ypi-EFt|wZbT5^n5!>70+hS;bF`(-&NgCr;g~_??gSM z!4}5|n>+Vh-THP}jX7v|PS@K9&YNMBBTav0q9-KRk8~3&F9`c)QxBCtHe9lgVkX!% zv#AMtq`sARu>B)j-lxoYq5*Ihl>6bCTNx}-es1253w%dPzv$E8f(p3Hph}cbMW2ACy)J)k=3s^f-O15?7J?av_`%T|{&mD92 zW4{csFl(L4txZn|$)`jzak(hv7^7vyD9V8g24U=DQqH7^Sod|;l?Xcoc*bR63jcUn zh(3rE%e*3q{FP<%b5OZGp;cYRxT-u&mzse)Yv<$c20mK}-#890+=S&J6}L0D*=)ku zWODx>8I=%tIW~EZZU2BC@mr`$L#YOJpiUEnt$vLo3`lZ(wf14fuP_(%$Ln<`Z&1{RRXl-WCwuf3{Eebm0J-3MrzcTL0ukuj`!sT z957!>{b(&WeqkY@EVAYU&h~#>X92vL=(SKoWyLSuU+~T7;3&3z^J&Ujk@x$& zE40D3O+?F8&mK;|GMYrd*{Q=P9IP5TZBOU*fp~fEs{QSz4V;I2BwU*tfwV4XbnIlu zZ|9^Oqkwff&F75xrKqHiAdoGdpysvy2lH{eBW_>}V;CYdkr#}G(9+<&)LH&8&ll~* zXMAD@wH@2Y^3sKf!qD5%`$kah%aviR*mdeHuS#d!Jn%=v3^<`AbIZM!tP}qkI-26C z5^p!J`6>y`3g8ZA79R!iQckhJukG?u$KZX(Qa;WV!9#!xsj*rs5*sI(`e)w9UEzUA zf{VkL<#qx}mJwdpreg0{+)2(gaay_n6Cf8ae~rYt7MLsdKZ-$ryGU5h%zos?!%A7s zo_qN*CQqvZ2*--|TH@26+N`#eH}*gdy9Q-%gvO!hMWE0%b9Fg)jVv(1E>qCQn&zgK$D z7`f1j^)@HM!r@9qY>t(WX$VuoN&gWXj&DBv#L`sH`d3Bh5xAR(0|sHoRe;6Y*`T!* zVdq(ii(=K>aExY;5x-RgArcGQa_o2f7I+-JOnaLvu{h$La{!h4SD~$2(!XQwK@Q={ zt+ZQF)!x~;mPh|hm9h#@AT`ga@s^ty99q0&;t1u84)Z>;r?#vEXVjk1#NuX)9kY}{&Z zc)I1I!5I;O6c>%Qno@eCO&UisRRHYTrF!k4vPdwcWv2Os9;wA@lIVyBI5P)K!OiyU z>cM7TIaaYHF-j6;hfIzLTK^x@-QEFBmIVB(V;GS(5F;f&jdH-llvkU%Q|^gVrk2=R0z1GJ}du zAYnpg0A!Be#}XEwmn4SbOsY{}Th_eJj*}b&l)Jb$b(*gv5oi)4p**7)B1*o~uGYQv zKa`*s^>_u1qa>xO-v{1l1E`=!({?v}Tmu>xUt>CFe=$`^)GvoB9X1nFD6XoG*CDB0 z3M7JW7YF3C80j;xO@K+9m=`64#$%SdEkJw-q2_H{+(0=Zt5pFBCCV_Q=@%8EL$#dq z2r8^*`#=L1m)BX$khB)tO_!JpNIXsQ2^)d6sWym{jyz#d-USUWq+w)cqN#P**xO>A za*(+lS|c12sbYH8+QUAt8TlNQzT&6XEc?V6wNzs_qTr~T#Ds$-U>N3RcA>Gv)?pD! z;B6cl9Rx(itzos~qL-2^*sEQSq}&mLP&%nA{NE2IgS>$%E7QjJ|5}Z6X6w^KLxa$D z3xF{|xG`qn38eLr`{ES(A2|E-pcYc6XLix%3cbBYEl8ThBzjyqIOQXc&s@`5hqLu? zjNmv^#60J>2dfBpMvj=2-zb{^w`*LFueVSCIubP70)G*d(uZd!%5Kvsw%AGyTN09W zA#hO`i+C+czvYu}!24FkzwvByb|kYga8Q}oj{)1HY-amMr+t)K21E zBE0*V=AD19Y=%U9b;Pa5&n~^#B*%DhMW>)uUo9(K8(_%9&MP;Pv2agwg1ScV%)7bogCzDU_k{p@tQk(b*i`V zl&=8J83@ocxNa{xKo=!w4M~vD;5`}6 zh)+Q+V`tQEMcS3*c_`~l3D>e#0&q}^4<(g+0l7u+;QQ>cT0Kg^c+dDY-4r=eM!dF? zA`?~<`ERkHmY5M24Iw*>=N1^q+cFOY$nK&<`$#L$BJKK(3`N`ld{fI7Xv#52bV#E_Tv7*2B8{n&Xp`SB6}En_aB?e3StzoHHsT#_AR`x){}6J^;cfsq zK*qlptL8ceDW+1)=!;j()!&u(XGHv0A1+r5%jyVJ3hKy9ctn)7VX!p=CT%#2GF@@) zDg+bI+;*U19bA&fa50-{7ac{{JS~z`qbjmN_ZDo%W$QfQUjD1OgN@IN=1GL0Xxz)S z7ATz`{hFCeA2_fiW6@o`5Mcq^3z=9En21~Fn>9azN)F~dH!UQbR2e%^x3~(>619}y za%lna+gwRfACXf|9ja4H!3@ChsGGJvhbl^iJ1%ejqgHME{#Hw1>`z>D@{Cu{jkDA`HvrW@(@;bt#(y+tZj zSy;B=2(m&@J*yuvA<)Vubp@+YT7YyTzls*q4IYj+5E6gmcoTgmSswUMf->&ozu3D3 zyiLA?dnnxNO)>~R{Ma)Zi*by5gZPr8Laoj@#!HRI5*lzXPbwy&VE`=TtOGee1DlW) z@;1$dNv)F@i_wN8d;3ius;%qIS#7F8f(#h(3Eq{P;= zoiGX+#P!lIlvpmvX2aMC{hd^>zb96Z1K0NMEqWKFA4Sl{N5HKtu)v>2$8=396`AX4Q^|43&lJE3RHYCENhr z)Iyu>f1hi9qPU?p&AWAcGlLs zgh4xI$0df!<^*QYOCnAGQKzKw`T{zMENF2HvnKY@)a)!u8MVT^ z$)zOQ_Ff8YjhyzSU&H$tA{bK&;l`%%6T=O#DLV^g5P!#tB22Tubnxyn znWjv7GBtS8)#P89$b9NM^KQ^LKR|gq_(cZS>V|}0XZzZ6TK9p(k39VtwaN&WxGVQ0 z3g$m?r8S&Z#r_NZWT)kC=A?7NN_O%lEd%7Dnp|;;g~V&d46qjYZ3Ls>G$(p(#`1eL zCwwO{H1JK3{Z8w-moj_eN$p!~1fGnntMRgo`rRfQ0t-r6mH+$i3r5-)05fp0kh>g! z$}ZA>Vi(365dnLJ=VVrVZ}J<9MFSYI9*Q24^narn*L`_o%`2jS1y<+8;xGLb7OTe! zBt&?Rv81`R6jx$<=yn_ppBhBYW9VHybjU2r8+=;Ahgt~#pd{tMxNwiLcE<1hSxF_R z51Wb}J9(W}rKagtiWK!izLqtfyXpb`{mL5enEOee<8_#9Qy5MPko( zj-ek=+40Kb@=-r+O}I&f2=nBSicg~or%q53Uzh=xR|j;_@wN8%Zy&pHQJB@v5pWv* ziED_;!rz@Gw+{jTucDG-?3k3gc5 zG1;`A?MB1i26O1S4s!A|lp}U_^A-NMF3i;is;@VFUgSY^1VR@lFh2*4aQ)-yF9`dP zg0q7)T72y!ZEhYAyrGrNr*zGM9{jL7$!o-;9$`e2dh|mmcOP!DnCiWEh}!M3_R1;{ zD61pp&JvIxya=-y)4YzEUpE2fiWqVdEuzI5tZ`DOh@-lMiFZ1+hHR1}$K^SLTzL<% zT^hdd$yB?6t?nLmQG5$(HX3AXIpmuG>y3tPUi9iKm7^6D7#1)ACr!(fn}jLhrX|M? zb%g$tp})2JP67o!V*!=!s));_vKuEfC?>3lAx+!eG#DkreFRn=k`DdDxXC=-Z~)w7 z$Kxz5Uv^f2Am>{%=au$9jeicZK#0;p5hs1LwBM~qe>Qm-eBY$thl&MSYxi7R6bgY* zK?&EMYZ&8MiQ6k~G))OngNR=JB=*tnfjns~)~HqrDx>T3?H)G0Uf^sMW#|ib#v9ou%kmUo?9bH0PO=VHoJCnk zazm7^Hjgu>lQlpRGU@G7xPZ`yidVq3Q5J!+2Dk=d3t%k_VI{1{TO3uj!)!|V0*9=ALw^I(_#XqgvQ zBS4`wk4M-!~cXj&ES_b&xQA$RxW@Q?Bhl{aMfxU@+#BY8ZHpg!Ui}#I+ zZvn_Ye6f8BK6ztblS&VOF6JjZMGg{ChOmXMXZACw6_zsP#}AkeWV7hIUcH;Y? zGIeDS`X>@kDrwYoy>&5IA|Ru3`3cihp)Ws9EIKOCvlVG7*Fg}d);I8Fua>H#f4$*l zXj1!Sa{AwiSu8%u7XZuK>ijRY7-i!NQP6`>WM^oXr>T?+5{9)aHx&ou%)m$A*D-Ih zy}h+*sG?~{B)6QQjsWdCZS4}n_QTz|AQ@F{q0ENyX0?}5~BkW%TPlI5V9LSLN`#$co^I^-L4{q%O;yNC5!2E>P(ZvTsHOw z*fCN=vW~p1ENz#OK8b+r$&TlegTy(K^4c+qpJyN_IFlh=8@+>qr3-UCnFm$|LUqpm z%B5vVap|puis%VpPsOz8^NLcsH|CQmr=v|B*LyE8_SMaADOs&Z{ry(`ajG7nMc$nZ z-|{4NV{6`PMeUAb<#QaDw||pOxCgBDgA8ja4P=}`XKDRrEcu7w>@T{fq4{NES+n@J zo=ZEv0G=6EuwUYs=?XWC&=H2j=SoF44ZNti;QtI(zorguI>f4DfVRV+Wj@I0j7v)K z?0?|FQJrrlL{h;uRcrBWju|=u^+&t4SbskIn0lke|3nsu0Q`K><&F1 zXlN;DHTORh3p z{(>2~If<2Q+#mC@T8+p|IEWJn*CS2AlKK39uN4c1!wxF4b8t=KuJ*Gbgw(HBlB~zN zhdQUxLc{OWWUd{3-`Y)T0tHQB0_~t8`1zGZgF_jiLsH6;QYGMO|TYXmEe*ewI@?7BRrq~xF?c?^)aU+A3|dSgVM zl&Zzkwea9Moz!V0WqpIEG4eoBM0Hn$=q(>O7|FnStDhR43Uk8@{BIVb-Ma19rjTI_AeN6zUI^{EI-YbnW1? zG{%D* z%E0VY|C{K~o_117UrAzHFqS9sFl2t%s6A+HZIflg;@pi@S~uIpyLM6L+eO~<2}@J% zxhEXQ<+A3uP80C~h?iF_fz2HpUXw{_r2=0qP4xC2xBMIKxf6`~$cD zlR7>HLyM{S08N*&6mf-|6P}VJ0fBGd!M77nYN!{mC$@vI-hs;JBvB5lQKby#nc0S%Yf{V8W>P){NnQTlX zaN5mD6(^XwI@iyOQ{NZ?QyQjJf%V{3ZOfU~M4mS=0X;psPw_1qx;vtJk^bX>JL56X zvaBWkKr}kAj)5>YPu*?o1uj%j2XRP@L0h1?HJZ#3G&tNnR^FeO4ab_{w!27|47SG^ z!GP+}r<7b~8=0bn(~(gbxiz?b(a(B;0;)(381^U~2ZfUNLi5X{*Ih)47tXur`1aObP z-2PakDlCdnujNEf0udNfth~GAfnQ!K7bj~lDB4irY4@$5L@0mwVG{leBfSGsHwYgn zaqwS`7OsL}sCSd&DL-uO5gE|?5?2-&mVn^hBJGCxqVm!d@UQ`;Yi?Ip=^yA-+I3^; zk&iw6H$&(!A8$f^VhF$vQGXN`6%1vvRS}w(1w>t}#%hu4nJhayCa6BtO+dIVgRGw5 zk&r_3Kok+>wcgZ$)zJGd0MoNti#i(EbV;P0feov^5`A4#Es7O9+@mh0%@lpsSoaI8 zU{B|=eS?S}YxA9iORUI%xf9dtVrG7BXPfW>q9M;QwH;S%1UUQ`1xG@T;-e zp8k|xJR{A)^1#pCpf|Ba5ZN~zEHd_K*~8qNbzPQtd2wX9f4Y|l2>T}}O;A2v8My9U z7%n#Yy;zoFuRK`YO<1U0=uK;;-v~mAD$m3cDZfd?NmwfzzboJVpP9Wg5qi@_$q8|& zs-?5l((JlY7N>ouR-G%|Dv1RHm-kem&m%g+=T<+gNu^#M=#B_y0O@m9o$2hULxOQf zt_atENw40}Tht^?tHKwsV)gQDw>I(=gD=e5t_d7`khNs`M;dFipnxHk9vmo#Oo_Z z_JFD4)*1uw?P$}L6TcOl!}nqC2X{IeI*9S||F6R3lBc~XIIKS$>vBE<9-{mi>ZwrC2XgvDU`Q(WE^5`$|PWCd!{p2 zoE7Lj&4s+USMnDiWA>ePvbTb+GW3YXZj%C$@r$;=FyIzI0`|bIVltTwZwb&mgD^C~ zx)+3+@mFORex|AA;b!l)g%#wn=vl6Rk~tAG^sCy#Qi5#UU<#x`F&rNYXuJC!8&AL^ zFlHcjhCW>)oP9C(I;XHqZz9YUD*AYSqp=w;FOz%(hPP%lGVTX%HG-O_^s!Evok<08 zieYgi?7Efd$?UIrR^z;L`gjbw=PHEs-ht>P1=Mn)e+&00-7iQ{9K!5+C_L5ZImGaL zZ%&ICQv?Ksn7zw==UI#JzP4Xy_D8`5*O>wOuGh=5AG4QDh zGBDTd_``Sa>vnu6k=m(IxXV)E zqQO;kZ0a*b-btWMd|)?klu-O zO&?n|Mh>@Qf+;MK#IfE~#*n=~&Y40v8qTI{6Jva<_H2;Ke=z>KYj71mc}HNt&6mLm z+yDM*WM@o8WzVaBy~Zo=mv!qxKp_(*dh;VTQ-@3lOeen&N;TB92}!H4&E#Y_!z1+< zAtrp?qSk@-KmfBGX(ZDuWtcPbu$)hZZne`uZgeM8QB{?PFO6BoE1|Zpuun=6v!r8W zVy??AW}NatOtM}YRGXd!Y&%aSFXGLwd3#8ZAdbLSPFJY1G3PW;Vru7;M1-y0T(CiF zw=h>IZj1La^tmEYsu~U)1Z~`|4+uTiY%*+Am?NSo7h_j9?ROb;`8ng1 zYwwDcDnd8S5y`d@gE1L6RCpFAYc`ht>>s44DZsBCqXywbk{>shT>49Co(X{2KPnCn ztDDEQe+_D!dWqa}MHR!qB7^jO7iy$dhgkn@gzt9w9f_Xz*<3UtyNJq~6R zpqyl98A&I8d3Vv=<>O`o<~@rw+17>uBc?dFWjOyf_kzd+J0ddHzIU35dc`uDwV!a^^DU#^S)U)Q^FEYW10MYJ+FbN7JokCXTn=tX4uT% zO~*DUi0Icek>0aQEU!4)WzKx1HdxGCr#}X!088g#zl6`8cwx>+585+`emRMV9?e^% z6s}Hm2`B#FF5>P^1UG7Q1&W1m61zc8pcry|#xhdNjqh6Gx*f*J?frVH#WFS)QbJsn z>_f9%y}!HyRsT~U-5Ck3L}S#o+h+zb@N3UwKgHWU*BGzV;-n~}`CYE!Q$Lo0zi|?Z z%r`0G>kSpg?z^|E%XJ|#LDOSM4En%+1B|O>SWvzN>doN+JEzqUIi!v6L_-@X8Bc#j zK9{#w7Q0LJZOQ1V+j+`emQ`ld&G>o&4dHvWl)B!LF`);q4$k)5SBd4y01v>?8>6~| z&Eo}r)=>^jH`v}WFqmrlx$0fs9j~;Vcot5TMn|IVvZd3CfLDtT*{SfY^bL8tn2s8N zqy1k`e1^r*o>>75h0rc!-HarBKd(=F0>=}c! z$5~K!yfU*LyI3J$MTR>lsh$(T>*{dF3K{)Gg8QnkL>s^!&y@O>zbfK0c`{i!E2}b0 zOtzP+y^c;ALml2WxN_=clGBvZ9&?eeJNi$Su-@{dKnZut5fTS4(M-U^K}q2Gh>Uk} zYi@93@TYW12`JZd<|!;sciser=I+#~;Ixpr>T=*sssG=zjNm}dUYsElrV2-o=%0j; zZ|}tmokhkx@5Z19nv1t&XIzY>en#+kR8UTXTpN(0xP{02f=_#$1(e@f>7K{!?l9LCj&Ki4sEd^@$|DW4Z4Q6=cnwfL@8AN9! zFQ(OCYK_K(%{*B|^n*VP1@T0$;>j9)WEel|gDl^JDvU6=HU;71mP$hhMLadKFQXJm zJZFoD6SC{Cf{h^@wttilLKYh|EL53%u^ng6j`_vzvm>UI6UN0|b3|L=z8Bd;T{6x5 zWuV#*WX&DL>mmSO5ZBNrcOO~UNjm-Udh9?BO8G)}K}eSi9QzaCP}-zefV;5{ zIs(+t{ke46N^m}veES!2`KJh9Fw0T5mWJyP!jNxCjmUUz%EqhG-PBQ00qI+`1=LmO zOvUHq_++_3{4wBajh?|yC6Ig9C#7sPE-}D0;3mMOk7x3*a6MY`q!=iX4Ds%ndzXZD z_PXC}{ms*Yf-Oy@sLu`gdo@+J91Sarojqm{Rt6YR?l9M0hypkpWKpy5Afub1E%eKL z>xxj{A-5p0f&n=qcnFUDOWQD%It4KvB>~a%R+RAN?YjadxN1kf@E!N`RzgNm{d z9uqI=TGFHvcUq3pq02YH8}o)STWY9EVcD&<+vgJtJQ>2D&UGZeAr_R*c!L~9pa6<1U~qU)XHG^Uy79#m1@r}bpmU`?cIYFaW06*+r+!wU5kEeQra#V}H=-E5Q30W4yax<68EG{kW!TDsG%+v0vuAW|j_eRwMzZr9m~s<&Mo`fZT_VgTgY&66^-^^0&!B_d9U^jbRSiT8f1vd3J&+^~S%`eWXDmJpDQ%!Le*}KHoh|%k zixNhOSwFcH+g5prbQJo~-DOh$V^$qGZj&zMww;q*zUq2uyaCY!nkS12CqG{xU8!D8 zP=v3u1BiH%m){B1Jn{P|CfsW!UKmO4tECH%{`~KK1huF50i1JG{DF<( z-uWvwf<)+;Jo?`eb>EXVObAW;|B&%*Wx7444$;$>WRF$+3iJdWBOt)HFY`aXp%PI) zJrWPH1TrLCHSv>@fcxTYM?v|%Ev<*3^fo2vRxW2BGM8&kVJ94#tX#hwZkco*NOS!`icyaZ<>W6Mr(W-k2xhgBz5oCM`;1O;p$=Z52 zLDv`VjPoL7Iz%(<<89s}^$hsptNmJh@7U0^OVb;?|9(szj~CcPFtA5JVaZTIkjC@X z^mTi4j5~?XXVt8V5L8e9<;2k^*9^Q#fF^m4LZsx0d@93s2uRc^(2GPIo=NLtRoDNP zl$91Lw=zHm^wKWbRTSL5eVg55wvxoygC#D@;RbH%O}ba;HhX)pS699 zgKk4*2kf))P&OLTUJUEI3%joyHq`+O1&Iu^yPGL!0=@$j{SSOpZ~}=4el{_U-f6s1 zBM6*PP}zPP)s6I4wiRLXlqyd}^@UX|)Z94uYfQ4Rn~jXKP%;=FZtCpETO$6kFtmr= z1wn){g#tlQ@(F`@Ks@W3`%mC0)h#moJH&-;@{;#;rUpZW@o!vFQJ9spFgp|;B)xb4 zqUdx3(s0b!SAv9>9)~&leP##lJM_HFoGDTo5?>c9dP5e8W}BIQ%duVle9ILclt5pI zgNZ7lZ0*wM;n@@)InDtblVJAa9amJ8I6h4QR`&oFhT>t#ch}Lesr-$PqyL#p8qFnY zE(zc7rS@S7(hsAAeLljmuiK9Z(o*kHfrgRvN+};MiYZw5$?|DUEf(aguUM1Q^T4Vy z?fdmQb?|>I-B};OAk!Oo$K3!2B;nC=(}x%M5teW3Z*mUj?A+9j$AeGL_&?4NZYQ#L z8u2b>9`51pFAts;GU$c+r4g z{`BbLO4E@tDp94hrMkTzX0C4?6o&C4GFd@e2d0+$^#!r+{ujA40GRk0T7ulTg`ilI zbTK<%uE3(_F!^AN;X>o(jj1@D1LrL`IwC6Q`8Xu;Jgs39={hN zq%Yul3oyzZu%Ho6?JsWLqiLtn=O(=kw7fW>2G3aSLhJjp=v-CJuO#z%lJ7Y$Mi@BU z0jG*kP(w3_piDwR@g+1Bg5ua!pce%y>jB?4;@XmnONn$<<(N20bVG753K7A!Ajdh= z*fKhTwuh|etaOWm(T;8$#sG6GKWw^ncO`c$CkR0>8P0sygiU@ANA~wZS0S*mF-eUH zs6UK{xxD4O$( zSem(E83LYcBwz!xou2DBr1fF60^oIQVgUV{6RV-x*BX8G{ooS)_9Bf+sL*FmV_Dl1 z3i4T9=U4>_jbF|ti^fKN$m%Z(si@4sA}q&B22!Va$;vb<8#{_ng=+Y#rqpqZNhr;e zB{CdZMcc*bR;HEuya4$XrJ1zQLDANB(i^t7ajc(?^5RJ*Svq{u0GgAM{G-!>>qxJ9 z$$_cUn=HJELCZh~?JCC?TPi7(t}D{J)G3)ry$XJ_b}WB^F}YpW?v+|nqAo#~p{7*O zCw9)5u=8Z}!X&Px;Jife?Nyc^ZPl;rTkG9SF-oH5UX`snm7){-$k zq0rrO$pio57Zj++`r*joj;b2K@`JS7F0JKKd-fyO)-4pDG)ub_9T6nR)!Cu!Y10x+ zq5D7d?StV+prrA+^KGL#$i#uuM=H zvB7FEzDRFsLmGT2OfjXQZZ38Fb0@cdS}~bpwE)0AGsq*t1N{02gPQ{x`p)m}7Aot` zL*BX@CUwW0APQHGIS9&la%&c~MT2n%6tZJJ5H56LNH-NlC^oJ_kwH)lg^zd-j3T}k9}iI!4oBGkSV6_s70A_nWCRI>$#iz z&4%V2r3$c?K(#3%kr-f4kK+?&Kq_%s%L?C~vdDNdmx|B_j9;B#`3czkw`U>v$vM^v z+KvueNx31;SX}?2KYg!pSm!j~Uzn4HxM^xmBx^Hv;#m3K$7`(4&VLQsx-9&o<9 zsDRbw_5Q$Ne-E&CO&-J0=DvHC?^TI5$-L!>*~BMgVmr(shATAh{laLfLTw5tZ@VoR z4wqDb-ab8yfo1Y=lJDDsmdqzCFvm|uo`ZS5u_JT6zDavo_ZW_eX5=jv^DbHu$Jv0m z?CmrYp#N7$V~f!K)XV81>xh2 z=Vnu_zrHWk!j2Y!UV2LZ_Z$M}>Fh+X_8HV z%Svg7m=PjDkSVA)OYLAp*=IZ+iudR|5eo$JkCuaGh-Vt~%!nxialOG<}>eH&`3=fa^ z<#RWsAnCmMIet0hzZ+8A63xCRAhvi*_ zY3_=06Z5z<$XZ9CR>n0WC<<(IGAbMw-qW$KxibB3>|PJtD=EqLB8|Fb3gZ>$x;^nB z_00UBnY~ObNrblb^s&amJCg*B3_xwuPa5lm)#k8Ra^UUj>@5I4{%G zS-p|Xs+7Q6XzX@TNAn|ke!W@%{y@0AdxC32p^SV&MMW~d{k(0pV z+!SAbS&EGCgz%iVk_@%yw^tyg`vl-*MkcDzs!@nofk~OOG*D}7PpC4+?vq&MVL+$r zgshLZ-*pIB0tcFQx1i$}_&BAedjoKiY6bM=19pO|sg0i`1X2N{th6l5mnnqhXBCi` zs8f-s>(-2n*i}q9_0|y}kuR+R9I0${2T2FFu~NGY`?XUclkIg3hU)R=uW!3v7njC0 zi5Q~3Ca|1m4kyKqNZbqZLEnWw@z=k^>->LUlEO|Chd9bK_e(U+g#l851d9?@PDxEd zEgS-k;ALW6vQ{a-&^NI*m?RLY**$6(X~tdnLdK$WTd+fncT>*QD~knBdOXkoIHJ@Q zWs27KOp3y{hG~N*}T<3wCRkJ|4o0;ZIWht9s<-iTNY2q=5Qo$Wi)4GJ6>9q!1T8CtBP% z_6>9mwM!L)2buJ%SD(yc1kY_LH4t!EXnB!*gUn-Z^q8P9O(*@cn53K97hjK5Qw+Oy zst4upe^;C<1|#LXi@P9s8su>MgBMPzRGBtvh-Q=Dz*$o?G}4?71WUX8NpmL&xa7G9#&@>$cUPfPh+MKSTq8_Y6jaXZwf5_?KSntJP$y^DXh z-+4Fl0=;;#AWUF)Of*aJ1x)uS8=Vg5-Tb%(Kv;12FUIDr6Z~LYWZLML<5PL?fyY|> zuYo^+7R|82{j^|1w+$kPOw}sZLnAoTbc_~hx`yE_Dhg*waz#zJVOHnH+xzeVX7i#S z(6ofuF!JB-x+}tsA3pD6@3LBs0mQbxFqx;5i5<;(uI2Y~EJ;<*>^kZ6%gQll?A1GN z>ECD38JHQEL#j{ACR*6{w!~yRgx@5#BY9dqucE(Wm6P?0LyN zmWT2G?Lm0r{YubGqk!t8=%m*s9w~mWy<&$*l4}JBJDbH*cA|13u*^3~t!-tG`MkHnUKDsi#H7zf{4zX&MWeCZz`nCW)zH`+^KP34}S=@}}Ls&344YW6@`b%axDj z5bFdB-@PnyFrc+(DZp$zMAwI((NWLlMj84Mj$8GTCxSR{a zw|qj9Jp);%mRJni7JUYWPBp*leEb7|qXS^tzC28F0J$HBaW$XG7P27~VLjvS2SzfN z6BOsrZyH|n>0S!R*~1hUtAg;e`11XP@n`AqFbn?5OP<$Q78JRq^qS(%1o60s0#UAM z+~Ap}X5y}Gv5nT(@rrxpHKvI)LN(47U*>K5U^7QgRkE}-wzs3@s3W`L`nTMJ6D>9G z(L|jUg>tE3Xr!ci;18<+Rn|)q@XQ8y?hmj$kVIGM0j?rb;aw?>Cg&Qep4w00g1lr3 z$pL(yn3N2#M^m3K*j{-Y<_)iYr~B_$$@Jt#yMtuJ$A;7CrHEYIiOb26L)x@3ZrR3K z+VKQ;a|RfrRB#Q9JBm0O!mHuQYl8qiO|U+b8}?CZ{LF8lrEC;XFojLOW)~JFd4C98 z4(lmo8e4{e@T)=4+c%(uqq>8t)4+UvU99r@iFOVVxR{3qGYOrwK7ZEqJ~6bFlyX_J z>`w8Boe||f|J$TED#(*99UUyCUjIX_-tpdRMesnXz#7SPMOuExrl8FFM}J!{2B7g3 zj?Js8j;0RTlUy=-dLLgF2<3{I&Bc;vN?=i$0J$OF&5L4zW?#=A*cN#KrVi(4tIALosLEyD_e?QFJ^mT&7~ljWa;|Stf1O z3t$dY4viMTW5}ER7t_Gvv-p*Ot23AJ}ny zD?&9n2RrK;^X9)$F~kb@9TnK2Q06e-?zzm{$ zw$W|Lao%}q5T(iuQt?>SD~9l^ zugmiq{F)NvJ>e#&#qnST#y3MYF%C42uPso#BJ7n$|6Dy@{QoMp0KIl`+w;8`asJWT zleO&{#x;6=3jjMF%IE`2G1fccuttrUdV?P)rKB05V=<#X4_^?xLkMp`Gj)29X6E*U z*B|O{DTlkeJ^b5eF1(W`BY8!s1Wn>VM&^rgU<~JSOzF{5sMl$IdlH>Jfap0VHMch% z@UfnQ@P7gNcRn}MUro~7+<$@T!&ejI1`R+Ut@x-z?i@x3k~9qnt=r;LDqzR}e1f zSX;TN*y3Ffiu79ANr?EktLdWPo1cHXaue!KSd0)AabdNN9^sZIz>C{L;qCEV;KPt* zk5zZ_(8exih75POxoa2x#*7X@eQ=XW#Uv>Lb#pvOn;xceFupXUop?*&IfqcuT~u4$ z7%us3M9ex?$OFX4X$t}&4P=)1FS{u68eZOLo4pr^z4YbWACu~q5bk56-)Ks{zycj; z!A<1`b$Y$rm6dOR%xWI3Wgh-NLP$vtt`zmt?th8EJPq+<#hA3ag|e^d+|pIXCr-Xsn;Fr>^9%5gixYqG5$m-WXI1?r8ym4Se$LW_GFY!%}uH%~?Y z@21hzw{ZneoZoj?Ilf%5Md&(;?Jj66e{#k;Wdzo>L0E}>F$aR-&e36P+8bf| z&{7O)I1eA)2YbRa{#TP#u{zd^Mnh-LvV@2-#9e%>; z!b9$P_X~j_-D0w{I*tLTqqits!Y|(gf&QbPbtO@d!k(8018!w=!FIUYNy_o}0h~iJ~_b-0O?o0xy`qC|?2+B<$LwVyK}=IBNQO8eV|G zkW50eU&ST0kN-0;4Tt2kXvbd8q(u4%_izXRG4CjGxg+*|`0AKqxQcSg4d^`InnjJ4 zY!lYS#S0RZ2GoJmBA}w^b~ZOFA7lZGHdswHXV)F209LVg+*`Eo`mp$p3$+2nyj+{O zs6xo+?0h?Ooe2EI+$yAju8=Dl znSW1;v);UUN89FtTKDwY0ScX-7oWLIGkfN})_9O?5_jfrL zbcfhD-6hGY}pJD@uZ3+dZ>!hhG0K220~#d_Z$BK`pK1d_oz>;EW9_Y~RjySo-i zjp<|%me~5+j@f>n|D|IMh!26#?TJ zx*OEQ-1FoJV#&#*b-X#*=Q#o5eow9<%wT4Ugv{g<{bTsqPFTqHcIp2I@J17$C;du# z1c`e^IN-zlWs08DD8Ateep^ULB0o;zP4b$JUIUobDnb}g%ySA!?6N_lJ9JUyzPRAHSn8@0QPfLilVQ^kP3LXjy-SGgzfpd6PkZQ5*anKH_E|P~T9{7eg=VJY zp{Lkt=&;}6TYMN!b*$6I~D`*T!x#g#$qj0kdllqz*J=Pu9-*eFo8-BbE9z)u{y&~tZ z4{PUF4^|25JCvQGg08Z?Ch|;@JEd;580~FzB1as4oZ7A1cCn*Fcn@bZwogFq|C}o7 zZq`ZRiwtwxj^LS^!56je!yS?SF zS_j}TL>Pr@P7QP;N~i<=?uUEZ<9XKqRy5Vzrd^(P3w%>swXKoj6f(28S$@FhTZ~QXaPR0D-p1_ z=cWmw-*gEbHRZ+m-u{vROKVkWZ)4;H!q&6~LK_wQ-Sg*gXJd`Cj|8MC{e)*HZ1Q{4 z1^XP*8KE!hwzyy2#)c0yz}!ks?d1jl^Fo*(8j*}YvoBu~6GS(iVzIjXQk|Z=7erzQ z&Y_Z=pvvay^(x4Agm7_*fpp!ingPpFq06)wL7DG5Z#c~U-1A-b8x0x}Oz#*c8)Z=n z0YZ1HPodX-J-pxdIMS>N)7qu@``DyZ$_#76pn}uIJj1{ z#2zba*MkT`QCsPvXT$R0-?1PbThV?97!NG;Vs#G>}Ln9Q;)~^eT1c?`%-C5@%DYKiQ$+>`yzsZ0wv-lh^Pf=TM4x-51 zZcJQv5rkE-|3q1R6tW%q0QR-=1Bt`)1vN8zV@72;wZ+qWoDt*{Uy?`~028@AR>kwS zNAlo}_VhhO*U`GcJ;{+=M&WXX@BZ8$c`T@%JA?PDZmQ%q?R~mVC;y}wLLNmzWU@qz zz9HD{UzJ3IWKz-mA7G8jrn*EjcR8&ng}4w26oYM&!4!+AapE$d8M0y?H(lF4es?^1 z*JwbfWj@p4cp%>Fa7)ORwXj^Fm08J(l0_*^B=_6e@EGu!gF2G4@{0WCLX`bN33!r2J0wA?NHVL z*NmVeTnr1OJ1K~8w0k5?zU~Y-``=P&U*WCsw4OlV5ga994B_o3{z1o>*G;GFvJfB+ z(W((XUbwUCdhM6^Mvqx@F(6UD@!_4`LE5O?Z5&5cVX(yTo-?7$&vf?&UpOsbGD#F1 zL;V_sJHKAr`Zzs-);RPC{->pOX#YcoB2oLtRit^oVG2!~#s-ohdvmvAmlKkxpk88U z%6RaG;|s8uui%cO(PcYnKS}N?5F#i()}Xp+b#~%8$Ozw@_NAhjFW0-5xF=pO;{(wc zC!CQOkGSJ+Ym5@6LxSH!CU6Kk`>Ug9kf-hZ7C-2YsoI}m7VGLqOgpul?I{GMV<9mM zB+s5T62x_v!($H6st*bcyhE@);k?AWdz~EG@vq0(aICy#p7qk=ILgS|U@@PdqbE|)Uje7go zK)K08V*31YI23>HLd_%+6$R4mKiP7qaF^zIr@u@jAUe?&5CTt)Gx>$r+Sv?~^g3uq zH0?*_cKSJqVZaI~07XE$zs^h@);l*^{RgS^G!ta8URZ8Gj*2#Ot7hNV8ktVzOTnUE z*Pc5Vd(MoX=1z&b@i4M@i-(|z&~xh48ejcaqE7pT9pl^G^LgVHKKgv~bDOO}+_E}* zo)hdpi2pNi4hU^)>SMB2#Q_L#AuKDK5ctPesIm)r9$GsjGKvPAB-w4(WLQZdtkau7 zI5~}#bxo?gA)swKGhf4Hyo6!`;s*R{Id}LNLPLu@JJwg@1-+xDf;v20 zl;yoW&~Ijb6Wn$IUd9$c*69T52sORW7>QReg+A}QOpeM8ndS5tw319Hv^=g1|C!^# zK@|yKmE%?AlqsYa)0I3Ze+EA_hmH1{BQ^mZvAvRo#OhfLcGm}--tAmInyMKIBCyj^JTg#MP>u7*uyVT^ruGSc^u@}wOINALn|Hsm_mO=raDskkoi27f zwT*y(FXmjY+Q#k`kl!2U=>Go|Nd;qpd-n#g#v3;VB!}RacL3|wGDF8Zz74(Mq;Zcf z?T#~F-kikU2D>@*U;@o9DW~;MdpTXe_?sNukT=H7CX^z!;MXS?@o}E6zwwGizauQo zBIzyK+%l!e%VY`a`*j6XPVJp8qkah=d@!c&UE3Ito$oGPp5l}=nCTr#gW}*7?XHt9 zFgBHEojjhiYNGbl^E9Xf%KBgCfXnG|U6fFjcZ3y6O?; zqi)QJ)qDvT%}9z#<4lR7H8I#GX>hG8F3cI37Nh|;Jl7u(V&tXn*YWoUOF$rh%GwGv zY3o(4w5>qD1^}m&1YI#MW72Dmel0}Ix^AMXOly>dK*PgzE3L-(7IOc;sOHZ0h{2Ls zmRAE7+uV~_{Ea}c#KZxsy*N#pEBmG3_}zG5;H9YxfrzM=>10AZYz7{=nD>) zU)p59B0%hu<~g&3YfS6&H;j5_;g9_F>B@|F`$~=>aR)kj99SFO4Si8O}&R#h#^qHNe(kwAG zRv|{l00Sv5UNP3%b?90X%%>W|xM0x2Nn*(&G%cBB;Cx-s^M-?z&f(Ekx!U|N5m)$9 zB$c|%z_sA^o3Rceht)L||?+|B$#4~Mu+61{`NK9)Ng z*chcO+`gq3Xt1k#^=hX)0&EXq57eW(cV>-M3p-URaQxzCaBc>|e*k5ZvZy>hvRY|& z>YY8PT|$0-qubGyN)4$tvVo+Q6`-?wdq5Ploky)YSTMupKmwx6aA9X#-7SO<-YZ!akXq;RKDhbyP zH|z4VH-rSPfXe^?XHqm+-C$T178FgU-I!hf_}|fae(`?OCe?wRh;*3X_v#$i+Zf}f z*W{P=z*dsn((=PX1`1(C%rr0TzOqF8jnpGuM;F%D`XbET>~shkK?iww)^@ThGQ`_& z`big^HF@>g7GxLs5>}E>EcgPQ!>3sLRI<#*;dchi>|JrB&As7}T$a#KV&RE(`C|Bs z=T7i%K}A4C%N*)Ww?>ft?}zccdggHqDRa_td>gPJ;1`<$!i9Ys z(y7hULd6e2B1vYA1>S!D3mca1Re+#n-1F0V)xMM<73^Jz=f*0EOnl$vP~syz?E;<5 zn-MjaRXVH^@DpBlkILc2s?&)ptR)kwPNyN99CD@k<|pkr{#lFVTRIGOu4!L%Xd5dW zEO)n3Y1J^!|QLHi=;RDHk+G4P^`dbWy-pmu5El&D&2--2UVf1#)3f)<$3{k~+TIS0p6-N>Z5geT4Pu({v?i?ufRhnH(X$URb^$gui1H$f{Q14}j>T+c#gj3E~;KSiVmKNx9+s z+2OU8jQvf`E#*JhMw!#OIgZUr#rum0(WJ`chLvA4b`1ij0r6dP$3{WcZJW->Z$;PV z7&p=*P~;wV`bdkjD*(+wItFIgP6Lf&$F^qJJNnbA-6F*5EO-79jsq3aS=D3af?2`VC44g!X**(rqRgI7(${eI6aX}Os=S?r&vP=ZVD zF5SuN%vJgmIDe}wl&-D!VT}74oyZ&#GFNH8=+q9skN9!nl)^Eo*Gy~nuCe-_{ijPU z?BuuC&-deoCEbjm%3;hxB%#p_nz?*@Qnabs4?$bJ>HX&=$v^IjrMWdVIkk> zmNUFu?{M9+;dt9sR1VbE|J%&TdJso&BfG`?C`DhO*YW)31&fg-G#%Vv@6;-&yU){N zC;adihE?a36*jFp*;Py4*psE#c_C+-Td^4U3AP*Iz#BO&DM`*aCcHKx2cf|V_~vGM zub+h$qxUoa8qz$)(`5lY6)$u@R-keTy2F9Sz)IO@sJ#ZZg3|W$?MqC{>+sncxF{-) zg9-?<6V_|)mA+{hdtE+$DD#xmfVPCurMj-ka*6C4c=&^)ZOsJ1PrU3rC6tX@Lnh_J ziRmXgdOT(JZBP>j9Y9xkF}&0jX)1r1haem0P8|lnPSpP#+`b`nG%%?4VZbv=uViFK z<+11shn&$?NEk1pbZR%1Iv+ixd$=8>HynZ88wcn}L(gn0W*%js=n-7j5vAsMdJSm5 zb3eSHISynM)VePjJ}@cQ7MMj_-Ho(~oflSFtF}A>U|S(bfXIP!AFV)pknkpfkh|@x z1R7oD28Q}-w1p>K%v`ZkLHUJYDq?I~>rEvW!ibqE03=TeN;#gK*&8g>jKn?J=FWgt z;Q%m-BduWUb-T12c>qkhe0UyKJE@`H@Y5>scX)#cZKM`OmYH;$?v6?b!A?ui%Xr77 zV5-uGV^C&BvE@x2FJIi!mTwWrjXDRC`8We&%>M(Xs9(x~^LIfeosnt6K+pH2%PFJ% z6&pUzB+nnb`=IYFk4*#Zjs{)R$y`z`9jC?+ad?3!-{x)(e1%MUQsrg%o)!1wbA|xh z=zF*%gH%&HGdKwVEm{!A_=8<3szpT4lo&C%Q^{KL$$5NdL)Z0^(GRS>6}PF~&0K87 z4`F||lHLT;tCxpqCO6zJ;Op(m?Atv+X6`LCeH|%TcK>>gOGJpqa^+Z&zZ6RWGUt^s ziQ{D3u{Fp9RP*w;(_km}XJ`HExrz~LjpTpji~^%Ue|_Ut1dEF8dN3=llKncg0Lfhq z2NkmW;a0NeX5C5RSCCoeZVls^d55z;T_Rs73 zRBdpD*D8_#UoTozJ5iq3(s}*J)zRZ1d0JWG!5XEYC7n^Nan$?0aI|TakuCb~3^MHv zazZkQUQDAJvl>lHq(dTve=10r^rvgZ1Rq$G&4{5 zxbnu_wV5ka9RoVJ0YOVfsz%g%?9`93oFU6N(+OZAU&^ktkAUTYw`OJib)N(ivXjzI zCoZgV6sx3KjFY5zp@aNpuXOlyy^M`w$ImXR-?z7uPSW<17gX*Y|9E^E5aEECh@VCYN5bcknbXZq;SUB+E|UEw(!ZFf$y+DcFR=Y~0)*3+1s&hyZtKBZJ}Rxy zhJj??;jtClo0x%s6y;$$4!FNYv?Z<|_aH>t3c1}tbYpPxGx$O$!AMj7Z25t7OQFazQtIdmjx*!~ zc+5}nm3w0^zPFDOm~3R zlpE4fl{Tic9wQuYyRFr8n)fGJ@xhuSAJt)Y!sp@9`41y0c~nXtqQKeE%(LL+zO7xo zRpqjQa{$^ffo@Gv8G41#43;Eo`jU`28$o-f#`WO+EixUD%K)IWl7IX$h?t9k7udn8 ziwpnGruK7q&{i;=$?Odv9aLdCKgXuEO*qU6wLTG-f4IarpeL$U(gO(bEHhje@52Qz zC~&qRnhEkew7V3sPWDmqr-Ckl`4tVntLVMu7X4HW8m)q3MB3Guewf^CXlcYa zo+DwL?lLSDU$WJ_mvr5KhA=G~mu`Q7@IH1|`%vR{`rw*qz)K^4!RV&#`L$WW9D{-4 zhZ^%nQ%U$6b)(nhVB0tE?|V&N=a=R~hB2V;GnV-3JwWV}$4{^E)W8~+r5gX*S**&c z&?kwXx#Mtlx}pI(oqOvC{nFIjXR$FhJ7}y_+&C>mhzS-xkAAYG{PW@78h%~-qI5qL zpQ*kIp0xy1&$9i?0H7*c5jnHrMJn=JFV>e)Tx3QPFHtEPr`@E~gdI%-Fv ze=C|+p>=ips~JBfU*Ye@upgBbOFQ>giDrBU-um10_Kbp3Q{Eok>K*NPUM=0|G8L)% zjXxybvJNty{TzX${?VFW7b~DujsbF1uIfjjPQO<{-ed}!5*&e}!qm5L;cF*Ly7KOD z@q#i#CMw~X%24;na&@^&7y|s;7(04z8~+DR11zg2@%6_>dzzq?QB{84Bi+MJ$KUC+ z^OOB0%)}MFtcMcTs8@>gjHlIPfc^wZCDlM=q*mlur&2V`A7lhLTu?-qghbVW`SDvJ zs!q<_CgVmh&U4*dE-<_12I(R)jzPpJ$+tWkmDfF&^EVjpBLd|%nP;=Y?W+98^#Wy? z0%*e!NxN{V)=+gAfR?DHie-F!gN!#pJej}~ME=|h5qB|A1m2*83dr(56xl0Zt!U@? z&HhyUTVVDKkEo99$Hi1D1)rst7E-(yT=i@e_%00}GHAS`9|>l;fa|#NV@oeMY`Kfp zz)do85mpj)%+wiYxiD$>S3&hPhwg_u!Zh!+{b5UnvS%;R* z?6cItZnOVA8 z`fh4MGSpQhBs~EtnsL3<U42i)fpX z7`7Q+s?L&q1t8K=9p|iPsIpy|$JA7r!aHf}nW`upZ?V3{&{;&%Q>Q# zRN})WND!_0Whea>+a`Qa-@hoh00mfp5C~#Khrlw^>4p9r=hQ5>WO?y`fd!b!CmO7Y zihb8kw&611od%t{fs%wsMPqZ*{8y_3q0u?F_5uRdf`q{I$u#DMd2$04oh>J}?)fv& z%wS?kqj9u;544PURCU?YAsdk`?`Skq`dL?0I+ZI!Fl2VBN?%YZk5Ul^OK|JFRpUXq zc{v+YGJnR0f+nSEhN23`q%*nLMU4yeSkI9tvr+39K9e+q#ARa`Ibl2RdW=kZNl439 za*X0hmqaINjO{)+LGkwK~!EB zfS|`z{Hghga71}x9uxf}6<^rqV{cmUr)jMqc}sX8G1FGlXXGKjCc{xe#2>;e2r7#oMnn-THlP$+6Z zI9zQ;hikdC&QWW(RE?#|bp=x$J@Ng9J*x3~t|HquSGu0~7I6j@UyO%pK8NSbtNhmI z(oHRpw@ZbM-lyIr81~IO7zy4enuwG_{On|Y%y zn%POTr=K|@BhYK)7@>yz4?py3$61S?f#cxrz)aZg49q@yi?;?fB{e3E06z#T%C#y$ z1Z_79@gNSNF^&<8iBYI4K$Wq_e6G|4vgXM-FW-;j1i&#riDEWCs4JFHGV_F&;c^9I zd>e8tox>_L!Ms+;j%9H@BiK*oTBNOp?agFd`1RP$lD_#hq+irZfnVm4aLOaqw{PCh z(uPVf!rk~eRq8igwAdG(S1D@ek;UG?lm{)tFny*WH(Jv z-%QEt!m##mv)=)dUa^L@0#NvBz4{t$eNqhS6o!~^RUdGi!V-1&shiqmri>EbM3Ok87QAlj#+q+Y@wnZn z8?zG)k3NBF6tibCNve{OjMU$zJnz>{V&CdSr^s;H<4*y%U}-B)m&%57rPHvC0!H(^ zE8y(s3w3cgWb_z$NeEQ7A69g>L>Xfz}jnU6+B&8A!RZx!L97-H&`lOp;J8h<=bb*E^BsH<-4(x+g= z?-(m%Vu3~AK8`C{FNdu*zD5L2j4=h`F9lLfgb=maAxJlf7%O-%uz!rB^G#}T&wkBv zMcEB7M$~;wTr{&-5iwwI=XVikK!YBqn(PE$6}j&S=3&!4?cX2cmQQ;$mym**68&Y z3E@}YhGO4U(GW`hRax9Am;UdXjE6kRf7<+9aw5BX8sThedxb+4Li#)#(`HD1-R}L! zRwP;@-3Wpa{AN#EMDv*e_h83^;A&F23NmjclNldcw2F2ts(+i|_HiSuOq>w>JN zK>Vb#FE*`gf0Rs9uU)L$o;rp46*Mot-SLz4V@mn)EYz72Yq*k`&VkNBJx(<1k} z6%!ESdFKU^1ZrcPNVM}N;`bK+G~~(3nPc3wgq!w|WElZ&IT0yrq;?=h1s(`qjAg- zWen-9#@!10FPIl{n;^95^(Q&^qL$5i!P?OHrr;@qx5L$Lu0kt&%17R@3HfaJT$Y$% zcF2xT>jBq*>MvRC83vbNC{CqMB#Mu%9ZQ{JIYXi3FF92s3^ioRk9;{_F2@CT5$wz1 zFU-NE2Z*+pM(Y;saRBwm1x(LzO$LeJ6C#tY^}f*Wr7%GZ`0;zyat*@BKv+I;0r(id zYen<9%=~SIWPrS6#*yhb78k{s)C3lQdEOZu)f8A4L21mMo(VQNf2G4w!4n`6i%0E@ zMkFea&iu7q85)=SY$pVYaIcd&KZ?9n`_hOZ#Qp_VxBVC%RbtT`XL3Q1);-r9IJ|{v#?dRH2ch@aAGLe`GtUn z4C4=&E{KI6pF$FqG+mOTF8`gpIzOv=`TTK`glQ-W^0gvy;V-vgGiQFEb(q_=Qs*cl z34DW}d~VfX?44ck4kl{o$n!7=%|Ol+ZrY8ZpIvcT6+tGXjUN?NQYR3jZ-Hs)N9B@$ ztEi1m^LLd(dkLeaGN?xXqZHV*UHuK&qit=$- zy0rRcYEUM=h{R+!+kbX`U;E)2sQdhP!m38jEjWeBEJw+!L`S0h2>dRUf)(-m|$SuAH2xNnvGXG*C^!HgPN!sS&>a=I2WEdk0h z>iuu@|0-)P-R2#=qhW~{P3ZkL&3vnfd~8-}D+}jLm;G=d5{+E_4(;u?ZOE@~0OGY@ zeT%;hl#?gkCtO%=)EqYcZO;E_)46|kA}VkIrUOF|F&LrX~^0+{@`X3aLs$FRDz;1N$mkgS{`d=fO;#x-UArBSX zYA_gw+jlj2%OvZ-Q8rO|6hQ#)%!dO;&n9oTe9nH*FPARUxlP8PHBG=g=|r7W{$#L# zw2aPS?|dR(5Y449gnvvU7=HVskk8T)4F`#1^nnp^O!Dk3<`ZfG@AjlVisc{p@aKhN79t&<5}sFt(XlBmqhH6y{S%al zX+RyEE}%vyv{h5@;{9-QX0Gr<$D9UFwkZxA^d9wEPmvX1LTWb%q+W0U}- z4rsc6rXEzvL^^xpQjKaEk@F2#UqyGFo)&Lbv^+m=+JdO1Oj)~_CFpEQ(Ao`d^`%1{ zTS6$Cz@C__+k?>02R|THSkq39zSi*jiH;M0A`dYb>iWt6u#p(E{OQO&;Bkw6uR!*evjl6!(EazXO9HmD5Sn+ctw!SclaM{LVRFT zpm7!jD<2KyMwQ;4{#y|HsHx~!m!I)(C2x27`KFA?n|}Pv@Xe){i5A%5^60r&w_nm zh5f#n?q2`AV5*vDyeaI0*d1^B0jF?AtFI0BpJOCHOp(R0mkWjtw%%qj`A-#5R)LpU z(n){;ay^ESh!TB52@VizyGf@UvgXvDr z^)0>zj5WKr280JSOcO%)kZ$=O3g|;rpI$TV&yv4~w)2sLPZ#hZV81{0EIJ->Ny`a) zrQTp#+q0G0t(G1w#KCDEB698ApA@@z|0#1}zZNB3MbaEB6RmgO5@<9jf6e{Bf6Cz; zwX$dl4(U77VUt_3TBU)(n%{(2r_;v)yd!f?)ko*@SKtc86)oQtk6@xNjR!DF99K#* zHow(76LZhn+*=>`MvPsFy1K(jxcG=uzUo;mSxL9KdWZI6-M^%)aMUadfDUlWDT2&1 z^%%NW1`|p%^dRI+-|6XKH++eKoKF?MzV9yx`ErWs7whmGPmU07g}p0nyL)(jd=K8! zpG!ET@5DW(0OI>nK$c~K+6Ja1cqw|Zk`TjHm6H5?8}iR1S&5@I|JyF_Tp({X@Q2$` zS{yIVIKD-4z;tlF!U*=aZ;tl@#K>_Ua zBntR?Hhr8A9SMdjPXFrkm@dX_3wNhiHAYGJ64&!sgv28s%K$6ZV|=5w_qKM~xdG+} znrXbMO?P6WFD&&@x-&~I3RnM`!&d5UJ42=seZRCj)E{~q)4tYMVx&rlVu_%g9x?O@iPLUVGYc_vGVdH>fTt<; zy7#EFpPF?K_WB{z1aE@^mR#;pM&DJhdlZM_jgdTNd zD|m(op|}|=9BM#(wQvM>XLZucfLw&0jGLYqPm0_ts{kq*pG3MzYAmicK}7P7BSDL5 z!c~MVT{FD`UowibUvO*3RrY!_D%zN7`>(`xM$6ksX@lKs)Cr6~9gwW7(6*=gpNy%f zAVW;WZ_%1cFA~_h_}!zUjmg;la({#4D_-Oza0pc20+4GO>$dK%6S1Tlu?Urr`zDNqK9e#Zz&&yP51BcTI({VqCX0SJnLRY7`&%%KnA za#i0h=EO5@u0o&M|D*o$J0m|D_&>#d$9?NUA6bkX<{m*-Z5?rer2$fwRB@5i042SI znrRN;H_`^4y*4R`u-EXyVc)o((gsdom;NX5D3X+j*D(=uxVl8tKm~Nxo=wamTwfox z7n%XZFX#qMr$bfNJF9f&(;WHcgW^#7kk*(d*kcbjdRM5$LMEuDLI6Gp?z&qK+<4%D zY*gR0IA2yGBJk@wQYDmyZj!2k5CBU+>U;uNC&L^q%tLk)(1lvuEB9#!YoWmF>z8&vp`H8Nn}mrh{@2XSo>igg z$NhyYKVNQ_rd|!UrWj8mXVpwUJI0Fv@HP0cnIDGC0sgL zmz}=mron;I^(J?SQHf~!wBxf-sZn-@Z}3x-L3R&>|1U-rUc4phBNCn=KDium5_55)Jj`Au5v>IwJN_X~! z;~xBlx|LFE=YlezSZeC-z~_rCE$lEaQ^9iZMR4Zs{gts~f_flN2g$ldZ6~UW2zv?< zlMYu$ghu1zZqy66`l!Svirj=}gm#WH!_p*abO06+MBg>8y+rW$n+Ri zCo0C4rYIdg(kO1ENiw=V0756QLAn}q^F2eRw7s5%zs!h)3HHt@;#)SfhNRsVWIvqAz8yM7|n?=zp%(bE|duHaF%6Z!5Wn zU>37RY&?~fhBpJnQu#gnOmUS%(UDUydy_tVHxm-@A1v?MqsE_|vxG z=*e%;1`Nv>^fQuZvgT$_)PG`;MhTpz|B~CT+-YhNm_QEEw!Su79^R8S>3ept23x60 z9k-Cb2l~%PmsE-f21`~}-_^yA|BLB=RUs2DiKm$vjkADN?$xcxvu`~)I^QW;@x9Gz zNpZ$zDkyPsv+wMA7jl`EhABSfbog}Wu}w>-d9so5hyfpQf}YrUn>(e;Z(Vgl)aI$E4I;;RmI#^xlkeArTL?}%lfyhQ=*QXP*^-s;48YE1uhj( z-?>+HrY9S?^NGsn)^r3D0B%yBzX?dO{o(ay+l!7Oi7rhOI2q6DVI;+<1WdIYl2_>( zJ~-^af=rIpgSQyyXKkNOq=oFA0BajGSdwP+3~A&z*h!%k5tFXFVAdPuNKzW zbN_vQA`(Jk#c7&jq^Hekb!TPGYV9Lw2N`fGJ?^#dv20D;HCI9$F9|tdg>XFQ-o+6O zb>#qNmlHemj)nV@RT_Qvu1s_}x$6FDK+ZhcYo)jyM512~Ar<6QA0`G81ShwN8u+F( zgcciS9AZ~0$bAJ#*(RgV`e#KQO#%Lvb<<)$BysNH)J|5M`J36I6xy;y&V+P8`7{2@ zc?lv6FRk(cK^hA>b1w$IjF^}WO#$;u%n64d6jCNYs!b}l*R=8XM@#e^T36YxL$pc? z(EXERkcNU(`d}&1qi?SPd`T>Axv%3Gqsf3pFbj908)6VQI z3A6WgYJO+>lzpASNIB=%V>AY00?_K%Hwtj|Z~=1MI>=TXR~M2L&QSJGZuiR=6;Sc_ zQM|Y{N+PpxJdA)G&80`xxNX3(6kTEQwgcv8^6%~7;qd-WX3IuhVs|H|WS_pWfMvEi zArs@bLo-(XB(C2mT)V2u%G%Bku??wR@n}-Y{mQh`wG^Y1Yn}paFk13V!QA@SnMPI%6?u+} zV~=H$O8BaWA{&-4L37md>PvzCogj+_NSDB~Sq)J?-DfzR&pEJkEIQh2$9Pw_9xDPO zzoblC$x(~qb%bEn2S+u58vNlYa*i^@$mP88*M|%l$;I<86MpN&Ts^zmZMg024@;~Bx*_CcVj^2+0vYN45mUHOI zLKF%kL@`?iUN+&4PMuwMjTI=xWxj*Z=;J(J_qu6aonmTpKR}}f^k;$}3*qR|6tEBg zmgvhxK7{aEC;%X@G8vw%?e}p_MPRbMPmrSim3_bNBEj10E8nK1p=+QFfn!!kypnS3 zc5gpiAjc^Pq~IROHn^4khx84y$!J0DUSXp?QxjuR7s`sHS5T-AbV^?IeL;ggk;RO= zN=%Ik!Ikt<7KCebYgQY4o@BmTHlEd~Of`%|Cs+N1DZ}*}ZMmw`4f5a6%y|}WFvo*KVAptT)ZpD1Qd-kn z{q%7(&BT%VkB593z4u)p#=?}ilRo_>BZI7eBEYl_GsBUEwq(_#P(VgSNUsibK<_%R zWKx@%`2);-76t2tu5$EvMjX{G_&M8gcu2Nl(F6Z_a&=If&S}7j%p+WKxqOimbrbo9 zz+m_{S;EPhi|RZZC3T{F6_nj-R7HDAc`5f|j~`1F*s{I!fcXf;>wgx6V`LgT!I35I zCl9MqI&3OvV)mU|%107g4~WkDEjOIdS)DsIkl?KkE&aS*k={x-{SdB_yri|)$Cxr* zyW()sC~Pb>)c<}5$&>!dd<@<~)0HeqopMxniS^sYpu)mXoUvqwb-P|1Jgp|6MULklt^4H_Q42EzFy{x$lAJx+cp~IL?4aEmh~ZYBKg5 z#V`@4G-5-ktHxjVW-_Rbiy~8}<~HZGBXTQLC6_u;*dN1jiPWEq3+G|Ye3$nbhQwjN z)ofQ1QO)wE!iWbpeBlwhv0i_wx`#kclLgPgnllu zidK&@k+2uoe}!%{XohgW0nwm&5fOnRg7>YWBGn!XfZdT+^1&1r_UAUmW?_j9RW^

?tqfy~iWd7P>6ji^S0O#gWmpYC=Ml2dzQ(f$QX1gob%(nvp0gTR!AIHGmevj5MkTKmqCf7k!R!tzU%r z9KOn;hoCS@!seO2Pm`ITO@PkXjP8Q<*>ZqPnoZ%y!h_HGW@Ie{M9 z$4-JHgp&lG%%hk%b-sczVf0n$?C7Hh8Aeq?2&FM5l!u3q`|^w12peD?rfm|&ZmFx3 z7O-*cdD+9d?^S1oRB#cC>U5x4M3rPaD92!pq;5BlAp}((T%0lN2!`gTH1mipF;2Gm0TNEgoTdHvJ@iIh2R34fBgq%AhG@Opi#pQWB zx3Xo{fs-?5I*sc3@X_r9Mp>+Xs$ zmO>B@017yvy%H%Z?8uuaEhDB?gnS6;5=+NaluvMjRo^Y!^yuu0Q$dVim(M z`G{?;9xqvR@S8X9^4nJBo>2i;bN^;wODhS6IW|KfgGxUuzD2tzz;`X;EZYm!s&wiT zeh-*7tw}2?e|OwUl2?sr#$Xi6u*BPkW-Rlz@w1JZ_2ZaXd%;o41bqE_q-flA^%IDa z!<%oRvxr-Jk_;8NqU}iR=y9YOdKO>1Iu(uV=5hRA%yj zv#G2xGXqO4rbyG&>UidMj)nkIlyGu>)%5}udpzDU*>$HT{U(<=uTv zJ>x!z+9g!e!n1DmE?1h+JzDZ?cx09Z3PHi#iz(j?Wv8Zzi5D1H)*!y%6^UWU>vm>L zRyQDes=vRuV6svNbNV@ij59Humd>0TVzistyJra>&EA+AuqCb{kb0si1l}oB$cg58 za#ht5?@aJZZm-!(&`?}#YdpRq1p&46eu&G#9cZNSv^|(+8{U*shJ>Q177!{Ab8Gcw84<>3VCM}Zmxt@_~%S0 zUOoK8Zy4&ogf7SRr3CMW?0QqM-5NLw$QPT%mLtExZ7dOi(n7?%WHjh6yy7$Uk?y;G z=%vAokt|TZ6AS2<$`g)%;8cn3ek5|I0F8S*U|A=^Id*+PxGnMCtP*$^z`}ocLRvn` z<+Xo$D}Ci%YW#fGR7<>1-d%tD*7^b8@m4_5)G6qh--bV5>wexzS@WtR*|sA8l^^-k zIoFnwT~fMMx$rm#6Px+UeH_S-iI~~5RE~?Rej(EgUyV|v&493=4s5cEh@%F~vfZJO7j} z-|kYWrl0A#m%wtbFjs%HOZr_|%_oV6$TnqaAo$*a1l)ONjpK?mV|9CE|Gh{dok zT=@if%q8u!rK{#PYtaU{+q#u0dp97laDvYXaS-0o zN@i@`#jJ@^8>_0MIm7TTlEB&ErCW!kWEHkP;%?yz$1l>JS22UD-h=onI*!2)H96TL zhgX}Wg>*h;Mbm;z1t4AQ(nkg-%;hJHtO0IsT-k~Da zb9#(#;KDw_0jN_tf;C`uy(^NwQH*<`qUCvaYBIGQ?N^87D;(K2jTP{+^2#exmmok;<8EwoOukVA;SXzfL)pB1U$JracRRY7EN58 z`bn?NHcX(oqR9aYQ4WIJcF1GNU4iwf^!o;w#^?*!G9VyQ;2(&qy0Shr*%zh?b1o?& zI8PL{WP+5M-QFkwvRa}Uy-4I6IsR=k#>KTt<=Y^x=SADk<}$^iZ%U^VIsL8 zZ?ST8DSl3;s5GS~n`6(oLEb;L8i$i&3WSKC)l_oj?ENlk<8&ob%+T_5 zNQ6mP54$+>^#|);M}nQF44w>*!?-ot#lyED#4u+5W1C1lkagP$E0bbJ+5K8BPCJ~LR@I3mq{o8 zkbd^cA#r8Jk}1xNy0lx&f_`5sne5Kv^0XSGpxo~Pt&*@-mF=V=+$o#a&S(r7>{lrR z%~f7$w8K?q~$>JDysLD>G#Ox&7}k847zYeOk>8m&Qq}lOxOF zJHBR1(sr22ENYc{zAE;*UAF`_0pPOv*RA#?9m7)3SzlAL4A%Ao>VwP&1F0$JMgl(h zV>jxuz?bH>1H=#B;FLVxWkA8P8gfg!L1RH$=+G@C(a%=;k7rNuqN|<4VF?-n3V!oZ zS<|t0;1?V0Ws)f;i(|o;gL4Ng;gMrd=fOz;4P_?v-q1jr{fNfKO!mQjrq`(}<@k9K zGIAHkffWQ|FzPAkP>eR*SqQQ}DbD z#Zi^koJ8w=G&ADdP1=rr;uAz=&zBKAMpaHgJ&s0tc@#pnQeh)Gx1Pac?pJRU>+2f# z1-xXr4o#J2%ZYpu6FlS!P&U7#f3324E&zx)I-^%T5A$K=rWHuWKj-c_2TM3ip-E>g z&AbXf91mw}r${=z2}K@iSw41Lfn5*D?1t&O`O-=C$d&U0a&3;tCPcL20;{H}L7Mrl z)UY!Id(H*MFem52IS^tUB~hAg+Lzxat_t6&{7n5J7m`_zy)JEOrDdh1|4F%9bvihE zehvZY_eVHB;h{cn6%IGVea8bd&mqv@ZS5N27n{}gJZF@NxHaNYpOf@4p_cQ#$p-j; zK@OTCubj4-84Oe~(zQdKJ@UwNgBw_d6Ri+^G>iid_$PIV*+?cw zkI$Gu30x-F)wp)CX;savib>^3gvj(-bVXx~no(UG*2HB+raS{=-(^oIcV)U5roUoB zWP$i%M#cP{68S08Z?)s=HMCa?=YUj7K4a)mEMd=Ab2J5K+SrV- zW6l&bJ_&D-@j_|T%>c#jNh>?1Zic0H!x4nk6sA5CUQ~9=Q=qcYDT1PijGpQ*0PAuc z5~?+cM5!^29gm4A)3v1@D4g9aa^La=Or6s&ST*Q0C1sk=wJ65Sr}pY*>e9)kwymnR zZvXwK8nnnXY0G!Ha*lRlTo=o7HAod}{+fp2>)RYJu$c`VS4iPOuU`L@2`do}^Xv+U z<|r2$WCHA6E7Hds6|zwr2(U?(J`GLEhZo zJ1|4Li@+@SAb)jstR+6D+r#TK@IUVT)e{M&Iv+#Q9DmFn3l3S+%}gR}V!$S_jFY?Y zkzz;-eKIAPhO2|me83BrPWrK;uRv{n)T0?7lzjgzpvVw2moVfY%FWIsL%sc{y}34$fPZBw zBtctQ24hUV0$(apH)1K8XbI83G2NaDfDZ6MBhhR8d3tm&vlDJtkuawemt#PDEIy%Z zi&M19&FcZLo^=honU?H{vC$m|*FsPVRzUR9C}#>*LO4Jh|7effsF6?tD&_j!rF@v) zg6$vQ#x=*m>JLF8cyy|^1Ml3g14>TkQ>*j&KUQns>8pdAbAWU!d?3aem_B9_VAWzD z$Gh2sRk_+Dd0_|eWBm&nOcTO|;vu1Ri62#w)&=o^w(=ykMYcSu^q_BdUr5Wmj}df_ z&O;fhkJNzz4rVPcxvnfepi~UY6s8G|1U_2218lof;Qt=#LkuwruFftNeB~wu3a7^dmXaPpTS0P*!c=N5%s# zm3@_7z{b{e6kpz@cnrg*j}XNIi_a^}`(%oBwn6hiw5pDM%3j3q-A3^ydhTZ7FOzMj z$R0jZY1Opz;PZ~a2Hu3&u9fEzTyXv(Xx9HBayrF{{yreFO{`Le_T}Y7g%f_%BsPOp0$@zDpDI_$?RKF@hSQ$bpt1`Il zcEX&kbkTQQiDICXpCwUkJ`-47R&ZZ0CSB95yGBIn6r5C(Rk$Rqh~A?R}Z5>{VLUJ;}scY)aO^2uJOq6%fBWKoIZ}8 z^o(qy%dOnyJvGc=3=`@2V8K`j!e=7-yIQYo64)L+*$;Dhf~Lj_9)jg>`6P@~`OFi2 zh!#2tZ%d%^l6v#KWqkBnETaYf7w^N*2fvNpKb{^nH%2|N3NNMj-u09I=k*W|@BRy_ z*8?*6bC;(edAmVup;bPyi-h>dnd^B*)DLa`SmFi7^DTXl0@~FI{mc`fF)VI&atEn3 zFIV!2*p|6T*S{+9baYYOp&Wc(Od&PG?gUG!Yn;JVE`Z#s#T{C&m?lEKCj@T)Y;hyb zG5^$W!MqNylouxOv5hbemZ zai}z$a*dU=yqIo+gAVSE%#=1==eItpCjBcQVP_uFD=cS+`h_s7vX{1p=$}Vx5xWA?h+{a3~cuf?wmsj<7l-UO)&H3S;56uex?QiwYE|4HcWt7&{+t^QPeQzNrg zCo#Wy5*K&|mM;qN3>fdzN?6!la}qE8!FUx(786zRa|$?|l{&=oGzsHro+Hke)Non3?9$Y+Ph z^fF9^+hzT`6vqUqUCsOaSyu7QnHdy?RQ;6#kj;syITYOT%wb3p9EdRtA%+M+qYuSn zdK`gN4*(|Z*?r5=Y$!Jh_PP@aE+JvYjWR}?MWoQ-+b$?DkM)q{s@6so0@$AfJ*TFKWNBt9xk@7lDOpC`YGQ{)R zMzY43f=%u$>7%vRIcpD4%Tz@0GY~Z2qynL8TJkP zxS1X8l!C}8`}P5^65puxrX-$S1TuHwh7XB%jrlJQi)ZzFU#o!(<z!GGfKR(htmbP7-4d&@+g zX?B4u8tc~(GFBjp_c61rcru;WsFLvdLy~H_`x-;08-T@DcV~4e63ZgR(Mw)Hl;@Y@ ze^X#BlL?dLlX-L7Rb9E62_TEks+SXS0m4GOA^%|PMi2MrVCAICTI6gG5Jy|Ock=ch zE?8HDI|0X7A7zVt|I;eZ61&G2>G%~g$3sjc-uyBRoLKrJdlFD1uiRpSqV) zHkloOmMSJgXmVr6Pu_NVdIoREMba(r;PW3uNPI}1|GeVecNtOr-0_C+aRzav=B6uV zvUE%I`9I5mCm)>@x`s|d&|9- zJ?|binTSP@c%v||A;fubnb~mJk+eA z7TdE|oGXOE;UxDp6KMd12d)04q}63VGzYYG{sstEJ?ZudU1(#AukB5gl!yjEMGzZqffEWvWNy z851ZPiMZNk#)HHWFwm$^9(PC37h_>4?XsQdxM;G%VLk`fkv60CJk(E6CfLZN`p{1Z zZPFlgFqzkPj4z&2`m5jw@j>}VRyjP*KW0X;<>I-xYNW$igkv6e1chxJ)!5tv8GC^7vw)l_8<36I$H4!U9#_jmp%@z)?$%r8xGl*F+hnOq5!943 zG7{O!{k8B_oK#Er3|*6>54cZY01)0l2=|!ozlHm}_`|mxs<5-Q{BY?`r&IL^u@gfY zI?$^Fb)|*L5Bi2j2_&DWCOvd(e48q8c-nNwNm} ziFm^2a6E~HZG7oi@!0}~Zjts?A0Tj=`mw|p9O*(^SR4PR=3%0N_A^`At!5{o1QRKU zJoyj46&5Uj>Pr8FAJm4DjO7|WPD1n7zj2`qMDb{PnaZLzPpy}G0=YP7RI7K0iA%}! zq5?ij$y`^CK|n#x@n}~j)xdXm{eE$NlPa||Y@{<5UOey6;|OGQH=&PU>yTbL9LA?g z=)XgCBE0jSsq3VFFm{P3kXIe=KXlD2C6hbNF&4jA0X% zS|u_QhB@`Ibt^Mxz=X0u(ge}AG?r;Ek9$aWLi;dR^Z!>F?n1jRxMvecy8PVwueb*I za7XI2^XMZDHy3b##&_@v0`6}-?qpnTaqzE9N}czuDkFTEhP4m0Dt&Bpl+D(Lid$tb z!T(8|?3si!U+W0{U+watr3<#Oyk80E94;x#$AsbNXyX$rruyZMq>2xUpA zfowgUIqXWtMXLNCz}>fI54))yRMrg0Z$Q2l$D2z@u9`;SEmgXkN8JT0W50_1Atk-% zr^d}y=Z}}t7j3y;E4I(2z64BneQveOy8#__0&!5O9fWEKsfADtS6?u@`d5~|l!l6Q z#6vK3@x?YUEf5DGE7yG5*1cKJPUZ|oAmFxi(8`ZwTrpCcpHU4e^Fo;Ev7 zUWfE}l9It_>HDg?+y8^$ejx7{5Qr<}IYODa6ht#iF)Xu-j;|sFhIw$7)RIsTvBc8+K+@Ik`I;BKh8Y7!tGhf6%$yYRy zS)_uZSX~OGLJbZY-pXw@2xi%jPx;f%C1zbFWY-~~CgQyK<$UmMEUMqJ>%E^v0)pFC zdtY77_VWjyg5mcQHXeU&TE~Dw5jD~F#z=YWoUG^^K%J$}`_)s_L$hD|Bgz!&yyQv< zW;?zb*HuKE&GW(?%8Bm`^79cQ|C`lkgEclBwEYR$D$-}0wRl+KmlTqz-?>3}#y_v} zbnrg7pL}xBnqeMZJOHUt*oVJgd0uAr4bPo4nDmBB?He_isz-Ey_NungGaKOZS!|}* z-5!{P@!bv_p88-ycE4wRP?7&J-8$n@SssUTp*j-tu_?PWZ2FE3%yI@`6n^mrRwI7c zT9D9s^Ryqt3pTHGTW+|`=~y)te9G0$5_`xuLxwS`gvEZj6X=eWrM9vb^$Rs6GHd6s zOuhck_CdDKQr^YV7T`uJPMF7HsZazp9S4mqhPLK)0TX!KIL=VhD<=#BWFL+cL9Lg1 zc66ELr!Q0#2otv47$rfOKpCxAlv`Vny)VntSQC)XQvqn zNh~#RA}f1F(Y)Vi;don1u7^qc&*7K+V#U59Yw&Ie^@Z`>0J^F1*T&Krff5QwVVI7Y zgDEh}ZBLYsO7l?4e&kSO%64&YYEw{s);I5)O|l@9|JA2TqWfdp`d?>H`SasCVDKrl z=?#{+mwYbxm=)+g?cECYSQ)Qmt)dg1B(!StM`#AQn~5VrrWx_D zN>Rg^Mai`>#9w9b7h>s1K?}X>{d26`|Bqe&0}kSwRf95PmM8a%=jg*8H}UeCw$&Az zjvIpd&Zl~)ib>e?NZfVyY}~-?^uOX8mA3xhcy+!_<`lv-iiXXUIGy@jg~r?se5nZ~ z3_2b!`QqnYGt{2&w#&RpVxpGOQ?bOp3@$D$!dB4gK!j`miz~$`Z?j2_-Dr3ZRvMoF zQ}I|&{w|W3hM0W#))QRbX95r3)JKPcuqerkUCCKkVbEDfE0~O4mWM;V7tFEvNibye zkLnFSL=gs0E88h-bL6r&n5hFSs^|9nh&kNH_DRN785ku@$VPV_1hMH+W)Qd@M?Y++X~_}|4ZH&M1|f^V5G#ofcql^ieWU@$(pkD%6fpJxNH%t-J=yJoJ!IJ!*QA}Ch3j#=mpRl+i_fONw1`D? za~pbU6V*!OoA(em16(K{8vobzGxPijGuQ{oeIgtVCMjB8A@zcCzbr;X5yv?ITW=_2IE2~u$FIuJG=B8aB{D=)%D<6>*$f_P%&ObCTRO~=#tU<=Qcd=>YCJv69=C4}4id zs>0bjiWA#5m?+*_^}h=g|1QXGp-HHXz=U+|+xK2pMpP5LL@=rCX^-a(>Pz9}K$9uV zKD-zY)`K@gUn|<(g@2N4JVM+Io z7`F9)GKc2fI!4Og2$2BI7apxYkI=LB()3?S`}M{{(dsQNcD09RxwZK`$3kwk{Fmm$ zR0wzG2dm!RAz^YZecDn~u17(Tq-T@Y7h9r7r0;z)y*o;+`C?0uk!>T1L!T>;;|lYs z1w#a-5mi!Qu*Y3f6c}eZOp=Xe`U?|=bLVF8kX1gTj$?mLUV~ufzRY)jHby%=XrHMq z1!T_F?4!GVgNJoyBBgUOsNW@I{B}&EOXz+fB2{n^^AXv~_vxN$pgyGFTvr%BpIK>Q zxcLW7l7~wTBfDHwiSCHSl<7B!(xTw{MZCXtCPj!d_JV$Q<=!0Mlt>iecnLc3%WP|0 zNZ@Gnp(9HssgjIBBTY%y(oZ?8a+5^Hhn$^9gbWs2R+O=nDWQ}3P0-FpBP=Vm4vxH8 zR*)3mlcmSTuF}yyagHc1#yN8kEn-A%C)mYS?~Cs$NeU3rGnnu_g9oe3mt>OXna)2( z)<)BU$w@%JEMd|x(x|7+M_0&tWSmxXgi>-&sDyu_Nj z^tORooa;0L6pcJ_Hlv2m{D@T8-Zv;?Iyn)pYL8sat_Y5_iv}O`r)%_~NayQH)-2Lv z&8Ptys0mVL)ZMXunso1?dwQ$<4nsc=moaL!qJS9e+Rvwu_#Vw+R#+le|9;sl$&Pm) zfH^cXWive1OxunKt;G#wdRrDK4#e7g^!h~ld*);@t!cPI14Ji6e1PZ_GFmtx)jb>e z*UBFEpCMf+Q9z;#t3}Ibl6j-BERqkW<^{OKH}H@jKZc4PplP7+Xt8(dCD&Y7Tf+8j z^o$y@3B+wwCTJp>_-E;C7^|PRCMNF!m)um26zN|hAp4byN0UA<`Z7$xrX4Mzr3Xz zu=yaD&GAIqhoyU?*i?3oa3OtPfPMXV3UgnY8xtV9zCse@<|V_PCufA}ptgPuJ7?jD za%WvT!lY7nXx~A#)mnc=5Qg-UvGQx&JkQ;^lc`?_~8o4)aD+LM{RN|t1-c$SR<cbiifU$X$I?S_h6+C#VOLZ9HJk zQ1kcDa$^>@U1ENPhR0eJH?j}5EnS8bizE0EIY?xZgME-81sk(b96Ug~0re*p>yOAK zt6Gzyc&D|oe7$D%{kpx{*JxWfzL?O>&&P5QBatV~QzQP?IU&`lBF4qCxYhtUurmT| zlc3Mw@88O9&Rprf-Fh(oCQt;IcHoiXDzxp#pcp0p-UO(N@M9EFgeTBrrhhTpinpbG ziNFupaPb@TiM1HdY=YIF=4JQ0HM+>$#(~uV2|T%IRGF@{Q?Z{BH6Z|lDujhl1G}4% zb=Ec3+)}zM?7Ql14G@|;m!e=2P+fxK*ajpzr?ZrdZ(QpH>_==!_T$g0l@;F)G|p@L zc6s{z{d*$^n&r{abHD%m9m5Y?>p*|Yg(N)_@^i?SBQx+7E0`u9$hKg5$>NTe=KEz6 zR;3P!`z|vJAAF%cOMfqhG|N-oYz{_x^UUELqynYQGyn`##|Uo5-Wmptb>8Ngj#u}tbP`+`kJkJQ>ZVq?(jmd+T%#aGi zjfq}cB)J`&D8OV;-G|u^%zNXTt#yM}JrX>{p(IgoOdkemzt9XI2e{dW6v~WkIz@d% z^Yzr|xCM3$Qk1O55P~_W`7+ALPHGLBjl-Fm1#lgepq~7p4@tTjE1`8BA4*}aS%s{O zg#8$#s`x#}l8MV#^VpwPa8Lr8!;TxZ&ql>nA%&>q<#}mX%UigH3oU@p`Q$$@NK8Ao zP`Zbo_KOx#NjVyq&VIhL z@>Kn~W`Sw?sRuq(uclZypqQD5`?(94E(bIPH?q;-XxF_mLh-LkV}mVZJ|(nLS_?!- zG6ebnzNRa99fDs1|HQKcuy29ulx;kXf~EVX&Y2=3qJM?A_Atsgg5ECjgqjq&o;j0VjSojn@iRX;|In|p2j{B;#CdoPby1q!9?IZ*w8`96pd9q~F8qi5f!E=hF^P^l_0u8b9 zCA=8G0GjvoO?HHjDgruD&=~^$8P|EYxNCy84W*S@yu~kVx#GWUX0GHlF0yecUJG5f zLi0|-SQi6}kb#<2PA~Z}jvEGtge`V5NhB5Sh-;0lR>10^k4iceM}}KuoQs0|8h~(u z?q}=~i&RjmYAry~0`x@`y8+jo-@`f{ofm|Ooa%zraBjDk?yW>uFAtI=7$~klG3Axuh z%cLe8EIH&XcgrvJKzm~(P>OUI;{E!z-9{X}X0-0Swu_6M`yuatdst8phKQjteq{}& zFeW}lho4Z1a&Z@3^EaTZXxw3E%-yl%t+mEFM{A?|qX6}H#LW$KnTXM#cZ4Vvn++OG zU#t(Xi=9k}dy&kKa7qSN#Td-otz}ey(Q|b#S>vsFGB2Oo0pCO;9nsyYo?i_STen*^ z;rf#>CN6nRo`Q_iLl8Z^TewR`dR$bD-QC4_!PJaj&m=sbbD;xGaY30_BO0`M5Dpu8 z1?(WYWT~Hj5Hf~RwKW}BTmbgjn+Gs1$t12)m`^2W<9K)pYBJ3D=b#qG3vQVc;< z$?H^SX4lc@(*KW2ck28ptXG!(5|{S>s?SP$ADo}PI6rspz|ouK!$ErE3KYGHsQ5PW zp2AQK*<+VINPZeI(9rhKFtfR{`b7_jd^v`aRtKxLDose!=CX2 zTa70nW(s(~fFr>uv#34uSt1Q;DhBiX=lEOegYN~Sa%C3#Eor`S;3{In05SYEIdD>< z!=5a(F^hvT*xJ5%-*9h0T*^-I_6-}e!G--E`+|VltZNTl=75mZ%LgrF9lv;1ODQCU zRFk}Dw~YeD>B;avzqkzdQU-GWm*NjKOZk@@;ycvN(%AD82=K_ls0_2z2ha5gi!1nQ zX}Q6=FKMU*y9v<7se(8XQ*%4mgi&C7|0z~qGU*J$Q@hontzJ|soe!tGKzM*pK4PL8 zmt9D_bB8Fh3hRO^U&Y%oP@-!E30KfXJ(TuYcY@6u6b2`JB?emxkMEL5OUPo?X_uCh zI_L#}q&e>Frz*B^Sq7p7fMC*Z!VWqu++n zr_+7ZTZn1fNK=> zmhks{T#(+R>t}T2@bv)!xkSLFU5XW*!lISW_V@|Xe6ftX?tJvQ3VKtSDTNb|+FH*wNEI>N zOqWp(!qRrfQ02T02zdYYts>CfY(;Q~u3%)6reai}?k60AqF6p|6eALKIx@L#&NlF8 z$7Ou8K+VlY8ai##X+9y6jI$YQueI|x38e~nG<;dq(45C)hqPCY1k$j8$l7DmQHB@F z)Zdo4!}RbkUM7sNY?uoy5_)b&%Jy(^7mtm>zA-26jC@TZbG-@N;zycr3z0 zG1TNU`h9Hzvxip-m}5?a>8?`(T0su_HOS`b{C}d)a&WiDs#kJFTTf?ujw&UmG|%wF zMyWgxIb{?MSL*sX{#JaK52U;mQp;37QO1vX6nVMNVvp+*Wu#(HerZHn3Qg1FWn^8VV{LmZBX`nPk zdFo2JlnG|}_j{U6Vb^)D)fx)}5yQIy+CyaRyf^6Ow*7)Imuk~YwT`XcZb)T}iq|*s zMG}4lX>t(qM87#bftPD|?M&GYe|vC$NQuC3v2?}q+TX+nlbZWM>K#FHbIf5ikcy6O zqtJ*V4FSw7a($IBi6~wE_RFR>p6k@w_Ko3F_U%Ra65Gd$l$XOVVu(ITW*QTP>Rmx4 z-KccU9PLeuvDVzAxPb$1d+zUm>3xUvk$U#Ucn;SJNPSG`J+B&Z8-Csa0r;jWcP=rmU!yYW12n^>Ua_of0AyFkQ?}{O7^s)+8ugCu59ypR(y8aE>)zyX4fIiS|I?ic5OH% zlKq`ES0DX*si!#{-RM*ceMK*pZI6M7L)wr*>V)qe){I6?Uw&Vl{54?wwTb-e`~sbZ zpC~dJIh7($7nH|5&eUIT;3%#u?7##}LhZ_LM>-ySr%k7nHlBe!%}thF~%NI7&gyXm$^F zRNOGF5TSMi9;|p3huL{lwADO+eDiv)VH#BQSHMu?4thIed+|-=8(hyC)AKHVc-EQX zu#GqI5`LP#I`CE{_$bRyPgj&DM=m#@kkXrOQ+Qx95%Sxyzcd9q-+VLh&PO-LCUBxX9tWw51Cl=T6iit$& z6C0FS_oJ(|PM8qgC6d3kgx&l+HF>ya(o~tJrc9M)S+!f%?p$xK$Ugf~ywQMb*|Kn< zRepej%09XhcjHnB+d8s##zWBhK$|me(P~^jr%U$eweOb zBVm7<>u+iO#PkfFiUzTYl{`|m% zZ4d(f6^?^DEb_-`$x7ghQ^inhsz5F&x~#lRn29C;0P|j|x{_fObhJ^GI;sgK5B08Xl>^Wu|h{;%Z=$mT}d zDWP^vw)i`cuCP7oI@(nk<7R=oy)`Y5Hk2$F3~f2=qH+L>OY=_~tOoSnaj!`eOC;@c z;)K4!eBDAHGJC@!{;HoY;Gsgj5FwNR@TyVPLP^w&35Ua%h(Z78<>C(2O+4@Q!=EZ9 z+;zdJE;8nChvOz9Kj!{}UgBbS_s4PXK@=aIlW_WYAh0t9FO!6#2b_G~F19!CrCd|I zvjH%flLbxGx|9B|(wYj%-oBMxe7)XKY+1Tp6lsi|g$8H=L|t%#iY8L2QA9wsJJfqw zg?L)bNPTr_A7KGNnz>4t>i0IOcH&~Da7~L!IDI^n6JXW6U^}C4QpNlDpFSS|S^BMw z;5;&SNP=V!S;hvClZkI)B@ht9+0G6p)0~F8ayKm5Z*_TP zeRn)3rCgaSQYC~g76h*}mCdF>`>wtDk#Pj{>)WPUbu~S9>EVPrV-}^p{2BM~2{m-bfe#_gMfD6BNz+@I8)s*CL%0B|^j9<|la?+%*zz^e>tYb*c1m z9`#E?aA7W51`h%KibSUxj+?8Ax76U2@a8Yyomk~W2~Ef_!Xniy)6LZDutZ#fK z+s$eb=C`tCv$sx-xKMC_)KEd$-&)DoZV^ycUi@%C94Xc%_;bDR#SKOC1HNPdsN|r3 z=8d7ZVXj=pSC~cM#7sItHnO?Z9>Oj{kbFFCkzWWricjG8yXy{6 zVQW8q|BN$b5o<6ZxPZQlKFhN=f&Xh~y5|pXdG`%SDibuIwneiy{VPOkC8q-2wN;G5 z??<&f)|_&(bW8%Ug$!Np0OWNzpZN3TF$B*H>^LdCT4wg=(O#sWe_Tjf>-EbCt~-{E zA~|oU5T8t2w-speFwMYw<)qYju~;?28*IIWSu-Q0jwEsiWu~+OqP6I*T~XM5!6=&P zBvyl_4+adNlARDGhax03qbAuzW`vi42N$i5i6jR{Aw2G0jeZ`IXK**5zZw8oK1wZ@ z@7z;vzA^Sp-8(iOHf+3*=1i?%&+%puxXW4NZ>-`kq6dL;<6<4zPRr&gOc$G-}N?{p+)^w}|h zF0nCSylZzN|A>^r+5`cA*d`gM@pYxV zuBf-pN6Ldn+~M)o+!i6g@%cL!lZQVsgUr5zaH&n;p~1bF7*LJ20l#SfQ1snx63&@+ zZw@GpfnJjw@&&kkrTW$ zd=v)RC1%*JFR)p{e7PJ+G%;8iJ7D}(=1it^eH7iDvQov9c}9jvOfS%GI1cdT%fxyq zzxext50t@-?um7|gofrqHV&@=Zm%nRRYRc9O!IpO=K^3Ki7cOOrB;M3eOBV{uWw?6 zpSDiju-JqO=(wr`)xPer>sE!>adMZ_Pd)fU>6J}NQh_b~eEHDI+4EnA7JLMyC+`n> z`0VniHB3>C0MwgG8is1>BMUVol^Y}7 zIs{~C3);lH{(!Nc{X8tlnG_G5tlBnv?l&9O06y0Rf$A|~u2sq-Zh0z1F8{*jY)0UD zy-dL$rHrAjgh{`xN7`zk+RF|%uOIjXtW4z~C*ME=RYr)xAn%DqqBC+Mw{#0E`)81c zz({%EC*hTz$NQ#WJ9v%~H~@r(DUtTt#3RH|-sEhktoDJ2Bfg`BT`J;@3QnXpopk2)DH9!Og!0o z$_V95{cM99pa@CQ<)6IBuA+}_K0Daq53@CmHdY^Lzsgr_g&V@2Z#h(cDLWU8EfDxI zu;Kp~lwXCI7PBRU*n%&=#Q|U@dus~c;ZPiah|h4cYEle@ysrE;S+DOfCPH$RJqAlJacT=`u*)}W83ru9k7O6*`L>j-kU^9l-q>< z^*wUhd7-{0;JyK-1#8F2bRZlhQC*!#3U(&MI>!nXlDD>g)?R;H9L^x_LtQz`MOOtD znZ)%d4r~GTV!>=i`1e1b4Uq+HHNS6IGz-IXY~+zp*Gg){4=sBaG4F38Sd#FtNnBv(r^Pa+zF*f>LOCrmWh#9Wg%7E5>}fQ2|pKJjUjunhIbTzNHKU z_JH6P3zwy;1!&gXW-_&kH)*{YYy1*!pg8Zv~d>w1AN`yatQ{iHx=n z40m5Z`GjY^LG_xdRgknckg{Jt93C0b3kC;7HqJyfND&zYT^iR?-~BMC_qLP~%E0r- zBghZ@G9J4%Wg$7W%D}!n#sAzB8kzU}2%9wU{uW1b036?Jk(7Ot#e}g-XoWlP2@Ho? z`ei{v0#uwqSSJm~UtTS=F!Hon;xUP)t zM;f6p_50NM#xI8+gZ~w8(=$frMv8=SQMbTW6bbJQj!8KCyFn8i2f78;>sjvCPRs34 zBk2AHixzaoXws3Ck%|#*M)L421--TaJ!(p+6>Fpd&yc9Jzk}9Rs4OP|}VJ(qrb^@jb2*oVsvj3z~^ zU71R{(V1}TA4-4*D7088<#6PA$V*5mo()`@p*lwVYD#Je3ldMhY7_O+onztj*alW& zN3-wN|G50<)t;Gaj71WqabE~-0onti;5c{L8X+0`-Q_QxwtVziV zvp6FhBjTT^cj=!ZO&pqbogPzS4!*6Bn{HN7XFsq!GS%RkDmdsl!G@%;xPU({I?;!rXmdH1S9x_jA*mcc#(Z~{qoyenDlkoG6b#o-XDB~B7Ytr z)Bksu2u1P$$3MMvBzm|>0;(0#nlLRJ?mpz}O>R(}MEUv1vco}E95oqhlcSb)vqt3F zca`YfF$?~lVMj~x{vx03l}+?os(u032@w#Nz0>T>hD}rb=&@o#ulpKuTMq6<@!RAC zAv2vW){Lm%L3PbFhe<=VB`Y` zcfVwu+jjb$l&5t#QmVS%qPILHIa?BlqGnWA%nt`gtQc+q!NO==d7Dziv1Gapz8$Ii z7R`@Wix<<6!g4WX{QE&zqO!e8Qtg>>dz*zf${6M&k7Yx?{Vr&A+ho=zEq|)PI0&QR zi;~7Ul+liPDle1W#|ht0sm)^8+H(10aDd3Z*4@SKN*d2WSEgY-6g<(BrFzY(%nai} zF{+$Q^O1|_-k<5e)Bb1T*m=UP%Qb?A85UN?rsaMy;sDt0eNJ2!sHRw9LYGc^fWnL4 zqD^1fYf&5kB|zH0V5>6W%v$N@89>7?cohhYEofa0kjvWx#WtYoeV8+B_nvI)t-M@i zpFcaT)g#1m2ku@6E-(Z6!}tqkgGcaFX{3ODVSBy^dsMm%@;F&0v<<(V9m|}7E}*O@ zd@e<^}52ri6G7kHC zyU~;e^!0RlbI;}Y?a>4Gth*q^xG6GUAD#qg2W`q3+frmMxw3v74Z$F$`s8=jTL+$R zBo6HMuq5-4LKJ3AL4ya}(S|Uh)^~ED*PPhJf^PYB>%Z-9UhA;?VL1D_8%~@ns0=^z z0m;u7+X$Jb%qCUQtJ2~Eu84DhoCy4>1dOi}Xb*l>)(RbbDTskj`u`J_63EZTqlELu z=JAZv#Wn!4Jgz-%)PeQy;c9EReZZi>m?neMK+VLA=T4xTAxM2ybGV0V)#Oi5xWBa* z2_cn`{LH-U21`JLUBF0#P$LyJg1EQDB8C;3El@K-WH0TtpG+m#X66ZCg_dAgCvxIK z4!(+6J|}IdEQ}O;LI3eZigGbf-+Q31_tb*<)MKFc-pM#R2BO$=EO=sJhDoH5Zfy4z zldw}{?j9azmMWXS?hY?K-jGmDaur~7t=3BE^rjFQ3;32`W5H;vnjL}(6EeiX_O8^p zxEJYvhdV~{pS-957#8QN(no3hh&Hp|`!Aw9+QSTcap&JKS$9w@vHK>!De-UM|7~WS z6-8hiHIQXsd zkPs?ujIAu>B&8rv8GL0{fc^WBo5Px+bw?gRQ|`l*yqCb8t;Vh7Ic?UmYeb=4f$lH(A-c~(j&n^0+)(R1 z_%?^00G^6+NvHHVAW`XTv-fyUw@F~dDT$^6GW@UOKV!#ui;uk2o=+haYs|Zw-V@aN z@HTwFl>E0YYH$HayB(h2E}PqI>8;~J#xV;01RedM_dkpa(u;gl&3dpYplW)NY}iK) zf-b7fOA@^b$RQU(G@uV&ChJO!xJSW`zCc0)<1V+5bnvU+r##$ zsJdD7%p$HS$$H2$RL~KU#;oBD@=QUINV`o*;+^BdI(uhN~k>Y7S7ZxJ3o z3#$XTQ$nGhs($Pm_%t;ZTsAj8K)YR&EEL%vFaR@8;tOBYh!~MLfJb@cGSi{Pd|1CM zpkLNFEkWL7<@@H&5AC99qJ*8Gx-P%ol9#SMMA93I37B-3Y<1f%FddyG0>*b?zPck{ zZJxRJM_yj0*=!>{=j9Dz6-|y0n2baV$#rZd1yzPSt&_E!DoPG0ZB&eq&rfu34JgPS zUpxz`a}a86t_;Yo=e^eO1?MX&(q~{5BRMGpQ%bi}cM#I$cNB}<$f`X9*-`ay_}U!* z&Ls_3Uw*x8MlT#zl`xjTga+hkok6*x3wagN@2*cU5kKTkl+gZ$-+MrJM>G&^w#HVj z3OE;tFNuGBdA6)91k5*f)z-tBJY`)}%N0f4?y-S$@n3bW?V`3Gv0HEl4I^1VqC>3T z;YCDyYtXHEs6}f;w)o|dMz-%ac-_-$5d+j)n?4cFtUUPDicc|!XbI*kJzTu77Hh@9 z@q(=6lT>?ILjxQ&C4xRZ&0|P4Rm#Gzke(&TCW>SBZ)0UU;)xSd`4p%fAuATcCNVR` zSdY1M*Dfzb3`NbLX9v>u1nn!&#n1geJHZle3_}BkO{PNWP)tEw`T#1z#e&GmpNbw* zT*FY$pz0`5xZ(BUwMJ!?i-*n!VxcIly4kp1${Av7XuQ!*&hEsr;$8$Ti_s0wP@=mX z5N`g)5?3UE+dXz3|Mmo>J3+M0&`U=9a*2c8pbgVHpRe;H!EQ^{>J75bwgcCHMUTa% zFubdmx7Z$07$&rnCD>E{MfX+Z6nS)rfwvECZ{F&8{3uI120_kdvp~Ydsn>1)`#T;N zf4Ge2r~i_appNOyXm>!k%gKoM|jKS2GFIh666G ze6|dXKJr&PBR=L+Aq*rTERczmU$b6f0vkzCq#EZt>S;IRUzJf&+icB=e%c3et%|R_ zJ;D+_TGT*#EAoRimea=-huVps8=D>>tx4td1%5shh1;36@r7dJ?~$c@8tJTeFxH4( zBk9JynM4}CJh%G~xqAPF}X=8T&$r5ga^@lQVb>U>rQ;o}d zsrn)F5SKP@sxD}S)nRT)x~nlI%As5$wV3J(G#_T|;B5fvv?YePufNL05+;ZnXQtaj zyeo3H2#Qp@HmH>XwH9~>+4@N1C-kr_blyK8O*a*L2&uE)VV>d^=`oHz_W;`8ec$H^ z;yuO-$pZI(fopoU>P57S0^!3}$up4>vu>|t@7r*NU5YMs>6|B5mXb4duJ^$3L5D3Nhn%_#* z`Z5#vhkO3lV1CyZW7>e48hkIoQXlDiYeQ`EET$8mss7`{mfuE^rUAY4NUs9rH zSb@V~8FFtpmf7N)5WR%w0atXGB6(asHCiY+tj5|+kXX#S4MA5eS z?9rTLFt`;!Y?IPTe5O!Og}OL$b@;rU5xOD_-n_BmlV+E@ZNMzEtZWG!r-3F#Hs?V$x{ zRmGGWPQ0oTl`R!|K4^YQ;T}j)60~iNtn2R7tW+R>2Ec_6st2VCJ_KZ0sHi;Wx*BO*9*Q~ws-X3*uMms9?mjGK zR=3}cm>dT}684$s{~Y!er?Dru7}w9aTR*FT9SuOAgQpt_$4bo)pF_%WS0Vso<9KIP zN6mC+aczDfGn?GUQN|(hq`Ej_=02h_KMJKgdVS)Z#8$e9RWK|3TuUNrB~`Q7OdIh; z>`TzFo|4Nk`L5cy@vW?~2rANCl*5E&kgJ63*oTKRKa_B4c~KK$V_v)Tjc6bsLf1ns zoxR{6)crD7x1EJ1yVjY>PX3%37zrO`Q*GI*sW@8y?WVV2)PR=3aMpkJ|#7 zDCW)^hKU4NO%9Rt{(hFTt^O-BcP3I5xX%43vwbrhTx|N}O5Su7yIWVq89(+d`GqR> zC`MKwL!^imHuw#@tToD4uS1XC!!y^0T*7*nn^*=TgaDux8#5!Re^&X@9i%tYj`R43dBgyCrr^ zEyHZDJ!JzkzmCZx7i7;9xvO)Yt8Ge%vAq9RS7oz4UB|Su@48dm2@+Lcv-A?Nh45zV z5475lUhF}%jw_P`;+fr)Ii9QRQTi7CG6_u$b%XL6I)&kd$CnL^{J7Jgo?Mm~h==S2 zXwWM&6`pna%}oLT{N?DFR|kwFwzet%k^V^{q20iZW`30Yau{4y(7<|Bzd5C7b5OZ#Z*dreTXM05^a>{6ois#u<)e%CvX7(Db+Got(& zNDvF(l?7O566K&BjOiivq=Q168DTK-P9Fq+pGjx=Q^ybCkM+h`3w^Cuj!jK8^0;y6 zqel(ML+m_kA?ytFiqy$F3MFd&W)FA@#450&pKU&W%_d5ZRyFCBb?>i!7 z!cBE)>F!%Kmr;Yi_p&f{g&hx#1B<$mdVI%2>ZYc*-^h0AC;OBuf3=|T8qa_=zXgEO zxp&11>|&Mi>M6*04eHw!*=jgY(Va7<&yVB}lH8#+9GoR_Encpn-o97HjRXM)0;sky z{_$Pv`H-GSGHi6Sh@}GUO4KoZKIZ)Ei$!H=Oiek~r%njehB5)tnH05U*EoQ6-Y=)f zDgwkscsO4HjPmY8?TC-Q2Kt4F38Q4l-bZ#d5$S5(gQt>zzI-&}%Xfo*Smj9aGq+|=e(ACPui>*lhLb2w^gbj2mF?zX8_RlN=`!^=gMH-@b5#*QSkmIvXw0(gR! zYft-~k_JfEiFWNK4 zCwj-TS`K%}M^a5c3>Z$>MjjrSs@?uqdz>5EwWLohS_k?ZB@t=1y33pE(yN2hH~IgU zm3J~W+oZ zNEvMpTz}FQ?2oip>prm?GZnjSrG~bDpjK?M<43G^b(d;~MfX13Xl zjaN`?b|aX>22S_}vCQc<1K1Fj+Dmm_$g{Cb($Mbsy}@$#&YMTPpRCV|PFLuMiU`L zHuZaUCWOyMpcsm*%O8?U_GQj^hTV7Og@-}=xbdalEmoLZ&{2yQ6y0J%xwL|mM+bRS zG!cAx#yLW}g2)9Z!D@nmAIC-79F&%XOLlmv^r2zBxrXg4*{P7r(hNC3IU4qdNRGrA z#&PLY9iDEaR~(*TSLEy7i?-)UMoq5F;$(t70KyI*B7|)!H z(}y_G)m{5eaw&zqu$P}ZGiHXzQveD`g-Poh)ttVo21i?Onhc6(Q-$^?RLX4u@&5^j zukRB}nJiyKsy zJdi_%chrtKK~&bv;QUu#uMr%9V#28nqNqB&e829{lH)jx)g4DA3ffA`yX++<=X^Mf zmyjf1cO3uEs;t0t?2l!PVRSnKjKAX38@cBkCw_kPG>k)=q9O0#hl7VZX90#1zi-Y` zr6Hcoa}5@#uK1dtuQ z682e|MAaJ=3LFPik9g?(GY4~7X7&y1`fo2Z(G_lh2K72BH=G&=k-AyC4b&Izm<3=hRrX#!RGPkg<>nXr5d5UW%KPbI<2VoRr zFcuFXW3;;eN(-#Z*ZRWyBhni~k z_CP=jU~|9VB3!x1ho1FGfAQ$dT9a1TXVf?eN}pK5JE_<9`~d>d9U zd#GXk?j%rnLP}?q4!+g$aY!T@rvCgAI%7_%k%w4_0W89ZN)i-gr5;*918beU*hR0W zbz=Zc^VWTkT;Ng?=ctja8A_&qS!n5Ri_7XDFV_YrqxoDuQ7JEnENkJqL^oj&oG4JR zOF6}S&JJEdR`OkKQ~{S|*8t4$y=RTobm~OcMC*Ra2z2gt79`1Mw>AI%Q>`pJYZi-M z#r`)>#)l`SI9Uq>Y0`*vWxx5n)s`I8fJU?c$5#Ha^I@w7N*;>w;ghP$md zD7u(Z_5=**m5y4% zJp6SsWrWYqt!WT3@D%)mVlTH)&vdt02owM-C!f0OsbT)${m{DS(!2R76q_xC5&wk6 zs5FX}6JSi|0xA%DYhFxL^jHKb+zx0AH~L6EhyG%s zYVoZb1X<(#A@cC*x@=OG3QW(fE>TI@gax2z(YaBLt^6`QI6ZDi)?fRAYFQurmPD5D z-kXeB;6_ryp3pzP_2he_5I*)JmJ2YJt%m^+kkLA9D+2FRprpWxHb! zVVM8P60PAS=&b<&WBoE(OZ0V?si5agZowQtfy0dy{6~DXEQwR_ zn*y9$gvEhkzEEQcpN5;On;S#H=?EW{M7=YXSf2B^Vx9QqE`B`V8oF6KrWHFWxa?H{ zmv%KH)<-_(u%PR5fi`Sq{$N>v(+H7^la@OCEnapd@)eXXC5)hKzL=v$)MYK|CWXI< zLd0@Q<15)h153803J(mFQj@2fQZc%@jN;cUpYll}mPq&`?;ePp*wWY^dAj-ySbvp& zEJLwNWklDEPP;Xe%os!FE?Z$L=-If?oE0W=hbq;A~#>ceK5;0s0Ony#z5_WSje zrMGgE3vMrA+-Qq+F!r}<(v4ER+58@;dGe`#egDK6vEy0>&cfhGw*j(>?ZWZ<<^P1fQV=#-tuDDQ8w_5X@NjVmaR%R;2tmd{-w}fP zt=^5((}9!}{qz#w(PsxJpF1Mpv^ZlcZ*1cqJUyakA&^%J`mMGXbYFWs_}S~lr#Yon z#G9M|(j{VsBe8&ZP{34#e)Oc#_^-DNAV{ZyVJ$}j+SP20kH+@C3PwWsl!|1@Z1c5! zc)wNW`Wc3@$&;Ov>0dT9^8{E_Fn=%$pIiG8_b%Dm9LEWd)=J3G8JOA->te-t$ytoD*AUEF@d6_S!q&G^1xg!qa)wb8S_`YwxS@N;iZ zyaKC=wNf!uh(kl}s8GL&`;tG{tGSjm_7)KrI?_ zHwLDKa9r^M!tt?Os67`fn!^OhA~yD1(%pnGeuf}IA229;)R>qZ^xh_r2BMjj~|!L=jZ$fj%o!ubC4` z!4e=fjRSD=Vl5-It7YWyWf;g03JyoAiS4WBsJY~x{ojSrWn0?=Lq(!p(?V40e7=N) zJ~r@%ncw)h(89%@pEEtoXotdhpO)|FPg%3yx?(cJ*O_kEw3SpmK;}aCzBYdx^)ts4 ze$nRl@bNzzek=N7(%*O=({%|mj=QqJNSHmmb#zsbLkf%2)Jzc-^tEUbI_DfiIRNaU z^Q*__C@z-bLkVOtbg%q;kLQOE5lxe-jN(T?m0oAHe{etKix9r4_VN^2^9I=fu@XWR zKcMo(dLK-OwT7gT0rVu&YAL<6f?*G>OGCTaj+#O=&c+wVNtt3S(NT_qPNyl6#Mr~r zS`K%XGP`l4v!-SI?<1J?$7T4@Wv?n!LG$W%zk%sKgDqF>YSLI$)o3EjxwWUBWr1ZY zdl0iOWQ*1u5|u$0fYYjroJ!&IMB-yUIW$%XyLG4q4o_Z#8o^j8MVq#VJ6Qm{L!4dljA6g0g`G3qY6sCE3GX zGHo$a*-TA3+^qzL!5$I}^D=&VfzS}y`2Pg!Yvi~HgDwXkPadU+a$oO=<}G&b|Bu6@ zFY#ibr51h>2Jg;Eyxn0asV@NGCM{557|BCpBT$6+5nG=`j_yETz+tN>sENS-kv2l* zI6BFT7Hbw!*Zr)19P@m@GhOewzr@wvBwc|k;P8gQlfbbXQ^$RwH$wDKHA&{l z2xF_%CXW>M8+YYU>ye3Nnkk)GlPCcns1l$=0vh4F;Bv&fh~8aFxG zjgGn6UoGVzNz4QZQcTr-0~q8lz)PsRC2ol7ErkD?xY%^+Ki6->fwgRn?GI{UB+$8d zGbc;`Eo5ayQ0vb#LpxZLQJkgE^T02VoWDnjhm!>+$+79){) zrSGtO@Z(+H@4R{9+ZE1f+~G~2e$I5odV(1K09M(PibfPuAZmnXGb3yOza?$bUX{m3 zngV)ABoE$JPHQi>f>>9~Cb`=snY2Dg;z8tiOI#fS8Mkw=2?9&e9dXe_sJwXHZ2a)b zHJH6aNH2+8@t*#&#aU|I!Vl`l>{ce_&z;!Ptg7graJp8Y{Ls3C=S1l6Ukgd$VezOo zOvqEW({v9Vo6>ga2Jau#ivW%$=IN6TN4bQ^!9Gw}I=mnFQ`n;wu*5GWa^#DSkEiEm|xep(+z@yD&&lQ*F*HJc4?H6XK+4H!Jy2k z&DMDkk}VrkTUxGyqs$$^!_WyBHO~*XcgJI%Ge%Wr4HfvezzsqaN1g)TacOfXlhq@+ z>;^T|aBOCP9F8WGpkm!JI|H-HYO4)`tNHshgAoeuBA{2_-Qs_?R#QeE6>=t;)_97(VJEuAfEFBe z2AN#KJn{9kf*V?CRBna9(yAEh#{thvoO?qEq+eCoSwCuEvTx~_3xWgY4*t64V48dI zDZ)Xa?57}Py#(LQ4SD-AG?-_KmXxwfBn`?O)9Tbjyomy_mtjT5%wPM|G0_d~-0rla zu^djhrdggbe?L@gFpXfFR+AlC>9mqlm^DzaK zv&)QWbYPoRGl#%4CDL#(VD76_Pw@W5nT%%vZ@9)co%Qop66TlF!CIZ%3rfHV^*1{O z{x>A#DplS$E*yDlF1lEl3;zNg9q(Vg8>(N&#A!%>aAp+OUlr!cHLR;l`GQXZOS_o!t+R27>4HO$JsB8ML|#H#DX*PsAJG0Kw^q> zq$i2=P;9o9Lrss|Z6j@q8prPO(D_5~d1hR(e)i6@KZ0S6_2$25E4A0KG}d4fHq956 zPU{Q+Oc99uuU8HR=ha^eJ0dPEGzdB0`oHcX-^7R)%iQk8efs-mO@Wl@Kooxj8Dtr!avhR@Fq6z^UcH_6IY=`?u!?hYC{iwX8>PLA?#>AFW>)lltZZ9$`H9O zk+a%3APFe;)&(Aq^|eO7Jmi?gw@wkSVtb$Yf!xZLnK=0NBr~Y?U3nmeiY?nFJQ>2C z1D#+@KeuUo)}Maww+bjg8&%0T8U`|o>5>1gSx>wAv5T|g^gR10 z^ArPueJOnXLBSs9lO=+~7l1Zl>!A|+jW8AsOKearFQ>L>s$TV^A*t5GtH=Zu`t3QB zFSq6|=Ay}O^Du|7JLTxBkQxX@M!n$1+%SM3s$C#KN?u<-c3FF~r(Py8_CKKt@9$s9 zt`a(A(kru$=bcDVz5y9@C^5k|I=+4B^6U>*tQMf_u3#p*M2>?V|36`UMKot0E z3?-yMwHx@w+*h9u|9e~Rfd>Y!AiuKW?Y__0Oh1GE5^lU+FNh<}3LzLgY}4qA1lG#> zicmV7*Rg;M2=mu{>V&SD4|rhP5mYLZc}cuVX5WdR}WyssuoM8R;?UwBc1N3;vEMYG{iDAV1=^ zjgkUSK2k+2S_M8Ml|&kTXAK=OYxoj>g7C`a^bF`n>2*F79FZ!0Lp(q&yiTZUwnnFq zn=UyDfN;jm`c+gYU}|Ct*#c=&I+y%P;{{^W@3;HgEXH|($5b~<%z@|ngJ<}7mdm{t zRPWH(c2@x(Z~9V;rWkVs`HxpM3SzCWPK(Gqdb?b1)qT5~+v^7- z`@pXW7!6*TjtF&S9>{k+I7O*u#*2hVnofVM4 z%0$dqumT?y*Ic|N=K>%Ambz9FMP*gB>i%QB@+7BQI?-2y>!HkuTiAHO&wLofN$@f zu;SKPnKw4Q&PfBsyt97g@}E0L(~5iZNGX%=9KKM}=ebGUWn`l*q(@~7m)aO?gU*9N zx;ogG2ODJhsP5siLGLgUdw9&L&A<-U#;(6Akwmk{W&(g8D7?wP(DQsXnld!wsm*_U zaKPo&(jdDq>F)m-_6naRhV^PH1_y$&2NkLhh}|R;^uEm1%mm7eZ=l=hcTa15T{~Jd zo~pY_pfI3_Cnc};;;nDCnITm&dK0b!$#N-D(QYC5<>SggU`S(Irc0^;a*N*`W1r)X zjen-BiD}UnxwDfc0{+Qm&-15x_xw*)SgH-{l45I-Yt|9m7RYPW@Bnb!TpFbQw6hAZaPwNh9PhLo)3{EBPUcV63Ufd~_ zzM)j^db9QLs5A6U$J{bwF?m@kg(h(m7zzh3H*ji*>}5-;?|CSRzOrRZbL1ON>}Imu zZ(vA|u9xBPwPy8K99)fxlj~a+4y1?1k3Uud*Ty!&5|P2~@JC+ow_?LMEX@^>Oncy` zwHq}cPeX517=zKiH1wmWr41&<`znkrK8ozOh&8HTdL5gf2%~$hHUI)&%br%u`8Rc} zjUUo*qe(x6v@&J>Dh`R}MXVLVoliSr{H^`QVhGdN9#*?;NexU(J=&kZ<8JYiKyjN0 z+z@`88O@ag4KlkDiGrbdqFQbi+>@Kb*B-2`u?AYelfkcggwQIdWi=Vr9pd0Ja zRZ^sAt_V3>S7jyThRmf+(h`FY0`obVY)F0HyGb)}RKZ|1bEIKA$T^G(sJ*+Ks9r)F zG@UU{mB@i1&a5D}liLS`-Q8ZJ-+@N|OM5Ov#IOKIY`d*GL)zzTf8#Bxb6V@2?(pWl zMNyV|knUgl!y1aO(ItO{;CCqJPrPHllBH$pXPjI=*CGs`u}z@qDDL%@hkU8ug^ zOj!q&h;5f??JqhQtL->JOh$H@&YCK0Ce^eshY;G>q6GW<8|=^aZeOzUfB!k^wS%rd z;%^PV4l~GSE3)1s;0Kz%!KU`5+V=Iw_PcmqQZ$w=7s^Vw75dNizeOp=rq^0o;RW_B zN6_`66cNNo&6JUQMtizo+f*=B1v*26p~8C~zr8GJ&gMH9ikv%zD{Ien@5bZ(bmx_X z9pOX*Qn%ks1O>`+)T?F(XF^?t&ed($K@2gTRJzqzvPo8Ij)&{P5%~GXk%CYZPh`fP z_iMYl>w|3#fU+f~EL%k2ko8pUujMFp;l}0U6#BrqsTHo!^h^%GV0Id$X|~dIRS8lT zM`9V@#Exz@UJEMFl4PQt&n1k8E>sDN(?O^u%*XS~HGSQMI;i@^&dH6*R-o(Th0`6* z5(4U2nhBUbb4rnCLr^YSyf1dSjk^KKPz01eFgTNd7}GBxOraF5g~(2H+&;Ii84hOg z-pD7@@k{VnX9`-#lYC|;K5m?R`?iL05kF=Zz&6duN5VzWkV`lPj}3_{tDOGkIbjWA zgq^#{O+LwkZ&)SMS6#nXS~G&8;lfVt&mEBOmhIkKA4z1D)v{p*Ow$OHA${arj^Qmr zvOynF0R@P+6>yi;#oNJm|F*wed@IE_{@VCZ*!$&# zDYA!`us?BRiEBNHI4hUSZ} zsoPRTuxny822Ukqo)lajK8GL67`a!*qIAae%;7Z3Td8ENMu2hjo|ZxRhWIK;r)1;j zzC!KB{~e@;f%VXK?FI_J{Q+J+AUhCIKdYeLb66b{T|@iyJQSqQf~1WQIxN(aiRk+?29j6&ZmAu2auAC>PtrQYsBrl19$c_rywxt* z0(5s0qpNP5zQ3!A3_E^)??1Qlf=#>^uHsZIrw}wKL(fSWl?N-%IcprSdeYV1j@qzv znWdg0wf*e7piWh7_@X?ejfP0Q2yM?lj8VP+uc26R8UqBFZ_-{*S0qu`6id|a8Yh^u z_JywZxahtgiE;pin=dV~P{?HqG_mi%IAs(O4%zi-_r%-BV{r%bUwoUqV+5YskUPwl z`qkO5%1D_zXYnQb<}Bw=g*Pn!`gkUHk8Hjbq0o)pp~pV3L23~+IQG=^q96|{8ss&egOK9^Ef;ZSo$di*37K7|?NE-gT| zVhjbigLYWp*1PgzaTnIjbY!Z=%PcO~PDfpbfl)PorZR`k5g>!^9Tf=3Oq~ z#!W#HxYFfV0}@$GwN7ob{03eOEq4{L+tjPb7q)?U; zn1#_W;{~7lzm0MJxSVWq-A6fHOOuys_x^O0QlZ8PCj@kvpqT`dB(AJ*^>h^>pRa6li zFqNyw@+i4Ftu}-(s8)Mgz5I*`vhdstCx90VW0VVAEQ;2SHu%Gvp0~s@8a-AU?$TYo z7{UX21cYyO0;s!4nPnt9`LbJNYskcPVN8I1mk;Q02^pdR8Ue%-x zniGZ!y<2@*NOQ_=2sqrl0f1KAl)P@ZNfQw;v^m>gxR*!?nO5p286y{~=?stad$dz8oktU#=&F)>6<(+| z*hTIIVtRwfp1qbz_Z!}$J6@4REARDNSVa;h(5iyg3nCi{R5~EEm7(F=?L%weS>7yV zClrJ9yHP(5wuv{V-f*{#^)}%rFaANF7?E9Ue$l@k*;n{8&btr6Iy&K#X+2RZ_v@a~B=|SEuqbu)*W;t&%|}TQ}8$v#Eds z{45Dl)dvK2v#A;psQH&5RV3k^Nqr=kmw{~%-o*dbzC74ql+`gBZ{HZA_%(dyYzL~p zsCZ(DRV?Q};U^rzGZXSjm(r9p$if&)m ze0^V|HW8-%8u!s0s)91|mDi9$6IZ}6QKZQ--XOEl=4{_a2A_l=^-O_?ky^6Y&Vw{+ zScA|LIBHy;A?(_Cj^D&w7BNrpmdurs5aD8N+}dPM&H1#!XLzLxpJ#vI8asUOW=V6E_hhh!eL_r=`<%C(xtR}wr5oUzb{gi8XZx3JkCg3K@ze_HSd z{G@$}7Xz%z7nVl!#&+THp-zHZd|J8FIhqsZdlW!{wOZwbIsm14ZfE1x8G^_>0ngQv z@sEP5@{y(NT6#4+x~8iWusF;x4oPpW9guWmUPd+03Q`c7%QX%5=oz0C&|kA`id16X?7ls)JDk z;2ysbd1bjqJCxo~8e)wUT9$?CSbtcj@zh~UqP5RzPVf0lfx#J$Dc6qq)l*&ki~q}x zXXo1C`6FthTpK+06#_u!CjtJt@3-z^*N|nJEvZdQV9<%9^RJ;GnwApUuonqbizKJZ zi&FOBmH-10rxg&2zo&-Hvvb&H5goAN}aZs0p-1pxfdOi3a#a zYr*^FAShrkLo}0?2Ps?b_9LnDCFsdDP?@^l1)%k!JSp8Rjky<9$00gC9t4_#Eb;D< zJ-hPXP^Ch(M5POP>u+%g8ZJTqdk3z`NNAv6JnXK?Tfwq#=~qNxAv>xSY~T7q>x^(N zphyIH7B#I|xfZ8Kh;vjPjx1_gcqanRTbpu@5#j7@BQqWudX-BjqF!pJt0ZT#ek~D; zx)yLEudV{=T64@&q`bau5&7Nw!M&}i_x*5j78&VH60r4qf|ll=wV(#Ns5|4(Kd@I8 z8KH?Fa?s~3T>+5}<+#$kEsMiXgeb+y3+6zGh7hfxO z)Ab@4o+8j^X`V`0N($#&Fkcbn#$zCpj}0_-uTwnA()|?#QCJdKPb%-M`l_^Sr9KXo z!B7UK)5$LBxqN9n7-6alBa#`EVB<-8S$V*1E~6$@S{_d5A&`(-E1!$7GQ9(SZqBnwyF%PZhI>*sHuG10zDnm+Qx%<5m8 zQK1F-cO#H%fus4SS@wLl#(XjQSxUKlwm-7sTkwuM>{9vC`RQ6${-0!zNjXyl2M6{U zr*}|@)Aa7cRfr|Fs|^;F(61CS{NeqRFQF;7H_u=Cc~QrB$bv3O=T?i29t06w<; z=Y8Z>Ra4{ir@Pi8;pEim$z?!Uk+V#g-VdFGp>5ccW5$=G^8NcaaF@!fkRQZd_Wvhr z0a0h+aw;5xuSOqGG zW-FjOv%ovF;rsB!JPmXU!HV>#o0mpDxHB4h{~sOY5>@4qB52_K)5z?3{DAn&tnjt+Y z`kzeclX0dJbPTYhZi`^<7chULtq!$F8mgC@`MtH(aw9NA5(udw^jD*+L{Ut~m%7RP zY`(hpAXF9r^62%DuMuUaDK75)D#433cKul z-5Y)SaZRgRm_wJ|8IO`NmBK7gL2;jYV{XL4$H*jkk)r|?amJ^7|lqHW|ko&Pf zKJhJn0|VJojoN$Nckop!f50x0^TDhn=X12(K^0s&9^Yt?eNxyd>4J-N>%N7BQK@y$ z#O~il4ij9GBl2|o1p0}=uDLMf=Y6VCZ)zw+eVB4-itMCv%FfvaoS@$-%5wy6DC$!2 zjJ*$ZCL$fINq6E_PsSQ0ZaH$8y4>lPkm8h}d)KY$+89Fp%^%6YV1b4moOQ9sSHRs; z*xvFbl_SY8Y1eS}9+cOjoGZ|}PWdC=J~~djBRok2AJ~dE4$G}}#qHFq-=>1VEx6wp(GP{qR$ z{X(9DD}d#pv^8R+{ZRu+R3N}Er3RH13JU_#0fGVf3IFS$tQN(ai zYqzF0MWP>a(*obivSZN3yk*-=6^^rmkTu(+)_m*1x#6_=shFtw+D-i3xs=-J-@yg6 z4S8!lK{hmrROI4T+I&7AP1J4=o#`9ikW5(n18tn6S9?4g!V8e^MeiesFm$?QdO3KUJs6bgo8*JFVEpH_pe%XQqAX3T#HSmz+`~98jP{YX_V?u==LFQT zSM0mYmZT4>Ha01mgD?gH#7`NXX}DXTTq4|;{Ew6ymYvF=dOoelsUsWGf;(dB$=w-k z(dJe&Rjb?$ZNa8x13%r-tc81QtY0e?CEgM&UVG>abhrcR-6bJ!ln%Q$`2EQWK;9#< zo_WWkjkJH4tI1{Nh^zCvCuEBSM!GMyq1&@O7{&qAT**#qZM~7 zU!e0G>L=lT>l+#Qj{$9i95E<00*n3NKl>p-_;tLXBjT-yHjF$Y*S>0RNT_uK(p5na z6Sy9F+GY+v7V2aUbbKqVNF&Plu~#0v@O_olmj5uIaT94C1JPBoZaPl$;pPMC0G^RE`U3#6Qx(}+-AjyX@pgGDVAD)#3!^zQZXTv>006t(y#l2d{+V4V z_jwtp!^9u4uOd6uBolksSa#Tb(^JeH+qHpntnzxUx;l5nIlA1tMx7u28_ym!gMz^yy zC5L*}tM#M9Z)gA*CANdwO7DuL-N`lpTAn8Iq)-n7N|?Y?ZyinI2hUTACz%d(Ly7!O zLEkQc$*QX|5sI^n6;0Gt`n5~I{PX=G$O&-?T}XrNauLFe256h#gikuWQLY8|;PLiQ zn>!T7k*CtY6Ok#Udq>;{Ru0F!q`k&&7$()+et34)y1(0yt$pSyeBT}Ex4 z1eWhSdof8)ZbM1*;Qo*&sAJ(lo?lWWGfj8T8Rta$aNO-Bxi8T%JEbXgKrR&6_+`=1 zG`s4dRsBdx_49vzyT;=8Xr@Q>U?{i+$`kI$`757dyuxIBpOj#Vib1 zo{8|(JKE2hM&7dQTYiy+{i@|%kffVAh_bEges;E=1_Hp@Xv9^F{jzoQU}!@k@|$vT zlaSEc%w+2sCGPY$(y{@zS#_@gRBrc&irkZaf^2gXiE2eTK+YvFM(x1_3=2wW zYa1W*$Q-J({dXJqyh!!vq}bLAJ>ODdnjE_NJ8H#g3UpO*_jlM%j0@VOMl*|Q`Yx)L za*!VZmX5zRGIuLPq!ceDCn8}z=dETARbrDqrGH%q31%u9W)Ln((bae!!(h6?yz!5$ zmHw{xk9c=ObQjI?D<}6Q83!l14^<%^1TGsx zLE96HGFfLB&aUX2vJz6?j11R|S(CDf+FQ66Vw?AJ*nJ=Peuuyzx>xI;u|5{*g_BfS zD>&Mem(}HPpks_kVt0duv+Zlrqd4)@U-da{?&#AY8wcx-O6swTvgI*d@T=zyRXK@W zS1ZC0TJ4cXv6N4@M&TAx5))Tz8Ncp8n)3WtI~A%P0pmES3g)#tC~4-gs9k--GrdL( zp*=L`JDP(6DBr!;(_}1C$)e}Fm?Rk+;ahIZ22#!#C>OVts)V17Yo4!!fTvB9q%oQ^ z3O9*Ajob1Rlb6Zl6o%XeCD9}2bu^rH0A{mjWVpfr^#&&)!`6I=!aD`9#Tpo>fm zPUBooXvH_aXUA!}3%pjx&u#j|Tj?hptOklC+s&JsWb20Dp%n~UJ%(;LbHDGwnSXw;NcW!lUF(Ra z&5Dbsi|Kj`&FF zKoOsQJ@(LjgjiVVa@WDTw9BT4es1sHG4V`9+BU16ufhND#ReYXU0+wfx|N~8FStP~ zCSuUuZT*+#w3=NFf@h11)`MsV z9OGB*=2Rr`3U{N9zt2w$I{0mEUR8NEoxj&(F(rIr^+3JY1A}OaD_asFekWfDx&i?( z)_1*OJW=j&`*bHl8l*O*nMA99g1w07sE>?$KownVg*DlGNCu`PpA`q{*PxgMPR-|R zI<=ugTtl`U6SoBl&fVRiOCmmgv?ckyX-AfG*LF|?6jRF@4NX*nM;sMASTc9#3zK^a zS`JHDP4dNSIokMP^!&a)f286Z+$Zc@f;zi(H`A~*=ZTdPPrr5m6#0Ms36_X}y!2c6 zwcO!8wqS3bjB6Y8my&bQ7t;p=pKZJZ3GPwJIZOsrtFQ^e2LKUIAG4mWI<^QS5n1Ai z-6cQ~Nw+q6Uf}2go1n$|SXDikr%Q}#6o_9IN=rbpFO{0nw=Zo|m&*WoK~%JxmIc=p ztoSKYFvx!(cDnHLAhtWD=-fF;szj_8Dhmhh-^l1~%Ndq;55L<{uq$#Usk6|#efvkz zct?#_x-b}NyOL1YO+YJN;aY!s!TkQ2BcPE{a743?S7gk`&hCW(>$Cp+c;m>t;v0S!tE_T1!r!>uurZU`>nwB zv!W;-p7rNzrqAw=pTCQWmyoiLwa|KvU%+6V`LMy&@eXd}_Ku@>>PEfdc#KattyEX64sfPm)$_dX>Ne|c(Fy(bFVst z_W1y$NHSER7x{?)AeITOMgv$$cH16b#~o~k^7E_K2Pn+?cE=!jL09=oc7eeIjzuPF zguE{Bese}$&H^`ZNlGnCaP53qxs?ytdw=Q*qU6LWemW(NGAqW?@SR?nl7Dbye4WOH z_-5d!?zh)DRu?%>^)Ok3i1(_m)msIKs;EmU4o zJjUkZ_kl&vDMYsFatsWQH4h649K?IS--66Z0e;>;p!RQFiGb2o^CNy z96*n~tG!rKG42+qhq+dA_ZV{2uU7aZa3xg`uEzjOpyq|N7{-%gJvgL$0U>pTnyLXE z<0ND9C&QHY3AYBjlisG&_yA_Ob+hnVrktBe5`v|yvjL+*8g^K+!2`1-W+*BEWRNog z9Ub(mWdU`gW{j&alqrUu=oa$`gajt9tW4}(njSb*nDk!1GDWlPUrUJ-@?9olzXU)Q zNAG>9JaHw7GH0}R^%3(|ibY#As=ED{A9S^BT9>X~)p)tvi#rZW5iNqG2bC>G(7@!6 zhcdwn*c}ZTRyTrY;gd~6-4t<`4$6)Yw%ZVKSQ=JXVaONb8lprJOeVWav@h5JEw&N+F8!^xQg`Dftsnezk)s!{oHxo7%S zsAT|Hd3T9)wwe}?pMB7b8C|1T(w11j|7!Q9%dSI{@-~NBeDCHy)Jg=+*c?J(-L_%m1MWw|X#ev%h>97Eu zw00SjEDs&?T^Tai*CeSj_?-j<)QEFs;_}bjH&^y~#pbSJ$RN0Cy6xfyJ?`slo)9fE z7^|+;w0Uky?AKC9)(&79CC$$K!Z*A0#3klaZ2%?eY)TwpNyd?I4g#F#%52>A{qz3R zcx}M8nz;NcIQLN(I*|2W_3Y%CzbFKot?q=y^7~I054o14Y{}cLhZon~othm^O|}K@ zm8+>Qy16zyW273wQjAyts0Kh@>4~Kc^2j3_HV$x9W?N%9B)x)-%1=m+I6Cp3hON4V z{F}@iBClY3HiPEBr#%OkJiWBu2Phn|RInQ3Lei69qCbQgtb?RDv z=?uGnxz{_YM7k=iY*qd-oFHJPr_J146#Gf=N*QE>zTdVjMSIadUO?$w;JGXS^j8X7 zjmr|xdJC?`By7s0d|p&~b%T?UrQo(wgCfN6h4?m^_3MyZLi;c}{NM@)ce38tXOEjx zC%2Rzbob*E0&2@}xB3E6Z+IMX9%e(7DSGCzuqhFdj)088dU|R^0o`&9dGCnqJ8poF z^A1I))a^)zzDy$D#?-va5Ix8mD=SCZNg9;LC2%Wuac(B=E0@b$L$J$8yTZqE`hUJx z^~1=T8nf=z_p$dlZ~Yh_a&|`#5q=8ex;5Od17B%FK14N39rDZfw74#{(LpewPUv0E zCew-9e?7}9=%t$p=%GIoPC7%Z)r`drfsN<`wj-u8G=HAU zdlv8}ttHfk8y}&mSh0x+L>#)1H8Pi1@R7(z#yU2WEVFR>H;Yqt|G*1|@es=86{%us zVF1*{K6n1I7r_xyHx-aui*1CqxR%wo_D2}Aw((V?b#aH zeKH>+m@2(hW(w`$vU8vDg-ZJ^SjGkxBj$~ld9CYd& zqNtU25BEYhhq3Zi@CSrGy=iJbykJKmvi$e)1NN8rwPvZQ5*94zZ0VXuORDCDi`ncp zz**k)8-TA|#tbn=>#GgSb>2)C~duXhv$L*>h@vTXpIht}gm2R9(Kkg3?a;ZP;U4Ep7r z_NIw0lLU^{^Fv84uZtjcNIZicYBC$*$i`vOLNSdiV>yhDn%~$&fQ7A$wYg z<{NovUcVuwlmWh9auNE7frV6HwQMO28nRG1PMX+uYG{3T6M_?0{;CG;nkSw+q_#|9e2&1- zL%pS1nk*bP>eKAmKhg~UWoDu`A3P%E4}yP}%`q{uz&j~8Az^(X4%Yop>^?34U4hq# z){3E@qL%P^T2q~8skNQ9IKJi9C7sj4t7)c1fu;Z#+u{YCZh=d2s@JJRwP4 zy;5I^R$g;N6%Ng7KiJf_S`=Xc9u*~gm(kPZrLS+K!e4>}+OvM78hlA%?gF}pk2ur* zm+}LV!(~pni38Y8(sV-OAx`O{quNr0M`S+UMUmS5EQP=*C4{aIAvq;u2@ZdG@v1R* z&hQJ3e5d!>h+f=Z;FN*P<@0&-&`q|2|nGmcZyR!laT0!r3n zpHP$KcUE4yarE@$)Bqv}!IM5^4J9CA&2M__Y>$)IC-3l91Q8XIvBNq{5@W)?kp<)maJeM4h)^ zb{xC5-$e7ah^p;Mf6=Kr1r)loryczNMR8KMPmwx}8-_!WW*a%GA6F6-V|HmsD-Wyk zNMQ<`BIe{GX8DeUc-l9@yy6cFwZUf!|9Jqt3GKft>%+oO3$XC|X5xxYTa{;NpQxB_ zwb;jcJG-nMQ@Q0}jl7Yz)GaOFsD(M|moig-Ba}>i?Jucjj3-i(jgRSCT~M}fkD74i z$>F1|dm}yF)V~IG+h|8pueYu5ME4M6xYid1XL{JT1H@*%8l0B6MXi`VvcMsLEn@}liEQ}nBt{_vvwmX#kM^r? zjwVsd2dzXshJ$zw>m9bR7g_}5mnoN&OAR^D&^GD8gT0YTF1bbaVy~qtY${f)fKCn*)@D&hldORRCQ>JsI~|l>X~idWWYiZhU3O(t2B}q``0@ zV{(IoGYAc%ZbS~4*uX)A);M2_XNRMS3aYXoOlB@43PQU4Ib2Wawe`>!ipd$B#sdbS zC^ydtcdz};CF)_OV)USu$uNIEcU(0&%YP<0Kb0Mf*E|yellB;2mu<&4^Oj~BqaR~- z)IpA~bm#;Ptw&pUsr}Z>l*tO=?^u;8rKFBH70p68M#o4MeW%+x6j7EadG4#t33Bc) zg#yfn%>Vu;d5#*9!vNg7D%2WWZU$4Ec3>PQ^BmW? zo$(E@3Sd?l6Fl#$H?;L(0PFxZ(XMi?aOB}>uk!yK?lXvkU9gJEjJ-NpzwzFT@D`JO z2SpkFoCU!@#+9Xj{-Le?8gkv=stiBj^kED<-W?}9p(SvAx#{K-DLQ^I2o(ynxH@K% z|3OG0x1rqc@8!{X{=vCJ3ngC(>kOq`iCm=XnT@7gkqOEQQ$t1YW7O0%9;D6y3dp^r z03^m^FpfD{Bu7+|kVgHFfUz)#XDX-hUY=L$YP0P;&p>(Y7;d|*$)W*sst~~dJ!Cs# z8A-gdfnm3P)Yi`lCue#oZ~t_K5t7kic|qFd`EmnR{(?ve($ zg{shKx;KCZIze5DSmc8gn%^2D=IIP7ekER^1TD57jmHpJ@>BFfR(X>xI-Y0G3<=n^L=b!> zLl=iw#W}A$baH0sfBI3vYW@Wu!l+leUQ#0#=GjXJ`Z1Bu(`E3u(y}FQ=F7)WyN!!AL!q8fQD+%awcCBOHh%y z4z=>~JSQCFRU-o+MK;tJF}4^c!1LzUx8e}kUw3B$MYCla6FhPOE&y{a*6;31_qKu zjHgAn>m|ewQLfhh$hiVt=t}mV`(nG8Z@=Cc^;2?bw@VVs0m<Y}xv>xtxm#>T-|Vbn7uuc6}y4J7 zqB%HT<0b8HyoqXJ%B~zxAJNj_+Z9eue&;m<7_w%tF;0644MZPJ8PU$V?NB|;*ga`xjY(q61^cVcL|B@Ey-W>axArLiM$-kT zU?SJ{!?y}CF`SXWxa~e~dq4Z>HXXTLCg)SR3_0_eZE3h8YA@mdFc}0t&9+>}Dg&|* zDzkuONC3w3q5r)8;c0RHd?B4vOUjmpFEyQS5aIe^G~+US97Ch)4=1#ha>&JQ(XimI zSsqvmF98B)Wn5K!4p=_qI1kq9u4Ynx@Gz^uWNxhZlLg3K`TRUt#xAyTw8uob&YY&$ z=e>onIEO z4%QrVOeLnhp_`WtOoi}hW=Yy&azm>+?S%tPRp|2)IQ;6}|C0zeat(zuC-Kzi$ zZE0Q+`6`&v-zUb?CfY<6G0Vc8p70k0t_gPbLzo@9ejLL9DW_57b=*kmyuKEEB1EK~ zvUFc_+4`HV;;Ye&l^qQ1@`*dYBs*qsIKpEhDNi2C(I&4-ck-q*P7iaegH_@6%{Rb- zTX#NHvhww>f>5sa?XvkCq%}Fc#r)PjJV5C!Pi=EwmitRTj>A#}leUNKU5v65c4Kn* zS24lYCE=xh&r4mflMriGFqDeE`4bkLL+?kYx8>C_@7h#W0}QEmyDSE=-}gGIlzV!70p>S2~UasoOU_y-k0Z z?MolKM1m>ZPVj+LTPxYY2ue~q-U1oJxtNLfy9=4~g{v6yR8eiof3h4yjRf7qtA^`F zfb~j{bM8nPG?SDZKd@P8E1GU~o@lBd%vI`)WRFxxE!g507YU^m;9({V)L+}t{=o4l z`K%WKIZ)Te606#D@X?7y|D8&E5Hc~lBmtX-pfSB(ERQKvYUKewoyFyWUZS=R(oK*{ zv1UIEs|;noY4d8Zl-9x@;Gx}$mcQotjpz)ng4$mtQeliug_XK=+(u)@+d7?d<6TqGIN|x6%Rj^ktJ{inuCMsNWqpm z8jZqa6I(6<`Anu1i%M8(9HH-g&_1C|Xky2F+E>PCZCN#B$oCWD7DM=qCq~t^>{F=a z`M0V)9P=VN8jBU5>yS#hh_wXyC||v>4n-;gQ5N`t_MXuRhQK#8=B{;<(NrZCPxzTI zWRFEtsPdP(+EF-;pV~}Q>dP>Zt4jSwV{MM*OsVAb7D1{z?QU@faH$1wzF!gD`8{Zv z>~V!hr8V@L=I3L2^m?gOMePbcfxyu!ts%n-4y8f{ug%G+hs)Q^Shn9^xz9XIBV`xH zi-~}fuMzW<*e}1JStG{%;E8~!#{R_6Sqo>9>%r%CDs1|@WVogt6bV)mEDq>4 zMQoHBPJ9?BFF^G!Py8@;8f{v(l2l@XS(XIXQo{q-nP4DEPjas*c^26qt>xE^0PPP> zQjiZ04_Zi5)t6>B0Y9xXGX!>glVDM43^o)4vNy}AA9TB&xP(7+*7_YEW;IZb(s?q5 zHZv+)OU8&W)z`{gES1FQB<3OqdgW#bYLn9So{*MlOyoCk?tw-jzjxqs3+mOJhX>z8 zN?x#b6sVMiYuTi4GYE1=f*KJ!6-u^*)1yY?r+;x|r)As3!gF;8N(2it+J=L{CX4zs zAqlwXPqx=v+=z=5(N-?ID=7+ZR45Ow)>{LMhLW9Qd=Y41$E#2(tyLg8$*&%q;%KD! z(Ja~xe*d-?EY`q-7CdLpc<>$fSYu0J-~&pyO^Xl%1o(r5|CFD7cSFBEC98-Q4~T+` zJnc{&osyk=>Xi#^@+!%$1h@PZm=T_d4A&I;-H0*9Qes z2^EGIu<=u1+4TfH9{XeNg#(f#Fj<94WT!TVZ|H~PsjUlh=H<-7h{9;FBrg}eI4?m( zC-5%qA?3CtBUf#v6`tSW3qvW26N46o{L=DP&vX5$uYK6mCF?BP9KF?bE^^*{GUMW6 zj7YW0_JVDTa6BQ|D3#;_M11;?D=sf9v7MJ3NgBn^#tcZk2)Fbqt!ueO-XBdxb#f+_SU@hTKt8@f zV!1Htw&0#y(OTs8@-CaOil2R}7`jy|_Vu~@iU%!)hTjG#8K$sR9JLnVC zf9?VA54`$(hJhx8L{D(*w&oZ!Uz6#_zRBKk22tK5DTFh{k^z?TRrQ0)n@2H6uUrtX zyWl*ZgD@$gOcklOICbt|PS)9ySFJN=IKX;ZupI zZySlTjUe1Cg-LST9wZtk6U=S%!hk|B$*L;ZFC3jqXX7l#@|~#GPuT;QL-aW}uW1Ch zZQYX?LsQmQ#gGPOK|W4}?+1@LPRrZu%m9}|Rnkb5C;3a*$-lPB z_>Ng|JghDB@I-0L>t3E+u=D)fe*z}{QQ)rN&jh5q(-Jt=->|CJXX$A z>@Ds$LSWO=eAX;{maYbMaC=D9GmvvP!lB@0yxg%sc9h4HC$j94_2F1Tn8n0jpN|z* zw1}qC4aYQAL&rGAcqp+ltnZFDe8filmgfqrM0E_)OTi$CZ(SV_MS3(n(UxQNZ z2dtu{(Iw!-UArpg-e;5~cvZ}?t14~{ma+CX1sB$X7Xk0J-(X0hkqL&!*L=}j(Ba|Zam{hh z4-mpd8IgNU4@+L|hpwCzGniBzAr6%f?_I~j!xYCn{E@fY;pF2I9ED)yhpEuml^cG5 z?WixuoT;4THt1Dr>#h%lwgMS=ko34p*<>b+tHl3jREUO~L4P~E(;GeySv3A@a_5>t zoIg~N!iwkBU}W8uX)D#hK_tR+8C#>R*wATwcQ)2~#=|KYlr#!+LH>$4o-?-^I(y*- z(BYHtUO_ILu?S!^P8imBUlP9D}0eADLE(NQM@fs+C9HH*s@BmA*uurgSiB60s_ z_u}9V-L+8a!xSIb;6_4{Vg}K2u*p1br9Z~xQ0M2Z%WtnfgH2WQq}&0x$=Y`*Rg|_7$_89M1l=~) z4ZGx532egRU)&hGhMyw(y=A=`=#ULAMsPHMZLDQwGW>jESS*;X0llEmYasdZ>?KKE z*_LA=%{t)EDp~^9QPe?XxlQeku23i$XwG22F43uG-Jh_8@yOgf7h`@JjvrYRt#sf{ zGZlc^`@E}%Lb}v&TYjf`HM|YvTEaDPN(3G&tqAHclT&Mm!!5SPb`Hy{ zA)uzp*e=5IsOCDk5)EOEIMPK6P!MX3((sT@VJAtz4zPB{0ls*V?K=-CAX~TYT2|7n z#B6tB%ck45*oeUB`iP* zbYaLD@!9#IPY}g5r{zo=*t)e@9O$FI35Y{XpH56`r?d=7v@KEk%(i`x*jmlXgswr)OhQq_{Y0 zzp*bQniIib#jB=nlyv44W)i|r!szZ}>CguXpTDCcg01;G0I4Pa{o}J+UO-Ktl+h?( zm-AGm-PST~spJn}UKv+k!;S{ZVT>*y+nSWiE)3Y%PkvNo8ehp6tBAd9*G|H7bCw^y9SWaw=HEURJvvM~S z+Sb*f40c_a7xCVtYXRRBs_^5zd66D)I$RjQOT8h-a|p&twfXl*K8<|#&Xcw7fbPV4 zoxYPLF+7=@$DvE;exp*Shoec}wmp)@sFPq0eUs(l(vX9A%$4YQ5dE91t)`J~m%$qy z%h4;1g0#n4RH8ZJ^W_e4wA$7 zglLJAqt33vpoz;I4A*U5;iX)^Ha1NHLvVade!_p^2XO3uWGTCE8!&&HWmmA{0baLd z@?QciBHOR$tLzl~hG{2q5q_c|^08Zd5I1+<=CCNP)IFqnyOy7L-#d9)g-DoCAau(g zx&~5xQ>WjoP(3y+6C}u6*cG-IM&MGe9hySJotQY-J3f#PdzT2UT)jPPn-)hiP3A7h zdIWGj<$%)$GtTv%D$!hoSwI3mtqwjp99Ius46|z9$-Eab<|~R!xV~a! zsM%3sc}Dw^MT+_ll*CibM*^ z2n2+R)UlPz07Ze$_2b~=q-k)VGJ9;lT7$SW5Oz!;8w(4$T3|C#``+aCd}D!COA^nv zq!T$rUXAi5@2}IQU^A(GZQ)+`m`)}!`!_`4iz0MACr>s*80XcVd9I*e!1m9@+@Q7j zs0N7_k_cmj57isdS@22ln4u#As;8fqv0Q>>TVX0l3Q`7jpzsBbMF@X#g{W_!H$dd> zaAWgnoAkbDy$B$Xu@<~2Q~^*jKB=$wbui^|kR|AC*uL@}N{fyQNj3J~i#1|^C@{;p zLQY&c|3-*@n>&pF>!%Nv$*~X~vy8z+#tD2dOUS31%@>khCa~^XIl4@cEShjMHGa~z zM-D}q!n~qvj;@eoyavZ+uxehbG$hVV#Tt<9ogQEjE>{J-hg>}6phY6LZVHN~i!u+2 zUcIL1^v0Iqyj=A@{ESJ}f8ibMl0cn34qDwOC;lQz>{e4@vYA~>Uv9-N^S`N`9oFp?0swY+cNC7)_<{S!>n>C@S)VK9evc1PH$zHtKhJ0a=pvl%*{3PMyCjWeLhH zKLZMcrw*uE-wuDwbGFx;gnx6=2)a~MM9B2^ly=&$Y|wfm^%YsQgD*-Rj{>8wGHu|K zPLhSLw*SfH%EAFV0pp6~m-XrLq&TSkc~MEjcsrE7S

M*(N|}S%6Z#bwev(zwkfO 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 o-5g%8GJ5gq`8sLUhOmiV`0zsy_j6E@k|9B%qSJ ICollectionsViewModel.cs + + ICollectionDownloadViewModel.cs + + + ICollectionCardViewModel.cs + diff --git a/src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadDesignViewModel.cs b/src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadDesignViewModel.cs new file mode 100644 index 0000000000..a1bcba65ee --- /dev/null +++ b/src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadDesignViewModel.cs @@ -0,0 +1,31 @@ +using Avalonia.Media.Imaging; +using Avalonia.Platform; +using NexusMods.Abstractions.Jobs; +using NexusMods.Abstractions.NexusWebApi.Types; +using NexusMods.Paths; + +namespace NexusMods.App.UI.Pages.CollectionDownload; + +public class CollectionDownloadDesignViewModel : AViewModel, ICollectionDownloadViewModel +{ + public string Name => "Vanilla+ [Quality of Life]"; + public CollectionSlug Slug { get; } = CollectionSlug.From("tckf0m"); + public RevisionNumber RevisionNumber { get; } = RevisionNumber.From(6); + public string AuthorName => "Lowtonotolerance"; + + public string Summary => + "Aims to improves vanilla gameplay while adding minimal additional content. Aims to improves vanilla gameplay while adding minimal additional content. Aims to improves vanilla gameplay while adding minimal additional content. Aims to improves vanilla gameplay while adding minimal additional content."; + + public int ModCount => 9; + public int RequiredModCount => 7; + public int OptionalModCount => 2; + public int EndorsementCount => 248; + public int DownloadCount => 35_123; + public Size TotalSize { get; } = Size.From(76_123_456); + public Percent OverallRating { get; } = Percent.CreateClamped(0.82); + public Bitmap TileImage { get; } = new(AssetLoader.Open(new Uri("avares://NexusMods.App.UI/Assets/DesignTime/collection_tile_image.png"))); + + public Bitmap BackgroundImage { get; } = new(AssetLoader.Open(new Uri("avares://NexusMods.App.UI/Assets/DesignTime/header-background.webp"))); + + public string CollectionStatusText { get; } = "0 of 9 mods downloaded"; +} diff --git a/src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadView.axaml b/src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadView.axaml new file mode 100644 index 0000000000..2e5ebca6e0 --- /dev/null +++ b/src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadView.axaml @@ -0,0 +1,125 @@ + + + + + + + + + + + View on Nexus Mods + + + + + + + View in Library + + + + + + + Delete all downloads + + + + + + + Delete Collection + + + + + + + + + + + + + + + + COLLECTION DOWNLOAD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Required + + + + TODO: Grid of mods will appear here + + + + + Optional + + + + TODO: Grid of mods will appear here + + + + + diff --git a/src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadView.axaml.cs b/src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadView.axaml.cs new file mode 100644 index 0000000000..d113bd5f75 --- /dev/null +++ b/src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadView.axaml.cs @@ -0,0 +1,69 @@ +using System.Reactive.Disposables; +using Avalonia.Media; +using Avalonia.ReactiveUI; +using ReactiveUI; + +namespace NexusMods.App.UI.Pages.CollectionDownload; + +public partial class CollectionDownloadView : ReactiveUserControl +{ + public CollectionDownloadView() + { + InitializeComponent(); + + this.WhenActivated(d => + { + + // Uncomment this to enable the background image + /* + this.WhenAnyValue(view => view.ViewModel!.BackgroundImage) + .WhereNotNull() + .SubscribeWithErrorLogging(image => Body.Background = new ImageBrush { Source = image }) + .DisposeWith(d); + */ + + this.WhenAnyValue(view => view.ViewModel!.TileImage) + .WhereNotNull() + .SubscribeWithErrorLogging(image => Image38.Source = image) + .DisposeWith(d); + + this.OneWayBind(ViewModel, vm => vm.Name, view => view.Title.Text) + .DisposeWith(d); + + this.OneWayBind(ViewModel, vm => vm.AuthorName, view => view.AuthorName.Text) + .DisposeWith(d); + + this.OneWayBind(ViewModel, vm => vm.Summary, view => view.Summary.Text) + .DisposeWith(d); + + this.OneWayBind(ViewModel, vm => vm.ModCount, view => view.ModCount.Text) + .DisposeWith(d); + + this.OneWayBind(ViewModel, vm => vm.EndorsementCount, view => view.Endorsements.Text) + .DisposeWith(d); + + this.OneWayBind(ViewModel, vm => vm.DownloadCount, view => view.Downloads.Text) + .DisposeWith(d); + + this.OneWayBind(ViewModel, vm => vm.TotalSize, view => view.TotalSize.Text) + .DisposeWith(d); + + this.OneWayBind(ViewModel, vm => vm.OverallRating, view => view.OverallRating.Text) + .DisposeWith(d); + + this.OneWayBind(ViewModel, vm => vm.RequiredModCount, view => view.RequiredModsCount.Text) + .DisposeWith(d); + + this.OneWayBind(ViewModel, vm => vm.OptionalModCount, view => view.OptionalModsCount.Text) + .DisposeWith(d); + + this.OneWayBind(ViewModel, vm => vm.CollectionStatusText, view => view.CollectionStatusText.Text) + .DisposeWith(d); + + } + ); + } + + +} + diff --git a/src/NexusMods.App.UI/Pages/CollectionDownload/ICollectionDownloadViewModel.cs b/src/NexusMods.App.UI/Pages/CollectionDownload/ICollectionDownloadViewModel.cs new file mode 100644 index 0000000000..29782068a1 --- /dev/null +++ b/src/NexusMods.App.UI/Pages/CollectionDownload/ICollectionDownloadViewModel.cs @@ -0,0 +1,84 @@ +using Avalonia.Media.Imaging; +using NexusMods.Abstractions.Jobs; +using NexusMods.Abstractions.NexusWebApi.Types; +using NexusMods.Paths; + +namespace NexusMods.App.UI.Pages.CollectionDownload; + +public interface ICollectionDownloadViewModel : IViewModelInterface +{ + ///

+ /// Name of the collection + /// + public string Name { get; } + + /// + /// The collection's slug + /// + public CollectionSlug Slug { get; } + + /// + /// The collection's revision number + /// + public RevisionNumber RevisionNumber { get; } + + /// + /// Name of the author of the collection + /// + public string AuthorName { get; } + + /// + /// The summary (short description) of the collection + /// + public string Summary { get; } + + /// + /// Total number of mods in the collection + /// + public int ModCount { get; } + + /// + /// The number of required mods in the collection + /// + public int RequiredModCount { get; } + + /// + /// The number of optional mods in the collection + /// + public int OptionalModCount { get; } + + /// + /// The number of endorsements the collection has + /// + public int EndorsementCount { get; } + + /// + /// The number of downloads the collection has + /// + public int DownloadCount { get; } + + /// + /// The size of the collection including all downloads and the collection file iteself + /// + public Size TotalSize { get; } + + /// + /// The overall approval rating of the collection + /// + public Percent OverallRating { get; } + + /// + /// The small tileable image of the collection + /// + public Bitmap TileImage { get; } + + /// + /// The background banner image of the collection + /// + public Bitmap BackgroundImage { get; } + + /// + /// A text representation of the collection's status, such as "Downloading", "Installing", "Ready to Play", etc. + /// + public string CollectionStatusText { get; } +} diff --git a/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/StylesIndex.axaml b/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/StylesIndex.axaml index 71f6405bc5..6537664d20 100644 --- a/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/StylesIndex.axaml +++ b/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/StylesIndex.axaml @@ -31,6 +31,7 @@ + diff --git a/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/CollectionDownloadPage/CollectionDownloadPage.axaml b/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/CollectionDownloadPage/CollectionDownloadPage.axaml new file mode 100644 index 0000000000..11ad5d4306 --- /dev/null +++ b/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/CollectionDownloadPage/CollectionDownloadPage.axaml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 81035c7cb2260e5fe420c9e989207193c5bb0a5a Mon Sep 17 00:00:00 2001 From: Timothy Baldridge Date: Wed, 25 Sep 2024 15:36:12 -0600 Subject: [PATCH 28/35] Invert the Collections GQL call (#2081) * Invert the way we query GQL to return less revisions and more revision data * Delete the now unused CollectionInfo.graphql file --- .../GraphQLResolver.cs | 24 +++- .../Models/CollectionMetadata.cs | 5 + .../Models/CollectionRevisionMetadata.cs | 12 +- .../Models/CollectionRevisionModFile.cs | 30 +++++ .../NexusModsFileMetadata.cs | 6 + .../Services.cs | 1 + .../GraphQL/CollectionInfo.graphql | 35 ------ .../GraphQL/CollectionRevisionInfo.graphql | 63 +++++++++++ .../NexusModsLibrary.cs | 104 ++++++++++-------- .../Collections/CollectionCardViewModel.cs | 2 +- .../NexusModsLibraryTests.cs | 17 +-- 11 files changed, 206 insertions(+), 93 deletions(-) create mode 100644 src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/Models/CollectionRevisionModFile.cs delete mode 100644 src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/CollectionInfo.graphql create mode 100644 src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/CollectionRevisionInfo.graphql diff --git a/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/GraphQLResolver.cs b/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/GraphQLResolver.cs index 47153853cd..053b2cba0f 100644 --- a/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/GraphQLResolver.cs +++ b/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/GraphQLResolver.cs @@ -1,5 +1,6 @@ using NexusMods.MnemonicDB.Abstractions; using NexusMods.MnemonicDB.Abstractions.Attributes; +using NexusMods.MnemonicDB.Abstractions.IndexSegments; using NexusMods.MnemonicDB.Abstractions.Models; using Splat.ModeDetection; @@ -29,6 +30,27 @@ public static GraphQLResolver Create(IDb referenceDb, ITr return new GraphQLResolver(tx, new ReadOnlyModel(referenceDb, id)); } + /// + /// Create a resolver that depends on two primary key attributes and values. + /// + public static GraphQLResolver Create(IDb referenceDb, ITransaction tx, + (ScalarAttribute A, THighLevel1 V) pair1, + (ScalarAttribute A, THighLevel2 V) pair2) + where THighLevel1 : notnull + where THighLevel2 : notnull + { + var existing = referenceDb.Datoms(pair1, pair2); + var exists = existing.Count > 0; + var id = existing.Count == 0 ? tx.TempId() : existing[0]; + if (!exists) + { + tx.Add(id, pair1.A, pair1.V); + tx.Add(id, pair2.A, pair2.V); + } + + return new GraphQLResolver(tx, new ReadOnlyModel(referenceDb, id)); + } + /// /// The id of the entity, may be temporary if this is a new entity. /// @@ -81,7 +103,7 @@ public void Add(ReferenceAttribute attribute, EntityId id) return; } - if (attribute.Get(Model).Equals(id)) + if (attribute.TryGet(Model, out var foundId) && foundId.Equals(id)) return; // Else add the value diff --git a/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/Models/CollectionMetadata.cs b/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/Models/CollectionMetadata.cs index 630e0bba19..4b2b05198c 100644 --- a/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/Models/CollectionMetadata.cs +++ b/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/Models/CollectionMetadata.cs @@ -51,4 +51,9 @@ public partial class CollectionMetadata : IModelDefinition /// The collections' image. /// public static readonly MemoryAttribute TileImage = new(Namespace, nameof(TileImage)); + + /// + /// The collections' image. + /// + public static readonly MemoryAttribute BackgroundImage = new(Namespace, nameof(BackgroundImage)); } diff --git a/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/Models/CollectionRevisionMetadata.cs b/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/Models/CollectionRevisionMetadata.cs index 82bc789c40..9fe2c1745d 100644 --- a/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/Models/CollectionRevisionMetadata.cs +++ b/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/Models/CollectionRevisionMetadata.cs @@ -21,13 +21,18 @@ public partial class CollectionRevisionMetadata : IModelDefinition /// /// The locally unique revision number (aka "version") of a collection. Only unique within one collection. /// - public static readonly RevisionNumberAttribute RevisionNumber = new(Namespace, nameof(RevisionNumber)); + public static readonly RevisionNumberAttribute RevisionNumber = new(Namespace, nameof(RevisionNumber)) { IsIndexed = true }; /// /// The collection this revision belongs to. /// public static readonly ReferenceAttribute Collection = new(Namespace, nameof(Collection)); + /// + /// All the mod files in this revision. + /// + public static readonly BackReferenceAttribute Files = new(CollectionRevisionModFile.CollectionRevision); + /// /// The number of downloads this revision has. /// @@ -47,9 +52,4 @@ public partial class CollectionRevisionMetadata : IModelDefinition /// The total number of ratings this revision has. /// public static readonly ULongAttribute TotalRatings = new(Namespace, nameof(TotalRatings)); - - /// - /// The total number of mods in this revision. - /// - public static readonly ULongAttribute ModCount = new(Namespace, nameof(ModCount)); } diff --git a/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/Models/CollectionRevisionModFile.cs b/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/Models/CollectionRevisionModFile.cs new file mode 100644 index 0000000000..0331888959 --- /dev/null +++ b/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/Models/CollectionRevisionModFile.cs @@ -0,0 +1,30 @@ +using NexusMods.Abstractions.MnemonicDB.Attributes; +using NexusMods.MnemonicDB.Abstractions.Attributes; +using NexusMods.MnemonicDB.Abstractions.Models; + +namespace NexusMods.Abstractions.NexusModsLibrary.Models; + +public partial class CollectionRevisionModFile : IModelDefinition +{ + private const string Namespace = "NexusMods.Library.CollectionRevisionModFile"; + + /// + /// The Nexus, globally unique id identifying a specific file of a collection revision. + /// + public static readonly ULongAttribute FileId = new(Namespace, nameof(FileId)) { IsIndexed = true }; + + /// + /// If the file is optional or not + /// + public static readonly BooleanAttribute IsOptional = new(Namespace, nameof(IsOptional)); + + /// + /// The associated NexusModsFileMetadata that contains the other metadata of the file. + /// + public static readonly ReferenceAttribute NexusModFile = new(Namespace, nameof(NexusModFile)); + + /// + /// The associated CollectionRevision + /// + public static readonly ReferenceAttribute CollectionRevision = new(Namespace, nameof(CollectionRevision)); +} diff --git a/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/NexusModsFileMetadata.cs b/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/NexusModsFileMetadata.cs index ed78ee9333..404c0cb288 100644 --- a/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/NexusModsFileMetadata.cs +++ b/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/NexusModsFileMetadata.cs @@ -1,4 +1,5 @@ using JetBrains.Annotations; +using NexusMods.Abstractions.MnemonicDB.Attributes; using NexusMods.Abstractions.NexusWebApi.Types; using NexusMods.MnemonicDB.Abstractions.Attributes; using NexusMods.MnemonicDB.Abstractions.Models; @@ -27,6 +28,11 @@ public partial class NexusModsFileMetadata : IModelDefinition /// The version of the file. /// public static readonly StringAttribute Version = new(Namespace, nameof(Version)); + + /// + /// The size in bytes of the file. + /// + public static readonly SizeAttribute Size = new(Namespace, nameof(Size)) { IsOptional = true }; /// /// Reference to the mod page of the file. diff --git a/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/Services.cs b/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/Services.cs index 5164a16d5c..84be9a0a39 100644 --- a/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/Services.cs +++ b/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/Services.cs @@ -21,6 +21,7 @@ public static IServiceCollection AddNexusModsLibraryModels(this IServiceCollecti .AddNexusModsLibraryFileModel() .AddCollectionMetadataModel() .AddCollectionRevisionMetadataModel() + .AddCollectionRevisionModFileModel() .AddCollectionTagModel() .AddUserModel() .AddNexusModsCollectionLibraryFileModel(); diff --git a/src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/CollectionInfo.graphql b/src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/CollectionInfo.graphql deleted file mode 100644 index 5ad1721da9..0000000000 --- a/src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/CollectionInfo.graphql +++ /dev/null @@ -1,35 +0,0 @@ - -# Gets information about a collection. -query CollectionInfo($slug: String!, $viewAdultContent: Boolean!) -{ - collection(slug: $slug, viewAdultContent: $viewAdultContent) - { - name - summary - endorsements - tileImage { - thumbnailUrl(size: small) - } - tags { - name - id - } - revisions - { - id - totalDownloads - assetsSizeBytes - revisionNumber - adultContent - totalSize - overallRating - overallRatingCount - modCount - } - user { - name - avatar - memberId - } - } -} diff --git a/src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/CollectionRevisionInfo.graphql b/src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/CollectionRevisionInfo.graphql new file mode 100644 index 0000000000..8473b39dda --- /dev/null +++ b/src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/CollectionRevisionInfo.graphql @@ -0,0 +1,63 @@ + +# Pulls all the information we need about a collection revision. +query CollectionRevisionInfo($slug: String!, $revisionNumber: Int!, $viewAdultContent: Boolean!) +{ + collectionRevision(slug: $slug, revision: $revisionNumber, viewAdultContent: $viewAdultContent) + { + id + totalDownloads + assetsSizeBytes + revisionNumber + adultContent + totalSize + overallRating + overallRatingCount + modCount + + modFiles { + id, + optional, + gameId, + fileId, + file { + name, + modId, + fileId, + version, + sizeInBytes, + mod { + name + game { + domainName + } + thumbnailUrl + pictureUrl + } + } + updatePolicy, + version, + } + + collection { + name + summary + endorsements + tileImage { + thumbnailUrl(size: small) + } + headerImage { + url + } + tags { + name + id + } + user { + name + avatar + memberId + } + + } + } +} diff --git a/src/Networking/NexusMods.Networking.NexusWebApi/NexusModsLibrary.cs b/src/Networking/NexusMods.Networking.NexusWebApi/NexusModsLibrary.cs index 5732b10b05..08880a2093 100644 --- a/src/Networking/NexusMods.Networking.NexusWebApi/NexusModsLibrary.cs +++ b/src/Networking/NexusMods.Networking.NexusWebApi/NexusModsLibrary.cs @@ -71,33 +71,34 @@ public NexusModsLibrary(IServiceProvider serviceProvider) var txResults = await tx.Commit(); return txResults.Remap(newModPage); } - + /// /// Get or add a collection metadata /// - public async Task GetOrAddCollectionMetadata(CollectionSlug slug, bool referesh = false, CancellationToken token = default) + public async Task GetOrAddCollectionRevision(CollectionSlug slug, RevisionNumber revisionNumber, CancellationToken token) { - if (!referesh) - { - var collections = CollectionMetadata.FindBySlug(_connection.Db, slug); - if (collections.TryGetFirst(x => x.Slug == slug, out var collection)) - return collection; - } - - var info = await _gqlClient.CollectionInfo.ExecuteAsync(slug.Value, true, token); - - var collectionInfo = info.Data!.Collection; - var collectionTileImage = _httpClient.GetByteArrayAsync(new Uri(collectionInfo.TileImage!.ThumbnailUrl), token); - var avatarImage = _httpClient.GetByteArrayAsync(new Uri(collectionInfo.User.Avatar), token); + var revisions = CollectionRevisionMetadata.FindByRevisionNumber(_connection.Db, revisionNumber) + .Where(r => r.Collection.Slug == slug); + if (revisions.TryGetFirst(r => r.RevisionNumber == revisionNumber, out var revision)) + return revision; + var info = await _gqlClient.CollectionRevisionInfo.ExecuteAsync(slug.Value, (int)revisionNumber.Value, true, token); using var tx = _connection.BeginTransaction(); + var db = _connection.Db; + var collectionInfo = info.Data!.CollectionRevision.Collection; + var collectionTileImage = DownloadImage(collectionInfo.TileImage?.ThumbnailUrl, token); + var avatarImage = DownloadImage(collectionInfo.User.Avatar, token); + var collectionBackgroundImage = DownloadImage(collectionInfo.HeaderImage?.Url, token); + + // Remap the collection info var collectionResolver = GraphQLResolver.Create(db, tx, CollectionMetadata.Slug, slug); collectionResolver.Add(CollectionMetadata.Name, collectionInfo.Name); collectionResolver.Add(CollectionMetadata.Summary, collectionInfo.Summary); collectionResolver.Add(CollectionMetadata.Endorsements, (ulong)collectionInfo.Endorsements); collectionResolver.Add(CollectionMetadata.TileImage, await collectionTileImage); - + collectionResolver.Add(CollectionMetadata.BackgroundImage, await collectionBackgroundImage); + // Remap the user info var userResolver = GraphQLResolver.Create(db, tx, User.NexusId, (ulong)collectionInfo.User.MemberId); userResolver.Add(User.Name, collectionInfo.User.Name); @@ -106,43 +107,57 @@ public NexusModsLibrary(IServiceProvider serviceProvider) collectionResolver.Add(CollectionMetadata.Author, userResolver.Id); - // Remap the revisions - foreach (var revision in collectionInfo.Revisions) - { - var revisionResolver = GraphQLResolver.Create(db, tx, CollectionRevisionMetadata.RevisionId, RevisionId.From((ulong)revision.Id)); - revisionResolver.Add(CollectionRevisionMetadata.RevisionId, RevisionId.From((ulong)revision.Id)); - revisionResolver.Add(CollectionRevisionMetadata.RevisionNumber, RevisionNumber.From((ulong)revision.RevisionNumber)); - revisionResolver.Add(CollectionRevisionMetadata.CollectionId, collectionResolver.Id); - revisionResolver.Add(CollectionRevisionMetadata.Downloads, (ulong)revision.TotalDownloads); - revisionResolver.Add(CollectionRevisionMetadata.TotalSize, Size.From(ulong.Parse(revision.TotalSize))); - revisionResolver.Add(CollectionRevisionMetadata.OverallRating, float.Parse(revision.OverallRating ?? "0.0")); - revisionResolver.Add(CollectionRevisionMetadata.TotalRatings, (ulong)(revision.OverallRatingCount ?? 0)); - revisionResolver.Add(CollectionRevisionMetadata.ModCount, (ulong)revision.ModCount); - } + // Remap the revision info + var revisionInfo = info.Data!.CollectionRevision; + var revisionResolver = GraphQLResolver.Create(db, tx, CollectionRevisionMetadata.RevisionId, RevisionId.From((ulong)revisionInfo.Id)); + revisionResolver.Add(CollectionRevisionMetadata.RevisionId, RevisionId.From((ulong)revisionInfo.Id)); + revisionResolver.Add(CollectionRevisionMetadata.RevisionNumber, RevisionNumber.From((ulong)revisionInfo.RevisionNumber)); + revisionResolver.Add(CollectionRevisionMetadata.CollectionId, collectionResolver.Id); + revisionResolver.Add(CollectionRevisionMetadata.Downloads, (ulong)revisionInfo.TotalDownloads); + revisionResolver.Add(CollectionRevisionMetadata.TotalSize, Size.From(ulong.Parse(revisionInfo.TotalSize))); + revisionResolver.Add(CollectionRevisionMetadata.OverallRating, float.Parse(revisionInfo.OverallRating ?? "0.0") / 100); + revisionResolver.Add(CollectionRevisionMetadata.TotalRatings, (ulong)(revisionInfo.OverallRatingCount ?? 0)); - foreach (var tag in collectionInfo.Tags) + foreach (var file in revisionInfo.ModFiles) { - var categoryResolver = GraphQLResolver.Create(db, tx, CollectionTag.NexusId, ulong.Parse(tag.Id)); - categoryResolver.Add(CollectionTag.Name, tag.Name); - collectionResolver.Add(CollectionMetadata.Tags, categoryResolver.Id); + var fileInfo = file.File!; + var modInfo = fileInfo.Mod; + var nexusModResolver = GraphQLResolver.Create(db, tx, NexusModsModPageMetadata.ModId, ModId.From((ulong)fileInfo.ModId)); + nexusModResolver.Add(NexusModsModPageMetadata.Name, modInfo.Name); + nexusModResolver.Add(NexusModsModPageMetadata.GameDomain, GameDomain.From(modInfo.Game.DomainName)); + + if (Uri.TryCreate(modInfo.PictureUrl, UriKind.Absolute, out var fullSizedPictureUri)) + nexusModResolver.Add(NexusModsModPageMetadata.FullSizedPictureUri, fullSizedPictureUri); + + if (Uri.TryCreate(modInfo.ThumbnailUrl, UriKind.Absolute, out var thumbnailUri)) + nexusModResolver.Add(NexusModsModPageMetadata.ThumbnailUri, thumbnailUri); + + + var nexusFileResolver = GraphQLResolver.Create(db, tx, (NexusModsFileMetadata.FileId, FileId.From((ulong)fileInfo.FileId)), (NexusModsFileMetadata.ModPageId, nexusModResolver.Id)); + nexusFileResolver.Add(NexusModsFileMetadata.ModPageId, nexusModResolver.Id); + nexusFileResolver.Add(NexusModsFileMetadata.Name, fileInfo.Name); + nexusFileResolver.Add(NexusModsFileMetadata.Version, fileInfo.Version); + nexusFileResolver.Add(NexusModsFileMetadata.Size, Size.FromLong(long.Parse(fileInfo.SizeInBytes!))); + + var revisionFileResolver = GraphQLResolver.Create(db, tx, CollectionRevisionModFile.FileId, ulong.Parse(file.Id)); + revisionFileResolver.Add(CollectionRevisionModFile.CollectionRevision, revisionResolver.Id); + revisionFileResolver.Add(CollectionRevisionModFile.NexusModFile, nexusFileResolver.Id); + revisionFileResolver.Add(CollectionRevisionModFile.IsOptional, file.Optional); } var txResults = await tx.Commit(); - - return CollectionMetadata.Load(txResults.Db, txResults[collectionResolver.Id]); + return CollectionRevisionMetadata.Load(txResults.Db, txResults[revisionResolver.Id]); } - + /// - /// Get or add a collection metadata + /// Load an image from a URI /// - public async Task GetOrAddCollectionRevision(CollectionSlug slug, RevisionNumber revisionNumber, CancellationToken token) + public async Task DownloadImage(string? uri, CancellationToken token) { - var collection = await GetOrAddCollectionMetadata(slug, false, token); - if (collection.Revisions.TryGetFirst(r => r.RevisionNumber == revisionNumber, out var revision)) - return revision; + if (uri is null) return []; + if (!Uri.TryCreate(uri, UriKind.Absolute, out var imageUri)) return []; - collection = await GetOrAddCollectionMetadata(slug, true, token); - return collection.Revisions.First(r => r.RevisionNumber == revisionNumber); + return await _httpClient.GetByteArrayAsync(imageUri, token); } public async Task GetOrAddFile( @@ -161,7 +176,7 @@ public NexusModsLibrary(IServiceProvider serviceProvider) if (!files.TryGetFirst(x => x.FileId == fileId, out var fileInfo)) throw new NotImplementedException(); - + var newFile = new NexusModsFileMetadata.New(tx) { Name = fileInfo.Name, @@ -169,6 +184,9 @@ public NexusModsLibrary(IServiceProvider serviceProvider) FileId = fileId, ModPageId = modPage, }; + + if (fileInfo.SizeInBytes.HasValue) + newFile.Size = Size.FromLong(fileInfo.SizeInBytes!.Value); var txResults = await tx.Commit(); return txResults.Remap(newFile); diff --git a/src/NexusMods.App.UI/Pages/LibraryPage/Collections/CollectionCardViewModel.cs b/src/NexusMods.App.UI/Pages/LibraryPage/Collections/CollectionCardViewModel.cs index 9d977668d1..4a29b31756 100644 --- a/src/NexusMods.App.UI/Pages/LibraryPage/Collections/CollectionCardViewModel.cs +++ b/src/NexusMods.App.UI/Pages/LibraryPage/Collections/CollectionCardViewModel.cs @@ -24,7 +24,7 @@ public CollectionCardViewModel(IConnection connection, RevisionId revision) public Bitmap Image => new(new MemoryStream(_collection.TileImage.ToArray())); public string Summary => _collection.Summary; public string Category => string.Join(" \u2022 ", _collection.Tags.Select(t => t.Name)); - public int ModCount => (int)_revision.ModCount; + public int ModCount => _revision.Files.Count; public ulong EndorsementCount => _collection.Endorsements; public ulong DownloadCount => _revision.Downloads; public Size TotalSize => _revision.TotalSize; diff --git a/tests/Networking/NexusMods.Networking.NexusWebApi.Tests/NexusModsLibraryTests.cs b/tests/Networking/NexusMods.Networking.NexusWebApi.Tests/NexusModsLibraryTests.cs index 347fc827f8..e3f4b1024c 100644 --- a/tests/Networking/NexusMods.Networking.NexusWebApi.Tests/NexusModsLibraryTests.cs +++ b/tests/Networking/NexusMods.Networking.NexusWebApi.Tests/NexusModsLibraryTests.cs @@ -21,11 +21,14 @@ public NexusModsLibraryTests(NexusModsLibrary nexusLibrary, TemporaryFileManager _temporaryFileManager = temporaryFileManager; } - [Fact] - public async Task CanDownloadCollection() + [Theory] + [InlineData("iszwwe", 469)] + [InlineData("r1flnc", 38)] + [InlineData("aexcgn", 6)] + public async Task CanDownloadCollection(string slug, ulong revisionNumber) { await using var destination = _temporaryFileManager.CreateFile(); - var downloadJob = _nexusLibrary.CreateCollectionDownloadJob(destination, CollectionSlug.From("iszwwe"), RevisionNumber.From(469), + var downloadJob = _nexusLibrary.CreateCollectionDownloadJob(destination, CollectionSlug.From(slug), RevisionNumber.From(revisionNumber), CancellationToken.None ); @@ -33,18 +36,18 @@ public async Task CanDownloadCollection() // Make sure the metadata is linked correctly libraryFile.TryGetAsNexusModsCollectionLibraryFile(out var collectionFile).Should().BeTrue(); - collectionFile.CollectionRevision.RevisionNumber.Value.Should().Be(469); - collectionFile.CollectionRevision.Collection.Slug.Value.Should().Be("iszwwe"); + collectionFile.CollectionRevision.RevisionNumber.Value.Should().Be(revisionNumber); + collectionFile.CollectionRevision.Collection.Slug.Value.Should().Be(slug); // The downloaded file should be the correct size - libraryFile.Size.Value.Should().Be(20940); + libraryFile.Size.Value.Should().BeGreaterThan(0); // The downloaded file should be a library archive libraryFile.TryGetAsLibraryArchive(out var archive).Should().BeTrue(); // Verify the collection.json file is present and has the correct size var collectionJson = archive.Children.First(c => c.Path == "collection.json"); - collectionJson.AsLibraryFile().Size.Value.Should().Be(145406UL); + collectionJson.IsValid().Should().BeTrue(); } } From 3f238124428371c1caa9b1de2d6d71a6a75321bf Mon Sep 17 00:00:00 2001 From: Al <26797547+Al12rs@users.noreply.github.com> Date: Thu, 26 Sep 2024 16:23:19 +0200 Subject: [PATCH 29/35] Various FlexPanel related layout fixes (#2088) --- .../Collections/CollectionCardView.axaml | 4 +- .../CollectionCardStyles.axaml | 47 ++++++++++--------- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/src/NexusMods.App.UI/Pages/LibraryPage/Collections/CollectionCardView.axaml b/src/NexusMods.App.UI/Pages/LibraryPage/Collections/CollectionCardView.axaml index c27f98567d..8a0d157560 100644 --- a/src/NexusMods.App.UI/Pages/LibraryPage/Collections/CollectionCardView.axaml +++ b/src/NexusMods.App.UI/Pages/LibraryPage/Collections/CollectionCardView.axaml @@ -28,9 +28,9 @@ - + - + diff --git a/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/CollectionCards/CollectionCardStyles.axaml b/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/CollectionCards/CollectionCardStyles.axaml index f81bb93feb..2d32f2af4b 100644 --- a/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/CollectionCards/CollectionCardStyles.axaml +++ b/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/CollectionCards/CollectionCardStyles.axaml @@ -42,14 +42,14 @@ - - + + From dedc86e021a6d317b9a363008d5960373ff4773e Mon Sep 17 00:00:00 2001 From: erri120 Date: Sat, 28 Sep 2024 14:55:47 +0200 Subject: [PATCH 30/35] Find GOG games installed with the Heroic launcher Part of #1695. This only finds the games, we still need a way to run them through the launcher. --- Directory.Packages.props | 3 +- .../HeroicGogLocator.cs | 53 +++++++++++++++++++ .../NexusMods.StandardGameLocators.csproj | 1 + .../Services.cs | 3 ++ 4 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 src/NexusMods.StandardGameLocators/HeroicGogLocator.cs diff --git a/Directory.Packages.props b/Directory.Packages.props index a9c14aa18c..08d9f4499e 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -6,6 +6,7 @@ + @@ -120,7 +121,7 @@ - + diff --git a/src/NexusMods.StandardGameLocators/HeroicGogLocator.cs b/src/NexusMods.StandardGameLocators/HeroicGogLocator.cs new file mode 100644 index 0000000000..9a9f5abbcb --- /dev/null +++ b/src/NexusMods.StandardGameLocators/HeroicGogLocator.cs @@ -0,0 +1,53 @@ +using GameFinder.Launcher.Heroic; +using GameFinder.StoreHandlers.GOG; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using NexusMods.Abstractions.GameLocators; +using NexusMods.Abstractions.GameLocators.Stores.GOG; +using NexusMods.Abstractions.Games.Stores.GOG; + +namespace NexusMods.StandardGameLocators; + +/// +/// Find GOG games installed with the Heroic launcher. +/// +public class HeroicGogLocator : IGameLocator +{ + private readonly ILogger _logger; + + private readonly HeroicGOGHandler _handler; + private IReadOnlyDictionary? _cachedGames; + + /// + /// Constructor. + /// + public HeroicGogLocator(IServiceProvider provider) + { + _logger = provider.GetRequiredService>(); + _handler = provider.GetRequiredService(); + } + + public IEnumerable Find(ILocatableGame game) + { + if (game is not IGogGame tg) yield break; + + if (_cachedGames is null) + { + _cachedGames = _handler.FindAllGamesById(out var errors); + if (errors.Any()) + { + foreach (var error in errors) + _logger.LogError("While looking for games: {Error}", error); + } + } + + foreach (var id in tg.GogIds) + { + if (!_cachedGames.TryGetValue(GOGGameId.From(id), out var found)) continue; + yield return new GameLocatorResult(found.Path, GameStore.GOG, new GOGLocatorResultMetadata + { + Id = id, + }); + } + } +} diff --git a/src/NexusMods.StandardGameLocators/NexusMods.StandardGameLocators.csproj b/src/NexusMods.StandardGameLocators/NexusMods.StandardGameLocators.csproj index 27a773f608..853d0bf61a 100644 --- a/src/NexusMods.StandardGameLocators/NexusMods.StandardGameLocators.csproj +++ b/src/NexusMods.StandardGameLocators/NexusMods.StandardGameLocators.csproj @@ -4,6 +4,7 @@ + diff --git a/src/NexusMods.StandardGameLocators/Services.cs b/src/NexusMods.StandardGameLocators/Services.cs index 9c50d35589..b93cd89377 100644 --- a/src/NexusMods.StandardGameLocators/Services.cs +++ b/src/NexusMods.StandardGameLocators/Services.cs @@ -1,5 +1,6 @@ using System.Text.Json.Serialization; using GameFinder.Common; +using GameFinder.Launcher.Heroic; using GameFinder.RegistryUtils; using GameFinder.StoreHandlers.EADesktop; using GameFinder.StoreHandlers.EADesktop.Crypto; @@ -61,6 +62,7 @@ public static IServiceCollection AddStandardGameLocators( onLinux: () => { services.AddSingleton(); + services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); @@ -92,6 +94,7 @@ public static IServiceCollection AddStandardGameLocators( onLinux: () => { services.AddSingleton>(provider => new SteamHandler(provider.GetRequiredService(), registry: null)); + services.AddSingleton(provider => new HeroicGOGHandler(provider.GetRequiredService())); services.AddSingleton>(provider => new DefaultWinePrefixManager(provider.GetRequiredService())); services.AddSingleton>(provider => new BottlesWinePrefixManager(provider.GetRequiredService())); From d56347fadac052142928c71db076989016522f90 Mon Sep 17 00:00:00 2001 From: erri120 Date: Sat, 28 Sep 2024 15:08:32 +0200 Subject: [PATCH 31/35] Fix tests --- tests/NexusMods.StandardGameLocators.TestHelpers/Services.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/NexusMods.StandardGameLocators.TestHelpers/Services.cs b/tests/NexusMods.StandardGameLocators.TestHelpers/Services.cs index 73d4e62872..5b970ad346 100644 --- a/tests/NexusMods.StandardGameLocators.TestHelpers/Services.cs +++ b/tests/NexusMods.StandardGameLocators.TestHelpers/Services.cs @@ -1,4 +1,5 @@ using GameFinder.Common; +using GameFinder.Launcher.Heroic; using GameFinder.StoreHandlers.EADesktop; using GameFinder.StoreHandlers.EGS; using GameFinder.StoreHandlers.GOG; @@ -75,6 +76,8 @@ public static IServiceCollection AddStubbedGameLocators(this IServiceCollection if (OSInformation.Shared.IsLinux) { + coll.AddSingleton(s => new HeroicGOGHandler(s.GetRequiredService())); + coll.AddSingleton>(s => new StubbedWinePrefixManager(s.GetRequiredService(), tfm => new WinePrefix From 0b1255444cee25212014eda1a76d21df6ddf74d4 Mon Sep 17 00:00:00 2001 From: erri120 Date: Sun, 29 Sep 2024 17:56:32 +0200 Subject: [PATCH 32/35] Run through heroic --- .../Stores/GOG/GOGLocatorResultMetadata.cs | 3 +++ .../RunGameTool.cs | 23 ++++++++++++++++--- .../HeroicGogLocator.cs | 2 +- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/Abstractions/NexusMods.Abstractions.GameLocators/Stores/GOG/GOGLocatorResultMetadata.cs b/src/Abstractions/NexusMods.Abstractions.GameLocators/Stores/GOG/GOGLocatorResultMetadata.cs index d5cba47d39..1c471ca5cb 100644 --- a/src/Abstractions/NexusMods.Abstractions.GameLocators/Stores/GOG/GOGLocatorResultMetadata.cs +++ b/src/Abstractions/NexusMods.Abstractions.GameLocators/Stores/GOG/GOGLocatorResultMetadata.cs @@ -14,3 +14,6 @@ public record GOGLocatorResultMetadata : IGameLocatorResultMetadata /// public required long Id { get; init; } } + +[PublicAPI] +public record HeroicGOGLocatorResultMetadata : GOGLocatorResultMetadata; diff --git a/src/Abstractions/NexusMods.Abstractions.Games/RunGameTool.cs b/src/Abstractions/NexusMods.Abstractions.Games/RunGameTool.cs index 39c9851350..1748a1835a 100644 --- a/src/Abstractions/NexusMods.Abstractions.Games/RunGameTool.cs +++ b/src/Abstractions/NexusMods.Abstractions.Games/RunGameTool.cs @@ -5,6 +5,7 @@ using Microsoft.Extensions.Logging; using NexusMods.Abstractions.GameLocators; using NexusMods.Abstractions.Games.DTO; +using NexusMods.Abstractions.Games.Stores.GOG; using NexusMods.Abstractions.Games.Stores.Steam; using NexusMods.Abstractions.Loadouts; using NexusMods.CrossPlatform.Process; @@ -60,10 +61,18 @@ public async Task Execute(Loadout.ReadOnly loadout, CancellationToken cancellati var program = await GetGamePath(loadout); var primaryFile = _game.GetPrimaryFile(loadout.InstallationInstance.Store).CombineChecked(loadout.InstallationInstance); - if (OSInformation.Shared.IsLinux && program.Equals(primaryFile) && loadout.InstallationInstance.LocatorResultMetadata is SteamLocatorResultMetadata steamLocatorResultMetadata) + if (OSInformation.Shared.IsLinux && program.Equals(primaryFile)) { - await RunThroughSteam(steamLocatorResultMetadata.AppId, cancellationToken); - return; + var locator = loadout.InstallationInstance.LocatorResultMetadata; + switch (locator) + { + case SteamLocatorResultMetadata steamLocatorResultMetadata: + await RunThroughSteam(steamLocatorResultMetadata.AppId, cancellationToken); + return; + case HeroicGOGLocatorResultMetadata heroicGOGLocatorResultMetadata: + await RunThroughHeroic("gog", heroicGOGLocatorResultMetadata.Id, cancellationToken); + return; + } } var names = new HashSet @@ -177,6 +186,14 @@ private async Task RunThroughSteam(uint appId, CancellationToken cancellationTok await reaper.WaitForExitAsync(cancellationToken); } + private async Task RunThroughHeroic(string type, long appId, CancellationToken cancellationToken) + { + Debug.Assert(OSInformation.Shared.IsLinux); + + // TODO: track process + await _osInterop.OpenUrl(new Uri($"heroic://launch/{type}/{appId.ToString(CultureInfo.InvariantCulture)}"), fireAndForget: true, cancellationToken: cancellationToken); + } + private async ValueTask WaitForProcessToStart( string processName, TimeSpan timeout, diff --git a/src/NexusMods.StandardGameLocators/HeroicGogLocator.cs b/src/NexusMods.StandardGameLocators/HeroicGogLocator.cs index 9a9f5abbcb..e7e80b1947 100644 --- a/src/NexusMods.StandardGameLocators/HeroicGogLocator.cs +++ b/src/NexusMods.StandardGameLocators/HeroicGogLocator.cs @@ -44,7 +44,7 @@ public IEnumerable Find(ILocatableGame game) foreach (var id in tg.GogIds) { if (!_cachedGames.TryGetValue(GOGGameId.From(id), out var found)) continue; - yield return new GameLocatorResult(found.Path, GameStore.GOG, new GOGLocatorResultMetadata + yield return new GameLocatorResult(found.Path, GameStore.GOG, new HeroicGOGLocatorResultMetadata { Id = id, }); From 6fceadb2639eb7f35dfbe9bac0bbcfcb29875eb9 Mon Sep 17 00:00:00 2001 From: erri120 Date: Mon, 30 Sep 2024 12:04:50 +0200 Subject: [PATCH 33/35] Skip running redmod on non-Steam installations --- .../RedModDeployTool.cs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Games/NexusMods.Games.RedEngine/RedModDeployTool.cs b/src/Games/NexusMods.Games.RedEngine/RedModDeployTool.cs index c3516d13b7..edd35b2182 100644 --- a/src/Games/NexusMods.Games.RedEngine/RedModDeployTool.cs +++ b/src/Games/NexusMods.Games.RedEngine/RedModDeployTool.cs @@ -1,7 +1,9 @@ using System.Reflection; using CliWrap; +using Microsoft.Extensions.Logging; using NexusMods.Abstractions.GameLocators; using NexusMods.Abstractions.Games.DTO; +using NexusMods.Abstractions.Games.Stores.Steam; using NexusMods.Abstractions.Loadouts; using NexusMods.Games.Generic; using NexusMods.Paths; @@ -13,9 +15,11 @@ public class RedModDeployTool : ITool { private readonly GameToolRunner _toolRunner; private readonly TemporaryFileManager _temporaryFileManager; + private readonly ILogger _logger; - public RedModDeployTool(GameToolRunner toolRunner, TemporaryFileManager temporaryFileManager) + public RedModDeployTool(GameToolRunner toolRunner, TemporaryFileManager temporaryFileManager, ILogger logger) { + _logger = logger; _toolRunner = toolRunner; _temporaryFileManager = temporaryFileManager; } @@ -42,8 +46,15 @@ public async Task Execute(Loadout.ReadOnly loadout, CancellationToken cancellati } else { - await using var batchPath = await ExtractTemporaryDeployScript(); - await _toolRunner.ExecuteAsync(loadout, Cli.Wrap(batchPath.ToString()), true, cancellationToken); + if (loadout.InstallationInstance.LocatorResultMetadata is SteamLocatorResultMetadata) + { + await using var batchPath = await ExtractTemporaryDeployScript(); + await _toolRunner.ExecuteAsync(loadout, Cli.Wrap(batchPath.ToString()), true, cancellationToken); + } + else + { + _logger.LogWarning("Skip running redmod, it's only supported for Steam on Linux at the moment"); + } } } From b7ab9933382b6a158b57331c9062dc643ee9071e Mon Sep 17 00:00:00 2001 From: Timothy Baldridge Date: Mon, 30 Sep 2024 06:40:25 -0600 Subject: [PATCH 34/35] Switch GraphQL calls to fragments (#2102) * Switch GraphQL calls to fragments * Re-add missing GQL file --- .../GraphQLResolver.cs | 6 +- .../Extensions/FragmentExtensions.cs | 70 +++++++++++++++++++ .../GraphQL/CollectionRevisionInfo.graphql | 19 ++--- .../GraphQL/CommonFragments.graphql | 24 +++++++ .../GraphQL/ModInfo.graphql | 12 ++++ .../NexusModsLibrary.cs | 63 ++++------------- 6 files changed, 127 insertions(+), 67 deletions(-) create mode 100644 src/Networking/NexusMods.Networking.NexusWebApi/Extensions/FragmentExtensions.cs create mode 100644 src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/CommonFragments.graphql create mode 100644 src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/ModInfo.graphql diff --git a/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/GraphQLResolver.cs b/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/GraphQLResolver.cs index 053b2cba0f..e278def657 100644 --- a/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/GraphQLResolver.cs +++ b/src/Abstractions/NexusMods.Abstractions.NexusModsLibrary/GraphQLResolver.cs @@ -20,14 +20,14 @@ public readonly struct GraphQLResolver(ITransaction Tx, ReadOnlyModel Model) /// /// Create a new resolver using the given primary key attribute and value. /// - public static GraphQLResolver Create(IDb referenceDb, ITransaction tx, ScalarAttribute primaryKeyAttribute, THighLevel primaryKeyValue) where THighLevel : notnull + public static GraphQLResolver Create(IDb db, ITransaction tx, ScalarAttribute primaryKeyAttribute, THighLevel primaryKeyValue) where THighLevel : notnull { - var existing = referenceDb.Datoms(primaryKeyAttribute, primaryKeyValue); + var existing = db.Datoms(primaryKeyAttribute, primaryKeyValue); var exists = existing.Count > 0; var id = existing.Count == 0 ? tx.TempId() : existing[0].E; if (!exists) tx.Add(id, primaryKeyAttribute, primaryKeyValue); - return new GraphQLResolver(tx, new ReadOnlyModel(referenceDb, id)); + return new GraphQLResolver(tx, new ReadOnlyModel(db, id)); } /// diff --git a/src/Networking/NexusMods.Networking.NexusWebApi/Extensions/FragmentExtensions.cs b/src/Networking/NexusMods.Networking.NexusWebApi/Extensions/FragmentExtensions.cs new file mode 100644 index 0000000000..4151a111e1 --- /dev/null +++ b/src/Networking/NexusMods.Networking.NexusWebApi/Extensions/FragmentExtensions.cs @@ -0,0 +1,70 @@ +using NexusMods.Abstractions.Games.DTO; +using NexusMods.Abstractions.NexusModsLibrary; +using NexusMods.Abstractions.NexusModsLibrary.Models; +using NexusMods.Abstractions.NexusWebApi.Types; +using NexusMods.MnemonicDB.Abstractions; +using NexusMods.Paths; + +namespace NexusMods.Networking.NexusWebApi.Extensions; + +/// +/// Extensions to GraphQL fragments. +/// +public static class FragmentExtensions +{ + /// + /// Resolves the IUserFragment to an entity in the database, inserting or updating as necessary. + /// + public static async Task Resolve(this IUserFragment userFragment, IDb db, ITransaction tx, HttpClient client, CancellationToken token) + { + var userResolver = GraphQLResolver.Create(db, tx, User.NexusId, (ulong)userFragment.MemberId); + userResolver.Add(User.Name, userFragment.Name); + userResolver.Add(User.Avatar, new Uri(userFragment.Avatar)); + + var avatarImage = await DownloadImage(client, userFragment.Avatar, token); + userResolver.Add(User.AvatarImage,avatarImage); + return userResolver.Id; + } + + /// + /// Resolves the IModFragment to an entity in the database, inserting or updating as necessary. + /// + public static EntityId Resolve(this IModFileFragment modFileFragment, IDb db, ITransaction tx, EntityId modEId) + { + var nexusFileResolver = GraphQLResolver.Create(db, tx, (NexusModsFileMetadata.FileId, FileId.From((ulong)modFileFragment.FileId)), (NexusModsFileMetadata.ModPageId, modEId)); + nexusFileResolver.Add(NexusModsFileMetadata.ModPageId, modEId); + nexusFileResolver.Add(NexusModsFileMetadata.Name, modFileFragment.Name); + nexusFileResolver.Add(NexusModsFileMetadata.Version, modFileFragment.Version); + if (ulong.TryParse(modFileFragment.SizeInBytes, out var size)) + nexusFileResolver.Add(NexusModsFileMetadata.Size, Size.From(size)); + return nexusFileResolver.Id; + } + + /// + /// Resolves the IModFragment to an entity in the database, inserting or updating as necessary. + /// + public static EntityId Resolve(this IModFragment modFragment, IDb db, ITransaction tx) + { + var nexusModResolver = GraphQLResolver.Create(db, tx, NexusModsModPageMetadata.ModId, + ModId.From((ulong)modFragment.ModId)); + + nexusModResolver.Add(NexusModsModPageMetadata.Name, modFragment.Name); + nexusModResolver.Add(NexusModsModPageMetadata.GameDomain, GameDomain.From(modFragment.Game.DomainName)); + + if (Uri.TryCreate(modFragment.PictureUrl, UriKind.Absolute, out var fullSizedPictureUri)) + nexusModResolver.Add(NexusModsModPageMetadata.FullSizedPictureUri, fullSizedPictureUri); + + if (Uri.TryCreate(modFragment.ThumbnailUrl, UriKind.Absolute, out var thumbnailUri)) + nexusModResolver.Add(NexusModsModPageMetadata.ThumbnailUri, thumbnailUri); + return nexusModResolver.Id; + } + + private static async Task DownloadImage(HttpClient client, string? uri, CancellationToken token) + { + if (uri is null) return []; + if (!Uri.TryCreate(uri, UriKind.Absolute, out var imageUri)) return []; + + return await client.GetByteArrayAsync(imageUri, token); + } + +} diff --git a/src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/CollectionRevisionInfo.graphql b/src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/CollectionRevisionInfo.graphql index 8473b39dda..efea25fd58 100644 --- a/src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/CollectionRevisionInfo.graphql +++ b/src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/CollectionRevisionInfo.graphql @@ -1,3 +1,4 @@ +#import { UserFragment, ModFragment, ModFileFragment } from './CommonFragments.graphql'; # Pulls all the information we need about a collection revision. query CollectionRevisionInfo($slug: String!, $revisionNumber: Int!, $viewAdultContent: Boolean!) @@ -20,18 +21,9 @@ query CollectionRevisionInfo($slug: String!, $revisionNumber: Int!, $viewAdultCo gameId, fileId, file { - name, - modId, - fileId, - version, - sizeInBytes, + ...ModFileFragment mod { - name - game { - domainName - } - thumbnailUrl - pictureUrl + ...ModFragment } } updatePolicy, @@ -53,11 +45,8 @@ query CollectionRevisionInfo($slug: String!, $revisionNumber: Int!, $viewAdultCo id } user { - name - avatar - memberId + ...UserFragment } - } } } diff --git a/src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/CommonFragments.graphql b/src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/CommonFragments.graphql new file mode 100644 index 0000000000..f27b5fada4 --- /dev/null +++ b/src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/CommonFragments.graphql @@ -0,0 +1,24 @@ + +fragment UserFragment on User { + name + avatar + memberId +} + +fragment ModFileFragment on ModFile { + name, + modId, + fileId, + version, + sizeInBytes +} + +fragment ModFragment on Mod { + modId + name + game { + domainName + } + thumbnailUrl + pictureUrl +} diff --git a/src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/ModInfo.graphql b/src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/ModInfo.graphql new file mode 100644 index 0000000000..894a14b68c --- /dev/null +++ b/src/Networking/NexusMods.Networking.NexusWebApi/GraphQL/ModInfo.graphql @@ -0,0 +1,12 @@ +#include { ModFragment } from './CommonFragments.graphql' + +query ModInfo($gameDomain: String!, $modId: Int!) +{ + legacyModsByDomain(ids: [{gameDomain: $gameDomain, modId: $modId}]) + { + nodes + { + ...ModFragment + } + } +} diff --git a/src/Networking/NexusMods.Networking.NexusWebApi/NexusModsLibrary.cs b/src/Networking/NexusMods.Networking.NexusWebApi/NexusModsLibrary.cs index 08880a2093..e378abe252 100644 --- a/src/Networking/NexusMods.Networking.NexusWebApi/NexusModsLibrary.cs +++ b/src/Networking/NexusMods.Networking.NexusWebApi/NexusModsLibrary.cs @@ -12,6 +12,7 @@ using NexusMods.Extensions.BCL; using NexusMods.MnemonicDB.Abstractions; using NexusMods.Networking.HttpDownloader; +using NexusMods.Networking.NexusWebApi.Extensions; using NexusMods.Paths; using User = NexusMods.Abstractions.NexusModsLibrary.Models.User; @@ -48,28 +49,15 @@ public NexusModsLibrary(IServiceProvider serviceProvider) using var tx = _connection.BeginTransaction(); - var modInfo = await _apiClient.ModInfoAsync(gameDomain.ToString(), modId, cancellationToken); - - var newModPage = new NexusModsModPageMetadata.New(tx) - { - Name = modInfo.Data.Name, - ModId = modId, - GameDomain = gameDomain, - }; - - if (Uri.TryCreate(modInfo.Data.PictureUrl, UriKind.Absolute, out var fullSizedPictureUri)) + var modInfo = await _gqlClient.ModInfo.ExecuteAsync(gameDomain.ToString(), (int)modId.Value, cancellationToken); + EntityId first = default; + foreach (var node in modInfo.Data!.LegacyModsByDomain.Nodes) { - newModPage.FullSizedPictureUri = fullSizedPictureUri; - - var thumbnailUrl = modInfo.Data.PictureUrl.Replace("/images/", "/images/thumbnails/", StringComparison.OrdinalIgnoreCase); - if (Uri.TryCreate(thumbnailUrl, UriKind.Absolute, out var thumbnailUri)) - { - newModPage.ThumbnailUri = thumbnailUri; - } + first = node.Resolve(_connection.Db, tx); } - + var txResults = await tx.Commit(); - return txResults.Remap(newModPage); + return NexusModsModPageMetadata.Load(txResults.Db, txResults[first]); } /// @@ -88,7 +76,6 @@ public NexusModsLibrary(IServiceProvider serviceProvider) var db = _connection.Db; var collectionInfo = info.Data!.CollectionRevision.Collection; var collectionTileImage = DownloadImage(collectionInfo.TileImage?.ThumbnailUrl, token); - var avatarImage = DownloadImage(collectionInfo.User.Avatar, token); var collectionBackgroundImage = DownloadImage(collectionInfo.HeaderImage?.Url, token); // Remap the collection info @@ -99,13 +86,8 @@ public NexusModsLibrary(IServiceProvider serviceProvider) collectionResolver.Add(CollectionMetadata.TileImage, await collectionTileImage); collectionResolver.Add(CollectionMetadata.BackgroundImage, await collectionBackgroundImage); - // Remap the user info - var userResolver = GraphQLResolver.Create(db, tx, User.NexusId, (ulong)collectionInfo.User.MemberId); - userResolver.Add(User.Name, collectionInfo.User.Name); - userResolver.Add(User.Avatar, new Uri(collectionInfo.User.Avatar)); - userResolver.Add(User.AvatarImage, await avatarImage); - - collectionResolver.Add(CollectionMetadata.Author, userResolver.Id); + var user = await collectionInfo.User.Resolve(db, tx, _httpClient, token); + collectionResolver.Add(CollectionMetadata.Author, user); // Remap the revision info var revisionInfo = info.Data!.CollectionRevision; @@ -121,38 +103,21 @@ public NexusModsLibrary(IServiceProvider serviceProvider) foreach (var file in revisionInfo.ModFiles) { var fileInfo = file.File!; - var modInfo = fileInfo.Mod; - var nexusModResolver = GraphQLResolver.Create(db, tx, NexusModsModPageMetadata.ModId, ModId.From((ulong)fileInfo.ModId)); - nexusModResolver.Add(NexusModsModPageMetadata.Name, modInfo.Name); - nexusModResolver.Add(NexusModsModPageMetadata.GameDomain, GameDomain.From(modInfo.Game.DomainName)); - if (Uri.TryCreate(modInfo.PictureUrl, UriKind.Absolute, out var fullSizedPictureUri)) - nexusModResolver.Add(NexusModsModPageMetadata.FullSizedPictureUri, fullSizedPictureUri); - - if (Uri.TryCreate(modInfo.ThumbnailUrl, UriKind.Absolute, out var thumbnailUri)) - nexusModResolver.Add(NexusModsModPageMetadata.ThumbnailUri, thumbnailUri); - - - var nexusFileResolver = GraphQLResolver.Create(db, tx, (NexusModsFileMetadata.FileId, FileId.From((ulong)fileInfo.FileId)), (NexusModsFileMetadata.ModPageId, nexusModResolver.Id)); - nexusFileResolver.Add(NexusModsFileMetadata.ModPageId, nexusModResolver.Id); - nexusFileResolver.Add(NexusModsFileMetadata.Name, fileInfo.Name); - nexusFileResolver.Add(NexusModsFileMetadata.Version, fileInfo.Version); - nexusFileResolver.Add(NexusModsFileMetadata.Size, Size.FromLong(long.Parse(fileInfo.SizeInBytes!))); + var modEId = fileInfo.Mod.Resolve(db, tx); + var modfile = fileInfo.Resolve(db, tx, modEId); var revisionFileResolver = GraphQLResolver.Create(db, tx, CollectionRevisionModFile.FileId, ulong.Parse(file.Id)); revisionFileResolver.Add(CollectionRevisionModFile.CollectionRevision, revisionResolver.Id); - revisionFileResolver.Add(CollectionRevisionModFile.NexusModFile, nexusFileResolver.Id); + revisionFileResolver.Add(CollectionRevisionModFile.NexusModFile, modfile); revisionFileResolver.Add(CollectionRevisionModFile.IsOptional, file.Optional); } var txResults = await tx.Commit(); return CollectionRevisionMetadata.Load(txResults.Db, txResults[revisionResolver.Id]); } - - /// - /// Load an image from a URI - /// - public async Task DownloadImage(string? uri, CancellationToken token) + + private async Task DownloadImage(string? uri, CancellationToken token) { if (uri is null) return []; if (!Uri.TryCreate(uri, UriKind.Absolute, out var imageUri)) return []; From d2d38c3a460af20441eb8d222c149691f81e0dfe Mon Sep 17 00:00:00 2001 From: Simon Davies Date: Mon, 30 Sep 2024 16:34:03 +0100 Subject: [PATCH 35/35] Collection page header styling (#2105) * WIP restyle of collection header can't get the main chunk to stay left! * sort of fixed * updated comments * re-enabled background image and design tweaks dark linear gradient been added text tweaks from @captainsandypants --- .../CollectionDownloadView.axaml | 118 +++++++------ .../CollectionDownloadView.axaml.cs | 8 +- .../Styles/StylesIndex.axaml | 2 +- .../CollectionDownloadPage.axaml | 90 ---------- .../CollectionDownloadPageStyles.axaml | 166 ++++++++++++++++++ 5 files changed, 236 insertions(+), 148 deletions(-) delete mode 100644 src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/CollectionDownloadPage/CollectionDownloadPage.axaml create mode 100644 src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/CollectionDownloadPage/CollectionDownloadPageStyles.axaml diff --git a/src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadView.axaml b/src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadView.axaml index 2e5ebca6e0..0fd2a97f08 100644 --- a/src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadView.axaml +++ b/src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadView.axaml @@ -1,5 +1,5 @@ - - + @@ -48,59 +48,74 @@ - - - - - - - - - COLLECTION DOWNLOAD - - - - - + + + + + + + + + + + + + + COLLECTION DOWNLOAD + + + + + + + + + + - - + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + @@ -122,4 +137,3 @@ - diff --git a/src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadView.axaml.cs b/src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadView.axaml.cs index d113bd5f75..9cf1bcf580 100644 --- a/src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadView.axaml.cs +++ b/src/NexusMods.App.UI/Pages/CollectionDownload/CollectionDownloadView.axaml.cs @@ -15,19 +15,17 @@ public CollectionDownloadView() { // Uncomment this to enable the background image - /* this.WhenAnyValue(view => view.ViewModel!.BackgroundImage) .WhereNotNull() - .SubscribeWithErrorLogging(image => Body.Background = new ImageBrush { Source = image }) + .SubscribeWithErrorLogging(image => Body.Background = new ImageBrush { Source = image, Stretch = Stretch.UniformToFill}) .DisposeWith(d); - */ this.WhenAnyValue(view => view.ViewModel!.TileImage) .WhereNotNull() - .SubscribeWithErrorLogging(image => Image38.Source = image) + .SubscribeWithErrorLogging(image => CollectionImage.Source = image) .DisposeWith(d); - this.OneWayBind(ViewModel, vm => vm.Name, view => view.Title.Text) + this.OneWayBind(ViewModel, vm => vm.Name, view => view.Heading.Text) .DisposeWith(d); this.OneWayBind(ViewModel, vm => vm.AuthorName, view => view.AuthorName.Text) diff --git a/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/StylesIndex.axaml b/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/StylesIndex.axaml index 6537664d20..9d4bc87292 100644 --- a/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/StylesIndex.axaml +++ b/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/StylesIndex.axaml @@ -31,7 +31,7 @@ - + diff --git a/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/CollectionDownloadPage/CollectionDownloadPage.axaml b/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/CollectionDownloadPage/CollectionDownloadPage.axaml deleted file mode 100644 index 11ad5d4306..0000000000 --- a/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/CollectionDownloadPage/CollectionDownloadPage.axaml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/CollectionDownloadPage/CollectionDownloadPageStyles.axaml b/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/CollectionDownloadPage/CollectionDownloadPageStyles.axaml new file mode 100644 index 0000000000..73a21923f5 --- /dev/null +++ b/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/CollectionDownloadPage/CollectionDownloadPageStyles.axaml @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +