From 9da05203763badc61fc9908db145467e8e0a8ac2 Mon Sep 17 00:00:00 2001 From: Tom Igoe Date: Fri, 26 Jun 2009 19:19:05 +0000 Subject: [PATCH] Added BarGraph example --- .../Display/barGraph/applet/barGraph.cpp | 56 +++++++++++ .../Display/barGraph/applet/barGraph.cpp.eep | 1 + .../Display/barGraph/applet/barGraph.cpp.elf | Bin 0 -> 18807 bytes .../Display/barGraph/applet/barGraph.cpp.hex | 87 ++++++++++++++++++ .../examples/Display/barGraph/applet/core.a | Bin 0 -> 92548 bytes .../examples/Display/barGraph/barGraph.pde | 58 ++++++++++++ 6 files changed, 202 insertions(+) create mode 100644 build/shared/dist/examples/Display/barGraph/applet/barGraph.cpp create mode 100644 build/shared/dist/examples/Display/barGraph/applet/barGraph.cpp.eep create mode 100755 build/shared/dist/examples/Display/barGraph/applet/barGraph.cpp.elf create mode 100644 build/shared/dist/examples/Display/barGraph/applet/barGraph.cpp.hex create mode 100644 build/shared/dist/examples/Display/barGraph/applet/core.a create mode 100644 build/shared/dist/examples/Display/barGraph/barGraph.pde diff --git a/build/shared/dist/examples/Display/barGraph/applet/barGraph.cpp b/build/shared/dist/examples/Display/barGraph/applet/barGraph.cpp new file mode 100644 index 000000000..3dc24b85d --- /dev/null +++ b/build/shared/dist/examples/Display/barGraph/applet/barGraph.cpp @@ -0,0 +1,56 @@ + + + +// these constants won't change: +#include "WProgram.h" +void setup(); +void loop(); +const int analogPin = 0; // the pin that the potentiometer is attached to +const int ledCount = 10; // the number of LEDs in the bar graph + +int ledPins[] = { + 2, 3, 4, 5, 6, 7,8,9,10,11 }; // an array of pin numbers to which LEDs are attached + + +void setup() { + // loop over the pin array and set them all to output: + for (int thisLed = 0; thisLed < ledCount; thisLed++) { + pinMode(ledPins[thisLed], OUTPUT); + } +} + +void loop() { + // read the potentiometer: + int sensorReading = analogRead(analogPin); + // map the result to a range from 0 to the number of LEDs: + int ledLevel = map(sensorReading, 0, 1023, 0, ledCount); + + // loop over the LED array: + for (int thisLed = 0; thisLed < ledCount; thisLed++) { + // if the array element's index is less than ledLevel, + // turn the pin for this element on: + if (thisLed < ledLevel) { + digitalWrite(ledPins[thisLed], HIGH); + } + // turn off all pins higher than the ledLevel: + else { + digitalWrite(ledPins[thisLed], LOW); + } + } +} + + + + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/build/shared/dist/examples/Display/barGraph/applet/barGraph.cpp.eep b/build/shared/dist/examples/Display/barGraph/applet/barGraph.cpp.eep new file mode 100644 index 000000000..1996e8fde --- /dev/null +++ b/build/shared/dist/examples/Display/barGraph/applet/barGraph.cpp.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/build/shared/dist/examples/Display/barGraph/applet/barGraph.cpp.elf b/build/shared/dist/examples/Display/barGraph/applet/barGraph.cpp.elf new file mode 100755 index 0000000000000000000000000000000000000000..33960d620a43f71a67c074ff4cc49baa46ad5839 GIT binary patch literal 18807 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 literal 0 HcmV?d00001 diff --git a/build/shared/dist/examples/Display/barGraph/applet/barGraph.cpp.hex b/build/shared/dist/examples/Display/barGraph/applet/barGraph.cpp.hex new file mode 100644 index 000000000..11ac9affc --- /dev/null +++ b/build/shared/dist/examples/Display/barGraph/applet/barGraph.cpp.hex @@ -0,0 +1,87 @@ +:100000000C9461000C947E000C947E000C947E0095 +:100010000C947E000C947E000C947E000C947E0068 +:100020000C947E000C947E000C947E000C947E0058 +:100030000C947E000C947E000C947E000C947E0048 +:100040000C94E9000C947E000C947E000C947E00CD +:100050000C947E000C947E000C947E000C947E0028 +:100060000C947E000C947E00000000002400270009 +:100070002A0000000000250028002B0000000000DE +:1000800023002600290004040404040404040202DA +:100090000202020203030303030301020408102007 +:1000A0004080010204081020010204081020000012 +:1000B0000007000201000003040600000000000029 +:1000C000000011241FBECFEFD4E0DEBFCDBF11E092 +:1000D000A0E0B1E0EAE3F5E002C005900D92A631A0 +:1000E000B107D9F711E0A6E1B1E001C01D92AF312F +:1000F000B107E1F70E94E2000C949B020C9400000F +:10010000AF92BF92CF92DF92EF92FF920F931F9325 +:10011000CF93DF9380E00E946B0100D000D0AA272C +:1001200097FDA095BA2F2AE030E040E050E0EDB70F +:10013000FEB72183328343835483BC01CD0120E089 +:1001400030E040E050E0EFEFEE2EE3E0FE2E012D38 +:10015000112DAA24BB2465010E94F6017B01C0E099 +:10016000D1E000E010E00F900F900F900F900E156F +:100170001F051CF4888161E002C0888160E00E9454 +:10018000A9010F5F1F4F22960A30110581F7DF91F9 +:10019000CF911F910F91FF90EF90DF90CF90BF9084 +:1001A000AF900895CF93DF93C0E0D1E0888161E004 +:1001B0000E948901229681E0C431D807B9F7DF9106 +:1001C000CF9108950E9431010E94D2000E948000C8 +:1001D000FDCF1F920F920FB60F9211242F933F93D2 +:1001E0008F939F93AF93BF9380911A0190911B01BE +:1001F000A0911C01B0911D0130911E010196A11D1D +:10020000B11D232F2D5F2D3720F02D570196A11DF5 +:10021000B11D20931E0180931A0190931B01A0939E +:100220001C01B0931D018091160190911701A091BE +:100230001801B09119010196A11DB11D80931601FD +:1002400090931701A0931801B0931901BF91AF913A +:100250009F918F913F912F910F900FBE0F901F9004 +:100260001895789484B5826084BD84B5816084BD1E +:1002700085B5826085BD85B5816085BDEEE6F0E01F +:10028000808181608083E1E8F0E08081826080830A +:10029000808181608083E0E8F0E0808181608083FC +:1002A000E1EBF0E0808184608083E0EBF0E080812E +:1002B00081608083EAE7F0E08081846080838081D0 +:1002C0008260808380818160808380818068808378 +:1002D0001092C10008958770909114019295990F22 +:1002E000990F907C982B90937C0080917A00806489 +:1002F00080937A0080917A0086FDFCCF209178006F +:1003000040917900942F80E030E0282B392BC901EF +:100310000895282F30E0C90186569F4FFC01949123 +:100320002A573F4FF9018491882391F0E82FF0E09C +:10033000EE0FFF1FE859FF4FA591B491662329F4F2 +:100340008C91909589238C9308958C91892B8C9313 +:100350000895482F50E0CA0182559F4FFC01249117 +:10036000CA0186569F4FFC0194914A575F4FFA018C +:1003700034913323D1F1222331F1233021F48091C0 +:1003800080008F7705C0243031F4809180008F7D0C +:100390008093800018C0213019F484B58F7704C091 +:1003A000223021F484B58F7D84BD0DC0263021F428 +:1003B0008091B0008F7705C0273029F48091B0007C +:1003C0008F7D8093B000E32FF0E0EE0FFF1FEE581B +:1003D000FF4FA591B491662329F48C9190958923C0 +:1003E0008C9308958C91892B8C9308952F923F9232 +:1003F0004F925F926F927F928F929F92AF92BF9235 +:10040000CF92DF92EF92FF920F931F93DF93CF93E0 +:10041000CDB7DEB73B014C0119012A016D897E89F8 +:100420008F89988D6A197B098C099D09621A730A54 +:10043000840A950AA40193010E943F02E218F3087E +:1004400004091509A80197010E945E022A0D3B1DAF +:100450004C1D5D1DB901CA01CF91DF911F910F9114 +:10046000FF90EF90DF90CF90BF90AF909F908F90D4 +:100470007F906F905F904F903F902F900895629F74 +:10048000D001739FF001829FE00DF11D649FE00D8C +:10049000F11D929FF00D839FF00D749FF00D659FED +:1004A000F00D9927729FB00DE11DF91F639FB00DEC +:1004B000E11DF91FBD01CF011124089597FB092EFD +:1004C00005260ED057FD04D014D00AD0001C38F4F5 +:1004D00050954095309521953F4F4F4F5F4F089570 +:1004E000F6F790958095709561957F4F8F4F9F4F50 +:1004F0000895A1E21A2EAA1BBB1BFD010DC0AA1F65 +:10050000BB1FEE1FFF1FA217B307E407F50720F07C +:10051000A21BB30BE40BF50B661F771F881F991FF7 +:100520001A9469F760957095809590959B01AC0140 +:0A053000BD01CF010895F894FFCF3C +:10053A000200030004000500060007000800090085 +:06054A000A000B00010095 +:00000001FF diff --git a/build/shared/dist/examples/Display/barGraph/applet/core.a b/build/shared/dist/examples/Display/barGraph/applet/core.a new file mode 100644 index 0000000000000000000000000000000000000000..2d98033b295579eb3566d4e1a2cdeecbaafe3bc3 GIT binary patch literal 92548 zcmeFa34B(?xj%kR5<-ATARwS@Zy+oRWPz|qQGx<)2vHE1qAyuVG$b(#;#R}rRu>XN z+*`4>)oNR{ZmqQyyQ+1owO+5+)@aphs}*RuZN1v^|9)ql=bU*@-mr-F*H8ax#*qxAnW8cYoTxUw`=6^FG7NKj|?q z$<zfcqZRrK}ev+Y7me_%8WEYA$NB`wWPB4&AwYvW}tRfyAzpSifO=(y6xit|ewE0cYH5IH ztu8&c^0fNK3MMOXm&-BoZGP-CTu*GlaIXFWPWZ z98IsKrmjA(Jg+{#@A);R+1XAZfh0{kfo7U`0>w0TOG#|gdF2fajG%A6ePjiC15t*}T!tn7Q~f<+5`-^ZiP8sA&$g)Yx~t(WIr2CpLHJ<%KB z9pw1~{c-&V^-JwP(9iYMQ6P9;>JTrr|LlIB>v#Mh&r1_}hUfLN5RXpZ zKYox8&)zxS@q_aFd0s}54btoQL31-x@RaQ{9zKX~G89QM@unG-T)hlA#Yg0blQ;ju zX}G8Ohzk*?^g^Q*kBb-4Bc(SzQqqtfTGo|eT^ZJ8rS_+J6R?`0zGb1|@`U+6!Yl-}sS7@?<61mVAN8PS6z{CfX?9lrknwsLPm9*6OT z^!xn7BXsZY2$bUekz)M6{7+xpO~Ly4^BNjzYsyQTYwGKo^5;qAENy7WKc*f}&AR5M z{8K8M>RTGiE1U99Ku4TkEf0_U^7=;5q&|BGAgH;%z7~SkH0GDp)aB>p<=57f<*zC) zH>9GxX?asg41Q#+sVlE-!Q;?tYOX+O=2f#YB(^VGReRY=;`@h~3}Dsq{g3*iqDlt9 z4H`_YH^DpHpmE+rZ<0Y{z46{*UYeK`V^WRrQ_?a9#EM(3ZSM%u8?_9TF3r?EiueXD zt3m-hHo>KXpkP#Vr$Y>fL619BXS~F^5gF|SBc$Ek{Srn=L!m(=Y&cRv*g!QWz6gI1 zSA?DrPsA^bqg&Ej>Y8d+)m2u+%2BJl+WNXxv4F%zdhFs;W5>iy74Q-~3~P6O^sLRZ z;>}i)@un0boL+@9)Q@C0YSk>v{{yJc2@NAZQY*c@rVCa#mzKe9ZnSo_qUOrA&0bzv zQyg5%WK4tQb;v*RrLvk+M2pbFR!7oe%0#A)p-@A&7}$64J~DL zrK>9gk%)^$y{~3C7}-FyLfgJR3{5|pvvCodt`Bxkd^zxA=e0M!@!(O}fJR<5ff)5W z0&d0hx)m2&ni_@F2QN&4c@58!5_saV`rKc=7HXg@ohWgWa6#PkM)5eEwUwofadvIm)dtT$B{)wVC57E_a-wm4`H{;?!uTAhu*k2}Q#{+X0F7j}|_%Jc(tQXseL8o~R7wN1! z?-GN~fze-t&U(YjPdeL4e`4^n{tOfPvB2Yn&U$19sFGJEZ<(nuryZ|zFHPn>WpD2v z(`QVV7pA?xe+)yjx(spHc0AFGc_ZETk5l|p)A#!gBnxjVe8K2_ur~oo$jI~OX4;pQ z37LGQDelYnlRmwIH<=Wqwy)zvruNJ8qJdbU2~!Z#G%e?VHVU$W@z> zJ-pd4Tiv&tlnZAX3VLMp!}jfFA6{wfyNoL+^{7@zNKd&O_uhU6^gy{!G8SPC5~{lSzVMB?4C~?&(z>{;CdNDC~XHD?0qj4&M`5Rjw@77|U8kS$?(G&&K#umrH0* zyR^&}@J|KhAl`hwf1!2)ja>-0ef!E9!w~P{hP))#ztvk$LaSo(+}9wPRKT>!n$qS< zyc#hlkV(8F9|RpG_Q4T*q_}5A=tCp!P|^hvpJC!I5L-hYBJMEcE0K^m)rG%m0z0uqD`x{-U1J@5&pV2vbbJpgphqE>h%+2qZ+p(l0 z-cjFiX~(9H+dA&;c)VkK$L@|+JZai+T{X$y(FJ=4u0EZ++qbtr-hOZUZS9-dFKw@H zkGC&rpWB|_p4FE1!>qQ^ZNol8$>tfj8^-tiOLH@0#%(GLZtUNsJ2#~95%-x%+=dZ1 z->cp;Tn2AjH5Z|tUI|xp&Yqo4bl#qwM=)VuXr54klaDF;P>^oaxOrnjXqW&RDo&%e zb?x6hs##R~HT5+W3tQ^SOYq)>w@$+FRdyd$LHTmY(C~Bq|wo zs(De*(;{_W(W@Hq!kzFEURz(D;0|BPoj3bZ%rmdzi@HNolAR9tjNaXIP~-WG(Dybw zo(h|Rd49k-0T%}ud*d^Y^Dwv>pZ&;jtGvW_EIa;WC!j{*Y!KWxu5B2X-Uv^QQ~Bma zKlV>0xHJr)cQo36AKM4e8Tg$D?8-Ym8}Hj9&wY0GdXBd5^%u?aEZY%@PKd zF|!7H-W(vx<73q62w<0@g5; z@iye0P9R48{s^}#?{vsxy`+9a#E$yItSv?z5vjB1C6IB!bdtu zPBZj|akLJ?XjmHW0ARKiSKcrX?*vVaBU(wucIlsF?ud1keUUXgcQbE~QYYr3a)6I? z+=l}fIqsvzYqIm!LU5`xjGN^ zhG3RE`%ablv0%=Bq~h|KVKAoO1ZF)LKsw^eg3Wa;pAP^S(-#7hXNK@h20oe?&rzC# zh|&Mhn6Q$@(WDEWAee2A=_H*kW2RvCnR5lRKR8x!9`F*u%>UB_Gv7*ynXxc64n9vX zLYnez55F0Gmkv_d{O=pp!0ixJo@uOp5($#7i?q*W_l?< z6+FxbW*;%>l%w%74vm+x(nJTgBVwrTu^yx#ub7qsp~EtLx$ZM`%Ofq4ifE$)P zMYtH2Jk-hO4Q3cFtxJ@tbknYx2pEP{I^}9P&UfghjWgk5RAw67#A9G{Oi0Z9@!ngTuimdPh<2KJ!5dIZbpAsA7%oK(MNCw+$x9B5HnsQUu2rR z0v->#iA(A*%an1kj>U*2u3W*S+X*f+ogAat+nn;OS^GYxd?R$d3~{h*SOdl(hn;U) z_GeDnojN{#P^=%jpLERmX6Pp{y~7FMo@biF04XS|zIlG(pl}|#Uy)Zhi1f_F$U=^T z!Z^s+A2ZbwKb={QFXmzgj1=jo_dCO=JFp+p&TmYz84*?qTn1El6FmYRoNUH>NGRNX zyE9Z~xR;`y*sAi`&Tz}zb}zPl&oB0u(z+hE^wpj}k1oFLdH&IC+&V`+#c-2=`R=D+ z^#OAMnQ8h|d43_M+l}d4uLw5ScfjhmPH6r3C^d#_Nr>hoqkttDc0QjdeQ_YY*>RY0 zoWI2A#y~QMUheAm5*+Q`(XZ7oFyOTki9ABgHz1MQ~zF*{o38}8RpLOcc0TQ zj?B30eEN{R%$_Ts&eW?rYKQajOGTne);a%Z2$dLyTp07k@G!jT%+ zHI1IM=r5c-`A?1L6vnYmd}3lBDz<7fS=>?Wl`oX^SR|x!Xvk=K)nC_Rluz?Z{nZ{H z(M0)G(-GpY;h`CZ&uB1%*uJ`d5|_A&p{p0VaW6a_JgK;@ZciNB*`YCNUPnF2S|w@$dOh`x%|} z@Voq>wyv#R_jTQMi?_|Y;r3ql_wskOcC{N?G+h1T%kq!OpPD~r!o;j2MxQYH^P|^y zjmeredj9BBM}M)?-({t4-@JQsR>$a$i~MVR#;&ohM9d8)_IyxVf!s9ZKfZBzXTPua zd!*mHLq1IJ+k1F#Z`bJdtoGe)+uJfa{TuupANyQ|;x+XK$}POX-?i!SjLx-NHa@g| z<;EXud}tl+mjPdf`#Rh|cxOjf>$-I-TQ|J%F41}*>+UjcY}n!)j#8jj6e_wtB)S;QUXZ&pEu&wY+K9tQeexsv>Z z=>tQ}^vXK?@(y1Xmz7g&XT?c<_8cJ7+p{WFDn{*0&puOau#kFohad0oS9bWNSn?K= zoL7C5=$bCtC`-Cm*WuTP0)H)juZ|w?5-3J7z|3- znZgIP*_|>4KsLNYwz$j>eMCOQn>P!1z;OI;4QmYzOP_|dgod?)M(J*Cus)yso?Pdq z=F-Myn=r`;H>)I!q{e1X@QtZi*6N;7-M=_>zfi5Ot>8yf;qo3A$o8_N7J8G}MEj|& z_yq%pU?olx>n_MiHek)F93`^Xk5fOD1v$4EoV7L4E`efpR5=t|PEkTaZO$_*d!|0~ zTiU$jmBaPYh#hX5A2uGl`1Y@{s<*G-VySttZoU*&smANl@~gimF_E68WQqq_6~h_`_ZVpIpt zM=Pe+eMm3s71N8V9i-RHE5og(74qge5hYp%TFm~C&A$8kITSf9;&G;B3bU^eDj zb--46{8G-9*Op_$Qy%*imB;mW4MQ=DQ8|wz5Tkya?{?+gniJMPu4$;emEhAb6mdP| z6%&Y2zt01>@^<9dZ&|4yvNDjz2?mB?+o5@x`jH@pkQeJ%s?cbSLZjf^x*CPFo$kq7 zIoR`BLC6K2bIR0d04}z9S681x;;vS`AfaL;R_?pQ8yNS%D# zC1WiaklW#0_kp$K|hA{2kaF zcM!8r<3)TO>?MM^2FSc8y&Cpef**xlA@~;9=L&uj_IZLQA}q_7VK0Y$qtapDMl5S9 zcL-)3d4!l9I?PXS5wqWUj+h+}%!{~)nanqd!7~T;dxFn|{U>6?%RKlyF*AuabRuS& z%(Dz(R|E6;LOImeJd;G{LZN>H^jXB99}R5QI%O^97}9~4fquI1KL&i3@S|(A>zLr- zGwKrI9|L@)VA8K~=rQfV(E?+2)zjOQ;3-% zFuQQ+x--WgS|6BZVzTL8i}Aoignl?M_n?ud0C>D$%Fh$b{NZapd05Af5?l<-ui{Cc z54>3LGT`NcF9beYFzaMBvDCc=2d@>3BzdiZ*{_*01^-~+HlZ^u{6MO%1)l<(f&mnHRsi=ETn3yinEmacg6n|C2yO&ETyQfm z)11Z%2E#NHqiDUDU_@!gZ=@rbUB{O;%QEA42*t3E#+4@Yg~TG0<)<jW`%;Im3~m?#*Q`CdZ#*;bXm zNHF7K{YXJ1)RD4MP`4@D=r8pg)y32Aqgd|j$7om=mCkszzoLAl&mu-zXqXb4W)6r`Te_OdsnK z>C6w-C1U0YpV>?c^YT2wvtgU@2I$PQO+qh$&F44yDd$^)$^RHJ3l?S@E@JBYqJv)+ zd>=hTwKJ=pNYg$mnI8l zxB_C)tw?Y)?EJ!6G1u(vo0b{VkC@L)7co9+HVSY2pYWTO;G`D!dz0{M zlirCNArp2_9`Ag&!u^xZXDEFWKXSoWEqYFj`L;zrLUF!j;Xq0DQ)cBLQ3Jvtb2I0l zKnL1$V({IHin8CJc;}4-}$ank< z&%e_dH1?G{uBSLLf$n!22?v1mup3jqK!|>!!1p)1b91)Xy56r}Bam_DBs@vd*YAM=ZU^5PyN-6l;MRAHHzJAk}nweT|q|Y6%AaS z-`sgq)=gP$7vDIkt>a>Rhj5|STG85pJJ98S_qN5_*Lub67kFFpTe}LnCQdqH(o^`Z zV06dx9j|u`%YV-=?drb;8yv8Ml)Fbawr{|`(bo1>4=d>%t=&bLrU4kA3O=lezSZpY_UGG2x8wT)Hr$@p^ZBf$znVD!uKPRc0Xxacbdr^L-;8}s zuyha0@%S)IWklDpmF@`k&1#H=r^!V~c`IDe10LD8E3LG`+YvbJ5srMkCb)(wsFo#0rSw5$h{mU(G|0}I+ zf9SL%?bGIhrkLJ*k72V{qmb`eeAiG@gs~7myy5u27cTm--{tU8!vK1Bp}p7JHcw~Z zcOtMWFJrLhb%{I<8&zJZgwbwdC?Zn~uRz`k2}2sqyO@8VKGcuvTq^HkVCttbMnc{k zxYelc=Y!ztw+r(4zC?K(G^)JKz^=SAAkXc>RNl1`29`0ILvTa_5an?^s`9=H%rIs& z4!a)|RT*#wc$?sO@Tb_ znNmZ@3$NHg+0yS~RL7Qf`m+4^NVa?9nhXUw}7T09Q!hNLp(mfft$Z?05#GSi~aSwGm@HJdYRkQ#5Ntv^u z`84*Eo)n5R?QTWHeXh9KFL90aB5^ZM2I6J(8gb7t{{6fg#Ld2jYpQpMn-;adC*uA| z#4T&8;S1h@EUoT&HB}$x`ke3f&{hUK?JcyAc)Vkt=$)K+n%yxVgvCQ9HE0}4zi5T+P$J{0OUf6h<@_h6QG>_mS zX8m}Uco1$dui+x5^9^Fkf&HG)$HQiyN%||WKO~mw|98QxV}lSk<(vU*)>(n?1UBoe z;AfCYOrn0Znvm~-DoH^`Xn0s!S zp9Q$MpO$g)IYT=0@HmIQNa)O~62a7&ZCS&fEp+BjnPBqN;!>Ulp|6MC>d-d|oq4jw zq2Da@ufX0a^smF_l^w$khH2FKcaAZ%o-!{XAzQIkvyV_6&Jv6wu-}>h5LXMGX{~o~lVIk@ zr4HU8m}R=j!5xBGm)IX^ynOxv7t6+a5nDuA3;5D$#IumqYoiXc7z+VLB^M<;y&Y167fWHhpLg=hB zF~MI2PRF%R>r5y|niww4AG)<)HFbj(111BP);H#z_N7q8)CX9$enRFPU{gQo2{Qs0 z<+CjEr_HoWIdb3I+RvEIVh_`!dUG>)1mT*1jA4>Y`yq@w5|l@Jio|Ky$Lp6_~4i}nN|i` z0UTV6wFV17=fYtZfXo67>Bt&z+4Y*LemKuv7Nc0Pv0Oz_{czT==bON&Rn`oKB+D|2 z-CBQAWfiL?{M?hL2Z++woO3^J=*#_3mCMM~&r(|IzXrJiD_IEmQvmok%rbn@FF%Tf}iz{sHdkS`aJ zTfURS{4f#tPJWyaaGerznYjIOZ*Z#-X>a}+<={Q|TDqj`&|Lm}w`{T$&88tx8HG_6 zT|>MH@4z;HN|{<3t8qDxBHH7VF%ZflEirfW6~rR1+7=rH^FZ|aQu;qd)KnGc6Bp46E? zj#6g*I;0F`2D}Zo3Yh&T>-j1yD_~9d(~Kf z*EQ{JomY*$rX!>Cn)a(E(LOG}r0Z!3pWCizOM7uiN%8;sMeWldX$-EhW`(lV+jPFS zEm!d+T>bR6<-oo1A^ME5=#q_C=Nxai?lU1KC`O3;yx%z|^!BV-b$&zFF9OXJ&2L{> z(op;n(s~op6YDDILad*%epltUbzPZt(`cKk)bN^i#oVG}qlHx;K2NC@4UW)aip6HW(YX0#DSN-`zY92jI1sFgCMYEiolOh= zbl_9oq3d*@kr+Rfztu65fO}az)pBu*K(i_Q6NX@Eb{{r2o8{Ezmd3gzRaGUYorGQL zvL>5k$1`K{{w3B~H6NUn)Px$*oo;IDzuZ!)+0)1IAK!avIPc*a`qAXzBF0e0n4b71 zz?bj4d*fr9RoN6sd8axAg>xf(SHXjwgc{}JT!KUP?!ww)H3-8&?`!%)VT@V?4Aq(=R=f#Aw}X|yd*>W7#8K;Ems8V1ng|3MWHh*7^^!|lrJ zf;{q39;#v>?*m{B1L$Rf12c^3R0Messu1y`lX;|V z63}}WmA7|Tt zy6viASe`p~Gk=c?V%WJm7x+lWJq0-It9I_59{3UL+&vHXFxIF(ZV51c_9UU%`~Nqw zC5Gm}_qDPng(lUMi0eMY?8{IJ%ZYQvYUr*NM=@-!iL$>@L;p5)z^41Ii2HluW}n1; zs6UJNzaDY_N!;uYxTgA#h`+9x%F`3?hM(P{sXny#WAGFV<#dq4;fniL(srRVA~9S} z)nLvLQh4p3G0Q(+heIbmM-tXsu^_{C%J$1OR@PT^&A}eR9AcSuVLw8iyTH$SPka{e zY{759UMTo_(3cA4n%sJTVR`celU>d z5YhqQW!G4R-|Q_BeseYgbfBCgh5u0Cd4dlIW|}FVJZ3Megf)8|f!RM^N*+GkU^WP5 zJGqG%@(Y3Q5jjlL6M~t>{~(sIX3Y_p`oASSjCZ?Wrtw2!$ea)QZern2MVCp;HH1uJ z(Rrv~h8^edn0>0?kAZ)x!+)g1zeM<1zc@uj`Rq3;9BlR_g1!;-)e@FEUn-dKZV@~j z_%>p8FfexrW*_lAVx+4K_=m*Me>?C?f|*yZ6HD0N31(isFFcI*uYwt`j|U%Rwt(K7 z7-7lZPcZXpFtOy-Xu%B2!y?H~o2Yi;`3xVq#+$fmi zwDXBYhjqk|b3f>p3!VCWP4Ek#KO&fG^-l=~*?ULuVZeVA%(mDUk2A`D1h_x*1$jg> zjF=e$6LauH!SpiU9snS?-R}*|Hc~7+Y$L}Bo&{VYxET0MV$=H5EJm6tcZ)XE@d`12ffF}xG23#O` zCGaf4e0~=Tz7Y60!PK)vFxwHIBYh6V4JHFuU%}M14+l*!h|=pTn0j-+>rt@B;OfH; z4TkyNSMX$D^00i3{80cfM!sOm)Ob;SgLo-lq$C!KCOH}<}ux@-~1NhX4odrfiDCuz{T$_X2WI~kcas&N9e3S#|fSM%m?x> zgMEt7nQrC_=__HMjf--~UxthHTG;0ZeGTk7p_6Alu0A=q!ED6USMU~KhP@f~U|jmG z5zAfsmRyI70h&%5hIN>Rk(;LhtCya%DF%=)7L7PWx7!?>kOX_#m`%t7eUa34k#!iYRgST!@4cEtfEHIADeGQ}8nrdE={Rt|zthE zoTAQ5ilI3Mx>%X!n*bZi#ALh!J}%Wu+za4i`GOs?;R4GI;Ip0uKyZ_pg++3 zn;D17DfT0&f2%(=l`UfpEwxRRpKL9;NY+Sol{LDKt9xX1MOgg@NjUXacXVA?>Cv;g z_qG=M`er>#`mX%@x}KG_%a_`=mfTnTcdW{C1-7lr+xDd?_1oXctKa??Tm#a$&`ANgE?^tR<4JhxYI?~{A;pG@=PbC)bx5?^vn z`?Wb&4fS_8zB|;<+h#)wk69~qE%v$GO+0S@pCgnt}?gCh4jsAIb@4&j&j1d69C@VUznNr>aVsUb2&) z)z?p$t20z5kq*=V-S@Oc_r}`er$hez^AE%6Co-0j?(NwfhKt6xXLlHG&+?=3hv5?C zhx9~whr$CrCd?7AT49^6ESsKRQ_)<#UmIGD!Y7qBo%^Zp>eVi~r={H0rE6>J>l>Pq ztm)RZthQe68PqzP8cvt~leX1rDgNL3t#-j2uPJ6r;8^@s0x{~xwHn3r;=B`^of`F< z4MN!9&?E=qyKnIE{jQhzaTr&EOTz$q$6{p5v*FYzJP`y}UIkuSo&k;W_OyQcAp*J0 zUFGq;*_Bstu$_OVJg$Y&kNP#^(lCJD$51{-AVy`>!>yQJlZV)MDazw0QRQ6@?8+N~ zw~k|y` zx*CO(^Ij^FI;aP9h(EVL?z@}T*FZEIP8LnRPeFuY-J&hP5e!(cC`-3wc zUk!ORrnu3iB(6E4uWSO1ZNdls32d|G$c6=zgDYXp5j&C{&KKn~m7lcWQG8~9mbkz>|L5$~WBe2XJ=>hlgU=-fB?H=$R+ z*7JEsgJ%N#C}$>cCVAkd8A6P>XhsQUS&SFVvd9x01D+xHa9~pw2zxXz>oMgp4;Kq& z|FT>#=a$bF%)ByX0e+^pPUznT=JSbiSWmwo_=muk3;q-Eb%I&Xk!-IIm4wO0)mJdB zK70Vc9Ez*2;4#2l$C(J5b)EmQ%Cww-OV@7LkLsEc$3Em?TB>j{>^ZR6PD%d*?6pE? z+AkD3)3{OS3^JH=Gzj%o47PQeWOfMDwOh~T?`e=L}C zelD1D%r_V!=XIe|&U=EX!*;=}zaI&v9P>Q}!cq?VDeA+x%r_Xo&jFkL-M|c+FFd5D z4B}q zxEm|&QK86=#PycwYD~ENlERGRL)+%X0W6j5`$3)NeId1KGGgt8Y(|FjNp21H7g8h7 zA5L$YJv)1worl9Y+@Z;+!A{JhEXKVYa#QRWiWD+1A;4Mdvx4DZ3u?OB=46!b$Q? zQ|!Tvo2INZM@Qyd|75{0@t2hLpho+5kgvBr-}X2r$JwTPnj2pq)D_e@^JF#z-wZ|^ zKl)aw+xOxM)pky5^b=m541=@NC*4c@14G|isWQ|~_Yx0T0mL>OR_LTotmk@>0*ys=xM(04kd5|5mQQn^BK>42wZo^Y~D-h1rZw|&69QRY6I|teVw}t`q zu7SK5ff$w10Jma#JqURm*HWH42YLnEuDowT-d51ms2_E9k&LMj%H0?u6Tw_aua9dfhqDZQ#=| z6mc~Ikxz~KaqhyE*9Cb6piw`*=g^P(K8K58=tpx0JyeK5I-_%-cc9WGtEc3(9W?+< zMPJk_5UJyy=0JC$P+J*5jH7~*jP26@Zw{0-Ei|d7lw3DUIy9*$fkmOy%nf`#;yy>* zY%iPxZHoBooTfgoKD#;1;F%&5mv%P=`|*T55QFWUjm}4&4*$K)NA3d86v{!^pTlO~ zO3b!#oM85kO9a0Md%56ou+I|w3hWBO_rX3_@H?;@1j91#o0R`N@CMS+_t2QW3z&Jm z2^V>efqfJ40Nh}{jEi&z;d>(KqhRwnK|1^XM}$5H_Rj>L3Hw)quY{eBhNE*@1BgY3 zVS?E{V}fJA69tb4E)aY;FrPUL%RDO<%)B{HFy|FY1Xlr{F1QYOrC_FaA}-DqQBEE% z&e;^fo+0!C*t3Mb81~VESw1J=V%YhxPr;Q<og+^xY^Fu|nWw}t*p&{h5!?*h zJXgU(%y9BM{hz_^&zPUEGY)|oU1XE;0*L4KBL{t?rX&n3)^ z#ikb&!f&eijDZrC)Up$br;+)UAQ~XDHd!$_5-ch(QO90L!etQ^7RY zl|sV7p$cSmj-9gF4^2pyr437<9WUuTB!Q|qfGJ^n?$z)CUcY`!|A>&!p4WwQob}sR zG=^{{2BW2L;ssSU&p&n$Gr)$*A*0RMG4!$2v3W>)QKog|_Cqf*&Yq_=K8!W|f0zlO zd`|34bkE{K`zyjpT%;eK=NCHv7Bh(wNuO*03S$Zt2*u{9YGld}6GUf$o(on8x_VEaaY$M z0!ZT14dc`pX(?k+CDean_kBPV;SV%GmzmG@lu# zjLj0K`7@l9u>-_;7?Yhcc3|qk&>QLXe-FF&^H9dm_%-fkp$LvfpEI`NLDe%DY0?`d zW+dLsv^u1$H*qWqB`qR>&uVyH%{#;S+*oI$QolC(F}MAVp&#e!LAll5Lpt|Af_}HT zV}r&RxP4Kb@>%dNn>+u>?@*HZrI2ZO%71~7NoZ#^{i&(kFgFsXH%(;;kHQ7W^pD1D zWf3*(}dGAs8AN48Wnq8uDvDlWl# zhF&HMb1e13H`QpSHpC-G1%VCB9rtDEHm-xWD|x$wH}2FMw~DtFyq(P3Lf$^d8}|n0 zjvInCU!v;HU6q`e}Qw{A8|X3+ZC-jd_n+GG23FV zK*%Jr?mI?qS2p*?&hBu{S>w`HAwwch(3>QQ*#LNdGpsVqD3=>tw{|+e6w2!ZwlL! z8nC?6jfJC9V_00*YjHt1Tbmk$?1NrEQ5|o}t%)o%yRj5P=H0BIewEqQ=9!v8sgU?> zuur^KN`o~2k#RqTbKIl2O?2x5JU&?!h0tkMvgrtVnaC{VaCQUw7hH#+rlr`;m;X)+ z4hJx$+gx8?+mv6rrZK;)rY=7(FTb{?EPqvbxgizhP0O2_UsG3J+fq@97p2n1it|ew zE0@^z)7QC2Q=8$#+5 z^-+qhaj0D^A<*p!x=d_!M^{HQ)C-jvqu~kID`?pBB#4?_c^^73gA#0+Akqj-to&1V?Yq+MM-p*5-k^`5kjR zmUP5B>N_s&*wk@b$GshocWm$2-BH~BGq0;1Q?t09_xL9KX0K?g<^xOTU1Z-2b~-uBztH??2dUf&*XU(!CeJ--bl;XCL|PBOm*%U2R?M8(KFsZ7ADt>W29nW^Ne2Vc-?s6@R|`&C7p%`A;tY z`sG(#e(hzgS6_G8x~rdWe;xmj7B0Nq+qMZyZ=a>?dpCDqTCDXi^sn|`^9Nu5t+vP7 z4!+?R{-gdFXKzhx#gQi#WB(5K+}!2g;BzVQDgRa9zv1>i_xCw0e|G+f`KL}e_U~tQ z`q$q+^8S%;`x7_3ARP#Yj1CFJ^i*Nv2}&( z)(`LKr{$f|$wkzVcf0@GX|FFiZrvH{7^-z$J8b-i-q23$Sjyi%ce}Ukt*rkU9b5Ob zQ)h14aODP`r${~Act1GJO4!`79%od3>~Fp7{>yT%!s(S=DOj52GAz^Ey4%~9w();1 z>zcB1Lq;cSNgHY!{}0f`m%Sg-H#)f0!Rs7+xq~-$QQ8J`zrx%vGk0_TBOk$q<)2QHsAi@@imp@&Gn7(!dV{Q&k_e>vu7u| zJ-&SQlO=w5GPSthUnQi%QhDv9h$n^Ep+ zD&EYs)9v;Tbbl7cCe0>2-cr`sSe;OO2QaWt{6EUXEHy*-_?e3fixTP6jUo%ycrE2k zjb)xK;$(bA?FG=ayNn}(;)k3jRKv=6d39-{SIu(Qk3o`zn{HxTQ0v8yU9{xrd5hxl zSq)SbldM<8js@tkgTDmk(G9Itt8Wt~0ol^>NPrqQW5kPp6iyr!TBMZWWH&Lr*D9P=NHRYkMaMjo0Ke;O66_riRjV#F8#+rJxmY66XVtmq8Sg@r@4#UO7Q>AArAY!*n#wyb$7w6QJ%`cO?bR$If@-Jc`q3HifpYOPx zopU;E62*?0x}c=6(8=tQ<<(24#e-ipjQba&$wU+$u!x|V?^)S|RDm4OZG%TDK}fQ&C;5Pvgm;!!mvx8}r$xVF0~*@WIn;C!qSB2tSAHJ&6V4 z2QkS*dA-Gt@=9?rjH>iDmRs~W3~~?`pT(}ciwo^qGv&G8Tyg!`l^5?HKF8q|$ZG<2 z`E8La@B2N-dsxE2GA46sD32>hjEm|02QF9MP%O0T_yS&mejft6 z`sG62O3pXQ-T^s~ zcVa|d8|3A}pYjIbQhDb^^ecrt9XEk3kauH*?*j0RCxaMx8^hNbHysZ;@eTop#`}0g z-ffWQj?YxyqY-(pKwbuDOb7K;d9RB+ZDI!@(-c!NmG^2yUe~lRpAU89y#u}sxXr{f z>@3LJ2wRQH`=2Cy*~$c4`ONuxaH~#~hgI9aC?CIZaP#kd=$8vFrkATgnqG7MUJx4n z0px9U+$v*iMBV^=wD1b}C@+Rf<;@14>HxC$807s(m4#dVc*>K?Cf~b|w^I6zF>tFq z{v(ivA>S9UWNO!b=?eW8MC2VeD=d#(@Tt6bMBYYxz_*fu#AsY+M&vDnytUwAdRbpp zUQLT)KFJx;_r|35Xla$v) z_(&(OL-t-8<9Wr%XLQpZpotev#`LXPN8$7aBaywGfSL~axyGe`l5ZDLoC*84`JEe= zC#~7Jn|XbtI&pqAm%va}#O&N1u2+$?bN4a0hdTZ1@86b$7%SDBHX2e=(KD5ZlYLrB zLXXPwXHOHFRP#lY>t=3-Ce^P0282{E7GQ!@QzJrBs_8LYx7$;b-+cnneYp9SOGB_; zHLC+Q-5bQsXFtEi+$8Reum?i_o5W3v{9h9{#|1op`#0idpO=I5{3*fzAhTDRq!)2z z;|aPjtPDopDdMK)*@&@G+|1`}JkhQd_b}r=*!zaKneuFu&rik8zIhFkEQ$e3(iRa;+HS{t`-JqQ$;bin!U-DsGIu-_+g01A_d%g?cU%-OFK z^ZR_ZUO$E#3`kzW83Z8wz_0el ztYGeApCfn(_&Ek85A(^KtqgoE=ruy;IooRm-vWGv;BNq5FZdGJW`BMT_Qry4_T&SX z0smNdcoz4s1XBmI_Z2+Eh47;eUxE%Z1^*Rzv0%zxCirpC&k@Xh^bJafeYxOt@bGy} znatNO3kLM~enXTg7}gXah)&#{7ecKRuT2Y}z4%?&x! zt6JzcK>im5e;f3x1amL{7Quf8zD@9z;JHsQ$B^F_ya7Bv6MPEjgD|jRTKKNOk1Xuh zbEw;b`5Y)DW@U%rJ0^M9-yS8H>Lpf&?X92*J3Fh;mQFtZ+-zIn|@LhtL&-V+y z1Nc$FzX1NR;NJuPhL{f@m^TDd{!ZcPjWpu(P@{7`@C3o!-(4UW>(bs4g1ImIXu*7b ztRQAXhgm6@&#PME9F!08tws2M2mT9%{zu@ALhlEj>xlUvg4ryX&$TZLKjqvh{Bwct zCuRo1JS3RUy(b+0r-lDC@INm+1>pIWVD>9r!cz~P_lP-&gV`>a&(4pCB`s;F>@45) z;O|e2F)~fIV3zeLV&R`a4E~$JKTGI?koF^q`SJ%dPcX+tCp+|01=oUpjzh0===TyM zuCGA;W5hCydP3-IJI@hw;U8ub+&*||ZX!ngq`6)27+{VQwB9}-cn;{_7kmP+>1Pm@ zdHxHbvu^)NFx$d!h^217Etu-D>`7-_d{-nM5Bzt*hXeDw8PfBB4-z~T*qjLh`V8Qa zLZ1yhPB8VHBA8=uzME0b(ZELvUI@&0EYjH)mJmxDVO=4np62}ucnt6=p;J%R74lHe z^957SO9fNUD+E)|O@gWC4T7oXZGx%ioq~@BzE?2yd_*wye1cfo+Eaq5=Pw0U1OKPs zM&LIDUkChq!Cwd7Dfltq4+XynoXWl~8vw@qzk=XFLTB2C3ufCKM=Wj7{MQ07x)pD_ z&F0rwB(I(P zz$1Y9C$Pl1z_$x#TJ9mHK$r&{{6oQfMw|X0JdEo(p;OMwf|K=3l) zzX(1P_#c8-0;jVdhWskv{({-w&0oucUI)y)PDA@`g*{pDI@mLCWiuf#tV85k5Bq4r z8(>op?yX_lWV_WfWflSJnKGvUGc08;7u*V)bt@f_LoJh!y#@C~XI^CUfdw-km*Q67 zRMgwcVPA^q1#uT1@k87Iq>nDfK41yj$X1#_6aP;g(^iv@GO)|4Z{ zQb(3IxKNGp-#P~8ffyX*EEZnr#>4O4BG~u z7c{xJl+H3@A4^k&OX;(SsQ?V?iPBkq+P^Jx=uC_DOBD{ini%Cy(~L{ytR<#`FdK0x z{Yqj<*A|C@>l(uo(^0NF9d?Zh+0|u4&8{%rgI+gUxz|JZqLZ{HF(nEHm&5*rU|44V zBh$ikzbth2X|D=qIdDv=>HVW%*7IG0+5Y|}_)ORwUus$R6U_YKo(Iy2hYMZ-%rU6) zPZP}inJbw2bBti-567v>&v!y%=Fcj@%%5`wGk-XiRep}|iJ3oUTm;Pg=@2^ehvQx4 zzeh0h=R1O#KMxCL{%}mJ{Cxi;X8yb&nECUPVCE0U#9HV7Tkr{>|JlKR75oh794jk- zmf%I8=Q!Amh0v&<1f64LZ96=Blo&tHjB}*ze4cdR80cnf1I&Cg^TEK>XFYkOO_}#T zV9MdRR@;<$?~{J@ZlPy@hwotI83W9`_Sr$fxER?K^dZBDrOwBQ=?OCtm!`ddm*C23(jW4ah;F|qVx^97HGZPF`gWSwAo>tNdt z((xsGUVVNHCip*(9`=1soj%oW1dZ)|-{JU$NU7`Slj?C{B-D8=~jg{PG$(^3P!_9`+3_7)+-8O0Vf6}{; z-3ThXKe?qbvSqYiLUZ&3Q;K0aIb`}4 z|De$w!omoo77X z3_TY(o(qj9XH!L?MULkZ<2eEqK|GnwDt4LiJSy~L$UbhwXB!SanIt%iK!cYXPd=Wk zr_wpu>-lW~y^oti^~UpCp{JWeEyk1EC?z^Khd2iF{QnL;T}9U!&opQ!A>ACh!g%I{ zo^B3ZYdnt%J>4AYFrF(z&oGC0{3-Og$=u!C@eZP5tndB3tdy%^bB5G5g)CFQQquUm zgXdlF9LU_sO5vODKqfbvwa4d+?I1FlH{8Kxo4Fp-WJ-3 z?E*%+!u+Bkzl5+MPvQne*?iR?p2ZN5ENL^tq_GXCL5Qcig&5^3~**jm*fjDjy9yqSZ%sY_4hBlO#*bkW^;eZM zu{`d~152VB2{j@y*B;onT+3m1-vq&9cpL4FP3b+9{jeG&=j-t3o}4ABq&Jkkk{a;8 zoRt6CfPXk!y&CZU9sDD*gf@c9A;t`4H>n0}$6{R9U5#}Mgk_{F)!#7W&yYIg54fSJ z@TsE)l5S5bY2hMaNzBLN_mJb>Q1;epAo-U`C10VEz2WS})PVnQ;2$wXlRi^Dhw|~E z25d)T4ySw4FEU*m*haci{Y!>?0I5UX#tlj5V^a+zJ(N_^GF8x4&1He$gcg3_BNk!Zv@S%T%#_P438b^cr{-#Fv@ zBz-gOj+N>Tzox@aY-!)W5s~hp+{a5?-UA#Cqs2a1-moxeYOxPup74_!!4 zTemG!58Je-nFT1cM6vZ>;ks`Hp1seU#lopFx^Eg@ARKxOu5JnUeBBv*!d_*p5suVF z8fKADLMaz3556ekLK~JH#qO@tdhv;B-JSDFmHH?q*{s;JdKCMh_~_s7rCt>Tx>mfR z|L~U`38H0_`Y{gLxAApGf`&;h6Q5`@LXNFHaCA@TvK}}?SzCl7^=Q@XRH1a2c1A>6 z>M9MRrzH2R^Uaa4DqZbRqa{6Xh8))kM=GXQZEk8hyGvUYk(PRfhB;DvG>qyV#`E<^ zSmjhZ(hx%^|?3Y zF7uDhJ2kf|_xxPHYd}|K*2vKr2OTo<=l;X~9sXvc_uqVMJ>Rl!MEi)_N8CTc_2G8@ zTK^LNiNU{2dn0XUn!jsZ*SmQ;C%@nS@1x$${BXoke#Vy45$BEgwf_^@_FwBiIqW|( zylsE+KR9Uj$d&8PDe!i!Jj>fwv*MRd{yu>+&)D)t#?Fko!Iwhn*6YJmMGrrCyzSn$ z+i(EFrET?X@wO#xbKCM!#)q5Z8niT`xqXknvdbRmpd2B^Efu$(y>E^?I3L^b-(C0N zI$JkazuBjAK&RKaV@ubTH%9Cn;g1|R@;U#z{+;-fQO2n?*48^)kGktpHQ}_suk2it zPoGd9m+I>DnxAuUAxbl>jTQNj! z-sgO#c<4t1I){EZpwsfje|LATw~dE9826hezr}F;W7Rvhd}FY;<4OM!Q;R;2nnIt8 z{A+xhM|9m3^LIQKl!o#$^w0c<48Ldph*jh=G{aHaGr5m^ylu;Clb=If{hFa_7=~9_ zH*Y~4LEpiWuxHh?)?{>!*<(G?VXR$i?&<6Uu4`n5tY&TAbz`|C!GCY=ya<0R;^xwa zD?jRAfYG4q&vz}?9Su)E*Pm-Vu6uFB9St8%Pb|WJc*GqI-+v$Ug$QG!JL{tdF+}~t zaEV6%M9=*X`RprK=#C!zkmw)sMde2if=Kia!`TB0LU-c-5v0oj2I{YNPw902IpI@e zjsA^qPokrxvA=x#pncC#^pwGg1=dseeTw>&4u2_E%@a*ehfLTbDH7|!{_!T0pm96L zPB>6~GriM0{4+ZIGdujxch|V5+LK&6l^G4yQ&#Sulu&wN0q&oao^*-U-2IiB*cw&W zQRFxDx>Su56 zFxo6FUhyACsS4&NGv0vuE2AU$}0UK;W{R5E^($ zqQ_;n1OgY-5(r!%a|yL|9#_C3B(6+FNL)yYkhoUlk`}kDF2m6}Yp~qll07b+xCF$> z)e)EEarwg~fQL&RF3IDHg-ZYrml|A>$F&5P03NOzxFnC$|1JSMoSt_{3v263n?26D zyHt;J(k=lZX`aDl%MJN2hJ$q)o%-hBl_qL)5Ka>_cPv?mt!@soX^<{s)L#eA97NM_ z@Jyrr8c)nn?FX{1KL^7!QMs1-?{N>d*UfBT^Qf&`P;z3qXB!jT@rKey{(Y1^EJwHE z1-#Doynt2_ZrKZH=0qdAwJ)I6B;h+J2@MD5bc=U&5*kidg2Mbutbji_yU5XVx=H7P zS|@rTG2y1>+H-u&$wTZhx{JdO#3a5}Fb*QBZ>g)m*+cfPmvK^%sxR@BdxlfGg2Z!? zqP$MVN$Bo+JDH}5>lUYzVTA=IdeeLtR8;T(*-Iw46N7H+OgNw^zNVqMF|WjQxs8>p zOKa-Pzpe4as!#3kEhF7*0X8b3r?Dq9X?_P)4TUY|G?`*cP_&}Hg-5EfiraFr{aR2E zg@s1AEv*Hs%{gMtWwmi6FW!7XL#0<|yY#Zsrb@55-lq7Ubx4z@)T!u+hY>}#)1u-A z#~F#2Nga+HOHRj8L3;dA0zcbI#3#t@HFAR+ekJi5%s_TRg-vkE2d;j z(mYltl@KVH+*`sT1CzuagiY=pG|N4PtxYOg!qz194B}1ht??%J4FaQiBvUNfQ6%G$ z7%Gwq2qI8#=g=x!nm?E*&l2L(|0|K$Gv6IhPpErICGXWQe z5Xv`$M8~MS$)G8wH~F|fQH?^gw?m1rry)`fhSezFY!Jf17XCvU#+re=R$zuvdEbUS9WsI(=+18@U3s@U@|ZpJV|s7F<;r^>@^mN&uRz`d5x$Rm z;QK{{FLQ8md2dJfMu1O;w(tt#_G204g#6qsCj+noGE(gS((Bl22%&~I);-YbrN+)AMOl}F@lg*+Y7yZW6S zk@ptl)q-IjuAz>+DtGqKJ^1cXpF$xf)@_0UltKUnGe(d8_-r9(~yCIM3E^1UBKXrBGy$^W> zV48>PFkC9{`iQ)jAP>L5sJ!-wyb-5_^>30R@8O8NKR}qi>Qbo6yFVhY2=YFLKlS71 z{i+|&*J2p0FMmU0OxE6h9g$bCG;DAAj=aA{!32jxu{KDPVf zh`g=nd@gY^P(^<(B5&)dIJX54O3LHMxvF1DMBd0Tp7&i90zQQ&M&u2PhvjjEBd;(9OSG$cw>q9vDA|OZB@TBJXRtcHdxBUUNj={FTTn$-g5Vc~^)$ zwjG+)Xxz&|Q$ziD4aDV;y&q4+xgQRJJT$bmuF(C$4D>G;FdYp%85h&R{)S@|C%D&z zMDh$AH7ZZtYP@(l`2bvM2no~PNQfflaPJfnSXj1L2kbuDdvvp0X85x9>RF6;g(4?BtzUyZ0g(fxO zpPm_iPUs1g>Wz)K`D6)AYWSV6A*Pz1-SubB9GX|Zt zQccg`y4kWrlWJO~>kexUsi~-G$A;dfG?qu)mEvamUJr#Cn>I7+)3tm~jvEJ`gvb2|RO-<7Ju{u56UQ{ZBkQhRjC!PYo-# z(Vyc|8g{YSs1Mv=L}TR*H=jV$&AvGsr-+>|{v1<*{Ba+N(evJyIxcN-ZMt$J8NDXDiBJRT??x_(s_hYMJ z_>&^;y0;;xCfTf}YiFW;OyL-|(!LXT&N(eN3YgZlaPNO(KRdf-R*#VhLL<@F60 z#CZ}nj{2jswz9M_jrpquN77}$PEJ|?$TAl=9!7Rs`P*y;5!UnYD zp`DrDZgW|2oCW-1;pUt1b)XuT`=4E z+k%gP95Y`5JxS*_Wa|79@L_^UH)m{s&bf%CLg%~{KH@g~oC9cZ=xYRjgs?nQlrqWB z?`Md4cE;Tf{XW6B!~VHLe^&4Vu-|g%>~kr{Y#D`ImET)1`{+>)Jy-C%(1&AC^* z^+JCaI&2mCji7%`=o!%WUZKAL`uB+W(1iJcU^<@_o(z=x%YtLTUBog(eM>O;cL~ol z@cdoyiNNW-EI-uo`U+-N;9s$WvqtdG*9KD#{%tx)*KA_s3FpO*7tD6Elz0%BVfYV2 z#CgEw#F8iGtVD#p4*ce)h#hG zwWgs;BXQK}|99^H?0a@ys?#=UXZpF5p^zY+ulU~kQx0mFb^q`XUzriYp~Pv2CVe3uFX;NYvK=VAKG1g;0ITyo6!$U z^kZQ^0-SH=S|-DeYdWmB{!RYpm=AufvY(4ESt~ z`*r_SnybWPY_Dw1ooD7=n*rlQQfFq&KNq&o1+aXwrs@jwTJb8|bGd$8hS-PNbfhs7_zLu4#@$xQm+v<+YOykpiPFu4!lGlRL7BFVU* z-4kKQbvmrLYGgm$+$0`ld%4I}nW^U&!3BY2x|t!+<**-%K7JfSrctV5Q*-`ENJhB>stQNW(9z-!A>H z;9b({wL-C0qc1t-)DYX z{FkuuaHg*7hqnI**&npc0ogonentEiJX|0-Vy4c#54$YNPRQcT>p;1AfOrth%_1q7 zDaT6qoNW9s23DHK%l-m$y_ogr<2qZbVUH_X&FpS47sQ**BgEUxRpNVKk1OssQ_tz2 z&@+D9Z^r&fGh>f~FgKv&kXgl*Yd4dIpP4aZjr%xec+ZSI&jaYO?_}!>W?Gspd*?oq4qQ3Yd$PG?=lce~SHYvzaD(wYeZ(3%mcl z)y%o!I}GVn{MlOFV$ybxZ7AP8Fd*4y=G^a_Nzzkh;$>`#eL?&x?0)tqW}d5lZmty{ zGtU-lVk_9s6*A`I+*`yao9`5dHNvHTNL;XfznFd(`@`aKX8KU(=h1&CzR*lxe+le9 zG^{&o4(o`ExyCTZE>;!Jg>`4$Z-#Ye#n{}4A2E3t=Dfw^;ceEFbz$9E_nSM=o9{Jq z?w_0KPrnPh-wfk+F>(Ek_4xmLGyY#S(=NRM0}|GufvJ}7nz7HTe?rgg+}m6&KE+%k z4(poBW~P`0Dq=r)j+yj~Gn4*_X3}<{nYb>2hX^E>nN{SuFPOP67MMAA8SH-WS~L0o zWi$0{y_swb&k?dOi2oQpAi3L2T=$vr^PrjH4$lsSZ0*S(SYIK1c#e>Mr1(YjLj{t5 zG;{55n7MY=w!wz#|EvUOj9*`Tu>m0&BG!W^BS*?9!8;FI!K3{@6@@a&NG1U_l`+O2pKka&0}_ z{*Oj4rk-$4x!YLcD92EOpQul5D1#EU6|)u2($>T6Mho^6^dZ@(E%H5L>>Cw6qYe9G z3SY9mUEyom&>vR#zBcR+5^5_KBOz^6NJ*NukLYc~WyJJzojnGrjwqajKJ_U*lKLcn z%dIDWBd7U5yd{O~ds|Fl@|(IF?b+`Xmu!$Uu94a=uMO((9eT;IYz@(nx8lV*)PT*D z%x0+qY{>s+^qz6EwZw286brf{=1=2noeYU^p*hhhXPhJ3J%PzXjXRQ8DS+ONd^KgmN67abE?o>`KLDb(tQU zGAgr#`=rd{oPOf`2((#w#IY0kAN7^6?W+_01eijWPz=$YEQn*9S&4oQOy!a^YK!(w zu?E{H^AKYIbk|(r9`yavXi=R*Q zhhX=uuP6GS!R}9wCi-Kr%QVcFI-i+8iv3+bIOad>zN{kASHkYIsuMkP#QB0Ek<=#o zsqoNDKP%DCfn8@B6MYlx`qP}~Ti}Y!51+Aal$xnd6hC^npLw*xLc+Mfrb^)ivx3l` z#B--wj~}W&dhYLeuOj5Wn;YZE* zIcQc8=DVYxcI)x^y1826k%W($@e}I6$pQ%rEpi`m?FBRXPzS7M4l&+S+)8&Qe3yBY^x>I^i0$mZ z+J`xOT`czDdB<(Va%{x4(ue0A^BU_%EA7nL#kM8P=gVf6?8Ca$=KF0kTl&Wme!~29 z>0d}Vyj!Jn4@m!(^&g6lm=~^UGZEDC>vGPnh%XFQw#S z^kVu7=JI0O7`_Xzo;kbNHm)&KMjH}tGn1dp>qYxri4Ajku`PYlj34IpqW(2A>3K8Z z@P8L-hp}f~FSfmX&D>V~6CPxy>1OUP+E<(DGiwsAHRC7zZ<5>a2J~X?i|~DfIsAu` zxK?`R0b`qgi@8GjZ3%BT)6T{JQxfL(qt|>O*L5J_XUyd1VKeqWO>CI&i+x9_nfsl& zzo-w-0;>G@ue2Tx&jQk8&)i?^Yr^crDU_Ymw0=^JI&|MK|EUgBkSR(&F_iZ6Z_W_n_njUo_V$G`)a-q z|M1D?1L9$3#mO58!9x0xl@Mq2Rd(3;{|8ufwFgJ*s&5Oh><`yyYq1d;I zziNJ5yvs~_cAHD&pZQJfXGwp+%(XC&iGHv6RWsN1&*o>vKR0t-%vZ)SQkhxVlwIWx!<|yOXX`;E0?D_F7dU(2-a%Ubh+FzB}5Xb-a{}{|64eF1OdD>#X&;)y&yd0*1 zl~7Kxja>t)ZA8{-i{sulm)P*2l3ZZBrauQU>q^3j4zxl#q0o-2&|Id5IE6UkR7%L&DeyMqdT{xu)98 z{Wt+8Ldhg;a6w@Wtnmy|s|}{jnF<3E`V6?Bunu;)%rZ0gI0xn;By+XFOWTWltumcxFoX*QD|EifQitqq>3a1HG5vs%sgUkAIaH<-zvHrUTKo6QA4_MCXAJ|sJ}!T8?=yKd|@Gk3HH9b$XqARqt#6?~6zv*M`MMvdWrct7UfD~f+uQ5ya}qL=?{V%n*vCpMFEYkCO75{8ObF`iQog#CtM1D(ISQ3(3D$3DPGEC*_DKUc>6Ui=3Bf&av@3C z@}0$HD5rTD%D6~pTn)2mF|&(B@km@aG@e^LGNH@jmeFgnxTP&>x>$By*|q3%Oc%?< z7Y*cb7s~vk%Ro-d&&UtRkIXMwf5ZCQ)^GjFq5-RVZ|MDv-VFm+_G#_2rO(d%rm$e% z;r{RRD(!t*?_K#j!v4q;Ck~!5_zQy{&L7BsvV|6VZCTzv;kOIz4d<*p=c#;gX-*dE zn}6CD%f4K8yOt%4OA6*5WAVNi+wS~RT0nAJ{##l+@IapBF|&mdaqwe#%YylH;x2 zx6#KH1fjvfKFUdgbicOCK6i6^oPH%r-(0pPQ|F~;`sQYD%3r=IpRLaoZDZK|T04Dn z*~(+HHsvqd6smr-C+vQ$o$j^qyzW;C>RubqDaqaL(E)LGcWu$~c&k+9Lth`Pg2`3I zi|M*dQ*_nMx@_IY{c+dZU3$Aer+fb~LB}hhY~82MtNF!qy5>jsF?6-MOs8iZAaD2o zj`rx*=)soE|Gfp5FI&+VrUN^6PLb7$`AZv@Ey>Xz7-{P>ymY~W#*iW^v3u6A&j&XG zlIgRDarUuALbs(bt>EFnf8(S6iZNBiq%A703PNAL>`Tq{OXj!e_2>!l3VC<@{Op9q zi{teLyM;^t=T`XW7={(IxnuE;t5{2tHjK|Nkms?d%*W`z>a@jkgt=C=1H2y}B_dxJrv8qpM;N7p z_+uo_G5pQf#yMe-sF3$IViTj?j=1KEQ-2kDp48)F@TXVbI{dBlInm#BIw>|)I@IBB zZ5O*$vZD`=60d_iP1DCa7q!vI$JqV4HXZ7aNlIUp_PAbtV!<)4_d#u`Ki;v3O{NZY zq;HQn^|v^=UcP3E{+{+Z@p^f`B5iu(b^Nf4zt+SbQw7oA8}_Fl2y?N^fD#) zuLiKhW9N49_qzP;k`4Z7Q=-2b`>XQ#56a(&=tMe@jWUdFhA{WCZVJA0ixQDA$^KlO zD$6`63eqbHAzrCI^84XEnk#xy`Y6#~+>c?Z|Nr;hF1m)6x!jW8p?g%{R^uzAVy`V|YV z34Hy670Wty{`22s7Kb$T_54(CAwTd-f7Y0caFT(h#x})~W*lf1HT*iU^9W{THo(jJ zyH3B=QzOztHxKtQbDx(eWQsD*j}C?DNFBX=+H0C^E%D4fh zL6uyijdOV(pxn_jF8O`yf2?o~EPa#0n_<~cQFxp6+Z1lLp7h>n{XvC)V*Pf7_nFU9 zNF9jt+21i!pPqsh*Lw<|g%#I!g@?@luCN^r6~pf@h`G#T=yh(nuBA*HJVoJ&u>9Ps zDSE`Gv0EaI`^I`riNNqC<{Og*1x z`@sqq!Scg<-pj1V|8>^CpzsFk`zz%4+{E>!Y;HFTb6a3KTFKYUWXlfQkbn2Vii`KN zS86|g&+rGZ>&DII2@1brrmVM^H!A!l?568a6aKcDvU?bIx%^ea)Jyb4_Z;kee%VZm zNj*bfQ1~xq>h(Kj%Hjjqc^k@C%(0<@u0k_|s8F6|nW;-gjA4Cwj^+=0Eur?We+ycUGdG11oJvqqb;I*~h%%Sga@H z5llSfb!5g2@H&MdJzSI|q(@9%#J z346^o3Li4BQFzd-AbST&_BG;Hv~e!nZmv^EyA$jAhY8cB#JoM-On!tqrV0axHbl%g zoUtADaA-rsB%Agq`k7{?{KNZhE+c+}LwQw5zck?$=E>62cEqx4GY^ygu7tyHM3gyI z((kh#e$>o;L0c33yks6B{afbI;vOgQ{5*>$_hdak|NtgHz6 z^6UJrSW$Geb)nuWZlssCSbzGOH!37evD~@MU{2`|b5Jr!8_cy7V3!x=1lKC8gsG5{ SQQBbgxe9i^g?mJd+y4OQ!2|#R literal 0 HcmV?d00001 diff --git a/build/shared/dist/examples/Display/barGraph/barGraph.pde b/build/shared/dist/examples/Display/barGraph/barGraph.pde new file mode 100644 index 000000000..3e6664a1d --- /dev/null +++ b/build/shared/dist/examples/Display/barGraph/barGraph.pde @@ -0,0 +1,58 @@ +/* + LED bar graph + + Turns on a series of LEDs based on the value of an analog sensor. + This is a simple way to make a bar graph display. Though this graph + uses 10 LEDs, you can use any number by changing the LED count + and the pins in the array. + + This method can be used to control any series of digital outputs that + depends on an analog input. + + The circuit: + * LEDs from pins 2 through 11 to ground + + created 26 Jun 2009 + by Tom Igoe + + http://www.arduino.cc/en/Tutorial/BarGraph + */ + + +// these constants won't change: +const int analogPin = 0; // the pin that the potentiometer is attached to +const int ledCount = 10; // the number of LEDs in the bar graph + +int ledPins[] = { + 2, 3, 4, 5, 6, 7,8,9,10,11 }; // an array of pin numbers to which LEDs are attached + + +void setup() { + // loop over the pin array and set them all to output: + for (int thisLed = 0; thisLed < ledCount; thisLed++) { + pinMode(ledPins[thisLed], OUTPUT); + } +} + +void loop() { + // read the potentiometer: + int sensorReading = analogRead(analogPin); + // map the result to a range from 0 to the number of LEDs: + int ledLevel = map(sensorReading, 0, 1023, 0, ledCount); + + // loop over the LED array: + for (int thisLed = 0; thisLed < ledCount; thisLed++) { + // if the array element's index is less than ledLevel, + // turn the pin for this element on: + if (thisLed < ledLevel) { + digitalWrite(ledPins[thisLed], HIGH); + } + // turn off all pins higher than the ledLevel: + else { + digitalWrite(ledPins[thisLed], LOW); + } + } +} + + +