From e0106e62b877824bab8207668ac3049c74a679f1 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Wed, 18 Oct 2023 13:08:22 -0600 Subject: [PATCH] update software manual to reflect new root finding methods --- doc/software_manual.org | 81 +++++++++++++++++- doc/software_manual.pdf | Bin 130015 -> 180558 bytes doc/software_manual.tex | 176 +++++++++++++++++++++++++++++----------- 3 files changed, 208 insertions(+), 49 deletions(-) diff --git a/doc/software_manual.org b/doc/software_manual.org index 6d6be25..981d863 100644 --- a/doc/software_manual.org +++ b/doc/software_manual.org @@ -1,7 +1,8 @@ -#+TITLE: LIZFCM Software Manual (v0.1) +#+TITLE: LIZFCM Software Manual (v0.2) #+AUTHOR: Elizabeth Hunt #+LATEX_HEADER: \notindent \notag \usepackage{amsmath} \usepackage[a4paper,margin=1in,portrait]{geometry} #+LATEX: \setlength\parindent{0pt} +#+STARTUP: entitiespretty fold inlineimages * Design The LIZFCM static library (at [[https://github.com/Simponic/math-4610][[https://github.com/Simponic/math-4610]] is a successor to my @@ -24,8 +25,8 @@ well as Arch Linux. 1. ~cd~ into the root of the repo 2. ~make~ -Then, as of homework 4, the testing routine in ~test/main.c~ can be run via -~./dist/lizfcm.test~. +Then, as of homework 5, the testing routines are provided in ~test~ and utilize the +utest microlibrary. They compile to a binary in ~./dist/lizfcm.test~. Execution of the Makefile will perform compilation of individual routines. @@ -591,6 +592,80 @@ void format_matrix_into(Matrix_double *m, char *s) { strcat(s, "\n"); } #+END_SRC +** Root Finding Methods +*** ~find_ivt_range~ ++ Author: Elizabeth Hunt ++ Name: ~find_ivt_range~ ++ Location: ~src/roots.c~ ++ Input: a pointer to a oneary function taking a double and producing a double, the beginning point + in $R$ to search for a range, a ~delta~ step that is taken, and a ~max_steps~ number of maximum + iterations to perform. ++ Output: a pair of ~double~'s representing a closed closed interval ~[beginning, end]~ + +#+BEGIN_SRC c +double *find_ivt_range(double (*f)(double), double start_x, double delta, + size_t max_steps) { + double *range = malloc(sizeof(double) * 2); + + double a = start_x; + + while (f(a) * f(start_x) >= 0 && max_steps-- > 0) + a += delta; + + if (max_steps == 0 && f(a) * f(start_x) > 0) + return NULL; + + range[0] = start_x; + range[1] = a + delta; + return range; +} +#+END_SRC +*** ~bisect_find_root~ ++ Author: Elizabeth Hunt ++ Name(s): ~bisect_find_root~ ++ Input: a one-ary function taking a double and producing a double, a closed interval represented + by ~a~ and ~b~: ~[a, b]~, a ~tolerance~ at which we return the estimated root, and a + ~max_iterations~ to break us out of a loop if we can never reach the ~tolerance~ ++ Output: a ~double~ representing the estimated root ++ Description: recursively uses binary search to split the interval until we reach ~tolerance~. We + also assume the function ~f~ is continuous on ~[a, b]~. + +#+BEGIN_SRC c +double bisect_find_root(double (*f)(double), double a, double b, + double tolerance, size_t max_iterations) { + assert(a <= b); + // guarantee there's a root somewhere between a and b by IVT + assert(f(a) * f(b) < 0); + + double c = (1.0 / 2) * (a + b); + if (b - a < tolerance || max_iterations == 0) + return c; + if (f(a) * f(c) < 0) + return bisect_find_root(f, a, c, tolerance, max_iterations - 1); + return bisect_find_root(f, c, b, tolerance, max_iterations - 1); +} +#+END_SRC +*** ~bisect_find_root_with_error_assumption~ ++ Author: Elizabeth Hunt ++ Name: ~bisect_find_root_with_error_assumption~ ++ Input: a one-ary function taking a double and producing a double, a closed interval represented + by ~a~ and ~b~: ~[a, b]~, and a ~tolerance~ at which we return the estimated root ++ Output: a ~double~ representing the estimated root ++ Description: using the bisection method we know that $e_k \le (\frac{1}{2})^k (b_0 - a_0)$. So we can + calculate $k$ at the worst possible case (that the error is exactly the tolerance) to be + $\frac{log(tolerance) - log(b_0 - a_0)}{log(\frac{1}{2})}$. We pass this value into the ~max_iterations~ + of ~bisect_find_root~ as above. +#+BEGIN_SRC c +double bisect_find_root_with_error_assumption(double (*f)(double), double a, + double b, double tolerance) { + assert(a <= b); + + uint64_t max_iterations = + (uint64_t)ceil((log(tolerance) - log(b - a)) / log(1 / 2.0)); + return bisect_find_root(f, a, b, tolerance, max_iterations); +} +#+END_SRC + ** Linear Routines *** ~least_squares_lin_reg~ + Author: Elizabeth Hunt diff --git a/doc/software_manual.pdf b/doc/software_manual.pdf index e966eef5592fc391f74655d3a6097a738a6db2c7..ba0b14b8cac4cc141cce0e5d0d3faf1218278404 100644 GIT binary patch delta 86030 zcmYJZby!u;*FMaqJI|p@LO?*eq`L*_mXdBHqz)a@Z15l;AtfywO1hCoT9B3wDM^9% ze7?``y57I`Ju_=o%$iwi_TFpt3Tr$ZkAziQL5Z91xezYvUIiY9qrdYoXkP1&B#Rw{rB_;f^D@b=w)dss7 zT;kL1t^iLX(TJqTcdDfx^&VB#HfwTO-UWBSRQO>J6d7+-aeA2(9;NQ7TBn#%NL7dS ztLvYdod1aAL^Zk1U9r9F{OuxP^@8`9^k^+PkK927-^|rUkVIi7F_Te3r{hPBu3^2a z+A4a_&R-%Z?{M=UQ|r|Qr7tCaa3Zf6uXD)?u^Aq*4n&kw6u{IHJA9_N7W z15;nTtO_Qh)M8SKm@lcLcy}Htry>{CMUzcqbhmIcn}}uKaav(5++@7r;%S5T%T%;G`pQqrzyd;!Sb(McRPW61YK=P4swd2AeCXgZ7;rhPmV)-j4s@8;Q;)ll!VN7RkaJT5AJU%+D!7Nzi2zm3(Anx}Rf zo}Xntvbv#{5`&R+M$;Xchl?lUIu^be&n#vm>h}Q5%2gr zGvL#c6jWpWJC`!W)ihsDtzF7$IWw|5KmRmftFka}%24FTTh5`jJr);7G*mJ2bZ&FT z;Q3IgopOqkWsG);@H@GNn-6@nQ*AV-pA)a=x$7RjxaSWwd|6dC;*)bHziw)RHB#LL z-cQ7l`-y(6*4-9V*eq8!CQPY}H-;H(y^l-{$v6HRh|6(Q;LP~`ax}~d<=iptW5~Yp zatoT@BR@b`4%8J0sw}~oCBF-?n#A|wT|~QG`{>JD=s#UY(Kj9Kq&+1ZY&9@Zh!Fh4 z<;lIeux*6X`q{Ahm27$>7T)b8jM@!D7pKQcTu+g6{Uxd4;>6M!_mqcBg}$VaTfK5q z+!JTRpG+^u>NCdz;{!DyW>U8q;jNUXuf)xxRE&I7iHx>hRFKW^_l7*Rnt$tp_TsEhALdzbV z9CUYc7VM?@OQ!l=*ZfFBsWHEMPvsVMVq=7UW5AI-U+!04_MBCY0O#}i752KDs7?>- zU&WoQigaurB_dr#iL?)YxOl;0?ZlNcYt37lHO}JYS2K*{Tbxbh2-EBv`E@BoTt+_c zX5gnX5%+)tEkmI0j7sGQ2t(7t-q4yeA1L99=YLu5#Ft$oRrCvUjFJt%L!Dp?sJtYU zSCXT19iuEC^ZeuLmNw3Y5nk8JS??#{a%N_qr5!O>qM`Gx`PMHry+r3d;yc!R|9M99j9re|^Y;(gN^W@l`T)3U9@Qp?i)KdToIaCbTnf9XNh zNPJ4WgNjq(-g)|ZVkJlFjzN+pjSWmSCj&Jx1W^UW{ug2UO*GwUM2Oq})U5FV;m}So zt^|~q;q|}~AM{(D`JQX%6epK zPkg=tMD1Bng(v0R_=~tU z3MadjjAyVObP~Q%;z%QzTHepYP6dM7Mlma@R+2^8*d7;8aDVAM59MHgH|f15PkJSr z%=;bSL7m|&(a4yWbC$Rulze+);b7BtLJ}NWZt2+lg7ShAVuYoQ4@h>PJM31G6itF< z*#1w{WV@J0Bc8tK;YDx5=J&T{IfN1fq(o{aD3HN^I&>vQN;MC(V7@m{b21}dqWQp| z#bZe>?~;P;+}(xyo*IiB_xk|JYm|9$%J}wm=GQ1@z6Jrd;jc2@ zygp_2hYhRxa#pUfRG^)U<^ot7;n(4j(~QNm5~b#qknds>qLb+SKSxZOv7ZmqtiM@{ zt?zN3!+SU@i9;8iQF02Oy|d$$W9%}~tS#HxLa0G~f|u6g21ip`((1{3`w z@L7b7KSrJhS8-79SZp?@+rY0JZ-L+ra;2J{wr#tCvB>O^1fTA)lx)Qgk)=>~gHxh! zH(B54)j7YxCdS0w9=5k#OT4~HIOSy%jZKD69!wa!4awy39~mIxp-c=2i+OYN(yHK* zI+*x|I(l{8;Xpzu)k&R*Q@549mh4!{ZGlXd{gylKc<0a5qqjr8RVLH;k`qPLBJ|7^ zwhGq=@7Mw-|(2HSFf6g4Md0neZ+nZ{)EIImOEyL-V%Rx*4fA0?T`{Z zh->KP(TXwNtZ@A}QN@unFBU`(y$>Py<=Et(KuD7Lm)G{?KjX|GN1m0;%j z;@i&0|G+myt>22y@wQiz>Na!iE^aWu138Y|2)pqme(NmHbogIuUKkjQz83FyKMAh-L@};gW#*p}wIYQV;rea8@QaanSro!Z??IN-E|3NL zfTCa*G8=RYgXkX--;95!&gB7(g74a)Pu2EJoTco#OY}}vDQBavQ!pCB9Jt|AOD9#N zb-cJd=Nc;ei`ffc%1TQO7kP3$<`CBmNe~xSQt{aMl=#;~KcPHPCkCg8-%b%|6tg43 z0c_)5xF7qQA|*PMm%+*BT(-nQ?Bp+YUz`Dj#fyuuj>yK&sVZNg)3CScLU}YM5w11U z*@c6LUBYT}K^=~QQ-t2KT6KA@zG;CP7Y*~Wl)pPehh13<_%m}OeTgNbT@uZ{5QI$X zc%xW29|WHL3>!>PuKw{)3(MT}K^*0Y$cuR}Wf^!v;Y4*kLqlWnU<1sx*A=imX+o1@ zUwwI?XvUq;d!-_Yb3;cwRh#s0f|#q(K?2+BCRP$BijG*P`ooLH$genuG_v(*FW7e? z`@YbTTAve9usD?lkiPeed_a?Idan1sr0T!~LFeZc69fwiIbcSn$-f$*Ay+jh%dTk_rc75+uyWZ4A);!T0xFamem=!XrWa;P z&J~e(;oA5)wtgArB0#U~g2*`ib3F*VBI`Iy9{il(-*|J^du4b!OODSzedZ!68{KL+ zI~kD}Ir^|Fc%4V}JdT+V`0d)%nsEcwGETGWQQQ#Tk|J$V9ga+Q&}NAGdRx`FJ-J@@ z1|@(s*caD5G7+M0;)s-Xv*vQk-~C!vUf*yZI#xUQNKWR! z>NX>~fBCyeWmx6Md3+`uxKRQh^Hi_tm zC539*)yU8PJeXWyj?}j-64K8h<~>#zO8X+r=x(41OBCm4hV^vH-tG71D}a^g+Gfwu`jt%$7TzTw3Rr1D6B9W1Q8n2 zK|LQDVQzRf$>T$AxqAi#Oc?53BzjeU9Z`r9TUHFlvfiAbmc;y2esjv}#f={4o}0e6 zcCAHBJtp9r7_slNsZr1c*^JU2|0Jm?r;j50onLkIOplA(n>xTFWXbxMY+{a|qPo^F z6^%=irY_0yH!)NepPe9IzDm!G9zdm0SKhqv7#W)*LomL zCqR2N9=-n`JIWUWeC#|$3v|4d29E&s%ysL8q$?}@M>O=NJ;6B3hm z<(G5%{lXwGJ%Ww&j&`%!XF2VqZea}vrY9AO#iGLDCA&$_ zL}gfxvEH=w2165|_ib7*5Q}YB68{NLcm%)YEULZr~VQM~Ky?U!~tF)8%89&H2a4 zz&Ep+DXqNMSxs#duTgPKJ?^p+yhSa_@n`D1Z@Sd$so9RZ5xWabw`Qki$&oqvL+pYV zVhqfUT~m0xQBO1scQ387br)`P|LVXvhBH}%UWPRNedd=^DM3RsO_>x?NOR8f!s~!{nJwJXU+WU#ntu!zy@R-^=Pm zR!*VGroIl}P~|fB{@Wo@$hWyL+2oW^a^r0qDA=@)z42{_ppCVWQ}7f$6@b>ZFV2TglFG0OBz@$yq8EM&cIu)|SeMf%n0<*S8pA5N4}$1WWUE&Y6pZhMsP zI!e-H1USWqf1P5zhy?K7`+UjwQp;6d68|cN-CAfjJvEq|%c`nU&#l=Y-*CsgdqRX7 z;ci8Tw{&scnWv$44nTx{(St@sal=C_cp`*(X+j-O|zNA+<5{j$KJQchbB3=l05S)Zd?~CJ0fg!iQtLj6hdaPTKYkzakN$ zB8q^OPnC|h$J7)zxa=tw*r(x4t*35$Zp)k~uD|IiPYp- z`6AvNz9P)8L+^$BI-9S=*<1LYeA#-{Op&xhgJ}JS8o?4Ca^w(U{~oM;m>reuG$VuZ zu#Objl(2HXXEIB-+?{QWF?_@{F+4N+?=k`K!+#I~5Cj*LA03pvfFQi6me2r!R1zq{ zh7JP*5P%o3AcupQ8qtyXzfYzJ6}ETi0P^zTK!%v*+(ARaAC_c@NgfjnKnS$*h9IPc z?9f3WO(>#8tQP|i2KhiTM5^>RG$aI^$q*LuHt2vzDhUKlScDgT3INDUjBzsZ<7>!7 z&516P2%jN~BHg!8a?MGIBQE;Vr4_>HJAXU5wR&{YGK=P8puOnKRxx6kMJu>Yfj~@P zmG<9&^rsc^cT~{=vgfHIdPfTdRV3P03HmI(QH`r*k{@UZM3uJtM&>m2Ijz8eVZx_NP`zy9e zwqG%1)=baQv#hF(dV~kv-ilUB3&z&0)#K$QDlzct7u|ym-c!Tmop?s#m3Y?&4)bve zrpqoe4|Iu}VvNCdYeMHl-6l!*C+K*e#rHzM;|rV8$M~`S<#Yy@XJX0O;k4%dK{+#$9L?#Gq zT`_5@K68>`%#IMF33v^MN)}z%oMF)t35hdA^s|(;++Uwgb!oG;^@b62R%6_ zL$%`uEy4dDw)m#Lf2pYJBkZ9cW&PBNYohdwPFpzdFL}MM_RU~b#Ytn#=D>DY*|qfG zwdv?*+kE#8-`mDf=TAZu(fufIWbhvCX~&E3OQN$y6}hNlrvYj=@6dOHtKV};owlCI zS=Te#q4O}?6)BCXD1Lf7k>D}J%RI|hn3?&*Xyq$YA8d}lP}}$5z8Lr{>3Q&+0D*fo z(evrca4@oY_|va`D>>s$r-J>C)&!__!^Os zT~g~X_ndPRUjALQ#gLTOS=je9_fC~QmU{jCB}1&+>zst+Wt8d`^qMx$;(tQP#r9~a zZU<>F>y$a4Rz!vHOWJI)7FB}fS#jH*liE9m?q&L@{d1-!)(;uWdX@v9)6|Hbjh8*e zq>RpADLd!$!-^v#KmC1e^mR0KL-Y8Ddp6z_jdOnAOSEfy4N}^ja{`AwIrn6$=%|zY z^JQ8Jg|46w-W<7lpEqW8|L)7S0!MK67~I9gU{B&kgsZ-$LKBYW?U8w%bG*Xh0Y9kmt<*F@`jK`s#TP#={+uxZ0e|Y>O>aoS#!;I~%BbIvj`JN;1 zt0-|JGb)kx#Y+5i;3KLkom~tvGqR(J35)#i4V&tx+b^Xv^Vi)?Ta3&H7kxb-il z9$*~nLP4I{2puIi) zYboEm7M`VYrR##WRbl4Pff8q|WblUBPVqX_s{n!)ds+m6dbM7Y6{QqFI)4_P|Iw>$ z6Uee{W5ie?wROHoF6HW1y*PnvmU{H*wxI&xGsjn#yFV|wBDJFAF|D{(I z+ww@}JN$LEamsw{NPK@LA-0;N)K@Tt_@JKH71&E$zWB3}zUFp+io&Pp9M_{K#fHszA=Cpa7eZDGRP`Td zE&dXosbs2KJN}2TB<7aN-=4EjH0QAaWvoPFsBLBqbsL@}PFkto;>29iD>YcAULN@T z;T4hoYO@L!v>|=Z(_>17xJQ*as>@})XR3!Ncj)&dpK0}8^I=wc_5`SZQ)pMrZ(@`~#1&M%iG72b zs{@H+`IVpC{66^d=m3#7ao7awdI3m>TW-doN`KH{n_WK~6VEzaBlf}|o*eolFKHy# zvvMtUvv=5Ozq(++VkrWqq3C`=Nmg~oP)CoX%-gaj$p++O?9*{v8lMhis@7pF4$-a) zy$h)5BXd9zN?S6WLcLEKaKlMU26!Z_+KUB;iK$V!&wU2)YuM-CCD_2e6taj>3a^P8 zb0x&cDAo;ml}+Wf{H%$G*yKMmT}8-{g#CNdQ&RlwYSxnoplPsvxxlgBo~*>mT+Ta^ z^M&#+;J{!O>T@4@LX$@jUEtX;8D8$y#TE#Eez=zSNu{~xm?0aGy?P^b%z$cfnBH1S zPCowPG2T_9@06e22R9t{M4(T$l3ZJvN~^WvJ8O80o7o!p;kB5#lbmwM)7lV__OcQ=>&-YK6yzmOvVfIs5P8kpU+{l z^zF6S+-pa?FbqH5t(HvEl;JYnaMaBPLg58Ay0!9jqq48Rg>|jh;=*I7Bn91pEZp6~ zS>-dbnYXSkLXpFQtQP_!@jrtJTtv}=o$a#@&cG?SI=Fr;i)b7 z)2N7^lZyQ`yqk#_+d-itR|oNFR0}Wqb+CE(9$}EJK3wLa1?C3^in%fy-Qs@C!SvjB zQ6LCdsC884ZYmrU?_x{!e8`xO6t@F(N8FgK-s$-uns_M+EOU;BXTSJ-`Y3`P>rsmm zzBSp`>>_rht(B#&O!Tskmo(Jj zlsfXa!P9fB=`e}Zii^QxY*0>8qJhEqkRueuis5z2;ei)rQ}4tesa@(3y~||%Qb)(F z^B?({M=OT9y2vpsEmI~Vn1u7M+m&QZ;ZSvHZ$%bx4X3oKd(v>{u7p)z58}!ueG?>tAkr9CT77m-Mf}QBe0mGX`8R(1^s!mcT2p9kIUMD z&qX0unu#tI)iI{BA4|CVc1tzj4|Gx0tF!llysPP&$?4g1j}NhRJMqs(F)k{&GBf@E z4L_0G4-YF4O1)t)W)wBP)HRCuf<;?=&<-11pd4_#@$@zkTmKxY6_46Dlf~1};i{Ir zCb85z*$(q8)_&c6?qPBo+-AFI`&(cQFW*Uho8Q)~ZK3{~2THd7De{ke?&)-lk68Rs zsaF4?)ZN|WKb^aaJKTex5m-{yPTQXP(~jc$d{+_Zoo3JfJ#8Gpbvfue{n}0>MUUcj z(1+^}iyV;88R+$P_!Xnz)?Ho5hPDItGwAARk+q3GqKD^|Y>!*GFVUff>(WeOKJru1 z?kER`D$>53vtTr}3McI(lzn+5?U%nH&p!+C7Sz=}coa{o_0j(C4HuPWLpnQql25d2By*{j^dliMj;SU%B+nWY-(jz#zj_jr7O(Jl7lNRea`|xZ z;!0kT$=}yc;$i#TU&6Zz zMP?PtU&KSVGfzu4v@E3zy!goEc}H;jhm&A(^&%VWxE6*!3YV|3lSEU4V^TCj>-w-q zFi_{1Mp=Z6gwWi+_(wEBec990yCGr1sT1H7%A(w8^3(DU*d~$_P5g0T=+1fc5 zG7I=X>{B*O1p%dXDpoQV>95sYbl4k_wegHb=qJ4D=&hK6pOu8k(1ihSfoz|kXPGfy zQ*~^kPf~Cx;-IJttcQuwvzRX$G^1gqPG3~8<@lbU(bR@i*!N_7d86cbwg_fO+DZ*e$N;hXdB7VnnTQj zZu*f#Gm?1Jy7s;61k+Q?79%bjcwM+NzweC0cxG+|4)!;lH@+Uc2NsX_?~Yqwz47t= zUUPJ>JIyaAI&)tC6FSI!{(N#ReI$kj9&U`rC^8D^v#upV&rBwb174N<5|g~xgdBOg=6V2&iR&s7c0p)UUie9R_nBOm)H1uuci0XmPXhUm6b9U6xcpy z;Z~Tm|L99N=J$2W90EuZU|q6|g`}J~o_eK@R4iRPCj>%oJZj9Y?igSuR`LAwhWy{+ z50V+Q=JpHDboGpVbTmm;9mt~tl;h*yB%ghmSgp_Uj114#uBxW5e6Q^6d9Hm(e_L+H zt<&*NJCOYzEy0h6hr)i)+v9f&d?MNGD&XPG-plCvPKjXYJfDeBD_BTvTix@K5}I#@ z@dqP_8~xSwi<*#6o#N8LE!P{jM=9^gV$K>oA`kL!xAs^yP-M)@u4n?H`m65wRpx@L z1~QV_S`(Ea%PQn;EvQx1N|s)xLK#=7qx_~f&h}8l`UaFV89f*DdZ~}Wcz^rji(xL|E(e^_7Po#Z#4@~bj&3DI4{UBbJq*3IK4L!QGwKVr7d&S#U&uO5PK z)^Dq%O@sE6CZvNc%yRO4@?OFjLcS)QpRS=BPcM6gM+bVIJq=VN;;wCa z>7v84F0522Tx{PUHkUgWK|>YiphFbJa&W8RaivE@`1pxA2@7_2zkYeL#Diy*!z?_8 zp04yUbmQsAH9|ZE*KWSa-s-~Pv1zBGX5*rl2er2;=P%B%AVg_Lp?|El@8SOvZ^msp z-k5eYq`K3cnQLFNYwa7SGBi}PdP$l)v#+GLLI!`$a(`1VNNf$GZ?=((7p;mudo8N9 zub95A<3QKnd(s9Q*-!Z+6lZPIF{m%6wsf}a?^zT`C840jK2~~hyHZl}htc35v-Kb2 zv1n2=XX396E8>mIc>XfG&L>_Qk9jY)NqjU+bq324Tf$Zr-#>O_@v7D8J^lOTv&GQf z`d|><4UMkZ0OX(%vZM6=JVhKb`b1>+$$RHA&H0-aroGP3FiI%K(7f2CKu2E{`v*_R zNaHK6#8+H<7H7XZM1ESazKy9$#GxL{ccF=xqKrt(PP&m4dI@Yv935XDOYNsC6*(=W z=_R@r5nf;ib7YmdXTYy6D%}&a*#5GI-e-0q*bV5&#)+8BMq)i2SU3p0PRI z!BA3R+=~C@ury}~8XunsC@aJP+cI=@M}91Q$bG%;4u;3A$J?rnnRLnPa>)zee++Xq zik8X9Fv;YmB5imJgcZzx&iuy#1FUJzJJ4ZnC@m9>$?)>a|)VGOM!3f4m(W*C+? zax!s~OePf@p`}zYU4CVTkIX`w#%h=K#d}LxMP0(!cB)>f#KIzl zq7U(=DSdnBz6h4oOa+C}Oc?QdTgdbi+7GI{OD;VsfOY$qF1=#1dMpMJeZ%w$eG9ne zDv4bhJt-QWn0lS$Q?gjzcDe-WQ#=>LJxVp+o!(kYT+)A` z;Vc=nsyG~g7C$S?(28nzd%2jp&kM%!0EEjTg%u{?HmkcTv@tUxcf^v=~rADXiCOHVWLy~TAnvAu?z({gS3^XH?RC5H=X*aaEO z1Gef%y9ucAXWg~4^}$xL>UYl`26HcK9e-T>F?i{8RJ9}@_p5irHh=5oPB9OCs`{Vr zZ->?(JKaIXx8VgP8bz?5&tb0F(krl-#KK3k8AP7FXXs>uEoTw5L}=mg<8Gc{~4j(skR(HY3Q z#3mwyn|vVFh6g78q3c1 zC`p_#esZ?nR~rtUCMg|Wt+kF{TWH*WDxjvvJ6?_|1-0CVXSjJ8b!F@yb&9@O7H9OA z=A%n!feVHrQ#Np#qP8EPftmC{gbJ7Fd$JhbF$>X zH{R?f-*t1IJi8CO4hbdjf3tMd7>xW`jG1?;=r^qD;O?Zn>`q(F%*FESTK$kCf^0~q zxHGeRsJ2QFhM6ZFKS=y4*7r*FTjR}FxHunysVo!b_v2n+dOOdx54R5gx>5~VQZG*) zZeC+9Y=nGr5B694nqD!HrHg`>`8%5gA}D(=G{)wfU1}vGR_8GMF?N%uc9;5(3k80} zy(Og?FR2lZ1Jk1Op{csaM-N0Ock}W|#KFxZ(W0W58AI5cmA~A}S=P9ZjW$+$nI*@t z{LGD&pR@lCr3V;S@BRx{AeR>eosU`?KoFL}9v`ZJ+t!yB{}5>Zt=E~IjWGNL#+hYi&hod39Qoaty&psB%1N1u z!6WvCdtQB%rHwqw)fZpfBOLfzSPXNF2mW5n4yl{IeQrAA-JV+P-p+mInkp@z@kA5{ zRu}{=iFRDd=>h{RZRv_cGI&)RxR%fle7Mb=tUCBLl(acTnw8xMj?)zI$k*q1WyuHP z**j#%ny2s^EXgp9Q=?zFl#(?LVf?$9xssr}Ib||a;$v6aPPuU*JFMn%JQ`42OOtHl zz5miTyIM^u{=46A%=2CAk86w7UH0bRFylWR-6}Uk;ZaUmqa`}my|s#`z1D#b7&Zr2 zuQB#-gvqC80q+-j-feM({BecVYF9Ua;)g^U~eCS^EFEX6HXXh{0tvVM@eifXtIiJb!~oHv|Y zsr#02p1bRQ+Q7^;Ds@Q(o(ooHavoF^$Ve^X-24=cj2m1((&jOf{l>X}`ie|!5_uE`A zA&2{-F})jO+R;`+h$19wEJQr})BV|IzYAt*De?PyG3SKKE-k;`*UkI~DQqz9)+9wm z2AqYgidcQTwBi6KXM-R!N>55%BP!YC2jO!*Tf?c1-klY7 zW3Gm8_}@Hj*Ur5N{(GJ_wSo1?wP!4-wPq~bG)iZ)<&|krWezp#)w3bl&hNOxLRTLj z!<>yv-<6kQ$87a-^qlUa|C^A74Xmf}`?N|vUdmJM_!<3*$L{IG>r9>4Or4PS5PJ3|4JN$0gFTBd zi~s!6r&9NbsCZ(Dn8;-90WzB_)o*v3V0tBj82`)Pa$K~8A6*V#%U#-cUz&oc;%|_} zt!t)~{;19gG5_d3da^r8%;~`;ypLWHB~7`T?EG@7=$|bkPVgn6KbA{K7^f&xKxwt%XNUKbjYF2@@@ZcHz?qO$4VmZ0tCXzz@>K(G(kQ=P&VQj40KlS<%L9d z{xO7H7B9QN>s3K*Xo(B&X>`T=X1?L)Mhjds;V(}+1M9$VN~dR5g1>V_cEou8Buy!m zG6=+^$&es_L9MexBbmI=;bHIB?6!Zkj{OWul^&POn_i%k*q${u$haACwUER=pTCLq zNLw+#y!^Vpzv0^~hI@4l+jtvDn?oeAUjk+y@A(ixX3jY>(ps6R`P_4IMbmq1x32|p zMRi4urSBWd>S8fi$O-wPs)p^YD6yfRlWd?jPsd6IdRs`{rxAKo~~eJPkD|ZO^v#*C7Y96g~UcYqowJGIt>G>^EvhZ+=USY1=ngh z!2z>nkSv@W{AOMRazv1Wa33x(&!P>Kii9FOUcUxFy(lQ$ogCl-iLL&E_R;^NU=x`X z;M3vN<^`+;bTI_*q9F3sa?b_OFo@B;WJ!my_u)7i!Zxskir`yH+AYv30Aj~4+9J@wQ5(r|H5eRj#qZJfS-;SC3Ye~J! z`Pm^eATq=k^^z}5B?9>5s9hAo7{2ZG_c!iuR1}n)i4>$c5Rg3v0@7Gdf;%zLIvX7T zoQ;Jd>}^E=a4`-F*LwqSAy(hW0^rJfC_>2I2>?IFLqV-kE^y7^8hn=kMI1Sj0$@lY z6rR8YaD%eWhoE8-6kf)SwA;<)3}i`$!V!u97c3)H@?{?{aTLR1PZ|xw6K_BTHM{=9 z2Sp|fQawm4E<1W z{4RbiiYy5gxvw&qXw~=%AWNlM2Il5MwO_$8%Jc8>v}G_%aQaiI>Jgvp7N)BI1^uuHaD43I?0GyjWK~yZ5<;!xPLW5U zcAO(qKTKd`7XKidnJ*+-Mytq`iMx&3?i@x*HU61O*LTg>MIFINp=)6o$NG%9S9!Ug zQqWdA6m64YlO%npE|hQoMVrO*H;#y|;(t_*i4UprAHL*{vffK^?sZ!bT#kpJE$@Cm z{okgVOD2aGx&zN(0s>P4{I7VmQLF?Q>-1Fken0!oFNAT{ZI+_o^&Aee!9$wE%Q)a2 zSla38tJ8)BMPCFn)K@vWjJs3RR~4TuYIie!7@1ZKD|kRbBmVcOm0}&Ooq(oP`-rA{ z`A8!(^Y};7x7i8YEDD^?Xm{`{C-tkrJIWV;++e)(ip1dq=W0`rb@< z+wsTjzl2ygf+i-y2-e2)GxKXtHfZzKY4Zvg{NDz{!lh=+1* z=KU>4;@d?pbQB(n3s8cV?{P>q$E1g4H3{GqY=(>!DD15U@kp@{FtmmYbc}igE5Aa( zpyq!t2-$5erPbrA4h%pyo$4*`=BxWKPzI3Pn@8z|j?bXwdWP_PjK7ZOB93dZ;V zFtZ5?dW;Bw8}XT7QZp1xPB;M_zCpk{Pzd~<7y_oXKta=_VbG!#0*WPn0=3(q$W65Z z%Ctklm6RgTu;V{rTwqUXH5k7WSe5$>9LTx? z1&5&U2Vda-SYYOifxN>IklGr#z72RF!>26Jbc7t7`1BnVA0*<~6O0>&fPdco--O$ADUh^45kyQtLH8<75MHndp1MI0QJ>KPKnz(x2IdxC0Ak4c zG6+~&bOvJnfFP=hDFBde3Iaac<3ga9;sK!0G!$g{(h43SpFjIJL58wUuy^MF=}BKc z2WHMf;3*2otsz*k398IN5S*3I0Z?onig2sK0Kk)Za`-WTw5h&&7@Syug7*WMf+G;?qZE}$22PYWXJ_qh>|1ZyQf$)wa@cRxq+=Cpc zdw=I&5V{8iC%Se)%YAaNx|kEZ?%oF*56I!vKL1YyS8plUcnAe|dzZkYBPh7gw-2iP zA%`CbBRQZAOoJjP6o{h%Y-G4NB}d?WX9vLQGbpGsv;)dq{2xz`;eGJkU!=Q6M!>vF za)kCMGXVBnQGhZL&%pYz8F1#B0+Bb4j6qj73v@$c7VP0}yzSByypagfuk7mwg%xJY2TbP7kuLxOwc zIZ0a71UG+K!pZRgDEyuWX?Vo)I{Y;Ovc-uHa3P9UumN}qA+iZ`Lk=FTZo(&#^^&ewR(3=I_!1=&aqbBN@JlKrDLo%Dh!^aW18_4MB<;w- zA+oBnzyXRFJA48F!v9rkl7SroT!`n#G|2XU1(%@tpCx!1EmA9u6MO)kK!-#wr}6+? zi5`i1&q4q=4g-?ce^-{UiyL?Y15#r0UlIUL`~)fSe|D~2Zo>VUkakkyAyq}Yo`RP! zBU}GFHqe_*c>aGyqWHHs0Njuj>5;GToS@bt7HEE#2^V?_ki!}HfM*Dye@L}KHl(Q6 z_Z#pNb^r<*JT$}iIgm409)G~6o*{dZ|8iys0o!mnE+l^*04RrNa3j$X09?VpKSv^J zF{Bq0?g`-hXuv1`00H;__=F5{yekE%dMXqcf^W$pN07&s5rA{cBVh@} ze{usAknn^OzyRR6ib#k@4QK;!Y-Qx)t?Y0%<TyV~3Kna}91Sw?u8DI*)QB9GARq6m&Q#cnu3cx!|kvz(||6AVw zkFBo^tE&grW#jG?ic4{KcXxMpiWMks8+R?Tan}OH-QAs19E!WU-reuq``kZg{hHWh zlDwHDYfWZ77=UxFF#(VOsYc*P@Yo^&Ks?4^5B zV}l5I0lz`LR$$Kmz{AQ1xBz8XgSmiV#{@Fx2cx3V1}qk-z`s^TdhlaHZhkX9Ni;0lYxcKH!>O!x=%3N`NW=CrDKtT)a&g@E!1< zssZ7C2ZPT+6|fE90xKY3$EkM3@`{1jRTilGzZuMK&J6v5_}|c1c3e~fu&ir0;db5fFrA|!GjFCO$Ar! zxW@>3umSu4Nu_}kvcCc}0RW!=H0OVZQ4pIQ;Qoi*f2s&%V-MH|@PLtl^*>4@&H=16 z=+ePTwr7(O^wSZr^G~DTfC|2Wsmpc%7RW~s43r@!KrDD?;`{?A$v=$#Ul0{k;0$mA zk^cb;@DH=3~_f+?B(gIAa#WL5F`@}%e_$)PZ_ z@zAkY*aAe%%4CQqHTR77_t%p{ zm85;j>a9)ZDh!~psg0~i7eVtR}Xii`y`LvpeG!wDEijG*8+z&bdbh=JAY77ySA7i0UktNynp z-Gb?VS46-YW_0k>yGsO2gPHWw|KCLvCJC_mFULQLK&8~+ddZRjg#R%BZ#|mTQULk? zS}%J0e^nv}=s!S$07n0u@38Uw_e$@_v>f=oM>sV!!>)<3h<#3vBj~M=6m}8kRCFc@ z?y875ln#-2;C}X+#w&!_M~6#kpIXNh4K^d*^?I^lf+1C!oxfJz{}YxETYY?r7wZje z?p_)s+O(Bs=Jn!KX-UU!b4g|O>FUW#60P>1gC@4Ul?_dImv6_7lw;hJeW$q;s*tFRmX4xvn7adzLVB%akut^-SjPt{0 z3Ev%-KU_=X`%Kp98iMW&HU|)eF*sFpJRhe82WMONKt{P2+jCMzgB95;Rn57h>+Y~GBuU%uuDk+Fg=~Si-jP91bi9p3mhy!gcOwvJ%T7R#|SE{ChXl|xa3a| zA5Y&_)9Z(s43I~JECMd`3-pzUM$jtcZgwTW1QjAJlVqYF4HB>+E=@MYk$ z6{3n6)JVTWe%#V6rV~FmTv{v4_TQ{-5Q$#jKqAHa-D1uhL?;8Py7sE&vO zu@Xn14%EV5Di)f)vu-sOL_Jb;_g9g;=x8K@fuTf{bD#;+#4X|$q__^mLSCE-oOK!P zmd7}RWdzD?_2N>^5di-a%djxfu@id;(f|O_lSQXrA+IS8jZCSjLQa5K`R2?#B&ps>Z|j;_z0R>j+cY=r_-CPQCGW`I!* zfv!Kl36zLvqv6EpYl4?P-Mo|SBg~^h`|bht?$)Z+6&>e7~zE^lNTGX1$lMtbm;=fyN4*Nh=jR(0D>=YxX%b@ZEfy{6L$!lZn;C$hjZl_ zv9KTZ<2Hp;417iu;o%YO6nH;-{1$=&3#DL61s}k=Kxh^HrhE^_zHqAi>hyuiq8-3= zDC%zlarkf`to)3I$R4_?*ZwB{u@e>eZ9t>g0!QcF_DNXD*|~+jCpaaTsAp^n1~Nc2 z3)lgX6AoAXF?E9v`BD)F92{HD=mm5qz5RMHRRR7veFeeeeXO8U^#G~W!-QpU5lvpD zkGx5l5=Q$;E>oaQ%Iho=Tn0(f{t)@n$YJ^;=DfgUtFTST`v@pTB&Oh&>hbV$#`Wh4_=phwTU z->kqIMBetdd6Eba5roDIoHHOG<3rR}0D^RvWB>^Q{{t?Ngaaw$9ZATk>K%q;Wbq@& z7b0&`82wem{TbJnl>Y;2Srj7gq16x`pR^*(daAM-v0>`2U0(Jn){ zzx}c%(X&}M*1cCC7Sk8%=AeTPbPzt;M&Unk`URjWkhYz0;*}B1q<0mhn(FzvI(YdHjrV(kG%uGf6=*Q?RzEs+v|JBR5*wc%zOoYqM4jtQ~R_yJx#8 zRV><+OEYpRa2Z2_>1~of#RItn6?X-`^Y%IZoKi9NI(V>ya}9(SqYdoA|QEm;y0O}9r8{kzb?4}Yiyl^Cgzr=I09?u8O3f1NPW^M|)){g2i3ih z_C-5PwxxZEA=fLlo#}-Be!1tSLvCH)zQr9>0#DJm^$KwuQ&4q}{^7*dRI-IzTu;AF zqLd3Fl};zep|i#@&VKyie-_$I>TJS~`y6KI(7x$NQ3{bfE7a*vp2xZ9IJFL1 z4-RG!csqVqX`xjG4oc_DOCfW(Rt%|fFOMk9UCa*sP+Vz{8<1`xg!ryUpccY&Tz&NhI--?Me3({YAT#guDLa+WSghv@eO$M%^xW;}dQ-oRzfK@s&8+qgImCXw&Lz!}a`^NY zX6Pb~&(QVtUeWclNUAfO=C=gTHKvK$$Rvi5-zQLYpJz6_FqYSA;~dfz@gYe6B!w*r zVlQT$>tzlTGy!dg<7pct01DAHV{ z4`$g(ONM&rl~RD8GJz<~=XoCc#EL(==5}$3yfb$YSB%pZBSH*)@ zJgMo~V=veAECXOpZF9v~QTiLGywYlD%IB?qQ8?;E-S*>TOa-F~EJFv%CX z2_4w!Nvj`Fn2e=o7bb=aPY!8$=eoJaE)1m#*1f z;_45NLp=@TKJul9dXm>Z@M(8q5;4+n1K-}ca#W6l zo+q?hV%*V0)=PcMfIsASqTrm*giI9(q3#RRrQDOmoMG{c{3G4ITw2mCz#zjL zDjp%mf^6{R22CRWCv}PEI*mShTKQC2?++WFD)qlZ@;&Wi(PD7 z%UhsidC=&78yVMqR)&39px`dl&*?)IoKJQO6UcH$X%EpJQp2pA`ws?AHVrZy>}+!4tBC=@f36OXk?Rn zTp{jKU%zVK8VdMcTG{7XT)HuemTiK&y#lnBTjeFJPP1zl&uZ;h656}k6RsNZ?M3-o zPBs8`ol)W`neT*K>qGk(c#qsjClj98&terG0JBE45!{ks$2%G>2>`m)>8cRc$jkkpOt-P6Cac;hx+-?I!P&UuOn*rt8weC#qQ#qK0X)U2%!d44(7zR0E7$uInN6LE^oWP-4Gw7 zHof-P!XB-i*)}jSM#_^md4w$QK3m$GJ~ywYh(OR zqHwo_b^dv2O%Sxj(T}!ilypkXXLL%X^ikI7lZ-?pGJ1?eml$^NSFBGd7y~Onx(anu z3A;b$e)3pS?*iufT}b+=k#nNJJBFXBaw#Va2idUcwFS5;o@wJzHsPlRGQTPH_u|5n zPxhf0VSuj-750kaYJ-2sXB+*Xlv60j7JsKqb@ktO3+G_O4O5&F@qW~VwY!h>3Ruck ztfw%w4z^>+d2pP2C5x&v6V>ssV9z-{*ngK|)#|wL4^UR2KsQm4tWD*whF( zUr@Gh2)zvJ@V?c{LSlDmBMh$n7S6>Fs&*ObG=$)pT$M~duAY(TNhJ4A;~7pe!xD^k zT#NymW{_~kk!IAFsorxIM%=q|)$ol(J4g(t$yOI~$UGKU72_w~G-yufT4Pf2_g~Um zaGx!XUXs=wP8*vXw;pT&{iz`0Vuc?-bqiuQGH`Gt!QrnQbUTgM--cV(8gK;G{f6SS zG0_C9kJ0g3Q@2Yp0eWJV=ktW@MEFV98;mDynhuQ~o4hfO+4bkA_C&87&M6HI!o@kY zZ{&-nlJ;My9ki0QYTHYJ!ZG*L;)s2pG!CQ!?5f%iVl!gZ7sV5RY?%qWO|sJE$mw&N zR3yrHVhBZ-3mEY?9EvUOU2+W3VO`-5P8heXbaMUR%{NRxNzUUS~Sp1Tsi-7m2cUcrsoQWnLtcF7*=bOtfZlAzT+?T zB=8UIIoOGLE<+C1vZo4a~#=Q?3029l|EKN1YcDg%;`)RBeQus@skn@~F@bQLBt zyHCh=Sj(w1m{ZbP@0$U3_5(eCGt%d4%6~VP`WB?QaXso*-*>~7IpZ}8({E49!D2jHE?R3(^~Ft9uAjf}tOE{h3^mAkW^-aNYW;cz7}2Vn`z|NW>7f3}vo_;Y zF-!q*~AQsSYY6hZ`G9-o;fZhz%lFg;?^IQfGlBKQ^i z$ib~>`Yqc^Nbm-SJ9Hy{hwticZzjuI(0Q8dz-sHu9%u1V+I6-bdIJ3mb}=n8By-@_wHF(@zKa*ij6lF1AlSWni>fdg z-k+h=W);8n?sZ~6(MAo!!VeHN^3|&abYX@oj!2_c+ubdH13qvxI8|l@2qkA$8q#v zIG9ar9d_`Oa8p|4m^y)}PRG#BEN(#@tTMBK<@s^}6zf&l zTW18@K!?_>g^kEB8sS=<%Wcya-D@8mTETs>S>~ykgbKMUk*6^V$tk7jejq&mAR}Fl z<+50JD_kCD`_P;-?ltCANyQ$Xs_F(gA<2k%Nf8$=T+1zezGp+qt~qc2-ONn%J=y#~ zevn2Qb1VP)`ip4NI?PO7ig$#eMa2@JPBJhUNTDQh0!P8|R9)+#mCqO}&ZhPW3z>ji z`4tj^cR=0}Tk7hFzQ8x1L)J-9bxs)b;srrsw4cMlF1j{B%F z_{^>|7khL{))+T?06Dc)r3}#KVOTpd@!25DrW3c#B%j*c;`I>uI*XgTI492eZ`r0u zQgF+fP_fmvD{xN-@=Wro^Sh5tfB7B}kW8&bMs5H1S{~kS&o@3?{d@{wrawt&0E3UN zh+RsAn~!1&0>bPu(cDSL4HiC))zs-HdPu@6s7K@_Tn7d`JQ98nJ2w=A8y$&F!r0(a zRBMbEY5y}x-R04plzeLBCIZK&x^?|(*AZc2pry}C`jo`Fb!JfXzPf@G7LCv@@F2zp zLQyRH;pdk{9>!{j^Y(aY&WGW+GL3XteH^iUOt|G)&aNAB5W%YYIUeNSu;*Gv)D5(c zjIp6qI4BHm9>ZaRHB3nXwtb9PS&%W!;}!E@=;NUhE9y(r=%HHrNo%2U^)n;krSjL; znzDRKNP=KbA@dbM`_Ph&12zv*V0qD=DMQg3jOwMWp-~HcCAq{&lAz#TL;~WT+`A`R1%Pi;KOGFNs@`PE%2yNTa3X zgUH+O?S{1#%619_P51TfMx9u%JcUzj%eyZ0B%}Mt%o18S@}{0AoSX|x3|P!<-SK<^ zoG)TGsH%lh2-07^F5VZ%oIc;2jgF~AxrWB_sBr#{lj%((;`#fEJ`5xkID(JgMaZAE z`*!DJOBVX%gHb;21{1ZQ5oVjZvqcCe$mh<$w_eVYcTz+oO)z(_Of(r!dGBx2I58rn ziyBbyoi%GtM{#4Li`WypKAVDRZ_m8EgWawI(p*(vGj)dy(0ItQ8k1(?-kjLuqV{pb zSA8%^fS4(a-N5l`6AkprWem3*Se3nMZbdG#j`<;%j{bMR%00yuVKmzj7I);~Gm&qk zPk+&VTQ_?B=g_&cs6oy#E^}3x=;bf8@?9ysD96%V<#*@yUs9&~4H4{@9wv91r76$O znw`|ss#}vjp)a&fzkYJsS>N;0FzAlp6qWHU0Jz$8PnI%m;+_DxHf)c^%Ug{anev<6 zg#pDP9YnxExvo@|eT|ulOkq9T!~#K$dLsUKU~QwlB!8|KCdJPjw>{eUepeuQMYvp` z()Jyl0SIBQbi=e-Kjor2$G)W%{HDYv($5I?34y zBTBTRFePsw5G{vdN8f>NI{njGcNK=rFhvcf23z9y5CdSvb%ythm^Jao2)DrnMq4~( zi=`|BiTYoCB-SXI1r=2sNWh*k;3j}wU1G64}E)ts^o z`%XnRa_bRT+@mc=?#KjZzTzu*J1Qf7L8VAo`B}4={$FvCA+JJi`I_qLMoaCMI=2pS zu`G2wupEHvlyAK6#1V1C0c(j6a5<9XQn`Oywg*UZ>yQ)KZWhkQ})ZHpa->#Z(IxTuyMe3x;g4?{R7pP-IoC*UKsLzQ-N z+GVc?WS`*av5=o;r0iT0Yb97IO(j*VSo^ z1d)Kd=_B+hre3S8X|%*zt$1@?lnVi)6D+$Gz3LMuZ%i~%Twm?Wo7ef?*_rQ>_>O<( zEW#o^ojkuzF^t(ujbHlga9XL6DNEoD(kIpGpsS*dwE1@z>{k@#X(b`4$&z?7oWD|V zvbz;=v~H@B+nN5czoY!i@4*8y25uNQH+}^oAOT$VlEFV|nJzq;Yk zD3~@l60B2@Gj8Zc67bFge}46){!4xSwBipZ9?bGCiCQx-)7WGop6 zycfl%bog}9N@Ud(hi(4(vC&PeP5(zBfPO#M#STX?v_B{~0f$A6B--e^@1Iq5?frwd zH1X#-LN|6GhPt{%;8!=X$u$34Z&+fji=+lJ!oD}p;`ZrGS_FAY*!GsPi&&&T+FQ}R zmdX{oVp24`L<#nyT`h{RrKYs^UYlR7fv}V^N7zbsrrbYkWjFmA?jtlAqg8q0y&e(m zDxFGmvrmF0$A|orN(l)->ZOUtCs{Y64+>J@l94}u`nhGsaN`|h)f!k_{f33{M|!`I zP5w0gm!yoP)gmocqU)zDJ&usk@pbEqkVO|}t>qt6uKEc3XqWJXq2EYD+>E0RF~AMY z!wsrA%>j42n&F=q7iEPfn0~VFrU5=lQa(NiK0L>A$Fhdi20KCzgB5nXu}W=um+hv_ z3rBgKOVV`+?lnVqK8#q=$bM{gVatQ@bA~ssvAGBuF5E{pFXAj;zdRu&iXkLI9;PR- z%8**nm&^UCZGQ7(M#jOamY@;N#00V$U%@E`-7nvH8GQE0;5l;|GrDPFQLoGA`>txq zgNl!oBc*Xd{}VRoKArg(+kK~0=U6f{-@cOlQh6tlzyovFa`&+efyBqJ5)S^}NBXW~ z^tVpV46jEo)|Z;tQTv(%*}ONq{$irahjb9MO1J;%9TBy47{!O+0DT4=@^663zWP~a#i=dL%r>9C)>so|X8WlZgyA1Q6&qF?) zEE1A;4qs_Dwu*f&&gD~6EA~zRFyQ8qri>;zlKRq~vGR*)b5PEx_z$hY$S{ZhRDs=ooRvT+{ zoUAaME3@_VR8*3`0ewDP2jLiz*xZ>;_(c^<>qHoPRG;ybo@Oo8iaM$(d7q+K_I+76 zOFGeNN^{a6F_J#u9jX`rD!f8Q58g|8eY5|5``HQdWfgbifzg_73X5u>yNtuQ|pMfuG^YN9;kJ$&_yG zuiZW>9&dHcLzU$W$U5!2i1lx-LlSPx_N$Y3>-VJi>LrX}zXS5aN+@2A+D7mHx^}pr zs-n92UN1W(VcpN^pA6!Do5945z$q^>*7Ea-a^X0@`m^knN_-?1e;pYJ*L<@?Urp8e z4qBz(JoexnQ1Uc(1xAN9@JZ?t?&);m<+_SbFhI2=cJ)QndX^Gw_*4&Bs;q~-slZ%t zZ$B6;V;wToXOqC~dwugn9x2yey=2+6JTG(6e%7^Azh;kPc7s6s=`EHWnZFmxNWz^Z ze5*{Es6grOj_rEji?i;br=DSH!}H60Yf8Gu(&lr6Qt%4&B+!cu;LVihLLg2T-Q-tL zolSnt!C;ymL7pSb<3FQIJJgFPiD2#E+$KP4T8A}GeS-1{J@Yv4l&`QA2P^pXxJ}Yb zx_uf@8-TA^O^Y`Z6b>)FZVzo0X&sTn;X17PJ*Sqnd z#q0x$u{k@{SUY4}5sFXxrMj6j`MJTpw>*4Z-2O!E&t5~kdzzYJj3Mz(=oP`_dYq^X z%LJ-$&UrR5DngZ?5FdiO+axPg5P^@I%FaXni;XE?0nq*+c~F~%)~d~qyX$@jf8>&6 z6#3k^ZG*L}B!kL8hQuGISH8xzAJ1K2&`^D2X0*J1jc|jp^4sDm4CPp?RYF7ZHc|*Q zji>Q;(%#8HNfr6Ad*e96P5n2IiT)5Q>)@o?@Xa#yDl zSv}~S==XD6=MJjN9b)bBS@G=Dyyn6N=4(KYZbd?R9>A~p? z_-E)q-w(@dq@Z6>ISpL*Sje>!dZJ^LrdG;D&p_nhvL1!VTbg4-C%?-dFHV=l!tFV_ z4=!5|g}<`$I>yJCL$bdv&YX{4q@-9nve_zU51$Yt02JTt}KYrUjt-R{51-JiqdCx<9GGqts{)$9HIiUFWKpbtgcgSOj=iIX^w z?g&?ch7Q(a%)#>}pKts!8LvMZ?>oEk_vF@T7*dfdc2-D!wSZNZ#m@M~fz=#ad*ImM zC<@=&G3m5PHO}22X7DmTal+8dztgL&*8%vjLiLBy|ErW16%@07k-O;Z&xNqy)8kR= zy{=G`pSVQR1mW%W_&Wqbv?%)gKsrr^@EHB0#U76uIabs8YG=(V#d{OqxC3;Uig4x z8ji30VQC1ih&X|P!AKQ(snd%sihinX7^NQ6uxpmobXz-i1;}&MNa=fNY-8`tnXD0T z)W)6Y9rCh8cjRgyK}Ob9MGvxC0w?k~&!G|8@}cv7>s`94V8gh16%0RSxwW`3D#KnroxVX zlxY-+1==q15LncjqMV8wII^1~>1BlSjLM~J1tD-c^FwGqu9Kfu`PIvRxbX(3uDv@C z!sb>eXFz4pY?m7rgCo68M^X5PbnKQ{5&TFBz98*Kf-xpcEb5AimH!y=QXB9qQE86X zcEW%_X~gz-pX&jhh}vB`3Km4!Ul8Vc8YXxwgWP}J8*=6>Z*0e3ht8#k9MDcU%MS%~t&` zk#%-1y!jP|Fd1$QE0UR9x;GzHHMjV!3MtRj z>e?TNb2+Z$rivPU@0E%b{R8#`k#!N2Du$U#t52ExHJYp}BUkJe~?V=!^0 zCXKeyu89G&_0W+X*&7-VWFqP6lWp4h^l+ohq!W#8Y%Nj!`*1bKzV*AJ|5e+Fu(>qZ z@W`oHL9tpF3gVImI>Pxbh2QWp^4{xy9R-iVsNrWR1wqd3R)x8r_3Mw31)@ehROwG* z-{og7P!{?<(D}vLHC|<)mA(2RBE%fL#3fF*W!KuP6ukRNE5v>R(?hQlDaKyo5#vGa ze|X(Nh|y)NjG5-&!w$kWe;MKOp~4Kd86=unI&;4E$p$+AjYT}|T;;>Mg|b!a{56Fn zaiRIUwMm9|x0FPam~G*H_<(RS<4f-(tc{WE{ZOgkRd3U#SJp788Do%d^tVsjfEdDp z@34wZ+D0oKyLeuZKqn|0bYvP4_BWDi4fvY1nCuHLoPqwZNcYAoyXnU`jzlH`HlhuEt|iSqay+t zLcPcyf-kPaz}xagthrHV?R>>A>?}V8EWTK0XyS3UwNds(z5JlqekCWWCEj*;SEK~H zfL;?ycKlHI!qa#Mb7& zKA80Uyg{^dN?qCcMip^lzYop$-qe?IN#jp?VM&(@0BV;#szsk=sT5qML7X$-C~Ga; zNq!}*)fimYRVj8>yzz;QR5ZqLymhD*K~<)xcAlp>s&H^Fv5E3(klBqX9E`gqv}6nX zoJ>nF_~mW}5f(9%{nL73|DIeG{37nys7I)BCdi-V1AB3PQ~agF;V4=3bUKB?O1qhI zE>vdF0r*GRUs0vud9*nWtC*X@_VEO^k|0#;BHaQeBVJ{wd87IdPau@CA2L#v=NTJ%t>q8(bxpl_CrDdSDtrqMA;gG}T zEh4+G-Z(TJA(yh#c)8*ot3S-8Gdv&9;r> zf3|q1?oD`b~pASQ1==#1eoWY_#y# zQ%avvp=fwk0X+r~EY+lG%IMILPC+7&AFLt#2#`gjOpE&vmhJ(Ngs_q(^Rj(JYuS~I zRS6z{UJu|+ILsjfV4xp$fbCENXZcEtR_J&lpMx5LRyNmdU~8dl`X(#$WgdW`CfH44 z2=I zy*>~vP+rcES=obE`9)057g^*3LK}&&^XLi(;#|e+AW2znjKk3RpMc(vupYFni-_nqD-?hpSmU3{%6><@?Ug@>#w>zG(ZaEh?$h zw>Pzae@(AsL_SBnc}3FE>7QWq$1y!W?a4=}cXtgNlYg^xq3(Ovw?dGF^b~pZHF!0E zD5HQlwz3+$qVGs;hq?teW4_A!Y6mu#LahNzoVB4BR#zasAHvTf16o7?GSt>(%?H9b zA5u#uEIn&0$OtT&|G%5O2?K4;HS{%-?w?rry5Y zY~Ji8Xmg{3R7{@KuYhitm`>aQ)CAPr0kKJN&=A4Bq!63yy)VE`(*@E+U@_o%Rh!rf z0JpaMq4e-e`9pSjj~SNby^%;E00^fZxHB+7E#_9&3^#B1+;N{^FKv)8#06>H<12G=s zk_l&k;5)P7d%|0Wq^rQ5b{ThIKfjf8&pY5ktoH-Z3LsSa2>5QNrVeAz1 zOmcq)vPV&}&7Ya1gSZswFypM#Z<3^QDsVJX&ey2zHP|v!HA+~qnyJgouX0LvIj~wd zX~6D~F_VKrm569;vHyBbqDf3L@^c(Hb>ay%Dh{^K2{Zoqs}BED`>Q<@^Oy?x7u=br zuFAkl&a*ka9bPJ{5xu5(RGml`WJN96LRD->pulk4cgBAG*OhtB=uM?r%=6N%?d~RJ zf|vo&r(<%^_7KB-`s85i7@g~~EX5^9iXXXbS$URtm1xX5WqPJcyR^M0%)mnZD12ko z@CMnC!-(Q4O-;}XRqpqz2G~n#>)6?jCgd9q+?=G@ONYvA-*t8|SH9TVrFz?k8n3cA zAS=`%_yfh^Wr}iji&cxFTzNWxpxu$nbz4@6A5dTM`S9=8Dh3|iCB}M+4;Ju$GgMX) zoyI;4-hOD)KFzF$%%yZ3`g1T5q}O+x@pZMxYsnXVFR~g?>vnTOt=7ZfO^ws!d8$wO zGfWAcoR3BSCFpi82^niUCbas=I!a(%1K4Ng$44A%`u-~Nq!EA^cw@jcpVc=z@2VSP z8!EENjZ}%}h^_DZR*~sq)*lSmj4D%r?OaBd3}HEao;5$bBKfVF zw}nMw>?cnD;o5gcNln=rR#-l|TlmEv8F#Zbjz}^7VnSTdm~6H9brpyMn0%kft^r z3fJPJO1j=6L8Pwu^EOZUEj@IVs7}C8LYd_Ak3XYalmyuh4wexz0OADF7ZTfUn2pn` z2P~MH)F}fo0vB$}We5cA_Kpf@I8yqNX+Af#}FsJ;BR z?x$gNe~*#@=PR6k53yU3`S-^9h|dwBO~VZGm%}{VHSzMngJW>NiBh5u%#ZHaxJ%7U zoHa%EBHvc-vwp$x>;BrqZv-k9JqpedR?mupXaX&0-UWw~Hd>WD(sARe=3BC>Ms3`= zM3?lb?Luj;KA-H)DsWMhf5SK=cMsjOkd)2Jm1E!zQ)eM;Sj-%#N#+$WUPwQu3(|CD zuO^@wVKP!8&wZ4`QFER5=f~EwjW@CEM18I?q|C3L>Q8amY}d`M#sKC6%1-XKO9C4H zgc+-)h6)_yGQd(>om@O=L*k)^o>H|0V53Im7abjfKW$x7=g&eYAx?j4RGN*{UA@UU z8JYHsnmSu?wPBx*GWvZL@fl4{L@n)sWk{fL=eTel3Vx|;aUy?oAGRB+nIT@w3Uh|*H~Ph56jsEb=v zyIZay3&9aiw2{y!!NCGiRgN+Q1bC@h4D|zR_<*TDWT3lap%;fm_-V{-g>2xmY=hzO zjlhvq&F4JJy(NA=Sl-5QtflE#-U3oyXj0u?u)pUE{fy727;(VSjwYJogzGx`6|JaQ z;ctmGyp69;7#cZ7hYo5@7u`Qp9VO+Ho0Kv?RZ;%wmFgi~v--+VctB>;?Y-jRy$l`W ze-$QCvjX?hYMOXEdOSVrQDV%>>cr|%BA;p?yH8iR7Vq-wC`_$fkWtR}70*z%u``7q z%B#92M@FSMXvPZY0z7q{0L>rt`J{|fipl^gMTKC!#aR zLwguU`)Y{v^aXx)hrnonO-QBdg4M2K6felz2&*K48`;0yq29I)0cC6Nw$y|c3%iQf z+hB1}64*Z0#Jry8F>+P#&Np35xn8KJaFxf}2iaoi@rDSz@l1sw!=hL?K%rC9n5JX@ z;+QeX*)vXBc%F2-yj#M5_txYTE!{;E?BPTEVv47{7xg_;gMWfqsmEBzO2Moj6cqk| z-s1A)Pi(_7Ew0>;?#rgWA4{@e_VhkD6owYJsV2EzN644-fHpZB5J@6DG_scdoj(Pl zk1=Ci+;A6Yq(Ie0j28X;dnjE;i4J&!*3vt1@W z=9nXa+5Ol$^6uS6a`lqRIvOaJM0W?14@ac1)q9*l z?ou=v>AS#I_T}$dA^%VL967dKH9Q1ooyx4p>)$bejGjNkLL?7jF|U6-XuTPy__Ru0 zGHcqD#&cPd?Ab;5VVi?Su9@1j(R(uqwhpG3lS*;Q^cI}O_m$QBE|+Wsm8AD79_cz? zbx2BK9}iuQO?M}f)jxe%FNq$~j$=D()% zJ|$29+l*vNM(u7fw8J&;SriTx)6p(d*}ilNU?WIJ3r7Cdv3FlgcZDLhifCC42d2xE z8h3ompN+p&c3wiqq#=))Gd!G{tls<_T4mMeZp9E{+PTawpShZ57UhL~XUzz9{VvOX zkwd+@=CLz7{~I(mvOZ9R`lL%Sap-}XU1Pfgj76S&vDeHt$_;D?N5^ z9%7d|W;7cto!G0lOji9v%ZV`3lmjA2Q|Eybwh1W{ov;vGdQeTM!vQVDHcPl$z9K%i zuo^kDYb+UWT+twgz)7i}#$rtn6RudB9LIkGo&^iSjJRe;)kLys&bs1kRDYV0ee})+ z`X)a)6je;_)KYh*T6eNXev!qvL@sXp#OFuC0kyYr@+n|zCum|UEu%}?Et_DHCLpi( zZ9Xh3q7>{+W5ISIHrPGUB%xFR$t6?t8^17nlcP9Bm7(5ezaK!0uP9I73%EnB5Gm!e zqsJEW4*v!xCp_Jr5uPjSiZ2d9h6E?y0?)n3z)l&jYI7`@_7f~QSh@AJSUH%R!9I`T zPJ532&gK-!QvF6Sy~@+V^zAgycFvCQ2@>sfm*T2gbH{Ij#%*!*k7G@L3e*4N>CTV@ z_-S#6Tfm0!JZXcz{%*+o62QI6n~QwLMooMfnTEq|EGJrwMAJ#EV~}E9IM%jx2^3-- zfcF&)nJ<{^7N4Jaw~Ck}e!ao5z;boCL&0Y>av)pgoC-><1rhYuKXyLQqgiqJRwx#; zj;7>&ShhGwb#5iWEDwYFGBQMX{}AGCR4;WJvkLo_LkAd}KMBSxRm3Ozc|v4E-M?Ja zK<<|7#lDz*8&Vke)Mts{r>Slh$Crur+M67ld2M)WmKvO$uMe=O6|eWEB*O1HH@`cJfrp z?mM76o5s(H&QEl^2Z_Scl`wB~d{aYlaYRG^Py&L)q-lsc3w|04crNDVY?q_5lI=$D zla!P+Sh{CKjekyZ)0#_-=K$7({L)_TR+b3s=SQUM0s<^;pPny88{U8|$C^fc!hO z8=&h@L-I~#N26Zc0Y}o@t; z7ZFK0Vv)IBO=NUg4Z5)?z;v4Y7B=(aMSyoNwmhgx_K+WzzF;rDKEpaqInKdHW$-uZ zo^+~Edff4;`Md~Sp9-u!qo0D=b$>!`$eKDyi8U}0iuGY|#UH>QXRp+Md`#|qI5cR# zn3QxKvimC|p4A++mPxdJ9j>hEhP=~o!{Y0^aTJQNPJF4}oaH3hbikeKKZ1mt;96pL zr+VdZ^3zOXv*;?Xt44=Um#J(}y5om!>bEbSy`Uhtu)h#HZGnIa4>9<=FZ-!}X5>HGUxnM*FoTD?$PMmy>%GHZb=uJNFJDK$>Lr3p5*m!<6eAi&EH`2|jSjyE}%d&Yxv0ZTPp z#NdeLO(cfrLrox)wGX5v{nVQ3%s`WsWHA$(tMBzj!c6Zt;f+U9OC-ABO?lz5EUuln z8B?rr|5u{2VIlOd&o}+dQkX|{ypm){T!r>n@-{+2S_tJ|54PT^f3HP#dfloKOm%Gz z(WJ6s&B}1}-{M|J! z?wEZ{elv9{IW{`jQQ1UaQ|lq%6CM+pWU430E9L_(udTV=r_Z|Of16hJz-k(QQbs@L zSJXt7hL!T%cEl0<1&g)HWl@*QuDQn_{M5HmcYjsc`$stnH$$iiF@7nkvsiqDAR{ee zyu0t2razUYIk@RMWNl&hZ4Pz9<1vUtVn)YF$+I{*~GfNUbv4YUo43~yD%um zhHnMfDvSBOVml&}^3{JpT@lK7*bgr0uiB3ezit-(^0~o~L=ANA%&-#%MjF-23=`Y- zyX6rSry28Z%9s=#t#V@oq;Z@Z+b`6LS9>92Dhm#gN228OX6m;k-iQLV;Ro|qQTG+x zzV9dW&7PfP6T#bcl515arFbu8Rjb3o&+IwCOk_W#1YDs$^TnsjtXh!p1M-N=P~HAi zGbJJxQ9%;sgCzEdf0{DJ_Ly&zYk%#{&#!cqHv`HX~OR7CnovR42o~gO3_IgO#0@Y8oANL?ZbqLA%h>DkpiT4?Z z!2Nnm5#M?2-0EOSnePt%)8K8umN!Pq3K&j4fE%+T@MgyJYDdE8bnqpxD2Wn2}?g>sX1ZgI$3&n_V)7DF&r+hSzWa zf{#}{&upJJV+Jz*4krCoL-=`l0gbxOM!4{5A}>d}RWu0Tq6V#p8^D8oE)#ao^3VHa zp2sS#Zn7b(HNSL=y`dHHncUQ8IHhVj6)FM4Ku!lYRouawr?>2u*)&b$;Mfb6#M@Q0 z2opXA9g{ssriEgaS)e^LA81IsvZmQG)6qCrlTD&fH;VTvyYwBiqxp2raV#mQ1KAI1 zihr_pfV9GKP+0$xK}FV%CX@9 zt~j2}3z<2u1>dO$rg?=j>ddSi1lZd)tf^i^;R8L`E#V5O5Ld-3>^_S&n@Ze@%N*(O*vTj=d!<{&&EvT1mVv@jIqjL|Cl_GDmD3372rafHnHNb0W zr*upWP7HQ}T~uy>#jPQwkO|~ZmW|3Fs;unt=f$ofS&aYZ+|}|t=8VdJ8y_>ft|1Gc zifRZ7@M-@7vOu+MD+$o*lsw2q5w00|0~SpVAuhsuhNgJt?D@WW+K< zom}|Md@zm(mWqF@Cy-t^t)Gj0hbLlV{+q+EHKF*_eYS|8hJoBIjE3Kk=w8hc`o?xH z61@t*4KHZd8bC)!>rpQ{isq__*f7dNxo;PTM?0YR(Ke&ipRmpgdobX?0MH7&ITolt9L2v}P&XvvmjulsoKF*C>e64Ym8UHTNy{!h)BVR1j+k7&7S}rk)ygy94HHm6vPX6%)D&2Y4NfTp zIiq=~7&f_b9DU`xGL0&+Ls_vWB8=ZX3Yf|^YTXW7;m7?D?fd5vXHkkpn!h05XCm{r zo9VI~#W3#%ZC<{%)qT3xPCp8F#xMJuCh@G~i-` zhE5-XbUfZy*xRICZK!m^)(HWrotV~SJ0#^=S!MOB8G{#gC(>O8N#Ki3YxKqW&$^EM zQ`6~bR~vXcL@1Q-Le&SstPd!GCn;=ZH2?0F^Fs1~+}yRQOWfue)V(mqFh(yUS|WCa zKJ9mAA}sVjhz&Qn^7STOtqd!}8-OA%9k-qjYpz(kh!(rFAkq=`t>F-tS_E3x!?)gM zkL~#D_R{FdVsIfnQfgn*ip?6d9AvOlbXoU*G&CjZd?P_~Dud-twIBOO#-PW2s>e{keb%4M!E1vn}=467=PiUi7!4Bnn7%(ZPE zm1zSruj5`st5X?|drk;e0FqVgkHiPcNV6}cAw=@_@)nwCIkOhVzB4}@dHD#$V)5jc z&ulhsq)J+dl|T!zVuQ4v4gglOUW7re%9(a^a#nPee7}$`eJ4H6QUc7b5IHr}1KhDx92=p=M_sz&7usgS}f9m&g8!Ssf4KYl$qiHp%Xk;Z_A zo23D3MDAGH7$$K-E}wFVthO}~$IHUG*HKaRuSnb)=Ju$$&(T*QF92th+IDORkd0l? z+M)h^xqZsuggd`nS_((p-x}R#)Va;Um&py^gX)(E;s^k#qd9Mim6%>{T+I1#e|Kib2(&V`yjp@jV7CQhw1x2*mS^Bwa_iy(p>qDLd;Od$wel*_% zg{&;&jb?1^OGab6AAm8cK1KV?KOW#t#F9ze+YDdv!Pn(|+fxrU4g3btwXq$FBa-+FE~C9{*YD(b~F}g60IoA7vd6oxS~KL7~9)LxXAu zlJMPf2|?tvLU?b%rB=9Mh-w?~s9(FJgviL1wrM~~j0$#2F3mb~_Jm^n$0=Q0A*uf0 z-1B}=u>PC-Ds;+w?p&qY**VGV;5>+~e%2g!rEG^$YYv!z1Q*t1o`U*r&X^wfIBTe7 z^jYPsck3J6w$&`c8Ai6LcTf3?g_bx2k6kTR^d^B+ZHi?dRaz^-u!3EM*#%|k&ZjjL zs>FmKbdOFwr`&Wb|1f*2ldIs90iQwHLnN)cXNiTc!17fgunu57IPjR+a6h}U2W^jx zu#_VN(*xvVfLD1HRH{CguWXEeSb1%q-ff*ynz)4X5?bX|k zJJ7>NAB{a9hLcKlic^@n8JOtm#K6!l)}emo&zSzi|9!aY zIvc9djZYKwS<&iOALT$5F+i>i@=5d-T?Nd;rg-{8yeg%XQh~K{PTVt^%&jh0Lq=oq-+WwO(4=M82l0D&IDg!`M zC{J5BH;P7;z0190j8$HUMy6t`Pr|m+r)VJ?rOMr)=^@BCD}9Zijr80k(N>z=sV3n_ zxZE}l$xFYmNgaIlT|W6iCR1pY4_z499{;_j!*^HL>`)3w=d|kzINP{1k6;#)>R_Ri z8uZ``;C-m;qfe&{Zf6^O*!m;nG4GIFlz z1uQ3@ET@r@6lS2sXoKmb+R?s_+DW3$`EB!SQVnLK6Syie|m&BH;}DA^mEqed5!v)yEW+X zAB_h0vB0;z`D81Lzg9d}{{YsOs@^Qa3^y}bH(zAs!!x}YLtIbE2#M#@ct)k?<0iu?z}6w-pt*W*3- zADBm0IFYg5yw>C&G&oowe24LWj;2DxjJR}KpG|`Dc`$rIXYH*8k^!F^1`)t)bTAN_ za(!-ENO?wBam7S2xK^GOZmEaR+nVkbZxfQxWq-lOS_Bjk9OdRbb4DPhVwedoMdlle zuDb1;`bYf2Jg00dG$Gdj`d)eQQM!^GQ8LJfjiqbm?z!7({NirK&x8A&f8dqCZV=FH zETpJLrFGp;9p@sPE&)xUS>_ueEbDiyCRa=G1^L)=dmPCOtypV43Lw@C_nJaTy^DU1 z4{4nyxbZ~ltlAWXPp{zFGUEpn8pJ~o^A()gqh-Y?7r_r?wS@Y9lg`zszjObIJRFqy zQy{P*<812V&9(U78*y{?Z6>7qdpk+Em?5eMBmb%maQdpMk<$>@IL^-Fu%ev!%C5@q z;Ej-c0DwgAB}V@TyyibOA`0q%vM5$2=KlxOurvMV`ug9lC=MoO#{c7ra)o5gxn5yM zDiS5-R>Ch5$Lkg2@V+I(gcBcwV<|=v^^1fOE)ti+6oOJpu23p^l}9ACj@apw;yUHK zegAFkbC}Vd+xpx%-Z|djpvVqv3`jy*0EQ7KW&|M=GQtuRTZJNpgMy8Qfq{)qaCXib zV01hq$Vgd)ixM7AfXe&@Fe(ZO5n$6=fF$ zD7c~@948>7KnFuZLrDuoKuahAAKYCq-*65Gr@-H(VBaACCp0i{PeMK*3tgmtgc&TT zuM*e+VV)wuaFejusCW5M0O=A!#62*V5g>R)49uXX+cQqgi!YtAKLp^9;5DI6TcE&0 z0)Sus?a}!u=*WQ2Z@V9xK4EJ0jSJ~9-+r2(c6lwVb67B_2xw3c;)5ZeGl~gPr|<$m z7*oK&Psu%ipf3x`f|T%^M@KjNC$;gF0OamV3toROzws%7b43_9uV2cZgqHp);xpi9 zPWAWr;n(DCj`A00;+Kc00R#6(X68}m_qT%RhOuLp02J4%m$3u3gbrjG+x*+5s@Sj`up?`)M3`-M0VNR}q@0qmSj`KOX;9*2XP*UudM=fA5 z$KrPeJo{GM+xM{vNaAlUC1^xKu;-_tXFSMXVMkGe|Ia&1ts>aTH>DlyVeCcfu41q&5 zs0_j0NA5m%vdnhc!$DkY1FFvE_m8I{?76%H(o3xYZM);tiZ0UOkK_TBZm{A&hUb#Q z?-qj3ht-sw7N%rI=nP7F$UHBItk4~jiqT&{!D#07IhorGVfw|ta<%POIUM&Y9_Od% zedo*&_H`gjVyM%>zeHP_nxU$!O{DR1F=cskRM}`!>{cjKW0!|! zj`b>=jjNl_EGq@y*990ZS*NQmbm>30o~rk(tGgd6XN0e|$C}o5>l&)*k8+`0;KV4T ztIo_ax4E}8dG0$E5&EJ_qjq}4aTO&7wZGKf9 zs?Yi8;DID;y5(R{HC@_uiPSyee(;3!>o8wSTkAQU%o)#xpZ zJ@85;-!}E!q9q5pKST&S%Q2S#mUvE_1?=G_D}!W3g5-GBgWUXUtayGHN!dL z&GJC8I3Ul+8JWfvY(e!eBWhsYz-T*LCQ>_(8~C~5442c4EG-p+(n+bZho}Acf1S^9 zH&c`Cbv-C(Wofs1t3VIY9W3Tk^0=wB>o@mhyAHz`GS)aI3d*CXPn+cj40 z1DEMaYSC>lbxxm$&vYjeT|~hD%)K~Gy;$2msHQ3$Dw81 zKvT40Nulno^sNeW6Y%G!!!fg#;E-70NF|2zv%z*db#?q0i#d;8yG8TxsdQf$qJ~

Y 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 delta 36943 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 a+&wfrI@H?-0995~QilV;U_(nIz<&VhFfXY9 diff --git a/doc/software_manual.tex b/doc/software_manual.tex index 0cd1bf0..292f868 100644 --- a/doc/software_manual.tex +++ b/doc/software_manual.tex @@ -1,4 +1,4 @@ -% Created 2023-10-13 Fri 21:07 +% Created 2023-10-18 Wed 13:06 % Intended LaTeX compiler: pdflatex \documentclass[11pt]{article} \usepackage[utf8]{inputenc} @@ -15,10 +15,10 @@ \notindent \notag \usepackage{amsmath} \usepackage[a4paper,margin=1in,portrait]{geometry} \author{Elizabeth Hunt} \date{\today} -\title{LIZFCM Software Manual (v0.1)} +\title{LIZFCM Software Manual (v0.2)} \hypersetup{ pdfauthor={Elizabeth Hunt}, - pdftitle={LIZFCM Software Manual (v0.1)}, + pdftitle={LIZFCM Software Manual (v0.2)}, pdfkeywords={}, pdfsubject={}, pdfcreator={Emacs 28.2 (Org mode 9.7-pre)}, @@ -31,7 +31,7 @@ \setlength\parindent{0pt} \section{Design} -\label{sec:org400bcfc} +\label{sec:org7204e7c} The LIZFCM static library (at \href{https://github.com/Simponic/math-4610}{[https://github.com/Simponic/math-4610} is a successor to my attempt at writing codes for the Fundamentals of Computational Mathematics course in Common Lisp, but the effort required to meet the requirement of creating a static library became @@ -48,7 +48,7 @@ the C programming language. I have a couple tenets for its design: \end{itemize} \section{Compilation} -\label{sec:org050196a} +\label{sec:org16cc307} A provided \texttt{Makefile} is added for convencience. It has been tested on an M1 machine running MacOS as well as Arch Linux. @@ -57,8 +57,8 @@ well as Arch Linux. \item \texttt{make} \end{enumerate} -Then, as of homework 4, the testing routine in \texttt{test/main.c} can be run via -\texttt{./dist/lizfcm.test}. +Then, as of homework 5, the testing routines are provided in \texttt{test} and utilize the +utest microlibrary. They compile to a binary in \texttt{./dist/lizfcm.test}. Execution of the Makefile will perform compilation of individual routines. @@ -74,11 +74,11 @@ Which is then bundled into a static library in \texttt{lib/lizfcm.a} which can b in the standard method. \section{The LIZFCM API} -\label{sec:orgc36a923} +\label{sec:org832532a} \subsection{Simple Routines} -\label{sec:org3a0ee85} +\label{sec:org540b602} \subsubsection{\texttt{smaceps}} -\label{sec:org3d05353} +\label{sec:org4d03b6e} \begin{itemize} \item Author: Elizabeth Hunt \item Name: \texttt{smaceps} @@ -104,7 +104,7 @@ float smaceps() { \end{verbatim} \subsubsection{\texttt{dmaceps}} -\label{sec:org2e7b4ce} +\label{sec:org2603bfc} \begin{itemize} \item Author: Elizabeth Hunt \item Name: \texttt{dmaceps} @@ -130,9 +130,9 @@ double dmaceps() { \end{verbatim} \subsection{Derivative Routines} -\label{sec:org2794f8b} +\label{sec:org95c28e9} \subsubsection{\texttt{central\_derivative\_at}} -\label{sec:org031253f} +\label{sec:org950de62} \begin{itemize} \item Author: Elizabeth Hunt \item Name: \texttt{central\_derivative\_at} @@ -163,7 +163,7 @@ double central_derivative_at(double (*f)(double), double a, double h) { \end{verbatim} \subsubsection{\texttt{forward\_derivative\_at}} -\label{sec:orgd674538} +\label{sec:org832eda6} \begin{itemize} \item Author: Elizabeth Hunt \item Name: \texttt{forward\_derivative\_at} @@ -194,7 +194,7 @@ double forward_derivative_at(double (*f)(double), double a, double h) { \end{verbatim} \subsubsection{\texttt{backward\_derivative\_at}} -\label{sec:orgd6eba18} +\label{sec:org591836d} \begin{itemize} \item Author: Elizabeth Hunt \item Name: \texttt{backward\_derivative\_at} @@ -225,9 +225,9 @@ double backward_derivative_at(double (*f)(double), double a, double h) { \end{verbatim} \subsection{Vector Routines} -\label{sec:orgc055fd6} +\label{sec:org5254fe4} \subsubsection{Vector Arithmetic: \texttt{add\_v, minus\_v}} -\label{sec:org3adc62d} +\label{sec:orgf802d61} \begin{itemize} \item Author: Elizabeth Hunt \item Name(s): \texttt{add\_v}, \texttt{minus\_v} @@ -258,7 +258,7 @@ Array_double *minus_v(Array_double *v1, Array_double *v2) { \end{verbatim} \subsubsection{Norms: \texttt{l1\_norm}, \texttt{l2\_norm}, \texttt{linf\_norm}} -\label{sec:org8064505} +\label{sec:orgc56e22d} \begin{itemize} \item Author: Elizabeth Hunt \item Name(s): \texttt{l1\_norm}, \texttt{l2\_norm}, \texttt{linf\_norm} @@ -292,7 +292,7 @@ double linf_norm(Array_double *v) { \end{verbatim} \subsubsection{\texttt{vector\_distance}} -\label{sec:org1c3d377} +\label{sec:orgb54922f} \begin{itemize} \item Author: Elizabeth Hunt \item Name: \texttt{vector\_distance} @@ -313,7 +313,7 @@ double vector_distance(Array_double *v1, Array_double *v2, \end{verbatim} \subsubsection{Distances: \texttt{l1\_distance}, \texttt{l2\_distance}, \texttt{linf\_distance}} -\label{sec:orgb3ab95a} +\label{sec:orgf22f8e0} \begin{itemize} \item Author: Elizabeth Hunt \item Name(s): \texttt{l1\_distance}, \texttt{l2\_distance}, \texttt{linf\_distance} @@ -339,7 +339,7 @@ double linf_distance(Array_double *v1, Array_double *v2) { \end{verbatim} \subsubsection{\texttt{sum\_v}} -\label{sec:org26165af} +\label{sec:org4593341} \begin{itemize} \item Author: Elizabeth Hunt \item Name: \texttt{sum\_v} @@ -359,7 +359,7 @@ double sum_v(Array_double *v) { \subsubsection{\texttt{scale\_v}} -\label{sec:orga88d1b9} +\label{sec:org3123f61} \begin{itemize} \item Author: Elizabeth Hunt \item Name: \texttt{scale\_v} @@ -378,7 +378,7 @@ Array_double *scale_v(Array_double *v, double m) { \end{verbatim} \subsubsection{\texttt{free\_vector}} -\label{sec:org7caaac9} +\label{sec:org983efcf} \begin{itemize} \item Author: Elizabeth Hunt \item Name: \texttt{free\_vector} @@ -396,7 +396,7 @@ void free_vector(Array_double *v) { \end{verbatim} \subsubsection{\texttt{copy\_vector}} -\label{sec:orgaa8259c} +\label{sec:orgde05d32} \begin{itemize} \item Author: Elizabeth Hunt \item Name: \texttt{copy\_vector} @@ -416,7 +416,7 @@ Array_double *copy_vector(Array_double *v) { \end{verbatim} \subsubsection{\texttt{format\_vector\_into}} -\label{sec:org9e52289} +\label{sec:org2e779f3} \begin{itemize} \item Author: Elizabeth Hunt \item Name: \texttt{format\_vector\_into} @@ -446,9 +446,9 @@ void format_vector_into(Array_double *v, char *s) { \end{verbatim} \subsection{Matrix Routines} -\label{sec:orgb3fa0ab} +\label{sec:org2354147} \subsubsection{\texttt{lu\_decomp}} -\label{sec:org796836c} +\label{sec:org3690faa} \begin{itemize} \item Author: Elizabeth Hunt \item Name: \texttt{lu\_decomp} @@ -509,7 +509,7 @@ Matrix_double **lu_decomp(Matrix_double *m) { } \end{verbatim} \subsubsection{\texttt{bsubst}} -\label{sec:orgd15005d} +\label{sec:orgdeba296} \begin{itemize} \item Author: Elizabeth Hunt \item Name: \texttt{bsubst} @@ -534,7 +534,7 @@ Array_double *bsubst(Matrix_double *u, Array_double *b) { } \end{verbatim} \subsubsection{\texttt{fsubst}} -\label{sec:org6beb581} +\label{sec:org60d3435} \begin{itemize} \item Author: Elizabeth Hunt \item Name: \texttt{fsubst} @@ -562,7 +562,7 @@ Array_double *fsubst(Matrix_double *l, Array_double *b) { \end{verbatim} \subsubsection{\texttt{solve\_matrix}} -\label{sec:org948d51a} +\label{sec:org914121f} \begin{itemize} \item Author: Elizabeth Hunt \item Location: \texttt{src/matrix.c} @@ -598,7 +598,7 @@ Array_double *solve_matrix(Matrix_double *m, Array_double *b) { \end{verbatim} \subsubsection{\texttt{m\_dot\_v}} -\label{sec:org41ef025} +\label{sec:orgae0f4c9} \begin{itemize} \item Author: Elizabeth Hunt \item Location: \texttt{src/matrix.c} @@ -620,7 +620,7 @@ Array_double *m_dot_v(Matrix_double *m, Array_double *v) { \end{verbatim} \subsubsection{\texttt{put\_identity\_diagonal}} -\label{sec:org0d72ad5} +\label{sec:org6d84f6a} \begin{itemize} \item Author: Elizabeth Hunt \item Location: \texttt{src/matrix.c} @@ -639,7 +639,7 @@ Matrix_double *put_identity_diagonal(Matrix_double *m) { \end{verbatim} \subsubsection{\texttt{copy\_matrix}} -\label{sec:org239b3f2} +\label{sec:orge750c56} \begin{itemize} \item Author: Elizabeth Hunt \item Location: \texttt{src/matrix.c} @@ -659,7 +659,7 @@ Matrix_double *copy_matrix(Matrix_double *m) { \end{verbatim} \subsubsection{\texttt{free\_matrix}} -\label{sec:org411f23a} +\label{sec:org4ebcf85} \begin{itemize} \item Author: Elizabeth Hunt \item Location: \texttt{src/matrix.c} @@ -678,7 +678,7 @@ void free_matrix(Matrix_double *m) { \end{verbatim} \subsubsection{\texttt{format\_matrix\_into}} -\label{sec:org97f3a1a} +\label{sec:org308ee0d} \begin{itemize} \item Author: Elizabeth Hunt \item Name: \texttt{format\_matrix\_into} @@ -704,10 +704,94 @@ void format_matrix_into(Matrix_double *m, char *s) { strcat(s, "\n"); } \end{verbatim} +\subsection{Root Finding Methods} +\label{sec:org8981156} +\subsubsection{\texttt{find\_ivt\_range}} +\label{sec:orga5835b0} +\begin{itemize} +\item Author: Elizabeth Hunt +\item Name: \texttt{find\_ivt\_range} +\item Location: \texttt{src/roots.c} +\item Input: a pointer to a oneary function taking a double and producing a double, the beginning point +in \(R\) to search for a range, a \texttt{delta} step that is taken, and a \texttt{max\_steps} number of maximum +iterations to perform. +\item Output: a pair of \texttt{double}'s representing a closed closed interval \texttt{[beginning, end]} +\end{itemize} + +\begin{verbatim} +double *find_ivt_range(double (*f)(double), double start_x, double delta, + size_t max_steps) { + double *range = malloc(sizeof(double) * 2); + + double a = start_x; + + while (f(a) * f(start_x) >= 0 && max_steps-- > 0) + a += delta; + + if (max_steps == 0 && f(a) * f(start_x) > 0) + return NULL; + + range[0] = start_x; + range[1] = a + delta; + return range; +} +\end{verbatim} +\subsubsection{\texttt{bisect\_find\_root}} +\label{sec:orgb118fc7} +\begin{itemize} +\item Author: Elizabeth Hunt +\item Name(s): \texttt{bisect\_find\_root} +\item Input: a one-ary function taking a double and producing a double, a closed interval represented +by \texttt{a} and \texttt{b}: \texttt{[a, b]}, a \texttt{tolerance} at which we return the estimated root, and a +\texttt{max\_iterations} to break us out of a loop if we can never reach the \texttt{tolerance} +\item Output: a \texttt{double} representing the estimated root +\item Description: recursively uses binary search to split the interval until we reach \texttt{tolerance}. We +also assume the function \texttt{f} is continuous on \texttt{[a, b]}. +\end{itemize} + +\begin{verbatim} +double bisect_find_root(double (*f)(double), double a, double b, + double tolerance, size_t max_iterations) { + assert(a <= b); + // guarantee there's a root somewhere between a and b by IVT + assert(f(a) * f(b) < 0); + + double c = (1.0 / 2) * (a + b); + if (b - a < tolerance || max_iterations == 0) + return c; + if (f(a) * f(c) < 0) + return bisect_find_root(f, a, c, tolerance, max_iterations - 1); + return bisect_find_root(f, c, b, tolerance, max_iterations - 1); +} +\end{verbatim} +\subsubsection{\texttt{bisect\_find\_root\_with\_error\_assumption}} +\label{sec:orgf5124e7} +\begin{itemize} +\item Author: Elizabeth Hunt +\item Name: \texttt{bisect\_find\_root\_with\_error\_assumption} +\item Input: a one-ary function taking a double and producing a double, a closed interval represented +by \texttt{a} and \texttt{b}: \texttt{[a, b]}, and a \texttt{tolerance} at which we return the estimated root +\item Output: a \texttt{double} representing the estimated root +\item Description: using the bisection method we know that \(e_k \le (\frac{1}{2})^k (b_0 - a_0)\). So we can +calculate \(k\) at the worst possible case (that the error is exactly the tolerance) to be +\(\frac{log(tolerance) - log(b_0 - a_0)}{log(\frac{1}{2})}\). We pass this value into the \texttt{max\_iterations} +of \texttt{bisect\_find\_root} as above. +\end{itemize} +\begin{verbatim} +double bisect_find_root_with_error_assumption(double (*f)(double), double a, + double b, double tolerance) { + assert(a <= b); + + uint64_t max_iterations = + (uint64_t)ceil((log(tolerance) - log(b - a)) / log(1 / 2.0)); + return bisect_find_root(f, a, b, tolerance, max_iterations); +} +\end{verbatim} + \subsection{Linear Routines} -\label{sec:org32fc5a8} +\label{sec:org6f4fce5} \subsubsection{\texttt{least\_squares\_lin\_reg}} -\label{sec:orgb604dc0} +\label{sec:orge810f5f} \begin{itemize} \item Author: Elizabeth Hunt \item Name: \texttt{least\_squares\_lin\_reg} @@ -737,12 +821,12 @@ Line *least_squares_lin_reg(Array_double *x, Array_double *y) { } \end{verbatim} \subsection{Appendix / Miscellaneous} -\label{sec:orgec2d061} +\label{sec:org85d2eae} \subsubsection{Data Types} -\label{sec:orgaae4ac1} +\label{sec:org198ca2d} \begin{enumerate} \item \texttt{Line} -\label{sec:org802a412} +\label{sec:org1866885} \begin{itemize} \item Author: Elizabeth Hunt \item Location: \texttt{inc/types.h} @@ -755,7 +839,7 @@ typedef struct Line { } Line; \end{verbatim} \item The \texttt{Array\_} and \texttt{Matrix\_} -\label{sec:orgba5e93a} +\label{sec:org4a1c956} \begin{itemize} \item Author: Elizabeth Hunt \item Location: \texttt{inc/types.h} @@ -787,10 +871,10 @@ typedef struct { \end{enumerate} \subsubsection{Macros} -\label{sec:org03e6970} +\label{sec:org1976330} \begin{enumerate} \item \texttt{c\_max} and \texttt{c\_min} -\label{sec:orgee6bc6a} +\label{sec:org208b148} \begin{itemize} \item Author: Elizabeth Hunt \item Location: \texttt{inc/macros.h} @@ -804,7 +888,7 @@ typedef struct { \end{verbatim} \item \texttt{InitArray} -\label{sec:org00fb8ca} +\label{sec:orgccc4528} \begin{itemize} \item Author: Elizabeth Hunt \item Location: \texttt{inc/macros.h} @@ -825,7 +909,7 @@ typedef struct { \end{verbatim} \item \texttt{InitArrayWithSize} -\label{sec:org5a66a1d} +\label{sec:org7e87550} \begin{itemize} \item Author: Elizabeth Hunt \item Location: \texttt{inc/macros.h} @@ -846,7 +930,7 @@ typedef struct { \end{verbatim} \item \texttt{InitMatrixWithSize} -\label{sec:orgca67294} +\label{sec:orge6ec2b1} \begin{itemize} \item Author: Elizabeth Hunt \item Location: \texttt{inc/macros.h}