diff --git a/README.md b/README.md index c9857d663..d791948f0 100644 --- a/README.md +++ b/README.md @@ -1,40 +1,55 @@ -# Wez's Terminal +# wezterm — vertical tabs -WezTerm Icon *A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust* +Fork of [wezterm/wezterm](https://github.com/wezterm/wezterm) with a **side tab bar** (left or right), for high-density tab titles without horizontal scrolling. -User facing docs and guide at: https://wezterm.org/ +Implements the feature requested in [wezterm#3537](https://github.com/wezterm/wezterm/issues/3537) (based on [PR #7574](https://github.com/wezterm/wezterm/pull/7574)), plus a small layout tweak for the new-tab control on vertical bars. -![Screenshot](docs/screenshots/two.png) +![Vertical tab bar](docs/screenshots/vertical-tabs.png) -*Screenshot of wezterm on macOS, running vim* +*Tab bar on the left (`tab_bar_position = "Left"`), full titles, fancy tabs.* -## Installation +## Config -https://wezterm.org/installation +```lua +local wezterm = require 'wezterm' +local config = wezterm.config_builder() -## Getting help +config.tab_bar_position = 'Left' -- or 'Right', 'Top', 'Bottom' +config.tab_bar_width = '250px' -- only used for Left / Right -This is a spare time project, so please bear with me. There are a couple of channels for support: +return config +``` -* You can use the [GitHub issue tracker](https://github.com/wezterm/wezterm/issues) to see if someone else has a similar issue, or to file a new one. -* Start or join a thread in our [GitHub Discussions](https://github.com/wezterm/wezterm/discussions); if you have general - questions or want to chat with other wezterm users, you're welcome here! -* There is a [Matrix room via Element.io](https://matrix.to/#/#wezterm:matrix.org) - for (potentially!) real time discussions. +| Option | Values | Notes | +|--------|--------|--------| +| `tab_bar_position` | `"Top"` · `"Bottom"` · `"Left"` · `"Right"` | Default `"Top"`. Left/Right force the fancy tab bar. | +| `tab_bar_width` | e.g. `"200px"`, `"250px"` | Width of the side bar; ignored for Top/Bottom. | +| `tab_bar_at_bottom` | `true` / `false` | Still works when `tab_bar_position` is left at default `"Top"`. | -The GitHub Discussions and Element/Gitter rooms are better suited for questions -than bug reports, but don't be afraid to use whichever you are most comfortable -using and we'll work it out. +## Install (Nix flake) -## Supporting the Project +```bash +# build +nix build git+https://tangled.org/nandi.uk/wezterm -If you use and like WezTerm, please consider sponsoring it: your support helps -to cover the fees required to maintain the project and to validate the time -spent working on it! +# run +nix run git+https://tangled.org/nandi.uk/wezterm -[Read more about sponsoring](https://wezterm.org/sponsor.html). +# or from a clone +git clone git@tangled.org:nandi.uk/wezterm +cd wezterm +nix build +./result/bin/wezterm start +``` -* [![Sponsor WezTerm](https://img.shields.io/github/sponsors/wez?label=Sponsor%20WezTerm&logo=github&style=for-the-badge)](https://github.com/sponsors/wez) -* [Patreon](https://patreon.com/WezFurlong) -* [Ko-Fi](https://ko-fi.com/wezfurlong) -* [Liberapay](https://liberapay.com/wez) +Default package is GUI wezterm. Upstream-style packaging also lives under [`nix/`](./nix) for comparison. + +## Source + +| | | +|--|--| +| **This fork** | https://tangled.org/nandi.uk/wezterm | +| **Upstream** | https://github.com/wezterm/wezterm | +| **Docs** | https://wezterm.org/ | + +Upstream remains the project of [@wez](https://github.com/wez). This fork only carries the side-tab work until it lands upstream. diff --git a/docs/screenshots/vertical-tabs.png b/docs/screenshots/vertical-tabs.png new file mode 100644 index 0000000000000000000000000000000000000000..38797135476339c8cd58f4d4a7a4c7fb55dbcf59 GIT binary patch literal 23204 zcmeAS@N?(olHy`uVBq!ia0y~yU}a!nV7kD;#K6GdAn(PEaktaqI2f@)=XE z?mh7F{+l;?v4TgMf?Rfag===11nOvrt%(RsHrMK$m1ZJk`cbM^m9sPGNJO)$*^-C} zN_ubdIlcneS{i1_p*V zZ;WynL5`4MU|?V|U|?Y2NMK-K5IDfVz@X5;$iU#hz|6qVzyMOq$b-ycV5)d6Q+}uL z_Q}n@>r?js{r39K&d=9+>R&8u-}bCiM4F9(VZ-E^g)bCc|KC2fd71r$$S?cX+N^$X zac|eZ?aizoJ|36{yRv^}C(VL&IZB z&lnz0NljfU|NY0~{`#j=!!L1b)F{c<|0z6~I8{6R-ObI<1>I!~tG~VZ_V)Jt@_UtY ztxBVI7Ck*RRr_xyBLhR(vR}Tti}vr8kK2~?`nCDnE;&j5{ZSjfew{tdYGu%)*8I93 z#Wz=JAGo~SKmW>#K&6QuDneVculIGd@k;y6Hd|Z%{@&qs{{N5V|KHeO|DRiLhk|Xz zhX)7C@7I3+^78Wkzwhhak9H5D!?si}K^KAZjh zPO<-dyV`pdk9&8&-?!VnU#>O#$DhyVi;Ii-Z9W_T#YgNm!H@rbzu%s5QAuf*Nv2Wm ztu2@R?f3SyYs7dyoRdDU@>vU~@VkA#-+g?1e16TRld-$YYTxaA{%+Unb&L9=SA6&~ z>9CQpvAAB$kKgzI|69BLp4I0w#{M=RkL-T8>-GBjzuCLX-u?jx$G%^>zwd2Y|0VAo zn4J9jK=fC|H<_20ZOyw|_3_bBP{^*0+Inib{{0P!ht2QTe7+Lwe>Z!5Z?{JHx)?V% zH%CWDmpA+W|I>}yvg7kP>u$fI4+q(&%fti(7$hI-={>)ELBhjBt*or9KY#w@7T5Dx z8g%pKP1ke@>#{eY;jv#2F!PtZxnWqFa;SwfeSYn?6@iOqndjTp{rNHf&lB}jdly6B zStgPO2@WnjlE!I|j&!aJdG+BifBwBal|Mf{J$<8h`TV+FH#UT5nPy&E@}=sW#p9lp z!OOqByDJwtz|L^_(qT*uVPM2mj-b-I+Pn=kI zkX4*V#=^kfe*X)VrF?oC8Xil7UNZjt`SWG-&Ye43*}JViolth~mz%rq$?R`0m(LGd z7qio;m8+$x5kB&S%+&=xUXk>Uyq3g!Pl_6Sx zBVHZ_C9{kh8xp_2yL)?E?(hEkKZoU|85kPg9t^8xu~JumzIy$>th>9u-q~4f|Leu# zcXxN6pJ}YF^z7W++p9uXcUU}`;LNpO;nk1F{qxOoZylGfkEy8owfXW=zI#vdam(6~5cJ}rC_5Ypu zERR_8Ffb%oZ`^v{**5pqmc@NmS!ZXNetvc~`^JWc7Zy4zKbrsl&-0(p=ilF1{QS?K zKVQ;2l^3O-pT{kxlW}K9q061}`?Z#qmhyE!9&WuJXPt3j!KCKx_ZZn_K3oltH_f`D zG1Et`;z48Uadn>=1-Emz-z`3GJ3HDx@a5D$Fa7Ji{{MI~**~u0VQcK}ve?~aZ}0#A z_x;bGKkFIv^e?O+j*X?}qam+msZx%u)83<=ktaDgg0up%N% zLsWbW)~#pON^U9H(VN7+A>O>2fq^0C+O+iytK-W=?yY8EIPjf6!L^Z%je();AHy}F zj06UTgy;MTq7b1@cm)b^AF|bgo1Y)QTi?GvtorJWi8``7t(0b6(SA{#<#+M%a{0-> z@65lp@8bX23;EaBE(-nk%GOXP(jVuB9a@+C^2F8p zYPH?5-Fxn?J~Fpn`}?KYGksr)+7x`=b$9g=w!Jg{J`ldSwD0EXs8mXI7D*4IL8=Yc4|Ng{(XHQ-K-Js3lDSv(){Iq{Z&f%5ULv<>Xu4=8c{}#Q! z{A);A*sE#3Py5fA_{a1896Q_M;FUklHa~Uix&Om`$1%B;)8&3WI}{&gvotzyY1c~e ze|x@Niq^LIv$}Mu_Ofehd}9i$Tc55L@^)WW_vYuC!+hubU1O@UTU}3^{r(>RdrQvW zmruT*ejB&-ZtwOfw{y2Q-MLf#?nkN8#Ebu)??1IFz_9%8EyMEr^SqYc`u^LsY^v7k z>3Y8Nr^YTlm3aNj>VUmfM#iuIy1)CMbFJslNo(i!-reutOv^59_X?X5dLTw22=+W+tI{QJM&>Z-EO z|M}^}(f50P{&X)+v;BT$rhfmQA8!Mz&GStkpFCJCdnsvs^X#+#u3t8uU#YZrkGI~- z-%lp{uZ`PlHPa`q?51kJ&8O?q`FsBH*YDWw)+=>f_WI(QpGCpTY7FZBRJYFlFnOZ+ zd0Er!{b8l*ymi~tx^Mk9TmALm<;UvwhTE$4?%j2#CaG-dC*$}zCOyJ0CgtCa{`%p^(fN;7 zd|p(!Uc$;oX_4#th+Q^HNzQ&IZv#OgW7hDeM zw~<_Z-EH~jSW-P6wWDxd3ZuCB|Da9Q)iX4YI8<7dajx#8Q$8l z)$iKQ_U?Rq>+AWw6R-Zg(-0^04-0r#`JI>6%7yIu9UuC|Z zhgtTF_*b3fF}wfi`=`&ZNIkl5|GE#)qp!IiIj?`O;LK7{{a>N2##K-9bk47lD0seW z{{Q%&k)Ms<{fOR~e@)GA*RDr%udl5yi@0VuJ*=uM;+pLBb^RT0-duSSdGg)#u&SJl zZ?X2V@y9l=tBkmv`o1^2_-JYOJ(-Wcw%SJ;Bt>*{>w`qN-FT|s&hi%Tk+}BjQ}*qc z!ncP4^Y@f}T`J#SXFPMRtYB_k(c3rmwttU(4c}LMeEsda72X$DPTOZ*_Wqf!u%u*X zkIU9yyvj-IpXpBTlMjBS`S|_r-(R!qH|6}fk=buACKxRDJNn(Ot@(E?^dj=ah3 z#xwitonXOha^&pbQJbamokHo?H{d2=g2 zKU*Fo9Y5VHH>zLCH0#2GHvh%Letw1n-=4L{G2Tl*pa1vA zoB8{`Ci~^R+3CK=RO6X`pWk!$^?8N23_m_vvE$DfiLY@o)h;4`j~@6c{b-Z%qid@d z{K?vxRBUFqAmLT}$-K9p z@^&nD+8f0xoUT?}EWER_GsyqVEwlai{z)fq4f+{kq#P$d`R4!auYcLku6?;y^wRPF z@6%t;t1^AP_WS;?$A6v(s|>#rr>OML)aLc}@OAwiAzE=&#@b44eK%$t$y}?ydso%t zWt->K7M)f1{+?6y!To=o-Rh*JbMmjfx&79#(9`)_sja#zT^@i^c zpSPd2`FJDmX05P0yDLwZ$NdREy)S%3Xc4Wo#T8Fk$}m-C5_>gg82Gs`;tJXtTTe`(ky!Iad}qHcJ|(iOIbumIr8%Ok*)jtPoM9Z z?shctc>Qh@qeW*OC;GURg>A9aFfvNYjl90%(LCwLC&M4z&p&oO+e~)Pr*9U|TV51Z zxEy)CIQiXi>Hhl7dY?Wk&%E>I5ZBxNe#c=ll3gq3E+v{93<1%R7{m*zRwA z*E(@#eWlj!_bYeKmYzI!s#Z<7y3k6YnIfXvOO%w9XIlOKF-P*VQJ<|+{*N1Hg8a|; zEUStQuB`P-Npacz?B`F`kCX3*y|`fX|I}u)FLr9*)whS9IOk_-yFo!I|3Y`%5-zTy zeUX!YeCv^%DJ`!zapJ^%+7o^F-k1B<`S~d+C$D#&wVaEKYx%E|Q%Az4$3;F~kfyz? zcEbL|!}oNf)HiRsR{yc`WbmcWTV9u+-eG?)a>DfQYtut+J!ty#=TN-Cx$~!e@1Hw= zQuAl@@zr5#S4C`e+FA7U+s*X(*W;@9e)zF+`8=cQZ*Mq-)kJ>#t!cXR=l_{$)3t7V zQTn!H_4hp!jqNM4YEHi2ck2A<`x~liMQXJf7&h4cEZom(Wv#s`?B})r*7sgCM0`!H z*{h~@zKc({o8ON;>u1qM(|F11U;fHU>+H%eKj5`A{JU7<`@v)KpFcg`y8q~G=Hw^I zAN%j;uDTy29(HBc)`>Ike2L61OI6*!XJzQ*KlQxlwZij)*G!W!uFLxLqi?5RVbbzD zlkzusZl2`6_2mDv%}?cjUj4=DZ8XbV$6`_FJ>BoqwZ9%Iluwy=!_r)-FK>GJVOHs~ z)pM%euD`#>T=(X8bJ1PpC%QZ4%yHSiZ)(>2*}EP*nRBS(+=-6u>S^=tsG2MJy_@v= z+>$dL9%{iagR4r<)>c1SX3szQ|3{B^=J$Pm-EKa-Zhz8Q_0!+-%a2SlT&(_tN*DVh49)!ys>lzcj3HFuYb%Ur+MY5p^}6dk+rW$)JhH&gxvZ%O*azP102jNotC zYwsQu>veP-TKUO5C*u3hRaUar>t}pB_$gD~={ET1BDKLtN}&J@i& zxkjkIF+!n=kzrf*?H^npW^E1JnKW^a-r8jUS3>1~ZTYO1O!@T3@7{bl|GU!K`#X65 z|2%cO=;p_F6D*!hdhy>Url_hUL)5wbc;xZptKT1Kc3zY`+xN7#@&@}DiNnW_?U(Od zT_>K;_h(^u%Ja+rZ@v-y|0C^I`^oj!R8FPlSN#?(yma#%%3%La_}G9 zlI!UTq^Sj~i8l$hp*LeBG)je8eeX4%1 z+Q(Nf)=ccLn>i1oC()*(3?s!x#YWAI_{QmxPJx9Bh9{p|qcje#n{W&F{UhcfV zMzZ$#+L=#JZ~uK$UwU4J*SlY($?x{r&YW9&f6d>w?)^Be z&DP)Z>GS3G*0C0$E;_RI+a7YN=l}S%`h1$-?cI^5HUIy}Ub)=GW%FmfIMeE9cDm8- zM?TDtoxMNtaM#Mo*7qyl|MH6{e z>uQZ=o;iR2(Dg$9+A^p2^-{ZV6DvRS~E33C=RxZ`ksa<@!_2cgBMYX4Q zJld9V)#TT_XTF=9Z>^8kWPg1v*Rb@}pSOvXYxz(8|LH3IZPm1>y=I0bF3%1;-~5@o z?hCu_AE{TH-rj%Lp_=TTKiU0GTQDQTfp0A)Vqk!DYN0*XHzB{i?Y*JKz;K{1Z}mQw)#2*WNBI(7%)VWB?$lK6 z`NijMPLKaLxu>Uxk(uq;lP6OQchvo5j^3X4_e!vTe%^r{g~_+J<;H(g7Mr`|$&a-& z85tNfu0ngW_Q$Hf&Z~a+@7L?~*Vo6-_gb2_g@NHfIbXup z(|Y#~oSh~6=@7TR+mQzc`}HF>YJ}QjaSB^;6UB)x8WB1UhF)|=jQVD)m8bL59gcNc=tT+ zyI~uwQ@b3U-N0@qVm+#)Y^|n#l>R^9-3Z{DgS)d zUcc)4-12*+KcCuL{&>**{bu_7>2XynUua%le%|K&p3n0upWU4Qcg_8~jzRD_({ z?c@c$r|GPW*;#aP_cZxggZBrA|dVL0loW~4oN=oMDnndxhp?YTU9qs=Je#G(&(8@4{+NBNwf8M66DYaeKK8iZ{^I`s_fJjN|9`=m zf7&0L&(Hq+y1swc`+fGcKOVM!es6EzEfaUw!6T{C!r2hPe&e2R5XF@&oFd*QEHuD!O4>gGzA+L=8$k~cN!qI%)Sl^e@ydt}6SR!*EM z8GFm^=%?9oC1;-e__EnUWl{F+8*7Wc)T`-P);^AH-QF$N)3Non`MLeoqU$Zd&V2Xn zhVHi;x=Km+jt7?i@92Oo$bDL)yMPG&Djd-98FdT zZ~fl;FnN*V+>8kGXZoEx<=tKOSZhjM>2za1GKcl!yCoLC?C(2Fi5DXJF80jW^T#+*DqFe5j1G*di#O*hJ8`Olha*yiwO!wM$YcjkCgkG1p78KNpw3RvSxxF0&Ng zSa|N&*2kC6cdb|1I#YDo9C=XL_2=%BXGdQzUhI8)MZh|jKCwT`ql72U67w)NMFl@TJmj0X_vla1G}F~T3+^+{Gqo417kX`e?m5(3o**S4$&$?XmULUpOdyi(=Xm8rQ$oqCjhjR4s*NYcB{k*aJ z*Y;;VtD{ua&i%Od$5XzMje+5YDl7~9tL~OC)Qd9ddli~|bX7%p(U(`xN*}gM{YryX zX*IK%85njiJM%VC@T}Ca+wa|tBw1MtL!|XVm4e>EfwZF^k?>%vyANY_t_iS12-&5P`E_d0! zdp7UKvuWGcPUB^0U}&3r2R6ueJf~RJYRmukHm`I4IlScD|9#ot75*{|4YJ{zyry1y zpAmHZ*#_p>dpAsJ4qg3jbInij`=(2^!q!wgndokkf3N1^qWZb!jG zPIZ~6){`VixSugIlTJ@NbT_#|4*xG)( zSKhsrd)*r;z(Y3Jw7t#fPT zH_5&Ag-`a@^7&D>x3w>yA5}HUTkqxXi|+DIpFB~SeDbvZ{+wT5BvW-(IyV1m6<#L4 zDCuaI`usbaOJ84Om#?|-=O_27u(egcUM}C7TOE;>mR2?QWv;({*uyHjza^C?6OYE7 z4T^uN6}n2qdgF_-pNCl)Hasq3l{huYM{T<9@014z4o+70xBK;C?ce9Cc9*`kN+57qUVKcSSNUy5a-W`6-M2S4Z{EDws{H)y?C{-XYh9EkdK|e| z{a#jZYxeb7=J|2k^J3L~D(X*60JZ#DANSkq+5Wg19xrY4<74ILXM2CYo6%A6dhPb& zqM~^fkLEAs^HZB_oPKVOL86mON?MxVER&ZXkITQm`1r>6d)4(H9w@%Owe{{JDK2&q zy9?Xr-zt8&e41JIwKZ+L(k?D{ca=UnJNy3D?CD0+LP`!D`a8$6_}hbn{pV*GE>1qK ze0xi#ZPt|)j?HrVyUtB|t!bH4ygqH?qh{xANu8Y}ebnN_G>-~j~-A+$m z|KrQ$r`7NGmY0>4y}h+{e*M2zzqwX#Hy)RJX&4z9+3BJ*)ywrrT=mToSbMkkZ-Hr}d@wK0Q6%Uv2Wz zc~gDTMA#BfdYn6dUjNUB+?$WZb)&8<^?n|;^;`U&io&?KxVcuPM#hux*L?PMb311L z|7S{ET%6Lx6``xccGVdh8THx!+c7=9ZfQi(bgLZ;7AVvz@16JM?Vde*4mC%|IIr~I z^CZ|idTUnb(Js+bQ?<9BxBI>4+pX8pF+rW{&S}(Gn&sRmxE7gyZk}!Rp%%{6de>_! zm(L5zi8vX)`O0Hef3VZvIMlF6o%$m@X=331y1yM6x3-*IV36VX8!c)+tbd@a_g1SjoXv*@zK%T+j847E*=-$m~!&b zmlMqVHXA;0&$lYcu+P7@=jrL`;xCW6C{5HT{c!E}9jSe?E2MYt?eUsp{QU5@x3`zp zx0iK$Ykd=EJUva<`@R3^X}Y^gUdC*Gw$C{I+^I8X?%auYSmLj5x#r30$X6eYp83~1 z?0xZ{l_4RW0IOXlQHj~U&o6&*;a{(L+xE=M&-Q%&^=9+=d#cB$gjm$wul;`V>{;Ea>w79c zm)~A{3RF7jL`Ll{dt3SWnfs9qiHB#KT0hzI`CRVpZyT=1RqNV*I-%UZBK&=WUG2HI zm!IGHqAyqf=i?*ea~6BA9K7$jGFwCIuS2T8QTDYr+j9BmTNYn?b}jx`Oa30iJ*BU& zJ)c{icesuBSdZlIf4_zG_k8%XxbM}Dy1&0l7BAbr_r^=r_Ng_d-nCP`=S95Oa@kM! zTRkJgjYgHMYdWvr#m&tTwD$jdZSC!(S66=CemJZ8n@!=J9UryB)~tvuzMpq@7q67b zjn^Cu47X#RiA6gxZ!W&_{#(wW7S7{x)jn}?aYi#gzFNJ$QkIe7!SM~P+6OYFX3Sk& zxBa&E0S1Nx^#{XhxwqVBXJcSUaDN`XfDvOU%7JgG@czz$?OPcc7*cP15>5Dey6;f6 zCQF$I0x}Tr$7PbY7jQSpBA#>(1}*s^2U4zsAyTM(m#{UsPPx zb*z{{GmnoM^rp+6?2)iji>tJ@l9dv?__)LOd*4hE-d9I7-QD-znmGIST4DZdvB;Sh zH=jNxe}BH%@{;bw)<@>F&VD!RTjG{nxxIaTo}0Zam(EyZ%)r2Kz>M#~mb|x%tAEef ztDvN$oqhQuQX6k(e{lMK2|KfEYkKqEn#tzeSK9Z-O6|Ok-1(zR%%#a zuFoA;@9z7v<3G%I^ZmO#*nDyJ?TmXC%j!jxkL6nZxb>o=!&%Br#jF2b$BhZXtUqVZ z1+6~X=F9N>$+4!Rf`aqc^sL(L>hk1S?ymCtw#f%4b#(mf_I`Ok#HvTRs3`fxha2hV zUtG(39PYXNebmRwE9-@S{*)Hp{zCKVrbnOGD=FEYJ6U7fD`>ep9(o5wx(?m00qytyM}nth9i;~xX#0K5zu))o@AVBc%DXdTTkh>@R|bX$`%i9naE_d1YW<{DJg%qXV6%MuhJ?h2 zAM5}BUOLM(+wI8xf8VCh&i_{lUQAK{@bR%f@5;B&FFt4a^7i)ob+@zE@4d9U z{Qd5Czy7{nzrX5UW$memx5ejeH(!sdc6BK$`*vFY|L&}-t5VO@pR-K2|NZ9jd7IBA zzrVe`d|Wx{yzTdzCllM*`D8wvQ09NX^ZC4&kFUp7pKW05|NA=reA(MuSEHFgP1!=JSWc{XEj&Zrx0u|M>uOy_`|XhXsz!=G$*29=`YD z&d$rh{;LBXQ8cgy=3hRK(Vzq~Ggti68EuS?$g zb1NQon%}E9>}!5^&eW-2kBY~~6dY{*{eJ)d2FCtA3ByCX!6N|H3+Mm;v+Ukp|M%C{ zzW#ikfA8Zy>vrC1<=UDrFUoh9zBWrgH|OT&bn~n$8-kX4t&QGZ_v>XkC~@4{n!WsZ z$cg|(W#z>S7APo5nPgnpS-iaXyzTlIPh_o1G%R;4Sdj4MM&Zlml_6QbzDTmNvhLiu z(>U#nj)umHfQ3#EUtW(XE?pg_%g!%XbivX0vUyy6?TxeM_rF{T_Ah^R<>l1yxSxmR z-)ScQ+kU_9`8n(N6`xKn&)fG?ytP=a>cztSzpk!Ve)RQv{QsB!>$^K#lnhH=dDSlS z{I*+s%gVm33SB+v8h?@T2NP4 z_si|q#mk`PFc-gA)q_U+<@q9ewW7DadN)-&JnzzykFw==BES9F|Kq6s?Jb#im!IEx zT)zH}e*MqYUtV^)Xj*Tm`kM8gg@K`LD#N?0C*3wO|1jLgT6LhoU4Q43O&t;YYFzX3 z@*aNVl{TySc5~I@{&%<5-#>qS{r!TMOKb1f|Nq-D!=}>f`nuS-%BNSA`z#*4*?hk0 z|KCo*!jr1C?)`GM)!*J6x-8u3;^yYIvblc2L}mBbnvbrRm-+fH4N5%|zq9BmyZoQx z`}?M!nPK?(>-BhDn}7GJg?E+P|GNLbZYOAx&1Z&y;L4Cw(cIwS%B%X;U2$`_)iT@v z`yu@I_y4suKR@x?eo6QhUdi1nXZvf*Wxv0lPU|oCn|o_l>1+G{KM!{7`2DUrZ|_(0 zz182(oj?EoY<`|^|DTiodb90neJk_t)wW)i*_xruF+qui<*Zta6`ufuRRyKx) zxyQu*NveE3&9}UV?VsF#o}gLvTR9jQ%9tcyO`m(F|Kq;U{R|8njM+E*a%Befr(IAN zyh2(AEC#T`_s4wp4~tSiPG9b2dGG(sAU?lYnYTfs2aL=X=H~b2%SlGtUOpnZO_qV7 z;s3TX@^(jOXkOe?*drw``0>$-7dL-KfA9OPU>7O*y7Y7;bui5#3HXawezsr2T zg4UGoxVwvvPyBf9NJq!vS*~GeU)~74_v>OST@=1OBS8J$+%1I#y;+5)E?(U7@0c$*Hz;IyOmu5RA+xL%8ob670@8i`s_*w-^0IE7U6QXQ3K^kkD^0$4eB=Fl zf`Z^7nk#qppZ$Bz0cz=pGsaw6o$r2LFIpmav)i6OVI_7pZhhU7#mdH#vA5k^R3;nd z7y8T-y%~9N>DuXRpfJ)5+?@8Z{L8B^_v5_&r$3r>d9PBAwDWzPrwP!7V8x(?U{eyg zAGlxI{{HCglzDM`t9YeMKJ0uxFZ2GsT9=S@F+UsG-^trlJYeR(1IiCU$5T>L?$mtt zb#Ak?TX4|z|F7#8 z)aTc%x>A|9`|Wo7-#2~5<0?Mt*L^&FJO6*~#n!2F4AurM^_m`AmKhfpw^Dds?YGFw z%g*k2(A2$d&!<)K|2|Dy8}o<1hV$9Ex!q`a z^?cdGx3d}R|~_cQdD+tpRO!&d|>eDN$N@6h~zUv@b*%lR)2 zTI%=X&F1sGl13^@uddr0$exVe{KM(I?e{Zr)o(=wZ{EDAzyHtsRiUe=ZQS0f@A&6= z(_6XfkiGx^{bu8-*i!$0f7t4GD1Up+A)V{kpzi$IM7uJNws{ne~4j|DRiMh|~UeX=QF7I9 z3aj64y}oq%H(BFj%NH{;uo%3_aOeArL@SgnQg9hxz+bOpS%1nEp%?5)XdGrb*xWzI%xD~ng9I2 zfPe|JXIm#9JJZzElyp5xc~RKfC~?sGT=BS&V_DsOCr_P<*_LyYRXnET%f-8SyWei> z)_=Eq=jLWFiI)88JS<~?CSyzibJWy0! ze(K!0eIJiWuiyP{m#*HwWwY~MUV7R)+3(fNf2W&t_4a*mjK|(!s?P7uy#4LN{XfsH zbyPfT6~AART%k4f)y2m*7WY}Ly7AsX-0n_?pz*4EWmSB0KT z`LyY@-u(@U&TejQtHX3Jf1T~4R{#5UbpGD2+rFq*b5FIhu(!9bRaPo0E`~LjLN_KI z1r?C%>;Jyi-}ggFDQs=j*5~uChOdd(`FvjWvh@e2nLYa~sO;u;q(e}-{_pGf{C8{8 z&hka>t@?VXmD~J#1h2H2$NA64qz~7BT^;Xsgqi=3rR}FztJiCpJ-p~%zB**(BirwH z=FWTmegFQ)&t}&L<{XO7+xhd|?)N9ppRfOXc6;9bzuVTv)I4ltc3#PCizC zr|`Mh_idmB?Ji27dWtps+M1uQ{_kT)fXGr+{q`V<!|S_u1`w{p4h@ zn(wTde?OmtN)bWB%1=|)#qM@FBIqu2ar^sY-K(d^Tq^(a;^OA?^LjS66FpK=Ql?l{ zyjB(Jw0{5RZUZCpa=*FL>^_~de*fjgMP;Qv>vhMi-|q>2HRI#suk_j4? z4LaY|(XF?u;K6~$RGVu}tlZJtas&l+qf9^}+n_4o!_(>UmM@pYz0|)38iP7({(sSv zme5rpe(&8*Pt(2haIa~%e%6x{f#UHs7q?_y1}&riZuVD51TDu=vxqM#H z-O}rFB>|T~%XMOQ7TvsgGxbfqo15Foi6>JwB_CH-UR3@4-DGutNrML)HG}PTyj&K2 zi5*k`=DPpqGstni{pvpByUWk-T=uj6x@2-y=&F#+H#f@lcRV=cIa%%f=JR&j@BNzn z>FMd`&!7K)X1-l7a+8YEGM||ywZFc6d3yg#>dAKbIt``L+qwI-Ei3NqFwDK3_h;LZ zL$_7)U0l}3soyU;ebzYbOh?Do?CWubM?*n<;m_x+zuj2;N<6-%^0e;$h|OufCk?Nz z3f=wp+x@UL5r+Eu|F_-F0}Y>^+?;iN-QVB$?^m9)e4h6!I6i5fTd&mJn$Nz1f)jVW zURT}qto9^l_q*s{np5T!+^_w<_w%{?szQ=GckV2|_wzR^w^+{ENBjROU6Zx?vXfhX zPsOPznoIWyxR&ex6^bc58v3$%Yu43Wf4|*#Q@OS#viS4a?Q`n?Rl3XH%{@1V|MoW9 zJ<;3WSz229+kQR&@UZ)r_y4~iYWF^GQ2cC7lJfChY2&0LC;ooFU;p*hRZus`-|puU zIoqm~6qSEp*DrjTFT%{=z;KvP3^YpSci4RamO(Z?p#w|n+6CSSU>!(cU^uW&=s*`_ zY(d7T6ts(NH`9G4Ud&0RZTit)RU`IV-P9;!*teFKfkERibeREVi{=>^7(VRhdT@09 zu?OPGFFr_E*&M6i5W2kPU#QRj7w(m6f9LyImf%mE+Z)B4;#XHQw|mK-5=^B;W6 zLvGuydi&45dfWfo?(CqUM&1Yc*N)2Vu6=!?d-0<5=f3ve>ecu%CFZZ`;k7Khp%}RS z+Og*8bL7_V6Yk~fsQP_;#rH*Ny(_lnBPM%~-RV!hw#UO|OSa(FZ+A_i_eKRK_h*zi z?D<=_CRU!6_2RzNH?g&k8w@8uzI)jnU))qZ^Qulh@Dbd9j89#oyU3g`oprH43 z_rF$xf?r>QCWsN^hh1w-1-E|d?D+9xvV^f^8(;s!WMy;xpp_jRE;&4JpfktDTW5aN zj}>IU*4MFOcf3lCGH4&lx!3HmjCuDow8DEjEE4`pe2vSjoZC}$bGEImxxSIm#M$9q z3(9h(Plp|0FMf2m_2SmI$C^7`RD?jK^~KG_Dw8LA9aYyhm-A6kQr=jYV)S#ZrTG&V z$GVrayG{2Zgj*QLs z$2aodcXSj*e*76OC@8OY=S|SJyT)QVogFjwNBn1EV0d$;?tkCTqwIpO1WeVbu=qK&mq&`OIh4}#9w zE-LMjlD}-<)pO+7@!pOUqi4E(CpRluYwz09+hMV(bdQ~t)|CFetKB!bybNC}B%JQj z4j%~JJjD>S8`MO|G<#Z|`+7gKcG(*kLzg>WaAM|gMAsN&T(VL3#qIA&vq8g~yL_S< zQdh+6{ABrjPVLX9_9suAkT6I{@bf!&&HVHI|Nr{e)-Nc0d~8eZ?Yc)tI4>{r^_G`3 zeRZ~xnf>dl(od1;bEnRpJ$vd@)07hv#N#RqmAZI$|M@h3OYZG^-K-1@OcML{SHIi& zdv5u?$o+M-T2psDY@7e@-}mzW9*lFQ&7NI-kX2mt-;IUNzk~f=mVP{18@@g+cB$9Y zcKN!3qg|rO$NRL+-h4V;|7a=`Lxb)o!3+)W&1vmR^mp;e{rS-u}y;&%a!dM<_$}uloxc`C=81`Ep8oeO&2P(e(MX*XI8#`Tz5Ie8Iz3ahD^`{I+|_-rn-o+qvdN zNa?F9`#ztuzO^+w{MAI`^ESJmEWW-vJpbF9o2~ZeW|_V|z|5~>x#mhSBSS-y(dl&^ zpb4Gbd4JuGoUgA7et&Oy`Ri+6e?D)&S9pBx;kLaK?e1-R`*8oyvug!E9^%&D_wm?= z5Us0=k8gCBEe&~kYO43#=f|Y;Pn|L?1Q{+^G=CMf#PDRg@u^!#S|{o3Wev$v(4on_SL(s`e8o_T)UWHsMqJ~Jo% z+n9NIS@H98x|Tc)3^$~r|H&rIZ%v!N_I`(i!Gnuy)~rDcn`K^JR{rjerIMfR*D0^p z?f$l)dDgyfw_ZOzHTCqlbAJ3DDngQyv;WoHEjZl!`T6<%|Nq&~t@-3R+dAk{azF2m zhi&tht=9@)8T9nm>-E)NE*{@=fq~(}-<+%49kLV3BKz(Cx%~fEuN}Ydk2Ak*#qYQK zwQcIo+t%;+`|bX`(rYubudUhn^I7z#PoLU&ByG~qwXY6ef9~A5b0<&Ev?#pP%x_n4 zR5V<4-luQ3-}lJm)Pn+%kzWlfM`@P>AkIS7sdGh3`Q&o>T)sOW` zzjp-<_NxbOUgnz+9tfFhsP7lP{NH0eFAGD1?5uh=&TT$_nHU-v2u~@XWnz3Ji>*}h^%WB->dS_0ae0%+UThY@~rEe;ZJZzWW zmUh;Bb=cahySqXkAM1T}ZLM|nw>PiX@6S6kW8+k8NtQ&7#WB&$`8G_tgFUHR)+giNjQ_(5|x=*5Bv7 zx;p%R?f1LWb)&=H+^PGUr%{!cmbU4|%-CtJCA_ejXK%|Mt54@C?Ib z?&(&!x4wLtcxtM4ZlU(6d$*7EO8d{VS?b*W&2@d_bp7~$Ey8`-cXySZo~9eN?oZCw zS65qq?|eS*>g#K3gI9;Gy>sWz$;rzrjF}le*#6-7(igbDwg2hn3;%uZ?kb&YS^TX> z(s-76{o%kpz` zEQQtmUR_%H`N6?{@wq9-dLl1__njwRUgpcyzyIsC+wHPtFNFR7Y`nbL9@-;iWrfRv%Tul7;hxO>Rs3)GKw;zQqaSvM`_jkwRDv@~+JB<77 zenqU5wo5$p+k3j+?b`2mtG>UxyZ`_F?suT{(6x?{fnlGvd}G^Ls|O9cHm9HO>sT4Q zyjR9@mET+|R}$(x!Y=RA+o8YjM^W+pOCihs=0EQwpKA$|QGFkHfOx?h&i*u`9X>LwGKhGf1>Gid>T=MG-rhfkP z$$MTAbwE-tR1l_4u%YnJ6b{B$X<=HpV(Cg8ds3)y8$E_mzzt^RDid295>o!SSM zo;q>j$8-DnXHK8?RuS5ob@kSrV9@T~W4eS^wMQzKuxYYZ3E4R35<|P%- zj{Z#<7Z;WIGenrXPDgpNrj;a`N-}{So{BHQv{|mw)y5wfv*yyO{QX zR($BmRy=4_-Tx`8xW1Wzfg$>&=!5@_?elI_JU+EK_gLB6Uh}s31&2Q7-r90+L*ij> z{XJ8rPOUt|slFxas*$<*_MX*?Rn=eK{CvbL_m)oVE)#Qeb0t6Pw^zQr-&FSpyrkkU z=8E_8=TD!`zO!o;Nk_)ntFWx&I1}bO_#0*7ovJoBVu!{k{5E{Il&&|ug@IkqdRRXlalLyq!X5vDLnXoP-!b@lf4{P1-#meGt13``ZvjlP_n`+4J!dsW}< zbj{7zM{Uho8@*ktI_3Abw_djQ*5Bt%oxkHK3ipKMYk?hiv4$ec(;&#U<;0-MtsOcGvk&PvdKrS6KgiGH-44cDo-BnxCDI z4_FuTZRPTLmsW+YUgkSnCuWC%y88C`{nDqVYG2>@Sg>8b?#3+B`)i`Mt}1;U)+=qk zDti07H#ax0-~VryVe+xCRUt2@1pDP(URHW{SE;|n!yOxwk1tiXf3>2IU8cZcZPZq~ zza>9kE}wsG+uOvMGiQ2F*YjmhKiVbQZ}X|++1c6pQC~j(`uf^iEb}5`=&BG+GiTIA zkr##6?|7sxU-#o;8?W>^yWeX-Rla$C-CV2ET_rDVs=vJfRbIPpS(UzevormxVe&Dt zb;Y-~yp*-t;%|R{TQ0x9{ryem8wwvE`~2+e|5vNmhp&s7Ieq%|h0eb>CLforNZ6~t z|IexyJMZo;m$ocQ@$)+u9$$NRW$^J5>F=-0oi9GGc+`3P`Sa)Nqqc(1g3ylNcSo)| zWVTIZ*LD*IhWnk`2c)K+eRXZ^>oYSqr=OW|aZlyuKG}Yq@O5{-yfj|sJG<_LB0Hq@ z8}Fkw8M;W)_S=eE%g^sDes*T2MPbl%y}9iCb$ec@7^j_?Wmj9Z*o}9#S#D6ppS9cX z*}d7|Jip@6eA_A+>#Qp)rfS>oezVE@Sbx2~(xj75Hl@zzk+*v^!I{tQ*NeRKHlK4g zwu(xF+PRaA&&;tbzPIP+QNKCn`EhS=ZC&R7-)dsV-tYIUm9nm{GtIxZCn&u7f}?Nu zI%C`1Uq8cEhrPX1e14vBy5Fxgudc3^FOTUz8@{Xw`#@Bp&`mC;UtKVF!&1q-5Iza1Y0|Eky4s-}Ad)MWM?b1y@H)rerf4`?%<${WM zkEKDMpX+N>Uc0mNbN2Ohv5Vb${q1AtO`kr0?p)9z7K`S_e9PjV|Ni;>`nZyP&g&=Dr8_VZ(WjAjN#^mk4Qc9~Q4N>k7<@lZ>M zR_Kp{){ir%PmljJC5hSVTtGlTK*jDAuH9l+*F1i-b3A-ps|twQ2L_y~d0T0tYtq>PBx{6S%ld@ZzS_ZoOD5{g@pq zJSVFOUR>fi*|l42sd8@jWSz)OCbpi7-Fms2H)Nz-TeI{1nVFl7jEyIsd~(cwnxy2{ z*Vp?ymie071$?yMeqS!2sO{{@)2E|1r}-{+>lM?F+f?!K(Y9Rv=q)cEZwik#X*2&` zb9x`soz2fXA0O+D-&OKBU%C9{rJat=Y=Rr_*Zp1_vC&BB*}1vbx4d)|EWF_8`~2M8 z@K?oa!q(mbol){+vcG(FPWgKu28Mm|pd|D4nDk+Pi-$kVa-;HZY@zBQOa+9Y|pYD@Z zvtPg9*MsKw^6TuM#4s@2IJtxAjNX&_B2Ybf!|#U>X!{Dz!58#?8~$}<3A0acVGU^O z6jt|{ZKhjWePx9?JD<#z)z?p^&n*qh%gYN3yEZ}5Ij-X2(V+I5R-i?h8xlvAP@X5s7e2_^e7n&go%bX2>8Yv8i@c_4U5~H7ySU#jEt-KLq5T1u!IY&h z(q}LC`T4-Vepmhbz2EEJY;-R!D%!MZ)4YmDorRB&-Bx8_xS@y=(KWw8jRZCDz73-H z1d`CdhPAnf*1`f`r9zArCQz#lo0bRrl`e}N;5V=Rb>-~c(hmpEzTszJ$l;G+Y}4KS z?+>pTBLhQO$vOt-$W4nm@PinKRYvsIq@r{gxB+#lfj*a@Fs@XWZ+y+8G;bP3ix4 zKJB&uSiE@GkL#kxeEibVm)@%`I(ss&@@9jBiOVE9N5MH>)85s`;rfi)BGFwt=WR*22(xNRXKAdq${ z4~}RgoPogs0S;sYicypEwx8~AjDEUi`|^>hj_x9U4pERAAPrkd%w8Ku=JX=xApTG0@o!0DYYtQRPo^xe? z6Q{cS22c6jD@p5LJ^j97*4~Vl=10%%eZ5S~_59gWXLdaJQYCxqN=D%YIeFcP+KO)5 z>iGe?YiCQ%ub=t(rnvOGT`P}%xHw--@9W={^OyI(3A0@NB2v1D>)o!Et~=j6+30@t z&6TqESF?+z*Ke!K{#F0ug+F)wnh3kfwDY^%Wp;({4y&%)RP;A|b+Pr9m4zOYSMl<# z*cATt(^vi*I~elUzxBPk>bFk(zt&m?hKAVSXV-YDzMf5W-+K4;#Dns4>uTOkZ`1!< z^7Pm2bs4{&?RY9U(ML^8|M#<_=F_%hhP{1~{O$ko;Lly+-?p>Y>{Z+TglF=ydb{d- z*Oy-Tx&8dvle#lZ-ga{ahs)kt^UL$@_xzFvdE4*X?|qdQdAIM*@(*7QEfw=C3i|%H zd!Ff!c&6?*D)L zQCm#+Z(9G|&A;b`{^zfs`SaaxZT~mh;(tw1=35(B0@~s7#(**A#ZmKV+pH@3o2A~x zeOW#45~F46F>&=$&`Q!Sz8`m)jl0fH@H#r@XMFxU!R~p{0RsPP5))l~=6(FhdH37w zpBKZQe_Lf;b?B6$v-q@)&wiDz7O~X^jXnR+obP&MmA;ust&(=wT7BiJ?yQ;zdDUUs z)Az;dX)7yF)bLokXC`QBdmh8S4dr|J)9OB+tJdzf*y5JBZyA@_z1h>ly;#Jg1B%+3 znyx&1v=KCVx#-1Sf1CXu4p>d?&)Qx7+If}j$3tn-785n}u{XU;s~lP0n(VKUopSC{VQ zZ$B~~z6y%o2pR#OvUNxP{NERwuAZI!PEhdd>~|XzKF(ULpRuLjqj~@TY{$!NyQjxw zEnJj-Hg<>A-K$Hz;u-b+tnX>njo9;S!m&{0MV^1}?v~w{zp|PYbWUYz_Iif%(OaHP z+We}2-iA-Rx~27__m$oK_2*2AlD_@a>ERdlyp)TzezQ5R_Mg4?Zl36z1LE;dMP@JT zVb?9oGn#3!IsGnQZdT3-%^%OXxo?}S{&sm^uW)C@-?#o=dSCPX&-niT@krXcYu?wt z+canT#8d|^{_^&x{Cde>we;tUK72fir;Zhp3H&btj_ zSNXF8ZEJt;)m(jV_NG_ubE>cV>gMgr?h^0JU7B}SEO`03?feW38?sN`*><`1`ir|^ z&zTq)9BvwIdwz81A8ybYnAmo&5mUs1OJ%S^1nWTG%m0iTDc4Ik%TE>nHF7*%{an^L HB{Ts5Kb7#% literal 0 HcmV?d00001