From dfb2f27dd15bf7256f6737e6b583df248a8ae6d3 Mon Sep 17 00:00:00 2001 From: frickelzeugs Date: Sat, 5 Feb 2022 19:44:22 +0100 Subject: [PATCH] docs and cosmetic changes --- README.md | 12 +++++++++--- data/wificonfig.html | 9 +++++++++ doc/images/web-wificonfig.png | Bin 0 -> 34038 bytes src/main.cpp | 2 +- 4 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 doc/images/web-wificonfig.png diff --git a/README.md b/README.md index cba11f9..6b56022 100644 --- a/README.md +++ b/README.md @@ -113,13 +113,19 @@ todo # Configuration ## WiFi Connection -todo +If no WiFi settings are configured (e.g. on a fresh install) the device will automatically boot into WiFi configuration mode (LED ring is breathing red). Once your WiFi connection is configured the device will never enter WiFi config mode again, even if the WiFi is not available or it cannot connect because of errors. If you later want to enter WiFi configuration mode again you have to press and hold your finger at least 10s on the sensor while powering on the device (or trigger a reboot through WebUI). + +When in WiFi config mode FingerprintDoorbell will act as an AccessPoint an creates it's own Network with the Name "FingerprintDoorbell-Config". Connect to this network with your PC/Mobile and Password "12345678". You should then get a "captive portal" notification, which you should bring you to the browser with the WiFi config already open. If the captive portal thing does not work please open a browser manually and visit "http://192.168.4.1". + + + +Enter your settings and click "Save and restart" to bring the device back to normal operation mode. If everything had worked the LED ring should first flash blue while bootup and starts breathing blue if connection to your wifi is running. ## Enroll your fingerprints -todo + ## Configure MQTT connection -todo + ## Firmware Update If you've managed to walk the bumpy path of flashing the firmware on the ESP32 for the first time, be calmed: every further firmware update will be a piece of cake. FingerprintDoorbell is using the really cool Library [AsyncElegantOTA](https://github.com/ayushsharma82/AsyncElegantOTA) to make this as handy as possible. You don't even have to pull the microcontroller out of the wall and connect it to your computer, because the "OTA" in "AsyncElegantOTA" is for "Over-the-air" updates. All you need to do is to browse to the settings page of the WebUI and hit "Firmware update". In the following Dialog you have to upload 2 files diff --git a/data/wificonfig.html b/data/wificonfig.html index a9e457a..9cad7fb 100644 --- a/data/wificonfig.html +++ b/data/wificonfig.html @@ -5,6 +5,15 @@ +

%HOSTNAME%

diff --git a/doc/images/web-wificonfig.png b/doc/images/web-wificonfig.png new file mode 100644 index 0000000000000000000000000000000000000000..7dd836797fd46f6d7b570b2b7daa4d98515f7f62 GIT binary patch literal 34038 zcmdSAcT|(v_b=>s=4(Mm89_v)i3+F)2uLp(0YyMS={-t7kPwhgguslVh?F2mkrn|F zsgaU|nv5buYN!bi%1D3+A&C$YAdMSlzQ1?fyVhOrz5m?x-j}tq&htE+r|f<9KKt|8 z`<#?Jc9usEpEh`iwz=@|MTGUk4`|31rbfB%q( zz|cq^=R=}fk|0(V*PUX0=$-HyC43HbWw+|$#mqa3?vOP#8Lt<<4MA(iT~Z%tRa@dk z>i2jZ$DjwWx0}qKA?6tp{|KITlbY><{ z6JDf$->!E2ylaO6A;+?(QNwGy6>ymMxwIIE0A2$dl^BG|3yDXTrvdSP zA#vLH^sWR`BELUZ!%IBk-IkU}{xcUAKT3KG&eID4TGH~de|il>wQBv#h`j^QL(a7< zrOPSY`bwo;Rau;1iS$(Po7pj=Z+}slxHqcyyM*PEY&1b5KRAzk>rcBmkbLLHA9}II zXB831t~Z$kV}MAVVxIP2F;SZ56z4;aB?uP{iwZMI64{>1F}vGGSbBiiPy8Ke=2eyC zXqU>ta%AFnnj9=6*v$0jDb5#Z_53b9uED@R&q>x*Jm}V=E)m|V7C~7`9#|=bRF1(5 zC|TLrnQ^Z~gZSsMvx>>*Ki5l!_d{5WXH6r;8wBGxfg8U}MXXhNZxGk^Nrda4leI7l z*+D_qZB$@9I~4^@*Np2o?aUZA_6)=5UMNCQp&y^xU$-Uf>ELfdBbFKK(E03`83-fp zhv)JVVx|bD!r}}f^7C-)x2^W%ou2(H!H=UduJY@GnCfHP+}3r$k>zz(z`$%wT5k~w zy3D66f8N^t6z>!kqBSQzr=<~3F^wQq3Ad}-hw@qWxZs5FCcO(3>6!K@iZd&cY91J| z@a0kjsdMX1sMj{O3KsUYKp10~7%s2%@_j&**<2l5Az^IBU{Zf-3VC~uUbw7+tS{Vs zp*BhGiJxX~)*WO@nnu!A2B56%H1>(6K^Enz(jpBn^@#d>Hk;AeUvwB731()rw?iNE zpFpELsUkza_U*-mMa*EkhUs6p>t`#omrD-%Tw|Wp_#HDq))-$a(xPGoxjXkBm?iM? zkom}2ZJ)FVLnz_rB{w!^WHf*GlJ$E%k}N^d0D!RCwwkA>#_ ze~WNbA{!&+tbugRS3wzT<=1VNR8FMzMC#P~PV@_K8X1PME&L z1|+?P_s(yQ8?8k2sl>&9>Zri+lSRIIPecDFv7OT_w&j^Qr}jl1UGW@#mzbw_cr0P1!RNs+W=@!4Aj3`^omrn^Eq@!D1Hny# zhY+t~+6{}1!6n6BcjJ22=N{T2IMUqvwc-UlhM~V*0y~GXQAa~u1wy}OMLh4%T!yb+;TNC8k1mBd<_w|IdPg+Rfu$| zZ|!20Kim@)wr#>1&YVQ(ig(7B7fPiIIf(4#Qf7r+=9|CG^FB>%$6-l5!$$oh=UgP` zbNhO+WA8zYLgX(|_W4NMd$4f2<59>J9E*lL8grmB{+xR<-V$=HB}*Fj_sajV9Gj5tCQ1u4IZKO?EGOUHX!<@1U^dhKYShD^CNh3ePTwrIY z2xkOOWXs{%0fUuKJHP0~SWpC;P0MY7lJnJwcAHDvKjOsGrFYe~aIBq(f!q4W&MEG$ zV7l!+mj`!~UFDDCE^?Jv3!(9U_>(z?E_Ibg?d!`;=9bMRn|#JL|3e*SliMqq-uXH+ zG|p>dhZ&)fzkv2jd=ieIU7m|$YKse(#M`uQnv15vNBIV4#GvbpyY{_v8tNr-5ZFrh zm+srFQs`1mxk+*6JVX7Rxt7-Xsg+l_i?NkZ2SLfbYja3kZp+Un&(kWI`IkasSo#+v z$@D}Lixd$nu@Pu8$XEJJkXijs{Ry#24M5f@4ncQ>2ZHo)GJD@Ls17{Q3vU9`o-2^IZlBNJ1y~cLysYvRN3yY&9_uiWG z!W(x_XG6$Mw+h?c?bkuN;U-M(f7EoIoGY%I%;3STmoVcABP6$L40ZO6+*v`WmCD&SR&D zE8()VzQ1mzVGj;sd|Dm|OSdbQ_uxtLX^HThOadn{RAOUCdfq{ya0^k7gT#5K|9tx^ zC19F@FIr$<3kd#W)86|(?+h0&^2emaQ<=Wdght$(*(`2lFy531k}nx-PC< zz%5@`Pr5%FO!grZY!f_3wV9a;!#fR;9a&%JTg7&Ad!!=z`3z?L8|iW2aiSr6DNh2o z&-!mWQ&dD6gA2Jd8f~>$|9g1zD?OSExJqNDRpHb_KDRgIj&mT&QBYH2K z5Ms=Pk&b? zr(s0SBog;^CVt*s0RWh58o`v!2upX~Z!ej?`7=ah$+rAFWTp1a1o^PE#(XZSIkUF?*5;mFiB`;P z9I|yw6txpS00KH6bf}oJYO7#M8wb6$?sEIkbv^B%zdt53b6%I}^J4ckG(5yLF|@_w zsmRb8l!Xz*F(go5k4U0befnGdfom1w7M^mX&;fDbh9>JT*z9_{-5|FrX_K{B&JD$9 ziBOa5gIiza*1ZV}K*crddgC%-ywGo0p@3;}p=90!O7yz8`>=cR!2)BtV4b)t@jx$m zp-?tjfk`LRg4XmENr`10j=GxZq_G8D?aqYjxX9)^qt=mim1I32BWoZ_@D#8&C=%(N z+mbKo88!(vL%kZE`LXI=5`ggcxRZ@C`$fp?PsQg+GZ8#)(}=>i7AjbyP=;%iK*z`# zb6Zz597W-ZmAYKpk(#htw8Mdi*k$LZ460AHw#=?`3?bO~ZuN{qngxd1sqG&76b_w4@r`y?_Bg_38V6GNzEqHhU{g(l~+=PgRb&ATVEd+ z+s#Jx6eYIomY)?z?ACJqYx%P~IusLV`0Zi4xpnvX-L7SRz=WR8iL3z#K90=U#Jnof zXRDYO?OL18{i?JmQ=K~26uOl7d~~d?QW_^af0s!dltY+=%10;us=RJ{T7{_z_vxLQ zt?zVR2N;#8bhF2m%B7DecpTf{yBYeV1RGIL3+d@JbSvi__n{X?WfnI7bjU8$hGFAU zInbKexxg3E1Le$2%Neau+}mvVIuXp!z=C}wIo7yE&L>alfuA=r{6&4Khy+;pL8Ff$ z9ieX&`iug_iaV&_<(y6FQ$}bxrf7zZf3);!app$i+CyivgwYw+pZi(mGZ$=IAR$;` z^G-aQR}SGTT-E6C<~5~~n=r~kc%)TAlnIP+m*sKaWdE_%|9r5DA|@E@RjkD7ssx1E zDUmNnDg24$^l7v^XFVY9i1?lDSw;Itv`(C+1^_l!bUa4Zel85t%9N2F*b)%Zq}hqQ z^DOas+&y_fVvpd7OCXgIUHmsg>R%3>Q&j=c@MNV30CdV&jrpOtt-r`%x25%mKxWqR zl@>W;3r%N7g7_o*S(O2dmlFBkrDskmEvgL4#mtktzu#wVK69;!c)i52Wo75#mJ+Tr z8Ad%9=;Pj71w46vF7%s+iSW4RN0D>_gAzA;27|8G#@-aqwse0f`{$m!N=!wEm@y_l zxBL`h-#8CQV0Ny{tuth?q}__4Maq@q+C$BtKash>0f`H zRmAZ5PYmMlvkWj^UN|pg_F+!D)fWZ;`61xzGRn)8BOXcfs#TGo?7{&eVVgV^&Mg2R0sW7jORgzHPMC-~4&+egd5~ueFifI;LSOHa+mE3H;Dyq9*K0R9P+-h`$z77IQ81W3yV+0=eTGCJ&NkmjBAcy2mGK1 z)26c*(D&`T2RN%pnnb>iL+w^Ke$QwTR5$Ly5cTcq#@v5M`Q8Kexg~D*Q%WF5l$>kNi zSA*SvoXfxcb0(K|>+3%qgDy&h@BLpf>CDR{*}uD%K0l{u`FFn$rT^b{``|3L!;{AO z3b}J}13+pNc9OjuGnn%UV8k(BEF9(#d+)#Yvai~Bt^4q)NCRqPeMXBQ zhsdRc!mf42yNRpLccoDdx1z;u%5t{w))!Xu5NmKH(nwJf|3{$Va#tnnM_BRS`jNA% zOZ4+^VNtV<1ash9qn&;~0hC=E2h)z+zcqQFx4oWHJgHZ57zSUOMm&}%ll*OkCc7IU ztX+59l<7XVT?%6?W|1@ZkspiAch<#bJn{47VVBL#rm;ZnP_NBhp62t0E%sr-fp*Ci z-AgN{Y-vM2?Ge;J>r!5aHrAUkXt#-(!Pzz0ZuYMd7h?PHy@q0fx^zpk(mBU@X9}D* zN)4P6uZi^v^&&P{lT&zBnCqg^MOW1so11zKx249es(b3|jy$49*p-z^W$mx9^3_u7 z-_h=Tdr&FZV1FWY8^H=lM;PD?TPKzKBvV}SaaRLiI7;#pw=i;>cpI$pN2%JE9wk3C zZZ7&1aLuwFcsfFD_NFS8=awj(w!Nr#Fl0u1Vf#dBh9%d(4jg}%eehfM z?SDsVotnrI98qF$laD|VUxwBJ6vAZy9&P^9@hq7Ub#i@rDJ{ zqQv@oK*?tLRh);pY?MsJbjPu!2qGhQ`L}JY_+h!V@A-#}vJH#NqTcJI55_By@aIP} zGieD=G^*hS2?HqsA0&4wKx^~TpcIj<)QyQyn_X|JU*)3)XX)nc`n4j9^OcVjk2y$> z76GiP+NuX*Nw>inyQdRfcHRUTrF-g(9FF#q0p{BNrUg+o4P={6>0&#XNT4(k%{fmB zHJj44MnS!sqg{utH)=psHkI(%HRlDdM5CUL)@6k?#aa|hItzjdBl!7}ggYu#BZ)G3 z{8sqhw~#mz8@)Hi!6P?1UI$)GX%B4Bl3pJUS-zp~@Zgv7 zV=HV>SfTm(jw>O3i(^n4u7{ zaC-HEP7i!CD5vV0;SPK6Ro)PIL;vit;*c;f%B8|9w(vaOgms!@wJy>e+6R9W zY!h+khkx7iTx3&hXEa_yFt`;4Gd`zg`<1$_sZvsEH>4q&vA+M_%uDKUY#Fw{!0_>> zjjJz6J`;|mq)aSeEzX?)%YtVg3?Xz9o}-r*RT?S2B?YRQJ;AcIkz}apZK<{I=+E%i zgT6SAsxa$b?7JTBl))(?qhtM`(T?~HF`zPTyw$hZnUDvi`FXCtXuhV%%oyA{UwUJ` zb~{6)bIA3BS(%m;5`FAEQ&W-hH}z3{EDz6iR*wSrtIFbro4zSZ zlH}evv=C-T$g|TX_3ADhfA}%46(uZnQ`5bvzqI`9 z|HU!j|9pH3D#^s{E*JJv@K#^$wVx{qBvsdG68{pW7#K|(22-!ljy|lj`8v<9Zw+T= zF9%dLR_}$G7Q9#Msgp}J%jt1UP0`fKeiFRnI>6R*^gkN4W5psJJo!{DFbC(59A+A6 zyk!oETa{;#>^sjW#IUZ(_5Tyq{$Lhtm2YoR&}_$5(wL%2;<0DBU*4m8j`LD;~f0Sv3>&?-+CU!*rJnjQ4#RY5G}TIfBbrIEt!<>2ge6z340u8 zy>6sD4vFU(Fa%C&#DkjB#|9&ioVd002#CG@_5SuML^u=R{rs9^$j(^;hnd1K9 zO~Dgc#zO16E{(p_R?fQeLRP+?i4qm$n$Uow=x-Op8T-*=fZQOHJZb5P0 zJZ|#M49r6*G`Hfaj4+gjSW~XPJ!I44dsFk06vU+$>#*+i(XRHgAY_c#Twfvyp6_v! z&(q99@*46qE(T$nbzknJHTKQq`5FS|5`stO&Ql&ZZ=63)S~Sh|0Zo}c-w6LDlBdWp zt^d}UnhXZR)-nh)sw|dclcXw2K_BrTeQZmKkk|&!mj|uFWKjlhv;&lQ#aY-Y-R!WXK2_M!Rob9Y06o@0 zFx6N;SgJ1$A=ig?&OPS@=1qs2g{VB537+{}b;VC`Nps%x%6A58?yHSVoW50;@6o~s zvCO`%GS(6IE1b#X0z#WtNv443W&`>N;Yr11w{YmZZ1(}nNH4P2YE$z>fA_r~pzA;z zqE+2IWV+zPR@{eB(z{gqh3$J?oa0E()08Sdfs=bL(7m2_ImcFTxn5%@;c0AtIEnBB zyLCR%r+@M`q&o`SV23|DA9IC@nXIXgl*ZrdN7I0$_@a!;YcWtG>uiJXbSv`GDLgoM zsEA1N(jbxUfxopVbJ%gH5NU76_t-0*g;?W_PF%O%}y+Sl6WPggf9=rI^D zSG^8&VQ0KaNb@;i!c3Rk@zPkxGp_cvn6=dYFEgP*F=bz%=iw7Ww2Qi8p06~5(rw@M z)xcDzu>9`fp{?!7tQVdWmYOBLvf$`uCzt`+UDIdSbp)QIOaW@C>jd<+ofC%Cj$#=| ztq^GK8O-!!*2{Q1RDj~1nW+!)N}<$TX73wK6)HA5^nlD+GW%(mI-+w32xTpu1K8oR`>m@uhZURWk2@H z0ULT~7jSE3TIG)oR2ryJ0lB0pwhGcDN}C373wk0x8J>R4h-pVlG_tNN7*AqYOL!SM z>2*Ygk&-*0a!C`Yw^fm^o)Qxjd`>xsWf(G#Kf9_iogCEQvNVBR3R5K~&XWiwtMQG1 z&oOj7B}xIm{+f_iP+YYr|5tFb;GRnwb<3G!^Z|34c*|I*M0rUqZwtxua#Z$rDZ>TL za7iO>2bOveLFWZ8V0}YX4qo#6rbyf-wA_fu^s)PiF(EJN)f=9D;=>k zt>cnLxhV=-4;o<#seDtXRMcf8M-85=MN1U`YY(=Y9x&3`6PWt;flBH9Vh-rk^w7(7 zK6ZJ#7=X*oP%VM4wnb@X(jaMD+oqey{#uK~iIysTqlq2_SdxFobZObC>QvsUzTfSR zlLPJ$yS}AS`01sIhOd;;fu1p8r~n085h9BIBe@uT&De=E{6`Q|a>HjjcQ|WM`;2{= zv5q{nR)6mG-v(Z{O@oEw9-X7T)X!ZDUTB)T^ML2&b`Z7Ufs=%c<>sJB-4QMATDen6 z3@yM(@b*&HgBrUVakn>_d;cT~yGNjUDC?eJj8h42(pcv@w;E~7_#aY(%N z(;?fwq~dR|@0cws;n$(rVi{e4_Z(&-)nNKcG4k~MN&G!+9#{|+qY!L#JWoHPVZL5? zC#IAz5^L1D(_~6uf?ouT5}%8v`rKMoKT-kz+1s;5Ju6|S6LlEx{9qN%nn2CJ4I8s{ zov4Apw0ZR?%flTPZPbWu9mE*3dfdo!f#!D3P|tVAK|DX!IzkVXo!c~m$_7=#9rJiw zQ`o}^Dx~KqotR@Nt%zJtOg8EwMQ$!x$Rjl}{lQHd8X5jtLW{z$mh{jNJJe!}7WHwo zY?x`L;|_}~%O`c`nR3DVhkByeQ; zq14F_q{R!bmx|@K*uRCRRl~+fPW`_3Py<32K3gV179@rLR(7v~8vll{KI7qeS^XJy zQ&}gjII^1EZtH2aV+(VrJhN+x-8qtxQ=n0yqY2a&Nj?O}Y)uHYoIe1KL!(;L($8RW z3=fV;f4)1m;V^%x+jNuT=LI(HTaWA;vWL}LDUr&ZAw{r67?g_Oy=*rFK8tepLH6UF zi<_*BmkeFj?RFa1r`P%;Yx^nos8^;ziAMfZr>d(eOJTQmJCwm_rx53S$(kpj$&?~F zK{~Hco0HTS;ldJ84h?4f%b~9E>FWn8qQnf$4(YfqJb50il6S}{YyToj1)Oa#3(yR( zw7al)sMJJSZ0CC4+^p*EwFBwXa8z#*1CifUt|G#V!zHOn{NGN&r z7152mM0u4(0V1||w|hHzk#~c z%WV`-HsqF629jwLf;UkDl`g?fCAC{%6^a2^DU2f)Tvkck>m{Ie397o;2N8!CcWdX; zJbF_ZibU*Ap|lv({la2DYIZUDb|W6d;m1*`)Gxt@KFxTcO1hq|A|j*}$L(q)!!c7a zg>D*Q$HNkBtK$;GIwV(h6T*0xh8{U3@F6;1a5 z!Dwm!R_u4S%vo|@0^xZAQ2dyHJ zfbC(z#PHD0>7I$a8`8Fz_lqs&GV?;)hqyJ*&csVnPw&gsy9bC#5so_7Lm0vIc)x&Qp`do}ec7obrlmO@PV7_oV(?%2PmBREmK-xTBxdRS}UkrZUIFx)bgh;4@bP9hp3zYT{6;-5-S5hSojZ;4HsxSj8F@R>MYCfE=5U zv`S*icx1o*C&m< z?}>d7I=)K#MYk4EpRf=+n!FNQxfgmysTEWUFGkiQce8O$@s%^&M`XI0TG#1W9th^cn$p&@Fjd z_$AjvMaP*ARa2Kt2o8!lCxuv@9&zw*6s$(&d#HM(7)JPFf{v0myu!&3*H8JCO?NV< zlSxF49Yd%c*Yvs3pcx3KgixiV_efq?sKN)*c-tNbyk)3GVLIo}J9E1Vc_J?gL2bOs zi7n62^};Cj9rXyEOtGC-kkR9Bmr0T)WUA3f+6C^I^!}*h-lJIDU)J-M`xWRn!h(Su z(p2Ggw(IM^T=1i~49e-6$=yD;sjb!|W4pr+e~XgcppHRqA(iludBVr}oXTs{x2iBk zL}`u|%SkPDEj5gYRE5?umD_( zu0t42u*Mro->;YyU0x?}sB91HOAo$lW*U;z^}OsFE-J2}?B6lvsdsCAcU3|D^OnMwZngFg961r{ zz9BBol(-XZy762eFQbhX(j$!HAY_85488&Os61)pirpKo*iLn_jN}>LK>9PZ%ePL{ zdFmbRSf5=wPEh@WipxyWRO;l8@|(!6k*wBq4e^qU4tmL`{*Yq}!n+1`T4> z_(U!)2hFSK3ckCQd2uwoK3eQ#abDrXdQ+b{cFz}>R9yU2m!TwOU*WI|22EVb%WQuf zq}FnTGmL&<6jOQ>j2y*I z)G)|6*QNEzcY=aYln^z_26G~4eu0uXDOeTi%^9GveMRF-h2DgK*UvytBje+7Qz8t( zn$7TRt|5;u2|Ei?W9tGdR%4B(4A%PffL-W>OGI?Yj4Sk)&fwrhjo%JTP1?baC@52` ztcdnGmlVpwcGd|Q0T&hEQYesnF`vgXB*JULjVr+y(NlS@#F!JiPBZTl+9r9?oG60>BGYR{^S@f#DCr8!>tHNQ z=~{Q3-6&cW#ZcIJcUQ$L?gDWyVf5tI*TR$}<4ZBr+jDY-5iudDL9+nszPW$R78=|; zDhl}?7bP|xoKqw`++J@cU02bn<5`-0dsS%C-ac?18NiO9fBK=)l)rG)i?$4ZE*rA!dJk(y@a>7SeV87P z8M-67!B?EZgc!R0({;JS6Fo35ibUic3a|lz-SLjNQKB-UW6i6>JJMphO`SK*!7_1_ z(FQp?$R$PQ!NjFMGX1)j!pfp&>^I()H~jvt=R%zE1FA5+vMpQNdOQOB*CS;5;=zmu zhF{%u+-f{+zKW+VKD&vXL!le&&J^WcSUmW4x&;pQdU7m?ugY=E$;?CEeQexL#_Qo+ zLfZ7?XC|Yo=oc36vm#T^AA4VzuYR>tD9zf9zAiIYa{;C=uM~x@ZGvjXFId~Vw3s7m zDg49!ou4f#P7cN1RzJ4OZEUW9tw?{mvm9^d?KB>nj5Wlm=dR@~ywkzY7j+7^Kjy>u zpLtFTCd6zCJ7ViS`-c1$wzs8?1j8*Iy+gFWHN^gcci{J}za%xtrEtL zA$A|OVhb>#{N-YMy_w9^u3#BZEFI-sbWjSyU1tO{i+a}56HoW`pw(|m?rLj};+w#q zz?3NG)WM=j=XhIgu1w4@x8>bXf9$cKuvg#@V?`#S)y*j7=*Rrso=zl!rBqmYn^)I! zW*Mv{T4mY>yZxSY(cKk}pXLZ2Y=tQRc1=6+w{tel>#rkwg@3I-%)W|PpP8aCSQ<_x#Y$TvEH1sPt$MU?Wgodkw0L4E|z(J)ZU)R6Q`Uy z`LesFkL3eOr9CaBS+Y`+80@MlyfT&p_kfu1!wqDiH|B zyZfm1ezg)=sTY2kJj0DIIe!#>Xw+AJxmwe$bt(JEjpB=q^{_f+ZK>3|EBl?A0S!u& zcc{^lQ*b%__M}x6A)$V0<~fP@JYEh_tJu>?|0Y>;N47Go^M-XsuMNbj(=YAv`s%e= zzb`#^i+BZ)&XZb~(Z_|s_iGy*U{cd65GkT5b$&tX*JUJ(;I7t)ODg z&9iO0EV?kvzCcRB0Oormn*fdTxRVLO8 z0GniiLa_p9euv}%tMw1g+t!`k9gT4HbY1rt*KH2c`b`H_LlQ->oh z$|K1r9|xQ&3I*XNe*mjGRrh)=v!8Cg=tJRLZOVg2Cf_Ma9b=a($I+^ig39U8wm+?hHzWm z8+{z`2OcImn5I&)bxJGNoCyjQS;!hf_fcOJ)WwXPjf$|azJX7xEwSxW33V<#>c+fWRAN3(?>)~;AH6z*8L3V(2JD1AT6k>u zNWcsH?Dg^UyUnHbpIk;iMWv2o>~o_8RaQ*Nizf1&cdS$OI?rxom(&BB5b$i`$+gz4 zaCzJ)#3HBlyC2n4_}L~ieSNbf?H?zr4&EdTR(ZsPC(O3V_5f4!eDF%RIL~Z1FwhBF z#awB#WuMNgI}NUN0#Bc~9`>e0p^Z5XuA75jMC;7Y zfID5D2(a|4F}-cN#4v%=E`_h^4Cx6&pw}t=L%3Xy%2EV!vtZbooDErES*ps5CW8+M?5Lok`W%DD17fEe!+?S_`g zb=aes3+`6!Rr`%|XrMp^61>0GKBadf^#a3EC5lsk+E`M0GDGfs}h0in{^G_ zPhQdS@x+X=&kNl3ThoXkDZ2&U8(SPg{fSGQefcUj0FF7TC9XW!tIa2(M*qh*MnA(BuHF`O6dH z64c4|&l9RfS;0Z_w9hYdRw$vNMnBAEY`ji|CGYd_^T-7hUyS(Y#5IEWny zI=j5D)LpdECU>S%V@IrJcheb5PR&Tlk4rjMvF5Ek)P?pv_G^KP#D-eX_Nx@>!r}Gf z5%6I}huGUs5e_KHh~J0L{l8`t{})VPM{$f7Do;T68`V>8k{$bXzHm+WK_-?cp}YAZ zxljl|5y6L!+Dh$;O+0mG*tar9E1wEMS}6dvb{(~b&XAd2fYciCukrW1`bS&EE#dNP z1R-5VFor#N1#q%PRT>yfwY2p#V(Q)P2Yh+QniY89~0yfqG5TjjPwj;=eRhafd zfq#`py?BksZk0|mWl}DMwt4?m+NbyHlg1fdKf^PQg_$L|HK%7oGLCV}?&BM4Y!g%H zQ51Q-{Pq0Vw{x-8p2;K1IW+293ifvIAm{4KB;&j2o8-9|ZiE9;34@K^NcN0w#a(fx zMRX8x>VV%TBnyh&%~Iaq(Z3qC}Hte1=EG zvVBj}wM3y{h%k|q?yIi27(W*AkmhOhxVYMMhL+%y!Pj{t-mIlal05xH@+Yn0@88E} z{LGo;ts~wCeB?>Gs<4YUR4holIU(PkqoX%?q<r&&%!_w#|?~PWN>jK9&4T(`MUgP_TV> z*l*ze;0oz8X3@=Nl}wg7KEkc)zP$x@mYpBv7AsSv>HhAcb`N1{UJ4`YUT=(DWNLiQ zdsOK-eZ)latGKCam;Nb=KSpv&nTf>eutb6zY%o~Fg^5TNjJFb^;h8;TH&3xp*cgPKVd4p@P zQHAeB&8g&7H?BUU@w7APX|9pR(y7h-Bn>HCHpnM-u5yBRl_(CX>VEj`jE6*ODQrlu zGvTJ^QpAOe0j}H&Ks@+d>#?Bl1`$ujyVOs(MbM}{3h)T67Q%2}S>aW*Ecg4F8u;*(R&UmjrY;g2t=30<AvZr61jH5u~7UHX4K3%R*!eDhIfl_S7F> z_5Ank@YC0%*J6EnXRVD~!vFOpdwEqnipoANLX<~_P20k|ORja54Z|vZz}=>XH;&lg z`!t$AF{iCc`+34;GHI0VEcm)*$N197rVgaMyb)%)*^--4o>zB1@w(nuu8v8F;D~U1 zAw-E**>@SNZFEvfMO7-s74Q-~#GG@v7T{o`{>T{@)yg2}^&6+Ee_E>MP%h18lkSu<^=<}-m=t@7XI#L0$t5B;^rYsXLPGyG89lXj<<g^R z3+pRyzrJ5H+VW6EuUs=od5s8KU;AeC$4@my zXrS#|REgaHdfZx-j)4hCKs(;u8q`^>v%gpyAxg16DfiQjD? z$NXBE?ajn;?EC6^9TOK!2wr%yuJl>Mhn|?v$Xcp@Ly`WKai?b7Ws5yT74|P9M{8%9tHp$Ftkp zk_CqJwXfk5@RxT5Ue(=ANNv#$v`{j2)oJ?X;Czx-u?1iPN~11)1^&GCn+W>c)t-9R zj!zYbxYs6A&d2<#*6Zy^?(17;el1WPns_=^0{q$P>(&j1V>#bXpX#V)*yw8_3!XBn z9$;S=Eu@5~4^7Ce9P-)gbgK)l)2ZJJ$GC~(?|ifD;)}KdhybYWuhi9{sPXzg{wLM$ z{{=q%?`r29J0`A|#8XU~ehCvL&u!%xNi(o@-uuLFFPRy$Zrv@&^csi;ZU9&{i4iU& zF2`1eM~r;udB;r0;4zSG>8KiW8>E;x&?x{^*UhPt!K~i)r%ucj_ zAlaEF5x$l8q3uZ5jdu4J(n`w9*oFpoF2Vx~CWKM|^)yQKv!dK#552_sY!4%ukIgWxDFXPX| zlSd6wfAv7BU09q=Ib$cxe3860a$^WF<6Hiy@XMpDttD=KSBuz6IP71;qx7!*<2bmk zU(H-X^F#6K$-|)3_^Rz1ULMoNUy_Zr!ts)n#}QoY6@~|EZHYRChLgVVu{3r+sHXOf z?+h4y89VUN+eoi5!BdL9gOI1v#hAI)%-9zOb*{YEQDth>;MV zoudQKy?5x2#fO8AVq@6#k-dR0p2=D6wxM$&Q2o$FT17)Khq5Zp>~AR1%Pp|4+8L#! z!isv#CKa;!BKhV5J{Q?-VFO1lGe-@or;w9{wKohBc!n7)^pJbfupvZAQ9;iT`lM#7 zH?{Dhz4!29gH!ALwI1QSW({usWexB68ua@@*NJ(*R@bWFj53bcyg#&Bw5~xa4h4-y z3ijU*n>QSiNvmsqU=4GHKo(M6bsnU!E1VmFEH%))lGHiP!a&A$mj5&8_Y>^S^lgg* zPVsGBFPtLu?&TiOULqR}0fZV)bjEUQVj|Ido@`mTZ5{;13cU zsOk^EourbpsrK>maF8vBf*KD<8h%W7H7l7i9xZ6-J;rgAK2%ju_mHO~Y&$vziEe|3 zyCY3|Ms6CkPCBWdeD*)c6C~6)cILDfz!nz?2ny)hRO zRGhQW)N5=33pFt9eJRj_0IKfxick2YDglXBSa07&Zw$zXl{lwx* zKzEyQZkv5)XDoJed!ykIXG={Hc-69(>#H`@_;=P3?;*-M?tQwPmsv?iOUlOh^ULsx zzSL2fyQ`uNDlNdCOH=hz)?W8c^4b@FI_t+9kqH=&`Ml-fm5Oy;n^>OeilcQZ25JK%h^Wz za_JF|NMFK^0rng1;tF+6TLVd{IF5_rJ-R8={gvZ9Ev{h|e$ zIp15_6J_}YmQ=haj#&R)Jcs)@mpnl=D@~x-Hp;4wpxUY2pj^NaxV;=ptaNmm(knLh z`om=A&Rq#YDztfomUEtM5$^SxecAR)`$yhkQp?ebkE;!biF!A<0Ru2M%b{uhv!Nrr z86EzMV}7us-A`tQ!kVjR^e6YY94ojLfW3OF*lv#+RKrv@ZK+U0ONNs}JDo4Pf-bDl zi1X>Z3M*}4M*{bJ9sZ%No2gywEaL!8jpFk2rfB&VGbfpL)2HSINu6(;`PE52TFlFd zRaa#5k#ep3d;5}(@7BZ=7p67ztzbr43oJ`3-z9u`H(_^F5D}H<5Ffmi5<*SqsOC+Z z%}`hD<1GqYSf&98C^3(X?$?>ge^Wb_SusNjNjwxy^L8;o?wQb0s{iArvW|1~??Z-i z-|E{`KBOucXs|=0|B963MGt?UdV^~5`h0Gi+!nce^=%`Fv`}xJApu7%^gx+ytLUG% zY5JTr?KyJ!+D4v)dY>@&2JexVQViC%7woZ=z3Yy3{|ANfL6&P#obWQSb#Fk0_fCUA zIHK?l-*@HkWx#(z7jzDzREoHh(7N>tu@}lP|5lHVjH97s^m|rRAai9mByb6r-EWY93_qN0sX-T|cg+ zc(b^F#&*=IV-UF+83pd-doRZAB!}n$G0lR>`{Ap~Q<1kiM2u63(lX$Qs@jRUT$?>0 z#0V&5n7J^9p*1vPiaK87>zPSbNVw}7+NP1{wz^jKG?_BNaSdYChZ`e$bsaO`Bi)dk zC3^eYqV`xRAl%lg0~Z5|Y%^jHJfIPiGx375@c9u6QSj$&5y=T(JlhVBDp|~1q!$Z9 z#&^ra-0uekdn>TBHUe%J&8{F9bGT@mD^Pwx#w$vH8zwZw1BUoyG(TmXMJdiG_M(WJ zeA_!@74iEl>*;IBX>Z$ShP4Kvv}~^chK>ShgnN5PnUa*Q z2I4%Bf}AKu)RUa}8UDf^5apEFT!-d5-_~jLWm3-|bQ7}6C{USLzP7j>HkpVT8USDZ zR6fBE8dDT8&fLOTn&_H0d4Z9F(q~0Xf;4hA$%8Xh)h^Af=^tJp2|k>8Ssna2N=QK+ z%{GL3Fl$&cw1=P(MuF9u9`W|awY5G9jfxb}F{wHUqxFOP5i}W%y52lK@l~7)Os6FY zs$EGTMYS6tAV&T`==%I1^py1X)#v%@LsyZ=k5M0oWaO)*b6cWNNp) zrqty~!PL~^TK#MhA7FJ__RrGA*T2Mf69oV-hd4L)4`7%-Y%Q>C`s~8w90(BlaI$O< zhO!Keh8BA5+c-;S!;sDpbih{$0;+)4;25MifwkiNcoM#p4dIqsEI(lDv&2byN?*J* z>eSGI&_r#RZc?W4AUJM!>*`AqiTe@uj4aR74(j8w4+MQT?i65Y;%v<6>poS~dbf^8 zXV&7_;fpctTxcoi_w%^!*R%7>5?n9HVut!RL7mL_1DKJwAeHy$JsS>x91ARI$+o^aoJYw&QbF)q4n%{29SWJq1DF9ET5 zYVomEv@H%?{P35galLT%{S*=?f;YliioMMd8#n)w1J|mA;iNm35ylJ8>ePhy!e=sW zzeXTTkYnyEA1$C=i{1XX&O06vMmjHu0v~)7J{5lly@=lLH8;LwN=uz&vw?*Z+QBB7 z4;SL*v=c^|wMfR~gZ{Suk(g%u-MrXJAQ zyW4eLOllrR8(kAhYY2jZR^(o*B&q3N3_78$up9O;0~tU0nnuCLlJ`gk^39*-X*kVw z?*-a%cWZ%lldrrNtKrcZZ6jl1!g=dImkodGB!%3b-Eu9`w|XXyT*%;eWI7!mW|2S^D-0YnU1+q?L}w&OKw z+mT`J`=rV`KlzGg?u6#!i`Q%709~S*Md~P7J+4-Tx{Mv~W{!k&66XBRg_ zYGFZc;fzVmm*_RRG=FgzaEKtx0faXs9vO8~7rKBixj5^oJc0YJu+dAt$97iLfv%b4jDtjD^LSuBsNs&()Ss(rXQXZe$q0`@F>+( zKmenTNG|sb{F)cgFS*dcAB}8!z!DhN+Ggv#UY1+%+uWbcfZi2xq6lig@?f8gmVavC zg4mo-W>*-Y4^iKcD^$lFX?{YieBlOX%c{pBra3F9vrvZC``Tj+ z8AGUD!Wx7oCp)R2-Y&*bPYBtwRrNc$WGoPDb`lyfDno;?%6W=ssSzW???XFh_j{^L zFtG*?v*zqAHKK%%2z!|gC>o`azf-}?UPz(G_`6N@pH^4rM@5;g<#iy{15s}=>nAuH zdt7)!~2j#s6&toJ|1niZ?Ao3fva^oCnh)EhsDI z8N6U*FjJ$Tz1j#7L8{nY#m_C#Mi?WrjG)4fwdmn#0ru4tMD))GB5-I4d#z|l+>za( zb-{rn7YgknSp;@Ga79O6rzT~m1CEzjWl5MzGi}yQhDFA9Q`<$Kx^+5mn_7z7tX5Vm z7LH_@_fNOkHldcg_(jGW%%rk=E9b1T#X+NiwN9+9~oN+a1qHEf6{^~&{IU) zyO`cBk?J7l%`H4?aI>gCBO`gyDogao?ahNj8o`Z{7C{x~)fH^xij6k|sdryCteRa> zkyzn-qP3-GfJ(zJt@kqVAO-Pgoh(&s-=7<`{ddr*CIj3gWDv^7Z@Bte5sb7E;PkZ= z)Be!+eBGl2sX$6;@ECuEstZCa{mscjKCdHPsXzZLH)=e37n1AJynH*#LYn4A$2OqT%%N+*^AFoGIeJxFCzvrtin=L!|6u2bh zUviUMpAo&p0p|f)L%U>PB!Dj(h=xk+@3eo+r+>XL;91F}mG6;)^(io0OVQmsj$gGNXux9H9;Rz_IX=}%8i|I@59i^D;6vI*t*b&wZKrNfV%Se??1`pm9a2ej+om|URJNIt&bDp@tgOe zX}kNfQ=l@z8g##+RDA*P46Iq$Rc#f2`C@jRDU-3ew#L=GV;ngl{s08kkn~3A8b`nu zMf#>#;-<*VG;XNtMW6_qXr-O9A-T``pcE$<*qA&ui=|(kYQ(LPg^!cDt^GP|_aj>sO}=Sdbvp zS}9NIcXS|cYQy}0F`kngPstphHR8$wO#DjaD7KsWBsLI>M4XR$oyvhKV7adglAGK= z;`)Cmr?HN86UxK22C%>a#*m9$#cMATy*mfsSxnU1{6DHavkxS4`@z{$u8#M!-e(7- z-jT66f`8|a>PeYjmuv)l+;BpHE01x_*dKR>Kcvksbq_HDD-@^LHZ6-kdMUBKPkw-u za~0Jf--uB6I#NXQFtr{W6^Wft$;TK!aKHUn*roMto7eaR zxQNBv#JacSepAL8jP^ALD}0ni+l`#VSfphICKVjPt$u#!=}E8_;KLhLM(g>IYb(SZ zp+kB8AMv-X8$2GHlD~$;f4TkoZ=+wsF(ox^36SF}3ZA z@`Qp#y%34BZkhN7e#tCNn3~u81CkzXq*VJ^{DA_YV?`!=@k;pOhumS*wg6J}6rwbk z$-3^wJ2<@)@p?=$(L-_}ntIJ=qd~mp8lXW+<4OV6N0#SxB)GS|!Vmjvhp$BbNr1d>HVRpb^Uch7Fk|3)aXWI)n7`L608D?{l2~1YN^PQHI0pbj~+@2H&Gp`QvOM+=jLJB$SBQ1|YE+Xrg`4 zk=|vS=+p8JI7g3`B#Jg5F{v z&(TIkhZnL5YhmWmySp_-sdu>yy4(hzyW+1K()PcZuH8mzK}Odvoho2g(J;1<`So)G z0RKe#Nojk6uE+TL?1tbsn_TpR${kvto;%Ka&;kE3H^(dCyqg~k?ro?f0f64quQZ-^ zd80dG1skM!{|-NWS-1&u@m)AG7ThLf+38Y0rN%hmXM}AtTwT5}dL)T;q{AMKqfH0d zrdvfk7uOdIA|zl{qttr|^S?LfeKf>MLV9m77GK=mFZLn3L`wmhBQtVA7AM<%L55mN znDj({dEg#WP{o+J*RCnSO}W3G?Q`^+T+q$xAoc0NkWLpZY)zc&9izF9yiq^idn0(a zLTk1*^ISdq0b* z^-q26=Ab5hloPZdIDPt6qvJwvnv0fwF@)Y)pY#hIS4mfGKU-$49N1Ag*;#p@@BGd9 zhhdzu=CvAPbk>-`g8TRZbFRaa3gz(`AE6JgE$XHW6H%hMDz99GjQ^5usD-qO62^5N zpqpMh4<_aYjMtoOJbv&cv$MW)rBv_SAmpOCOoZUm{7vCceyg2xzbaKNpo6RQb`?7f zZ+1PT+JGwEEmq>sIHpjA6U=d*4BuT-N&kLlwoz-S?xsdtPR{!S*ta`REWJiNWmSMM zTEd!gWwK_tk{M;HiFcEXwbG&`A@<`Dvpm~03zhNKs%DTDDt91kS>P`BiT)l^x*vu;R5x$L2|McMec(~7(m5!;H( zXWqe)@$@fhWh{zCq%tgUK&M&%@mSY|qubjarx<5vEoP1sg#_A8-tq)SvV$C)TUXRN zZ_B+pXK`^}qrVs-CnxQFI?bYG9tI%03~4~yj~duE)?SWc>5>>*Z(hK;N2^OA_UPIL zI1}+Meaqvzq)>I`sO}ISekNYZJ;M+DP3O!=m!8t#eDE2d>oxwJnaE@1yox=muGd39 zRAQTxZT8a|9C!+Lep8h2k^RCG#^hf;$J7sfL{<8#PZzRAe1tDdLzD+T;q*6G9NFf}qv&9}xM zF_}Pjju#!Kv0=QmQ9^N^NPrx5ynJ9)1Zl-@|10H#dJFv9(;zX6+Hw^Qrz z>NjUk#qtTCG@Y_79&GYmHn+Ve=>RxH)G3#Y>H*uK-=4rV8nnIa7W7lIn{f4t0slHm$Pa2YvG+btVmIp6VskcMha>z%b3K~BT;ZlxS1`=mVux*#do0OF+U6IUJ^nA9>#W|-O@`-sc9HqrZYlM&OmUuYOvVtL+O>361w1cwC zakHI6Ep7eIlxJgtBLfX!i*F2Fuc4`lKkGY(?%-T* z1?|N>GxWj#Ttr}X2=0S7z$X2(>Bb>9L%U1CzKsICiFr$0RHm|1BEjorfC^*D0hYaA z21ZCcJH&r((`SuSt!f^W63`a9u1h;TAnvXPK6vz8&|x zH^{y?B)G19Or;;@&?uOVoQ(tPXV>AoK>UPVi)8hdC*#SFH7`@1jvX8HY}=GUjPqTN z+EQ>l5`2PFo<%s)fmyU#8dq;oB}vX==C{FTE^)Ue->$ApH2M;DRSV(?_ig4FP)MJm zRAurAGyJatkG@oRczo;p(E=wjy2eKPF!-QF-N83l#xw^~76ov6zf@sfF?AkpUIMQ?f|LLrWK>(cjDS zxI^QM%USAEkl#B8y8&ovuhPWc)!HLU!8{2GF0vF!Wb>lxZx*?ZAkb~uTg7g3{u}J5 z|3+o(zwqXZ+JC@9Qk{2-l}K6|BX|R1ws&XdiB2EN5s{j5+LW!LP}R(dErM<+PWdH}3jM(V(!0}q!rkGp@m4X+(kl0=cjtXF`uf~{N-3kNjKul7> zdUJg`Mmc#MLs^W(rbpiPzz5NhIXk5m5*ZHWT_P>qZPP9#g{sNo-wIH(FKQyyTU{0m z6&0$?&iv}ji*uOAA^mt07K3I>J&+ufOj zlv{^B|Ix{J0ycXke5QfNBKbpBCpS2Hq7$>$HR@9qTtJ`apLCNe$r1`yNV+J_XVALZ z_q%~knSO}~@$v~8w;9w^*p1)pM;n9%-VnviWv|TUL07Y3|Y|(i+Yn8*ZgP0hgG>TqD0{E_{@qrG<$#N zn|5Azspx9>M(cN#39{h}OYj6nX_?$vZ0$-f!9^R5iM0DdM70|q$n;@!?6Jy3tP+c? z^LBfvLvUa}IMsB}1J?wh%I#c2JgP0H%aexXBnHa9HddiDdS6#!Z`v(8a>ukr1rA45 zLqeZ{1y9%)GV(5EFV@cR0{sfo(CrP?@EFD+01XP4otI;Oy;3na3tqqKa+JkH539Jr z(VTI5?TYEI{n*`X=LPVLEiVq^jGwSUw^esS{*3oclj^QUFv{6)QTR5Em+pNlYDZr& zuC(gz_l6)NhDR&h(8=~bHTWIzf(F)WUy)#5Edx-yu$7>mbaxvJ<%nad#507Payo>7 z`Kd(+T7oR;*h#qNbWS=HwOixCvw6^i*IJb;BaUrv(FI(Akd@3&(RH5Mj`HRSqSBtr zk!icap8{b>?aI^u9sT31q1QdULzvdnM@yd~`-h$)5`7a`%O@hDk9(UUIFEgLTQK~m z1kYwT)LCZW)me~84=&1815Q~e-t(cw&Tv=yn;e5UPBU6>~Ldk{e zYfIG?g^8C;T;J=D$rA!%!*6JiMYH!c8;(zYjs7awRd56(Il70S1VlHd4P1%JZaCyo z47POjPRi~1yYWS`E9qgo-$d8>*(r|a!GRk+v9ADb9$QZ&swbgC`XK|XRy&Ee)(7oK zviiQ|Z#z{Z<%$xFnB>Dp{T8gU0-%eH&w!?fh8_PZ5#H{(CqMBGf||CzW_N8@nn+B( zbTxRE(ZAa4uAy|dtmCf%Y#zFYj<4c#bR;6Xbrum!)>vqWi}EZic}e^E^f{!X<xbYRnF9c(b_4D^19KR@~t_gV*>QjSc_zt>1q)5&`XE zKfd`1;+1d{*H=)jwwB@O8sV{MG`gzwvF|LFX_VEkDOp z(PbvEiVXg#>R<0)GAa|g?Y;Eu6ShVvUxV!1+i~{oLAK6XEY8sHlj9*b`|qiKL3Iqb zWkDVNeesvCH2A6UH4aH*?}J#*26uxsu^ABWGPr{q+zq1>la-a&oDJ&C$k*jl2J7JJ z#xI6uJs8@&&qEbe2@Vqs-&*|R`Gfq-%;79H;lLuB*cR4Tf|)O_KL4@Qi!Zm(lLJu# zua1u2J>OR`kEgiyQMj3`sdKv8=VFd3V2`Eu7phE{rDQdJ%m&FQO|YD`u<9-?VBg5k z`&IxG*0i59gL%derj#5gJtlZy`?mkL z&oLaiZw7bfPB+7^yG+&OlXZfi463_t>Ix+8VA4n@ znC{s~TvpYmzg@NR-F&8Y*kE(|$6Zo^DV%fQR|vzjk-F8)@WT}maXJi%L+96;#8H~R z>C|U&_>-(CSdYZP?~%Nq#_5)tnip|C)bE}{sq`_OobP{KSx`L~H}scjeM|b*+`>V` z5J3i>kq}N^7kf=|Bk}GR769&^qc|#fuQc8W|&RKij`F1R$wcd5oKhLI_bT78PWhT)v#IS7M zp1oBCQ6z&imhb%|=uoR=rO%)W(kiqiAYJ-pL6Wizv+$@L@t3xrZt{+?-}B>YB8!Kd zp6HzHdSrQ8h2w>C zeGSbSF&_|H6Pk|Pu7elZvMZ?8ik7p=`n74dG7grXtC~ueGt^blWDQ|^(yeq9_ccOS zu4<|z8<#geI~0C?2fUAN@&fsh?k*E*r2VL=v2FfolsTtI3Lq8!gBEsCw_N>L9z;1W zWQ4TXF;n6S)Z?gEG~@Ieu~rKg50fLi<`#o^8B_iByMr45g9W2B+g?KLO_y%Xp3nTF zDdH6L*K*39HOvIVgE#o0=;eEe(ICW7XZ~Yvx$m0rLBegLo@Po53vquC>GWGb(~v4h zk8;ko3w8IvNz10o{5_Xtu75N0Sj~A(rBsgc_eH&3Rh@N$-KRbzR@gi=9If5X3hGD( zQEz*Fl0V9M8hKo`0{he_wMA)~j8c?oRBss1D(bv+F>Tp{c6HKWk1!+PvF0FQfVU@g9N4yncPvePF&B|u<@(WXv^gu0fUPEyYz~9(9l^WkX7Jx1jX{(yGHqFpKJ6tRA86n_h z25)$E&Yi~?Xo@MKjRnhMsJzX}BrtpXdUqYlG;d<(L2g@jN-hXC$0IMjQ{Rz@PH=au z{ykp$l|0`yvw%G!3%eu}`B9B(bC7Dwh>KRCR8_v64>6&92bD@Zje643L;Irzm~+Qk zIf9nlxKEqZe1=qQ;_pc>j24b-)0jW&D!z^)GWH6Gy&ujRuH3to1{#)^j-@sNx(iVC}?wD;Qbfl;<(ZG{3otVhW{J!{Vfanh0 zbQL8V98TYNnepkBpaJL{_VO{+$3dI-^7 z{+Q}plQ=?I`>y-fLM=Q*_O}q7vTs1=uf~XJ1AaoG`IVICy-5#G?v)wM4Sj+vcZ9_+ z@i=2ATCuwZ@x0R8b9n}RkY6%aZ#FL(m%h0DGlxjo{2QccMT#N;vYb`?G*DBv1yQpz zY*O1px8zU8u_Dq%qaa^;;lo(|#kHW~y*eu6x;rO{bZ#mX?0k(8WL61?{YB8Argft+ z+-M8v6`zf zm5<_!xdWDE0nBuNSaE8X;77`Mf2nz6<6+v{p;r^IL!tpVR-0zMw%f-?t|;qBanbm| zm2lRgITa1Z9f+B%fBY~KKVN#|vn1nA%j`=rZ3n#Q9jJYbv$xTyfX*rF2dEG~%)e3} z9v^N7lnTAv|Mz;%|5W*KUyL3W#7=|NGnzqf)5t-=C(EZtPTJ$0xb_?xXZZdB&2rSk zIfCEZsF3(wiYAd)S}+=B*|zK}iJ5W;U6$^m65ijNjV1ACn(KTY5HyY27>oP0f{Y`r zoetEF?AA3BXREW-8f#Pu`+Xysha>s(NRUutZ26b9DaR@Du%_SsxL)4OH8)JyFP8>< zO(56@SHDu0!tLFoEWi^n4Rn`7WUTCrA+0MB9Vof5$qi3V&X^hW@nGyk_jt;VMmv{< zxD;N)2y~WGqGb=Ye;iS$D#q8|DhdI^qhiW!3s&JSBaE?1Tsq0LXl8PS<$Q4Uwhr$> z0F;^T)#X*_cVrP>LaqUBzS8C@+|^Dj!QN03nwR$q@SJ1G9^b2O4sXioq#IDa*(zuW z^l+7adVVti5gwu!Ln7n zWTmkaQ8$hzz{3hxQ$GHg6{?K2zmq#vcatg&W2xTDR%aF=f1 zU;Z^|G?rD(aN^lP4ADvWX+WBnEE75%rf}|$jCnn(kKs+a6AcA&jnVX24S-M1UPe4K z{QeP~6bZXIe$;dI@-ZsxXQ^~M32(?ci_-EK+;4Ho2~^B*Oim~()kNZWiDbp~QL@!TkbQdSn-%zj9ndj&CQooy3U%XJEY@g<9 zX9zZ_ClJZY5s~9HHk76YwP{jP^Vhuem^zqte_}rN8F}t%f>*k*+TUKK@n8x6oFLW! zKKKZ7MpN?5xD@ouegGi1UbCoUHg!DAmnOfuQf2V{4eRQfC+AJca$tZu?|Z)ty|3S* zBXSU*a9t^*L4m5mBH!n4OWdL+wct0eq%3`FtRnAH+8JkO%gP$m%bjP?Gp`4}6Fa#& zY0U|4QO4bA3@H6&W3OF+ZC2Be>yj%^QRBxJDi|`P6@DRI-#)1IPW>;l#RZCdji<^! zl%02Ex(-}!s{pM7uTZbSyDlWesW>`YK?WH+Dv)w1XdjvSMq|F)o^B2iF~xgcVg&$=s_1{ z<6?9MWU}n^w@zp0-^QDl^{2qv(o#_Ao~+&~6=3@+zOKge4*qT>Xk(DkaSz#G%BzVO z*Vn7{e%sBmHW5wLr?D;Q$6v0Nc?7UbbB^x2Q-q(aHkLSp&iB1Du+#n6;%vdrDvL>* zKl>^yGu{4{3be6{3ZywyoW_MrMb-rD!1)vk^*w67-<=G-_`1aPiAUc`n}ah-`#O5r z{>4nHk9+G;?>2xIqUveOR+EAn>JEb4J$y#A$F$ZqnQyY{tH_R(Fw_LVl=d27t2?~3F6U29>B>_%z zZa?0={Oh-*treuM*CvjiLZarY;3?Aa(V#Sa!L7e18*IZQ7pIwI)R*7Fb9aPZeT~>R z_LeICWVxVTF4OD9>wdOWg5-V38rRC#EF;{!wNG!A4*Te{g*9Bl?fLc!e73hPDI`6mlo$j`jZU&Y}pFj zBNd^*1yhc%Szp?jp?2;Y)n2thI~G_FJKvUQy3*n|^x4xPVQ>f4a#>#xr; zOd~Q+?7IwUJ>Ny$^Dwx;cMro0aZxkfaLhxz4O5_BwmX-ebO`FRNiUe+3$ zRQ}TTd0pW>=VQaX9fNwoOUt{Gw8rU=4!L})m{XsrL;Ihq8 z4_(Y&S@XVL>+j?o7t^MfpDg-yP&5>?UQyFc`0YQ-_8Usq7=dQG2>O2=#7EXXShSv1 z=w9h-pVPa7{q_*1wmj?f=RN`ag0ACJFC)Lt9MWE1qe27*)C9v#|E2T+tY zFAd3sQK<-;nOlkKs2y^;nCn_cauET9VkPAvtE~GMK$u&R+G&i$1U5T zCEi=UDl8le+Ze80GQP;ScFGBSxJ-spD5o#^w!K5;)MNQzi-Az~SmlFvh|7`-U#UM# zt4)vloNEC$IN~u7PiC?`8NDj&aNx<%w9IVrcqPGKLA|k9ubRGjV#^3TBaN>-S%GgOihA z{_TtAATFVQRr&vGGPx#tZTSxRQDSTjcRjvD%z+F9L2eSx{}RM(A>7G%l=zUbMhO-z zD=}PofQg_H75RBYF4#gpv?U2!!>wHOqf?94@#BF^U>(QVG&1Ba;?iG?D;u(u#zmja i{8s?x|DF5W4!8hyska0zo+eoDsKwdyXNpYR?*9)*)&YM2 literal 0 HcmV?d00001 diff --git a/src/main.cpp b/src/main.cpp index 0a56568..99fc6c0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -15,7 +15,7 @@ enum class Mode { scan, enroll, wificonfig, maintenance }; -const char* VersionInfo = "0.1"; +const char* VersionInfo = "0.2"; // =================================================================================================================== // Caution: below are not the credentials for connecting to your home network, they are for the Access Point mode!!!