From cbdaa0adb725c10cca2b7471f60b5c036d61d3c0 Mon Sep 17 00:00:00 2001 From: Peter Gerwinski <peter.gerwinski@hs-bochum.de> Date: Mon, 27 Jan 2020 13:44:44 +0100 Subject: [PATCH] =?UTF-8?q?Beispiel-Programme=20und=20Musterl=C3=B6sung=20?= =?UTF-8?q?23.1.2020?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 20200123/ausgabeumleitung.txt | 15 ++++ 20200123/fifo-1.c | 31 ++++++++ 20200123/fifo-2.c | 31 ++++++++ 20200123/fifo-3.c | 32 ++++++++ 20200123/fifo-4.c | 30 +++++++ 20200123/fifo-5.c | 32 ++++++++ 20200123/fifo-6.c | 33 ++++++++ 20200123/fifo-7.c | 35 +++++++++ 20200123/fifo-8.c | 50 ++++++++++++ 20200123/fifo-9.c | 55 +++++++++++++ 20200123/hp-musterloesung-20200123.pdf | Bin 55261 -> 60204 bytes 20200123/hp-musterloesung-20200123.tex | 104 +++++++++++++++++++++++-- 20200123/hp-uebung-20200123.pdf | Bin 64541 -> 64541 bytes 20200123/hp-uebung-20200123.tex | 4 +- 20200123/lists-1.c | 12 +++ 20200123/lists-2.c | 12 +++ 20200123/lists-3.c | 21 +++++ 20200123/lists-4.c | 25 ++++++ 20200123/lists-5.c | 29 +++++++ 20200123/lists-5.s | 51 ++++++++++++ 20200123/loesung-3-1.c | 50 ++++++++++++ 20200123/loesung-3-2.c | 58 ++++++++++++++ 20200123/loesung-3-3.c | 71 +++++++++++++++++ 20200123/loesung-3-4.c | 101 ++++++++++++++++++++++++ 20200123/pwgen.txt | 21 +++++ 20200123/stack-0.c | 21 +++++ 20200123/stack-1.c | 28 +++++++ 20200123/stack-2.c | 27 +++++++ 20200123/stack-3.c | 28 +++++++ 20200123/stack-4.c | 27 +++++++ 20200123/stack-5.c | 40 ++++++++++ 20200123/stack-6.c | 39 ++++++++++ 20200123/stack-7.c | 39 ++++++++++ 20200123/test.c | 7 ++ 20200123/tree-1.c | 13 ++++ 20200123/tree-10.c | 63 +++++++++++++++ 20200123/tree-11.c | 61 +++++++++++++++ 20200123/tree-12.c | 59 ++++++++++++++ 20200123/tree-13.c | 55 +++++++++++++ 20200123/tree-14.c | 55 +++++++++++++ 20200123/tree-15.c | 48 ++++++++++++ 20200123/tree-16.c | 48 ++++++++++++ 20200123/tree-2.c | 13 ++++ 20200123/tree-3.c | 31 ++++++++ 20200123/tree-3a.c | 33 ++++++++ 20200123/tree-3b.c | 34 ++++++++ 20200123/tree-4.c | 37 +++++++++ 20200123/tree-5.c | 44 +++++++++++ 20200123/tree-6.c | 50 ++++++++++++ 20200123/tree-7.c | 71 +++++++++++++++++ 20200123/tree-8.c | 73 +++++++++++++++++ 20200123/tree-9.c | 73 +++++++++++++++++ 52 files changed, 2013 insertions(+), 7 deletions(-) create mode 100644 20200123/ausgabeumleitung.txt create mode 100644 20200123/fifo-1.c create mode 100644 20200123/fifo-2.c create mode 100644 20200123/fifo-3.c create mode 100644 20200123/fifo-4.c create mode 100644 20200123/fifo-5.c create mode 100644 20200123/fifo-6.c create mode 100644 20200123/fifo-7.c create mode 100644 20200123/fifo-8.c create mode 100644 20200123/fifo-9.c create mode 100644 20200123/lists-1.c create mode 100644 20200123/lists-2.c create mode 100644 20200123/lists-3.c create mode 100644 20200123/lists-4.c create mode 100644 20200123/lists-5.c create mode 100644 20200123/lists-5.s create mode 100644 20200123/loesung-3-1.c create mode 100644 20200123/loesung-3-2.c create mode 100644 20200123/loesung-3-3.c create mode 100644 20200123/loesung-3-4.c create mode 100644 20200123/pwgen.txt create mode 100644 20200123/stack-0.c create mode 100644 20200123/stack-1.c create mode 100644 20200123/stack-2.c create mode 100644 20200123/stack-3.c create mode 100644 20200123/stack-4.c create mode 100644 20200123/stack-5.c create mode 100644 20200123/stack-6.c create mode 100644 20200123/stack-7.c create mode 100644 20200123/test.c create mode 100644 20200123/tree-1.c create mode 100644 20200123/tree-10.c create mode 100644 20200123/tree-11.c create mode 100644 20200123/tree-12.c create mode 100644 20200123/tree-13.c create mode 100644 20200123/tree-14.c create mode 100644 20200123/tree-15.c create mode 100644 20200123/tree-16.c create mode 100644 20200123/tree-2.c create mode 100644 20200123/tree-3.c create mode 100644 20200123/tree-3a.c create mode 100644 20200123/tree-3b.c create mode 100644 20200123/tree-4.c create mode 100644 20200123/tree-5.c create mode 100644 20200123/tree-6.c create mode 100644 20200123/tree-7.c create mode 100644 20200123/tree-8.c create mode 100644 20200123/tree-9.c diff --git a/20200123/ausgabeumleitung.txt b/20200123/ausgabeumleitung.txt new file mode 100644 index 0000000..7129bf5 --- /dev/null +++ b/20200123/ausgabeumleitung.txt @@ -0,0 +1,15 @@ +cassini/home/peter/bo/2019ws/hp/20200123> ./stack-6 +stack overflow +cassini/home/peter/bo/2019ws/hp/20200123> ./stack-6 2>/dev/null +cassini/home/peter/bo/2019ws/hp/20200123> ./stack-6 >/dev/null +stack overflow +cassini/home/peter/bo/2019ws/hp/20200123> ./stack-5 +137 +7 +3 +cassini/home/peter/bo/2019ws/hp/20200123> ./stack-5 2>/dev/null +137 +7 +3 +cassini/home/peter/bo/2019ws/hp/20200123> ./stack-5 >/dev/null +cassini/home/peter/bo/2019ws/hp/20200123> diff --git a/20200123/fifo-1.c b/20200123/fifo-1.c new file mode 100644 index 0000000..8bce6c0 --- /dev/null +++ b/20200123/fifo-1.c @@ -0,0 +1,31 @@ +#include <stdio.h> + +#define FIFO_SIZE 10 + +int fifo[FIFO_SIZE]; +int fifo_pointer = 0; + +void push (int x) +{ + fifo[fifo_pointer++] = x; +} + +int pop (void) +{ + return fifo[0]; + fifo[0] = fifo[1]; + fifo[1] = fifo[2]; + fifo[2] = fifo[3]; + /* ... */ +} + +int main (void) +{ + push (3); + push (7); + push (137); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + return 0; +} diff --git a/20200123/fifo-2.c b/20200123/fifo-2.c new file mode 100644 index 0000000..f955798 --- /dev/null +++ b/20200123/fifo-2.c @@ -0,0 +1,31 @@ +#include <stdio.h> + +#define FIFO_SIZE 10 + +int fifo[FIFO_SIZE]; +int fifo_pointer = 0; + +void push (int x) +{ + fifo[fifo_pointer++] = x; +} + +int pop (void) +{ + fifo[0] = fifo[1]; + fifo[1] = fifo[2]; + fifo[2] = fifo[3]; + /* ... */ + return fifo[0]; +} + +int main (void) +{ + push (3); + push (7); + push (137); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + return 0; +} diff --git a/20200123/fifo-3.c b/20200123/fifo-3.c new file mode 100644 index 0000000..5214e1b --- /dev/null +++ b/20200123/fifo-3.c @@ -0,0 +1,32 @@ +#include <stdio.h> + +#define FIFO_SIZE 10 + +int fifo[FIFO_SIZE]; +int fifo_pointer = 0; + +void push (int x) +{ + fifo[fifo_pointer++] = x; +} + +int pop (void) +{ + int result = fifo[0]; + fifo[0] = fifo[1]; + fifo[1] = fifo[2]; + fifo[2] = fifo[3]; + /* ... */ + return result; +} + +int main (void) +{ + push (3); + push (7); + push (137); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + return 0; +} diff --git a/20200123/fifo-4.c b/20200123/fifo-4.c new file mode 100644 index 0000000..957d5f1 --- /dev/null +++ b/20200123/fifo-4.c @@ -0,0 +1,30 @@ +#include <stdio.h> + +#define FIFO_SIZE 10 + +int fifo[FIFO_SIZE]; +int fifo_pointer = 0; + +void push (int x) +{ + fifo[fifo_pointer++] = x; +} + +int pop (void) +{ + int result = fifo[0]; + for (int i = 1; i < FIFO_SIZE; i++) + fifo[i - 1] = fifo[i]; + return result; +} + +int main (void) +{ + push (3); + push (7); + push (137); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + return 0; +} diff --git a/20200123/fifo-5.c b/20200123/fifo-5.c new file mode 100644 index 0000000..092c1cd --- /dev/null +++ b/20200123/fifo-5.c @@ -0,0 +1,32 @@ +#include <stdio.h> + +#define FIFO_SIZE 10 + +int fifo[FIFO_SIZE]; +int fifo_pointer = 0; + +void push (int x) +{ + fifo[fifo_pointer++] = x; +} + +int pop (void) +{ + int result = fifo[0]; + for (int i = 1; i < FIFO_SIZE; i++) + fifo[i - 1] = fifo[i]; + return result; +} + +int main (void) +{ + push (3); + push (7); + push (137); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + push (42); + printf ("%d\n", pop ()); + return 0; +} diff --git a/20200123/fifo-6.c b/20200123/fifo-6.c new file mode 100644 index 0000000..2f055d6 --- /dev/null +++ b/20200123/fifo-6.c @@ -0,0 +1,33 @@ +#include <stdio.h> + +#define FIFO_SIZE 10 + +int fifo[FIFO_SIZE]; +int fifo_pointer = 0; + +void push (int x) +{ + fifo[fifo_pointer++] = x; +} + +int pop (void) +{ + int result = fifo[0]; + for (int i = 1; i < FIFO_SIZE; i++) + fifo[i - 1] = fifo[i]; + fifo_pointer--; + return result; +} + +int main (void) +{ + push (3); + push (7); + push (137); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + push (42); + printf ("%d\n", pop ()); + return 0; +} diff --git a/20200123/fifo-7.c b/20200123/fifo-7.c new file mode 100644 index 0000000..0d73911 --- /dev/null +++ b/20200123/fifo-7.c @@ -0,0 +1,35 @@ +#include <stdio.h> + +#define FIFO_SIZE 10 + +int fifo[FIFO_SIZE]; +int fifo_write_pointer = 0; +int fifo_read_pointer = 0; + +void push (int x) +{ + fifo[fifo_write_pointer++] = x; + if (fifo_write_pointer >= FIFO_SIZE) + fifo_write_pointer = 0; +} + +int pop (void) +{ + int result = fifo[fifo_read_pointer++]; + if (fifo_read_pointer >= FIFO_SIZE) + fifo_read_pointer = 0; + return result; +} + +int main (void) +{ + push (3); + push (7); + push (137); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + push (42); + printf ("%d\n", pop ()); + return 0; +} diff --git a/20200123/fifo-8.c b/20200123/fifo-8.c new file mode 100644 index 0000000..b4ff687 --- /dev/null +++ b/20200123/fifo-8.c @@ -0,0 +1,50 @@ +#include <stdio.h> +#include <stdlib.h> + +#define FIFO_SIZE 10 + +int fifo[FIFO_SIZE]; +int fifo_write_pointer = 0; +int fifo_read_pointer = 0; + +void push (int x) +{ + fifo[fifo_write_pointer++] = x; + if (fifo_write_pointer >= FIFO_SIZE) + fifo_write_pointer = 0; + if (fifo_write_pointer == fifo_read_pointer) + { + fprintf (stderr, "fifo overflow\n"); + exit (1); + } +} + +int pop (void) +{ + if (fifo_read_pointer == fifo_write_pointer) + { + fprintf (stderr, "fifo underflow\n"); + exit (1); + } + else + { + int result = fifo[fifo_read_pointer++]; + if (fifo_read_pointer >= FIFO_SIZE) + fifo_read_pointer = 0; + return result; + } +} + +int main (void) +{ + push (3); + push (7); + push (137); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + push (42); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + return 0; +} diff --git a/20200123/fifo-9.c b/20200123/fifo-9.c new file mode 100644 index 0000000..27f7741 --- /dev/null +++ b/20200123/fifo-9.c @@ -0,0 +1,55 @@ +#include <stdio.h> +#include <stdlib.h> + +#define FIFO_SIZE 10 + +int fifo[FIFO_SIZE]; +int fifo_write_pointer = 0; +int fifo_read_pointer = 0; + +void push (int x) +{ + int old_fifo_write_pointer = fifo_write_pointer; + fifo_write_pointer++; + if (fifo_write_pointer >= FIFO_SIZE) + fifo_write_pointer = 0; + if (fifo_write_pointer == fifo_read_pointer) + { + fprintf (stderr, "fifo overflow\n"); + exit (1); + } + else + fifo[old_fifo_write_pointer] = x; +} + +int pop (void) +{ + if (fifo_read_pointer == fifo_write_pointer) + { + fprintf (stderr, "fifo underflow\n"); + exit (1); + } + else + { + int result = fifo[fifo_read_pointer++]; + if (fifo_read_pointer >= FIFO_SIZE) + fifo_read_pointer = 0; + return result; + } +} + +int main (void) +{ + push (3); + push (7); + push (137); + for (int i = 0; i < 42; i++) + push (i); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + push (42); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + return 0; +} diff --git a/20200123/hp-musterloesung-20200123.pdf b/20200123/hp-musterloesung-20200123.pdf index e9a62c761f76ad691e9f502887840b9d8be789b6..a304827618f10201d5b3d7648dc325119db3d508 100644 GIT binary patch delta 40370 zcmcb+o_WnR<_!z<#7zto3>5N{vbbz)^nFtE(n~TFjExN}CKqz6)^Cl9oP66%sP6mv z3yVWcn+3%C_o#}-dz!tDwf4JuOjF$SkjI&TDbw83*2eF@o6(@8an|wtlY?>sN>aUU zk6*8s?n!$cX;S@HN$T(4e}}vC<4%@L+o&V9aaQe)d4)d|oBnTZ;S@YSsmEAu`DXsx zH{XBu7xWjauley&qrFq|uXkGg*DAA`Ki{(jbdOkGwDFSg-yBdDxHasH`T8G`wL1iQ zye0Xf#NIyNvrgP*)^l#jv-@k}W|tLePGTv!I#IZyU2NsCbD2>c8cC5RM&69YA34iD z=Fh#Md~(KvNiF{pv|>E0{_~2by*j$|%ro86wLZ?h@42sU*8Meq+m(vwwP&1CKG*-B znDkxi%6dO{pS~{|^EMbPG@Z=J&nma;*JPh7SDjow&)#Hky{^{jymnf;wV@BsxfQ|r zGpaT?Nm!@0#&Aztr84Em6xE`+8$y;WJP;ZeKe?}7Hz9O)R##i(nI)4J9(bWSTR>AR zTaYV8?5xOs0l~*ntx8(u0p||43up#^%(&)XA1HFSeoxA&O%o007j0@`a!h8An%!I2 z_w0T>2a99Rluz#&4=#MO|HAz8qp#{zrfiUYp?G-Wa*v4F%Pe$u%$x1bw5TI#*;Kx# zb{ri|#-?#@sUHgN*R7k!Eus3z<I%bL#1}bx*<?B&`v<Azwc6^`vA3O=BP;bw_x(C` z%RLEJmmbz1`MYXfOGlTcp%9P8JCXk?Q<*}X8-mN57EVxbvPgd79em+NTKKeke6~(` zpNeFRogO#T$6Q#Ew*5g?UAJ5cm$=K`1&59<n!3F<b=T+J6V83NwA&*7B_%85;PFjQ zo6<jD67ep+{>WlS@S8WEx?g78Shj-iE^k!*_PbIowX5%5%&Xr~X3zd^ORh`Y_eHv& zHf3<d^mf$<>}A!SQDrK~mBjHUs&hXp7t_tj3lt<OxmZ`neytD?XqfRwyX2tp;w0N` z7dA6E@US>7KiMG}SaA2!skS^{TkqgmrSGfWe_yuaR)n1B+3%_M<mO0=EVI|YzE$(u zvlnx8y7s7P&T>7Iq#HS>UaLIs<%>pTDfy2NKPc{8*?Hy0%Ev!{FJfQOCAEInt7W<g z;deeS%>M9Vd%IBSl6~de3N@BF%JZK`U!K%wXk@#3k#&5*pV_sEr`Xg>+P52i$$IXy z*>v`;E6*zaRG-iIReI{8m1uhBiHy0w=d>M=+|04~;wLUX{xjm|e?MNEDEZ}kJ)7df zRTuig1i$Rseoo@tjSYpT?a%t|ZdO0A;7~|zz1`ls_pa_X_4C=Bzx^BQffehbE^}|s zFo~MsmXp<_`KWT^-RVacX55v2FQ#yJZL7|&9~}?gDj7{v(L1wM`uw7Or*<+13KcAM zc+$%L`j^Burzd}xo8Er<dm7L6yIbadzQ_E?yxyYV^siv^YjPJ%Lu*9b&mYvV;C=T{ z>hH$FhRk)1`#YKQL`&EBUY1{FyyMlQQ;c&Oju&_c{FeOsH}k{6o!Kv)O02?;yUPZL zO#bHOxk2N?)r6h01~b1D|8DskRCw&sjP@jbdp)7oA=kP;tFo=!)UWA~_PBt%L`|{L zr#*VYCjtKY2RrX~g!Gs*)vYZrn|03KJYfNM*19ztH~(zg`FxL}=HtyRdnfvbJovt6 z_pJ*8N+K6ttXj50i@{|%hm5?OjQlP8=`&}&nsfZ+l+8ZXQ5@L?ev|ZPUt>}=yt3-K zLf>BpEs0H1pO~`t9@=v)$LsjyZOdXTJr2CM&m&l~q}MO<iL-FM)c<`RGaTc^+LP~z zTwQzgdUf-rOJ!#ddX!IKf3n8u!y(_d%2OPdDE)V_d@*rb;!5T-qMLOluH<XdJ0p5J zWmz(x=e?UfFV9u*t}HMzJ9Wt<TtH{S0@<~7O&rHBvE&`Ol^e$&ct5ecd@ozxtHaWN z0~WPBTX#0lu)C(G{-xl_ivIe_-7iHC8q^v#9i41B*O{L)vF}`J+p66GKO=Y*mp_e? zk3HCaJAb)>M=y`}{i6!Ucee@{DLFSbd|y`T&LOT~dws%&MfVPFaJJm$a(sKXK~emL z+1lPWUaB7A&XCDuQnypxyY}gv85LKzR9@Y+Zhr2wO=cz*OYLXR*~HLuL%T}<L%rV9 zt)a=esxtLA&i%^iTVTZS@{Fa|dj@8XxdAzz3cSqkggb1Wp6|_^c*thr87>a*m>#v= zGbT;dVrBHOS)%Kb8Tn?uW8z6=v2^9uLT&l=n_5^{7u{u+T0j5jKBMM4QT=MOr`%bo zvgzxo<FaRk_sjJC+u@O$qjGPLS+tU&+4}POg8R=ey?AxC<Gt+SySzb5A7*;@E$8L9 z-|Ao1)nL`c!oRSU{ZQWR)60&zd&sO4<S0H+a{Q3a*88E1s<#!2roA<Ze$}BVYJY8- zj!<$jAL|}gHGZ=#o=i>cOuM6)we$`&e7JHm&aa_?m%()FmSZQLRYw=?+or=<zd7xg z+xfy58|%;S^wad?5@COPHsh0gQFPI9$J%Yq{qOfOUHg#E=(Efx^<3aJ)u4<+9~S9e zOD|h^Kj?&Uch=ovS@|_JI&TVV1jO49%()k>IQxyLuYFRtT+d|x&jRy|WM3bz_L$Pc zYdPh^t(+RUSAAhN7E!zOkKSgtiHojc=L?HA37>7y+1p;fe$Bp+4R@Q%j~!*Rb^q^_ ze_3#@$J^w2+ah0FD1W;o?(o#)h3a-fM|H~dK9w%?P504|<gjv$)9JHy&nW(S>0!!b zrP&UAtK<U2PDh*<R98Cb6smsABqE2)<!fDP|I_d3oVk+T4-I&i%LIm;*?h%knS!F% zuSd~Grmj|7$UpP)q51~tWy#Z0niHAJUR!KGd(G{^r(jN>O^YYp+Rhg-ZC(@q>SM1L zo%QZdGONA4^Um45H?K>)ik`EgY4bDf6F)bdpV9a8@k6nO3n8nMS3X{6a;~skGhyka zneWoM=X5Oo{<JV}$%!P3iAf<QH$~#KkFUPYX0&sYOiPA2YpB@US*J^-Me3P?Pbp~# z&J1f8b1-w6beD79_wZTG7tLCCJPBFP@?7o5k+$@w3l^$AyWzg|ft1<5Caano3(J~$ zI~issPy2B6Yjvl&gj0VC+wPbaCEgX<OYNuFFR<uddgE$DYz-IV>{nBdwmko&Gl}a& z{?Y=~=<RYdR_SL8R<Cfkd=s9yZbFx5{kg-MvL+KO=V?xzFo8*JBaiwlrX5C2jSf5C zUHtO%632lh8j@#Cd5c1iNcKOeebvN#(6Wl}u~NVI<C8c3s>;95_A+?6p8bHad2MDw z%!SGn0rq7Y1+&|VPS15r*g0kToY=dn_ttm1+Ps^}GC^D-Ct2Z|-;I3Nw??1$O?lm& ze~Phw$E^REchXf)6$f@cxgaWb$6X_<Xl_`FOw(15h3Z!_*|S}D^ecYkapBL}dg@x% z+tel6bLMDzp0?u-{`~*R>`zK7nl*MMuviqE1s1>a$=vfW@6)TkZoh+yk-q(<50>e# zjCahq`NQJkRlCZ?PW`ifE8X~1u=_%-<J?1MHyVlm`&Iw?+p;s?e>?j2yG)(BKixui z*LTn3$6e>lm0G)BQF?i<4YS|6KZkN`7!<etnZvv4{0+`270ner;a7gh+-XV-e`dxI zEjK}3aO;$%RZA|d%l>|Ma>An>X_DT@+&}4O=$cu(>|HCnapPI-Un^gRr)M&l{c+v< z#Zs!Q&GMF|`lHM<CH2o%y{>#Z>BQFZiAMQS`=7t)6yLWbPyg57r781|?mfA?cDH=) z6_IRp9kGRexA&}=r`(irHpt>=V@~*w53aq%6KAhjr2TfA$Ax7Rb>x`u?)&`sc)LfK z!7t^swq?hnCh&%Y@Nc^PUa#Y+Lj2STX1AnTm+%(Z-+#cye?z#W_eQYWzxwB|952PU zB{kpS3if|w|K&>V-Sw@PkEZ>%-213q;CZqBlIO93+S7jc|7oha=xivQ95bmSy?<uo zo#Znj{hc$_7qn^4FWK}#EjlwgGs{3nOV{rsZ+r&Zgx>SpC9*%}t_sXFTygG!aOl!4 z99(aL{SuTSrH(J$X21W>)35F3{)a8=*KD4{u}!hrPJUB&^V9chu0Is6;#=3UfiHUQ z<|$vFZI(NtJnfhNqI*{}BpH+sZCQ5n>U8^uUuz>cZ2!KQ`mVHTed<z+;G;6<=V^NI z-+i**uhCY|B-l#g|5vr|Mvp}nnDDm9DVs1x871ZX{jMMy)OgLkampS&jo<U?v@Wy% zzNc8fyrB5tj#K9%4|M%GCeAzmz=_gh6^opzYZx8epK}QQecCSmU-tg(#47<sWm{`M z{+7R(!)pK6;xPZ*%Qx577IHVLCJKIdoe_5K-u@rrwc`96mPSrfsaR{p!CSzxC}mp8 z1nG{4wX0<(9BAM$awso;&L6-w(cwY*3Lkg9*Z=tPuhm<X|Mq(~+e<4-`6$zdEWQfQ z^jp{JN}2O@Uq)w^B$unc&-%Smedz^>5RpG;|81>4nrCEkXm<LG1+&w$y?_7N_Nvva z?t=ZUV|C3e`BR&3vHjU(@*}n*+-ujZWw|n2SD*ELed}Fv=Q^j#2GNIXb|tr!c5d0O zGa-xnrPuzfH%$N8SsvYPT{C%YlPar%k%gtv<U(%s`rP8%I|TpDi(lxsKOk6AG0tPc zb$`#?=j*25OA(6CvnqYwW|Y{O+;wWgm7O2gzt<~s?A$W9JEz`*<x%Oz2%Fz;4t>lq z?M{Cmcl6KiZ;!6NE}nU|XyS4$)6LzlXNqiW+E$^KZnVuQ?dO?iK_^UR$L6H{@2tCf z#=m5i>(O^o+?7x2SG8p=C@`O{R#f`fYE@PA*N`2z@4gNDY?BpRYJ0u#$t+gW9KEfk zvCpMuz1fy^xZzolbn(`ARdH-mQ##E;?;mF3Ud7{m|In3n`=YGH)|Kd%R{Y+|zp3Qv z)vAB@yX*H=Wwe`#du82vcq#VS#w@Sv+!02n7nv7Nb>Hp1_H9g)jB5S5rmvxwcV8=w zW&Lj+^7QHPL+f6yDCm`ba%xji$dA<RH+KZQ+@Y?qnp@a>U99+5A^XqGa&_hllJsZv z`W@bse@o0HU_sjcc|UxQDV^W^QZHCL<k0gU!Z`xJ|MRD9aOASi@JTK3&~Sc#eM5;! zXOGyIP}3!Bc^_JhO1>61pL=)Kx8C~5y4_-ahu2Rk^!@4{TII{N%A(Zf?WNF#-LE~e z3ro1}?#{Y>p_5PA*EKKA%(JEMr^){rt69o6%~@@+Dt2p$hO|%m;(oqdZq_wUjeIBM zWG=-0dD!sgM}wQ~H})g#1@C!E^h!=`n)|3NLB-?8#n`p8clI1C2#f0tc<!5ix6Qx) z(q^x{SCd^OqfT90%`xj-`B`87tU_LHhH3Bq-;CTnOSZ1A#(afuw(cbh+0)zB{JPI= zpe@k(=GFIeU#Axe9k%zJ%x>`WnbPmLX1$WU*1*YM#oRe^l2o_+G_HIo_WIT7(;Ybv zUZo@iEmke}t?aoFsdeQF(>w3IRnw-)A2MUT)mN{(_W66+7=yX1Ii@FaAMvl}ELkUb zeCMgPwtY@_*A;G!7G<co@~J=frJvn--A6?`|9)D^w)tt~L7tUc)@5wz+Vyr-#`4MS z7Z0k6glEraNwrqLQp2+@Rmo>jh4;Pk6*|8z<eip{u)kB${JO-ozFpUB)%MrRmiyh4 z*7(H6tu@WHyMDFq-Yp;QHmH<a&-j+6SNtu+;G}L6^R|4hxD6>!9VcEp@_Xgt-qma~ z^SYKjOm$%U{-P~O*XLaN7N!|YoX>;`R=?7|vf6NByhz>obr-GghOXPWn5$&>Zq;`T zwo}^ub0@uUzfkwV_QqSbyDyJjJT6-@X=UHNM|?*O_(kou-1zFfyIwW_Ug_;`PvVdI z?mn94YbP#dG5>IV%1-U}L!WG(vv(`a>tmetZ8p<l4<7jkzrE)!n`^Gn^3>>oUe0ly zK!=Q14S8$2RF%yY5-l0boZs(adZ6;6Wj&k8i5Ye>ygAGCW`*j%ySw)K^QtqA5itie zH$02XTI!)X|6Hoh+msDK{Je7Y->NKrEk8T`R&LB?<8*^tZu2i}*l^)Y;ra-_lfsf` zqYB=N=P$k<=Y8Y)WqloniwyZKVNB`=lkFCK*1eVVxM9JaUwfYm#>IYUY-*b;CjBHW zVvplrbKcI$m4$LPn^nX!wKC-kYCk-=*s4BFN34Z?vF*v`i%Ey&HBN|~SMmIru(1By zTJ47$UL2ULv+D29-_>nvQy<P0o4VJ&?NGJJ$+R0w@;|H3ulN+ap#1->z-IFlotkwq zwXqckSL9oXX)OLI%U4lw{1_K^-NpA6&E6G49{c{v<<H~07Ib3@d$Zs5ckE`;Z(2Ft zam(MYUH*H5l`vOBvPu5l(uzXAFP&oH{l5Fl>v@a1tTh=jmtC^m93Cb-bKQhnm&}v* zs<$w{emO65!OI`nd>_sm{L@|WaKhmO>cvMNuy4=`n3f!~(oAXc%ZQqU|KSyG=KI4N zZ`qxn$al-AQtwgDCYhWB$LPdM90IY|`(tDqzMuJY^{2s|l%Ouv<!8E@tR>w4GJi1? z4Lcb*DRN@Haruwjb&4{Xvjj`e9u6&RoNR2zr`WWln<><Mh2AdR4^Q*C&6<C6H``R+ zD`HoBbwF5*`6ItUjKTW#vGvz?*Qz)!W$Z1UW7xZ`^zPTVGnbTE&orE3_|kl_Ny~4w z``*+f;fc3XEZTQ-m9Ktm@vCI(zOQST?*wjD`rm7?yog76SN*+(5?0e*eBSH)q5Xxn z*1SXfx3;a_{qfS_1LkLAH?CWGdx5|ksU~lYN45vP{SMSJ`Q=d-oczZ!F56<&akE)c zYgA?({wOHP(dX|hvNTybmHU@&$1w+G?YUb1J9geS<2fAYeD}h}O~=Y)J|`VFm(Jqb zvi@_S!nQRrGp5aX?;_C8Qh&Sbtlain@BQSYjANFo1S<Lcl(;`7^=Y8O0nZKA!Z+pj zF-ysPJ!B>-m2~K0QoXL`k@EX4MXHX!9fI7P@BjP#=#B7aVW;Uo{@&DouUEHZ^&j)B zO>(6*A5G)ur9TKL6IlLqqYSr-hiAI%-y)6d8v-?%&z*BM?!L|1vSZ!qFrM@E%w?>~ z-=`+3NLE<vE6JLxCN|0O>|{=s!}8h;f*&^K@qd21xzC?#@#Kq90(vs*kF#Hj`OO=t zEfn#;VB%!+v${qy;jC%9%FAjRe@y!C(A&NtyX_B~i1DwNv7zkiI~$edFa3LFTA$wk z@}#uFlM}mN)E+zhebMc|6E=H>sHIG5iKt)nqT0xJ&kKj$Vk!N*dH-&jx~r^LC#Uz} zVZk#NosCmg{OLSXVe(7XKt<j}Q|U+qM~lR1=Hkm<Rhyj}nle_u?%wyR<4NIa_T;7C z_lATdX?)(wc<HuaA#bg1CCicjUVohwW<0srWc6e7p_{7=OY1$ps<jK;pXD&|?g``D z%T?2t)ca5KdG>4z<HfiK)>k(du`#~CB=YW7#lqxGMqKZ*=G6sX5;FVGG%1VWfQtVy zZQ1F)7sI$WoX+RGy=&c~hG(oUW}aN@YBt^b?kc3#&C1fKFX!3w?5?}ev-8TG2ThD8 zGF<9W<NC5TVY)#|_*=W(UYuW>8|t2FaMaBB!4z(Apyfh+uW-1-v|Y|MCbK3l2(a*p zR++QyM`fN$16zX2W%<(A3N|kDY@??A{j>Q~#{u=$scAMJCr;BgUij8U)x~?>^r^lk z3}-8%iW=W8NIn<vxSi?#rdTnVk2Ys_OPB1(+LU(ni~fWA{KeZF#I)vX@Jybr#TDpq z@I3RJV~6g}tx7ia@2dB2pUtf;J=b>Ht6IH0`Jk)@<B}7PMGpqXu9d#-|0qQMdtt}n zo+sw#ZyFSx&<GT9`d%h+yYTDt%31PSeo0rJFAuCvVh&{f9Kgr>^+j)2R)<5WyM|dK zN6gI5By)#p+rrPE{`|bGsw82S+GCI1DbF^j{m?ojd{t82@Y9Rf?jNr8oDp0(?K84W zxsDXCZ$HSk%VB>FS55SK3FH3o-g7|{Z{+Ayyp9VpcWb=u`=z4us0y<~W+HpxeIu3R z`32{+1g&P~Jlj?JuC;8^3>k}0Po{j|_k5nAhO&^b+}l5X#;xyp|9Re?|18aUs;rvB z3JwnCmy1-|IVM+4b+q2k_IkyRm-XfA*1c4I;<ey}|8#~!GoEY8o`3zhSa<o22e+3u zZL~jF(zac4{tf3<4?6ZlP3lP5bNff9U+RXLA>BSFKQ1}F`*!6jw$}RZuWzQzim$8v z|8M3a)u1ks7dJBE9II@XZfCu)JlkKc`n;*oI~TDD9F7U0pE;L(xwYibedUCQoabB; zuhkoFeLOYJ>}I7$fP&b!H;)RovT~m9Wchzx^2_P<LQ^`P#NAeXzw^P__l*8kPyBVC zmuq;o+-H~T)S6%;mn`$+Naiu8{d@M$m8+HM4%vKm$Fz*+c}G*emtCLcQ~uIZ#QXNc z!tB%aRt70i+71lc>$ftc3x8U-eX4Yu>~e8lgXt<|^*S$W_wES@Nn_ZOyz=<!*y?Zt zi{=H>|IYXD`KR>qYo(I>lCE1$cc%Qjpg(zz@X;xzFQ4WVEO^LoqSoJOfBopX+gs~r zs%Xgd?b&jrfHR=pDf8SCmBka&#n=Di&zkeWl`AzbrMRRhH8B^&%1_GTGBh<uo}bv9 zXI?AIXgc{|lgOk{UKT?W1B1zep~5UiMn>k712k0X*Or8a%)L8F_g$Xj;bV92$~NuZ zopZ-rK&EN;Zr1A$-o2B$W4eRwd(6N8CEs5b=Gm9dZ_n>ppK^9q=;mvS6as@%1q_P~ z7`?1+>^9h7VDy<uWX&6&7{^t|z7_E-;@g(iz^~5E#M(N;_`;2&rw+#5xxspZ`vS`> z#v_f(7{bCBxcTe(`I%T9&K$gW_~xlYmslOvu3O~k?C$>G|9reAgK+=<o|-u<k&!o; zHSFu|G;HJRD|4ux&foF>t7E8wz=I@CmKo7EnHZD0yl!3M3S!98WG!tFxghr<Cx<(r z$aLdYBi0j<Gnw8xI!HC_Y&JgdO`h$*m4o-ryjp+Fp+`PKNuj~8p5Y0H$<|*MY$fKb zR{um7v0E_BeY?hCL4SRNC`ZD>oSgTc44K8*8>a4Expwu<cow@q&-m(vi%QCVoY?TY zqqafQvLVJ{*}1Sjy@vi(UXLdIfABIX^UbI5+zD6RB_1UFo0$15;nlBj@A~6*33iM0 zj)i?wXyCqZ_v!j5HHU_oq9^JvUc2#l@i+Dvi#K1rZxZ7e_D$@6iUWTETa<+L?3+xE z3;1X7zuCX+^LabQ|7)w0-QA=6_xoG_nfo<fW=)KPLv*nli`cdPS<Cd~x9YBWBRJz< zlt^ZEF*^hIXZt^C>-zpn7BgG@w^ewxzpU+9bIZn=&3o6fAK=O8JFw)zgHM4%4)uTc z2haR?U;Wd5$4B+u2mXsy{?C8(Z?)V1w?hBp-+$ik<h|?GEiH-LwK@mv<s=Rq=VoR) z!T7H#`QQGSWNYo{{{M=<<AqHd|0n#gZ}iwLQQzZu<lZA^t~9r2^%iR#CWXCoFjmzT z5B6@@x$*7so`2s~-=57lH+SuuM)|0Jwr&i}_1x^o_aC{Uv(_i~&3`E?_4D@?7wo;c z-{}8@=lS=1xF)@N6z}r#-&fPW*4{6jOT|t3kMk$}zu3N~`DVRjePTzK)eh!85)nIY zF!1D@iIJb)JCpao;d75a+h6%D-SKq(wmloWH&3;8_`WzZZQB0m|NZahPy4t3fX9v5 zRx|!?RbQodto~b?{OYgqeftkBTX*i9eAmC)+xAia{C~e!WoNqExQs))n{Qc-<F(A0 zFZE34@8kFFc>V3`1_wS?>uFb3i$41uZdvksX>0E15Q)8E?8at3ANOsq(wSqi@9(6A zcjaFm+_?0WA7k7T!Cw<DetEVyKVVz&#kcGRl2a6x&(CtJj6HWcx8Ct(fl>CG_dXh{ zB}Dcg67b!++469#-Gv{McRu}{Jn_Euq93!CT|1gozQD90@ruZtIYDZ2ws(Sgd-(Wy z%l@~$`|Ij3U6|YdVEUhv=096hP98mc;^($|U*2jvi{_UleNgGlywAb&IM~!OiQn?d zK8{9%iBDVWW-;6jYstL4>iwP@^@{&C^1K!aT)QvZCM`JNxkl|_jRgPoFITV9h&vjh z_}hCWXRteixaTqFNde8R8)H3~SsB@Tt}xVpY0lU&^XoH{C9UNNTZ|9Qk1Xq&qZ0p` z@mh)5rp4hdPUaQdrE9e`UG`iz)8D)2wEOPzpL4YN*lW*9D!Q<Re9TEs(B50kzoXuB z?aas!xyZNkFYW8o<<Z^TDd;4>_I{_{S(nN7zu0d~wesS$TpH5;{Agmv<z)<8QVX56 zxDRcW{vb5-^Zlf|G3lJ?<tjz#x)UNSy4hvVS<XMZfYEm8KmV-Do7DB*-Hcd#Hksr2 z5w2i?4%6bxI|?7mX-`^LTXpZKSjESaGr0Pu*PmGHDXGNA5s<Y1;|7m)k&%i=cuVv4 zTg2+9-Tuh+=F#T&j%S2*Vq?UeKFn%2h;8ei**4|hCoQ7_j`+)NQjXQ@KW|d$W>~R9 zF6&c7)W`k8?h>Y9+`UZK7v8RaQFhDF?u2HN<HXwaqA|RebXFPvG+GvJ@qI>6@Uiqz zwx!)0{4Uljd|)W+k!bKb`^L89fBQ;<>sE)}nXK|%_e}k{)|zbruJ1jhcYWbns4-b( zU&gs91)nvpsD~AFPkn#hv(R7kZ^n_7Te07ruit2ns#=(nY>@g`j_DX<(7L{5^)77j z<)0q<ml!zjU#F-3v9Tbxs#Y;R;Z}p;uAB?ih40E|XKs4`p?=R-Z^j!MJ_m&syRmF` z)md8c?MB_k9S`nJ&`JDpcSCn=h0c0^-Ii0a7dG41%?xQ-`d+QZo$tq<K<UY1R_~+_ z@4mbBl%1in)InQ?Szj_&CI1il_T^#R!y26{S!`KhJrC!E?3nqLdtYp)%at{IMLs)R zP0`OebI*J0+cnwDslO$d>w}iRSSc>0wD8(g3I2}>hrS!WFO;9OVcE)s-%QJI$eeRk zpA~oh^m|nw)m5{kT`l(gIg#DP`OJKJSZ(mkV;^%rwj4QpD9cmxY2H=cZ(Y*1=0`Yh zwN130TWsI+v%ux;oR<?<GG!b&JbAA5^q{o;SHiYQesTMu7<%A#@~OgWd;QK_sb8qs zaW(Nn!8%)=JnLDHr$pSC`oT#2#=gm$_K3XQ6RmpLNb!r7H;>=_MbpiGU8xt{8<X?R ze`e*@s+l$qCEMpEo{RmIRu`zLq&@G!+$TmWyIS-8*WPc`{buTMdCU9LFTTeunw`fw zmGO?gL7qgax<&o#>F0Y6<@2}|S_Ihy);3<NUy`xiw{YU@eT5wsUf<mo%uFvo_G$LS z{xfF;-`O_I(zzcP^Fm&VgR!kxc47Xv0ONOO-+UE&P$<4;O5CR0Wk=6h?otxESa{Ha z_tN~we-4Ejt3K;HvLtKOHoNL=9mx#gyFRQqG%J1P(MZWJpSnEaw_odjy!rCyeU0`( znOPyKGd4=sM~b<Me-|t_DUWpU%Iy2IGeD{1ZRNG9;_0nCn<lYn`g9%cIW8f%;q^V` zSu=Ag5@uy@5WNw&a8HoShR@d1e`#<BpJc63Kkaw=l$Pcz>1Q(av-(Y~?i6nM<aq77 z*aerKoA17w|CVu07nwVae^mw3q+)5Owo3>3bxzDS&yz7Z8Bm|O_{O)5{C95e;f-Ug zmj2h%aPqF`xkb0H%AH`%;QQbAxgc@x%E_;HC{H{5s`t+tol5z9mERrbq{O2)$@CRJ znHbN`f4*PZ{h~vl)@-l$pXbK?xw)jEQH(Wc(qZ9SZZG~!Un2d*d&%;ma#yh{Gnfsp zzCI|cemS6p!)D@S`=s4xOX>xr_I>6|Ud%PoPa;}z<=QJ%oqIKV+zPb+yRPDpWT`5= z<2SK_`IRDjlSSOb{j0U|tpB~Vd)RSLqJiy3uwd;1kKf7qQ=0QD_d4yIR<Y{%yie{a zFPzWjz3QL-<|JSIZoxIHD;pcn@b%cNcxm!RnWuPiVt;(`$CsV2YgwLcej?*lA0PNR zl1u-w#ssBoS#8ekm-hZY;E++f@5YAS)<lsl9BWFH`33sqwCc-UF4td6x>l>mF{iF{ z@ri{TjtTyO6`ixwG#z4O7ECM?IkkT3<4dQTdv+hw>p!^lt?}J}t^==^t4+(>_o&-t zb@1I7=bZ0?O+1oQ=XI?+5R{N-9abaNc(UGbZiXpWe9SlPZ|yhYEK9jGw`<<tDR;=G zFKOLWhXBv>F3Y0-hncut*_^lAAv>+EJwkl<lKv>+5A*h>ONeple!g&9Pj~Zer6*k_ zK9(BJ+k_4lPJCfhvhMDV_4hW0=DHuS(VFW#WvA8gj%}}=CwO;n_WN<{l#QH`qUj|4 ztErB!>L=aW=6ixy`H5QqN0QIX{d!x)GOmY|Dx3-W<alR6o^`#_p1J)m9?pok+<#Ey z<RhJTdRyFn?G0Nm#^9o}ra4;4`0d<ZcO&1t*Gm1$IcKHxs;ienY$yHuRWtvG^!J*u zx3S;4{Nq$xo>iy#B)NXejX2BtV$O{<3M(d-YbqUDXc)b^{=31;t+m&<*;21AbAM8B zA>^m|%g+5r0#?n`KJsMp+f~2T%r{~*tXS}GMnGoEl!HBgj%<uMJZ0yM2Osn`S#7#@ z#IQaRTiS5NTG>yGMf9}}|J9V~`x@tz2JOtR30pPkVyubjhbEs#w@;_}bN{dx_+0Oi z<Z~vMvzXm=_HsVgpIiCslcZn#$dEbjUF<ur<mQ><ha!)QS63c8bA#2;F8+Ya;nFQe zOD<lp?r^<dT6EFz?lUzh!<UN_IaT;_)#_GDxMi7&g}oQuqib|^;-r%{JNLz}u-CXh zL-^vC`=OnauXipC`@!^T*^DQe)AqaGe!SstNl8SmA=C1GYmHhDtCg*vtZiPuHqYc% zqty0}&v#c!F#oyg{`Rh9R&3RUcuS`5clk@UG-u2X;51xxmG>;$vWv4DS6_^3_jEYQ zVD@|Rqv;#Zuc|!RmEJRT&5fnW(=BqhW;q>sep%$;YlkiJenCw9+hZ;J7|R#C2#BxT zD{7xG@uSj%qHn(r6jw~rt*&1xR8_v?PfPu$18d74wA`Kb!eaH2*k8JQ_ZMyTj$M(v z%V>Jkp0888l?~1m`A2coIV{~3^epFk%gLDq`i={h{z@t7T>K`b?uA`i<2xN!OJC)E zQH|AkufFtl7?-|Zd9nP!OW{Y`e7+=43UueT%V8;Mcl!V0*@9bp)azCslP}9&`SY1n z@Ftdf$@Rx87KWcWeR`6T{fCZ2KK|8KFC#9BrgMk)`I;*K;FR&0x<28~^pLHpi&AS# zvforkZ{O~|U}^hvFX_(s7gLv97vKMbYvZGH29di~#NFFx>T&;?yP#{)q8B3TZhBvR zzJN<VCHeBzd$NztC}w!v`>%EID)ZJWzmoh)Qoin++o2hoR&R0t$h?-)e$)Jxw^3Hd zzV^IoxV`+Oi-+9CwjZ5}?5FOA*~IZGFVHak^CvZmL*MOC<UzIn>%KUIPui|)fASDd zh`mmU)`@^A4Ew~lsr2po`gBkF_iMa*yX0zw7+-DKaDC#`_{Hn4I_`V7!o1ym@vn~$ zu5$U`+B(lWO?Mjq!yTuO*I!T9S>3Qv_{65fAI}n$riy=#K0RUjp{X009zN3Az3%mn zGxPMzt=~PU_$X6)qp8d2+5Q7}SFxFyTTKgEJ-;y`-D8Vb>n2H=s0Rn%?)nkXm1@q+ zHYZilsM_1uKQg>6?u5|9vKUd>NU6!Ow^Nn&h^}mSrWK>~b;A7jw+=n_sVsP3|LLOo zqz$K1_={IOuAi;&xA1Mv<z5q3HvLK6d(O>py=Yh2W*--^r)^5q>G%A{mfubESlBPS zXYq=&vUjeRPFoefNdA>|e8H4Ib-i=Vt#*jAUl3<~s(x>MuRPa}*FP0XS~N6e5}doc zbHbvF?4S22%CNkR4!CEy^xw(%@xPz$-BM70<-+ORbNRPi^X2JLIwU_=-Rv`8@bLw@ z-3il!->&?l!`xjW_;>BQ7RT)&x+*{AyiWeVXnfgY)>rnvH7A~*)?_gEyu%-~e&-gu zxk^)mTJ|z?GBJyuI_$aQz2&CEGkuyny^lPKuTP7aTrRT5mZ|Js$^nl@8S&S?iQi-K zoL_lnsbT%PIn%}Fie0*P=YDGKYG3yJwTa!vXFn<=I|=(PkUYLfUH@Q9zPR`f-5>8h z7b~&~8?Vw0-Cpv|t3yCh*+|s&()VY5=O=A*oOey<E7QkW`3euKmG)*_d>(Ra&OO7d zy}#7_!epk;<Mua@QBj=u{ZO5Pll8J=y}s;8<tr5}M4Nk-*0<kyy?FL?J)xZ4_xaAo zg}qyEv%e$e`HS-t6~h(pU0b3Tp}2a{qn#i5jLd2o1M8dOTf|hZX&T!~ES4)$-FIsK zhTfFC$KoOKSNp?Tc#BFV740Z~)yOCAeX>_uFOx}{<<8U1Cc0N*L$-ff+!`+){>rnd zG`u(Igq3CJ12L=ido1-2Rhw+hkF31CJSgabm&2E~nzi?zpPVd~7F~UQzu`y!xq@FR zWD0f5{|a*b53B0i$xwQM?ew*8SEhNmEVQ}ssK7PK^wf$XNfFaK>7qi~xsB7r3PX#m z@3yVn`R8@@j5wB8OJ(X)@9(ou@m`m#;FVY3?)c@h@2BVopB-QQePZ$0rk=g;r*KgI zU6qI>+c-SpB7!U)1buAli@xR??B-e3dgRE@droKXE$)5(DkMy0eZ+y!+-d%spD6u( zIP?1aU1^?nGMUE|Uu|vP>AGW*p3D8%6^^~qiO&7=H?}SA@TwPyx7X$DZ-2#Op5FLA z*DgP7dS0cephCgoa|&rOM<=Y++OeYk@Diy8!x;;G?@mkUHRkNRzW2B5r`2x{#j47L zrhn6Xs=vW-H)q}9bNQ7ehU+$My`Zs}ORDz&GyBCSb#L=bn8sDH?taKW#e+h9nGF}N z{xmXQ@JR53N$;8&OIUxcGFTX*7~1o!^+|Cj-@YTweyWnTw^_s(9Y3%YDF>?S>{-Y) zHLCvDww{L}cDKd(WiJKHN->*wGmCTSf#`FR<;53{eEBG5x3^E;?OHL97<YWavCNMS zOEa_nsF*PaOFz6?$(v+c^)hr_zTAanFI`+B1C5`>-I?sxBy8!gx9b1FriNPrH!F88 z6*;*gKIQ<&H;JaCkh@M1<?Fm-J4-?@<x494vb|kcFY38>P1P=?Tl4#V-I)H~cu%=* zw^n$`2B9SOnZF#eCEd@Lo!Hi3`hDr0l8~C0q1_)>$o*9M=-vI$Dr=(B!&fUTRX==I zDrb54_s)#Xj7I4<PAZ03_1(|g!de<PZ$@si-u>44@?|&vWnX<Uy>itxf13-N-?Fd< zd@$`^7IagFtxBza+r7h#iaU26ykN6ASN!RmFMa3OUYu%X_&mSj?zfqbZ*;YXSajBj zoh?~m@Wj(QM(CH4YxCRC)NMcJM`!Zy3sg^Rdl8qoYVOOYchAILa9n%3G;z<e^=f+q z>M{duN)8HM+T{6dMPmT>>W?i~X6Y~5ZpL$6ruxrLl{xD!#1+rw(KD}aG2ATob$PPI zlj*wl{&gEorz=);Ui$P@LFka1)=&Pk9cIsrzXdjZpQUNWe8RL>qnIyCN$lL@Wfoy? zZ+1(bcx^UwMgG4Etr-V5d1cL4`C07$VELLoJ08fN{8+>jUwiF>@dcjcKbUIWzwK`g zxTm^y_kz;%Ys76hzV`DbddxA}ol}2aznVGoaboL?Rr!tUZ+mHVnao^LY!!BLkM^cz zy0(k5Lh~{oeL6Ge$@{Mv8r4(9D_>puXI&HX{x6exsng-R&smRewm!7SWa`R<uMDyq zXZ?HayL;tzaedB+FA=jP9Q9PbSSI|FO1d;(n)`8F)rW06->iG^L(yiDN0N8O2dDk! zb@dF>`f^@B;xzSJ_|3!nDFfT$%X`h0E-NWM&eAg9+4xte%{l&;Vr=Z5D=Sw8@fGp* zxu5cP{j&a%liHfi&IZ9;tIq1IVsCiqS$uxhlEoaAc^#E<FLTd3O;~k^XKnS9#$9u! zlxG<D=_lE*Z#}Tf;-zv#+`;wsQc`}GL+x)E2<}->?|tco=F7+L{<*M*>#9C_sXTR+ zZK83Ei{)<h-jf$!H28WwWK@yxIhu9)(7i>19m`{E<BNB&Ukxp`OuArN^PI^bsyxKk z=U9g1<@ag<*=I`>W0uOSy7M6UidV}0_B?;l<F2m_nIokx`2Gzk5B0z1>9Oy#!J4^8 zF1EfeGj!ZoCtF|B)*QTYhW^&|+|pmnnwZ&_zI)cV{FvbJ*m8T*wSE({?raYcp0=&{ zHQz&rWW9^*m4>tGtCwb9u3C1xdB>S%!S#oNbxdEGom^S5cTLB#yj_##Y2`g%d-mHG zg9W$w&WSOUtg|{%Zl_q^w7KQMr&?c!zdqL{@H{-zX|5Rj`h~JmYJHu$-xo8#19O-K z>|cL<JHPAK)jNFqcHJ%!W4gH|=jNx(6YIn>`WY@2-{5>8{mA^lugdEYR<Q<2lRhPM zE^{-DU1w3TUhzq3ZuN<*<=^C{t+(oa@^q?8w9co{%bU*aJA7Seonm_4tYmJ34JZ23 zK7_r0ER}iX-NtgcTh}6We1s}r*LyGCT_M5u%4~)HlqDRmeyX$<pS^n1-tEQp#|-L= z<U|)6${I=BFPMI*_+!(}lxw|v1?O2WxGsA-VfD24oA<~tdl|_+a{aVg$k=V;i;33z z*4<c^WO*rm(@dp$-Q-2hon5o6Zl8U>MqTEznct#t+fDsb9x84*e&CV>n-oXXyz6?C z>XRQ`FVat*cC|`++k|?dud$Y|R|apTN=I&u59k3o$qkFA)v_SH;D`9GeQU0geF zt`6eA<D`AJ$!MR=x^8|G{<fpv%Y>_gHc!|Q<hvpAluup&x6K>-hl}!87_Q-P{g!F@ zruL@6#VKt4Kkn?lzFoE=cVcJ4`I_Jvn+z_7)#R4d+lFV?b8q^joOR1QCFl6JKPx+2 zs~_ABf1@`4-65M*pI2YcydPzlQYTxO>npNQga3^8y}J23zGsz4Z#?lO<0r$(he6l0 zy>5SOxK(rSm+>j-tk-Ope?Jbe^=P<Lti$u)<p1$AcLHK}F8LyR)#Fk^S?@h7n+<%c z*U2m_H`$oE>gJ7l1FvwuUz=ync_Hy<@AA}!AZ6xk4Xr0<7K#@#-&j2{J@2ai&K2tK zug+etDH(U-<EM~kQ{`%mYx++uc3e7nSz*6`Ure`$-n>WI3Ae<Lzu*7KqGuvYtnN%P zzJ!<eZ|wWXFkQK_%q+d)lS0{FYst;8^CF9C4sS6(SFXeKP@d<7>6Uu76RZlY@&E5E zoqE+SjqiB2p<eR2ug~2@?ZTFReeUUA6!C)XTlv2^=bMAx9aD95vf*j^o1^T(^e*C% z{=@S@i<GLBRD5*0k~`L@9rdkiGRw{U*)Z$+_T!5`EMMf2lJaH3?X`<tcpm(`EV<il z&$gn51O8UuUN5kaDOk_@^m)r%-g<9wlX^?1`JOWb`Tw!73mCS!TTVWA`D4Tzw?63_ zAD`0);-|DKUG-Z3dAYFMpZ5YAE-Ad9>~(I(LDhwJVP*P~c~hg^n&-P39#P(S;beF0 z!~J@ROD|3lUNdVt%j(%-OSbKi+i+s_XMQH81rt8#x_o<UQz3dxJ^a=2%@Pl*w;k~^ ztX~&o(t7l!QHAez;};XB?q0-Yy?x)dz-O+xnt`EWj;=xWm#n5M-1~4<|GaAYpM5K% zFF#aixw~zunP7CJgp*3}AFI@C=iAW*J1kG_R4BA*5uBv@DUbWHs{RU#ubr|1r_U(< zP_EYTEQ_5HxN+0UjY(5qYdSv_(><H;`sUniXL)AUD>C)B1fH+ioh};`)A!~Sx0X{v zXR3AC2c2mGe)BhmwrAfnGgy0Isq>9b-&0QV``%Kzdb08n<IH<c-mI8mtUK3Ag#DxN z?42t!7Ovmues6be`qCG*SFatskg@Q`FQdY6!Q?{+=a%U%l{74i4i9LKebD(KW7oAh zCBX&$o*~UI>Qd@=y{Q-AW?3C}r@HC@Kg+|g`Dfdge3hy!zj~;z`7F;0&M3o254X21 zP^xNv?Pq^@$A=%M^FzgqzXXUEZO?m}#b3``W%ycYb@s1ECVrWL5`ESl&PCr>mrCE+ zB<r{Se|GZcN3FR@U5S74OdHj^G<I3k=D({t+tqyW@6PBao6Plm>aF=2s;q85o^yNQ zyNHmh)k_x~Uw1@yaqL42MeWy02{*jT4XX95qi&c!-?1;-b8Uozb?d~C?+ea_H^ffu zj=rIAd2?sSkDaEXqRGlE<^chEFBG+J@v>ESEM9TBIoP;<_qR8ewYD=9RC^3|y4$<- zeo;Byy>R}_zK<5|%TJ5TUe~POS9oOshq`V}8grgwt!brctEJw<DTYOd9VWf~Es!77 zR5pKghg`r`r%8XhwM0zouBk__Y?oivaVYZVTYrgc-dD!YOrH7n&0*7izUA<Fvz4nZ zyIkSi8rZxe^6kCS*=kZ{$}vAT&bB;q+j;jRXO@%S4~M?|{b`|csNSU4d-P8E+^)Y~ zf2a4Hg|l|~?((}q|5GBDf3?w^u-KVnqTeN!h^Mt?@miVtY(Hw$d@F5qw!ERR>D;-= zL2O=8Hy?4$Xu0(4{noAfQnXHgRo#EADyhD4+0FhommGhmvoFi<?-ZWYa$5QSxkptC za>b^JsMZuu{B<DbjH={4ca~QR)4$$ts^FS+vHk*cyPWo4TOl)%gDf&uQDNQ-KCIdh ztrJ-7wCrp8L%Sx)NxkuA+B3TL&a=@}_6|Mt>nXE;_Sd-#=}%;0dslx^$?E&%czBu4 z)MEMMlC0h39FK(3CbJ$?3TaPPxwrWLTDwS>OYThf7yR+hE|6ccxLkF&@f@q77cWkw zebAoL^z%#ooGI@<G=4}HR*_(;v$|Ns_PWA_>Ah=Neo?ZM$$jbend`JV?9%?8oN+Jj zg~@_{I=dS78r-bgd*_SZhW3s`qv>A@HZEa5rPcGXHu*=u;q!9kZ||t>R*zUKA0>OW zvbFWu%O!8UZ=N{AX1=gw?)Q^70|KloSL_KoE?rYDWAZY%rLo@h&%8@Y(I+jc)6N`v zUfyxlte)-p9#`GJO-rsFYjIMDxb^hO(aOkatCiCfZb>awvkTz#T>4YH(t5E~_Spi( zizS`C&mMlB6F%j6;=(@j*tJ#-w_W<ynjCg{^>4LvzRk2(r)~S4V=RLTB2Ir7?{Jnb z`}~{FsAQ=nTR~x({p(t{dg<Kjq4NZir^@}Eb~NyNse9CO-d}%ArZTKP-Rt^uho)w~ zul0goJ|ac4c4bJ%PJFXEWy$f?jNi0tK5AU%Otdew5?|f@DF5}3ZQRq_d*xP7m-}I~ z?e3J@Uv$({cfLPx+urQ3&mm@yUU9wz@y(plJ?qYk`YFunJU8o3ahrm2b(nPh){}~t znHH-{?@3)dQ7KAfhr-G^(Q!<(xGZ@puTNt7vhDs}!5eOwnK37>6|Fq`V^T@<8Xcws ze`K~~*lo}6&YYm0=fn1r-=BBco7sB<0!0O5%{k)#6n*wpd1gJubW1$1&1e17PA~WZ zm;Y{In<|m;t$C^bLk>UL+iu}+IvRS<G}TL-+K{*AS!`fr$Yd|OGu7sO6I67+>28T{ zQFh$FEa98VU*CT(J_+xQ5~+LlIGO*+?Cedhi?->6?(|X4)ldBL=ilQabpk(Ui)nhl zDg9OJwKHt1?VdNj^M1Yk&GMc{_QQ&1Iib&+FE1&q7G1PecW=cK=ccsTW~;ecIQMuK zZ}>2WrT*CK87<AH?PPLOKbstO)zwp7VQ+i%+16rJ*3*%K+1z{YrB96C-rcczMfxM2 z8Qh{@ly6>p#t?IQ?^mxMr$3x{+0R}6f+@k_mQ09o%ZA4{dW609?|yxy^<LW($&kuR ze}86d<<e(cy7TqB^PDSNh3#zG%M}~-9=2=g8(rUF!d$$r-im+qmiD+jo(h}b8*yQZ zo#nG{M1)oqGDp6=!Z_!4$i-d@x5Fp?h<IdNY+bOfs${bIjokKomjzc|n!huBT7X}m zX>V5A#orRm%$i*Hi{3rkqbhd3d)CXU)eP?xj@`)Iz9s9Vr0-$XJ3Du2oj3jv_SNC> znrlaeKC%}~oql%$*VUBzNB5VSYwfeQ%6kyE>h04?!`J5x^LrC>Jov9fUe}O)sIYG0 z-;4Kt-i=V5A-(9jf9eX=Lr3q%O5WaZ$IYnh>fQBc3)H{+OcB?dTUHraGHrq1<+Jzh zpV#P|X6C~Z+O{?6<NLMDClX}pqgYwKDoIT3P~LTJ?*7-8_9hm^2WpwRTzpn9&svct z{6<=f_5JqXM{CkQJ-qOCYY(S>wW+T`&J4kfW!;thFJ3>|@k3JK!}aMBXC*b0qW!nI z+_g$5s0tH1^dd;iF7CjmZ%r%RA0_3~O)Wm3yZf@(s>I$z=083cbg#YG9mICF>SUU1 z(vi%){ZlVXOV*dJvecBaS&%DsK&v7DeLbVj-93sitooC^-tnsHvzYcz3N!d~<7eDU z9o6lof&rha@8?bwjOe?)BI2!w#rx=)IptygiyqbqPf(EX+p%X>_N>31O<VLopZEU3 zX?1U>nPkB%O|xeipX6%P?**NEpl$W?f%nQsQ+90r+^aS(ton$l)DLlc-Whf>3$o)p zg8hx_SAChd(X=Z$=S=idj=79tOJ##<EKhP;@tyK^Dk;9ymaKH-#oaa*c|r5<5!Szq zDpr?$E)1A(UHkg<ug>1H#I1gNFwFk#W3J^K?HUsFtBRqP??$9mNcGZ*G2d34&N|4J zebZ?3mM5`A8V@R`|8j6&xU=`4^z@|<t_D}9u<ud7E?htP=1N9&3H6HN1K(HQS9QGj z?2{y`Dx226w6*6K`ig~Y*>})KG;YJ?S)7L!>h#3$`K3xdy5Gy!UiGBEI{c*Ol_x<} zYaaehoy8M<dG9ihZAx!+7wWH_Q~x<vEHbld(ee-7w$48%_invv6Ld#z;*TBu)pdfp z;WsWGnJ>C`WwGYe74?2Op_BQ(C(S$AbGX^<vk2>FuA@uLz9(#RbFi<CjNCpgZdYWO zZKJtul;JM_?VLs;Nd_)^`ul1oN_Nbu=X`D!w%_*q-M>9|qYVSjUcLAxj79zD=knf_ zdu!XW<oG4{&L6eXZ8?;4SZ3a@(B%(TU)TM-^SOtf_kn+$E%pE2-q@mE|Jm)`6*2XO z>CQ)<1?=#6VjX3YfAh~j=C@ORm>;?yH7}HR<0s+Xq()Khl8=Y>YhQkL*<D$ZO>|<= z`ps<RvtF5<{I%Y|ZPKm!61AOXQ#J(hA2tX~T<A5oC)7jbWPkaU-;pAXY8+>u&z*Sv z+*$qB9*@^;T0v9w&YkBsEeU5(h~}!FyWQvFCDwiaLjE0_{2}e${h~XpayE^MA$e7| zbtP~3ozt$ia(Fd;s@KjgArHNyihoUaR?L~Y`tWXl-Za*N)k*&*t)6HyZBu(-k(<Ee zC!HcmWsI-RhOBz39uQNVn^<>ZTa(Ee-UFq(v|pO{$qO|7TbQ!p_Cyvv?mNfU814C6 ze7{~!u5sSN)NT94$|g+9n*Vlg_?*aRC)3YQp0Rdsu+pyS-<$h)izM%Sc=xM$7fW&X zpC835E^S;I|97qZ?|WfE@2m}%{F<?0s_m>5lbhdO2-;ltHtva-mg)SB>vdIp1N__t z19|JJH>?+M>RZnh<mq<g%#^IZl`oG71#1>G&p0o7thfG}=$(U~Cd@gq;Qlp6Ikoa9 zOe#Jtbt098c3w-?b5sSTf6#5HPCaSN^GmLZW%+q#Va+Rk{da!Pl&zc7mm&6EH>KJB z7$=8phtjh1+UKQn9!83#1{O6G>z6*+|IkqWF0X3jPp0OKzemq)@9X+`etul}zWfI% zPhPy+*u#5fM)1Lv^*+gezkkTPdh|+=_VZ7ynw3GDCtS`ycThYyV{)<N+ncB2Ca<}1 z^vGJ98&XeBC--$kN7O!<zhP3p|C*@Ooztycul2{(n!XQ;j|yN|)bz=?s_bv}zh#OB zt8V1|46>TK<Kt(Rdyl_7UsGBfob&QZP=58R>_0YV+^7GO+4lS8VlzRndM?(fmCm_5 zf70?wUI*S0W!zG_X&;}XR^mUA`AVBt-N<LmPijt9Sn^nz!$V0TXLgIoqwSS*?<CKi znx^vY;!<Dd(@oR!9||{4T(bU)<mAaK#a1iL@A~<(S;&NU?UFNUv)BL5winb>zE=9( zV(rFP8Be^AeRlgAsC`9LHTs)O(A-`1&(D1RW-uZ3xLDeagy4{QmA@CRYF+=N`+(f` z;5W6!O=qH`_?39iud<DCVhy{tewMeEg88xcNy_4#Z?1h#(D?r1g-vJZb^bV&8Frd# zA69CxdGx<{{7!4j>>XcT-2BWJ72JDgr}tdGu=c(u7yn%QI?v_UbB?kEfg4w29QpfS z&(f*q6K<Y-=b@E^vy75bc+TFynCrVfS7<N$JoQ1d^`D*3nSWNE-N5GiZAH6x!<_WQ z-0Vq;!rtLob9D96^_JbwTKc^F;I3157I|Il3%3snzy97K>WbT)v`GoO<Qlz`&vnU* zE_|l(`T5a#`+r+EeS6~i`R9&j0xBn)b#hcLwJZvKZdbp5kKq@)*5_%e1%Efimp;57 z|4Kvd^x1h=%5|^HeGYF|n7Q?7tm!k?z)l128F4#aHvQPzp<4HTkKvV{FTZA=d&3+Z zB^<nDs&J#)weJ1dpZ)75P5X5ux9hXi0dp3=xo;#Ui3)ErQi?m4cy8I<Yqza`a~u#T zUiC$yf6ITz*ISOLt*VcEoHy^xGv$j%<F<BHELqLyG1tU-<J&_e1ue&I)ZI1<)`#tr z-=x&{-A3=dVpjc>JYku7(^t2uI@@D}uUp&C^0_}(E5+Arlf-n-ua<{|7c#x6nYJKR z`uE%|zyEEV#Q&poUjI^G{Z@(RZ*(5*4f@mhX!aSSvk7tj#+>nf9f|t?>Xp{Dn(W?^ z^1Nrs`ZR9;S`)pxxt`UX?EbBpl{-z-u5h*NzdGx^L-Lk`EeYDUtPLM@f82F^ui&XF z>zAShd@O6<X3D)vp2nqcFD2nm%ptzKABzI^FqV17E|qQY^qVN5_U6x|y>>bqc@I|q z-W$3hRismran}j?{M_>_{(og7FYm7pHBj|PJ!u*@?^o~_$xOb+`EsS{hUZ&z%x@@) z2e-Cc+WXGaF3A?LsSJ>KtgE>=?#jpaQ|BCReLux2TC4k(?(4&|4G-q=8$MkVQMG6X zyO+lotNpHXgXZp*_}H&=X}Q|UTFn)cP2WFx@nmsH{?>0zmz?hXKeI5hPR;bkm7Rxn z#MQe=woLl*H(}SqIpOR0_vC$loyws%Pg!+!Jkx4xpD)>r>x7=1^`AU#2je&0AJcv; z6Zqx$^YTn)Hu2=>GNW6L?~Q-XW3J*l>z<M^F+3#j75o0{8!!Kud;7S`udZ05psHuA zcdo4}v1WfXd1kC?)mEoX?*EmxRh502@3gaF+8jqV?)sVPmm9w6EiDUO{gpF9Zspfl z!6-e^0N2y!9x{IFZ$83U;HdPFdsm~))~yHMrF(Up+$SnDdDV@;?+R-S^>!TopqgpI zE-cr7^tYMmPG?iCzC8QY4yOwY7q(5RJMUwE%%p1Jy3;8I9Lqn<7e0P=nTHzJ?Ux5X z6~<d7X`EVdw@qB9KHh-kf}3{8sTcFN9Ot=ky>iRJKem&)Y<T1kY&;OF_gg6PxuKP# zBWH|;QR<cBnk%jx)Oh|>^7V|19AB+;G8PLL-)&cz`e(<V?FEUgTq_PP{-sl?>>Xup z8@*_)&gsPu%<e{e9l9*nvsO2}jxoM@UUl?_8>=VYbgPjmsxjIA)hw)j?hK^~iRbDV z56b*bI(v!n0lN*0(Zgy%|GP^Szvf2l&z~<J80r0dm&;|HwhI;?Pt2Zi?$E>%r&}+} z9WK4z&O0;bK@y{n`u_5kmR7O(Q{8(Gtc%O=)Z*z}_|(ldMsUNQ*3*BqBWE1mQ9Qfj z<yHTrZ_npl^6Y#o{l&mi=gT>{$dG!s-|p^jnYLK?Gv4=)-P$$1^H0{&+w3*gx%qLs zHcVQ!^b)t)?fK5ZPD#Ih2ykh0zLP7Rb@kSByS>77(>6+<PN-yvir8JjDjN9g-$9-@ zyM4-&KQ56w_+h=4{Kp70l^nAJ{u!l5wK^pQzZ?2odw;U$`y#=J^}m+hZjjqKm9NV} zuRd#4@s!uc1>}6Vt+pRKkr%&u%JE&2zhu5%+5d-if|I_+%#FSux!UeX@0_5xe2zuK zx+#ASYpW(_otwzEcnRxwCf>WQ($ivGm!Cg<IdgV+P@iDZ$LpMZ0<X9(sjd3>yQBG2 ziQX-bJn5VB_Pxq$zoT*UddM^@HKPjVpYknw(eCU9^=(&{ur0qP#G$tAd-k*Z%Ea}r z_9gA#KGA;V>nuUL|8^A?wGJ7_y=s1k1qFr+9sJwjTO@qsV?+F7vsrF8+g=<n-4U+# z{liShtf_Z*XvkcQoj-Hl?@JTo`uJ}qv)q@@oic5I?)i?|B=(r%DGbNdsy0qMXjky` z<fHB1&oF0N%yt&9?^%9vO3G%b<e3WB=dCl`f9p-f^_06u>ZVWgP1AC8SDN|$Sc{5{ za`^3xbT)}wb-UkumJrD=5DJTab!l}%tM#mN%L})j4a<}(c<g-gr18aYCayon5A@8k zURKff{CMGGUgjgaZxp@|x98j9ee{cKO!~)J|K`s-p5JinfXIXgE4xGMFB+8R-cd9> zA9vu_^10QEy_<t)72X!xQT6*=Np|bHd+)2>=dKT^jd-^DsQ8432}Qe<+A13l6}N7( z*>f!a;;ot>F=t7WC-Y{h7@i9h3o`Gz@FC&Ljax@N`s4mtN1kqH{WkI9-X&X;9MgRl z$>=Qfh!mS_d1{0C#fsM}a*O_ntln8KlVl&AR(ZK=Zd30>(_;?d6C$7AN%CGfDM+Ms z@#3B*Q#huGsIbgg&3?Q2PIS?;?$<w`^*g%EcRe~)UVr|=%PW0_j&HH<Fkv*lJEI_c zHd~HmuFXleAHG4#lgt=Rzb|3krgM=g;dEkB!0l%rM2;-~vbUPSFHh*>hEuikp6yU? z{!{-|FpsgbDen<0n`$l7#9J)qwr$OMvC&2T=Z+2QPfDoA?@-V^lqes0;p&v%Og`6p ze}3_;tUbiLB{1^!)vfC|L)ouy>1KVj<LX0E8QH(J@+*JK$=l4cd&&K2x7mbU%P$#i z+Lrrj0>=uz-x+64M%$b?S-$sYYQYJYt1K;D9_A~Wztq3Jzo1Z~WZ&DcYfEH}=Vs|D z%7@%NdE&y+SH^0`%I58S@O5QoT%^cv^Mhs^JLk04u>V}&VZo`-z5ZlyVTPfvBHQar zvF4j<?|!d6vOlI)(VJz5Rru?RPRHF&%O{3u-mcxad9KZ$x)UCvAsJKrRj-N8OZ;_t z{g2AKbCxWacH8XC-+B}Oo2=L0rM*y^xNTms<m>4>HlC@vw`tbIS7*LgOYNKGoG<yX z+jz&HhYHI!7Q3xGvHOh5=H`SjK8b@JLN!|!1syLvug`Sy-kA*_enx9}CY857Y3W>P z`6znnwD*(dupPFY&ikxsqIAfY4R^b=KmHTdVV>oey!NYz;ip=K`fK(+p^D}WC!@Yy zJ!QLZo5+<J%T}+vbwO((%L9*}C4!&+GvB&YAvL+<s=O5Bpd&*CLqjt&eF(=$!O+Ou z#2CDrz}VEt0=%1`v@$g$Ci<H0JH3Mo8y>7X*d*MPUGUwBOXE(HHRrm6x;u7*!Rga` z|L*!-d-uNd^W!(G&y`-gmHlp~|5b_hu9(19&m%{!o%qtNdtzc|@64(E3jA9Pi;4ma zSxy>h&Yoq>_^%<R%_Agam4kcs<^PNR3nV23JG(E?^|*84BY*w+tcNTUj9Hj(L^9^A zsaa!F6O&VaY>mu+o-M4O8AT2{NJp19ELyo(^M(}1FXztNQr0(TG|7a{dGlsX<1)2V z%lNkWB_s#4+cn&rKlN{UXv2)PbEPFR@*Z+5_`7V4-|+(ne&o0GPM<EG@Z_66n?l|z z1`~G175{nW_^!=;`)}13_4?K&nkPj5q+e94KdLoL(rX5T?EfrrhwO(hGL9cVl$4&9 z@rymV%pjR<rq!kke<N40oNzgF?b&)3K9BlLH9nTvQvWkg^**&P-OO}zSA)$zZZqa4 zpMQBLkDTm#D$SAcK1ECQUw!j`2ao^9&iKkQ#;kd>X3v^848he6D_3u1Jsq!FAA0wV z&wsU>|C)Fm)#BvJwv{m$J7=>8>o1u3a=!GW_U46~H4g~BNqP13<A0(5#cfB9u^BK* zSu^$coc*73c>m`AjlO698BRAYVPTGCytU@cnl(8L*Y>Zg?=AVCv!YY?#I3jYAAV{x zTgD)k=_>kD{}Ipso4@xja&gW5za%B;_Yuzegrw&We?6XJFIl<M;-B&3{ab!4=c`}b z)pp?jZog~w%cn5SyvbDY|Kd4$+5a~uZPvW;u-}|<Oa1K`d>`yTpT2Fy)a%Q*<^Q%m zK5g;W^4I_D-1v9>v|sXn{%5WEzvko7led25hi3d&WPi{v$Hx$PAigU?y6M06oeOLk zZ@=xg`7pn+{?)So1^@r6_fJ{8(DXtCOG@5f{h1AX@eS*isdYKHCwJH1csgHe_Mcil zU(sCIhWfcF48qdlx9ba5i8&-|PgvP}c>dlWvyE71{&Dx@oUm~%r$7o{K;fUqUd|g% z?r+$ik*sd;qu-`J|HAzA|CZ*={~{NxT)BFs;iX4&)*99~q=wczoOW*In8<zkorJsj z_wBpO)s6g?$X}aq`%FOWrypUhE^{Kc+kDJ?)OA>_DfQNcq6-ro16_pd?RG|d?Am5@ zI609$$+4DK)h2PB*o5cKI~^9x-I4NEt*7sR{}~IB;@7{c{Niesd#Y-fbuAT2>3;3| zX~EX|g!K&WE>UxWyH*q!)Vm-5{qW>_pNFfzmaE$Bn0e5wFwA@Z1DBMS-*%mJm&(+A zvTJhnn@eFj%{O<-1%~LopQ+%fa(orHveMZ@{x!La-@fq|TWfSEcY<tBW#UYe-`91N zPvlECe=*i5__6V#%4&^_A3q-Ni`iuMr~4R(i{|E=wreMEY1Xje_EA!3PF`G8FW$Am z^!uSNK3+BIkrgL<*FJ4;6a4n@=QY;o&Dq6wI~wZdOlzBWTx6@I^q#AlcOTlOZ(L_K z^Xyx}4lmgt4%MXm+n*xrpP%1W>OL<>>(^Y%lXoUf^qn(pkJ3)2=ca5o9Nur+v|@_{ z%cjL8ll~S?E#9kbn-$@9^wDm){>npdrw8TL$3@?~GtKnYn(yl;eg3py=PaSfgcm{W z8p1PUELKJ@-g?nvm+<X<ryf^o^Y`XojZF|2df_+w$Kv2}#;-S5^6l_&sQwVRQ=#Ej zOJh>mlnP$QFUBvcxw97-Rdtza_U`h0(I4~T>6!JD+BZi(<UhYqD_e2vy;b|u!_P9> z%@kC;pmDR_<deY8ryGCF`JJEI6npQ^wWF^JLnbQPp7>|yGT;BD^WopETEPXWd2=^v zS@0~$zr)=#$?kOj3Fp-pLyqlPx7{-I{%sDn+lK2FeOd9Nsipq%?E8u#rH3X*h!jS1 z2i|{pn(y`X1^x%u_NlX|J$5mFB>7`Ty&Lyz`(siGn$FI@Ip5bWTl%~^P)^4wW2R(O zu))VyHv=1+rtt67H)<5vC8|}i`MjOhqbrK5PO4}9TUp~LIeTO0qaR%PeC=!PDt9<` zu(QT#A8XyoIe)4)@Ah3Ai+FFH-Fxil-0wQaf?nR)wejEQI*a0}g4{=S2M*5u<HZ`@ zE#32e%hPZJ`B#3*KdV1$HrM~GQ1N@|w(vId0T#Xgr?+izP%^yWcjU#dU+WlBi`v&c znYZsva!T{vpHHrtg{8Fbl8V>(fBf3{*uaJ_+q$Ps<a~QSch*0~SyN9`nJQaM`DH)- zm}$t}es6KnmbD$ZkMyT<CI3<WrkH*z@<-;zx>tt^1HP|3ojdQ2L9$)siHkp8_1AxL znzFWkspt_u?VJ4a8lRSGE$V1Jn;GXQr(~<}P<)TwdB;C4Wzs%5IacOTK@IZz)ohzQ z4jb<-x|G+nvATBdseitf=8wFiPhR}wu(6hZ@yYEsVzpjekPG!L{O0(7yI$w>fY1P` zBb#1IJdE3Y%4-Sl|7+o=FJ9epe3`^XrENb&>l=fLRGSyvk8U?K)-?1HFsVKIK)L#S z;*Kw!-Ca+W{Iniz*zrhn$1|gfvTc|D*nFQWdTN)_B)v(lhfnD0XT7P^T~s3=eJp*h zp6N`sh~h72TTPTENgYZ5Jm-1csq@#2`<Q%NU(R~ylbW|}pY9#YgU9VN&3ogIxt{si zl)dMC?zv0#Yxn%(4gd4eT<MXh@c#H_^-Rt^tDeuE(sS7NnuN;j1AC?39%0*9VRB`~ ztL2XkFP?6SF)CE%mn-p@kiRwRWKK>US4!jEXDjM_-!9Ly;JTc?;GwFg{PwpOGkX?n z=e-{i$G%KP&Sg)FX%^2+`@FaVs?PiLZA~2-R+evFCiO<~2xq-W>XqLq?J~`RQ@0z< zTOD8M@#yK{pym2GVaJ)XxxZ+5OwF$E@I0*Y<D62}Y2A$CqZ8)JJvqBjb=#qp_8$zH zXDmy)G-vbYMV6KSH8)AV=kU5A(8<<so?i5$j(hp6L|OIPJNN%?x$<DCbJOe$w?k|v z8@4`r?vl!9_s?7@TK|%DZM~6DFiUWz>WnGQTHWTFi(PzWMBeYsy=nUUcl>iJYl+~a z68n|5wrN#QW#1ZC^^SF`?`O})6S^v;6tk=@UJiBin6+?`f5C|YiKk*;Uzxu?na_V! z`RbwwN%b4*<?ZL$(_eD=ZCW!gd4t(uH?2#14JMrz-TCxUM(I6`JBuc;bX>Yu-*xxW z&xytAiymEAHRa`Akt-P<MsBf;tRIcmvTAyFpC~-;*jwHiBssH(eHm|&jF;pw`+(zL z<92p3@A%|yD^U}-py|`6yw1HBO$!2L_g%0Ju(&v{S>PSJ<&zu9i>7Rs(hTZ3H#gm7 zW@eton}x^rUa1L5K3BkH-);DRS=vWUF8=y`>u-4JR5p0}A4;0-u<^6*u9-PWT}($4 zf7Jbb^JDSy^S5)BSbWOf+oZha_5txPHTk*ACtmti_>S|c)UJb8(ytz#y07_+Bk?ca za=ma?6Q6+mvlVj$J}`;w;{5hz^-Q<+&--?{9u9uwY`dp2Z8^)XwW_Z7cW-(WwL|Up z+)0uB5{C5(y?ISVGSv@vh1IV(X8d#2`tsP%i&y_WW+AarRDMzL<))Mgbrnvc(Uzyg z`q+C86qa|-oETLqd+L&4%>K2qiyYoO4?n!dD*w-y+-;|GTP8O@ne+FkZ{!*;rZv+9 zI!dMPxY{0?7;#5Zu5!s~!An9fCj5TaQy7(^{7^WuE!y*`Vtr@KzOLg*3XWav{IyKR zE0pF}cAqP{{AzmR{L@k{I~6ykX4<Sg7G~#n;r7$UO}qRVA1kY8-%mfX_jKIJ1vzeY z2fN+pKak5>nh~~sUUYR=cuX+cFTdui`i+SS5nO^EHVfiSdG;h~3U^ljxs&L7F3;(S ziPoBF`+OfT9J~<f`^38b)&j=K<$P<)cTV7~o-vpEOK!PN!ImAZI!9VftP*PV&ougR znkFhv))3)IbJ?0Zcc#ta>Px3gPMDZ4zn`9U#I;>l$1u4rTB7`gad_P+C&}$aQC~L( zBz|^1m!9#nz-q~@L%$zw5?@g8wsx!OtaA5?ymEnz_(!74%$G0Gm^DXFy}p01PV$Pg zcPu2-oj<aAv8yj*2$A0*>G4N+tK}L_Rln-%rN`X=T)*)8hUbTa30c=!B-N@t<#Q*$ z(Uy;$x%)21oTcq=Q-1v2vnpD5`K{!=>}lS|4z1_g-(_8R!lcE{S@Xc;dHdLo$b9V( z$bEggdh^2A%6THZYu*{}Rlm8uQzvFly_Vz#rgNszaXS*lY+BkiqB-hBtJu!$%zp86 zh0}xnywr!eA>00`9d&vtTO)I8VqUvPwNT&0uf?vP9xnCE(@uCSGHrVb$Eyc-f{)qG zIJSw$vyJVneL-P$YQ}3R(}g0%4;oHcL~c8_ENRY#`xk7cX8xaXCMe*8YEF}^*nZ6; z3}W@G!XJH9J`=n2%g$MxjFN_FGWC0V?{2v@Td%LL*^+5lRLAtBA3JtNY%eU^Q_sba zm+KK%wEpO(vdpDf($9-+=E^<2xqR-Cd4|rcj|D}){?50xUz(@4aA~v3r}~aa?|0w$ zC-44x!Rh5u?zX%9?>gL`x%W<+y+uBcAwE_iq0ZG+xBf!!<rS~z>X-hy9k@mQ(Eoo` z%~>qoovB43h6i3BcV1ZBw=1{jNs#Zqx1AjStFJEad3okeKl6)YF?TGtX|nZg`JVE* zEqcZ69(Ijl#z`UCipN<^lR`hfedzH^Oe&2@BCWJHd6_criQn9Zb+7k*<}6umw0Y;T z@M!0m|3qd_=>9XWezV2BpY45YE%9Ft7+Id}pL=SPyoiLgijCc#v=r%x@^Xts-IaIa z!ld&=GhZF@J^axri|0``+p-4%8p`u~`aPxwSk*qOUB-7uz(VGj`7?99AFA`0Xn!lT zVXnMq>{r~khI_R^@Qd*CHy(d;dOvx~iYI&q-o1AoigzseD5kA)@@@U02i^;Ie*HZ+ zht2eLfOYr(C(AWoEmQn8;nU;S4ikeGd8H-I%adF%k9B2N^!rQwku0BQomm(tw(PCd z#hzcu)zjVttBXyI@VsI<G0moq!8`eVMeyxk;`>&;`db_m^ImG{{9jSNC51Tx+MHAO z?w?ZI#QM~Ca#zshqc>jinrSh&->pBSf6eWIp>AUK^R$cz)k|qlq<K`LS7w+CJ)aSM z=IG}1_L4r$R{a(GWlqkjpY8fFD(mx?h+SXpr`RSvY2iJ%MlV(OE)VZrVVlBGk#>_J z`L|U!+LUgs6P8%|OK@*PkcWYijau)l*F0Z;{h8Fg`lq&^U}pL?v(}F(8uG6nx|sOa zcmMH<)J`%zJG0W%=ZR08GxMTNPdeSrx4Oihz3?M-4fplGszqD(%AK#BB>vkv)2Lz6 z=_vQB&wNCSzPHDpI-8ol_oCLdWd}t4*KGRKP_tp`9f3x6MkB7a|1nO-g?*U?+%C;s zl<uB<`p(|<Z<Gp_B~Q55erJNkBLO~brti{M7FX4aN^MP?^f+Sn4V9~R8w(RAMXj^$ zbjsM?nmUceD)rvS#cP(l63pv3a%|Br?&c=npI+w#&7XW<<YDx)>mEa6$ky*Y{zvNa zn;g?__I>@=_d%uo&Si<GjQ2N0q^#wMeEVj8zoWg^aRvJdWsdmy-Bwz$fr^>CB(F(E z*L?cTy0FLLMZIG4atZTnCf3FCl_XBGym|3iYx~UampA2wHgn$ZdpvcO%+HyZ8%mlY z;_au;us^hP@6<HY?DWZvDXTwuc={**|Fp46#*ar+f5TySM&WM>UpSh!NBZ6UTx0k! zLqTs#=#0fr`8=J%zPSe2nkLTrb8W`1KTjTB2)yIjQByIQL3@>Fef(zKbwdB&9bLF? z@u^%!`{sC`Pm-Gr9hRuPWVk!6p-sKn<i@iVFPELR(};eq_HetvCz+_k#l^S(&X_kf zsyA8m$_DFJ8_&IuRQ`Ii?(zt#XrFrc*ZY0_?ux6{RQytG-gR(^4&%L|kV&Veqzj+C zvG45kfXesn+XRn2IX?aICUu^Z^+C(Uw-kA9ynIHs*XBm|yQo)@aYx;mnfNCP9q_hT zeoStm+56bu1MwF=Y&2DOoNz=`V!^upElYQ<d|E6YFe}uI`_sJT1*ySd7dF?t{61}I zZ^!oY8vlRgGO9#I$BQ33RIL>3nD>4~edD35g5yhdk3L)cZEd94#{+A&UY?Pr9A5gr ze(jt83*Si0w$a^x{aD&(?`O$1o+p>NtKO;D8|Y!4QEYm1b=vB;x>oB2?<uU?Ht$rN z3V%1Ra-O#D{<xw$Ya+#%TAF#U+HA?MdMb2KQmbFxI918(XDxTP#Pd(iV$Z_oW%U)G zxqs;~Bl~>G{A>?qz3KD5%$&Ko+~!nWO-NH3cW1rHyd!lX=`9EAUi4>OwLS5xY(=i< z`X{LiMQ=_^T`2TMjCc0D)6bS3tDPP-!PA@3P&K4bsjMwgKEZ!wh8)kvGH-PT$*k6i z`%~tpE=<_GJ!-%FuV;;__d46+bmP*^UaP#ToaDH8^2`4TWj9Sa122@wE^_<6;nt^_ z@*A(e?%1|yWxdU@cQ<d%t$BCxZO&4ixx!CGE@@aTT(Rc3MC^h!FRs0qI`RLqw^L{5 zzB&Cnh3!V(-#W`V+{+xNIWJIux*$Q(`&?<~*>8(EKXpy0slReNnKArln8CZAX)BE$ zY`FUHgoaiRmnQ2XPG<#yMJ|&k&b#Jj=@_;~a^=mK&f_}_&s4?!`%=F?OZ{b@Kt@Hs zao}a!ZR=ZCXQpJubV*#C%B$Gw<}guyN&o*A%f-2`!)F&SIrD9jo{q;6w-l#c&lvB! zzOXfYc9{Lbzf%l<d&2Xq7*pBy#ixDub#J**?_%}DnfJ0)`a8j^Zj&a-2u~2R;W09q zSmiwBTL15@t|`{b<8NBMxiTxEzU_?hg|5Z>L+ss}*KU`2wM>7D%FaK9b;@2WO>;zB z7EYXJ<e=vI&&^Y~lkw#5f<2E*6em>Q2+y7>yWk3csr2G$F4v8<YTTBs-7jIOTC{8H zqRYo}u2;;z_c<-6=E&S5rv$Glw>&DhxsZQW=+d^$EsAqBjP%uZFX#M!wQs`uOSA3j zvvbQHpDCFXcv{c?Y@3bn+;=IShl~GYOrQSfiroYD&j!aU+YXv}JbIdW;D1OBQ|DCP zj-VGh$2Q+|&xoqC(o^a&2n)=6SH1Z{)>ezVk^5XPu;!|0_WlySaKvEeav?t7#FDbt z$4_q*=zo(U&+Izsk5}^@v4Tdkoz9;YF0naN(^0>6L5Rw4vDg=D9#|WFFq|&dIbC^z zyU`Etup7%4YdljaIp24B!o(<xqw=ex>}D{}zqV)McKcZG?3OQ+w3sT6OX+sAN0!wu zPGt8;mzlxiIU{0~!Ry!a52yTl)3-ya<=FMf>sM;X>3=OR_#R?$VCuH4K;g}&S56nc zUE*li*OVJuS-))J;rN<E$r|$86erilx`ww!zY8w@UT{vYO+VMl?ZeH0Yk}W<egB$n zzaQP4QlI(4?x0Dns(R$JX`;+h6A~(K_QwW2*<Kr)yX5QD!$u1@R;0(7czv55mn#_Z z$#g<ku&Y&@VfEof2@QW-1(w~NbM#2W`<B&fyqcpns&8$wx{_SKs3lwTi(B%-{p%-W zdf9&X5%4qOedWScS{f$X-aLCHp)9Bq_)bSPt>x)n$8%ch9Y@*BkDtA8T62=!mP=N~ zLLT;CMfND~iJs_|9pdn3=3WQ?&dnF+Jm$M2@Gi--u&qnHP^0va{)XSlQ!ndn2uSHT zcJTI#WR*4jik#c(w?8kp=Bba9>rM%N<tSNw&Q4k@w!VG!<=?YsB+aPM{rD^<?Q+;6 zHo=1ltC&if90c8VZMBKMoSyTh>)!Ep4Q0mGyGOG&m5Z4EdX+d`V`gha;IX|jjqg_J zu&&^>n3{j@TDyOoI{VFk&Mt=958ToVHZt-#C0LZ$J~cVXD8KP)@x>j5&F4PXpWn^8 z??A=s8>c_|9K63r!}@He)x-cUzs<Eb+$TnaJz?lRX2G{~M%uLsEtXT}8_c&)+2QxG zU2flvoZY8)hr3=&333f>Wp8`i?WMPA^<h1w&Qn(=h269bnAd)d%{IjE*NLCrFOIkH zG{v{ueGT|+@qYCuu_v2fb{sN0^1#sON&4OTEpJVqYOH72doXsl-z?X@+K=UC%P*w; zE7Fc~VHNa@Nt$}fobATbb_*#F=SU6dzV{k0G<Wc&%v*C@v?Z?TYNzz~^X7}JJ2Z2% z{Y9%{*1q%KP?A$EEBx_h+-E<YUf=3{fom6b842_)*>_>v#GjTdyQhd8;61D^lHpzB ztF*eWroMRI29v`6P&?)&j*EB6aW6StC-FP)cf+1#3(wEh{&e8?QjK6q-OSuSQp?vb z7mhu??vcs<rUe-X!t_$s@7#0f+uwjal`*L;T=qNO{Sr8=lp?lh+RTRRHEUwy(h4r+ zedzpj{>{OS$0r)Q`MnO+uN4hfU_F;_qh&Sm_LH8Un|rk+>-&#}R?F70Fz#Y3R+T$g z%j<fxz}J7r;->!g@5@vJ9)?v;|0ALtXk2;k-HfWgd+w)Kb}Bz)NnRFko|$`+-|p`Z zme`(KrhXu;l0TN?RCuFm(aAn_t8XQS=cZ=FcD}ArxD|e5-LChqUR|3%v+we)H(R<z zqaNh&@4wbB9k}`JCl#go?lk9>5$cXyFWhGyd{M<UEot3^+$GlQB|Znqz03Y*!@+!X zTbvsIttYmnDtFkW*H{Xe?)uaAc-8MO((e{a=yhLN7yY$K-<3W7mY+>wjMl}825J)z z^K9}e^>a{qwcbSKG~?~YUq@H0stEmdj+<vwR@w^b>t%@%FF)SYoVQcgv9?}!({e5G zHx}E2`~!7&yjm)`QGZU*55ZkOGG?8h?(_WV7OPJZKhCbHE-abz?)Cb!5>j_2wrHEy zBo)jnN(*M(y{q4_BQQjd>3(9uyNSa2RpB0qg%=oNyj(B+x?;T4{^jxa^G^KyYv{0{ zXQk`P>n~X@_sMPBYM4Lq$+Vh3f2WFG`BX11a6vP&HQDZh@IkqY%wgLu`6q46{^7Mc zskUVizxy_?_41pvl}&leGvu;1Ml*|uE&B6-hhuW__ccC3@2>xR*wq#5bfILyD{uRU zb#wfs>{j<5vzLlVIsI?n=AK4#iT{tTTFU3_jB)?Cnk_Z$mNEODtzjZ_=baZnyJX_F zrJBkI>s`*gd{tb~{Q8S7Ygl~hGPXLFeH(-3OkLq;lgRPnvFawt2fux!<y}0uCK_3Z zAAA1f$)hv7#g)PmJs-ZR(Vjl#z?1!@lOCV`ts7<j?Q)P;$r+`uf2!+dD%^F^Hk@O& z&PcN^tZmc&ncofLCWmp0Tx&5+JUK7^N4U@CkM3(%h+Ge>m(L40JvsQoLfLZ)83#U= z-|GDDx+v#OrXtVp!Y<>Zc4eJK_c_fs*k)VK4Zfv#m@T^SVCl;<Njp#JX}iyR^^EhE z>ZW{t_kX|Qu8HV92w%rm{VK~bPeUkg+W{-RF1ep~KBYCRds<+UcaQh}*)KbuT-Ue0 zdu7(C$6Z#T+b#-v1z6NOP3bQC{brGjmDa}%JbFRwx%NvtjLg3s{3NN)6#t&}ceH7Z zxT(sbWk*jPUK{<1`_BH_-*@|N%(#BGdAI$|ZB~5SB^MX*daybFtef}V_-Ej+Yd_ao zJek2$*PxNF;*g%I6B@jE#gR7$4QBt{V#R+|$oa(jb88#7u53~-`B)Mz>s7z$TFc#} z{S&i<&R2aps&$pu;fRHK*PHcMbi<6cwurD7&A#=6k+-p=f9}V*XAT`KpK|?+cje{N zMQ0{Faxt4zBhy;2(kiNNy4G%4o9h$joEK#*vYIxzxpv8q+*A$ohapFeC+y8CNj2u& zR{T2d>krc}=HJ)0vsfN#FKE3IczB6cV|`8p&sl+Xi+|65O8x9!+~0oV=5$4V(e+05 zd{_AQp3rJdo!{-veniD$%FkPhHHAit)C-IMF#V}LDQ{J`?n3B&Nsb!!>AOASgX@_e zggEJ3+7?@?q$9jf+f;&avguT#RnPaIpXSZn?Q-a8fkcwQ=ioOk-^H&!%nt}t{5kCw zqd{){D#fbzfuC%OzHHqupLgd`-PLI6Yeye0S(m!PsLe#??Lw7hGoPKUl`nq1K<G=8 zSzdx*(97u`wwRs0)9AhHvd#_PRXa0g>niI;SMN`H|8Ix5TH*f>wGV$Q=AAQM+cNe0 zj{^4PnYL+4?eX@3Tb@?<9x8CU@4YGe$re%frenUh`IYKh+nUdA+n6-9jqz%f*<y*x z>b@d&dCBgV-H(4>3y?FN!Eoti>%`UX)Fyn5y|^Z7S&ggP)5PF6wgrOA7w>qfenWnR zPk-<+6_q0<Mz24z-fT>%+Htj8<*i@OvuT<W6|>dnys|ku-z1dHo--*e*i!Y?H6MM? zr9WnzKWU}kcEWy<Q@z4-r&$bv{?GL|;$CYNR<o`vtKHQ4%V3JLj@|}dQN~XbE&nMS zKV|6WkG%gyZr=^gYmT{ZENZ@g;V%EpS)q6#STQ?2``GcDs~;bWmDv3I>aiNHULL<( z)k^MSwqFnZKE|9lzU#Kqde135J)0UU-lUt{d+;jJ&b;uWQ*P){VY%z|$224R5A3+n z?E2^6ZI{<m8C=|-sXW;9Bx>tQY2A`r<!4VgXxAUvGNb8m%Hm@Mg|WRGbYnL-Fyy4U zESYoL&(CCYee*V6yOQ2@x8+MC(kGid+QxPM!mPC)AAWd~ayv=;h8fR#F3x*>^R%`~ z8Tda5tuK*#ydlf|bhLb8*WPQKH4E$C+2^W?DvBQ5;q!Jj@5-2;yBsG>yXU;YWr5}P zHr|k=`**@bC97KYRoT}m&UyDj?ePvz@5BdseRoe!?tjZI7I9E=*0DVcdHx*I*|+rA z>v|`X;KM6tmz%o>u8|D7<<xYOBT}g4s>I5Mr%Qj_2%YIV@7an@t251;-A-M0+wkv_ zW^Vlo>x{!cbY<_JNMz>Gn)df#m9^kP#?_xz^v+;lkGDuacY|r)yx{B4OtSN9yNiB5 zoIdZ@*(#><U0;NKmaR*OD60KBCGmgy#+)4$KjnAwKfLXKi!Z%ZQ)$nYc>P6zzhkDE zB=YZCld(W;;`+^2QLenI?x8o>uN-N1yvn@sgYrpv`}({+MlO#ph-rPbT|8OJKy~w- zPSdAt=l2HY|FYcsTyDbjPvW*M>t-Bj*PFgpeXHpX?%CqcG9pxR*&8dL^)$bH@4lQx zF`{*5X3cr7#a)U$r!xKA(?l0U9@!uCpyg@ywkwiCU%p<v8#X!Wv*=&5wxbhnS9$(u z(Gl6Wai@ij+_R4A`U^G(a@0IK*cU5t@t=y8F8rnOd&`yn&hQ9n{o~xKe_#I6nYz3F zmVa=ZhWpm_hZuSPY3*9yb^Ok411-l#FII7`-qURG`dPyMM6K#r+wSe0;S3K8Ql_=q z<ejLDc3<9ccmDBX$NA<rm)dQJ$#A&Y&dDe5rNeW@$o$)}%sLCjJDm0W#?=bth9?W( z*;HOUp*zoPk;$`$ir>O-uR3tfbx{_0qspzIYj-JHe7ff4@Y~L9Q+6+`S|<M`^X;U@ zU!SK>3T-l6Us}1V$fB~m%&hg|v(=hQmtMUb9FbI;@i2AnvY2hgb6Z(IJEip6uAJZa zw36ZV`wq>U$G>;%J=BrYE7I~Xt-f$sdy}!`Kb6;fl9EDl+1k7RCOp`j5VYaqIoIPW z)pGogEzJu0T=6oH`#4XQ&}R+%qrW(ozUc9a+}&P#T+u98rFE~{m)S4geB#)~U$nKp zri|NgVsGthahcwx(hnOswAR=iv7EkbzqZWF=hri*c-y|T+UO;^ZugOSyoVp}+d2P8 zz45$_OGGs-Kea7f#4p<P=UtlHW}EqpUU$zKzU*9X=lgrBM1WC+NY>X~{H$Jok8|=^ z$j`U_p7B1sAjoX~F|KKyFHSbEx+l&q=+g8@t8Vrc)>XeB@NcqOJ?G-d^+mt`hl#}R zSa#&Up|r*ej<zrc!(RDmTYG0$NJn<`tW3xj6{@ahVlcK)<cR<KW^&_(Wx`7ZdYayv z3D|C0$!=!2xm@I}q{#A>FY=X3o_8G+__~tE(~P(MN!s>zA`0gdt!8r<M0q{fE78bw zbo%FWeD)$!>k_kO3v4-A8p?dF;K1DMT>ty;nRBa`R5LX6SVUf0wD+@+?lJzDdNGm0 z+|o0XxtlX(>o+s2Jhr;Q{lDmKO5B&$)>pGbcFTDRUGn<1^XQeW)2a?ve7cgy(EjRb zaj|{+vXbIB=aXWqjai~*mAHDGNSw&-99S|<T1tAeUE5UuO$D*P?#4w;J+<-Z>#9EM zO+0UY9QV~b-%vi!E#h<E&%AeY!WV=q{hGRdxx*3f1dXl~kIg&kH|j|pG1_u$hpVUR z!$s1M!<p3Qzc{SFux)0EtkI6IYwW_U8oTBxq@A*Q?Uc0d<ooG!G;H*LMH(k2Zdi6b zGk#lj{hm|I{Ht3RFKM+mnkuq-N_S{Y*)D6<*-5=iXKh(|^O?t@AH`{p?#P?3oL=^7 zXVc`#3)#={9K954RNJ9><n79OiDPW9_tt6$obr!PxEj!O_~&NPA{O21Z_MtKzN|T< zb1^q_*@x3*Q!l<XUwAF?VZclqTi({6C-2&qt4?g~I{xw9DeV=Sxz{)Z=ks{)Dp)-! zQ2o)nZM{rKRDS(T=D%4w<v{O0p2$e+l=*Bavg&eg>YD$)cqREb&bG#1rs&|}A9w2+ z-5e&|)cCu&t6)Nkp*#CA@y%9;E=E}F_ENuo;oH~Ezw31GEq3+cZ>e;eH}A61_q)rs zX2*$`n@v5G-c+#Lpz_$m%e$TV=WE8XZ+fPwxvVQbX8kW##%bz_SxTn_Zv8a>6Yp|L zp8dJ}`(-S88^5N+@EV3?{}jA7xoaZd#o4<oH`mu2h6?&$so*)S6>#~cg8Ho$XJvlX zY~1H{dY#S7Cs7{^UMy!mKIxtur?tpK4%HiXCbxfmkgmIN&L0)d--_OfGkssL+qv7> zKh^PS$rdfyg|E+89O*pLd$-T{@ZqQs&7!dLn<R@)nHK7^u4b8CmEUD*erLA!shzJU zxtB?*7+&mOQU7GgEQ@7XQamksY|1NU+?BEk^(byo6s`)$d{MkTyyDXKd<`=JGkdmO zd^6-%)%_KjZ5m_cdpPiUxOl4Cb0Y&g0j2sm7IBwjr%%6K>8Q%h%l~9bg6o}zi$ZT~ z7UT%bm#veUf3q;_#GOwKe=d}2-~AmOGS6tGQkn3k1tNx89hUVqzn9-VfAUDfB$@Bp zbC0_SE@q6a^;MlIH-Bqk;6~nCF7_;4x0??4zumEE^AZEUs+M!lZ!9V`d=L>Zy`$8n z{b!JXLGpTKpPi8tDxQQLQ0)<T%hOq~$JOG|gW1drWpAnP`jM~wW~T_3Y1Jm?N9znj zPOFu_@l3y{l6dO0zhBL@{Cd9aC%7L<AO5^HeOsiJ;D<b2jSZa#G}o;(TT|VT_;^;; z4AmnOqCUnt?n}x!ciEw&oN>l%8TqGGtc#Wzsw*1&^*JfGUS;mw8|xGv-tbVreK4_d z+T1F}PxBrhKK}HFNTtx!4_{|Kjgwzq!F*3~Is0x|lL<c#bN$l(G&w6y^KX#JmHLEU z!zddez1aot(wi(M_NFd1RPH&m-v7of<sB>gH>#;{NtDe0yMF@9$D1LyCoB`G6rW?O zlD$knUVG*J#fkw-RBEfvTu>8Io09wEj6fIP->++#6_4G>yHjqbJ*Dt7pH;;LKDo7V zVY0I}cJ8!^-o~c3ulH5!v{`c<7th}DbFwUFz4f!Tzh8zrEzw>hqPEg7WNY39BldvX zzgrG(3u(OYcG($a*~m#<YEn}Vr6qWA-gNsTSHNd`CMdCH#nYy6w}^^44m;I;-jsNA z(NdO4?_pc?jhC4&?-ulPh*b!$_;oQZ<#}dC;FH#Zey85kPXFI7Kk_|s?WUa%Y?o9? zOy`|+Z904X9;K|fU0;<y<Yr#lz&AB8{mfdwf7e((t|||Go%T5IH@8dA(WB`iuFmIs z)wE{hmfkh_*^~TbcbxpQj@I^_x^8(V!&fB<Pgh@;lyEUwqwiDur*`?n;<xW=Xn&R9 z6P+7;`&WQM)1&6pTmkntMqIOh=uTyLXV#+muy$vu)B8yV;`L6)t=>$Sv8-%{_*wCk zrq>@f-A&Tcy|!a*Uxkdsev20$_wTDcsCu~Rq=#;zYM{D0OV<m=&w`7z+djty$nN;@ z%D>KllV@J5(~^lCZfScaKPWsaWE?)_Vf69qlRP(<zLKyEjXv6VK{&&F9>d&6jU6ZS zrtc`ad`i7sK=ZyHkCPB<z2H}u=a$E&i#tyVmwVzK7Z59z9~eC0ZAP!_DW#N{nz%K* z6{>%Vox1pg+os2Cbx+%Pq#*8_Gi%fT@9t?5)+JF^*LhF08(7<J&C>aP>fxT34s(}X zjlJ%_k7rup{(?76HWCk;uD70)Kdqy@aJzK(;)!~t%qK0kN+`=J>+idEqN-lgNB8NZ zCr#_$?SHM^r(0CMwDofH1LsF!FJrUZBkfz}-gJ4k;_86}{}YAJZmsb<+|3qn>eP#y zf2T;fB|nrew`yC<Z+E*oB;oUay9ZN#SG7G9T2Qt%_xqv%+pVWoEZB2t>*mWzS0;Vf zeYxek_>x^#$6kFst(c?9{bim1H>LY-+6?uV|2iDdX?P<TTrSREuFaBm&+PAC=Yk*V z7cQwPTODZWeDUwtgBPrawk@iPeemv2*U6I`PUkC&>}n5s<C^+Kq2@;Bryp}`7|Met zcT8Q8P*beoT~t52zj1+b3Cmg@&quQk=zenCzwVi(XWfJ&`*yXh{Hiu(CEw%3v{`Fs zHC^B@oLax*$+zWGoVK~7?3fw<=k(JQEuAux6;<KvtC|beOp(8ROy=HSg?_j2z+0!} zN_Y5Hm`s-vyuLf<M%Y!mtKQu)X*2Z{Lo*Fdrnu}i`c!M1>a49_ymgM1cxU>QQ#^Tk zEO$OGv#^&;*%<bbO*eE&;>JamitAsyY%Ld!x$=v()$piy{q^~FS0)!2E)TzS=;h-D zXJbxjGL=0`RX)Go;o6n0-pj?M%lrK9?}(N3E8F|=aLv7sHEV-*#RnJvyERGu(Z2O> zxsCc<T2mXl6zYBz{NgxyHn{8G=Z-a>iha2`QVy`6Es8kG|LW@IS<(S}GY>v9xy3Ad z+d*U|U(nftvfL!OES7EcE){dwTxV`uaXoLn;p^~Om6La!b}8U-?X3Sd;ZecqU5uXI zuWSujZ(5%2d39}16ob9LlG7rmHCK+8X7DJM*epEU{UJ%IO7z$Tmsgp#`@bao%DL#l z<=ktSx+XwLW$Lf%f;#^#x3$~~dF8V{=hfGAl~oQi7hOJXH8bq`#$2bgDbwqfIo^w~ zymQc>-QRb0s_(`Z&b_Cyoz|J`*)sd9YoU$cvFCdlr%6a^S=`)xO6A|A53hf}dz1ZD zYEH}czPHM}X<;9a2(L|?vE69-VUa^wk((yT-`jCbSyS}u{$q`1YE>mC?H2wj49Yon z=JAE)_e>_8`n}9P;(e|`uv_`NIp6BcdW-AV>T~W~_QR%8hsD{tKr7t!+=n}+qP-9Q zo&7w0mg&JuvAxsM=9it$)`(oO)!L=-kz{opv!G@I+cJgd6UOX2Sr2#CT;5f<Ys)i( ze{~5$-ahdHepfzpEfBpZY<)Q5*4}s8srzqamvkpS`PvrnsAo_5+&i1AJa@iOU#IA7 zaI{~Zt$trO<867hgEAs#m8BQ7y`B6bN>ZKg+qcG`vsqhXw|p~^=yd!RtLkf$#rm>n z;x>`!iF!w_2r`%cSXvhtlCkT_F3Z2)Pn3twc#wX{WfuS8#kn)$>$QpwPn)2x|M73d z#`jO;jtZzSJ`#AT{_UA%tJkI6S3Hr^&xxNgwRrjU%3HSm^@Ud@{zUlvnA+B~EdK1` zplj~8Y=7Ul7QfXxR`S0h^GT~DyJyon%^l*bzd7sJ>V;-=rR>h-J$HLfxai&A`-)8; z$X&crC|0<GdA)k4g^c-8(Y@xA4hDoemX^m9zGCxw&NTIYSH|b-Pt(F|it8-p{K{39 zW!{uh`8M0wf9|R8pC{Fe_}^jhJDh#v#H_uiW7j_Xs!<f4z^79<uVUJ?uMu6!kG`|X zMAYTSiJ6909bVi&Mg7ydb1$ljl^vMd&zL;*tGg1a@qLoG^wk5t<{KXsP4K-p^HOrM z?!u{RsyUaF*JN9LyRzqhRlqEL#r>VT=3fy!r_>(y)mcc@+`{QwUu*wV?)qEVn(LgV zz41Fa=}RnM*PDc}D<-C|oZNb69uZfzowM`U_QalRYmQ#J<elw%<8k>~ue06SZqoHB z+OMj;r2K9xehn}=b^G|ihUffs2d?Ma@@UttD4iXsG-2``<>-`2zg`P%{t&NMb3b#V zpJ1X<?CgxhfC8%=-_4W0_qQJ17x!PU{>}Ld-`>QBZ{2#$Z`r%uLX%wu93B>x2?dwL zFX+{)=`vs08vXcPum#iVm$h>*#4d9C#4gQwIQzu^3issF=owC_?TJ5*B}uI9`QiC; z?aJ*YC)gIZa=KOgon3U}$=@qWKSnskv^@3Yk)QlhH1EvYoimO$o}PKQAk2K*tFKAZ z=gw!WpFVZFyhPnM>nR$s3Epq`*0YImT01K4ynf~SA7iG8kLDSzyR*?kuYTS(^JVw! z-_LQ$Smx<mEV3ozhzi%2NiTn&l+^e<rK8`6efkoirOB@>8~v-ETwXb?pgK&-b+Umb zb4J*n`wsgS$@Z~tJe&1WTf(D5!TQHTjvK+<w=8b$Ze3MxwRmdJ+ubMsUj2CY&9z%R zbr~z~7wmt(pXrO%sfB+MKV5I#zpqa2qCrzz;oaYVTi6vO=JHN`m)6L2_FeDB70UzK z4ZC|aJ0AVNBwh2H`(4zFbFx}jzC}Gh*}FA;#ZTqk&x((2-~QEiQB_rFN?ZEtfFdX6 zy!ppGoXxT~D~4^WKFLy_c)#qJ@1AP;1-+*qZT30B=hUYiIMGx(VZN8GxzY=b`(8IC z4k(4@%x~kY=C)3VwCJ4qL!@P!`u_Jld%oYA=w2!|_kZuhl{^pkcC(bezw|w52Tz(> zx!%jQr;EcMxtUmYzv%inPk!~45Kj(?O;=wsB%hnMX}Rt?lf&!Fqh5JwKdU#Is#)1D z_fEN%&#LnB(OEn<ELAT*nW$}eA(r`fjoVZSm%XZcTUXTXu{LJ1IkZ_rqBY3&UsWf^ zeUYG(nwR|Qh4Yr)oBh;c!x~}Ur_+rEqwBBOx%u!<+HhYtwaGT=hLo)Tv!bn*M+4%H z1beXGnJn}@%IyP3K;>)pmlOAf&3s`{A1!O15G9$nWU_p3ng5+dEPF37Fl=;EdwuSV zlnm#`3Cs6h2+B)m@A013V=24w$nqbTZ*GdakYBxUt+0?=a2e;iaDU@3VP<BQ=k@0a zYb6<Wd;U$jEuq@;Yv(i<k+aX9adqr-J^w1t;mCyZE{j|5ROU})nW85v8FGH}SAXAI zjY;*-WV7N@JDy*=w2{mD+ug-WV;;7jtvfHV?CNK6&ACfg#Y_&m=)AUs|Jn<Qb5qyY zw#VJlGRrNsf3@Vz;uYaMlDEZoS@6ES9T&DWQQ?>l@8Ne@GySJ~l<r@0z4=Hwvsi_k zvX|J5eZKoUvl$m=CP^%IHv5q9=9*PM)2cTUW;JYlSz3QBP3|t!ZLLSPrE_I@O;+}9 zoqy-~QTFcRzDruYE-4o3TnIF1uu1kcE!r=oR<`h_z#-Rru@eMNFMn`hy<N3}$)=!( z4>rh$rU@;#RL{EeH7ZnwRgKH~o4NBnzt0vt`nl~k^9?$;-!nVLe&^TA$2|cCm6~e1 z=BBcmS!*mZz2+ELAN!KM^Tn+v8z)AbZ4#WeZ<^D>#|_(*6DFIgPG(y7S4<{}Z{LoG zdp$%a-z-a3@#>mz>&a=!yV73%dJlKxO*vP#NJu{D)L)gRq~({2e@)9}@@^~0|8mPa zz?$>sf8o}tA?8m$D@cFS%&+)-tsvLWzVOY_r6ID_SF3HbRHp2|ad%(+hGm~_9rFmh z-WI<zuOlt9aAQ>>x03ydEN093TWWK{KX@4I+$!fEyvX!-<GR9`9Zh|wiwr7*#RD!T zehJul;r$7fyZ)LUr+@9<R`zS_!`^*|fB5ND2r@rhez<n#&CZHNdYbb3o%gk`+)BQC zx!N%*u<o7L8@q+CcFhUf70zt*bydC8|0z>bw!Lz>aZNo^)aVxbZKgXh7sRe^e4796 z!;IY*9%e39*;5y2vU1{CmP5yu&E4y^<#WgChkyQ9Pg~8lmoI(!{I%;94D-y7&vKg@ z&QiKupeEzKQIyj19b(sY?K8#KCaqm;+vF;AOlE%5iRaJDSMg_9_e>Pym$)-UUOuh; zM{m8|lpR5w61S^$d3!|ackJL7y|d)clJv592Xb%9%`(bVOZ+RtHT$Zi^zUg4o5NoJ z&@~Q-nSA^>-@4369v7pn#M4Fj`|enmvR+{8WS&>-dVO(~!k=m0DH@&O)8{!pWL0k2 zaOzg`gnx<pn<{w@T>HHwVe7PHpV<@Bk2Tcq^x5P3yIx|iQvSUQlUA7urTtjRDc~%U zX*VaxDZj8jdVlQ7hSo^U=Vc3C&2GN%`KrkriCYnO685iqo_Z|#NnrlHmfwf$4(>m; zm+9g`&Y(nR7VG<OV}k=9tGwPV6tQHrbfBQ+$>6^sOj%u=%Xk_#POELu4-NP|D{<yk zWlO=7X*Z;WgAY6lt=V*NO6^JeKV?OKea}6Z$1rDqrlx1)nitRgKg_vO-xQkQQm*tN zMMdvG#g&4j$#Hv97A6K>&Ts2{`?a3o)>b=3uGBpA`&`V7C--evU^X)|n7nbjFtdq~ z3HYk{+~7)^DQ~}TOPyXj_lYOZrn3{?v}_bfp8lqHCi~$TiDIv#6;EfMo~FZ@IZ@~4 zbR|#E6x~frPJ{(+Thsb}#rEy@Z?8Z9`FQdD=T^_Hp2vK*oYbz9`{b(uOZkP42KCd2 zMH8eNEU#Uk>$J)7;n^o^9sN&n8ga1)Fp7$-Ua~}YS`Tym{})cIyd4T%J*p1`HH@wv zzt+v95a{B-$#x)7%D}XDvB4|JWq&SDbhyHx(-{%(#F4-`$x(@~d$|(_)2v6_k4~D2 z*xSp99f@dGVQTGQ^OR~}-+IVCosEa1?x4$><>HbPwr$=ved5%qzf&7muU^gk?x4LO z1LLF(^C}p;Y*`vC>YMJznQ65ecCdF|Ib>M9Z<?HjGtaa=*Uc2(x~l!o)X@4>xxitS zZ{w4N4eTeojIJc{ew1KtdN0S=S?X`kGL2)=%3fCOf1b|rHi`oBzuZqScOS3G=Xd@X zyybB6U(E-cN9-9xgkS5=R`*~FN$@f#ogu~Wi#b8ymUp54*4z#9Kk8*$-p>rIICC?= zzDfQ;<DrQMHb?MJ_?677x{%4C!DmTBy7Pbi5BH_DW%v>{WEef*s|uR`MBMr+Pt~6t z%7H0LW*h}gng<dJ7`A=?TV1r!POq)uIP3o+bN8Q34U3L?GB26A@6G&Q|E~wf&v#fl zwSDy}#!p^Z?u-_5ZY|%{_38bZ`v0#!26w*?^A`CwKPqv*hW`Uwj)q_T(^f?N%h6^~ znY3avmq)#PuH=LLf1a@ziSaUB+JEeX<T9qkega?F|39wy%l`lIgun9+cQhTY4R`z1 zuEG#1ER?|ZW@Xc2y>s)7BEJ0ZcKVrAc(A_X_uY$fe>MvIzwnpuf5P>{)sGw;<ko$u zKir`znb_>mqdKkU+b=_F`=`fh;sY*BayayEt%a!z>p$tV*R8I<A2<qi{?fRwDA4~? zccr47?}3Dm^BQ<(S}oF0dKQ0Ju4kD*XUN=r`$bH@J-^HBtt-gV>|pZxg977P$(ON` zH+KZCW9OVQ|6N#~ZQAy2-h$SrW_2u{8?vA}MX&xzFpFhXZm8~GtwWnGdoMrJDd*`g zJ(tJOCxrJ);Pw2Vghvm1A1yTQ6rCBq;*!zzg!q(c?_!&_b}doiNPSXkz>#MhX%VvL znZnBC3rCZMeIMBC?|NwQ``-N~!J-X6sx-Tg{&tisZCu-NUQBIAahOz({(M`91ACN{ zjBfauUH_I_?=`n1W%b<n=eoI%ER79*M9g=7`sZ{;a#+#RMb<|adW1f94BvcdTKMFb zAKAC?Kg~P#)cfo@4ZHN)lJ#XzRIL{WM0LH8_+6*Ca9)9^as1gt6JwR?1rG{?=YKIS z+p1V;`)8)*_uY+;3iF-1iazsm2cDVHbNqg9-WB`sS2b5nTt3uCd@S+os5uq>u%*)S zjfX+Qh48b+9nx`^|KF;=?zG13;fzYrs+o7WmY+-cd+fOHt@xBLVf#Xi^@YBCJ5|QI zt(i&r$%b==k9Mup6j<y1yQU`TsAZ0;>y2Ifw^A=l)UojDY{<;_et4vL^X#Ie>D!a~ z+yiczlq46YT>09isMfP{ZoRs*@%PYsegX0Q%^PNBWZS)dpBVHdy879IsNm`IkF%6q zHTjXOeS6au<x3*wSx3$JtmErG#68-&>!fMYk`+}C+jW#o>^?oxSt~PdseWLauLft( z>4TdNZ7ivNy4KUbu=CQopLc&e-CUe5b$_ALQ#%g3t*bUptzg`@m&g6x9ak5&`r;+> z3a7>Q%I;d5ym@x?8MX=2UpQI5V&+}Gg`M-==XbJ+VmwRrgm<SO&b(FRvu6E={r(}I z$py|kxfiKy-BywmJ@5D|F7<C_C+sA}zud@CF3&1v-zpkb>Y8V;bfMhV&xMw5ihAn4 zGu}*@T$E_NW@207uKHN+lb>gGpW=voJa<R^A-=Wz)5A2XC!RRJG`Da<{Wk`GS7zt0 zubE1xrM$_~J-E<MuXNhv)v8k#iZ80kDUAMFEW2s@A0gqF43AZF?|QkOx={NqDZu&B z=g?Mt_0Q?A4;^xuzUdf?ck3nAOztLT840Hxi!~`BQFHvJX-C|1RNF74_DSt5i`p)y zBIU<9zv_EUZ{#g4f6?Y@vp;K+q4&Qc|C4Xaau{9bJoDg6UwGwl{^6MgUy@E$%~3p( z`03f?u$Q0SvIehzCy+8}^3sc2AD8D|+LU{K@|J4;nadXa;5hi}>fE1mdOAc6zhC>7 zlk#rE`}-|Rt8Y!+x~2Qfn=r<SlQ?eW+%>(p@Z|K*&yU}|-q%qdyQxUmp2?hL?*CVQ zNo5(AHe6n0AX#3XtCv0HG0U54xe2=8U%&tU^y1n`<2gdcvch|Pekp{>bY~>yR)v52 z_b;O8BkS!A!nP^PdJ5U6>G@9N`uc04&E#*K=XNbU+pqY3cdO1b{__co8K1qX`N<`H ze@*T4kn<e21s$jDZR}ICX4KzGFrWP_S7Soiw!LR>$d^xEW@nuE_RxL5*x+ZLyEnyF zzF#A<?#OP(2hTMwU-md>S&>-h!T9!a<V3H(vsC6SUwK!k_WfC*W8vke+}3%AwM{R! zUzt>we5zhwIZ;I~ZRYibmkZ9Mdb7=a$}3$HJKy8A^yfuP=eFEZco=qL@t5lY+4X@- zrZ!|xd@5tO>lcSza-m1Ujm(x@i|>WA4mE!AY5vf?Wed-Z7hewT@T^}sXZiE3N#2uK zjx3yEW!>ZbNIm>>ZTQ>1x(z}FvtB+C^}3J|y`-IATw!O~D|V-fvR%(CK4r9tem5`O zcJkT%#-i>WQ`c;{dc6F@M8zeVwF{#wtIY3isaMkbt~rH|(Pg7>^P$q~f@NzKol;%A zI%CVlii5gge8yX^9Nyk}YS+)5D~|}-ga?P@+zB~#B&u^>h16sBt8LqV9NEciant;K znq8l7_3QhWD}rWPq!u)OTIu6{w0MF+EX&&+7SUBV3NxoJ)>svv^RVRD>*d_b(l7os zG(G2&<F9I2|KD$;+*Hk7O*taG{xcQUtjWqZ+c-fcT-2QDu)(iG3y)vgx=(Ia@U*M# zvTqAN>R$45wwhm8UGnzQ=hL>CUz^;tv_3z-FZsND(>go*cf~PBUnPFNwtZ$%xOBZs zyWYQ;su1nji#PnO`E$(Se$|er|F%cYacs^sJD=XiyX14>_S%E>YdbFP-@vt#=k(HQ zM+=+Ba<v!!<h?f8bEt;-s?%qW*LzhKbG^Fa#H6NF{9EGw*0~QvdaM3-Y-3l-^$fc6 zZtV}_mux{Fl1{GA?TDDcD)y5}u}4kcs4&m&W5)vP8?`H{Z#<XKJREiZ@sF1_*IW7y z<ljEaG|SOfR^e3cLDRpF)_T^*+WnjQ;qboY%>MW5c6zV=lTd$6Q)upXr{t+W{`ek9 z`mp10rti+pI`3k`%63f(XLOvuUe_S<=^S6f*6poXIrk);SIFEs8niBA#k(M(l@r** zJB4;-eg1W9Ql#wRb#+^+Uz94FH5~cG%dR|MxHD1uVOQ+c)eGYp*0ZjYytMA;Nwa$Y zrI&nqZD(wn*s(8Y#)>V8n~XQ9)?^27zkbuI{e-}iNge;ryuEI=`QMqQIXt<hX<u}B z((ZBPSX`2Mm*?kSUTT?FwWex=k;R#u@D*=!!uAMs7A~vUUdXvBaPGahzqz+U9+o}d z*XR-H|K8HNaS!YF=<CIg&Uqd)U1hi~>q%f(Mg7e;k?zg2`hQ8e-v4o+<{``eT;+-8 zQJ1vl_h0?Kk0n-dx80katwG+cACB#Pu(RUrlBW`#(}iz(z4bVIYG?SKb!9WV5A;<2 zk*@kZ**R;%@AaQ$(@xJ2zs^#8>XD_Aaju5h?U&)dcTaz{WnYZMXX`S(KR2g;7TR82 z_WIdo|8#ZR>Uv}U$Tfei`D(fuPu=l)b=0zX)34^A$bKyMSiik*kHw5l9TgdG96bFy zp7XEysl9W4afI>#3(0d)myM5B8~!Xd-oEtb$yv3@ziUryIcpr<75Iw1M2hX*wXesy z)?agrtqs|`{_}}fVV5rJFne8leUDW+u>V3>o<Z5(uK$xyEuQhWs{WY&vQ4)yA6ugN z?|Sq9zBBx%j}~p5GqXc<g2<eu!8<aO_6e<8_eiY4(va__@11=I%!~^TsvWLdo$@E* z)klZFUtTOo<~?ox<Do(I-?zuM@UmKZg_T7Y9}VDMd}U34Y}A=OYR2{3x_3NjeZW1# zdGDvx4eM{ezRmhGV@J#Pi3xKpKh|?Nyx?Pc9In0l!;*E6m-QF!`pj|7x<%afR`Qeo zt4<s>%nIuNVex5c&h^J<x4A8Iy~^G(eeLP(e|;y0{ya7*`-iuy`KsAz@4V0YY;sfL zbzM9)#y;eW@RzvN`ImE@ww}A=Z(!vZw0Y@S$u%pBOLpq@IZlv^<lOgUeHzc}fH$vX z^6NW`uj&-o*<Ji2P(FG2w{;4Q*3s(e8@jkJto-??toyG7xAE<l>P_qm18NT3<iFQ+ zZrST|S^d#J_HFzTz23Rl)nv-=Jm1VTJucP^?m2gyp3i96tTk~xf1j=1qEi0fOLmzB z-3n8x(CSb#dGvSX%m$Xqf5+RaV$WvH=%`s`$hzoBy?ddIyr-3OD*w-Qdp3UL=8ZRB zxn*nGa~9R#i)&;={7P8+pUl5|d?V-1<Fl`<FZ?&@TlV+;tL3-tKWs5$n@i0sl}poH zP8xS9-qH`Tu?ydH`uoL$)q&6M@piuc$|HY7WMAk$!Fkg+)E``6I%(<AsVD!ZuAIxB zmEVw2aEkwq(bQGX>UUH>iRH;peE;Bp@+ax`b+w!)C-ijf%;nyiso|D%QmE>Aac1MR zyV|=KaWCZj_>gDLli!vTzviv~ebrt5cKEWbGt`-S{o**=<@N>t3sD!mZmDMXyu$B} z*%`e<W}eg3_B~9LeIl5uZ0K6CM)OQ>@-mD0{vWR-Z1m(?wBy^_Bk9fc^U@kSl%nqK zV~Uu1S~uqY?LFOVBdmHnXXqa~ks4trSM_~L#@(yS_N9bBJ~e|!sPLlGJm;Se5BYKQ z8M~UE+THhMX7$F!r_Fxey{`9jX;s_Jjn_hrZ11Io{JZzMUvbg&UDh-In!T)9^+=?$ zd(uqL@)_q#Vlz8KQg@#F_v-Up*2@j`nNufxy7KUrw5-hhu=~r|rN3=)X<5H5K1h&D zIIO(D!er)K+XL$MLhp??H^|r|vd*+9y}m`ossFIjs-%P6S7roMXND@Q-Qpv0I_%*E zW5Zc<VuWP6ugskt<ri}-{b%YA_0ql>CoXx!hg;NyT&z5kdveC&p4$(vwZ8lvdwSFK zqf_eVEI50$ea+T$o1<CvSdVY!^!d7bHp`}C(Yy&6IVv7LMd3@#mPVd4;4oY|Wn+=- zE|E9IXXo#KcQ;8f{pgjA4a-#@OZIM#S-jqgdsTS+%AUTAD@;`^lEwX2sfDsHpNBtd zHf9%k!jtE@bbZf>8_VxcpSynAnWWyeTGfo<e93YtlJ&Z`tU{#p+zPVp|6G+dQz+!X zzS&EqIpYteSgMu3IW6`ezVp4&=8gp3j*gP<_Uk%de!3mcY*OAgWs~ae1ON79pN==a zK6%<go7fMvthPLf(VFk?>^owqR#PnS=5_0eEVZ6Xr~S(=RBfBqCm6o&PQsd*8gfY$ z+ml5PS0+4YUYN0|ezA{z?{&ZTcU;Tm+NS)S+0%Smch>ap&C%1XyxJFwdD+gNr*+RL zr^fh~rct@)&B>Af1V6mlDet1zTA!)z-TJ!X*30~xw{~*yrA&M$IZ<3?y;PUq&!D~Q zglj8H+s&rm*%WlBX^r4a=c&=ZCI-w1=QMXpYg)Tj%WcVwyKbhutt;!F9Q^3;dY@xy z-n_TJGtU2N_^onp?!47Ej{ot^UC7t)<Z7qjhg{wGA3Ce!rU|4>smuEzEN$ZLUlH9F z#}|+xx<63NUN-Mr!^}DHEiKQs-Pw`6P{(lQpCj+m944OIb?C~wSJO|5iI#ZYo360_ z`@Y<TZ)P()Pb!>gvQz(DzS73ZzU2C8EB{<ywQBEjF*6xuweUyAnckMRh1Y(s-I@D^ zby@2^Hz)NoF^8ATY7AGKX`T}PB1y}6&vFlI*}(O3=OX>Ojy&IL@#cY+$mM-9;(l|l z^4`6<!|La^vmI|;=N5{qfBtB<&$sbE<3`n)X;?;N%#9QbCfA*6VK+B4HZe3XpUin$ z8qU@}-7H~dpzoGhR9vE9YG4XIEl0t~!o(araC0>(viP=zP~G?S2a@*$tL06&Gs`P9 zr(gZ#lT{WcW%TSX80i)(cXoNG&iwiHw`oPklm`)$eL~B;7do0WxXH(x&q`S$;$xtx zYJ5dwTEOC&Ay=f-WVcS!bX=Q!%D;Q&r_Vym{_dHQsm_<tyRee$PLIp#8J;3hXV)mr zYl~!`cgm<<T_@`JoWhLcXOkpy4<*F}E!8P|*?5KN(Gs7mlS0nAN4$fkJ(|Br?`~5s zqqpXP_~@WUw~m#nTsx$?<vJhhR7jn8e85qP=lCqO<l`2{<eRk>)5InRug=iSOUhu; zoZ92Ku}M?*^0Ez$jfpDT0@Xs<FG($n>DsGvX6gm4oHc8g*3WK{oN1Bo``Gu%2@?~R z>WIhYp$2|Rl44dfn;OEpS;AT;E~wR!6cNz5cIN1k1<j(uj(SBp+h$c9)wyUGQpTyH z(#a$&`9}4i>DIX5PHAcRKR=Z1_fBZq^MBU=Z@=Xu1T>v>VxJ^@Ia+15yXMD-ca<AE zWkU9q&kLUDJ^A<ZNWuD}A5QN5Tq1Pzq}-n=-9mfW?K2mt+-sg65V-2yb9Ql8O_{>? zdn|fcYO0^x=*ozg>X>PD?N4#gH54r9>Fq8_`aWZYZ%W9n<1R~;glF5Tc?m}DWOr9k zTqIKP|H$uz8#9kvN_VEr?+kd>&EWk&B1L=kWsh3U8+UCa-MJQ)-?v#@?>a^0`{!Uk zw_81bYQprgvL?8v8vpkRs>;a|JiBqZUCoL3wWm&2#>IaKU!MNQ_utMu%RN7fXMPU9 zY4TkC!BqWMTr*cEezjVE>TA}da64w9r<HZFDaW5a=bn`iEWPrE;>S}Op85w<TAxm- z&3Lu==%O!se3TCyWL1s7^Xty-Erwg`r|%W1<Ft>Dzj~!QOy{0)UCg?5pQqmUkNI@` z52yXk3BJ!u?N;hfah&A%YMYp2mrZu63Io^cM<+CEPs$q>*gv<Qp6^w6O3r4V=4q+j zPbS*b{3u9Z++SW{t>US6`>jIp5|$ua1&7X{Wtl035*nv`m3G=lbe@<0`bNDpP*35+ z?fUEfFRBWnub+N(e~y25)wEdG$^F~iL-+lfv3}9(Ir__gz6##B;-2`QvXkLA)$Pu& zvWhQMEjaaP!;{TM>#udcoM<=cBFik9n!Q>D+#w#-p#^!aN~QN5MNLCk1sfJ`=f7yu zr7QbNO{mIRmG9ZsiHo+nx$NBieCY|<6ZxIJmm=Dk>R0j4Ey($Mx4~;W^Qj~8(g9)L z7*lUG80iUk{8m1oxg=&)YZQxxazn#=28O?DBg_hA0&{O>CQV{dJ@K8xdvj~*<eUvX zpN_l~m}dQ<HRuONdw}k=_(Km{yD|^gKYAWhlm5PL*Vc9UFO_ym%?dizZ<1^7C*q>N zc~NX>Wr5(~)xGs*yrw()1>XGrm-Ix0Gt+ZY{#3T}Ec=$G&pfs%MR?Z%>8VVS6RWP2 ziQRqv>Upz!edX%QdL;`Ne4hUP@yvd?>J|4NbgnR&e=5yh_=?-Ui?hDjeNC@-fBP-Z z!gTkyO`WkVKdNs@iuVS4|K|I8Ghu1Gs#K(v{)MGm6Yt*N|NXVV&;9iuyKi?WX8*J0 zJid9>3MD;fzxeOcMfVaydIYq}3M}I8uD$u<+QNW4ovu+Yk30DP`4y{ER=M(E;)%R3 z(^njxw&Z1wagTmht<AP%UUS}41yiSIOH6z;f5V&q#@~)fIOhj1zff5|D|~Y3#x<v> zzTbD^nPvUwPgmvB-`81G*8STp@~1v$ny+@+pAUvtz1&ya=?nUQ%X89J-BW+E9(k*3 z|M1*aGe`XLZ7KhbS;Ey)mXlUK^naBT<|C)OY_kl@;q$L+{`E;7tj`XY(EWKbciW-L zUk&@8{43F4_5JgjeNV$JmVcggzWeAdt1pM<h(1uxy>l)3d*;_iZ{EIq{8&Ct<n!v% z(s}i|^JHbGZ+_iSB_w)(qL^V{b)(h6CDMPVNWF018)vWjcw*h6tA0{9SEp~iwc>k+ z{O90*!uF5te|Npo{NHN-`250e+W%&GEqbjK|1>o4WBH%(f9&Tgt_83A(c*tf(rdY= z<^1$Nv!36{Klu4*Y1rLQ(sjWfW=qa5y5jRWr?A#^^^bbp{eO!qXX{rS{D1iVXUX}W zS>x9{5C6GJYZ-Ukr%m@4#w@t^$a_^o`cL1xch>$9^Zv19&olXJl}}f17hPX*_Vw-1 zd7pm;pS)gkcXOnEfO**DqN$(z{|Ns-^Z!Zx$Nir|Ek7mfTFyRypH+QfnbnsEuWNSk zRb4os+^Ncc>9)z<j|*h#D+Bs$Ry51`ygAmm!qA=1Msnwd!Ux^=TJwM0);0gP@9Bvg zzU;6M{4rHieeZ=Ef4X;7Yxa|SZ~m<_w7$FV{Ofr=ztbMbX*`j?c5@A@%SS`?kUI}F zGkAJmYMoy(>0aXro%O5O)L8{K+B=<CA{#VqbLrN`)9t2m|2M8Y?mP8-x7)9Jt^Xal zs~;KX=X~((C@S)I*;`Zf>CerNW{Wsj9Ya)GwEpW^|BMQeP26xaROr}M{{t7T?^S*J zoHFg~!@Zg|Mvp}nr)>M`5xIBi8~<+3J6mRay8P%FTUzvk&hJj9l8o%B$G4OpQDZfb z{eJHCLQhVsCuu3Kk8S1s5cOb-UH%-8x{vh^iuz{%zTEii@MYh(xcm>V1g|wNY;HXs z&-{>YvFxN7n;Ru+ta_ZLt*{ditkdzVW$AOu6e*1jIJld6$wreldySWq{7*=3Un~># zNwu~s)A(T(!x_6tFSCy;%zA0;D!o8s%~3V)1<TnRJM%Vqiu*`z?{rwU<`&Dbr((B$ ztLH89sIQw7x>G%W?%TyXKFoLg!<@HqRTh)Vqz9YV?ClNymt7cp|B|(UaL4-HWqV%V zxqItY=i0Sb)3PsZxqo|q&P&I4_NU+IpNVxpvCSaMKk?0Wj?YWqY}TD{Q;4JRj<-r+ z^%tR+zf~5MCyPE-e=7C!<fr(q*RKxgJ1O4Zb3QAscJsGZ+4}7Gd0RLZ?}?1HvCvg_ ze_pz675_|m+5NY_%D=by%2^~U_~*03eew2x(T^IOvbRVCU0L{l-HwF~58AR#e!X0f z&lfm}_m|ir-ty9R9ofF)FZh@GTrh90t9oHyQ*~&~s&v*%=aQskD+9|<3aqc)Y^UUW zO68`i^No-<lN2|Lq)mTU&-a)8e&4+%IUSd7Sh=)!PUYiGXysbhz;vpOZ9!AfLPiZk zg9`}^Su0db7;HnNq#BG%0_-c6Iv=cHcz03Dz+uP7te8*fNB68ao^W@bwcFPU0ktcN z!df!|+I?1VFe?flYBEZ3ln7|!@i5@H*`FX_B)>-7g}rCF)3N5aSJu51sbA=MT+zxW zF(!jS+oyolCvnmRhMdGp7Z`dHT{9T2Z7?!nD88{kYD4?gg^UtMW?f*=Ny<%Vu#pOC zK9J}vrdV)ef-8rN*$FPOjf&kG5l32e79|LZZ|Z1rjX9yjC02+K+%D>F{cz*vC+7-+ zM3}9XEM=1y-=wm|yk7C`!abat{C9ml%2(t$t#U3Fz9iE%J60out1l&-(fLbBxZLaD z%^ManTK!{+ylr-T0nfUHTf|N%USpralOp(9*^BK{$5%yF=9x!+z0q{KeL+uY3wN%P z)9fFcb+)jl8fr2ze_Z&#-)}eb$%X&d`|oBhaXTIR+$#T%!>i)BgAVWNi{l(clU%vj z{Cu8^^30iWPW#5(8QxQ(ReWpGHGW=r@vN8mgs@^^68o7w>Q@>Zn92kna;ij3_ga0Y zKIQlH_LpKOle4<rzINSSR4M*ichU8_*~*#s=AN>hc;}YOGq?YKn;)(TE03S(b-gYo zH@G>6+vDbxhKHMLr;BH0{K|N}E#AX$Zpw;Hr!%8@w$HEFd-3o8Ba7z#x$*gv)${z- zf1XNhy`i-J$LZ948FtZ|-l-n0XSB?T|B0;)ZajJJRoQxTlUV)W%&JrcLvs`T@MuE? zBL%}){h<8(5(PtZLj?ncAbrogw0s3ab0Y}HCECWs%*4>t+}YXH%+=7@*}&Pw(bd$| z+|kg|)X2ci$=TUXfv}QTNVA?TL&4b8QUTnq7rl70%*RpY_{UY*Vn^2SDjK?}Ira1^ zbQnI<eD;!Y&D;9?gtxVC<|ZG!=WNmLuWR?c{#V)ESFe8SF8%Y`EBw`q3EAP1hn_~U z-G07QC%H1*D0iJf|4i-3qgiYbhoi0;o~Sb0Fwr+BjXV0LTmRcP3F^BglFX|m(pvVu zNw#OVI8m?YW_d>9v5&z?5qAqO>wN3ig=rQCJ^c!28P8dI-tt^=W2D}%`QJRMzfHP1 z@BNNbrq6bs<IOATRzGvK@#wdEdByFl?~3|=+dNS0uQ($*Z}SQ6{g>~Zy?pEUm2VX% zwc|dwZQt|QR({P^wW^~#7e#LA3d>v@rQW+J(4@=lqK1^~;`$5`IB%(GRam|LmcL&+ z?Jla%S`xl|-`3wzuB$UdWfupUblFL+{5wClH}0Z-mCNP~v9m^D&+WIrKmPjo{#?H+ z>o4c}U3(vY>xuzb!`elmTfFxFo2B{neE%o;mG|A>VWx%RlEk8t3W1{3G%iz1GXqmD KRaIAiH!c9kU8RBm delta 35447 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 M#HFh0>hHz{0PjsT!T<mO diff --git a/20200123/hp-musterloesung-20200123.tex b/20200123/hp-musterloesung-20200123.tex index 9cc611b..61fdcbb 100644 --- a/20200123/hp-musterloesung-20200123.tex +++ b/20200123/hp-musterloesung-20200123.tex @@ -349,7 +349,9 @@ \medskip - Die \textbf{Hinweise} auf der nächsten Seite beschreiben + Die \textbf{Hinweise} auf der nächsten Seite\footnote{Auf dem Übungszettel + befanden sich die Hinweise auf der nächsten Seite. In dieser Musterlösung + befinden sie sich direkt darunter.} beschreiben einen möglichen Weg, die Aufgabe zu lösen.\\ Es seht Ihnen frei, die Aufgabe auch auf andere Weise zu lösen. @@ -370,9 +372,9 @@ Damit können Sie sich gleichzeitig von der Bedingung lösen, daß die Länge des Arrays ein Vielfaches von 8 sein muß. \item - Gehen Sie nun von einem statichen zu einem dynamischen Array über, + Gehen Sie nun von einem statischen zu einem dynamischen Array über, und implementieren sie die Funktionen \lstinline{bit_array_init()}, - \lstinline{bit_array_done()} und \lstinline{bit_array_reseize()}. + \lstinline{bit_array_done()} und \lstinline{bit_array_resize()}. \end{itemize} \points{14} @@ -384,10 +386,102 @@ \solution - (wird nachgereicht) + Die hier vorgestellte Lösung folgt den Hinweisen. + \begin{itemize} + \item + \textbf{Setzen Sie zunächst voraus, daß das Array die konstante Länge 8 hat, + und schreiben Sie zunächst nur die Funktionen + \lstinline{bit_array_set()}, \lstinline{bit_array_flip()} und + \lstinline{bit_array_get()}.} + + Siehe: \gitfile{hp}{20200123}{loesung-3-1.c} + + Wir speichern in jedem der acht Bit einer \lstinline{uint8_t}-Variablen + jeweils eine Zahl, die 0 oder 1 sein kann. + Dies geschieht durch Setzen bzw.\ Löschen bzw.\ Umklappen einzelner Bits + in der Variablen. + + Das Programm enthält zusätzlich eine Funktion \lstinline{output()}, + mit der man sich den Inhalt des Arrays anzeigen lassen kann, + sowie ein Hauptprogramm \lstinline{main()}, um die Funktionen zu testen. + + \item + \textbf{Verallgemeinern Sie nun auf eine konstante Länge, + bei der es sich um ein Vielfaches von 8 handelt.} + + Siehe: \gitfile{hp}{20200123}{loesung-3-2.c} + + In diesem Programm setzen wir die Länge auf konstant \lstinline{LENGTH} Bits, + wobei es sich um eine Präprozessor-Konstante mit dem Wert 32 handelt. + + Um \lstinline{LENGTH} Bits zu speichern, benötigen wir ein Array + der Länge \lstinline{LENGTH / 8} Bytes. + + Um auf ein einzelnes Bit zuzugreifen, müssen wir zunächst ermitteln, + in welchem der Bytes sich befindet. Außerdem interessieren wir uns + für die Nummer des Bits innerhalb des Bytes. + Den Array-Index des Bytes erhalten wir, indem wir den Index des Bits + durch 8 dividieren. Der bei dieser Division verbleibende Rest ist die + Nummer des Bits innerhalb des Bytes. + + Diese Rechnungen führen wir in den drei Funktionen + \lstinline{bit_array_set()}, \lstinline{bit_array_flip()} und + \lstinline{bit_array_get()} durch. + (Diese ist eine eher unelegante Code-Verdopplung -- hier sogar eine Verdreifachung. + Für den Produktiveinsatz lohnt es sich, darüber nachzudenken, + wie man diese vermeiden kann, ohne gleichzeitig an Effizienz einzubüßen. + Hierfür käme z.\,B.\ ein Präprozessor-Makro in Frage. + Für die Lösung der Übungsaufgabe wird dies hingegen nicht verlangt.) + + \item + \textbf{Implementieren Sie nun die Überprüfung auf unsinnige Parameterwerte. + Damit können Sie sich gleichzeitig von der Bedingung lösen, + daß die Länge des Arrays ein Vielfaches von 8 sein muß.} + + Siehe: \gitfile{hp}{20200123}{loesung-3-3.c} + + Um weitere Code-Verdopplungen zu vermeiden, + führen wir eine Funktion \lstinline{check_index()} ein, + die alle Prüfungen durchführt. + + Wenn die Länge des Arrays kein Vielfaches von 8 ist, + wird das letzte Byte nicht vollständig genutzt. + Die einzige Schwierigkeit besteht darin, die korrekte Anzahl von Bytes + zu ermitteln, nämlich die Länge dividiert durch 8, aber nicht ab-, sondern + aufgerundet. Am elegantesten geht dies durch vorherige Addition von 7: + \lstinline{#define BYTES ((LENGTH + 7) / 8)}. + Es ist aber auch zulässig, die Anzahl der Bytes mit Hilfe einer + \lstinline{if}-Anweisung zu ermitteln: Länge durch 8 teilen und abrunden; + falls die Division nicht glatt aufging, um 1 erhöhen. + + \item + \textbf{Gehen Sie nun von einem statischen zu einem dynamischen Array über, + und implementieren sie die Funktionen \lstinline{bit_array_init()}, + \lstinline{bit_array_done()} und \lstinline{bit_array_resize()}.} + + Siehe: \gitfile{hp}{20200123}{loesung-3-4.c}. + Damit ist die Aufgabe gelöst. + + Aus den Präprozessor-Konstanten \lstinline{LENGTH} und \lstinline{BYTES} + werden nun globale \lstinline{int}-Variable. + Die Funktion \lstinline{bit_array_init()} berechnet die korrekten Werte + für diese Variablen und legt das Array mittels \lstinline{malloc()} dynamisch + an. Eine Größenänderung des Arrays erfolgt mittels \lstinline{realloc()}, + das Freigeben mittels \lstinline{free()}. + + Das Programm setzt Variable, die aktuell nicht verwendet werden, + auf den Wert \lstinline{0} bzw.\ \lstinline{NULL}. + Dies ermöglicht es der Funktion \lstinline{check_index()}, + auch zu prüfen, ob das Array vorher korrekt mit \lstinline{bit_array_init()} + erzeugt wurde -- oder ob es vielleicht schon wieder mit + \lstinline{bit_array_done()} freigegeben wurde. + + \end{itemize} + + \bigskip \begin{flushright} - \textit{Viel Erfolg -- auch in der Klausur!} + \textit{Viel Erfolg in der Klausur!} \end{flushright} \end{document} diff --git a/20200123/hp-uebung-20200123.pdf b/20200123/hp-uebung-20200123.pdf index 58efe2878f69459f4b76787c574c9257212cc9ba..737653183b7785090211a763d50b818d355a2293 100644 GIT binary patch delta 1125 zcmbRHgL&=`<_-Q*_1^i9%>?#64_{%<b)x8}*w*cOyFBCDU6bD|)e|dnIqi~Sbz!mN zr`OZ31oS<T=#Bl6(7oi@(fqW1f}X2dRJMn!*xBo^v%42C_lZTgPiM+TzZLb4fA*)% z$efm9c{Jo@%0}ORZu_IYPYG)3$vwOL%lxD7tDWWZcUYyVo;OI=Iyt5Oh>z!nO)4hV z0rT1&3f3*QQ<Yq1HD7v%@m+5(RU^H>2aNjOt!X^!{eD_Z$8X=;t;~)8d}q4sRyz{& zCD%)I7u(5A5k>PF10uI<__34m<donqGEdzu^J^++JioQBAlBxW@sFaZjH$f+z87N; zuPRqPvGx1xV>d)yw2x&RP23{0)1=<L*4V+B|GmEDGm&-j$(LR%E9akk*D}AdL3lGu zUF4;ZlO?~ezg>OQC&}-}nMbF}?sxxv%31aA-mE-Nm5=sT-dF2?ODuJZ?|D9B)6Vs; zjgwNH5|-Yu-l)g<@Y_eGheci+PCb9vrZZ2@;5m!%U%x$9T{k@4dBEvh?ZeGgld4^7 zv+Di#X`Wd5ZF@*{P=ocg($sCotoHvsz)}>jsyz8DpQ)Wp+CJ6m1rkRRzfQPRb1m&= z_Uu5$yR#Qg-KY@97uVD(HgE0T`v+Ftf0ujs(QMPNR;iX+@5~kEvDOLPlg%+Xk;@f6 zYnL^@_o<Bm%bhwotzC*2{lEQf<2R07=VqxDw0&5?SO0<Ylub?Db^hfd9SS-&(>t#+ zxc14-Ry}`YSGnjOX$QXUdt0wrM!U{kulYT|;oP=m#=Hi*%@3KrV%uV9@qg)!TYOXG zrp0JJ_u+Yv$CJ?TS0i7rOI5I7^D47Az7@C2wpmSTu644XeQ8(L4%Zvk4i;wLDLwOh z-oCHevVK1;rnu?UcOH0E`DX8oZ=16h-ObK%{>%0}{c8Iqxi%g9y$&8_3{TD+T6^<= z$;9O3m7d8bExtWcGr2C7QWITzt$%Ug&!z33J3W5BsoAA&6#V0X%9ZdHW}XY=pIW?9 z*~Grp+Co;Dr_(A-+3RV<#t7yA`O8kq7$1B-?Viy3(r-$^y@v6Zi{910U9<6+iJH?M z@w}ITJB}<+kdbGpeircg`&FxI{X56Dh*kYox~zMA*6W@AHrn#{1$KT>;OaAWJAQ3a z3s=V7^$RDRvFmd-eI<LL^VXBwVqdN=JU5%U@8{xg_b1jWcsAL&)<uRM)!HW)xoFGO zw_Q~#n`b*1T1#{k>O}r{@%i)0O0KxRIr%&FHbrlg5}o_}w8r;OPkvt5A++DM%wKtu z%wq+|Kj9(^J45!pIbpHM_H*My{j*jo1>x?iVyg~GJ^yUs^ZmONbGOBxl1t{y-!J#3 z|I;*he9?Y>W?f{=UxvGze%o$VlgqlKX>Mq2Y-nPpZD6QwV4$w4@0*|El30?epy6U= zWME`qU}ywYv3ci*MV!u-E|x}?mL^7)#*WU8j)tzT<|Zy~MotDMPL{5Q24<Fa3O0n4 KY@YY4o)G}WNgYrC delta 1125 zcmbRHgL&=`<_-Q*^`7~U%|!M+4_{%<b)sO0r^xebj_NPVButLQyh>7V-{Ny5jY*ex zQv7{)+fx%|7I(7S-B4P(y{6{$_Y;$>5>I|*?LL3LySqPpj|Y$G&J&@VBGhH<41Vad zh_-rcc{t^{>!us3^^@c0*85m0U)%aE_}BSI-}f%;4>z(;JDQ>8GVevb&0?kV7fwwo ztX*K!eqe>>BD?fipAMbjy>sK8<x|Oxc7GMNsF<I7^l0aI@0C~HE_-{3+x4HXtJ}NT z4Ljf5p7Q*Okm~9p&82P&SLGCbEN-5(^2rm;Q@zXH2OT`IH-Gn~@{d>NADq5kS4;fI zjVX6k*Hy(YjH%w8xh7gM%5+g^dxq-A`jv{c#w~5~^Xw;w6xq}r37N3^-u=>d_nMz7 z&IwWZaoICi{qo!R>-u7)ZmN@wyS1;^>VI!ffAX?Ad$;Ooi9bJdLjS){o+4GtnW-UO z96wz>LDcJ_jd*@StdZK?!;%lY&Sm61D{vOO&mZCC7Wt9w-Y=bvQ{4imo~^w&xhkkB z>0|x9c{QOEg5Tz6GA?OIzmu1}d-J)&-<kuCB(J>JV`_cn$A=(i?{yzj1&&{hJ#}`? z*)QI+3tR85K6%PYWIdbyL8tEX*Y4&OTz&s-Tj9sEH{V)`woTbCEpok4US!8%-^QZZ zm%__#&lU65TY2ifwAZO4i6-j5_P>?eCg6DA@;1x40D=0eiZxx_9P)2|J=Aqq;^2N@ zv{lL}@r3i{DN$>y;~#HVJdt?u_qEFRuU33Eohra}=H|JwZH{T|%9|AK3gmX3tJf@F z=e%_H(lf>Hb6E<EnIsO?P1!E7Tr#*~Q&qMj-^$yi>+B{q*E-qXKJ~N8!u3X8^W$s3 zPS5ymTPv<#V)68GK)uvP6{gj*Z&Vw;Rln}C`}&R6U%co1SM~2{Fv$4)nAOO*AlKZ& z=f{oknoHq1RZM1IuJNTVSZ(ETV8!n{kBgN8Z7V&>tWR~E^hmJ~a^CoI;f*N=%TgXM zd3;26%DV?8E)t(g*0_ASb0Ox4(9ew%r%7r}nG;=gcK5m6n|VwX7cAMlvwr*JWwSIi zf?w(G5OsMdQ{3cP#qjOOOt$B`Tz|#x9CMnSkUyVsYf^#tMRvcJYw8v#`>+LuOv*ZV z{Mspr@Eg10oi%UT_Bos8WgJw`n!H>0)q3ZJ=Ik<`kBhyVSgYXaX6ITLdG)DQom}Li zqOGq_z4b^7Z%leusBmoKlMk2JKd-Ee<LR?8i50)OHm0{r?w08(TYDz?sQ8Q5C*Hm6 zajdU!LQ+9@lFiAY71m~bISF<qf0jnJ^W4i<zN*)_;n+_bzRQ1ix+NI$+3$UQP9brZ zC$GP2YtO%@KA%rNdSw5>{MYTxYI0eZG>r|73=It|v<(c^4Gh#Z^?mbGToOxC6*OF| zj0}tn3=EB+DmL%@u!z&y*wDqo%+<u%%-PZ0%+=A-)y>S+(A?G4+{DDm#L>~vPQiwd LlFjpe)iVMBn*bo= diff --git a/20200123/hp-uebung-20200123.tex b/20200123/hp-uebung-20200123.tex index d94c7c9..74e70c2 100644 --- a/20200123/hp-uebung-20200123.tex +++ b/20200123/hp-uebung-20200123.tex @@ -252,9 +252,9 @@ Damit können Sie sich gleichzeitig von der Bedingung lösen, daß die Länge des Arrays ein Vielfaches von 8 sein muß. \item - Gehen Sie nun von einem statichen zu einem dynamischen Array über, + Gehen Sie nun von einem statischen zu einem dynamischen Array über, und implementieren sie die Funktionen \lstinline{bit_array_init()}, - \lstinline{bit_array_done()} und \lstinline{bit_array_reseize()}. + \lstinline{bit_array_done()} und \lstinline{bit_array_resize()}. \end{itemize} \points{14} diff --git a/20200123/lists-1.c b/20200123/lists-1.c new file mode 100644 index 0000000..a04067e --- /dev/null +++ b/20200123/lists-1.c @@ -0,0 +1,12 @@ +#include <stdio.h> + +typedef struct +{ + int content; + node *next; +} node; + +int main (void) +{ + return 0; +} diff --git a/20200123/lists-2.c b/20200123/lists-2.c new file mode 100644 index 0000000..f27d1d5 --- /dev/null +++ b/20200123/lists-2.c @@ -0,0 +1,12 @@ +#include <stdio.h> + +typedef struct node +{ + int content; + struct node *next; +} node; + +int main (void) +{ + return 0; +} diff --git a/20200123/lists-3.c b/20200123/lists-3.c new file mode 100644 index 0000000..9c90297 --- /dev/null +++ b/20200123/lists-3.c @@ -0,0 +1,21 @@ +#include <stdio.h> + +typedef struct node +{ + int content; + struct node *next; +} node; + +int main (void) +{ + node node3 = { 3, NULL }; + node node7 = { 7, NULL }; + node node137 = { 137, NULL }; + + node *first = &node3; + + for (node *p = first; p; p = p->next) + printf ("%d\n", p->content); + + return 0; +} diff --git a/20200123/lists-4.c b/20200123/lists-4.c new file mode 100644 index 0000000..e048736 --- /dev/null +++ b/20200123/lists-4.c @@ -0,0 +1,25 @@ +#include <stdio.h> + +typedef struct node +{ + int content; + struct node *next; +} node; + +int main (void) +{ + node node3 = { 3, NULL }; + node node7 = { 7, NULL }; + node node137 = { 137, NULL }; + + node3.next = &node7; + node7.next = &node137; + node137.next = NULL; + + node *first = &node3; + + for (node *p = first; p; p = p->next) + printf ("%d\n", p->content); + + return 0; +} diff --git a/20200123/lists-5.c b/20200123/lists-5.c new file mode 100644 index 0000000..a0cc620 --- /dev/null +++ b/20200123/lists-5.c @@ -0,0 +1,29 @@ +#include <stdio.h> + +typedef struct node +{ + int content; + struct node *next; +} node; + +int main (void) +{ + node node3 = { 3, NULL }; + node node7 = { 7, NULL }; + node node137 = { 137, NULL }; + + node3.next = &node7; + node7.next = &node137; + node137.next = NULL; + + node node5 = { 5, NULL }; + node5.next = node3.next; + node3.next = &node5; + + node *first = &node3; + + for (node *p = first; p; p = p->next) + printf ("%d\n", p->content); + + return 0; +} diff --git a/20200123/lists-5.s b/20200123/lists-5.s new file mode 100644 index 0000000..110bc23 --- /dev/null +++ b/20200123/lists-5.s @@ -0,0 +1,51 @@ + .file "lists-5.c" + .section .rodata.str1.1,"aMS",@progbits,1 +.LC0: + .string "%d\n" + .text + .globl main + .type main, @function +main: +.LFB11: + .cfi_startproc + pushq %rbp + .cfi_def_cfa_offset 16 + .cfi_offset 6, -16 + pushq %rbx + .cfi_def_cfa_offset 24 + .cfi_offset 3, -24 + subq $72, %rsp + .cfi_def_cfa_offset 96 + movl $3, 48(%rsp) + movl $7, 32(%rsp) + movl $137, 16(%rsp) + movq $0, 24(%rsp) + leaq 16(%rsp), %rax + movq %rax, 40(%rsp) + movl $5, (%rsp) + leaq 32(%rsp), %rax + movq %rax, 8(%rsp) + movq %rsp, 56(%rsp) + leaq 48(%rsp), %rbx + leaq .LC0(%rip), %rbp +.L2: + movl (%rbx), %esi + movq %rbp, %rdi + movl $0, %eax + call printf@PLT + movq 8(%rbx), %rbx + testq %rbx, %rbx + jne .L2 + movl $0, %eax + addq $72, %rsp + .cfi_def_cfa_offset 24 + popq %rbx + .cfi_def_cfa_offset 16 + popq %rbp + .cfi_def_cfa_offset 8 + ret + .cfi_endproc +.LFE11: + .size main, .-main + .ident "GCC: (Debian 6.3.0-18+deb9u1) 6.3.0 20170516" + .section .note.GNU-stack,"",@progbits diff --git a/20200123/loesung-3-1.c b/20200123/loesung-3-1.c new file mode 100644 index 0000000..11ad08a --- /dev/null +++ b/20200123/loesung-3-1.c @@ -0,0 +1,50 @@ +#include <stdio.h> +#include <stdint.h> + +uint8_t buffer = 0; + +void bit_array_set (int i, int value) +{ + uint8_t mask = 1 << i; + if (value) + buffer |= mask; + else + buffer &= ~mask; +} + +void bit_array_flip (int i) +{ + uint8_t mask = 1 << i; + buffer ^= mask; +} + +int bit_array_get (int i) +{ + uint8_t mask = 1 << i; + if (buffer & mask) + return 1; + else + return 0; +} + +void output (void) +{ + for (int i = 0; i < 8; i++) + { + if (i % 4 == 0) + printf (" "); + printf ("%d", bit_array_get (i)); + } + printf ("\n"); +} + +int main (void) +{ + output (); + bit_array_set (2, 1); + output (); + bit_array_flip (7); + output (); + bit_array_set (2, 0); + output (); +} diff --git a/20200123/loesung-3-2.c b/20200123/loesung-3-2.c new file mode 100644 index 0000000..e510904 --- /dev/null +++ b/20200123/loesung-3-2.c @@ -0,0 +1,58 @@ +#include <stdio.h> +#include <stdint.h> + +#define LENGTH 32 + +uint8_t buffer[LENGTH / 8] = { 0, 0, 0, 0 }; + +void bit_array_set (int i, int value) +{ + int byte_index = i / 8; + int bit_index = i % 8; + uint8_t mask = 1 << bit_index; + if (value) + buffer[byte_index] |= mask; + else + buffer[byte_index] &= ~mask; +} + +void bit_array_flip (int i) +{ + int byte_index = i / 8; + int bit_index = i % 8; + uint8_t mask = 1 << bit_index; + buffer[byte_index] ^= mask; +} + +int bit_array_get (int i) +{ + int byte_index = i / 8; + int bit_index = i % 8; + uint8_t mask = 1 << bit_index; + if (buffer[byte_index] & mask) + return 1; + else + return 0; +} + +void output (void) +{ + for (int i = 0; i < LENGTH; i++) + { + if (i % 4 == 0) + printf (" "); + printf ("%d", bit_array_get (i)); + } + printf ("\n"); +} + +int main (void) +{ + output (); + bit_array_set (12, 1); + output (); + bit_array_flip (31); + output (); + bit_array_set (12, 0); + output (); +} diff --git a/20200123/loesung-3-3.c b/20200123/loesung-3-3.c new file mode 100644 index 0000000..4177464 --- /dev/null +++ b/20200123/loesung-3-3.c @@ -0,0 +1,71 @@ +#include <stdio.h> +#include <stdint.h> +#include <error.h> + +#define LENGTH 29 +#define BYTES ((LENGTH + 7) / 8) + +uint8_t buffer[BYTES] = { 0, 0, 0, 0 }; + +void check_index (int i) +{ + if (i < 0 || i >= LENGTH) + error (1, 0, "index %d out of range (0, ..., %d)", i, LENGTH - 1); +} + +void bit_array_set (int i, int value) +{ + check_index (i); + int byte_index = i / 8; + int bit_index = i % 8; + uint8_t mask = 1 << bit_index; + if (value) + buffer[byte_index] |= mask; + else + buffer[byte_index] &= ~mask; +} + +void bit_array_flip (int i) +{ + check_index (i); + int byte_index = i / 8; + int bit_index = i % 8; + uint8_t mask = 1 << bit_index; + buffer[byte_index] ^= mask; +} + +int bit_array_get (int i) +{ + check_index (i); + int byte_index = i / 8; + int bit_index = i % 8; + uint8_t mask = 1 << bit_index; + if (buffer[byte_index] & mask) + return 1; + else + return 0; +} + +void output (void) +{ + for (int i = 0; i < LENGTH; i++) + { + if (i % 4 == 0) + printf (" "); + printf ("%d", bit_array_get (i)); + } + printf ("\n"); +} + +int main (void) +{ + output (); + bit_array_set (12, 1); + output (); + bit_array_flip (28); + output (); + bit_array_set (12, 0); + output (); + bit_array_flip (31); + output (); +} diff --git a/20200123/loesung-3-4.c b/20200123/loesung-3-4.c new file mode 100644 index 0000000..1930580 --- /dev/null +++ b/20200123/loesung-3-4.c @@ -0,0 +1,101 @@ +#include <stdio.h> +#include <stdint.h> +#include <error.h> +#include <stdlib.h> + +int length = 0; +int bytes = 0; +uint8_t *buffer = NULL; + +void bit_array_init (int n) +{ + length = n; + bytes = (length + 7) / 8; + if (buffer) + free (buffer); + buffer = malloc (bytes * sizeof (uint8_t)); + for (int i = 0; i < bytes; i++) + buffer[i] = 0; +} + +void bit_array_resize (int new_n) +{ + length = new_n; + bytes = (length + 7) / 8; + buffer = realloc (buffer, bytes * sizeof (uint8_t)); +} + +void bit_array_done (void) +{ + free (buffer); + buffer = NULL; + length = 0; + bytes = 0; +} + +void check_index (int i) +{ + if (!buffer) + error (1, 0, "array not initialised"); + if (i < 0 || i >= length) + error (1, 0, "index %d out of range (0, ..., %d)", i, length - 1); +} + +void bit_array_set (int i, int value) +{ + check_index (i); + int byte_index = i / 8; + int bit_index = i % 8; + uint8_t mask = 1 << bit_index; + if (value) + buffer[byte_index] |= mask; + else + buffer[byte_index] &= ~mask; +} + +void bit_array_flip (int i) +{ + check_index (i); + int byte_index = i / 8; + int bit_index = i % 8; + uint8_t mask = 1 << bit_index; + buffer[byte_index] ^= mask; +} + +int bit_array_get (int i) +{ + check_index (i); + int byte_index = i / 8; + int bit_index = i % 8; + uint8_t mask = 1 << bit_index; + if (buffer[byte_index] & mask) + return 1; + else + return 0; +} + +void output (void) +{ + for (int i = 0; i < length; i++) + { + if (i % 4 == 0) + printf (" "); + printf ("%d", bit_array_get (i)); + } + printf ("\n"); +} + +int main (void) +{ + bit_array_init (29); + output (); + bit_array_set (12, 1); + output (); + bit_array_flip (28); + output (); + bit_array_set (12, 0); + output (); + bit_array_flip (31); + output (); + bit_array_done (); +} diff --git a/20200123/pwgen.txt b/20200123/pwgen.txt new file mode 100644 index 0000000..dedad24 --- /dev/null +++ b/20200123/pwgen.txt @@ -0,0 +1,21 @@ +cassini/home/peter/bo/2019ws/hp/20200123> pwgen 32 +CahleMohngai7joh8Shoo5yaJaejahZ6 lochie8fo2ohdoipoo9daeseegh1niuX +eedo3ahbangocha8aigh0ahc8too2uuL ruPahyoo9oong5eeg6aiW3Ouphaegooj +ufeoh9quae3ahNoh3aeshaafoil4aew5 taigheih5yaed3ea6ohWieXiu5Yu5die +Aeshae7OoQuiewiu5zoh4tai1eeg4wu4 ooquioLahva0ahcohnah7bai4chahrai +Euphoh0shoh4Thiethocuox5Iez9Eith shahvei6kieQuoh4oBae3wahngei4gae +Ae6Yiereg7faihoo6cho1Wu6eegoh8ku veeZahyiziejaesoh0gahw7oogheeng3 +uew0Apoozies9quiex3Ohphohkei8eic awai9shahyei4eiLooK8eipaezohseeh +aenepeNeech0koo4mahR0bae9eeteegh linguuD6phoht0Thohphai7eeCh4phee +pheidau7uchahchahghafiepee6Oht9U aipahquaemeiculemaiGh6fieboohi1I +yaepeenoh3SeQuiena1Xeirim6thooxa ohgh2thoh5Aijei6SheeYooguoNg4ga9 +Ohgush6ieRahsh7ieNaiY7gie3ootho5 eequ4enieSh4koo9EiBobaedooneshai +ahr1lee1ahghaa3paek4ek4Eish4uu7l phoh5aLek0chohR7eiRooV3Nequaisha +ooNieJu0Ojojohna8rutoosoi7feiWai yiek0kaiPeex8taZohyechahphoh3Aiz +oofah3thaibieshiuxie3Rieree8quo7 bohL0am2peew3aijei5Waizauwo9chiX +PeeTaeGhuY5roo8cheid3Geil2ooreex cie2shahs0tha1Da5kaez8oorohg6sha +us0foh4ohXaipoh5euboota6ounaitha tai1Thuepe7eenae9ra5poh0gahzie5w +theeho4queChoo8aekaekaephah4meew ethi4voefieGaiPesaz6eilathieth9i +fieb2rohYooch4zahw6Oujiewievuw4p AiRoo2aa9aePh5aGee2aefeC3iemoque +aidomee2ahThoo1feikohheingei9aeC be3sau2aemuo7thangaiRohve6thoh7o +quuateevoonahNgeh2eetei0it1wibuf zu1heiPhai5aib3Thai3see2gahnahyu diff --git a/20200123/stack-0.c b/20200123/stack-0.c new file mode 100644 index 0000000..289aab7 --- /dev/null +++ b/20200123/stack-0.c @@ -0,0 +1,21 @@ +#include <stdio.h> + +void push (int x) +{ +} + +int pop (void) +{ + return 42; +} + +int main (void) +{ + push (3); + push (7); + push (137); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + return 0; +} diff --git a/20200123/stack-1.c b/20200123/stack-1.c new file mode 100644 index 0000000..d1de6e0 --- /dev/null +++ b/20200123/stack-1.c @@ -0,0 +1,28 @@ +#include <stdio.h> + +#define STACK_SIZE 10 + +int stack[STACK_SIZE]; +int stack_pointer = 0; + +void push (int x) +{ + stack[stack_pointer] = x; + stack_pointer++; +} + +int pop (void) +{ + return 42; +} + +int main (void) +{ + push (3); + push (7); + push (137); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + return 0; +} diff --git a/20200123/stack-2.c b/20200123/stack-2.c new file mode 100644 index 0000000..20bed36 --- /dev/null +++ b/20200123/stack-2.c @@ -0,0 +1,27 @@ +#include <stdio.h> + +#define STACK_SIZE 10 + +int stack[STACK_SIZE]; +int stack_pointer = 0; + +void push (int x) +{ + stack[stack_pointer++] = x; +} + +int pop (void) +{ + return 42; +} + +int main (void) +{ + push (3); + push (7); + push (137); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + return 0; +} diff --git a/20200123/stack-3.c b/20200123/stack-3.c new file mode 100644 index 0000000..b20a444 --- /dev/null +++ b/20200123/stack-3.c @@ -0,0 +1,28 @@ +#include <stdio.h> + +#define STACK_SIZE 10 + +int stack[STACK_SIZE]; +int stack_pointer = 0; + +void push (int x) +{ + stack[stack_pointer++] = x; +} + +int pop (void) +{ + stack_pointer--; + return stack[stack_pointer]; +} + +int main (void) +{ + push (3); + push (7); + push (137); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + return 0; +} diff --git a/20200123/stack-4.c b/20200123/stack-4.c new file mode 100644 index 0000000..0d738f9 --- /dev/null +++ b/20200123/stack-4.c @@ -0,0 +1,27 @@ +#include <stdio.h> + +#define STACK_SIZE 10 + +int stack[STACK_SIZE]; +int stack_pointer = 0; + +void push (int x) +{ + stack[stack_pointer++] = x; +} + +int pop (void) +{ + return stack[--stack_pointer]; +} + +int main (void) +{ + push (3); + push (7); + push (137); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + return 0; +} diff --git a/20200123/stack-5.c b/20200123/stack-5.c new file mode 100644 index 0000000..38a1872 --- /dev/null +++ b/20200123/stack-5.c @@ -0,0 +1,40 @@ +#include <stdio.h> +#include <stdlib.h> + +#define STACK_SIZE 10 + +int stack[STACK_SIZE]; +int stack_pointer = 0; + +void push (int x) +{ + if (stack_pointer < STACK_SIZE) + stack[stack_pointer++] = x; + else + { + fprintf (stderr, "stack overflow\n"); + exit (1); + } +} + +int pop (void) +{ + if (stack_pointer > 0) + return stack[--stack_pointer]; + else + { + fprintf (stderr, "stack underflow\n"); + exit (1); + } +} + +int main (void) +{ + push (3); + push (7); + push (137); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + return 0; +} diff --git a/20200123/stack-6.c b/20200123/stack-6.c new file mode 100644 index 0000000..be00e16 --- /dev/null +++ b/20200123/stack-6.c @@ -0,0 +1,39 @@ +#include <stdio.h> +#include <stdlib.h> + +#define STACK_SIZE 10 + +int stack[STACK_SIZE]; +int stack_pointer = 0; + +void push (int x) +{ + if (stack_pointer < STACK_SIZE) + stack[stack_pointer++] = x; + else + { + fprintf (stderr, "stack overflow\n"); + exit (1); + } +} + +int pop (void) +{ + if (stack_pointer > 0) + return stack[--stack_pointer]; + else + { + fprintf (stderr, "stack underflow\n"); + exit (1); + } +} + +int main (void) +{ + for (int i = 0; i < 42; i++) + push (i); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + return 0; +} diff --git a/20200123/stack-7.c b/20200123/stack-7.c new file mode 100644 index 0000000..b583bc2 --- /dev/null +++ b/20200123/stack-7.c @@ -0,0 +1,39 @@ +#include <stdio.h> +#include <stdlib.h> + +#define STACK_SIZE 10 + +int stack[STACK_SIZE]; +int stack_pointer = 0; + +void push (int x) +{ + if (stack_pointer < STACK_SIZE) + stack[stack_pointer++] = x; + else + { + fprintf (stderr, "stack overflow\n"); + exit (1); + } +} + +int pop (void) +{ + if (stack_pointer > 0) + return stack[--stack_pointer]; + else + { + fprintf (stderr, "stack underflow\n"); + exit (1); + } +} + +int main (void) +{ + push (3); + push (7); + push (137); + for (int i = 0; i < 42; i++) + printf ("%d\n", pop ()); + return 0; +} diff --git a/20200123/test.c b/20200123/test.c new file mode 100644 index 0000000..d572ac1 --- /dev/null +++ b/20200123/test.c @@ -0,0 +1,7 @@ +#include <stdio.h> + +int main (void) +{ + printf ("%d\n", 0b101010); + return 0; +} diff --git a/20200123/tree-1.c b/20200123/tree-1.c new file mode 100644 index 0000000..d347186 --- /dev/null +++ b/20200123/tree-1.c @@ -0,0 +1,13 @@ +#include <stdio.h> + +typedef struct +{ + int content; + node *left, *right; +} node; + +int main (void) +{ + node *root = NULL; + return 0; +} diff --git a/20200123/tree-10.c b/20200123/tree-10.c new file mode 100644 index 0000000..26a5575 --- /dev/null +++ b/20200123/tree-10.c @@ -0,0 +1,63 @@ +#include <stdio.h> +#include <stdlib.h> + +typedef struct node +{ + int content; + struct node *left, *right; +} node; + +node *root = NULL; + +void insert (int content) +{ + node *p = malloc (sizeof (node)); + p->content = content; + p->left = NULL; + p->right = NULL; + if (root == NULL) + root = p; + else + { + node *save_root = root; + if (content < root->content) + { + root = root->left; + insert (content); + save_root->left = root; + } + else + { + root = root->right; + insert (content); + save_root->right = root; + } + root = save_root; + } +} + +void output (node *root) +{ + if (root) + { + if (root->left) + output (root->left); + printf ("%d\n", root->content); + if (root->right) + output (root->right); + } + else + printf ("root is NULL\n"); +} + +int main (void) +{ + insert (7); + insert (137); + insert (3); + insert (1117); + insert (42); + insert (13); + output (root); + return 0; +} diff --git a/20200123/tree-11.c b/20200123/tree-11.c new file mode 100644 index 0000000..508b243 --- /dev/null +++ b/20200123/tree-11.c @@ -0,0 +1,61 @@ +#include <stdio.h> +#include <stdlib.h> + +typedef struct node +{ + int content; + struct node *left, *right; +} node; + +node *root = NULL; + +void insert (int content) +{ + node *p = malloc (sizeof (node)); + p->content = content; + p->left = NULL; + p->right = NULL; + if (root == NULL) + root = p; + else + { + node *save_root = root; + if (content < root->content) + { + root = root->left; + insert (content); + save_root->left = root; + } + else + { + root = root->right; + insert (content); + save_root->right = root; + } + root = save_root; + } +} + +void output (node *root) +{ + if (root) + { + output (root->left); + printf ("%d\n", root->content); + output (root->right); + } + else + printf ("root is NULL\n"); +} + +int main (void) +{ + insert (7); + insert (137); + insert (3); + insert (1117); + insert (42); + insert (13); + output (root); + return 0; +} diff --git a/20200123/tree-12.c b/20200123/tree-12.c new file mode 100644 index 0000000..ff07e64 --- /dev/null +++ b/20200123/tree-12.c @@ -0,0 +1,59 @@ +#include <stdio.h> +#include <stdlib.h> + +typedef struct node +{ + int content; + struct node *left, *right; +} node; + +node *root = NULL; + +void insert (int content) +{ + node *p = malloc (sizeof (node)); + p->content = content; + p->left = NULL; + p->right = NULL; + if (root == NULL) + root = p; + else + { + node *save_root = root; + if (content < root->content) + { + root = root->left; + insert (content); + save_root->left = root; + } + else + { + root = root->right; + insert (content); + save_root->right = root; + } + root = save_root; + } +} + +void output (node *root) +{ + if (root) + { + output (root->left); + printf ("%d\n", root->content); + output (root->right); + } +} + +int main (void) +{ + insert (7); + insert (137); + insert (3); + insert (1117); + insert (42); + insert (13); + output (root); + return 0; +} diff --git a/20200123/tree-13.c b/20200123/tree-13.c new file mode 100644 index 0000000..236930e --- /dev/null +++ b/20200123/tree-13.c @@ -0,0 +1,55 @@ +#include <stdio.h> +#include <stdlib.h> + +typedef struct node +{ + int content; + struct node *left, *right; +} node; + +node *root = NULL; + +node *insert (node *root, int content) +{ + node *p = malloc (sizeof (node)); + p->content = content; + p->left = NULL; + p->right = NULL; + if (root == NULL) + return p; + else + { + if (content < root->content) + { + root->left = insert (root->left, content); + return root; + } + else + { + root->right = insert (root->right, content); + return root; + } + } +} + +void output (node *root) +{ + if (root) + { + output (root->left); + printf ("%d\n", root->content); + output (root->right); + } +} + +int main (void) +{ + root = insert (root, 7); + root = insert (root, 137); + root = insert (root, 3); + root = insert (root, 1117); + root = insert (root, 42); + root = insert (root, 13); + output (root); + return 0; +} diff --git a/20200123/tree-14.c b/20200123/tree-14.c new file mode 100644 index 0000000..a95a1fc --- /dev/null +++ b/20200123/tree-14.c @@ -0,0 +1,55 @@ +#include <stdio.h> +#include <stdlib.h> + +typedef struct node +{ + int content; + struct node *left, *right; +} node; + +node *root = NULL; + +node *insert (node *root, int content) +{ + node *p = malloc (sizeof (node)); + p->content = content; + p->left = NULL; + p->right = NULL; + if (root == NULL) + return p; + else + { + if (content < root->content) + { + root->left = insert (root->left, content); + return root; + } + else + { + root->right = insert (root->right, content); + return root; + } + } +} + +void output (node *root) +{ + if (root) + { + output (root->left); + printf ("%d\n", root->content); + output (root->right); + } +} + +int main (void) +{ + insert (root, 7); + insert (root, 137); + insert (root, 3); + insert (root, 1117); + insert (root, 42); + insert (root, 13); + output (root); + return 0; +} diff --git a/20200123/tree-15.c b/20200123/tree-15.c new file mode 100644 index 0000000..929d253 --- /dev/null +++ b/20200123/tree-15.c @@ -0,0 +1,48 @@ +#include <stdio.h> +#include <stdlib.h> + +typedef struct node +{ + int content; + struct node *left, *right; +} node; + +void insert (node **root, int content) +{ + node *p = malloc (sizeof (node)); + p->content = content; + p->left = NULL; + p->right = NULL; + if (*root == NULL) + *root = p; + else + { + if (content < root->content) + insert (&root->left, content); + else + insert (&root->right, content); + } +} + +void output (node *root) +{ + if (root) + { + output (root->left); + printf ("%d\n", root->content); + output (root->right); + } +} + +int main (void) +{ + node *root = NULL; + insert (&root, 7); + insert (&root, 137); + insert (&root, 3); + insert (&root, 1117); + insert (&root, 42); + insert (&root, 13); + output (root); + return 0; +} diff --git a/20200123/tree-16.c b/20200123/tree-16.c new file mode 100644 index 0000000..be7163d --- /dev/null +++ b/20200123/tree-16.c @@ -0,0 +1,48 @@ +#include <stdio.h> +#include <stdlib.h> + +typedef struct node +{ + int content; + struct node *left, *right; +} node; + +void insert (node **root, int content) +{ + node *p = malloc (sizeof (node)); + p->content = content; + p->left = NULL; + p->right = NULL; + if (*root == NULL) + *root = p; + else + { + if (content < (*root)->content) + insert (&(*root)->left, content); + else + insert (&(*root)->right, content); + } +} + +void output (node *root) +{ + if (root) + { + output (root->left); + printf ("%d\n", root->content); + output (root->right); + } +} + +int main (void) +{ + node *root = NULL; + insert (&root, 7); + insert (&root, 137); + insert (&root, 3); + insert (&root, 1117); + insert (&root, 42); + insert (&root, 13); + output (root); + return 0; +} diff --git a/20200123/tree-2.c b/20200123/tree-2.c new file mode 100644 index 0000000..7e591c3 --- /dev/null +++ b/20200123/tree-2.c @@ -0,0 +1,13 @@ +#include <stdio.h> + +typedef struct node +{ + int content; + struct node *left, *right; +} node; + +int main (void) +{ + node *root = NULL; + return 0; +} diff --git a/20200123/tree-3.c b/20200123/tree-3.c new file mode 100644 index 0000000..b88b867 --- /dev/null +++ b/20200123/tree-3.c @@ -0,0 +1,31 @@ +#include <stdio.h> +#include <stdlib.h> + +typedef struct node +{ + int content; + struct node *left, *right; +} node; + +void insert (node *root, int content) +{ + node *p = malloc (sizeof (node)); + p->content = content; + p->left = NULL; + p->right = NULL; + root = p; +} + +void output (node *root) +{ + if (root) + printf ("%d\n", root->content); +} + +int main (void) +{ + node *root = NULL; + insert (root, 7); + output (root); + return 0; +} diff --git a/20200123/tree-3a.c b/20200123/tree-3a.c new file mode 100644 index 0000000..8031ec7 --- /dev/null +++ b/20200123/tree-3a.c @@ -0,0 +1,33 @@ +#include <stdio.h> +#include <stdlib.h> + +typedef struct node +{ + int content; + struct node *left, *right; +} node; + +void insert (node *root, int content) +{ + node *p = malloc (sizeof (node)); + p->content = content; + p->left = NULL; + p->right = NULL; + root = p; +} + +void output (node *root) +{ + if (root) + printf ("%d\n", root->content); + else + printf ("root is NULL\n"); +} + +int main (void) +{ + node *root = NULL; + insert (root, 7); + output (root); + return 0; +} diff --git a/20200123/tree-3b.c b/20200123/tree-3b.c new file mode 100644 index 0000000..5b47c41 --- /dev/null +++ b/20200123/tree-3b.c @@ -0,0 +1,34 @@ +#include <stdio.h> +#include <stdlib.h> + +typedef struct node +{ + int content; + struct node *left, *right; +} node; + +node *root = NULL; + +void insert (int content) +{ + node *p = malloc (sizeof (node)); + p->content = content; + p->left = NULL; + p->right = NULL; + root = p; +} + +void output (void) +{ + if (root) + printf ("%d\n", root->content); + else + printf ("root is NULL\n"); +} + +int main (void) +{ + insert (7); + output (); + return 0; +} diff --git a/20200123/tree-4.c b/20200123/tree-4.c new file mode 100644 index 0000000..db3b53d --- /dev/null +++ b/20200123/tree-4.c @@ -0,0 +1,37 @@ +#include <stdio.h> +#include <stdlib.h> + +typedef struct node +{ + int content; + struct node *left, *right; +} node; + +node *root = NULL; + +void insert (int content) +{ + node *p = malloc (sizeof (node)); + p->content = content; + p->left = NULL; + p->right = NULL; + if (root == NULL) + root = p; +} + +void output (void) +{ + if (root) + printf ("%d\n", root->content); + else + printf ("root is NULL\n"); +} + +int main (void) +{ + insert (7); + insert (137); + insert (3); + output (); + return 0; +} diff --git a/20200123/tree-5.c b/20200123/tree-5.c new file mode 100644 index 0000000..628d880 --- /dev/null +++ b/20200123/tree-5.c @@ -0,0 +1,44 @@ +#include <stdio.h> +#include <stdlib.h> + +typedef struct node +{ + int content; + struct node *left, *right; +} node; + +node *root = NULL; + +void insert (int content) +{ + node *p = malloc (sizeof (node)); + p->content = content; + p->left = NULL; + p->right = NULL; + if (root == NULL) + root = p; + else + { + if (content > root->content) + root->right = p; + else + root->left = p; + } +} + +void output (void) +{ + if (root) + printf ("%d\n", root->content); + else + printf ("root is NULL\n"); +} + +int main (void) +{ + insert (7); + insert (137); + insert (3); + output (); + return 0; +} diff --git a/20200123/tree-6.c b/20200123/tree-6.c new file mode 100644 index 0000000..f38634d --- /dev/null +++ b/20200123/tree-6.c @@ -0,0 +1,50 @@ +#include <stdio.h> +#include <stdlib.h> + +typedef struct node +{ + int content; + struct node *left, *right; +} node; + +node *root = NULL; + +void insert (int content) +{ + node *p = malloc (sizeof (node)); + p->content = content; + p->left = NULL; + p->right = NULL; + if (root == NULL) + root = p; + else + { + if (content > root->content) + root->right = p; + else + root->left = p; + } +} + +void output (void) +{ + if (root) + { + if (root->left) + printf ("%d\n", root->left->content); + printf ("%d\n", root->content); + if (root->right) + printf ("%d\n", root->right->content); + } + else + printf ("root is NULL\n"); +} + +int main (void) +{ + insert (7); + insert (137); + insert (3); + output (); + return 0; +} diff --git a/20200123/tree-7.c b/20200123/tree-7.c new file mode 100644 index 0000000..df1dd66 --- /dev/null +++ b/20200123/tree-7.c @@ -0,0 +1,71 @@ +#include <stdio.h> +#include <stdlib.h> + +typedef struct node +{ + int content; + struct node *left, *right; +} node; + +node *root = NULL; + +void insert (int content) +{ + node *p = malloc (sizeof (node)); + p->content = content; + p->left = NULL; + p->right = NULL; + if (root == NULL) + root = p; + else + { + node *save_root = root; + if (content > root->content) + { + root = root->left; + insert (content); + } + else + { + root = root->right; + insert (content); + } + root = save_root; + } +} + +void output (void) +{ + if (root) + { + if (root->left) + { + node *save_root = root; + root = root->left; + output (); + root = save_root; + } + printf ("%d\n", root->content); + if (root->right) + { + node *save_root = root; + root = root->right; + output (); + root = save_root; + } + } + else + printf ("root is NULL\n"); +} + +int main (void) +{ + insert (7); + insert (137); + insert (3); + insert (1117); + insert (42); + insert (13); + output (); + return 0; +} diff --git a/20200123/tree-8.c b/20200123/tree-8.c new file mode 100644 index 0000000..fd3cafc --- /dev/null +++ b/20200123/tree-8.c @@ -0,0 +1,73 @@ +#include <stdio.h> +#include <stdlib.h> + +typedef struct node +{ + int content; + struct node *left, *right; +} node; + +node *root = NULL; + +void insert (int content) +{ + node *p = malloc (sizeof (node)); + p->content = content; + p->left = NULL; + p->right = NULL; + if (root == NULL) + root = p; + else + { + node *save_root = root; + if (content > root->content) + { + root = root->left; + insert (content); + save_root->left = root; + } + else + { + root = root->right; + insert (content); + save_root->right = root; + } + root = save_root; + } +} + +void output (void) +{ + if (root) + { + if (root->left) + { + node *save_root = root; + root = root->left; + output (); + root = save_root; + } + printf ("%d\n", root->content); + if (root->right) + { + node *save_root = root; + root = root->right; + output (); + root = save_root; + } + } + else + printf ("root is NULL\n"); +} + +int main (void) +{ + insert (7); + insert (137); + insert (3); + insert (1117); + insert (42); + insert (13); + output (); + return 0; +} diff --git a/20200123/tree-9.c b/20200123/tree-9.c new file mode 100644 index 0000000..6b44c11 --- /dev/null +++ b/20200123/tree-9.c @@ -0,0 +1,73 @@ +#include <stdio.h> +#include <stdlib.h> + +typedef struct node +{ + int content; + struct node *left, *right; +} node; + +node *root = NULL; + +void insert (int content) +{ + node *p = malloc (sizeof (node)); + p->content = content; + p->left = NULL; + p->right = NULL; + if (root == NULL) + root = p; + else + { + node *save_root = root; + if (content < root->content) + { + root = root->left; + insert (content); + save_root->left = root; + } + else + { + root = root->right; + insert (content); + save_root->right = root; + } + root = save_root; + } +} + +void output (void) +{ + if (root) + { + if (root->left) + { + node *save_root = root; + root = root->left; + output (); + root = save_root; + } + printf ("%d\n", root->content); + if (root->right) + { + node *save_root = root; + root = root->right; + output (); + root = save_root; + } + } + else + printf ("root is NULL\n"); +} + +int main (void) +{ + insert (7); + insert (137); + insert (3); + insert (1117); + insert (42); + insert (13); + output (); + return 0; +} -- GitLab