From e5f4ad72d66fd4f3dca607182ac0f7d8ae9fe9fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Sat, 18 Apr 2020 14:31:32 +0200 Subject: [PATCH] Add test for git reclaim of workdir --- .../spi/SimpleGitWorkdirFactory.java | 4 +- .../spi/SimpleGitWorkdirFactoryTest.java | 86 ++++++++++++++++++ .../spi/scm-git-spi-test-workdir.zip | Bin 0 -> 40348 bytes 3 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 scm-plugins/scm-git-plugin/src/test/resources/sonia/scm/repository/spi/scm-git-spi-test-workdir.zip diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/SimpleGitWorkdirFactory.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/SimpleGitWorkdirFactory.java index aeb2575797..e75b8775cc 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/SimpleGitWorkdirFactory.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/SimpleGitWorkdirFactory.java @@ -93,8 +93,8 @@ public class SimpleGitWorkdirFactory extends SimpleWorkdirFactory(null, repo, target); } catch (GitAPIException e) { @@ -106,7 +106,7 @@ public class SimpleGitWorkdirFactory extends SimpleWorkdirFactoryHyb|J!c9-wP!^r0Od%G+%y~@L#+6@$pKADc8S; z!2cHn{s#)0-?c4&g&=VR`(FUq9{~QQANUIiK+4+I;~N(k-~4nYBrdQ6|Csj6kyfFK zAMYb4BWnT{-Pd2Yb;1*T{*9CFiwtf=D=RAs?87^zg}o3RlRNZBprCaE-b~23=U(5P zAb4TD98>+@ki3MX-_dCt=B)ge1;?x zk}t&aTx4gsGmz^%y!kBWxzqFJNQCHzM(T*epRrP#36<;ViMdTlfrUzwc6o`?&!K2$ zvhPLhpJ((plO3F`-T(8TzUkgSF_^y|)E5jl0`Y$Z;`kZJhJeBUH{3S?lDYM)&I8z7 z8nAeO2j_@!_aM0aEm0(E@q?v^Y*(af1hFXem#1Q{gxgp{L>*O{_lF^AV|hej8aq8- z%*^dtzuTs^E)CMSab$n&X%()P($>_#Qw*t(J6T{mIDBmNeG>h;${O+=&)Rg9XLY6z zWwgoa$umXW-_^8}@A=V5#}f@^-F^9|W}Xe6{(Q9aGtKW0iR))V+z5`&9)$nq%&$+3 z|M!5-ZnoC8PX8$hzvj5$f8wgEDysay$oOB=!}J|J|F7=-*Ju21uVcDnY~{a^p&o^_Of+EKd@Ka);*UCcqD1<{QB7M9`OstetX20 z82tlzOZRpF5gjsuMnE1w)d1GtvWF+Q= z7bhYaNpe8!Dl4hj>k+qxy`=B3o;XG6x@#m25%cou%h2ISYh?Ua_f1vz+m;(9-%bL7jC^`8^ch!HbyPIkWYUFEB2tG)ygRn>n(YbL3x&7yvJmmQ@Q{K1W6r8n;*ye;QG z4?D`rKOA|r>{_wrzWMn~Rn-qVHo3wgxsZyCHkNY5Za9cQjd=Il?gmW%~|~{JzY6jr5>&d@wu@pYv@S2o#+t-Lp^&`vmD{6GvwW84K-nr;JjjR6-Sr}8y~2tD{}_7znHWoPvyrNMZSVj{HOl9<@zUf&fw)N`x(Q0YxXR zpGX0az!*FNhk)Xd1PB-bfr3zY1R4QFVxdqpo`A=L@n{GLjQc{$qu-H|9i?d33@FFl zWzjML?gIxaSVgkcxKC3?N_4X)`p_9o%hpU(k9_~J+soH(9v>LCr#v(J`Rx*Y zCFjwLf52b@;tv=sqp`Fc05F%dequ0y1Vcbk2s9Xl!y#cv0vZVj2nGd0<6(Fl4vZpV z5eOn04E>wIaYxyIbRa(D;-Z>5h9DTk8U#ceP_VxGm%PvlR8@VYAGx+x(s)9vm(W>w zIB~xbrC~IcQS`4eMF^OTA{ZaCG{d`GUwQLR63R7GN3+(YA>&g0we-Zndx@oxb7CTA zYfsi4E>!+lAALF3^}QDpnO+zy@DF$g0{sE+#u17saDZ>5^%L&^Bq$6I$KXL=7#@Ko zA~6Ug7=eePVQ35jgT%uL5Ht>qKzU-E8C&k)w?FFV@1v<%fdrH`q1Xmshk((F<1 z($X~qysf&Xp-8t@d#~0j3NmdQrhz{o7Y5rVxx5C#deJWXm;wP(N$V$a0VFU6ga>26 zI2;}ZgQJO1FbImkBH=JF5sHK&kVrfl5FEr8Q6U0iLRvq>8ov{j=_;c4+vdoX{<+QE zg&WHQ^*NhhFR9~-tS01B32VvEa@^UZo!899p37O+I$b)6pjcdV4)Zoo(O{D zAt)FQ0hoCR5`lw&a3CUx0LLP>)Pa(hgS1&XV@r+i}3O{3uz5A>zQCw!Z4;#nk;~{ z`MFfJX8fAsp&pN!k8hZjEo>g2$?R7=`Mlb%)>&SA*I4(k_2wTO3Ih2DhoW81GJF#_ z5YqbTPyi$t4ui%(Ab^J=B0vxb3=1Mcp;!U|NW36$G!}}4;URd?ziUT!lolNYm_>zj zC|n^+S??)#UE2F>Z<-TF@&yK-w;zcUj36iC;E`YKCDg$;*1)cZ8vWT z=RzKv+a9{$IDPku*%XAO>@dn$!1reB<%Gva4(w@?o8s<^iM|dEx-sxfz%h`wkimGu zA_$3Mq|seCSrcbGVt;qRz_yd8Z`Dd^sP&$H=0m%(7xn_9@|=eJwzW{0KkS39@k#H2 zqtoA5Oo~P_t7F}@0H%=EuNZ?yVnJ9Ufe6JRQFuH8j0S876o-HziC`!agnXp!t z5Ebpv7L(MFBF)zJ1KwI<_3YGkIC!baV~pEr@<$Rz{Fw{hD5^{%hUxdyfTJ z3xw(umkGLY)Fcb5h^1a*$hKVkP%U&WHF<0e4ZCfceZQHEmOX~&m$lLmyQ7r$J-;f$ zUZ-;#2=|1#vke-2pnEsKW5(1|)3xNPTc~MU{*qBK!l1o$*^Pp1KfCdhKR5@}cEgVZ07z6?aC*TMKA_0X3^c9B0V*yhNMi8KQ6dHphAP5LN_{%wP zk3G=+h0*sRckEHLYXY$ZPZaouKjylqw!4!xD25&%Z)pYFjnNlpDmlHmyYTLrvk_^+ zXY#WH_igqkiS5m!SKPlV2VdjurRn7*(m+?ueP8oLkgJdTpm8YrT3L{4j3+*_hkR$s zstxun${^=r59{-L^}bJe&sGWsPwcx?;d0*;w)KG63)aS@W- zb@nJRF~p#^&4O1B{;t2%^i)nQJY)pS|EPLFt+$4QKlXDhH|n5HbZ1U5?oxe>?03)X0YXa<1P(-vL?QxWVsfkqRsFc=sQ_+JzP z3c^F-2rv!}1!6udP-MelkvPmZLHZ>rzmA)4T-$du&L;nZtYWtR9JJh%A9RC+tN5&*7y!#IrMBHwq%>pop=UUe8-?~fy2@8e80GYyJFlZc5s6}JZa2N!F zL*p@6BnXCpBjHFuW49QXd;AZW07q|A!$?wsYdE6X0Z0gG z{Ujv-5(JM#BXM{r0tST;;Ak)mFw!V21Pd4uIE)A*f)P*{cuT`bQu2$c7+|WSw1Cu~ zMWu9E^t1qI)ue<<`I>?gNZ7`+vM9`v+SGkhq_n5NQt?putZN)oYjEW=m3tu%h=Chv&0cqZ!@S?(|O+;^;`mF?3(4eiSgVd6U{f_m#7 z>`2RZ?%i?n+z4--)g<{!zQ>b_can}dr_Y|RKuA3aW*N8O${pQzC(_Os$*x>yj&Sg#03io|K=G*Kb94 zQVjF2Dd&Gi!szW5Clk%AbqckM&)o-9nzVjWYXAw01}b-G5Q@~Jf+3L*pi+r}f^k4; z4}*YV2pBL14u@=|13@*<&3_$%MOkQ4g4u(8d&K6?xZdB?zOGJhasE!A_Iz!R-e4R| z*;AvSDUzpOZLG%|bvF69nuHybrZ(Ab$^m(b%k%~7 zNHABEq zNHiP@)cl}$EFO;~f-wjnG=ppjCg1LR|CWoupv3R|@Bb%CeJ!9X<2h^XD0>L{@}-(2 z;fUUF$syl&?g2gvkFaA2WVjiX8-KuB(4SOh*cTe#*#K-Mt)Ey6AOVcT!m&sM43C9@ zp>PyX1OVz{2qFw{T{svDg9U>K*sTEfx0RV+MmE2%ko|G~wu6kWTg>(kI0XO4Jl4M& z5*vr*Nb4sK0Z2ea6v(+iNC?0wJRS}dP2dC|Aw~g(EI3dizybds_gC$z zWY50}AEe@IBD_^^{(nLE^x!Qw+drKWwTk6epU2(*0AB_>&-g{oTS#N`~=x zJZJW_;p8MpsZ9B+9n z*w6KB3NqX@P4_p_NL7=hCS_s;uo=?&)rQb;A_#&<pcRHddh!K6|rK*_ozJ0=JCA}C{-n_f+gV})^s_?XS zdld$W%W-TR5hjBAam6BB9BuaUW4q73e)m2=dhmfZ?;ga3)cJ)^i$gP|v%AjjrrXEp z8gyufitst)+L3i#&}!v9*L;^^8kYsf)Q1J;7GlF^^;hW2M)kqpxb&aCnYi6>kJ16J zn{KmTI2+(KY5l}+00{xYppZ}$0fvE~p-?Cig}?#DDI^h%!~od`7=i-B;LxoKzbfDv zewox}_iT-T=|4iZya|rcW{nL9<881%kia88e8kS}T*PV0O6SE-**))T$xm0>i$kq6 zrKp|ziIM&Kag+nxS{Zxtk%H*32bnjl%}&`Wgam1EzI%KyjwL9C7<<9>W#Awy-b1QX zvsTA5nEpc<>xoZ?r!0j~?`T41Xr|uXNSV!N&h8Ng9kybSxgK1LFw4`a9BbXYIuxO0 zL0hN#VTZhc!O9=77r$M{ONt0l*G;v5TmAr$fLc9}!l3|GA|XJmg9TIyXkQW_AP5XX z00Ge;9E2lm<-PwI5dys+CI<@4ACLmsZux^GDUZSP(`f#e;H!eQ`O6ci3760t}k6olSN3`mmlZ}m(N5C{IFZTSBKGfqKvDfc++4_Hsw zZlmEiP1KodNJ@k9dM;~f6=y=y6vKI8=O%^|WJ=>!+PHpJFv}MVaF7p0KEfKO^TSW>a zq#&|;H~Z^NPMSc9#m_*+`v<3r+HT2*3bC98NFlAC$N`W@#ZNpG1aw2NI20bJOT&>^ zFdB~n(ndh95KuG_E`hde!*3e|j4g_+je8l$6nbj{m`(QT?Ox?&4It!bs@XBuS+10n zc@HoR%*CwOY-Crymut1_%1l|Qjhfk9PQS1=cu{%y#L*8%OT&;ZS4lFco<@1t{s4*2 zH+#O>7#|Q8g2RK+Ky3mC#lgM=2qazjWq|Ot zMr1u_uynY2+L=BCly{rbJ>bevBi6y*#(Q2sc;DSOmK;NwZetZfR+BEfgeVeE+&(8zj(${VLJNJN&Y%A zc7YRn|KLan+wF9bJVVL7#k-uqagf$eM*<)LQ6m8aLg0YzCy-zgfSxB9i3Gw%C=f$H zQ7~X=hXBNpUykIro?%NbtwoON^z>>0iYeGm<@*QpK>kEAgQjDAp#UwU^%Fe+5(Y&8 zGGsvifB{+@9*=@Tfqn%6i2#FeSQy~Q2_OU%^Br5P≶S=I{6(jO3u*sfb=2PO+1vQU-(HbMcA5NIIs2SGqY zI37q`F+?D3MS-D2A{fXDU_eNSf&vBTEu(4zjCcG}pSFm_ssqEJOimQoZ={gsy~y(p zG35cACas^i4Qv2{!4lDUz>VR6ZYds#Kmv9g3=B39z+f;b6F|ZVK<(m-^pNJgejR}V zMPEuV3w7y3(bLYL7_*ZgAvI8)|LExwMxJ(tfemQH=-y6ay_VQw#|4dtBZXCzLE{v; z(K@Ubqy*KL>kg#ke?NHCu%s1msP0l$@J;zo_TXErTJpazFW6H z?UsGouUHxKV7FKG9>!$(bMMXlT5r9m>VZ^<^9V$ii@IKqtuV_AbF&jFQ;6DSAV`Wrv!wfVk}e-{(vIbc7p*@!z8d@ zmM;gOhO~a72tWeF6>tLxU|JAp!=cbXC^6Oqf zqz>ubl_M4_?4?|qi2{QPyQrPVcM2ukWJK(US^8}BwEE0~WS#WOI4q^;P&xKo9EtW@7AjSvNJ z7DfQV6(j);)U>w}!x^9#^UIiXOJc0lj{|dU`lPwi12I&nKOhLU-7*wO1uW8Evi`QQ z0U!Zo4WQx#!=NE}IE+BR0dpugKpjv(PZ|b+Bk*uwpbxRtVf(EL{JOF6f3Z^c`$-Ej z)3b<~Z@eSb-DQ-mPX4y(3Q&xLk}@&`6iCc)z{DpSiO1v7Ksya+FCq~TU~mix0ui@{ zf=P9E<=;;4ZNKT7Lsu`CYP|l*c3|vq+D`Y!!_&Q@4t^3<8^@Nme;ME8o$m z=2V$68i{E<9Y1AK)_%d&@%uYoU7e22x#6MLn!#opRqpxGq|?aDC)9p3Ubs|!$R>y3jtKP+Ib6m+hsmizKoF?{m zw)G-q`wI=vKj1p*PZaUq2>0x;zO zCBOj^0McMMG%!;Q6jPBvK8Hghaa*=h_jii66+=OQ@q5jlUU7|Xaea01j$T7`G0iTm zo^cAYD@Hs2q>4q{?um^8RpQd?mp=3Yw2{_N^Z`iQd$sJ#iAgj6rb_JCa~J5#vjR(ta-%k=;+)_j|B~@C&WYKA3BPsl<}TCO=$xWRm<#- zGks#q^o%zUO>0lJOj!zn z+P6nnj+^7E_cSe@s64&YWk0cRB8|R5bYFjzv{@%phxG}QQ-L3;Cq#`j|3J|2+wG*1 z`gpdJe)!)8JpdA(NWfuuw5*5b`Miff6Q{m zLj@fCMl|H5gjyN=QDPEttOS`+cj~^ck~l~9j7>R9#)Oj5@Z%v`HdC#G2PO`vE+(1_ zxa3Eu1?xV(RMW9z;T`?doPgA;yuv5WuTQKll0Ttlqg+*RQHs2gy1Jh7?zBd^@4EI! z`dc*B3&+I%fWPSN3Ob3u7xF!te_LS!kl;Y}3Iht7Xebzo#sJv}kbw|jL^K-6Xn`qT zI1-ruM{kv6e%mMAQe>QZr-Yakslr4>CGrR4fVW#KA%#52m{HyvfXYdEe(slgC;UC{gr2qQ1l#R2q zz57=1u&tL8S^2ERE&$($LEJ$GK>YRn3|k;BZUjl3v!kP}hm)n}a=PRWGda`bgU1ev%1VWAEZ1h@y~$T~ z*e`i6)SmIScILEy%~>qf6Am?#dCv9Ji_u_i;|i9?;i|}~C$2>g{Flp*;`h&#FTCG` z8_bM6%xNY@F^E5fIoSAKpJ~lmbkaPNWapOZF}x&smwig5_d~Jf+*<26xPH8ydv*xP zl!_g=sa7lIsxUEZUb$~h-P_`=MUf1+d{5>x&|^CEfxsi=Tkv=j{hBs$z_nbKe=O66oKay*)j?CJ|Dkcyj&l>+1D8r_Xjt1iNS5x7}Me*ynyI zS~q>_)MbH*$f)dc+~UC94ySv5bH1^!BHkOj8Xw!xMIdMof6U^&%^EwwGD%(UqJdoD zS~%duarWX6T*mNlSx^q0xW}cG_9E|RiD?a=sf%j@Yx2k^>78M=)~CKtL2_?nwM_l5^D$7rr?%pm7xk(Rinrr?%iuJmKpW@k z;!qOlk9BDmPE4(5#cMjx+lYl9ouRil5k_HuRBXrC{<}wbkBHbX z3uRBFh!Y!Jn1yKFZmr7y$O;%)NT89s!DcOra8EhA$jr0*%ZHxFZwi7An7Xch0-*$9NF7q1ySz`p$w#7C+*-meGJle=CiF%9rY%IzzMkVup_MH)T|bizQB+ zNd-E0YAZHt)8;IOEl}!l*VVxl){{vI&P45%r+A^4D!Gct=>av3b#e0o$kCg}E@izq zahrihwN$(1QrQ)4O~SPacZfr}X#0bhJ1{vew_S=&lAVw}J#=(jje0#esnm}?EzjGc z5sg{R?^;gp+~pfQs8VuJIHe?_xMR|9-=|jpD&xK`;yvuKbiV7mRFZ>6G=dHpuooD+ zE70v1_R7Nxa++LxN<%Mxb3d6uQX(a4Z*}Eqq9!3(V_?+gN!DnV+?coL{*sHt7R%^MzTaEnoP>Q2vJ_yd0?KuaqSRyAw}_V z_si_LiXi)xE4Pa(QlihhUfKJeeJYtJ9e*4;JLFHM=9~6PyLHC>=}P4%^AM{Z!bG1u zvu4lLj<>f(4jm5Kxm&eelKD05folyXXMztF3QKa=oPeNnwbl9K;1I?$T$uB_+dr{A zyoxywS$r+fsQH%piVLNO=p_Nl%YA9E&qpu|S9MpIz0>@dXFAJO4+Jt@GKlL=iBPM% z!mnlerXWl5?VTO_>1HP1l(1&4=vm%?J6?nBuMB_i1Iz*U7)pdin~l}dwV_P>NDRJ&E?S(_7&sCYPaWk^WTljXxw$x zKC|FxAMsRF%IwzJ+%|@QLltQ;1!H_vjsg6aolZIqA6Y!y3zE7LFw*0q>2k)^igN0{ z+Jz1cF_)*Yblv+*Ud>AL^WLS7-0dklIaL4gZar=~%S(O_6?kw@D7=A1l_MxE`&C1Y zk?BPA=WG^1LPu!RzKzM2S?={_^@L^L^LO7l5$oN3`CPi6OVT9E=9suf@Dp<3i)t2>;rH|^8TLv!A7saQwDq5E@}_$A72R&u=6 zem|+0AVX~J`A~fGE%Tnw*4A&c`o~7oasqHQ=Qx-%ugdQUYYWm0Qm-4frWr^ETxDcusZRakn3Ft2LOWe=7IQLps&I~_iB*y*6; z+2+~w;fG`G3ZsT>{miepe9p3G=ULGgr#zDBa4bgZ4Ls)gH1&)v^)$NC)HU3R)^G!M z*}ki-GYM+HpU$Ed590vxGs`IqJ$ z(L4C2T(7kgeQ(A{ zQHqPFyUjKXS>$ny{RoI|0ZtnmkRV_sL( z`+3KtWZ{Z9ln68PPtPnIO{_~!Ix zzHCJD>DHUbH2Kf6S28q&)9|bM#S^~c(lHtjURzkaqA;DT^o>B6UM_!LXqhPSp(7?g z|KgL!H$9J6x;ZA*XlWn#l*)sTy{12Xx5viJfcIhrcNnU{6~g0SKO@@Z6_h(?ljK~g zL*^X0-}nN-9h@H+W53FMVJg;^?xW4v)#zN12+}2Xhu7`*KDuj+F=I7pfB)$*guTyNom9Y}SX&ua>>wFZMyZK3& z%GAar`u0B24UH$Q96Nbs;}LBK=fa;{NN^hGWsk71A?G#GbNnbp%(@@`*nvslzFk0J zf8U;go~mog^bYH;b!q2guX@;Vt}C1$ zDUPkkpjH(Z)o!P0aa6|cV>gg+^IGhpy&V@Aan)L{#=AD3xnogJ!Yf~PG89+stJ;xe zyyIa4baOzG!*=EP`i}1fK3MnTPA+mXvS+~B`@O(pTwEMZxnMkSHj<9+*4q$!!)S}6 zz@S*rm^)o;ff!2`N1?j93yoB?Q*F|XPX=$YCByE%D048kYh|~rp|m3nDNsA92j;C>)ba}Z zhnt6HS*P3vy{I3l=rZn7diJ8i)KxqJ8QR_45L$KnTFle?2E(Uh^i!{gvv0-`9YuU= zpQ-Hrpm~$yVk#qA`M!bv6hlJo?7XE=z$aLXkrF5eO?aHbYU8_%=nFKu*lfjg{Vu&y zlbh(JrqA`mzVh<3^E#V1xIWN-&+wS$k5@EE%m%E?-(Q{cEe~=7UahnB+D^3Osn>ZF zc!^G~?IiflE?))nj>}@|VU$Y)MuN5b44tYk>#)g&Kc!Jxm-Xt%q;-A#;IwrsbVP=? zAdcUx-RyR-ETc?Vi5Ts`HAV-cyp9H*IIQxpSwOqKV}8)hWXKaHIq~=!6C7Y4Kn(&Z{lNZXvQ`1Nm+BjL6(_0Tpgp#5Axm|wCz3c_C-vZozmlR`$IMq zSv#^?I(S_Nq?N+7q;INz`V^B_1RXcj*+_&OlYLIvdYnn^VR~W1i%^Z~Wa(7?tEH!8 z5_GPvl(xWLb(!}`9Bb!@ST5<`$-pljYHSw1JPhtCAWWeJ)-S##5*dvvRI`SdNa53f!iOTYivll7{_nc~`@u$=mh z)MBKxg0A;la@G;(`z|@?rS6{0GA{(5c#6>g=bYEv0kpH>q}s&$6DIjfLoLqEx|U3# zZSh08YIDm>wS5N)RZTf!h^;50J8$2TJEg3723_8$wJLEIAs*biIN!C_!8qt42tkK5 zSlwE`&CeXCG1XmMrsgie>NR{RFRSZjfyh-$BER~$S|@sEih->gTz@$2hElcS8JaT! z){LC5Zm{-XjQirtj`HX{yk%z^`kJC-TEI}#`0il_?3yDhHF=iL(qr%Nx zbe36^B1%j#_xFfZ-OjdHGNw8Z>CP;`MBOrI(1Y+s%}pIYy;Ia%0;lD3B2rL|Qp=##vXgl#!~H(!XC%fsc~*{5aZvKM#c z`6U%7s5YGtr&5-Hc z=M*FQ$5&%k2RgShEG$p(&@i;@Tz-$O}E_QP>$?t+99W6$80x~-JId`GcT^5t2yK8 zw?6ZNAD%YGKc{c)IJ9|WqYkk_w`(I~Fe00p+&_IfOO4InuRFACZF=8_sVk@Qlyj+1 zryJA0pvcCVUPE^iXb8Kc7`R$feU$c0I@#wazvvE1Ef7XmJmemfzY2PE?YMKW7u~Fq z#dyzchEh=>8^?+<6C34Ve`$J9$0vTb#}jPVOfD04xZN6+=$f_+Ebzj-yR5?6C=81? z!+s>^(kO-CVtq{#G*Tq{K3CO51?npxcM{qSdrsfhiMs96$|hoP`EJl9j$8PK$fFs} zi*9{kIeV*37)&fb`06EPG$xcC)PCHXRWV#4SIVN7F35~B<$9K1+Innw!f-Ul6? zN|udGn1m8nc#2q@wwjT6#>)x1$3u=XZM)?n~iX^r3AFK@BDb8JKl!vk7elZ`Moinby z8snlLTY9I)u&#(8mwZ;E?+KChu&Qxnj3Bm)Y4Y`;2HBgK(o*Q16VJKMQ}_`~X_M0J zA>?O=Gp!R}>36ZRh_STTMe|lGQt9_O$z)jPeL8gFokH-<6HjNAqs_0J&}MLUgv;>H z@$pWRD{1I8Gm@Rs*va*&UQm=#>cOlgzmuHYUYGoSyp!yjK%C#9S`9VEPh-jbQx96$ zeGW8IyBT9wr$S$3PP|=U9%XqQc;jTr6WV+Va!1L))PyvXwB+@O5A8e6rHxSxUJr9u zLv7xC#>@%VFEhK3`c}OuFtBoU3KkdA{J3u})N2gB(Zp+;U)*_S?6POV!|pQ;Z!ac3 zzjZ2rfnWK;K8aM}GFhL|7nL01mU=D;xf8eS%;uWfjO**q>9$A6P2KW#Vpa=HDLhFh z5DWiqmFJGd=f^22H6yTVs!Fj+ z+B}T)4c7`rReYcAV0r5Ig62S4T&m0PJ@d0F_M^^vNF!aj6LS2`5mvpIp_Kd8-QM>} zeJl?2u3#78a$@$(erMKvVu!s~?2?CkAG_Mb{Kh5w(>z{<6CP=ISL!SsJfA94V{z>& z+{9+da^{6iHbkzwUtI8c4A1=f$j zfwQ}Z85M%th8*D zBg}UQl*J3>PuxYD5cxJ;(W_6MM%+$LFkCutT50OmlWB*l64*sG zn7rJ&U)QA)ZK_y~EZb%eNfJUlECv?Ji_4;K4(v4} zUfC^(3$6%ZjgQx&ZFkwYYj#m1Zf8rz0orvDEiKLgoFV(V+=E+IHxK&Q6z}^aT6(ss zN1`j|SbVH}mXXBBLt=G#0a%3dloXrV{L37%-Uo>Xk1ItenceJ$w!u*u?alo|@x^B0 zjZe96LTzm%8GJtEFA3=+V4i^_%0ympoF!I08wm>0jFk|(oBl!b%4cxB_p=9PrMaoD zL)RG3M2g(nV`gmUINqFi+wMiiEeR$$P&|` zNM)DvQMMH!Im6D~p~z_XL9n-r?zB~r;b~}O#@jbRG13+=yX?($ql&( z|MECLzf)eW%HH1km;4n%Js1KH?xj9ZRIZ*|AU?7?MO_?Q5s%J!fP@1nm&a+23q@{(-xnJ4D!Dc8>4<1sc>*{uQ#(l1;X&%nPZ|H zjS8RRrsEY6)7{d^TDoCt1`l1+Ps|foE+oIK%A*flk+M1;N&oO=eSVs^_Yx0(i@0iU zeUiZ@Tr-DgP^0QE@$oGC(^8?~anCGxo=wB6e7Q)L=-0PvmMagNpP!{tFA`zA_wY&g z1+jw^`(^@#M-n|sTUuT+%bneuC$M+m$?JqW87sW*7q6Rf7824AyA|b_J1gzL(Kyg} z)$CZee`FUet}dxhoYwN11r03nW#`I1;U3Rb*VR1If8@a)N6yY+llz?BeF8TjV<(_Z zANr5FR1|;gduja^9oKj0sbX0Ll5hDF*YHR$|8m8wjF-!Xr$ASddgxp4S*N^w_&{Fm zh0|-0M|nsBN5$ zc;|@tgPup(G-&z^9F(f|UI{F%l;2pLe>;nklkSSyzh0JZf^m2&^1}3y&saeFO^52n z(iMVy7?0lw*q6#b_{N>HXKEjZPTXy3XU4`@ZaAtya~2rERYy|?`@FvG(rytC32n@Mq^OEre|FbAfBqyFAl&Q>z*83yNYG z3#{1ua98Mqz)DiiqU(pvk1y6DkW-JOPo7lK_ZGRE(inDJ%08W~)SJJMDzR57gX#%* zCdYa3J=n4n-w{CWC&4b7Y0hoHC8u}jPMYejL)l1zgtstF;oesIH#CE7BjU!KqlJPV zLFXY)iG^t`Sc z%^@Cp)Beh+sMd^r{S9cGr|f&kGl#tU%MF;&<>0UVC&&B3xg$@1Fg> zww5`Oqvw;N64-jKM!JGpvIjkxyEO8kTtUZL2e{Lb1uay}bPv0@SQ+_R?=_o?iZ81m zBbXB|`cE`1^RA}ya$20UxT+FO$t~wy!}=>)+6s0*G( zu4*3F8)qft(P2^k@+r+?JH?eU5zV)o8+l!K;G<{H-0J1ZSOl|G3EZrdQ@k7t>Aq6V zNq=2HI>A%lU@-|bbZ(nbH}fmQwb#clR+KM=TE}!xgR~{a#`JAZwhqERQx8ls)}?p zL(79HXvy5(6a^V_2Te9T5BB3lBgl-2b$fkJ@~2NzE6OLRPQKF!_AF+rJ8ufFzh&t?vu0Bj*nl!hEf&Zh!ofw;d0>V695)espS$CfCGG17!Q&!DW3TEMwt#TC2n3SNC+38b$RElXnp1a zQMPxv&m;96GNf$os-;{`vS;1g)W-fssi%zzKA+D+`nsoI3tCIfZfcQ@C?MPqhxfF) z_=~TPrVR2Uc8zuPo~X4#X2I5igakBW&Qa3Fzd#Q6#qQ~)Z;K^n=b5CQUZywX@<~eX z&Ixkr@>`VLjDD`!yfRCSkvTMVRLuMQ(`Wbfno7FzP3Ao;>Xp-IPK^kVxv0NweT|Qs$V|bM|_*kXYF-bdmBgOpU$=wZ{ zv^Q^wVbYI_-{|A6YrIyJTO$Dud_}1uUd_uNK5jYOn0cU(<@kJ|yS|K=Q~G#o3QHZq zkw+~$ujKfOe?JDoU>6i)pGdaPfqs@3bgN&qm8?|oje@mjragfr$Ti98h=Esnt(ekL ziYnyZsSFr~hUu8ba+sNa@hF0*(kCe!mLeTrajoT9Cr@O|*%_|vGf_@dyK5OgAGmgX zuU##{Kg^KG(ZbhO)aoB?`#74MYAEdWMeR40UBL*>I2CN+5MKdfWcAy8m7@`vWj89z z3vdxHXz3(g=kM7#K^1s2=JB!>U16~&F6GnV3GJ6?&?G0eVV9MRU`=#cJf%a)dVh4| z!O2^W(QP!^Ljy7|QZ6{MCF8^S4W8Y3X_Kh5f33h69-_dV*`B38^LAw2;f^S1#G`%P zG?d}dP7#S~;qlEEZ^~H@6(3U(7MD%ae*+G zY*+tuTuN+2Y%>;C$>rbW(G$i#by>IWovr;jru{(2Pv*?Hg z1>0iG7{&fW8)mUded?McdycnzuGeeFqH@}*Yw>-dH&&EXU)sgXe4I4WgU+HQcd4o| z-Z1Ld*pI7j4V0DLQ+Vex2|XW!mKvMfh8Tc zL-JwFW4$zs80k|+=e&80q&J|FrHPglH#DGZF_$Gp2MA|0A+~;HowEhz zJ%aGGLv>5CbPG%i%ko`M-^JZo4p63lG&JF2U1M>Y*Te72m+*e;(DvTbrq~G-9&eC} zkKY%zNUe=;)!uCswG5-pNtIsJ&C+l!nOh3cM(ajO0f&nGyM_i;w1xEF%uqHzTU;W4 zzVhU7+wya#r>(Bt4H8`x&ikjQ4R~nxO)LzDKuv>m>Mq+`;jXqBthy~QJ8DdhP< z$uL{4#WfejXQbAheMH(LQ*im(PCxckE?he`tJ7Ur9c zbwP)kiCzdk(en z*WYJ4MyQBt?dQHqx1>{Mp?ssfF0?!H&7R~VmIi*z#%yj+D+bd0Im}9oj+eb`ugtK$ zac@HQdAM$94)>*j2YumtwI5VwjS7O|Y<5;NY-T%zkr!|>l^0Fz7Cu~*ugm+O+L`WI z%q7Ybw(+0$X7XTCTxx?w_;}Rq&)gKFrSA7U;(dfpP51zQr!Gr}sdKN)(^G^Th9^^r zF$p@E0*?hMk2M7LUS&9ZWnYUVQq*;v#iF}3wfKCxmCW(8d1@_`f{uKxp4i*NW5Pm-9#Vp8OJ?kTcIQ|~-k2z=RgH$|vl z^elsCquy#6OX<HRKsNVhop%1p|NFS%-hd)XS`3{-Ei5MnYVjC|AJG^ zWL}qpHEGU!@YUJcB+04RH`2U?#pVPH2<}9S_+H_s3emUHD=b4x zdhK2xO0~3?+EcF=k+HBlVJ*Th^~$R-KGRTCD>W`h5&U?wRPUV{YIlR(i($3Gmy`qR zFTT;jgy;aE;g=NsMcqUk%VdMJ4}C^y88P%2&@~% z31{>5`i=h_yduqiOV)R()-e1=}=H=p87GR_?(6GFuB_7CE|FU<*I#Ik)Sv<%{)V0O?hKXD~ndpP=i<3Eq z>O7hj3Sq7^`KkQOw1;E$3i_umvMg8l>{x9PiWA>~6VJJZ5QobWAInH}w=_S}wZqb+ z8YfsbD>zZtNAu1LdyrR2xdf)BP9rr&o?jrJ`}D~alE^=Bi>x(p)8kNny`C011wZ8$ zvq(gKewcymzEbx`sPFG)`X`hk0QJ{RP1}PaJ^Sm2 z;>*iKr2k?en^U|D{3K0UZV%`CE1LefrS2~{e_hzLJ+SXDYx*Y`3&1g8I(h5nrR{-z ze{Iu0!3+Q}?4Ll9So8Hm{T;L70I0vNbNaVkeY*(Y`^%iRc142D@*n&P_1D!-|AzNX zy1s6U^pozpt)T!*|7B}`-D33Tc+B77o&65)%f%Sm6_S5$lH)tjmY+et-l+0#`~Akx z@9#GH=P9!TBVXU>|FYkI-m>w(?49eoy+8f=0bg$l`Cq{KzXO*75{e&o{}uf2D^dQO zLxO)j0}wSp;zIuO8Cw^a{P}a3zI%=l(6jtT%YS2TN4i;oO6?cS|5*@OzT>yicX->8 z!Ed|#{!X8N%HZ{1pnkpK=ij*c4f~&}^SwUu(EgJHe_i79=b)_Lu>t!X=vRsRU&NW` zJKTa_;%-ZlzwzSxt9|~-XY!r@r?hhk)vAi(_;nCO7aw#3MJ+3@FML*NzD*lA5KJMd z>kBSum|%g!A_Of|gw|T$cly@Lv(`Qv zM^4uN{Px-3{`UFq*}uidqPgsT`H~4I+xYN^&zp$2+~C1R_U_^3ZZzdYCm*n!iznrSsb}F?*ccv*KYHX4t zl5I^m(IRj|h&x}<gUF^%7V&7>J{FwlU8iccs|94E zw5s5fBI0O zt$9%qQP+Z)2o*fCX8|Yr!l|0=U;x=DEeK*F+kk)*edScmwj-#$M_1-3 zA`<$?L{{g|iH2XcRkLz`$VRz;=X>--XOm_>CbE)!PPFY6MO2{NhwQ>{Sh=(NS!WNP zrJZB*{Mo#HXZOOZiiyno@km+kJ|C$APSvc1AF|N~)cM|@oU4e)WFHe*k3A>)-Km51p!6WjbV|GQEY!`p|jy(S?>MYe$Fds@?Ywi&Qo_ z$K%no#&J&c$f=t3k3%-PLt93(eVv`USP_xtJ0`M{Z%#DkRLv^CA-nJ!Nq&ZJ>1?un z$3)ik&51^rsBtPVf7jll-Ah$ANwi}ktI*~|XPl~8p*CcrM7Z;;+qX;+kq17M%!w{JRkI>x$gcX`=IWb@h;+pVz91c@k-G)!$BBXlgd+lAxgbcfe=hE%%|JFX7)m@N9nkF#hj9B5h>! literal 0 HcmV?d00001