From 7877cb173f6b3045e667d81e6d7bad157d151834 Mon Sep 17 00:00:00 2001 From: riyadhafraa <49757212-riyadhafraa@users.noreply.replit.com> Date: Wed, 29 Apr 2026 19:04:00 +0000 Subject: [PATCH] Schedule attendees: force number+name onto the same visual line MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task #175. Follow-up to #173. The first fix added `whitespace-nowrap` on each attendee `
محمد
`. Inside the inline-block EditableCell shell (and even inside the plain view-mode ``), the default block-level `` with its 1em top/bottom margins forced the name onto its own visual row beneath the index span. `whitespace-nowrap` cannot pull a block child back onto the parent line. Fix (artifacts/tx-os/src/pages/executive-meetings.tsx): - Each attendee `
` renders as inline with no margins. - The editable EditableCell wrapper gets the more-scoped `[&>span_p]:inline [&>span_p]:m-0`, which matches only the view-mode shell `
` and deliberately does NOT match the editing shell `
nk9S~7`Y5r|!X1MZGcjH}MWuh*LNH49;HSY5`8kU0R0vB;`!t31t&VCJ z?1XMjsX$U1;Gx*;$ZUc^*cHBee0Dbtl~Wt^4d9U$yk;3Mu;lQt%kUo9i*$YSx8(X; zxn%I&aRy9C~T;l&Y_b{Aj%k1cqgE6WcEw;xyMEf zG$OY7{I7dOY-^aV!n;7qV6vIu-Yv#?5l#TYV!@mA65%OCFyyl!qH02qn^n`IRk5)f z20n)n4ecSGjWE4wNsqd)a6nP 5bP-irf3}A6q$ik3jLHvZWYE9-jqt2ot+D+bFoa}&(upv4A@h{7S7KpK2p7r zCws0oU6+iEp8bPCv;sVb?)0`NX`oM2s&d*aq9tE>Qm}m30)teItY8Yq*eM~E(|FlG z0XX`J{S)@Fz6Q@H9!})#6s2xsjWc4xh%_ vG E`M-*C&YB!H^Doha&3Zt(L$I|;=HrMt2 zENjElV@yUu3lD>`OG#2L|9yXo8H}AUGb$CuS;`#VH0ctGEpK%cWz1uG$%IrgV)`B4 zEou>I02wIJ>RjT!m|>U7OD_x_-cYh9zn8}_4sZuR+8>Y3>(C2`LnK+k5M5iPAunBa zqgAO9hS+Z10!t*00k3E_Q9upTM0t8@pW78h>jJ)FQp#gY?XlG6hRC5GlRH6Z5(Nl? z{du)(RH8tlChP7%(viTRRO^gZSNlO>mO!P}Lx1l<9KT!m;C>GUPcU~d_YI%Fh!1zB z%LWXjP0LRDl>04-Mc8F}N+N%$^1%#Kl~cLX;h*xZh%(aiC`T&4;^6^!#;1FZ&z8Nx z;Kq&I F;3qksf+p$Cg9^OykGFmfTt1;Kb0W5^0QVLb#L@>_o4KGKZHE zDW+^kWIUbdb6D+2Sm@cz7G(i^ zQv^H7Ufv8hjNznccp|Ypv=LY|`GQfRn3{{dL<7eTTq+yc#t``lm^nbD@rq{Z<{H{W z(=pm|pAZW?@QHn+2y7ZaHZt>jpXPA57$0@#rfH{KSiQ-V&vkK)<{npd3FivS9T|+2 z9REeD04FZ5*-2b`^fxYf8%ysM295A9<9mXeV+#-8Jl=3I^E`@;6r7WmZpRm7<)FW5 z#UuBRVxRSHy%{m*3PQ_{>2GPxvEFG;^fWV9t@ict{MI*X!6V5;M-I{6ZG(LN>L5uW zW$OWYwktR#I3<*an-ZoFdcwt69T*(Tp%V>HhX?nlVk0dgEqHSI6b&!X7+CO~>L8I& zKA7SoYTcC3NW}mp?oj9g-A~%E7g*T8Y;^FXfqu$sR-$YwtT0FMYmMbSR%HM>(p+LD zfk|s8Yz%}W^V-mCqU~$AQK|@%Pc=96>5FJOlGpjdI_Xv=1mb(i6D0~TkX$=qcz!RD zM>kKTn)n`0(2%aOar2ac69`WdXD!O$7=v*0`=XVN79}k_!a&vJ0Y(nb& T99&NWs}##i*NnB(Jfb1fpW|E=sdaEo)lE|u{0?Ovo6j2b<}9+ z$@`(rUa^bz-jp{EFOc*r!C;Eo 80EVELDRC5JMx~+H%b3G~JSGe~3Wfnmbrih@6o6>?LSwUY6^>w%+7$2J zvcwJxyMnQIXtbr% *7{oevbVqRjO)st#oD&Rz^vt#&-LYt z0oP_?w<=|PP^}a7Yzty*9ZT2ame4xQv02iEsXlM=@2WXsUNI|2Mr%;A1E&FXM}xlS zWf+-KSLlrtp-S4T%CE_^JI=mVfOHhd{|pU&*A-0p^l1t=mKLdmRMO?6BS|-eg`LBK zSK2_&N6#J!d%+EaKDEJsTtPoM=Fh9W+!s`RJ0My(5^Cuo4-E|lFZRcAW}{d98d3#d zuqlU2n>cfLnd}{$#Hif!v^z~{G}*%{sy%Me6$S}iEv<%;8R0EehQ^_7jj%yIheh4D zcDM8~pD}|iO~8D7VpYnBG0fuwD%vm)DEfO%8iqjnPhKRz;?Q1z3OWe{ n<*t`cZS>WZ=tyX)T`Ek~D(8O2q1u~g z>I|=NY_et`Icz?4*<9|LqotOxxoirBGC`(Lf+=?}C24934>u1;_yBtq m$YqB2JJ z=p2)2I|JouBS2W&ShWX^ex|wN#SV*u$R}cL-8Q23(i$llIroi9qyNA}-?1u*!5V@U zjfJ7zU?ZkC)wq$U@d1z8(}6`RuK`d^x2*E5um-$z0BTAZb534`rA{bV(Pk6i(J{Fk zs>mBy8YLSTy#l!bj8>nvE4Y$`oP=EavCUZng~ztUypob~dT9kNr+UScpGx;huS>Id zvxgkYc=)TZiJN(V>-(V@8Fukl&dl-|Pss#BTU1AbE!}J7;KzFRIHNRd&bsHNDLkDe z6UiW pVVa8;6fOjgg;DxR_|85Ym!+PH9JvP42D`xFJxE+K*vjhlTSR? zPxI6iVW4+IH>+Hq6URUMi8x1lE`3?^lacNBmN9Fm_GFTH^6v$l5f5*9fN^737r|JT zAywqA17%KNyhmU*6WegVcPyS&|JHy6Z~JczuoSl+I3`mw6xEM}JZoHhxAUvylIPe- z&ccjEel3=HN88e9V=~rDKr6T1_}MRiuTUsv{2d=i8b@!^Ojou5RLwCC?^835ZWHCz ziB&U>a4qFk?^820yk!_!0aBv}IyD9T1EtE_Pm&UK@-w?_-`P71CTe8HRasjNl!_Ym z-g#&=bVunvVEcqFV?rL_?su53-X|6%(P73!@Zbfo0(jaEh(b2tbFd J{_OBdn7mRza z?K!Rt|2loEtabRK7TROy&QxWuRMaw}%R+oC?x4A_rftY>_8vltNm)rbl4g$yd4_M+ zlu0Mjos<%ME&%j?tNToJSxTLg<(igRnOSnp4E5@}1Ht;wwHhuqIt~4#kgcLf3S_H5 z0@2Z40)YVjU`T;zjg!C>PaKY&X{{t_zXYG4#+g_h`S}XpwGAw9md-()z<6C+_}NMI z#^98bYLLiFBXruChW$Ffiu3ALwDdR%n_3!~5Mkv`QwEXv(aZo=CR#B4vsD%b(H_jN zhnP)EvwI0e4xRal*0#mU?*Xwp4SSzxWOnP9-Vq~U=06z|0C?kJm_g&{gr0jRG{+Lj z3~+@==5(M9iObZ_IYz)D)=B7M5C8lk+Kxk&8-VoLKW%9g4D@w1MwAO#&42kMB;eU@ zAW}}6?9nJ (^lu`m}iSz819@Y;P@Z4Q6HRwa9-n?hb%?_%L_&HntWTkrR@ zNc_s%HGqKnY9(?=iTw7YHlZznhOwg~PKf&%`>Z-6Eg(KW@@G8fYaMcuXl+I&1(-Ht zjxnag;ycCX`21?wzKnlEgye17hy99e=%NJlN`Zn&xii5^nH)ItP8LDr aLK2zOC15zkkUj@C%&Sgm?kvZwiJ)^$Pp?yEKTZ`02iZa+8LU2j345*eK`o2u@Y zRI=j7aj_+Pqp@idEyFJD+0!@_^WzGmJH?-obzKkVDPn}{n?uCuS*ndD(X6hP5%7`L zj7_5emv v?5TPMp XoH9Zti)f|y;L*L4B8Nr6wOX+^@^C ziOGz_5<)0M+tebAtZ}HD%kv`yOIfLnC6)IikZ*F|(r9AQz8~Ejy*^cTXCMb7kQNvq`wlvT{?13gd(F$oP9KPGItLE}&)z>cO3KplfkaQCr_A6S zQ*@hQhMnO< >fxO8m5U!-7CWKv{WLOJe&HS*dhGHn)>W>kc&giVzx+! zA!&^S#6!SMws~PCgHOZ~^6bSja!NkmvFf&I%P}e`O*G1 Q@WZ*Ee; ze9lHH!HC8YUWbQU^s=@->}(|cb5RoaO0q7zbwPF)W(q%-H(_3NAe_+^HddzuSj6ub zf&(pHGq?3<6m7^Edru&6FZ~!gKUSv( 56;T)9sbts23&JD KK)9Qy{GV_ zw50ER)eYZ~k^fM?ieu25#lB;C0#%Zkl0u}xm5OwLqiCVaB)^^*RP;0_d`7Vwa!}SB z>)?s9-WBiK7Ps5(6O#y9msL^g+ _pN%E%CiQD!99lGTpLx-qGE}k^r-j)x3d(rgE-XmWYdtzX)nw4AA4`v zIoUBRE+aS9HdA9Cur##LTcc&yn<@X7(2^GS-ccBEO_%IZ?^35MMG)rd5N)0+_XX$n zBK#eq5;iRT;>WGz!ZWM4o7NWOr}+7COA+{W(B r&^t9T;G}}^`E9SxZme)Ew&Ht%Z($aaRCQD zkK4Qi`#cd`=sTvqZ}#d0{4rB=RbEuF&GOt5yA}K_BZ>G}YxQdW ~o176o|sRnR4_)dBH+9yLkh51+d+T8pQ;?6}7J ztmNYM(2=GL2Hif0>2`6Q?hO~`t?OP|XlhPx6PM{G_iFeMvNoQtn6MCi7-x)_Nv^`1 z^H-V2hP?NaPg|-RD4MR%UK|Z8mO9_u?Y26JxAOL28THS6aM3Bj&XFMhZoY2HiASoy ztiV&?&wv^f8<&>Ltnfmm7IlF7NLhmStMSHy drAN1%hTfd2!`mT7#wmgNH|3Lu1 zIE#<)E0eP5S|9nm;h6TjY?CAC&%0{VT(6HbJhN=KY}SI2>-R4; z4S$vH6_1$_tT30G0mObpR;EuvA(yrrXkH(ra?x}THN6{j>5%1yIPhnr0NrwWP`BCi zVD9x4y3CyFh !zqDHa3RHwaIOa=xBcNb6$N@=3JFiU&U=$E?rmNBUi zL5EVPi@k>l0>Lz6MaAp{y?Z>jGYmBNLiwRegAXE=diS#P((c{pMRF6p{67O}yGWF_ zv+fBtUB9*=MQlF2298!vc3Y8-XJ Vt;~-y2`BQAJ?B)M%_CjC34bJ#0GRKIZ1#| z_93Q+Wnp-=eb4zoaBgAP82|)o700HN-A^TYl`m7+!>E3z7|%Oj`SR^CWVz|(a#ZV9 z)x5R3 _0Dsw`HPP=)MBMsLTbQ8DsXY%&_{{(A$& z(O6+fRUp@49kIc~OV^H}vW4;Gv6sh?6LD<%dS&^gy?(#4iJ+maci^_~I#K(9?^&0= zp|=kmz^xoaz!3STLp=O@h)1VG^qvmkg(voH7!x?T{+;nObJf3&*u$74Y5im<@sn1K zDgR-0&5!0Qt|#54hrbV(ymNA&tN*ou5&Gt4t1H?oUcu>NrkmR_^sW2({+qagV<>ug z>?r9kh~)=Qa@74$JZFh+Hu4|LNwSM$0!%2Iy)ksUqU1== m!!~Kj8N&E?&AZ4<@pLSNH(q1{7kr*NQ8KIoenf@V(GqKC&LlTFt1}BG kEW?hxPC)m0>71yt>17shK2-s(o!x4|De?W=#1k^V{1e$u-?T@ zZ6f5iaa%qRL=~X2eo*)PD1v4z`^Y?Yb*%H_8JFxYfzpWU?ifMjw~4p$Z-#{A|$v|sHR zH!(Q}k{2yNX-5Hsuvcx7zq^@We>Vls-Ek3U?BAj^Y-u%^3_65F(-a6+Wk%VO{o8NY zK1?16Z~C_U$RQG%{(AJb{j2qp-3s5M&{;@uJiw#~x2IQ+ADlVj`tY*@;xzZy>iTxY zG4yive^T ?Lybp|FZ|3~aM3fM2ltSWW*mKFb?a*Uy+L64&W@PU*d?_us$nJN>COHbvy;8e ?kNYpIM^Xo6x962O^(m-NBXuT^?*kw<}*Lg2`0;rwl`P+Zq9PmQCAk z<=@>pvox4~2C3$}Erl#+63|0!oPW9ka&rFe)@9q(&_(6RnZ$qF#gYYc|GG%bjp_7muq`JJ)lt%Itn#|W zMjNc~E+%^dWzN)@0^CpzK#Wsn5dEt`XHcu{oeK;7&ZoKL`^@Bzw6$s6zY~ss? z=HPDZk!JWp))URbVjn+>VsFWBm9>MjmHb&Od#x32P2(uhmcV1^4!#{@8TFuj zHfk@qeccU@=BY+4t_;3gG&5_RoOhe|4QyWuuZ%c`^crLQW2p!IYO5`qCL@Ys2{rJ~ zlP?Q5S9oPozAhGMaR&XGBrncj=b6QzlI-Jjd)yk=jP|?0w{bM}d4urqtNoGm(r8wT z7W=;Nd#M8n@4bkui$(3Mj8<2Tre%iS?{Re S}Ou!SKyc!4$J%*INyop -W*FJ=_RGv+u}Z>#L0 zf8G6QT7@gd6gecPqs946z{+L1(KiDBW>o&cACu*pa+=#&t`CL!(Cy*9=()uX61w&u zidlM#4ZnWGyeFXmV(7>dKhOyavnA>n!M99B!>(GSX~RrmgDov300kRq^20+#FpGnk zBErRwkj&P<0 D>}CQ`MSKHb0yRKOyYA|HbkWBAx!!`8hV#3DXb0;4Ap z2stsGB?6>c`UfOul5|cA5hppLC}eL%BxtZp+VT;xaoWPRPrbj5BRYK8b75q#Rqslj zB6-I;qXy?|vd#<=5nBZfCT$Sw0ixZsAabox{@FK{pyz=o(&{7XFD?Ko0YLsLlp>t$ z+tcL4JAXEWf4WXurf{=TMsjmzW$cAigc-}8+s;bE>P$DfF7U>@q_^8#`&ix8dbDQX z;kRem)8p+~@_`3hQ~{FvI}=oSS!|~{Z?^?&&|f-&m1S=L)SO<2QcZ@0$h`+WlTVBP zpT4HP;eGVa8@`bFZSvd6R9=p^=M$e`odR{5<2s$lvrnw@|2C!nogt!Fu)7u0^7&)) z)He_)x$UodMq26)5XpbQfmiZ)SrfB6UgfD46$}`_3=Lpc3`}8SPv`mj9CCmrz5u>w zgV}9TL1LGCw&U_3dqD$WIz?KVbXtR(`Z@}5>@VEiVB67odc{=Y9#1}-lMQ~^=|CNe zawviwN#g%v!W{Ni -!w8d|{ytVI1kdH#%Ec6p4 adncR5YET;2A{58=mL%kaBM<)T9;a$&H|TF3b5)$&Zpf^xvCtkn8=vlYa`j0_~C$xXvT*iTE84o zu#KZrb>1=R;Hl+|rZ-1|P{Mh!41~Hcf!=2h!)v(PNIYZo=6(OI`D)C9RK&A)z6ELN zHErsCMe93$qx9mpg{JxntL{|pqd$1|!MZjN3njdz%+Pu9Z5PX( |@%@@Gv|#MxMl#_N%vr&=^xgUV$h4 p{@<*w;x_G6~}gGg1D#9s^sf^rrmFU)jt%YkX_i{01inYtsC4 zaK(j>*W22w~ ?YsE zO>ZK;VGj|XV9>uDDd$#tf&}p2oMy*Kz}^s1;+CS*BhWsNXLAI0gNMJ@&_FqZk&emG z()4Mbv{-gWq8KG7;pxj_`_z}kHas^jl=Q#I4JILF4?TB|G?$d;MJ_2Ov`0hqt-FY7 z(G`(=0Kx!xdv7Aa)-rfHF-5{|I{u )!baSI#l^CpH{#woV&Jx%)Mqv~Lcu>b;<23hr`vLtN1qzFoVV?5zzVWp ztZ }1naWfHSVd9& M-(` zn@F{ pjh1~3Sekw4qsmi8eFT&S2t^N zb3ZtSa1*QRd;R_wI=wQ#N&Y;AR^AG#_m0Xz=Y9C1+7mJ0JcIK{7H8gRSdN>DF}&$$ z0oW;Y0?VOC|CN_(I2Y$(#s7-G_KVwcp+^mqPQ?6NO+Zs&$FDdKk-3p9XO@zrKF3M; z>U3=CwU|lV@*&PG@WpzyjNtCB({iH#mlpvSj$7G^Yq$4*lcnWRdw&@1Gw}#_z~_Gq z8D|;}RhQY*bMA3j`wwq`pvrnxfydwkp)s^C>W}dL6$Arq8Zx|p2_Yt|GIsX0H(zE{ zTO|qgVy*Ml{R@Yv#d8AN^6$8|<%^D?Ul}nYm8Mw5He77?F?6yPnCM@xJmoA}camu6 ztZO|>t)~zO1+<@pDG@1Df&YkK{=ayc`V9RWF+}?4i;EwhZ2#<;|Bo)W4zAY?ygAJA zlMc%ndmx0TTB^Uz4?ma_Dz0+aYBuYvHIZ~a)MK2)qXc+nPUq&$Vuq*ol#<~uE|ro) z#q!H#B~~O$AeyZ`M-Z;d_^)WKc!{;?mKip>_gYNr{#3-+G4&Z@+_*`qwm5Tk6~|wk zJ^ls9i*e$2V{|ObsjGZ=nAFX0`{mzmAY-Q4H!HDcrkNF+H!<;Lata^Dw=3Z4wf5d< zW^;FXQ>Fl&NR{>sl^8mNYYuN`woHs|m+5P#Uz_Iae}$hqouz2RwebxX9NU~o2VUVn zax3(N{uw=6nSU;qJJR4%E+tP hSN#Pe49%nBq#=8+&l{Q$RAyF`tIRI9x^P;(?Sh z$CZL}6Cd(ZkA6hlkjzF`6#dsbcUe`~4DjK-hL)(#*F)*;&*agKBXydhld8jxhSC+A zUaRFryKgG@i$WHGXK6A|Zho4>d$;BS)=wrY`eA*t+#9EFYJcpB%%M2lI-}j+4D4+M zVa(6$C(ATi32-#lJ)mB#Iff32dl@1<_hbU+cg&R9_OQ4EftRtJsBc32V=Abh>tJ>+ zmO*O;BL_z@jw_knALJ`g6y{RRhju#>Gg-VrZ_~RN12hlN;^*ZHlfu{W0vb+gBcgsn zl3>&KNKbiD0RwG$6`b%=g*i-|!JZLI)6~T0g-v8k`y(8_f}j^dRhKZao=bL7ysQm% zrkqg@hIO0=8{L2v6#YXqCm%%p$a2q;{wodvoeehqCm=(zT-NS-DN6-qsAqCn{ODM= zLBWYB;8x0`QZK^S47bnKCZh8Ew&v!1&AFvjvX?a5zP7VE@<-)W3sX^_@%KTXSz4wi z4sD~0&6TD5&`$IF_uq~$u}1MH=2X|x8+v82ahiDD-h7CRHFvA8)!Jl8Sa0=NYjgQ# z5-{pNHIAzqIfe?H;HJJ`3p0l2wkiX~bHoOc&D#$v4=Vi+xTw! U7)TL`t%NNr-(lUlzg@0Y7EV70< }}$|yHjImnKRP67_&FIw-&+nVp5__ru=^5k@0lb`^BkaNPgB@ zWXUlRjVj)o`>a_OyCb>B>wUm#X0{X5(6?+UShcxVirC{HUhvs7E33eFdxnTBHrI># z^6?uXnuSJ2a64IvW~iE#KW4tgx4)kD-sNINPVz+`L|m`>yk-d^nwHzOrsBWFveC^; z`7b|6u&)|>zf)BfB(+<+<1?+I=UwOZZeLH%s9tDeb9Y>5s&^gNE;H8GH=7uw(&Oyn zAtUL$#p3PiV!83I%~3Dw%fwvy&*O97RwpJt+Ozze@G79A#xXisMkZ)DNzV0~Ymhj~ zZtMEnK6ewZqRIj}O}T>U2>%g&Jr?h(c;J5VB_LvoHhlwxwdP6cduAkOtgIv@T&n$- zgC!E(eni3}4!?WOFEfKZz}hF Ad%yA`^4M AsTb$Su)Ni0GpS=V5qxRX^cH1ic`lCLI0@8E#^_XwjszWB#UJF5qq} z6V#ceU_< tcCP+?t%O zC)<#0{BD7K=+1SmC;QiDsNvi7JqPKF^6&kGH%x-APIEmvEFM57Onytk=?w+qeCm5; z-)+g?mZn}RXg%m-YYf!&WEe6f4)Jo>L$++u>y0d8Fu}L*b|m`#JTmNciI3vu1&j14>UuM&Fjca5`GUvQ+ZWwsadSb}1wWJc0QWPvR4BwP=3a zw?CP&bVSzs!-$O#jNhaAf82UK>Rs*NVmra*Kyxx@sSZ&+zQEe=i~c{8`2U3xVJ)*& zdc}K-RW%HzU0aO49`%F>uS5MBet)Y`@kLF4r{4>IreOZ{Ke797!6Nnx_!M;v$Z5%G zVWJQ%-5DJv5+yjm2TF(%sib28dnSVX1@_{?d8QXvM1SIN6|qAw|4B40n1G=$NvEqk zb< M8zq>AHG!Ch`D1MxXkv1_ZPnmSFnpi@J(`q=E7rS_2!$PST==u4#1udw+PbJ^$ zgfXTqE3nC>5V4Pv6e0&dUPx*5k(FPSsJnQ`DhhJz2SEOVhkuggc`8o`nwICQs1lYO zkd4NB?_sd y1J^x4G^{r1kZI3 Gk9>o84{)aWX#+pMa>2^=-7R z`v|pG%(e9`#x@y8&sNJi&G&1&&ei@E<1uB(@{xen?ab}KyjaoSrp!>u?$@?r&+m(w z#D-dqqNUUv`m#E$lj Yg8(FU3=L5l`e;p(RGV7D=EZ^4g7uTxd5gwNN@gzt1 zV~F0znlK3B3TxN%n|-7(E)~vhmO*~6v^2%%io5GlAMELUEo8579bd1)7B$U}7NV$^ zVsy *&+Be8SD*;r{0}1J>1S%c=+J5FlNl(&XcS0b zmuZyXWcnluB)Z(ee4?sYrWe24-Gs9@rK>SVl7S!34nMU$Sz^8=df3<-Z#rFjC52$p zkF2(s49gVE25cEuAW^CMT>$}`_7dkEL};t2AQINi^00|tq71NIdSgZCWSAR$>O4^$ zAzKadt$;?#VUElI{6 o*`& z{6RjjiE0Orp&g&Pqj aXMT~4t2)~%7nM1{Dou=gI_AxYq9@v!c9!_6y zLzf*?7ZNg-zm1I?%u?rjEBuQW!2cl3AD|ZxssxViF1DfgW;p##RT%tki_R21JQ6=b zcX(1i-hN>3DK1WbwP=MC?!l6zB`+^pkAC*bq$*x*cG(V5w_r|~oX)aEbWQ&LWmeuE z7vZ8=we7R7;;8`^%5z^w-){}<-W{yimXnR%xANY+M(~DDMhFpB44bPC7x43eY-`ue znO(nmuVjAP4LqV59{)V&ytBz>+v8uGttf;_$)To|3Ff6$Mun{q|w*U8%|DN zR0Q_emKL{HP#Yfu1p559P+RgNHSq^WK9KbCyMGYn%#hEmV`w@c>=;@GlQ !_pfqh^85^)+~BV)d06+8!PBM;z4H0&Z2AK>UT(9xFSmQ z&z(T?aM%a~d>Mn>c~F^ILG)Jpy)6K4>e=Pz<#QrS>C0~m#A&g>KS#mLh#gYze_22@ z!y3avnZ^-}Dt_0n6ew`^$GWu$*)Kh|@upH%{ UH(~1VC==!HfPU}i^X9v?V{)h0#%zqhLXOrjsa9|Io%bA z>zZiREN0y6RsZQhR@m;{j`isfF3T;MB442|xW?F(!;xzFsDP?%0o$VoQD62R`@IRu z_U-asMNfYnYw`6PZ>hD~6(6dz*hWwL$Wb)cj_fm(97DX#s{uj+t)^O!wSHgSdC)q> zx$m`T)_qXO_1E96sWb0>< JUzp-cg?zoKX=MC|HJfz&eX8mmL&)u+` z#gLEQetBP={vP}9SyOcXw85Y^K>dFR^8GdbFB9Zh>*6uQe(-jo!ipszwrB1B93IU^ zsa3aAvL~Wx-Xm)-BcZikyq=u=ZM|?><{1!!=7?CCjds?+j;{&R(@_Mj&%lvs{`pz` zf=9*H?r4_oQsMoq?#b>+iM3>iigWmf>-S$<)}G(^FI%KV6ue9**|Q-^_FRZN70RPg zqJy-9L&<2v$e+?=!=BRQT%})o3Y@&EJug}&nIi>}sxMTBp9@xy88J73pqF;ni7ogx z9V`P8VFg5$EYtSt8qUPUjtQu0pm)8&@=&m`+65ScL^J}8B;qE(YVnd9a6Jh+u^0nf z8b+!E{5rJ{fwC?r2KHbNF@pst1ynUyD1yadMQE#mM?A1Of#0{3_bOdv?R@K9IB@sY z&d)tC+0RUp&TTcrCNU)cW< zZh0MJG4Z_I1YTa9yij|cQ({t5>P=OgFLtXl5zqDr+MW6JyOKB!1XOJvL-@5o#yyD# zjtMKFT4r*;di&lXkLeP3XKIxTxiJxou_50qj7H2ONM1_<{nZ<0l47J~izaJe{ z;}Md4AGKoITqRy8HfpW*dGpYkA*{=7bz^PC^oZ}PUQq9~f=LvE!3P2X-&o(?*o?1# zJXOy!jlZ-fE~|O{?Vyb5*#I$?Zm;aAH}JrtYr9M6hqvprQXO}H`--B#EXhS>*5}6N z%pC-xBi3gceIAz+d wc@8S#L51pmOd z4hFMfO)IT3mkTSH+tcLdztBv0Zq&LL5kzqzkIU0+Y1Ax8x#j{V%2Af#!O*Vzo8csJ zc@>uhSKNiJ)o-tkI$byHeK)*Z$Nai;Fko{ 0yUZG~?WKYe5C>62Sbc0_g doOf94HaqZrQ|0vR7)l0?QcjbrGA>C6#b4t_ z4-?}Ms4U+6hqFD!-S4ZcOJ}St>l;JPnj9RwS9gy0vPRzyAK72l)moW-)qT6rMuxR@ zp=g1NlVzB3^H7Dg>cGf!-l)QIt6lx5sCw#O!J@xoe@i_hE=CLZ*2(`G`?KNUEgz=? zOFw<^KV9TB2J}2oI_xPo 9_A){$qI}|APh91RCEl1_3FJNe zMEsFzz+eFeJ0eWEI6}0W#ZX0!UKG>%FcO2vlqjie1(NOtOp`neFw{$d=zq`H5i>yk z=`AWN8^XX|wmIY8n|8`2#dM}%zgE|r262Pi+*^;93EQrZL|Jc3^2-^yY67B#!0mg< z1^kB+a1Pl=hr^d#1Scy-5O=a;s_nx}Oy&H`cB~WooKj`lDNrHp1iyg*HLzPXL|)DW zUA5u7g^)cXo9F*(rm@?nJbh| *We)R&QY1cZxOr3V_gd)VEGn?GfcO)Ry z&lgq $n?Q~T+{6BA!*097c<2%ayVc(3!RGyP@ZN1fFw8avM zu8KK^JP9kE8cZ~^QgvLClHTj%6TopQhvs*X3SXVCv`xbEImfB_#XmxM!6&~)ecs8k zahKfuHr?w%{H?(Qw~04ynTrP-lZVa8nI_&dPj+|OU0>O=sTA&AVlvG^eU+Af=L>wr zz77?BdZ}MpG-ZnB*5>kYJHi#?5$4-LlTJrszBj8P`%uk6)R^%FZ@>F#bCm^r893Ic zj5jQj2>G>k7PolI`3;k;ubaN+oi<(DIRhx8{(wk7@d7+LvBcZ=<#0RWF{EG5>)Kuy z-GbjA4Ok$^ig#_wV)6K1=g|b$jiB{f262rTmLyjHa?7z6qhy&{ho6&ey{dBNhr9Q$ zGu_&YJJQQt91W~1ttj`ED-1zp#&1}o#pPkik_flr9V;&xzat;MB0DdajWOYt>2;^r z99%3_aS8a7qBXaQ8A9{Gw`s!6E1v?RVe3Q|Yr>Ywrj&?h&VVm}Z1Zrrx4hNVk`JM4 zZJdC*IMp=WjCzU0?G#lEJdSDRl)!1-_Kk=N3n|{CDl4c@pWTS9=~d4Zzqq=*bF*dl zU76?d;X_#`w{-mZ*TuK_YV)oJJYXYu1~JHsFEXSq@w1vyF`^mRbQ-&MoR #*)WGdnz~N(>pVk z^cSn;xuoSY7e^E8fU|$ywK)dvwz2F2R$viVc_ZY9f_e*$y0&DsG(zYD(mK}f|AC8T zb&Roo?iJ{eDZ86@_yi@O9JOQO{pNan_v&cV@)mqrT0CM6;r1CX=^W?ex8W-`H kSAIazr#C5tn3ZbTuzcdvkV^w|M%6mm1 z&5baZ>{Z&CrtaI8hkZ9Q|9|yztx-)~+ge1>%Rv-NBm_{8u~q>iyAZ*EEnFe^NEE1q z1d@tLp%OS~AVJikl&A&rP(%UoML~0bgw%*Y2oH-jJ64Kb9tH{&H5|m4i%P-zIM$xI zW7}iLI6vzBaT#Nim9 ^OxI*(bM($ zgx~icGw7Iv z-&HLYq9g>KG!J2$xut=+kpi^>h`nIM-7sH96F^P}?D-h=2*mrDrXf8&iE2F!xMb8o zl!ln$EXpT9 H)gDDr2r3Jx{D1scOueL=Q5gQlv7_x|$V|Z%$gFnAS?1szy)5@C zb9zNpcwTQ9^Mb^lk81Lzd@r&zZHX)_Newf11FrXtNDFt}urF67*P;Tsw*4e6=`@lr z6`{_j**pb;Kz9Xy#1refLVhO}Z;{e?u#qp*8fXFpw)I^Kq?@a?ZrNe#J!saYnih}x z$V>HPY-i8%T @x#F>b73qKLT~0zIGm*LhmDmR zm8xsWtt43rvr92m7Go5W&vz-B`pb5mVr>nJH^@H>TK@B5e&z_;!< yz3m|87%Fw}s6h#nJ- z8bE#4vfr2Qj`$2_cXoEB?KiuAcbjSdPUHMTPUrve&A-1Fs-T~jmp=>)v39xG;G&(w z7lnXo6-gH-V-Q}kzT5i3%aBE-``PkC9?`QV@D^Gu!_Qdd# zR6n4m{MPlX v;9-&B}$WS z IJvSL75=;hWfkHHd0ot{UkB-|NF8DNJC}Km$7gRU?D5 zu&!P@o7WIncOVn>2M=R&w|NR=OY5aVgUc1l2#yTVJ3LIdWHz|v)xtgxU|bLY16xp5 zOLuqxR~P7x1}wgYy}(gyZ|(zH90caBL7^F0agH^c&-jD`B7+Ysn93+YXH^`u#Gx{O zf)2%W2h|#Ga_dqVS>mkgJfwsp62*xNT{qBFp{oB-6TsMjd=zWN6@MM*7L78ZKA}%? z=D6K|I|SbxZ95qToQ3s(*3qI+7rQ8|Fj_K?Y@fnxlms^Bb@HhuF7Ok8fcpIosFbIk z%WVXfLf~>VPC)1rBQHZr79fg`NVPhKKzi3xBMUQX )T zyp9W!Un6evQYB8sK|aL~6LBp- RPZ&fETQ@(K<1is25l>4Gb13c)eT*QG3iXj|NC%ZebaKN61*D`W)l@ z63Dx+{Yy2Z4EPjWJW9%UT^m;xV+FE=db~Qy-&jPgAyQ=w`%A}CSaknmJ)qgxkX+L# zHCp`1AZU9&*K!(oT%TWgnrqmgC$s-ILk(;`rzT|gO4{3j_U7n?WnLJ7@aJL|3OU`N zL^+g%xwXD@h>^n7Q4ygS1CHlPqk3oQczAt}bAkDQP=AVph;cozFlOlcW&v!Z{)k}D z3t|Ab&G{yN`~Y5EYG4!b2GHk?2QS8>K|F$Vzz8U!&V7I+5ITlrL75R?$JXRZ01{|{ z#x3iWjm)F|!xeklCZ^k~Wb44YtBH|?LNcht7KZn7NXO%PU8x7V2= sbmZsCAVUjIqAeby^W*yzl(Pch2$$Id7uyR&CqK zbynwf0L6*Fx)jU;K}rzN B_eER* 6rCM%J5bIFk{k8l 8GyiU0?@$t*|9Q=`OuCWLH>4t*Bp4jCM|_xE4-07A1tb zY|vHmj+%Gr(52j7oY#s_RyE^1Im+wHnhuakC9^ ^*!*Ge%zH;Fb$7$9ea_r-kpyYI4KM11IgLmb2=&r@?f|Nxu`Niw| zT!XVoS~ 6?hP#7sTPTA(&);9^oKPF;!mP>Z z&hc@M+#VhpT~Xe YH}d&y6*gmQcD@~AZ;sxVobyl{0zEb% za|;SXK%z5pgSHVbYcH-mmmxor)OfhM$2FL nk8pQrP5d$;MT;o vMY_xOL^z%u7SNk{qI$ai?*iGQOP9LL!ot&6b>izywv|G5e(wX~qLcxmIA zwoeLUqqkYEKjpF~4EHvF*u!eLO&^?JreMX7HQvxGSyk_XRAE&$^V^!vnY|&wPv1Q5 zeG{@j(Vo-k>)AKUVHTGBxu~jK1NG gadI z#d1==V^D%cB6sSqp_nX^Vv;t`A^}TpERdJ#A_C1eTB8ruq!d(LO|zv_iIK_mNj|u$ z=A>n{-$A5gY`AZ)yV)Xs$#c8r^D)H4vP1zr3u1f8%Wv4!2#J27$x}3dF_?Z7L zRlV!}*}J6u!e6FMzu39s^3% gCP8jaLS@2H0THDOKFAr=^2(&Z+ z&K}5 -5=jeB}gO-`N%@%iiW~zs;x?kz^EQoto+^{%^YnBv$P{NJ@Zbj1d zJ#$5R?U*F1Mn?rzMQ?%jD&L`(j}USjz3N=K^|;as6@x2VcEn`{Avd+&?qF4P<+{(q z0gK!UFNfUe=fhRG41RA#U36_yE+%0oeh}j6dhtL1=0DRrr!xes&^oew?jn%#M5^9p zLP?K(Ja|`@)HpFk;f_fZL|o6pkFqq9EZ{d-YB1OC6t(v)+*s^XDyKY>sGS1$c!HNd z)7=@7sKK>O |cLX8Xup&f`ilV3cCG(mWDVHZE3^0%O@> zB7OI2s;N>9w!UH5KX!dQsGu!VA8qtL#djF0jaW5`tBxCVXWhrOO2;$3qw{SPt<>+o y*K8Tsabxz{?Tc!TC3RJ)dXl5U=()#dfW!i;Lg~$#QMCmJ^y#KD)^f{#`Tk!#XDikK literal 25881 zcmeFZcU)7;7a)ES0Sk&KMT)=!MFb2Yy~EQ0O78>+JVAPs-pjM0gn&pBkYeZ%&=8O& z@{|$ ;!$~ySv}r@9zG}KYRIP?zuB_=gvL%)H!E3=sEZfow==iOBte| zfFKI+2OW%1^xV2}!$MnEOZk>M{71tl2pmVRL6EbHr@OAouUy6m6E2$XKkgv6-Ldkx zM?U|X1B|=gMIIf3I ^9u6kU0AL2&A21&ow)_Fhl3^du zd!C?=HW_x;*S!JYy8!01{ReFM57_FSJGp-Z=p*aw dujKa!*Whr)K#=4b1W`WwyUsEZg32C2(D}Z<>n^545ZyxvdQ1Gf?r)sjyW@W6 zaJZwOJYr)5LCZN1bP54M=UO4?gy~@$DE`gdxIhy-n3pT~vxS@>YlsWF1-U?05DY-q zp=*#ZB!18j-GHc%Qc+VKrKYB$rlFxecH+#56UUFAU^q=jdxn|e{CQ>uCMMPkmpED3 zc-WbkxCFU)crRb!zrw (Al; z92}ev$EOBu*XhYmrJw-lp`@fb>_I_)g!1gUUxamZ8JU!#k5XN~vq;VTioxvz$<) z;e$SimJ-Z|o{}C?fVNK^^@klv&xb;}_>LUoxGVdeO$mOpFZ4+0MJj&yQ7*0=EQKLA z1}(zG)u|sIUU(fxkKrcX7SK?((qYWSaW}vnL|7y88#06~Pr;w$7Ra5ti8^EOl!*(M z+layHTj-w1Tjf7${Omq W8ViouY*y`ppiP65JyE@9%1T_svZALx$qR>KaS*l=7mo+mT~40hvQSw- ztg_j%;J8U1!ak|VK!Cs5y0S?uw^=z6o6p^rgiAu{Fu-q;nGvE;`hi`DOz7aCqF|ud z=8kiaImZ8MtDl?%%~P4)-EaDSF|=+;1eViM!nG{&VJjiaTCQH^>Radfkgr>1B!u#ZXjRotv}$uEiu+S%_*3pr#bP|h zEt#mS_99+ G+Ac+@P<0(tydSjB+)t=^vt_;RxHf)!px}iXpCEmocc*+=SU@c&f)NCJH zsE@_o5m2qSkJZ0@6WjH?xE;EGB>a9Td8%Ac`VsOOI&q9Fz#(YwOeQ?? *1?z4x_aS3?w>&r3kT*x?%`*ff4 4FEzOHhpt@~U?cC^T|Z=cpgnq`|FK=?q9=E51%)ptd0 z%gnho%L#Y4G |`emAeD_sbC#`q}Q zFcE#EUKJaj$4F&N&zRe3BX%~w0V8 zBY*01w*cGcu||s}GAU;w7*lMOliH{5fwC=wTGYOpH{yIdD4$u~%AU2UtG8@$^6U^7 zL8}~oXrV+wLqSV|NqvN2MoI(_0gOo %kXKu_;4f4PRi5Zr9tCp2v30h=t?A z PI{6X#m-KTxxH}ag?W2FP{9hsfya2^E2ex#^TZiw`>M?06 z;^&AJTeCgYyYC%lcC=voK^A>d!PWN)&f(=w6{Pyvh6D&8sGl9x#_*8|Mmy9$oa-dL zk}CfZ3?@1={C@ot92J@@IG^Act#o*F__4;(R-(q8s#r7}4mZYe*BQoh*D+cODp~0; zaYyR}KV;MeQZ+T}e(Ib1N9v4EG^yXOSIzx_S8_?Y@=<~XO=wk#EtcR`&U6tmRL N>p5e9QC4QNRr_iY%irqBcoXNY=!uuG z68vh}An1upW+_w=cXDZP6w8sWkBk>FE>r>MxTIzWsjdqGjNzS@_@Jv@j*L0d%`SLE zp)jHlTx25(MG*OM@daW@owu6|;tj4Cu;e%Lg@-~vS?KRs12YGrYbC8=s%T$L%h^%f z=KEdy1RDdrBA`NYuM?ps<)7&vOAmcTW!woUt l-+5*BKb2m6fthLi3|_;A;<8)8FJj;V1qol*jNp1=W)`2G-h4{BXs;AI_QTmK&YB zeSWz>r~HeH#Q6dq-HR^D83L@)0CA0 3Lk38lbNXCSfEQHy&hCOX^5fCpVUXh61th4#sdG zaex#`8nnb2is+Uiuw99_I{-xrh-Euo<>tR+{G^mc2dGPmoAm#fE7^hs#Hbh?Ccr;? z{df3LJ}S5 p?>u`g*3rMSVb1{Pl1u6us>$s @F#ChptPCzxX45Q zIOvGRoi-Aja1IRzKxPf2jCWl`P;R-+#+~XW=$i=EhYq66+|dS*!A%C8Q+%{p4j2I@ z5mRiJp;TvK7e8RWt{KK~><^(EVJP6#C7{!S16WGxXKbl76kyB+ta-?!UCWj@lL$jc zFF<3$I{8hExy`prg 6F)Y7%|%-iWV zy52lVheV^5_^)#DkxlQP2jxni#Ci0{Hs7+qA%Owo1EZYb7M}t5os2ovPKWESnE21~ z;S}2^^{rWRX*1M2^|4(&*a9+n;7x3BrdUHqouqmf9HLNJC@Xw$6(7TxJ7HWD*Mc*R z=(_HLGX@3?BQR)68q~X%R{{S4`zF8HvXsR-+qmE?9#}aJ*WxnCG?s_J=<8c&zEUL5 zPLV>9OimQQqycorKp!N)lf%h@APLv9#l6pCKIIWT<~b;FS?BY$;g6(*f#o-oo8`iZ zYwuFNWkhkx8-0Jd_bP7m9a3E6LD(drBc#y9EvC8NuYcS8CLwcnK>=2onjJDMZzHj= zZBA#}<>3{WvLCn+r1w=J)3=P*xz{g nfk{t>B<;Dy$lAZvtld;;qWJ?E*dv8U18$R$J8;xpXB41xC-bkPvBVL zOx)>j!t%7?Tqmc00S26L-iiBy@bLfogP??Sw fc4;&RPP{cT-YTb zmRrAyH^Bme4hP@q$M+!10&>Tsfx}P8-yoDl=64foMnD4&S8vxlT#wVmn^^NlL|`IH z;+R5H%QQJSG#zc3SZwbOK6m{xG2=b8wIwMfvnxe A?39IsOv835~dZ{F+K$yWda~ta%I{D7Ca=wK^PA zPnz12oUf2vZrEEAI?4KywCp?T!!VyMdVjL*J~jG$I_ot`wTz?8Y8mt~n&ob`DSHFX z`_X-#)!!6gzIWu&^Vm@bb6r`)1>bTHQf2MQgw@Es{bbbm9Y6PN_Z4L+>Gx(6-sa;9 z%JOy 73Amzhbf%rd zMF*}cOxNji(Ko3vaBBlgLAb#~{bTKLB?E3uJ|+}XM`sd!M)%}2!`j0$6u dVyv{{FQZ{_RMVJ+>?085Nqkt$Zfy(R}En~h^dv(;y%(5ZTvvHv% zn!Em~q1ao?5?~hToXyw1-E7iqohuAJy&=$xhK@jfGgbmI#)37RVN3#=(FDjlz`PD* zqHtu9Fvc1JvH#TuZ)$@BH}N;{8(_cPV9eHW5HX49EYN+^Y0aMnZs)ts&CjFCZ}ICf zzY+A&LiI!{g1SfXJkp|K%x!H@`J7&YfPBQeg;OT+b?>ZK{5A>+3L~q#h>%-@HWTgE zQ=?-a51<(z4yJBr@7G^b>$YWU=(68O1}GF=p6#(nCKC4MQ+b<{<(Tn7=0>xL{`k?F z!L(jKg|&^0$IYqK7DleU__d9o$zWo_Yr)GK_j>VvG%jDJmVa+9wMV3T95|0WfYi<9 zo3n{GgbF?_+_Rb_$kr6LjeZHXWjcQVA<81d>}Cm0+mY(kQiDO~zK|SP)x7RL>l2O0 zx6?TTL1%&=b7#D{&&SOht3yQ**P5Orn$G<=R1^ap35Nt9>Qg m`jOdXRTFoxhy_{bJ$odK1ierlYOUKig i@SQ{XTyU1b~7>f2kzUNJ>A&}9XhaXbFEvep-7pSo2KUElL!U6S# z2jAV{s 3y2qIVGV$fr6VBbD2@lNl}WSB+h)r$vl+(RxbUw4X=J>S z6 Q=rfJMQ=2IM6NBPo+OoeD$4O9&I| zc7y)ZZU^*izl?Z>sRq8J@03YPhn+)w)>WG>L#AT=(xi5idQ$}U>r+I5BNN`_sUss$ z_GK*CuK=C5fDi&y7?3R-c0&_ja>T{w^QfY^aP&9r;7p2C z25<&_hW5}(GDT_MwWBsrylGE{Z{AeSENyplaFrQEJ%~;Ae5tFkY(Bd!=jg{PV&-8H zv|3^6Jh+ldf8jc*vzvXMxIQKz9@ScB&lsy5dROl@Z;XZ=wP!(w;{C~^ZCQNBWIPAu zCYn01w%K?W->+^Qqft2{AN_D?gEe$?c~P5g8#Tr2<}r?CRg2~O*$Uqm7q?#=Ko1u} ztcq8Yk=5N{VV#6s4h~K|&c&34S#R@Xo1ux1qvSr17B|T^EQDCkR*NF536BVC!Uqt| z&r`t8`8E37_4mx2;C`VWmB)w9ubGOI>+rR^9Eas)-}1EpWOdpj!tCM!baL2jM^>Ru zvp33=pMYB|-%I8EeprrNz;o0%mc99Lad_*XW?R$|gZ`F9-@R0hSqqw|-r@PWxguE> zBUgzJqwBr_Zw_0g`h f*eY-yL4i(V)PMwd%h8$ahgc z;146 <0Gl^YGe|9^ei;52$ E55o-D^HRVH zhKWVbvDn*%Jno<@F3Jc%;_yG{y;7{C&sqGGbF!X&Ne8pjY`=JReqVioql|U#Q+psr zOw %wiDDZS{eb?99+ueNQ2q3zom=6C zPP%o<$&B0AVWCQj;Lo#?+LK?~rkZf;VeNzCGhH(s-S39?nK&Oy`j>q!x_Uw~8B#pO z#~TZs;)A%3V15Ta991iH>`->_<#LAtgtChIg^Jq!Ts(1~zPx87WG?T0$#YsEfwU{J z>J~a+|KiOL*9Y__udGOonnwA{HUN1eWrA*S#1;s=ENtwwF7G6N5#0<>yhIozUto43 zBi=pP%JFR}Ywuf)Br&|xoVZ ?3R+z;%g9b5 PqWL^+8Exzx4o{WDXwKby$K12s{XZpE_ z^ZO*aa(BgE{TqDmM}kee4OS9D?Ar3iazmV!R%E zU{6z!xL6-Dt99Mtv}|=w*J?E 43F z`{qiFpnJo-wGgIh1|2GA6o;(n@Dm$bu;`cbW* B-vLYm0s&Hx6xD&*-GBp zr^**Y%{aWxi>_vTNpJQcQzw;IsR6G3YKkbms*#=ND4wkBb-NjmShHOznVY{p!Wxt& zHQNEA!Wjb6x_!vlHyyb7fVE_3@>EAD_x>a!y;3Ip6 pvY{Aa#A)VKXu4 z+i(gj0lp;Ertop&09uQf@~jl{4>GRaTC TCl$LwC%eIMICd6wi_l#^1(%1Ab} zB9wuGQa*;ZYyYhU4MU$7$ 9|Z5h&{?J%(P ztOS5oyCl&{(fh{DE)7ni9 0lv|S(O{C z(H#jr0tp_jeI5CDNMq0ebnO6&-?}~***1Fs@ot+p%$fI%6X^C;a;K!_TWc|+#BkHc zA~7)nS5syxBE|id`a9fK*1z32fH<`-y~|tHE8Bi2y??qOXOx)Tbh;|$0o&);;o2Bk zm$GZ+`+LQ~vmtpcwNp89QtPY4 = zmT&LFJ}jRsD_=~xSe>|IVLKrFu6&^;N-(iyTzdY?-4#;7YrQlh(n8$J6bYB%_N~h# z8cvBzwaIut_t~k0M;*Np#2T57z~UD59M0?o7K@n=_}0LcPH$rDUf!5QY^vH?$|F*U z-O75TQ50T!z6}3P;9iTB;P|Sh{Jfr!+?w$Lq_-@9nXYsd46GQRmJW7-aby%ttqhM5 zPe#g?w LUKf(vyls`Fq+Np9 z{hWxWGm?q1jl<{_4UOKM^$SM3Xp)LS)7O^zWx6ul=-AY}9CeV-t>J~d ~i6T4Scy>;rKBw_+a}d6d6Vsxy8b+gd-PPik%ZQiP0-pCyTI~klw`;D*W-h0F zF6x| Y-Fa!quG2sLfG zP7b5~EnhdY#sOP&UUvLYRm9~+KF0!!-rDwpcrlK@AxoKDZD?3347mGc0spiWP|{cM zI@QTmHr?v3_HVtNI+$&G`<$6s`(-q;JJgX`c_nZpo~)z`neg@wCe6BC&R1>l`nR2v z;xNUfNsV=RhQ&=fkWKC*7JGV!QxNx)+(NGOPK_&Bj12Ah+3|2@2+99F33(+;-=Hn) zjH7ZadFlTJ;7Mv)z;q9!HAL;Nfhy788tn^tW9UVb?38{70JUe5ow~}T_oEBW)-ks! zrA52Yd@X2EI~EW*JS-^1MXbD%9;5`MvK&B~oR8(?0wOuTFYTWnofc!GXuw# z2Cw^B2N~&zD$Kr*oLA^>@$r*?&oQ@Ic|3n&aBO=splsyN8tTZPA+6V8Rl&R!Ke|vy z`v2(R7&9|G{|%LHH&OJj9U?;d*A_Qi>kgo@!yb1sIM??A<@%Qt<_?GMu_Nr&n9_Og zYV8ES1y6m;3QSnnuG+zxbNk;4!K1D|CJ*uE=MZ <`Y}Wgm|c%u%hut&$)s)a zb?XC}AAoDZ47tCe$a@R&NW4FKl~Dd?%{~=}gO*Ur%^%)=IpELXhJFnHUw04?8B0x! z)SF-7J2f2J;u3NIvEKXU5yPgiT-|>Fb(BMtX@9C3pPy#Tz0d&=O%6@}Q|Ty3j_Tt0 z2_-B2ae2mZ)($+G1p;TWg^n)krp5ihAO_E3Mp<@Ai?^&1~N^uwG_+Gfc%>YT> DLNBhN;ok8G=9#I;P0=8l<4zei;jd%vRa2-qM>O4hn zkjc=B6U7vO#s2Ve-Z;-n0}a?Cvr{LtqTRHSumoz)N=Ic-g0Kk)K}{91UbDTGy=wOX z4fF_^23>DuP RfGl`sO?v-a4lwi;~OiX5qqQTYJ3n+hkjt zHY58Ijr6>dQt_nh4x6^Pv&q&BYHB+150B=DM&yR`=s<8dy-8?#J0E|Yj;H8zQNi%s zVpzObI4UdJh>;xf*AcDMQ@hVU**=oQtd{j5nvCuhGzj#viVmUAN7wbBO6Z zj^gS+!Smy|H|Om z2X3Rx~R@}{!dU=wz?=}B#`!h zRAWIW QLul7+ z)grqp^gm&H2~1<1gHh3B*>MEwZFE*#qJbA%oHbY>;n6KPThy%sToi9RU{c~8bIGL* z+NodW6tktXxLvz5V0D8&=Tn%+z=Jv3TT;rPrh(xLMIWL4dWOZA>jWf5*_vB; O`)Pj-X}h)u@iCf}8r)KL9odOEYEd8rvXupGHIvlNW-HtfwO2`M zxh@)dKk29_=IJY?Ge}lASoh6SY9!#l@6&M(r)6{-;eJB0@#1gJ>uW1QkSGOk1j&as z{C@f&016O2{`-(x<7`^qXWN!k3C`FGwx|tJId%$U;^ZEBj^u8XD=q>893@3DI(f#% z?N*LJdgh~NZ4CM{)CAa&MQGYNZ-BvK$^h|CC-HX4w2t;Ay>Ik2LaQ`hm1viWKgn*r z$w JO_&@B8`lU63vj}EDJHR%iZ2qgNYihL??u3h)>7b;AOo|k44WtBN`zEs%{|; z_87tPg|^sKzr8`f3g1m%JZYTBAur3jOq9us*me$VI)E;C6KuSh bHy~9)@ ~Mf~U(vHDTG-vQ+Aur*$|A_iu(zMx0C937O{e<7G%Hb_P9F~T;A7JnSOoa)>k zbZ#o-)Y$81?~OfQnyalFxp-BFrCEB@8A-oq-*#+H&`I;5U8;@T$Rt$Bs!2?B3GWG6 zZn1m?-gVu|XBfV)_CbDA*4WhYw7>I2q=aB`Rm>F$*?m8+8d 11K4EmhL(5Nx+ zZg75W&6Q}xwO b5B# ^z%-AY;b*zCv0a#kFx0f#{I;Z-hhHp zM~6|{z>dlQYA>bmEEdqY=x{?rRqU*C=0ykP*yucR>J8&Xz{h#4pbml3<;U~r0wIY} zEe2(mz;&^od_9IdFPxzPQn3!p)Bd7UneD$d!~n_IN|u!|w;qravUsD}OX8)clFzu~ zL}#*{tl6 !`;u47TdcR%HKSp;& zR(%;K7DFhb7Kv@CYHSp76fal0vPJwXv_++Su5R^`LbBS1i8%_vyGotzixVAbHNls| z !IvpgnvoYf9F-81VbH)oPxp@ekt4%W{-#>6~ zaiR;f{JhroVV9L!!-G42RG;~O`r40@@GlQk8l&U q(* *BrJYw`$*}Q z`^Dj>=me5 6Me7Mdzv(pE@h{3y-d#-C^EeZYCN~8IKak zRg&P* HCVB9k{rPrQ|5K5eEA)JVrI%il
CfVY?_u`GUN}>6i%%v9b5bdmPl> z{mxY-%Wl>a6T_V8N0NM9^hGNvQdmKx!(Ic>Fgetr4H8gY@JcQ3hUmV#?Xzsl%5d1y zECQ>DcJC}Yv@z1yZ<#2RJ+teVVpjg%c^45}!e%oODW&dW{N**qbmFxE$rjP+dEvoV zuM3yv-K_=_5~_w4aTT``c&meYox2D2Prj{$CFIQc)qZGS-7{;sXI<;Jt=75hwYRgg z1$>CjX}{e*6d@AtqVSbw<-NMQb$y>)Uhe?=)|y;eyY<77F`_`+Xk(N6$bv=6;EF}I zPiYX{ ?RV#-heNmQin) zW?h=5amzkwu!1~NxyPbQQ*Gqh_4m%r+kyLGX);zN``X@N@B^rJc_`|^gSz4AfWDW# z)8?})jzs6wH1VX_&Yq3Y&DnREbG>8TbQZG76HP_L+{NN4AD?U6`{ f<(NXR^(m-ZV`%SxkIc z=1>sI;H;0D;rNvg`VXuvB*G|rn(qXvG%ijjPZ_QpmuU1`eoJ#ckjeL-;>iKQNpeu| z$&op6ZvJ#g@d@Vs5hy=29K#=4z+HMy!w&Td1Ai8s VgsSkuRxH>NEU W!=YRTCf!+x3;C@0|PR7J|!+xUgx^F5hCW(qZ%hBu$f3lBflmzVFkJE#JD=A~}Z; zM(2&80lV++;MS^j2*@f}pPl%OPV`wy-nMOj6)z&_B6Z6RZ)joK78o=8GN5O1`0KrU zB%cI28lxrx0jw@ak}mEO{UUuyllTyo!VD+%Zgi_BQo?q%+;fnbnw|Z;|Fw?}vd`fE zr0IW!S(;?sR(oqQx{iOInAgg=vR`xnZTp=z^EFKfx$+tlbUOV%5sY2j^i$G>x3O4# zUG7{Ae>#pqk%~%@L6PAMgCa=eJ9Cucrj8;v#K@o@4hPnA{+n>s&IdXd9dDvl^T~cl zr+x0>DZKL*8!)1kF)>VIAQABu(8DW&fB?c@j4T&VZoL^L$d)g7T&b{qML55_?UIx5 zVAHQxK1$Cm75RF{T*504)zjjVmbSTT&S7Cn_q#uA^&1T@d(7m}>rL0QULtG0vLM;M zU!Hw)9^Wt;yqVI${=Bgc{l(-(sj!*hMF-1)`nx-E#`D jz`LFe%AUHnM#Mt;a{={Yx>k$T6^9~+!} zaHzA9V8yO9qNkZNkX7e =c#)hhk}tIO_1?*qujV?Aqj9+nei)+8uXMw?k-wUXJ`GKcTJ6rj9yk5s#+ZW{%Y zeOHinIJrCD-N f*+T9+$>oungA%ex4;a`KAEI>)
af7@q>pzgqy8OQyVWvv}Pr~&Xsh9-#bF*8i#2 (VtWY0CTcN z=b>~3k?L+P@aPJ*@Gt03#S%O^i0BHig$1R9cu^LCV2jSpyCD45Z$#bnMJcTxdyo-K z1c8WGP}Xyak*D1cVQkow>_+prRT$5Yz8fBC8h4+WZ{#eVIDjIH)4bfH-vtgm>ZwlE zYb+cla%xKKUi`Sn>Pd)^nry7pblUT;=@R;VkH}fs?e(p`#)xjQ`T*Jk%f%<7y|-n9 zr#H-Rwrt}-uEW!Wwy4ePux~0+*J|JnZq^}7MT5Kh@h%J59Ul}bqG&9nKkqqgNKWJk zguKdZX9>~-(beM$uTvtHn}jr6Zw-nCT$eI#jvVYPFD_zcD6cYZeyYNTl3;dZ!O=G~ z2>O7u@Qg?GC{%TXaijcltDP^mU;R-fMM~w+Q>+xsikB?Q5a|= GD>A+l4bqMD>aK2zeviSS|UXTdI%(-*0K$ogU&CQ2h|kJ!NS5y{M9R6vX?gz zh@qE(iEaZqZ7$--AmZsQg;sONCgBN!6k*tH!*3-fjAOxPzoPn%*G$s;1dp7qsm-Cx zejC3Kh4q=`sg=c-vOFE$VX?^IK%@%Yjdrhd$*4Tia8qt=CNY`TMtsBTa!Z*m(nU*t zh#B#@YrSq-8r3`KN(Ym>OvB8}{*uM&0J242Z?sy=d_G7NPwQI+4NC29tAnr$E$njV zytiHE-fqpk?XR52FUd+;YzHc&5zF?CGMW;m$M$WT1gorIQuV!o7vLj{^FA>-^FCE8 z2N2s(RgCEt-h0rmI#@y>7MXDXH7;4#_YMNp$SD#7Q|R%7`3<|RObo3d;&XgVi%n;u zW*Q`ec_Kz7mxp1lTaF30`|&Zm2hgjR9i^2n!SckJ90Tbgi-C#B!qG)PzktC5=$u7G zY{Npw^w+4#Dv!d6DgU7fA&oxvL7L07Unk#GSVvuK^6}vuN_F;^-+0fQHexHU7dJZg z(qAH?*l1bOd%>ta{=6qLp>NA`h}taBD0gb5!rZ=SA-I2NesFhYd}nYX?t;e1-caqF z`j#zi6R~6BVN;B06Q}G-h=m2ld5=@)Lw)BWskYN?_;Y Nxh^M~7P*zphmp`YtYk1rN`yrs2=KLvjV3-eJf#x1q-A@-4~js(7gt&kA+7k$LN# zy&17clcu(*)n ^W7TcLEk5>c7;HdjA&B5f>(BujaGM+N{iP@jkL zU_@boFe&5lU`j9sqUJ@JumcPidG%0j+k^Y`n8q9|GtMyr^UoyOpaqzQUkoiX&Kk^D z+S_oE1`B}WlhW!wpX1eE>7zubO!6+r58ia|koM`2U|@H$AvmJI*+tL{2{zTJoIH;k zY7kUvXn?`ig{}B@Ubi@L%D);v1=+Qwiyr<&snM*W#}Snd4Nf#NIWZr0PYVI<8)dEn zcpN~Ap2xVr-q-Dx&e{Di*n(-dXSKX}iid~QqXWomWH)nG;cbA(idhKr#VHSxxLb{l zki5vp?zbE{q|0~q@V#kCqnl}0Wa#EnzwCB%)(1r9yxogj3Bv~5nGV+V=IobC+$vId zx*YRnzjv0{?6#{pnm1Qt^=^2EqsKojHYIGm+a}mCYNY0h%*nYT@(^|N(y9IHGA$gq zISo0ZM$L~qj(7zz!jinMH*-JoaI^t0xw2WGmvUD9bb4Uq_kD*WYsIEK`Z=1<1uf^D z3lnt4>$RQW4TRoSk>B7Pm~l|);fzxVdi}u!zuGRjH){%iKYHs{kA<_h?RfeAWw*}t zZ@8g*Yf(;eTK{(v|G!|Op5%$l>)rE44xx&s{3EKRhsOyr`}yVx@*=Km>zCyvJ{rBC zM8APN{tQh)_X6Il~6_7-|2VYc>8HLkQ|-;>yjxAATg9J1O+UiQjWE5JnJaF)D~k z8N-L;{*a{nio1^LA^PTV)@Oii#e{(o(FsI>6_fH(cpi^CSn0T}I#3r~!E{B~1>PXW zqvIJ}aUA6?!Ay1nTrAtCRR>U!uon%O#umvkva5F$-em*W9(a5808s6$&to;Txk@%P zgbge$JL}smi?0B05QqvrMkD#@4Wvwt&-^Km_Nk6aA3Mi1&-uNUl#XAed~`?VGRxD4 z-85v(5asEk!2F)Gl3>tqE62G33q1TZGm{IfOW5)>lZe$@9TZE(ydtN3I(Rkm0rowF z(;CHe96*#Pur@b(2nyAMmH1O1&$Z|B>~`<#EjK0OMN(pV&B~(kn^+PQ#3hIXp$wK) z)2VN5uXCFBW4B&6X_{5ME1HYISK$lB2s`T7v}w7t&k84NUw4}_x)?h*={vN~E6 zjB>_^F!g1SQi3N6RK**4cPXvEPWdsHA0 +05>C?TDfqYV>I4W_Fz zuAB)c2~DXij=ufq?g65MtL=1!hcO3ya%(~<3UMzDZ~fUf8#%R-8Q<(5#N;<1=H*h9 zlk_#-;$m?f*dFuO!8%HW$u1G21m6(ZD&i#!Eh?UI&ekm1#s?1Oq#Z!?eFF(G`2@BE z8gZkIii@kG!O3zm+m}MJ 0VY{##ril~vP{^_%`-Z;^2G>n z|A5n(S&wx?pt6N?yIzb836lx#ab|r*_$bPQ2{R3d4U7I_Pud3fLj<$iNe2q3BYWSE&2jokE^@!}qNirE$`e*>Xq#->elTLC|yWpfo z&khqDKw@p`z`19^is`x|FfK35TGpx1W~4-}3tQ5aJ?t$bircllIYmy|jMWjfR|M&s zEI6>0x08L=?}EbeuEpcvD30!EK$(Z+c={Qn@@3!f0NS!}4%vD44eVJ+Q-ALc;y?Zz znh%;dI%^ZyE(?j9ZCd28F9d|l6KA(Mr{;CNDv162=0@Y~8-cF#`<^si@3{V=1CV98 z7Ob@%j7$KDQtP%V@g6bqunbgnY|={aRbY-CKw6VBG{pe|rB!UnsN=mpF@n;OnmK7{ zNyEespJB)^nX5ix!r#_jk1s8El;Eb^KHl@>EFC3C<{)=u_cE$@--oQOxSIOU?!KBc z+u`JB+{4TI)7rcfbR)3XY!uub++QQDDbQ_3zD8FB%KCH!2G)ceo4+@`TJGyd mA1XiscEx7L8 z+WV#~ueKc)TkUdg{Qyd++ETCnCa@DK?>AlXr^WT}Lz}9qMJu5Y1KFE{LsUv|dPV(k zE)XEi6+FU+I}@E7op%($1pbo%Rdnuii3nwNE3lr-byfl_H1nwrNj{ghVnwQ3WnXKM z;L&bZQNIJE>*%-xD=^7~JztcbQg`ztFcO&6-R!+ylED|1WW!9j{+%0nX(YGuOJoeF zQ#XX+g eFfv883w4{1W6Xe6(~JMq$SvcYl#PEas_iG3^#~in}6-4 z;n9|(IlXbitR%^+ZSa&^yM6zy!5d~SSF8%3TAl`rA8!+J=gh!P<^U8kgV@K0>xcBu z0nS^N6R~%@`#!ZUvPYnQ!JH(g*SAs}mcZe%5~ob@lRM-C*#Hh;jMXp?r(twjA Ca@ -oz`rc_Pe`k{UHh^^lhigH-vY`XV$!9_x0rutDiQ&nvV8b=F+f2Q*%x1>PBr` zVDqwTS#bTFLgR8ET})8bx{&?8QOx)4yB04hQ$M90AD(}m_+Ddup{F`$%UtXCzdLiP zhkZe6-IYIAJ7^&im^}9l7ofHLE{$^Ro68=mFC=bkQ$CT7JVxN>mg{LG zKY5zZ?+167OTZ4#&x=9VIfcFCo^5K;dHvgo$XiYa{IZzJF};=i_t>2Oe5=6v&h;C^ zvT|QnB>pkB{9m(vF!gK;l{Xvq(Kn!A-1YC5{Cn0k9lxwF>-Ew-T--4F^6js&|M+{> zblEq?VL8Q|{}&-YKjZ&4LTD0u_u*SNy4}A>?g-_LBy=Rm%QK{fEZDEwy{yUg@AAEu zMzSTz$t{sA8vSSh7sOnE`AwwC?!9UjYihcjq*V|#xLs2~6V^53F|$&wnbmKepp`?& zX>c2rh1fOzTZu%gMBXs^w{Z|`7dl_g0M{nVBuM8b_`fMn_@P%649Bi8ojl5;jXKJs z%X@Y7C<2&(dGv7&65Lj-(PyG7Xsz6j6-z{r*LX9@YfI=Gw=M|R5tz-av^yL8QZ5Qd zmXCCbT_lSmrX?VGtWdrq Fak%>;7|QbR?E5)!iex9yfA_d7>tIcPs2YA)Z6@m^)aga=H*#X6x5-a(oxAe zk=c>sS^lcX@Gz=&$_*#zRgQPNVTQFKn1-9_01a(T*35^JsY@6%zy!_AwY*_t*u>G<@nWzvjFq9s0KxSrsXJ zXU1zLk=4ZRKj3e!UcTkZd)>^&h?plKA)mOdC6hDf5*33XO?%8pU#YE+BgDj<&R~C2 zOU!%st{v&vJUx`a@7P0!==AQsRoiz#NX@T&ZsPfutj5nnm9@l6gpH!H!Q}2_SCP!= z?O;5reoAW7Z*v1I_cM81shOcQawDMfzmJcTMusOw#z@1(?sp>HNssr~QgcqX&T+sV z$S0q+uj+Ky6jTVI4O}M{#(v9blL-7{Mdd-4ciOFvJ73j0SN9dP2!0+T?~2WA-gRG* zxLc$7GC<;OrRHl?_yqAoJ@Ip@uT^cl4|`$5woHY(`w;f6V{^^CwMKx_v`k1zMU}Lh zujCTxTWzwyxA@%_nOKlLB^#MhvMDVemNP9qP$Vzm!|paZ+9X@t*gV7T7XMAO=6kKV z?`XT1EYd vg%nY>jAbX5CqWkq=IS-45oxmr*H6e8ob+c?=mwp z)!2Bg;CPUV!h=U&W2%I_7laft%pb+5lyRU6=5{MJT{M%^GRoH~tR7AI2Hpy>tMDtW z_N%IJt)A-aGA}Ehsi=G}=sTg(K1}=^S3Q#^5%&0;d9s)5;CR~iy6$*6I<5YJY9Bh4 z0GSLzLUP&z7-qPsdEmvUAYtN`kMnz1!|aW7dCL!CqVT>|YGIg#b+6&kiKZBN`$&I~ zKEv+zbx5yy{H?#2I0)_q%V{FZJ{&;Akfj*d@l?r{eZ-2oYjE=yVM0e-SK+DyVyYjB z?_0qa50BJ7fCUGe@=B^#;fWx%cW>j$<&D)__Oab19CS8by >B-xH|^eA;1imEM?YXM+%c2!I8E+;hzSIU6)%!rB(Q+ zsR-jPV2mi^B4d~m5P+>+fT7}bXp9_+fv1P^K;7Vw`+--8^oaJH8bk`1)S*?o;w=lX zAj1uLr3j>O42r@k%rvBp?N7PmQltm;Djgi-B6{Ym#D6LJ5s-OY-cuhr*uf!_(sjM> zsbfQVX?@2;Q;4@;wf8p9m&NkUz}@cZgwC|Ra*q|#XPFuaI>T$WrLND-HY;5v7+$`t zG1 TA|Z`W)9JTV%B0*(gOiXQ&<&NjWi?{! TZR2{XErskDQ(ajMk zl)d5ljk#fDy*!|8w5K_A`JIc9V^}pE8>(-3LFH+N+JmO0^6DaBZ64Nh@S@Ml)*Lq8 z_;J$+NY(q#yZEML5u!|MeH9#QQ8{C^^74qts$O**e#8CSd~fykm5g8IXpF`tE(>v( z$s!9oY&%HJVLGW7j5I_ltRv4I7xEAko}Xb4Z1;b^I(IruK8+k70UHda=L7X3JqOcL z14AlAI-8={=W67)=5;l!Cf5!ir3|%F;a!65I-SLikVb-#gQpqGEkZm}UQVohf80k_ zxM`ob>wEw;5N{^9OD}B+4X?eFbEUKQ43aRYk1Zc<_ryO46SUoz8jbW2tTuN{eK!=P zwtbb={Hu)cj0|0|kj+}J$BK6posLZ6sKWFMYZt`Eas?tJfLQI9lf7*o_EyTzzlE(s z)7*96=;QcQacxWnF@d&fOHG83(ERvZGi<|4&NL~+D&uC29%rK$GMU)DUM4}O@^x`( zwL{)%Wqe{1PY`tR4xVk9hzcQIir3Jbmk${CGkdSGyatw cfO9@{s zUGqn`iijf<<9qj4ky*7(A8JKLMyDk!&F3%l3;C1WNkfLcf=!&_8<s&CJ!8-G 2z>Vi^87UM{762j_dZ<8ENyJys0-M#1emwTldPBN1NNfEVe8(#}aD9LJD!D$@bux zsB;hS(!p#!gF^-EIW|i}f-e3Qwy<-j7J^-s2W336$L2Ur%X6faNcsoE{!1^{9+y pwjI zesyYK$q8n&Wwo)XfWFVU_^dv)eSl8$e)bevAPy#?=6pdDrR!bF=1V?}KkI#y3gYf% z&UX7PHd1KI_J;nu9rI2Vk8xhTw1o0FE4_Df szem@4E&O@aE7oe}k!A3Cz6 zhMrCRC`_XFim@RW7$lm|` zTk?<08`r$m{HlN)TCpIle(r_)JCokgrX~lmG#){J%{)Hd9r9>Xm3Sna({iu!q}fFd zjpXL!fX )8O75Z#?+~eF9Lb7Ks6kVLF@GLG&Z8jtXvY4C zI0~{CX(hEqAhMz+1kJ#h `4bORPuvd+O9ku`i1iS|K`O1q zM&>Xp_nWj*dU1 Ggq(4l}*~g*7pBn>72Cw1f8a+>6D2dsCtw38o8EQJaeZlkd~ItpVT}46|a9w zQen^IcjvplY D@nsRRlu7NwynG*k|Fwe#28TR`1Be=-PN#^9K^i=-GD(D z$oKs}{wWMSs~>hC#Qv|04js`!j>2ou$2M}8=Sac|Pq3|hSyf10TQI9m;*gAK^3h}} z15KGK4F(gpk{aPX%Y>XC8`_skTra|WP!Z h|nu#yJNOhF8lE!+-deFiq8S~k-Hxf^EZ36Rxw*pJa| zMcOHMIMb>6J77~oH4*A-uuYUkwT&YlxI~lGC~saey-R|`KAKtCtm4CQi0_u@8>NiO zX2tn-dDgMGHNmTlviSise*3rThXs?D7P!Q1`Ks8O*=s4dgQZ&4&}y+-E-y}I`@Q~P zzO*9`+g2ZcEj;lNt6}famoL6^@o#U)SNXL!$j%|4qsPJ`A7HeF>{+tRfG)Q;d3;;l zq=~w}9LDbNp3VQ#!1 l|kCKUwBWH2E22DwqfX6Y-vlu<3}I z)W#4R%%q}D8=CA>1Gd4JU0gZ7x|$A#Z&vu}!M$zh%5Y(-TP#ey46!Ro9f(kNkZSY8 zo_j&9p0j%1Pq+IOma|65*CDqj+g_v{IPV&^`05YECCp!IzdiOZJLAsgqh#!U_c?m4 zIE(gvrQYV#xU(z%*wHQTcPbf~=fh+5Jx_j!ojkaIFNFPjRc4Ls$RA^urw!m+`ZZdN z7bEQ2K34zB(JeJhTCG}sVa28{+rdebd|HqFZmgtn))38Z18K{Cznn6Q96{C{-B7r? zI8LK-AzxmWIZakL{k!N}H$VeX5W#4~_?2ioxr;Yw>KgTI1e$DExw6P6&tBf~Z);US z*|OLF*%JS=>-oMxS#Iw5GhedoJVzb~wx@x(opb>e>qD`p4QyToYMGczRB{j$!k^fH z+b0o^p{XOR9)4l$wFWjA=@_^d*QAl@FriF$Rm$d_Bft=DJEK6DIHCtlo~{N17KO2S zi&c2g-7UhX$>5H7)U9g;qk*aYsw<=xSNQGdHjF9r0w==vQ3gNouF_G}2wx8Zc`u>y zDXH3JVZ3QQhf&$`(&i6GjL3sN)nbdsq`qW5CS{a|sx@3Va3p0&2>OP-HN;|yZ^K?$ zrVp<&;Rb+81A$S3=obEomcoR214Y2SF_~r8SF#HS Uo4AS(q?hlKe*bMVSGvUwyUdu>DNAi_4(EwdhC6|y_?np3<9 zz-uHtgapMW*>)$Ade9^WAPp|_jCdS|2E8Z>41jwPZ#*8$@bw9v&aMvv3VT(d716CE zyepB87cSbwXDaZ{U3U{mbRNj4sjh6fsb`3e)8)PlSX;!q# B;i;!okl z8NVRA@xzweQ$0r!qU~72Kr?CzjXz$>^@*1iX(S2{MpXw=WEE@T4XrLhX(zG@^S1z$ zfbJlaI5kxkiV$5#5$4MDJc>q^9VT!$qyigxI3s;j>nIu^wMHyA5pa0Tq!xbmU}zF> z6=>aOgrqJC3y(9jk`NBmu#9s#n*cR#&+hcA4@UsD0qaQccJNXl<`Ee3kfbSm z4c?B(+OhK4S~L@Q3LXvcv3U>_aQN`-n}K `$6uG!&y33TftCmATNxKOTg||fi96q?i8hp zNh)WEA19QZH>IU~zgCZH>Y=;0hY!8ArS!8Qv-{WrlSz=d%-Ll(B4kPqg8&lA`Q%(L ziU;9hw7g>`CQK!WJLo{Y3X%#^P`bf9L~NC)2~DoRv{YBN2Y9c$MO}2^X_w^OxVy^O zaNcE*&_c7Wc@SHHaB0^9ETA9>z|65w>ZG9@Z&?uzU`RwNI52O74UPKb`c~ATPimO} zt(*)cFKucniHccfF~{RVjiY9O=<3?LXK0btk&DX8Bqt-uA<0u>a^u%W5vkOX4NLAN z$g2)72N{*e334T rKa><-N~ tp%mr`hv=qInS&joMdX}Y<(wiOJo4Rwl5^M zy0YC~i>?S`*@5)-0d`&HRhGIvOaK>{hfM#BQYT{ttX1j(Dp~dguF}*e(`h7XBodN^ zgrw&YCu07c7}Da|fdGwDhGt_whOhe8h3SFlPKS1eme#mTO&(2%vCqj3s`8|cUO*ha zM6v+%D66Aal(m7BpHE0|&5AP33e^%P6F*w+MLf=ozb@ 2;9-Gy8A^-V6o@3$9p8?( Qm@4C*PeEh{ z!0{t5t}+yLxIaqqA&Z&hd~%L5dFsX_?hTe#aEJ@F)VFlhuqZNNc~n&uV{Dlz^dP`T zotYqxNp34`SW=3tn^wPK^W((H#hW{RN~A9?D3 0N5>n(mZHNAZcTbOx8Xch$0 zfAM?TlcV9(WnDEo3J78VmhOl1u(L-}IPVBMT5ii#Bez}I(G(;D E-nT1=pQ?3l# zIIO*NIwrpLpctHY^t6Q2BM(!R*puMV>!7L!(mB7CvERR)Dz5f^-?ddk&$hh%>V#GK zFjdhbiC9TfU8rv~z=8N_30hWFHS3?J8yo@F{{Mw%e}eUsNVa=bsRoV^eG!kh&uq{= z;<@xqP#4vc3>QPa6!fC=oz{J&KtC%Gs%T)Z7eJ_cYTISVG(2>4+rCUE^X~<~$1Ii2 zJ0) x%@L;I$;Xy^Zr&+3P8~S? @(K9Acjgs9xHs2$^~n%%FN6kC ztRQ;dHi`zYCr~sQG8ROU7!GWd-|dnp+-(wJlS^MTs3=PptdhcE?vZWD2sx*o`n@Yx zODrl=#&D&c`^OI>=LodJ_f)MYU-a!pP*+?Y6|!J?P*jyx{t1{RZ~-!Q)G^g|8LR(K zaIxPNl*1r;{5uV*__;GN3*llYKYM`kr$<*`WZ`sF0|VI_h>!ZGwt~vrj^SZIIJ2W$ zptBB*-NxAjYsMi)PG9EL>#hP%Lzdx*V?pjY*G50vO`v7Lo~&!A8K9}1JhE3B!$0S& z(>>z|31-(tT@%GJT|EeKb$V5(jC0}-#V%fTxREhDC8oSMP28sXMyh-_vIEP!K&%cv zMCR{U{~+~_AbNK3+uY?3Mo=q*&nA2MK8T7Ox3+S@@Ud-L&(pU|3#gEWZnZh^88xh` I`Tx5AA12oauK)l5 diff --git a/artifacts/tx-os/src/pages/executive-meetings.tsx b/artifacts/tx-os/src/pages/executive-meetings.tsx index e6ab1264..64db08a8 100644 --- a/artifacts/tx-os/src/pages/executive-meetings.tsx +++ b/artifacts/tx-os/src/pages/executive-meetings.tsx @@ -2936,28 +2936,22 @@ function AttendeeFlow({ {items.map(({ a, i }, displayIdx) => ( level, which is what we want when the cell is - // narrow. - // - // The `[&_p]:inline [&_p]:m-0` utilities on the inner name - // wrappers (below) are critical: attendee names are saved as - // tiptap HTML like ` محمد
`, and a default block-level - // `` (with its 1em top/bottom margins) is what was forcing - // the name onto its own visual line under the index. Stripping - // its display+margins keeps the rendered name truly inline. + data-testid={`em-attendee-row-${i}`} + // `inline-flex items-baseline` keeps the index prefix and the + // name as flex siblings on the same line. The `[&_p]` utilities + // on the inner wrappers below flatten tiptap's block `
` (with + // its default 1em margins) so the rendered name stays inline. className={ "inline-flex items-baseline whitespace-nowrap" + (editable ? " min-w-[3rem]" : "") } > - {displayIdx + 1}- + + {displayIdx + 1}- + {editable ? (
span_p]:inline [&>span_p]:m-0` flattens the block - // ` ` that tiptap stores names in, but ONLY for the - // view-mode shell (`
> >...
`). When - // the cell is actively being edited the structure becomes - // `>>`, which this - // selector deliberately does NOT match — so pressing - // Enter inside the editor still creates a real new - // paragraph. + // `[&>span_p]:inline [&>span_p]:m-0` only matches the view-mode + // shell (`div > span > p`); the active editor's + // `div > div > EditorContent` does NOT match, so Enter still + // creates a real new paragraph inside the editor. className="inline-block align-baseline min-w-[3rem] min-h-[1.5rem] px-0.5 py-0.5 [&>span_p]:inline [&>span_p]:m-0 border-b border-dashed border-gray-400/70 hover:border-blue-500 data-[editing=true]:border-b-0 print:border-b-0 print:py-0 print:min-h-0" testId={`em-edit-attendee-${i}`} /> ) : ( diff --git a/artifacts/tx-os/tests/executive-meetings-edit-toggle.spec.mjs b/artifacts/tx-os/tests/executive-meetings-edit-toggle.spec.mjs index 5e901576..71f0cac6 100644 --- a/artifacts/tx-os/tests/executive-meetings-edit-toggle.spec.mjs +++ b/artifacts/tx-os/tests/executive-meetings-edit-toggle.spec.mjs @@ -200,17 +200,14 @@ for (const lang of ["en", "ar"]) { /* fall through to the skip check below */ }); - // Find the first attendee LI in the schedule that actually has - // an index prefix span and a name span. We bind the assertion to - // the LI's structure (index span + sibling name span) so it - // stays meaningful even if specific data changes. - const firstAttendeeLi = page - .locator( - 'li.inline-flex:has(> span.text-gray-500):has(> span:not(.text-gray-500))', - ) + // Locate attendees by stable testids on the row, the index span, + // and either the static name span or the editable cell. This keeps + // the regression guard decoupled from CSS class names. + const firstAttendeeRow = page + .locator('[data-testid^="em-attendee-row-"]') .first(); - if ((await firstAttendeeLi.count()) === 0) { + if ((await firstAttendeeRow.count()) === 0) { test.skip( true, `No attendees present on the schedule for lang=${lang}; cannot assert layout. Seed an attendee to enable this guard.`, @@ -218,46 +215,46 @@ for (const lang of ["en", "ar"]) { return; } - async function assertInline(li) { - await expect(li).toBeVisible(); - const indexBox = await li - .locator("> span.text-gray-500") - .boundingBox(); - const nameBox = await li - .locator("> span:not(.text-gray-500), > div") - .first() + async function assertSameLine(rowLocator, nameLocator) { + await expect(rowLocator).toBeVisible(); + const indexBox = await rowLocator + .locator('[data-testid^="em-attendee-index-"]') .boundingBox(); + const nameBox = await nameLocator.boundingBox(); expect(indexBox).not.toBeNull(); expect(nameBox).not.toBeNull(); const indexCenter = indexBox.y + indexBox.height / 2; const nameCenter = nameBox.y + nameBox.height / 2; - // If the name had wrapped onto a row below the index, the - // vertical centers would differ by at least one full line - // height (~18-22px). We allow up to 8px of slack for normal - // baseline alignment between an inline span and an - // inline-block. + // If the name wrapped onto a row below the index, centers would + // differ by ~a full line height (~18-22px). 8px of slack covers + // normal inline-vs-inline-block baseline differences. expect(Math.abs(indexCenter - nameCenter)).toBeLessThan(8); } - // 1. View mode (toggle off): name renders as a plain - // next to the index span. - await assertInline(firstAttendeeLi); + // 1. View mode (toggle off): name renders as a plain . + await assertSameLine( + firstAttendeeRow, + firstAttendeeRow.locator('[data-testid^="em-attendee-name-"]'), + ); - // 2. Edit mode (toggle on): name renders inside an EditableCell - // inline-block ; should still sit beside the index span. + // 2. Edit mode (toggle on): name renders inside an EditableCell. const toggle = page.getByTestId("em-edit-mode-toggle"); if (await toggle.isVisible().catch(() => false)) { await toggle.click(); await expect(toggle).toHaveAttribute("aria-pressed", "true"); - // Re-locate after re-render — the matching attendee LI now - // wraps an EditableCellinstead of a plain . - const firstAttendeeLiEditable = page - .locator( - 'li.inline-flex:has(> span.text-gray-500):has(> div[data-testid^="em-edit-attendee-"])', - ) + const firstAttendeeRowEditable = page + .locator('[data-testid^="em-attendee-row-"]') + .filter({ + has: page.locator('[data-testid^="em-edit-attendee-"]'), + }) .first(); - if ((await firstAttendeeLiEditable.count()) > 0) { - await assertInline(firstAttendeeLiEditable); + if ((await firstAttendeeRowEditable.count()) > 0) { + await assertSameLine( + firstAttendeeRowEditable, + firstAttendeeRowEditable.locator( + '[data-testid^="em-edit-attendee-"]', + ), + ); } } });