From 40c3f6d9b45c201efa00072d864a7bd4155afc03 Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Sat, 10 May 2025 23:26:14 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20"Refactor:=20Update=20log=20rota?= =?UTF-8?q?tion=20correction=20in=20logging=20update=20to=20app.log=20file?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __pycache__/app.cpython-313.pyc | Bin 134796 -> 135121 bytes app.py | 12 +++ logs/app.log | 6 ++ utils/__pycache__/db_test.cpython-313.pyc | Bin 5839 -> 6362 bytes utils/db_test.py | 124 ++++++++++++---------- 5 files changed, 88 insertions(+), 54 deletions(-) diff --git a/__pycache__/app.cpython-313.pyc b/__pycache__/app.cpython-313.pyc index 2e4e59dcfda9bdbdd10db74a90a5dab58b93db1f..b64110b06985dd327d546725e331d8bdfbe4fc66 100644 GIT binary patch delta 11584 zcmb7K34D`9)9)mG(l#OVqIXN_K_R5&MlR)&OAxFE6`@iC4W-aFWs`D=mP-Y>U2#1C zQ4s`r0Sy=w4-|jMEr%jRJYQdZL6pxIIlSIjxl{wckxS`2$lYG~l z*JMbrJ~UnaX3n+V+`vHHVY02oo;N(y0rGAM+H0^IA)b&&%qc0w4VsQyLo(t?YO~xH zY;(w6mORUdVEuOaJ=X6C*6);=P4ZGk2J3f)*;-AutfLy*5Y1@$U=w?6$u$V?mb;KQ z<{Dn9ywb#Oy$4+ffajc`09AoX$e5|8iu%#^2V}s|GH%pIog+xl0ImXM+ zlQZNS)>Pz|H>e_i0`q@oenl96BJ=w;O--590N+s=>PWo6L#qk{SS=rIYPY&W)*UtS zAaW)$EWK>GEad%n0k@ zUU?QdGecu{+$VG6?AH6kwCd!jIJzaW9wW;xojVwC6nS) zt#iZdKOlR=+bs_^pmIDUYvS`P^MmyTa&>&3b$*z=hvngTd&Xvb>rVuApOh=H{#3BOQtrq4s$hM!yn^+ogY`ACpjn>fnPB}{Iigu!)^ox7 z+Au8dIi9ENK!~!|1rehl3bl+kA1mev?VDR?LLm`3rVT5+k%qB-_HCl$*HlggyI+Ze&$bQ zelUuWzk~U&BLCHE?7xQmEbD2<&h&_hAdZ*Z>3Ch5Q|^m;!|`T!V~YqL+gm}*yX4lC zJWD8}y)8dY$&)#$6+E^*LAm$PYP#H-9F6~Dq(3#)vNzbaPXcz#|JVsJ!~)>`g1R2;?pH8HfDa2-0_M*gVZ(1fOuUhDZ%tWZz+F(m!Ic*@6{8WW8_r z?YA1VW>`Ed*WURseCTU8a;*X4d>@P&2#LAK4_KyFcs#D^(rR~^OXSI-l60+r_`aJ< zc3a}ouqdoVni7fiWltyq$d$t?cAH3Dbdt#vcNp?PP2LQd^4!FHh?DV?_V?t*1d=GB zk+q?cok$UpLL>pRb4q!saC$4M%SA`xb|TUll)W3I$##`7+E8Tt;=7?T&?K57CxETK z?CHONK?9k2Zwm`CQ31)Va?rhPGUBN?lKQ)g$S5MCiI_kxx;L%gFftNV;VE@abWRhu zku;;bol18Qxf6*e3RPO@|HN2QA4yF_YJA_^J6?k^a`$D3D)2 z(A+Fg_A=^v?v}lmwDaBYpx2P$Mqa?+uHFzSd<1D5kvL=uw>&t%D4KN8*klO{T9UV0 zFBl4L>0QvyG!0vfM&E`7Pa6veg;+|eAtPj2c#+J=8KxtXeWs`P5EUdwX2le0jCYk) zc(1`Os*rDMCTPzUhlo^@bez0pd6xWau{nuiTuf=yo4mR>6>4P4lIGeBY)|*~SaQMu zLuLH(Zl<7qXOx(?yoLEblxSx}Ps~G4boPC@{96N#>hPllQ2W?)NU|_?_Ci0IwBjE2 zlJ1p$s2PZ<@VLjjMU~Sl>g2K&$tIScD&cCPd}~D-FYG?PPgbllRs=jUnxxTI~{;NG8kLRpV?t z^grueA027dn}^lCVY2MIIvb)xS+|hHuASKte=(>!5~V4&C5cC< z%t^13hSq34>6|WRlSrefWMs+I%DCO|$oiBVwo6EDnwU&Vj}loygtC;FTkm{L&U~(! zWhJtf)BOG(Avdk=>pT6N-(ccVOp#BlYXuJZ_PV5ousFRg7iP-e*HQSSuD5AxPv6tJtEk`}nPirp<(8i)^#CueKeF zCw(!JY+<(YhUf#gH09^l2{@$$=U`gaWwI^bFEq2jL59mA+ulWs=bayn{V`M z2aR#eM=FtG49Qr>IlZoOx0qg9Rx!>ib`Vb+H=&}k%oB-Pl;iab zPfDy=>U;RzNE0lSOZT^`BM7vlsFA|6KKKJs1s={hV0V#9NOX+@df98yYg<jEw1ThD+X{8vj0c|?{(IX|=HLb$K$CIOI zFkq>13Y>I0DM{N01I(w9xeLR{6Og56@AiH8!4{(>B;1VT=U||E}6kKiawZ3 z0J(2Qaa8_#ve5JyGC}jTJvH9|#nS(A&*lyi69{~`%_2f;u$tISBUC({JX)QOg`KkN z=@#0T$WHQ=oStJG5Q4#-1Rbjf#tG7=WIe)`_}?9!Dtmrzj{B74Lmoe%oC%Ov5dEjV z{D@>v65$v;Dwlj-sC|X?R=&4Bm&So1WCxMCAxcm79F`3A+QlR&|J&mK7z2-gmDPhI z|1UM?5C&GScQ#V&N1|7vb^zZf_4^loW48n*e5yy9MKtb^)I$3`Z(O17LaW6f&XFYb;-Q>UpRxm%GFPPwVGtH^9$VLH zDB(qkSrI=*`;PpOpcSW+<^g1h3@W`xF)uQy7}|Kg!0HA=z~ph)igB)h2{T{0%Zo|t z9c&0_uCj8MM?8n+fnu%fc)5EV}|gEE9W9@Ph)ZT3}f52ZN)My+RQv*0nJz&4{jj}uMyn!h1 z1b1!u1h4oVPgDh3BzpP>U*XlSjY({g?XX#P+*Q@e0QR~@P23NKcEB`NIIG7^;7v1N z(LG!0onGS_f#;AAPKu0cQc$BD$7hc*gwaRn+Y$*yOeYhyl=9UxWdO$y0YXpm*f=(M zfPV=ybUdhbR=I@Hpbo8uR5jEH@fIt3z+%FP!rPDad`tf#BV{vm77a*9c=GTsXrsmG+&MMI_*hm!66??pq$ z$i^X{M+f!91CJt`oa{_gibjHY?$72U2Bh)l2 zq(reB>jR;8&>y&Gat!?U?s(VYNn{v_xdw?oVk7JB;a}OxDJ~B5JqnuiQ;HRxK$v%^B*9FBZ5RrnGkE!g0*qse!YW`At}6Ewd`iIE zP)bt_?-0IW>Y-G~(=t(PlYdJpbTz=U>YH>JV|t!?Uay8`K(5vto8MNLW7okZe_AHA z0c#6n;c;0%#;M{gXaRH8?kM-)qS~;p|!*EB|j=n z0BEC3`Ou@Gd0;-YGIhY_h$yu>7y9^p`Oq9p9Z9*3`luz0Y>@0y0C}d)$Tvs%#}vR) zvh;l`2tc9Q*BY|4>#(Vr|J&Ax$JA9|nbThyq^+soO{yqLrJ3|~;dK1`tXzu#>f9eAGnD?@3)fLK7 zZfRFY$4T1Q6>6cAYS9h4Yqz0vSO1u9P}3ATs`m#%J`|`Q2f`w_s%8&@yFseY27wKV zRm@-E1Icl75A(aOqb{%{#$W=D&p}DQQ+S{3_8G|p5%&- zBy~NNdUF&I=}Uyq1~*cvKM_9La3XQTROM(` zs4Ycaod4I+Ff_6iUxVp+b2xU(+ca-x?7L^FpQU85pQ^qG+BIAa@fm6)`?`n(cw1XS zQl&&fnv$x#>GM3zq3Uw%njd^H(efRIuQ-no_c3Z$D$5Byv`3L)^Orc`7tO*5btr0V zIrKF&0rh-2e!gg}PM1S3SgbN8z>GAq7HHy`fEV7f(y`O&sL!CJ+B^aBQ|MlbCze0l z%ulaNHPvVQs0!%Ro{m{Vj0bkSBL?4kZc6>uR^ zPxVXHo@yxS@EGz(2!&KIjwI2Otc5l ztA`{9TO%KF>~XA8rWJ|^-lif1-vl|%I376ww?(943x{SX78wWoG8La{!(x!|u}_z? zJHJQx+BzK7et+}~cuF(zLR+jh)WJv#e`_-AhW6U4XtTAy(?YNq zO*y2QqWUkv!{tuo&-PDTf*YXr29_UG7%;D!vPtA=)p;3IXuFWT)c@=<@ETyZN|Df8 z+k>nX{?QVq#bo`Zv+zr&PyNqINHWoYM3%Cwf)=LMR4!H>R>4h4-KduyG=ylp(7LM2 zy%WTbYUwIia_4SpB4^Pjxw4A#3a|df=XVT%fO(v=ro!v2teD{v`nE&T{FStp%=65% zYqwFn@EwCs{-vsBFYXizS3_d{OQaLJln1EFJK_;4T_&9Z3G@sc-9ZIGIh-Xd`6932Oag#F4qy47u^jc#7pgcDluG+ zi8$43Go(i8FCrkbPbVkhs$sZ%V?9dZ$CS1nT5BI5v;=?0^)SfP=O~s3ieuz}AUwfP z7zKOb4Cx+65wys-CliBhA5yRW14{mXD6``DPQ&?B$Ezl7hTNQZvdS;3qj9|Wh|E2N z(9czyafqg4BsN(c+zjosj}TP%SGK_0TFXX5pcvQPvyV#qkqj3n)YseK&hYCMo>iUO z(dcFp+M?>P+@lc=bJ$MEx4$DKyPZ7707LJSN7d2o&`~>uO*Q`LS71eCK^DofCwZ0A z%aHg1NyDTw%!_LGYj~=0sPnHu2Hq}Erj(z6OdQZzw3gG8>ZnJSXO~TPXbMBk%gXke;r?CS{Hp-Jw*?qUDoq`IK;cM&xt# z-fxdFA!WOSK<$!`nr%dhP_Y zZXfELo{Z7goVeL{S4j2+?8ydnsxPB&E>HV^IRVWeshZk2z{59){F6|4bI1ieW?pt)4Sj}#8mx0eI-)v zv!M0A*5~3p+2L^6idHaju**1z8cFhuaOho7JI=!ThUMw{7P1ptpfbKDcxoy!mvfqa zS*dT~jvk@Wn)~C2xZ7M#{IQAniF)PP2%Ql*d2+{`LGx9sbI_p!&l?{ac?*&mIip9d-B|WF~xzXaeSnvQqppMGgHXWxM+I z929g4W{d!T94qyVbK(Q7$z54S$Kq``WO07j1_4oWo}cD%*^>US_QTC-z$ zfJ(juUqsW5(e^K~Nd0~Z-o?Or_cH8*fojPWcmi%vt$%_X%VKg2XWS)f#7}U_G=LZb zRi~ffi#opb2Q2(auF}mTh@f8S7R0~$5zVOjZ>sW28cNlXM8*;+BT`PJg2*Hyg2*%? zGl<+rWFC?EL>?!ylE@l}sKb|KD$qK@D;X@C78x*IBd`9F;B3}`q4=&;? zk?)9{C-O59dTbW--YV#2Q6v(f7cr4Sgx;P6y)cQEMC$07NYKNOpobpOfe5|S2zrwd z-HF^rgs+cuR}^%u6LfbIbXgO09};xC5Ok~;bi@{PBGrGm@K5sF$4CN3QCltOP$lRD zCFtlRb{R$@rL&QsBZHvLSFXde-j+684sLCaWB1PGe?#y|dvzP`#`R$J-nC0y8w zK8Wz#>_77>m~gI0sXFr>fAX==zQ&X0J%L;e(F#P`vO zQ=^O*J4R1UGhQ;9rsNne#aO3g8ZRYBPRWnBl&KLX$4KRT)6_`gr8cosdK)kG*06jz Q$~-kW>T;TSYOARK1y+eKh5!Hn delta 11551 zcmb6<34GH<)_qC-X`3`{p?6DfD1?-o$|=I4l|xw|D2RoUwt*IUIZ4a43WA^lE8xHm z3IZZ5Ab3E8;ED=@KoLPvP~)*4>xGE8C<=Vy_ufl$Q1#pW`2BdDdGqF7^XAQ)`RC1b zQA-|+ioIa5m?H4sL$734X1=*RHWiNVXumYtP;%eRpkNXt#@cU4k0>G%{3n(_9Ft-h zXdh(n(M4zP*+*yplRO=rZy6khxltNT`N=mGfqzO#ioH0&)%T!V9m2l_bomeAbSOnGs)h6Lf@2zl9Li}`ba+&(g0UT@Abj|w72%c814LfoC#Xi_3a$JpW~T!Wh^m&DjC zrRXXkS0S@W@(^MiVVE*`HO8iQ*ayi%OHo{feNce5WTV|FbCNUU0ZS_4Cx_vuFkXu# zd}SEEit#tcrkbY)46sj=Q)BZj)nO8A0y&+$UTUe875$sJdc>!A#?42ksab~mb=4d-6JO< zW=p*l%K_?TIPkBF<(Ztvgzm9E9F%jwYN$&F9>L5Unm<}<)_>q z>^~4PN9-X3?hh0EpnSWP&Acce*uGerTIXAqgi-ue_HAv`FS1XTU0Y|$1+7!DT`4QE z{bK7>%d#-a5bQq@#`~~+W4fGUNzdFARPFC! z!$<6!ajBcoQ|2wf`CH|AHtWL67o(XU-S!#b)ZcMVp z?Fg7&l7b<>lSBAYQfizhNJ;qT5Z@ziS7@~nx0`A2PENJ#3Po1QMmZ@tQ@)&>8n@>f z&d(Ed+)4ZU_J5>DOa<{)$yoafGCt*Q{a*Wva#>1-`K6$)FU#F2`6;2Sv@gsP@1j}J z`vau%e9By%{Sfj_m*+&Nii;#!X%{e; z-|HEF%UAly`!TP(PDaRWW7~OZN8X|7E=G8oZtDQLpCjaj+qamm(lJ3`wP(}VQ93OW z>0gmo?pOp(o`vH#>Ok+YO(=%$Nr?BEr&qaL&f3!2x(cUACeC`CnUj+v%J8o*vZkuG zqQ+4#(s1aw=ZT32%<(bU6cGe~fX>r6wG%*++&Jxkk$8#%SyR17mjY_XGtfp3u4xN; zSy^+mFAr)&Q9>$aQY(u<4uNb0K9i$yN~v(Tt7@l+c7!b;&|X&8=4%76`JHD)tuH33 z1JNSh(>VJIbo!aNH4X;#JA`WcE5NZu2Fid9OlVloBO#&630ryPS zjH9SOMLxAXC2?}K!&O;Y<8-+kQ=Bew8;%^3r{=!^Cb|5+ENv|Iee${c1osnU-vt(J zJmNl*w=5|0<4k(Tlrm9*$WP_51vQLJlp_|JOcN3Jg$_lH^OP-|486%)vsyK{oT9XO z4Leu5YpS;bFQwHisG<E(6r|W=n*MsWLDk?XM;0G*2}~cr*OHQ)z$7?QAISw14UNIaf{nge9l=s z9LnTti@O-7;mA+AolDl~vq@F4l*mKOiLaP~U{)^imB;^Lk^fw3>`4qo72#VsE2`Yr z*d`_+-kKP)OgM;IFVmK_?;Hw}7D5V1a2$cH1ZcHIxvX85rPbiU;{MSOR;b9_jOUu4t=A6Wgf*s8j=IL6VtGVP_S|YBi}>SRW_&qN`kW zlj}r{!z~2%t(wnJ;cz=z`eLfouPW50BSlY7&sC4<=Fm2@8ik$oZDCRo4*8i`!klrO zD0w^ZoD?F8{iE3pK^8h+RI`CDAJn)o#3Cp=$dRivwAn~C%2U6(pCR{Jt5~`(3U^E0 z^jfFbs>2XCwyxaD9{fF({r(}Le#vs&`Wv7^u3Dds(YR;*Ky5LOP4xV-KGM+p9wNKe zZ$!sCOAT}Zg zpMj5tM){{bHsf|gT+w@6d+ygmvApuapuTKZXbaVmc-}{B;fKWhTDDvD%vNlZjeC1( z&meuKXXoBy`gjuNSD!)*ZFp#3K|t|$_hqJUqH)ghU1^*$SHRl1{h0;VO2Keo@9e-y zK7D&+_+JHTi)=p1{MvV;VP55;5KUMB@D?OxeOhgu+v&3A{3Za2 zLs+m=7Z++yga|Dmd-poBuPY7nvRH{}T=-#9T2&!9gOFdsbO;MV8hD97$XUIJ?QsJ8 zXn+kuTZ;U<-Wu)q0Btd!iNelR%BheSU>jkhSqF~D{c_;(e%fKg&i2ebzTG(J1!Bn? zk##;sV)hb_1o*syTJNjpy<-nqf^7oGUo^f+uF+Tsd(*RepOa zG26fCh;zt|TSzzI=xo~4RcI#1_`R@(`J-neEPJR^hdCjQO+4vF0O$N%DYaF z(N5sp=R8MGw=%R38QDY(>5v^`js49!OWpfLZGxK-ZDsK+l*J#E_V){oCy~XE2G4@` zAJD;I8T(PcR7ze#Akz_8A%ymsLpnYxgs0_0ALVGLkR;mU`DmX0rjRnsIp{V2vWF>{ z@E^Q5hU1L`<4w{aTM%;+gSTH+^wP_m^>aYoz}m<*;O9uH9_@)3nuZ{rue*nSFU5{Nc<7Qi%?fz$)+p z>?iE2viQq(nh%@(J@sF9H&lj{`W<$cBlC-ki;Mc)h}nTpE%ri4S)RiC?>&;1{2zQS z^UkIX`yDX?H)P-xCO*IM_V3Mk)$i>`&$iY+#7Vb#cAR}T+{Z!P&+)Gc%){6mF-zaMb7wJMR{h#$4*Aj-HO)D5dY!0n`HYSR zcV(UMuOr99^~|%Zu5Mb5Lrim4U@;W7w{g&a&H6XBMibyA`i@%X32*}E75kpLW5@@g zC|PNMerX(rl)RXgFA_Cqm{RE$|6Vx`3bdba;PYMc;R}5db7fx4nqBw3y2k*vycR<& zi}d#y%Y>u0yi(}ZYX(TOF&$+-Yj|F1VG&mfqg0#*sgZn%9L@L96dM;N#KLOwA8s5f zta?iYR6WktT?A!W52-1RiVD6amj-N$z=P#i&HKCt#fCYfh@;-`Id;&kgs_CUGGsJc z_CGitI?V+;pB747Ai%Nk3$aKQoyp&!4Z)Orh>xa$ADMg(!BAmM+W3q6mNwBq3(*aP z3+gO>pe~Cx`cLSKgdnLt3l{XDFyh0CHFX))FD7WC>Cq!?y;)}HZkW?Tuz#V66HC8L zEe_60)VhKIGfj&*E&QY>N>a=hMHK*UbJrMgm1f3=r4L^C&JpTF9Hd0D8=F`DhS18J z{rTbl7RP35XpuimwyDAK7|KRO4E5H=!ybKlC|$SYqy{EJUUPa;m5Gp<%oRjSGEQm* zf0WcPoVt<8tVpAJHxY8RC=`E}_i7@n4kR+QE(HRaOudi-c?oqiiBC#hfB{`pvrQ(P zyxfQf;Vfm&fE;h1R2ZwX4kQnnTSgfN7{!*)D4aEQjZQHduSO}c*C;hmeUuLQS{(9S z?=@yXFCDB@12SQvaTV$CsM?STd0HzR-ldu{;qS1{Tb~6T!IFR|JjVRBmD-#QInbz% zWJ6mm6-N$xzt4t9h)l%x7?G@g&4G?uI(ANZJLf`QfDBcY2kW&QM18Dc^PvpxQFrCT zFY#RdWg=SC;og`vKn-+2mRi#mx))>-HXA|k3X2rJXuNutRaI0tYegQ8ogr?6yhZJx zJwT?KPyl_6{)y_b0%)(bMVcS{G^X~D1;%#7HB)u&0OJCLOFE!S+9Up|pYX>H@MkcG zlqytnJ3^tF-4QlIw#ux4>5jj879I@EcL%%YivwjQo&_Av9&^yq^9(SDM)vs zH>6_>oav2<7pO^nppP~Lscqi1eV{%T+Nro9&=%5E&mph`zE}H)zy!EoWe)`_3|2#j z!VJszq}yx+TlHeBIzANAyWK(Z#v@oxdQwRL{B^|Kh&N(~pDY}9|~MT@rU9 z4SHv!N*e~p3WA)(1jIMLh|c8~Q4wUhMwy30cH8Eeqev2MRG+b`w$f4U_TM_%kgfUN z5yL?b{~g<%YWgjZo#SWgi=O7cOjbGlmrKoE>8x>#5G&R0Tj0>G|COQ#TG&4NWZ|fw z?W3A)H;6RVbSu2|-zj-Yy)pvw3RuZVF_LWGMBWd2L6j4YPoXrg>Cey&ZthI3=uT8! zxJ94`fu0142wX>?7Xhx1I9u{*$A?o-nrl__M#3;$^4CX#Ei;p7uSejE6V7se^Yzyq zE?f(hGzx4mN(~wX8MdTwqQHBW|1oDf@#PX>HL=^J?jHpMOxKeE1RA_2M!{Ll|Ng2@ zjD=)vCZfObo*4^6VMqqeS%WNQ#nsF#b(ELaHPpHTPpyl7HbO-XYlr)0K*OK zIqg*;vk@qbs{lSL*=-w0&^!`Uq@H#_mq5{rPf_F8&7FvVPtALYYBYh+%!SnT5D70) z19k65(Og|%3g=4*Uuhm7?1MDENKGh%zS<&0WO~<>!4=KS8v0dH8!BOt?$-$Qc_mzj zsk}`U41l@n&MKIdM%;Wcu1be+R+N^_q)MKZTBy!dLE99%o?=1N@*=LRQy~*m$<0%t zM^{!jbUWaCco}I$C!$~L<|_?r-Kd_N3LRjfdTS~aX)93W8@!fjaKYez)0?M^_0Xx? z62y-Ye?=%*ha}ODxP^)`R*9X+4$-qpNqp${C(5NXbs2$$bd0K}>cJAfh}80HL9K=A zXgydpg;aCAKi9)aee=7bdczHc1uQt>KMKxkfIJ(Q0DPbRfTXvu-yr@*n)t=5x&~aU zM-j2X`*Z^=F&Nq7^ZD_5&V8g9ue_iZ#nBi%2dMfMGqGcB6Q&Rg;PYeT zzlg%%_qRVi(Y&wJ4~yXOLG0j12*Ec?c6zw?aDYqf&;#67wA&Y1kK3!(?Gn3HEnYyo z#|XZDGW#{e?J)wo5cs0G(56Q?Uo_oGo3ErQX9;e&=hc8E&{cZ|dA9MomVjArOr)9g zH7h}>r4Xy_z_AAJlS}dV(>&OorFJfZy~fr=_ONmOt@76)+<@^ABB!HO*GlbuA+6nCZg zQk_@}4~^YTL*zdCqE}HhrONGp)B87uh0j#(sIPK6s^UCT+0RiF zv5Wa`FtClXpN9vib%ww;rCSd@wO5hndT+n=kR1sd)t#Fm ztut+Pe#*obOWrKRZ44GDyzlnYC`+aI5g(`xo1we^)5>+E5N|_%yyeaJ3K6lo93^^n z&ohu}>_PeaN7Pv^{dPN$q?o3-Ee4CLh+ zi0hMNIDZ$3ZoaM&md$BY=g8n!2~nY9o`o*j>!?&G@4#nazt*mW4HWi%Z|$YliwH)D zCRMN-#)jYL@U(e+H*$TPh&HH~vE8?YBBrpjv609Q5ZFd8V;_VbEDx$yUg)l!z@ZB7 z5HGAW6!0q%yOPtu+cfoG2m&#{YJR2kd$GhRR$cZ&hLN+uXns>Na(u_r_D)Y~Ac;)R zOZ*kFdY(Rn^w8eKp{3qad*MS?Ip`7obdhBI zoLE(;k|QwQ>~9m|UA6xR)WI~>tqBUVIS$!g4#7}FHV5Nhnjk&huR2ZU!0|hky79E5 zvdwRkE~f~bR=y@EFo%LQO_`5EiS{WD?($Y2g&Qorg8}I?Hh);01bK=3F@&t0g%)##B0BS+WtHELSh5Gp$*c{lNo6bUZLIO_4mkU>Y zHKumX+MConXW{m~Axlj+;`h1HP6z(*MSMq6c_l)XBj-{U%n3C`P5BnOb>lVTQj$;A z-}%C6%?sQ3zv@)ew~*C78p|DVg`|WOh$?qAvis?Yh1J-lV$VUF)}J7q&s0@Wiod+6 zr=P-XQ~l3DL62a@@P8dEb(K4+ow#Dv6;vp1Mw9&+?<}=!1Ujje=b%)}M(Iy@FP(#N zQCcpx`>5N0f={C8`e^-J%u_e~3c|NJkDfd3L;xfEv z>_>?H%5?=knd39_=eX)RR{jDlFx`as$44TP6PQk5Hi2#=crmq>5|BWjE!R?$K6DHEG%cPX;32?O5q%sKCkUJ*aEib? z1n85C_>jQI1U@D3ErFj1(7Udnr%XYQeIkm0i9j5IRs`skO3a}rDM61={B|VhaY)d^ zkFXM;HyJU60N*9)(kSSDC+IdO==vt;h9v0DA*kpVRD=sETe*l7pON$4N8r& zmY{-4P$eaH>&79ZQb|w+A?Uakbg&6JM+BvIL0M7I78Vo%f|j0NNQ9GEml5lz{xx+K z4b{#8;!Yez^CMh0d#zWYtwDD_(K|+`dm%;G1z09pTz?K9EZQK34u5)TNcAsq$O3nC~ZvSI@mZ)U?6u) zwV{eY?F;N~1!&Zks4In)B5n3zrIotsQ&qJMQXl%TcI~axsa0*Iv{K(l*lkwZs_MC8 z2<%o-?`V$C+;i@CJ?DP+yYo?(*(>ddq7y+I-U(j&gL_j7P#)$Pj4Q9b=%cCdPuTjd5T-F*{iAloI13-$p2T9HAJBInMjW zeb}d>Dc{9z<3}#_8&lpx7=Wh8)n}{1swhKcsAklOV6@dz6hbpL6$OzBSB83t4x$+< z?ED9bP8b{1S%CqMhI{Wn$hhrlF+Qi7ghNQpSaAh6FMEe4Q6FHD_6*yHP`ug&_M%me zXOEWCf(}Qi1PH*r%abT(JNU<~C`>Q4jpDg%E|;Fosj0N4erqO~QkNF78cpWX+SR0X zBLz;@Ta*0$Hn_T+! zte(?NelB?<4IO$|qD(Gzl>~M2LPkA%CM#spkbX5mKyWSe%5dxBU{=s0QC`2ac4>WT zZR+h4+t-U?@5)$35ZC+H`qzinhPK+vLUTcAuJF!v;SFJ9ti(4Qga_9Kx43PwD0JtU z?ma+5KmR55S6cv+T48}035;pqpW674x$r_g>EUo%U!2XER9YwNqe8f(VZ0FH9rNLS^p*U+iu2Cq?IB6fH7~^~PFy%6~E&uP}ONN^t zRhUUy0-Bwo4^~$t<0y|pxs6|QXP22cnZs%^W|Dzi;b`t8u+O3^yv&hI*CAR)Y({ZX zQmfffGJufA9?6v^SqYu89gYa1n5?nGY{ngv-Nc!pX3#!yYm7$6OI}R)9;QrTdJ$VI zom^NjzT>!WaL(A&YfHXSjOVeMOY6C;mQm;CQ|VbfqE3v3ohCaoo78XMRsg_$Vn}&S z_U2+5-!j?h`9&>7js#HyG$_I|$7xL2S65nTKcbE8{ilUa4_JY!0Ryqqx zXHn@sian8+PL=r6R`!V!-%$w!?}~TCa-gFS=qLudR>dmx3tRH`t-RD*;$QqkP_}B` ze7WMP$=A-5T$xuskv*SR1n(ZQRbR;6zI}6hIxksxviD!RECjyLVV%+HNbg7lJ%~7? zjr0y9Mg8=SpN%#eS2(|W%%W@)>OmUF#6`*|h#rxOlclxVMaFn6dMLZ`7p~q2N-pME zk}b~v|0Fv8Opu<3qzJC(;D~-A09K2!hs=!2#-`*oE=e*a8yP7K7M{m44xqUEV8A}b z>G&aplWelDP+ZXHVLIcAS-*tgMvwe62tvnb$+>hj*&^zfem0S7>Eq%q7<^H@fP~y*89BnW0 zAzhjpSEIngjn}r0ZH#YCZ?|px^R?kWx=uW%QDZXnjU#8~|M$U~4p$9|Gs7mkfQnZ2IX<%(pmGG1Lm65Ocp%mj{_Vc!Jn?|W>XIV|7RL@`7+ADjGGl zilKVs*5@DU6VZKbl#E`_Ph6HZzDJof(Zt_*BGiOIdEdXnRn@Kq{xt3fV+s&YOwVh% z^y@iGuq+mYZKhpcoSshWx|ODr?RcPZB3{%I$=TTi(K;PRAe4k#f8W^iMqVW<7kKD! ztq0!-e(b2XmanJ8pRCCB>$lf#KlC-MzWOPL98z8im-rJE`B+(QE68nD;Hd{W8$R_R z)@giKX&-#r29E&pg-&+pZ~SLRB>I8m9BH(hd?GQI%xZ}QJ_Dg}^(-}M_#(hWaj;VvI z0OmdTU?V;`lTCgQ@E2#(LpTbLWNmFwlTlwxd&(hd@MCoD3Byu7kKIV{z1g*5f5Iq~ z@}#=~Or#df@n*`iJ4PYKwYpTK>;A_056k!`UU^G?N<%sFj{03YV(J0&NNs-G&yP6h K2M*_m-~L|+zJSvJ delta 2210 zcmaKtZ%kWN6u|HMQ_6dNyq31KypH~X4n}DiFzkRr_fJX;+aMc~8N02i&@prryssqN zVuI0_Fg4l8O_nZxU^7d`bh;RgSz==Rz&`lF*rsoGz7gGrMYF^Y2#c7x81H?hqubQm zyxa56IrrRu=Xajk_INxs^>iT?`RcO0PPs%DwbZS}RLFpR~ly+4Dq3t0Eim^j)`imR^A1M1o8{g=o?<@_W+P& zOO_`Nvm$7xHzsvs|0KJcEsiQKam-lIAESr^rRAUYCJjSnV1|+oRCAFJ|7Rsp{WLZ5wVfUWGZno1&vq($$6@} z*QXQkl&TwzZ0ESah@wwYHI(`$Dv_BB7?H)S}-pAQ1SB&`Cvur+JbLfe8jV?QGPvZWpSfmg2NSx{Vx2xeLxMMK&3C<=QC)4KqsD1EyI)~ zlA{_M(1kV7O}eMJ(D2dVU{#%*il=ZbOU5S>1!oNvQq2mapie3tGXea%2R}0R3>_v; zx^1=1Ms5q0XZM}im)>&uxhtVdp}e;}>ut|@gBfYNB6Jk3fotX0#j9ezu_xQulWW|O zk#;J=uA;T&T6f;xllAxH{d=GIf>iAxjthOTTwSFWKuBlRdk zSfipz5&VRK#`g#BxHr!k&apW2)7JDzn!o71n7DW-V{87wwDorecM*T+qMfJpp<}Ef9v`RQP z2Ca6AN0g-sy z*DGwplEIxf)MgE}n&BSHA-lbyZWV_BYI!U+5g$*+Vm=!bh=P$%$