From 4c84b645669c51f62855141a457d6cdc781a3633 Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Thu, 3 Nov 2016 16:01:18 +0600 Subject: [PATCH] HD44780 documentation (#262) --- extras/hd44780/README.md | 119 ++++++++++++++++++++++++++++++++++++ extras/hd44780/img/0801.png | Bin 0 -> 5413 bytes extras/hd44780/img/1601.png | Bin 0 -> 14612 bytes extras/hd44780/img/1602.png | Bin 0 -> 13625 bytes extras/hd44780/img/1604.png | Bin 0 -> 24946 bytes 5 files changed, 119 insertions(+) create mode 100644 extras/hd44780/README.md create mode 100644 extras/hd44780/img/0801.png create mode 100644 extras/hd44780/img/1601.png create mode 100644 extras/hd44780/img/1602.png create mode 100644 extras/hd44780/img/1604.png diff --git a/extras/hd44780/README.md b/extras/hd44780/README.md new file mode 100644 index 0000000..519bc92 --- /dev/null +++ b/extras/hd44780/README.md @@ -0,0 +1,119 @@ +# HD44780 LCD display driver + +## Connection type + +Driver supports GPIO connections to module and I2C GPIO expanders as well. +Define `HD44780_I2C = 0` in application makefile for direct GPIO connection. + +See `examples/i2c_lcd_test` and `examples/hd44780_test` . + +## Display types + +### 8x1 + +#### Memory layout + +![0801 display](img/0801.png) + +#### Example + +```C +hd44780_t lcd = { + .addr = ADDR, + .font = HD44780_FONT_5X8, + .lines = 1, + .pins = { + .rs = 0, + .e = 2, + .d4 = 4, + .d5 = 5, + .d6 = 6, + .d7 = 7, + .bl = 3 + }, + .backlight = true +}; +``` + +### 16x1 + +#### Memory layout + +![1601 display](img/1601.png) + +#### Example + +```C +hd44780_t lcd = { + .addr = ADDR, + .font = HD44780_FONT_5X8, + .lines = 2, + .pins = { + .rs = 0, + .e = 2, + .d4 = 4, + .d5 = 5, + .d6 = 6, + .d7 = 7, + .bl = 3 + }, + .backlight = true +}; +hd44780_init(&lcd); +hd44780_gotoxy(&lcd, 0, 0); +hd44780_puts(&lcd, "Hello wo"); +hd44780_gotoxy(&lcd, 0, 1); +hd44780_puts(&lcd, "rld!"); +``` + +### 16x2, 20x2 + +#### Memory layout + +![1602 display](img/1602.png) + +#### Example + +```C +hd44780_t lcd = { + .addr = ADDR, + .font = HD44780_FONT_5X8, + .lines = 2, + .pins = { + .rs = 0, + .e = 2, + .d4 = 4, + .d5 = 5, + .d6 = 6, + .d7 = 7, + .bl = 3 + }, + .backlight = true +}; +``` + +### 16x4, 20x4 + +#### Memory layout + +![1604 display](img/1604.png) + +#### Example + +```C +hd44780_t lcd = { + .addr = ADDR, + .font = HD44780_FONT_5X8, + .lines = 2, + .pins = { + .rs = 0, + .e = 2, + .d4 = 4, + .d5 = 5, + .d6 = 6, + .d7 = 7, + .bl = 3 + }, + .backlight = true +}; +``` diff --git a/extras/hd44780/img/0801.png b/extras/hd44780/img/0801.png new file mode 100644 index 0000000000000000000000000000000000000000..0a81c09e589bada151cae3ea9aea20d520cb3e4b GIT binary patch literal 5413 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 literal 0 HcmV?d00001 diff --git a/extras/hd44780/img/1601.png b/extras/hd44780/img/1601.png new file mode 100644 index 0000000000000000000000000000000000000000..429bdf60bf49a0a346810cbce19d00b19ef0bb76 GIT binary patch literal 14612 zcmdUW2UL^Ww(hU81w;WwfvpsybOBM3UL+!jG?6C31O!2)cSxiu9i%rQ6a^6!0RaIa zG-;uVNC_Aq(o2BQdwDB+?{m&Q_ue<&Ib*zW-*_2=LH=a@Yt4VHx#pbTx4wkj)lxli z?CdcJf=;O2R=x*8G)53~D2nbd_+tH1Rd|9C9wXfRqE&SR*RT74x&Mnu%%g59r^L0&2iA|1BhZ3eGhGvepmcSU;In54YoP2e zP!c$Kus*wZpItx2O}`@DN4kx@V_REWq=P+@&!Qi99Qax&pXJJ zg8iMEgB^nRJfW2_=Bu{Pc6V4!+qv_QX@XS`yk_}Qjgz;x0taIoV@yY+&+Zua z?k`%OWqzM~Zc)eW?CkuR}$czmlx{^;yd3xB$toSa_%``j-WJs0)LiV7jw7tHXF z1hQ6kw~Yko~;(i(~7r(5lg8ZOI9z1llJFH`37?v!_Tzobn@EoOOw;kY-W|-T1He6+4qjfuiR+Pt6E3->VthA`T znzB>v^Xpue53Y{w!b+|uo`YdY?lRqr4!m)mL7u^--T6>t@Nu6_q11g&=gSSQL;h@& zcD9_Si7xac%jY``P_53#TvLVgGUB{H|M8=Ki!4S7*UyGKRjMZkJi=rm@+7z-)jNej zPp}44vD>I$6V#UljN;J@2P>c59g?3j@Ajq*VTcYX-b#KI{acRJ9u{lRfaAcb`&uPVm+4XS|OAB^c_ za)D{GXhH9XFc0}0FUOov8%GT8;D|NsdZA&ie(}I*xHwjGivvApZPe#fK3LK2e^Kmu zQes<{=O+TWWvV%I*niC+xA*2T>z7FF+xY=;jrjy}g2f4mCpZjnIwH}yoKe+q#k{*)!!?;scZyL>D?lvP^rPTku z^pAfz3G?93&CB%bCm1P6oei%uAG~P=vnZtXd(NEEJ)>+Q5NV338t!XckU6ZIVAK?r zW{S!)Se|}Nm=Ff@l+*R(bXx6jNxwhhw#D4Id8=kt0oU>itc6imyb?PS7Y;5U1 z-5XooHh$R%7ST5bxvn^5A>~~dM^bmgw~7i(nj{CK`Atk{IC5^*akE20=$dwRcVc3q zcMZv^q%PoiP`w+j>VarUcvZ{B9{6y^WxN6@9UzWOX1v3Sl$4b0nrb!<98ZU!Z`+W~LU5q3!d%wtO)3hA9w&gh@Z%&lf^ ziK>xj1DKclfydtJY!6p4Cuj;AW$jwVnm^@w~y)FhmqCFk3Fpr=ZxDeNKxUP+}*8w#dHJ`P#$1=cTbJ| zV%eH*a}{FqR5=qv&}3VUit22((e31^hPkseS;Edezkclm+zH_f6+vIa+9lOral+Y| zNk3ZaKPRheX~f@l8VbWv@RTo%eP2
}4@6ZnyG+Hv(rR+W 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 literal 0 HcmV?d00001 diff --git a/extras/hd44780/img/1604.png b/extras/hd44780/img/1604.png new file mode 100644 index 0000000000000000000000000000000000000000..ac17ba1280e3c1829dc22b8988ee0cadf9fa5ada GIT binary patch literal 24946 zcmeFZcU05ew(o7{v4IT`l%Rm1(xix#04gFXO+@L+OfRrSJ1QR;k72MB0XYae;@xJdlcZ_}hxEaHNzmi|p`mHwSXMX33xUHvk za3BA^ZQHgTym{l=oo(B8S#I05qyLW`;7nTC-bnCgr`Oe+cmMd~kD(v>W8iS_gBzw^ z+qQA)f`6&oM_8%G+qRwBcJtbmyS}NEVcloq#GuX1S>IEKP^xz{F0lS2%$A+@h2I{X zh~>rF?iYjG zXU7VJ3lgqW!cn|CLz&iro8|BG!n6Dpm6d(ER!d)Z-%C;pT1hoz7KCSIQIX{Bpm>iO zf@$B_|JgS7<$V0`gV|{dUc%fQ- zy;oh;`*~pS8cA@oTX5YVt6LEqp66e+-k7wm{q;^-Kv`35adEM3sY$wa{;Bjyl?se;F zw7{u+>-7(X2j|{LSq0LYNF)-O>|&YWfbH*pIpy~eeQ9-PgNwDEd?=KUwqi2hHK1K79rnF5-WQG^Tm85r z!vrCm&|<5WfeV=hpNR=u!HoAF!r&H#l#ZzdhJXr5ERlEvjW=Ag!R)!D9`j;T!ZM}x za~u&-W+E}m^ykh!EP242GG=}81I#7mBgWCtlE2{ zn0TNr_XtTwZMD=)vdO{phzjqCoWsc)p02%NbdyIyWi9kqH!2^FtDDNkOuT$&m`ph@ zn=GHA+jRKF%7r13(M9g?JpWCr$gJ^doM(ZNIF*p~>W)vGj%$a#7ZifR!HN5k%4rsR zix46-jy$p3aLmr6q$DTRQ#vw7omx`uRLD#-f7{$%J`}EZrf)H5<~51FbP7|95cwSV zV|Bw@SpbETeRLw``rzk#I&XdkG%MUioGr^!dn3bR{?lLGzQRJ(tv8-dpe?@Bj=rAt z299^Wm;%S0Fzs_LEt%la6R!9D*zc@>!Yv0%VM3j*1>eFPEjf*}QqU0|Bn!Ein;#w` z`08X$4}lZAZD;O^Rz+58)#QEX(*(70(rVfrJ1OxYDyP>;gzR6FxKmW~zOjw)ZnYaS zNBN>^hTXKX;%KY&H+#SO#3i=#l?!u3MR2@uY6w7s7P^KtsT<|m{CI#=vLNqt^nDBA z@tY+H3*O}D0<}BQ#rL67No`9W74iXtUqFe3_)ty)Lt#$Wj#yb)g@xQky2oAN|8yTJ zD*A%Aw{suykcu>Dm>QqBj)F9vp$T6d!#7ezr^~)}>e+qHwL1BWgvtf1pC_9_KS^w4{A8@qyxtnKu{U zn0MhX0wr*Ph?&#FZkJNmW@lR$*L!;nUEsI^qx|5y(HZZ`;lh!2et4Tw-NM4c{B?+` z|Ab%qceS@NW!RkBnwo-s=QyWpq7Bun{0*wM3Mowg8f4Y5TX{f@)sHD8r|hav)i5|g zMT#FYS0K2ROG`=Z34M&X;%-mHbjX*o2w>D+IKC?=pwx_8J6)!(a9&nKwF?Y0yRhst zB_%0IKi->=Fcu!OMK=waZ`Jcw#AzVI>ru@CUtgxCY8`NHq?|CQ6T9jGYcZi*I9Iyg zTDo<~!wi&0(@t*U z1<2%|hJ|wG3XQR3Z{^5<%`&8pui)M$0Z{7Ypa}>dLZG@9pufx8P!Rl;yIE=CPEs@;daCuiHq0Hih`lmaBD!5PhBs7 z^61w_iEyYaW--YR%ny=D$X&@SQW(6=Qn^Tfcv<@#r(<+eVsc^c%%6h#b=B2(p&?EU zz6bVgfI%bYUN>rdmp8F7wpliTa3Q8SR2j?^1WVmq!zMWc^ZnSY)ad9g&)K6q94J*# z3of-J30>+t{UA`mdeVzpS{w3-@Ys&U($^SSvA`qSeTe+-u?CQtv*e&K}iXc0bQX1W6?C5N#!6nEu9;ZIMFh) zd*>Ok+me`u_CC!)c+{llx!mnNkOOD=%-w&2xzf2*q9VbFpWSYC!c+5oSv_Hd!=6qulAk`=@<&KhaujoGOX1L4W6e?u z({e~`qHkQoH9r}uNj(^$!RHyL@+oIsO3h#j+F1Bn_7cmq>n7Aq+?3ZTLbCLl?XNui zG0c7bxN*s%qe*)4$dWV#$ih$jMIUi9#rf}jnnRXUp0b7aimMn4Ca6^Lz)g!Fp|vO^)-;RyWeRp?|jX` zkn}Hu#l$8hf`~Ydx`Lh$3Q^0DPHMA}`Bq|xQfTB%IB$jtIFzU(d_}3-x%4Y9M-NOe z5bCCp+y72mBB?EHe-zHVbvi@N9E&m?PiZZRvmo7e zOunp*<&-n!orzS1pzK(CV~?>#fO@vQ2~h5oqNhtLkP3{p>jE{w_4(WI%;Q>)Q%JGqMxf z$DoDaMD9LU=nb0H4tqQGOgn@HGC?Ad!Ti0Mmhrv~v<2U2G74PH9nl zy+WZNWRp|V)Ad9XV53tthRKA``mwpW!hYu#%|{nZBPO@Zifj7cxCXUcGE!6JQ#z`u zs`{PnyeQ3Aqo~NLZpZJVqwWeRsy?2U1**w9b2M7e=;)%&u`_V4aE-17(S)16^h_cG z85kJo>6LJW<8P#b7c;R;>@Zpq<+J3}jjM#TB1F`>riv*4%-) ztD=&RC)bMy6yew5Ef;aeN*Wd9_B6CM>X~ov`QmOMTK4Pl>S{o;&Nxq$X4SCN2^mXG z)HW`?fGR%4#Hc$-x@YiNN9#NGT2Y|S)5zUU5d!x1s>+s_P&B!9Nf$c_PimJauM)B9 zyW`C$!FM#qs!tz@^WDgrxO!(2F5bL%%;I7EE6`)enuF`m#753P@l&@|mgF-{2)Z7) z<@>m-Co8TTC;{mEqi+3QyLkCx1xB0B&TT8X4|T4#vPD3zr^605Yi?BIqjVrKwtVS_ zf4A4d%|z?BNAOW4puNToJTP!2Dn2SQBqXlyNt`BevP$=>-8c+$oHM+@$OU5pOaQm? z6IL_oZP#UkpSxl%wr+S#!WaE(Ktr^(war(I)L^AD{D27*-mvtPm#7!`QvU?Z+R{=N zKH}tA3TA@Cq>tR@ixC*FToeso=7v{7{1GpyMU9Tx%=DJ;23=iiv*EjEmkv#zt#;KKvJI9J5 z#C8j7mo`5v-o<6mNb~9_ij$y45SE(=dtf;Al6hukv|#R;vhmL0phouEMW*f&za@s% zBd>AHoW3H$eExk|leq^bR!BUPa{klY6AVGN|GIK$WjL4zPO6bioda^>n%z%#`Au2g zXtg!O)j0>%SmooZ)qD}stVb5}s=sy@^72Iu-!eO(t8i~j;ZQ=_wfJy-Cys;ZpGS3~ zT!W$4dD`N57p$aZ`G)jY2Kbq^qHQt-E$kWnM*%UU=7x4v)1~8^_#HUUK{PKnI;!lg zk62>cWT0A-it1O|B7Af%NulkmLOfmde&pUhTgv5@%CjWgOH|Ewrq9Ix2AEt=KO>TWg%_MJfL%g@!- z(K>^EU4|2_Xph;Eir!J9Y^gzK=km*g1|E;$N>#I&HW6Pk_&w6lVT)+0|fdA)G?ssXKQz?j9Uj(x{Xr55?Jw)We z1L0fabHLin2KF5+zw>?FyT)|-ahgaZ&Vw7nr3iVKH;I1!sw3V>WaFY^B#Go&R@rQ8 z9N~Vx@I0_|k^9faMlNhkma%1BvDhOW_Qk<<=vpox+2m&F&FSu}uZu?Z#2YLw|H+re z(5?W+M8rW%v5J~nZEdX)G!9KBeK@YtcHJnyAEA(tP+Ro;1uRrcOGUZvsj98wN#LlI zFrUf?k9Wo(6jEAj<1u*!{HUm=tDWg;zVl<_yQDZHFSdvzd0+U_IQw4hxHFU5-MiV{9P%@0Ou z(?-tg7Q!olcN!E_;N@}EhiI#RIwfkQF~0PegCoMIo1mgn_q0#Uzu?}#aPo7$+%G#> z6D}QZ>t`p%WD2=B)mhyQR8?kU5nr`eOICp0Y}IbjPaU z^Bc=#>&=zL+Qk~c5?V}7Nh+koO!+bW*S}q1fEE&5`4+CW(v5-u#L^#QSpi{ms?gTv z9@gbsP-bJb(62FkDC}Jsh2Cd3`(rxfVb}m#&Em!?t!{B7Ae?hNX#8l#Qa?JF8HWl4 z42I!1mG-cfRf-N;tQzevt>^9ATwCr6306p1?-*T+DeRIX(KhC2(5|Z5S~Y-tHdyYP ztga18*9Jp+lL5Y;=STtbDkw#$;F^tEhOrb<69?CX%RzKMzyR?{IL{9_%&UyG2{H8z zI*Kdp>jIQkAIed;HYvS1i{6+8k5~>5Sqkq8*;r66|9tPYUT%Sr_Bv$0YT%ap9 zUSlPAU=RC0ns6Frjfelh9`@Tf=b1n4`_U1B&ANFn8dUTS_|=%>@UHu1wAEUgpt7bL zShSSWoWGyy;$>5^2Le8a*?jl`;Wiz@+?zNSb%1TP-SXV?`(B!_X1HK&B5i5 zn)Dnx4~lG*|B{6!Gb@3IQ$8@`JwPt?PubTtS!9&oWH`D0CY(!94Yc1FrXge6FP*kJ zOYI{w>uqdAi-lN$YVPvAusQ8!#Vn@TjKWdpq`)3*KV4AMgkr z(GGh)}_qXfW8^sBXBb5Jg~2{>Lo!YXNNFHJD;BRO_^@%GjD0l|u*c^jjt|xNhb`&A% zZH?o&?ri$rn-!9zmMx6E{enr=^y&6ij>1XY3t>Z+oYfb z={;-j$u2k2t^R>=OA-3xHOuV$VWh$hu#!`K4Cp?*SQ2K+50A&!A6x;0eRlTzQf?Eh zo6K}`a}!cmJbu8xX2iaDZ=GUFM_9w#5OYuLDxu$K3P zzHvtz<-=O!e&V^U!m`;5>xcH|C4X*p%r|tCLPZ~9_F3CW*&7qrIf(*$)P-n!jXgaf zGI!!{4WE1I2)&oc6?r?=M3zTI=N9!VK1#OiQ6gb>$hP#KXp2aI^x%2@U!WJywYN>m zwp9q70KDNrtB-wK7{Mb=Ps@WgIuPr0EzD{nHDi)wpo|<>Yx+MyS_IB*6yJaO*(&?p zaM4NVF~!89dbHZzt&{!S||Aft$(bzMW&fhrEbSY&rROr~z_ZY%`;P*yLzEMS9 z_7541yOK;;ZL7ABdY7oJ@h)l2151-5Dne~Kum*V{u36x}*gU+LrpMiN%~kR^%2QTWtu2q-ABqDr&v!ba}0HO6oKX1C$99^ z8F+v>QauoJi6m{MgU?wums<$_a$QpkM)_wR_qR>Ib8WPxRENaIbI6;)ICAS>cjV|~ z#W-lsWp}tKL~Hq-@#NH3J@5KV;B>ASw>!a1E~b$eX_#s_Iw%7<^T3w(#4kP-xOR2( z{mklD$dAC&7gFc;dwvi30>CDjlrtom;5&hQDHFE#CJ+i)J-6R85gm04t5$Bx2V;I8 zqRLv4Z9enQ*G&rJeGEQ*4hS@4vl9o+HJn$B##_4`l6)%dwwBrAEMI6MQB3g`!5R^x zEAU6H+8Nry0W6GnslVjpH%eA%X#dEO&Hga@S@bn!jZfIvQcMGXOc*SU{0MkE^V3&- z=|XL|tY_+BhpS;;6ad%4e+E15?yDKlJOj@y(8~SXW7pvOf=|OE@j?IsPLiP$Ur~!s zTw65beVI{mA|^~wSW7fQ?k#MiJ;l0htME$sQOBr>H-hFrbv%&Bt&#GtAF2aU9RHe) zUo*YU4+j8_23|SnOjB1HY-J*0qdyCyiZPc`bjycczDo`q8YuWRpF@_odN0X6Y`!RA=13tztUcGwf;*C zLz4Oj3^VD;S8-L!8VZ~8{RO3g=8L(mQTrg4K@dw4I;rqpXI^re%W zxxG%TZW}j(ff4Pb`W{QTKxuB z%Tjup^fMR_~OQULOb=?bS^8P-5N6X49COO%38U3NmV*N7i)yezSgjyAIf zal?yfF33=n>M7npuAs+cO)RWDo<}1=m;3XPAsPRT-7(#5uEm5$e{m2ZCB)DoSiOgGoOOO8dkjRK8aJ?5)BdGohD0_Oiqrbu2_0 z&>2#|v43VWe14o4+vDlSzn^-I2{$ec_dix^zdx1bk9jiL-CJu4csyVjySW@tIMRGU({8(@-f}!-v&&qWV?e!}jvwQnYD3_Nj9Ub;NMyMW?jDB^) z9Z{nzP)EMBG+R?b&0bGfh5&RmyOSS|SzQmFh%8&lcaq>k(YZc6t@Z62B$!W@XEh20 z@*l33o&GUk^a2UcjV~o_DuU~TdE$ZCU7YEE=zk9aA(0ZZ0wYR`53~FQK@LJnyGBm`lYcI9ZG9S5Hl;YZ>Q7gOlIkLp4xu70EH&20wVxc^j2E0 z-if>2cPg@<+)b2= z`BU9xD!axDiY@n>&r{hVGS%N2;C$A^n-Jn1^s-Sc+fWoZzjZDQr7cd!3fkP_C5Yq*&NQKn z9}j>x3mp8np%aGxf@cBU1n@sJa_6C4tK_;3m#&39q4nV2UbphPi2{fGOT|wud>i6cZ6VQBB^;s;a8}MNuW!xWi4{%-_v;4?36jZ1~hz zJp@j}fO1-=e~pp5A?D(iLZr^M!eYSrq7UQm00WpmuoV5=-bUU2ErM~XSeb>aq5>S= z3?hg?+ESv+7gf;waSjmK!s)A67%<`Oi}^O**cazH&eq%9M&n(d4Fjo(An-np3EH;! zwrdNRw@)pANIq?mJERndEDWl%R%+3&9v?l2B@K)Z7)5JgXgNlXrDjfbS-^g@nspNS zdbzl3%FF3Jpu$TYJ9}>g+5@jPtNVRB$2k~z_OvN1TwPvUOZJm_*AW#wx@>sUxBZoa zJpWVF8|Y-ZWzZ|vc-m@Y?ER117a+W)W(5`t%X;r-g_Pz%ybM4ND5TB3XU02Hv!c4X zUDhHLra^}=cR5Rxtu3#=n)FQme6C3+`%TVUSz z#EVxxPbL8ENlvF;uCSm;f*zoFDK32+^7i13ctueECOu(PL`Hm#r@u-%IGHN1SE!rE z){F#)NEnC$pC4ZN`H`hHAncNJJMm@}8P$yg5E0F-a;*s6&h`k%~tFdYM;eXzIoK%L^ zC4+|5u4c!$qGlIzBH2sP(W9+VPOIlZG{j2bg_l2BD8)Pg%^`n(_r3#7I>GZ!*^i=q z;xP6}`oxN-LHfc)DN$=rWVJcy`vPy9AuLrzv?;C|u_d%&|3m^`Na?4VSX{JUcD@!e zPWJT?)OE0U^0|E3fz#ya*JPBV){-ZU;}g@mrfO-p)hnPCg47+qH+R@a{x~0UeEB<2 z%U}qeou}|tBCeu?$v|(?Y~SQrq4V9hg)kU!L&U4V$gm{Dj2G|$OyY4AE^^es<1$>L zY|0OKgN)3|a^N>TO?~5BYUb(i!e6%ZZECMMFQ1z$(Ja4z)>|1k(m{FmLFI-#cZVg_ zNy&Z(G_P`$#v!0W9jtA>!)xlh!(+7fnY_ z#`}lJ>{gOVAD{3%Gb;o?XfpP>IkWPHeP#2Sc(~Spgxi-2tQ*?Tv}NN2hiv zMc!(+Z}9!DmO>O3ntCUTRY3Ng=+gu$HU^`p-x(Op9~QSq0_(-4P5kLHOOyHOk+u;jf%_9`bDPJQuslLlPt=Y6bBWpgDPdKf%C2Lo*dMyhDU5<-IYd zIO$?oW~yPICf3Ycj|M8c%*2yRPdbPrH=WXO^D{4f=@L~F)u0>YBxdYWuR8hSrqg1n zeO^?%e3f9OOz>2+t0({7X7tH+UsJWSa7uJa&k>c6wwB)S34Eh)1oUSsATyJS7d)&D zBmP$B4{Y!;b}g@#=k4)APo1M{2{6thTN0B{zB(e}mizv6DP8fHTb~39d`>qe-$Us*frV=wAM92t76lD+Y77+C?WJTke;{eo9csF>vb9e4g zsMmbGf&1X)v!-lw6S?-x4`7XK>QHO6mSwK-nuAOGwN@o}b)Rk{EkiLYLfoa?(#xPV zZHvWUUjpurP-5G=UlU^#A1qhv5tY@PRvf3CA+HlEjjoEt!V{qj%hf=EaN=0owCW}B z48xs2Ri!>yS(XG1D63>3?`0Tq;cmBI$=s5etjSa{{RI$m9)^<+nG8&5?DSt)BQn9s zL9h)cm8^92gCn!&`cTi&_lblnN~gK@?2^nV%VV%9Mm;9$7l$89Vp<_01?WXY;|r*H zQiHRKvoA9up`XvV$Er`BX~k;}c@{|Wa+7d?P80M)e!ZLU?ek2(Dq7jhRraDy5)#ON z?g2Wku+lLjk5TU;@0zjC#0mzgXw)26h%F{EGiC=jm@c85AV0OQcz z@Ddn1@v%RSJE2n|1ioh+4K6b6Ov_%6HJi<36bRJeZ`ANdsq)IApmG|dIX zB#;|(UkUQE5Y#*7lVbJVYJaZ|8`2=L)~+tjQ2Q?7C(;u)5iFoXIZu4FJ2t8WuPN=j z`q0z!4jP}K7GyT2;=&PH4}9kQ{`jbE_iLJ|0(I*2AE}&2CtcHl!HkR zkKjO4TDClYq6@laz`1narY>nzXVk46hzY@pIP<8b_2H47J1=C~8cOr*?^+nIbFZc| z&-eD__qQ%o{{=~!Y8PB)eqi65gXeo!4G#^OD^-OA1-aIq5c5E|PGl z@Y4)^ASc?E*l2Y2!iQo9)-7D3kQ(I92gT*vRLn(%($w!kzord-NWO}Yq`8-x#pM7^ z6;Kh(^yXH)9t8eg)iC719$=weI1a*HB_oddh;xz3X|Wb?(*h$P>>!;($rmNe$8&ye zEB0dzS$8Dn*cx)UgkL+R!YS9=Co3u5*)~^omcjboAlK6mi2Eu)@x3!2jl?TH7%hd$ z+e-p*8|=CQ(~~otzM5jIQcCb&xpzNjd#NBV zcXn-uo(Bm&K1_(Sdp4mR{vaATJFL9?z95r|6iks&XMBE@>4X2*=tjYg!^$r$>t7`{xQeLb1L6g6!SYGZ$foTb zouGys>isj`B4wM1bxg_Au-3+bA&u;(#ZZn4-HgjIO^I)%9uoKHTKd3D3H;>A6l(3h8c69a+0q-_DjJ1-UF#DN8W*F`_0;FTB~m~dpI z@KDBfV_BwR5fVb@rGFMgmF2uvRun%ydi6v)W`E#8vk6kWd;q{7=9Q(PPLjGTu2x9Z znwx3>Tcy)%LfKI_h|D0#1f<(+i@lyD!C~<7J$MBFr!O9HmH=7nTsu|$?AmxEf8bNY zYFl|DwvdRnD4e9*pZ`hRUdYG321Cl=-iVcq!IUl@V)ABRJ6ri2L#XGU{*hzU=QF$W z^-io2mpO<6Nh}JsocvCGuGmJr-3eR-8`liF?@0=*x2$;h9sgmAZ9nFbtQX%Z#*}s#@wy&V2pHTJO(4t59+b>WJxk)4jI<0c zPgh0Srr6C2$zk@dIS&QJ;w=2uzCAR4Hl|%j`f!JB?pEV82g#XPuG8W!;~?Vz=wwIb zp~*TENg=6KWi%;OS-8u?P80LA_pB!8e zFtMH;ak@vL#Kt1MgW+r~bPI>7@BEu#H*vRY2xmAD`%t%g-2V(06cn_!uy{{fDYb=) z+SgW8m`Wu@zzqe!?Ae_8pk5pZ@jtuzE2MxJAP7j$PgIylK%l;-xc+R+xTLDC4$N_e z&a-TPP|W`Rd-JdYqZ0@AM4+Vo`LJ0JpAp@sIL=|Sl5=<%OW%8Q^(RB#<=KhqeCINg z1rWw@Dmu-MpMF4L6)4wiRU#ykuQP(bbrO(sg2aL(fULlqNQBo(gcIq4bf|vf-Hwe` zy`tvgm5OWoQBi|but1e!FWSrZY4WtnJ~lhswms(QdH#T@UCwW#IpoXorhQ9h6?J&N znWOQ!xw*W&ypd^*3(AlV!EYx81s_&fG7Xx%)ME%NA73K97HYqim6z_a=a4YZV z(Y|NaN813=Ilr;4$woZ$fp4VP_+(6ZR)~FEnDy^HtOP2TYO{jimEH`_a1A*pZ@-0( zOR8N!Km&v~_|0GXo8HsMD(=ab8P{*=TE_5o8$OdTV{fRDyaK8FQ)?5*D$2_QX-(0~ zE&9QLpodH!OP})FWLj@B0WB)>Jh;@GvEdCI`0r!g$f|p53*ZS%S`aNjy5?6r7A0>} zO!Q4RM&r2zL^3+;7v6FOO=k(NPqSIjFySTnG_87}lNP*K)!I}z=lkmeA4oUS;Rf=S zS9ga&x{-Y~(DKmgHa7rodN_S*L`;nyVZAw{Vcn{w<%#be zHPhnO%dMMhU7PLpa_n3xadh>#-$;U(KKt(9DORJ4?6O2+LBpG&@jz_TwZ$j@bw<^H zf>Qy^eq+@x(A_}_mwwgoMyqjcrbj5$dKYNtFFt)+?QfxF`R_Sgyt=FlbSy-~Pd}@w zVKo(%wpG&aEG27@z5$dnH`hP{l0upuNbecx+9!9Y>I*u@NY<=Q14X!h;8JB)tFgmm<`dMn_mKrbU)mWFO)SNGh}jD}mwBT!>qhHp zY5+Kz1<^Mr%|rmLZkpqBifBc^KGf6G14hh`E=D^xu?xI^4t4&PbReYtOYQT)4k+Qz zb7H=i-Rhkw0Wy_!kUcZ!t^A_^gua>n1ta#?fUx!esL9dMItwY6($~t%AoU4|aD3<4 ztEPXA+VKOdB&C4t;5z9T3Fp#5c8=4}TDU_?>e3#c(100Bu+{*bKSH5la}c4xt*gq` z-&7vNfJ~t!Yx9D{@lb%={fLLmN1nT+MA984klQ1z7sis`g#*bKKU4n5g+y!71R&z! zk2#hidjV3;#|rXOzj4^y_$Tm=1!uQZKnM91`CE>t)S}s0Q^Dg@Kd606H9P6YU`aLI zv#ap8B1aQ_$3)rqDt&!?{Oa7NX6_+~J^$@h4}-&7IW|Cm z)U^OYEw`l$@h*83?x&WiNx|o(q@XqDM{*Q3;Iham`3+oH6Rs z^u*Rei-3=m5|J_tU=N`WNHXY_+3gb%TEam5Vf%6W{*%00!p#3jrn>#5pX`$tKbZl9 z^Jsj+QP%y?`Zsv8tHKFC)S6AAerkt(!;jl5sp}Z8b>}m3F422Mf|5foQc9ICWKE zxb9Og_j*o54^csDyOo>2Bovhb4XTHS%<%&gILR)`z2ZF3pf(r&P%g80cdkJvm=Bdc z1yZrV%aK^El~{#YCSSxRx^jj$fPlNjX%KW;K~XGr)K~#Y&*ZvhH1qkGYn){^^tABP zE8Ki8muqmEyYt#aHBXC+K@!{SmNb`NJ`s#t{8L;hZ?~|6^+ZTg+q=xU7lU^{^ry9O zizP-kb#CPE?&(%K{Trqnx6xU z9)$9M(dYN7Ub{}OwgXwyth3R)?lT*8d=-KMy_s*Z$rMH&ESMU$3*S7uZ&i&wnyEJd zX^dME4iG@`r6|)sM8UeOB0%tT%SHtupC+9~c8bRt_`iZCt%!kWm0~{D88J7K(DeZ zC`qQRR=SPDE;`M_&i_53Vb{=+7s;z~zBf|L6^9My6@r#l`~`s?{06(z4&=qu4B_?V_x z>9Q=fT&p6fo+IW~5jq<6T%z{H4$$kd$AGHtTz?oSYMcsXvN;FHJnXlUr3BPHJ_ikW z^{`xlMu_ODwdW1ORgjI(?o?+8L&sg*fRUf=D=Oc61jqE(;8aa(iKyf!|2^* z!hPT`Q89oUzo5=Ur7b#ymKs!Z5lF5Tt_xW+Edj`@ z+S)3PA#+lgnzeIM>>C49TrHNlrgK*f`8l_9Y5_=P;rKBob z0i|;Y7}kMyrzE|W+1XN?L?xdYEJE`kX><>R@PX8&_1|Q-gO~ z2=}qGLNypL@@cD#Jxw2L@pO}qd76NY-~G^~Ygy9Y&0clRoAT}+ReV8r7yM{?dUFV& zAZ+{%wAnY=$BEIFW2$EMnemvTRW_fFwWPzyuCv#(thev-`AZ9M*mPdRV0mweEvSpv z{vW%oCVVfs?)!F!_oX{^N$z;Pc!c>U2au<#t)#rDp)E%(1)`*?mqn1Y@mooWl>j{@ zOZ9O(!NPXhk6_)Nay6@FuI5Lzb^!{|fQqX;>%re=&ihjE6<-K)lw>gSab(eM^GzDY z%k_gTWl23bFUq?Ku6Nat*3Je#)zBOZw2D=EO zkD3N}diEd`z`|K+Rsa@B0KEXAa+IG{6?RY9l&YKWRD&h?>EASiX&F5NDm=#f+wrj|3LL_mKSl$TcA#pYC^74O)?> zZIAge;8s2qT5kjV%h@kZHQnh1Mw&NJQ_iV^@FB2NNO9k{!=siU##Sw>lj)*xvhpdp zL?vp#ACUsJDG`zampzIqhTVAoaF?i)GV8G?E=~^el3Oj*%C3jO%ZI2#Lqi~_=FqZ# z@g!XJno%kWug-udnHy;SHWFmO46Bs=Y;Ev}a$pI@L?W!=ety511P^fHhp2m2+xnf) zj2=Ebx&&+%)h-n!rHabR*VyKOiMj;{@l{0Hr0Sqt5=sDZVPtvYrA2_LoUTByM=|mH z$cO@e%vW3$hpM{Q z#Ktm$wPG+idTVbQjXy>LBkTx@8>n_cEcp5N2f>o9xy&N!Y7s5U$L=@40=ZkD`vDor z(rmpIJgKXihyc=F=)_6Up}eMnUi3b>gYVZrzdyxvMMje~5GWS)XWbV&EyOhAD+e_=gloPLosAoIw{-#!&aamGL zcP58C*&)8&Y{lz;;HwGM`W3hnStK!{pgg=;Jujo}0H8a`1lc~j$>JfJ&uwcYV~(4I-vLIh~r>9TA>k0o$KX3lIV)ZQIVtz0PyextRT*K z%!q(fOW#XuI0R8c4jQu4LnOM1(Yh0eE|CFO3oSkZth+eAsxSCA$z65*2E0x;t2)YP zZAH?Z$IaW^RN;RkSTWQ7ujvtyL zN62ksDiu%4f$pKXRFerR-NUZ5U&uueeeV2t3AtA6{FX-OIc^@nWe{@Z)}NXC`Jx0Q z?(n%eYg*>2y-~73Fs%lF2(xWnOP1rIib$vDR^`AN<7s?day|b-8ORdbiHz6F%~E8N zO)o%57Q@3C&;FhVD>>bSK0d@1}~EstUBU6=lhnH2Y*W zBAn2)=z{XR&|>4q*kb95*!)|7f3X)vkn0*-_V!{E>2L7L1}M(A;FSR;U=i4mwz6@( zJEx|mCTY)t{()pot@Hym92$)#3EzVMq{Q(=Jv}zZ1%cj1Z-bvIV?ltk-rXJB>HaYs zIPlAF0NN@Ua&3y~1IT)mmMfWRr&v}!1%eL1dkDg#fw)&@0ZhHXEDNkVgLx`(3}c1X z*VhLQ%ds@uDbT(uAQ_7-Mfe2;Y#u0HXT(&D%SyzM^H)?HC=x(jP|T50(-EyDJya{b z%0Z1TIOByS5R;Yo>E1Yn3y>N_a;Q_|P(QW!q&+UAaiJRMHkxng%^D-)`_uco&b)T| zVu8~HP<~~_Y%0rpwx}ijssb-F;*3k4{x7rqOw2=M@P0dJH*h3labSxU=|Ipu z$%CvVncbYllhdk!aUyNvDtTyLQ|(oz(9zK?ps-CL;K%PBZzyFk!{V=N1bQIT6-nWFch?DHnP zEt;2W48ZwEQ(d6v+sY<)*t2uQOrL+Sv6N5N5lz^O-_CyC)2$SZvyqg=s~AC$(G6sI zbMc7sA%8jc)vm|DZ{PC#Iy*Z#({`)8Fnjpp=g;e{)*C(G@?{X?0Y(rNnSzTv|CZwK zeTUb>?hv@}2Yh>_bN45`hd`{mCH2!j1CXWg;_Z4dK)-$}p(YF2H?j?myMeUH#XIIt%-2HCmV-$4j z-beZ1<{o*xX8M$+g#|+4#P72z;OwmY$ErgfUS17bPkF$x|C=huFT5txKS(zD6I1{^ z%Hqoo?=B8ia73vTU3@%m0yZc$QZPSu(j`>iE+dcX}z_JvZ6-`~H71tpWo@`=N375=>_xV@GdH2n0Bt@>S_{IqS@tION6@%LpO zo;O~PBmVyMd-XfKV=t`#ReBpGa2Z!W`?tc|Tw))d{;TXZ;@~iH=I=%4fo)gDpZxr{ zk`uyqPoMOD^!G=zY_=<35?K1H++$-Vk2+1u`ZOV1)foH6J_IVAza2gRhjtuR4^KbY zdTkF5NnD;%teO@2-AH~Cm%|&-e>L-kh~3j;MAqL64VwLmi5aioR;xc+hi_N@BjB$x zf6@nEePl_Ny7s%hSXz4ZhR5oQ*Ze^~5>V-Y?Gr8>zb(M-#e}0nWTCDFAbtzw;L7Pe zw^hz<1de=K)=>us2e9AKI7sR@IjOuK-27Tix)J zG52Q_yK%R%BL8t`u|j^bl!!lIzoY(S$z_^;Fe4#jr7xG0pWR=L*pt-;Nqs|OV^uC= zxt)xz3noB6-Fk|*R8&&~j4@mfl=IPS9-d5Qu6#RZb9gR`JqZ3DAIP6y&=g!H;GV2b zLqHy36PV6E`GFg3iZj+J4x3A;&9j^97*r7D(|wzieIU9I_7F>PuRXW94sP|haQvhK z7q}a6sE#L<)00WoYKY^6u+?dB?!UK1+CQi3KGop3FuSz$nTUWWKV4)iK&PjtfdV)V zZ|yhva&&#}A%OZ?T=C~Ab8~JrR$5kp;Ehc!EVoJ51wOxVA8dHWdRV)V2C{MUfAH3A zuG7HuJG${JS3T(c-N)sl!K?ehPG{ilLHvf}=N9WWSL=XL@C;X+z4|VOGoaFXeEQRe zRU%Zmr!wPAR%lCwNL!U)f)^imTIyqq?;oN-{h3VWTSH$EE(W`!(edR&uDQLK`$#o) zbyVFF*a>Y3?1c9HQZ4=9f}c>}Xb8QDS6I4sX*>#t!zru<1&wZosxO5ukrTb^@Kynm zGU;cArCq%Vz3WG`!tV`t{p^k#SeM`v(CIv5Ij;Q| z({NWY+}l^DbJB$U1KJijJ>aNTXGQVFkw4|7!2rgPOY2s2zvS)}ko2OO+rn8Es>V-#?SqTmo>KpTUtRx@Xotr3Q z+#mc##c~2WKG*5RX?~15Gk?mKp~E=Ss4{$V1Cy; zfI~0rOoI;TsynZ)yR!Wwe*5gYapeD{zVCgJKX2zfpd2S~9PeB%$LUG1m>l^L*gV~- z3=fVnY2tllDZ668*+3A*4dk-JUjhQcJ=JGejcpE$R zq;RsI&t_u<8l^|CBvAI7xdx!-VchAqI}zBS+ic@L2n-&A&|t>6fQDk@;etOcRY{D` zsWu|E_Tqd`e8mqc8CHZBQcmT#ZlhW z?0QUG?jYk7{HNhh2L=C&e(Bkdcy02;x`==HGK{4(J;fDXni#UVZT`u1%l&k*fg6L0 z-|QYVsXBXNS!cq|ETjZg8`knAgvN%HxY(?Rt ze3*=-PFS`!@J_Ez;@{!M9+V32a9_%s%>FF6ZK(SC&Q7>lk_fl2fi=|u8@vU?xW}i= zAE!Crg`pDkcCO~o5h%r2EOIo=H(}nGxknHJv>j-yo$@lfYq(y$r8HGFBaS5WUo_s9 z{`sdn9;}*IVf${iJb5{YOpoGD>}E2}BYY_AaHN6Zd)nfm+a*C{ zs?TjJE-pTAK6udxqyMR?eL3=VT2`-R8Pl^xP+F~(KJ2=b<(U&fSY@93vVynD{CsFKS_I-5uD2Oq>mGzFsAmvm|d@LOhOebn5#LJL{fCY zy)j4P^bAnDO(5;WV^Xw9C_(7|3Xrbkdow2xidM`J9quw^8$K{$=4``FLQ|FLT{jOh zYFQF)He=yDyL<}%4x@Da?4HXqiJo}&?NjX?YV|2KyqNVrjHq+oCo>dovk-kRe>Mc} zty{P5HiPN}m}XTze6rnnHn0V#6E5sv+PJS_4Wpdn^}H1?f5!_EmgZu*<$XVkKjxKV z7gvGkSS^UoC_L0rmnx-B@4S_V&x6!4J~vdNz25jlSaq|RFr5_jc^rX;Yd-5H)@yxD zJdX^AqR8lI;Hg+t@@|jzbZNGh)o)q$SI>J?0;ZLg{W8>Kup2kB$e?)~93i5T2B!yx zrN29ktMBewp5W5(pabx&-T0@_#XHQK(-2|BWI@wFK1d!$u1Z2%K@FA}kh>>}NInuq zJgO%S-3HQ!>j7l#m=Q-2Hi#KH@@lQx^7jJ(;#$^AfGlfTGb%SOVR;cau+D|qH;a^C zkAxvWW`S#?(#Yz78fod53Hq*;zs>L-3l9&!@(~hLBq@!7$Ax&UfEi_N6b>;tT~79Ww=makN(@nez$-i^Ac?WvW0bDuB1 z%$LCeNJUHV(N;Xl-hAb_oVTKN#ZT!ff}V_-IiK95Y9S8=MJiZ8K|4ZoWLj!)Z&V=UfAQ6dlg`~Dtg6%V(UB)Ygxz~T4u@`PLEQPSL z;{PMyQPRh=x1ks8)KBTag&}uGL%2VTp+R5BqANX&@=maGesp@ZS}imYy;BQk&FYD6 zqO+*NhG;)OYYvR!9#ve8%}T~3u+@Mewh22VP&efN%aJhb3MsS?b!#-5ehh?i4Uzum sufkWMUK>YEW|(_DSpo8^b&G@K_d;(JmH*+Zcp00pA!)s2-Om001W7?1E&u=k literal 0 HcmV?d00001