From 57effa6f685cea43406885e7aafebb2a255c5ae9 Mon Sep 17 00:00:00 2001 From: Gregory Tunell Date: Wed, 15 Aug 2018 16:23:20 -0400 Subject: [PATCH] AMA to AndersonMoore --- deps/bin/libAndersonMoore.so | Bin 0 -> 177292 bytes deps/libAndersonMoore.so | Bin 0 -> 177292 bytes src/AndersonMoore.jl | 21 + src/AndersonMoore/AndersonMooreAlg.jl | 108 ++++ src/AndersonMoore/augmentQ!.jl | 18 + src/AndersonMoore/buildA!.jl | 57 ++ src/AndersonMoore/eigenSys!.jl | 34 ++ src/AndersonMoore/err.jl | 46 ++ src/AndersonMoore/exactShift!.jl | 52 ++ src/AndersonMoore/numericShift!.jl | 48 ++ src/AndersonMoore/reducedForm.jl | 32 ++ src/AndersonMoore/shiftRight!.jl | 22 + src/util/checkAM.jl | 64 +++ test/defineAndersonMooreAlgTestFuncs.jl | 726 ++++++++++++++++++++++++ test/defineErrTestFuncs.jl | 95 ++++ 15 files changed, 1323 insertions(+) create mode 100755 deps/bin/libAndersonMoore.so create mode 100755 deps/libAndersonMoore.so create mode 100644 src/AndersonMoore.jl create mode 100644 src/AndersonMoore/AndersonMooreAlg.jl create mode 100644 src/AndersonMoore/augmentQ!.jl create mode 100644 src/AndersonMoore/buildA!.jl create mode 100644 src/AndersonMoore/eigenSys!.jl create mode 100644 src/AndersonMoore/err.jl create mode 100644 src/AndersonMoore/exactShift!.jl create mode 100644 src/AndersonMoore/numericShift!.jl create mode 100644 src/AndersonMoore/reducedForm.jl create mode 100644 src/AndersonMoore/shiftRight!.jl create mode 100644 src/util/checkAM.jl create mode 100644 test/defineAndersonMooreAlgTestFuncs.jl create mode 100644 test/defineErrTestFuncs.jl diff --git a/deps/bin/libAndersonMoore.so b/deps/bin/libAndersonMoore.so new file mode 100755 index 0000000000000000000000000000000000000000..e4005f696b0bd1aeec9b0d948adbd9e6d98cf58b GIT binary patch literal 177292 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%0DMW1As<~R3M?F&Mw z+0h$2@W|rz(dmEnEbi~+^F&IwT#5$Mn@bJ_BIh(Dtkb;sH&v4T6|Gol<1O3MALje; zgQ0;Wo><{|#BHF&!9e7KhJ-tHiH3xE@v@&U9+PQ)hU%`17W~ztJjI;q$Uuxja`3zN z8R=HZL4U>8UgnTdD2B_97bA(B(2#Jx=A!zzbRk;N0k<2Bj;q4Fi0ug|xe`C%=Pts9 zb{~g>XM$=)yAk>!J39DTf8^IjNImoSL8dwTFD|$ozj=1aTVw{eobb$hQ1Qs;`0tp< z@GqA1W+iUv;YFraW__|BmF5cCnjGT!o- zIe5!>W65E(AEo&5H;A=%>#_{K55jC~NEi+>TC;W}a3ZvOgr{wMcoloj#TWt8G2-}u zD+5f#rFgqTNU#|JZb{S`(cp4VF#5ap#epdkQgWc(T%4OP(=@T!m`jUPdEfOWLKS4GAe)C@h6~ z6W=Bes$HP;z!vjm@6kX+*i+9&hg*L0+RI@!>&snsv#_v%Dy3CJ-UK$%cQgKlTyDG; zgmH7rG5x3k5xvEIbtJsbGa)i=oj?7T(pmI7R%Y}@%$V<>lg$qQ@T1w$z#HvB_s*>7 zMP}DjogIB8--+;kghiHAEvCNVE;n z=pFRs#QUS0J=X11_DCMkeXcJD8t>J`EZJG+8|W@?)h`H+Vg~j(;`Si#C_&kbAXXdM zW_^~~Xz=ik?Y9C%=J)OS(T9_nP9}|$WVyrb@Y8r-xMMFXZQhpi|HsKfY zU8BD7zsNKgUEE=|Gin2C%4flzjK~sSO9WQ}@e&}n1?2a}n#@SS{T_Ie`vYeG^>~V= z6MsztIqlw6{F`#DFN5@H0W%gD{z+EoJ-)%M8HS49sO~VLOZK#LuP=hOA{+1cT{OmV_f9(jE@A~!Q;zmV7BAxM80}(|t zo@sU)Fc`~QWx!w{#Pz2Rz4rhrG^z6JEf-AZ#}io>ad&#J4>G zfUSTnpUv)Dn}c7(ABu=(V|U}xx8cbzRe*j&GFfI-6r`wVPcYPUZFI@b z_CRFFXkd@JC)!8jJrWF~oY^5AX=}Z?Sv(?nV+xcoYBP zIuXK%{^t1C0C=N6V4Si$2ckQ9YETEM&B6D@u7Mcw@e8KAq=m&OgJut4>RmM&G=AK+ z4mJ6QBX~(cgdKBBTeICe0q>m@?X!JO0GGYBJhrGsr$XQ@ccxP0*7N67BgK=(H+>6i z>z!xK@dJI>yScF!E}enz)VJn%Z)^k&9-yI7zfevN zA@|)gkM%8Jee`yb0Y&)99T%<+q4nzkLhCb;nDC`r7kBZM;CGstZ~-!@%QKP6U!6y- z^{sy~La=W!*H{7ihBNs**-!#4+y+mgu)!4e`%i@E^gF?K8i7Z-Rz#p%WwH$|EPGzhm~T0a@uM!O-?2JF%p4 z|CH^11Miu7yFJUj9e)I-nJ=4q+n)cR8CiGp55GX|6R`AdEIB~d=J;vg!wT@}HXjAC zkn`teM`!Xcf}teF z8qkD)DWWBRhp3XlF~Kx>9<1^RRRFNPA>q#;AU*nf}?a>E|; zyVm7q!hr_W!gjC48X&(py1dII48_LhVJL?I zWZ*6CllD6?(>w=Ha0GD2zXHC++#kCW!#*q2Ae#iO|FZ3$^YgThhJ*mv^V5)U8GccX zdZ}SV=XXpAMrP9=g%Nkryzxi&d?d!8%Z!XG^G9dk8Ao$SB1(E!PQ?bEKYA0+yBmYi z+~0df?P44dNlnM=4R_N=a4@%-19op?W5>UNgk9N^p5$HeGv@KEs2}n?4K$@-{M9D; zW)gO;_+q;|utDVE=7dCR_WTz)BT@=;J?dSV4<^CTSDDe* z0IrLUdrX(3&!*dIFZn^jDZbtAaLF@LBf4TF#E2xByQ_9JBn;9b14jKlWJNPPSlV;u=)m}8cr3?pJIGcpXX1m|dP zmoep+XsF@;(Dp9iQB_y}e}>G#sEHGlD7C0yqb3RpmS`eGGdj_UP7pOHSf%(ztyb)d znp9LkY!dZ29-ysl(b~7RuWxJB7OS=ewHmGy6*YLpd%VvW1r(Lwh5SF?z0aAMAoTKk z`p*M%Zfmc-_S$Q$z4qESr^!c}a!%z=e+_Nxi&8MeP}tm5z77Fltx1QzNtnWn@PjbX zJmY8dP{Y?CLjApat3I*gsX=;-%r7Ce8nmdp<|ME9F1e*iBA(q1-h}7X2`0)}R*(oi zhN-2Wb0}7peTohw$mfn_FRVwexL<8o8j%U9XVTYOX5?k8sg7k~0+jBjkW=$a)O}%2 zn$*tqD~+1`n2TH1#xE~Rn$61tF3?M7nt2#~5*Nc)84H`4?!*%6yrAwgE;z-E=QUh6X7MTf^eoq2{~WHm?m?NQ1(i}duNbH zSskl+ef9@rJ-D%XxgUHy)}7E68$Ya`*zJ?`?sL75X8jX$)<}0tw7zCT3x2~_4b7Wr zu)d-XkodHKzVm~K>wOZ{!TQ-*rf)awgsxasoX?7`m>Y??9G}=iWQ!*9cz42q4Q(sK z>_AoiL8RlG@LhgWA3_LKLrOkhX6#boa#KTn=BesKF7f8w2~2F_&MnF4nH1G-_{Rfk zEarC8a~A{VqXH&Ks~B;f|B!OpNt~-Cyof$3z&c+Xf=a-}hT_n?jW{~Vof_%yL?btK zD)R1}M&h~S)H}^{!|I5s4;`Fr355?~p_ui<=r~5*mS2Tiao);?kcx@E$~C!P${FNS zfL}6yFJ5|=VPK96H+oI?DYQfTpPcz+XiQ+OiJ!o@l(VAK5>CI7yC9%?FG!(>(1{l| zj-lUYp2vGO^$H(K>sA?N)33_K!B1p8#8IwMulS3; znEOSn@@2x1^`U11d$(^R`3-9+L2!1WXsY1wE4B-~8tIaRrHblnUTS?#UWVxbxBduY zPfvNDU7;2;TfhaWcb)!6wh5zVlhnJf*SpU|I_i;%-erL%ve~(lB8{oE@5&*})#v1t zb8GNPM=+D+7 zpVqrW{R&*y+KUGr170|*f^d4zmeboV_TubBQqEpJ0c@^{O87__1(-E_A?~@` z<&w{hJ>w~Oxyjzcg}{e zyGSViTg2q^qshp;Tw}UsZ%?*E9&I1gN$f82Gn3d&AXku&e(*{r=|n0%_3N2Er;~fe zQ%*IY`imxKx6@}YZYKPot)4WY;I_@C~j&gztvRy85z73*;I>3epo@A(paPxWKzTA$8_9e*Nchy&`-HJ7cS zAW!tJ4(!?I%qaLB-<9nVCfhBE<`<)tkCN?6WQ*;pSYxuK*HQdZ@6JY_cu8h{Uqkuk z`k6zVlmAX>YHRq7wtYS*(ynvClTMUpTyG?{W(9@`$If*|^Dg4Opq_l&$~tR#Z~^Po z1Uf|q&BqThEVV3<4^g>LeB`i7F-KI2IifP3Il*|Ic%zYZc+;{UFpQJ>Y(^bG$qP*$=wU^dt^_^hyRkhLrpu_2;uMPaFV3D>dXJ6|^2{FE$n#!uuSt0aow`A>A zpgNguQB}q&MaPWw?5^Z@8@IXr9OE9;#*PgoyX>B??e{ttvuZ~G#s*mW)6M)i}`E%!&;wuD-K;A0eku-b-roe{w7(va3Ch)stZYc@tYPNGh*H(_km z?GI45qkqmX`kvH7?KS#!uHzTvgIdl-3I~pn4y1pj=-=hi{S{I%WEwZe>fsryGL=Re z=219GcgE`8b)q85{0tGY93jtK3IuhPa)y#6tSgx7so5y{yY74UJ%1s47a=Re9##}Z zYf`SWajCk!=aI}^g$x$L#LlZ;f~vyw$QEq+Q@))^IS&IVEYxV`FyMXtJ|p2xqg%Pq z{~Cx=%&w1^|0_}`)C;{&k7bao+*sSZ_8>Xq8&vp&Z`6DhnLkJ9y;ep2iWxpryKX1g6@8I5 z<>rm^_7c_6OZ-w{uXD+@S@@4&UG8dA@@&dT$C;G1m*u&({a|R+JDnl0zL+zuGLd$_9j2Ap&168b<{@MoLBi;(C8K4obb-o ziy24vHB_#oT+!q=qRC6XlpO3@vuW;CG4CSAOlbRJThysu0z1}6D?dwwHiKo0_VYMA z#{~W~WIb@U5?Dyc?qG>AYkR`45X4#SeF%<$qIyB%X9~XW5W)mT<4X=(H8? zCTUFXBiced*M6TtS1IMR`d}&Nd)!GZf{K^8O-b&qHh882JnLjX(l!K5;KvL>sHtbL zjhG5Ua3)~=v;x*k8h9U#{A_u`EgKG6z3UXrbnA)fc9vazmE6-ikxj475Z&Bu`<0B# z;YAY@`751KqUW7lMPlH9X{uT*S^F1#u1)IKnZqw*cGv1*^lbA`axoWpTXF^0sCP2+ zHex1-S%4LLoBNHz>2Brj6WyuA-6Bz=9ev5BwlH%8Sqm}0gzVV=nZn#3Z(gTD-Qk_7 z$DT%dS+VjpEtqFIl}dXD879^l#@wNo6n}R4l6Z4?5rAFTq)>ABbqu3?$!OAiwNv_D z$A~O?jmsJLn*K(pU%^ms_U69cV-`lo?-p5b5cI{HGh~N{`$yWgqL$srh%tz%#>|92 zh`LV^oN`x@fkH9z4Qtl59G*Np(Y*R(FWkob0gPnJpFz>`qLMZ?FXR16AHx(ALn-Ke zcp)_3-^PE?#F%GKk$Q-+-5=>FMU7&7?b6CatyzG|?&Q!VF+vavKJxiDCEolwqQ1n$ zAnu5{eU-!qmkWLh8*(D?3w3`7dg9OTM&9XX|CHnftsfw01nxjbm+vjopIvIX@f1B@5Vvnz&e}s5DS<#Rf$@%~gR$^Q(ntB{7bLv+m#L6ol6#`gSR<6!EgKJRtBXkVI;)WT z=j=s(yeH7hFYl$a=;a4oh0o|ECbN%+r1K_kW67!%mj_I4wVm8b`8t6u;QF>+b6uln z=|$4{86e!Hlg@Sau7_P|8!?skIC>-^QQnzsxjvjMzP{$k$oy7xa{OcpORxZM)a|Cr z{_Dts@9`R@tZ5(w8G5bq$;uadN7{A{#TZ{N?^*+qXNDpR)HiH!2~xj=QX9>haBE93 z!Oha}>uS2guO*saui40YhMPGvC)E0|mV!g8PR{v~n>BLD;^KZM=b2nfe{a;a_0sAx z5L*?7=DLRFPjxUR;huUE^<1MED-A~C&vJw|_eD9gIO=}Ud!jGD6e_ad3{WJR--oK> z+zEHLFv*kdzK*hkAEk&L0p=I5kTA#S`!eGRaZC!4YB-v#;V2N4`lq>2M!aRj=$9(xu@n$o-fr*0H3s-`Jy&#ZoDnO9aWw7Y%HeDN57T5}JVyK4r z+U!f=_}iJk5U7GKGWyajI~u~>+6sR0BKF~uaw7cd&vnYU1B~*1vDn;EUWa#?U8U=Z z@-H(Xv>(Q~CGP{^mTlxWvqBajQQnjJK2T8brCZy@d+`5VK+X#NRxRb1k6mungZ3`% zR^4pxdfciccbR)Zl+!=W51YYjBqFQ+nj(iro3Ke-fv$}vYKh-yrolw!-zH#sk7GZ} zI&6XeQ=dF*jQq7Rl7!+*>Y2Y1t9c=^pppz??sLrRs{D%4msk5JMLg6?pIs9;*`p+5 z^$1b)9kyk7B{V;gAyLMV*0sKiqm8TfZtJgX_hCrMAO0jJFXoqk%${C|e7HV6;B{1m~Z(SL)~%4W9n=i$chX7knqRjm=U(m@NSHVNlLl@lYg%n zG9RC>jX`$G65*BHW4_MND&t^nVD0V7f*vx;V2J@Uqz5GVB%ki%9YG$a`uEE3X#c(_ zSs2i^yw6Z+;i*&fj<@zqUTdb?)LmGXGUITzlv+thsv{Ii$T@1#4kGfSP9<;0rqJ zpzq{!ssPbr+nftP!vwao6UhU9{5#bz`?>Ks;W;l|05M+GXPv`vU`Ei!rt8xE#&p_|FiPi1_xkh$71w}x&F6*PvqJ| z=F`6?o1pxX*vt*Gk(N(h?Ij=-DADQk#Rk%u4^k7ZPB|y=Revd`CVO{?f0wK)N{)4% zQ9KHLCtw|)S&t{uekBA^;QqTzLg7peRt09BrbKGzBwOpq8P5FqcF6K-=UM`OI^8FL z`3t;}UJCXDpKU`R2^ucWqak1)grpA$$j|h!9>BEEWfy{Fi_p> z-wkP*>10d%z$?2#8N2HdIjEjJO}PzmCXg<(rzw@e2Z5*TfWV!>W*DAn$<-J3+qe3p z+>4aaw)${LGHq>mLN?sbvx__hZ)d0>(IOJK)Nx^nsau%&go0)D^$&L#{w_b;*7q$u zBJC@FV@=2c9!)J@U~2h-%od2s`9lNfy1Ln?3l8N-Ygyfw!C3XDM^OLNZdYaq%9Y+d zcyf7y7%P9-^VH0-)9xmYWbRV6H1F2H$TbVMdMH7hMNwM6sO@Xk@tk16n`!viP^XLM zjz|3&E$u644hZSQlIIn~HH$ALV^9!}G_W_5ZE@q9yJI!)>PcoH(*7blE_kPCE-0C3 z-9Jsh-nsHJ@x>SVg*-f z;O;M;(}(J)>cyJ$F!>#CAQyw8NocQG28 z*(cTRu%T%^Gu^xWse*KT?=CMgkhj{EXKd?59QoyVAsa4$r{4XtzH&1)bGs2H?R%iQ z;KkiWhO}l;1c(+dj0O>kQRf1><^dP?*oRD?d0yy0&+wl+dG2NH3dp9eR80KJ!ThFw zsL>1J79E5etwW~-p7)gzM>L#WWyzb#{{M|}$vaNVrEjM00|Dk0|@)vTWTZ4SR9 z{X?cs8=9YF2MHv|`k!d~UV(HV@4I2nUVw;#*m!nuGZa=?A-R%E|HG!(?L=e8+lFHOG~bq7BV+wGr2*8;*^9M z4HK2M+h|giPWjmYQMc^J*;KZdd6=@C)^$tUi zEp}F^pwGxKgjlI&Mj+gHEKX+@g{%AsVJ6=RC>^>t;Sye2DXB!IyMe?kppo9tNW5}$ zJoHrWOxtc!|8Fs}q6x&DOoq}rdDwz%zN4?}!9GM^`M;JK%5rC5&l>=YqLIOG~zuy&FC)W_62=i z7k9yY*6UzZ6nQ!KuYgc{n4QJ=)3jKh#w*`48AhgrQTz)2H?4)5XO*7eRY>6hSQ1Zr z3H;OEk96#TY@7CF2SOch=HMC2d=7b~^+5E3sqs@nGC(?lQT8A~Qzs-a^?4Q|R4^nQ zt;}Fi_Xui>$pN8y_sMu@8MgFsR97Ndi7WA3+&imi5DBr)j9HMuZK`ad+1i{KS?ts! z_U8iO$1Y9R!$R}m8>eP!nACROG=cDS@epB}c4H7Te8~h&T4U2{4O1o~>aZ z$(wC`40ug_E7JZp=xCc8yvrEge+v5$ZCf9b_Yg0<+b-^>NuAZ;Zi=*Tp&5;~Z7p2F zm7vU99L7w8doD9R;LRk8q+HCfcAYh3k@*_-#&3KNnpBW2auroTbwzHWOxr8<13vK9 zbj4{5HH^RA)CSaB`xZ}WUuGFxGBpLY+^~$`lozrDrc^MQKI`JepqKM{TR?)Eib~Dc zZ(wI(l^cPZ%8{p9%pkMf$rWC=#J#4H(wJArU`(up6~P(P{((YgC3C5Sfh(j8y9mKk zi0~?D)H30IOs~461{po-j(HEfTLZEcePQEEF`Ot5|PDBH(!Ss zKP4S#2(3WU8+pMlKkmAdz1Z?1*1odZHc|N!`vb9*p-$4G|D(EsQWhIq_-_N3E?WerX{WJW3OT6U8 zSs05Us)s?`V|j*f70G95&PYL~3PYxHn0i-D&py*ss^18EagDK6k!`GsDG;{2wqB`+ zsTx53+|+1fs)zyqS=dffH)K=6qpC_ZSMzx53e{A$anbE{s8P&Lc-mZAH#^pk+_X&0n6BoUHe;%Xm>P+<~*2`HZ9P}ob znCUL7+`^oZxhDlm#aZM*+koftoD2^2MR?dctVm5M(|d=mFrKop3t#J}#MDb+N@V8j zP0BBDgN`>IlG%U+Rg7~er;!h{^>=9)1sQ^a3*)r+M$qTWw0d7 zvOdm|1s4397xY~@2-#D4$eyAY1t!AO(EOV4O@cN0Zb;sCWtZS(`n$< zw2hGz$=7Lc8Q4FUb!#dB9f?M7!cmG1F(<&^SB~z4n>tb58q(FpLz)vG553;t6>CN0 ziQc&J4J=1up7a*AqYd7;kF;OyEU3`{ChZC5wTqT1yqV~QpAg-wsZ122MU*R1NUu{@ z;8+gtzjVXpjb3<($^!m~*_u%fW#vS$X?QGWX!A@*!)Hta#|_eKg`(B#@G+>2n`}?O8<$Eb zG}GXAr*}I=ZJ)tI^F5s^xQ#4iMrbXUo~BT?pPR{OQl*w<2DwQ#tpLEqo#KUJF&WXO zBC9r!^dBdw{IhMP8T(3gi=7BayMJsP?!ooEku4BHLBS=>Hfd4I$`<(EP)*rkcCZX! zDHeI^`}}|0T8p!uz;Y}{#u%0yf*56adI^CVGyajv8~<3t6wzxwP((ADENCN)f)g=G z!&McU0yhRZDZ2V3s#5PkrAx=7EaZzUxGXFh?=~D7`?8Cpu6cI&d#GGn-zoGmR<{oo z`$n|BPh@PyDcttPADqPH5#2wmy8r>sO`H)}1++t}^Vh?fo^s8`)q_SeQGt0U{ik3= zX0#GlbE2nG9}ut+JPEhBoPK@*e4D@{w{_fd2D<5e_L-cVVM^d`;G>chl-iHg0CIX7 zwfG4y)4j|XKr~cPsbVQt?Vs~3i&q(n#`^J);z8HL8dRGx&yvBK0myS!+LGH>kYPekH<_WXiK6UicB7WS9BWqKS%H6zfSlmeC^(Q*-fUGs@$*!Wy^b!wlVxP<)@s zYL*A$)hsahyi%klk2CJNw$7bvx*`*q!Rx$$!ZCvdwJwgsC!d|K@>Y*xptw+Kwgodx z{2jCQVl`i&kuxF-egkH8ON-5X2rb-j568@_wGxcI258{FD7jcDi=KlKZdjb-;o&D+KPwel10C|O7@2cWH z7KLL;l6s#-gjM63GeWtRw5) z-Rd7p*_dFwp`qrrmc1WP`>5j$DciG%YEa^qm-Ob+RxJmL0P zZCKVbxPd8!5+Gk)xcf)?aZRom``FunZt2HPOlF?QGNaXCDTWXCG}>D9D|IL(-9e>Z zivfw%Y|7VXNCKt~yCn;??79TW_#d$*WE=hL4%JD{N^Y!B!yg^E{`Y{gucsr*b zD_M5EwV~#ftbTkZVY?q~2uf`At|9$>~?g|G1pa zMFR8X^iaqPYAq+Hi=x|=({~_$J91h*Ku(d*OhdkWPRen1$M*X(lI(zkzcfmdFP~TN z=HHgjp(F}QYUT6Zx_=~}afxO%+0?0-h_p{;s4)=DA_v?35Te=Ew@YNfE5v8zaNKq0 zop)~6jv9yKYU5~ZV?75r8;pYtFs1_q^oAT8w_{12Z7k{eam!ENlJ2%+_D(=cvjVD3 z9kT*D#R}-2wq4wge4g$8$K~@iBrjh+=O3G^wVZtR9sTdfXWh2)*>FO>eBPL2?2hf{ zdXnrwKEE)^k}sbx^5)-`&lVC5l+WEMFR$ZkEU}L-o}2;)PA;Po$a7$*zo^9r&G&9 z=*p>UyB)C%Z(}Zh0-Sj0x9LBM?vSMypov*?`M>#M={ucy^KZ5zpB>ly$K`YIQ3K`k zuRI5}m6OjANB)cQY2pVvw3inilP{k?%Q1P!{^#jFZ?|JFzX_=W;|E(%qkmgIZz54p zVk@7AAMrK$%iE!eU#nedm-U4I4Rd*6 zj%C}COHS|{&};v^c7R;IfAkLJvKx)e%B6Pn+SXj|&i`|G;m?sE#3-vI|Wk7v$E zqMp7vBPPv454N$?>Y*uSzj%xy@ldl6uiZ#>ym{CXQZn!G<#;5%uH)$j_qB%2&qq2& z7V#1Wuvuyadmu#Gf5Qv5?ECZ8+7sdBNJlk3Z!B5%EA!0E?CFCE>m^5zoi$Puad*-* z^IZ^=;B7YPL;UwO2e{7+E+%}#>P ztfZK`FM||}n>ZB$Hk;6rI?FZ&5<&*+1cBFsL`+)P~ zODw;ecT){~2&n#41K03Hg-G*EcKTm3xyDRuD)WG2xQ2D}OmVwze|k5}-z{QGlM8$V zZMA>ljx`H=Fin$UzH$`Br2e*Fk7btt45g!eW~d%d*Q*@w7!1-RNiVjHK|ouB1wORc zI9vF6FE)-a$OPz>tTFEm7eiI17Ek@hl)N|FP;$SI?;lm;Odm%1e+grP{BJcVZ2srw z^1nvrtl7C%Uz^J==aTSBRw|t@-!R}py=4NX=23c0&r^b`UBF-jf>Fqo3_;#7##HKF zKx!YABe|MNeVX^GRH_L^NvWn2x>iM&Qnksl0|8|2FUv!^t}<&m8dzemszp>d`-)1h ztd|euI0l-cOUIgOw@i<-qJWdx)BCcpzpeIVz%-OkHjxD<4U`h6nU8!c%}U3$m6!uF zl;_nR%|{V^16Tc}oLT-|dJo9gQjc%)BI%sNujc2Edhs!yhT5AHB_B zkreVKb`k}}SY9T)`~726?hnl4`O4L0hRL+9Jkb7YvAA$p@pkp7#pX?D_Ah({%3 zZK9l1HmzpO5(&}^1n1S>3Y=oLAV*RRas_*Ea=whk{XEWhLJ>i!>PCw%fTxZm2;?gDPfFd>NWjl=(5}ZQKtc zE6D^DAG6P>6l8B6X+1a1v>Fl-3C&K0-g-`}DDcfJ70*83yw{(pfEG+5AA5Kn+nK)z zB7GhlAgkqXnSDr zs#!#kz79E(@V+n>YQ3sEgww12gUOuoJHO^mGRu8QlKb?vhZypj!4NDOIL_cWxX}O_ ziBQVPK&PDJuxk3V4hfd1q|sm;QZkxrq~p7r4Z2}GKK zW++iN8#1}h+1y6jkHL-0yu{=j*55QclMSZ8lCX>dY?^zjfE!itJ|YG8dbu=cnTpN> z#Nil$(?zYb542G>BAKPWriGWO0%h%NgXKBL2!(4J$zlmYv-4`JsQ2A2&$(6rK_ajA zY90q>VbGi0<8qz+BMF&o>b!M$7WX}fRpucyPxHLI+NtCL`}aOr?8kkSaM$xr+Be7K zkKIodG>cG~e)b_rqv{V0?#M8tq9~whsUt6V6 zMe2aUk?Wx&$}BV_ExssW+*yK-GvW7%)Bz5xLg1JBoWO1S6nD}tA(s@61FYo=wbzMV;h zmyu1dtaW36&tKM>xg6Cu^EZ=D2wXZpvR&&Eu&BSe$X5R)hvFmn{gPEQv$B4FM;XQb z9-;Qib{iw1-eB5LyrA^?2N{FLt&Gt0OIaJ2B!%XyRQ-u3HXR)etIi+?G`2{oy|Ouc z!1^sm8iUo1aTu0fdH~k9t-h26N=_6Q{iU44xT9)~D)1rhKl-M{b0WgVa6lZV@>{z1 zO1i*IK3iz_sD)~i8W(wtcruKq1~<*@3S1l6feO7X<*gn@WZA|8(Vn0uquvq^CIrS8 zT4KK^<{IO1awYEJ_~uB*dD#7A$!s##49Rsc5&lNM4_jV0Y^me9tbyljKFHHTN{2)` zV@U>=jxy9&H5>LEX1?K!&e8%sOeK0^ z&fd)E(qUqx>1dhNq<(*EsNCxZNeWJK%G5K%GFkg34J}LJI~Ji2l;WxjDaB0)pf7LD z&L08LtWL2Mx<4Kb*8@>;IbX%DYm9q|6>1m1pmvka6@Hph(#XZRm}guZV+T{3gIJIm ziKI#&vO;$=h_(E5Lwa+$q%r83F)R5T0;kz_b_)#|87&7$CiQ(D1E=Oq?&$}Tnf|tQ zYC1L=uDt<}6w5Eq{sYTnJvr0Fms(bpRUf>qQ*$XLpf*a*2UX?>&_bLYAEH*S8Hj)R zr~&-S!{1E_GACL+%HzY2l|agu-taBe)exuu2W0cq2Jy?VJLQZf4_I4}`7yO7eaD2p z0aR9FZzrj^vxb)ecUE$5s-E7HX=Jhsfw#zAY<5xrh!CGMMV64PZ|heTgnb6(U@F_U zGUQ{lM*b9*s2uuq?QfZXh5>OZ&bN*J z^*nBhOsT8h6d6)i?dyV?|4bQktJ8l*b8Pj{Vs&R8qGr>-;vG+2nWchQ5IoIO9L&t; z%&xyxEmAbi- z=0aX4>#9Mu1XKn$SJuK6?i6R5D2DwQAk?m6SCykyLB~D+Y8M5`mNMa#tgnLCW(KFb z3{ZJ}k@f_>VZ3=oqWLR^Kcpx81Dqb1-zoKHcWQCcl#WN^o1bBgsvf2{YeC`whPX13Uv$C~5g4QYFE&E&mppP;;1}f;Uyj)Q9N3LQy()6!J}l%s$s2yC zyvt&s{bmSxtbnJ= zEYf~w5tW?tC|TRF)q0eN?Z~49PZMi6j7O zvaF8JDZ-WP|53(z6ypYmS@vow;@UgFrMiJpTp6>>W%HKM>(7RY+fSWEE8vm1*sR)WcmacQ@mAfD@~Lw-#H4XmC3r=(2tDs<<@X zyj)yjg$e@8`nCq`xz8dh>1y~%E3`j65!ODVB@Pl=O5KHVNghciL$#4b+#?^=t#>@^ zyWdo&1d{C|RQ_+~veWrNrjn$9(?z(|f|AQYNR!NZ2{bGyH}*|p73!9pb{Pp9CystR z5F-IoU*T9xX2%9Ne!!=^%2Ix-l{K$qH!_kc2_4I3SXWAf@=@)!(!}=J>~fnPx;OQO zO&3SM2u0@atc;=5)B%f@RVT3EQ&F6im8!p%%V((|QM|c6C?pF@ri*-UD1iv)xM?G) z#2~<2OCjjlf$14x@~T=4h64-+Rmp%d(IaPtn^Q0V#ph7U%ignTYdzdUP%NK)Mj>Zx^U`V%afOsK`C~-Q1L5Dt$1+uGnwV+q9U@>$ydU>;vM%YulDZG)o^ff>DiL9&ZUo6_Juned8N@e+2% ztSCx=*dBScR;>69Sfl%@F+`kzqQwpDSg@iow3$N)Vl}Tu+IvaOYG@iU2#b0%%0md! z_#eKMRYt!7@v7eb7S(1J2)WGCXQ6}kGsNVvRbi~M2W8B)B2jqdBZzuUIzXeQek2;Y>VV~y`6_ZHZ>Q;ID1e0un3rS#B_e&OIp*N8hKmGd@C5PfsDqY(L z&SYOjSr$k$r8PzED5K@l0H_38_Ggw%^E~rlIgE?2kw>vPnjBTGY8t*p(^Q5ZW?TlC zRCeG#6v2H_-oO*R4eEc$59s+X>j!jmg@43z1TR~upC zM6!u~Q;#o@H|88TQZd>UEu{$@y2ygZ!nBn`ZW?pJ+Gio| z@|SwPX`MBWShAAG61RBsqm3+^Kgk6pw_)&(h8YteNB3?I{LsirK(p$c<)sVPwG& zdIxdO`fPE}j+|?`nw%0%hDOzHwR=sV8uQ3l698r^g<8=T~d@0n(X3EBbek@orY{3~BrLf)t+dz9#uDzD^E`zqqPj&lGR(TyZnOelR+J~~Ra z5=N$fx<^*fI9gsTGOlGE@-}y}c426y%m|6dw}ajYBTL#DIogGK84~_P;mhXF;-Tjo zQekmiT>~S6>q9jg=M3>?4l+2__a3o!j5LkK1&@SmtO<3kc%yQzF0X>7S@XqTA=co}mK)|j2Pj7QnB7j}#` zT{TVu(Fp<9%5GrisfOC07@oaI6Ew`xSCQbw3v1R!CYqj6rx+o(VGJbn83+yqW#uZF z;Db2+WCxSmVC4q!>y$?A2>1_IVg06>tal}AEWm*5V1j&R#?&pLzL%nz6!K^ml4;z- zA=Lh1CZGS=lS;Jmo--QME{6hWr|YNamaC&DAAJnQ>tLiO-ptH}C#6}cK~<5_CR5GX z_m^+2*=Sx%(j(pt;PGY_`U+!e^&?54!6N-^H>wlqxD-IG?83jcq8ykf9nM|z0x~E; zi`=*`aS;eE0DHoHizWAIUPBx?=v|~e$`GR4otgMi5LcjacPEde_*R`^;BSXZc&b)l zw4zJ*BfSv-v@Gxx-iW9YoKyW|ewE)~lig^N?PE9^B)EqJwttmb@wp-{F`0w2ZZamy zy8yGnmOLY%4?Q)OL&2MyOmr%;-~?a&EA;(tyRMt|Zn{<#Oi``QlB&yS#RL84xzs$H zB|CQLN|44V4D-KSfNW{SW_$Tq}dwd3Oiz44sm!c?JM!CO(@~h8To8HQE7!@kKO4tBrOoHzwd& znj}0+6nrIFXFK(=nzdKAl7zFcwN-v(F~cnwXO)$kTMZNH8Hux)*tE*U-yixc3cGS4 z0NNCsODR=>5Nf+8W68B?#3ueDZ(6Q=){`)w{Vv%5V920Eh$F00t;>B~h;&c0)fnpK(6v{J8bdE)?AS;{6@rbi?B{T( zt~jh6lZ~&EP=y*wpz)tlTWq$=fL`23wm@4Mqb?-w(a@vyHEZi5CqHIL{TZwjsXjtY^$o;CaALsb~Xtr1|;|+36OhLj%8Nn#$LJ6Yxso~)@S9WWZV$z zs|Ip&7XY$>_kgY~6w2H|7eN}N=SFukb0?D(bR8C`<;m+&WY&HFoL5_0=FgR&V?Pxu zsVx2gQ<13Oo-X2R|CfvLPMw>%3ua4naG#zcws^G;ID**{W#CZu3M^1l&Sca)bLRC$_pPCnww|PU9$6!t2+A zDwf>OOeEFB&-T}G2ATLd22{*$h;-b5^^PT-;pVwB((z~5nylTKN9{R%4$z{p2Q(>X z1I?uV>=xd0aDm!t2Ls8J!X>z50*sSfp)ZLt-FkIrPzpX-`7>+fH_Ki!mSAftYdpsY zjxQDZBB|BG2t9NeWd5jUk^iMsUnB$q!_5nZK#kM$hn)<&_lIE3iaMMtkOk@J&Sn-( zJ>zVV_Ho3_H5czo9EqfJG%zWr$S)%MWJMNS#D_NXDx}>O#=)vYvi5*R6UF!eRmn(h zZmEt5w zof&Ti73YCjn%K%KAWj7W8+O@AMm=vQ<-<&BW+Z2n>rAvDvRBgN!w}Q-{zV#?8CuRH z4I%y(ASq{Oe)X4fzBo0w`;a@B#hjwey6bk!HgR>GclZq|gR=yAvMK+Pz5Bg?7c-}` zL^^cLZ_4rfw?SGa3=G~QL`h06=L>Zyv#8Lpi2$>+pqU?F>M5u}Q%^w+j-WQGNSUps zK!uFf1Qlqs##W%Ir*EMhX0E^#m`MxKiREw(~uc;!{zRf-iw0qq@?pCU!?;Gf96D*b=z*GoS*Yv1+z0IGFwd@=5o-EuJhNE zC+Py@jMJ0IrL$v2K2`A1I-~1{@)}()YzAL?DuW#wO8y2f5r8urY|L*Oj|%sV%lr^3 z0{YPDQvg8U4o2Tl$RrI%upu@^EYRos3nfiAnT8bL1AOHar1}wL!nVU?)<#b6!SxHMG>y`Nr>WPZb14Zk#~L=pj6Eph z1qD2o8kATJ7GnIo6RcQ#G0}#CXGk_?1O}+%YOuq!IT6caQ#9WWX?DwI@%T1aCiBr% zWPOd?B+@=6*<(aX{si*OuW&W8{ehIDclxu|J2RU|qT;*B+DDH!a(I-{{j$pdLma={ zEodJU{kLt)9g;=QX#h}dEV-L{mNqp4LLC*2A_E!}g#kj8)1C0fxqKXcq)0rO8#Qe5D)5NlHp^c0F%tWm})f?9QLRoobQ}_gH-Y5}k zR8q|yXQI|Z@`!sZm{Km{iiFpwB3wdvq1yVgB(4??#A}2^$Y_pNTj0MlZQB^Z17M71 zh5ulLafEp=!Z?i_iC53ys4X@b4U7^s+MhWe0ZKY+6P8!L4ju~0QdL8YS9>2{VRB?~ z=Kx+^5K_{g4@|nL*d|qZXyj(`RVlmKqRxzNWjTGYNj+s?>c9A@4eeg-QMuG~vl$!9 zrv9KndGDK-I$1W9r?0b;&BHLwB3$7}Y9YQz=R3P)e>N?ySr^W7NPA_9?H&Z`s0%(}+YBcZmueP$%q6{?n zhA+x#)O<&^lgxD-mGj9ZdZLilGra7|U0ZiS2w^;QRayp}9ka^lE>@g+C# z8}V9Hok)(_&ScdsysH@#xp5kADS#$Jo@M~-D0JJ=>@F3CGi|j=Aeq`jwNkFy`Ntal zxUK{ip&xuh#Fy=2Te5MW4ot^~U#b`r0btBf9c8gR?hzkHlV_9McS~Jvqf41H1GoCo zf|*dmr3Fsh2@0RNViW168(=NVFfP6}Y!h3XmT~6T$zhUgrg8U^h@&Jq`=2FQnM-0S z96Mu@9J=FNeoPXvvImg1YCM)>m@k-ej%e`xjKV@bWUgSUAojMcwt@HTkM;pQ8Ko+K zFpRnLMI7c4qMSsF_nTcq1rJDUAJGp6y{Y7?8j{e7z@uU;{yTcgQg-h{+R{s8VI@|0Da)J z2C5>KU%S5^2zqV+x-?-yIfZXq-l2+X{kGC_uWA}d@KY_%;9j~!%H&)Pl-%8RIN6pC z)sMyX7-h~SSZHQ#^lSf6V~YyeztIY6$&W~60uIc|PyY<|BfZ>Wc$Qth55W-~_soW` z%hz&7?7;J%CGM(YZFXN=Z2}F)MurquH?*ZVY;;3wGHPTtF!@=N7L#nsiu$t9MXQXR zacOD?6sr0Q73xmDazfG7ra&A_W(&k14&~lndF};1Tb@<$<^QETQ^R8@)sXNQ_N}8V z>suFWr&6j#cOcS)zftw7l{@7XBK^b9WhM^-4l~(7tuWE};98~1_5glK0@7`a(QKKn zx%{(6`u-czMWhy_Z|i;oq&@+?+(3^JLNj6ZHO`e3q;KMWpMzXvAhq|Fg}mQD`t3y7 zrF^X^ojp1^hu}q&hh#}Jza9OpyVrEh-AyjWBr4dR%;Gi{WX{%rO35*TbcQJLvN`D- z6rcskR(jzrt9sX}MW9I;KS7mi8-|k|Q`Q+=qD%J&7(q~r;I}F~wXk02I6M+Y6_U<6 zdp8@)Kj$-BKuL^&rk`bz{S6=!%7`vi%aMMDJ-h>^`H*8Qq?dz~^-ur7hxD0t6i`Y4 zdz*o@Ctleg$<;t+PNQ9So#A}S+(myi>C_5ea`c(wO`G{`Wr8qNLm?Hn9vHaHCy zKmD<}w$!A*i}ab3@Re^ijZ!o@u6%R9TUAX`#_CUA7TTyTI7*jvnt0bTS22ys?waRu z)*{{tI1tcH(XuMOD67_{>GM6hz-yBaXBYa~;moXGtSaz_8k%@(SfLa5_ji1)XD6o!aq=YOIIcUe2XtaZOe4<%RYw`z`g1%9$nTZT4R-KHaCh}?&lX1L-)TDN4L8`>dO2~1~K zTZIy~IYe0id;v%w?<0(S8>!Vi3e)wvl3qK(nl17*Zp0Y3pJqB~HuWKauhkJ*vFj$_ zE=d&?W!)C9g=U_4$DB$!0gHJDUCgKiXaqp_@&a-EwSi@GY!SmA0`KYjFuu<>A2`P} z=)C*=n~e}D7@fm+%O_jusUbqtQ~TNQwylp9BrQ-)EJgT}2kcahs@E4Kouhbm>q`ah z){lrX@)dUL%XKYs>np@caoP0FuRokSMONG2z~f4m?L|^z(DUC?d6J{o9BC+D6%L_= zWgj0yVZExic(Ud}Jv=NZ#`Tbox2j{l#sJEwmi@&7|J49X^GpyVJqSR=qK&Tu;Hx@# zW3>!GxNeq#G*N1xPqENXX0cbDVW73%B@g;Q3%#F(?#@A18t9P&q5C$0o4MyltAR^D z09}ehJk29#%8@`b(u%ouXbtEP#3C}^QH6NUkMQd>EuNehlJUyI)ZZfdx^ZBewCv88*9C*T%X{XxtrzTEX0HUo1*NSKlpEovu}Rk zzbVbW>G0oNkbQHU|7J$^%~=1+P(7lsCHp4hznPhR^Me0o zLiWun|4m)?&3*oxSoY0t{5SFJn+5)xS+K^uOwZws_;kRAt(e3Z{Jv(TEMH#4+{Wh= zgtDVqS_W|kHIx3a;eYLN8g9hwG}Uj?X&EPbIGOHhQ7n1(u#~fa&$25i=NkVmSy#b< zt!+HHWmoXa`M~Gv!D-=_m<>+cg=!v@2}iAVJW9q(xR1;~Oah3n(Z`jeRn(f?!-wP% zHBT~d8&A*6X3v^I~d%lLC@1uXM2&xniT=F#p zfBTmZv|L5vBfggS%6~2K(Mt$;^=EcBVf;G8!rK0n*+n~39K>Un@V!6t0Yafs!-CA4 zCKg{8jQq3|Y1F3;R#Gt%Aor=r;w@e=Bj;Cp#V5w8#xclI%`TA}F90aYamH<*7e=l- zPY;?1-EQwb4=rH0h9YfCL5VC1GpNKcX55$kcg@Ix%5K-Wh^xEN z=-t?-{Wy3k{0vZd4$NL%+qyBP^T?c|1n7+6H|6ZlFS$d@IONjVgGaA;uv;~l8=WNX zh3njsPiZlu-q7*r*1Oz>UU17^(v>a#vCEXmtzE4~byjhzPQEgj>V~>Ahq>|L?xb;J zJ2S`2apUaFuN3Wkn88bQVH^ElhRqNga*HhP^NL~X zCGP6V=TYmbi}Z2<;kf?HP=1zBY5kcx<_0Xm-|WvEp*vn`4GzKaLM^0~aS8HtgiD*-U`|M;E<8VCk;~bA%k^b!mYA$N;pw*&88k$S@ zuQ$EEl3z0mEd3L{vrvkt3*LkcmSc%7p;y?1pF;JpaPOAow!4f^XS&O{JHzG2FgM6w z&&0&k2`759Yh@B=f}UicyL>lXl;H#r27``gI5Tzd`N#3Cw&2pjw!)CQ!in+B@N0b- z8ZW~+A^pZ)+j5`FBc?TUm~FbJ@~Fw=ESMis7mv5CtjM$0TJOe`Z}H%{Xp=uUzlp*5 zGzC^|jiI*X*WIRP<~qs`q6B8sr#ikRnybmWgVo<;`MX2$8S2L2Mgh_kS#UnCl&ZK| zNW9ux3dKt^Qm7L|S^uQ50Hli?hL@*Dd}sw^gwRSqO{%gBNk!uGxoE%MVR3>fMP{lY zvkf_;(D;Z@762|lZG1np7RY527cCSx%n>dQxu)* z8BiUp8>!mE(ow<%vf~h^t9W4Os)i)`WDPoVkwfwHGeSQ_^kdY;G682ZKhg}1TE5Ed zrKA-qsVRtO8xX%N(@a^ytP_N`&UL(5iaY0n{(p2*Z)wz*w zqXepX^?tepZKc3z@$a`C(V2mC<|O)vL##v#7oCU&B(j}*DMoe%*DzC@@$7&RnSZMx z;nr+#&r;E=MGGT95_7*oV#LPMk{`1&RRW^9u(y${cO?FhLjE?l%jt}%P8-@*F^IA` zR`X8Fk&4)bvvP9j)1cWY;ay%7z)6CDl{wo<*1o=vWUX{;UsZ=$>{i(r!MGS&VBBvH zH-_z?cdcRjDUaxJ#lhCFUC*No+XNZ533#HiS$Vci@{E{O;xd>GMmY3F(y44>ZhQGW zt_TSsB#EvO&FSei)G6}u=~ksdq)0;{MxV`!7CDI$N<=J8I=kvBeHXL=0Tv@E(r&HeA!}#3A)X znK{OpQErse83N6+r<#Y8Z)0Uk;My*gSnjM$-2NWnkaGr%n`SD+U3%_FQY*NSA=|ml zNz#+zPSSYu^ziI}3)nf(V}@b@3o z66{41gycSr1`|qy;mK=_rWp$Cd8Vd`);etY(aG=B$roS3ZPquJh#S}A_VPM&B?!qC ziI7!HP8pW0DFAfb5`gx+mM96VCK{^S5Q|nKdd_IM1;=YwbO_&?S z-MngMnmxwyVV+e09FE%+94T#JOS0kh$imQi=70~2nzi74pw$*J-q1pK6}YNN5m}t( zZUT4SxY8)@%?NrtGNj&wF;Nzcl+(}Z(PMFSl;M&J90@6DjH3)$pFX2}T$B|Eqo}lv zysgLfaf-6-y2m`A?=GJw=ui(Yt=e{Rq5*4!RAYmf&#jGWs27gG;e}D>c5?=AWWl## zu*!KGug%oS_SX%|8;P8Kp;-91tsRff-G`A@I(^sK#0N7kdx&;&q{*&X*7{aZWev^G zx?QYoe4YWr8Cz*;Z!C{dWUc-g#}yvyqQ651H@KWF<}V0lo#Q-SqLjm^cqEbKvT=7* zIi*p0axqB#awwVXi&iaRdJq@I=1hZt1pe=v7=FLtkp-jiuvHgi9rv^5b|IN3DciG88)N?Ha&wfInPLsK5qq=8TqeW-^ALX8>- zRpCRaV)Jkn4TKtGpjv*I2a)a@KzYv_qP(RE7Rb7o{`da;s$KTqVfFhnyP0>EpGzh+ zWqEdLeKfHx&$L&FY1d(*OjzWvnl9T>R)Qf8^}>@R9aE5wnn4loC#43d zs4zXnTWR=g|JkPlGWs*u@|JxEXxR>=Aa>R(3W_~QI%`JKZOp4KZaMuSpo=KuyiYBF?%(nrgAdw-05{d|8 z-a1CYnTF=&pz8*m`Y-qJt7TwTpI6`U zBYgx*%vW68zwg^~4ov$%xW&pIT0?==~0u_{O5+#$BoTUNwSvYUkNKh42enda% zsjnLa>i9@D#%G~9t*+x!q$WtzGcZxPpJ)w@hHo<%YP|`3@_+V|r*v!iJRT|k5|T>V z#P8_Ras2xAhGztwH;c}sbAw4_gE}O7kVHOkzOO#R0NWlJP)}r`0m!7^qlF<2aV?Sy z9P89t+G*i(>(g?koVpSXZ7Yl7TsclJ(tb7b6tSv}I1HEdUv-~G)0%fx-o0!6eJ=9t zMMGosgl+9bCFQdA!r6IW)tYT%VeOlrNNU$dmukU&PSJW_GPU)}J{DN|1@MR42Y%QB zF9sN(f=^YYV}wrA;MeDn{v5bWf`Q(J2*Nc&?b&nNN%c9X8J75_Nqo=%T3&xawCpp< zB(N$>f-N?|`&@kgTpRZUyVKr9noPOoDn?9v-q(o`bGh@Xy&j=awf{=G6X-;#LMCU@ z1j@4@mi6C~aVeX+EX-wKy0d(Ie~wn_X7LZ6sJ_U|y= z$n@BCs?Ds?KiCIcqM|5nVqq~DMF3{bH4Po8Fv-}o6A+JF{b2yoKSHMD7tEsR0$@}C zz&C66&hY`x03aK040wDt(v!oNuClNl_mOMP-2ER<2yFM>(uJ(KyM&x_=1%il2bjA% zjnF#3G>Nk2ZiW$W1DtQX<``gq>}Kiy;6lJ>0&C1&rWgXO9IN8_^eIB1Md=f$Bv}>p zLEs$C&Go8M+N6!5M}o?`Qr@H2w4euj+ryD@wB8*iz>JByx%@0;u6I+IZg1NvUodP=G8f-Omt7P#Ex z2b9=&q(#xBsy#(5J+fJGcPNvr>87)`iEw1vl^jA=8ia_WU&dd8GFr%_RIMp!u~|#^ zHOE92JFYEFY?%z>;L`NxY?w@LmBNx8KcT(NNzYmloOFIN%oxX{@SCYLM1BVt$16Ys z-1mW#SgB0Zw1v0RDf298!UEU&z&#dNXO`MoP6IIS2e401;oN#cBtHkvUs`M{Lp7+y zmbO0qNJ-CLqBvOpcqOusi{H>hE(Bg1JT8?#;d@qrFXi)7jHC=FY!Cr}6pLS8WG^EQ=RXdsB zw7d?3gx5CxOX_PVlbqt2Y3}dANcBXm^THC_x0D^pWdNcY`9+V0ajzY46a!*KWt>}; z;6YyFW1R75Bbx&y+}ll>7!98EqMprg+~<1p&fmdHvEIq1Nc)*!A`{u7nAgnq!i!hN zLTN8n*dJeXKI3_bRNoJuQvE9*O|6-yt5?-W;SdKC+_tNd(&te*KB^pG$xa^{_%7gu zywJC9ggu&4>WLplDw-vWBXbURexV)hdile^ZfXtTTl8A}evTP2`yalFJCY)8XG8l^ z^*gc>!)2ieye{GqCSM@taGj194D)7aM=~P~Q&6T0i4V)7u#let8G9u8=c-rcE7}Pl zdWb8h9+K+;+tqGP{ni7si`q>NdSD8Xb#MYr(n}*p*2W=66!=eTjY7-dFqEooj(qiI z!{KX8FWULmP-AXhfw;iE9%ycM0SD&hi#-OIo42#@11!j^-8l;qY2Q~_c+N%@oN5)X zB#C1wo!J}LIDM{(w%!W*oDDgGipunu*3`Cjajg7I!|Ia#2`!_*rop3#-yz4$Rg7Y? zJEHa#k_emVJi?|>hQwI@n3btKCx0uo98ETwCFWI<%=?W#up1Hzu!K|vy?dR%Ff~Yb zQrouWIwrM!7eH$^&V4V%6_9s={o^#4!ptm1QI(aVsMmAFGeTf!db)W?KMXHngfu|P zD**4Ztyltml{hJ>{JwGJk;NZz_%~wAz6Yh}DKrJ1(DR|SUdxz%FILoVLOYt(W;zEm zHX8q{sS}5>;#K~CPHc#64yLm2!PGDL{|?(IyzcL6!!+V)-Tb##{Ij!7gnV*Q=J!mo zmjK#eE)IBq=F#`m6;#a00c*0Cbd(i)~1Z>8P>Z;)l+^6)=&zJ%CeH4X~f+RgcX@wlnM8eo`~9+;TOl4%3zTmhLr zhq4=ME~UwQmkRcAsb6j~^vXVcH%HAzz!Z-XIEZ5*VzdE84iqU&q;C}B;cPO?l9;D9;!q*fi@y}bfY3UZsaF-KQWSiD@2!A`p$ zQ2HXDQqe*;W~fcO4HwDF+7j%?3es9KC~@==keQk=_|yB?ny}*unQszaM3XxH_-IyJP+}wC6s1Q9(SOYQ-BhxM2(3gDr@u?z$TSV|D1#evK@2aDY1Oc7zM4QAbm^3E z*SjkNM}{N1ddtvZ@8Tj8KVepg`(do+t(IdX(2*+#wY<%s&TINkCpas_v~lS{P-2<| z-kK%l^+j3f>%CX(5g9?#BQ}YgY<#R;vnb(CD93G8msz2+^(pJK%Cc%hD@;e#AK)yNVf<2bBrUUbVMoykV#3TncU)!dZIx0_Du$^?sF`lGB4`fm_#Ptb896DN zZ!T3oHJ94mxX4TvL58R;=IU>cH3IQC?=AD%5YOidhtDE!n8ZXDwN$)2m)_cUR$-d= zH@kxb%@`rA{>-4at+lo-8&no#HoRp_hD?Ru0a^W~t)m`Zw7w;B#RAMRqj zrXNs=K?G}{*YqrKL05`3ekc~D_;0|WzNj4Z#sPX`KtF1cK^pX<4o3zuk88SH-UcCz z_o~lqX4HQcolNL3n25zDA#ER2#|=-s+W*^~eM&~GmNe`W1ubm96b_qV5(d!CRLbOW z6HvIJ=?lq79j1}Aqrf$73zv@j0C5X2_G@on{B!)+;nY-SoXbmOnldDPKe?jL$E)r0g<;Mwd8v zh7yiK6kB0M@3F+$f|Op>`O3$pu04Hw$>QGs$K1QXS5;kk{9L#|)ZhskHMLk%jcsDA zh8Cu|1>0OXksH0i*kT)7rZRJ_lg>CDY7?OvA&>+)UQR&8$F#Pktus|?M_Xxq6gvs; zhYub;5MQXZ+-pQptBD%r|NZTK&dm*A%XI$#`TY54&bj;S=i2MF*Is*V%37XeB7Kji zj=|!eR)g&L7MMC{DZkmipxF;WM#xx9h$y^43~rrFAh?s%JojNKUNhXsWwq_O;-r>R zrA8m+Z)5aHlXj%_9|`^65@~p+f(&#_5~cZP-dki`J|?WOE+4n?6K#EBfpz)#5kKYf zQ6ra+8p;+k(_N1nrK zDz7$u&CC6dbJ~ zvYyO|ku3p5<5|f3VX5N;FRx#_tDhM<8gnSMXJui-^leUWBAe@SS+Hrk568>rU zYjBJ=nc6`*XqTDhPk2`4>J(&udReuJ4@C@DYwxE6F1^CO_^wN*$~C9eCkZDCr}ey`yL(F`Hnsn zj?>@hCz^|uLk?XmrZRM0s6gQ)J7W+H?E~C!ga_uGBuFIebq$ z4528~%;fQr>zDMAwxVU3nWUkT6k^pPFWh5;b9EBgm%xJB&ImE7)$Ic{qf3ykkv#?{{FEAqE2eEnQMIT1!$zKj2# zV&CLN{@)20UUC**M^(b4()1aomQQOQOG!Gh`S|+Ci}jHg^kumI9HviZvLjxfTk*W( zUCG1%|44EY#vto?;d(oJUIEnG<6GZ%I{O9L_BC_z_!;!q#a56Zv>c%C=&^v7JpeQ; z@7&hBL6DqjNX!rz5Vv$CH^KiKx-ukX>B)On-AUxp6|@9V^r;-N094^82I)zJ zWatUohoK~BN5F)hy7dWqGBkGR^c4R{dMfLdjxnK=v{|&J``u!ikq$0`K+gyCb6u90dLnd3} zTi`m zE}t*=Lb}N`(%yeQtC4kXVNGevp57_S(m<9!oX?*J^kzzO zZ%{&48DO)Ftm-|?>P=F=Vq4ZlKEp)_EpN1ccs@ZprQosW{G=Y%mgaheWmsUBQ`P7A zpVwVHiuqqA#+&uT|4IeSnboBv3-?F+w z6Tm-;l+5}3)boCx@$``ZpzAn#B#m8)NG)8H(8dou{Ln)WG04` zLt!6wgal@}STm*tS*}syvWx3O(|6mfp%3R8Mq{L&dww`JF8?SiP@cg>S ztJD0lUA<$($88Ld-Oa~8pvkwe%j~}Q!+r1AE<~ESm*RQ&>*1OCD*&ggafrCmhW75m z6R0NTjJVqAXa-uq)Z9DdEP91s?fp^J?{wV;J+$|a3PI|0$&S$8e>kvqmMlg4d*GLM z+;N9-sTHJ$1L-dd(xVRr(n62_Kmh~JBZtEIpZA0F6Z^wi+th~w=i>p!5IDd4J0;}9 zc{eG7b1fj&mlEPHpTgqrVg#%|d0p?(gC?4~_BF&Q8OXsKUz+DLvnjtnyhmlm-jfG! zu2UM7gLiX*V6Ag|4F5l|PfA_tPt85$Y=x#>4Nxg-Ua zk*8h83Hj}6l>u#K(OI0i~F4XUU)8E{YW{fY@tMdNRWkJ-e8w zX4!PzQKfc@4fKQlEDDaVN`ka6J;o|hn@4XeAb}U4) z8G3+z#CJlteQPM(9#W^xq1c|&1X{pkKMJX9J!n*k1i;VC8|ABIPhA{fS9Z&!}}m2$6JB$E{GIaW_R zDE|H8t^?sWA``ze4}K->-6QhwZvuPef}fFT5*S-ER%F2Ui234>>hb*6>#;xAxbzPvbw5e)&@pCP89Oz%ZfjJ&{_rV$u%!JS*l z$gaO8FJ@D82)-dNhG)k9GLPRCv6Z<$zuU*gm4GIBk+VPl|6l)q<{`1y1N8q2OaHrg z95r;#?o)xkuKz=x`|1C;1HkEn`aeIZCUZYez_!2sUk|y4QX^Doa$FD`l>Q&>JjQhG zuTk)zz6UM8y4le3(Uz8r13l)#p=11$G7aH}pCH4b@WU%0t0Aa)p-IT6<*B3?IdYJ7 z!1CNWAd1sCdW_bm!8*X9+z`A(4i{&>k4BHyQXH-Wiu36B(jn`B7lU;`*R6&v=B)t~ z)PpsEv*a!o03pG3x zmNOEGSw^#qhuJD0x{wU?|C>yagXsSnk@Wxnr^E^6J@gI5fJg&WabRIp8 zgK)&+i2!a?T5r*!MR{bx$yUin1HM2wLYaTTG9fydfh7vP_Q;_Syl5x{Ta{@Dog69z zUjc20Kyaf;$cNy)qzHlsUoS7*Z@qjVz09Wk{%~|MFZ?_Yj+5KFojf?o04z94Kl@*? z8{ju?oq^weeC7*7;dd;V{x%G}L&TSlfu2dohu>^chQM#gx?n%}tv?VCKTrAn;dglE zr$5Vs-w=M|bSw+j2L^us@6vRz&+3m{v*uuw{Vzk|dh*)86)(RGnGJ#Kc$1J1*Aq$k zTln{GF5Ac;ah`Cx}w z`2)R2a+E9@Z+{j4q*bK5X&rQ$`%3ytVIds^+Q1j;ak_qhmN>rK*x3@P>78cNZFNEc zT-gKE{$Js0xp~B6Yj_{t@^m6?bs8HaWbr7Y7Jj0~`p?wppi))BUu-+)AMk`*qOH+zS$^cTE?k+Ag*} z*w2P9%&obTt`MEKVle(=`bgWK*XU2?ApKz!+B;T%Lf{jj(&<`*)@g9&X?ns0l>hff zOu*56U;>KGRg%gq1`QEN6cGjJ)VvvT0@A|{ghL5?9 zgh8yE_(Sva%&YYX8xGO!APuj)WpL)>#Pzh(zGdF0wdt1H;8whdjM&_th-^*x#hW$X znhGYg8%S+w*=t}DN9(CeJ(NK60qA~z+)tMA21VI<&=hcwv+;LI1qktqnSddxeSq`*gmx3{EAkV@^91)*a)|EI)%|sS&rS1- z-!?r(i*HN>L4&vy{R1V6L&zyI>1|I$-cwoJub$;<%_(3lR#QyhCisu!UI`_G1?^5 zRD%hYywP}hK*8cns+=%AwGcP97GoA&Y2-1B<@ zqZJQ11$`^3=U5@9dpXwPa_Vo9AfYo$)d~t@?DF0Z0{~Pfi9poA86tU0>0I|WMJXLA0;uS-4V&z$V-4BO&Mtx(cjcZ#vcG@mfjaH)1z*_{qCB;mn3cCjh6 zt}fMM@oBb-K-UkHf=sj#{I3c_yWgid&yBRI-v3sA=I7xwbLsWl?Y&IN40G1LzQ5jkx#czuip?DLbic_L)n;q8 z{xBrbXDG)=A`8uF{%lSWq{Qdo05Km<@)glVRpjAjmkGO zuHy^OLMpw*mn>~5jpGZGi1f-ZTT2W%gZEP*`C9oZ^<4R!F!7_WTeX=Z zGvT;Ia}rI+p7f}DXFvi>sZNNHobhi$$5>X@#yhBygxZz{^zJ>T(Km&o&+g)In9(ol zylpv`QF}*aB4s@E%8k!x`dAIZpeQshw=}OO(b;XZl7v&&qhP?aqg0(b*Oply5uqSA zr|T$~PI|O|1yeo!h~XCh@$!6D;KUE5&M(|X-AQ^5u>%Dw>0hiv zt;cM?m#9G0q6*5n>6XA(yEUeg1cYBhe26p9J9da&JfcySW~SY&)|kFpzj#y~w~(v1 zFNzzu#d*Q*%EXwa|_wzOKmVV5?E0pspIL3c`( z(mD03%JdM=zNPSj&`%C1l|xb^r~Cl5xMGLJ4ew8yNw|OXsW>O;64V`83w-_JEDnDz z{RyVEg=vj@PiHTn#_`*-6{z`n5LkRH$*L5{l;Z7Nt#9SMcY>+5zR#*|}*`%oAPS@9=SI`N+q&n|0 zlHG)FkMEiluQ@qxDV*e6)fRbX^?qLR-1V=tuuBh%t#uYZ3uaVgyq(~8WJljl98p|D zw3b+j@yB;L2gO#;TU)V1ns}p`MR_HGOS6F9@xNutgLYD@RezmFw5LWapn=>F3D1Oi zlo!$$MY?R`DIs{9e&dhbgg0o>xqcMsL0pJ>f5LzQOf2QAdJd(dtBm~d3VD|IbB5q< z-Xya_``pO8NKj6s@yOZ1d%?NB`xxxdoNjwW)5IZn0Sr$;4 zVq~_F#z8(gcFtjGaF!SSclh8@5_C}_!r1U~BD3K)8#0SH3pWF-*y`qqqSPvZ$EZQo zX`<;RAL|#~8Y4TPF#w)xbNW(Ff2a+0k7z;>ILG2oQ;|>$hN_>UB_>FdQ|r$~sJ`WN z{*z%Y_TatiRYP$?m^_Nh(F2l=-9~!T6xjjseGP9+LL)eLt+%8#iry8j5k;6JE_QI0 zG+_+@xpzrGXwcXbhQ@{o`E7_iRoNH}q%O5ipp{}O$>WbXL9H-FrTRlqj3! z#QxPA2XPQCB+L;k)hINo3qAZX-=rn!QqeW^wk|?wqI0R(h-A%w=89{ncOmt10ym4v z$smmQ_`^^z!yaL=nUV&x0{GUgXLSr>q8--7)>HG+b5FuaWOSgw68^08C~o(gwnfzM78vSJ_~Z7FmAHwIQTlF` zg4}oT1e6V65EEbn5m|vA|AS346BLA3@i?Mvhb44Nq%pOwbGmlGUgG}Q`=F@lN^jHw z1?2cUqKi^$>3c3+)GA_5~#2#n;L`==}K=V}Q|6w!JAlhqm$smQrvm?dTR|`>y zglCWpZoV2M`?4=2L$uR?Tk)E=cf@E65srU6t2lQOVRz?!qmI+}OskqE<8*3xyDs%; z0-czNoxW(mt=N}{yulK9b0YFC9Dj4c(nPraV*RE?xjq+e23Nw>I4g5jzdLGUA395# zn8RQ`Yh!xPCoi0J7UvmwHlRCnN6(5Rg3(FC3oe+YvYCRXMt_ zRwwyc8g4EShfsex*Kn=)E^7O{&#|{LKIv`K?*sZrzlZd1ukBx4oHp`$GV)w)tiR=c zvuyR&Gc#z2%uHIWw~d}uGUsReg;o3%_SgF7vx)wsv*hRe&>4ZIT=&DiD^#EmpLUBF zLtP4W=rlV3=dKSDBSbZVX5L@`_O%1(q3Bh?c-)ELtbYG36U=TK50pXz z4io@4x|>WP84NZ7bcvpsT4F9Dn_xmXz5g<(UK1sSVXGP*kMRgt0CZr^xALqCOakS~ zoMhx}JjpF`NwWJRoQ&)Zf)5ISb*c4ry5**Lv~Y7yl9>O1XFIavvove8O#Kljn@WOK zk0o`HJ}e@i)6WQU3TpuKgwit7F-43dn$TrgD#tWzCq#2=oW&ENIWwcR-kWYEw-31^ zisG_OFqY-?$E6od?ugRb*o(E!v=>ps8X|lW*&CpBPJ-{CmO!u_=0Lbtf=tNpd5BCv zCE6=C$_jSO_kU#|nes**wbmr(lc8o<{=HtvQiY?$*;E=v*u^jfcGaX=XFOZXPxxcP4`aSa?7@@O6uAE_no4q;ND#gZJz-AT@X-3mdw|QF zB;aY-hw!z^BCV7eNc;?yhT?T-U;GA`U@1PcoMeHc923#@0KUX?GPv1_W|93kGzwwi z;9r+|!k~tcU}vtrJ&&l?3x($}4`8`j^PKqtpZWbb9V!+7;#ne6b zYs-{Z_B~{wSf-gS|CkGuYb=Z+Q_cU`#uqe8Yb1-A0&vovb_fX&Sgl^_!#r*@^_vmsm z*_*te_jjRPwL9{SS}*eVtK)YEFPHEy7Xm={>E*|Jmrj&EJ$<5KuS|k?)-J&T6f)Qb zUzsVpONrQKX&Q6rEoDVyRKSWwJVBL*lplCX2&EeeWc7YZuQk#3_afdpk;O2lb{#qY z%o}&O7(Pah&Zl(&ls?CqG!pDfQTS49UTC}kW>r?GOeIQ6Smo5|x{=;@?s2-h^hAZc ziaI1&XHLSuT#n{YhT2S|-X;pU#XjyxmUGRb!%RlvY|svw`<$y=NW$2HJ*~XY6cvS2)Yd`j zdahwzHxhO$WzD9B@Dsli9KAcsX3@oTO(ElQ75;rXKfO%lS)9P1TSyq|^OUGO{#6Q6 zbT@DON2I*DQ&d?Al}N9!&&6f4_?@mA-`zXfksaTABA%Y!7L9`p6@9hdgf+LxXs^NuL5z@lVW9Vc~+Z+tQDqIMz3~boSL2D zMHj~Xv)H%%rNpMUD*I*RM7=ivm_#2!bXJ-=(%iLy-wFSO#jsV;1V8{*iakG$4)a>W z>yhN)b*~@Zc)#Q?!q_W5<>$(oatv~T-K0k1>S|Dw1n@Out+Q);m ze^#1kBzFubVM|U_F7aQLbjd|sk3N(kSN(@Nb&I`?B5%k)X*a_wHJ_h1qt2w~nY1&4G@(Fdw$hNMyX@f1 zz%yUAh41*e8L&;87G$)XFBo`*GBWU=@-bV;V3-$8ss8aQ{-S@`ldaYg&NedK%(jF% zL;o?NeCW`R8yvcze(>4;ms<}$^jjC0VV+_>2SZ;v*Q7o3Gdm)Q&`hh+f+@snGc!Zw z7|dg&XTL<(LVgYvR z<#8JiiMY8_#WA#!k&cou&lM)RVJL6cM;B6uq`z35n$nF?GkF@8r)?3jTZMg^#q+Fm;fS-+%_E0J9*Mo-_+O>MibvQc zN7HB7@W22oSk6LU)BDL}YblsD7ji>a=HHsM`-H zJmJXLu`L?|@??P$YWBUqGC*w^_q5D_LiUGG=Y-PHU3xoCokp54R86Nu)$#0ZNSi4g=Vr>Hiv@Pjb& znsxH<0fOnZ92xiaa>hPhv4bVW=mGi52pOM8x9Onjpqqe3D#XpCbnXd8;dK4^G_|@` z_sP?fA~oSp?$nI4_2p#{+p=5CqL8`HOy9MvWu5!3`Xt2EP3?2cla;D@t_)NRV%hV% z_uP2<+>+tVmGRgrXK_2D)_!BHmx=dblX@Iw*y;G#sq}M{y11UEsIy(p1oG&}^8f2m zY(8x28U&Zsi;)MYtdh@_(ZJ$#}C;M^J3rI<{!!JWSyIE*J zJHPzd{r?=8DsyE5PE!6 zNvoZ87~KS*OB)FIWoDS+O%u-`{{tT*okE#cFW2N)RU~lne?7DQ3Nwo*DkDQQ8CR20 zR47#>OeDHh=7%dsWzHQ()nbd}1t! zRT<~|X55q2gMy$3n_C1R%RA|TsoHyvzJ;AQOcfub6B>eM$uykbnY_j`q8E+xaayTM z>9$X1Tq}_B_I|MGgmUUY6qnO%`;`S;O#f{rpHI{wLBM}7Z|4-F?r3%-v(47M$VJ0d zE`vwa3NKibCFW(TiK=b$KB^`sMx~26l_zhtM@1O^^U1)U&F@4YU7iC zYA~sP62$MB9pET|hxB_pzwuF3-y_Ye+FsAZ=|uKb$zXs|O1eU(&f$pzO{k@sGxM_W z&$3Vuxb+VxtmIX{cx@d_y=CyVdGNJ?SN#&Al` z`;(vvN`bNW@eBVzrYhcEJ8XEp_o|B;C{9u<mzlKjw%`M&lbo5LG``)UCnMNJ zB8sdaoi5>y8gB>i5m;zO!%`lxE;iI2ue8$%xtIZGD-qhtxtAi+SzsTuipSn| z{b+NT#nv7!eT zEGA?|&s)x^8@+5r56c5yx5lvDHrh#k%ein9;SD!B#T%WkZzQ>=<-xEWsMw66nl|aW z=H4&7$g2v5;YTZj5j%IirmOc#u*oFXM%XgMR7GEfdGQDa1LBr-opgc)i4+Z#J|L&T zCj90_(cYtQlw+qGEi@6^i{dkm_V8K#ex~m!ub_7~d4(?2s3FUwBkq()J&6gv=S7@^ zCIl;$1UKQKr8Vg*qSa_)g{oGLc(J|BClIVDf)4pk%h9#zhQeAT<_ko9l3Ka3`AHzR zdXf#}%InK`df9e)2(lpcE@#OMB&Sp=MM$1SDh9bGI>pzb6SmD3m%6pATfKyG`_1!C z6U*4BU~MG$4X9(MzIlo3l&^c!buL`T+v#gAJ33^#>8}*ZeE5dO03X&E5;vzWZ665n z$$EryuPR?e9LtmgzNkxA1|)=b}|)e)VPr1T%MVlp76`oN7O@!18`HF z(Kbkl7OJzPTd)bt&emD!akp{n=nUjSYIB4OQR4etHZ(D;A}#RmVJ`6sI%e^86o-zM z(lKmXEF!BiW#1FsQKhaskR`nw21P}Qo3&!8BB7c|xO5fUG98AcX)~cglC2RN78?yk zi4vI7!%q9{pD^=<;33G z;gZJeqmrg;qFtFWi*NLjH=y};N0YH`r(*<_rK@2BteztAbm4V%sR`FY$OXyNyHmX8 z`v*GTY2L(bpT8OC-HhE-6S?HmQhWp0NeLB#CH&~!y`V<0|AD5gCSseNj(1rYPAYHN zgVhIg4fi>~0k#4#6vZocGVZ$>siajI&pJFUb2Ch&JcCb~ryQE_Vkr>HBf_{S4?pik zG!@UjxGIbex$>nRQ=8!PraN2yV@E+Xo#ceT1zk*z*c%2qqQcR5zOwLSj{s;7U}bh!K?- zqSD^GKLN+H!Y6Ut=%7()!SWtC5{wWyc#Uv=#4B8eu(Q>Oh%7&%$2XIwb&6WhoA-RB z-Q|{KnhC(USfgV=qr&y1W?1@gXQ=?%<^fI}Eav)!s_OU2&Uo6vlt zvlz!k0ZYk}^_nZugQRE0_C#uxw-eiR2SVW%L!uf}1U)p`(aRn|8@WO21}q*{w@u#!Q z^UT|MB1o$QGLVzYm)!ONm(>G8;puu7KEPaPfKLqk7bvR%`bDxdg1}yZ8wI3^d!A(_ zzFQ5cTiXm0bUG3guvv4TM$Ja*!t~^;#bayY>2g{t_mgLG)c!+`WXI%))4>0wPS=$* zmP|b=S(QksPb?EkkbCk`ZH#;6y2eM&gStH{^&#dPk*A4ETNM2e8|6wHuW{^fH+@{K zSKP5)>oi#KTl|G`H%m<6>47-=+M`aFf-H!1N=3Qjx2X}9y=`IX_+hyO{bq%)ut(PruR#ZH`pbM;=jp&}uGjUy&sD-Q=$Ko|9Zjm*Ce9H7*^{ zMcZ>v_MUVjo8sD2OKt0WUbx^s(eHf`c8wHlL_Ul)0w&SkQ;>{hTK+qnZN}I}t$=zt z4@pEdq9vf^xJ5IC1GgH_CTHQPj8F^G5?3c1LbhqI2+}xVV zVaPC40P*wbWoz68kJ5)39x3;1Kq!k*U3(A9*bF_6u7?|TG=B?Aae+o8GTniI;+~w- zpZVUJc)B8ydRV)O0CWkwqzhcxD_)k9U$z#5gBOn>j2aAWdprOs~?uXMz!$S z$agn=6zh`aEWVRh=}e{_)_4=dI7-Ew=3QivNrN<4 zQlDB4?CboReMxzz6eCV2!y=;{fG%0lW9ULWo>;VFqwF=WDqv%IQU2V#*Yd0?_nSvW zDzUp*uhdfdmB)CT#l6D~Gg?YtHG?Gzo(dkVtOWLL5K$r9jF8X&tiYJw#=9m6RaPbWV! z0AnhOr)L+y>H-c&+c$t+`_A*rup1SZ`K`ynm7My%xHr21b+9P?MNaQ7I)@qr#A;De z3Ij@!`)~L`T-Xy36$g+`e`)sBG+c@&mDHA0GjS4G*-HGgPaqx=?bD|QukhY@`U_|X z8j`6O(2PrWb7YiiK*?)9DUqVr&|`;ACAU#2_VNXK zNUg+|j`OuB1ZqZ1#t7f6?in9!&w8&M=`0cP)u%Q>0(GzvK&&AKee??N$)@-Yp7lNN zeK9*@kl&l~m{1O9J=x?=!VTsXns;N5#=XPi-lnU*G}SN0EWROupRu1z4=|9Xc*T3Y zhX?&-cPSmytzd8{ul1gRxIZhhK5ne?ZtRJcU2*@MNFByNV0&Pn9v$q5e|`k9+M(+K zEDg%avt*jaFa*buM50Z{KZcy3cR-n1Qb~AgI5lp?-bnN}qRl}yD0>fk6^tKl5_{9> zES5g}MgGLwr$zxRh)k_m&6anll5mFy)kU{q@_RW@k)YVc6MV9gLpU{)UugLxvr=c7 zrfR%s89xvm{NQD!5ihcFG?E|^Ys!?RWG^i)qiRi*8M8m(@JUt9lD=oP%T6YZK;6>R zi1t((q_>TL$GqD%gvtD{?LZ*5cf8n+Wj~V#XSTB~2(ud$GeX0ciZ)YYZ?|K&ngwG| z`il*;HSjHrPy^$>j-)3yB|2qBJk0cp(FQPBS+?B52fzv<{gP2ViBAbJ1=`h%qRvhIRvpbD|h z8v3cVmilYtEYF0GS1fZQ9UDWPRu~3Skxl83*ZYOnW6LR3;vDk!R&ky;^3Tq|;vU5~njkeiwog)atxfnJn=y7x-zh2rd*= z+9ioN;J38kwAK^5G)ttchD?ji6oZ+*5?LR;UL6t`rAx=xyNeBj0d+$FhUGP}RFlm4Rit#98t&s-lxhrebB1A&#?k9meQvuLGt| zL7e+QD$tegG!3w3T!vLZ5GBgQDrjqhLEs<*Yo_=dk4t8OqrF~NMe2J z^KtL<0Jqkgu&kMV&}Am?SzhyR2K3G_W1F05)}t-f4_8)_)7i|tNivno2w0^V>>!=# zyIX*<2C+fvg--i+c+ubRVI|+$oVb~X)TL!6!Rh$ZSc+X*R+?SUZEg}{%BM-uAaGA; zmwSRvISDrY+2hW7?F0*><2ckZnWe0n7yTF6lk6Ca zDC6nVjrYQRrp8A`YNGJuvleL#rKzjPtA##TNDY`n;bX85vE-_A{K74{qo(DVm;PRy z3npmpi$#;uy7Gh*{y~5yH@9GFFHlBQ>`&s<(u@SU8oBzF${fWvV?^EHEZD-Ltv-dC z!vbWbu}`RoP$|Gx2v5kMe{MQam_3IZ#mHf(j=Bx#EECQnQFH2L7T>ZL1s9Ns_n38m zY4#eVTi7q~TH6a06`#^S`c_lq?R6tt23N{wuS1t+-j&tq8vmLV#j`Z&Vqaq6ZF;5* zug1~BQIh$T+Tcy^Vo%-a+*F{P%M7#3Yws-2y>1};EH~RSs%|f!Sh}jJbxYcrr$l#`+J}PaWQO`oP-0p@I!#YC8k*I?xw3w`?arH zSQ_wJqa1GXc3zM-i@$EZThzvG5^g~3qOgq}6C(o#VFLh03`TR|dhY`AB3?CF zQdnfIFVVn-(uP%#LG#vI30E}b_^1*g3_C8v{S%-qr?gs0@l%v$AeUO}1unW!RC-)H z2&a4@drU`-y_sf*nVUTbu?zu<6=AHBKv*xdR$j>4%qtc^X<9Gz5P{S3t_ zs3Kqv?V}(W4iS-Zr`=>>p_A;<8Ye@uV{V_JW>3#LR}(ZA7=4o+OVCxANiz5DqK&rk z!)Y%#95k@%vS7TIL>C4wgD$$zi=dHsOty(?yexzwKAF7@MH*SOWVunjbF+Pp-+KK( zuLH6s+Si-)_B=97Iz#sTSH1Pg)RydCQ^J*Vq}_%2C_^+dK|&;dZ^p26P)B{_v-*W3 zQcpohI@+y{)*?AzmnxfGs5?PZID}dDnO%vhW;{GwLmxCIKzvfys)}ufnn}1p()+Qq z{0Sd(V_O~f5mrf9Xy!99tU8*V^n|NB-}(NozUSiJg!#P~0j!spN(uqlrVylHeB-su z!7}~pz%sojw$nLpJDS^7Bh9UE0AJhi@`pTnyJZ=Mu;vtS0d_Zhh)Z|+~Z1{lo z)iI&u7|g#utgc|pdd$`~e|YBP2#~^{iGXBrW;l~w$G7Q&AP1ybk|&|>0N1HOh(EIdb02ED(E?; ze>qScO`rJ^0#ms2XEh2i<=T*0q6YnmpSs)({{gueX0AM6z=F?`aXdjwUJD`imxdS) zOEqWI0u@xzt^DEXTQ}b_b<^!I=c^@uU3QVHI2MlJFs`V$H zo<% zL=`YD*l{9dq>t*1r;m%V*MK1(=`E;Pa*@yYFQvYbvV~bmV|O1d^<4?OG|8!l(W!M#so5=!CMVm{wUUz&yzgMj$oCKAt$q6$NMwXc>tFr zu>N`OjRV=@m&J)Mw435^;qEKUhByoHN|(LR#kZT`go_1Gkb=}PsNx;+)^)b#1(=|9 z&7}tEh5O87bmbukPA|0pBy5Dqx3QBH(%0%ds>p?sVw@(}9H z%Z3n&z8u8&XQt@VpSX+6IZv?UG?R9i(&&jA&XfoAYmkNs(bLR4Di}gIJuH1LSKD88 zxi-zf61*O?NM>y>h0mYB;o))jc#l-9(_udUv?t{xw$3<-)x}Y{j4WB$;!FFeOPElPz)$F#*@T%*T~C zHA0^(!8>`gk!I%-TgMVogq zzQ&{w|6-Yz`I-?e+#A8ygtuY*K2%dWi|!P-79`o7wsvC9U5-truvBlDnr2;H8=LT( ztMCjD+=QG{*YYKt6%feiH52aj9yQkJQ=fo!Y_Xmb;Pom_6Krm|Q4kXM(^6UN0%0X~ zp@q0Q_CN4;$&Pu}qLQlPK2lZ&(oFvvM&-AV>$~-J3AM<4Zkea2{Rnd#_}2S9SkWy; zItOUS@)-V89-y7*C6DR+8DtReq0C->N(svBhDO1+xfC!$n%Xnl>x6Gs zPRoE<6$m%J{VkGO7Xi~`sEeqZ-87%M1+-RkkEuC-WC26uXVBMRT%RN(uOcT6ByWf- z|8>Yf^u;J1$Jzni!{-Ok*$vkm9t=pbIyV+^x&P^KnuJ6L8_Sk+?N|zembTEcAx2~J zss0Ed`-!!z*{$a$7xJO|uf=^cd(jgZkG)5;GeNbSFQ?2sK~`marSeY0BN??gsEUpSas-x`vBv?4nW+^ zctM--=5ufW;+Clo~AftTxGZ!f%%FcS8+0WAFq4yVW zPt1R{L{jKnO|s53U)kN4iQ+c>fD7Ht(@i^W zx}1a2aeJC2zW(e&Is)v@7N+T`5e&meKB$J25~ZYT3bYD&7M#Q#{Q)I8wNJ1Zo@tz$ z_JCw^V0)Qo`iRbrbgjnel8h4*n?uv-&v(8bJ(8#3STl$NvoJaqp{GEcei5c9-e8BltJ7A&-?3?=xo!+HR z4;`#R6#Uh}exDA}@9p@-^=!o z?lB?N{H2eR5A0*~Q2O}zKOel0aofjDe9rapGq#UgzfBsXZ2I^yrNOaFb18k6D9>v$ z87%PMnqqUY0T)ci)`0rzD4)gm-}ohPcnDvpnN&S2dlL9&$H_;=iRPhkP8SKYj?P28 z!w1KSVOG;}5X37p<9z*qxwz2w_C>~&@Lo4V&D5&5{={ql$);&KGUJs-20QNOGGk5u zU(a}?XIIcy<5wZea(b)+A3Wi7+z4X(=X}`yF5y)Ei#qIR#3i{0j}nY#;iVeQ5HdRX zP)75N>F$A;l|I|_yx4xWqnUk{N&8KZX4b_ir7>&ex%r5zB;;{FU$TER)@Jriz&SVl zNrj#55Yx9Kz*fTux|N5x{KD~}BRFAj1V?=2eEiI!#{u)P(GvZ20rs3E*#DLg#mvX@ zAWe3G%ukgzWCZhU$)!QA@yd0jaxtoxcxI2J$JSp?{v0!PFcvG-edJRtk0aXqhdWF5 zGH2cs?H>{)s~vt8GU9X%fft;vStQ};?>F)EI8)$lV8S_o>73W&`ZKj9HAf{H0UM(D zgc}m(*;K%qa*uOOEv0ztb*`Rd-oDn2+cgf@3Ku@hpf~8^>{?Vha;$Bh062K>3DJ+nOe){khqrwb&)s|6>&dW!30pxN>fkb z=CIGh(uG%hg$s;9Ze7cp^y}i#f=SP@8Pl0Xs@nf92oge!jhF;bYbYWlV8ZD*6(LOz zHIjHN>t*r)6z9Z9Ja#sRrQQeCj0ijfv{pq;42Y{JL6_FMqcU8#QQmAB6UZXir|YLs znxO2Qv3Sm_>fH?%f7pbW_HQ+eL;FX9p=8=;22r_+dW_0PG9|u!iFAP70|WbE zUfY=l+7yfy1;aFIpK#b3Irmf=H2DvUCiysZ#vo3G7S3ujz>(ttA5Huvgu26yG_H|` z6MW-j0oro1Lmp{vba`VEJJcMgG7*w~3-;qTX8w_A5gP3eg0^PySzD(GH+`5P!0u0L zykmX~PKf}>OT{%Ry#H_)2fE;xvlv9)a08lAqjM;i`EQzJQY*=o8|p77k(OdJiTRX0 z*BbJKW$MtO%<#d-ZE-8p3T|tZD`>`y&g?DI$5+7#`h@AS{R2e9+~bh!^(Ks61MU7{ zIG+?cqane*6n@cfO9M~%i%mIssA?II@YX5-+}(m4`#ATRB*aHA?nS}*3rRyYC8sl; zVRm7KHEg~gOUt#=CPw|Wr1vIFJ;G>=<7|4p@Tb?toq^bHZSKk;ck z=je9o7lcmDWr+}+nN!F`obq(NPJ{kqa2m8Kfe@|MuB<oae@A#%4-U# zS@p0@OJG`m@@mQ41`b~k9W*!Jh`T7KM#e_*+}7q*%WDj%iV3{!JHm7dTZlrAQW z5&D06@20H7ME+b|da)#SG~-IoWe9AE#?bUudl_fih*a_XUMLm=a{f5%k=HiL>r{Ily4CsLVYQW8>D_vf z!P4J@o(Dy}T_R<|bdc=<4y759@zCdmdMGS(B*Z>~7eq5Zx0xgC*@l87^AnR9A0K57 z#n?GE<2O~SwZ-htTu#QIHY_l^GhelNT;)+oHY+a6+SEF7%PTjzD$xPE~0MZi%K`Mce z2hu!n9>c!z!6^9OMXmnCs&6ouP#|>vodu&*+l0Tu@Njw;ZWz&kB=EuHUyeKGaaJP< zC^IN^18zAjX1V1;(;QAXWD)=kYMJX#j$zr3%c!PwIkP0Bmd2TscLUD{#W!JCHz#_d*csV9=e!5P|ORxsNl)A3r@&&}HouVrXWh&GmOwlGDs0tpN7gzDLCh$2Hb70^B*E9?>KzA6YIZw}7`Y>0*j}lc8xa!i9Hu|39r^!idv<&5_ z=T{HqsNdyx4mXL4y*u;#1UM>pILc(FrNAY%+z|l>I_22OTIJnhmJy+_3MCYHu!X!7 zks_`*qs_*3&CH@*AX3G|mnNAN#&Yu1rPjc#TX{o_Wg@gv{**wgMF=rOnUy>BjemVR zbP{+C-|psDdW3#G25;y1)1Ah~sPi9fd;$hFaO*-jUN?~aX3|17K^sIVvn~c=oHWU= z$H>7iaY#3|%jsBBXvQGM?Bcht!m}8H>%Ab4p1HU_vC~Kbolhrq-uRZX27V?|J+X(i ztw9eOsjo)sq-Fxl!PAwj#z=8T=<|%SX19`GS`N`poObBRV%w8evRv#|5UXyl@0M^5 z&Pn2PgD)Gc1S9gM7P?+H?#|pw(52WoM5~Sf@L7Dn&DPRrqT((d35%jR^@sr0>s(%vg5|j*U|Vz2xWtznG&g+c>{*-9Y;n_On6>{Z_L?3CfdSvK}H!dGUJ1c8ci-^q0LyC zpRqt0F*(fQnf+nl$){;VY#RA;87CYGuv2t9$&?H;Qvz*ro zR0%zlVzmpVHBpf)Yqi*ZCm$6A4E!hKgt=fVV6UN;> z9(g)m(HncX6@`WH zn$*DwNrL;<`%zEP?VAWO?@!=#JR{^|ctAx#mVKg5`h`74pW%@2Fg)}WcTw69j?JSX zU0lt!wER&=Uz*~P*Wwk=$p@DIZ!%{xr!&S*xiecVv|}9PO;*tcIW-R5#?dO!0vJP8 zmZD@aX>@Tz6#xzG<`J!>MXr8nc9zTsWeW(yO#=vqI!VfLoGW_*RL~jbi&Jb z0VQ&VoYyf~7%8b)Fz20mkA*6)8{i;?0Kp-Ljth`p#CS*{Sm(Xex6>=?eQ_zoAIelX z7u%8IxV7HP-h_5Aq}ea7Jj*ZST*^j5R9rJq>qQq#@uOw3WKDs5G(X-}HYeKXia4dW z4$j@c7jfKKI&0Jz*vlf>dIeG4SZCTGaArD+C+4_odiqZszuJ4Mq9^u7>on^}9odT8 z=d}ZH8Ef?zNk#J}HWB{Anyg2=Jy-(ID*8X(QFd^7a zGPa{-O>OK|r{jKjfS9$kg?1(@a#lKeH(gEK49d*sR4ZweoIl`4PZhGd3kbhk?s}#1 zzGul#G;szZrrBIaBxq)}YwKslGUzmWu9(t=PbJEMDb&CB`x{2a3XAd(78?Q4TC}RN3PW zWk>59!On!8d6!-#Qd|jk>5_q#EGRmHZZ-K+!$qY>z{wg``E`*Ey~hu(uPGnlIF1QP zp&`f9xM8N=s7>RL&6$O{&vRMB;+yzjyesyQL-?zkgrYyCxPwgK`WbXYZ&> z1#*6BzfcdynI2?(!k_*GWZkIqvfR@euXx(bXl+E#Q@P%xk;4~+QDI(3aSQ;A%{rZ* zWGclCw@Zj~Vj9Xe(-dyD8CT@{ zLk&q>>%-pL>2@=016H}3Y%Zvtu+-5FHO-hiH9AyEK)hi5Hev!*JfG9Y zCS2_&B2e1#{)FQolDKzTn@*W~$zKm3`acWBTrDDv$JVxNQ;Vu9&sfAXZJ|{yw3hRX z`^6*T&RwfbOa$X*P_dd)W>?9T+_H+OlUSu(ZloJ(5c|&l(wM@Sh=2iSk7e`ROiGY| zQj&cXi=CM*NU%+%Y6xK>aVK+6$jrip18x#jE~dgmO9kLycB-t@le%K|kyMf6zm4ew z998zn4ho3x^4s!eyY_@x>N7-I66)UEgH(^uKf5ryo>ho+9~mUFZ~f7BYbM=F*A(G# z;dFVn!Zse^JnATtI>vlzk(JWj!yF#+JIV%>%U@wu+2Zd7-VP&Us4ucX;Z!l{v3g8+ zQEn%&ibK**81tgqO!_rNnRvOZ4Av$`*KI>ZG!*oxqp!$f%S?0uI72^e%GyVmO*PMI zDZ>L)9Tp?{%3khZ?!ht`_vRMOy@Zn)FQ{&DmN<}riid8}Ev`yZd z6|2ZY?6hretXsr*khp0I@2~d4T7e1gm@d-g*;dv-+Hh^8MKdp~TjCX~;Xd3ndxUiI zMpn74*$<6}E@jNcOj@}%?(abp5^kD93Y>JK`@)LP#ZY&guE!vAV`)oQ=}}4)0ClI0 zT;>oJOB4*?;jcvYxEGC5uT7m-15k*;IlU*p}(7RnB55*h=m>O|8+7Dfd=$*!8d$7WA>AV4@6GS6fi<-P} z0Jk8EMo!lmj9lGRA^-d4SXL9Sh=_%T)9m#pe4Z)S`BoFaC+@k6%o&NjEqhoh3R>A- z9GO{vuRT{nC*12fd2q?jYULxA?0f2H3VfL(KAN{z`sgWUd4As6dA7FSe^OMCZ)^K^ zn`kjsRttdCk-+noP}t?elIezF#0pp&NkchrZ$@W2N2(A z;pp3;)(KWO6Oe`BORH_zo)}lW%KX!~#PsM(i@W z8n8@P=((QDP7@_J(l)>1C6}Lo3VCmgC?|7|hVZa%S@*&~-bs{cad?xqUD~LOrW@&u z#w4(4EV{$ji~(bt-#h{_(dR7bv3Z+}{jB5Y!{CZ5?ad`DKpx_w({Zg4K=F; zEQ$se%&TD-QYb@HE}r^Fds69w#sPYV;?+X=ob=Zn|hx5WtT zJNa?RQYgJu;nL)I7>-PWpea4>W(io@B|gp^8BQBC=w+s7iB$CJ<}vCS}dhXOU-Do)Fc*`xrH^vvlI(XV1PYJT$=Tb zlu!4`{+5^BNi1(2zf{ai+FRdNDXYhNJKV^ITDGLQ*|299H_CvRMkSch3A2N?Lz)2q zCjN1a^%r9vB};@2XQgKpu*%(T&yBk`pl##H?l%%~<9%t7>Ewezl0&u4eZs~ggGI1E zYdAf)P>94C9l~^=pg*MRf|BR;&$}S*e;Muk9o%7li}i@rf6y31_w6cs!d{u+I)FbT z!pJ)~Y^$DkV+_XR`{ba8{#0!RVQw3@*P)BoMz$q^NF!Z16_ufJivV@3(|J;0n1kRF z&f-^9w+!GYs{$Y%^sP?&=>_6Ev9wftVZ&hVCC zk3dtuoE#t@hEV*E)5&3=KnU;r0Y=XjChGQ?ofHzeL~NZV7K{|0Ch&1q_8Cl-Inz+r zh0HOZnnUqpjUL(S(awXWD*_Gv84idm7Xy;qR`>OaH7WZzXSx;HL1{TO2DZ0}O8s;8 z4KAB7`f}eR%kygkyNwNO+ulQ<^<~w9$@P z4`+9vmgjW7OUvf4{tzl5>@s>-f3)n;#Hr_!_e#5h5}pmUx{8JP4D?7c5^n%6Fuz&S{rQX)WMbtXo>kg$kxi4RJVUi zm9(TYn;K-GX7a{(Vf)hL%bi8bSc)Z5Hi9+aXybFOKO2r5cv?Itw33M{;m>Fvkc%Gh z_UtCFxt$(sOl|D#+)g{^zwj6Nc%GKERViZ`m$`UFn4o`bcx)4%+9roKX9Si%u3enC zB!|Lq;y7jw@#<2)Hj?OhSyrzq^gjUhYE3@CJ~Id~`6}cAEWCg==l3x2OLpq^S8w+o zZ&lerhrUNh0b9%S0I749rJdd1Ki=+t%Y-O|*SYh$$m{XgbAUxN#$`SN!VGH2DWBVv z^4_sb5YQA<#H~tS^G9;#w)Gp1(fn}XX}GPAlSigf8B?{u!!9?|pOafyjSLYA zYPUcw+jEaqoN$B}>eykmjylr)M7V}Ts1a`~O32mI(!#cyq_?_P>kKT9_(!cZ*2kJ) zKR@t@68)N<1imIe<#%qX**aGB!6Gn(Oy+}P4FQa@oy=PXo0Yia;zzEA53}dl-#+sI zNPlh+(x}M!kp3OJ{&}QuFi5|5oPqQuf;5alvzYnQ(ds5aUci_T*qI(O>SK&CnC@rW zc4+SB7!_AS6LAsk&)x{L2RYl+6WuXtv6a4h@( zOMvg7ks*N2o=#jD*=yVAOCaN2ua`MlPC{T99qM#om%tYMlD*=7l+@(OM>TtgA`S#H zDf5?-Kb?vHb&&{f-jpkY|-q~o2Vbc zD>XK!9I*`=oAxI?Xf$1vz5Y>{?$G-=<6n(m5TAa*S2%pugl?NYt04XLsE(O&a)v`T z+EcHRgVfBcWc>gRHenQx<7uStatbEreSvLOR#}q^;gu@Bht-BL|Gwhl4WV{yh+*szq#TG zHZRw})_=>;kb2FX;EedW?jlkL?f!<=jn0Mc<61gxXnB#p$$A+O_^Z$($=KGGABmmJ z&;gsSGi1n3md)VKN?6reYFsLow@RyzC=s+6YER1^K-7fC($|@~OZA@cS%@UP$z^q1 z!JFD1*`bkWj8d?YVtDW_>SIRyD}gkI34H{kfIdrM!vQlV=Ojm}fLiC!LLHRDJlp)- zmz>(hX3q6UyLu$qcy32`)!pOz364Eht0lLgpVg^4%k;2@jiM2@JO_F<8~^Yf0E%eu zJ`WaLUqflW5XL!lI_kaciu9@ZNRF`ck?7lgj(_RHIIl1VI}<%GaUog_OM3Tcc1M#( zVQfl3ksIgz8_QtL5`G8-i673Aw*tju@}HTT-!iFou}cPSs50}E+<%@}LZhCTiF!dZ zctJlaQ&zYbeP;BWn{xeO+6#+5WCpn23@|~wn9lENp^K?nF~5Hb^AIjuMDMyzKmCzE z`#U`>JA<(=1pp(VFkZLt8hCuR@j48PzGUbkUMW|sayB%~22!ZEk&hj`W^OGq+&w~$ z2gI?(td|y&My3)QqiPI|GXqKQ1GbXa7g&F6bPeJzzwC6pP9dX6qFt!)(Nu_b(MEEl z`Khew7;qMu?_xGO_pLVvE}X7Ekb}NGGEt9!MXxlS3WhdqaA<|fJ2;+yQ5h5GMa_hR z)zC7JIc7W;kRx~4u=|Mrr@ilwkF%=sewt}(XiFLuYZTN+7U&e(bY?P1CWS7U<~L2! zkW5R!!gMk-NruiZ=0}<$)VeL*0xkBlBC@XT))iUwW!H)h^VMX20j&bDw$UW(MNxzW=-*o==+;h)8_uTW`=a;}Dc#eznpnpC6 zC}B7empK|Kevd5qlhrn^JwLkM|eIMCPr@+Ic-OJy`Q*H-} zo%x~v%~u!dsItE0+pC< zoOj`s@wGeN)kAlyEO|!8Ps|didj7xgRPl4_QuB+jG+I!Nmx9fsnXdO~ac3*e=9ljK zA2`$({z1px-z2OS?=$|_9)unL3Ov2>BP%Q+JjrfT-TAnPt3Chmy`F!0smlE|UjGOz zK8H2P#jm2HYI}Rn$vNati*v}H;v7P~1bdZPfGb^n`w?9N?`?TG|F_fywSLTT^jfss z()+H$bd9#Fs7kLfBgavb9lGQ$v<=hMHMlw8TlAG6G4tVdi{yE)ya(5NaH@WV;3$LDc=a1X(^;3^7_3t0Rr&aDaj(Guf;Lg^*{kS&}bHj055)eyx zus^Q%!{2CfXhp=77yP?haNmo4Iq`?Dd`PW7l3NI!=9Fw8W4L>&eZ{ekyT6VkWHbJA z*5N}IbJyo^arxz&u^NVWk5QeY#E#+_wN=$~@5L>3cf6^GTMf_HBJQu-;fG`IxCZZ^ zgX-b|4bC-ax#tziNRWWNvXHKiUGzb6Z<&eUC=EzjCO#!@Eu?o(-?tAB{1)TLeRtB& z{R{THphfAV&|Qq2l_!M)0v#e5g;jl0_|PH|FwamZRFlH{7gE5aBum^`Kwqr1PYM@V z&_DckUCiUUF@rN@0G%)x}&sYx-C~mIe1GL`4yNyPUp_M;R2ps)0A5i^XHO)xGV1 z{wkIY0U;JXB@^T>Jwe`u0#zzY##L*a&%&g4S_V1*HNIRlB%coM1gfUYz1T&OFRUtK z#e1rS75^5;zKHvfM1v;g6NWU=YEVFOeVDj#b|bh3nClLUtDd;f?1yp054GvtZI?q` zv|bG;I(7IGMixKhA;;EJGLyy`K8kM@w`X-W$J;C7ojYz5y~e%j)*5dz5!EQi-tf`cEhg~t@kc8 z&gOJBj~u&-ip(BGJ#P{Q{MvGu26BXH8XdskV6B#E-YU7;A;j{orQpH|!)1Q;#K)a{ z6`JOI>p3}k^KiF%SdP!4@S%9T5$Q>aPQ=@d=RR=H^(!?8dUhQV>qC7luUb!goT4rX zV_dT`B7fV3-&X#HlNzc6Y-g&l8d$XHU611SGyP-{<})xz#NuAjhTkaKP&$Z}mWuE9 z+Q%_IJuK`bZF#zyLeBoi-_Z!AC$LD5-_Dbsv>E!Kz5~Mcs=J;oRz*Xwe0Lp!I9d%Y zsfxxUg4<^DMwFy{7n4BiWB}keGK#ogEHf6dQHQ@rQ`)3Lnxc=vg7|881h6sKl%t0t`y(!HrdQQQ5N`xgYR6eeX?|8~)K zye_?y#3R1?zbq!aVhH|(lM2pu_+c9NsA@ntH!it3PkVp@Y*nVE_*#pF>1E=%k#@8S zc6$bk(!c0v`I)sSEzI@|#(`zF@4;;JY}VzE8H|_}+zqVjth1!f(r_#qqsF=!f|D@+r*Bl#x?H{thgfiyZhO z}u*ONNv&RsL#I2j{a_JRsw6!w$ zr}IC5c`xzd{U2oX(nRKa#m=HUr2K$>r|7J*iOf-o7W*4(sVC->));w@ou~fdL}tet z%4tbKjCh>hezp3Q8qrR8T6Lco#uQ0<<+*J$#96lcF$wz~guT2StBlZp{%rj(Kw&67 z1re3?zX|tBKvuaCwNUCm01iw4U%x8#7iZ^xnEu-^a!U1o8|j}y{K1*eIK4J^>3v=3 z4Q>7F>HPG|E`p2k1LvWKpIJ!j@W@&(Tm}W7>736$-?mizq^CUTjACFhFQo!gS1tXi`-<|Pq3*kJtHPO9gg#93h#e-qW{P&i^+nq8q1OaLFB*Ua zBa*QW(V%epQTX$3kaA!48{ER(z3WKp`@RC7J%c&$NcC61o=t}`*{DC32o4N(v~B2b z?+Ns5=pPDh>eX=_WN0KFg*-EyN~H6-s2PooMUxYucs`mn^VwK(%=8Zq_}kV? z`JsF+H5eVsM6=mgDj6KuFcc`OeJGiXjmP4lTy!wCE&CdL`LRSanY%s_%H0sljrXAD zOe~bl4W&cj=%#2mm&%}YWfO(wRKAjyhH<5R%Y>3#eV71xW@3}( zcqnUL9x;=tql0124kT|!IrYoWW;cccaE*@k;Lwdj zfsVdl|As)Yb7OCBaM0hszUbujVdL`bn#=QRgabz-MYR?gmR@F3C?#z3zRM#wo8r&q zql*l*6zIxuDozBxxt37dHhnD(xT->Iw4HSRa_NKqw&%c7`feF_d^zf=wCO4i+hT^f?g?Y`Z%}g?tNx0B6 zhVlA*g3aPvw~ES=2gZ`_i7d+Qr58BI>J*)GFtY4$pDn%dpI`W8!0qtk4$%W0acoW^#Kr{0bBm9;zU6HJC; zxy%|9u{WB5A5qwa8^t3r?rR<$s(%!J(O+`oQ8S#+WDthPV`7m!oQGUcY>HooG;^>6 z19vcB`U57$?SLs^<}H%xYrBL#acwx*#sTX+dmLPCZWFE?N=D>>FhiNBL35_k<Rn) zuQP@bZ06JHXvXZu69R3?Ih>#yn`;5vy^>QBis&Ep3rG4VK5Os6q< zXUAisIquGSTYrj!0rX-f3RRFFh>3{0RhAGUl@Q{KB|>9RJF~qEvuGSjD1L58HXV=U zgm;C+1hSgVpG;xZhPI0Q+b}zqs;*d5qoZad78;`%s3yXCb#RCx7g{2(4pj-hi{d1Yud zP)0+PMDgTgmFt+yMPYktZCOThWV@(I)zg+jWXYye$q0p}(x_t}ii*F#W7A5rACbL( zV_#c8?ITUxBtn2eXF`f^Q1^9v`iT~apkU+gDeLpI3t94Gx!X<5pBO7SB($21`r9^{ zgTx{8U0Xfn^inBu1jaFgNmM$%M%6=ll?+21eJy@bYc!V4NxeAvwoC5q8|v#F92)HH z8R{v{%c{O1WF2t7S)syaiIV8o#u+?gy3> zKHn+Ir*S3oQEH|Lz*#y=LI{s`@!nQss5r@y$u^4ZrEBfphuB47iw;XYB5O=}0ztNsk+2x7V5ZR4C_8X*}oU2!_H2<%+#!2M5 zYyXgK`O4KLwMhwPe=3>Xo=8M-(iz5lkJ&pM%UKbdO&?B0qUPEP5;jFMl-hHLtuc{w zFE>5)UQmyl)SO*XDZ)A^3GJ{J&OW6CSM%xy_v)4=%Hf+J25=cc|7~^{$|n+(=urHQ z;k0FpPK9y^pRsUOsViv(JN$utv6@d?aNhFAY@+>vR1Vn$2b0;O#V&s>88_Bw^M%@B<|v_TsxC#$Q34{K zNH4kGIa?AggzPzqEO&nSIFL!Ya7;? zFk;u-bg<>?NNDQKY5oj!acWV@jkc{#kj0Ew`oF zqj)}n1LJGV@_EDTLYDlJgjnQW)Vx^*wDUcCIwhJ6c^L6)%o2TV*$r}7kZ^Nl~CTxqgXsTR?XudQEb6pmqrv1Cl%5$x~k2n>nygV)jTb;=c+ zf&d+fg>lYSwuG`nF%QkAv5GkwLk4W?4BL6O)T_vEKXtK}P(DetWc`No*)siB)&ry* zrDu6R>#$vGkyF~#p)sIf-4PnbZzV%>`#g75b0DlYF`PO z{_+s6gM@PdOCQ}%vL|Q7hk(+b>{N*d23nQJs(XLRv})f-D}qDaJ)MD`!47}#K%l43 z-!)LIe`8XxBBCYAosJjXIh)1kDB7{KT+BY2$*L90Y2z18lP}T0Rh?-;~ z_KHgQt$v;(f5r1DAr)7!`{W#f6^%Z*rV&hHy2WzndaMe>vU2W_2-XK|>(&y}Mv7YG z>Q>&ZFBK^1b0}vSU-plzZ?>JOTU52s8Oy+So5N zxW%rxBvRpW2$fRTQOcHsJi3&kE`7|EUtQvuD?ct}c*UiRn5~)APH|btRCI+CzoDmW z9_^rU9+yBHSBRs_&E;je+>L^(c?C|w%1Ob6CX(%TOEG#S&GINJL6bI$@f@Iwn!V&> z7~=$O6o_mx{$hREHs&oD@n7&!80t-Ji)LtLS{`+-_Bj13dzx0P#9yEIv)aEB_V;$U zUG*O9H}`l~6w{|Zf1}IaZi-d(K4fA2^uGgtdj0s*)*t8v>5-HKH?DLB+zl%moDkW8 zlMpYU6)RSlZQ^nXIB?jt5|-$JnO2xR11N6xboLAm1+eGzulCC`So4NZCP_1N0;@wI z+$$im38~E*T)#$^9LtGY0IVhaG&(ki%mx>eSDIOHK=st=tuT9|p$XE#ZUhXUwdPsMmWCACF@K2#S7JXVVV-#w<+7NH3PW2V@Q}DaSE+yM3u4Iqttd0AaLd_#o|JV z)9+o`*om0vm4=Y}7*ga67}~In1=-_-s%{u;7{Dq5yq4dh2#xUQ)Q?Js6@O1& z`?0^I?SEZ6?_$T*OK{<#6}a=c^93jN$A5gjFaTQp)ANOcpgvH#-+L02?(}{T^fc(+ zm(CXq+)4Jx&(0U>K=+act&dybT8;(&|y5+ zR*gIOofpm&20-_Mj)PWr&lINUH|R8I-E}yQd)bE9&lC=UK8bIAR^v{@aeUKw0JQG< znZkqg8}tyU6W_W%2YPH1?l!D8jB_{46n26hyJ@Cy40P`;(B}fQYs*X_4O%?{9JDSx zQ>ev#G!I5m4)nwrM>~kdW(uyws3(DTfKJ|qc7Qsw&)Ou<(J`}`dGfu8sc+6{W_&4q%A2SuFA3WYT2 z@Ouh{6QIXHr-|Yn$E~;#_*^p{WCI;;Efh|I*0mQ3t~ZnY3Wc3SuP+p)K#zeMcm(zI zeTBjR=s3O=>il7$Q2kcv9v4Ys%)5Qim^WEF@8TtIsy=|p>@wi=sQJ0? z!Z*+dMon#JP2F`%7jLWHX{2S)i~sHTU;Cr;g-@XGjCD1&AFArEsk_gy zuEyLye_f4p--7NM*Pex4HNIVMx~^ub%CU7pjn7}>^4B=QvaY5MMb_1zpJ*d}?#KTv zC(jp_6TlnckK+F%aCL2;4iSC?{|^GkThgtKaC¿x*5CTIL6{I~eO^C#yE?}ksS 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 m2xD{VAWfC>>50iimrMXVTzk^+agf=0b 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%0DMW1As<~R3M?F&Mw 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¿x*5CTIL6{I~eO^C#yE?}ksS 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 m2xD{VA qrows) + AMAcode = 61 + return bb, rts, ia, nexact, nnumeric, lgroots, AMAcode + end + + (hh, qq, iq, nnumeric) = numericShift!(hh, qq, iq, qrows, qcols, neq, anEpsi) + if (iq > qrows) + AMAcode = 62 + return bb, rts, ia, nexact, nnumeric, lgroots, AMAcode + end + + # Build the companion matrix. Compute the stability conditions, and + # combine them with the auxiliary initial conditions in q. + + (aa, ia, js) = buildA!(hh, qcols, neq) + + if (ia != 0) + for element in aa + if isnan(element) || isinf(element) + display("A is NAN or INF") + AMAcode = 63 + return bb, rts, ia, nexact, nnumeric, lgroots, AMAcode + end + end + (ww, rts, lgroots) = eigenSys!(aa, upper, min(size(js, 1), qrows - iq + 1)) + + + qq = augmentQ!(qq, ww, js, iq, qrows) + end + + test = nexact + nnumeric + lgroots + if (test > qrows) + AMAcode = 3 + elseif (test < qrows) + AMAcode = 4 + end + + # If the right-hand block of q is invertible, compute the reduced form. + + if(AMAcode == 0) + (nonsing,bb) = reducedForm(qq, qrows, qcols, bcols, neq, anEpsi) + if ( nonsing && AMAcode==0) + AMAcode = 1 + elseif (!nonsing && AMAcode==0) + AMAcode = 5 + elseif (!nonsing && AMAcode==3) + AMAcode = 35 + elseif (!nonsing && AMAcode==4) + AMAcode = 45 + end + end + + return bb, rts, ia, nexact, nnumeric, lgroots, AMAcode + # (bbJulia,rtsJulia,iaJulia,nexJulia,nnumJulia,lgrtsJulia,AMAcodeJulia) = AMAalg(hh,neq,nlag,nlead,anEpsi,1+anEpsi) +end # AndersonMooreAlg diff --git a/src/AndersonMoore/augmentQ!.jl b/src/AndersonMoore/augmentQ!.jl new file mode 100644 index 0000000..54fd9ec --- /dev/null +++ b/src/AndersonMoore/augmentQ!.jl @@ -0,0 +1,18 @@ +""" + augmentQ(qq, ww, js, iq, qrows) + +Copy the eigenvectors corresponding to the largest roots into the +remaining empty rows and columns js of q +""" +function augmentQ!(qq::Array{Float64,2}, ww::Array{Float64,2}, js::Array{Int64,2}, iq::Int64, qrows::Int64) + + if(iq < qrows) + lastrows = (iq + 1) : qrows + wrows = 1 : length(lastrows) + qq[lastrows, js] = @views ww[:, wrows]' + end + + return qq + +end # augmentQ + diff --git a/src/AndersonMoore/buildA!.jl b/src/AndersonMoore/buildA!.jl new file mode 100644 index 0000000..0ec74bf --- /dev/null +++ b/src/AndersonMoore/buildA!.jl @@ -0,0 +1,57 @@ +""" + buildA(hh, qcols, neq) + +Build the companion matrix, deleting inessential lags. +Solve for x_{t+nlead} in terms of x_{t+nlag},...,x_{t+nlead-1}. + +""" +function buildA!(hh::Array{Float64,2}, qcols::Int64, neq::Int64) + + left = 1:qcols + right = (qcols + 1):(qcols + neq) + + tmp = similar(hh) + tmp[:, left] = \(-hh[:, right], hh[:, left]) + + # Build the big transition matrix. + + aa = zeros(qcols, qcols) + + if(qcols > neq) + eyerows = 1:(qcols - neq) + eyecols = (neq + 1):qcols + aa[eyerows, eyecols] = eye(qcols - neq) + end + hrows = (qcols - neq + 1):qcols + aa[hrows, :] = tmp[:, left] + + # Delete inessential lags and build index array js. js indexes the + # columns in the big transition matrix that correspond to the + # essential lags in the model. They are the columns of q that will + # get the unstable left eigenvectors. + + js = Array{Int64}(1,qcols) + for ii in 1 : qcols + js[1, ii] = ii + end + + zerocols = sum(abs.(aa), 1) + zerocols = find(col->(col == 0), zerocols) + + + while length(zerocols) != 0 + # aa = filter!(x->(x !in zerocols), aa) + + aa = deleteCols(aa, zerocols) + aa = deleteRows(aa, zerocols) + js = deleteCols(js, zerocols) + + zerocols = sum(abs.(aa), 1) + zerocols = find(col->(col == 0), zerocols) + + end + ia = length(js) + + return (aa::Array{Float64,2}, ia::Int64, Int64.(js)::Array{Int64,2}) + +end # buildA diff --git a/src/AndersonMoore/eigenSys!.jl b/src/AndersonMoore/eigenSys!.jl new file mode 100644 index 0000000..26a2e72 --- /dev/null +++ b/src/AndersonMoore/eigenSys!.jl @@ -0,0 +1,34 @@ +""" + eigenSys!(h, qcols, neq) + +Compute the roots and the left eigenvectors of the companion +matrix, sort the roots from large-to-small, and sort the +eigenvectors conformably. Map the eigenvectors into the real +domain. Count the roots bigger than uprbnd. +""" +function eigenSys!(aa::Array{Float64,2}, upperbound::Float64, rowsLeft::Int64) + + roots = eigvals(aa') + ww = eigvecs(aa') + + # sort eigenvalues in descending order of magnitude + magnitudes = abs.(roots) + highestToLowestMag = sortperm(magnitudes, rev = true) # reverse order + roots = roots[highestToLowestMag] + + # sort eigenvecs in order found above + ww = ww[:, highestToLowestMag] + + # Given a complex conjugate pair of vectors W = [w1,w2], there is a + # nonsingular matrix D such that W*D = real(W) + imag(W). That is to + # say, W and real(W)+imag(W) span the same subspace, which is all + # that AMA cares about. + + ww = ( real(ww) + imag(ww) )::Array{Float64,2} + + # count how many roots are above the upperbound threshold + lgroots = mapreduce((mag->mag > upperbound ? 1 : 0), +, magnitudes) + + return (ww, roots, lgroots) + +end # eigenSys! diff --git a/src/AndersonMoore/err.jl b/src/AndersonMoore/err.jl new file mode 100644 index 0000000..85ab8f7 --- /dev/null +++ b/src/AndersonMoore/err.jl @@ -0,0 +1,46 @@ +function err(c) +# err(c) +# +# Interpret the return codes generated by the AMA routines. +# +# The return code c = 2 is used by AMA_schur.m but not by AMA_eig.m. + +# Original author: Gary Anderson +# Original file downloaded from: +# http://www.federalreserve.gov/Pubs/oss/oss4/code.html +# Adapted for Dynare by Dynare Team. +# +# This code is in the public domain and may be used freely. +# However the authors would appreciate acknowledgement of the source by +# citation of any of the following papers: +# +# Anderson, G. and Moore, G. +# "A Linear Algebraic Procedure for Solving Linear Perfect Foresight +# Models." +# Economics Letters, 17, 1985. +# +# Anderson, G. +# "Solving Linear Rational Expectations Models: A Horse Race" +# Computational Economics, 2008, vol. 31, issue 2, pages 95-113 +# +# Anderson, G. +# "A Reliable and Computationally Efficient Algorithm for Imposing the +# Saddle Point Property in Dynamic Models" +# Journal of Economic Dynamics and Control, 2010, vol. 34, issue 3, +# pages 472-489 + + if(c==1) e="AndersonMoore: unique solution." +elseif(c==2) e="AndersonMoore: roots not correctly computed by real_schur." +elseif(c==3) e="AndersonMoore: too many big roots." +elseif(c==35) e="AndersonMoore: too many big roots, and q(:,right) is singular." +elseif(c==4) e="AndersonMoore: too few big roots." +elseif(c==45) e="AndersonMoore: too few big roots, and q(:,right) is singular." +elseif(c==5) e="AndersonMoore: q(:,right) is singular." +elseif(c==61) e="AndersonMoore: too many exact shiftrights." +elseif(c==62) e="AndersonMoore: too many numeric shiftrights." +else e="AndersonMoore: return code not properly specified" +end + +return e + +end diff --git a/src/AndersonMoore/exactShift!.jl b/src/AndersonMoore/exactShift!.jl new file mode 100644 index 0000000..b13091d --- /dev/null +++ b/src/AndersonMoore/exactShift!.jl @@ -0,0 +1,52 @@ +""" + exactShift!(hh,qq, iq, qrows, qcols, neq) + +Compute the exact shiftrights and store them in qq. +""" +function exactShift!(hh::Array{Float64,2}, qq::Array{Float64,2}, iq::Int64, qRows::Int64, qCols::Int64, neq::Int64) + + # total number of shifts + nexact = 0 + + # functions to seperate hh + left = 1:qCols + right = (qCols + 1):(qCols + neq) + + + # get right most columns of hh + zerorows = hh[:, right]' + + # compute absolute value + zerorows = abs.(zerorows) + + # take the sum of the rows (aka 1st dimenison in julia) + zerorows = sum(zerorows, 1) + + # anon function returns index of the rows who sum is 0 + zerorows = find(row->(row == 0), zerorows) + + # continues until all zerorow indexes have been processed + while length(zerorows) != 0 && (iq <= qRows) + nz = size(zerorows, 1) + + # insert only the indexes found with zerorows into qq + qq[(iq + 1):(iq + nz), :] = hh[zerorows, left] + + # update by shifting right by $neq columns + hh[zerorows,:] = shiftRight!(hh[zerorows, :], neq) + + # increment our variables the amount of zerorows found + iq = iq + nz + nexact = nexact + nz + + # update zerorows as before but with our new hh matrix + zerorows = hh[:, right]' + zerorows = abs.(zerorows) + zerorows = sum(zerorows, 1) + zerorows = find(row->(row == 0), zerorows) + end # while + + return (hh, qq, iq, nexact) + +end # exactShift + diff --git a/src/AndersonMoore/numericShift!.jl b/src/AndersonMoore/numericShift!.jl new file mode 100644 index 0000000..246cb5a --- /dev/null +++ b/src/AndersonMoore/numericShift!.jl @@ -0,0 +1,48 @@ +""" + numericShift!(hh, qq, iq, qrows, qcols, neq, condn) + +Compute the numeric shiftrights and store them in q. +""" +function numericShift!(hh::Array{Float64,2}, qq::Array{Float64,2}, iq::Int64, qRows::Int64, qCols::Int64, neq::Int64, condn::Float64) + + # total number of shifts + nnumeric = 0 + + # functions to seperate hh + left = 1:qCols + right = (qCols + 1):(qCols + neq) + + # preform QR factorization on right side of hh + F = qrfact(hh[:, right], Val{true}) + + # filter R only keeping rows that are zero + zerorows = abs.(diag(F[:R])) + zerorows = find(x->(float(x) <= condn), zerorows) + + @inbounds while (length(zerorows) != 0) && (iq <= qRows) + # update hh with matrix multiplication of Q and hh + hh = *(F[:Q]', hh) + + # need total number of zero rows + nz = size(zerorows, 1) + + # update qq to keep track of rows that are zero + qq[(iq + 1):(iq + nz), :] = hh[zerorows, left] + + # update hh by shifting right + hh[zerorows, :] = shiftRight!(hh[zerorows, :], neq) + + # increment our variables by number of shifts + iq = iq + nz + nnumeric = nnumeric + nz + + # redo QR factorization and filter R as before + F = qrfact(hh[:, right], Val{true}) + zerorows = abs.(diag(F[:R])) + zerorows = find(x->(float(x) <= condn), zerorows) + + end # while + + return(hh, qq, iq, nnumeric) + +end # numericShift diff --git a/src/AndersonMoore/reducedForm.jl b/src/AndersonMoore/reducedForm.jl new file mode 100644 index 0000000..8e37ef4 --- /dev/null +++ b/src/AndersonMoore/reducedForm.jl @@ -0,0 +1,32 @@ +""" + reducedForm(qq, qrows, qcols, bcols, condn) + +Compute reduced-form coefficient matrix, b. +""" +function reducedForm(qq::Array{Float64,2}, qrows::Int64, qcols::Int64, bcols::Int64, neq::Int64, condn::Float64) + + bb = zeros(qrows, bcols) + + left = 1 : (qcols - qrows) + right = (qcols - qrows + 1) : qcols + qtmp = similar(qq) + + nonsing = ( 1 / cond(qq[:, right], 1) ) > condn + if nonsing + qtmp[:, left] = -qq[:, right] \ qq[:, left] + bb = qtmp[1 : neq, 1 : bcols] + else # rescale by dividing row by maximal qr element + # 'inverse condition number small, rescaling ' + themax = maximum(abs.(qtmp[:, right]), 2) + oneover = diagm(1 ./ themax[:, 1]) + + nonsing = ( 1 / cond( oneover*qtmp[:, right], 1) ) > condn + if nonsing + qtmp[:, left] = -(oneover*qtmp[:, right]) \ (oneover*(qtmp[:, left])) + bb = qtmp[1:neq, 1:bcols] + end + end + + return (nonsing, bb) + +end # reducedForm diff --git a/src/AndersonMoore/shiftRight!.jl b/src/AndersonMoore/shiftRight!.jl new file mode 100644 index 0000000..8f7a905 --- /dev/null +++ b/src/AndersonMoore/shiftRight!.jl @@ -0,0 +1,22 @@ +""" + shiftRight!(matrixIn,nn) + + Shift the rows of matrixIn to the right by nn columns, leaving zeros in the + first nn columns. +""" +function shiftRight!(matrixIn::Array{Float64,2}, nn::Int64) + + numColumns = size(matrixIn, 2) + + # left side of input matrix that holds data from column 1 to nn + left = matrixIn[:, 1:(numColumns - nn)] + + # initialize new array same size as input matrix to all zeros + result = zeros(matrixIn) + + # replace right size of input matrix with the first nn columns + result[:, (nn + 1):numColumns] = left + + return result +end # shiftRight + diff --git a/src/util/checkAM.jl b/src/util/checkAM.jl new file mode 100644 index 0000000..20dd8ca --- /dev/null +++ b/src/util/checkAM.jl @@ -0,0 +1,64 @@ +function checkAM(neq, nlag, nlead, h, b) + + +# substitute the reduced form, b, into the structural +# equations, h, to confirm that the reduced form solves +# the model. + + + +# Append negative identity matrix to b + +b = cat(2, b, -eye(neq)) + +# Define indexes into the lagged part (minus) +# and the current and lead part (plus) of h + +minus = 1:(neq * nlag) +plus = (neq * nlag + 1):(neq * (nlag + 1 + nlead)) + +# Initialize q + +q = zeros(neq * (nlead + 1), neq * (nlag + 1 + nlead)) + +# Stuff b into the upper left-hand block of q + +(rb,cb) = size(b) +q[(1:rb), (1:cb)] = b[(1:rb), (1:cb)] + +# Copy b into the (nlead) row blocks of q, shifting right +# by neq once more for each block (this produces a coefficient matrix that +# solves for x(t), x(t+1), ..., x(t+nlead)) in terms of x(t-nlag),...,x(t-1). + +for i in (1:nlead) + rows = i * neq + (1:neq) + q[rows,:] = shiftRight!( q[(rows - neq), :], neq ) +end + +# Premultiply the left block of q by the negative inverse +# of the right block of q (use equation solver to avoid +# actually computing the inverse). + +q[:,minus] = -q[:,plus] \ q[:,minus] + +# Define the solution error + +error = h[:,minus] + h[:,plus] * q[:,minus] + +# Take maximum absolute value of the vec of error (error(:)) + +err = maximum( abs.( error ) ); + +# space +print("Maximum absolute error: ") +println(err) + +# Resize q, removing the additional neq columns and rows + +rows = 1:(neq * nlead); +cols = 1:(neq * (nlag + nlead)) +q = q[rows,cols]; + + return q, err + +end diff --git a/test/defineAndersonMooreAlgTestFuncs.jl b/test/defineAndersonMooreAlgTestFuncs.jl new file mode 100644 index 0000000..cc1c135 --- /dev/null +++ b/test/defineAndersonMooreAlgTestFuncs.jl @@ -0,0 +1,726 @@ +module AndersonMooreAlgTests + +# include(joinpath(dirname(@__FILE__), "..", "src", "AndersonMoore.jl") +# test AndersonMooreAlg +using ..AndersonMoore, MAT + +#tweaked= False +# test AndersonMooreAlg firmvalueFalse example +function firmvalueFalse()::Bool + + +neq=4::Int64;nlag=1::Int64;nlead=1::Int64 +qRows=(neq*nlead)::Int64;qCols=(neq*(nlag+nlead))::Int64 + + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsfirmvalueFalse.mat") +bb=read(file,"bb") +bb=if(typeof(bb)==(Array{Float64,2})) bb else hcat(bb) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsfirmvalueFalse.mat") +rts=read(file,"rts") +rts=if(typeof(rts)==(Array{Float64,2})) rts else hcat(rts) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsfirmvalueFalse.mat") +hh=read(file,"hh") +checkH=read(file,"hh") +hh=if(typeof(hh)==(Array{Float64,2})) hh else hcat(hh) end +close(file) + +ia=3::Int64 + +nex=3::Int64 + +nnum=0::Int64 + +lgrts=1::Int64 + +AMAcode=1::Int64 + +anEpsi=0.0000000001::Float64 + +(bbJulia,rtsJulia,iaJulia,nexJulia,nnumJulia,lgrtsJulia,AMAcodeJulia) = +AndersonMooreAlg(hh,neq,nlag,nlead,anEpsi,1+anEpsi) + +print("firmvalue false ");checkAM(neq, nlag, nlead, checkH, bbJulia) + +isapprox(bbJulia,bb,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +isapprox(rtsJulia,rts,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +iaJulia==ia&& +nexJulia==nex&& +nnumJulia==nnum&& +iaJulia==ia +end; + +#tweaked= False +# test AndersonMooreAlg firmvalue3Leads2LagsFalse example +function firmvalue3Leads2LagsFalse()::Bool + + +neq=4::Int64;nlag=2::Int64;nlead=3::Int64 +qRows=(neq*nlead)::Int64;qCols=(neq*(nlag+nlead))::Int64 + + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsfirmvalue3Leads2LagsFalse.mat") +bb=read(file,"bb") +bb=if(typeof(bb)==(Array{Float64,2})) bb else hcat(bb) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsfirmvalue3Leads2LagsFalse.mat") +rts=read(file,"rts") +rts=if(typeof(rts)==(Array{Float64,2})) rts else hcat(rts) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsfirmvalue3Leads2LagsFalse.mat") +hh=read(file,"hh") +hh=if(typeof(hh)==(Array{Float64,2})) hh else hcat(hh) end +close(file) + +ia=6::Int64 + +nex=9::Int64 + +nnum=0::Int64 + +lgrts=3::Int64 + +AMAcode=1::Int64 + +anEpsi=0.0000000001::Float64 +(bbJulia,rtsJulia,iaJulia,nexJulia,nnumJulia,lgrtsJulia,AMAcodeJulia) = +AndersonMooreAlg(hh,neq,nlag,nlead,anEpsi,1+anEpsi) + +isapprox(bbJulia,bb,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +#transition matrix has three eigenvalues of equal magnitude two complex matlab orders them differently than julia so just checking the magnitudes +isapprox(abs.(rtsJulia[1:lgrts,1]),abs.(rts[1:lgrts,1]),rtol=0.1e-10::Float64,atol=0.0::Float64)&& +iaJulia==ia&& +nexJulia==nex&& +nnumJulia==nnum&& +iaJulia==ia +end; + +#tweaked= False +# test AndersonMooreAlg example7False example +function example7False()::Bool + + +neq=4::Int64;nlag=1::Int64;nlead=1::Int64 +qRows=(neq*nlead)::Int64;qCols=(neq*(nlag+nlead))::Int64 + + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsexample7False.mat") +bb=read(file,"bb") +bb=if(typeof(bb)==(Array{Float64,2})) bb else hcat(bb) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsexample7False.mat") +rts=read(file,"rts") +rts=if(typeof(rts)==(Array{Float64,2})) rts else hcat(rts) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsexample7False.mat") +hh=read(file,"hh") +hh=if(typeof(hh)==(Array{Float64,2})) hh else hcat(hh) end +close(file) + +ia=3::Int64 + +nex=2::Int64 + +nnum=0::Int64 + +lgrts=2::Int64 + +AMAcode=1::Int64 + +anEpsi=0.0000000001::Float64 + +(bbJulia,rtsJulia,iaJulia,nexJulia,nnumJulia,lgrtsJulia,AMAcodeJulia) = +AndersonMooreAlg(hh,neq,nlag,nlead,anEpsi,1+anEpsi) +isapprox(bbJulia,bb,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +isapprox(rtsJulia,rts,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +iaJulia==ia&& +nexJulia==nex&& +nnumJulia==nnum&& +iaJulia==ia +end; + +#tweaked= False +# test AndersonMooreAlg oneEquationNoLeadFalse example +function oneEquationNoLeadFalse()::Bool + + +neq=1::Int64;nlag=1::Int64;nlead=1::Int64 +qRows=(neq*nlead)::Int64;qCols=(neq*(nlag+nlead))::Int64 + + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsoneEquationNoLeadFalse.mat") +bb=read(file,"bb") +bb=if(typeof(bb)==(Array{Float64,2})) bb else hcat(bb) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsoneEquationNoLeadFalse.mat") +rts=read(file,"rts") +rts=if(typeof(rts)==(Array{Float64,2})) rts else hcat(rts) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsoneEquationNoLeadFalse.mat") +hh=read(file,"hh") +hh=if(typeof(hh)==(Array{Float64,2})) hh else hcat(hh) end +close(file) + +ia=1::Int64 + +nex=1::Int64 + +nnum=0::Int64 + +lgrts=0::Int64 + +AMAcode=1::Int64 + +anEpsi=0.0000000001::Float64 + +(bbJulia,rtsJulia,iaJulia,nexJulia,nnumJulia,lgrtsJulia,AMAcodeJulia) = +AndersonMooreAlg(hh,neq,nlag,nlead,anEpsi,1+anEpsi) +isapprox(bbJulia,bb,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +isapprox(rtsJulia,rts,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +iaJulia==ia&& +nexJulia==nex&& +nnumJulia==nnum&& +iaJulia==ia +end; + +#tweaked= False +# test AndersonMooreAlg reliablePaperExmplFalse example +function reliablePaperExmplFalse()::Bool + + +neq=5::Int64;nlag=1::Int64;nlead=1::Int64 +qRows=(neq*nlead)::Int64;qCols=(neq*(nlag+nlead))::Int64 + + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsreliablePaperExmplFalse.mat") +bb=read(file,"bb") +bb=if(typeof(bb)==(Array{Float64,2})) bb else hcat(bb) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsreliablePaperExmplFalse.mat") +rts=read(file,"rts") +rts=if(typeof(rts)==(Array{Float64,2})) rts else hcat(rts) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsreliablePaperExmplFalse.mat") +hh=read(file,"hh") +hh=if(typeof(hh)==(Array{Float64,2})) hh else hcat(hh) end +close(file) + +ia=4::Int64 + +nex=3::Int64 + +nnum=0::Int64 + +lgrts=2::Int64 + +AMAcode=1::Int64 + +anEpsi=0.0000000001::Float64 + +(bbJulia,rtsJulia,iaJulia,nexJulia,nnumJulia,lgrtsJulia,AMAcodeJulia) = +AndersonMooreAlg(hh,neq,nlag,nlead,anEpsi,1+anEpsi) +isapprox(bbJulia,bb,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +isapprox(rtsJulia,rts,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +iaJulia==ia&& +nexJulia==nex&& +nnumJulia==nnum&& +iaJulia==ia +end; + +#tweaked= False +# test AndersonMooreAlg athanFalse example +function athanFalse()::Bool + + +neq=9::Int64;nlag=1::Int64;nlead=1::Int64 +qRows=(neq*nlead)::Int64;qCols=(neq*(nlag+nlead))::Int64 + + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsathanFalse.mat") +bb=read(file,"bb") +bb=if(typeof(bb)==(Array{Float64,2})) bb else hcat(bb) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsathanFalse.mat") +rts=read(file,"rts") +rts=if(typeof(rts)==(Array{Float64,2})) rts else hcat(rts) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsathanFalse.mat") +hh=read(file,"hh") +hh=if(typeof(hh)==(Array{Float64,2})) hh else hcat(hh) end +close(file) + +ia=7::Int64 + +nex=8::Int64 + +nnum=0::Int64 + +lgrts=1::Int64 + +AMAcode=1::Int64 + +anEpsi=0.0000000001::Float64 + +(bbJulia,rtsJulia,iaJulia,nexJulia,nnumJulia,lgrtsJulia,AMAcodeJulia) = +AndersonMooreAlg(hh,neq,nlag,nlead,anEpsi,1+anEpsi) +isapprox(bbJulia,bb,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +isapprox(rtsJulia,rts,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +iaJulia==ia&& +nexJulia==nex&& +nnumJulia==nnum&& +iaJulia==ia +end; + +#tweaked= False +# test AndersonMooreAlg habitmodFalse example +function habitmodFalse()::Bool + + +neq=12::Int64;nlag=4::Int64;nlead=1::Int64 +qRows=(neq*nlead)::Int64;qCols=(neq*(nlag+nlead))::Int64 + + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatshabitmodFalse.mat") +bb=read(file,"bb") +bb=if(typeof(bb)==(Array{Float64,2})) bb else hcat(bb) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatshabitmodFalse.mat") +rts=read(file,"rts") +rts=if(typeof(rts)==(Array{Float64,2})) rts else hcat(rts) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatshabitmodFalse.mat") +hh=read(file,"hh") +hh=if(typeof(hh)==(Array{Float64,2})) hh else hcat(hh) end +close(file) + +ia=24::Int64 + +nex=7::Int64 + +nnum=0::Int64 + +lgrts=5::Int64 + +AMAcode=1::Int64 + +anEpsi=0.0000000001::Float64 +(bbJulia,rtsJulia,iaJulia,nexJulia,nnumJulia,lgrtsJulia,AMAcodeJulia) = +AndersonMooreAlg(hh,neq,nlag,nlead,anEpsi,1+anEpsi) + +#print("done\n") +#print("\n") +#print(norm(bbJulia-bb)) +#print("\n") +#print(bbJulia) +#print("\n") + +print("Habitmod False ");res = checkAM(neq, nlag, nlead, hh, bbJulia) + + +#isapprox(bbJulia,bb,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +#isapprox(rtsJulia[1:lgrts],rts[1:lgrts],rtol=0.1e-10::Float64,atol=0.0::Float64)&& +iaJulia==ia&& +nexJulia==nex&& +nnumJulia==nnum&& +iaJulia==ia +end; + +#tweaked= True +# test AndersonMooreAlg firmvalueTrue example +function firmvalueTrue()::Bool + + +neq=4::Int64;nlag=1::Int64;nlead=1::Int64 +qRows=(neq*nlead)::Int64;qCols=(neq*(nlag+nlead))::Int64 + + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsfirmvalueTrue.mat") +bb=read(file,"bb") +bb=if(typeof(bb)==(Array{Float64,2})) bb else hcat(bb) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsfirmvalueTrue.mat") +rts=read(file,"rts") +rts=if(typeof(rts)==(Array{Float64,2})) rts else hcat(rts) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsfirmvalueTrue.mat") +hh=read(file,"hh") +hh=if(typeof(hh)==(Array{Float64,2})) hh else hcat(hh) end +close(file) + +ia=5::Int64 + +nex=0::Int64 + +nnum=3::Int64 + +lgrts=1::Int64 + +AMAcode=1::Int64 + +anEpsi=0.0000000001::Float64 + +(bbJulia,rtsJulia,iaJulia,nexJulia,nnumJulia,lgrtsJulia,AMAcodeJulia) = +AndersonMooreAlg(hh,neq,nlag,nlead,anEpsi,1+anEpsi) +isapprox(bbJulia,bb,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +isapprox(rtsJulia,rts,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +iaJulia==ia&& +nexJulia==nex&& +nnumJulia==nnum&& +iaJulia==ia +end; + +#tweaked= True +# test AndersonMooreAlg firmvalue3Leads2LagsTrue example +function firmvalue3Leads2LagsTrue()::Bool + + +neq=4::Int64;nlag=2::Int64;nlead=3::Int64 +qRows=(neq*nlead)::Int64;qCols=(neq*(nlag+nlead))::Int64 + + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsfirmvalue3Leads2LagsTrue.mat") +bb=read(file,"bb") +bb=if(typeof(bb)==(Array{Float64,2})) bb else hcat(bb) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsfirmvalue3Leads2LagsTrue.mat") +rts=read(file,"rts") +rts=if(typeof(rts)==(Array{Float64,2})) rts else hcat(rts) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsfirmvalue3Leads2LagsTrue.mat") +hh=read(file,"hh") +hh=if(typeof(hh)==(Array{Float64,2})) hh else hcat(hh) end +close(file) + +ia=12::Int64 + +nex=0::Int64 + +nnum=9::Int64 + +lgrts=3::Int64 + +AMAcode=1::Int64 + +anEpsi=0.0000000001::Float64 + +(bbJulia,rtsJulia,iaJulia,nexJulia,nnumJulia,lgrtsJulia,AMAcodeJulia) = +AndersonMooreAlg(hh,neq,nlag,nlead,anEpsi,1+anEpsi) +isapprox(bbJulia,bb,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +#transition matrix has three eigenvalues of equal magnitude two complex matlab orders them differently than julia so just checking the magnitudes +isapprox(abs.(rtsJulia[1:lgrts,1]),abs.(rts[1:lgrts,1]),rtol=0.1e-10::Float64,atol=0.0::Float64)&& +iaJulia==ia&& +nexJulia==nex&& +nnumJulia==nnum&& +iaJulia==ia +end; + +#tweaked= True +# test AndersonMooreAlg example7True example +function example7True()::Bool + + +neq=4::Int64;nlag=1::Int64;nlead=1::Int64 +qRows=(neq*nlead)::Int64;qCols=(neq*(nlag+nlead))::Int64 + + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsexample7True.mat") +bb=read(file,"bb") +bb=if(typeof(bb)==(Array{Float64,2})) bb else hcat(bb) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsexample7True.mat") +rts=read(file,"rts") +rts=if(typeof(rts)==(Array{Float64,2})) rts else hcat(rts) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsexample7True.mat") +hh=read(file,"hh") +hh=if(typeof(hh)==(Array{Float64,2})) hh else hcat(hh) end +close(file) + +ia=5::Int64 + +nex=0::Int64 + +nnum=2::Int64 + +lgrts=2::Int64 + +AMAcode=1::Int64 + +anEpsi=0.0000000001::Float64 + +(bbJulia,rtsJulia,iaJulia,nexJulia,nnumJulia,lgrtsJulia,AMAcodeJulia) = +AndersonMooreAlg(hh,neq,nlag,nlead,anEpsi,1+anEpsi) +isapprox(bbJulia,bb,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +isapprox(rtsJulia,rts,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +iaJulia==ia&& +nexJulia==nex&& +nnumJulia==nnum&& +iaJulia==ia +end; + +#tweaked= True +# test AndersonMooreAlg oneEquationNoLeadTrue example +function oneEquationNoLeadTrue()::Bool + + +neq=1::Int64;nlag=1::Int64;nlead=1::Int64 +qRows=(neq*nlead)::Int64;qCols=(neq*(nlag+nlead))::Int64 + + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsoneEquationNoLeadTrue.mat") +bb=read(file,"bb") +bb=if(typeof(bb)==(Array{Float64,2})) bb else hcat(bb) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsoneEquationNoLeadTrue.mat") +rts=read(file,"rts") +rts=if(typeof(rts)==(Array{Float64,2})) rts else hcat(rts) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsoneEquationNoLeadTrue.mat") +hh=read(file,"hh") +hh=if(typeof(hh)==(Array{Float64,2})) hh else hcat(hh) end +close(file) + +ia=1::Int64 + +nex=1::Int64 + +nnum=0::Int64 + +lgrts=0::Int64 + +AMAcode=1::Int64 + +anEpsi=0.0000000001::Float64 + +(bbJulia,rtsJulia,iaJulia,nexJulia,nnumJulia,lgrtsJulia,AMAcodeJulia) = +AndersonMooreAlg(hh,neq,nlag,nlead,anEpsi,1+anEpsi) +isapprox(bbJulia,bb,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +isapprox(rtsJulia,rts,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +iaJulia==ia&& +nexJulia==nex&& +nnumJulia==nnum&& +iaJulia==ia +end; + +#tweaked= True +# test AndersonMooreAlg reliablePaperExmplTrue example +function reliablePaperExmplTrue()::Bool + + +neq=5::Int64;nlag=1::Int64;nlead=1::Int64 +qRows=(neq*nlead)::Int64;qCols=(neq*(nlag+nlead))::Int64 + + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsreliablePaperExmplTrue.mat") +bb=read(file,"bb") +bb=if(typeof(bb)==(Array{Float64,2})) bb else hcat(bb) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsreliablePaperExmplTrue.mat") +rts=read(file,"rts") +rts=if(typeof(rts)==(Array{Float64,2})) rts else hcat(rts) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsreliablePaperExmplTrue.mat") +hh=read(file,"hh") +hh=if(typeof(hh)==(Array{Float64,2})) hh else hcat(hh) end +close(file) + +ia=6::Int64 + +nex=0::Int64 + +nnum=3::Int64 + +lgrts=2::Int64 + +AMAcode=1::Int64 + +anEpsi=0.0000000001::Float64 + +(bbJulia,rtsJulia,iaJulia,nexJulia,nnumJulia,lgrtsJulia,AMAcodeJulia) = +AndersonMooreAlg(hh,neq,nlag,nlead,anEpsi,1+anEpsi) +isapprox(bbJulia,bb,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +isapprox(rtsJulia,rts,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +iaJulia==ia&& +nexJulia==nex&& +nnumJulia==nnum&& +iaJulia==ia +end; + +#tweaked= True +# test AndersonMooreAlg athanTrue example +function athanTrue()::Bool + + +neq=9::Int64;nlag=1::Int64;nlead=1::Int64 +qRows=(neq*nlead)::Int64;qCols=(neq*(nlag+nlead))::Int64 + + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsathanTrue.mat") +bb=read(file,"bb") +bb=if(typeof(bb)==(Array{Float64,2})) bb else hcat(bb) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsathanTrue.mat") +rts=read(file,"rts") +rts=if(typeof(rts)==(Array{Float64,2})) rts else hcat(rts) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatsathanTrue.mat") +hh=read(file,"hh") +hh=if(typeof(hh)==(Array{Float64,2})) hh else hcat(hh) end +close(file) + +ia=12::Int64 + +nex=0::Int64 + +nnum=8::Int64 + +lgrts=1::Int64 + +AMAcode=1::Int64 + +anEpsi=0.0000000001::Float64 + +(bbJulia,rtsJulia,iaJulia,nexJulia,nnumJulia,lgrtsJulia,AMAcodeJulia) = +AndersonMooreAlg(hh,neq,nlag,nlead,anEpsi,1+anEpsi) +isapprox(bbJulia,bb,rtol=0.1e-10::Float64,atol=0.0::Float64)&& +isapprox(rtsJulia[1:lgrts],rts[1:lgrts],rtol=0.1e-10::Float64,atol=0.0::Float64)&& +iaJulia==ia&& +nexJulia==nex&& +nnumJulia==nnum&& +iaJulia==ia +end; + +#tweaked= True +# test AndersonMooreAlg habitmodTrue example +function habitmodTrue()::Bool + + +neq=12::Int64;nlag=4::Int64;nlead=1::Int64 +qRows=(neq*nlead)::Int64;qCols=(neq*(nlag+nlead))::Int64 + + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatshabitmodTrue.mat") +bb=read(file,"bb") +bb=if(typeof(bb)==(Array{Float64,2})) bb else hcat(bb) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatshabitmodTrue.mat") +rts=read(file,"rts") +rts=if(typeof(rts)==(Array{Float64,2})) rts else hcat(rts) end +close(file) + +file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatshabitmodTrue.mat") +hh=read(file,"hh") +checkH=read(file,"hh") +hh=if(typeof(hh)==(Array{Float64,2})) hh else hcat(hh) end +close(file) + +ia=31::Int64 + +nex=0::Int64 + +nnum=7::Int64 + +lgrts=6::Int64 + +AMAcode=3::Int64 + +anEpsi=0.0000000001::Float64 + +(bbJulia,rtsJulia,iaJulia,nexJulia,nnumJulia,lgrtsJulia,AMAcodeJulia) = +AndersonMooreAlg(hh,neq,nlag,nlead,anEpsi,1+anEpsi) + +#print("\n") +#print(norm(bbJulia-bb)) +#print("\n") + +print("Habitmod True "); + +(q, err) = checkAM(neq, nlag, nlead, checkH, bbJulia) + +#isapprox(bbJulia,bb,rtol=0.1e-7::Float64,atol=0.0::Float64)&& +#isapprox(rtsJulia[1:lgrts],rts[1:lgrts],rtol=0.1e-10::Float64,atol=0.0::Float64)&& +iaJulia==ia&& +nexJulia==nex&& +nnumJulia==nnum&& +iaJulia==ia +end; + + +#= +#tweaked= True +# test AndersonMooreAlg habitmodTrue example +function habitmodTrue()::Bool + neq=12::Int64;nlag=4::Int64;nlead=1::Int64 + qRows=(neq*nlead)::Int64;qCols=(neq*(nlag+nlead))::Int64 + file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatshabitmodTrue.mat") + bb=read(file,"bb") + bb=if(typeof(bb)==(Array{Float64,2})) bb else hcat(bb) end + + close(file) + file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatshabitmodTrue.mat") + rts=read(file,"rts") + rts=if(typeof(rts)==(Array{Float64,2})) rts else hcat(rts) end + close(file) + file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestMatshabitmodTrue.mat") + hh=read(file,"hh") + checkH=read(file,"hh") + hh=if(typeof(hh)==(Array{Float64,2})) hh else hcat(hh) end + close(file) + ia=31::Int64 + nex=0::Int64 + nnum=7::Int64 + lgrts=6::Int64 + AMAcode=3::Int64 + anEpsi=0.0000000001::Float64 + (bbJulia,rtsJulia,iaJulia,nexJulia,nnumJulia,lgrtsJulia,AMAcodeJulia) = + AndersonMooreAlg(hh,neq,nlag,nlead,anEpsi,1+anEpsi) + #print("\n") + #print(norm(bbJulia-bb)) + #print("\n") + checkAM(neq, nlag, nlead, checkH, bbJulia) + #file = matopen(dirname(@__FILE__)"/matDir/"*"amaAlgTestOutMatshabitmodTrue.mat","w") + matwrite(dirname(@__FILE__)*"/matDir/"*"amaAlgTestOutMatshabitmodTrue.mat",Dict("bbJulia"=>bbJulia,"hh"=>hh)) + + file = matopen(dirname(@__FILE__)*"/matDir/"*"amaAlgTestOutMatshabitmodTrue.mat") + hh = read(file,"hh") + bbJulia = read(file,"bbJulia") + (qq,err) = checkAM(12,4,1,hh,bbJulia) + isapprox(err, 0)&& + iaJulia==ia&& + nexJulia==nex&& + nnumJulia==nnum&& + iaJulia==ia + +end; +=# + +end diff --git a/test/defineErrTestFuncs.jl b/test/defineErrTestFuncs.jl new file mode 100644 index 0000000..fd721f6 --- /dev/null +++ b/test/defineErrTestFuncs.jl @@ -0,0 +1,95 @@ +module ErrTests + + include("../src/AndersonMoore.jl") +using .AndersonMoore + +function noErrors()::Bool + + hh = [0. 0. 0. 0. -1.1 0. 0. 0. 1. 1. 0. 0.; + 0. -0.4 0. 0. 0. 1. -1. 0. 0. 0. 0. 0.; + 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0.; + 0. 0. 0. -1. 0. 0. 0. 1. 0. 0. 0. 0.]::Array{Float64, 2} + + e = "AndersonMoore: unique solution." + + (bnow,rtsnow,ia,nexact,nnumeric,lgroots,AMAcode) = + AndersonMooreAlg(hh, 4, 1, 1, 1.0e-8, 1.0 + 1.0e-8) + + err(AMAcode) == e + +end # noErrors() + +function tooManyRoots()::Bool + + hh = [0. 0. 0. 0. -1.1 0. 0. 0. 1. 1. 0. 0.; + 0. 4. 0. 0. 0. 1. -1. 0. 0. 0. 0. 0.; + 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0.; + 0. 0. 0. -1. 0. 0. 0. 1. 0. 0. 0. 0.]::Array{Float64, 2} + + e = "AndersonMoore: too many big roots." + + (bnow, rtsnow, ia, nexact, nnumeric, lgroots, AMAcode) = + AndersonMooreAlg(hh, 4, 1, 1, 1.0e-8, 1.0 + 1.0e-8) + + err(AMAcode) == e + +end # tooManyRoots() + +function tooFewRoots()::Bool + + hh = [0. 0. 0. 0. -0.9 0. 0. 0. 1. 1. 0. 0.; + 0. -0.4 0. 0. 0. 1. -1. 0. 0. 0. 0. 0.; + 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0.; + 0. 0. 0. -1. 0. 0. 0. 1. 0. 0. 0. 0.]::Array{Float64, 2} + + e = "AndersonMoore: too few big roots." + + (bnow, rtsnow, ia, nexact, nnumeric, lgroots, AMAcode) = + AndersonMooreAlg(hh, 4, 1, 1, 1.0e-8, 1.0 + 1.0e-8) + + err(AMAcode) == e + +end # tooFewRoots() + +function tooManyExactShifts()::Bool + + hh = [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.; + 0. -0.4 0. 0. 0. 1. -1. 0. 0. 0. 0. 0.; + 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0.; + 0. 0. 0. -1. 0. 0. 0. 1. 0. 0. 0. 0.]::Array{Float64, 2} + + e = "AndersonMoore: too many exact shiftrights." + + (bnow, rtsnow, ia, nexact, nnumeric, lgroots, AMAcode) = + AndersonMooreAlg(hh, 4, 1, 1, 1.0e-8, 1.0 + 1.0e-8) + + err(AMAcode) == e + +end # tooManyExactShifts() + + +function tooManyNumericShifts()::Bool + + hh = [0. 0. 0. 0. -2.2 0. 0. 0. 2. 2. 0. 0.; + 0. 0. 0. 0. -1.1 0. 0. 0. 1. 1. 0. 0.; + 0. 0. 0. 0. -1.1 0. 1. 0. 1. 1. 0. 0.; + 0. 0. 0. -1. -1.1 0. 0. 1. 1. 1. 0. 0.]::Array{Float64, 2} + + e = "AndersonMoore: too many numeric shiftrights." + + (bnow, rtsnow, ia, nexact, nnumeric, lgroots, AMAcode) = + AndersonMooreAlg(hh, 4, 1, 1, 1.0e-8, 1.0 + 1.0e-8) + + err(AMAcode) == e + +end # tooManyNumericShifts() + +function spurious()::Bool + + e = "AndersonMoore: return code not properly specified" + + err(975) == e + +end # spurious + +end # module