From 45394e589aeffe3c31789174dbbe9ad9c9320ab6 Mon Sep 17 00:00:00 2001 From: Matt Davis Date: Sun, 7 Jan 2024 10:55:49 -0500 Subject: [PATCH] Add more details of connecting to the chip. --- en/flash-chip-interfacing.md | 11 +++++++++++ images/ribbon-cable.jpg | Bin 0 -> 23911 bytes 2 files changed, 11 insertions(+) create mode 100644 images/ribbon-cable.jpg diff --git a/en/flash-chip-interfacing.md b/en/flash-chip-interfacing.md index 8083b47..8c16bc5 100644 --- a/en/flash-chip-interfacing.md +++ b/en/flash-chip-interfacing.md @@ -31,10 +31,21 @@ SOIC8 Clips SOIC8 clips are a convenient way to interface with SOIC8 chips. They are cheap and somewhat easy to use. Remember though, that the clip requires a programmer to act as interface between the clip and your computer. +It can be confusing when looking at the ribbon cable of the clip, because the two rows of pins -- how does it map? +Look at the following image of a ribbon cable, there is a red wire that indicates pin 1, and the pins are numbered +relative to the cable key notch. Don't be confused in thinking that red should be voltage, in this case it should +map to pin one of the SOIC8 chip and pin-cable adapter. This way you can visualize the pins of the adapter are identical +to that of the SOIC8 flash chip specification. + +![](../images/ribbon-cable.jpg) + Here is an example of a SOIC8 clip wired to a Raspberry Pi Pico: ![](../images/soic8-clip-programmer-example.png) +**Warning:** Often camera boards have other SOIC8 style chips besides the flash chip, +and you need to be sure to identify the correct chip before you begin your work. + Picking a Programmer -------------------- diff --git a/images/ribbon-cable.jpg b/images/ribbon-cable.jpg new file mode 100644 index 0000000000000000000000000000000000000000..96bfc120320a3af0e9fc39d1bccffaad6b867749 GIT binary patch literal 23911 zcmce;byOU|)-O6UxVsGQ4#AxScXtmkxVwkoI=FjqC%6;bEw~e$ph1Erfk)2yzH`of zYu$U_`u=z|y=s25YggCqE#14iYR${a%QgU0URq8X00aU6z}FApWfxUfPD0|ns=A7_ zoTAh}8c<~wZ5*9Im;iu-qr0oRj5vj^o<0S_GynuZ0>A?}002{no3oOJv?k!S$Vo|1 zxV`YzFDI}a6 zoJ}2l0Dym9^WR3OLr8K7M7+S_U;sal?rjPck*zhaC0_= zSWvM3zn%Dh-0?re`VTo+)GaJ6TrC`5hthuaG8;#$S93d>+ql~}Ia1g-{_iaOKkW7& zGW>=A^y^oEQ~V6Tea{BKoWTXaoKFH^aZms-hIy|oz<=3I5lI{HH}Z7IkN)ZRulTk7 zANBuIf#P3(g4}GZDE^Wq)HNv}96I201N;w01O}lPy-kMtN=~`A3z8o z3XlTG15^N-06l;)00OWEH~?G$UI2eU5Fi{714sa*0oXa#fu`T)a# z3BXstB48b`4LAUt0xkh}fL}l$5CMn=!~ueV=GmsO=4}1%h0xAO4fqFm_pcT*& z=mGQxh5%!LNx&>%0k8sC4{Qha0mp!|z*XQ5@ECXvd;-CMP(ipLQV<>J4Tv8k22ucN zf{Z{`AQzA?C=?V2$^aFDszEKFKF|bc5ws0D1>M2`U{GN2VJKl(VfbMrU{qlAVJu-> zVFF;HVbWj;%NVR2w7U|C^>U}a&oU?H$BumP}8*euv`*cRA9 z*m>9;*h|=FI5apCIA%COI5{|7I4d|WxNx{MxKg-gxFNVjxC6L5czAexczSp~cv*No zcw2Zscqn`>{Ac)H_*wWp_*(=71TX?Kf(U{Nf+>PKLO4PuLN!7U!W_Z@!UG}-A~_-_ zqBNpDq9bB3Vj5y4;upj@#3RICNSH{pNPP^eG@P}ERtPy$ghQ0h=dQFc%sQL#~(P$f_eQ9V%OP|Hwz zQCCrK(9qE6&_vPn(cIDE&??Xd(6-PX&~eb&(B;t0(LbVRqqm^Xp1W8PxnU~yonU^!qxu`02~u)bp>VAEksVVh%z zVi#c#VDI6;;85d8;6QLfaEft;a1LmNmOp@G^l99@gI+JFS z4v?Oa;ggAy*^;G@eIYw0$02`9ZbP0z-a~#ufkz=mVNa1kF-UPqNkS=0=|NdQIZgSC zik?b~Dwygs)h0DEH9xf_bqaMq^(75CjS`JNO%=@=EfOt1tu<{r?Fj8X9X*{6T?Ab# z-FJFIdO3Pu`YQSj1~i6u3@!|X3=53#jQostjJb?onLtcDOx8@AU9ds$hY+ifolvFFcVT*A3*lnnJrODq zQ;`CZ?Y9(fP2PTbyZw&xo$0&6ce|q0qUNHdqDNwkVzy${Vi)4<;;!P&;`b7Q5+5Xb zC1E6GB%>v#rLd*6q_U*8q^YE>q^qPaWq4%#WO`-cWEEr+WtZhhc+8Ek~+7;UOI+8j`I@`K$bU)}$=n?7J=(Xu1 z=xghj>fahj8KfE<81fi~8!j2q8+jXz850@X8+X6QcyIc?(FD#!$E4Eax2cM0q3Nxe zoLP?9B}4*}4mmX!HBT`=wh*yMvN*C7u}rf3ZY5%sY;|n?&N|Kd%tpc{%jU{f);8bv z-cH4?%zVEO;HB-==#Ay==soGfbTml`fH73O!&oOm?I*+=OdXxI428D+HM*hay zCfcT)W}N2e7GR4{%Vn!|>vo%7+ibghdw+*eM{_4zXIU3zS9UjEcl;ORFQH#vdVG6s zd!2jF`mFl)`rr4j59kgo45|%I4=D_d4oeRYjEIf&jEanQjR}smkMobWPVi2&O!7=N zPw`AOPxDT<%<#>$eHHlHF)KX#W$xWv-@N4f@PgdJ#G>-z?2^{f%Ch0|_KNw+_f`AV zt2NKHU+aMza2wH^n44)^BwK~w7{7hq=H2ezk=&Ww)!1F%gY2E|yY2rz2t7nQOgkb! zs`$?Nz3W)|`0I(m$-$}f>94c!bFA~63xy_?_{G@lVII!t=(9!^_LdIzZxeI`MxmAP^Av zdH_NHUH*+gFTDU1L_jvs8VJM!ybJ=!U-J+U2JS-A25C(+u%Akb_ z0KkKQ062I=WJC}=$}2kzEF3%n5D|ccg^k0Hi-+&!-9|u2$>-VB(n>|m!K>%uk=(pO z!^I;YX6hbEt0petlhHSe45nj{)wW73s~=u|Spy*c9q%3B{%VB8BYB#jjw@kHL&xZ54qdXXUfWXT^m}~IWq2Bac+g=y zgB_24ICb!HSU4;f7x6+#!l7+7T{jJuLM*D(wBRjnn-Xb3-XjS;A1isMf()S(64#QUk-k~0Q9zm@AdF*aUqC|~WwTIIW3R@+=u3PYPMI|&dy{BgZnmSX|F)1hB$7*bKj#qAc zvdwgds>G&u7Pp8ap~QNJGqZoLB=yfFy5UHj*i(-lrs<)Z)-AcT4)&lQ((8rJ$-9eg zZPjQ?dzpIef3v4@beZFs4yvq`E{W96rh9MpzSe!MR0foS4U4#rNl|XT;-_qDO2&nb zHRh@sjmWN-Tl>{6n|I${#Kmy|lXPS$l9U+!3k~zB?Zrl|(;@+lDc&gE?`}!v2{^7? z6+%w(C}N0vtPpj)gTBWbR-4Rl>?J{pzV76I+47$j{acS4&U7y{JoaaVth?VKP7=c( zRO#0+PM{djs=ojPKK1cxSaE(zO{WlcXcJ#Fm|g}-6l(t*$CgSZlItH81x^B2WBmk# z<;0n5t6hHn#sCM>i@l9z&=BAWQ~ORjHyAz8BK%YxK{G9XA%9O95B{n|Fe%Id>d|9)&IN6biU)q z<#Osu-LL; zsEaN+%Wjs++t}Gujm}9^i#irR%(Zed4EDe_ditMHUxE$*Q(#9eyIjl#? zK2{GJ1CvfIz~}R1tYuGxehCI}oDsSb_@l1gXY@w}>bN|W?7`|1nw}yafzmKBAAGvO z%~->#y*FHXN;9yNoNT)fGn}a$V|wN+b!CxPa*Dy&RL`lt_$Y4DJJ7VdF62T z-lO$-PWFDpvR}wnLh#KQ3(hZ(mk5iT=E_es6R*B>B+65(dmVaeY`XeE{Yw&#fqmMl zlG^H@*su1x@EuY9#IE?NdJN93nKw|)>*9Tg5HC^jm@l-$LAzjuOEMeAp6wrQyG>G_ zO9^CcOB$}5*G|$ikCYApg|73x0Q5ID!I_|6JmMGKx3IS2TcVL__t*h<0&kMTsB0Nmh>R+cKW>8U#-Qw-iw zh+Bgr4$x%4EN2{k zE&C7fmkkuZ&&iUD%ST;H<)mu~W4j-*Z|2%3z~dQogEc9OYqo6sn{KJV)wBH)`x+`I@5ZkGEtNt!ER%qb+Sy*zyim_L)3@%>QTEG&#%*05%}*5o|28ACTp1arF7kkIn#%Z_m{2 z7r#jJ2hMMwF_<>@X5%Zos=}gJ{i7B4cvC|a3Jca$I|IJO$`z@nMmFSjK!_xlg&3Rb z4?qobjEVrNYsW_lzkYaBDAj~@?jOPWT`qk-6D8?v2M;sRq}ngCia88e%A*|UB+Md# zQAH=i2#C3TzqhVc+@MJtKhn!DhYl1g#fdln^$4qBJq?_!Tvfy=rizVgmp%LA33*T4 zS@r!S;PLR!f)zcg$cn0FTaPGS^*BTcaA}M(O&V@=N=iB&GZ`j&bYln2B zF`|R73h-=W+~IPoDW(eM;jA={if5zOTTWxi*bGkE8NF8g!!99$VSzE=VLmecy}18A z@?j|gsR)MxL-|KTDXoBr;v^pX;?n_&5W->Kn`gu0O0d4vlluAN)T12%^@q8RX3e;q zMM4G5IXe_cJI&;eK&RHbsDV!$4G-E+7pD7i7ngfSp{uq)vE{D`Xli}H==X{Q<``A3lUZ> zB8XSJN$Vn(xxXI|U1kY(B@E2zw763Sf0k}!yK+6ZJoT8`>h`ir;@Jg4_A00|nP=4q50$8+dB+KLYEm%TAx718}kqx9c+1ND!_p%X3 z??zIFOh}mAnSE`F$8VR*$)1+nwk!0+Gi8N%lk23R*r6_3c=!v>m{hT-@4T6hEKwng zdsh<7$>tPMS$=B0={i^Z(BHhOLS>^H&Ye9zi)bT_8x57t)uTp|pD3-##bG6Mjz`-X zjVXX;nm4ZEl*73gjM-VMZN(efupPFs2K0|P#&U`Hn$L2kTD8cHWnd{S4~CS^E#H9V0Au>eNQ2Q4huy(2 z#_R^EQ!d$(c=Q-uOr673MK%X=>(s%0=!s}e#gpK3U<9w1 z!U*>TK==+I~)w-AJnnk=0s_)^5q_-LIBzO&4Yl@5&ku>w){_|8L)p6IgP*Ri$WuWHlr;}QJl)s7s@JMmR{&* z9G^jQhXo%pSjBHB-w`;nPUY-P+3FV?kmd^NXE4Yzcl9<`d{#IO#&QUg}aNznD zw%X%J;BKEE?39xF92!nyXPO;?=oxOitxSrKECyB^JL_PXJn-G z=nvRn{a3f{vt`@=Y_J5!@iV0ge>G1Blh(pcS8|el4*GoY8)k<^xY%lZPF(uh&vZyr zLgwhi5);B>Ld;17u)WvAw@M|&lTtN9-lel1(5G+^X`X4Vg9S0ZZvDj z@0qncrM1hSWQu#NoA31GrIH(YS6hrf>0T4&ehGG>;}vbkg6c?^vQ8mW4$H(0!@874 z?xOzIg;}69aQgpKZ~rqRwJ$9zs3=L5lnCMZ6d1qhx8YIC@$68+!R)#Y0tK< zqL{0^>7ecDi6JroR<|fDiPBWGkkuA!oaGpGl#?Gz51q2j%^}G%&y&g*i51&i{8!TF znsxD|Z}sUBsbWFHIg;gixUB`fzM#m#Q?ufU7}ZI~4C%+S;Lm$7w6lgKw9jg0cU06l zBDrUvDpymvshMqD^hwRQLz2nXQ;AuDCfM*2{>j#k!-KOTX;D8PS%oB7dnvROclsPV zEz94C@hB^|XKW}rR6Hr2?i|-5Ezn^q@}^E34tJKe2c4{KC9B~5%)WLv4k}bDt>0kQ z#=aI(WiM$0TD8l<#$wRiE>6Ig*J7)P?u{E(V(AX?_oDKvin|d|D_sYF?y}n&PAH}0>JOCTdyH7jFs%; zN(}+kl_q#1WwjLva_mt1Pqjytj16>D+}#ten1?HFnkUnh5)P){zz^^d}w|rg0)Ple36%g60%|$s;8XX4MS#i>~sv zW>Z%N?D1R~q6VTj;fO_q&D!v(K41SK;#fV}s!CuHJus#Tqb4JE`rUif1T#)c&d@iO z5;*s(7?82xw#h7PXJdA4=5VN^`3u0xV#;yY@*!@3Luf@m@eo|!6iQZ{&M#Y0`qaFL zdq*0Xl`MS#r*C+y$EcYl45yk%{*V+Z&B^j%piSGJ+SX*jI`_?hnz0`ib@4XaA{^R# z73RuR66NL!3np^{!*OX(JelmJ4wdu+K`8zws(!H)?4V%Z5eR|dU3O`UZS@dMK5C;v z2nUIhxuOf5SLy)Enz4_$h#3#qb96RkyJm?ZB}st{9@JZB@}^u5Fo5OmfBy5xPJQW) z=ZSiL*q`Ypp%3K!cN>@-!o9-BXIb$*1GK~r%L|QO)V~R9|S`;`> zzTnZVNI;U7LA)1=6-Yrxus(Vf`gJNX$KK8iTy>Jo%B}1pwWNJ!M(Lr=;oGnl%95gT z5eXTf=@-G{H>cy5)NznUW`J;;Am_w)jVkp571Eq?S5V;QN?5ONV86$zCp$FgUGkiC zaOoh~Tcrz)%xlr>?x`J-Of}$dqsj?=`NfEO9naKzvl!F(C7YCYnYZxZ44EZl_wtGE zx}7%B*0L#9pLbzV$%}6}G8xyCfFvac_Cymg+v4Yq0^$VwWDzqzHzk7@mq=xL%H2$; zl7%b1p8U^<#YLXaXioJeP)rnfmaNIo8y1l0Y3js+M^39^d38+v;5tgwB3BnG?nzjx zA-vkw{{5saIqRa$&olA`YUkATr8le6-8zbb^KawNnp11l#)Row8;DaZ`uq!UXxEy) z{Ag#e!DVN}j1?Md46*l;b=*?A6+^A;b!0mV2wiRtmDW54F8c;kJFO>;RMeDwM}`pT z9#qP+C`D@QHzPZ%m6*eB?}a7afzV}VtJc0!>v@h3>OPkoYN?HU+h<2$G#AL?{|QaL z4R7jLB|dcV6bqv>Qj?{d&|qZf3IVZF$PtE8M9wbDPq>~PTh6X=3!wYKEAw33SK3w# z25)?_8ezXVg~Ae1Vs+Oi4#YCQ9(G+Cx}5TrO`lKn>4vMbN` z__@`a)oCQJcOc@}7=kv-W;gqll}>TzC=~6!d>vll@>sfFHNrzpZz)uMCZe5i{bhS{} zg?cf<$c|*!4E}-q+@-Zfsni1QE+$vv>r2$T$|>ENgV2ej!uk?z4=8$qa9v0=YkX_B9Wx^M@W2wuJ7a zVoDy^l`%N6OZ@`WVRl6&wSFTEUCkXAa}t-#erO54vz`xgwQfv^OAR4g|57Se-2HCg z8Qw2vO?E!p=+MtrJgMU0Rbsg87zCQr;-2_2m~S{G5;4mF8e6eUfq;g7Ro}Cp(R)qW zr==y6>*oC?=^NH2F-Iy;4mztNm>7fFn@)>|$S#K?YFYUMr&-M~OyIURO9_Yp+}nTy zBVI0hfHYUYI$x8rBENQ&LtxZfd-^u7@~*HmUaM?54F|6byVmf4D_SlSDbid$X}(m^ z{DW(WtvZ#wY4oU~Ye{Ii)bN5rga?l+u<(|)0=Vqs!R-DGTjZln19jTsrvn#y)t|Eg z257Dk-$VZBW>!PSJjMs36<~Jy5!2H+hb`IJYJdNCx*8|2{7&{YO#*$pgW8e50M@V7 z6&X}%)|Z4BXrnujy;sWm_?d@g3&fUJo-M?<(R8m1($iSpoSX9fgzgFSy@Q@z^TbAI zC?qcr5c4jSYGtMQFvmjjx!hDbd7sZ&!G)z3d`DEh$`;d(r zjn4zsaBHdQ*=wE_BtM-R0828Ptn0OsR@fgy#y)KYuQ}|JvjblMJS&!ezI|9IV(h9y z>H+7uvY4DwwtR?)psPvJ6M&h=WCeC+z&Z=lEm2bdqHb3T90C=BBh{EW*~LAJ*NNS!5^Ra{WIF< z>?D`CkzHpep2q|a>j}EavFcxvwZ>q5la-Nqht6StQ8yAvs#SD&2R3q<@SDg|vj?^P z{D{Ti%d)Ena=v!a+fe;K@(1#AF1J{Pp=NOk#vM3tdYAkEtCq_D$&lk;FD&IBAV2)KS%YlzSxYvfQ_%539 zV8#BolM};r(WTHAiKI!JPq9s?h7(OA4e)x_zp2TA_TMy^fnzAivJ&>F1t%v>{57KBIf3ipJ^T>vM;;=BKFLYCUEE!2*hwRT__sl= zn4jNVL$m)7w4LCq{AP})mK>1NlG4bq4F#B5JG)q zSJ#+aj<69(?D3skG}}+Ut zA9S5yt|OPF2aO|)@0nWrr12vrBJZuCUrnWK;5%d>g_^)-ZDh3y1l-bnaV zu2yc0B2kN<3(k`*QC`2f;2-Iv7PL9W=AItDpbwhC1#f!P)?c9r%QnhVtsW>J^t(Q= zK;|gz>Rd5-4}Kv$@{+za%ntdTz5m1KcmGH=MUhiJl^mOrc5-I^Fp#G-?S#&1?Sa>X zQ|;IV|LX@v!Z4j^o(&I=Bi2=gQ1Xz?y~Hzf!CKA3FR$*Wn)-{2x3_Pm&A_X=T$Qd+ zxfL}})uEqUrvE6%M;qJXH57jpZfhd<0V>7M3Em{ z{kSkG5|RWb8!XrnP+Y=R{yy0I_DdxwphcP$@=4zN(b?RVQg*l9|XU(t5fd$(sP_C5%!>RZ9dHscnVG{2|2QS4f%JVhi!X}3c5dE z--;Yn4?qe{QTkGpg@@_S#KXYn0b1S)`)%*8VX_S(ZzBXdamOlX2MPv{P+{eWnGCA6 zF^YHV5-9DSn8Txt&1Ci|jW>_NmVE_#*_I%5XU z9S)edAWge@z%c3x`(rCp=ZRqBjuSIQ8e!d#- z4}m(hNk9}rzAKE)<&z*E3D$mwLCQP&4?#OJKjZF`6!(261({-QD&?Z1tIv8}#7k?` zH!Y|9CYPP4!=BirbmHZEJ(*3u+;`U&?BL_>eEcKq_E^aAIk4Uc2z2ViTzL#5qx9!5 zT!XDG6$d@7N4$|5s@FY3>%{1{xZdCiAn-{E(7N^_De@#g#E^XVr{MdSZNB%pbN`+R z=3L};=@DZgRVHb=J$Sg8Y25#@@|Py3|9a%JA!qhGT#DI-nd3hVOiah-Y!YT#x{q} z^0;|L+IV8AI)z|LU_l6ct>%X4FOz0xC5gs0Ui{uJ16|gI5_{I5O0Ly?$H|^73y*GH zE%YV~<%g=%2DL1A)5TE~48?XqH}OpQ@TSsRJSZW@;r)mbOKzb@rgXNJL1LtRf%F%7 zb*1k@-AVa%>OC6hErliZR##BA4ZZd5wA zO*S=O5-&Wz=S6w%SRGrL?a%Q|ZJo8S0e8HpYiGIpDo@;KGXEJQd${e70G6*aE6%{2byodQb&LX?*m=6rL-B}D^jzfuAQz{G>) zvcfqkfQa&I$D598(>HHux2KQzg;G1ExrZl~1R!>h;Ftg<^uZfb)^xqFTc3J^dE7Vm zTptVp%fZ|iJ+pjW=8`WfxCk~fzc9-B17CJBPS;jO*-#a|XxrvA zk*0*7vx(zjJ<1paL{OxaNi}UQkynG;{}38ZQpKoN%Aw5CDwTIO^CZQyI`3qBN;1EQ zmu)ik_0*hW;Tu~H{{rR#Fc!~bW&=@(QU0S}T0t^u=}$2t>7T4o;&8Pv{6pXwr_xpx zPk|f`{?^jbqU$xzAEgJJz713MmFKc%F+>iZU6%xCm}Jj3J{4jBwW!zJBA_O7zqge^ zz|g+PuIEZMZM^pgnL`!~#z`s29c7h;Y&bU8D99ePN_xE{RN?YRoZ7{3*agR~C1Hd< z8HnLFLEJmABA+6-wcEdD5A*mYdRHkpB0WLK=6tWMKnZ7>4le+sPf(&MbGza+C7zm7 z^J+@XXwB^@*;+EV_1=YwLl}QMMg>t%&W+t&JPhdi%k;fCjAI|nu=Mx~5C{pS#>lwD^{wpQE-kYu!EsGE68`!b zfE+Hvr9f|NBYDbdC&$^QWWgG{Lq8q!-V_ConL8==ETxGq2Fxzbz%yPqkK)SQl$LtI zeb0FOdgekQ~<#e$_4d~f=?RZp3fnC`Qw9}CW6V+FUIH(2z2O@oBgA_B% z*?(wB5o~DT-$*2s2ytxfDap3GJseS5;ZL1YH_FmI!U_;LD3D3-C*U<=ks;JGn@J&C zT_r=gcHUp-h|XJaUh+d`uVkCtgpAi5mlSVe;MOn|OBH*rz?}0AOQ|QRdcn03_65s> zgBT=JinoTPDG=yfYfhF@^)*Wt4mi{;MsLXT9YViZTQb$IU%ay}4ziSy-QpRSzb-Jf zv|<=$s3T{kt4~X@^pY%bVAtc8Kr$h=YpR^>a-st_XgF%?p1U;R1xya&&UtP4)~J{; zglKEI%Ncn%)pv1aL4I@JM-ol{Aw<2Hk?#Tj08vH)o9HyPJCyWmDaZC$nOP!pGmTej z6RApU)QgC`|9lS~_p+2?5|JQ9y^<)-TV+-v`pmL7+3AymKMI&sx99 z4X>{0Pco>`P}SM&aq8DQIS-8OJ)LktD-UK;1+zs$s@SJLN^aTvn^L}2L{uPZoCJm- z_0WDwoV&{s@mNIEkU*AMP2~(m4!8e0&n`#yt}ev5OpE#IN>3;nHOXxMb5c`TDf?Vh zUl=V`##ua&#mHa1(U!i@SFQBvxKW$58$kjhR@+fp($OM4;?Sa|bY`{wmeHJlm?gVJ zurNAubVjy-pL(BJTEZ-4bfLI^P#&vTd1q{aNXG5Xwr94}bF1*yak_1CQ8OF&=~Y zNL(q5=bi8gbC?B+6V(kbEc^HSI=SRclp=9Wm928O0kBTBVx#OV06ifPJ|_hN|6*iy z$)4#-N&i~z&Un_H6pd31#$IBbcRx+dqPd`ILSxYJvifA$!KOW4C!3V$OI(@zjV7 z*3o0(p5c^MoQBbPiLI-*#WrknKQM`Cpm*4<=8qdwVT3axfswuIurNcyqhr0W`=37p zrrF=#kk)>g7EBoTmA>L>1E-&}T@ii5PLmxOf0Ss!-K;E~m(BCM9xDr6PpqGsIl z>6>JYP~b%|_Y=uOkVmBfG1z(wKcNJ~{-Qz(UAks!dR=2^3RjaW_8Ii%NojQb82$Mw zLf-ILwW=f`pffA#-bUyV;WYQ$sZB!Fud81|T3uvr!NRNG_hkHC?ofczc|7E-exgeB zIJM(lX~lZ@u9k3#dm<92BV&^j=UU9-$QX<*Mc!hW8&lnRa?9;P@b6eeKWMy7$x<__ z*z!-%^D%YcYI<+3izM&{e1@t!rM;#k1O1t03|cf${+1$l!s=M13;tH4=Sh9DZdTV) zs>GEb3SqgEm{5!V;UFq~MUXm?T;T$)oCs@bAuOU3VdLT6$}8d|tvwvgQuMe-x4l+02lpaN8Q8nXZw^V ziArU~CT(9OVVXKe!l_UBY$&4w1pH7EqgGi;QtLu4%jT!IfT4D{2o&d@T#4IyBgPzg z((zvz=ZLH<=onjCy?Xx`{^oh2s}hR&2yG$@mr3Ji_ZkZm7_;*$kxZlXDj@fRdMchn z1V(7a7DcEbDH^e{>k3_xMd>SXF86ao?b*oIsXV2XXPII&_@>E|2ke(OBsN?v#^NlY zK?FH>@WSTHDss3R8s1T_-Nel-YHW{*eGMIr|At=iT#Qfs_7x-QO&2#jbreS^1!e>2 zIzt>DCK(}7T0BU(UWzSy&yFu-j>@XGTB_<{&mO@me4#a|Tn_e;%}QiTD)LH{xi#Ug zfyJwR#wRBx334DpEoHy#qWMdqOVlDk;%wPVa`iRrup(+>+jMBSv*19v`{tny#cXY( z5;?FRo;iiBC=hg3v_zyP~C(s8Rf&pn> zIi0bq`h2kO-_V_%tn&VP_pZ^K{TGamHy&8y>eV&UpqPcmGGu)fH-Z<7`vuh0&0C>H zKdeNK>^=)`9^jE=Hps}d7QMbrV`W*=KU<_^F-Wfqx6r3)R=idhvp{w0I$)@~9$d4s z?h4g=jXHrdRIw@N?hbBxQW~vR*^4r6LjsX_;qo29H_oR>d{f`vHD*$_*r#bUFr4AZ z#piyh#YUeE8xY%DQldwe#0(WxAInS54UwB!!$5>2Y&j(Y>BMtEng_UmJwim} zVUC%bjm5%ALB=WzY~3mD3Exnh?Cz+4n2sF~x8<={D#zqqLqjIM1MdIwBx|*vd=^tp{vs)Jh2XG!^g}#Q9M>!VQKewV+nS3G_9uT3OoOO zeFaUJn=Gqiso>#|K3_YMI!vlNVuzpG$0or2xk&Q@;K~$gB?6;`yi3vj#eK_Hx8F`v zJN=%_ywWg@1oN38?}1Tc8!0(Smt$O?G=LE&=&^pFJ_@Y_8b6wH=aOTL9e4yL@K}s1 zfbh>e?p6JlPFen;)426aMAtAKV`tpDyd{^o(}Q8btL3N1;UF%dL%#;y0gW_Q@T37~ z7_)L(B4@6-w>}60=bw3Y1pcG9ue|p4{K{}K@vjki1VdKH6B*B9x)OB=5zLL2RXg?Y z1v`4)7z?&@kWK!$inc|_%ISO$n%O;jb;M;WoQx$-w%XIrRiF7EKh7i+R}`!hed_>C zK;l5}hYea-3N=;{EUESqJ#RJxFtp#jd7Zv5+i(emyVPdjXryrpeK?~SR;?VCd=r?R zW0Y{4`s#+EdM6_f2m&tvbTBygnS<9_c;R4eh(iX2@*2;m8dl>&=wCN9@*Z}@^04~t z_sW<~Db^(9ue~vH*h)6iUv(j5ELqmL9Q(--b+38T!{hEMC!otCz*tHB)yLka0$djk zf{;5qx&9GK&IGnzplOax|F&UCvYtoJ`WL`kW@#(`m0vjj@WloyU3~U1ZC8@Rl&UZ& z3L*3UjJep%$u!rfHs{yVE69A`tC<>vZCg!V2W@z}hS&pXU^^{0`rv(X^1J&ZJzYVg z&~LL*jDKjYa%lDS8fs_CWUtmvE_&$Sk1dZT_7$w}{%8@uF^D%ux$|my^Xk(Grrhz( zYcn1XBJcN>AK#56nQ!KP!yz>r*3YR=ocUIVYVjIBdP8WoG5qL4pZjO5z%ygdgwsAY zzFhN+a$UKU7EH>%5H9)eqL=!?P#Pb2BR*zAe1M5d-n1L^cTe*E3`^;~C|xQv4Q38a zT83o5C9k!io!xM8-#PBj#q)xd*0yg$)dE8>#pA9Qv9{_#-P};#mJ!hgk=!T@g+}80 zwY!g~&7Tt11v?UXC$@P}P2((3QyNJR(9{VhW7~xqsrzBvpyqNZd{xROe!7TPAwtxM zQqTzEh`+boV>g{AnKyRu)SAi;$U*iM(bqM$N8WEua4jk%F{2L}HMz@e%h!rKfjm5g z8&WOt_g6=I$84 zsbH$1XRZ6BV}N;}!3Ki7c^ zRiEz0B=FKG5*b7Foho*1s5lp0ymQ_7-JL{N^3?6tD1EuCWnvj_9n9(2f7;F6uL$t6 zJKc+(S$wwMTB>oPjqIHc6PHann(H`TJpMz2tT<%G8r`tycC5F9BbhYe5{{iE-i^aP z!O1S1HF=RE9ff_nwzxNETJ7!^7KLf-(azblP18Zc)Er_r+$+0b;W}8}dDoWWsJ^b7 z(cf-+TS}uSUM=VYK-CE%DR1aC3CWxN5Rk2vP!Trp!2&0I z@BRkwsCD@x{_TBZ?!bMf^fiafW8xg}=hNW5MTO6d*K<+P%#y8&t3&c(MZg)VjIQId z0B7aJLPP%1+T9UX3Ko))7GI!&zK=q4E`g$0U&||H z7%V(4ZsJuN9cQ4^RWc^|s21#LYa9sf4~ETXd!EWwZzii!i&cU&IuiBeHqEk`ViIsSfMPal>kj;f_- zbCdIJ#>Q~c-MoI+0d=}PzOEYjRSmMpHrv<1a8*+P87k zN*`>|iRW-KB5RZqbsSV^B%&m5Gvs}IfEa{NmQSn+Ke*Uon)=8PEMTHw3t* zfEO(>y9ZYe6Rv!o#Id_|ap$)9xofKbz*TFTckIc)%Wr(D9YX(1b35}r_4bzOTaJ9s zk&Ls5h4_b!lec0HWXRmX?}^frAVU4;sGGug@(<|?z}hP$H|B^CpA!oL zLafh06d2}$?(x4q8=%jI9&TlbC4pnJ9 zI=6eYZ&o%$cUGB3Fn;vs)IhO?V4aYnMd z=6|sqhHY=w^t|zt^=+NiHXz zvV6RGQD-d;t>pI-_?R$ZROwFfN_5Dovf@PBpgB;uvN5{kYpinevNv$>i5Zu6esr<*5FO18 z>o?r3v~)i3@Rs*>m-Ruq&NWq$qL9R+Yv38bMZc4(Mot@SJxXnw%Q34xA$oc++@vxf zO&0uIRsG$rX`1dZC&Mqg8uvH%{PR21o{2-(9cUU^z| zU-wR4J69P!qkMWMBg(7u1Rae*W^dTcIAw83&v54bA;C8OyxggFjpRl>M4~atL;WN_ zCy(Vdm&5WnwNr|kFs-lqSiIlejcPQi$f#h&IAhoc3Y}PD=G&xm^shH!M$;&@#hd;N z3pIu;v9-+*@l~u`bJojCU2X&w2np)G08)B<>5Oq?LaSYPtIII=9sn3+Jpce$RJrqa#%czkq1f-3@_VAZgU3pk!x>++2x4xM{sZdWsM$-Ownt;*|9fS7RI) z`CnQB>Yuj+yZ_b_Fb=!1e4a~&$bP4ub!vue8@ycE{E6l^H6H%hXXme=#=^$L!d^A( z_UzA~?9vS`&xCeHcxvRKc`>Zi>SR0yXE2W^(iSXyh><{DvKNL9+IfOB15yyKSlOa8 z(OkwxmoJ7kA8Z6KJpG$J@0aIk6(F?jSroo&I_vYRjn&t1iomGjyc}F9KM%~4Msbj< z;;Tlomgg{CmfERrJU$fO8vD8SCtP=EDe0Mul$tQ0@b$oCuW-7>t{nPy)e2VE!C$QP@Rl$@ z`SX3HudsZkeuBhy3uK@EYS6fSY9089C4jT&zy4KwU}6P zi$?edRI?tg_F&}e=rm3R5~37hISn~zd|^~UqlKg4Lvy{p!OuT8;U+xi=?0DVR6x+c zaoADaDbx-I|Col{kopL&V=BLH%VoDAqTKERFy4FCXo5@jg%;}#@1CGy?uqvg#(-)2 zjbw(u#(;a`kF z^J+ir>}2~6aMWbX`}W$b@YK`dEFC%Uc(KRw^mYnKS~A=$@>)im9=xZfd)N&*CM*bU zJ1Zca&xLg!JUa4($ALnU6v6sRp5Wsx>I@#bJyS-lw*hk5y-m~mkG9!JqDfS~!vSh~ z(xQz#T9WH^dSO6%l2z+R?_qO)48`1%MC9Gs=v9Ttug zXF2wc)W9{WrQLshX_pNyaBHY;lG5Uw`BEf8Fzz-5FICNH5`?FDbsVAPmYtzJBD18C$}qY={(O{s zU?-);J3uX2STvb@x=emD^SQh&2Y&A}*2}uyGC|-yaawpb@g2bIEuH#LTUnOkvi`L1 zcHfSjX+5lHoTc<7E7jT6UjzqgSSQ_5oOmic94CzMWg^&}%NQ0v{`r&9eEx5fBmJ$x z_MqEwvlFo2Dg$gB)2P@E^X^A)@r=7w-tz6C9VEV>g=05t<1wrScsnPNhl6^U9Q2K{ za&Gxl&c-6ga1bFi#<;|Z%R}S|IZ&w?{FVwTxhFIfZ2F@lafAsEuK>T98){;}n9(OvvF4Cv zmdfDLJvTUIqV>D1cQuuqH`%(*NBF5<1Y(IqYZT}C?yQQrFtmy#@*Nez_gLZg&)8#H zU<0RG(4ne{u z7P2(Q4$8Tt?!b`i0#PrZpgs7=SmTmevhZ~jq8dJqQ$;EG%GO>;<~uMYx!!g3+%QqX z&)taTWg>>MtyBF}eV;q%U9Huwm%|K(wB=@JwCDc;KAKrqok{y=Hot%Ydsyy z5+8~4(~jR-9}W+yDv3B+V>yO4Nsqu2SC@Z+&&_#Kp9k?Fu0WMnBd#0w4}J**1UtEY znc7^+D9_D$D0EWDd1l>ufrpS;4nPp@k58Z1SYnjSNL&JG@eD^RP<c9nAw&O^oV-}Ja{?lpK(Nny&D0*A06zC>+RkfV8 z#LC2Xh&5(SuSS;mje(YUF1dw`khb#0RN>$?ee>H$t6;r~=AUJ^UJ$$)0}kXEY=e4Y z6{Z?I^OkvG_e&~{akP)N14wzG+zkFNFyZzV`Tpu63bVM^ z8SQ^HKlbZt1m;HzyB^p9Tn5?()EKm(TJHe56R15=j^-DGn4oB1cx$_yv(@5g{-&4j zkw~qTwwUp<>H20&?m2W;J0CJTRTjrhn!^V_DYOdcG-#{T$iY2P-qBV@wWZ(;(^mEV zAgoPpMGI37#Kfm(Z(dr}SlQ@f-euka^kLGC>4CFoEm!h*>N7}fPDS9BD-92{3a3FE zvDmt7^lq3=<~LVmutHU5iP6%U;T_R;p*=Y9o|I$EFo+!w> zKzCWGB}Zvv&frj{_?21M9iZozIUM%eHEn(rvJ8eiHFhHoSiI8rk}l@o7`3}zb&Rjz zQf|dx8DL7h#VjYtya|fC1Jp@$kM;c{LM* z>vwRn(%T-mk8;1+(rt^;y|wcS36zFQ&2w9NBJTj-w=pM~NlRbtE;<$4OpwdpM5_+A zCOldsed*?_iocej`Q9I6$wAe*ctT=t*RcOF;W+i&C8DZ*rPR`xT^q+A_NN$zSyl_# zj4@vO6*@m;ah5^6p`<*bb$lZ*FHl`_(J&fZGLdUGBE5H3EJoBH9nd;IZq$Jhdyq0{ z9J0u<^A3sTdGXf^Po9;@H(r@4bA8W!2grWXb&^7S=K1{szs{EvVRe#8c-r!9GsJKW znKVD9dzL}A>G}0sc8B5);Jadtys$k)XSFMx+yPk6z;khdvF8oVf!W^0XddSa^N}O1 zlf52obP;NpPUN?$tbgGgdVS%l7ldhT=xF+z80ATp>5f-M?@inRez{kgOq@5W?{BrD zg<2DM8pGNTZc191_0v4w)C9Rd@1IGAAwQuvNL8=}0jQ^$d_NM< zc&eYff6{3rmV?tGc?Xd2GFuQc54yE&JH14&Eq9!HHU(igmz6m00KzX{N#~m6?57BT z4(|X{UVfLOs)w32A6D|0d0o*unX{*ux6Kwzk|g`HlcUpTsZAGumGJeG+u2wNzaABe zigpQfG+ste3-BaygtY5kVrvx|_{yV?=eK+J{wDv`NZ2te>lTM!P}+XloWb?to6f22 z@ro^G@2knLVgItU_#ba$OKS0oYy8xIrHo-5fMg2JZs9v%sFVp7vJ41>{C2Yn04>S* zCA+aw1!p{Y%B)?k?W2~Kbr!t)Qu5|a!5RC!wA+LmwHO4eSFZf(%q!!W2z;D(wsxAvc%WMVsR$i?;-WZJAwYY$Ipp43U%B@=_QR`ujbGoHpDQt+K6&Jef0yq3wo^ zOBuKGs=+lP-bpdVhwJMV2>&Eb8ugLp{&xJ!w znZ_F}5NblMtOS8lCdg+Jeu^VzW2Br+3Us*rm%*Eu&5~i-eoK$#TG~Dte$S1*4_L1k z6#IPcQmHc0$uzS5^Tv0)AmduaQcWd@An3G4l_+cIK{UMmV4ZW z^enA4s)8e{bSL{+*{4eZs?e=+HB#kX_G$cNSs0YTAGhEBz#H1n6BIF^1<9_f5x@jD~XybVPXOOL&RqXp%xy@V_ z7&P!ZPJXyW$qQuk)rHrL!TS{(v_t*$S9kVD#Bi*LWHT(;1^@dMBZ$(uX6=#g=167i z5F+g9z_?ajZ8T8`?}Jo1Z-nT?Vg4Q98&i^-Wj42?V-zya%U!+pc};TcR#Se6UsHH7 zxhORyr*3jowJdm7@D~TII#C!7m@ZTKgID*mbBkvxU%|KBbs%Uk0$;sdun3sRu0^_uEtf4jn@Dz= zZkKT3cz-*YY0~={vv4xn(PYYM280YXO+=(h4`maZR#5b_W~P6RY!-7g_TPZ2d8lb+ z1thBisTlz^QM|NW>by_;1j*KE`-HHL!7geC`w>LrNJXyWTGaKTlw8xr z>|243@(ds&0h)NcFva8Dn`yr>KPD7f5XC)w+liLV+L$!kI}S7PFnx?mXkUx1f0?L1 zYFC#j@5X>u7+4ci%{S>oZ|0{(S?l!L1|n)yl=rK*xn}IbZxsAuTqk#V$i9VE$hqomPWw%koEZkBJxNJ}M<#}>8wYV*j znThOLOCMGHc|5gV;UqmI5Fs;uc*9{#HRMqDUe>v&zW-ejXMq}_qRV4l+tGujc72Ps zvFtnq4!Mn-h_O>6lwX(k-On@I+V(VPPH$MbXW2#Esaif(rv0%znesBAq^s~C6Kg+u$Eq@ zdH3;?uS#b0W7DnS%_VwtYfT=F;MA;K`*De(C}FDkC7+j}Q}5?Qa1RKdt|{7D@J^SP zjwZ3idqK>V=4(<_)g#r)-zCjP?>Vsy(hl%W9`oRf&)>fOr99l+X`fNfS!8Z@xxMiFrtN#Rm z7r_Fe$7}CxQz_OAoTT+X*_=hrQjaX*NA}Mq`V1OS&C$spIDqzu;5lt5$vJVhfb@Bd|@m4s6Gor_aos|n7113IJ^<$;&3oz-s zKM)|^hktylJ$#HIsAML0A5-YyV>IQB#v4efdBHWN9CGR|xv`PIN8_-ucinEqv9U$^ zSkaW++NQ!9yR6}(waFJ{cisnddtLA>G4FM$;Pp}dcjff6_N|I5#`9!74)nUA*5qwPVR=7gyERu)MWP`rLm@Tc zj3YwLmZE5iJ4)>iK$a!Dyl9zU8KmL=NmI1FTQFWL?WnB|wU8%gGGG6>UTu|As+cKcjR_lV&2rfB18;1*%l1*a!=U~i)l#EDV=qzUm6^U`@E6|QW#jrj29|9D8&5?Y*@I?0N=mh$A$iIWU)4|o za(WR08Al5$Dv}5OPU341>mf~UM1SPO`}FUzzlKZP({xXfwC0Os-7%Pn@$px=s(Bv9 zroIG)*ByUi!F2$)_2G}p+P@8gCK20Jba1vzdEttm(uweb?1AQ0@lT=H6rKnRUxkZT zPfQSnA@>6z>mDFG;CI*$#g7hEGD4HFig0=z!EtYAi#IV9Ty3$1rTS_{=mC1YRS=Pi zlLm_Z`NQya+;N9{)*a(kCjPZ!n#SKVi9nIE*9U;dUr2A$(`TXTV|DHHIWh_$li^04Muj+`tfz1|}koCA7Q cuu&N>?Dc?b3OhCtt;FBC^0%c%sJr=p12B?q0ssI2 literal 0 HcmV?d00001