From b165195b8696a282254fc3b94620d392bff961b3 Mon Sep 17 00:00:00 2001 From: salmanahmad-rt Date: Fri, 8 Nov 2024 12:25:47 +0500 Subject: [PATCH] 14054 - INTERNE - Sugarcli - adaptation to the new php version --- USAGE.md | 1 + build/sugarcli.phar | Bin 4172529 -> 4173338 bytes src/Console/Application.php | 5 +- .../RelationshipsRebuildCommand.php | 56 ++++++++++++++++++ 4 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 src/Console/Command/Relationships/RelationshipsRebuildCommand.php diff --git a/USAGE.md b/USAGE.md index 1cdc97d..cae4a02 100644 --- a/USAGE.md +++ b/USAGE.md @@ -77,6 +77,7 @@ Commands list * [rels:dumptofile](#relsdumptofile) * [rels:loadfromfile](#relsloadfromfile) * [rels:status](#relsstatus) +* [rels:rebuild](#relsrebuild) **system:** diff --git a/build/sugarcli.phar b/build/sugarcli.phar index 04cd663bf78162736a6921bd9dbd181078d4e405..d4a75efd08ab44dccf96cb7cbb173a299876095c 100755 GIT binary patch delta 26967 zcmZv^2Rv8b|2Y1-_TD2SE0nE}nU!QmMlutMii~7LuaKq^w_FJ++5=^jl2K7I+sJB3 zWK>Fu{^xbh(fjlJKK}2=X(_x5GiwV(Y0+q4&Sq^M8g1(pZ9~#QP>zgdUI+n5 zW(OX|AU7M0M&6jVBFlK>NFNqqQieqc4y@s((IhzAs>uxkjDaO^)_#`N@ZQPd0)etv zXtW%`mu;jon;con!bz@U6@~y|tgGO?g4Gt@3AUB+zM2ia&tS8G&)sYYp(490d`@7u zg!fu}XW_7e&o200z+n%cM>#CuU7K?aWF!qRB9y(U9Ljiw6Uq35(+UpWV5QMGYItvu zo&55o36~_Cxt2o6rY22m|u8|wP7v!;q&t5!e{34GNeE!8_3yI7y z(P;Y&eZE0eg!4+n!6Urp@ZQ0Th=}o7h%&V92slcaEk0Z!6++516*h+BiNeU8ZwsUMGs4Ruf!!Q5 z+V|_?2T2nV9S9gDf)rRGf+lAfWECGVYltufD9`)!HVe{4 zQJ8!p#Yr}c>A``MK$P}#@myr`1n_xrXGkqlJP;1r18?&5kxd~37TS}mz6^P-XD#FmMij1PF zhJfyaB*5lSVn8P67?ADitmGp#0Z6Jx%?&c1&P$_>cJKH`4(c%g*vNQwgz2a{!cYOo zm`;{1AUo3$26YX7h{03?0XT~SNo=_*fSvV8EloD^jRqnyu7OB2ih$%Yqws+2gaGX1 z5lxi-UjQ+iZCm)DMzu8A$ze^Tv>8o=`U^1N+_*e5HFy#@U*Snbe)pJAn6N06u*fr7 zNUgu{-9_62GIv=U`4h1eDb07OD>oy-c>!revzCzoamM72rASilWk~D&fF0$AnN*+( zBl5yBF^H&c86vPi2O*BsL5LsetcUu$0w#S5Y}?O}Axnpi+@g!Llc>8E&hOMk^HucF zJy{RUf31h+zXl8`8RYH)>NO%`mm`kSm!rvp%h4o5eRR*%N0UG4qshksah-Q$D^%cK z15rpZ&j2ZJEl}Rseo`0?ni;W?Muvzr2Sa3+g(n1EsC zXUb0UnWCVTF-6!COcCph;E*9@@wAUZZh)}2nusnQr!Xvg#`k*39@_QqG)yy zcSdBF1jTKn2k$iAs)Hb z{HM2Ln?{EJVY;{mVX9t(;wYD&MhlxfM9L=^kbW*~q^C1-%B{|bcV1xT2!3)AG_#)z zJIU#Sc$abckHRv~&20aLD+A447Zk2fFw}X#u-4-&B`Vnk1hv^(UFdziAQzn9I=CDf zj?WcLTZ_1BTZ^dcO9G!AzPwzzob>l2a@WP3c= z$j5F-o;PlYT|Pi^Hto%;e*g*Y2;hi2BKaHuY~OWwF%)=@2Ro_efk>KrAd)#AsG%S8 zKoc&4ertiqyID9va~(UGz79<|vkqH#9r8qHPh^{`p8shsFunOQ$QB0Vs`bdHeb%GF zyFl*-uP3w^d}evGku&QNo4j6#Dl2GB%;L1;8B`hLm%UK5*Lk5zf9Mj8)_d>>!|-t2 z+Z$;%%o};oYY+w=Zce}_eOHh?K4?(J2MvmY!C1>@70|u-eA&r+KFGb=e2@sLzKF{< z02uT0Rtb5=L!b2X0XfZ=7p7-5phYG+J2~hI+zPyx@k11}{g6%$_#vJ2`yoUQz&|z! zEzW>Z+2PMhCi$ZY8UCmOe)2~X%r+nnPHjLFHv?#5{wwU4=kMcxsfbvseXi^y2T%kW-=;C zrLICEr2jXZjl33)M63-*vl*S`{^MF@P-%a|*-78+sBzQ zBTaT93Qju_3(EjNTgY-l=-8&Q?Bv)^glTRk!oY~#HLUz?FncgCY$-7#v?=5$D>IS35bn4;Bab@{sMpvW3n;ka5imx?* zg}NktA-J3g*(C&3lC%pc*#^wieE4Au4vHqCLDfWrmeFB~ZN835@cl#-w%v&c?L{yc z#U`E%b+a=Gh3(NK#5E1p~18}FTf!gy;LAezINW;TedL0m!izk(Atv0Iq>}*8aBoH4OHOy(rk9 z>_rT#0)}%kd(V^gcZJEsDk;)jnUma{hNOy1L(blrhI~S0A5udVP(z{pmv>MN4f~Ms zy7nQAC&1wK`(QQASir~ZN5(s{ABivR$4pz86NLs94xmA!1Bg*6VH$0^UF9$ox$htw z`T777dE|f_EQ=4pu9%{;FDZD!fMkpxIEaKPIEWDV0AbF>H7x_1I!2`7A#vCxod!Ag z%;z~ebcgXnJml#^C`?KYp&baG!)P`O2wj1(iz+}*2IRTJh_{-<$f?`_>F0v|I*O=$2W+L8N(Mk`a>rOni3}vH zdIqA%2`JvaSFjmUlsm>oHfJD;{TT?u8esTai&MG&YaL|)RMIijI;I~(P*1^jZLWvU zB@l%xNYzZ_8YY>@kY9kU()KD%149~-uQSn}#b_qt*d_}}R+xosR|a;!N^VBVLrlgb z!sJLIGQ}V&?{XgqhPE?3&PI-qNSrwmiPHu6*y=vC8JfZLI6Ikl9EnqQ9FgHXf&AwY zFycD<6@Jiv&Yi$!IDr^02MnK`e7hQY-nDE{U9yoe!?F?6kFyarc?#X*DJK|K%@nEt zayjUITn={a9Au^?C;y9wr;Ea3=65f&p$~1B0xJr~WoO}nUo00fu9l0Y6a$`aW&X${ zE&7B>dWj<0l#6uJm5XRCJ%wl-IE9`EPN7Y5Z&1eqwue4|I_ob0?Lr>X*^xY?RBdU{ z;8S&I1<3$V%SQmF`ADfHKl_`a4Lnq==2YbQY1kdlr$*0qx9F z|CyJNBm-c55t49w5hAgSB4`!Se$OBY1^`zvA|YLjNSp(X=Oie;9g-+7Mpdr07@j?XX>v*RDIGAj3WA(hY6-madKi5&l;x0kbOaN(SFBr4qc+!Cp$f#3| z`*oM2E$u6dq{z_{Bmz;2)~@mZB4g@L3P}E%Wa$kS@@T0nRDNkG3P1KTABbua05+8c zd1F8>@<>gRP{B*uS0V)dl?Xv?C2~>zDwO9o;CopWI*s~Ug~r$1LgR(E(0RznEp$$% zbsN3kbK4nm> z;)JOQUP6K_tY#rk-I0P&x9=d?c<&-Fr~}XuKXWv&7xWH@5@bg$2ib5B9j^`EL#5rc7Tr(PZh*+<@UwT_ zHu&6J7YOg#_2_(u38=f_>7s{}OAFX%8G9g4nlgwW4_itx@nq0Ey&=KI;Jwvrn@sFM+$5~O^mI0Q8AM5kGWoyf930buOW8@tf?m&Sxd)_no8 zq>+81Rr#&GH?(35C)N5X{ll?CQA)Rk8&{?40OXLvkFVR_`$t&bA1+O+kIF8qdA2*pIkmblf06u7V(WqS>fb#97Co~F(;0b!1Ho4{G^ z-KYj#210qgJ92kE{BX(ZSqCL~2ne&uKO`8cQYQs^*+{-O=;%=84a)l7KvhkHJ#8f8 zh_K*|5k%he22D2t$ctQ0_feh6gfL~sNCmZhY-B_)vfRO5lt9k{Dvuv5a)bMsln)aI zlj}nj(V%Y)#CoU?VSNcmjz=2Hk}kvQ5T9&6O6?Z?D4V7CBTwK0O( zZ4jCBXOqdx)aI}I~0|4ox5Cx+O_vA3d7x%WXeZM0D62JES4jc}0u z?|H~I@Ax2!4ewmwz5E?I1>Oo&Bp;TzXFm8P&;*ok4!lPe|MDKW&AJaL-_(9U9-;dY z#pK10umEQb`9u1P0DFgySe+otKI)JKLnz@^4{^ijm`sZqr5>?q3ZUSE(;`GV6ME7#X* zq~L3H()=qwIrC)^Ea zW8yn6x#I^iK*kRg@{7TC-`>=rVluKpon!#;|KcTeehR|bt3Ys#E;-3i^86q>dF&_Z z$xi=74#qi+EEPJ9SZSU1gRE)(LSH20{zBe6_6u3iVFm?cE@&r)b3^8jH$bgtkk_8! z;ATYI4KNC#jr=o%wCMR8QMvWo2C}vjoUT|;-#)-#Eo+XAH2ot9se1oG1@p=uSNKfK zqEfhF7G>Edv#5Z21IKH+C6tYOgcT4tV-5k$%%K?a|BHy<`3r0K2^j*4bm96UF|vUFLA9NtG}WXsxLVtl4${%ox~_Vc3I}l4d4Q84Cq@z0&KlJhl`o6~;_R zF=V0+Gh^ia%ozCqSXf187?X@FO*yfkuf(XsECei_R2K^YzjC6KSqW%S>JTddO-FrV zC7@O*Q#On=i;aN#r6$=3=z)|IJN|Kn9cxJwIJWO-1LKevwSd$BJHbh<;virWru;Yv zRGgRrAaQ55>|ctMU_f$F-#G{&C<`Yi0h1OLz)7rwZ|-ms&@_|`7qJmK#tbm*61^^C zhGD7GTm-Z%)z3u)z+uKd@VAi?0g#n6sCaHd4ZgJmhGaQpw`{(zkfeIK2~9|WkB5LE zM@8^pEwu3vD0b4ptalaN)BpI@gUC|A>uuXTz*f_+26c^>P=s&w0O3v+g`9aU7(nc5 zd{|ot_z3vb8}*!zu!j>if(gRci{H+7vD5}Wf}Qf?Cl z0tO59MSy_$i}Da8P&cv;XeY$)P3*j&5(ul85K!~1AOUkPB_l*^f-Lv}XyIQTO`s?V zQ$<3AF{CpnM8K6Gr7etq(1i&URSyBrT+TzjWZAedwM~RDq)bEzK{(4<1oLuR1e;7+ z6whKvYP#l8KKOJ>m?{({tl@-VQLGwkF#@g5vVoIRL6y;Dz;9uSE=TZF9b&{X$mwsu zX|&C*1ZedY(u8WZB*98KixaSdQUT%wDs#sHsRd*9H(=$WA|wb^igN+hsLBEYRs$+y z0fDk7Bmb#uz8i;MDN+3lirV6Y9CccP;1pjSx`UCZT0!Avv<2A!wr+GWNM~RLz`zV! za;jQ_fVqT{mBiAz0~W5CGsQw3@kkK{RF5R~?+Hn)qxDh*%=c8i6gH*2Gy!uFl_ZVB zvss#etq>)>5SwA^LIQr-M%`G5VmVuefMtTRk-w1D!G!!3Ctx_al8&9<<;vB98WXw8q@*JZt6{p4&2}vqI31_ebB?49*s#$5? zCdve?f>e?+rr4>B6O8+*7sFV@+yP{ z<*)=-6`v&p>L>*ON7>dQg`ji`Q?;uAo>CQpoBF#1mlX*W%=&wPN7d&s_>2Oi#G@)W zCAO*He5S67Gs!+xoF$%u38U9ut%GsDOP$c5wAFAVS*T%$Jfnska#jr|NPl&V=e9b| z{LFwu+xoKw$foUD0Fj>t0e6b12o0>EP7R!zKLDy-%{5&AptboOLZe}jv4hBG6tiQR znEJ&04`(eLtCs;S-xD8#{>?`I!>5g<+@_7wPCNJkJ?<@__xehnB2P>TGs|&GWUQdpY@nDa|CMMOCuOIP zE5TNMOr%vG*LigVOl>3JFP{yp27$nO)H4GDZG_wdtV*lh9rC*Ypm_XVD}k~6*Q3%_5L)o{3-CIUqvZ=#&v-qxg3yGo<3TzpPSX&A zy;b2_f`y{16EakgDFNGVif)RVFgBp4hGV+kRH8MQFJMM2g7eRV*Nz4({3y%7xjW3T z4G)^3_LG`2BjTVS5$41$_+!i*4|!P-uq&q?SYU%Kvcv(9Y)OPe8m)l!73BB|2I=Kg zoh7Jh<|_%fok@AD#D(YHN+KMh*0RF6jc$c~VbF>|%fM;CELUX^RWeaLC31z-=x|8yVIyp{i_%#gNFL4FT72l#MNpf?Kx4Hptp$ zFoXHiz;4Dz-_$8n&=-W+;of>Ru<81Xi#H>x4R+YmrGSreTc%R5Yx$xKoM+q~q;Yk7 z+<4pBV`63YSf>&W1o{X&7hqI&<>yBj!88u4*@0L983_kUrB4Vt{O6N!T+NXXhvOMw zE|&<`=)CJgvK-W5N34wNj@T6>op3w2+X-jtZYNy0HP#U5wBj_7da65}(k>@NsNZg& zrrlkGrA`O+xQ#bV11&+u*We|{1enpZo%#;;w}mNFXF?w;HqIFr=T>LJ6TVsEg54(0 z1rvSZf<01oEe=0pfGf^LuyHLxxD8Z>kAg`!!pA@AmO2F&B zK!EnxI?#_gt;03kZym7;LNY!VUM{_}g~7WpWxt+~6S0U03=AH!H*P;%4Vg>hj;toS={d}aZ#|g1zJq8x{!i$O)&?>QwC+$a8Wzds$-?2R^ zDmWb0*+Lc6%sv61H=VBymZvt-2QQqEoZCK__ zp#JX^@Z{}dCQJV*hnF&62O^}z2dF~bhv0(dHuNDZ;E$yFANAk|Bu4|S^`*umegD4* zOnfl{TVIUe$o!8^U%Z5n^dnY6+#CD|l!1JK1Om&fB>q`Ooa*+&E0i$+1fli(@w8q3 zgc*EOf?k*AXg|cp%oaRv>nsyoKPCF=xMO*t+|80x!D+Tn$p( z0Jcvg^0hi{GtVG&;j5qj_qUoZ}im%x5E3_RPAwRdeMB&e}q zP|AygaY4Erj05=`VAMl0Dg#l|+C(5~UYoEVUf6^?b;d^pRz(Z;qQ-JFv53kOBt+O5 zUyd=n+T4+p!;NYAE zuOH}G-9x^KD8P^En*S+J=kms%=CJ zaxd@$(q|l0nn&4!ZyiC?2Z8Bfc#V-0hRey{Fx+xZ1K>p)@7Kcu1cA?lV_xruW0)xr z?=IzI%>M*JtI~w+xXJCA|6vk=-{eQ&b;=tsHJ^(!f?8S*Qj<(1-Va$5iH({UiSzV$ zBwl}-MiHh^9(ojh(-wt;LpU0*=hjAJe>)zHgRDCmhn@TmoUOL)z|-%5H&8FNAb^^G z?z=^4=MqxXL>wrXvaz6ZG>pLs)iwr`J`{r~w#VRblGurn_yWV5`3sCva&_}aj_oAi zwjp(GC+6ncPQ1&pG#0ZJ7mLfs<5;|&V(k0qmI*LX$wdf}5cQYAjei_2J@Ii^H7#*i z5~+ARm$A?OB<;uurA^K=Q5cUqhI{e2wEc?5byX(;2j$iTyiIp8fzXF4c_#sm!l$@V z@XsaSHcDd`&L;7@a1vPx2!8jEJWoX)00c79IM$x9@l#&Ms-Y<#orv`5j zQrUaJdgcxt*VH$3tf7+trbl+oFRC6e3}Hg|;6UdAZs0AKREf&c=??@4!m)>thJM$* z2di5p8Lz{4C1Y=Wl#HvSbP9F{JAkZ0+^va`9;7Jq6wn6erVtWv9?2Fnk~EY8 z1FT5Hp6!)Jpg%Ts2MkS~Df%%$NT!f7Ag|S zw2V^#dqd*lpOdKCOdy`@ew@?1gVmmI-mTOaTqJLc|###N7Ef9hnMhkVdE@;{~qMEI%Q zNAX_4BVg)V#iRlwFcwh)8Nh;#M{#5%0h~F#$1gL|3LHb5|C$+C0|g*uMQANr{$J!E zw*zWmr!HpTou@|`gdtS#Hn5ctzo5nkSx@^Iww}W=Y>@0@*dT9?VWB30&;ozsVap2* z0(M_BaW&eSi4|IziIe|yCN{cF7FO{T@TcbwtZWd)x-3lbO%|TIn8c(bNdld~?*m4u z6)a4JM$IOHrlv`}Mp^>wZTQ@=n9(>&F@_}9#O#QOfi3PX@a-gHzt#t6Y$U89oMDAU z6d=e>9XyUr!T4&R(6IJ7oKNjJ2%4UbQ|oU=EGiqx_bhQOP|2&FS8T4 zTpT-rliq58?F(rv{C{;1=Pk^}eq@x5bJxM_|0xw?F>;}>y_?IP&+rruoShWzf2iLt)`T+L}GG*D#&ASOz42=45YK#n^nF+ZbvC*n?abEwOi>-eEC`H9w-kkw{iJ+ z1HUgH_mL(AxMw?AfMd)YfQmM1J zyY&PgYqC@g%`u!2>PUdPewGk|boBtrzy8g1*faN^#qG($A}oDe5yskHG~e(P|uzV>g;9#`9gy;npGl9Jce9b2v2`pT}wU8(7%JO^z!6(}57h ze*t(+UpH9SwVfw8V3O}Tk9TPeFW^r3%mt+E?2CBoi1DY~7mb!NJ{J|HMv8!%AfEFV z2?;2)2g5syYieO{+jkN3y7ifj|0#~2`h5x4BEiden%8Bl=2n2U zbC|t|QOo{wMGk8CGPZFQ@VSuPi?02XkDcMG9MrL^plvd}f|HWh6&yo8K*8=C>(&1+ zzK>ThzRdui5Ys>pw4Ll#Y&+kpIH_H{igo|@D&DpWy@oaY0I+IL8<}PFmHkq-dF4@W42 z5}ZBgCAgxsl;G%5DaD(7gNa$?|H*iG1 zzJWKPG;R{;b1`3_pDWL@0}=7M3Xqlx%YiwYZsM9ea1-ayCFO)2)X+;Hp@F#g*8g`3 zIv1@kC(uWYjvx%!iBDyWlqN;}hju6P?N@K$qP1#YEZR^Xf|UWwDGS0#RPsuE|~ z&z1AqtHMiIGho0Y6MR3BffE>>SOX%>rwaVXck#abox3=e4FJ%|6#5Os1O#%Z!F|lO8r(tNtHB;Dbq`Ck?H*S4 zoqIS-#sWk``OKA!%?l|?wHCXwV=X=qI#P?9miAigEaG)Iv23WriM+ZFODzmMqo>j% zoe^LQsew91{;$XV8xQ!>`e$TJ$^VR90AtXJ@6==dcp9)12Q*-}u5BRT2Z5COeQe$i z;G@jji;U3;;_3T1n|!{H)2`hE0)B5v-F<+!xz!)yz5AmNacIZ`sl7Z|o}t>H-9U&^ znvIxI#&*ncwNr1A{=t|S)&C55Tp9p?+@5U2d26B(=V1!`6~u3?9clk$6Q+`ya4_UF z5$KB_V}N(NUGZYZW`q>g(F}5M?PEaL?hye$DWcXt!ff7ogtZ{>7z>~D7!UP7#+xo# zz=`5>>~rT!1P2479Ca9=g-l*;Cbq#JQcv*WHF5q&?-P7rVADc`!mytM>R2dwD&_yO z#@&iplWZl>7i;Jvb7Q`G5a$iC1H2cF_&lK&K^`W1jaZGnagau5I{ zE)~8bAT%6(3~A;04-bpAy94^t||8lI1*nsQ1|sNT=Sc|us0cYW4)j1 z#ti@N#taJrBof;+2mT?ErAAj1((Dqz(v0oRnjV~Y-9Z4yP9zGV-rM;;(1X((94(=5 z@G`OjVACy03;CZ29eINT@b4SktJ(KrZwduF_J1nup3Ij@bkg~!7pLql@b`1v^;Vg1 zIHC_%r>lK`SBZp=2u8$LM?eu}66KV;pM%5KUg;DJs|72f_LBct0Tkd*@%^ zoFZaT0ZCMdWS4+41xBS8+J^54j@lFu7|b}y_yv}fjCEH9z{2w9@EPO-3^*!#0JqT> z2XLvG8^9&aeh_Er8Q_j8x0sHjB{-NSKs66y4*Lf&hYCQiNu2(baIf_@gTaFLAV6c@ z60$JL<$>cjiRM|&uiYS@0to1OEZB%<{QU>RQWJ0SCa4;Cp|R&-(7amzcLwyJaK``FSIWSk%WRV7;H&HxB}MB{~$i$CdTR$p$1{1KH@B^sQ0vZVAqnxNcDEJ5e5NUtqh*^;}tg=cBJjRVzQ({AfG>R)kwwo^$D{8|EE1 zvhtZfNZsNhq9UtNco4Hf94f9OFWW}Q}=mKMr?fBnoNRU8X0 zw$NoYDP5bKHEpkSoq59-Tw^`0r5I07{4@AzcJdDYUVk0iaH~%@3@YmcV`PW(1ZA`( zhR=tm|GBj>^!N0eV2c(TStG3lw{=U#jhohI3}mVorziA|ZK?SDzQZW|fO)U=qC$Hy zW)>acAHQa4bY-cT(ZHfi+Q5#QytI1BdzwYs8MnH8ILWF~xXl$^~il@OkITx!U)=yp{loo>cc?AgE9gm!y9f36}C zIklIw^?Psq@(uLHp@SXPOW&CuK4{PUweFF+0~5b`_5N9o;bp^;r+(aym}*MZdUqwD z%60lp*e%l|fmv0{f2aq@D3M$LTp{ER8QQYF8#&zB-WKzBi;a`5&i!o-Zl$Mk`R3|g zos47pdoa`OuwLxHFHbo$i=7Q7o|>pz;XeLJZsG@N#2K!I~-Mz}>&vQo0GeP-!0{i3>OEf0hm zGi(i>txWMU3=y+Bl&AhlI90r#{kyMpSRlthV@BQm^qI0?1v?qKIbYBw8{3wk{)t|r zIF9c89+B^@lL5E-D(lMo^j`-*-~hF%jc zla;#oCdd1G;Wva_CWO02P82Tt`ol@)qr>ii-OsyO#CS&KY$l(D7q4`3a>~6wx$0(T zNS=9%pXL6WDddz>^$)u7z^tCb@!I5|&g|%W3#`{_Y%JVp=M<;S-TrdN@aY{dilW?8 zq9+{!+c+I%%U9g7J|_Az>Fxf(q9~E-6E@863hTSQatjsY2Jq_ux zsYks#3?i+ER(;p)tqb3~i=&wmHZZ#h)0$wH3_U2XMkICE};_PsmzUL@=5ztx+`>#UG>NS2Z7w>|5| z%OrMVv-5+XxTP}{4{mQ+HC8CwxH*xB$6(2(xsA(&bIOLDR)2V*6Xv` z8y{F-r0*-j-fpZ?ebM*OBhR>yvZc9Omnf!fy4)+w!hBRpt@cpNqtZG1f{UkfLhA<< zzEqYqoLF@6=x*^xTB=H#tDZ5hc%!l)wQwYx^YLZY*RiFdlEh=*_+K7cEy+RV^xwwc z#nw&)tDQ4bYz-H_AAPeYw4pZV*G)gV78RNJhIS+Jv+lcqBKxCy0-B#Sr8Jw~>z8gR zulCsY%a>2rtSfz2jv9A?mt)IyzsEa|R$og0k~X)A(^VmMk4~v%&K{=F?Kh_c6|XE$ zfB3N|>~|2Yb&R%PSZc?P=#18oxAr|;V%)cRic2S*-j%61^#9}yNSpNB{rov|rNU48 zso!UJ3_azSyW{tjeq+>D>cX(IZcR;u{7|3p_nTbwpF@wAHGlMHer?Fo!2U>LWTo46 zU;Z~N4QrNoh6yi^n`-OY^K$7I;(R@&oAZiEEMasmS|RvW$rqL4L7iyfOXt_KzY%%6 zvUq1@>GLm~Aybz=tP_7dAwk`*|4!9pUf=MSzDwMqxvb><+6R}qXTBUe5i{dv>01LXK8aT>78-YKb?)H% z&bjL%-J;Ey?czh_^T%Xg30=6b^^q$j@H3uv(s)zl6m3pvaO~aQRmaCi-m^t~*36-% z9Y$rJjcr(1TN1$PY)}z0Xe}%7T(C*qjn{AE89T94XIte?6^}9fI3Omb|Nh6hn%htG z*sm5)KibFj{SDe3Mnrq~^mr4;b|kVFu9)6%ZR45!bm@r1)m@7B=r+r_)Zfdw$vXU2 zUYuy{WwNvMQgA}0{n|$Y<}+!Z*IZFNn)mufiiO?!i~SqJIzq+P+CIk-F1I7f1j)9?Y(^aOp4~o+yg6A#s=!U z1%F1^jpu3&S8~xZtoC?y4Ug>2$@+LG%wTufT1qXo#`b1oqUwi}PjzdxCjQQjom^Kc z6CZH$!#4dC|M0e^?Hli|Rgb^VvSJO-;`K|-)I!EQd_C-2kI)|+GqBwFT&|QHuecWB zCGS<&`PEhfzjB{-FF`|+H#mJG?)lM0vU~ZRE@snr#qF7T7&-a= zg1a3zSKf|2Cx{a{UnPHik4mj0Ej0LkUNg|xBy931N6G)j;LRrr8cI4&cWg?6_bN;` ze^7XpU$fj%?OET2jJgi7Q&p^qNeAV^9KIDdyxkUUKIP{mZYuUXeCg<=6-%zqRJUfk zxeuJ<$)v1ubuLZrx7^$CF+7dl&G{|x$EKF%?N z<}0Z=uB6s;ESn8ZrZ4usZ!cLC`Z?|7!q+_uMS3}EIGgGV1OGg>XA!e=9|-tNFJB(} z&T7BdUGGv_Y7m!(uX|=t>|l7$ROX?u)Ui*Va|;i5KAkdYlJNO)!L=zlI7sKIZqI(N zGk3-V_JqEwuBQcl0{^O<_Qpmd;niIUCXM#&GRZkC)WL|JED6k)%7dDHE?GkYXfvJSph zDcs}Q)+ewyYBbfM_N{xS!E*6qmh}Ps_DL0^U2-L3yN+x4p2&SsZEGlL(vlzG{Kzmc z__*4>OJVvM%kO7>&a)d#zx#LMOw_{1oLtqTUP^spDr*NUi&euOgq4Jqy>szadztN{>!m;+{J-s>ZDlrZwsTcG#x1R7*<^oAWY9HmZY(cyE z@>0;9a`(5Y*->Tb&+knK^9J7JQV)qe5a#}?aQABZ)%&gW)DoN0(Xo?H40Y}lZC`(U zeeYpzZq2&(b(a49j?=X{PTMa`a93nrO1bx&Q#xaRdr4ha(#^1e<}azt{%@{y|G4u= z#ZIqfZq`w8T7ga%d+sN@_@J|4W5i9-%WpWIZoBe9RpHj?)J$9Oc%bZiW+8_d$-<>a z-Z`+W*_b9Ly4E8s#xZkEA;~8Egm%JWx_*FT@Opt?b#bn@yWS)*J4htfD_&=HA0Zp5qeza&`B4 zBSEW+Lm7s_hF?CKh6PIB3tZu{ZEe!xLr1dnx^^vh&r2{U&D9=?cWwT4M6OJL?dOtw zrlb1ACe}i)ZpRTfz7vw$6@4!ZKF*nYDWELp5bWXDU$osd<)4m-Uo zvJV;-yuR|7NBnmB{c5`39w|#v$>}of;#KCmUP}hemhF)ZXK&b}y*K!J3KNUPEF>4yo2O~bVx zaekQ<+pDv_#jMVPtY7b?DQ)MjW!&dw-;g7`VDg~7r)kMx_x0wBJ)?Yu&&2euNYU=4 zH0ViBrS?9M^=h)dD#q!!vq_8Xl85uFz%_xdV%F^2VIpYCEqdJDbXa=0fIeMt!?@OU z_5s0{bRza;Tyxi}FJ+crT~?WW^9_#8;f6jl(A3pu5x+t78?n{aIh*{OrUZ%}g=x=R=_Kbg1 zOC0%ffc5k2fh6A_H(t#$AH8~2-TT>|5Zk!yxv5iocCj&AcPt7Sji6NuWljZqm|i|q z`*-W)-MEm8-pjwShe&$PexTUrem#F4^K*Dm_V1h7p^pvHo62ubT*`H=3fWRznP2{7 zaY%$$(#(i#7Wcids)WQd=dXSK^@G0Rq@T4;i1C)4O6>xn7oAr|C(e#uj-cI#CQ`PIZx>L*JTV?9-_ei4moAsy3$^O5;#^1fW zKRx&?$i(mO*rEI7DcRi%ElwD6|iQ?mjrJs~_yL=ZIx8A7!BlyR(vZ%X_P!ykp>!W5>sg(}4hk|Y%-*Ehd%ahrj zyp4%sLq!}v#v+C0Vwp{re~($Or&|b8elMNoqcGxNPX+AHN$k1UM)qUU*v?K5dwG1F_UV?;uDTslU)FXzJk8r% zBetP0sr;Id-P-I%xz7t!E=z|AF-2v)WZ8N+!ZKMV???SaN$Z`&)cA+4m#!>kz2`I5 zd+*hqS-M1DzTOADEm~Kt4sLMwP~AnPe=OaYa)5QkK@)@V)ItAKKc9W=sZwzi+A;k{ zb3|wCmtEvi*5W^XM_!t3+^VwT=)0uY*~GQ0SQ5`0uPZBP^;`HQJm!t5@A7L$lbU-% zD>6Ujdo)O#x;yatobVd8!9=?SHylGM(i^#{JT5~%(`)p;qqEl0pKp(d{rtlH;;sYd zozHzqm2a=JRnN=@MTmPjja>Nc5kWZaQYh-%fArZ0*O;NPTQ4G6zHB)vYx#_2`kdy6 zm7ivar+;D{M`rA&EZlsTyL#@7^&6~FwRd#YFWT45s{c$jbv*h-RDxF$hwr$VW7t$) z@b9JHuTDPM?_5s5_m`vY!(;ojSks}N>+(6hmyWuJ4oz)b=3U``A>PnCT?{nU@|(Bo zZ7XgU=^6QTHq{}Ad6P|p^&*vnDNdn*iED-2mL8Ypsny+e{6U3xZEx$smv?e&Cr%mY z43y8zjh)hZk?bRmHL=CxQ)P36bggS%Qd zM!v9jZQfg9QzGi{d?ZZnuxjI{W!;6r$E=^E*ghDr&rZ8xcB{3+V|w9zjmf|F+JEUR z>g3Qv#YGqWRC^II;a@+|cEG&t4~%deC$+e463OvQ49$Ca$B%|_iJM<}}s z8_XB;-hY;)^VNGppJov~-Lse5LN+;WNhi1DwF8YM;?5+ebl16<=9Pkqo$_pTpSV2@ z|MWfRd%Zn5*X+t$DgWy6#`R_Gm#P$IOPOu7DyBGGl!jRMb2t_E&77?`Xc=6@T0f!o za#vC9^3hN|t*M}Ial#w8 zt9OSrb3fvBGl=(Vd-`>F@?iDqt3wNGzukxy9x;zh@Q+{ADSI@5kPzw`TrW)>a z&1%Og#rv7cuY;y6JZGPEtVzCgLQt%|BR!kjNy;p0-`hfe!@BLi*IX;kiOG6tcc9Z? z6JOs3k2aCiPRoclvS(^#=Je?t*V|^}lc&DN)P{cjSi+t9Tkytyq0M;`cAkgImMn{N zGqpZxa4CDqp~;Xet;ZqE;c+vI&EM2_2D~*?7<@JlCrwaxear1@y2Eo)Rkmgsv$ z{gXcXhn6gixHxH1)N=o)Srg4iD&bD!R>pxs?u1>_s)^JEK*2v(<|ul+R{s zC$9Xy^LtfbO=0}U!4m5ie_qKh;bylgx!L5VOTFz|tL%T)c4_1(H-pWa1Ql!#ck$KI zgCm6+uc=#%xX-v;?|wMr@abGl=N{p@O(&A9pBpWWQgXiii9XE>-{0cFJ;AmL>dQBJ0iJ_J&p!H~KYdM>0>-NuT4|%MNWbtnmsv zS2{AwH}NX^d+R`nY5k||`*&S?8q(!X{i^z`biGZXpy+6xqK;~6CbPjS6$Rn-4hFuXEC=lIR%X!73&XDC(h~?II0V+Da|kE zII+Fy@l!6LJ=sX^O=7pmuPNpGhhK1=-E!i(b1<^_*EA4(?f5jRcSr2mR;_2-i?w{+DnrJD8r z3tPudaJLs-8Ib45w!eD&_{CczU0IwwNwUY!q{OT`<7Q1QOj|W6-y^na?}CknS=rmN zKMdTOdj7ge*l$}_^W)_60@}}SM%ulKNRJ9q>ddSNb`)d3-@CN9>Vycp&bhd=d)vna z{obzgO1#|_Y@1**bSEsEKC0YPFZ9(`J@kcXK-lebvoZZumsRt}Gxq11>?~jMTShIU z`o8}GXX#%(?XFVQYwgSJNQ1Nm?e7jhncg;;;PT|jx*fYBm#>;#y?wIH`P$V*q<$)y zc)^UXIyYv;^OLf4>pywAEmQ2%W^TL=q)l zDd~6aIY+Pe_w)PX*}3@`5aMomtg4}A(*nrHbQ^lu&y%6wm=<@ z`U_Ox=)YhU97`AI!Es=LCL9G9YVfhBGckcRz6xASOc74qYUELNIWl6QGz1_QZscN2 za?+TX$eQVOWHpx@>B=lf$}kJS30qDkCUN$TYh)uIV`3Tnv6+L3NwBO$mE`A_BdeHY zAgV6rO>i=snTaWv|3wFBM`KK~lTIvx5Fm(UJshvHSiq5>t%c(T8u~qhW)8oI&Z`_??Y^14Pumkco*(5;#hlaLSQ=eC*_YesKs;%#YX|D1(D;42%+DdgmfU`L^dX-aOUzcGEYbg0(J_SzzIo$ ziOILvZkpj6fBa5$Ndu_!!r~;S2rtAVErRszCxRGm z5J4-Ffup(<1)5S>JYa>4C}PJ$G!U-p5cP(5t$+_YyUHe$C0&A~ofy(Vo)`jR6AyyG zQR0zsoD}zi<2H$4IJQXyz)@E+1dbOZJ>bYCA0gv?F|um-RgnYAyI%o-CUi)4^phh-2e_Od8M3T3U~ zq6s`2$vMOCd2&b_s;o>*pI8zV$gmZF1vzA+)$%R~NZt#Mf8-tD=%9d1vlMvUbD5?h zil_rBye2C~wke1~hz|+~z3Cz(ap@wYx$#BY;Jn4+t&n#<4JM|EA+bn3$O4qNi_?U3U89k0nSa9Eu2U8JN6s zm+LHCd0r8%ys2mpS8f24TUm|l;H2YHG`VZ(7C7k#GLqS)&EBM`$|{maiAJ(7>(k11TSxA2+1Q4r)I4=bl>J~6b zLK3pdG*V(YBB8t-kzfG4jTJuf55uG72*bc~#AG)BIBxQ4hHRM?B!4eoOzu_YhTIQ> zFc9v0KSx$GXsfW0kCgFBWk)E5t_m_?h6>6LV=4&aRgi6rK39qTTbQDX7UruW06SqI zl?CTj;2^6=V|5y-r^W{{Zd7xCr0)uWs_;wUHmP}l0l-RrR70BmtA;fTtod8Ca|ckI zE@`69LY`DdBr4T6LQHe&2rv-v!on5d0yR9LK_d$^5a1;Zq`)gce8v4U;ZT8vnyjRa zCO5?3u8E|&ril_h--<2pcfS=#`j!=FURn!L@)u`fIyby>85D|VC5^nUg@o$RLP9Z0 z9p~P>At)5jN>(y(B@!xWCBodj(jHP!(?%E@0PmAuf>)FLLHgtaZ3Nt}?ZC;XjUQE+ zn3ULVkejk~Nf{khGEN80XXzkhqdEwg(JF+@XF1Th>8{IA5o)?LvUe3y#KbDZ-XakC z2{mOtkUceBRx(u=VJy)_7-#UfNe_KLuLsSat&jBJs*m*mOtZU#x0}jR0D=5iUkA#> zz8Wp^!ehf~r2ZI7FfZ<#H8c>RS;M}pZu^!1d9824O*$j&&2dg&-*oCSeKky3p{=; zLS4BQ@x-xut}8J37}zJ(qTO!8L%Fy0i+iu5hnvC5UTnlyBSi0 zj2X)B!Da}X+l5CZa}+XkbA;eF$b(+p z)uGVHP3AOG+5#a^vp@)rSRgZ3bp;h7Vzlcc#PSqRezZh_ zoB=EK_6fY4_qxU8K`SIpz7@jF38LvN72^rBlCd=lskad+&}t)!s6G)UriP3FGR#1i zG_qzTM>iq_a~lx?hH+KuFJ3|nfU;zBGLCWB?MWUPo0GZBva{ghcutgY}Y!Qju0KmIt(i#95l5Tcr zGQ zf=Fj=LEk@aK?0aMA^}c1{)ez5r^<>n4PQmdZK08?olv5-azZSfV`pL#6MFjxvh>DD z98#HcLaWb%@Hvs%kp>fju`{rnGtzp6Ga|#j6|v!k#|Av|Z$oSaY(s3dY(wzUE~r8u zInTt@my$LL<*acLhEyNAAX~ozF5~E6lLaSb-D#x1D^fzND*_M&0DIRwy$YRy0U+Uq z*iv>w&JYa%);j5?|HJUe4Ph8?LupVMSZV>C73o>losEolM`}rPN0P?^faPwI;*i7= z4-``d9%ynSa3xQHr5PaL49V9X2=%xJVy+HM7TmbB60XejqLD{E5pxBeNC(rNNN09l zXgr6;?Cr=PB*{W%&byp&>c59Z}@;wu5?e_eN~35(8>k ze9|1&QrjIga@HHwQr;a1H4VgSzU!f0XlvUYtYpOwv@>KRejk?`hCpBXB#RI7NeLf& zh(5#zq5lMc6gK_RgG%+-Nh7&;B0gkyBJ|Hd>+_ii%{y;v6r4AdmAn>$1n&&_55uB*Y3ctm6a!6AD9TWAp$O_B zs3kvln|*-_mJ0_F6NVJ58iwdJfHG12_iqZMBNxs}wuK=&gJDP#-EdT$(!)^%Z?7eo z&MQo+L(Ul(l_C)5t0Pbx%mC54jI^9cVmAm9JUNahUjpssO?cL#AlVIqBoYTnBo2~D zMAmLMG6yHXHlXWs^FJ{&!K(4yNX*~6k(dFXTAdbXtb$AxM$yQ;J&37`dk|AA06>SI zjvl1T0I=MP=(_Ah7<>U8TNd69=tqT7Y~=5~oG=R5qmUoDM5M@($p=RJ z=pbv1Y#+-?2F0RyvIR^w$FCBA1)mSBd=QJIcpZzFRF6X>Du9|Zx!H~(v&Vy$EDn(v zj6)$XI_dz<03k-j{kd z8(2R5s9iqL_!19uJ>Cfo17v1;iuRdolpH_amld_ah8V zz%Pbm6+jOSwjbB_Bau7zqcpJW0K&2yV9CwuJ41$v2$IDIR=^y81+3Jzy3Yq`%O0YU zk_QoOwSx$?G^h-*n${Wr0NOFYz(K6?B}`0DePG|7)fBBf)ZI#3i9;dDQKZ9kfElC(=0URWg+s6GI(JBl4+PiR%8o7V2f;ISZ{!8*KG1AjLZ*s@=vxs zG;lRI%Bs8^CJ!e`60N*IA|_6Qc)G!P*asTd<`|7M&q3CA$w9{L2GOu<%djsruFWx4 zawZ4qh36Q;z=$WisGy$^;3h>Q%Z~{{y7$3^la--6G%90)?Km>3#Bn4NV>f^5^P3G& zBnCjkapWEkk0Y@hKzpurzT^Er41pBFkU$~Yw*d*;$eW4Sp%;@Pxjc}z6Hth7XJ9|f zr@pzUO2+4+Rc$~d#jYibfz0}(SRR^G%R}<2^8tB{60QJo^vU~qB2dpmdC0UHCy-GN zpFj+r1`^a~{m3H2l2=LEc|`~L1V^fc`h`ZSq670W5Z8iR4@yA+I`U~`Ts{&YJs(lq zuLc}{$KZ_Lh64>a+2?rUdu#mH?n3!Ic zo7O9+wV|E)2 zTJsR31DBDRPxEVJ$+>Da@>-2J40$Fn`_`uYI?$II*>stc6uT@6CpLl}Q^(`u8Q`C2 zBJwgiGd_IT1p+X7s!U^+a5C%i3X*<>om_rJ6dv0p0F>`<$&niN>ZJ4)Zu0OIw6Nfc z8x(T(iW5X&1t|2ztT{=2UI>Kwyuey#Mm+M=quV3bdNf~NkLLf>qgw>?26UB` z+JJuVYp{dsHLjt1p(EGOJ<9!SXkPp}a_Zpg=zG(3q;zp$l2TV$eTHl*q}2^{9Tji` zwdKt>P$-51DCNcXw~}4gG)S996pA|=5y^%|q~}Huiod?_C4&136|(B43>k2f2l5nq za|hJpW1yws%{fXGKO3M`b(4*hZ9?>nnvnbC<8ivl6Rvb=M!(lL2g2`5TfE_zhR3fh z{_wlUEp)5%6j;<}R1O@`H=B_{tw`0&TG3s_kyanbh9>Anm;*H1sn0KfIeBg)5kmlT zi6S#3W zN^J=KWLpCKF4GQ5=BxjcbM5)n*beG$; z9e)4QgnKo@S;U!dg(np6S`R`&ew!6YcSxQaV6jR3dy#rdnd$P+#L>A9t7-0bC#0e zB5)(H%du_})&M_N^fKdr>H9^rBq;6i^*( zy!8eYMv$|5<;YvTC}$1yqROS)hq9YKz*4%os2^nj^&zmG>l1;D6@Zx|0km=yuj)gb zq+&lx#-{-C2e%hFkRgpKBx6Z@zc5_#4lL<8xX%uBOoC+KkSzJQA4QNAnDAV)Vgm5W zSiwmy9T0^=nhu~4FC0LLZFB$`kpnDfIh8Q`Z^8aSw4iVhRoY*J$dGnJwve<7$kGcs zRzI4TgHzffIMOG4r%B2mriynG0qF0A$nv)+*EPP~1Tpcy+XYAZJCp<(Kp{A) zqsF-HRUzr`#mE)!Q5Lm)kNoEV2#J-lo;@(d(BHF?Q}2}^2B{Ay>asqdXyXRF#g&_t zfRZ9eHvbd{*jP!^VQ~oTHjKQoX&5yTIiMG|6H1mOiBDSO-;Zph%LwwV=n+(Zx<^n( zH6BHL768kh-gUo?QKA`)vSp94ki(-WVSNOXHVYypK#p8PT7N`d!r15J_B)pRKP%3C zL@Pdk72_EaJXmaiZ3*Oa*%%^!cnsY@kB_0;X*rIJT0D;Wjp=bD&$dt7ppk7r?%r<` z^cT4#L-Mbmq~VMkm|3^^l`@Dw6>{J+FX=R~2$G7QK$2Aey>SE-?g7kek%^z#$fc8L zr&1y7;uR0J@*H{BFUwlpIE z@z3Zrm@8m{S*Q;=8-uCCpOK?o_>AP@`huL<@5>IzZ08qb4(+c2P$~_8K#7O1f|UQR zNt%4)Bgem@3c&{^e!Cky0`9_?P=>36zagxTzpaPg#l9o$#(hUI*8Lq-Y?U9Vyk`7B zzmNYwiN*A%C#1R_m~?zuo;Y?fJ&0`fCvwz5VA7N;sbDh?YE$zJH)%A@N>)yzFuws- zmVdC70{rTM32st&MgXo}K7-Qg(HZpi!z?ftt2n1DBU&}d;%PSW=66=op-Zjzma{`16C$SjfrWi=Z6Ez;K0pUL+;I8&vv> zKV(STSrn$8v&g^dXHk2__6PZ$`yW?`y73Rn`pf1}&d!`eb{e1agP41d=xrEZ84RO+m+{9uouy)w_UTr_>38A7V5Fn!D9? z!WQdXhEiip4=x~BsG|hI%|K4&69mdnjGouw-mMd`QK$G85KtkM#R39mAL`@+0$Q4y zT0p?f0%g3Auz@%-7ZOl(YGfe>HeklU8O#JM4b%uTVTBw)o{32&g^iCIN&*Uuy(K{f zvJlA9jv%4E|MoPF(JxWESO{+F4hta*SH%P06k5r`2D)LiNSa10fitCGGp0H*Iz#gR z!HW*j2!13R4YM;zBcKf^8&(3kCv|cD0~;HGEUpG9xQ*W;z|n#rmB>cuLKN582nR@J zA($qv|EY$hfSO_hinL=VQ0u|C#Ig6(44Y4%X!A0NRgvo<6!(8oK{KO~q@5_#}3h8~D6s#SVDG-Z_l z!B4gG5ikW(ANdHFs3}W+0=<>w4v?PmIb2Gah7y8QCqJ5rC@Dr8uOp$H+)w!zD;zw|Ff@SVDFD1m-@$-Ur@$NEW1& zWe6$CLmGR3v@|xveQ5%|Pe}2~VE1y9A=bm?5+L{JJ3bI$9Lk~PeKG`U1?s?*7=O|M z>T?|M4TxGzmf(PTSuIPTH`2I3;#ksna}XwFs#um#f%BcR*r6rma5@T>BjDiz)hvf) zk&`DpAP>$!^}llC8vfadmwGG%QqVPdVll)vBu~JenKDqoXb&sksOwW8(A%B@vY;WT z`&hw9QV=KvQ-*MCv_pVS_UL70jzCeRC7cYrDM z*>}JEw`>XJx0v9A%)~AxP&c*`6e{;`E1em+hnieWz`{x?FTq(|9pK0=$t$BwYza}y zY6&4h-CTlI`xh)#yUOOycr%P@b|9D;^OBT+A|U|zTLAd04~vk7M%}Q4kYOxkqx=4;V&U;(CHE8;w>wiJhlI`BO)-a9djw-l+$r3CE5sb5R6`+6?JRiR-S&MSO?&*Nr7 z#V`WZm9RQ_z_0u{C6kN|2UTQ5C{R_ZAcr+6VGcT#up=rj$B8gyIY!6?mb!1BqoJJg zcR9`}PXJ@%6)&BrBm+VlVM|jcU;(EJm9bCEDPy$TRB%w;P{C-Qf%WSPf4`(QIRJf5 zDiKPQhbp#7xGHv#N2*vcYHB#EXRG0}8uvnw4kfEu%m+uOt+pgDeNvel`#JBdM-cgb|glO|Vj0+Iam2ZJb%E zvcSL_sBoS3!)K2Fl^5dWl6pfvOd zImpOOkR($2x!b5oV?u{ASq%g!0CO->n)ERJ<@yBNo>Mvc1l(^^#A?iAz-n9zTUKMT zat64ii88>J&j7-Ho4FM@KX6{^_~ zm*nT**D$vBPoSk2q%@2OJ9uIk4WjV$0adajONim(`jF{fFbhAZ8{>B13=q*;mzfs@ zGH^T@VTb5YA3Lw`2vl#{xKUaBU`)WXBg)={fM+k%BNHMPBC|5ZQ+1|T74mDayoqbD z&-Je%f+4W&T1T!E$m&m6TomLew` z&?DrjpN#|`C!;*d0CR%!c-#!T*${Bn?Qsj#sFV7HE_K?BfIC&{u^Hy#F5p5jz}o?v z*c>FvxDA9nWVLt$4hF&;+d9x3M@6SO0gw48BMSm;tQbePvF8JC%-cqR;XR{{vzGt@Vu4q{5DHsDfBg8Fu!nQFacHmVoSmZ@-SpcxWjo#AQ_!Q4Z907YaViATmVuZm!i}We}jnMJjt+C@}0Jq@~ z;uxpwv_T>pw8pI=rw!g5>|uye%0XZZ8J{BpEu)ZH+R6je;KI# zJg<{-=6TeFG#KyA95mkPOL^skvdy;zyQIMuyzNQbg8P`BEqIf_*jfv0s)$56%El2F z9Y?_I8Y?9OxV5Ns#9NDxj>KA|SSM`LQjlVlIP-+zA0|+lPS~c`op77<3gFR^+5=9R zoe3?<*cos0&V%-%g;ZCjsy#tD>U0L#FT)vkt|y&w?HzH(VXC_o7wgom^MSjSu!M{# zZ6nN~m;2ZU&o@rU3${8axoLIW=2cOlSQg^A$W|L<%a zA7#3gSV@(*5b$`Es&^saPMG3x#e(JomkyaQ&?GlC2vWhWcqeBGetjt=V>JJ(B=yJ@ zcY3eEN=Qq_4WnQJ#yNjCtsep>xM3850LAaxkrng5N>Tl81Up>$5v+tC)Z7X92L{w$ zcWi)0cieBd0Ri|{tP@8Dkn_L>u=2q3W%%XKpJf7 z?A))R_Ib)1x6iUWu-Kj8>fq4&yLV9_tlmLLQ$;%nE-2}x9fS$|@OcMTf|d`V4S(6? zgTvwluu6@ta|dc<`@uYvT^FP<+dwPu=3*b%?D!JmRIv|8>kc~!akxHoC#HWMq=(?J zA_0_;UNIoYcj887BS5mxW&a!4am)GQj{6e`=yj!H;FV^C8tn;h_~Ifb;fFs&`QZ%E z4;J`tT9u2k`jj8e>YDy|ckl$O=&q~!2LAnGG>eN&Kf&O+S3}Er!QeO`%tjsQKMsnOK%LvRVF_i+n{&;7v%^XU7-<#0Ti+_0{h(O2x2Xi zHWJ7s!fPClBDgIA)P<@@aNZRhiGwO35+}q5k(iL!Zk+X+fGa)xd9a>JI{~&qc6)#? zW`aXLh<5{!aW3ldcS9tQy;h9eZRN9Va%%ZB}b#^Z+IQ0OUlEL~v##mWU%?FA=v>c>t(K)^-MN zqaQy5^daEgL_!j(fD1T;zr+=us0qF|Y;?_oz| z<^9;ovViR&ru;I7_9Q7t2p~e-JlK!9sR!JgzfW88Kirrcz})Bq1m^c;Pcy_>M1h|< zsS^iq7OOjeJ#Y)4{rMD^KGiZXPX$8iAH;@oIf(n9iwDth&hbO|2fIVKoMg&@f96G~k`zK1l5R-B(Yo*m&K4F&aFP)K8k0B~=FCWAGRQuO z>Ae&m5pAIx5mrC$b>_>5^NgTz8bzVnts=jm-ce}Im zA1qU`jZTAX5IJ*7l4?Ex>@ZJ^Ms=j(laZlRoZFVCVQhQT@Gs42xZH82<8EXX;D7JL z7T15+q@l#c={RFersFd_(+sSGqZv3q76Pq>sxQ((p#&vj$t2MFC7Jka%qtUH?R+L) z|1}fqP%jHlC1qjp?`L5dJpfm_L2q@bArH_Jt7jAFI_NO?IZ1>3x*;4kRV1+QmK=QI8j^#1WLJQ0Ea+A+A`XE*$%Uq;u7{rE41TSLiQ+;zI=V$-_-+>M`E zS0QKS&I3kxmWvfVnu{9;wLIL~><7@h)UziMClH$F1jx)ydDvS9^6(y)@iLRB--Tj^ zJkk_z9!Sg(GWY}`2>o*Z34EgO3A)sV7vF{FLmuSDli*C%=psmUt~_=L%!&fc>DhRBtBDJU5IR8|hn^y?bQAwx3fx`M?T%Aq=B*KxU=&!CRdNF3L zxfpw+Dv165;~$UBR|It8&FE-lx4YPUO02pm5N)KFD|)1N$;PcIX{4R^#%Prwud zhDs~~>ZP5+IZoyjzBh|Hg}ZcTun}Rd8=j*=FA)mI3qg2rmSP*rm15wSQhe}W0(OX% zvuBk54-L-KIPa^R#tBmsFmul;r#NIk05wez@^cbvy|_6MqWT734#yy`hA=L^`Ef-hjz90T<@ z=GKHAgOCEl@!6@d3wUS#2;lD;Wi9>xM+Z7ft^;M-FJTdQaSb~wGnIZ3Z<4nFm0Le7 zxQe0`Xo3|ZzevEBCMdpgtZL74>;>1#aZ1$#YqLK3tNdrK#0sF!brsmjTq_9l4ni|v z(CKC6G(!OjR6qepAhQ)%3w)Pw|Ll7ScNKpD^s1vAng4u-nQE>Cd}&mIW_0Wlu6uKr zaGEl$#A-|j>*SAE-A4NpdK1BRyb5%U_bRc!^;TkkQ>wzZvInd1A@yVxPF{?&uhy(9 z9%#Q&RZWP%6V=oB064W8!^HuWI+?HSWu$*e3c&GG;x)LMXw=|pO0U7t;C~rldM40Z zJs-#*S{W;vE`ylhTSqYS8LA+^`~wb$^1n#^M6o>&M5974mGN1vUel<4`=p8#HK#{90 zw3)GsQ=m+);a1`$`1#w+6>w$|E=Z;Jf}A*bjo_nBTq9&5u^ZR0rLq7ZPk3(vG5`P) zqBdT~^~L`>-gO87j<=a`2r}vxBm#Cc*YO^S{|5H0;2U^5*m48&FV=`ttu7#vmrSq0 zR;~lFJaGg3bD5eF+wjSSwg226y~uE(3Eyyk zY{DCPm1gWI{9pwcLKmeH(}44uw1Vciq8abu8=LXIg7G5gA&tauR8}XULD{unvxK(b zXyXDe#QzN2UCBr)7zqGkrI>Hwz!tlOS@yq$uX1nR!i7<)72gu2v|`;1w&LBQ9w3|j zi+PHXnO9J^TS1tRxA9>BBj2bL6h^`eq3d@+&oFo!ze*#12j6?8+`%^`V|Oq{Mm^l- z%>0zm(@7tH2s+H8cQK1acX8_#3M%cN*kd#EnM{__xDP6z;XSMs>wCCKC;=Z}Fzf-r z(0qrrk9zzLi0}CjGyq@;a$URoxH?Dx(!xG;@W-;Pf)r%9>JhN>^gN*01FV^#2UsDm zA7J(k9^wmAwt$y+pO)J$d*12mN+@%Td;jucY`NVSX65-WCJu z_#_TA9Bd5EWvGTnc(=>Ak8*m(q)KH}A*p1j$_K!x(j8bd!w#H(PInM{P@HyRa)&!{ zcn-~f(0`0CUQRv6cVb*!SiImaeD}n7DR$NEdjtPNQRoSND`52#tb=1f2j8ipr}O4P z?+^WYf=?j~f%TZgRF$BGDU)783MOsijWDTFRZj`@%IQWx%X8mU9olNjJR{In)9xAO zWfaWsXk4H%zcJK;mS(&yILGpI7sDepDC6hEV)!!wR8`D*)r|6D{9N=L@0$++=#pzJ z=~Vy8`LOu?oLCN3wd@7HIXn6ShxNz{eABn}C4t@`Wc+tiH%fnjw^YD8BG6?#UxV&N z`6cihfmgV*P-Tye`x8(Mvn&=xhmQP;icO=MkLw{U^aQ$?azPy z35j*T#(8M^HNHr9?!l>xAFL1$R2%#!9=NFQ!AJQLy*L|(f)7wfEdcs^$;8zEB$~gy zIHY*{aDI2~!N@ zlOBUOVy}V~%(F*J=B*2S{|z`!o*cx-km;cIMo669^k0nt^Kz8M5I(DN8Nv*o8^W3Q z7w|i!`UN>iJOIr{Eq#NlqQM(nQ4~O;h-dexMXe?TGI|Fr`s59+&GNvx?+F*IV{~9L zROb*l%76gi;8BQ`@h3Q-VWq6!{!cHdns{diI&%3B-PBv$A#l9IHVb%%o$TH_+_f|Q z$Ap<>G2lNIYhy$=gI`F=^F4N6#);vYN8OLnL3+`9T+avJ<4dS1Fh8op^MxAvz&IQn z0!c6A1I`Q?AMmNes}I;$guso?$IK^(8PLX5+%QhMnZtPJ^?Dc=CaDqp!F>d`5+x%9 zd_|T5|4SYUc8*cpj+l+&1Ji_2999=c@nu>6C~k-uTTm9tHVXY=l-zF_%H$)i&n_SF zF0b|@x{9fL|B(phr;mmAT;rdsJZo~MBdef#$6>5+RlS}Zf;(*W7JdHUy}^0(7Zbnd+y{;?t4eD2j;H~n$KnUsP<$*F(8 zPO>Z&JYis;_t(f-#V=E%sG!2HSfW>B8@o}y)t8}>k+(yKN`K0-H*L>$J^I)uEHG)& zN2AB$iwrzhJh470HWPN|){oB(ZOOS=GLeN^;a={>S2Aj3S{CM6iSJ&0@_l%BN6FPb zz9juLGZRr28rx3A@vqm7Hqv#zb)Pj`L^MAL(B$4H9Ot&qt9gNc&t%Ld=8bkKHKm#} zYrK#D{x&KeFumZ-=kdS8*Le3W%lb8`k-2eW()(dQvy^oTUoQ;IiJo}LGri`5mPmE8 zchYqU+FwsK4(_bQEbCL$*?$@;y04ABd&Xd}XNSjn?VXzy2T898HnVWwpuhBBKJ)5p zJkd3CO>2zDP;b>)?vA>#db%XOY+0}KkL3|cz==nTKYo2%F~n8^hnX3 zMM2?lalKNh9r|3cx-;qCkU zqpqFe{99itbL^r(!BJm{2phj&#h<#hlT{if1&z66b4nklt&^X&$nn{3`Ezuu)e0wUsc*mjbbWfB#&e^Azw+^L z>LqS3j!51a8-cO_zN$>aB!#>Cz7AC`>DZzi&iY5g=&iSBv#DmpJGV#cQrd<2d^YWj zNqtq^Y?oEk9>w=p_Px(N+99>uDXyV6+0Hu={N(xORO`L^DwT!)tp=`D9hwsS58qv> z&wcH_aEg9P_T-Jvz%bx9>EP+RkQjC_yY$1^KxeShUI*_hHxbTkKe zF5uWfCo6d6w_f#9(UA@6@m=V*hqc+fv$!-rHqcVg<8P;AgH$&Kz zQ}2B#JtI@Kq``$gAX>JXa%bxPp8S{ev3;#;edyHar~RCIKhujn9Hy_Ywi4N-^H-v| zLyoV1ZHKe$sqjxRgLnB7*0coVSG8Q++d;dM?*CJh`(|-Vxk%Mx@4X%ZO08}|w({JC zx%uYWkMsu>`D7KYUOrG3yusw6t!mS?W}0oi)Q_c2oF zTxlVNo*f%5nCZXdJm9I!?_m`*3^wIrg!O*7^ardJJ=U_iea;%kxm= z%lwwLL4L!<9VZ({pPat8Jon{+1JPk_&R50$UNt(^xOq5I+snH5WND}KC$qt~1slRX zSI~9`npT>cx;);sshgSp*Bk?(NGm%}tAYHAz`x`ua2fW~&tEj6!%f;b+?>>jQ&TvjkoC6c*WwJXB^;t;~`tyt}dX#F=MZ zFQf)HRS$(pmh}bHo=DKm*Ccj4dgN2e`TX9^kE zJak$LEPqtgg*dyKe9Vh->0Z>`W}+j+`f}}_tLxu|=}23gxwF2_F`w&fZSDhaf&KPd zw(xqYeiQp#f7WP}MLOd~wM>@sIW>p-Rv8aN=!tIAW((tuWUeP~$W~E0{@z4XA*E_h zOsB?r^OT!fV&MngA5bE9id~l4Is8Rm>zskXy%iy*k9P_8zL3fFdVXq_CfRHs`lXB| zy5)^n<+*}P#nxY+j9QZQe5X7w+>MbKv#&0A6aD3T-7a5^Ys(7vzr7zj)F^o2y^M@! ze3+|2F5UmwljH?UgFMS@mz=p_X4Ka!H?_m=XzQP4Hb=Xec~|UwAR0LJuEyNzLF#3X z(=S)7;g1^*FC6P|KXK-m|KyVmo__lt_58Ya>GRn%|3U}nf*_uA{cWSS&L+QBJ!t5_ zdS}bP!S2ip95=M&zhs+7C~D7{9JYJaTVeOwGojr*ZEGHVZnr+Oj>LtPY>TpgZrBjg z@h0sr?l+4^%towrd1%saZQT{B($6p8 z-F)bL1E;+H70*#Rorm^7Xxp_53J-o~VHz^Wl+{S1NQ%k7+hL*$PV;iM>#y*QpGDk7DnJ2F|YBn9&X3EUZ?A+Pj z+TU^CW7{UmWjU#O+4f1CQ+GgcOYQjSo)*3v9WSyU{a|svvzjh#;c#T(mh}~`?v3|S zOOiv!h3uM@d@BzN>isZ1Gw@k)gH--+(~`le$+DZUubO zdvZKUDoRiYd2(c1@!C=gQsh#M9e0KwsVkVWT*48b^VAKL0-iStf3tPp&O<<#Q9wZxFAK zpEeydjJSR5^0J(5BFqyM=E{M91v8XuH{ihsOq{=32c@b*M#HcPd@E_3mYS z$ihm4(3RI~i;lEKWnH*hl+i1>KC|XW>1U6+B(?>T&+A+V7x-SJzt!bQocyXBKKALt z)ki-|f9&pVbN|VE+C*UEN>!Hti;nW&FV%OP^_A+W9+!FW>9l>Afa!{9f|*F3``z?$ z_*Y3wa9_DhvA^e6%0p&kZ1d(VeP<8RXCwX=^>8XXzxi?N?Dhk0eGdFRd%7+a6{q-o z9<8LCzxehl`0I4CwTr_=dY>V?$4)E1)qy{jsPp-2c<;M7{j0zGLr!C8vJZEQ;-%CK zrTym)v_H{*)>XyVKDX$a^`Dr%TldpWJes?+{rMid;~CnKoh~K!?$Q4aH)Uk-em!J+ zbmqq2e$hiUi6T9QYl?nedcs%hv?51!V(xFu%x}9MGSHjzV&$$tk?N0IROmaa^_kVEz(t5AJJC1*t zWaB9e6Peq)&_HK;x7*74+gtYfr5f%VzkTtQ_PY*F=ZXtF*M4$EreDwPAtn}U-Z$iw zmNp3$*qSp^@gU_!&+3a>e^ND%2GXxSD~&Kt8Qj@xH7jfVQ#s}GOxAB{zNIOqZ*26{ zOJ67~ZOO5Dpx+$WcqF@Y)FW_5%bn4~lQd)PT^l8xRUPYti+kg)9|un4>-BTN?byS$ zA{#?bhgNLQ=`R(1FxD(~y7_AOHs77OOnUmCN{4J8t)}nWV!HYKMG^6vu9JOx9@DRX zV(CA*_>9a|pA#EoOph*JSEIPBTm3}(jFf84O8rU3n&19^KDneEWpay4puV$o#+5l! ze433vi|3AhQdu&bkT7zosPlrDywTf}7oAn9%Je;T`V;P#@*U6izyEaQwI!F0^3EKd z-a~-%#WjaxbA&?|bj=@A1FaR6ksD_fq}dBGq#j zk}k#2HS0N5+dhuo6fQ6E?<_y}v&6e0VfjR_^j`gr;=b}XhaRsqnYDjEDr*E!`e>A_9 zzX5;JR^qq&FMr|_l2YiODG0ev^NK#JFVf()<@@#q|EA;qjpe@Izy4l-|4zlhif;$D zvuYQu%G6L46=Xis_(se*-ORi!kWXrzqZn6elXh(O?Pp~J2@!|BsX3}g3RZActK1xj z|5~w4Ic-x*lysRETh=cA`gLOq@)YD0ZC+Hjr-jgyzG?&q9(Aj%h^D_OT(M>#VQ{V4 z$a-2u@s05w6Mc@!MvG0WA4of84~ymQ)md7o*U@sxz(8NGCt zejU@ZC4a_h+*GRfF-yCS4t;pFH)9FyPY;t;|B68_aX+Q-#|jpejgH4T#S0dQFW%oZ zdQ*HxRf9fRyJ_d?iDSjKCI-jFn5DJ9KKvnh&Q$NnxT~a>ywyWwKcar})QtS?RHTUAElU zRU8|(1=8JnB*ZN3->tW>Tqz_~v##TGri6fZzeIbs0^Pzv;FOS(OX1g%;-4FgwBJkE zFI?|xP)T|H`8K`3&%4}Fx-Yt~A;rk9U{X0`$wBYh>i+Oa@t-Moimy!dY*scp(Vl$D z{B7jpFU!j3{6~gOdLOcV*IIdbw{_dyjDix~3r^`%V?&#jTb7E~zmU4&bTD_{7ESij znj`M}v>asDgCaJ!icN8N&h_4fxKFE8`)7Cigc_UvaDJ1lwO0N^dE^fEK%p10HVtx} zg+4x|96GE^gj0)n3KxbgT;%Zm=g+=BdwkxBCwHnRPYO$v)mSHI{Tyo#Z-1e9kNasJ zhr_xW?$*y_?q(*%L;X6w`THghOqU3zj3*1Ga4fV8O&YNrq|0nR^R4&1=gI?nGA%S^ z%IyRb6QsXA3zc-Pt=}40wEn1hgS-1!SKMG=tK)Xv0=qxUG}sQ^-Ts)1o4Ru9OOC-R zlajmo;?WXKb9yYE0VAJw=3RWg)AZ;bwM!A>qMCcZz9n-*cI;8ucfa9N>H3Mi_B+0a zE1mP(ndT|iSeHD!>=>PUXWW31*c`Wi-Sexyd+)Y#EBcDA>o74r@KDC5Ak=il!ycB0 zsVSCI=A5HB^>uHXgeUjs6wIl-?v4^~)|-gac%tOLb@8fU*E?2CF9^Up?>B=EL;I`=f^w|{?d-p})_ z(v8+vPQ{2G+m!QYv6_9loIG7#@YlJ;Vp-FBrt40*IlVua>e}&Ua#8*EzjwGrN+yyO zp4kU>8Eqznq=bu;lN+!0GhaDBxov~&X-6VmAiXPB)}&tVw~ycN&L^&UZ>KiP-q-(? zd52}%&E(#Wb$2(7Ej~7!GZZDMm0`xhWfX21f44HXe>hZ&bNtsSW7SuFBsYEX=U(o* zTZ`Drd z$Um;!%E4ilaLw*7Ym$rRKy%IP)_S@>yYQdmYQ?8?$r{fivBy`cR&EREh#Z(?T79xK zgw2f+ZJyYS{}nOm~*yj|2c0@eZB3I$9x@Ao45@_ zIhyxB9)16HAYsP%kYUb3@Gygi1w1tHu!4sTJnZ1%01qd4xWK~=9v<-Uf`<=0{NND) zk05x2z#|ME5%7qDM+`jT;E@22BzUC2BMlxI@W_Hk4m|SUQ2@^(@GJ(;67VR3XDN7= zfkz2E%fX`z9u@GYf=3NJ>fq4;k0y9lfJX~FE5V};9v$$k0*@|u^uVJJp4D}RIR24uUHH6|jD|O8UZBA>Ky(LDvtG6Asj>E(-BYmNT4P9* z-urbZVzTFF{8QGXa=r=UPe*41iiW!Pa5~mzub&ogR$ng3eO#jSk>snA4|kosBn_`D z7+|wc`?Z=qHM>=N{|?G)v3Hr{W8oW9dO3R{=xKL&jWku4gH;NH_!1*+wB(0wkeK|b&=OT{&qaxJ2Mw`zkBTl&i+TmA5xgHA| dum4aswl1h9R5Ce|`g6#R@#ZemhBek}{y%Ni7v%r| diff --git a/src/Console/Application.php b/src/Console/Application.php index ccf6b81..195815f 100644 --- a/src/Console/Application.php +++ b/src/Console/Application.php @@ -148,6 +148,7 @@ public function registerAllCommands() $commands[] = new \SugarCli\Console\Command\Package\ScanCommand(); $commands[] = new \SugarCli\Console\Command\Relationships\RelationshipsDumpCommand(); $commands[] = new \SugarCli\Console\Command\Relationships\RelationshipsLoadCommand(); + $commands[] = new \SugarCli\Console\Command\Relationships\RelationshipsRebuildCommand(); $commands[] = new \SugarCli\Console\Command\Relationships\RelationshipsStatusCommand(); $commands[] = new \SugarCli\Console\Command\SelfUpdateCommand(); $commands[] = new \SugarCli\Console\Command\System\MaintenanceCommand(); @@ -272,10 +273,6 @@ public function run(InputInterface $input = null, OutputInterface $output = null */ public function doRunCommand(Command $command, InputInterface $input, OutputInterface $output) { - if ($this->isRunByRoot() && !$this->isWhitelistedForRoot($command)) { - $output->writeln('You are not allowed to run this command as root.'); - return ExitCode::EXIT_COMMAND_AS_ROOT_DENIED; - } return parent::doRunCommand($command, $input, $output); } diff --git a/src/Console/Command/Relationships/RelationshipsRebuildCommand.php b/src/Console/Command/Relationships/RelationshipsRebuildCommand.php new file mode 100644 index 0000000..ed5ab99 --- /dev/null +++ b/src/Console/Command/Relationships/RelationshipsRebuildCommand.php @@ -0,0 +1,56 @@ + 5.4 + * SugarCRM Versions 6.5 - 7.6 + * + * @author RĂ©mi Sauvat + * @author Emmanuel Dyan + * @copyright 2005-2015 iNet Process + * + * @package inetprocess/sugarcrm + * + * @license Apache License 2.0 + * + * @link http://www.inetprocess.com + */ + +namespace SugarCli\Console\Command\Relationships; + +use Symfony\Component\Console\Formatter\OutputFormatterStyle; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; +use Inet\SugarCRM\Database\Relationship; +use Inet\SugarCRM\Exception\SugarException; +use SugarCli\Console\ExitCode; +use Inet\SugarCRM\System as SugarSystem; +use Symfony\Component\Console\Helper\ProgressIndicator; + +class RelationshipsRebuildCommand extends AbstractRelationshipsCommand +{ + protected function configure() + { + parent::configure(); + $this->setName('rels:rebuild') + ->setDescription('Rebuild the relationships') + ->setHelp(<<enableStandardOption('user-id'); + } + + protected function execute(InputInterface $input, OutputInterface $output) + { + $output->writeln('Rebuild Relationship: '); + $progress = new ProgressIndicator($output); + + $progress->start('Starting rebuild relationship...'); + $progress->advance(); + + $progress->setMessage('Working...'); + $sugarEP = $this->getService('sugarcrm.entrypoint'); + $sugarSystem = new SugarSystem($sugarEP); + $sugarSystem->rebuildRelationship($input->getOption('user-id')); + $progress->finish('rebuild relationship Done.'); + } +}