From 38d2177fb52ce3431849773c4d637bb08de3e4cf Mon Sep 17 00:00:00 2001 From: Natasha Date: Tue, 23 Apr 2019 17:22:30 +0800 Subject: [PATCH] Update the mini program readme file --- .../single_chip/recognition_wechat/readme.md | 53 +++++++++++------- img/esp_eye_Wechat_cross.jpeg | Bin 0 -> 14845 bytes img/esp_eye_Wechat_list.jpg | Bin 0 -> 15687 bytes img/esp_eye_Wechat_network_configuration.jpg | Bin 0 -> 23442 bytes 4 files changed, 33 insertions(+), 20 deletions(-) create mode 100644 img/esp_eye_Wechat_cross.jpeg create mode 100644 img/esp_eye_Wechat_list.jpg create mode 100644 img/esp_eye_Wechat_network_configuration.jpg diff --git a/examples/single_chip/recognition_wechat/readme.md b/examples/single_chip/recognition_wechat/readme.md index 0504709..94980e2 100644 --- a/examples/single_chip/recognition_wechat/readme.md +++ b/examples/single_chip/recognition_wechat/readme.md @@ -1,35 +1,48 @@ -# Example for Wechat App +# Face Detection and Recognition using the "ESP EYE" WeChat Mini Program -This is an example of face recognition at Wechat platform. You need to access the app then get the complete experience. +This example provides the function of face detection and recognition through a Mini Program called **ESP EYE**, which is developed by Espressif for its AI development board ESP-EYE, on the WeChat platform. -![Wechat app](../../../img/esp_eye_wechat_qr.jpg) +![WeChat app](../../../img/esp_eye_wechat_qr.jpg) ## Overview -Like other examples in this repository, this is the face recognition demo via wechat app. The basic connection protocol between the board and the phone is HTTP. Instead of typing some IP address or command through web browser, we encapsolute those commands into some simple buttons, and display the image and result in a proper layout. In order to get the right IP address automatically, we implement BluFi to lead connecting to the LAN, and then use MDNS to get its IP address. In addition, with the help of phone keyboard, we can register our face id with a proper name(only support [a-z][A-Z][0-9]), query enrolled face ids, and delete one. +WeChat is China's most popular IM (Instant Message) application developed by Tencent, with a user base of more than one billion people. WeChat Mini Programs can be thought of as "sub-applications" within the WeChat ecosystem which provide advanced features to WeChat users, such as e-commerce, task management, coupon services, etc. -![Overview](../../../img/esp_eye_wechat.jpg) +To provide an alternative platform to interact with our AI development board ESP-EYE, we have developed the **ESP EYE** Mini Program on the WeChat platform. The **ESP EYE**, when used with a proper ESP32 development board (with a camera interface), provides WeChat users with a series of easy-to-use functions, such as face detection, face recognition, face ID enrollment, and face ID management. +Face detection and recognition using the **ESP EYE** Mini Program has the following advantages: +* **Intuitive Visual Interface** +* **Customized Face ID Naming** Use your smartphone's keyboard to input Face ID names. Note that only [a-z][A-Z][0-9] characters are supported. +* **No manually IP address entering required!** The Blufi device automatically shares its IP address with the smartphone using the MDNS protocol. -## Pre-request - * [ESP-EYE](../../../docs/en/get-started/ESP-EYE_Getting_Started_Guide.md) board or other ESP32-series boards with camera interface - * Access to Wechat app. - * Make your phone connected to a Router or AP. Because we need the connection in Local Area Nerwork(LAN). - * Make your phone bluetooth enable. +## How to Use this Example -## Walk through +### What You Need - 1. Download the program to the board. There is one thing to mention, when compiling the project, remember to make BT/BLE enable and PSRAM enable. To simplify this step, please do `make defconfig` to replace some default configuration. + * An ESP32 development board: An [ESP-EYE](../../../docs/en/get-started/ESP-EYE_Getting_Started_Guide.md) board or other development boards based on ESP32 with a camera interface + * A smartphone that is equipped with + * the WeChat application + * the Bluetooth function + * A PC (Windows, Linux, or MacOS) + +### Step by Step Introduction - 2. Open the Wechat App, now there is no STA available to notify. So press icon `+` to search and pair BluFi device. +1. Download and flash this example to your ESP32 board, following the steps described in [ESP-IDF Getting Started](https://docs.espressif.com/projects/esp-idf/en/stable/get-started/). Please configure the `BT/BLE` and `PSRAM` parameters when compiling the project (You can enable the default configuration easily by using the pre-built `make defconfig` command in your terminal). + +2. Launch the WeChat App on your smartphone and go to the **ESP EYE** Mini Program. + +3. Click on the `+` icon to scan nearby BluFi devices. + + ![WeChat app](../../../img/esp_eye_Wechat_cross.jpeg) - 3. Connect the device. Then it will prompt a new page to configure the network. Fill the SSID and Password of the network which your phone is connecting to. +4. Connect the device you want to control by clicking it from the list of scanned nearby BluFi devices, which is the ESP32 development board in this example. Here, the Mini Program will prompt a separated interface, requesting your network configuration. - 4. Now you should notice that the board has been connected to the same network. Through notifying with the board, the page will automatically find the current IP and enter to a new page. + ![WeChat app](../../../img/esp_eye_Wechat_list.jpg) + +5. Enter the SSID and Password of the network that your smartphone connects to. Note that once configured for BluFi settings, your ESP32 board will store these settings and automatically connect to the previously configured network. To avoid this, please press the **Reset** button on your ESP32 development board for three times in a row. + + ![WeChat app](../../../img/esp_eye_Wechat_network_configuration.jpg) - 5. In this page, you will have some buttons and one fixed window. Press the button in the middle of the window, then enjoy yourself! - -## Complementary - - Once the BluFi of the board is configured. it will remember the settings, and will automatically connect to the network. If you want to reset the BluFi, you need to fast reset the board 3 times. Then the information will be cleared. +6. Then, the BluFi device connects to the same network with your smartphone. Here, the BluFi shares its IP address to your smartphone using MDNS protocol. After that, you will see the main interface of the **ESP EYE** Mini Program and be able to use the "Face Detection" (the upper left button), "Face Recognition" (the upper right button), "Face ID Enrollment" (the lower left button) and "Face ID Management" (the lower right button) functions by clicking on the corresponding buttons. + ![Overview](../../../img/esp_eye_wechat.jpg) \ No newline at end of file diff --git a/img/esp_eye_Wechat_cross.jpeg b/img/esp_eye_Wechat_cross.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..35c23a88eef4d1341271d60782d602ea305a7e57 GIT binary patch literal 14845 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 literal 0 HcmV?d00001 diff --git a/img/esp_eye_Wechat_network_configuration.jpg b/img/esp_eye_Wechat_network_configuration.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c4f633647c9f7114aab175ad9c99cb628dcb5177 GIT binary patch literal 23442 zcmeEtcUTlnv+pcRj*=xVNkI@%az;cXiDZy0Ip-j8S3v;*K~PWuL2?Gkg20kdL2{6w zWKeQuNxOHz@P_X_=X~ef`#krLdk1FwH{I3MRn^rq)jd6!&zMQzjPebo8vq0X08hX_ z05b*LllQT+1^`u6fExe+d;kYR0YE_n0sjC9J%DqH0YDkT@EdDFxPH=L0YIo7fc=xk z08CE~kn>6HpDEUBtX~w6i?5--arX%+W(5#cw{`J!@vwDqWf8b^84$guq>6pQ5j;-u zxl?#%fGKh$8Ysp7evjbAGU^%}Gfj3!NlwmGT~qCb(oOkOrO4FHTwNWp&H#Xuv!}bJ z!ZnuL`UWg`GoUnh03iSapk@{xuCnUtH&1x}N>BO!{@EQml^y8kJ>m5```-iPmR24X zpz`Vg%gO&0RUUr!qwdq0C1MUeD=GZt{}z*r39$lK>e07y^dV)3@H0r`+dg7~ttrJXZ~Ye6h+VQXdy;v*1WbaHY5 zF&P(#xy=8>$L3Gi%*^~ZPct){-}r|vU`?>$>vkTlj%L267yl=JoE*JCdz~Ka;4iVQ zyP_tTQk~e%!A0c+6NC7@v-vGG5L1A7zz)>tC!V+UQq%$Q2|dcfL+-=_X#fC=*wXB} z3Wym&%;xNP>%@*H`O?;QH z5dEMD_j1sY1@Q^bWLqnxUp#C4Y_;{kd{9oT9&bC{TOcL{@wkVB)`<)!?JoM+%AMq& z(zttRp2!ULITWyVzj2}?NCV|?@&M6kyHIgkJEaqPPzLBtPg`w85QBB0CKhI=vYiF7 zy_Lu96B$nBw6wY|4`NU+Xpoh&&QJNFv96xiPWYeDXSh0^`uz#dS}R9|lYBN1cX@bg z{i?g}2|62?584D9aP?F_u@5L4HkG}Z@`+D_GGKE9Hvu`|I=}*Wfu}j(0@wp~UCUL= z;MI?k8-N+$4%h%z0PoM7Up4ejOPs-9Ex-?00h~b^kKgsKot9bw-eCUm@7y1Cc>(Lw zQt#6m4!}Ivf)k(uID*$+AhrVQ{Ax`Xm<4m}eqaA;-2#-=5j;=I{w0rv>{lMHJnnT| zMcf;>7qIEErLiTjZ-T#9!IK|b6kF_t??hW{AqWB z%LG^iv;^&1;t=6wSVNP8~{K$I3@@u|H$L21c&n|0KAW}@N)P5!4LZ+!2zEr zWZ+1l1DFAJfD6=!9}os4fUAH!pbV%1+JHV_0@~RY^iy}>E)W3R2SR`d@TnLFBmgNu zI*7zdU`1iQz)Hg^z^cS*#OlBr#G1rf!rFlXP$DP| zloiSg6@|({)u0AYYp6RE4h@IKL(`x|&>FC(`=OK2W#~ROE;c1L3pOw4uZq|@*cRAs z*l_Gf>;&u_>`Lqw?0)Pi>~(B34haq;4iAnvjuOso92=awI3YOkI9WIqIIZB=nZwz| z#l@w;<-`>M$DTf}J+41)B^J;sk00mIS^8(F7R;H3Z!R za|DNkF$FO< zu^h1xu@`X^aW-)S@d)u22?@!0lB*;JB%UNuB)KHbBwtBTq?DwWNR>z}NfD%pq?M$7 zq^o2EWar3a$xO)n$l}S$$hygv&k&qBe@5<%*%|nm#52`rhR^JfQ<7gHS0i^Kk0j3{ z|3LnY0*~T6g*=5N#RH0Tie`!#N+=~er5vRNWiVw1Wh>gYFtt_n-?IYSE+CJL7vkYgip0zp~ zezy4R;MoH@7CL!42f7%#D!MQ9*!0}=8uWMRlj&ROml>!SBp56h!Wl{#Mj5dfxfwMX z{Tb64I~jMFn3)uqT$x@nH8U+U(=cCUwr76ET+jR+MhTOK*}ooew=%`7QVp`3D3@1a1f*1l|g42=WM82__4E z7NQhV6$%w<5;_(Z5q1|Y68p7mQuMtTj@UIZgjlWEzPPZsr+BIO zngp+egG8RhH%U%OE6EJW87Vd?GpSUmNof}8JJPSECuLY=%w*DJrmwPJwY-{jbwT!m zti5c3?CQ14*W9mFT-%cqmkX3@xDLIpa6SBbmpp~Mj(mdr*Bfj%Y;NS=SXU5I@KQmM6Tjy>$->Omr z)Rfeos(n%CRCiNW;^Ce=1J!37IGHPEtV{=T0XP(2j>vBz6aDlo|I^y2b*=r!dn?Vae2x~qG)%!k~^*{9Q& z+xL<0g5M3lOn+>D3;(77)`0r~Q-QL9sc;C~9NvUrM?65x-BY-ibD!|O!~IV|mxE%1 zwuAM8YaTE?xc6Y@p~A!b5YiC$kl|2?(3CLjFuSm>M*@#tK0=3EhJTE>91$OJ6loFp z@$r?%FCJr}tfRW3g`<<7;68DFG87{dlM_oG>lZuoRP|})GnQxJ&$i=C<37X-#-}_d zeD3vp^2N;;Z(nk}eDd-r!8Tzq@mgYW5@XV%q`g;`ulka&CKshJr9`A0ytaG&IaMLG zGVOd?d^&ErclvyWZbo~iXl8B}eO5%)akg{zWR7M|ORh+6ZXRP^bUs$TSN`_`qk^8o z>xFNNc#BetX^JD>0B^kBESB6U87fsNZ7LHjD=I%%o>W0u5nc(Y^sQX4vaOnYtN*sQ zTDiKZMxv(T-KBTgwXC&?b<}my^@Q~g>M=+^;MD-Yu{#EH_zHtL&H!Wm5ddg#`!Odxp+1>|z7{+|eKbDzPSQUg zm>|dmIK)2I25c`WN|4q%<$OUsQB;4q~fz*D`}+G>|N&&Fn13kAf%x^OGkh1 zJSW!$Zb2bo5m7O5x$E*b6cm+|wX}6~^}vwK!qUpx#@5c>!_&+Au8*%@@PmgTp<$20 zW1l{Yi+}#&WkOndMrKxaPHtXlS$Rce)!XWtrskH`w)XcQKKAtw3=R!{9vPjQo|&DS zU-<_)hzyKQS z^nhYvL2;l^C=M1F+M-YV0Qy_HIl@ybr>Lyk!kcqXo`Lc(?Ug*l?H!mtestV>EA8If zFJOA31^q2s$t=E8tFEd!WxjV1@ZGF1v-TCYRrPu3x{!rK*I ze)>{a@hl;;^yAI(53VI8#2&Ln+9ROjd2L)#M9#P2)Ma0>LQ)Yja24Kp1gV-H%`ED zsZ%K6Rq=?t%Q{kipm3pVz#@6xOUb+k?yb2rARd0eu0Uod977>>=xWZjJ#w^{S5U^s=uPN0xIA6h8Z0`8-Q9=JhD! z)%(usEA8ElBoi?v_xYM&L<)g3@2np_4MyJ*Z<+%C&o5x4Uvyl0W{XEVTZ5pQU)lm zSEdHiKHfHEylof%m498RqCWdLJ)?>D&cMZUcZ!}iA^BdU2D9H`&buMzB68@kmy|NJ zTldbid)BX*4c?Km-S6yRayVvOIPc^2YOZkeDSk7b4tormt;oq#cAs!^`MiVw=T~YQ zIMS0z^lP6zOl7a7#}4dAsxs@PVtOhpFaWbI2H5#1bBwK5H@ajX)2d1*s7Cu$KHI1G zW~ft0q3al1ZOCQCiduLlZa}qK&mPHSyy?b*69zC!#{fO@2E`K&W^szG%R}8&JD<_o zsgFIg&pEWNzQX{G#%Hsca=FrKy2Tz+XyzHKHCx;kGQAHL8sWoE$KmDR3GMyL5uUiaxBOhaK~K{0khyRxP{ zR@6YLHCDmS(R6vmoR>}CTGVx_ba{r;rWvmzkOGrPrnV z_pH@(*d8k|XoN#}+`X-|1KODt7w3Em(>4dI?(bUS zlTJhSOOliH803v5an1^Hwd-WhBCp%%2^0zr%=s^Ey+b4-dT=P`C*(>i=;TTZ2YAAV97ji2 zvY>lfjKSa3G>i*{1}!yXfscMc{5vqYZepJ=6%x2TobiF|`n_M^W9FO^nUB(++~>GCad}kk z!lav~PkwtneekuxT8YVAA*ow4E$-J3>MIIL14}npoHm*nZ55-WCIo2CB?8P>j6!#X z6ET1!Vq;5DFi_N;_2_fTk`dx_M@r)Q_hYZhVF_dvjFU62*va3|DRaf&&Y$sXjP;(L z3M=egSct`=Ub3W3PAjIPZx` zYCenAv${sAdV@#TrWbt1YVAt(tdyhHq*)xaggWlmFbFG}MW#$`G18bz`7j4n7e9iP zULVzs6Ruic(|E3RTl<~9krRInsoGOE;OzaQi(<G#$X~!w!oCx2LUJyUZj;yWYFaqg84Y)_WO~hP7!J(2E0A~wbr&iYB8lfG}4ii#lMo?~>4yR6; zkRLy(^)J9*mDC7ydfoK-{1x<5x8Oyp2U-{aONgwk`<^rv%5aJ(&_-=IyJo;(iuJOQ zuUwbj;`drSaQCX<##|Efrwg5-i-gBKO{+yk#n}$| z-)E~|9(>>_kAfGpqzvT~Jm|F16mp~1R9VhMA@pd>qCc7`Yr8%(N<7p=gqyCnQ165; z2WH*=8lW&BL=;CNoRVGEKxQ4+BtYg`3m4i9^b=_+4ihmYKC-i!4zmzwNKLJNz)0sb z+cqiTjE!rwcXrJr-Xrvt5wEi6p6$llyR^4L#N+Idgnk&n#4!2(;Z2`nlVNGj#Zl(; zi;uFutv)d{q_{4t%=1!sok+|%Tk;O+&XP_chyCVq#&K5o(8!+5&E`4k z9Ba+aMLm-aJ^$6@_o#*4pmmzUDbp~&`MesVp_+3$-6<|^b17v{xkFqTEiZgE3~Agh zCSa%DTMI%sydp9%T}C{rQPx+G`8a$ADpi6PsYHpjD5W?qk)$)h4Db9(w9y6LF$ip$ zcsl&WF3HBQDv+5;`|cCYwy0HgELJSv+4?Z`%+})dOs|S(cVefgb-YkFW!!*P-B?tg zNy_k7xSxih3CsHYyD4LXK(ZEH&D*AiNs^k8jNVpKbZXYv!M7`R))QhiBWk2^GcR1b zC7^2y4yW|X;5Y;Rd}goC4xNXtH}s`3}fWo6lrR>euu)GR4}f#9Y+PKI3QDUu?et0g9%w(Y^nT6jS@H#roOdt`vrPL3;$XP&!V&R8?p}(sAtgx+QzG zxW@53%oBk>Q{*t?_BQf{e7V=5d-j1rIXlG+8>TByr-`y+$#B2DxqaQ8#$iaHV`sA`kL>W2qVioU&wcHD>R_wMkKEmj$vFL55Ks?SGwSPl>N&(9eh?nu*AaZ2nW z$ZqXYD=BQLuLM}QCkadOi)A!)2#Yx@t-`bGsC3-ZrET8mr5#D2GN;!<#8bwOL_Duk zToxErRH{t6JC1CcSSkLr!>IR4Ltn4CslbSvC(F~U#Ea{bcINqn#pwRe*(jSsEtFVV zoOEl!=VGz;(d7*1hiV%w?P#noq-WjsS7s(4sNkvYu&nioFtai4fDPs9&Fruw0(Q=l zRq@=(!+DfmtHDCh&X@~1%6oQn!hkW~OHXSrW*8L{iVbJShMK19ok6MXW}%E1nkYI9 zO5Yo8?&{t5)$}XZB>Ut$8IGFIv(nM6O6NO@OG&+;+09i)<#xpsMQ>WXQ#tX%Q#ZaO z!(JRW|8AQ7I)lR)9sPxL=e(uiMKX2&AQJ20(KclzCCBbh3wU&*AM{^?PvbB!PP+H| zl#ALf54k6U8TcPQ$?D!s(l*O(aJD}&G;K#J^flDfZCl~(xgo}GFh;Kio3Kg0E$)jB z_7+CqqOpuoOS%zGU$%L3-jfkGhK$+P`8mxDB&_>H!?;D^1_-KhQ-Q^|a@--D)SvVw zgXW*7Np|m+pwbtN71pa{pIa5?C<$SOLQ?3$No5}1pbIVP?HAf$G8x!mSh3Kk8LSW^ z9==;z+b<^88B6gAWjX1ur?P(7=oi|;NBjLNWq;{opZ$1^J}%0a95Sm>DJy4q(jmdw z_nY;%^<1_@w;TfX?yPA+eYYBWqrJm`kkZ?J%q2K_5)=LL>ST^9Hm+B)9j=U@U1ATLiKjqj9)C~?c)5hxGu8nGccV%{fylwOSla?$c z4pD7&{TBy-80UAB{&mD;bXYyl*Tk?F-w&9|R+4v~iVp~ z0m{5`N~-Q#4~1iOP((bwrY6Up%#K&794%{-EF=Ap4t&A3kYd$8u;E@roBt?#r{LzG zIHL35;I53AkPD$tifnlma%elEPWtO|4At{9lFGB*IQJGlZy6m2vTi)z4XZ~LW-3gL z1+of$5*8bBH&GMzrI%dp0(78~Gh#cf0TU+4rn#O~`eU9jhC|_OGT*kYFFg6umnSoDh<*zcp^^9m`6lW$p z65WYrFGW3EM{1#*rYRR*3DFPa--$1Mi)VAZ?wHae$Uiwqv<zctID* z;-8o9N98wcUL3%Nsm>v|_nUXE`uep|pHg4q>V9y(ggiULEu&ZTZntiberx(+{R>hp z)&41U3EY=2yT9QCBung77t*`fX7eqrOYiZ(n>ku^4ZDvo?p_DUI@QI1N5gayY?Jb#WhpZWVR+@IrH@{9%5?W9gxu zndq-3G4rq@y1ch}8JV||>G||O@WrG+H6tB#+Ek4-BM{Olx$8D9Fgg>T!#45kh)bU_ zK(_KtWke9pGzUz+QF?YLr3o2YH9;9*V>6X#eZ?^8)7{Ik#loJ)vxstc>cB34`mOW> zy>HRW`Dyw-T2qx}8)Xx~d?BZLzEum@fEvB*gE!heqV(ryX z>GQ0$H9uOo$dPV8ni%EYF@>Ukev|eVhfW1~VF1wun5T<;v}PvbqFp=GA+DRL?N(4I`iA?c^Ysv~n>sCUT}0_U?8ZreO; z)*~Z~EHf-Ma$?T3FrRoLwByneJzA!^p8Ohp7Uh-I2){`1aP{0dUY(~wPcj1DYF@sj z6DVNB7lHvCQz%*y^r$NNit18}PzV0ro3HnDysaGlD5NVsF?I+h1r~4>nS5Gusa;7{ zjn#VoCjZfM8Qu8jhbi*`cRs#Xe#4T>5_DOXNtP)rYxot>7?wQOv=A)2DSA@7$RM5Q4Q1VRq^QK_{e8!k7iyvJM$FUIpjd!94Q$OISR4b`NKE;XxU1SnSx zvl^E;#5=HC)b_x5KkRX9);q7SW*mrwc@~-ok2)5uEOft)(y=&zn)<*;M*WOXHqGMG z#4nuZBJLhiUN<89Bp;9^#;spSAF+~^(s7{hb*^}9_C>gwpSz~16l@Xh-z!hOW7GK8 zr6Wyx05kMI8{lNw7{JmCZ@SlFP;e|wW-X`H3_ftFdn4Nb4`p7iu}uy=wqIM$^ogH1 zyPRrG=)7Dst+D7@9DU?njsfhEBukf%)ay5}J{t)qy4l&c&6#^Y;J=_t!onbXmPxVr z*@8xw)asl5HR*%P?o$}R%VbdKF#5T7C=S_;nXTeJveAY_!~=S%0y*-Em9&(!Yc23J zq=;pA{Gs@Y=n?oxM~o6Na~>xPe(~$se+1k0npfCk#I`^=r^|S^PFe2GV*pmythbDw zG)MXC)%%ro^6(~Yy!l<^^eDJcT!S^?TD$Ar!&YA^R?!W&7Z1D z>q;GyoP1OyeWl)x+HF|Jq>Gd$R7(;S-n>q;np6OHVTNrK_nDH8t4v~m5!j)goW!L> z#e^BZ9g6Xi@sS+{r1H^cy>S|~H2@)gOn&?_KqcL0VJa$pJ=^e3zrKQ?iH76{8~0mu zh;eJ~K+&D_2$thG@%UN`j)~W<=M;~v3mHbW9y~LBx&P&!v__As3?WY+{9FL`9aER=#l7+9XHS^gR%O@PIJfO*8oFXRP&ChSQFm$n3g<8* z*Pc1B>hLXR`g>PGKAnGE_mh@8JX!_cx_DKpwARQzBemaE_erXz-c%ViRKxBK{+NF& zLlG~_I|yE}!TI3UoVbm#0GQ#-UqUc5s_s0gZ1~=0*G_Zagy*#xZtT8O9#)hz0 zOH7QDd(s~_MpA2o3Y)a_5|iTD;@({KKdfF`jrzWt;hP~{%ueevkg#7HqFf|EZj#cl zTxT$Tchr0~6^O8>PTp!($KFy^lXn|)(0rzgZ@$>OWR2Om-DpjdzkBz^8;vbj zDkqLTsgj}E&=&gZ$*|!HUR*ou?rft^j$P@H&Rcq}Ol6VN^_$00o}ah7@qC`Pid>=* zTOHy@ykjabe35eN_Hd)$ZidjSyIMoEs}o<0jL7z^Vv^tw^sG%E=V~#TB*JH%T(mkr zxsM9Ej|*wn?SDbu3iVhIo;s4Dto3r3lE|+rt@6oA)@N7mE9bz`Ar;SQ>pkCQyl;_d>CKI7sPmr49xmc247hFc!1=%AS-RNcUpjJGk` z@Gyrigl(OYkXmFiN4!8>RVs?7sobqNl9yToIxe$Qq!97CP!-E zO-BY;)D^AsecqQ6ZYeK(zx!}o4F~=SMnc(Y!dkVplV1_3#>QQ~rN;GftVNA5Vh0-Z z$!P5X!U0K!iZ%|F-4G5L)ydorI=hP9oK!Q+=mj z3zF&2sPfstH@hYv>3&0F(4%dKq=7RQzc}=WdfjH4HbPR#DZS{CuLXXbd~0hb8MbR1 z{>7HJbfSl;?n>>BG5c+XK~2-P1I3Zgk$3&y32ma^!Ah*FLnLs*(nC6?4)b~Rjg=3- zU;yK8?c*G2%I|ROA;(&+sT`cj=LPTDISBUHsx^?aOmV}UOb|w|qR?gpy(Edq@{0dD z256I0=fU@qt(RyitC2XXhsu4r4q5pc{C>%GOD<{~d|`t5 zM0I>B14T|3*V-S|W-EJA%QUUopzbx{SSd(;0$!L<3X%Qp=<0pXUA>{lHDZ)GJJ`&GF^zaZJZoh4 zF#x$F-UfSv_XO^dofEO1@H%g~hD-<3fLnCjw6kz$og$vt{&S(36iS2@lFmnW+DWc) z0~scm6i@i#&{D29eWnw7_~FB9-O|DZoANLEW+iTOfqZ2O!@5)9C8@;DxB*LrRT10c zJ2C|D&*J9>!#@Ye^>XODLO)sO3-bHFND481JubDBT6bJfPi^a6i~;bIBfLB$pbrc^ z%OX>DUxtYuTqy3!e}BF|+rjvnaQQ2rE1g-KFr5HcUn=$)!Y8t;r1El8l2j@Db?-P+ z3q<$$ANX?gJLD^4fZ_K$e2*q*CG|G6G@=%ay{bwpImSks)SlA#@ILLRW~7mN3+O%9 zkPoDRkrAqEf6wO#h~lHuty9n~FXkK=?LShOCgD`8?enZtp6}~WKl?W1fP~*$Qkze<6H>}8r@V{>ZhrP3**hcRl8I;=hCoU z;@fKQ+1^LrFrK!myLu6Zb0qnd6O}tv$aQI!*3ONy+Ty$o@H9$9#KhwT~@TP$9PrjCi2+gm&!PE1|4al2he zZ5l61$P}FS)oxf9)5{6<$lp%q$k1rJoRhKX_Tj^#(sv`FH`MmlXNrcask8Gjz&*dW z0Yi^3W@XXv?LCb}rfuzre&kB4+nW1*2RgYEJ&Ek=1@A&V{}9gnehKg&+=amEWUeTk zjioji5qbI2^=Pf$FA<4iAJilL%5U*&Nwwi~CPAN?Eaam{^|o%88^A&|i7L-h7>)18 zUZ10$p7!y_GsrGa5|WO_Ykm2U(4;L+H+|E4ySi@Ll+pptH&hfLJI#<) zTVEsQ%Mc0a)h4CZb_FKk)^F@K(mU8%Dd?Eq>*!#YaNYwLW7W)b`N|KE`R58McZa`U}YT;rCTr zcS2~%KSUC~-$F|`lgL6b02q0P)Uz$wO|DUWOBq3qK4>QJrJ4V#>m2i*PCM5*m?g;PJ%`?V zX^s|Ev-RQD^-r%; zqi+nw%m+!%%CVi{2(v-?;siq2UsG>=3KS-yBbMhH3h6`@bo1ptEWRjZJPl5Zyck*K zsnj9APQ_anY+sZ8<2$?mDunnMg^;E+!p|i()?e(a)pBuuu4#9d=yJGP%_J6nw?&Yv zKO_Ay#fHs;0HQ-x)Fm=pML)3%x7 zV*ooRLK!kt{0OgC&cK_>m>{F;$6tq>MT+~sb(jhUC>+NhxlM7#A2tK1XceQX)q93- zhmYUZ2;+G!9gj9cTHIVdPY-hp2d1PBCb&k-2W!W7-3xk6%l(9Z4!K z7p&oCXDKw4)pdrY_lXJANxx(ttElHAiv)5~yje<6wX@(R;=c(ee# zotahI0|S^}UHj0rByx0hBz#|FCOL7vSY?AZNruo_(_grX*PS&k>*2XCn-9D>W2?s@ z4KqWvT5dZTU3OOc49x>tIvK;(+cXX>`PB0Lo~$$nnbu&usi;vM1+4l|uL;ak(A1dX z+DD}MyptPZ7T_N-HB{D+wZ2n&f%WQak|#9Qp=_P3Q7z1r{G38>`FzzIi!GBcQ0lkL zd5T{+-&~d5q23)1sb>f{fBdREZo?&FEp|y)<6+G!_qmOa23PrIrPFyA9Tv(QcOPv+wB;pY$+YTZL6;Idd6OsC$2^m1H^~OkH1b?y>tI~8H^JSZ5(LhNnEB< zNHZUI1Yz%K`8JZ}wcW#&etAbKzpB$Bow26{8N^229yq>M(q0juVjx~wnCmba*HuzrR5!OW z_VQf3T)ekb_a@+q2MzBkF8p{IrqkT^c+Fx`;AnX1ZS^#-16o#|N-x8w@z;1hNfqr* zhV=i|D`>9Qcp0(RzhAude&fl^><&$gK-W0Jy_&QxtU z3J+CvHyA6+lyzoAJ#x*)Tlf1oC}W8Tso6GlSckv!vW{|p#}T#37_T(Y1N;m%fp2SjKE$~7ekK?^W`x>sh*p0a?U|jn;;JcK$=;Ie6j5=D@K^t zxhf*c0(2a|e^#|!L3b~-97Kl4Y919?dC9C(j3Ja8)N_Pi6H0|}o5+UeqqoAGybTbhu9vtQ)rawd z!vp8m5T?F+uqcG1$|H-|=Bc5$U7f@HyMB;6QkpoT%wvgYs41gQaEsqw_>Ra>fC54| z-JcUzKhX_(m?uhD{}I?NQ05uw*bI=ShA)cmeMyl@bR*@XUo*LDTxsg6Ay551ndMJ= z8h-C@(1cT+z7P7R7q9>3lj1K?sJL3KVL!pZshb`ukJp$bK!IYX??}< zD>&YFaEg<#(8A2YcN}LuE%cbQU+{qq!#ge}w@>h`$oBqbjom?Eh0QiRp2EnMLqZGJg#QP)9&l9usf7CwuS$qGlwK;#+hN4;FJZQKAxHpJ>qrbyt zlk4-~AuYIQEHHHi1HAm*aQDA9j9tsu>Xi#?KZ3y8|lY>sYlW4WT=Oz;{E+!HD%K+PHOU@sa*b46Vdb-rHTQr z)ukM7BHE&N7DG2>8W0;q8>U;EGSU06s6_h5V5@M@YE6-Uru>VAd(n03Xay9}-?b!R zU^ogkEkXQMyuV3s+BX2GCE`cFh%LKpl3Z%T04&4Hrhn>-Q)@n?TTetk^p`mVBjLxe zr9rY;1o)n7nsyqwFpGd~$}mY*VgR^umb#GvOUw zJJLHkik?9$%w)$;%xaV%-wXZp1`#!s{7I+&sw?xix&%Idb3)K3K$*Ky8pvM`PloFK zcVu=1t;|6GC+|1!M*r~Ne{#a3-`yh)R^-|oI|@IJzyN>kj`j2ti{b%>d|ElcCc4meY7j!daHwOd6 zzRMvyu)sq{P){DfgY)c51b2m3xY->!h^O9=%CPZ#McQlIpc(_hGDp&?AlgF)?NV{0sSiGOu|8<%aUU#4vajpA z&fRPlXlYA+BvRasX2c8~zj-RxSF19GU(W0N#ks)6aVqNeSgIENwp7?6{w%YD%;aA4 z*7{iU9-K)frD81c!}*|Vm*+X5w(v1<^X}x%Zc*Y54DduM^w?h(1EdYrB$6Md1umtD z=H@xa9S;{q=}+b=7dTX`@njsOT$^GcP6qOjF5tjP28UgsPM}dt_Im{;nOAN)U0zIU zW6Q{eQn+VeeK*>l^LWRInhNqYu)gE;LS^?*W`8+lZ_rg+9nXLFkni*Y_Jh~{FpfNM z_b221-oKHa)O+@AX#C>zlkHF1)8b!T|3>@jpCkaa(fiM2_$BVYGX58F|B>{U z$v}BeMLdzg_b28X18**%;k+6(t}@?e`cht4Dn^~yL!Y!=gw+${MZg#^vp@XWUmfq> zmm~ImzWR$_0#t?x$7@y2lvcHOFr)!i0Xt?#?5~%G&+a5t`Ct17kUI$~< z=!2&_uknSV_wm4fhM>)Bt6C`*T~QudPv!ZEcB-C?y@(ZKRH>R}J#YE=jW6qnEK{pr zJg6fJI6IK()Jt6Q7FhI?|N6@5qU#3_h8xVb@||+7jT1!Fq#3T-Pe_1(j+`S!R9x1F z9DDk%m%bU_H&xOuRKxC6hvN{lBR99EvCMlz(Q}VJt<;QXL^E`9JZZ|iR{CuA4RRR^yL1?_8c!W6$)2v!J+Z)}k0%+qKABJ@UsEMJ~s^JvUiZddS~!{}KhY zHR4sKPtwZ1Hty&mq!A@B%@^tUSy0i7$>q>rp=3z#6HFahR~9w8YU`zX<LV6olM5N*>(5}Ougw)>u0A-FzZSi|^E-^DE9I$w&&va4dj z2+{oH%vpog!g?Hi6CZ{)W}FS-j6MTY^)#-km_e6{s8gX?dDR(-4+4)Y6v=CwTGnPE zeedw=seEpcF?>TyRVtYwd$u158v4ZEG(1kY_QE>)EdLFvJYl%bU0CZ?W}?&p`{A7x z#IlIr(U7p}R3Vw(!-69*sqxs3Tn40226^JcFbJVjgd2NO8P=6GIPJ#6uc`TqqdHC9 zIYh<=s#4bB-5;Vx%*#S%1gc()5F4!o=5JkA4R)RpxnECb3nN<)q30OB)UMKBo-(0$ zHZVnHE8uAZOl&LBZLJ+jooP0i@5FbzW^nuX#wJHW8jOjNEd@V>YG zS=;ngx*blcMk)-j1@1SQV7qs*SLY}fxljVm66Be+Cw}E>{Qulj>-@Lupgk)fSJ9c+ zc9rFxsH9tX^}qI5-@n~s1kUhjL_M;rfHclzVU_c6>1eUx`@ep?^Y@Q={*!BJXACfi zXn4LKUZL{`{8t(K|9u%R{gg2(j=}0~kZ@n695gn-}V65f>>WP3Evn z5?e-_s2aQ`HtgP6SkJ4l-#Yd^;x0T{bNIJAk_g;!1f1+Q`rkRtzaold9_r-lo!+HR zcK`ifZhz?ia{K>&=m*+AM*Za!9?tLe!}H{=U&qJFWx^HEL?ych3i z+q4t$7-k!c_T!tEX^Xf#e|loCQLJ9; zOIG6v;i138?ENiZ8R>si0OS7;0vDM?P zlKbtcxEUFOo&Peb{{6^?jP^L)t4<4C7HEEaqZxegqN(a5q_LgC1s`+~pd zE?I%v{!6}BB1hXUhu^?uB<6sLtzP6>I$DUD>UVL9$le(G09?;Y`AsJ;&)g*yyhMq% zR#^bQ?vP^mbNPU_#`4T(=@OZF%X-hB`~-cs5Z&OUw>}#6=i;Buft-C$S=_uz1l$s6 zQ_W(CH6nXv+IJ2r`%d##?k|I^p3DMpD?E2EGz(8+ zrfPqZZ@P7;flh8myi?X+3f8?j1NDq?T zKOspUX@3)Fj_CXlu#a5GKj|jh-=y^6;ZjNdcte~=ozMSCmTg(N9}FIL-2#p zv?KZTouTKxyze>!orv!nSAJkD#rE{-I(tS956K>5S`N+P*HdZpG?V#UGKETHmRjU9G)(_6oUVn@v9N1m|ajdMr-KS#$|IK-`{>7K|w+k=r7s3#WpZW3m$IM^$Xa24~^!?xY@T+xhrjSm?*2;f-{)vX| zS4J$i8_kYRc?f<|h z{}H$_u}$rA{fk22H2DFG`eXZE9aYob{x|)2{rT%Z>L)(`&#-c5`k$YF;(yNPu0JfC zx&MpB-TDVI_K&^)Gw}E>tH1EL6u2yC0{H%trS= zhM+yl&b`$NQhZ{*!;A|J7UvXoP(?uwZzY|05~a_+Pv9`adk~ zpcxZXAHF;)vGm{Od(&yP7BTaupK3)O;FNZd}&fo5HQ|1-v9g&J>KKt zK?sj`E8sL!GAN0HTwZ&%%g`SliS_W54M}M5qzy`FGa(6$$r+f?{4@>#6AUzA*T2e( z{Lf%lFa9t6L>WVCGApF7%YJ=S zLL?#R`s|+L*N%94ZCQ6dUjNjGA08Ho4^Pe8e-*7!R5Ay>$q2BomfwMLYdtC#Oxb|Dt z?0>%e1yF;2U`RcT)Bjdm|L04f&IR08Lgitc#lO8y|EsEN|D(b5Rn#5MK{9RBaCoq2 u_OH6Bp<-9h{7-~2>hnK4j$ffsUEU{RPm4eKE&pNJ-(~XeK_SWf|0V!Bu>YO_ literal 0 HcmV?d00001