From 9a133e82e9fc419a30c8d8ca9b44fb52e28e7495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=85=9C?= <1871263099@qq.com> Date: Sat, 3 Oct 2026 17:12:04 +0800 Subject: [PATCH] feat: drag account groups and separate grouped card rows --- apps/api/test/update.test.ts | 11 ++ apps/web/src/App.tsx | 161 +++++++++++++------------- apps/web/src/GroupOrderList.tsx | 147 +++++++++++++++++++++++ apps/web/src/group-order.ts | 9 ++ apps/web/src/locales/en.json | 6 +- apps/web/src/locales/zh-Hant.json | 6 +- apps/web/src/style.css | 78 +++++++++++-- docs/acceptance.md | 4 + docs/account-group-rows-preview.png | Bin 0 -> 62880 bytes docs/group-drag-preview.png | Bin 0 -> 34068 bytes docs/update-group-drag-2026-10-03.md | 26 +++++ docs/update-group-order-2026-10-03.md | 2 + update.md | 4 + 13 files changed, 360 insertions(+), 94 deletions(-) create mode 100644 apps/web/src/GroupOrderList.tsx create mode 100644 docs/account-group-rows-preview.png create mode 100644 docs/group-drag-preview.png create mode 100644 docs/update-group-drag-2026-10-03.md diff --git a/apps/api/test/update.test.ts b/apps/api/test/update.test.ts index 8ebd59b..77bb8ad 100644 --- a/apps/api/test/update.test.ts +++ b/apps/api/test/update.test.ts @@ -432,3 +432,14 @@ test('group order keeps visible subsets stable and distinguishes unnamed and nam assert.deepEqual(orderedGroups(['日常'], ['理财', '', '日常']), ['日常']); assert.deepEqual(mergeGroupOrder(['日常', '理财'], ['理财', '隐藏']), ['日常', '理财', '隐藏']); }); + +test('drag insertion moves groups without swapping neighbours, mutating input or crossing bounds', async () => { + const { moveGroup } = await import('../../web/src/group-order'); + const original = ['日常', '', '消费', '理财']; + assert.deepEqual(moveGroup(original, 3, 0), ['理财', '日常', '', '消费']); + assert.deepEqual(moveGroup(original, 0, 3), ['', '消费', '理财', '日常']); + assert.deepEqual(original, ['日常', '', '消费', '理财']); + assert.equal(moveGroup(original, 0, -1), original); + assert.equal(moveGroup(original, 3, 4), original); + assert.equal(moveGroup(original, 2, 2), original); +}); diff --git a/apps/web/src/App.tsx b/apps/web/src/App.tsx index d74022a..2b3a8c6 100644 --- a/apps/web/src/App.tsx +++ b/apps/web/src/App.tsx @@ -1,5 +1,13 @@ import { t as tr, useLocale, LanguagePicker } from './i18n'; -import { useState, useEffect, useRef, createElement, type FormEvent, type ReactNode } from 'react'; +import { + useState, + useEffect, + useRef, + createElement, + Fragment, + type FormEvent, + type ReactNode, +} from 'react'; import { LayoutDashboard, CalendarDays, @@ -39,6 +47,7 @@ import { } from './api'; import './style.css'; import { GroupOrderContext } from './GroupOrderContext'; +import { GroupOrderList } from './GroupOrderList'; import { orderedGroups, mergeGroupOrder } from './group-order'; import { Calendar } from './Calendar'; import { SchedulePanel } from './SchedulePanel'; @@ -1357,59 +1366,67 @@ export default function App() { (groupRanks.get(b.groupName || '') || 0) : 0, ) - .map((p) => ( - +
+ {categoryLabel(p)} ·{' '} + {p.kind === 'debt' + ? tr(p.side === 'asset' ? '借款(待收)' : '欠款(待还)') + : p.side === 'asset' + ? tr('资产') + : tr( + p.kind === 'account' && p.amount.startsWith('-') + ? '溢缴存款' + : '负债', + )} + {p.archived ? tr(' · 已归档') : ''} +
+ + {money(positionAmount(p), p.currency)} + + + {tr('折合')}{' '} + {p.converted === null + ? tr('缺少汇率') + : money(positionAmount(p, p.converted || '0'), user.baseCurrency)} + + + ))} ) : ( @@ -2072,37 +2089,15 @@ export default function App() { )} {modal?.kind === 'group-order' && modal.groups && ({tr('调整账户分组顺序,账户页和选择弹窗会同步使用。')}
-+ {tr('拖动手柄调整顺序,也可聚焦手柄后使用方向键。保存后同步到账户页和选择弹窗。')} +
+x+agLA-3f9 zFx$Ybn>q2(vp)47cbyN+&zHGYu@7Btk1&k%p;u35bnb4beSA`HX0}_=!qI|u2@9UT zsT20As(z1D{PTq%K8--jr uDGlyRKQ2htk3IU ziC2@MUJ&$6ufW>g*4w#Ge^)s4C$6as(e`p$S01)Kp0lOKyr@p$D>kd<{js1=waGmA zO=LojqqV~aZ%UjJzP4y3s~Q#@)T?nbXXTwM*G@{NRLs;A?Yiu)effOlmuhxoLt6z~ za;JM0LpaoobN&{!n1h^g3h-}G75JKwL_ZdvJ2)xInh$v9)r4|?hbhQU^P7~<{M^V8 z=~NtC4D?@$+S2-zt}qwb%U1TyXGy&nu|SpbX8^ygYuC<-uC>JJ>%*3gk`a|>R1Xe1 z@#j6;*0EVq5sL@XJ>ekvIKy+f{c=gi8O2p(*t$s;9}Ee?O1bmee$DtL&&Tzna+L=u zj#~EImyi@{??ix)dB?aOcP+8USY)i<+ENxUl)&Z!1b$|YxJ#jKwF8@idW#M#B`Nn_ zF){yB;SBdZ2A`p`NY$}E;8tsirxft^R-Q)ePITB{eG~`4soZp@;^-&8|Gs32ze9Ae z0!L9+J$_aA-+ilAz^i{3{|EAHD)-acjB()phbe6N(XCYVMdra&lyQdGq2cEne>|8h zM~C&TJ^JIJ3*h{t)OUXteZ>-hU)DOW{Kw >Vh|$r zC0ilYU%4lG+Xl*y><^Ac1LRReKgr?HPN^M7)f}ui!`{2pN`Qb$>Y;j$RgbcbvcxNv z;O(gcJ*fya<;uH|7{3$7{IM}Q&jjhgd0k8yZ+)j!qgL#*0_hZh$b3EWv4n47LoBXB zaZ+k#s&6f%=jVSdx4YC?+p0QyeTzQ<@YTQ0{hvt9OlPsyU_Y`=m58^@k4c{b_`j3s zw^(ipUs>JceSFfZb@ABX6&vRGZ&5vCt#ZWYQ-JBuXaB#1BILJ9?i+-*JL<^yx{_1h zWsHEG{ly;qA>Qk+&fEo@X?6LqWA75UmPr-MpQ@_zBs7n2xcWD7Gz^uE1(8dY$HG`m z8Uu&g)XW$co2N$E6Vu~1pv&DE^XUOX&ia-k*w45g4}}N*Ll6k1jpExTo{G@GOBtrp zJoU5~)A~AJ+@0v#24u<16E3v(__!vgL9r(y{OO2B{3x4mssu1luBl8;>ISC;t0}@t zwOS&Uod*+KJ8HA&!ME~Q)@M5|r>fe d+j3dr-q5uuldLN{?i967cem*s#ChE4kT)Vc zd+~RPEK_|G%TOz06m%+BUw*%>&Uu&n=L`S3qnSFThb` lI+GfzwFbgg~tO(CV2 zMUqj*xFI`%mRYZR3h4i)5|0{)3v;mckWwJ(@;8M=`FTq23n{yy@d-jA$lgBRsxsI* zp38kvvL#+8p-3ek3C*VA>a{`s3knXsE_9D4;bj#T+LdAu(FxlV3F<0u8e2CSk5=fe z_q+;j`BW4POj7>l3o6D;;UAGM@8_KYGCUpYR==&SZM8wvg;?K~v^G>3zrCOLj4m!x zo}FZr2t9C6kvtA%B-@Gg@@wNwDIHC*TSt;BP~YD=7E4k7whVXyWp 6kVsKLE$>ysfk%8sJWD9Fd?a=s y=<=6Xj_P>q3Zp<3xG zp$lJB_iVr-2v=MAV(%VJOTw|2!CyoDGWcLqnt(}PBUVZXaj!4oa#x8bR! Tp#2coH*c)r)od1J5y9l9^*-S#R0z3#a+Y|wX-5ECjmM|= zg{sLJ6|eynd^cQDZ46{%6IZ5yA;zAeC`;P$PKn8UohFM(&Zro^!Jd?CBOlnbJT@3) zvzXD17TjN+^lt51+I5Ndd-Oy2SV8*ESdH)~GH<#~uu_Q@k%Jk@Xx%7-7dKJbh$`@w zoDs EEHD=rG_m}9D z7WpZ(C$bO{$tBT|KgSq>mgVN8O1rv~#=c1R_Kp^ShUPj02CNY&QRtvx(}Wne+ldC{ z*;AkPg%7*sZbxDZAm8A=_c^AfDxb}kFPo(8P9Q4`Lo1a|T%Ahi8}w>jI0DUG$bk}k zCW*xh3)EG1KJa%j)~A3#P07)5#Lt8MvQAMzvN`7fr&I-{>BglXhi>FZeJz~UM}U86 z&r;%3n)+5)v_i5Xy4K3?=U|1g@&U)PON)k|{28WkZk{FigvIBq{E{$zv3)6^x`9Wk zP5cY jEH&lxXSIBk2x!qI1{9}jYBF0dMAFioS;6(HyGe-$#ZqS~fe^bw zP<^Ab=a+2e^6d@HhI uQ$OJm@5g#47wyWEU>^Ez zn6S9vt+N}EX4`w}LHFMYQQD;lXanS1Cw5CDT7ERVeG!D2K`33#*$WIpHkNR%jNawy zXhtHDuI@=Shv+rp38Ot+O1?!};EpUQafH$p=Nsq?!j$ex=49_gZ)xhrpF{5?Nd ~qdbU5}Iu-|1$l=*bz@ zgFl%h4K3WIA|aX)H`F{}H2>~5kshpdqsZ+88FA5uez~AMXxw8QhXukR{ZX+@EcODN z0E;&Co!(%Oe&DHqW{CUDV$%!kCM|sZ*PC0P7QP _2MUf5D{ecISj z(=T-Golf+FzJ+%N9KV^QzU_@OwYJ*`B(*RUzb&=g?JLa6{zhnOZEbDtY$=Y~_V&oA zcKnn*zO7P3bWN4O G0DjJ29) z7s?%Cugc(>nw5gR0p`#fs({jg-q4IuRp}gU2=J<^Y`&C2MXtTn`JFLo>BL}Z07 a-sR;YV82`jvCrD}F%A5_nmxESS;;CS<=(vsL@2xov_lZ6y_X;C!n z-C-NhSbt-d6h7)bTvUtIf&>gNiMJL IPQUgA=SuF3tD{nB^|hYDJ}J*qrrx7XC0*3OkiM1+Nnm+f zwozcy#ip@2`pRK+h19Pt-26qK8|t;9y1w%TSLSu8tzKvn64Nx?GpkOaKy7&Y4Mn8E z#9Z}48}-Gx1!Y&`d`TGS9n=Fi*1kGJn#=2G=$DnTi?SpZR}4UWpW$?p9z|3uQkz8E z?J=`epit5Xq%TzIgflkh#qL1GbthGecy!M(@PUyD-8-w6NZd>f(g;2t8`;N10ykyc zLR8J%^2X=hqE>^K?cS}vi_)w07gO4mYwlg{l?g9ff%Po5HK(S>S3e)QUq(TgfBurO zTtSo8gMlmFAkwX7^1G_VYZe6>c$ErYzivf_Px;;n_6{Mru7ox&J?Sd0zG&6a8V@Qn z81@;u3i0jgQfZ>-FLO)08S^40j~+YWQ&OobzrQYObFd!p7$4PqjISFB<0T$;-L45L z{HlQQe))D>Grfs}`hFpnpLIn_9MXU>2n0%G%$B6&%yUw?H1&2g)q{@OBzX4{-WFLK z#F2$bBfj;hTJD1n%J^^=+D{eBkDm0e=Qi~v>nIA-(%@*n4Pd1~Zi{c-qJJY%w=SmF zz+CO=J3d|HwSaFpdk5DlJclsS2BHtN+MVvD;@UEtz@_UitDoSxFZjyC%<|rGPmH%c z@?e`I+$66gPHhKekRDI+*d#p)0f|lEn%15J)yNgZBjo`%^to9no06YeY)!>JU_u1} zy#HF&{LiJ%j@le**(Ml!NQYueTCaBB%)xBV4e6Ei(_@BlR*SC-;u>P2T{ISC!?4;; zm2jFq`;eh-c475TF@B%(74$6eLb^b3?NYFCZ?I-?cvWH<#pVXnfS%|4fz4ssCpf5J zB<2)QJT%^WBJqIEN}EqqGtfPDWY=;2z!jz=B}TS)0;h;9OvcGU{k>`X{8+CFxBIa; zgS$RpMe4N=&4Ek}b?8aeHitobgl7X34muhM0?+0ceQs~-ueko`qILnW#2_&~D BLko43kv7T8$9RQ)nc6?5IBp{&@t(cx4G&d8?A6x8dN=w7jSlM6DJgWnP=y%?C zzsX3zJz`T)xlK~-NJ4r@>42^L>6^tS6?vb@k~mG_J^$(b3}N=4HgRFBq(uu;lmnlH zL-JA;P8@47fcM!6c0+FXr|tPcy|P`^XnT$!Pd@R(hJu`vvaNl+ze?BkNfFuxkhbS# zDg)99NM~&;j8XEafhMPH(9K>JY#}8SjLkQ @QwC|58miW6a`G)V` hW{IpCHI6K#TlZ`oa^GJ@gDIqD4lk~%TKD8UPk}pashOC~!n;BL7KLy Xe@tWFvp!sEv*h>o5;Zo?yUlw;8aw8Fs!mK(*c~8f zKkH5NflPDIlLs5V=@zEy?`KBh_`3VIkC$_OpgX5BLs0P _Qtq`-pCpRgy%^=$igic8Uxsj;q4KMRRHYNt7SBdH&1 z1-i%WmK;!xT?dcr$T7WC#!Iix=3cl*XMwOX`5UVNa8w`W)mHB;wZ;6r%sseGQLm&o zc+h7|V{X_XvEQ9gC0wC)+v*m4+%=cc7Nj&g6;fZ&*gZGy@a-A1@i4{GNQkd9$5x)^ z4OTIoCY=fu-&7Sh;tG|saX>z{82O^;kx5Ha(IR!oa 7a-krp0uVam#S!~|S^gN+IdlI4Rn3|5C z8bc9;SOp9Gb%6Ry$f;O5zl1;A5uOh*Wx-V0dtIuvp0w8M)r P{r9LZ^%vs+jS9{NYV>5zGe?Nbsw7G%y%<<_n>F)E1Em^9Sjand}VB#cWQt(|< z_f;N0v{1d4?s$gocuZfkw~zZBqwde78$~8mb;|U5781ZSYj)h>B7_Jjn*H&NcKlRhUt@@u#OE#^RZSS*k zzD@U@0{QIAvwRa@W<8*NX?a;P9Cl6oD`Z$=2m6NiQ@!)v1IzzvO66Gq+53~lvwoVm za8VxB5?Sn8WlSR<&(#!^n=fmzsOd26BhT4h7x&nfA8{ cU4AVAu4 zrr2iv^hv^@bLDX4@QW-{KIeW0=l}qLT!RG(5h)Q-5fMB!u}St>oYn)`nGN+C*m7sh zUuSS!T7<0Q> j3 N?t51{U2NXR*>#&(p{y5g z42L$W@7Gr&XLs+srP~WA>jQ5?^F*p#2jlH<*7<=I^u9Md#e}@dA*;;G)VotTc>DTy z>b;Zk%LhHvbHh*g$|BvoB;J%Eg!HvBc0`KW-~wvAO<#d+aFsH(bz8XCF@1XJtN#sQGFY(IZE~)+tU{cD*0J(2q%_BaOB2UTV_ DD*F%qDz~fs)bW1!Y&x>&>#5uqRHe zoVqsg!CJb@+_m>`_eaM$a)+$!QbWrqzFzCv5c$MnLk|wEdh8FXf}p~j;gx*FK4lB5 z f|=e6zLT-qQ9xw~1IH)nDV7=lG%}B 4zz6rIx-*x0{AL+%=9AE=?|-1QZ><4*(| zy_ZYtBmU;*q>KJ*S=ndA`M^=xW4|C%k!Z}u20Tr9c0jz>*gy)jt?~2OM$_)@-a(Hi zZe`NK-x*IVEWqB)FAdX;>Ch$8Fo=AYK4 2;mxnNqP20cp94b`yX874WmdUDs3>O$9kPY?7^EAmJrFo4X&oG6=H0%6RIQvhA zT8Y2eYmJ!b*@{Am)vgQ;84O UXMG=!k7L+J9X))aMsf<8?#D(kmJ68 zXcH>R=lcyA=Z^TS)cfQiPd0S{&VeTdh>(466e;953~2~#XzMGlE-ttoElr4?ydrAo zq=BJh6N$m?SSg^!QZlI^>!MoD&(P~~at8e{SK@cp4*IKZT+Vg7tTmO$&{2}kZ=aL6 zSgtF}n 6 zJn$rNjjStH+wTVrI+mzu`3Z*eQ@moGKN?^v#Y#P(0z0!lw_Mgak#d*B;#ej7&RH8u z#7Fe^{Z2oT@GGA>*7qtuGA_F2f8$q+ptu^j7X3B~SS-(9a$m~kt!nRh^47!dmjNqW z2(D&ALBFKMQy_`eKCLfiYQ%YCidwW|=waPFlSA<6b+=Gnqs6O3`jk9*T|iOcS3Cn& z+Z{n)N%=Rzs>I`?5-!_`PElsX#Yk8Dn0sBC2^3ei>H+mYnCir4W>0DRQpmdHmG--? z19LXqlF?AFzf3Ft+%^9v;F&+{uMuUC7XPD!;ti4Afb%Ii-{cP;AG`kU7j-c73M}ez z&am8Yu;$`RY*E0uXzo{i%XhX*&J2qz+5o2BP5h;(a%Saq%^oewHQrBQ6%#l9n=76j z_MAdrt3JLaeODTA;UBC*{}ZzL3(Xk9)jHTZuf0a)-Y?(l6-JWyZw)>gLA<|xKBzVL zKbdhGg!N*Q4BY1$Pl|KPZ|z@mA*iQ`BwVUEN|iWSe_6lC<$u(#<<-rnG5%4#ew8ie zq!b_C`DmAaT$26R4txs0M6TRW53c<&F#InVtr|<|gXZ*8fWpmDo`Bt;R~x5*zo5bc z%5Asf)J|OZE0xz*w$Ct50sn&eORF&Y*uuH?e?h>Gr+UH% f5u4fiMnRWhFI2TtX@w({f+S5)xM z*yadEL4VyVYO>b)Cl!?~v}qSHZ%&m@7c699nkC-ume1WR*=%j;CsKD(j&7%Z-HzT4 zV653q+gZc}w-BrM{7v+=HYobVuDt>f#2rpd(9cY9{5=5c>4=5*iIM9q+gE6Si#m#d zLrgcR+fV-nJ^}y%q4(xJB6_NwORW0y8q#~ JE-!9x zut31Uo8~MzBvLBu`+g I3*n8-eoVFl)Ma-6e*)&gS3?U?%y9#y_s+4tjy)1Gu$ypP=;Y*>6gFKt5Dgy z8`$hQukGs~;DPgevq#kHvd#IHI>^@%D;r2~En0~%OPJZAaxu(@L+@#f?#&KrINB{8 zUk@wG=_%;Jjin=OvO;*1>?qD)m<_5Xgg-BJwka(71fg(k% Pd#SPNwR^-9s zJD4qnlV{A+Tr@s$Q}csD9ZDK!p!RTXrY!7A$EOcpuC#FNF~lUt+YWyHkl#{R(UQ&R zI>VR*@jOi;>y*yeh z3BAMg>wA5-!E&g4>09qeku}o361qBaq($cJnDgw7)KygpU7Ocooj>qX&&kJ&H`6ak z?nHZSOIfw~-jPkS09)!JdS30LkFmZ*AnQ4>?$go~KgY-3PL>3!N59$6y{7=bP BTmU;qC3|C=JfTnXVl@)u16^d2;Z=CrtRb}JDoL;zd>{17@|*W*BC)6RE| zNt;y>ZI-bbao_!3_)?#{Kjf-&np-~1 N2l=QmI@zWy$0&_q>BlhV zWw4iLb?z1oE`Ghbu>EkB?ur33_o8um6Jt8WZC0wyV 2pU2Esejsi%PH4#4?>Vn6DYg|~S7;aEG?YWH2in4&Kfyi(~{Txeh#koR$c zOP9!KW$^9{`9e;m(sEA)&_T!}HT5F5-6NAvAXl!jhZ`rt7-#=YfiPq)eIS%H;V=NX zv#^{tkAisb*bh(d7aI;r2FNb;GH+$sh6#f; kY<=q^;WJ@oTDr%V!{=@& zodUv`t~lR?^3Rhy0+0xx|Esf_-vH;BJ5AS_aO6Iwxyxx^E2WSl!$S{8hB()X&aGsn zwAipdphS>FRYX;EdDNC_)#Pk#=FN2~;`pTvN#+Za3D7rb;$^<4fR*&$Zrqt<6oHY9 zjg|e`o+1Tmv8zhJK7?UsZmqm+4HkrDYE7YPP-yvK=<)2=->(M*gxRP|qnT4sPuu*p zlHzupl~|D@Fu(FpP`$F*6N{p8he%+I-SC-#)NdA@_KXGJxn0Is|8O3@pp{ez*9ZMV z#PiJ%p)1JkP^;VW-tE8F>`gg0Z#~LNNRF~Ti0+4NY`B%(qhzLrs`Gfm^}opJYhY*z zt8+n8iZMKuQx*vd$l$ur(BkIoUfag~iZ*}Z$!6b$Jyp9&dYnIishs>hptRz(@@^ZQ zD4%3PCjfIf-Kxg}oA-c!17-lg&A8+H3jDab*NQu!BBqH*ZYi=YEM3(iCTFVQQQz92 zt-kl-Lg_F*+U$#GL}k0@R7fwVuY0@8YRV2{;MHL$(pb EY9^H_=|nTa!;c=~aIm3E!G#Xo(UJ5pHvbPC9(lpo!{O4thZ zF!r@;QmC=jgzkcChl3B)cE%L6vUU^t4Dn-nR>T;WmfumcpY8p;hBY8C=Uq@AX|(-h zskBIZcAg8P%lUW{gD4RmIx;wbF#T%%RKFCT7)F5<`Co6>{ 0ja?lvWAZOvOr>XW#+M|V0;o)LN7*R$xUT!? zJIyL>jLRpUyO1mNx za4X(3EV8f zi+TAtv2+y|@W_t#yB90!ROobiax#4l$nv3gH>&iq!#$oqVp)oUyiqA0u(D&=+EUj& zr*n43irqcPo@8O^o*>Yq27hZ)Joy?=Y)7r!?G9+EWW4Z&vh=)};e-59f$7yMD}Aje zPrIwhgAz>tk`SNDiA79&3@=;lnrM55(p5iw5qmcxaU`0W=W+a!7OpEl_G@9sV8vB6 zP1U9^3#r9s&2rvFo%j=hH?WaVbRx+h{b^*T9=Nl;Ul#6!&YRKBwYQqeVjpO+&*b08 z*$wvCCt8bOu{7F9LA foM-Y(QXI^C>d(Ll_tzd}P zEi=$5za)q?r{z068RarDPIO+bJKDztSh8tivkN5^+aD}J%uU<#S*x=%SvklmI?aX- zB>9u&cXFoQwT|Y}H;G&CLmnC7RXO%mlQ=9mm7iIj*cbUSC^&8*2d_v`>czU=j9!HN z4lQ{WheRYq^d1|U4wfnK-pdt-!9)^ba&2&&?oxcjf*o2^ZbdU)I8~qjQT5!Wc59Cl zeg<+sult^bY)2I dyaF&T*xB)Zx^i06tQ?>WkO_GEPT#P-IJWQ6KTg@kBPMOfI*Ky-S%={x&Cidc7K z8$x(k-?QDZ8-ILvBq9l-VyI@+)t@XB& L^08C`1-^>lNfz>Li~u^gI@7qJz7{=g;i;WTKplcJ0t#MfkX#r+qS>_pP*{4 z=FL;UOa5cgzEi*s^TKev-uTTor+{JRIt-LQ1sunP(|-*J&kb*oMzc+sTT>zCzCEAv zI(45?q<~k$;LgJ1G? 8ss5$HRlgW3?%LhZb`QPF zdGwx`REK9NNi%)Cm7c}7U!$c$vXRsK{y|s8`d12c+xi5!4mEWKXkzkvsE^sn%zrr8 zpk?*Hj5NHXOu2WDH@pXI@F7&Txhly%CsQ!<^0Uh1(Y}dd_aahgJ6U6}Wu)Tn)aDxR zaMFYP8n k-L z6*0Zyv})!ECy5muxm}8S?C%1TW-4>LJw%l&KZ{5ijf*XjSLg5dci8N*ZHKY1EAJ^k zF$_Iu)I|5ZY`@5_nJ#_Zff`x7eWPQkO{}wOPqocJ>J%U*iL#Y`6lPpqvQQQCwQK-m z@0yRh7A&G(Q?!#5<;m)PD-ID33?0v)PcGst(YuN1j_|iD_o{cAeA~- o8uS~h1#*&JECxMIh{VtDDdqoG zMS(w6H}fAKOUoYLFbtG(C!!StDzW;BEop8+!h*9goCEk`#jH59k68n4?k9qQBAxiU zqrpQykIcTB*nEOyiD6TgSw~YqV9IZ+MDC)r7ewRaHsSr1#1Z!>86~`D(19%}y?vdJ z%~wvtliuFmK09PBkUckEac$WZ)HKijQ rMLnNTEl7L++SZaw#WgZ)?AJ_2TRC!e&d|fzEp>K0 z=p#>0l2=-$*cVw8-@3cU)Xs?S!u0ToBT+atA~Fe$jERG&aKcSn3Ad E>;=9YkF0qZU;CZnxkG`XqE%U#=K>Yl#DiYF2C;T^a4BQ|so=kFf9>GM0 zG!zhGc=FXUwB4w8o0V;yVcG(>?n(5}*BVfo=q7Si<)laDPf#Os=?wy0O$=>U oxQ51NTk=BS#+H zZ_cf1t=Z|E0*v}Yo}U6x;h*E!j~^MYN1hmkd#+b&Ub|VtypQC0NAWpwqt+%d$NrkmgPt$R-gtaZL+qtp}g-yyC=I`JbKwK$m E4VoXrL#68P2Ka|6~LC}6yi2PZyy(y KoDMCJa=_y4Ms z{=*%JGf%+=9Hl00b@?xLXYKpVg{oH%$;oMWebvJXSLZa#l2QXBy47-shtW9rfx+_J ziQ(X*&eazS2OidxH0wt<79GZ}ti)zBRV8~u#eE(SkL)Ha7h`3mIKoj|8>|Q)_A3Z0 zC^T8BW7E66|5?2JaN;O`*yNANcweKMG`e0|_F&EBna5Txsw$?SSb1B*N@-SbWn8j+ z7daB;M%MUHPWsALga@%%$aFUbtfS9WSo2+wetNh}Hs3ixoD|_t0UZsy>O7!o$LlJg zF9;*s%0RG8tX+*se9vSW(<5)#DUwU!CB0L(NXO-NOI(@DQ&`0)bGu!$8NAxgR1N&U zKBM*aI)$r-ij$iubX5lD7k!{?%$WSK7-|3;GBu?)*;a- 1E6}3|Wg+POyz+#=hn0ZP1|k9C@bzQBCH9{Efz> zg2_=Io1R({6AhWG-c6o+1=VI3uRJYwUH!$j&$1Oaefc4a$kYc?(vo`v2uX z(thgK88fW;L#C@B!iqZQOH;vd@`%(ltVsqMMA$25?50TVH!$*olYO{pN*1S++M_I$ z8;N*WN(XjGY)D#h!6MOwppe{`fsQr=IH1(R%ElE#^QwKJbCdmvHp+Yc+tU{4Q$`g6 z+I~p9Y~8H&c~_)SjQ6LJAk9)2MF`0*TpEpdH`8HZ`Rr@wI+bBx8AT+MAXz>SA=eq{ zo=5~!UAIGHta Dv^v;+B-o3rS#RA>uie&bLct`I# zw1~1a_6{9yh_~nKKP5xJjL-}Ad8ou~G2pbPXNn&%VWXljMR=3u Tc9 zHe$P%cIK{WRt^;0I}oDJyqhV;fQ@I;vF`UU*xJkt;vqIAjCv{tr)+1Z!`g>^4#8ag z*%4-p&Jd`&VinajeM?0Lk6b8%6CGZLYkJCeXsU_X%ym^{Df=_Gaa?~}5{$KbTP9Pe zQsI_Iw&@Vz>3zIGsO4ILu{#Cx;{wACDxb7J-N-L{Heu7jffZ>upI!cty%|_37^};W z5DhLw%UWu=W lYi1EWlDP>)UAloz3)Y}y3vaZy)-(^Rs^0w6fAS?uQS*Sc4Y-V53j zyZfF%(}Vwa9KYCfWp%vDn&(GC)kR|Ka=s=@Pt@o6H;vVHT0ndwAYo%DqZZ`xDGi1= zN|R*nhzD}B_^G%gEQ&tlQHm1CXoZkehuX_>>6Z={ *9#(SY}~wHI8)et7k!)3+`tnB(^D9;WTg=A zDl@tD{ 8hEOvu zmUp=cL@xqVxd*DK6A)lBzUfu8P+v58%Ju?Jr4 A>{0#e>|YAkIcghrQC8`!wX z7^|nMUa^{~+q2hfdbg7=coKUvhgHaaAZ0}nMb&k$T#?<_R~#D}Q7_Dtm4fjNlM(y~ zOq5IM7^#2U4G*^l(bqw&@OuVnNyRx;qtczlgeE6qBZWRZKrT9l*FrpFV=Gy=N1Mx; z8YGjP0IU-+^d^I_h5P{m8&S&jN2+|PMwQptQw8UvP1OvC#mb7WkPpv^N8!cl+#9@= zA^qd#0t)WkWfV;dA+Gx+Q#3bw&+IE4({rs|5i*erg6^Kq0x0Nqm&5VCpY`Ad;Lr74#eXimP-LE*{eg~;M zc~4QNT#{E-Z*kEDZJcaqF!jW_YJyNoweFS-J~2z4-+ez?=b4$*jc=QlN+IyPMG-uf znL7LDALnykeH$5frP7{kUlO(K+xCpMY$e$z9P`$4zo!e(@0%~X9Ah@4*6fXB@Llha zNWeGDG%kx!Nue83TVV`n$4!i9lJR#L36PuP=;#DPk}ru7bTn5+H-Og39d|3rU-IfG zG=bFZ8Cr?BF96b4?kYG);~_&m`x_#0r!AMfJ*|(mves>LfgG>tLzUSKo_{TEttD=d zVHj2DQ7AQ?GQ430_49j;ue_7H;JMhuC+f (E zQDwLkHG^ouhThI1aUc(83L$W0{75k?oE0(%O-y9r104$L0czFU5)Nw7hxngQ=z{K@ zD>-yhzn5*qn?XM7v0iTEnnlW)#P=NvxuJZgt?ic+li&_=n<>Xz#qLKvN$1RB02;Th zpAk|xD2eeb1S-PWJg{!igaNB`tAy2{9psWV3s)46d=DXS=JaV%)@>J#wSqMsB(Qo1 zQ8~W#Mk}Cde(UaGx-jw}Cm1eZWDhm1N$K{;OKP}=ZJhYYgkpj +*GjNe3bgbWGEL+pP;;uDOJD^2-{YVVrVKZ+m2di}-}@#`eYxk}olLG-ZfJ zSG3#~oiwSz{`A49x8YAlGdsAf*C%@hs|qNGOj9%VZ474%>{L#lLG0A5?= U7W#{~ePhjS%FY5MQhdFl-r^H*;Z=CXbNLc?W@yv`1`XLM)8$9tK?pNm?1u{F7b_ z|6%+6-UI29mL{0wb?Q}TK#xr_j?P%KTrf!0P(4U>R{Jf>4^^ w z&{F)AP2anhu%`Cm%D>9~)h_>fC;mPjhLN?VX!l4JDCNFxi>@dOf7$fdolnE?GcUkN zEQS8mj_vb;hol&jU1d9(1ck+n+oKYLlt&1D$B1j3j-{%n0q+p{9j$LNQ}FQxqY*r( zdB>AnCqz6@B(E*bYq~y%^+kp4g@nX#Z2%wO386ePXu~z#b(lhE>#jU62~1H5m5GV7 zVvnvku(2N((%!YFL{5_2Z+mxU#hK-#&5UIU!c>YMrdqp9D1HYUHJu)ELava&tMnS* z2c$8_Ulc8N5ORu7e>t=v;dE%K=@%Li$ntut#S>E8J`B KYApr)!z118C`?D)AC4vf3`FZdCqHGtp? z^(C=qH6RYoZixC2F^5IRXXyw7_0s5#pDkNal-5h!fZTJCH5Hb6S3@H&+h(eJ=*osh z$fi!&f-G#Hlj5k(Y`v(+afu=86zFnCd$Mm2Ct oIlqkl2=K~GS|HuV0LqJ =N@Hb*GK6cBts%G)4s#VAyd7gb6{*EqY>ThNe(sk(}JWHxPAOV41`B(N+fhkavL zGQ}WHHERBc58i?9na`nxCitrQ0+UpH1w!3w$$R5!4bM4Olnb^+WC+Hz;1256i#fVJ zy%5Mb>U8h>H(jv|?N5 G|2|++X63fU~CtHb@MEM!fGF$QzC7K4GBK@vo83;`QN}c6L(@N4fb#cZ+U*8 zRsIXX$)7ysKOPYJh{NMeUNgYn(X9DtmaUv0$8JfLq^*^;qpumXCC$a$FF{=?EChhR zo P5-w5!FBqtIt3pXt31W79s(uvBnYKYiooVsw2e%DsQ#U~eUDxWMOGhVnfFEGA<( z&K|k$oU{ID$`i;+ XJ48(1?M1K zQ UX!1+Kh-Wn_q9IVY2|^egnO_(b8$==vg8$EoC>|- z?{7#->5WPcX|1+wtOLD-*g4C{8<#It&uE#-xuX_<9y=S`93eL|O c*R9Q$1^SFJbPD=>`x!aQxhV7Dxt5thz%FH4G_lf z7Uzv(2Rt&pfi(ZVU0fg=#+%5R F@>EX82kz16o#UIs9?MZAO-B&L)`jYLySu=K;eJh7 zB2$&IUy!Iqc{ayFTbaCt+#XA>XsW&8ZniO8u0W8Q;6VWEBI 5502i<5y8IL`C@X|ck9wq8Q>L` 9La!df(1aGk%6Zpl&l-``4U>_?4o+L&Pt_PNU%z8xw|?c^UPTT z!3s~xySB1u7qW?T8EdnUef;ASHoh>phJp7pQycAf6+BAjHR=quMRC`jMy^#^t_hP) zi-|^F-Ny}LIk@Fjs55f4n_J7=!zTphfO$qrLY`z$pHWj)A+{}2l1!e#xHgTXmW#&q zg96SA35nhC!&|3V2&gjzU-E~)WnF603qI(zXGqDC@)0enbH)x;R#cQE!G}hQCgT`E z@CFdPdtYlKP% IJ44 =#kH_R^t5vkz+6Vv2_*Z-U>vi~_IvQp Lty`Coj7g7)B9QoKuBh329pb4N-LLpX3jj?oV5duTwrv5^i*7UjKTs_|5gX-?>VB zUP(UjG0=pO?`YT%GmVj;rJu{
2Zx9;Co!WGsC(6zbjuv*OAo?$W z6wRKQ+F=e~IXVuW_b)ca$xNCVr+uVj5RgU(t}44_(5C?7Kw$(+7AVWLk91O&b))4~ zsU1_4f^ Xi7{d+1DMcS?Y_F)>;(oQ z{F=oovKgaNNpkq{-Y4;~6<=^Tee@yW4ec4fz~zJMx>c8z#FmD$$F9F0Gc?_oad%(v z&XkD;kN8*x{ao6c>)B}7TBhkKl~Xx8FjKd#Wb*n!m}80U3JTGh3w=y3E(xa5gNQV} zmz3A0d^a8VZL(!PI!=$NhIP%SgLN<=_#$?NhW}hj9X%ECGnaaCsabeX=`xd5v7eqR zP9Mr5-P_ eSw YC;h#nwMeG`_p?E)X2<-GMZwsvXag)=^dGKl6jv3^$PTG(RHD49@! zZ4@%z$Az84%Y%0OK!tIA7a0m08(C%tHbmN! AP zG>|hx>t&Pls1Or=lL&1D2lF}c+?bsSgP(vjFHpZNkpV)0dro*?1IH!vV*T87qx@Hc z>WV09T}>?zh< Kc-l5t=ftOhL3SGo^$K0n zd_emW-@KuVq@$a~XeXMU{$5IF9L@j8?7|B@>}ei0&3pD#K$Fu4|Ln0bReKW%#^xwZ zY8hWPNd!cJS0}gjcT|2jDM{}RlV_T9O`G) Pv@K1&>;5O(IzDl_q<5kzB7_ z&1UWpkV0t*`PIE&xWj$-(d@X2O{z6?nvl2Un_gJwIF}eayNjt6j=l<7pAb`nN4R+j zBs5Bq_s&`{lj3DXmk;7YAprpv3R%jmJA7&6yGZ@XaEKa6V3h*u(B$b}%J!4YKP6bJ zWTmKR(=W zYjmbOOgvQyu0!n*rv2=9xE{}+CIIfK^yoFfo6`oDu HTnKYsp~^yf+>IUY?X zPKfLXh@g3yZ2$hSpHKWN@vk-r*7^V029n}Mms1v$j@;8faovCMO}XV1(mRB*R$j~e z?Po199cxn3qZ!^LLn3-!dfj_%V^>ksRQV863>$tA$DStgRL-%W!#p^?E0UMe7BsJD zL?p5b@ffC&4M1?-Ix0vd%u{Hkm@7)O9m!;5Wi=;{Qx}h%CAim~xb@iHRl!l}x>Ahx zxq_ZD4832gpvel9owymh?7cD@vu1uV`0BXz-Pop+ywPd?8G#*cMzM>Dz%n50!38}U zm?UAkeUMLZYKAn9dkO3QNGE%A`_;eAE`Ra)PgaYQuPAZf(|k*9GGNA_;u|uBYK@%J zHU7cncV~B2`LW$2NTiVYets(W{`|6dYb=dH_(>4o$S3Nq)oHe=kxUPzBSxcGM3g)R zuC6AdP@W6$vl@kkX{|W#`zh1)UC`6|mKME|rw$K3JXe7%#Jwx$jpA0| ti`- zcHZE#F7Orp*SbLNf=4yY)-DE_1GyskP VAIXN4nc0Rp;RG#$K*%NhnNvhi7bW zT9jtPN4gzo#Cb{2qK;T;=v@{~K33c^w()>xF*sZF__o_uFJ|pJdF9qH5-2T@y3$9w zaJUF5r;Mj_RqWRd{-3o#+|AxR=z4Y4X`nQ)p@FTzIfZQW %22l=_DSt%rdnh4xx<4A85XcK-emZ-ek4RUIpM z6W{#SQd?`WY`*?8g`%dVD?_)WI=6^3SdsM7MjD@DfNb+<*v;NTpQxNyN8e!^WA2%b z$br+m7B;w93j{p*1$X^rbosC?ZJimZ(%58(!WU5|HIbgv|=Yi-WFg?xqJz32>eX z8b!)SI$d~Z+V1gi6UL*LY42#~P(^;=yi3+8&$0zR!L2i`p3e}D#;^A~ } zL5Nxs9eu8Cqt2}@OBTL*CX0U7_m`q!&2T>pW7?KLR6xU#x}xD(>cgl#T-a80;4Ku+ zYW?h7AvWwe_N;r4SoX`>V??QMc$6b*+d(lWtAgvQaCD-66qI>AN>{+0LfF Gu(3W{$W!Ph7)Ms2rMC0Tome4vGbS5;ex(6t@2oN;D&^T6aX85{> z5Z)iGcRM#+81xiH9TrPeUr3iU4MOvJ0?G^~qb5t$m7rd(P1yw$?ZEr)Au1OiMw5d` z9)Gi~{BqK`|K`_k++TS8$4cYVQRTBhgd-)@3+XX9oKVaMsxf2GVn{g-=OOLH4@)i1 z6&e*&@WTf7E+*!sk;$eeO)O!7tE)QHxidZVl95T4_ kFt>~+DPGGfjzMbKaSU{wb^0-(Cd2z#60NeMor#};C*{$agcL~b9El+QJ zc`Zzm-N2HN)W_|ZBS;L8o`uNy$7gt~WYUX&q`NGK=8*4pZ&Cq(XeeWMyD6&m4O8;8 zJ ?wK7KcH9+6{Nfal-X _AoALw2N i}zA!*c0W~Gki@VL+sbtz?3 zvNOCo$ZzL3yD+DeT 3yKnHV3}!tN04Vp4;X7T6A!AfyKc+WNu3jdK2LsHp44 z4+UKzW-T~%G0=cEbkFQZJyU3Svd#jU>zrg|DY#)$RMj<7QHna#c(B}_QRtffwy)S@ zq#$^lZ*1;t!&rvZ!kA{m4q&uye4$&|T8xq9x~-0|QM5wAy0yIe<(Up~P{BvKb1T|4 zM6vI~Ulh}wxc%>M>3_mRk8ZL5a6p){4HOoaQ+IV1Iliw@-lqDk@Yf1WZK{`tkL7oN zymhbm(0iTJmYn^9@sG0^GLml0@Zm1!i%Mg)n;KpWGu@ ktjV18Hl~VeDJ9nJCw%KM@oO90Wd3;}`j(<3BX0Tshsf zAD}CH#OLEupDA`=iinDD6uam}o*`AoXh6ec9xt-KdPP*2cYQbCOXW^6sW)7xm>k*T zBu(mBlR}BpZI+wa4dN*#p*AD?eYBvV(aIW^^oMCqPN{51dVsIXI?C`Z44y_41@Nod z3`zbE(m^t`P{>XOTYk?=8-f(|F Wk_va_NN)};9a}74qC>h =^MRfbwN+PJ(FqTW!*hSLb5@dfiURixfC)%y{(afXT zZC{AXyP5<5E;P$3*7>26wuz50e~ZcTMdgPN+nyIplA=OaDw_Ce#Knt8=I JCO%;&a-tvSi8KA1y-C~*IXsRpIw?8r; z74D0;rt@8mU60i?b!I|A6Jb9yJq$7yj^vav0105_3*{R3q;l)CKs4vmf%>Cs>bQYw zRtH=7BTJfBPT>QHN0KtQhlieb6z;XH2F7u0>y#~qa7kk(iZGd&dkA$i*{|yyE}Dsg zw19@x*iH~Scx*Q4RT@esP`;St2#X5Y!WEU3?Jq|&MoxlS#ci=o!DgFMHrXY0NWQB& z`!I(Q^Bj(B9s!xA=c4Ba=Od3p<| *Jc1%Lzw#tB8ytvhZ8IU5xF`cl5&X3(^P{%Xm{q{` zwu{|kt1ET{=xZaN`PLXt!*GerL}yw1j5HuG%8D?%ca~Jh(v(; Y`3W)Y_v9AJu50sN%z`m_F*Om DK#&@5nEq^(FN2GP?vjsLX z>a)`1gg>27>L^CUv2Y+n(i~yZ^o_rXg`x5ASuHD@q**xATGO;aYX61k20!&7r1a8w zG6E>XWN~G128_ZhkS{jT0@}4N-i{IKJj^3AhK5bHEH %o648nrzYfZww&oVC6$ zf<(MakG{s6OLYYu32*ywJ$J@%p_2 gV6Y$h+t2 ziAz49llr&c@ZWR((h~6_Z+#o1)fF2gr|W^df38pm(kt|NbHuj_xR8u`{Y4(C*ZOU` z&!>AOP<$tr?&RkaJ<`@m> $O%xydS+ErrEMsPf z6WV%mzI0zzolM*}>1cnuuR0=es~mmp24-p!WaN<)T(cwHeYLSNG2f_fsXhaU0baZ- zXNY9(2u%B_@(F}@W*XE4-;k6y)}d;qy^38eIytQ{Qd|CT%PChrN@ZN<>?5*X*90q2 z5y`_@BfKc`(+5}I=_92bQe9^&g}w<43y*>=B71v%N%4Bz=2WvFXIwL`MHGB1(mh-m zN)z@LtsSq@Y&?Qe%L@lDRTv9g_jZp2I!zs21f^Z-REqg-glceDTNX)pdd`f)YF9#- zTx&7SgIuuUISXM+V?}B6(f6fEiNOIZT8-B<5|U6ehk!I*Ni1{a)P09$+MYlIv6U^B zXI>+Z&y?z`;;29(_`=^dFBv38ny%Yq zbX?_!W1 z56I_@bKa5Udj~rcx0t0#EkysR#gLH9$25Plza6YLp(=~V1-S4z@=DXf4^?#f|5oy4 z&tKXlHlK5IC-ugy)$DrQx0lj V;>^Q(6%b zIY&3Q> {ZJ-IpFajEu z>Z%cNXf?&_x=2_*nhLH%+vJBB9n*;6j{G>9Z7Vh=QaW#=S@<||GljaVT>>h|1C+!M z=_qG_J73r|PBdU`l!71?pjZa2t8jXCHxO*1vuQ*L2lH3kQ;&?|v|NfFvVTY?B>-;> z>aCtcU}QAD59BVO_!||mvE4FwS_)DF-Q256-wKSAH15ObruIkEwwGq=Az-04!hy>B zoi=y!Viu|V{E_l$`?GTI-nIFZKC*hocOPkUT77+^S|`nU&{H8gI#_YJNS@(CBp{X{ z3NMYB=?%Lx^*CE2E$bU$p=Y(eS5ksEoQCY}Ek;ad^I(-oaoy6P^rz{h`h9&d8<9;^ zm>7F0HMq%m-Zyyvj&E&L{@a#n+4o!;$&WU&ZLwGydq(%YP)?fOaM|g;g7kn&jNJpR zG> 9?*FsMk$;wnP{R(~e z4NG<$<|AE^#KVBygYx~?B7YUh=O619{%oZD$3A+6&x4O $*^l&WZE#B%)P)0IF6OOqOjp4w%ZwQ=z+mpMt81aF zTltl%dCDV;L_IYYyU`BseCtPXi!DthnF^({*25-p9o>1mhQUb=&4g`lV#tAVtfXL( zG)T-ShH6yM5#SMH`bf>A7BiKC!=rDG9djGy28J^8HkkpRuuG&>n6NH)hF4ARVBGsg zeF=>_?G+`fm6Az~=_Zly_T2g =JihlLWq;&rFKg6v2vxfe^ z&Hpp`@Q>^HJ@)GtlNXKO>Jx6^)Canvha}a21n$pkARU)zMfoVgzUReI8B(h5s!4y8 zuE+qsfkcDBhbuSS_o(g!qvq`&^w495Bkow#qk}+Ii_hb{wyLx>(}I4W?ZoT#gXv|R zFGp!sgLB^U9M-7r#UF2kO@K@7Mg>32ROPsOIh*IySt)vxLUnh}%jNW+?5Q-&^cj|a zXfp%JU@~FhlBoesXzB8A08$Qi0t18}xtQrK2y_i1#f8xkd;+6#D~UnwY_xs2ng~TI z4Zm}x-qJd4q z)%Sl1eEgmNrOxNU{`rOZZgwA#KkZ;IB<@+>?$w5@ `*rntmX@5TK|4!zmShgbfOFM8a6U{5MH5^HP3|2;wOO6j zT6Y-~>h4^uzIqOB#UF0ccH>q$5j;%=!Y7~s^N*Zs<-k1LaMOAB}B; )8(iT|s 4=H<6?p2fTQaZt6+E(!ETdD;VA~%iH39?6ME3vnza!zt+ zl#!S@g+ S3}^@m6M&%CmVL255Jw D z1 zhg}HdwuiCmX$AymhlMS6hEDY)T0^#?yyF zT#H-TWr)%atMi2tE4GY`rYGb*)qeQuA0*NL4SQ8D)$bb^n&6fu$&Xx8Yy4UZ?_L>w zx!6|QP`_jhOqe 5=7DRLv4xPOkKL%cJ4sy!5`tZEuWXnMIttOJ==cTVj&2)0L(!s5I)RE%=mrW1uj$ z3*gkgejFR9miz?%n0*$WZ_(eNc%8^{-)T%#vyl}i-CQeED~mc#d_RJ@UOu_iBx^J8 zYm;ugeIXRVn=vEJiUU _5acR^nb&0e_CLm6u@`MQ2$*|5ko8!Rl&{(>7vQU zrVK|OWTX%mv! N|Hx1Z|MA&jGSM9mYVi!rKDob@mE%GOh`eo->_8ZTCy9VtI>8?g^&fgjz%5 z!!v`uU^-}LeyrBh;yIi$DJ&V=34W5dpSiCmBV( c8@F`z@6c6QHK;9guCdHCDAva!Zd?vFFjZ5|CN41IZtxXb z?#-0N)(PMUf>NG!r8)T%1oRs!{ 3{*c*+Lx4=$&88@hT=E8N?ZL0o*F;OMN}mcqCyt88tThtD)d6(sWI|%LNkKg ziAtgElT6G>wo=roDWW?GHICZKf@8R{A)^EbdP9sv^dQno#c)hlBP4fh)tQgfl{RoI z#kFGrSlvMNPJDK#Bx=R6whrnHLBIcYXh5{{S?)R#IbrP9`s}XP(?=f&&hTbvA`x}a z2uN3k0rUpNrB+mMR=Lwjz|4g7NoyLb;xbbmUR2xL19|(mvDg23#gjOJ?m)ls_|%q& z{Hy_+1V!KiO(2_Yf71ODwtoEXpJXrb_t+}G-Guz5sV}@8z5=>Q2;!j# zv~;%hv_4a3R+DGlBt09;N3gkla`WDlBjqVBH%E0;UMnrd8r>HhK~|JDx`*VjyF4*W zSsf*kkQv6hU}P8(tL^A+xE*iq>UU!7PPw5|sUlwO8yxTa)7;351It?-Eb3lKl37 zvsTIkB1M4cV`hi-lLnHgz(ytt-h0}K<3>i&bzkXfq7Dt{-Z2el*_R5gGk7yBu&?tL z#wV*gEGb!l^2jpH7P$9S!T$AAE;dFp@AfuUXCKeUcegZC-aRZKJ6oD^q6`Gr*YYN< zP*$cUEOs95X_LC8B#{U#d{5^{w$U}LsD5#^p=I%Xt(3z+85UDa0l^h!;mm{hP20f7 zRfjV D%xRm49g^-{uVLL8o!0Ve(ar zf$}0VJw3h4+jnG!WVhDfO$hJqK@4Z!q%*s3_At@MXRpJ5r>BkM^)w+!@2Uu2W4EZT z--^#|FU=Rw@R ^&QsdnGb6D{@VL*xSX zin(R>?1@m((y=)aw6lkY=rU?jx$oR_q4>U%fQ9#I$?T{KbyHy{cK8@~=(wx1>N-re zo2RojkYUz+%NAC(706ZrlN94|APJ{)X_$53!WgZ@ ?1dyuzXAS z5r1ocb+_zkb_?U4F*j_NnRhH9KVj=I!fm~U1|j|VDtf>)Z>urN`sJpi#{xMTgg(zv zR`+9*z?~HsFm$|DY}9UQ*q3-oxBOhxwqQj;h5byJlk(k?8ZvIRl`PH9h?kl{^@6Rt zQ>R8=^{TK?z6*}ZmuIys^SdLOTRZ&_Zwfd!Bt@v?kt%-HV_b@mrA%2hb=PTJSf7uL zfXa~{wze P~3l>{lHw&dM>uH8!kNGN#YicQ)p0d3I&`jFw6nDbY%8Li!!Vu31P zC6tX8!CMZ%tfUQ%uvjx%dcC{y{3T6e^T9>=yAcHd!Be6H72A?8Z*rPVOQ7%`mzGtn z6k)5}Vl?EM%U)Uvd_Xw3WW2sUSSfO`EyYIaakbi8SuE2Tm5+2*1_h&GmmuVkM%$*! zD!Omp{B7i){6(3?_KR*ypZSxL_pdm xXIEaNkSR27|Xv#(|j?=5ZyUZtWknOYovV_vT{_r^JE}Q@A!hN%mAe)CiEZ zfl3-U()EwG%+DeUI6YeROSkq3ZVU=g+S{CIM|%g&h1Dssj?(X$Es>=~pU&F5$}IY? z>OIRDMPKl{w8o>?yPHja I2ADb&J zznyWe3Wi+ LNMAr6jTW?DHl{o z$!1A*KsFfeE_njiy3v?88fHxcbU@JbR_I*wln`84#paIf*6cc2(t^h?9Vs1j^2F(k z?^4RFoYjF?<$)Ez)|JGV`6-`HzN6=bW{MS8iC5{rEz`q!YCQJ#4iX_)DTWyhw$BgE z-G^BR3Ok_%?g2g|9PzYL!$RAdt_qv07qqayXf1=lEw!%h%q+|%%6xsNg=jVRsJ-lR zab%%@yu~}{d7v9=Yqj^y3}m6C*Z@V4Bu5#Ke+LHz8&+tCkl8#no{3wL=zBo~x5Y?T zY+Lz_&c)mUTPFcL&6p8d-VhPxVwLHCt4X_@vtD~bPp7EJ*RbTLpQ7t)z`NOrOx@i} zC_+l>@iq1R=!FgYszN#bQW# IvIt(vW9#BY7}L=>9g#$@B=XmJgjEof zr910eI`&_>^@5n{HCmJ*WBcaK^&Q*o+y9(CA7qUCfZK7jD?1O$EK200=uAv94Je6B zZJLBKA9x%WAC_lJSM3W8h}_HL qWRF2owIxF ztuh89{V{+ucw%ErsP3U>c}lUQ(PiS+%iw3%G?i~)-wrC=DW(KMLfCuTeOjfp+<6N& z#|+(ZA>A8R)GcsO+NzH9cv;HKV@~>(!Ih@d*UCHU5 zOBbu_{H@DRz5W$}>~C)TFDCv3?(%1~{)f;$lh2M8mp@yppUi{-%-NsWyeMsL8xm>G zP3^s5JlCA|urf-oBMscM0+g;W>toK&j(~L>tXD3)Z7k?XC1jp=PM->@F;0Lq*(|Sw z*fX+Dq9j_P_;GKJZu+?9SzjOWX@gtCwRNxwm@b_?^BhQFLq-z!jG9O-*h86N5Ob$k zHP7vvs!^diHwhD~p!%4(<{}dGWUzL}+<3?u<8#f}okg2Yxd{WP)0|s_A?MBcOB#VJ z`TaqoMYxy%xs_Cn0(~z%LlB6fyI;FnG0 2AS>h>N z^RRx{`~&uE-u1R;{B)OJ|F)t3SM+-KkaV{ypfgs*Q5Q0{kV%ji8L~se8qmG=Q044` zN*1GXo*n}jZ@s@-hZ)HzUkJQiMTPn)Qwgg|DoIArC2)d$K#Uu`b zMmSVjDX#vE8@S>+0vn#0ZoX31Yom*@ziarxJ&AYRem7xD#SWfdDMjTUsSw48>v`tm zJdEO{tIf2B&jyCB+V1(`muo{!q^xyKd!PBq B#|ybjAI z$+|V3olj}u-!`6`BW{wXXzUaSb{ z?i} edl}Q9n5zi!@APNHi?d2Psn%rnLPV zvbwz-C#UAOX7Jf#$aOBka(31Qi46O>n*@*?dU^-c*xQt#oQq@lt#Rj{d)Fl{H7R>D zJ!+NE*S=kS;JN A#lx(jw&T|Jv92fBN*7 zb_04X$Cc{yTv2Ce`)c5}rO%itJEl&ef=8N7fCmeV40f*N$4O=Q>GE}LcqkZ^cbdmo z=GzUfi}mJXoI+{9F*mD#QJ@FVQyVhVFfd#9)U`>$NtnzPG(a*w-4>{}6;)_7z&iQC zh4p1oMqNP#fc+Ktb#_pe-m*KYdpoFc`6J!a?c=DxhsCa={c%P1l+m|S9c^+Q1vX2D z1gA4VKJ+Dc^EE`7osw08_lqo+fj6iAsvtyv(i>k|7r93o_$Fe2(~AhsP*_U&x@v#E z6;U1;Gpc9|7iHd)W u;ZNBLpq3kZ(4 8L3iE+GM~vSc)^UBLYhgj!hLyyB6F478dcx_W?Edx@om1KK(p~Y< zdn1QzKm7kKF!`CZi#iHm6be4*GMUD;^rIG64*ofPo9Uz=AX~kDO88iruMDSAuy`_+ zUqBg+cb|AOaa#6hf4= -rGUkTm0 zlP#3cN^k_CKR&hsVZRz4V!i2M%GZ>DI22FZk_T~8bvHGb3XZtvoX3Xc WdgBTN4AV{EEXdl=~zTpE;eqC z&5LPOXC>NE@C*Zs#TN(Wpo!87Fo6bY%;lh39tvoAA(-YFrPkcz$>y=``(d((5?fkg z@&wwS73(nLym~_)hdkgf)4L27E4Bt70?RjV)`lFEhry1%E4IW9dBUDUpC|rk@6uQw zTkbQ%#Z&n-FI%j>q7cghc>HgIJ00Es3eo*^$8kc{ArU~~fJr$Y{p2TX713P3kLi#H z)p>3&A5*Rw%Ypnp(p67Hhb>vy_A{9Gh;jjTwBfc#oqb`)oMP|SrDGIr=2I#VK5+s* zAm4xz3%d^nf|>CsEs^R@Uo=s2S!1pz)5lg-3t`zgv?c6zASuZ+ Y&WvS7#j((&I7bBpBuFn(Y=9vUqzj>pbOK38=q2Ecl`e!LU1^~+B#;21 zs0bk-APEp536Um*-b*Onc HhnP8+w)tGl~d zBuHKk2>%Nt!!LP^W`9+>o7;2r#I^qFrS-WoL~m;)%T&6QTqUZDs#b4EiW9o-+v3%V zfP^PhKTwVv*$E3RXnP0d?r?QQFnzJ*IS>48zBPZ_@sJap(r;A=ewT9CwP38`WAZ)e zi4dia4!fps5JdE)-9zQF7RdB^{}|)>OJ2m*TY^psd@TQ1aKN+bCQR}vR#5Hq&PSf| zCtTsG-|q9`1le!}hrVjMk*!09>`U*7p~% zQy$Z(vF_LA?G3?EL&M${@GFyVvp&)sm|z9i_Br?=WP4s}xJFhTu{Waf#Eb0XRYG}n ziv5!%ec8?_bSrRvqVYW$O4pNL1uqp5fh&uK`hENH_og+q;ywgU4qcwT;Fis^2*HY@ z5F-d>Wt|XqjqY$Z)>-xypXcAcJO94q@UI ) zWA5wnfluINP3mG@RTb~McCs^aw5or+0g@IWknJXd28}-Mih-Y#2S^q4pNlLq+u4M` zqyh@ki-{ie*1_GwPA4Esy0-9&OgKNZO3K#eW@$j3Q4eGpAig}GtG2<2s$fh}&W}W~ zN 0yq!Puok?T*Jh}EY zM(5A)-o7=xYWe0>#$(4@vY8L6^*1Siy|lu;uJmYCV^E=Ma7787ALoEpF7xE>*3=(p zIQ~7fj?(7qu6r>9*-8L;Y!=VC?06il%m#Ozc`*#5sS5TdJ5m`QcrVmFfW&=O>5_Xk zmK8+Vj2Vl7^;Dn%z_EZW%~@F2Gdm{k0`5h|OTcyTNw6Er_Vz6&f+29*gBo+)M{7#q zqzas@HR5m^$>|Lv;epSZ(?uTlwZu)%Au$i(9uZ)(IWo`UW6q8*=#frg!@^#l3UKwt zeuDGJLf|?zuu};$uZC@ecqzywnGkV9$8;0!jXF8hr8Kx5scXN2gMP0=TnQRw%@M=k z!|cZ9(2W#FZ8%;}qOMciId-yDU1Dv^DP_OCU8?Xwx`$0vW*j;b=}Y%<-B_P{UQp~~ zWmlmaMlk-S=5HhT%l^+0A&YEMjLui{%dv-6?m|vib*&JF i0~*4^T5hr<#-HS<>C_mRb#ykLtn85}t#gR8#H{c{cKOX9 zm2gN=lR`TCSMz#isAGh_>Nr&7Wd7ObCbpL2?i-+(NPrP!WoIXy!)fq)ojm-G(yR;z ztCen3niwOBrjefzzZUS2$1lF>3jf*;nE!y%h^bQn)n)$PR}BX*bzt7Rpz_VgGx?Ij zT}k*DxFlh}iD Z}Sjjnjl!ca76#@%#j_u z<}DLM=v7}ow0dgzmFlTS)XTaF79!0g1*u}&76qyAO^R2iIP9dI9@7_1$^&kFBN&g_ z)SG6l)I#0fVjH^>x8h|K(5LC-!ba1@vAFP5_o54=8NRLLhI_Q*3fHJwPQ^3ALuVZW zO%G ^X~?C^s6N Oy%I8RcHc^~RNOqLLS!Dn#) zt1-{x+4vI#keraVrpwTj#!dPsOacTQCmqbaF3oqL>p~WGh8d}Q(`g&!B}L2%LlLhJ zs^lPdllS9nR!kD(GhY~b+b5*y0!?ZCxRGqJYv+?Vt)SVzoE@9GRJ37Y kmUiR~a7ksudn;sqMjB)Se@5mMrMNB6Dk00-arUZ^;qw#w z+pW#tb4Ay60TPg%^o&QsDDo`B%6`~- eJ?0!G`9RS7>37bB~IVn7Z|pWch@{ z#4 hMhwE>k^oIc(}*I`LJxl4;oHnKV;%9|?J z7W|=p-as)+347^HSZGKIu^Ygn=& 7FM$aCPIdrff0e32ser_r4P5_;Vz#< zj{mMI^=6ivv )T4W`3c*>- udw4z3=kYH}1p7;7=4Q;?M#q+pX+ux4ueiX#OtUS6I$7LR@0GQZnB`YLxBNZ&sn zwh2mFSj#o|M#bZ@3jmQZi57Dzh9>oPzRMS?VM$_QqP{DOyQ(W-UuR(rXZQ^v22J}K z&?gL3#G3RR`~6nD-n8X0Llu$B)v%Q4AFE=T>d1rjlDj mMuj zM>lb~k@8P9lG8=mquNr=R%*k`TL%iRTa7HKlLy*M=!C@%_&oI-D~~awNo@X2D6( z?`$SMjFB=}3O42cnk)t1=5S0wH6wAXC<9kiRafVj|G2aHJkCgG(QVqPrR1-n;YTzO zTbM`t52#K&H!qXT!vTX;=Dn@sGmn{ojsgNYhsQHxXJ*d?vY!NXS5Umj{Kb6M_x<*C z2K;JtW87y#UD{`>oy(COr53T{%?wnsT{vAA%_1K!TibM^)p9tvoLt>wor(_6sJP24 zTPM+^(dq>{>hTWGF1ii?q<38+XU_h#tsU`fJ?x4~SjMZokmpGa2pqU=FksKp+`%W< zg~?#G)Qxm bHI! *65fr_V Noe3imH77R#${YE%b?*vx zOu)WtnnFv!;#y>ZfVZtyyo&G2(u(ipI2(H6zyePuli-_-ncPfOb-dINcJ2SDWd0fc z-LC1n(O8l*pZS0+5%OcWvNnaig!f7+e?fZbzH2l^*I zl*j(`DJ2nOHiR+_sNZl}lzOs{FN*B8*~vZ2$;lL#0}aT%Z?GtG{TZ50>OFL3z^$ty z$$Z$0K;3@|5_x;ebLX9Fp}?h@u|ZB1Fe&z!=jhMlV}p~I% rTQyS?*++(x}r*1Qi(g$P>$yIFC8lKgca z=I%t3Le`TqfFUN5q%f&i7ylro5`Vbu-FiCITkb?z6~5=r>(;8s^VUnn$dwU$8UmJN zICP+xis;#F-W$s0m*zm&b6bv0`F(plv=b%G=|!*3`jB#d=m4V=PRJa3?K3vFVA@AX zLyJ0(PM@T$;@32h?jK8B9JFuE&8wCWg;8T*U$4pqX(7UH0`Xgo@w-dqqo>mZw-*Oq zubqBbJGN$XNGq#WOS#; I^7j{*bFydVAk>jUa3kvyxJlPL*LSGmFU>aeY4$KHb z=jj$* Fq`)H%dxoyh=^N?JQDGH z-^*^fQlrDK8b Z@L>sFYLCG909LtW@`;i8R+?fGdo$=&6s4Y?Cn$}Mk@$43Y|#cAy{Zx9xy zMvfvVGV-}9o)gnsn&!zkq-Q +w&qDy|7g{fL|@kLGj|Q0=&LAIICn^d#jc zTid!39QFW5(GlQWrgg>Ee@IKRpQY|LXe+)6>V#Qu48aJCXnG*o{utGo@M&eONjJ!= zrUFo6KPh4hpfm f(7bBu;_91F<48IW8ioAuN-dCGc6 zPRXa*4-y1y+0fy$dTKGy6&~LV9roB&ty7S?>O&u6XYPCaRP$*(VD0Cr9tz!6I#JZ8 z6tXxW`Mr_CW4R_@F2Q*Ix|F>AJ|Gk9HqbVJ0ZZsyv1&hsm(Ye0hNF>Tn?d>guW867 z*O9ADh!%`?jI;zIa3eW`9SN-aA@M6lwlDqR&oN_!vpFu7#QcoMPbyuYm=d#~L*VS; zI%^a8xrs7_m&W2q>Mm_fgsU`=3tZm|f}~csB^!-kPk?Q;OAAr6lGeLfgo)vGF69eN z4}H_+@|MSwu>Es}haXTYL>27fRaL!hGpvtkU=uHEmd@izk7VX23cFjJf<~H=?|U#a zT7l{&*yErJkUszCoxwb7bUYc`>$%Kx0tca)7>E>Dmc$WSv;9JBiF@!dM04-Ld+vpo zYs2WD`cXLCibY2&p?f(SH8y0>JlUz6;3QAbGG^3*GtlRuTwPs!v6mJ+B|a ?4v2+{i@lpJM2pd|F|s8o zA+-|->8`*$BAd!syt)JyE{U4)-LI5xyU+(ngL3&}`s5)d`KLjzI>t$6@s=KR8^H~; zUsuw2kzzZ<51Xp;CkoJFoSu@3H5X8sRr`QqzqB#V1yuAll^X6ao4TU_S(t30y>?e{ zN~nzevIw!XZSjmNKi#x rLH#co>W&*v&G%X*- R_|?=ecrGio8&o{$|U*>b !Dipa>0cP1Adc4 ze&*hOqW7IXnRZG?${liYme0dsiwF?oNv>`ff=yYR7WAwa3=ns(&h(Kbkb*B)=7{)G zbQ+)YT(eu58H99$lK2uz&aLwW1=;FG#0Ia`q1A=8&wS>+7h`6sswj8^?D@vnOAy%s zOcPeinZT;8Nu6CBb8M+wnJR}Wy$Tv|RPjiN#Z^6embO(5hg|Zr7cExrMH4|TgZ(OX z?)Um)aY{0A=CR3n ~E8fx>r;L|w)GEtaO7MI |{h$~u!vG|i%{j~ncmECQ>B7 wZk~GuL47MlL5g8GXc@i7;S|V)ZDaSS)|1MQG(gTxyvZKjDqTj!iEiUu1)C0z&-h#U;a$%5PH$x%co917#n*M zSs2=}tY<9!@%m4OQ9GxX#7sZr-aqwSaBj8Ufwy~6TL=CJk}sTGon468FD9SK^_Og6 zcVzpHvM7tvBj3F`_@6#Jf7r<% 5jtmy>@Q&}Y4Mjm#w8hRn%y6=+O@L2+{#=^EnXCVM^1p5H z|4BcPbW5uCp&vubQ9Hg2BfdjC-O+DPB_%|zDU#2%y#D1U!+5>O2V%&bU18p2Ilj5| z&rIgy`D}hC 9QAmeLlDrfe<1kjQDcloU3`tia zX5TT-xS(5|JG04%6O_tesnD4r7iVx*UBNArvx2E>ug`ue|21hX#{(F^geQ2de{!dX zPiL=>6D=)1`Xxmt6TK-W6+Di9I}XB9OkWQeD!=JurQ!kZ#4Wx>TD?{uu#uB=9&vir z@7UYaavk5-oc(dO{)2EeZT+$gRJcm{RETed0hb1uf32x9$eE)~TyTWU?p&Na*^;&} z`%ABXX2II@P;i~V=%=X}O{*bT@K)l3q=$klnSROU_S8idk)oVBEo55N)7PLLRXjE| zV>ehB<8E1=*KkkZ$neKW`N=bcNoM2SxDZ5c4JO%8XJzvV^_RE39BBh`KQEq%yK-ek zh3PfvAkvem{?N_@P)dQx53jhr+0K7Iy$G5ftSyg|wR6N`KUu^bBZ_qlCYNOn%WHrg zC4M=(!q)SWz7!wEYAre}O$B5*PiHiPGuE0cw03=jikZvzAh9wgMVndUBuEe-qN0<- zy-uy_X~ YR^4e)HTWT;I7@6?x-mIdl9|V5YB_Ee>>V8>Hr@O1?NqQHDEr(y zL@8FaxHDc_$RzqlLikCXy&&k3j7Ew6yz1M=BxYr%%cOsr5mrc9{lpKN_0NgR&U9H^ zwg3{iT#qzR3|j>S((Ka|fo-R|!mtr1vMkox`bgu6vSr;k0UJ?FRcWp`yv<3Xue#1> zA~Uw%4bOI=zvbSbDy@5~FhlXunB#^!>hL24Q>|*Bh-q4M8`YMG*(A3Tjq&Df65oNd zeBrz(@`3h#UtC4X-TLQrTLIFez;=_!i?4=x-TL?R;{VmYF5u=Q26cl)gHJNhX@QHd zuG_AbRe7C-yUH;!`<}-=ifMxkI}220M?V#mnO2q?6!DoaUkbm(LS=N3ePf2Y$|2G- zY(KD;N+7np!F=>#@)9t zUc;}t_K!+SlHVpf4>B_&tIh{P1$cb6*@2g2E?sTR`EHmM%EOL07Zx?+Ll`0k0J^}y zsy%wAX;18(O`*X_%&hDDsL`pZnzO$~r}6KoccIQ!h2{vZ7p53zXBPW*>q<2pd>-QO zZi&@TOuNXm#2{HgI;8ZM2?axz{Ub)nTg*%(W@0RluBqMv*kez_?)^*_AbZJ38p|-A zz_x;>b~g`|p>P8Hg%g^#00EJ^d2CKgB!{P-^Zs$QM8g%_U2S iTpOcH*#oZ| zVTF={1NapS^uCoBYR{w|x{_)+o^XU^Dcvf4h&UukV%4-n0~PvGEU-{<*NSE?x1+dS z@e#(z*QBXXp2*IPWc8wl;0Brg3t43|q4lOw`h+@7!ys1owmht>rO_}08oS=n9*!at zG?pN?GQNv~6JssitWF08_gE83#q4``Gp#w~121q>uHf$A>cYg0P?c04`BKY 7)i^-g;zBFIMyKIo zN=Os#MfSGSi&ZE`9z*ys*#9Ck$Xn@D_y{v;F%sEwT(M7>VRE-ux^ryg2c6kIfZ(Ph zv3aMdTTDkt?_{UHtC>TzJ +IMwRK!{3_Yq zz*P`jKxlT!c*$BtPpSaPZ bpO?B*Ge%es zS_t{f_d!!U25 LwSmug^7zNsJ5dYe4!2RBANs>}4kt!cbF$ zw{**TAB*y#0TPVtS8^Q`niaOes*(jZVG>Y_Opsj${uh_t_%01klQv`lHEo;3bK$}^ z)_(BkO_M0e!v~#?;!Z(<#RW-_P&Jm$4jUPZmYTUtfD03r+mT+<_Jxf!usLwCi-u$D zb@dNi4QM_(%HKl`lfo* x-8AdGQxd1I| zykRMRxQ-hgtMKClMkeMHU7k4EmASYs+(AW2|AJOEczRVnc1zNSX>SfJ0rD{Wa1#>? zs@6>dY-mw=_|x8;Mb~kGUf9TIz6-;eti$@9wAE0?g_s|ht_3C8aa}=O0RYH_Jk|Fx zGko7(`>)PRe8=w}5Gc#peXejbENc;{wD{^RxvL1SYLn>XNHC2iY&k^+GO%6!{^`Gs zl|@A+uc&I@p7I*f!0d~brNFpE2;AL&AU&pUlu_ 2cMq+{;9pOn7j0>^0Zh?E z#v@6l|5>n@|Gcsgze0cs^6@?)O?^yLv#pE%D#DolQm0ePFn`?t!L4^xe0Cz4^5nZh zh>_V;gSY=6r(nCtXY}UdO6h&)cUjR$&+Kir8>K%JlRs_TZc+_=a*`L#U(=*HG3AwA z`fiJ(L@RleYWUdE@Q2KaMj{RjnJ2zH%Q`ac?*1gtOLLolZsFOzkA{L-_H)HIVjYJ4 zV%;22d+Ol`*VG;H!1M~6%x4@NF~K!+#zoVw8n8#-b|o>-sbnB%Jk^9J8!a0V?6Cmx zh#js*U09rV Z-&3>w#Nr(=IaIKj!cr9B;i9$>Q#!7%@+%KNg zRO06ar^Pe;&{PCPO^zdmTAIOw$*B(X<@Gyx!&9wq(v}xB3U&)8ir7m2Bi!BrsDfkI zMnZw+(>+1Y4|eE*^#%g^$}7^La 3fM1%Z8T87^R_cs-TG*#fEx8wK38ox=Y=xoV zY@v4O70)ueo>IZiI)sc#mqh(*`C*_R!b^>gZKT#7#TCk;mJqF!N4{C(t}ib&Z90Nt zbLGc&HY8I@N^v7 pOnUjHSL}-s_+x+sWlK>rYBVw9!d%a+slG-mk7Cf_1qYhdC0jt#4@tA zX1kcRRN9tl6!};CZBPKfo=3~I$LK*qX7vIp5NMqoarF0Ov>4_6Y5>gUswwfT#&3^r z&5S%H*S~JBZA=58#ujcNLl5MSk9*#o2??|+kQ;#d#mqKL^MVG#wHafGROS% =c z_ii5keyq_@OPfSlTIjOayTF7r& 57pq>ht2^99XeK15c# z-pe`Yhm|fWUa`yzJmX;xS+A>IRSDHg% 8A;=<8Y^9Gk`vIkjO}1_mIXW zp@O~0+dedfK#1s8MO*E7XHkB49Z-ct*q5a2WAA#7dIfK#r`!6D(1!@e|Zx7V+-)6#51aZwyCCwV+=lQ_Ru_gOC&&} zaTEVq^ylQ{9|@)NA7{NEZe7GmT*9_WGU+9lgEr|=Sgo=i8@m1iGu?GS#1FVK$_}6u zk*Hy3XK#1h2|=SHhZoQukk*MH*uXsdHBrHF-zH@KzQzt$v)HzHa!P-6J^j>!88=Oh z)< ?usslo=6OY eJb%(<6a=oL;1@lyG#aw<#!6 z&+;HP4*o=>SFnTq+D-FRgUQVv{SQ;Gwz;AcpZT01I>(G}k2|Ef2C~nO)Xt0ZZ1#lJ z{V&i4+~J?TYViNQZTwYbf571fzLVGfZZ*FX3I4k||0x%~^t8WwqrWxmH!uEfmVeHL IZ$A(H8`_T>sQ>@~ literal 0 HcmV?d00001 diff --git a/docs/group-drag-preview.png b/docs/group-drag-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..36fac4be94c767cb8166b768781d5a540e2d2562 GIT binary patch literal 34068 zcmeFZ2UwHKwl^NSG?m^_>4YM^gM!k61R;dpn Rgg@hVVN(iAz?;suN9Te%k zC`ClT`UUqsXYaf3KINW!zyEW;=YNKW$+Y)<=UuaA&04=%^Zt1KV+n8>q^79`z{3Lo z@Nj>CA8!G-0K|ku#6*O|#6-j-B*YiUE|Zawl9JJ0yhL%CftHbxftH@0nT`7jGYcmx zJ^fX|tDHQ%{6K!DD?%bdd?MU@{Cwv(!6P9dA-h0ELq uA;AS)LjW#I zMMy+Vb4`?3S=VEXgqDs&N)KY4lp`iC4Yl#|ewvJ^>gcp>r{`1&4XdbR;F8cc@C;wQ za0@wpu#CGU6Yg2(;V)0a{r-F)u1bjNyf3&cAt5orFZFm-_|&2VG}nk|^>PU5#FRNW z#dSSG+sBrF%mOHIy}_p Ssit4NZ9L^Xs xd$8n1<};dM|rR&$uF|S)k6d zhcQ<)1I;ka$k( |wCzIr2k{QPrfyQ~3F?ZZtajh~!{ zN6i(D7ZK9-GxNttwY%-fO?=f?0PXJoOaJWvQbGXNWnscl_dh=TALU6V8|c=CFMYr9 zdChm2m!mno{Rg1;2f!@hjrnQ_j%?fx@9B-uIw7x)nso#`s10N8#iX#KO$P#Y1I*q_ zIj$YV!+jmg&lZf{%DG<)DduhvqrX@byxEu&j=4}hE?MDk1c^giWhYjp_su4wAIF&n z>*S6VV=m@@zJyx$)L}0jzmG3E75)QYqj)1~T~uM5%tfk>u~}RPhS5{Vb~Eu0zFmik zdR$cG)Ku=5exHX4#VwJn_D$|E$#m?9RY?gBo6pkNIJPFA4-*UOH4(^SKCYPDK1@=$ zH3FPWNvnmeR@6sv`*yth^g=3f29zYVW1GV)SC*KePGjnr^`^yC99uEL)8TxqqY&9- zw!JKRP|AYk-0;T8Rl1mMjrL4+^afegjqcc36ZwwiJRX8|K6<+1v zmpgy9AZKAdY;;@%f4!8sZX96(=C8Azw@-^QiE$Rxu4}`)3Bc#lq$VK83;Dxv5aX|z z{h{c;mSteT4L!%rKVF1C7C+!fz$oU(4CtZAAPx}?=LvmIVb%Bi9~Xx05t&rspWpDl z)>Df+OFsasKLBOw&MTe*eW)v6A0EGYk6e%e;J1qDVcP9q!M76S+dgz;Ho;i$B+?d6 zR;TZKH8 ny<6@7Ftt#d!Yt`emc%;ax( z8eN^?%PD{FMx_`XFs _hp=> SF#wU639r zavxz~ub}NY9r|&iMneYKCp~6WJ#Ive(j2?_n*+2T_e4s}%E*1n8Z{eb#d~2q+0u7~ zrsl_m9Z$w$T1C6f=(o+16Qg=%hkFfBHL4;eOJ-&O9ODvox8ZrX1O9GiffS#p4^U05 z8loQtpvDmq&r{=9nS0KnxN!5TxT>q*ZP1i&td(&erN)xY5eYcYkTJM>AePkid;YBq zvrVSesnZOZ!KwB=t2zwCoXdrCJdsyN23c1{cV~NNuD$B@t~n=+9T8v>P=W@Z2xv)W zW|ff#&O7BJxkjV~J6v4lm>%#zWy0q5%Cz!lx@O+=Y+ho>0A2DT`