From b005dc37e5f7e2f519edc1f607f6ba3ab810ec26 Mon Sep 17 00:00:00 2001 From: A-Walrus <58790821+A-Walrus@users.noreply.github.com> Date: Mon, 4 Mar 2024 11:47:38 +0200 Subject: [PATCH] Fix BiDi bug with mixed explicit dir in paragraph (#3532) Co-authored-by: Laurenz --- crates/typst/src/layout/inline/mod.rs | 17 +++++++++++++++++ tests/ref/layout/par-bidi.png | Bin 25303 -> 25731 bytes tests/typ/layout/par-bidi.typ | 7 +++++++ 3 files changed, 24 insertions(+) diff --git a/crates/typst/src/layout/inline/mod.rs b/crates/typst/src/layout/inline/mod.rs index 667421fd5..cb1afa1e0 100644 --- a/crates/typst/src/layout/inline/mod.rs +++ b/crates/typst/src/layout/inline/mod.rs @@ -432,6 +432,8 @@ fn collect<'a>( segments.push((Segment::Spacing((-hang).into()), *styles)); } + let outer_dir = TextElem::dir_in(*styles); + while let Some(mut child) = iter.next() { let outer = styles; let mut styles = *styles; @@ -445,11 +447,26 @@ fn collect<'a>( Segment::Text(1) } else if let Some(elem) = child.to_packed::() { let prev = full.len(); + let dir = TextElem::dir_in(styles); + if dir != outer_dir { + // Insert "Explicit Directional Isolate". + match dir { + Dir::LTR => full.push('\u{2066}'), + Dir::RTL => full.push('\u{2067}'), + _ => {} + } + } + if let Some(case) = TextElem::case_in(styles) { full.push_str(&case.apply(elem.text())); } else { full.push_str(elem.text()); } + + if dir != outer_dir { + // Insert "Pop Directional Isolate". + full.push('\u{2069}'); + } Segment::Text(full.len() - prev) } else if let Some(elem) = child.to_packed::() { if elem.amount().is_zero() { diff --git a/tests/ref/layout/par-bidi.png b/tests/ref/layout/par-bidi.png index 8b626b2a764b77f0d8751c331604de5ece676aa0..4750ccb88edec4f95d0d7c58d91d2c394795b750 100644 GIT binary patch literal 25731 zcma%i1yEewwkFyTXrS@NHCS+m;BFyU@ZiCMySuxF;1($4TEq$rJsLWlwb1A`_jBcTEV1B(Cy1OFBo4tRtRk#H9V#zan5 zLR8J|@6l4(*Wb#-q36%&It%k_=xJN;qnBVVeu+E-VPU2Yw#7jRI5 z^(yMKw;dKX&(#=`V>6#`^VjY6?08XvyZS}*C+DrWO=+>hdp6HI4JxxEdnvQWWBZLS zB^i?CXcGHV2ThVx&fS)X8r z+E5I3;Hc^JzLTBPpvlF?1|?~%arJ_gkGD5lA1f@Y-WiU1>Gk?LMY3Gk+##^SDkW!3 zS(qB@+7zHpiVQ_s^(*Zp^i@v6Xw9PO5>Co3w^qG*kH4&`3g+pZ250Bz6zz^QiJd|5 ztM|xk2A06Ldm&=PonBF1-VpBL>l=y|2xTP@5*Bt>S{G76Fz<|=Fz2iZ9W?3EE>Tl@ zs6oT3t_hFIRiZObm&(tbwZ!=6G96KZf`Xk?jk?Sx8@sz^ee-s_KhU0i$oP=*;c1np zX0VJP#PGUk;}yh%x4@S4W=oQLYk`e+cYYpkB0?%xz@Di%9g>oQ|JSrpx6Ace9ejCD z{2mktTZn8_I(HcMsOcK>18VHjoEa7bMUW1FL{-YOLnx?SlSWO?nXCh;QBV~n!eAZP z$SZ%&S~}UZ!QTd4DX=T`$keyvcAIk=MeScdbhBWOjg8sZ*w}fz>mlb&5FxKrHKUVo za;2Be&dS>8kuAs0V96Cf4TD|4ky~3%i^XqYry`gD7BM%lBgCHV%s((?Iwd8gbT;B9 z?&S@Zu!)_oZ|r0Z3n*h3h3)Cf>66xm_6BQ9I!=lBPtFoCl^`6W5=n@1=b|oWbP>2xYy;wU zMct*8obSX*6fPl0=;rO{h#lSPdCQzdVOI&UwG-pcAS%o|><-014tWkSij%(6 zqfTCSFZ-DNa&^Ut%g_j&7n_*Fcx&$A!_uYB%NbG|JUOlm!sd(BonAyEP&mHw-G_6` zimUN(cJ4h#Zs%K}=;Erddz8{%VrFJGk32VKOx(JS>zRP6gVb?BZ=)wQ^PWVPI0mwD z;JE}{PkRr76PBUx+{Xl-ctA^=J$g?%Xg5S4;-TtbpSQPeNN#pS5L-&PVd{9Z0N)$> zJPN-sBZxAXGD1{>EsPF?*-M@WmB0!7w+{}W;h2$_y)sv0Wu3JD3ZvH2G@=;<}_ zHS|5mAHN~rK7M5MoKSWW%3HoJgq0RdUYJCoWNKmY=C*X}vK#T{RiH3~$bsH>hCGHH zr!(Hw&=A&jh0HnOmPkQS(Fh0s0KybV^DOSU%tpF?alvkKb#p@*5{H?|nGP?UZDObc z!sb2ls~nJoX~>0i_DpAGWhud@j9W_8AbbdCS5;M=rPTDr;=ryA%IDJWZ4dq`_W7J? zn;ykJgFfU{1gO|J;skOuD#>SmOwePdne?jf?$B8MAcF z8OHgMj!fM+#!4>qx;;f+tU;A6EhEmg$loUE>p`)LmT#uu#gN6t#l60PVarQkHhDJf zKOBULe_(q`fC7z@b+f-dmDS&t>&&uG{~P8Avhjm3KYv79b&r4iiu4tz+s4HO56Oi+ zzQF)O>-m>hEKC{BcE{Q)Bb+SV*Cfse$>&e**!pPHserXkL`L!n%Ts=MC<5+zCD(^EHb?Tr1OSl%m)bsZ*A^!CAv@UJn*OfITRq$w}zbL^W zc3t&d?&kEkWt?p!!3oY4^^lXRYk%emcCTN#`A!HW*j_IxQtDTm!^E3+F!($?JdTcz zxyTef2)K@-m1q=-+tj9dPQ?}iO9ECf5cqEXZ&EE{f1sPSDxrH;+!aTGTFl6Y z^1}1`(a>g<$Mpqi_=;-KsRSxI-)3iU+ zo;C;k(wNGL_-2GI?U1afN>SRIj$K zE-?wom$2L0TciPXP>d*V+8R<4&ogJr)ZFhu0%BsPDQEa+YPz7k1J)Nv_u1Lm`nq9p zH&;6B25VS|*&SA^Tz+B=)TPualTY3FMNu?YlkPpX(@lU$od8A9U%galv7-N=N zMv!(>F2ZtIHzlK13`g(Tk&KZ!c)zzejP%`MLbp6yi#c1Rt{n#QVbpBAk=woz%v4Kw zrK=Tvh#7jdPt$50=F<0?s;c#QmH$=E+}?+Tg~0ru%Jy%HT-blQ4V+4rLNUvXBwCa| z{<~thPUdn#Lfyz31%KzR$52`p5JtydRa_i`{M#HHP+ahqGQd0{XBdL^VG@f;R$iW2 zbX_H*^BY}WE~EG-=9UWP@xTxbuqQI9}c(m#jO&_0}#6(9cLuEdw(%~#vxtN+3 z=I2voDyl+dj;G8y2TfD}3|n6>EG(=F-C`j|2Y`6E&Rj*c8&0mnltD|!sc8?Qtt-NM$^*3oR-yu5B69ssPeWrf<= z0mr|c6KEFv{6p_7&CQWv?5?-lfv4g8uCJXlh!l^Wo`}cCpgLMw>$5nq{f?Wlu^0s^ z?w+3VhH*?~>ZmaC^72)hQ7OhA9!(V$u^KUx<|a|sH#auc*0>?Ct4$3J1FZqoy()iZ zW~e_`%-T6R<}1u68J&ckoNa!OXB0@t$n}6N%HrqQo>aomGV>moKtO^B|cXM{jj@K@A!m@UX znFa!bj)76aK9G2|Adx?5i_zTH*4EVY&{=-pOpPCGzocp`DUbP#hK4&ik3pDcUR+F0 z8Afht5gukP+d~${8%~LGK+_O*N*+N@`2rh*j^5Qwrx?MTecSDMmZMjjGkW3*@jhww zm_5A}SltyES286pPY`EL(b3mmU0P~sYWn;4Z$Js_AbXf%QTJp)!P^nsB+9%=EAA3i zTU*;%d6N*-4Q!@BO&y*0z)s@hTgOyBK0XGJ_b^mIP%u|v7^CCFx>2{UE|sgh!f){y zPt1UOOQLeB+BtAN1chIQD&XtB@4~T*E)pC-t7K>rAx<_niY%9eaZn*a;H2C+81fST z31!`oXwhRCfo~ZE2*^QNWqJ_QjV$2m(ZR&O_fA(cwiR zWGWVMide8x4%0U&xNq4v+@&!VMX!%^s1* zRPx^hT7~&4Kk+#kX#+~$6UN-}L^!OBZk`VaAq0w2NR+9ovheMmoQwgV7vOJ_!6uN? z9JGCRN#?Y%va+&8PDjUQ{pAbdjndKYb@+YY-0JJ;0cQu9{U<`1BnCb{{tPbAYBL%E zJXMQ|iduYfb(J)B-r4E@TY)u;qX3q{b1k?AdUATITB63Ei5@K0+}td&CqKX@QkqfO z)HH;xmNaNGKs~}6&xsX|pnrC8fmPba=ck{eUFJY5vv+nDw~>y#E#w-5kt8@WJ`SM1 zbffPMm2MnJxk%T=e#w%P#cB-1U#1gBKN!Nu)6^JKC6tkl=38CK)&T06h<@x!wELzv4Cm-QKQEz&xyO?79l!C8B z;Kj*FOtDWN-f*`mNw(^x2$K6q7)7j;d74$EX+tE}kDg&DyvcjL6UkjRJnujOZT`^( z1?EM)h?ry@V^i63O04Adw}?AFZed}xz>T0RbjcagyjQ!h>OJ zvYg*58zuD#ysOBnHZD(u6^*3nAIn-N9_kPY!`h?;?)Pmciq<(qlx#mxzf`5RwzqTi zPb|kl6G8+leA>rN6K#Tf$b<51gX8kEAXtI_-Mzb_k35 zHb!Pm-%U8W_t^x{I5Nq`B`$}tgMJb%R$;Marfj4? zJ*?n{Q5Crn>FeKLKBE}QMkl1VFa4#dDdY{|d+;s!WD&4BE+|pk4g`5?Le{35vY|zW zTv5deT%$8(MoZ604>H(W8{4!7s-)vLl-LHGgvxIw_RbG`_qnms`c#8(S!p=aM?;C+ zNB&S^THWU!kkbXl8JB&sw752l6A`}xfyUO6pX;0J7msCLk53rY9Rx{Z8)@JVj7$L0 z=j~%)Tk2Qt3&nLFdr+W%YHrOLTHj0y0`u9gSt-hIECDj}6l@$Isq1NrXs|>X#P<9G zp~o=?=}F3Q2X^`@)f@A}AeYbUmXmG~;iY^QC2qtPx+$YV;@x@PFs)9>q`7V^_)gGN zYrq5%^0Q-2l{rN=|KQq#MI(+*Qj?se^9H%}6Fx=ufh9H}LFGCN^=#(%Q~)!LOlI?i zG$*o?*;MIOEN4Q~+gAa}hQ`>6O2QJvZ{cc2M3EtS7TP>+S{)h2h9@FRAg*Yoq=ck8 zw3!@z^Zij7Ihcb#GbZ&D11?s!8{R??)e$s}082$UQweqyr)z{JQFdT-ZqE1Sgq+Kt zJPeNRoOHnxj)$~El`hYXorkp7n;G&Of`Ab(EkrLx%OOi1ne!QSutxDC#?!&W?5Fki zg;-lRM9fbOBmP+N=)U=P`YR_Zvf~>9RAUB-cyCJ?) z9a|nEswHVErFvlha^y+78nzTjn43q{Km3KCq!uH}Sl{)6`Malr_0*)ig}zJC#iN+m za^Tah&xltsN5j)$*vDbqfOLLBZb-*3&yHXlA5X_f5-Xh%I+BW45~U$l!K+F2 zX+gXb%Coe9~T-?5SznXHiM5k3lYKL-N6Q?AEA4m{;~@FiNdb zhu07Hf7MHqi^aZM?d^wl!`jKNtVWHSa=fcw-DOYs?v}!RL2TKJgMi6F)g>b(5W@jE zEB*7gMPpgAH}y2!O)-K9foz-e4P^RABuT|y|a#sWkLPj{mj zZ1|>}jC|>>f0Xv!+x_O3YCwpd$zw4mAC2R-s$a~LWw(+px9A6yW8x?U_FuR1##!4s zH7HBLa4F5piZO;oDQ~EqeI7V{j7BA3mC3QJD8qLz=!OE)Vu%f$w;yDZB4t))nq|&w zjRyn;20GQKI9zp{sH8xaiLme=o`^Dw39F;k!(cj-$ccO7>{@l1xhR6J-8u2s zvN9_-x~1X-g#6+u>n*MwP9roqZGl50FbcS+CW*JJk0#)XfR76MR493Bi{{)p7fkLg zN;T@vhf0Z_t|)q6dYTd?9JZ&R~Qeo z)059CsGBe`m&6&7VJIh4I5?QCA~SgQI@)=E5A>1KD9!2fM09nXoa`JNa1iiC%Oh-a z(kb~H=-UGFHijF8NsAV(=}r()+p{SY#`(I|y}ZX9_$;ToqHgu`s1 zM`R;g1LV@LCVfwLck`#W_r#gC@ttC4*onih0O;E3ao`JUh1~%gjKPcu1bzl&0TD0^ z8%)o?`Qv}v7QpY04?Qq8l%O+7!T-{?_)iz{tH{@@0Cf6j06T1MZYCxsX8*mvzrVh& zUAD31PJeCK)?}=!sY#M65Nea7jGtdx`lVjF1c8|boP#74PfyRlPLY?Rw=pUuP5?h@ZS{6@lL3EE<6*n<5bS0JK$HRi!;0G(Sy&#QecZ3FuRmD;1OPo$ z+ybE8EG#T?i}UjU!~;|WIe>w=yEeqtUwX6x%f7;&Jq|2~1bE$U-l)oioj~;~C!v{{ z8Gygo;hrV{TgN1MdHJ*ZC-kMVGNyvJiGu(QEkK0xA2eQ2E1gX!BOxY+YExsey;9!~ zT8VS?(x!fL#GEsMv3YsS4;>!>vMtk=wE?A2FsKH7 zeV#hDKfgEUoSV(9b;YzAV8Z#6#S2z3y+%NVIu~iw%^KgeMER8QLJlWGjpZ*Qve9Y4 znm8!H5B}oApZPN!FmT)i#MD@S+t%x>XDWu?8nRCsO}N2F!PhJvyYLcUp;XCUp%~-! znbt3gKKb~vrv~XV<0~k)uZB)@7N6%TA(sa<8nv&M#`hX^`Wi;Jod9sN1!KAnFR<^i z7bc{eqEjpv#th3K-DCtMv^#wigcaM*CLCu||Fu?I>uu*k+!S6EV%wy7RKGD-!uamK z%qq$r#}b{nkT#g`6dztOggi^SF0WB{?0axBV5&ie_z2flMmECINiYjhi>B%KKc3xt z?K=@tc9@?pmrf(EiFCGqq`_taMW?_C8{@#EXBkv!1{psD3;4T;uBRZG!)1)zN%FDl zb@#Fe`n?}At*+JnFgAi^0WY+Y#udD%>6cs_2p$6 zCgzRqhTED;bE-mN?0aHY)`0E>lIJHXtZ>LWHh?~_Ju)+KI}fi992!ll7h+*c)FSYC zv&Xf;?MInamJFiM;6bqn5xK9*N58CpNqV97N>yTu)+kkBp-NUNW6FzGVTnR8z2H!l zZ8qUGKjR%)ojltaupNH3!TwF1QIU3pPIxA~IdbF{b4N)h$NdQtK6&VD)ruQ6SWJM_ zjKGdRQ-LfixYf-ds~I+S>Q^l5y}kFi2y@EjM{2-tY+APAB;2N)F57n4cdD~)Rxb_i zHoWX8pF5NVZ@gQh#)|DOegt?A&6H2OFKHA(yRW-Jj5Z7sr>3x7um)@Wyt&6xs9^TE z7pMV-O$*LA<@}-`F?vf<4|y9lfFTz!9~J-Mnc+dG=x`1Z z;oG9^tFM>BPTaCy#`E4rjUyf7Q}=-9=&D&UXGM^Uhlhm~c(-m0|9Ssk_`NLx7M|Ga`Lw<55rI{V zniRD9t^$4jXzS8l*Gl$d7dAT8wL@bR(aE;MBod1kp7{TiLU@b4$J%YQ_MQ0gBHf)k zE+L0vSUi<}F%p#59wcNI89&8xC%lB_%viiQ5Xjf)lI7M1Qb$d*PmM(6O(##^Q^PZ9 zYL`KWCj;M2$Dq^+i47nc-OvZ?9YXzI*-S%N z5SaPnO*%~8nCV(!eImvR#4zd*ie7r(=XoV!!LH@tO#V3FvGM%8TxZR=kTD{ljyz~G zRa3>{dU5&v#^CE1Rsi?f_rtd!Y}P2$8U}HrGih*OrypMwTP7L;9L>%EB5sQ&a9$+630wo%8+w^Up{`3AzD z?9?FN9+4)l8w*7N(rtOI=79Zd$7Y$341niX7S%FF)*>7O`U&wH!1`!n@1&-_KPSj?M&bD9~55Hu=e8&+k|~ zU1RfDAtCk|f}s)Q8^I>>?@`Ao+@i`Df2n-kMstY%F+_5M!~&)eXN2!cXHYOTir8In z7yfqt+Gwvtp)M)wJJ_^#4$=6slIS?=AG_1_qx|qlUI?aFs5jnJ^Dnr6lWjM0oRA$1t5MeJLxFYwg_joPiH&5yXGN8v!54U<88c`-&|H=MJ6g7iUeslfOl4 zTRokTPBY}=Fi1ZDD}W>=Mhqh9s1}dw^xh=_2U;{T_i=hZC>F=|@Np&Eg{ycFi=Nl- z2d|vfO((bs8&t4X63f{wW=d{!%!HfufC*}C6W!`8#uH&_pDj2teiwGnKl&uz3E)>B zjFd&e`Y6~Ee(+9*&)~%YVbov~evfWe)~JVHM@H2P-`^}mkL)H|ahd8d z<2(NAQWKmX)Z$2Ek+k&)ij?zaT=Nx^Rqy?x@=_b++>AX-vhl?9ws0%vO0TjOK875J zdWk>9`P8M?SzoiM;8}#Qge03ME+{4!^zbY#)}*g>H7^SW+NvokenI)MRZ0~6e9Z6 z?H)=LaF=yP8q2!%m|DI>g`RTChaT$at6ip^#ZSW*0(j^=#wl_IfUzvxCc+K{OXW|h zF%%@Ol^7=&-_57|tk(u7v5o*sBS1>ZNAt?1PLpWi;qlj~DvEG|tMZ&Q|13a!twKG- z76HSK9Ol1-gAn-t00?11!(fS7-c%}M{1*w9{|8t4eFP#LK>2;$e>Xlp4&Xun1?M-lgI~1?Sg{KOG`7G*x?9BaBGJQI4Gvo?tn1AVD)pgX3?5Uj6D@6 z9`K#iOACa7o(4E`y}i9&LKR^CsDgq5C;l?9w6rvU$F?1`ya|mud?$yyo}XL88g$EZ zb-2@yx3;K>(WNQlH5t_z@j^igA3hu(9Tf{L2Zjj<2{DM1Lm=_G%thc_B^e2z6tvyA z2?%9>yaqB32ifGHsKl%p4GoR=nPV3h7eHELVi|y;1P1J>+}zv;*G&iMnVGX};B9+A zHV1o@oO`s&5ruUEiJHT}KtT6D)~hH2fBpKEG7lfG)dm9JCq6#?@#Dt_F&1>wY5hJPff;8AbB zS4mTg%M!idRw==e9P`CZ>X==!;ugz3ydEl;dzW}uF}(eI!Ky|nI7GWl>TrJ@ zO)DU~DsaIH5G=RwfDiZVAe}$H0pcnJQ^zit@P>MOfwW^L>>!Yb0IBNJgrv6}YLcdy zI5id@F}i?4k!tDeP-6q)KW_wjJ0R*Vi93+jpn98UvD%+H?nxKt z&`69Sl0Iv~&bHUVD#IqDht{fgbR@nHhjY^73_=wH!Y%=yxgp)>ZYD^D*j*kyfi^8*Gx%-1CXxZ7TN6U?tM#{u~=ZPi*DE>HF ze?_olQtHEUg4cBB7qk}UN5#X!$cuB5bE5Cy>g@@XmF>PRi7eq}3hUx@Dqxoz$DL|~ z^#^r-5Lgw|OZdLZ9{U6_u9bX9$_#~`We?z1w(tW$7RY9)AG-tuBy%J4geC$vr zkUZKY`!@WgL~Uv}emuonWV%MXj3&0iWgxIb&5{-Rt8VX7p=dgJo*$;10OrLJqhpoh z-_q0nyTbg3>SPejLke=+H1yM-f&XtacK_t?){&+;nNk%P0>Po(5|qki>eq&iy5H8F z_&CI#!*konA9Kzt!z#_Bb)zb!RrXYcoy*3*la{qo`Iu}+%0P!a1&Ctp zj!QF;-(r`kUf@hs00<5lC{UE(&!Mw3FR=Y%D6+@jQK>QDrZQoL?}-EcLpSj9HmqnV zpc07Z#yt#KaeD&pm9Our&EVhiLnkPv`1nsk|s<|Ew%Ue3EJ3XD4QGMMH zgsuQo!ae{{>m{2pOF-Ut@SM*C!W$|!(GP^%iv_lRi;2T;UWilyraQ<%d8l_{RY%gi z{POU?@a!f)I;cR>#o~Mfd;%lhaDRV4;Dwc_CF~khdu@+Uo0VK%I*R`pitjV{b?1o+yT#1sw`P7_w4>&tMvKH?vkhqS~u^Bl8$PvQ$zrvA`Y%o zEG3F19bIur4w0m?5~i|*5~p)PZXQKgNLWBf2%YFzfGZ}>=dHEEjLyKsyiy0BGy5(1 zO9!>Qbx)8xyr=i-`0I9~U%O+_>8%qe59koBt%8N>#>U2sO79f%8ya}kFV%pXy86Y= z@87>uQwcJ3DaFg}fiM=wS=!O!Xo}0mwRguO?Cm){07c9_O* z4s;^ zefsoCQ#0&KY)p)b4>c7?z1xOu=|>-mIp9T-l92)13h~Nb&fV2D6eTYn5fL$LV{9yj z@iUO*jE+VdyRjJUkRBNwjduWJVB|LdZ53##;psVToJ$kN+Sz&)Jn_f+syOzjk-by1 zv%OWXPmyV9guq^or+75@4Uc?qcqqE^_z3J{zA)KLn&Z>c%dz?FCwXb<{+St^B;YvJ zyoWICd|;I!GHTf8Ui==5}TaZyJ{r<(vltZ)>v<#0bcI}0>fU86t_ z-b}@*6Tmh`_XYgylvE=74~$|h-9W1ce0_O&)Sn|~Up+kdnHGbMcLnLv*rc+$F_hO1 zh(##HZ#v_`p3?6LrxeM;l>-%vsJ_VU05&ni5U^l=1%J=TFbM$p$!w%903pQ5g^r2% z@!;TK-d}z#3Ihi9i|5b47E+>f0@R>J#&R=Wm0uMB934_y#1u#;zqhJ>{}#K<%3v5H z01gpg#Wyf&qmm8ait?H4Sj4f1BaOsiYyVVZ7=XErlFHXEi!pwW|3qlE=4@fHKi6-^ zON>SE8zWk(d+yKNTz^_|S=rk|Tz+{;Ny)A!eHs*qIGn16Mv7H85IpSblgjOr)H3Gd z^aod)(P+ZjiD@fbns|CP|M($c#Wld~%t2+{<|zc10@FjyZSH;$5v-NGUw^{Y^;Kuj$XMuduJm{&u`im&S4QvL<)KE6b%4 zi4uk|D@1nAEF!G)6Yn4rO7k;4WD_##tgJX-PGvT1F34wu&Y6LZ9?uDx=vJ6hBQi!h z6f>*zg@aVv^$dgW740WKZ5~^8D-K#X8r<@U%cD8lu=#htTsB&;jR6%*)xFK2)wT&t zaTTr=jNO^=Ng&PeQc|y$HS#KHsBSWOZcZa@NbBt)OT@6J&j4Uio^4iq%-sM$V-{T2 z>dH#m<(=9u0e*gl+bo5TA1`45sqvokzRH{K1V|=Oo&LZwdh2x&-R4#f9Pz>}An=+A z&qsL|g7i!0Y;DwJ{EXn;#H>UTBig6@jLggeLvYcaaI5k+DcQ$|2Wpo2j__d8dV2t4l>`2FHoW^s)LEN$F9vTsg~7B4WFPdTT&)*zo;_tvSr#DG1Iw3 zz8D&IcE$0;fA~dG0ibZFq`@DYFd%BFud3R((Pz|_2U81PX8=xK#)WiM3W$;@{GrqF zgZ;bjdD$)JOs-4b{{{AwM{$b|`p-{^9kxC`Sr`ByO~CT=ClDn6l^3P+r! z_nX^ehP+7W+O4k}8v*=7e^d2tVnM!qp{@8#PrNu+gwi#e@1gR1;DLR2lvo<^Jx^Tf z>f3G1IXR0cn#PaPUh#y{2ghzGjfqcfL*}p{bz;VQMk+w=eL%m;rA01ax`VRC^zO?I z4v$YMLx++mU1G*3Zh9Wb2WL*y7TFwYwYrdwZyyyD!ajjWKj2Xpvd0vMV4^u=u+Ctv zmt?5uQdHtux^hNV$}xy}Z~p?oe3~tYRPM=uIRDKyB3AApY{+Z&K=LQ;pHPR$X$J0d zS~S+6pq`JbAwfMTPBJon6x7rm5G*VMVbF%8#QH_;Qy-G4iE|bFBbWBd3y$Hd=nPB=ka(%_g&0 zfgU7-!sVmZ9xY(N(kaGy>$LbR9>OsvoPF_bTE;SHsw1aNT0RgWxn+Dho#F^1qTj!? zlu=G2LBwzIej}INK(-QM0F5>moPM)bmLFP$b|TI0;f)OBK(%bI#2TJ%KU(nRWA^az zyIFlFp@3e2ESRecbZ=w1X+F-(85qk9SS`-Jc}iQ5qEt9g;{27owZHOKPnyKA#(#Ty zrC{~vX|S(vL?Q9USDN=OYyM#S zlQ-fJN&)5kZRzVs6lUqf595{<0v z#2l;wDYwRyb0z6*Ejg`fm}j*>#{Kp?=&xfg7(O|MJZ#vA;(vc%aL7qsL1X~^;;oeK zPx^(V-XplSfM=r5?Hn*Wkt44ZXcJ&Rl>jx(`>@=Z_#S3_qN8TJ{R#nf;=F;8nfYMJ z6#=c^_X;e>|G=H@TPGc#;(WS1AiJJqzvSK>rKU<3_F3w&zr!gLljiv#fT-*1pLf$C z@Fa8aQi&nhCL}8!-S4j2Q`ciz>xI%w6Zg(tTwUAY1AB~tsK-4SJCP9Wr0*3vWd=5E z-pa&MQP8X8WR>qB)pL1Tk9}v^OA&x$s;fDYkeNE;rolaw=6Fkf<-X;!t3_YF_oyI1 zLue`ShI&@yGuggS7be~q4Tcj^=xXWd{Si&OV{ExIjmh~vcF2)>88RPrDH=36T*B}S zV`@UidkN`V``$TF)7n}l^NRRJH`OjiT5Kl;S}8AzK_#TDdf*8Unqg$dLEzx)`}0TL z@jJDy6YX13C_4I4S56o;MxM#>i&B$ex_s$6K?qY+>l`Bu9<9O0PR>o~FMlhTBV#&5 z-e#RAN*4ET^2(~0MRQJ5ZZi_E%dtfN@JjIkU{KzKvCTScWvaEoI}7SYbZA_I4p~P| zHw)Wr%LhKhn35i+KkwgPI}2UVxhyYl9B)b4k@C2KCJ@&yQV8Zzzh+*%RRsO~M9#T1 zGzv6e5_&=S<5*UU9?F1z^PUN9%MXT9M2+q3b6Mj9RijWfz}Z1mE?I8eXjLW|dbqnQ zPHBqz2m{60S5MtScGg^CZ&D&!bI0Pq61_rr9f%#K$LXYNn%!>e<;l$q&?!8;O7%hx z+gV+suf{LTr8pJy4sRNFQiT6I!ub6hVz4L2F8!0|F9=JaIb}xZ{$`LHu#-{0JGDGe z(LGLGjD&nsiob)x=5KA(XCX(Ye$?S+fxAM4s>I|*Fj$`*>c#25R2Gd3zkWH5QPvLc zVg-vs-fI|qHG4b%&ZBpzcD@ni{W~4kHRh$@vad3Uk8A!Au>e94b7Pw=8?_<(UE$H zV{qYya=N%}_6hR&cYP!?bI;nVcSVi^s-u7NO&>_W^HRKT0>gT{g4b0gP9CDmSt;^w z-|h2bzFu{rO{p4&G|Ie@pG)B%Ubc{$qb6eM%2d{yYrWe_m6BQZ;E*?tk0ti=&*s%@ z`+>)}gthRP0tx-x9a%`j_M?{XO`xKei%TDp%aum|j7?TVzJ!sGqW4IY;km?D8ASv! zb~b&_Fs1Vk+j4^1=0nJ5z*x{0H#;*Qf02gGx6)MacN41YUO%jvptei?!L>fW;G;|5 zwK@j3x!cVx*5Z>luJp;+v%<@wT1I^@tc}G(-QO!DSM6jKBEl=(L_k{sS?o6pF|AFm zo2O&8Puu^=<9(h-|Gi}xQo?h|QQ+nJ*Zn6<0d_OJaehjEi3+Q@bAkiYK6&Xvq=Xj5 z*s;?~kfjBf+5ZnsQ!`@50xdcve;(dL&EJM!?5PA{(;Bt0psoDP)~`kbdJb|wU^h~G zU3xI2oGkWi6eUpPyuv=$ZBIJ=>2=y0eL&%vRj$EJ!qAtiHPClkG#mUnO8d2lz7=oR zZH>Og+w1tVmg^4n3|F>71xuS4#js~}M0iEAfgg@Q+>#L)Yk!P&n=BgvoH<1(os62X zgU%8B2J!j#i0ZQba0(g&iABqt6Kn$IQN1;0srxE}!9SZl5bPXbEfl4#GI}g=iJJt> z=OP^mqp$%UdP+74>X5J=NIaAhc*ZD928Y(RpM9rJMI$G?B^zrDi$ ze9$Ko3NRQzNwl@GdGWeSme>+X03=qHs4@Rk5_YoGpoGvH{T?wm zGLJ3~RTQ5x0%ZdglkBeHHqhUY*WG4Gav=O3&*A0c_=w?-@3?5N*m=7D;xS-$-3=L4 zSy@{Hx|wzv2$L6>x)Bz}2o{rIOc_p3PggJHf*?b7&d<+ZUb3P#9UAi{&1<#46g2~o zYtSTKCWt)@!`s_CRUzcCJ}Ju3)YR13`Fec3>+Y`M2pfpwhMQtz>XB!U2Wn|)QH%f+ zCp~t&3bu{S&G6N2ZOl-VDmCVm>3v|RNu*1L&e7fdO`lD@i<;=1F8^Bp_n~s;3kG@wwZXak8A`42dZG#?%znM#s?+V>ys_69PD?0jpC+Zf>qz zfrF=~4joPpDS7&+QOEwiMH~JrA}K)|;_2yW&p9@^G(eW}D3hGc%=!&jm1v+~MMcHm z_p#mU#*(E6Xi6h=vVMR4fMXYb*Ga=Av-iLvYv>n0FG9R6iOBBby) z7>m}QEvMLkfS3f(j>A8&2?#J60L@t0E?t2}jSA4Vz3_d){t<3@75B>taRlRKD!~cg zG#UR$UiYR>PEPtN_-_W63#9!7XpCF|)@SlqcpK0O3Ysn5+%kTlM#1hd zeWOthN$XGPNF`~dp(ntL4#URAcAM?pce>!wr8WiwTDq+*2GgZV2@vo1Ps2F(c6TSR zzV7XnESUrM_xmoq_x#fnKnFG^g0oQB;`xCbghLN^k8$t!V=w^&M_E%80hI_9wW?kj z6_E+yJ)&r5-;|W52~$mFjh6Zo?1?ytxjR|jsNU6WRqQ5f=@UDj+1N;>(EZ}7kZ1%5?gMlR%a8@ju&QwG~EdjFBso8Dq?W*b<(j$xr-=FS$eaHOzm2|U5 zP1~8OrV5xFwaZ)#@e*ssyS9$2D@W1lyqIG4&W8km$v*<|zT>$fmv2yD@5)Q5j9#Tr z@!ZNJWO4lKCqOg-2b}Q3AdVU_keVJ!E!#;hivp5WVUC&zBSrR zXt%j=*|3gpSi#cje6){1<+!+j6S5M@{%Y5S116pa1kBX*)6o2s@x# z3XpO{5x)Y5xz{K@e+^LKMz{#G<8qAv+P%aPs;FdSE)gs9%Xz7 zoV)DHu?#D4rqUWIJqgi6w~!i~)|?wn8b?MOy0*99rkJxr4g6hz18GSaRL4#je)nr2 z%cC_5zO&=h90~qC5@U_*VEeLv*kseE(%BbnBjzIK;lt#}{>>x7md8P84xyHQs(e}$ z#Y+P0NM0D^VkPt%i&uKU@mCM=F!&dR;mFd;%1~n_3dm))<*!;FFyXlfr_j-FfbjXR z6}L62&d6s!_EhjJl!qOjK1OdsD&OAO88=#rCp|i2F;kJ}C8Gu%$$sAo@;R=zW$^yq zeL`Bvnaz&|NrIIX)62^%j$rLTlt9(LKQq)uX|Hav%o?y5a01ZtFqD>;52f`&3|%t_uc6nvFb{RITQOg8{i7062e368f^yx{DUFEBxJf^KP-7Y zQlk5uJm>=aovwao2Q*E>l6gTL7`v9UeD={NC5|yL;8Dm-5`=L(0Q8NvWnjPpaGq31 zHi)ttV2klSPH6sFj6v6&+kHrq_HOLbWPCP0)l;7d*?@_1-GzUE5sGNIdedZIF{?nY zxEQ`^&AB2KT~A|L(+54`-KVRm?F;~YEPy32RhHA(9J$pY!E&-62qo`t_a&NwA|vQ! zGWOdWRegV5&5Dt4451i4_bP#rPktj!`H;(T4^{(t7dop1c8Wy2-%w98N^ z6sDa%YX}%X`||JYF7KCw1MGkNJZLAYRl@20&1nDIYVqb)DdC3+ySpZ_t$P;jumdOI zvK6wU$_U1@Coeyj}HGIBz%~_(9Si(F&fx^mrVP=rT>4uh9wKK(Qq~=H0SJy zzkh3+IJ|u^DUTN^S*A_DNG^LET`?B9#WL68)(@wu_9P~)<8 z?b2ZPuLO>&uBJTgZG4N_w_nX#GMwk?n@V=BrCer8IJbjln=R?JKF>Yz7}AEX*I3u< zP)NL}WZit-^qD4f>1%yx(BPPvlK47i(^PH0N?0dt`R7kWqDx!s*Sl>th)_~`+Y?rI4zH~Za6)WbIW}$ z^IzVFu}%gyp)DJB{lbgns=X2PmQSmbP2VZ7o+`BdOLN0id&AWfC>TYeuB0>*2=qjB z@h`NZ-%jZ<1jfaE#!qk8Z#}aV1*KCG!g^GX<`lXS95{+un9F_=g2z9-RVH6*)}84$A`kVKaX5{<)sgd~ZwQk7a4+*^Gxt!-8e4 zy1KflnOVxWZzs_Qw~vzCVvh=jp|I7b2I$_z-1U;&_?H@dEj^gvgO@*$$JU4as(I$3 zQUbC4%F8zj3VADmnYXrjY7OQL2lP{R^?evV8El-eR^D}lJV=4re+$i71>#M#vH%Se z7(fDMPf1CExm)#-@bGW|yaEQz?C!=!mrXqe8X7?Im(!_-3u4@{YWK+3P}dPD$4I)Y zaS{zt*yr4SejfeC;g&xz|1Cek`8gx=k3nt! z(LT0{{lM0v}xE#{rfr5W7 z>^n(GNfj0rz6ksQusKdB;LCe{nAY)Z9tb=*Qi z<&0bVhb1qA?fON4OOC-;x(SOGqJQ++LP<>nuiSn$d2)&&nviD$jse7kC<*cZ_NngM z7nlW66KfH~FUg=>SpRRIO;&jj;lKn`4IPz|9hze~a0M~LCN*-jFW>bqKPk>;YE%#v zCCaJXPu@z;HSaFpu6XZeoo1Y7Jkt629G;x~nV1*=n)_=NE-o(cPYHS6M2!L3tL;() z8xvDmVIfEzHN36O$Ii~q(2#;yxCt0l9!_CNk)giNP}k9UT<=C|61TKuuzKDZO+N|; zoP)Tlt1H%NQCI#ngb_~tWSl-kH{=hxF+|j%?mKTKlVq_i9sWlpR~Z!L*Y?2$B$lqF zm+qDZr8}iWX{3=xI;BgxJ48ZC8tLwkM(I$x8-36J{q#KZKF^1D=HA(v-JP8?_kGT} z&h@L_kks)l#?TZCgJ`TPrf;rSUK(DO+LS27B{@}bk@QZMi3O4g1yUm}^vJ)_j8;FZ z3UUf>TTmTr3-SpChMg&&qz)Iw$Js5_p{+4$i)*N;s5m0pT{|8w)tlBd6%_?HJh%VZ zQt$uwPgWK==_(+0_}notq5=W}_V)IMh7_g=#lZwr`T+U>5nvX&I8?M&FtSItWo)~@)Za|tw>2@J$a?!d|oocR{=ny4?Og~b|j z1{x91nEyoQt}2*F=gFCBS^cuU9^FdYD<=s_k5C~*KDC6@;*IM^3jSPlBz#qzc6GWr zV5F0KeY~1lj$`%FYW?B%Tp^*v}Dt>|F{HsMQL(t^AdT~k!cD{bD0C@?Y1!I2SO9-g3npdgt93f+s7 zlUI%Q6e)qqEYF`)rqY_Oy|xjQHHBlK$Yxbb29OX#f$j5T?Bp$&IDp_g`D7=moTpCi z$Gz}a{fTq~joeZ~bxwgSFfrs$gjrZm8~G)c)n|ug=kaCLEvCtzg)R2U!*iIqAvZ0k z>?++)zBy}}bw3(pvS8fV*MGe9*JL0xibd;sw{F|IY{T&P55hQMRe-zC`3~k5ASsPi zJVF@Na^Q^$ii$zA!otF;%F2$H{Cs?FM?ZwJY8x6jn3&f5_T$sin!K;=`S|#zL%~{8 zCV|1RTsHeL!IP)cSZ;KXyS_c&g~!08K7gNCj%9>+NH&sEQiism;$c%g4=$>!n^{;$ zL(#-SF+W;v{Mf%~z{bwLs0R`ZMCAdgg%+BNvskmBuK;8&LC6?Q3BVOwO=;Z)PMf8I`5OD4g6HCKMuKp^hW* zy`LESv4c? zGn|8^9CR449$@>k-Pe1zOdA2)F56r}GCxifc_hhrV=YVh?CS6hFE4L_<+lw98JUpe zWI~6SxYZ8-zlKL=h(oBT-`S7A9@j9)kK z)^knYuZQ{L&tspQ-FAtvQs>eZ$K|Pa5#;a+(rpR9%Zk)Fs z?Yhg#%08oh)fJZvIb~*Mo(Y*3U+L52*5Z>R@z3`)pQNcvxJzAcT|2x#=5BckLq0||hnBq1Y^a+`V4&WYEl?@}L7o5anQ zl$2O1DMeL0iTAMk+2Xd`@XpD}Nq_sCnhSNGtBYuk9)x1^;um3U4 zvqS)gnHznAi(i!LXTWir1v9DglOQ`vsx77YE9*`9f*Y<8&m{6n%uO9(5<9zrhK>ePs85Fo(~XL{27|S zuuYx0CrbA#9a!`H4G-t{$J&kM>&V+L;$P6WBiWM;O8g8hM+#;ULRb^720Rot=x!3U+7pP!~M~m5r{$?@?GeQ3Ubn)2H(4>G_qdts>F) zpghgUP{Rn7g)tJdxmBc)Q~J+Y97O92kAh#5&sH=!6V!iNJ_&7hp@q~rovd}$)NpTO zU8vbE^krc|xkzQ6i%m{XZ|HEXEkmJDM}%d`%ebpFbyXSrf$3pT6DIZTs)FqDC_f^e zd`BhLG6*CN{=JqE92~s5R#nc8DN5mja2#fBN^EzzH=Bm=eojNT4+fMg&;X>-oY|(% zJ`D|Id3A=+?R@x1-g62V4==AdW57sy_o=ixo1JuZ8G*Zy_{3KGlO#1}9!O8NhYJ_#up zkYictd35p*FYrJ+^E$rf4SylJD}Hi+B{DE@`;bHy&Y0*gSvd9T7Q44^J2)Chxok6J zp*Q|Ru$ux(acHLlI2Ho{2o~TZO1XOt?WFPfh2jWgX#YLy?O!`yM|^H@wPzyz=l1sB z3|0s@J-H-UVYfcO=@4a7KFbqYIAwK93%o)vOXbF5#q^RBPDwbfP>B(!n=SX{*I@f;c4Qa_?;)YYE# zIJmwag*=S>Z446=qf#VeSi~VF6F}qh-oKj6;u|jtc)X8BEu`y+J;yMrNRk%X4INC ze6E@ZaEYO};Arwv`|{x604Q1Y6-Ep`nS$(wQHYN_6f2CDG{)~y*}7{u&w2@rfr+36 zoUuJU7nhe^n)Tne`mSgXTwU?ALfS<_CG&yJ2Iy7iby0+pEzP(x$K2iBLC66PDv+bf z)75r#>Ih08X6jUgHyO?_T6sFCU(IWF2dP> zsYq7b2BCD|fWN*jVV}noDIWx@u5ESn_j!1G3^h~*RGr`MCkJ*tCXC@+V{?-bO#YW_ z@&18K^fIsHO+$+7W0+WjC5hgy+gS8eBuVyG^#2erD)R1FZe#uJ<%bdFGM?3!wfoy+ z)qQ6aJJbY>HoORz#F#dn_02!`C3TEGEV7?J6xR6K3WwdUyu(&HN6y!>m&U#?TWh4^)m zEpf;y&9KVh87UPN72Pj!xH=O7czOey)XbX3@Sgxsn%TJYit00cMq13xks1}eh!~ipM`RNpYBg47j>lihwA3 z*2bpeuUzfxFZYjzE!^Z-Kuemw>oU3v_3P+ZJ=XjI)QHRj!#ItG34UL6677LVtXUrm z{G%FQ55@4lK&Fb~B^@3b%M)M*^bl1=oAhc^)r0?L6^z{nJjQ$PHbW&NiIx(?HbaNT zWrYqWL2@RalH1+$W~Rt#NYdtOHX?Pj(E!eCgtYZ!mPueZOdNviBAy8LH-Z78hop?q z6G6VUl32X~tjy~#L{W$*^=b%)G!}7PCkShwVF<=3|8^OUKns|J$zz?HN1d`3?LcTu z)8?AW7;s9p{5-OHw&B@6zhA=^C4#lm_=Fv``_UXlOT4S~MYpf7%B~Tv40pP+Dg%B6 z`OWI6qbTKXc%j!LqqjSD!fWz=rysje4v9D3oSIUY5;(y!e9{g|m@?0hFzaWg*XD5Q z1yE$Ar8K?>6u>n``!u>FdKFx82pLc5Cwxyf=)dJeIX6#E9b1ZF_2+Vu>|UIQE#|yp zW1tcC>>bKqHVq%x6rS036$aGJ*cHf61Q6jrA1^E~e@~7CNjBLv;j)EUPraUnmY1{k zaJgRn6BQW~V~v-Mg=(eL(lfx^y~6!VaK5v%^EjUlCE>EhP=IrF8Q=+?{8z7{SpxcVlEAcjI@pAR_wEiP;{8B*Y zG=n}-0oSSZCpn!RxfD%2xQ~FN0>L7{%L!bkEshzA#Tka5+)FP7Lb1ZqiChVk-H!$3 z7X(qZPd)DL?~5zJ^86EDn!aL$k8428&kh8SoE#j^anE0d+Gz4mc%G4iD3~FI zg@r~+Jy|qf^r5c8K+MZQa~EOt_U&6hxmj7s^WwypmX?B~8Ri0AQ}tOJkj3*JXn%nt z4&@Pao_BY5z!&;OXA`vxU7)jo^28qp(kYDcUrieSQcpTl3n1^izA7MK@BKeO)SFht z;*Dw@j#P?wfI!U#N^#K6<>ajV{0UsNSQuW`U{ibd4p?(R(u;tBn25+5L&KcxY%w7r zr-w}7n{{-|bFc;^q_s6OIhII;fxiAP+Y32Bt5(k1#BzcYb~}Ar3rPD^Ezuje;Q;&d z@Nne({^RHGka3Hz7E)|PAPvaF+xy-sT$*OqX0}4)f88Jep3cpEu_%!yUXry zwnvJppvZ*BlNT315CBz9LNhgn(@!N2C{xSGOQJ}Uz~o6xoH51DBAKeaeZ-@AWH)zxgLHqN*x2ouk7;@PJsz0G<~a71h|#pbi3} zfXJD3z_<$BiScnP9&9xwr4QJ{=z>;;hK3FfoM(%RdLAB42YBKLuqQH}@_v4P?(U6u zh$jZ4Tq|O9bf7Lu>zP;0I6cvDf z4WkF2Pfn_vEi5dcQY8@rBogxE2`F1{U+L<~O%mP$@u4gbunsvoImKH7cAL3GTyVf5 zjk5=+SpfG9PITtoBO@68s6B7xBhRm|cU3TDXJ=-@N9C~4(KFK1of5m~1K!}b_$}g) zkPO9d4mhU(!%lsDeN$5n0=D?_;$lR~iR?<;r3WQ1(0+mGT+74HKL`GD78K($upSEv zXfzN-(_#RqGK^k?%WrRI2gf%`Oh^FtJ&6!B*+bBNM?1UdfrR(L8lpg`DWL@@G$>mC zFmoLGf*;7f8WrD}o_=W_1md2O*Z22Xr5b3>V5`C3^6i+|*hYtjz!+sfDpgio+~m|$ zK6wC5Q(2j!5jNu1ft&ozDA3Ldjj{~?0$_szvxSeZZ*o!+5()}PX#xRu>vOX7vV^Hw zS!{MlNCszVwI(1hae@{`tN8=O#==67$uGD5=QXX<>( zsi~|b;>jW0cdeZ+cK9Tk3T1$79<0`7q=qXH5fH$mqoa*i?(SOh@ph`G9;q(%34#r8 zduKLg_TRr|p?NLt8=A5-C6+*-l)^G>{)4m&4{VT41dUSNAd@k@#G4H!|mOy3r8p*65z`0OiEQ)Rcy-Y^W95ZFQ24LwC;fOytB439Dkp#D;rGfZWt(q*xI(+Hf zotloKV*F zhe{?tb9DFwrI2%xJLl2BY`Lx*sSfw+jCwvQDU#{}R5P4<<&-Q#(rTnTf0|1BUYY@& z9?-`jm-gBK_)L`Kr0odBJA6bdmgP2+mF@1Jc**rmhqRQ%bN@d+09Uo0ugreozp_pm z6PVazpaZ-8^Vm98JA_cuJ-K|3S#3E%>F=qck(fpwoY3xbn?OPNb!!Y6_W3_f{IWU6dmaKj+ANk&On8m{MRw+cgl>g@(=fhvtZN!iX^ryZ*Tc{905sQ8W7 zwntLm1>jdvVaV|)b#XF*i0YlCgu_5I+VVY0qQ}g1zJWuX(U$4iz`WEI?ZsRume)a2ozvdFAJ=`OjuHRLe>iz1<2dSPF z^+!^VOO_fBWOLBJ>>oHIof9JqqVt)CVgKjNgkn>|Tn`$kr2rSuxbPpy}pXDx^1# zyC+4blo55Yty^W-tXztkQ5?TN)Ak z^rNR59>^?C+UxWZQ)dr5U#KxF6HD)&DwNYc03aNxOpf~2U3%%(hbl)Mz95beqY+oNi@oSn2VBou+Q2Xhttzy_Vbw zaCwP264vHb$deGM;25FLe>-{V)8S_wju|M7mMd(VNgR|2<_)9%?)2x^b-}%bAhb7Z zIB{u5;H@&e3^(DeboyIs*3NL*`*1O)9*;V}K-@y#1<+T}{rVsnacnT{gM!8yOsIo$ zamIl}_dy4HjwO}D;EZY$lbIl_C01$=>g*!`O>^{WC#(-Y)z)KpU6Y%>?xsy+7?>*0 zE0}a&>$a~GmcHoq2F_{iY$d-`fif@8#ET=0tz-*nvnAD+${xxmm^4fovK}2rmjR=5 zh{_+ii_|9>)QM>yT=};Ccz=xvA?NSra$;JJcn33Y3C_XJK%gBPqxP@BY@#+hPgh8p zff+yWRt~0b>;{ai$Em*iCc*M0B28K?x>xH1v?qRPUo)WpmucaSIcL|yJsDmqr_mht zH>8*O!sSn30eUpDPQBLKj9S%=1A62)FHyrCR>{WAGKK6(45OieKRWMP^9p@2d90A(igJ*DNQ77#W&5KKfjwz~$s{is@bRb|-Qhkso{L*%lu0dQ_{F_-(f) zvh#~IW&7CXf;eG^NBX+J5d#p3_3$qwmG|t>6vtx=3LIOqO5L5+v1XTbwuF-UO=B2+z-j-hV6V7pHTL))hbAvK{|&Fuk1S6K63PE4UmU z$jI=NaI)^(30t;UH*4AitT)4Te=&i`7sgK?I$A9?y(-q9m#fjBiPEH27y4(4PpbD$ zOX~9%OdLKDj}v3^ND84h?(Q-68xEdNE~ZIS`%;ceRI^{dG~2Xs*MnB? zgsr}#6Bup-eN93!o;EB{*f-4ur>tt*hZf;L*v;M( zo-*65w*M4wZQ_=;awEN?Hw(9dsm*dxVelTQ^OGsr>>daR&FuB0N!fVwcf(eii~2i9 z2n28-TG_UW_V4uRavZ}qbMqhlUXV-7vG*RpQHONu0eInq1g$|tFpbqMY)jV zG~ofojD4yp{`{BxL)lTYsWRVG8c|V#%ScBWYj9Fa+0#^%y#@{Usp;6@w~4Yf=Fd=~ zekL=!)_f6KOSy2m`2D>EVC>dt?&&l6PrlWe`iQCHL!=?8`o?_TD@-h z+)gxar1J4#adF+1_sL++HGm3KN6Y_ z9WA>Z-8AVUL!DpQx%M9zF4j^QNE2E>f;B^2mrT=G#9U{-sAiwr<#)07eEI_+Dm zbqf_2nnCOnmR>(jG#RReRG0=>zKZmc(fH@3_Jv4>L`oxxo8bTdra>U{pDx=qY_8m% V$2%3)7ytC*3NotFm6FCm{{uK`h!X$+ literal 25303 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 diff --git a/tests/typ/layout/par-bidi.typ b/tests/typ/layout/par-bidi.typ index f708df6a8..edbd75e16 100644 --- a/tests/typ/layout/par-bidi.typ +++ b/tests/typ/layout/par-bidi.typ @@ -47,6 +47,13 @@ Lריווח #h(1cm) R // Test whether L1 whitespace resetting destroys stuff. الغالب #h(70pt) ن#" "ة +--- +// Test explicit dir +#set text(dir: rtl) +#text("8:00 - 9:00",dir:ltr) בבוקר +#linebreak() +ב #text("12:00 - 13:00",dir:ltr) בצהריים + --- // Test setting a vertical direction. // Ref: false