From 4e9d8fa51aadf3b61b06e70bc30d2aab16843010 Mon Sep 17 00:00:00 2001 From: Pablu23 <43807157+Pablu23@users.noreply.github.com> Date: Thu, 25 Jun 2020 13:12:33 +0200 Subject: [PATCH] Next version, Working with working Progress bar --- ConvertTo16x16.csproj | 1 + Program.cs | 79 ++++++++++++++++----------- ProgressBar.cs | 102 +++++++++++++++++++++++++++++++++++ bin/Debug/ConvertTo16x16.exe | Bin 6656 -> 8704 bytes bin/Debug/ConvertTo16x16.pdb | Bin 19968 -> 24064 bytes obj/Debug/ConvertTo16x16.exe | Bin 6656 -> 8704 bytes obj/Debug/ConvertTo16x16.pdb | Bin 19968 -> 24064 bytes 7 files changed, 151 insertions(+), 31 deletions(-) create mode 100644 ProgressBar.cs diff --git a/ConvertTo16x16.csproj b/ConvertTo16x16.csproj index 8447e6e..21f5b58 100644 --- a/ConvertTo16x16.csproj +++ b/ConvertTo16x16.csproj @@ -45,6 +45,7 @@ + diff --git a/Program.cs b/Program.cs index db5e3e2..dd4f4aa 100644 --- a/Program.cs +++ b/Program.cs @@ -35,63 +35,80 @@ namespace ConvertTo16x16 //C:\Users\zamk\Bilder\RickNice.jpg - string bildName = "RickNice.jpg"; + Console.Write("Geben sie den Bildnamen an: "); + string bildName = Console.ReadLine(); + + Console.Write("Geben sie den Pfad an: "); + string Pfad = Console.ReadLine(); + + //string Pfad = @"D:\Pictures16"; + //string bildName = "RickNice.jpg"; int PixelAnzahl = 16; - Bitmap bmp = new Bitmap($@"D:\Pictures16\{bildName}"); // + Bitmap bmp = new Bitmap($@"{Pfad}\{bildName}"); Bitmap outcome = new Bitmap(PixelAnzahl, PixelAnzahl); int Width = bmp.Width / PixelAnzahl; int Height = bmp.Height / PixelAnzahl; + int counter = 0; - - for (int i = 0; i < PixelAnzahl; i++) + Console.Write("Performing some task... "); + using (var progress = new ProgressBar()) { - for (int j = 0; j < PixelAnzahl; j++) + for (int i = 0; i < PixelAnzahl; i++) { - - List Argb = new List(); - - for (int x = Width * i; x < Width * (i + 1); x++) + for (int j = 0; j < PixelAnzahl; j++) { - for (int y = Height * j; y < Height * (j + 1); y++) + + List Argb = new List(); + + for (int x = Width * i; x < Width * (i + 1); x++) { - - bool Exists = false; - - foreach (var item in Argb) + for (int y = Height * j; y < Height * (j + 1); y++) { - if (bmp.GetPixel(x, y).ToArgb() == item.Argb) //Zu switch case umbauen + + bool Exists = false; + + foreach (var item in Argb) { - Exists = true; - item.Anzahl += 1; + if (bmp.GetPixel(x, y).ToArgb() == item.Argb) //Zu switch case umbauen + { + Exists = true; + item.Anzahl += 1; + } } - } - if (!Exists) - { - Argb.Add(new Count(bmp.GetPixel(x, y).ToArgb(), new Point(x, y), 1)); + if (!Exists) + { + Argb.Add(new Count(bmp.GetPixel(x, y).ToArgb(), new Point(x, y), 1)); + } + counter++; + + double report = Convert.ToDouble(counter) / Convert.ToDouble(16 * 16 * Width * Height); + + progress.Report(report); } } - } + Count BiggestItem = new Count(0); - Count BiggestItem = new Count(0); - - foreach (var item in Argb) - { - if (item.Anzahl > BiggestItem.Anzahl) + foreach (var item in Argb) { - BiggestItem = item; + if (item.Anzahl > BiggestItem.Anzahl) + { + BiggestItem = item; + } } + + outcome.SetPixel(i, j, Color.FromArgb(BiggestItem.Argb)); + } - outcome.SetPixel(i, j, Color.FromArgb(BiggestItem.Argb)); + } } - - outcome.Save($@"D:\Pictures16\16x16{bildName}"); + outcome.Save($@"{Pfad}\16x16{bildName}"); } } diff --git a/ProgressBar.cs b/ProgressBar.cs new file mode 100644 index 0000000..fc30f2f --- /dev/null +++ b/ProgressBar.cs @@ -0,0 +1,102 @@ +using System; +using System.Text; +using System.Threading; + +/// +/// An ASCII progress bar +/// +public class ProgressBar : IDisposable, IProgress +{ + private const int blockCount = 10; + private readonly TimeSpan animationInterval = TimeSpan.FromSeconds(1.0 / 8); + private const string animation = @"|/-\"; + + private readonly Timer timer; + + private double currentProgress = 0; + private string currentText = string.Empty; + private bool disposed = false; + private int animationIndex = 0; + + public ProgressBar() + { + timer = new Timer(TimerHandler); + + // A progress bar is only for temporary display in a console window. + // If the console output is redirected to a file, draw nothing. + // Otherwise, we'll end up with a lot of garbage in the target file. + if (!Console.IsOutputRedirected) + { + ResetTimer(); + } + } + + public void Report(double value) + { + // Make sure value is in [0..1] range + value = Math.Max(0, Math.Min(1, value)); + Interlocked.Exchange(ref currentProgress, value); + } + + private void TimerHandler(object state) + { + lock (timer) + { + if (disposed) return; + + int progressBlockCount = (int)(currentProgress * blockCount); + int percent = (int)(currentProgress * 100); + string text = string.Format("[{0}{1}] {2,3}% {3}", + new string('#', progressBlockCount), new string('-', blockCount - progressBlockCount), + percent, + animation[animationIndex++ % animation.Length]); + UpdateText(text); + + ResetTimer(); + } + } + + private void UpdateText(string text) + { + // Get length of common portion + int commonPrefixLength = 0; + int commonLength = Math.Min(currentText.Length, text.Length); + while (commonPrefixLength < commonLength && text[commonPrefixLength] == currentText[commonPrefixLength]) + { + commonPrefixLength++; + } + + // Backtrack to the first differing character + StringBuilder outputBuilder = new StringBuilder(); + outputBuilder.Append('\b', currentText.Length - commonPrefixLength); + + // Output new suffix + outputBuilder.Append(text.Substring(commonPrefixLength)); + + // If the new text is shorter than the old one: delete overlapping characters + int overlapCount = currentText.Length - text.Length; + if (overlapCount > 0) + { + outputBuilder.Append(' ', overlapCount); + outputBuilder.Append('\b', overlapCount); + } + + Console.Write(outputBuilder); + currentText = text; + } + + private void ResetTimer() + { + timer.Change(animationInterval, TimeSpan.FromMilliseconds(-1)); + } + + public void Dispose() + { + lock (timer) + { + disposed = true; + UpdateText(string.Empty); + } + } + +} \ No newline at end of file diff --git a/bin/Debug/ConvertTo16x16.exe b/bin/Debug/ConvertTo16x16.exe index 062e25510348f4660bfac7beb7cbcb2c42c9a2e9..4e93c9c960fcc7dd42b914cc0fe525b6112a7146 100644 GIT binary patch literal 8704 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 lj!*eA2sbi|F6<6VHL8 zH5bv$DwIO^=eqWQJO0=8@LhG|Q;q*LtN_mWf7O+^2F9%iQjPy~cl^igcwOs; zUAlPbBF|x(%LvTC+Loi>RBo>N?B4OmQPE+=rF6*oleMz5X%CgR3Wlej1vQf$Xya{CsOj+5_ z@T1M`9ZCKCnl9(86V6HJ_mD(C6XpE6pH2F1MLJox8+}e+Zp!%s@kmsNSz?m65r!5+ zpSnh#DHeFQZrKxy2RlVU;@Mvn>F5Xs=$x4U-e5Qw4F$vuhrBKn{uZlq<~0Pn;>^o) z=ry!QgUzj>aGSrOIkqE~q+cCv-VKTNLt5JJD$XDK)q@|@9xlr8y#4b-O|-R9R3jFI zNJHBhPkfbRml-%5GvkM&+7E@uHw0g%e+3EYKkWy<_yYByKsL(JkF4Y0cwV55TCiqf zigst~{2U?dxnkasE_JAD#&fu?4;GDG6_cs$PKDh{v36*nN)6m-zrfY}xGl3?TbH6UZ^U8JL0kGDN1x z5%VRoPfcJoMi!)sIJOP?8U2;^ZqfGOZ)tB1kiO3Y`hatR8R9N&zW{YC9IEG2$k`T- z0cj1`2j-eo4{itB;Qio3;1l3;V8-07;8oyya4UE(cpuoM(LKPpF!QrcAHe?M@LdMx z*EZHVy_q0CS%(WJxp*Giag<^3W{#i#h^yA=4=$v+x!CIG8Cd5vFxL!Ni^y^L7 zSOobSs0jb%_~inf^^RnN_P#UPz5)AOFU-D?mM$!=Emob?W!XQr>~mK4607?mtNRC5 z_gSl_%IeFudLFZS{%ZBsruTMPy&gbdJS*|uuA8z1C}Ap`o08Y|4`O`K+79}SX1q90Ph60>iiH8w(W<3*e7fb z6xMv3^PRXG$a)zkO!olM2D=xy26zBS`OkoBk$wqS349fZw%NY{Rs-Jx)&SoI(#|m; z%l!#>FVbgp`YaHAvHu1{U+gS6Y&|d=xB-|0Wcz1o^Z{vS5wH&VoO|rIU*la`UJ2ZU z{Pn=izzrH3wETXZ-Uj?CWvx zMv=htRLswL^4W{rT#RrYqY9J@NdapD%|UKHqA4HeofYz}oU!Rgx&ZtAeNv|o=Yb;F zE`prTloc}qLHUeaiPYaNWwf~tBeg=@BW0|w5+lEy(E`eaom_D%V%;y(1*nlaa~KsM z)us}O%wMGI$VGeDmlcTaLfwA$(=XePnF7iYcgr)zr+C(Dt<2~1EAStE?vnBVzxCv0 z6o0Z0$#otfxDL=gFKT=h38op>#LXHp_hkA`oepYzU*~sgd_&_+TK3KB!Ny=A{7}nj-SQt(2EFilwMcB@~ zv3lm7JsZ3LjQxpwgM9yJ0(O9T-gz9%INlF_1$+qH5B@#arPLlM5L3OBWXRX`s!bc0 zZL0~#qkC|75(>w8zAKXQH0W543!qtIi6g(Hyo6Mm(B~LgB60C!^i{sr#|D_E?V~Df zKXGYe$|#vGgTsv}^UI++K3hh~beWZjGXET^N56C+ZR$}nT?U6IQ_liSQr#EzqT(o{ zWV%c_->H?q8f6)Ep<(Q+JgtkviP3GvB(y}buFBK8IItOAj)O<27cpa3JEPR%xMqv&r*p(dty8hW^t0EZSl#ZRc@xdC*t!7xhASy^PBu#5m(x~uO36PGO*aCHLA#lGSPoy%^ zIZJpuMjaAwbV+A6mnFhbWx2nX?E$V|KJYtW95cnsnBqhd-=%EuVsJb73=Rqd7>0Au zSp)tf{LiHq-*@Eb%m#9AFeAo0X0CsDw~%+PIY8bCv(D*Yu46O6Gr>25Zvk`7%muqN zHXblDZft6EYZ-4I;A-#Q|BXBCw_qgl*{cn`;aK#hc13sMN-TS{02RYTWA5r;w6u9?4*W;*NyEgOwXL;d= z&+!~vzUWk4=)ZSYAIf<)Vj(ZF5hHa4lGTw(5f_-53{s&GNBjWp%ORfi858Rj@_&;WN(U1TD diff --git a/obj/Debug/ConvertTo16x16.exe b/obj/Debug/ConvertTo16x16.exe index 062e25510348f4660bfac7beb7cbcb2c42c9a2e9..4e93c9c960fcc7dd42b914cc0fe525b6112a7146 100644 GIT binary patch literal 8704 zcmeHMeQX@Zb$_$>wLIxg+&huf2W_oRA3jUui64?JQD6L$WG13SiIl7ly3+D)Nv?Ib zd)mFDNy~ENq_G`0E-bVG(zHck2aWBt4cx+w^MTlj(Ld5O1`?!A3&eF@v@y~kg%zY| z;lh#nd$W6|qv$&NvnVphee>R%H*em1^JZpeIeO+93K3Bl&y5>IUqQ{KU&0RuSJ0eX z_q8Ow-1Nr!uZY8Mte=>*JiY8XGp#}G{WD#H<`w|Mf|s~^FviCIGuHA&oYUYWTzFny^E9$fY-(M%LG{)`*K?cN)^)CntEU5MRnw=j z0K{{fR=amYTv0Bu&*`WZZ98?DQ7tMPvhC>nK=uy6PjBK5**k%z!-^Kp!rW-x^|zMA zI%3i6I<(T8TR8qOKmqZ}w`dv9Lb@wVUqX#oYSbE6E^){mRv(fus{>uOHA=7`PSM!5 zwougJaeYZ2zb>|l)^u14cm9L79&O9jI~x>5PdgbfH>>E07{wj97~k9=;E!}V(bRff zkx^|Sb)DW6^tv-ZNX^34I4L2S7F(VQrbfBM`4a^H+H2X(Jj7i*1pB+TOCe5WMCF6$ zvdzyfnQwmV=+>asVy18LV+QA%pm9qErbq+~q=nCr2pEX2&ydK$dftYzSc*~F@^}LW zGm9w;XVDjRB#?mZVVZ<)~{(*4nq~297~3fu;m}LL~gAHm$Ai+VvYZTD=51rM7#vW^G#r4$Hlc{sc40XWoC~ z!5%LQLPCFm9Ds%N4(dk!gW!D+ygmrQds#9;S|bB#aQq{KfJ2Bx>9bIPt&27sIx#Yg`UTL>VB8IZ zMP~{$7m(uqbS-b)b3lg?S z{`(@!y&~TQObCX882%u{a6F7HmwLmGMxyi^f=AztaijG6fN?qz84ty2ZFn3q33`AW zvSCl0OvxFP8XgI;hK$ra<#UKRACsC_%CU0c??TUi5$le`;vN$2Ev|D=qKx0@-ccU(v10f zF5^>2&@W8imef0%l{bA}1C=s3)5!w+@$?#=R`vU4qp;^rF z!GQWIvLQ-GeF}C8M8T+2pAahjrlhXY+o9hQ%V;N#q?$)aTa5Z1(n`>AB$c3Nk$N?b z&-dXsLd@s&s89;A50TG_L=-vzUKG*iu{FRbtph-=oikx6se&tC+LLB>z3YUV0XA7YT8d_EVF1Gc*MFg~$+T zA}mH|wKx|(i(U)iDZq<}+|MZ&UuL&0c6e=F|aZ{!V%ab&A3 zBV&BcGd=HoHyyUT3aSyi(%VBrjy-3(l?kW&p84*3XwRrqs20tAG-FoI4Y)H?Z=Ym{V+- zT&As=s%vnZmo^WZUf#9JiyQrT$R5YdqA@QqZ)s=bWTBd`ENvKa$_uVFGy8!}rLti! z-0X9_YFDh1$zx)iDXVBz8d~R!V%4N^V@}R+L#F4qxg6BhZ-(q9R-5 z3lNQ0r@R33`wqLtL)<=URAyyX-)|KH?67Ii0G)t!?vPO|P9dksu&t7ehg=pgj}DoY zF>Br|(s&J#Yfq-UzxsSsu3)1S*eKPGBNQ}h;V}T}s_Sl;)4__Amep2^R9YtntxCx# zQ*D13G+bUVF8ObKgH@|oFkRn?`wY8)G{+jjrXbxS4!uhUc!^^f6djk{Ibc`8H7cNT zd4{8oZE+pMd)P8&Y{#oud5?Hk88`EeUGVWyt5~$WfDy>orbC9zDUX}(oRv4dnz~wZ zZ5h_v{iTK3!KMartOHL5g8lO-Uv*v6uGAdo9UyO1=%C|bg6QbfgV>U!_A!(=-@C;CWkfCiK)^m)e(Wd~px_oGosCx`rT(miWC1|&4 zMvm)9{W?`3@8OKi$sa~ZOv00UaLzO2V$w^|?>v3?=;vFrz2AQHM_VbZ3!#Q|5)mMp z#$=L#5@|_|h=k-m5Q>2&p^YY#XfmQJqJ0%Nq%Py+LxYk?Byf38G~**?ES5T^sA^JC z!4d7v3X6w$1QlvS%uOcmXvZsxXm5%|RW)@&Ral3rs!?4@od~g9QicB1iDXPy6m3)+ zjl>kF-4VMZnN(9&%7SnTPfMyKQp;1zRaHr}Xcr}}XjMf~>Xf4JP)Qh?j8Z6x!Ukb1 zzpttji>4{+_rR+ka2-liwi(t7G(tr}xoJAg??;d2;pkw?C!6wEx`4w7-k@ z;T;s;H*2Y(MDfi>8x2KacNAe$K$-ANBp9?~9L;3qnkhAEChHe>BtuyQDvL%{;1!I^ zoqPwGP+ISIjq(x4#tCc6qW~K!4od;Km|(fIpk%N(YA+fTku7b4QuW*_;emuSPasQ8!UcAqk`IV zM-EKXPrHs_3*U=d?!CDlSesl~Z{#DsXe=DT$+(hx>Gc*}O5-&iVUu>U7by8xU-%-| zxG2y$JTK$x$IJL)*;x2K+*po}50Ae#|I<(Q&%OGQub+D4@2}qdJ0q-fsBiLwhhum0 zVWV_m(sQbA-kfx?b$FADV>RhaJvb@%vRfK*<-!#0_E(P_@dV?#M3;ctr(?h2+>qlQ zm^bCQAz$Q7Ggl}U{l**EQ2LiB_%-AIS_BmN-9#t4!vA_1L%rBSUY+v)AWQfxcMB67 zUw(E;lfMGq#76Z@KmPxNx>gQ{_zToY+@{U}9-!mEMsUwL0(u1Spu8#LwiAB$x_^W5 zb=7V&`vXOMYpJ!=bPr43Nt_!l^zeCQLZ>ay7?#;c+-m}@d=hzRH*m^W{H=wXQCs zEsc8o8RIvR67;%wC#Xf0U?tmrG#GBsa16G~*e~vX>kQl)|DCeW0KD>~k5lkq0TKCC{eCt?^wWk#@b1@N+p~YZRMhcK z$#=88860yN-L&%#-&OWzPD~u^+?mmF6SWIQ(Xq|FnFZ6!?BAD&C*pgI;G(EQh3)Ol zR9(Bz%g^F+=yjH?yz6+*bfq)zl==*>l$-0$=p|errcJL>J2K^XP^Rm3Wg`W=G2?=@ z$R<8|GrEmabZ=&K0ax#$g%@d9oHNSh%r;*`#jSdk5qsLXO?!GWvLD9AWuS^{_Ci2| zBaY6+fYK&mMV2qle*Bn z)^0>3Q-WSNvMm|eqDQm^S4A$nu8%a^Ha-$z z{51zW69X)2QNRvPw)NL;l8*@>v??d9$BjTjeoYvGg!MIHgga$k0UStLd7I;4)!A<` zjIkj@`H<ry!F*#kdeDAHbJ;J6kl8Javtg_OPDiw(R_3M#B3`@N=t=e3gd;!uv?rrnxXZ*iOR z?OII0Q8Crzcht0&a#MM(Bc>8Q2elW4msH8#R%E=mO5Eay$z{fUlPbU=R?v6NOIMR_ z^J1FmcKRzx;1d;3GgK+n+sio{6WlO9r>xvWCR1UlZU1JV#%+XZ%8YwWs!6XrGroT@ zNqtY!6}~x`l*s~L ziFM!+q6=7M9{>8Icb=iVfItT;VH~uRc3`pfAcoUDa9(Pgwp=8z-%qlnRzP; zJ%u9LXeY*SD=~$&25&dG+2Dx5QG@$5)=*&AijtvD8hpgyd7_P<6FcyPk^h3Xtx^2m zST*j&64tknHMlLi^Gc!iMWN_YKmYc6{#1P&kZm{&b z_e=S%VJ%uD%c7q!iD_B1VQwl@orYaQLC1lB|z{~J(cnvdxBM=QRGaw)+kD*aQm0{)rSLOltUSvqE z>jHzp#M-fGS9GnU);wG!QJ1l-CT*&vYuVJc+L+ihiN!W;h)G?kn8vPZmWBTQ-#O>b zcZcCAtCity*!TaPbM`)uefD{N->ghFr#jLdn=|qHS@qMW$5*ah62GCUy1J}%Ov73O z#f%AnS@2<4RAr&?+aD}&m1(^ud!j&>s0HTY!#}=6+g@n)i4*T`TD{=gm%m!xz1AGQ z?TfL;Us!z0qyPTK_sY8$*zlmw-@m?m^Q-00O*7`*fyyhminLXec|QG%4hHSN&S-Ucfb4VH-B~bkr$SK=jp$Gwm;ggKecJ*WwtdQ zd$&z{z$hJAJ-c^QG`aA6kyv2R-_``$1DK(X0j-NgAr9czhWo-WvG8+ITcFVY7j^f2 z;L7*a|K-d8(eeL*3n^sqp|wC?{XeYG{~y}^y3iFX?Ef#cMK7-WjvqUIOdI)sR<-Nr zZ&;U3q|zHc(bTqWL%L&UsyVSCmDt{q-caAseorEmY3!(}?X0QYuqxHDC6!30>zYzk z&1qwr=Wp0~3e9G#nQ@xio#rO1d5%RkwW+vsEX^ui?mA{Zn1R3I!XE);0e1j$v6l*5 z{cqL5laa=r>!FU<14erV>6N;CWZ6nsd6#c~ZNOHZWpPVd8x*xqr+}2d0sU_LIh4>gn%r`|vf3x7tZ~yTf|G4bWCzr&&^|eDArL)pB znCrkI98F~oh66Le6cw95&#^t@LVe$cN>v1kzN135SoI8()-au=GNhlOJcNs2Tb?Oa z9c!JP8szlQ%ND|4PRhlP@f4QPm~2a=mNvDwv?efDXs;P0ybDXm%gK%{#JvM+4C<1M zM>EC5%T)v%_6v{3Pn&hE9nIV7J9f5X(J{#Bgq|mtV9q8{X|h)|E#vw@Z4oaylMPUg z+CVlRMV>{22Mi9@2iY$N*?*1IsElIz$of#mUKyCDk@G}7id$)z+Gf^mZ)wUTLYGkc zmr_P0I+FJ?YQIE@&b7a}qphu@eN`&4IoY`)(Y__aL{Wj9@;q72OIR6-$dl>Vnc2QG zQ@1nO+7kAU@=>*;`E;<_wKi>cmbPs?4|^HeE0`DD8SME?u=hK$?BlV0B~g1FQNd7! zh47b^sCW#O4(+ujkxpbnhdM8x_5HF+&H&X~2!9#a#W(tL8j@+&`Ea^DtFcJs{Mf)R z!e{w~+V-F1e%O^0(25=Ic?fvOJr6P_JDg{(ow5@_Iy$Q{I}E%Yyb`<-90AsYBf$pn zD)8grSg-|r>)7$E=8$oOwRVgLJHTte?O+_d%&ca0uY_m86X8klXt>yvn5iKn3YMBO zMvhQvYR6Jo^;bJoKaotSx{0WJR{b;?jDu6anc%gc&A*2H=I8Qzi8MR@gWUXa1#yRA z5wBUo{HBB0z{~(;C-ThF=CHkS7p6?Tm(Sh+R)fpH8e{fpEMdd!H$c*|&x73YW&aYC zz5dRj>N1abTh9@>_7iQc#v{wja(FJh2p$hx+bCV+Z4}1~a z6qLI!0LOr;i`uk^F#TuhzzHDzoz-|)2*RP9`hE%F<>1ZWT_DfdHgF}F1#boK2bJ%q zz}pCa8e9eb0k|6cLvRhKK4=7=0M~&}fxiJ-TTH?hlm=O!s0gvdd2$ImlM+fTp~fZV zCK#{F$zG40YKbd_r@&)#c9PH7aUJBwyX-;Vg>(ny%Vg_8*#SRy^;w$BqlV zE+MWH7TxLcz&@e>Yy{;$P2knwCJ^5=%^tNe8#j8pYIRjXph=aN~$HLzr*7| zSoIaD4RKg`t$@kL+zUSfKLg9xj>1wH1y_4T#TDrP%>qS~?AHk9h>$LKDB!s`6?6T( zC6T#nQECf5l(*(@ck=QFPdpdz_Ij*fQ9ZwpdeR9;%fpw8_jo;(x2hwZ%p^P7k=5Gb zb${-3qh;cu#Rt5u%Iu}<+ZlJh7cH0dsJPqfhV5+sMAO#RymsF1^rB@BM(?v;FKlOz zp5K#hBwfTBm!mTD9`kyUef0*)s3cypKE1SO-^@(YvxlzlXl+e2%Q)$(n-lGcRI)j5 z-@PK)zC#7}wHF@~$*0lp#j6^d(%aH`@(rn`UD~DFJ#KqMHY9b~DEEvkbKo`Mx-MDkpFuc}Nu;-IoPC1! z0Ft#n*>}FQf%$rJPS*Nh-}y>*3ah-&*ZN%F`LZuyU7V1UwSLxjzLKqAp7whd>pMZt z=QPf>{)q6ctn4!klrL+qr9NYw$d*uEbj?$K8)4f=0jZYMw~g*udo$&yy_xdE-eG>D zLD`j=d1m5WM)GqDcqIyXuzZJO^$UO}%j>u~#7L~u-$v=YJQsjOQ zThZGDlv29wuVa9yMh%%ypHovsdJ>BND^ zX*_R=$TRQd$?taZE08Zj?(Ye=J9*U^zsr+f+?h;gxM)_I=BjA>bwkaSPFUZ2SC#eQPT05fb+uVTewWRN7fY9`?T;{X0%ERaP&^g?%XdUAmJzyhc1la>Y z_MKqQ-eAvHgFQbB_ErXa*9UvMgT2RseYL^9u3+E41P9&=y2b@vpA5R*3l5YQ@1GIu zpAp;tyC!!3>#?r;VqL?FAE*u-I?=Qg@n_r6)WGdwr$a`8G#+(i6ugE~KUfs_@V@1)mFm_E-w4Az5>fQtV- z*g#n4z9rz};8O4l4!;IU?kN}k6L1;n-vF0`-*@Rh0%=qBHE;#^I=B-25Aas-E$}w* z7^wVz4JzLf47r-{P*7o=iPsPw0j>oXfQ{fnQ0LGk;K#s?;2q%I;CgTysCMmecps?z z_JcYn-VZJUA9VOAsPsPqf0KBvojMbK#o@Cq{g4Yk2W}+&d9Vq51(g0jfSU+^AEfWH zKLT68*T4k$PoVOB1C;!Kfm;Zd#f)Jd%MJnAcVveYZMR=ms{nB{$KG(yQltPW6X_PquiOK3wXfh*a zDrHP1UC&CJE$@dW=msZ5$=@BOO)%5JPIz9J{|Y>)R$d3G>?L?&jl4Gu&nGTU>lj^7 z1*J=7TsYJD`ppURQT%jQ-e~HkcGXhGWY-q8`MR(z)nQ(;hbMn`q4`_unZ}_=&#z$f zqi})xj|KFt-A%O1 z@aryIGaRPV*H1&F?t5*IhVp_@^#j>w)ARcJY7Z@TV?*w+kE=KPk;e#QlSie52&`dqw9&e7cR$&L*E!*V9pOS$Nz&rAU7MrxZJV z!l^2c)@hQ$JkOMFd&3qVs3`+Y)`tFXf3?pU1y6!CE9$JwI&NCwPPhy1hCc@%gb%@o z;g{ea!bjn^;rHQzbeh)rI6MQM3pc>4VBPP0m}tBiQm*=3!TysS#%(L7-?g|sliJPQ zSyJy9hndM?dJ!_b0SR9Kk2F&wan-feq8jbLt?Y}Ttb5VQvzNE=PM&3KjFXp*0+avJ z)a%$Zr^ANQ>*&2<5Pg{#DaWQcojE-^odcv3d7&23v1v|+$;-Fp$DvNo%Q0Us8}H<6 zd*o%OnCZDF_3}2}$+Hpm`OD8@rssmx%iDM-Kewk1T90l1J(rta$EGJ#)q{XtkTi>;)WQKhM}S zr?aU?XA;ig=CYG?Y?{;IAnDf?t%tE*>xzwYvMoKbE%;z>SsUkM*}VFE<lR~ca_v=Tg@qO@IzOaH(G{bhAQUaSo$?J-zqq28plR(_uDoj_P=`o5sz6lph-##ZGdlAhk1>CRiEuqQq1 zZ09G!-f4SIqj%smdflhd(|fK{m8bVw<*stQ>+%d~6Hbw)^Qzueh#a`*m?;Z03h-O& z5&9cQt#=|HCmg_xBJ0Fp{S&dx3i%wrWA6EM`WzMQx6H=)@3vjl!@7h&s;H%bVdd>} zPkOJX->m0w!#t7~!@G#T!%EQ`&4hz3eQ7fjnQ7bR;9_`aP;uuZ*rEmpY0*fx)zh;${;&3UZ zE5y-^;)}!hARf)VH1s87J?L5wO;otKdSy1c` z7AXAvM}O$W^KXOJ`ojHxXg@7cC(+s5pU0zGtc6kX`n{raB0k+l49&&+2bSQ|QsMsp zwB|YMMD0AkHT-m@52|<{lCV4;r!p% zy~U+-{>NntbctFZ&ceiTu21rN11*e&`~N;o)Gs2n$0*$YUAp&w&CehFs(j!tI^W#C z@Sf+Ff9v*pfAH|s&n$a_xWfHkzZl}DY=rLK4#OYx{!jNvGhp5SRl?I@fB!d`XWhW+ lj!*eA2sbi|F6<6VHL8 zH5bv$DwIO^=eqWQJO0=8@LhG|Q;q*LtN_mWf7O+^2F9%iQjPy~cl^igcwOs; zUAlPbBF|x(%LvTC+Loi>RBo>N?B4OmQPE+=rF6*oleMz5X%CgR3Wlej1vQf$Xya{CsOj+5_ z@T1M`9ZCKCnl9(86V6HJ_mD(C6XpE6pH2F1MLJox8+}e+Zp!%s@kmsNSz?m65r!5+ zpSnh#DHeFQZrKxy2RlVU;@Mvn>F5Xs=$x4U-e5Qw4F$vuhrBKn{uZlq<~0Pn;>^o) z=ry!QgUzj>aGSrOIkqE~q+cCv-VKTNLt5JJD$XDK)q@|@9xlr8y#4b-O|-R9R3jFI zNJHBhPkfbRml-%5GvkM&+7E@uHw0g%e+3EYKkWy<_yYByKsL(JkF4Y0cwV55TCiqf zigst~{2U?dxnkasE_JAD#&fu?4;GDG6_cs$PKDh{v36*nN)6m-zrfY}xGl3?TbH6UZ^U8JL0kGDN1x z5%VRoPfcJoMi!)sIJOP?8U2;^ZqfGOZ)tB1kiO3Y`hatR8R9N&zW{YC9IEG2$k`T- z0cj1`2j-eo4{itB;Qio3;1l3;V8-07;8oyya4UE(cpuoM(LKPpF!QrcAHe?M@LdMx z*EZHVy_q0CS%(WJxp*Giag<^3W{#i#h^yA=4=$v+x!CIG8Cd5vFxL!Ni^y^L7 zSOobSs0jb%_~inf^^RnN_P#UPz5)AOFU-D?mM$!=Emob?W!XQr>~mK4607?mtNRC5 z_gSl_%IeFudLFZS{%ZBsruTMPy&gbdJS*|uuA8z1C}Ap`o08Y|4`O`K+79}SX1q90Ph60>iiH8w(W<3*e7fb z6xMv3^PRXG$a)zkO!olM2D=xy26zBS`OkoBk$wqS349fZw%NY{Rs-Jx)&SoI(#|m; z%l!#>FVbgp`YaHAvHu1{U+gS6Y&|d=xB-|0Wcz1o^Z{vS5wH&VoO|rIU*la`UJ2ZU z{Pn=izzrH3wETXZ-Uj?CWvx zMv=htRLswL^4W{rT#RrYqY9J@NdapD%|UKHqA4HeofYz}oU!Rgx&ZtAeNv|o=Yb;F zE`prTloc}qLHUeaiPYaNWwf~tBeg=@BW0|w5+lEy(E`eaom_D%V%;y(1*nlaa~KsM z)us}O%wMGI$VGeDmlcTaLfwA$(=XePnF7iYcgr)zr+C(Dt<2~1EAStE?vnBVzxCv0 z6o0Z0$#otfxDL=gFKT=h38op>#LXHp_hkA`oepYzU*~sgd_&_+TK3KB!Ny=A{7}nj-SQt(2EFilwMcB@~ zv3lm7JsZ3LjQxpwgM9yJ0(O9T-gz9%INlF_1$+qH5B@#arPLlM5L3OBWXRX`s!bc0 zZL0~#qkC|75(>w8zAKXQH0W543!qtIi6g(Hyo6Mm(B~LgB60C!^i{sr#|D_E?V~Df zKXGYe$|#vGgTsv}^UI++K3hh~beWZjGXET^N56C+ZR$}nT?U6IQ_liSQr#EzqT(o{ zWV%c_->H?q8f6)Ep<(Q+JgtkviP3GvB(y}buFBK8IItOAj)O<27cpa3JEPR%xMqv&r*p(dty8hW^t0EZSl#ZRc@xdC*t!7xhASy^PBu#5m(x~uO36PGO*aCHLA#lGSPoy%^ zIZJpuMjaAwbV+A6mnFhbWx2nX?E$V|KJYtW95cnsnBqhd-=%EuVsJb73=Rqd7>0Au zSp)tf{LiHq-*@Eb%m#9AFeAo0X0CsDw~%+PIY8bCv(D*Yu46O6Gr>25Zvk`7%muqN zHXblDZft6EYZ-4I;A-#Q|BXBCw_qgl*{cn`;aK#hc13sMN-TS{02RYTWA5r;w6u9?4*W;*NyEgOwXL;d= z&+!~vzUWk4=)ZSYAIf<)Vj(ZF5hHa4lGTw(5f_-53{s&GNBjWp%ORfi858Rj@_&;WN(U1TD