From abd10194257820e5369752db271404178c5d3763 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9ric=20De=20Foss=C3=A9?= Date: Fri, 26 Jul 2024 16:40:10 +0200 Subject: [PATCH] Add blog post about release of autoupgrade v6 --- .../news/posts/2024/autoupgrade-v6-release.md | 51 ++++++++++++++++++ data/authors.yml | 9 +++- .../images/2024/07/autoupgrade-logo.png | Bin 0 -> 21113 bytes 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 content/news/posts/2024/autoupgrade-v6-release.md create mode 100644 static/assets/images/2024/07/autoupgrade-logo.png diff --git a/content/news/posts/2024/autoupgrade-v6-release.md b/content/news/posts/2024/autoupgrade-v6-release.md new file mode 100644 index 0000000000..d930aee578 --- /dev/null +++ b/content/news/posts/2024/autoupgrade-v6-release.md @@ -0,0 +1,51 @@ +--- +layout: post +title: "Autoupgrade module v6.0.0 is Available (1-Click Upgrade)" +subtitle: "We are pleased to introduce the release of this new major version of the Autoupgrade module (also known as 1-Click Upgrade)." +date: 2024-07-26 +authors: [ GericFosse ] +icon: icon-leaf +tags: [ module, autoupgrade ] +--- + +In the footsteps of the latest module releases ([see versions 5.0.2 and 5.0.3 live presentation](https://build.prestashop-project.org/news/2024/live-update-june-2024/)), this version brings a number of improvements to streamline PrestaShop updates. Explore the changelog below to find out what version 6.0.0 of the Autoupgrade module has to offer. + +![1-click upgrade module logo](/assets/images/2024/07/autoupgrade-logo.png) + +### What’s inside + +#### Global improvements: + +* **Ensure update path -** Optimization of the upgrade path to the latest version of PrestaShop 8 when using the minor channel. +* **Enable usage & error analytics -** Introduce anonymous analytics with Segment and voluntary error reporting based on Sentry. +* **Better display of RTL languages -** Fix Right To Left languages display in the BO by better RTL files management during updates. +* **New PS/PHP compatibility check -** Adding a check to make sure the PHP version is compatible with the target PrestaShop before allowing the update to start. +* **Improved data privacy -** Sanitize generated update logs from sensible data, such as the admin folder name and adding a link to updated privacy policy. +* **Smoother update process -** Allow the whole update process to continue even when a module triggers an exception during the run of its migration files. +* **Reliability of local updates -** When using a local archive, automatic detection of the PrestaShop version and check for PrestaShop matching in the ZIP and XML. + + +#### For developers: + +* **Crowdin translation management -** Rework the management and distribution of translations of the first native & open-source module with Crowdin and PrestaShop module translation tool. +* **Update translation format -** Switch to translations in XLIFF format. +* **Storybook front preview -** Introduce Storybook on the project to easy the incoming UI rework. +* **Deploying automated tests -** Introduce UI tests running nightly. +* **Improving code quality -** Increase number of checks made by PHPStan. + + +The version v6.0.0 of the module also brings some new improvements, you can read the full Changelog by clicking on the link below. + +{{< cta "https://github.com/PrestaShop/autoupgrade/releases/tag/v6.0.0" >}}Check out what’s new{{< /cta >}} + +### Download the new version + +You should be able to download or update the latest module version from your Back Office. You can also access the module ZIP file in the project's GitHub repository by clicking on the link below. + +{{< cta "https://github.com/PrestaShop/autoupgrade/releases/download/v6.0.0/autoupgrade-v6.0.0.zip" >}}Download Autoupgrade v6.0.0 now!{{< /cta >}} + +If you encounter any problems during the update that, in your opinion, are not caused by third-party modules or modifications used in your shop, [submit a bug report](https://www.prestashop-project.org/get-involved/report-issues/). + +### Thank you, contributors + +The release of this new version of the module Autoupgrade is the result of a collective effort by all contributors to the project. We would therefore like to take this opportunity to thank all our contributors, from both the PrestaShop SA team and the community at large. diff --git a/data/authors.yml b/data/authors.yml index 8e394c7112..25c853a319 100644 --- a/data/authors.yml +++ b/data/authors.yml @@ -479,4 +479,11 @@ NicolasLoeuillet: role: Core Developer avatar: https://avatars2.githubusercontent.com/u/121870?s=400&v=4 email: nicolas.loeuillet@prestashop.com - github: nicosomb \ No newline at end of file + github: nicosomb + +GericFosse: + display_name: Géric Fossé + role: Product Manager + avatar: https://avatars.githubusercontent.com/u/52211274?v=4 + email: geric.fosse@prestashop.com + github: gericfo diff --git a/static/assets/images/2024/07/autoupgrade-logo.png b/static/assets/images/2024/07/autoupgrade-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..47f7a523a81fd2d91480205e68c6a15ae5e81bd6 GIT binary patch literal 21113 zcmeIaby$_#);GLBV$q96xkdp3}F6mO~MnLkN z%YDxI_W7RY``+uhuJ`@#?Cqs%-7)5Uk2&Uu-}ucHt)ZrfhfRqMfk5ycD9LF-ASf!} za}N{){2eOv?GE^-+fQ59Lkr0VXf-?8Eq&kOW zV2Uh(c5k?+v)H3z zgzQLTG#JLQKZ&Fpo};T$J|`hpY^_>a>NcBb?bLgM`9vCa332su(eg+px=AC^@9=S% zOY}aa_1=R7HGb8uFsIhw?^n9BBEwS8hGs%2hZaDgkk+9Rphl9iPi=C#fAEX5tD<4( zO4u(ovlo&rCD!lJ&bUDTW}(t!@S+2u^MYi>eT6%eQ|YqDbNYwiAbRAL7_UR#qoWRl z*}LH`H>!%9cSP!hilmQop9XbVh98kxR~cFk_#cu-xXtwOOxfZyJdy3>6{>SiU*SB7`sZtQPSNuRG`-h?jBzy95eC3uenQ^dsK!W<2{iyHsh zF^F!~YZVPDcI%0Lze(XO-t4?7ef?wT`XUBriNWgzOv7DBsCu1+QUb}_jiI$?r@ZI+ z>~I&H4h1z~P)=|OL1X>IEy&bU|K%t&u*AoKaU*gI?Cz&61vvlaCY5A@5`B#lt9pO)utVVI`s^r|=IE;F~z3jfaPe2p5;P zw>PIZFQ>DcH5a$AurL>#hl_`Y16;x3?(5`%@ZoTBXF`hjONN}KySbaKi-)bV6FpKU z!pzyzL!6NjoTvZi^EtYxs{Tv7llwok0QAA-gK**E=7e)OI&%H}4tEcEFCgR}5A@&O z;jRrh&IryxE`8b5Z zZ5-xs3o~wEZXt64KJLGXPi+z37nK>F-h=LB*VL^N!DEFE;^Y{5&r z1A`N1kUii;NI+kvKJp>OYH=L7K=+EuQITZn#0JDNX zt_dLE&vBp#5m`4&gom@6wzIQ?I3rR7J@U?fomK@)*8<^zkVAM_f(M23@QJ_$MR)|X zxdlXc1w{A-@56aS;D5W`*}~S!_kVXaa-q_T{besow(ekj-#>@`TD^}fUH|&_*H;JI zKg*V${?7swL74yb3hoFmON&3x31t0s%G?IwWNisN)jw?gpT}+g8$04R6XxX>g7a|* zzmH%q+NhIe5$v2!sFvZpkP7*ChT+y1TQLhd08_Qra5m5$Foo_8(o*v;LW= zd;k6{-Zqv%&q#%Fzy&$}tHQYc@xok4|Mbr{7UTM_IuZM0WRKk~-DI5|kqhf@nv!<- z$G3lK3hCTL9Do+Ug5j{Rv_g0~crZ#lGIz5C#%bg1A@*lD2iw07{!bxdT>srjf8Fsn zhYD`}>lkpVN;Rh5xH#(En$U|B-(Gqpts`>wlzy|Ix+&v9AB9 z>wlzy|Ix+&v9AAP>cakiN=Hj4kcD}J!qBK-OAr*57-kO@HSXYKP1xm1^g5%lfQMJ%AOME&ewwLAA=8YdJB3t@h0_Y~{7 zfQUR(*xS#aiKqmfI%@7W%Niy!AJa)dqqClmaB`EO^g$;5hbH1pKI9?xt;^3IK^`ag1l}$T*YqTf-8F0wpm#`j57 zEtk0lS|9Wc<-=s$G}lnqTj@~xw0^x+cx%H`J3G5Fmt`61-l2}2#D#dZLL>TQ_&bX; zvWATAUK8GO+i86vy{ZC}h4F?!XqUbE*aP(FLLvbX9glbha zwmo@CM^)DOO5uk$GB!4>_9QInLF$f<9LD}T{7S^3@Ph>d7)72%WBWc1Zq+Z{3RCow zy*WB{iQmk#s?P0|(N!h$PTfyT0??nJ!Ix=SUgF*`va_Lj-&_Q4i+jQhYMjuAj*2zG zBT#FSB)@r+5byzi`R7HxRH2z!@4h6X8Kdi3oPU`|=TuK`F9NR(?Px{&$rJN~(a!Ya z(peZ8>7ZZOat*VWT33>Rb4Oq5eMGsgZYa>g*)~t*Bfh%h?LNQIg6 zq^zs~wQ}xOhqzYL7IlN5wxol0`X_KnJ`5%yF|?_K+aWZf-fbHmpD_?2zHf4J7LD#Kc5M zOPdfDhSt&9$si&^=~mk?A-h}^WolQYAC(i;(IF?4rS|>D4+c0qNt^?>Ieg7`{K?d^ z%}l9KrMo2d;CC65T+CWitiZz#tY)XX(Q+YQz6jw`z#%nrZa7`>RFNk;v$8DqS>M(M z0-wl0EA=_@wC)iR5t-J^x_<8=Jl>g26X(ZmmL-wXPJL{8@iDv1eO_n1Xj3=$^09w3 zV_$#2rm=CtK!zaGy?a=RVuw&#pCuILyLW5OB3z5)@3Y;%-|o&e*w(!8lxTC4JYcpDmG$jJ^|Hp5BjFuu;}S?4hIhtG@K#&zH$z z<2FU*X9GhABks<;VCKR=Rx4GBRl)~~{Ls-fac!`Yhr)IMEd zEe(AJCbUs{$nVYatkwgl@}ctn?;<+HMU3iK!p7)XuhtOsbbfm>H+Oe~JjaZQh*#<9 zQCP$*8n<@Rxy@nJ)VK+&Z?)M7yK)}#KF#bS;%Iuh%1b?ebl*PC%B(#CZ^@VTXl+Qb zJ7K{8Yn`5T`m<-xqN1Zwx?Puq@VU9UHQ2-tIE53;?>?oFh<^YqUA?(=#3Wr;K+vGt zp|!#HNaM*=!_NdOP4*9C(ZFi$n#VUh3Q9^aAYbO4NXW?Aez=tzTb;2t^v7q}*Q}(` z1zA;}lSz@t7aP_R*-sWfo84)uLwi&@Wxm=KU#81WA4V@INFE*@P9N6dAYeY0uR3te zVhYz!nJcEgJf6qcR}-|4BWts(G8@T}7xF!{sF>!>=!}?d3h)=ZxjY)bAGALF&f_*M zA>p&N>>%17KYkQP8c?EA{8FIUIxd^thH7Clyn93>ln^>#7S2+N7D6w@miA6|N)3v8 zNX_Z;Z9A#gGD+!uk_*ui7rueeHa;2}M&)^Q++>GUx!Kxljsmt4Q}dGW-rnBU&55Gq z*RQctl_yTD)5BmenHE=SC<9DBc?K@8nKwl-P!Jo|f~d;nE2Zc@xxz4#|F!4$z-9N$ zRxGGH#V6<|mCzS+Ni<^!BpuJH*tm=u$M^zmk;@Q2qjOVFzs}d;(vId0#SLtdLqB}9 z!OSo7S6ht`Ar{XG&9m}_rKug0%tujiSBl>feD23zaTruQ^@RI{M$o=Pl}l%1UzaB*U!MUpEWih=l6hM*8|pm?Et2iSIb&`n_8`}fkN zQ)5HNTT=wo-3+3lRG0*`4$OSi-H7o5&Gpgu{d6oMl<^q#UOPGdq;^%5=3Q~EORb?J zAJpk|Kj}~lyP;v?Q@1R)N1{MbP*Bpve0g$ma)5^@_uezM;iH5EYqNE#3eJZCZv>&O z>1gynm4Suz`y)unSAj7pEH(w$mSqdvPk;CBT_qwnC&y)ge`@>YZO zt=aFi(lbZ9ni-Af264oZJaEK}gTJ}kCL;isvFtE3&>+8dQe33_LP)ef%j!YBcy)PsoitcsU^v^osf_i z3j~8EL0p@U-Y*3zJjY4gIDo%$Of1A zGy1BaMiTq`o~#30wJUB;^*aKW7mGI$%I`yZEpiw=?(sg{!%FwsnRy07P3c9`Bq1ar zL95b_FMRZ&&4LGUvOPT>=EY6iA8u8Rb2DUb78@1Sk}2#Ccbwtt`QZj!AFwwiW}<=# zJCF5YlnU!1g$ECM>2iAfgJ|KV5UZg#@yLirjgRz#*+JL8B?m{|q@;xQ^(lk+$X|$6 zrsvf=?<5Gq&W84k4d3V`v)B+YxR5(VH<7%`MZKss{S`-)B*ksN%$-_3NOE*;tD7ix z?`Ba(8@lI0HRx;Y72}$&K$6SSa5QdckxzGvP(IJ`^7dT<%d^LlV5z00-g>l?I_+}t zYbz3DNu&n{2k?x6v+IjJE?+%La`MPXT0bc8|1dO^*=oo30l~#M`;uA=x}ZyL6&7MN zX(edQ`c~si=ko@$+m+mC(tk_LdXO5qs)5Z;l^FS~WqFsdPL$~sIli1f zw0gC&;UU7V_Zf}XdQi^CM<{_#62DM81}x)tQ@CmG^E+QQ@-xy=jWGl&NFz_FJE~JN z4wjC_Myz`vO7FFB8*P1xCj0F^n_g^Ym)T!=X}@?O%a{@p#TX}YOCadtmWanz*thRK z&EMAD>*orlCPv~bgF*~ByH^t>6O0@Eo~`*7>s4TYh?I7D8j4AvkVq>ITw_dZ?7?pR zp4P>(B3%GlY-h;IikZXQmxJd|-(fL)Yw+cbiHUIm@1aFFUu91|IyT0T*6(_;Q^Um0 zj+?{E$iab!Tqeaj_d(`yF#3=Sfz(N@`&}L$o}|po%Sivr)8?DbvxC)ESLy_6;gDMQ zwVcnN4`a?l)_k>fbU;|;w`J|MBK-R8o9@?FyqH>rB-Gu@T~y9_qCb+8lhc8&NCl%L zTkAm_@e{8uJ|oP{kCVN~t7ei?_JlbFoZ+kZnPSV0REU~r>L;AP7SZL<(SBh^m_bbd zEPf=8{xQtL?bQ%=e&K>oXHkV^|I2rZiL@YioUP|3!Y%t=JiNXDDG#V$zzT_12whoO zIXam*_e17D9+ML!cXwoDWs{SVAklKDk?qgMKB%|bRgG@lzJ0r=r{`>}d2gobJ~H`1 z!@!Wq9a*ZHGHwTJ>vf)_3d^IEQkU13-`%JccT&P&U<%LO+wHf}Iu;w|As z-#?iT2YsXWXw3J|mRMhsXR?UKxK_u5rBr8a_Pw*EJKOY~-^78VyxYvhsyj{yX|K*OTJ-nvXnx;C>ww$y7BAD_~c|xb@d5d zV~hTwJae+rdf2)fh~3g|ZajvZu++E>+HSv7s^Bve}*dYhwr~ zTnpwq>ifICxcuJfdY84~v-9p|T!oHdXJ%xF=){(dFK1a=O|=TiaG| zOG@z7KBNpTT^FVsu~}8z#t20LDrP1M3lBG%T-@>y`I;d}0E!Hd7f^`%@qr}x84Kan zPw4L0_d8wP-AoJ&D3IZIvY2zeYgtLX7UM#h&sPoxaBy+uY@q!Vz6_inaI6z75tri` z2jdwPFjA@=-o^M;A&>2m+wCj~Aikob9DEZQ(3w0?mGku#-u4m|N{|JCKm@o+o8Om{ z2F}Yr(o7T_92`>S)JvywL6`}Hfg0nj_ufLhfZjRqR-Lir=7-;VgU$?qT{$=X#sKMS zH;5t(P*iO;Qd+-t2H;8dVzxl}l5rV6!Y-iVoagCWEn3PU&6ax2fGv6}ep^u5j+8e2 z7nB6sm#JCNq{FIux#*N!mNciW@&m1uoCh-%v^nL)i?A|yVph$vEh%s}gIS_uQKnw? zjU$URA|BAr&d#W)D5>rQnu9hRuBD?P$;fGkuJ64m2ghUTvW41a`%A4p=NliW8oz>t zaIoJ_Fm~f!KQH961R)|O26>}$wl$C%cy%rfE*^R#{;krM*r{%VB`hq=v?Ge}Y$)hD zlt$ER_zNKj(Cs@liwWwIS0qJGN}c#b#X(TV#kfVrWvt?TR`0nLarcc6YK7H+UF9>6 z+KPTq3Ng{szum#H^7Q0yy4V%{n$CR-?no55u@6dyptI9)4N#D7g%w_%$3{q58GO!b){%nS3=ISh zP|TBHqXY8>9+FZXH%0mVm(>JO7vLMmZYuOYA!`{>&rPl8sXI8ZOZ@&$e0kWTZeO!R$wAqga#vkJ zU!QWa#ONYX;G>zjIneve_mer`HhX%MRI(+q6rSuYHcNWm$Hu~HJ>D2Y2xPp{LWPe{ zns;87f_#>mNaRkA`RQQb(foU@dnLE$2yTA62-vZGe21-5fpT!M&C1Rmhq36S`ywe zPmF!hgYOoFXcfw-sNh0|F!B|0TdABIp3T>LgIaVW#}XP6%x^zwI`_pDslk~l`^av( zAZp;p6axdVEo%@T)UrUxc-g|qy5S1kRwwaXce?mI-GLY>^I%0w{4n#TQ?J#{9S!YwF zzj@;E^XqM~%l&o=9t)^K0(CT%(-#!rZ~*oq4`wBv_B-j+{yqpP_|zgEQ7@n9>&Lv} zwa#%~Y_L}E9D*Uc6AUf;Kp`-`)tNk{b@!eK;!n42zn?C z?Oo@JJCV$~xB+FtD%@*Z_jq@{UQg$qY7?`wk4~liREg4q2k%Io*G=AQ6~d-ls#gTf z?nMbz?+K>kvEXL&VaGt^i>9JsAmc-?iH&5GLaCKmVEYBCwtz_77T~U0PH|o`RRwV! z*Hsfd66?By^jjCZ^`*)4)v6$gu6gZkJ+$?9;q};YHBaa$$qUozdK_+_IT!V$2%QsZ zH{nd7mw{-KPirwATaqemOyGG-{(|@&?@hB+7#FIx?I+C^yh3Yigf@>plo18X7R*I@Zz# zx7@<1y(N7mi>>bGn3?PAv1fg247}U))E~tmqRaZcABXR3C0-pRq5UmYX{g+c$jM_F zsK*TD_w3$I&)mpLzZbcne5Iawl^{yj+`UFXYUqedC4lR`Ht2W=-QwVB#{~foEW7pI z;DUkzg~EFxUfbV_ou5^!*jP}kh;-E0(Ey+6Rl4}>j&sm8X8Ez!OM?)3_qElt>s*+= zZTP8}IKP5x1O)ucUDp ztFnx(c@I*MD6XORyeG#>{p|OU!U;Ru;ZcB1v70ne|AkEft9>sl4zgFftpLdmat5@! zK?5Ckxdvr-3*GtT9qprk4B6KpHtKN@BPKHsielQ_z6KoxSkU&^kS0U12s&SEcrTxi z$Py06(4tqRicrsO9%heRAcVw(^vmE+b+(K6tSd3k>@xs@pPbZ`IMVKFN}RJ|5YVa&1agEI3u6c^xelIS@HWDkC5&P&T6Nt;4A)1C z?w>EhVJLl*<+F9v3zlaxx_CF+xIvz_cdk!I#l!^n?%+}cI`%uExvqux@3_g9B-IpX z2s?OXig{4u$9CtLedJ%VnL*^?ug|kw+5}`36tL#y<(UF>o`Tm3x1{;{oF!3a+%5#m zr)_g@x&o8ozr4IG&sDIfWAv3OdOV=7v1-9EVJ z`0@$ae%{AQ)a=GX2CJqEnb=qs2DA@>104zc2Kyabyo9v#ZjrROo*0<}J$Bk@OwH77 zXZ6ksZhgOxZZgAUeYDXcRK6UU`SUk!?U2J08D z)R>+Hl=8ypJ;KTHTiv+tTSZ%r${(iqY zUvEI{;Lp|J7;)XR->A*MSP$$J407}o>XqNiGzVT4u(B{SYupsHv`8WAQMS~+52CYH z<%rpj1FXFqcBI|*Y3O6#31^XuDazxzNJ-2Gu`d6LguEN`#BP z`LdQ%(et@Mi#=16?iFT2)w+U)%$kLvdw}F+o&C+7_fd||(-P*Rix<_}EbX6`7`fn_ zc}}5F{OZCXt$uLr+Z`vE6fSvfAA7QF)w{7Oe%^B=77yLQ`!X_&X#AA9WP@*4`S{z} zgr9a=&1EkvZ7h7ADzIy%MxuWGD~}Kl2|@F|5X&6zZE3p+y64`?Lin0HxvqP>H*Hx# zEU#>YYBQ$i^`33PRHdCg23?Fzj~HJ__mP!X@RY3Fwvv6q z2nt}3qpF_+Tu6!e`4Pd##DqHlu`-@IX)U<7s=s~7yZ2MPetC~Gq;}AUupGCwol7DR zi??4g2VZlw{q^iY~_P%-kZp|l(pBtB)UYH z67sLkPr1lYzhpU)So|>C2}w=&-7@!C-nA}sI$(Q2p4y72xTyRcjrEh%jOSIE|Ebfr zoj1>(XJkB-9XI%-v%Szr#gfu%O;yEj4DA#S*S+ZMi;c0g@t~j$L;#J||Dc<_)@HDq z``yu)e%=wF!Fsd4tf8l!;4Eo~+E~&w-E0qv%wn?p0CRJyX3BVD+9f~y(uV7lVEMCf za*8X){hvYMr`FeW)$BKfT_U$0QB^bF#D-Y%yv~qkOO;_s8F^oK`kHISL&$Zdg}cL3 zMapdL`^)kwLLeMJA{H$?Dk{FMoolcqUDT;=C7#GLiqc!$l?$?Tf!@FDRYzqcIKGMC z*Mm)Se$;C&RsJNiCmry%mn(d>lSyj&xZh10mXzgs?mRSW5~a;4`{9idKoF#G8xH)C zF!gX0+>0>^>t{AG5mAU{uENOTBQ32#0R3s0R59dv`2=TRbwkq9AXN_^G zpC6|i+wcGi$`TyEm|;%w3E_ju4A(wUj+KCC`FnMS`Lmesx2(^0 z3HtV7mD(sxz4yJDymBhGIv_v6@svazDPeA5B=gbZkir%CD+|WU+(T!F>t1Rm-x=gKe+%5 zb}IgxD7dtexDoo|z~d*6zn6{0{Oy?Vq9KHS>3iub_$DXZ)kVrfMifNEcw{1adM!>! zNP|@v7tKukHAo56hcqpqM((Jz9ivb2b#m{f@umj_nSya5?&&9H8|vbZP0e#OXrqj|z(P#6*K!xy(dZq*^AS(My;-QHNHdPL3ruyvS&#PkoU5P55^A$u&mo z$ecyU1L(8%-4=tzr@`Oye3X9hoS<4{X0P)rz5`T(?5BrVfZ=eLWHOma$nThSfKoW< z`YAvT&kfBtJw1IcdZ&^yQpY|fPh6oStim!#BDrf4n;jG{oA1}$lu0XXkD`1gOQ`SN zAG>V@^t=#oYGn81u#Uo4wz2VOP!y!S`?XypJ}97dq!pbv!B})boaLYY)_sU%5*Alv z0B;=J^q}-_{cUFA*;uCM0L3S;yr+8`x0<<`?_*KX#&&r_19kJ|Ar8QRhmMe7uxipz z4-rJQ?$eLlq9^NdwXur|Zc_;k7F7_=NE}P__dpND+!Rkfn6jlR16Umrtp7>j=~FSh z9zrUr*x_Lfk$!E~r}yb%*VUzH zYa0}G5&XK!l+p`ZG7s4ps9Mm;mA|0wAbub1Sjt^8bDL#J_#T3f(zbxBejYz#0HY;^ zd(?ubO83R?%kOj16}o)hfkkq9)^Lg^g{C?>IxF#l3&F;vm<(tar+eMkR~OPyX(J<= z1)o(sPzW#DtD;)aN#4qs?o-gg;s3HG#FjC@TQYh_7}C+*ZNAXp%a=C`dbN;D@B4l? zSEm7^1dj*{&crFdWW*Pf+3rE&>bI=WA~7n!TQr9Bx>Bn?MB(#dIy63#r!w(yz}@vf zK>)8&kvxGKrYOI3qL}Yz^$NFZ;tO*rFfBltfDA=vuXZQO!q5Pe0FuVxSMNbBv2z;t zyh+AJjv_*pdW4Z-kOI$mm>nBq)s9qUkDW-U*?#+~79pZl9sBhQ5tN~TvoxgSbHtB+ zgkj^u!>FhuhFLQ+GZ?YE1n>8jXSX(n+-j+%mEWuL=d;GJN<4waj>OqxoSJimTgfe< zZ~u0^yIEv^aArS5ADmTUX84I$MFy%GjNy|*UTatqYkb7tD&`8mB|7C4K4F2#Ez(0z zQH-yq+#F6KBhde98Zw;+^oWGH0W=9Z!~i|FwY8-Wds|&i=Kk}mw6AaN5P!Zln|ytT zE`{AM(8YD|;Ad*ci0rfhMugAt94D*Q<|R_!ot?{|+X%oGz^kDUc4HPw$aRu;ZoU%m z5Xl#F^jlvjF~>8O3X1U#x>AGnp65Qq z>2sYs{X|ucMH(jE(e;y1&5iUJ57Wyk+w~V$?|>CASkRCb8@`;fGFT3)3=9qQ!(~cO znP0B>(yD#vKc&=WthMWSzA6+ZA0b_6*YJCilYwkg!!zTPAOo6C#l+pjDV|FexV^po zhFkr|kJzGK+iwHY>%I5#s~@KIqZbVb3M!x(OL_X<*`BO+?%p2HR`XnQ_R9_r&<>f17FK^+I$rZ`!y;wRtC$ED~< zNW!3W{gfN;i_1vpuGVNSx0(|X!|_v98x@0_!!WVqwp9uVSLSU2Q5nXz;X?nr>N*_) z!i{LkN3oikS_vI$51vH+4sJy|Dt+m@VEL%MXDcj8LGpqJw3ETrF<*V7(=Ccg0(t)b<_CyEh(^inyyX^Ky-o0Bqb+5i;KgB$(Zs{ z9snRTr=(=in(A?(7Ne)BGl>;>i&Is(=H!c8I*hFy{w%A}wL?;*#b$VIU+S#WAutMx zD5v?l5gU2HVHv*yxF`ewYl>1*!RnIZOdsMpd+wPBocmXkeT4CYlU}qzUhn9)ZZTMpL6|G6I*ZqrbhA%`=@{Je*7Kbp(DN?fb;N;iZGxF zWZ(gSelZ{*G9?O)rIFBcqRN!8rzG=oOxVZ0>prVk#t>!bGF3?7h)q&j8YTo#i(1>l zahBa`m)vUiL62<-0LZkGB1NQi=la=Bh8dkP&Ju_3_g@rD&1!&yGL&1CUk< zSo$PA?xOB{lhelyxk!7Y-xQm1;5PI z=bao3s%|d^?%y#ynUu^3TG7BDL2*MSGls-p(eSGLKwoR5N}Zs`LhGc1M?cj{Zx#u% zU!ENRyTzT^4S=kG33pT!K_*X##5D4qC)?-4-Ypih+&@&yvL`mf zg5-g}r7hTwL-xj%(qJWWthk+t%{zjcH5{RFeci<8qpL$&)DR-#w*a zl+@YBrCkCORAmQ6oSDi8MP>&ov2UTz2IIkQs5!^%j1mb9<{4pd;RJ-??)K z7zcnjr>CdSE{}$gCgLH2#Oy7s{5smq%HQT!cLh=EGq%1>4t3orVE9&Ug%jr)!E)~j z=|=^SC)rlMn`B`ZK@Et+53a--Rgmjc0Q5HJ&R^z{#{3LN6iuorv+$IZlnw44T5&)6 zJ9ok{V1eJ071v!KAWf&hrrFNny>fJ+`W#MVd-QNmKKFwj3m%m(Yh(o>p{~bivY-6C z#DRQ46^dtD3V2N`Sq>nLNXrZsrK`szx;IN|eO6#9kcp-AepI2^`Oq^W!?%?MSDa#kUDlHYYxf6EFUiAR0H|2RnpQ;Q9R`gJi&q%qrl$i)N zv>btDnn;)SDV$O2nRG73MO9V;EadA|_x=v%L-_K7!SMShPfk2|E@k2E?d{y2o7#5W zn`0jcve3~nF;`3KcSCfFer-jh-6x?C^kigb;cYVcf(lY2dXbW>#cI&-j@nBP&e+Qc z$=GWqMd_0QqMn+-8+Un#qS3-&Q8`N1Y9aJ|5}X@rgik}p*;HOhkmfpP2lt$e1Wsct z9JC<;5$2`A+YTv_BVM+L$$I+w$~&oGD9NdESZoTN8PtH%%C;504a2xy4zkDZo62-B*x&j!*&#XsscBxXd%# zv3v%8ep2dg>GxU;Y>Y9#q;B=a_U*S8*X*~a6(RU9PV&>|?b=`dpeo<5`aMkYvTet! z0;OeNvh{d39rew+99wG4x#dS~Hp=pz)sQxsEdIOz8Gn^@f!mTCi&1;z#lh`A_ow&l z1kznsOfhJmUK7rp>}Rpdh_8Npt0xcuI)i{3H2ldx5Oj;QwY33b41n`38y<|3lG#7% zYN3Y^bcK0=>r+TAHR_9|356Vb)XeTC8XEG@o2Qp-z`&IBH1HxMaq>IOS^*0IbVzV( z4HG_p<^kPKkao2@)vSU>CIw()*k8qh%zEUat_cE(9N2wjY3#tL2JsE1-b^ZL7k_AC zkT}2P4JsI-5-M>LqC&KHgzt*mZ>zv_b8`>AnJ13S9{{$}h@}t6ERii^ZSAsk-k^x7 z-vBpSDLN&~g^M;PE201}!dfXvC19ngNCrM+`KI$QF)fF$8EwqO4>g3fY=EZg@q>zZ z{Zd^bnS%StQ{iDEHWeMFK@a3qNLVC&sOHqju|Ku&-i^LTCp+T}B6b513vG^*+DA=A|- zTT5mB0-wxQW>?>l(<-_tE0TFewZ8n0hlPt9ru^f97Ac_J0ql0OfEF-FqN1SxAUOlF zFD54{IaY*b0jR_*3z;*slyHKYC6))?S?@ zNMmHWf{L7~w6;){%4#WNx=>GTdYZ#$@=UurGKcDkXlUa9)ar@})V|kUJhx}>HIJuh zXwc`YG!y@je-9Dk)SoZecxJsAL|8xRteBerJn*IWk&8$s6c^iJaypYWs?5N#;L{|7 zz&+X+2zpx%Dl7VbtE8y zGKq;%U!3fOvc^ydI#F+KZtk~Y(wX+XxL5p(>sG1wQJZ-RPi^st+Y{2_E>L|Y1zhrd z<{dO$irPZ)F?<19Qn;Ys3^>`qe+i-$hC(19LE((tI-M>i+SEua%qyuQi}cEueWDqf z6s0kDSSkvGQ9!^gE%bM~)UtxFWic5)w*Dk0eh5_3&nzH7c5@nZgZW+y3$(QWRm^YZ zE+ZpqY4f#+oxQ!@mI(_{^mk|Vj>?BNiLS==S(u6DIzAN;u(&s=H1nMyuZ`Sk(K&o_;h3M+c8lt12qe}#2 zIlHyG-#;@ph5+MET3WgolL9y5W)O~&NEI`c8nr3}4S`6*0Q0D^>(7=26i~~rAZwXF zb?3&$hSI}_w;0eok+uC!4IncQ>Swo_o}E6Y-p@RF1)AzIGDw0d=py)S>W}~~_SzeN ze1+WPDv40AN8%nRg=uNkf}CxNUMRnZ5)hnTG<*m60Y@)_=ap%dJ_-boML_iRND~A8 zcaVLWQ#ka%yKJ>xf-4;e5qUo~F|iDY1s-E}d3lKeN#+gJL*^vqJQcp%aj^hG%E`^4 zq9HRqTY4_W!0_xkGcz*|u!m+gK$D3abl(XG6jdy6?fQxc$!-q<#{2%@eJtq!PYw|; z(*xOnz=)0cIYRk^)2~THlsgKH$;0*lw2n%Q4FwgcJf|6)5<8zY2heOmuiBbd#e`f1 z0ysKtfS4sWAA?UV6bx7cLm3rKv`F?ESU4_Mo>RHZAE2mQWpBV-bz4>C=2v2a&WTmX z#ui9AqT=E@ZV`wDFD;n@2L>j7_?5Mi5)?^S3X63eOKt?S>)ne1_c(h+?>+&a3tWLS>YT>+Q_^e%?Yk-`90447HKv!fWdh74L-Ragp# zqNuCoeZ5lTKFE)bXAIEY0!pg~fe}Y4Px3Mt^XRX(cmR3c5e&XfWNpUSJg@%iU>7W--R`_wH_d zCV(dW_M!WmHL4%1r^aJ;RX#s!UwsMOgn~8}N9@YLe*gQkl3%k7rDXena;ia0*4}NM zZal@%vTF97^kIv6^D!qcrEzS0eCNZP078S8PEvt7oKVr_mVG8bLpiuo)by%^0CK6R z*@k+^hLIDOaRY@yE@2q#5+pH5vdW)E@)@9i*s5g%E{EBVzSQ;Uin|LwzMMKim;8e? zlKleDC<0N2j?NrU8L0J|2}*}v#p2V5lqnp1xFftYJv?GprKGG3=zNiCA426Ar2%UZ zFi-mW`e0zq0gpaDHPvpx!vHw{fO>dyedTktbJJdMad+vQTkz6xlncNioq#&H)u&p} z%ho>Y+!#MTu5FcYsMy*-B&XQ{Sb1>g1u=>|owx)qk=k9)ow%RgN*jxAcqDx0 zx}k44`$_Umz=!1eJkGTpd3G1Rx@i zOUoG>)4t>~Nk9@o0c{3gD?NREZM;Kbx8AHBAfwFYcp>l!-JrRCFqz@Zz{rh368T<;lx(qz3oVoOs@IZIC}JwNc+1T-0RF{PHe*pms%)EjhP~_iTU*Bp{qz1Nag_- z2C{^8ny*y|_9TF!2BhFHLP8YKBPp7|{xJ677QxiyBqN~Wfu#aez>EvU}d*KNSw3?v&3Z1UG&B|+{bs@~5qAemMZ$sHIQ9!OZebu~>LP9&pY zY^-JtutGBMC-|=OZ$OE+-96mgw9AwTc#UnUsY!^(v+W|}a`^oLrNx)x;y4y{Buy*e zoDWSJ(ADI@ssYwQpR7b5!#J2J910=~D6qd6a#~ngqU`7O0D1`UH6hxYSf-iCPFRn8 zzc9Gj=S?KIIUqnB@I(u_Y`we$KnVjNUcjAI%a%~>FDxi{`vWH90unL(Cs}HdfQPQ| z14sq3*MIqeeJ~@K99&!ksi~<+%J1pJ_&z48eUN?d0E=S{pkS5MfLROr@%m~&E=ZLB zf{xwX+}0UF8XCmX2dsdYZ#!O@Lare%ADNgWwzbLV4+2}Y5e5nco6O?-%5~X+;4=MB zLjEW0jXK)eXpP1Mh1y^Wq5)NNY(EGnywXTGK~_x-A3QS{!9l;`eFF$d`n--krNk7^3Iu-TjkwCd3zeRi_#nJOHxSi)c=BqSi$O?wGW(6Tj9#z(~D zjBRuPkEa24KgmEH1gNSVXE7q%QDmTCOTmUXH9jWtK+%LU`mE@>5hr=z^>6ER6&A>w z+&9Lqp7rw}rsj_PC@Lx{2i-ETK}mn=(Fe7Wp=;ohz&<$-*)70$@!+Kw7tg9zw6wef zVhsdvf}p7QbP{owmru{90oK&+AP@=*0ZL#S{fqefhjR(=OhBU_CLaL=r^3A=wGZu} zNLjBk?@o9JkiIY&u!2j#Bm}&g%FM;Ui}=73fU<&|p)wPY?D zHGEKR*-v(!^~+Bj`Sc*Y)g(b~nDQe4oMu369X)Ve>A>;yIX$GLCfHHVI z_32gvp8zXQeajtOLqbYAVjVKTH~swbxpn4(^w@CMZ|f<}wF(Z+!S{woudx~`8mlkG zuXig{55!B3X;lxhsA$I=qq+CJ7yq#n^V{==Lf2YD-5MvF&lMGg;)fZ|O~4x>NqvD= zejou#>klWruQS}E0ALZ_ax-)g-@u>AQj^5FIYWpPc$}9U1{fd4u%uySo?DX&50^`u z&SN+S+}+&D04)&k^7q9OCyJho-7$1^<$lR&1PmTalcd~sj0LdwBRC(DbLgW1ydNBL zUsIzN^}-E<0Yf;qcEb=;qOsU-ucf!xVSpua>3bGX&1_N6Nkgax)2Sx@4v3DN69Cky}&$i4#@787nxC^A&=diX}RUm+vf={2` zKU@d<*JMfLfuSPl@?Z&%)7D!JP}a>YR9F*?j*i+0n*{#812$to8H7C6VZinky1Pf; zKeSzM0d0Y$NV-7C&=J@Wwis|qLnFFS=eOk!Ou=EXi6(>|tiM$dINtsMjt>F0W%1Qb zKELx&LrV))26}jSSO&%c{tGl10Gdwb>+3sC{hg*i42Fz3l2^yXXwNK(_Jx&jz~Z>a z#dVh@B^o9ZHDJYLX=y13Lz96rV1zycWj;)kB$^&7mpcN>7*K#RbXf2tA0E0f#xN4f zC%;HbBd(ZM0Y}ZsVetyGXwvjKtj~dB&G;xc#Q7=l%4c_uD}cbtOi<>VRq5LXfc~Y8 zFw&Kk;75i6e?|OeEt)kZ@8ic9u&Eae3b@e7qcyVuBjzBg${Um+ zY+p`JLk@o|vIDIt`MLs3=|6l~LUS%dyo{^C%zz2~Yf2I^T`AUf&OsJGG6`yQK~y$2wsrhM<5ERn`{G)9nwlt$ z#_DMY$h6+}(W6JQX>lL}0UI60e}Gt>p z*_Rf1Bj%zhT&ied)Y1)vQvQ1Yum??!QGY(%Ja#B5KyYk~wzjrFHKOKS6B`p#fb(+1 zMh=iQ8+8C|wYAC7ZIBHjYFz`VJRumW(g<+d_~m_6@r@HvV>@NiUWdV6ynH!o8rKZ+3~$r zxSH9g1;HN_MwKRwPHGTP%}`BL6&Dw41~ixt8>qE&>uPJubt|@)uhP&h*jrV+s-^;E z<=8flD>Wk{1#6aL;)Qz~2ZqzXn`0x8V#Wvq}m#Zf9*vY^ap63#NJz-Hd$e>PCeprxo*IcfrHU>rOyT!eDg_5;if^lCQw?gX3pF>L zIrS#G38xi7j}t)0;P?2=_RRb7HLcx)Cz_jFA0&dj2}&!fY6cp?#TPev!sHhY?M)X& z_CXV+