From cb16c8feac0b47c08ed304362d473a8b86995407 Mon Sep 17 00:00:00 2001
From: Jannis Braun <151788261+TheZwiss@users.noreply.github.com>
Date: Wed, 1 Jul 2026 01:06:08 +0200
Subject: [PATCH] docs: add screenshot showcase to README + gallery
Replace the placeholder Screenshots section with a hero voice/video shot
and a curated 6-shot grid (chat, screen-share controls, spaces, federated
DMs, social discovery, federation admin), linking to a new
docs/screenshots.md gallery of all 14 shots grouped by feature.
Images are optimized to 1600px WebP (~1.2MB total vs ~45MB raw); raw
originals in demo-pictures/ are gitignored.
---
.gitignore | 3 +
README.md | 50 +++++++--
docs/screenshots.md | 107 ++++++++++++++++++++
docs/screenshots/admin-federation.webp | Bin 0 -> 79676 bytes
docs/screenshots/admin-streaming.webp | Bin 0 -> 73436 bytes
docs/screenshots/chat-moderation.webp | Bin 0 -> 82910 bytes
docs/screenshots/chat.webp | Bin 0 -> 88160 bytes
docs/screenshots/file-sharing.webp | Bin 0 -> 71840 bytes
docs/screenshots/friends.webp | Bin 0 -> 49120 bytes
docs/screenshots/gif-picker.webp | Bin 0 -> 74520 bytes
docs/screenshots/group-dm.webp | Bin 0 -> 50794 bytes
docs/screenshots/screen-share-settings.webp | Bin 0 -> 82520 bytes
docs/screenshots/space-discovery.webp | Bin 0 -> 87432 bytes
docs/screenshots/user-discovery.webp | Bin 0 -> 100918 bytes
docs/screenshots/voice-call-pip.webp | Bin 0 -> 89582 bytes
docs/screenshots/voice-streams.webp | Bin 0 -> 129474 bytes
docs/screenshots/voice-video-grid.webp | Bin 0 -> 140700 bytes
17 files changed, 150 insertions(+), 10 deletions(-)
create mode 100644 docs/screenshots.md
create mode 100644 docs/screenshots/admin-federation.webp
create mode 100644 docs/screenshots/admin-streaming.webp
create mode 100644 docs/screenshots/chat-moderation.webp
create mode 100644 docs/screenshots/chat.webp
create mode 100644 docs/screenshots/file-sharing.webp
create mode 100644 docs/screenshots/friends.webp
create mode 100644 docs/screenshots/gif-picker.webp
create mode 100644 docs/screenshots/group-dm.webp
create mode 100644 docs/screenshots/screen-share-settings.webp
create mode 100644 docs/screenshots/space-discovery.webp
create mode 100644 docs/screenshots/user-discovery.webp
create mode 100644 docs/screenshots/voice-call-pip.webp
create mode 100644 docs/screenshots/voice-streams.webp
create mode 100644 docs/screenshots/voice-video-grid.webp
diff --git a/.gitignore b/.gitignore
index 66ce5ebb..afaf9401 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,6 +34,9 @@ id_ed25519*
# Generated deployment config (contains secrets)
livekit.yaml
+# Raw screenshot originals — optimized WebP copies live in docs/screenshots/
+demo-pictures/
+
# OS files
.DS_Store
Thumbs.db
diff --git a/README.md b/README.md
index 003051cd..7dcc88de 100644
--- a/README.md
+++ b/README.md
@@ -32,18 +32,48 @@ inside a business — but not to resell as a hosted service. See
## Screenshots
-
-_Screenshots coming soon._
+
+
+A voice channel in full swing — camera tiles alongside live screen-shares, each with its own resolution / frame-rate label.
+
+
+
+
+ ![]() + Text channels — Markdown, replies, reactions, read states, and live typing indicators. + |
+
+ ![]() + Screen-share controls — resolution, frame rate, codec, and bitrate, within admin-set bounds. + |
+
+ ![]() + Spaces & discovery — browse public, request-to-join, and joined spaces. + |
+
+ ![]() + Direct messages — 1-on-1 and group DMs, including members on peer instances. + |
+
+ ![]() + Friends & social — find people across instances with mutual friends and spaces. + |
+
+ ![]() + Federation admin — manage peered instances, relay, and secret rotation. + |
+









@instance handles).
+




ThK-fPBXUP^v#6C`lx@riTI*L$x<(8au{))@L!lF|va2g4HS9|w|M?zBEMcG>K zg1nWc-*fwYDCScEmGTL7w#%&kN>F8bS)grsJ$oC(c6h)bBCo$;ZOoX{lZ{H)+hp|A z$A5`lJeR>%@7KVCrYAYT2h?gD330CP>=DhO80%Efz<%B#n0kBgn@PzMgc6Rd&Qdr3 zZNvN1Z%$AGwN@2HjIPD8RQ1{DAbvl0YEVx4$f(`JwHYf_K1Ml;TE7nKX5{Z{SbK!i zB#-+#m@)I!3d;EOKrUj_VNgYnTbE*b1kv;PstIx9I3M;%)L6VrP4!LoBV7(4b{>LR zP8mA{`+ivs+~28WN$bhpO0YyL2fsfr>(F;80%1;>FnYO%l6hKLoa{axbDapD@#yai z*$ItGdjv$LR3Jp-Q3FrHj5c}!NH-Dl!|==cL(ATDX_DZ(s_^4*4cqxo0zp@(R*YWj-AKUG+WZmSQ(lYNRX%=?8_ ziaZ^v! nnejl?9=A0yB|0rHu@ParV5Ff zOa3XY5z4eISg-RMd+=T$k?GmlbwXDLTWW|?j-94+rYr0%qZk*Z=wub7Y1E=CLe-Il z1ADpzD15Bv8Wt9V;o50(n*$Kvuuc@IO10@^aBxfd+$7PLL>R2(NwW5^4z=w75dT2r zfTMi` pBU*fa@6ic&k#PmdWmfw>@owmpeKY6gfvf=IyV&_LS8-i| zW7aQFMr~n^Pt=RI0>|~;Ut{QbBi~L!h4WNhWBK7 z{pIVxen7xR=G{SQE~lH57v0h4sGsP+;+$d)jJxf8DO`&Vjbblf($e``)Gp74(hN4( z4P)(_M zk+F$hs@;!wYDf{ZFH9*!O4lQVO*FV6{%4OQ_r$`UQgHyn=lK;$_4Q2!rR&5u$a|$0 zfX7vcm9bI|m%Vc|0>Jo>#iD>u-Y&B#NGaY#Wm)h_(!}IzLwOL7Xuwv>&TUP@V4iR2 zP1<{MY?Aa4nod5Qaakga*|np!Smm_uzUWfGCw=0WZ~wZpDh-nGK%r^25wm^MYql?W ztT_#T|3=5JK4 PKT!u-%aun-_SVHbo|Ze=8_{)6 zN3Mdhi1Wua+_59fa!`OPFYWr~Y@`K}5omtZ-9p$_fg=SU+>P8r=OBCrM%vb*Z#-*% z9R1p@I{W|(+`u+J$ZIAB)E+>ouj%DaIw&O+wi&Aeq(@`Wnyu2lX)7}3fyVz$RRP!f zA4PEAu;M1CE9w=wwX|M?-&0-!`1ULmr;HwRyt`7O;EZ5fUHwfYL67&BarXp}?|$CF zgB $Ch`E*Ng)vG(L4-_0=L!0uK%{U`R9= z&h9YB|IfM`8ST)Fr$jOZl^H}v2G250>oxXK L!6&f*W17;Z>UShWa7gW=exrY0I#ohLM zdi(&Ux9vV&n#mUd(LW_)VQl~)6(ekZ)C!Vu-xP2$O@fIp1~094FZP+Q1N+Kqg-1)N zufqQ}aTg!`BO8* kV;b!+)q)Ga;}f^vO+o3@`-&bvjRkJJZoffOv9 zw_`EuvB<9t2lzmMKv5+9Lz^RJB42bCJU@rW +$Pvr(O<&4M4cBAdp3JU#H6frd+*7Ld25_Zz4h$6`Z* zTy8w!V+(q6&Mr_GrX~orsS>R2wdaqnc%e7=&w~I15mvLnSdy#L^;ACW=wtIR(uR#( zXqbR00K~z?c$Q1ra)&f&9{Lwu)55fJJ{sfvt>AGHD3|)*y9LW35Fqo3k4t!f7y}L6 zq0o#d%&e)q%Fw?;$gKdVleIBM@D;^WQG =)`HOs>`nQtW?U~nJYpPzA1~xbSZj8KK+Ke)o6W;~1$gw9-Soqk zv;6gRTs^`*=SrT(<$p ~Drty4S zbSVW|Q1E#LPq29EqSxakBmY&0qukVM7H#Ly$OJaCA;vbH-K!Z}GQhV+0%!KG 2(i6dlmXN@*?BexD $xRyzQEu1h@`$Z*Pl^89a#mGt zUUxuQN#J54wBJg}W$Lhn7}h*H6c6nrN6;pUfG%gQnKFBx&C{gH0Yz*W6?oA9u%-Vi zP7LBkwD5g5AN(v$*Fe>7`j4l_Dc|L>0gS3AyXH&AHb >)JIJOiE`S*TaALyJ(ZC7jbw^x9}0 zLCB^@iZg-{^OG5rxxe~QCt*Z6VtFwoVNXyLmyTNYy>Fj_kNoJfNxIr5cXB79I+m2J z(b~iRflbTeV(?7%Oh;(_#5Amw);*ysYwgd|;GyCv7IEHJJuYdMR9h;h^I*v$wzE_n zFb8YKRe%Ci(z{47BU@>0p-zy$_lO4>&2JIkscBRo_8;**_kQb!X^7z0ku07|DiBO- zCZ0&nY52p(W&*r`Q3*!Xc+-@1D>!`4JvXpp{v`W?>-C6v!hBK?72gD)e~C`1vLP1Z z;WWpU9xrUmRW)ovr|Xi!BF;dmag7h{;8&Y-9mxCY*YKBX6>o}&>drQ+1>$}u#C^Qp zX^z%L=>sPmyh6wlu;u_|IGWt~K-RO_+i^P_$YAq$s~Fw=DNGRZ$>{Qp$X9aNb?|Ng zx;DDHmB>toOTeA5N)vTf9%*0EP+JaFYPJv$dIyyAs`?ZH+mdUuw~wPXi3d^r%!##d zOFoCe8+R8Z^bm~(u2Q~63v4CkymB(KCr1(wvqXHi2(e};Xea{;RywPc>tr1cOg=nk zXi>9)vM*3UF|CG_{aFea(H3YxDlmS{dOrsH%k+=1ll|S|EoUg#`XT9|Up-9m)V~0~ zjW;Hzx)eq-w@J8!Qr#NFHrOyP94=51-%&`Xy2s2PLyCJu2=u)?DL0+aEK1 -~ z0`{stEDEx)m-KKBJ5)$Q8|MOHAn@r@-|1$}Oo(Nq%NwZ83XcthqiS@=J7#x&NSE_J zpva82vn{{;pyMfj^?jxQz!GOZr5WYACis%*0*YmAkus`de?~q_k<*}2ak!YVvQ)NB zXR26o(ihTWjO*j|gj8C&Q&jJ8>X-mHHwwKDOJi#w);m-Mlo~${xdB$aW=3@L3`R4|JLq{1b#yF$}I+Y{> z9!iAZVFB?az2pe2^rMLTNdX(JPWnoxQ;egB!y1o+;J91Fu^F{qBEoJCB-y)xcpH?` zgho+jEnZ?ux^}!k#WG-F=+JMFV+o0nJxoZj8)D==2mk=f2>`fNM~k8V1vL+<_0okB zV*Sn{Unria(14Q)6^gO^0%OgoE9ry*>OmjN$4Uu%glr$?ksOtISAiDpP3S=Eju~%g zdKAdHL=o=%AjG|~idOpOQZ9>kTrBAI5ytwuQn{CVa&m~8N*G`rMPu8JQAR`Kd@Si_ zPxz9Ey<%oU)V{w)l6-$yJs?rQ21|&0DVp)`Kr-7_I6X7Fk2A;7!UT?bqkQ;_aIH2c zv4Z&15Tc|RnMR1g8@5iUE4{XAf0&{I1&9DA_t3Qio#bXFF#@kCaw36zQ{xE6I?I$B zIO__CLlHyvT>By1gS}CawlL}z;4{?v40OG;7yA_VcPyErj8<)L@l>+X3U;dk*?*=b z>*EW$)*`yBlQ&stG00Ig@_+VlD(vgHu)((VtqawW?MFD7>thKBPA3m62Ph9v;Nl=z znbS+!pjO;y9@hCl|I@9wgvmv^cFIQs3IF%ne}HlJ@D Oupcz^NKGQ!q?!=(-;nh%m*4VyN#|n&!NU( z=H=8=+D;u75|Iq_7Td%|Lc!EV+SiV5zMF|du~&Wq2C01J0BlyHD}TmZ%hE`C!>Q`( zY{LO*20NxE xml{NiO?Qm#zZ#mdG6|uUlD$WC|rt^l;x__&u47pe-MJ z-SC+los`Xg0uUjxh>l+t_A@k`=ix35vnhBm5L;CdxZDhiCZe9wxIT-LPprCn)yQZ> z25BrQoTQY%=`G*9RMWqmJG4qBiH7|5NPV3TsivC$Z+@n({>}o+T)}-g3}l)a${=W> zVWKMTWpenp#_2k919^2MDVRBzRfN8{P}rtr;k0Y9ixzaor76&QW5@F02wwM7(;pcZ z@$$m3azq;)_L!A!PX^MUzJwAeJb+>P18PshXeK+hGzK!(0Vlfb6ZLZ8QXI~-OgboR zv{KG|F1>mJ e$Z$UkUckFNy !RC8b2Bs^FT*Z<*sRhVte_NJgy; zmzHM;bLJ>H729?0Le0i(p}Qo#2hkC(er?G+m-07t#Gp{*GrY{{I{B0?t%=cCovdc( zI({zldc|Z!wH3sy0%J8q7e<5tA5H*}XkoaRdQM08bYdh$GaZLC-1(m^5Bvtj)wMz; zF4-&*!)IW!&l3`vW{Uh@ZDBXoV$KdTm7D4UZxN2Pcf|BuX$BG&D3GOZZQr ^B}wd3rC3Ec;A(db6g2m zIdVhJ6tUxJ=bOsI6`DowRHIR88E6KdT|_qy8p1=;6S^fv;Ih5WC&&4e)6sFpyYeaD z8Ovst;*;PAA+4R!E^ht68@v q@?=#i-Wg$2OBmfv$IA(1{L%Uo8(#Jb(&RklgtH-*+4HZ8mItq zKTzYwDEIiHu@b*^IQ&Mc(%Zl2xqy)5yvU=yNT$tAAr}bZKq2(@6eYX>qWCoRvGl2@ zkSMI8M_uh;rryytGlej<)JfB@ @92`Poe z%8e_QT1LFiEv8ZOUfsQ#N|6 `o*Is5<7-OSXqH`64Yt!|ZFw7ctb2Tg?# zp|xTU6J20-&J{Ca6FPu-7zv7Nu5@&^x<;MZS&MHVAmGCjndgWVwyK^QbKGsnK=^*C zd~i{?C(9Iifp)B#7Kz|2zJwfO$RujXGd5`*`is%4=5E6=6%t=aIT;RXWSk|@W`dTH z`;aHk7HCUNr75C>0m;N8T3R0{>ZgJZ{hbNURyz;Gn;_y7%B0W^7BFG4x0E0bnV2Q> zx$mRDQlb;&IVkc!c=_C+FIBK9g`T|wq@aXa`%Rl*NQ&kvB& KL5PIW Ic~RWk1r0( z9Xx~h42vZxB6WVtk7wCbmF+drEJ-T`<)Y3N=xHj=WG?Qgj&;uT==F;@abs{!(ScrK z=_*x9nnv=b9@s-*_Ex7rI;TO0yUk{oX868Vg%4OATLI*-P+rkDXM~V^t(@4A*^PQ4 zoFn;&a?7r}8BAAcWJ4EYsfL4Y4%#$D^nf6bZn!hAhXT=tp&Z#H+FS-1c^02Nznj(t z qSX$#G{{1wm98^ ynn zVd!ZmezgiNiGXNmB;E`^>pQ=%&wFPCthg{CSV6Z6FHQ|ErYU|7T|8YRY;pu`n~Pn- zC$Ps^o*-UzPg6%0`QFCo7Fr#1 |}fZ zpga?U0K 3V^K=^U$$fE8f=Bz0X!cos+B}TJLJ&U}x~$Y}-<|kiymx z6#&OiV|6gikG9Vj52-&>4AxD;-uq s{$O5@WhMUs=+cg zyGhb3*1W+Vw6DUE+--UtYH#)5lMjRI$5v-<=F$3qE>2jRvA|v$&z@?m{*5178r0<> z?X( t00D}6_e&esf@04U`!Z0t-6iChMGoeZMZKlUA{ zCzBmx#7hnwm$)((pau_x9$;#P^uopk9_yR=PXAX)mX5aYvX|cu%Gpjx>a9;Li8T3% z2%Ocr6q1Frv~P&HHzhoe)T!wdtm#I-k*zLX@I+(Zv~3ZxrD)4#qO@~`jYK4QJGHF@ z!cd^Y)ornPPU+%-EW~|}llkFo2hHG$#Tiu>nQ7*gUA0H}!6yfFNHW+I!lBC<$|rub zpvC|e#$y>r {KTIy?D3&*;-sphO_5}4Tuah(D_F}T{yZ@*!_P1O+d20j4B6g z^Ez)4H#(Pm7x|q}AER@BmKvcSjlcY6AjYkvx7N2H=*@o()`RAOFR|ZD@ntdPS8g>I znB6=}J?Y3~5F|m<7Tr#lS7imBPXK2X0A_l!dn9^jBRzJtJ$yjNzyJUMC*k***fp9} zlu-{i+0a2c;Q+0yzho2HOxnxy-1qYzvu#L=qRyOy&Uv*C>BJ)w_12A)>R2jV_Al(A zi@Y>Kn6h>L9FkPje8KjiaaTUmKoj6e7rCVv0YlU)=v~Ppz4c%K(EY%paNGY(u7wGc zQoZ-%v|u;?rJQ=!mFW*DI|DYD5227SqWUv=1YwsSw2QLNoEdh5i>A-lSEde;SLfDQ z2yW*ehlqO0p(Vf5+lBtZ2n8A_5BmF=(&Vf10YIPO!}7`d*klMillEK?IK@wdZMnOf z2J$)ouXwSB>4vQM7Wa5LJF$RMICaIX+9!{=$B@aY=V{d^rS6YrWP09=)b<$J`FMmX z${xmdQ0GmKTNRdXqK+8{oC+c$+#0)*T3KKwE;(0L%N7d%0xvJz bmvu+8Z={kS13UFoHbV_WBn|Q-~bje z0lmlw_htUJ3Gl_?U}-@?H$P+k%CA#ohph+O8#Up`v`i;MG~D+ZrDImVXqfO5^u7tK zSfB|2c~f+x<<_JEDii6>28oSt&;6?}^_%+(pAc%Bi_@Q{t@}q5xU2G3CpJ)j{sugY z)tsJI rO4yXKi#|RDtB8$~nI7&QmOK<&8 zPr-$MB8C{jsz%)zdc(~cB;$?z@I~;3>#JX$nj__h`1(|{E1kPA8z+6Izs^id1AXNf z?NEWbu4}!K6DoXl_-KE-*4W(&`Y```fl~ATpELgG)1A7_AB)saoCaoMfQe1Lgjq)L zJC|~j_$YhWjUcP+UJ<|YriHrge1+Yl!n4` -8IlMuw}ccvKjyfAQ^(Q_-(|xz!$)j|8*Pmw@{{@qtKs}Nku=2 za^yrDM)gjq7);pogHn#xdzfaIqyYU+6mACoZ&%twVo^0Ls!Aus*#tfwYUW3` ;5d;8Qfx<$=YOnEDd;ecQ{;H6$QvEL8yFj)$F5?)xNpjPtfZ#ao2QI? zC_m#z3bM-=89R}VHSv*wi)EEo12BI_{X_{yZ_?M@2ZN8%ocp_>&(KAzHOeGG>_=aQ z7T}8nPJLzNvRU=D9jbTWB@*L%rv+86m?!U;nthxm1G{SpKgJZdq1smAMi ;v*Gg_-MMDHU>Op*71hXbTOvH2kzF&AxfUViu(|@!wzl?hDE6M)2 z)@7NG6pmcs%VCG6^_#IPPX3?c^8qwBR^vazyzqWyWZ#y= pYh{^c!^Vno>uD1%#tDG$snW?W;~YG1C@gb;-c40G;XE8Cja$BBq29do zsxA*f=D88W#H5KW`fL-2hxU*&z4`yEU@INH3f<=|j+wwtk4^^S!;KVVxsM-CBu?i% zks6F{1{%3!{eUDmV4`#ZbwO10HMc z76A=|rFa}4G?!zDrh!@Rt=8+Bd;_hfY#ca*6!sM=$?LE})b5J_3cHTMZ3Rr>xB(Gz z$(j*k?E)alerM|xD@sf&3gSS8hG+{5hwIw+j3EMQT{RHL7yz&}#{o#_!nT-QPc^fi zoQ5R&p+DBp<8tNuzd?LJ5O94Ep3~Kb>$%%~+>kLA<5#|c+S7{r9%>G15N^=P6-`5e zm0E8p(tRN7%Z>PMR#p)ro!mwl^-VLHYf8*Z!%;93gZ-flh95%?tk}(oV+eCk_sP;r zE9|L^2308uWbvOYgf^I)F1zoOlcc7%G|C6Szr=)8h^sZ#9X&TZ;kh30laXBjwO1)O zY0oJYZ8$3siaLX{!I@SzxI7O(5E9#f4*9L_25bHQBk2ZI*R6FAy-?iQ`_n$Z+kExH z*R@JRx%IS;o;WoS@D&x-9(s-ZD7@x4%me=xXj#V@xA3^kpGVf@cCdBoV*(0rMctrr zlc`iga=CtyL9>lL#5UMqwL$`_^FZ)m*Eu=iC*EH_3VXf#;d|b`r}EYG9&2qIoY%kG zg@dh#PY2=+YwH5*;`(LF7W2EzGw>cmW#G4Rfr{%o8gU-&DGh4#@&ZpDxWrT{it4H8 zewEJ{_?SLSePekMg~LILPZyD-w{BxDA0L~bizhFa2HQ|$iSbXWx5pU?BFsK4p}wz& zdIm(8nH~qJYxkKVM*0*c+TFZsLp%keF0ahubiEN _dnk2T*>gl|*6mlfxjTK*4I5oF}#WZ#y*wieLp5DNUo*6dbUTJ*K13xAT b_j^?Mr;}DUq`ysd>8Sxi^xpxTDMhR7)fM%Ki&T z5pb7Rq{Ya5aIUoF1W$m`h5xP#mPmOI@u-a~xEVM9R^k|nA^t;XvzJs0=gUXv(N3Y& zp0&)rd=E{#_o&|)B3UV7{;2OZ_jsLo!FVb?U$1f=l}~lqw6y#IA-7F0-)Z3X2lw%q z6u6=yCA+1s*aU^B3G!jQ*@xOL?0&UrIgOSn)^7E6F4f^WyH*#DDhH^=#Wz(yPVvpk z45Q_ok2f-oo7No P-p5)&uH2kTiu z$D1t ^EL3X?8 Abi|%=9kE&z(+o94SLUc 4EFapcHl(|RV>8Iw-ZnxVRF4bWzjI-2HSpTP6* z6Gsi5-?vY&t7G26DvSFmH*$AH? `r_ 7i1l6X)CMF${7v*z(UJDFSMWhP?}9B z9hQscg-f;A3J;;oE|3aZL@a|wF!)ILIIQVN@PX|9JHKwo`tN=@NAwpb`>1 2-u!DyWZ)rqxc7BNHP`HjiF?7*?H3WLXku*+BQ8=ZjrEdvJTi8=}O3be-vcR z9&1D33=b&;S#<@kXzpI#QwLC9vHJde;-b33XUH1yN~@r?F$)|NGF8gt$8`8F&T#Mg z^uaDQ3@}aMdTE8;82d(KWbb)wG@LKT%IB;SI-zl1nfn#!we 4l1iesT1Q_V{>0n=~b72+J}ed z)_ut-STc2DhHPoK-esKjg>au?4p<11gr8htf6zE8KAop3lXSHYJc>9Wq_1=0!a?({ z?Vnf^3ih66I{4{U?q`HNKnd;!!@7a?R3}!o_>qQ!=Ub@+C`GetWF5+GR+$|_eqYd0 z3zeB!?P3RD=yXG5?Qe(#;G4<_hUflqm@S_wGJ?CWQrAUds1M6dA;~NIy(JOQS?PE= zsm{)BG?a^09%dy2)UsG3B&w@4B?g1-t#nw35qd|Is<*gE`B2v00K8-ku1NudOR6{M ze{MLD(LJKh<-G9>*96y@p=zwc7iOj|5xCv+f!#|)7&dJAZo*1*^X5!F2uSU#ou6Wh zUO$9RVOhd%v+gXBD!rRy1$XJ*pXG#v9wf5ungKz;7>^+ikS;kf2Acm8EK~oqmp32G zuT)oMDuv$RIbk+Sqz0gtyF8EF!68A6!&e^s*^E$-8^yR^LDBRTm0Y(A-oE>8u2JsC zt2y};uLe Ij G zY6E;hBPaDD_Mu36!YxqRst>(C6*T#Ap)qfaSGQA1ds|4vC$k_vSR&fx+7%#_o&UL@ zrKz=W kQOi;>E0ti)ssVP05Cki8 z6K1*Zhx?6swWhbblm8J8yR$}wA;X|0N*G qR?9SMG1eaD!uYF&jQ znV56W) J>iDW+?*wi^(i%NHxA>hQaW?AnFkc2IYwYS( z7HHW5OY-txIr(?bxrDsKnlBuz`bE3g l>(39NlCpxC|Eu7QXq!3Yvf z3chQ^9sFlx;o 21u31kvJR&%%cq0HO~Yu{kh*W;*G=^D%o=xF5UMiPUa >vJQa2%#sb D07(auk1yS6>$>9gO6(L4D~)vN`uK*)A|s_{% yDQ zUD#cBsAZ7(9>p^3s<|?uc0njkYRU-#s1&N7VW} JEB9%F0T4e`1ULC#WcbafS{s(4C6jUMxakDdjTpkz6g zG?x-g`fO&-_HV^ 0U4@{310m$RcVk*K75~MS-?L|$U2xU^>DcOVhr%LTa+eb)W&P`yH**9 z9K0>?mIctkC*ZY*wu75q`s08g(9E=Mb=idS<;l>>N!@brc=Bv^v+gRzJ$19MRujc7 z(b_l=Vw^o@zO+ff!%r*yn2V~fa3l|VONTMb$+m=_9ti1O TI~1q=%R=O+K1e$-IW=kG6!pg~UN-;!l(_N+xFy zZhawq1tA$uQc(o;SIT=oeFa1Q%4wH9_&qbRIEN3NbNyGN7;qs*{tOzl+NUWD=1B?= zr12abi?=X|=6J~BOldEMjZWtb6zyK(V76_7$)o$;j&a$mg=%TA7n5}EaZVqwRIsV( zi<89)jQeL(d_s#yUD!Wl6WMaUkVq#<|NN}clrF1Bd+1v!@ytl>mELP9M_@_-wM=8i z9Xe4%xzd7tuNHbZV}&7c!)!nLQU~D=0q6qx+q7y2BaOu!J*GVyUcLv3-D3^G8!lu+ zy*2KhB_#~;Lh1v^x2h#I9@U3Q_cFF@7DE~O`~%|Qny}2Ld>ij6i;65av*D!EsEN9& zXixqnA=jme3O>WLj5#G<;**~PGuW5p5ubaK2y*z1k7NoXBWb%_8Z9?l5aE)8CpM|D zJW=RZAj?D_I$RrOKO(%YHC}J6Pp?n0wz~X@PEH<2by^ prD&B}y`An8{Y1x2=%4}9^dPVmG3%B|s=bZrHr|(DpdY3^hN?O96 z#&t irb!SmnOW?`CNcjW&euOE*o=9BKAEsi+c_M7IN=G;^N? z?tC(@3Wu<8G*LZLJF1iO0;>LNg@kOs91?K$8(nwARpb44+Q0p&jzn3#{=`5#n}XX} z C71L@$5?WguxF1c|odQGCRkU*o1(+5CFF^S0dJF7-9MFd(j8AtRcO z==rycW{_euifMnYrvvPl!HFxpq8+JKf<-jE^pAS`;6suewm6CDWPD?=*uDR>$HipV z?!i!VZQ+=0mGP|(9mP-XYAT`2DI*2(ZZS)6mMZfoavxWJ4gZrRup37P2B4;aIRO zHvh>W#`3L2<-y4P+p-1|X` {$WQJf&Cw#+t}}27+%PNg0Zdu3F`H~&ih(1 zh%iC&JlItMzWE-Tqb$T3rlSm_)HCtRltGzV=pg=JreSd6p~S!c2%wRzh>GJpK%ylY zykVqv>m*dm1b^7k71ExB9sPU9UtCQ<*BgnaM2um#zOtm!VrTgnNzRdKxVvz7bnU{i zd$@f&I6oFbBQKN4NRe16AeTDkEEn^!DAUQ=0CQ2MA4gzyr_le;;C8ZrVqif6zm6es zJ8BLAKdBf96hIf=s=)C{DXg0C9KYx9A4U<>rj!3EeS_H*wlWoLgu{wb*kt>oJjo-R z%e2NerFA!Rs}tKDAIg1fmmLO5q;@IUBZ{mXK)E*Z&epmiVp7p6D^yl#J=%`wOko8C zHBVowdAYZ88?2C7W`JN^pd!bG6PLItOI6i_Xi}_izjj9Om`H-a!0`f-`5zGZ-L`%b zx5te2#9sz_hO{)r(DLK`(T^01`G5(VGz!jEnX8D!*m8LHG%AK74?N8wooo* qVgP-ZvGH?kGq7cy zIyANwBtd?j7??gSLw}6>pBBPb=-n _OzyVoDMc!40SP_jKp&iuqsW z)KxmdtR2%tTWzmZne)8r&%} DaUiSG0oH}(`^lW4S =05D!+9P zU(JMPnIn3*H&GPRXi-h;;ml?7xLQV@cpmU5Y8}Y)Jk8W6Ed>lQ)kKazn{12)2fbVa zEgykHkneO~?T>HRm>3^+9-ermpFF^OVtc5$9W;$R^+d2{T$4K!!32P1?bgo(DCrW~ zTjyqdvLI24!m!S1Q)j93gguMjzyEA!741N6A`#?lR`Ec_+&wxiv $dL^{J-w_1 z2c&oaidzXbC{A3vwD_{m(?`IB&&SDX-wz3-fc?hq6sM57wk%ZhEpMjgsdDAQm%C)K z1-lT!JJJTEluhJC@U1L`&jKu)X+j*qveZ4MsK2T8Txb>t=&*)ZJTg{Z?cNSP+Z2`T zVG)*y)8w6eWk7~es{}@^bq_A0IQ!lWQ*~~gvDd+~lbQ`F#xNqtFfr|yBlv`uC6NlS*ammKg&TA5h-_>%hSe6tW+x&jNmpja@u1_YnfA5OVry(Y2Z z>W73Jj;!i^ JyIhL-;$M|l z{jaU=KOMeB^dVJr?9fJQQxNm>PzMIN#X$YKIsEzWCmClJDGq>lt;E20fo~aO!k!j3 zL=Utxg6OvdtI8{+Pm3i5{Mb0hHJ<+#YnqD26M9}hJ5|utD+rJ3kZ=ke3Kgp;D~2}H z+MuI@qf~t&bxO~ZV<)GN2aHl5X``XJJJlQIEh1R39|$UwK|*tKlK^7?;O&Vz6KxnI zUb{;r&!})~YgI-UVgzeFYATO`O@Cpq_7ADrNWFI~=sQr@B9kx=X(|4EiWODcqT!OM zY52fUH|a9rMuHXMAYIcZJRu#zE3^8VvX28V(4&ivfkj<~8w`eHhv0J>A*ATO>|*VT zZ4C}MM5og5S+#eC>@7MqFh$7R?v;C5BHbIeBOnC?o+RJOfr@Wk^VrKC(_B#sj|j(A zEjBt~*vC0j^w)(|bTi^vxd&dja#15tm!aLFT;fa0vS98)odb`# s?Fyu@X> z4_NEPG!vZU{o^(&h=M$~aD}}fD3B7bc_0ugH>=)(NoH$V{r5^; lpFnfSjHH2~W{XyU$AS6eGb{GbThIyLk#d1D)LY1UJOY+3!-0 zcH5CSwZ|xDOQsS1Lb*G(Cc~WIQ-IdPa Gl&G;;`|Fi@rii2~C{f%CTEhQYMLIu_%MQZXuTqX;h^^6cep}M3Z40h> zkiIjuiQ0Awvo!Y{O|B>h9K^Z{g{H71n417D#5+D-q)zXqKS&nj1rP=Q%Q%fpfqUI} zQI_Y(P(lh?T0Bu*n>Mqq;0(6-KsyQkIXaQjU_p`K({)f$C9v$E{U)B1>Kc( f(vs?P_SimIxxKeFZK_SO1+b36jVk(nI~{lKd@= zZj)(o&=~}g_%v4k6K0;j$ZONpoGwYZqmg+V+rPj7ZFQ+sJF=NVISz+y$fX4C65UrV zlTDU(neyDP$-6DQH%7XU-Go6(-wC>6O;q|;^=a9To|@`ioJ@cmbE !2Sk z`q??TnRjyF5PH2wt?pmZ3LE5#&g}g+7~ve?ls(%Km*eb@OgEwFmb9UGuqy=kjLGEL zg^`Fl)ZqHX>H}d!4MOod(9IU-1W8JcSKG~|6k=PFFMxu8p0onX;s`TRi_=_dy9+c_ zMLCS#AOA{SAI3i~+0W6a2=^w9upHh#tGhnhFQ1B0xfGW0Eu78^0HVFua2#ia#{7nc z*e%uJpg$j3JS5g~^vjV7nlqbEqC)$e)BBc@9>hL1yMOX+%>-%XN<$ky6mEM!H<=+_ z{!}8x(taAb5*S!odoAsf1i=e>t(0GL9*P=tlrVs7s81BXr)kyJVI8z~teC7(PD|!0 z7YMS #V?@$EnAm zsrxMIo0uSdL_>3S;ogJlcx6OseCv8CEF54z 7;#H934*;dtwIzGw;Li6S11vp zZ+aY9D>cIZSN}<)cBT V;o+Rg;mn?=EJ_S}(YxN7Ibc2PM!*ceDNaqmaD{N~u41fA~IgJKt>-F;J$O)`bE( z{z>@=g&|DSIml6vt6EOlW>7!7 Cilr7 zw#^{m1u~#4aouFgl`WyrfTG_)b3hVbnMpd41Nb~<^}vDKvTWKjn~shv&+#48)R(Zk zE%a3D3W3a36H+<%3ey#>)6IjjxZkUMUB}43$+Z)`Y4>*}&dVl$Jbw!ty-RXGDU$E) z5kyd$jyh_5>cGw4)Y_{1=C>pRQtg#{kefpG1aGP|yS~ Iv&n+hI&=etkTD=1roca0|} zC^PAyc?mj!+c9A2?ndw9HpwA;WqKn^pMQUq&dcx$a9WU^l_8VdaAD-QW}H4W)T|TU z9izn5V;47_ v{CRrD|WvFHT{ZR8B-nXXsF2`xFJ)m0})%{)qzKEib z4qrjI%TzEl{%IOexzCA_TLHrNovG&q6UPm1e^QZ)f=E7V7 UK ;*rl(ri zWr@9Lsh${qI}fu0@Mt;uFF%dWXz19u#t9f}7;GpW7HpXsNDWK}w^5nfz5&1lp;ORx zDJ(engh#`yMn=#Ddr{fSJH^dA<@H@SmD4ya;V7*S{w~Q>7Ap*$dliTkwp_W$UOq1{ z1(P4@f8{hQ80ha&D|4bxEQn_G))h*14L&%M`bqTU_-l!IM?z$fUsf0#cwi+ADCe&D z&k;}DJz|wZ%Ls{Qm@@V0HrW^!cHG)ySyDk4Ze`viTksNDmyYg0BHRF|%p&S&^g81u zIi!#v6XDC6F*~Ez@0sBQ{ZJ%5o^}T%QvC|YzKdsm^lfk3v fYAzR6K!D~yV$5uY0;%{nr{B+9 zwXeHuT8)5CA}dXCyUT+5H&~LaSCc9T46z#J`HL*FR%^d`juI*a13qW5cx|(*&XTaZ zA~3)^0Q8@7`d2T$WO50(h=TLEpWoG3$D86EG5gbWo*aanPZ81o@R${oR98(u9nPN; zAAH@K^C{22Si_4iQ=OxC@qZ@nv7;uI;O^oR6UX m-jrTbT>8aGUE& z@KLd>}aCgf>-gp3i(8L~J5Ku_>^aUfCpw`89KO?!RJsd79X^%zwsa?Z)b(U`` zEXG#Uz8feMNpgX7l5Hk|jCP?3v)g~raND!#-T(2sFt4q83^Oy1cTf?VSQz7BbPXlA zy5WhslPOD7`y*ct@^0=6OkwbS^*fif1i?k$7;IAov(n#FJ AcH%F zZkK*t9suf^dd_zIUMN388vditxdkkCBR~xzoJ;!yL0ThKIun#5%7pMEJudee={;9s z{A8_MCpU5>3-m*Ova5Tp|D3ET>Zi8M-iedT>mp3M#-MbgNaw>7Q!dc@INTf!{iDmn zmWEL@Qvkk`W>S}4VS3!6TH%u@!~CK#{ub1ktL}}^oBaDt*O&|( 8l=sefr+_#$PK+>WdYQW6pjja|#QY%4ao&`y(U(|t%~gK>iM;qFUg zI+T~~k6r~37ba@aoTcN%P$eARFg)s*&xiRV4m4h$)SpzqFjpq^Qy(bxMifxi2Q{1~ z(IR!-k(B`X8~u_hn|>*FnL2whRA`OXT1*!T0O2%TbHEF1N){XYQpV$wXt
6jtiU_1>VB3QbJX33a}HpV%u@3~Zc_DOLq=R1xFRf~@$Su)SctJJP5oZ5 zZOY~~B%k1n&P{^2aRgaEC16kd4f#*9Nt&}E58IjsNU)_)Hm)f1D?vs{Abd$sED@tB zR!wp`KYfp-0$BBF;~LEiG7J*a %c3NYG`6DNKgs9 pp0<7HB zS5T|db6y1LR@RwwnSUNS!in_;cUHZ2dW>S*=JL7Ta#Glj`0j(ia)TlK2)obleq88f z#g^4;3dwl7i9z+M2jAD47*X(aa-Vplx6Rtgy=7aq3{h-8*5jZjcvGeCztCs^m?%+! zaW##+28_D7R?K&g>F9AW%w#6qArk64l0lIVwOt#rzDxr;gj6^?l@dsfFoi~FS!nA1 zsyBvP{S|!Q>_-iqId4cyQ)^~_gt-lPxbf=lpnaa7vceewxd5-?`HnJ=2=xEGLrjn> z{jp%Q =Vuz>>}aE zqel--s;#6Aitly$nO<2wx1%85SHAx!Jty9M{Im35->1DZ;3B#qzHl1m!$q1~Ct6>P z2Uri|nkDaWH3kVS=rkDMd>M%Xyo`OSSL8G4;G|5nme`~g%v6?rMl)S;HqFE6!I-Dn zD~EQNYSN?uDMoej1<*&NCdF}+UsbIXv75iTZYJzwUok$^nVLRArcj0yo $d86h0e5SiO&|rwukVQs0)1k8BUwu6Z@ZI_-dwJa6D-_z%8S1oe*{a2 zhLg?e%w7Vt;a(t+7}a8=47u;N8?obz!#fXJd={Q22_Kc|m_nPn 44v;&P=#7#j-=HqYY;qWLd+8(E2Srg#+9ou=i;;*&0v?gHRa>BOSM-8Lu(8~Usg z;l6nL1Wpdz&*Gk5OV^mZ7>J;(l>W 50@_`%)pWeVJB&KqR$>Pb^`7iF%*d~R2ZI#| C$TqB3IT+;S z=pj0{2|CPfOkahouz3l)EF|2#=AtK`EwytvA^X#O4I}ZOeR)gX*I#C70N>Ci(iniM z03nJvf_+27gfxOw11j;E$&hyu(C(w|kX1 qzgFc`0HuP&u(etRKuudQqL9A zZ$q!$f<*Lb2qZq`c=l!l6ELVpX-i`hZH?{FPVfwjTwEmzaq9KVy8`r=8%V&C=X-pX z;c&&jwVJGjj_Qhp*S%;u;B>;x5X;4D=u~F)d=jYU6P<0MG}vI2fXt}jb-WT8%}ZR@ z$mKrV{8W>Yzz8GQ-%^I6#Vj(JA=Wbm#8yo&-^>E`*ez|2MO=U%ht0iXYK-!zLhWa< zK$Y)fPbUgDvIdZr>l^O2T}YSBy9_s={rGo$LcU_cW_O }q^zXbO(#3Gq3IU W-=#JG@PNa><%zSnQK0GE> zTb(}5&ayVoX0R}`0nyd#VbE=9aEJ!U85{v2UXHx#rT5)G@hf3I9xkIpNLZ1{RA`H> zip%(bQ%`|T<%>LXAa*w1Q^n*3K2hRXoa=*9e};ayP$iO(l{pFC9esj`ULmk@TQy+; zJ{&RkhWDfU29^Rl7kcK}aIxqTCtszcWC07p)lyq%l8+8PEQ*#dOq?h_TsIp`G{AU^ zFDS+W&+ri6i|5BI@5YVR6eC>%D}?hoK}9@!Qui4#r^|XOLUzUm{fUorm~yPL 7fc>!qMQo5UEYc?+(#x++qrXHSuPCyf;L@YmJ5Ij=c<#hipxy zwwJmrmdZy==1&I=@?9vgl&3uzdNS49S?CL*$F62P(n}{ENq=$-Nf|pnMB>L&d=iGw z9WrTR{lp>doEr)aK`)HJXEdKLqN;>Aj#QqKMlG~h35A&uuVVdFu>5MvD;I}Rz|U?D zi6e2|`}IRjy9Vm S8$e-{{qGv_v(CGbqjpk$G9nihzN4GO=!b zH5Clkx_&-0D;N7OGnu7mQ1K&2FKpIGCzgAX65iHgu?v;NZjwjUqU);(v^Z34c;L63 zTrIBgZn{LL4AGJTR2o@xMf8_=A&K^0O1D7K?IXrmC71)LPH4X5gu-3$t)E9ivhB zrkp~dBAB>Bq0V}Q|7YBG?V+o_0v E3G|zuFf*bPoJ5)sH**YfPW|1a0XM^)1 zNv>rYRd%u=FmQghM2JJ)>Gh0}&3Re$W5ccLn_Pe;W1blVNtQ