+* New housing published for external LEDs and small clearing: https://www.thingiverse.com/thing:5028229
+
##### 8.5.0 - Multi Meter Support (2021-10-07)
diff --git a/README.md b/README.md
index 0ad9125c..bd6e2fdc 100644
--- a/README.md
+++ b/README.md
@@ -33,173 +33,35 @@ If you have any technical topics, you can file a issue in this repository.
In other cases you can contact the developer via email:
-* New housing published for external LEDs and small clearing: https://www.thingiverse.com/thing:5028229
-
-
+## Tools
+* Logfile downloader and combiner (Thx to [reserve85](https://github.com/reserve85))
+ * Files see ['/tools/logfile-tool'](tbd), How-to see [wiki](https://github.com/jomjol/AI-on-the-edge-device/wiki/Gasmeter-Log-Downloader)
@@ -213,6 +75,10 @@ There are some ideas and feature requests which are not followed currently - mai
## History
+##### 10.6.2 - Stability Increase (2022-07-24)
+
+##### 9.2.0 - External Illumination (2021-12-02)
+
##### 8.5.0 Multi Meter Support (2021-10-07)
##### 7.1.2 MQTT-Update - (2021-06-17)
diff --git a/code/components/jomjol_flowcontroll/ClassFlowCNNGeneral.cpp b/code/components/jomjol_flowcontroll/ClassFlowCNNGeneral.cpp
index 2e25b02f..6417f8d1 100644
--- a/code/components/jomjol_flowcontroll/ClassFlowCNNGeneral.cpp
+++ b/code/components/jomjol_flowcontroll/ClassFlowCNNGeneral.cpp
@@ -760,7 +760,7 @@ bool ClassFlowCNNGeneral::doNeuralNetwork(string time)
_fit = _val + _valminus;
}
- if (result >= 10)
+ if (result > 10)
result = result - 10;
if (result < 0)
result = result + 10;
@@ -872,11 +872,14 @@ std::vector?C35y!X57cnj85ig~9$^v|d5TBbIKGSu{Uq@rvKV}woRm7$FXl;EM_IB+ zyg3PbNPqc=v8(4vx_m|3(O?{Pm}!~kbPrFV&1u;lGsrG=J2sx7V;(b-r^&6K{5VIB z)c9JcM)R1c#wI_+Q6Rn@y?u??2z7{@K#JR~%*2_4ucZL6@!lI9kOGicwo1ictlBk5L^F zu_|(Btm^zeRxP*j(>9m#REBqS@;0m_l8a*zKgRJxq-tb&{qDbHD1P_rVA`Z;Rk|@+ zHE)ep4U|_%{_M_JCGYm+P1#1$7GIsA-+9WoKDDF28oP?$IPOAiHoJ|J)7ErXq+-1F z&uuaW+wI5b6;B)2`G&uv%%5Z}SR1MKycMG&-}0)R=%nVpsst4FCgS O0?BUK_q zLM^sg+hSDB+c9b?;mK$ _2i&=P)fJ}Ek_kP56WOM@k!`p zD25WKfTv!1;$#2r^+sltKKQb+E;>6WR@opC3iT74j0q>_TokWbzv9Q-Cq}AfXumLC zRTIyHy #rCuxO`KO ^Lcj4!=S6d?*hb~6>+SF&8L_l6? zdr`#vx3lvX^SATzzhfbl|EKUb`2Sxk$fbe5hxDZMmLUJOmGGO{)2*JBjgI4_wwc{A zn{ETy1(I00P;}3nBsCFa7s>7r Uiz-FDEh!H $+BgA#zh(HqNMJH|@(0F$Vw%@_6hG~x z(vIn?+SdAy-)S81oIdrtBy}&WgEsga_QH421qWb$SCZNQ2VmmQNopnR0QY`==o}t| zU*LGXbf59T(2JeP>UtwtU4z!Z6Yvk%4c(B0Zx~GSFa6GV)1Llda EPMflIbdI&D&i}*Jm%uf3tZyeL z8N?7aK}1AJfUv0*a0A5V1b3@daJSm3HP%{f-D<7X3kR2?rL9`)sI_epi2@QeQHctv z1Qiv6TLm{jKx3_yUbNO)w|vh8d++^!{(R K-3GQ%`u4S1%pItF@rlsO_cnqs(m=FnIxkff;}c)#wL$;XJ L8x|QlI_YKX47|c;qwnuO5)|0p1w2 z <^VcQ_F+H_$^c=CSy8eY{ZJXo>w1*w;z&f{erF&lWv_GdSQhf;?0Y)phby9 zSwz$gBaq-A*Cr uO0@sZJ;wj zV+{EGVqh2_gRsY8KMl-9d=L1Guvo2RvNR$QYp+zeVJ=mF4txSk=*VZPFRb(C`5bS4 z=NfOmb+tDi3HxBdo1eYGo6r51H$UxjxWjK}HdHwHCo#b9@Nma|?v=X}+S#teVe@_^eAJ{{7IlIb$}$t^;&HDS*GAq-HzMx8Yyy za5(T6megaw&+W{sR{^VmuK@?}3lJW{t5bj&zyKTp@Mk&He*kQKYTpI5b!4kI-=Pby zo`DSX2SwwGTvuJ93E-Ckn}HJGI^eqIa^ZvT>P|>>G4KhXTPGIff&LBj!C*}a 0{u_ lZ)2TTNq0-h zYq<8Qk&=iBE8y%Gh1Ls4WqpmBRA9RbJ~4t {2GJ_uIZ_tA0WAx70e%$R*u;4V{7zso z>`7+yUhy-vC&FaHo(ud0%!b>2P&wS$=QP--L)f=SMEH6JejcLU6vwNhLB{|e0T^uT zKPSSekS7V4UI@3JfZM<}i#H#R4xbDB1q8=pC `IPOB) zY+tkvZVu#^eTPSc5Afh41V|#2eHX|Due fNuWso&Yu zwh-)EkMV{@!54m=fH0sDvj_W1(9L8N1@;Ia3g`p$2Z}o5TZ_oTc<@tz?*Scf2-p~d zZ!hxb#}%+BdhqHIz(imXuoSQWxl&$j2dxI0fj|gj_5W|?C*#!~J@JAElw~>yd^qqH zpuMkAk88)PmxIp(jsTZK!gwcWyrgXj3VbaS6^J?T_1Ady5MV0s9`FgU9jE{rfF?lR z3z<5r;BysWd`IxX$jC@gKlHm*pg#eDHQsy`=#wgM{tD>iOWu4F=$Y%@e4lt;{Tp~M z&>-MGGN{M|6Ay4ef>Wc`y{=Kmd=bPS0tUfti5EsN=o;W#;1nR@!$j9WWeL3cg+`-( z4Ri*u49Ek{122HUL|*+m@HX%za2Titt^p5#^H^asU0`_Bz!9v_XBP}o%Ox6hNN;p4 zB-{&h8lVM?Kp}7zxDNaQ`1U~ 18acZDH^o}v>A8=`~^G%NIza3 z+YfW%WH7UVkAXG7A%J^{DgzC!#G2V3B>@JaExj=xMuC4F3GK!@-Vgj3U?orloCNBC zP&CbB&}V>1txC17vPuYkOA5qNJ>Kcr-ET^!aC3>@c(q6N#MIe(EoOzHE>%G zYym95Z$Kh?{{Loh2<)sDXMu*J5aU4K2bKU|0^b4Wfo8xvGX);NJ)qwJlq4ig-SvZK z>Vd#Y*o%NhpmQpk0;mGI4&>DvfD^zYAmVj&TtLzhhpnJjfOcwLJrwv1U|Xc^pe4X% z;13{>$5IApjWB)&BpS3OFaZd|xZl! re5G8|rx!SKfM<|t4HBwOHjlz!<=I(aAk2JHbuaxPYkL)7d|#%10bfvEuq z9?7dm1OFP0)&l(tP(aZ>6yn1tzkvY*_a`W)7?l Zs0DE zI+j;|3KRp+05 MZ8^v7|Ri@hr^D|2BBQVh3t8JLuTuYjKb$v9pe0E_|T zNFz{}`KNm2jK}KfaG1>;$79X{y$AdOM8KX8Bm$|(Bo7Q`z$CmRL!%xu5tA+alHk@8 z{L2Zvx*Kp2m=0_P%8qK7;^M>9)P}dA4Iv!Up0YtlWkS%XGa~*RJl=l?RS(DUpr%Qv z2~aC&cTg!X%KwG$lF7Wf1z~$n;njOV%i+%U;=!QD;U>p6Cu;_jT*$o+`-kA)2G&jG z)o*~N08v07;6j|t`!EvU;?*}m4*+`LD_|7dJ_DTz3i%JVfR+KzfN~_ 2)0Nem} z!u}!9emVx9L%~l3KN!e>y{M-TzZ(1u@H3F9@m)Om)!=)>O|%fFH1pwj=&(lpHFER~ zz)H67-L@L&G`p>;&cJ;Xs`whqHL}BYi3EOsAlyaZA>3nOZ$A@-0cHYU0!M( GPa*7GxV;1dXJM~13#DOtPcuB;hl8j+Ud*q;fj0OoY&)j`Z2QT!xNQ6RJ;EJ^ z- ?!BqC+R8<00!Vz35K@Muce5L6Ezd@XiB& z0uar?{vJ@l?Oo6=pkiPr_ P(6@n1payWD3I3oxJCIKJSi_JGButw$7aP9!(H%jt z%~tD>;34qi;l=|!=OZ>K>&t6FOA+P*q}b+R@qwQiGz4@T{3M|N{s2=gP!1FT-vFP| zvmHp6%==S)cn8F1g?NZ2BIrz@Y?=?B2YL&5X8{x;AoxSH-(vJ+PzRE`k2nS3{gxm+ z=wI-A2FkMJ0?j9_?*8;W+}Vh_0D2kmf ?RGSvg&z)n97A;2Q=S-_XT z4xj)y0yG2ig{VDX39t(|4?F?ZBA#Ut_LQL0f!p980si1yu`g7C4giJ%&!AUJJQZ29 zR-w}(<5xb-M9*D;Nd$O~99_o2u1LX-VIHeRV;`$GBj5+{`wWzVo&!cjdh&`0Pre5b zI^T!y_Zbv1U^@`95?Uef1k>*z#MuVE0^q>+1laM25w!Qeu#|y{{IVXaJr`mkf`cTB zSI?r00!e^(8LWRIZx=yt(M^FQIx~KW4}ab&63sZKQ7?ek4WJJyat-JvpbpbdFeJqQ zA&}${pr(QT+vUo{(8$^f{&^UNKqK}KyK%OQl*{0D5a9w5ryhJjHj)Kxfg1sQf$>0- zfYn0e8OVtgq|6mYL`&hAImPAjRA3{6$OoLy)JK5j;QK?!&%g{Ibgqa$4ti*{4}S{u z9uT`4qjD=68e!J}PHgUO0#|^+DA0kOSTq6E_iShKOg#*A=JzP!YA|^~6W|GTOS;yF z_x%A%#*f&NfU>8vKaZZ}m$jywXl#xT|1;d=@N*!MrMP4r1>w2i@9x5S3rq%X0XaZ1 z@PutaAh%rsrYYE^dFVm;sAbSunJ^k)$p!U5eG;G){J(*GMCt>?Lor?6NyG<2K&%mK z-~pWX0#m?WMBJyK!*^r&0S!RUJ-qrj+*g1W0(XEw*arjIK;Q;k ~pR z;vnq9gIJUiurII*m<{_+p!b0u;Mdb@ok;i0_J`4NV?Et{E*QM|5Oh-HQ3XD<7%LU% z4A^G_JHU(KW&u439Ktd>0QQl<4xsGQXX=Frw-nG7;4Jj84=)~z>;S*Qza8iwpi z#~SsK#TxbJa3k %-z6;RMVMs$+!SEpaL^0DiUg4 z*%}0SRO-Xm!TkYH1pD!(+oBT+=;5c)UC&@+2O11&1QlgHQs0G!6cd4u(82A|J9J-X z5|tSPnJU=F1IvMY;4&aO3%wqA8(4|4x&ib+<5Tx;rxHBdK-Mz9N=(|o6HE?u`v 4P!TbSsD+znIZVjzxKr!#Rwjf-Y-6w=Undr%v!SMnx_8ouz2Y3_$ zF?2x)>7V(a3VCs$y;}cNuWslvXenr4*xvyZ@Y@VZft^4;Fn5lUm&A)i`@tUtZUSAZ z*-G?GojMwSv>p6T;3DuC2t9|n3RoC~7i*v!fCIqKfa@GOPa`63!3p05;68Z2Ex~;9 zd91y_V6jJB08#<@MGRXY z7<^+TIvOw)_G7>U;0!Vmxiy&eo`ar?pQ$I)7hP~>)h7X;NxXznhr2>`Eh+>22w*=@ z0x02j0(A7xSWN*(9M0R(s8YCp1^YR``!WUruoWl;NDVp;{QKbFaPWHpQI8=03=oW@ zm4IWU5;MAseiKUUo!M7O*cV2gw_@6Pfc-Bp1Bj;!x{@ybF)g^BZo*9oAYXwCf4aRZ z8PMVKV|?A*qwS1g {e)Gpc_}xJKac> z|2eFq3m;>+0T+M;v}+g{Gq6h%6!O0@^E^dIdEvu{fv%|(@uDf{2;kSX)2Ic|wE#OS zIs_`39?Tzs|0r4zMkcWbJqpsPUv50s+2@#7f#-M+@h9j@K+z6wBVO?84!~gWT|no9 z_5sBguHICT#GYliJ!yu$6K-A3;Hrdue|ih3s8u9-26y?(w!?#X&<1K!kO+Tvtmo@$ zI{_OX;L9s$6LLWu*Sg{7hA$K(tfS~6`nM>H4dg+0kr7smbu>XqBJc%=2}%+z?n758 z$vgPYXuXoK=VN~>$uK-2)`Y`0m`)ETo!SrHFBOgAu;HPr!byM4@}Du;VjJOkwHstN zsyC`c{K*UWD}GTTevqef&78g(HH-2bQ5f~aQOQZ >8ub~(WX~)H( yoSh#J$G%AX8bC-W1{03V`N1<{c>f31Yg?D^cUw)^;m(RJxGT$?Xyx~0->|`JZ zS;3cD;gmcWMau`A{u=eskhTO3X-FV}1%99t-nX$-A5iN)%z54dq9n4Qk)u rUo>{jCGvGjtT8Z%8Z|zo*qwCJv?3puQC#-Wg?;OK zEWY5tK03j^SG~r&J^wj^>Hv0 {x_nl70C5YD;4Y}(Wv(;GWQybJ3?;2AKVdiNmRy9Vz ;^R=>1Gww=ToPPbc&sy~NY$+8(5;Zx$4oGN!};w})udal `~rA<9ar^LHm{rGKo z1iKMV`Vks+9_S;eUv*)Ayf^Fz0l#j3{FF}Ci}y!r)OEEq?ltoEz~xYq#Uht$!n=Q~ z<9qn=+3?H6#bhpMAnuZ8NBi*|L9d>{o1$KR{8`{C;@kx;&{MCGNn~e|AAf)ApA_A)j(FFAIkP|FEXYh zu6aafaZuF=@5ex=bPXO`)bv7EZLFa$dyzzOFinUj5upnq^zt|j?m;x_r=Xayag>H? zz=)zt<4HU|Lv4&FKZ{$fpC*v~V)1Mm+nb!|c$NBLX?3Z;c~7H03*;ihv#Gcbn^9_M zS|9Qz7kGef?nB gxcW^6Y^+3#WW zj*iBZA-R=JeIBN!UhMPG+~=Y5_oGfiKkiQk`5W*0%Dv=qT1E^yZ|5)cY=5HSx{7Hl zquNunQxXa1wCCu6B$CrnMY<;3eGtD(;XEE{(TS$ZOcLWbdNqmk<(#*vZ!-CnQ|+ct zlSxQdZC wD zsRqX-41W-RP?66$N4GbGi&PD=e9jm`M-Ct%oH2>c89*j;&h@lx0O=$#CJ}ml0O_6R zT;oozA4|?zAu|zUe}c-87`ugfSY4ui8j;*n9vXjUwM|l1HUkwFO4X^PvzJyDB$wOd zCQcPX-%TaUIO9WlBNeTrT0*-IM8D7;pyLO!% FS{ gJ>i;1L=ziR;npb8Y|9id69jnDd^>-DOHp!EcQUHQ5-b&!O(LqQ#);` zosRjC^oX @?Xce#I;#a?6`|?`eL3O{$Fx zfb4sj+DT<*;*N>x@%mjJqJ5*xBoVw>Qw;sLOJq@sG4_nMVF(>(9A9RB+QO1SVA1at ze?aP0v5Az6J&*XSuDB2;MVnD(e(+D2CoL8CSjxFkN&d+m36EQbOY+4NFFzjcKSGl5 zM@xak7Zu`hf(5~F+4P`=Hhe^4-uk7*qKmWt(xU&R#rTz7bE~B>+&^wjzGv=^%{tL` zPsB0)U@r;?9jV=EcT`@y*^>I1{YJ|=mL2r6K#XMP%fpJutOBmBzTMIlx~0N}7CLhw z#`M`1x{A^A7P@^Q>Bb#vp+_0Dw9spy{!gujneF||=(~|DvBJaDa}gOCvaKaPe(8qr z9L{moqElbo+G5|@qTkx0`qWP6FCzUi*R)hiH-y)de9m#*qKm#LwAk0Q=(Af?OYJs^ zv)?c|H&7NG66EYvX3lJ>m%Wg xCPcX%!*z+@^pvnp*-sE<=tK&GVu}QH zBE&H71v0s1Qe2WUw1xg_36=|=7Fx1|yum%YPd%3s4fn@=`o>a{&0V@r&o3qOIO}~n z;A1ktOLxD2F}LoFYvzylsQ?FV>wWsu$7I$UAKlLy95L)0wc%7MOXSo0NF-s&{r)?8 z8Vrg;qwulY;UhSN8Vr$eSi~F(J~kL)3XLqr0=HeOnR}mpu#CLUO}S6^E+Zdu{C(Qx z6H?vTi}{ VUQXWS z4*zC->r?WTgsZwoe_Kh$wfpj(+)F6AM~AE;8s9zl5S8V_aAcN{caMI%icEfOBXgW} zGS&Xhz3DQ!SHW$Q2g~Ib%sD)eEDrQo7@nPwb1(WJr|f!DaUnwdqm23Gz$EY#}p+*Kzvwcno3 AiV+GQMEBKWT706J| z{44!Rz)G^`S85eVQRwnt<9duu*L==#2g2hAwq|q|O+58t-9?wkyaY0{5o6Y`^mH~_ zXz;JJ_i8dAy!WpLW&2qpydizrS3T|Vzn%_}wHo~k_ZmV(8K=Y#;(nzYSCb%4^()O^ zO@{gT{fZLFOGDS?FFhg%9e<^+)#L_u 8QrtMt zU+MUT9?v1I{zc4nw9L5VrA_vmLD>EaEnAP(an~>O+Iq4>{TcHvP#I2!vMSOto7^ky zR7@-h?;x=!{}MidlXC@q`8-A95Wnyt{s?8!wzFsn3qIo)YS}>Ma)W=dhJFEkmwR%D zj?N|XxjT1gNiNCaPTjE%{E`HSxliuUjIYQCoc0bq{uNot4Y@-HeoeM^j=X~ek+>yX zBKWuQK{g`z+_B#On!F|EjykO)Hj#m1Zkf}XvzdIyap!MaRo@b^n9IIRW44m8q)%=` zM76}A^s`i^3Tv3HhrG>ZsGKIOU=D8Uv@^=^k<*cHmh~04Y35cE;X9)(_K`&hA}qK~ z&0EPtF6}mLPstpgB<7hauQZ#)Lf_kT6~!Qox=oK!(#JcL`PpQc_XY3U^cf`)od0dA z*hVbe qITaN(I#6P8*`rM+&x06lWySHe@4${+C%j6f# ztTM0y&ALUu+Ce@Io_=eiLnH5C2@vIemUx1*rg9YnMCR06H0(PP#*Mv2`R~XSuJbMW z-FKMVd)=be??_a;s9SNpm8x6x_ID(md)Q3-?}V0lznQ+h6TdljHq+%hNjKj+&8$47 zrgrAPn}y$+sc|Ps<*qc-Ta4P9sq%Xg;9JT9p*l}T%A WsX~WW9 zRsNx7Dtu4UxbK?jsqaY=x1pK3z9+-E70q4lg*(C_Ha877_n*xT zz3EE3A~v-v_m@t~II>CTf`or0-MN@%`tV26&)3z21PuDh!aYaC!t*BDUq>?fmNbP1 zs5)Z$4vK4^Bn~C=;rf?N%W}RP`%O7L#tlWCKWj?;yMK~ox BvT(JxqSpt}~l#av`sYeyb;AM(uBscQ9MM`*f%boBkW zDLN@Od*2%ydfyM&^kozM*g%GHpCM}o5)?QUo+A}mkMtikZCcV4eT>_*xQX61U^6kV ziOP3DiJaU--`a)iPN!w#YX6j+#vB; ;okoEXp8!OBrhv4L_fc4_SR*e(Cf zTKcf2dTwflB~M}^Glw))d)$=>Ls-eDNOtDcbJZU3N#L7O5>1lkNcSjwo%treQuy2o zh$f|JAeS%A-C@h*z9=-VItX=1mLDh&&n>h`;IQ(bJU|z*8kK?i3QdYmk_)|%t8i?a z!y~%3UhL6i(R &+*76HHnd3A&MoNf>Evg*pjV$ zW7Hp?NB9fj%rSIUtSo%Li WYg8CtD>8A|zKD%?T*{V4?5xhZ2FmKDnus&LNVv;l%FAPA zD<2|W#lKzEoZQP;VL2j}_b^Gc174!Y8%#v?T9HuSNLLt1NMes7p~fAn1B>NO&$;L2 zXj#y`$HoVx<_nGWGU&ZfXzk}3wa!wZvXNF8Nd$>163QCs??w{p8Cet*`L|$gq#bsX z@L}DG*hT}JA8oBGVSl6CBPDU$tVIQlG{}2J?}e+&ay;)pS>;h1B|&MlVMW?IrRH5o zqy?K%ap+?Eu13}MQsMhX`q^%*#oHU{ce^qFZEB=tyGf@`>l)b(FMB4dYvVo(N*z=r zWFa5BiKc&tqM<*#&~|C%q1YUG7j4|-pHkRZ2qR&B;{`@_hAdUq%YiaE+dcUfMF;o^ zvl{7~JtR`$S;T4;L%{CJ7t66hLoh5&S}%8~^hR2^ha@Q^uR Kw< zF|Oisve>{%(nuOF^!6V)Xk=PS;wDL>&0|MzlQc 5f>?5<|#G2yS9)USX9a)0cl zQ3a%@-<_N2Jw1_yiWZkhxOJ1hTY!CH-A(#c0h-|aO?r@py0y359_Zfo8ozTTl-;DQ z1tdXz3q^Lmw4qvI5baBwu#ZWTmxs?2z3TO?*jRd+xa~97FJi6tiKSX%lIAS3c{-O_ z=!`-V7}Bs8oA|#WL<@rp*NL1@Y|#OSgl)(|A@-iv_fm5qd3WfA|5MCmH~(AAWjFsR zrZ)YbV$OS2EDvL@tAIlvZ-?Yn7xvPrdr_Pz|EJIsZ&JFK^ihtwIdAT~S&8jMMXNW2 zn>>W1n;XI{;UecyHiD)K{7rg)FBaF{H>skCC=&YIG)bnj`2do&Pb_Hekv3VX!z5Kr zvLy7lnH=bDY%Cdxr$W&Wj_sw3ibzPG(!Dz~gib6217(a8?coW8XD*_6DI5Yy>y2OKNTq4 zD-W;xSrO^CGcir<86Tl&H`_}%%Y?`;y_#XVwhAYi!_a3~4>9s4-V$A`Y_RO=Y_Dw4 zmo{h**kS_M;_{E*i3W?I*?zJ?f4IT8&t^E`=^TkZkI^Vm9k)dX`Uz$x4P8*GdYks% zM*@`xAx&XF+@Lo$7z-gSIxk%A^~EmZaMlnhg1&*y-A4xb?111G_U{|?xeeMp8$G%Y zi_Ou4)N?=SKITIvGa0G;(+K~WB63+jdbJEC%x%C*l#+wy=A2$H?Xw!>UhY;=Sxi#a z6~A 0=wFq%&hCGZryJNFUQMWfL>>%rG; 2HAV U4~PkjdT2+^Y_x` z14NbiM?I$G!rsFrU*s7N4Z%>E3MJk7!QSl4!G@U5&aZ5kb&X%yVp$LUr|)Pdqf=-r z#R>imIg;En+Pk8Bi8j}ktrKOx+cuH1K4xdTW9JZ&B2AIdz5xd_E5xe4r8p|_Xuz2X zPPMSYs5-}%GO6jV`f$BuE}1w{F7IN{U3KQ#=r_Z0Afysm^bhN?Zibs5)C )m^-XP38ta97 z|GyNY0h`hMK;ufp)N)6lgmiI!2Hq%!ViuwmA2D8qa(KT|byOU#C&s8!EDW6XLtp!) zdRCHpsZCNKmWLoe&d#OA-&{lOOdnN6mf9=oaROzN$WvZ;v`AFJrS!`Yq+17-vebTz z`LJ3*W;>Qr+XxbzsqKd9VQx=?acu~{fODp}n6ytU9h`wI=+|vQ z f-QT|r |2cdY~}i&T|ti UH;-#9liFJ)_M3IcUi>Y0ht*ywskr1mwpX63!?eTh0rrY< zJFryzs>&12)IpU
-ABM0!m*hW8E07Cycc-qJ8gVB@Y)1h zem26!+vH^U=1E)nV!2%+&X>qJXD=J|d6R^UclNa9Y#up0e@$+Pwx_MjgtTz~{LRDq zUe@-oRs7DDH$lW-cr-J=?tYrFmeq`ha!(!3tKGFa{y{;V-B9Nq5yrD^m6}fL=*l-q z9Jj8H=D!JLc5@v)^Csyj(K<@#lQ&6NMrIwW=ATOBAxUI$gny&ee?`fK5`X)-8zWYy zz01@T=kdaVZ}Lgfj$z*nfK_$6M7gxC#e*G(qn>rH2Orhh=O9`4T%bKxLf;<)Rqf+C z`qdcHHE2>@{L*h0PL*ojs!MpQZfu`#lG780)=~Qy67a#Wx{3X|$iK+%$WmEbSg>}o z +JFWWXf4oLe*pOa#DL3l_pO~SJbr-8`+lrL}Tw!x81GC=a<;p z !y zN5wX_;u&=%)FYk5badvIC`Ilx!kE;0mni+t4LT^DbRX-?D^WhYf%=fyq%0FXk-YPU zz3v7ARxEW*mdNGuH}d;>6>4d5fpM~AuJJxQZPe;Zl)v0y5k7hqSNx#n1{#_ElnymZ z^-XcX;e1KVvARSS`1=y&6?foeEO~T1)jF{*P7x#%8^0@2UUGYV3a_ERxE@A`>SYhl z$2aRb6^QMQ8)nB1y@O@O`GM8B4Yh5rL~d !UZ4vJmmUiF-didR0j*n@F>kf-{&m= usDmq}ZLS>Ccs z%#&_l_}~uGzU+o`S;>q!T@r@Mxyme83KNY@U|cio}P*Wqb@aostogl?QbqNX`D)`2oy(}~k7 zt`8@MNH3?pc(^!7>X}b6WPH#Bk`tJH1|RR*us;3Q>z^O>8LN9_2^Q`7uII*_vf4A8 zc3O$~r|WICq=?9}H(l3`Ey1?$q)VG>r5z?>*419wQxG_ujh~7?F+CY4mYDZk$56y> z9W`5Z-8iyj9WIdi=|!puCFV2N|8s#QPq9~Amj@=ZsM_Hr@*<|ObaRHAW7Dw?vz?tZ zJlzMLO561jnpi>3CA-I@PA2!M_o? _n_?tm{CV=qY=3$dvH$^$cC>*l}6t zM6-0_;Ss|+#5)hlc*Rnj5*N!_E&c}%EUor{zIhxfzVoQ8TsPY$ov~Y?Juh1Y7p+A` zgC>!%Oy@q?Xj$t-f1_D8_P|m(+s+@8;qFHsimOQ$5n&It#YXy-?#Rv}879Pur-^DW zBCGa6Pdji}ArD28h+ZsfyNQ-+OA*<4;Gf9a3S=G`Dv<4bsM3^}m!r~OWO}fRp;%?O z*w6mS^;rK`lU<(@IIy*dEwIi!*>ss=#!}-RS!*#X7jj8d2mX^wqTMg!d6r`-HnscE z)wBifL @fRBmCV> zU8ftT;EeR;HCj1^%;4@^qdlgQ6z=LZI(I70qbsjjjZ^V#E6M0O zhN0jqPYL%Az~@@btFN_qjZi9vNfj~U?ZUMY{_b^8`|z0N(`!)?p3Ds3G|R8iCvV~J zqpB_x(@E3F^iGm%ChkInKaSLbMQOp}oM5Je4ZB9GrjZsO(Y0l3f_Sln7X@f!*J#Cb zTw^`HY7Kas{2<}{uF``u$?G24WyNOERqJ0f$!Kw=_VZ(A;}uk!6s?tFFSw%p>{!KL zZIj%dE9;vD7?*_ISJpp-kv+@LZTbsF@EzP{fRG2iliLgyc7YFan<0V$d>6MFD(Jy? zb(@_99r$i;Qz^{)5teX)nGwPdFeBZjO86dpl-rCJc7hLcn+oAO@G)*PR@ebP&~0`U zwu6szo85(N;Cr~uo&vo>RkKOt1l0m`(VZ)d%Z{0IS#fb|X_DGETxqNHdB@l|6hxMA zKSiR#5bm#i#+rZUJmZpM<}4N-*TuM)%)DZJj|CNFM|9Avx _8#QQ$Y@lZ8^$)wKQ-p zQHJbc^4ulcJhunDVwW@j<$6Oc9W$2%d#YApYoJ~2Nk5v46K+whSzNpR;`??4657|Y zU8G>JD~@g&p&wy}o3_x?kmsYl<5|s_b87QzRF$6jHQIl9#{7v-U12|zu% -aZ!n)Qj1*_Uu}HcCB_{2}>M$$fB&;g;-* >)P z|1@s&to8`4%KuYX$+EDmrg6K!@L}zaZTaovcF^8(i~gO9i)-x*YKP*P0OD ~R@AVw z?!;KP#3g=dy4-|Gweg>@s{OS6DsjFOjP`3L)~Q{(n@o1%Tvia{=MZf2K!w_* za=FQ)%iu)a79o*kx&M}(a=ArUmbyWBjoH}*+1A(X-D?$>6wT#*EP0te2A#rr*$*R$ z`C<`G=un#^i3$jk4-V=rj_U1qQCVxzO|mO$^_^;s6H4Tfi5x$I+j&C1Iyo_+uqHVz z;op~&!xIi(PVOM@fE-oyMIs`hV=X_qJfV9H-@Cl^UH`NW(VMvpe!Jb$A?CpPY>jX2 z=ZClom59<`=aIpgPS0acxEx{q%+__;>(g6TXP?=0Rd4>Qrp0T0LhI+*t$${p72E%; zxu#)?^?EEAtmIFR=5Sd CCALa)Vxv?Lgbv? zS!4X`XxCP+!ScXr>Co%0Rb(_-wkC4pp5{7Q^Z`kpa;Zix*|1g~vOu!wLQU4Z)jPi3 zn6f&4ox*;u#%!)hI9KDy-&9qz@!PD88&(HBkq#?;UEXJem*#BE2#Gu(F)f1`+0Fbf~SGI`e}4}<^<>vtYcU5_Kwn+j`$ z+?s@fnqfyH(@w45c{}6O26=mVpRprWkMPvw)zAa;NzmXQS%jfaFmcW4-8D@wPRod8 z$!@FB?5r8VDVNtIvpvMn^GsQ~f7JZNe`*1T5cVxK+D23Z?Pn%w{j?K2)7RGIkk1Xt z>1%4Df^j_4BSe)9-A%Z6Ijhj1+odu7beQc?bxLD@PlHO-B|QB$-Dk$VoVG7@n8^`t z%w@XHLVC)aXJ>b9oijdJdzRWPcnG0V(4GhJ7sgfR=(B@3LN>lfdmSQ!IjzL{@gdR^ z@4VzR?=bGOjZdk6F;-z!K7F&8s3b;wWpP ;Y!dBP zvvaRE4TV$v#om|KC9}y}J7;$8v8FV*HC%k{^141QQP6D(9v&U11FfW$Q?0l5IzqxF zoYt3)E5TnxHwMvfOUOr@N=iLS@tREglFlk6*E#Kd`nnCr!m7L0SvGdzuBxY>{DiAi z<6rdRPh (ORdij zT{NbWO!qd #uGw4Ld=_=zWnp#CBaH?qfO%?f! zbFQI&4$|FQwNqgpbY326Q1Z^d>2L=tVNW{WK|04dId42+!hu_iI3s**#wovgsl1Eb zaLz=8KIbuGRLd4%?+O2obiaeV*+J{)U2z?Hhggg=i$wca?L+EYjeBe3BRaa8oaK!7 zY4ABzjPVj(dX6Oe9j=zQGvtlsPp=LsJi;DY7N5hW-T6AbagKEB;`~v%*%%YDeU&Vy zece;N@tiQsfkaInsv|V;JlTy}prz+Yawk;|=MI?D9_KzLmuObr*m-(mK9ye}pLcV1 z@wV7ehU85NZ=MrIpG(#!N!JUBGrceb@b1xk0k2h5!Svh(5-c|cc{3eCDTV?;A6&q1 zgPgle`o8Cc@+u^ZX9#xhb7t>z+9Pt4#2kN4c%9|PV4tDguhETEKp#J(VTY|gZyoc~ zE3|noo7i9 A$SHrsU zIqqkfEsS|a$vStbWFrj@N0~Rfr3ZhQ@ki`>zjMM_CKPUFpL0SB<0l@ImfMG$z0Miz z!OrC`VVc{Y6HYNN#6}*4GRC)M)6F8AN7|$W3&mB9neGhZQevyi;|w0@Jga6&*0K;m zBcBdE;bIqqg&ORWO%mrfF6LR#7Jay|hcQstl@fDnwMne~22WsZV*S@usxSqT`H^{B z!q+}4zoc`S#KseNQEUIDx@d bDERrqCuufEfftB4Re&sbUB?IqQ(LX=wV zEe@MU*{MP7ZNWMDD%qWo*p*j54>`vwbZHUlXB8_>rWTpsk7V0UbG1jUc2o7xa+j`B z!G j6xO*x2IDSB03kch#xTrr`>Ab^`Cgo!&bY#dMJCVv2a2e);8?(J}fdGx7v3i zM>xg7S&;FdHA6ohPYwNyS s4f^pRB_V}E1hX6T zsbE9gUdjpj<<&wE X0KxeuY`W-<1d;=Z1dF){A~Z zyH#TI+tr5Ce#ZCMyY16{`kR# BO<3-X &;5nFy$UmAq8<;UJ8~Yo+593* zr(f5Q-kDCFRaplCHV*d}#NM-7(X23TvG(vTKka9ZtH%C1RDOSl_6IAZw&1<6jeB_7 zPoARPY&EOg`S#u??~oDQsLNPAR=3pfUSoE2lV7k1xewR7;^Oot95@H^u(3xWLO#p0 zjbo+lx(}xF*}isOafXPs+GlilEs4uCKG}! pnd5ZZn2TrRR z9P9l@xDSC=S~0QLIkdbBwAA5LyKEkrXf{wOX1Lc~xbK-0-VUD29jez^pi2(pK)0uA zpv!#TfxM-<(B~woRF|?ERvTv=;IiyW%{c9M>@a*&T-ni$_mfyDoXIZpDFo3bBNfB| zK_bQ^m$?kCsw5` W zV _|LM+jZsL0WB-0#mb z5o6~f=RB*uJ?j@zbW5b{eA~(%%s9hcc7mHp4~I)MG3Xgy-r(JgYOd8Tau*o|PEk#> zx_?z5(GHh;oOFpYAuq5f`?O!$uJI#>TlB7DN3ha|xzM7QqOXV7NG?@Bk>}!3id0Bo zmB9vt@bg)4sGcfD&96JErH1lU)zcRcld&sx>SXf(2b8EY%-4n+P2r@QV=>(vTuR*% zh;Xc*TSPqT5}jP((T#PpP;WgQ+931~OY}8oN7hf`99l-xFg?UL(k_dQfmC^&bj>_d zWs@4unu12Y%;u!&GDlPlm)_pNhOIO^`c{^s%n*HBduX2}x>+CO5Vo_V45$4zUzZr7 zn{Dkkw+)-8Y>M3+?TnIf6_GCIIQRH5=i{0TgQva2J#>u2tQBlA#Oz7T9UUgIR*tDN z77PB8vl)i@P8x=#DVxa;nefFBvya1ISd(FxmUxjX)K5(}wx@TlljO|jRl*1EJm_3l z8{TKEyioX((Q*Th?_K6Ut3q2s93h3qQ(nV%r05@33GcWg7^H|W?Nx* a2#=G#?pFVqXmm<{S%dAV;UR1v5o&?Y9%?xgJn{YhfqTE%`> 73tr18QF^I#Mt644@<->Wo* zZvT;iB^R0M`d=A=Zq^;817pp*m^hZzOjfZ~Fa9TKzgN-NBH51d7UkFaZB>HA&9}v3 zS(g4coDmhSKf@wCJ>!n>t^Ug@;W6X!7|g>wxk`AeZOtxMerujkWqjhb^0^6zKUL1m z=Ux@Ky>fPfE*LcLuIkHuOcPuz!x?%nji~B98mfx5+Iv^I6+!oX4)hPJJ-*6=vaW}G zA24U3fzz1$1+qD^FjbV*{t?34q);8%Y!+g*zg@+YL1$-q#TPDBq}BeolKHVPnHc@S zRtR|5Hc3XZZlkJynPC`jL4B2k7zGC_2kM)Z?*!v#IxCr?#PlQutAx?AE=!|i0oCnn z9#i!~7v|Ju1yrVWf4iVDC7y_MX6|d#n7*x->iw&P1MXTfFm)-jnxM-{1mCvWjYKbV zcZmJ35=BMtc86Aes~=D$7#LrUFb=c03e&@Z7s%y5aonD59b@}Hae7r%eD5Bk8j=3B zDq%4zrTbI|_P8qHqs;#}%w*b#_TzoJ6>M9xbl(D5>N8w5WSMeD@`Yu(IqzC@5zshQ znWmtrqBfT $xZABVdE`_oFcRAgfL33(z>Jt?;TRp}n~e|fF^!~Lrhr`YPgWn>E! z)-ro*rSs2X6L& Urs#{b5l}ebshzk_{-khF zfq2i6z_w?eOyKp?5SSw_;MRxRB-PS`~9N+m(v+}gH?UQ z;3hm~vCMm^xQPsEZ>Tin^(ovXc+$~LWMJl|O2Z)b^C&2~Oja+JW0TbUWu?%AvABwb zfNCZHjP@Y5rhdXHX3e(yExsy-KGd$w-WKu%^I{ir?NsINu*aAK!W?1Lyu1>