From 6519769b7de375472c122230ce88c57e38073cad Mon Sep 17 00:00:00 2001 From: Quentin Snow Date: Thu, 1 Apr 2021 21:38:59 -0500 Subject: [PATCH] Initial --- config.h | 115 ++++++++++++++++++++++++++++ drw.o | Bin 0 -> 10568 bytes dwm | Bin 0 -> 61928 bytes dwm-pertag-6.2.diff | 177 ++++++++++++++++++++++++++++++++++++++++++++ dwm.o | Bin 0 -> 57584 bytes util.o | Bin 0 -> 2224 bytes 6 files changed, 292 insertions(+) create mode 100644 config.h create mode 100644 drw.o create mode 100755 dwm create mode 100644 dwm-pertag-6.2.diff create mode 100644 dwm.o create mode 100644 util.o diff --git a/config.h b/config.h new file mode 100644 index 0000000..1903b0f --- /dev/null +++ b/config.h @@ -0,0 +1,115 @@ +/* See LICENSE file for copyright and license details. */ + +/* appearance */ +static const unsigned int borderpx = 1; /* border pixel of windows */ +static const unsigned int snap = 32; /* snap pixel */ +static const int showbar = 1; /* 0 means no bar */ +static const int topbar = 1; /* 0 means bottom bar */ +static const char *fonts[] = { "JetBrainsMonoNL-Regular:size=8" }; +static const char dmenufont[] = "JetBrainsMonoNL-Regular:size=8"; +static const char col_gray1[] = "#730101"; /* topbar */ +static const char col_gray2[] = "#544444"; /* ? */ +static const char col_gray3[] = "#fef5f5"; /* text color */ +static const char col_gray4[] = "#cbcccb"; /* selected win text color ? */ +static const char col_cyan[] = "#500101"; /* window border color */ +static const char *colors[][3] = { + /* fg bg border */ + [SchemeNorm] = { col_gray3, col_gray1, col_gray2 }, + [SchemeSel] = { col_gray4, col_cyan, col_cyan }, +}; + +/* tagging */ +static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; + +static const Rule rules[] = { + /* xprop(1): + * WM_CLASS(STRING) = instance, class + * WM_NAME(STRING) = title + */ + /* class instance title tags mask isfloating monitor */ + { "ST", NULL, NULL, 1 << 8, 0, -1 }, + { "zoom", NULL, NULL, 1 << 8, 1, -1 }, +}; + +/* layout(s) */ +static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ +static const int nmaster = 1; /* number of clients in master area */ +static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */ + +static const Layout layouts[] = { + /* symbol arrange function */ + { "[]=", tile }, /* first entry is default */ + { "><>", NULL }, /* no layout function means floating behavior */ + { "[M]", monocle }, +}; + +/* key definitions */ +#define MODKEY Mod4Mask +#define TAGKEYS(KEY,TAG) \ + { MODKEY, KEY, view, {.ui = 1 << TAG} }, \ + { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \ + { MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \ + { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }, + +/* helper for spawning shell commands in the pre dwm-5.0 fashion */ +#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } } + +/* commands */ +static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ +static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; +static const char *termcmd[] = { "st", NULL }; + +static Key keys[] = { + /* modifier key function argument */ + { MODKEY, XK_p, spawn, {.v = dmenucmd } }, + { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, + { MODKEY, XK_b, togglebar, {0} }, + { MODKEY, XK_j, focusstack, {.i = =1 } }, + { MODKEY, XK_k, focusstack, {.i = +1 } }, + { MODKEY, XK_i, incnmaster, {.i = +1 } }, + { MODKEY, XK_d, incnmaster, {.i = -1 } }, + { MODKEY, XK_h, setmfact, {.f = -0.05} }, + { MODKEY, XK_l, setmfact, {.f = +0.05} }, + { MODKEY, XK_Return, zoom, {0} }, + { MODKEY, XK_Tab, view, {0} }, + { MODKEY|ShiftMask, XK_c, killclient, {0} }, + { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, + { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, + { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, + { MODKEY, XK_space, setlayout, {0} }, + { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, + { MODKEY, XK_0, view, {.ui = ~0 } }, + { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, + { MODKEY, XK_comma, focusmon, {.i = -1 } }, + { MODKEY, XK_period, focusmon, {.i = +1 } }, + { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, + { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, + TAGKEYS( XK_1, 0) + TAGKEYS( XK_2, 1) + TAGKEYS( XK_3, 2) + TAGKEYS( XK_4, 3) + TAGKEYS( XK_5, 4) + TAGKEYS( XK_6, 5) + TAGKEYS( XK_7, 6) + TAGKEYS( XK_8, 7) + TAGKEYS( XK_9, 8) + { MODKEY|ShiftMask, XK_q, quit, {0} }, +}; + +/* button definitions */ +/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ +static Button buttons[] = { + /* click event mask button function argument */ + { ClkLtSymbol, 0, Button1, setlayout, {0} }, + { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} }, + { ClkWinTitle, 0, Button2, zoom, {0} }, + { ClkStatusText, 0, Button2, spawn, {.v = termcmd } }, + { ClkClientWin, MODKEY, Button1, movemouse, {0} }, + { ClkClientWin, MODKEY, Button2, togglefloating, {0} }, + { ClkClientWin, MODKEY, Button3, resizemouse, {0} }, + { ClkTagBar, 0, Button1, view, {0} }, + { ClkTagBar, 0, Button3, toggleview, {0} }, + { ClkTagBar, MODKEY, Button1, tag, {0} }, + { ClkTagBar, MODKEY, Button3, toggletag, {0} }, +}; + diff --git a/drw.o b/drw.o new file mode 100644 index 0000000000000000000000000000000000000000..ab1387dee5af86b7c64daf265ca980be95eebcd3 GIT binary patch literal 10568 zcmbtZ4{%$>nSZvFL{305A%KCjybz^0CHSlmf((@E*-!Qpm5CGEUuy z+_$J0Wgk3GO@cge2?3mR{9Ru4F)u_MiRAw%QAkrd9gBmpMTV&;S)C7)L6H&k0nz&)cG}wMwcDvuL+341T9*cb@+A4hW`C72{ zQE#}aT&LUBsj)VXm1{@$`)Vv!ZLvQ5UbJ%XPmguI<1Krh({%O)P(InX$+*YZG--_& z?b=R@eTDwiP(hG#J2WeosdgmT$xX+}vPt94Fnh_k!(jhrbVk_kjSiCJrnFn}qtA!H zY2zX$J8QB(McHSt1je6?uoqZYwYC307g(;J5rYghb4@{$)thX@&4oDqWZ+N)!>R|4 zaO_#?ClrJoxYl9^jlFy%5ApiDqwJW|72{r`n|G%Z@j|v4>XP_$b|4)L}Tb_kr$M5sEWzG)I8-bsqvY4)KJY9RYnh3{{v zg-8U!1E&}fHidzDz8Y$sexU!W0`FSvXe77fXq26_ij&swJHueq=xr+lx}^y zP>Csm*u-dVGVbMm0d;F|CRdN}BTM+;cDA?YI{YCt>>GQCLL}ExPs;<^ydMLP2sPP@ zVfH$v>U{LDy5O>Mm`Q24??K0X;qfA73@-!M?XR-|e<;j8H#UYbJ52TgpCA-fJobyP zg(q$=q6#&{H13`aJ5K1DEpwA^YL8$BAxV#4s*}8 zj(=oV`SzLqB?fc*5fJwLT$6`|;VRRQHS{l51)Vw|d>m%4Ig`7cy<+Y9w98E%9`iqr zH|y}%n(P3x{d(15Gxv=DNq{D%>?%I6ipgVs3sr$U+N-TPRdv8OcI`aA1k<3cLDtId zsMmaBE0KN4^!vpEjb+aR^kRn)MAm~WP`{SB$O4fTPVMxY>>j_nup^KUk56H#;`0JA zkKlG&t}xbTv3TV=QI*jR@;NM7W3DXF6lyb32xdM6G6S@AGJB%><}ft9l`Ioh1b zVO9+I5oG8MnqFeuW!!CK&s9WogF)-^JO#Sxug4gj?f@&>DcJmyv=i`M$aCj+;d+QHO=7bYxaXPqi0X~ z#;=B`u@7$5o<37p9u5?r&KH(Cl&41vi;aDiRCTQ2G4{DAck1+;d>>l&W@O^dqVG5F zTG?rr@8N@}i!_|}jXi=4w+w6ZeDe`^07IMoFh4pyYOf8C<+t6)%g08i^Y#rqdunw0 zn0-C6`!Fb4;86C%Go#a|GWFc1J!cA61&Vv}h0D3odqxY@+@L+j3JbVBdrqA`VlF%2 z`^{mi>J>zDrqwDQw6f>izVX2#mP}^{yscsBxt(jpHj2XZ_LbJekF;74c1;%-Xxg*n z7|YlEPT>;8M+HxWo#y3eE)k^ozZuKHQodcZHvA!TU9@7mzdBrTjw4ux3s*)kLKvAH z9`+6o1FV0)Yt8le^+G;-s)Afm0X@Da_6PEw!@jW~R%O0`Bj$W#Uy$!GwKkl)|I#QsgQ5P)YB-QyXcb>RXu7Ss z%;$Xi*bR|fXEhYAGOi7KsNMQEK5 zElo`~>9sA1Av>AW8|tpFtG_O_S|47s(kVD3O;b{pQ>?7S9l$kkZktp#FuYrtsqk{PsTcL~`#dN+HkcUNvc zNR=jvwy66By&?6(%CNWQF<02DPq@S0+DGRZ-um71Bi>+kLBt!XOnQT+w;l~PdUY7! zG_wk#|0?usq<0J12R+=rtedh9)0lkqHBDOs%BO;VC%sWA`eV%W2kllipWhwo3qP#j z&Hcgq(#HEjbs^#IdgL{O`uSb%1LAVO;mv(vQe9>1La!&h$nbi|p6x=G`vdkoM*f{} zaeGYiuZiB@=dA@W<6er6XN25BY#H8QivY#SGKa~1X_EVh#&A?{ zA0#epe6$i>-Az8ox~cm^yzg)L2`DI1ZT=<(Sx#$QnM{;T8%<~g1 zOO=X#8OuuqF3Ws=1EW4wX!D&hN1l8`=^OYFE|bKm>{4)9@8BM_IFom2RWo^+xsGT4 z(*D%~Unz;=eWSqdD#33N_-F}k2>eGSc(cHNT7rK^;LnxdZ33Sz!8-+BDdwtL?b5{N zpn!KHPxHMr4Fi}9A1#B^5pyp76J_vUl);}VgYPYaA1Z^tRR%v=20vK_A4cfU)h`O= z#dtg-{7n6!v(WZKO1n9Av9@o=j4Lxq4$69*aNROb_-4b2bXhgf$H8;11 zJGwiJ#%Q=(>*}?e(bT%(#L(@y>S$@Z2X`T@ySsN77YVz!JKpy_tvOD0ZFHkh1=^fD zk=E0n07aBq5_V%UIUspW14#%aa0|f|2Wr!HEdD)G+T9!LAD9(06KOk@+(zA(-R^4Q z-EZq38H^2UqSVr)b+sq#X#Y^cuyNPfoUs#WE|p58`yYUP&G3_uA!X!9T!f@j72+P{ z0J)Y6LOr)&ASDIhpeDMq8PoypA|j;YgOb3D30t(o#nE0G_cXYZDpQHL&5dqOrV?9H z$;?m>8tWez*no=I&=y?Iy3AB;>uiyvoIWRqw;AvP#J3H_xi%gcTM~9+#7>iwJCF&F z*tlP%JMG>e=TIfpkygivRBFPNFg((qhFo{|U}7*nyp4~pAhz?HBiGR!CobG9glEb| zPY=~7!;P`M(x;ss5)G+^6vO3A|MQVTDiYtD!8g=i-P}^!l(U- z5;eaVKdI+wg|934+X_y1G0ERR1|rdG4So`TPr-uO+t!#Hp!RcS)5rOOy$}Nx`QSzKUN} z1rieRX>F1E|60LA3cgpt4F!K$!5bC)9f4E7E>`dl6uvr7KU44~g?~oTLw9d!r%N2T z$$nG87Ym%)y+pw;Q}|&8U#{@g^`W*5e~p4SD|&8G@D>GcQ*cYcHz{~T!TS{aY6bs$ z1y{%YZ3Vwg;V%>CKJt$mw;L6lVomyUOu=;p|A~UPD)?RnU#H;X%DS{%!B;5rRK*`u za5Wxwk>N=6Qs>b>DEL~`N&8PIc!PrPSL{^V)xn`eaY8?t?hzS@%kMlRCAhpt=Sy&T z|CRfT)Fbb?wZcCVm-k$=1ef<*x(`#5e0iT8Ey3lzmH#J4;mdpLt0jDSZ#`Cm%X=%` z-zdp;<$ZIk1ef>6XG(B+PxOoNm3rj8#w@|*y@tMDsO`%8i&mH3HfYB-<87y$cc09q z5(BY1e)g>EiPOvxSP{gII5W^sg{A@-c9hyO$Oo$FuNPS{|AT=Z_zZlY) zkqNDo@{wNvHE25*d+X`}EyOO|mH8AyiUcgw+gH zr$a7MpYxh|>N7bfLu)O`*O%Zw5c11PaM`YWuNU$qH0@VHz7&^o67LoArS?B1TG~PjrLAoOMY$By z3ddu$UYJ2gzr)-ab!HfK6t4uz-CM!Spp06tb7DZMC=?vY`&oORQx1{5@9+7&&-4B@ z(Pp3Z*=w)8_S(0#FNdu5`X?F<20{Cz2tOBy+I%ZV^3;f$uha(wc|xvmKEAIIh6@8g zr!tJk=kWls{8M8*J2b0!3PMV^NsUhohpBv8sA)(crAzi%cLR^nLczvqN@t?SEKVne zugv7Q7V6Wn{5sWi31RMK9M?j9I93)N)5GiQ<0AJ{Qvqrl9J$yt;{&y7jsQ{|pZPIHoc)06NYPQrf-6>%>4A0*))4!haU zvOFimB>BFTq`X%r$+s;@zPBX7cO{YYt0ed@lIS@;iJsOZ`EE&q&rE_(Ns{kXN$UNX zBzP~(eXjcY6FSdVZ-$B=S!tDc5I7>ix+i{P!oZ!>38~-;+enzmk+|ViJ8kN#qYpVuwLV^vq16 z&)Ot*dp3zahm*)LC((0568_hc*kNIka#bhM^Q|QL_9c;@lSIw~Ny_^`5`COW?EGDl z@p2-qCpJ}A7X_PY>lgYVMkp<*U)WSJzo@!tX?2rO>S?N2 zHm$lcSW&+aQcDY}gT>V?!9Y_(V|7z-xllT#vAW(<+uT@J0ivin=xu6hXc8;xtLi9q zep7WtuzF%ceK0@N)Z75XR}W3=-NA+>Tv$^@eRFMfeQ+XD)zZ`mKc}@EI0>5*Dk27ZYr#3Y=j{N zW>gJiI(e#_gG~*~xhSC&jM`&=24{>~6l!d2XbLv_8!9Wv>b!Ub`CR+{s;RE44pyH@ zMJ4OEm8W_^ZGE+7b;_fV>IF^J%{53g zzoDY3s^8FPa()z4Ut<$%>*{n(b~0MYnby#61|;O#O=xIBAEE|OUAb7NPkuw=ayQzq zP&zeK-L$-z*{NuGeI>Q3I&=xvdQg=OORJ|sK6RsSP`tO5il@RHZB*cTWW(sb9E3> zsncV8#YieN*DkEDs3V?wVp`D9v>0PMhV{zD^D1i=&s$JYTPGj^QV|pWNA!Y54ClcG z#2_rd5Ld~*o56sVP7KZUI*#g=>dK{!K$lc6K^`pCvWnVZV{MgC$%;I0-cr5DdGjh; zD&}E)si;G%C!L$YO2t@0VzAv*sZKmgDr)NmblhqIU}<(XZ93h;p4DbXKsEsjVBbns z|NRi`$Tz7-AWvD~_f5#3che1H1nuc&-SbU1^z`t6? z`S&E?ro|lZNx&be;<#DeZ`bVnnkvVZfd5j(?Fo2B8<&%nfcrum&rQIuo5%6;1iYYu zkQYx;Fv;PL*TZaW=n(rzhZA`_4+hPp{C0wutzB(Sz<0E%^_T?jO~99^{I)%3mrKL55^znQKmx9{|HcGd)3Y-H z*V_N)1YDEfoq%iddlPU?zHRT>`fKvD5^zm^AOY9pHzwek{LTbilfO9u*W`C6;F|p2 z1YDDE+m}TD1YDCJNWeAujS09WzcT^v*FOQ*O9?-fJ-XBkg$JdQ_t;Rkj2C>`FT!&TRo#covf zF@d7{3fd<X7GIV$fXJOx2Iy_Z}=jw3ETl?fi_!G$|TWB9K z!k-AIKkXBU@F&8wzClQ7guXfNK>oZ*t zBAg(62!CYXtr1QTZsCvYdtHPRgj@L|`|gZzf^cnZO2~!?eRKUU!Mt5T4E-*>`t@6NIZ* zmKbnQhhNTF*msW(AEv_<9X?!#_v-K~baT9m+J7*I=ozm-=M>5 zboh-ryitc|>F^dEo~^@Mb@)v>e4P%zS%-J(@G&}kgAUhkTy50hx9Ipc>F}TF@Xb0r zSBG!W;Z7YM(cxot_#PcTPKS5v@bNnQpbmHG@E#rha~-be@LP3wuMW@C;e9&Xt;2=w zoS^nUL5G`lc)kv|>2Qw@PuJmI9d6g*6Lolo4lmH*Svp+Q;ki28r^EAf_#_=J>hRli zctD5yb$F=`FVx}XI()JYuhHRCba4nL^F=jiYr9X?lw zD>{6h4)4|Bve-r)-l*em(c!o2 z@Kzn(q{G+g@May}sl$Uhe1i^Gw>VksMjgIX$G=I3t6QkL*#AEMzqWuFK5Q0c(?9MP z1hG95G{(Ed@D8(DNl+%9^C_a@BR|Kt^~yXv5zTr?v?q?w$Pb7%fHm69=mSI>iH(^dzEb2@u`P=m|uV>mS|7=&?kT%OCAz^i4!xOmr)w zuOpgV{AeSiuOgaU`)E0%FC&_koY4TIFC>~={AeDd2N6xKeKd>FMxx23kJ=f1>ORoq z%13RC{+4KR;iCehzapAk_h|2rRQ^wiwiDgM=nseEhH#2%W z(GH?FGWtcL$wiNLGWuzv$u*C*GWrRkuO+&X(Z3}+gXnTbKT32a(E&z3NHn?L(L6@q zLo~VE(JV&aMf515?To&IXmY)yHbyrQeFM<~qZbig`-)FHWE!PaMaG|Qyrkm^^MvX{Vmbt@I8y3yVrSp5^7M|2OPKOmZ1+h{kV4-h?p=m?|t5uH!;W=3x(nq1iEMn=C#G`X(P zPDVdXG`XzNRz^QTbOF(gjQ%arBGKiHew1h*(E&z3Nc1G4^B8>((d3Fovlx9B(d2?g z?To&I=t81xjBX-&GSLE~7ZE*$=-yMT{)r|RGup%GGNQ?~jCM168qwrZMk9=#L^QdQ z(ansWKs33K(T$8AOEkHT(N0F+L^QdK(N;!ZM>M&L(MCpJMKrmH(Q-y#Ml`vG(Ey__ zB$`~pXda^n5lyaOG>g$jqR9n}+8KT7UeM(FMQx1!mS}SMq5`A8BAQ&iXzxi@|3sG) z-NWb)h$h!A+Rf+#M3YMwjWBv2(UnARX7qNV$%TtGRAC73(_n9{ih0n`LayCl<_MC&C7Y_gc{k@JR$ zQrashk~HK`VDU(%#}FuG1ECuX2c2`aK8!%x4K4oyK4sh>kgx?6?OyZ{Wh%NcoSjZY zigI4AoM)Cyw?RlaVw6miNZKq6w9siOII<5wVgn^B<>ji-zy$z((hh~jS1|iDd=_xz zy%)6N;Blk1xCeRMKPZmMk8~GkabtMgZz%3C>Ire*qa;j$Yj|7-#dY(z_qDj;JZ=QV zJ(c)}8?nBVZ1|IhtEzZE>_EOvm9@nnL9YZ5R8U8_WG`>QYS}m@Z$B`Vx!{Z9I zxFbBSgW@uHT(%bX1&>=paf5kWnilstk6S`cf~0DG%ZKMRG?`yYn8T=q_;3afvbj zO$i*g>o`gnM~Wy9UrZdIL#im{qiYVop6Dr;;cNNLlq}~e0NH!94+J3M7CgIOpjPSL zLf?znf6CvEqk!QZc5n9H7e)|l5aqOK;1#7^?k#p8MM!*-)H%$`tyEsw zluJ?4`!5P2OLX!93S1X55rVkeh()sf%A8q^JN5nM5L13bchp_fsof8v9_HCk$pszfsdTb>VspBD0VCJ4S|AA;VRups?$;b}FifhH%+5 z%J2kCM+*d)#pAG(9Wn34$)Fj8Dr?~lqFS90B?mmB^jLQ*G0Vem1QHu7c0A?S!~oX~ z07U6)<>K#|#U2+c+gOxOPTfJv&9EpPjdw?vlX!Vnqu72Zc%dlYSwkv+jX7i;hU3`R zqC8~h{gi?0BLpuB$PIDEW2`_gQ4HA6Q?9dt`AGI5v19Zu#vc5T()^a5<6X++Aqc}i zq=deNrjIj*amo@V817n%K>0h*U_L!pq9;JsTs$M|0u%>SfT+D}@_Chd zxngB_S|@O{$O~BDqV=1S!)0AT&$aBCPxn>g&3yhx4UM4GYj%)ZkR6#d$35FU$33@e z!41|c+aR2l-yXyq@k#sViqfZI`19UCvA@Ig6?|W@V@Q|FF z!{I~SK0$%AF9^@T^d92L{sZGZ)+<{{c$XT2e+}c$A-`D6JS|GS;R#_NjKY|9Q)Ih~urcCe| z=4k1(FnT8<$wl%>-@!|ge!vDry3R}TILz4*vHf_kMqXwU<<(}t^r>>*cd(qalji!X zkkcM`U>F%$oq)L`?eZze+SnV9M-M?Ezw~b<4SM)^iUy?kMPiBzDMj~D_)JZr^q$y$ zAecp&d9#lwcbv&=43f@5Qe<%f5~vv}8z^0na(0a%IUis(Lw+6&N7nO2d1X3H?KDPp zUKWyc-K*5?wz3x1hJ}z^lA2N?NCE8I6ruPv>7ry4 zr5gP0q;bcrZ&PnjuMh74i^5w}7xk5l5>fgQ07__H8g?pN8ukyr8aTf zXYddoSHMP!dgT0EkCf$+T2hspVMfM&G<&a)#+mE`%HO_;$GI;j9mVuRa0Z(isqEQ% zl{i!?^GiKi=Wx$s#VJ91A>G{4chq8}pNaA^yEG$}nh9pL)n;WP>vFJaWxmZLMLp;~ za&x-Q%Y=KGt864LDc?Sex?Wcochsknja;JiJxR-fcz?&J_q^Gk`<+LEcAp&TLtRQA zD?ajY(WB1uOXYSH-WNV%jvew#mASDLaG%kdX?(F-0d@t}=H{+~=(GomO71e$mN#37NsK{@z* zXgn~A+b11IO}~m^S5RU|N97-d@mKoDClCF|FCE3OD{lKTm8KCh1`nl>ba#HpTIsTb zF(bMN+9qm~209W6)@8Z;0J zE4_uTIshfK#o#WXCpE)-7~a!hEN?q3Sj1@H_TUv#og>dHedC_xMep!PpQuBwdtUVT z5or2`w_|b~QHUW=6^cvQtrKx1$HV6GP98$3(!y|2%f)4w@eIEH)#|D5N)afWzu{xF893rB!Bgijf zVDG@~*0$?SM6*g8gGVvEGE1k2~?U zG~1CHTbUj4wjak(#rg%>JQ{bZnBv9wY*TJHOtvjSRLJfon?sW^p3E3^p@0WOuIzVY zDVH#|mFOW}G?9>9HxP)jh|UqnQ@UVLkD<!I$M?lO1yw81Yg$rUe+P($}P zvQWAc#o!88IkF%u=)fd_ZV_~VfPZ?=1#JhcZS?lIv_Jewr1fNLa9rDgaI3bP8&^u@0BX2+k2#D;N}XIf(yy4f1% znVy*0y_Hrq&-9*no6SQb-u89Oh+CgKB!*9=Sl8}CoX>f}+IA1?JJ1Yc^8n91soAL7 z@TZa1Q?0>Uyls)?KVx)H>#0aEhduVTp6UtSjK{606pX^*Py1R=^@g&TPEYs6uFQ@< z9f@7alzzH3W@8FH-4i>H>GO2&i36Sy+pW*-69>MAb`UBQD9Mj8tvf3sTG+bmSh=VSaT|V9-KZhjA)(sK`c#YqnOzzonW+IuFj?QKMupe zFt+3>bbb*U?KiA&*t~|*48brQyWEEwLd~o+OCKnKC>#H}3*{<@Jr)V~8psp|$g!^9 zmK`zgv$o}8RAvJ>+MKoRJF*?RT%KCb5lnfaw2ekOG=*IE);Ov_p>0<8n$xH8Og%5x zYn^<$uriK}Q=LIa-qP!|)JW=)PHCx?J}ixWaSYE$6WSkL%PI=(N$gnR5dG4r!ph?> z(7$z~WGM0Ygk7HTqEP5Oz4T(g)Q776QFLx^9wf&1?DC|FH-x@n-6!bu$t5-j9Ob^= zYo>g&_A4nyF(s5W)jb1C5!N3(9jO>wRyZ1_G+g(&$Q=BN?#pYk`Pls^HLrxg}k3eo3Cdw`dAW5R17Jsg-BZMd7GvJ3F%wqeM_&z}UXXAuoWxG2qMW z16UDW9b=KouMonIp(=)JNN$!#`4bF=Weppylv7+vp>$ZemFZUu6Sp4-4PuQXIufmt zI`C0tDZDb$22Bc8*2qMnzLZN*N?;eW0!Z7jlVk@^=sUkO-yVCByvq&nE~!Pvo}#fW zT?h_h%Ra@5l&oI1pl$`L7p6tKNriRoDF|aj`G7x!#zx|Ze$1A_kFjAD1NbnuRfwg+ zaTEwk1sbJwlMqjxDTY_)3c)LB%D5~5H_DqG$=0bg}Rag7mKJ2t1r(^a*&` zm}IWU#3FsqIx*WiQ7%Ijsin8lbcI!1*5_o9REO$;VbVJuycBN2_cYUq@-51(U|_!E z#i-IQQC{1M<|1|kN@1f?zV?9OY+^?zEpkM;m4X=7V`~{L8Ik6fER8&&M(mhWqffK0 zg{Pr_rD3#W5S@3FhenB%0>ZBp<#i-MzCBO&|6Ocf7XT507ud?u{Y#W4lw-rEk9ae} zTS^ftkdw$&iHdS3OFb!1F1|->@1)ehPr7!Se!r9|1nVTfoR+sn5K6q+hYY9u@{n;L ziVWXmA1Z9$8w_}5ca~dr=ep(EF&;z2*=?P&-R+)Ein`n2p_N8zKjJXTnyQj(% z?F(Gy>);|Ta1ESfeR$izeV_-c4}*qj4*qfp#e`tC^|{F-eA0ig zn6hBOm>psB7bb&Cpn!7Qr}6kqc&O-C@K)j@A3{mWvLocVK+kCyHLx)f-+BS+hWF=q zgpD+Vx%P9Nka#@&7GGB=F7){J$m%1dFp8-axp9wsMk87p_ROWUI$*I&-~|AQqTfn; zsBa&QjTWUqBYcGxXjuv#<+IOdY-6-YbeL#bH(kaahK_86Mp*5I57(fTj08*effwj5 zuFhZbI7-oH<+Wy1geX5x_2H9xcBeWnMq1`wAkqfZk1-Z&IPzcCij01XTnsyXWdP12 zF9}m8bE^UrDqYkUF|w5E9luuz4DYDn3ytvMth1EKfak_^k)9`wq%jUvDQRswXnE~m zLVwA=*A8O{DJR{}zSr6rG8Eq)X)OiPTJrF?#xUCm>^Q-fOnvc6=tq-=D1G9A@`Leb zQ;K?+{gl_}07G_tx032j`H)!|4w$|aeFTPgWX{#qPDUBX zL~iLd13bmOL9d*)3^_Z$T{&3hn!ab)mieZfHV3H3d0^!b`F_$C;6BK4cMQHc`+#9v ze#c;&Rs7bl4Sn-KY^FLedE`l1@}yjkVXyO>)q~~dspN)Tncqln%9F;(W#bL6NgsHe zZ?Cp_{^8gb&^kxHwg8lg&Lv3zr;WvhECqx(Smxt^}Q6WA9?5OTM1RnW* zqSzqe-{y9{h6Jy9~Sxn|bh<)wWguWSw!qdgJz`(?Q>#O7xBUmimra zuY3QP+j?EMHRH2m*14ZrZ~SEG#mB5O_Z_pA?fuqTI%F(%D!;Xk+8et9(QjLC>|UCN z=q^M@5N*1gqCM785o8!rGn9Xw1@YLVJ5Sp4$cY~^_shQ?!-0VwDFVcu*)6Zl1w;nA zpNe8FWP#Uk(BoX|p%`l+3o!fsl!%kHzR+bJCu?e<3!JRl zLIWXzY#Kyn2WCa-SZo$+$e81breQtE1~#-={SbaN8^XhX0K(fZe^+RHtlxffB@RvAcv`0$%VOC?juK!>>V$cj4?#yP*&zP zcV}s!VS#zGr%E$3*KWC6?;ON(3E$FbaU}`Zz5-+7DUVc7l|jVVyuO z845Auy>j80j`6p+q3gI}$Ka)+C$m@D?{R+Wwidjeec*b(WAKS@q$t{^1x3p|nc0Uz zVq#H#1z%Qvh!s3cw(m#{cnrPnao+JB>xACeL{BF6Kd?aN65Oy(CP}dxzCK${(YfUG zsdD;Mt0`49l%qT_dGsb)9q`=&wh@ZGo+7!x^CH!jC_lElm4!Deud#7sw}_=KRa45W zc+ae^z^k2zX5Nf46-PsuB_3LUfK@Y!A&4)$@%rFf*;B_VEUHEP1w{M>L}@b1>5e zMLG5)ws~`LwS$oI)K)edP~&2A35HvYv#f#qhM@4BErPY3HfvFmc4Q(}nx;W%+N6_j z8>U+m%SBlwH3l4}dgLJvaKsz)P{5mzWRZYvmp7>vx=w8KUk=1S9e zLa;J_=Obchrs?xiK#GS9K{U(--_eyy;H^x`tj6ecs(freP!;G${?i`N)WZrr!bJh7nR3?Ur`9!#j+kb9f_I zLsOybT9zhDxsz?txN3;($eBs1ZNzpZO52=^cHL29grO$@_Qsd|E`Akb*I6M9JP${nWFRg~J*1K-pA z3NcQWQ~UhVE_==5uX@5l&wk*UG z-QgZsdyG-pfc2GZn#>X(f58aZ9&E2c2Uin#A31T-JK`%CcA6h9gx!N_dzc#=D5jA} zKuy;zZBx2nrI~X*?RAd9K|jm_OJ0MtBxh&{E>wOwm6iq+Py40-)OTZ94RNXN60g*Q zLBowf+m(VOlwv~1m@H*5v??w0#dmvBu<-ST;{&bj-*JcFPzXi9;_?;JRk;9LwJE0i zsaUcrf+)ANTQY?iZ6aEfvy^9PDQH>*a1oiP2>Mrp@JPoWL8^Nw)rlWbNR;ISGWN)K z=3<8jN3pZqnMd83yFE@<4*0Dd&mv3omvTroRWji&KZ4-xSc*D_XXBAJNaZozikoG5 z0tm}8-dv7MdqJw1rs1(a)4PxFP4f|X{#OlWqhePVVh)`wqV ze}Nq?)6jc-Dss4w<#3YDdRU~+rcv75U!VCOZ#zlO<`7J?8vMx*0E@A*+Zs~!>y!ZAW!ymitS;l+u$AYLuLYH zat}rMnRP61jUsI>d5;RJCi0+TcegT&wwN)QhhO50u+ia{YLG?a0&X4M*3AbTZ>tmS+%Ll;jDGlaH5IRUYl!f}Y6p?rQ2zQADiByQbSPoT`Q|~b2GYyzN&mgPyjN=3D?i~Cl+Xqu<#HE7k zN8Ed%2S!{n5RJHW#=?%}q~~emQr8C%=z&1xZxBR%-h~mLPNSsm*3VDFpTUki9$zG?c!I;bzMd1AWc5qHnv(!L>_yIv)Cbu(nEO~Cq2+-Q)}=hEEW8YTzq>Rjhy_ zmf?9EzaUKO3zii{(MJwbrl|BQpj`CS( zTcUIt-Q7+9#4+}nec{&;b2tliy|$53x_TNC437n?2=~g&j7`cgKg+KB9>$*Y0@IX- z4zP@}P&pUVt{g72VawATOvSdwwMzAV#GfWa6{m)qIW zynPsBp#3L_A&5;4rpfIzCQ9vg7Mm+E5>aM~BHvzWXUlc>c!`mm-!0#s(SAVgpsX=} zcXbTC!m!P`f7K{&+o9mK@_H(j`$eiTEDauUpExCLlX_XWEAvgmN76qiA(!u#eWT=m zkctyJh8hgJobRm~O;R#cDa;GuQcmI`;2uahDQ(OA#$(tfbx<-Wn-a9-wf=i>2tDek zvXL3QovftIMeP9)!6upU%j+p~QU1p|1RfcgQozcM*7V>Kj3{%^Dq{I0tO&wlPSlhr zPtC$O30KIC9y8Pd8cRM5r+gG^3N#@1^%&;~7uzB|OS7zh!zNjY`PJ2Nrq+C<^B8(O_l!3x zcO#KIcX#MKk2LxeaI9Wqd*WT;AIzcWN?}c%YjHh{qx$E#nDfSbtZn=qe_%yD$9X5e zHMN?6AlhygEa~dMS%DK5ngM0g0LH@Rrn{)y(lVIt ztMo5}hjYzrbGqmdBXk)&fYo-Tgq%ESH*4!}C)> zN#QC4d}C=h+g<_))DKki@x%Xcnp<=}6^3#BDpCOnA=Q!MF3=P4C{#LT4kY{~(*UYG&R*2(Fmy#5W z6Q+#|NlHt3aA5?hR*ge`C9D%!DTXn);-Ud4+)@s!?hXzpi_XBFU}?07 zHA7dVi@dGm{RzQacCRIbo~iH1Y=@U`%gb!r*CVq% zUgat};gntPRwIwt1w0iJArIF!VA0c9nK73U2k_i$G$WP{J3r@6qw8s~oi(nh-Xh;G zBU#$691WHZ)lpoOs?_eGI^02?A`ZE6eoJLC`{iquTX&OE30~qNvPQp`2rpL7S%$3H z0!Ea#u0vUsA{xNtm*^SMEr`a^s^S9bcaEG15;JgU2yf|FdEZIPPUq-SM1%&N87|nu zNOK;fW7s0>K`BHT_uX7OuvMfhZJXmDqR2hQ)-KzUR33bttxQaG4PrHw%O+N0SE?fr z$4(gfKpO52h|XcVLr37@40gXvbregbXQf~l-Jbe9xC3)5@-zJ#nbDpC^7Z49ZXu;( z`bi%_>R?)8{!$(g(aw2DDzLr_^XA?Az+1DhwF zV%tk;b;Lwn<_^|`QStY)+H#8apefpnnxYfKiA)r0<<_=#Xohhl=Mw_g>}C}`7t+vf z79+o#D8Ik#M4>udPv8(!`8zAP>oVYQ6W^v7`2TQ-z-(fI^UBq&0;QdIv9A#e-hWby z>~P&lQWkS5?;xfudLJ4jrb4)qri&`506&P%^XNvp=`qC1dFkOu);g0i1DaGK9W+DP zO&cgr)VNu0u_>?ZfY4vyOO#VY88x>{NoT61@aBkdk|cMeeKwLbg>#^6A?^;>CjgY$ z5R2Ov-vh!Dj=$VQ&MlhfIovy?76b4WR3#)8(q0F1>|EzTA$F}>b?g2FTJP3fOS&Hl zjiR}%5HD5?h5+1ZAky_3v{SEy(_0qG54`u<;av+TH@%Hu_IErpL^zCxh2^uMAbqIKWM z669>=40{pG#E!*&)B){S(B4V-u&5giaBhsD06ma9h*)}_mmP`zK@fypMl_ml_%Q-= zC0CG4>1|Q^O8E`sp_RN#tK}>q_y&dcD??b_;{}fwu_yrJ$I5LedJG-YHGxw04>vfm zS2lN%fR^i!Zm_WGYEiDERTV}MTu{JS`^QX%GKg#k59~pdZC9AYqSP35mHpfL+X}WP z^j_i#YM|jAA__|@noaX4=d`~=fmg3Za^(l!3opXvz2|C*bFD|5Vq?~GtpR&!bnCz4 zaf}o>U6hz^L$fNPa=*e;qnxj>Awc?yOZ@}zR-Dz+h1sJJ-RqzWvoArHIefbcR!=7v z=Pb*UH$Bc}LN2(=h-JaGp+QOkhLh+!&@_B!uEE;2k93~#5t)JRuv^<+0D#3^2E3h& zU^TuyuvfV6>QDt4>Jw}mE0e#1*{6kHVe@Oqr!I0~jF;w8c|KLbC@gC4MiJh+ath}r z7_K3E{dQ?RrJ?IfuaJkPJd0z57+X(Yz>Ymww%6iL%sA7ZAS-kk<#_;QR}+ZNhVqa} zS^Xs;rl%-7XMP4>k)Or^9(4}#=~K0%EguaRVY=t5Ua97Ga$SI=iKbE>V~x(*_6<}+ zX^zZ6Kx+_OhX2i0wj@TTy9uQMjMf-rsa4EIE4G^LmKhmmv-YFnScK)9(R5iti+9#N`QsZo@M|7_fy*vC3dk3NR3az#+bCW z1t=bC_&vF!u%Wm8Na!|+}s7^4wy#q8|>7yt(*rW~XWUaH+%lYWrZi(|i}eJHx3T#8$1 zhv-(?Lu3#w`XLsLYiH~bBZjSe?m3SXogarFjvbYt1HM-V@wY+oH}DXf09W95baeo8 z;UNrNn*qW&dl6_8L`MYCa+(Edf#H76unB?k%&X|;b>WxTf+#o$b1w$(Q3~1MW2K#T z`FXB<*6&b#)j$n4jj7T^skBBJ#=5tuoQs{x0`;IL4}B5S*BsiV#nZ4BzKGbX)ot#-J(*#6F$llzKgXN?Q?w33P!VWK$%PBfR<%APf#R$$=*Cs zdXj1=J1%?LMTwnhiLw`MHrzGA#&JdTcD8w7vLi>)S&(6E ze+!Mcq=;^P3sdD8x#QBlC$$U4htAJFVWgB6p^Uh5R4;aP~mnGlS1fjDk)dGP!)7#iK;Alfu*I!K+$QX}{2 zMe;KLne9V)wW$1=PAFL(HyMULZ-?e;i}-DI*^9H3RqbV@pwK} zjH5~1W#+F6;l08CF#q@5o*3>{qM8IHg^GndaP67OR?qT17{peGR<^NPUehSAA(R)^ ze|Yx6Ikk)9T3SN4X5(#Be~0Vf1VYCgMPJP!<{)-my>NE(QcOoc8@k-i53P4?LcU^r zC*GqPh}->7kQS9F_$wyD`Q~P(@&_8;@t!Nn^hzqRl+lbNyS@OBec)9iL6=g$=oo(0 zB$`UURM$4n>qEDS@@+T|*c-$>FOQ?xnQz81wP_YKz=FqpbFm|UZSoV{Bf2;J7`h0v z?!fS!>6rIV;H@hsNw6@vI~ zzxG-_I`1NYFZhvD93!J^1t_c{*FVQJv(q5vghcW|hticRn{w)Xa;&XwR{_Skg1=*Q zuA8apMp8dm(qHwr+F;mI%8f5T3N~5N!+nE;m#rQY?i&!aN86!IxNj&n#riI>wl4$a zm*Vbt@lGMShzPW=0N&~FXZFJ9w^{El0SM*yO+!WE{S2(WW_#quEW`WP;{^nO0634OA$Kd(w!rM{h;S=frH5?quL3Y~k)19u|=OJay4r<-n$q~KDihZ>J z)pP)@`asYjpEr`+qTuCIQMS7Rl>J&J&=mpO+~|L>07If7PlJLhbbB6mg~k>CT?}4> zx3*`{`%LaUh{7h`8WEGa$dj)@g3{9-=7_j$o;>1H&qk(d>dN zywCwdH%fj4uR*INx3=wtVZyfxtFU%`ktL*eKJTT5!`}|kylC!ZS7PZ-T(N`nmI8TqsZIU$oL07f=Q>y7Pcy^_6tmwV8yW4;6{E3vI$g;CE8JVo}0v)k@{_N$fS9s1MJmy&I9< z$Iry@&sF$4au$pu+{JK-zXgOM*{MiWwhVf3pV`#MBT1!?@~fxm-Ki?P_}yW;?;`Ny zZJ74YeO51C-5KT(<=HS#`ytWlL3Nv6EhGlaDn5BBroQ9BAuy1#2O>!4`9Ap;0&)8V zdmvA%s2{vI>;W$|)yGs6bLPZhFiR=)z+<|5AXAA=StRRXw>;VI6w~SDVw`Ip_VHr* z!n;V(U1KqBJMp$=5YrsJ9fx<%{;k;lM%E>70d2^n7(lvZCYJSV90H%!bYMYhNN)Mp ze2itBNI;e7mG5V@y~-|6&gd9=IbQX#8BTf)csXG2szDxHK$kefWE>Pu90hi23+@#4 zC4@b0!+x)G+p0mhpzr1F#O>Tl67gmM4<#0in>-9}&axXgxPH+mPtP*+IlEU3NtvGO z>|Qwl_kUq=x06f9-G0i2U&+Qhvbe}H+u~OPiS|H&o4z$_gRD})qf?^ zm@WoClAT8Z2>^jbWcp@$T`#UgaAHB>CJYl4-u?j(doTkd)&AR9-t#G`()M?9g{elD z;q=k19XzF}%@XXt1-r5Y`Nl@^xAK^agTurKxY_BHb$tXafX+nKhJgORRjng93T_DC zK7YTPKN%2n{GoR#Iz=PW;<3grwGi3D$g~aM0#dWcP^8?8_J%rTm6`T2N#s?f>WPY@ zF6!mA&hIQn;pi#PqVf3n9wqm^-~Sk^Pnhr-#Lo0NStkpfPyQ<=v6Zj^xT!h$rPbw1 zH~gV9me@c7k3k^jgfU0SmN===@7Vnk6#%~szI(r4#@d^8^fA+CTn?_O|huP6P z9AVcWkV5EkyegQX$T*Op!E*>a!#lw}D|!O{Gu?w2k_t9<&axcSOFWp5wbV(H7rvuW z22ZaemnxW27Q2{U*t#9NXvfj>zZIRVr{G}bYIR%SA52CIWaJlN z>Oe-n0>?QsyXdvf<9>NPb+)NQ9^pP2q(6`3SeIu2{i|=+oVpt3$mnhthpv>@ zvq_O%L&LxPamL5ohBg|T>5-J{nQ9lRrm52a4)$nvXAp>Q!8y+_TK&)GeO$9s%rROP#d!A%Zb!Q z=--P_Uivdb-T{L5oB0LaOVCEp-ISz$YXKdYI8AFw%(?v5e_;!SEv&1-q1b70e2x>^ zR%(hr@mtv)qBV!RQ8#qqtTlA zn4=YGteL-eP!(G8;3mU=(m3rPwa19G34~v&_!GANT5uF zkuf-~hV^5EwhkibWCTN+Bo}92`;~x0T=l*>Bf~=3I7r4xBZwBygd7m^-9zw{o^?v)~Pe;E1- zb#B%T!r<$o^3cE8j2L?U@8`c3_^$>2Yk~h-;J+65|6>6I{zU@zBi*Cyl@;~%4MBTd zLq(OHe#zRtps8Vry&gaHJ=T8h$mVMYB``M9FP?KwVzLJt?2Y`_)X&YIAXw$SVUSSY zz@;=dR#(<8sI9KLLBJ2n<9EZ)R*d~VIDUZL&LWvgLa+uJ)Z!PzxrEw!J0X=7mH1u~ z0zAK(6{s3TqS92TIR)|C;tP=tejXja{4F$BR@7C@#}AhOv`gZA2b{OWpLoxR9c zkT3c@_L_?Ns=Df?vBIp8RdYxxm&|`n-9EBeu+wj|S62}{`j#7R5=Ji-Le0=>tR0Ab z*65{kgk=>?q|;bC>Jh)-j^BN^H-{P<8=8WHxHPq4HQ8ORDQb z^H8P2=q1AF1qkZr<8Og5x*1{f0_+aEgrAT9xiG76j&Mgq!xAA|xLFt@=Cj2;kb74b$!({*HY1IoubrnrxoAHD8u3XlvgsXG1va++Xg{v#)S5{We7p`7V zy&z{n4)8Jb5w8B(%`BdC<6q+X-^-le)Udc3uPmvbo?H1t@2!tMLZ3h1x`2JY2Htur zngZIxSix|4%DD0rL0Amtmwy$HKZWQ2{5Bqc2jSq~#p5pz#aiacczgxuY`E2j5q7}! z&cF%SO9(v(XJc7$zKqa2lgDu!8LTE?$ zD8exaKSAh6IP;x&yb9rAgc}eRVh?2pLMM*3`w;#Hq1_65A{>LT;-B$&F~TUqMuf)> zLQjN^?;{@!&9grMAHqiv`VoGHunyrM+;rN2kp5kQcMzI;P%eZ%gystb;Vy)BgkK;O z5$?j$zYXEdpT*-5gbNXVj__`TsTaa7pU2~Q2&)m!MmP$4mYWb>6NNl%W6wfpNBAhh zT!ePq-)z!hyZe17SHr8~Vl52*)7&=osoFO%UG3IYcSK!w7>2{W#Nk z86jBM$8g6q!O&teTt4_bbEn}v5+Mx3-=06k zvYx-p+$!99*|_U&c3edQD7^=N_FtoX1gIYxc5p#UaAA?mt{P3S*gA|8Ea~^Acr5n2 zQ{9$~u&Kb3momX%$pGTEq=RFEg=El?#|He(!BYDMgu+CN?QY}zT@*=qJ&V5v#Qlci zkm`P;*OGo;iq~TANcCDW?lrkBS$7ZcS#rbY`7C+H21~BTl7$Q>SnN=MXEO>(|AW6h zkb_H7f>1#EK@QU|oJxp=!a)|Z_k6d-O!~Zx__>G= zQaqHskL=r#!u0WweLX0Bxg`TYzj@KLh3}B=QKZ9gz&?bTv8C9l!${^ZV0Q!iGjTCH zL;ig!Fr(hiZnCo*In5lz42_)ihW4I64LB^5PytkmbHEwM>S5&jJo3$>d||J!vB;8+ zLQJq^h?cA(i!Hy4*@)^e0^ZladnfTi$9s(^>fL06a4HqQo|PSjMboMSOE35@#vHQ` zb3pPkd3f9D9BABO*)Y&=**FlU-7s*1rE_4)Yex38ao}u(ZbCL0&Q%iL-)O#T+>Bi$ z(y!QJn`BAPx7crE`cqk35x)lUYyxHad;0YcQmNHGLG6L&%ZI^xCCOs#sED;ABB>5v zNBl#Gr?x>K!g_!`18f09IQAVd6P=UjFf-=RtAJtXXCFJhhXK137;9f5wZB43dN{>6 z$6`YZQwtu|0bqF+1A7=)78k`Z`lYYUz>qcj48`{fV7~@N&(!v(L1-=>9|ry_ z;13f%wZBf$zl~LcEa?TiV3gM_=80%QFeVwuz3X+blALa&J%+S6h+{HaAd_sT08hi2 z%R<6gS&RYJmq1cF`j=*BBmS2Z@3Ax*AGDY$ogMfg;JXQD{S$+h@fBtPJD@zo-}Ov9 zZbZ8xxnX0l2XTUXotkIZSPiWv(9prk+lTm15s!PAOebTh#Z0=|;QKh> z>r@bq{FYd9CtC6*T12-c;Im}SqDS{h5(v$1%Pr3Q6aZK?5s&1fa!v9ER4B6kTTw=>4GRKZxFmj z_^VoZ_46p3w=l{Zr=2}-QJZ@T>Bb-(D=%v+Y(5fcK04D@SpUdJC#^cyye~oy`O_iD ziQ<{cr_P(0weBUqFA=Zx@4Jn27{^k`ACLGx#M`^@>Pvq+sHJvh zH{NbZ$1o-`=Be=b0IlTp*PnwO>2u*cd#Yrk%-{Z3%*x1qoNnlbVDu|}%sPb2ov!)S|V^}8|PT?5|3 z{k-URcavWmPMu_FH5%Wx*wOl-Dfee-T%}*0bYktr>YUYQ9W!n@k zpl2JWT1ux_$^$gCqH70&mQoC!K8^fo>qi@a$h^UVaQWVNd?lW_PXfm|oZ?5bDWfr{ z3oRB-if$BgckKcz*<=OM&PG~hM`jas{3}GD^Y6iD-xrU&C=c*0Q~Suvz`ejH zsW|-O37Taxfc*>c4T!&1ZR2;7Z%A`gR?6iDEd%gTIm}p-(i^;VdQW!Jk4YF4m@l33 zg7NG@39Mv)57PEwojiu}K|6;JaJ>OKQX4HtoDFMZH=c!Ri*34!w*YqncM@K1u@wO) zn{)y%171luvkB%y8b|F$Kl65A6Vi7J_|}8(6XKgjz8NdqMDV=`yTe01x7{i2cSt+7 zJ04#``m+APd`{MWF<=}2V=0|%DW7L46)k~Uo&RhHdluH-i}$NOCiH_thRV&?%+A_t zF?j9-5A##OGowG2+d7E&I}p!&_A=6)%@yPiVSSVCNv1p5dNb0#fV5S37ACW{UJU=Q zO9c5k;tbed*sYf9ep(Ny>lHRXob5k7naqEpev^*9gB93|IHk6SpU7fsOg7gPST-7s zKFcO!iDk2KvSkaNBlz2BOer^>%e7$bq6P9V#@;^?QQJi)@SA}%e|omXHV3#J zESrFr0l!=2M<1^mgk=yLY~5W<=Ih{j89W~mkMVaFTcO2VipS4^--UgVU8x{Y-{&q1 zTQB=9oraXJQ!E<{Zp%i4aS9$pK*ky8DhQ2Dc^I?~;~JzF&wT7TGdNLvIpQzC9t&GD zFXZzS_d?O95#Ne<5%JUTEKH&Lyi;E+p$+iw!Lt-RqxyZsgnCV=i#pVW4|OpCbumG$ zi@Ct&0`u#zlvV@KVjUWws+7)E))mlW6!v+<`!JVdY(3{#3O&LD&>T`y-bt}+NOa(R@m*aXuo4w(rqqEHOIAJ`YEV#A7^V?w`%fYNN3l=! zJ)Zg4FbQ5YAA|NFt{GRsE>+`Zpxw~NgFo7zYDC-|0$BYsAN$OH3F{Xk_p$R9ovZk4 zZXShwtaXq>-Rr-f|2qqG=JE6aHGG^oE0_<9IQ|=z=9D1(L8T+CqiE=vaA^X6e~emL zaeN5-^Z$mAST(->^ysC}D@BqBuka38})yC{TdNIo;nkd*^D} zN##$vN_)D$bGpyz*Xh1}@3fj_o|tJ)he-eXbTfX^&gL{zciIJmDL?%_%DX*L?kaUe zv9QT*YURB{5CeZkbfEk*m@!s9=Mr1&24I1~Id|V;hcRvMvK5HwClmaCN~B*wTDC?m ztae1U1U5WyqodZ3NVM{8mp;c4-s4{jvH*4lQmic z%rHyUr%RA6yA5Z_^Qi{ew%VY6Ps3S`H2xx+8~{29YK*??(4c!S4Jgi>?UH8xd>0}9 z+%lJ@-TF>LgFGJDK>csO=jtP%6+MRZZseDFW9!R)cn#^jF#Ii~6T=8v{{P9ohg#dP z9^<1QbQClPIt985bT8znyZvHV98_L0y0_eDe&Xs1M(|E3oCmCyWzM1JLIs5oL+|HG(% z7w~qw3o{Kq+ou!!anNHEh=6p0eg^cqYh8r)lF#iA`P|QupGW>5qWon3Y=WQ6&u+;h z|I<%xwkrqAFCc%6|7!}7&-y3F5BaB{eUkmh_RDBt5-wszU9wR=yM^O-4&%2Iavb*L z?@sWGkRzYtpZPlyd?XF+BR@HQJ0XbW&ai%LU*;#DT%ZB~r_d+lEoL}U#eDYa8^6mM7ltDh{7x~nW<+7ol{(}0+r+)IO zpM2^kpZdwCe)6dw%Vk6ViKsXAlTZERQ$P9CPd@dNPyOUmKbFgee(qbTpM2^kpZdwC ze)6fGeCj8k`mtO#^e;`+pM2^kpZdwCe)6fGeCj8k`mtO#^miomlTZERQ$P9CPd@dN zPyOU~8W*_ya{dx$`;$-oui?*x4r6uFNh%x_Tcn~8iZkMu$C2YPxg?^rbumZEaG z<5yE_Q>#BxUDHun_aT=!PEQq@skao!<+F_8qe#^xIE;qjw3GKCZ`4+E%DRL4o<9Cwl>pl zDlPH%8J>g0#AWX%2kE=x2=y*CS@dh1+h$HT-@84IQ2va@xk{YdW`4o&Jf#^w({LZt zjGtv%J-4@+WoG`7xTK4>=_$y3D}1?`$9#x$+sq2H@98+=;%$x7p9S6`iJoYFjNRJ; zuIDT#NIQRWv%}VbrN=;u>;E>cf%`H&S5o{9;M@=VGH}j&o)3LU@I~?#?s?dMqNFuw zJ}u`G_=(7(#(Y%hBB|HRGY;VT)(w0vfe#3-<@^!Kxx!^LBak0^)&bPJ9r7{377D0{@~=wSOb@(*ECt{3DRR9P+mTe+xLa?Pj0g zTF&lgoFL2jL&)#g>TnL|L~9l>~~NS)orzwzXNu%eI5pWbproe z!L=NoZ+}J78lI4Uit}9Dej6p2nyvV~+7S{ibj18nsN#o!e**Zw3SA_pf}BU}m;ZqL z>Z_b!8uCZ2{0dV^w9ng+-vfF3{gYrPi{I4xW)t;VEE7ZVeJE!+%5N83?R;?50rvYR ziJk@d8xndil>-U<8|aQpp}@HPTZUF`(<9J>wp9l&oyIXi%V@KX-3-z!P90{o^= zJA9ubW>#>mR|o9x06qtKp3`r{`nCr+-!ssj`)xVPP3L2-fH`$w6853|&P4m%g>wEe z?c`|xy}-k9hri;8`D@@j-xrT;!=sc}MHV z3;4IP4&c04B<-R7duHfx`#q3EmtZ{4W4v+voDF%tr??sAUjUrX&2``xQyz||0(=8- zotoSHNEdz6bbMF%a0!cLC>n zrInEXI&hvt+y(qT;5`4i0r)or*L8~LL2QQyfpb49NgEzRIfDh4w%_ka^am{GQHSr4 ze${Xo^4p6p{acRM{hapi^T1hOJ;+jgzT^b$A&o@afxip<<0xl^;EQDcb1@boObgQi zdA{GW-`Yr?i-DI=QTttu;6H+$8)~j#`^}6*FNZw${auc2dV%wKg3kwAfgg#SU**l%AXIt`rf`_@7JcYyPK;CaCJ0Oxy0U8gmC6*%8ZVw#yh6I}h$ z{L@bEWJk;ckmq|%`^}2*=7IBk)P8>=_>;CAS-;@VJJ9c)kmvK%r6~X7!1HbMWn`{_#eDa)Yn}f}1zBIN6I+^ zGI7#=QfvHN55Cre_j&LuJ@|GHp0RklxgQ%1bg!v-hov3Pka2Q99K%JZ^sOHG zKlb3?^5EaMc)MBF>k5XOHviy}f5U^fFK*rbD?Io`f_KC_5b?`B@>@Lk4i8@S;6=6n zgyYW*zF_6s%~Mx8L%6TI)l<$r9{hj@f82u~@!)TI@RMXgZ#Dk)H?Xbnb3M5JE~1ru zzXu=n;QAX|9iQiQyLS5;`tfrf`7e9$uL$0Oym9hP!B3B!=UDe50*`yjdBKDKn+Jc> zgP&^WUEC5EU*W;e_uy*N2~Gbs4d7XIxMo^p12@Xvejn?3lQ7H>BLea@&(*!DHx z=kz#$>-z(qa`ZRPzl6MT@~TJvZ4Z9xDXquh*&h4?i?^HKgPmM9QowJ8ACncuhL3s5 z>Gj~-Jb2cF*F5;O9{gs(Pd{O~xdZzgw%zSkzTKSA?-2XDM~Uih##_zP2R!)WD4*XK zu>9vy{ygUCC&Bn+>Q4CQ-@oyc^P~rV&V#?`!H;j|YFi zgMY_^AM)U@c<>ixVbXq|dv0NjYwTT*{3)lk?w4~t_=i3C6&`%ZgJ12zud#T$xhdg4 z=YT(qejh{izAX6ZQr~@v=eT=3Rc2Osv} zpYh<=3a;yZ(m!19k-x=*-|fNgwRpRE_e$4Mcx*7=_Q*fs!JkJt-8Z;$-axX z2Y=0jzk~AmUeEqkLv$>9U+ex_;lVHT;Cho$Dr2%?BzH@J$W=<2ou(AdM3KEC>6&^z zGQ6Rw8fK!XTr8JNEi5RJe>GFDWaS2{@pQFPu9@*kBR4%ow3pUqGre3YdyNR8k=1XR0zEEI~SJKlmB=mZzOi}Lc(uh_`8)m#N!?ILkF-V$v$(1Iy zXop%`WIWYeY&CjITS`!N%lLkTxRX@;;G&7!TH#6&1fcw z(xJHW%w4EuD=oE>d0ed*LOWzQ!lu(&&e}CPxV81HtVZ1Ia;51-c``5by1JT-Rk?RA zvr~qU5#x%DwpSsQ38VvNFKNWq+E`{bEwd2Jb&c2>on7K_W;Ao)W+@Um8G@!B<%*(5 zNqR;|z97OuFtFvSpl@T)zfJBq3pVy{Gr_>-t=(OlgRTAj!*W5|NLTmfzCZ-?rF;~q zAD9iKFPZ^q5b--f?{CUYX`6aXf2K$7$r}!%u54Cg0t~r}{(4=Pn6Z2*tfq_U->8Sx z*M$S5O`rH5`2I;CBMTBgW04T4-nZUc;RL1uF2 zLe{mZb!Kc^C~aMvyfT~}FQ=>7LFZ4**nmu=;jlU-vwCbGjJ6MMDOZc>!ba=Lfh+A#E*oTsmemZT8(ffA2lOm(!4!td~bQWG$?oYiSl&5#&%Mhbs$Ka1TsaZ^Vw+9 zj9pdI89h`MwY0=G>kuZRYhEc$Z&efnE7Hxjjh$^pxjQalMK0 zXmARpIgGP6U8`xGrPyLv%v5GuG@%;=X!^!Ta;ONHW-FQ-A8AsZu z7)QhTVx_?L7~3kB3HIVH!C=$KV2}-~;e_N2t0RNbkfm_MUg#KX+A2Mf&6fh1`&lvD z-Aq{9Y%eO*@uVZVZ$@&8E3MR{OmmCqTx&)oi?&f?==YQ>vt44T8S4!TVHC15#+udI zs6ciBX*WV_OSpV*r zWX(;~P{v|^SuC%X>*5;5`ekL=Cfga=GKj;MQ78Ini;VuB0*8UML8rJzboz=rEJ_ZY z_5(c}ubepQ2DaIa3JcSAjVan9gP~8?JWl(;bR?UvAdnso`nL4SMNc)Z-7z zwgZ-mk6?AIXK+42c5Kqp2?a9tblp%rnJsdIs@$ZRk1EHxJU3Ug{f1?LWui?b8K!pF z*jT^a1!zOa?kv#pD%OtIY8YM(Cn?UmyId|v#@SLvobZCl!?FN4>jTY{*{Rbw(2GA8 z3>Ig&U3RSvPvHEp&O&Rsw0)+SaB_Auz-L*rLU$pgZ9KcGi6@i3t1T=roK#v|Wp+Wk zb^YRY^m5aYvP5dLMK`R5t*f#wgNx9nT305@PszCJ4P}6bSYDj+M47orXIkG(B%`bb zhZjcln9`TJe>7v8>}I1&cYI=6>3G}h!q=j4uuhsWXS20kE8+ZVx7~}mCB!=J*hs|` zg44HcmMK)}6UC*;(?WA)#JSp)Zn!>Plf9XYcO9L&&u_RSyKvEc_f@Oq>PB|~tZU4n z{EWI183iTZl9(%3V~eEi7a8Uw@;Fh`hZu1ic0uURNZY6Dg(z-}oeyG*Jn@tZ@@ycx zW$T5Tt0CJ+v8x#iLUov231FrS;fh@&#YMS=3GK!tG2LgMST z54uU(Z)f3eR<84X=!mEabv&mDZ9Z+Rm-+nQ{kle4RJuhWL64c%4KzXL}PO>uDMi~6kzR2 z7xNjhr5vdmLA0+@;(|;nQ!dKG2VVl>ng9Pn&e3Oi`6r)|*ud|bNqK$G|?c zUd=S}^E+tL4&lXv9KSUMeSddUe#=Y!FC#*_3ewCcuP2(qMgV^@r2PG~h}fWQ6%TrRBflAH*w62@Nq-7q+D|>CdQPXmeP){9 zbCY%=f6{)yWM$)6a+E`T4y$X{QdZSXhcU>2FIqo}b^PlhR%m!8GYjiTph0BJJA7oQ_g2 z(cOvs{LYf#_vfgf3B&8@#0boX_oUHVJwk-^I|yEzW77c8!yzZ01MODk?x zInwyc{G=}>@|$^x-tXxBGz>8Fk^ZOPP5K{og7e>SRPU{ehmLqc;;+j;EsJXSp5Ts$ zoZ#XAq5a+zG1b4?i8uZ-e@6px5tY>trwJ97|4rzxe848{Jy>6tDCPLn3MZ8_pxk`Tzg` literal 0 HcmV?d00001 diff --git a/dwm-pertag-6.2.diff b/dwm-pertag-6.2.diff new file mode 100644 index 0000000..d753727 --- /dev/null +++ b/dwm-pertag-6.2.diff @@ -0,0 +1,177 @@ +diff --git a/dwm.c b/dwm.c +index 4465af1..6474055 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -111,6 +111,7 @@ typedef struct { + void (*arrange)(Monitor *); + } Layout; + ++typedef struct Pertag Pertag; + struct Monitor { + char ltsymbol[16]; + float mfact; +@@ -130,6 +131,7 @@ struct Monitor { + Monitor *next; + Window barwin; + const Layout *lt[2]; ++ Pertag *pertag; + }; + + typedef struct { +@@ -271,6 +273,15 @@ static Window root, wmcheckwin; + /* configuration, allows nested code to access above variables */ + #include "config.h" + ++struct Pertag { ++ unsigned int curtag, prevtag; /* current and previous tag */ ++ int nmasters[LENGTH(tags) + 1]; /* number of windows in master area */ ++ float mfacts[LENGTH(tags) + 1]; /* mfacts per tag */ ++ unsigned int sellts[LENGTH(tags) + 1]; /* selected layouts */ ++ const Layout *ltidxs[LENGTH(tags) + 1][2]; /* matrix of tags and layouts indexes */ ++ int showbars[LENGTH(tags) + 1]; /* display bar for the current tag */ ++}; ++ + /* compile-time check if all tags fit into an unsigned int bit array. */ + struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; }; + +@@ -631,6 +642,7 @@ Monitor * + createmon(void) + { + Monitor *m; ++ unsigned int i; + + m = ecalloc(1, sizeof(Monitor)); + m->tagset[0] = m->tagset[1] = 1; +@@ -641,6 +653,20 @@ createmon(void) + m->lt[0] = &layouts[0]; + m->lt[1] = &layouts[1 % LENGTH(layouts)]; + strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol); ++ m->pertag = ecalloc(1, sizeof(Pertag)); ++ m->pertag->curtag = m->pertag->prevtag = 1; ++ ++ for (i = 0; i <= LENGTH(tags); i++) { ++ m->pertag->nmasters[i] = m->nmaster; ++ m->pertag->mfacts[i] = m->mfact; ++ ++ m->pertag->ltidxs[i][0] = m->lt[0]; ++ m->pertag->ltidxs[i][1] = m->lt[1]; ++ m->pertag->sellts[i] = m->sellt; ++ ++ m->pertag->showbars[i] = m->showbar; ++ } ++ + return m; + } + +@@ -966,7 +992,7 @@ grabkeys(void) + void + incnmaster(const Arg *arg) + { +- selmon->nmaster = MAX(selmon->nmaster + arg->i, 0); ++ selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag] = MAX(selmon->nmaster + arg->i, 0); + arrange(selmon); + } + +@@ -1501,9 +1527,9 @@ void + setlayout(const Arg *arg) + { + if (!arg || !arg->v || arg->v != selmon->lt[selmon->sellt]) +- selmon->sellt ^= 1; ++ selmon->sellt = selmon->pertag->sellts[selmon->pertag->curtag] ^= 1; + if (arg && arg->v) +- selmon->lt[selmon->sellt] = (Layout *)arg->v; ++ selmon->lt[selmon->sellt] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt] = (Layout *)arg->v; + strncpy(selmon->ltsymbol, selmon->lt[selmon->sellt]->symbol, sizeof selmon->ltsymbol); + if (selmon->sel) + arrange(selmon); +@@ -1522,7 +1548,7 @@ setmfact(const Arg *arg) + f = arg->f < 1.0 ? arg->f + selmon->mfact : arg->f - 1.0; + if (f < 0.1 || f > 0.9) + return; +- selmon->mfact = f; ++ selmon->mfact = selmon->pertag->mfacts[selmon->pertag->curtag] = f; + arrange(selmon); + } + +@@ -1699,7 +1725,7 @@ tile(Monitor *m) + void + togglebar(const Arg *arg) + { +- selmon->showbar = !selmon->showbar; ++ selmon->showbar = selmon->pertag->showbars[selmon->pertag->curtag] = !selmon->showbar; + updatebarpos(selmon); + XMoveResizeWindow(dpy, selmon->barwin, selmon->wx, selmon->by, selmon->ww, bh); + arrange(selmon); +@@ -1738,9 +1764,33 @@ void + toggleview(const Arg *arg) + { + unsigned int newtagset = selmon->tagset[selmon->seltags] ^ (arg->ui & TAGMASK); ++ int i; + + if (newtagset) { + selmon->tagset[selmon->seltags] = newtagset; ++ ++ if (newtagset == ~0) { ++ selmon->pertag->prevtag = selmon->pertag->curtag; ++ selmon->pertag->curtag = 0; ++ } ++ ++ /* test if the user did not select the same tag */ ++ if (!(newtagset & 1 << (selmon->pertag->curtag - 1))) { ++ selmon->pertag->prevtag = selmon->pertag->curtag; ++ for (i = 0; !(newtagset & 1 << i); i++) ; ++ selmon->pertag->curtag = i + 1; ++ } ++ ++ /* apply settings for this view */ ++ selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag]; ++ selmon->mfact = selmon->pertag->mfacts[selmon->pertag->curtag]; ++ selmon->sellt = selmon->pertag->sellts[selmon->pertag->curtag]; ++ selmon->lt[selmon->sellt] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt]; ++ selmon->lt[selmon->sellt^1] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt^1]; ++ ++ if (selmon->showbar != selmon->pertag->showbars[selmon->pertag->curtag]) ++ togglebar(NULL); ++ + focus(NULL); + arrange(selmon); + } +@@ -2035,11 +2085,37 @@ updatewmhints(Client *c) + void + view(const Arg *arg) + { ++ int i; ++ unsigned int tmptag; ++ + if ((arg->ui & TAGMASK) == selmon->tagset[selmon->seltags]) + return; + selmon->seltags ^= 1; /* toggle sel tagset */ +- if (arg->ui & TAGMASK) ++ if (arg->ui & TAGMASK) { + selmon->tagset[selmon->seltags] = arg->ui & TAGMASK; ++ selmon->pertag->prevtag = selmon->pertag->curtag; ++ ++ if (arg->ui == ~0) ++ selmon->pertag->curtag = 0; ++ else { ++ for (i = 0; !(arg->ui & 1 << i); i++) ; ++ selmon->pertag->curtag = i + 1; ++ } ++ } else { ++ tmptag = selmon->pertag->prevtag; ++ selmon->pertag->prevtag = selmon->pertag->curtag; ++ selmon->pertag->curtag = tmptag; ++ } ++ ++ selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag]; ++ selmon->mfact = selmon->pertag->mfacts[selmon->pertag->curtag]; ++ selmon->sellt = selmon->pertag->sellts[selmon->pertag->curtag]; ++ selmon->lt[selmon->sellt] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt]; ++ selmon->lt[selmon->sellt^1] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt^1]; ++ ++ if (selmon->showbar != selmon->pertag->showbars[selmon->pertag->curtag]) ++ togglebar(NULL); ++ + focus(NULL); + arrange(selmon); + } diff --git a/dwm.o b/dwm.o new file mode 100644 index 0000000000000000000000000000000000000000..17c2ec96e171498cd69cef69cf0e9c32a0ba6665 GIT binary patch literal 57584 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

@44;0V%?v22$2_rm>Z|DZz+ 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 literal 0 HcmV?d00001 diff --git a/util.o b/util.o new file mode 100644 index 0000000000000000000000000000000000000000..34f1cffcf4c98536a5f2208ca3e6cd48c3d257cc GIT binary patch literal 2224 zcmbW1&1(}u6u@7aYGZAaT0K`+N@=1tELt`7}Io1LO&8VTaBVv zu?nFS`UiOM;K754phvL*57nE32f<4{Sya#p(u*43+su$*-CX*@!wwGtUnp+pK zrW^k6xk75y*voSB(cQlMy&AWUR*$eRTvAD@w;4+M+8ymWNA+Ye?}0+9{;|At#~im zBL1VqeG>mHaXEfN;Q|bPY9K=D~{)HH_txK^ac6`aV15d-$h6E#;DF&;JKOo(8Z0 literal 0 HcmV?d00001