From 15c838f25642e2842c0b962a1a4e232174f0bf26 Mon Sep 17 00:00:00 2001 From: Luxferre <3335173-suborg@users.noreply.gitlab.com> Date: Mon, 20 Dec 2021 01:16:41 +0200 Subject: [PATCH] Upgraded to UniFlash, removed unsupported FDLs and fixed a critical HDLC encoding issue --- README.md | 32 +++++++--------------- fdls/sc770x/fdl1.bin | Bin 7880 -> 0 bytes fdls/sc770x/fdl2.bin | Bin 57496 -> 0 bytes fdls/ums9117/fdl1.bin | Bin 32596 -> 0 bytes fdls/ums9117/fdl2.bin | Bin 75540 -> 0 bytes unicmd.py | 15 ++++++++--- unidump.py => uniflash.py | 54 +++++++++++++++++++++++++------------- 7 files changed, 57 insertions(+), 44 deletions(-) delete mode 100644 fdls/sc770x/fdl1.bin delete mode 100644 fdls/sc770x/fdl2.bin delete mode 100644 fdls/ums9117/fdl1.bin delete mode 100644 fdls/ums9117/fdl2.bin rename unidump.py => uniflash.py (75%) diff --git a/README.md b/README.md index 9950e9f..9926f92 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,16 @@ -# UniDump: an opensource Unisoc/Spreadtrum phone flash reader +# UniFlash: an opensource Unisoc/Spreadtrum phone flash reader/writer ## About -Cross-platform MediaTek feature phone dumping had been achieved long ago with [MTreader](https://gitlab.com/suborg/mtreader). Now it's time to do the same for Unisoc (ex-Spreadtrum) phones. +Cross-platform MediaTek feature phone dumping had been achieved long ago with [MTreader](https://gitlab.com/suborg/mtreader). Now it's time to do the same for Unisoc (ex-Spreadtrum) phones. And not only that, but also to be able to flash them! Unfortunately, the architecture of Unisoc chipset boot ROM doesn't allow us to get away without any loader blobs. So, some FDL binaries are also shipped in this repo. -The `unidump.py` file is the main script to use. The `unicmd.py` file is the library created for easier command interface encapsulation. +UniFlash started out as UniDump (see [this blog post](https://chronovir.us/2021/12/18/Opus-Spreadtrum/)) but had been quickly upgraded to do both tasks. -For further dumped firmware unpacking, I recommend [bzpwork](https://github.com/ilyazx/bzpwork) by ilyazx. +The `uniflash.py` file is the main script to use. The `unicmd.py` file is the library created for easier command interface encapsulation. + +For further dumped firmware unpacking/repacking, I recommend [bzpwork](https://github.com/ilyazx/bzpwork) by ilyazx. ## Dependencies @@ -16,33 +18,19 @@ Python 3.8+ and PyUSB. ## Usage -Run `python unidump.py -h` to see all parameters. But there are several typical scenarios that UniDump officially supports. +Run `python uniflash.py -h` to see all parameters. But there are several typical scenarios that UniFlash officially supports. **Note**: you need to hold a bootkey pressed when connecting the device for it to be detected correctly. This key can vary across devices. Typically it's Call, Soft Left, Soft Right, Center, 9 or #, but it can be anything else. ### SC6531E/F/M -This is the default target for UniDump, FDLs for it are shipped in the repo and you don't need to configure anything else. +This is the default target for UniFlash, FDLs for it are shipped in the repo and you don't need to configure anything else. -For SC6531E, firmware is usually 4MB long, so you just need to run `python unidump.py your-output-file.bin`. +For SC6531E, firmware is usually 4MB long, so you just need to run `python uniflash.py dump your-output-file.bin` to dump the firmware image and `python uniflash.py flash your-input-file.bin` to flash it. For SC6531F or SC6531M where firmware can be larger, you need to pass in the length. As with any integer parameter here, you can pass it in hexadecimal format as well. -E.g. for CAT B26 (bootkey is `#`): `python unidump.py -l 0x6b7000 b26.bin` - -### ~~UMS9117/UMS9117L~~ (NOT SUPPORTED YET) - -For these 4G chipsets you need to use your own FDLs (although you **may** try the ones shipped with UniDump) and the following addresses: 0x6200 for FDL1, 0x80100000 for FDL2. - -E.g. for Nokia 225 4G (if you're in the UniDump directory): `python unidump.py -fdl1 fdls/ums9117/fdl1.bin -addr1 0x6200 -fdl2 fdls/ums9117/fdl2.bin -addr2 0x80100000 225.bin` - -### ~~SC7701/SC7702/SC7703~~ (NOT SUPPORTED YET) - -First, for these 3G chipsets you need to use your own FDLs (although you **may** try the ones shipped with UniDump) and the following addresses: 0x40000000 for FDL1, 0x0 for FDL2. - -E.g. for Nokia 3310 3G (if you're in the UniDump directory): `python unidump.py -fdl1 fdls/sc770x/fdl1.bin -addr1 0x40000000 -fdl2 fdls/sc770x/fdl2.bin -addr2 0 3310-3g.bin` - -Second, these phones are connected in a different way: disconnect the cable, remove the battery, run the command, connect the cable, hold the bootkey and then insert the battery. +E.g. for CAT B26 (bootkey is `#`) the dumping command is: `python uniflash.py -l 0x6b7000 dump b26.bin` ### SC6531D and lower diff --git a/fdls/sc770x/fdl1.bin b/fdls/sc770x/fdl1.bin deleted file mode 100644 index 72a006d5f4b3b261df00719005c95a246e01598d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7880 zcmb_B3v^q>m3Q8Ik|kNTpFc6rwroGiKRG0zdG+36K!l5R}mgUTi-Vf`jfk!x-$lYBcFV96Y`2DzFdd zIWWn3p3rIk3#BMRl!%ae{DSBQ(V{@Ad=66QX2DhNM*&lx&N}?yqAkwMmLbLAfXDvfVom$Rvl0~_S|i#(8ea#jRL z&CStt(Hvl}f19130uU=eN@js{4x!ls(svM^K==WI8|y;24yoweMyUOM_n!4^bv5&{ z{Qb`Fcb74hn19;+vivEgm6-m%HMXXJ8HJw(kiVv8F)!P zsh$iJV|r!J3-Xm+SN0TQ+JkrxriGZkiukLT7Gio9@v~jiJ-=&}Rus$AT@~6(a)nZ% z6=QlE;)H{ z&I@fQX`2%7j>z%OZwX^l7so7|{au9_NuqXlZE#vjAK3ZXzm4ypG$ zn5$;Sp>`A=5gL#~L+AYtGg5{TAMPy15sTGd_q-(ky6dj)m*l%Thr91szl!l-9Ut(> zyc+NE$nh?%+aqh89oVO%GmhiOm7$)9Jk;eziW}*c3>{@bx&`TryB`$8V3QYjR=M_> zxvICSUxZ#EM=O_e6ey2))9cz1!>O)hq6X{)yu}$Xi`PL_w@19Sh%%ByLHiCxkTA) zB5qSc(0Ex;46(?==-_4(tY}evYOr~JDj2;F+ny{ujBOvN{t&>uD^A>@gp@@zOHI8@ z6u+}c5wxJQA2|q`=(J!CqU4Bp=f(vsYzYIUGhd;rz79q84I^}@m?QjF6*_PAORFtC z?-UKmmM+Sn$UQf1=?S|oFXImDYV%oL;RZ(WDt*eEib-9kKBT^-nmX5YKGgYEC+}jq zyj^`=Z+6*~7G+R*M``g1D&@Bw`T6`MU*KP2YcFfzy$lyLPi8hmH>T#NF3u@9mX0=V zfErfhoTS!O-t{IhY6XOm^X1j3l?R;1;9`p_ zfuv4;Y~splwZ3nG9x!HF3|%v3mK*2=a5tY%gWDAMz(IDBacl99)Zo3nrmsys3(znQ``weG-f8|39w*UQ=tRI7VV2 zOXtLha;uN6A%{Yn60@+~99K6tU160p*e=L%4z87^# z$GpZMuJ){<9v1CvsH@S(Xf~Nq`Y`QNK( z_-bt#mKdG3IyXMzW#Zc%?2>oK*(H#epQ`iK`7KJ_7bB)|Pgb^sm$zwLjT^m-!|&6+ z$BxQArP9X+e#NbkS@o!vS6$6k$w!r=8e9D$Loqh+2G;n{s(k2|MzCj*&(~SxTg>@7 zTRKx?MEQj*E8uE(7>nn|8Ew$ZB_wUwOA6@W z&q8Jv9L@n!%hD$JDv$TloUa~0>kAA~J&ghS9eUn*q8xB~PKd>Q=XaC`+bhz?MevNV zU^VkmYc9bkL2|TL%pMnjA0swkh-~4&9&BcEiP#|dA6?{A zaB4-LQVH#Df>wpp))9ME%e6(MKYH(-AaZIgW5i@J{<}^5+imD`)gNleVeAGXvF-pG@ zZ2o<;dC&~kKm+`=oWG`b)R+ky!9LHRG4oBs)7R?*jkwK;)#Yv+KlcKigGs+w5-%7t z-Nt7njLmkR?>^?4-L<*9@|O`2s(Ag(w%vh#qQ_u^PvEw`z5S zjvvX4Hi)CuDJisiCh-S_(=9-7?AZjTT&t$XzRK~Srrj9P@T^hxPVv#o4S4pGR20T9%nuBPM)wqX>cz~b~hVAMu_4a!M-`FAUxaXd`?|}%$ zl3UhoT6_Dt_VydvZ*Sky=JteYLiOSu_ubXiSaa_Z@y@_qI~r@Y17M5{siriKYmSSX zx(=~mGzX(u0xq<6NO9*z%%()8Uv!zUe(t&nD%R&#YPlc@J*FqL~XUNJG zF!{1Yu5|8M-?_i@`F>cntxp&atun8WZw~DXt-|_Zxze>lZZF*jP2c-LTh%sm$xNus zTq)lh`cbHiTg9x9D`n@a2ioKk_qLNEFq`F$(6b@n${0a5%Vfk~@o-!GL~#AOK-YTm zO4E0pBO}d~q8Xg8_QI_li*lDE=kMJ3wT^<4rS_YGU+Y+EdpdYahg6XWPM_E@ni?~r zxv&T-;ff7J>>Y(6T?;o;dxT*V*1DlVE{it+T*bzVT#8l?1$s_Py|&j&;vk-z>UVCs zg#i{w`JUzOa%1M}Mm;E6kt>M4z4jAVfD9kD3^l(u^+U7?v2{hP@fh5tzQy|M(MxBNHf@c z!q2b1M4^@>Ak7nHs|T{Snn;aAUgWIVTXW8t0e#r97NQ?(;TyvOqaBiIG(oguwqs05 zW;7c4dQhiku)`IA`b@nxjV8Cm6@SCe?dO*@2|w}OO9X*(vhDY(*(mAz_5${OZognt zY+AIHRBtzzN(Ci0?pNEMLsP1kD&TEeD$DP|#ZJ+{bm4w(AoWmyAOszGr<^Aw|+7ty0N(ET{{ zq>q5D+^YG_19@5K5he79TNA{U51iPb6V1w5b4~SJ++3d5`;jJerJPJu|AEP8zZ1B*wN!pbZ3*O6 zmC7xuEpRpFHuWLr0H~d9{)3%uEt~x<%I20qWm8LR`8%1^rfzC!K^Rn>0qQ}VDvj%D z?AY&Rj=KW;%%A^hQwqQPEx<`-ENekPvRYFSgFz_ZVqnG^Qb z;T0uHZy+DrkYQlS2}nJdCc|NloIn{2G91fbn+yl~Ovv_#ywxLu#UolVR56S!J))r> z1&>I8KoLH7tYjp-R(Ql+Oc;L1O7I6Z4BPNrG4N-Jq7+Vov%6&;M9Wx1^o|XM;3Y*R zrEsZc!@P*6-&~?$Ou-2JZN-Pt3m^U3236Cwey=@&rh})mG4rsYWKKyjK%5c9Cy8oA zyU`DXZqpkeObTtf7XwB3m$JOf9p#(fF^B(p^*To{S!AT zkEk#lV_he%!#5kqqB^<><&9<8;@A2ut1Yg=9n42-Hq>sc_G^LI%D0!fG_sHEXCzFANnImb)*8#Y z8E@qUaZzhPP8LmKrEI>mL(#CmrfLB?4$c1=)A=#Fj)fs5V#UR>I#&Mivv_YPnYeeXHf` zj-}jo%Tl{#>1X3$>yX+jKEhWMC&ob}g0T=r_bXdC@L9qFq#ir_sH?#2?B0U6ylT@6 z@)jjWgQ_dlo3tAFCdIBXT!Fo_)289eB&H5=NVRB35!gFagOV>4!obR z@T8YLE^2RSOU-{wbd-9=pc^p4wVFx7R}pNMFvf*kdTM2Zsrxa(th=>0wF28*qBOMC z!6+|y|1^GyLVE|JTsOWxR#j_doJntY?DsNwTfrD=>^s_0?oTHeZQ;Izu~qo>$H=A8 z=Hiz|V!MTf5eUBHpd>g}CYs8`bmi$=@s8i^X5-(W??yg;>=FQk(N^2>S_>oICf_FX-iM475lzG@;S)}l;^ zBZ#rJ^t~8Fd@q-le$06AeLRMsN0K7H`INma;--MOYnIAWF`CTKAmRgQ>@>+AO>$zm z8hMb{#F#`#{si(YqC81#DCq=fp}ZrpojQ8UM)A#^I?kt2{Mk;OU=E(hgoyG-j_%ZZ zSxIEXL%N7KS->OMzL!~`BTg3Z$PuKI1v=s+gTJQJaeCn*o$zfs@R4N<9MY*gj5Gff z@TynxEY|@P7nKE{)ibhCnMfhd8RfdZs&69u@^Wq81nT(9`ue^JZ0o#!NnaJjcAi2W zi=9~h|C+;D)bn4O$IP2(cDT+Hbgda&my7zpZPE@~lC0khis*k(0;k6>Zx$B$?7vC~@t&gWtI+gQ$nvD1#&fyunsW4K0+i5&fjf;>G! zXkQY0;#7u5YE$~HDZ^M8H~IJ2pWwK-OU?r569VQu$|Ryan^1Q`+hMnWc62F6x{KO3 z^UKlXC7J+-eFEAQk9?S4p`+>^KQ+@84qC_hUOegmL+GA7gCzH1iadnH?e{^E2XE4sw8bh71=2JW1)7 z{@}D^=7tuT>Oaj5fip|FNNI9#!%cYizE~o_4flSfbmS`~qF&I}cxK|GRF;@>_cqTb6t zH_nQ5JruOzAVL^nG?LM&DHch_tp9ZSa-iSwD1QzPWY&)2@%}Kb`XT;YjWaCDMfk8@iLw%CORmbx`WF$xuc04&oeiV!!}{IE z71I|C16^BW;)*=WG(mbE(rI~7Ue@#?q*0yxIpi(0yHmvPlH$He{%Qu>=@Wb&J59f7 zcA#Ao2w(i3`B(bWww_GeSkeMv>`$h@DpS^1#;4;t@Em&p;{+1|wfUbI##!`}neU;O zY;#NSo*nA;UH9Dgb>V!rrG7cw^439u|XUFuoH^^<=n0d?G z<=nH~bI&>VPHIZpnHtjaUTO++hBP+5*G3xOBhj1_S8`wj6L;;^*(gs+n%^UC zeCFXJHoq6Ix8K!&whqdd#LMbS_I;o$`Ke0#S@9$x(ZeHtMaJ2$EhIM8{%0mkLW|t< z+-8qXnaYcv8pq(#Bk ze59d4c(+~llIVySSk|q^r(UF?W{Wd&)G&|Cy&e^(Zz#$7ZcIB^ooxEAnzT# zt2#>X#=v)VuJ#s@62e5;9)cF=-NK%Kcj`kVhZl_@Q8a}bMQcbEIn~Svj=%be!{{6F z&=@PDkOD@H6)=~3>9cW6GBci0vOQkk4+7=RO}_fT%RW`wEWFoF_*Xkq4>QpT=z&p8 zeCknxPweoo=Zq!x?>;``@N7F_pAO7e7#K-P(f`qI;+ha4yg_A{EskUU{emvycG|X&2NUhuZpx-o<`x%{UagC;|SGH7Jr4!+B7!z)Bp7p`N3OQJA!G z+}}LZ#t(WyJ*5C68Lvzw3~<(gx)f(7aHejrKIHZAptCLd&yV$l6md!^ap9@`V-`d@z+esmq}8JzmB&gIUhg#WY={%v5fy^~Tc^)Oq+D!S;VejWNVDNOWF z8k~j%kFmH$4?E{LXOA2E_>8~|=c>i4Qj1o5t&y~%xeA%UMEK&82+NP0Lw}DRB@?O+HtdQK!t>T;D z%m1|JtAxA--O%10ixCqcCHO42U|49a0)lGbGh?p^J;~zHW#Tv+b8ER(td$ga&opXA6zq?+bSo2@1VdbHaSyzRLD?XlQ+me z@ci2RYhu29_o62Sn^G>@q@M{Uh4=+e&|E{zCFX@q0*MTERvqm=Y>KA#8i*m{;oXce znlY#+6eHb7dBW!w5m$*hdhqmqKaX0QXA)QA@`;hxul>W^9KME0zAB$95D)npW!{zB zenKwu)Sz{Hi81=wfXkQTZyfgK@!8nCHZD1D~^ku?OZ@Ta0%32>!VqME)Jn07R^u)KS20hbvi(_;Q`J78OMk51gJNoAV+WQ*=6f2{l zbdrdZm~*F*2OG`N2O#s;DeLaK;;vi#gth1`_Eb-;PzGrPHlu4#zcjXQ+H~c}U8KNu zYxiB!trNs`cTc;Uux5`WcHjNHc6U--_mgQqq3>M2?w>rb-ATS&mCL!sL-;ukey!@W z@>QM|2MKa$b=GOVl7yyLv(;uc)zi3s4FCyD;1zOMD%s!larFT!X-DZ z(1nf&q}@bLO1QR~h)a%NeSThcXI5vI_@47sL5>X2Jki7Dv-Ozy3^K)K0Y}TM&UR-u z3HEl+tU^$^2s6bI@QqDz)7jxp;`$^KZ>dRGiCJuds&n0?l&R3qyx{=*r0JC@@_soz zi_~2bya z_RXb)VrY@7 zAh22sC#T>SAAc^aW`FwwvFnxk#KKG_y+I9Vd65KuLT zWHF%XqjFN1)UOO&p^d2-?P}2NrO*`tx=V;vWi@-sqG6f7C3!q~#}n%c4Nk-C^c`4V zdNK-pt#2N+;>q;~*Q0MLH)4vqnFx;gca6I1 zbuxw}j!QhRh;4V(-&O7$!;bLie2uWEPD6HJzu{AL7(Jj57umbt9DVtt7+;j7gM@7V zSd?71603A;qtt}!$y*6;$E;;@bVwUWg(Gc^#d_Tuhg^rN+o`PCFVza4wpT$$wq7&C zv8*z;a+dUH<|@?L>yU*cTmt8i|U9tK2o zUWy*RN0YF7W)mL#=4%&o_?0r%TVzsk}2 zo6K(&$+u=(vf3d@*TcrWN71P(XER#+m~WJ2iTjl@nRHpi0{NK)X}EEAh9(VbvtLn8 zcYamR`@ht4IePwwGTmfQ@9vE^TQ9fdaFmv6gB!@df zn}ul|j|S*SFYNcR3;NxIe%llMwhdm;uhu7Rh4x7$)TUCMKy|~9u9-fM>Wx)Bu~>}} zwoe1KPc{o#N=o=`^zXn7-F_hHkWGD=T+g*S&PZ+2ULjeTD5uLi1gqk9zTL1vh_)v^ z(%wKNKi2iz!R$^Q?}Q8)T=v%3te43Ag=D-b@*pQmq)4a4x_bNQ%+Eps=Or*cS)H^YChcG2u2$DDifc7dPp;x`!>_kVs~d4uZ);l3-;U?oPp)pnl@zGA zXQ^~vG&wkYPa|&3k2N=OrRL}xr?93dso6614q{z*2MIAZKYxeC+Jig(JMNpORuSu3 z=enwstDA*?ws!+YJ79ddT(3d+*OM_mN0aO)P8kZXVn23-{5<4ZytUomh^q?uPJ(=w zJO1J*4QwFk2?@U?FeKp}{#xM-+KobE7+gPXwznQQi`Ok&c>=H30U(P!$oqwEnNIez(mUa%0xF2LB5CeI(X(<&HNbQoP;!N#w`=JbA11&X|XVg&jZk zRyz&K9od-0BirPL%r`_@tFw(vYL76W?J22ATISD{-JFuSS#YbkNowj?k8Z5!%Ls5n6vM*1aFD zum)GD)-ad12)35Z;UHpZ(!=&TbJfC?lorJc8&(RA;O5P>L5ce@9Wf}Fz39i~+KA%g z*{O|(aV07CP|X%%ou<%n*}`;OCT(2wo3CjVCmV9p+0DYz_8z}2bc|RWTR8Kw9{)NyeqXk%+wXRESH|nvKy_O%DP#+~VR;;C zrCeYQHVeTv+B3-kek!T`JERe*Wk#)Bl4Xi6_>}5JgGz0b&tZp@Boi{-BVjhDzs~ry zSY~qQOdjhR{UvR+5*qRZs5^o*C+J9@wx|q7s?+qr+}>>;4)q%E&#CoCZ3U`_P0Z2*7Lu>@!4tRAag2o;?f_G>kp662;%@tXFtH6IP+Xm5S1<95^9PKw3XdKjMl zFs>iWt-a+f#0p;)JTKe~2`go2g{Y=&GkRjYuEZstkQ${^Vw0%KE+6lgu(E3MiSkJw zFS{y5zf`HNZmJ}F8deO`JuG8!Y`dw#(N?)CZ^_~jn`}4FUpD(@%gu{2%bjj#-Ley_ zYlV;64LKHeC8x`c`qSBiTx3~%wQbStmIiJ_pxklHVG}C?Zs#oVGe70STFe^^;7Y|z zk>2{}1k6d18Jwui!Y{8TITn@6o9!9HiI`)Zg^1K*vmd zgtdYxLb=Z3utIa%5>$^KW%6uQSI;H}heVRfoepul$zm8|cX${N!xKH@nFda{ZY8y2 z4STkGjr*9~+^S778D~(fH`be5J@qD5S?+v7=xTogd|`Nmj4L1$s?t<4$r{<};IC+{ zj+bJTwb`F{l1W4vgr)cdR;GinL9eK)kx9N@opocprPa0W( z!v}&^3}MSU0-xbDe5ZhueO|MO84jK=`X)&cy?QZS}QJS)l+(W;UVU484@E)%bSmzfp2k50@i5%69tN;5W+g9ADdjv*Pr%tv^#$4gh)u=qkPCWfvvRFaz= z&I;-3*x;D39_tKdS7Bg0R&%hFy+>w_2##sU4i$lit{Y^?ShPMOL|iMBGSjl-e8_DQ zkLU1gA)Sdb!aPYonD%6>%ZN4Wf(R*?p-PnBvn<;BfA~sf3ffN()3v|hpz#1*-N3dy zXgOd)?Y|B}(tm<_Sg-Sb^KMyQ=&^8?EI^urU+y6;LqwI$`^L-bJRBEag_;`7yQwTS zu1X6}A=INVWRav{=6F(4HVK?*XILNd!*y{5uuTq&tqG23L!a8 zvfXQ`GuNf=wH&k_FashpybqMK%#U!qUReNDJ$O9MRRYbyr|DzRb()B->+MB{4m*ga*3|@QT^cGxh51YUaWm zp}YZKw`11LE9IZbmYdgju7lQJ`@5>h}{*&_huzXo$c zslom7s5()e?xB3~>dB0tnT)I(6}CoSJZT`K!Xrc0=nE%D?0&#Y##csi0jaS*wZYtE zsMFO~di6o(VN##bz=g-7O?FqT>m5+?R>c&mHId``0yn-51!S@g_#Xiu{vRBv-~|Jy zM4wW_ZZ0(_%2ZY_RWd>(-|fr@PF86z<|aLS1&wlQ0~6HMgR9T$r3t-UrS-xdrFbjA+8?1Dst0}zsL6s0s16{z^kG9N4-&%eWOl^5vO!S;DC!*G3H96$9)|x} zHxjK_;A%HGX26v3vWvS0}QM9GD; zu7|YJ8H`H6h=b`ERSEo`H%CbRjVc$qPsl{6b9&+YHmP*cHq*m#`SNI%F_oXcbyjI| zZXM?5i+e1nr)z{J=f;Dkgq#ma)w}&vnup}vvip|v<-9sB=azk!43l$ngC!y7>EYsp zoc|^g_k8Vzbk|4H6Vh$yr_wzF(7_rA8bS_@x?9dlxT(%qm%P_>(0srMER05cfl9bh zlW@~FNO($<>2dX*z_$&Pgug9l9Dfy{o`s#KMNT>R(q2yq# zoK)wAtfRl^U(T2?d)Vue!j|akXW%6c+e4PmlEDmT)pS_X?uh z$%1p=1XpkL7ARz*K4J}-!!3}ns~yx6K%a=e%(Ka14J~)Nq2>zf()C2f9W(q zhT9Y)WH=3wk{rqFZ_(FV!d4B^Sl8W%UQmbzy8?YYY3rnSEBgrl7x+CkX;>af^mV#A z{XxS49q=Dp;)O{G3f&a!0|BZ{7qTZ853IB~LI_i|@cfo%nttnaGw5DqP$u(7y3!WP3wy4yE z>&e?nWEVU&((P4p6ZP1PJ9)bk9vjg!6CN889-A6?Y>1yLHASN*NvP(5A%9J+|D3<3 z#ZUb;%i*u70uTL5^Q*AyZR;C^iHfj(Hm*eqE6tV~gnUJiY`EqqFH3*KHA`V-o7@1e z*wykZ_`gOfBzF{6DDyo|ZV6Z5AM1Y+QLrZ-*!RGTh=M)g--l+O-R98VsW2R*6DWMEBvF~tPb__ zA^M@ejtZ`J>LxzkM&q-iLeF;o2P-$Mi=zwrX*P-rQI@*~Ol0Y`oJ#Mf59mp=kQbST zsRDTxgSmv>vC&NfH2xERJ2n=-UODI@`e+H-IT1m$B~0tT)qfyRE0`mUR^J+>)-0?WYYjoma4hTe^deb`w%i||^E4}ALyXqqpg7W%H&8sxYSqK zSb3t7UpB5xTxJe2670vve^nh0%IfW~YoYN6pl{F@7a%FnflfGhKr8hmx zl6A1MXc?1rVA){#z$`{Q=}*3b5hXwFWL)t%DKUUg4$z*>CDwV3@+tqhd)Z$@NS5|i zgF0S9K6_8c`msbuTMKDiJnw^Y!t2yx*+UTJs>t&{Dz|2CfQNwa>FPgcJt+k0Lk$<(-v@8yVeS)+DYN{>NLt72X)a`V>)eY)X&Gb z#wnEneR!)tI(*9x`j6?3*?vQmdHV2LjtQ4L85dKhSDFG$?n^hOd0x7nwxK)7VjgB; zRoGFVi?F!rT;Esp>Tk*p_+KEK=jqkK&Za=ijV&fUWQB6#n>`uv{-g7HQ`CTW%z9n; z3hkGv-A#d)ZajvPy0AV^Seoe(7F0VM5eI*woq+{H^Et$2^iBu4DS=fr?juI4`O6;K zvb}fDTq8+CkJMh*MR&)V0<|}mo6AY<_4JKCI=YvBclQ{{i^3BzGH;=4QdCy;ZPB9wwgz#&GWho{;uPzY_GVKZFKnBFmk7 zQ1{-z!@?)+kT-ra{3R@*^Fiw2RIVoQaKMexF>i4s6%iw&x{*A_y&qUEJs^Am57WKi zAG(II?XiZ*_%#tr11T3xRhQZ%m41@8x*MDwc+kq7!dZFcwDcaCq67G$Wr^q;r^sw|8o=ArkSlSrajtsuo(O4%P z^Szj-9-IPRA(8%pSJ*q3jy&>k*0vX!5HSnrT{54<2zL>Q;(nzHu!R29(pk< zD36FWGT}mIz;4(b0tW5cI~G@yI2mu7g{+Q{Fs7BxC$X-7560(}SNjeGc+^db)M!vo zm!1(!9fpQFa0eT%k&XqnNXcrUn5@!Ly~9c|9brM&RwLCR0)M8x+Ib-GyztBR9i3#t z<;Zcjj$Jgi@{2A!e3R)Xyv zr~y=I9fimfxDY-TEds)hIE1GY5FTlt(MgJC1Fz+Pk`z*`n#HR$7ztoB?4E}i|DxDy zJBPjb3Hb8Q!`@4QGEl?RW@rckdz&Q^{u=DHeHnYdZU5rK!OlV04EpGd?jehzvd5&! z;v{aeO1bAZv1j~xg4tlwUx)xi@SZSG2gW*o_ zDutyEHFVK4$OiZiY>wFBUCqexIA}*s%QIM4$&sXecgs`d86GZ_gShfdpBf0gt8uuq z%~9!7J(=b|g1NX!SkTc38~7<7YYZF_Y!RQ#W8KMx%+c?En%Qs(A@x>RQoL$`2gFvVi$2nm6siqC{`zd; zq);(1alBhk=zXkfQXiRcFp{+ATpP}_ZP-wsjlR=k3uCQ~vK-3ZqkQr%^iJFWcV5o1W-P~$KLkBl(@y4B8FX(npl;+g5$%;|$-_K2WQO@aqF)}IMA;A>OSlDNF<=}m z+IVWDbsjgyF#_JL-5uue4^9lxlVaymv`6X``-S~h4gLlF=i}#Q z;O7?47EWImr{VJK^z9Ts(}15f{YiUF!TrEbR)X(nAM9BQm^7Yw3H%ku4b~$Q9!lV5 zQ34O2_Y`Tosf*4_y!p6?QvV9r^qZ;QScB>WYTkdAGifh>IXy&Y%Gqr6A@mY2`$v@h zBQR6rU{z}CUa3<2=)*M{eyW`{Qk90G^w9l6L&p%Or6qcQ3LH-9!bHo_dz{lAMT?K3 z_Z5(>tHH%Z;Npi)XEp>fsdU99;w@c*krbWf@RdE3!{7c!j)fOG!LbMXhB!8B7{^XU50qo$+{#3|V?*3} zSr3_XP@@PN4aVZ!I=*K-C_=gI{=}PHjUp5$ze6M?J_-&sA3Tp&jc0qIwVCMeV?>>( z4wWY;AO0GCO$ER1(WqgqW23VYJ%7+mxiS~6ZNM5W&Y|ygQ~W;s;nT(a|vr^e|B;1DaS@1OxVQ_{FTIkZW5q+_^FC`Q|H?yzcYpBl8HZTkmA^CiIgLl0N>GuRCh zpVMrJ5)F3EM2x6BV%s-r*ST431^V4)pk1#5Qck+;FyyIGuArUkcw~S2fBWQeHiw z3r+Rhqfk%$`7r+Q0vLbVV}nOJKFd>>@5i$xoF1$Rq}FW~(t;+%1m4#xW_&YPPdA?6 zLWZ63SvNg2e8!#naau!a=nkxIjgcW*GbBBfqng6$Av(tTf%q6Fo*m;G{Zw)(+{i_q z^s|U<*sPTL@lY#qNpFTeiI+`6*#|W#8k&_}8-tcLNxIV`cwXm56Mc}V6{?t>6692U zf`(fM*kBxjPX<{?;%jF$g)Q_2xOcTPKC7ibOT6DPpvtl+LCu^9$EniQ?Wz{>?lO4CJ%;dGe z1aWyU;9M$;3@|aAQ>S#>LZ$|~{?;jGte!M1gpGBXVSOF7wPt$6Z2K_kZ#xUa=>bap zDPKW-yGDK6Bj$Zguyu)I?(F@LaTR|_H$0F2Gxx@O8gX`{3(xlQg4PSo_IdDw;iEm( zVS}#wJ#w9DKcH*cuERTF!&_nD4tBi>pIuqRx^HAc-;IXto&kNg^^}2(4vm1mOHb&# z4X4iOyU7WCH@*!~LFhXc`Yt1(?=m2J=BWP^)pztA)psoPoe%mh17m`As2_P&-_7l| zYT7OcF1Bjg?uG#}VXgA{3FE<~SS;lVC{%(};{X*)||t{RP=C!M+k zA&zMzTgCcRlbN6P#ak|h9d6Y$-5+|X%+Tl)kKSI7SQDC#)=$>zQ+Z*dSN2hPq2=r- z_eY*T=E*VRPcyl+bb%)(kwS1@8}-VV$Ky#~E?eBYu6qrsI~M z7#-5@Gz8NU`faqfqImseDr5=eB6LIyNehj|n9@R259BAt)Y3mRrW<<^In>7VYh-jE z08QhPWWbmnJ4r3=OR&yjqsrNGkD}a;2(__m9EPAiv}uerG{na#!F2U|YMeGN_c6gZ z2DkK6uUZ6kz8KSjIw`1opYU;q^%0ZCyOu~?gV8?yC*yQ@Q#C_(nE>-2d*iLF>^A{U zs=IWc1HB*YTG~%0Ja(22hEPN$lUFJ%bkse-_W7JJ*mdaz*j_Pc-De!8qv+g0rE_%1 z5RB`mI7a!C$qi;rKj{)U&DL}i#pvA$=tiH#=&!IUk7G0mm^w5Jqo!!@r*w2?=p{Dl z>ZPj}YsjLmc0MlL(;mlKVV^O<(Pxm6{h5Lt!IMK65#sb0@DIrw?E2&2`TWv9U=10e zYlylYS;acVl+ZVHML2rjbZ8n~ojsVEpwMT%LlipFM=5lDL>Ib>yFAmb(dQFNpU{DT zEm$j96BL??7-C2pgALT7d=;lrPfwgi+xv!SRN6B{qpesQyUx;xwy^F~YI|Rzc|;%Y zF+ofus+1EgnoxK-&O(#e4AqGc;mBqxuwgXF4b^R3VS*ztB@o#ABI* zvUjlSZg?8tIS$oGG!D!9Yvrw(@wM?R7qO1cc@#3JGz?>F(bU+iYGSu93(*( z-PlV2Z!RLVPWWN(4KVp6*GW#ZS39caKIKgX<&q-Q|9CpE8s0}!WTp4lf!lBVg^4{r zf>bzJwZgd_{@6W;oIarO>sFG=QLiGM1qM4Sz4d|Ar8Oq<7Cb*BdbCc+NVIm7^tAUy zw7tUni@-0?p85DAS})XF`U~kW{Ft=;?eIWzsMif|lOg)I?qdG|c}u1#y5|hTrw}`7 zVJC5RwK+g;bel|XQU4IUCIi^z(?)mWEq50Ao8Y-=L`L~{Npj?wfS7HDkJ$8_rZhw3wTyf2Oa}V@U6C*v4e6OeAgw2Tp37V z*@otM;(@>@k|qX4L-hW$@XY~y6uQYAQ|C~RXz*nu;M+UkDBp~cKkwf_wk*^&(C7oQ z@!D@gOQmA7NO!%RgIsNA_K*pmN1ji>o|=IDt^qSzv0Ts!)4n|W?at-doyt4N5u|JE zD!_?-+R?3j)Kl)_Y6I3AE6f$ddVP)NF_Qz-XXb`?PTv;C-(KuajNkoN+owqDyX7K8 z!h%{ZNRTj&%`%G^B=*0vf3s)et^#=_Ozt+{KzS?sG`AUhMeh}U67jp+tE$aVhi9ukrV?dxcS&j;QovN11=a;<%kt;q)QbOsFsqYj3Fc5`W7Q zf~b&BA`O%?uIlGy!oFlDp;}>t@`p0sSIxrQ-B2~x0QXC zn^K>XThBbp)e5EcavLd}N??lv6YC?BLq9J^1kF(rtU(^{M(?fIp#dHI_AjL=p}RaS zhN^PD^L49)-9~?i9w8_iGG(&Z6SsO0ykf>F3dr!EY|h-pdN87eXvRRtZgCMBl+N5+M;2NY)PgP%qY1& zv-;(hr^vU+uF!SZA6qL-4w8=VW1ZoR%q-`DcfG=@F0^|;^!oYZY#As;PWjMC$u3J) ze2l|KxELceVT6XrrP>G|1Uxw>NTEgTz5sgfV72oQcFY%R<<5uu9>D#Nclo>SajkEq z9P+HjA-6}yY7q8DCWa`VOah?i;K#37${6W8s^r1LoBH-MUQ$i%PU5Xv7qHHK~T zRM$)luXcVlw=`)PPn1sEfKI3W;N6)g1obl22u$iD|J5*b4>0-l{P4)Y zIes{q;0L-ce?>i?BkUL9h&at%!Qq@S5u71(QoenxuQ15pg_tSM(a3{7C~Tl_AMGg& zAxp(~K%>r@$asw^6B1Ne^*>Q%9L9aKGT}U`MDgx(WqimdLC)3Rs>k$Smfi8+LUw69 zhSKBu3+S=1|C{)kiT)d2CggM=S7^INg*$=IE8tc9dP=nSpQFU4VU*CH_`jpXcu-;v z^#w$3)g*vQ%lWeT@4jyy%L5oooTGf&SVCy!Vv>1he_S$e&`L3pDIb1{sNg-Y?n;qDLdpm59H>+-i@^b9c1hSMHiLQQ-r;xC}cP|Zyt~Rbvo#AH}p73)_K~=R8Lt#j}P&}{0n%Y z0{Htn%|`Nw8d3oVG9%(ROx3Vc2^@YsFSPcZ;{{!U7j&p~jiyh|=ZA07)kWZgYrqF{ zBZFVT2WNV}nGZH&3^R6VGU6$=pgsJFrj{J8&PfV61K%o3JWpUdo?Mlk?+%FNTOB{TNrM!Zx+TQYmC}N zKYaU1Y0}r)MB~FtQfOA%x&cudeV|3pT8l$&L)`KivU`fd(XX+4T-r$(al6N-**!mm zex`PhD`EE>>6xI}1Cun%=gam0?Y{zf-lM>48IcN&U)F$1531#`crM24gr5wq`)YZj zc4u*KT%MX?^?Z+FwqVHW34DXqLuof;^%O&rW@}c@g!8PP&EVJbM|t(P80Eje2J5 zKI>bI6)Im?yAo=^36{tB_TjHc3GOmP;{-fsr`N=Gc&q5<{urny$y2#0 zp?R+dpf-W8wX>@81o1C{TW4Le=8woN%k;ewSnZtWI~Le1HU^r6Ba1wG=-WB7mN?wb2H$3(yN!oc zA&ERP327`>7|7IekV`lxvO0dR^5OMP`u_5PM(A4xncD>UzFDEn27+~Bjkb1mt;vE1 zDl_CJV}fZF_$^$6+_@H0O9~ex{Qaskggj;~pP6PePmwc`&Fp|>OY-RXD+H^w;9n{TLHK=>T!D`)5uIldY+9%Q074FZ~Rql1%F6?x2- zg`>-Ag+kjj1Mu^%#}RkfVX%RFzjqo`>$P)G1tu_Q|N2nTP$#@OhpV zlg=~CP?1E>!W-;55W6aKxw8bh{RYj37|L0Dt$h@{unuK3zB9De(v&G$CN>jY3SPCs zYH(qNXQr)(>FF*l#N}hu?y|m42kbOQuu67Ne{9DsomrtV*o)#`4C`0PY~Zzcx~o4E z*TJsx7`y@rx~%Qb44#@pbH*?0j6>HQi{nV23oLmkmT(>l=KqxrY7`nv&jO><QH8S;Dlqnm*kIzV4gPBO48ZMTri{AR_YG=_2 zdS>59rCH*3W2fOhco=fx+3ifOsCgH7c9|*eU0|Y0j}1|ycvpAuN!mwSTc2p{LWol@ z0?O3 zY`@xxr*j+_?55{P zS@w|p3FnO_`=X=4Sl~-Cs+nhf7gSeVIJ(*a7Na8(CjZ>nA|1>`>hB)`{l@Tp$h>%_ zxipkb1X(Yq647(XZjv7o9`jPq;vPq%P_ms$@&lwa+&A0D{V9+mg^>wcL%PbTjWVS9 zOG73^1VriBn7AC5?xvEwh?`t@PL@BJOReQ2$l083uq0oXxy-xBQ@T3`Cma6D@r*EO z*X?bWgm5-oaHHyzJO=6$Sdx_K`HXOf*2AB7%wfId6s+3etH7~X1)AXTEAf&rAA)V=JKClj?MKoz5C_a{Bx`lv3Cn_mk|BV;l8|5#Bm3^emBfx@FcZx z;LD>H&JWen@Lcps{dqtAN`Ia!R1&UnKy$a=hMoPM$oXS>zi(2=g)v=%F`2({O!QpI z_zHK6Hm2=>f)rR(tQ8X8$2i0*``0?3h9z60m7=h&I#C+FCIRb%!kw_kZaR^3*F8nI zx85G_Ff!8e&ora^^DPP3*^I$#l_1Ky>3|k~Wrq!qR=>NvscZ0XDzJRya zVhrD&w{2(X9QR)Ap<}oRZ+G{`dHc8qDHEyxkUMcP8-3v2d$60Ry67H-gDslYgZ29w zBi3y`=o3o6v{;lS1-uWD0&PuCeWNWGc*aV1PY&&qS^{@qCnCK4S)&dzhfIGEy)!R} zZ&asngtqxptf=o8<|!T3M54&Zfu~fI#)n(<%lwPIv2cgYvex2-X)=}($vg((AXo$ zbZ&BJ4I)Q0ZlsHD_(+tvgDrZ-x(=QY1{i`D|E?O&aFD^AalPJpA^u;Euc;dVg*9PCrE0cy{%sCb{`y$vl zH$ze_k`!@)Pv~5@Rk|WP&vUDXatb1h;F6n8HJ$ZhxBq{X)#tJ5x?`9po672a;DgVV zA}y-nPNMb;>mlkRm|utF^OSYkuK!wD6)u8*c-Q6Wn)j^+F-PiuK|Ev9_2+4G=(cYGc@ZFw$55*@$m2Y4&hEg; z^j%l=A!8V)66&_gdOZHuNh_sk4Jt-)p@H~dDv<;1HR{JvvYAqiHi($JsVr@ z{5gEjG}=x*Gn?T{c{MPloYy=oMY04B%VaHXe$LLGaIJ{FPuUR{=8Jz||FR)M{fH#` zn|{4Zr{zBkc3qB)YMLog6YxoWbZ@2`do%f!BEKdRc>vgR?4#bEA+LRHU}rOO?&x|O zV;_wS01}P$(C?iCEEyTp-ayNR`pCE(zJSy)levuTm#U+~ZrJD+#M~K=iXEzH^WdG~ zm|I-(a_5Eqi!5cDln383ZFTEllXM04NpRuxtmz!i{y;Q6qhTcN7rhk1J45%k79el& zat9el&%L4ky%Gn_wRp9iOmIeq+R`5+(PdxT8qFEdqcy}UwEQNz-l;mgg;=nTq3e^Y zxr4w_#nKAR*Fd88_B0K{*&oV8c!>Blubssj&2vaSyn(9^Xmx-u5|xqDnR;{!Nj+@g zjs<=@+ltc`EQ(GRnZjW8S4^!Yh5v48Xc~6Rmt+_~E9<0t{taVBB zx!#j3=%1g1{pTfI!H%NfAx$5;V7ok+(1!(B-xdUahNxa~C~!72Bjal_Gf4Cj#MqZ0 z9>^pzGcuqHV|aHRB6@|xB6=susD$0pgNR-se00Otazhb47uIqmGL7m|X`?3~Erm`U zpUBD>1)9qPMVb~Yj@vCeF0@u1kKPX#xpa@Zz#h`0>ys7`KDu7X-1-ZU4)WG40QctAil5o2tDX2P1^CjqfPyG(`3^y}L!$u0{l>3|ex)uXk>SHi9mmF1P=0IQ9 zhyk2Xw2fFt;Vgu0*EIU{;qq*sPuI{S~>VJ|nS(?DQnKUG}gcms;Ub+3(CDeOQsz3W?=sT_?KFXLQN2C)$ar?cU7t9p9+TPaTECv^_O z)JNqJ=;e+$RNAQ!MOt=|8GPK)Z^p@9N3dTUzT9}fyzzip)sa6g-EG>96G!M-7w;px zEJ%CKG2%q%r?Cf=C``UN#EUNSS9o9bn%AD^YW&G$3lSFH*IeOj)wSA$c@#cWY{q2UN65Iq^f<2c}v{SqEa4%>)LtN*z9v*2pN;<0*Ij(6~1Fi3LXg4T!~jK3@;0nVszR$Cmt6|DyL# zbKeKt@7sSX{K{)knB6SSno=rq2(NAe^knDSrQh+8y>~2lx!kO7lJm)Oa_N%y_3zua zYfVCA&VeYtG9IaOZsE>FwGNyp1^5o>UO;MEp|JPY45ufsy*h< z*^d%DutaO$%W-G>Y!p6^JR(mgcD2F3iR@hTQ_{NV3tg-33tOvgC;ZLG-X-#4+SY#I zv=Tk~vY*MTaK2p02Hs(rWv%)a#6(){UkmgI*j;beXIRhWPoav)1cbpe~3K3sA$${-3|@oFZ=W7#{0U4 zydXT~)ho=hFeD@e60(D=SoFlA)4DHor)^)@4%7W6%QDnQ;7``8sicA&1nyhyyGZAv zm@a0cCrPBweF44Ek+?}wg`#hekJ&|VC;exbSNzs%2y~wdr$12)F#%Xy@*Fa1$rq4~ zCE3PhuT!I`B}IH|4hIwRBrGO!ChPVm2kJ!R(>tq zt(Sfc+#Wv}k6AA|w)>e*3U{qP4)@3KIMr6XI9yA2Jo z!W|x61FiWzlCrdZ%ntXt+RMF#p6?pRB|qj(QFVKdyJLmVp_j+q%f0!Y33&f3XD)sW zXOy6J?hthB4l<5H$L!!V=tclKb{KTbS?DNSkGscv%$IT#PPS#LwESf9w2<7IwDh=} z1x!0UFN`rSjTP>4AMrH1T^@q}*3zqZQxI{#=x+8jx^*}Yz{zgF$$RhHQ<0r->o8)c zh#R}$mKx@HmM1lW!$t2sF1F*N+130;ueqVh+d@XnGw-hSwjeLL3b8;-!zM3go>p(C z74|1R<3tA=(0P5TD`IzWuAQ0?8%JfZpAMvz5jHNbno=gw<&5Y_XT&}(&L^7 z-A{T}cz57B-g75sF3MW~U74d%60os=jsEN0Q(o?WhK~b$|7^<#J-;5l-pp7|ojZ5w z3hzJMR`-LRVo&Y@>qX(qTR`b#3~xfdBWb;&lb#~eh5ayFn|Yk7$VT5iN&nFXr}6M_ zNag~+=R29Pf*0MEojSshSivUuZ@uQ7X$5OD&66_Po>*$x_fO!s!uf0O6HCqeD7Ig8 z-{Jkf=W^ra$q%_pJm%80qRzH#mDc#x)#So`bHCuB&!2IpOl+jZ(}Eolb7~cCL-f=raH`h#CNFmS>>kc_w|j>uoAy6bHcg{!ftvPzL0Ov` z%RdUv`v~}X*i-2}i0cSX-hy=;PJwpn!z8#_*x5!`3Un}s+MYnU0I9s|G=c`vZ?FB#ZeC8-awoIo| zP{!miBArW-88I%_bv%|^1`nhvEPNKH6fJk!b9|m8?q-Qh{;y(C=~Mh{Yl=w@5w($+ zHSHy3o~NW5oJYoUdT9^5Zoav&yB#JZTe=2n1WHEXgJ#vY<_QmYq zHI?PyydHx>|6d1rg*1Z)EyMF8rXF?ug%IyGS6@@D{fAE)A^c5VR?S^H1+v?OQ|4m1 zj7slQU43m5{^9XhAIV|WTbEWYD0d#f?|Pil89iJk>Z-SUNgTzfFnN;(Y=J7?Xx;z_lQI=%)b?Ud-V6*Q)Po~U-*$K1K-zL(a8?{nX2IM99{NLRbC zHdNbQD?Y?+pnVo2lG37-NDLs^iu)Iozn0_Fg@g28hT>~xdd_Q7XtF4YRZ@-ABu1r^ zVzcD(;c2VnEAcnsj^O_e06+YoEuIfMUn|3E3vEXSQt9{$F2!D^Sni$br`10fu-?YD zH2kk5PJlP;tG;oy({%lE=ks%`w_sGJff2@7B(O9A>x)I|-g~y;WR@Nl(-O3v zFfP@%UAN%J_T~1UmQ@9IpeJUlcLpv~g(-V$SC!zYO#Nd@22pKcsKDyxX>wbCdW2uBr1Wk(*qQD=M&DfiBM5oT(l5G?1f4k-y*b*DqQ$$>zixuAv zvN_i~x2^0c61nGuqnu7GP>2)wWfE2LI|y(n_q6e~Yg*|q$R?XShWNIWwN`ebuaO*%ADiZg5FP!scu8|}{oul$;p`%1ppb01D6)3AA-cqw%n zx94|oPZ@q;eD#`E-pg_(@^HTLkWrP6=}8^%U0pXWg%FK5B+SDMBjcBfL41& zxxUHJvKp&FK5TpOzzFc3n@3bGZ*I#Iq{vnXy*r2J9(&<6*FgIBOJKnkXf;Q>Uhk~> z<@}b)$F6=f6}m8YC|6-Dvd9W=DaPV=1Iy;oi4znuISoCW9Pi(;J0ws2aR1tfGaV~O z?`h`g^!Of(z+|e7-HtJH%x|Gjk%x`17Rgs_DQ)v&ynYnbyMRw|>4b9Dlamd~jG97H zU8+|2xw2w93^=-mlmkCvctjpxgdO5jlLt3_&pXI;6Y8jz7Q)-3tM#@ zRAphd>hRmyy7QBP7$oSoOP;Yiify$r|C9y|sBN@=omSUwSQFmS7i-h>noyJ9BYE^Y z8f{~D)M;%x0-tzKW8K@)=ZxdX1*kpas#$ju=G7MW?D&_v{_aarSB5u(5V;1mxjaf* zq5H2;2XQ%q1SyMlCdE^}c~aZ$W31Rd&ICWr;GYJP$#Ic?G)E$VD%&oxUaZU#B+M|v zVAA$B^LwGIeWi9*?b=$Kp+pq;3EV=lM7$RoXF6~yuM){#Nvt9wSz;F^e7lcJwggFH z#Ay}1K{v4cYqikit*xnjs+JgLiB>*~s}wD@<+VTWOf_Wj^Tk;r-Lwi;NTW^*Nd z-I?invuXekW2(EUoC-6?P01?8&V140w#D$hn<(}%gadH;%mhcvSslN;w|8M`RpP4OxGi&WZ%r9>Qc}`@UYdl zk2*miI3FpkF3muyxo1+fExt}ftavKKK`P{87YZIJJ+u$@(!=DU6&m+Ava{H`irnoM z7teHH8`f;I@ey+9axdf2yjYS7ebR}p%I-v*{G}vuIu#nwZXwwf6cXj2VCe{c9>ghP zc)G}3V`!}v->;wK6Up6$=Ebnfk~Pyk(?KI;M@{IP@ntJZi*ZzT{^Hg(yNpDc=@v~Z zOR;V@KHfOf5z3zFhCcGq9If1yr9EqUnu={Fg}AbGVdJ^a=hm66>7NJd`oI;y?~U#4 zr}d;6`0GTOA`{g_!l1lQg@dzo!~~fWc+3&*2%y=q2J$=3Q344jb*6gO80cOe_Y&N# zxD(t>0`&m@C^~1Av9iX@n>>}(3}Oem$oR{!=a2Tk9o3EF$sI;+tWgct)Fa0U&`_od zFX%i{X^Y1N3GDBqB)io0#h&E~>Fm zWqJMb4R2MtH-z5uiO$MG8nGP-)=&p4Iam$*=$@cN#}5h7{`M#+FZe>*HRqKI(-rx| z+)&Wqp6WC0F*cHYDZsB25^8wG&gUiS_*@UCW+!IzI!{71FiM@9aicLaMH6qJmb_$U zADFe$mt%q(@~_>|{yngcl%Xuo5%Bz#I|(c8@K?AG>3?CF?s^};3gt1IFEY^{mJct^}1=SWO)64?%#k_!u< z_~C^atGPhz&U{h;_>CMAhy{HAQiP8jI@B8=tegkn@i79`yV*HSTisSM} zDttb?AqoaHF+W4G;Wf#5$z7Ki6 zg0zD5hXeh=;MclSki{H9(uFG>j9%iwTd{(!Vt!0XBpI>zSg$FdSG1mUtk>m=;;gsD{U^A}!hpzj!PCx)bVG#~YD^7A*~xx`9{M7U<*&#qr*G=qG>jwhZ! zqu$Quf3VNFUMGkS$nOhEWU5#Ir%j#`De9wI4Xs1(Xi}oJoxDJr1yrAJezn%PI^nTa z@g?!s8yanl(ob$-I)Lo~gEQS|_1KoRuaA_8IabfYW$5K*lcCH)l2?|d8f>e~$)hZ- zt8|;D8_dav${r|ve-&{M?n`%S9elS8=~_()gI*hgk0>paF(j?$VQ0Mvt`i^wyoJS$ z_M3atJnzJ<0rR-updmq z7#o#Y0$oA`63H4&YBdG*ut9^hF_@x~Nr1Q(OPjd5kgO41fR3s!645(m<$2J{yvo8l z#fq6kBBft2+tPegK@UGvdfx_pn}Mt-{kaSWVbkE%K)Gc#naC?uIS+y(x;QgQeNa3C zo6_7y_I5G&VBMKjCaNCGTHA1VpA~9 z@@7z6&uAB`#k7j?3z`2F-ocafU#2}aB*1#bCiLAP8(&lNuG)CT9BjUbJ6MT0Xp4))xqRRHJX?Wd8cQ!i&R0_-CSbot}_vSGg)J6 zUoYlxp0Z_}%0ga11cjv{>>yf-S2Jt-4I<%i${hC)H72srq)yO|pyLy_=-a@_1TFiM z=u*s_m8GUS8@vxQ2rxk+yf7Z-5N?Tw2jR=6Cm#NGP(qvaVZhCQ#!?*{oDXO?GRU9@ z^K5dia!*cC9M69;I1+YQO&*8hL!6$$^J_3Uid^FPzKJr1%YJQeCSvaz6gKjZCd(d1 zD}iG(xOD@Avy-qf6Yalw(9nD?WEpTe;1aDLK~s+xi0C#pC%_+@UV(q7h9W@57bnpJ z!id&47O*q5U+!`G$m9&g1j|?A>J-408*#=Rhi4~fm^(L`S~6P2)is{A;vwvH(gxuR zLxVEs#u^Waq#cLdYd~+bYi(!pt(!&!pZ5@4&xif zS5w+dVY=A>|5a0vg!xnY@bsR(^WVHY^d@#6Jh`{CZbQmr$&Zuf#4T(dz6j1l)TbL~ zs#E1Vj6sP^N>ei9@WyHI<_3lt@WDQ@C%B9{zV$|(jT|(NjxqS%Rg0Z%Ta&1N>@hK^ zWkDwMUPPUg9P?Ho&I8BDMZ9v-3szKaePZeqRznqF;B-eQuDRhdU&v~UE^?&KqJ6<06XaI2f!l`b+$8)C` z7JB9sgS)3rZQbx!JbiwOtpL)g!j+s*?D2E7cUHi!5#bBMmr3paeGuBY+Yz&unLU&YzAb7sQYp}C)(`)rJsY9~390Fj3V z&Rv~@JA2n-P?x?rW>$H0#>p8pyjJAZtsB;goU=0PD$nTZ-Z*4j5nr#1PBJ+9;8bwu zjIy-aJR-WMwI7*(99ld1V89IRRsA)}?y5^|SzzLg1V=cuN%l zA+|5tB@u825Qn2GV1!Hc9O&avSDKqi>cv#pw-D`ui|v<#vr`~R;g!ll*g^#*8Kby4 z?7bc|nJcy+jXiU-aZj>S{y^+DbSIBNd5o{nR5G}S@fig418e6%*BTio0&6GFC1XoG z0(5Pn{i9DXZ0R`Ryl1QI&Do=~c}Rg#sji*x*==7BIm31n+be1NwPlW4&?ot68l9a1 zIy(V$_9W2R$)K~%ptH@Ov&VwYHmFvCSKR`qilC1xg=Gy}8|e6KekN}=?90ydEUV4t zqL*@VJaibRS4 zCIKtL&pY?1YK>9mf5GG4yV5B8?7hpj)-=pE5O9zte;wvqpo632*1+aA0HI|znS7h_ zn|Wm1J+rpfsE8-HO#2F5hVJP$VLJ0MN|j{Km)Ns!U6w-p%L<^MMBn}$tTA|zD~nGr z8XMjUUo{gy5F8sk`6?yU>7H)Mw{TK3BURDC!i^-^ldd+Y6nF%PR`v?lul=_w86VDeol;C664%X2vFpdmRj#jz;+?_zaXKHxoQ zFzj7fN`#&|`ZnF(QkST*r$Fh#Abr~wOjYwC_v-cp4GDWEjTUgWT&D;mR2nKx=!@Nr zedoWAekK6ttsgk`Sy0cv6VY?;0H?nbG;nXn;(zg3p~1ZO*yv-XV`QaVAe%1X)d^~; zda264jnmi+w?x_oKK#sWFrF8SQ}tSmST1iN7Yn|F1~3U^I44%GKYqr)9m{3k!0$eb zl~W_+dK2$Qe&%KnmPK4!^BwJp_>?6Dsolr9cKK5LgJBL=1%tPAS*P=o20F%g=7p$bf z_dw_BSqmo-C3Skjro`69fZ4$9-=qd78N!0Y?OsW1tB$&$^9Mv4`24vWSNpI%6H@=-ju~zT}$$NAp!L!9^37g)q?tT(- z*|afy!9e$uSXIav^BAm7VaAi#1AJ3u*Q>hP#9Gnrvp+oeM^JJ^N2(4K5Yna#S@)X=u~2syhBvQ2kSMHCX(;>>z|v!>Zkjl?y_XL?caVKgy!_r?-d*?UiD_M%RCs9zox!n05(gmDR> zSvk>*dadH5!ve|%B{9QR`JBsE*^VoA$9pHM3->>ry~FQpm_i`azYJ0C>oxeX3Ww8rk=PB0aoX%eD z9r7p0pQa*zA(r>^LP(@E^#JnBVD+Yga*$Y+gPdDAs3W*%)c5La^}QsqzL$L$^4fa| z*>#W#yABF2l*#TB+k17mYw1JHy$(XkSl!w~tJEyCUwCDeiawtqytWFf9$bXF+YbPq zkF>wKO0Cz40w+A73JBA9xE=B9x%hj8X*}G%3-4+CJ;GEAKd-WK>PhT9wN|Rc+Fr8M_L-%xS!n#JgWF8 zA@TfsKSp|r{0Y(%q8_Lt?QiN8i;|S*-OX ztk0)FZZ^dSUOwaKMog!;i0vqeG{7b~nqDU) zs*T_cHwh;77lJ`;5qR|xfm64E_Pq}dt_5qrq*g+<;<~hrkk@hLW4rJtTt{(Thl_ElgR`w&)Mpc(`edkY9O1yx z=QWCpjl=%qgd~gYy)HdD$^$PkSh@mXBBHMuELj;$->2aWhASDoUK0PV1B?>kp@T`l zYeZe6>d23J39Qd!el{h$A5>}9hW*R%&B$=I`_%(R>#hSjGQU@6ZLcTR`wnV2loV_8 zp9rj+PHm2`_iVf(I3tos)^>7Ofw6CTn0qLMm0Q(ncOXZ6I<}!<@t`62UWVmtE5R zURiR)d%oRKlzU%0>xXtg>`jN6|3${HtitZz3=IUFGLed0 zPA0+=b(HP>2D)yUixI!F6C6fPiS|DhEl_{#y{Sp}hM935-!}-I(pP;e%iMB4$tY}w z$6*2aP8p)G{?{o%r>1PaY|fl79hOPHIea;(6TUzh1&0Ol9Ns`Gslw|MPVULXzo>7%eNx!@k7vO$-C0$MjchOorXIk4wSiW;@5k06D{Ex zWltc*)49{N6i*<X4Xb%66GDFk{kx&CWNF&Lv{tW|@qqk-dWi zc0piYXplN^W=IFineVf@KXb^YN=+u0?)?so;4ARJK|r}qfzJfU*`W7f3_mCcYXoxR z8ZOdtC^inC4rx8pMbW=vpaSWB4bSyVn)SpW#SVc)I^Yv1+OG_uKEO$=K7jhjQdszh z?};;Stvfq_o5(H$*|B56f|YN>*27hEXWejBRn@$z8>+6Zbh&HC*5(U0-hT748Dnpq zDBKjddBu#e%aMfaVlrov$HrkUu#4W|(~0&5>|5GrGuqYK#lDE=eW8()gJ}+6h{(_& zjZ_T5S39u$?v*B3SEP!`2bs3-At$$ncb2Rv_H&UbXf2zYp?QS-Hz7BYE?mDQHx6`- z^439WHquL#kv^(k1Zm=kc{*r)Q;7(99K9rMZsJT{9qHosaoIb-3+MEkGpWkyyEE@4 zZ&p&LXiw8MmmJ^6MTA4F97tLnyP+My>JNL@khOKPehJ-B2Pg0`6Y`uXajyb-51KUTCBpvN_Q4nW?x7c@;(XX7 zK2a?oQf4P~fTv{7h}UjDYS*dc*Qbc?Y1+tOr+Qs<%-GZ+}OyzT%XX+vfy4 zMf>jpB#u%h&Aop-aZD`pk`asZy(D)nd;t>S74rOIQeaSauv+JW+k{;$PN_i~ltHP_ z{=1Tcdl=mQtZR&yMht*d=)5a-Z!+Z1QTSzm&0)xnXylv0pY6mQoaNsEdfjm52cA1T zcv4RWyhq}c3AEOj{jmg}8RrsXu=)bV zlM-T$c0E#Rk(U=-+LKdoNe>5pWU`t;m)VxedA1eOWAZlXBl)0|9aw57;gva6_FR90 z{2*-Z<3y-Bk&IFEsoCbFqihe9?v_u=o8Sp^=IG?V-dvje=jn3d%tGnL(rKfU|0ntN zLOJou>C#V1H~e+OpLuBAfpQUe^fHx~+qahN>w&f+yvXkDVW)~LG|iSCSb|=7N8S_2 z&QACH?3`Sc(**1MW@@t0fX{9SuPSYl&4E|t`B~63@KfQvzDU=pax(6*Stq@h5ZxoE zp})Y+l7A8HufQ(UKT8?v|9n6S=-^l8x8OuuG}+nW|D=$KSUunN{{in*Nf(v^L;W`o zOj7HcN|rWfF>Ad##V|>TCYe6YrQu5fW$WB;B+D;>H;(Hq68aqhjPdK~I zxT(kbK#e)vBptj0%6w5qC}Qnb*mxd4@e$5ty;@F$$7TUWn`z|Wi9b}Zn*S$SNYTPl z)KjOhH>QDnaI$Qx7q1>}sZVQZj>1|<&_*v>@5j3l%6^#=?rBC}eT90$Vg$;1@q|Nz zq#~^i443{4-`IJaC(1J}du*0_=a*euwNQIG|IEr+wwnu)%8%H3<{EE0a}TkS!-oO^=$1`D-yRBpV;#A2 zK&R5kWvC_Vz5B|uN3-6etz3)Ovz08j*H#)^+DqQ;VY&d(uDdG65aIHlm2aDsL{`q~ zxp^e)IKh9LR;Qn$PCcko#fkgD3uP@_evIS~gux9(_(ure84mhlwjfOl*Ou^mCc*Nc z3AumU!~WkEjzYp+1p8HQeQ~S0tlUBM9VXk#SuHm%MLT-ptyqdyTpM2GrQ1UR5_ug@ zyt2T{!tY1R;5}W}vY_1SSvgD0UU(zd+F4@X!%ELNMw(-u)w7OK;`5TWP~bB3_=iYu zgtmuXnT^`F+)Q9;_`UESGyeuy}qZtWG%2-1oLZrdEOiw#$5mGbkZTg?xO}} zY@OaVkOW@cIFhFdG`lR6Ndp~nY&?4y4S~G#`ruI<+^1sH$q?4H9fHL(5;=+|oq}*= zPBcShcOUAK5?*dU?q|LIUe7bt#vXo4ae0dU_zcMKQ)&pfRsQIG+dVgYc5e(9ipcRXfJ)3Yh^UT^3O@WL5ZO31gNc) zs1PbCu`kzte$;0mx|ZEFC0Wk{w;igOLV9b|zyyp*1!~SKDpEy;`uyX;<*&Qj|Q0awWW}fXN3;||8nc+U8M3~ZEt=!3^UV^{*&UUGxDQTVT`BPR)Nt$B*Fj^EX z;)<+F>^>$;vHLxg1slb=*}72HD9HX}no&AIk}B_1C8buVexnJxR;x{@sR>$D$M7B3#catro$!rBla3pjL z^_Lt6)%cX{7V0oPwdhvh@B5RRZ350@-0J0$n!VnYr9x3kvs`Lzo+$LJWht&dX>Fb8 zbfE?f$Bcr=wXaBrtTEDc8D>DRHi`ValhF(AfX>;iqnVpZ=J!kkEh9{4)Du>`W9|UF zkoXs=?po?vra&8U{5?F){9TE;djjIcVl6%vtif)hx>Sv5b9o7%VG_JX<@)r^!I~La zu~=Tj(zh06F<57w@m@G$Xy!;(d0`EMe5O;M9v+FYo{n-0ju~1CYebv78Z>#eRW-D+ zSZsbhig>{Mg0b_z53)GNGC$2`@m?1d?rh^g7B>S4(s=rK2sP$!UO9y2tFSbo5e$kAVFS@*8@OM5Io=4tD4 zyzaiz?eO&upJ1@s_(4yZ8mnL85hLn1N)3A6C>JyDD|JEMf3}vdcv&5Z zBSEWWHT+YhA zbL*JSd@zszY6@1mwNXjvJo>2tb|pJX_5(BZ_ubR=s|pE_lMogHI>&D8=6vC3zc3W- z_aMcr@LbhVy9H|v%@-AhH?D*Yg(60QHPF^y%psPnu!K{-1z71Hg>OFStlAwl9I>mL z%GJOWK*Pg`FNB>n`J~e(R6hXdf!Djwbt+rG?>lUOT8pEmD(jJw&)#RA#|=tJ*1bqc zBCC;(53|r{z!Plwf$9Vg%4NX0rwk3k2?r~3;q`l(pW58=dCJG_Zu zXAG=VOl)N~=wZZq^mWi>Y)$zxzNWZYZ6GJZS^^5;13bl6ipx)Zju<3TbZTE8J7Mt3 z%A|6G_nj>2Xe-H8GC#DGJz*Q8a0R0kb9uMTrZQYWfCmWHM1~V6_B$b6vyk3i*?@~2 zzv0z9WZ^fSV7j|!pL_7kbmnR3M+Xzh)xA3R$CoC$KOTQ?XoJf5@vz1*HtN+& zL@3QMlA($f&MI2s5$&m&8>HV<&XYLTU!|}2=;7Hy%)!|ZXdDm0!WeBOE#LGPpIkBi z9{N+y^vpLT3T~BCDUnIR7-bFq+m%=FKU3jg!)2sWg8%8t8vM5^ui!s4m|=y%qLkpj zQCWlkyb=Nqpi0B+gY)mObCcf&B{Bq!G3*iZr(?&Niyf!^f3@SJ*m2sF*k1Ev>@^d} z_L82SXr68=acs-EF$cc?u;<(?(*l$71hB^rXl6VQTNbfBD)TCJ9HTgZHRQMD2GEnB zv`SYvd~}uP`8h9?S7ff71>M3G95{=j{krh8ps#H|b}eN4I4Y#6s?2&L2|KqyY4dC& znHkn~MEf7a%rJyic^9nSG|V;%M$Bu{BKT>GQkRR^%?Bi#@A- z+~x%~;Jt7MQp^fBEacEO9oF$f0fSl%pB~*c{FXNK7?a?CiyZ?E>&NA*5-g$>X=6&q zIn_h5AwVX(6vGxCn3C@3oNXYZK&2H`)0P{`UaZ!&+)z$AtL#ACtrEf6fz{PAG{i-_ zEUm85w{b10l09B`qgE3hb!WU9#EcKOT4`?lAeUlw#d`HIb>BeZ`bkx`c zj3$F*8a9sAtE;F4>q1;>^K9g&^(n9QDMh`8z`J44%Ss|ClMVHqW5~2*(#+zWEzNmO zX`{irnWB}pC0<$*N?RLXdiTb$#&~JEHm>zD(s8Cl#?QtX3Y5qsQ!c{nR{!%d_2-m1 z4lRUlO*Nv?O-bbG_#TSD_w~YaYVoJ^RfEjb-c4 zK+*)Qe;I}5L|IlPNGIApTghxyQuvr#8xm6{B|lV}Lkh5@MElvUlbv-N*ttRwspMJi6K%WX ziW&k-Oh&v7z?m|_pl_gfQ zH|Ag1o&lU#fy@E@y0+5*tK>RYp~7R&0-HvzRl@;N?tbi$LY#cRY1GPLvt7s zsq@Bh)H%63!s%M>-C-U+64-doh_^Wf<-CS|{folNSXpX(bv2bSXIMEGllC*?_Bx~- zM$HPCF;5^T`)cd4W_8)i^}x3D>Fly({#ScZX1fPs09C#ua=*y6uG~B2|n+A3o^SS z&Z%x2vF@Zeo=ZLK3}A3JmrM;754A*dv$;$WXXdyp&I+w4Nc|v1dGh39aG97c-<|O2 zq4QdI4qt@ud%<|YRe_611*ewr#EYX2kjNZe=S(v=YOV%`&(lBYxmrq+N$v#y0(q=w zfs`n7d|G04wM8b0&G>H@n*ApERa`o@Q-oe_0^w_#Y&!KSc_G@OBM+A7x&`@9@+8AI z;e}c5our1Khs>}o=FJJt7G-dTl7q8ZI(^LpHiPPtUy;)+gW;^&C3a4FvgF%6!*5t> z=oZ(2|C*a8XY+b^!o}JKY6LRro!jI|{I`2KxfyaD27AHTbuT?Yhf5n&hD*}b*y1H% zkzh4JSu8e)&@Rr4vtuW$kmWENL#z+$*b}~*Aj1OHky`^^|7G$0NyuZ`Nm@*p`=g+{ z2FNLB>~t&U79Ns;HpD3aZ4W+6GlfMYXuTg{JVXoZ-3}ZvwDDw3N!A|hGB)kXv|^W3 z30tA`eM{@?EO`7TA?UAudPLU@n{jYBy;!!>0gCdq2_|0gWNf^yoC(B%2Or(+|JzB0YVU?3+*m zi*p;|d=r*^cV@Hv+{dmU$FXXqFg@;Zq+l&tr*C1>jtN@p;3=8#@DWBL8;*dF8B z(2Ur_gCba+$y!9-|5J8tW-4ObeZ)w3aCJ$f7IDF)9>;966=koAR=6HsWBIZ_Oa18m&9WKz_u&z)A@Aiwt(K%LLzoPGo#XihbD8 zKH74)4?P7-71pk3|68yh7(p*Ib^-zA=`p%bA+0_P9ty(S5M~t2lSpA`Wg~4mq9?jm zBlf$l9_(@)Od8=C9HSarU2ON+V=ZT^9b183K9!_}S&Yc3 zvK`=QnA}@ z_asOO^4V~n&n$-wyA7e_-N}G!9PK^VY3I9;`1&17y!E?Ug9?=m7eznKt9B8908BTBE<$ z!teQD{~A~vJ*8Z^Gr5Z*2AE#WDc)F|@`2=Y-c|~+x1#ozbFg!?(C6GlH|1c5{pq3D z*Ft=aM$M$yabcT^omGZCHB0n^dntNo1Rqq*h#g$(Rp)adEPwRmF&zNb$K8k!)ddq$IxtYV&2F#n)@vBCM`+qwSsu>}aRVO@f|9w0~YS zQLAwVa`#2e^DJ|$Gg)ofj4X<>bLLN%^zSifai?p!%s)toM93NjYfRqp3=|=m?jeC* z+FRd5HC@O*;Lda*Kl&zmgpZ6lh&d>-`?2^vg^NA=dB1hv+wW5A!F zq_THfit!Huse2y!o-gU@pyP?}cSlDZKOK#tGAXH zWIQiDE0^gp++_tZkBjLw*`v{;(C0irtaX}R7vrDg7Ri=-GNM_~+>o zV&$39zVp*vJDd*nWc}d#uJS1Kg3c-Ljvty1xt^QurQvjFABVEOdmQxVjl&1$q+|X0 zo$1iE=a#p6IGqq{-^TB1-v#x&bvWGx<4yrD=a1j{{rTo_x__~KUk<0cpuE3>PjWtd z?)stWE`aMD!|CF1b}n2qI5-2>7xX6?PWQd_JbxUv{*!cUJkOSQe*2#Lq3JGY-^;`4 z0M`u8hT;0}`jeht&pZB$0SJEIHyu|d7g_rZkef4m&19D;Q`=R5o zV>sOf4JIt(hp5{0iJknINiTEA6_0#cft7mT|F--@4a|BKAuh+PQD1_Or6$G z!1L5*onW(S?aKje0Ld|ad*kWy;{8&~Uh)@xZ@SV8=&bLAvkT~#r-$Jh^G5BEwv=(O1=tu2Yh<{IsKfB}4kg#aqMLaWjN{c_g7=MN~mX&4i z#=kmTc-9K(WCMf?T@ZUl06bRqtmXG228}%!t_X5Ehd)A~3*1ZTz=-Oa+-E5*Kp`=&h)k1^|ed^Oe84dpr?$tsfNr;VQP{nfs5nZ^|;bPy})tQt;I`G`0LJorO zMFP>D@rumBm#9T+0ARIIu?Y(ST=h-;O(6W}o?K_#IEnaj^z6SOJQN z{Q$HKk4x|39}pRPf6Zkmz!nQD`w$jl;fl9V7yy^Wc_ZU{X{712QExJsicKY^ zS*B7`g=vnd(zL*It?4?`LenDCV$%}S^`@n!X1a+!NFTyszgGGz{XLyTC&K~UO~xM^ zZ#MqK7&NXj-eSDfc$@Kd;~mDI8evA$c&9N!zodWDI_!TzvEEBw(URWB?tgiKkP%&k zY{PXat~t1Vi|ck=kKy|I9rC?#1`#I-o3K<|qi~JEH6GU`xO}+g;9_Gt(DlT;Cm@gc zx%9-Gt-ckWwqwNMko;1wv{e#_b>})?lgvpCkcxfPHM_|G=qn;GkG5V?-$^2t zW5G4geg`o@H}U^O8L!CdCXxRhutJv2&QH00}nqx|?twak(3kzVO|y8L$v0Np5*7T25LrVBg?Z1L^ABuD2m|{f#6^yZi2Ty{_B^ z{hy#*k1_>^SL7UiX{-v3k^y#RP0-|P(^1x2IHP>2b{d|Q)`Zf=!)FB3rTJRoRTH5o z`&5{hF7*%WJU_>+vV2WD^n%)@O_0owselF6{=1_p(w>ACX)n&(QwhBSSthe_3N91Q zGmrr6Q$}HF6kalH3e)(G_NScb$Fu=fFAjBxec{f0(Q9A68G^;6+3pvhq2sl{n}LJq z0`8Y>vtI+IV{~PPNXTn-2C^Kq=?%9A?pz_PxaF3g+(KSN`$X&|GYu$jlS;T%i~>dutnPSV zJJ!FhRE+6f$YZUV#d{j0ggSLddHYHBPSf^*-hmOi>bqnf((ql-k!E)Gs03Tm$b&$g zBMG~cW+4i@+UbF7^tqmNe|o@{$L;_jWxn4kQ%56gLR%%P?4#_?@(y-=T`^WJg}=l@ z<`8vz1WAx}V~_ET#tzSJiwV!4Lq3g#OY!)roZ{T9huvS44!eE^Rz8)hD7y#YM{a+4 zw@#!a->7^HJxD6E_aA!~`h&Cg`K;52->_b=;T^2==QSFa=;>II{)#szEJ-?MfIh79 z*D|X9wahxB&c?}4c$l6Bm3LcqbFij|P(J>)fB)4b(|EHN$9g50Xfxou#2ubsZDY|o;$ zvur$cnUF`T-|v!F>q3bk-j`tVxX?evdO`LjiFz?9lqu$rh;$@h-d0wpPZdKZ>d8lp z6i1`J!Bc2#G_xKQ;yuqotmg$_pCZ`GAkD2_N-U$z&}3;$!TBw3;dt+02pT#ANEijB;HH zjCbNh6z91CNuW;zVWJ9uHYZ|FX~I}F{vO9xh%*~csQ@D2Z*R_m(2vs`E3lqz4d8sdZaXaPEGf^F zkHAV~rnJZxDvasaEcCq@xV}8g^QONnkOKXjGQTBo5$+cMT1O-CS6}PfT77NVb-ps` zy0RwenzGQ8H?{v3|21W0xSITq0E2#qpIH~+RAyg*>vje<8&16Ag#M%zc{%-O-*@Bv zl|G6Z2VoW5g%j8k{!4!M&S_rKWpWc)^ohp06q8g4Sf_HMsgYo2IXSdegk8=ZL-2u% z7PIiLh9+t`l@E>g7R$`Ce5$8da(RmbY#tQ*34D^~R0wlMm&t)QrYch$GRU1)D&l_& z9sjCvx^Ap@E=0qbO0ImFCs#_7t8`TfO<5&UO<;7<0VT%M7c zMTWm|LjqRM!En*eVjmISki4LNtX)@D_+=G#ND{*UXRPkbqKc%gvO<75+9j_j_}gXp zRMUyJURk^zHZ&!Mf!%+X?g1?wR{wL-jlUor!(dkEa*sxTWX~bZ8CP@!=(unBPEUuQ zw1jldz4i*!5;pas{RyaV$Y@bU`ApMIz(w5#=81q|gcxQB8Fc7jtMRvLyF(oTH}ZxB4N&oJC`-Bpwx8<2IJ0q+aG5af9CW{^H^a^JzTUFLbZ}}n zgMS5GoX0@-vinctcX3nf`RSKqcUSy=8}49U-B9UYwsOU7vwq@Re$xtqUmB!mxQS~< jkvSZP5T49{CAd*JLu>5?Qmq!uQIHW&nxgtY2iMtMt6O_WB=Y$w z68W5{u8uL;ks?BUag3zKVna1xu)j5_Z;ty8mP`rC%V^w=bj)C!-Gi`E8Y;De+N09QHzB3kO z955Kx+MM1q`}}`66)GjfaZ~=0x)17(_I+Gw%Rl1%z4R zQg<{749^ko(ZG>WNL^QGQI|g+!uy4t4-~#}iG*v6_bTIEWxP%DN;EeXrlDeqS>a!V{NOb@vKRNy=??v^ZL=>Ow73)DwTz ziCUsr)is*wO+9f@H@$0B>k!x83bkY}F25X}J!uJ_Ymq#nMa}OYuSoKXG9B$GA*1X4 zqdqw&b8%X^P;>DXdCiAp*?DvZavxD6V9cd zSk?F6vZ}v%D^v;!@uzQ}7AU{mF`JVcN~cDMx~!k5?+p<3=0T#S_7U~dUgFLVIz*y= z)|(e3Zpst&<6aj+973mhd4$Xe{jN6$ArnF;dZ!?ig3$5a$q0=_=tyt&VqUJ7cb7iq z>BC%0>obcJg7rMV&CPS7w9VW-ju3TAFOPb1lkA<|hyGLF=pF2gfXWA|*UaWOZLZq5 zxu)8cN{CA)WG0^9;8|ZwNG6_oJcsaLev=Qdb{s8K{iuKZBH|t&yi=y}3fi1hyR&4j zYRn?1TynXs#3?;-xOhcMTKx*AtG?=36}N(@SCUj+f%g0GjO}kd?+}RE`=5>$J@H4K z#i-i$4k6F96B2&sNo)(=4PoBVLezm?$~#(TUQm6cdz{rG3bjPNzSk^V zL0wm8sAcJGW^v)(CV7MGDcS8e8)ZaLMyOSlF$Q!xa=xvpNL8gKyqhG&C`B<+` zFq6$9Rew8hu$ijSfre(HK9Hp10#JHma(;ly;zhz!^*;v%q}+v+n~_qOROE{0bcLuD zfZPHIpL~KR>I#f6<%deY7o|H|3j^p)ne>p5p4jp?0!Rq;vEJOJS;T9pDe0XZC=`jj zt+t_*wZI%i{uXBv7^v$6JpM|n)pIXCeIbtvE( z2*2r}mBY|~gg;PKyJjST%~zA?XfY|7;HU&oWlrzOEYZ=*peGJf1+dALIY|RXQ+-{8 z4<8Pd(sYDYlwTnmXqUs4SzLa3E5{+tUK}bN9}q59WI9?bs=1H#>U0l1#rRXkqGHYK zFvZ)5U&2_Hj=GJgcVm{4z2U=pBBomoOMCUiN4m7l8h@YMq20jyWL|72Wix7_cD~b$ z_F;~f{#i3WP4bW2=DRq~enPWL=J*am;yb4KL~DGPh4HNqdaIq5xSen_L~R=R>eRmn z3BOnjRGrY$$O+9ssQRP+!$C>f?Kj0RgG)K}=kMTm*DFDcfBtUy&Sp?0@0NHMkJ9${ z5|>M=k~*aQ5|5tQAKWW*(r)YkY{ixCCEX75ZqX{XPALL^U8{$-dC`tq-Mh`!ZKgjC z5Sexn(One2!zsG2GP%kpRKt$n_W#9k){7EX;7 z%YLy?Y%HZ>1p5G0UrL6Xd6c>`y(VKQcxZmp{9JPOY1bM{5|%Wa2!3mu>F;;mJB;$FQ9EAgJ*G_Ny|{u z>qbdGK}l7zubCF6MY+O%k3HrY7yX{+rs%E8W1cr+ls|rfT3_jW%yS4(bF9wb>tU5A zoU2Njp_q6{Dw6l3$35a$^ms7YXi#3D2Mx;edgqs&L48H2?_s09`%xcNrzE=!`ibY? zqU0+5|JM2U@?Vq>E{n*5Ga{`)pYw~Uq9^Xq73_F@Q7U&x#6=~>FD&S%_CYgAi&D{p z@ZSbU#$mF?i)>%~(_bGR{@k9Es-%vsx+O&dSxp5_5vvK44jaVmL*n@6gcw5Q+3o9$jEAOwoy~5+I zE2t~vA9!fp%9{!{&EVJ6uB*AJpc+MNs{KyQNXCb-%UxSgMVX_8i!bHK>ch$IZtSsg zcGcpmJD6F1;_yoBVJ7)m>|%IVQTf9vB4aPZy7#u2SErVY5;+BQYjo7pe)CCQeqSE1 z>KQ$;JF~s5WHphG%9)5KqXK3JB(AFvZWvOo>R$8#%KCoRDAB4MlgC`%TAqxJ#meBM zSNy!(b7};}$~3Lcl1JiH%3|dk_>2RET1=~n8#2xflVyui>3rGGoifUAeO}HtUpd3% z5XQ}ia7li;Xc5iIcyK^RKu?_1d9m8rPg9M8@d-S^s7e;qTMNB}ew^2>KfP6A8<0mu#S>4*Qkwa=400wAQEEDXj{XZVt4` zp;AZ7rp1iwrSuA_nX=Ht-t~*^^H@mNhG0X|!Kk+#Ewu*jC5^uv-oP-ZA<4uw9(y^P zaZHLxy!GwihcZ|4f!yHlhtzvtP`ILp>{Z_a4KCzkG`LjGpkW+OAaQi+%fRQB1vu%% zYM*qUW{!V>J)FxY>MD(>H)(nzt}hAN>lVolHG_5YRW6%Vw#-+`^J~{v*YLLt2?=DnKujj`ym`7XHE1ts>IvUZ zKW01T(7bft*0e%TbPZa>%d3USCJ*;XE_(3a!A+DwGUIZ40Pfwg4 z9A9n`=RcTYNj)=^BMUixh8+JrSeNB+KhTIYB+s!G(bqX4h;`z%gRfZw_0mzv zx7w!?pKk?S?NY-&x&qXMUpPXDBve(`@*8Vb;i;_Sv=AS>`7fYWbwvX_}$6Qy1ZncAKoJiX|R4E!TMdUin2o_t`>?7w*RR?(|ahJz4kodOG=L>aj$J_*)!hP^By2EDG16&w<&AJ%WCh)E=8i;+3H`$8I51dJZt| zyR=r28-x!h(s<>D6OI5RuCoE*U&8+Yd{TQ9B`ie=Oad4z9xa-|ouax8??38Ry#K2I zS@Uk+As*~5vVW{)k%*r=sVB}Ljq$Oc=vmE-#@6$L+X>Gd(i1<|9nI@iN_sj!hAcHw z`kOf4kYuL7(m2xD`Pl{HNSPe!CWJe=UNwq6#*+rx@Ir*Dx8pSXN`J(ENA%~2 zE!KZo{zvUiN*dTZdn#=>aPbqNsprkD^dy&OQQquXy_J4K^N50TeIw`2a8cDh_-67- z4{5L_$Cu3e70pX=Wn*3r3;?TPlo3u0kOrHZHcoV1hZJ>yHYgTQehCmaxSrYx2x1-Ub(H%$F%uYn7(jgu)SZHG6s4W-1V(+RWy_K?+N+>1yfr1-)YG=r z9u+QL=d+{NpU};DoWdwI<630{ZjRB-irS7>RYi|S6=ZcK(CkBvD8l^n!gv>k)t2ba2xt>9;ut_}~ zk#h@J*(~oyqimLUEl!dw@7kOq0fac^@9idnO`pm}GG;va=k^KngM_3(ZCh3P-hDKKcy(VL> zHTSa+8|PR1NuJd`4xwN6OE@W$ybSjwv@g=HNT)SIXSi@Zkk8cBBbx2r?uns^KlGL)meZX2gE#tcV(H0ss(_VIcfa}4O5bq;T4m0wf3=B zYfn!~tE6>VD9v|8-9%NZ(d%pu(4_Q0WF426ZOo~@J~kQ*-qRO(Kv_F7|GqNdj3Zv? zQ)(2WRz}&mzLB~A88Fg}zW%sRS+z_%kd}ekO0Vds?e~2pi1R3IhzI?5A78_`W_usM zmet4luobXnTGMC~);L>bEq%O{=cX>k&ufxwMcNGt4*@>3+J{!g{yxlkto_l8tw`s^ zEQJuptB9AhE&uInza`#u?*q%pazYdyKloj)6EDInNVZE+a-BfcJ)oW!sj=5=hc1+z zYhPJhu5!YG?jr6$x6`s;rYoMR^{*iAS88eD_7xn?>Z#Gm%F9*TR`^y!4>-oRdVf#Y zJ6;=6_`a!x5-DfH(hObzeOXp#FG+j zSh8F@kWp1@c0<>SUYOJ8!JGqb<=%kWaty0{&!Q}8&thKMv&19qxy>u>2^`bxraeKV zjonsepW~3mOc{E(+{ented8u+lJvbr_PJTo7jpsWliCv*^-K$ z*tnSR$2BkA5TWYWWX)}xBF-CIz{5r-JveUls}zApgP6PpGfLikU8kk$ttMd*{hEw_0A z@9S+do6oRNPcN~iop}UjRJE7bY^OaUr~XG@R`X_HA46H_u@NbDDU)J11hKk=qnek4 zJ_Ri~tyOT){F3ANeGqvLV$4IWYsyHT+Hz8RGZT;R=q2*47s_-P8@;%1txpj>bMd9G=I*)oWMYUkxe1z#iV_htqFh z>1#sO)f?{*t$(Cu<3piquvk8p2T7YY-@mD5^XA%htN5V;Hmu(?MALA2UYs2(!jdpt z?v1Qm!e2vs`62_vtHBf<`Z8xcl*&?}78 z?J{r}9jMPJpVfU3NJH`yJNB)c7Qgu5 zEx}tBr3y{SOWh`%Vu*+0WJig;WWB1JOmUJ|+{KwV14b35DVkemFX7_E@9#2k*TU^3 zk#0(aE{;T2<^^L~2rJV>j^dZ)a0lbz-L3}HH4^9P!Z)Lp^ug9;uOlKG?j~bAp_?=Rw-;`N=bfs^Nk*C_X zCabJ62f3<`u4Ry;HOJPD4F+>li;vZmtM)nDR*fk;w(3LDrfqQvR|tnW?jr6sttf9R z-V3k;w`oFNn^rP5s@)5jEQ1cs=6lC7ea>|PZ0*EKDdEhN5WAhIEhZ54xLi(h% za1{6`2R@p@^kus(3f %PjF{Ay&tgIMN(_+f)*F2yMm81_L{%VyZ(qc(&ttuWqEg zOJ_|Avy}&PvP(!|Z_FWvO4XLKi_|)9$j*~jB7Aw+DQ@qw*mN5g-Pv`!i75BjtDOf9 zueIA}Ts*bC%fVOXoM+S$N6TR1=L2_pOwrYNzJtdUfPHBA8PY#TFzQ?I9EOH2MLuC8 zQKqjdYN760k>oo>llqkQYQUso4L8=?UJgJHby1%~<-_rP_ov0kqiB)U9{oVC}*_s*|1{Z^$xqro7vv z4#M_I^9i&x)J;W>H>tCrnP-;PMEQqJ6YJ<}aPwWG=v&B1+`}w5j?XpJR?K@;r zf1I>8uZol^vttRUt3%-hTu2iJpP(SGabEZ${5 zc!Ok8FD1`huv2^S=&0*K`^y4k8N2S4?T5mvxk*g>R0cg2r`(E~#ePRq5k^L>M=izs zn)ZogY8q;>VAM_O?~_CIOxDMiqn(_>=HrDWR)h3x| z235cwta+3-a1G#yC3YySYTf4Ajq4#Ktf*S~;E1t>mA!u5=9+adxv)C^MLq*wvo^H( z(Nt#p^pR;+(ZmlXvib)T7m|VCpEbUIVU{2cCNA|)?IPyE#GjI$Z0-y+cHaQkn9&`( z+GoC7myl^;jK*N%GuZhB%0lt}qQ&{SJVK`cW44CDL`T0F66y!~+}oP`IUn=6b~Tp{ zCjQXR(%OIpp%J0q^*eyoqBr@|KAskE6b&X0_uFvd7)-o=wWN0;1rH`(>gR`Rd$Yet z{0}xuN^RmEv2CI)?g*JPZSfQ`Rm|{0lUP9FnW6G7KFg*s3)lgD|Kt?9Td)*YJ4+V! zwA)~5cweAA=}S?C9FKre+7)U^T|&So^u+h|3|E0Rjs$ZC&Qv>jXu?CS%F|{tZo6dY z-(fq^|B60892iX8`)+d}%{!R5^W9L(>x(Vo4%k)(6HEKsE{%c(Amn4Q`}(Kmdhsjv zGYbOkvdm_ww3xxljoz5g@QvOm#kvT!J`bs4H%gs}7&|jHUM)GlpP*D`bD_no>{-KQ zXEC_&K1vxXH_s?{w1Lg=CL87M94?pk(@`0Pj0#IM(i5uEp&4a0F)RCHWyIxenWMS9 z+hNrTI@1cZQ;Tv&UFSH-#p_LgJA~}H8h7u#yJt>bSUguVrwQ3D(8uy6-qw`n==Z&? z6}!ElnQ4drTX(=FH!~^+mZ3GjPOe()Bl~;EQl@p!TClVj+NNQxJG@$Yz8$aw>sLvZ z>Z+|Mrt#QD5?=wGZnx@^mq5=h(4+A-$NRAS>xow&OKsH6#`vz%iHBL>LxP3BiP<_^ z7A-N0^KM|X=85F~!|eCDBY<@}Bf^j!Uvb(kc^CRL-gcwa<9#eVJ}JR!e7(-z zPrx52Bs|c`!|+wY#1Pn*^nk_XXsO@iavco|E?Pg)9oAOx!bSVoh*s_GUG%*C8$xDq z(TG-&Nfo?jm#YDDSgZ75x5Dr3z6Lxc>N7^TT(z2aYzk{Dv6tDoi1q-_a#kBTtC6#T zhP4MW8?;rKKJ_5Nt1^c?kQ&54FDC9OVs78=OR%3#L)qz&gwswOKKLthw})7yNOzWH zdpM$56}pj%VJ)R?+s3dqs?8(1t5#IKSOqQ8Jd^4_AKB{Jplp>l@LLaVkhY%RFl%Fo zo(Pg26}x#=+ zn-(Q9Ny`cqwYHuwg7(z+Hp?xbCcB)%?9GB(Oi3rt2wjwaIA~G!-n$+4HS%1glRUKz zzIzNi71%|sOm5FLWYPbp^*b(a&G1 z-0kmg50x$pY-y?g4*Jo7esnBdQf9;XhNhnJ*8#=@#-Fs(GlwLqQ1{D{pS6`=TsB6g zPoc&9Nl2~roAgAHP8$VN&KYs>Y3=+dL5)-#$M0!P9R&^cl`rOzG}6%46Ii++a6uYK zyp@z>K^;dV>BfM=%UAJ;QNl}GT8mmzMUx0l!KZ=${d90vU{)~V#VotdubOc}IDg&r zGR(5;Fv|d;fP8`Q`B5}pGKMsm6w;82-S9~rV{bYM_?0u@EYdNA2w#K~;-tkLvQ)d< z4_TL&suW32Y}LU<;X5M9d{r1!NYdCqRjqJu&{+jbH{0ve;HwjcweAM7SFRh*TUVta zZnjSrI_DCcpoG)a^vt zb2`nN1WlQq_z_Al8zqp@g0(MpvvOLq)1#(uoVm&HM)5Bk2hUi6wq0uDg2dOgEfd-S z&ez3dwp|j&__~hKV<~Nyhyy8fqJq#ESZL_K!fU$}2L3jb6y{JG%JO3eoE^e$i*>uF z)06XyZfZGl7Sfhh->Dipf2%lJoG6YJ8BKPy(A=|av!1wFUnTMK0fhgpnO>h2rFpqV zTV|nESw?8O?l5dVdZNH+A5MG2I8)F+7WBnXA5B0G)+0)%*+W{)QLD!qwR`N*6orG% z64oWfRA`EsaV|IG{LQT0q}2-TH^G{I9dm=UE%=Hl+eO>N-4} z+YT;eRbUZQV4+p4Zlc)SCKreNKQQvo2G9MCJl60;N`)^2S4XB_i7`oJZ_@}=BlD>ZD?#D1@`>>ekX*#l0ZEaU5D;&e*f zjoCsDWU_}+L5J4an7#jAz62V8H7_j#hu5g{aJ(kt(r2kn%=5N=qRQ8 zJh#w()936xT{}7C2MTX3!w(c5TF`eeU8=q3ZL<5Fvc@Va##<7hq=>MQSF~M^0Xt647aWd|9 zEnj%XZ;rC{e5IZB`4HF3U~6N+kli08+%YQl73BMJ)nsS;@wc>m^l3ZfM($I|I1QpK zhb11S&;dBgWa#YNd+|2AKg8SaPOWXz(%fZuJKTHm9_RiL?<{xf>Nd^kF2kF5@5MXc z{UP2Scj|*}+6;FY-d^_}yyuN!z9~oB3I9RoZ-cBwo9CypTJns#@>yM^fR%60gWfRD z4c{b|YJ}Clhy5zK3in?Q`xy?S$DYq>Ps`tnx*Yk)l|NjeAX6w z0i!&v-~=mSJW3c3{}kwV;gZF|>fggYm0X2G2kc`wL;Q|$rPEp(W$Pskt8XV(-xhcq zFsnbbp98$4yHkzTFl~^{>74^CP7%sA;*Sk5Zt7@x9Der9YMF&x_afIecyNrwmm$9O zn)qVGw_Fo1L7bhLNZw?{6yI)symqOUFSYo`#%O$p*;4y}+~OY{TPVMT-;@|II2zwZ zPssI>tM;gbcC_B(eA?e(%p`b}w~QCl#QGE_yV|0(&<4$#v94q8Dz%k&5yjzhRheCF zm$ut7W`WmPeJB5X-lp0|rDu-My>Y%^{4F5mmkF^cUl}Caj_x+JbyN*@v=I7YG=9H=KCAo!qP6(NQu{wH`pw&V1V3wvm{lxuEmkA^99$*qregDYJ$i6x!#t(SKGzFYu&a#IOLMMCxwwD92 zy&Qn;;o|tIEwGVU!A)EJ7VzUC4*a+NRD~N3clI-k z_jnsHXly&Af);qsaIs?8vFx-cz;-!USwo6+V-Vp?wr39Qc>fsd_>xIjBl8|UgOD3B z|Is!!zu)Yib{l5PH@vbLy>G|k@XU&tVB6y0VN4V=zd@#jG$yEa(mWh;kZ$?I9Lw~{ zC)?ay+?Pp z$RCsJeL4v%BD^BfDDy}(sN;8jNpaN#f=&2I^eY>`82mHZE>Q=KGdqo!?YQ1h>Hkcb zffTmZS&9j|&TI0GgFgtzd^h0V4J-N#&e6J+?aIp;pJl#Qdg2S+&JQG}>Wr@4$upW6 zlXNSGUrghzgft*zVIkUpzSF748Y7LBcEJvxr$)gJD7+G6u|jiIyhe)gW?p=WQ+>e( zVmD^!oBCGF`JXf;g1p-zrXS?g*DsV`4)c}%&h>x7K?8B*& zvozYX%?;^?tib>A1=AsBK|M4uWO>oO6PvtDF9KQbq;7Af@IEE^tS!IMNi*fm#cV|0 z9|>cHEyw;-uD*=-8BpP9`Ee6JpHU+J6D1k_mS;f;=gWSPQPN;g@~m)`l8OtIHyxsC z^;JqHG%>!09>wZ9t$EDwDuOlJ-1B&~o;WdVzqhy_1WZpHHSG7WcySi@D+c5(2H}_= zjKv){Aa5{;iD^qXd9+wBvy%7v$=Ot~SZ;Z8D+7iw+H3gdo6G*s-s zYB2FP3)W+!nXhOTZUJ-+lD8`zdg7Bo3QdfjIEVOCh{q5&BmOCVNvzW05uf&RpPtD! zg*;~6QfzUOe97vdb~%#u2S2_Gf!HH zhp!3a*;s|;O!`9`DjLN-(CS7t^Ef=?9}1fHJruO;E8KnblGU|`kbQ@SLv-ITjzv%G z9rV17GuPFbM)Kq0=x#^qU0S~59(a~6*Yex;$L(B$pZjE&LH$HfFNs6+r}q8lF#Q(L zf3rb9>AM4Y?b5fzyOE#5Lz`4liOu{`eULr?aT$<-L^s1EM6PynGk)Ek(qwqg{xH;% z>tQ28KFQ@zYgxBj+$MMzF+2XL-s4&p#%<<>OXX(q<^Y+>c+B=DU@s>!?=A0YNXbP# zf6|KrWX4Aqh?QB(7G7LlNuzcVykFcVl2|7CikP1eBjWU~QG~<%#E=~iD zC`2xk73>5cTqI+%l?vreoJa5dj1Xs(5Hf6s*G75t`0szO8hb;G)C*s-~; z29$}CHnMkkBP-A0=DMN`iW4P!^EjVuqu3>eaIw>~IKg=xXAUcYo;n>^u+)>j%2+Ca-A2 zi9}Ca*3iGE#S8Vz;v1}QEKze~bxw&ycuN!4$yQq5@M&gO6V5R!anArfl?hAK&9GJX z^pOIpv|;Z!VC+<*o4p7Z@&Y7_e>|CC)fjSEI_i8!!`i{A&2Abw$uvW5w87UwPrQoI zkfilXVA)M(@ISV0iO2jY;wy_p8?0ZlXnvO9Hq{dC28ZQY->|RH(9ZtE)zU{!P1}r; z4jL2=8hh#A_s^d-le}zkl9+|o{Ge|(&MJE1zXt5htS;7D+Xn{{GH$-T*GUV=%qOC| znV!G=hfUjzwM|_0Vj9-%Gnpj5m!$6_7t?%rDlp3(cG--5g2N)E161DVLhSk zulh}&zJ*gdiEYhirN-OM2mg*Ukoa2jOlm2Ey~^OQg2RWr%p-bVsNTWFQyl`zd)Ucc z-`Jks2)ZfZiF&#>tP$8{)IXwU6-{^m!U(BayyuH+bxB z@YtwkA4k~RLJAo7#LT^!Hc&pJ;S=$Dfp3fDB9ERgaHKWDzax|Js8{s5z!1#NV_%K$ zv(Hfu8tcb&@@}nwm?fLBhJK>67}gP`7^^!qHdd(^s|RxGoLSKj#!5BD>VEOtqC*Ke z(~bBjHdZO4lsb&nH29@cwl3Ltr7%0tho{Ia+ovCC^O{)M_kk|l>QKn_wEe&Q=1Q}bDk@jqQ z<57&-Xp9%ZDI6mPZP71alhG5?_5Os4vwdch=}RVAjmVSi{@0(9j^?=$Jz>^vg_i4} z|Mr-z05+sY%<;#qf6&5|#|Ykx5&UrQ*NClkrqAsDL{H4r(eF3do99H{Hu~=VLCA!W zUn%UIbr-_ljJyV|&GX1z3VF)h^SjN1i9>@t{5pAeF(8A97YCUSCv3<@?5Befc7xV^ zs}XxsL#{|F_&f7)GW?(B z-v3B7a&4@F#}mAqc#-9)HW07D*?0{ObBh`(dI;^>vi<>YUCpY0!28p8zy4}nyTiYG zci^dAyLSEe2It(lJa{H-yMvJ`1??P)jT%&{4xktHgf;1DE`aTKhVC(R3a8<5O8DMR z_=Qufm`b}98WVx(&h5p=G~SHIg2#%-c1+7hJRk9V#Pe-Tf5_JFaV-r0;~nFUYrFH0 zYfsKY+=BRc#0wC=0dXth6A+(@_>G9$5TA(nG{nEbPSosf-oNbkHC3B%8U310>@Op{ z+QRh&H^EP#XJ<8@hqxZ=!`#IM-{N{stmES0wBKrG+`b+9H4pznb7H`)!@suS-*o&6 zPQQocQQ9F#OIeWFJd#%`l70uPh05+FLjJ^zotuVRI;m$zw^!zjK274=%s7`@s^zuv ztB|>{W^uag#_eI_?1`|WB~|7mSO((TObolyd5`R$zEZl<&NK+bb+TKZ_pHx!l5>U6 zrxV`>bCvGUSU7AcqrT{JsGuf%!Wa+dim!a(C5D{k-f$~@!qvI8clM7nCdIeSXKs zB=%5qiZeJF{b<>fjZx#4N(B6Hwp{N&f0mc+N^tTJoD?jTx;up&URtK{4tV`U8HHgg zI2TENPj5R$?9DXUERp;r^6S}~<0ezash6{HI}X;2k+I;qDK|74J?)`)aYI|C*V&>o zootjxaBWKHT}HL16QgITbUrAt@m?#FnOC9+Q9wa`FlQ-x*BT4v{Jnpd8U1_G@Djl- zYcWMG5T}V$a*1OUd%WKIu>4Yz`<*SxePvCW{^E?A)5N&Nj8V4)oseqVZo%07z<=TF zvMvj?Mn^_4=%kWGnJtct;$j^e#@B2T;?Am6T6gSb5xXo0_Xb+p^XZ*iEyA-~DrsxVM zCkdL{LFIp@S^FV&ky4Au`iAfm#b?DrX`A>lXr?n#Vjr{bdbo)Chp%OcSqv_NKUe3B zIc<;cpo_#Zc}zUjdXrcdC)5iW?bz42g}_xvk)(}!v%5MyGH%p4Qr?E>QdBg_X|< z&ZWlO_@m*Iu}yT~o)Gj-p4WQHzBek$WE0OIaaTYyuP0^?j_%p{=y_36Dsk7O0+2)c zXyCowNg8L1Gvv7a zp&`A#fD?M;)8|>+i(l)peXjwxeQ{bEAX6`h%ak)3Y1`RlHL>2GEiTt)kUP<`SL0?g z+GWcvCb4n9nwY&IPE9GNN}4V4C#g-W&OxgdG@?~Da0bz6)8JPlZE655KBMNtgZ<6K zXdP+DPzpuA$Y_lZj0P1L+3o))Ei4pQ8@ZwbOfL>gC|Yyi)6b06Wf3PpZ<7lRB8QQo zGsZ@%a~!7|a1z0splqht)8>c)^u2_c^7>aug=GKrnU#N$p<$Q<*nzJYXUkPP8Rkd7Ke3YIh!+8gT;nC{kwkh>|L4*KDeDRGUME5CZ+Jc!ezK0 z?0nPT+x{u*A)LQ4*QY%puE!4l9Oz-Aj~k*BDlvm^!TE2ky}S#~;*cUMz-Givwh>0Iy5DGW_XtVa4)`=vA<_$2&)x- zgxs(V=kZ0R9_z*zdx9H=(gHf9ht{nIt`)dnT!Z@^;O;bVsZq`x19$V)a({OX?)qU| z>u|YF1Gn~Sxo=&ATRlv}&Z?nutp+Z}-FK`hS3K=t^Yt@$&S5W37Bt@#FuMyejz1lo z+PpmA7H1>;qd^v$k5B_{Nk{a`AU&~-(1S#kzNQCVSRr@zugq~l*JR-Ykvv1xo&El% z_r3@Q19Db#Fkr`i9*_cMcDbUs_~LxdQNpW4uuJgTg+}tPx(Ov;(BT&@;Oqej0ls

~9BhNW+Ok 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', crc)) + for c in rdata: if c == 0x7e or c == 0x7d: out.append(0x7d) out.append(c ^ 0x20) else: out.append(c) out = bytes(out) - return b'\x7e' + out + pack('>HB', crc, 0x7e) + return b'\x7e' + out + b'\x7e' def hdlc_decode(data, fdl = False, ignoreCrc = False): # HDLC bug in Unisoc: CRC is also encoded!!! rawdata = bytearray(data[1:-1]) @@ -220,6 +221,10 @@ def cmd_data_start(targetAddr, targetLen): datahdr = pack('>LL', targetAddr, targetLen) return shape_data_packet(BSL_CMD_START_DATA, datahdr) +def cmd_data_start_flash(targetPartId, targetLen, checksum): + datahdr = pack('>LLL', targetPartId, targetLen, checksum) + return shape_data_packet(BSL_CMD_START_DATA, datahdr) + def cmd_data_send(data): return shape_data_packet(BSL_CMD_MIDST_DATA, data) @@ -255,8 +260,10 @@ def cmd_read_sector_size(): def cmd_read_flash_type(): return shape_cmd_packet(BSL_CMD_READ_FLASH_TYPE) -def cmd_enable_flash(): - return shape_cmd_packet(BSL_CMD_ENABLE_WRITE_FLASH) +def cmd_enable_flash(targetAddr): + #datahdr = pack('>L', targetAddr) + datahdr = pack('>LL', targetAddr, 1) + return shape_data_packet(BSL_CMD_ENABLE_WRITE_FLASH, datahdr) def cmd_read_flash_info(): return shape_cmd_packet(BSL_CMD_READ_FLASH_INFO) diff --git a/unidump.py b/uniflash.py similarity index 75% rename from unidump.py rename to uniflash.py index bb2f2a7..890b9f7 100644 --- a/unidump.py +++ b/uniflash.py @@ -9,6 +9,7 @@ import unicmd UNISOC_VID = 0x1782 UNISOC_PID = 0x4d00 +UNISOC_FLASH_BASE_ADDR = 0x10000000 MAX_PKT_SIZE = 1024 bSize = 512 # read block size genTimeout = 4000 @@ -63,14 +64,19 @@ def handshake(fdlBooted = False): if len(r): print('>', r.decode()) -def send_file_to_addr(fname, faddr, fdlBooted = False): +def send_file_to_addr(fname, faddr, fdlBooted = False, flashMode = False, fbs = 1024): pSize = MAX_PKT_SIZE f = open(fname, 'rb') fdata = f.read() f.close() flen = len(fdata) print('Initializing data transfer...') - resp = reqresp(unicmd.cmd_data_start(faddr, flen), fdlBooted) + if flashMode: + pSize = fbs + # faddr is our flash offset in this case + resp = reqresp(unicmd.cmd_data_start(UNISOC_FLASH_BASE_ADDR + faddr, flen), fdlBooted) + else: + resp = reqresp(unicmd.cmd_data_start(faddr, flen), fdlBooted) rcode, rlen, r = unicmd.resp_decode(resp, fdlBooted) assert rcode == unicmd.BSL_REP_ACK, 'Could not start data transfer, response code is %X' % rcode print('Starting data transfer...') @@ -85,12 +91,15 @@ def send_file_to_addr(fname, faddr, fdlBooted = False): print('\nEnding data transfer...') resp = reqresp(unicmd.cmd_data_end(), fdlBooted) rcode, rlen, r = unicmd.resp_decode(resp, fdlBooted) - assert rcode == unicmd.BSL_REP_ACK, 'Could not finalize data transfer, response code is %X' % rcode + if not flashMode or rcode != unicmd.BSL_FLASH_CFG_ERROR: # on flashing, ignore 0xA4 error + assert rcode == unicmd.BSL_REP_ACK, 'Could not finalize data transfer, response code is %X' % rcode print('Data transfer successful') -def read_partdata(baseaddr, size, offset): +# readback code implementation + +def read_partdata(partid, size, offset): t = b'' - reqonly(unicmd.cmd_read_flash(baseaddr, size, offset), True) + reqonly(unicmd.cmd_read_flash(partid, size, offset), True) while True: xr = bytes(dev.read(epIn, bSize, genTimeout)) t += xr @@ -98,16 +107,16 @@ def read_partdata(baseaddr, size, offset): break return t -def read_partition(baseaddr, partsize, partoffset, outfile, rbblocksize): +def read_partition(partid, partsize, partoffset, outfile, rbblocksize): outf = open(outfile, 'wb') psize = partsize offset = partoffset - print('Dumping %d bytes from partition 0x%X at offset 0x%X to %s...' % (partsize, baseaddr, partoffset, outfile)) + print('Dumping %d bytes from partition 0x%X at offset 0x%X to %s...' % (partsize, partid, partoffset, outfile)) bufsize = rbblocksize while psize > 0: if psize < bufsize: bufsize = psize - resp = read_partdata(baseaddr, bufsize, offset) + resp = read_partdata(partid, bufsize, offset) rcode, rlen, r = unicmd.resp_decode(resp, True) outf.write(r) sys.stdout.write('.') @@ -125,12 +134,13 @@ def auto_int(x): if __name__ == '__main__': # main app start from argparse import ArgumentParser rootdir = os.path.dirname(os.path.realpath(__file__)) - parser = ArgumentParser(description='UniDump: an opensource Unisoc SC6531E/F/M phone dumper', epilog='(c) Luxferre 2021 --- No rights reserved ') - parser.add_argument('file', help='File to write the dump into') - parser.add_argument('-p','--partid', type=auto_int, default=0x80000003, help='partition ID (defaults to 0x80000003 that can address full flash space on SC6531E/F/M)') + parser = ArgumentParser(description='UniFlash: an opensource Unisoc SC6531E/F/M phone flash reader/writer', epilog='(c) Luxferre 2021 --- No rights reserved ') + parser.add_argument('mode', help='Operation mode (flash/dump)') + parser.add_argument('file', help='File to read the flash data from or write the dump into') + parser.add_argument('-p','--partid', type=auto_int, default=0x80000003, help='partition ID for readback (defaults to 0x80000003 that can address full flash space on SC6531E/F/M)') parser.add_argument('-s','--start', type=auto_int, default=0, help='start position (in the partition, defaults to 0)') - parser.add_argument('-l', '--length', type=auto_int, default=0x400000, help='data length in bytes to read, defaults to 0x400000') - parser.add_argument('-bs','--block-size', type=auto_int, default=4096, help='Readback block size (in bytes), defaults to 4096') + parser.add_argument('-l', '--length', type=auto_int, default=0x400000, help='data length in bytes to read/write, defaults to 0x400000') + parser.add_argument('-bs','--block-size', type=auto_int, default=4096, help='Readback/write block size (in bytes), defaults to 4096') parser.add_argument('-dv','--device-vid', type=auto_int, default=UNISOC_VID, help='Override device vendor ID') parser.add_argument('-dp','--device-pid', type=auto_int, default=UNISOC_PID, help='Override device product ID') parser.add_argument('-fdl1','--fdl1-file', default=rootdir+'/fdls/sc6531efm/nor_fdl1.bin', help='Path to FDL1, defaults to the generic SC6531E/F/M FDL1 shipped with UniDump') @@ -139,6 +149,10 @@ if __name__ == '__main__': # main app start parser.add_argument('-addr2','--fdl2-addr', type=auto_int, default=0x14000000, help='Address to load FDL2 into, defaults to 0x14000000') args = parser.parse_args() + is_flash = False + if args.mode == 'flash': + is_flash = True + UNISOC_VID = args.device_vid UNISOC_PID = args.device_pid fdl1Addr = args.fdl1_addr @@ -192,11 +206,15 @@ if __name__ == '__main__': # main app start print('FDL2 running, may start interacting with flash memory') - read_partition(partitionId, readlen, readoffset, outfile, readbs) - - resp = reqresp(unicmd.cmd_reset(), True) - rcode, rlen, r = unicmd.resp_decode(resp, True) - assert rcode == unicmd.BSL_REP_ACK, 'Could not reset the device, response code is %X' % rcode + if is_flash: + print('Writing flash at offset 0x%X from %s...' % (readoffset, outfile)) + send_file_to_addr(outfile, readoffset, True, True, readbs) + print('Flash memory written, disconnect the device!') + else: + read_partition(partitionId, readlen, readoffset, outfile, readbs) + resp = reqresp(unicmd.cmd_reset(), True) + rcode, rlen, r = unicmd.resp_decode(resp, True) + assert rcode == unicmd.BSL_REP_ACK, 'Could not reset the device, response code is %X' % rcode if dev is not None: usb.util.dispose_resources(dev)