From f81d5565c46f35ec77efcb88c8db751c68206075 Mon Sep 17 00:00:00 2001 From: Branson Date: Tue, 18 Feb 2020 12:39:23 +0800 Subject: [PATCH 001/606] Initial commit --- .gitignore | 2 ++ README.adoc | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 5e59b862ba4..17e487ad584 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,5 @@ src/test/data/sandbox/ # MacOS custom attributes files created by Finder .DS_Store + +/bin/ diff --git a/README.adoc b/README.adoc index e36efe534bb..3ca9ec105db 100644 --- a/README.adoc +++ b/README.adoc @@ -1,3 +1,5 @@ +# B B productive + = Address Book (Level 3) ifdef::env-github,env-browser[:relfileprefix: docs/] From b58019f2a74d6028f2a3ca281c962d244fe5789f Mon Sep 17 00:00:00 2001 From: Branson Date: Tue, 3 Mar 2020 16:08:20 +0800 Subject: [PATCH 002/606] update gitignore for vscode --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 17e487ad584..e28f5a646d0 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,7 @@ src/test/data/sandbox/ .DS_Store /bin/ + +/.vscode +.classpath +.project \ No newline at end of file From cd45e44fa1ec1213e0379787c5a227bd1c6616a1 Mon Sep 17 00:00:00 2001 From: Arthur Lee Date: Tue, 3 Mar 2020 19:57:01 +0800 Subject: [PATCH 003/606] Set Up --- .classpath | 30 ++++++++++++++++++++++ .project | 23 +++++++++++++++++ .settings/org.eclipse.buildship.core.prefs | 2 ++ 3 files changed, 55 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.buildship.core.prefs diff --git a/.classpath b/.classpath new file mode 100644 index 00000000000..a86fcbcef21 --- /dev/null +++ b/.classpath @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 00000000000..f151561e3e9 --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + main + Project main created by Buildship. + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.buildship.core.gradleprojectbuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.buildship.core.gradleprojectnature + + diff --git a/.settings/org.eclipse.buildship.core.prefs b/.settings/org.eclipse.buildship.core.prefs new file mode 100644 index 00000000000..e8895216fd3 --- /dev/null +++ b/.settings/org.eclipse.buildship.core.prefs @@ -0,0 +1,2 @@ +connection.project.dir= +eclipse.preferences.version=1 From 0a54d55f036de26f856d03bf35dd398374aab6df Mon Sep 17 00:00:00 2001 From: Branson Date: Tue, 3 Mar 2020 21:06:11 +0800 Subject: [PATCH 004/606] update docs --- docs/ContactUs.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ContactUs.adoc b/docs/ContactUs.adoc index 81be279ef6d..242bed87b69 100644 --- a/docs/ContactUs.adoc +++ b/docs/ContactUs.adoc @@ -4,4 +4,4 @@ * *Bug reports, Suggestions* : Post in our https://github.com/se-edu/addressbook-level3/issues[issue tracker] if you noticed bugs or have suggestions on how to improve. * *Contributing* : We welcome pull requests. Follow the process described https://github.com/oss-generic/process[here] -* *Email us* : You can also reach us at `damith [at] comp.nus.edu.sg` +* *Email us* : You can also reach us at `project1235@gmail.com` From 9f29f7dbf9c28996e05034ba61ac66e3656ad279 Mon Sep 17 00:00:00 2001 From: Branson Ng <41634392+BransonNg@users.noreply.github.com> Date: Tue, 3 Mar 2020 21:07:40 +0800 Subject: [PATCH 005/606] Update ContactUs.adoc --- docs/ContactUs.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ContactUs.adoc b/docs/ContactUs.adoc index 81be279ef6d..81d3d04865d 100644 --- a/docs/ContactUs.adoc +++ b/docs/ContactUs.adoc @@ -4,4 +4,4 @@ * *Bug reports, Suggestions* : Post in our https://github.com/se-edu/addressbook-level3/issues[issue tracker] if you noticed bugs or have suggestions on how to improve. * *Contributing* : We welcome pull requests. Follow the process described https://github.com/oss-generic/process[here] -* *Email us* : You can also reach us at `damith [at] comp.nus.edu.sg` +* *Email us* : You can also reach us at `project@gmaill.com` From c1ed161d291682ffd6a098d643d76e8d6209e437 Mon Sep 17 00:00:00 2001 From: Branson Ng <41634392+BransonNg@users.noreply.github.com> Date: Tue, 3 Mar 2020 21:23:27 +0800 Subject: [PATCH 006/606] Update README.adoc --- README.adoc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.adoc b/README.adoc index 3ca9ec105db..c060f96eaa6 100644 --- a/README.adoc +++ b/README.adoc @@ -1,6 +1,4 @@ -# B B productive - -= Address Book (Level 3) += BB Productive ifdef::env-github,env-browser[:relfileprefix: docs/] https://travis-ci.org/se-edu/addressbook-level3[image:https://travis-ci.org/se-edu/addressbook-level3.svg?branch=master[Build Status]] From f80569ce6807d9caf34377eddc201208736d28ab Mon Sep 17 00:00:00 2001 From: Branson Date: Tue, 3 Mar 2020 21:55:33 +0800 Subject: [PATCH 007/606] Added images --- docs/AboutUs.adoc | 6 +++--- docs/images/artlee06.png | Bin 0 -> 97763 bytes docs/images/bransonng.png | Bin 0 -> 251779 bytes docs/images/damithc.jpg | Bin 6910 -> 0 bytes docs/images/fyonnoh.png | Bin 0 -> 253394 bytes docs/images/hardoh.png | Bin 0 -> 35544 bytes docs/images/lejolly.jpg | Bin 26764 -> 0 bytes docs/images/m133225.jpg | Bin 80341 -> 0 bytes docs/images/permas-teo.png | Bin 0 -> 127222 bytes docs/images/yijinl.jpg | Bin 13946 -> 0 bytes docs/images/yl_coder.jpg | Bin 7203 -> 0 bytes docs/team/{johndoe.adoc => hardoh.adoc} | 6 ++++-- docs/team/permas.adoc | 8 ++++++++ 13 files changed, 15 insertions(+), 5 deletions(-) create mode 100644 docs/images/artlee06.png create mode 100644 docs/images/bransonng.png delete mode 100644 docs/images/damithc.jpg create mode 100644 docs/images/fyonnoh.png create mode 100644 docs/images/hardoh.png delete mode 100644 docs/images/lejolly.jpg delete mode 100644 docs/images/m133225.jpg create mode 100644 docs/images/permas-teo.png delete mode 100644 docs/images/yijinl.jpg delete mode 100644 docs/images/yl_coder.jpg rename docs/team/{johndoe.adoc => hardoh.adoc} (96%) create mode 100644 docs/team/permas.adoc diff --git a/docs/AboutUs.adoc b/docs/AboutUs.adoc index 458e6134f45..442a9522481 100644 --- a/docs/AboutUs.adoc +++ b/docs/AboutUs.adoc @@ -11,9 +11,9 @@ We are a team based in the http://www.comp.nus.edu.sg[School of Computing, Natio == Project Team -=== John Doe -image::damithc.jpg[width="150", align="left"] -{empty}[http://www.comp.nus.edu.sg/~damithch[homepage]] [https://github.com/damithc[github]] [<>] +=== Hardy Oh +image::hardoh.jpg[width="150", align="left"] +{empty}[https://github.com/hardoh[github]] [<>] Role: Project Advisor diff --git a/docs/images/artlee06.png b/docs/images/artlee06.png new file mode 100644 index 0000000000000000000000000000000000000000..b7d1cfc5aa707dd4a9487c6af45fa2f22752d979 GIT binary patch literal 97763 zcmbTdc~p{l94`#wo@-*M;chBeriq4I?h2@=;1*fAWkO~WW{RV^rA36AT1vRHs7YmM zY2}Poh}M`2NM+_2nnaG3r8U_ym$~;99`hM|N9Z3hK7dLCM_dvZKK_m5X;^FpCA7Y z0rb^X0H9b9&q7Jt^Iq34Y5-nZCsL1lxS#f*=l5L zvfb9s9twlIy6r)@djtdq1&1I}Xk2tmY+U?4d`jx!v?J*RB02kH&Z*oyN@>}d@`|(P zs26K$>n>fcZ(y{wv)CMNM`zc~TfKd^@AMDceem!Re?%}k_E;zqPfMOXe=+k~y0G|W zN%mI$ZuQgWwe>Gw|M|A@UtK@|=zo> zb+ccTS`x{?YIm_Z*uT29XIR791^dx3`NWjw7905M?W_Nl_CG88e^*$^|F6paPhtPJ zt{H$92&lMtAbo%jV9D-^&F6imb}M;^FXMg_nDqrcarQ1aIv(}zXfo?@=n+XfP35>IXo?-u!Z z6QPbpMiXzsgVYCiP624sD8~pp*P!?3Y?eC5Pkxw?bcWn`61TM=ulxL!n<(SusPHUI z-g5NzDp}{Xv$*$4;f_lq7o3$8xSnDhT6u?|fb%=g~%(~5q$o>!5 z>zF>x8@5flhP6fY=4{72FR^9+G8Q`8J+r9>+8Jlm5m&m_2^{KvZji&(5~nl~eUCbA z1zm&Q-w;i}g}b%Y^+x29_DuKpFn4=&{xS(8UdG$A_rb;Unh($YNVlbb z`+!8TY)e;J6Dc!Q440rX_~&rj%XaVzYHK{$?i9nZV~1dF=YoU27^pKudT$!6(`(EbqhB(>O2j*wvEsUVxH_a zc^8m+FBt0f*}s2?J^Oo~M-2&R%pMj1up&7KjKw@kvYZRDFUqZ@o4aS>Odc% zr0u!||L{IEaM;VtAu57W|9kP<^q`WW>HaHox8{FKq)dxtOff2Zr;9%nvCPLnQVdbs zjEp-$tCF7DO<}$9W<=v6YcEpR?n?YoB+^TgX#!?gC#wb%dj%kO&Nx)NX*zaasLuU3 zuQuD!wEC3mc$QF)#K<0h>LTnM6?h+w_bop_FQkZnW#&u5G6PavPbMUiFr5($~gcm=cDnDAD*C;K@AWajz33M#I+8~%Vs1FZ*gOeB8K{*f8a<`6LCuhc|ZHa zzGK?~N8sg|l<6&3OyAiyoEst5?cVR2GGMVTTgLwEO}Vbxqs&_#N1$Jfc@qcguXlER zeW47Ba-Fiak({b0OBksOJk5Hmem{vH&$&dNf&_MYhN%LM?{9a_61*26%;G}RL|(_ zA12{vv$#4WNfl@rVzWsZ-u7Yrga@6jTNF8p1;t#N+AHCkRx2uqQqaCm&cIo23!j17XT2kWtXxy;*{O5hfFM5;KS-P%m4HsFG(s+8ys*nR`E^B29l9@{TRS*=OC?ZRRW zQr)~mz#oI)TGCn*e%14jenxEN(r|MbIE@wF7Cv%eR)^>;AZl3Eowd;lDePsfN?OO- zNyB69wL9DuyF=J)2*p2-^O+gL(%7sjlSjM~sD17z+S|Lj#+uaehE~WUh83rV^$i?K zD{6;-0(cWziip?X=aT2?d4}9$V%yEWqvtrw=b*D@X2 z)RiS=djg)VcFm^G#Ttzx&1pxdi zuU#f;CC2!i8sj%%i3hdgFvv@SEe^y%oDI=&z`No*21>JLb(kC@ZAMlR!^{SFi_vI1 zqIz`4lc(fy6qv;jM!$DSN>zi1M{~QM|D_C>etX4r9P#{cZL+#6#Y%l+TE*Bk6GV%H zPfFfA-zdh`8Fd)A%VT3s0TWih)mxm1sn%Rdun~N&f`@n#RpUky@vx+FE8dQNBipNw zf$pZ?c-K!%>Dxqw?JN!Q)EROAZI$7V`gPI_)NuS2PKY z9MxkX@>hDm*za@3T9@c2>9joG@4w`V*!!mu|gJ*6PGqn?bdS&nkHsc!1)vd7pD4Y!-u*^fv0>ye|F)EdZ1P8GB? zFm)9bF*HJ86=sj6`!U6(Yzs3ni;VP76sM-#d5twwaawOtUH66#r7(Pb@L6C5Oo3_r zGBh&u&+w& zECJi$qOth}r*&=$y;c~4R<^XJ`sdSYX?buVDZ1KUX19z1!H4oilJYGOXUvfFO6B9r z){vaeO`C%AWzCc%@3%XgX`&n58=z>+Ki-AC-RlPH%W;OYIosn9BZLS3p3{k06w$-{ zU)i(4nEw`b&(pX+43VS31m*sJ0VeLM$AWTqyDwea{??jDF3elT?v$wRCWqD)PhF|X zn^+|9P8H?J`Z!N%Ot$SAM<-5Qs+7VM2 ztN+zM)8EuLeb{%grk_6T*swVTvebIm<`XPS1AfM1W4ePC{vxVM)tlrnhn29y zX%HzR*U);svj;O$CWVDJ_V9RQRHuWqiw5F0BUbV&W+w!;<>ZMoAfk#@x3R5yl(6NQqv{vp% z?@RFU&TIL7Z|#8pqnH11wl2t{wyvOy$zG{ggBDdu%<;q_ zmx{Hm+A}?)xlCGghC9c$JYVz-g7YxRwTM*ia39AM9bx-64&IAyz2Uv=Zne)T(NkEl z)N*A0bTx9n+VwY)(tsTmKjiNgBwbf!gYNj&N9E^81_cI?F-rA971MXVz?JX>x(gOqDrDcd@c^+L z=HB^S%Z#`MGFkF)6X_Y1)+4~@EBUYk{Y9`UK**%kIe7TDMTlWnx%Z@^GsD$cnH(P1v4}$#T0bR`Yne)B`?dvZO;R3KmWDLcJzL?CBr1`7iz65 z%GhDR`Z_xCM99IqZEhh4p{-pP&8v@`HXdV5>|HlXp=!AQu)ndnbVA5I_c162TL6o( zGu$1g&)r0$ne|cJWUkfVGZ+`V-V-Ky{Tk{KQh4qL@$b!K>XW#6lUrK%=||}#sCRhk zZz+t%?P`Wi7gOoP$8PFhujK_!@7`b*5w0ON#8G3^+I|N~Px?)_1O>+SB;gDc^B@X2 zPn)cw*6e~~!-g0RsSeEP-uz0}lgWT+w|0bU22-bea54Rh%8>QT&z+@-M_dmftUqx( z5dyZh-V@-xw97d#iy{3{_N+&AZ`ya|KapMgQOU$7H{e66e&YdwaHkLfI{5r`$aIr) zI0D`@R2|j6xZYudRddZ70xid|L1yba&ro%oNOa;B<4zXB?sx6L=Od(WJ>SI*u`MUd zB}%_(y*GGwi9l^qxW^n#P|O)*N-=^x;m*-%q)Z9VYn|=`&t%z_mwD9Kfyp1_NHQ{! zf+IYlQLrgAipaP8>oO+N#aFc!6p)ByQE-9?Uhp8%uX^28%dz5!Vsdk6h49zQkxIpW zYOCy((3!eNdqCIh1@IqO{f#J+TX4uBbQnZjue?-6B~UkLZwqTvh1JO1z0=53T8zy1 zB)?zTb9E>sapAuJ${q%dfq9h+k5BnZ!M_FLuDcqVeu#VRl7}-X!c3c= zFw-?v_G3S{UxeY09%9dqo!=&<4qHl@>+*5*MaW5cbSb5PnEqFf>*lizM^F>tk&;W~ z)qL@ln+{vfrf02n0*nO9Q6Q{N$Y4NN>kt_OkzN_0h>BU0@wlOp7+{QpM4`v*@*m=ZJx}?`>c&Rp}nO zZfMm6+b)m5joT`}`$s0^1-S{`yDX~bnv6;u+=HcVt@XQ$oB9r$E0fo|k!%Z^$)M?w z1v#OHqrq7H({Gud9{jqu2^`bI$wU&KjSx&r)oXjO=vp~s)jv}ax| zPr_~_%!|W*tar>DqFi7tTu0aGzf!&sNlN}Fv_-kkCmOZJ|6HIbU z^}Qu77Gc~$(P%p$kkr6uX}C~;bL8`Goku@m-4}{+ZaPF`46x&PWPUm}>jcql-VBDL zDZq~_-o+vj)zOee%o(9XhwTo}sE;omgmUHBy0HmL5`N0bm<}zthh?TP!f^ILu8zHc za&T_#8ZhMea)=l9ON%mFAVW!*s_BM9IxbCw5WM#wlq444wxpzDEAe5}C?UJ(BWc|G zM0hawQ>SV{p6iYjfuE#t!~+WypmU84wJ$!O#p*K(RdwMa|77FaRh1vP3ka|%x+n>f zT(!nETPvHktgc2CA-E<1B12SdIm9F^=O^?LnRc?>Xq4|sBY=~eO9;;4&MaH^7R{`; z1m7=hZ)}{Xm|CeW{7U#%s54MXlhX82bDdgQvbThX&zPbR5#vzi8rYFk`3dSil5X=W zS`Rr6FgEtVXHq`<;hurZ^eFk0wnK~*$k&!728KX=8z8CA9fxv6HvZw38Icj_fN)Fa z*PVVH-xR(0x0P>!{8YYpAN!R6AFCAka053z65^Tw5tgD_;pxHi3c6D7Lu}o~xOt(< z`>1hX?2fBxEbW+wDd3L_pvhQ_W%6${+^xt8@XFjzDBROPRmvETDhHn_*Y%ouyk#5o z!(6M~Ow%~yOr>Td7_{^r;0arIDCepx;mE(C21! z)5x(Y{d@1n zqJQ^fG#s|3K8PMRc`&~|9(LI#rKyfyQ$kXF{I&Zq@|2s(u(f+D$L3`BTD=w-cePyL zdY+p!d$|BSHQL5`Fi;Nx(iGewCCpuRTcKT%B5#>5A7q5!QZGR5uKx?@s(Fe~upY0k zoW&ZN*7tTE;R1A7| zI**Wk9t~7Je8K|!^eP3g49T-SkjU%0-svGfl8V!R1%o7CX4;WU9 zvJv0&j-&>liA~pQXC%zyPPhb^DITNuX_;(4gg)3P zFO@V_FOR2`*%N9uDq<;o(Ay`35lUL9LC$y!B)Ph>3 z;~)12<#+%y`cd{5&dG&uF}9I&&$)op6BH$y%p8p+QUL%{1bmh`nZF@~Oj?W~TGls& zM@;1&CdrAu@DTt+_Ji=^C&A^fKPa0m&J+#rtrbZ)i9VWV$~C(DQzGDHSYaVp-6PVE ztwc?<90zk50W;@|4EXk}A^8lmUrtpUusUKP?S>*CVvwYXMJ=z2XSzXuC3OU(UG|b3 z)3zd6{!nrJ)u)=*j`$E-yU8rkYw5y|6mOXJED7}oh_^RtpTQQ$=O`CY_znVXgmJdp zSjIy@qWuQApeAxmqRr^Iy|tv_BEgR}Sy4kx@=mvrGV+$n%4~C4&(?ETcN zya`u2Yq~zw9pp-rx4InLt{fFDCDVK3T#Bd}h%X(_N!S}7_`#1ho+W#{0Fk0(woN|; zJlEj;Gku}{#>AJj>6RhLbRYt>5lxkO6SsFH^mn_^VF%{5mO33EY0QL$(tW+C)KQnp zHz;Ol%qgarTJSC*@cE}7n~7U9R?)K3@xcAwKi|H27mzZr9PS@p2mnOq3(`!(9Y_o($_(n6&8-fXGgu(< zOYjl;TCF*e0BB&z(YaDamNvX7hk`X*o24x=ePBDbfN=u&a0Dc|Mk(kiC7PPQ8bwRQ zmZ${iyXEo`CS`6R_$(`STej^}sKx|*@R9@;oKf>a1Thvl5Zl~o?VfOrP0>GHtVP1*91V3Zy{T4hJvZl}%0+7z*mTz;} z*7V-wl8cI+OE=*Z_lt%A; z^;b1Vro0+d=DBz6K|Xfr3R83=-amb`)iQ{rqa@MEp0AnP-lFCeT^carD^N`H+C?mA$h(tW z`3C)ns_RX7H>5MzHIPX-RpqhXemV5w3x_*{du$jAyj+lbzgf6A~sV3II#9bUGo(5&ou@#++z3D);R*vj9qi@+B$_AW}I9lZV9q;kt= zw5}`+M>BuGLOTy=sW@CE(>X&u_z078GQaUng+p^q7+j-CA9iie)Rr9IZBNw zys_U8H6&m=F@iH|ADrgFi!C30X0C>FWR)LVV&Yj9B@vXuEDv!a^E<9WQWIdK98C>* z6IsqJ{TJ}AGd;D1hFxk`qxascTN@TZVBVac$Ij*pJ; z;LQ|l9>?IH=~nv0a=4vsO_p){Uwv3#Wzh*}gqJX1WT40VDrFEJkx=~I$};zM@O_Y^ z>J9{_=e+4(fTZL3XG!h)^0-^E%1$L3R<9nM;(ZraGy$F;SP2p&6_aOJ8W;`inISoL z5gVAKP@K3bd`Gp{xcu6xKTn^5(|doAP%ptEB?Z`M3WAGN%bCsBDFGNO2C>Z2w(7g+ z9H&N7U+Q&=HEs#lOs!PLe&Lh`rz`oUkHgLO)}~cyhFf}fv`jhx_pXWPz5U~k?%YJZ z(;m?0GVe|jQZkaISq4gILmoeATJ|HnnKLPWjYRQ)6`?=_CMGrCtJYf5! z$W$Fzs%ksU8t^e?05O1 z2j8(7$-o+H*JuCheMmJ*`C}vi-fs$h)f21=%ftpCISSqu1YZqn<+5G&_I~n}))QLQ z73=Z42)WduYC@1l*j3`wa=UB@oJHm;AL`S%hZk9TkwE6#{Xsb>-t0N3Ov7pkg^Bj^ z5T6SGAw67a4Yiv&_MXl-WD=a{hJ#2^)i(NNvk4ZC*SX4BS1}muq{BQ(4n-}GlE33 zwSH-F^MgiO0WAL7p5ySMG#03mXDW~(l|eIXOe3^~jNOI4^vFxco(-bHcA!EbYpvx$ zUi7xAHGXEpOmK)oMX~yhH5@jyTGUO7J8`Uol`W-x46;ntRm@KMAVFQnIV|M^f0sLJ z1|=6Ze!n<6I>xnMV0#6lB0Nj@45@Tag6T3YTC}87qWW3|b z$|nq{*A|yp)wlS*0%lxTq$(M;GE?LZZvTAMs5XUh3P;1HAX=1_8tH_b&!`d~P2Ziy ztPd#PO^nFXu%z`C6IE1GVQ&K`jkdbtyE#*~jMO1CEbw+6TvN|UpD<@zz(Kz8Ik{ij zuPbP7mOXH-_fMhhA}nKf*c9^=rr^VE8OwhHNM(o@HCdjOtD$sdK=%e zNJtMt2m}Gt@cs$&Iu#pRwFsG?vFhbP&>G8`m3-ypzkurzL;|P2%m+>Q!o{BIvPt^F zY5EaeuUKOx@sot~A@E>72g#Iy2j40+0Xs8L>Q`$bVm|mLL>G}otDPCW#UaEjFp%$K zyb}3>pfN`m_qQ_{s!j`k9LFEwAxYmphgnq1!*w1;z#m4egs*H&TRL;Dpu^!!u&JGA z1*+}IesI=Oecm{BdyfW7>9P`yg3|+5@<42GuX<#JHH#teJ4C1-t621A+s6 z!7ZA;05cVjDlJGpt_WNdd7qkqg#x5aPU%3UW=wBOYBm=@qQ)36uD3}u+-TYCP1O;C zJMfS9h5h=+7Vf~$5DVI>uERAKRr2J)PhnW531Dw+$zoDIu7uwE^Y>R!f3Z`4kx4?T zxLCoAsFyU(szwMeaF}WsPu#sDro;^8TrL!@KW?iSA{x)QXlPe%TU}XT98FqfKhcMb ztpV3~s^9)GZL1J-x_(SsLej3*2gMn|XAJ~zus(PqjdAZL`4g1gbs!DLq3!m`9fQ1om*2J9z_>FOW6>= zf8>*;T61d9|Eb>y;oiFeU*@1?O=)S=*3l6HUDibCD7rYt{2bHJ&v)qYicXcRUMO>Z zsuGw7|B}&E`{(EV+gpan>s;Wt#XPpimoub>K14=(V1I$jP2Jbqy$YcDQ8W|4F-!R0 zngr8ZVXBM5v|4(&9YtxFaqv0k7dWlRyoum~)ObqpTbxvqF(L^AAJF!|hr-(I<%`gE z@BnMb`>l6jZ8q2}9XQlf2P?{tK3a|CV4zxA_$rGpEdaH3whUhGs9IQ?cm&RDn#C4R z{D#}93&7S7o2pnyS<1!liFk3_tw(;+whgBuXe(iLEnr-8lnTNQY?dV2n&Sz-qTh?_m5NLXYek}BjDh zvAw-Z@Q0F4t8IFWFcW9K<4oKBZB)Qg6Bt|E%-#yDZ)f6GSAr33QsYWu0!|^3JJX>6 zo#xkQk4ZJ~hc`%&wJB6QHN-X=2PTQz*TA*FQl#3c4cst?c0>W+*#Kn!Tj+dp8wJ8x&@a&DT1JLqiaCz@ocB}B6c zti)_i89ckK#%wJnKDDAWd`M2M0hi^I5;_}8ES8wF&=xHdtOjU~kr;P)2PL{XsA+DA z9sh|EQ~%m#0W$6GU1by8Gp_@EpcE1Dptt4L4ob}1-jBWuu9}-O!iL6YLCvPoo#$OnE8-8Hm zHVnm&%<|hi?R*~dXCUUjxBwPHJfeJ(mltUJH#zFwVgYp1N$^MpgRQ5>lu-%ZJpp?R z4V+!ue60-_0Mqmjq0}2dv@=Zz#DE4tS~|5Y*fYj0I_?`npqe?_dE8M&S&yJa01Mr@ zYnt8|HxJ|=)jclM8THW;9Z z2Y~yfRjOGY$uu&Of~z>#NKg^j+nG&!Bx)u*5`NHKB=re}D7K745ryEZg9%^@@H~g9 z;^=|hsSOYbh|c3afSlIavN6*EPQS8Ao~fM6wvEF2m4pX}$5)+nJp_>!YbS+sn}VTb ziK6|RA3cS-@WEvw%X4$JIuz`wFWe4yY0dL1x-matL1sUpTe)aO5`$7()!v85mLok2 zYunhh6`GL*5A1>+8~I28)?W!lMt}h#Vf`zYrrJ;W;*8ub|BQ3zmfDEb_eAK$BZh63 zH}|4g{Lo(gVDGLPoAU%VAFYZ>*VH9$(;M>8JTRc3BX?$)TNNRav$qqeIe$_MXA(#O zi6OU|DVm!-qK9PbKoGQi4TdZ?a(`q15l6t`r zMwZta2lN!`*AiIDM(Dwu3gl#@#zWFGo|joroLZBD=3_iQV~1{Z>q;7%10t_#i5}*( zTso(UWDCs1rCfX#$f(l*T;LIXPE3;2D=sQ!y=@*v7vGCON0MinTJ)*mXVV@|fQ9vH z&)5;YW@5viL7rzG^Zmv;8gk{ak5?=4=c*z#ZeG=d1t*xm%0235&53!VAHuwsFPL7S zN7V>9$l)I_`{GfgS@A*Y7(wclf?!xd})G=Zf zVp-TL?VV30WBt@4byN<}_fq0gEdo+EWdP(8gW4HRxrS}kS}EXv0rvXBJCWO&KW-;B z)nWHX0;P9R7Di7U_U0nIaM@EecxK~D|Jr)DLwzur`nTi!nAgef&?g5GhBW!PTMZ3a z$c__$pRkobZJedI*xN&O(N8W%4s3Iapd=yOImd09@%|`N0?Rr6>-e6|jj4+fc!1A^ zNKGf`tHNFddMJuiB|HS+RDAj@z(9Jfo-U`lLpp2gX5ymg;VjsGy)Fb-)9ExUq2Q?7V`KtER3xo|VCi+%TbNs|il9SSV7;`2 z!_jCGzcz%29>%g{rBStZed+4tnc`zZ(reJF#WbUH-uC+DXt5&2WACJuVu~0~uhwp8 z+6Q9qd7=n4a*~I>bR0CJ6h`l(zR|nC0B(g1pI1Y$HocV8n2wfwbP1kx@64fwnGv@o zhEQ|uB$0YHI_2p$x4U7YOsrBa+r)D<&g% zS<+@oShz-vZ`fTUf`5GBs)sP*g2t^-`u!uLyHb;Z&f0x*!P?o zT3vc(d>2tU`1wSHq@6U!c3KCKnQi54>nEZS1YaDBN2M{FK!;3n)LjX-5eO-*hkpeI4#AqY59nkxxaP$d&fI zPcrg~iz4eDbTE6T({IRZ(}vVd-*_du!zMrb@?B%-U4Gng?>jcqf$!hF7nyNhuaBL5 z!E9I32FR4ICE#y5Bjho2yFFtM+d2V5MU{9ZMgkT9R*0aiwH7s9A=5c*0{%m&>{-L# zg%x2pRHFR;EWV+4h3_fTM})r>AU<4fo5MeK?Zf9obau=L99?qf2r@V=Ch zlsuqXA9Bal({^v)Ht1ScShyA+-0uzbpF~coD&j6$Ib7gM=*?nnW4^7Y_zKb{>Q;%p zk{32*h7Airurzm*HYP#Qb*^c4>#m260jiOQ-+QcvKKldTaZ`^XE=gfH!p~b9L9jHj zQeOJ+?JG+sAsJf59bD@`!odHuE}5 znydN2@X#NftQcFAK15U^x?PHiStJFdJ`ci>u_{W;t<)Su_e;|6h1VJUS|(l z9oDML8~2Ih*f4^;yK* z@4&e53?i)wfK`vX)~57fDA^o6=lEW;G8-}@a=;Y&_x&cQ6B#>ssDD<`fCSAV7i=ucN_UpQv}aFjEAJkHYloFN4;H>0Iatu$TqaWrWdT<@B$yc|Ld5Z02y z)O2cJi*YV|FNzR2uV4xt3Rj%yhkb-l(pDrj#^DOJl^E!y&-Z9oRoJt(MLBunNL^Fn z4pA-hJ2pN1Qi|7fnR^#84>DbwR6K6E1u;UFT&`3EDV+9z-}kBqj4ns*p;R?_oa7jY zPr;Qe6Ujl^m1tPGzhJICbM1??-R>`j47p-^r{J3EY0c@gi_`}?F~t*T;qB%s7Xi<6 z-z=eVdy^7q1uvPcj*q>#2xQFOa<`y7V+W;&rVZXL@m=HDU-lm8a$BxZY%pQcyBA$D z>I|&eVLdX{Is>lZVFM65raK_j6CsZbH47%ieIW_ka{J|B!KRP)c{?~t^-DC%ulCT=ZeD%m8^}qho(lr#m3K{MuNEcV5wv*uGJ#Ixc{M6Z(XRxHnXE@SUn}sR| z+xNR_S0w|o%^8W`EGnP2rNT&Y`}{9@!|o5I^(6XLK9nPapzUgKEx*ve*haFsrY;mm zsbj*><2r~MFX9^RZUGr}KzHw~phniY3G=aK3#Nl_ca$bA`yF(~fmf*h6(XKxRoz#X z1>G~6Pbq+2A@R2=*&ZZUQp&Cyrd~HR&}trGr1tvJ3E#Dmda0}EV3nA$^fXljYpJ<3 z+#0MNmN+G(I)4)>#x=~x#8XJO2llTZDTTG4$6e{bFDA1G3>s9Eh2AVp_-WRJ)PW?K}Q7pMETl= z@R&Pyq4@z*ZzH=+YNUrNQMA(NSGKjGqhHdMEDv1KPy3f8ian-ZgPyL`SVHg}?bLg9 zUv#;Npx9hrOUi8BLqJr<-rvQK%cqo#rbpA;Z3T1< zZgIFNVR_WBQ)y-5H8PGVZBi}l)g!HhTUOOB3k;R1?pLqmx^5E;w>@xqkvBrz1Bq!c zP~I>p>l_C2W`mM_rC0tkw7v%0GA}t1pek5EdH|Qv`I^2CZY8fv!@WCyEG(mF!W(Cw z7uG%$i}^%1)3-N7R*6nTD@5lNp3{OM3LL0N2-h#nH9fSwQp{*E@@oNMtf`(UbM;Oj z?{8eq2t{Uu0GM}zE?6nZiPve^CFJW-w)rB?SLV)^qlb1KC+2#kNb1$OprA6r7cMAl z1v6pGZuz_&djb}n*;I1%YKju;UTRNyy}q5()|!r78-_FR|JWK$CYvW z?oL{E=e@IM*&G=JSDd(K26K6uzH@w!!Vg8hPdUWaPcWJ#&y~w#m{nwa$81O(XZC}2 zlea@hPa%o%8oo~>b1*z7cE<_#wQDn`XKOs}#m>j}YC3Eg{piknlA-6&lacl!XS*WP zN<>_CJpupH5}52mJjy>Kk5m3Fn=@vvM)ggeFkk+kjdLfBMpnG}jx#ypL*9}f>-}ef znM2z^Vl z|GobLc!*%w0j}_Jx&TAO@6`L2`h`;~?Vdl$vZ@Jy-c0EW4#H=t87;LY2?kMtT26cG z%z&;t8a+gMsf_e;BPk=q)tVIcAsQ)Earq`L!y%>h-A=To+7zbnqqeE;ptF`d2=U4O zPhEFspM2)O>H1{1xvF2k={*mT1j z9h(x?*;`CK(06o<1GZS}EKECFvEhT@j!*9?@NZbtPb+YMz3|!x-`DG;-XbR9^T3d)AAJe2Ioub=COshumr{J11_aF5I&@b*_<>y(5XM5u)MBOL{kI2sG6On z)!5FTu)A*g;)mQrlqu(gdOgB(BS?0~@De+rX*wxuXoz$3dvq&>B&_9T#Mr19r%VvL zM++Rn+Y~d^D_)IysouEKSVrwyg{<+?$|z~|l1EK-j#j(T%%#h%@^6w-eDzD}nU%`0 zXhcca)n-YJ72Bzbfax?1yfhzOL;9(T}aeN8W{v+A)Ewy3E#aZTm%K}B=D zA78!eC+2*hgoA>L{skmNCPeS2dx%0$8tw#Iy0^9N4BDc!gW0^wHii#wMA2cJJ{&6PD_>SReFu;NGmP=I2Zu2y2*nVFtKX zKA9S;P0g0x-R3-Wjg>Zz0Iw=SMa=B3FHeSeMhXY^3eeEWBO1#!%s*myFlJs%d)(k5 z$ylYCyl6bS`{cZ+pXN|&s5|DSKaG+w+$NZ++TQ6C zQDa@#=WZP~OjUC=p@(~KFlc-5`dYZ*ad`97%kHN3_Nc3RLed(`nn4Pn*Gghd@8a|x zIIpuHs}U9(X3%y?G2GE5BJj%+qmlSv4T3|)8US>f#8*&zA2cg6dH;xPB5m~_=)fKa zI@55{N)UUW{-Q3CRcxiNC#U8X=`&-__))7Y>=13EENYrU!#8JcDAiwcCajn9g;_v6$qaPb3g%+X1eze9mx90EIw5_7u}B0fxF5H?R80{0vL zs{H~tBCT7q?w@UG|qjiu{ zaZGKERmXeqdgcpGeZo}mhgckAf{Gs4W>ATqb{aSqoY$$e8WoJXs+r4+EZ?o zlwRu@9q|w!&YQp=)8Z~Ju5s%Nx<(UpY7LF#=!ekW0M)Daz1Db}o9mq0&6wi8=PcSt z5hW&Xr@$+lw@;4}lM^*zcqO3c(&VQsnCkgbKG6d-b9J<_2bb8x7>!nFCCR+e22+pd z?aod1VV9`1dRH?i;-fBrS9XVbOMvefcSSj^N{1pE0^orCMjJu}zIGz0s~!B~%uYL; z9}CV0&*ySVLm5CSB^9SDnrW=25=`?rN+4=Zun%v~Amk)C-VLG)pMS^>X*&I&YR}%a zc#|EeCnw;oT@aZ(^j3GE zR~m;j8iCz!FXf{X)4~QO44XYZ=JN6`yEc1dDO4t>YjLIg)PzS!ueboOya~h0q%CB= zZL!PcyA?J3l!T!Ihwg#W>xR|doi?=Sz7y9@oZ6B!HriDhzU>z68E$(sg72Dff)ZOe zfyFx~_W*#E!fS$bl4y+=|98JUR(kVa0D=eJyvf*k2BHH?$|TWZAHVpBV1Kt<>$(Yz zANlUnrwWqq_ZQKs!}1e7qkFN=f7%J#bI+PO?3*{MI~adMoga!GN_k>DLae=?*0tEf0Ducq zXs)jd?oMA&zxvleXB|KWi9D<8niQGBR-r|&;JOQ-QK~`l@f%u^aOwvgKcg<5s*8Z~ zOkI5hW>-duJrUGy*<#HkAuV~f71s@o&)4t|+YqVACb=}7zs~H7mT}P}KYHDjpxPh5 zKj+k!d+72K4uAO}KchlVY81rN zU|o*g_%1&Fj2ehM`iUEG)5s#_n14bH?+5O?kUK$aHUi-EF|fql4%xfCS&S@S71S+dis<&5l;L|; zv&tj81v-Ida)L?W>SW=0uzwuLNFJWF5=$isTS=uNc4$BlK`(K79~h|Mo~6stiytDV z(z{+o7#i5SoAtSDM2FPu>s8rjp!|J02QvKvU_BcX@{W-4XiE9&u(b1r@l~PurLMcQ zrIHMP4^gqvGBVc(4HUR@LQR{}$M}2Lj;A#>bfmQmj5EV?D!B?YG3Yq2CQ&4rc_8y@ z1zGem@kM>`8*ND%-k1!B%T#NaDZ-+3lKV;syz$lsmfqhIP|P-Z3LOBfw|mRsmeR|l zDHBS4*}3X6)1y0d-Lm>W z9N60ch=JtrxE>4}ef0cR<;D5y_i zJM;SG=uyHg$glu?X5L7?KU`G}UA*$M6RuHz(eD|R{U0d%>!Qy6*n&q29GBkvH1oCk z%Dy=366XV^e?qdmk9JU2$B)>!k@uu3<)__DwfWuQ#FyE{Rmm-^xWT3J>43>8!_n90 zn8l@~ane4EBdXmqGkQQiG2qw)TH<6!_Hc+rAf!BYj{q&9iW5n(D)rWEV&?^;w&xqT zA0_V6zF+)eA>$ZwCFZfG%Z>-S#FEe?dfm-q19sq%+umm&ttrj9jo&B z86z3X$Xnn=-tE)sx9VZ;?6Q%)ey2is>8MJX4k=m4 zQD>AcB<6yS-(=y*B(N~Vcp0a%64n|O!p0P(AY{Tezi~_pNK#U5MWY_tWg)!oYB6M} z)f=5VAdf_Vmg5eOz*zNT?%gcH=IxQ;i0$5B{RoY@TkxI(lOnCtb^8@v-Fe1Ce6Fo# zmmxk-+M9~eHH?i`+>kStcJ!J{jA@8hY*|O1vK+U=@giGTtE3FGjTpguHWKcJ-3=M}*A2TnZei`W_!x5f6rxugC7fMKw8bzJK^ z2aZKG#hD+r)lkz+CEnC!e~X@Gb#w}X4baRoB>WGW&OMyz|Be51mYff<8ad@KB}8p< zJ|E{a=R?^|tG6 z*DmjS_x*Z4pO2f@HdQp`QdxnT&GcI-bF14*6uN_mc0{qsT4anm z73#1JhFeO2>!SuoV2uk_Hp96Z0#?b%RJa^?!`TON&^Qk^+)Z_sXUd6HpATSjfATX_ zA_J0Y4@475Fooi|e&&ANxq^(&LkKYK!RI?UwN$l7B z*fJg9%!4f#b#`3A?p34G%ur?_dK47NJtvo=p}j@E7V^ z?l}p|poz`l&ri2!gLqv&K8b`iZdwepVcvJzuvlhv@+>)%mXHoup5mCs5(889BB~|O zYfxC*NUkxPgWlH(4~sOX*x=0JG3c|`!12<&-gD#yagUmTz;^JO*ojWAjxdS14O_JY zC!vA^Upp)O&2&--w{E>@5--a1)llS9sRHRvse+mo6rCu|B#BF6pLPQIFRhmy;hIu2 zB8FR5Oa8hqxiBdfTskgO{r$@gmI8ovA}(Z#47ysMZ(&kn=x)*UjP_mppt(X7`fH$JP!dP5 zaj+ST3Tte|K^JcO`ub5#dB-sya0P)EdK*kHbU~1>K1kL#UM;Db6T;eur)j&i0B;hZ zhN35Rr!o9%p{LrU3Z65VWl*rR#D>Kk_@4`E+9;&z%@%GNXV0BZCMoEnVgGV|uJ0sm zJY-h{^T=O4N8Pi{^Y6ei#g3Z`)^z7gsFew7DcMEN3-6qhgIc7T&4DXIPT>utrrQVa zVsf6EUgZ^U_9(E^;$$+2)MN%JKhq%FL-khLE6%H9P-3@iihH>l zWZPNZ2ZiZXVv@f&LxgQFU3Ll>*>KPhas@}1K{a0ft9Q8+Trapr(m7|F9cmB%RW)=| zu=w}kba?SH6%XjNfn#>NHIsZ|ebRf&Bt);0@+jODk5GP8HOp zBUalE+Wev3eYo}^U&G1@8?vkb0!nOf{UqjMNEoxYkw8|&JgSuU7pwjf0ULxFaBmQB z4#ihat%WQxOb!}PNHh&uN1CZ4gId`|vgwumt(T)Nu=t?twF{*7>9&EmnF7?!_A+gk zhzlp$B>N?Mkmi48-pfjtLEDC+=>-`*vU=Sl$>0cBjpT7K%W<70rJo$&mn4~^q$pXJ zA4D)VsYnU=Sbt7uP3vMfU7}di|F5#eGKTedV8~QP^t&>j_{l6ec|k3tLMfKr}1MGZZQxRPY)~GEAwVt=8sKODZ>~ zO2v~*{NN1_S`w$ON=0iXS!{hO3!m;uV4xyld(X)Y?NsKop-u7krsMtTIA17tZ`~&URcC71bR`!F@>*JmWxo6i@^fO{hmdF% zn*m+rEJ2!8&#*4^vI8z(fiqzMzFa?Yipy#WAE)JF!tSgfCl%Z_-}WUFzT9~(Tem*H z<;eL&HD}n}HB9Y6w<2a;>XRbLfWf3^a<7%W6QMtrEM8iEYTK-F!CwC24HXJi_DQs$nTZZYlf|~16`LD$Rt3U5hTEla_ znWjl#q@bJVD)X;84brT}dol#$sC6Qs88Gvp#v=%>qa%WO+m)TGQq`5+ES48VEQ87? zH`U5#7>+ZoAw)m&W0;QfDL*Qs70ui8Bw;#v2#T?EY%JUJGNt}mExMz{+Nm2?XV0pv zPUXU`X&%!=lR)YVjxmQwO%Gp$U57;~A-mU3kezY!bS)wka}P$!Vvz(iWL{*uhl)_% z6oz}bR@qi1*~wQ0wlw2zK>tH z0N+5IOr?`|w&zRRI3G%yXqmb_YQ@D-p5jM!0-`Z=C0lWahloaXq{DV{S%J1b8)5$Z zNyFdO@ne_lirWX;R^ln`~58sgU-E0IWRkKUZa(K+-bmT1S4il%lo#Np8JWOz zz==Is>X16#RSx7stZJgnmqez24}Xi{MfKS6ClVJfv+B^xMR0KrC5MLXiD z2fV}|8p^r+wCO^(9K;2=ov)aR8L2Rl#`+NvP_@X!4MW9VOI!X;EBI=XhH}4U1&2ot zB@E$Q$&ZryAMK91MxLk_GW{%7aMCc3-Yh0c2LuO)%S`&i2W<2vjf2`PTIh8@A;CQ| zcbYb`i%eN#%@I29GY$9>{7E*VP6rcnZ)){JvzSXu&QD&9r2qQY=Qm+X2C-ABT?ECm>bH zdNUV9oeB)uXM&6pTpneVRpof*eZW|<-3WR=BB`wRE>Y$B&2$vvNIRKMHA%a!3-Dn` z29uB-b#IXm*qHh!A7Yo=9WLQB{0~TOt@BMI5lCRzY-M)1D(9)hyGtr(0flp`Y#OML z2<4rOvEbJEYIWZ=u^K=27|J^@$1f*EpFig(PFeIf*h*>W)^mBCzAYjr8ESGDX#+oW zy5oC&Egq)UEpEdAOg*tjSv=2QK$%QH z3Y=nDPHN58bT)H~5)kV+?^On^X@vk*U-)JQ(2Ip1{2qrKH08#{13yo!=^!lyCr7=2 z2Cenhg&_eTo=WXbO&#=GH121Xg`KE$`{HfkKM3c%f4cCiY?GOCtI~2SbR`)!YE`dp zA&QAxy7N~#uWJdkg#fW(oy^cvMI_MGVAzNXaPP!4(`hyTW= zJ-o7JjcW4k#HNi=o`prNcx?$6Rh?hnQCRuekn%$s6=WfxB}-^LLnv|MF~~fL7#=i& z@b8g+ZyL}gMnUhg7_M6>%nG zmUu^u?^LET7MX6~P2w>7xZX01 zvM>t;PQMp;+8>DoiJdXy272B>_JFeG%eGGPtK_Hf>!T<3*nIdS!yH+#r$;*=JdETxu||_% zPn^MEm;p?zgmsVVd9Ro%I2ol09Cx=t?#)2tl3nGzn3$>uZoT!f*|_`_uYkH&DY$j(IJ?U(ZF|to@$|a4QY_0QW}4gk%WXlKdC8t_=Cimk z?cnYCv`4|Ox-wH~T3L5ai4tASqll*mp96Dw{-iEK??6W#R==$TxH=6}oPT0Sq@)xobswtEy7`P|jX zw-?s*HOx?wBljn)DQz@PEHmIazskLtII&jV=}rm2;gj(b`hbnK*(?(3COa0X+;|)h za5JbTHvs=|Nm#8a`ZL85^}QW z-QwPBCEc&d#31UG@n5y#sz4RceES25{kQiCc!AKJceP*umiO*8gK$Htoh3047}|k1 z7I<92Uz_h0-Cx7m{P>6U8p~MNdEig*_3c;iohsG+%2ilbiv3lqOY6OweCef6XnS_q z9<8*j-V`7O^>K6(PTz8^x)5grP*IaYfpU5)RtB^ASOrPQAvIL2}e=)+kp*JZfrdNxk@>zZm z91Xs6gb1lg22*meh zO({vDh$8>A*#F5+En{2q1vz07G?MeI<4KY86)O}by@Fpq!|w?I;3~GXmtb~5oLmRB z?~)58ehteOX(nJkW)b_t!4p$>Ynf&3M2jS>JAr=@p*IlKpnJqG57} z!yyCZT2-q-=ZC)H#iZ$_G?EP+txvmZvC#-!oFPpmTQYUFO8Mbf)T-)pmvi5OxNrs2UPEeTDyMb?4JG#Laz(rm zm+XB`G`9DPJ*zj~DN{KSMP_&9WmK>0i)1)b7Kmo&f7z8FmW^}}$Y zOf{Nt*|t97KbxBRqEw2f(og<&btdBq){QI5XyyUWc@~~Rc!t^_JRdrjcqT>(YI_Z# zbF6hH1`RA}Tw3P?2D>)xpFa-1!KAw44|h$IHUyj)mu{gnFp1)_Nq->yBFNH8F=`!+si$Mj$C`shB2w){7zw8dV5uCi>>!&ejHAy z(!3@k9WK9^`eCJ-xOryl-rmX9O{>puZUT2M+R}P-@Dd%_BlW*KrJ_D*zK;IkuCVS; zRd1sG?@rgY%$&0PFvpykdyJhXAXO-I{(y5vs6BuWF_Sg1n&n#;1n!e6oxZ))h z!ZG`2^!l0pg^7#sP1AwNiIYTJ`;T@8j}Is`wu`G*T*Rz%UYAdXShi14STNTO4e(2t z>}vGX5C$~(qp3@SN}Bzg|8uze3fWz^x3J(Wv1o?F6xzsgoK0_zqZw_hGHs4Wr?7v9 zLh~+aRV#7UYY18b`i+KQ64oDM|Bye@VsEbw8Q`=~W8FKa#FmTTxG|)yI@Aaj7QLWS zue2tgq*C~DTPIRPvY7XE7Og^WvE$vR(7Z*}8zmommWV9hIJ8tao;~jPm3jUGr;Ng# zG5*QEzhRG`ZI@NTRahHUHi0qWVRW;K1*Xf{;l0_V?}@<|itv^=<*yB=Zf-ia(Jb5(_9#T0L)0ni=S#2ypXvW9xAX`HKE)!~ixz^53wS`!j3RHXE0tjA8`t4$5mtoYwL{Ma_Y>vyS3$y?pG z_1T|&ID#6-TW-plLhuX7)=@|*8+hIMCFvBuAH1XCJ-^M5{gLtATGeKBb><^}bS_Ol zUGtAjMk_B*Q02GK#zGROITS5KfBfj#MTOp&h7=_8cLw`vRl;ZWcesVa6%6SMMEH5~ zhAq@!uj+MoYyqn03j5)m+R}7(aRc+_=-)GH?`nMUm||;u8U#Ig-79B7+Y;bFswD*N zQb+X%T??TNFb(qw!T7UGH-kDK;^9H()a-Owpjzul!s6XQsAio{brMkyG z)XVmwr$i?nY#=20G`IK2{EtJ@Db><@OHKjdte5^cb%6*eE+d$0a{`c{#Cud4h< zDm}TtfLEn-o5XAid9l}9hs9eS{0**kunD?G=I4lYk^4TYPUdCtwoTgbp70M|Z#;4t z;7T6#_kgf?3YKw%2E1LL8?-uuY0SbqaxUkHTw02)&m93eq$`|tqY41}XjribyxP{J z0Fnx|euQS&PXA`Vk;l?04&x%cE!@l-HIGJ(thNPq!R54s17){+;6ov`n`IsO5vaxD z2s1Pz!nBli9k=(RX0DZXQz(CxNR2NA@(2YaQ7h@U)wW6x`m+FdF)`xIZHsxa74Ik=Sy$M>-1Xy`I>- znB8$S`7UMk*9Q&dtUI%Wfg|7jnk$dn%(dCBH)T_eW`h(7BVm(e9U?w#V?1!%u*n1df+`~g`#8;i`A~?{0m{b2#@6WXOxm>w zs4Q_p^G&Xq#OccOIwBrTFj{DXY*42tLDTGfMql21#T`kS)nvD_;MEM~^m6yxW0!Lm zQq;OfbXAnsH9Q}iEz&i1T0qg?@AEJ_yzkvKd?TX_QsmJtZ?35KD62Yr*w1Z&l@e&~ zuHU#N7g@pbu{23VL0s<6Z7|!(36aHOisexJ!D>54KKB*dn40~*)kd>Ip`8ct^*d7L z^h~Zg!wbfO;9~w2;JCw+8&$kwscR??nZa{EwlsRf6)Sf(TT-vX%+uY`=KSK{vX|M$ zHioFs%z~X3^GJ(h?)n$*PCIa?bu(ySS5HT{cAC!vDMPZdXNrf+xC?gwtewN*1bfJx z^Kru0XBUEY>MSr{qLP9jsr_e-|G_EVLPO3^J74baQCNbBQqJjL3?4~+%onc6(ZQ3s^dci+T+ft5;2F z)}Zgh&nuo)-`P#k)eU>uIxYJw%bRYzID@fV8pwwvo^Ir-&h*2OGbn33+MAR){nqvgc0 z)8F5+=V;$}Qe$RhDE5AFo>v637O@qt6BSk%**0NWGW=R%P(KBF#mr2Oo-A`V%gFfU z^>51Et65C3Ggmm1`EM*OH#`eC4i3^eM7ob!pEk-P+ypP>9?&?!WjL&BK5X;MLC%-jSZWL4<*x{9Vs0Dmh`oTj*`e3iYNM zon7}ltEl*W>eYhA?z}v=5m8JoA}W-tN4m^T?0mzZb1a0x+iLs1Mm%dup`ist2VKJC zW|oJA2WckO_1e0y=KCd|x;H&=r+UlwhkcR~6J)P(t^H-Ma`!DK2S2RiN#R7&hTg>9 zJAolAul=dB2kHA23wr1&HD#D2<)m=@IIcEt{JxXT-{9dIX$|-f8&z7b@_OP1b<^Us z+#UbLYWX$!sZZ<#U#WdrDQpyc)0O&K7_Q|aIs$PaHM+}Tx~LX6vWP*lJ!dR%Tw*1G zCt!fF((Q%AVC*Yx7C(tTHq1*%T&)q2A386+++k7JrzolPeke2+p=^aRXmSn^JE~*&CYnXuh_Sxd^6dEW8<<-Gx z*8C*<7!%j0ga4l3B3xgXR(JIby0A&!uhw3h$TlpsPYZP&`ix;U!hIas*Yp}giW+xk zJI(P>*;Q1Rb~s>vEZ6NS|HWqgXgD+R$W0;A%$!1I-GRgtMW(bu_VznLZ~jVs)zH`O z2qO=wox2gmrO0y$n;30l7TJCq#vV(P=l$2AbDN(Z(!(Ss)25?cS6k;Io9N8kBtcZR z@o@e9UW^fAR~tWrX3qUDl5vVvJmZ69k4pN2wh(bTsQtX6gJ(=${Ayd-U1+ zXlu)PuItioKnTXVz%2&(O_HO%hiufDls9&}lE-|YD{sXu5UgGo$>upLMloKbWRa+jPYnNh)oD8Kwu9T)cxNDmqHn=ZsHZQ;#-qwOOr ztCtGCSpGYw&nOLlbp|VPRL6NjXM4U_*jpANXqffKY5o3Cy~!f-ndenIE-{oJ$U0(; z1A#1G)qP2F!CwjRUzKWqAfoD~QD(@tx#2{)V$VkwR$@-i1l-(6od!((Gw-7KBL%oV zOiXBXwX{g5L2zKZ`y~0gFT-E~Ny8t%XEM8rf_tz_WfJJaX`6ngUOIkj)8hO<>~1yR zU$>>hqqFD-0XgYE*!nkqBY)-^tD>>TdIchNcmEllIw$1ZyhJC&f`tqE3h5cCz6$!O3}|nQt{tfxDH#{zy0Z4aFn(X-sSPY z#JgP=+3?eifJHp(YH}T0@?yJ85w0UsWNEqCR8can!NzRbaScFXlcYMbL|^RRR*qxS z3c=1{5X70T6^TuEp|?|nCwad7AsN%c3H0<|^(t2YZugU*UiQLYCBPp9zvegBlA?sfd7 zS)NI~eZ_%oNSkrtOP3re2==InEQ10fq>aBaQsM? z$$eZTRX~h9?{sO!27*S)3wa2e;)%}Y*i?F3=sQ;#0Qy7%k|+-xB^I`=_-!R%6~HO0 zzo;KZpGS#}9xl$#v;J*1dC+%`EZcL{u&)UdzG%VdTvtKxSG8@?SleYGvq+zGoy^JU z3Y3E>oy>*_zz@T;9>XNGYL8X)mSQVzXubIvc4`aF*y`JK`(@o<)7RhaFvb!1?m1zu z8-jOt;%OD+T@Ay5$l~ae z48TM>3`hqtgTf=#2%>YojXx$lSlva)U<)aIa**GM)p7}$&Z7~=<}tJU1Y3B$55`uf z`N7gV#Wesu)*(i;O#}C@>A!jY$$eXN>Xh@1x2zic0&C894XL(?k*fBua6k0099;@*DK!9{UBy}pq4&w1I~80FDKDJ<12xFw(3N|7i~oVLsp^tc`2e{36^Cg7W7~oU zsbdb~EVG~f{;F{mmd+Ztd3b9*@nsP`Nv=!|Qkstfh|A6Y@DbF%q1@xq`?Z37#d9K^ zzb&`6emGQ1d;l-)X@d6hA|26Wu4zn8@~&CD%Zkt+Yywh#>*nvJpXMYB>duz_t4O`_ ze?1^{YmO>2-Km{;uw|Q*>-HZ=m?*S~`wv7X&S92B-r!Tr@9t^7#mVn-8RsO9_kzq` z`=2oQW5*mqGBt;tU z^&X7A86?%A6CDI$KeBV4RnWR|Z|Fz772VQ%P0U1HsO!jSry~UsL}Wo1#)y(o8XmzXZicCU4Ljt2<%BHW$~YySlDt}e&O|^f?|drI03O1NRt8ZL>(SZjg(-`bl~7q(Zl%DVj;m+ zhVS3Sp{Ds-H;D83$FDa%3PW-Qs6rl(2v6}?zo$0=`-J-eeg)-O*vcEz)OF#6CKcFg zB-YHj#54XBOOXWZ&!Mki8<_XPBa?~s_C}ace=vny;BR&t#-mN}>-2j{MnBySczV@0 zR^MvpllW%nlZ=V994r$Kaw*SzZsaE~qhS0h+Ynd#{NtB|l6lMGw$?G*XhyloO^NrR zatpcd70<`(do;dr&xAAKgZgjzq(Q{Bimx1&Dk=&>_nglmEJuDFh$VeLzdCRB&h&so zf(wFP+a`OmKIf3w#NzJTtX4{Sst&kZGm01e&9F!_RQ!lO)}Es0#QzVoeTKru&fH$x8I^xh&ubZRjk5IcY&w^|2UR`?|G@0pfu+P>SOsT0-21s2 zB=-{j4?x4oxcchDiKPQwKA4r|e7qzlI-A7%6U&7^xT(hs+hLy*XO*UJRRzo+}(nw-RyD|2QE|U0 zLi3k-$()Vw3#^>_F?jrsQ6qo8Vg1J-1j*aFa!n#uR{-!4a??^fVRBPIL9n@&vqp>= zUL}3*`)-H&C(0^s5|$)q(_XKE)qaAb?HohJUt^O~{~CXqFH5~Xgg~b*oX)i?{y|gx z;op>KKtjzmrbeo4S-*Kaw-k9V|CiANNc6OS<)LH18f@tP`H54IKkA&4$bY_jBr{>7 z$+BL6^||d7L|xi(EF z;&~roUR;&x2#VkF(0kQTJZ3kG!5d2Nj;Uj8f`b-2<$B8LC0#4i7&SL^Ho#d3Ho9Q6 zpfqmP;#Cm1iJWZ373kdB6)JmQ^9yYGV*3#9#4GAhj(*skla0;^iWD{#04f z=xhXxvz#m)f@Xq$*!8?h3&$;2*SSnobctYNxwPH~({IR(`>0^El1p{7#on*Ch#7p$ z7$#4fJsTPKfwF!nZ3dGqz>g%K5i+luUVeZ1oAt|EqLrhDtGuzbC8))MfyvlFy^iau z7EGY@2mC;*cmP?rrG>zpe*o*$u4@~IuhmC{k4qF zw@OgFeg=OWRDZNuEI4fV1Np_lg*eR*(=x!mpQ>wooAGF5@TOI_q>A3Mp0-o)4feNy zTRY*)h-{Ba@o$|32FKD0plv1yk41fn96+kil(z0dkV5;7Qp@KRrH`E40G2urqBi+N z8}4zavY=lh6IURDLpufs*KDup?YmFqssLF4s;pF8U2u(~%D5HO%qO@GN~3u4i!#16 z8@d&C@xZAKPJLu+|Ee3$CF}RxhU*3Q8YW}KKK!qMR&Thtl3X%L?jBX__X-fc7Fw}A z&hR8)=wQi<(q@=WY`yw3N z=B}nQp6-3lQOX`rh&dIO%SDQquT>xPf8T8Nsly?8@HWkl?__MB7)ek9EQSypf_`PK z)+-3ey*xKTT<$(A6#5R+ViGlwm;E)d0lgEwGCc5EG**%I`Lk;b1_!~!mu_KI8&9hv z!QI6~qkBGn@bWHB=4dO7So<)S;37Z9G7p!-DUYhNJjQuHg6l@xcADfG>|UNb%=^dM zRr;)(jMuFh5BLuh;#m1~iPPS2_!m?EP34uqg+lhVCeUgo_1zz+$^BPm+;UI(jFY$o zj+IH%rt38~yUm?&RxRMay7$=}g-b0}+RHSs@rSE*L!K$-Y{atazoCxbDqa|a41eJF zzAJ&{E=pKh1>wsK^~=v%`TxP_h3|b8^+n&V<>HOv4qub2JbUdLWflMH;e|8b9j5F0 zuWe=n{-PT>0{PiCxBtQ^@48_z5*w-Wd86<@Es5OA1b4SwJH6_|DS20@9hmLY-;gee z&krR)vBP_E`dKpA)P9KygQyx-`2K#~gY@8til2RZG=KXYegWeJ#|D;hhly0nEZIPr z{3cE`_U!D=KjcJTq$SON$ed|Wyug32{IjDNco-r@D<4b7=X8yk&q`>@?r??gb5)W- zCx-N@%D+%RJ68jEY_nw40=$H;+*VB8(`#QZ4f)f9y?2d4tiK|#i28vGWqS0>Qq2GK ztzeh_!D?0uWd!Z{Et@?fVlNvnsc}Rf$KTwvzn}M5h-^<9&^qxz#=dTBV18IEI+0B%? zmu<2|{1pNFH0iSG-b$b0RTEYJ1r|AAp+IPx#Bb@n@NG}^4O4IqQ7(#m$h^bD7M8@~ z(6^FYURf9GV3i$R>M3|G0KPedE=Om4&6p;AS5NWyCUTNbaMaZQ7JA0P0dru`b;`eM1~;9H9X>Ozsp3fyUGk@N_+ z96jF=5tGXj;FP`Qt}*bl)sgQexGvmZ3HIG=pips^;C!o8Z~EPeQ_`?l!0A&6`|{{R zr(3m4pm;b1f6#pGRl}%E6nw+Ju=+)z{L{YtfM}o88l@wRHeOT`NBnU&%S^U`Sz<%u zR4i!F!IFpD{=~TM??WC^*jG8UuX^9#`nSjZ-IfxxM& z{0^=+opeu&HTY68J*Sm?bDWX#06V=9D#u1Zztnv7078GD8{GBhq7y_h_ z-*Du(ZFe}aA`x<4}5hQb|=$TFTazmA%iq#j5p?dZeO#dUHG7fHyQ11r^ zz|uD>1AyYFsIy<^wdBvJ@E?__k%5cxW|pBGSC+PIefijwHKOSlB4zxygVmr^did+$ zzbc{AKUG*~x*P}}+jaOu9Oo9z26Q=sP2F3hRE$LE&t#*AC(GyQNYzl8&xuhC8T22kI zTWq_r+=_R&^kvhb*`v^>X4;z3dL!dWsw^2`0K&wsgZ`SzA|UTcf(t(O@zt>us2=i8ZrcZK2oD~GPQYc{_$iu~erukw7_Hmjc{cCATYJ^MI`w&*xav)ZB+DUv)efjQJBYl!wXbEw>W<`(|EA=J!6#AQ2zk?aTk2 zxWv!$w_c5=ShxSHmhF%93M=!mxW$qtEcG& zcJ`bWw$$C;wEudlPOtV#e$Do;xMAJ$172 zc+Ns%{62YyI-Mas52`EF8j2eynZB=2X~l%I5x?1+`)MPiLcSR2><-1TiA}UiWB24L z|E142Lai4;9y9gd4{{qju7p)p*@XdaS2JHNesFdIxcx9YK16zNs3J199 zr5in;vu`CD@0C9(L4v*}&L(POf|rO8H~LEXhV2j{#46_!#%9+8%x^Ytr$r?V3;hy~ zW|V=#K#$U{P_j&7*PMtGV<^BC+bPagHLOa_mJ7iSIvP=W}i7)#M& zap1_Nb7ae}>&`VRLXH7+Av}WF`dC9MOzJ?^5Qw-rR{RZ9T|G}+COvyJu&UU(wpgdt zJ#Op`d3qdIp9LC6s3^<04WC-U<<~AS8675|+a$FV06OYv@I_4_Iavqg?4dBiBy7k( zb>YHL4k|>RgSFDz>LEw0fW#dQ>aMru2 zac}=Yrs)avwB;`kp2oR>v)s&sajX$Xs{m?6sL2H2SzMBoY~VdF2S1b=~#w}^6s>c@L?7C*lL`>qgkpyPY!a{SbSwdETSw%qULsbCqsZSDt-QFrdsA*?(x+o`zhu!ksAGO#jYhj4 zjf}|eYq48*6-K0Xi0G}+J|p^(^DJxhZg8S`_thu?`6Zr*Kgp8E9G<~{i`mrwv=~Uz z{sZ|?)^Zcd{^jS;__bNeJqVX!Lu%FC6w!!b_GIH>(0nh~t?hat&Ag@0mY`U9wm%TZ zKe+dPcX)$x)c^Qv@tDvrGhg8ladnrAd>a7m4`smJ{5;o^O)rV(zH)MV^g=Ri!ztgO zqK#EN1+-E|l-k2TR6OIhJAtQBtpnwUlN48>&+p8u=?_fQ$&V+g!63Z%Vk=KKfXeJa z0mPMZ8qxWgr{j^un8t~|KCYcj%p2zmt&JfI%{OZcebvzXh{&)TpDZ7lt$`IQ{nYe5 zy4f9GRTdY3d_lm9jRKF`_NgaxSo}v0T{Uap&z=sEZGCk8jR`yUeh=)d7s^3Q{xc}Z zAIFJE6p%QJnCaxqof53%H>ZFE?n>Pk8KEl0P>C|v)FR(i%O|j+6V)A}O+^UlHf6!Z zut3KsPZ-y%&b=h55GV7ju>n8N%D%HW*qHhPbHm%pUFdbHj1GSd%UAQ?v3qrTZ-rIm z`V{Lx(ZA70x2sF?E26VV?DiSY>;>KOMpjU?TU1BFrSlJ^B?TO?ymx4b7u~C!w+5bA zT&VooCk$HRC&SkP2Bu!%<%swn=;H3C>0xG(r>N$!klJaB*LqQwTzbzB z%kRJH6dsZ&upc@h50Q$-OmrrhOIfh7!MB{`Wk#al5g=WlEj#V1Y%2St&wzJsNCO06 zL3BPeP=pl96Yn(GNmz{g#F33k{n;eZ%f;W)B>IOqEL!nI{`TDhCYNr4W70R!uYTI^ ziO!Q6y3cTnzei{Qi;o-G#Jx5hX+A|SyYMg8cYuXRS-9E3VO%_T4H|69-|h3VWVc7BQ>uEy{jdma6cC?O^)8Ev9y}iz43`^po!e+xA9M1 zY#5E;!Q(!D{cR+G5Qw(Lv#u~Zcnfj*PMxoEkV4}=9sOaak^>j3Us~;7aJjJEx`8Wr z6{;rrZ6F{9bnuHx8L5q$$(kI=F%rT(u4@(yT znHsLCq<(}+Z2NQZImG{uqgBdf8M|v9zQAI&IqPUDy?JK*JOXsaV0=ZTLRj41Ku%6t ziZ8Oqlx`f!#xgR5#%xj7EM?gfwQtwxYrw^2OHT(R<3inA5|w4Zz+RRrH;gLFpv4Hy zDp&0?9ZyKhnsk_8a|j1-xCB7*9Q=}VijV6^90*ed_^1kZQWHPQaUdRI|C+U!oBec{ zp{7s9uIn=TjitE}%2g&0KN@3XCgO6rq9}RP%iTgUu90$98Ztxu&Boc|H1Y0*B9jWW z%wx0-l<0=OlP5+am=~4D{zt4z(;+(Ns3~>HyA;IL3)fmw!5q$bm_jCQD1d^9tA7Fz z(K_S-#G<1c4vl=O=a_7u^kGQdsXd5Z>l=<*|DA7YrlK)--e{hH8_ki|$(=H7jec1JwG04TJP6R&`3lS~q)~-O=`( z;m4cMCCF(;d1YfME{$TQHL={PiUu|XFEP#yuS{DA<>@=Q=izKa7GkwZ^tB#jn%#YD ztFAruWzz;I^yfRy(y2r0m<9>ReQ2k|3d*7?X2UUg(5xC$%xlkj-^2LOspUS8jnHpL z$>Cv;lbcjm9rq86e~e}lV3H9@gx=mHBG2>52; z$tN2!w=cog&CF&zcXE1m<&LBE+&+!oD?$_h#_+K?>V~m>C`)X3cO#OL(5j!**znf# z^tno2rNAQjCH^P?5otb=c;f55l&YtFSBsCisNfLAkL9;W*Jm9nciY4qUw=Bg*6ZA_ z(CDqk&btGu|HJ%5)#Sr`6ZO4A!l@_G;JRFO|ABb?u9tH4BKY|&mUu6cH0+z^93*u1 z{lA6`v+}(^kl6els(D14Uei+Qm-dx1}c6YU4>+LB}%J&aQ-k-YTQ-p<DLT zbbs$(M5%brU>*EK%4qz5An*@~A2%!n;!~$1gtoFy>J62}Bnm-^d07*d1DDYR`E`C) zw)DoK?{pEGl^6e1r+iHY`G1v(mV)TBmU-R{)=BsJUN?MvXAU2~6dA2B#lXK(_6U3% z_d`WtW9{^8rtV;8xzo8bwVzL5BR13gX?2rQTjj(3*k9=oljzf(h5ANKD_YoLq!pKL zdBVm`Rl!mo$nO$@ z-Bq)m0EKQ=cu`q-7~ZFNTR}|i0g&H9yhS^^k5M?T3`O`5+pc(~%v$))p7lQ5GuE(Q z_UyEbKr8!bT?)qpT7=d+yJbv31P_~a-X_au_MwQq*MD;;{QRM29Zz~+{&DT+x6d?V zW|E3{oiWv>cxxQwKHi_&vdawe?wjjL@v|aJ2S@z&z)uNK1kC1G(}Rj>w3N(Aup2e8 z2s7kh8<-0HEKR<{g%3tdG--(<&YQAyo-i|gJFOfI!Byhs);J%YO+m6DBhnnr-;U|sxMEDCmCrVQm=$foD>1a*&^u5o=Bwxh42vGpfzU8O-D%-sef>-%#^=^| zbEg8y_~Jf^$`7&<(3k$9SAOL`K2+oJt6Q;C_Z-g|`y^j>_rlNsQmzTH=W3aen40Z2 zY`aa3a#;Aa5nr&__4Jxg(P&1^O>mWI@ipz#5n~Q687Ex_uX0Z+n;Pl@Uu8w?KF63b zLC6Dwef33x7AWl}jd>u+qv5rj@)+AKmn|&3Q^AlLQ5W3ynk)5_-RFU7w;^TKDV z`q&O{-kf0K2mMly8fz!iFcgJ7-gB2On>Tx5XZ74H#r`MmT=BSin4ANxfZd%(SWwGd z*vmIJZT_SiQ&GnEuJH|Gw{afGYtWkR2Ikn^J$>-X);IE_pxTqQ1>1huLgSUB z%tmNEm}{@B@lF#h;dN6|t4#RR?U?bN14s0!QXOicZEM$`_6An|wAx^ieFsA{SZIyR zbxuZ2IVF2F=&RZGjPU0IQAw<2l?jBMK2Sl2XJ^Gjky)I91*qd&1F*>WRy+79_QZ^5SK z4CQe+*>{#}^(4nS-f)0p>;?;+$D`QEpI-|YZ9P@#wR1j+M^zWU0(d8cpV z6qYvFdvo3D8rtS@M$N6;{{z{XiI2ag&@9X{;+sl@3Nka}P$kptoMw*KdxZ`W>>mna z_sr7WHbOKu^WJ1eU9;j((}{`Zw}K2N3JPi^Us$VAm`RHDS<>j zb!Jel&JWrNrHThP86=D2K|tZ*_Lq!G+fU6k!|n;7giK7jDml{}_>UW@>+#xZi+;Dj zWG#c6)aS)0@Ssu!xgShAq*$km&|20%)6_ri+hmQ+UHZqF{oHy2ea@v{aG-uiPCBt4 zQf=-MxoAmG_q_k$bG>8#;c|TJG3y7_anWkTNkeU;_Md4c3u-O;g@@bNmMw`ak#)Io zaC41cq;tMmkS*qDK>C!e~V_} zvBf7x4sIarrJeGLaHhE%A(R<;@wB5_HYQVb*Hn_ds`O(ex@0szbH8{f_9w<_Z9M#M z5feb_q)QjGoi+etuc2NC(ViU`hVuXg{ha9tL8a>|LVrX4*(B*3e))K`+@}=|{`$33 zFV_o>V>XAvM^)Ew#1jgm{=J3#cU{QdicQhDXx_Xk$z`k_J$f3w2p~`7F>_zcXloZy z9D>bNaG259Jz@!0rcR};*0U2HC%K=scf-QKs$*{g zu~mh}5L$8$KiCF~i= zQUJ3-O8s5Lm{ZX`d}l!>j?wS_e|`3HzBjw$bycFB8r#5TGE5kIasD5EBAeOW9MxOJ z9Zg{48wfDLZ)c%Qe_f#f$gjg-j|tlXG%+5fBf;(xj@;I%OWPG-Fp(gDCKfbUmml3j z-eX=?C$p!Q1*rjtL3LPYd26bja+2Gu`3Uq?z7}v3^*>-4H@NZSwyy$Zb%(?5t%z2FO%t4R( z+dVyf5v)*9#?kE(@9@HLg0S3_*QlN`QJ2nf4yYJp0#EBuqy?9&y<)v`T;4?W*g}!m z#w_!+q==96^U?+s#Te8{CMQr$+d+p|J)$3vec5en;^VuS9*=#D(Iv)kXjA6t8KZVg z;8vXAllmVLlOZAv-571{e$s8UHKNv;Ai`hsXU@4wgG^Awi@B+RkMaKHEz=ZDVT?l1 z*_|)fY*d7cc<>Hs#!D}ri(0O*95~t`*1IymHC>>Qu-nDm8bc#3c|Wzm^}mouQ$a+S zp*iN1>E=@IYf;!W(Zj70;+yGpc^P9eF!if%Fj*{9yxygpj*kcLnPg|&K*yQ+%}Eem ziA0DJta~L8^oaF#6D~>5m?&{=gy?B0rGaJaj8hON56y)wtAc2O?deY+IHTMjD|$-I zM@8d!>8#J4YxI-sM!2l3_{%++RW_*@57_BhQ;A8-7qxE)5G96gt3fCSkF|WQc(SK6 zFyJ083M+BJ(5=R;NP@J5lfih<2_IRnsI5E()K3PNDb-N9^+-`isWVlfRO+@zg~!Y2 z@>R(&aDkDVmvu)*F_~aiy5B#FWOB+01_@&rm&zXcSao-2Di0a1;A{B4*^Sf-K9X>L z%V@4i+F_ZdG2t!E)N*1ANk|gH#K@&JN59Wwqs>XC0W-_R_VZaU?<`cO8h=j{IzKq! zjVpJs)PCr8Hbw<(*5O4SJ{be2GivdYW~FkNgE>m7QPvXmvHfGj3YIRd1s42oFmR8P zqP#0V64^RFGq=3j!N!Kk71r^B3M0w958I0}#UGqAzc=9YT}!T8PC z3}(ZBAsPaz< z^vwjW!x+mA(Um&!alxMYn}(cfp(hP2~c3(miw$LZPT&Epb8hc!(&~F zqx@%;wjU1;13N?mU-f~Frafn3ZWp5A_DDvGyLbXBCZbN*a+AdpIsoUx{4`mQ%uqHu zZ%`J!;@6MFHZ4sXkj-M>8*>w1E@i!GSH)4_+-%DR_8c*`{kgJ_y<2%k{BBTz9ap#k zu$&3 zJB@_uR6M<&XFtC``n2O@+3l%j66B6dyK9s`%`MIV!#l1QW)?$ts93D0>hzM0sX)$#{CrwHSTsu!yQ}q9lPu!qvS|{X>y|U zAPr{g>qD6^6z})~Oz@p@d?8S4GWr_EHT;UYTc)@1PT4}aHqIYkx!^KXFyFK5FB90A z@Z7KrzL`9x*cNOmrCTuEwxS#3x1k$r>oMYtI~3!5K+zABf`MqoiVk%5B%l2aHZZ)D z3Q^56Vu-QvEVSZeJE?`){P4TERiJH$Nw|^-o4Vcay<;_it1kAv0+`n$AQlw-V$q<6 z7l?z~Pj0Y{${w$(2hdpH-C~vV~d1ApBxovP?+UFLuAkgC)>%5oDm2~v6vvG%HC;NHql zmiqW2=9Oe>hmtzzl5e^jlglrEh+((Ipl;mon)eBi;q6Mdh4k1w>XoYt8U ziOWz%?2Sl_Y%$3A{yk}f*^jS+qdDN91O+iW2S$7=3K^1QWe`ZTGKUV zMfKXHjBiU4twgRyr3B%vUYc9*ri^ik&1K-`D@BGmmka+!V*Ndj zmJSt8rx1*^=R0>|yL~i5w=S$HyH+&iBQCX^>_(~4BSx{)22VCC9(t?tyql==xb4Z) zbE%n>UJHiI)%>=JIUD0E68ukf#{9ccSy@65g+P`muoL4VPf@z)#=f{ZTtpwG_w;)={jpzDN%Pb zc}BIl9`JIr(!FR=DOuGC4J#utSQ5ofv(Z^NV@qHx`DX zRE&(#3N3RS_9^Vu)EH#>1O}QF@ym?T!g}u>g879Y$>*D+~Xlyf_zfIEGCSfdS z5-%y&4}tF7vN!xy!!1t@+ssrrCbORpZ04~CLOw3MP*D5AdySdeN=GXvpjOD^U8nnY zaCbU$VeH36U9P|}z8v=@XG?)JA(XuxNSl08)!i+HN~;4%#sQRg4BvDedq#$E@0ji% zTk-qwVy1P;>Tve>fqJxdjbO=GhP`_unssQ*xI)nryyL2|a6cA7CWSUOJeTk7AHRy` zGI7dd<%baT4G=RQdSZ8%N>+{$i;P?q@5BB~+1O?1j>w{%_U z!hUQs=lhfgsRru4YmBx|35F<{aAm`A_Rse#u|6#@3qGZ5V$s4rxHVep#9%u}QRbEy&T-jnUQapgOU_l2Pg97Y*DC#A;0EuvL`GfRW|~R1WDUGD>q`RF<=1BlQ2LzU0kx z7u=kwp`KhFjUe9}=(`%;oLIh#fvFI#@HK1v+H?W%4#WO`W#Yr3BnEhG5@P*&P1y|D zbE;vV8D1`%0Hgnj(0sGla5pzpqCybz$Noil7sNNey?^a5m+e#5^Le!b%@%mk3>o9vN;L|@NrBK5cqWsP>#O6Ov7w-EC*RBj&V#hRWBe*8L#9n z8)jZ2B`iM@W2kO1xmdq-v7tzYdt$7b?vRm@HVU4uX*rOi21{J=8{T;HTTUSp%guwGjwYTvFtdA(gK~S<=I{Pb_0&sNCRH z!>s|!N-8rJ3dKbV*p8Im`-TvLB(}li2aMd z7A}F)QFw{`JTNX8C?nQYN^K#_pbsKEW5si@yd$i<3ADXV5Y3pAE>31s6)*G5HdYJKx*aal84o zT4%>X{mEC85XD#ldo<3|gK*nnOX!#1&AgxeJjg?TnFISf0V7M9=#N2ii<+w^46g;< zjphY~GGf#=TRZuf9e0khgx;%rWSY<6vi4n)8rJQy)g|Re5thX+TX6>We?(UW?}s8+ z5?9)pgBgv4&L*Z&Ss$Mk`H{>bY=4B2M}=NLa6kk75a1d4k46&|NoYwe%;y#fh=V5Ps2W(}ue6+UFW~lG zS6$60Hc5HrXK^%$nbxs;i+fI9|0HW$#u%1sp;Kux*Tj2&1sP{L6t9rG7Zs`f@{8U zFD8SCw_jI+kt3lhW$(kBgkL4ciwy{tHQ`rThv`Eb18yj6lnSPU#<%?&+PV<{OsOeq ziAZYqf5@UUh9G0#wy?_ko*k||NHVXfa{kpbjZmszniW+2#xcrZA5IhcKxO37*{JwU9D)%JyM&j06wJ1GzbHDMgA#01# zQm_Dcq#bXC4|5itNg(TXM{p8AG!D1Mkqe07?3sY7IO$Gsh2a11Q|k%z@)=ul^3KDze$LX;rX1t_yz??adNu~2&<&f~KY^VSPEI_s`fp1#zkRPKe0k|RD`BGlQ8ezHR_QUi`?{BsZ}ZDCzzUHyc3 zIX##9ff0K}NK^1s5AS@R-z6^6emBT_+HiaSW$cvS;0oPf=Tp!OlmNzs66S;!Q95&^n2$MirS;eM+_;0XFdU+O5e>cG?L=jtw-E9}wIQ?9dxf{-Cw0K=w4VFQIl(`x za6xZk+RV>$Kv01EuFuOv-qg>9(VXnqE{&eZVU5T8dVm$%#HXa(+j}3>{!t3%@2}6m z`>nXva!Hl0+4R*bf}t{q9UHKD75@(4E!Ji!aq_3Yrmv9#h?O)cwax|kiMI!1;3#YY z-p~7Vdl1|gbZa;R%Og*JYxP*hS>@j9M z*scL~&RvO-Y*J@-C^GDpqBi;=Ijvy|`EbBLm?+BAzOBV}wM&l@jY&wI){h=-8q7l=E+ehP zoi(1>l#I5pUsPIQLDZN9+kcg#nzWqTpzp7PkeWTvO8cPf z*Ehc}&_6V@2^|Hx{>{IjF5$rGB`YgyhPO}a#g+q`@%x1FTkYs>L9LWg&^c_ucDlZ` zMBJfw6k!GV2;7LxzdKcxB~(v$?F|#yBXB7+TOe{t%~MIS-`^^Prf6-ohRt>7vf|_S zFBTC>v~4cS2n)G%BhjU!3rl#?DOfEcF#5SD6^8F#S#{>F?n`g&RfL3&n4`LEAgxAB zl-3Nge!d2Ozo<)Y0IAA(8GZ4!3T0p#9xHeBqp*&5?bt%;r9AHT4LzZskfx|8gFVwq zVO7DovLhkuR!+gU$UXzuLbg-o!&?UfupDGmYJ_X$+$hvY7=tG9KGS>yNW;4JWvb+< zytKsDc!QA?S})#FxA|9EQ8{q~laye!R_%VX*;w_YL7 z_;l5}-ln9s_d`kBYOI(m-zjmyn(n)&rrwO2)=N*>i5oD_D~MmiPU&+dxb1`nBcK$G zEsS5y*QhBKnl`G0=KIg01=zi{X}Y z;56Hks8!2dd#Z74fB(&_;=$>QmcWA~`e^=w_i2OOi>aDh)bz@H)l5S1?*OMF*&4#UbO#Um(eSfYRHMi+TaoO&i`;Yl! z{Lf64>~pCx&VO-T0hcOe0%Nv{e5~ZSFi|;?J zB^Vx)coSm$A1E2kN>|%`$Vh#L;BW08*I>a>GErwVs_bzmM6$XG(Lul(>B#mBdvQsJ z!7pY*w-Y$hy<1?XO@q_?g&F-Elr4(R*1QATT2-NE=>P;Rq*1UJbvvWf1qFOs>HtMT zx?U_XyIRlBNup%~XTvH!W9F|t%%DF@36P!j!;|r(B!N!^Ff+221%$CJmEY(Ra>GaY zOImh{P$PC+9TQk^c2TE2a#}ok46F;!z(S%ZGB&kb6uVf!%yDE9f!wud^y1dmful{8 zw|FFN^x}yr{2*_bwGXS@B`$2o%;D%WAP)_z{MFZ6sfZnv*F)%|?T9PI^Z$KHE317V zO*adCO-_!TBN##3JyD~6YtQg{4`fDL^^gf%#q90|N@CB-D60VjTNQd*MgI_!+n9b} zJr#Q6U5LHb!yfpBdv}2I^~KL`TuiB^f8V+F+j=3s;I@WMk^c}Osr{7%83MB=WtbvL z(^Y4_JLtzhG%dfUK$^9kT*vOG(mG@f2XNz}Bm?JLS9|xocbsn!Jz$I578%F5?S0Qt zRf3Puv}zM()k=MV@aBtTxjg&}U_YME&H|!p_6i=q&qe?aMDFH?eCYLF)y<0I@IA}d zM+-&$o`iwT_MhDGQ;wNtOiCr{TYY!Z*_${D-uI}AG_NS5_Z{11H_NR#OJtR9=@cH> zSF0+S0ezW4YjO5UZKF!P&8i2SJGVq4YB!~F<%k4*iB~cVPHCN1>Cb5pb*M4pR5hD& zg4~L4HH(!M^t>jhmj%jASM-8?5K)DKE}^iABaRPhVW_z(uq5z%;9fN-3l%G0(4abI z&XE1s6zNOxOPH z0SnUBO2d3}=j^fkNi8|sVKefoFa$c8jNu7?Q1>QTqXj8$o8sQPVOefw7PiHtEl97zjItK@4AO-4i5My=iE|u|i={E>iFjuo?87M*9vpVYT zqm4(Z+&H2>V#JWL>cxMm9;3P0^;a;xuq?bPQY*cI#d(NE%E*^nD2qfw``xh9=5%B~ zg%_4gcKT#Ra(t_@)(II|lwv{1niOktQLwqTU4e+>i-(r6` zE_&wAdaYKn(%;c#4_{g9kCkA)e5f%)=6CjxvkREzD1{#6qX*}|j){{z!AWLpR6pn{ zqEW1)MX&mvSSJS3vPXH;4>-aPq*@WT8&mI)PZ@9^b*?Dmvw5SukdyTii>d# z!ExnRVd_?SqbH&JNslUD$#IR|T1rm4(uU|qF|Ca`kwfqEz&LU-wZX5-KViKpxo2!2 z+EY;qm~{Hzp9exRYH`5~rdg3MJ`nrx zcp{pDT3N#zKOE(6^?Cnm)~}Kor7b4j*VVY}La{B0$MlgGbiMc2|G2w#%Qim$lJ))3 zp;nc3`8mF{Roqva$-EmqCkmM(I7(5nWn#!Ad-410u4;zy+&Mt-B1#o){=P%>NIC1; zyS#Hhi>+%ES}}0Rsj6`omY0({!r*}itf0)nW+uOk{^O9 zB`{gPnrle^yxKcns&=N{Isesbd2G0m8LeeaeBDC@=;ZEeCs$AyoSx4-tu7>(2Yeul z+Pda1XtK8_KkA(tE`+s`|D0U>vwcTpu?%-8*Bb+YKqCgg!w+h)nb>e|x8+mQ(nRL{ zah<)NkxYaKA2xnC8`Etzf95m-k(YwBxO}ofcgB%z`jS&WHEe4q9_O1a#j2)iT19#w z#xEsB_uD>geLKG9eJ?E_h5WuO4zfWiziB!D|(uB0~#`)6vXf#5%bU5h=(BbL%_lLkE;h zWm86d4j$N}y?{sdv!X033Tn|EMwfm5?Q@s5JRjil=}VV;v;#xvaFVsM()IftuVUvQ zJ3Dt>n?79?T-?Gb_fCLgkgrafbzay+keX(($7#%eW*QWII9>>XqK&^^mwp)J;r7{- z)z=BAE9<5X^Tzl5WQ=qxAT%vY7q_G7-6A{>wABLKXvV&c`1<_gERM|MI*dTEQb6i> zNng2_30)nv`GdpEY@|dX`oC**`<9P;C#eY@0)yd+E0*JxxI=^H)28WFxybs67}i>B zOd%y|5$8cbIhpvLjbxgC(_oxm-9cAsrzd2h3q~tkMzKGY)m-J_!j|}@rY4$x%aPy< z*TIP(#K4Kt!pONn6|)a(OPRW5i%l7NHCq%~I!mi9_G!#Gujv~9T{)Zd_nR7wVzm3# z&??&lo0|f_cL<>zzg)h)IN~5VC9+BywUlE;;q{E5-Krxlct$if+hE^H{*^WehPIZ1pVci$~nlj}CL1xTi$z6yiX9FyrW6Gq7iLtKGN{pVbTj(5N%sGS)%P1sB@Tx`Jc$x0U1OeZ=FZ z0uWsc&1m*aBE~f4wkUmtV8=Gz*%+dcR-aX_%T~cNxr`|w|DVZeGh;B7DgxM~J*u0n z*#iRN4s5o3g@0{`%BJ=n2M)#$D)sdw=xA!H!|SX$PND9aSH^=vKcb1#Z!cL@0~#P^qq`Cy8+ zsOp|gsI>cxX}A2!dx|kSRlvRkzVuHbJ@JUDGvV(VX%ve6b#=zO)&0$35LeSWuXdEQ z6^W{MbkL`olR3H+%=!~{>0k2h$Vps;gBJPxP-}+R`aUO3v*>S$%eltO+#j_@(e)CS~*4%VQX zG!=p^lr8@$IY?^jF9UO(i)p*i>xPYN?lmv#Y6&Dtq!qF;<5M z*c@2@H(|u|m;-)}y6e$wR9`>5sA4Uz8B789K0Is8>FG+EdX{^4ZQ{I;@^w(OV4>Yn z>FSS-T#;qL`4Za}(d&;{#$X5lDl0vBrzo=y(gNRj8u~rbt=DJxPM2MfaxL6rk@#vy zdaWz%od2s`u_9{ardyqV@c-Aziv8K=#F&`$z6Wv|rBtz*TmjH*Nm4i72vKb;vLDKQm0)sMid_SDJ_8l^U&POemV9>} z{cyH_K{RD?pqqvjbctelE1j$Vz9uRXh^1F0PtxbmIU+*3|2%nX7w|6b^N z$Lh3~B|`m)I%1o4K#QPT?z{ z4Jef?96y#e{dz(%prJ=>eB)w)y1OQeHp8CPV8;B7`ai*DV!6`KA5-2*mZ|HGhY_ZW z{%M8#s%Kk*$0MQcq)hJKChnn|ns-Zg%~bx|WsDx}qxPww(Eh3O~UU>!H84Q&n^3krbg*X!+qy&WTBF~@=r^0LVjY;_3gHND54-uT3ii} zLnV}1XvZ+g@5gtuBZ{l|zb!`%8c8o0Xk?l@75XT@r@&6jjT*sOHFKEX6+Jx^T&6C$ zs$b*nt=vRg; zQ?V=v7G$y`+I<^$gAO4HYa#Z`F{gD*Bq&K|KY%U9d>Ozae#veD4#t1U{dKUa~H9`@M69Y)nA^zwYH z*D+T1q?Y11!zZxqsy6YhGcvyB_;(0&{&w0F)xz-E7%;AAKP@P z)9itHA2w8pat61nomi*N&X=vx<$?4p@h0TLV|&4e_|ByQjYG*;QzaQ{@zfYK+fq)v zZ@=|p@CbJd)R5|lUDR$i;edri+}L=&3? zA?C0}#^NtOZWV^r1=#04GLGcOFHg(;p3BiknUATKGWzKwnOPBaM74(=N?uAeZlYa$ zGRWNt6S_EFS{^mqtYf;QPI39hS~_x{w|veMk1BsP+v}xZFupT;(b}OkC1XnKDPl_d z9?t5~das23mWhzVF={n^WuM2d;XQRkecLp3L=$cQwzc%i-OHYtJ)65f3ULJ$8pB-* z{k0}FJbwH}EBPi}=Mbb%Jp=!YlO(}P7LD*Jj9+NhGl0u>uH^ z+cm)Ar&O>9FzS7Y@0h>ErA+P_1`y89k$9XJjN=kT5yslu`*hw%Sx@%rwDw+8IKocJri}BcZ2bIe5bNEz!QmmCO?=gD215p)N;#4T;=DAp zrhb!Ps9le;qWQgJZp)Wr0tlt89ym0)QH4}@wg^_af)&?digR>Z^A=*xt|SCKnH~|l z=-u$y#fCG+K2jbpg-_U%rlM3Y>=rZjO=X#k8-V^B{sZ-nQ&?9iu%;>{sKMxW`o;|; zXUj7@>%Iz7x2vS>Uk8kq`%Wy_2N3 zIFfn!e1Z=5%PexS^NYb-YS5EmmV$3eQT(?|1)BqDrcK3npQm|@3sY$#85!hW(p_^P zRs3qI1Tps_#z&lILvrUgY2$T!Nhv*C**7cTkNdUL;ckwkpf;VfKC z`F)U<{etdq``1lo-C12ad_WW4f_(QdcMei=ySn*2KCav6!J^9kfV;F$&;QwGZ=~M8 zfp=aHdlu#WI3W1!tzHE~D;xr@>z@%KXZpwAan5;=5%3-Hr;YvWQgYtOIn@poT4yf2 z(x;P?a{YvA?I~=&zn(b}M6ncddClXr!Pg@+;Vq$1=wbV(1KmO#4s)V38yef1~uvdGz*NnBCBxx6c?*0nzm< ziC*ps2eGco&%TwhHLaoXhU2Px&XV2?t>b1od-nUy9?7vW>URI;KaXmT{@i$6%$u}3 zIhn69fWw>f>7F#Uu1&I53OBHjZp>&I@8qnwr}oqA1iMp!X1|#J zZDb3|N$rWiij-k==%wT$-x{*Msw(DwZ;IDH{jRkb{d)8JB$82AC(PpP7R^b0cg&4c z!)>GU{+)~Yp-gl!gkYWhCrcr0diE;X+9JOy4RKV>*aFg6Lv71m3(;hmn{;j<11rk+ zfYJb3lRy3L?@U{>rznoGr}KNfoW$JgVitHT?btoc-pg|Vypx<+aQZ~!vlsn;`u4IG z2wkkkS5bfYh<$SVi#h!>?os~v3n54HZTl20PjjC45{W)Xht4MRwnAj$9#*&1n+~P{1C*q zzrDZOdzqiXDdw__11MC-oH9QR=-|m3^RsbkA;37ytRqW5da1%q$MOn@oM#pI(mi&t zUw-{!f{`>00fv96_p)zGWlV=hXNX-_*czoEk6Nsaoh)PI--V*eGD9lVWu1t1N*H(e z0G}ASY{bQZL{G7hS7uB}vDIg+W-E>R%%6d5P_XPe4)ApC6=J0z#8J3-7c@&S)Bs*h zlwweUZQaf3e&(M38Ox=`B7ZgjE6jFxrCF>k0Mc^(7xvWE?SCK-2iNIF`bAFs7be#+ zRV{6Kw2O%*cjSL`=AnqI%V`?qQ_JaSUh|K1t3_rGyXg7&tlrt3;}pf;Hjgc|jE5IJ z=sulJInN3SOv@Fcu+LpVr4Q}?LpP}l7TEB*X`XHuvqp7&=-t)aH$-c@lLelxZpMWCy-a$d|PiF>#Z79pkp+{dht@?GPDffR~O1Ks$s1| zboQnK^KM*c_DvJBTqsq@#%TjH%Xa|VY2eo97wNT91LzZ|CWSVleC?aW-(+Di zc=RpZUOy?oW19s4Z-9Lxh@ykWgbg#=s)6oVr$p-vv8t@vY)PQ@9z7g!V28_t>R;%5 zk1b9pNReg`crV<#S`mR-EsIFP%=?P$O$ASJ>))O;2Nvz*KbS>qRus5L&f8^)641sf zUWFU@VSxE<6uVep`n5>=U}CdLRw4Tn|BF>D;T>|D&}-6*ca5~!4zImQFnLSbz`9-!@2Qn&+*Sx)ZNTgM4(&OrV@Eo&FGvmiJiB>9)fl5TpNt z?=%Tn{hX?e&P94&Ua27Xq0zxfU6C!rl+VW;gEI1}BvE;M4vuh%Gtiy!t1I)HtaLOI z+QdNa;v@0x7_>go!67arWr@&6Uvm(^NkzSawkx2ukg63rVd{dw?8c`ir!Z%TYQ!Ugm03axp%V1KVaJd zn>oHqi>Lb4HPD8eM;WAy=h#KB^bu2d!}}n;w%(zzUnQ4}sy}oHzHfaHoHk|()=2vM z&j9T+C0@-+j1IMpvRjZPbL_iJpR45*$Zsv_AUJnoNq-j}etBvecuB_YYQC?G?|@;5 zov+wZ<9G1lrQcO4g#|%fNQe_|>CLkocc!|g;iV>oWtz5{_0vI+2Gd;wsG&=ZG-Ia1 zd!{`n}KrU?o8rqVc%DTG@C@um+Yud1DZ9xIvs)a!^da!lgCHC#-M>LaBi&Wez)AiNm4G~P*x4_OlHtoz-sfsWf2<&*FC6qzV z)sa(Il9C3=)G2l+<7-)}@sq!SqDiN(qnwrk_+{9i9GzSm)XsdLn?njcM4UFuywrP5 z4Ah)+7kY44f9Sa8_y0g8gn*r=Dj=GJITS1+10TI+jNwCN?AwcpHeNFe@KtzgMKc5R zE_AYHbRBa4i4eW-W&UGXW(+G?grb!El{H-Z!^ejkX7(I3-k`3}ph#}Lx{cVtVIM*4-OJd?zHfKi~pm#=o>A>~7eN%%3=M4SeN=%|M%6 zM#kqJk>AhCK4tyOeW009rg~`(EfF0N?n$pMsvh588t?Z$1Z6o%SpD#jXnDI;{c|nu zY0k{vKj}F|1jmfpo8Rj0R@eDV@I%NM=%}d*{)r)_b6tCEkCgp;j*F6)zo2#HPvkq| zEJGVzl&;2HYxpV7w?vPs%b<<jbTs2>ffu4$G2yt_|Mq+7HzRlj zlU1Z&ej)yAs_cq~#zIPLXddI~UB_ET#eT0%Pz$9Iw4w!%Kk63Tnkt-sEjr1vH)Ubr zaOHn%R6q#Av-_m~ErpT*UZ=t6Ast?|<_fn}WyJ||mH7PYnw*=2pG8mUwa?mTm4dLj zUvefISX26xW$eVeLS{gQm^k#qddAY>CXtzT#$_Q`*Q9Zd(p;qB%^P07n?P`=O~jpU z_Ik~hKMcu4FO+?qaZ33P>C@YEJ8klspM0D6PS%5D~dDMqb+1qRvN)54)}Awh1Z_B>2+gGYlu~n#%%cPLTcTvtN=5+tOvR=$*m*OS`S2s z*UTk3@~U7~u{s>=M0a+s93~~kAe6bTJx_m2QnjuviL@O-NS`#CmI#H>HS_tkb=Gr= zQCI0H4s*iS8{q>xPW+Wf3!svKB4%hK>PYmFb7IM3S;lOiYnJ!Tu8$d)LC?^{tVf6u z2k{YE9Be&SZX9?JEOc)W(K&0N@vXk2*P*1=X{!rBSMPDu_ew*R_PV-Sh0QI@pdVa&+rXB0A3h>Gg4Mo$-NY zm5ygmV(flUN8aLK>j;}@44nJ8<8@Z&4g1Iv8^;iFquu9Ws6Gcd%wX$o!;R8*gCvc= zi`-;M;RiRxsC725+ZF1@AIQUVZvs;ZH@8|6(^Q>4-6ks~etY({S`-N}-X^=0JX&b0 z?R+q|Ag061h;sRws@UB-XLkXAGWq0S?1=yLbl{31^tHZPNM(3@ot;HL4k`%WaEsrM z$J%_KkbHqakB;&soQBSK^vo}-$bvE{Bks>SfBm@VO1S~X{(9XfYI#`w>P3NHZYTQJ z#-YweMRYML!}aI0bxCQPhjzaLWB%-Kz-5s~#T7fhW1UEGj|zmWUOE|m8B_dz7d4`y zI#XLyA;vlLKaf*f>&JqY`ofd7xqKU#d#nHscIewIe_V+AGcR%S-WE0!|f`LU_;g~@3D zi$85ty$r4W`u;vq$}#V1L9+MR+iOlWA`c`!8kiFNZ(JZ>8_96plFz_-AMrfvj$U}P zyUJY@X`}L(8>_xmOaR99(2iHqQ$tZTPA@-%{dtq4k+rxfnD)L~G14}&bO2=g%_aog z0xo4o2m5r3W{@67^4xggB^^+nYM_&aFMo9>2&yx1+7H|6d*D<%E%z~W#7{fe2958T z=@Sa@m%J%#-N6>S#E5oWG*&}pGWePdm%`i_<@T^sh3V$xnbR76A@`Nr?~Mk?Ri0l| z2VnMk@;8vGqfrfXXDba!W4y)jtJMP@{F`(b*!hS}!KC@SM<*{GR!Y{lzvc;^5+bCo z*NN$nV<1|Io|E7~06hhZjFxz*)ac-I;#2*PiCFb0^G@Cs$W8llL@}IkB<*Im;6KXF znrjoQ;K;~@Va6s9c~>IGx2gQ1Pn3Xne9E^J>i;^epRSWBMzItA+NI}23i1oOIL7=C zJ-1lU3vDapWm>GV?|ixYU&Guz&#guc?$Y6bckQ!R8}6SjX~%Y4O_NG|y(pKLb!oJY zr$FQ`L%!)`G93^IUP-JxqyW!do>qNWC2wFqu}M8}R^>Rb{;xV}mrWEgW4>i_Y>ZgD zuyQxb&7U{8%S5nyHJ1JLC(xlsGf(0_P1H6qx<{8a=FRYsT$&oxaEF^s&f}95LWg>` zeHNh+V^@km0iZCs6aJM-kx|m>Gk*`tY)H{fgTmfY*Vf?$WmA9UDbyFvK1eeyA(9Nt zl}=6QJjRMije<%^*K`Hb8JzQJW}s$z8y7ZhxaDdgUjG}1tO@JgTQ~rEH~A_dXJ_OA ze??)2vq(c*!9pgJUxUz-V$~+c3LCFizzqnT<-~d$u$I4KHeYBBvga9(;Mu_&DM`vu z)F!JoU=4Fe(Rx||(6Vc)q!bLw7^^d79-fz7__(?}KFzN-bAs73%I|?0#@Z5v&9_$y z6E3qw<0bU&`Po|Hb0nJC3z+-glGZxKoGc1Y>QFq%gTSo;`}C_{kPE3NmiN6yj+oQ` zgH&7~?mQgwR%`I$jLM zRcs+@hO#c(Y~bIl(X~szL590Gj_TQ@zOv1RuXm*A^^7U`-bAd|4~N5Sd#1GstXxt8 z$JX^}#)(M35J9LBeK;?v)b0N`Iv0N?|NsAwIVU+yn?^zoqjDM>R>*PAGpD6;3=^42 z=;TVt$Ne6f@zUpl zYOo~eJZFaK(#d3FZ z27}uM`hK5^P&%E+GLym;1G<2Bycx9~Lx1`M<0iKCG14O9T(0t5G4QIEyit1&+xO7@ zmaS(Kc4gk?9++kv$gjCD1fQMcffcK3VkCpYFx0{&W_x4LuTpQCM9fI*iCY$ibw~Y# ze-K4KN@>I!?(X?g9p?MU1B}o|(>YyQog^ki+kVAEF2UjaXuFtb6t}*k^bn-HN^(Fi zqy@a{42>027k6%t08<9v?OJdkDLEhv3)^29h-7X_(YQd7ok#|rJHLOQLH2D| zOv<_YO8Eni|HM0{D8JT!N4?97S@Xw-a?I9Q@#N&pp7NKeA#uM{sK@RotQ@uOIN)B8 zqbTu3Upaqp>dMKS)olRyK>m4^fT{Y7tNL<5>w3rdpXg-K+b=|wGTiE(?MMyzsEa%) zyCy&;{9I91IhG!3FnT}fn`LTJ-56Z->hZCndhLd5UpI;ci=Uq;RL%Uikh{Kb(hv3L z8fs^;_3r2IM#^ouTHZYZuj(!3BWww`bFRXtXx^U6g zW)vrZ|>w-gbeKfb3~{7AS$i{jeUSsk>pgUrSn;R9~**>pE?yKfjX z;#egbVTdgNB!ZEnE!?+8T4l}+P-iDKE54xApM%YX z(WhFea_{Hz1VCz9 zEtc5uW*)%X_fX4~G&b;Yp}#yKjT>`Yb+;5U?ilE++^juj7$!+WWHrw*4N{#YfLP(L zD$v$^$3j$L(Z)hzT|$rTGN4PQPQZXxbw73JJbKw1ve@W+CwacgV2Yx!8}j`%&S;VH zIOj~I`oSTa8~js(l3Wv~s zl+;t6GfBmz_vp`&v0Y|5S5@Pw0!p>=Ho*_J|CZxGGsW)7=x9J@NKGjQ(erxPNqI~H zL4XBb4;q)^zKLexTe9r@sw2MFL;prMVCq!u3>4h>9%`hh#NizczZHES^J7v zk?4RqVlZ}uz~V8;K0RHkEw3FJZo3JNz|6;7-eGg zf4FO0^Ui3{vnQ#58Fa$4WskRWoKq9Qz2dOSNNPwtv6hK(P>)wzMr#JfE3A6#9wF2m z-V10@k8rq)C;N|F2i(c2)!$3Em3I}c=#xbqHgr3Eo={D0ei^&{y^vW|*r*Krisz_; z{+fm%&Pb6@&P7FoYQ^k_k~7UminX03J!0%6e>+rkFUa~^CnjNr;{em4Ku4B! zIi}!I+vedtYOCxHr*|!xlND|E72V|YSzi*uiwPwytK?`Drp)hKN8k54|F2N2yfO7m zZT1g6jjvAFdd5&7y>LKkXVb6xl5FZ`;3y+=ZH(7Yh8{VKr|X=ixb1}A{$7$o5jC;Q zPpv7M3o|R|;aa&A-$XBL)s#D?!&Ps9N!=@{%#!{y)*w^wT$+v6UF?NjO5Ag%Ah?{c z)6MJ3l~%1fmMsa3(e4 z44Q|#14+a=6O^n$mFZA+SQtKrxS71G#~-jfXiSCvyKDLP4pd=`)!q&rCeiK=cc7cj zj4jNN?|qa0gmEPDdUIW%3wLcDn?lG3J6=Dn($ZF0C*f+U;2F^He~#^et<4%Q3>J3e zj#&$C&Qu&q>z!iiC$xCBI#nLr*hT#fXG*4CouTbgvEG^5FTtZqSpQ8%rkqC_q><=Y zx2NGl+&HPzPvX%%F)F_SBG}2U{XuuTE^t0RJALRj=9uP1UwK9UO=w(LpKit0j*P|Z zt-~+#o9?G+=F(DCpz6~QgbV2+)Fi)T8{nB(^1fd+v3W__In&g$Dw;MM35ulBiQ1cc z4XYFij6b_aWA67^Ce=-5yMk#_!xt|bxI2SC)J}b^85K}d8U`a1Xq`6fJUMB849Z_j zVaQjZuFolMf_f{=e#>AX4YiEb9f8&#i8D%p{&m0=sn{~#SGTH8yS39~=I+Mr#_}?$ z^g&AKlgL_Fee+YBrQ)Hz3YAJ^#uD83`E(kPRhRzfYp2j91iCJM5oZa{LPe@}f|zY6 zD-JH!W!Q9+eDY8pKnj)vfx;(T)lja+NvlQV6RUCZ+F?Lbe%jAJnru?<;*;GI_%?#t zAa^WFeIoW2y-d$n2E;dObR-3t+_laZ#gR+j1T>{adm*~PNU+hLm@2Wt0tCz*yHG^j z3zc}R(XH8VhwLqnhFFE6IQwg#5m&PwDO3E7CHi{_6`C`>tAzX!iHfLhbZ_c1PA@)n*KCd9rODzJe!=V9K+m_bPVL5(iuCby%)(uuVrl3)@=NR%FGUNs z>>EK9*L+Yk+7i+)-@W5^=_{4~u1JH7kH}IQXOsK)X~_iSh|ND(%wM$j`?C?OZg4pH zTB@Jn8Q0on-`TK-*wI2G=dC*22Hp84o-~5hhi^Ir?mZ~zQ&hL~b)F9P<$0DnZy~Xo z@dnN&+Cd(~h-EKFVg&O3!J_;n9M2BT6_DJEoU1ii-fQk2rFw9D8%R=lql?AYgB+qJ zTYGsb---HS7bf>tzm|>KuKE6>lA4!oM%#_W)7_s=$XXoGEa397_#Ipps^P6d;H{Z5 z|4xGOZyy=**!{CIzb|vm854!lx@>IQo3$ZaFb+h;*V9`LJr2#+qLsQ()2xo9p2lqa z$cGpl{{Y$LlsQI^kU6}+Muvk5FQ??mtqrP;ABM{90l5hqj~as=+X z4y;)2Cq_{7ViH2nJ@QOF5pC`Q=x9C3^6_d;gBZkV^3-!rx=PsgzVnIiE5fN8f!`0S z#MdqpzBfLU{~Xo_UE~HWkH|9525*c&2}=+pP}uNY_w7~+`wyJLG3RMlu! zVTA$fVi&aKt}}d(X)&u-PG@RS=r%UPspso9j6kFwQ$N=@Z~k#*XM!7=j!Nk+iJerzTDxBqmiFK5hIQCoF|eNf=Y=HuA)&?{cQ#@i}PP0k&6M>enJN@?P~UGy~B4%B|a*_e<+YtQxm z|NVHWz;Vx%vi-oGEwjJ>rT3th=&Tl<#Zzo{?|GR2DXTN>uZBc~g-@QO)3>B+q>_GU zahB<964+=2zS;H9_f*!v2st~}{Ip?S_0gxTcfSWt4E#Flc?I=n_l3nbF5oC(e(#PT zlpp`H>9psvU93VlsW7+dzrym%dr!4NF2*%Vi0ZOJORvMk{y=m?u&_mU4=y~l?;~um*QL9zS)tVD=sW{vdU-4Ie zN>RKmAvH|7ulWILzVfNzYcZRI+2Hd(SnmoCyAb*J5PQ*c0JlB*IXk!Xx^5ZRfA82(5!F`nfY?}FSV zOY(bz*egk2%Svmo9kSK$(rmcbU3Y)V4GJmS^y=v2s#k{fL#8CW_fhHjk`gRydQ80O z+DV1rfCp&69ho!(2M{x>=6~mq<8R0h$J1h}6eV7foYwq9Ja5-3=k5pPW1D3{9#AHX zI*8g`km$V>%7IZ|&J-Jj;OTpbWBlQxPCDt31@BB>?flNu5kqz>pdNj5siEX_?TNtZ zeV6N91d;FShSLBA^^ii*hOB~bL=KrB?Ocu|*w5cDGIQg%Q$fiMx3d;DPE1KNCyEow z`uQQ+zFWpRk~$BTz7Q^GfhL1~^+apCM(D0OAiIYk_DU4Wa+}*o#{)D0 zx7kJM$Yjl_QblUm3=8gW7p}xz_BjAK>4`+pFKFMtR^!tto|%6fc?XK`RQ={3c@V*ENbS20!Gz*22_Xcatoe5NP~!Mq zcgIZ0Z)_P)6}{Wy-I9v` zZJYb3MAf~el6cbIEEgP{`Ez1gTTyR6+pC-JqI}I__b*E6N!_rjY$u76#%3OB(%tnN z!`k^Va+jCy#U@H>WE?{T9txCOSpHjKL3l9A$w>TVcN&i%B z7%x>fbB7ai=B!-SxF%`bM^RE%WTf>ZuD$0l0OXmkMaNaWd?{pNcAxYz?ygf=C=gj4YmrxYyG)Tk zU?bxxsh&B>>)PY)g7MHA6 z&v?|S6A!*@yK?pUoxZc5CWXl&C*Ep_<)_}iZ;~mXWu^D;P+r_?_wyq60Vno*fOYI^ zOu!2D?ZLC{x}dp@-lJO^>UNAJwfxPUF@wWnrkShWtVjnGwgSuyCGR4uJF9Q z8@@T@d)qJFw0tkPNt5f^bOIqtvkSUN`VU&lF8@989~zr-IU^oVE`2i7;eC~g-% zYu>K@oiK4*yay8p-2(0Te?Fs2`JBc+LY|7C)ee2iSo^1%fD$gu)t zV*l&7q%YhPJyM%{wc3||jqN@I>U4C9i^+(YIDYfi-Q(VEb*!`|1^_~;^S%{kp`Cv` zKQQ<0!Rs}~loNRbP*zGkBa+i(b_>_OU=RJ?KV*ONQQiiu@SdkFo_myqWw$wbrqr{F z?-YecQdOtN4$nCBTVKWUo4>xvm_7FjPytMgMt|24??E+Uo4r%_;bPZ`4x3MHcYLdi zo@Lw0UJTf8J60Rl@nu|DxOgJmq>;1=#B4M+%@=EL6;cxrcb*tNc&yaT>Q>FcHnj$g z%?H+Ah?fcyVZLu=jI^e1oJb9Y#@cEX_ajGg?jo9B8zLGP|YwJcJWYWIEcKB9fsa4KY-X8VR2!Al|j8oEO z;`v7-sZYaIj(n9QL`Q7by^pqDWXPq`4}<%~NM28+xn#c0EPbE8g3&7QgMl91KFg^a z7x5Z!&^aYtH>NMzcyDeZI++_$ZITFWxKRpejZbcfc@9D~un3)0tI`FkpWAZ(&SYo5 zMqwaX&ZUpsZ^FNkm?0@qZGBmpXuzRuEt5(kc`XdM-JJ0enQ@uExT89L?W5-RH!@^cE0(#W{Z6`oEBp@k(IMgAmf^2b7_O3`Fuao z?}GSrxo~z5_pg4l{%)GEHPF{D=m!#J$75W>K*=MEI13>=%hb(xs#2V&;$6Phwxx`4YNTcHyIv}HcRN5G%hxJ>oa>LGK~3$ZhM6#4`yDJ`OIs13oC)(d+p*) z(9494BF{b_?S(BP{*oPGHy!GES>L3S!`gD*cUq6HW7Y_&i7 zWWz`4CwBWhT{2^;<~Z(B#JJSlG2eHo9#PD!h8@d3+xe>0;NerrrpdbQxUv36Ug)_! z1drgkLba#m@cM%E%Px=(_Hw@xh$4rYb=sfp8XX=ek+65vZ;hp|x*$?Gg&{^@48vmW zRc_F1gz)b}CeF_j)ey^<_JqyUxuuK{7t2{mP!kEVhu9k5$b657xZ{{&FWrCCLR%N} z$xDQj-aoQg3zM)UJ73Vvz4Dq2KbhPAW$aPesHO-l<6h#4t0s<&E%=e`#_OCW3ni;p z$NOH6FvHy>t$}iiUqC!jv_t2~+2eu%y}g`z4bh{mitJ;hYSCV?CRq_`#Fl!hV7M1T z@SpD_xCazT3Xvzj+Sc|hVTclOt#5XT5F!AE&)I67rVa?s_dtE4+{^o-9ToO2%RYt| z^9auIBK)WY*Kng3>0>QCfsk#20>*K(SaGEBO{H`{P3sBLSPgYTj!N4&LR%M;uTNUT!7ZyH`01vd7n~ToEd0wTw{_o)ZI{Dbb`9w5TV&r zc_Tr3*wQaC2WaZri>V{BMhkjr223BpwZXQ0W{Iy*1jAtupNU;b;^zwUKL*qcGC!0i zSrka><`YKDkEH0Gc1X&_{yS#iO{2CeHJ<0WM$)6GfsS zQZioZm8t3fN1kcONdWP!`ay}+Wrn_Quv!ug(7)W4fWoAyjOT}C$$(RStJR_695muz-iEs zalz!Jnb~ONa1TJTr&jM_FP2zWRAb7IhEc0tdEc9Fc%+`p3A|iiW1`^U(AV(0utW&@Zo^m7o;kEHgviTJU-ZPZX)-&9gS zf1WXD0e?HW7BT*PGR~oJ?Tg1-T-|STP2$Ya|M3bpRk3U5WqPP_yzjN(2s8^If z3H#vq`u(jT`l=B6^Y=bCbIGf;Rzvgnm$uG=i&dfHGM`n%kMq=l;>sE|XR_S-N#YxN$L3l&7F3ny1*G;XE7Fm3L=IB-( zWx8wRKc8!u%X+HeIV^@!cfG#6ZY`l9Yay&NsynY^o?&w>0DM^L`_LKp;M=*qr{>$j zN029rlSotVTX9kD@XtF*_$$?|iDTCswZMX_+bfb98?@G1^DG|H z>Cl4bE;VY>ztZYRvpL1U+`0eJ$fI3B=X;@B9B=zzuJ;H@fS-NiY5V)m@Gf^R4VcOR{&r%eX zNM-(Oxg9bx%`(h6tI+!pwKMVR;=$8p)UZM((Rn%?Wc>M};Dhn@Hs5`4wh_yc)dS~a z@8xF$n62c|bzNQL0d1L^{o2tIru1w6fZ%8ap>^|0E%+hZ#Lrr;vmR}7&Bfx>l~!n( zO83!ig<;{y6##Lbz7I3v05%zeT~h+!wL1C5o5oaSY}x%-Dx{S9lmyUVy|Jc$N1 zCk}d#dOI0gNEho)Rw-l{Q<`roCe~&9peY+)z1ZEu_dp&{u==1}mY$>Bhng8@@-IaEwiZtF|<6 zj6En8+@ypaw&4fRjA;zPKMzlAVW^NDqA&Aum(*4*bYq6s5R_QK_Ze2vgZ`~Er$*L7 zs$R>6K@_fIxLg@N((OCSq!XIy_5p%%@yR23Qr14(>gL?$xMeU$$)~pJs~dZX zK~!yn4^;`-HXEvA;omu@tTXxNVAJlfd>CjWkZ^r~bphFl0PTT{tT<^?CIp|fhVIB7p-m zHGQm^td}14y*B4>T|5vVP&q~%8jJ|p+lta{J)y8MmMO2rK3+BslkbBV5r~zNYI#_Z zWy-Ky3qJ^-7D^X)mWVO;%C->2#OylJvZki}0 zwPpHwcDEx~i*~JPMSl07)Dl{KB3mcyQY8Cw_-QjdEyvY9@#}1ynv-=ne$l%{cKb`v zHv9FA2(s!S%zMN$^;}rh;ZLKpCg`QHS|=!=TstxoU~alL$#XC@>bZ=F3#?aK5JGn* zvrNQ;Hu&L=KS4{y{+hQCPHfz0#M&z2qqCOa3cjc7XxV&aHiZ!^GT9Ie%prYibdDn= zw1tJf0D|{x3Yb&R5@kiwbE`&bFyg*l{f5U&G`^xR&D%AW;oqEoEfezNOvfsVL>v8&TG;KUSOVwDb2aI!CEAp`2l8%-S_%Ut?8RS_A1{_PN(p>!kjDd9s6ToEsa{ zPDAmcc+VS+9iE8zYmog#WfL2|OccEdsE}ks(B5=?vWZ*yEs09JA(_&)+P+w-DYms5 zfOV>}*Mu&+70t>6iZSu)V769oFP3&ueo+6=a4KF0%q(rv)+pvXYAms1W&TQ?N$noN zCR2el?FU^ouGpn59>g^#P4|+|gfR^f%M{E#ohV@);FJT06YHmz_?)K`8mFc?i@TJW zrps>MelGjdjV|J#&2K5#vyLR-Nca(e4?hZ#Y_%AeiFdFt$fo=YWEszG)rW{{)ktxQ zK8tzlSoyNxa{82NhzXefv3Qr_0gZG&d^jE?;-d?~*I4b*2(2hYS^H8qyq-$&ly*U2 zAPmCX!_xOAWFN>0+cMp7W>$9~xiN0XB!F?gvF=lZC*(Rw&SgIPP@3hSHUT*s);Q7@Abx<#^}CiQQ$I_ zhe@_tB1ee#Zmb23722!&w_?JMmIiC|V&kzxgHoawaoOsnVXuU!niBS)38s9__2UNL zrK?)G<661O*dDC!Jgdi1U#h$6qYhMuvm&RcwPmetVCw{}BV;)g6faND*A)j1%)NOr zE4pc=ew`h9y6cUh2*A%+UKbhw`P-ezlY&6p9_(*fD-Wsn^d}w(Xqm!(Ve6@k)%c#2 zEhH|P;_M7jZT4YaM^@*(qS9w)f>6V$svSz%!2k7zc$fE-PD@3Zyj%(#B>}(gywWXLX;I4zS`GNa>sVw z)W*WTvq50S_8JzGTqp7v1wO_`3MJDdE(6~pl9+6bZtaaP9&?4>)i@)Y-m3)914(nT z>8m>v51=C+yN?mm$J6v+cR$JsQT_AmfO}4wwbQK3pTbsyV0dU+_(79+$$3jJ-?Zi8 zFSxpIo;>&x^iQ-@Q-+gAbT$YQ-e`h&QVTQ7z5LQpwD_m53moV#AujfTbf+dcuJIsi zfw@lK$4kcO9U10;$&|u_NLU{PH)Gy@n>0L{02rcTyY@!43ndkmlKZ1Bw8 zMYxX*R9W7joA)@9S!jY5(u?DJ2@R^ZuByf4)(m{qeJ@hc-b40P#qA;38fn3*3k+Qi z+trASB1Lz@qVsj1yT~Veva?26EE0$AicUT*$z-s&g_A}cO|cwd21F2(bac;(U$(Xmk@ zid&zrRRNu^Up#o<{Y~GH{n{6Ili=-|2js~bA4qTI5Vo3@slTUh!Wf@FmFn}xG1W)ty&QBu z^5Q|?Uqtj?kYJ8P3C|RLaQ3G6`Tk|QimlrA{#wn&nnMLWDK?aI#Ut4EW=3MI)aJ}X zoC5Q;yeY-u__F`ZVN1NDp#tB0T`Z~`X;I<~5cJS+Uv`ed82e#}@{>oWb!nx^z*ESY zX^B7WT_Wo=R-N2g@6<13JAPeAtf|qmJ^&wwIb#sZIkXAo<}ijYIVc*^E6O@PQf~P$Z9O573>}n4!j@N~#r&M3S5F7UDEIZGkG{$AqX%9fH~%-ggyr|;MuLR))yu=Lyy4nfmpzWPAH&OEoi z=(gh@pA3-^^@%I*Kc#*XC^GbpUn zOrdynb*u_tT%sUK*y%1c^l-A-Zq3mIX_#=z8fRVBC!`T`%eJ{Q=*7XOS0!#n~s*_i^mV019u)_ zNT#yJ(-10v1slMv{AdT_%ws|M1opvU@{mo0_L3PoNp$0uF3)w}gmS1S;USEVKOs7A zfxQzD#`E!8#z_cy(St7MgTi3!BfW$gcDAZ!(OIyebUG68j9xHr8!tQ{#eE)*j5%!t> z2q!VsOP3wAjD{2n3tdcLu}-3FDN6yVz`<=dk(r^|UpQ73)v@enD;8Q<;v)(jXM{Ft z2dW`Zf^grT1qx%_n2MZBjm8w&05!x?=?4frH*>5wuT``bz`Ruh-g|%1O}7ZihlHU< zP6QYj7A)KVD)>>qmfeznE@O{W!}6@{mH0Ltl8}1qU|K2j6Ifl}xTwbj;r;}#7mo;j zUUaf&U$ptAr&wr#aI?-?s&DQ$UJ-<@*PgF;PPkkb-s4wX=%u{CIA4E)Y?F_v(-haq zpQ%c2xAxtHj$p%T)%3R{sAFXze7C|4kMLiQ@O|ZK26WuPDkI=)$WGShIeCojD>ix9 zz6Gf@LcHG$45pMA6Qyw9@x1Nu`(uA}(Z)sF5lDN6PmN3PBk}okudpcPE=qcz?1W^>a@BQH&?^ttgAHf+S$G z$?KM5f1AWW$=k@ZbA33|UwEBAv;^{wjQ?I^!J%oe_SW){iTm-W-?OQ59|();e>*)c zbMF#M(}Cz(p6YdUr#a9he>Z|1jJ&z-#qk(R+2Vv|F9ZkN#lF4Yh6m^OR443`Grs{ApGo89gNQ!Q8*cw?5^!a8pqMd%?9!J8M zb|Yx|VN{fZdoKJd@o_@x#I<#V+fSC8cIXD)#{#f@R9pW(N&DvV&B_H>+3ulNB6|uFq*4(nc23O0#=1l zPpRowuZ5s4i46Jgct3;t#RkRLy}k`UQ!w+hmJ_W8(~@l?(n%JdS=|V2TgyT;}Tg4M*LG zo~^E-csY`BxtLYCeWM`QGVb;^n3wdts*TkWW7ehK;-^ffFMaVQT(nm)54+-U@>)%zzNIQsgrLzbA6HP6?4F~o88M+*`a{TZEw)ws(BU};gUS-! z{LH`yI?}w{d$tYzePVR~;|@nlD({ipl0f5b6(l;$p-@*X`Z!gH^cjM!+5oSNy`udg zt6qi0jvIiG+@&(jdl@I*x9nVo)bD~=clOx%KSk(x_tlFD?8C=mT%|buMaf((4@u>3 z)fj~H6eF~`6aFS#q3M3(;v4P640-ZbeTlEk@tUfbMW|`tzSd5g+XuoiOf6-&el@ z>FfIsR3=|@;DwYoS)erkVqDNz$7kGi!?T3^ds>u(IVMZ+*ZbKXAT72_a~?TPjYR2b zZ_xk>IdxGIE?{2d?1>EN-lGC~cndA?KbTghUlCl9bfWmJqD!wP*99g<4TC4L3U535 zIQ(zp-_j;*wDe;YQo}>*EjP!w=HNTbsKl*lH<@ux1{5^Mr4T|?RoQ?GUL8 z2j{6Dw3paNir+%2Vtd&KvP8zXHZ9c2tQ~x;$QDma-GkIsQ+D0Wms7>7ykRY-k6I2K zE?3_ko$WDa8fe-B_ScV&rjBmS1)h+ACS<+YrAUZNvDk)P(&z#swNREOc$_9=AB$dg z*K@ZjpN{V4j6n2H_uPKK7^>m;sI13Fg{w*sZL(;kA|VxL7?Ngl*D?D40UEdH>v|Lv zR~h&s<%-K-_`%i*(IWGu50?2x#mrL1&FW^ovlrN#QW&DBGwYDgfV9%BK2G`9)bU-v z1s;EV9l^Sr@s+^2?o~}?uX?dzL6M!n0Uc-++|Oc8WO3gWY6qBXOlAYOwim$A#p;S}FIJA3M9n_D zoo4E1-4&y)I+s3#x9L!3&|*Ah+=BhI<1GBB zN7DAN-HJWtVu9=oA*RiCvEJzjbO?Pn^Efl3jb(ClUsI~@6-$9)n>!NNwBfh!y*fy9 zKb&kWI2t@cIIgF*yeWGS*f_juw`L~Sk2xEqG`uQLu^z(-BG4zqHoeTQW1@=OihW;2 zcE+{A^h=hs$FqRvVTbbVU#kv}(kmW>hnanhPZ>ed4=#{#(mP~#Bc#GNQ~IrBz?z`1 z#q-b}fmN1<4*%!g$3MP!CgTs@T+@w`7#_y~Z{i%^gao>*h%aZ^;6wmQy>zR=i{>aO^D&|SpO8txmJv%SUpwPs>UsXW*`EH!@v z)&f+2#PG4OUJr+8Ym_d9`f?A^Pv8!_roh;=O;cF)&+8brVSh`u_6`Xc36OB^1^n#! zHHe*;w#)BpT|=F)hTU421HDjW!oCpZ9mH%>3Xp$mCZxZu|B=(* zu(1I{QuVNaAI0p(y}r3Q;Nhi3r2}hYNr-{ouAe>+l=NSX{`N&DLx?ys)ffGM60PWP z=J7Vl>31MRk&J6k^&`9c@+VMCuzXGy~N0n^4~59Ug!z7u7t zA6-QE-wQ+4w4|(gZi*5k#|U!M_cs?3bft62E}WE{lpMW)2#~G?_BdtzO{xHTgLE)eCZNfFJFu8 z{(v4N8>Zawye~@!VGlrhJ!B9LAi0u+k^+Qm=&f@=sHmk>POEv>A=7inaL!guDU3TI zo-=tg6==by8GG7`$s`T5Py1O`bAeMZk+_T7*qJ=%Jk-8V$E zvr`ySW>NHDD+U>+9tf!+ySy}XSM55gC&n=~PXSv&4dr-3(a=@Gkuh$cguBDd`KUp< z2zB!=vEskN2TV!gR2i++(M!$)QRJ9lZ|sJjqj$n*2_wOHaA_x<61 zt564G6nCF7Tm6&v5Rxx3TM|}-%`}VChujX1q*m_xK7`%RY(c$?GWi6sfUKJ}>mBFl zWeOBN|9uzA+}$lN10lQVxw~)imWHXLZXaAQM-4;T>08PQe)qwKfrJLbSniDJC(D1WpFiTy9Stj1GKh)Q_~UUvC8Yp{IJ6T*Q9!NxUR9qfR8=uaTq1L68um(Ad`7>bP2WUtNuZ3 z1ZYB5+>Q^uSi6j+E$DmSPgdgDwPzMo=C(!03_ zt}`HiR_&|+%TJB8Ji9`R9Y_->qL!BZG_OM?fTb*H<_0A6NmAE&QJyv$Oi9pRrnD*s z(-1{UTJj(hC#2YmC}hP?8PAG_SJ&Y?Ua$9>vVXr^tjC%lUfeC)QO*9#6)C=)ypxdf z$@F0n=5kEfi=72k{?oY^@pGBeJARTmIjZ5z`6s_$&=(##*6q8nUf!XWeJr?+|A5Z+ za0z7osg4F+;EuOOM&IIIjw&($7ohiJM|~)p5$^oyi3|1vM7NE}%H5u`&a8rQ)ju-z zy6ix5p>J72w3&DyXz_kypKQDV!KZr*lAq8`iw+p}w98`6{T5tWf@pmsn)V_Uv5SU< zP8fY5l;gz^bZt1~%0`-n-qI|Qxh-qcvP}TZGxVau1i@bZW{GD1d5!LV%eOdp40{`_ zJl@ZV@up-_QdXV!VD)0|W%ruR=~v)$$~7O9G^CklSbAxGuivHOge^JF4?#?d=9gH8 z(l_EA5x;UGk?P0U7KQ2|THJllfpw`7 zbvx8sn6S5AZjZJ9s1sQaWSIaJ^Q2r#U6XMr$se1?tZq(xRXmxu?H-QmSN>w8bTTy{ zTIGdIj1idUziD)t%R8KkZ%e!A4Aj}fe{d{RDs8z>tDDasTpkK^u>~_@42>lrdS%q} zwVb@D*;K*fpR0kdJqytFqHeSnUi_gi=v7ZexUbQ_8rB~EQLn@NBN*a8TCNum^;5DtLUwNB^;d+=- zz3|&#PNmcDrIcHbDN)yysU2$iAk;*9_qQaODJ(EhfLamzexZ1JKqtKq z(;N0VX7tjr`9uNUL4TLt9QVsQCT3WwkFW6L=C_7sV}G9lCqfSof?Q1WZd`t*H9J?L zFa>PI{JnF#dLc{iRX6P3i9hT(a0VXE+ygM^58^~dB%ZwK=D%U`EGfiKkIE#)$T(S} z1;K&zWr0s=Mlo~S+^l^OxNtdHq#_5Aj_+Ja%%kypL3UNuiIPl`j~JSzkx7w`2$LGN zS@teVNAU^4A}jjsuwnganVMOntPw0FJe7@u>!V5li1Flo{LM^9BTX#`+cJmZh z=pq{Z*;D|ZD!tG+X!4o?z4b-?`rJ9CGT7OrD=3+O?e9BN4c#Wgloea(uoL!Io3yM) zW7aj`it_i|BngTCbz`i}b#fjQCN|_Iqlq?Q3HMix~+(LK%s5_^D`Nf*NhC53Y z>Qo;iz&cj{A4TWl&*cC9@i7^4$f?i9FeVI@V{MpY7&*>JQVBUH+axCCP%6zFhP2iY zb3Rpso-f}=8FP;!!t3oV4MGe{ z>8y4{zT#y5-os>XxtvC=f?-_C$Ec-G62IyQjJ$*zN%6b4T8FNmrzBV^Fsvf740r&c zS>M=nvU30Mk+UDk9-A%{0Xiex))VW6tFL{HoNRht#Vql=$15?Z?uwE&dDlnFJ zt0jeB<tayVI(*o@e zl*nTT2VCte+>iCL7TEvt%lOuS3()A6tWt{Xv7hUzuESyt3-{e0yh1toyg`ZV;ze2a zE^^M?%J@b1v8m5-Lsq9Whn-j_1cda1A*Ji-B#7W!(+7YU7=EO>ynX+VC*QrTPP{Oc zbb6jKq_4WPxNBZhp(f_GZ#QGd$+-D=UW>ygtYQ1pawPzEy<=>7FibNbfpFWp^G^+i zE6G$*X69V+npJajq!~5oMv@MLlB&ZgIhUXJ{kq)71%;EaF@d9eg`ntf<#eXZ$r>2X zBHP7bB$dCp_JbduHI);*c%cru6p>pzmeaYoC&4-Cl;%3!W$4@`7qr-~%eKY+dx!-) zJ}$2AIYmP3FiMa>(fo2Q@uA_9*0VO5n1EyOzVbWI;)Urj@z>x#Qp2_ttfo#2@8+4U`B@IO1br!Q z0uMKTF(aV4mTdOvf6J2S+UO6Qi(10tFHOw7@VM0z7K}$GJ@>}G1j#qw{$|=5;w72( zXVrHJYD0_V+UPf78y6(WZE)(&MO9J3oOGyML80}rn>VW88);rsW3ImHHtzi5A6|4} zm{9U5L$K%%YXK16Kh%~;F1d6bT4Hk;pYnt`;dTIHBiL`(<8wn20bF z|Ff1_#cC^3-}mr4(|oe(_(QA7D4;WNf0#P@{)}F<@xR+bGzvi9ap zjp+3UNnq?MM!&NqEOfdA5abZ2c0~lWh_{!+WtLie_nkSlGNA2%52o= z4Om+Yh}^wZ)io6?8N2iUo2$nqH{jLSD30Zr_z9F(a^ve8u!cviz~rn1<6Tl|18$Cike#=yj%DBRG8;Hd?_q^bjEAh2^hoI$qAnpMpWa_xIu-eGc7)6Jv?j9sh z76B&we;RU>yUd1IsMFPC|Iz#yyijH4k=h$yfbDp{LPFWE0=nbVtNjrN9mY`|mP<`( zsQ(1AM11kE(!O^kaKDGr{W`UX@nW;6CBxovxDU~5W3YBwO>ML!+dQcnXe(XNLKUNs zh^kwA-^0K;_m1h*JL}2Iop2fC#ne{eJ(7b?rf=q`EUs9Z)%M%s`OrGNScbbw1Y5d4 z=!S)h*zf^)L;F&TKb4wW{C`kV!L%qv=C9>yDIiL{?Vx^5Q_#tq#3Lun1&OusH93WIu&WsWauMk#+{OJ_FDmMXao=|AhLK62gqSzL5^pY z5T4WcL3+?;#o}w<J1y{>e!(2g9{f{)pr+>B370j2AnU3#nkzft zA+n*RoP0Np=ok9?axF`hX;;*$_br;pGWnmNgI{K->GHeuh`jSLWscbt6)jU}1s6<9QiWP0G!nWh#048|=51Sc522D#Nc7xLp6z%x!i@_X#soi_PQE`Z3w@kf~lP8I%WC3WXk;b$i9qM@faZD z?Sm`jOQOPFZgRlf7e(H{|1HtK>)Q1Ju{Su2;d7#HIMRvapmi8h z0U*NB`YrnHq_!kIk3OM5t-%y=VY%^Q-m8U`FCBxz-}L;g6%!le9y=~*xaci2wPc%<_$)h}mhLGt;eII+$smtseB?}GBK%enO8-n?5 zuy1eZ$)|MRQ|@~Yq36NB>j#4s*k@OjZk*G#`;>pVjsHRJLyBvTzIjX&&z`(1s|)1i=EFZR#L7TTKwZfA;1aCg%lh zDxdhPE|69F=|S0$kG-wxI^(iR5_uOMvwm|uRGN4C<)gEquBT#Lp9VmAzWyxxm8N8+ zEU#Bv82ZGXNBQ2Cu+SLS0Xav{U|+g8P&V{SjOBacUE<6fhHWtYCIvWk$$M8l_95`F z=|l^T1FYJ#>i+d4Bd^!1p1+)Aa)(4d^eo1hgY@H|!xEeJr8`^ock2!>l@232>@)8V|i!yyu6Y7KN2zybs$m~Vr~BPsKXKGSNn4kY(Q57i;?rjyhIMx5s>1Hy zyH2Vy+rTtQRSmB8pG7RUaB!f>;!ujoL5UA(G0CHv6EY7tb(IP7Muo=?x&5Q##VSSx zi}kziZgPJm)yUti4Foh3Jug5-PH>s%%c#I3vLJoN%`QtM9q=}Wi3Af>V0B%Bv9yLE z2ewc!D#mYfTie;BOtRSHw{(pO(MtjCm&t^3F!dJR^M2G*{JN2>4+!b6*{L6~IU zhv{yOvpx)jfA6;j#jlXs+7TcIsfp^Vvj3K0AK`OL)$`=cA*%6-p)+*E0z?i|Ni7!bD3gF)oxmP0i(0GBm8Kz(Zk4MZO6|XkeQq1 zKGTY|+ z;^j7uiyM+r^2y?+6AI0>DAoQh?gE@pUZDPnU!&A@K2*p@n^+slQ$aLNU`h`U{>&Yg@bF>hNQHA5%~= zjp_Yc)PFN8QFK!F@youirao!Kt}!JR5%(W(mK(WX#UXUVt@ut6ZwX%nN>phyd+IYk zF-V8BxKrT?5O>zDp%E0jR%wt3+ipJ5cU#gLCZE##*MH)b$@RREPH&j^!{OW5JXPYc zsFBKtHX{KCjZ8m!MURD6e(`fLGe4D^x4$scoFP3Znxspxn10Wx{@SuDmc|Fd@=ZQk z)7lkBqCa+7@c+$>cx6>J27;D=rbv|=UPMT(^ zX6@W5i$Sh>%__JrojcE_z8^wP^~5?|zJBjr#zLoI2wNlcoZ8eF!AtJkmag_FR&!-Y1Jx0ZbR1C3=s)LJVGpf8^in0U$>8?P)0v0ex{std4G(}J zG=Umg6VRW)^KmZDZ^qQ|$>Wx;$y|Ps8*Tg6wdc#%?-oo}l=z5YR0*%_SNXLk=k`bq zqkYfaeEH(@=M3FQK(X$E?FcR&4yW_<9?juNpwmf@*7>JRNHu7 z`$}iO8eWKxX_ZJreIUiMaNP_=JB=7$l*UJ%O+Uee>|h%YaN_CjCV8^12#6IHn}Q&^I;-y2~@+9vvRF2ffF94DjR2* zh#2LIb<0OB68%CHb50v;PVASx>DF&%PxdR8Au?!==G1_5+K2o@9hQp}spHH@bhTlj zt455Hd0astI3O$@059txRx}L5CH9!|8I%U znf0~=<=XP*;k46z0W%)P-C3Ta27lX^gZ^zH*3QE8$XSIdnvlu*x2J|}vX9R`q8Fw? z+6hA!C0GjNQ-9T^)!e_3hgxnFyPj=zJ0!27bxGjhgux(ZSTB~jP>p`mbZ};DQ>pfk zpI&xW(HxL)quQud*RLp3N+*{aGHWJp+ZI2Fh5%!zLpwm#$vhARf`udl%osmuFmsC? z3FW|d_{L{{@)js~==1)YD|rrH_F@B8{DRgH`5qBw5L1zo{@v#o6#lneX)qMc`_E6) z#V+XPXb2|!LBU)X;Vp10fh#X+c%mq?`I}7+SXAbWE;6{!#4ZQ3VGa z+4$<_0Knk?fugvWRbTb{C!h=LirKNZ-JpvNkA)y|;QFiM>3{Tz*t&Zzh3+Iwtazb*M61yr_iGGDRd=l8iRTZvI}iIt&5jq&QG> z?%=O}x33!OP@Q>3VVWQjS&Wqc7wWbpW%ol6ti`HXX{Jwf&0jEfJ}6>Cy1KEKd#bIn z1=2)9w^tr|LMb=)1_TYJ-($Ywuy|-Vo!=HGNLOg`J@TKtQNZg2)8qaWrO#1sTAEJh zfn?ag;TJWn5&Md@STd2`kAsHRXV-lB-l!I;KWpj{2@-f75L>P&3}eATY`saKs999w=LFDT#GKr0*nR0_N+>m>zT|d zulx5Q0znQZ#J`OqT>^10kc`>$J5_Ll6R`gu()00K3A>IoeQ|lu7_N9LkBx3L_ktpK z`1#oAs$J0#Xn(+x=gA_tzw4mwL}RMb^imkDZCzgj$SL272Ubu6+lGK?%>u)IAZGuf z@~~YR-g)*?u$}u@Uiz+x$}`uoA2)2xy$p88nD?VAz?j;C4Wh`eLGI}UH6#L}QJ=iX z`BvZGYq1U7*T8GFFqoEHx7VIH>`%?K5`3)8^67o(it$_Ze@%-S45o%wgd++*#OinL zr|xD6*2>`v030IO<6G6y5TIsaN{-XtOwv@s^Fg1JRYzj~YVWN-({UjZ3Dfwuy+_8Z z!3c>F_#BI1H7rOO@1K_3_0=BypvAnqC$+mvzo;bCOYD<1{^aa`rV)jXfrYrWAO7NA zWLEnY^pZu?LG$5;;}h>f@kbvRQ#Nyw(VSY}uL<7Rx=XK^n_SAO$H0{8LoGGexh*i1IHkf| zq<)QFqt2(HDruD!6(2OjC_?5%i^fWf#HM4b996(}x^gXGVeiPd88S-m?u zQzy;{_Z1(xC~ALl-nVxLI8f_lm4}e+=-e03)i*tnR;H}w{00N8f}2}dr-QCB3^#~a zE>h}RrJuSISvMPf-Lz}>RJ4uO^KLn0;B~)rCI7QzC zuB~4L8nN1{l93)T+M9c`Y3S|RY7o(USG|coGH;-5!MCGe$M;NiWX$=;5Z!Np%gQk?04+Dw%On-;pM3ntqpt1a&ozF4*)WR(x=-r6i{GJxc)o`3^y%79@w z2<+i+P0kx&K(oJXHB6tNmvE3ejJ1b0-?=J!u=MXWZ+C5EX7Jd@82dgGe)&bh8j_}_ z&ow67q{_THGi>;k?EC6v%!ipy=d*Jrms!QmoqFud(6MX!H7c}prI_!>%wNAQ$OgPa zdmT|#vUvHnxLv@1WwG#dQLR}^)$m`}e+}Eh>0DF1m{663+00_aT4(<;^xv02{%gs@ zXWpqYM1P2@hB>g`4CC9oB-VJA7vc1f5hz^ z{+@l+$2v>t)Cp-fUeE)5GGQ^U{o*(+3wLwCE5>w#)oz|xD-C22I4c=n$HoZo;oJ4d zEbrqo%;lm=V&EhML7vPYgmrcDm=D+df_k-^Pp!K48|SXs4zcbN>b=Kar3*uj{k*IR)hx$lnI?%(ac}| z#bLA<^r$LCMfm*J#PlvSF9@XB6Vr7G9#ICkHnb0&yoEJfOzVj$GL~+FK4!(Dw9V|x z|Ef%Zw3?3Q?{Y%S#_A2lg|gD>)(nr_Wu}`l={cFvd*{qHOhDwJ)!@T7o;n#fE%s~g zo&}#o#~C-+A=TOmsymERI_rkzCPB}1FKF29O!ReI4|TmW_DZo?t~_RTv@37H%hP?q zl-~9kPEBm7thkI;c4_7w;u+I&2V5TS!-#&*D9EKV{~2CTpfi+jh}<#2Y^D1f)B!;#EN_ zh?NI5TqS_CUe`MKRcftZ?rvLTGq#Se9WX#rK&r%z$U~6Nf+Vj6D^d&cf}qXjT(-VJ z!iyI7llAiEKPbLw#(O{N0g=Q-ui$hMUcuWtNTFh$wUC{;Q=pkT$_azj6mfV#juoAQ z!$$H;DZnHRe`2`pD*0WL^?y)(OO=AJUMZ@F9#?in57~s}1x3iPAVDeeC>Ne{UE$3;&3~On^KEwygvd%wKV>Be#1tOY;3<@IXqYEkjn(2t72 zYZ)41Ej9@x?=IVk51K}H-SNc9&b^CT+?-D6#O$l0%U|=Jv+6-GHt`M+{7S0OXJ6=t z7tY$d*h}n$W;=BQbY^A9&*jXQVu-KUSa1Bn=}YdlyG=eA>W8ecxEVfAKdpeiqSon0 z89Ul1>LiBRScYm{R=>OIuQwY8399}()CJMqZUA`IH+u~^nGWzwqnLp+ zhGHyN=vJeN18l3Nmo&MN4WS7qAJ%z##-N9)6Q6<^j6=dEeCGQIsu^>+$u-|pbZV~- zJ@D48?n`j8rQAUO&RH}y1&Mc-^50n569o%tJN8L`=Tlo z_K||mF}7CVVPj@NT_7#@DtVmNwR57$pCBRQWn-6rf9TS^2OM-$r#1lSJ=Spp1YjE` z0qk|R(#hk72rye^8>({bP$lO1)lAdL@+dDiu4)3x4p`*YoLIFO=?>;8hP5AfE+x!) zI!fzYsEFd(5T@_$IR~V6IW+8&TJta<^Q(?H->jNVi}Ad!au;X|@4JY5TMW7NA8pGC zs|!i4zT>`V=oKwwsABqY4>rehs)u!Ca4PKX&?x~ISLg}aQ)q?1Vd?=L+)xO5 zrVgCu4SRu~*#VCP{k@#r#!v`^(p3A=XWHd>Y5agaAaJnjR~1FymVC1F7l|VZ zKc*mc9}kj#u^h=mpbevz-5D3OEWTmtrxpX8-<~*GvR?WHK?1>gn?qfq;Scn67nj)u zw`>V4u4E-Biy3M8*^wFA6`E&-Kle5-$D~R#4Y$BL)WAyCuMm0sbdkoaa#SXR3-VJ$ z0P(8nSeRLW4=DkS?X=6)KChckdi|?%{C}V(-_Mwts&D|mj;j*x{!g=!QudsF7J=Dc zNcpBA_N^idTM?FPW#(O0mwSMRmVw zSl6-9*S@}n)PC6+O9cUlU&5j$4jX-VFK2LdyayA!M_%65=1R~p&>}T_1N$de0~D+D zRM?_{Vh^ssWh6fd;k5giAS~ru)j%WS_C;)JD03eKspSDEK~ceQ#YyTKM!3G}7X$dTFU0p5sO!$p zU--t3i^L4OF~gIp_el5e{qT=w0fgGc(JXoulKAa6itr!+CPYgzArcW~4#9a*NQ9;} z1s`&ux6aZSU7_ zxLGpUV{!)?9go79i{CAN&|l^6KddPLbomzteaOd4Von^-zK4&dnwEKN23&x8u|9mm z+gi6`cvDmBwdI0yi}rfz-d-*ab^1MR8|y23xBNwZNxpY3=rfNrmSf(xnn>3Y!s_Pv zo(3fz8P_yw!N`{P0XGjueLo#GQBE&BJfBV+h@EX*R1R{PPg~-NPJv+?D=xxp$aV{9 zG-9)@_U@m2Al=vUwqJwncUQZG2~A(@YL-75K?72fH~Z6zZHxP4r2w;_?_9s&bL7!$ zm#;IVeax9a*&51W%2K}9=d7`|r`ueWDJ8cu&D?e<6Djb=SBf#@Ldy7Y@(Akjeo2Gn zMm;lZy&|w<=(El*RNj{Wvm*Q3JX%g%Xp(0My6rJv2&44Y1B%X;ce9*GWR@VE>^&q! zq5^Ff2!Q-(prn_}@~_7C*vU9?RcaUtV7B%Rb1#@ykTZ7O9arvDOhX0IeYe(*dKd>k z>^{VQ|EO(SleNw7H5`JTMJz_@bS~Q#SF+z(#393aZ6Z6`Nec#b_wUa{y35Pq)M@R$ z`y{|DLkE2@W8Kh?m=uYh2rg=^HXq;3x>F1Ep(-v$&wA|FrufV?9{?1T15>8wG;Fliw?+kXP{KKG9PmdiA>AJLY z%s(u*{FwayE$!Q5$*M{FgqHrUs_{A|MlTChhXmoiUcsR`w^YtZphez<6?V`D7w&h} zu8FeY8goR`2g%ldy+Nk66SZ{{>n>G_d_#!lK~qR{?F&~hu;umT&f7oqvIRHz&Xi-=zgpV zu0m%_tH?{L=EjH>fg@ka#`G>UKCHMAzG)BS-J!Fl`PIPqC2)b$V34jB9%o{hV7^tI zjY|*9xjdSRcae7vbcQevD~CJUz!x4^zKwd_hli+h7PAH$)aD+R_*xM2gIAbejd=0r z8S6u#Wai>U+u{%JO_)4Zq^8c3yl%z#^ZH$+SBu~E`E|F0>GbZ7>NF7$0|Mqc(LGEb zJ8)sEtEZj>1h_KazMZ}kff?lSGcqyMm8q8d%-S67ui zur7$*%iG9ID;;hQ4-_eZ#wnK65UUq5Wfw684%AT0Lp{`CjrTO!+ zz=HqHUO&!4wf&6*{|@r!T|qSaAtu@9tHVl@rToC^2J1dMiW^&!0SZH6iN3!%%599I zuy_~wRN8&!tpO7^n-$CYV>;hPZ{iedxxsYC$*WB8*5F4&&kU8@NbrMI|A_9vH&D*^ zRd>(*lFk3guPV(KY(aXCbt$EUFxPA{DWMHjWlv}4TN{*K>QN1D%k-!K7u0~?c_(KT zKOq)1{ktwu_G|KXrM@Z(EXL28q(dzs{qDT{~++B3IoB zi56=K>Wcn%V7!-57ev}`9l=j)0C%}DSYd`aD1QOQh9BET}NV(fZx zm0iDmTbynC$`t;_dm|PlWUBH9)o1|tB^#?7axdg3iY=33Prg=k=@ryrJ8NI=iVMr} z=Ohs4*!L2^VL7Yl69Q_8?+?5zOHlr|2((LLJYD=QYq}`rnvxljkuVRYWR z@hfZ9+t-ao@k_7nQ2vCBoXUw3xeI1D^MX8c_wVY}w@~B-K~$9OW!mN;?|oN##BS{P zCbVwSiYkBlne&2@qB^B0YEhx;$lB%1l&bGl*6QE>(Fsh~FX(OB?~O!PDH-P9mg)x4p$Y8#2mSt;p{Q{Lgjow_ z-+Ip(PE2}~TOOJ7zTbIv#APu~YBfM*9?bZU_TH89@PMS%6l?78!J7(As<@K}n^emT zKA$?Wz*fvOcT*SN<4~e5*tRyWFVp(u&G!KM1-3A)6Lm z2#QhL*CS(Gse#IoMmKm>YG7&|H)4*sd@v;}Q)PE#{{8Lm)&-fY0~-0mm1K1Kzu=LOYuW=*mK2ESM5cm#NCuDW$-)Y~WbgC&G2ffa)aUK8<1j;chM zK08o`%rG_!>FjN6x_CV2`EZe~E)ssB&hjLF|Dmyavj8vo($w9Updv=@xb=#}R|WLW zRFbmX$j>U$v6jKc>)xsR-+Z|Ul$fch0*TsC0&yHZ|JR~_mjfDWodD^qx@ZUz!pT#c zEzw3s$XDljTnkC^uGQEybBD8Fo5*T0k?-eyl7Qf$#03el5bqUF(?HS+A|!lghe9~7 z_vLNY>|&nC{gb^>0lgQ=Oihcn-{)RCpMZ4(iehy&rvm$6GWQhfkWgQLT=EVKv-;WL zZ`*=xFsr8ZW147I+9A03%m*`!R<54CZU}{`c||6K2iHuH#>N~wJ0l6QA*H4z*L>7Q z&Wv~i0Z6Q8e`1IrQ`oGlSl;<{RZV#ZU9I@}o$(B9+?gQ}t?W-s^v(PBehJnNaUsHv z9wd%%>7_}k=Ci*~j`()#hLky?|D@F5u1knRl?z>cw=|3TEV^{57gi*Ec1v=62iHa} zx7|6z4Y4Z7cipVG34wkz??nS5laCs8hQy`PUbOHl)!mTjzo(t>*Fw3vLb#BL$K6_@ zDh_?TQt-XD15f{8Q9D5RntFk)9w_%V1*73?;P?*)sv((D9Ug||!GTX$%v9H2-a$e$ zxm=8z@k1>+v|&(KV{y%e$nr+e%5wLjY^hSa9E7$5x6f;tYIasH*21^fXm(b+CDEd- zip;pA3FMLuUWu@x&oalU1M&+SdL}bk_Hd!8r#`C(8%-$2x}ch->iRXrq=HGrNjiN5 z{l!%R*aLMTQUMmFi$!kvsBeNig}>qLezHq~ZXZ0#uWokX+R*{m) zd(syooO?vGjuiPa=?wVHm_pHU-Dq_Q=H+6|nIw6uZ8n%XN$KIn#sM{H2+P`!!+w*+ zND@omL!2qfl&)EWuDY0+mcSCI~hS=Q) zTqiF%ZjVIxg=%IN4)R%oglX>Jd>=Yb88aRDY_Fdq{DEvbF&^*9-XdkXB9zzM-9OY? zTeI#p4{GYIP?d~cwXA%V*8_6e6i%-knZMjzkrBscA_ak3H$MQ z>6v4#RoBd30Mi(^8)ig)#|d}~F@2NjHy~#Yv)G2IjFw&_QTXz^(Cht(`y2x_bQpUA zKAyBVKmJ&#>b?;AHTALu2v|8OPe*aeUQFJ);UaOdI+RKB)HAap{G>Xj`XrZUxp|uW zgJgqb$0>dp{U8I_s{305yr+@EO13iVvkQqT$%+@8N*6 z+I=X#=$EUJp84FvCe5hZkcbPR9<@7oppIN?T?cQ~echG(Fd#B?Vvh-?_N9LzwvL@# zbuY8u@s3c1f0Y>Eafz?efY(9=)~Koj=@2;ruS&@#oTq9ad8^uFur7zX0%Tzs9T|F{ z)U7?Zvwlqb87keA5F#zwu3oENV0Z0TcdG|MhW&DV&W(JIW%aUU9lqoYy`S$ZJbc1e z_p7IBF${u@s{3a8$<}W)?8#Z^ut!IDzWMQ^`c1fpBupd2>T{eE$%z!R@d|oD^*UHK zi)Hx94{&DBu&b>Z;tp@xcjXe4Nhviy%W3y3Dh|014;b#9{}X*Q(@?pS-+C=cvi_wx zD<+J&>5-q1_OVc$dM~D1K1NUu_RsV4L;%sSexo6oDYbWK^VpA3y+{BMc3rZU8#mrT zW}M7IvTcs+mPbv8w?4*wtG#e8V87XPx5+zdMge`Rey5~T{%(9=Ss7eRFvW_Yw2xF^ z4kT-U)=nm0GN&)6!nYeXe$|%wPUs2P?@-omXb4)1Uw`C9*dt8`j-Ak-Y*ec|4^EH1 z=wWv8ScAIran01JfYSlurp%Dvo#@`}>XNzsR3aCuSHHinzFc*lB#&B6l0rsF0N%${ zivMPzaJp0{?>6X4*<>Xms}1Chfale`|1nO@xNYcyd!99d^={XeX{^!LCAr!F@!b4+ z(I=xoXR&|Ep{uN_@9cpdbFN25N2`#uWlYm)iS?#x$lJa?NS6Y(|N_W*z z05d|v!9enfP~^a~*;=KQT@w=&6fOSdfJbHLcS0)-kBYJEW|oVkAQ&{bnc}12l=;$B zKqCGaOZ~hz?6GX!AkTwUmW^8KRZpTpAX6-XID|+aP}tNISi{f=5(HAdvrf2uCI+TX zl81l_?OI|SKURT=nIwhNwH9}tZ{Q$VAG|wa4%NO;oi(M?Drdj56EyO1y}F4|_!ck7 zULD&tIJo*_oPg54?vzhv=6OG7_7gzR$gKP;gZKXg_R0GG8!&`*&_MO=g^E42s^cK} zcb)=5cqiB5OKCyoVfmjJZ1j_uR& z<1XfTVZh_F*gjt*{;bRwf4Y1iK;I@zkXSVY0m%>t!?My-HH)4`BE+#YbNAlMi($KN z4#Rj?o|i2(lcXiS*$F+SU6TI-MRcz29~5UXQl*o72@j71uh(@DZzN-rD{X{Yxdy(O zSFLeVF=< z{n2!e4lke;0kov$43pl0|ejEnfki^(b zqV`qUE&_pLG>i-i#8hLv1+ZFxvJ%=%U?(0$D7p&5X~m}t0lvx4aAPiuNjOnoRv?~E z&dJ|{9!9`mJiT-iS8VjnJmEOH`l4u(CAG!2a}V86KRPNO1-5{zg({2QwWGu3+xV{M zn+$aSM1!s>&lFMc%rFhnot1)N?Jbp@Xq8PqgR;&q)vjp=)4#ad-IE~W!lvk6my0HB za)?W~YMldHp8>$iyqa%bldj2`4BsPfA~cuTHZqNF@^T)J)vW$tA3;?w!Y3n&Ui+`q zsx}Oy^%(W{x$v#)R+VhZ%X$-i!;KY$EXu2k})r~YPF!2 zRk*0;7Z6ogZ{6v8lWeinq zF5ItvVXc}^|7&UXVA#(E3SqS77EG--2b?2qg{K>yrK<+$Lw5*wJ6G*bmXus#Ml`x^ zYCiRs^1T%~*QVpB5L9w4DJU=lz*%PG1a`t{F(J-Q&N`KE@)g?s3#1^l;zq~(lzMWF zE@j+sz@|$dD)NDD*tSz}@^1b1KIzHT1-5Jl>9_c+NI2mZY*t<_aD!xZp*mN|a1Aq9 zee&(T;%@g>VxakpHFN)|GS4n0bix(^EYa@c6LTMr5y+3K$)eGm)few)-_8wKt{NEa zABgGL_~=)-STFCGw<~VNE9t`s_M#mw(%zc~h8{o?L{Ps1{U-gl zyAgHk!m4hKYJ?7#czi@kWXHkQd>uuHY&7mF+rLP+8FmRoKzNJ`7@Al?Te} z@Baf~s=$GA<%MQw#C+KAXm{mJSs}d4J0|Hl0c53Q%8Z=#!-Y7kRJ&pU3uVTGzI@ya zPLz)k^&`kkdLhJXy7oV_LJS0)F!WezsCOBP%^Ph?TZ` zdHt=NyrhjHEsd+fCcqc9;`~%g$*t=H7b?Za+B#Pviy@^#0)#=v=?&DrG1`ZC;Bi^QS0-;4u%e|T z#GEr1BA5FQ!bXVp5RFGJ3HIf?#m3vLzySl8IGb%*D<^_!)H2e>W)(KnnJ5z0G!mVw1P)rj~EdX{^xtAtte9m$8-|?9a z`HLazlj&V+jv;E7T|O#-{JH!pA5&lip%EqVH*xIXU^1AFd(CTyqJd6%F_f|A4q|&% zbd<@@C~%ph$VdXoy?h|OlIZqh)2UUvP2A29ZyiBRCE~?bnoJm%(LkNQTviJS=7(7T z!@Gf9U{C^4a3WF42eW`_v{)wI4tQ=kk1=9?QABqC_^u6&zN3 z8*RP4=Ehv%XEFV&v>QpD=1u4=eVcI;Z()G;{I4<3mER15R@z%d`vKI?;6%2mA|p3L zveR>Xp9@H68DTnD?>5CgomB!;Nq+`f^zR%{XFJGj1_)09-pEFao4yaN{07|EM|d#> zVb<5-1Pg1qX`)A=EivFZ06dDi3A^7vJsbsa{2JOotm4|RUXiaw2%yUDH4m6wsZrIe zOp`2*iC|LY?FWZ;2v4fn=c;BbHccetB~$bt8@;@cc4{S{>!7*TL5x38gKk^C&VKQP z_9aYaV#4xl*MW}4;riLVp+|Io*JG`f|ElKCDv=VB7dOASd%-u*pD33txS=WAEywq% zhNrAO{@kAgohMTLe9pE?EpFR{()VT0UJ$MNy&2dYz5-gA%GulKeIy8v=y)z3{2dYY zwVvt}UI?Ui{*LMU412^Bdp>`~j?(A=Vs0qE25kP5@?akSRdFIS#J} zclV)qLDqm3cy-HCoZ8_#g~8gX6=K;By&qde{{H2!r`I-GWPQ`5irkBYAZvoujm>Fy zBtWJ=^WwMq4I91W6>Pp^{}wggE!uu86!Ar~TS!AkHTeZif)k8kW^7n!MNR zC}u;<`Z?~OfCerh+MVj%uZa7nm|}$qc0qa8CondNh^;yhLTIDl$NksYqIsNEu6buz zFUPyQ;>LhFl3w<=-6GS~FEbT>x#;e{mzpKfy_kNq3AXpM>G(!P%>L4h9P0M`md@>0 zYlRANeo0v)3M-zVO7Muc59(x-WFdtPAvr(_IM`vBu{YYzLnZ<@GWK(fxotxQ!lO$W zD&m(b>%LVcfXG}MexdlHGH=y$Rtk~v$=lcCu4N}ymeU);$Uu*wM&_pZZ2+%FMr#ahs|*anG^{q=sE!K3mlNOCw1~X%xL>oW zqsbb)aki2CrwD1AaC|_-7E;$pPOt?iutc)O8o6xZucgZhIw$g`mO zrcJd+L)lklGcJFN@fE-c;qx>@54o-{j*>>2_e2CGD?j^Tv~s?++U5IE$)~LNA(1M3 zNb)34j4O<*GI?JuS!m-UrK0&v2uyB@oa&cqhgSQwwG-=;OkicV} z)vgR|cy@OV$CP^x!EV+Lt+_oN-%SoE*q>*23MCCvWW*=4f&Bvyr(_W>#iA;l?jmoV zQ?4R|a^T$0*QAYQ$`MKq#*ELH{vap~$a`U$kz_0(E1=?KtHpr5eDqjH+y-iQT?2Rp zVp)D25#ZrH4j|m{aQP^YwqXO81S~dY(B6=#B%8%}tcA2-E$KM>=A`)dyLK)x8;Qf# zYT8X|jQ=KDn%cTC`YdOk@_czQ+tP+7v6>UyJ9`SnnFPHKG7Wgv#;qN?!9$a4L|Fi)^8c-r74R$=Q@b zLR!CX)qh*RZbM_PAUA7fO-MNXR?rq8*YFKz3b(_R29IiDctQ`n7s=bM7=_277l~Xy zhgpa>M-bbsrZozlB^GRzKail(B*j+B&UnfJv}7z!iw)lQsGtM;<6C`aBYNrI@8Ak< zytSXN^t>Wfi7ZHqis1f7!_0?McXsgNBoj!BMKjjnMI?MavC2Qf<^Xv*NoC>HVkA6W z+D_;x(V#p6iQC?;tc^jvgp;#IziZxSnYU$9<}VIeQ~}DjMmm!9Zed{OaB9H z*PncI1GAg;w{n!0J`sLa?%vajYg-G<|Lf>XKK^X3=|*+zffDog&I(B z%{2wLmN7F^C(~&f5iP}B&{iYBt&9jY#idED87-}xv=p=%#R1c%EGZ~NQ!}xJ%z5tr z^U{}oKHS%JoyU0`-yaj;dpH|qHDKF(1REm7!dn95-H|B#MnshX+!r{(xE z_xWBbR?+1hiN!&a>G*Sj1N$7N^ z6E;79mFb=-jI{otFbTgkK_B6i?YVi1)%0>0+&_)r9pjxC#X+^HZ)6^jsz+Ert(!HqULWshG z$}Ma7p2x`jtU*ojGv!5AlK9x{)3QAIf&O$4i3cl)n9|j7VE{^ZBw;_T#Kdjdq8R{N z26#6Vn3A1%TrnL|AE#aDp-C!C3$2pi#WSIe>C}1x@k>MvPr`a}GX1;s!JZnfq~_Qw zo=LhlBv2)}S~!AWjoNeKFiSP9BRTajK}~~$hd8N(3T=ccuMAS<`$PRDr=J2q>2^?`7cQ-jo529$m$`hPcFARk{{=@eTj(}S49<*>C|K^uo%))1(} zS1gpdevU@QrBE7Ko0sf3AL|NNkqEpN!;6e@U@Aq5 z-livu;hT{5k2*)QJocIiU)3BmJG+iPy*^|zn zzo#MBc~$H&9bV-~F-9dA*8*M=1LBpSF*I(;u1e1UWhxl@>P6gW6jTL;_&z*%6^(0G zKcoz?urRmprGa%nBhr4%-ny?I___)A!K%tyri*ja7{q%1ZLx;?agr2QqbyjSA>vcLyQed`7T(ekFx?qfrfe9qCOYi~b?si7)Tlc7JvF@pRZ2$l3DYLf?uVu!jRtHrT!4VrcHeuM14ur zQNA3D{1jzoS=I9akNHv@Qa;LO1f%r92PEM35B_;3lr6Ma*1J)mXaZI5ODu9%&?2Y5 zeY=Gvfw!ULFGET@aeYf5803w1^>FT5-`-jN)f3RiX9Y+0Vp$UJwFgI#aT(@xm$aR| z@eoDLn_4ZlySE43(0BHSWWI;3nDcSjNzF?JnCYB+ugBKZh@MQfu{6pC0@zo4$tOei zof6j$Lg7MhoZ$peqs?G(`zc(0F^MbYtvvvinyvzc-@Q?^z>Xox@BZSgMXD z`d0G`)TQTXULp3p!=`k185LhZ8#&rUEZbXLJi-@8%}4oYO+1dSuR1eq<^!i&80sVz zem)=ZQ8%@fP>K0;0C0h*n~{K?%+w!J08<(O_VI|{xmSl~TmH@Pkw?A|&MJOg>Bg^Z z8vr{D<{6u6bhIy{xt%kk1}WB}$N14cbjvEs5STS5+ATyM6j|N&I+RK^ys4D`0!>x; zmiUVelzz{76ZQ(Z3NNHy?M;7Hhy<$R+Z+Gqqak;phMCw^kQ~L~EP8YM#xtzm*(XZv zJC6muZ$waJpo^Pl1T_7d1n3aO5!x0T@hF$4>DV&oqZu#xnPpL|qJ1eizu{=9g4FGV zDMM=fwBYT|7TF8OtCS%$Lrt?RJx6+2QfzXiD9|-j(X`JTBL7wTJ}!I{K#J z_r&Wx$572XqAuGW8SD2%!CpzGLrC2uU!MJgW?L3@9I^$Kh#$x!b>Nfa}>#Q!_pmZN10A{(yi0i@nV7HLL<>pDBKTwG94SCI9IBTOI zxY1MYXgVkAos*C5sZcF~vSx~$ShLE~VC4 z&(g(oGlapxl(=#Y^)9rpjsW{}Q#T z=&wEQw6gQc<{lVNBf5|}2-}t1cY#FDOHJEeov3@7(f%+a2w?BD7Qd?Ig5a<43%iaI zF)Ld+PhX#foW0(mS(CW_2dlL|?>^A@%MQ-1);oEn_>~1NkYaXkZu+I}(v`s%a+3F> zwogS%ty{m_H|d-X2Qd#eZXQN<{1{Hui2Z@;96mI?;jQHK_*0>dsA(goz}qyTtlp)T zu#qb)MSQCIgO@lG1=Dou$kz}H6PBr_gIA-1H4PTcaaU@r#3@|;B>7y$E-JKUspfX{ zs5qIcQnv3!cMt44L#kG6sImYXF|?|xqJJ&fV$9MInOiQTXz1s6IGF>^fe3c*QX^nN zfql?5IMq3vCVdtjLMh;l`p;4JzJCX6c;KPztAk>A(ccsmv`J~J%h)_llGO9mEvw|! z5)bH#U5`al5qpmLGRh3*2!AG#OiCSyLLdEvEM1JNL(xhYt8bOc zYtjANHpsGZ;zdEDCdy6gqKH)7ms%80L}8l*}fIR#6Z270CUz`Jd4ZYFg{m*AQDE^^+Xz)X~(&~k+8=g0srgN-0{{hD73s*apCyGFIQjJNPoQNv2 z)X<8&A{;fNg>(*X8T7QKP$-QzPJ3?q=j%V*@=;DMIO3A1bc;DBOJNWdDoEQ+iNmB| z&)_-7W@i2K9z0k>)!@3wMBB$rf_?Ve-baa7P zk&CNDoXF#?Zf6e%#U2TKdytD{bS~jWuloZmRY}4CMK=QqBM7Gnc=GB=5kQeqW`|Hz z`1sfrnQQr{=-_pxYC+gB{f>5Ay=Ekn{Fo?2`s6v~DE>@6_xBMOR;j$vH;AZ#+Aa3X zs;W5$U{=ZMm5N)~{+?c)C{2g}bTgqDfbppG3F{gC(05I^uKC#=gT01nCzp^_)oJc! zfymL!#&kPthN~d|-pF&800&@;tAKOtfZ{*kny{7J45t`Hfsw)tmqUqthN16?kP_&~ z**jUNj}6;H8PuL(=Up<7{4A?WRtV6L^}puS$&3ZdJ;DNq$VyGEbZ~W%`4B!49;fQs zw(e2saIkz#^zSa1q&qDhP_(#SBph93m6(hht<#HDF^eTE&3!wduGy{;N)jC+HPw}w z&+iz>PZVoV%ZE_V7Qn{)fv^bVuel-)C*fDt;6fBFTSCa4uY|y1OQ;QdBHFclhZrdZ z80H&`!?R2-ud^~VW1xJexy@(Hby7epNMpBtx7B)>V~~#KmQh~S!QT+Z8eX1q|1?TG z(B143_A_WS{5f+d_#uUU?K?dv3i;2<;&0Es`X1=fT0ZEA8x+LO7-lm5f$;Myht3>5 z%R1`5^5}0?aY^anQG{6X=2m|x_F6!@ZXKwH(jRXWKlt{9_Ls)Z7d&^(KN*;1?se5G zrK5<<1Ls`z<4;Sk@2y!g((*fZB${|4N&5Yv-eBF@{?nAEp$4RX|F8G_vCfybyJgQX zuT)&BNO<<-plARNvwHkl(=!weg5PA}qV-*o`fxmA^bJk*f7$b~rrOS{r>-^y{c@kD zjrkQXPiyJaw781Zi*hN;ZH}rPSpQqsAW`{oCO8n0c4ULB)m;!KC_blqOVhxT$ z!tB0}E$#CZvbaM4Mk7c&!l3KbDQoSD4{9UK5OfdS z_`Baq)`!6-U>Ms8gE1zIp#-SI9`Aydr0k9&K{LE&C{SMAZBTp~ne;VS--N@E(USH; zv2`B1d^FE#FM$B#4hJbu4(b}gMn*%uD?BP><-TC75Ws(l@Fgr@@3%OpQ<^c>9!iM& z0LEBg)Q2wcOgt98u5wl*8)GTM8T7L?TUIwa=fPVu9RGq$EQkwe5h2lHeqgq4vYHe2 zE-)L{4xA{Y(7te@-rj2#Oc8M@QTkp+FFWk^9xz0@$@u>G)jk z)w4P*i-f`OC09?G9~#gt5R}r1(EodrrTIn$Q$f#c>U4JRtm4y3g|MG={)xU<&Z&e5 zn|v5KD6KK!7;QAkbdTm1b^epGb~{2(d6p{HOMgUoE)E*dO)(}O>Lqg5 z(+nhRb%|}#q2JSY(^3ixjFXzM2@60%Z;sStIq+3Q8DQR;mqfs;ZS}jtPqMk(k3o$y zBAzR;$lE#hc+F}dvaRiQ#}7HO&;`krW|!b7%53Sd=a;CmM%0wgviE~3hR-vJ2YB&V zHU1i(;Ru;MNwn=*4tGz7d$o^+VFY1Wb%%PuF46EC!8>7P|IYKBo&bW#!FnKxGPC1K zeNy??)Y=<8JsR;+qaA9%Ym(W5*Orzm7NyjQAX+-hxWIV6oy_-vFG+g`K7h8h4{*Ve z_PWYPrQAX6kU8@}AM$t!us?$ROeuWdh#stuU==aruU>m~;|&_6MegUM&A~wlbx)bQ zbfG2YWCBrQ`*eB`=DNrVD|%yv-6=Edx@K)9P9KQv^q9Y7&05?*M{ws{#uoS zi9p^q6a9;RRb?J%x`D3mNw$@wy20%VUD(0F{TT7$rzjSPjDh&-q+t*|W)$`%=1d>I zVx;~KKR?j(aRwszH-Z>+b(|fAiq^s&xVZ{+!OPaH;1f{B@zo*c9b8L4?aZN&UR>v2 zxwA7h``4DRlI>$bA8T@7-JQjn_0WA<%@k+LOF!N$k3U_X^x9~t>A#AZ%rQS_3T#KXfjvZoM^f zO~@#Snp9OXR>hRMdF;IS?Lmf%d4FVi;m>}r8O$|)k=&)<_-_U)Q8rAhzOlhI${IN` zx?R1rW~9WQxuL`_M{kUbf$!vU^@QTfL|OmFVBhHmYK_7q9n z>JMibl!=0t^%Ay}7Udl znsVCP%I4n}fIX%E#-&p*iy?T@8z?NlZh0YWSFe6xX`V@Il!Ka-(-coqY$jDUF|J7(FPW?W{No=ygVTKM(~!7lT>S=wj>8MXn4P zxsua>L3GLEI3rKStKQCOuz!?!D3f{b=zqMZ40#5wVo&@ts-xik1C#<6gb!_L&Qn#v zv-auLZ4kMcxw$Z5Zz^xpiw!z{g%#&&v5-oj85B)RjlWnSNd%QKYD4falLnce{112x z#!1y6gQnT$AuF;d0}iYfbE1BDq2}jMr@Y#o;I9eG9?BaVWr5}jbX|n?YM!pNR1SQJ zMxQgIEbIRcW5-D{t|9E>|gqT(v*s8GJ=KVsaA6C5SK#@a)tdUv%4 zPV&}4pK^=X+$H-lagRx$V`MKyBRXp9mqpZJ76f{x=go4SQDuQ1&Na+OSzGEBz{LS* zfp+;9MFfXrXc7B`Bm_>y;3O4d4Fyh}b{vIKdr_1bvFf%}7S-#Ddl<|b?w7~3vyRcg zryb*cr)lrp<(;)Y1R_hk@N7YfPe>3i8NgOh^)Y(zRI2eTp0X+b@FGun3y{rq`;ZHp z&>Hy7l}x87^Bxj-#W_f83YYtm6BfhqNA!b@Ha}Ryp<|+T$57zJL_7V)DSG7Ca+9Tx ztiY?{6$J`@2cbT}RIkpDR|j@Og=`tUxf8rc53kLw#J>w5r(mG{t4tv6xS-de2n&?@ zqdo{kk|}Lal6&Ae=5OanXv2awkLgvRaI{umQ6R6j`$?h`i9<2%WT5a-$KeBCkQx2jC&kq(k|k; z*9q(i`>}51_RnSR{F=3k{S>sJb>?CDw_FQ)VJq#RaDDETGMVL4y=%$wkjNKoVM5SI9sa zYv>otQ)e&rC3URXSPQq?^>O1RtW&fo6^?aQ1)6Rj$a!_|ud6DDe@o|QBC7_5egrg9 zr%2whYhltv^N~5@<7&rObz$%iLvd*Q+Kz*C^T+0EuP{DU(kxbA{QuXM#r;P0t)q zH2vQ`JN(8C*Jlo}ckVoJG;aPTi9}nf&l)7X(=Dggn91qzxCj^87B}~C(u@xYr9goT zYK*A@CB=hKIJX>7-_cRvT*c?*R9|8yTFZ%o-faRt$T{Dzc$tdNc0K8U3-*3#eWLG_ z51}Y^O(!v>w1@@zTT<}gabD;z%z!h8FOq)6FHVl@!>JkxJ@0OG7l3p3ffH`;XSAQ^ zBRKZ5qKvPUDONDMSJCD@#y#Uv?Md67B6Q71L}a+m50c}+yI zg!+HS2Q3CHIBjhC0dM0jC!YeZf`OF+X=pdcCcgs(C6)45+OL6OfblU=;-OsILY9h$ z`_oVolHUzZK^v|-bVQ+b@BRbUS2d<-?i1`L)BQ_?KO|^q<*IiLf1*}PDn3|#2a`N8 z5!EN5ygq+Dlo)2c(9ZpoMd~1}yE|fz`?D`935Ed`=2W{ajJdjZ(s^Dc^$kDdxhyav zH?k8HU*@uF;)_d5TxW-U->wQimXQsfcVJ%89E!q=wH(zSl_V^j)CQ()=GKEkd#@Vw z$c(GCHa}85f4gc`vG0u0>=+y$kE_$!LI? zYq`-j^e?V3$6#nk0fn1LCha_^Xcz7r20^by6)r%QjxUbR*2}T%Nqr~;j+S{IYp6Qu z9B2WB^S-Ex#lOJ7gC#%FrB8!3uMLJ$&`b2x(@nK}&_0{2a_ht01987j#9}c=bZg_nR4 zdO+lwaN=s!ZBCfA2_su)sHb9)ub*B#N||5QKj|IzMyACly(YFX~yrz`oY^a2z)@+0jLa>MD#Jbbrj-(4$`BP~7o;i;g8{6^5?r`W&aLPyfF{#}P?jpqa-l_Pg1$c&zw*EVy z(3Bie@$cnE->RQDKocLlEaSwS+zW`4o;5cOLzC!-lKkZ`9(%`ay1tm0M7~!%cJAa! zJR;A@%%WF8zIzVZPfBMG0iIl0Dn%a%!5C_I3wj@O*Xov4)eMiwa(&PczrFAfEDsEX z4r-MKViZdvF#riVsrP0uHN-ijep7Lqh8rEPa@&49{h{D>AcWe~g;8meM1F~GLUzgZ zWl3etv!hG)FJtx`mz87oSpD*`_2Gl}`7`jFtv+f5XPo)+6p%F^_oV5?CAT>a%nfR7 zjJojg+B>n#lxEG0{X7`3!Qsmg`H$61V0ECW#S`=34Wj5Z$xY<3$dV2hXSW4qoip9} zU!G+2AWu~>c@zx&ueY5+9Ju>8)z&-C+{EfSQnu$3W$*<6C z4!3oWcL`s!saUkJHl&hW=UCu;wjxOy7Sc<8@Ni9^D)4OOBMo^Bj-@m+EXZR}*vO?2 zp_PvM8%uYD?%Yf>=sNbCqbT&T4N;q#;JlrilL#SQ_=3M^N#hH@HDzmeV$+MSPJp|a z^nhOizDz}bVp6fJsKC2oWaxR$lI}%|U+wO{74*~1ZCQkqH{U+00RX~h)lZ2JQ3Oe_ z9@HNv9>Pk+%Gur?>>o1%>5ss*AA@^QT27?QU7U+B)L9~!VVHvRTc5l|Q8hOjOx%-G zXp#b%s1tba0p62TI2F}HzoRq(bZv2o7bDLr;NtReI#TLH8GtT-Ty~_$Z`xm~0Vtrf zhm*8-2U-TxI7y@%OCM@l;lJ+ZxG-KJYxHA6$yXQGSsycVY%oP}^HpJbCpagNh)dGJ zUet_U9}EZiTV_bYm?(qcI=(Cle=_^5S&G4RvkZ;tCIJ4UjI(4^Ca~q`0YieoY5B&}2qpVa%Uvw{lg;E&v1d8sHwxBMlB z=Lz|Q)Q8d8Pg3m27U!w3WY+Q&9ERa9M@}{b?Qe0CWy8I%08CqxdbL%42j&E^UQ=8? zwB8jxQ~dP8PEUveD)pS&hZ-ua*?OOs9eqEX$`m+ z?enit^NJRi_d5_3r!383DLnR&Bb+c+PFotz8Bj+Tf0W06ZG!A%1ad5Me;LqMA9;-0 zEY1f(Gc_h`2{WyJOI;y)7!f3eiSy>V1@CK;=oVOd6D7J=vjl%pwZG;77d#P5pv7ef zj}&9H@1_s~b#Ug>2!ctdjvqBI&7i3x#w;xpJI-_JQ*VulE0`EyJr z0`MkotY=152pSGoa?9MS43$EE-ZK>{)hz8Qv9!%~vhQ=R#mu%&Gyni*5ftyE0vYg^3<4aJ zYb^PdBFpcRjvljHqCjz1`nUR^75h2+>hO!IruwHDRNbWVoJkVjm1n2+Pn@;KKN7kr z`39Jeq66gCZ;1ndGC4Z^xl5{_cUW}iA<7MTe8p?}duRFyM0;)aaCVJ{%@N3rJ?haT z5NdPcd5{1vD%%+lrn#>ReZHq{q@J-VGar?hd|=q$QfIO5{E<%w{ca!j#Ozu#KKF!~ z^iNCS`voSUJYsL?HbhWpc>ziE`I_LxO)NawGMyzloxMQ<_BGy4U?6f;H%lWkJXMeR zL5mHSvGUJ3_3yi{1tbKZ2OIw$S$_0B5TNaJ8d1M$pJ2tjj$rr4{gh|M%NbEG{HU_A zK(!1;SZ81V>x}PU3;ylWW_R4K&rOZttDgsC{q`NZA+u-ezR@B^+F~u?#czYFXU4ju zNr8`&mnUPReC=a1g}0EgXJik%n!^#_*P>-}9kk8dlET_(ac1)?Qp=%R+s*}aMEGp2 zZWDY0>5dXOQ`T<1APAMVRfB)O%b!XSUzth1Ne8nzBI<5O1iIRD~X+9hUMJzEdQwoJQ>1YvNQ8_bmG`QIB#pW3!#Yd;J?Vw!Ab4SXwha{E%K$s55 zF=`dVoMeBt5do5sN7w$G1+Dp56MX3P9TvkrmsdI!q@Joj`TkiV?{1Zl=l@p_G`F9iCM6&ZL5=MoecgT zuvc`(B-p-^l7iOpilOK|6K#8NaT3t%rXjWI{6^_P*1oc!u!Uz&FW<%U-N*UnEGgZe*ke+ zP{E({6^}3}fDxkvuuz~FLyz}m)f+9-e*4QqR+70j`{K8 z51Rvsg>&RxQ-3sVa-R*~WTD^TEOfqWL(kqS1{uy4sGS)-<#M}^Ng@ZIp{46j-)_u8 zIc#E=WZycRjQBYK5Ap2}C7`ApcLxN9{T1^Qh4B8`9W}}SPLJX*m8x{;NW0I6>*q63 zhD*a1aX>nK=D25faODqke++9)94o;|pF$`N5A(*epA?*Ti$eb);e2%thHM^HCzL+J z{ycT($xD5PUoh``=>5+h8}4SRGaD7)9tX2}W7f{uQrgX;gnut%1me%i$&h4#-V4o*PLIil{Vi}}UX`=uz1 zSeb%{@LlDUnsUhmYgPpKo+7FEsn1;psG29yzNTk%(B?)V6+Jr~09^;}9;Wir9pP

_sp-3yUhj-0tT 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 literal 0 HcmV?d00001 diff --git a/docs/images/bransonng.png b/docs/images/bransonng.png new file mode 100644 index 0000000000000000000000000000000000000000..a2c88d73f9ad3ac08f25cb1c8a7e35d0fa27ee4f GIT binary patch literal 251779 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�Dg8sl_3B#D#*GJ9Ye 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�MOHE4)a;ECgr52q{SmEC7DHU_c?W+Ht)Z(OtTXs`kvKLcls z=gxddT0@2A*}L_AlgBBMK&Of|F5?g_s+lPg&?e@todAA7fxpQhDxi6L-q3J60qfKO zR*RWn&_s-;URgZGxRWlCTVX9EKsJ z(r1slZg^AB8`Hoh>1=b)#VePa3HIm$<{{~kfIpKUT&zg`O`5l`WqZ3EI^tU+ZeQEQ zve++IotpzArE0VVQORU%RcmvWyz2BsLab+7!JUKZ5Y?)}nx3YVbNPXBcf)c+D}o9e zko(IZ@9xs)KhRXx5Wb$HHVeoN{NelWTbFaIk5dv;&4M|zVy5(9`g$U+$#C1+_?P?8 z40kG%ud~ZzVdx!KWGv*Lm>I!LNjYuIZH&_!izpY?{V(ceQPX9F;M!4*Rl(v)smg3T zUQ(V2c!J$ad}zt|Sd@&30CA3GJ>v;ILGr6nWm4kxansRiJWXU!t~g-)qMcXuHUAhb zmTH!jVKoy^Bv-Cl-PXQBlwT_ass7O)p<}8>lgUq+#jkp%O&2NCWw%_Jn4Fcun)ImA zb3@_hFqGUP zmIS702^0SQd%xz~aUtxVH>>K3}R+i21&DLcFvnSckiJ8sW9bx{;l8Tm_5f`g;40C5{|E_$jA6H$BA~h5AgEz+1JA1|!5q1IQ@9 zWhFM6!{MQ=`6{Pxh!!VEmYXpDwb#FdS9t2_J$&?&pZ+744<$8_AL3m2?{eq8gLWq*>(@jZpa4Rv1R9!r9v$Ea9`~Im@*WwSrZ6%d&v<;2Xc-RgYs4gWih_`!;fKah zT`O9}^wg>?xlD7msQ`A5QA2vh^P$!QV`Sn{v$|3y$spsAOfsWb1UTMACjm=7PfoSF zt!41`M0+L~>1b|CMkjAwxs{1Y$#io|A`(=>)YSP%hE2Nxn`X#-vy&xMm3z0USXc=a zv^G?L%TcN;Hw>4_CesiVm5Z3~@oiX&nR~M}Mp3n@1#N(p=YBTRZ;40Z1F;W^yPD77 z*3y2q;&&@zaKlzdk$DEUGyjeoh#N>DfFG$^^?#&}GD{n>RJxJ`s}Z|Y9-XL4k1avZ zS&oU%b)$8cf%$R_3a2@)0O_Q0#eD=_inW{^ z2X7It30d4#E@mo|(=9EKwWPhp$GoG9QO8IO2+@J>g7>5tTfvpFvlh9i{ga%EcTb zt@_5;Q}#?k5=@5EoJKhykuc7<1v|_hHc>iQ9Xp04d|#U*f2xc1PA7!QyYiwtJZI(1+H85RDIYiA8q4Yp%# z#AzxyEJp}w@Qcy;ag9=(RV?B*xMYk34wCWZ4Lo5>Q+5Ll>*#2|di6T@06077uw@G@ zCBU0_8XPzOV$F>PV>QfxRZJ0ch0&+x7Fl4x_mn_b9-tGZoSUtuYbDv2tln2^Rf$aG zeO%Wl5M-k|SF8XID^`+3jp=9ivGIv<;y`sKzfh z44qxQiZmSerJROCau4`YuZE2&hctl$`m|(Ky2DMPJq6##=K_9{i z(f$F!N9awZOwK237u`S=>1eN0IyE`NFO)FD*#+^h*Ncj|N+yk2XCilMSc7`~P&UhK zeZ4j{(zt+g1C<@8Q9)M#@nlK}El$PIlBil(YkPpHB%LCmv@5+wW&Hu=kqu&i5L|Q@ z5|#?Mc#`n0!oQS)(weN=Vmk9YR#6objcXmQH2UqbvIUfX`Sk@T-J#Kqlw+&U-N0!=#B>-E5H{`mf-c*U&o;E z3`=)xBux}uWdqE*jTS=#4nRoDQTT{`f*W9P`H1@u?ECkA@AuG?!BA3Z#aGCUKoF#Q z$c6!aig)35MpNuxfALGR4#}pBb<*G>Jx0D1l}Bm?%4LSfp)o^PPge0n*?=B`yyxVH zd1F*2{EMZ=A(_dBrb&914RBpJEu<)M*H)SJ@&0}6?e@^nr=K1GJ*ROMrMV!`7-gDP zV>MuZVmfg!9C449gIW5~NIsx6jDh3w8naF&nWKzKgAySXT-6p--}=_K*npiFt=@=< zvTm!@{^BqG0-r%t&VvUXlWY3XNBg*+C_Z53*REMFK+xq2yid5T-r{3h#z|?9mg+Gl zToGPaL~n%=j`p6FK)zHIO}81!&2I6KE2`MRKK06uXq1;z;tlajR;2tjoY$i8W-aN?dvAO6_~4wI%0N zQP4vVK9-4q_F!$A&{!KHEmxWu&Bi+`FR{~2!y^N#Nzee-~>X=S`lSdeG73;bQh@30?nEK zwsz|B+G7bA^8_{*p)jsLwp(m101UCJsEcuQQ5a&cVugj&PNbd)6iFqI9ns~J_9GRU zB7vx6eGw653e=U1assH&P-dv?<17>+PAH;6M}(-}7yvgZJ*AqWMJe^B+KYHby2Vwi zbUd!=sVTiPr4VA^?Lwe3lm))$DlO1=;+f>3#r$E}W!Di?pcZ#zX)&w!1Kv{0D_R<| z981P9AJXn;M(V=3;|;?Bkj+c;(x6PBtj*YXP_Z4B#g!f)qoWeHYV5{cV(ptT+}JOv z?VOt8&0c+<2oS@E#OmbuIPlBL?(P#5z77wA#t2_eH z*em7(vtoK-*mq8ZfA>7KmkxiE!=r#v)(Z6pKlp*@mMEG5Ki%l7I0Hg&tSaHHw8gkJ zAk|MTEeKVb9uB)@|4a)sL44RZzV>wseE2IBup>f`<(?*6%bYy4a|frU0eFvHEmJWh z*k|2p4V?`ifBnm^O`&pAsSMn_`TTRw^(rjGFCqEK<0r`OaxPY%WiX$`IHtzg~i5dUN{NFCU+pW2=eAWXxh2))R03@?R55eAcioIxsL2XzkYT`}zYDjnA)h zYjs|S^2vZ!>QcjTm9>o2VIohv$5=c8H)eS7mNaywK@|nCWXZJ>HIc$NOXMbJk&%L$ zrnIa1J8G&TJ>8v3dKYvx6OVK@XE8VA{Ibc^D#SUaC#qB9BA3Ntf+Vd3m^LsSHh;Z{ zyHF;^Urzsa>BGMuQR#b)4uDg$)w!=hY*=QgC7pu0G-YyDnlEb~;qXgHOMd0hr$?+b z(xg7P2~GD2(`0O8Q(UnA5d5`52dz9JwFo*n*HiL|G=VwMgy zJW8P^y=|K`RUmu7G>UMFD`BXFtvHvGWHG4HL8wOb7^`B?NpXmtrXQ_oCps;%h-x=2 zNw52=L8QD%JL^EcA>zihGh;;4{;t43PBrQTjl;n81?EqS8j|qbwbrSo1suY6l_fz` zB`K@&WDB8whI22MsupQ!ZbLe_S;mX`f#+g~mR%H!JPa1Qy zn>X1HWD*`@jOIFRxXghpbqQF(b1t2ODiuB&xqVxTQ?#QH2!oxKDdey>MrK{;u)>%g zlBlc%F}P_B^?UoJvxlq(R&?<9kN)V7n$^mD_q*TyAOFvvz45iLvI45kiHQU&;J!47 znV{8t7<=RWzyJHcCpyL?5n^K~9Z{!hXLwu*Rv4iFj7_dexeT&I#Smkb#!p)I$=EPn zC`$INS@YAM{?v5rAhEEkY(B>V0<{Ay9hS&6_lfH{s69@gG4H+qJ~K>aRZGM2OdX** zv%y@k8LwY@=_S6)RPbHi$7z`cz)q!I8a~b>Gh^6v28nOrFU|~b2CvBmY|H|J8;HGe z?o1c!A!bstrYBD-9Vm{i|E=HpEtWxVzx|G&ZSC!2<0FTUd@3?B=g+egAjG!S3FpGD ztU8H*nLUpC?Qeevv~9a2S9%B<%2v2-xu$9r{RzIswAk{9^Rne5pIQYh6Bw*sOC@uh zce3vmaFdgiQajfL>5`=r&BSZ+aB?4-esvHPMix}vFJhQ1=_W6PF{!PpR~70~SqnbO zq-wBh8KF@Zia`886@`jd*0OcsPnP7Ml1xsC(k~8i7C^=?B@*N;Ss_j*l3(DClTfOl9tp^0G zGnAjFfJo80uY{b)5UUAWwS=jHAfPs6Txtb8^F!v04UoY)H%l|*Jngq6+c{e+OA5hP zLuoy@^opy~*Em*Wdwua-;uWgs39E0YrvU^IgQhBZ8o2=?%mM#8qCCWPEIHERH>%84 zL3X9Qy*KgR=+1VpiN~!ce{N3Na`0TUSE}rk}?mF<%hn?-M02<)G6m^q? zm@CiXqB(!4vRnp`FKG(e(Xn&;j+H$tuU)>%72dpQ^TrJuwr<|MUPNw(C&ouI$#_e1 zmI9Ee$uauj4P3u^?8u>~_B=tG`TZY#;FnAA%-;C&s{_}rkWoM&YTdg2rVM(M^#8>F z77$Qib@=QvPyOgefA;FDUpRO6^x&1b0V;kCMEXR)@KT2i=E?vH@<+&H0Te*7G z2>k!a2^8BeT)MPz^Cs412R{82e&6+L*SovAVKcAk?>}|&By?8E)OI`fvUQBx&usb#J`!b?#&M z4j=E^kBSDB9S076x^h+Tr-wd$^-Etufs$=78IY0a!qMNi8rArd$B%#f(T6}x$BrC% zc=xVtTenQeNspgHUf=P*_ucPwuIPI2-S<>IwF*_~y?5RvmIikyb%Ch+Ai5c$mc>ea{s@W@F^0})oTcCTU}+(3sCdzxggsxYrI?@|d%r}$!v(AYC+P#UGn5!SFa z$B4IOnw#<+lhZ}iWPxQSre{YcCb5lGfeH(((wjt(p5?vM6i@i&YRs7eY3X8GJKH3N zi#jCv$nX`X=Z3D{NML!2UR%DkclEko@Bei7-luarAEDh+uZ4;-vX z#2QT`Gp0|4fWGJ;MkKbZNuDB_Oy^jqkc5oWelU}xvn}OZ=}d;Dj@0EQvY;8=MPnDA8&$o-I~{v*l^8Y48e)Ge{zpWsO3aTeJq#rCN?to~nZMBx10$ zA`R_HSruSiHj`<|Wvk_amSJ&kC%NOiYK7WE+GmnD=9k8!l0YVpIx~%C5eP&=Ltd^% zu|VxBPBJ+&JCki`E>tV2rt}yEdY7+2yd(#O3STyptqBmHY0Wk<3%)Ko;BWFA$qJDx zQYGJ@S6^Er#7tmb03?;kmtT1yPLFVPbzi?RVZbhVz=-Jt7%9$?Pm_kCxtz4d=7ug; zc_4Y>_>{nn1LJQn9Q>uG6ut_9;r;}MoGH%?y8<*IzK{h=Hp~1FS;&}Gzk<~hr#XD<7Kk(X z1A=9i8k_}41&agY{&T)W#Bh)ZhZzR%jEs!p@Mcx=#pp5Qd)X)FLeMRRom;o^U09f+ zrrR!Sh*ABqe$3M4{>`wt+nYs3=$#SHq8SFIG9qc#FWz0BOfF4 z78#wKA~mt1XJu1!OXJde88NB(rbFHX^)@n#Uav1z85(~<5v&%`c-Bo<=sFQW+i|-S zQ$um^l0t){IjXJ_#}G z%xr;{YBa2uNmf1gx(02<3*d`Vn47gwzWRF$e1V7yuj5h}?W z1ACUs6C)#1#Fq#bRn{WG^!V&Y8xE(HtQaL8ZcIMIw@b2EN4mODl;yLEhcuJI;jt%< z=79k;>|e94rDH{*SV5qV$%V%)Eooe*h`LBLCT6SVvFJWKGj-zFQNd)jPz3`4`!JVH znkhlpMD@#}*e0@?guTXDguMqef%(q0G`FqjC=OP*^)X3U5XQh4jY#~8>a9t< zh|!hMBmr+>Y}Ou+9||%@28W=IFdohY^UAg4dN44I2y?{|84?cwmXW=2wbra%OPLql zzR7lia^P)6)#qI-gkERqi3SItlcGpUfX4WR{t-{)z4BbSI5rU{#oFJ$dc&5@Xt}4EYO=Fzb1s#M(_uW_loE!$vT!h_$w)v)DLCbLtZBMXj89GXu3MjJ z6#|&2MX9#_u4(Hit;?#rz3?JRm;al66u8KUxCwrq_fBa?uu144eBYoMZ{iIh1b{iNnrb-vZLw8 zaajwqlXO~U%)HIr4z&;Cj|$By`B`Vls<;hylkul0F;V+SncPp-V6TKVL zB1~^Q%eZMwf-RXkDZ(|(m29r zqZ(#GXfi%B9CB>rX^JKSIUQxLhD{V=NL;DYE{uo*QL1yn-8Y0I`Yvv4R(PrZ5S^w`L4f;dueBe#drNz-VSXBco6 zD?=sp&FeQf=VAT9>X{A!*t8iD?iKDT%nBBSdqVnC`#z?JI$LZswh22+Nlqx`qnSWS z^zmbjK-oDEvp9y9b_B=>_C=-O;w8Szp22ONeDd*q`#wPu2cpR3D_0nsC1ydcIWEXP z>(?f(S# zgDtSK9peIFRWWcvv+)v?_+C1HVf~u5Lg$J^EIX}DnjYgSa0<9F=7ej;uiEOn`V!oKs-r#MJBrU&6n5DbmhLVGIP;NvmRrO~;KH#(&U_#Ds87 zLygh$J{}9RZix^Eg9~9Qa85>KGGSqcft8=qAJN5DIWs1WzkCb6BbR^$4I6VrMm{if zn6@NHIiBG96rd88y zY4+I{p6BL|-i#Bo#DgEsEG7YBl@dyj3;>OkVy046f(orLsgqhIAB)Zv%j6pwZ^?~x zuUnt(=(^3)TNl?7fVxh-7ppH?RK9PIcSLi4MhCx7K`(P}<`#S>=%(bkCc3M&z(HK8 zrnVO76LhZV&b5dt)SM(06tySbRq=)}T^sOB2$?IM0zXj-dN>KpnFto>T3jBJQYFOJ zJ-^yugY@D^;hT)mQ7n3EkIC&>Dt31q4JP1nU@-{32J}^F}gA8KNHed!zoEm zLjlrBjH_#u$^l!h*`a9L;b_yY63;L4scdVlY^2CpiJ(F38+C(jAqtG(A`_o*bWmPC@Atm&evDSOn|{cM0#XOyf1;7d!?x25yG+Q#ci?bFs=v z9x*~HOq-?P5~>JD;8_waerZhytbrx6B6Z7ie)PeIuwvM`K?-~X73A{ei`=iA9b@Aw z(6lkKSS1rt!6IPzK#({JMvZ0{Pd>3n-PI)whw0wfEy<|Z0Bg<|_^#F8V#Rok{lY9- zS)f$7c~S(+d0C|{Hj#g=%Lh(~g(Tr2j7&rvWzW8Ywi-uA5JM8wQ`4jk`DIpD^{nL7 z5YUIv38bFivloy@G+R&yfp_Zv zNKcos zk>NqqY6{hIrnMDV7(G4+(a>d>Vi0XG_GXAQQE8&h!rcxOmy&kMpa^%QxuDc2JnoMG5Dny{8+nMLpLEG`JpAuhG=3FaxH%9Jov| ziKZDqj4V`ekaTSHSld`Sk7Rd_?sY{i$V9diE2OEnfWPR5@{{U@P1Q2EJYHCs3L{8x zePJSMPdcHViko$UDpw^zV&c@S`(eWgU-BUsc%}NqBOI5QQUd65C6>*QR)>X>l5}WX zdSpTD@s&4An$(!;zViL0JQZ22T5!=({hTReQlegfkaY94E0)isby~h9$E~Y$Oh)NS zsgtCmyTyU3+1_9It0_0NQkscqf7))w(PwQ7I6v;%&Xh`gb+Y+0GYe8>D zA4bP~hNvb~f(}c%f{BR)n6@E<^^3Em{DQ?oOgl*ljb79#0u>z<+u$aR)^o7@R@?@S z`54rQ+386v&gA6y$?MmJ+mwvAwl$9oCkS;V*?sjgyFdnW?=#QdxIVxR={t(`1jc>m zSJxnl#T85SD&HwaoO=U9Wo3s~+`B^aErv zlgX^a?lN^#>M9khB&sx0BnW~?3<)H1&Wy~M2M?e9y7#yCy6#9)l)5_%NXv}yaKHE5 zbN1P1?X}nHAvnIX{UrD&3c)NbeuWFL1^{M&lsA=rPUxZifRqz#0pFdMufP1Ozw#?1 zaj18p#{j=L+vU^wT<)Dm=xxK-2D_YHf%y29w||yfSXx~sYyR}k?K^irBT6zLpWgn& z`gXtm8^4AQI67-w>i_ub?@(X~p7`|7|NPH*{6IQ9+;`u-#ZzQd@87>i;{Tui)Bi!1 z0l%AEpN+vyu+TUBP$?AOy?Z~rSd}P+9Q-eHRVG1R*jk4xNi^qr*kJf9tJauoz<$Xj zW3;(227yr`5?axLDFG3PI)^iQehVTHcgkg$&+22Dtw%}c85tfK2M8TRj*gN1L=lKt z$UF05H&uuwdE+%}aaf)=6k9`I9afW zcXNh&@j2n#=^SwSTs$`UDQ>IQWBYLcXVy>j94%DICRCF-q*Kl}oa4JH_a4%KHywbv1cjX>u%{BD-r?YG9hI z|4MU{XI;!pbOi+nlKV=e>Qul{&5`IT@HfQAQlUSd(sN3(Hx3?4rtUD+lasMUDuW_l zjQ(3~mYH=C#7K$jcYC%vkD6I{TufEQv5RZyj1FFyvIMtk zS>&53=uIm6l`q(8^&!8L&Mhs|Bo}PT@%JD7@P~xj(LiyKh$Q(c>=#y7KfL)P*6r@j z(;L@cT3z3G@BN#xq?7L1P`!?lGL;edn_qt8$&*J}^g1E$#eWi`SX{XA(sfuF>}Mzq zT9I{*SIk9hfF0Nm94uHl#1WJKyyI~X#1yNIi#J^=0bpb5vi88^ zl|GPy@K`2=KV9G8(ee&_9MO$e@^?O$ZG)i$S>ie`o<9#N!l<%I@Rz^-tM7dOpT5U# z@!P-s+m;FY#=rYjw|kf!#Wy|Ah{)_B>?Q1Z#ARX@-=qvcz_lI@f4P7E0X<)QI;XCi zH;-XSdP#7bT!Uqhzy5P*PoC#Td<4Wt9szq8G1s$!-{r#iP->^(HsNNz8Ai~qo4cV_Kd9r~a zV;C?j74hW|M#*~GB4819wk2HdY}V&WR5Mf*<1fdSLUicAO+obD*L{ocEFsQGsccSkL^t zSZ)Ag3VNJ5GLjzQy$HGVhho$B+ufq>+oF?(J?kW6BFkLK?$xQ`&TKE2%;t=bqy6PTOrv* zWN7j!EDGM7a1S?{2~VK2*ANp{(g0DSkS|cG7)`)bx3GLG29~Op)?CQT&B?6U>`MuX zvV!t_7ZiVUCUZ8O44=2dE&caz|Ai$9Y0ZEA3twO{fArCZ6cQlPeBsrX@87%g!H4ey z!`-?4sX80K{tLH0)>3C}zXNN2JOX4VT}2y!UxXe(jG#zO$gs*T@#Vw!Z#p-Z9zf)Y ztI>~6fcEp|pXP)A=;r%7d%FY_E(S_I_yCP98fh<$ulDa-+cc) zVkNODFq!81MPl-Ku>N}e7(Eg_1WkmpizBrbEm+#Ronx6XqBa*+x6?c0|n%GM86w@iPNTad^*xLI%~HX$B5ovxz}$T22j9crVk5rXK;Zn{ z7Uw)2N)9|4;Z!Fl{0i^PUno3q4eUnW`qsB-qpijlzs_BVK+@~EJZm2nV{`(PmX_Fu z*hsAJ#+JZ4+xm((gz;(fzxDH1yjoN^Ns9xN1DK=Z?Ejaub2K8U2x+RN5lQ!XbMK6K zAxv`wI7B4Ng8xX8SeQ)y8Et$rQ!rGgi!qAl)XmBU4Ch=0f^?;U^InMtu5sA%>9o3- z9v_`hiGfLi4sc;GZAs2hMcP&~8P`gaAuK-FY~u!=eJ~D36IwK?4O~!Gx>=dXP90<1 zs3Xunr9KBE>+& z+zv{<4`4A0K}Tsa=A#Wz)(_h}r9Sm2nSymq_2M*0H4)3S3znddT z7th_&?(B@Ats^F6$?Z$Qascf~s%n)`JsrX#VVoCG4P96&MVIb)4m61eB|>=7-47NH zvn))1Pz&XXLRduU1j&_>ZmYP}s2S1aAaQiO4|qV_2N6+Q@^F#-PbQIv2d5`G*8;k> zPmehbAnRiFX11kTD1R_q+%=<-$n_-X+SX!rJKpEBhDSQyA=qyECRtL+oWnw|BHwMP%`@uP)iV}Eb= z@BjYqjt>vvP_L{kzy0=Gs5$=0fBdFNeo!gcwK!Z5P3V;2ei*W^e(h@n?%(^p-y^+Z z>VNsoH@&cUJ%NA)^9O(M2N>BAsz^Vb7c*o81%{Gn$VTGQ1Tl#3@B%gxMjyWUKm6lA zGVXlmen2!tWUo&y_VE$k&@}0l>D|-KVcAtLo z$(O$P2D<#R7YzeRHVKNoY#w~H8_l>)5EXU^@E_}=-MxFyynf;`cne95b9OhsFnUJG z$VYrYAs1!8B$TuLFrnEhtc-8n1^#4+xLI}-o=)tPLy)rSte-^~NJP)v2lW4&$wBht zwN|%&7(gopmxjH5cYnVh%5;cL@9yrw(c?i=GF8KHuIn_8O7bXnh@j{tg-A1}A>>zz z+JKnE;xbipNs!ge4aOW&AYFjW8Nsq}7RUf=b=E#lkb0GRbBjp@>DNk`u8$2MIKqr5 znrt)~*)cUA$dy-LeC4<|B+R_<>g(WTL+rGG-HWA3aQY%Oo7F;f5)ZyVd^@xlCnJxW zBefIgB)V@zGEpso?Xx5W5oP;Y<`LveNMEYAUThZNB8)~0#5fv^NrBsEop;}P_tB## z(Fc(B2SXjUR#z*v7J)x-f+6I?uz#9F*DEr1NT@df0^yH$<l0lPVaE zj7LYj36iU7LF{tzGA@=*1`K`}ImG)CwNTjN zmoL3=dVKi7`!~7yS6;ob`|L4l^sFKRIp7AU!j%`UAzpv`)+cXJyoNU+qym7DFZ-u_G*5$j#KMVO_2nBk z&bl4gENtrB4sYc>iPy6{`3{?ERBKC%A<_BTtFO9jK;UDclWs!;?9e7!EPnB|*Iwda zF`eGIeVa{~Bir82(~m#A37F0kCAuQIvbM5}X3zcmcd15x_~A`*Tuf8H_{M9!v5xAD z+c&=POKg5fpGP@hz2E;T6W*4DOa*+cxIzR73C*_dV~r81nR(q_2XfKXYcKF|Y(GF) zKm_0U&RB9|w;-bRU)kXIA^YoJn3oJPg^`sO#k=_qevFC)(*V87%S3GO^=H`y|eIn9J7 z_%tM`2f1j*PnZ+^l>W;ZVPhs@KJV@mhXdwEDM5vTj|(lMVY7yFlWf&UQ0A%z0|5de zrI1bcM+3tJBe9{wGgBR;L$bL^;PMkP?V$OCb0XNHM*- zX!)JI-fISqy4y2XEXF}sp9q}@TDP~WTw*XO1pZrf4o=LdR_Z1upohkvVzps;5&Iv1 zVsIf9srNtF-4WHg7>w^+igt<;y}GbPb1nwqmrm^s2UuEBq!}m+zp!vdP89Z45P833Ux&faUxZ-jieH$Gi;5ZVx7pJ}P=S z^OEC>yrtRQWh)>GQ$^5C@_B!3xf+RxkB`~j-VQo(u&pQ~(k+PYT%bXWl+Fii{8M?& zNCCN0DiZLQq^c>?U4cjC+`9&qz1AYd7tD7TIqzVH0DOl85N#st(gs3DUZB71!@BZK&k~owT_}yK*kc7z}f8iqu6T}o=CfVUZUlq%G z{rbx{SlHx!gc7csSWh_SM6anZnGkENbZkRWVh5p?8{h?OIgAvSgvc<#i4}6b+$}Q+du*w88xqIYZ#tx-BlZq!I`t!YpU(TU3>;|# zAp4KY9L0&Gr1m3N`6H&vS^F8&1CNH|c0m8+$hERh0MRQ)3%Qc*Nc1JGrZ+65@;MzL z8yg&-%@JnPAl)i(qn7v5v}XC$4xz*(J0_c};}$YY|?9ixKM>+oBn z8To`M0VnJ5>ZZJt zj%7*3vJZqrF4)9DmbWeOtm;V|B!Vz}Tr?lXZxQ1xrDA7oJ602zhy~0h)0Tk_tixr$ z7#=WtKHuR-3=BzncnLMEc~25eR0VhD^}L2VF-}c%3PKNO3+|5X#Nt7G7T@GvWHNPh z)C~h2Yj+S6iSk6KU;DLRBjA$Vvr&EU!AC|aH#ZeP`4QW#3##6Je&=_7huOco`^-#y zJ5I1Bxk9d-GYTI>5NB8bZB+a$qQP;GobxvK<1!fP>o4|!BBQ=@O;bVkZ(8|;_NnX>9=04Q-M}_j^ zy~EQ&{nEA7bfHG?03G-M3bb;h6Pn}m1InzCHFJ$MDxuR*hDm2ObuK?xj!Qagg<0M` zR3fi+&S9zD=~6R4*gwKuIbdZvzc_|!HytJ;x+0~GmL`OI2Pw@u#EntBYS4m-NeF@noi5Dwo%6`@W-k{FgPtJnOo)VYQDv;kKrytphWg%w7 ziDcX#ol%djlu#%FgVJn=_{d2`@%HpMnHkTTQ6pyLREqg9eU?_1!LqPS;vEU*X4Gob*p5Vd-_;hLAO4H+bC5b9+3(+l> zJ;9VCRbwhw!hjwfAFv;=pT~!)Bh>9E{AK&u4(u0R$v~U=PK+i4ed*eZcqkJMIY3b% z2@7&r$Awje^5S>jeFr=$GKkT4zxxktCs24u6-kOQ?cC=$86v#|>u-Pi+W;Wu#xOpN zl{FM4rCX_DYDkL!zw)CWzQ6oq`(f>YI8O(bEX99%f)L@GQyJ^H} zcR4{fxVy!r7T|j+`XO^4xJfkC7n8Zfm>O2wXFd$EAT2ye6rE(@g{snI0t^EvbChB2 zttRaX@j88=|AB?)(zL~HqY&W;vNZghQ@i35tvGZRp@7c56n>RniR*hi? zZXyl?u}%_|$B;H5)8v_Qg#n{2asnoF01wmO!t&70$L9zeAxtnboWnb@<*4#})^@i6 zTrwC#ROl*bdC;}3oi$bGjy#o094yE(JA||Lgo4*uugf*GMYS3h!&U_4$J1fI9aNgW zOXb;U5&jYR{NB!EBWbOLYDkQc!lDTy4G0+Tohn*4@b`$Gvcr{cs>s2^;-sj+P42G1 zP0dld0&RaU|= zqSrbqPUTOHd>L}OwQ>tAH#pyN1Das?QHM~;4$d@sj&zuDQzDW%uFT~OeZe62f_Kn?4k zWRr+&=Ob1!p_!;h93e82ONR3yrMZ=}u4sQ`uNFHdd9>e?<;w$PPy;lFck*sBzT0;` z)A=IONp6YEk%02u?|vViDba`PBu2a0owu?Ei{K9&?ixbhlUZMN+lTSb1?5^`l@+oc^YAt84fB!%KJBElKF@3o&Zif->g(Luc zA0B4_CKdK4E|u|o;p%0M6a?xBuENI(M9;M*#*hra1^7qI~89HRdGUY<=~Y{_XK#((V^Z)dlD?7-pRIAahHiuvV>nPKHURv!2h~ z49H|^-ppdP#k4qAT$p*4s1+a!)ShX;Too^-SOcBb1*4mk6;IlyVWKT-<&k)tJc5gO zPmtIyw(1MC?N?Zv!$P#qoSp86{~R#3l36L_%I}1>&QZ5RSL0M@e62~WJZp~>^|J0H zgo1aTN=MU_tww#dUQ0*AQ-lFP?0X%4t0IO&m(KgsxWT+xp9jcrvb7<8;roq)bS1QN zX)z@Zp7Clu;jFOOdY@7S*SJXPD8)2dA2R96W#edXZU`YsC!H=N>H8R8 zGYIHK^?T5TOWjVb*KL>U4GZOpG>@Nn{M~y5**+P)T07fnETbPf#;M86X_E9RA?6E6S>Od4qu)n8v%3_%a!Y>nIK!Doh`BJtXo|Cuf z289>R^-2n#9aB(n20{|2Y@Zk0#=@@?-wAUpCw#j30Hze-fQw-LtJ4z7A*u$Y5~X=o zIIErS^AWtP)m*r8@e&~bc_zNNP<9Jbv%@X#>z1$b7uyN&JufbW!#%Gt+cE@5hh*Xa z0$dDn4OslqBQ*+fsbKefXy^Ehx3y2VrBEl4O7ITeHbOZ7U)q!#;T>r1C0g+g+_I1G zTrIC*<&bD|0R${Z695^m1la@LM_z*)oB#Dc{}=9;PvOlein1MkeCrl46dy+bwagjn zvV=t|`f|z6^vZI(3{!=D!oeCn32&Syr!aRKCh9Q$ zFl311L}ad(U5D3@#S_*UK>iMP#G6}DM4YXoBVOsQC9cXuE_M;ikTDlrE$0z1I9v%? zjb-9ZUF9$AA6RIk3&l2I&LUk@UgxZe2lrr8EQt9Y9k4oMHXHwvU+{BHJ;^^0?#Xiw z&Tgj+UgKmI?xlHaRNdIuqX!RNmCc#LL4uqVl9~RDmZf#=IUR>Jgjmz1pdmv8G(_7h zPtgu!O1IBWNLfj`PrK0TP9U{s^5HgXd17n1icrodAj%G+tQswK&e7!jjTcs`3x}uB zc&Z(E+ii8R$|si0wN&L9**JmZdd|v^<0;B!yWExqA>`jJ%Fx(*fNio}FTMBRK0b)| z??2qtA#C*o5JW|iwi56%-Z;_@5>LOBbh=E!V~(c<<*>?UJM^mzdeMVZNr*@i{Fe+? zAsB+7^aLidU?7X(sK-Xxnk=_S6%krjyAgFr0C|POlVj}Qb+A^)%>-4&Ogi$z?j)-q z{eW*bc_fR8w41XSet53W_d2J$&lFEa1A(y!X3`2q*&3LlQ$XCIE7^Ay(y4=}qm=`} z$?2I8@kDeZc7Z%bWTSY>HK9<2A|SR(P(4ne5+}K=eEedRep?F%vUsvAggbM^L zg?uJq&CzKG{ai;wKp3}|A06+tPoUq7U>-Ax&=ZW9u5Ey*tIE6tze;w0H3DJ#c=JIh z+wue@o>*7Q2m~1W1@faLM6*fKv*x%I$}8MDdGi3LOTi(1(*a99NyRf z7bY(7hD1HU4PIc;629XqneCGZ83aDRKc&taH@@sjCfg71Pdp-5CEeyVB%w-dFI=(J zFM;pPH@~#Avv>cY>TfiqQV}75a{Xk@uiSXWd=F<8Bv9Zmw{Cr8#hbU^{#l+H5@!6A zv%f3Dj0~5=Clb{D@DKlx?L>#6;}akV5Dz>wh^NTicryUqVh}hqyz=tPY;x>Lyfb?P zuocjg@ntTCjf(F8uXFuGVTQ%k2*!$gL12g1gtx|+f0G=UM7?rmtvt_}@clRh|F5`M_(${Z z7)mD|J-$H{umnGDQH%)^rz^oZsOfdN4HmAxpD2qt6UT;iJ-wORx7%@pib&g$K$i=UswRu znaqKzTjFiHvWT`pS!|zL!`xhgIqO}u*>vj6j6IU?5EG&iNy2>MvrkapEI@!)!LL@8 z8bP#B@aBy9kz|C+3h{g=N>hWQ!%U3uBXa`3@|B;_G^>&#FDf0cz`a@nOMG%dSZ@&2==dC;UKl|Xr_ek;=V^4#)oMR zK$Ay=@xsLm{7K1^`vf^d@k6y82|Z+Sw9yW+zPf}~`_&gNQ_^_#l^ZL|t(|Av+&J!T#<9of{ z8Lifo)E_;(4+6x2_}SC#S6+IVo7mgmL(2?_YmlqEpWSWNn`9aFTK&VDAM!pRU-uxc zV9(X<-TCY@D#Bps945CPKW6{zD-k~6FW0YMo30f#uq8L(QAQ_ z1NE8j|KJ^{o-9H_ClT4wI{ba9wQ}#?{cnBi&)#_BOL!@4KY7ZuT3cNYwlYv@_Rc#$ zpk4Uxy}Ms{?Ny%FwHL3guB|dM@BZ)y4Bfe{bEvjI!WaDUgTMW|zqx$*BJ3=N@%ZrI z_NSlx!{7fM)A~za`XbBn_;4SI(Et6L|MA@)e1Caqabc-WJH|i$!{1=uMe6zJ(YO|^O zifbVfOzjM+Stf7mQnUz~EDJ(T!Ha&%^(Ejlq{K6BA0h{{on)453y`2v%$mjQ{9^fh ztF}-aucwfP>w|K(H|p{H_J`w#yCmLLYT7FRz0@b*9c z!}mY?^g-vW|M=my)aJ#{t51bfLt8o_AsTc}#{IKF=d^QrOoEPO0UnsAheroHyW{>) zUgd};jv<<2*SFBsA)e^dP=+iLVN!+aU#WN7T^0*jAlvgtH*f0r0&qMUND%<_fPu1j z`i45~p8g55jHG_7XNms-(Sko^TS%yx)}Wu#q(ONABDacz%9N8xhlk38sXR}M963f^ zW(_4oO!&r>cG+Sm*Frii7dbl|Oed%7tCi(NCd^r*f~0<#&2c(vS4yKMNqp9OeE&A$ zaP8yW^P4NX+fQ!Xcrjdg(|e!Y?VfdQz^afsLDq6oErIY9RBDAh#0e=IHDSw4$KA6d zrU?5ylVo#aof&ui8Z3cxAU0oo{ncxj)yThdfhk$50NzxI63eY+x>c}4U?1khKqcqG z`HK_jqmjy|RL*dT0RV&q$s7Zw56Dsfp$4EjdAZ(G^Hq5rC6x;oAe)7V!ZtnOiKGt&=$ibCn?xt z7xk@=KfcAg9~>XCRAP$*1zs^o!d}M-OhIky50u1fiuWYp{i8qnBQj-9B)pjKbJrwU#PRc&E-~_4 zBwb)efw%?m5Yk6m_wi4Q$@suEv#TE*b6|gI;WnFAqx9LFTLTjUoN=4g*48;* z!wc-hO-N+)7&K}Fa$jpUpFDcRLLv*W`5eu+NH%mh=Z^aY5{n;m+(ilujQSu{BNUoqDqRx@ur0qiJ zsZ8fSn}y{6MgLaHDK_wPFQhy8Gng&rzz|e8l!Q?5fRFpy&%KS{{oT**tgUXa+nt`Y zqfaMwH+}qm@ZjQW&Ltm*_6GMmBP4^fBqk@1!5jY{qDvu&efxBnMvhS)3%unp4Y; zk}*WeTMXrGeq~S`7A+|g;|5-*ii=?7jy|i?_c&)(Ck4U^&38997)DD10~XU;MDOX) zLR!|8wv4u&zbx6rof1y0iA&~$PY4r_o29Mi+~#@mXzQ1Re!UQ|=f9p8#+ggFm^&Lv zv8lmsK9?;n3N|&Flwqv1jI+?o0RBvA!vh}D&<vF?~C1xQCo#2+DR8QDbqL`saq%yz<%OQ+TxA&sZDa2aF@Zh^+-Sx8ZCf#k|1H zv`+!EwjZ0n=nwUN#wBUcQ#M}es4^fvj4yu0Et*_8&wxPyod>xl;;=2faP^vxjj#qe zKK~2G{qtpy7TlYn-h@~+ykaLbAXot$`xy4*zNc3-+d}%aUWRboZE1{9M8kTRL+cTUubk%);ewry9FXM_Y;H=DaL~9HA6;biK}4ZA8W{#AMXp-wglEMrU+_%( zGMl@ByS^RNnzAZ$C7GAdyIvEzqAWJ}9pVilTVjI;zB!C9?>%6fk((;BaiYdMw?tAJ zJ2Kb>+Ga#*t2u4YHSzgH@1W6krvYbARfRUPI_{Tq(*EJ`JMX>+94Bxon3voHIQZ|1| zIXa@S33l9=u|g(+>|o4UjqTASJnt6jdLIq#-OO(R8CZ&oq=v}O_sM)+xZr(=ow)~k;|D`e%PGTHuU+6B-uvMXkrWsPCv`h)r?@;|hC0r+er}V>e|^?v7&z*RZ_UVmBhJbA_lN z_)4hI@(yJ5@85h6ZZ-Kk<0jqXdv_27VYH)seKI+jP}z<~r*p1gv-TL74{v_N-te<; zzZJc^t<>^f)6`|tIr1LQOYGyHMxM#L#tQ{YNam`v>>g4FELQ2$@Bz_PAA_X7_=`W! zD1Gby{J$6<){K~1VVx5Kh(R8o2G<-2R=l|46qS-`)jA5s_v>grYGD_HE13c$a&CvQ zHW}85s=VhK%c)3{(zu8h1>OD476pOPv;ZFdWbf#-10kz)_u+PR`P?hZ>%c!K0 z3g=l@kdz1qlF*Xy@2Kb70sI6{*E5Pq&izX(Y!c?LNVln)sw9+H6K+alKArXD;e4i=`jIQcPut{*v9>~nUYYWvAaY-qYG`D+LN3r~ z@vGJ<_`Y&&mtnYWUgF)Ju03Ub^D=HWUrV7#p2zgufG%v+Om^4OOK0t@$#YfKS%d3T z8r`zA&jyM>!GG`uaC&;e7*bDSxFF+02K~SP?9X8ikish#sC6SMjpa(rOme@>aYSns zySavdctTP^TSC}|E~?R74MAx^8Z>pPTF{S@adae7kfaH{o=!Q_(K;!aL$0nn*zZpd zP6v}>eP#W8rLnYkeAc~ri=4dOZDaUB(hWOiT|oy0H=$c>HKds$L3bsi&jLkUi1}ki zqx`$0{cTieI&)%vl7n(IVJKk!9}D3bIK$9F&OUdBGrYzEX$G-4>IwsIgqH5IJzgBF zYc5FiA$AhW@c9ITD9IL<|5lb&tB3fBQZjtGEL!<_x5!{JbM{wOTam4oR##i$fpw0F zEuSCtk?1mnK7+;tAtzC&EgA!0Tq|OnE9a9sT=)s4`V8GJUH>CpQemWsCcokmwd!ImnqzZN2^Km^~`CU4s}P8?~=y7 zq=tGO9~#^v;FzY#+QD^Sn)XPMWeEqU5v9N)7V5ONuCp_*nOskG~ylMJ0y$~ zxVb$Mm`Wp^o+Mx^8cbdAO=DpZG)5;lX=O}Z2H+0(*;g%o_-`JNh(y&si< zPK&~ePu&n8Lwqj>QOq8#d>^OVFMWyBlAcKmE>i3FZTn1Wswt@= zIezZxT+NNd+yv;(8XrgI9*?GA9-qD&s?#NtK!WL?q7yj`haGqqFoM}#nSEF~5F*#Z z?T^LIBOw6~9Q>G2&aV@@*)VuWY~A9Pghiiq(-c5YPWWg)euiZ(%f$}C#RGSeP}6qA z5UG2hbIJk5VU+g?CE-V2?Yx6qO#Q`oLJeQto25|Ka>JXI+Poh4L`ILxkcPpXJG|i0 zHUQL90zGd9p9hQu32=smdpSCg4J;qZpNuDT6uQ;m@PNFV-^rE7nM#ZTVmcVN8WZac zO5AV%>@R5>8}!|W9OSbO9mr-12f(G??@2Nb*o8csnky#S@?KH?CvlrudY{wLOnhXL z`1z6z(Vzzl04Ciu4%A$*0li??6f6dS)FIj-f$HbegM>za9*P3EJ<|@NJ)~F;v%csd zSHX?tP9}qD*V0>laxz&nC^9V8m*;E ztLH%KI|us@9&Q(8f{_Yo?RTiusX1;R1-B7FcViurE+Gl`c^V|O#}junpBs|8Ys;ku zi z6*uq-FN}%Z3lxAW=kRK@Mnm{Oz*AA{3=XxFsaoi(2{D+m9ZEU8)!JBZVXpyq0I&yr z<$fIwM+3-%b-grNqzOQVt~JT;h_w>f<6K2XtVG51d8boSdlIEldk+g5*>$!yeBed3T3ROSWx^~sTI?A61QQ|e;~cu0 zXikf(MDot>(5%KuCk@sfaqxy zPu;3fjsRQdStCxzEA^iJo&~b0yV#am^+qUhMa>}yIXVGc*rLb=Xr~6KZK)TWTUBxz zWHLeaWW?SW-1Q#42I>YP9S(eXm;6r69XmTtE{xF=D^JDtRp}UZ$7s0E5rKCDGgWTZ z?Q)U;q%-B5Y@N-(R-(3j;RV=$b3!LcXE0S|r8*>Cz{1Ar%J!qjQ63+2JExoH@U|vp z79e(dLWX&&Zndg6Ftb-VPXM@cQyd7~zUv+Wb`&-JZa-r5{^U>oge{6YLchgNM^@u| zdzAaU715^48*yANO5-j_w1{YniwJLEji&KA zI-){wuzPU+;wAcs`7aSWBF%ksk`i2ZNq&&G71afc013z8Fx-^TE$>d!Q%LGMDx_Ae z$$~m5ok&8%FjK=~LD+Wz%u8@Lee)!wl}1t_+^wFgUMvr$g9*kIxIw`pNoz^%=#*V= zGH8zm?ZH}WwbNBaXK+MX-K!rTObeIANegt8=Po*(+Lwq#pu?ISpcgXj_H< z7j(c{HQ(cT4S(_CGQ{CzOUOX6?2~a`-0KSvHc8Y1yo3Vq=|-)#sIW+-Bozhy4CEv^ ze{M}Ibp$7Pmdi`Y6}ptuoo9P)OQd{Sk^~NMmO?{UsqwTNdDS4aa;D2Gi(Datwy?+o zZNSXo%)mQ} zoK+Z0rD)Aj6KyqHViT3louqPlu4k}JjLbx{5(&Z7xU?;l-A=3}_rHJxJ$EOR6%bI=c~}v)VUpCN zPme*AYaQUudX=;lewhFbiR@`hAy6gV9=v;6*f{$`2R6`LS9Vh}uY(40o4T1Q;{vxc zXv6gWyLVmf4VAi$-|U_dZIe@D5!@SrgZ2sn4L|Y#AuZredP>%0@mwA-1;NGPJA7}O zBs;tVk7FW%;qB(9_jn%(gf-A zx?nQF$kD%iCCn|#urnqm8)SIz<_C1-@#%)wo^9{&GGr&1;h=wWkZ`1~TV*PFrwRwq zXelHZ!tD!L?TRR#V0a`ma2OG)ltYNL9N`Q~ZKN=&ihG?Z_ZELf|K#Xwm+R*sdfJu>E)S>{S$22}KjmT7 z>TBe`G)SYnOUgDW-_zVa1J#yT+w#g9TRQ2JRaZU3`7PcmnmLN}nl|c5&drb?=d#Oy zq2RQ~Z&?{RvMX)sHLY4^-4X);4n>wCSBhkcRlWFHy|XCt!xf1`SZY)4aMO_G6`&{h zJ1IZ4Ze8Bd;hwyyvHL^z5+}G$o5WI0KL{>P`w?)5RN%|iMrg%zfl)Q(oRmg$YD)9Y zSX^wqZ{N>uZpmV)NVf$Y-suMJu8wrk{0PA9u>^tRMd6LUWO*=W`iT$h{uC0}?j`H2{rvH2yMVs_KN9As1s!66h1eS>Wz_F@nR|VCL-wjCj~?=UWRM|!np`B`tF;a5 z7n)&dSkQ{N0mG;BE#If?N@-S16Hjgu21izN)Spy+oYx>G!O-25ZUm(W_+5Ce9BMlk zY;_Dxo4X#xYL+Y3i`SWl5**>c5ekuxOU}Q_Qrwj@kLery>n;3-#T}Bm|)o?qxRi{ zLns*x>A}vk8&@w?*kH!pOD`cqtR2sp?aFIM3HP)E#>;;{(K^&J=oh4MTzJT{pNN>pIiCISy zSPotOwj8?4%-h!Cfs!iXyMoEW3LZJobq(aGz?w)GjCD|YP`_cZU z92!{Aeow59Ygb?7Wn_3^R67oiN!^ER#?257DCL6Gz<7e%vs+6mKI_x0L!q(0P$dmz z+JI*$uLY3q4Gg$V!hU5UfjzMb5RM~%Dfql#9*?^LIl%(X^Vu3l2`QzQs_WI#D+ z_9AIxKSR@p)+A*^WI97tZFB|{C3LjcJ|(#Dkf><#KK2H24VG;0D69!Q4kkr;rMdRN zKi#8iDkpoV_%LN{q64*zkJSJjvT#ILbGpeC7=co8DM)MuAZ8P=sCr8eumBZd zipFyc*}0-6fJ`j$lM+hXJ98bS9IE2^)-?#hi}1`s$!La{CAN0*Vl)t(pMCup^U;1XmmRdjKF6G;9Z?X{AY2ZuC!^ zw~dCuR<6WJ5&=EZh%>}_{^@)FxbyVbb1!dAD02`VR$4HQ>%q}hsxI#v?Ihe{IScck zEG(V~(J_TSw?k5$EhleGW-4ajNw8i@wRBi3lVQX*f{QXF)wdT;3@QvPWE^9jsZ2EK6=usr&lhXyKrR@{_pwyON9^_ zUs__7mDy+a4^Z-<&3Hi41xT~LMd(~!SUla>P~mRSKjnte@N$WZu%3kYYZh4%mksJu z(gq-2O|*uJfz2uiz}n2_((=+O01GJ#ky@$fV0<(@>76NKt0{4;GtRtRMj>G2)D(jA z&SR%3bt+p|Nf|S(B&$#;OEZkwCE>6sXs$Cb3#sdnUdL`0N9zSCJgLYFc1?1K-ZJPY zD;A6H+c5i6V27?Bn_K z7p3&x#NfMVtz6nrO87E`5*sn1(wB;a7JRkTFec@tLZLP9i74l3&M+Fy6g8CkLk=GY}+*%{*#vWVINuxX#LryxR(DTiV!%9s#?lc zL6yBS3eggVyT5MHZbde)LEn)T=>XR3bW6bnY-b4qAM)h%AkPn}$N zi{{#3p;!}`eT$s^>eVYafiN9;kUS@sUOjCHWGRos;~QU)`F~mD&Ft;=^$z|Dh8C2kP!zQJO$(d z0ph<>N#}!{=Uym)2+=>Wy0uRIjF@{8OEegh_{0U0ATzh}G}eF_EOFpi^cIDiLzL!e zLoZv;*Q-!>#NmwB6S? zw)*vrCx>mTn?X%cZhk_yWMy-0bD>rmb`OXIwS^@r(yzY(mvPv8xBubCx2fzL9i8m# zVK}VDDcd7$z@|u&;b?m%^ z>*UsaOko@FatLLYQG_frCW_JCJPElTNky=ki=ZR{${hJRQVop>GTnMyKRX*+kLUy)o<$zYV3)KdA8qD5*ZS@>0{b&XT4U%&yQ zUTwK`z`MF(UkeUXL^4Y5&50+?1`F8AcOKq<@Z`~Bc5l!dBm{aJ>tei=#X99bb(Pd; zvk~dYt_y7VL{L86^V>ra{KW+isu37%w?cyll~UevGM@)#zWOe-3x)&$6L7iGa>Vx@ zz?Bay%jB(kI55e_r91}|cXRNGaZ=*b#FC_yKhCg|$J>uw0Q7_Y_>+%VrsQ1iY7Tw3 z)N`Yd3&RJ^`y-p)Y3H(Q_;VkhWW& z^mJx80JlI4DdZhJ>fDY35{2$U)VeD66lHVdO(e+LP_H;KRQaRWAobkK$#u>`DeP>E z5{pFDe3+@Kq6t=rBWXFhZ|Xre93LJ|o!XB_8qH8S_W5RH4V=OdkcW#^OXu%+yC?E3rATu@Sn*OD>F~v0Efmw84l6QDT{6 z)B+Ssgi^5+sQ5lWA!!Y=_eXFSZiXiGB3lzyI5l_G1EZNQSd3Nf zebm6BPbB%Si9+l&FKkvTxgf#3E!$AcJWVhWKC+UMMSwL{af&2(EyV?l)ZLz;5Yq4T z=qS-_357hR6}NA@&5iiY^PcK#p>s@sU_31i&$JV%mjtzWb!im{QLI+Z#=8e;`H8I5 zf@}lFJ$f+(#WElte()jL=*4rFY-vKS8rhPjB@^8)5HeEA?6@`-u|+~6r3lF2o%1Yy zn!D7`M7v^r=ec~bGO2L%EaZ*tN@Kxg07da-A}|zfiwcuW{@VN~$-33*dUo1-{P5|+ z(`jvGleQ=huDj3Z2_mltq+S)TVZ_rX#UV#2u~2caqXD*3rgYYX4u{4f2hLgp^3|x* z1uv{`KRp0b=wOf$)gzV{B`qUnK39c6Rb~DVedIMEFN!NYweQQH33#s_&~TsR_r}ZD z>71f9>F&MTAu7PqUT_b&m2Aaq5rR6g6dH5KXFi{^HE5ZO5DNx5y%;TYYzDT(-h%*> z^Bu)9r2VK7=!xi#5xuNHxENadfV1Zb0i@|aY7k}yKWJ98O!zBW6MA(NuF)lotiTKG~RjY}Pj5VbTSt#0M z+N+ILC53q=F)2-BC8kypNklA`CzRAGvA`x>5T0GY7-JmPQpk* zV@~j$le2xCV-EJ^8x`|Y)1y(H6WFtIz9WYkaKl@>VNA?So3(||pJ6>u86t!n=%1o| z&ISPwjwLLW$_mUGsW4{Ziu6OirmRA@T%A?%o_O3uKg#Um2*WxYGxF9&j;GFErS%}k zq>}OLe!n-99WEI53|5=IPaYDjSKvG(J+!k_MXE>&w9z#<-5!l^-TE~8`4dfZYpP_<_mrz`+=c<OwA5F^B)7f?Vpf!vK<07oB1HnX_)3CKJS+rqbJ_ftFyN!)i zN!$ebRH;_HV@2}bH}d1Vwg8j67{a4cS{&BK;u;*A*Z{n@8!a*B=<1UXLp~?TUgzx0 z_Peeb%o~Ocyg2pn=J&kw(NDM|`Dp@w`9bKU+39*RndC|&0y5}EKQM_^oN!sjTt-2d zW+FhGd`Bk8lOjsd+U)7=TF4uo9mh##P#ld7BUT zNUp~U1XA6TAno$RctWZ_JiKl11VPs%xDW53Yu)Y%s1hYc+maSTN^#y<3&=?ZX_OH44f`B`CGiTvt7i z09(?}(1mywg~(77p)xA}31VdpE`Q7lF+E^%9#Omvc_aG>3NCdw`#{FQjVcCEY;jou5XM zs??eF7+uE|BV(@B;aIEoBT4~uLDN4*%EQSQy#g_EB%lF&RkH1l(wE@CB(nk|LuSe8 zc}bdy6%fG*Lu^!9E!3ltd3&s==EV#4cCZ|?duOfA>_F`5s6d5k)oN;*uYpv|d^xZU%h;W%&SJ>_MU=FJ8fIieXM5mpnBMJUe<9D?P{_w+G!9kYO`0`dCg zRZ;1!*5<@>uC?HdnD3is>9!F?{eLD8xrZmj$i9c`3 zpUp+zuiIpNd3h(Kj0{f)5jur#_qr?%J?mz4vBXt*+6le%T zymDzpLhzimI0?vrN4Q6t7q@04pXrdyWn@m4;0_6z=F(R}=Ru%{2ap+Min6KR_wnE? zCVe$>4oz1in(6-K4H?qCXFKV<+f{`bAb|c{(L@Sd)8Y)v9{ZcT$xP}%=sodFNAM`X zN+5-7(aqn}V3DEyF2Sl`orU2BlDyMe{j7Vq&|H0KbL-_Vf9ddar`JCvoh7!9hltSD z3H1y)O;XS~8ns2S4<~IT^%+Y1z_@kdiO{Xyh+ZuS5l^21l=Ix=YQa$ENU=h^ii(sC z&A*z&S(Azmvx4uia5y$mQ){<>xOX>X4mrDzrP6_^uMhsWKl_x1BkllGuz33YNj691 zEa)ayxH^B7eU??<$@0>)f_sr@Bw6PqOq9q)Ycpgrysgzg#&(4WB!n#0D$`u2vlNR( zc!JW_iCuv7{c-#kBmxL+)*JiR7IK2T2M45$XronHg*TV zW7fU>G@`4h%O)w^&@>SCl)yT69WG{wj)G~eWc11FG~$3vT;~Z{AOS+~r}{>5rU99G zH8CdTl7X^`TghTH`Z>R=Sa6~+7f`Flf!j+`E3Q$UNty-*orI@kvFu+r=fV<)K~5dc zi5uPvi`Q?w@X2SlJN*HD4|JfO^(2R*s!=rOg-I=cP6fa4s3)3gL#?*V*7fJMwvYy( zf-lAWNrv1N(*yB+e22ALd>c5$)w{`>E7DyD;%r*!Ymog3G$(|N~Wp;bg)$gytk**41e z6^TU^nqkkiy41o2b3Eu_n+GC1p1=wa*9w^Lm6uSb1*xZCvfrgx{b~)jfE1~1(cqckp)>DPjoy@5MKk( zP1UJ8v2;{SR)uf4%85d{sYOd$XE>-V)L*=QP3EBTy@waA1bl zh0~IdSPVHxyy=su*APrxU25X&fu#WQVOvWJ=UTPJ@?@csEH>Rftg}`%1)TFgi-#Of2#ntG9BC=1y zPFfrl@|y~5CV0=3CHYZ$AaH&Gi{FWLeK zl|5dgdCa2u9L>Z_>fd>qUM4^cOKz(5;sWjV! zgkp12TzI;7I!;z=3!8<~%4oV!X`Cz9wnoX)w762LZ57~yHP2NS&i6*u(R6WT=W# zt;;%1WT+dJqR1LEHT+Bmve%B|ejMe5919Xm1WpeJxGL};;1?o-OD#%ZOR^gu3%x1P zA`yMD0Z-FwT&Wvz<}*amOmcsm+4(e^Jf*+B& zbG>AL=6l!{&PO~a$aA$!=ZSRWlQA1*CX}&xDCyqbh9kkg^4Vv%$r-_a*iMzTWtI6! z$M5Dd2bFP7E@qpwch$*B69-LdmJ17CGL;Y| zmgd5y`$%0DzVXt_v?DQYe4;hK0H-S9?xuuJq3X;soGe8ln5pU(qwo|>gKx|1cCBCI zADQXQvZox0c`q=rQXr`l4~1n6Jb>Q4jm+pwS2QI#aj7kOh`LVj{S;hwc7B>=6CW*$ z8R1O0A_6S)UI!l?%wGhFniExJAr{{^06kZ)25@kjhOLC>AIikm%ZioNsTzjsH8l;Y z*4iFX)L))9nBocd(?#$E<1U~+|qmLbAGWI--`g~dmlct)8z$+_Ek7f=2 z5@rdqxyVr=Gp{W$h$e-wv{u!WGlUX3MQXV! zLylN%P~595my@MtV|@iH6zo5X4O%_~Mr7&CZ!<)O&9{jxUJ51Ps;bH`Q5Q<}=E@4q z$*5XixqKB?J967UxOtO|mW9v0IG6x8hcd}X{-maL>%l<|4ydgV0^FhaDDTs)&1DOk z*P;NZ0ze^i50rJU*vk0RC-PwTD*xd1B9N4dQq-8aMDZ&DQwYrV`A_G(!slGoxsKyB z;DsPI@EYK?p#hm_%N&^vG8Yx#f@8O<_@5>b%*=ABAjiqc{D?TX1x7ELR;^hw?#wI2 z_^#HBQWDb>@xEK702_TOH7iUp-I50JhA^ZFhfSk`)b8qYHBu9fR?d9PMIGLUFHU4jYfdP z5z1x#T)DTLx^O3=QZ{mt$8KamK!*P)1Q0(jUb@geJ+ZQ=Yf8+1CaZnp%n?jQRF|oh zu*ku{J*c&XDgp**B0efT;-iTOJS2=eu3Wi_ZlZWTlc?oR3(t0>W3zScynE7Q27Gv6 zrFc6^+Xj+48vM?JP2$9L8$_6Idtd8jUTKB=!P zHn-N-R?z(}PwOa|6r-}H3Yt=P$t5U~l=Q@goS3s>UEc2;k$3kG25EJaDmqUGQ*5(t z+;{~f{pjTQ!PCcx#gCPZ41lsqC6{>766;3^rYhZ(q#F88Y*mT_LlKA4zzOTc$e+wW zkIV)`l3GMPoy`(;7)kkyc)7S-H&Tbi0y&;DGqi%ab65CB^7G8;%X+@C%;$WnTWF)<3W*%gi`Oy_aVJP{u;%h5u|ECc0p`kX{lBpA8eNfW^6W{v7(Z zp<%*aqN)qG;JPBt8!x@|wl`SOdvg=!SSSEqV-ZnMYtT+}a%yD{a2>w`UPyc>I|Tkv zR+;BZcH5&tc9s#`Wj3L^$y%U-#m2)iT6#*D<}P?#;Z>*)iSPkTyqmhp;!=ylxTO zgGeTUPUf+j$tdfmo9Ox#wMb12<_e}D3Yw;|0myx=$F%h{@U?_Q^v9g6BH>i8rSeszk~*p*bb3tbt_ zg=ttUrFlMBa#9^8pCd&Le1z%bTxO`BJbBjd=pvg^zNjD>vfMhq+>!<)H{UrO9G@Hv zb-)sX!OZ0(bjm_kWNO>jg1tg!Wif^Zc^O*QtC6Fv7PAdV+Bnc~TE$#WBsC>ZlhHIP z!(`VyeL8DPAyHBip)#og&4Oi!R6Z@9fXNNI)1W{wF)m%a@W$(}e|YNyq6bI$qk-H< z>HZ}@UEkD^sAkoX;n=MqQ8Go_7zc`(BHPThx%Oa7QOmUI0Fc}sawF&|k=suYh z3LD}SzjTtzi>%57q(hPv&GuN2p{sOKyuuPV|yb8jqptl>&s@&aR_+( z?YD8X_~@fsaMg+L^b=aI7;u~zXa)B03T)_#QKeLAUh69 zbS$MLAtz~OVi!_o}>0yznsphZ984|tHQM@FuhTA1~s;I8eK#2em){N?C=iq2ekpLma z8k%csq^fA2)tf0cl8Z3i7h9B&pFZ6IN^LfpfbhRj$W zj?sAykU8MaZBgBdY4oYY6M^2=&#B32n&%LdC`&Uogei0Jf;3t?VarR}-j!P)SVQ(h zp;jz%J15oTx8w{u0I;sLyVDs-hG4D+PkExojP)@OyoK4t`zVO@d*{!u6LzR6 ztgpk&pkh~Nv>A5RTcR27Ek~@YnA94R)ViojRtnF@(l8`U=C)b0qgW~ICljALa;;PF zrNJ<0f#SgMd)5*0&aF@!@jcv4(56s}%EU(-GrJ=tOmgkCoH=9R`-0znew;TODYU@O zbUajJRLMe&7FPiZwGSk5(=eHevq5AwtH~3^i9Da|NdR;i$Q>N+ zwa+e)VlaB9g7GV|SS%M;R+o48b_nkBAqw5ZK#fO^ToJe@d(WN{-|7A2@~A!V(O-G< zXDkmuK!5eMFK{nZafMv-gp^m(nqMQYAd_XZabx)4gZIDw^jLmSwa?JLET%#H9NaGca7rfvv;9pzbkenfxGdnv2 zV4xe_Roz`(Dl02>hRV?4&gVVHBdUNk+d^5PIx91T$LHre-+Nv$Uw@mkl@_aC4yjX_ z)|7uoY`n)`TTM_4@>o$mM@P6> zX9ayB8wztJjvUxFs~P=Qs4ORIptP?_LJV+MEVUZZHpQk^PN%m*W31}2(@@rC%vGdm zi3G8RW$ANhm}U~`U-w6lv#4)0P|2*a!O$PjkEH@>Z#pLEKDm3@fSoK;`RtMap>-KB;F^9d;~ZkF5m zt_L}WdWFk{b*2mbrq3WAgnixlZ*{El%O!dk{%vNrYG@u6M*WsDPMh5G*G-KpC?~--m%UCy^K6l3V$}jZQ zm9FK`t6`y8MP`oWtYj#Qd|S0KbxuDuv-q_hipSs*#1{Qi=iJ zo#CT@W=I_sJ#t}P-`Cnj6ND|?Y0nQ4UMXDdB0_Yf=$0(<@G>wcCqJ3lBnukIMO}u9 z%T#D0N$lm4?M|7hO(yxwLAvki8w+a{s|gCCCQIBnN%-L5J-YS1Jq4Mbeb6Kd)(Y;U z)#x3QG-cKH{>}SuzkR`j^F6>&2Z#IK_{hL=v$YILN>;N%oK#~!G!E=l z89bs-6wqDv0)_*-Sasvd4+ygXH)k`agf^s}B}u2j?oA4;!@w=R!% zHdrpyk`b=_yN%?RJMON<(|(@yVTLb0H;;w&58vM~UyTrW3b&3iYSVx%d{!xs6(N$0 zh8XCk20@bW6+0H>PvHU_-)k9_k>6m}_w-9_=inU52G#VbAb8CW4t~J13217+7ml~_ zJ@7DKyHMWZA|j5e778q8RDR0gU=t;LMpX8>_Ge%`nprleQQf%(!3t0&8f92g+bpgwqhP!Y zE^kJ?;mzBVGqy2q5YDkS<@VE$hIkz8$LFVCeEvCn(#3q#YE+?4Kv0sQ08Tbq$)ToB zszmTobnFE7IK*nF_oD{mL&_27!B32Q47pNG4gmE`*2|y2Bk{TSr6-gOwM&t znr9EuYZmR7cY>>gtUnqC3c|J#npK&SjibE)nF@5_Fjrwcn6*h8(Bf>R&H0!EVPJh~ z8je~fp0QGO>FbB-$mXSDCl@V(A_tANei->KlQAo8cz)Rhd8IL60I9=hF*g0g(uM(C zG{Y^!Y^{Fc6_tXrrL!(?Z>aARl<635@!GdL`|UbXvTQI~_}N97iw=S-07###xP-XT z0k8-sw`xlSd5~cXL_N3tazf~#@`a~k>(9cKm6%U2=0<-{*IJ6)0$cN@d@uZz9^!w; zpbdVyZ>y4K2#Z+?uK@*8o{Y6_e8Y5ZM^83SZr*IQ2c$72%+oXcTb&eP9Er**-!k7) zgm5or(d*x!oy8io#m8^x#KbkFiV!jfc2iXZo+-0d6|DxgOz;`+ zE-Ia%vzZQ94!#XVQ@OA*Qyi+MhiB8jh!8D%Q5$Q zlq^;WkokbckXac_dI;j$o6{%HqTJ|EF!fE>udRw-?+oOC{mpr1;#GsCt2!F2^dDn@_~JQk^BEtY(k?GRHB`R z7hfuwS2&JuzLLnhH&nI~#-(dIhSE^w{T6%rwjU*3VdsV=`PeYla-SM4gp#Ovj7Y|y zYUp))Ug;cv@U+sItRHnioNG(d{1a*uMUb|Ma|JKVU!`@Bj82v&gpOB1p-TGpOjNZg zwK^w+F5CZH*{!8ABO(>Ia3!u3A27^yltepmi|_(xlUt+nYpt^NkbJ`hJlNf%qv-Xo zOx1{|o~E0YTHx+R?rXFNEJf1OgVnfX=4T)bUdpB%$h64s(8vX5s-wZ@N?uy9@e{j5 z=AW7w|0S*rrIDkZwEi#7jS=?`JCgKr)S@?`rb7;waX~`Amg<5Ic|6vdxsOgQ8X#Q5 z>$x7s{ElUWE1M8~c-DF=a2*zH%Q|iY!W;H%&HA&;Is*x%n1Apm`yV8qhy?hX}r zYkQOR@%r_ft_&e>6nSoJM_^^%1-TzM8FKa67>uO2Y}FgCisIfGk8UXg9Go$>2AXiU z8P+1NAMiA@=E&2@*}xbN@O3Bu$R)qg^qa>6Uw9*~Y;v59;h1k8>+D?gjcW5(r5O(? zxS?D?W60I0yy!ngfj43jum&dqBiof~)!LiaugMSLxPz6eKc+U(EO>DLe#y+>czk>! zRedpc4E2umA`9ud4T%l(l!!me@B9jpW*mJ82#dnj=EmmsCR9mQ*F-X_+3M8EseR-& zYO+E~w9#^c=4Va5n&FrGtiM`Oq1u|zIyxqoZQB0tF7ZnQLw0THLLYEZy4Yl zL;V4$+1hLYL8c+{V^R=854+GSf;~gtn>4zZ&!CQAC9~+1@Z^LOIx>SI6So(g8^M&9 z%JB-^z(<#5i#bNB==PH6ZJyU^IN(O~8C`GaeR@r#oVwm$!7WzcZ zJUOP!HWsGDpNbBUi|OqYUbdu>fj6hdsjWD$ECI3F(X3K76BUtFboqJB)I174xYX1P zv}P*|z|W(Mcd+c?vp79Fy}Y{S9jRfV5OW^HO2<%g9+pQ-Ys237}%i% zK&oJ#ie-b3n0D0dh3NogF7WaWSP{adFj2vqPmF#;aH|v^W^y?b?Ki=9Hfhwk6vEBq z0ah;A1~yZ`saeJ>C7tD`0?{-R4k+S@%mg6@Hnmb*Nl^;?z>JqApyo<)9e60@W^{Wc zjln}3RW1rfyA0%^P*A=@WNnFKg~3uz_pxvbe)IR(L!|h){nN6JW$DNKyd^Zsv*RsR z+4CT9cVO2+Ajoo`i^ViEa>zQ#*T$qb9;fRoOxxyU?E8U_ESzs{*<&G#5^q>%bRy1Spyy(jHZ!2o_Kw24PtQ&Ok&%P(c8ok4Ix$f^OGO_9 zpCVumeEad)r&U~A1svO+n(GYW$dA1aiRhYZgn>t4VjTIYpQ8B1*@A+xrc}#D(Q?V) zit#<3HE5=0?!Bk^Im1AI>fD=iA$yQ8ssRI}*6asC)tdL|$ElIywq_YEM#OAdGe1xr z+UV&Lce9@@3kt^&+dw24HS_?qu{0^Xq!`edst99*h2Gp~091sy*p);IxanSwFge$( zESwwfer|Hyg>D0nYPE^QQgoK3=4nx**aHrJ^uZdUy+je@cvx~$AA<&Tbs}@;80@%gO7sI3S@c_m=nEx=ulWFBSI&1ZQ()D zyBUq60Mnc~6Xf&KrDfE3Wi(S_+P13OTJTLb%8b;|66JPa$_y*|a~oXqS_1F5gM1t) z_f7L})_BGTLTk443ZoYy?@7N-X|tY3#I%;M$}z{7Py=9g4xxLwKY;yT zUd645^YKikp7-KZeV0b$@xMAKNG~;U)jdO9jwgwoCiCGLugDlSnu3OTgn_wVYshSK z>|hoc^k+661>1xY`!minC+r7oNSB8ROYZ5+(-nG?V=_hy^nKcYYNf#rKeaTE*EA-t z1+Kq$5{ON2V)yuV2%p{9EfaD)NFJ?KHYaMm`5o(-9S!hlwbqA~+BL!}2AZ(7?mBq{9q{J+OsE5=~E28aK?8| zw8v(LaSdlykeEO=4_am(BaXwB%Azuv729Y^eO!WjcJ*jRHgJNJJnHtG4-B>suQStF zW#*hBpN6k7{k6A@!!JNg*~%Dl{bBpn@V%LB-nQFRI-*J70dbJF&vk9xWY#ljFYyp+U-6eam`donWll4g68Y~zntDU|xtY3#03bZ3Q#Cnkh3b%iKR4Z}^4oX)meoP6yrYZIKSKS`VxrQfB(54u8M; z?eD(&`rD)Z!$OpBPjCoCGELwu_`%E9q)>^?Wr5vAIEpM4q?eQFY>k$f;A=4nGfP~U zJ6mHZ@*22ZMoHdVz^zf+m#nZy-%?>G38xjc#!|map3RX~ z6LrMe_R#=v+CyblD5n++VV=_Y2(UN0NhV{uXpD6-u`H(=7bh;DQQ0>3x?Xl>n43Ih zjF2S?|H}GTGOe7rSy)aqSFnvWu|gXwhC6VpcT1CrH9P{g$hA&cJ_&Qk+kwt zq1|>LN2&Pi8u1r4Vvre526zTg3u-Mr3;)S`=fzxKUins8Z`OE5&QrUc9mk`HnyE^L z5p@UMIZU@WY&8LMdM@DF-a8oID%boPG_~2vmNsxNNuRY4z0XW+*e3@I4jhNl&30Jv zir_&Po)ph7FI-#b4U0Q@Ii1Eob+Z_myR)Oq2z=}E9^YW)k0Tme0XoOAy?QgngoAyb zEmL}sM3}qV3MwI9jmgA=r8L7J5PEZyhK6whU;M-}UO*5}5ZN*k$eQ1-nPWJ9l=jBc zhM}U6Q-g{N9oGW$@Z*a*2qz_#AyjbADnmgn;1bOdkR;b?1nBc+PR z@H%Q+on7vefBD(Zzk2ZvFRcM+6GRtRtg(n|zCnKE)((TB@$Hb^XaxPyd?@J_C?(m_ z(--8~M78^0FJ9on1g-s@5e{p+Phs z?#Qwc6JuC;c?xZgZ8b%1?@p8q%+i+reX-Wv_+j1IkXFU=LytLOq-(aWR|5e`A-7D? ztyqmQIrHWeM9x6@iiNF*sv6+enva;Dutqu<%Vg|Bk&M71ZV+)pZZT6)f5Ud$unhO> zo1T!6Qhi>~_{z9GYGQ2HN$vC-TQY$)8Jg}yPBhQ8rIx+tZMDBJk8Mu`5@L&6$`t^4 zRn0r@HEq$)G;8xBpGY_%()W8-c9{Lq9r{t?q)~OarZ4BHRJhI-&)hC8H(pF#-5Ra= zjroarnHD}dbH!eo3vw>W9E1_6ib*MK{lP%9J28Jl_r+CrUat5)zt+4^6WtO^nQ^1> zr@r`kEUaO*&J6-FJ~%q`10&x?*`<|0roqn(X}LHJjVi0O`)*hMg@&u}EIdBAxx`b~ z7mFp~78@Rr4Qw!<-_Xsw(T|bt8{Rc2v_uBTiRY}kh!jK;l8oL$5O|rp>|VN7$k*R0 zb58fR<#STX<4RG>Pjw{{PFwEOxciPCxtRDU|s z?#-256&Z12rN_!K8M=H*DXjcS{W7&}gZJh2(RWJV3=}S8Q3fhGLK1u%)=1~zz{5k_ zgHzMI+o5AqKJnIPZ~8!sA5phOH!=btn~qB}2u40inOV>R0?;Z}jb(F)$k!`BOSg9>cEc95hTG=LsMf4l%6UGTC!43d8PBAJVgO*AnPLA@;RSQf z$!xJ!lk;^P=j2YojIPF&;qy`kRp`iPbEdmPBqq1Fz)Ces9G;4PYN|rhkBWX{N9&KX zL8^IZ`Fxo|v56|K5sv|Pf?@{gu920^fz)(n=5ZGJfxt}5EvH^gFFF`#Gtp=Uv_vSh zJU?jtGzrsgLX8kbMOluznSl#r^}MV>dJ=+!#;R0-i^b*o>g%um?(hF!;_Nl9)M?3gIzhE)hg*;0yca7EQoYTqN%;kk17POg} zuWH@W!RN+vcf=I{MjvaIVqhTYTBbIfwU389?`kwRO&n>XHsSQ!ifxNl#!I!s@qm}r}Zot$dgFZRw77Vmemz-*Wz{AOpL#!B+ zrdTS4^Wtq(z4n6<#J-X`=H?K=$JCK1D6C+az_#JciQqV?d=f;*U4jgZIyOv*iSt+bC_N?z}sX`{Hj^>jFUupaP}~sUGRmyHJ+VDUWoHT!alvP zxbWcK9bV+;pMNGA2~5+u&fu7Gy?OJFYT}l;d=|}(rtPMs>t5H9L=7Q|dTrDuT6l$7 zZ*B7e5V-`l{Va`v%bw47vf)YBZYcAbneIN9`K@BRrlXu|)QW_dqo@+7K{)&}v;?g&4KNy9Z3zY4)F20rm{O0HA6qKjw<-d>bJkm; zPBu#rioxMd7r8o5)~)88NO{-&p6L+T?bFPR65Qh;-eF&XVzSjfIJ$fM;qA|U_KUag zPk!+Ej|p=h(h{Z1gT2j0bCY(9VZ@+2z%QhyaJ>{1MT`iBjdO)ua^=a>6at~6k4pAf z{74 ztc{iR`NA6M5|`FrkC1r|RieErY-=VZpxQ@W2rI`lNxUzP_Y58;WG>cUSxZkHn{wg5O(U#Z z5%!XO+P2FmU-(cekT5Fb&zVU$rqHX@nYyO<(~&Y-tJ(RkbwrP+Li*TseedUnHfVjU zG-#ua6!BMaXLj)i1p4HsfE9N&h;4xBkT-8ke8lOmatglTqvp)qZz z-a+&I9b?=hP+E^oKv5`Clm@wgSx0Y6MBVhY0VaIU`MHEkihc*jv`i0d(v32lIo3M?5C$7 zBfK?qu^-13x;GZ@Pfqv-JpaI^cq5dRzDy`<=$h=@!|XxTnXA{{+!Rx@D%vP3pCa_^ z*^}MfBd^!s`wU~ZHn;hR-o1MZ0Iog8#y15UwkThOf@m9F9vW^#4zKmT=}t@>=u=Rq zrNT1J)x}ijBJRzXZYvL1>5YGEps?AL4V9Q-uEowe{p_>Pr1&*KujT(L@Lo~wcESBv zHZcbUonXa`UK$l|DL#AT{t9DbrpR~D22j~V#aL2%d1NlkINMY0R|W~OF*^e@QHhP8 zz^RoJx&3EieP|5+j$0_?^;8*_@`9EHduU)(un2ro?EiB!4i$V}QRE%DaW2j1RtNW4 zV2nTNdTe6Lk2GY1H{H;KWnqRM1ZtPXx>tFPQu`(jAX5carBf+vmy@~FZC(0g_~}r9 zLQGvS`fMH?9&vEQ=J02~_}Q<1`|EP0wtsjR(A(6N@fK8~P3SYVDB$n}!D>KPN{z#G zdnUM2euTVsyvkv@K&4lTL{c;^x%MEYh+NExA~*zaR~5=;^B+yn#8hGW!i(mAybV5g z5B@dAX=X9#juZzz;tHhr7nRqXVi#-U^1S4&@})m%a+hhEQz|^8&b1E4G)tOze7 zE<+7h7V04CvPR&zS;{?oo$ALh-r5KdMZ80l;l&pdvnz1{rV2IifP!u|SnBLMm1@Pz z{S(VRls%jn3W==Qlndo?Y_X>!vFXfL*n6J3WY`8Pk`*eIl>lU=7p2y0FI|D5Z(tIu z!Dg^Z#3+2UhF|%)s~X2N8GP8Lvw(I(#{nuu5CHQ?_Bnc$?`ay8N9A!Xv|U1Z{Zn;_KbL z18xKR{;_XCych_VR`#2|sqp>cK`xB1cA!949)zOIQ{z`fJz~F63MCf0IQG@+aNc=g zP;}JW1_93{TeLX7|KRScw{Q43%SZClFMi_t zB|py9qV)4DZ(hCf4*K%^l&}B!U;VY5`3gGpkaqUnx8L)0pe~lz9*Q$_an4Bj{=)|j z-qGWsmIB`Kse`;_#G?Xjw?L0Do=W(tjB>|YQro4ROW;oWp3v=lB;Td{jFmeXq+azEC^Nkf4O-zF~(;8k#PU zzw;gJ2GnqcVWt{z(OZK`p_23KP5W<^d(v3dEDUqJn0nlpTY&jupn3O3FfbF-wd2?tN9M$& ztaCb36~V-ppMiL(DQ`+^LEp;bXlXY{zJIJe5a(tEAFRY{>sst^hqor7n~0j_XHxVY z*@)-a`mj=1>yOrEQ2xA#8N8kKbF=DU!Kei0ykc%inY->t4~=zj7RhD8KEX9czaC>` zd6N`7eD&q>C?y5TbS2WH;BmcRxe@QE;=fk)y__bzd(iV4X4$e1KrClrgUBig z`e(hHUbEFSW_=H<=*=y3@+}U`yk*`di)ep$Z!Q-RTKnqfpZ#b!7_qBT4mX;F#S932 z{_NRP8h&<~5`rOco z1hJ9CEDQWCW-@?M?M^IUO}D%I*K-pVA~OGiVyQuVGkGj_`BbHU9Yw7 z9^QZR>K*?2?MCx({}2g3GKgxJkIHq&rKs()5db4{er|>Kl?kYGO7V;5)*x)m#(6Q-lyh zZ#9~uemmvbV(&`U=_(7s>@-ETW)FkwAW?Ax4fC9^dfuH5b8_8DhxnQ#6^=%+l$djY zEx=i1dIvL1<9O$D4Ud&_F;~{=f)yk~$-r$CY`$SW7KY%cq?)K&!lStuQzk$HD?*J= zPBQR_wa$0-rXAYyuYo;#(g5KQHAh3Mf&?B2Wd{QvqAsoS#A+~mgwd{d#W)grR8jIn&-e zrh#p}TsY;1SBW9&O}FRCRwyYnbc}V{RTR{4fR8sp7VN?3%FfQtr^3e3=18o;P9Ww` zp}>pW-o{pPJCrsWi?8%L~?DUE;n>s5HvC=@fl$th4)V7$_DjFD+OEGbwj9}o62of#oLl z(~qXQypn9l9%QU(pitLT39Sf`EL6^e1ZPVPS5o)PsRs}>ej_k!0 zbTX&Y5`>{HGSwZuhMP0HVRb&{yHm$QLu;&pT$iZb1dWwKEtb%7)W65JT8OHElJLb( ze?ku2Km6lAzWnYxa4=C~H44I^HU@=0*x%y_>16ER{{A<|?~m`^yT@nRQYuW9?t$|v zjRi0d_feKVTLCr$Clj2s5G09%K(joZl!Z=6L*&j;It&?XfG>$6e zAT8Gn>I926kegmHG=iz6ld5r5OAZ{r#C?_pkgRCXIoDpXM*u;Q#k?o_P}9uvxk`ek zEbBZKHzia(HG!xNhga?MiZGMpg!@$rg|8wpfu%OjiRy_FJiS>~&YW2yuX&B1k{8#+ z7~cqUi!{gs=$47^zHW#Sa3qCnB`Mo7~>Yct(dlcnW28)@s~Q96|}=aLY5B`U+m8 z;`5$~@+eIO_&6cNx%1i*j8@Ew;UXLz$(%s*D3d{99O#~gbrZRn|D~vkI5{(t}Ye*-^?HL$gLu(yxqfTGBsoz6D>1h0n`POtOw zyYK1jKs7#mI6XSLr&*B-!|dw%+Nfv=oeenjOy!O(YApW*8Z4Pur7l6DIy*dKXMGu@ z(0~iB7Z-MJK*!voC{6fdScpl`vejU`;4YHR##<@l3!l>XeEwt~oR<>1>5sCYb@Ycr z84g4^CxUlMkyzZ$*H~_&qUjV*hu<{cp!ZnHeZm7H$rM~dwUCXLvl}gUY;4jN?oCV@ z3?W=n_d(kPyOYV~Ftkdx0{`rsVKfJ{XfR@Y)E^ib#>c-VRo3hwiIY!@vVFML65H;U zyO(MxtBRcGmwfWuMiU0v=Y78;LT+JaODQl*1Wvcn&S#MN>hjJ!y4G)>)Ewv& znRkicv@n*mS#2jy4JR={;kJyC3#;r0onV8wS`2Gt(H>g$B5n6<+|L%x>22@B@oS&9 z0YgJgr5RPU#m!B@B7QW6uUR8NlPVB))bCx%g@;lR6?V3_G%8WV>ySe+3=;=KaBev{ zd(Rap8*y7W9eg+06`1`jT05aO6}~#?qDl>k z9?u1D^8Lv>k5uI&bvqPFH~;zc=~G@OnZn#i5EkKLx(b)o0)()?t6lok4C{Fr0R5~j zadIqJ!^}AHKvdduX#$O;<%zPKawsiv6&nUL-y@!#*YoAq&soI$h-gJSu$hZ=v2R|# z9*bdO z;!2fh>{$4$)pv2%Ek!w6=04Vu+pmYlL!~A1PE7`{#>J5HxZP$|jl(0|P%PL~)OD;N z=8Ir^n@_I92oexULn(AHd^AXuVjrW4ke0h+XI`6@x-&y3nWZZeP0zhyH3!ui_|L6k zBS8f-fv?t-W^3r#4RQRfE2*!AP5DSE)NcNomA4?Y(IMX_?wsC{a=6g ze=^)6Eb0E8yWlWY6RvPbVzoF8jA_s>fBp*=(vR+cu4$((1W%vr?;mjm>W%Zun`;&Z z4Gk>_{rubGcYHH#++cib@VY$Obh?cKv+c_*U;tb|qrc>;4A)>1IJ1RqQl;5g%OX3f zSm8%f&V%g3!l$a;kE!A-x3%?fBDXDyqgAV$|EnjCdV}m{;1m#f=@@gGQ>=5qNyDLP24mR1y(0*`Orv~z0CLZr2l3SQ`~ z1IP7Q93=U{!{+6}=hMP^hjx0R^j3BSjIXKctZ-`$-;Eo(OxN@k=XM!MOw$>Smr9KAu$VbX^-p%dOSvM9J734Oqemq+1it_ZnRZg-~ zE&MP3={S!uCdK`iKmSh<&#`KeFC$jM$>M0Q1%zu6;{-S3xhnG$UKDwVz5Y-hP!=G= zJ8zVddbz#aXl}9%xGz;P+H7tciG?dNYt}1avvzc_I~WlG@Ct!7xI;QSTcT9nblsfG z=R$6=LS04)_57=^s}`INouAU*@Aj58JcA;Q=8Hu(4@t31@o{x=;UU)&2ST754865C zCeE#E0_g4uh~%2EwU9eX=f%b_AsA@6xVpKf3&V0i_Clg&FS%kYI9@8@na)lDg(EJC zQvxV|#pwCGS%S}HCOX5%cnbvrD)c}%DkH$yQ-&8tNWSV`In#gbQqUjv{8k}q`SSXr zKC43#x_S3jT3@P&Wn`~{x8_ds_rVvP(7Y~f0WGpyI@8*XV$FD^2;l@hm3bMB?`SdR ze!>Ho?SWx=wbc+^WQrWLAk^80U4A?Sao|QU(lg@2IUu^EO2x$Tm*m?ncvq`=;Uq3= z#PoWEzQ^wRDKXSKrhu0T`zBHv4;3-8o}K%=ez4!<288m%LmEk$CU?T%aXB>=y$-EY z5!9`vwF4OHqrlrTS2-+Xhs+v5?B8;#=K?UO|O=-4# z{q`8S6Z2#8Djq((e|++eu_seiCQ^_qtBtdZ%gbK>M$9?rXDGYM$vnd|m9ArK5*{6W z5J_>w%uR0b8;JPlnYbv6PgHL~WZph;Y@5>iZnx{OK}4U3OR^aVvU;rnyhyQV$o`l9{$_A9$4x;&Mw1ENz4fwQItgNf z{-}T3#}1OJ8%UH~S%|4J5>P!6v0YO*6b4W7Eb(Q3P9m&ge6J@9Emz0JLV!7tTW zn$@IO-Pwh&9h*jhqM4PJCP$7W2er+HU7ds_3I(7CbIYYfZY`EK5-`WKQIVG&wOF&Z1yR6T)^Wu*z)>*w!`^TCna?~{W$y-p$snj31& zvn!SXE$wW9{TWoei9qg}DGX*ZcA88ZW&AG+LC%CipIlS ziU=oHZ)#jfRg83kM^HAh$P11dnOXSCQY8J@X@%wm7_4X*`n}W~GFZ4f6IVsrx@qj01r)pfL!Y=Cei(xW1npRqxlQKi!S^^`=TIyLrHWIlKb8XF?!)^B4Hg}gh ztq3ZiEK~l-x;=Mg$j23{?!Mq+$xrKh?ky9Syu`0J&U`O4#~J?-pIGE03UL}GXg4dD z8`m4UwJkGpY9&qKQEd z9-D^y+s)R-CRb2~ikalXtnBVUg>P1s6$G$svuW8>(QR>@B5dp zkOBf|TwK04tA5Qw>DKYSq^*|gz-X~7>K1TX(Yo91MJW2O9lXqre(>p!%y+;v(OS}2XYa?UZ$J{@87$#yR%98?%rG| zZNy@`h-UogJD*$lDLFfR%9WK1smWCT>?`EiX^$96q=Pr z6i-9~#F)56b!20!frb_mw6zuDrI>O~<&jWLDlC1Ppdu|b1+`e3mUQ^Rxo=*X&gz(0 zmBdWbj?4-Xd5)#9Fz;`Fn>3_gL;)UnBIC276IsxRJ#6t(v8i2X)+$bm6_7@ZCHwvWM|pd(;4Nm7Wsv_Q7lMq=b8s;uFmOJ>uoHi zb2pnuiuEzR3s}G>+dF&we*WEe|N5I>gH2UxjSe#^B@z@d!vka4Hg8d6+n_gZ-@ajA zgveVqr;7*4tA&K z=T)!7F1~PwYRS9C3P+WO&OR>fN)oaOvGaMR=rTcWltxECk*|wbLS=PtY=JgqHS37j zOyt8tuFG9IB|clO(30>I-(&M;upQr?GF<<5oPDL{&DKNdDDTh%pW>#g2H{hy_uvzo z0pFel08D5QOE!@znFH8ttr>Q^8~0-IH@IeSuESNL|K-2`vuc^yAhasd4b!GV!N@t} zv*8|^F^*?-QyK~u6gTKyU0xp69^Jo-dBv~~d#niM=3o!b&L%2<@^v;EwL1rUl!h^ zu>FR^o{E$>7(*VvS*vcf1(bvDFmx5v6)en)7>FZtqe{MEYSteVdW&qm<;vqi{Qax% zdyH-eLy^WxMfL!4{wRXK`Sq`McXlC@xIeIj4W9-4Y-&*9u_2%~!NEpS8Xe{_1jZMkM~^H%cEISew%Kko6MKJr z%r%D*fTa|@`@;wKBfF_CE=~{kI@BzN#Ie>4+qhILfw^blEGW0q`2=86=09f-Ez6XX4LObv3I?^9B@Jt z34%6$G8gYGi4FA<$3TP-O7)8M;u>0K(pZK<>Iy1R1LdM_PB?-}icypqx z)TwjzbHBe8@5TLvxT$S=QE=~4Q>X+M$>^0U&s@ppe&#rmCrU1+enynLuRZcgov%_S zlV`H-b8s2y zzRy3Lazw=B1-D_a96(#>G|gs%*KcO%(mmlxSyQOvVZV2?yR#!;S6OAHzx>NT=QUhj zURa1_gzlL?@k8h5uP)CAeRwb9_C|}o`@3&n(2$RAXLk;fDjuAlooXhC&`G!fja4Q) zuatvGpCZnb0^{pJ7xMen)5njf?|il>q)-nWAHU_wmt{J3@#y{?h`iHrpBA&tHkcqf zXLr1rjs`FntBQEm(VTy!9O5OFh|`zWtL3ZnQ}#;={RUE(bgu1zlurB3a>9{`+oHcC z!*Pm!!tOg8!S%!k6tW7_W0Z{)UyV`*ve3z3>DB5*ZL}ns61N>{m59d};&oGUK_=w7R_j$e*E>_L=(gkPf|usvQL4<1 zxJ+^9T=3}0Q*g`Q{_e}4|N7VJ6XVj}-hrkyjTYtm(Zfd&VX;#B^>2Rv_498ClRLb7 zZ)<0l9{<_XC%n=ZFTO2S8ALHKRIEfMT`h`PD9DU+5O#E#3Xp#st6P>z{kF&N-aRN~Y`?)st>!vTEg zLk8=cZSDwKqS5V;ng8D2?q{Dp+v#j`Ss=3mF~MrKmOW~3w3RS3nedDsPTq6orDniO zMyJj9t6S>#Sz0A!+J@F2kYOOHU?7Ts5}I~_OdIv#Km_WegMH!?IEzx=nN&&Tiwj{v z1R>3Sikw*+u#D^zDO%Ze2bd*_R^GM9R57`O0B-ms@{}sU)cM$awr2_?oc3iv0t%Em zuUgwuF?N7lK%q}}ZSWhp_nk;AI!ySG(;%tLzN;9zPnr1}>6oZAzQ7umL^8J^^o=5q z$+YI$D8L0%qQcK+-{AnH#OW=RDXkVy%q7anm@@h=;S1(N#6&zuuyGpZlBl?_C+c-t zM!w#cEP3Ue#J=^v{f~c97R@LXawbkHWpXcUZy9@PTW9&2h;% z*y}VJmFtUBO2_5~4Qb)-(cbn}lLSYOIEb?WW28nO^!9gmsLLSTT!e#NICD+1#~wet z*Ql1V#bmFuIUe3DrnfApQe3E)6NVA(Ms-WTc?Cp?s-4M7by7`$lH+0Tdb{0x$R*yY zZ!#|c|5%{K84-6#d0))e<{^SV9QD;qL`fgyL2oRV%S( zF401?`-r89Rxs2kGlc#mzM3pd#ifvRT1komMG7`VP0f8ffY3$RV!cw>x#ebJTMO7> z*JB@nNOE(1dwSBnz8O_3pnp54NrwaM664`5ymGmAzeX;PtETxzDO%ZXr-p)B_J)vh)nI z8H)pZt{^`ZI9Ue~deK}^7HaxS6%-H$M|TL2dj8@YvR~M&2qU6KfTJR}-r3z(Kh*8L ze)ATS3>tJ!Mw>uv$m!$$}T@r96 z8w_bjc^39I24ECm&KW9FQA|nVfNsML>rW>#VYP@Y<;slX(aW0ppTDqg02SO$KFxqGF= z+2+WpK&YHnr4$b(Y6w{T)YH*xy$&@7DpB6$e5&Lro4_lQMHV_~kpG=O9fe`h6iwR^ z8h*<9-(c=gtQ7m=KCSM-J`|LH`lo*a9ET~q ze|98fyHvSzaQLfV{dRY6`}p`o^ni%A4(2@~j_LmH0pIgt^o=YD6XC{M?1X=gZza4o zJA_msOp^S>s1?jtj2dNL)fGN{EPAM$TbsBt$hH@32Y}_aFKaET$QZ`>AT`1wIUD_V z$8QuXSWb@a>|tu;qC@unV5l))v)dtmcO=s(*XGLgV2 z;%PH9Z>BP4w%5s2QlxOKc%w3g`}oPw+Dr|6*0@UeV1m_};JA6AXw@@ts~nqnN|hZs zcxV2hfB}-=g+(cVtmC#J7gCpGAwDBV=+buQ!PZu6m`t6qAG3M{IEwB}t2PV_mDyn% zgQ9{A(=m3snq!aF^m!GHb>i5$rhe=UVB#7J&}s2|I>82YL0&qzrA-Rl;+=m&AS2if z`oJv?Yw6M5qy3W3jwALd1eOYNo!m0)a?siRxolQPr7EC9p2`Rlc|R%}%-&mU92b`; zoGwFSzY%L?wy^ySIk+Zu>oXXZEV&W8&r+{!2DQnxrvio$UNCn zJ(|Wj@zSJZkulTJMhtJsD^A-x0jk8k-MgLbJMZ`2ac7;L9(TJ#wEg(zDZ@{>@R^Yk zXMk8nWL%o#={e0fkdYe_5PnIEyR);+VDstYhYRNm-~=@s)b@6l@CdH1=x-k0y#sUN z?EP{7?wtpB?{+UQo`-mI5DFTdGPRI-;Cy$@~tCCU;-@-UIZ0}u^E@UstSt^ zaqbLJ?hcGF=s483wl_G?Q7*v-3ziyGRJc+lcNR02OSM5mQ8bs$bXu4n?C-N2xkF_b zemijy44aVq5;DP4L6$8!13$TA(ws@AT1t#>o>@?6#p-}|xTOwliBtPIB(CESJnJgY zLNI-kw-Hv=G!{0Ku+$NMf#7LAdeyNkz-?aWj7O~aYDa-}DVG|}#@ThgPj8_7S~G!bx4 z&5b&^yza85x3(HA`ftB`$*nc9*ch-8E&)fp_b0+h!9Yl8qIDwlZqOfJl7w_c{9dzF z7spXodQ zr60Qs-OKamU-3$Kr`#><2ebH+I%(76osA?1AS%XR->O} zZkKkj!}*T88Oy7iLXkTyf{3s7oFiQodW=Y-*jYBJ&?khMmej;hXD~XU8YXmg)vSTPw)irTSZ}Bfa>#SurMAbN7Z?-5EDKOC{JXLFKrz%-5pLR z-Ue}}qb)c3WL3I_YMaR}(CEp@#pMP5noILXG|h+w11%SM=WZBrU{)<^4vmZFJV+C& zgpsN16C<-MjrX?n>b43dKiv%JKWNtLv_G@}zUfDnDtEM%dosM!J+eB*_Fl z{?X#)c+5&bs$Xi%^ttBfY#WG_Q7dy9NQRm$r1oWZj0`B(B?f-BAhMhOXk%lH4eIvh z;nwCJ;PuY?w~hK17%3+5mJ%aOxYw5p4d&B=L`*nB?;Pyyz$s+gkojk|%I)yg@4p17 z$|?F(%?x4+xw@TYqytpj9? z@wwpU;YMb&bjphMOOtxiKr*Fe?QU=H3IAy|=;Y{kHDIHyD2qC5Lr&PhWl@&FHcf*G z{IUo=F;%C8`6|EO?PUZ!+AR^Ubgq$s!+AXQM*>oA%czN{1!mYhR`@$DMrzjC1>y3X z-^JHkJHoPlOV&g1I=!qj&(k)88bCN?D5GrKei(+WNKJ|*3(Z2(CBp@?L6-29*Exdy z&kYTpyuB+&t-Xh|FuhUQ=VTL4vDhtj!iC1k3dN@(PCR zqbH9s^<~xL@($x3e;Sc%jzS2In_C^%G|i<~qT5wkIZZao7fnhc@wKP+F_8G|d3*BR z*0e!kPYNWIJLbIAXg<9E;QYfetr_1Bc#XG%$3_zy!ncj=2kF6aI%CC%qhBr(X2TB8 zgI}JVbCMAMJ&Kjj7Dat!0&b)l4N2GDtT(9a=7oS#3G;+)h6Fr5O)fSm&?W%5IRw@v zTui@v{oTDgcR@4WzW;D>%@wF!-SjB+;GxeRKLW+QzPvbocf~85jz_I31Id{Pe2NR1 z`@#~L+(g!i8d=CN7#$TCEVhUdU$oQO$(e1-!2&Up`VMg(l#`H7qm0go`owr@Fv`pu zPij&=MNaVyElIf)H!+FwWDHO)fgPcN){4Zoqn`#d*flOgqrC`BSH!%JH8Y?MPQa{( zw7|AkoIo|2OUw$k2Aefd+d{=?(5-{dP{?3Bf%SKZ$r{sn$uEe?xKbyH{_I5KyttcH zg9wa);)0}0*EFwaikqd*+)3{7iTAMQO&7~zU!b_7qN$agNOos_XLe zS}zA>lxGIbYs!bAt$FnooMGYvT&K_ov=W0-+#mK&UjM7_z8&1shNA~4OQl-|q1hm& z58q#SCgQ^5gimlT#32ynQkAQSE4w~cxGh{DNdPdGmpvBE+((LwB?q!wXHiMU4>M67 zFV0auELgWx+j6D(=)n&k+<(deniB#C)~lR)un_cI6RVGV<*Rk zS1!{?MJmv+htD8BFeZi!$A|R%t3R-|fl`0-t6zhl{p2S<;XdM)0l=hn_9UiHt{M)Jp)wnWr*( z*Xo&9-Gyy#9^LFM?Y zr`)kL>)odP*>LNI<4yGbygOyq1mk!t(ZsZej40_1fosjYEh)qC;xvh-i768sCT`V` zroeA1_04$}cZbuVSl39j_gK5{PR_bL7@b3)?Rka~*{ksNo5sdAS|NVGn5Plrf>u+B zBz%O5@J=E=Y1Ea?13coVtYE+(mMN-Ee#$dQ`G7evQfe6@Ss-;SksDDFp8a-bi;lP= zs~ng%_}N^WrF#_?%7syADc_WAHvo`1B8J+DsFN(dtJ#g>%~~5~`V3cRL>ETE;FyL` z1xPeB0uNV1W9W*){{YZ-cRL^!>_gDFLAtK5kBc2{X}BLVP9{9aWOC{A8Jd(|{QSzb ztj`g$_pbP?5B7I}ylWaSw!V@cBT%4);;&g85UNR|?)4C3n9^5KbUY0s3U4u$N-L_{GG~=4`S;$nE zWo?0Npbp#H$fswjH==`=DkGTH+B$oPu23y1MYA~QPhf^zUiVFj3t6OP zTS(v_OcdoD1%;|++Dau#jHN{t&(4De1feEkc&Nk%W=tNMNN4UbH?j0l++&JR;g?GM zbnKP}w8g`|OEEDYg-LW%Ok8m$?lTNSD%WV(GoD=p#uMg*Ip;G+nx)x@m>Yp&C|}7! zh&+ScS~{4Z0F#I)8oXq{U3(~7O;`_FQj**>R_q{GqFlvpo#jS_D$FgeAyhAha|F=W z$ov=S{M0sbP)KKv&P4`Hp&E>1kEx=_EtLS(gectXY?byp`ykaw7mrWgeE9JG43q2A z6Hc5^Cg}&!a?`%>emNZTR1`=?Sg_f6@7xP)nGnEWh@nNlItOe-4>2vlfnoZ98z!9;=^31 zSC;zZ8F2+AuTJ&U&YdS8BOUarJ?>^YlB&-rOJg`?H02_Yf9-IrgBuU&LfT+L>hu5{_ z=BbDgZegFf+lTRyYH2<5EDh&R$NkZKFilUd`@n6~Tjo67n_;oKJ($2UhAvji#>m!Z zU%hzEnnOOv&C0o-6CV>Ot$7`)6miSPLI2Jj!kT8b1A)(3PX%}Yo7=@&3jlT*7VkZI zhW7;_N4CmGm)#!rD1iHIIK6itYNU}RI=U|4Y`{7nJbwH{G;<=F;ArD1T23?Ab5s0REq`gMQq6o=l2^$$TE4UZAM8I zI|N<~Hd0UwczpCHhz%7dlu?)AS+XC;@7{i3j{%gR4&nyh-r9Qo`W2J&59b%aUs!t8 zMdO433*&pz<3P*H9w_Rbj1OaQ@R*WrbJy^^x7u%YcEkz7DO1KW=bx&UmJUf^#0MwE zgl;vN!b=sSIgjz>tsj;Cg5zxvGHF;!??B^YTrO#|7Y5a+F9?)UxzGs$z07i|a&8gE zq4N;BZDrf-Q=RkNF1RM`U4AopnK!` zwPuZlVaSrQTjZI|*ejmu!xybOM`~FarxX*933BGB>$Iaa6GoGz!kQz$&iz=+bX^wf zkUfEKCXP$ju)f?fZHcln{OdfVJCsSG$#Ta%H7TY}HG|QYFvY36v6@H?#mH=;HG$Br z9Vv#MBiDMBM*q#f{ejelA`-zdhf0L_ZP41-;?W*FeEjsYANCd3E>$Zb@!j4)lS*dX zkhmKyM0KoMni09b@}X9%#9V-;(N}ypIguj-m}R-eFczoK4Ce+XnNsN=K78=|-~X;DyS@z! zf$9CZt2s^3AaGEn(6QVpoj2D~=konLm+h`IXk_jp#PN&a!DukhCQn(e)S=$;?l={_ z`u^2l{q7$E0M5mrP= zr2a3>=QJrM>ztRIcEVcJ!ck@$9~})TmRYPkwhoKXFar*=6N6qQAQ-pCbR6VzKl?v3 zQWe;!is->_F;FtLa*~P{N|WLic>Q#;q-Q@ny*WPxz+(>v(;xaexh$K=KqlfA&O1R`+5>tAXrpBGpY7pyV zDMdOuk7T=O4)`WoPTYP=#RzJ%9$bFzSP-t%uzE%rB51^;17PKkTo0$&OV3`HM@m1U)1d$cXV(W)dx{4C=G!>^(sP!wD zXqufMBp@3MZz4??2oms%vN;rgWVw$NFD_|(bmxc>{m#xVbpu5R4G>O8TsOStLn9!_ zdL@=iJ9U#~rZaI_t;}+ID`uf|e+k4J3Oz53q>>BhYiFm%uGxdA$DbGH=hW`~gG0WV z`-tb)^X=|ZvUxi0Tq>;hyuyN3cJS~Zy*P55=5=zzGL8kOqc!()F#qf9bWB|#lUD#M zZe$Z_S6fY-s5y*|;J?pMvNPuhi4vW!?m23gCYeW&yu9vp5+h%R}a zPHYuZ6hjSUPDq?*vx$8!m%@y*w2YiVWONvLWf-WQ7?sBUNv&2S4~?>tIf`P!c%pY; z6f8CBJdXPU#Wv#()K|r2Vevxn5f-t;4d1lDf^}wLRC0!-?H>j6^Jy?C%nj6vic{qq zdir(av|zryEH`u!bE5zDzx&&;R9l9X)64$%$0y&seA_uVDA%e@hKHNY^UG6G9xi2F zTkT%m+&j91wc+?ld8|^QD|J9SnPx#nGBc21BW*`-;xwr3*DT{bAqF_J226FFS zbbCNHB_^=dX8(3}!A?IIBSpmEoV)hJ#nnIm;+H@C@fTk`e^Hd_z}}sEcjfb5ul(Vw z-|g(Rx3(KU{P7diOAjC2J9&S6bwz46@~9SN0+}n6YT8F}0Wy3@pR^mZ`^h z2u|LX8nROP^}qh>U;N}pq(IT6>~%T}^qCPIzj?paCPTG;_vrrl=>={5pf`kEK--52 zv3ZB9zxeepe*uyRwu2uebW9r9y}i4zPQUuY%g=xC)6ob#xepV;Si_xIoz@tHAH zW1GcG66!F#mdy>i6H-2UG?SG^_2}La2FShcC5J?m2Qb}H3D6wxcbfa1#z6Tb-p`)+f|P*|f6%#I*Spj1M4%g1d0PxG}f7 ztE6a+eZc}Z7G{Db7eaYzi|U|^ppb)9f%6TGGy7AK881tTzK4IND9Z7jJ%EjfEP*3j zWuYCIJ(8PU4vAG0ZGn{`tOdBERYDjgISiyy49b_YOj=LFQf%@$EQLBBp3(Z!LjG7ZYppg3BVhcn`K3Ce(41`<@m5aC{H_x{1d27=_cwArk^ zd;1;MnaxJ|^yCd#3McWC_a~I&K_5jr$RuoALLK%=poE3XrvRa7d#eS4EI;pbh7xYS z({AB7O$^Df3+j1(`tEQ3^3QtLXW(VM>kDkD?j0R`|IG_L#>|x>+}UpLY;D5v{c!yD z+2e;BjY{w4qIZ1-h`*SQj^Dnydvrh~%;EkH_zw$_c`0Lqvkw>0f##ER1DyA<_jR@ny^8Q>QKa>JMLUw~4Z7O=b){ZpkG0=K0rP+^=4~JUTog+W|_? zW^+UQ96snEwYy<~Woo0#PSIm{Ip46uxDG!eDHMV$5e@IG+@zkc)P1E>;br)IT9n?Xla#)QF1)Kk z@bcxW&c<%htlK?troDwXzkpH5B&TN=pM93`E?{e59|(@bC>MxTncsr90{VD%F~B}G zPV&qt2xyk6p13+xXF73U6Iy$||K#KYTi@+)3~qzZ0jOLtIhUdF<)sg8Jbbm@);Nf1 zr=tO$ZDu=X#D=-Evv=>_9TSY)xFM=F7cJbAR^ z6o$#FENZ1$ch_$VzLAxf>6qP&#V0@B6v)80pnzt#&ae>LnV&mz4_KMUs?(7F_EK#j zU;-a#sXPO$5)pz}IvH1SY;*srNRfI9O6676@h8VIg!_{DS${wRXfPb*%&k19SCEHj zrfXx9wbjY`7`wI||1_B9zhHE=@_q_~!bjI~8yv3e%MCsEZ&pr)+VrCFQYwtr0y_tY zo>7{k+_RjPfEitAJ}sf*xs`358f-$7EqZiTSo^nFN=cY|uS-d(Fd5?uWuID2t>R^K zm->&uZsCuvz@PlNw((kjQPo|?Ci{xz9r7}Y$=m|*1eHy~6fe|4iSuiXhQ1xhhPqff zL{l=jMWK9l{NWf7jLa51aIUW)FI^Mz!;L_^4~uz6VKp^3_x4-TGmwGNvHydBSThR* z`tcVpUT97zNNH(K1DV8ANw~9nfO9H8$RvOlxy`mBJ1HHuxr0Kp83)~c_T&*ij!y%f zG3^d52mPmm;Bb>toxWsgr@n#o51QyoiCqDS>Rdq!I>IorNhC?3Efed(kHQF+4)>4v zKxy4RoSkzz?_GDl`TE7MH+cK%4JKR zKJ(e{AKu}fhW^;?i38&S0t5MTrjPI4TPUET3!*z9igLv4sL3sVtHJhwqk-d_I<0UJ zHe(PDH>kSthvETcEmC0YR7(}-NW)VF_`SHe0??sD1gZio;uXGp^(L$+bA_$t+J3R9 z$$~Mz$vDIoXEY`S=al=Yk|LN8)I85bQGgHtit%(5 z_IhMj*(_z5A7+0d8&yk@u~fj&K*o!bX)G*fyg@Wg zZ4NC79WP&+G5L^-B%m`Z5?QLY4RDDt&l2NBtmi*kT2@_5R^nB*M3Ll;3pash z7yFrdZSBH>$e7E?Q1qd=@?WDt|IPQ`pmcol@XmNRXB(gyfX7uS zk?^$uqLDePsuKt;*hwN|p)}jr+K43CrSW+O8;NOZFSZS53y(=Vx@~+(V22`FM$V8V^RbQgx%*MnJ=d_v+Of zJ|=oTvx$6{3XntR88hU0><$LJ zbSj{tC(L-0^1&I0YM&aFa&D~_H?4~DV%gc-rFNfRUUzo(xR<%UjTGMemVutagD9t` z=lGwvUk@IL0QUNdb)L5 z`u&50$*tyu+azzstx|J`2fG~8n+EQ;%GQdTE+eS1Ll6@=YWTB z=4M%Q`<|ccg>mQMLJZXalc_=fitH3tJO>(?p3kQ|<9KefAWAuL6u4P&f-aYPw>R>@ zR-l()5$EbU-TPLNRhHH1Ovgf*Dv&6#Q-wQq&yYxker{%c<|-ANw>5MTTt(Ecn#Hw< zhfK)Xc1<5%m>8ACP6?qgf;9C6Hv;6~1XXX9Corb^vu-~a-tzOc;g}j%G$W8SP4m#m zl>u$R)2#DyoGsUc1aXxGNS#tH!gSo)VgjZ;vZ#(+(nPnFr~mr@8GElMNz&}P(^cq*43)Z6mTEDw zXD}ETxa5*B8ez*dTR!lCuluxr+CJ>Q(eS*KF4J1`&^EZ~=6R|t!$Qc&2@WH5*PfdiQOxUt%B%f8}0^sdf3&Mu9nIm2ELvH@J1 zMMgyeW8`Z=2WaWIXU5_U)Dy3cl=7tMFTS%oz^ zXB3`!uxS`C1RdnU!>5lB2eLR7#TyzK7>k?$$^;uC^5&#rIAHm1BtmLtzpgN|kkdtT zaWc0AlSn@GVUBXi-$#W6i-xL0or90h>n9uG(SswGd8DOzzmHd+QZH&1QvMh~7_~Sa z#kI;7XXmF-;Q14#u(QiEo_t>F{?7I>+7mg;=V*C&VR!G`7h}n`=`5IOs-WeRq{<5( zKmCHY&w_?$@8N?Z>Lbo*gHA`b24;cFrkbTOx8>Yyb@_2z8KB?sWZ+A#B^MN;HWqm) zB>0x7Jo$A}^xar|+!(s(XBX{9sM+N6Na5p~V%RZ%-ZK@^wL z681tSiT*GqBRqgi)rl^yFl%KNp$J;x{Mvss-E*@ouT zG{iE)oKHZU53vcs1FB?TH8OqKfkcaW)$)|Im}zg7K@Jpk5CbLUwCF11PKTn8`gq~R z)&1>y_T-_IkNnU|zLkfYe>k)p1t4Uk1J31|EeMrVMhS(;Mlyl1;H6||QuL`;3wG~p zN?R@WK`T) z3Ow88@ZbNtAJDh4jjPD%)e}u6hAVP`oB``+~d1_{`nKuHSmmCg|c?XpNkKWI2-oz zI1O#7M*A;cy%!z`@8b97a+x+> zaDb#1=6i?z7_tuYIaT5p&+q47eop^htrmKNKG`?Bd%MS{Cva&O3Erio>U?ci|>`6Bh@xyFJUAQQ#~ zpB!ui3MNdLxehbg32a%EFdyU7C!fP&wWKiyy?8L{Lxse|hI3*x?#lup5);KdwZX3n zW^fVGP71uE2je8rvR#j~1~M795m6dZa!3jSE)&ZqUI=eB3w!BijLG2|%p|keED4#4 z;O+)m1Qu^2D29`P`mWeY)~bFqg+R4Hs2oo~{uVyM8f#;@|F|SXdElrFoi8_zy~!Nz z=60d7*Xc7g^XDuEG;fI>qa=9}1G71RAb~O@ONaJC)4F60m@a6Kcp|uCHRNS7Cc9wW@f=>5JQ)y6B5IM?2>f9#*x%cOy2`qf zt$;bsvKGW|i<+q%8cBqp!ty;+BvcV(e8sx*gNUyIox(;blZ`erDs#YAy#%kC9V#n* zdSaLa)OY9xG8NV2QIM`#o{CAHZj+qh3cITi<_K;pe3LEORk^f8oOUfno+`Y-9OUqV zT(S77ma31|cIgu74r8U}sz6chmANR7N!dxJ ziX~wm+vAszba;H`fx z%e{Z+F4R}JK#i^Hqoe!f67JP4%(!wEoYU)G9X&ice)pDcMMFAH*^Dcd5+AL+r2=4( z0Np?MzInD6`Q+g3vBGOm{uT>RHoy|-;V182^U2|sj=F@tfIVEVcO7cSMGb9GoOXA1 zp1*odUEXQ8Fe77U+iupi_M1(1_u5dhsH7Y-u(GNUb@WgvC7A-PurV%Qp$H8N_aIO+ z)D83_sL*Y84cG(m0CAjL`g zPx*!}#)HYa`P*mDv=)+3Am%*dNl?q*gihxlzk8#&FF!HTgi;1As3njsmxsz@Ciqi! zL?zvc04dy<5W4yD|6vRx^F%7ZFrs->^=Ikt7Bo{$I6$Mfu zbLp5r6{bw_qHU9Yj=#)rVawnQGc!JocB#BR{9y#R*wjozF9lG}2cm1-$-J%0EB-F( zO+-wglb)GYa2eTbaRw%gTA|NY<?ruX;;5aNvC~ z4|ZP?g>DTiqK&^aYE8^&m!3Xy{^>cB!y@IhwqD3gDn&FijoE%_BsZ3e`esx}IrAff z-l~EgnJpBx-tZGUV_c?$+he94mhgCI;2P%6Gs*IT-B4J}2fu4wk3hM3w zUVGf(?)6B#{RpMjc@VGduXh|eu@I<{=I!} zP{5DYmrwS0>ufdCcyMr_rXf#D>MvN-D^G{n7~gl7$Uwn4-7k}}a^OMpe z{47x;XjJRF zy>2!d3%fJ1)l5q{+zYaKu&mCm2Kf$e@J(*&`RfF@^aFJ6dpFRD+nd!JQ1$8y*QG!8 zHenIj_ND9ZqcL9~m3h|SO^_7E-q`ZfMf>LFbS|Xy3Q8Q5&P(!KWr(QXGixbBnJo8> z#vt$f(Di)TOUTRP-pO7<2b(WnNcMpwb9)Negy7fjZr#+cGu{lGuqlVFiC91`Ks>bA zDbGa;K0oUyt2g~0l)G97MDqHEFwx9;8D zb4=}$p@k+A_IT(z*B~qEqZLM3$jMVGM445Z$12uh;`!l=7q42)9etK;PDe9G?vg1D z-^T(jM5tvXO-z26BEAF1AQrh_Dr*d}Aeo?$MU#=lH#@BglN!x2AVRr--Yx9(d$2#s z3Jvu*4`@sZD9aKOJp zlh}svDYxr;d|0?~{BM8$eLQR#FUG?GIilbD@(F_m zxq3iX3?Q5^C&zDST^T@hIG2i7WSmCfo7XQ`e{*Dg_Vm%)*Uuh4xO@N39{a$3B+2bM z^Ic06rI@W_L9x*-lY{ewXBfdFS!8VpI0Ym7v(KLNdtEFW&(BW&&AQ+PeGsHM*J8S(232i&*+@jw0tx&5nICTdx#qlIFx$yCeO!P8&Yfm6^ZmWq(| z??1Tv#h0Hka$a|@xG$bOeM~{mX?810Y767FTEc1?$1%Pe@Ce`5H+jz6x3AO`6e1uU zErhQwScU-980~4+h5k4k@ND96%83fxM20X=sBD$yC`7y4yn^aCUx4`Mh)Y9=JbyX@&yY z!kMOl0G8BXJfU23g5a`uJ)Yrz2;p}!k8!9VNK_fcl?5J7G7^x+qhw!ceTv1q&aCdh@`50C9^0KFSNhx>wI%kw#<@=~CsT zx(*x*WgXwVZe4HiYFw2RV|*!fO)Qr+*@%&I0kjJT4Vn5hvmObD+q@haR2cofEF8%V zj{w%l8H40kml(1I+uCKwa8gp)VbN{x>}@rha0jHQD&)<#HdZ{9A8zmNW@?I=8uPkn zNxF*cak<_K;t0&x+r4~|EW(^)5V^&&V^}&8k^Aj>ce)ONGXqO8#f<*6N|@8-HEZ4J z+%c5I>cOnLR!8s8+hj41LYRbZKJ>&+sjEw@MiD_EhF@hvl5$O@mr7Pr|Bz6%8(mg{<~L zxs2JJUu-GHzGAD9RIm(UntBcJlh%M*1>%6p3F0{ue_8s>1nsw}DrF?6_C;y5a@hk- z0$SiZ@IZh`usFxc*a?*2Q1ULAnNumiBj$J}20jOl1S%;cZwV}NoEA`{K*^c)F{hn! zQgEMo3wr8BqsB0itChK!#rjsMS!3&(QpqEKQO>h;#VrL^bAUFHtwV{>_5xf6R!DKJ z%x-qTwP##8*s1RVSrvnO2W`y4AKcwLU^r;kwmD^+G=Wu^OAkq`ZfikNuZIVF^&KLa zD^#s;Z)fZN-QCZg-hFhm->749;cd68n0}TD86OL{2Kr3OcuDIxR)axw@&4^%Hl$A> zRF9R6C^rJm@Zp4TgU{idck;#4`@8!)o$K>q|AKQHRw-}n^C$P(jpp+g-$AO7$*?DsB@k6+w@eObv32Nwr- zTB!Gj1B&&cz(-XKzj%6d0GsI$WwSih;HvWx*DCA*i@+4sS^-iLOfU9|$GA}P0koux zgOH~TkQmQW>~SQSp*jQ6fQ4$$J)0`YZ#c88nV?)Na?=RJ$M-zq(A87H_Y5rCR;XE? z^~0TI!Xc9N;SiS(IJ1lg^yYvz%+B3ws+IOR*vUbr==K0Za$C*D(ZdHCrbgZ4*Vlke z1hRaVf6RY6p!XTW0ZrREWj(Xs5x=@7?XQeJ0Oo9MtAV8X;n6+BVqC86-Gg(vUJj8j(xFnRG2ex-MBDF$MeSo# z6dB3+RY%ixkRMSO2V<9ODp=WD7>7h&m%NnJLb_d2j7SW&yM)#bc#BC^uCN6!LYsZq zg%jyor{;dQ&_goA1PxR;wA4K(>~)xZ{5xs;`e6I$4EuQR`hhp8I4S7~ z9FUbrBW5ZGWtYp5oN0qo91-YHDdL>(QmYkZXC4(7x%U?^SO*Yp0cNKcgPA-gnGF+5 zujHQfT}x=uMv3Xk0(L;==1teEcy#UReI3~7%(#uA6q#=jd|WMl_`^~LW;i9Kj^V9Z zD;iZdve4kUk|xdHTsMH{a@a);GJ}4F|C!ay1QdEQC&qxc&|($Z_kdk zKCL(OR5Q-;qnSUAx*N-;jRyqhoXE?|ew8L?>2vDIw%SMv%bQRc2RU!vuJDe?a)|7f zBacFOmhA9w?}I+%OTPjcVruMar&F=Voaj>JU|WpG*iY*c_4;*=w&E7I4L>=b>_Eld zGLGhC6nm9igwQLWZ$~yRb+lS66e+6~=E=H`Ye&;p@)hDtT`uVv;|Qu0F^0x~jQi-( zeWkrHZ`0KJB=W=)rXDgVYGPf51dlEx1!u8JZtudB;WN2cr?}S+&1)A0Q@pZ_z|#jg zWi(JQyhjf~SN{0nL*n<~^DqozKL-;QbisNB{0ORiJh%t*eh{pM#j?`f03G~<)F&*| zrJkRTrt%TZV+b`dZ3LqLs}P}}Kq&Dv8^LKkr`cy6PKD8O(#lH8(G+Mgg`P+XmsFlU zEH5d(v=`3HB1sDvu@PF$8TR#WzSbV1UH{WR{gac^W0PzwK6`r9Y;7H%yuUa*hT_6; zihUBS0_r>M%*ADYayph+Nvaa_aoL#(l{q|j@wgq5AWoH3%a(dwaDD-h`)!D5B+l{7|s8wTG zRVDNt<*kO-8OV=U4WUPd2sf5(;RvdBVkaJnEWcd+S-(kNqE}{>(HCfqtO;3WqtRwu zMM7c#EAqF<>2CA@%A0SFSky8fJR5tb&PCnxmQGCB2Q((TQOMT2Lml*PE_}wq#F0-egJ38j8BLzkR<~%%0T`nfTBoPwuW68+;7K* zO+-jZ_%5*t-=>|`5`9{8JN(7=oDv` zIT+X{7c7IgiN&!kP9&Fqsj))Gyb2smAWL0BB=2-WX`~kW+SAP3CoZLAwy1&HGblzJCGK;E58Py!j(buxnr)e<9k>rIKUc;8Hq9$ljAMfv27{>t zE>T4_Pko^dK4v0@GQ6qTks|ubkE&JEZO;&I1?IZjuviP z%iUHql`>AXdC#@l^^0@9{X4#-T4mB-9PHt;GQWH8u-j3WA!AZZe&u%5X*O%yyL&I+ zyaubr`H}8~b=DNBE~^ooHlw2DO=OPp!6!qnBxu+AFPD?4N0xP^nF@nK5Z%3r$q6J730Oo z#ZZZMNqko5>MLRo$E!q_;_xS@*LykoQ&fbOFcNvYLC#;E`3i&u)!A}YTX0x z56EtpS=EA$mdMQJz_EF3+@$>5PcV|bXChD0Y_e$i*HcLwJSScg4SG5jEknc#PvR`S zTtc|e-;~nPEak(BXS*3)NEM~baBwy357NTOaP8P#f7&Lqa?JFQC(9HIIbO)WA#|vk zevxTPn9fJ_W_7NlkcpH{0#WtPT%4H{1c@gZJJhm55JMT_`SuMRlPNZCliVQWW&|9h zD-2wZ42>tSkZ;ytq=R*-#`J-y6GV4my&-e>Fr2uGVVWWk=BhReG zH7Rdi*G)N&Ibu?@p<+agG24Jpse68IAtYw@H(w%?E{vENIpi>+4f3qGcaS%gJC*YiqnvrE@I9~Mb_|%RWABLwdp2O7S&WfX?j+


jLu(q|u?eR+zfv3ZoivtX>Uzjt(r9-_R%mZj_#gxx7GNC9CJQz3)&pZ8w zQcFAyi1XRgr%yXqm&Yfk3_ffUB7qDSXh8{0q`_xnY5dlh2<)Pn<CdSjY$(nm`885P54KsG5Ie6tru}{o>xH0ueK{G*gpz)Q$pG@{V5pQn$V1$0 zEGIxhm@q(W*+j`+v6~HXbd@>HEun^Kbv``STaotd08eI-Z?hQ*&DF z-D0WAwMF~~qOee0M<}VAH^xw>P@)EL#bVp|iC)0nZ%>Qm$od5GIo^x$ndMc@Ar1Mx zYSwo&4Y0>*^GPu1u#B9;c2FioHa7yeBcyW+ahgty>1+-7QqP&*DASwuYgwW*13S{? zZw&bGob{F?$1kasn+5a(K9ia0m{s{;xyW@kepU?Rz7r_HL~J$(ZP*w=?_T7T;Sl7v z=BtxqyK>#r&WDQc>FtElg`+ZKwv-BF!a&845-j`fkB^Yd_xw-pP?zwODwLf5{IxIU z`T)yr{qq5qxp`73I@Bfs7l9(Yfa=FgN`q_(nkIZ(I#7U&B#diC+*am*IgmPw-IDnr^#+)uF^#auc2p=oG{$gkTZk=zVwn} zQxRi{<RTpw;(j!HX>$OJVV$=K{_)ZU!@(E zx5;!;skK>-@OLbA*F$}q?PE^?Xw#i(Adm$L{jXdKrZK0_CC2mvz>Pe|GLcdRsWEku zgWhoU*=d3wK<1={XXS!q7Eq3pi%kx+#An}q7sn4CKf2$SQ#_7o)g?Gn@&p1ptP0qL-;h|A3$f}~zh>cm>8;lb2+hlW91O)R0%E$U1sfR&C zlmIHb*d!jyNUk5g^Ko>pyaJciY%UZC$tm6)zy}z{30pY4Rjb|W8KxktDq)QoeFKJ1 z(M}7`B%LM9k5u1vltgpM%|q9)uiI6JuB?=w*{0HGUELh#g`ng#h0ujZqp z#J-o{qR`oYd)cOd$mzUvtR%V^iPBs%v&_U6uV89n&)q7v^fh^?TpOpUb)ZV!^qmcu z@zb3>eemJEc&nGP;XvR!{(rcFiPjL!Z7$8GJjxNPq|?fxmEnYMoJrr(aUiD&qAFpF+5f>f$Cb}3dhTGW7VH+{q>o>o?To*=yz=Na-`eB-c=8Be~W868f$Txebia!~MQj{rd} z)o|Q}DW>KEFhyYrrXBWsK@PE+EF;a{U1Yd!btjky*8!L&TB-eN*m6F+c z70dljUpA|40xP`tXQ%tS*a%Dc&0|Frk*Ci&eQ;0iW6GOl)}4*uBpe+*SO{ZHF@96F zl;HK57+t0W6?(@m-8^j? zq_@f11}BrRx#y4>keeG!_S^rv;)i7Gfo2n|$X4)~aVZIwB1C9Z>V2T}IR6`)7~E+QWFP;a z&HBFn(P88;<;0;wo2C2)OLG0*P1Cnlv@XBOTH3i)zx>M2Kr%Gf>N-M>4AAu%GFhf@ zrTDDa^jEg(+)%&z)o*s|;m?2eJuj(V^_Q7J%Zsms+gzq>w9JTrnd^sCsv=uW>+)-g z*C~#ihuvneO)G#k2Qz$5snDV9lt~NW5vo*}^0dc@03~(Oa7K>W* zxFs?u0@rOt+u)^M=C}iS#ltb;N{1oOxkyrNoun)!=Nf6lrR_wBm8Sd<@I#YN#geY- zJM(Ir6fv=wl`RfX*D0*%;LjW zE-?#rHyLkD{P)q654>EJtzDew70L99GJXHv9bjz$Yu1U>6#hhM2JN=52;i||2Zo9e z!}hZ;tFOu45B3~t8Hk`Ywy7v5xX?1Jd4Jqjyk)*2B_5_1bQfJ{guAu6^Z|1Px_0^+ zqcGc<$t|5*mv9n{EEKIx4XrntF1d!w-hp7x@-~Tea^zivh}f1cH{InfN_#E8v%qZ^ z9pcHanN&1Fl~gUSJA>&~>0uQZ!`B<(>INEXiB zg*u}73636}2F--diM+}U9Y;2EB|CMq{N~KGS}56`xE$2J`R7{S z-7q&*S?H7dgUobH>m8#osAwsha+D`k7Mx0qiE0%nvP>5GiBzMi zQi=oMU7R4p#|OL@sFHji*B7sMyvvBVbUAXZ4b^l7tyGb+P;rwS4-RuA z{9W@q5xPhhjJ>D{6%$ougBm8f@(XKh(O&4Bh?PGVyAL8SQ(G-_sF0i@Dsqx4CE~r! z7w*L6`%trri812SIdS&yFJSA&vhb@bQ^kT%1dVcM7sVM3(Ne*Ipn>L0;9H_gDpzu; z83jYpgg#4S$LAW#l47BT-L}nKVYbw8(`krN4JvfUWh(gg@Y<)Qp_??Ba>15WTWJm2AoI8_{K?gJu$0qXZ`JS-RTz<)5` zk?ATx0PFYJ#1{{N`*y-UjG~HrJDR`od`vd2tvMwhA})G&|9}iE%5;1C;O)D!FMjaj z*7o7?`PHkpCyOX(>}3O2zcxBhW; zkpGd2RJ#smWFsq8Bco)F3cobVR0}m%LIw-oD02EweiRrWFWqFl9u5|vvQSiR&0G)1 zE4(l-_*(83@POe^JC(f3pYRz#if$K6ILKQ0dbI^akt14`plp7cCjg9}wc@UGV<>B7 zu@ou^s}^f%!O5zFh~#FkZjJl&&j}=>DTS5B{(J^ZzCevbnRffB&9D z^y71m0bW44TH(7wz}srpklV|rL{YloTzz$+KN)fJlg3Go0jeZX@&hazxk32|X8q0u zA31jOfl^X1rkmq537rO&yOaa8vCKfwWAY&!M`{1@Z<&np^kS?vO^SyaM)!$G=mZXD zd;vb`+?v4VTog#%ic5!v5-Zx2T)sB?NmZ43nfr z#$GHej=Hn^hmUqzd-S7xlfA|^Buv`E*%$+Z0;?HZ-AU2l7Ql&z4KeS#QQsSMq5L&^ zy(z~RcxrbDF{}!Cb2R2dsH-)n?QI&N?D@p@#Jzj5p*iJDIf4Ghcbu-Dw;uG zU@(R`gDipEKujWuYv<08&q^qBPj(^b%NX=Udf^439>xKT^!hxC(mbEqVu}=>-)aGl zR9c2Rr9<4gKzQx!7c>9~WUv+g_J91om>YHb>@h+GeQa%Q zZ|`#aGF3=0mJ_Q7I19+aj1TATARQYDL;Gx5U%^r!Gf&K+53q77ITY7a_GDTmIWpEd zdePE=+>}~$?VEDZjZU>*>qE5F3f_ErH_;ZesLIul3F zg-5&Zur>i+Zwr=S)`sQphY{ohYUJI((Esp1n?s3v*~?4nuS|6|I(j?tM+^NY&X##I5S86bhKoZrCTu4?LW1na+VRYG*6RK9hxe|>kD5n0V zq8#0VQxfh}3@EelVO|r?mzV>D;vXSP#1eAyI*m(+>$Ng-^#O8hU}889XYK&@Ch2m! z4lN(2Tp3pIPG&}>!kj?ClW0v9xLQ&`r@c+_&_yXsap5v|Pc$z->xTed zs&b*UbMuHwm5R{`D|nJ!wjWiI2COIsLum2`EuTq<(76Bbfvop=p{UEoicv2B;pTPW zsU}{oqI79qVz1NXjlF#S;>poxEKI2Nlx)5;3VTik7itdNQK`uHF(;q*2?suR)9=3i zO&2%E2S-(OH<(m}Sp!SYRzsU~p7;t;aDZ<_Zep#FgE8g%O=mXA3`0?|C}eTz9S{Wn z?~&rt7sqd3BWwQAPk!P|w;BEZ_HY08zyI=AfBYwZ%DHlOb~#rGYjGoHa!|Urv%QBP zf<<|2r))CDIShA-n*~3{yd9)Km|s$=_%$esMP!&*0VD)Ifu0Nvq|k{v5>@K(6VxCh zEJdLeO(d<)MqOecT83p^thjDQu3tU;nf6DidAKegzntbf4Q@PRGGB#_pxUD2!eo|O z%$XrNZLPMcMy-|MNwLT>9EEpR!6}$KqF=2yfM~Gw=RoCd>t391bq4&r>n_`e5zTdC z4-%?NCzuit=alX$=rj?*8thKBDGDu`E$>-uHvh$^bC1 zovz_^6?ZY?eWTEXsbd6h=uTJL)Q?0u{>Kc!+YZ2+Wz=0>SE|;k&Kpj`Hn)1~FS%Xc zUGe>h$g*PSJ07R7qiA_TQ2v%q!$xng`fh*U_dZ$Q*9TAF`?uMgADt-vC+&`J{?<+O zLg$P%yXL|#QJvKRus&T}|KYOzRN>k51j_eQxlAN)K&{E$%Z&&3;qU(2-|&}dYqd-^ zw*z)9oZ8sQMYPd@SYDHX&N!_f5N3L4O+cv0KOiCs4vA>;>Klk(k8m1Tp!kPh%CM<9 zRCreaSqxf@UQHrDeH~MPMyU)Uw7a&a#5~h+E!FB3^^w^LY59Rq314CSF^owNhhxYp z5Mv5oE}J^#Gre*U#hfyM*CsSUA2sTOs&D&tCqX4e&0u z=X8OiDe_udl8XaM!{-^HAd!)d&5ro@aYiz6Fr47gnZTeW9)V376AAl4ZDJ@dI%HC9 ztC%OI+GeL>D8W}X1vMzNB6b-dv)sbEHeRd){e&9XX9|N6?ghDCfo3%sE`S07mOI{n zjxKpyV*X63nkN#RIi4<~kQJq5wsx|*Tdp4^l%R8`+@soe11}|;?>13vdDnFTR7{vE zGL0+duyVv80-8Cwy4~J2e;FJJ!Ia@gIRsFYX_%xS4{WHJ)bAbcVpPzmS7m6YtV@q? z6$KSmf6#_(8>e)qk~9o?QlWTlTb7|E-6PX)yl{(h5Nf{?UY>Q(bdqR7SI%;kAII1J z;upVo@Zcdg>wJD9i}~snN>*8S78ZrP%6)WDWsaNAjC80-P^|BUcMtEd0p+WBkNht_ z_3{xd<{d8+D}u=6609fnM6+A*#Us%jY|{V-5S*WM+3+bH)Fr_?JRuO-i;r8F8Y_Al zeU3H+Jk@8DOmz12?8s4;FumPqx+Bj12@c|Bl+yYquI963 z`I53v96alW+MRYLa>+J%KAWqB8#JNYko}E;#sM;!?S9t`oFzo=g*S*s?v<}SnFUvg zc_NOK4AZsN)(*d7|GatgMl5ZSKiqv0*i99eD|JD@g%S)gMJV~ig$Khai3QYmqo@Zw zM+2PrW|kYv;@>y-O=h;a#$U*nl9=e(f$=b-!g@}q3w|XskEO~GAH$l>m*$4Aw z6WcKF0_bg^%)mI4^SC!$U+Z2Xl99XB#_4{%9xxyIW_vgyJzP&Gn`%b67^knA&?2n3idM* zFPCpIvSeNR1Q*D9gkp&bY5k&a?$aQjXz?KUW|FW)LOwkUgA2r6;M8btZJD*H5Ob0L zFr%S>`kC^h0w0Lu^77i--yih{G{piLg0frSU>wnu7o&0yFqvl6z~nWzq+r5OPEU`O zcd>#zW`ao?;CvJ=>-|ZOpws*jD>`73o zLeWg-vz;a_>Of%^HNX&4*d;H`` zwguNk+`cHm15{dY?dx?0g<`W!stUE9@6U}0M}=Fi63Nt*4I#PO99?_@>~GCq%HOmB zS+;vl)4=^DX15kZRBcZ7oGJX|O=v!Z60N1$3vqTVl^}q!iF^na7P~xGu9)FGPFN`b z-nGIItC#79`N(IRSN*Nt)Y7 zgndDywrf-a5oyHq(v=z3vZ+s9&Bb<JsU4rQXNK zj8#|PB@lX>wgj6P)W<*c(>xhh-)}6FH>efa8WY?6!qvHwY<{gfcs}s{6$p#e9(A$L zsn0^3<(8!@M&{rEk{GH&3uUSFNBvaBqS1(zs0Fb#GCd(|=VNQU80=_zCaJ_a37q9XZPPlOH?xL@ULh-M%0obRDLw;XD<_?9OM z3F5k7YEooRYKKYB4ut^PVoxqIfnng0`nvJFv82Krg)9Tw?m(K3OND^`e?FNfzPiP(WVQAr@25#NpO zmvRTOe++^W&*WZ|D%}d9le5#}tHd0%RXh7@6vLYKaWjX`oh!b2@tU0i$+J(69+0W{ z(?9;1c#TOw&6r3onkJFPn2o0k_?r0&+5TSRr> z+s;#~Sb9rf;XJ2R$5oVy&yF9MLan-Q%tZ~ji^QA*V>yy2)@LE(2ocU)OJ+$(g6y3V zQYD)$rEIxk7h=Gh(*Hua!%N0DRzvJND1cc&{CSyGS#pHBdsSdxaa8Ki`B29x8@#}> zaQ(CM>-J8*Qg5R%n)fex)>yM*MezLPE1GLTJ#qT&cP}&9+g7km#%GD03SB%}Rt598 znkZlRWSIwKWIo$!O0+8ANbwH(WLZeF(-z}YZ<*r(o)Wa$a+g$RvW?gcS=YbDf91O% zV*A3O0f7XasSAc(I)K^#TBDSG2>tLsfj+M-f+qIK zjvIzBn=}=-zjan8c6*ntTO5X_LbSZ5z)A4e-^wm#@Nv1%)+bKj2R9Cqb)UYR6}(Sy zhi<&W^_1ZFj_a7Gb*nhbSM>bc|j1$>{#5y(-4B>%~01^d84>fMA@ z{A5yZH~SO$Ak#_IB++yE<~qJ*nxwxrs8=fid8q=r2v|IuLqBUk|H{jWw7~8~gY&>g? zz;%-%w3D1GFJ_X%;gNT}IocFW`7udsSah}T-o4wozC7697I9gI3aqLFOSzy+oKgV| zN%z6fm9ro?k7ow^ifTMYvN!E?xf!DR&JHcrT=TY<8LERlcLjL?;B%((2%ZH@(eI4} z+>@v|Vi7hjmYVzsKql7BcHbc=Au|IVI*L;&x+&I-ST)hW!~v-sTDLXHERvB)NgJ{p z3(iQsxyjPJC=aS;=rKP9n0vxLQ)C@G5_PdEWs}e5uw}=tE2k979r#a_cc3eX}(BPTvmVtjurm2*!X9=&^WOyRCq%cFkx{M}m-=Lyx@*~W&U z=qGm{Jvcu($CiQ6s$!V!g20sv2^mS#4$|HS_wG(%M9EwRLJh(1n7?EEE9kD zb*ry4w8Fu{3W(CQKmdY20rBLq1^}dH;A;9xdU5SA{{VC36RcJm&~CUOlyQs?cu{5+=2>oP zVoGz3_jGG%-iz8BIlosIihACUKDxlh)XWSd3~u5@Yvo~d(Rr@tz;#Fu7;NBAH9?(co0?ntbQTLr0J$ag1F z9b$|pwpN6a1UH_p$lCD>>PYX{)KE#tc_k#B-1=-Ny;to zEpjmyOr%LP@4L4_9a3Z7>jic<67B)3n45km@G%D!ha56qr@IO3)i!Z=_$WY9%GAG> zL_?ejM^WK26ERvPHhRRP5Bg(Z0(!Ogr^h_noz8psaZcPe^1n|FwDlS`l;{E%G%AOEkfUDWf@FHyF|6_+u`9fB04r_N9_mlXEo|^lH=* zEg&l>NGR^^rpk$Jqg}MJRdU+ihGKMUJ+pj9WdFqEf?)xFin}2o3A+|CvO67jmU6|Q za>Jfxq59(=@BHf5zvj9y?{Gw)oW47vP)?_aOP$JGu7SR)iB`{%+P_f#+US_J2r}#g zbZl=Y=h7udb_F@=?MEyq`ZUE#A|)e&9dTjqR@HoJ1of(wg>^TTUrkh^zRbV;{PCNY zF9;3TZxP)7O?Gtm!Qn2JVdZ>_TOGg6hxZR58{XM(=e=0mm}a#^I+Z5{Fv{Y4ySo^_ zsmW%K-r@55`|TYnCN-Vk=63hNCN-BPSy6PYqI79-D*vwxNhc)qyk*Fx?8?KyNP{>B zfjf%Q5LwKrDHUOjB))VQfw~)Ny0(=N>8&$28i_#>dDsNsRG4 zGLX}IF$hWbq)-o8VSee6uR$&xWXRkWN-ypNpg zZ(u>2{rh@|x$QJ*x+~AscUjSGuyovuT$pw9dcm+sI$G9uO_HAJ?18=b7LY&!X%Y+3 zyOU$~K>TZj3(KTsrk=*6kG5Mo+D75%BBJb)8Fl{tJ%SM;TQLO(bMO|_saeO%wgALg zJEn^oH1e60k@H{zKa%>MCvy%9ZtYX0$>fh{cmoq^TUrkxlqu+Nt5!#}0wP9}M;`_~ z69XU~f6C-!L>E$_P;h%Q`!O4H&j!@7SVRr3E5)Il;nR_qek;?Fd_K9Vmg_Xrwy68# zPUjTi4$uDE7jF&^9wxfOrxeJO<9EC&=moOV#9kQZL751p?jVQ6qA*Jth9;)xNYRZ@ z?ymZBW^EK&EHqg{p{VBvjpk!_u8Zi-8=1@2DNr>~JPta4R}NNvYP1HLfq|~*>JN|9AijHIpD8Z0yVy1kY7hX`2G(7sU2&8 z+sw&ul!A>SAXVm(s&qlNKs0+mbdeco8d+rzwFos4IEb7)ZU87N^v)ANp#Xolk_8XZ zx=UC=_jh=Bz{!QC=j8Y;+(QClAnP-596h-I-8bJ5J3uA|kPRpd4wtNG$j^mxj>Ghw z{ayS`>F$B;X)dsHr~Uuz=q?Fmvc8(n1O_3ns$o)}`@xsr>t1!Z->G=OtC*P4u3+dp z>_xap5 zXM{oTXlaIqLTatb|GM_`!W5UT{^X;I&DW zn9rJ(GMgo^Q&yJv^id|@d9a}c8m01qi36{<>J37N$VzV2x9ANHc6aGiclHi5(RH|U zmBvghDygrpqf8XpFjNZ1@w*c#K_g)x({Z1RN_|AC$yI*z=>Akj&ONT>;o+TEuinBo zpbY|JxO=$&%U}J&pZ(i^_4@5gnC0lwv6$bg*0=$gQfP5v*+fs-@YT0qYK(aU| z2&oHI)~$+u8)Ch*n2{)FcON!W4NqEx1(k$J+1G+iw|Avnq3FTC=W{`hBhFGGk5q_5 zLLc#B0UWZkvwMAgMRwNC?%q|0>rZEhZ6fcl<_wAqKhI>s%xz{hWuRx9u;Uyxgy&dW zFmnc0l%3Xslodh&;06iv8d7R01R%YGZjYs9!IH)*hGg;1dHK9Vsw4+#wNi4iEIe6` zRaU8NNpAtF6svs}jnuxI1(C$55d__$ykK)Cw@$Os;(johMhtm|wS#%GPa)^Xyd^4Q zh(R-l6PqGq!eX;l{_^Q#I&|B_rsc@STmCPZ91`)%+P_XW1u^H>h zZ-B2W_{PRzCmx%+$iQy+j(UI>;?U;H^?a$qJP0VC`USd*i>rRUeORlvc6Q_D&i>`a z^=Dsv!I<^x)vIUEzU5Ls`Rpmy4y@7m2y_tn%TnU4_=TBM5@|QZ)Zoi<54W?q8Yv(R zDFtyI&?=azCIrq>=N>QCq!%Mpr%Ma4wJYyZHL6{iJW4zV{$#eQ$;^9Mo>QLsrpP>j z#e7&nBOe?FHUZ_$?7ACG?%Ida_y2in`6fTo?NL{8cHYN2*qeSY?$7lC!kc)DTesez zIsRdv`pqA=x%hRc`f45GJJGTmBW^I_H}?&;a5ji0UH(EE>3>2qdaV1nY04~4zm z-oZWuKh9%r^;)ekAEPhLv2el`Ff(Tv?4E>6LuX$>McD`{XZ| zRl6tn78qlF;yf-~d*a0ojaBE)Vas5p62_3{&B7wdgaxN&<}+hWij#~p^F!0mX~BEu zYY|M#mA|f!na%>v3}Bx$)$>WYK(7s16|{O%lAZLN#FIgPL=D5Yddwc9n8(OyGLp?e zC12fdV;@<2{pRxOY_h%6B%tQx>^;wjgtdba#W=I*IdKQ~AZ&Z5?@k*nL{+pMu?*8= z%N2s&gx~dII_UNr+a$r(di|k{Sr)pW$tGN@tc0i$M3#c(@vN zvxPHa(G4N7sNun>$Sqn;TDFFy4M5yEi%Mnn4iig2%_5le#=YU(#E^WUkB`vF**R~Y zmqbVt_~YeO2W*X_muHm`n~OZPe-Mb78L3!4l9byRYEpZaFL?6sCP+rc?T3`!6wxLR z1^W?^x?&NTxO;GAV321W$HLjStUhPjA_B~+yb69XyKiasf@H-qbVL!0hcF%(I4Adq z846~b!K#~%zH1`+8hkep%-^iJOO!ltZE|wMkn1+7X1T33PqAfloOmG zx}>W;fwz*O8ACDHY{|1vI6U4Wzu!iOG)T?ot35%q9#GbRzP-Hc#tE_J(x|@M^;y^V zwVA#~B@1NW*Jk29CVQE`^YzzXOR#P3b+kTA)q6YpFvl)WFP=PlTz+5t{deCS9PYh; z^HvBajWjAxV!7ycJaGUJU59C#RjL8w`1eqa-=Chdic=k(;uT!>pcnG?Cc(ppkNFdFx~tQQD0aOws&*gYW`qs0ggYz& z`6xnjex#FR<4Cx+I52^NrKsH8qK#&gG9qt5r90(hA($4uIo@Od7;3jzFc8`uTXC4n zH=pr+LEnj6nLpKS0Q^qsriSJKh(>=+3tpk`a2nJ#YDtn=XEl%wi}|M7BgMa3m)Glx zb!Oec&XbG?e(*v_i)2A_*}2eDYYlB~!_Fg=e<<|BV`uOS7&wldLpB=w@$6OiDonDE1G;vah zg_%=|MH|Re0YZYHe+EivA*4%`_pf4AbEdz^nXE=V0XK#yK-2ls&wW{3V#iu^iY9}2 zrO^wlXG*k!HmB@lo?DrHFL47fkwsx$!DXH92e*w@{;=S4S>IRR_Jbvsz4Y6i{<4&t z&;DxL`cXUVXrn9kak4J!YekjYrb$FI(jU6V$OT_c7TL&yIC(FpX_x46E2sk@`>ep(?;x8f^Me^q6>vFF9BVM{)JSu ztM_ktOzTxl2Z((EzK>~{sj8)Uw%2Y@Pb3IZvy4jG=aJ;4;>b6pJce4HfRkW$kdQ}O zW0hLrL7`a${jF4F>`KcK>DQ=UX6C6wyR#4(A2~fOy4*H6Ar3GBq>rT(VBK%=w6H2# z*H=UM#i59{V z^S@FkJjH=ann}foE#1`4SJ{lHZBN8~R3BlHDF7n$dPr@H)m$U2J8OxB#U3yz@G;{D z3}O>W&lUGZW4Uec(8+mUY&ZIQK_JyF-%t~34hI9R(oDIpk%@*Uk#pCgQOiu`U|#EN zZc75$rz2=OE^xpZ+8MaItGF`f4)mjpmyUV%7v&(Ow1-^WWgp?T@a}5 zz#N{G8am9%Q!59tgH4yz4r8J#^i1nb0ryg@N^J}n;u~E74O?DRodVF1tnE|x=OHal zX(8Y-U#VeWVJKapfYq~Rsrl^Jzy2*BF*?AXJt|olId;ePkG(Is`x- zCNxZPb`m%v`l2)=fpg0Pf@E1s3!gXo&BF3b&8RgozN5ugYm=B7%(ARXOrKUNwO7|V zf!+Ij&33mgcq5n2c-@I<#0_O!i&|w4=+bZ;Z$0>^e>a!y!29Q`s_%bvY%DYM44?5n z=9sTnl#Zj~=)Z2RUDtPKx8OK4>q_d}a&B`yZ`b$D<~{H~Qa`O1xgU-q+fje?B^#5( z=G^12lFM%kuh2vSZFABGc4B@1i!ZquzW(~R{bBEa`q%%n!+$8RyW5S^cgIihqq+a^ zFaPTQ`LlojXFvS@55D>CYaFNYiaxH;eRqm^#iLEfQKJHLoF|uOhbDJCK5c9@kM2L* zZsCUA(^JL(m@T%H0T0j`&DGyY;lXb!z?vX7Bw)mIzyQ(P<)w~HdU$qr#%~!fxSn(^ z6VaCPE|>{5C?^mQuA_1&xX$^Bp62_mSCoJ7l(QPr-IZl~H3Zvd6 zlH6vhQ!r54uj!1*Vg>W#4&Z>zOJkqXRtWVTjr#<2z$@aRV~)ckpG)bO*Cr?+D5HOQ z-EVGh3uGS?NV2FD3Ojqd$gF2d3wKQ6F8?h_> zOH4zms$hxFtgBMsL`;@`p#8q0f7IHqe0ZG6wYTwAD?49rQ-=CMZu+sM;wE)+RUgw$ zj$rmFI~VU$K>6ml;Oe^_G2SLDvj%Eh9kss+O0lf(8~W9Mk+IAMvcCzleDvBj>U(|leB4^;-16m(#~2Pu4a*)*nYAg zuQI2JQf8OqX8!pkF=iP0L`_*@xf&8<3h zx>792AuUZnI(Zy1^-vf!Pe3wdW5{FxafWShzcU~kdo+kS1?c^Ov$4HmU(F?l_$V@k zT$A&$lzAyAzm2MX9i?GD9P$!J1IbHx1z8M}QcMSR;ud@#roGWb=kaXRACGvyC`oyV z*pBgKaADY^WJ+P0Df`#h)ntEAzF<*mA8Eui^~a9;OsO(St70by+Hd5R>OptmtnN_O zXW`6_P~AXkco!0}^X*t50NKiND2(0d;hG)of?}OK3svAL6?__x%v-|b!$=#dW&1-u zupA|xKb*vjT}s!RXilut@pii%R`bL}(hjq=A9Swxh65Q9O-#94K8Ws23@S)h4@ay(qbG=FV3$YK6p42;XN~{s%aEuH_t&Xp9S=U{0ObMiJD3L zl^{hd=}_A4nK3d7?C_n(cdVc_$JSaGcbAZ75WEx%Dz&^BAy47j3&6VpAk4(q%C9Ic zse{B_f!eHYpEQNP(ethS!Q8wMvAY@;m5wcd= zz1n=<*En+ZC$CIG#(jH6y zJti_*!+5cRkc$Odl41iA;|a+9^!DT(-w>ImSx$*2`tKY^>lTtVk%zMl2?leN=@B^ixZ`j^ZVeI7{8ZM$BPvyC(!zDf+MYQEO4 zg~0rhWoz+U-W5nZw+P20zBF{({8md-L9+`Wn#eXnY(iS?2K_931pC;~Fc5xjQOj5` zx~aswsX_(;W}FL>q47Gn=s|?m)vMf97>e=2T#4sJ;(koAc0B8xk$f2d-F+{fj~2@# zsF3a=a3}GF_@qmSP?kT>)zt;BjRMVW=S!$8KN)VtL64)l=gdI)p6+R600N;#ubigK zqtT^A@(%+6p*CiaomlL6;!@MV##};;R^gGX>v>>kTj1Zj-Q(08EA2xeM^`~+iDlF2 z#Y;=JP=TIKMQk8I%QA)eli&XKf6(vn_h9UC*xbK=e|vk!1ja>k(&xFOU7A5yB6dzw zutH6y4ux>r6kfgyL3Tc9{3Eo~I_?#yk{C*nd{VsQYWkX*t`=Im1Z47lnpW@|S=4m*4x| z_vmol=GLX@(wB38(*E-uU}wQmz+{la!vfsddA-5nd{JejB|(g_ z>3DJpP6kMr8_GPj{+#bD8%xVX*YI|EOS$9m@1Gz{7n6GBs9;2M2z}`{iE@9+>f%nz`n`{_StEZ|U}X+U?qZ zRdh!z$0|BE9{jh*@6Il-V9N8`<1=>EZ=b(7Z?(3rZmgQmW0 z|2Py&KO|Vb$Zt%f{;B=IRvWV#-u8Pa`A}E#90yQ zRB&8&{CF?{$Ui#V-)}Yk?*IKowGB1Drlm!fA1QVM zV6cI}hf-BE%iqk}0sGfGJ~`onM%5ZX0OZh2R&Lqu&OZE*cdy^xJvaa;ybI%Vrk~C# z|K8sI@yl25&#!BhEj})W7LFF+TKJmWg#4EFJ}`1JWI^%^yVqT5gsTx6JdCFsng+Pr zVuGp2FUFjGD7!k&zpihy|!Y#G4y$=x>Xl6D>Bkf(BUGt3r;$YEIDmj23K791@)f?^} zaqY4DU`&~ z^@{2A)qAi)>pA?dKKb@Ywr`T~=^5I$@isKCszULC?Hch1^TgreRh)h2?)@tH*;UDK(BFN^?yu*(x)~ zh`^ap1}>ddm>v~FaHX;ra5Vu|xjTRKFNw3ozJ$2KU)`dw;JtWW8JTa6l^m5U8 zw{r#WuHK?wswl@zxdA{E%C(6XrJ#6md^sN^NB5qbygncI<9>H?bH6#W{FnFc%}F!u zjqf%OU;h5pVi;c@U+hAxsTEIO{r<;aJowSQ*7fTbUp@KkUTe3MhTnhuIYDkHqt1_C zlGOA^KmHuwmI=fi&!6_EXKzkBSI2wX_1*RsoYT)9-;Z3=v`JCWoi0ys-yLhtznCeB zUmzciB`(OjhT0wY9K}=uh8S=RO;XlH@?7Zz&S08jI~O5aVDbl-0AZhw#=iNyMSif} zN?8Xzb`iZU<;1G9#7*w_b#yVuuHpN;6urE&)UgReyPdquB?1#kxy7&3lv|*?BA@6f z)R20lu1x)r3@Q0qvwasgpY6YGbT!TJeRyA~s6M2x(Mrr$W{~FB;=DH_buO%O++x|a zoWN~ZW$`@)zswV-#NiDp3k-nJE~y#Xh%6)c-BeME7!%J?t}>~rrIJ6j`?D0yz_zKG zMWQCwpIXZoNKPlGhdeWr;$0TdW3O1FxVP*sixvRpfy^63zsFP|XJZwwoQph8 zzj*bi1d+_8AImyjGf2|BQKy{u{bq3JCPUGDB12oQszU^mOD&9WgJl@5>DcU7H(dm7 zG@ka0^bfbUn~cfS|JWML|3Far&~bk%{>dDh-F`k@g{dZM&*61SkwZ(?uKk;QL?vS< zN?w%$C?EV&{`Kq2j%w& zt2XbBm(c}LWWb=$?LoJ+Fi{ijsx|ev2NL{}DEh5jrmsZiTCHzgbh`3bg%0PF;-aS# z;8)~&_+7mor#kB^zA=A?*ApmyLYN6hIQ%)##q&#IK9vFnIN?0jW6?%r)+7m-?taaw zAkhHxIyFnn;cR9R=q^%9zp&HV7Xv%6OgnEWGmaN-VqlSFdm~N8Jb_dd-nV62&X(WM zY8~+xygyycWOjMoA#nuPMLKtOe&fsYsIE)oKCouHc~Cm!3wxs;zA0oY(RcATp=fh& z|Mg%0;*Wmz^E-$8xofOiMzUlGg6qo*Onac12$-$-hX?z?eq}nmx^vKee|EgL)Bg7Q z;@NX3{-@jyuU~yTo_7BHfB6rsX5sApt8h^z__N)t-M#x5!rou~)h{Zw(l%iwcRw2p zJAeEC{mtXYj~_jJ`rF_9uD-Ps6E_{sc=5;<2_ghDjw~=YSi_51}Sl!*DDIoMf>t4TnMZuyhIj$rnhHINwAzs>;QOMlX!1b(Fn`{6W$3m&21M96t z8HNR;EFIBo@>buokrM0X4<9}R7?JBVZ9ukUPx2b*o&*J#OYWm`t6e^IU}UW8nOPhH zmB|ZF#hodL2Z}Ydb9U8#f{haRU}5Zou=0_8olR}_eoK^Cw0Bf+?)c>#Dy!u{UcN$i zQ-?WdjXWH>Cvgp!%Bo+^n~^g-;%d#6wmy?fiyk(kN+X5}jDDh(BYt!|&%*g)b#TWrZ+371peueoM#1=&6?OIh{EU5o@sLQuvYTGk_XVStw?Ytd7aOu5z zY*>fWS+VqDqh+lkmBOMRy_<>~(?%?+H6GeLTER7AZ_|Euqi$xK;Tx7C7A#%5g1mzl zD2SXX>-x2+idt9nHEHk$#d~wV`r(YZ0ZMo`p%_=+*9+23F_A;Pyj4MTZ)%NuI0VoA ziL0CLx9iv7dL7sFxU)Z81`h_CVAPF#@J(*a<~n*!C32R+n?GeO8T)_>eGJVz#nx&! z;B9)^JJf|T?y@KEaVhP5+MzI6)uvm-@KztXv;c1fPeD-?3};TXt&=V zAOGX8fA!O!{2V}rLSL!E1Hb`huBbd#XpGkjr84r9gUq z0z)Y4?CWLOvVPu0vu5g);ECV z^F?vGCNhNeK?oh~lMrP@9=h4sePOu$hfW@IW8bvA{7=;s#~1BgM`!jEQWm+zVX zdb8gCcIoaxYg(8+JUV#(?e7}(JBNp@Z@+u-|1Cko>2W*D-5V}> zT;fiEAVGoz93b2Y`dkoUNiK*0Tx`|ohpCZbQ1i6ZZgjPs=vfM?WA~P&^ zTY6*bDzIg;a}-yT8W`CuCM5I|S(nn9-`;Q}C<|<(EyEW+&SqC0+@Zi^Qt>rOezPZ* z0U@mh3R!v(X*;$Kd#X6j0+J7(fVcuhEyQP#rcU9fnIMOp`Gtf4)ME_9Di;lwDQYPC z6#H-`+718CDz$lUSa`_J#M*Z_h)lm^+Zbh2l>n|=yXe}W(&$36gk=sm)rd?$e+( zN>L+sHhbAS!PH+?0}cGg-Py;Av(N~ojw{?e)RFDm!k{decj$b5Ejq}SmLoDRce}>Tb|J; z1eyinU74cPm?FuG%P0VxpV;XOL2&_KiD^Nj-9Xiv$txUpB;sz}RczcT^rpV4TL#>6 zo$VCVz;y1iS8lLV@}*raBZ!Y zu@%lRvN$`D5z=sjnr3Kl6m=WXWS@`W|Mxe#oRL?fQ<|c{0#A-Fh$}z;?3XI`c~97v z%vTdcZCA7LbZfYEv^;OYZo<(doAW;udseIKUN<^Dd$YOKefI4ByQ4GI5&wt(?$3Y! zQ(xQ+xzRtl2>SzB!@0uElcSb3PRr@V?x(QILQ07Utv zsq2_QdIs}i4q2e1DS&-aBaA`A=?c|Dpf}ADs-A@2Q=&czW!+3dLi(^vTP*xGIkxy3 z%FTjnFx0%Bw0A0JbxdsFMMRk$oPvl25}gsb6Fq=M?lydu8$xhe$x=iAUmG24dtf%u zxl@NE8d{cI9HV49M03`+AA6joGPsePCBk52Q{*_Dg}Z{pc9JvmH1LNjkk3rp&E)88 zln@!BRuQ5wXOF>Js`b3?F@fxZdu#f6%7sEb@+Ky#`mTsjQ{N`&3vNkZL;*2Ib5fn z`udC4T%y(l#qPG7>YL!Vx;~=(2&s+)Z^+z&!|Nmt-h+>mr+wuzJZS2huE=`^<#S zj{^s^h0|<%cgQbg@1CNDQe@0{`GDN!tMQm74D~ESvU#>*|I=kcsusG)gL@2b(ZSCS z@9pgZSZuXWEq?vxKxGr z?BIq>B-=ajlSlVV;64QbF~2@1TZR}(PX4>!{Qc7>&$fre@d=R-JYtbzU^{#I@G)N5 z|Ic6j73UW7Rb&;U*gIdU3B-&p+a&$n+UO*enWttqNO$3Q>o!y_&&`_FJe?qbex-Eu zyJ%7(9)KzW0hIq_*r>w+*3VEPQjbe3Up$Mb=Un^#fVWvUKHg#6>k33xqS2;v*V}3t>&i(?GRf42 z;lr-PU$wecQn7R}Emv)-0vH6IAw)p_&tjs4Zu;Rhf^X>s8YunL&_#^`1IGH(_a(6~ z_O?Ho8ggU)Cxz)5gttUyiq!Qb8!o2n6xJIrz2cTYd=wV%3$p77%UfaheYo<`A z^%X7V&eTSTE1@B;QL-jZQ2?YcjP8((>V|kT{?=dDvc&c0wM}tbfT5B~FI~eMN(@ab zOwkH;L znwv*xx8IRoA(p1*%%|C&i1;P@Nxzz|k=2AY(E(83*5Rc4V16KGVCgqXq!ZIqvPIaE z2~|)6Tw{MU3c=GUXc3`S7E%+2(IT?HOwB`}C6HP;FPX2??eA}H(PTJ!_lDdbaD=93 zQdUN@uMaSfjVv)@qwLY3Q4JiNENt;z!`{x3iO ze0!_+!Q;cx)e)@~X6d{V0dVXzUcEm0^y6m?qSFv~$CZgZN@IllU2yNVruebJ`@FG8 z$5%uf9-P#~Qtu-dKA=%fiVNk|kX{N?X_OTJ>UWd)dbj~}6geGI5Ghx-QNEwiaH&iU zBDz;Z8Cvgwgr(rfYb49U;ROz_iKq?eVTPT{fI;_g~f`2VXZ|iT$kJQ$@It}v~ zxJ-Hxs*affT7F_|`&^~sN~2(@Ga_Y`%A|>F$nE!DPVj<(iKiY5aB@ll8gx?NF<%X9 zNiC}_XTY* zHtk?UFTra1HmI9Q^Z6Vq_OKm;zi>YD8SsY_-hhTYu5qvJDE z7F)TSay2jvZeV;>6m#WaQ9)T?yc`czgxl%41xygfpEPe%M+ zIQe?#{mvJ+u#*0tRZ{GqrG{F1zEUZdg^oDzld^u3(pjR(K8=dI*R!UXa~IL?@!Agy zTb@ain5wuJm*lC+!Te@+?NQ9tDeGV1=RrN^7gG6p>gwMJ67Yz;EaT@+&Jbfgx*lKR z!v}klZmGBsZYBIg5Y;$8bUs;h6Dw(2u6dhAL zS^%0-M_F{`!ZRTX16F~6woKm)s(`1bP{Lh}VQJQzTAfPlme9iOcGhu9e5jf~68kSn z7`CZKSMrhaIalI;3!^NvOc}8Xx4jCMOaf+B*!q#YwY@P_-6~cj#|y9ST?FNUNJ&o2A747tF254TKLA7I6Z zVTPW2su8fN9cF@b@wFO|qZyC=z+al(xO82HV%yIa6Alf@%rBR`HQ%QY0I@006=CU+ z3QCsYvMn;vhWcoI&Cpw>%u1&~@0X8h1mw*iV0DvYt68{g4&KTQRiH*1tzu6i-N^V22;!htx zPGj9HPLRpjRHP!#eFjV{8gqju>nVXc#_Fy?6vD{__=j!0eDfB%sq%3^KJ6YjKlD#VcJfQxJlI*7L-i!xJS4}2a+>fF&h?p21nqxh{LtMs5)*tn&0r&*CVL?3et zUs>&fv?lm|2VZYlY9;(z>8;0WLA)t-*-X!Ga5W9VmgW~Vzo{9}J(a$ZhPQc=L$;b% zSo5Lkf%BR^WzC9ej*A_<+#py5&5?Djckg9R!@9&TIJ;|I+q5g0nQ#-YWak2wHKlHJ zq#3f$kKete2HoBqpe-XKovv`K`hZbD-bUzS4_#iI{QT#i5XIiUdGYYkA!F35%ky}5 zr`=0Lgb;T;^QsqMg*d3y-SZ=JI=#fqn%BsyE>}m9!=N|lddDx4sP7^u<=S);YQx)9 ztdw~)2P?4ZLU*TT0LG#E1C`l@;ajwT+d3R2cbBDs8O@`qj{dy2SI0 zBhcHF^%U=*y#dez4Tf$Bc9Z2p=Z5zE+mlm{gYC^NP-eh7w&#i;98Sok$d4!&Wfxs; z7&Qc|>CriYA)Km;Q3-ZF!Grq`#@E;1egE?Q!ToRkut1Z0bFhuz)z(J$>gxFL;4zd> zt`<1|)g=ys$-(|T;{Cfgt;9wy^LgozWf2JBPX?u5%d1PQr zPP#4J0;mK`lZG1z$Pd-HPgf(kP!-}DA%;Uz0?v#kV*uj&nt?rv_-dYzQ)mFob%lIV zhR_T1K~ClV4t<%viVW;ve;5Zuwu3=fqPW!@X}4@HsM^96hJANtS$-q)U7|-~y_1D? zS?tR673?J`S1JM1u9WR{Mikc63^6+d4ZKSg338cAP>l~v092vo#&RmGB*P$VZhB#v zgCM1(hD3D^oDKrZBl0}xDztob>`C}I7R1}2%C<3cb49r3EpwDG8@cDq_iRNcXmh;F;oIm02%=9o|gS^V9HB{DT_?q3}7xTSP|L4#@yeIKl%8{ z<>lMe;tDe!!Zi*M1PNrj+NwPzG;nDhQr<(Q*+B*_;ZQB%uH?pfn)!HvX~+}w-w7kK^VZz z3nU=ee`5M1*VF5*%`L({JDPXaHFShPZguF=OkgE#Yz{9u#)2G}Jpai(Q8k*286+}a>a@l?Aac5R)UogjxS#KwHiaRN1hw*I{* z54najdg7NC4<0=x_MTi^@R+uDcKIfaBR&tjCho;pzYwoJ933S01&T0fbtUIZTqcUL zvL*_?Nw2#lTMj*s)}Sk3cx2dimb-IM^<-%xF}e)oZwpHWNaE4Ecd-$PWDS!S3tQ`? z`JOL$FP;ZOfS`@pHFYZv!*?gAVv`z-U4t518DUuB23R7z#97@kCpXJU5lj2yadt-fkCK0s$y?3mg ziZxcP-?7^w0XN{EH6@w5Bjq*4g=V2peY$dX%@W8PK3Rop7S-u|^+7zi+x^cx=r8OK zo6&gYUFVK86f5&AuRea}Ye6Nl7KT|h(70u7EEf|N3OEv(vkKa~LbD3soMC=)lMXIr z9&ShjMC&xY;U0(TO*`(+Fi){B9u7{LF1#WAPe*O?e#Cd;Mp|@nwQz!ZU|vNs!tHfU ztSNL$OD9&eC0QU!AbtOd8HLiFWmwwf6dQD{>JCHpz0w>jLyhmW^CyO>h0jYjf)HSRg2IYw)3g#XY0rxIS70-(&B(c?^k zz#|LeEKPx9xvX!oxf9W zTyC0h+6mFBIbslVUw!uiRL@}h02~N_qzni20evS%+6)r|$;nz1FA2;B)0MbM)m2sy z{_xOg<<3NxPo5ccxFDHu*oG7L@AJSxI1&B`V;necn#yKnFiaGt+tWuiZaAEd8CX)> zsdSoMb8`c+2?BATmFb|ixiW24wLwaeVfQlTnVM}#$%xVTWw|2gbJ$#5TuBZkZu<{% zTG_-^0o@t@Ix`IF;|b={Ece9bvRKU3l4)^Bw9S8o0&Q+mnuW;>(3X@861}GRl6#tx zkTPmUlD;U+X0Nc+*Nh~Y`mU@SZp%?$YoUnMw-k41X#-wm6u_?!<JNGS5|uJh~MSqwuc9-Fu-a|8nh@wR56L`d@2tDCe*P z(P6}Qf22mQyAZs7Jj$ErfuCnLzcg^zPs0l^h;K=cnT)0_nz%Wtb*_@yUAGUF#$Yz~ z=crg|**JkoTXG?~KRtA-dQ;buy6N3JHH0^eOSYPQ*g*WF#m%hP+`jPYg3v!^*ux)^ zBv!oCK{WAIQgDsIh4;sGc78>PtX;5wunUK`n~R04jZ7y! z#E2tBco=OoJO%0DaE5Z9;YOn{7=vZp-2yeA6|*TxQj)a?v1<5nR~4aYXQ^sz0UTli z(T{rVC!c&o8GfCWMq}sar(>G#)453j2JBPlw^Y{jt1c%B?BfLuB^+xbpCl9aRG8YB zTMj02+frR0pkCq_UQ~Oprx9{CD%I(Q(NGf;Ibor+)V*yx9|h<*j~!rtV$96rcapjX zM0J^t=(V*6w51NOE=H&(!1{l9|KZD*uVGNLCTK`e$?~{K-8m!@CJ@SU>$6?$a{4e_ zi?=nE?Y6*OjmPsj5D`O>OCA}FhU0L2HPe6R0Pv2ySvv{jfc~w-yR5Te$w=y3l+#G{ zftx5PD={WUx5rV*bfJ4SDpCgPK}%=AAU3r~hTdS5GwsC0*NyUXIi@ZZ-&672aG2t9 z96gCn5T!s%i$2LcO(3|(0tuPhQPCv1L}lQ(nWvRN8Fzw~mAYcSfPVg7#%#A)vFpKE zGdBx;-|EeSj+uT7t{y8oW8aa%D$68Aa8M>cYqp8I)KwC<{G*2SGk(@BBDSqT? zRK69BZ<8ojazlefM*tjAc!do5Bignz4z!k}ZVR+ngTABupab=Jxrri`nM%^0-q7gaZ9MgsRDYOA*VxkJCRWu5%A1T)WcBy z22#o1#&9dp08zQT$1Cyb4K3o8jr3DBJ|Szovd|xkh)3bRgkj#2ML`h1dUZ?>|C5hD z8(n|(;`IsPMJ^~sk_9ciwb_m`LyAoBHAY8x0EY+QCrxIcJ%M^Ae3(?yQeX;NvM1n^ zQep5Tm<7WNW&d=e&VXjo)gDvW0;oC!VQ1Z#7Gw~E*O$U%sJG;){k^&i&F-y3dnyyynUt6^t= z4q3m|(^6dFk}C;(@@?#_>~=3rBcU9TIo#N@46iYLX|mXAGNFkQ;|ts}q5ad`SbUYw zS>Y6XeQiu@)^TA1ECf9oDay7q@0Z6CZ?!a@1v;FC`rR#&@mRqu%EfY`k#w#lZertR zg>5d?Ey<)AI4d@UB_|>(2usU=90;IvJ$KdF%r-~n%?R(V*5frxzJkQFJ43NlyFG9% z$3*&KHb%?Te6d7cz96~P0eWiIj*lH;VWKGHl60~m*L6{+vmR*M=HaQkf!hL#oDhWd zpayFS0sM$C^>j7+nTI5z45dA4)HFvW=UU4)2wMU=C@q?F&A=zNzL#YEk$XT7s^)kN zv+)Uvs0>an)i#X&g}Hd$h0nuVuy=<$-ihPIzr;tWNh!J;!QZPeT=SKh!o_aa_g>kx zf0=h+Sb4@K6;Sd$XI`_9R3qGdFzdh`e*_YbW6ZX@D|&?F5|Q5P`pL>}m4W9{R$SyA zVbQQZ3`JN1fh98_G(Z_Vr1Z@fta|~l$gk)~h$2p4k+Vb^SZgt9$+QI}cV5Pp2e-|B zG=?^?UrJnFnfTEa7?h3V-^xdtEwLIAOY@TDIAJt`^z}-8gUDPC(8UE3QpnIx5@WT->y|433h+M^8FP=K@4l)}xb&Tneq6{d@Q0 zs}U*%c~I91IN3q49Q zqo{1DM@3jMc#0b>6^9X8${X3_ATKd=HeC~5L9J@B!ED$TS$uCfrJk`ck4CPHZTf5+ zUhxu@r`TpmvAwt)JeH6Qv+E0dlwHPLNP_c}e5sYdYcm5TIu3RNJv6jTZiRi)GzqF% zIq3IzEx53brz9)#@UGe-=TWNgA}?INmI6+cNp!wafxp|IS^N8^doS<%esR}2wH9b> z`gb>bFHOizZ432dSK_}Vy8TaUrm1&-uvs5e0QSHokACdDxvLpj18-`{#)Jf00E(8=(n8fQ5yLS|uYGSkkfx%+4jPrw7o^nY`ybxB2z{)XS1ILzcr4AZu zV5URN@69F&VaOnGjaAYsd5ocyAWioiN-fsjE6He~?~#EgVFt%r!gXh%T3qdzNV>>HyrIxwWxXzh`ib^9AY%-`_akYmJmEd<$= zx+0+J)o3?qG0l^P>uhm3oe>@4$dKQGX1jDVpb~ZyRWk%+DiLOy2lslb%ox8g5C$7) zu}nv^$?PrNm5XbQBsZnvyh&*VotAgt#fTL?e7Xx|;MLn>)DKb9>1}M&q2cIJaW?Gh z?wKYZpz*}Fq6D_^lT$}FGkmlfajTUZL4;CyH}d&9B9qqQ>9*w2{RPU32wwjUiwk4#;tmEuWBe=6rpLowmE)e_WcPruIx8m7PD+v5^#-SzD2e z%CAF?xXJ`Ij~Q;N^AO9@w2EF zt8(}s(OAFTg|030^XTo#Qpu}qpzCU`iuY{{K@bJykkyPc^3p@7Fd;*3EPFN*S~nAI zHkF{f#saAnPD3RniTQPSIP-33sro=ZuECPE0=PK_OyztP|GVE~TNQ5Ym{wqL&lBB| z&IgR860$MrDfwFlfiFvAk2tra*iCLRD*0m8EaF7(1zC+c&kUj8=(&gQx2VqD)-TT+ zY}MesmVRr&@otV^({3B?Ncq~ID$3rXEUg^_;rpWh8aBTf&DYqrchwqhe+p+d-N*vl z*iZx1Sse6%%(~y*b+0dimtZll^<= zY<%D`>;htH+9GajlJygQdmCE>D}73`9`yb!)uA;`fZ{y6CV}T)lirx2BA+vEzkYkd zeVfhm*>Xm2-Q4wPL3c*i^Wj!6>L9I|Am6+vk@FsB6`6Zm+!2&iknEkjJbH0{G3pMt zu<;}CQ+JleuwE|JX zdmyZdS8w0#ZSU}gm`l*faT*m>Mq8*jf@XoR7>%8{pSa@9_QvMu;v866Z22nx)KPo= zMy%Pi?gF2i*ZI5eK-Y;hPYUXQO^^6)S!pJpn#ATJ%Za(*J!RiER16YF>#CE3?vJud zfV**f7U`y#`NmR+nwAI@bdtzwM2R9+B0t1TSir=<)B@D{pq>(WO3G+F&|Yb{I=3w( zH|oqJ>t^DE(jSX&G|0@tFtFa3OF@;&AvW=^9f!i~#zeH-y+%5v94_qsNF>|Vd|?&> zn5MytPOWfJgGF$9REWda_#8NdEYZdGjb<`uL6fiFB$x6vl^N-Le`AxRMm!M(Uq?JJ z@K}1_(_kjcO-3kmBUb+`4x1_crsGz{RxQG?>79LpMz3+}jSRQan~bAdU6&~QF=6+7 z&2&2te=OnsvEgdi$lseV_O3S4VAD&I*^#}vQTwg?Q9Z27$v&gY|9cX9?He}rOd>8 z1GcKLH(4ht%GGGHslLEs8~nhE0{9@dHt)%%p@;w5-~JAv;%qwq`@jDU4ww4}hu?np zwWzZ&I!9N6X$%KsUE^18@#bK7>XU6UMvfljZ}2Erg0)i5LkV0FjVDv;5i<67NALFc z_M{^P(qu6|J3kZ1C(v=rsR!nAI_0;tLGhCko1lCu`{=p4CYzhMA5M{92atU=nm91{ z4YSYPzDGZ@Ro&A6@IQUr(d;od=!G!AW9m2y;yr^>gZ^Mjj(E_|KK=9r<$H(;pdAF4 zBiGBO;}OQ7foi=r*mFsULgpNe4)+e;zJ3G6hPsjadXad}cDUXDri|G3D zTEezCG+vI{3ecRuIY&KC9lHnn7vmBCCN~*Lhr@*eX#^x@9vkm;G#L@l+XF~Y6n9-t zfQ!kLgOoEo4O?Tva@+}-wFc2N&8B(rJ?i?GSD5U*I=Sd=?`4!GG;jj^3bNtG4vUqc z_UL*kk5=in2P^Yqa;H$vhJM!+zgjZzD-2tyiM_Q7RyOiBESj1a#=K>w3ymB zEJvvD@^U@yiOnmXo8;|;)x}qBW78a)pdiTMePiqJjMFHGi;n-P;-Q>zQrANz!8s39liY_2A(GIf|s5mI(foL9^BubFNg%&j^Zy^77 z*7b;M*xTRj_pp?S1YRJIi<45Xw4qGkIZ9n0)D6RC2hxWku@qI2K_6Da1d)}|hVU@q zXv8mEUf%qBO<>1<3$F&eA>eZ#pjz?#`|o6ZSLCz>q`YNwdwO>(IfNAP8Q4_S?pIVWey0wn9OK4V-nv6ZkWYqms2Pf(^ZH${S*o9B3b0| zXqk_Zyy0j7Xwn&=uUkaq;2oS0kZ(^zew=9!xbJjlkKaBO`_IY_5YIdNyF9{;?Trbu zRUQPq`m{J1O@OBmG@)DqH-GW`MX%jIKfT!BI|TRAA8sv+=euwsPk;W8|MWYC(8s5jV9a;7F(cWyx|o_5-tg!I3TnvAlLmUw8N5Ba zxK8u__CB*sMWQ1Vte3&$#EPfGbvuuIoR=Lud*TVZ%lEJ{#p&AK)@)=7{7779x-`6) za3!kbm8LqpMqtWJB7E+%>~b!SZ($9pTQt=ymuTS*GH!J(U4&fTPoA1N^hX0)WZ{g4 z0}PhShB1_fXB-s-F$A?T#m;~=NeY9R9AAhXr!k9C`=$DYk-k={Sqfcok6ixHvagba z!kf$_>+B*qN?&2Dp@JYPoLmQsay-RxJzHAdp$e}O1q@A+43~z?%D|{ufcqHIgc&5x z6PR{~O+*8mJxWqdO-NwIZDC0fdIT3sfkydpf38V*rUFxCCW~9um0IelN2R(?;_;RX zBYmUN;#bhi^J#f4gXIVcXXl#dtptia8TW~_wRBXvR*>rUt?^?}{KSN?79I1ZM?KN0 z<-O{zcf(?|XsGFyt*ZCS#oTUsG*Lixlx(Qzyk~sc?2x#wKbfgdBUza~$T1#!+60)t zwgMxSnlnnwEdf_U)&97qLUZI$ zH=LSnBL65Qr^KGVS2OCHL@T)2bY@6Zy;EP<&ZUdZ5)B2B?79ktdi{N|XQ1u#nXXLG zn>TZ%Ha><5M63IKDVkx^vetI@6H%QLlkN0CA*(n$y39S9=DZ>U3)^qY>({Rjc6Zbh z9t>W*_@Qmuh*q7bm)I3Toa5(YwY40GvfDG$G`a%Clo?fCm^e9`ajwS0bcPz=XmJTL z;+}|~i#M-dF-UvM2f6(CPk#0JKm5br^*bGG<}S`&@TpHv&Yr(KzW)Hq81)TxGbh2q z1Q@!I{EkoF4QZonZla&X{o?&?e+^pOijZC$^UV^y+Ee{4YeQ>+Jb(V&7Xw30@@5|8 z2OoU+%{Sk`;-qiT3tYP0Ayt{S3-AdJW?E7MfJBsY2$bv~fvoH@0!wjT*aXUNoIlfvh`pSk`g%c3Xg zMqZi3P6YK&N17v5Qt%)8TaYZKqcjs~s6nU{>MNHd8M9UESX0m~OediHL(h^kA&8{| zTp^S--ZY|}oj^AZnSnX&b!;=I_K*@AxO?2p-C-bTQ=A!|+KO&&sahp+^@>xKr|dC? zKm8?!VVLM$jNw_3VD0W^rKGiqYH_^TAkTozp~QA3>2)mS35F_ak)NrZZEw;G3tHulBwLMuH99{z zBMmx)KYwxc^84?eKK})w3?eE>cyf}XG-5>t-zy8yI_}i597^_k8!+-rJpFcXf zn9cqMc0b@_3Rl8Tt1}eW$vBA8cq-rwDTnSTAuNp9!$&wa$#M0^d=O}nO$HmpdW0mo z!j7y7+x%x_UfE7Nb!7sclKHXp(2Drti!Zdrcw)oeZnS%t91>TBl5k|CbRs+LdMP*p z#Cz7ppb5RN&C5(VYdn+=cuZr98dU6t*`fzs(+1?af|mI4gRQNgO3aJ>DEgb_4KeAZ(Te-<(!qN(5BVdf+lsD`|^B@(a7Oa?^ zg6+y3+rTHOK2C0GPC~mBc_UQ}oRe$TI)!OuW}cT3)jeVcfroxg(+!@bA+8i@;6i`` zptfwGn}ntvt+E{*X0voA<@dtY1RtbR9wD{77wjx=*2^ENgR7h*f^p}NMPy*wouOTM zv09Zg0BNz!ZBq%LS=w1R9p5$Joa(X^3eEz7sUI{l*s!Vk>*0x(PTP7C z;APRoH4#(CwB1Z8G>Eumi{V4lyD0L!k|R(T+EGVl6=K*ob;v6H6Yq>?4cuvoVqB{d zn%31$5%8N(n=W}^s_bXiaX5FqUYn73t-0S6!fev1nx{fZhPX|tTD#gcgnsQgMMSGF z-p|h5#T**(-Gh5sA6R^+cT9c;>`-j8D4~BX6+Ck|h{OUFZap`6G>euvFfFcGj{Opo zBLEu#dQ7v6E-oxc#DNO~2#5x_?8vtoccj)TD5aZ$k6Y>9a!#fD^VGu54g})F2n{1& zrSlOR1A>O(o>SyRY)=U{@yUlDVG!hbjEQV3$D;AifD|iwb2u3=cbpn11EF0sWawgF zK%8u6xb1CVdfe+iyuS~Y<>|x2(dqHy!@bXc^~mj$It%De|bgGvDxno z=;x;lCiA0H*k)-U^7vw5686Wf| zG=c6N2OSbl7Emutx1gtK4HI|_9+7{OsvPz#Tf5t!reMFV)Bp}o&(EbBJQtplwI%GQ zrnu&5t~pXC)d5hLSPe_CD7iugD$i^TSr{}XG@(acPjDAcjBamN;(e~A?i#4-J3FpOFOQ)!d@uKjvC#`LUtl_Zo8imU~f;az#irY}-81iqzWQ1kue6jU)+8?{1Qx63Qf@e;~q(ce$XpZaq{ ze{KA!HX)h3FT#i9Z5YJ*WdvWMtSzg%WbHO%gCBhCaRGL#FtC2dC zR%ImWMl9r2j1Li4B3hzh&|-H-DUW$6WNQgdg?^5bGou>Qlwn((DV0HLsS9FtyU@E)}l~OXIN#4WHBwIip#|>%;D-u}RPj9t zyqKDMwiM;tu^u0O=~$GCe`_@X%sp)6qNi{}Dzt-b1Zqa$Q8_d>rvF8-SYx z0#X)*980V_xAM>EjRfX#s1uBALNH0e!%{ePj>Y7O>uC*9$>HzwVq^`*C3j<#qqP)LWF%azee*MW_n?tA-(msfIu>UR2jJLpDi@lT}f zPG_U-@#5teyQhyn{@9}S0x<^MSHQ^-%4mfY!Th(s{r%^kf6j|vym$p>=EILZ`OR;B z!w3KP;}5_5>JQS|`K^;SgbJFY7za3r^*JD zYcH&wLg_ZQ<~WH7@k1iaUu5K`M+o+bC zd+OmOkq38ofc6$a80HO+p3tD;>hp^KnMe*Uknt2dgi{cMN)rO3>6EG~Mbu`?`Dwuu zGkYczwyuImd3dzU)O&`^zmLJ|W=J{C@`vkcZq2lDsX#0}dVyjWdB3;Gr!$F)MIjvh z(qof~gCe|9xvJRkVHI>7f9V)@ZMh_@4T&mS4~gw4W6q+Wlo}Qe$18ERxnHWoMeA5u zh9QITl?6~-86H`1a(BjNoUL=-TFbZo5f`_&hh;%S_>;KiH#H^NYwmQzQ#-HQENlJu z=B%=o7O3;|H6zxhMPGeY^%u1^YLm{|v<olbE9;h6)O3FoHXIk8*bD$_rTt^QI?QLBY{-escQg@X&?_()Z>I zJ_sfjd%Iht!=(Rwv6$`*urS&jo*f-g7Cd_NK!wEOa&y4dZhrOEH(&hIZ+`LFF9@J; zG5M$;KKlSp6K);*+nW~`XN*Q4JbpshK|~fB|H;v@ff^2Z7Npob7juPOdR8sXQJ{ec zFKlf1sFIAzJWa2){?kJ5_TbU?FMgm2vE3aIAqWCQ?R$q0IF`Qo_Ah_)kH00(sM~Hz z#r%(VU;scgOkCBSPgn?H*Gg=9=?jA2r~LPNYFxjWn;UFNTPViHIxC60T`KN#$xN zDjH#)H3<9@sQK>ho@BF-hzp~u$+a~7w>k?hH7zbKM?`Ie`Ijdr@R#w1HJ4Lqi)8|q zYFjSNP>4k%W8YMj0kBAupB9}}9vrF+#nyJ=JIiOyZYh@8&Cd4T>iC$$Mm?f_#Es$x za#Y17@7b%=sKQ-@CLRP;#|UDpw3*Yn39W2r>T|m`=fmo+sw{kcge@heC8m>|4L79}6RYq~plkKx9Ko;XE z!|l&H-A#!A7c0|EE6j{AFkJ_s4|BH{tU{8D1>Wcr+_;{q3^I7R42cZWoz+zPhGa@s zduJCx?LBmRG8u(cfQ#zr>3MPBI+T@Kecdz3b*zRyGpu8GZM_s!#&voh^(qp_&y>-y zIv7fFpN)U(d1e#We|Ma_mdN{y>ww;*$iCM!D!9#YD+#lW5WmJ|YD&=fSV)$QCI#rJ zx4)*8%Pu=S!bC?-koB>4`5ZM#v&fEeUto_w4typu*hwvoaa~C_CFaG`2|Jo&A>a!N zX!tR}={Z19|K2&+H?xL>A*Zn;VR%mC?JeI8(*7{RJdKY{w9ZH%#B^nou(GAS3ItyP zx=Rm$XSgvK8oFP;)f`P<{_YDl(c!@!^~!8~NfrWY<-y^D)#gws3h+JTW;<%`uqo~x z9(?u1?@3ty=og>uZi2*JNX7Q;>z%E^gU63fk591CxPNd+{jj~Y@%Z7rM+aN@-Ss-r z(a~F}z;Er{-`YMo9=>|{&HwuE|NYaFT=v1v=GR}ZHV6Ix_P_bJ zv*qe<{`T+C^`*=8$tRx>qo*QNro=S18&p;9JcdpFfM|G_AM$i_F#Pbt4{3gQE-yW< zp4!W=U%flL_wd)h{`G(Ui~kEF2fTVfFcW4UJbHR{e(~97pRqW9|NGzXZEqp~j19@r zyR)6`!}x#v^F0pQ%Zqa!582bs_SW~$zo&skpA9+qPd@qhyKlciu@eo0mb#6rXCHiI znqTdsx9=z)Mx(1o4<8Z1y_3ayqR0Q|zy5RJJDCX;Jbw0!mVZ~;*>4`)yYK4N$0tYp ziWje5^0sQOX*e%$FwSUNHwbS&e*ENzA6`)Yc#1__qrryH;OW` z$%1)tkb0;q!ZKM=QR3AVcwgB0D-5X#0eIhNJTRAp8H<1Bx^C9y_HMFoQH!)HS)7OI zyVQo@9ecg_zz&s5OwST1B;^cX97h$3>98uslk1Zc(4QDo9VDFrmu)bf=&^GtzrxBUu?5t^S9^>S@;-cFt^`{? zqib<=;vdhfg0`kK7}9iAPZ~=!p?#vlJQ3Nfo-gNSeI+5oR%reb*8~Ndd1m#{veWKP zr1>20?;lzvW^?H%zBTr|>7)ns{L_zwT+DeTdUeWN*A`8GI}g@AgwUzrh;kjpE2-t1 zO#r{mCwSbSZS@#?WH89n(;Iy7;9-4!JBpX%fH=ZOH-U1cKEomEjGUUFV>>|@HAksU z{!~pwYSsZw%&4E!uKwtJ<=Rz>Jy>F4P4>P1u;zd!j52=+stm?_>H3?P>L+fIGH>I_ zdwLjHl3^vd&JAXkP!FKd;~ccVySvp-F*#ze%CY|L_zl2t<}wQzEcYq_N6HZRr|J>=~zJfW_6 z-z^B_%25KObm?zAdH_J6%Xc8e0E#|8Jq>K!!Zi;ebC}j0Z$u%yrNSk6_Q8`^FJGaz zgVGLA725RNtka`+{1h6Kd)wRJe)Bc|0{@7=S!;Ar_&7UT-QDf2$B!Ox6HZUwa*93w z{tx)0U0t4SZ4T(o(;ay5@FBC!!^3+I9^5~A_X@ytTek7>Cm(&xvY|u$t3UbET*D;7 zA(Q9UySHzl!yg|V^VtdR2m55b1e)rvX-1m<@`e>znv!t0u+yZ}0ulFFxlu_|0#AOE2NklP642i3z)V`}iw*oy>LY?Hwld zpWKMT94z;-Au*#n304?|&QLt2~E8MfMukrSxVFH-h-$_5!iE zVFYC*>1DQME7;q1);lQ^6D7{3@g^d2Ce0M)GpKrLqD$BnHU_R2##$SI+b=m$P$pO` z2dEPp#*>JwAJ^~*S{-v&(tWF`$p>vD8HwK_W~#wd2;ZW@loMC6LYF2-rfzm_n3v3f zEW{3TQ0;0!G{nLYYyh)$0nZCTcc~|A%z!@4%9CPafo3M}r5*#Pnnk^m>S;LCuucF~ z`wJO4qwT3Idxdol6)3vCvy;*om1EPv3>zH9z)l`L`>cZ8kz|fX(a)Zb<@@tvrtCd0ZrIY&CUwuQvSwBu7Y)| zA}Zy@*Sp4R5b`Dtq!Q*0oBCW8LMOP3gDgFdEb)uPT6Fgx10ywjv>mkSI*fJCqa0M; zrlU5+-)qFn8U{3IOnU26m(+8MqQTL9uaRsW>wUW8$5?F@ zdsktt{D6h&WvEwGPBCOS9J}>dCdhE)MGPs=+}IIwWf3-KZVP|RglvTkDc>0zxEmNA zKfF@FZ4t_OH^a#D^C^QVl4;%t-)iTxwvw_GqihDXBJO0mk{+J0^*Vpjr934}U>tE^ zsn8=@{ovq`TQN4D3H6QfHwd)r27M(F@Uw{f#Bth-`7Tb`S3uDLt9CZm?h|(e58T{ePFFLIVW0Q+EGAB4+wy%#azWL_6 zy}hl!{(t}PU;o*^!I+TD_1VYUY=O7$-n@MAT(B72^v*7>rc-*W45-PvjMgKV8(8&dxpUFlV{ECOrtR2z;){A3l0QINI9W`S$q_WOY{~rCZ$XgTwp0 z=ZlxG39x(&qVdk|p*C!QxM7M$4bwDQT{6n?go1or=eV`r0{Jj-S@HmxU0=H!uQd3f ztre;D`^Ejy7&BXS%`!1|7@VQ$T`<-s9+J}KJE`or)E2ao(2YAl#a_$wR!x$`L~B`Q zGwb$(!$S>C&Q($o5+BKo?g-o|r@~mVd&Lo>PNt(O6oOF1tat(ZF*_8h#d3WX)3&Mu-T|fD)f}-Ly1Nk*YNt4(`9qgLYVr3~msfj5=nUaChuCPpv zc`owHJ%}nxpwe%?9H{i#^&GD@f~ZG)b>F-uSkivdS!`@3WS5|X@P@Mzj>cTXd-ozb zxn!7iCJdC);K^oOTlB_6hpnFWmLj^bz%<|X#PT_bqDsSAR9a!BSdU@rrd3677qr^sQ)z9}9QWTPtQwuf zD8|UDWsS0q=~U1jzt1mbe2ho`1*mZDo*88V#Lf)7(ZQv`=W@tU5CQ#oUC^)y0R;o)Yn|20hhU zv$ncJR5J_Eo3r^$vjhwX$XFOCzIyq+u68=v-W(zcb9sJ>EiE^X0_D@6Jwti$-n|e0 zSwxAEp;+i!)*xp3j{JT#@^f6 zqTxyB2ZegECbyLnAI5vf$EMVzdP{P{+`1*+AXgJvY33O{3`%*v=4Uaq0_P&)zM+pr z$D{bz+ui66+~gM3-N@x($*BoXIAiH9P&C=p)K`p$3FYIqRxEwM9{}0dWn?Z$r0FYD z{@3)}%3dbKyrJAxAi5btL5g6eN9ept;*liP!h&ZpyDBHQio#*wb*Rb7;^5x3)_lZx zIXB>x1b^~urVL$2J^3a7OVpn(=*$=mUVJ@D?4>zsWO9bHK*%dujiJOLR{@r*Y8RNW zM(6@fqGO1&Zuk>{yOO+=qzLT@2z1_7YKx+SnY;#z7<)oawA3uMh@6H^?7Du7zpVpK zymce+ucgT*sVM1P-b&1fpB3c?-*RDb-9(I-UfbL|%f)iu)QWhK9wKRdL}I z6%_;ejcHcRIg=(nXKmXzS)G0{x4o0f+;$|T?o1ll%J z`{pRJiJz(CdtQR#OIwvXfA^c?>(<|=9(dLYnqgQ};MchBx7f`uDWmV@ul_W;vH8dv zn9ky^nB^Mavi{&6E?Jh&eXZ1-B9j=d${@b9`KqxP>L1S?TS4B*b}Eb(#I8t$YU`{< z%H$Fg2A3W-n(vs!BP16|04kK2Qf%ttN~zjETzaV`?WdsHy`4r9ibOpkMPb8mJ06fxN5J(GKG7xovl$}J2 zW#-3`bGDlQ?B~A-!u=m!yn6BCxhaLTBr8SWO6QaDrFmkd^j=J(rk$K`OTmqAGBTI(qSWPoIZK+k5_b9)Ut2tnu4IbKfGUq&*t92m7PL5t0iwr{$ z!O`s&IfNW@MnuBuh;v(W-uc2;wn{U~Hjcu@93yt=tQcRh9we5lUnP`CrzZQQh#VM0 z&eMU?5uzomE_pqqH*Op)7o)Ul$ZjrrtEAnzoQO=JP6C?jQ@J?OJ(XvyOa>AGW~Af> zH!PLlmtYYQRbgxqO)eamM4JkHxzB^h2TpQOlKw5L%3^yM)Fdpr!-3q!or6=D`kqs? zR$ZCnOlxe0pL1rSU9~LKyT9R}*9Lg%ybD{fk}S6RJgBlzxvos9k*_lo3zKK5LD)qN zM}$)lf=7525R_J)*X(ks|dWt4(;}a~Z(ytUumb;5t805EbpH+cXy1`U`s21Cbm40ln{8qRg^jf{u zoZXiwAe#qW$vR%n=?@SS$TT1Z2_<0y1F<=W76{(8NbPaFGZv$Tg?+GYtgLa7gl9($D&{<7626*TFyi;8TWUdPI~ z)V-MFcj2@Y>(U1G_zFZEk0G$eg7}VR@RU_Z5ETR!wmPho?R-e+gGp|b=)OTDMVczb z^R9@dhQ$q?#TbB*L!K>C6mD>6eC~l189BCj{^)w}te2YbfkX?sR2*DY0s+$LS*Nq52tTpmRA*PK)R-Uqpt)JaU;}L?=uSGDNL`Xk`~cq z%sShKB`Ke0W?p7B1G8#L>l*xMbR=ja!EE$rYRMEo_VS9s%XKac6poLE_&PU|(>&VokO&Xqd0EMN`9B8$mfW{7iYH>bARGXXe^Fb@pAWMVd%P&_uO+ zRQ32y;)cCkT{Nth4tK>2stlmnmhpnXR&Ufa5@~`X>qp?PcTAK^=osrbci@xHGj4vh zMQAsI)U_2Q{;JXoitO}KuVX1PL~c%MDbkVBBwI-tlqAkcj{G!bsM*#yTugCUvV$xe zOafFM6bi)LWNFTj%M+_J6T0SW0o#(?a(Y3s)MB^fP3Rq70vjn3GlNFF6zajxm>tD5 zEOw&69LA9}GeFObo(L*$QP35wG6r%pTFn8Ea7j!ouct>mI`zXNG~(M#5DAMcG>sG5 z-Hl=Q-r?>>XN&&K`1Fh;1Q^+l6!-G&4Kx$aP+;d$KX~$Vx(I&vyKg5@EZhAjPws&e zp~rCl5l6_FIWzev=MD#0f3Q22N>5Bvh}+DCF_h*V=poP(2Wy9kHbF+nLpTA`iK_oN z>GeC53w39kESY8j&fqI8qykbd9aN;^nWIwtb6o8o?9eX}>omZaJ{}G>tn*Aq1k(yh zmMf)};{)0bh59W#SNdC;#zZ)c&{{zoLBWX0uh17kHtcr|$t_1EnkNEo{fgubU$WHxei=%kHdK>tJe7YQpYp zLOM$V%w)o#MW&9^DLRP`0F9e-mD0*^$=PLy1}wm*snQIvL|*hQ1(DbXepZ5KO|g+% zt{QP^P41l>4_Ly*=Y>13BD}mZfE_g%=TH`SYeiOrHtQ33J-p4f7mU1wQ3p~2GTWwd z!hD;|Stq{^F0^Zll&hKD1Q^iw=e)PO?M<_!HL01q$^P94YYA-R*CbK%Fe-xlmi=i( z(Q?wpO?6VuIgPemTP&4I8&#t$e6PIwS{nY|KlLR1Hk~#62`7;HVDQ$tZ#^eEc%|t6 z$!^sh1##n^B$e-LR(-Qv^IA~~-U-}~I3pb%+7HT6(fT(aU+6A&5V1u&({5r^x`?zj z2ql{?dKn=e?e?(6eiROX_XR!)96;_2Bqb|pLeWlS4Y8D2nMU+i^GJ#IbW9C# zF}Vh#4q$^DczJd4=H&VA_MU)e1im<#0A<~iLGOFqDsv}@vy zrd$CUYOEhVSKv&v2xj68Tsxd8%Q}b^NU+3tr)5}<1)ZGnctY(0T!q;$*Sxermy5KM zY0>u$a}w_Ji(^V8n66t}xI=Y4L$Ye!dg62Yv(+>G z_r-!=#urfhZ<=>m?if1`3M9~o&R+cyxFKb^L93_XT$95{Bt-!BNNAbZ#U^=X*11-> z%1sAqrVSnN%@M73>%gx{hI+X}LK-O^g;fENMkFFz!v$a^F{aRTWjdeQk7&LVg)UJ^ zm9#WsWFU=JWB0^m&2IQPYp`Y^Y-uVQPonDxWqJWx!ID&0WYT8vf7LyjF@I@!A}_~` zEJN~wZDosT$GJjD+-@2^)VLr|@O?*dJaCgs$HAqE*nnFL#V3@OCqrR4w>T~Vsgx;= zgcFe9M8#K-l2(bKZbG45%vr;dr8i+#u2aS`gIu`gMqTO1#}$Gzsqr?2xy~}g>2`;J zkGq{s%3l}wMBkofPu5VQ!Cp$kvBj2+{_EHXz%^Q;V&!Yg4Xo=Q%4W8>}H z*GPD2AAzB;C=?nW+v{VX6;^^+`-Nm{C6Fb7jAcF1uyEixjS}tgm{VjGTb-SVHtQG= z-luOfzunZ%X*}lo_+et&(c9yl zt<5jL_!4d8JhkR(o>x-e`W1Wwr7Jca&~4u8;p2PPvoS5(0zE^_JM&PiMD51qaAP3o zt@3x6Lvl>gTvN!R4t0MXo`y4RUI32X(&!6r6iJ@jH))>pflTI))2<^vu;E1d8~W@O zK{8Op&llwWS|o+CaM^a_>;1p|_a6`iU?dSMffZd}U8{wG3i4#WyRpN8#k>!=;ue|& z^ZCwTV|QhGc}k4O&Xz+4#W?Qu?%n~yFYvL*$VTITERmqhJ2<7hit^8Wj0+ zfJa>8#dzF?Ox)`7ny}R=;`aGy!ju;GldCbB0mF88K$PRhK_nyKprb{;V`eo#S%k3% zejR3K#A-Fo6=|az@GUoVgm`^6v~8O-Bm0$Vw8O{;r>#hG1TMd-_$aFnCEo0jmDwb@ zcZbq>Y3jqaUlPg@&y$8KQzE`U>~D-zSfQTUzPPx)xMUn1POpVK><@NOY{zMr3DXs% z)!8+baJP?gCl)OepF*2V7?>@zXjX6EzT>I86`rv0SW0zU@CHFHTN7A(aYV^o8Mrp$ zut~3utIMl%&N#SrqysdF4)-6RR7%$H>CZmrOo1y#m|9@mV>J^t*pR=SB0jFVFV3g;q;N3qG|*-HHFB> zKkw}B%I>hkR`0s;2B1^^PhA`{my9%%kVTY6=sE?2!YGWjz)ItokL=;7cV}|-rWtp` z1l2Q%tee1bxS-#V#i6Uz;(tR%h35g5gq>~N*|xUPJ||~{3HaN8`lnAm{g8|TH#G7^ zm9qsEsPFp`je;oL|UQ{Ba!zU64pi?_FXXuh9ap0T$M4i5{Vdt{VJUca-u%`fHT zVPwP*@ZR1&y&4$xv_k~IpG_~$PVjcVJU`PZo@GOVLVrNY1~H08`Ni4s{lh)3hZYAh zjiZKDem)t^i~K5GefQ>F%G%!8Z}s<+&er)k14}@dT{+fv(u2dz)AJ){o|~I{OiR&H zfvUoW8g6#a&Rz`%+;{TOt9*&f2&kdq?0WR{(S1JNIk#eSu$qpfez}}J*x#K`t{Cw# z)Mh(ypJ^P08XB(N9=(QbAnxqe#;eya_YZbg(jZhp02zhFIU~`vzT(0C!&LLw*#K!k zmcPNh!*lfCJ{7$kXyNuPk1F^@7c67ZdIvJR1?H&VW~(CWudop zrRo`agYpK>@5R3TNa7Q_sFF@I&VA^h_0-H?C`3qhyV8FT46dNMgkVU71xAW?y$>+F zT5@WFckpXbAQxriYi_LPJ~cI_ZgBfgnYyxsj%z94stAZ&^O?J+X=)#Em7KY*RX_|a z^yIEAO}brA_iy&2CIycv~Z_TiDIEgD0m+61^Yb7zRH*QT#Ck z$nYeVOm<0JFBa|K7qVsuiceEViU*6v8^qtGUQtbN2@vGW0yd&>MPouThVqo>di|4$aox;Tf zGI4=P9Bg!*+U6!k-|p2yPkz(1HJ9r^pY_ayg+y(j}8J`RGI z(z6l#k6?xtfOn_T!BRtGn~75zR}(G6nRYuCFeoOQ;ABe{064;shrJagr&uOQv04 z$;rCjjSWj$wfR8R+>AUb$q9xLYZ4o4&g42fc;H1vS?`xl7mDBvvU91Bi>9;^21XfC zku%E$?m}9(bQVz|RHckTFi^21i>@;Lk6e;r%ua<0A1PV6e(-3AzZtZ$`uJIuFczUi z>rXmX5|(k+*Dmo+tTd%Incsb19KK6yx$MZ?Z)@jbQ_5Xfu#TE6@S1jL2Hd$-v!O}4 z7fm3YNp?il9w-6Yv9)C-8!S;Z0a}FJETI=1)i8-9y?J(aPUBi!S=(wfxE=Z6qsh8q zEh{FAFSTrz_t5;ayP$lns_Of2rFIwjvx|eO(zNrY?YAYA@zBDBm!-i_wa9!f=aXU2 zaebT_m1f|zzg|&u0|L7$+oTI=`diPRCn`C4lSR&*Lgg8F1-UjUIu?rJd-+M@CXG{> zrG;JdpL3@r%Y;od#uVtSpYd{?koX#2{;meV4Sw8ix1};|VhW@XjrXg);QFbi z-4@vm>^Kv}vW0(gYj|s=B~S+a+8(z05kD7$ z8W!mTFxe4Xd>3_;1zgBuprs*wU_HpHvscJCQ+LwrOe>;BV9Uu`rt!@v!U;`9DKuY{ z?tRt>^3y^&Qy$u|t)q-C?t%d0*gH7fCv=>jozV5(+}v=;wUhzPBgl13seOE5`8{vm zAL0hy9lq?%%%=;Cn}9%kJUu-ZOxav(h`p4RCK+<*_RGEIo~fb6Y8I;$s-qb2dK!%guUY z9a@rPidudO2zHso6p4I?LR*mfQ0RVuS?}JV^bhGyw%&#`4{SuH39};~DlxyrbE{h5 z+joKo>lzvDFRngRt*#yzY(Fi<0IWE$V{cX(QPLI!6O56bF@EXw=sYm*6n(}xvB>3( z1_|HDS~qx2YRbn<)H~`TJTg-iKO( zaz~D57el594DDlih{oul(OWBOm7fr~eHzc-4F^Tq)Hg-LQa!>3FqqS}YNM+rd%$17 zEwvh`Ur$Hui@XU^x&zr<@4{P&mU~v)1m3Kb9c%ZeERsn1Xm^QwrfVS_2E> zbW@VElVg(H!@XV47)pM1Snng(&J09`-$1~MJ>IusPN60?gqtal;!+vAgc76|X1j2J zVu^@Nc6T55dXIUx)6;h}3l`IBCZke~Xh|4qF*U=YmI+$MiCZ8b$18kxOBEQFNXQ2h z>)C(|lKE{(w?)7FoPWUEc}q%9t8B`uVVn!Vg2Jh7a#GC0$h83>2*aReJMG04SV?aF z&fYe&*3ei%C+BDP?>#gkk(|Sm#Wa;iVeZKa;huv;Q~e?wjnC<}=~CJLxx?kefakvV z;)r?z6e#I1oh#6UMEOFzQJs@~=ltkhXvrFiEF3NPa~@y4m0Fp{bY0VS>}5Mawi-i4 zo)yNLJ(YB)s8zNgR0F0K@6`n4M4GyBhqCp&c>V6J8YVz!(z!BvFsQ3YAF&9B+Z)6Y zdNPCopz5d#NSvLxCJ*k=fK^J>blNdz!8$;Uq1M&pLZqcgh9s^@0uo4DZ8meTM_JPa z4E3_C>hXBH$!saDX-m_*75LyZF73NKxVv9n;^uSia8Uc^R6Dc8hFiy8ZyOb1%>peq zm?;J~255>bzP988uRrQh;`%um&*|o4bF#UC^arDtxe(tLh*xs+NIh4gT(0vnPv#sL zQ#Wn>BygE!4S-D}td`tzqEH-rx7w~g3kas525%=0I3snPZ z*N{9luCcm@;Tp`b{;wJwStaaYDXeI1)+Si92@UdPp;hJ*l}Q8hVq2BX*tjJjDYF~)!?kAW8S(#`TJXE? zo|_$D7q{o+n#rABhAa!zMm9g&oNR)Ij6UYD%XgGK8g$eEbC5}kA#70MWE=p58E*EM zQ;9iJTy$gR-u>q!=zQ2PfB=m47?A}W9`+@PuXW?m_XcQjqryS>bn!WwW={;%57jvFx&lewA{=Bnzj_mbmdMY`s& zW?<_NSU0oNv;L-93ak#Gt8d>N@9qkoyu0&k(2sX_6lB@9QZtrH!AcJyD#42$@9O%! zmbdkOpZ_Ayt!i+Ew}!2VxdEA2QlARq4T)psF(R|#0OxK>R6(ASZfxLGwI-{RFR8@G z&DB~4=AoTr1{2J0I@dOjhP&6vb*2LG4S*|a-I(61RT6>A{aWr{Qb1FyAa&AIxoLS6 zC25J$4%Y#T_4k{peVKy3FV(%Pkls{&w^&S=PTick9JE%2ju({fZf4nEM;@C=X51h@ zcS|ou8n*l^tCX|cnL}Q;H81iGz%goy##lSiB^{%Bwy{RX^@r|9yYm3*^CJ$*S%^@A z7T+sz1$E@qSm3#oi#rg}$(%i6`^s_=&uO%0=4Q@mwWDURZk6DYWT6-+a7-eTXwSV7 z=&Be}-%AFQ`M9v}%Z{!an;~k?tX7>jU$m>P4!b(D$h)+Nc_?boqMW>WFH-AyzQd}%gAO^<>=FZ(L%mJ?6i3(?TBO5s6?ZgOQwDRGxf zA&=oEPOnCVKFFKCu;h&4GO9ULz&eVQ0up6#tGKO5FvuHkIva`2M70qki70u-b_X;y zwGW>JoGaC*U(F<)3L0y*<4!KNowL>HR=hB*Ju8aQn?`w z)|T)k*laJ9!ZNLnMAI$8n#+>(uaV?pJdCako`9pPsSv91*dVG)#I7-)ViBmeunvB3 zo4-?U_|i1P68*$O65gxulo{$tppwzGYb^L#v5J$#m%5|IM=%tDBq- z$QGb6`qOh$8YhU$+u3?&HgrP}7mzyvohf6{+U$`Hvkk0U)J^3 z0C>_iPok;&vU1j%NH}V->e3P?C{N}Rdy#V&w}~@NR*K-*h%%h7&|+ak(^ zLCzLivozckwLY)va2H~<^T!lT{Nl7#3n3siDJnHohL&O-7WNi=3uYwJ(vtz1H5pvjEUxBq#Xwb;L?g`5nSJ3^ zQJC3!(DAd-Pg$?oJ#yLOh(5J-jUG(cAI87+!M65X*xL(XobGMeM-ZcrKE8dRN=Dz> zsytktK$<)VIf%+6ny!vmTQG+AQ1>#CK(-X$b1hNmLYvqu)*XhB7?dE-%xqc0L7v>0 zOoa>6k>u#CC%`OMot8JID#C}E!6C*j73)L5rV_ip0&*UihfJkPZ#^Y02B}-cjkIeIER6ynSZKBb9Qvd=i*a$+n*O^G-z@+Y5ITs?|&zwr4%{<+LA}; zwkt-1-H+lgzx?X_0v8J!#Ega)oRIhTBgO^4`0l&!e|Yub;^N@=#QNjCl^{W2jT4k- zXtMvsZ~jtzDzw$-3(1>7MABzu-M2=V^3iNw3AMbtf50bX@W6}n-0mj;z@_Z&I^z-s zO|u_gzk&Zn*BIfnnMA|YCEVTJyS%yK<#lbzgS>|0pR7YdO}$-PX{43`U|+Fb+f^I@ z{nVvr-M50&m#Z>y>r+el-NTS!3ORRLUK=Jg+P#o3($X*|-k)ikos%psO(GxGLm$c~ z_sYE#Xm*3Ipw?RpgUTXE{`BWp&z^qXku^F%ppI$(s)v4hawa8xl8%jh8lCj(=m;Kp zVMJNEfm^=g4dTG~4{Dt*5$xikR+BC*aO(iuKiGNp?CJjgj?E5v_)@?aY9iP@JUXOR zih2>YFBG}xk#hX-Xf!`3Y)MX8MtZUXOl982#*r!3X2V=97ea;>r(zR*0XDOSz+$ZM zEnZ<}>B6Gku`73mGg51A=3Npe;F2?A$FOqHrJ&5_s57;xI2fWfWyLDRn_5q%Hk;KL zH^?vqe9ULmjV_IxOrtf#4 zZLYtTZDcGG_BjvN8rI9m@Fzaow025jj)^1{OZ~NGAP*U#saz1`m^mS~rOapBQisnE zy7A$`Av=Ix0snGyd%@B^IXz%QoL{^@J2?Tp{^axtFgNjGx}EuW!3A;MKzzOLSBNVk zKS=OMEZHeLc{&lLXt99g$c2&W8PZIKP=(zM&rA4EevFO47p&K#!@~<=&f$^Y0Sr5M z3t!}b-`Q?_K`V$Q#BLv&0=|R}+39pDtbyZp+r~D}$fZ7e@!6Z#m`v<&Nx-z1?uE8q znIN`^a+QS(eTd0eE_WSea#TdW{rBINib6a5_?V=Btr0c#I+Gd*5JxA+!UQhnM98C~ zV|ET8!21!Z2^k^u;%;^BL^l-2s?u-VE)KCh`*2G|rQ){8S#!)V? z=gG<00CN*clGWNE;afj*2$;Y><$eu~zD&re88sA0i~(TJWpqa$iYSV7t~!7mo3zV; zZAj#HC80Gq{i~e63^6$CQTFAo$=!p1NXt?(1O2rI$_uFtEl2zsc+vfXBOVMw3mU!? zrw|=mEkh%su5csoAHGW^w^%P6AD{jDFa8>LmBnht z5uyTDIHQ`QFD_Jd&B4{kJBFSrhR+p5y}g$INkdNMfZdj5*5+EZUZQ-YIwP@MFDX1C za10UOe0!_k>iQ}Y#pI<|!n`@~j?Sk9vkXCRE^ZLNs9&oFk*T(UDS(V?UO%ecqr#iT z8`Bzdm39+C+2$@7^C&C#wxfg!0*Lh!nSr1D)99xsbyM2_A%guRfyD60y}ITTxxkk9 zu)Vm@gROA=MuDThN~WTzYgef{TPUh3cVi$!Nj8%GKV7lO3H51AsqP7qA zxnQ@1<9_x`X3CL2e)HWaf#k*xwv~UDQUfg|@^vXIfK6$WEuVYYrb``7FQr?%htv7I zbTcqNz)KNIr7^`|Z*TWr5q!vp?b!Y$%}A7b(tE&TWP|UHAPktLmGW{@0?t03pFG?&Q;H840(OhSh{7=17~Sf4#P z7OYT{JyGvwWecG~n0D_!=s%)%r*u>xy`L-M6JvmI5K((mO$1Ov-HIp_x|*(%5Y!>s@Q| zcn+A_ue-oVTsd$myHCXYG{T3Eo$co%l~d)`hURmXek<&_Abv(4F75&LynBC1yZ7km z4h?=}LisoZ{!VXb5yDJ`C9b5iiv3W>EQdFs%Rg?~{RDtpi0?jz{q&C)0e0kUfpu_c zB;XRXGglBpyUt1pSUOk@`kq)DZArkovg6iWQY)b{#g4UXb?Xp0pO4pu#?yd(!7;5~ zr&?>Rr1sm(qxd0~5#JrxZ@tCG-4&(b>d>bF>-nfp{d2I$PjNE-njU(ZQpu04N-MM6 zN0`y0RvACE@)fc%E{ffKT8$3>TVG6Kz?IDTaSeq7`R4v)MMHOt;p$YY)auoBe1;b~n;NdRLLoj`D%5Sqc{ z1S=?<$1^QJS=gdX2JAf{a8n2H*(lz2s2mQD_&KSsq0WOnt{kUve%ca~`59ysc5pJn zI4U9OBW+*V1V*wj{6OMf=DKu59Zf!iq7f#aa&4<#;M;6#@c;P<0;Q)>D@5 z426h~CY&yq-twr_*RDq{zIpN=oIN2h%49B2sAeuNB^&+u zi*Igk??0U1kgu>S%_XA@AFAok={rr!Ps;})gZxydSfH5wT;MQZ~#lg4HF_ZfRHdO{kq3u<1wL$S5oX;Y6YkA zYtW$`<&_pd1vzz;c~LcsKQ1^bJ6Sa%NU2)Zja4f@O8a*I%f=5U-Z~Ek8jh;3p7O_; zazp&~=k(T7|M8D3FHAqraq-pdjZz=dcq|U;E`c2PK=!Uv@}~CkBVFHM!QpQkezI;F z#h=cHL(qRTUo9)Xw8$Ksj65F>Y@Vq-&BSr^Re{BKNn;T<5jCM=nVEZPVIuIELz|+c z^6w_3F#Dt7U`iPKXz~>d*Ou$WYI3lTMA%U-ae=v8d8jM61P`;)+ig*)jhzP|7oes2 zYE{m-P?^xXm7U(&YD89;&WKJ2tOWU-f}7@WW^trRX6zn?vF$bWG_2;X7EC18I;||; z)CBt^2$QNsb_Y6MUZ%!-au_S1Nyq2#a*lJ&)NhHcbs6pM?QMnY@1WJei+}OrOAMHp zG7_M4Uecpuwy92}Xq(DlP(C0kV`y#Ty@diIjgXEdLL#_nP$9t@_AJD!6@BUb{f-74 zdRvsnXZS1eOvu)eI7jPiwZF9lX(gE*h8TRw^-t#rGEhRVW0`Stl(MDx2;@{snv;dc z3XH{Nbc!Ml z*lcI-AlBg)$yNw=dvxLQSeuzc2I`dN!t%vd6P(sZE))f%AN2x2O|Gmx!uW-7BjJ2T z7M|hCP*lBIEf}O5S~L*1o2!mY&pQkpTzGH-bn?_c}fQ2>fp#wTHsI8IOWqt1CNs(osIxkd{pW6BjTDGKcoV za#bx`j@OO`+-O#TdJ9I#N~2l~wxS=SneRs_g&xgx>z_uF(+3e@0#SvVo74*LlsA0d zfmyydyGa&qw0rDu;$G?UQtM!setJcfmRGQHu6iIkJPp1@5nUy2Hn4h}wtwng{Rma^ zNMGzH=}`^+ve*X3u@|{^a`W7aO+5wG0!Sk-gM6~uy#IayK?WlnR81v@pVJo$^Yf3j z(uzk&${IJ7Ju>~MP!<*9Ul%FYX;kwTQ}@FPLN{tG&*$FKT<5N;rt56$(Wo>f3;`x_ zjZf7erbcbfE#^XO$QIC{hQv#+&M%5B;!flo;2?7;NKfW?grbwAQ4?`Z?G{=kEvKit zQEp-Bmn;)#$98*@(U>fd7mlkFaL2gB=|d;Fhy zg(31*yp#a&1)4S7D@?;h(i{uOFz#MX4!yM9HtWFV(XH56!cJUOUyNZkCUtx+^s;(FcJaXn=BGp*Fe|4V z@@*0O*C^_&6VwSID$dA|IX^SK%1Txkj33!yngkAaiQ2T|Z|_IWS*6%!M{}ga)>H!X zPuP+ns&Y8Vc9W}aOdp1OCGN~xRR%+6&Rbd@Cf~HN7ER&4qq(&crGtZb8P9*Uy}7=t zq#@dgu}|qhmCUj>w$bUrgZ}Yy$!BZM8VwvjXKz-FeAaROPY;s^-uo?P;o>wgnJ92twUE~r|d2s5!Y!?FW8%-vuy+P#2K(fxqZ`qIlMX{t4_l+{1 znA-k)Hqj7xIxDtmz|{btjcf74IDLR}TW=%^`TN$)xFv6gEtxrg1^i62sq!ekH$%Di zuOA@ur2{uhCkuvHS=Q=r24QQUYm$%dXN9dX0a3@lJFh#;37Tx%V0QS3cJy;~!-L}H z#~mu$P{|_`K}Q8V(pRVnQ!bkz=W-BUnp~n63X=a)KEz*H>&9je zDY-Fp4UO-klHcSC+DSFXc58TRE?46aI@dc1Xl~r;G~T?P+@hZ<#Pf1(y6dScqnScZ zgfyZCxvPa`GhGCh!WaxA@KR!~*LjK;K#n5v4iSZZ_GVIyNv{sPEYnX|S)&q?ZhXF@aCD!PZ9 zg65*Er%V@@c}C};!_guEa04}YpGqY{N7UJ3u}#eYnz85HO&?oTq>bW`3LkIOxLRU^B zBow~-{zr0rjRCeBHw!c#(8gnWkb7-Fq^*9BA2OzTj92adR@@2bw50Z&Y;s0eWG>__ zI}2S^+p&@X4;R(m%g#zr)6K+5NMQ#39lD*SR|-GKSOSQMc7a_`ElS4}X7kQ)e`^9& zA!a!i*fhB+H-`Cq=0!;uGdj!0>8Sx09eOfN7|FmO+ZAoi(D%kp6h6x2Ljg!^YY=?} zsBkZ-ro4$dszBX9p#iHXD|aoqE3f1$PHHG;60CvA0h9K|rl~F)V}TyYdX7(U%3yC6 zUiUP)qfT};{UPhIRG~^ZZYT6}U(9XXEwvJNlZ&IezHzyfsMeXOgLr8!-bwm^C2w{) zeo}tDF|Dc4lWHO9%BlgcO0`NzSKa-{eM`{^ou%C1zr0DEQn`la^Q5To0kv z*S~9$(+nXOKpIUihhw88JIm$2+j~-kbo=df>4Pw?9*i( z$V4=SL^!LkmBB3oErUcutHVh^d}j=~7$fa9H&je@5DrzP)K2b+du6cWX^X<3a()Q@} z+b{$8f^e-Ne-e>k;T>+#rff@{2vCc}Q&%0p>Mdz1{?bG9(#agCg|!);O}LH5={JGJE7BD43FCL}}>5Ckom zpdx_iZ(%zHOP~1{pC6AWS3msl>g42r_%7&ir}OUJhn?Y`>ST-W^4qZV%M*DSg4nio z4gqgN-dd{nL*r)aiQU%dFPY)rSn6sj+VTzrb$$_ip&x#T7<=pa?*9Jt^i&#QMoD#= zf&;^kj)ocs_NABLCPJ2K$PA?0@A=u|w`;zf$-XAfU%h(ui|>BPr~dHa;_UP(d@1Q~ zlX%%3P&YFYy`5jDeZpLg-@TWX03WvPBd-0uL-pdN;-{VmACRs&n}TLeIT}&r?C+Nj z7xs>;d*tz9Tjqo1JQde9<$=>`iX`bW5epPbCr1x@1#B?c}}uz2aQ4)=P4 zU6?m`BT>WAN8hMRqgFD&^^u|1sq#n!=&7@B-ha3xwZ}CaXa$aaWMrB(pg^gKuDFs? z+W~De+)pI1o-G#`nGP~>pxcI0NO8I##U@-hOo}Z;;N<1h4wlpC&y|aSn>*nY_3SSu+=6&bZ9*RQTCF>H)?7Y2P_3SJwlFM1;g)_$;~m z`|*eKtMR?4$l^|Iq|TCiT8FA)C-bx!c;{qvJDrSX@YwVrm>Nm7ndG(0K!Rglgz+7o zl!g&Yp=&s#HKVnmET@FDi?&XupQBJOS#8P!U}S6E45`y2(TY%fsqVhA8$jij)vJr2 zT0sooL_{s?PmBGb_#`+|X@?`)9r(5jJKPc$PIwdjt7f?TilJWAy@31`>^reN4_Ekdgcx7=@F;DW zkbR|>lLWyD_bDudlCzEwUO$D*mOK|S6r;H1&}6K}kL^RWNj~{}=0~{s=YRg^U3w-! z8#t0#B3nvHntS>bZ5eCqW$l5c=d2m|adb0`&$>HN3-S>pL`dj3+eDc`&PYRnlYjMe zcy@N&?`J!GKppoNZ(sIW^g5SM4)>8i?J4cgF5X|Tpr;oxS_{a)K1>aCcMEFGKp9o8K$Ub!9Rd zp_zVrcRLskmYW6n>F@veyBD85<0LqL|MoY({KfUv1x-_~z)oiZ^jVCAKOZ>scq{ap9cr)7PsByiq1n{gcIJnE( zf2MXCZ!MRsdaQC1vs~W{tnJk8^er8bc>0LG+F}LIlMJGefP*CT4i1J$4xnR7F3gp< zM{7_KXrd;Xi0q~pQbU8V)~B?-unz;mKviKQ%J*S97_M1h{M}sxdiG2-RVN3(Nlr_$!>Zr)mX2Rl$8112EW{Ar;hdCYzbn=7`mrPpBE4;EW%X0cjKw_; zU4`5^oU~JKlRKy-E^EchlGkVuXRfn$**0r2QJkhU?xzUIM{|geRCXJ>1!b+o7&WL& z^{~CdN;QYlp@kKcULNT?HYHykOE&(L#+j$9k0_~+5RjonaL{&hOxiRb|5PGB^d6gN zE6?J|fJ=1|TaN5Bwf(%z%OIl`FqhU!s>rCNc)Fq(*FY2*-Y@`BGXg@qcmr^c#RX}l zR`@3798i=fmG9HD-7Y3mFe>W*NF>~v9xTF*$~pv>wrQ3&IcT+VHJUdOKZKEPKjs&=X5 z>xoD1x6k|Ler9;bS>*#QzwDt7HF{CoJ3>Cs41E|w$V3iJ^VRR6Tn2^i?^SEFc$0Kv zE876NeQ)wq`^35{mAsMeR2H^+jhe4y{A&9LiS4xngUmdnsJE`su_((#c1}hLxShR2 z0W^(X3*ZML0_tjJqR@g^a5tL3xwXzo-!I#RQo)giDY2hg1o{AQW70?{+UD-m3ADfoSVa3woICzf7eVF6g;OhjqJWU`HnHSKBp<`kr>2ky{szX zRq#dZ`BvLIFuq3&K(h6e$nT*JBFQq+^>1BX-<~}^RewCq@PoV^-Q$#npzL@mxhi;= zAkCx`3Hur?;!=2gHAzI&g2;0SAD#t7ID_9$F|>p1t8qBor3(mz;yZ1h?WP-vbtUg9 z;3dPMOXzTaOznWGqa*9C)Ozs-$>31JGz?rEtatDw7be{daBHScYQO4+%XLV|WMfqG!a6cC)(o7a05%#zugN zIC6aSJx}i zsWrvw+68A+e7j}BQsxH`i8GW=m3&2Y`0$St94{aFL_g?LYW&-+=Wm<`SQD(R5t*s) zP;7!Cjlk%dMHk2q@OChm?nk1S?(FvEFHB5Ne7e9wU!d!t*er~~N%?cF`A6b54NlzS6uudnKV_nR zDreS|L#RHNyfhvPmu4C2`Fjut_CJoR@hYU*yVsaq%3Yr#(eFP+6t z8?%K=oPs_r6^U&ymn~fa0ZV2RPtA;yn7S=8yNgcdk%6c4ctcJtEyBf8+IC4gSU2Sa8mI&}Qyg^9A43#t_^nlCU2JxqFA#O z{Ot7f?dvzQV)Xg*=X3OKZf;;hb;}lLNLqrt673uI@BQdnGtm|jV_nBsBS^rZqMXde zc)r-UGns5dsTY*w%O{V+aH|4O(L!0ip~Q1{EK<;yd>CHdR8@?O3H)sv&l>iwR~fN8 z>BG4Gp0EcY#@algbU=>lwtF`1w_9hLbUQ0qqA(z;H|j&R>+KXD;DiaJ9}-TJi7jjJ zH}%#{mA{mk1r+h}UDt$Y(h>SC^I=$n{#u#RxtWp3S2n8?5S>%TOG0pw`f3h^5${JCCwoIQZ>3iAmnTngRz z+=(f$#8Prq45o3Vc6B0&Dy|k?9aQF!pHr84Q>j0i9+pVad{0uc+D;fJhLcH?KuQb^mT*6sLX3*;%#Te!KK1f$$`~{S*_&Cmw|V?AHGlC@ zPW`Bo2(E9Rj!z%GX)~{HvU3~PTt0}uCzcCnu$f6=+!|=kf!NyY7x4+QLc%PIm%s;K z)C_NQ&WbnCus@U`%l{XIIMA2TT;1aIXB7lqKE4ZmEx~RpdpG z>l{pJIi~Bg(?iKz6*kBbv8Z!=bYO12X{BhrRxVGaDY1zA;PZ=4*bOMU;?DPbBC-G(7liVgvug+l~_As|W zX2qSBaRLbV8EP|@9ja&b`sxa(lJCBywEG1NC7L4*MOmUA?ob+w+Q(*}my5aE(^y92 zNydF(9ogMQ&eKtNC3EMVO70OzD4mdAKyi6`9?}`7khul`L2|X;)Y7$8Q^E<#{H*tw zLXz&&aEAkWhzl=UiNjbR2pY2?N`^q-Z3<7`!`3q#hj&X|P}iK5 zY-H+Yb^ng)E%knp>gQH$Evwj_m9(g(H<(!ZYmy*Q)NTw3K($fFEIZ3UyeeyLOK%og z_%pc~CFm%dS{<#ipA4b$$R>)V9VE`2tot*OF=VSLg>1Jzk~??nA`|Y3Dh)`ZDTPui zNR0V&4S7b@j;IBEnvvIEKj=F)4D&u}kv%#gnr)v?vH6d@_o_LnnY4Y{e|G_;<^pgM zb#n|;xo(*URE17ObndwC0 zv5D5V9Iz7n+}p`6NR+Nd(@<21J2(Q+w1K?LK(dvQfho_c7))De76R?GfN5t^ORsK= z=nTr$_(`5PSOPk*ccU>)4Ds@NL&CZQ0QL?>@87+B_x`J|zB+rlOH_IL{v4t6FTZ%M zP>wS-qPEryS(;c)VmX|8EOprNhAlxUiIc#qChCDBM3sdL0SZWbcapX{ud33uW+Um2 zZ$O=5rdW)O5^x})Hmyfb`fU83*ngb@{qXSAUO%CECFL>gpv=KAEn|T};6f}Ds3M;a z)+YMJyTcuR3^!~AJqawdhJ6gUZ*ZmsHpnjO9U`tdA*|z4GQ#Y>+daYfTV~=K1~3Ao zbB0hE1r6EyT20QaxvncSQr~|rRR+#??lTpMv_`=1ZB*K(h2ij*TXUK>kh{4@@*_Q2 zCK0+sHaCb6SvgzP8Z?{vj5{Pmux9jqPoF)@P&%)9PGzyENyS<%+T48Mxtq))yf|Y1 z=M9`n`}<~Fv2|nzByXUW_;j)Pg-e~K)(RI6)H6^A3sz!phEn212WG@&^rgzh$=|mu zDqHG$^Q6H&Im|OXNv|10aV<`Oe)A?499;MdPATrke0m2dmmfSndTJCf7Tf{5MR``% zu?pH#eo;bv_UIGZW@Fty_(S4TUrE!iBkXzi)svm0i5_pHG&vzvB5ISoXO$-dh>@;A zQAs@n0^zsdP)rg$>^~PJcs{jRT-&)7po1eNaAQwHXl~~3%@FU0_k&!1#Z!uHQuq`7 zclRFK)_?S}cKu$b`gcsnJ5bW(cB{U8PR1~EM=kQJ$_KatCghq7DTf!vvpR|t^9h@( z)$FF$vmCYA$lzOyDZy?izSCbT1kQo4ZXbs=oUrOB5nb?$w0=Ck*OVTFpEakg0hK7! zp&-UKU$3l_A+I+%#I3XwjtMNA92g>qE5?4tolZvM2}wzBu(OV5A1*!|9_)So`DY(K zyf=s2%IV1+L#b=z)(J?Fs??Cv-V8v6fgnv^fi92rzUf3SEef@5(kqJ(`ACaawRKK7 zvB;L9hHOY|S)soXUd#l-UBIf`*v@TbFMoV&&8 z=3erS1P{dJAbTHrk#77Qwo0aMfa3chX6p8}J2&|pSi4=^1hMx@(<^D&KSgHRU?Idb z(Vbyo4BOOph?7=i*Rd*04_e)J9xX|_H2F3)GB)o`D$ej3Sw5|zstKKn!(}#B1RvEvur8??SzDds&KuT zInGa>50ep56^Il7Nj{~ahF4P2Yb7>xifxo?Jk`<_sRU0>HO*^PK7~<@*EZI#o`n>H z*=w6hjjRel+J{h_vPv~9aeoG`3eh!AbeX2l6pWOW*wZ9SEGw(%G@#KR6n!m6br5|S z6u1oS7@1zX_un7UJ|77@gjwrP4pe_q1>q5n<4k`3i}DqK0kD zBfoDKa&zoPQRBhZhH*6;w2i}HOz3yvT0JHyvGTF1s-nageI`(4U{Yo*l^~jfjJC$x zv42cGGj(Dl!y4qp=vB0{h!EeF6i*=>sysRt(6YO|5^R{lR=Mq1;izyw8QZ=wMKjc7 zHQhmlyCu*)IrTD=ColAxwRATv5zHOc{`J>i!}b2~?gKd&fD_i|<;4}?zv0to=kMOr z#{n~b@!`GmX=L3~DDgrvcz;*v@pOD|K|gVNly1~K$I}RqkJ!{xyz#nL;Bpd+W5wdv zFrh@J1f4Zar-K38zfmGtla{y8z7 zZq30VwZMpO6#r?eJ?MfDwEt&wloQO~wmsY#&LsA`mI0o1&zG_h$PnswLpzcT-qKSu zgB7-5(r}k)7aD>z<4|Mm?F@Ga2~6kNZTzd~Pf2=*b_3$sqmjFdaG`uQ?k4=SKnnK~ z!SA@A6Mksd-exWTN&38mQjZ|PY{9n{_&?{byOI)gKMCv+rZU7a$bT~v>a%tNSvucr z4=uX2%yCg_HU#(Ka1W^d{g{p+XP(+J7nj%63EZ)Xv?g+3k=7_gwrD?y2Y8oYoWLKgA^A-MCy2k1cWaa3n(Kkuv|akts&f^T zRq)OvD|mAY>fwH2;+ZCLS(#RQ2f5v@WSI#mEQ7>|i2MOBKOQUZ$ZT>m8IRbf6pH`w z5C6?8ZtfVGR(x>hJxDi1%G)p-BcsJBb+1vOMWv}={;qKuHT&iPjoQ>H3J}JS>HEC5 z;jvx>mYFX$?z6AAi%aw$hwbpVTIyv3t<;6yPiFqliYOm5QHj#Rvc|m*$;lf(# z5oK6xeUq5yCIcIUtN;_DFL5q%{LTIjYRJW}zx(=Nw|CGkMG}e0qOz;YcQ?1^PoAF8 zz95CbOMoTOF;`Wmba0jZ-Mv5m`A^i6EQaxDgdqkrcvj|Ud>SH>;$HI~#lhHZ=eRdW z9&vZ&Xkom33GR!%xagT*7_IZd6zAD%EJa6V3p%)2fByOBXqge>_e@@fU#AvPDS(*! zc)T{?ACdaz<`(sKJ~<-wpS^g-qxtaRgF%N0p!gk0)|lISps7QLkWVk3VgiuY5xa4B zI2qr~r}s?hfNSzh32S=?2P~V{@89D+w}f1Z(0{kf(e>>4Gj5K8!*+doa!MSh<<8Hr zO{kgYHiqPGkTSAafJ+gz$lK_}&1D_3WSjxT1j8WGOTHk=aGjhbPQu4W68Si#<8l_r zT`o1VdGw|NU>U6uNE5XjSWenE-ipfWF%i3qH!}P~?2)udtzMaaW|&!VYdqC*PAoTa z*G^g{DxS7`|DmdXqnO^7uuTviY@j5ENlKylBC@{0da(?mPIa5U%Hq2w!RXDI0I5_y zwOYE`fS=E)xNw;xxHE4-q*?8^kefS4WTmTY+|>0($p^w$+`gZVSumGZcegjAgTrHi zYj^et>!(l7s$RCqSZ>9F+;{}3+d;ANVoL`+DVCwfa>+K}?g^!CNrcbnRd23VZfz4r zmsS-8l!()>7Zk|sG@`#B;QRZB{J`CKSWn5x2ep8K$r9(vkGxPe#Oedi-Lb39yj!YrpI|6I6$Gxte(NH@B_SKQnkclz zDvVQr4AfxCN8O$lA^}Dz!9o^wxWnBP8ASxb-VpiF?QTY53 zSod#jNXOLYSS{Htfp+anCRE=0M6#AJ{uK_T91O}jY-q_Kx^H784A zO)siAfg2-3OjRIvp{+WZQX-?+5m0$SLJ~|0xJ85qx)yYM#QHAQKyo=vqrfuYlEU-`+}`-`l3!lKXQ{Ek^h)%HzPjU~jamp{BmGiSGPJ$3j3_X&Is zVRYroKp5^PqrKgIm-=E@f&F$YspI*MbmR+a6$%&bz~SK;h1kUvP>efF?OY_8*I_cd z&P}%7o|-1cls=udj&Nxy0X&c_Wn`Mp0e7%K763z#gv~jK$9En}@uyo9G8XY_!1;)Ou$$cmI*Z#wuI^}oe zmc}4!UDf_7d^6WAuzWCSD%gZB5QHjL37Y3#9FxLxb+dRoT|ghp5iveIVlQ=W@5iLM z=Ap4Rr}oXqmQqFK*llm=-|-vblvE$uxXp;`5O_w<#Ve;ap_}lF7UT2g4B1@d3p)vx zelW;V#BL)Y-h~+e@U--}V)F*#O?w`g1PW@oVz3gE?(W{OH^4K|u7qBkkS#nuKR&g< zY_8k3Y_O8pGzY<`3`z4wt5GdSg-%K{hsio;4Ya)LcN24%)uPkjPCa*H>|D^hS+-U^ zkF6e3tK?cbN2ydoG=ga~tQ+Y0M>ZPGp+$4f8BpQgSMdo=Gn6;mFJThvRbUed*6iT> z1^bHxmD5i>V;cug6n|_<81MqFZRhF~Ei?NK=Y-qN)L6^17AB|w#}W%N_MdMJW&UmQ za(onk>Y9eDd4ZS-oE&EDv$5GT^=ZUeg;_{ew`AYamN_}t6=yS5!C>0uY<7{IhJv?{ zo3r|Jzjn!0((afo)m>RkxeS1kRD9#fJr6L`*+dTsR2jjj_2m~Y-ha4QOh;t6pvr;w zGF=??`(RFR*m(Bz>E*?R1Gka9{QR@ee*EEk0lJfz?M5hMh4foxCg6Gpt;aVvH`J+c zH(05qyAH?6QY(cQLN!^nI;4=x zR+5xcmEY@@N!7%5fRHR`<|Ys*jHf`0xdd^{bJjPf2aBv@@Su(1D>R)~=Uv>=yfRD) zv^vGFv>mpAPc2*oF1W0@4~tpRQ(@s6zIICu4~{O)9FiJ-gF7dne%(wLiEA=(fq!Eq zRy#IKDXYm+Xk^xu5Fh#ln2LjWYOq>nV?dh+qKlGREwUzbvgZK|q%=h6t&5~;3UC_jkk)QmVSm@pnhCIbk$Dxqcb2H|PCLL-Z z^vgb%0yvDquV+~m20A=$nUDdv%F71?siSCA_F3+nSLdZ6wM!RnuhRREnMX~qX&7KM z8Nxy4B|yKN@8%_-&-{JOxCm0f=K2B)3Ah8s0$itwqi@okLXX~c)tcXLC~B4U^NoJa zyQ+@w2KA}bD>q)}d1cZB{zry4PmE{a3X#%evZ1OO0!P(QSISx77lD&YRtLM(jvDrA zG#lDST#<@*9ZBGm|7AV12)bhJwOPhAifP(`E#MfCFw1gAI}3Mfk!s3(bazV+78~fh z>l?aLPfm_dfv0b$6ly*@J3Xc|&I%!3lL-Ikzy6zl`KNy-775=0g?0bv{PF|ry=wyc z!4P{@4T2MRPl;=i(?cd>(dQC!sD)%Yu#6nsM_!meXFE=;M-fZQ8g?LCdo5io)M|0s zYUi@m-B>%CINmb7Sbz*Y?@8F8u`+^Tgb>#Ud|fqCa0xn0BtYhIHXV`B4v&YOv^$QL zZ5q-AV7dAE&E3<_z8(yBwsK|1P2`?76d5gFAffa8>9hI#j%wys^r$`89m{OvASOZu zAdzt)UL$a#e6yeQfg+=`4AY0{1v7`k^bi6tfM}{+DPC=<81@CYkb$bH|L}oLLr0s| zdNnW)DosI8jjQY+lX^v7r|_O}S09!8A~bgy=BRFgx6Ilx!4!p zarW0-Tbbs)W=~z+*u@TpcA$f&NhJ~;ET=uC-B>>BIgxksefxP2w6f#Txs5FF%JIcg zkJ^}*vAwoe%n0+DR8A@3NQ>CHNUD)T*C&&EI`6~XeLlj$(V>naJD+;C0({WnWuS{0 z5nVmK3jKF;+gW-jcjB&0drc{+hPuaoh*qLB>%#N6pwpoKybzMKxy88iew1Wqwp&TF zaxzWFa_qH0%vyH_4VePBmRC@(HckBOG*KtyLV>^)U6ed2FH2Kvki0}o{xI?+*~$;Z zN*tXTl0N{nX07?!+M!I2NONF@h;Pc#?B&;p#>M$RIASX`-KW=MIXeI~ z^pT28rL%OQn%afFRWT?byJUMx!@%0FnR=c^J)MtxM}q^ZrcQsdi+FoR5_6cyE=~M=O9bFs8n9$^jE&kN3 znKUsH1AqgY#MhTJ*QrFs>6*&O$)f>s3mR9}TIWe@cFG=G4T`?Dd6YyfOWiAbDZg`_IO=@B5+qfCle(+J@*goy4(PUCj>iD&mHE0c~ zt$~m1xTNg~+?CYWL>J21`qeSEp%3Gi2ddQX19wR5jXk%7t)5$GQ3QU-Jf7AWnns)^05_@H9a5$r|n*Xyp zm_{5nv>(M$`SR7P@4ov^WUMiVQ0lEGSC%Jtd7OqvA33w* z32`FNBtJmnw)ukPo9cGc&Tm1mm~nSj<9idfm2DHh2td+1nT%*bY_&8}Yh7KwfAZv* zJ#lz&Oh=iEn~d&`4o}9nS9}PDw0JBdZ~Ld0e`ezPkN^0Ow|95D2m4o-S4@lI*J;MQ2K$j-Y;@AR@qsCCk*@i{NB5(ks_6O_OcT>wynt%0|eq`A<0g2jBY*;PSQGF z@mrka3`UfP))wMA0CkQ}PbrnysOq^#QU;6lk{OwMmnP@k-5|>j4iDnHdza~#5N>Qf zYG%u`Ev+NJ?nVug(TTp}p9%uB!>mL~|@ww*9 zm4Dur1>s+>Y5Y_OSPqt5CGAiPxVttlrJM9LTWQ0% zG8Y~>$-eyRg)m{l!wypOT(weZCbZVhz+3Z$-AoJ6i;NkanUKW%joNuzGtWSa*Qta5 zZJB$iLD7wNh@iw)^pIfzw)MWTA@+I!vQ6q=O$!#YRM5=W*E$k^;G+y?(_+J$1)#Y2 zu{MASSo@>=Bxeuty$;zQX>v6k)dR)pQ(x1jsbTHI{*iW=M{xgv(3YvXLv`4FkovNT zly95>X?-MBR=@R63)(ztE>&aR(y0kiBff9V*;PN;QZH`hvZ*GHSp;7c-ymwFNyZ?t z49vtHtodFVx-Zh#=8TAXL>BL~d&k4p@d4&PlC?0DedPAJg%xB_j&JVs#S+w$l41h- za;c*E`1o*P85N6aMkLkCYTRl9)UAt)G3^NUSFhVaVg*ga)1#xWzxwLOAAjua_Yvde zcTdia|Mco5-JX-vQ_@?v-sbzyRF)?46f6kYk?ebg}3Nb*+Sh zK(Eu$ScTkYi2&~(;;#)zPeH@Duf`}|!r+B<3Pf4pnen`S0y%h@RiIGcBO{{%VT zlcQ5K{n(WxZWaEU2)?^}b#V#yW&yaqC326K`-_OkjMvmUb;G$v6dsR%qKlZ2;j4*UZWmQJ)3p` zaf4^I1N?ws>%UGkA@g;yE#6vtdtV0*Yo9?8D{5$%OFlCcc>P$Cb~{~z9*!eB9=vhn zjRkMo_)+1Ydv8=<5EMbSo{N~<-9M!|~t*8BJ8yuy>Sr+BCbC+@a5t~+c}^5v1? zZ5*1}l48_ODzqpf_26QMkzA`d`;)cyfCfsbp_{F*qVYH(9@IT(hxziRXUcqx-7p4^ z)X))m!qax{fY5~NO%Ul+{+lNDq;zzRe*BT7gV%ZY;hb;-Si*`iVp7M?s%Aj9#%~;G zNKqMmYQ61;U+4#h`YFKPgELIvAB8-?&k2vMzKk2%UMj%?F|rw~{j3c~pzoTpKGz?~ z+SE_5{B%xG*B@KUU65c5+6<|s*F}>C1^O^4D_tGyof_g+Ia*(cg zzDZ<7xtW=G@nBwkt$sT_7`6|FfUjf)!(=6^mz<(tnuVda*Q4gTr;tbSOW&MUGHT2R zt&`E{o(z{2%ToE_haZ0Rt6x2T`V_qOyAKyde&Kw2cs-xJc>bq9{po1;$%l(`HqQR> ziBPBg_BY>rb2qw2z@Tv;sHM6e-o=Bn3YH@zoDNwc&`;17TE@n#D|R{UbiV zaa`KwZXN+jq5UMK+8vxSM_W@WWcN!@tS}v?t$2v00I^jcHj3R~PYlnN#5{6C3=$aJ z;M37EM~BCfdbgBInW&|J6NXQ#0R&&h7KiOU$VljHUr)A2N6*Vv$4Q`aWvE>o_(eW~ z?4<_7``a6GojaA#m6$tB$48@Re2F%vKH4=ca`Dl(TWCx4y>)Ua=3$$b}G8ub* z7kC23fsT&a%DPV0A8ZOZq4H`H8c5cBi^gO$ln}jXKRr8Rh>xhm>B-SoUw(FWb~N1E zKRQ0%l_r7MEo@j|FH~@9&Lk}N6)67eYak4u&goP2cJ@y|LUTGXE4w2-AK%VrBbqUs z!dF-C?(eQ(#!yhdefyf843gYWPEQc`;3ga$pB^5b3wgE}@xu?VStNTqTIitip|o%g;$19kq)$1y=Xl#9^RL79a=nF&bG7Rj>!bL+ru7H2$ zU%L{hqjRmwI5xfcG_4%<1m?7Mzw5*#6Ua zcVuUFc|P&>WUv49czC*p|69>XbKK;*!#*0R{k`EIe)#jUzyh0~nV%dT%qI88hkLoT zZsiQp$~dYKUOd=6ca=Pn;>LZ&y10%{r#-l+G7V~odLa3#yem9 z;@h_$E+_XBxI@{t99>@Qlj^4J`cKqh~ zNpg0WO{O=vH`Z-)o)ak1aaen?` zZ+8dg*nB+M-`jzO0Al&8ufO`^%kPQMELS)#Y!%vNWbQ3PMX@6ox-JbP$sxxAj8YUr z%I4L zF*V|{^KpD|>bahEOV%z!QMEoS(+M7956NKNE}$7FlvS?0o0RtL+qarz_WOijpFi`a zVB6i8&|fz2U4u|mYMBK;1~Zh#i%|-dSb?ek{`DK_6IiE>A`}Xox+t32LX}#1gO8L2 zODPynaEsb~rRO{fxVLIk=9a)J^f{lPq5%Vqs9e8Iy+8$4RLRNtker)__(ozAK;5PJ z!qXfQL--ejSvVR7oz}dxfrI-1m1l^cOq*j6ufk)CZ zTiskJNe#Ey5gcPYTcCJ*onoCNEwnnMgB=bKla(WBe_y}?taNzv% zLV&$!p<28~0dn7-C3!e6bHZ71k3vEgbc9 zhxQKlNv=A>{=4^Y$T_n1-rM)&ZMSlcBzZ*EyDZL5PJZ*(-<0b+WXE!8Ru-D4pryKA z$W$3GQuMJ~8}BZ7b8H*sB*-S8DRB>g-E0}k6xV#`Iq5oMb+!@3e)i;SJ{c1lo}QlU zpPc;i<#&L8DGx5*e|Y!q-B(|J13cNgrd$=bj`dG9yd3nLsBD0RsrMK&>wow(PUed$ z7qH+lB4?7TS6Y{ARb`2!ZJN4vYD#!Fb^j-^5P>e+AzR>q>4v^C~z1lkMv^ zD~5hdfW+~fz~-6ObI0Sd9EAoLEpeM7B!t?Er33nIY9(b|3X8r(m84+z;o?$Art#L7 zm*eQ`hQ4sh7Lm8+o{_q=v`5SeSYkR~0X+H$6CFlsX0$E%!QI`6wess<|C;|KafX=Z z;`NC{S=El0gul(-oFQDP0e76(m5fFUv-*q;2Q5v4p8jb4c`{LlA)NVUGGyOFhb)r$b|WT70B)S%1Hd+5Y{gsh|*kH7Z>r zBMZ)}Kj}>vq?6byz9alOYB8u*fnbT<(sqqkgVCDYHPG>9CIeZz26S12O_^lQiggRL zm`Se$QDv$dR$J1l7(lGOR=dEhEO#wJP;HAP>{kjP+nZYw10ufkb*0J*f0O3kk^$Om zz97xSjS^)FnzLjjLd~w0nTZvevBXdf{hsKx%Gs6b#GGa2KOgHvdNIj7#vt%Y5_Z{Jm~+bYcrs{D?S^wzL7;c*Gs z$qiTFo=s&dYUUb2Vbv2c$2jtz(u$rd)-(DDbfil7B8!8=4v*Wf*poZYmwmOVYhiO& zFALlX${XdfDz^>hO?GD}c;Kt(tY%4Scx@Dvp#s3>?^E4?!IHmHdpqdwQfN=!U%h>I z4iyL|Gk6}fx==m}n!_&d#c9Zg@-|$M;kKN;@2n#4kp=NN|HYt6=-1y+HIV~tAaK2Y z{km=5OD=c$25%>+qD7$lN_x%~HV}?dV^R`fwb1s;A zbLRAOw5uApQ_3*fa=zOK}lF#dv^rl>Mr;igV9WCHbzW zFBf0;+ta?~FktnY%bjFt$$co{z4>m8k_-(IM~iyy87ctNn~_QrAikh|-=O|KoRJns z^U&J!k)AiwheeM8O5C zG?9s{G%S22AS(Qw`~d}~sRW>?u{LUtNxO-KHJD#q65XelSIDv>P>3rU+X{gy!HR|R zYAshlM~b=Tf5q;>VL4s4dmUB+k_r8RQWnO5a)`u~W4SQ$T@N&xm%mci>U3VeeZ%%* z*(jqT$u2gj3?O$FCWuI%&a`)m$#n7R$G4)imt?rfvlmZ(eEq|_H<$gLA^1yi|5nQP z=nhf6-oXh<>8K#g*X!@}&#&%#JF@gkQW;^$*FXM9txVtf^s6t+WwKq((0-@yM6URUm#=iYH>;cL%N?rng9C&;h^8zm zQg|BfLJ*0fG}qwQVxVl-R&y0$&LL$QV{}%Tj4xceLvbcHpEy6)g_{r$apTQ;UmJ?= zF3#o2W?huE0%6z7X9HkKfq?Y)_!vLNvmd^Hr7Y5PLTHNw3|}U4L6uB-RC0SP`? zAqjO1jDzzYP#KoB*`^hI!UvLEDBpLob%l(s*(eX?Irx3VFIQ_npN74mS0p}0^Ay;F zK1@!)r0^j~#-*J*;tnFk%;zPsrZx&R&m3D(p7l|0YtXu)&L7 z%!`ab0pm*W8%q+YkNOD3N5?fg|3SsRDH0jxd;UoL9s(ry(}?p5IdA49ruDowAgQ3Z zaZ7Kf)~*C#83G8k$o~>R5&LIY;Y}*jVv(`~TLrxz$ltaYC#-!t?GQ2hY2~}5;^EcAqM$?+P&4eRAw15ip z(4~4dktUBh9jhEUJ3IC8=TxjF+{HQfb;28k+U`+z18&T~ z(pSD0bKOB7Txr#Zv9Re#0p0NN$c9yj87SY+rp(VJY2Xl!t#`M*6H>Ph#On=3rKkPg zE%837R(xF~2D1X^JbY?Aq}>l zzMq5JiOy|175FDan)u6a@lw~9=U#2`uYe7_aFG(^Ue}JUnuHnUHL4+Z_e7Hc8I#jF zP!Hz>ohb4Zklp*TsKl>133}3ZWAY|tP;O&K&QQ_n_Q6uaRbL!G$4jZzX6-vO{$5wL zO9V>6k%Fb?kLKG|+AOmrQeWiA88CB+VWOnFzy%PO`0N4ZZ`3MJdyA^YE&07zQiM%7 zp_Q1P<~*qN#^r+z+o09SMf{)@_uQ<37*r?S0 z)p{bL%tRmclmb-00cH>X8W~fx5%gui@t{Q!srO}zK6O(OwZELc$0zWLRv_+VF=U}= z5NGCg`2*eAEmSfC!z9MWAS79EFRA;E_9Rs$+gyg(Ta(G%<^U(RWhKc#nByXVKlBIi zw{rqq3)Vjfi1co@1h)q`3J8NLL6PicbLg!!oY=9)Cui&Yg7D2|pcTy+92AcOy&XF! zwOH%8Dv`2+!z6`u#*lfyS=Z{tl%4ojuxs#K-90&cKIo)7_)SjlX{zq__OCyTFE1wI zpSLzxP9L2NUp#+tb9Xzpt|iF_8t8}nN8{P{_3QVihiL3s#iH4Lkp6Ca8a6}4D4UEM;L=5J%wQnI|+pa?$UNSBOl-EW`FtJw=oI){T1f} zK%{3+&j$O)M^B#L%@@D>{hyihqO8DYeDnU@DF%KP9JnoA;T?=Dt!6;BH33`Z7PfIn ztUYVQilc4h8L39g!`OJm)d66ItSQJzv!C;fdMGnTU5#1L+q4$SJc%5LCMR_;Y)){N zM>|!?Vs-xE>cwYYc<_a88`!P7P!V?4)_+KY$Egn?$=dv2@SyLxt?wTbvrc?Ws;F01 zTP4gPgOE#La~Q$GXvEa@*6LA+--;{C`q8ze4271io9#^@Iwv#@O}m^S$%>x){{GSJ z&G^;#uc<1&`SzE;{O&gsHC4*hS#XN`K5_Q^g@T}9WL4i2%PSso27?Ym+nB8tIdzYABi|&ZB zRS}L}k5;_V(hl2}2cX`d9YmYSJ~W(2qo9qbj6tzo6-dx>;d%_rS{ZfvxI#Coh?}G# z4hyT*#Ju@92$qi$_Oh9D*Fpd1()>rh)y+X?b+9E5$3Rfs2+|i#CFjt=wS8sb=lvB86Tls>PkYkXuFk~GG-ju8!8!zGX06wF6+takI zlZR1|@Hla8@fIO5Es*ahrg!7dcc1om z4;D*}{gJBb$qi#+LY}huY-=o&GC!5LO`I%*??%XlWCDTfK7>sEmmdSO$0DOCFEtf! z8%m+&&{aB|W8s_+FbJUM+KYD5ONPC}5%$~#PTae9mv4>+N3*+gwne8%2W=X!0|w0W zy6@-tYPRY`3qd>Zu`9Qfnt;*36y020-rdoe*&(prjuuZ}{A#|;)*Jq&Jwv9`T@l`W zAk+X=3+W)pD4yz8&eW}~xq4pT-hl`_f&nmJ^n@l&fAz~>?sT+U=c8LHX091{s35<$$TMndFgEtbVXDPMaHLx}l4alVoA$fYCSGf;RDNBVak`60GK;FKE15vik99C@s=pR=4!oj)3O0u!Wr%p&a$X1 zHM|KET%`ShxpIL2@j(G8uV;AyTaxD0##S?@JMdWMPzvw5IM~LEjL_DobZpwfQ_>eg zX2-Cl3-9f4so=QnT?AJ*@#S6chjR(aA$kSVVsQEdwWNcWfBs=IUO+q8<~L=r+}j&4 z(01A?cX5AjpFrx@$?MRUmoDQSofBpcsgF8cO5fXDW3JZwd9A6A&)~9|q7t9KidKmiq zCVs6`%3=W*MiYf7K*LR4)b`-bn|E*sIb$H7@j%rt>X6PPn?xiplNeiyJ>x=~X`B1t zszI3rXh~8_#H92Q5W^yd1eRA~8l_a;;~Fo^oR>R>tk}2T{(?u!@k2XkIM|h3MDmde zSS|Oz4MEVM+OpOv<51YS5KVLP`N;9=C)+O%(lNnHBpeu@*k^}kRMWqysYzg`zNCsi z)ty%uEk3q$`luQyKGvvl=i0mplMhgu2cHl-P5hoWhR<1PC>QlbF?=7+K&f^+h4qpg zgIU*Pxx}ODua&&F5dwp|niTzR2cH;o!chLKmYN6&Lsd71AM%=zG7>9_Tmdu3X_;1YV~StEa&-r5qmqtk~T8=JaWmF&dm)K zk3=F>7@E%#Ke@f%I<|!ppNPc$xgFgS`jNx|jH?au_y6@9LkiAZ`D7uvv1*{_%h8?W z0=41b@C148eS<5F&C(*aHvk@F$P|!2f&2)8bZaRIm^jLksZ&BJS!KuIZGTN zqwc(+;=-KGLz_o@Z#D_8%C{TWFi^LFUJ93L)6rdiN)AfaT_o!S_QU7r1K}6S zh+f#?ZG>?JxeW-o9v#^KBOhdQns{b1^w`D=Eics1EyD6t zR-3Jh6961wZ_|rm9gnWAt}%P#vM(;qxwkxSj>D^~OYvNej`{`~<7$@zMd-=XVc_vq z-sde&P3cLk#gzvY|8w}vol}{WEmzg1iVDK z)cGZ3w-x+S5{g6Q%OyH7IXioT_!odhstMvd5ApoN<;9o@b>JLw$k zwl6Qv|K`_!!wo!t|9*e3_fP-yf1RH0KR?<>d-3RKFrVESG1EAz6-hiQe z@x|BY7k4Ko&%b~5=5BT`?e)=^lu_YZf`BdCGN|&dkaoYh7eFAhqmLCkxw?Q~^5)0a zd&Awg@7^#MWBtqG!Xo5kzG7PYPyhN`q;535BJ5-xZVNI4|MD;Y!r=GG=^4!$)*RuN zD2aeO8%lT~WF8Dn#1f|YkLN9ioD#t_X8Ca0z# zqB-Ovp*hp6YKywNS}Dt0lHRO#1Ha#Aze?wGAx5RNpyvDTix*#T{q|W3^W`GrCJ&8A z_vdT|;R;5&)DdGxydbB`!=p0-I_y6Z1YUAmEZoD7pCMx5I6~Ws6-g}CRCc{EQK8fk zsV>eHGzLP>-kdAAn2djXPk1dB(;OT*h=oj+WzFHCv-kGa0FFA++v;U)L)YH(JRK_Q z!lk=KyknMSqmD#qeI`usPD_uQj@^{U$e`~tJ(*LMs0}h$9hU}DFsx&zB(c+JDpLRR-!IyL% zS#=%{Anq+isgbueod=QIV>C}r52v^|T*N72M9VktE|mWF`tQy!STJ3waV;g*1pn;- zvi=T{frSSefY3rXd-mk1_?fr2UwrX}->ajeL#71hA1(lfxcLT`!ezkr-0#a+>V7p& z%V|H``|7(FFt4ZMS(MLjZr-)i!_(uvwvlfS;L-Kry{{0x$AhlFj(+=x|M~5Af7?zm zmbvb9PnZ#rk9NCT95i1F3npi0z>R=Pk6H*B^bv+zWnTUZ zVY4Zm!Q{a@_}X~?%Zc)~zJz4wDRID%RW)xC zhn7o)Vzg{Mjw_=N50TY;)skgb$Wdj~lcJ?d0)c8*nX_Sf19OsuMzE8sn-M)9M(3U0 z4hI75FXS;ZSzD7BxbaxRn^$6pLX? z;==gXds)FlidZK4zO}QwHVRNwN3xqkp@yp*mec85`E`v(eoN(fV!F-l`&!2%HBrTB zNxj5zNQp$z%w0j*ghZgp0*2IAdnO`yZ~YC)Vl(TMoOm55M)%|D+ChWque9!T{axuF zp&un+buQw&dDpM(khYZB1hPGp=zldzDU1%>wh=l)PaMy31lHkXN0iA-&YVJlU5Gck zgeOy3*0IceNFLx-nz;plbe5=G=*u;rHOZrx*qn&||KcFyPZ2VXb`PERN--ubnw}f} zVZCn<=BrJJq*<|-O?3oc*cBy84ke+a$lY?O*}f0*I3_hCBgmR9L1vYOA9FiU&)>au zV=%6D&;xZ+2*hQ>K7N+ z6c9P$QPbJIA(OT%CYdP|t(j3ZGaCWIMPCu5zx(zVk@*6?KY!;^V!08jg-sk%$kKr9 z(SAwWz5Cg^SgC}(8n3pAytlGq1r!FNH6R8;3;uEZyaW|k;bnYva|OJz*J{&tR~XNy zJRs?M&1L|HoHkT1HsR$J47)9Y4|Evh)m<)FW8!sXupwfBayFTSNPmV<#b2kVlKH#s zwP&4v$9W_U>0_T0Q__}#K2;l=kr|45tXo&h%ADOp@bZR_X()HR=k8I@L=y{3N}^gu zQI9=qCCwch;Ex;}-lg%l8DxP2Jxc4lM7I_Zef=IWLjG|x+Gn{NiUO+zrY}dD4*x03 z+Rjc7V-9v0@GKMv=*y+Dxgk#VaTu7&0{#ZmN&&@P@5uRuj z+Uve={lhu{+(+9%am+WQ<31f8L(bx8oF`A7!NVrWotbl9M-1UIkQa(#Tg#xAp^ovF zGEQk>(NMQ@BzDqukU&9S$Nbq^(wN-o1N8#TvNrTflQC18$+e~|9l2a`8zmh!Sx6as zwFzo&rUKwRoSGN2F+N(F__|+hT}&-=g~*LtRmt%~hU1Ai?`^*=QjP<|w=MlVlX^*& z@=BxJ@0C67R)Bz8>J)o84-{6Lh(7eDqyLD=`nWY;el)NRi1?34v(~W;ZTGt8?yON$ z6?mvN+=U}H;VPH7DL%!&S2aNqG=Uou!TNxey@|Cdn;fVz#9U8ueT38GcKM-5hQ^tT zd$GLOVio`$lx;;LviOoYvBD-i1vArlgX|1q14G8Fl4kZoA~!xmY+!ekO&5|a%-UO% zbAX<@nJp1wM-G6*8VN=)E8YHZxn5W^0BE|XPyE!506e8ZEkRZCH}z2#4z953PM&Cn zMDStR)2zcC>S5qqR_B%@GI&|m3CKt+OfNrNwVoWa^ge&~t#d4GFD$lRU6A#Qy6KcjuIgxKK5K3GKgQm4NwO@v&hvQ+ z_wbm9oGUYHLU(n8K%+sCASnT)NaIuRne<2h^$s$bNKqnX5?~O3MxzTgXXO-`098P$ zzZvr!K2Q4AUe`}}W;Y;(m6c^iMz~+U_ndw9UVH7ep8Wt1roGg<9_23IozQ%u%>btZ zpoZzHWhl&8pSD_Q`wGoH6f79T`=OT#lpHju_N za9L@Ya<3qr8`60(!$@FC=s2?kp{@hn4wN>suxak?r#O5R-J4^#Aq-~Z4nq1Pl`muDl=|h%>v=kcoi10Nr?ltuT zylXmXT^Z2q8j&B#trQnToy;VW&3UMzhv9E%drvIAslpvX#KcTZUOb35waBqZH_Eh^ zaoQnnI8Ba#7%Zu=#e61FrD0++z;y8F@Jx{JP<4YAWpml+baJ_3>*~LJ!L2aI+}HIwYelV%zIlI^R58qaJ#Wc^a<_xG z3z}TPf?Q}E0nmT-)mM`lV;rrAPd=&6hTnYmJ|Q`;fWG>>xdfq2FFTEk31=`7WnqRC&-t<==hUT(qi zS|z&ang?CYk4&dxXvImUNKu+Dvi(vEB;5@k7;fQaS#}(s9`Aya!;P#d*O2=M1`b?B zOswQeQKpRh9*&iU7k%qaWO~3X8a<`qEHaMT=JP4sae^A`9n_PcSH=`lMmZfB4qjTy ztQLy~KxWadmr_=izk6x1y=et=7z6r8zeEJJf<|g*S#4KhHt&{_A18<6d&*(suI7@Q zz+$iUAHiyFagW)1HXt8Z`X#?4t9UNT2iz)%T(e36T@8oW-746Rsatd2}4A6a5hcb=LEB7(-=ch=!)e! z`F(X#Ey_eG$5i0P8rnoF@VTXT3oE*y>z7$49snUp&mecFKPWKBIi5mBK`;x~I`dqZ zAOW1=AyWI2_L^X-`eZte+IMW&mXP9XQrfN4e6!I)QSP#PVzF4^tI(mz0GEuaKFB`J{+DRh%+lPnTVla>Cv10auH)a&XnO(#wH0umd`5@pkUoO(0?@PLrPofrLN3|K#EmYNQsY~ia= z+Xs8e%N8r=)Y<1ZES2SUi|>%Xy0xink}Q(YpnxK!<0VfXITuTFI{sH)su(uB&bwo+ zE3)M5>lVprQeSb`G3W>Rl%cr4>P4B{>&@U!`LDGYkV1(EGZD-C?=<9J;tX^G6^) zA|v4x$-UErDRqThWIX_k@lyTnW`l7m^Wtsr=p1lv$I)2sDpwqT!sNt&;#2%_Ka1`yC z%o7>!)|i0v8X(;eneyt2SWjcE7gq5eNe`0WbS`#3PCPffbfn}zp&)U_q&WHGi@2Wf=NIw7wj1J0WD=!fcq7STGhpjZ7p7LU>D4IPyR&t)p%j3Y) zl_?Ox5yfB<#S2LV+|7(NkP)fJ6DL62yQNSC=aPx|tI+DK zo4Y$m27tS+tlxP!tG_$gf4lzU%$P6+E^nAEXWUI8R-Gk zGiNS!G%W>3uAK}2B9LUR1eygpb#c=@xwy(JVMkfAMjS%BkOGKO#scoFGL&ubwRB)C2`jF> zd2_`K6ge2(4mJX}kr)yWS}Ns{h|>R9b|D$b;=p=j;csVYRn|SQVN%7v^9zVwN6>4^V&C;UfNLY-5U~sD^6@6R~|Kv07 z8|yQJlPwbriTC%Nr3!&b|2Z~ z(Y*P;zC} zk}!9;NlY@shNVi``Fm2Waq2^`&Fdm1AgK$kSfqXk^g^qJ^ky773L-V|F{-oor^Zq{ zdhWHEn`L>{{O-lRAR{r6O!Fnwpl{#o&)Y?K58VIwlP54=5t{ZaD3RT2dfVH(YzLx> z;Y!a;NTs!0k)lgvMe=^R>5OH-(1sRC0*76O=CSW?p;_HIJt<8ZG$;k4&Lp~dadk~Y zve|Dh^)9w{*M9xwU*7v@b6OnL8}}P^#-ZLcn(Hg=Z92f1Zxr&4t<)T|Lu35eD(?RB3v!I>CS_Xq^DG= zBlgaf-+wg35S)UChX{!Sgheh%@=oMA4$L#OB@4gKxi_0;cBgy-D3}W#57R_fv1!lR z#yYYttW$|V$lx2hEy2dk)Sz$ZrZpHf5*b@J8b{ z6`wqLyuPvK9YQpV#^6|1(FpcS-Eg?Ru}Z*En-RV2WsV$9H>DxpeDe+e4^xh61PCye z)4jddTrEHF`t_@>>IX8QPH<*+z zu1Hg&5I(=SDvKOl*grS~q!Xw3@QBGZ5@?RPt*woZK6=FK_jUWw_G>_u;f!2e-7c3J zkawBf8z3*At8+N!bC6XaPPAByqRmZmZ=b(8-9N78t6S^atIO*o@AQ;ltaEdDJ)Rn; z7-kRTtt;(ydcy5>%^Tp~jrv8XGxWk!M#E5~`@Jyg_KI{>QK+ELSIbG!u!vR;KTg*7 z;Ne3e#q$?Gav$U(S7J&F3-Y0ST;;Qal3kajqLJxVbE@Nw_b)2n2#{L3?Mzz7fK>pJ zA`k?Kmk%DN_$|tq!e&|-cbKGSmeY%!)o>j$ozx`@Yk=octCwEyy`-_WxwSryzAmi2c`%<%_l9#8KkeWisvIiH!VYlGxNu6EEi{xY%It?{o4}21pxhP1H)K2AS;f3xq zWvPe9bLRRJlPw~1~^|ldHMvE`R|@Rqm^*cfmbuSxbC!;*C_7qKYYTt z)9bhUuiv~y#`o;<8m0AejSd7FJNcbEk2@Ea*ni)Y;JEBYo*i6 zGuW!@o2w^hM>p3OTRUstKHnobV9M$F^A|ffRh^#^4(;NwzSh3DJSV{Nc>nfSzxo&d z{9kmhJGAhCm6w!eNw{WfbBl!|7jinEa*PIQlgheU6MAs)2fR(>Y`rUaiv|zNsJ;s#Id?5Uk z_`j*Gr21Dn3OT3wv$6Sqg!k}g$%7Ww<`bF=t=@?qwZ`o#8Y()lrp z#kDcM!7LQGhf<+>#eD)dfr;1VZmO{vrdJjgXT_M|V>RG@IE|o5=>c6ykA*rb5~-ZX z`L=woXg!H0G|Wb~l5V>nt10u-kx_-5N76zN96748KN`_VHAFGznvWWbha7WWO6fge zK$%vIHb+MIRT?`B9j{yQ-mrO^6V+#h-hJphds+pHg2SnuTX_G)e_Ovd zLE*mz^v`Cw*>3|xzf&px0~Tgh1%^l8dv6^!Y%`l1N7)|yd}%*MvpqNO1dPL{J9I0x z9dgC&VDpEv?NrHZnbZTYOz~tWJdoKUQXYCT{bLQ&kg z)r}cLe59vPQA9l|%PX$)t8c!hi)H|dt0ML0`pLn$+OTo2q|eCy2$FOc5Qu-u zOfmc7l`PfJ;iDE z{VYqEE(t}-7Ck9irP7{e^)lO1ok`%@{w3V`tO1w|&ytt940bXbynG0U$l#QIg3|fC z^d4&ETA1`jGe6X3+@<6zCW9qO)NU^a(T_9>q0eEGp`xms-S& z9HAWxlp_RF1=ysJ&!un5fDgzWt7wP^6KhIGYhjwnSVE5$v{EcZ8-r;U3Nrb%$$>|X zuDZs#$hI^xxaAPo-+uo!ph}@$ZmzfSCi?2@uK^WVGfp@Vz127yeIv9AhH_YhW`mm7 z#ih^~QlHcFYib_g%Tfh{Vlaa4+R|E3R!|2RiUAR3y!`<|d}v;cLoKV6?MW|}e*)82 ztBkREFk}klMssa_#-;!{Bu`u2HkyjLVQ(D52KfXP zxjmI)R+>6V`%o_ey$r^d3dmxV$>k_-3z80ns4>ipK4#Ofl_<$do2m*zHxw9>cknf+ znb%ic&a6@qOI{ct(l+tTMMHel3a}K{Pv?*u{i|R7nq~Uwr=L3gOtuNhOT-;ugXvr( zXF!OKwjH3&pW$P&o_N@y`94Z?N&g|K8aNYKG@MGDR1fR=hNNDuUm+2Sy#L*;O-|yL zg5W3NQ}P`Z3s?xYQ4~-Qhf(a#;D$@$w`fJM8rTU?jeXp5V^K2DpjYTm_$@T)hDa)2 zt|+C3r*k+l=?H}2=3nFvgFbOos8!p&x+O1WIw?Y!=k4O6Awtc;#buWRKGrE z$D9Z#0Jw|7&gN10q3GJ?UHZ7rTngWdeEf*-)6@cW+M5Q@7Dd}XIET_wOx+H@vdc=7 zzLIEV!u_+OWkIDf@nOQZ-O%~?A0M;&VDe+3!pJ0u^T8G?#Mo=1DfhxS1t?%9!`q^{ z54r6A>w-sN8ERe0d~Br{j+4c@Sk?TN=~(3gQxPk|nH$={U969v zd_tD2dRPOb{pId}npz|Gw3@38khr7EgP8_>1`qDt!(Po?YPTwb&B%75fM|O4gWGF|KS4v=ur{;Ll z5#LF3G>~1^V54Pk3-(U3kI$k*QvzyIqt)Y)x_Y%b$MM-Fo*4<2)hzg-)%Y+=5j}Hn z-jZ|^%HU|$Ij$tHk&`$YVwMgdR^dX2NG@b-Ci1iQiqAdy6Z(Nz75#5LR<_l=p-2QcIoK6xp4T zrTA#kP1df5KYjN2s1QOGJaj%6`whlnRC7cbvNb@e39-0eQPj4eiqn7BydJw{j=|Ig zHuFpqC<-FvSpzXFWC)}sK2)1NR!b*(N5FI%5KD(*0@?gkHgh9T6qOFqQ}RhBWJx}@ zlxVuOv7qaEE(3BF*c2MD2-kv>6c%qiWC{h7Uf%2F&L(rK_uQfc*zfdjS`_A8T#D|s z`uy-$YOb1(pZRk97JBo6EZPTNOSb|zxevYi=BG>UA26Siq<5+n0=u7OHhaeI5GR4v z+TZ}D$R^JPJ*Wj|2K0SmS3d(*zGDjXg;8W1lIsNXWn0TRfX=1{o+cuGQ#?iniu6!8%niKyK9 zB3uXlOsF9*)28T;;>5~HZn{4Pd1bA}>=k6+b5rSJACXnygnX8{*43-aE5O<3ulC+x zYR`Q^_-GJ%=-d(TSGN}Fv+Ug6VMbqDqf%a8SsuR{(FXhI=@ZjcSz|F^Q6a{ho}4qm z?e6y|?k??6ALn>+tgWqTR1?Lr!VJlJZWfx8E9=S*L3(LR(f=vO01dwg4NU6r^fuVA zVH5xG;bW4}Yv}6J!shB0cZnx~eGW(0{kyw-DDFAfME6<^Iwo(VT63+zLXI&P=+w1r z4PG1}2O^JCjiq2rdRD0-C8(SQ8HxT85Q>4YPIQEN$^eG={BW40QNWN$l+d6(D2SmO z>syA84R56sRTcU)Y)IwrQFc(Hh9txpd`J#wNkn&U98p|EIR(4J+AC>r-rfeR*Jx7Z z3=M}sQqdfYxX6mkxM}F+5NKV zAbr(q6oH^9RX5^E#~k27zI7DE=}6Y;O_6O)tj+|`bGN>67Ojl~o58?rmd%sQt`cRDC#2JMTK@9jR{ui^Ru& z$hz+~kzYuwQ&de*TQ>haXTc}ori=qN%OY>FFk6r~&b_BZpIgMQe#bEFV*Z|9FsSd! z5ev71!g1i0OA-~35HMm^s|*;4`L6G&RqL~A7HCo-Y3-nXpltSnb^T$qW5xea!Tv)`0A9NVMFY*5+FF4H)Z|(2X_H@;mJIE_Dmx( zBeh3}1vee$lQ9XekLCK3*9p{IzUmy2G}H?XULs^whNT#AuHj5V;>_M2lw+d_Q6wVq z2hbR(;C3B|LFZ;|W0NWWi&w7*rXC_8&U#42C9H=($b_^PGz=_mC7vGd4i7&0 z{Ih{*X+xEb)lxiP4H$-Hm83p^L;wmJRq!QBm{3|pNHQR-oan@|Eh3a}W3zsBMNI&i z2mL5sjU55h2y-vQcH{xVV_}y+`{DT~kDu&r-Gi>pih&_RmBQ;cB9tGzdrKqOb7!W~ zMYW;T=J~$UbBUwW(64E>i0@93r3=D7nsd7Jc9SUzn$YtlCNdhXudAJ)!=v474O9^I z-C#VYLmX22Ub~fW>M^qHW<@Rc9tv!iJ{TZsn)N~tD>rejN?R`Sec=G}uvLy@Ip>T% zI)oD`nB`-#G1j!l{6cyqCg%H`C4~SYq_`9fw62(cVil{F=P)modz?ag<1v1OH~o$n z1s)|)E45VZcY5KGU3Yl3E*RAa^WWX)WS>cV(RsR@Mshgi9$Jy1&ZnyIboOspiK>eu`{#wmJ6`K2Ni?0;g9X zFFpRr*rA!6psMiOAe0QJ!^LD-VIseW5i*ml5K(B!xQ10I5|E8dEi&x?!5s7EQ$z}ZchtS__t{fVo_t)X95^#Tf|M1AkS7}-YCjbU&Hvr1 z+(RY8#Z+AxS&tc06^&~gmxfnYT*wsK6`=q{%R*Rz#+uhYwLlw1HTRmE0Ljm#Hiv=S zEGlXOYm?ThtLtlFK6W#m*L-B>YN9gl3xnwF{3l=hjAIq_d}D1b=0a{(mfA-rhY(o0 zSDpX%U;eAd47kP@QPVOnSIDWHcc^d!~WZYi1@PJv{ z0>U)MKl0B6R+SHX5pf(j7<>KBbTCaMTo>sq8r$z;^&_RUa;3GT=E*qJ2st_RlYs)M z*_SKKCksl!3S|XAuE#5`E*C_>8uFSz2iNV#eDRW{E_N+r{krwCn1rxNjDyk+!j+GM zB*-LKe5{k}JCE*mJvOGT!gHc`Vc9P;RXna`Mz%vUAD^2;e2<~r0tJENDZfR1%Ax4` zXl-r9>XJUIcwd9&AtKSA>)GZL+T-wKoX0Pc=6fCbovM2*mR}EHpQ(S{dN|~6`q!D7 zEih;N)(#@hF?sM-ZgS_!Zl{!2E%avU)s>lG%)|F0CFZxx|K5{?oJ_JA zH0!p{f3C2g7WWV4@7WJbG6iEN@4=rL&&wcg@K|pVmJ<|M5*VB?urMYqFOFw{lzEuB zIGqm=Z361Y(ePfymi zH&Kh_#K4^bU=xbl&h}QgK}aNy6rNwkI7h6QqjyB!f=nNWE7Lr~-*v?kNv}w~u59B> zQTkwlPPFWWwHm}DGnE-Y+#=^m1}BjKmsWPae{y#A1t|SOJ^1Fk??$oUxep8@nGGxg%-eTRCmFqg=z;v%{=5G=8n-_G z{PUxIsZnx70ui$$-@Sfox`b!HwbJrAB+4~Tzq9Q|D-VSqc6~gIu^46HFovmG3bUAs zdb7ILCjRX2zYPOq4Z#-w=^uS=K3}F88@H8r@_Xdu0(zO0RdmjdNB-eJsmPk9PEJ7= zkTDBqiCQ9u=@-LRDcViK5=-(;=QW9Y%%qV=Gpty%RyO}6&TZr)dXb_=BAv?<_W7A; zimp>O!F%QDFa^i293NkjZ=Rl=qvA`WmHI=X#25JeD$Ax1o{!18IS*k9AK!yWM8@c> ze#U|$xbrj1p|bB1k8iT+LZux+(v^^+Zd#OaDZV_O!209<5F)J`9P&G2_*v<}BV)X{ zd{|^^I&i2mwBm!;j7EOl^;8;6b@RiCJh$2n18;Ax)5V0(1MVlsdwymB&J4ndPO@H) z|DT*46FoU#_!K7d_)u{x#qZ_eTMwyKHIbm1jvLKA4FddGlA7|(HK|HVn2b;$7GJR2 zJHr6z499sGRqxW*wlp`?!O{6z4EuGR3rnRL7xJ6ycnhGIqSqKbJrxuAf|L-!e59y{<$jRkhcRe651C`h$lLws&?pjG@v~QNszQLgEetzoMKuAPz^lIq`<7q~Ap)yIRUk ztECwVjXRsPR^c;1v+5xvDI?bWY_7IXVp`_szWx6DJw|(G6Qc7t+@IiT!Aw_Tn9s|* zZZLZNYLB1;VFS@b;u>Ujpz59NUGhylF(y(lB$2G_?;nsQaNk(jSNhMfqMx^wr=!TtgFYHI^2=^T-cPa{$T>Ma-N-22r)9SPig z>R>R7xwo>?<`(dWid+XeTRU6P4kR(cpSC`b(NMG%yM5|+9^BRS)$6wh(Q7QTmmb`^ z4>~jm^Sm25E_LADg>*ieUx1k6>eE--QB%QM$A@WMB`nfO zeQp@c1o?yHT}Mk0$B9xQpNdxhmbU9?`oX4h_UarziM;!VweEA8Z()WbChnxaBPc_A zkV@_H@ZeOOF3rGHIqj*RwzltxfIkMGWm>8ZCvp@LbQt1NJcOB)&KvXd$(&oZX)3lBKlZz~i#U%X$&pC^f z*=ys4>t*75Tn6T|2DO0iOWCcHDd4TOdKSkQjDHugn%P{GF*Q!#=NisF5MF=3 z$uXPzevFLCIEyb9ZjA%I61-fEswMV;pDzLpv9PnO*{T?e0+Wl~-Bf%mknVHtjVLA>2n?pOdvQ)hm?%D&9pvexk@Z{)} zsLI$q_dv7=9Smy8@?zXYl4TNRB@LP`ZCZI^KDdD4@D^B~Yup#Oc5JS0ZmjVc@7=#+ zAb~jEm#apVjFb96IS_&eSF&%INuN?bv$M0!O=jMQ>H?B92`pD)Lpn~fjm_}bDdxZ~ z_|EISy+@B86V|`_>KpZY5Pz@N0nh_kl^47zlF^x4#R4Zcd!sBipF2E0V)aSNuu}Fo z{r zZ@>8BCz|*T>K*h+R?2#OkvLsl-jpjD&ror=*svBi7ly#C66;(RD%qp}579cUka_S= z{5524aZOpmfMs+&7I17LHhA%P)*9 zX@p`bW^R7;LGNfmB(Jon0_cb@^#W+@1B8Ev{BomN)r|FYtY*bvdUAEa3jkDcfqXP| z0?=|tDvh+JPeg!bt5mT-b6<=a<>{K|jyZDj3()yOG$BJDMjMGXQ9_Cxp8SAA#U(Rt zP1Yg?rWUmU(q$*T??u?%0m5HN-`EI7W)&1riTA%}3({DVd6_AEB*Zq&dia2`RAfAs zSpqBELg2G7H@ex9XSch-a=R`{>zD-u43fNuG;KduD+6ugb3#W!4uQ?dD=>gZ%$hdq zaSta9{=#+Rvr;f~zGk*iaUUwh+hcp~#Te>6F_r5|g+e{{53*txsvpDQGwcAxHIn6K z_d3S!$4PQ|DBJo`0#DLNPV)X;%p0IfE%F!B!b`^Si9PAR`poui5BKUqlJZ|Tac{MP zT}#q=ZY#%bZ zcG;HZ`Wz8MO(0eWFm#t$5oxn@uCAdeyUYbg-QHN|51arQZAdfY!^sFH9MT$^NFr(x zh2`0O3bMg|mueHCjYz${z4gsEU-6w`d&zkleIo)T{j-s@G^{29yBxrFz~bdQq;sey zJbCh@*L_=v!WZNh5mR&}3EbRI(q|r=HANU%Cvamq3CP1AoH)2E*NI1T-DXp zC5wD(d-JPb|9V&{qf-dfGYY&qc);>|`hWiVul~b-_zyq(>Cc}(`w`DIg7Vf5vrxOz zz-8J)tR;~Q>2=-NzW4mu_tYg?VEL)r#kPBk0g>`d;i4BoxWK%6)=0p%d`$K&&NTDn z0V$uCu5PY5rDY1yUXIbnbD8k1ik-?~#hsdODt260`cB4?q1(H0E=j8HR>^9`R*VT- zib}_M8so4+H>D6K@Sm;E650N-mjdEBF()|Y0A?8`zuc_W=StI=|7~nY*J(5#`vB%l$#6B0iLo;qi;!y$7FM>+{{&93a*g&E&F4z zpFK|-+DE;4W4vtMx*8AH=ow+zh5O}=^~;JHZ&X$u6$YV`*fdUT@kum1qtjMm>$1V5 z7QmvHJ(I+5hl38krqRhD*j4AJdy4G7OVpc+PXXGPT*RY+YQ|?peSz&EerJvA(S#ib zPxM{M5M}GAb*ZLHMSk$K*83x`E0zjLM_vLix5KO1Xz_HqNIG0tMYAMUnl#hXks!f? zz;@jrA%JqnxVPk|iA0Lb#v zChISev558gxkV}qjqB#|%_XQxL0Hw~M>JHRmJcXrX*rFD*d@v*nIfrBT-x4TV-EQG z3d7qQe%h4N#&lT`97qM_)Slqg;;bT(N`;qFY-)|l6M z+!=}>h(_@r{m~yD9_~Y~=i`GZ6N{1LfLOA#v&G<&b(0918=LFMevz%q;};$2kup?5 zaJjrL<5)yQVx6}%?mu)|_WJc}=19?E0sxWOjULtvgSJ;MzC_6qG>!T8m^Rk{BNz7e z^4>YMRe?F}4H)5WT;k4JN6b2r12Gz5b4pH@N6Du% zq@W!H@}P-061S3<+DIJBvE1Fv()DcW(95^vtS%Vw{!RvlCN)%VFvBK}hUO9kJ>2yE zB`fZ7qT+eY8rs>ui$WwlPvQ&0Hd4GA%%Jq~uibT3I-ac!HMCM1fr);7)?g@C>rRtR zKJfsmL661R+Ngj$#+mtbq^OZf{?x2Xvax9tKIw}kiiKlbO6YhyA2YW`&+}5o`J=OP zcP!@xhrY~Wa^`4w$5T$8VO#XqCg0)G`r}>@+v$-khfYAUAbDNli$OGYTwOfCbY{y>*9qZ5^ft_L9A9 zYAh5`N#L1|<_IZ9ANcLNx9n|BPW%eS6V7SM+{~z5XklSUW6VtOM7Phf=J6y2;xsq3 zNQkr%t`DI_J733omlr92*R)II?-}QHrp86BCi0c5CUu z{X4rKJs|KM9ULHu3Xz5)sagnz9wn z#?W=OM!x7S%h}mEX(dN2+iG)tgIx|9@Ai_^plIRJ3hwo}y^kK;=VCtp^b;lZAPfSt z1{_Y(=O`Ec?#o}d|KJyVkT-ANvQGh=-yZBge)?#0XY>5xbbV_J$sJbEmtXxoP&?5$ zUo4w(Zm$oEid#aN^aH*EuL(aV7XuCSiWId}&)raP+YY6qQLb<cZL?Z2eVro#-L5n{>qs)?7X=421~?-c`(g%^78p?io}yvH&WQq zOgeT#np(`$^_tLRf`$dNYXc9ab3K@l7}aouPl&7sJMK}&;DZRB;=4&Ti?I9RKzyPVIguA$5o-Ojg}HO@a}xwp3ZDcL zoNv0Rz~zPQk!VE}dA-p85wudmz#dJWA_e13@5*vOHDOj0;%1m;OhT@Q4~9g3KZu)| z$21i^ufePsH?Px#KCHHixzyDX>aZFNi8z?E{BPpnn4yt$$z89Q61ogIZn=$I7Frw^ z;akEc$_%6HT7L@J(6PHaZ#(?udsOPCxYYRX&nNAm2|G#mL!*bgh`T$Tp-(I zj*R{%14p6nH1W~P7*4cUCjKTNSq!lnwvmz?0cT_L^L)scPfkE`PcBZjKl%9aPd@*Y zrY6}RZE-}_0c6%zSMJ?iZPaJ&C2FT>UeW@^5bBO|1r2JJJrdtJ_=v|)A-3-9)@oN^ zzynE*VgR}PdhZn;mJ;8FwKJj&YKDL?XMp_=G@1nYm{6&a*H8=R4sh`v(cs)BiSC7B zHZjX|^_BM0P3Q96o0nh?3g&x$a>^>D zH^9vd{i#yCl+IT&Na8!6fY;~39L zT~O6v=HAZPsGCHX1ti`o#Aidma00C3n$R7{)*IQMLft9+_bYtD!MOELY`FqR$SRz;_E z^Xg<|bF9Q|Fce_;+dr1(m0Ts*wWKPyp~#0 z{4UGO1Sy_NQcrD%LA(1%(D$ctCh;|n0*ykIMA!-;gOIh8!*a!@*rTXjhSr%74LN$q zD&8B-(SUS2kK7FBXamE=qHGsIU?B*T^jBmULHa+VVJ4Bos)j6d=#R5ba_R~DBO^EO zdLj(ou0ld{CO4)$=d_4b}_NHJNNt03-E@Z9EZ$>L-5~ zJ+*QYuuJk-#YLOb3AX#N%D)NEcKRMT!s zq5>+bqX`lACM~~y+??FPK{Y?j;`leP!_8MAgRevA>v4y}{aP;zshr4On6c6+(Wck^ z4jqo|&CQW!{yJo=j3NKz(@!2gyuaFBmbpZ&etmP!F)hY%i9vAzZJP9nF{r7_2qY+Q zeQQdQg4C63_DbWzNI79%XomR;234QuUIY#Z+5pf-)*c3fLdJz%5#5m zJ){nTW1T1Hd&-YIowc?sE~5vRhBsFiceb~Xf&s?3IKR}gY^t;B>2x+Fx3n!bM~|f2 z$LjjpCj15S)18Q1UtWxs+lr@aH8?W>K1hZ^4`l;i5BelAEIot=PEU^bCa;WW9(0hI z?%O%Te~4iJ_~VZcKl(zr^5ecMXOZQNvP>LwyfqZobvT<(^N zF!w6DRqfDB({z-44f1nI$k;_Q<;pQ?Hy;D^kdCFPq$W0J3;2iiDkX_W=1mp%P$(Y| zG=>HQRs8z;2IP)FqCsFF6jCnTY;4`P=Tra}HFsSsqL$Ijvo|6QSMQXm1;Z=j#pz30>M5)TMfn{*Wq>cmzZF)@mVQ{nBNwBQd{9)iU(pSV%2|92iYiAhkxgLLpX@ODEjobg0Cv8%v;n!8FZN zXBaxL9JJd5q-o$PC#Oel?^{uXEyodtQx8@(!{OArG^*zY+2DmA0oo>hB9`~7H!{7_ z!h#;aBI>p1beejz30uqBp0jZZ+*Z@9MRQUGavc1LO7MY&Q~Ws_gBoVWTLtIohSaOmKYjeD{rKq*&%Wt(&xxB$buyu`)FlIdAKNfCpS`m5zs4i; zdWEA(in(GhR&qn73xrqU`<+NFH_F#_+=~mL6-r`$ba*TS$H^?P(DC`jNx77hUSlj> zLJ$9uv^E}A#083G!}-P8)%h6=&zBbn|B3KJ!pkdv|LjNeXV8iAoC@4Z6m+BI*riSC zrzUyV%PW3>xB*x}{?G5C)(k>i4XFcRL6_IzXV8IN%}0w2J>R|76b?*zfTNo9926C; zaK)XJ81L2jwp1afrZ(}xNk`;)%E1`mA+fb{Egm_@7z6?5Vb7j@&nxhzN5|(HIh@XZ z{_~&zPyfUJc<0`|fBkR%>{q}3n>UAVHHwy>ZEtV7E=LLZ;r$0`a>dD|gCUxKmB8vnv!px(%rfuOOR?&AB3&|KXlGS z6YaPd)b+py3u4I0TUzKPnP>>XPB_n@g2sp=$x8u*gSY?()+HE$k{c)g-_aBqOERjX z)2qF=hi4Zzcn9Gto7c=F!&*QBHHs%JI==s5Z!jvfSGUpUA&nT0@>kab6rV{|_!x{k zGdg^8jale9WWPFN7EI$XU(tpZMg$y^EKoLz?=_ieQea~n3yeg=ktpy`EigNf<{VjGool9GXOt1+1cr@@g=wuyeNztU zsxE9dRkB@(XyfJPaiD;zGUNWp20fTn=iFeJGlOJ@&m4?P9$Vt*7Blo@h9ipQ8NSO^n`-u~< z%Cu}Q561(L3pf__oFBgVn)3Gkoox<6Kv0$tsx733!4L(_fbt>Ta?p~nQL2f=#SLV* zaUw4|{?q%61%I$H`HwN@Fw2eJ2f-AHM7)1k?ve`=nRPVoU7VlZz)-<^pitb}+HJPi z3bI%zz)L}e6SkK$3r5uuMsUMPSoG|MUO-ABO;JK$E|WO)XW?oTim` zadyJ>vAb7RR}fw#6f`6)&h_LVE$+S9Z?u;=!Wn{(X2=ZjS=P!Lo!;PV^YmH$=VwHT zDFzrk1oYact4qsd70nW4-oo+W!FS($ z!*m4qkJg)H@;V)w@^E;TT5V!g2vI?rXackVR;;dV?H?YmZ)|@5;`vX0_QkKh{E|q? z&&xA*wXGxN`nbKh^zrXK{4an0pYCq$uC(i5TQD^b4h|oE^k}9dA_u)wBW1i?rG`KU zEB@WV!TEKEn^UZpVS#-9voAL8Y`=W>?&Jb`S^jD`yX;NdTX$Nk6b<`$a=zQ!`^6vr z;o*yeKGG@mrC)sUhu{3|m!((v;dKAr-+lY_^49w4)ny#Kxzo!FMmLf0 zgjJG^)Q;otq{tEW$%yngv|eRYlfP9>*gmJ`O+@x6O@ z97jw$8;-sD-W!H=RhwCJ&4E#8Kn`b4S3QH?3yO=OH-W|Hm*r|EB?wsOF(RV#99v3o^$cizRFL$HQrjAS_>8w-2 zRp6ACyQt=~o0bFfyb|?}4)9PR_Amfo(atg!5|2 z?LL{+EgCB)^fo1lNy%V5&U(e8+exC~Xf6|aD|IrhJioKI!yvDt|tXmKdv?TYp zT-LnhS;>DKtEb-iSQf)A;Fkb}uDik5q&WuAveZIDxS)xF9J5O;t*SA@Hd&qFNJ@Q8 z-K&6z%1g6uj^r#ppxk`TdkGn?$*jlb+NfFM zw-kp?_Nur2*wh*FFPZ{r5|p-BE^KT9A+)%P@&NH9q?}BK4x-pzU9o6r488T_$0~SA z^3Z{s`drUt5t0LT{`f;AdP@Akg=>MO=XHn!GlOM(>y*+QKh4|0-@s7a?5`*{t3$@R;qpaWIRD1($=Qx=v=n`oZz|UGiVRr|`yMw6z&k+701J z=}S0yX*{(hdkOnW3O7d_WZbhNp@xz+H(|kxR4x=tSqm?2os3!-QpeiYOgj`Ev7*Z z`S1PS+k@HhwC}qKal>Y=BK(U7CLSY&yAc) z$P0=L*=m6-iHB{URqof@w|k`9yjgOefIpLHa~32>YN%;)CvgBwL}6p|TmqBmJ5HH5 zMomMh;XseY1PoERZX)&hV10Mz4snEQz&Md#TWJI2G1@9!uZ%|@^6sovULVd-xMYnD zr|=@25mb&~`TbBA1?Y0*;}(o#oHAm^in3{d(OT`n>O(#wfz$@=xtIoGi5oWEa_SB0Gsb~rB-hA*`2+pIwNDy%W#@02O-rdhxb9eWJ!aj(?xDen zR!{PBE=7u}NbbcV8YCN2q7R4JGDjGN5lk4CJv~votOU)pfl9b-L)bjR+y!OQB=4eo z7xW3DN_}GABiXr%M#NnK_m9Sd6dH*5U?r3(EH~j)oy!39RSeDYg(R@AKfplG%NI2Cj;PnmHcwzmXgdUR9eZt)#7R{ z0m5(wZ|!VD{g!akP%`bF9Q1S#kDCq+Lz@z>);iTTcnqM zNH(#matf3PMY-u}9_<~h_&Qe_bgz)q*6iTHOG!U>&_6jn{^ZV6-h~%r9df}a+hmQv zu_#oLH4=H6C7n;BFez06!MpY7$4+yv_ui=57)`_LgZxa2kHMU=W?$W)nc7m#x?A5e z%^(+ELb<+|m#De~87XAr<3kwjp@l%!VvZdDCz+$sbapN|6IMtk-?b1X@B*Gq8(W(M z>mPpjkwfbb{@@Qz|M#~oEUzsyB|^?iR>b&1 z4~|f|b=FfeKBpU%%up>?q!teRwNCnx7dXo-Vk?_$%?! z(tab*+2F}f-C3uJkJhB5cLA}K+<{n6-b~*HoJc|r6_lgbcy$E(MO?Y+m?zs>UftZ< ziC|HiOqC!smRdYQy7??7daekXFSl2jke7#HQ~E*1F?`;*N=U6|i!z7yW+%ihrjgsK zyJh)%cP2>?1J;N=LKnWi;V!mk`kSpK^EyP^FO|4gHdZyUuxQG#4MHqBed*`Hm+WTwd} z5sq0NOD|C2uB~lB?-DU%24Wx?nrRE53HXWuv~m1u*QVjzM%I=@=9itb&pZZU!jFvu zy^1*I!tQ+PNAG*mK-uh1&%A~^o=&b^(jN=#%H@L`=zhVcv}4nCeD zJa+bSj|7YN?S%m}4+Dc2(cm?^P%DIJga%?tY6yunA5>``WegeV3_uY@0w?1Us5HR{ zA500UtC6muYuGPC#@T|K7iWDxDkqgrB;gwBSzTct_6HqKjZW`oc+h|P*<;2VmzDsy z8{Ke@)1<7{HbF@s0gO9tW1FBsCl7u3UJis1{l!ZuVHC*mQNRuMHnRd<{#zBoQwSrZ zVD!zvnLGA_YqgsY2q&>g`E-Ulj27@$njyq!3}CM=&$%H~E!a0&dz}@(w#F=R&v_5s zA>eDI*1r1s+kgAd{tWTUS9^P3e)-kE`d9w~q;db-qvE)HeR)GFMSGkc?7chpZ!XTc zVO22gX@OEBXmsR=bhAq#0@%sLm?@QQuA3wD4F`wceEr?iPd@(P`HzDx;<=r*&5bX= z{IX=04~N*(r%$u_^7$AZ2L*A{{l+vM?tij+Z7MlKus4&nGv&jB@^QRJ(HiRQ(CS$^ zLXp}l%>Jt9FwVbt^J?eLE`%g{CK62?=dEH){lHs~Mn|kziXE&z`9(50TX`AukgxQ~ zl@nwmDpV!hXxGS&`-Z1O%0@r7-Q04>t_H!a$_cK{lqut}ral&Si_4 z{Ltx&%-$H#V=Q|B(#1+*PiE>r!A5tNbi6-{NiLs>t^^aNp;jnSemV#aL*0%U$wh>RhIt`ODE6`vgd>DRDEW_; zQCWa^9!dro7Wg~urpSwBkSl4@a0=0p%yf8WEhH(7gr%g>(-4w;Pepyv3G#z)&MA_& zT*>KVoY}qn&uWCP#To=RBbxEwFW{-iC@$3r;U+f=uLP6G8=DQNOfZfnfvk2l4=95< zcBjCTIdfDTsvMEGzP7oAkni69J_qSgIx5xnQhjBq!f82>1IBO?daXoZw#>odAu&`Z z7&bB_3R9WEN|Zj*BlEbF#7KS}5#SMX61kY~^-W;It`^#am+j3BwkIS0DB}VG!$p{e zGT3m=k;&?(9Vk&L0xmMi0&Y{BFuK-+^? zRcH0O6P}dn?D5u+Zn&p!q>8ga5ar%(Zf}5}9338TZ4Vya6RPw4`NNN%Zf`eH#ERpm z#84PG3+e2nUIklYbCNqS>-5=AKKtpQ9 zGdga?zzt(^XQ2LOb;Sic(bvbJi)9N(q_}V3D}n4L(xn@_7&0=;y}9(2YetJ4n5dd0 z-b|*{gwBn)Mq1o4x8+xm&@rN^b<~8Gxwpw%gD;9x#qnZ^0XU;KHjihy2PMCFbpsCS zd58vs2bBnR=B~7wvcL{az*@Pn;o>7`MO4`xUmh<)teFXjJYcJF?ot@BEhDL)NmFLp z&rVZ;)Dxc;JeSoqF)JWb#vPM|SW$X7Ww8s9jw-7zA)U|M2^jO7x{fRvbehcGb6EYr z_wKjz_k2bd`4F#9TEbcMf6qbhRxdNc$|O^7p3W8-_j67Ba%gQ17nnSm<8IuyT3QU5 ztmYsS%hWFI%btm*{drI#=sl9|NgA)ULYijRa*k$F5Xb^yOb&X+p^nA#BxbQR*-{SX zsAi9tgB=aP8A;ErrG9X9#Lb?puT+bxRY~U5ut%*`lnyA|kH+jca&|qV5RoN47ZY7>?AP>kk+;j>ejE?nr$J5?uu-;yU z*YS71`TKwW@BbYmwLiT4krp5iV6DCS_VwG9r54Cqw0gL6EP&Ch9G&^1cx!?y`%?C9 z*6K#yX<@SXV6wn)u?Vh}Yw>X{SvQd@ChbKXjZTQfNx+Mzqi(M^XZ2Q6AJ2*8;yO<1 zU`~mw&XEgvQNBxqQC;SpEpBVKd&qBaanl*YxF@7?8WR|f@uw#eGMCQ(0db@tRv;{D z_WJB>|K-a)3H24qv<@JgZqOUT7AqVhm9Cbm?)O@{({xYAmxP3xOyW*&xB@Bo5^*^D z4B+rOG4AilBgwV%Or7$Rqu4hfQs#yfySx=kRa3_}qLM&hvX-8A9f}rz=fcc~Nf9{} z?29;WIy)V3lh=|F9!GZff!zRKwD&8-T#VmQkWshqQ@KCxc;?VTX)YjS3@dT|eiDR0 zT}_^R!D!}VLO3kx0!9vDFcadGWn~}nulo6VBNuNA|1I|Fm4&qAnN^Vb1PlbuP67}& zR?^ckvCpYLlNA?dDwZBXMY+#}uu*_cEQV$BHTnOkal%d(EPM0Llg7cLotBp}=M!0w zOx<-)DfxS5*^8=nzipkdV8!R*vRUeH`xwp~Wvw7DR4B9PBL%z_ou7$+B4xz*n&hTw zq$8}Zb5UwoN4cPSdX|8if=2}6z|JQDBA%~s$Oi51DYtZ>ekOx6DDd}CBLS4+ow-Xq z9;wUq72m-J2=0SwA1AD;7CzY~w7on_kcO+QcFKiliScnpIV8z)uQK+Iw{K#8zJuUXEf^oC3w_?A-RK9 zE2n3Nj9PFEEU&gJNBcx7(ok+fn4QY`9p?}VpiHGMzKA<&2l5uffvEJskD~NZj@%hp zH%5F!B-!c>uLugD*lRPFxwCMs35$733*|{})Odo_J5JuMA18G4}M6Boh<_gKSS8w+iW}uM5a)iA0@a&j_{i1Vu_x@w96_b!1 zTn$G;jd-BMNqBA~w<^9d%wSHCo<^r1!dxQm0y>#XM!&bYv0R|W;%87I#v6kTMt=b2 z7)Tjai3MFPZ5&IjVJ57Xduq2PsDTU&s8D*1^(Bvuff?Eumpdq7w$pRDPatM9p28C% zO!G>$Dddyx<_5$SyzX|NJpOoVbB7zj2Ieto3g)JxDN4rPCK9XRx405C95}S1PnZeM zvi=yfl&WP60U3Nq?q!Lno(a#!vE-4_VAs?LJ(8$}vD)qW+>Qs|h+BL#*9304pX@SU zuJEQnOfzM3OR3CfZb$BFy4&nH!h2c4(M(5+=JPXFM@UyY_cqCbg@4_doiX<$qT;|L z4*2zT(m6@jUV(QI5-#0Uo+h#P?BW8?GdE)u;+YpK zRh9isa|l`UW4y!NyZ1wsD0dV6PwyFCg9pS5p4@O_uiOt;6f5Q*J-DZnl^GTc9Sc~RWkLSXtV_Amw@}5J*(=5EW!{DV{ zutU~FazM=Qw6Pmi!QbBle5+dy6hn8E*hdaR zm7tQeBqt4G=-d56Rw)4+5N~B|qgkt5TwPWfuES2`cJEPg46+%EWH;-gsTnRO;;8)AdcKL4U)r%LiwT+w08>BAQceYmBYxH%g zXnCSHrOxW=%5~>BI*3MnOEDX<6!3L_WoOOWR@N{t-oM}WUwxhsa^er>AG;N^(>HmN|Cwj@*5os9eUkw_PD}>%sB) zS7tgK@;oe;h740V%$r)f5qOG^Pw~YyMEGb#E!>^YnhxE(C76bE+}PqUoIqA=x7V}L z6223n;f-XaZ9!B3JBkmtTWN3;zucoXBz>!=A0`8~2kCY*uN994xdqCnF)DLbjS} z?+r&^eDMVoj+@R6qza;gMq(7^*r)o*qoc!!J}NvZo!l%B zfvY@9BCB7atYoO0k10|AnO6XD z@&RvU0>ULgJ@khQ$ye3hyhSvs^+&(_NI(MRmJUX! zq*#z@;IjNL|LH#xxGSiKGGi=``L%mRl89MZeevprdtgi=U~-MMspqlR*Vb8LxcxQW?hzjF}0UMHlm{eLGjJkGZ5DKKMMZ&zyweZ$hFD$RX^V?^s@C;cV zsJ%1qrF{9`{qKMLfm53EU@AL6Nf38?`qZrN>zgax6BWIK$#`_<&hGgY4I@&Hi-(Us zLf??P_t~ePzIyeNrZl7p8V`-7>h|^qSF-mOwcg^p{db>!{5h!D@zD{f46;bP4#g$6 zRA&@6CUwmZe(}Z67*pEa+4iZsVf|k0^9rK7Vm%_YSRy zAD;d2;K4)AX`%=b@zJA)CC%PLQR{M(c^7mD2EDKsz^0su@EVew=fxQE$TX}0+6WV- z%J4-nGL6Ino}utnb`%TczNuAM16(dfl!+0|sSJEI)>SvPXcp{s>iu#cM{-ps-VTE< zFHzs_(2jlVK9YLw|H0ugk($4f1}0UL)V`xG^P$aM15I`>mjl<~&s*9&cVkM)S=8If z{?Q&cHJq~O+{UX#*L#gvqe0WDtXLvC%l-~#QEbRcA`WFkeUUzU5Y!5k-mC7ZCPXX2 zEOsVKHqE}P&e|N}4I(XO;y$0u%DRwo`^a(M7((LS5YTyLenyVQz1~lM`cw9pKcI|t z!lNq2aVwUIpSM-SPj_YJ^G|?De5n*GXi5gyobuDH$croVkEC#Leoh-hTbE-Fy(+9s zFrUB#7pwSgkAj9}-GR=91unC0Qs)ScvMjrhmL~#ucGp%O15WMM=k@ zLRKy&MlrVqjkThc@SCrG19YIoygK$h2Ow6VA1MOq%kO>uQ$5hph^^s)@Mgqlvj9xq z*B`=gMiLj-*C+DwrSV>|LJ{p#YI^Dx5~N`9Q;64L0(J*o=_O#7fvWoj@QAqT7Z=B% zr(DJLiNxPMR=W4*Alv}69aIZ_XxEwK-{9 za#Ek2onVe#51&FfXhl7>nH84k{}UEWf9OwzB97)h^#wJOMkb_jtTH)Ho=ynio|6aj z%0S#yrDRH>{VNXW#r4HU4!;Fxi(WgnI?&ega!Kydk~UR4SiX{D3vP&FJDMcJhX|bng>jUDU>!9N_ge$Y%|<8V;wN2QC1{Lq zhO6q8lW`4phF6yJViOr176a}mBt1XVU^-IW9GUFleo-{B)H5XA;Po>7*xs;^0kRXH zH_4yV^907+(*R4-tC^D-25xA3Ww?9cjv$9l0NPJ-FOqc{7EQCVZvz**Qit_q& zOo1~Q6SoC|R@IdDdXX1dr2+8v?LI~ma0bFJZ1NtkK6lAT^G%89m4KQg3ibhMa(*!- z`-2<)V%z)VUOXyNTwWBhnG5J^G0;{@{T@Bg@~xi1Tzn}5HuG{4PKtZk#Ik!T;iHXe zShcaS@%YgbBpgV#2%yxCz_L&S2~W(*%Wtw$Rl}madVPLIznR1Shx=! zZ}v3Amvqs{=O)p*&;p2h)Szx)rK5E|X#4k9*ETyB@+>>R>ge8sZ-00WCI}g{+Z!_frTPx) zQ9gBFv^PNr2uMQD3wc<#3`-BSit0|z+%IHon>_4RN~L<19JoA49^qbMLOmo4uPm_wO(z zj(Uequ5$6O|MpjM8sRXbuFY$k$bW5l<>BKe>^N4HdRpNo1{shAfTm4E0L(1wxkxnG z0PY7?!}(>t zW#rKzNhksx$3NWwp4Q398TkiL5i^VyEAm*ri| z4@0nKln*Mg#p+ZCbUivzaN`U9liUe|Suge{cbqF94DB`Q#*Q+taw!oay{l98kOplM zC~Q8vf@;s;r^4H`@`%{aLHQeFzb?9O&_}ID1fKl zT#+pyB)}tMvH)HL3xpNrego-wxz@5eG3(8`V{uHv4eR>7!Zr&`pqx2YV@3hVq|D&k z+91X$HM#;_Dxx`|V;1Q0*v$bMFpD$artTbT2P~m z+S|5 zmXHOh-FV8xbO>zs!S`0$w>~QQqU+|qLH4qp3&~D|F%J52iV&MSr@=zyi#cmIjic=} zk19nLkcxnOGCu5vFRCYn{uW{<#Ou9a>M02_g4xe^vUWXk@yFMl*1bE68s9$^NkP=EU0 z{~KVglk-y!LT)T7Y3C>BpFRBqV{v;U?{4paukdC(dPf5*vyvs6(Jm{J{xDa~gK6;~ zpr?_89v_{StU&9S&bkc0H@4htQNzeg6~8F#8q>0K+2FO+X+Q=!9(0T=-7eQ$qs7^x zL3SQ0HO@?9s6ezmZZR{v!CKY3@KW;fZizcFn?v~?w@q49#OM&Q(F)_Ai0omGx=bt3 z3iaY*)-rCj&njM-+X2+bhf=3ItVaQ+IOKMNW7OrNrF*&r(c;8NFHL$%WTUrZ*t=ebB2-xk)C4$&K1)asn2tLSy|IbbvHp zJI)eMKV5>pgk@y!x#T#)-T28*eqt3_w`$#`5Una+*%#@8MmJD4H(YN0>c;MU`l4S- zYM#y;_vo$c>GPm>-GlU?(|0DvdOPq5uLEJ*kwO~}!i9on%BRes)K;U^HJs(@M3`Gg zq2Cwd{sGI(?JOFx>`#&}jw^UoBnK(H-nyyeeuw-(y8jEV*|QXs7iL@+X_2`U-xqP7 zBw>@vf+QUrMdYYh$R#a`R2KLLs`*T$FK-JCWkU)@B_%^}aU}D~K!Fa_N_{Z1ZXIH3 zERva8#{+F?tEjUcIkvy~{<{}1f27H@wjnK9PSBO5FLrkzG8`Qr>|b9`#Z^Oncd4cG zc&t2SIPKju;HH4lU9E4l@7|Zg26M6mFphi>nl3vPb82Ker^CJdcQ4+&{&e+o!W>dV z0j7;)w2~`HL}ZeQwQ*HM5IzmELvX`6cs4)Z2E%#r@`q^TsspL~w3KNVdVHUXT{Bqd zLA9!u7#XN#fE=lga{xL-6SmgZm~w;tsQ50mwQ~2Si*zuMAexnUzUK>g1G5Ekt(7&x zNNH9^Lzn!6gCh{mL2#=w>eoa${n7$;dbBeYbJ3EKHKGx<`u_Q^nX}yIs!ic<{ z4inXpY?KP9b5~GiBuza$KIC=UE6Y?%98Jfh;oQ1h;o0-&uyKB`{luxB zCjXnw5Q>;V>IRMBP+?~g8K544dU4MQbd5I0vJTo%2g#LyR;@$`1i#=oF-!BG!Huzl z_B3rgCzZie(`3qA^$>hR7!%t#Dth5%VZ?mOBUW*-wn?~r{pt;gTGVDyC|nRx^}8F_LbLz2w+n%-Z^*nP_Sh&SpOF$vxjhXmGL_xL;p7*AYV@mS|o; zjKfR>*m2e_n%uJday}U^RHW#Uy?a(AM69=)Xxh?A2_U2K#aD7N@vTeJ;f9!;_@@bY z|CalxVceXZ98N#Yt0U3SM{6s0rpKvU5tJB?B|a|-8}?ZwO*3cIv_Dp@4Ddu4x?!EM zy!d%bNc+qS>)mQtcS(Xb^HndRK865R-TvbNWKGT30Z*q|bWG$yOTkWLCv9ff2ORlv z%#X3?qyRUMh?>GIAP=OtWE3uWaT#t+)eJA1C+2KWeL5+Fw(^0ZSc=&Fo>?Iaz8?(z zE)K7LFu9tBo92Nymoy%Vx%{F&LGsf3ZR9;g`Sj=)&y}R2YWO9Iu)02TA2=N|UR{Zt zCY`dPl*cHOD7G-MQ^m_5=*l{1Ou77&wYm51?cUz2{rx?17Yg~e@Ae+uzyEumJ^gZU z!vWAmWD7B$7Sh>uq-7?9?sQ^q!VHk7wfs59Jc3{Jx_}5P?H1dY3D$b60oroa?YujB zSE`qx@pY72gFH06q(wcbH#moNsr2ni)k#@%j^t|97!Yy2_-_BTYu4}ut+BQ8p~GX$ zeJ;Nv<}_~_X7Ief6y*CL69cBR$`2nlNAkSQIsb^x(1ZbJ1UFFvYt<_x)&%h%U+lG4 zHl$K1Z}CaJQ3%aAZZ+N@1x8d@9v+7l#iYpiOT6m6&{S5pPz#|M)Y3L3|fb2Mr7vOW5~I9w11?nhY{)N+5JZk z1>RoYgnMYdS;QOUyuAjMd`fqXNAvXY6D|xk&a9L-!r`=lZ7NGFtTi+r3YQCj!p$h`t;w3z%HjS>k9sI;s0?|S7Az$uP@Z$9+;#9`;5TsLQ39zY zhcx%r@qS1;w^^@d4rOrl;lFV%k8I82S1B5KRQbsM+AH!2qU}R;d->u8T1PI9$iv06 z9t`dCs~+G@r?{lj+F1r>6`*F4eGut zQ}FHK=Fv{5sEDmlq-RMIwCq!-C)GVwcr%HY}O)x9S3} z&lb&rlYzk^t$wjem@Qy8@4tJ7>MWr4MV}v0GRzVMK&eKdS_n#FDK7!6uYdEariA|U z4<0YqLR=uiIHKgG7`$CodTj^E*{ z&e#c?sZ?tgCp8ml@vwgK$pc=85KntEh>sg2BlP-E0wB5m_J{9Z?7imCmz^ur{zti6 z;}NGvF5vKyQ&(vys+e_nm`0RsK+HyHz&mV#rA!b~LX*(79))x^!QCx185C->Oud0< z#H_6@5jwfk(6R6goog=5JR;IuB3&KAW5hoLx7Q!OfBy87Prv)&xyZYr*v8``CgVdB z$(3R;seon4X;&W8&K(H~Dzxdtoh{W`te^dT$o106;8s(qcsx5l90i4R8URtul#GN> z5p7iFcDnW>D~IcP&@OdV8kZT5oTa49vnT`2cLa@|wW4T&~U0zOAwx*m_<5vPn06-2m;j}$0DMT0`M7YLx*WPULY=$C8oa7*U z66#Z~LHm4|OY|NCg&s@crC4OMo&;%SU`s4G@ev6nM&&#P1=E0J(-a!lB|rw^Q_-Rf zp+uIiO9a!0q$n9Q6*nQ$@R1q-0R-j8j6J`mD~x1A>RG4MICY?R7H^EgRf08P+~4M3 zqxakA{MR8eo*&7$cQ~#MwShx5>D<$#{34&d6ir%R07rNb;qzV=(Z4NfR4a}mgE@oF zAanuoe5eF6-izQ`lYenIHn`zt42P>Gt#(m0=z0hXm*;676XZ6skHh^v3P}zWx=cJi zj*ZjHrfrM8d-+f-O_a2}T0B!`Kcn%CzQ*GnR?NIAmO?F~P<|_Mes^{$87QXs>$UO2 zpzjDiOlNao__@j8o`0u4NV*8_!-slFw&2Hd@L3VybH_tWi5ZpZ11C)0#+hw8CrzQ= zk4VbuWn}$pQ=G#)yL)*G26GuX>B`y~`iM%-!i-ZjXs{1xC4KYVHwVW@w>IvO z^fPNP3JFioUIBAkKg%;8JmRnxfsAlErFbwClIV5YG4ka>AvO_@URh4FAsi<13~y(r zL^5U8TvLu?;P$Pn$A<^p!-FI7J6JH&by0oj-(qE6a9kQm9u;L=5hy&tEXWUahaq&M$xV`IpaM z?C}Ec-MEcTHASK&Sut(`V$HON)ze2{<#wld4qLR@Yds zD9}=>@F(IY=VyqN72J#sLD6P%PagB5dsa%Y#_7h!W^mY5B2XEaKNDz1KKW(G!UxtOaT(3ZE$a#fBRhND6U9S|C*hs71X(8c@=Qn$2VFQ5;CR6k0u~ z3la{Ll(`&T9)v)7q9oM0!294}%J~;%t|=+h^Pk`z{4PJgvb4kmM7>s@n}!*TY2{+A zT;uPvb*b{Muc1!f0WPI)T$gG_jqc6K*$M1*_`Js_$2PO3U4q?}tg{EhrR8NNQK_%1 z8b0dt9Iw516{A#0>wIl&tn;Va26EUeS4^xTO^DR~l(%8ZGA5Ag2S-Qz!0h6}o%iqX z`&8ZEeEaa=P&!a|?%pASx%nENh7^a3OS6w2e@PpT>q2q~?2%1Ti@_S&OF#R` zPrm;So;xbX2MUZ8B0O`x!&^75_j@gZ|L_0#_jF(X@-P3*AOH9T*wJU7eK9`+n`WK3 zhg_Ka@|HJdO6709{N|Ux{1yED4tpN?fx+nR{rms+-~Lbk^?&)_K6?1%V0TXo1$e60 zUS3@yNdZowd5X!=o%9ONorY?X^mhFuo{~NU7SKM=VGr>Ga z&zKmiwO_bpWU?uevAmaoj^qd$lyGHH9@pYmXc_TOG`K0p{A%V!IYCZ{p>^af01$Jw z1FIU0SW=c#cmU57Y9wTy41PXgK8!&2EA>?bwt^T4{tm4Q-{tsH8P- zYNm@G*AOD81pmj%+A1pb^O<-9a0u6K}(bFvibb^OMaafL>9w+A#1?4yJx1i!b~s=dy+PuTBg1a2I$kx zDTcB1aFk0q^1J!_kLKEmB$InbeJlZw7J&39@w$c{N(39UEkP{=-6xQbULbK zr>7YR8n#E7ZjRqKH99xFgtF#=y{PIg0vc2{O&|(;8xfLXvS=SkizRmUP8|x^F zi>9^ndUt(oW9Q{g?1j2@I4ao?b(_N=^o#m1vo%dhX*lY7V@6fINXIdzSY^_*xG-DD zWq3<^5Ydk;$Bq_G3nWY;=q+qW%}ReVdTTd3xorL%@_R@hmY0=0&0q=^%`+7}l!WI8 zFKO=a;F5GZj(x0sDDb@IU;O279z1wpFM)c{`DbN=bzZ@s5S<>{H!NR zCWn{!V6xd8ge6EpYRD{pTH$oCAydpuFK8;Kr>(fPwJrB7@#u$zP|zNCO{Xn|C`Gpb zYCL0Q$b!FH)g<71b!-e=IQTk{q3271e-@aMW*h@%(50J2wnkEd$3MQ zB(FR{4k^Ttq|-Dt#l9u=XYZxsAyivEUQo99^J%D?0#NwypeyP=hfh17rap=y&gSEF z0GA*mRj4t$i_oi7v#_LO?~pI-?H$ngfME>;PtlFOzjWVVsWM~EU~uo){&R*SSPz+g zju75T0MnGYg*ZO-p;9x`*mttNdn<^?eAAD7O)3+-g_TblZD&tWuJQf1MxrM9GjT!; zCk5qWs4C8+5>%h!Sc@jRT1T`=;?3k$jo!IJ|CYftnpo@g?q3>ed$P8dkeIe6pY^NZOi;m-(4;g=j0;bGoSk z!%6@#@(*@_NWeQ#*K;F84q$>2j;vKK#q7DIoaE2CF^SoiO{-*71haU$NMuckZ@0l` z_(jjI^Lt?TCuj0d<>!qUGuHLR=NdfbQ^Kr(YlI}xhxb2-r1`{bX71{f#}A4190LH- zlFrpoK%pFb$iPpfvzCii$&@E2of3-hE;hfQQE7iic@-vDQ=?%Ck#3r(mltgN;boK2 ziE?n`;7CCX>Y8}NA_(2Mj!g_Q`3O|)7Z(GVf*l3J_XO68ua%ryeYqtNnnm-(eWLPG z9{o=_tmSc%aIR_N21B!Pm8c$kPT1ksqt%{x;&=U9><9V3gub)W4NDGrV;cfC@}B%T zotGu4fJD&bXLuv~@0hq^k0&2mNgO|MlU!aT>P3p<4#dvWoiCe6<0Q8;@x@y7E2l{% zC)%W>4&@f#@Q3wV#DO$qo3TASBFjCw>;Qd9HiSD5T@2d1)XLfovJ#>E!8`IKgv9rd zkF1qYfMUJ1mBnmiN`R`2}mrEEF`HBQgW2206sxj<+{mqw)vl_}r8^c8~DZC5@qAkZ_aC?kR$KT~9%cAXzR!cz+l@PPW z1tbXo+R9ZO^EiqlEK?}0u5UnRTv}NsqM-{3S^$>@xjY6e~g#gV_;XT3}gP{LebhZNF+grc{*g zBOQnW)$3QgJQu2?_Av)e|MsnWJRxP)mkkpNtp@Dop*4Oj5FZ(OKI!E$XXXkhni84% zISXQJ(U)1E87U(Fp0P4tV0ymm&GV3MFh;k;)P4%m@HgQI~q#In!P=Ysy zC%BvXb$TGYj?RGU6rN{1##Xz6mo1r>h*+b-ojdRIro8Ow*)i(aL5-)qcYziW-Lw$t z%KPBSq~CI)u?esq_JhY#2npy+QQ76W<>VRGEd;}^J60{udalMg+AJaSReFASa`$VfA$6QwDU34 zGBrI{;!5)}6G1c^-0|=jM)C^l5VYY{d|8!RC{ww}Td+1v|K&3-#MjKMyaD$1cGSve z6qT~Jpt%cT6{e{Hq|7qY^v5s1zIpQ&04|s^bD=1zLCnLj_W0;*YwHR;B3e78Fo@=V z+?;U4qkwBYHXJu^>0F4B8UuuRYNVe7T zIVO1N5PbRNA1O`XGR@PWXm;p%KyQ8jgZqE;H~%|>2*~DemXJm(c$V^fO#&f~LRj9I8{QrC)Bf?irNgm5g7}V% zQ_jwaVR>AOQ*U6CA=N<70X^0S(edQ!*G4zl+lMsbmNp3!h7J1F^s3BL* zi*h~8wui+f*G^w0?2`<$SY+5-DSkDkAJ9dh=dS3s zeq{|ZFBcES5>1z)iyOq1{Fe!36%|JFv&c|a07(&93@isQr#W4pC+Nr@iuqwVbsg!q z_#7ZF5$_Zkxk?q(mB8ypDXYz>;-cTPQM*3%#bA)CVqPZIz2T4M>7yTWRh^8~lW@6F zKA-Dpo?|#E^FB_i-=e_B={rp4aVSa_0tFoE&>HI>B)_e9%ZoR!|HJq4Z3$7~ffls# z1`c(=PaIkb0EPuYrX{lleGZA2@>Fv=^{MNi7Jv4e-~7A(`~Ujj-u)*}pQ?20b${~l zM>lRUG049F6?bp>#n+|DzskMJN)C1KrB|)-1AgXA(j{T5mbX!n z)Naw6%a@LcS3=%%s4Aij$A%q`yp0WQCdVl)R`E zc?11Vo0A>KLzU!EylfI}H{~Wdb-2r#JbjYviStdjI=zS8tmfCv8ctOA^im0vNi4cd zWIUozoQPG!GS2BHo3Y%eP_?`?=t$ws!Hp~qbuIKfEf7*Y ziu6jMEBRJlhfm|AA#0^_3;ReV5ZEe~B;r1n!{NX;`AsUFbM2D*mr$2?jkDivt0pu& z-Dh`ixv)f3pB$A+{Z*stV;*EYg|U`zd&h4?fm_0A`SEF| zq{IwApe#mtc_J>PByrViAD^@;(;^^Hr$ZC@)vx~a^Upqm1*jQ4*a593m-z7q@56Z; zz|pSP2uu~^)+sT2?IT9uUtR9(yk0=ds5&e5?XVX^#gKq12#&Fz*vrZ#Fu-Glz@{vP zt>d6{fjlUCUE;8sjpBdDheycdvSAs<;bY>lLy%hA+z`XKpb1hWdP?S?OE$i>U z?=5@`&*tdRmUFS5b+2}JUeZ-WL4iykwRqh4$f*dg5i}(I14M)LMdR|6P{;FITv>hg z>?KDRHs4-#yr9^e%$((r5uPi{u^x`NZ6wI$7vgc_SVT<^`+fu!9xfB9DRGuvmeV2` z5w96KV`5-ha$w?~0kaU$_>0`g4~}8fu;^%6^C<7UfA`|EGXgJ+F+8IIJ3Lf~@aD$i z8aKUAJU=`*Iw_r?IMzJeKgPQPedfLW+qZA-?jKACO@?g-5!UlHLbutaDVy-B>PAW% z2~b{w7Gf4v#2a`ER?`r3ZtnU$IOlQ?f^Lge!bq^TV12geucYFxxq35EwX?K zBaVixU%$=-19&AW6pFY+VMGVj@r#FKYg4Pu@Qdc^Idk!z*WXK-cuOV=9#itR87htW z`$kC2l{7`ysfsC*hDw~!rN(bEN;c4+hGU(Qcd3nHuH{pDV zl$Q=InQ<9x-SLH7+tLLa8*4^Um1G4dgn`abhg$B5Wb?!NVW1Y|gl74868LBk89i zZw%JiNcLX}=x>QcPM(*Oqpg$i-9=kSr5DBt`w!#|QYU>}xa20$`AMa-TyBsK=Cmpj z2mc3iPw$8rTfHEt#v`3}D6>yXegr1l07IdE7XWQx4sJ22dHZrtGSSy=T?br#mEWOd zz4`veFaG3T{hxpHe?V}#vI#BZ@DG3dVzyr0TwCM=!1AQ@o0-p1=bc`hegEXqlUFZp z-MvGs-r0FYmKCA}gMOpKt_%~09`lG{&nxvnjEMFR4&fU%3mt$FcoIDZ_j99#(6lU_ zk!zP`=2x31t;iowY|=!Yu2+l3e$1VaK}){Sc?KViGMUAZle#j)j8k11HpvS^3WjQD zs8g#WJ04rou5vD!dSE3ueqNgvPo}HbN(y|))3o?e(h`>23 z<=Wcn`nSXHm{}E46cji}HHQZ~D9elMQm&pupzRC9m#vVjhD8A?X#ihhoSiP8rAes@ z>6n^|)-Jd?>}`72Jds&Jps-w+DLtgoOD9W1{-Zum>gkIe&nqz51Q2t2dQ3J%1PHAW zhN>Feiud1tA8>{trhoe9Km65S{S|sO@4tWNv(Nr11RKt0rkWlP;&>f4N0cn$cjPe% zDI6W2eEHxjh|r7^(s+3B^4Z$j#%E7IWkQPm0xgHYTm1E(eV|@&u4pMiZ#kAaELGt3 zvDuJ{!sX?a(3AkPss^k)*xlJ>B@=&OD|0Y%K-JVUnc3OdH98-V5WQopoJU4r)H(+d!CBQ@MsHmj~z3(T5=HkQ1ch(2xJfrHz}H@uVmcgFly#cxK7Vn zipObhiU@XyjRDRxPmY9b-nkDIpMNH9JCwUn@Tp+z(l?E_2u;CtgD2^P_LuC#>&(7( zKxTunUW+&7%u_`bh6ep0+kk!uO={zy8U^~v@e#*4ZS+zop^^q-Zm_qz!#I+{ z7{>r*R-2DG3^H3#+A3;yQ%%FWkFFpE`vGMzNiN)_)wLyrt#P73NF5R_I-g52L*Vq~ z-WEXff;QJh;ymtlA-p}anMq&@5gW)VLy}r}Y34AK8DS3s-!{lLDdpy8`mS7XI>KG& zg*dy^6~Z2JIy8T11@qSV=g*$;TyEaH5!G0~9cxU%NN0R8bcG9UWz$$-*+&;W%PNLJ zUGTe@mE;T7H`ToCrNd_I4xbBiS+3HGAkhOG_QM>G)S+FGfZf24Pk1A6bBhLMkq0fO z>~e`=>(@KG4Y@chDv@l`F+Jxc;fAA7Tb(Y<%*}lL?Ki*s?DsXaPyi?pVV{$kRcnk7PSer3VF3Cf}mfVQiLbQ=uC;D&;cd4+{OJDc*RRTPM6un#J>Ug#Z{-C&%E$COSkMWhk;G-n z4W4WaS6{M#c^(Y?LeJ-lK|h!?pr3?i-otMn!M|i2G#DJ^pt7994mGKaXF~qT^SX2U zrsx9~=d3L@3;T$(gopU`m)`_Nbh@#*_2lUjQfY=HI6xRlA=TuW68(rjto&#%Gv$8y z(MKN>@m}w|LgAff{q)%rn&h+7OF&hGa-JqGr^x@XK?F|?h5qB3z~RKRW-gzb!|c)O z>Qb}SOZ zdZ?buOdWH*KvV!3!+}(zDxCKxK=GG$wo-6oeYI%-)}}OtOO@wZZFOle4m|mV!N|fq z8T!^B=Ch~;fGpWL^>FO-eK0cCjb7*^?=Yq9ekgBQt-d8xkfs(A$d>REBQb%0XFM6N zpClBV(6cvAtm72kD>fBUL4e7O!`|ZRy!#51R`umH0UMX+0^0u+%e58{v18sfW1*wN@o3fC69VL)R5WI>}&enhX;rd^b5I0rwv8fx~I0a zOHE+IiR^x!1qmEQ?@*tyXlbCRt_r60bJR308W_om#|+>6^pv|s>amBv>+&i_dLTSE zZr#M-iMiR$D_cFDFQ8PAc1W3) zBTGyE@j6y>km&Rm>P1+F{1X!ZU_OAx+MeUgl@yIT3B1lU7V&`<@L!-9JC`) z^kaBF-L?hQnP({J!pkJ}A#S7H!4C)Vq!`|!bHNsw$8`GlzyIe?KKYpTthjjrKhUWb zEYa_AQU*g`Cj`V6@7bJIn!K+&5@3;vxEGs>70#Y+SMpCmVkrklA~!pOg$nYPM5RKE zR(IrwJZOc%MI}Vr^LAe5z7ymSptI^GCn%p>;gXz2O`)o6wWX4%)kXy4MB=^0W9?;0 zjmPdS2AL3TXRK*bDIv~$NaxP}lb=D4)UN>N*Fsuci9K_jIQuJg!;%3=Qu_;)n`)YN zF;CQ8{>Z1^aB|WV72h{Y(${a`#rU{0cYBX`IK@?ws|1JpF%zzwbl&-<$G99s+yl_)o^W|D%9j{#kO?+rW^u#9kjf*5%a)2HN3EL?ZMf-(g5T8v}0$k<`8 zH|w4@%2F{^P>uW3^X2&?=8pM;@UP@+mKYXPsc8w|#pdMG6_XdxQ7-$%2s(HzqDtDr_$+MxF? zE!}<}uEmpQk83lv3wbHEVM%s^O5hD5@d<{aMX=)$^e|5iQMnd)8pK%u*p3|Rx|yFi zUGyq8ZkpNc1kQnAIENKWS zaNlH*aM`?h^S#GUzW*8RU-h3)3b|>=2kwUWEac)ePps6@Qz!#EgG?#i@Nxv?4#eeZ z%(Ap2F;Pz#+yf&Hka6*#If&5S%;(TvKrA1*KG}vz%zhxMDP?2manmZ%IBQA8LLJ2) zI6`!>$%)0{Sz>tMBvSi~RA*d5$~bt9i>BFiOq8Et2+}GA?TKw`4!e2c{Cw0t7bby7 zO)R{J%mgxlQmD}U0!w6nXIFJoNDYa=2TBE(ttH0DAP$ntpqiOdG8A#OU;!D*YTnVN z1V(T8zu7R)wS=Iy6_l;A6tI;zONgj6jNz_fh`;bq`KEk{#bE0LU`ahDek*Ca52S3? z^E)~^+tT44`jjiv0W@WF?1)5}ik=7Cao6=!y%e#Awv-l-i$QQjRgped@G|(| z;tN6W?+*;|$6K?=rswACaa!bJP@tMrGc8t}Z}rSy(sE>)7rC__8e*0RZky~sRu|## z9SO`T;_Lj6RG^oaVmm+z&JPt_KUFa_&qi|A?YEjJV(O^oUU17LF*q$J8t$l-iv-2w z1#a+Od>#uQet0j_<{2F{grT^89#5RX8`{ z!s-?`k+JLtHw-z2#Mw`}^GQoCMf|rkFRgo?j`l#P*k6l-;S4>vfyhp!YWS&vmD&A~ zxliOPL~W2~jCxK`Uu2rf$hr0-M0Pr>5cZnu42K z_yjgJOcX65UpZS_w8DDL;@dheM}|F%R;8uwiI6X;C%^vTPd;X7mUcZ!s?RL~D$2~^&c#`fNObk4bBhpOAuVnl@b_0Hb&7q3dKX5S8Z&4!)|pmXHNNV3cn^5kOR zi(ox{jL{_t(r-%PLm=aHh_-`Hl<93SbUULFH; zn(z4T{pJdE7(Opfklp38E+czJfwD93c)b^;`RtA(PRxy=I{+DJ@!e0^P=a3*h2NVw zSvV!DCf^Y286-f-2Y>~KC(}KnH>M97+Oj;o?>4EEhF@av#2oXH1}~Lu8GIKM6W&|I zg+h-*L7%#eEDB73s45zl7cQIJzBRW}DbKKHMzfVZb2|7Xv(4qpJ4f$=H*tAsd6vPo z(2494fQ*WS_F2`=9&78HFJ8Rdn#Ds#t|8xA8sJ@T|G*Y7(dB>9 zv9E-XWZlG`a-rPlYy6FC3y8erexQLz3u9QONxl>DWwl|mCjcsq{4kk& z%-l&)gBm?F3a5d`X-P`0w}|A_BEgiBf@j5M$L)aYqnpYC+uhlt!_RVPHM{m+Mg|J& zBND`yFY%PtfG(0txWF#J?6|ym@#-aL_2VZ`z~6}kuvs_{rqwUp%((5$y00J*--h;X zhTi7-`m?7ml%5CO9-Ca^4C&o@`_!@`wb*p(7KQY`Z*PnQ%C?(?3=Td{+!}jq^=@3d zPFHz#bq()7Y)?S>8UOy%Km8@U7`NsdH|8lgzWx3?O_Q9Q<#U;}C!&=DrNNr#s#e&Z zkR#4m5sM2vd^m4nftRLgGg5$?sv|AQ$p_l;@Y`>=5%=%kVQCE|g@ha^#h3j3sM=Q6 z79esC2YF~%#7rsEYU~SupX|F&(ZTmw6Ih2Bb&Mpk5?b)YyGuI$X~Z-&*3m7I>23@( zy4Z2y960{88$Q;POQ}%WlV<60!Tc*f_S@h7R&x6*D~2-Ch-uQ`4L-mdH`LJED!6x= z_S--VR%VDZyW~_%c)dE$HBH5~WL7Y@V2fdW=in)zJBc%r`gtc8tHo%LNcH0<93i=#XoITbD!IQK(+sTjVR`EUo*qm;whd21w2e`$4X1HWLg za)xD|HCNzPLI z>l<$RB)p!RbPLIkCZ#EObdxbU$w*|v?!6!A()?$xd<-WIVk}CNy3jconUATFn%9Ok zBsk6e*3oV$R@Lm~j4xAcRXa>vR*`q#JKSw|Tbfph@<336xfj5TfHu6 z{!BbgKTx3R5aS41*Azw(v+z=OU+q0Peze~eR_4KDnz+Ges9PyotEh_s2&;BjkU4n8 z(x+*cc@P8!2W!bR0dHGETWp+j*O$48fijo5PU-lJ?VUE^-sAM34)j{NA?s@^gVhzz z6~KK0luG%frQ@R$eugL-qZMqHR?4LomzV0nF7RIF#|T!QDmXtox_Rf;?|%2G5rRCV7w#XBwt{KjxpPM}HW}fy?4g8QYon?J6pR4+ z0?9Ocv(uTiZ6b?eb7PyslV(Ea`Lox=cbu!DO@s8`X;gz@u~- zFW7M;U~#U>y0RkkqX4|Q$@BZ}+i%sg9TR3|!jSqRMB%$(5>t=0LhUdWb(|E+Xod)e zD`w)x$^@AbERu;XEiCTu?h#@}0l-7|Eyj3PPB~5?{VzWj0OWUh$C+{FuApqYhDb@m zVW2oEAYKeyo-a|v;w_5WIFj-(OySM!c;WK{fX`@;caBARS;ZasB}qojk`JC9;9g0e zh@&NBXEbT0K?LO#pmhwtDX@2HXa|dV=@E| zm!;575CX`M7Z$GQE~wVQDBCs;T53`{Yk7ya!uiZ*1ArpDS1J4jWAb~B(HpXy)27<; z-BEe0$DoBVh$JA%%ueF({c--D*z1#t{9Ay`TSKZ70XojPTvmHcnmYX$1fRVK$7Gf< z;1!xHrt(5H*@PqDq<-9w&R)3zkSGA&7lAD-;pKv4N=Rt13o7oH0Hu<-`!r>j^Pd`4 z&@7QCdZ6=j^HUtU)3f!JwdK9T{j-bHQeCGj2x?<*cNpfYn(Twxo|no$V`UeEp|>po zi#*AN$QkOytp>-2I07np`;(Q23OlCNpq}JQW-GAM-7jI2T3wa3x_=-k6|*Ni;?IBX z?!9o9Fcrbnc^FkO@q`T#G8+ZXejz-X9K_jXrn|St<*njGHNVK@&@h-sa9wV^ck}V% zr@SL!mk}Ibd4Q&h!0I-KVH8~9ZPH4e;D3vmJ{X(du$QU-4hpxDtOtd1@vdxrGPUCCbYiq9-lnJpthoa&6Am*oMJN41|GSxb(KGZ3{!jb{S)49 zb%oBy`ttG`=~WD)cdbe+$B#~j!^fKAc0Q8YT+p!t4HXCNm<(h7nTaS~-^t<6LB}jW!$%GTXCZwo(XQ~K z5{MDgQqE7E$n!I#Her5!!QBp}pq!Q0OiAiXQAa6!__xqYK=5`}eqi&n(VlWBbZ1ik zqc0SMLJvT6W2UTZbfq9+qLEP`AeL-MqJ5d^gAWHWE3gD7k0#-$Jq&e$q28`HWWPBq zBI~N(Iz2Nodw9%lA7bD|kP28#y)QsQ_<4jU_3om_tUWo-M)#3Fie16NdUDC!Z= zeLqtxCBZDIU;0)+e=BzT>6k?|#$gK9t^844$v4Ua`QbzoK1>wVeDrL*z{Yre?kzw+ z^$FqvY~(Zye8#?@EgSDtq}7veH7-0C&1(WRgg!zpoWT|DwRACEWhkYtCLW7fgTrN| zCJ#RU77F0i+uIuXE-9OCp&}Wt6N1J}{EvdlqGO)0W%3VM8K{N4DO#723N*aAW~S$2 zPAyI&e!oz55{8&8G!NT^5ln$TEQ!@unZs~f?=a-ISf96U-{vj$_R&+UlCgTlvMc3} zH2&gZnCAp8_sFY+$(FY0>S-dh)1H@!*$nsg3#~*)8N%8Hs-`~6U0lh$05x3SG z-}8N3(lWNF7Z>2;%4UPEPLLd!KxclguJ${FaD$XFx-8OkG->6)I5B zA(0=B1&I2}iU=u}VV{Z7yr*8eW9KQ~AMX^_EoT$WZ~_;ZvAdvLBxI(SFLt-?Zr!?d z`_ZE(1VA3s#^xHWWj;F>Y;hNMH|=sEZ=ow`fvHH#+N0C zx+2L-gT5;bsI$ZEt7`~aL~AgQ`X5V=X8gofx z?g&9JKFeSQ;bMCmONS-IDp^RR@>6I^h%q{N{pvMn3bFJY@>W%;G}ITHX@s|*gt2em zy2ZBp_Tj^saKGd2Zr-?I17Dtm!y=hGXACedFS59_yt%o>+euKNFPk@K*cH7#C<)5(aZWSDD7#(M)M>a3Fj0&sq>eVfv7%0yx z%Nv@98We|J7=KfEA)X%Nh4A9N>uc{_-#XmiJ={N_(a28j{scF5CMM>HBJFFQ-eaV*8pr}<&4tLABL80F{-g|X+xPNhSOdD;3=2LjRW3B|3@bU;N z<4R1JUm(KBbP6GzB=g1N?_q{7&y%}P!F<1V>%IT+fBl~aOs|%ad@OWEgXN7icJOel zXckLRr%efwZ~sx}fiqDESK_wI*}p1veS{_>lz z=?U*2qP8D zWE~`nws*vc3&=YoTCn)Z!dW0O$O(m%IneWk#aZ~rDA9lO-Q&JIaCpo^s4k`Dl||ru z4J(O?w7a^tObt$PE%A`cbEh7hMZ0^iIlwV-HuYs`P5y6?DTSY!8*8I|>iN ztJAryS#HkF4V8Mrh+AwOBB=!gO$t40UZ43%PFjA^?N)1Jxut2%0KU0@@X+6vE>&SE z_-gbwnkH7J;ZI{kU>-B^6*h*PuDK+t?rm@7(n$QLQe(|c0#h3!Sm^ECk9D>fcwd&k z^he$JrZ6Z@X~z&(QVui|PH(n~eWMbdfOYOLm%&>|vSXN!Vq)Nib0I7&%s-1a8gcwM zO;G05={iwW$x@SOOpJr(LqGaZ9k61KggO-5s^sG|EV&kA*2aa@U{%aga%?QclUBiC zEBZFNxc20i8v~_)6q9?nTTK2$Db?jJN}QyPoxof)ga?zJx6VmP;wdvLMM8$LcgUL4JO?87=1pbl=g7(k#6W=%H}T{O2* z$%cl=UR~6B_QK5)7oBW&%c{7l@C$}u`k9H3NyIIz7qSW%<4_orvV_J+WOmjo%|1CE zk#R`zu#2@<<*yRlfpCuywh7o6UMmffaWoP{&l4*=j|ggiYA8r&)FW21XN8y-=iS}a zRLANHj2A--G^wv&ziNRjkX?P^c4j9VjmC&trFM@<{>``Gl!of-9_5pr6E(af{YgAcr_>&p)N^O`uX!G+|%&7 zXHNYJtY^**&N|w-F=jR=jqk3+*o3l`3u8MA4?~r}kvM({WKjO4{adWy9fjmTSn7C2HHM-p^tE;VGQ*jGesWy<)(g{D+8I>U@GS|Eo zc}`xM)_XBBx7Y*L0yW8)NtRa&YRhnESJzg&1UdG+vVDY* z_L$o)lMb|@XAmR9(26}`N$MBf|a5-<-QQm ziBq$k&rpe`!Nm2kV2*C zt(BU?j?t{tknOy*7LfU=I_KJ&06;Lt;WaxcV+g?N-nOr^x|u-90X>r0B)=63CqfV9 zKoE!=^(K@rezqVII0GkD$=yxh<_XG}h{*X+FVjft;D;T{A62KBjOjllu?!}gJ)R>? z1FmoB11I{tSv2Evp_skk=ttf(eNVhX(c?25DPE*7ZmvjVpBsYKDwWE`SzBgwl_Cue z$_py#%Z7%K2N@}zNgB%t={RU}n%{iUbhKg6Vmw%g{`#=rmf zzXeLXa%Ho+z#^!y{tbt^E$?9t-UlrykDj=9r7S_9|Fj#AhHm&p{?l$PE43xB2gi5E zePfmE+AwU;Bns$JGDkCQk$jF=$(f;cWe8K7jA$6sS)iYSo1*3mh>_7i82vmL2ap;M zS<6ja24-^S&_%<*~NrBluRR8zye~42#StcV; zFJJGz-rb*>u8cyO2DV7pd5%;c$IvXh`&p|2n1e!BWp;k=^=>$SanlBL0`Np6?m@AD zuEMOI<{o02!#0_y-#Bo?Pv}+UxP4j7bHQ;}oAZ%CP?n(^Kql#?G|D;{sjsbWa|ifl zObC_3q+1e|JOYUahmRv#`4M1sDqp*@#i!%A?^h*2TcRpN-JimXp;$gJOVn*TCrZ=O zUoIrG5^@K69d%8yvMj)(=_2+cj52KT@lnGn2nG6c4yYH;U#3|Ge!zqNgiEKu zyo>FS%wS=CaIbm%u$?p}@a!4*lt*m%Q*4T$E7|D7L78Ccm|{ZxqydPN_cU?pt;n%Y zb0tj`v0I&-I%knCc4o{p@IWaZc<#RgemYxsbI<)@wyM)fCy_<;^ozr+8(AnDdgCfm zM3}Vl5#c{ecDO%z$9L5Von`>^Oo5&mb1!8*w3?|$&XKiGE>A(oaN1M`Ezy#`6kb6v zYC6vh&#@F}3sKb0&9BZO###{%H*oFlSe0dzgl?ou)u|*FIp;-iAA2TWhOKMc_!x8E zkqT6>`rxrPgQzQ;mq_uvTA~vuh093^MoXzX-224Rgb4FHBROXR3+T+4dqTMv)<+8B<8yd ziEw0%ADhs%oIFvIszoT2WqtbS5)5RZ!T3UlA%hyE7ZoXkA&IKU62(yuaAwqHq@de6 zN1y-B`fbtXkd1x*i~@U#<=<}?Mr3)XOUv`0{QRS9*S1>S*6)7zpLkQEaKGGlzfmi> zQey;4TdCA_cgiEyhN`Uv^1#!pOSEAt9m4^ULG2QwC*)P3H3ZN5@yUuk(^8 z#|%KNhCo{{Kguf3im<$*ZkwiVke^hSyFOim&VT*-HO`o+XsTb?+Tv#jV-*EGc{XuA z$u(n^aizJfD;pS^T6KJNae<-SI&O~OnLONI|N2+n%#cc0X7I5zCO#Tn+1^yS-5Z9E zN~W17!qD`RJJEzK4lY8#!NDO-TY`R!R=^zUg=lhS#O%C}_dbd*pVF?gtW|6OQh$g4 zmnG}ggV>Jq0WKAploDM#ZW(PyV?jzoHGi509K?;Gw)aTxedyESm1Il7hQG!m?lR=AZcCE`}I zjR_~uCt5qm9uQv&ZWfkEhx;+ioHUB1%DZ^WWFkKqWFyW>?{~uSgC8!$ zLt%bIdx-=nu^yBA%A`S{(^881xR`K%7O~3gs)_s^@?gF&8Q*Q2<^S@b$h6_GI1-gV zCneW-2ui-#UZ0<@7g2Deh4tjyFL$0l zqEYjUpM8Ai{vAO1zx%s?M{9?s_ul>vzev_x7dxe7jt7@yo1JuadT*KrL;LI^zFg@h ztkSkTuU@}kQ`oq}m`tLa`V=8N*#gX&xIKzlRH}e0SX38niR1A)qdm@+k|ud(a}g6N zk;_lXMnXR(9w#j%(==FzoE~gB$s!Fqti#KY$QTquwL-KO(dtQI?TbLp%jD|$1(s*Z z_vbDecE%WLY>*vYxa1fOV<|d2>?zEPpp(R@ra4fWD@-8~!J&);QJ}wpECkbsP_Hl_ zF350gN_HhEL|$B)bNTG)b3QmE6yo*8nc!YCWAb2nzdMRg|}oZJ#_p-=a86C zE9OJtfQJrmS-O}J*Oa4?yh~fZ+ZYJ{>q%d{*DB`c=a4mT6dHpL5r2NVbY(>Y1Hbs_ zF2ksRoICWiO6B#V6!#C6#F+rR(YmGz}Kxfjn)nmTkPPbL#h3R+5S=I@=GC&S^? zSs4W&-~`ABr=D-XcP6m24sBL9xn?5VXI8qNB6OH`u`4x>Q$aL7VEmd+DSQC%Ggf%D zXo2&0bJZ}H*D=%8t%Fa26c)!TYm(S~WqpOS5MY{`b!l;4)6rC2^%;9Lv+){eB;`i5 z7+zvCQY;coiN$y`;9hWWbVeJIZ9rYyko2)MCMYAt_j~jtq>Njl7uPDHO-BqOgviFH zP*mbvpIcqqf|$Q|aD+$>Nj+H$I%Plo`6q{v4jY%`{_IjspFusCn`!8>mAO8D{#-74 zWwa4N%s}mDNXGfI(`jltL9IuETNyE7_H0Wg)%h!%vc$T2WlL?&vtvB7&Q8~beC+RB zyS_a)U0q$eC9A*1*~7i*5>el7fh6MubWSglajEs5;{I3n_~^8_P%$M{RcCOfdSltX7 z1268LhrDkXh;9nu7~K_w2Ii0Nt=mBx`h zi{O27ZRg(+{nK>uq>8|#x%OMq1ru7q5!Uk-3+oLt+Rq>pq%35T18?E)PB4{h7BfGb zx5D}lnyca1=dTbT3uz;}4d*kUk8ki^L4a#P1rp@MT z*9)WhYGGxz206W2z0n(dc+qIpXXjwE{y+cl4_|)uIm8&&v(Bnw4zzQ6Nv8okw-{zF zc|k%=Oq5OUuf*16e;BTbxvGjcro*~<6Z{OJ$5sl75g4@QvQd=a8cuP0+)UB{U~QUT zCzTE~vK=NGV&$ESWvH`+P)LbR0l?3gWe_4G!hwnAzyx3*2Yfie!*L{FYPV(j){cMm@zJ|HIn8|~Je+rRvi zpEF=YrT+BU3oTvg8q=+u9qy=xeevuWbi`LLUhpTJdGdFlH1;{w)3mz*DRHzAiGlrhf6n?9kyIM zdw(W#hBV8=ZyDNC6pwCjzK|Q2sH4!nZ3JW_B^HG9dG<6eu$ebB5l!R89Q?>ae+d?mb#M}2G2aNfsRGm4W%Jjuxr&+8>XCR(goZ@@C@ z3srOu^;^Qmtrl{1qW@Hd{^}gT9(>~D5WOd| zThNzlXD9 z+YMU~4E{pP&Bi!D;O7@jYF~J+Cr5{DQBpD59c?Q z$FGPCzxw5$+_-t2J9+Ke)yohleERG$9LSfip5MBC1IkSC!w)}T-+uSqqX!SZ0{tXj zFD?>U=1^wmF?f)Sk4<4d(3DhEWAIYOss;8lmj!tp8KBUZ<+N-E0jBRD$fF|A zBy`UPLw-WUaUP*5M4UFR{$B6w07&_hJDT%-uP_H|>-4(M8CKmL=kFfiht7`K6IfwzF8SozCIWVN?EI05sXsENL{k;u$D}Ov(QF-RLsZ z5ysTLtQ`$ z<`8G~7Wfx`@FD?n~UaGQcN1Xt9;&7o(@b zMV6?kE%}g>_o-9tf~6TVM-6dz1c#KYA2SxW@L)@7nIvV4OhRrvmSi-b89r(pkdPUI z>7jvJMoUmBK}?*yoApDPDlXvZg>Og_932Z!l*imn>roeN9d0p&M6*eGy;g5=taZb5 zK4Ev>O-O8*7KVueR3L{+s{eFIouXwieb@bK%q_wH5dRT_Y(S+TCPB$_SK6cR7uT3mL~&8+|! zyJ-;2_ezOWt!hQ?B=n?~=GvO1&DhJ4-Ma+j^$o!rh-3S((cqX{4UmBa)`oOlVxk3H zmz$&pRWWB`mEo74{`9BtCi%{Ce1+X3$|z^}KoG}SmN&o8s?=Wyv*h1gc)QZ8Tln>>9fZZm07 zdiioEwlsh;EZ2ovb+%fm(@*WR$p$13E7Dy{st%ZHW^S_x3LhO2d)cw*%rJMu>P>X= zfS3y=9Y)POvQAbqfOqHQD8|?U;SnD0cv=4Rclfkc`1C`y9FOgjOhAl1w&-PK>|Pl` zNI`LeQObGZG;wUW7)N1(T0&T z<_Cs-OGS^}x`-iO`x7}cHF3iJ;BKiU7L#8&VNK)#@{)%~d~z5b$H9m|P&0g^R8GY? z;YVywQSlL?jTL@O!>C<~$=NmWG@N~xw1S3Xd9ODx%UdR^;WRy(Bqol2=w6*rnzux0 zY@u#@*l{N`Z1O~DAV*PCEBKKaw{^mJ@68*YFMR&IjFBPrqMVoPBYAbaA}DwYt1CGo{wY=_#t48_UZuu~{S) z35@aldz1?>w@!}b-ibjst_^5*SEee>-S$N!8Li&PbTYdwI^E`~h=#02qo5IgFWt^z zhZ;WhfQ3tE{^F^Wg2ZJ9mRm`LD7R<%PmhRu*u{1?)SkQSFn-|^mS#3LDWJH_s`T3N4bs#V)i5C^MdIkKZMz?zCfk%wq^3Q$O% zZL8CScq2|-cm+oU=yDdSvOhh8pU%xTbA)t**JP5xJSCE0(l1K)O(~Am8Dcuv-vd&; zx^?A?Lk*weEpzAQO->ymyQG+5ono*o8-VKC+6v{l-C(#F>Ne(>=#a3~R@c`{%$pIF z0Ac9s@IO)$a_+H@uxJdS7bbsJZW-67OiJxaqFs-iDP*=70-N$ep;l#wj{P(|Mlo<@ zQlmf^7Fj>|+G3IK7mK9wZS`{S=97G_i-$$_chIy?5&^6qJ@CfQs#eRHz! z@FX|du>&6uc%0A)k5hXMYSFZYn@Fp1cvV}XFS|1RYhgrk?ZIWhFM1N=k6E*cYsh3% zb5xzbhkZN7k44l}JbUdHB^yuiYZx?`wdIPEK5k<@X(TYgOg2|2z(*>CD>1F}9`V-` z&(jsvF;J{D;!#BvGNN$v!f+}ip_HQfjOp}So{$RGW;r^YnUFnC)?jN~aM!B8evYAG z)br94r#~K5H@wn5C-k3+aYobqTSogkH9a@k@BV1qK%-CL_+{NTbX2nL|A$ zs{4L9)Gh(}C3r9hCel#D>qQOV(r0d}zZ%E6uPr(!7%@uBB{$|K{%71*C!O#nr;3t7 zWNOBwp6d9R2S*jblw;KVD0n|{*z}UXXA=H>i<2|@v9|5l4Y4%#-pj}#I%tPdPd6vX zZ=F$tFfc?zYN||EVQyiz*k5d4o_+GGPwrjcI6XYTEoc$hFD3jv%J#LTWilI@E&v6+ zQ25hiZ!x#~dgtN8uaWraMo~XAm~%f|VYfesU`HOHVwztM%0t$_algtJ84Z{@JEPgJ z&M>J2zast8!BEVZF6mBHB8+Y8)m4eJhQ^Mc9W z0^bLw>r2aM3M^rLZPS2^L^E5NPG6YItMA1R0|a-<%0;N)`I8|4)@1MXJ_xX{ii-pr zh>HZCLa3l&VR}aHIb}$?DGOkTh)p!VaCvd&;X5KnQH=@>62^q~OA|VnNa)0nqbFv9 z@~iVh!s&rwvTQi6?%#iZ=hbVsE}&f?2Z%|m_E(GixCS1@15zvN;v7|Mk_lk)t?C+W z8TQxbpZ|d(@BY2JAT}bhA2Q;4PKL^j1fh+ZezbxFrgGMyqHwixc-}ldKZUc==(MH~ z5!u?hcC4?{0{r^+fTExL-4NT!@nNiqpg*5CkgefAoo5NLonMNA6xzdx4G)H6LIk9g z$e{aU24vYA)tR_mRryOiMRE9u@8EzYU;E5AU6M82kce8_dxKjOo@Ik}zlo%O=A~EA z^n{Z>pYvvMnQ`btVp0}7vFpbBe2}6l#8Bkf*=AfUw-~@{WpyFS%rOQMPII_^ zGM9!dfcJQVy}ca~W=DNHjtX;_D!G!4Y1`6RUtVMJ#LAE|B#|Qp?D{BeNmRCAmF7sF z-!Q@5UUOq0&J;3X%~f3b37!~moay#9L8|CaRysIScmT4 zTK-<(jA=FF;ivS7-<4UPOu&=#A{Kj=eHCPqcHoQ1S=qq?vR)|DlfjkAVAQ zrLaLRlJopnibNuj!;(V(kWV+r8LQjZ2hxiFlmS9qY%+oubQkIr_hqt3k#@4S97 z^}*d+m?XY<_PB9*c6EDeV|~@AmmD)j5(r{>v4L5BpFj9~^Ty5m@xjAKkGHnBoumsV zsnGT$9_75BvROm8T`;NiP5M(Q@%smY=Ys`$)YUS!n@e})Q46aHcezyqL({V({iya&9ZiHX=5dZc&2UGG>`n) z@)E3=nEdJ$swkdzkWyfHien|f8z%9x0WN>)u(c?G&CX8$;wyNWE31+>>3!O9hf=0?efU8YH{bL8AdCA@3h_W&M>mdI>as;b+Nb-Loqqh%a&7XH=*fp}d) z=-QHIo(hxISkU!R)LhvFsk?JhppP#%YWPJEKo+GM`bu(_Jmr*=m5DrXoesDQ>O9D* zkZ#ahnZW;qETX{#R*^LWVxY90*jlM{2!tgwe)5s)I6_O zXlLNHn(2^n zkl>qBAIvDvd_r^u8pYL5L7}5zYDNt;z}1_b2dyHhi_Cgt;Rg}wJ?`)9JD0`wAJ89- zwhi;iGCQ5_KRUmf^cu$=SU@Gk;KIXY?Pi!mr#a|{yiD|IJ?)vYgz-uFgU)Rhr*d!2 z$G*w$Wo8n>MA@?_$j>5n4mY+^>t4*y%&o01OjSm-+;ZzP!{%Y@Y=33$c42*Sx>7hl zID7Q)E5hOS<_2-0aehc`Pt%XaDlHk?<5&`)8){#N$49hlB-L4nGENL~@@|p1jG~xv zV6U+du9ynxz-i-({J?qmEV@v`B`;27MB)j5d&!3&n|9DfsvwIAsJ_u?Wx2s01%_Mvtf{SBnTVU4f}#pgHJ8gsCmJ_;JHi} z8U*)BQ8VZ7UA=a6ipU^$ukzq4j=lc@QVkg-Ty{HjH!m(p1S#>4&VbMO^(!0&I7~;Hos}JN}p?0 z4=#E?5MMGP#CWrLtE*{naKJ4yM9$B!stoTc0o3$u*ON8QAiR3gYDnI7Cc{|C-P2FW ziFDG|F5$oE=vN}|jovIR5jt9Ue9o?~Eyo0~tOi&^N|r0xym%n6J&*ImsbhtDeJHTa zNRUf`;j-qGM3cJpyZ;zrRQH!HE(Idc>?%4AbVmlqQ2A7zw(^=hl~>TGoz#$?2LMz}2B3nPV`O(}KL zVBu+6tv7}&@|p0+c)Fx0S*ACjL_}v5NiMDU&@3K`GL{uTp4qt!2VrHY8BPjb@r6UA zP+l`5&0!_U%nF?-CcK9krc?^b9jQZuj$_}JvyuQCjdNiO0OUrwALYYLX3;5se=EdK zPPD$IA!Dmd=kGSt4RM80p_omvc?~#+oz$6`#M!fV&u0?wR&E#z$J6}iP0)MfxKdE* zC3W9iY!I~8;LI?kurOPhuS0KNTdwD6uEKz<=H`k}+WK8qCiBAxX3%#(I6UUMtKu0? zYi|}Q@x`OuXIZb5%-!ZZaB|51xCX#U z;-KG!y#*Rsi0%%#Ac_lxC>l=BPO7u@a7Ufn-G`4ji%=IxNF9meqI?egUMI(h=_4V& zfW3x~G@uI^mQnXGo7wCv%}-|*Jut;D&d6iMd%iqJtB^!RHM$&FWEQWIcd8c3Hhm`| z;P5ABm!&xEcyXNNiMgK0&5gYQx&b_z=mC{p?j?tZ_dmP`Y)P9dn8#-Cy9Rc7PT<{2_Vc| zMn7iHF3WYAy9K$>dc1)EdfSUk8L((EEbcjMYXSXOOw@fsCq!mp8jwkrs%aw0oLskC z9g(@Mq%G8OY;YI3RT}>f}z}T^(soX-R|=zKfi>` z1a6ammt3zOD@@GF=ItghG%q&n3}Y-^SbTPoEKEW?4C^w}$hiSz$17_~XGbiQ(|yKM=cOCUaU&dK@olVr3x=te6vT`90w7oqAtkJu!U z;rg{3YipZKX6-i`WPz<-pPq!22;?R$?lpIVhZ`=+!^NeA!=nRwvz2P5k^(OX$=;~v crup;#0|7$4Llim(W&i*H07*qoM6N<$f(N^y9{>OV literal 0 HcmV?d00001 diff --git a/docs/images/damithc.jpg b/docs/images/damithc.jpg deleted file mode 100644 index 12754388389328dc115e74b5d7e75d21ea3e3979..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6910 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 diff --git a/docs/images/fyonnoh.png b/docs/images/fyonnoh.png new file mode 100644 index 0000000000000000000000000000000000000000..ba93d38f98e0a863ec8ada3708906282bc198451 GIT binary patch literal 253394 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


bKfGJq{LFV*B(t@Q zMrW^3>fu`1fZ7N%t=v7%^~MIy9dFHyhc#L8$Ki< zz%Mg?{l2(~In_pC+z#oO>6wO{DtxodEYEH^9ys0mV__-|;W7~M`nR-fDOrT2-JrXb z{25NZ;1VMHt`(srQa(TO>mON^8 z$a3afD6tb&BmUmie={L6rT}w~8s?FgIm?KRRem*}Wyv*8$XFRV>WKPgLZyVC@A4^MW46zk zRA8v|Wa49zi@k!@S%HBvO6tPmO<@;Prjc`SfGZjs#rIL4mbs)QaSh;aWy`CqBMa=%e8R|fGYec z0wbbkhjwJzl|O*fABvQ;ItC~(>5$dF^cD6Kro>Mwzmfg8S%KE9hiSUq!UMEM@^66! zXeH9ZSWV=keg1uU48I^`J}Iv01|yhbFp{KU)RzP}?dZ=A%*bdIFo$M}t14;s$(XgT zEZl1Jf@PA#Ykyv$r4aQ|d9qI8gX%k<^9z2e zP-P*YIr>`V>z;kzv|YR0B-75hWp3`+;|L6^zf~@gGiFkD0$J~6o@^UtZEX+X$#W;4 z)3Lf0y|>yqu}fySy^=hgQ#2Bz8(kZ>f5s(cEcD1=(J(l1{It$SCqE&@e5 zNZe4bM=!EV)3exN!OH5UwkzuAPgpFoH};XT#F=-(1mwnem_TcYMVE}J2=WX&CPPKR+^VbzuAX~qgw z)X=Q%lp^C4v*G}0F~5NtNvRSGFs+?G3V&9UHOY+Ql&vxPn_70l1b$H~Ye=*lq zkES{($dw&iSyH-nlg9`>3?+WM_S(40&W&y!JQp(3V(E+>Y7N0WuaNF0I?CPw(1+A?G2 zgY^ox{=&aa1umDyo!v?6oUv~iQ!BNocD002PAN-Y2A-aT0bdyR$zGb?e#R&5AlHCS z!OlQhY{y7v3CD?foj`+)>8rVwIVpx4MhwkuItf6?s=ISr5rljA-v&3uK3ChLnquXk zv?qgrM{yJ0B<|vI(+j5;mH*UQeDJyR7wekx_wOqe6Dx?Cy%M{N)&8BZ%UQA~*rM)* zw6`sRQNXvS$+R@xuiyf46ZEPE?WvXlZnBOf1M>Hb$1se<6i3euj4BMhoY+3=;sANu z-L`V#NQL}0pR{!spWBK=$wU0+YvF?6unBfS4~vb3Lilsvb)ki_ zGe16r#LSwybZ8lcLN|_8dvPCyF>+<@5(%enBluI6rFthd(gJ*f>@MV5MC>6UKY%T` zU!s@$!*umfL+8k1sS$5*C7*r1Gu;9D z;^wc|4EU>BE4vax2)>{TDA*0QivO6<2m`s?=!Hg*Mv}cVE@`NITR@4zMvzQkPEK#h zCNy5;xKLG5+*=KW!1|?0tH?J&@$KYuNwmDwA>39&=(KOC7QR}5fwyFeI!GBzRwSUH zDnXu#H`VPVX)HG*=U@r|;E9(~L75uqb(e=G+yi?xQY20`d^f+dZ?a|I4|4|4snpzC z#)@k+{l#V!KUp~{nyx#silR4ce;)4bpXR?qH{Fx265b$wB=$a}kgq$L;&Z|(3p!<^ zsQ-44$)eNfx2d5QJVrPDKf-baTgO^9g+d&t6^AGU^ZRyGzo$N=>^1qtJHm5)%hjbYFctMbX-a){36Ni^29np+c}HZ?birWIzB(qIVD|n z)>H@9B;CN^#3DX|gPHlZC#?I+4oRdRRW9bjHr(=7!p`22ACGKSx+;3r|Ik4q6=w3& z027)bu;UZlqal)LkY@eH8_kDXCP_?EN7oubJW04so5I^OLBAryxQDi^-Sc1S*1?1& zVzQzsNmm}dc8QYE^2r#S&DH(ptYBa75cPqj6kQ;ENO=WW znWINC9`v-O_fHpx=WP1x&>qXX3$#(OD~6HP;@rPq@M5U#%i~vW-w!7vH9p$mG4ma$ zRyYm022H8#MUsr9x8Dm8WQfkQI>vbxKKuU9l<*`+bqWPLz_}P|7H8c2_#z_x$m@i4 zektw#oqz+we{%>TP54hr3m6m*TcsySGyW+t=^yzw?p&a;e zVW}GpBGPy}_6OT{x0Ju6uptT}A#ZIswe_Lm$}B4jh$H}E z_|q!oR)&o{m&sy4I??bASXfc-qx_|5`$mxLrDfJwwX}B^2w@U}?E8DukUsIiG`Huq zKoeS9Hn6bd6Ic2s%8poa?LCe^59WC}ab5@3UN4_`@T`wd;I^f1}0dzC%ilH8^KX_fw1|7q~n^q%Z$MF6{T8ZJ!{ zZQIp)+CHu0|AiLQW>tvZi&S7YriHO@f4kLaL~6ym1l2K3k7U0{ zllbuLy}#kF%s=L&_=9`7KT}x2_4kj{{^38BKj*FU&X#=_cqNM)eW6@j$1Lf!d&Nv8h*CWRDtE1R2~X!7$iQ_|KHpK+M!t&|jz_?~G>C)j^)UrE?ipm{Sg zpDS<&diVLkI&Qs6a|)(AW>}%47pP$U_6FHZvX}R}PcdFElIChPcd{y)fSdVk$3QIb zk_MTOiPK6~*g|Cch4{FJDc=#%AH120>BBZsVDaF9-#aQ>?+^H52V=GBGRjh?TYzbi zgg^>IPx zrS>wPa;udbf49sQkpx3s=I3*3zI56Gzh5B!nHyu8Bp)PG!RUEIcKrkHDv*H3YKa3e zev1=SOwZ1`BWCFx6}%qmp<)FI7cZhC&MWF)`Qrl@YbXi6S#g)<=z&5DXFCqDFfn$k>#_y$}O?T z?qs)D%A(=DASm{%D%tmiIzQ)^50Y%Wrr5YRoPH#c^_#~(`PO#JTvP$lf~z{*9~TQa zMMMXp4<0^!gLrI0A@Zb=$8^2xT+JO#pIkiGx{&->?veCfnhHL1NL%p|oAs?c_#v#| z+?S4YBDEBXOEMmxh-(4ioH`q!m&r${F}@cj>fmA6sZ#4F^p85f6GK~}1A>P{EET&C zG^MZt@*~SxJvh+`RT|_w$+tNH5WaRr?WN^RHX&=;?=!FJY)x!_;|z?5F@LUE>iH}_ z?6M&CGo_G%4;_^QdV4(bW4e@`ZTToqUiAy|lbNFJhcwX`O8JHMKWfJJQpvlY9!DG2 zQ{HqnzV%>nJ(w0~I`ZqZ-q~u#V(SO;b5k&XAf2T0gm*n7mJSR(vOZC7Ljraf6VDZX zG&W7;<0I-mYr8^>^ry+DnG5OPMgHhqKl>W?mbiDnDW^Ay*~d#BnDP&?pb#cALs2rW zI5PVtKFTwiq3opKR;yk#kn6AT2uwJPoiJVE;uEWS#zHi*g+U`{+v0hLpeEP z+At)M0;Na=&v-WJ)lsET%cbWFBbR>xo=p?s7pIa56k6uYTccjZc@Qc`NShsT|A?Rp zi~E**@-M~utkp!F!=Np9k!Qayzp~tgCw7STBgq2}jK863{7227CzC-hM-eD|Y>~g+UmNW?qwGXXFHO zNNUoiH_hTM_irxJwU|Oen|9I9w+{Xg$mP>W@)o+W zqTBiYxyX|;e?x)77cvR^6B+@fBi&$65aJMpdx(v*(Ft%l9Hwm&;nXyz?afe!(nUa> zs>VYq`INjy8cV~Y(*Q<_k!aJ=d+wsu``=kH(hte1$m#Nx-XF9|?F(_T&{E@6FN13@ zps`msu2-6S54GD{HOVLHDG#1T7>_7zT$RjdO(+Gj7k)9l#-@c}Y%J6cC`e;V+Wb<6?wtrz6c(!+5F1&y zUje<*;n05QZ$(f^7 zZ~{D|Ek4Y52LoT#yw zXHH=u!Di>0M7OBeW&ToM^KNy60$sM|Dddr@w8W70?-u4+=W;!VqXge%mbfWQz)qxT ztF_HDgouA6W2`KsQq;+`b1iKnOexz=zm1>L6{zAn;77c0%VZ}PEwtHXVgd*tE(@Q& zpJOPCPNDoYi+MonBowV}5>W8b1)*E}RzSFB6GLr;B1CT0*x40Re_Rw-1fnyPFJZ&R{5XXVA6QtiUhSu&etV`f1{AkIS<>Rk*8!lkOCi(N zy^}Ehz=Jfd*4~IqNt41w4C%!}y5c(Mh;jDN!`ExPS%@xdY~-^{D?Wka!=&ysF#EU& zpKoC7YB$q;=Qc23A%8EsnHw0REiIEX<+QFxi@h{`G;w27hY^BY1(HWbaM%QKrB%(T z^qO<$*yuo-DAMGAv`)lDSc<Jc^dzNKfpHGu|to#3Y-f0UVsaqomcNQux+-TX+au;iBYig+P-PHiS zK5|hJ>e1;7=1biLy;Q>W4wg1#^bW~g_JMPANWlLi!*G&_7>H=J`4119Jm zSlbKp!#Pctw3UfRrOUinr=eXHD%@e!VA-y0(lD;1z9;BsA6#HNg(Jf1Gxf#D`O5W? z-f}V#PLc9;qQ2j6T}7Z!vHEn{SIbF02xmIq>NfLc#cPZm)HvLGO(7FxWX)ll%O6g| zC##&lZB`LrSL0O&73}PT9wL=meHsOFkiTWZJSU<7>@8EiedV@bqtJnW`NO0bQ|(HJ zJqrZuK!KlfD}dBIsYa)v$lBmDWguP@I98Q1dr@CYyki^tb+lhyG!1C9_$&5VpzG|FbkRp#iwM?TCqhk0dk9H$qmdB=~a>S*c zHwp3uzm?Ip`!ud7V%DRMSHqKaNZY=cezMhhO&a~EDaH4pZq@=csP{jBY>kPbQ?~B! zbf)&hqU=~ISuQYF(y#gQsry>)ok<2i%+2=5ffz&MzMsl8Lm%95*=2u!P=dh<=~eY_ zm*L(OgEXkB_*I>UWoNgu%ZK@h%Xis_{Hp_UPXO>kvR6@kFvZcLQc?x+m$}Nm*3;QI z?o#YI5@BkuUy(mI+2T%mUIZ`J+J#vsD10wciMyP0Z+scxtgr;HH%sgI7xa~O7}Vm5 zf;l!ScFkg*{s0U2Hkp{QLMDwT0v3AIYi^q)OYMCef#gGP1Q*yP#f;#0{1vMjo-_@FMB7EJ0%Hv#>2i|p3`RMqD3W(92QVoeHskC zG^hz0{5W=-8o(s6{NDF8+$9DsBCRHoFp8nt$T}Nltu1Ja4$6Gk1Q>*h0wzeHrt891 zk+lg`z*~IDG47AQH^+)*0Y4-c9W!wY@UOMxW>ShfQJ`cD{b&A`hbXfCz=h(;7MvXc zP|n~PEw%hGvTF4k(1gQ}TV1h419V{r?TEt2g0MEVj&K7&AHrFAB4?3(`jtpN7=-24 zit3t^@TOn3aJ)4^7wWK4^yJVxLO#rlFg#J({GIfb`5-VFno%k{1}(VrdFV;yNp#CV z`YrnuaE0Apkr%UW&(~1ADw$+zl@kCSo4vD_f5d`DlJ)XY%hj^K7ET*vovfP*D@Y!N zUwTcb))cLe6z0sv43Z%MMRI zdq%FE%4!_biy)IfYY>sEHAT85mV}UR5CA=ZgZUnLwIj=fI?>Yj$8EkwBzaoa>gib} z#wS$Ujnhxk5X56Mctr7gG3Y9ZB?f-8DK;`Q+Hj`s=8vA6=eu)a9sdEmNp6D%rkxOu zEUnmot0nUO&Gi5zf~XilGnP{@WJBWn90>5IgW%k;B|a`pvWluzE-p-M5Qk_3`X^@A z#(yk+ISX{cCD}p1_*1T`+FlG@1cA{ABk501)cPS5KVn7L$Q;*>`v9G>Pm3tf7?z$V z47YX2R)r)v3uVv+-c)%b?BY~QwR6+cyN3OdZEBj7An$82ESaKE+9br>AxweZ@FaOY zfxjaQ4N5B(?B!lHi!)$)^497?cF{oj4Z7Xk%_ryU8|GZugXG!PL^V*^pkAblY01p3 zP+%B-6AnMC39uG@;ukXMoMPc;A5)U#EnSz}nem(7vf-DZYxg3bg_F1z6(D9iIo|<* zc^%D#gHx6pnGr@OcUPUyWT0OxBn(~)R~o&}<_@JR(&vad&4+9-mAS)?VhZQJzB{%` z{0{)l8WeQI($YKOF27F5m*#Rjsew6|olM24wso!Q#w;M{;=4CS(B<4qe`j!-Z4(mr%ch2XEw+?PLhsz4NXGnAVm&Rut{RhL z|4|nY8QwUWQ9v87+7-d7he8=+Rkkhv4VYmrKvRdFsU95w=fZpiqcY>H@*%_rnvKkM zOk@xV^Echa@?M`^;siK#NsP(U1~7kSG;?}RZa;`KOe4Y3_B;vWjpyN|mmJ(;kRvVo+Y@Fc_epKgm;qJCU z#U(KxAMZ+jvPFMB1h{UwoHiwk>)Q&*$`JQQmL01>DTtkCb*he{K86JVoc^=3ZCV3* zd8<%ix@UECD(=r2+rlmxF`id|UKbL9QF!sWJh$a0A#UNgOq}gMfJN^WaQuz~jPiEx zXJUmSZo07TD>Q}Pj!xK8n>xY2>^}fCTpGcY8C^^pERCj3t@}YvFNWF&_PzUCz=Xpn z4%(!#tNTTLDed}^IV$C7p&x@~g?$a->v*pZOkE8=eb@RnR)sF|JAl*+2}+hMSNB2o zITkHUmr3L$-W0xv0)S$l$=&(9>FDwN=2b5osbI?UK-+}Lg8byfo%Km?CN0-bZFyC4 zdK{dUA>*!+k$+^u@L$0#hs6~u_ZTRXIEk$R4*g?xvqEhE$`G;PEEC|S)$73+)u-^( z?ah0g%-B%_phCkk{3NAKTGvtbY8)Khf#)t>!B+txr43MX9e|{s(xH{EKi) z4pLCMDs+p%cCxTMtLO_yvf=Is1U$18rH^L3bV?HYnr6eBwF>2#F1>;|XK3Zr%vR3gxi73L&fJ~*9GNC%{JXUzsHTrOyzS4NYIkap&GH|I(7gndij z?tRM%YADIs81j>!lij=cOSpfL$;LCAu*2)xr=AWgMF*H?y3;2Oh+Z<8?SAH>DWkE_ zkrQWjMapMGX&O?B(x~qU+r|@FJulJ+WyDY>rnH$Tx z8#NREzMFvzmjqfPSlm&U`dx$A3-pw z5F2!-WEj@MP*USP@~@z3qJRzndmmu zHXOLaFD;5Yd(3HJ3Evc1VGp0aV3%QOf3+{(YzO>FZKO;BuIm+BMYm27JXH4xt?`!P#R|d zPp%gu%Qp8TWA(VN&am_^^uJ7Md4c}%=?*%|6R#1XD6w1PbCw=RWK}SMjjArCCMy&U zoCMH5eV;JDq+~bz#URWvR_BsKp+Y=*BbN}3dlw}xbni=3j_2o43T@?b!?uiRMDjdU zKgjDoiLs7#_$!g@5{tMRm6Q{X)*&HPlizFTSL-MXlKV|Yz-Z%H8SczrzGxXlNfgbO zPw0mT1gDUT9VbixcO<@5=;k;kXpSo17}^*h9)SRJ$i1A`l9Eyml^}(vfa$l43})}^ zhv|W)p75E_@>?0xn%`jEa()^sY4??pKMmC{%otbtef*DCeh*8C6C!h2b*4}&+~{0| zDqz^&Frpv{Z~lsW_>Ta^>zG}z^zI@@z?v0i>aG6Taiv<;ALi>FOTotY#Zf~Qe?y+i z+QikfWd4;I5`y$yvQc_&7L-V#%6?uxD*ZB~9W6F98n>x@hYApP3YSi?(4o%0x3&EN z5OLlMsmADZ>UE@4BBCRBo&*@z9;9s0^->*!+ak;Zi<|s@RxGhQy8Q=mxdq`VjPfq( zK(mCCGp)qHLLjiC1%-d+QG^`xB8m=*yv>N9UO1F^R;&1+Xxs&Ua}`4c83s5v81($| z^6LG1Cm+%^%UB^Wn!W`CO%~&b_7*GdwE8~44J^QL$~~F*KHExEqtNSd-aZ@-htgf_ z6%939#A>gc>`qVvh&!r3mAO3)EvQ3foL?F^SQ8y^^_vsQcm4yUGO1VO!1v1TJHf!9 z6XH?rGf5T;Gl2yJ@DCtR=XW_GZ$yI}Po6n*Tzg@(n<~KZ5Ot+Pa+!pDD}vJSMKXlk zs3Ikx!UlSI2DX})kx927Brgq7k$%UDSZY`M-qh%`p+JvKjWZc`u~_Uk=+zMFTDH=> zm_N?`UIY{0idn%eaxyJL6}f*9(SlaEo(K{c_Cu|T%dl>3t{)I8~gznhP*P{3gf)QUZ_W%PGP zHStkgI{$JwwR-ozo1qJl+>0z%~a$i?=5a7P_9A? z-hI_I6S>9y^HWe^z|aGl=)odn0<}qZvm6-}a`Neq0+bK&iNgWKsI4rpm#)`Y;S|h0 zH>N`UMjLOlywy63cn95zO%RC>dZm(e`cGrSYl=~O|)5BnE13DDDm&z0l|~4 z!A}_upFia7uqfP@iMRD0O1 z?=poZG3M}p=Q4{|uJBqs3~5qMXmw^iy~~v{Ks{D6%A8R*gP;q$jx;}D|8*%d`1Vc# zdGj!r9z25~Zo(`DO4ztG8@a_cDd)PfUSP;l`!1jKdcY?9J(-@R_@10`Tv|5G4_Sig zhYA(;>}V}j1-C3<9+|&X%B7`F#iGn<9rkL7Xa$=HiKA8j zN71>*GyQ*Y{4*PKYc5e+=GK-Wm0PvBZ74=Dw@OhhBdKVkTywu9&1FMLbIV-_$tBbj zMi+!osMW^EE!Rr;{`UL(^Uvq=cx>-;-mmjI&sVR0gyYx@9l3QayXrXRri&syu;GDd zi|P*yZv8Miu()tv65k(s!8Eu^;mU3^XLaXp;~J>oYcZj-uKz`DgeRg4FPGO_JLNUn zo6>(%r=^W#zHP{KYasr^28^gj37h}n=;!h5E29h0oPP;s`8$bHU7xMoVer_^I?X9D zdea+jp2kU-I0w91QmbQc?MRnPs_%X6wCA$u9h`~WXxfgW9>#JnO`_ZVME9qCgis&T znbhzdhZxeyF|pAjG`LyY4ik-G$wj}H|7y3iZ#h`NZ5zJApLj-?EFI@~yvlF^WFR-C zVUc<^{0C}HK&bxOX7WYp3iGe#GciElVD`PfyNwaQ8I0JJmtP;p9gxhm@i-FCdkRf` zo4pkK=E!>*qZe<~Z^6{CD3nekpuNAP)VJ@f6+Neme*w=vLuvGgJF;+84wGe#qDt!Z zMO@uH)-LB6e{|>XGbW+8G)mk~U2kAhLt#FMv-T6Y7e@*<16)ctKfS9m?!BEo7i}BEVl)YW@S_akovw)H$Pku<|M5-g~;&JA970Izz_uS|9e! zc9M2h`ZoKa5%Wj%HWMO^hAv8u7ogD5f*J8yxSr$L(**h>>0IbWkw0&~7^jhkQhraBGrRHV zDHffS$(6tT?~$Y!=-iOqkuH6Ot8i4lY~E7&>4DDL?FYtSjvNL5uyl^UKg-GO<-pMf z>)%mo;o6EeZ>0CuBE1sKH&RK(H!a3U&hHx!{RaRSe_qj>d6OA4lWGy9Em$u6T+w^7gHUWY67rk4NbrOI7=w>7iksIfq@>-n=D=qThxj9-hIK2po$>}`NFeC$4LD%_h`icU{4mFTo>thSbQD~HyT`^&}O zq>PDX$(zr_ZV7vwBDcWH|LA{t@%Zm<06JNbTpu%lps0 z6*GHhKw&iKM;2?JyHNYq$0;vBMPg&=oX4^^qdlja6KM8a>f{Mo_tjo~pMPkLB#P}T z52b%No>@^8-udMA>!DnWKz7mUp}jG9=QEJ$tQEM3^~s^V>xwO2Z@HQ{UO76_)|4sx zq|m)!YyMMqno<3o(gsnRtt5I-c=c%RAE(G-m$oMPj`y)NH~?DE4qlAnCvXa!|2mZC zKU3f-?*I3VV=h^I?B&QJh+O z0%9YZq$SjYPM4;v3NuskZYKrm8{I5|sGK~uB8j{Sk@RnuT#bi*v|d%z&<$gyY&vlj zJApWHsG2I9r&?_LtO?o7DVTaR$RrIU7o<>)0yUyk;I+MqZ81E<=ZhG}NBg0oZc-2svOqUIMmYelDJHTy6OX~yFgiUw3SwEL+OzF@2Rls3YR&M5+ zUq(v;pS>Y|<1WGv{X z+0~*1V#0K>Cw{K>N0oW`S52kF^wO_L#u~h6$kMUYCNcea_qyrTmMbAWR><6IgIUwS^UWh>=6U%S@csX@7QZ8~X1sco62DT+`W&fk@|u z_eE@#SKbB2CS?h4`BC^Pzj2?&>k@=YD4?mfjcN04xEF}jbt-*nEVSRHoQ^7(l-3wxA+@0r3S({gMW7L63){-v>|j==;(i({i**+Ypf0}tqHtV z=+F$l;e02>%%JDC+~VvXmxD>~mEI#zX!(oin+tkp9@t8|GMZvjgsCSXKUmjKA?lEn znv3>BS0x_q{aiP&+sT#Uqk2F5PsQ?dfA`VWA|$yYMnR~;HE}~c-^f2$17kNy3Jn`} z9iM&w12jU=l-WMppfrPBN;1zl|C%3N>6WHIwp%}CHhRYo-e&X4{#w5>-@0~=2ti|5 z)g<`1u609L0Ff;awIqA;(yp{XlJJ+cZ5RAyjL%x*Pr`=osVEsEUdx|}AVLcc7p(hu zU5`pCWNEc;nj=1(K#Ge?bHexwm%-5-)#N=Xovxdu&lx#pHwD^ac=x7bTx%mF2`_3yj zO(?(6&T)I)%a6ZZX?8z!@#4AU?A`E72&62Rk(!T6ef#L&-Mb=I^rrxQoAO*wihl!p z79lQRv^;%zC5*DiZ`>2d#<5k+Q)e9utsxaJujy^C$l7fFd}m89P%-~mkO);hCws+t zAJuAPhN;Mgj{g3jZP#r6B}p$zUt;rWdvKxq4be6NS~`^Bs2H8)71Q`tR053PGX|n+ zDyP(ADi8?~?t-P&BDZ%eK|m&(M^`=RlGf_jFwo17lp`3yMrV7Che|{vp5_**{Fxd2 zc{S~A$&cILiC^8!IODv5`*_`V4?&*T9!W7$BXYI8LpENGc>YT(4n`!SCeOs+nmjHuKc53<*Cs-J-3?aAE_q<|9=>{BcOXt zx%2X!lh)>s#T4DD#<;#tz^+wYI!B_p6e?EWa*o>X3}G}M5Vj36&8FA1=RMp;Tx~RA z`r$7|ZW}&~=;)5?)VcppKh8gtzU_Htr6vDR*9ykY`FhpSkbvWAc0;231;47Hrw8(E^C*4NMNE9)I9-Lyr6)Bs-bEJgbKIli zYzi}qT|685sPH`V5fusvDj7ZO@zP4GP7iOX2!eNez`O`_lPyqUexGio41Q7Tuw|0NwNL%^CDjK)Q=D6ce%yPp3v+Y0cRg9qPuA?T!15yp-G-~I@AVz4pU@B zh~4fuj3f^_5yV*Y4Aw&%`0pRl2OewxHFCLXGsc_?9SBLWHK7qVK~be9jNFL?pP3uF zz~7y|5EYkSVv#v!uCXUiGf);Ym#)K8ib;6)Y-j&>_4nK^b)Ahn!RYQodzbi(dA)u- z)&TU{fQ1Sm_``DwbJe@s_b=wo_Xt!?0=w~sEsFcpDq&yV?cv(LsQl}u66d%hAjE6UTPiju56&Obt6 z^8W+YhN`ZfjWrzb36bvOyCT>82y=RDMUfYY?UMQ^ zT;I%@;ofmQeVw|UeIL}hTcY^6(@EIpj$IPyJb^8b_&(7yft=qMu{xZM{ayWivAc@& z%{*@g{;fZkzM%OwAOo7;zqxsct=|MONX#CR>QxVKn3*w z05)Me6H(iM**4|<2fVcY<2|ink1EM>`#P5VSWlEQ@XW$=-VQ+?&b8zuArn)8?C3nh=(@te8D>T&}EwQ#IXs zNARCjwqkkxQcr#v=T+Nokr*G@>c~j-K9#J^isJ+GvI6PIJ@qc3dra!WBP9=t1{9C( zZ2kfH7ZsUfdVNlI(wCzWB{SpfyM`R_<=hyK9`(+=UX7+ z@BFjJ>eK~lNWL`rjw#;2UQ&-mL3+|Qf1WzfU&m6tF+)->;!@1mk!uxMi7+E+-q*Z% z@T;f8ER+X(7veX+-vwr{m`$)c)y&;?(WbEiXR{eZz#A(_naa>asYmJ&qYbQ+tzJ!^hVa3DTSc>|V_; zglVJDp(k_!1S~AU8D(sq0!UWa3mXM3Xc0Ytz6)6bMKwuS5Qyb1mJz2z{bos!b^t*m zNGETWgP_KZjA^V$G@C7&XbKHI4&jqi%Zo2DB?=rs$-QDw!J1Iapu!!3Z8;m_BatOHKBg)Q+VWOb~9{J2jN` z_h@`2Q{h2-3C^ij^xEQDdHEU{{wVRU)Mul zanS_Bfjv@&UP-kUy7n@L0g~?rV0|3)Kk zsS1{gkN(#9Dc(^idNxZI*9C0Z6cUDEtR zKLd$lEa_OzIqRVp2?=5xOn>xnT$)1UvmcTbJ@)Dcl}zTyZq(Zs(H=^>6<4$7|yp+zT|~6+X`2z%q^Qz|jDnx=WOI|N|lQ-}{$71qGttP>F zkLK!ySAy9OhwJ~OJ%E43_JC90BPCnEBv-oM3xSr50C}&||DFC+xMTgSNb35X*;(to zQgtnE4^#~k^VcN)+`=Iv6y*kEX=)b1?P%dHlg*P-m**3y&urb$)HjW)-|c)ad?0?P zZ1w|maD@!0!Ttsoq1Qq{U&FsGFtV-n0_j?XVA9t*FYc)-;A|Mi27#v#X8!?I);G%A zP3u0aUxo;x)s-a>Go8rTDFf>}kICkjn(t!3n7pcEUw7Y&k-(ruIw-2c4QCwUme$X- z^UN-72N%ves6@Q|%t2%=heH*@40r3JesL3zycY>E_BSA!7%DvgE%h74rV8UiKJ7Kn ztA#Zw6`O2lym^w3*kwb%rH}MpE=)V<{q&Ba{n-@g1RLpuxx=%}v=2*9xn^PKMFEtE zOFt#B*uK!}?Y&;or+Y#5@&U|XVWs)ly<7brApsW@Vsjs75+i1+ZPlNTL(_NmBO_R! z5VtRdmPw9{sY&I!Fau^BY<^5!1S%P&_PgY)wWXesgCjKDJx)W*1ds^jtM5bQwSI_o z!@E^^?zKx+b@TVzF2#Oy0d1BUO+8)`yY|^;BDtj|(tc>j;gL5v+xE4kA@nLM#)YiP z9(r&n%I0wN_rI8yS0P@xXLq617W~aI!0D>Z7W3+>@4nUz^VI1B{nB*7TGgZGcb=yeN{{M{d&xGgD&9=1Xp=d8gv}*kR8EuR1y2M0}Bbi=k z{>Jy<-_>PBDH^>-^LLldzj4!la)ih+Jp)zQ9D4C#RaeJmDpuRdk>aGAPnFmTF0u1g zIJ5hV#ZUdaaN?*eBI}o~DHVi2*PYaD-vNsM=`H|5)6a?jL@kNsl+G~5zgWXVZ11Wa zXznr=ASvmKjI)hqhOf?B*c>PgY*33&p(-KZeH2Evpc*1#Q6r{CYkqa_S6N`Tyx6;= z4=g65fcf5#1=6`ngOt*zp+^`el02Fo78-h_D*#+!k9~B;oa+E}3nCxbR4pMA&M^J? zup&jQU|Q67noxPwEE9Uy(8sV%##$!unZ%>e$4@2VEE87?nXZP^@ zHz!g_0}b)dljIu26MsY2O6yO5mf~C1(<$VtIsYtweJ~<98VrfjH~IuD6~CXRr0u%> zL=o+8dac?-$=aVM#H8=ndBX+Z zjp6TUO#dgTwvN;{YTDBO_K0~|`UWa2G`RS7aCJE*pMpLfmbgJ-iJ!TI7O^Lq1kSi6 zSg|oE41`xublJoHL?Ab%9&~c1@z{<53mHfbXH)CdXnwcyf}_3o+n7+{(#>~=06H@? zdYGkKy1=J2_iBpBl~@2fg85N6NBVZgO6h0ruKPip@IN1LcTr;n!d4S{W5)hRtz2D= zw)N-F3Hao9;BUoyKYuP5PwOhhwVU@%T@6IAdxU^#;s3APf@w2O8`Oxt3wKe~aR|4d zsHT;MEQncs{7DeT$B{1((X{aaUt?Mq=@L-_G6-Y7>d&@B=_+O9hNcVQ_(iUx^yF5V zvXXh6%2bpXidjtP3gIYtvgEBz*$Tx}B0GOSj7pnL(F7HreZi6$&QMc+HWysnrDu-- zn|Nf&@gOOn1p{-Za6Nl3csHLCnf6WN46y^DkPO+pkhjiqfOpX08L|k~u=hx)zt;)%@>`!Vj>D&^}v4 z4xWruCv+JGZ>w9BVPY96db6Z<4yj``KS7wgkq2+-m;k89Azo$mtPv8%Xz z2uJl+z;HA(pSB%z?AgZ0GCMp=mh*sj7{anwj&S9bR(7@YgJNF40#7qVF{ zT%D7;Wp?LpHbH4ZgtaoJta*maeW`2hfW@D4IAg*zCc~bq1G2bwco#`EPeJ<1Xv7LK zca*L2w-mm!?0QU?u4*r%(CIUJsp}Imea3$IUO;Vaii9%Wh+wru=Bi`4jBb2lfr~zq zGr1AT8vMmh&1_b#kr~dL!a@8zsKM7G&p|8{>y9kTl;ZM>lFYS(1<_71O|vT$7EkqU z2IFUikslP9I|LHfVKbW+8TMZYKH7x5NYM=-be!h_M+b6V9Pj=*mU?|@-nPP` z+SQY%2GG_@;&kjuZ(p*!^Qv@J_GNazW2wMMwp29zKE>|uJ=vb;chE2*^jn+3{a%1a zPm8p*i`MED@0kw%pt1WU)zr?a_#U;e)H2u3B%LMSETHqU38tB1=FXf8J{^TfMfiU} zSW==43y7d}tJ+F=Gdox?0M8>x_Q)X*y*gJte7d*2A#E$M%ls$)T_FC*GyWCm1)V3`HlGFHP zB9^Pinf$OHbV~h|#!;z;7K6@?9s&T}TYjV3xs?H&_G2`lY=Kfk3O*r9L*%%mN7rOa#eQhov%8Mq6UGDtBw@=W~n)FByx?T zLbvNX>+VKNCP|=W#Z2)VLucc=Ctp6dK!W1PkM5^{igPE?H2&WDnE2W7W z1pfMDM>hknR#C0o)IDtu$sJX^rK1xixfhdbPWcZQ;e?Xr{<&C`O8~SLy~Pw@EnnwU z5}|j#{>HY6w-jfl%T#l)2zny^#5_b^9L!*bJdr9r=Ld8MG4V~^I3AvNa*tUa{1nku z1b|~wpFX`f5I5Qb`Bnd2-piwj>lqdPi}dR1u?*X@P7WV(nw<3Y!(3?7FK!~PaBl_v zG{+Cl5?^RMl0qG$(_6p0r`{Ga?ez9U`zV})4SOTt#8!^yhh{QvmPvwa8?wu9Clx5)Jzpd*V}U<(VeOHg6@7apMjYN{ zEOTx;^4VMuzF8&(xNHh4J&^o#pRWhh^g*`L9&FufqBz7WN?@vs-@4gjsh`Qg&Ws%X zDz46dUa3r5(a`(WELbf+^-14JbHpTk+$CC2qSde{`;0ayRv3Z=Duw5Tv@l8P@bm{= zswLWPOj@WDRM?e{x(kg>W9i?n2cwodjqmxtiud?j`VOb|P!*vPlYGufG%5RI5_bN; zF^9)pv1t`pMCFqySlpR?i~Dny+-r3AJ&3VsKdiyXe^+Jc|Jr$vpF|oC%l}>RJ67_I zs`>2sh-65Ek*6%w@6n?jL%BkPX6qT}+{zcSUxIDsc%vE&PKl^@aI(jMXl0Q8k{ z&pyIppa|4cv*%Wmr) z*S9>Gn8K@ppFc>r@CWZMefpAM({%rfU-M-{n+9l=6MLU11VLkhu?Xc2ZjfTv#8~1X z??f?4rhe1}6($xwGe+3&5rZ|$s!EkPe$A{z{Y77hx?>veuJEFb6&D` zd)CKw#aE%^AJ132-yJK(6#JjDwnLr!)Q&Q}b^$UmezUUWiWoQK!&O43CqNlHOutaF zw)=%`SqE3^H@k#O!D1=&r4((a-akswQfc-iv#k7NcJ7^Y1|62OKY&iZ)WlPH*k{;( zWF?wu719nb4|&VzPl;n%k)CT=d^@N>4DK@_hdNuLw0iY{Re^HYlJ$KeUtkuOCveg( z`)jFO1OstQvBEm*G3RytzDgWRpwj9D5_eBC?^%U!*AFyFkFG;J!)W%?XM7xBG&*Zb z&whXWv_USBry36!_}6qvtfIbT!#$-}+S$m#9L+w-8X^4C*ukzv1!C!JghW*OLM=HY)e44C&>AmJt zS@NPf5f0dy&ixAnbE;S&mq zFjyFavsRM!-cl0+gYAY2mn&BIWY#S-5BxWPAOpy?TNw0+B;ZW6pEe5&Ir?JlPG^Re z)(Yc|PZ9dmQi6+gdv_uPIIdi$cHM$ndgD;uuaX#p1ZZpz;y(aPy5)&Fs2@rxUoTNt zD1$C@@b9yQM8z}%HZ<1eHS?(Es_;_pqKHm`mYUTA(RKO;eaL|*gPe{n8B%ZN%j*p! z`y!g1C=|&=WUZjb$!0oS6wt6yhMIO7qX8R0 zg}=wA&pCzUqzT6IOxdgXmN9<3YTS(Nsk=g(oYO&G`us>iz5ry)#PU;CfpNa)M!&d8 zO74$bpk1dl@7-T#$sM03IHkyl;C$)juY4vTd@Tt`^k7XFUhS4NAs zV@QRFkE)RUr0s?~^=7khQS_&biEx^IasiTH{ETgiw*~IN zee-iks1&?yNMdc*vV;i*xLo4eqbB>=FV0i2sd+p@o~xP;;nn;$Et8YG_g?a7#Y&8& zr_5Vc58VBRQz$5%@n^kQf+?k`CM2gsyyOlg<+ZpU6XcQzAsaM8caS!C%E~t7#340G ziOlVd!EL)D_#Ggc6=N`_ydh(IQRhDUBtSwa8!x4VIS*?#Ou8;ptwKM&z%}tUf;GMd_vW-xq$7({-q9QNGTH zUe^>cY{_2_8`s-ST_Mn49MZ~K$pdN#T131Xr~35bTSi7toRdCQG`eT4E36-ql-v~6 zsSA=0?kn4N87N9R?IoMNos z_)$-;v=AHM^748C0m^7+&*WXQ8x=Oc{%It;Z+De-gXhg{B%gSaW9wA}uMB}170c(Y zTJveNTzsaLqeMFy+XaHAzITq*^+JAcL9V2}QQ%Ix-+td_FQywxrTrNMEp-Jx)5J{- z@v<#<%C#8VAk?^nCzPLPbUM%U@bDK$6uuqxY+6o-_#5Z8(sPdk+Q%SSE4nc2lT2&O zQ}adJG9q3VRiKu1t!cbupK}yes?YS75uf(QnY~{K*=IAN(`?qjWm{LI5-nkYx_vkk zN!_!JWId!DBYOKdR@b~yLm&G_jgvn=<7jI`E?VFs`3t5^3UQjsN-;8Oph2WZk=z3{ zgsk5j2V7-k?sPQ17mB7w|Mb}lhDjGBLNj9W0^w^1 z3})p0{E$*mrhllwkM?)a^Kw-dqmk@?JvSZ*6CAu>gZ@d{3q% z@}x_V{*KCmER}J}V1A#_QTO1QwTgu6XIIsnX#P4|ppn*feP5KlxsW>o9$YHD6pemu zuEG+Mb%esCm7HRhZZEODyL*lMdt;z7`J-6yPaE7OzmC9K9z_$agUL9Fugzzl(&^Oi;Cj;Og0cVKP>&dj+H-~HG4d9F z4cnbxd4+TH-h2%0Pw3$LA~CkOPwRsQ5dyf6@O!gm_$ zpI}8{2fGZSHRnc8*-X*e{T@c$9i3jULK+c%t259})C`w!3dSvV>Z*S^=^5h+9#oFV znd$I<6Po-6I;NaroE-=!0;k8{ps3xvr})I8gC%?0tq=6T!D#R7hgXu4TAAt(y9Nwg zfA3(eoZGDvxHf;*xtVj0pYq!j@dSnQ*!gqU($NVY06Uvf(sBv@H^~-1fr8`hpTG6d z_WblI`r<^_hn}DI0Oys)3;#-mOA!~^?1{6RPpXYo!mSq-p1+&=Xc+crIMZ{q$Vv?4 z?Fap{t@y)l9!>8(VSr?YrL*$7T5cqMxqI!2-4T6@y${hBI`6W#K=@=TJ83#*V9M@Z z`s}d_q=yePlXANWm=&=!9-_~7^`b=ZkuT>>zJ9fMU@`SgccI($5roAUF_HT-99K_k z^dFtbT=r!uUJ$lyoCsaJBk!!wTln6e8xQBv<2OD{sG28TYxw8+@r4>?vWxpnmY^Cf zjE`yaJ{4>K{780Ccdz8_LXZNL8pagHPn!Nbr?^%d8|Lk!yn6cnfX)70QYado36hE) z%e|U2e&R-up{9+Ce|~Ngls>#3T^!dK?r~WJYcLsOwxry%+P7ROG1|KD;nQ8rQVGK0vS^&*|G%DT-yg}FKJOMZJo-+E8Hu|;fZmM;ejj?p(_23N@|t{FVvapdjD zo5qFvKH|^Q`~m59B9hk($MTrLPY-6c_MGoVT<%ev-bS@B4keYm@7w(z;uRVrP7X$| z^*JW3c!(R5{IoB0?xB5oUXt7Bqu=WP{VZXUh(kOz?|<~6-ZD4;Os=uFnr9 zdpM@A&MlbiJGf})``DE0Z;wOrFs}w!2si27sM6lA2#qwTKEY7G1-dBQMM4Iju^hqSEQ(Uh)Iz3jp?2&n&lH&7bv^^bv|+@Yv;FFVKRJc za#pXd`M%~27|WskY>2f^X^dMMUhet( zLM|55oEver$g!#Hb*P_C$cD36ds9eZbgzwC*v-N#2SK;m|K%g2>7mi718Fih(PYtX z9u+M#b6ndwnam%s`YeMJE zoKgx?KSM3kwT48IuAV+79i4Q<3c$iwXR{&l`*-HjM!>HIqW8{?F~wvsGlS(*May16 zppStJx+b4eIyjK!5n}&|(1h(q^sOlXPxUEkHY53J;6F)}I(fK7p=poFmd}qPLK9*U z>(_*s(b}TT^D}abj$JOA(A2BI9(U`ExAFvxTI9K_&46|bnKfyTH_FhwjGFRNwtvIu zqs8D2>_}R%sya12+saKFf>^?iv4ivNInUU*4~H`uFK?xVv7{r7T(T8=i2kA8v9Y8* zvHH>cGH^Lx2;_)nq-L-bH$w{j^}0Syq=cmo=dC|Le|PX!OKVjnYwbE~ko<9>%fAA& zbw#$rYX9%EcL3?jtctl&P3zlfkq?W_0*T(&dHFYfm4sYt(bwl85d3XJ;K$S0f1~V0 zrfwu?AZO3<`zy#WQ8azXHcHlFZEkn$njyE0^bHV18E@YNetawg9VOEk96`FB4+;a| z+WXMb{~SBK(YbAZ#bVof32HY*q7<5Yk6Dhe8dpmG)-9-?5=xN-jg0*$pdewP5dYmy zSZRvDA1&`Jv?w*Eh0_r>0Hw3bqhy*>$1vRBMJxw`lB z44oh0z2TD7nxMwZ7wAN^#aqo)vUeN*LDw~sN}d0>ER~aQP6(3l0wZ{NSVgZPJs_k=v6 zb{l-I!ET!REIr#9BSDrxf|^1B<3Uy-J*%M^E9p;~p$j=x?XPr>9x**ie#$ck5iUdK zRl{%?AtWruMn|!hd6t%U@>buBBVz9Z31Qm;o$QA9VrO#0ex!*vjRz{2cmh~n|4{tM zzTe2$oOUeuRpd~%m6uah9$K^gv}5X1#|?*l-b!_`rhj@+qbXMaN#u#-&zGTTM_57l z!2wo~XB1%BhnA02X)Zc*T2jPw^>rCKS5OPic6j%|w=e=9MqWZ{( zjxc?HeP|iPsa|egbdPDiXRW{#O5=RDn^>Ng9Poq8g8{Dh&~{d-wfb>_2Z~-c)^bBI zsGuuPv|u{&)F|o%$d;*(WWxAGZBCkN^t4_sjqy!Epi}g4-|aQb4FvC{mGOG18Q;Ri zAS71ON>^`?d8H<cOrjEdBfHBx-p|dn)!^R2&ZvCG=0jE#dEje)V7Lz6ekcop+nsGWb;0 zOl<=RDZTTp04**2|Mvz@k02f58?1U}ja4YmBp{kdMr-JFD5X$sxMXfvgrdr_UJYw! zY)o}KcI#aZ_V9vUFH99 zkt?||$(0qaTE}HTS+dsE;uymf6^nVN$tG=mB6Nrr{dXcS{`C@-+5?5rAg4Bb@qX1C_oU!aUz6EEyad(-0@`o8*iy0N^CCe&z29c zMtpem$l1hR33v~ZDuzFICc~SBsg3t{W~j-vg3dm!+iT=qsFacg3|op2*9fpjT)A-r}6|Nxr9N zm*wuS-*G6Sv~2UmAW_0ShSqF@0WyS6&T{VM$K*-(+Hj7Vo|E5JX!A>=JA4rd9 zV^YE*lMl;v_?dK=NGFhqxNT1d5wa+9{<`NbB=R>uCcp;cP$35Ap#fT7sbDx)jiz+- zElV~m+;}A=s}$#zQLCv-iyc>yxv||QvWL41Hue`PO~MIKIF4Dyc$8k0GZxFkXZ>I$ zT&m5|@ua19V`|{4y;;l3Y(0x{5eX?_PQ1Gl=&|nHPvvnwOA%o78vQQ+jIgBcym26f zC2zE4YI^lZ5ah_zJ_01VhcnoK{dr|_BB!i@&H zP7y>$ltcc~a*5n^!Afy(|BLO(5iEL_k`1^&z)4Hwuy$%1Rm_@Hwi&jEtoy9M_^znG zjb@06H=620gm}4ElOz@7BTZ-@Br7cLo(dTA!J${#oHk<6eo^6bX)h9db~tM9by*i= zG*f|+n!l-Kc3Rs~pFz(lj0rYf`I3><+9R3x(FT;*(^p_Z$s<)AddMox*0+AEAp9-L zB@vW@l*=cqf61lf<;^5riT)*}`k?F`sJl1BMA#iM6@A=|-a=70K6nIdGO+)#{O*8V zYGlw~6?>??PgDgA9+E^l4u|*f%E6{)8P956Kv^5)YQ5Bm)k$Md>4Lndquwbw)*}ph z;H;y&E&9S<$9k@c!M2^Zy(mJ zo%x*pFw!P@-%C*9>)7_i-2ETd!Vhlyntf4>tI!E{ZS7YKRC|Yn*$5*n6?=j)j>KER zIwga=7dE41>SAks5RuSShe*kVgN9iiEzL2*Kc)ccy*B#2-pD&;(_#kQGue;RYwvj% zU3HidPPM+EpUrhR-gyV^LjwWqYNc~4FTe3W`1PNV*SSuQ@O@K`cNTK?3pM`je}%tk z;Tva<+J7HBsSgkly*A3ap(DA$Np4}`x82={2lbz*2WtCoE?e+riZwdXjfQ^w*w}QJjz~}ZauJXsA9+WrmvMv8YWBiT$sLI-|dlHck~mDzYc}?UXYVPF87Sv zjSAQE+82Kw_4OODX??SkB`@Qo8<5^tVq^OADgBxD==rUDcU0lt=JQqcvIJB!lDpxs zW*(4vgY&C;kUat^Vt7uv-a6d5=i9IFzRdC$-U$L#TS3LsomUT(gf{)lAF}6a2^p0g z-wVZ_jPGoTy%0LS7%5SItiXBlvhq?eI^Zhl0@)`F6c)rHB-Ix%Y} zE%5_N<<`bcJ6bS^?u~FC>YqzOBe3@qZ=s_Yxa1K#%;{@ zS2^RPFWu6lj4dycfmIPs;+%*sUMHTVkKhoTznf*C3LE-CiyCDa<>2|*4~E3^HPD6= zo}QsYxmV}e^hMOvMFTY$i|!PXh$TLfX#WC(PHTby^zBO5n>wX{_Xw(3&m|tKa>=A3 zMptjd^ruB{VKBKYxZN^#`uMTSEIsuRHTez@Lzpr%NdR>Ad1}G~Ek;i*&h$M!mt}Rk zK?eSXFDn)rWNK$IMN824rHmYi<~-MXoT2>HpGVK>V1=7r5nHrj_M^GvejAW*7D0F}7Gv+Ohs$w?d(mWy3eaFwV9bfi{>kjT9E6a`f6 z^}j`oc87c(KC#ROva|Vti5QrQTEdmzKYm(77V&4_-FDTi*^^MjsYjylGKSHvi< ztKc27POgbdE^FUzS}#r>5zjyP^^Ykmj3yM$x=$(Tyb*@)#O9gznbk*KFZ-+348?Y% zzzP$^JjwTxxk=`|VUZVmD-rP80}sW7#eWmKUC#*-Ki%h%pDQe{CO7jTu8o|SL=svT zEjK@Jhr?@Fg~nsbFsz-OHqGeM=qM7#hs*f0v|6$k)unhW3yg)6VOWkyKbY<{7Pt~+ zR;6brybST7Y2x#wHYK?(ONSf2GCcAwmnq`qA)id;-la= z(7jx|yNlKF~X zjUo(hr|cnVikgTJ1gcd#lpY?tF8d4Tm*==h(mR$M6AUh&=>)7!ku(J=cN%AGRaFnV z26c&V_LRTINM!c>lz<`@4CqOOA9@MKF3TVwoX|cMg__vQjJT{!i=q9E)IN34{+o_= zZd`0$f9&6>oaGa0(m!2N3Q>9Qryd8dD*_oi`Zu=WTUSKLb?WMmU#IBHUAEeCY)1{N5V;+#jA?y6SA!kU%e3QsU zq=25smYH;V7^n%WK+>avF*7HRAA@M3k0>pQwBc6K+pdKk<@=%lz8s@PH9^mgG*Lqv zR6grZSmy}GOXuN}sg|2q;ntcn=#tZ$D}i6c^sPj(oOc@50Zb6*Wx()b%+wcTCYFbe z&fU_!!hlaoV4&B0x#=AE@3nkUX&d8*R9&zypB{R-Nc<()Q>d>-Ge$~Crje3#)B+oh z4qD%K>7>`%gD^v~#6@A#b`HphcW(Irk)=vXugq*m?lG6}m)$kS@^vyuz5Z{Ip+Ycs zP(sU#!HlKXOf{*WrIuqP;L;M%#*tT+U!vgtp09CaXc-&@|4A^RIS?0SbBZ05D?!|? z(94y+XI?`SX)&F5e{VQJ4%I$-mwq*qZCn#R0|K%TE{7%{%0=I;;TxATy666#nnDcAL;*s6yWb)Z!l6ix1)}lic(C ztRY)Ik8U?Yv_3lq_y$}=m+PFcz|PU3pdT0E#K>2-G9F38Jok3i<==#gAjZq5}@ z@9u@V7#GDaM67Z!$|SE8IhgbUxj@NnQd*f7)61635LYPOkyeo}mse^&k{5dOM01_F zORq^C6>4E_vLrkeTO16uyTrOgErqFwT$R|RBA>>}=Ct(tQY$Lss{a8F<+2Uy%WQxL z2IE#u&89v!)%vdZ><5-U&u>H5=0g?Sbs&{qz|&M#N|TodM4 zOe*xYf2hkJvA&%?kd2N9tPjvxE93uoBP$nnVCb>3^~iOgF{r)fl=W`rBJl7B;*{a?{B~T z1KVT!?D2lRU)Oa#uYQ5bc7?^I#nra3#gz4p-ESf|MOlI$Esz?Q+=C!ZROy(4^V7EK zT)HShmJR{iW5VG?JFP%$nkek)d%VM%yCdgvoOX}-vZNx9)6ank_mhf%jzZ@#RG7T? zDqxZEzVaZ(29cr$>f{1((_7WLm!6#Z_*ewnYu>rQTK{^N@L!-NkH)mJ#N+z}i}-yu zjV*hAx4h|8zR?fob@HmQwFA{7Gr4v?^-J@^Dt6W;V`P8$tu1NnG}@Pxb8dY1;!6YM z_(4-0guF~E@<|k4zRoMy@vC*l+(BsoHYn{pYk&8M`=M7{6wUa&!?d)eXkj*zA)_u8fXLjhQg$iSS|)i!MCMd3&>7CRtZoX=Gr_>`fl|_y)uH( zw&K|%N!&!OeHdY=iBckJwCihho>UA*Ib5fsbn-4T4^!GK}kRRTt{J*?IPBm zwjf{9YKO0ZrOHEYxfIcDnL@VbBN*78n%)y#;&TCX0}{m`>I=^3nOOrYeEgX)ObXyG z&_(ss#??{vAtc@N40ADkZZF9V7R2zQqNfW`Avl!6m|$X_K*I+WY#!1tm{uL4kD&*W zUtZecXveC>2M7&tl0aCv$}Xd5g861r-Wdy9Sa!RS-}K{N0Ux3k#qRq6-F`LQXV~4iHw>4JvvpzCu;xZ3(PH@y0gTv*1xH<93MZcUaO6s z9`#DS2c~dUs?{gO6?(DIKI<9$$?40H_ZEs;?i3=ff5`ohwjY+Js(+K+fuh8_fIsW~ zknQ*e$BSkl@o2@xo66z-jqI!_wsf3oDBXB6)utWIkhXO`7gHy7f5~-L6Aiv}RJ_L= z4{cWDT+H;2@LLtAohe`M3l-)LH2fwf<)xiWJje*yqiSB*Fa^5)(CEDVkWO=9{TCOB zKg7Qt6qv}sSHljKm#azLQ4W)7SvRPNJf>lebMptI*u0j*Ih|y@WCnWG=s(@6igByU zc8Jn*CErARW{!m;37?_=1J0M#Z(S|`zXk%4oU4FG?Mp8DOD>CTBBf$N%DVF4p6yNM zNz6UOnydSaQPoPtJ|5}{uEBKGz5rlOg6Ne$MX&Bpv*%^K^e%Kf_YRi*H27;=fDlP$ z-&_3g^l7AHN!FQ(O1$2uWal!@`tsl<)~{rpPcd%Z$QMUm&}8-WaM&#krI9`T?P8zb zu-5xDo>~b;v(~O>-YzXZ*vLFl(pAji0IaKU^WSriryrTk4OyPk_MCV9_w+5qNh{H8 zi;JkS#>z};M*+d|#=_#cw@1d@zhhlhcxqmsUtkfk22fW907XWfQ&yXn{&-KPAyjXo zKlB!PTl(nzecayokSb8P^XaFTF8#32Ts8k0%n!EX*bvpzrHM* z`Y`irN6}Q;;Q*$Y7HZSn*6v90*F-1B6P{WR8zN`q^qJz{g)Y*m1GM%$&f$pS@>@dp zvz2Zv|9`+WGt&4;gKEOYb&G2@6Z-ydxma^xNy~V+>Ezhk+s5g(nY~CNBa2FN4vyowS#~yc-~e)iB%YB?xM+pU!)| zh6amzD$3+%zsdkqgnQc^xBI!jr=EIil=nb)f1h+4pNY@Cc}uiSlSfeuKyLTU-M(ee zdN4)L^*PnR(xQf*zdrHkW3eKST7w&Mv-26<`}qEB6fL{na4nE8FXJjSBK+s@%Ar{w z(rg_wWWj5#mhi05hz58E?-TzXTU~x%wd#sUpc8Na3sma#VR!P1mK{iv~xC zuvRVmRK|c_S{{omW~IZp&aJ+AJZLH(jODsWUsri{PWzbJq%sr^y$ByPcOsPv2roqj zxp=?i^yz?6p%D#3f`)g7rx78(ATYoG6@Ajv~uYs8xNM>h%{{7cBME{w{fBPv-ujT{pR22p1QPUyYfk z%gi|%DLlAbcq(eFRXKS+c}N%qoK!6B?4(ByMEy#pN4ee1m;?zMl3K%ZX8)3`_xYts zDzk80H2b1#zLyl?2khz(a{Tq3Z-4>yn#sV+X@(&ej3B+zuQJes_ey&xLD-)^{?S@S zeR))6rU#Vf2hw>Ohf35n&!(kF@pmgMi*_|d4rTxKL}3T*ra(_J+)H~4%wCzERTTZE z$f8|cC><&KZ;^3rYLFnb(+F~!w0#e#b#w&jTGv7H7Cx9;O5%^)G=J8wBTEJjTOoGj zN!CRLJtu?7;(lWxUxb+4BPw1;&LwoS8#)8NiN%d_@?LXUZC2Zzu-%O2P#}Wv;<6Ns z1@QgiNeiWMaas_@M5aa=ivEWj<#^F~psJTQC^J9oo|TSKJIl-FOxIcZ1XGkB1v4@* z7BK?sP!rzhqp#`y$XQ!Z5Dd0^z0pWXw{rVV{-W;nn`|254j{YTI#2vR_iSjmIr0rAamR)4Q-O#&=BI0+3 zAq}sTe`Tpi*l1YhRyuY)jU<)cio`)TYWE$A)_HUWnc@CR#Ri8+eyFtu>Jg2!6Z-oJ zwx4L-SND#Maxx;N_h|A|XR<=Iz?ag^1gI;UZ;kgV3&mX~$Sg<5UI#o^Ur_7$HHdti zM)Oya*HOI0gu#+~Z)D8`98;R$8L~aDb3Yxo?Gi|jnI9xAII+DxqwP-mmwU*QNy3)P zcj6DwO{dPov1+G^Q{t&m_4+&BA{7!9wiuaQ0(4g^(jS6zd?H!Mb^j5cXh;B7TPjry zIhIv`wvEJjwpL~sqdXZS{QXTH#>C9_IB*|eLZZ!ew;@3IF|QeG&w8o4Xgkq$AM$}T-o@ZO+`xR zo8Qrg#4Lh+c#uD)(us!l_bE01vdI$AvLUy4)zu4owfEx@Xv#GZJA>+M?OdbS^fs(f zCp~wC(E*ANX)mwfiqFvq1J?XaHA1h6u-f6&ZCNK*`&D9+u=C54`PDA9!BD<2yYHHh z0R40R)M`$Fv29h(+w_TH&~RQ~ToqC@%KN*XZR*1pSm>;qRsTE#yY<%KtQ#aZr-soyY-HrePtWVMFp&#kJwOF-1fFcxG;>fYm&bgnse8Zf`- z(8)-1Aa`*k9?H>EORrZQ0{X~HlH9b%yp*9DnCfXbL&-xwVsF~(Km^Y+r|sggeZCV! zpj0@J!g)yi^03PduG7dsgJDYm^aEQg1`$Poh`FPW!hk3S2&_`cmvQjFee6wFQJvOs zZ9j?}GqhfV76Uq@#1z%S3e2~82-%AbH@gDqtrTMsZ;^Q4K!nVTwXy)dgS^@yYbQMt zL&jAIptgs8+7khSlR5~s))XunlglnK@dy`~Ec#B|f;OI8!y*lB%q3%b0z(QsTF_vCDJ@*h z=k`@u;0kfalvC%k-`Ig!AxIk$b-7m$!tPpU0MXFqYW?loENky|xjHPssymm_?7mSA zAG@6Eq15k&=W5g;q;{@WKOfOQ2&|4L_i%j#7y)F3j+@6T+hN#)Bwk1R@#+Mc{TC*_P=zTlL8epEiW2F&H*aD-GCbz{f zZV>}IG|k?nn64`twVK8I2Rc^3`JfNYSaXvV*9ZNN zvKUW00ft>04tg7+qyG2DwtWgqO#^d!XHj1Z z4Z(uurzVLPsj!pLuY%9r>_2!zK$H4g7KPt;!axiq<|Ov>6+t!Ey!CyqwJgSk+dK&G zaf3cJxt$q6HV!~Z)p|}mWL@2`7+d~lYOLU!frs&%_`j-@O8tFD=x*adb^wcF=aZb% zoFF~vF=tCXwt7Duj*d{K3wcLA?(zocUH~KO(K6q^(Z4v{*bY8Fh zcx%87e%l~U50cF8TwwoNFO$IMYZZ7ofLRDli;VIe_uQ&eWGk%{PS~QwFJw}6g#m0l zU#h>oP~+KUzb~uR%d7n^0X__}vUx0SFwsOPFI;rH=J3#=ku65#Zee-Iy3~7|0s4Qm zwbg0kmj1pPfeSnz=xOaL`3RxMn1eRv9pnv`beCZ3QY>(vWsb^2$|IOId9YK+M43%o zCBk<+u3gv%kcHl1pcSL?bYtH<5P(JmT!1XW%?+T=gB7=QD`%r=kka`|8BZJMs1iZga7s?*>X}LJ6`# zVsDk#FNb%RYveK~@O?>fWawJ6+{)EYUt(_01-jkqkW$F&L-3MEtKv3W;~od+CdO2m zaRY=Di-AedhZ^k0w@c5Ln*+y=Xf;)%-xP1@gTWa7hrs>r$++MrUXD(@m?|m~u=&_x885oTu3U$ic zb2*LYM=yV#;vT%=J+5A#vZjLj;}n13D11CL?&ewVhJAW(dS`ZPit{POe0prZ%A=}F ziAp7t(dXhLu3ps0o(#*@UkgW)B`{JuAA~0FvmejCf|%SMI`Fb6CbDc1vX^sRwx7TD zHfr?*W(1D>$XfMg-EQ(%blmH;^|mV}d^Wg^wrCBTp-dxGSOHmgJ2en|b_uaI?fgj1 zzE4#RUB^TVyz2&~#TO_sb(%lcE7SiDPjuXRt>+g&qT%3JC`;Z-^_b7W#jaCRMu)8e zv6z$9ms)$oI;Gmy4D9D08=WsWh3`SEt$*#@OP-1dbNf1}lxe#q9P?tp<~s+R1Dp*X z{Oo>ul}e*i+d^EV^?jO?XaBiSZ01Whzjv?m_v>>Bx4NUPey2}54LCzFeiV)>FALpu z#kx`qB|tDOrG+3maY+i$!4J?VZLUGK9y`uayD*kvspWeHSm}q}{&og&Iht@d#qdF| zN3{v5<7zK%tNKq9ZWD8AV#_3~CW?xnvr7ceyCU@_GBG>S9k9)}M|{JZ zJPhT#?^C4h@CJ4QC$|AfJyc-26t<^Nhj#t6SH6*N#}8Y=Bw*3Ku`3GTr_q|hF5+NT zV7wI5@-(dN`BT?0T0K9ZVsc#xs|!xOvD@9E)nk!LDm|xlsNdK4@Fc(Gn@l9xd0R2v zx{7A?6$-hEls4JwpSOPyek-tCq6d{i0}TJhk7cWy=(#9@b15-9n}Sblx#OV;U!z%~ zK73(Ns2U;}%xLnIUd~6z;*oTdcZ{+i_!wfg0Kokb2HII3$6FXQO*O0M>z0&W@!E4@ zUpjO|D)*`3QGYRWl!HWtH@bWiDVl{6<(mX1DgV`BqGSMymF5=9{Q;OII^wE;fI0C# zQLf+vOGwZ$3|@wL99BexAOA!!UmKdu0+<*Bk%R_mNnVY4e4OOTV2HNT%}8_v2nUH< zuRS{O#Peu{9JQOb%^#gHNdN4SP@{YTIAiHzhlq0l7sKJRUecXF6X{|6G;h5&Hz>z| zVuytV44r@RM7P+WtuKrsF11HyGTfxuQ3XhafpjP_MM&COG#tkaqJi z;3@8l3zNE@^PW}K5U)rBGXXAc3!1g>h*j5H3qOQN86w9=csp!rCaEuH?vRfM^6A9_ zBS3*7lIB7dmzIEj00Op0Gj;dJT)}R;keH^w6ZHx2e>{7x3`R*?I$5G`pJkQ|sGB5U-G=Ll*8&CPY1Yo#TU*z> z(CwIhObb#h2ENE9YXYFtX5tnudi`+iVH=kam8j+BBZniuGj^?rK*7t_2U0c z7`yQ%R}fkT0b(^Qxqm%4ess^CE3Rzg{W#wE%J!&F0YgI0nn9T4fY#^O0czsPH`{S$ zS2z1sjbLO@EG5q@4M^D-goXmy44oyS3?!kdb=$r2jyX_6BMk@NHQf{L8%?JJ8m7p5tC$F$g8(m9(83JkB?3P9)1*8el77BA@sGBZRCuB2 z7!JHu1hx2x)yT02{LS>c>}3hEdwb~48kkj?^AW;miOp7lr~6tshYPKii4u;M>PE>o zdp#qg$xbmFJ@d5aR|Yo0fyEgT!?w1tkPaLgb>)?au2C<6_etDGr9qLNk(bBXD3@8b z);a7v1?r!o$AP$8^`%Bx_fu)XKz$KMjl%Rgx{V9X3Q?XXpblo5G`z=Mnq6F6)+HLRk-Z;>j(7WkoNH0PN5bpZ|_Dej7 z+FKliYQtiMId@)`F61rPjF67?20vuufEA`by(Cnwy4O23?IU${pZn@g6iq&shpe~K z=4R-X)JL8q*I}-FljuwO6RPzrA>lQ(k}qHNpq(xb1xn`~#BQF!a!>jrGdaF8&JMXB z=np3nEpV8_Gn)vCw3t3y=KS!xWR-d2fyk;1sh%RKtwCVfxlnu(9^{fnHm-v&jM7%k zpImTEb_`eh^6*HW9HU(YAKAxewE2Cl=jt z*vR7E$VBY!{NK~i!8y^fw7neQDu%zle)qFWPoa%&WQDeY6Hb5%`0!+ZK+9NxQf?Wg z2?*~1q(Wf4^7U6(1MV>$i)kJVyk`l!z?P^xBvk4Xc*>e;lmz(~P`3ULOUaxNNp2m& zs#W;3)60ak56c^Of7qnU-=E>C-IBU@h-k4(Vo!RAo->d*q$lPr*TK5-mn9SGcR2S3 z-@1I98RHW*DMA`@VEMD}KMYSX)av(DEh*dV(XdSZVQ>*RK5Y~{$%JiJML0+Z z`1grNGEKS$`7}S>TI0;EH})1`2A8kr=P^jhKZFd4pqq2YBLm!O<`zpifpqhWeEEB= zRj0(1FTlYtv(ltc;$c6^-r1jg3oLATY*ggm2dR6sF7O-@{-Xde!Oxzz81WO~MC4u5 z6a^GYfc$xJ=$a(;xdAznM70GL>E_>zPoRQzpN8mAI^9gA=pCDtkn6rQ`Cc!skF1B@ zZtRec$J@|IdBf}qO1DVj4pYp;gQ!h-1<%ZbZJ+donSlpMqck^camdf!)p!xgAu*9R0a_hxUzH5>Cx1dMrf}7S`kS3fTrfs&T51a-MgRPH zLpJs0cVVyiNsg$Vo`FG}bhorjqgsasIeS&s^1VKw1%>rPa#_Ml)QHQ18vWy&SO`!i z#^r~gVU;ey0chKq{A30e5Hy>`U8z=o=)QO2W07yV=mR#3rvY33a0Em1y%RQYtOoDxe-77!Ha1&-dWko-PxHm_D_<>l&^%Q8WE`HeF5K z@O5kvcRH6Q(}>A6V7&6~Emk8=^Ycnq`a+opxoh6lKav@JmsFD2yDFNXde4GuhoaUN zA-jD)htLa-@(twsT{8g~F~|~xM*B$+mT5>CE=4|dUs-KCgRX_~qj$eM|KnY-`uVtq zYB#oDPzKeo%my$G5O2+f3W)x?+0~(A%lPPiXJ(k-(2?Jjk)|Ztfm4mt?Efa1FG+pp z-LOOFlh);xL-#~OSU=o|=D$$j56Czd3T?@yS>IFIpTu-<{FXhcv*0&91%$qdc!U za_ac3YLKr077LpQ9uv4vE7sUF0}vCq13ZFIpO# zQIq)<` z5fVhb7b(Ffo%-MwdrO)_m4Pey2Oay{B5C`3OeIjUdF$B$F=L~<%tFcqx0ps}ss00( zS}@G+6I!cV8&g(?;#MVLv<2^~nZo?qv;8qB?ebvQ_gnLEF~ zXLAihf*m{B>mP~jM@c26tX6Jn|6BegM#Lc8TMsQ{cP=!+F1s#Smbm_8=WQbQsS6Ij zAZa{}JrX_r_fOKZsz_&^>BVP}-;ASf1=~OnhLKk58!A&5Rg6mB!OuvOoeaw8Sjc*x zYWDG}yg9F!ErDkIj*1@iT#V83?Sl?x$pq9Q6rkIZKD9d^%WbscpGPsQ>sevi23G4s zuC8~(l=;?59l!=0*;i%$AA6DtOT%sF;O)%h`j5!%kzTwB6S^Fwof1u1aU=&DDu?TR zzd{roKrsgG(y#xyDtSEJ?Z0w)DA!H6i0tg2=NcIdyi~fTmfV8_v#~?Y&(jld%#+f> zFPM$T3IWg_Qu!~>mSkD{8Ar9BkFBB5|U& zGCo(4F&gHbH8z;qM#;xK)Y3l;j|~p=19F~+`y%D?3d?Rxkbrrj(139i? z-m_i__TlK=mrc7<8#cW)WI0mw4cI;et;Lfl@l2D_fl9)7_1AKryyq>0@zGyzV=f4E zhqu#gM{{n`1t`Q{k8})qfH3KbN9bd6UL@~+C%i0M`h0Yn`6k9OktrEC;QC1%}mp4=-mVw4vK-2=g;%6CSRYq6zlOF7<*`L@t zhszX%AwZ5=-cYr-*5Nh)LSk9Zwynh91UHzF&a_;``!|aLE3I~((?ZxV zxw$;yrk$TC9jjPAzU)ISo3+)mYagK;*mCXHJn2p$SGM!!d+tfDQom1AggPB*l1x;R zz1XhFkAPCF5J}euD@3`Fy54DN@o!1bX7Kwa-eO>!{_ihoJ~`RB ztL1P9znX%LpvaYSucuji*@Ok^{KO*^er=RVP^66OwljO7&DYC!vKTk=_j#e%%4o=6 zb3@NLGSlxy@V8S=arC5`mAjJ_T0k3#aUx)W_ES^DT2X4YZAaEgrWLNZ5&c(veECu9 zdS$WgFud3n>yOp=0^gl);q_||fEM~8r7L9;s^p{B^w0gt6#j0u!cN|96&79JF;=nu z0dktEn7+O%tfKKq@-Nu-=rtj+6!7wj9zKg(2Os~=w$00WIe08K2oW#z&5_(rT<$F9tFh!B zYTparVcJ@1=fr6PK97@gbSe4^4D8S|qnEg%S4Lfhgx;yH2g% zRwZVN?QEWy77EJ7g=q0{w|rFMOcmFro#Z#&VECb62PpSSefG>t=Q( z`6Y;fpO%Va3JnAlwUe=dPI{HL6>O8hjjGkz)#qhu*8DaxGNB)nWUhTC)%MN>Rt7pv z7lcLLGD}(98L3Z^foRugE6-_+lZC50u)3@S;2nJxSTb!fWJ~ZFrf#|F1Wx~KUhb1j z_aTR!B*hPeRHj4Yqj9Pr$vWi&45Cuf66&J#KIEz$7g%(gjQ%7PhuF9>Yr~rtAXTCqm2qIPR6}zaI=;QR#Xyig zLLb?~!K@8`rKsx{Fw%9aGI0@j-ZKaG3nff2Rt;#8=x7rA(LN>xqF#IpJBIiYlrtP) zmQ)1s$ONs4^nM5W#Ea25G|qhOJ)3h(Q~&L(dS45(Ll=ZbTA=}E{BO6S+(X&H1>Q{_ zP{$IX)eH4kQ9%8q<(VldELNM&W7j~gY}Qd8uJ(Po0tb`Z#GK8C&OfKfmCF+J4X7a9 zsv*nwjH#ELeQ82|CmsSCUir}M?xdidd!sVQC*M@K_kjPs3c2NCc(40lsih_+iWxQf z|1&NmtEshbjdCJF({4cj1BC7*qiSEIK3$O6PGc+b1sHzLdEd}OPm7LsNov!m+c2n^ zv>0v+ch}L@O1(J01+^%d^mCde73jOtZ<(fdfH6tHcP2KyP!@8@1j&u1m;%9-+>J~LjMqivI$ z=<$D8jI+rIh2fC8Azu=HpUMTv7Htg7#itffVF_q|#4faVdNI;6uZeNB4XM!PXY;O4 z&mBv3RT&085y>Vq>43&c?emIzkv%6dWg4vrri_o^5kLsOrM*W_H%_S+|HDM(OPYDY zpH4}(ufJq|55R-thMJ#PQ-e>k*A8=a0^M zo}j+E-#1F{7Oe8J{Gri3+EOe{DOmuF?K{g!y zsd)dG@`HO7S{(nXey*U&g!iRPolSWvJr)nhDb%J zmHuy5>xzrDETQ;XW68^m zT3L)iAp(B_d>(GSS~NA27uoa9cw;ZTzefl!Wv@4BKjF=~((?~1#B3+Z6+$S) zW5i)pp;i%gb(%E-aY|?zpsoDSK3Z{4)-<4lhu9e{?}|nH2GHuBr;Xd{Z_^S3i&QR@h2&p^%r@oHi-Tr&r)C zx$$l-MZlY!wd8IB5tKa5XH!(BBC%ze)`~G>U3@KDH6oPuQ(Q1U{QSlAt8O>--c_h* z>1>bdcYWapJ((4o&mC8@o@FqjCKEa>*w4~%=;-i9oyyeYmWYG*O~_b8T-0$F@z=4# z+|{cz^#l%`qC!fUxD61Nf|=1@jl6si?X$y(tLF9YMk!%7$74{87ft4R(&j@-zRPs$ zba}tvg9)$DG%9iWssLPtk}cxi=q9`oY4M@NYIM8>bVXTQab+A@!z>ytB(9{)yKLvE zX_gy@ke<_H7uj|yfAjC;qJ5^gftK1V@}K)wVSi&4S0y#wO0}?`UDQ`5edS{pxQakO z-zzB4{}f?+KN`BROpE?nVC%tRV=-g>Mx1@*R~fKgkohl-`SEulMK=cIhFQ!@2cFOy zjJ<--4c;TSh7|JSlby4{XHVbL13Dn3)_Ywqd3JT~ClhlHwjQABMNy)@Jj0v1#zq(F zpFO+J*RMS{@4~n7=YQeqH~w+d?s~;O-!%2;b60FsH-BJ)V4eYn{%q`0l})U9e#^_) zy|4rUdvO)TbdtGVMRpupV>+K!KPUrjRvM4}edi1>q3_TXjZ$|c-w6a)ygz`jqYsD* zH#mQ(wQyKJ$?5tNLd9H-(&UVt`zyd8*@}xr39vn7F2Iz|i5IDdpG4T}P>7$VWRz}C zY0qV<+ugGs(X-+2Grupc+N5R9x#feoWQ>2AyGRy60e}gJVt8u3>D3(!Gtv1F<3ND) z`i$eUGxCDmkycPibm3%Gq)7_>S(S}HJGeZea)XhSUoS+pKwHIbicQo_loFw9b%i}j zbxYBWvlmyI;v{QyV(F&~<7+EgzjOfiMxTjPWOu*5k}r(_=QPGHevgyOdX(Fp+IQet z(Ks62WCi05Q%&Ec*>WOdAe08c1!^vgvxMd!ZWig+%8LPcXaVdBb0>?Ax|er@ZP%=8 zA@}d4V`O{+EN}77>I7sq5{ro=i}J@S>wn zn!vsmrHgJ#G2Yl&bcYC&{Xw=Ro_FFCf1rBMWs3_mVIbqBo`|}rEGh_n!6%m;MH8%4 z!_B%9@4>JjZzVzVaEPUSaoH)?^FLk@;nOr4ONu2DyWr?OB}qM|VFSfN^Lpb+Bgq9n z_sb<8e)DIPDIGhwS9k5Jt%}>>-N04gN6Zj1+gbNqyi#P}g`qdnCr1&v!UfFDxn91Z z?MnS@GKe_jAWa%A7s5q64eoboTL{|?p1NaJFUCOyut9wbZpT0SMp9lTt%Z|qgXB0>dw}jZV$-G~7Ae#m*E2Hy>eq-M{%8$;((ldg!p zK)yGS6gE(>v}tQZoS0cjZ83-dSpp*yan;)qK~m(mAM&Us8$)7MV9oNL$(mW=BRd%< z_*o{txuo4Asm2|UjoCofee_cCo=W>RiTI1&)pAul(NX=m&s_O~naq1ubnWkFsG)=S zzMAtZi+GSfEMGKg6m9f_(J@GvmP*+Wx>h}sE==noqdHQCH!I~)!QmtcH zL5EP2`=BuF^2FzgD_&`7i`jDt za840R#Cc})XN^e-XO|;=wC?v8AJE%lI3YtKVC-MCN~fTC#__kC7WkiDa+MWovu8-S zwwAcr#u3z28#C5Vy?XuaISQ<$ z)cXC5 zWwm9ap87>9$LxMFBSgDQg!IKIjacyVLL@64bHA0BOut@KCl$7$p!@r#^ih3bOeX;N zJwgaS$k@Fz2lJ`r_^kIsYZS#9IF#IhWi0nx%9l3FAtglyH{hVtTHfoHA)l07DqfIv z{-N1Him*Fy&n#5}+9@oO-0?^w{-axaO`GM9dXbV+hylF?)VqJ7Y)_JTAiOx#ojbJP z)(7b4VUouVOGrjKnQofb8&nJ=(&3VcV|~zPSYg3ku$6*8c3hBx%EJz|!gjL($45sO zgRQfBMT7<%fTNmOr3FaB8Bql`E_d)-LrMtB18wSOKNq~(eUCVHM&q%6S_5@Z($C@{ zGfw8t8j4a6BEuCSSE9uY88Mb$L$Q^3;}=pr-hTMJykF6~^LY>dv(4x~E0~4G^g>++ zr9(A&2Cx5iGV#wMZ4FtQ{FEGF+_M$=(&`jb$p*9cgp6e6mlsv6mNm(zmNoQa2M+Uu6Xx9)W zF${p+xXt=Efw4!6kyB@|HUqRBhOHg2UU#>1b@X}>gO~QXYtVc(7F#>(tFQX$)?PXu zO--T*JD}`+9e(OwV$i$;x9Mfzbqi|otZn9_mQG*^XfX?c#0iGS+=$30buQfBkJBOY zc0$MQf-)qm@Y5bp;hy#Wtsk18z>AI@t5q6rup0NUn|;{YM!x39Ynh|hKKqjONTV7W zO;-18m11{$iC`5as;ro4K<$R`4vex&ELT)`lz!@d9F2|bYXm$DGG9}@JUu6u%ESWl zXhPb71+{QGjA@*o;cu*EN`AQm7}64LPM2Q5Un~E_Vf59ZWW^Cuf3)qc&~;~uh2rRc zq#?4NA!m-F{dzN#qL8>k0rNsrMse`P6wevoh5HxEb5nl4;v!a(X&alIy5evMWjkVa zSg%)NxzFO)&`2Q>vpPC}AFxyN5dwu+Qi3*6nS_eIE@j&_V({p)sa;Z}jI+;3Y?PH2 zL>@D9O5vXlRy4K`Nh0dL2H|J!I(CA@JOHxoOjP0|Am>$SqW}s5{LHz~%KI)&+NU3i}`Ljfb(0xx6e7Ws0`EBr^jCwL7 z5cc=nHDJj58T#R0o+~}9A zmsn&I!Sh+ZA~uqP4-P-KrbtXGZt_@HmhB3wk7@ds>AS$>&uAb5S52g+3|+e~seF5Z zwGE%71>_F1Q(zqP(4adP-8^5?^u)tRV*zM*pOLqO-^83jm;I75x`XrG4s4YBKcLF; z4&wejk=RdqAf%~~S#Tue;zy(yZ=eMc02_=nkU7VSay4qZp`v=EWp`ip_D~ol2Fuxc z1)R=ii$=}%&7m%r=t0e+h9aJPe>j`+zy#{D#}I|$%NpRIRpuYj1qJ<|{&*Z3i3e<_ zlPX6hTWq6Of8sG+SD|^6jM(*^VbLq8td4$2`X>*nP_`rrnyqfP7@b@5r!+GHQvK{}f#fg38{;+AY(U>Qt%Ibl z0#-sHc&&U^z_`b8+t=tt!bc|`=-y|rUIVhpCVat-HtB1(k)w zevITm^5(chE+Cj{$?;qJxY0`gJ}lf$#t7NWvku}Ky50>lba7ujD^&;ZE64m)leUx5 zUy7LbO7XG%s#QeohSqz_g?ffm1&jcR7qq)BIAqP)b;kHy)}L0AOYG@O5R`@~5F}FT zSN0!q| z^rDULT1;(Sg4eaZw4W(bSTm`Wv5*w!GhELP7x92-28v4RHIT;6X8~8%4nFQpYsdN2 zqp6@l{ZX?-=Mi?hzQGI+=W;6H6^;k*)pJTJO|uqHcRqSy|3#S8551@%__~r&y_7)( zx1rm(a6jx^Cv19UcxPC|;XlnkQ}>}jNVGxJcu2~ZXRu|Lfz9byO%CpLLJE2mq4EOx zU0vc>n|sPYMsOJ8{{!>i&4u8skHs3^51@CpipkeP>iVAQ_wU{)+aq@24L@D_8lZGy zZ%U`|xZik%azz970B+(C2!|vm755?QA%{oID41ZY)>A&@_`s-?}K4Z;oCPKX#RN&s&RzaTl}|YmTre?K|ggOU)Sb! zyVp7tIw~A~VF^)PqROnRmRt<=N+<67u8^5O(>Z7t;In))_|#tJlDlU1ZG7i*{2qt{M%rSE3TnVFYY3?Vy&K6=ZW}b9afNc>i8>8h4>jWB2z5 zn~ONd!}5H@;V2pa2-8o~8>Y#z_dbo=I^-VzCCn1`!&NCt?=F1^zkJsydj4^U+l_jI zSOhCx>Naoo9r}^|2NM~|(1nJJmm^WvrzQzE2CO*KG(nA6n_~E*iFPjP&nyRrGfQUc z4E{YZsd{)xMxS!>)KQ8sW3t|i*M+2gIx79q)ShAW!;tDsdKK}mgno2s$zCJ&l+XT& zF%b?U<~#6>)Q2;=S#-9-`gev;Gt_K#ug+qoPpnhL@==&#qV4SchpmoRNjLO_UJ=SlC8gC%A z=06R0>+T=-B&j#w7PB4sh=$hSRR4qmOb>`w5C|mY0jAMQ28E<@W1GORqLm&U7Gj6* z3wDZyw;i1uG~j-mw8i#XZ7m*;;GR;_ljt9e?A+i7AZtN~rcx9L$M$VUCjS)YA@y?? zT(=30869DDLxV?!_!10NTF8`lb5!qe{;bnv3_Xm8&kLup9Q(vJDQ_28v$P!$4I9LL zrKr7hK72A_@#DXP5{nBHp9}aB@((i)y}O)8l|Xkw>7O5#S8(JHP1OK^K~klP#lv># zboJw_C_g4BLP!B%9e~(%nB>Ws-WT7tU!zY>OS%Ic|3}fe_%r#xfBc>;LvmJIhOr@s z#FRFt=FrR`XGPRU&dOm-j;WbLXl9#3Xcls=L=nQ{)6pt z-;evg-`DkeJ)ikm^N2OSwSeUbuWJJ&I{xr{*#W&GFN{?4wNi-MLth;4*iU!&^#XhS zCeqfrO%N&RE6H?P^pa!s)SZLuXLgoy^{mOSY^Do1M704+j%zCk7{Y;cd$ICGOTIC-XY-lG!BRoE7N#zCn~SWhMqT_!TB5#8ONmc$ z@>>$faAPF;`|=S}SY0?|)s~_niRRQ5K+p-Sq(6U5k$@A=lu3ui&Usx_v?F}Qp>GtV z{Yw$!!4(%I2uGQI5mA=-mGM72EQk^S{k;&_CPdTmT=AGhi-m#r;YqV$ZCL13jc9Ug z|6#bFpza~44{q&7{(I>7F~3ohHzY~Yg^LpiHr0SN@cfRlcGbJH7d<3RaI=3i#QD5! z@vJJz^_@aM5;#~G3gep0mWKBQcseP~Xl+mYp ztk`sph)`e3I~@A>K3#>+&Sd}2Tydiwwb#P5gwDpU(8V-`rgxA+mJuZavIjnLA?`Q} z$-{V3SKwQH=*3s+*pdAp-FYSTA>y#Txf*mdq;b7zrvFTD_@9GA@_R=}*hBS%ovE*@ z7=%H=6U{3&Y@g^NCBxK9UCHP$r|)7I_esWJYTUtj`T=jQ)-XYyL@-@(eY5&sssn;! zLiY8!KG<2eEkF;|HS50YReM;r!mG#15JbtaUC2~|x*OnU5#BQ92iK zOK-|2gO8g#^3To6dp<=s5ORo@I2W_BHn7!_ENKj(*411(d`|PGjrmz9it6;9?q+S_ zVNOt`;2oh9F~o22mq*yKb;(&%x--L3{Sl7>&IJfH&_JqR#5eUw(_KL;y~#(q5u;6) zSUGe&8Zir=Dq1A`H*a}yAe}BRUX6Ob@F}OZ5~POZ$5lkA70;bxQUXvWc!|?cv#-M8 z(Y`=gjYsc2mCz*}nM_Aeo&Y)-UkTjRu+<9pZ~~OsR|hWU%Z&|9-C?*xH7fWA{7e{N zO5g>>SmJlcc-51tdcTNvWbuY}rc$&{QdRaW#hm51*+3|uTn=HR0B1M*8g*UfedfLu zP97R&l&lSwLF3R0CZ-z;nI)CT7M~%7-k2zqj)3nf0@B7~p0+r)TYU!<7Zel&I0;e* zjPi||2v6zSsb|kg+B~qB*rhepe$6EMYWX6?TKe<(lK#7TE_qzgC9IqIWeA4^2oQ4{ z3-zYThUhSb>p?Y8lzI`$rc0K|me0uWw^G^+$um zNW$}NjzH=Aih$K(p7W1})LTXrHc?nuYu`bh+#^_2Jy;q&dOJ1Vr~;zUPsNLs%Kz|{ zQ9H}tLk8Z)2WCFMXf-DWncQf1?y@`4I!tiCyw;>SgHGgsaIZJ=3peE}un1TsBJ{tY zRCM}>o0_+^idnP!RZR| z8;jtNDc8+kKGs(c_q=~@Dr;7O{0aebztC|+_8brGMNkuekk(+E%98fpl?+$sLa2@> z8^LGMq0%MJ#O}l(M@rohE)qX?I;7}3+AbT7uMST)@92GJZTtP1v0z|-uTtur z!v114)4#rFX`_a^JZs6lu$Ej2YMVh?rcqZQ~wJ9_y<}qyT ziW9N{Bv=+xZ^T1I<|+j|Vkv|gyZMCNC1j+J&(vb_!8U6qLv#98vWPY4h2vDUcxA=! zQ6hh z-Ep2x<0*sRSxav|wUQPw0lyxs!B24YM@MhkcWZrZg}zR71c(?aBP~F)NlrFf)l$JT zv6`>P5T)05@p##`W;e9d>Y)HX+UjHsaxk6?|7!hUo7dEwEFFmx!{n1R_1el@xTLIq4GF0P&LE5z&+4~1|Rm}YuP&kBY z`igVS%8UEC?jGxtla{|AdY#LMvd69@R`ki#$G4T8%jABN68=B>D0od|kNza1UROSu zJ8aseceSbRlD@{|rPS>A&icNy?9dQIT4lu;(yo?pqo1mn2T6o1zH1j1geKVS-8FY2 z`&N#f>Ic54*>Dw%VFk40~ybaO|o@I7J;p&`JufcLOVefizLo zbYkO{X^@S-A0;WXIO~=5w=qUZ<$<*r&7WD6l;C&@(b_^x;@j__YJS4`TUB2Y6(hAY zRWxGd0Uqp|=OwEo5RXD)fsC}IKYv@|%zdNmt4qx_j@pq0v)^c8`Rm&>vxvvwW8db5bp0nHoezi7v0VOfy!P<;kRId<{&rgq!&sF)M>V5`%H00E{b3+9r+#;^e+F}%}m&w?Fd*~JtY#?Q4nT*QhP+RgQ8!$~xrbXzm zwNxQwPJa35-no1yS9pk*{AGBbPzZ-DHewHG#j6od`p+6ak->))HCdha={MlVqxMv} zUI9S)TRyT9SQL|g0KqCdrPLfQg{lAX?_B)U%ko!}a8Uj*aby^3ZN|Pju8Ovaeid$B z9C0}-Tdgai5e$ZoeqhKr_Y0+aOe1t)dx9EKP-GV8LA;ak_uqG}?F=p$Y9wJ77ogyp z?~6D6OylxdzS0J>rJhtLvCjwLwcRP_wodO3L2_)kasLk?4vdI+NkN5Ow46O#STb8I zM9bmynwNN|wa|G35_{(U%)20HK{QzngVDlMI9<4|hcxJ6SX{^#&R`AGLX-W#X&oJ!yVe`@|7BPD6PUFn^GJ?>aoeHYGSqUw2|}`k zY-mh=!7G{Veb%5cFPG|(D*UBU4(&9zjPEcDXqW~3l@07@%CwCyn|0w4$f2RI9XV^S zTH~j`5};U#+@8FPGlsn8=hCq0jLV$v&1(Cc{$zQIu$xVFvP|LjEkYYLc-Q>-+)jyOMR z=wPkhoom{fSj@2&d$dMhK6{n z<=0_GIoU}CbTFx z!WW7s z`@SIy1$m9X*Ly${&fTeatvb{yjh=wBwl-uv|Fb(L%*nXk(N0_aaNZAx}m!E2$x%+Ou2V+44X@>&x z(Ho21;%}34A8r$R=ssYrYml~)2C{f55ZxDg6xo#6cT&8cHiS0O*<-F^3f|N~_lSte^ zQ;IFE@==+0vH~n4fQ=FRWmn1U6F0J>k8Y6#sJ0QS0__4luY=I7ylrAw-|Qmlrt59z zS=|>Q)1?4_on0(?T%l#k&*8>Akl!vG!7bwz-^ZQ|H2-2m`K%y8N?#xKxKsv|B|~-b zX+<>%5&c6Y$Ga@zY({^shZ_dRRsa2?8P45mFqm=!>}*js7rVeUbrRa;U1kX0`HTVR zv#sLF_`)iZuBBfDI?381QTsa4iZApKjjGq1je>_y6V-R>I%EwVp8bMcUFI&{690hG zZLeJ}ht10702w&k$kI2tbhB4dg}+GwDxwC zqKq&F_;uUpQ2SksUyELjOcAPmf15MT^?RlF^ibI-=QGk~1WC_hqvTuOz&z+%`<4fI0CaWP*ZuXviCPof zRyke19`LtAggGsahG=t|*B0#Lqgf#AXR;>`%&0SdPf69h7`IG(zNcdQ3T$QcpVbEn z`fMTf^ERh1%%b_fQL?h!3gvipnN9w(!;P%D6F0lpg@W&k1vZDbCNi_=YI87>on5`=jQkS@TH!Y$xq!eo_lE9C7**n$0CM1wIzW8Ws zH4hY*MR>DR_I;(ezlDn%t?pgr)2wE*%lX~Myts2e`e1*^&SQqs>Ms-jecJC2xr(>G zM}F!A9d3PI8u=3>@5#r_DgF=mRA<_-gn5qPWs!yz#RO!H?m5m8l)G$y%f+e^>P=0V zx37h>F$isMmS7xmlGIW?D}OTW+lni(5|)>ha&)ep1X$mpkuvmcD?i{rc%XRy z?eWn_%VLp>j^F&Ah>;S-mD~6cS->9y(F!6`ssRS= zG0!Np=z~?3*boZmySt8qa-(XGIR#tR&93%&fP{KL1if4{zwu68i^c(#13Nq#w_AHCb_kLFyeawWf z?^EB$p(-1H*+k+a}qi`n4%HNvMkb9f4OG@noI-w*ZhD~tUCFp zx7W_fy^k}VQBG78D87Pm{~oHc*9v%0pQR{24FHWOG%b{3`tH#2jC-oxL5!{nhKr3F zO1)h$VpWN^IPpd6aOAc8^GjiG{X}dq{om}wuco6>^TD`! z-evgSR*9fxO)#)6XRN0&0*oKH%jkwGg$v_bA;fwq<89-z3R-3Jj9&e1-E&Imh(&da z7aivF=SPQGvWsckL`<64h!WiLEHOlfDb0Ti%?U~oM3c-Wy#l6rqgo!T_w|Q@R;h@Ob9(&tiM z?|NmV5$na%?6IeDsYYuRu9msJZXYBq>GFECjcVxrv656JZ5>98+@;JfT)n%N1%;|L z=RUkMcG3w656RlZu3o5jIiu2i{~`C7%nd1|;wv~@{m#bz{0_%?^~Tp~TD@Q~v3wb? z>Q+B5Xc4hzF9!qG6d(kPoaldswF_pjoT(;U&L8FRqWBS5eHRPwumi#5+0IX%il2}r zue_`Gb7}JR@5X8|Er!@?yk%-nQ&~Htwox5yE2`$;N z#!uh~@lKKFs46}fTsOMgCtlyp3^1fM%6ajwDY~T5p`Ti2^Q-^walD`%DdAL0O>uhD z>Jp}L!00CZft=GyCZ}V|C8GpQu~jD7DS$S_lDf(Qsc>S6ARtJ`Up-67RDA!c{~S4; z{ib~Jn536qP%ZC1{k7n+`2Q(C1^n_a@#^mBf@BJ6%7IiIT6w%l)z9tRWe1KEu#~NH z87}16qNcwcjaAf0RLowNs4AEYdbkLF)NuN`#Qf;U95Mg$o{D|NY*JeB)Dm9l^@#^V zVNc@vWW5Lb{_AH)OorF7);@)M2BVCg=upc7H$Gv%^HQ2lnt}~imD+G#ZZA(-n~l_{ zw|m{c-J!%Jfc86s{kPw z^A7$*rZ60>nly6W;@4U2oWe1mWcn!{$S5Fwg+q}|TDWqcy;RFWDxTR@;MgV2OvbT}a{oW^!>DY`LlF#X> z!(`g`2It3nfV*cSx9?2an@b**v*m6g$?h}J$GtuckUSWTRzDEuVcOYXYCmhi)^tai zhZ;hb>S(2TPKNhQJ?CL(-GL@HVe6fuai9bg_{Op25zd6hIVwG^FsXN0l@X&<;VVyf zR_i>j`c^^M6<^G9Z~JQ!)!3w=e4%kBYAm}q^8-38Sx&y&+MwcDdi^{b6X1kscX*9M z7Ebm20A$6clN#d~STv8J^42WlqO# ze^;${GqSZJqxp44!<)y+=n@i>y_5SfE&bnt$rP6-uPjtcE?@rVdq>E;=c;~*{&Vpz z$;>-(H~YlpoC5*ESk&54WnkN%ms4V}i8Yx%vGhmt`s2?JePVsUISggN$kNHmXLU0< zrJd!vkeo_afW7_b^%J(4<%^DQ_dT#sb-O}1h z^TJou8&asR4fM{5W#eDdOsl~*p42oj2&RFTX_~{gAGP~2l{=d3Vp6QqJoOtocA)~QAV_H`KiK8I@T2pY;s;n-yr)A;KE}F(j(y|8rg2hu zl9F;MD(!=i+h)XNB;@^LN_r584t()Gf$8@(`3O(C94L2RN!seK^pgKwh-}QYBQ3*! zRKqaafZq(F-nYiWLG91S&U#%)e&8qOmi$^5s2UByGm-NQ$eaF){F5Bc161|VO zv@7NqR?Zi-xwJk=022=CJQc# zb7mOrkBX4?>Ypn^Q>3Bj-#!K_dwD^n=(iMAcytI2JQ4rXct0p?Vi44deE-e3(h$M=$neAA$klD7rqEa zT^*ws9Wf|kKED!)BLstlixAm}%(2Q>hT1_6S?E(L8z?$ixHK(8*>BYASNie32r0{? znvHTw_c+y^czaU)qFjGdm^#H;9$X0&r&gXl>VemBn*fVRobMW~{^}3^G(aUs`I&g^ zO0rb^MBLQAZsU;mO2#3ZVar7!X!J(0UdT2ykLOVT`e95#o$9ZzDK(j)F1T|6f-!bz zZl3;zaQSLeQ>oUyw=2rjwA>IXnQBTe)%$|lD!n8jeF%Bt^)HRAB|9EV@GL(>KQr4S zA&ui0vRN%vX%2GY%@X0>T~;A_R=%|jzQn-7WoFhoDxDNxxjV@>C?WpIXFVW|O+91~ z6dwyBS>1)?xKWtGr9U5mFh`$)!!i7y*HGZAWA!rmJ+hh8?1p)dKF0(%C&=$_p3(30 zF{gZtWwM6dEaZ;(=J?l{BL9A1ND@FAjn=7)DpJf4xI{Q%wiL&cUMv<*Ew1l1p=^`u zl>=lFQZ*L0e53b|VIZkEo}`NWV3*1d5fMF?*bq-mb= zF(rpu4EJ73H|{Yl_S9tcb+j58Fc$VbMtHW3KlZMD@rQ7?AusAWQ?#e>T zR8x2;GP5*rE~2{{6yocPVad;^_o+Yl8ue)e;cBK`z2)310qwT_S28){`vYYbrpjExBVRw+>mbG^FQFw%iP?&7g{B!r1t)}?RG)&EoW(Au=}wa)B!1B$#Fb>`VHYW zbkclv%P;6^Ja_4+ZXrT7)lQbAoFx`!Nu5MCO80W`L2~l%D--l1zuzvV%Za#u^|ifK zE*RplvlMYGZ4uYV(DBvEL(k1cB#VbIu9+Q_WF^q4td(H{Uyl^y*TdMk-M0)6mhWn` zP8MH?glpHk?#PDzQ~!UR1^c?8`nAX+jVFg%Yqzvnz@VD`KCK+SnvTcocyt=NBY{w%ETV}iV%)uK&lxLPXgPA{=#R#w-f z8;6W%ZjF!4pz@wbImkK%wIsY_E^i(PHXIlq8dE7rJwg>U5l=0TfZwT5)AwY3=0bt_ zJUFy%=@s4JvAZmgpD)em<`MO*Gt9;{ZysCsnZi7URA`zwgk6e6WKpE8eldyLFjEJ@s>X?F6)_4t`U zXym*Ph;SS~mCsAzf%HbhDG1)Hc;-w6an=L}tWR&W{11ribh(C*pD*+1Z;4&{?5^9O zWX00f4-(Z<@O)Pe5ju6?#7h0|)Ax>OUgZvp5X-w=iyQ)9O zLq5oqttqxN1?wJ!zp>{%n98Japn?C+hIV+AV6x>zYA$5@B=}G%z6)ciO+1J}oKgw8 z6^z0D3g<9kU`u_YYL=MsXGIf@zh%f(1hc#*gJ%xjH7z>D%-n$eIo(lqI?Rb^(XOS8bOnO=#gHFH$^gj`Au14-=zy=)Y+3||%ue?uT{i3-wJWd% zj6!q3w=RtOGz|MoNbqA5JfV=pO_7y2>3sQWs^J5-=WI+d`|NCjymNtnaF~`tneViR z1d%&}{%(_d{mqlucHwRwv+YE^a85(q@Em`S8fKubQ?97&JjJpEvlV}OY>Vr zN-2WEq`-R+Yfi9@53K<%A*4WuS=Ezp0zTM;xY$a5_rPg;x&4<=zg#y}f)pYGH>+XF z^gJ+V6{D?X$IYZmK^sipb()|vvb5M1kHpP95rVd;N0)bt8kpA&i}H@bO%5ER|HOT7 zIg=1GXF9lGSxmF6;wlc~U?OPEviHuoJF0JQmdaK~B(PFPhNP`=)zWpe6GjQVTw?iq zN`e&F>KmKQs*XM5E zZkCaI>j{s*;h=P$$Ff#Xp|LgiKs8*lY*W@IGLFBO5 z14iMF%%V5J8Q0=jCQ`^nYLDO(P6aM89W6=Bw4CwC>=uWBl|UO`JbI1R%D)Si`+T>v zqy&rNN#FR_YUw|>`z|qIWX4k=Ze^1Eb3C}vXW>MB_uJ3sgRk}U9lEMwPvU}9%R;$5LiZGdJo;j$mP!nnmql_N2*{sa;v{_fJbU_!w{Ur@43RAKTJ*-4zKlu zW;CWE5$kNQ;M!o;K>m}S(%be1v+aD)9hS98M%3=lT)WQe{VSP0YU2L&ti*ZBsD#=^ z58L5=SG18zdmxkh@$}KMu<%SoZW8>kxMnCWgK1RhkG9kfYCE9z09*V4GtO)Dc~vW+ zL2jz9j5(?4qFyFT?t)tf2(oJ!c`Qm)6l=Se#&SZQ_sI#|PnX?sKNO<{rICxdVCzQ) zg>RIO`{ZOo_85cEob1^-dNt<-Ix@Vl(%-kj{Vh($LIiC7O0Evo){%@UTdlwvi&D{K zCc~6P=A5?2q~;?6R=A4^ji}65;6{y3t#a+^8LbNyOa}^L1H~Xh!3EJ~Q(XF>)D9|4 zEEEf}{Y0Jw;T7-y{=htxY?DgLX8oHJHIDiWd^`@n&syruC2aXpV90o?b;4=A$`5f> zdrN&}<1Ry5hkc4U0%CeUZ zjf$T?*VbaULt5d7=JV@rpfn- z33y@=o&NR6;q5{)R(_9C^Y7t)`W7!$@pVe4G+Pg5C^- znwb{7SD6JdfVs@9iAD94>t1{ET`Xm*22_e^oGh#F)(;G>-*(a_n^$tl zm^kD&J}efu^32cj$Q=qKuLq<+CD?R}mhdY6Vbkc+((hFT1mE)HrHP_jX)Jxo8A1Mh zlTp(w3rgmttk5U=OsYz@DH0xWL4z8m6Jmlanf+}<<<8Vl|Kr<_^pakil`hg0=|9EF z5idBH80&wx{r8nN598TXp>Sjz4!cn?5kxnvDbwxBRNxIiD*;$sjp-1ExB!1Kp)NG2 zDA=&_-pj>s)eVza52Xx4?UdYqRm-u<@MmE|gfm$4#AhhnsGOZ@^8W9vuE`XBD@D99GW)XR8`m09IlLSh`Au2kmN3jpNt#Cxk8r!}i&iv}+W)*h z5R1L6DrYj6=9?$r8FG$PJ*Q`Vmq|PgdZym|eD;8JVgFbcKnw1b(y$~c;S&^M_plYG zaEFf1Cw}}fP3RTdSwxfM6Xy)ZNAes@sZ!yNIB1)2j{e~K@yPksO@!5ze3fb~E-VBF zM=attMC*;VXfHHtTTD|tOMXCJJyR$ckz`W0R?yF55rzE{SSvDHae@|7nHz=iuaV2U zl;ay1diA86JeYPg7c%Ywzcf^MIYdsC0!Do#SE9W4pXrp?#*Oc~%4JU|Rb=Oi+hjBJ zU9r+3ed1zO&jEySVQd$?R0?8MlR$(oT7~`=hgT)ue8J=rUnM!=#s2igwz(v3Ju_VA z1wx!cedgij*gzZ+`S#~zhoM>1?FK_G5|aqJ2?(Xp3B3v*a0tkJavA59Huqiqo`+<% z3p_E}VrUBv`7^VHkbhZQxt~r(0iQ|cmI`vVmiN}k%S)ba$<42Gm?R%82E?h8lWshG z#^||potWU!mGTB;Q>_sHj`m|ezgBwGD7pp8GUqw zmE1KIu$EtA-u%lD1<0IYX7Q*Tab+Z}66+a*Pq@#(9Mj3L75rFYkFTB&d#B|wIM~wg z0V_af{oH628usKozj6u?MMaCVevRsTKzVeZ8w%9A6+N{+Fp{0P`1RT#(~o*ghGdTf zz^@wcORo?k5^@i0&+_K2zaBmD3bT)2EWrf)}i&C>GYGxSOCS468!tG z(7${-K>Kg4$9$d#LKQl0bG6Fhq99})ke&k6GSU|BR9C)BvQg_nf+v$LOzjRC8WEMQ>aZ1Ir#mQhbXS7NHPC`ZqV- zV=-4$ompnx3`c+zH89jtH{c)N$A#K#;hNq$4sHV?iYGL`ZdTh3mK=lR&MC7<)^28% z*#pkkW7V8yuZ2vh8~CG7A=kc#z&!?wuevT4L)Mlv_uI<|`(HN8a*Ln=77<27^E5gP*hwiwS-goB>3&x-*r;2N?3> z52Nm{zPX5M(sDfH{r~n7W*tyEVod@qzGHg}p*mlOiSM_dla-QY=O+F0 z+Vp286(sml)Yyq**U}{S#%*yz5=cz zL~^o_MLhNz&)eFRzb{Ly5T?#iZr>;vl6ENkO0Zy4FL=6{PAjymn{L@@B=~Xg0yu2- z^aE~6!|QPRjcccj>foN{RKt9m5d7`)XhgqB5e!vZx)a=6d>J7(VsWdmtBGJP)cC$3@txTmGL z<;d8Dn#n@9^@%Tv?TFsnG90YqF*>DnG8iAC7gvp28ehWiykz`rWLHT7^x3*u;tEH< zy#vi^X&;(fh2xN#UWXoEi^G`YYYT_{B%@bhbF|Q}@yu~f=h4F{*DwkSZHC=DK8r`K zBJflv5V=3uML!OU4vpX4uJ#~}$+t^;k?Qb`4LtPcCEbPUHKc&Q{`u6Q5hE;>(Ar}j zDma)xE~bg9MJf-;b#70_r%F4gP&JkVdj{jYavb3|2l=|dmwmkl}<*Csc@3`SPbPQEhAe$i$9Dv0O z{WtBuZB)l}fo;cxVF(bDt8Q69J$T^&jdf8gU_o|Q79BvyaTc;viuYBHGL>3Nd}Dfl zbE>~N2i?U#-|_s65lJmDIv8yDV!$=HV8x8<4b#Ge#|~Ua)_GssvKX zFis@atm$?r@`|?il4Pz+bPGoyiC@Obj+NJiNnG@%e(uqmK8wzLs>}7!{j`KOr`5Y9 z2gzPNKj#rrNhrOm+*L)J2CUoCe#zW6mLTXQF$O;2he1e9H}^+rH%>gg#X0=A(N*In z=Y2Q#m$zd0+hHlBcI3oXf16$7_IDJiKg~CdOxlVDU|t|&K%*KYL?m&W{5nqG#Bl#h zQA}+_%elwDdUQPQN{qhRs>C2ADHnwf{k3?=S@MLP+lF7A;&pOQ-u7wH#5hNkC^vf5 zBy(ND$@7ziTt*8!>9X<3qxUS)eQ%)du1X}cPuqw{r)#?ZnJsR$p=U$B0dw>Y5NgIK zZ?_@I-OF9;*m$e-3NOvqvdVqep@=ut^lIbn^09TAtxtqHvptqqbO<2ZVN9x?6?3`Z_IGhLZh9c( zzlstPXlY#iueHHpmhS(6qL>?!$rx4&td9%Kl4)$2fUIb=(yg*4Cne=7F%|$F0mT0r zm#FK}x&N`h0PiMeK{qXCud_c~QSYsNul44sX&Ix`p7xEsA!;BWjbM#MI625X=L;@l zH6{i8gjDM#n<*7-+cRRjx~5@{@AoBP-46+D?J0dT#d}sQ_nMz*$Rjz9ZX|;fH`kqv z23#mkzI|S1qqKk2mcJeMBNW|QO&N$7>s)!f_?|qV<#co^;?0vls%8-BYG4FAeH3yg zJ#KeLWbRQ-Q{!vcJ`Mgl^ng(^+0oMKWorQmfW!b_O-woN*hP&}2)&GDaxXcRI6bv1 zR}UF_m2|r*=^Kyt35u7K@LxLEj5HZL zU76dwbJ-rSj92P?hzP8z_h6Z2vkG{w?D3YYn2JW8SaVl-qD4Q;SvXe0@G*YY>x87y zia8c?rNL1zLi!4bv6@;gEbJ<1d8C@}iI=(Er|cyAxxWc?Eul`4K}a2md&$n<@n!f5 zQ*PIw>z=>}j@ih$-$ygrD{|k1;j-C1DZ*GsFL&2pAu97-Wp9IjGh8}yr|5D7+di-! za=j85yPykK^_+NgIQfYNTg3iqopCz*QnIwdR9VV=FuZ#&1>3j8N`Z5)+v=ox+TEk8 zzc~mL)15pgKGavbBr=@+6?Yl9931KwHQ>Pyz*=_`i_dY+ppa^>Lp(6)8kqP``W$DYjKv}P)DG!65;X`TNDKlBLTy$9i2nz`c zX{w|D`YYS3e zC7MDD^B^~}AhL`E5bh)HPn2vP;c_&Qc|shZUMh8!B^OiE*T<@2PlX#QwFve0JdM9P z@+<9|TR9cOesArEJ`miwmqELI)rnm#VEus8bg(~bmo zE|eukbqA6wLobIOL7dqRdqD|T0?1T%*jxrt6+wQItXSYQb0xErBKM@r4y#*pCg1y9 zWK+P^y=Wl{$}oM^iPWu}pP_$5M{=jT&&|onnR06b1gE@?$pcHfGfS*_sf$?nk9zuo z!?EJQeI_S*YlFC8HcK9-Zb2L0wddGQ( z7gMa>J9*VPSj#NHs26o5noIFdvmvDRVMn^st_T)e9~8E3M#u z`i*~*le?0FW`ZgQOH;8o;Zx{eF9V1B{s+9ip-t~m4IPfUJ8<%o4!|0c zgr1LN;hj`3Jb79BCGai*QXTUwlLOV;I{NK6dwp_4zt+K?Ri^=ygr6**c?YH?F0_2I zv7Z#G7+#JPpp~`;<`Uc-ty6Ap&uZK+qeF}S!xv;et{M|Nj`g~~-N~Em3q*(;;x>~Tt;r5yPTTKn zgYg0y++ANCR%?sq8;9v>1sIXin6x=rgv?tGe@Da@sV<4bk)kz`Y`4(vDgT_P*ah7p z@SL=0l~!}6I$DdjC}d9O?iDl0(L!6Cx8638h)v#F_Y#sm`o26It&l^dEh0jg%%kCE zKVqE@Z(j&Or7OrIX%P(uM3xiN8KPF6gF+j8e0K1ox8Zu2y8A)@u zSlu(@Uz3D0_L*%kqhF-Urzu=?YO^$Owt6-IM2q6iMHC(PDU1nARj&v=YpLGH6~R_` zq_o{<0(N!L15f1-n&bL57NM~H-*yKYzq8uv(Xtwo#;TjhIgXWYS8kUr>Z#jvFoX)? z>fsjEFT%gqv7*5H}X1vbQDhC^p62HMxQC9=&gW;bqH91R2Fww>-!zcsbBq zLRQXkZ7uf2kZl8PpRRL-sF-1T;))#kfJ1B)O9IEAU@D$&3pm#Xy zVG~J%M2(YMewrr0K?)xDC2IP!$8Tm}P-*H$tV_G~u2$@(c8yo!`6_F5C91l{{swCO01Ml1sl>btNPRaU+w~PI82f8`-+FfycW?V4Wt)3 ziPN$A8h`Gf67?q1BE%39NJDCQi`~k?!Jz>nKqFa-tb)b@dtHR4?YJZt~+2_OvNHQTc*%c%t(Eqm6T!Q)9PI z@Z)7etNnVWp*YR_VFLN7w?EtA$+J*t!GHV21Ks9<$*7uSX>oP8n3Ev3&X~w|n2(tg z$gBZBi4+7C3N1R$Jn5}1RpdFS$Q|)W`%s&n`oY83^Y*mZH--qY{=GZY3y-+g|M)OE zMzmw8Z+WE{zq9MGPOsGC=0I93FT-Mdw*39BXE8IvkCM2La=506l5LmIL*tC7-5Zkoz?%*F#ifuG5_1XB zMNx^d%B9@uquclQ{{8Qq{bM`t_v`t5Jf2!_b%t)*@~J{O$x~-#kXqoYzER;4uO|mt z;T7&otIzgySF<>mHjj=z-M`cjE8I)jm!6s9)SvifRfD{8L^?cf;EP-Gy<0`6b(h5# ztdlG}(_Qa_0{!QUAukg8#jOUO1m?1M-3nq1x`X?h2Pq!Ay!^%yGWtn@8SMEka=I@; zwwOT;WS%?s#294m6FN>tP4msK{OPb%GGWd`u~IpUNw3^1L!J*F+n=#HIKSkY`8vo7 zjFK(}f;%C(66*DhaV(OcF9{;5R_QcTp;}>PVA$*nGPYUpVs-gh67J1iQ@0(rbSieS z*3w<1pBx57a7T}1z4-fD^M9aM9{1Gs8~c#;iD5T-ODl&^5?ly|FYWoELgQ%|-+?Y} z{4a}%4@w9MZh0wVsj@9Rf8}XgFgn&j%rEHN1woBTLm5Uy#%iI>vnnp^qv+wr;5dt` z>df6C+qp@{KPLm_#0^#IeN%*)(&S$X6 z%O(?7@^Il#t4Ab;g5&#XxR<~76rnyCfJiDP;`N{I0*{ht%kaAS_CHY^8_bkbp%j?l zUE(cR29T~)1V6=7X{1e$7pPxAS5q7tLdLhJl}$qW4nhpnsbSDn5llwQG3 z-{dkD4SGk6u$a^|pk0U&u_hVci-%plj-C&q=t)2U2Gp$Q=Uij!E{`GhlEENqSdM}Q zX6v2T2JS=l$x5 zNFyE%)q{S2-3=~v4zpf8Am(4GF$xQ(V-mXoMN{3^sG&#C zb}bFr;?wIc)?`e@NTKxqSJe`mUHhq`gF71U7>SSYWLw*TiJq%KkJmKxX+ERV&w%7lW0Y z6u6vD>$;xkwE?WRSjR|sMPxH|rsg!uQnPLhB)V5Q{#>y&2M>>u|7l|cLL{4p;?Er- zoxs}a;8)ivIEJ>6%O3#JG`Dt2_%@Nds12}X!m{($6-AV8b^W(=@2dV6W6I*Lu`fX_ z>eE?TPoB6bqO*hBH~Z~L@RSyCg53zLxlB?B694i(b*uifwRO4$38ZidR0O{pc%~Z; z{m_7#d%%UrZpg?wiRqdU1;Wrt^46`{NS9BLlAngDkH5pETr6j37?qhlw>5-n&eou{ z|ABUiJKPjX-*wDf{v?xb6PgukqXiP>dz^EqiOLE0TMR$Ml406J=*`O^tTM8EEtEB!7I(^e=iM^1iH+|!JCU|PQr-JSicKR-(@9DAGhaTk5&<^=JMyS? zf#9vML0&-V8FSCK8dF$c+eBTwmFc;$YZL^B(c^i>5v7rx8{WaBi|FlAeJfZ>&;}o1 z`cu7_&8K)i+ct8u^KVRPN8v>Cy(1aHCvK?jOA`3RJiUo$ z$>uwI{X80$zBf6y+~jOeH+h*T&@{hP1@g?&`OH6X+(w-anniHOkw9a^=bB8(-VQMo zVpT30KCOAzrFgEPYd9HpQ(XDKp?iQQS-wZ}qv7{9o_6-KZ2~GhWazjW8M6ro#0s*E!@;(XEkUv&Kf2aXY{Xk062l^<`2rs zq1@L;{>xU>v-drrKI-Ivp#%zg9#}|aT2jVdja1Cm& zr~%}ofJopalPQbpUQ;uuX%4Pue8!oY;Wl4VvuMY z{1s%#$($J-#ZJX9XyKXgcF}i8vA{WYWVEw8x}H#E#+*GfpjoObHW=$Jg@Yo;la=jL zcmTw7i#JRc4xZDK-`6?(PGS%PkpwC;zr37eyWE~b6=(cI1I3POb_h0?ce-5lV@*49 zi{MDvo*vlRhAelId0`LCZ1wHM$S&cw(=IQ{*v&D=rs&KXcSG6O^(U{zl`fr)5nixJ zsl7PeH-VoBw8KTj7ql``A+E;`^WGKM0dM^!+>3B-Qu*L0@pm5B_nBj)0v}O^_?b1(vkgf{}Buo_T ztxuD@VyVW9evn8TmwodsZcsTd@bsn8%VRl1DrieEgE)voFO9R@V3M)xnKI7G%syre z{uh%r3ruZS{PokC?w*f)T4cUV% zWW@Df=ynr7nX}?w+#3px&+3uGARTT#KY=fhn4f`?1Mit~j5(HDf&ugUhZd3+f=18I zoSW_A)sTO{-=Llu>Z+Uvhmmd+UeDRt^ErO-r>UFz{C4Vx2$Kq({C$93NfOYgjZIeJ zV`Au4)gSQj_uY$wAV_1n^wGyxntPv%<26W<(ivP9;&*6Gmk;j%8^5vFUqQJhsYi20 zWF}cj3dm-~ae8ICWRHMQTlg?hd)>U->zlazVIPnlDvfP53QQVc5~>Te$)_a}nDrCX z0O&m^1`vd=Y zO{_LP-}ORo{VqPmiE{EpKa~K6vupU*O;Ws$Ivvru{(O-Ki{5^RO!*Eh5l+aSAXJE7 z)O(&0^+4QeQ>2+6tE2Z9nqHprPce#oi=iRrd@(|+{bE`(a9no4ku_nn ziSyfUba8`1x?N(5^<@)@v=jeP2$xT_>py@M2Q27TsqH{ihVza{tX+XmNa0f%sW z4917?7-pGK@iW4+4k1CEG?)u_sN~3UC68>%HlAzpArS`v3q7|z zS;>UZv7wbKLOu!U5G5-tvQi`Id$t7~l~le&{;U08NyW9@`YRz)6*NH0M@DJhIC|xM zy44=sty^naq0H2^e*Fu^<9$W6;1fqO6tA^3*XjKFiK>seQix-88Ev0|+pgkJ1@huj^8^WD?nP5c;qy=o)2wch z96EBBd56d=Z`uNG<8zI+EB8Z66{PBsq2&GiihO5xQ?5Zpog8jwXBb&4nL_#O>Ik~4 zJaSu}cN=5LoM>JNrwTAYoqOQyLv1W>8YYR1yFB}!KDWqxG4!3 z1vbwIX)02HMWR6=@j1``pgxEtpPn=@?v2AG-}0La&RVptWF&oiiAm5@46fN9*JbWE zHZ(mrc6Oev1^zK1yIcF|Y6YH=pg$ z(e6P`4K!^O{A*H8{7demCPmx=+eM;B_#J2pwA9~gUH_@C;mwKT*Axr{Q#DdMRMhKd z)2HF6Sbc++f1^$pX-$vHA~1TkxzMT}Z zXFJb8SwT{noVK#Vs6@@-RvvJ0DuY-%6piY8iGUigar#%k;P#j=Ep&l4(>{qZ2LI&=aeaTdoh7d8 zpeEr)*H2pFe)EcX6<*v*dT2K(_2@5E@a;n@aLRdomM?n)YTmwOaX8(()NNJ_aH}9+ zPl2{fW1k(%ij7^Jr?f;!qhMih}uGl|4YTwD5<>kb3MxEzBpImNmx#N7Jdb!dhCB7 zZ{yU=>5ksCGUW`jhkSeK`wsN%5Ha+-gOr`!UzTRhX~{H=YH9@gXeOXbE?ET5HR2t; zWWYLQ1^L4n&TPvU%@4kr(RT=-2vtktIPa%bFGVMHD93e-!sJ zZR_7@37+<$ku2AOV9FWjdDl7|*X6iRphQ9Ja*-x}eq6=g0`t<}r;rt=zSgN_KO6TE z_4kCiA9W$w=Ha>&LgpN?tkg!sSCSFR9k}{=NZ*Y3PeIJ@^7S-M1YUn^*1+~2{^pV4 z2I5R*Uc0JQkLqE3sgK67U~6+9f-!qQy%;j4a49M%gJ&tg)dX@^#>W-kCD>rY;bK$) zeEr*@ypXH7lgXFae&G%_1Ew$gNJa_!0UImw~srpk-P zeDL|_Q#`Mrr^P;B}rzy1c-h<5GjalzO1_Ti?rBWDTtFEoKamAjB z7_r*NO-m~P9_zA9`tyzez?sg^3bt9FHhGj0w^?^e`Hqlf-=}=@(hyX8j1kBBQ7^k^ z)O!y+7pl%`Sc&OI(5*lmGwnhB6N*xu%GdyAsWd;1zpAt^QYD;tbuX?} zYiRzZ3Ipf~=^c+29e-V76_H~(bxwf#OCX!SSggQN*R;{HEQ3(oUEo*(bbN*mzJFLL zLz6I}#_C%w+f&UbhTlK6iDO;#ZSFw&z{}LlpQ?G@e2Sh1IZ54`CD zG#Yi5ZD*}uYVn{HVGu^f>>0=%kTq0=XIz9`yaI8ID=R}oK=hV4X` zuRsfXl-Lf=@;B}VZ`CP=6)LvfEkyTEt-Ibm`tG_gEl{{UN=AN4~XT)F4h!Wz;c%rzMr^c01!9lV`DVwO~SKZUH+9 z$A9Dosd@K9k%z@yg^zgsE(fPgLZ_>AcOU;679yu#V^WD@oi=m0@Wq+fS6dzK7T<$p zD4g!bvdyBr0!~r(E$Y4v+|K(6ua0B!3@qh`lh4Fvrsu%l`+{n}Y?(zpoIcP8d<8Qv z%3y@MppO|zFwrj$Q+f5QbW7hvi2f9L3*h-CyU1EjAz?w@^dpw&`DzBm6gWSxTUu{V zxKzNUtoqM0<+`|UedQW@%Xl2GMhur-?kUA63vxbH4#23g}1v2d&J}A@79=an4d%aGKoO3At+wu|t zRr+!lre>H;<*>awv_cq?P=1Cc;6mQz(GoCYyDYg)MR~#5(&uN!VJ0tPKNZ&2>sU%-iC&gQC2KeZShnvkq`Z5o3CBWQEv!~t zPS!3E_yP9YYJD~ls4)uK^oK&;-h~JU9(8Cv2fNG=hsT$K&T@w1u=3{T6Sf`0`(nYmnP>b)ha~`L+d$FB?QXi zF5>ZTZWA?&tQ8MERP51f6eoVAb^n_0vV9#BEABko5aTYFg#mFUEiQ;%x7J3P1elA%a{$#?3_F+Wzy-j=^sT zeKUeCTu~eZqF6E(F;^0YXAVNN&&}3ya>MTDamQ}qcWcB z17o-RGkSCAD_Jw(Jgz15C5QIoxoLpi&U^VQ`!PMVkc(kK?7p&}qXf-t)1CX@)eO$Z z{_{g3lR*)tZc6FW`%~+uTQ4LRFXWhYh)^QdKd=8*s@e%&Nn@? zy=hvZ5UGcfYX@afR?<`Ad*&Jkbb9yttq8ZX7>p@1aZB9Y@@kmWgY*Q}5Y*NM=WUi! zI7rqkJ3Uvip?0P{RIXM1P-hs|s|kh#p~+))4U&?qOMazCD!B-a4ko5{{U(qtb?2v63lF*ME`4*GLQlPk561)@ZNV}9zvmUUZp&{jN^L# zzS+$25gjX#Kcq>|ufr{AmH|J2H`05te^B>QQKa|_9#D6P=NP-Gy}mU){9da1Z)N9@ zxWgz-+Kd(deR3)~GVJ6=Wg)>t1OShStaZQsw@njV*SPIbp8dOCg$ zY>I|_?xaFF66PJ0XCU9Hopq$qk%e`JJ<RPLI{WK3bp?yNJWFh4Y*Y@%xk?E=|IeFrmF z2rel2g^-T7MEdbjZ`-~L>A&xl%tKM#zht!62BRi}I1_qMMHEgM^xVK`MV{(ppbvC_ znI_1N1CA%J_}eZ?fRS&(nwqSPG1S1}P@|Z|wi!gUV<)|DojRua?_qWGC6wI*ufY(s zlL{OKXGX0*vkfrruO~E4X_ow{qXg`pHl|z+}@kHp%RZ8sT-b4axC8 z6aQykbE1G6kO9C~?x3#837HC^Z0$zXMk z<((%!!5XZK51U4|b`0&*x;)#? zk_+lCTx@ZEzZ`HM?5UFe;C77r+;5jxGmnT71f($r6z{iownnk3=Al!p?ZTt>=~_(; zz=M@91$d^E-S@ew+t)lC<)c(Ap!5P+nJEA0%rBmKGk!SrK zTUI#Yy?lF$2y-Ll&Wh;dcuN#A3 z7k1yyK(Tj&(N_uOAWO|Vw0X?~8qX@1+kFUv%DNrAsewQdckBQ?*(#x3KBnhgg+|&I zt_;E;daq0vZm7`A&wir$bYp~NHztZnb{)TUgXJRZG#NTF2HY9&m`l4N%>4+pe$u{i zUM-R66DZ8+rhNHuU3YEZ0s5xY?Vr?`r?4O0qT4nmSK8^#9WM1pEIrv|&|fXc>3}+~ zn~7StJL$n?!r!7ln{`!E&qkJCtOTNwa2$6K`s)=ngddES=)6`(NVo?tE2EzyHxM$b zJ#djX-Pc+qOTN}IA8G_N58 z+)#C=Y2prfTYhNGkk@>i%74P&d-6)1F8k!n<)uZ3AB%)P1~_dfEevs6s`zIi0vsd> zZvr9mN1J&IBO_R1BNLc>dWe36wk% zYQ?+bp!wJUP_RLscB9*dm0McqPZKrCU-5vt6MW& z>B*cH+BB~1?T1}Ha%w|aAz<`;*_ow@65;(0LQ~AO+Wl$;P}8y?uVC=SpiUi39c)EZ zixGzKzxR0`bRZ~38#K#Fpl10`4g2(;MP*86*~2;AGV+r^meqe9pNF}n`z??8P7-?~ zP)@?^oShlw0IRj5uW;kfKU~cG!;e`!d{ibz4i2 zKd1aVvu6NTnO)MBc|NqP2zI(ZsYWb0Ftd>75WVW=$DYE5<~B(IcKa=!3^js4)if1G zsB;u2&NfkBd)V82vNBakjZi(DcT~|MIL`1AM+qx^$7&GBbB7SClOrOXp+d0bub;JZ zrKbsF_*B1$6K+)lwRnd1D$HfH&C}TWGS-c@A+73+iTiwFA12!W%H?zi%W~FQkLuU~ zU0y$Oi@_{Y)Iy$nvM1Mi~YbW)hK zt$ZFm!2&f>aG#S=l)u`G2O~?KB;m-2JQkZ|)h|wYwp)5n_8c)tP9m^i6C(vGya-Ng zj3I2DIXx=v(*Dez*|(&tCxdJ<21%cnz^UHW4ki`mIR-_jwRA3V4BYy@eg}p4V!4+> z+y6?S{_IrCCpzez_Y;nR?^&U~%;fjp^x=(KPm9l<_x9ZSn{wuPfSqdi_O)S{JaZfS z50mkqXBcfRoPfV>PX)#7LpkW!*1%Gg3KA5yPa$=m(D2l4&_ z#`|ERe-j3g_AA{!erw=>%m9>EI+-Pu1ruU=6Hw@kgQ9WOP8rFy;%07D}?fsN+=gfsn zqk|W;9EXNL_=0i7zcZ@Ef_@*Vo@-#by_tB5M`J&I=m-^`*KR6ZyF?BB)0X@=NCJCS zK(Sz7r~>K^Y9-90&#Z8tBM};o%Y>!wQKaR+*8X<~<@}TIa!G#%96`A>uQ8S^7KN|t zQR%Ne8ZfsK(FUT5qk$tz=(EV1!7-20!-9J>S*d&CZI`c2M}`>d!w=Bj&NvUIYR#8z z=V2qTHF!C=wL%cmpr@ws!Og&)-6d)uOmC;XS?YPkD0kRb4=v_9Mt8rf&ISS8%dZkk=|o`C^X2zJgNKyFa48>4YaZQz zZ@}7ASS*QPS*~gCc;(_`WH8{F9}hgxd8NfFk!9;yfPHgH#Z{;Ux!>nlP}Ig8x-L5| zuF>^9>DSAlX8X&AwV|gEWjfJIC=~LT>3o-K!g@K%hube63Ip0DAbHlTbol}Ah=TzW zuiqVz&YO71k#4&O2Vi&IVNoHX8LkKRn_3A(mSK43`U#a$Zw|^{%XXKlgGYW);Jyr- zE&HJu2^+uF_j&p){RqQq&@`R4!p(Kc_V@P@m$8p8(j)+jVBNDfJo#6!=m_+OV26@o z7EwykcM===vCGbofxqTmCJdF5k%J$-gpDwZvWYk&Z_f##K3I`xmhpWIWCZs|>>?5Z zW1gmq3sq_`1(s;iQv_?*L9qg{SC!G}$)I#<_qW&8K2B$Ri}0n^2LJN&DsOy?sN0|K%2q+pJq`XWVue-kw17kX7&jkT&+LOC`nL4yYUFM_R+DIi6 z#b*CY?%iL$J-05sqA%Uzbn<@hpV3_E*`E~9t5?a`jKSX)Bc4iG60q6X`3})U<2(EB z70H68wO4ML&~YIjcqhAmujoWs#mEaG$uQffOvQ3=HuQ;^v3K@9wBP-Q>UT(fkSX(7 z8RBPZokB}X@WT0I)zhqarbF!y#lws0B|GRh^TibHrDNmYd|+zsn#4&SFSM6XCGaFL zX)G0!NxLiSpcR6gL4oes4OSYUW$cQ0rucGbDBaCUQ%^#GDFaFv=M@?6pgY?mna4j} zM(ax|gO~n%0qx2}#F-54oy^zA$nt5JO(=At-qq-t#TWNMl$tjbn(slUi7;~|2Gi4u zk8(mOp>32|5#MC~j-)8J^-jy-2HbJqop}RL;3J{ilc=YL@rqOr*bGUC5jSgEDd^U` zk8d(e>x*18L68%al9zZ^qXyHcI^^&2rboCDy#8t2jblM6>#nzrfKIW<3gEk&M(+{*KE*9pbYeR+liSb1}^9uqjBW3d4I|GF_)$oL2h&M_+ zF0E2wWvvRNVwDyA-yj7ac6!N;dRgs5xZB@heK&x=BC<`+Y&AT`R2B={ zWn*9jp*Vr^$04>5_Bb%!ezlG`=pjdfh=3npymsn<}l$ z5{+E%oQjCB94oC*(1Rqj2*i#$@+{yi59Osit*=BO3wfmT*L6tmzT3s9ixqO;gn(>z z^-!>9er0%AZs3WJtcuL7bM*b%7;q6k=^4Z@{7Qh9cbIu31(6(m1_wp=)GsYi@$NEq z7>rDk*(kN=*XifJIX+Xw;`E_sUPfRXu$E&coziwCAtc-2XQB`^wZu;O&2I%OyyzWm z?rp+)m9QEK{6BVu#$loQx{4*^MI_c#gmq~sy2KoM+cB5h?>Hjq~ z&U*du#iPRbkHEXWE-}{s@LqMCT4G}ty@6aR7C)jv2883<7*YgVzw5d$YRrq^rKh_x;>Ju`La0mj!MES2v5N;!11?LBJ zV!^wdfkkul*nLCh#cQE)a;N;tE%dM4T|GO0ug(UY-D2o-;5GNj|^(tb>Idj{p zj1xDYyf)?t3N@H{-#65m9WxZjZ9g;5mOk25zq~8=MXQSf1+)r>MVOu*O{yL+*pZA# zgam$a=KFh8o&l;n^^bgMvd7gI6dufVk|dQS|9l3o_uF2U|I<*0^*>0L7zVDVn7>g@ zIgdxN;G#p@QgzH7DnRiAU?)u7Xohwp(LI)K3cTIzn$^;QlbZU~pGb;%0Z_SN3<`yo2*d(gm9jD89k%>~oD#FLG}mVBXDO3BmctJWGW*L7@cx>{I?+ zr|-U~&q4c&y1g__(w53LO}9jfT?VBO=6kjC`aIgBzj?L;1}YY`EdIF>RK84x$TvBI zt1`8C*RKh&waH{Vr~9RH1wDTW0VnI+Q7%o}+MHv|Zc(+tL=_joxz#KQchJajOAVa~ zo$La62TTR$50}0tlVN0n)fjeGMdE=JfZLh1crcFh@tY>-6I@Za9Tky8~`Z~1J&Mz>E7azR-*qaUy0afxov69)KXZ?=N zL7@e_r`QbVB#k^Tyc0&YY{lf>Fl!T+dpcoI2YvXUNsk0E4XwN`F-ikk1CZT?mD~M- zSKysZ0%+PKHe>vEoLk@OVWJ3;9;hFPOcjQ5q#axEtUl|{vTLm?tb5q`yYAd2w`n^G zlf^8{>Fs{E_{-od}It7f$_ zMQ=%@NA9}LAedUr$4geZ`QV*B8z0o+t1l^b`^GFCa9>=))BOTY(;Kqhu_|lL+m{JO zl2MMasl3WCj?0U$`n35s3JA`(jNQIQ(q{h(A%v2jyTfvl-Bm%qRo#7W zSGWoFP4e+FE>;xGM(ORuh4<8;a{|_sZmwSje;ae|1jJkEmEUy5;d}GCiGcjdUYt;2 zAJaUBs5a$PXfig<*i=Eo_wFAX{Y8___31D>tDRphVaF>RI1(?)xe8~(aftV+@fpt% zQVk?$UQ6BlqHcNK(~o!6ughGtU$@d-UCg5E*4?~ zk`XI7(~F8GG!Lt-F=sbWtkb~4Fq8rnYVMqVocgo6HSU?*qd2{lj-aQi)yV_5tyTQ` zHv`h&Vu`o~TrG|~@HpzF2RY~B3w*bXP2W5|u^Y$zZya_Z`r<8xj`bHx_&ae0lQ>NN zLT>biohXx36hB^vmt7iLZ}70gBs>>b3uRnLt~GGQtD<`k{c(AZo|i|^5fT>8s!^b( zAE$rY$6WVL+h&GHD6dVuDu_pnUzx_204jmd&%{6VXw!>1rPPvUA`?t8%d?lEp(J%L zMu7BDDj82i_TBn}d!9Y;u@p>s%}qwEbFJ8M|Tc0RL<+{j#)(y80nJ z+*g*s@q3K!6!J^HOw^4$IUXh^G|3Kn_T8*sTjKGjV2*fkxYwtgVKJ3Q8E%K_xLBgi zI1eA%gS$f(nErZcspYS6r2aPZznG`+yU~*}?{aLEjJQ@p^7wEW zutKl+$Ls_I_mHlU#8>MCGhy<-A~xzw-^yfV-@IJDUMy6N6R2LNh8I@GaQYz}bhC@( z59qe1#$G#(7Zq2^WcQQ>sgR^?4(aROpYo8Sh3P&uWyVjlt-d)KerDyQ`=0pycHmRN zyLw6fNXsxKcwWSEHw4#s@@$xt+4K)y_*5owL-SXoaSmW?&%>K{?(?9Ulq)MUu+Nv{BCHUqwP#L%kGa7-;n>A6AeB6_bs0L z-yBnqdQZ;C@#B6qFzmeT@lx(ZAFk0lokqr~bj)Qt-V#jcq_r}JB;ovu`@Zh+29Bel zNv<=tD9t5)E9h-#DeZD=Peo544z~VRTIETmu~tb~r0uvvRQD+fNj=aY+9Gl0XFW~V ztpQzGWMKf+y#!OWDdpJkR<9BizKgqj0FOF&7UVB@sSD|87)A~(2OHBT9(2Ae2t2lz zXHqQtsMeYoE9j&y4el-9$knHXUyauytUU&U%II*0E4uvHqlE7JL&|*yXRG{J5wRrK z`3a_>+=&&TxV>0zo?yA5#q75nFy+U?dm>~X#qA$CN*o5PFyud9t8N7t7C1K34E7H- zlR=1I5Q=%>{^`AJpVC>1^-Z^d>wqk?-(lPh_F&^yf3@5vNzl!O3>6w)_^)ij?u^E> zVeJsX$J2%ptcW_?uQ>P11r|kNZ5)Cs$*PrA7RO;Yv`tjWY})s$Tk9qv&LH0dDod?pR~! zs4Ip~IC+vWQ6yJw@CYjyxViMY7_48Ltog7oL7P$_)uCD2L&5)~)Z(~;c!fJdQ_vuA zG2cqFT-5QW{ML__$T zyY8(+mlk42T+G{d@VlaHhwN2Gr^4o+C!=-+e@PoNEfd{vl%5`e;3iD@&9nu zCQur7&)pva`slzZu`B5yGAzO3u;0F5Rs{eQ?Pe6(e&PRhab5877&na5=q)i4Vt@${ zr}&JQLGjM1mmSa_>fstrc>@@_fu+n)$b-TuiEwKudXGNUjF`5xt&05?9sRP{9uuo@Ei-5^JOpU zv(>Y0trw1AIgWSFrv#n(cjPm8JW#b2Y8rjFwOR0lR5z;y?HK67O*gm_a=dEk>*4~q zO1njsk=@B_UI`tc>ses6cfP0re8ESS=Z6IKeS&qYhrhe{gsUoXl#wzHUFdMjlcm8+ zHo{im*fM^FS(E<@!&7kz?(!(<>q0q~)OCB;iOS@F=No^r*y@%(K}x|Ym&oWpk!_4& z%<>C?w;OMduLopp1I&^I)Rn%c?lavdOc#o4;83VCZ9r3HYhT}ru3ir2jgB3@Rp|z~XHDi>sIfI(bYfFeCg#_f6~_%bv71uv_G{@CX*XPiYagq2gIDm2OKPxM z8UX_WZ3;%?+1s_|qnso6dpRJ}tTW!uKS5{Ane$zTdF!fsNeY7D(F>hyGI{Aa$>hH< zjwTifkQp1-XFMR5uYaYNM_yb|!uPwl#?sFh>a*VgHe$yNo^@UDf514&q@7Y>JT3yH zzU=cWNY3?jl}dEfifZwCGskVCmCK}4)R}urWMdV93ow2qjw1p6@1Zb7DqZJCk#)iV z%1cv?HUn=5F$p`!u`G%D09;Ywchr0>l>NB6m^+4dcK1!7V>lAnADCa8Kg!E29%&(qfV zBx7Kggi!7zRqu#bCf$B_)F8wSjL+!$+_71$)?GvB1JOc~qi&N66=j zmRN3E1fgmD9EH5{r@nFA(QihF)FRi2SChIMLM%g`({8qZad>c_Xt&C78jPo~IjD@( zj^KIk*QFNkxDx5d$}|<3^4}*_Ltl97$t8sysXRCCLV|k^KtEKMYFA0|h{vwcBZScL z_4ppq`Yp}Kif%8)(?#$-D()VBUc6zOF(xN@lY>=r!tA_6QMQ*D@brLOD_MDy$m15m zWN2=dgK#G8^Em?#^t3DuKrWTlf;DmQTjhgz;H z=g!m*b+4!$1H9J&33Rf=gEZcB(V-9*)Z^ib<8r^{%0p&6dvwj6Czpr8_os+KX8q!3 zV%8Ur96^P&2MryB$ZW7eIdFIGisRe?p613eoxCb96=|p@M#TRUayffN?Sj6b!%}_( z6iXJ$*h?<4QYO)wZ{KT@wnv1la4HPMFen)OBW4qad9!}-?JBpz4f#n8WE3aZG_RP* zFr9F@9W7Ny;WnF}isnfC!o1{8gK>tegcY%zL0w~JTsP=Pxm|5Vq5aB;GIQrWNCUf_ z0t0fg`Zo8`Q0W+@tEW#>)@&`tSpjPHKXsn&jlozrQc zGRVo=)^t_u!)Iz|i^8S*U5|EU>72l9CF;VDEC^ZJ{ZPPRW$|nCMTuUbDZ|+KPh;i$ z+SufMLLfC`IH)s#xdRlSOgFo*CzA7YAt&st);nkBtcWWZr5pQX*&3ILJE-y#0h8rKp{yfA44 z?gcj{Rj$-7+Hnj>{k!SC2-c=4!-BxW`(5Pijt<)u+Hc-ory6e*dS(F5VO;n%RW3Cw zs-zK|I+QF-9*~eGvgu}7ghxItG<|N3z;j&;kO;nHcNxDLtg(rK`JB4C}g=6|5W#iSkg-|o5Ppu`mf5i>sC{3_k$yZadNq*g`c5dd#d^M z0cE140%qp&8LLHDVl?UO2=Ei!ZuU8AKJG;IZxb=hRW}26mnC+7$wMNT{eDEZ-#*0B z%mzXctqGPq`ihqQ95Y6-Xpnu-2hpDs5V$P*MZzHFPExzubw7ltON1Sw=_O2 z+EA_qe>h8(4Ndcf{aH;8JhS!8uPrmfu)bC{i&4&tpVTCit8ZT|W&QZ%7JCc9LnVEzrwwX8v>ZYa%qGfK+gFglhK~oVYD%)+d zG}t6WMv_>|S4!=(g@#k{%?Cfrw81};$$#p*nobBgJ7PZl^CeA_dS3UDcFGp&v%`9QX^L(=YP2gMQ;HcaTlfIPz9ddj)%`HLmgZTtoc4bdor^n@|NqDD8RnEz)Rtjv zl7*bxa+bq}oQX&dbNnFYkV9&S(9AZ6kQU`kIftm`JZF&{D`iNca;TL0{`UJ1c3t8&P0_!?`I#Tma1I)LUzz`+U63HVW-K)g;PEQ8n1vl~ zq~HDdP4j_5z6R-(Jtc9Xe%;-a5C$ z3o6J}pd11b`=1l5xK{Koi25hZV|XZlV*4h|en^ze>o4W@&smkfdv8e6)ArmkBQE98 z?RZ&-$mBqZgP_Ue{dsJhs9H!gWQsaOH|3|EQQZr`6RUXf@(UL_Y34LU87V~+VCOt=>_2@wD<-?SE0ij!#s`_@Ezb0mv_+-Cg)rSm%B-_eoy#N(Z&F?yR2_~rn_m{XLk1p|1GZ8< zqu!eI;Tz5&>+kC?(fIJN@V*}c*8=8#pU7CgMYreu!d@kU3_Wu(59FlNAV`>fHgkDW z!_iw|rae10J7`E<_=-#!$-;A`)#*PgT=AnZl)WnNE=iU``etkG+|t&HV?dW!HFz`x z^?+!>Rjpq)-mIx4uO<|N>-n8B2ak7F$w0VH4%eyg7H`GzBLXNSU&E<7*oRj7d48gW z!aXVc9t4Ttd`((Uv)ir}S~tj>Q85E1>y7$1TGp+!c0=F9iA(4%`WqNiG^eqsS6;Fb zvw|mj8Zw|{-KR+BaYLCypPJ{x?s`G8 zn436;U}r>2(v6rsj9jP;G(s>p!ZLQ+Cp)K!oaK4)~bp~i{9u~Yz>7s`XM9!IQ9AM9Y(T2V1)c`nkwG36I|BVBf3SE1+C8 z)XsAf7y_AeG%~fB3GA`n=~=FTi|XEAq8u=*KU$3xn)P~Hz`6xo;dC2KMr>Kp@bEHk z55&IXme&g6TSQ9EMvi5u)`p~0T2>)`iCMk8vP4N#f5QPNhh<_d?4sS<2UQgz0s(ovtPV{??EGA$X_O?Rnu74;{H6X#k9A24o9VT>M0jlH^&t7R5l$3ns%C{R< z76c0y^(zp$YWpT%u&v{EAkD>?D(3O@L-uvwm%&bLL2op`zc4Bl!}6$H-skc?6vwpe8C!-fs~6FD8)h zpittrm;R0gbmC+kOw0t^%44gWhgZhI8EU}#%V3%pI&Bqk(v#NEvlGAma=pl!_dO*4 z^+2j<2^?Ka*A@ExJ24ouVi%RlmMa^P9f!RNI+V0w}hIy5q2zzuq@lw4f2k7uK zs1k*y_@p@z%evWJ8*x4YRw23h)RKj7vKnTh9Ji@G>ONZApeW@e>J$J&P##=LwKQY* zi)Fk{z5+dx^NXR*NK4B1cQ%GGxLn0MBk8zJdSd+ae5keEK$4Y?YZVHdl$3n4+~lqm zBJE^WhmT4A3It5m>;~6gBJ7w+e;#hgT3)^za!SvO%UGV|yO#Wsx7S98dtkX8kg)+K zW{V2+)L5g6*Lt|hERyHIurI`fKaR-z73M)*wb6=P`oEwx~92@h+nm;O7R26=veTJ2ucE|-{9T1 z15bMwiWy8!low0|=|gT1|puS1c+@I*8%Z_0GPyRy6!i znyW~q4IaBO=`h+b*aWK#9BtxtS~_abfsoNhE42)!*P0HkQu@UE_JK&UqaY=1ng2YU zKA?8?beJL(u>ybxrQ@9*s(T~o{@KbR%JUO8v0rEPoUZs6KFn?D7o{58IsN}@PZGA} zdUEpQE%XxVp=@3uguE2_b-sfkR*aH38Z%o^KP{ba|pRxvqI}m8L5` z+~XFq(>Nvm(M1eq@`y-B({g4@Hf)ZI_tnE2t?0J-eGl%zk0GJ(smnHt$Hys{-(204 z8SL`+&7xMJZ<<=6svlk=*D;vS5X_+G9#GTsQBhzeDsBXWg>6GjaFxoBp=L^SkZvzv z5m7{FHW}SWvz7z>6cUeRZ8F~HnJAn*FP3ZV6o7c}pdO1^pYu-=e`i|mobP-sTlbrK z@rtw|x@vv3--B|c)xE*&;KrvfIBCrT=ab!+)@oWiW^d=skT(V*ozlCtZ$z^nTq^r) z{Cnz-%C<7!l!tjbzdr&H=6}LKX(;;}qeBixFyrczaN#(ayfJsShq*~UVjW!lgnS7@ z(!d7cyX|m*u(2ZQ_xDT=>`>ocrT2k>8Q)^VwPCy+c3hu-qWsixF06|-$9RP(4gjNk zi}&?wpuXo(S*Jjh;{xo{9DSBUm%S&B%j4<3zg-o71e1jsP+zF)yDur^Z>V-~FTDH4 z_unyq3z|z5B4#=MqEqNcfAM8rNQ?#X z+}blQieq9*rH`$3dh8k+%5j zK1xq*Qt<*N?O3R`zllVQK*TP1+@h^MOsO+()$2)jQulyn5<}Ql>jQN@w-)psBh6aT z%PjM{+49KTge0hL&vDVIGYU%}ScW|4$k_tH>*Ih&{0;q1hnB11<_ZFQ2L;iFHn;W7 zgH3Lumld(xaDs2;rLqw%0(YSi{O}i6KS4NG$R*V|Belq!8KTK`<&&AQm@8d&y0@RRA1>n0zyJ&pkc+Jt4*U9>>wdjmIP^;_I& z`b6FA_{R#JgQu;+9xHj!jj`O(oby8|si{uz7~cvwoH!5B{|kBZu(Ko6%#W-KPh7_8SsxLq$h(gy~J>JN~`kGu=b4mmL^?wRsRFdz=2rKdUD}y29m1X;Nhj4 zOq~BpJ@>lDh_lRmXS-|xkxkM!d@Mfze)QX$-3Zb)ushwry2 zwt~l}GQo0{Xe)s8dVbEAF(aqbWH4Y-CPvrjKvsUZ=pJ0{kd7Qsi(Q#~?W1LKjf7?P zMoTwm0=4>eMyWe*ojXQDj11NurSZF{Oj@rYU%{++5C1s-FcD_22zC#3AJ%Xi3qo9? zRf!t&z;8Ql2mVW1X?{V{#QukHr7ar69Q`1-5$E}K#_h!}LCtX*x-PS?Jp5ya3mK4= zeg^r{(55)aSggx?av;5M#DW9~$8Sf@P4f6Z`{RD}C|8W!#5JrkKNIReTr01BMG!yR#0Da&+ZjoV%#IiDvA)aG&DtcxiRT=KEXq*tp1Z`FH1G-m4^?q$G+>{O`RApZ^kRR{EVtI1h}Q z9`_k*n1$ZhU0RYK5{wIu=*VCWwi)l2Kx{ti=uy*0RC$HZi+DzknYxzUIcHi-FZJLO zfo&$ye(yT6gzO92bdQCcg7y5~lN~NCnnU_kpe>;5*-s)5tGMj13Jpt_h{(Z00#M(n z8VNB~DofoQWfi50$!*73J76IOua%FM;tqR!H&aKVIrA?tA3MBm&Ynr*ESv}@fHrK5 zv+KuGCEpR?h{Hs*5;9N~nOe|gbN2Wt{_%5!09nga&mVZ9`coNvOmr{gGasuwqk^Po zf|~>XEMpm#z$8Ha$L54|^OcN&60gKRE4)Qhg&?>8wNJN|#hXNYP%Qg*P<|@lMxcR% zyT8y)5b3EnPqcUTBG}lhDGE-snrUcSq%)TWI|*X%4L=z5W%_4XX?7|Bc`%l&WmNW> z36}}MvxY#_$yuaE+Sh!saN(B{5|;?KZIhk4|KrtKKQHduN-Q$F0&{o)KwFMG=OHQ1 zDDR6roic~hsqgQex_G64knh8<7qvltz1w$8e$7r)hF|VB?{`C!K5{qy}8M&J1g0k)dni6rH`DB} z^OJf7aQo_p<7J-z;tUOQ-UCgcsba#%5m%9LfEPe6&b|Kb!IG5d6FUmrmc#3h^O_ri zO|62zAKN)>f0YfS@+7Up*tEe2Tc4h{Wo<#_!YlD-6mu5A&`&o7N+q`|tooRKS&v3S zG~iDYR)FslC2Nn8kgjZN$$*d>8?MO^X&d8zd6jBc)M+XY{lmc6C6QS$QYLrq%;S%Q zmdumNHNtjBYD63-5Q#xL8g~km`zA|5*`#4S?CYF(#KofqCSyDgRROez%yXtAU3YJ- zZg6c#)3Q;NbeMYXB?JqV##F7hbiByoH*Y;$tD)c?01 zd^>kTi|vX`|I(-tit*t?i0cL@W|up*yVqjP7vBJ6^nqe=#PnqRv|%e_sb6CBpO+l+_&aG3L~GjT4vi4Lj`S63tOBmi)wcar_mnb5Z-QOtoI^n#oYdw=xXs z!B1lh_;qIfMiG8xktiO9%i{gwn=|w`P&(tVD>RVS7m(&~Ae(`KF2_`Q8B68yF42vm z$&KqU#rH69D`6}`>zX*vGsv)!YYo7spEPtB+ixHyJ-R)cv!ouy6qH+dG)Yx2{-MQe zqN}ucd3ZEeVVQtzDN}L3-}-X^Rl4(OGUTf*f}E2=!VXG*)}~A?SY&0qC!LivR8u6W z*>r*zr5va##WI4}@EMct=vzFV;jCqHsFNow;etKeke`>n}ycy!U<@yX6Nm z;>HdsJ~0}C&){+wN_j$Ot`Sm4#ErmYhM{nZl2Bd>el`1P z!*2M82}Op^Z!jas<{nS6vbgByCDy2sFL_yrkW+*U^Xlp}&z#qhr?pp(^1(0z_^l0> zihM#~_xV*!cQm|orNW$;Py|qLD>#RXNe$tA*SRzY^}pNI+{zYPY(h7lN+Hc*RA_XK z#9-*ih;sS%~0YM->dR#q)1z)R^=Wwx~zs>}ykOZp0G9kk^XM~7=v z?W*;0+AEcqPw45@hnK&F(s=DJ8^NQI#bOUU?^o9cM6PMVyq(A0CgB|zz2)Wo2}uye z@w#4n-hJK~+Fb$NZy?j%o6wMDoKZX%zn;GK@|-EmIU3SE+#xlRoDFpwE~AUG}cavA~t~D034Dt|4wyb=bIwzWyg4 zzEYqaq+o&Z>Q4t^R>=Rf{-ixk`e{ad)rjEHtD*dwFy5=Ws*uFS-Hj^#;F}?Q{2OaL zaRZrux*YLU^R)Nzz{~A}*J<5aAk>#eQyG_hV+ub;<&#blYs{GuF72UYw?t=BHRl2t z@!yoZGXIOSFMK; z7=HvEGM)65(yCJCz|W8Ci>L?G9Mm_*@e>~$JdG}4k<@`9Ma=oz$cAOOh$p)B-d~PD zgP1&Zr2L|)lkoix!%Muj*W^#KjHugs8p2C(A)%FbWom^LE}6c$D2owD2bD9)oe_q77JF+`I9!5SM(F^z%dB(6 zF}BhN-oLX%Dg0d=T`@(+P_f>{t^^YX1Qza|}d9JEnz5cOB|OHcv>&MD>?= zM^al)zAHlab|Lgi7j6YQxKoySI_mFMotQ=#)0?acab#2)3gm#6AWo3M%WlN2=7~htovsc3#S%kPz51?fr9P=U-~Z7Oetx zaKqD9ze)GwleDa~4Ytc1_=6P4_U6d%nWRD|C@!%V3qkl+2y5t03Jqnx4+(h!wZ`Sv zypUK==|-%>eNR$7-rgUHb9_4o)EFBk_daSzP zRvOgyh5O4XH47MX;>jtnXrBt(pTb+rKJK08y|KYsnR@(qY-)@z5?m#xhCj$Kyr#FC z8U1GjD8kVQKD@@5C&$ZDGzsD7Fy$+MWc+Z(G{jzwnqg@y3Uc zq;0-`&YJyQtqVS$fVr{=1Pa~zQTIoeGz7P65!^YfGFC9+9J(uw)ek!Y{V7Ue7V~qY z>eVb}&HxTGU{vDcff}o-PHzdX`H(k9C8}wF*kDFW7I)41S^KytUjdLA3&XuK_j@L< z(=;GG-)+t}kjv3i5$dHW2;9_TNz@{L0K2nqOcAtNT=!a6<8e z@yBLdFAKcQvkDu^$g~!(pUd!~Cyirw<&BzZwy)+YdA|mIwfkGM=60*xiLcwwfe8#U z5*X(agFt6!(O2c>#7&mza9V>sBJmAL||Ap*jhuKk~)Snd+MzePtS0#G?gl>KUy_oMK(+7oHaUD43>C*j7+H_weX z%Z07@qk#!!4MX(2m7nqrCkOrj9;5L%h^*zOlu34V2Pi9ad1(Oa3zgO3lUa^JW40ruNg$!o~Qh(y>@&!3vLe`<`9D9wu)z>+i|UcIHvD5mc_&jTK^A7wdeV@ zwY1P|>6?wwwJ}<$pWRrfu}->*5+sMAeBVQU&(yc%`2?t*RWl>LjEbaf{Ca(6cd2nn zID&<(`}`%;_)nigMDfvIGuSlY(>6|ke{;pAtC_ThmKL;Gt3GFk)Ri!6+CSu+MUrVB zziBW-d)S^i511?#&qz~X&v6S9alW(M}t#1|U3w>RsZ@fvFv0G{kB~jhd6@j#$@Ymuk;=?(*18Zs$jh~DWE3mCiC;UU( zV!)MU>kxiZ$nnG+FSJ)fnkiHK`%Tzp9_`jy!PVu|kO0Le!soo4D$d?__UBS#ZZ8cg zLb*liF9A)H%+8rx-b0F@cEs<1(z=au*Rm*cZnmf^mjpu%ujd@+Wv2WX{gvgl2^*iD zHvAjhRC{Lrr$>#YCbc{6YSq{M5<&Hj_H?bzi~hm@B60|(A0JaQ@Lz1XGC}z^LX5(< zr~mt7nR^=j?fC|?jn!pQk+81FPv~a%#B!(82!VMI1UEsbUV29oAm%BY4i-k;gR1TGEjiu4NiN9n|I*B-FGJb8?>pw#tm>#kskz)fJ)hV#%=s^$&Jr2ni?Gz<~1RSOvBeo{=56MO~64C z^ABDu{LA3cbEiP*(QB&4%Diu~Y(Ub+63kawDkqa}ME6QBQR1-Oe}ll{B|T+cHKU?rmptG2V@!i73h9a! z6Ad4`wg1r&I+o>jz`W7^S;QkT5LQRmP)`dw9`2F0ofx@jn1yRr3az=}-3=kTSYH$D zN;!?YpCOli_}lU0&YduFo{zEL0RD@}bvyaKpJJ>_Fb8YEm=A>1|AnoRyCpxu!4aKH z3t7#^jEl4e@@Sarh(^4f&DsB1p(}JR!Du{t=J4`zCh$_8C&>_ z<5LG;UN84#*Sj9FH`J$|UiK?EGd{dI)RTNuCiwnLZKIt3)w^p8gHTxx+q34IRwyMO7H(-RElxe-} z)+0o%?S!ZrVZX#`4XM0yGs>W*j?bWVNQnvmv~Jmq%Qzc(>Uj~0Qyy6RX1dop{>ix- zOKbYZD)Sys`~`Os!=Dz%&h#qK*t`~%>+Zj7<+g{3eOQpfGI#?Hxih2=C zlk(qV%S0sXQNb4laNNEdvxZs5KX9)k%W}I&*M|$BGA(nj!&I4u@NcoKpQV>vA6?FB z_o6lO6FAr56kMQPGVkA|>~=0=mDyR$@;|2`RYCKL7!RsB-0SEZS;&W>@*#FAaPEcL z6<K5c+~~ zd#`5Kt!lU>Qtwvy@E}?Q#&LX4fHO-}6;xhei_I&gEP*lBcm$KHBB<#6GsV{Pxm{)}TP{+{V{7j4`w)+0ZMa;T+zyj0e$kPQtFPu;lU8uqpWcE6i72&uf3 zfxtb=lHd~Ljl(Hl+{mHyJjx+x9M%8w;p{Qjw;-^r=l_7L%m0EFC4q?P)7dYH{r5kFp5Rj9&P1^j2~pw{wC$cel#6-{qxe8pm|we=dVQM>_Os z*9mH=nGo8pcJ-%WS0G4~(~tf>;~R6Mlf`0fDU6avL(k+aTCn{&>h;@Lo^CWpJ?BNE zF-rtA&Wyf!#dHc$;HpQ!qZQ?D+;aZfTxK^Iff8sU>d+<6$I~qgQymNacILgUuCIhN z4dwYmF_>{f@Kj+?L?EqB+;-g@BnXr0*rZKB4E9dSA8NSu$?s$}c{HHt*a_=w>p!oL zUe+I_^`xsh=KBoaaGWDVBy9&@#;R=7dfoM)2rUOu5V-jJgEy7b5I>5}ZQ*iHwYe)k zu@g40g{qb9y9AZh%;|NvL{zPxgqxf5YJRmVK<*rt74#pyUPr+85{+R^@%McS#wr#T03}Uv~8!5!?|K! zD_C7PUb3;Vv^!=I!BZB(GqQq|@wD=aU_?$=zIhnLbtVsl7rb9pE(NKA{n+UKSfKG* z!LpY3?^KvyNa}AL6Lg@0DlL668RMM_EzasZ{3PysIX;n@de$$L061&+_e4p?GM9wZ=8$ti< z>|StdnO6@j@{SNLag+p!#3f_4?@vDLZAgnuVtlYrEZ()HoMmkMn?{ET<(yM_J3PEK%ZqSNU){aY^e3lNt>B3fGlv`u~ zQh}|#%Qc0O=zS(WDkyqeZ*OyY)96Tse`dnR;SqValWma13tRb?$pCcB1F zd~F>bpLzA3p7FgecKH~o(c7Fm*frKaXL)zGuB>pzrD0?HR*-NFY|ZVzGr7KE}CIp`Tb?Va~9U5iY3hgB2+Hj-_PDKp+P#k{z7!r~4G zSBxDzna0gmADpH?Do3OI5Hf-e0MdVUZG5kyDkPIF-pz5wj6fXw`;a70&0W_cD|x5z zP>y#%5yb}L10+urR(A4z;^xm6k&-QpWWvb_zo%dXi?C5TjbjL$;ONfc|4 zR$F%Vo`iXgQ}HU{vqjip{LIkyjd967hzMyl1GteGrv;LvB_CC;k3K3dwB;b>HTVRC zS}8XRiVQ`#mEzruxV;5953+1;>#Mz(`f+hoW0w(|+n5^1jv9x&DL;Nj`QLf>($LP7 zWIQ5@b9%AH0JmM}kQl|tiLR59Y+F5Hob-EYh`S9LH7+_pOxL8w0d&5Vh3bWYZwp$E z$22<*O!i@$ENL68Vzwni@U}lX^g6Y2jYe4pSg>);ccjx36M!-UIKtwebN_Y@u7b zm)wVgAM1~K2NWyTbT(j0iV{ZqH z;1Jvwv5#7Rj*wE0ybz{9LC_m6ce54A0VT^P5?hjEi!DjqFdz3A{*5p3cI_Qf&V|Qm zYw*+RaJbiAO`~k{n7ka_Nm*lyB$`6uSiLiSP^rE_N5-ak^THcd&0jsJY?t`qmT%@} z4y8yG(-^kvne;DtF8M>}#m`HkC6e(&+}}93nEO7dRvp(M@MxiUu7sauGn3QJro<OGMf=aJ?Q zib=-9g`zhottMk`+bd>1Kq?nbS7(3>9mlLiiki^40^igj3~XJo-e3kHWOZB+ zb&CfT#mU{1hwsMN+nAE4Lc#%42-e_HrDbqm!&sx0FHGv?;B%Xwjd7iNZyaYf&>Z)-|v5%$l5wwNo+^Zc%IN&M&UY$?t zIn);lP29=~I)%7oR3iR}Hv2!I-c6_3R*1rS=dFmq8X`shJq?~2d&@p8mG0vA?!1Jw z#yLiw$DN!iehC5qYuIBXy|Hz{m27$$>wOy?uyIAZjkk0!pC7hSLS!i8VYsfJqHhADcnVkGn}N?@N2&*h)4J{w9_rg1Ng z4+@n;kU?XBLjTy~+VvqnDzN}|guy|j*W3P=)>8$#%mg)(!An1CbbeE>9nr$^;ytPr zfnxZNzyI059)-KoTFA-fYP!>+Nv5UwvAGmpi}U-EIngKFw7b-*PK_J&(%P_!hyd-1 zyXw|w5dr4QdGIr{5c%eS+(q5NtVIuqse%pv=7eD$VDKM4UprsP_kei*9Gh`}x4S|x zj?7n&RvrbtV{#pQ!DA1D-ENHU6o^tYJ5+_G6b)WZ?A6Ski$Z~PaZF*}$w>1RX~csu zNBw3q89px@a}O!g6;sh4Auzv{6>w@$iU?pg$&opmW-SqA=G;MT40+YcRsF&1nU7GR zKU&_Rv6lzsV6oCHX^wn6E}wsK$cgLxFzJ!O@_Kctj~zc9QFU`>i<-uvqyPgJ<*3-5 zS8u2A7fDXLgBXLCsrdMb2xw?VW0Ic}Do+ob!;@oYc2g`=PKtZwrL@RyWfz{f>TsF5#d-@JoX(-&$nA6M zAdLhDP@LtA4%`5}$o9zB&auwh`3eL$oGpieFk;!SnN26xoN`J)q!AE}9?4{LX7IDu z_)qqe2P%0i)loM9uPLtH0Wo{7#-$Fl1(0o{KHZ8sJ87k^O1TH<4j98$rZ;HT_b>E6 z?C;ny*pyr#>YL&JyDAiUu(*JS63fT|b1RufA>Lpi1O9b|#@~)YsBwA*%f1^1MLtF6 zzNy;nH_U0T6c}EA>4W8VZZ9|WGpQ;2AHcOv+oD|*D~zffH`-=*l)mJGxZNWO>DGKR!O+U%T~Z2 zH_fB2dI0s}h95Ucj9b^=(92Ktk1Ov;KYJ?Weq||~ESiX^Jn(en>kSe5C3Ne>ari!x z^1!li%QT%;_m<>kBcey=-`gt@5VMk7XkcEB*W~^BIk$#uDCDk)wb$#3LmLb6uUA29wxkYj z=?&hzT+_{|Dy#I}<^AB9aB7~KxI7pnGdB?2y!EVoDdUBDa!mMeV)N{~f}^=vKeE=; z$G<(7nq+gz!h99id%!F7v&Gr#Mb}-PHi?PbDu>kA41Bs#D7#|QDc+a)bi1>Of1XVC zZ8%JD5OZ+#!*i7&+MI3L;XB5VU5SjFp{FJAg?ACTb0gX7ho4!yVLHVUfn)Fn;6&ndvD&#?|ugTw& z%zmI$gj*38{%qr#kTN+@))P|jYpkrQ%o^Bkvd9* zej@}x7ZEJQx$Mn;^W>O-j2XNj=baz=8zi$G=f%tz*gk(c+@OSzS*RLjQdgltR5JqT zH}z=09K}4|AqZzsr0qwF-9}>%fhgauIUGXvN=ve;peRL1C}VRwZL1 zN7TWB``sTi-n_dQ>#GTCFlkcq>Pp5<033J96)e($-v5Up6jB1jVpgU%hpKMOUZ1Rz zE0z(Kg6Ii5GLEzps88AoSCvJf~gzA^W_9mc1>yJ6ChHmKbt=Yu<$CGc(a zpXZ_1I%Mh1_58>ss!Ddj|m3g~PR1Nh3^ z4j+|m#G^Qt8KST`mbH>HH*=&(rN`Y!LBM0VVWHIG!t;rB%fBRd5%p~aQj54biO^SW zH1QIm9mb(N>C%1wOP-=a56aRIN8gwJ7_;Uwn&+5B(jwJ|2E$7tonO2P**PtEHP7`( zpVu*&Mo>tI+)={y-svfyv#4HD`f#Oy{w}%5`I&oP zpj-gO$n`D;GYBsJd5F$>cQ-m3n*kH3T6)#IJp_-S%|89l43Uo!p;mX0hC`7r^_eS& zfjBe8CPK1b&-IaA98)QhOx}rw=&gUN)!EW|y677-pH=s{?5@E)5{O?fQk8#3=Ap}f zd6Wk2y|yuK(9+j=|Lyg%dw~aKBFRujk}bgbZ30)hpZ*l68m%&3F4hs&%wgd7pyfrb z`Acf1=BN)T$9y2(N!@IrKQ0*^K?=A-GGDhs6TkGtGLKn|z$qGM_TVYWm23fLaH6rN zV8(fVt@hCp_bAqZ-|iykA|H%8s%%+8-zlYpp)Q=3^AV9C@c_LBt_(8Dm)iI)#_~bHhkEqdxJKM zfKPH0M=$X@x9*%JG_%DqfGCcI`B;+@W*QfmZvUqTgHgnQ^%&?Kldq^+&HQ#*^ey0& z{U=)pb~BT5%171JwB|b(luLbLT5n~FDz^}&&gbzp$mHpiL{{xAH#>!@{@R(%`}vHP z_hr1ml{G|^VH(7;rj2V!yMA6EiP|knvc0iXl&@4+dR1fo<3*|PiJYX(Y1l+?spwL# zAhhQ#t}@)~Ec}5tnBS;)ShLZ)c2lFsB^pH9jNbF;iBlq@e z2%lwqwbX?rxVq@Jn6I0RV!O$cLCP`zOj+KpYzV4d$Z`)mfW>?)H@CXDQ~IUD$xDM* zKl1CeWaizoIt{$->f1+X9ZfcPlnigUMSSCt1--DJ@+Rx5{pL$b+c?D}%fAARv66v0 z!*>vGZ>z>4en%nqt3~FIk6DumLMyAz(j9|(PWEkuVmkAp#Z8^?wEe+|{hA-4;!7HS zXNT*+5XCTcGUtNw@;+cqtz2lUd7@?_dK*FEUzsI4DX8>xJS+T&)_f`0syUhP`-b+z zr_C22^FD>%SGz{dzea2=&1jPcWhS%(ycRE?P~)|@A*^Oxa{d@op%yPlcTM#w;eiff zfPKjrt61N5e2l2h79twE&CzveNP@$2f)#U(xg&<4gIN9VMUwLQDkb!!Z20b{#8d=) zs)yMi<1S+~U!0=K+|B1I;b~pAoBw#xB>ppy{%W?!peYVUNW5K=t;>I|Ru4z*l=tJzdm9GG2 zMXM`7KjuSgQT@U<BfO6q0!H0aZ#Tl zvRi98@x$$sV}^v%Xm=cB9(}4+@{{h1}UOG6P z#J*GQEbeuVW5@ZvFwrcCH>=w;@5)FI8$52%3Quo`M|$ioeW|Ro{&)#1nY&Dh+_+dA zXSXV5LJn2Hb2x{Jh?xLqtig=W>C^7%bgTT3Gs87_Kr~kG+E@^;uk+D#dTbtNv18xf zXbqZGd}1E)=7DlV=dCNsqGu&xSVeBJF%z%*idlNQX^?OBZ!=(Oe4Wn3D6=k^8bm zX)};!{{VZrXU(V`wG970xw7H>W=FU7rjp9P^TWd(UvTV*G2;ldky`18ogG-d`ffCs zPE6R_ug==^e0%0D;U$_7*%HZVgI$Iw`Mlfm_{-Sz_G2HV^GTn}BwkirSO6GKxbCE^ z1I5WbW`&!_pcWlL(R%yy=L@5KAjySK+63|7{G8x;?AxO+1-#05)DC``iUCpU z7Cp8Koj_PgEjRp-^bA_gKYC1T1!FF*G=PV*V?G6o*B*Ht!tipIjpko?OM?IZi)NIu z)*KZ2GXkkxFfZ>5+e{XYbS~;$b-kb2Ro_4w44dX~Rf-bcsq~Eqd6(wpE^8DY9Yj&p zEcPq)mx9OXcP|daUoXqP5zE=DpDcoY^e3hF&|u8e4?E?#cn20-AH@rd8k$1Y|i zZwaM*_43NL_F~*<(Z7}cj>ov85anZpE@8`h#zFVA{pvpyI=o#`)!=HTn)p89Bm_#U zJ&jVX2d$aBkK;Ax`)u*}Jm0S0#Jp4T%jnl7E7SU)K)d7JrlBGQneUZcz_1lychIIa zShvG^wanGtgeuW?dSk*QaxpVmD!^yjV~IPXsj&ur^Z;C($eHlqgwjvC61Ejg&cnYE zg$>1()RdPz`aU0d<65PBOSI%~;xi}vCGGx)dY)Gpqz7sw;K#&yj{UDn=z?^KX4TU8 z%^9^N!*|?X3Git#xilvwbOW%B_c$`R2zP*$`>pH7&EHe$O*Wsh@bGd}RaJbN6EldQ zg2a-0Idq3HJG*;B$9DT^onj3GkSE5qqQ_nJ<|H$&q0(T8m_cNb6!)E1Z_T6!zvkPG z4c~u5bLP#NxzAc@#KdhEP=7X5s9I7i%w#~5{OWBO##R}_ywB6S>a z%$cZy=zYAC)HS6C>Qp>uVa$cRo1`mg$Xi0p7P{jX_4*Ii{Bj+i)dX}2H0 zrqGv}Zai_BN&Z8YdF^q;gr!kavL)vVW_=w~pT9_?y$+90adOquD178kHwicPA)R?) zp?$h=TRuwY69=BBzqc#a@Z`#|eQ8bCxYPG~DN=S^N z#GXY<%}&(bHCt4*Vpp~1O~?1i@A((5SFS6c&v_ol`<=dEeCoQ==e6Gr`n-}aJdH9} zOiB61HarpjU%E(KOJ(KR`+>oPR=U6$r=#Y$Mq2j-HUBX;x558kAX~$#m0>esgm{u( zl-?GT!VnGH8}{z|5VG^+sGj2SQa~_lXq5Vzi2Fw9c~Yuf1ddkgVhp!P>~N=5xXWKA5PhuZ?$4^ z8uMjGJBq*gZ}ra&?dZz3G}i)yoXp((WXO;5HKReLdBebIAOzyzWC`>N+eZCmiE8Vq?` zjurVm43RMD2|RbYl!kM&>O)2S58(PResHSDVNcQGflKZ*fpB*dRRQ3fo8;`2)5VggNBC1(C2+a9y;UdDD z@*Mo4rGqTBV-L}?-@tO>Rz~(%B!r=Bj-eN}qHul(6cnW_0{n3J=(x(RWz!cr zGl5Y~VcnxpqouP(?EX}nWbpPPWq{6Vl}&m!?hE8a$d+Wb;Ev$;Ls2Tx{2HNX?(svEo9?`e9_v`V&4Ji`D}qD*7pmS9xy3;ljvVNO z-r>{~Smag}sdZu;Z^q`OvXU=Jy|H#vdd@5&y9v)keo#7KEnht4^hQ-%BLUEm)Vn8k zxbH9`BFi-J!-Rn&e*^r6fuJ|j3{WCz6HVnG=Vtfp8}O=AVLcazlNF0L8Nt zp~xOl3!A{fhJVXDJ(s+GA6?!Ibsjy4;g0&luw6pAGgogihp^1Ep0%AAXW}5?2L6o^8nVHSH~1Ys)OaZ< z>20=}0!wHoAT;E#h%k&f2CWots9we$v~<^T)__6rltHL?ZV$tW0YA=>r|5eGN0@&&CJ7#Lug!F(oxv?j33Q!KpoF>dZ zIz`r@M)j+pcvEGFTV+wKhL}^C_F$dImbX0-sJF6MMJ?_E)URI-jiaIkmI_=SR4e!n zir{}?n~jzy@nI89Ly4<#t(B$Rbsuyh@FL6lnc7=S|gf@+cK>@flKdYJJTZ|=4e>F|t@}>g2VPfd2 zv`Y@*T^(Vz6Hs5w?o7wie|yO!+2!Zm$ar6%m@(6c8(EcXMwqa^qCNjN+N!DjrU;F% z1N5@V+FXy2<~ZXk?j}_tkBva_@|68iO`~}P`uI$~4K#AHI}71{SGxPb){gUjkVsLu z#$@LzGr-FazA1zH74L9uSV1USm-Jt2?E>PlD{6OTrMT< z^RiaaBrZ?vkX-z74oTp=A!=p4?MS)+emZ+BXv&|Mr*Pw@)L$RquVQ90Ywuk>h`X^;S<2YAZy+x`5O$>3Rpb73{^MGP>oc^}aF1^sH5RbPFjD#mX|KSyMAK_j-$xWaOJ0js zUgyIyRcOBN02G(fkM=3pt@iL*qi(Mvya8Nbu|Y7t90$G^o>^eVcs#p<7A&Sj>0jCn zEZE)_5)Pcj^G5sJLHb7CVFgLHcb^mIqxDaS?`J)|U~f8#*gDKg7-Cn=!>q;}mDy>r zaaK_tj8ulg7#X6qnV+R5NFO;|H8;T~`IC<{IBRI>VTbMViOgHQ zmyT&O`zRrRrltfuV0IIHd|YFp+nM8?7b0x$5dk4|gI=|8(0jBtlQc>U(X(`iRBvD@<^k zSrG3Mg59{Ty_u)A3o=*`M3~^YS7HH8TX=36&i`>hsGui+PX5hF&abvObTtboye?bu zU9$MK-g)6&%?__8&+~jr0UtmJI%N`XzUKT?1ml-7RDU7QX|>&;2Lcf<-Vz%TST>CE z1uvssMt)(LdbiYBS8f*$zUMx&`;vMck8V)hh=}h>Q>E&sFXQV32Q2)mA_^{9n6qd!WdMn-_~M&NCWc zD0ba!)dZ!)`(ObjrKj}?u4#^Wvc@FA7KFX#8fNlljG@oT(5xPP@)?%s7Cl)VD_7&x zqGl$%i7H~UEn=*@(DlMIll4n4qb&q-oxt(5qO>~M7tQ!3-;|W@AS4KoCuZYq;QD6a zdf+rhLbZp4?HToLSEXIC;aY02NS0RKZsvU}qbrWS1dhBAUO)Ku?qkExait_emLcl= zAkc%j65mR-VX#ALF17RrI~#6ho^3oiymP=6 z@b9?ZV~vREH(yo0@myPGi1)Uq6!!dzAC0GfH~S~fWjW69sFYu6sHa963MSOrb#jJX z{*#QZVZM&~d*7Wjt>Z#HP=I;*Ln&0l&^Nyc{eivpL$DZLp0}4WOzUPW++i()>9ckg zh}^4RsCGr(P?Gv*v9reLRUP0M5Pu9R z+vkv4+>a=%^bFz-&&cqs%4FG&-cD(1?XN^G0NJTxEW%wv4vWZc)tpXPmzjiPz$qWrk(OIQYoF zW72NZ@mafYB2vLm$Lq-*?)z0Z_|L1dmbv#Y;THcxad&fa2Z?Y%OD3?V3cMrWM8LZ) zF;fNRQQ^}MWL3!_j6`oOMDMxtn|acfS+iJE!8dO6uyC55e9}kPH8sUdPDv8n4vkxD_l!9O03d$MlWt&7i;b+~Rv~nm{tBf0j>G!%B%7-r? z4hz%v?tQvTd6K1Cz;uEh!Z4OeB(3D>#p`OS{s5vG+wpc57pwnLnbO!$m1ELbOEVsO z3@Vwgpw6?w9(rb9{9%uejO7Vqe%^e?eYx{`eZiyqsnR`5Ng&kNxCP|Duxb8GxUc2K*MDp6O}ll{7k{oAG2a z&(*JF6t?Z4pRJC(0wz=&NaQn_dtNWg8(1+rl#K5I@b1tP63$D0lyXd4q$!n*_NA-* zWMB`^vrJX19!=u&da?-XrOW#E+~IruW(Uj7zf3|q%U7Q$JFYcjYL-1;SvN-5n}TG0 zQNFq**YuhV1U?QuvTxCQmW(wsyvrL-Nl2LWEi09!e6aSu7gNql*b35b^U5NP(^rKd z5*=&J=v@otQra|*^vYg;^evbalh9qs9M~AT=p6MWKO{s!P6s!MnNS@-*R8;ip2Kpf zuHOtUG}B3Ds>kKR`EnQdD-&1wSy;Q*-m*|PT!m)e$x|x`4u`kkKeGZmIos|$%=ag) zDkOd3ZI*e;mCY!!xKQUM;LZm|e$Zt0~exUQqkaubBCrTko!wv zzCF57NXf)Qa^J6O=*j{gZ%s8j72Kfl5F;Aj8CB7B3-+nCfLO`>pI)Zm&_0zTM|%Au zOf8bTU~;DL){Ln_5;*{sPS-RPr3u8Ur{4@n!zS=*Sc_8 zA=Tbl>Y8qdHzod0@bylkt+eiam{_u2-GSyTN||sp{Cf*#?V44gk(fAvwKivz$Tr*4 zNhx9}1A}Xq*YxC%CV4x2ekOt8PgZ%taj<1p;@PEcg0|$!OjwOO#$t{K?q6;L#Wu(1!8|}&={2C^jk2y6hmz)9 zCW@{AfNXbW-8O@VNx$tQVY~WlRC76V@)9V?jig_+H*_$P#kMzfbXwnR$RX@sh@JhJ zNQ7$P4aGA44dQf;lNt#f8djj%bgc;jMHR7WGyN~Yzt`56XrB%(WpaGI!xF+7g5L}M5EN#2&&bGx zRgs0k(=wdAWT3dm-aF-vI`e*j{kim1*Y6iuE-z1>th*4>%vsB#c7GAGcCn!TeZO8q z`a^k`6g~c64K^r~dF^XM4?!%W!b(z0pc$q}1Z-2%*M5|mrb^~kE+@T%GqYoDfx7V9 zgJ|2`D9hykas{!up=iZIsrF3HyVh84`m*v(8SnO3lU!G6l& zO=s)&?OCNo?OX9q*n`uShJ92%n28|l?TyaT>7|1(gs%pmeA=zT zMWP}s$xJPJM|Gz0LWB+K;iHs3p0V!*0PgNvGAoTex2`R7^?!2V95H}=hB34jK&~fX zkE%l{oyUM8fLe4<_uhQGD&<+Hvoj6bctZ8{=je=3AP0HndEZ2-biXGpS!Mf?Ac)n~ zjdFF_6hLp_A!)0Wc@Qi&36GSnA^B5jNa=O0LK!jZe|el zfFP(OEUH#)uEFjT%#zgL>Oc8Z26_&3!FHuB+9~o4fS9U80SS~tzO+J}>#6oqAxX^X zK}kDAH6rffrUp=$w)Dj@!XGoz)T_Dn6Fm_;%DT6QqWSkg!hz`}6HlHmb0o`&)XA&i zfViy~&cb%+umZAt49WVKf{b zFrO!TZ+yLhSFzScs^mN6GiCVPsiYOb8UN_|0O`ezhN=xc#faA6EXnclA%rYGj?m=wmCZkeLuF^R5<5K^}ck)*qe(M=SG>%8zWs7wj+b~S z{C}{fhacM3`vU34Y-c%=k9@4r@KsR!nNz$^sJQL!!5WciiD0A_`NtAL`+&Gr;B=5V7x7n-@FIBNr|6Xy5#5nyUdrh)`gQj_DfMZ z{0ACSeXU2R3+H%7Xc~LN!8AzKdr&i<9IrYY?2{v({|qP*xtdV2o^U>!t@LT=ATMy* z02oUa%pFF;i)gXItyrJOL!?BFIC1|yRWr(CCx zy|pOWn>mEj*a>TWkb@b@l|FP)OTM&77QqeNPpgVzy}BVB`d}kNG-rEqp%H^5e<==G z4hUo8qN3MiI;OK>_Ymbi{EpWL*zT^oOoY8jCY$M zN)AQr;|!1AcAlR`AQ5%PX@> zZ}svATGAB)#`MsT+S+}yRb=c(A64mYL7F;An=&7#XvkE*E@byuDfw=kO$c|J`>9ph z4*v2qUyeU%jT5+kmN`)X7fEM{c6Oy>2iXk~f6bp7rv-bA-Vgpa7`1fxh?D254q4lQ zgLl|hAU7`nhe%=OfTD_M>IsyzWV3@N!9h+c|Jxn9UAr0^hG8fr%(pf*QoP96c@xFb z?-^;2^mqW`>h=TO%(?!LAfT}ERp0`xYj4lkApK>m|R;iQ)bKO=d@#;XC=Wt zYH6%jyR!^1fX%XrsJb?eOK;lwp!b|YhbogWGGxNJlZ?xob_4SJtaX?nBn+ab^OZ60 zdp-VoL_{Gvr6%s(f#Q2Ofo%$3}&%EPn?JAx1+%m17;g>&SLiwwDj zZc4C7)_NXfXAmS-oJkDN+;$sVVdx5#dqtH7!=3z-{H`{Y#xH@=rt^d$LTriO8+<;E zFFIoyjUZ{R12#EC4sMT|rTUqIXVeP{`cmz2rRkJ-asu@7S>w35jmHuUA(cZpXrY-` z5zL~?GRjqkrcM5vh&s&ENv(<{{lg2nZAZOI%>SphMs(T$+8z8 zUvuSFx5Bu@NajhD{mh2kf@eV`j+oE1#eQ1=Aa-ALU_y2h2p#W${7rIVNK`Uov8E#}Iyg0ywQp z%wTRN^5nAsoe)&?=1h$Rsn=sStK|~_C==w6{)>3y4t$Nl5)mC_FHtD#%`&?~ew%AW z{kXKGxc(4(+1c?OgOfs5owbiGs4m_x@xlWnI`yBrH*<_QRpdNrMzgz=F-kqRpe42*?QSm=)(8FHq|}wzV|Sw23>9$Bz&8?5vlV1%p_3l z!NTuf?+GZA_Mj-z)yCw%@NnAlu~@%s^X-)36Jo>L$T}H#T=*1upiL;x=}@VF?mg$~ zr8?MQ?8ZaTy+G{SSR2U#g!iOxHfj6njZ5SqSHyJ+I4L#g^!USAz?RN&4K7k?N&Vwk zW}I3LNuT>`%0uSpYxE0>0%QIYY+EemF}baGZre@@Zv#-w-Jg!d2WRHvTQBPv&DRHX zJOr#)3}N=k+K&EvUY$&~4&xIBGQn%r(ezp3r&f!UU6ehXSw_@liXrcQt!gQem_;7$ z8u&C(5g76_Av=LK+wFVRG*3x3L+ft6D=%KPTc)h;-qecOnxCPU^?%)-f1=l_9Afpx zt|0#uG5UhZbI^0n%^LUOwO1eENvCosObBNYr|)7Gm#cKwKX7UT<#r(1(1?&88(Z&@ z)Nw~&QFqIs%n53w&G<u$}JEtZwXGtVg^;v~4e!u9)|7}>GDyD>1`lkqNn5h84KS|b6 zHBCP+zXRs!EvwMubdJ#Fs~%AqFZSEpaZYazA3^^ug~=3}7yPbPy58W@1P%QkfUn=7 zgGphYw}G;r>idizcmz6|TgoNvAg*cwhrIeg-)t6|tMk(y-2~OYiWpYynE>bzW-k7% zPd;#fs|-0!0muBP@XV0-GxnDOp*Iyh)U*y>)%MbkRUPOFlBt?Ms=_my)c3GK1rgr+ zd~?}&P}C|0vWT&oQyJwdYsgVwm9 zZ|jNaCECw90}e2PHFl(1E05$8Z#l!KBwiK4TW=(L2dc%c_FM$;U zx_uCgUO0nJwdx@Gp;Tv}spVDx`1bx5!75gpP0W|%pv&Yn zO`6zP+^VP_D$Q~>gQ8bO082((U4OoyJ?Q||!76`~1@)I^9nHDy#0CuH=Oq=YrBB1% zDtr70lwrD5yJAX2xR9O0q1hYC2B6EU=To3Q>N{}4xSJ$0TQP1;JRkh`HdmT?_{~%a zud-C5Wxtpom?swlk{WHzDuGkAFwAz*@x?W#fL2R%)}Pw?A^eEsqF{-2*KfIM(3n!d z?bJdob4cLb)fhs*$Di3}^31F?5^)1IO*-(HIp648<>(F}5OqVP-e8{=Gh1sFH}(iI zuvRtG$ zr=I=KW^SQ$*FCDcmGOm4*Ut58!0p8pt0vmL{Sf z-*^Nym)A^>@q(8$;#8Mv&N`$jvdf_Z-)MAznc?{?7FEcnoxH>#ntSo;X_6tYL5OgT zg*W!g1Hy_IRo7rLPod~1;hrXwFJOIj>Gdp23*-kivy6GBL{cI_+5k{omK=SAft_B` zJ+PW5k3t!+6RIO+FMftGm3h#vc=F@or6EriMtl~;NUrtkDchCe{7uPGojrinLn;6X zh`eMiO+puWYES@O-ik?a2)Zu)h&I5+*00>$vR(`~+{rxbj(GzJ7!E0>r+j?DPC(u{5p3x~< zezhp_gZR&d2Bw=Re;NYp<+TA=KAJH6n{%8q^iqU5&x(Xp)}-uMtIj{!dtvJQDt{34 z1L@EF>~j9#+e_hr4y+kj1KrIdLOv`2T|&GShsjTVZx_VfivMCCK>HP^QK|ykHRH=n zrQAhDGd?fWJh6|hr%FlY;LYq33(_~h$D;B+Jj47-nc`NFWs0Kv$6rNWeZ?GDQmdb= zFOnzcW9lrCv)W`nUSgf=IkYhg?m~xzs(!((28hM(VB@)0S<+Ye4JQn?i;8&M0pXvs zGB%P~T>*H~^L_bRkai zQ<%HdPNXyt?%Sl_2(U!wJkctK*T%bPQ2~0~28h%cK{EI`jWbFJh++1Zma;_s4fd-tDKShX};1gToR+3 z$Ks(}OOEaD$?8Ll6C#*;_JlJ-t?sUzJl%c=%>cY*HArmC#|MXXdU=Kdyz^e%_CG?}10C#Oyr_>x6CtLuztR#h zAzqQFRf1h?vd2TE^r3iY^L4nulF%!P&O4D5hj4z&ydeahKq&&cb|{t;15y+b>mX}O z9;>H-pA)jYzoHlRJi@|0Ri`tlMJr6L-WuSUZ!-S1O>>j9kNdlqiezjvV&JEz^(Ed` zPd-j~4pn|IvBpGq5qPQ!8j456Bdw6$=xmmN=V-vW$v#|L{J3a zgsFU{qU+#YrymiQp3WO1&;x<$zL!;1y^p+u1h!vmSUx)LKB+(Dzbcx`!O_%*9Fqx_ zj){X@lV$paJ;{@xn^Ljeo{&Xr8;san?S^rsH%D10@;f2}X|@Itdl7zxLQzJVyhzqi zdOZx0f$G^n4ojicFFx@+-XQt$YawXM0pNR*j}7rGqS06Vr7^C&*LW?mV%A^8LfUZ5 zeK$fVd678Qn<`WS115#sb%#A3O-)O-x^4z$813Up+TlI5N^AUvvO!{!N=ZQ~hL=AM zF!V)ySMbkM{@Ru;$-C0M@hmzCgE8SDccSgsI6o>nUs=aNp_2^J;%lph2EIr(O*;Md z&~En-(-Y&WOV6=>ky%69&l&fJw-@6!lED$ddER1Us-uV=c592{?@@Z{$Ct#m9*+i^ z*8TZP!*UwxJNyaWwv@hjeX+&znQ||#TYPhOVX=}+4)8pmlu?U=|FK!eat6*HESmf> zsm8_wzObQaEaBbVdxdiz(Yha{q%6?LQEzfMElTfxl^P+GAZz4)d!%VyH~o0BF4J05E(~+m zHtncqEr%~GmUrO-Y)~rfxXCe=SoHq5!$WJDLMKh(#P;$54FoT`16+*Ln2^dEPPMaT zvIc-p2Z&Mob}(dTI@DkJ$uNlWdG>aF&~3#FoE@r9+_OB!e7kSnJszq>&ffbdlJYhC zM%N-Jv>VRJx1%0!%=BAHdeg)lks%13I$a+eY%0lFMs?j{oiGbLN(#s!p zf66re{G)n27HK{Ivp;n<%sv_{UO5eX8iwp-Jyah=fRa(0B-|uun}O<-A@RYd%b4RL zd`W;o5aN(LCo-2)n*PFPec7xzK$#oEPxEh>o9mGdVJUAAn>o+NWX5ip&6#ZBvE zSH8k?FFU?9o6Lx@&DXB%&|F!6LKdrx-l$+UtD`i4N~xx)c`ngL!#SL6NWDL*E^j7E zzuRjGyhH-v=c`_Su6P@UEA{x3=kB(x%BuqP;oC0P$etqN)yJ*cG?LH7jJ0p;{$Vy7xZDY%X{r1>-DRHf*{twp%KOf5?b^lEPXU6BkwwhO= zO)HJ<_oKtoZF%v=e1n_zry7n&N}qOIgeenWKVY97^!RO-Vn9Ni=M_djQoRav{|D$C zPKFIc4c6l_-M_l?8~F@6)~{ij>w9Bm zGg$a6XEvp94!$4DQ8C7J$+ZBBkyTBc*uVJ7;t-MW*`L=86&r&u`aRgN z;sp^t&>n2tJ-kD~mkDhE#4Xo?&etdgLe+&6meCx8x*-`|HoDonGkWzLMdsiuLVc4j zr6|8*yu|Oz&r?78afM9hg1~BJm=n5JNx0KfrOni-0g)@INf_ARTTfdJVKYns^zkV; zTr?s5Xn)&XdP4@^W1e5yG{4GuI{DhS^(M+v@l+{n>)tNca>PJPwu7f`p6?*xp*v?&IC9Y1o9R1sAcVe5_KF>+nB*ClRSN;lMIY-dbPm|~ zX1d3=k(SJ6OeUqREjayR;*GJp2*-jBKVfqtLY6jdAPZ&h0U{^|42bR_$*JIl@Dn9VOHzW$r%}>>Iza1$e-tOTlv6 z^?(x?c0fxwf6kSKu|9bAGeE52MvIa^x4`60mCQFnDa()=FY{~1QNxPF@?Ma%*@i#H zX-j>aEhT%;P9a+aryc;aCQJfI(e)QxxTGc|(y*iWp6*q0{*#V?5u4VtI?fcfMOVP` z&(E(Ns2d;G`OX?1Me`?6u}In)wEqIk(erg>m9hniZE*|-z1#`^S{W$w;^uL(+Hxw` z7c#Y`$J2N%k%KP(6D|jS2KGA@|D1&Tlk*h%F`sRfv24)G02mWVYEQKLW%P`BWANzT z!L2h!l*fTygpRUQ!$~4fxV=&aUG-7MyirXei19RNM{c3fbkf&PuX@9i2S-cr%+jo+ ziLY2Cch{Lzp1fXLW9E|~G;F`HGuc!DezTK_!;2pO{m$P@0uAkXWT;}9wc4`Ry;~pX zT){sxC>mw1f;|w}ZV}&c8P}uBBQo7)tfLban@`^c7b;-q`JWGRbgp8jRhpQjs_oPjoFLazcpSA0&bOe^k<~WVi=EZs7W(w6rSY?PY390h5B>(s zK6K#cX+m)m5VWH$^6&HKBmRelR(Go;(M}grb!W6b^~)!xt2NWPE4GWS*Z38W_MOVY zk^u)lVqd^TfCbwdg91>g&H$zO4Fvmr{Y`h?!5fO~QYL0Hn;*X9l-$L0sa(}f6Vku0 ztb%UW0osb3-)M6 zHS7MNBRruW1_fvHU=M3yfZttWD$)CC^^dfabPtX8C1tPx(Z>sbi1IH!w>xOx1yX+x zOgJUKkBi~-h3wik##IBqc<2R(TuaCaat+-k4c><>v~9%=boaq-mu`-;()G(l1MWKor|3=kQL&3-_Ca z3o^m4edbJ$bV3A(cVfmhge6~U?Ua4DbCx|{P3K-d{2gCD4K=a&@dUTwPY=lAi~o=? zbWU(-3IlJ06uZ4M;k;4Pqq;d635f{)>o1J?>mE(O-7 zw%V(B!a}3n3)4`FUr4|UAJ z0l~GVA**mYeQhdy*IxCSS)PpYRLZA&wrsZTFz`!@|i7lv7hOqq92R;Pi=lDLGcR(xXtto;Q&jMxVh zu*o1V1aEEz3QLDY%B?p~tpWb1JA)g1Rpq<4JY)?Q>mfDv*1_wqXZMhg&i$AG7p+wd zgpgF%w7Zk*ajaMSar=yPU$y*dBIDkjfzLV6>xQSI#OwhGE-dqzHan>ZHglq|!&lMofFHazFJ5cY z+2Jz}4vSFb8d?L;SBb%LmS-vA0_&09aj`L8KTYEjMX{Cm?`JvQ<=}SpZ!9XYbxL14 z^49oGkx3VCw=glTew6OxC-$c5LyfHhFV{s=7AvaNxEcSj{i+@Jl{`JM)+fVfr0nhO zalj>SOS!o(@vhHMax%zjYa39)j9BfBI`QpdBz8*f>KJZ#5V<{5=oUsZphRC0<;hPP z=2&wJ2z9&^M)LE)TvAoPI#Ks;wQQH8H> z<)&^8;?{a|zr%-WvkPiCv^7*~qzm0WdB5yyrJGOGJ!e-fIIRnHdqT(YNp$cG_UG8R zzz-L~BDW5Yy^TAIQu_N1v*eHO*Cg0{@E<1;+>9fKb_?7Pc5AR8J1HzZ7Cqdr&Jz?o zI1b?|3WYg+L+@h4sGgt9%yS%>xfzXO^QZIie3s#IWNB}BrRHXsQSBN?_pszZ?(5fR zIzuc`*^bBV9(V8BEq}}FOTA9kZEo(?5v&75I|x18wsj?U~YZ6alL!i+6g@%!uJG_ugwnq#c;9zx^ctPBa-az$SF< zt3potc(AXj{;t|Ga6u1(gwO(EK4{w{e}3};Ba*?jsI{WMm#m|imv9`d=`7r{2Eb$b z(cXYO^yc+~6q4&h1k@=LHoSw=oqhBVG3)nExCsAC=$FIcp`%jBT!+(J;rCL%`*=?a0pujhd4I@o0;t<&O z6d;D+;BI{?VcU3R*kQ^wHYgk7g5VHc|Gz?7R& z{gb;-1{FVw;dTx3pZ`0IB2&8`tLGOi1>XJH4PIUA8k{bXebJeWlzJnDQ!A?ivTgyO zn}_vTh8k*S9n|_-eRXwjL4Je1>4w3!$3b0GY;LOZHwFyj%sNWE#2s)4$M!(M$2aH# z1hfyzv~h5z8TmQT>q`-j6xoo^wg=Z7uO^;OrwUbAvEY0%5tIRL#zm)2*Wvo>t_Yn_ z>)sC%lNiLWh)R~C(kqffVzv_c18A{m$>&m`!g0{}&q(7ovtA?PSukI7mE9US%)X#F;{2eX9Ug=e2R>CI&m)h|V?EBxRXG}!6@B?r z{Xg0x>&~GhM;9G9RYh-*u!oJ%46V9(iPHP(N!&Uc2r|Wg1&5bm|B9|a@jbgh-)u5N z_xl=$)4Pae4+DUnBr|ido&NdqcA`*;s0x6PEJ5a0FY+RsIXn}#GIFhS<0K;epbPqA zb1n&|Myx0OZE^PX(9mO0*U*z2x|SV(tf5?kIuDS|@Niqv{z74o$OAulgF!EDwo^16 zXwfav(sk%|ZzdJ6oNueS`80fK+ihXWGq$X!IE_z)ZM|AzYM8>S% z6We)p60yfJ?3jNzm~R&2w<-4A04DkO<66>pZ%-BpV_qP7mHglN+((p~??+Yxt2pEU zNAafvb;@!1$^?|=jJ3TGa+nNiV&B|7cia=~e+UWrGsP6=fdM4!rU8iVl|S;EJ{3=} zC&88`z2nn_fLW4$42kj&}>}yJo-i2};WdBESo+}Kx2<02VzQeE+f!kzr zA(2U?*QEkOLQW|tuk?Vovv&vvg4Y5iX49`I+#Np*%}CX~1wnAf)}ITz&T!+?44750 zGBS~09M@lE%g7$f2}6E|Vobzwo+1+VwI^7++~%^TP#cC-xWM^oMv(JRp(M#2BS@??>}Y!s^(-1dgV z@61~>65bZKG*gD8>5H^BSU$eaQo^*&?R>&=Cld99bDa_A5pSC^uKzD)Qc2`2Ed20^ zSl>O}+3j%F#MC?t>Q@aO!LJ>_!2LhMwZHMz{UP@;lLGaMS<9^AQtBUjpZTZ57xnEV zqC-nf|pnm-#sP{{aG$ zyw1$Ma2(P`0-wdgr>VHAYto*Gne_lS@R{4Bbrr#c`vU-fsgQ+gpWhhiv^G6<1bX;81wH6HP) zOhkKA?2I|gi4tUdS!Z8~Iy`)6Z@ZAGKhEBy*R<<2Y^4uQnBv>sb-Li3buHg7$w;8J z15x4`aArULW?7=c?9-pQA;2jb0=Qn$xr7HV+)%TqHIpPHOyCf)vI3^ElS`{b39BsCUEeN8MQJ76gUS!NV%>smYvyxp#HvyG^gj--RA=8bNzvW#y&812Oi z3S%J8*0PHjLfdqoF^vwL9(}pMAtXU$2pRAi^4!my6vCS*o`R7kRNrddsI z@iKsWm2l3`MOJzhEouBP=E>_+<6q^6AjLlg7p|D#{1nr)hb|C)vqYDI4{gPs67TL+ zxqZZP-Vu)xY2$m*nyvs;w>+%`5P9ClG&Eg;_Ky!SNnO)yg2ft6x<3uQLm>8hbukM_ z*!uCS4|c3u_jWb5^8Y2CCFr!Pz@XdYfx72cxDKovwo36$eQVq4Klf}h9g67^<)Pi7 zh&teFe0bW6vBsOt55H50^_j{48t&2tlH=7%K9WXmvsGq9HiKzncYtKWC)10so*+5^ z_c_eW)OXA~VjB2wr?X}a6)7kTFI+B7zxb4;%<|!q+lN)`0~rwJ+N+pp7=PLGjAaw5 zH5_2LenHIe+r2g)*xf-s)bnP4-2#>iAL!wQsiEtE*8=lL4*wrT=l;+1|Nil@F(PNR zWf+_DA?DEJG=w?ie2nCL%9)&sh6ph>r)Ui!XCcRQn6o*SLyD0yB!|lJP3rUA_aAuu zu-#sV>v}#O_j|R2RMz3q$n$`s%da0juB4$Ld|34N*q^jZo}OYIH@A==k#1CoZj!L9 zcNatW;^~{Ao?KPoMcGd1-g1~V2)S`t%@YEazk2F5`^P?ZH+z8l!d$)zPZ=M~>%|QN zQO+5({i`H51R|{A<&qPx_N~-;UxpEN*CZE^_81-k~8fu7$Zv1|Jb-+#+ada@O649f>)s zt1D|6j?mjQIdT}|!|GGMcAdSc;jQ3M9N)2uu+SSp|FZ{?9Z5*vN9dvGWJ^Y}t>HwB zEVu||5C=An1LLf>{@XV%o)Z`M9JS-$I~%tQ(X@e3Ul>ft@C`ifr5ZfcR-T`(j{Ewm zPm9fzlwF;yo$#ad=&mb+)XsQ~)&XeRDkT{vEl*GlI4=OvNEbN&OO>;^Wel`(V+oYL zXX^)k2So@5OZuC|?RTu^b&mFK&cjK6WfXkP3gpW>@m(X<2jDmIy%G*W6293KN#&^* zK&_dsh6|oj8P8E8ljAW;uKal1Z^EF=DKAj?T16E^UEyLU2m2}L_k{b(*F8T@ z*J3ZJFD0upz5BI+`29?#8dJ|1R^~-2TzdylzW%zagxWE*9F6hi=py_llHblGG@1Fm zmG}@;rWsAt^jdEG<{%Q(P`J~n@i|!+wkl|%=;o09z;rV4TWfA&@sNuBA=Epz;9l*O zG^*7A!?MnR9%!;qcfJ-#@(-h~!ya-%R^M4C&2MGSb^EW{+Xx98L4F?&hc-rjyvV`M z=PJ$qz1Tr&KILpH$c1X!FrJmB2p#MrUYU!_v0!_2LA8B}qu!~l^9t$GGuqFNjJA6=q zd*w<-mW`Me*F{r@SjUZ%Ok%9tXA0yr&oXnJ3S?$bzKHy|;jK)slN%3ivkuKV{Icv)Nfj1Y0k8`{ya8yxt@fJ88?1?4t+|7g7XHP8{R%`NTP=|f zHzK%9gaHCuvGgA6*{g)JTm!tj3p=6$(SnyteD(XBUT43t^Cn&;EDEL~w*vSvH`h=v zmJK<OdvqnuP|;8i%YT%zgv2OvkA?3HjxTd zrt*NWd2yrVdyN!89m+_PeCS|&rzGIUr+Wj6P$30;3jDW2FyAK?wvBsYLTM(jjqjRv zRbp-9WwijNrz=EDtx{7!+D?CvIb;#{DYr!m;C@hZu7zhw;5-^N<9`1lpBzYcELVVAT?{8P!Cs=O3gobbSTVGqxh7pT!fugyi!X4wL9_F z_x`C3Q(|-P0?*I9i^uUw6(K4Rm*p-cP)rWD@K^V3g^$C>-;cI*yXH=iyqZ+9Y>Sf5F)ZM(7&E+|7i>x9uO?tJYHwXvy`i{yfuhT^}lK@J*PP1p~Yx>zlm>a0$0+WTQ-@t#V48je3;vbF1KyO{nm zg9(TT3|X*rUC9a5Z*d*HV0^#WQUMB(*(!a}=zA+g;D3O?&hv1u6gi!5Z}1nvPuy_XJva4~nPIWPMWB>KnLid_?%DuW{0EYoUy{d{b(cVfRjFRXD zWmw%l7zj8DJ%0H%hAWKe2)%)qb-s-7^~?*B={IuxnQ&e#cj*Ur&;`~K1F;_#-rGcSR^nN#t3kZipdP>aNM zK>1|$r1pZzy>byIj;;_zWyW55u~A1=($Fk}Pt6_Zqhk}Ro3XQLAH4hzI~`D-Gm2m_ zVc<{W6Cp?S)-kZIkk(q7`8Nw zOk245nTt7>O_=c*Pp)?{8ZnP9NWejLiFK)9Vx7jUd9PFduzt7SsC`{9&|;zY=eX`pnvc zn}d$!fP*txjmDpa|1=NyT>ZGT?v(aLZhZ=bARdT8)`XM8f9%`3f6&_3xfyu0FkVq6_43it$)O zSNbn~UbQho)sjjvT(Uh2hIiAe^pM_XqYyFIM6lHF8n?p>Kb)Q2Wd2#VyS8>j;$L&+ z8>?7eeuBInR;QjER&Kcxr}58j_kv_e-=_7oD`H~E8t!C%VWy$0T>qX|zMOeG#a9H@wheCMhds%LE1=oi@wfW$r?hA7~rJ&lG+wD3tuNewEIHfxwQX z$bq`;kd;0(jmtEb3A91mr~;TDg?)9t_c}!W3Mc+9SL`!0A34suL(>#K3>ra5%Ei=N z__yqf{Y*f8I=ABSCcLB?X*4KV2ygj!EGKp{$+imYI1lhgUXSDNEO8JF;sIzK4QXCV zHc}63yYFAb>Bu?OBOD)ZuZ{A5JEeGe**P-r4Re|{W)~y!to@th-8-JWE>JNOSjJI6sy?t_n?^oBQOx3T=H=(7og+2DiHymwIiA!l^-TO!chc~SsU6@aQlD` znyaUH?VIRP1HXWS({H)lcxW=ZJ7U!39A*JCq=9(hRsd5FZ14AA^vKSI!nw`=1{Bup z;tdZzaFXPPRFb}cNWkk)UuSrdu_Fo;59uJn0Yk&x#uRTU!600V^?TPhv1%J@{SBx@ zNp66Q;s9L58jyoiyGTpENyY58l@T`i?uDzIUL_e4q{2esiom^dd~eG*j~OZ1d>ngM zfyG%c=jZQNx%DRWv@l{9`DBOcUnxDFs-+&I&uTyZx=Cw$5nBxc06O7h-Fu`h-+ zL^Pnx*sZjhnHXEa-ZBo9+oIM*F4H)C5~c_ot?~1Fr1N;|HQ_4{Wtp6OIX4vvl>?Y9luZ7{eS4v^mMhM#gdXG0&)bz|&X;t4Yhs@{1dyfDq7Y<~T_ZAj z6e;sAk`4$b-Knkaiia|_odE``h_kcA3VqR=PFxHzf(x}Dfv9Bl!$y(%jtW@$Um`pCt9CCjv|4ggJp zD&*+RL&`X8fIN08S8U9axUgrG%1$e&kLJzKY|9K}LF`l&pLE)+;x9AZk+>C+;)6;b zZl3-;cA@Y~8v(+MAMex(q|#2CceB}1_KP-!tuAUOzL6OcB&zeL?&W8fpAs1yvzW8< zW_JWSPJQo~SCtS_2RY?T-{O6Ix3VF;AUCIX#BH)h+AKIpS zgDGyy5uPmd^7@lU`0d{K@XZCBw+}7=xNwgMsCpy=TFJ4H$#s>PiY-C`)$HN}2)_ zY+cxcIgH=RSizDn5;hsG=`s23?c7&bz1|ImWG78iXw0vGUa;mcG^aPRLE0!CYIv$q zuDPV##rGg7m)os0)qejodnR87j@=67l&A(Txof7UNnFH-jp4vScYkA`^#OMz4yFP! zJVD7!y*Bs%-VC@Q_vGdaRf#^H!Iu2>7nU{GB_8BmV(7nUQJ*4$Ilu3t%gdxGH z(8+E8@|gmHGvX=})@Pp|ibUy8Uj_!|M&kcN z98_M2wzcr>^2_uXMd7OAe=}%lXMvQ?$lGkj%BjG3R%AR0=BLKi*7>+LfHq(PN0EpL z`+udGog%(Q*DSs#%*H2z7f6V>Baqc4DI^~1lz^^_EN$h~-z%5|W&jpX4$ou|Wan5v zn~T{L+EGx zCs+rm9QXLY0i{7IS`k+*LwWl)w9a|@m*0<{fJMKQGnRqxBBgs9?|R$WnP)&0&6wFW z4s_;N=K4%`UvNeUKtW_Eqf4O1@;VLr(NfwJa@NSa1N@xyLnoiJYk$-SZ{>j(9P#xc zCMa*(t-tFCFg1SNB9s9Xdsu@|D{mVNTt`0y>o^T@-B*$&TkC4JFYnf+ZgZWCu!={AtQ3mq* zbjVt7a9@Iial61~$Aj$!zqcO=DJLO@rt1o(w9%*2%rnq2cR?VOQ$v^Vt$x`>{#Rjf zjE-`*W+HUGvg>Yc#rB7X$gjmCu3Q=-?Iw4C!e8>=W7AC*R_LOmkD=j91IOn%>!UoR$nO*rw7)~E zV8MaC`sL{W0GFPq+o$8&vm?CGWxmJQwd0h-k)O^e+EU-3uvd46#rmD#%47|SmfymY zkfT zbtBo%>~`7z0EiLvz=M_e$YIN&#_Yi>!D;#z!&!!w-{iyt3OS^s^OZ0>qz(#~$u7I- zWJ!moOhI|UfT`{rzWNKk-RQ@T=PUi@$Iw{9F<)hTmLFPs%Rw{w7uX>yZ}M=GjqyJi z=L)-e5XG{HDPU1Ncs<}<$P&E$fpD+Vy4r$MI36P`o3$?0^~dz3hPkwnrxibKpL#m` z#mni)g5D#@*{22skyGASU+MNJ2yR>>B88eUQa?4LwDSJSR+T;x=uv$9Oq!O_R;cr) zd%dc7z}iu^jQOhn(F+*j1lrRpj=h(V$RQP!KSlC`Oy&Ujv zz6+QWY0jbR{dVt>OoynnybH*C#S2_6l0Oo>eR;e!HPblzsK~b$89vE%^>o^0bDGvx z56@3F`X&Sf9D}vy`l|+ENuCZi73aDrx;9`{RTjw(EFxgtTUSTW!UW*Q@K{YZCA`}6 zfTVqh>{T4_!lx{@>)bWZt-4@r-Rq9E-e%QB1kx1S`A*=HUX>7VG)R>wkU1c!xq2ntcD&G zv&!G?_}qXb0Rq3bXPAD+MX~e|Ah08@?z;ES^=n?t%UW?*CMx4Y?dhwHH%{Hf8yPmx z8*r!GHNDOES?i?dHW!1ow_~Y7m~E3EmYW!XohE4TSy~id9nKNLLGA~_xo`NSKt1Ca zsrzvNGOK1oi%&x>Od`L?rbuYbqlNA^3_(wZ#UBnDG_6H^a*NKv>XL&!0D$p%<84<-gp(bAvB-Ui{X1EKh{`P^Zkekwz0$1umjSz zc4JrH@KU{}+0Hf!s4Th4j5JMBuCis9+&Y-Lz(r%C^Bf! zfF*$1xI0Su3}8uR=vT1T9V(J(!V=Wbac#7Ae*@$P)Q-eIKCJP;DgI&GIZ=Y2v%Sp>2kjA7MKrLj-%_y)TWM*ug1N(zi4mxC;P4Zl&lDg_~SD6>kYPxM$_Zoz};3H7x>=sj@>RYjhWLru2si$ z1A&YgIZFt<+eQr5G8(}*nWi}+YhfguO3I92slw}zA5zmct7OY$pYf1{xEBhALy zS6=}L5_|VjglvTSMY^O8hXWf40Vn|^fsi{45J5Sje+2HNwvXG&P4I&~Z+=qh>vYFJ z;W*u^Rl-?&KeFWp%;m#kq^+m4RY+W~S5+y6TaHV2j$$)DpG6M!Buzn}@N>!Ez6(>- zdXy*IF$##qXgoz|5MX+c9!%!O$$fu$ZDWIv2%H)CMik z#8R&@EvF}Y&3LMF6ikezLU!YH3-lG2FDq5`kOD1<fm z75_Iu`g}&IMO$k0ZdWmOas7h)6>g77IsLioEo>7aSfrR67ueE`#V$duT@A_|ES_}; z)!0qg6yZp3EaV9AD=|dVzC?+f{nfN-e)P}gBJKB6`h|W)M-cwubXn&slJP622VpH@ zuFX`yUVIi;yuH8M)|5fS6l9X79ubbW?DTN-?KFGLL2pe-X*)c9KLore|4pWX?Ma8q zftIMn$)NAx(ZO7QYe6>Naw69f@jRC9+tB)W8eJh`<#%GBxI;f2vWT21i5Uw(r?Upo zJ?Y!DvV&eklD@mc-p}#HpP`PUZd`gm^2WzDg=rbPA-~iwFPrQHMc%o|T%T*mx<(wB zd>BG8+9p>LW9wRw>XR;0*}Wr%2vVsHJIp$)Mfr860KrBaq|ga$KJ2ZE6CI7@V7Gg^ z7|%QG_1{4iqyDGvb}=%q{UKO5i8{4vwH(~>S)u-_&ev{77(FsMOa&W*kW_ng{6lB& z>l4nnokQyLo!Dys)zrrYo~^Jut0{Q$EU}xhaj1@0ipJ|(hUa3xHR?rmg4#?{5tm78 zDimQQi|}RK+bW56qQ>m!QRIn+0**BSoM?FSb*3`k$hCl>Ff7z#o)kXe+mB>EQRsMA zN-Xaq@y`gqoGP!sa_YJRQXWRjqA>8M-5R~n&7URmm-q}&u2&zgrBZF2>hE>INc^;w zb5W?uj}`Z@94f5tdY@;YQn0_W?QgnY{+-)mujtD?cUHz_d7}EcNx@6rBk7uo%>KDO zM-X8s_H+h&oj4pI{MvV=9?QI!HI@q7OW;;*>06KT&KS_+TEX;tbKcp)zqSjwtuRsJ z@jrlwJ1a*Uzm%IrLg3%Ztjf?1Wof-WU65!9VEAKU(WQ97)wF4sn1p0;7&9dpxsgMe zYn>jbY_0HS@wL*^Ivm!IJAA&Ro5%Vm_VqCAS9n&;F>KbXMrBCw{kkD-P~fa+6&h3 z5_eCUbtmL~tR#LL^x-d2DUev-oiR;cw1P^2npBWe)J;{J&A23R+R(^ys zyieAK1P8I7v9{bAbTX3(Uf~7DSPd3r^fSjzXpZ{N6*P(%dH0XvWHfZnQl_7%SD$at zasB>vKdV_=`RqHhP}FRp2|Jq|13}pWJp)vsCU?z->e3$ox@}w_U|`wmVZ(!-H!9d* z-#7t2^$Omu=w9s~f7=Jgt)KK%6V>6&jVWz@<=PW~n`YrijMn%qcma^XAYwEfQsqre zeI2`UbL|S@u)AKJZ?3vj-3joG@RZ9+HWtQ%wPlbO$~`k>m{=kpx(Z~R73hfgvRV53 zXtATl5Vw2emcz9&THW6g{c{^(fai&CWV7^Ft`rDW)M$+Dg)buBxOIxFDz%mEf(n4; z+W&20c&U77iTAv-tQIOeHrVygc5FiHXkawkzkBu?a}~wr<&_!D?=CYL*VbkQQQ`7c zSfn7hY^MYe)TkB2h398Jb*$E}0~r0u{F6GKN3{}Yg?ZC=h$72$&T2h|;pW>ICY z`4>$ZA_X>PxXO{*^=6@%f=Q#essG-yyp(T+4LuTH*#+z=XGPBZs&Q`e3#w>~UCH2w z|LdxKFrmt{ityrm;MIEwi_krt6Cn2GnLuyWITg6lFM$l@Us6Oo1nx5DHi;4w$;CB0 zyNbz`Pn=1=m~&PBgRNH;;4tRizrru^;kv zPOgSWZ@xc#ZV(D%`p9-o6CX>}IJJE`=j9Oap4y3aE8ZGbL zNwO@W=NT)i63VTI?-t~2QJqh4p~|xNo*2VmqJ3?M`%B6H1BgkT&*f&VjGZ=r!J@Z9 z$T|(jKzT28I%E^*HlO4vUoqP(PCSeQ(z^IHXB<%b4fm>pgiQ>Dt{@qAT=z#Z)6TuI zEibR@rJwK{767_e{UZamv*FLM4saV}HXU7f3Bund;`PLCb|c}X{J!hmK)Ot6gK z4r)Y*JOLjJSE)I8i1hRKMdE~B%&RtC_CQ)>dQm|Y!Zf_{q_Lpyhi{p)rTIC1FCFCCUJ(l2>nOMpWn5q% zLTj98ArYCp?1^JK((+Sfe-;~RHjIo3tA#zK?c@8aZ!mP2m$ox*jd>)qA#qpT`EiK_ zf$oZ81A)I-f{0i~BJNvxkN*WQn=cC13YkUyJ+D}y_`Cu_L_a_&-7hLb{0N^WOLSz9 zntm_8kE@0KlM*fPSn&K*yjKj-M+$|L>HMXm4Xy$uKQ4BLi+x|ykedSeoy;+n-x07i z<$U~Q&VVoCE#*${Q5|tnAL{84`%$luQ3pR-J*Zd8sO*$ie2PBb*Rd#nsZibP7#>JQ1W3^HwttKff0)He$5F_Ckj+hV$ky1{i^J&X+mzlI zE!Z)@-Qk{k43SrBOk|tX5S+`{YPG4;^psiU8G;e{*%oB{dLds3QfuO(K86Aoz-1r& z4u^2&td+hN#=wt;&f678wpu;n^7^-VPqYcU`l~T}OVw$gfwxKp_?F2q=`lTSL8Cn* zB6kej{Ti#9Gd#PZqe34m{vAk=rDKB$Udc8ea7HswB)2}dE?Ks5>5;Ll_N#m#LQD^# z=22d_AX%^$ce4jBwa-w|fpVA3{}B2S%*@~{+!sPE(pokpX`MGqrWbv*HK@?}bgd=E z<1a;d?;qgKX-S2=Ok6BS`Z7kThlBMjEv`EJQ$w&XKWaeez7(94b+{ckhUs`O`5S~d2 z$S?)na}-~<=7l_|4+bUcif%fJd=^m+?YL4zz`?vkKEeJ)5tTE2*s7vQFn~cq+=%W| z?FXNhrmxjB9Pyo3f8JQEGSOG(e5fUwHqZ@n3;3O5vg#0bD306W#Uz0I9?XJ+qlX_wAcn~w)E-@I3y{L zHZ;I4Ko=rRMDjnm8)q2_=H5a0gAXfJiVB`fD!orU!P7&clc;oVy|W)*7M9ks*A4iC z5g;B$#|WxbQXAVkYA;Z?8~Qkf#D#`2O_8^xgxVT4^L0+2ulV$auGm{Ua+V%5U(y}xPn!BpJ`RKKML?!j2MzaJ zQQxe*yt+=XOb8hL5D>)}ZoW9gtu1nf7iie)Z^U$?;edpF8<&%g-Syyxi8Ezy-W@7q zaxe)FdM*Rvm1XH`t@%=FJEL)^YX0HEKA$q8`E&1(GIb1Ka%vsLF`l_$qyD2VuR^P` zhlkA@26!EI|MW2Wy;e=9Vyh9;FdU~-vHbFEFzs5QkaPu0>kWfs<1%5BDZN26#aeW3 z`oI&e#641>_BlK*$JR2uq$NegV=kJ$$Bqy=JomXDP>8+7cIGVtfYEvFpOGe_6zo45 z>lMYZ+9fNe_R>#FI&ud&;O=G2O4Z;Tj4UQ929HokU14!;k*DPS2sh)9HROvcb|sN^ zA9w#?tW%If&+i+xY}`h-AUaX+58mL$1X-d=iaeQ&qN$VCdL0k9I{Q&ldW^8zdT zaaKQ1cv#(N`hKJi`rK2<{`xH1yA!GzFwQ2%JDLIHrmt!CE%AHm{*V+~(krVYfMFMxn@T&+};B+5+d@$9g zScX6V0-h=P(EW7VE|0Ic3f8It;88+d&FTM$lO7C>YS{_k(_=#$N=ea@ue#s)nb{eN z4Dz_b%j2cVgenA(yjOuG!3{Q+q6OihNSmU?b>lqJWkfhAvh+rpcSZ;~=8rSa{{U=g z>LD7+aFXam%SCNMn0R)mV++Y*2$nS6G06lp(h5*qM2!AGEUKm41(0P?uKeA;<1a z*vy9f6f1If9}r>J0K>xnsl6^#c1a0k&s2w_QlLJ-@(qM!{dG>G?MKO3d0`Kjx>oZekqW0=# zgLOUe4bO|wvSV%VSH}mTN2%!}=dwSsq!~Xqegl{O{DaTcdE^Ft@oNTWH=Ntzb#%RY zYiN2~WKYg3!T-Rt-=+Tp+|)6%&lC6O;Q7lw$)Nt@mtv0^j%F1;hKHVS+pnPWL$usi zy9AJw=}_r!al9}>r|02n-fR?L#w~Wqr!zp%h{jJ@&<4NJ6PWjRGHf;T7P=OE+#f!B zdZ+Gt%BV*;`(@~KBlN9y7 zh<9$f)M|x%$BTTggRV&0N4!xcKlmRY^@j6XV{8+3S+uE8oq%^Z)%(i7Bp{| ztkzYJlbVP82ylIL`@RHQrrOZA3V?bzxf{NJ!pJz1GOmxxHydF9zqsO)ei+)#1~r|Z zAK%B0jc`^2q9<7a0=-3V=ftmSF;Iad6+xDCVXScc?D5r?jp;-+blxue)#e{zV9Q27 zC*+0y0p1cSHU9Bj1aMgj$CIBI23$BjgIMQLS6IKBz?hZTPS=Z(A77f(jK5GhBQ!;4 z{klqid#I@*KPC{89!(s81L(hL2mjg&U}+z}UJGjqZ>RI|fz7!dZ|X0}8EpzM8|AK! z2QlTnKR7(D9J&#%@H5}91YPN<>8z4cT02FTnb|z{dD_c6+$(Ppq3O5x(I2UET%uL8k9d)wRK1mV8fDVA94X|L8(Ml3WgIL=7WypwoMC>H@s(o3BeEr~l zbE28_|Eqn>9rPC_w3OfldQ4z#>i5V^+i_ycxQ#4*61zA-tu=;SS9Tc;geTk8eF%pOOOg$U4~3 zcj@KX8xzh1_$(y4qgS=8CZAdL=(q#eEHHp0k^cdvi_dSGC4o}bgTA(OY8?vuGY?on zn0o~RA7zhLF)pdGWdho{aJ}z&3?TC%AZ0#fc9vgr2&b=K4(C~gXYIvp4(d)Y8>E|O z>iEz-u-_wxu9D9Kko)SNK}y~CcE_TAmabW~H`EFcsjp0+C>+3awTAk0syc8w;9gDg z2$n1HHxRnbK4lRIsY=%1F&F5jGFbrm7s+SuSu{MZ$R>HkHnUIaH#1f%_qhT!yt>tY zQ~Znog{&dfpH_H>)#7jF(dgptK4w?OjXNSK6RgWFcN`3j9YE^JsUoxpf1qOD=tt=_ zlgC;$y(3o9Fh87y-p+LOpL@ZQpXMNV5vAxn!mN8@{?~A}SGjVs*=552!N{0l^s2`5 zAA!wSKl~2pL8=k&9i8HlXB50@bV;>m#NxIjch8H{)r|ExCM8!r=b z*-2AMdLX-!d|x;44rvDPa?~qBl-To&F7lZ95mQqU^Eap!R;y2GrMxe1Hga~~hBccX zeUikmTEB3Ow-@Y8zFnc(S~2n}lN zjj07-4ZvT`X{Q@~UGDYoq!d!75{ti8IC;M6;AaQOEBy!ZJ~%q4kN)r&&VE#gk?{e45jAARq(Soq6|0 zhYif%SDyV9BJy=c$)1Xh#bG!+d-E zgetq4tU=>u#mTw$DF&m;9)^!V0V1Cnf@5|Sr`}5pL5xywSS-wseEWLjB|$508x!4+ zPuBFek+Kad!i_ZGCT28;!`wn@;US356Lx>fv;l6|b*-~&p>huuVY%wSP~c4#@%*$t zX4CpjD@nV(XxD9TmpAc4KvGW<=kr45nUL@?9_x$bFV&l_z+dBek>5~da^j2~x<6Fj zRp67=@V*7<%`$1kjTXFgG1|zitU($=1Zp%@1R|mL7H)+1F@V3a4 z2HfX`(xc#WkBpyA8|T~>T=gU|%^){E*5$?BkrA3U3}HYcZh7e$`nF}btQXMJ_nWWW z3dheOtrwCT#YevC30Za69WgvNbHZ;bN3#4dJ0ze`ft7Zb;8nAJ1K8tZjgiyREyLth ziCM07gW!#qVLZ(2h*^>4cHs&wK7M+e>A1_Ndzi*{SnSS}sed+|tjFK6viuO4aMyO? z;nVoMv8Y>~-&Bz+yg$k0*H*c_ZUNJl;^vhVC^`|vbRczNSIhZRv_PC)W5|esA(9C> zKZ_%^@|pX*wbDiz8L!$J)@C$m6|X4Qd>7!+1)3Y|@CFsn8Z{wLp1ZoId`cl(ek3pC z+bG{s_=wT5+MNHAnJ`{2<{gl)7WnRV||>ed?*?U@Quv2hs=mFW1mk2I$jX|vNgy-sIMKo@?~uCZrV zYAmOtBDbdYo~=r8bKFoh6URF1`PjaM$1{|rHs5%a^=Rg7WN#5(y{0RZ%Z@qU?k!69oVf-!)w>U}cfuCA?Y%O8({!irppNxagKgo}li8BrxaNR}`4sblXNLA>QDSJ? zwt>`qqu)fFO!q`3ixohC5w(Z~p3V}f3e9ZgFw>)iujqb82}tld*Q^Sy^9S4!!y+OrqRSuYAR%k>-> zQqAr`yUvWlm5K}LooGHU#3xvajcHzQn11e$zd)sv1etRKTOr7{edyvkbPANyM_l;O z2)xeOJNtK~AH=lzkr1l&ysxEi#XCmo)Mli`Oxm^^vUd&-zCVgBb zp!C=(fYn#{B|f>la2GP$+|J1nOapM596(p@mP~hD>v|-SGdAN7JNx)Vucq;aJI~+ZPCg8wa+JFa!2hvj{k+78pMt#dS+{3+>F;6m@pG1k?N7x} z#Wpf9pI6Q31L%}w!(zg-kNr^(F8=9t@Mse;mMt^jLiFv-W+tvAnRqA zcEMyTge$aL?|ukV*>3VBSci&-Dth#UQGhexTAg;)AL3m$Qel9;0mhxSNc;0Ke+X0e zOcIb?XQTu^XrOwvi+MZh_`?xmQs~J@^6P0R%S7|rSLcW<_EtBYytAUw2wl?;MB}!$ zu*qD2UCKF5!h24U$mRN5fy&PE@{3koaK0oFZy5X~ZB4t;&7^G(&+e+-S3&>+8QOl~jYzabet*ROWT7kfG|&h{-Jj zq9g&T$kIz|124fQF}!{By_YcD1i1^U#YEV_j9M@Eh6`k>eunG>peB8D$))3AD@&e(%JXQbPB(*&G0b@deKa_%rmYoI0`To)J$)t*t)yt?Gi|M zUFx&(Ksa?@d{7UBomSVxqL%x*sO2VU30`e_%8*lv zb_IHa9Qo6H=Gz-ys4ww)(y#Af?1(PmK})Ud`|tuMOHRLY{O7KSRMWUfbMpjGHudyX zgxHXB>AgdZvS%`tf480ef{1^HT>OXi0h`lLykf*nKfq{f%}8Bo=y&bw*R|;c&1(b| zT$##cD468eZsmxAN@j*7;q7ov&#&UIk`6YpM%#Ekr5suQu3GI>KZ^+!W3|^lnZnt< zZfC1o_Ro?Q_>OHy9EI$Smy!Pi+-h`sg_oO?P79R|-*>+f1jNrWNtTBTToa#KYhnUq zdH>nB}9zIS7 z7k)Cs^l|=2$NFj%E^UPc)TuWdX{9!5f-DX6%?cgeh3EY@*R`5ycrz@}x%OPsDxyHCko0yzQPC8fRr_a@CQp5TOklarJ1_^*|kYjUup z4D6_Izc8kE*!-}z)H}wAXbb=u_a;mR^Dl0p8~}`KqsqFy$A8r!!}}cM z>7?T6!1^eLr$164Tq*Xb8^x>F>@Ikcx6p_#`+GfIn|A-sPF0L3nFpg6|J0&Cj5H>gH4x z0Hv+}-IXV^j4LTJP2|i=(5LF@Gm!wo5cdd!fXAgRgGgKHd59g5RWjozkxNtgnVVZ8 zVgYdQn$G7R($G?ndajBAEUTuH)d5btD?;+BGQE7|rl4@IuD|SDxGpvQ~;*;UlX}2?0f&^&lUQM?n+GcBK8Czy9vd$(WD1 zm7Q!pBRsLwpLynql`hvoAXtCf*C+O=h*GR#cr1< z`*c}y1ySIi^LjNv-peyYgU-yV8B=FFrtt<_4x+v%#sZgfFRb&kjq0K5FZ44jGeiY2 zJ9crGkq=$B)QZBGk`&&DmvnZ&e(huCM~uHzt>qldNINoAB7Ofb2sPMN=HnfUwA6=xRyku{C+&Q{swQcSl`QgmL6BdcFAez47J|=B#KBDPcT{lEn86RmYZ~ZEWR;h~ycpq&nlRADOK|>Zs zOaSkesff4<9s4xLY-bZrEE@dc`CZXKfJ-{<8kN7PFMUK$hGnH070ek8%0_p@@1a+x+uzRG8DCm7)q{?% z0#fh^bp=#!<-XQdoSv_BvNjXABhW6NiclF)ml|>Q0p-n}Rh;?1b4PZU%*~HK7Oule z1xWn>2NrvALwveejIVc5r_AvMguC*MeEq7=xs|@!+Y*T3d4_3E6keY6ZBpIT1u2N` zEyE<#LCdqJL`!4@gSW4TsJ4)K>){vxVj+bMWbrN{78i=c;jfCkF_Pm2z6i3$WT5!o z6RS*)@uqnFwdc?1~o9o#Wa$+X+5F1I5JOBkuPJ6F|vs|6;v@qg^O9$Q|D=@ShtGRX(o{ zPs&T#R@t#CGS0L+Cmt3Ck=DL%F-yQYCqo3^yLF{kzhVFXjcFvoCD{c27~vFKB06X#DX)~RTpkayOY3xe|@dRj2=+6hiQ zF$2y+I1k(Z0J^50b$C#!0Er=4s8_{>4{0oRt#)k@Fc0&+;YM{Ab(OSyYlYgbNS<%K zR~(w3lqCZ0(x~?_t)+vai{1q zvJ=U=IV`Nx#x~iV%$B19c~Gio3EV%d{%OrT^isYoEX#=dT}XlI5dfvQPH+N_u($~8 zO(euASpdBHeVmh-DMzW(um*!bsEev0&qi^nBsI*c2WU(a0IC$iw=#`gz2!RM%V_ zQ2<{d{NvS^wsPmMMtPd3>X0u@VBy;au@ACd)xem!j73%(mBoVfKM#yNKx^f?5Uv%y zABN-a+)~QQt|*;vRA0US*!8u($`Gbkw?M4>T(Ta+3{I1f^y+ z&ECta2iUl@oHO+*W*hpy0OkQ1{_%i2_3csKLvy`bauvo|_GFKz6?i}+K;|JY@iP|5 z1a#}xq+5@Wv?^nAG7EwT$EY;+5ua#fi))NDE&&V&BeBjiR|V8EToAU>1}pcSNIv9o z(wS(g(uq}{obE*EPh5gPBi5$9xCt0B31kPB*$ zo|zt$0YXc=gpeyaez;AT#y#_#(nL$CL{(SL{pY8?N&f&Eof=@W7bfKZz+P03t_CW- zt2;BORk!34rH+1>KjT2l_L4^Tv5SZykd(k=ZWQ$A91c0fK_Y~?-MwAOz-1#V^y8;3!oUF)8^&ROT|eePZNe0Kf!{@*r$4yFs$1rQJb00egz;NLnx3qVBp zKl;3Iu4Xo z**bE@uerDbWDJBu|6@bUD@DSfLCR1z6NLO*15gnW+->Ae z8a2SLr!HY;kd04%Mnc{uk>B8ocIgzHb3&*Pp~50GL!{YD(yw8Dm_m#|gAL@vk~vgH z{}~OXDIExjDToil2!Y!HH=n$KsYrMyg#{NH=jtuP2GE4Em6FIyZ5k0@U@8bxp*b~p zrmzY!Lcr<(>j-2x6utVG~) zeQNNeI-;V5Lh&7GGAuQ@NDU!~mGpw4#qBsVT|j`DiV=yn7qn)UQ$)ycF;P;7)NrcEtg;l@#%^AN zykgCoveDmI+!Z-2n2>Yw(Wi}kkRW72Z|fliv$NXqzCPwizc5Q=l_uj@AAhu^mpaf^ z!1PkTDjm-{m9Lx__4%}VJiyCR_438B0mPZqFmZxc0O#LCJi$Tv&NP%>7oTKb&rY0J zNUw*543iBA6lv(`A0dH7njTpe07iCyeJCVZzEnrZ4-cp{LXzThlozEs@c?cZOhg%} zPN|{V{sEM21aKo8ARaDqQki2Aishp6LITUZ4TsCxO%MQ6WBeDqIl&QlI2+kWry(3& zM?BwN5m#R^0)SJ-)|4J@*Lfi!_{nxsVp61fk^c|)ySZjOIk+mb4j2b1OamyT8jcys zVTkAZ;IT()O1@dg8jrlyISdzopx9JI1Z4rv1R+vELVStMGOCK@04d?V@nfY+AdE`p znQ4?ze&kAK5loteTU|;Al=h8<&?6O0a0)Bao+Kd!!}`qK;Lr-o1Qp1sE-Jj{pe9xM z*hsj8_z=qj0YoE#hx*}|3X-zjB1?519H$Y0S129bJ~jXl&45wVgMrEvfG}@h&AZK5 zk67lkOHkqjyD8zK(W5|IZ0Jf3k5W#f8J|#|s}0#&)@y>w+Nqj*jLjV{dlQeau_}jL z8|em7eCjG+grQ89PtvS+PU_cdahb#^Qg)xYuG02bNXjQBZY<@Cl@L%f66G|dWn0;H z%PWjc3p8{nS^U`9)m7Jd<59lU{d1yE_VIY!X)75wp{BXF?f|AJ&i$6}VNN%Nyyv|R z1eKfIj<+%@S8vF=t{lG9qPCMQL2|N3*4Sq5_6W4I^)CbjoS5}A|pM1Zw9fX6yOB_DkcFZMX38;%H)c#Kuf zWpcV2tD38AePbfyn3m~K;FxgHG##~g8lzz$7k;^PY z*O62dfIeW&iqr{1FqpMik4)y>zsMR79g*|_FTR)Q?7C}9iPR)q=t4#!7h;@9R(&l4 zUqSQuiLNxiHHZ`GE+q^@s!^{y6RZ#}aW3pxq5*=Z4wza+|R7yx42?Rjd~3 z64xdl4?8Mtp|eraIS_PrnJ(*z7J(5L%D(-baBe#_NMPu)fpW?x&s;K)>|4{Mqevgj z{n1yh#d3gLQ--=*uB$=k6L&r~MGy?xm>gS{NzYWN zIMF@vanonk-su(7?z8{q*#1yo{%rD*7>46ZHFKKRpf|#sMeI+5at;{e*F*)$n{WbQ z(BE>p=gT|cT>K>YGtZ?vAhdIhu}@A9Wl68^4Gcb>!L&0pjz5Qz=@*>To_g1vm(4O@ zg|D0*S9xyy4QWjO7%?N+znhv`!Kre=7LAwd)>MRkH|d&eL2<$wr*w7hrCL%v|MmCU zYJYg+;6R=TRGr*CM)w+KVPQRQHGJ{T4JfsQ4ZgJN`I)@o{2}l)(2RRl<58V9Xk&*la_1p@#bc97?Rt@AvF`^M51% z0K1N}%7#V~f%)Xl3fQ7tQD!k)TJ5)a!2(~O`1*`W*kvD@`_nm*uuALo{H$m0%6NTL z1{=l2GUSHp<&plVz2K}%EKwu!@@-YAc@zEW)7Hd&(Z{$^ww*?|br&R5a;K~Q%+HMd zx5=yuT)%mEeXd(jwCIX9G0;jl-X*MikUix3-p^+2@srq~`VK;;!+!v#Q|@Q~02#Bc z^f5Hsn@VF%{(WXwswTEZ8Eg&bC3 z{@N;Glw*FZJ4-`Q%vnbVAfYxZ&j69K#o199J2$R0$&X%sBuvB4r-aSXN-3LFu;U1g zFP{A!J~pS5!Y8Tw8x?_xx%E1T%w&wD!8*f-kk~o7k^&GpSUS8y47@D3!_1Ts$5 z>+II1Fqn$}U<7eIW<{BWAT&8^M=BU|%$J~Cq!-I+JSzrTEQ6$KnEuA;$eBc{w}``` z7=jP6Oewz>)+{<$0ERjG$8|_S15=oKb|l4F#$@?qP=Hk6^z9>8sIkbKnpT6Kq0Dn5 zB%Q0Bk4g1^J6*1IHdt~#l>0p5YNFi|asC~p#vH?5U~-?md%M}eh029P{WT(T2TR8G zM(sB}Po2;H#cJ#Co{5ss^z+I4;Th+CiqR=s1C%sPa2b7q2O+VA&rdAESIOw2X%sqg z`w!fkv>cy)hKJvFaBa)IXEjL?I1tbvvsZKMeXWdj>-+lHW89T()mKhvO)5NU8>PgKm`C13Rp!h5y#ADE+u3RMemz$>XM}UQ(qLSt@(FR#ht$ zSWu4$c~E}>X^ybg#2EAr^!F(aYatoXiH|iS)i3df)-yC5`J#mUQb|CoYai7j6uePF zvc*rQfq9S@B~6#5M6{wZ|Hn%H^>MMM-T8^J+h|(~k$A}E-|LQvfwz207FF4K_Nsi( zjm;`8LT|vBZp0b-NZ?4DI{Lp;GhHjwH47_veF4!S{>X=E#MHt&s#^S8Ch1nLUS1Dl zmUL3oG(B53&+$rp2Pv+Cfe#jv_4nuB%ZDW3gZJm`>H!!JQ2_8L6esk??hRVW)*!_( z*@E!xbe-CR($HJ z45^_)daK`_XG$kEjnXygL$4EK94>eTDq)DIsYPM@pA)0+@+<;tn{r84U0yT-m|+UG zvZAN|08-|!Z!E1S1O<8Op{f?~74oyHt*3;qIHlu{a&I*2RI2|RYcgl<1S{ziGtlIG zA-gfpx!1*B_W6^^gb?k>jpWL`)S>6Q{s_|IPIsUvMPLvNs+3SihVgN@+K=Jhxv?F! z_EY${=jH&(-4~7jp!V*G2q*bPOHya|AivX*A4(FGB)!V}8~00G_~eAZP|Mgeix}94Vv*Yk__2-c2!5iPSj)m@e`t=yt@9OZN{n7m3pek(7XVH=g z?b6x8!ot5|s

OEPqc{B+^~{9USfZNbX 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

@)zk|l^R?5SeXMxAxxOUj1lt;(5Eb9hLB_n!( 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 literal 0 HcmV?d00001 diff --git a/docs/images/lejolly.jpg b/docs/images/lejolly.jpg deleted file mode 100644 index 2d1d94e0cf5da12a39a2e0f675d65dbda314936c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26764 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 EKME?T1ONa4 diff --git a/docs/images/m133225.jpg b/docs/images/m133225.jpg deleted file mode 100644 index fd14fb94593a11bd949304e9b707469e6d36f49d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80341 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 ~h=Jzgswfn#~fDj(k6%m#~toA_C$;FhdB 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

unhEs*m-qvc~~Q}umnAu-1hw{vtvRf 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 diff --git a/docs/images/permas-teo.png b/docs/images/permas-teo.png new file mode 100644 index 0000000000000000000000000000000000000000..89f89cb8f2e87d9dbf7d3bc0debbef43dd460302 GIT binary patch literal 127222 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 W@yAUT&3Kr&-m1PFTp|AV^Zx=|&doId diff --git a/docs/images/yl_coder.jpg b/docs/images/yl_coder.jpg deleted file mode 100644 index 17b48a732272464c97607e12bf494bb286cb3484..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7203 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 diff --git a/docs/team/johndoe.adoc b/docs/team/hardoh.adoc similarity index 96% rename from docs/team/johndoe.adoc rename to docs/team/hardoh.adoc index f39e76e49b2..c96f30b9175 100644 --- a/docs/team/johndoe.adoc +++ b/docs/team/hardoh.adoc @@ -1,9 +1,11 @@ -= John Doe - Project Portfolio += Hardy Shein - Project Portfolio :site-section: AboutUs :imagesDir: ../images :stylesDir: ../stylesheets -== PROJECT: AddressBook - Level 3 +image::hardoh.png[width="150", align="left"] + +== PROJECT: BB Productive - Level 3 --- diff --git a/docs/team/permas.adoc b/docs/team/permas.adoc new file mode 100644 index 00000000000..70fd3d3712b --- /dev/null +++ b/docs/team/permas.adoc @@ -0,0 +1,8 @@ += Hardy Shein - Project Portfolio +:site-section: AboutUs +:imagesDir: ../images +:stylesDir: ../stylesheets + +image::hardoh.png[width="150", align="left"] + +== PROJECT: BB Productive - Level 3 From ca17e2af43c3b87492f73f43114fad0a8dab52b9 Mon Sep 17 00:00:00 2001 From: Branson Date: Tue, 3 Mar 2020 22:03:01 +0800 Subject: [PATCH 008/606] about us updated --- docs/AboutUs.adoc | 46 ++++++++++++++++++++----------------------- docs/team/permas.adoc | 4 ++-- 2 files changed, 23 insertions(+), 27 deletions(-) diff --git a/docs/AboutUs.adoc b/docs/AboutUs.adoc index 442a9522481..93dd60b52be 100644 --- a/docs/AboutUs.adoc +++ b/docs/AboutUs.adoc @@ -4,53 +4,49 @@ :imagesDir: images :stylesDir: stylesheets -AddressBook - Level 3 was developed by the https://se-edu.github.io/docs/Team.html[se-edu] team. + -_{The dummy content given below serves as a placeholder to be used by future forks of the project.}_ + +BB Productive was developed by the https://ay1920s2-cs2103t-w16-1.github.io/main/team/hardoh.html[W-16-1] team. + +_{The project is a task manager which incorporates Pomodor techniques to help our users manage their tasks better. We also have statistics provided and a pet to keep reward you for completing tasks.}_ + {empty} + We are a team based in the http://www.comp.nus.edu.sg[School of Computing, National University of Singapore]. == Project Team === Hardy Oh -image::hardoh.jpg[width="150", align="left"] -{empty}[https://github.com/hardoh[github]] [<>] +image::hardoh.png[width="150", align="left"] +{empty}[https://github.com/hardoh[github]] [<>] -Role: Project Advisor +Role: Team Lead ''' -=== John Roe -image::lejolly.jpg[width="150", align="left"] -{empty}[http://github.com/lejolly[github]] [<>] +=== Fyonn Oh +image::fyonnoh.png[width="150", align="left"] +{empty}[http://github.com/fyonnoh[github]] [<>] -Role: Team Lead + -Responsibilities: UI +Role: Documentation, Code Quality ''' -=== Johnny Doe -image::yijinl.jpg[width="150", align="left"] -{empty}[http://github.com/yijinl[github]] [<>] +=== Permas Teo +image::permas-teo.png[width="150", align="left"] +{empty}[http://github.com/permas-teo[github]] [<>] -Role: Developer + -Responsibilities: Data +Role: Deliverables, Testing ''' -=== Johnny Roe -image::m133225.jpg[width="150", align="left"] -{empty}[http://github.com/m133225[github]] [<>] +=== Arthur Lee +image::artlee06.png[width="150", align="left"] +{empty}[http://github.com/artlee06[github]] [<>] -Role: Developer + -Responsibilities: Dev Ops + Threading +Role: Ui/Design, Scheduling and tracking ''' -=== Benson Meier -image::yl_coder.jpg[width="150", align="left"] -{empty}[http://github.com/yl-coder[github]] [<>] +=== Branson Ng +image::bransonng.png[width="150", align="left"] +{empty}[http://github.com/bransonng[github]] [<>] -Role: Developer + -Responsibilities: UI +Role: Git expert, Integration ''' diff --git a/docs/team/permas.adoc b/docs/team/permas.adoc index 70fd3d3712b..2b4ae71d266 100644 --- a/docs/team/permas.adoc +++ b/docs/team/permas.adoc @@ -1,8 +1,8 @@ -= Hardy Shein - Project Portfolio += Permas Teo - Project Portfolio :site-section: AboutUs :imagesDir: ../images :stylesDir: ../stylesheets -image::hardoh.png[width="150", align="left"] +image::permas-teo.png[width="150", align="left"] == PROJECT: BB Productive - Level 3 From e0834619f567bdd191858cb667d012d92f9d28e7 Mon Sep 17 00:00:00 2001 From: Branson Date: Tue, 3 Mar 2020 22:04:25 +0800 Subject: [PATCH 009/606] update contactUs --- docs/ContactUs.adoc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/ContactUs.adoc b/docs/ContactUs.adoc index 242bed87b69..c6d826cd6b4 100644 --- a/docs/ContactUs.adoc +++ b/docs/ContactUs.adoc @@ -2,6 +2,5 @@ :site-section: ContactUs :stylesDir: stylesheets -* *Bug reports, Suggestions* : Post in our https://github.com/se-edu/addressbook-level3/issues[issue tracker] if you noticed bugs or have suggestions on how to improve. -* *Contributing* : We welcome pull requests. Follow the process described https://github.com/oss-generic/process[here] -* *Email us* : You can also reach us at `project1235@gmail.com` +* *Bug reports, Suggestions* : Post in our https://github.com/AY1920S2-CS2103T-W16-1/main/issues[issue tracker] if you noticed bugs or have suggestions on how to improve. +* *Email us* : You can also reach us at `project82312@gmail.com` From 77dff525d4e592c30073de30d4949af9696d9427 Mon Sep 17 00:00:00 2001 From: Permas Teo Date: Tue, 3 Mar 2020 22:14:51 +0800 Subject: [PATCH 010/606] Update DeveloperGuide.adoc user stories --- docs/DeveloperGuide.adoc | 50 ++++++++++++++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 9 deletions(-) diff --git a/docs/DeveloperGuide.adoc b/docs/DeveloperGuide.adoc index 3d65905a853..de6c0986324 100644 --- a/docs/DeveloperGuide.adoc +++ b/docs/DeveloperGuide.adoc @@ -279,13 +279,14 @@ Refer to the guide <>. *Target user profile*: -* has a need to manage a significant number of contacts +* has a need to manage a significant number of tasks * prefer desktop apps over other types * can type fast * prefers typing over mouse input * is reasonably comfortable using CLI apps +* need motivation to get things done -*Value proposition*: manage contacts faster than a typical mouse/GUI driven app +*Value proposition*: We integrate a Pomodoro-Pet environment into a full fledged task manager. The pet system serves to gamify the act of doing tasks, thereby motivating users, and the Pomodoro helps users get into a regular work/rest cycle. This integrationcovers all aspects of productivity in line platform. It covers motivation, organising of tasks and also how to go about doing them. This all in one solution is seldom found in other applications which implement maybe 1 or 2 of these features. [appendix] == User Stories @@ -297,18 +298,49 @@ Priorities: High (must have) - `* * \*`, Medium (nice to have) - `* \*`, Low (un |Priority |As a ... |I want to ... |So that I can... |`* * *` |new user |see usage instructions |refer to instructions when I forget how to use the App -|`* * *` |user |add a new person | +|`* * *` |user |view all current ongoing tasks |manage my tasks and time -|`* * *` |user |delete a person |remove entries that I no longer need +|`* * *` |user |view all tasks I have completed |monitor my progress -|`* * *` |user |find a person by name |locate details of persons without having to go through the entire list +|`* * *` |user |able to edit my task description |make changes in the event something unexpected happens -|`* *` |user |hide <> by default |minimize chance of someone else seeing them by accident +|`* * *` |user |add a task by specifying a task description only |record tasks that needs to be done. -|`*` |user with many persons in the address book |sort persons by name |locate a person easily -|======================================================================= +|`* * *` |user |add a task by specifying a task description and a reminder |record tasks that needs to be done by a specific period -_{More to be added}_ +|`* * *` |user |be rewarded for completing my tasks |feel satisfied and motivated to perform + +|`* * *` |user |sort upcoming taks by date |filter out the latest/oldest tasks according to my needs + +|`* * *` |user |delete a task |remove tasks that I no longer care to track + +|`* * *` |user |utlise the pomodoro technique to break down my work into intervals |boost productivity and keep track of time + +|`* * *` |lazy user |reminder system |be on track to complete my tasks + +|`* * *` |lazy user |gamification |be incentivised to work on my tasks + +|`* * *` |pro user |navigate commands using shortcuts |save more time + +|`* *` |pro user |delete several tasks at once |save more time + +|`* *` |pro user |mark several tasks done at once |save more time + +|`* *` |user |be greeted by a cute mascot |feel happy and motivated to do work + +|`* *` |user |sort my tasks by difficulty/priority |manage my tasks + +|`* *` |user |keep track of the time spent on each task |check my progress + +|`* *` |user |see my pet grow and gain accessories because of my productivity |am more motivated to stay productive + +|`* *` |pro user |customise the rate at which I should do work |fit my workstyle better + +|`* *` |pro user |automate when my done tasks are cleared |customise when I want my tasks to be removed + +|`*` |user |customise my pet with different seasons |I am more entertained + +|======================================================================= [appendix] == Use Cases From 5459a5e961c6c02cfd71c8defac099bb7d61b737 Mon Sep 17 00:00:00 2001 From: Hardy Shein <> Date: Tue, 3 Mar 2020 22:30:28 +0800 Subject: [PATCH 011/606] Adds UserGuide.adoc (again) --- docs/UserGuide.adoc | 101 +++++++++++++++++++------------------------- 1 file changed, 44 insertions(+), 57 deletions(-) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index 4e5d297a19f..fc5bda3f49e 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -1,4 +1,4 @@ -= AddressBook Level 3 - User Guide += BB Productive - User Guide :site-section: UserGuide :toc: :toc-title: @@ -14,28 +14,27 @@ ifdef::env-github[] endif::[] :repoURL: https://github.com/se-edu/addressbook-level3 -By: `Team SE-EDU` Since: `Jun 2016` Licence: `MIT` +By: `AY1920S2-CS2103T-W16-1` Since: `Jan 2020` Licence: `NUS` == Introduction -AddressBook Level 3 (AB3) is for those who *prefer to use a desktop app for managing contacts*. More importantly, AB3 is *optimized for those who prefer to work with a Command Line Interface* (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, AB3 can get your contact management tasks done faster than traditional GUI apps. Interested? Jump to the <> to get started. Enjoy! +BB Productive is for those who looking for motivation in their work. This app serves as a great task manager and includes a Pomodoro feature and a Pet companion. It is *optimized for those who prefer to work with a Command Line Interface* (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, BB Productive can get you to get tasks done faster. Interested? Jump to the <> to get started. Enjoy! == Quick Start . Ensure you have Java `11` or above installed in your Computer. -. Download the latest `addressbook.jar` link:{repoURL}/releases[here]. -. Copy the file to the folder you want to use as the home folder for your Address Book. +. Download the latest `bb_productive.jar` link:{repoURL}/releases[here]. +. Copy the file to the folder you want to use as the home folder for your BB Productive. . Double-click the file to start the app. The GUI should appear in a few seconds. + image::Ui.png[width="790"] + -. Type the command in the command box and press kbd:[Enter] to execute it. + +. Type the command in the Pet Chat (Command box) and press kbd:[Enter] to execute it. + e.g. typing *`help`* and pressing kbd:[Enter] will open the help window. . Some example commands you can try: -* *`list`* : lists all contacts -* **`add`**`n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01` : adds a contact named `John Doe` to the Address Book. -* **`delete`**`3` : deletes the 3rd contact shown in the current list +* **`add`**`n/Do math homework d/pages 1-2 ld/2020-08-09` : adds a task, `Do math homework` to the Task List. +* **`delete`**`3` : deletes the 3rd task shown in the list * *`exit`* : exits the app . Refer to <> for details of each command. @@ -58,87 +57,80 @@ Format: `help` === Adding a person: `add` -Adds a person to the address book + -Format: `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]...` +Adds a task to the task list + +Format: `add n/Do math homework d/pages 1-2 ld/LOCALDATE` [TIP] -A person can have any number of tags (including 0) +TODO: Insert a tip here. Examples: -* `add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01` -* `add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 t/criminal` +* `add n/Do math homework d/pages 1-2 ld/2020-08-09` -=== Listing all persons : `list` +=== Listing all tasks : `list` -Shows a list of all persons in the address book. + +Shows a list of all tasks recorded. + Format: `list` -=== Editing a person : `edit` +=== Editing a task : `edit` -Edits an existing person in the address book. + -Format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]...` +Edits an existing task in the list. + +Format: `edit INDEX [n/NAME] [d/DESCRIPTION] [ld/LOCALDATE]` **** -* Edits the person at the specified `INDEX`. The index refers to the index number shown in the displayed person list. The index *must be a positive integer* 1, 2, 3, ... +* Edits the task at the specified `INDEX`. The index refers to the index number shown in the displayed task list. The index *must be a positive integer* 1, 2, 3, ... * At least one of the optional fields must be provided. * Existing values will be updated to the input values. -* When editing tags, the existing tags of the person will be removed i.e adding of tags is not cumulative. -* You can remove all the person's tags by typing `t/` without specifying any tags after it. **** Examples: -* `edit 1 p/91234567 e/johndoe@example.com` + -Edits the phone number and email address of the 1st person to be `91234567` and `johndoe@example.com` respectively. -* `edit 2 n/Betsy Crower t/` + -Edits the name of the 2nd person to be `Betsy Crower` and clears all existing tags. +* `edit 1 n/Do Spanish Quiz` + +Edits the name of the 1st task to be `Do Spanish Quiz`. +* `edit 2 n/Add Buy Feature ld/2020-03-04` + +Edits the name and date of the 2nd task to be `Add Buy Feature` and `4th Mar 2020`, respectively. -=== Locating persons by name: `find` +=== Locating tasks by a keyword: `find` -Finds persons whose names contain any of the given keywords. + +Finds tasks whose names contain any of the given keywords. + Format: `find KEYWORD [MORE_KEYWORDS]` **** -* The search is case insensitive. e.g `hans` will match `Hans` -* The order of the keywords does not matter. e.g. `Hans Bo` will match `Bo Hans` +* The search is case insensitive. e.g `Math` will match `math` +* The order of the keywords does not matter. e.g. `Math Homework` will match `Homework Math` * Only the name is searched. -* Only full words will be matched e.g. `Han` will not match `Hans` -* Persons matching at least one keyword will be returned (i.e. `OR` search). e.g. `Hans Bo` will return `Hans Gruber`, `Bo Yang` +* Only full words will be matched e.g. `Math` will not match `Mathematics` +* Tasks matching at least one keyword will be returned (i.e. `OR` search). e.g. `Math Quiz` will return `Math Work`, `Japanese Quiz` **** Examples: -* `find John` + -Returns `john` and `John Doe` -* `find Betsy Tim John` + -Returns any person having names `Betsy`, `Tim`, or `John` +* `find Quiz` + +Returns `History Quiz` and `Spanish Quiz` +* `find Essay Homework Quiz` + +Returns any tasks containing names `Essay`, `Homework`, and/or `Quiz` // tag::delete[] -=== Deleting a person : `delete` +=== Deleting a task : `delete` -Deletes the specified person from the address book. + +Deletes the specified task from the list. + Format: `delete INDEX` **** -* Deletes the person at the specified `INDEX`. +* Deletes the task at the specified `INDEX`. * The index refers to the index number shown in the displayed person list. * The index *must be a positive integer* 1, 2, 3, ... **** Examples: -* `list` + -`delete 2` + -Deletes the 2nd person in the address book. -* `find Betsy` + -`delete 1` + -Deletes the 1st person in the results of the `find` command. +* `delete 2` + +Deletes the 2nd task in the list. // end::delete[] === Clearing all entries : `clear` -Clears all entries from the address book. + +Clears all task from the list. + Format: `clear` === Exiting the program : `exit` @@ -151,27 +143,22 @@ Format: `exit` Address book data are saved in the hard disk automatically after any command that changes the data. + There is no need to save manually. -// tag::dataencryption[] -=== Encrypting data files `[coming in v2.0]` - -_{explain how the user can enable/disable data encryption}_ -// end::dataencryption[] == FAQ *Q*: How do I transfer my data to another Computer? + -*A*: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Address Book folder. +*A*: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous BB Productive folder. == Command Summary -* *Add* `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]...` + -e.g. `add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague` +* *Add* `add n/Do math homework d/pages 1-2 ld/LOCALDATE` + +e.g. `add n/Do math homework d/pages 1-2 ld/2020-08-09` * *Clear* : `clear` * *Delete* : `delete INDEX` + e.g. `delete 3` -* *Edit* : `edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]...` + -e.g. `edit 2 n/James Lee e/jameslee@example.com` +* *Edit* : `edit INDEX [n/NAME] [d/DESCRIPTION] [ld/LOCALDATE]` + +e.g. `edit 2 n/Add Buy Feature ld/2020-03-04` * *Find* : `find KEYWORD [MORE_KEYWORDS]` + -e.g. `find James Jake` +e.g. `find Quiz Essay` * *List* : `list` * *Help* : `help` From a898d995fd7b2ec60c6a1452461e8c82843d353a Mon Sep 17 00:00:00 2001 From: Permas Teo Date: Tue, 3 Mar 2020 22:44:35 +0800 Subject: [PATCH 012/606] Update DeveloperGuide.adoc --- docs/DeveloperGuide.adoc | 58 +++++++++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 7 deletions(-) diff --git a/docs/DeveloperGuide.adoc b/docs/DeveloperGuide.adoc index de6c0986324..c34fd866f0e 100644 --- a/docs/DeveloperGuide.adoc +++ b/docs/DeveloperGuide.adoc @@ -345,17 +345,17 @@ Priorities: High (must have) - `* * \*`, Medium (nice to have) - `* \*`, Low (un [appendix] == Use Cases -(For all use cases below, the *System* is the `AddressBook` and the *Actor* is the `user`, unless specified otherwise) +(For all use cases below, the *System* is `BBProductive` and the *Actor* is the `user`, unless specified otherwise) [discrete] -=== Use case: Delete person +=== Use case: Delete task *MSS* -1. User requests to list persons -2. AddressBook shows a list of persons +1. User requests to list tasks +2. BBProductive shows a list of tasks 3. User requests to delete a specific person in the list -4. AddressBook deletes the person +4. BBProductive deletes the task + Use case ends. @@ -369,11 +369,43 @@ Use case ends. * 3a. The given index is invalid. + [none] -** 3a1. AddressBook shows an error message. +** 3a1. BBProductive shows an error message. + Use case resumes at step 2. -_{More to be added}_ +=== Use case: Run task with Pomodoro + +*MSS* + +1. User requests to run task with Pomodoro +2. User proceeds to do task +3. When Pomodoro timer ends, BBProductive prompts the user to continue for the next interval, or exit the Pomodoro with the task done/undone +4. User completes the task and request to mark the task as done +5. BBProductive marks the task as done ++ +Use case ends. + +*Extensions* + +[none] +* 2a. The given index is invalid. ++ +** 2a1. BBProductive shows an error message. +Use case ends. + +* 3a. User has not completed the task. ++ +[none] +** 3a1. User continues the Pomodoro for the next interval. ++ +Use case resumes at step 3. + +* 3b. User has not completed the task but wants to take a break from completing the task. ++ +[none] +** 3a1. User exits the Pomodoro without marking the task as done. ++ +Use case ends. [appendix] == Non Functional Requirements @@ -381,6 +413,9 @@ _{More to be added}_ . Should work on any <> as long as it has Java `11` or above installed. . Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage. . A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse. +. Graphics should not be offensive to any culture in any way +. Product should function with CLI alone +. Product should be usable by people with no initial knowledge of Pomodoro _{More to be added}_ @@ -393,6 +428,15 @@ Windows, Linux, Unix, OS-X [[private-contact-detail]] Private contact detail:: A contact detail that is not meant to be shared with others +[[pomodoro] Pomodoro:: +A time management method developed by Francesco Cirillo. Traditionally, cycles of 25 minutes of work and 5 minutes of rest. + +[[task]] Task:: +A snippet of text specified by the user that can be tracked (done/time spent). + +[[pet]] Pet:: +A cute little companion whom the player can care for and accessorise with more tasks being done. + [appendix] == Product Survey From e8bedf5fd4839952afb4f5b21246ef17d78da5be Mon Sep 17 00:00:00 2001 From: Branson Date: Tue, 3 Mar 2020 22:59:38 +0800 Subject: [PATCH 013/606] Update README Add coveralls CI --- .coveralls.yml | 2 ++ Gemfile | 1 + README.adoc | 22 ++++++++-------------- docs/images/Ui.png | Bin 14607 -> 60013 bytes src/test/spec_helper.rb | 2 ++ src/test/test_helper.rb | 2 ++ 6 files changed, 15 insertions(+), 14 deletions(-) create mode 100644 .coveralls.yml create mode 100644 Gemfile create mode 100644 src/test/spec_helper.rb create mode 100644 src/test/test_helper.rb diff --git a/.coveralls.yml b/.coveralls.yml new file mode 100644 index 00000000000..30634824737 --- /dev/null +++ b/.coveralls.yml @@ -0,0 +1,2 @@ +service_name: travis-pro +repo_token: JAmvB95TinR8Oz1FHi7xUkKRCDOfJKSVY \ No newline at end of file diff --git a/Gemfile b/Gemfile new file mode 100644 index 00000000000..69bbbf1d250 --- /dev/null +++ b/Gemfile @@ -0,0 +1 @@ +gem 'coveralls', require: false diff --git a/README.adoc b/README.adoc index 3ca9ec105db..89685faa38b 100644 --- a/README.adoc +++ b/README.adoc @@ -1,31 +1,24 @@ -# B B productive +# BB productive -= Address Book (Level 3) += BB Productive ifdef::env-github,env-browser[:relfileprefix: docs/] -https://travis-ci.org/se-edu/addressbook-level3[image:https://travis-ci.org/se-edu/addressbook-level3.svg?branch=master[Build Status]] -https://ci.appveyor.com/project/damithc/addressbook-level3[image:https://ci.appveyor.com/api/projects/status/3boko2x2vr5cc3w2?svg=true[Build status]] -https://coveralls.io/github/se-edu/addressbook-level3?branch=master[image:https://coveralls.io/repos/github/se-edu/addressbook-level3/badge.svg?branch=master[Coverage Status]] -https://www.codacy.com/app/damith/addressbook-level3?utm_source=github.com&utm_medium=referral&utm_content=se-edu/addressbook-level3&utm_campaign=Badge_Grade[image:https://api.codacy.com/project/badge/Grade/fc0b7775cf7f4fdeaf08776f3d8e364a[Codacy Badge]] +https://travis-ci.org/AY1920S2-CS2103T-W16-1/main[image:https://api.travis-ci.org/AY1920S2-CS2103T-W16-1/main.svg?branch=master[Build Status]] - -ifdef::env-github[] -image::docs/images/Ui.png[width="600"] -endif::[] +https://coveralls.io/github/ay1920s2-cs2103t-w16-1/main?branch=master[image:https://coveralls.io/repos/github/ay1920s2-cs2103t-w16-1/main/badge.svg?branch=master[Coverage Status]] ifndef::env-github[] -image::images/Ui.png[width="600"] +image::docs/images/Ui.png[width="600"] endif::[] -* This is a desktop Address Book application. It has a GUI but most of the user interactions happen using a CLI (Command Line Interface). -* It is a Java sample application intended for students learning Software Engineering while using Java as the main programming language. +* This is a desktop Task manager application. It has a GUI but most of the user interactions happen using a CLI (Command Line Interface). +* It is a Java application to help anyone manage their tasks and time with Pomodoro techniques. * It is *written in OOP fashion*. It provides a *reasonably well-written* code example that is *significantly bigger* (around 6 KLoC)than what students usually write in beginner-level SE modules. == Site Map * <> * <> -* <> * <> * <> @@ -33,6 +26,7 @@ endif::[] * Some parts of this sample application were inspired by the excellent http://code.makery.ch/library/javafx-8-tutorial/[Java FX tutorial] by _Marco Jakob_. +* This project was built upon AddressBook-Level3 project created by SE-EDU initiative at https://se-education.org/[this site]. * Libraries used: https://openjfx.io/[JavaFX], https://github.com/FasterXML/jackson[Jackson], https://github.com/junit-team/junit5[JUnit5] == Licence : link:LICENSE[MIT] diff --git a/docs/images/Ui.png b/docs/images/Ui.png index 5bd77847aa2429edac366ebe3e00650b6dd909d8..cd9b118e8714d446558ccbe9d30f86f585cd5836 100644 GIT binary patch literal 60013 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

    +B>`a{aQQ8kJ^fa)tFSO@L@kdiq1B)IeVg7)%M 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%0D_%oD!{i07Af-oZ7CZ%cVuRsv^p(<;+=qv$ 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 RAXge19gVx{rMDi1{6Bg4z)AoB diff --git a/src/test/spec_helper.rb b/src/test/spec_helper.rb new file mode 100644 index 00000000000..f6f366b25b1 --- /dev/null +++ b/src/test/spec_helper.rb @@ -0,0 +1,2 @@ +require 'coveralls' +Coveralls.wear! \ No newline at end of file diff --git a/src/test/test_helper.rb b/src/test/test_helper.rb new file mode 100644 index 00000000000..f6f366b25b1 --- /dev/null +++ b/src/test/test_helper.rb @@ -0,0 +1,2 @@ +require 'coveralls' +Coveralls.wear! \ No newline at end of file From c24c6a2d8b14136b6f2eef6e5442313f563bbf13 Mon Sep 17 00:00:00 2001 From: Branson Date: Tue, 3 Mar 2020 23:05:15 +0800 Subject: [PATCH 014/606] Update --- .coveralls.yml | 2 +- .gitignore | 2 +- src/test/spec_helper.rb | 2 +- src/test/test_helper.rb | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.coveralls.yml b/.coveralls.yml index 30634824737..a3c43b30111 100644 --- a/.coveralls.yml +++ b/.coveralls.yml @@ -1,2 +1,2 @@ service_name: travis-pro -repo_token: JAmvB95TinR8Oz1FHi7xUkKRCDOfJKSVY \ No newline at end of file +repo_token: JAmvB95TinR8Oz1FHi7xUkKRCDOfJKSVY diff --git a/.gitignore b/.gitignore index e28f5a646d0..a4a89d5dcf1 100644 --- a/.gitignore +++ b/.gitignore @@ -24,4 +24,4 @@ src/test/data/sandbox/ /.vscode .classpath -.project \ No newline at end of file +.project diff --git a/src/test/spec_helper.rb b/src/test/spec_helper.rb index f6f366b25b1..54a6989c19c 100644 --- a/src/test/spec_helper.rb +++ b/src/test/spec_helper.rb @@ -1,2 +1,2 @@ require 'coveralls' -Coveralls.wear! \ No newline at end of file +Coveralls.wear! diff --git a/src/test/test_helper.rb b/src/test/test_helper.rb index f6f366b25b1..54a6989c19c 100644 --- a/src/test/test_helper.rb +++ b/src/test/test_helper.rb @@ -1,2 +1,2 @@ require 'coveralls' -Coveralls.wear! \ No newline at end of file +Coveralls.wear! From eddf93b771bc5a63956ef7e699331fd69098a416 Mon Sep 17 00:00:00 2001 From: Arthur Lee Date: Tue, 3 Mar 2020 23:37:38 +0800 Subject: [PATCH 015/606] Added reminder feature content --- docs/UserGuide.adoc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index fc5bda3f49e..18a0378fb65 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -42,6 +42,17 @@ e.g. typing *`help`* and pressing kbd:[Enter] will open the help window. [[Features]] == Features +=== Reminders + +Adds a reminder task that will take a date and time. + +When the time has arrived, a pop up will appear reminding the user to complete the task. + + +Format: `reminder /at yyyy-mm-ddThh-mm-ss` + +A reminder can also be added to an existing task, just specify the task index instead of the description. + +Format: `reminder /at yyyy-mm-ddThh-mm-ss` + ==== *Command Format* From 5b20ddbe95b79080684659f2968e249ab7a0bf25 Mon Sep 17 00:00:00 2001 From: Hardy Shein <> Date: Tue, 3 Mar 2020 23:39:47 +0800 Subject: [PATCH 016/606] Updates UserGuide.adoc with Pomodoro function. --- docs/UserGuide.adoc | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index fc5bda3f49e..77fe7f272f1 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -90,6 +90,28 @@ Edits the name of the 1st task to be `Do Spanish Quiz`. * `edit 2 n/Add Buy Feature ld/2020-03-04` + Edits the name and date of the 2nd task to be `Add Buy Feature` and `4th Mar 2020`, respectively. +=== Using Pomodoro: `pom` + +Starts the Pomodoro timer, with a task in focus + +Format: `pom INDEX` + +**** +* Focus is on the task at the specified `INDEX`. The index refers to the index number shown in the displayed task list. The index *must be a positive integer* 1, 2, 3, ... +* Runs Pomodoro for one cycle (Default 25 minutes of work, 5 minutes of rest) +**** + +Pomodoro Flow: + + +. `pom 10` starts a timer of 25 minutes, focusing on task at index 10. +.. If task is completed before time is up: + +... `done 10` to complete the task. + +... The app will prompt you with `continue?(Y #) or end(N)` + +... `Y INDEX`: Pomodoro continues remaining time with new task at `INDEX` in focus. + +... `N` : The Pomodoro timer is stopped and the app is in the `neutral` state. +.. If Pomodoro timer is up: + +... Pomodoro prompts to check to go into 5 minute break, and prompts to check again then continues 25-minute work + + === Locating tasks by a keyword: `find` Finds tasks whose names contain any of the given keywords. + From 2e663af407bdd475c3b98b7088aa1177f3b00b9a Mon Sep 17 00:00:00 2001 From: FyonnOh <> Date: Tue, 3 Mar 2020 23:41:50 +0800 Subject: [PATCH 017/606] updated UG with Pet feature --- docs/UserGuide.adoc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index fc5bda3f49e..1127d38b987 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -43,12 +43,11 @@ e.g. typing *`help`* and pressing kbd:[Enter] will open the help window. == Features ==== -*Command Format* +*Pet* -* Words in `UPPER_CASE` are the parameters to be supplied by the user e.g. in `add n/NAME`, `NAME` is a parameter which can be used as `add n/John Doe`. -* Items in square brackets are optional e.g `n/NAME [t/TAG]` can be used as `n/John Doe t/friend` or as `n/John Doe`. -* Items with `…`​ after them can be used multiple times including zero times e.g. `[t/TAG]...` can be used as `{nbsp}` (i.e. 0 times), `t/friend`, `t/friend t/family` etc. -* Parameters can be in any order e.g. if the command specifies `n/NAME p/PHONE_NUMBER`, `p/PHONE_NUMBER n/NAME` is also acceptable. +* The Pet gives a sense of responsibility to the user. +* The Pet acts as a motivation to encourage the user to be productive. +* The Pet gives a sense of satisfaction to the user when it is being fed. ==== === Viewing help : `help` From 13baea429b7e89e8e2ddafb7241a14a76b0e1eab Mon Sep 17 00:00:00 2001 From: Permas Teo Date: Tue, 3 Mar 2020 23:42:23 +0800 Subject: [PATCH 018/606] Update UserGuide.adoc --- docs/UserGuide.adoc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index fc5bda3f49e..e343df98efa 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -138,6 +138,13 @@ Format: `clear` Exits the program. + Format: `exit` +=== Statistics : 'stats' + +Views statistics generated through the app usage. +stats SPEED/DONE +SPEED : Displays average time taken to complete tasks over past week/month/year. +DONE : Displays average number of tasks done over past week/month/year. + === Saving the data Address book data are saved in the hard disk automatically after any command that changes the data. + @@ -162,3 +169,4 @@ e.g. `edit 2 n/Add Buy Feature ld/2020-03-04` e.g. `find Quiz Essay` * *List* : `list` * *Help* : `help` +* *Statistics* : stats SPEED/DONE From 391631673d9dfe685b6bb668d3c9142b80651d39 Mon Sep 17 00:00:00 2001 From: Arthur Lee Date: Tue, 3 Mar 2020 23:42:42 +0800 Subject: [PATCH 019/606] Removed trailing white spaces --- docs/UserGuide.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index 18a0378fb65..4531f5c3931 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -44,8 +44,8 @@ e.g. typing *`help`* and pressing kbd:[Enter] will open the help window. === Reminders -Adds a reminder task that will take a date and time. + -When the time has arrived, a pop up will appear reminding the user to complete the task. + +Adds a reminder task that will take a date and time. + +When the time has arrived, a pop up will appear reminding the user to complete the task. + Format: `reminder /at yyyy-mm-ddThh-mm-ss` From a20e5c30a663a93ebcbc5147be7443df47ec0bd7 Mon Sep 17 00:00:00 2001 From: Arthur Lee Ying Kiu <39481992+artlee06@users.noreply.github.com> Date: Tue, 3 Mar 2020 23:56:27 +0800 Subject: [PATCH 020/606] Update UserGuide.adoc From 0e637e45b7d32a27ef55ef70f5792432448165d2 Mon Sep 17 00:00:00 2001 From: FyonnOh <59982275+FyonnOh@users.noreply.github.com> Date: Wed, 4 Mar 2020 00:02:14 +0800 Subject: [PATCH 021/606] Update Pet portion of UserGuide --- docs/UserGuide.adoc | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index f28ebe5af64..a489f899dc2 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -53,14 +53,6 @@ A reminder can also be added to an existing task, just specify the task index in Format: `reminder /at yyyy-mm-ddThh-mm-ss` -==== -*Pet* - -* The Pet gives a sense of responsibility to the user. -* The Pet acts as a motivation to encourage the user to be productive. -* The Pet gives a sense of satisfaction to the user when it is being fed. -==== - === Viewing help : `help` Format: `help` @@ -182,6 +174,12 @@ DONE : Displays average number of tasks done over past week/month/year. Address book data are saved in the hard disk automatically after any command that changes the data. + There is no need to save manually. +=== Pet*\ + + The Pet gives a sense of responsibility to the user. + The Pet acts as a motivation to encourage the user to be productive. + The Pet gives a sense of satisfaction to the user when it is being fed. + == FAQ From 6413f416d8a23352c91d2f0baeb382299e4fbd47 Mon Sep 17 00:00:00 2001 From: FyonnOh <59982275+FyonnOh@users.noreply.github.com> Date: Wed, 4 Mar 2020 00:03:03 +0800 Subject: [PATCH 022/606] Update Pet Portion 0.1 of User Guide --- docs/UserGuide.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index a489f899dc2..7f06f8e741b 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -174,7 +174,7 @@ DONE : Displays average number of tasks done over past week/month/year. Address book data are saved in the hard disk automatically after any command that changes the data. + There is no need to save manually. -=== Pet*\ +=== Pet The Pet gives a sense of responsibility to the user. The Pet acts as a motivation to encourage the user to be productive. From 51ab4e9a9ecaa001c1da1c2e11d99a0a9d019b17 Mon Sep 17 00:00:00 2001 From: FyonnOh <59982275+FyonnOh@users.noreply.github.com> Date: Wed, 4 Mar 2020 00:06:16 +0800 Subject: [PATCH 023/606] Update Pet portion 0.2 of UG --- docs/UserGuide.adoc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index 7f06f8e741b..1d082d65148 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -169,17 +169,16 @@ stats SPEED/DONE SPEED : Displays average time taken to complete tasks over past week/month/year. DONE : Displays average number of tasks done over past week/month/year. -=== Saving the data - -Address book data are saved in the hard disk automatically after any command that changes the data. + -There is no need to save manually. - === Pet The Pet gives a sense of responsibility to the user. The Pet acts as a motivation to encourage the user to be productive. The Pet gives a sense of satisfaction to the user when it is being fed. +=== Saving the data + +Address book data are saved in the hard disk automatically after any command that changes the data. + +There is no need to save manually. == FAQ From 2a93c3dc26da9db7ee57050ef429545ee7ed9b44 Mon Sep 17 00:00:00 2001 From: FyonnOh <59982275+FyonnOh@users.noreply.github.com> Date: Wed, 4 Mar 2020 00:07:37 +0800 Subject: [PATCH 024/606] Update Pet portion 0.3 of UG --- docs/UserGuide.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index 1d082d65148..16bade61f86 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -171,9 +171,9 @@ DONE : Displays average number of tasks done over past week/month/year. === Pet - The Pet gives a sense of responsibility to the user. - The Pet acts as a motivation to encourage the user to be productive. - The Pet gives a sense of satisfaction to the user when it is being fed. +The Pet gives a sense of responsibility to the user. +The Pet acts as a motivation to encourage the user to be productive. +The Pet gives a sense of satisfaction to the user when it is being fed. === Saving the data From e9a49a38586e85a1f53494d7a3f75832139f9743 Mon Sep 17 00:00:00 2001 From: FyonnOh <59982275+FyonnOh@users.noreply.github.com> Date: Wed, 4 Mar 2020 00:08:46 +0800 Subject: [PATCH 025/606] Update Pet Portion 0.4 of UG --- docs/UserGuide.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index 16bade61f86..855dc134751 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -171,8 +171,8 @@ DONE : Displays average number of tasks done over past week/month/year. === Pet -The Pet gives a sense of responsibility to the user. -The Pet acts as a motivation to encourage the user to be productive. +The Pet gives a sense of responsibility to the user. + +The Pet acts as a motivation to encourage the user to be productive. + The Pet gives a sense of satisfaction to the user when it is being fed. === Saving the data From 10baf7d9717a8ff390ca42a128d78f521f47b499 Mon Sep 17 00:00:00 2001 From: Permas-Teo Date: Fri, 6 Mar 2020 12:27:34 +0800 Subject: [PATCH 026/606] update DeveloperGuide user stories and NFR --- docs/DeveloperGuide.adoc | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/docs/DeveloperGuide.adoc b/docs/DeveloperGuide.adoc index c34fd866f0e..477e22faa07 100644 --- a/docs/DeveloperGuide.adoc +++ b/docs/DeveloperGuide.adoc @@ -300,46 +300,43 @@ Priorities: High (must have) - `* * \*`, Medium (nice to have) - `* \*`, Low (un |`* * *` |user |view all current ongoing tasks |manage my tasks and time -|`* * *` |user |view all tasks I have completed |monitor my progress - |`* * *` |user |able to edit my task description |make changes in the event something unexpected happens |`* * *` |user |add a task by specifying a task description only |record tasks that needs to be done. |`* * *` |user |add a task by specifying a task description and a reminder |record tasks that needs to be done by a specific period -|`* * *` |user |be rewarded for completing my tasks |feel satisfied and motivated to perform +|`* * *` |user |see visual enhancements to my pet for diligently completing my tasks |feel satisfied and motivated to perform -|`* * *` |user |sort upcoming taks by date |filter out the latest/oldest tasks according to my needs +|`* * *` |user |sort upcoming tasks by date |filter out the latest/oldest tasks according to my needs -|`* * *` |user |delete a task |remove tasks that I no longer care to track +|`* * *` |user |sort my tasks by difficulty/priority |manage my tasks -|`* * *` |user |utlise the pomodoro technique to break down my work into intervals |boost productivity and keep track of time +|`* * *` |user |delete a task |remove tasks that I no longer care to track -|`* * *` |lazy user |reminder system |be on track to complete my tasks +|`* * *` |user |utilise the Pomodoro technique to break down my work into structured intervals |boost productivity and keep track of time -|`* * *` |lazy user |gamification |be incentivised to work on my tasks +|`* * *` |user |be able to remind myself on when I plan to work on a task |be on track to complete my tasks -|`* * *` |pro user |navigate commands using shortcuts |save more time +|`* *` |pro user |navigate commands using shortcuts |save more time |`* *` |pro user |delete several tasks at once |save more time |`* *` |pro user |mark several tasks done at once |save more time -|`* *` |user |be greeted by a cute mascot |feel happy and motivated to do work - -|`* *` |user |sort my tasks by difficulty/priority |manage my tasks - |`* *` |user |keep track of the time spent on each task |check my progress |`* *` |user |see my pet grow and gain accessories because of my productivity |am more motivated to stay productive -|`* *` |pro user |customise the rate at which I should do work |fit my workstyle better +|`* *` |pro user |customise the rate at which I should do work in the Pomodoro |fit my workstyle better |`* *` |pro user |automate when my done tasks are cleared |customise when I want my tasks to be removed |`*` |user |customise my pet with different seasons |I am more entertained +|`*` |user |be greeted by a cute mascot |feel happy and motivated to do work + + |======================================================================= [appendix] @@ -415,9 +412,6 @@ Use case ends. . A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse. . Graphics should not be offensive to any culture in any way . Product should function with CLI alone -. Product should be usable by people with no initial knowledge of Pomodoro - -_{More to be added}_ [appendix] == Glossary From ade530c9360c5a84815d3d96e117af7a74e2912e Mon Sep 17 00:00:00 2001 From: FyonnOh <> Date: Fri, 6 Mar 2020 12:56:29 +0800 Subject: [PATCH 027/606] Update UG --- docs/UserGuide.adoc | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index 855dc134751..7eafc4b68e4 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -57,14 +57,11 @@ Format: `reminder /at yyyy-mm-ddThh-mm-ss` Format: `help` -=== Adding a person: `add` +=== Adding a task: `add` Adds a task to the task list + Format: `add n/Do math homework d/pages 1-2 ld/LOCALDATE` -[TIP] -TODO: Insert a tip here. - Examples: * `add n/Do math homework d/pages 1-2 ld/2020-08-09` @@ -172,8 +169,8 @@ DONE : Displays average number of tasks done over past week/month/year. === Pet The Pet gives a sense of responsibility to the user. + -The Pet acts as a motivation to encourage the user to be productive. + -The Pet gives a sense of satisfaction to the user when it is being fed. +It acts as a motivation to encourage the user to be productive. + +The Pet also gives a sense of satisfaction to the user when it is being fed. === Saving the data @@ -198,4 +195,5 @@ e.g. `edit 2 n/Add Buy Feature ld/2020-03-04` e.g. `find Quiz Essay` * *List* : `list` * *Help* : `help` -* *Statistics* : stats SPEED/DONE +* *Statistics* : 'stats SPEED/DONE' +* *Pom* : 'pom 10' \ No newline at end of file From e9327f21312ea19cb67e68509113817e750150a4 Mon Sep 17 00:00:00 2001 From: Permas-Teo Date: Fri, 6 Mar 2020 13:38:52 +0800 Subject: [PATCH 028/606] update DeveloperGuide user stories --- docs/DeveloperGuide.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.adoc b/docs/DeveloperGuide.adoc index 477e22faa07..fb0d949d9f6 100644 --- a/docs/DeveloperGuide.adoc +++ b/docs/DeveloperGuide.adoc @@ -318,6 +318,8 @@ Priorities: High (must have) - `* * \*`, Medium (nice to have) - `* \*`, Low (un |`* * *` |user |be able to remind myself on when I plan to work on a task |be on track to complete my tasks +|`* * *` |user |get a visual cue from my pet to prompt me to do work|be motivated to work when my productivity is low + |`* *` |pro user |navigate commands using shortcuts |save more time |`* *` |pro user |delete several tasks at once |save more time @@ -332,8 +334,6 @@ Priorities: High (must have) - `* * \*`, Medium (nice to have) - `* \*`, Low (un |`* *` |pro user |automate when my done tasks are cleared |customise when I want my tasks to be removed -|`*` |user |customise my pet with different seasons |I am more entertained - |`*` |user |be greeted by a cute mascot |feel happy and motivated to do work From b3af6fd242ec85a80c68e1a27becef983f1fe87f Mon Sep 17 00:00:00 2001 From: Permas-Teo Date: Fri, 6 Mar 2020 15:31:35 +0800 Subject: [PATCH 029/606] update DeveloperGuide user stories --- docs/DeveloperGuide.adoc | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/DeveloperGuide.adoc b/docs/DeveloperGuide.adoc index fb0d949d9f6..8e933ea42d1 100644 --- a/docs/DeveloperGuide.adoc +++ b/docs/DeveloperGuide.adoc @@ -306,11 +306,9 @@ Priorities: High (must have) - `* * \*`, Medium (nice to have) - `* \*`, Low (un |`* * *` |user |add a task by specifying a task description and a reminder |record tasks that needs to be done by a specific period -|`* * *` |user |see visual enhancements to my pet for diligently completing my tasks |feel satisfied and motivated to perform - |`* * *` |user |sort upcoming tasks by date |filter out the latest/oldest tasks according to my needs -|`* * *` |user |sort my tasks by difficulty/priority |manage my tasks +|`* * *` |user |sort my tasks by priority |manage my tasks |`* * *` |user |delete a task |remove tasks that I no longer care to track @@ -320,20 +318,24 @@ Priorities: High (must have) - `* * \*`, Medium (nice to have) - `* \*`, Low (un |`* * *` |user |get a visual cue from my pet to prompt me to do work|be motivated to work when my productivity is low +|`* * *` |user |keep track of the time spent on each task |check my progress + |`* *` |pro user |navigate commands using shortcuts |save more time |`* *` |pro user |delete several tasks at once |save more time |`* *` |pro user |mark several tasks done at once |save more time -|`* *` |user |keep track of the time spent on each task |check my progress - -|`* *` |user |see my pet grow and gain accessories because of my productivity |am more motivated to stay productive - |`* *` |pro user |customise the rate at which I should do work in the Pomodoro |fit my workstyle better |`* *` |pro user |automate when my done tasks are cleared |customise when I want my tasks to be removed +|`* *` |user |view the total number of tasks/duration spent on tasks I have done over a period of time |track my productivity over different periods + +|`* *` |user |view the durations in which I have currently spent on different tasks |better allocate my time + +|`* *` |user |see my pet grow because of my productivity |am more motivated to stay productive + |`*` |user |be greeted by a cute mascot |feel happy and motivated to do work From 41c342e21094c9db81a27befe0864bbc24973d77 Mon Sep 17 00:00:00 2001 From: FyonnOh <> Date: Fri, 6 Mar 2020 15:33:36 +0800 Subject: [PATCH 030/606] Update UG 0.1 --- docs/UserGuide.adoc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index 7eafc4b68e4..36df5ab7ddd 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -161,9 +161,9 @@ Format: `exit` === Statistics : 'stats' -Views statistics generated through the app usage. -stats SPEED/DONE -SPEED : Displays average time taken to complete tasks over past week/month/year. +Views statistics generated through the app usage. +stats SPEED/DONE +SPEED : Displays average time taken to complete tasks over past week/month/year. DONE : Displays average number of tasks done over past week/month/year. === Pet @@ -195,5 +195,5 @@ e.g. `edit 2 n/Add Buy Feature ld/2020-03-04` e.g. `find Quiz Essay` * *List* : `list` * *Help* : `help` -* *Statistics* : 'stats SPEED/DONE' -* *Pom* : 'pom 10' \ No newline at end of file +* *Statistics* : `stats SPEED/DONE` +* *Pom* : `pom 10` \ No newline at end of file From 7186af1f22826e5742781b6eb432cb48269c492f Mon Sep 17 00:00:00 2001 From: FyonnOh <> Date: Fri, 6 Mar 2020 15:36:01 +0800 Subject: [PATCH 031/606] Update About us --- docs/AboutUs.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/AboutUs.adoc b/docs/AboutUs.adoc index 93dd60b52be..b2f1a942b31 100644 --- a/docs/AboutUs.adoc +++ b/docs/AboutUs.adoc @@ -11,7 +11,7 @@ We are a team based in the http://www.comp.nus.edu.sg[School of Computing, Natio == Project Team -=== Hardy Oh +=== Hardy Shein image::hardoh.png[width="150", align="left"] {empty}[https://github.com/hardoh[github]] [<>] From 6d7c51b8ec310bcaa1e9fecdd2ae064e3aeadd53 Mon Sep 17 00:00:00 2001 From: FyonnOh <> Date: Fri, 6 Mar 2020 15:39:17 +0800 Subject: [PATCH 032/606] Update UG 0.2 --- docs/UserGuide.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index 36df5ab7ddd..3abb6b91c4d 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -196,4 +196,4 @@ e.g. `find Quiz Essay` * *List* : `list` * *Help* : `help` * *Statistics* : `stats SPEED/DONE` -* *Pom* : `pom 10` \ No newline at end of file +* *Pom* : `pom 10` From 083364200e2f05a69fa49c9ecdf129b68e5c1a42 Mon Sep 17 00:00:00 2001 From: Branson Date: Fri, 6 Mar 2020 15:47:33 +0800 Subject: [PATCH 033/606] Update gradle to include googleJavaFormat --- build.gradle | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/build.gradle b/build.gradle index 93029ef8262..e9c1dca7ed5 100644 --- a/build.gradle +++ b/build.gradle @@ -11,6 +11,7 @@ plugins { id 'com.github.kt3k.coveralls' version '2.4.0' id 'com.github.johnrengelman.shadow' version '4.0.4' id 'org.asciidoctor.convert' version '1.5.6' + id 'com.github.sherter.google-java-format' version '0.8' id 'application' } @@ -37,6 +38,21 @@ jacocoTestReport { } } +googleJavaFormat { + source 'src/main' + source 'src/test' + include '**/*.java' + options style: 'AOSP' +} + +import com.github.sherter.googlejavaformatgradleplugin.GoogleJavaFormat + +task format(type: GoogleJavaFormat) { + source 'src/main' + source 'src/test' + include '**/*.java' +} + test { useJUnitPlatform() } From 393c8bac45493f4bb2c0f061cbdd0d6dda0fe5cc Mon Sep 17 00:00:00 2001 From: Branson Date: Fri, 6 Mar 2020 15:48:41 +0800 Subject: [PATCH 034/606] Format folders --- .../java/seedu/address/AppParameters.java | 15 +- src/main/java/seedu/address/Main.java | 17 +- src/main/java/seedu/address/MainApp.java | 58 +++--- .../seedu/address/commons/core/Config.java | 7 +- .../address/commons/core/GuiSettings.java | 7 +- .../address/commons/core/LogsCenter.java | 37 ++-- .../seedu/address/commons/core/Messages.java | 8 +- .../seedu/address/commons/core/Version.java | 16 +- .../address/commons/core/index/Index.java | 23 ++- .../exceptions/DataConversionException.java | 5 +- .../exceptions/IllegalValueException.java | 8 +- .../seedu/address/commons/util/AppUtil.java | 4 +- .../address/commons/util/CollectionUtil.java | 12 +- .../address/commons/util/ConfigUtil.java | 6 +- .../seedu/address/commons/util/FileUtil.java | 28 +-- .../seedu/address/commons/util/JsonUtil.java | 72 ++++---- .../address/commons/util/StringUtil.java | 36 ++-- src/main/java/seedu/address/logic/Logic.java | 18 +- .../seedu/address/logic/LogicManager.java | 5 +- .../address/logic/commands/AddCommand.java | 57 +++--- .../address/logic/commands/ClearCommand.java | 5 +- .../seedu/address/logic/commands/Command.java | 5 +- .../address/logic/commands/CommandResult.java | 13 +- .../address/logic/commands/DeleteCommand.java | 18 +- .../address/logic/commands/EditCommand.java | 83 +++++---- .../address/logic/commands/ExitCommand.java | 8 +- .../address/logic/commands/FindCommand.java | 18 +- .../address/logic/commands/HelpCommand.java | 8 +- .../address/logic/commands/ListCommand.java | 5 +- .../commands/exceptions/CommandException.java | 7 +- .../logic/parser/AddCommandParser.java | 26 +-- .../logic/parser/AddressBookParser.java | 53 +++--- .../logic/parser/ArgumentMultimap.java | 28 ++- .../logic/parser/ArgumentTokenizer.java | 93 +++++----- .../seedu/address/logic/parser/CliSyntax.java | 5 +- .../logic/parser/DeleteCommandParser.java | 10 +- .../logic/parser/EditCommandParser.java | 35 ++-- .../logic/parser/FindCommandParser.java | 11 +- .../seedu/address/logic/parser/Parser.java | 1 + .../address/logic/parser/ParserUtil.java | 34 ++-- .../seedu/address/logic/parser/Prefix.java | 4 +- .../parser/exceptions/ParseException.java | 4 +- .../java/seedu/address/model/AddressBook.java | 33 ++-- src/main/java/seedu/address/model/Model.java | 50 ++---- .../seedu/address/model/ModelManager.java | 22 ++- .../address/model/ReadOnlyAddressBook.java | 9 +- .../address/model/ReadOnlyUserPrefs.java | 6 +- .../java/seedu/address/model/UserPrefs.java | 22 +-- .../seedu/address/model/person/Address.java | 14 +- .../seedu/address/model/person/Email.java | 46 ++--- .../java/seedu/address/model/person/Name.java | 12 +- .../person/NameContainsKeywordsPredicate.java | 14 +- .../seedu/address/model/person/Person.java | 25 ++- .../seedu/address/model/person/Phone.java | 12 +- .../model/person/UniquePersonList.java | 46 ++--- .../exceptions/DuplicatePersonException.java | 4 +- .../exceptions/PersonNotFoundException.java | 4 +- .../java/seedu/address/model/tag/Tag.java | 15 +- .../address/model/util/SampleDataUtil.java | 68 ++++--- .../address/storage/AddressBookStorage.java | 27 ++- .../address/storage/JsonAdaptedPerson.java | 46 +++-- .../seedu/address/storage/JsonAdaptedTag.java | 14 +- .../storage/JsonAddressBookStorage.java | 13 +- .../storage/JsonSerializableAddressBook.java | 29 ++- .../address/storage/JsonUserPrefsStorage.java | 7 +- .../java/seedu/address/storage/Storage.java | 6 +- .../seedu/address/storage/StorageManager.java | 17 +- .../address/storage/UserPrefsStorage.java | 16 +- .../java/seedu/address/ui/CommandBox.java | 28 +-- .../java/seedu/address/ui/HelpWindow.java | 55 ++---- .../java/seedu/address/ui/MainWindow.java | 64 ++++--- .../java/seedu/address/ui/PersonCard.java | 42 ++--- .../seedu/address/ui/PersonListPanel.java | 12 +- .../java/seedu/address/ui/ResultDisplay.java | 8 +- .../seedu/address/ui/StatusBarFooter.java | 10 +- src/main/java/seedu/address/ui/Ui.java | 7 +- src/main/java/seedu/address/ui/UiManager.java | 25 ++- src/main/java/seedu/address/ui/UiPart.java | 24 +-- .../java/seedu/address/AppParametersTest.java | 4 +- .../address/commons/core/ConfigTest.java | 6 +- .../address/commons/core/VersionTest.java | 17 +- .../address/commons/util/AppUtilTest.java | 5 +- .../commons/util/CollectionUtilTest.java | 9 +- .../address/commons/util/ConfigUtilTest.java | 18 +- .../address/commons/util/FileUtilTest.java | 1 - .../address/commons/util/JsonUtilTest.java | 30 ++-- .../address/commons/util/StringUtilTest.java | 61 ++++--- .../seedu/address/logic/LogicManagerTest.java | 65 ++++--- .../commands/AddCommandIntegrationTest.java | 16 +- .../logic/commands/AddCommandTest.java | 26 ++- .../logic/commands/ClearCommandTest.java | 8 +- .../logic/commands/CommandResultTest.java | 6 +- .../logic/commands/CommandTestUtil.java | 65 ++++--- .../logic/commands/DeleteCommandTest.java | 21 +-- .../logic/commands/EditCommandTest.java | 80 ++++++--- .../commands/EditPersonDescriptorTest.java | 7 +- .../logic/commands/ExitCommandTest.java | 4 +- .../logic/commands/FindCommandTest.java | 10 +- .../logic/commands/HelpCommandTest.java | 1 - .../logic/commands/ListCommandTest.java | 5 +- .../logic/parser/AddCommandParserTest.java | 168 ++++++++++++++---- .../logic/parser/AddressBookParserTest.java | 39 ++-- .../logic/parser/ArgumentTokenizerTest.java | 19 +- .../logic/parser/CommandParserTestUtil.java | 15 +- .../logic/parser/DeleteCommandParserTest.java | 15 +- .../logic/parser/EditCommandParserTest.java | 125 +++++++++---- .../logic/parser/FindCommandParserTest.java | 8 +- .../address/logic/parser/ParserUtilTest.java | 15 +- .../seedu/address/model/AddressBookTest.java | 26 +-- .../seedu/address/model/ModelManagerTest.java | 12 +- .../seedu/address/model/UserPrefsTest.java | 1 - .../address/model/person/AddressTest.java | 4 +- .../seedu/address/model/person/EmailTest.java | 21 ++- .../NameContainsKeywordsPredicateTest.java | 31 ++-- .../address/model/person/PersonTest.java | 29 ++- .../model/person/UniquePersonListTest.java | 32 ++-- .../java/seedu/address/model/tag/TagTest.java | 1 - .../storage/JsonAdaptedPersonTest.java | 47 +++-- .../storage/JsonAddressBookStorageTest.java | 31 ++-- .../JsonSerializableAddressBookTest.java | 33 ++-- .../storage/JsonUserPrefsStorageTest.java | 29 ++- .../address/storage/StorageManagerTest.java | 9 +- .../address/testutil/AddressBookBuilder.java | 9 +- .../java/seedu/address/testutil/Assert.java | 27 +-- .../testutil/EditPersonDescriptorBuilder.java | 29 +-- .../seedu/address/testutil/PersonBuilder.java | 31 +--- .../seedu/address/testutil/PersonUtil.java | 37 ++-- .../testutil/SerializableTestClass.java | 28 +-- .../java/seedu/address/testutil/TestUtil.java | 25 +-- .../address/testutil/TypicalIndexes.java | 4 +- .../address/testutil/TypicalPersons.java | 118 ++++++++---- .../java/seedu/address/ui/TestFxmlObject.java | 5 +- .../java/seedu/address/ui/UiPartTest.java | 40 +++-- 133 files changed, 1699 insertions(+), 1594 deletions(-) diff --git a/src/main/java/seedu/address/AppParameters.java b/src/main/java/seedu/address/AppParameters.java index ab552c398f3..ee6adf33b11 100644 --- a/src/main/java/seedu/address/AppParameters.java +++ b/src/main/java/seedu/address/AppParameters.java @@ -5,14 +5,11 @@ import java.util.Map; import java.util.Objects; import java.util.logging.Logger; - import javafx.application.Application; import seedu.address.commons.core.LogsCenter; import seedu.address.commons.util.FileUtil; -/** - * Represents the parsed command-line parameters given to the application. - */ +/** Represents the parsed command-line parameters given to the application. */ public class AppParameters { private static final Logger logger = LogsCenter.getLogger(AppParameters.class); @@ -26,19 +23,19 @@ public void setConfigPath(Path configPath) { this.configPath = configPath; } - /** - * Parses the application command-line parameters. - */ + /** Parses the application command-line parameters. */ public static AppParameters parse(Application.Parameters parameters) { AppParameters appParameters = new AppParameters(); Map namedParameters = parameters.getNamed(); String configPathParameter = namedParameters.get("config"); if (configPathParameter != null && !FileUtil.isValidPath(configPathParameter)) { - logger.warning("Invalid config path " + configPathParameter + ". Using default config path."); + logger.warning( + "Invalid config path " + configPathParameter + ". Using default config path."); configPathParameter = null; } - appParameters.setConfigPath(configPathParameter != null ? Paths.get(configPathParameter) : null); + appParameters.setConfigPath( + configPathParameter != null ? Paths.get(configPathParameter) : null); return appParameters; } diff --git a/src/main/java/seedu/address/Main.java b/src/main/java/seedu/address/Main.java index 052a5068631..63c67d93e56 100644 --- a/src/main/java/seedu/address/Main.java +++ b/src/main/java/seedu/address/Main.java @@ -5,18 +5,17 @@ /** * The main entry point to the application. * - * This is a workaround for the following error when MainApp is made the - * entry point of the application: + *

    This is a workaround for the following error when MainApp is made the entry point of the + * application: * - * Error: JavaFX runtime components are missing, and are required to run this application + *

    Error: JavaFX runtime components are missing, and are required to run this application * - * The reason is that MainApp extends Application. In that case, the - * LauncherHelper will check for the javafx.graphics module to be present - * as a named module. We don't use JavaFX via the module system so it can't - * find the javafx.graphics module, and so the launch is aborted. + *

    The reason is that MainApp extends Application. In that case, the LauncherHelper will check + * for the javafx.graphics module to be present as a named module. We don't use JavaFX via the + * module system so it can't find the javafx.graphics module, and so the launch is aborted. * - * By having a separate main class (Main) that doesn't extend Application - * to be the entry point of the application, we avoid this issue. + *

    By having a separate main class (Main) that doesn't extend Application to be the entry point + * of the application, we avoid this issue. */ public class Main { public static void main(String[] args) { diff --git a/src/main/java/seedu/address/MainApp.java b/src/main/java/seedu/address/MainApp.java index e5cfb161b73..675cd12eb5a 100644 --- a/src/main/java/seedu/address/MainApp.java +++ b/src/main/java/seedu/address/MainApp.java @@ -4,7 +4,6 @@ import java.nio.file.Path; import java.util.Optional; import java.util.logging.Logger; - import javafx.application.Application; import javafx.stage.Stage; import seedu.address.commons.core.Config; @@ -31,9 +30,7 @@ import seedu.address.ui.Ui; import seedu.address.ui.UiManager; -/** - * Runs the application. - */ +/** Runs the application. */ public class MainApp extends Application { public static final Version VERSION = new Version(0, 6, 0, true); @@ -48,7 +45,8 @@ public class MainApp extends Application { @Override public void init() throws Exception { - logger.info("=============================[ Initializing AddressBook ]==========================="); + logger.info( + "=============================[ Initializing AddressBook ]==========================="); super.init(); AppParameters appParameters = AppParameters.parse(getParameters()); @@ -56,7 +54,8 @@ public void init() throws Exception { UserPrefsStorage userPrefsStorage = new JsonUserPrefsStorage(config.getUserPrefsFilePath()); UserPrefs userPrefs = initPrefs(userPrefsStorage); - AddressBookStorage addressBookStorage = new JsonAddressBookStorage(userPrefs.getAddressBookFilePath()); + AddressBookStorage addressBookStorage = + new JsonAddressBookStorage(userPrefs.getAddressBookFilePath()); storage = new StorageManager(addressBookStorage, userPrefsStorage); initLogging(config); @@ -69,9 +68,11 @@ public void init() throws Exception { } /** - * Returns a {@code ModelManager} with the data from {@code storage}'s address book and {@code userPrefs}.
    - * The data from the sample address book will be used instead if {@code storage}'s address book is not found, - * or an empty address book will be used instead if errors occur when reading {@code storage}'s address book. + * Returns a {@code ModelManager} with the data from {@code storage}'s address book and {@code + * userPrefs}.
    + * The data from the sample address book will be used instead if {@code storage}'s address book + * is not found, or an empty address book will be used instead if errors occur when reading + * {@code storage}'s address book. */ private Model initModelManager(Storage storage, ReadOnlyUserPrefs userPrefs) { Optional addressBookOptional; @@ -83,10 +84,12 @@ private Model initModelManager(Storage storage, ReadOnlyUserPrefs userPrefs) { } initialData = addressBookOptional.orElseGet(SampleDataUtil::getSampleAddressBook); } catch (DataConversionException e) { - logger.warning("Data file not in the correct format. Will be starting with an empty AddressBook"); + logger.warning( + "Data file not in the correct format. Will be starting with an empty AddressBook"); initialData = new AddressBook(); } catch (IOException e) { - logger.warning("Problem while reading from the file. Will be starting with an empty AddressBook"); + logger.warning( + "Problem while reading from the file. Will be starting with an empty AddressBook"); initialData = new AddressBook(); } @@ -99,8 +102,8 @@ private void initLogging(Config config) { /** * Returns a {@code Config} using the file at {@code configFilePath}.
    - * The default file path {@code Config#DEFAULT_CONFIG_FILE} will be used instead - * if {@code configFilePath} is null. + * The default file path {@code Config#DEFAULT_CONFIG_FILE} will be used instead if {@code + * configFilePath} is null. */ protected Config initConfig(Path configFilePath) { Config initializedConfig; @@ -119,12 +122,15 @@ protected Config initConfig(Path configFilePath) { Optional configOptional = ConfigUtil.readConfig(configFilePathUsed); initializedConfig = configOptional.orElse(new Config()); } catch (DataConversionException e) { - logger.warning("Config file at " + configFilePathUsed + " is not in the correct format. " - + "Using default config properties"); + logger.warning( + "Config file at " + + configFilePathUsed + + " is not in the correct format. " + + "Using default config properties"); initializedConfig = new Config(); } - //Update config file in case it was missing to begin with or there are new/unused fields + // Update config file in case it was missing to begin with or there are new/unused fields try { ConfigUtil.saveConfig(initializedConfig, configFilePathUsed); } catch (IOException e) { @@ -134,9 +140,8 @@ protected Config initConfig(Path configFilePath) { } /** - * Returns a {@code UserPrefs} using the file at {@code storage}'s user prefs file path, - * or a new {@code UserPrefs} with default configuration if errors occur when - * reading from the file. + * Returns a {@code UserPrefs} using the file at {@code storage}'s user prefs file path, or a + * new {@code UserPrefs} with default configuration if errors occur when reading from the file. */ protected UserPrefs initPrefs(UserPrefsStorage storage) { Path prefsFilePath = storage.getUserPrefsFilePath(); @@ -147,15 +152,19 @@ protected UserPrefs initPrefs(UserPrefsStorage storage) { Optional prefsOptional = storage.readUserPrefs(); initializedPrefs = prefsOptional.orElse(new UserPrefs()); } catch (DataConversionException e) { - logger.warning("UserPrefs file at " + prefsFilePath + " is not in the correct format. " - + "Using default user prefs"); + logger.warning( + "UserPrefs file at " + + prefsFilePath + + " is not in the correct format. " + + "Using default user prefs"); initializedPrefs = new UserPrefs(); } catch (IOException e) { - logger.warning("Problem while reading from the file. Will be starting with an empty AddressBook"); + logger.warning( + "Problem while reading from the file. Will be starting with an empty AddressBook"); initializedPrefs = new UserPrefs(); } - //Update prefs file in case it was missing to begin with or there are new/unused fields + // Update prefs file in case it was missing to begin with or there are new/unused fields try { storage.saveUserPrefs(initializedPrefs); } catch (IOException e) { @@ -173,7 +182,8 @@ public void start(Stage primaryStage) { @Override public void stop() { - logger.info("============================ [ Stopping Address Book ] ============================="); + logger.info( + "============================ [ Stopping Address Book ] ============================="); try { storage.saveUserPrefs(model.getUserPrefs()); } catch (IOException e) { diff --git a/src/main/java/seedu/address/commons/core/Config.java b/src/main/java/seedu/address/commons/core/Config.java index 91145745521..87ad6bfad50 100644 --- a/src/main/java/seedu/address/commons/core/Config.java +++ b/src/main/java/seedu/address/commons/core/Config.java @@ -5,9 +5,7 @@ import java.util.Objects; import java.util.logging.Level; -/** - * Config values used by the app - */ +/** Config values used by the app */ public class Config { public static final Path DEFAULT_CONFIG_FILE = Paths.get("config.json"); @@ -37,7 +35,7 @@ public boolean equals(Object other) { if (other == this) { return true; } - if (!(other instanceof Config)) { //this handles null as well. + if (!(other instanceof Config)) { // this handles null as well. return false; } @@ -59,5 +57,4 @@ public String toString() { sb.append("\nPreference file Location : " + userPrefsFilePath); return sb.toString(); } - } diff --git a/src/main/java/seedu/address/commons/core/GuiSettings.java b/src/main/java/seedu/address/commons/core/GuiSettings.java index 5ace559ad15..63b2bf8acab 100644 --- a/src/main/java/seedu/address/commons/core/GuiSettings.java +++ b/src/main/java/seedu/address/commons/core/GuiSettings.java @@ -4,10 +4,7 @@ import java.io.Serializable; import java.util.Objects; -/** - * A Serializable class that contains the GUI settings. - * Guarantees: immutable. - */ +/** A Serializable class that contains the GUI settings. Guarantees: immutable. */ public class GuiSettings implements Serializable { private static final double DEFAULT_HEIGHT = 600; @@ -46,7 +43,7 @@ public boolean equals(Object other) { if (other == this) { return true; } - if (!(other instanceof GuiSettings)) { //this handles null as well. + if (!(other instanceof GuiSettings)) { // this handles null as well. return false; } diff --git a/src/main/java/seedu/address/commons/core/LogsCenter.java b/src/main/java/seedu/address/commons/core/LogsCenter.java index 431e7185e76..6da2a0a195f 100644 --- a/src/main/java/seedu/address/commons/core/LogsCenter.java +++ b/src/main/java/seedu/address/commons/core/LogsCenter.java @@ -9,11 +9,11 @@ import java.util.logging.SimpleFormatter; /** - * Configures and manages loggers and handlers, including their logging level - * Named {@link Logger}s can be obtained from this class
    - * These loggers have been configured to output messages to the console and a {@code .log} file by default, - * at the {@code INFO} level. A new {@code .log} file with a new numbering will be created after the log - * file reaches 5MB big, up to a maximum of 5 files.
    + * Configures and manages loggers and handlers, including their logging level Named {@link Logger}s + * can be obtained from this class
    + * These loggers have been configured to output messages to the console and a {@code .log} file by + * default, at the {@code INFO} level. A new {@code .log} file with a new numbering will be created + * after the log file reaches 5MB big, up to a maximum of 5 files.
    */ public class LogsCenter { private static final int MAX_FILE_COUNT = 5; @@ -25,19 +25,17 @@ public class LogsCenter { private static ConsoleHandler consoleHandler; /** - * Initializes with a custom log level (specified in the {@code config} object) - * Loggers obtained *AFTER* this initialization will have their logging level changed
    - * Logging levels for existing loggers will only be updated if the logger with the same name - * is requested again from the LogsCenter. + * Initializes with a custom log level (specified in the {@code config} object) Loggers obtained + * *AFTER* this initialization will have their logging level changed
    + * Logging levels for existing loggers will only be updated if the logger with the same name is + * requested again from the LogsCenter. */ public static void init(Config config) { currentLogLevel = config.getLogLevel(); logger.info("currentLogLevel: " + currentLogLevel); } - /** - * Creates a logger with the given name. - */ + /** Creates a logger with the given name. */ public static Logger getLogger(String name) { Logger logger = Logger.getLogger(name); logger.setUseParentHandlers(false); @@ -49,9 +47,7 @@ public static Logger getLogger(String name) { return Logger.getLogger(name); } - /** - * Creates a Logger for the given class name. - */ + /** Creates a Logger for the given class name. */ public static Logger getLogger(Class clazz) { if (clazz == null) { return Logger.getLogger(""); @@ -70,12 +66,9 @@ private static void addConsoleHandler(Logger logger) { logger.addHandler(consoleHandler); } - /** - * Remove all the handlers from {@code logger}. - */ + /** Remove all the handlers from {@code logger}. */ private static void removeHandlers(Logger logger) { - Arrays.stream(logger.getHandlers()) - .forEach(logger::removeHandler); + Arrays.stream(logger.getHandlers()).forEach(logger::removeHandler); } /** @@ -95,10 +88,12 @@ private static void addFileHandler(Logger logger) { /** * Creates a {@code FileHandler} for the log file. + * * @throws IOException if there are problems opening the file. */ private static FileHandler createFileHandler() throws IOException { - FileHandler fileHandler = new FileHandler(LOG_FILE, MAX_FILE_SIZE_IN_BYTES, MAX_FILE_COUNT, true); + FileHandler fileHandler = + new FileHandler(LOG_FILE, MAX_FILE_SIZE_IN_BYTES, MAX_FILE_COUNT, true); fileHandler.setFormatter(new SimpleFormatter()); fileHandler.setLevel(currentLogLevel); return fileHandler; diff --git a/src/main/java/seedu/address/commons/core/Messages.java b/src/main/java/seedu/address/commons/core/Messages.java index 1deb3a1e469..8c3a4ce31fc 100644 --- a/src/main/java/seedu/address/commons/core/Messages.java +++ b/src/main/java/seedu/address/commons/core/Messages.java @@ -1,13 +1,11 @@ package seedu.address.commons.core; -/** - * Container for user visible messages. - */ +/** Container for user visible messages. */ public class Messages { public static final String MESSAGE_UNKNOWN_COMMAND = "Unknown command"; public static final String MESSAGE_INVALID_COMMAND_FORMAT = "Invalid command format! \n%1$s"; - public static final String MESSAGE_INVALID_PERSON_DISPLAYED_INDEX = "The person index provided is invalid"; + public static final String MESSAGE_INVALID_PERSON_DISPLAYED_INDEX = + "The person index provided is invalid"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; - } diff --git a/src/main/java/seedu/address/commons/core/Version.java b/src/main/java/seedu/address/commons/core/Version.java index e117f91b3b2..4a316d02714 100644 --- a/src/main/java/seedu/address/commons/core/Version.java +++ b/src/main/java/seedu/address/commons/core/Version.java @@ -1,14 +1,11 @@ package seedu.address.commons.core; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; +import java.util.regex.Matcher; +import java.util.regex.Pattern; -/** - * Represents a version with major, minor and patch number - */ +/** Represents a version with major, minor and patch number */ public class Version implements Comparable { public static final String VERSION_REGEX = "V(\\d+)\\.(\\d+)\\.(\\d+)(ea)?"; @@ -47,6 +44,7 @@ public boolean isEarlyAccess() { /** * Parses a version number string in the format V1.2.3. + * * @param versionString version number string * @return a Version object */ @@ -55,10 +53,12 @@ public static Version fromString(String versionString) throws IllegalArgumentExc Matcher versionMatcher = VERSION_PATTERN.matcher(versionString); if (!versionMatcher.find()) { - throw new IllegalArgumentException(String.format(EXCEPTION_STRING_NOT_VERSION, versionString)); + throw new IllegalArgumentException( + String.format(EXCEPTION_STRING_NOT_VERSION, versionString)); } - return new Version(Integer.parseInt(versionMatcher.group(1)), + return new Version( + Integer.parseInt(versionMatcher.group(1)), Integer.parseInt(versionMatcher.group(2)), Integer.parseInt(versionMatcher.group(3)), versionMatcher.group(4) == null ? false : true); diff --git a/src/main/java/seedu/address/commons/core/index/Index.java b/src/main/java/seedu/address/commons/core/index/Index.java index 19536439c09..bf774f0814c 100644 --- a/src/main/java/seedu/address/commons/core/index/Index.java +++ b/src/main/java/seedu/address/commons/core/index/Index.java @@ -3,17 +3,18 @@ /** * Represents a zero-based or one-based index. * - * {@code Index} should be used right from the start (when parsing in a new user input), so that if the current - * component wants to communicate with another component, it can send an {@code Index} to avoid having to know what - * base the other component is using for its index. However, after receiving the {@code Index}, that component can - * convert it back to an int if the index will not be passed to a different component again. + *

    {@code Index} should be used right from the start (when parsing in a new user input), so that + * if the current component wants to communicate with another component, it can send an {@code + * Index} to avoid having to know what base the other component is using for its index. However, + * after receiving the {@code Index}, that component can convert it back to an int if the index will + * not be passed to a different component again. */ public class Index { private int zeroBasedIndex; /** - * Index can only be created by calling {@link Index#fromZeroBased(int)} or - * {@link Index#fromOneBased(int)}. + * Index can only be created by calling {@link Index#fromZeroBased(int)} or {@link + * Index#fromOneBased(int)}. */ private Index(int zeroBasedIndex) { if (zeroBasedIndex < 0) { @@ -31,16 +32,12 @@ public int getOneBased() { return zeroBasedIndex + 1; } - /** - * Creates a new {@code Index} using a zero-based index. - */ + /** Creates a new {@code Index} using a zero-based index. */ public static Index fromZeroBased(int zeroBasedIndex) { return new Index(zeroBasedIndex); } - /** - * Creates a new {@code Index} using a one-based index. - */ + /** Creates a new {@code Index} using a one-based index. */ public static Index fromOneBased(int oneBasedIndex) { return new Index(oneBasedIndex - 1); } @@ -49,6 +46,6 @@ public static Index fromOneBased(int oneBasedIndex) { public boolean equals(Object other) { return other == this // short circuit if same object || (other instanceof Index // instanceof handles nulls - && zeroBasedIndex == ((Index) other).zeroBasedIndex); // state check + && zeroBasedIndex == ((Index) other).zeroBasedIndex); // state check } } diff --git a/src/main/java/seedu/address/commons/exceptions/DataConversionException.java b/src/main/java/seedu/address/commons/exceptions/DataConversionException.java index 1f689bd8e3f..8709d9dd913 100644 --- a/src/main/java/seedu/address/commons/exceptions/DataConversionException.java +++ b/src/main/java/seedu/address/commons/exceptions/DataConversionException.java @@ -1,11 +1,8 @@ package seedu.address.commons.exceptions; -/** - * Represents an error during conversion of data from one format to another - */ +/** Represents an error during conversion of data from one format to another */ public class DataConversionException extends Exception { public DataConversionException(Exception cause) { super(cause); } - } diff --git a/src/main/java/seedu/address/commons/exceptions/IllegalValueException.java b/src/main/java/seedu/address/commons/exceptions/IllegalValueException.java index 19124db485c..e0c2547312e 100644 --- a/src/main/java/seedu/address/commons/exceptions/IllegalValueException.java +++ b/src/main/java/seedu/address/commons/exceptions/IllegalValueException.java @@ -1,12 +1,8 @@ package seedu.address.commons.exceptions; -/** - * Signals that some given data does not fulfill some constraints. - */ +/** Signals that some given data does not fulfill some constraints. */ public class IllegalValueException extends Exception { - /** - * @param message should contain relevant information on the failed constraint(s) - */ + /** @param message should contain relevant information on the failed constraint(s) */ public IllegalValueException(String message) { super(message); } diff --git a/src/main/java/seedu/address/commons/util/AppUtil.java b/src/main/java/seedu/address/commons/util/AppUtil.java index da90201dfd6..ae7f962b9ca 100644 --- a/src/main/java/seedu/address/commons/util/AppUtil.java +++ b/src/main/java/seedu/address/commons/util/AppUtil.java @@ -5,9 +5,7 @@ import javafx.scene.image.Image; import seedu.address.MainApp; -/** - * A container for App specific utility functions - */ +/** A container for App specific utility functions */ public class AppUtil { public static Image getImage(String imagePath) { diff --git a/src/main/java/seedu/address/commons/util/CollectionUtil.java b/src/main/java/seedu/address/commons/util/CollectionUtil.java index eafe4dfd681..68b0f32b4f7 100644 --- a/src/main/java/seedu/address/commons/util/CollectionUtil.java +++ b/src/main/java/seedu/address/commons/util/CollectionUtil.java @@ -7,9 +7,7 @@ import java.util.Objects; import java.util.stream.Stream; -/** - * Utility methods related to Collections - */ +/** Utility methods related to Collections */ public class CollectionUtil { /** @see #requireAllNonNull(Collection) */ @@ -18,17 +16,13 @@ public static void requireAllNonNull(Object... items) { Stream.of(items).forEach(Objects::requireNonNull); } - /** - * Throws NullPointerException if {@code items} or any element of {@code items} is null. - */ + /** Throws NullPointerException if {@code items} or any element of {@code items} is null. */ public static void requireAllNonNull(Collection items) { requireNonNull(items); items.forEach(Objects::requireNonNull); } - /** - * Returns true if {@code items} contain any elements that are non-null. - */ + /** Returns true if {@code items} contain any elements that are non-null. */ public static boolean isAnyNonNull(Object... items) { return items != null && Arrays.stream(items).anyMatch(Objects::nonNull); } diff --git a/src/main/java/seedu/address/commons/util/ConfigUtil.java b/src/main/java/seedu/address/commons/util/ConfigUtil.java index f7f8a2bd44c..fb66fc0ab5d 100644 --- a/src/main/java/seedu/address/commons/util/ConfigUtil.java +++ b/src/main/java/seedu/address/commons/util/ConfigUtil.java @@ -3,13 +3,10 @@ import java.io.IOException; import java.nio.file.Path; import java.util.Optional; - import seedu.address.commons.core.Config; import seedu.address.commons.exceptions.DataConversionException; -/** - * A class for accessing the Config File. - */ +/** A class for accessing the Config File. */ public class ConfigUtil { public static Optional readConfig(Path configFilePath) throws DataConversionException { @@ -19,5 +16,4 @@ public static Optional readConfig(Path configFilePath) throws DataConver public static void saveConfig(Config config, Path configFilePath) throws IOException { JsonUtil.saveJsonFile(config, configFilePath); } - } diff --git a/src/main/java/seedu/address/commons/util/FileUtil.java b/src/main/java/seedu/address/commons/util/FileUtil.java index b1e2767cdd9..dfad13a6e31 100644 --- a/src/main/java/seedu/address/commons/util/FileUtil.java +++ b/src/main/java/seedu/address/commons/util/FileUtil.java @@ -6,9 +6,7 @@ import java.nio.file.Path; import java.nio.file.Paths; -/** - * Writes and reads files - */ +/** Writes and reads files */ public class FileUtil { private static final String CHARSET = "UTF-8"; @@ -18,8 +16,9 @@ public static boolean isFileExists(Path file) { } /** - * Returns true if {@code path} can be converted into a {@code Path} via {@link Paths#get(String)}, - * otherwise returns false. + * Returns true if {@code path} can be converted into a {@code Path} via {@link + * Paths#get(String)}, otherwise returns false. + * * @param path A string representing the file path. Cannot be null. */ public static boolean isValidPath(String path) { @@ -33,6 +32,7 @@ public static boolean isValidPath(String path) { /** * Creates a file if it does not exist along with its missing parent directories. + * * @throws IOException if the file or directory cannot be created. */ public static void createIfMissing(Path file) throws IOException { @@ -41,9 +41,7 @@ public static void createIfMissing(Path file) throws IOException { } } - /** - * Creates a file if it does not exist along with its missing parent directories. - */ + /** Creates a file if it does not exist along with its missing parent directories. */ public static void createFile(Path file) throws IOException { if (Files.exists(file)) { return; @@ -54,9 +52,7 @@ public static void createFile(Path file) throws IOException { Files.createFile(file); } - /** - * Creates parent directories of file if it has a parent directory - */ + /** Creates parent directories of file if it has a parent directory */ public static void createParentDirsOfFile(Path file) throws IOException { Path parentDir = file.getParent(); @@ -65,19 +61,13 @@ public static void createParentDirsOfFile(Path file) throws IOException { } } - /** - * Assumes file exists - */ + /** Assumes file exists */ public static String readFromFile(Path file) throws IOException { return new String(Files.readAllBytes(file), CHARSET); } - /** - * Writes given string to a file. - * Will create the file if it does not exist yet. - */ + /** Writes given string to a file. Will create the file if it does not exist yet. */ public static void writeToFile(Path file, String content) throws IOException { Files.write(file, content.getBytes(CHARSET)); } - } diff --git a/src/main/java/seedu/address/commons/util/JsonUtil.java b/src/main/java/seedu/address/commons/util/JsonUtil.java index 8ef609f055d..d7fe6c6eaa4 100644 --- a/src/main/java/seedu/address/commons/util/JsonUtil.java +++ b/src/main/java/seedu/address/commons/util/JsonUtil.java @@ -2,13 +2,6 @@ import static java.util.Objects.requireNonNull; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.Optional; -import java.util.logging.Level; -import java.util.logging.Logger; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.core.JsonProcessingException; @@ -19,27 +12,35 @@ import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; - +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Optional; +import java.util.logging.Level; +import java.util.logging.Logger; import seedu.address.commons.core.LogsCenter; import seedu.address.commons.exceptions.DataConversionException; -/** - * Converts a Java object instance to JSON and vice versa - */ +/** Converts a Java object instance to JSON and vice versa */ public class JsonUtil { private static final Logger logger = LogsCenter.getLogger(JsonUtil.class); - private static ObjectMapper objectMapper = new ObjectMapper().findAndRegisterModules() - .configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false) - .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) - .setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE) - .setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY) - .registerModule(new SimpleModule("SimpleModule") - .addSerializer(Level.class, new ToStringSerializer()) - .addDeserializer(Level.class, new LevelDeserializer(Level.class))); - - static void serializeObjectToJsonFile(Path jsonFile, T objectToSerialize) throws IOException { + private static ObjectMapper objectMapper = + new ObjectMapper() + .findAndRegisterModules() + .configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false) + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) + .setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE) + .setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY) + .registerModule( + new SimpleModule("SimpleModule") + .addSerializer(Level.class, new ToStringSerializer()) + .addDeserializer( + Level.class, new LevelDeserializer(Level.class))); + + static void serializeObjectToJsonFile(Path jsonFile, T objectToSerialize) + throws IOException { FileUtil.writeToFile(jsonFile, toJsonString(objectToSerialize)); } @@ -49,14 +50,17 @@ static T deserializeObjectFromJsonFile(Path jsonFile, Class classOfObject } /** - * Returns the Json object from the given file or {@code Optional.empty()} object if the file is not found. - * If any values are missing from the file, default values will be used, as long as the file is a valid json file. + * Returns the Json object from the given file or {@code Optional.empty()} object if the file is + * not found. If any values are missing from the file, default values will be used, as long as + * the file is a valid json file. + * * @param filePath cannot be null. - * @param classOfObjectToDeserialize Json file has to correspond to the structure in the class given here. + * @param classOfObjectToDeserialize Json file has to correspond to the structure in the class + * given here. * @throws DataConversionException if the file format is not as expected. */ - public static Optional readJsonFile( - Path filePath, Class classOfObjectToDeserialize) throws DataConversionException { + public static Optional readJsonFile(Path filePath, Class classOfObjectToDeserialize) + throws DataConversionException { requireNonNull(filePath); if (!Files.exists(filePath)) { @@ -77,8 +81,9 @@ public static Optional readJsonFile( } /** - * Saves the Json object to the specified file. - * Overwrites existing file if it exists, creates a new file if it doesn't. + * Saves the Json object to the specified file. Overwrites existing file if it exists, creates a + * new file if it doesn't. + * * @param jsonFile cannot be null * @param filePath cannot be null * @throws IOException if there was an error during writing to the file @@ -90,9 +95,9 @@ public static void saveJsonFile(T jsonFile, Path filePath) throws IOExceptio serializeObjectToJsonFile(filePath, jsonFile); } - /** * Converts a given string representation of a JSON data to instance of a class + * * @param The generic type to create an instance of * @return The instance of T with the specified values in the JSON string */ @@ -102,6 +107,7 @@ public static T fromJsonString(String json, Class instanceClass) throws I /** * Converts a given instance of a class into its JSON data string representation + * * @param instance The T object to be converted into the JSON string * @param The generic type to create an instance of * @return JSON data representation of the given class instance, in string @@ -110,9 +116,7 @@ public static String toJsonString(T instance) throws JsonProcessingException return objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(instance); } - /** - * Contains methods that retrieve logging level from serialized string. - */ + /** Contains methods that retrieve logging level from serialized string. */ private static class LevelDeserializer extends FromStringDeserializer { protected LevelDeserializer(Class vc) { @@ -126,9 +130,8 @@ protected Level _deserialize(String value, DeserializationContext ctxt) { /** * Gets the logging level that matches loggingLevelString - *

    - * Returns null if there are no matches * + *

    Returns null if there are no matches */ private Level getLoggingLevel(String loggingLevelString) { return Level.parse(loggingLevelString); @@ -139,5 +142,4 @@ public Class handledType() { return Level.class; } } - } diff --git a/src/main/java/seedu/address/commons/util/StringUtil.java b/src/main/java/seedu/address/commons/util/StringUtil.java index 61cc8c9a1cb..1e16fde711e 100644 --- a/src/main/java/seedu/address/commons/util/StringUtil.java +++ b/src/main/java/seedu/address/commons/util/StringUtil.java @@ -7,19 +7,20 @@ import java.io.StringWriter; import java.util.Arrays; -/** - * Helper functions for handling strings. - */ +/** Helper functions for handling strings. */ public class StringUtil { /** - * Returns true if the {@code sentence} contains the {@code word}. - * Ignores case, but a full word match is required. - *
    examples:

    +     * Returns true if the {@code sentence} contains the {@code word}. Ignores case, but a full word
    +     * match is required. 
    + * examples: + * + *
          *       containsWordIgnoreCase("ABc def", "abc") == true
          *       containsWordIgnoreCase("ABc def", "DEF") == true
          *       containsWordIgnoreCase("ABc def", "AB") == false //not a full word match
          *       
    + * * @param sentence cannot be null * @param word cannot be null, cannot be empty, must be a single word */ @@ -29,18 +30,16 @@ public static boolean containsWordIgnoreCase(String sentence, String word) { String preppedWord = word.trim(); checkArgument(!preppedWord.isEmpty(), "Word parameter cannot be empty"); - checkArgument(preppedWord.split("\\s+").length == 1, "Word parameter should be a single word"); + checkArgument( + preppedWord.split("\\s+").length == 1, "Word parameter should be a single word"); String preppedSentence = sentence; String[] wordsInPreppedSentence = preppedSentence.split("\\s+"); - return Arrays.stream(wordsInPreppedSentence) - .anyMatch(preppedWord::equalsIgnoreCase); + return Arrays.stream(wordsInPreppedSentence).anyMatch(preppedWord::equalsIgnoreCase); } - /** - * Returns a detailed message of the t, including the stack trace. - */ + /** Returns a detailed message of the t, including the stack trace. */ public static String getDetails(Throwable t) { requireNonNull(t); StringWriter sw = new StringWriter(); @@ -49,10 +48,11 @@ public static String getDetails(Throwable t) { } /** - * Returns true if {@code s} represents a non-zero unsigned integer - * e.g. 1, 2, 3, ..., {@code Integer.MAX_VALUE}
    - * Will return false for any other non-null string input - * e.g. empty string, "-1", "0", "+1", and " 2 " (untrimmed), "3 0" (contains whitespace), "1 a" (contains letters) + * Returns true if {@code s} represents a non-zero unsigned integer e.g. 1, 2, 3, ..., {@code + * Integer.MAX_VALUE}
    + * Will return false for any other non-null string input e.g. empty string, "-1", "0", "+1", and + * " 2 " (untrimmed), "3 0" (contains whitespace), "1 a" (contains letters) + * * @throws NullPointerException if {@code s} is null. */ public static boolean isNonZeroUnsignedInteger(String s) { @@ -60,7 +60,9 @@ public static boolean isNonZeroUnsignedInteger(String s) { try { int value = Integer.parseInt(s); - return value > 0 && !s.startsWith("+"); // "+1" is successfully parsed by Integer#parseInt(String) + return value > 0 + && !s.startsWith( + "+"); // "+1" is successfully parsed by Integer#parseInt(String) } catch (NumberFormatException nfe) { return false; } diff --git a/src/main/java/seedu/address/logic/Logic.java b/src/main/java/seedu/address/logic/Logic.java index 92cd8fa605a..e33c5abba13 100644 --- a/src/main/java/seedu/address/logic/Logic.java +++ b/src/main/java/seedu/address/logic/Logic.java @@ -1,7 +1,6 @@ package seedu.address.logic; import java.nio.file.Path; - import javafx.collections.ObservableList; import seedu.address.commons.core.GuiSettings; import seedu.address.logic.commands.CommandResult; @@ -10,12 +9,11 @@ import seedu.address.model.ReadOnlyAddressBook; import seedu.address.model.person.Person; -/** - * API of the Logic component - */ +/** API of the Logic component */ public interface Logic { /** * Executes the command and returns the result. + * * @param commandText The command as entered by the user. * @return the result of the command execution. * @throws CommandException If an error occurs during command execution. @@ -33,18 +31,12 @@ public interface Logic { /** Returns an unmodifiable view of the filtered list of persons */ ObservableList getFilteredPersonList(); - /** - * Returns the user prefs' address book file path. - */ + /** Returns the user prefs' address book file path. */ Path getAddressBookFilePath(); - /** - * Returns the user prefs' GUI settings. - */ + /** Returns the user prefs' GUI settings. */ GuiSettings getGuiSettings(); - /** - * Set the user prefs' GUI settings. - */ + /** Set the user prefs' GUI settings. */ void setGuiSettings(GuiSettings guiSettings); } diff --git a/src/main/java/seedu/address/logic/LogicManager.java b/src/main/java/seedu/address/logic/LogicManager.java index d47ce874b1a..b6b1b525a33 100644 --- a/src/main/java/seedu/address/logic/LogicManager.java +++ b/src/main/java/seedu/address/logic/LogicManager.java @@ -3,7 +3,6 @@ import java.io.IOException; import java.nio.file.Path; import java.util.logging.Logger; - import javafx.collections.ObservableList; import seedu.address.commons.core.GuiSettings; import seedu.address.commons.core.LogsCenter; @@ -17,9 +16,7 @@ import seedu.address.model.person.Person; import seedu.address.storage.Storage; -/** - * The main LogicManager of the app. - */ +/** The main LogicManager of the app. */ public class LogicManager implements Logic { public static final String FILE_OPS_ERROR_MESSAGE = "Could not save data to file: "; private final Logger logger = LogsCenter.getLogger(LogicManager.class); diff --git a/src/main/java/seedu/address/logic/commands/AddCommand.java b/src/main/java/seedu/address/logic/commands/AddCommand.java index 71656d7c5c8..22f807da3cd 100644 --- a/src/main/java/seedu/address/logic/commands/AddCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddCommand.java @@ -11,36 +11,49 @@ import seedu.address.model.Model; import seedu.address.model.person.Person; -/** - * Adds a person to the address book. - */ +/** Adds a person to the address book. */ public class AddCommand extends Command { public static final String COMMAND_WORD = "add"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds a person to the address book. " - + "Parameters: " - + PREFIX_NAME + "NAME " - + PREFIX_PHONE + "PHONE " - + PREFIX_EMAIL + "EMAIL " - + PREFIX_ADDRESS + "ADDRESS " - + "[" + PREFIX_TAG + "TAG]...\n" - + "Example: " + COMMAND_WORD + " " - + PREFIX_NAME + "John Doe " - + PREFIX_PHONE + "98765432 " - + PREFIX_EMAIL + "johnd@example.com " - + PREFIX_ADDRESS + "311, Clementi Ave 2, #02-25 " - + PREFIX_TAG + "friends " - + PREFIX_TAG + "owesMoney"; + public static final String MESSAGE_USAGE = + COMMAND_WORD + + ": Adds a person to the address book. " + + "Parameters: " + + PREFIX_NAME + + "NAME " + + PREFIX_PHONE + + "PHONE " + + PREFIX_EMAIL + + "EMAIL " + + PREFIX_ADDRESS + + "ADDRESS " + + "[" + + PREFIX_TAG + + "TAG]...\n" + + "Example: " + + COMMAND_WORD + + " " + + PREFIX_NAME + + "John Doe " + + PREFIX_PHONE + + "98765432 " + + PREFIX_EMAIL + + "johnd@example.com " + + PREFIX_ADDRESS + + "311, Clementi Ave 2, #02-25 " + + PREFIX_TAG + + "friends " + + PREFIX_TAG + + "owesMoney"; public static final String MESSAGE_SUCCESS = "New person added: %1$s"; - public static final String MESSAGE_DUPLICATE_PERSON = "This person already exists in the address book"; + public static final String MESSAGE_DUPLICATE_PERSON = + "This person already exists in the address book"; private final Person toAdd; - /** - * Creates an AddCommand to add the specified {@code Person} - */ + /** Creates an AddCommand to add the specified {@code Person} */ public AddCommand(Person person) { requireNonNull(person); toAdd = person; @@ -62,6 +75,6 @@ public CommandResult execute(Model model) throws CommandException { public boolean equals(Object other) { return other == this // short circuit if same object || (other instanceof AddCommand // instanceof handles nulls - && toAdd.equals(((AddCommand) other).toAdd)); + && toAdd.equals(((AddCommand) other).toAdd)); } } diff --git a/src/main/java/seedu/address/logic/commands/ClearCommand.java b/src/main/java/seedu/address/logic/commands/ClearCommand.java index 9c86b1fa6e4..a43cf3b7f9e 100644 --- a/src/main/java/seedu/address/logic/commands/ClearCommand.java +++ b/src/main/java/seedu/address/logic/commands/ClearCommand.java @@ -5,15 +5,12 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; -/** - * Clears the address book. - */ +/** Clears the address book. */ public class ClearCommand extends Command { public static final String COMMAND_WORD = "clear"; public static final String MESSAGE_SUCCESS = "Address book has been cleared!"; - @Override public CommandResult execute(Model model) { requireNonNull(model); diff --git a/src/main/java/seedu/address/logic/commands/Command.java b/src/main/java/seedu/address/logic/commands/Command.java index 64f18992160..02516e142be 100644 --- a/src/main/java/seedu/address/logic/commands/Command.java +++ b/src/main/java/seedu/address/logic/commands/Command.java @@ -3,9 +3,7 @@ import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; -/** - * Represents a command with hidden internal logic and the ability to be executed. - */ +/** Represents a command with hidden internal logic and the ability to be executed. */ public abstract class Command { /** @@ -16,5 +14,4 @@ public abstract class Command { * @throws CommandException If an error occurs during command execution. */ public abstract CommandResult execute(Model model) throws CommandException; - } diff --git a/src/main/java/seedu/address/logic/commands/CommandResult.java b/src/main/java/seedu/address/logic/commands/CommandResult.java index 92f900b7916..f69a4517d4a 100644 --- a/src/main/java/seedu/address/logic/commands/CommandResult.java +++ b/src/main/java/seedu/address/logic/commands/CommandResult.java @@ -4,9 +4,7 @@ import java.util.Objects; -/** - * Represents the result of a command execution. - */ +/** Represents the result of a command execution. */ public class CommandResult { private final String feedbackToUser; @@ -17,9 +15,7 @@ public class CommandResult { /** The application should exit. */ private final boolean exit; - /** - * Constructs a {@code CommandResult} with the specified fields. - */ + /** Constructs a {@code CommandResult} with the specified fields. */ public CommandResult(String feedbackToUser, boolean showHelp, boolean exit) { this.feedbackToUser = requireNonNull(feedbackToUser); this.showHelp = showHelp; @@ -27,8 +23,8 @@ public CommandResult(String feedbackToUser, boolean showHelp, boolean exit) { } /** - * Constructs a {@code CommandResult} with the specified {@code feedbackToUser}, - * and other fields set to their default value. + * Constructs a {@code CommandResult} with the specified {@code feedbackToUser}, and other + * fields set to their default value. */ public CommandResult(String feedbackToUser) { this(feedbackToUser, false, false); @@ -67,5 +63,4 @@ public boolean equals(Object other) { public int hashCode() { return Objects.hash(feedbackToUser, showHelp, exit); } - } diff --git a/src/main/java/seedu/address/logic/commands/DeleteCommand.java b/src/main/java/seedu/address/logic/commands/DeleteCommand.java index 02fd256acba..c8f2c660e51 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteCommand.java +++ b/src/main/java/seedu/address/logic/commands/DeleteCommand.java @@ -3,24 +3,24 @@ import static java.util.Objects.requireNonNull; import java.util.List; - import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.person.Person; -/** - * Deletes a person identified using it's displayed index from the address book. - */ +/** Deletes a person identified using it's displayed index from the address book. */ public class DeleteCommand extends Command { public static final String COMMAND_WORD = "delete"; - public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Deletes the person identified by the index number used in the displayed person list.\n" - + "Parameters: INDEX (must be a positive integer)\n" - + "Example: " + COMMAND_WORD + " 1"; + public static final String MESSAGE_USAGE = + COMMAND_WORD + + ": Deletes the person identified by the index number used in the displayed person list.\n" + + "Parameters: INDEX (must be a positive integer)\n" + + "Example: " + + COMMAND_WORD + + " 1"; public static final String MESSAGE_DELETE_PERSON_SUCCESS = "Deleted Person: %1$s"; @@ -48,6 +48,6 @@ public CommandResult execute(Model model) throws CommandException { public boolean equals(Object other) { return other == this // short circuit if same object || (other instanceof DeleteCommand // instanceof handles nulls - && targetIndex.equals(((DeleteCommand) other).targetIndex)); // state check + && targetIndex.equals(((DeleteCommand) other).targetIndex)); // state check } } diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java index 7e36114902f..03ca8b22811 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditCommand.java @@ -13,7 +13,6 @@ import java.util.List; import java.util.Optional; import java.util.Set; - import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; import seedu.address.commons.util.CollectionUtil; @@ -26,29 +25,44 @@ import seedu.address.model.person.Phone; import seedu.address.model.tag.Tag; -/** - * Edits the details of an existing person in the address book. - */ +/** Edits the details of an existing person in the address book. */ public class EditCommand extends Command { public static final String COMMAND_WORD = "edit"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Edits the details of the person identified " - + "by the index number used in the displayed person list. " - + "Existing values will be overwritten by the input values.\n" - + "Parameters: INDEX (must be a positive integer) " - + "[" + PREFIX_NAME + "NAME] " - + "[" + PREFIX_PHONE + "PHONE] " - + "[" + PREFIX_EMAIL + "EMAIL] " - + "[" + PREFIX_ADDRESS + "ADDRESS] " - + "[" + PREFIX_TAG + "TAG]...\n" - + "Example: " + COMMAND_WORD + " 1 " - + PREFIX_PHONE + "91234567 " - + PREFIX_EMAIL + "johndoe@example.com"; + public static final String MESSAGE_USAGE = + COMMAND_WORD + + ": Edits the details of the person identified " + + "by the index number used in the displayed person list. " + + "Existing values will be overwritten by the input values.\n" + + "Parameters: INDEX (must be a positive integer) " + + "[" + + PREFIX_NAME + + "NAME] " + + "[" + + PREFIX_PHONE + + "PHONE] " + + "[" + + PREFIX_EMAIL + + "EMAIL] " + + "[" + + PREFIX_ADDRESS + + "ADDRESS] " + + "[" + + PREFIX_TAG + + "TAG]...\n" + + "Example: " + + COMMAND_WORD + + " 1 " + + PREFIX_PHONE + + "91234567 " + + PREFIX_EMAIL + + "johndoe@example.com"; public static final String MESSAGE_EDIT_PERSON_SUCCESS = "Edited Person: %1$s"; public static final String MESSAGE_NOT_EDITED = "At least one field to edit must be provided."; - public static final String MESSAGE_DUPLICATE_PERSON = "This person already exists in the address book."; + public static final String MESSAGE_DUPLICATE_PERSON = + "This person already exists in the address book."; private final Index index; private final EditPersonDescriptor editPersonDescriptor; @@ -87,16 +101,18 @@ public CommandResult execute(Model model) throws CommandException { } /** - * Creates and returns a {@code Person} with the details of {@code personToEdit} - * edited with {@code editPersonDescriptor}. + * Creates and returns a {@code Person} with the details of {@code personToEdit} edited with + * {@code editPersonDescriptor}. */ - private static Person createEditedPerson(Person personToEdit, EditPersonDescriptor editPersonDescriptor) { + private static Person createEditedPerson( + Person personToEdit, EditPersonDescriptor editPersonDescriptor) { assert personToEdit != null; Name updatedName = editPersonDescriptor.getName().orElse(personToEdit.getName()); Phone updatedPhone = editPersonDescriptor.getPhone().orElse(personToEdit.getPhone()); Email updatedEmail = editPersonDescriptor.getEmail().orElse(personToEdit.getEmail()); - Address updatedAddress = editPersonDescriptor.getAddress().orElse(personToEdit.getAddress()); + Address updatedAddress = + editPersonDescriptor.getAddress().orElse(personToEdit.getAddress()); Set updatedTags = editPersonDescriptor.getTags().orElse(personToEdit.getTags()); return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, updatedTags); @@ -116,8 +132,7 @@ public boolean equals(Object other) { // state check EditCommand e = (EditCommand) other; - return index.equals(e.index) - && editPersonDescriptor.equals(e.editPersonDescriptor); + return index.equals(e.index) && editPersonDescriptor.equals(e.editPersonDescriptor); } /** @@ -133,10 +148,7 @@ public static class EditPersonDescriptor { public EditPersonDescriptor() {} - /** - * Copy constructor. - * A defensive copy of {@code tags} is used internally. - */ + /** Copy constructor. A defensive copy of {@code tags} is used internally. */ public EditPersonDescriptor(EditPersonDescriptor toCopy) { setName(toCopy.name); setPhone(toCopy.phone); @@ -145,9 +157,7 @@ public EditPersonDescriptor(EditPersonDescriptor toCopy) { setTags(toCopy.tags); } - /** - * Returns true if at least one field is edited. - */ + /** Returns true if at least one field is edited. */ public boolean isAnyFieldEdited() { return CollectionUtil.isAnyNonNull(name, phone, email, address, tags); } @@ -185,20 +195,21 @@ public Optional
    getAddress() { } /** - * Sets {@code tags} to this object's {@code tags}. - * A defensive copy of {@code tags} is used internally. + * Sets {@code tags} to this object's {@code tags}. A defensive copy of {@code tags} is used + * internally. */ public void setTags(Set tags) { this.tags = (tags != null) ? new HashSet<>(tags) : null; } /** - * Returns an unmodifiable tag set, which throws {@code UnsupportedOperationException} - * if modification is attempted. - * Returns {@code Optional#empty()} if {@code tags} is null. + * Returns an unmodifiable tag set, which throws {@code UnsupportedOperationException} if + * modification is attempted. Returns {@code Optional#empty()} if {@code tags} is null. */ public Optional> getTags() { - return (tags != null) ? Optional.of(Collections.unmodifiableSet(tags)) : Optional.empty(); + return (tags != null) + ? Optional.of(Collections.unmodifiableSet(tags)) + : Optional.empty(); } @Override diff --git a/src/main/java/seedu/address/logic/commands/ExitCommand.java b/src/main/java/seedu/address/logic/commands/ExitCommand.java index 3dd85a8ba90..6dc77841bd3 100644 --- a/src/main/java/seedu/address/logic/commands/ExitCommand.java +++ b/src/main/java/seedu/address/logic/commands/ExitCommand.java @@ -2,18 +2,16 @@ import seedu.address.model.Model; -/** - * Terminates the program. - */ +/** Terminates the program. */ public class ExitCommand extends Command { public static final String COMMAND_WORD = "exit"; - public static final String MESSAGE_EXIT_ACKNOWLEDGEMENT = "Exiting Address Book as requested ..."; + public static final String MESSAGE_EXIT_ACKNOWLEDGEMENT = + "Exiting Address Book as requested ..."; @Override public CommandResult execute(Model model) { return new CommandResult(MESSAGE_EXIT_ACKNOWLEDGEMENT, false, true); } - } diff --git a/src/main/java/seedu/address/logic/commands/FindCommand.java b/src/main/java/seedu/address/logic/commands/FindCommand.java index d6b19b0a0de..7710212cab0 100644 --- a/src/main/java/seedu/address/logic/commands/FindCommand.java +++ b/src/main/java/seedu/address/logic/commands/FindCommand.java @@ -14,10 +14,14 @@ public class FindCommand extends Command { public static final String COMMAND_WORD = "find"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Finds all persons whose names contain any of " - + "the specified keywords (case-insensitive) and displays them as a list with index numbers.\n" - + "Parameters: KEYWORD [MORE_KEYWORDS]...\n" - + "Example: " + COMMAND_WORD + " alice bob charlie"; + public static final String MESSAGE_USAGE = + COMMAND_WORD + + ": Finds all persons whose names contain any of " + + "the specified keywords (case-insensitive) and displays them as a list with index numbers.\n" + + "Parameters: KEYWORD [MORE_KEYWORDS]...\n" + + "Example: " + + COMMAND_WORD + + " alice bob charlie"; private final NameContainsKeywordsPredicate predicate; @@ -30,13 +34,15 @@ public CommandResult execute(Model model) { requireNonNull(model); model.updateFilteredPersonList(predicate); return new CommandResult( - String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, model.getFilteredPersonList().size())); + String.format( + Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, + model.getFilteredPersonList().size())); } @Override public boolean equals(Object other) { return other == this // short circuit if same object || (other instanceof FindCommand // instanceof handles nulls - && predicate.equals(((FindCommand) other).predicate)); // state check + && predicate.equals(((FindCommand) other).predicate)); // state check } } diff --git a/src/main/java/seedu/address/logic/commands/HelpCommand.java b/src/main/java/seedu/address/logic/commands/HelpCommand.java index bf824f91bd0..07b814abaa6 100644 --- a/src/main/java/seedu/address/logic/commands/HelpCommand.java +++ b/src/main/java/seedu/address/logic/commands/HelpCommand.java @@ -2,15 +2,13 @@ import seedu.address.model.Model; -/** - * Format full help instructions for every command for display. - */ +/** Format full help instructions for every command for display. */ public class HelpCommand extends Command { public static final String COMMAND_WORD = "help"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Shows program usage instructions.\n" - + "Example: " + COMMAND_WORD; + public static final String MESSAGE_USAGE = + COMMAND_WORD + ": Shows program usage instructions.\n" + "Example: " + COMMAND_WORD; public static final String SHOWING_HELP_MESSAGE = "Opened help window."; diff --git a/src/main/java/seedu/address/logic/commands/ListCommand.java b/src/main/java/seedu/address/logic/commands/ListCommand.java index 84be6ad2596..b112a873729 100644 --- a/src/main/java/seedu/address/logic/commands/ListCommand.java +++ b/src/main/java/seedu/address/logic/commands/ListCommand.java @@ -5,16 +5,13 @@ import seedu.address.model.Model; -/** - * Lists all persons in the address book to the user. - */ +/** Lists all persons in the address book to the user. */ public class ListCommand extends Command { public static final String COMMAND_WORD = "list"; public static final String MESSAGE_SUCCESS = "Listed all persons"; - @Override public CommandResult execute(Model model) { requireNonNull(model); diff --git a/src/main/java/seedu/address/logic/commands/exceptions/CommandException.java b/src/main/java/seedu/address/logic/commands/exceptions/CommandException.java index a16bd14f2cd..7c53187a371 100644 --- a/src/main/java/seedu/address/logic/commands/exceptions/CommandException.java +++ b/src/main/java/seedu/address/logic/commands/exceptions/CommandException.java @@ -1,15 +1,14 @@ package seedu.address.logic.commands.exceptions; -/** - * Represents an error which occurs during execution of a {@link Command}. - */ +/** Represents an error which occurs during execution of a {@link Command}. */ public class CommandException extends Exception { public CommandException(String message) { super(message); } /** - * Constructs a new {@code CommandException} with the specified detail {@code message} and {@code cause}. + * Constructs a new {@code CommandException} with the specified detail {@code message} and + * {@code cause}. */ public CommandException(String message, Throwable cause) { super(message, cause); diff --git a/src/main/java/seedu/address/logic/parser/AddCommandParser.java b/src/main/java/seedu/address/logic/parser/AddCommandParser.java index 3b8bfa035e8..d00eb2f0438 100644 --- a/src/main/java/seedu/address/logic/parser/AddCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddCommandParser.java @@ -9,7 +9,6 @@ import java.util.Set; import java.util.stream.Stream; - import seedu.address.logic.commands.AddCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.person.Address; @@ -19,23 +18,25 @@ import seedu.address.model.person.Phone; import seedu.address.model.tag.Tag; -/** - * Parses input arguments and creates a new AddCommand object - */ +/** Parses input arguments and creates a new AddCommand object */ public class AddCommandParser implements Parser { /** - * Parses the given {@code String} of arguments in the context of the AddCommand - * and returns an AddCommand object for execution. + * Parses the given {@code String} of arguments in the context of the AddCommand and returns an + * AddCommand object for execution. + * * @throws ParseException if the user input does not conform the expected format */ public AddCommand parse(String args) throws ParseException { ArgumentMultimap argMultimap = - ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_TAG); + ArgumentTokenizer.tokenize( + args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_TAG); - if (!arePrefixesPresent(argMultimap, PREFIX_NAME, PREFIX_ADDRESS, PREFIX_PHONE, PREFIX_EMAIL) + if (!arePrefixesPresent( + argMultimap, PREFIX_NAME, PREFIX_ADDRESS, PREFIX_PHONE, PREFIX_EMAIL) || !argMultimap.getPreamble().isEmpty()) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE)); + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE)); } Name name = ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get()); @@ -53,8 +54,9 @@ public AddCommand parse(String args) throws ParseException { * Returns true if none of the prefixes contains empty {@code Optional} values in the given * {@code ArgumentMultimap}. */ - private static boolean arePrefixesPresent(ArgumentMultimap argumentMultimap, Prefix... prefixes) { - return Stream.of(prefixes).allMatch(prefix -> argumentMultimap.getValue(prefix).isPresent()); + private static boolean arePrefixesPresent( + ArgumentMultimap argumentMultimap, Prefix... prefixes) { + return Stream.of(prefixes) + .allMatch(prefix -> argumentMultimap.getValue(prefix).isPresent()); } - } diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 1e466792b46..f2d9d4abf8a 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -5,7 +5,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; - import seedu.address.logic.commands.AddCommand; import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.Command; @@ -17,15 +16,12 @@ import seedu.address.logic.commands.ListCommand; import seedu.address.logic.parser.exceptions.ParseException; -/** - * Parses user input. - */ +/** Parses user input. */ public class AddressBookParser { - /** - * Used for initial separation of command word and args. - */ - private static final Pattern BASIC_COMMAND_FORMAT = Pattern.compile("(?\\S+)(?.*)"); + /** Used for initial separation of command word and args. */ + private static final Pattern BASIC_COMMAND_FORMAT = + Pattern.compile("(?\\S+)(?.*)"); /** * Parses user input into command for execution. @@ -37,40 +33,39 @@ public class AddressBookParser { public Command parseCommand(String userInput) throws ParseException { final Matcher matcher = BASIC_COMMAND_FORMAT.matcher(userInput.trim()); if (!matcher.matches()) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, HelpCommand.MESSAGE_USAGE)); + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, HelpCommand.MESSAGE_USAGE)); } final String commandWord = matcher.group("commandWord"); final String arguments = matcher.group("arguments"); switch (commandWord) { + case AddCommand.COMMAND_WORD: + return new AddCommandParser().parse(arguments); - case AddCommand.COMMAND_WORD: - return new AddCommandParser().parse(arguments); + case EditCommand.COMMAND_WORD: + return new EditCommandParser().parse(arguments); - case EditCommand.COMMAND_WORD: - return new EditCommandParser().parse(arguments); + case DeleteCommand.COMMAND_WORD: + return new DeleteCommandParser().parse(arguments); - case DeleteCommand.COMMAND_WORD: - return new DeleteCommandParser().parse(arguments); + case ClearCommand.COMMAND_WORD: + return new ClearCommand(); - case ClearCommand.COMMAND_WORD: - return new ClearCommand(); + case FindCommand.COMMAND_WORD: + return new FindCommandParser().parse(arguments); - case FindCommand.COMMAND_WORD: - return new FindCommandParser().parse(arguments); + case ListCommand.COMMAND_WORD: + return new ListCommand(); - case ListCommand.COMMAND_WORD: - return new ListCommand(); + case ExitCommand.COMMAND_WORD: + return new ExitCommand(); - case ExitCommand.COMMAND_WORD: - return new ExitCommand(); + case HelpCommand.COMMAND_WORD: + return new HelpCommand(); - case HelpCommand.COMMAND_WORD: - return new HelpCommand(); - - default: - throw new ParseException(MESSAGE_UNKNOWN_COMMAND); + default: + throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } } - } diff --git a/src/main/java/seedu/address/logic/parser/ArgumentMultimap.java b/src/main/java/seedu/address/logic/parser/ArgumentMultimap.java index 954c8e18f8e..bb301899c6a 100644 --- a/src/main/java/seedu/address/logic/parser/ArgumentMultimap.java +++ b/src/main/java/seedu/address/logic/parser/ArgumentMultimap.java @@ -7,22 +7,22 @@ import java.util.Optional; /** - * Stores mapping of prefixes to their respective arguments. - * Each key may be associated with multiple argument values. - * Values for a given key are stored in a list, and the insertion ordering is maintained. - * Keys are unique, but the list of argument values may contain duplicate argument values, i.e. the same argument value - * can be inserted multiple times for the same prefix. + * Stores mapping of prefixes to their respective arguments. Each key may be associated with + * multiple argument values. Values for a given key are stored in a list, and the insertion ordering + * is maintained. Keys are unique, but the list of argument values may contain duplicate argument + * values, i.e. the same argument value can be inserted multiple times for the same prefix. */ public class ArgumentMultimap { - /** Prefixes mapped to their respective arguments**/ + /** Prefixes mapped to their respective arguments* */ private final Map> argMultimap = new HashMap<>(); /** - * Associates the specified argument value with {@code prefix} key in this map. - * If the map previously contained a mapping for the key, the new value is appended to the list of existing values. + * Associates the specified argument value with {@code prefix} key in this map. If the map + * previously contained a mapping for the key, the new value is appended to the list of existing + * values. * - * @param prefix Prefix key with which the specified argument value is to be associated + * @param prefix Prefix key with which the specified argument value is to be associated * @param argValue Argument value to be associated with the specified prefix key */ public void put(Prefix prefix, String argValue) { @@ -31,18 +31,16 @@ public void put(Prefix prefix, String argValue) { argMultimap.put(prefix, argValues); } - /** - * Returns the last value of {@code prefix}. - */ + /** Returns the last value of {@code prefix}. */ public Optional getValue(Prefix prefix) { List values = getAllValues(prefix); return values.isEmpty() ? Optional.empty() : Optional.of(values.get(values.size() - 1)); } /** - * Returns all values of {@code prefix}. - * If the prefix does not exist or has no values, this will return an empty list. - * Modifying the returned list will not affect the underlying data structure of the ArgumentMultimap. + * Returns all values of {@code prefix}. If the prefix does not exist or has no values, this + * will return an empty list. Modifying the returned list will not affect the underlying data + * structure of the ArgumentMultimap. */ public List getAllValues(Prefix prefix) { if (!argMultimap.containsKey(prefix)) { diff --git a/src/main/java/seedu/address/logic/parser/ArgumentTokenizer.java b/src/main/java/seedu/address/logic/parser/ArgumentTokenizer.java index 5c9aebfa488..87f98464613 100644 --- a/src/main/java/seedu/address/logic/parser/ArgumentTokenizer.java +++ b/src/main/java/seedu/address/logic/parser/ArgumentTokenizer.java @@ -7,21 +7,25 @@ /** * Tokenizes arguments string of the form: {@code preamble value value ...}
    - * e.g. {@code some preamble text t/ 11.00 t/12.00 k/ m/ July} where prefixes are {@code t/ k/ m/}.
    - * 1. An argument's value can be an empty string e.g. the value of {@code k/} in the above example.
    + * e.g. {@code some preamble text t/ 11.00 t/12.00 k/ m/ July} where prefixes are {@code t/ k/ m/}. + *
    + * 1. An argument's value can be an empty string e.g. the value of {@code k/} in the above example. + *
    * 2. Leading and trailing whitespaces of an argument value will be discarded.
    - * 3. An argument may be repeated and all its values will be accumulated e.g. the value of {@code t/} - * in the above example.
    + * 3. An argument may be repeated and all its values will be accumulated e.g. the value of {@code + * t/} in the above example.
    */ public class ArgumentTokenizer { /** - * Tokenizes an arguments string and returns an {@code ArgumentMultimap} object that maps prefixes to their - * respective argument values. Only the given prefixes will be recognized in the arguments string. + * Tokenizes an arguments string and returns an {@code ArgumentMultimap} object that maps + * prefixes to their respective argument values. Only the given prefixes will be recognized in + * the arguments string. * - * @param argsString Arguments string of the form: {@code preamble value value ...} - * @param prefixes Prefixes to tokenize the arguments string with - * @return ArgumentMultimap object that maps prefixes to their arguments + * @param argsString Arguments string of the form: {@code preamble value value + * ...} + * @param prefixes Prefixes to tokenize the arguments string with + * @return ArgumentMultimap object that maps prefixes to their arguments */ public static ArgumentMultimap tokenize(String argsString, Prefix... prefixes) { List positions = findAllPrefixPositions(argsString, prefixes); @@ -31,19 +35,19 @@ public static ArgumentMultimap tokenize(String argsString, Prefix... prefixes) { /** * Finds all zero-based prefix positions in the given arguments string. * - * @param argsString Arguments string of the form: {@code preamble value value ...} - * @param prefixes Prefixes to find in the arguments string - * @return List of zero-based prefix positions in the given arguments string + * @param argsString Arguments string of the form: {@code preamble value value + * ...} + * @param prefixes Prefixes to find in the arguments string + * @return List of zero-based prefix positions in the given arguments string */ - private static List findAllPrefixPositions(String argsString, Prefix... prefixes) { + private static List findAllPrefixPositions( + String argsString, Prefix... prefixes) { return Arrays.stream(prefixes) .flatMap(prefix -> findPrefixPositions(argsString, prefix).stream()) .collect(Collectors.toList()); } - /** - * {@see findAllPrefixPositions} - */ + /** {@see findAllPrefixPositions} */ private static List findPrefixPositions(String argsString, Prefix prefix) { List positions = new ArrayList<>(); @@ -58,36 +62,36 @@ private static List findPrefixPositions(String argsString, Prefi } /** - * Returns the index of the first occurrence of {@code prefix} in - * {@code argsString} starting from index {@code fromIndex}. An occurrence - * is valid if there is a whitespace before {@code prefix}. Returns -1 if no - * such occurrence can be found. + * Returns the index of the first occurrence of {@code prefix} in {@code argsString} starting + * from index {@code fromIndex}. An occurrence is valid if there is a whitespace before {@code + * prefix}. Returns -1 if no such occurrence can be found. * - * E.g if {@code argsString} = "e/hip/900", {@code prefix} = "p/" and - * {@code fromIndex} = 0, this method returns -1 as there are no valid - * occurrences of "p/" with whitespace before it. However, if - * {@code argsString} = "e/hi p/900", {@code prefix} = "p/" and - * {@code fromIndex} = 0, this method returns 5. + *

    E.g if {@code argsString} = "e/hip/900", {@code prefix} = "p/" and {@code fromIndex} = 0, + * this method returns -1 as there are no valid occurrences of "p/" with whitespace before it. + * However, if {@code argsString} = "e/hi p/900", {@code prefix} = "p/" and {@code fromIndex} = + * 0, this method returns 5. */ private static int findPrefixPosition(String argsString, String prefix, int fromIndex) { int prefixIndex = argsString.indexOf(" " + prefix, fromIndex); - return prefixIndex == -1 ? -1 - : prefixIndex + 1; // +1 as offset for whitespace + return prefixIndex == -1 ? -1 : prefixIndex + 1; // +1 as offset for whitespace } /** - * Extracts prefixes and their argument values, and returns an {@code ArgumentMultimap} object that maps the - * extracted prefixes to their respective arguments. Prefixes are extracted based on their zero-based positions in - * {@code argsString}. + * Extracts prefixes and their argument values, and returns an {@code ArgumentMultimap} object + * that maps the extracted prefixes to their respective arguments. Prefixes are extracted based + * on their zero-based positions in {@code argsString}. * - * @param argsString Arguments string of the form: {@code preamble value value ...} + * @param argsString Arguments string of the form: {@code preamble value value + * ...} * @param prefixPositions Zero-based positions of all prefixes in {@code argsString} - * @return ArgumentMultimap object that maps prefixes to their arguments + * @return ArgumentMultimap object that maps prefixes to their arguments */ - private static ArgumentMultimap extractArguments(String argsString, List prefixPositions) { + private static ArgumentMultimap extractArguments( + String argsString, List prefixPositions) { // Sort by start position - prefixPositions.sort((prefix1, prefix2) -> prefix1.getStartPosition() - prefix2.getStartPosition()); + prefixPositions.sort( + (prefix1, prefix2) -> prefix1.getStartPosition() - prefix2.getStartPosition()); // Insert a PrefixPosition to represent the preamble PrefixPosition preambleMarker = new PrefixPosition(new Prefix(""), 0); @@ -102,7 +106,9 @@ private static ArgumentMultimap extractArguments(String argsString, List { /** - * Parses the given {@code String} of arguments in the context of the DeleteCommand - * and returns a DeleteCommand object for execution. + * Parses the given {@code String} of arguments in the context of the DeleteCommand and returns + * a DeleteCommand object for execution. + * * @throws ParseException if the user input does not conform the expected format */ public DeleteCommand parse(String args) throws ParseException { @@ -25,5 +24,4 @@ public DeleteCommand parse(String args) throws ParseException { String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteCommand.MESSAGE_USAGE), pe); } } - } diff --git a/src/main/java/seedu/address/logic/parser/EditCommandParser.java b/src/main/java/seedu/address/logic/parser/EditCommandParser.java index 845644b7dea..ca5fc8c4fd3 100644 --- a/src/main/java/seedu/address/logic/parser/EditCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/EditCommandParser.java @@ -12,50 +12,55 @@ import java.util.Collections; import java.util.Optional; import java.util.Set; - import seedu.address.commons.core.index.Index; import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.tag.Tag; -/** - * Parses input arguments and creates a new EditCommand object - */ +/** Parses input arguments and creates a new EditCommand object */ public class EditCommandParser implements Parser { /** - * Parses the given {@code String} of arguments in the context of the EditCommand - * and returns an EditCommand object for execution. + * Parses the given {@code String} of arguments in the context of the EditCommand and returns an + * EditCommand object for execution. + * * @throws ParseException if the user input does not conform the expected format */ public EditCommand parse(String args) throws ParseException { requireNonNull(args); ArgumentMultimap argMultimap = - ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_TAG); + ArgumentTokenizer.tokenize( + args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_TAG); Index index; try { index = ParserUtil.parseIndex(argMultimap.getPreamble()); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, EditCommand.MESSAGE_USAGE), pe); + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, EditCommand.MESSAGE_USAGE), pe); } EditPersonDescriptor editPersonDescriptor = new EditPersonDescriptor(); if (argMultimap.getValue(PREFIX_NAME).isPresent()) { - editPersonDescriptor.setName(ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get())); + editPersonDescriptor.setName( + ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get())); } if (argMultimap.getValue(PREFIX_PHONE).isPresent()) { - editPersonDescriptor.setPhone(ParserUtil.parsePhone(argMultimap.getValue(PREFIX_PHONE).get())); + editPersonDescriptor.setPhone( + ParserUtil.parsePhone(argMultimap.getValue(PREFIX_PHONE).get())); } if (argMultimap.getValue(PREFIX_EMAIL).isPresent()) { - editPersonDescriptor.setEmail(ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get())); + editPersonDescriptor.setEmail( + ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get())); } if (argMultimap.getValue(PREFIX_ADDRESS).isPresent()) { - editPersonDescriptor.setAddress(ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS).get())); + editPersonDescriptor.setAddress( + ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS).get())); } - parseTagsForEdit(argMultimap.getAllValues(PREFIX_TAG)).ifPresent(editPersonDescriptor::setTags); + parseTagsForEdit(argMultimap.getAllValues(PREFIX_TAG)) + .ifPresent(editPersonDescriptor::setTags); if (!editPersonDescriptor.isAnyFieldEdited()) { throw new ParseException(EditCommand.MESSAGE_NOT_EDITED); @@ -75,8 +80,8 @@ private Optional> parseTagsForEdit(Collection tags) throws Pars if (tags.isEmpty()) { return Optional.empty(); } - Collection tagSet = tags.size() == 1 && tags.contains("") ? Collections.emptySet() : tags; + Collection tagSet = + tags.size() == 1 && tags.contains("") ? Collections.emptySet() : tags; return Optional.of(ParserUtil.parseTags(tagSet)); } - } diff --git a/src/main/java/seedu/address/logic/parser/FindCommandParser.java b/src/main/java/seedu/address/logic/parser/FindCommandParser.java index 4fb71f23103..37c446d757a 100644 --- a/src/main/java/seedu/address/logic/parser/FindCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/FindCommandParser.java @@ -3,19 +3,17 @@ import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import java.util.Arrays; - import seedu.address.logic.commands.FindCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.person.NameContainsKeywordsPredicate; -/** - * Parses input arguments and creates a new FindCommand object - */ +/** Parses input arguments and creates a new FindCommand object */ public class FindCommandParser implements Parser { /** - * Parses the given {@code String} of arguments in the context of the FindCommand - * and returns a FindCommand object for execution. + * Parses the given {@code String} of arguments in the context of the FindCommand and returns a + * FindCommand object for execution. + * * @throws ParseException if the user input does not conform the expected format */ public FindCommand parse(String args) throws ParseException { @@ -29,5 +27,4 @@ public FindCommand parse(String args) throws ParseException { return new FindCommand(new NameContainsKeywordsPredicate(Arrays.asList(nameKeywords))); } - } diff --git a/src/main/java/seedu/address/logic/parser/Parser.java b/src/main/java/seedu/address/logic/parser/Parser.java index d6551ad8e3f..ce644a9c6fd 100644 --- a/src/main/java/seedu/address/logic/parser/Parser.java +++ b/src/main/java/seedu/address/logic/parser/Parser.java @@ -10,6 +10,7 @@ public interface Parser { /** * Parses {@code userInput} into a command and returns it. + * * @throws ParseException if {@code userInput} does not conform the expected format */ T parse(String userInput) throws ParseException; diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index b117acb9c55..d272254dbc6 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -5,7 +5,6 @@ import java.util.Collection; import java.util.HashSet; import java.util.Set; - import seedu.address.commons.core.index.Index; import seedu.address.commons.util.StringUtil; import seedu.address.logic.parser.exceptions.ParseException; @@ -15,16 +14,15 @@ import seedu.address.model.person.Phone; import seedu.address.model.tag.Tag; -/** - * Contains utility methods used for parsing strings in the various *Parser classes. - */ +/** Contains utility methods used for parsing strings in the various *Parser classes. */ public class ParserUtil { public static final String MESSAGE_INVALID_INDEX = "Index is not a non-zero unsigned integer."; /** - * Parses {@code oneBasedIndex} into an {@code Index} and returns it. Leading and trailing whitespaces will be - * trimmed. + * Parses {@code oneBasedIndex} into an {@code Index} and returns it. Leading and trailing + * whitespaces will be trimmed. + * * @throws ParseException if the specified index is invalid (not non-zero unsigned integer). */ public static Index parseIndex(String oneBasedIndex) throws ParseException { @@ -36,8 +34,8 @@ public static Index parseIndex(String oneBasedIndex) throws ParseException { } /** - * Parses a {@code String name} into a {@code Name}. - * Leading and trailing whitespaces will be trimmed. + * Parses a {@code String name} into a {@code Name}. Leading and trailing whitespaces will be + * trimmed. * * @throws ParseException if the given {@code name} is invalid. */ @@ -51,8 +49,8 @@ public static Name parseName(String name) throws ParseException { } /** - * Parses a {@code String phone} into a {@code Phone}. - * Leading and trailing whitespaces will be trimmed. + * Parses a {@code String phone} into a {@code Phone}. Leading and trailing whitespaces will be + * trimmed. * * @throws ParseException if the given {@code phone} is invalid. */ @@ -66,8 +64,8 @@ public static Phone parsePhone(String phone) throws ParseException { } /** - * Parses a {@code String address} into an {@code Address}. - * Leading and trailing whitespaces will be trimmed. + * Parses a {@code String address} into an {@code Address}. Leading and trailing whitespaces + * will be trimmed. * * @throws ParseException if the given {@code address} is invalid. */ @@ -81,8 +79,8 @@ public static Address parseAddress(String address) throws ParseException { } /** - * Parses a {@code String email} into an {@code Email}. - * Leading and trailing whitespaces will be trimmed. + * Parses a {@code String email} into an {@code Email}. Leading and trailing whitespaces will be + * trimmed. * * @throws ParseException if the given {@code email} is invalid. */ @@ -96,8 +94,8 @@ public static Email parseEmail(String email) throws ParseException { } /** - * Parses a {@code String tag} into a {@code Tag}. - * Leading and trailing whitespaces will be trimmed. + * Parses a {@code String tag} into a {@code Tag}. Leading and trailing whitespaces will be + * trimmed. * * @throws ParseException if the given {@code tag} is invalid. */ @@ -110,9 +108,7 @@ public static Tag parseTag(String tag) throws ParseException { return new Tag(trimmedTag); } - /** - * Parses {@code Collection tags} into a {@code Set}. - */ + /** Parses {@code Collection tags} into a {@code Set}. */ public static Set parseTags(Collection tags) throws ParseException { requireNonNull(tags); final Set tagSet = new HashSet<>(); diff --git a/src/main/java/seedu/address/logic/parser/Prefix.java b/src/main/java/seedu/address/logic/parser/Prefix.java index c859d5fa5db..bde3a23c7fc 100644 --- a/src/main/java/seedu/address/logic/parser/Prefix.java +++ b/src/main/java/seedu/address/logic/parser/Prefix.java @@ -1,8 +1,8 @@ package seedu.address.logic.parser; /** - * A prefix that marks the beginning of an argument in an arguments string. - * E.g. 't/' in 'add James t/ friend'. + * A prefix that marks the beginning of an argument in an arguments string. E.g. 't/' in 'add James + * t/ friend'. */ public class Prefix { private final String prefix; diff --git a/src/main/java/seedu/address/logic/parser/exceptions/ParseException.java b/src/main/java/seedu/address/logic/parser/exceptions/ParseException.java index 158a1a54c1c..e2db6aa5c11 100644 --- a/src/main/java/seedu/address/logic/parser/exceptions/ParseException.java +++ b/src/main/java/seedu/address/logic/parser/exceptions/ParseException.java @@ -2,9 +2,7 @@ import seedu.address.commons.exceptions.IllegalValueException; -/** - * Represents a parse error encountered by a parser. - */ +/** Represents a parse error encountered by a parser. */ public class ParseException extends IllegalValueException { public ParseException(String message) { diff --git a/src/main/java/seedu/address/model/AddressBook.java b/src/main/java/seedu/address/model/AddressBook.java index 1a943a0781a..9078c4e29ab 100644 --- a/src/main/java/seedu/address/model/AddressBook.java +++ b/src/main/java/seedu/address/model/AddressBook.java @@ -3,14 +3,12 @@ import static java.util.Objects.requireNonNull; import java.util.List; - import javafx.collections.ObservableList; import seedu.address.model.person.Person; import seedu.address.model.person.UniquePersonList; /** - * Wraps all data at the address-book level - * Duplicates are not allowed (by .isSamePerson comparison) + * Wraps all data at the address-book level Duplicates are not allowed (by .isSamePerson comparison) */ public class AddressBook implements ReadOnlyAddressBook { @@ -29,9 +27,7 @@ public class AddressBook implements ReadOnlyAddressBook { public AddressBook() {} - /** - * Creates an AddressBook using the Persons in the {@code toBeCopied} - */ + /** Creates an AddressBook using the Persons in the {@code toBeCopied} */ public AddressBook(ReadOnlyAddressBook toBeCopied) { this(); resetData(toBeCopied); @@ -40,16 +36,14 @@ public AddressBook(ReadOnlyAddressBook toBeCopied) { //// list overwrite operations /** - * Replaces the contents of the person list with {@code persons}. - * {@code persons} must not contain duplicate persons. + * Replaces the contents of the person list with {@code persons}. {@code persons} must not + * contain duplicate persons. */ public void setPersons(List persons) { this.persons.setPersons(persons); } - /** - * Resets the existing data of this {@code AddressBook} with {@code newData}. - */ + /** Resets the existing data of this {@code AddressBook} with {@code newData}. */ public void resetData(ReadOnlyAddressBook newData) { requireNonNull(newData); @@ -66,18 +60,15 @@ public boolean hasPerson(Person person) { return persons.contains(person); } - /** - * Adds a person to the address book. - * The person must not already exist in the address book. - */ + /** Adds a person to the address book. The person must not already exist in the address book. */ public void addPerson(Person p) { persons.add(p); } /** - * Replaces the given person {@code target} in the list with {@code editedPerson}. - * {@code target} must exist in the address book. - * The person identity of {@code editedPerson} must not be the same as another existing person in the address book. + * Replaces the given person {@code target} in the list with {@code editedPerson}. {@code + * target} must exist in the address book. The person identity of {@code editedPerson} must not + * be the same as another existing person in the address book. */ public void setPerson(Person target, Person editedPerson) { requireNonNull(editedPerson); @@ -86,8 +77,8 @@ public void setPerson(Person target, Person editedPerson) { } /** - * Removes {@code key} from this {@code AddressBook}. - * {@code key} must exist in the address book. + * Removes {@code key} from this {@code AddressBook}. {@code key} must exist in the address + * book. */ public void removePerson(Person key) { persons.remove(key); @@ -110,7 +101,7 @@ public ObservableList getPersonList() { public boolean equals(Object other) { return other == this // short circuit if same object || (other instanceof AddressBook // instanceof handles nulls - && persons.equals(((AddressBook) other).persons)); + && persons.equals(((AddressBook) other).persons)); } @Override diff --git a/src/main/java/seedu/address/model/Model.java b/src/main/java/seedu/address/model/Model.java index d54df471c1f..18f784a21b6 100644 --- a/src/main/java/seedu/address/model/Model.java +++ b/src/main/java/seedu/address/model/Model.java @@ -2,51 +2,34 @@ import java.nio.file.Path; import java.util.function.Predicate; - import javafx.collections.ObservableList; import seedu.address.commons.core.GuiSettings; import seedu.address.model.person.Person; -/** - * The API of the Model component. - */ +/** The API of the Model component. */ public interface Model { /** {@code Predicate} that always evaluate to true */ Predicate PREDICATE_SHOW_ALL_PERSONS = unused -> true; - /** - * Replaces user prefs data with the data in {@code userPrefs}. - */ + /** Replaces user prefs data with the data in {@code userPrefs}. */ void setUserPrefs(ReadOnlyUserPrefs userPrefs); - /** - * Returns the user prefs. - */ + /** Returns the user prefs. */ ReadOnlyUserPrefs getUserPrefs(); - /** - * Returns the user prefs' GUI settings. - */ + /** Returns the user prefs' GUI settings. */ GuiSettings getGuiSettings(); - /** - * Sets the user prefs' GUI settings. - */ + /** Sets the user prefs' GUI settings. */ void setGuiSettings(GuiSettings guiSettings); - /** - * Returns the user prefs' address book file path. - */ + /** Returns the user prefs' address book file path. */ Path getAddressBookFilePath(); - /** - * Sets the user prefs' address book file path. - */ + /** Sets the user prefs' address book file path. */ void setAddressBookFilePath(Path addressBookFilePath); - /** - * Replaces address book data with the data in {@code addressBook}. - */ + /** Replaces address book data with the data in {@code addressBook}. */ void setAddressBook(ReadOnlyAddressBook addressBook); /** Returns the AddressBook */ @@ -57,22 +40,16 @@ public interface Model { */ boolean hasPerson(Person person); - /** - * Deletes the given person. - * The person must exist in the address book. - */ + /** Deletes the given person. The person must exist in the address book. */ void deletePerson(Person target); - /** - * Adds the given person. - * {@code person} must not already exist in the address book. - */ + /** Adds the given person. {@code person} must not already exist in the address book. */ void addPerson(Person person); /** - * Replaces the given person {@code target} with {@code editedPerson}. - * {@code target} must exist in the address book. - * The person identity of {@code editedPerson} must not be the same as another existing person in the address book. + * Replaces the given person {@code target} with {@code editedPerson}. {@code target} must exist + * in the address book. The person identity of {@code editedPerson} must not be the same as + * another existing person in the address book. */ void setPerson(Person target, Person editedPerson); @@ -81,6 +58,7 @@ public interface Model { /** * Updates the filter of the filtered person list to filter by the given {@code predicate}. + * * @throws NullPointerException if {@code predicate} is null. */ void updateFilteredPersonList(Predicate predicate); diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index 0650c954f5c..76553b0c729 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -6,16 +6,13 @@ import java.nio.file.Path; import java.util.function.Predicate; import java.util.logging.Logger; - import javafx.collections.ObservableList; import javafx.collections.transformation.FilteredList; import seedu.address.commons.core.GuiSettings; import seedu.address.commons.core.LogsCenter; import seedu.address.model.person.Person; -/** - * Represents the in-memory model of the address book data. - */ +/** Represents the in-memory model of the address book data. */ public class ModelManager implements Model { private static final Logger logger = LogsCenter.getLogger(ModelManager.class); @@ -23,14 +20,13 @@ public class ModelManager implements Model { private final UserPrefs userPrefs; private final FilteredList filteredPersons; - /** - * Initializes a ModelManager with the given addressBook and userPrefs. - */ + /** Initializes a ModelManager with the given addressBook and userPrefs. */ public ModelManager(ReadOnlyAddressBook addressBook, ReadOnlyUserPrefs userPrefs) { super(); requireAllNonNull(addressBook, userPrefs); - logger.fine("Initializing with address book: " + addressBook + " and user prefs " + userPrefs); + logger.fine( + "Initializing with address book: " + addressBook + " and user prefs " + userPrefs); this.addressBook = new AddressBook(addressBook); this.userPrefs = new UserPrefs(userPrefs); @@ -41,7 +37,8 @@ public ModelManager() { this(new AddressBook(), new UserPrefs()); } - //=========== UserPrefs ================================================================================== + // =========== UserPrefs + // ================================================================================== @Override public void setUserPrefs(ReadOnlyUserPrefs userPrefs) { @@ -76,7 +73,8 @@ public void setAddressBookFilePath(Path addressBookFilePath) { userPrefs.setAddressBookFilePath(addressBookFilePath); } - //=========== AddressBook ================================================================================ + // =========== AddressBook + // ================================================================================ @Override public void setAddressBook(ReadOnlyAddressBook addressBook) { @@ -112,7 +110,8 @@ public void setPerson(Person target, Person editedPerson) { addressBook.setPerson(target, editedPerson); } - //=========== Filtered Person List Accessors ============================================================= + // =========== Filtered Person List Accessors + // ============================================================= /** * Returns an unmodifiable view of the list of {@code Person} backed by the internal list of @@ -147,5 +146,4 @@ public boolean equals(Object obj) { && userPrefs.equals(other.userPrefs) && filteredPersons.equals(other.filteredPersons); } - } diff --git a/src/main/java/seedu/address/model/ReadOnlyAddressBook.java b/src/main/java/seedu/address/model/ReadOnlyAddressBook.java index 6ddc2cd9a29..1d9271ff1b9 100644 --- a/src/main/java/seedu/address/model/ReadOnlyAddressBook.java +++ b/src/main/java/seedu/address/model/ReadOnlyAddressBook.java @@ -3,15 +3,12 @@ import javafx.collections.ObservableList; import seedu.address.model.person.Person; -/** - * Unmodifiable view of an address book - */ +/** Unmodifiable view of an address book */ public interface ReadOnlyAddressBook { /** - * Returns an unmodifiable view of the persons list. - * This list will not contain any duplicate persons. + * Returns an unmodifiable view of the persons list. This list will not contain any duplicate + * persons. */ ObservableList getPersonList(); - } diff --git a/src/main/java/seedu/address/model/ReadOnlyUserPrefs.java b/src/main/java/seedu/address/model/ReadOnlyUserPrefs.java index befd58a4c73..301e0e9ecc8 100644 --- a/src/main/java/seedu/address/model/ReadOnlyUserPrefs.java +++ b/src/main/java/seedu/address/model/ReadOnlyUserPrefs.java @@ -1,16 +1,12 @@ package seedu.address.model; import java.nio.file.Path; - import seedu.address.commons.core.GuiSettings; -/** - * Unmodifiable view of user prefs. - */ +/** Unmodifiable view of user prefs. */ public interface ReadOnlyUserPrefs { GuiSettings getGuiSettings(); Path getAddressBookFilePath(); - } diff --git a/src/main/java/seedu/address/model/UserPrefs.java b/src/main/java/seedu/address/model/UserPrefs.java index 25a5fd6eab9..b50b06f7d2b 100644 --- a/src/main/java/seedu/address/model/UserPrefs.java +++ b/src/main/java/seedu/address/model/UserPrefs.java @@ -5,33 +5,24 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.Objects; - import seedu.address.commons.core.GuiSettings; -/** - * Represents User's preferences. - */ +/** Represents User's preferences. */ public class UserPrefs implements ReadOnlyUserPrefs { private GuiSettings guiSettings = new GuiSettings(); - private Path addressBookFilePath = Paths.get("data" , "addressbook.json"); + private Path addressBookFilePath = Paths.get("data", "addressbook.json"); - /** - * Creates a {@code UserPrefs} with default values. - */ + /** Creates a {@code UserPrefs} with default values. */ public UserPrefs() {} - /** - * Creates a {@code UserPrefs} with the prefs in {@code userPrefs}. - */ + /** Creates a {@code UserPrefs} with the prefs in {@code userPrefs}. */ public UserPrefs(ReadOnlyUserPrefs userPrefs) { this(); resetData(userPrefs); } - /** - * Resets the existing data of this {@code UserPrefs} with {@code newUserPrefs}. - */ + /** Resets the existing data of this {@code UserPrefs} with {@code newUserPrefs}. */ public void resetData(ReadOnlyUserPrefs newUserPrefs) { requireNonNull(newUserPrefs); setGuiSettings(newUserPrefs.getGuiSettings()); @@ -61,7 +52,7 @@ public boolean equals(Object other) { if (other == this) { return true; } - if (!(other instanceof UserPrefs)) { //this handles null as well. + if (!(other instanceof UserPrefs)) { // this handles null as well. return false; } @@ -83,5 +74,4 @@ public String toString() { sb.append("\nLocal data file location : " + addressBookFilePath); return sb.toString(); } - } diff --git a/src/main/java/seedu/address/model/person/Address.java b/src/main/java/seedu/address/model/person/Address.java index 60472ca22a0..174ebe7ff50 100644 --- a/src/main/java/seedu/address/model/person/Address.java +++ b/src/main/java/seedu/address/model/person/Address.java @@ -4,12 +4,13 @@ import static seedu.address.commons.util.AppUtil.checkArgument; /** - * Represents a Person's address in the address book. - * Guarantees: immutable; is valid as declared in {@link #isValidAddress(String)} + * Represents a Person's address in the address book. Guarantees: immutable; is valid as declared in + * {@link #isValidAddress(String)} */ public class Address { - public static final String MESSAGE_CONSTRAINTS = "Addresses can take any values, and it should not be blank"; + public static final String MESSAGE_CONSTRAINTS = + "Addresses can take any values, and it should not be blank"; /* * The first character of the address must not be a whitespace, @@ -30,9 +31,7 @@ public Address(String address) { value = address; } - /** - * Returns true if a given string is a valid email. - */ + /** Returns true if a given string is a valid email. */ public static boolean isValidAddress(String test) { return test.matches(VALIDATION_REGEX); } @@ -46,12 +45,11 @@ public String toString() { public boolean equals(Object other) { return other == this // short circuit if same object || (other instanceof Address // instanceof handles nulls - && value.equals(((Address) other).value)); // state check + && value.equals(((Address) other).value)); // state check } @Override public int hashCode() { return value.hashCode(); } - } diff --git a/src/main/java/seedu/address/model/person/Email.java b/src/main/java/seedu/address/model/person/Email.java index a5bbe0b6a5f..885b3724bd0 100644 --- a/src/main/java/seedu/address/model/person/Email.java +++ b/src/main/java/seedu/address/model/person/Email.java @@ -4,28 +4,37 @@ import static seedu.address.commons.util.AppUtil.checkArgument; /** - * Represents a Person's email in the address book. - * Guarantees: immutable; is valid as declared in {@link #isValidEmail(String)} + * Represents a Person's email in the address book. Guarantees: immutable; is valid as declared in + * {@link #isValidEmail(String)} */ public class Email { private static final String SPECIAL_CHARACTERS = "!#$%&'*+/=?`{|}~^.-"; - public static final String MESSAGE_CONSTRAINTS = "Emails should be of the format local-part@domain " - + "and adhere to the following constraints:\n" - + "1. The local-part should only contain alphanumeric characters and these special characters, excluding " - + "the parentheses, (" + SPECIAL_CHARACTERS + ") .\n" - + "2. This is followed by a '@' and then a domain name. " - + "The domain name must:\n" - + " - be at least 2 characters long\n" - + " - start and end with alphanumeric characters\n" - + " - consist of alphanumeric characters, a period or a hyphen for the characters in between, if any."; + public static final String MESSAGE_CONSTRAINTS = + "Emails should be of the format local-part@domain " + + "and adhere to the following constraints:\n" + + "1. The local-part should only contain alphanumeric characters and these special characters, excluding " + + "the parentheses, (" + + SPECIAL_CHARACTERS + + ") .\n" + + "2. This is followed by a '@' and then a domain name. " + + "The domain name must:\n" + + " - be at least 2 characters long\n" + + " - start and end with alphanumeric characters\n" + + " - consist of alphanumeric characters, a period or a hyphen for the characters in between, if any."; // alphanumeric and special characters private static final String LOCAL_PART_REGEX = "^[\\w" + SPECIAL_CHARACTERS + "]+"; - private static final String DOMAIN_FIRST_CHARACTER_REGEX = "[^\\W_]"; // alphanumeric characters except underscore - private static final String DOMAIN_MIDDLE_REGEX = "[a-zA-Z0-9.-]*"; // alphanumeric, period and hyphen + private static final String DOMAIN_FIRST_CHARACTER_REGEX = + "[^\\W_]"; // alphanumeric characters except underscore + private static final String DOMAIN_MIDDLE_REGEX = + "[a-zA-Z0-9.-]*"; // alphanumeric, period and hyphen private static final String DOMAIN_LAST_CHARACTER_REGEX = "[^\\W_]$"; - public static final String VALIDATION_REGEX = LOCAL_PART_REGEX + "@" - + DOMAIN_FIRST_CHARACTER_REGEX + DOMAIN_MIDDLE_REGEX + DOMAIN_LAST_CHARACTER_REGEX; + public static final String VALIDATION_REGEX = + LOCAL_PART_REGEX + + "@" + + DOMAIN_FIRST_CHARACTER_REGEX + + DOMAIN_MIDDLE_REGEX + + DOMAIN_LAST_CHARACTER_REGEX; public final String value; @@ -40,9 +49,7 @@ public Email(String email) { value = email; } - /** - * Returns if a given string is a valid email. - */ + /** Returns if a given string is a valid email. */ public static boolean isValidEmail(String test) { return test.matches(VALIDATION_REGEX); } @@ -56,12 +63,11 @@ public String toString() { public boolean equals(Object other) { return other == this // short circuit if same object || (other instanceof Email // instanceof handles nulls - && value.equals(((Email) other).value)); // state check + && value.equals(((Email) other).value)); // state check } @Override public int hashCode() { return value.hashCode(); } - } diff --git a/src/main/java/seedu/address/model/person/Name.java b/src/main/java/seedu/address/model/person/Name.java index 79244d71cf7..ab0ea228a06 100644 --- a/src/main/java/seedu/address/model/person/Name.java +++ b/src/main/java/seedu/address/model/person/Name.java @@ -4,8 +4,8 @@ import static seedu.address.commons.util.AppUtil.checkArgument; /** - * Represents a Person's name in the address book. - * Guarantees: immutable; is valid as declared in {@link #isValidName(String)} + * Represents a Person's name in the address book. Guarantees: immutable; is valid as declared in + * {@link #isValidName(String)} */ public class Name { @@ -31,14 +31,11 @@ public Name(String name) { fullName = name; } - /** - * Returns true if a given string is a valid name. - */ + /** Returns true if a given string is a valid name. */ public static boolean isValidName(String test) { return test.matches(VALIDATION_REGEX); } - @Override public String toString() { return fullName; @@ -48,12 +45,11 @@ public String toString() { public boolean equals(Object other) { return other == this // short circuit if same object || (other instanceof Name // instanceof handles nulls - && fullName.equals(((Name) other).fullName)); // state check + && fullName.equals(((Name) other).fullName)); // state check } @Override public int hashCode() { return fullName.hashCode(); } - } diff --git a/src/main/java/seedu/address/model/person/NameContainsKeywordsPredicate.java b/src/main/java/seedu/address/model/person/NameContainsKeywordsPredicate.java index c9b5868427c..101ad05f28c 100644 --- a/src/main/java/seedu/address/model/person/NameContainsKeywordsPredicate.java +++ b/src/main/java/seedu/address/model/person/NameContainsKeywordsPredicate.java @@ -2,12 +2,9 @@ import java.util.List; import java.util.function.Predicate; - import seedu.address.commons.util.StringUtil; -/** - * Tests that a {@code Person}'s {@code Name} matches any of the keywords given. - */ +/** Tests that a {@code Person}'s {@code Name} matches any of the keywords given. */ public class NameContainsKeywordsPredicate implements Predicate { private final List keywords; @@ -18,14 +15,17 @@ public NameContainsKeywordsPredicate(List keywords) { @Override public boolean test(Person person) { return keywords.stream() - .anyMatch(keyword -> StringUtil.containsWordIgnoreCase(person.getName().fullName, keyword)); + .anyMatch( + keyword -> + StringUtil.containsWordIgnoreCase( + person.getName().fullName, keyword)); } @Override public boolean equals(Object other) { return other == this // short circuit if same object || (other instanceof NameContainsKeywordsPredicate // instanceof handles nulls - && keywords.equals(((NameContainsKeywordsPredicate) other).keywords)); // state check + && keywords.equals( + ((NameContainsKeywordsPredicate) other).keywords)); // state check } - } diff --git a/src/main/java/seedu/address/model/person/Person.java b/src/main/java/seedu/address/model/person/Person.java index 557a7a60cd5..cc77a1480d9 100644 --- a/src/main/java/seedu/address/model/person/Person.java +++ b/src/main/java/seedu/address/model/person/Person.java @@ -6,12 +6,11 @@ import java.util.HashSet; import java.util.Objects; import java.util.Set; - import seedu.address.model.tag.Tag; /** - * Represents a Person in the address book. - * Guarantees: details are present and not null, field values are validated, immutable. + * Represents a Person in the address book. Guarantees: details are present and not null, field + * values are validated, immutable. */ public class Person { @@ -24,9 +23,7 @@ public class Person { private final Address address; private final Set tags = new HashSet<>(); - /** - * Every field must be present and not null. - */ + /** Every field must be present and not null. */ public Person(Name name, Phone phone, Email email, Address address, Set tags) { requireAllNonNull(name, phone, email, address, tags); this.name = name; @@ -53,16 +50,16 @@ public Address getAddress() { } /** - * Returns an immutable tag set, which throws {@code UnsupportedOperationException} - * if modification is attempted. + * Returns an immutable tag set, which throws {@code UnsupportedOperationException} if + * modification is attempted. */ public Set getTags() { return Collections.unmodifiableSet(tags); } /** - * Returns true if both persons of the same name have at least one other identity field that is the same. - * This defines a weaker notion of equality between two persons. + * Returns true if both persons of the same name have at least one other identity field that is + * the same. This defines a weaker notion of equality between two persons. */ public boolean isSamePerson(Person otherPerson) { if (otherPerson == this) { @@ -71,12 +68,13 @@ public boolean isSamePerson(Person otherPerson) { return otherPerson != null && otherPerson.getName().equals(getName()) - && (otherPerson.getPhone().equals(getPhone()) || otherPerson.getEmail().equals(getEmail())); + && (otherPerson.getPhone().equals(getPhone()) + || otherPerson.getEmail().equals(getEmail())); } /** - * Returns true if both persons have the same identity and data fields. - * This defines a stronger notion of equality between two persons. + * Returns true if both persons have the same identity and data fields. This defines a stronger + * notion of equality between two persons. */ @Override public boolean equals(Object other) { @@ -116,5 +114,4 @@ public String toString() { getTags().forEach(builder::append); return builder.toString(); } - } diff --git a/src/main/java/seedu/address/model/person/Phone.java b/src/main/java/seedu/address/model/person/Phone.java index 872c76b382f..a6f9fb04896 100644 --- a/src/main/java/seedu/address/model/person/Phone.java +++ b/src/main/java/seedu/address/model/person/Phone.java @@ -4,12 +4,11 @@ import static seedu.address.commons.util.AppUtil.checkArgument; /** - * Represents a Person's phone number in the address book. - * Guarantees: immutable; is valid as declared in {@link #isValidPhone(String)} + * Represents a Person's phone number in the address book. Guarantees: immutable; is valid as + * declared in {@link #isValidPhone(String)} */ public class Phone { - public static final String MESSAGE_CONSTRAINTS = "Phone numbers should only contain numbers, and it should be at least 3 digits long"; public static final String VALIDATION_REGEX = "\\d{3,}"; @@ -26,9 +25,7 @@ public Phone(String phone) { value = phone; } - /** - * Returns true if a given string is a valid phone number. - */ + /** Returns true if a given string is a valid phone number. */ public static boolean isValidPhone(String test) { return test.matches(VALIDATION_REGEX); } @@ -42,12 +39,11 @@ public String toString() { public boolean equals(Object other) { return other == this // short circuit if same object || (other instanceof Phone // instanceof handles nulls - && value.equals(((Phone) other).value)); // state check + && value.equals(((Phone) other).value)); // state check } @Override public int hashCode() { return value.hashCode(); } - } diff --git a/src/main/java/seedu/address/model/person/UniquePersonList.java b/src/main/java/seedu/address/model/person/UniquePersonList.java index 0fee4fe57e6..8d5c22081e7 100644 --- a/src/main/java/seedu/address/model/person/UniquePersonList.java +++ b/src/main/java/seedu/address/model/person/UniquePersonList.java @@ -5,20 +5,20 @@ import java.util.Iterator; import java.util.List; - import javafx.collections.FXCollections; import javafx.collections.ObservableList; import seedu.address.model.person.exceptions.DuplicatePersonException; import seedu.address.model.person.exceptions.PersonNotFoundException; /** - * A list of persons that enforces uniqueness between its elements and does not allow nulls. - * A person is considered unique by comparing using {@code Person#isSamePerson(Person)}. As such, adding and updating of - * persons uses Person#isSamePerson(Person) for equality so as to ensure that the person being added or updated is - * unique in terms of identity in the UniquePersonList. However, the removal of a person uses Person#equals(Object) so - * as to ensure that the person with exactly the same fields will be removed. + * A list of persons that enforces uniqueness between its elements and does not allow nulls. A + * person is considered unique by comparing using {@code Person#isSamePerson(Person)}. As such, + * adding and updating of persons uses Person#isSamePerson(Person) for equality so as to ensure that + * the person being added or updated is unique in terms of identity in the UniquePersonList. + * However, the removal of a person uses Person#equals(Object) so as to ensure that the person with + * exactly the same fields will be removed. * - * Supports a minimal set of list operations. + *

    Supports a minimal set of list operations. * * @see Person#isSamePerson(Person) */ @@ -28,18 +28,13 @@ public class UniquePersonList implements Iterable { private final ObservableList internalUnmodifiableList = FXCollections.unmodifiableObservableList(internalList); - /** - * Returns true if the list contains an equivalent person as the given argument. - */ + /** Returns true if the list contains an equivalent person as the given argument. */ public boolean contains(Person toCheck) { requireNonNull(toCheck); return internalList.stream().anyMatch(toCheck::isSamePerson); } - /** - * Adds a person to the list. - * The person must not already exist in the list. - */ + /** Adds a person to the list. The person must not already exist in the list. */ public void add(Person toAdd) { requireNonNull(toAdd); if (contains(toAdd)) { @@ -49,9 +44,9 @@ public void add(Person toAdd) { } /** - * Replaces the person {@code target} in the list with {@code editedPerson}. - * {@code target} must exist in the list. - * The person identity of {@code editedPerson} must not be the same as another existing person in the list. + * Replaces the person {@code target} in the list with {@code editedPerson}. {@code target} must + * exist in the list. The person identity of {@code editedPerson} must not be the same as + * another existing person in the list. */ public void setPerson(Person target, Person editedPerson) { requireAllNonNull(target, editedPerson); @@ -68,10 +63,7 @@ public void setPerson(Person target, Person editedPerson) { internalList.set(index, editedPerson); } - /** - * Removes the equivalent person from the list. - * The person must exist in the list. - */ + /** Removes the equivalent person from the list. The person must exist in the list. */ public void remove(Person toRemove) { requireNonNull(toRemove); if (!internalList.remove(toRemove)) { @@ -85,8 +77,8 @@ public void setPersons(UniquePersonList replacement) { } /** - * Replaces the contents of this list with {@code persons}. - * {@code persons} must not contain duplicate persons. + * Replaces the contents of this list with {@code persons}. {@code persons} must not contain + * duplicate persons. */ public void setPersons(List persons) { requireAllNonNull(persons); @@ -97,9 +89,7 @@ public void setPersons(List persons) { internalList.setAll(persons); } - /** - * Returns the backing list as an unmodifiable {@code ObservableList}. - */ + /** Returns the backing list as an unmodifiable {@code ObservableList}. */ public ObservableList asUnmodifiableObservableList() { return internalUnmodifiableList; } @@ -121,9 +111,7 @@ public int hashCode() { return internalList.hashCode(); } - /** - * Returns true if {@code persons} contains only unique persons. - */ + /** Returns true if {@code persons} contains only unique persons. */ private boolean personsAreUnique(List persons) { for (int i = 0; i < persons.size() - 1; i++) { for (int j = i + 1; j < persons.size(); j++) { diff --git a/src/main/java/seedu/address/model/person/exceptions/DuplicatePersonException.java b/src/main/java/seedu/address/model/person/exceptions/DuplicatePersonException.java index d7290f59442..d94fc89bf31 100644 --- a/src/main/java/seedu/address/model/person/exceptions/DuplicatePersonException.java +++ b/src/main/java/seedu/address/model/person/exceptions/DuplicatePersonException.java @@ -1,8 +1,8 @@ package seedu.address.model.person.exceptions; /** - * Signals that the operation will result in duplicate Persons (Persons are considered duplicates if they have the same - * identity). + * Signals that the operation will result in duplicate Persons (Persons are considered duplicates if + * they have the same identity). */ public class DuplicatePersonException extends RuntimeException { public DuplicatePersonException() { diff --git a/src/main/java/seedu/address/model/person/exceptions/PersonNotFoundException.java b/src/main/java/seedu/address/model/person/exceptions/PersonNotFoundException.java index fa764426ca7..b7dccd3d2f4 100644 --- a/src/main/java/seedu/address/model/person/exceptions/PersonNotFoundException.java +++ b/src/main/java/seedu/address/model/person/exceptions/PersonNotFoundException.java @@ -1,6 +1,4 @@ package seedu.address.model.person.exceptions; -/** - * Signals that the operation is unable to find the specified person. - */ +/** Signals that the operation is unable to find the specified person. */ public class PersonNotFoundException extends RuntimeException {} diff --git a/src/main/java/seedu/address/model/tag/Tag.java b/src/main/java/seedu/address/model/tag/Tag.java index b0ea7e7dad7..ed20a9d3538 100644 --- a/src/main/java/seedu/address/model/tag/Tag.java +++ b/src/main/java/seedu/address/model/tag/Tag.java @@ -4,8 +4,8 @@ import static seedu.address.commons.util.AppUtil.checkArgument; /** - * Represents a Tag in the address book. - * Guarantees: immutable; name is valid as declared in {@link #isValidTagName(String)} + * Represents a Tag in the address book. Guarantees: immutable; name is valid as declared in {@link + * #isValidTagName(String)} */ public class Tag { @@ -25,9 +25,7 @@ public Tag(String tagName) { this.tagName = tagName; } - /** - * Returns true if a given string is a valid tag name. - */ + /** Returns true if a given string is a valid tag name. */ public static boolean isValidTagName(String test) { return test.matches(VALIDATION_REGEX); } @@ -36,7 +34,7 @@ public static boolean isValidTagName(String test) { public boolean equals(Object other) { return other == this // short circuit if same object || (other instanceof Tag // instanceof handles nulls - && tagName.equals(((Tag) other).tagName)); // state check + && tagName.equals(((Tag) other).tagName)); // state check } @Override @@ -44,11 +42,8 @@ public int hashCode() { return tagName.hashCode(); } - /** - * Format state as text for viewing. - */ + /** Format state as text for viewing. */ public String toString() { return '[' + tagName + ']'; } - } diff --git a/src/main/java/seedu/address/model/util/SampleDataUtil.java b/src/main/java/seedu/address/model/util/SampleDataUtil.java index 1806da4facf..338bdbe460e 100644 --- a/src/main/java/seedu/address/model/util/SampleDataUtil.java +++ b/src/main/java/seedu/address/model/util/SampleDataUtil.java @@ -3,7 +3,6 @@ import java.util.Arrays; import java.util.Set; import java.util.stream.Collectors; - import seedu.address.model.AddressBook; import seedu.address.model.ReadOnlyAddressBook; import seedu.address.model.person.Address; @@ -13,30 +12,46 @@ import seedu.address.model.person.Phone; import seedu.address.model.tag.Tag; -/** - * Contains utility methods for populating {@code AddressBook} with sample data. - */ +/** Contains utility methods for populating {@code AddressBook} with sample data. */ public class SampleDataUtil { public static Person[] getSamplePersons() { return new Person[] { - new Person(new Name("Alex Yeoh"), new Phone("87438807"), new Email("alexyeoh@example.com"), - new Address("Blk 30 Geylang Street 29, #06-40"), - getTagSet("friends")), - new Person(new Name("Bernice Yu"), new Phone("99272758"), new Email("berniceyu@example.com"), - new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), - getTagSet("colleagues", "friends")), - new Person(new Name("Charlotte Oliveiro"), new Phone("93210283"), new Email("charlotte@example.com"), - new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), - getTagSet("neighbours")), - new Person(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com"), - new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), - getTagSet("family")), - new Person(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com"), - new Address("Blk 47 Tampines Street 20, #17-35"), - getTagSet("classmates")), - new Person(new Name("Roy Balakrishnan"), new Phone("92624417"), new Email("royb@example.com"), - new Address("Blk 45 Aljunied Street 85, #11-31"), - getTagSet("colleagues")) + new Person( + new Name("Alex Yeoh"), + new Phone("87438807"), + new Email("alexyeoh@example.com"), + new Address("Blk 30 Geylang Street 29, #06-40"), + getTagSet("friends")), + new Person( + new Name("Bernice Yu"), + new Phone("99272758"), + new Email("berniceyu@example.com"), + new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), + getTagSet("colleagues", "friends")), + new Person( + new Name("Charlotte Oliveiro"), + new Phone("93210283"), + new Email("charlotte@example.com"), + new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), + getTagSet("neighbours")), + new Person( + new Name("David Li"), + new Phone("91031282"), + new Email("lidavid@example.com"), + new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), + getTagSet("family")), + new Person( + new Name("Irfan Ibrahim"), + new Phone("92492021"), + new Email("irfan@example.com"), + new Address("Blk 47 Tampines Street 20, #17-35"), + getTagSet("classmates")), + new Person( + new Name("Roy Balakrishnan"), + new Phone("92624417"), + new Email("royb@example.com"), + new Address("Blk 45 Aljunied Street 85, #11-31"), + getTagSet("colleagues")) }; } @@ -48,13 +63,8 @@ public static ReadOnlyAddressBook getSampleAddressBook() { return sampleAb; } - /** - * Returns a tag set containing the list of strings given. - */ + /** Returns a tag set containing the list of strings given. */ public static Set getTagSet(String... strings) { - return Arrays.stream(strings) - .map(Tag::new) - .collect(Collectors.toSet()); + return Arrays.stream(strings).map(Tag::new).collect(Collectors.toSet()); } - } diff --git a/src/main/java/seedu/address/storage/AddressBookStorage.java b/src/main/java/seedu/address/storage/AddressBookStorage.java index 4599182b3f9..b985eb7e4b9 100644 --- a/src/main/java/seedu/address/storage/AddressBookStorage.java +++ b/src/main/java/seedu/address/storage/AddressBookStorage.java @@ -3,43 +3,36 @@ import java.io.IOException; import java.nio.file.Path; import java.util.Optional; - import seedu.address.commons.exceptions.DataConversionException; import seedu.address.model.ReadOnlyAddressBook; -/** - * Represents a storage for {@link seedu.address.model.AddressBook}. - */ +/** Represents a storage for {@link seedu.address.model.AddressBook}. */ public interface AddressBookStorage { - /** - * Returns the file path of the data file. - */ + /** Returns the file path of the data file. */ Path getAddressBookFilePath(); /** - * Returns AddressBook data as a {@link ReadOnlyAddressBook}. - * Returns {@code Optional.empty()} if storage file is not found. + * Returns AddressBook data as a {@link ReadOnlyAddressBook}. Returns {@code Optional.empty()} + * if storage file is not found. + * * @throws DataConversionException if the data in storage is not in the expected format. * @throws IOException if there was any problem when reading from the storage. */ Optional readAddressBook() throws DataConversionException, IOException; - /** - * @see #getAddressBookFilePath() - */ - Optional readAddressBook(Path filePath) throws DataConversionException, IOException; + /** @see #getAddressBookFilePath() */ + Optional readAddressBook(Path filePath) + throws DataConversionException, IOException; /** * Saves the given {@link ReadOnlyAddressBook} to the storage. + * * @param addressBook cannot be null. * @throws IOException if there was any problem writing to the file. */ void saveAddressBook(ReadOnlyAddressBook addressBook) throws IOException; - /** - * @see #saveAddressBook(ReadOnlyAddressBook) - */ + /** @see #saveAddressBook(ReadOnlyAddressBook) */ void saveAddressBook(ReadOnlyAddressBook addressBook, Path filePath) throws IOException; - } diff --git a/src/main/java/seedu/address/storage/JsonAdaptedPerson.java b/src/main/java/seedu/address/storage/JsonAdaptedPerson.java index a6321cec2ea..4bf8cbaad54 100644 --- a/src/main/java/seedu/address/storage/JsonAdaptedPerson.java +++ b/src/main/java/seedu/address/storage/JsonAdaptedPerson.java @@ -1,14 +1,12 @@ package seedu.address.storage; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; - import seedu.address.commons.exceptions.IllegalValueException; import seedu.address.model.person.Address; import seedu.address.model.person.Email; @@ -17,9 +15,7 @@ import seedu.address.model.person.Phone; import seedu.address.model.tag.Tag; -/** - * Jackson-friendly version of {@link Person}. - */ +/** Jackson-friendly version of {@link Person}. */ class JsonAdaptedPerson { public static final String MISSING_FIELD_MESSAGE_FORMAT = "Person's %s field is missing!"; @@ -30,12 +26,13 @@ class JsonAdaptedPerson { private final String address; private final List tagged = new ArrayList<>(); - /** - * Constructs a {@code JsonAdaptedPerson} with the given person details. - */ + /** Constructs a {@code JsonAdaptedPerson} with the given person details. */ @JsonCreator - public JsonAdaptedPerson(@JsonProperty("name") String name, @JsonProperty("phone") String phone, - @JsonProperty("email") String email, @JsonProperty("address") String address, + public JsonAdaptedPerson( + @JsonProperty("name") String name, + @JsonProperty("phone") String phone, + @JsonProperty("email") String email, + @JsonProperty("address") String address, @JsonProperty("tagged") List tagged) { this.name = name; this.phone = phone; @@ -46,23 +43,21 @@ public JsonAdaptedPerson(@JsonProperty("name") String name, @JsonProperty("phone } } - /** - * Converts a given {@code Person} into this class for Jackson use. - */ + /** Converts a given {@code Person} into this class for Jackson use. */ public JsonAdaptedPerson(Person source) { name = source.getName().fullName; phone = source.getPhone().value; email = source.getEmail().value; address = source.getAddress().value; - tagged.addAll(source.getTags().stream() - .map(JsonAdaptedTag::new) - .collect(Collectors.toList())); + tagged.addAll( + source.getTags().stream().map(JsonAdaptedTag::new).collect(Collectors.toList())); } /** * Converts this Jackson-friendly adapted person object into the model's {@code Person} object. * - * @throws IllegalValueException if there were any data constraints violated in the adapted person. + * @throws IllegalValueException if there were any data constraints violated in the adapted + * person. */ public Person toModelType() throws IllegalValueException { final List personTags = new ArrayList<>(); @@ -71,7 +66,8 @@ public Person toModelType() throws IllegalValueException { } if (name == null) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName())); + throw new IllegalValueException( + String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName())); } if (!Name.isValidName(name)) { throw new IllegalValueException(Name.MESSAGE_CONSTRAINTS); @@ -79,7 +75,8 @@ public Person toModelType() throws IllegalValueException { final Name modelName = new Name(name); if (phone == null) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Phone.class.getSimpleName())); + throw new IllegalValueException( + String.format(MISSING_FIELD_MESSAGE_FORMAT, Phone.class.getSimpleName())); } if (!Phone.isValidPhone(phone)) { throw new IllegalValueException(Phone.MESSAGE_CONSTRAINTS); @@ -87,7 +84,8 @@ public Person toModelType() throws IllegalValueException { final Phone modelPhone = new Phone(phone); if (email == null) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Email.class.getSimpleName())); + throw new IllegalValueException( + String.format(MISSING_FIELD_MESSAGE_FORMAT, Email.class.getSimpleName())); } if (!Email.isValidEmail(email)) { throw new IllegalValueException(Email.MESSAGE_CONSTRAINTS); @@ -95,7 +93,8 @@ public Person toModelType() throws IllegalValueException { final Email modelEmail = new Email(email); if (address == null) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Address.class.getSimpleName())); + throw new IllegalValueException( + String.format(MISSING_FIELD_MESSAGE_FORMAT, Address.class.getSimpleName())); } if (!Address.isValidAddress(address)) { throw new IllegalValueException(Address.MESSAGE_CONSTRAINTS); @@ -105,5 +104,4 @@ public Person toModelType() throws IllegalValueException { final Set modelTags = new HashSet<>(personTags); return new Person(modelName, modelPhone, modelEmail, modelAddress, modelTags); } - } diff --git a/src/main/java/seedu/address/storage/JsonAdaptedTag.java b/src/main/java/seedu/address/storage/JsonAdaptedTag.java index 0df22bdb754..650c8d46a1e 100644 --- a/src/main/java/seedu/address/storage/JsonAdaptedTag.java +++ b/src/main/java/seedu/address/storage/JsonAdaptedTag.java @@ -2,28 +2,21 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; - import seedu.address.commons.exceptions.IllegalValueException; import seedu.address.model.tag.Tag; -/** - * Jackson-friendly version of {@link Tag}. - */ +/** Jackson-friendly version of {@link Tag}. */ class JsonAdaptedTag { private final String tagName; - /** - * Constructs a {@code JsonAdaptedTag} with the given {@code tagName}. - */ + /** Constructs a {@code JsonAdaptedTag} with the given {@code tagName}. */ @JsonCreator public JsonAdaptedTag(String tagName) { this.tagName = tagName; } - /** - * Converts a given {@code Tag} into this class for Jackson use. - */ + /** Converts a given {@code Tag} into this class for Jackson use. */ public JsonAdaptedTag(Tag source) { tagName = source.tagName; } @@ -44,5 +37,4 @@ public Tag toModelType() throws IllegalValueException { } return new Tag(tagName); } - } diff --git a/src/main/java/seedu/address/storage/JsonAddressBookStorage.java b/src/main/java/seedu/address/storage/JsonAddressBookStorage.java index dfab9daaa0d..338e8f4d357 100644 --- a/src/main/java/seedu/address/storage/JsonAddressBookStorage.java +++ b/src/main/java/seedu/address/storage/JsonAddressBookStorage.java @@ -6,7 +6,6 @@ import java.nio.file.Path; import java.util.Optional; import java.util.logging.Logger; - import seedu.address.commons.core.LogsCenter; import seedu.address.commons.exceptions.DataConversionException; import seedu.address.commons.exceptions.IllegalValueException; @@ -14,9 +13,7 @@ import seedu.address.commons.util.JsonUtil; import seedu.address.model.ReadOnlyAddressBook; -/** - * A class to access AddressBook data stored as a json file on the hard disk. - */ +/** A class to access AddressBook data stored as a json file on the hard disk. */ public class JsonAddressBookStorage implements AddressBookStorage { private static final Logger logger = LogsCenter.getLogger(JsonAddressBookStorage.class); @@ -42,11 +39,12 @@ public Optional readAddressBook() throws DataConversionExce * @param filePath location of the data. Cannot be null. * @throws DataConversionException if the file is not in the correct format. */ - public Optional readAddressBook(Path filePath) throws DataConversionException { + public Optional readAddressBook(Path filePath) + throws DataConversionException { requireNonNull(filePath); - Optional jsonAddressBook = JsonUtil.readJsonFile( - filePath, JsonSerializableAddressBook.class); + Optional jsonAddressBook = + JsonUtil.readJsonFile(filePath, JsonSerializableAddressBook.class); if (!jsonAddressBook.isPresent()) { return Optional.empty(); } @@ -76,5 +74,4 @@ public void saveAddressBook(ReadOnlyAddressBook addressBook, Path filePath) thro FileUtil.createIfMissing(filePath); JsonUtil.saveJsonFile(new JsonSerializableAddressBook(addressBook), filePath); } - } diff --git a/src/main/java/seedu/address/storage/JsonSerializableAddressBook.java b/src/main/java/seedu/address/storage/JsonSerializableAddressBook.java index 5efd834091d..412b4256228 100644 --- a/src/main/java/seedu/address/storage/JsonSerializableAddressBook.java +++ b/src/main/java/seedu/address/storage/JsonSerializableAddressBook.java @@ -1,31 +1,26 @@ package seedu.address.storage; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonRootName; - +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; import seedu.address.commons.exceptions.IllegalValueException; import seedu.address.model.AddressBook; import seedu.address.model.ReadOnlyAddressBook; import seedu.address.model.person.Person; -/** - * An Immutable AddressBook that is serializable to JSON format. - */ +/** An Immutable AddressBook that is serializable to JSON format. */ @JsonRootName(value = "addressbook") class JsonSerializableAddressBook { - public static final String MESSAGE_DUPLICATE_PERSON = "Persons list contains duplicate person(s)."; + public static final String MESSAGE_DUPLICATE_PERSON = + "Persons list contains duplicate person(s)."; private final List persons = new ArrayList<>(); - /** - * Constructs a {@code JsonSerializableAddressBook} with the given persons. - */ + /** Constructs a {@code JsonSerializableAddressBook} with the given persons. */ @JsonCreator public JsonSerializableAddressBook(@JsonProperty("persons") List persons) { this.persons.addAll(persons); @@ -34,10 +29,15 @@ public JsonSerializableAddressBook(@JsonProperty("persons") List readUserPrefs() throws DataConversionException { /** * Similar to {@link #readUserPrefs()} + * * @param prefsFilePath location of the data. Cannot be null. * @throws DataConversionException if the file format is not as expected. */ @@ -43,5 +41,4 @@ public Optional readUserPrefs(Path prefsFilePath) throws DataConversi public void saveUserPrefs(ReadOnlyUserPrefs userPrefs) throws IOException { JsonUtil.saveJsonFile(userPrefs, filePath); } - } diff --git a/src/main/java/seedu/address/storage/Storage.java b/src/main/java/seedu/address/storage/Storage.java index beda8bd9f11..34896b7a184 100644 --- a/src/main/java/seedu/address/storage/Storage.java +++ b/src/main/java/seedu/address/storage/Storage.java @@ -3,15 +3,12 @@ import java.io.IOException; import java.nio.file.Path; import java.util.Optional; - import seedu.address.commons.exceptions.DataConversionException; import seedu.address.model.ReadOnlyAddressBook; import seedu.address.model.ReadOnlyUserPrefs; import seedu.address.model.UserPrefs; -/** - * API of the Storage component - */ +/** API of the Storage component */ public interface Storage extends AddressBookStorage, UserPrefsStorage { @Override @@ -28,5 +25,4 @@ public interface Storage extends AddressBookStorage, UserPrefsStorage { @Override void saveAddressBook(ReadOnlyAddressBook addressBook) throws IOException; - } diff --git a/src/main/java/seedu/address/storage/StorageManager.java b/src/main/java/seedu/address/storage/StorageManager.java index e4f452b6cbf..856b024ce9f 100644 --- a/src/main/java/seedu/address/storage/StorageManager.java +++ b/src/main/java/seedu/address/storage/StorageManager.java @@ -4,24 +4,21 @@ import java.nio.file.Path; import java.util.Optional; import java.util.logging.Logger; - import seedu.address.commons.core.LogsCenter; import seedu.address.commons.exceptions.DataConversionException; import seedu.address.model.ReadOnlyAddressBook; import seedu.address.model.ReadOnlyUserPrefs; import seedu.address.model.UserPrefs; -/** - * Manages storage of AddressBook data in local storage. - */ +/** Manages storage of AddressBook data in local storage. */ public class StorageManager implements Storage { private static final Logger logger = LogsCenter.getLogger(StorageManager.class); private AddressBookStorage addressBookStorage; private UserPrefsStorage userPrefsStorage; - - public StorageManager(AddressBookStorage addressBookStorage, UserPrefsStorage userPrefsStorage) { + public StorageManager( + AddressBookStorage addressBookStorage, UserPrefsStorage userPrefsStorage) { super(); this.addressBookStorage = addressBookStorage; this.userPrefsStorage = userPrefsStorage; @@ -44,7 +41,6 @@ public void saveUserPrefs(ReadOnlyUserPrefs userPrefs) throws IOException { userPrefsStorage.saveUserPrefs(userPrefs); } - // ================ AddressBook methods ============================== @Override @@ -53,12 +49,14 @@ public Path getAddressBookFilePath() { } @Override - public Optional readAddressBook() throws DataConversionException, IOException { + public Optional readAddressBook() + throws DataConversionException, IOException { return readAddressBook(addressBookStorage.getAddressBookFilePath()); } @Override - public Optional readAddressBook(Path filePath) throws DataConversionException, IOException { + public Optional readAddressBook(Path filePath) + throws DataConversionException, IOException { logger.fine("Attempting to read data from file: " + filePath); return addressBookStorage.readAddressBook(filePath); } @@ -73,5 +71,4 @@ public void saveAddressBook(ReadOnlyAddressBook addressBook, Path filePath) thro logger.fine("Attempting to write to data file: " + filePath); addressBookStorage.saveAddressBook(addressBook, filePath); } - } diff --git a/src/main/java/seedu/address/storage/UserPrefsStorage.java b/src/main/java/seedu/address/storage/UserPrefsStorage.java index 29eef178dbc..2593e53062c 100644 --- a/src/main/java/seedu/address/storage/UserPrefsStorage.java +++ b/src/main/java/seedu/address/storage/UserPrefsStorage.java @@ -3,24 +3,20 @@ import java.io.IOException; import java.nio.file.Path; import java.util.Optional; - import seedu.address.commons.exceptions.DataConversionException; import seedu.address.model.ReadOnlyUserPrefs; import seedu.address.model.UserPrefs; -/** - * Represents a storage for {@link seedu.address.model.UserPrefs}. - */ +/** Represents a storage for {@link seedu.address.model.UserPrefs}. */ public interface UserPrefsStorage { - /** - * Returns the file path of the UserPrefs data file. - */ + /** Returns the file path of the UserPrefs data file. */ Path getUserPrefsFilePath(); /** - * Returns UserPrefs data from storage. - * Returns {@code Optional.empty()} if storage file is not found. + * Returns UserPrefs data from storage. Returns {@code Optional.empty()} if storage file is not + * found. + * * @throws DataConversionException if the data in storage is not in the expected format. * @throws IOException if there was any problem when reading from the storage. */ @@ -28,9 +24,9 @@ public interface UserPrefsStorage { /** * Saves the given {@link seedu.address.model.ReadOnlyUserPrefs} to the storage. + * * @param userPrefs cannot be null. * @throws IOException if there was any problem writing to the file. */ void saveUserPrefs(ReadOnlyUserPrefs userPrefs) throws IOException; - } diff --git a/src/main/java/seedu/address/ui/CommandBox.java b/src/main/java/seedu/address/ui/CommandBox.java index 7d76e691f52..db48477bf01 100644 --- a/src/main/java/seedu/address/ui/CommandBox.java +++ b/src/main/java/seedu/address/ui/CommandBox.java @@ -8,9 +8,7 @@ import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.logic.parser.exceptions.ParseException; -/** - * The UI component that is responsible for receiving user command inputs. - */ +/** The UI component that is responsible for receiving user command inputs. */ public class CommandBox extends UiPart { public static final String ERROR_STYLE_CLASS = "error"; @@ -18,19 +16,18 @@ public class CommandBox extends UiPart { private final CommandExecutor commandExecutor; - @FXML - private TextField commandTextField; + @FXML private TextField commandTextField; public CommandBox(CommandExecutor commandExecutor) { super(FXML); this.commandExecutor = commandExecutor; // calls #setStyleToDefault() whenever there is a change to the text of the command box. - commandTextField.textProperty().addListener((unused1, unused2, unused3) -> setStyleToDefault()); + commandTextField + .textProperty() + .addListener((unused1, unused2, unused3) -> setStyleToDefault()); } - /** - * Handles the Enter button pressed event. - */ + /** Handles the Enter button pressed event. */ @FXML private void handleCommandEntered() { try { @@ -41,16 +38,12 @@ private void handleCommandEntered() { } } - /** - * Sets the command box style to use the default style. - */ + /** Sets the command box style to use the default style. */ private void setStyleToDefault() { commandTextField.getStyleClass().remove(ERROR_STYLE_CLASS); } - /** - * Sets the command box style to indicate a failed command. - */ + /** Sets the command box style to indicate a failed command. */ private void setStyleToIndicateCommandFailure() { ObservableList styleClass = commandTextField.getStyleClass(); @@ -61,9 +54,7 @@ private void setStyleToIndicateCommandFailure() { styleClass.add(ERROR_STYLE_CLASS); } - /** - * Represents a function that can execute commands. - */ + /** Represents a function that can execute commands. */ @FunctionalInterface public interface CommandExecutor { /** @@ -73,5 +64,4 @@ public interface CommandExecutor { */ CommandResult execute(String commandText) throws CommandException, ParseException; } - } diff --git a/src/main/java/seedu/address/ui/HelpWindow.java b/src/main/java/seedu/address/ui/HelpWindow.java index 9a665915949..b436512fb4a 100644 --- a/src/main/java/seedu/address/ui/HelpWindow.java +++ b/src/main/java/seedu/address/ui/HelpWindow.java @@ -1,7 +1,6 @@ package seedu.address.ui; import java.util.logging.Logger; - import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.Label; @@ -10,22 +9,19 @@ import javafx.stage.Stage; import seedu.address.commons.core.LogsCenter; -/** - * Controller for a help page - */ +/** Controller for a help page */ public class HelpWindow extends UiPart { - public static final String USERGUIDE_URL = "https://se-education.org/addressbook-level3/UserGuide.html"; + public static final String USERGUIDE_URL = + "https://se-education.org/addressbook-level3/UserGuide.html"; public static final String HELP_MESSAGE = "Refer to the user guide: " + USERGUIDE_URL; private static final Logger logger = LogsCenter.getLogger(HelpWindow.class); private static final String FXML = "HelpWindow.fxml"; - @FXML - private Button copyButton; + @FXML private Button copyButton; - @FXML - private Label helpMessage; + @FXML private Label helpMessage; /** * Creates a new HelpWindow. @@ -37,30 +33,21 @@ public HelpWindow(Stage root) { helpMessage.setText(HELP_MESSAGE); } - /** - * Creates a new HelpWindow. - */ + /** Creates a new HelpWindow. */ public HelpWindow() { this(new Stage()); } /** * Shows the help window. + * * @throws IllegalStateException - *

      - *
    • - * if this method is called on a thread other than the JavaFX Application Thread. - *
    • - *
    • - * if this method is called during animation or layout processing. - *
    • - *
    • - * if this method is called on the primary stage. - *
    • - *
    • - * if {@code dialogStage} is already showing. - *
    • - *
    + *
      + *
    • if this method is called on a thread other than the JavaFX Application Thread. + *
    • if this method is called during animation or layout processing. + *
    • if this method is called on the primary stage. + *
    • if {@code dialogStage} is already showing. + *
    */ public void show() { logger.fine("Showing help page about the application."); @@ -68,30 +55,22 @@ public void show() { getRoot().centerOnScreen(); } - /** - * Returns true if the help window is currently being shown. - */ + /** Returns true if the help window is currently being shown. */ public boolean isShowing() { return getRoot().isShowing(); } - /** - * Hides the help window. - */ + /** Hides the help window. */ public void hide() { getRoot().hide(); } - /** - * Focuses on the help window. - */ + /** Focuses on the help window. */ public void focus() { getRoot().requestFocus(); } - /** - * Copies the URL to the user guide to the clipboard. - */ + /** Copies the URL to the user guide to the clipboard. */ @FXML private void copyUrl() { final Clipboard clipboard = Clipboard.getSystemClipboard(); diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 90bbf11de97..f970f4f5871 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -1,7 +1,6 @@ package seedu.address.ui; import java.util.logging.Logger; - import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.MenuItem; @@ -18,8 +17,8 @@ import seedu.address.logic.parser.exceptions.ParseException; /** - * The Main Window. Provides the basic application layout containing - * a menu bar and space where other JavaFX elements can be placed. + * The Main Window. Provides the basic application layout containing a menu bar and space where + * other JavaFX elements can be placed. */ public class MainWindow extends UiPart { @@ -35,20 +34,15 @@ public class MainWindow extends UiPart { private ResultDisplay resultDisplay; private HelpWindow helpWindow; - @FXML - private StackPane commandBoxPlaceholder; + @FXML private StackPane commandBoxPlaceholder; - @FXML - private MenuItem helpMenuItem; + @FXML private MenuItem helpMenuItem; - @FXML - private StackPane personListPanelPlaceholder; + @FXML private StackPane personListPanelPlaceholder; - @FXML - private StackPane resultDisplayPlaceholder; + @FXML private StackPane resultDisplayPlaceholder; - @FXML - private StackPane statusbarPlaceholder; + @FXML private StackPane statusbarPlaceholder; public MainWindow(Stage primaryStage, Logic logic) { super(FXML, primaryStage); @@ -75,6 +69,7 @@ private void setAccelerators() { /** * Sets the accelerator of a MenuItem. + * * @param keyCombination the KeyCombination value of the accelerator */ private void setAccelerator(MenuItem menuItem, KeyCombination keyCombination) { @@ -95,17 +90,19 @@ private void setAccelerator(MenuItem menuItem, KeyCombination keyCombination) { * help window purposely so to support accelerators even when focus is * in CommandBox or ResultDisplay. */ - getRoot().addEventFilter(KeyEvent.KEY_PRESSED, event -> { - if (event.getTarget() instanceof TextInputControl && keyCombination.match(event)) { - menuItem.getOnAction().handle(new ActionEvent()); - event.consume(); - } - }); + getRoot() + .addEventFilter( + KeyEvent.KEY_PRESSED, + event -> { + if (event.getTarget() instanceof TextInputControl + && keyCombination.match(event)) { + menuItem.getOnAction().handle(new ActionEvent()); + event.consume(); + } + }); } - /** - * Fills up all the placeholders of this window. - */ + /** Fills up all the placeholders of this window. */ void fillInnerParts() { personListPanel = new PersonListPanel(logic.getFilteredPersonList()); personListPanelPlaceholder.getChildren().add(personListPanel.getRoot()); @@ -120,9 +117,7 @@ void fillInnerParts() { commandBoxPlaceholder.getChildren().add(commandBox.getRoot()); } - /** - * Sets the default size based on {@code guiSettings}. - */ + /** Sets the default size based on {@code guiSettings}. */ private void setWindowDefaultSize(GuiSettings guiSettings) { primaryStage.setHeight(guiSettings.getWindowHeight()); primaryStage.setWidth(guiSettings.getWindowWidth()); @@ -132,9 +127,7 @@ private void setWindowDefaultSize(GuiSettings guiSettings) { } } - /** - * Opens the help window or focuses on it if it's already opened. - */ + /** Opens the help window or focuses on it if it's already opened. */ @FXML public void handleHelp() { if (!helpWindow.isShowing()) { @@ -148,13 +141,15 @@ void show() { primaryStage.show(); } - /** - * Closes the application. - */ + /** Closes the application. */ @FXML private void handleExit() { - GuiSettings guiSettings = new GuiSettings(primaryStage.getWidth(), primaryStage.getHeight(), - (int) primaryStage.getX(), (int) primaryStage.getY()); + GuiSettings guiSettings = + new GuiSettings( + primaryStage.getWidth(), + primaryStage.getHeight(), + (int) primaryStage.getX(), + (int) primaryStage.getY()); logic.setGuiSettings(guiSettings); helpWindow.hide(); primaryStage.hide(); @@ -169,7 +164,8 @@ public PersonListPanel getPersonListPanel() { * * @see seedu.address.logic.Logic#execute(String) */ - private CommandResult executeCommand(String commandText) throws CommandException, ParseException { + private CommandResult executeCommand(String commandText) + throws CommandException, ParseException { try { CommandResult commandResult = logic.execute(commandText); logger.info("Result: " + commandResult.getFeedbackToUser()); diff --git a/src/main/java/seedu/address/ui/PersonCard.java b/src/main/java/seedu/address/ui/PersonCard.java index 0684b088868..ee514bad5f7 100644 --- a/src/main/java/seedu/address/ui/PersonCard.java +++ b/src/main/java/seedu/address/ui/PersonCard.java @@ -1,7 +1,6 @@ package seedu.address.ui; import java.util.Comparator; - import javafx.fxml.FXML; import javafx.scene.control.Label; import javafx.scene.layout.FlowPane; @@ -9,37 +8,28 @@ import javafx.scene.layout.Region; import seedu.address.model.person.Person; -/** - * An UI component that displays information of a {@code Person}. - */ +/** An UI component that displays information of a {@code Person}. */ public class PersonCard extends UiPart { private static final String FXML = "PersonListCard.fxml"; /** - * Note: Certain keywords such as "location" and "resources" are reserved keywords in JavaFX. - * As a consequence, UI elements' variable names cannot be set to such keywords - * or an exception will be thrown by JavaFX during runtime. + * Note: Certain keywords such as "location" and "resources" are reserved keywords in JavaFX. As + * a consequence, UI elements' variable names cannot be set to such keywords or an exception + * will be thrown by JavaFX during runtime. * - * @see
    The issue on AddressBook level 4 + * @see The issue on + * AddressBook level 4 */ - public final Person person; - @FXML - private HBox cardPane; - @FXML - private Label name; - @FXML - private Label id; - @FXML - private Label phone; - @FXML - private Label address; - @FXML - private Label email; - @FXML - private FlowPane tags; + @FXML private HBox cardPane; + @FXML private Label name; + @FXML private Label id; + @FXML private Label phone; + @FXML private Label address; + @FXML private Label email; + @FXML private FlowPane tags; public PersonCard(Person person, int displayedIndex) { super(FXML); @@ -49,7 +39,8 @@ public PersonCard(Person person, int displayedIndex) { phone.setText(person.getPhone().value); address.setText(person.getAddress().value); email.setText(person.getEmail().value); - person.getTags().stream() + person.getTags() + .stream() .sorted(Comparator.comparing(tag -> tag.tagName)) .forEach(tag -> tags.getChildren().add(new Label(tag.tagName))); } @@ -68,7 +59,6 @@ public boolean equals(Object other) { // state check PersonCard card = (PersonCard) other; - return id.getText().equals(card.id.getText()) - && person.equals(card.person); + return id.getText().equals(card.id.getText()) && person.equals(card.person); } } diff --git a/src/main/java/seedu/address/ui/PersonListPanel.java b/src/main/java/seedu/address/ui/PersonListPanel.java index 1328917096e..fa1d8f0c63e 100644 --- a/src/main/java/seedu/address/ui/PersonListPanel.java +++ b/src/main/java/seedu/address/ui/PersonListPanel.java @@ -1,7 +1,6 @@ package seedu.address.ui; import java.util.logging.Logger; - import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.scene.control.ListCell; @@ -10,15 +9,12 @@ import seedu.address.commons.core.LogsCenter; import seedu.address.model.person.Person; -/** - * Panel containing the list of persons. - */ +/** Panel containing the list of persons. */ public class PersonListPanel extends UiPart { private static final String FXML = "PersonListPanel.fxml"; private final Logger logger = LogsCenter.getLogger(PersonListPanel.class); - @FXML - private ListView personListView; + @FXML private ListView personListView; public PersonListPanel(ObservableList personList) { super(FXML); @@ -27,7 +23,8 @@ public PersonListPanel(ObservableList personList) { } /** - * Custom {@code ListCell} that displays the graphics of a {@code Person} using a {@code PersonCard}. + * Custom {@code ListCell} that displays the graphics of a {@code Person} using a {@code + * PersonCard}. */ class PersonListViewCell extends ListCell { @Override @@ -42,5 +39,4 @@ protected void updateItem(Person person, boolean empty) { } } } - } diff --git a/src/main/java/seedu/address/ui/ResultDisplay.java b/src/main/java/seedu/address/ui/ResultDisplay.java index 7d98e84eedf..44253ad5e8e 100644 --- a/src/main/java/seedu/address/ui/ResultDisplay.java +++ b/src/main/java/seedu/address/ui/ResultDisplay.java @@ -6,15 +6,12 @@ import javafx.scene.control.TextArea; import javafx.scene.layout.Region; -/** - * A ui for the status bar that is displayed at the header of the application. - */ +/** A ui for the status bar that is displayed at the header of the application. */ public class ResultDisplay extends UiPart { private static final String FXML = "ResultDisplay.fxml"; - @FXML - private TextArea resultDisplay; + @FXML private TextArea resultDisplay; public ResultDisplay() { super(FXML); @@ -24,5 +21,4 @@ public void setFeedbackToUser(String feedbackToUser) { requireNonNull(feedbackToUser); resultDisplay.setText(feedbackToUser); } - } diff --git a/src/main/java/seedu/address/ui/StatusBarFooter.java b/src/main/java/seedu/address/ui/StatusBarFooter.java index 7e17911323f..850f57782ba 100644 --- a/src/main/java/seedu/address/ui/StatusBarFooter.java +++ b/src/main/java/seedu/address/ui/StatusBarFooter.java @@ -2,25 +2,19 @@ import java.nio.file.Path; import java.nio.file.Paths; - import javafx.fxml.FXML; import javafx.scene.control.Label; import javafx.scene.layout.Region; -/** - * A ui for the status bar that is displayed at the footer of the application. - */ +/** A ui for the status bar that is displayed at the footer of the application. */ public class StatusBarFooter extends UiPart { private static final String FXML = "StatusBarFooter.fxml"; - @FXML - private Label saveLocationStatus; - + @FXML private Label saveLocationStatus; public StatusBarFooter(Path saveLocation) { super(FXML); saveLocationStatus.setText(Paths.get(".").resolve(saveLocation).toString()); } - } diff --git a/src/main/java/seedu/address/ui/Ui.java b/src/main/java/seedu/address/ui/Ui.java index 17aa0b494fe..3079da20cd5 100644 --- a/src/main/java/seedu/address/ui/Ui.java +++ b/src/main/java/seedu/address/ui/Ui.java @@ -2,12 +2,9 @@ import javafx.stage.Stage; -/** - * API of UI component - */ +/** API of UI component */ public interface Ui { - /** Starts the UI (and the App). */ + /** Starts the UI (and the App). */ void start(Stage primaryStage); - } diff --git a/src/main/java/seedu/address/ui/UiManager.java b/src/main/java/seedu/address/ui/UiManager.java index 876621d79b9..a49475c48ff 100644 --- a/src/main/java/seedu/address/ui/UiManager.java +++ b/src/main/java/seedu/address/ui/UiManager.java @@ -1,7 +1,6 @@ package seedu.address.ui; import java.util.logging.Logger; - import javafx.application.Platform; import javafx.scene.control.Alert; import javafx.scene.control.Alert.AlertType; @@ -12,9 +11,7 @@ import seedu.address.commons.util.StringUtil; import seedu.address.logic.Logic; -/** - * The manager of the UI component. - */ +/** The manager of the UI component. */ public class UiManager implements Ui { public static final String ALERT_DIALOG_PANE_FIELD_ID = "alertDialogPane"; @@ -34,12 +31,12 @@ public UiManager(Logic logic) { public void start(Stage primaryStage) { logger.info("Starting UI..."); - //Set the application icon. + // Set the application icon. primaryStage.getIcons().add(getImage(ICON_APPLICATION)); try { mainWindow = new MainWindow(primaryStage, logic); - mainWindow.show(); //This should be called before creating other UI parts + mainWindow.show(); // This should be called before creating other UI parts mainWindow.fillInnerParts(); } catch (Throwable e) { @@ -52,16 +49,17 @@ private Image getImage(String imagePath) { return new Image(MainApp.class.getResourceAsStream(imagePath)); } - void showAlertDialogAndWait(Alert.AlertType type, String title, String headerText, String contentText) { + void showAlertDialogAndWait( + Alert.AlertType type, String title, String headerText, String contentText) { showAlertDialogAndWait(mainWindow.getPrimaryStage(), type, title, headerText, contentText); } /** - * Shows an alert dialog on {@code owner} with the given parameters. - * This method only returns after the user has closed the alert dialog. + * Shows an alert dialog on {@code owner} with the given parameters. This method only returns + * after the user has closed the alert dialog. */ - private static void showAlertDialogAndWait(Stage owner, AlertType type, String title, String headerText, - String contentText) { + private static void showAlertDialogAndWait( + Stage owner, AlertType type, String title, String headerText, String contentText) { final Alert alert = new Alert(type); alert.getDialogPane().getStylesheets().add("view/DarkTheme.css"); alert.initOwner(owner); @@ -73,8 +71,8 @@ private static void showAlertDialogAndWait(Stage owner, AlertType type, String t } /** - * Shows an error alert dialog with {@code title} and error message, {@code e}, - * and exits the application after the user has closed the alert dialog. + * Shows an error alert dialog with {@code title} and error message, {@code e}, and exits the + * application after the user has closed the alert dialog. */ private void showFatalErrorDialogAndShutdown(String title, Throwable e) { logger.severe(title + " " + e.getMessage() + StringUtil.getDetails(e)); @@ -82,5 +80,4 @@ private void showFatalErrorDialogAndShutdown(String title, Throwable e) { Platform.exit(); System.exit(1); } - } diff --git a/src/main/java/seedu/address/ui/UiPart.java b/src/main/java/seedu/address/ui/UiPart.java index fc820e01a9c..049ff83a74b 100644 --- a/src/main/java/seedu/address/ui/UiPart.java +++ b/src/main/java/seedu/address/ui/UiPart.java @@ -4,13 +4,12 @@ import java.io.IOException; import java.net.URL; - import javafx.fxml.FXMLLoader; import seedu.address.MainApp; /** - * Represents a distinct part of the UI. e.g. Windows, dialogs, panels, status bars, etc. - * It contains a scene graph with a root node of type {@code T}. + * Represents a distinct part of the UI. e.g. Windows, dialogs, panels, status bars, etc. It + * contains a scene graph with a root node of type {@code T}. */ public abstract class UiPart { @@ -20,8 +19,8 @@ public abstract class UiPart { private final FXMLLoader fxmlLoader = new FXMLLoader(); /** - * Constructs a UiPart with the specified FXML file URL. - * The FXML file must not specify the {@code fx:controller} attribute. + * Constructs a UiPart with the specified FXML file URL. The FXML file must not specify the + * {@code fx:controller} attribute. */ public UiPart(URL fxmlFileUrl) { loadFxmlFile(fxmlFileUrl, null); @@ -29,6 +28,7 @@ public UiPart(URL fxmlFileUrl) { /** * Constructs a UiPart using the specified FXML file within {@link #FXML_FILE_FOLDER}. + * * @see #UiPart(URL) */ public UiPart(String fxmlFileName) { @@ -36,30 +36,31 @@ public UiPart(String fxmlFileName) { } /** - * Constructs a UiPart with the specified FXML file URL and root object. - * The FXML file must not specify the {@code fx:controller} attribute. + * Constructs a UiPart with the specified FXML file URL and root object. The FXML file must not + * specify the {@code fx:controller} attribute. */ public UiPart(URL fxmlFileUrl, T root) { loadFxmlFile(fxmlFileUrl, root); } /** - * Constructs a UiPart with the specified FXML file within {@link #FXML_FILE_FOLDER} and root object. + * Constructs a UiPart with the specified FXML file within {@link #FXML_FILE_FOLDER} and root + * object. + * * @see #UiPart(URL, T) */ public UiPart(String fxmlFileName, T root) { this(getFxmlFileUrl(fxmlFileName), root); } - /** - * Returns the root object of the scene graph of this UiPart. - */ + /** Returns the root object of the scene graph of this UiPart. */ public T getRoot() { return fxmlLoader.getRoot(); } /** * Loads the object hierarchy from a FXML document. + * * @param location Location of the FXML document. * @param root Specifies the root of the object hierarchy. */ @@ -84,5 +85,4 @@ private static URL getFxmlFileUrl(String fxmlFileName) { URL fxmlFileUrl = MainApp.class.getResource(fxmlFileNameWithFolder); return requireNonNull(fxmlFileUrl); } - } diff --git a/src/test/java/seedu/address/AppParametersTest.java b/src/test/java/seedu/address/AppParametersTest.java index 61326b2d31a..17e64509706 100644 --- a/src/test/java/seedu/address/AppParametersTest.java +++ b/src/test/java/seedu/address/AppParametersTest.java @@ -7,10 +7,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; - -import org.junit.jupiter.api.Test; - import javafx.application.Application; +import org.junit.jupiter.api.Test; public class AppParametersTest { diff --git a/src/test/java/seedu/address/commons/core/ConfigTest.java b/src/test/java/seedu/address/commons/core/ConfigTest.java index 07cd7f73d53..1504331bd13 100644 --- a/src/test/java/seedu/address/commons/core/ConfigTest.java +++ b/src/test/java/seedu/address/commons/core/ConfigTest.java @@ -10,8 +10,8 @@ public class ConfigTest { @Test public void toString_defaultObject_stringReturned() { - String defaultConfigAsString = "Current log level : INFO\n" - + "Preference file Location : preferences.json"; + String defaultConfigAsString = + "Current log level : INFO\n" + "Preference file Location : preferences.json"; assertEquals(defaultConfigAsString, new Config().toString()); } @@ -22,6 +22,4 @@ public void equalsMethod() { assertNotNull(defaultConfig); assertTrue(defaultConfig.equals(defaultConfig)); } - - } diff --git a/src/test/java/seedu/address/commons/core/VersionTest.java b/src/test/java/seedu/address/commons/core/VersionTest.java index 495cd231554..3cbef7a884e 100644 --- a/src/test/java/seedu/address/commons/core/VersionTest.java +++ b/src/test/java/seedu/address/commons/core/VersionTest.java @@ -17,7 +17,9 @@ public void versionParsing_acceptableVersionString_parsedVersionCorrectly() { @Test public void versionParsing_wrongVersionString_throwIllegalArgumentException() { - assertThrows(IllegalArgumentException.class, () -> Version.fromString("This is not a version string")); + assertThrows( + IllegalArgumentException.class, + () -> Version.fromString("This is not a version string")); } @Test @@ -94,12 +96,14 @@ public void versionComparable_validVersion_compareToIsCorrect() { another = new Version(2, 15, 0, false); assertTrue(one.compareTo(another) < 0); - // Tests early access lower version vs not early access higher version compare by version number first + // Tests early access lower version vs not early access higher version compare by version + // number first one = new Version(2, 15, 0, true); another = new Version(2, 15, 5, false); assertTrue(one.compareTo(another) < 0); - // Tests early access higher version vs not early access lower version compare by version number first + // Tests early access higher version vs not early access lower version compare by version + // number first one = new Version(2, 15, 0, false); another = new Version(2, 15, 5, true); assertTrue(one.compareTo(another) < 0); @@ -128,8 +132,9 @@ public void versionComparable_validVersion_equalIsCorrect() { assertTrue(one.equals(another)); } - private void verifyVersionParsedCorrectly(String versionString, - int major, int minor, int patch, boolean isEarlyAccess) { - assertEquals(new Version(major, minor, patch, isEarlyAccess), Version.fromString(versionString)); + private void verifyVersionParsedCorrectly( + String versionString, int major, int minor, int patch, boolean isEarlyAccess) { + assertEquals( + new Version(major, minor, patch, isEarlyAccess), Version.fromString(versionString)); } } diff --git a/src/test/java/seedu/address/commons/util/AppUtilTest.java b/src/test/java/seedu/address/commons/util/AppUtilTest.java index 594de1e6365..b933cbea69f 100644 --- a/src/test/java/seedu/address/commons/util/AppUtilTest.java +++ b/src/test/java/seedu/address/commons/util/AppUtilTest.java @@ -31,6 +31,9 @@ public void checkArgument_falseWithoutErrorMessage_throwsIllegalArgumentExceptio @Test public void checkArgument_falseWithErrorMessage_throwsIllegalArgumentException() { String errorMessage = "error message"; - assertThrows(IllegalArgumentException.class, errorMessage, () -> AppUtil.checkArgument(false, errorMessage)); + assertThrows( + IllegalArgumentException.class, + errorMessage, + () -> AppUtil.checkArgument(false, errorMessage)); } } diff --git a/src/test/java/seedu/address/commons/util/CollectionUtilTest.java b/src/test/java/seedu/address/commons/util/CollectionUtilTest.java index b467a3dc025..9edde40fbb4 100644 --- a/src/test/java/seedu/address/commons/util/CollectionUtilTest.java +++ b/src/test/java/seedu/address/commons/util/CollectionUtilTest.java @@ -9,7 +9,6 @@ import java.util.Collection; import java.util.Collections; import java.util.List; - import org.junit.jupiter.api.Test; public class CollectionUtilTest { @@ -83,16 +82,16 @@ public void isAnyNonNull() { } /** - * Asserts that {@code CollectionUtil#requireAllNonNull(Object...)} throw {@code NullPointerException} - * if {@code objects} or any element of {@code objects} is null. + * Asserts that {@code CollectionUtil#requireAllNonNull(Object...)} throw {@code + * NullPointerException} if {@code objects} or any element of {@code objects} is null. */ private void assertNullPointerExceptionThrown(Object... objects) { assertThrows(NullPointerException.class, () -> requireAllNonNull(objects)); } /** - * Asserts that {@code CollectionUtil#requireAllNonNull(Collection)} throw {@code NullPointerException} - * if {@code collection} or any element of {@code collection} is null. + * Asserts that {@code CollectionUtil#requireAllNonNull(Collection)} throw {@code + * NullPointerException} if {@code collection} or any element of {@code collection} is null. */ private void assertNullPointerExceptionThrown(Collection collection) { assertThrows(NullPointerException.class, () -> requireAllNonNull(collection)); diff --git a/src/test/java/seedu/address/commons/util/ConfigUtilTest.java b/src/test/java/seedu/address/commons/util/ConfigUtilTest.java index d2ab2839a52..7c70d2b75f6 100644 --- a/src/test/java/seedu/address/commons/util/ConfigUtilTest.java +++ b/src/test/java/seedu/address/commons/util/ConfigUtilTest.java @@ -9,10 +9,8 @@ import java.nio.file.Paths; import java.util.Optional; import java.util.logging.Level; - import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; - import seedu.address.commons.core.Config; import seedu.address.commons.exceptions.DataConversionException; @@ -20,8 +18,7 @@ public class ConfigUtilTest { private static final Path TEST_DATA_FOLDER = Paths.get("src", "test", "data", "ConfigUtilTest"); - @TempDir - public Path tempDir; + @TempDir public Path tempDir; @Test public void read_null_throwsNullPointerException() { @@ -68,7 +65,8 @@ private Config getTypicalConfig() { return config; } - private Optional read(String configFileInTestDataFolder) throws DataConversionException { + private Optional read(String configFileInTestDataFolder) + throws DataConversionException { Path configFilePath = addToTestDataPathIfNotNull(configFileInTestDataFolder); return ConfigUtil.readConfig(configFilePath); } @@ -89,12 +87,12 @@ public void saveConfig_allInOrder_success() throws DataConversionException, IOEx Path configFilePath = tempDir.resolve("TempConfig.json"); - //Try writing when the file doesn't exist + // Try writing when the file doesn't exist ConfigUtil.saveConfig(original, configFilePath); Config readBack = ConfigUtil.readConfig(configFilePath).get(); assertEquals(original, readBack); - //Try saving when the file exists + // Try saving when the file exists original.setLogLevel(Level.FINE); ConfigUtil.saveConfig(original, configFilePath); readBack = ConfigUtil.readConfig(configFilePath).get(); @@ -108,9 +106,7 @@ private void save(Config config, String configFileInTestDataFolder) throws IOExc private Path addToTestDataPathIfNotNull(String configFileInTestDataFolder) { return configFileInTestDataFolder != null - ? TEST_DATA_FOLDER.resolve(configFileInTestDataFolder) - : null; + ? TEST_DATA_FOLDER.resolve(configFileInTestDataFolder) + : null; } - - } diff --git a/src/test/java/seedu/address/commons/util/FileUtilTest.java b/src/test/java/seedu/address/commons/util/FileUtilTest.java index 1fe5478c756..ced2e852a46 100644 --- a/src/test/java/seedu/address/commons/util/FileUtilTest.java +++ b/src/test/java/seedu/address/commons/util/FileUtilTest.java @@ -19,5 +19,4 @@ public void isValidPath() { // null path -> throws NullPointerException assertThrows(NullPointerException.class, () -> FileUtil.isValidPath(null)); } - } diff --git a/src/test/java/seedu/address/commons/util/JsonUtilTest.java b/src/test/java/seedu/address/commons/util/JsonUtilTest.java index d4907539dee..5fcd3664ac0 100644 --- a/src/test/java/seedu/address/commons/util/JsonUtilTest.java +++ b/src/test/java/seedu/address/commons/util/JsonUtilTest.java @@ -4,18 +4,15 @@ import java.io.IOException; import java.nio.file.Path; - import org.junit.jupiter.api.Test; - import seedu.address.testutil.SerializableTestClass; import seedu.address.testutil.TestUtil; -/** - * Tests JSON Read and Write - */ +/** Tests JSON Read and Write */ public class JsonUtilTest { - private static final Path SERIALIZATION_FILE = TestUtil.getFilePathInSandboxFolder("serialize.json"); + private static final Path SERIALIZATION_FILE = + TestUtil.getFilePathInSandboxFolder("serialize.json"); @Test public void serializeObjectToJsonFile_noExceptionThrown() throws IOException { @@ -24,22 +21,29 @@ public void serializeObjectToJsonFile_noExceptionThrown() throws IOException { JsonUtil.serializeObjectToJsonFile(SERIALIZATION_FILE, serializableTestClass); - assertEquals(FileUtil.readFromFile(SERIALIZATION_FILE), SerializableTestClass.JSON_STRING_REPRESENTATION); + assertEquals( + FileUtil.readFromFile(SERIALIZATION_FILE), + SerializableTestClass.JSON_STRING_REPRESENTATION); } @Test public void deserializeObjectFromJsonFile_noExceptionThrown() throws IOException { FileUtil.writeToFile(SERIALIZATION_FILE, SerializableTestClass.JSON_STRING_REPRESENTATION); - SerializableTestClass serializableTestClass = JsonUtil - .deserializeObjectFromJsonFile(SERIALIZATION_FILE, SerializableTestClass.class); + SerializableTestClass serializableTestClass = + JsonUtil.deserializeObjectFromJsonFile( + SERIALIZATION_FILE, SerializableTestClass.class); assertEquals(serializableTestClass.getName(), SerializableTestClass.getNameTestValue()); - assertEquals(serializableTestClass.getListOfLocalDateTimes(), SerializableTestClass.getListTestValues()); - assertEquals(serializableTestClass.getMapOfIntegerToString(), SerializableTestClass.getHashMapTestValues()); + assertEquals( + serializableTestClass.getListOfLocalDateTimes(), + SerializableTestClass.getListTestValues()); + assertEquals( + serializableTestClass.getMapOfIntegerToString(), + SerializableTestClass.getHashMapTestValues()); } - //TODO: @Test jsonUtil_readJsonStringToObjectInstance_correctObject() + // TODO: @Test jsonUtil_readJsonStringToObjectInstance_correctObject() - //TODO: @Test jsonUtil_writeThenReadObjectToJson_correctObject() + // TODO: @Test jsonUtil_writeThenReadObjectToJson_correctObject() } diff --git a/src/test/java/seedu/address/commons/util/StringUtilTest.java b/src/test/java/seedu/address/commons/util/StringUtilTest.java index c56d407bf3f..8a5058d5596 100644 --- a/src/test/java/seedu/address/commons/util/StringUtilTest.java +++ b/src/test/java/seedu/address/commons/util/StringUtilTest.java @@ -5,12 +5,11 @@ import static seedu.address.testutil.Assert.assertThrows; import java.io.FileNotFoundException; - import org.junit.jupiter.api.Test; public class StringUtilTest { - //---------------- Tests for isNonZeroUnsignedInteger -------------------------------------- + // ---------------- Tests for isNonZeroUnsignedInteger -------------------------------------- @Test public void isNonZeroUnsignedInteger() { @@ -45,8 +44,7 @@ public void isNonZeroUnsignedInteger() { assertTrue(StringUtil.isNonZeroUnsignedInteger("10")); } - - //---------------- Tests for containsWordIgnoreCase -------------------------------------- + // ---------------- Tests for containsWordIgnoreCase -------------------------------------- /* * Invalid equivalence partitions for word: null, empty, multiple words @@ -56,24 +54,31 @@ public void isNonZeroUnsignedInteger() { @Test public void containsWordIgnoreCase_nullWord_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> StringUtil.containsWordIgnoreCase("typical sentence", null)); + assertThrows( + NullPointerException.class, + () -> StringUtil.containsWordIgnoreCase("typical sentence", null)); } @Test public void containsWordIgnoreCase_emptyWord_throwsIllegalArgumentException() { - assertThrows(IllegalArgumentException.class, "Word parameter cannot be empty", () - -> StringUtil.containsWordIgnoreCase("typical sentence", " ")); + assertThrows( + IllegalArgumentException.class, + "Word parameter cannot be empty", + () -> StringUtil.containsWordIgnoreCase("typical sentence", " ")); } @Test public void containsWordIgnoreCase_multipleWords_throwsIllegalArgumentException() { - assertThrows(IllegalArgumentException.class, "Word parameter should be a single word", () - -> StringUtil.containsWordIgnoreCase("typical sentence", "aaa BBB")); + assertThrows( + IllegalArgumentException.class, + "Word parameter should be a single word", + () -> StringUtil.containsWordIgnoreCase("typical sentence", "aaa BBB")); } @Test public void containsWordIgnoreCase_nullSentence_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> StringUtil.containsWordIgnoreCase(null, "abc")); + assertThrows( + NullPointerException.class, () -> StringUtil.containsWordIgnoreCase(null, "abc")); } /* @@ -109,21 +114,35 @@ public void containsWordIgnoreCase_validInputs_correctResult() { assertFalse(StringUtil.containsWordIgnoreCase(" ", "123")); // Matches a partial word only - assertFalse(StringUtil.containsWordIgnoreCase("aaa bbb ccc", "bb")); // Sentence word bigger than query word - assertFalse(StringUtil.containsWordIgnoreCase("aaa bbb ccc", "bbbb")); // Query word bigger than sentence word + assertFalse( + StringUtil.containsWordIgnoreCase( + "aaa bbb ccc", "bb")); // Sentence word bigger than query word + assertFalse( + StringUtil.containsWordIgnoreCase( + "aaa bbb ccc", "bbbb")); // Query word bigger than sentence word // Matches word in the sentence, different upper/lower case letters - assertTrue(StringUtil.containsWordIgnoreCase("aaa bBb ccc", "Bbb")); // First word (boundary case) - assertTrue(StringUtil.containsWordIgnoreCase("aaa bBb ccc@1", "CCc@1")); // Last word (boundary case) - assertTrue(StringUtil.containsWordIgnoreCase(" AAA bBb ccc ", "aaa")); // Sentence has extra spaces - assertTrue(StringUtil.containsWordIgnoreCase("Aaa", "aaa")); // Only one word in sentence (boundary case) - assertTrue(StringUtil.containsWordIgnoreCase("aaa bbb ccc", " ccc ")); // Leading/trailing spaces + assertTrue( + StringUtil.containsWordIgnoreCase( + "aaa bBb ccc", "Bbb")); // First word (boundary case) + assertTrue( + StringUtil.containsWordIgnoreCase( + "aaa bBb ccc@1", "CCc@1")); // Last word (boundary case) + assertTrue( + StringUtil.containsWordIgnoreCase( + " AAA bBb ccc ", "aaa")); // Sentence has extra spaces + assertTrue( + StringUtil.containsWordIgnoreCase( + "Aaa", "aaa")); // Only one word in sentence (boundary case) + assertTrue( + StringUtil.containsWordIgnoreCase( + "aaa bbb ccc", " ccc ")); // Leading/trailing spaces // Matches multiple words in sentence assertTrue(StringUtil.containsWordIgnoreCase("AAA bBb ccc bbb", "bbB")); } - //---------------- Tests for getDetails -------------------------------------- + // ---------------- Tests for getDetails -------------------------------------- /* * Equivalence Partitions: null, valid throwable object @@ -131,13 +150,13 @@ public void containsWordIgnoreCase_validInputs_correctResult() { @Test public void getDetails_exceptionGiven() { - assertTrue(StringUtil.getDetails(new FileNotFoundException("file not found")) - .contains("java.io.FileNotFoundException: file not found")); + assertTrue( + StringUtil.getDetails(new FileNotFoundException("file not found")) + .contains("java.io.FileNotFoundException: file not found")); } @Test public void getDetails_nullGiven_throwsNullPointerException() { assertThrows(NullPointerException.class, () -> StringUtil.getDetails(null)); } - } diff --git a/src/test/java/seedu/address/logic/LogicManagerTest.java b/src/test/java/seedu/address/logic/LogicManagerTest.java index ad923ac249a..708fa651756 100644 --- a/src/test/java/seedu/address/logic/LogicManagerTest.java +++ b/src/test/java/seedu/address/logic/LogicManagerTest.java @@ -12,11 +12,9 @@ import java.io.IOException; import java.nio.file.Path; - import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; - import seedu.address.logic.commands.AddCommand; import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.ListCommand; @@ -35,8 +33,7 @@ public class LogicManagerTest { private static final IOException DUMMY_IO_EXCEPTION = new IOException("dummy exception"); - @TempDir - public Path temporaryFolder; + @TempDir public Path temporaryFolder; private Model model = new ModelManager(); private Logic logic; @@ -45,7 +42,8 @@ public class LogicManagerTest { public void setUp() { JsonAddressBookStorage addressBookStorage = new JsonAddressBookStorage(temporaryFolder.resolve("addressBook.json")); - JsonUserPrefsStorage userPrefsStorage = new JsonUserPrefsStorage(temporaryFolder.resolve("userPrefs.json")); + JsonUserPrefsStorage userPrefsStorage = + new JsonUserPrefsStorage(temporaryFolder.resolve("userPrefs.json")); StorageManager storage = new StorageManager(addressBookStorage, userPrefsStorage); logic = new LogicManager(model, storage); } @@ -72,15 +70,20 @@ public void execute_validCommand_success() throws Exception { public void execute_storageThrowsIoException_throwsCommandException() { // Setup LogicManager with JsonAddressBookIoExceptionThrowingStub JsonAddressBookStorage addressBookStorage = - new JsonAddressBookIoExceptionThrowingStub(temporaryFolder.resolve("ioExceptionAddressBook.json")); + new JsonAddressBookIoExceptionThrowingStub( + temporaryFolder.resolve("ioExceptionAddressBook.json")); JsonUserPrefsStorage userPrefsStorage = new JsonUserPrefsStorage(temporaryFolder.resolve("ioExceptionUserPrefs.json")); StorageManager storage = new StorageManager(addressBookStorage, userPrefsStorage); logic = new LogicManager(model, storage); // Execute add command - String addCommand = AddCommand.COMMAND_WORD + NAME_DESC_AMY + PHONE_DESC_AMY + EMAIL_DESC_AMY - + ADDRESS_DESC_AMY; + String addCommand = + AddCommand.COMMAND_WORD + + NAME_DESC_AMY + + PHONE_DESC_AMY + + EMAIL_DESC_AMY + + ADDRESS_DESC_AMY; Person expectedPerson = new PersonBuilder(AMY).withTags().build(); ModelManager expectedModel = new ModelManager(); expectedModel.addPerson(expectedPerson); @@ -90,25 +93,29 @@ public void execute_storageThrowsIoException_throwsCommandException() { @Test public void getFilteredPersonList_modifyList_throwsUnsupportedOperationException() { - assertThrows(UnsupportedOperationException.class, () -> logic.getFilteredPersonList().remove(0)); + assertThrows( + UnsupportedOperationException.class, () -> logic.getFilteredPersonList().remove(0)); } /** - * Executes the command and confirms that - * - no exceptions are thrown
    + * Executes the command and confirms that - no exceptions are thrown
    * - the feedback message is equal to {@code expectedMessage}
    * - the internal model manager state is the same as that in {@code expectedModel}
    + * * @see #assertCommandFailure(String, Class, String, Model) */ - private void assertCommandSuccess(String inputCommand, String expectedMessage, - Model expectedModel) throws CommandException, ParseException { + private void assertCommandSuccess( + String inputCommand, String expectedMessage, Model expectedModel) + throws CommandException, ParseException { CommandResult result = logic.execute(inputCommand); assertEquals(expectedMessage, result.getFeedbackToUser()); assertEquals(expectedModel, model); } /** - * Executes the command, confirms that a ParseException is thrown and that the result message is correct. + * Executes the command, confirms that a ParseException is thrown and that the result message is + * correct. + * * @see #assertCommandFailure(String, Class, String, Model) */ private void assertParseException(String inputCommand, String expectedMessage) { @@ -116,7 +123,9 @@ private void assertParseException(String inputCommand, String expectedMessage) { } /** - * Executes the command, confirms that a CommandException is thrown and that the result message is correct. + * Executes the command, confirms that a CommandException is thrown and that the result message + * is correct. + * * @see #assertCommandFailure(String, Class, String, Model) */ private void assertCommandException(String inputCommand, String expectedMessage) { @@ -124,38 +133,44 @@ private void assertCommandException(String inputCommand, String expectedMessage) } /** - * Executes the command, confirms that the exception is thrown and that the result message is correct. + * Executes the command, confirms that the exception is thrown and that the result message is + * correct. + * * @see #assertCommandFailure(String, Class, String, Model) */ - private void assertCommandFailure(String inputCommand, Class expectedException, + private void assertCommandFailure( + String inputCommand, + Class expectedException, String expectedMessage) { Model expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); assertCommandFailure(inputCommand, expectedException, expectedMessage, expectedModel); } /** - * Executes the command and confirms that - * - the {@code expectedException} is thrown
    + * Executes the command and confirms that - the {@code expectedException} is thrown
    * - the resulting error message is equal to {@code expectedMessage}
    * - the internal model manager state is the same as that in {@code expectedModel}
    + * * @see #assertCommandSuccess(String, String, Model) */ - private void assertCommandFailure(String inputCommand, Class expectedException, - String expectedMessage, Model expectedModel) { + private void assertCommandFailure( + String inputCommand, + Class expectedException, + String expectedMessage, + Model expectedModel) { assertThrows(expectedException, expectedMessage, () -> logic.execute(inputCommand)); assertEquals(expectedModel, model); } - /** - * A stub class to throw an {@code IOException} when the save method is called. - */ + /** A stub class to throw an {@code IOException} when the save method is called. */ private static class JsonAddressBookIoExceptionThrowingStub extends JsonAddressBookStorage { private JsonAddressBookIoExceptionThrowingStub(Path filePath) { super(filePath); } @Override - public void saveAddressBook(ReadOnlyAddressBook addressBook, Path filePath) throws IOException { + public void saveAddressBook(ReadOnlyAddressBook addressBook, Path filePath) + throws IOException { throw DUMMY_IO_EXCEPTION; } } diff --git a/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java b/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java index cb8714bb055..d87ecc11fe2 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java +++ b/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java @@ -6,16 +6,13 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; - import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.UserPrefs; import seedu.address.model.person.Person; import seedu.address.testutil.PersonBuilder; -/** - * Contains integration tests (interaction with the Model) for {@code AddCommand}. - */ +/** Contains integration tests (interaction with the Model) for {@code AddCommand}. */ public class AddCommandIntegrationTest { private Model model; @@ -32,14 +29,17 @@ public void execute_newPerson_success() { Model expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); expectedModel.addPerson(validPerson); - assertCommandSuccess(new AddCommand(validPerson), model, - String.format(AddCommand.MESSAGE_SUCCESS, validPerson), expectedModel); + assertCommandSuccess( + new AddCommand(validPerson), + model, + String.format(AddCommand.MESSAGE_SUCCESS, validPerson), + expectedModel); } @Test public void execute_duplicatePerson_throwsCommandException() { Person personInList = model.getAddressBook().getPersonList().get(0); - assertCommandFailure(new AddCommand(personInList), model, AddCommand.MESSAGE_DUPLICATE_PERSON); + assertCommandFailure( + new AddCommand(personInList), model, AddCommand.MESSAGE_DUPLICATE_PERSON); } - } diff --git a/src/test/java/seedu/address/logic/commands/AddCommandTest.java b/src/test/java/seedu/address/logic/commands/AddCommandTest.java index 5865713d5dd..524e8be2afc 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddCommandTest.java @@ -10,10 +10,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.function.Predicate; - -import org.junit.jupiter.api.Test; - import javafx.collections.ObservableList; +import org.junit.jupiter.api.Test; import seedu.address.commons.core.GuiSettings; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.AddressBook; @@ -37,7 +35,9 @@ public void execute_personAcceptedByModel_addSuccessful() throws Exception { CommandResult commandResult = new AddCommand(validPerson).execute(modelStub); - assertEquals(String.format(AddCommand.MESSAGE_SUCCESS, validPerson), commandResult.getFeedbackToUser()); + assertEquals( + String.format(AddCommand.MESSAGE_SUCCESS, validPerson), + commandResult.getFeedbackToUser()); assertEquals(Arrays.asList(validPerson), modelStub.personsAdded); } @@ -47,7 +47,10 @@ public void execute_duplicatePerson_throwsCommandException() { AddCommand addCommand = new AddCommand(validPerson); ModelStub modelStub = new ModelStubWithPerson(validPerson); - assertThrows(CommandException.class, AddCommand.MESSAGE_DUPLICATE_PERSON, () -> addCommand.execute(modelStub)); + assertThrows( + CommandException.class, + AddCommand.MESSAGE_DUPLICATE_PERSON, + () -> addCommand.execute(modelStub)); } @Test @@ -74,9 +77,7 @@ public void equals() { assertFalse(addAliceCommand.equals(addBobCommand)); } - /** - * A default model stub that have all of the methods failing. - */ + /** A default model stub that have all of the methods failing. */ private class ModelStub implements Model { @Override public void setUserPrefs(ReadOnlyUserPrefs userPrefs) { @@ -149,9 +150,7 @@ public void updateFilteredPersonList(Predicate predicate) { } } - /** - * A Model stub that contains a single person. - */ + /** A Model stub that contains a single person. */ private class ModelStubWithPerson extends ModelStub { private final Person person; @@ -167,9 +166,7 @@ public boolean hasPerson(Person person) { } } - /** - * A Model stub that always accept the person being added. - */ + /** A Model stub that always accept the person being added. */ private class ModelStubAcceptingPersonAdded extends ModelStub { final ArrayList personsAdded = new ArrayList<>(); @@ -190,5 +187,4 @@ public ReadOnlyAddressBook getAddressBook() { return new AddressBook(); } } - } diff --git a/src/test/java/seedu/address/logic/commands/ClearCommandTest.java b/src/test/java/seedu/address/logic/commands/ClearCommandTest.java index 80d9110c03a..8bbfe4875c8 100644 --- a/src/test/java/seedu/address/logic/commands/ClearCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ClearCommandTest.java @@ -4,7 +4,6 @@ import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import org.junit.jupiter.api.Test; - import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; @@ -17,7 +16,8 @@ public void execute_emptyAddressBook_success() { Model model = new ModelManager(); Model expectedModel = new ModelManager(); - assertCommandSuccess(new ClearCommand(), model, ClearCommand.MESSAGE_SUCCESS, expectedModel); + assertCommandSuccess( + new ClearCommand(), model, ClearCommand.MESSAGE_SUCCESS, expectedModel); } @Test @@ -26,7 +26,7 @@ public void execute_nonEmptyAddressBook_success() { Model expectedModel = new ModelManager(getTypicalAddressBook(), new UserPrefs()); expectedModel.setAddressBook(new AddressBook()); - assertCommandSuccess(new ClearCommand(), model, ClearCommand.MESSAGE_SUCCESS, expectedModel); + assertCommandSuccess( + new ClearCommand(), model, ClearCommand.MESSAGE_SUCCESS, expectedModel); } - } diff --git a/src/test/java/seedu/address/logic/commands/CommandResultTest.java b/src/test/java/seedu/address/logic/commands/CommandResultTest.java index 4f3eb46e9ef..f72e780fcc6 100644 --- a/src/test/java/seedu/address/logic/commands/CommandResultTest.java +++ b/src/test/java/seedu/address/logic/commands/CommandResultTest.java @@ -46,9 +46,11 @@ public void hashcode() { assertNotEquals(commandResult.hashCode(), new CommandResult("different").hashCode()); // different showHelp value -> returns different hashcode - assertNotEquals(commandResult.hashCode(), new CommandResult("feedback", true, false).hashCode()); + assertNotEquals( + commandResult.hashCode(), new CommandResult("feedback", true, false).hashCode()); // different exit value -> returns different hashcode - assertNotEquals(commandResult.hashCode(), new CommandResult("feedback", false, true).hashCode()); + assertNotEquals( + commandResult.hashCode(), new CommandResult("feedback", false, true).hashCode()); } } diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java index 643a1d08069..7cb4053e10e 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java @@ -12,7 +12,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; - import seedu.address.commons.core.index.Index; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.AddressBook; @@ -21,9 +20,7 @@ import seedu.address.model.person.Person; import seedu.address.testutil.EditPersonDescriptorBuilder; -/** - * Contains helper methods for testing commands. - */ +/** Contains helper methods for testing commands. */ public class CommandTestUtil { public static final String VALID_NAME_AMY = "Amy Bee"; @@ -48,11 +45,16 @@ public class CommandTestUtil { public static final String TAG_DESC_FRIEND = " " + PREFIX_TAG + VALID_TAG_FRIEND; public static final String TAG_DESC_HUSBAND = " " + PREFIX_TAG + VALID_TAG_HUSBAND; - public static final String INVALID_NAME_DESC = " " + PREFIX_NAME + "James&"; // '&' not allowed in names - public static final String INVALID_PHONE_DESC = " " + PREFIX_PHONE + "911a"; // 'a' not allowed in phones - public static final String INVALID_EMAIL_DESC = " " + PREFIX_EMAIL + "bob!yahoo"; // missing '@' symbol - public static final String INVALID_ADDRESS_DESC = " " + PREFIX_ADDRESS; // empty string not allowed for addresses - public static final String INVALID_TAG_DESC = " " + PREFIX_TAG + "hubby*"; // '*' not allowed in tags + public static final String INVALID_NAME_DESC = + " " + PREFIX_NAME + "James&"; // '&' not allowed in names + public static final String INVALID_PHONE_DESC = + " " + PREFIX_PHONE + "911a"; // 'a' not allowed in phones + public static final String INVALID_EMAIL_DESC = + " " + PREFIX_EMAIL + "bob!yahoo"; // missing '@' symbol + public static final String INVALID_ADDRESS_DESC = + " " + PREFIX_ADDRESS; // empty string not allowed for addresses + public static final String INVALID_TAG_DESC = + " " + PREFIX_TAG + "hubby*"; // '*' not allowed in tags public static final String PREAMBLE_WHITESPACE = "\t \r \n"; public static final String PREAMBLE_NON_EMPTY = "NonEmptyPreamble"; @@ -61,12 +63,22 @@ public class CommandTestUtil { public static final EditCommand.EditPersonDescriptor DESC_BOB; static { - DESC_AMY = new EditPersonDescriptorBuilder().withName(VALID_NAME_AMY) - .withPhone(VALID_PHONE_AMY).withEmail(VALID_EMAIL_AMY).withAddress(VALID_ADDRESS_AMY) - .withTags(VALID_TAG_FRIEND).build(); - DESC_BOB = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB) - .withPhone(VALID_PHONE_BOB).withEmail(VALID_EMAIL_BOB).withAddress(VALID_ADDRESS_BOB) - .withTags(VALID_TAG_HUSBAND, VALID_TAG_FRIEND).build(); + DESC_AMY = + new EditPersonDescriptorBuilder() + .withName(VALID_NAME_AMY) + .withPhone(VALID_PHONE_AMY) + .withEmail(VALID_EMAIL_AMY) + .withAddress(VALID_ADDRESS_AMY) + .withTags(VALID_TAG_FRIEND) + .build(); + DESC_BOB = + new EditPersonDescriptorBuilder() + .withName(VALID_NAME_BOB) + .withPhone(VALID_PHONE_BOB) + .withEmail(VALID_EMAIL_BOB) + .withAddress(VALID_ADDRESS_BOB) + .withTags(VALID_TAG_HUSBAND, VALID_TAG_FRIEND) + .build(); } /** @@ -74,7 +86,10 @@ public class CommandTestUtil { * - the returned {@link CommandResult} matches {@code expectedCommandResult}
    * - the {@code actualModel} matches {@code expectedModel} */ - public static void assertCommandSuccess(Command command, Model actualModel, CommandResult expectedCommandResult, + public static void assertCommandSuccess( + Command command, + Model actualModel, + CommandResult expectedCommandResult, Model expectedModel) { try { CommandResult result = command.execute(actualModel); @@ -89,8 +104,8 @@ public static void assertCommandSuccess(Command command, Model actualModel, Comm * Convenience wrapper to {@link #assertCommandSuccess(Command, Model, CommandResult, Model)} * that takes a string {@code expectedMessage}. */ - public static void assertCommandSuccess(Command command, Model actualModel, String expectedMessage, - Model expectedModel) { + public static void assertCommandSuccess( + Command command, Model actualModel, String expectedMessage, Model expectedModel) { CommandResult expectedCommandResult = new CommandResult(expectedMessage); assertCommandSuccess(command, actualModel, expectedCommandResult, expectedModel); } @@ -99,9 +114,11 @@ public static void assertCommandSuccess(Command command, Model actualModel, Stri * Executes the given {@code command}, confirms that
    * - a {@code CommandException} is thrown
    * - the CommandException message matches {@code expectedMessage}
    - * - the address book, filtered person list and selected person in {@code actualModel} remain unchanged + * - the address book, filtered person list and selected person in {@code actualModel} remain + * unchanged */ - public static void assertCommandFailure(Command command, Model actualModel, String expectedMessage) { + public static void assertCommandFailure( + Command command, Model actualModel, String expectedMessage) { // we are unable to defensively copy the model for comparison later, so we can // only do so by copying its components. AddressBook expectedAddressBook = new AddressBook(actualModel.getAddressBook()); @@ -112,17 +129,17 @@ public static void assertCommandFailure(Command command, Model actualModel, Stri assertEquals(expectedFilteredList, actualModel.getFilteredPersonList()); } /** - * Updates {@code model}'s filtered list to show only the person at the given {@code targetIndex} in the - * {@code model}'s address book. + * Updates {@code model}'s filtered list to show only the person at the given {@code + * targetIndex} in the {@code model}'s address book. */ public static void showPersonAtIndex(Model model, Index targetIndex) { assertTrue(targetIndex.getZeroBased() < model.getFilteredPersonList().size()); Person person = model.getFilteredPersonList().get(targetIndex.getZeroBased()); final String[] splitName = person.getName().fullName.split("\\s+"); - model.updateFilteredPersonList(new NameContainsKeywordsPredicate(Arrays.asList(splitName[0]))); + model.updateFilteredPersonList( + new NameContainsKeywordsPredicate(Arrays.asList(splitName[0]))); assertEquals(1, model.getFilteredPersonList().size()); } - } diff --git a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java index 0f77d8295f6..23eed40ae0f 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java @@ -10,7 +10,6 @@ import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import org.junit.jupiter.api.Test; - import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; import seedu.address.model.Model; @@ -19,8 +18,8 @@ import seedu.address.model.person.Person; /** - * Contains integration tests (interaction with the Model, UndoCommand and RedoCommand) and unit tests for - * {@code DeleteCommand}. + * Contains integration tests (interaction with the Model, UndoCommand and RedoCommand) and unit + * tests for {@code DeleteCommand}. */ public class DeleteCommandTest { @@ -28,10 +27,12 @@ public class DeleteCommandTest { @Test public void execute_validIndexUnfilteredList_success() { - Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); + Person personToDelete = + model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_PERSON); - String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); + String expectedMessage = + String.format(DeleteCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); ModelManager expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); expectedModel.deletePerson(personToDelete); @@ -51,10 +52,12 @@ public void execute_invalidIndexUnfilteredList_throwsCommandException() { public void execute_validIndexFilteredList_success() { showPersonAtIndex(model, INDEX_FIRST_PERSON); - Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); + Person personToDelete = + model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_PERSON); - String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); + String expectedMessage = + String.format(DeleteCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); Model expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); expectedModel.deletePerson(personToDelete); @@ -98,9 +101,7 @@ public void equals() { assertFalse(deleteFirstCommand.equals(deleteSecondCommand)); } - /** - * Updates {@code model}'s filtered list to show no one. - */ + /** Updates {@code model}'s filtered list to show no one. */ private void showNoPerson(Model model) { model.updateFilteredPersonList(p -> false); diff --git a/src/test/java/seedu/address/logic/commands/EditCommandTest.java b/src/test/java/seedu/address/logic/commands/EditCommandTest.java index 1c27530fa99..197d734ea2e 100644 --- a/src/test/java/seedu/address/logic/commands/EditCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/EditCommandTest.java @@ -15,7 +15,6 @@ import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import org.junit.jupiter.api.Test; - import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; @@ -28,7 +27,8 @@ import seedu.address.testutil.PersonBuilder; /** - * Contains integration tests (interaction with the Model, UndoCommand and RedoCommand) and unit tests for EditCommand. + * Contains integration tests (interaction with the Model, UndoCommand and RedoCommand) and unit + * tests for EditCommand. */ public class EditCommandTest { @@ -40,9 +40,11 @@ public void execute_allFieldsSpecifiedUnfilteredList_success() { EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(editedPerson).build(); EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, descriptor); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); + String expectedMessage = + String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); - Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); + Model expectedModel = + new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); expectedModel.setPerson(model.getFilteredPersonList().get(0), editedPerson); assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); @@ -54,16 +56,26 @@ public void execute_someFieldsSpecifiedUnfilteredList_success() { Person lastPerson = model.getFilteredPersonList().get(indexLastPerson.getZeroBased()); PersonBuilder personInList = new PersonBuilder(lastPerson); - Person editedPerson = personInList.withName(VALID_NAME_BOB).withPhone(VALID_PHONE_BOB) - .withTags(VALID_TAG_HUSBAND).build(); - - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB) - .withPhone(VALID_PHONE_BOB).withTags(VALID_TAG_HUSBAND).build(); + Person editedPerson = + personInList + .withName(VALID_NAME_BOB) + .withPhone(VALID_PHONE_BOB) + .withTags(VALID_TAG_HUSBAND) + .build(); + + EditPersonDescriptor descriptor = + new EditPersonDescriptorBuilder() + .withName(VALID_NAME_BOB) + .withPhone(VALID_PHONE_BOB) + .withTags(VALID_TAG_HUSBAND) + .build(); EditCommand editCommand = new EditCommand(indexLastPerson, descriptor); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); + String expectedMessage = + String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); - Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); + Model expectedModel = + new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); expectedModel.setPerson(lastPerson, editedPerson); assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); @@ -74,9 +86,11 @@ public void execute_noFieldSpecifiedUnfilteredList_success() { EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, new EditPersonDescriptor()); Person editedPerson = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); + String expectedMessage = + String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); - Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); + Model expectedModel = + new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); } @@ -85,14 +99,20 @@ public void execute_noFieldSpecifiedUnfilteredList_success() { public void execute_filteredList_success() { showPersonAtIndex(model, INDEX_FIRST_PERSON); - Person personInFilteredList = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - Person editedPerson = new PersonBuilder(personInFilteredList).withName(VALID_NAME_BOB).build(); - EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, - new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build()); + Person personInFilteredList = + model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); + Person editedPerson = + new PersonBuilder(personInFilteredList).withName(VALID_NAME_BOB).build(); + EditCommand editCommand = + new EditCommand( + INDEX_FIRST_PERSON, + new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build()); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); + String expectedMessage = + String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); - Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); + Model expectedModel = + new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); expectedModel.setPerson(model.getFilteredPersonList().get(0), editedPerson); assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); @@ -112,9 +132,11 @@ public void execute_duplicatePersonFilteredList_failure() { showPersonAtIndex(model, INDEX_FIRST_PERSON); // edit person in filtered list into a duplicate in address book - Person personInList = model.getAddressBook().getPersonList().get(INDEX_SECOND_PERSON.getZeroBased()); - EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, - new EditPersonDescriptorBuilder(personInList).build()); + Person personInList = + model.getAddressBook().getPersonList().get(INDEX_SECOND_PERSON.getZeroBased()); + EditCommand editCommand = + new EditCommand( + INDEX_FIRST_PERSON, new EditPersonDescriptorBuilder(personInList).build()); assertCommandFailure(editCommand, model, EditCommand.MESSAGE_DUPLICATE_PERSON); } @@ -122,15 +144,16 @@ public void execute_duplicatePersonFilteredList_failure() { @Test public void execute_invalidPersonIndexUnfilteredList_failure() { Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build(); + EditPersonDescriptor descriptor = + new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build(); EditCommand editCommand = new EditCommand(outOfBoundIndex, descriptor); assertCommandFailure(editCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } /** - * Edit filtered list where index is larger than size of filtered list, - * but smaller than size of address book + * Edit filtered list where index is larger than size of filtered list, but smaller than size of + * address book */ @Test public void execute_invalidPersonIndexFilteredList_failure() { @@ -139,8 +162,10 @@ public void execute_invalidPersonIndexFilteredList_failure() { // ensures that outOfBoundIndex is still in bounds of address book list assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); - EditCommand editCommand = new EditCommand(outOfBoundIndex, - new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build()); + EditCommand editCommand = + new EditCommand( + outOfBoundIndex, + new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build()); assertCommandFailure(editCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } @@ -169,5 +194,4 @@ public void equals() { // different descriptor -> returns false assertFalse(standardCommand.equals(new EditCommand(INDEX_FIRST_PERSON, DESC_BOB))); } - } diff --git a/src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java b/src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java index e0288792e72..ad23d21b161 100644 --- a/src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java +++ b/src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java @@ -11,7 +11,6 @@ import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; import org.junit.jupiter.api.Test; - import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; import seedu.address.testutil.EditPersonDescriptorBuilder; @@ -36,7 +35,8 @@ public void equals() { assertFalse(DESC_AMY.equals(DESC_BOB)); // different name -> returns false - EditPersonDescriptor editedAmy = new EditPersonDescriptorBuilder(DESC_AMY).withName(VALID_NAME_BOB).build(); + EditPersonDescriptor editedAmy = + new EditPersonDescriptorBuilder(DESC_AMY).withName(VALID_NAME_BOB).build(); assertFalse(DESC_AMY.equals(editedAmy)); // different phone -> returns false @@ -48,7 +48,8 @@ public void equals() { assertFalse(DESC_AMY.equals(editedAmy)); // different address -> returns false - editedAmy = new EditPersonDescriptorBuilder(DESC_AMY).withAddress(VALID_ADDRESS_BOB).build(); + editedAmy = + new EditPersonDescriptorBuilder(DESC_AMY).withAddress(VALID_ADDRESS_BOB).build(); assertFalse(DESC_AMY.equals(editedAmy)); // different tags -> returns false diff --git a/src/test/java/seedu/address/logic/commands/ExitCommandTest.java b/src/test/java/seedu/address/logic/commands/ExitCommandTest.java index 9533c473875..165038f45cb 100644 --- a/src/test/java/seedu/address/logic/commands/ExitCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ExitCommandTest.java @@ -4,7 +4,6 @@ import static seedu.address.logic.commands.ExitCommand.MESSAGE_EXIT_ACKNOWLEDGEMENT; import org.junit.jupiter.api.Test; - import seedu.address.model.Model; import seedu.address.model.ModelManager; @@ -14,7 +13,8 @@ public class ExitCommandTest { @Test public void execute_exit_success() { - CommandResult expectedCommandResult = new CommandResult(MESSAGE_EXIT_ACKNOWLEDGEMENT, false, true); + CommandResult expectedCommandResult = + new CommandResult(MESSAGE_EXIT_ACKNOWLEDGEMENT, false, true); assertCommandSuccess(new ExitCommand(), model, expectedCommandResult, expectedModel); } } diff --git a/src/test/java/seedu/address/logic/commands/FindCommandTest.java b/src/test/java/seedu/address/logic/commands/FindCommandTest.java index 9b15db28bbb..86b96adb216 100644 --- a/src/test/java/seedu/address/logic/commands/FindCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/FindCommandTest.java @@ -12,17 +12,13 @@ import java.util.Arrays; import java.util.Collections; - import org.junit.jupiter.api.Test; - import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.UserPrefs; import seedu.address.model.person.NameContainsKeywordsPredicate; -/** - * Contains integration tests (interaction with the Model) for {@code FindCommand}. - */ +/** Contains integration tests (interaction with the Model) for {@code FindCommand}. */ public class FindCommandTest { private Model model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); private Model expectedModel = new ModelManager(getTypicalAddressBook(), new UserPrefs()); @@ -74,9 +70,7 @@ public void execute_multipleKeywords_multiplePersonsFound() { assertEquals(Arrays.asList(CARL, ELLE, FIONA), model.getFilteredPersonList()); } - /** - * Parses {@code userInput} into a {@code NameContainsKeywordsPredicate}. - */ + /** Parses {@code userInput} into a {@code NameContainsKeywordsPredicate}. */ private NameContainsKeywordsPredicate preparePredicate(String userInput) { return new NameContainsKeywordsPredicate(Arrays.asList(userInput.split("\\s+"))); } diff --git a/src/test/java/seedu/address/logic/commands/HelpCommandTest.java b/src/test/java/seedu/address/logic/commands/HelpCommandTest.java index 4904fc4352e..f219187bc96 100644 --- a/src/test/java/seedu/address/logic/commands/HelpCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/HelpCommandTest.java @@ -4,7 +4,6 @@ import static seedu.address.logic.commands.HelpCommand.SHOWING_HELP_MESSAGE; import org.junit.jupiter.api.Test; - import seedu.address.model.Model; import seedu.address.model.ModelManager; diff --git a/src/test/java/seedu/address/logic/commands/ListCommandTest.java b/src/test/java/seedu/address/logic/commands/ListCommandTest.java index 435ff1f7275..77d037fc3e7 100644 --- a/src/test/java/seedu/address/logic/commands/ListCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ListCommandTest.java @@ -7,14 +7,11 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; - import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.UserPrefs; -/** - * Contains integration tests (interaction with the Model) and unit tests for ListCommand. - */ +/** Contains integration tests (interaction with the Model) and unit tests for ListCommand. */ public class ListCommandTest { private Model model; diff --git a/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java index 5cf487d7ebb..165bbab2cf0 100644 --- a/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java @@ -30,7 +30,6 @@ import static seedu.address.testutil.TypicalPersons.BOB; import org.junit.jupiter.api.Test; - import seedu.address.logic.commands.AddCommand; import seedu.address.model.person.Address; import seedu.address.model.person.Email; @@ -48,94 +47,193 @@ public void parse_allFieldsPresent_success() { Person expectedPerson = new PersonBuilder(BOB).withTags(VALID_TAG_FRIEND).build(); // whitespace only preamble - assertParseSuccess(parser, PREAMBLE_WHITESPACE + NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB - + ADDRESS_DESC_BOB + TAG_DESC_FRIEND, new AddCommand(expectedPerson)); + assertParseSuccess( + parser, + PREAMBLE_WHITESPACE + + NAME_DESC_BOB + + PHONE_DESC_BOB + + EMAIL_DESC_BOB + + ADDRESS_DESC_BOB + + TAG_DESC_FRIEND, + new AddCommand(expectedPerson)); // multiple names - last name accepted - assertParseSuccess(parser, NAME_DESC_AMY + NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB - + ADDRESS_DESC_BOB + TAG_DESC_FRIEND, new AddCommand(expectedPerson)); + assertParseSuccess( + parser, + NAME_DESC_AMY + + NAME_DESC_BOB + + PHONE_DESC_BOB + + EMAIL_DESC_BOB + + ADDRESS_DESC_BOB + + TAG_DESC_FRIEND, + new AddCommand(expectedPerson)); // multiple phones - last phone accepted - assertParseSuccess(parser, NAME_DESC_BOB + PHONE_DESC_AMY + PHONE_DESC_BOB + EMAIL_DESC_BOB - + ADDRESS_DESC_BOB + TAG_DESC_FRIEND, new AddCommand(expectedPerson)); + assertParseSuccess( + parser, + NAME_DESC_BOB + + PHONE_DESC_AMY + + PHONE_DESC_BOB + + EMAIL_DESC_BOB + + ADDRESS_DESC_BOB + + TAG_DESC_FRIEND, + new AddCommand(expectedPerson)); // multiple emails - last email accepted - assertParseSuccess(parser, NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_AMY + EMAIL_DESC_BOB - + ADDRESS_DESC_BOB + TAG_DESC_FRIEND, new AddCommand(expectedPerson)); + assertParseSuccess( + parser, + NAME_DESC_BOB + + PHONE_DESC_BOB + + EMAIL_DESC_AMY + + EMAIL_DESC_BOB + + ADDRESS_DESC_BOB + + TAG_DESC_FRIEND, + new AddCommand(expectedPerson)); // multiple addresses - last address accepted - assertParseSuccess(parser, NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_AMY - + ADDRESS_DESC_BOB + TAG_DESC_FRIEND, new AddCommand(expectedPerson)); + assertParseSuccess( + parser, + NAME_DESC_BOB + + PHONE_DESC_BOB + + EMAIL_DESC_BOB + + ADDRESS_DESC_AMY + + ADDRESS_DESC_BOB + + TAG_DESC_FRIEND, + new AddCommand(expectedPerson)); // multiple tags - all accepted - Person expectedPersonMultipleTags = new PersonBuilder(BOB).withTags(VALID_TAG_FRIEND, VALID_TAG_HUSBAND) - .build(); - assertParseSuccess(parser, NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_BOB - + TAG_DESC_HUSBAND + TAG_DESC_FRIEND, new AddCommand(expectedPersonMultipleTags)); + Person expectedPersonMultipleTags = + new PersonBuilder(BOB).withTags(VALID_TAG_FRIEND, VALID_TAG_HUSBAND).build(); + assertParseSuccess( + parser, + NAME_DESC_BOB + + PHONE_DESC_BOB + + EMAIL_DESC_BOB + + ADDRESS_DESC_BOB + + TAG_DESC_HUSBAND + + TAG_DESC_FRIEND, + new AddCommand(expectedPersonMultipleTags)); } @Test public void parse_optionalFieldsMissing_success() { // zero tags Person expectedPerson = new PersonBuilder(AMY).withTags().build(); - assertParseSuccess(parser, NAME_DESC_AMY + PHONE_DESC_AMY + EMAIL_DESC_AMY + ADDRESS_DESC_AMY, + assertParseSuccess( + parser, + NAME_DESC_AMY + PHONE_DESC_AMY + EMAIL_DESC_AMY + ADDRESS_DESC_AMY, new AddCommand(expectedPerson)); } @Test public void parse_compulsoryFieldMissing_failure() { - String expectedMessage = String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE); + String expectedMessage = + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE); // missing name prefix - assertParseFailure(parser, VALID_NAME_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_BOB, + assertParseFailure( + parser, + VALID_NAME_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_BOB, expectedMessage); // missing phone prefix - assertParseFailure(parser, NAME_DESC_BOB + VALID_PHONE_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_BOB, + assertParseFailure( + parser, + NAME_DESC_BOB + VALID_PHONE_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_BOB, expectedMessage); // missing email prefix - assertParseFailure(parser, NAME_DESC_BOB + PHONE_DESC_BOB + VALID_EMAIL_BOB + ADDRESS_DESC_BOB, + assertParseFailure( + parser, + NAME_DESC_BOB + PHONE_DESC_BOB + VALID_EMAIL_BOB + ADDRESS_DESC_BOB, expectedMessage); // missing address prefix - assertParseFailure(parser, NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + VALID_ADDRESS_BOB, + assertParseFailure( + parser, + NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + VALID_ADDRESS_BOB, expectedMessage); // all prefixes missing - assertParseFailure(parser, VALID_NAME_BOB + VALID_PHONE_BOB + VALID_EMAIL_BOB + VALID_ADDRESS_BOB, + assertParseFailure( + parser, + VALID_NAME_BOB + VALID_PHONE_BOB + VALID_EMAIL_BOB + VALID_ADDRESS_BOB, expectedMessage); } @Test public void parse_invalidValue_failure() { // invalid name - assertParseFailure(parser, INVALID_NAME_DESC + PHONE_DESC_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_BOB - + TAG_DESC_HUSBAND + TAG_DESC_FRIEND, Name.MESSAGE_CONSTRAINTS); + assertParseFailure( + parser, + INVALID_NAME_DESC + + PHONE_DESC_BOB + + EMAIL_DESC_BOB + + ADDRESS_DESC_BOB + + TAG_DESC_HUSBAND + + TAG_DESC_FRIEND, + Name.MESSAGE_CONSTRAINTS); // invalid phone - assertParseFailure(parser, NAME_DESC_BOB + INVALID_PHONE_DESC + EMAIL_DESC_BOB + ADDRESS_DESC_BOB - + TAG_DESC_HUSBAND + TAG_DESC_FRIEND, Phone.MESSAGE_CONSTRAINTS); + assertParseFailure( + parser, + NAME_DESC_BOB + + INVALID_PHONE_DESC + + EMAIL_DESC_BOB + + ADDRESS_DESC_BOB + + TAG_DESC_HUSBAND + + TAG_DESC_FRIEND, + Phone.MESSAGE_CONSTRAINTS); // invalid email - assertParseFailure(parser, NAME_DESC_BOB + PHONE_DESC_BOB + INVALID_EMAIL_DESC + ADDRESS_DESC_BOB - + TAG_DESC_HUSBAND + TAG_DESC_FRIEND, Email.MESSAGE_CONSTRAINTS); + assertParseFailure( + parser, + NAME_DESC_BOB + + PHONE_DESC_BOB + + INVALID_EMAIL_DESC + + ADDRESS_DESC_BOB + + TAG_DESC_HUSBAND + + TAG_DESC_FRIEND, + Email.MESSAGE_CONSTRAINTS); // invalid address - assertParseFailure(parser, NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + INVALID_ADDRESS_DESC - + TAG_DESC_HUSBAND + TAG_DESC_FRIEND, Address.MESSAGE_CONSTRAINTS); + assertParseFailure( + parser, + NAME_DESC_BOB + + PHONE_DESC_BOB + + EMAIL_DESC_BOB + + INVALID_ADDRESS_DESC + + TAG_DESC_HUSBAND + + TAG_DESC_FRIEND, + Address.MESSAGE_CONSTRAINTS); // invalid tag - assertParseFailure(parser, NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_BOB - + INVALID_TAG_DESC + VALID_TAG_FRIEND, Tag.MESSAGE_CONSTRAINTS); + assertParseFailure( + parser, + NAME_DESC_BOB + + PHONE_DESC_BOB + + EMAIL_DESC_BOB + + ADDRESS_DESC_BOB + + INVALID_TAG_DESC + + VALID_TAG_FRIEND, + Tag.MESSAGE_CONSTRAINTS); // two invalid values, only first invalid value reported - assertParseFailure(parser, INVALID_NAME_DESC + PHONE_DESC_BOB + EMAIL_DESC_BOB + INVALID_ADDRESS_DESC, + assertParseFailure( + parser, + INVALID_NAME_DESC + PHONE_DESC_BOB + EMAIL_DESC_BOB + INVALID_ADDRESS_DESC, Name.MESSAGE_CONSTRAINTS); // non-empty preamble - assertParseFailure(parser, PREAMBLE_NON_EMPTY + NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB - + ADDRESS_DESC_BOB + TAG_DESC_HUSBAND + TAG_DESC_FRIEND, + assertParseFailure( + parser, + PREAMBLE_NON_EMPTY + + NAME_DESC_BOB + + PHONE_DESC_BOB + + EMAIL_DESC_BOB + + ADDRESS_DESC_BOB + + TAG_DESC_HUSBAND + + TAG_DESC_FRIEND, String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE)); } } diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index d9659205b57..abf95c93093 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -10,9 +10,7 @@ import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; - import org.junit.jupiter.api.Test; - import seedu.address.logic.commands.AddCommand; import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.DeleteCommand; @@ -48,8 +46,12 @@ public void parseCommand_clear() throws Exception { @Test public void parseCommand_delete() throws Exception { - DeleteCommand command = (DeleteCommand) parser.parseCommand( - DeleteCommand.COMMAND_WORD + " " + INDEX_FIRST_PERSON.getOneBased()); + DeleteCommand command = + (DeleteCommand) + parser.parseCommand( + DeleteCommand.COMMAND_WORD + + " " + + INDEX_FIRST_PERSON.getOneBased()); assertEquals(new DeleteCommand(INDEX_FIRST_PERSON), command); } @@ -57,8 +59,14 @@ public void parseCommand_delete() throws Exception { public void parseCommand_edit() throws Exception { Person person = new PersonBuilder().build(); EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(person).build(); - EditCommand command = (EditCommand) parser.parseCommand(EditCommand.COMMAND_WORD + " " - + INDEX_FIRST_PERSON.getOneBased() + " " + PersonUtil.getEditPersonDescriptorDetails(descriptor)); + EditCommand command = + (EditCommand) + parser.parseCommand( + EditCommand.COMMAND_WORD + + " " + + INDEX_FIRST_PERSON.getOneBased() + + " " + + PersonUtil.getEditPersonDescriptorDetails(descriptor)); assertEquals(new EditCommand(INDEX_FIRST_PERSON, descriptor), command); } @@ -71,8 +79,12 @@ public void parseCommand_exit() throws Exception { @Test public void parseCommand_find() throws Exception { List keywords = Arrays.asList("foo", "bar", "baz"); - FindCommand command = (FindCommand) parser.parseCommand( - FindCommand.COMMAND_WORD + " " + keywords.stream().collect(Collectors.joining(" "))); + FindCommand command = + (FindCommand) + parser.parseCommand( + FindCommand.COMMAND_WORD + + " " + + keywords.stream().collect(Collectors.joining(" "))); assertEquals(new FindCommand(new NameContainsKeywordsPredicate(keywords)), command); } @@ -90,12 +102,17 @@ public void parseCommand_list() throws Exception { @Test public void parseCommand_unrecognisedInput_throwsParseException() { - assertThrows(ParseException.class, String.format(MESSAGE_INVALID_COMMAND_FORMAT, HelpCommand.MESSAGE_USAGE), () - -> parser.parseCommand("")); + assertThrows( + ParseException.class, + String.format(MESSAGE_INVALID_COMMAND_FORMAT, HelpCommand.MESSAGE_USAGE), + () -> parser.parseCommand("")); } @Test public void parseCommand_unknownCommand_throwsParseException() { - assertThrows(ParseException.class, MESSAGE_UNKNOWN_COMMAND, () -> parser.parseCommand("unknownCommand")); + assertThrows( + ParseException.class, + MESSAGE_UNKNOWN_COMMAND, + () -> parser.parseCommand("unknownCommand")); } } diff --git a/src/test/java/seedu/address/logic/parser/ArgumentTokenizerTest.java b/src/test/java/seedu/address/logic/parser/ArgumentTokenizerTest.java index cfd7f9dfdc4..60c8aaa56f7 100644 --- a/src/test/java/seedu/address/logic/parser/ArgumentTokenizerTest.java +++ b/src/test/java/seedu/address/logic/parser/ArgumentTokenizerTest.java @@ -32,10 +32,12 @@ private void assertPreambleEmpty(ArgumentMultimap argMultimap) { } /** - * Asserts all the arguments in {@code argMultimap} with {@code prefix} match the {@code expectedValues} - * and only the last value is returned upon calling {@code ArgumentMultimap#getValue(Prefix)}. + * Asserts all the arguments in {@code argMultimap} with {@code prefix} match the {@code + * expectedValues} and only the last value is returned upon calling {@code + * ArgumentMultimap#getValue(Prefix)}. */ - private void assertArgumentPresent(ArgumentMultimap argMultimap, Prefix prefix, String... expectedValues) { + private void assertArgumentPresent( + ArgumentMultimap argMultimap, Prefix prefix, String... expectedValues) { // Verify the last value is returned assertEquals(expectedValues[expectedValues.length - 1], argMultimap.getValue(prefix).get()); @@ -60,7 +62,6 @@ public void tokenize_noPrefixes_allTakenAsPreamble() { // Same string expected as preamble, but leading/trailing spaces should be trimmed assertPreamblePresent(argMultimap, argsString.trim()); - } @Test @@ -76,7 +77,6 @@ public void tokenize_oneArgument() { argMultimap = ArgumentTokenizer.tokenize(argsString, pSlash); assertPreambleEmpty(argMultimap); assertArgumentPresent(argMultimap, pSlash, "Argument value"); - } @Test @@ -106,19 +106,21 @@ public void tokenize_multipleArguments() { assertPreambleEmpty(argMultimap); assertArgumentAbsent(argMultimap, pSlash); - /** Also covers: testing for prefixes not specified as a prefix **/ + /** Also covers: testing for prefixes not specified as a prefix * */ // Prefixes not previously given to the tokenizer should not return any values argsString = unknownPrefix + "some value"; argMultimap = ArgumentTokenizer.tokenize(argsString, pSlash, dashT, hatQ); assertArgumentAbsent(argMultimap, unknownPrefix); - assertPreamblePresent(argMultimap, argsString); // Unknown prefix is taken as part of preamble + assertPreamblePresent( + argMultimap, argsString); // Unknown prefix is taken as part of preamble } @Test public void tokenize_multipleArgumentsWithRepeats() { // Two arguments repeated, some have empty values - String argsString = "SomePreambleString -t dashT-Value ^Q ^Q -t another dashT value p/ pSlash value -t"; + String argsString = + "SomePreambleString -t dashT-Value ^Q ^Q -t another dashT value p/ pSlash value -t"; ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(argsString, pSlash, dashT, hatQ); assertPreamblePresent(argMultimap, "SomePreambleString"); assertArgumentPresent(argMultimap, pSlash, "pSlash value"); @@ -146,5 +148,4 @@ public void equalsMethod() { assertNotEquals(aaa, "aaa"); assertNotEquals(aaa, new Prefix("aab")); } - } diff --git a/src/test/java/seedu/address/logic/parser/CommandParserTestUtil.java b/src/test/java/seedu/address/logic/parser/CommandParserTestUtil.java index e4c33515768..009c6ddf758 100644 --- a/src/test/java/seedu/address/logic/parser/CommandParserTestUtil.java +++ b/src/test/java/seedu/address/logic/parser/CommandParserTestUtil.java @@ -5,16 +5,15 @@ import seedu.address.logic.commands.Command; import seedu.address.logic.parser.exceptions.ParseException; -/** - * Contains helper methods for testing command parsers. - */ +/** Contains helper methods for testing command parsers. */ public class CommandParserTestUtil { /** - * Asserts that the parsing of {@code userInput} by {@code parser} is successful and the command created - * equals to {@code expectedCommand}. + * Asserts that the parsing of {@code userInput} by {@code parser} is successful and the command + * created equals to {@code expectedCommand}. */ - public static void assertParseSuccess(Parser parser, String userInput, Command expectedCommand) { + public static void assertParseSuccess( + Parser parser, String userInput, Command expectedCommand) { try { Command command = parser.parse(userInput); assertEquals(expectedCommand, command); @@ -24,8 +23,8 @@ public static void assertParseSuccess(Parser parser, String userInput, Command e } /** - * Asserts that the parsing of {@code userInput} by {@code parser} is unsuccessful and the error message - * equals to {@code expectedMessage}. + * Asserts that the parsing of {@code userInput} by {@code parser} is unsuccessful and the error + * message equals to {@code expectedMessage}. */ public static void assertParseFailure(Parser parser, String userInput, String expectedMessage) { try { diff --git a/src/test/java/seedu/address/logic/parser/DeleteCommandParserTest.java b/src/test/java/seedu/address/logic/parser/DeleteCommandParserTest.java index 27eaec84450..ae5834510e8 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/DeleteCommandParserTest.java @@ -6,15 +6,13 @@ import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; import org.junit.jupiter.api.Test; - import seedu.address.logic.commands.DeleteCommand; /** - * As we are only doing white-box testing, our test cases do not cover path variations - * outside of the DeleteCommand code. For example, inputs "1" and "1 abc" take the - * same path through the DeleteCommand, and therefore we test only one of them. - * The path variation for those two cases occur inside the ParserUtil, and - * therefore should be covered by the ParserUtilTest. + * As we are only doing white-box testing, our test cases do not cover path variations outside of + * the DeleteCommand code. For example, inputs "1" and "1 abc" take the same path through the + * DeleteCommand, and therefore we test only one of them. The path variation for those two cases + * occur inside the ParserUtil, and therefore should be covered by the ParserUtilTest. */ public class DeleteCommandParserTest { @@ -27,6 +25,9 @@ public void parse_validArgs_returnsDeleteCommand() { @Test public void parse_invalidArgs_throwsParseException() { - assertParseFailure(parser, "a", String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteCommand.MESSAGE_USAGE)); + assertParseFailure( + parser, + "a", + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteCommand.MESSAGE_USAGE)); } } diff --git a/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java b/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java index 2ff31522486..f96db1a3537 100644 --- a/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java @@ -32,7 +32,6 @@ import static seedu.address.testutil.TypicalIndexes.INDEX_THIRD_PERSON; import org.junit.jupiter.api.Test; - import seedu.address.commons.core.index.Index; import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; @@ -81,39 +80,69 @@ public void parse_invalidPreamble_failure() { @Test public void parse_invalidValue_failure() { - assertParseFailure(parser, "1" + INVALID_NAME_DESC, Name.MESSAGE_CONSTRAINTS); // invalid name - assertParseFailure(parser, "1" + INVALID_PHONE_DESC, Phone.MESSAGE_CONSTRAINTS); // invalid phone - assertParseFailure(parser, "1" + INVALID_EMAIL_DESC, Email.MESSAGE_CONSTRAINTS); // invalid email - assertParseFailure(parser, "1" + INVALID_ADDRESS_DESC, Address.MESSAGE_CONSTRAINTS); // invalid address + assertParseFailure( + parser, "1" + INVALID_NAME_DESC, Name.MESSAGE_CONSTRAINTS); // invalid name + assertParseFailure( + parser, "1" + INVALID_PHONE_DESC, Phone.MESSAGE_CONSTRAINTS); // invalid phone + assertParseFailure( + parser, "1" + INVALID_EMAIL_DESC, Email.MESSAGE_CONSTRAINTS); // invalid email + assertParseFailure( + parser, "1" + INVALID_ADDRESS_DESC, Address.MESSAGE_CONSTRAINTS); // invalid address assertParseFailure(parser, "1" + INVALID_TAG_DESC, Tag.MESSAGE_CONSTRAINTS); // invalid tag // invalid phone followed by valid email - assertParseFailure(parser, "1" + INVALID_PHONE_DESC + EMAIL_DESC_AMY, Phone.MESSAGE_CONSTRAINTS); + assertParseFailure( + parser, "1" + INVALID_PHONE_DESC + EMAIL_DESC_AMY, Phone.MESSAGE_CONSTRAINTS); - // valid phone followed by invalid phone. The test case for invalid phone followed by valid phone + // valid phone followed by invalid phone. The test case for invalid phone followed by valid + // phone // is tested at {@code parse_invalidValueFollowedByValidValue_success()} - assertParseFailure(parser, "1" + PHONE_DESC_BOB + INVALID_PHONE_DESC, Phone.MESSAGE_CONSTRAINTS); + assertParseFailure( + parser, "1" + PHONE_DESC_BOB + INVALID_PHONE_DESC, Phone.MESSAGE_CONSTRAINTS); - // while parsing {@code PREFIX_TAG} alone will reset the tags of the {@code Person} being edited, + // while parsing {@code PREFIX_TAG} alone will reset the tags of the {@code Person} being + // edited, // parsing it together with a valid tag results in error - assertParseFailure(parser, "1" + TAG_DESC_FRIEND + TAG_DESC_HUSBAND + TAG_EMPTY, Tag.MESSAGE_CONSTRAINTS); - assertParseFailure(parser, "1" + TAG_DESC_FRIEND + TAG_EMPTY + TAG_DESC_HUSBAND, Tag.MESSAGE_CONSTRAINTS); - assertParseFailure(parser, "1" + TAG_EMPTY + TAG_DESC_FRIEND + TAG_DESC_HUSBAND, Tag.MESSAGE_CONSTRAINTS); + assertParseFailure( + parser, + "1" + TAG_DESC_FRIEND + TAG_DESC_HUSBAND + TAG_EMPTY, + Tag.MESSAGE_CONSTRAINTS); + assertParseFailure( + parser, + "1" + TAG_DESC_FRIEND + TAG_EMPTY + TAG_DESC_HUSBAND, + Tag.MESSAGE_CONSTRAINTS); + assertParseFailure( + parser, + "1" + TAG_EMPTY + TAG_DESC_FRIEND + TAG_DESC_HUSBAND, + Tag.MESSAGE_CONSTRAINTS); // multiple invalid values, but only the first invalid value is captured - assertParseFailure(parser, "1" + INVALID_NAME_DESC + INVALID_EMAIL_DESC + VALID_ADDRESS_AMY + VALID_PHONE_AMY, + assertParseFailure( + parser, + "1" + INVALID_NAME_DESC + INVALID_EMAIL_DESC + VALID_ADDRESS_AMY + VALID_PHONE_AMY, Name.MESSAGE_CONSTRAINTS); } @Test public void parse_allFieldsSpecified_success() { Index targetIndex = INDEX_SECOND_PERSON; - String userInput = targetIndex.getOneBased() + PHONE_DESC_BOB + TAG_DESC_HUSBAND - + EMAIL_DESC_AMY + ADDRESS_DESC_AMY + NAME_DESC_AMY + TAG_DESC_FRIEND; - - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_AMY) - .withPhone(VALID_PHONE_BOB).withEmail(VALID_EMAIL_AMY).withAddress(VALID_ADDRESS_AMY) - .withTags(VALID_TAG_HUSBAND, VALID_TAG_FRIEND).build(); + String userInput = + targetIndex.getOneBased() + + PHONE_DESC_BOB + + TAG_DESC_HUSBAND + + EMAIL_DESC_AMY + + ADDRESS_DESC_AMY + + NAME_DESC_AMY + + TAG_DESC_FRIEND; + + EditPersonDescriptor descriptor = + new EditPersonDescriptorBuilder() + .withName(VALID_NAME_AMY) + .withPhone(VALID_PHONE_BOB) + .withEmail(VALID_EMAIL_AMY) + .withAddress(VALID_ADDRESS_AMY) + .withTags(VALID_TAG_HUSBAND, VALID_TAG_FRIEND) + .build(); EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); @@ -124,8 +153,11 @@ public void parse_someFieldsSpecified_success() { Index targetIndex = INDEX_FIRST_PERSON; String userInput = targetIndex.getOneBased() + PHONE_DESC_BOB + EMAIL_DESC_AMY; - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_BOB) - .withEmail(VALID_EMAIL_AMY).build(); + EditPersonDescriptor descriptor = + new EditPersonDescriptorBuilder() + .withPhone(VALID_PHONE_BOB) + .withEmail(VALID_EMAIL_AMY) + .build(); EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); @@ -136,7 +168,8 @@ public void parse_oneFieldSpecified_success() { // name Index targetIndex = INDEX_THIRD_PERSON; String userInput = targetIndex.getOneBased() + NAME_DESC_AMY; - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_AMY).build(); + EditPersonDescriptor descriptor = + new EditPersonDescriptorBuilder().withName(VALID_NAME_AMY).build(); EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); @@ -168,13 +201,28 @@ public void parse_oneFieldSpecified_success() { @Test public void parse_multipleRepeatedFields_acceptsLast() { Index targetIndex = INDEX_FIRST_PERSON; - String userInput = targetIndex.getOneBased() + PHONE_DESC_AMY + ADDRESS_DESC_AMY + EMAIL_DESC_AMY - + TAG_DESC_FRIEND + PHONE_DESC_AMY + ADDRESS_DESC_AMY + EMAIL_DESC_AMY + TAG_DESC_FRIEND - + PHONE_DESC_BOB + ADDRESS_DESC_BOB + EMAIL_DESC_BOB + TAG_DESC_HUSBAND; - - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_BOB) - .withEmail(VALID_EMAIL_BOB).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_FRIEND, VALID_TAG_HUSBAND) - .build(); + String userInput = + targetIndex.getOneBased() + + PHONE_DESC_AMY + + ADDRESS_DESC_AMY + + EMAIL_DESC_AMY + + TAG_DESC_FRIEND + + PHONE_DESC_AMY + + ADDRESS_DESC_AMY + + EMAIL_DESC_AMY + + TAG_DESC_FRIEND + + PHONE_DESC_BOB + + ADDRESS_DESC_BOB + + EMAIL_DESC_BOB + + TAG_DESC_HUSBAND; + + EditPersonDescriptor descriptor = + new EditPersonDescriptorBuilder() + .withPhone(VALID_PHONE_BOB) + .withEmail(VALID_EMAIL_BOB) + .withAddress(VALID_ADDRESS_BOB) + .withTags(VALID_TAG_FRIEND, VALID_TAG_HUSBAND) + .build(); EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); @@ -185,15 +233,24 @@ public void parse_invalidValueFollowedByValidValue_success() { // no other valid values specified Index targetIndex = INDEX_FIRST_PERSON; String userInput = targetIndex.getOneBased() + INVALID_PHONE_DESC + PHONE_DESC_BOB; - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_BOB).build(); + EditPersonDescriptor descriptor = + new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_BOB).build(); EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); // other valid values specified - userInput = targetIndex.getOneBased() + EMAIL_DESC_BOB + INVALID_PHONE_DESC + ADDRESS_DESC_BOB - + PHONE_DESC_BOB; - descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_BOB).withEmail(VALID_EMAIL_BOB) - .withAddress(VALID_ADDRESS_BOB).build(); + userInput = + targetIndex.getOneBased() + + EMAIL_DESC_BOB + + INVALID_PHONE_DESC + + ADDRESS_DESC_BOB + + PHONE_DESC_BOB; + descriptor = + new EditPersonDescriptorBuilder() + .withPhone(VALID_PHONE_BOB) + .withEmail(VALID_EMAIL_BOB) + .withAddress(VALID_ADDRESS_BOB) + .build(); expectedCommand = new EditCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); } diff --git a/src/test/java/seedu/address/logic/parser/FindCommandParserTest.java b/src/test/java/seedu/address/logic/parser/FindCommandParserTest.java index 70f4f0e79c4..52313cbb069 100644 --- a/src/test/java/seedu/address/logic/parser/FindCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/FindCommandParserTest.java @@ -5,9 +5,7 @@ import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; import java.util.Arrays; - import org.junit.jupiter.api.Test; - import seedu.address.logic.commands.FindCommand; import seedu.address.model.person.NameContainsKeywordsPredicate; @@ -17,7 +15,10 @@ public class FindCommandParserTest { @Test public void parse_emptyArg_throwsParseException() { - assertParseFailure(parser, " ", String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); + assertParseFailure( + parser, + " ", + String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); } @Test @@ -30,5 +31,4 @@ public void parse_validArgs_returnsFindCommand() { // multiple whitespaces between keywords assertParseSuccess(parser, " \n Alice \n \t Bob \t", expectedFindCommand); } - } diff --git a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java index 4256788b1a7..db304fb84ce 100644 --- a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java +++ b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java @@ -10,9 +10,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.Set; - import org.junit.jupiter.api.Test; - import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.person.Address; import seedu.address.model.person.Email; @@ -43,8 +41,10 @@ public void parseIndex_invalidInput_throwsParseException() { @Test public void parseIndex_outOfRangeInput_throwsParseException() { - assertThrows(ParseException.class, MESSAGE_INVALID_INDEX, () - -> ParserUtil.parseIndex(Long.toString(Integer.MAX_VALUE + 1))); + assertThrows( + ParseException.class, + MESSAGE_INVALID_INDEX, + () -> ParserUtil.parseIndex(Long.toString(Integer.MAX_VALUE + 1))); } @Test @@ -178,7 +178,9 @@ public void parseTags_null_throwsNullPointerException() { @Test public void parseTags_collectionWithInvalidTags_throwsParseException() { - assertThrows(ParseException.class, () -> ParserUtil.parseTags(Arrays.asList(VALID_TAG_1, INVALID_TAG))); + assertThrows( + ParseException.class, + () -> ParserUtil.parseTags(Arrays.asList(VALID_TAG_1, INVALID_TAG))); } @Test @@ -189,7 +191,8 @@ public void parseTags_emptyCollection_returnsEmptySet() throws Exception { @Test public void parseTags_collectionWithValidTags_returnsTagSet() throws Exception { Set actualTagSet = ParserUtil.parseTags(Arrays.asList(VALID_TAG_1, VALID_TAG_2)); - Set expectedTagSet = new HashSet(Arrays.asList(new Tag(VALID_TAG_1), new Tag(VALID_TAG_2))); + Set expectedTagSet = + new HashSet(Arrays.asList(new Tag(VALID_TAG_1), new Tag(VALID_TAG_2))); assertEquals(expectedTagSet, actualTagSet); } diff --git a/src/test/java/seedu/address/model/AddressBookTest.java b/src/test/java/seedu/address/model/AddressBookTest.java index 87782528ecd..362e51b224a 100644 --- a/src/test/java/seedu/address/model/AddressBookTest.java +++ b/src/test/java/seedu/address/model/AddressBookTest.java @@ -13,11 +13,9 @@ import java.util.Collection; import java.util.Collections; import java.util.List; - -import org.junit.jupiter.api.Test; - import javafx.collections.FXCollections; import javafx.collections.ObservableList; +import org.junit.jupiter.api.Test; import seedu.address.model.person.Person; import seedu.address.model.person.exceptions.DuplicatePersonException; import seedu.address.testutil.PersonBuilder; @@ -46,8 +44,11 @@ public void resetData_withValidReadOnlyAddressBook_replacesData() { @Test public void resetData_withDuplicatePersons_throwsDuplicatePersonException() { // Two persons with the same identity fields - Person editedAlice = new PersonBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND) - .build(); + Person editedAlice = + new PersonBuilder(ALICE) + .withAddress(VALID_ADDRESS_BOB) + .withTags(VALID_TAG_HUSBAND) + .build(); List newPersons = Arrays.asList(ALICE, editedAlice); AddressBookStub newData = new AddressBookStub(newPersons); @@ -73,19 +74,21 @@ public void hasPerson_personInAddressBook_returnsTrue() { @Test public void hasPerson_personWithSameIdentityFieldsInAddressBook_returnsTrue() { addressBook.addPerson(ALICE); - Person editedAlice = new PersonBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND) - .build(); + Person editedAlice = + new PersonBuilder(ALICE) + .withAddress(VALID_ADDRESS_BOB) + .withTags(VALID_TAG_HUSBAND) + .build(); assertTrue(addressBook.hasPerson(editedAlice)); } @Test public void getPersonList_modifyList_throwsUnsupportedOperationException() { - assertThrows(UnsupportedOperationException.class, () -> addressBook.getPersonList().remove(0)); + assertThrows( + UnsupportedOperationException.class, () -> addressBook.getPersonList().remove(0)); } - /** - * A stub ReadOnlyAddressBook whose persons list can violate interface constraints. - */ + /** A stub ReadOnlyAddressBook whose persons list can violate interface constraints. */ private static class AddressBookStub implements ReadOnlyAddressBook { private final ObservableList persons = FXCollections.observableArrayList(); @@ -98,5 +101,4 @@ public ObservableList getPersonList() { return persons; } } - } diff --git a/src/test/java/seedu/address/model/ModelManagerTest.java b/src/test/java/seedu/address/model/ModelManagerTest.java index 2cf1418d116..49c012bbbd1 100644 --- a/src/test/java/seedu/address/model/ModelManagerTest.java +++ b/src/test/java/seedu/address/model/ModelManagerTest.java @@ -11,9 +11,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.Arrays; - import org.junit.jupiter.api.Test; - import seedu.address.commons.core.GuiSettings; import seedu.address.model.person.NameContainsKeywordsPredicate; import seedu.address.testutil.AddressBookBuilder; @@ -90,12 +88,15 @@ public void hasPerson_personInAddressBook_returnsTrue() { @Test public void getFilteredPersonList_modifyList_throwsUnsupportedOperationException() { - assertThrows(UnsupportedOperationException.class, () -> modelManager.getFilteredPersonList().remove(0)); + assertThrows( + UnsupportedOperationException.class, + () -> modelManager.getFilteredPersonList().remove(0)); } @Test public void equals() { - AddressBook addressBook = new AddressBookBuilder().withPerson(ALICE).withPerson(BENSON).build(); + AddressBook addressBook = + new AddressBookBuilder().withPerson(ALICE).withPerson(BENSON).build(); AddressBook differentAddressBook = new AddressBook(); UserPrefs userPrefs = new UserPrefs(); @@ -118,7 +119,8 @@ public void equals() { // different filteredList -> returns false String[] keywords = ALICE.getName().fullName.split("\\s+"); - modelManager.updateFilteredPersonList(new NameContainsKeywordsPredicate(Arrays.asList(keywords))); + modelManager.updateFilteredPersonList( + new NameContainsKeywordsPredicate(Arrays.asList(keywords))); assertFalse(modelManager.equals(new ModelManager(addressBook, userPrefs))); // resets modelManager to initial state for upcoming tests diff --git a/src/test/java/seedu/address/model/UserPrefsTest.java b/src/test/java/seedu/address/model/UserPrefsTest.java index b1307a70d52..d63b31a730e 100644 --- a/src/test/java/seedu/address/model/UserPrefsTest.java +++ b/src/test/java/seedu/address/model/UserPrefsTest.java @@ -17,5 +17,4 @@ public void setAddressBookFilePath_nullPath_throwsNullPointerException() { UserPrefs userPrefs = new UserPrefs(); assertThrows(NullPointerException.class, () -> userPrefs.setAddressBookFilePath(null)); } - } diff --git a/src/test/java/seedu/address/model/person/AddressTest.java b/src/test/java/seedu/address/model/person/AddressTest.java index dcd3be87b3a..913be7c6ece 100644 --- a/src/test/java/seedu/address/model/person/AddressTest.java +++ b/src/test/java/seedu/address/model/person/AddressTest.java @@ -31,6 +31,8 @@ public void isValidAddress() { // valid addresses assertTrue(Address.isValidAddress("Blk 456, Den Road, #01-355")); assertTrue(Address.isValidAddress("-")); // one character - assertTrue(Address.isValidAddress("Leng Inc; 1234 Market St; San Francisco CA 2349879; USA")); // long address + assertTrue( + Address.isValidAddress( + "Leng Inc; 1234 Market St; San Francisco CA 2349879; USA")); // long address } } diff --git a/src/test/java/seedu/address/model/person/EmailTest.java b/src/test/java/seedu/address/model/person/EmailTest.java index 7fa726ceb18..43c1420ebf8 100644 --- a/src/test/java/seedu/address/model/person/EmailTest.java +++ b/src/test/java/seedu/address/model/person/EmailTest.java @@ -43,19 +43,28 @@ public void isValidEmail() { assertFalse(Email.isValidEmail("peterjack@@example.com")); // double '@' symbol assertFalse(Email.isValidEmail("peter@jack@example.com")); // '@' symbol in local part assertFalse(Email.isValidEmail("peterjack@example@com")); // '@' symbol in domain name - assertFalse(Email.isValidEmail("peterjack@.example.com")); // domain name starts with a period + assertFalse( + Email.isValidEmail("peterjack@.example.com")); // domain name starts with a period assertFalse(Email.isValidEmail("peterjack@example.com.")); // domain name ends with a period - assertFalse(Email.isValidEmail("peterjack@-example.com")); // domain name starts with a hyphen + assertFalse( + Email.isValidEmail("peterjack@-example.com")); // domain name starts with a hyphen assertFalse(Email.isValidEmail("peterjack@example.com-")); // domain name ends with a hyphen // valid email assertTrue(Email.isValidEmail("PeterJack_1190@example.com")); assertTrue(Email.isValidEmail("a@bc")); // minimal assertTrue(Email.isValidEmail("test@localhost")); // alphabets only - assertTrue(Email.isValidEmail("!#$%&'*+/=?`{|}~^.-@example.org")); // special characters local part + assertTrue( + Email.isValidEmail( + "!#$%&'*+/=?`{|}~^.-@example.org")); // special characters local part assertTrue(Email.isValidEmail("123@145")); // numeric local part and domain name - assertTrue(Email.isValidEmail("a1+be!@example1.com")); // mixture of alphanumeric and special characters - assertTrue(Email.isValidEmail("peter_jack@very-very-very-long-example.com")); // long domain name - assertTrue(Email.isValidEmail("if.you.dream.it_you.can.do.it@example.com")); // long local part + assertTrue( + Email.isValidEmail( + "a1+be!@example1.com")); // mixture of alphanumeric and special characters + assertTrue( + Email.isValidEmail( + "peter_jack@very-very-very-long-example.com")); // long domain name + assertTrue( + Email.isValidEmail("if.you.dream.it_you.can.do.it@example.com")); // long local part } } diff --git a/src/test/java/seedu/address/model/person/NameContainsKeywordsPredicateTest.java b/src/test/java/seedu/address/model/person/NameContainsKeywordsPredicateTest.java index f136664e017..11f771e502f 100644 --- a/src/test/java/seedu/address/model/person/NameContainsKeywordsPredicateTest.java +++ b/src/test/java/seedu/address/model/person/NameContainsKeywordsPredicateTest.java @@ -6,9 +6,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; - import org.junit.jupiter.api.Test; - import seedu.address.testutil.PersonBuilder; public class NameContainsKeywordsPredicateTest { @@ -18,14 +16,17 @@ public void equals() { List firstPredicateKeywordList = Collections.singletonList("first"); List secondPredicateKeywordList = Arrays.asList("first", "second"); - NameContainsKeywordsPredicate firstPredicate = new NameContainsKeywordsPredicate(firstPredicateKeywordList); - NameContainsKeywordsPredicate secondPredicate = new NameContainsKeywordsPredicate(secondPredicateKeywordList); + NameContainsKeywordsPredicate firstPredicate = + new NameContainsKeywordsPredicate(firstPredicateKeywordList); + NameContainsKeywordsPredicate secondPredicate = + new NameContainsKeywordsPredicate(secondPredicateKeywordList); // same object -> returns true assertTrue(firstPredicate.equals(firstPredicate)); // same values -> returns true - NameContainsKeywordsPredicate firstPredicateCopy = new NameContainsKeywordsPredicate(firstPredicateKeywordList); + NameContainsKeywordsPredicate firstPredicateCopy = + new NameContainsKeywordsPredicate(firstPredicateKeywordList); assertTrue(firstPredicate.equals(firstPredicateCopy)); // different types -> returns false @@ -41,7 +42,8 @@ public void equals() { @Test public void test_nameContainsKeywords_returnsTrue() { // One keyword - NameContainsKeywordsPredicate predicate = new NameContainsKeywordsPredicate(Collections.singletonList("Alice")); + NameContainsKeywordsPredicate predicate = + new NameContainsKeywordsPredicate(Collections.singletonList("Alice")); assertTrue(predicate.test(new PersonBuilder().withName("Alice Bob").build())); // Multiple keywords @@ -60,7 +62,8 @@ public void test_nameContainsKeywords_returnsTrue() { @Test public void test_nameDoesNotContainKeywords_returnsFalse() { // Zero keywords - NameContainsKeywordsPredicate predicate = new NameContainsKeywordsPredicate(Collections.emptyList()); + NameContainsKeywordsPredicate predicate = + new NameContainsKeywordsPredicate(Collections.emptyList()); assertFalse(predicate.test(new PersonBuilder().withName("Alice").build())); // Non-matching keyword @@ -68,8 +71,16 @@ public void test_nameDoesNotContainKeywords_returnsFalse() { assertFalse(predicate.test(new PersonBuilder().withName("Alice Bob").build())); // Keywords match phone, email and address, but does not match name - predicate = new NameContainsKeywordsPredicate(Arrays.asList("12345", "alice@email.com", "Main", "Street")); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("12345") - .withEmail("alice@email.com").withAddress("Main Street").build())); + predicate = + new NameContainsKeywordsPredicate( + Arrays.asList("12345", "alice@email.com", "Main", "Street")); + assertFalse( + predicate.test( + new PersonBuilder() + .withName("Alice") + .withPhone("12345") + .withEmail("alice@email.com") + .withAddress("Main Street") + .build())); } } diff --git a/src/test/java/seedu/address/model/person/PersonTest.java b/src/test/java/seedu/address/model/person/PersonTest.java index 7c1058d8635..5549e21f667 100644 --- a/src/test/java/seedu/address/model/person/PersonTest.java +++ b/src/test/java/seedu/address/model/person/PersonTest.java @@ -12,7 +12,6 @@ import static seedu.address.testutil.TypicalPersons.BOB; import org.junit.jupiter.api.Test; - import seedu.address.testutil.PersonBuilder; public class PersonTest { @@ -32,7 +31,11 @@ public void isSamePerson() { assertFalse(ALICE.isSamePerson(null)); // different phone and email -> returns false - Person editedAlice = new PersonBuilder(ALICE).withPhone(VALID_PHONE_BOB).withEmail(VALID_EMAIL_BOB).build(); + Person editedAlice = + new PersonBuilder(ALICE) + .withPhone(VALID_PHONE_BOB) + .withEmail(VALID_EMAIL_BOB) + .build(); assertFalse(ALICE.isSamePerson(editedAlice)); // different name -> returns false @@ -40,17 +43,29 @@ public void isSamePerson() { assertFalse(ALICE.isSamePerson(editedAlice)); // same name, same phone, different attributes -> returns true - editedAlice = new PersonBuilder(ALICE).withEmail(VALID_EMAIL_BOB).withAddress(VALID_ADDRESS_BOB) - .withTags(VALID_TAG_HUSBAND).build(); + editedAlice = + new PersonBuilder(ALICE) + .withEmail(VALID_EMAIL_BOB) + .withAddress(VALID_ADDRESS_BOB) + .withTags(VALID_TAG_HUSBAND) + .build(); assertTrue(ALICE.isSamePerson(editedAlice)); // same name, same email, different attributes -> returns true - editedAlice = new PersonBuilder(ALICE).withPhone(VALID_PHONE_BOB).withAddress(VALID_ADDRESS_BOB) - .withTags(VALID_TAG_HUSBAND).build(); + editedAlice = + new PersonBuilder(ALICE) + .withPhone(VALID_PHONE_BOB) + .withAddress(VALID_ADDRESS_BOB) + .withTags(VALID_TAG_HUSBAND) + .build(); assertTrue(ALICE.isSamePerson(editedAlice)); // same name, same phone, same email, different attributes -> returns true - editedAlice = new PersonBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND).build(); + editedAlice = + new PersonBuilder(ALICE) + .withAddress(VALID_ADDRESS_BOB) + .withTags(VALID_TAG_HUSBAND) + .build(); assertTrue(ALICE.isSamePerson(editedAlice)); } diff --git a/src/test/java/seedu/address/model/person/UniquePersonListTest.java b/src/test/java/seedu/address/model/person/UniquePersonListTest.java index 1cc5fe9e0fe..684322c447a 100644 --- a/src/test/java/seedu/address/model/person/UniquePersonListTest.java +++ b/src/test/java/seedu/address/model/person/UniquePersonListTest.java @@ -12,9 +12,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; - import org.junit.jupiter.api.Test; - import seedu.address.model.person.exceptions.DuplicatePersonException; import seedu.address.model.person.exceptions.PersonNotFoundException; import seedu.address.testutil.PersonBuilder; @@ -42,8 +40,11 @@ public void contains_personInList_returnsTrue() { @Test public void contains_personWithSameIdentityFieldsInList_returnsTrue() { uniquePersonList.add(ALICE); - Person editedAlice = new PersonBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND) - .build(); + Person editedAlice = + new PersonBuilder(ALICE) + .withAddress(VALID_ADDRESS_BOB) + .withTags(VALID_TAG_HUSBAND) + .build(); assertTrue(uniquePersonList.contains(editedAlice)); } @@ -85,8 +86,11 @@ public void setPerson_editedPersonIsSamePerson_success() { @Test public void setPerson_editedPersonHasSameIdentity_success() { uniquePersonList.add(ALICE); - Person editedAlice = new PersonBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND) - .build(); + Person editedAlice = + new PersonBuilder(ALICE) + .withAddress(VALID_ADDRESS_BOB) + .withTags(VALID_TAG_HUSBAND) + .build(); uniquePersonList.setPerson(ALICE, editedAlice); UniquePersonList expectedUniquePersonList = new UniquePersonList(); expectedUniquePersonList.add(editedAlice); @@ -129,7 +133,9 @@ public void remove_existingPerson_removesPerson() { @Test public void setPersons_nullUniquePersonList_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> uniquePersonList.setPersons((UniquePersonList) null)); + assertThrows( + NullPointerException.class, + () -> uniquePersonList.setPersons((UniquePersonList) null)); } @Test @@ -143,7 +149,8 @@ public void setPersons_uniquePersonList_replacesOwnListWithProvidedUniquePersonL @Test public void setPersons_nullList_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> uniquePersonList.setPersons((List) null)); + assertThrows( + NullPointerException.class, () -> uniquePersonList.setPersons((List) null)); } @Test @@ -159,12 +166,15 @@ public void setPersons_list_replacesOwnListWithProvidedList() { @Test public void setPersons_listWithDuplicatePersons_throwsDuplicatePersonException() { List listWithDuplicatePersons = Arrays.asList(ALICE, ALICE); - assertThrows(DuplicatePersonException.class, () -> uniquePersonList.setPersons(listWithDuplicatePersons)); + assertThrows( + DuplicatePersonException.class, + () -> uniquePersonList.setPersons(listWithDuplicatePersons)); } @Test public void asUnmodifiableObservableList_modifyList_throwsUnsupportedOperationException() { - assertThrows(UnsupportedOperationException.class, () - -> uniquePersonList.asUnmodifiableObservableList().remove(0)); + assertThrows( + UnsupportedOperationException.class, + () -> uniquePersonList.asUnmodifiableObservableList().remove(0)); } } diff --git a/src/test/java/seedu/address/model/tag/TagTest.java b/src/test/java/seedu/address/model/tag/TagTest.java index 64d07d79ee2..c6329608274 100644 --- a/src/test/java/seedu/address/model/tag/TagTest.java +++ b/src/test/java/seedu/address/model/tag/TagTest.java @@ -22,5 +22,4 @@ public void isValidTagName() { // null tag name assertThrows(NullPointerException.class, () -> Tag.isValidTagName(null)); } - } diff --git a/src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java b/src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java index 83b11331cdb..1cb51ada27a 100644 --- a/src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java +++ b/src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java @@ -8,9 +8,7 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; - import org.junit.jupiter.api.Test; - import seedu.address.commons.exceptions.IllegalValueException; import seedu.address.model.person.Address; import seedu.address.model.person.Email; @@ -28,9 +26,8 @@ public class JsonAdaptedPersonTest { private static final String VALID_PHONE = BENSON.getPhone().toString(); private static final String VALID_EMAIL = BENSON.getEmail().toString(); private static final String VALID_ADDRESS = BENSON.getAddress().toString(); - private static final List VALID_TAGS = BENSON.getTags().stream() - .map(JsonAdaptedTag::new) - .collect(Collectors.toList()); + private static final List VALID_TAGS = + BENSON.getTags().stream().map(JsonAdaptedTag::new).collect(Collectors.toList()); @Test public void toModelType_validPersonDetails_returnsPerson() throws Exception { @@ -41,60 +38,72 @@ public void toModelType_validPersonDetails_returnsPerson() throws Exception { @Test public void toModelType_invalidName_throwsIllegalValueException() { JsonAdaptedPerson person = - new JsonAdaptedPerson(INVALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); + new JsonAdaptedPerson( + INVALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); String expectedMessage = Name.MESSAGE_CONSTRAINTS; assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test public void toModelType_nullName_throwsIllegalValueException() { - JsonAdaptedPerson person = new JsonAdaptedPerson(null, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); - String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName()); + JsonAdaptedPerson person = + new JsonAdaptedPerson(null, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); + String expectedMessage = + String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName()); assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test public void toModelType_invalidPhone_throwsIllegalValueException() { JsonAdaptedPerson person = - new JsonAdaptedPerson(VALID_NAME, INVALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); + new JsonAdaptedPerson( + VALID_NAME, INVALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); String expectedMessage = Phone.MESSAGE_CONSTRAINTS; assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test public void toModelType_nullPhone_throwsIllegalValueException() { - JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, null, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); - String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Phone.class.getSimpleName()); + JsonAdaptedPerson person = + new JsonAdaptedPerson(VALID_NAME, null, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); + String expectedMessage = + String.format(MISSING_FIELD_MESSAGE_FORMAT, Phone.class.getSimpleName()); assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test public void toModelType_invalidEmail_throwsIllegalValueException() { JsonAdaptedPerson person = - new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, INVALID_EMAIL, VALID_ADDRESS, VALID_TAGS); + new JsonAdaptedPerson( + VALID_NAME, VALID_PHONE, INVALID_EMAIL, VALID_ADDRESS, VALID_TAGS); String expectedMessage = Email.MESSAGE_CONSTRAINTS; assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test public void toModelType_nullEmail_throwsIllegalValueException() { - JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, null, VALID_ADDRESS, VALID_TAGS); - String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Email.class.getSimpleName()); + JsonAdaptedPerson person = + new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, null, VALID_ADDRESS, VALID_TAGS); + String expectedMessage = + String.format(MISSING_FIELD_MESSAGE_FORMAT, Email.class.getSimpleName()); assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test public void toModelType_invalidAddress_throwsIllegalValueException() { JsonAdaptedPerson person = - new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, INVALID_ADDRESS, VALID_TAGS); + new JsonAdaptedPerson( + VALID_NAME, VALID_PHONE, VALID_EMAIL, INVALID_ADDRESS, VALID_TAGS); String expectedMessage = Address.MESSAGE_CONSTRAINTS; assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test public void toModelType_nullAddress_throwsIllegalValueException() { - JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, null, VALID_TAGS); - String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Address.class.getSimpleName()); + JsonAdaptedPerson person = + new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, null, VALID_TAGS); + String expectedMessage = + String.format(MISSING_FIELD_MESSAGE_FORMAT, Address.class.getSimpleName()); assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -103,8 +112,8 @@ public void toModelType_invalidTags_throwsIllegalValueException() { List invalidTags = new ArrayList<>(VALID_TAGS); invalidTags.add(new JsonAdaptedTag(INVALID_TAG)); JsonAdaptedPerson person = - new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, invalidTags); + new JsonAdaptedPerson( + VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, invalidTags); assertThrows(IllegalValueException.class, person::toModelType); } - } diff --git a/src/test/java/seedu/address/storage/JsonAddressBookStorageTest.java b/src/test/java/seedu/address/storage/JsonAddressBookStorageTest.java index ac3c3af9566..31cda97faf8 100644 --- a/src/test/java/seedu/address/storage/JsonAddressBookStorageTest.java +++ b/src/test/java/seedu/address/storage/JsonAddressBookStorageTest.java @@ -11,27 +11,27 @@ import java.io.IOException; import java.nio.file.Path; import java.nio.file.Paths; - import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; - import seedu.address.commons.exceptions.DataConversionException; import seedu.address.model.AddressBook; import seedu.address.model.ReadOnlyAddressBook; public class JsonAddressBookStorageTest { - private static final Path TEST_DATA_FOLDER = Paths.get("src", "test", "data", "JsonAddressBookStorageTest"); + private static final Path TEST_DATA_FOLDER = + Paths.get("src", "test", "data", "JsonAddressBookStorageTest"); - @TempDir - public Path testFolder; + @TempDir public Path testFolder; @Test public void readAddressBook_nullFilePath_throwsNullPointerException() { assertThrows(NullPointerException.class, () -> readAddressBook(null)); } - private java.util.Optional readAddressBook(String filePath) throws Exception { - return new JsonAddressBookStorage(Paths.get(filePath)).readAddressBook(addToTestDataPathIfNotNull(filePath)); + private java.util.Optional readAddressBook(String filePath) + throws Exception { + return new JsonAddressBookStorage(Paths.get(filePath)) + .readAddressBook(addToTestDataPathIfNotNull(filePath)); } private Path addToTestDataPathIfNotNull(String prefsFileInTestDataFolder) { @@ -47,17 +47,23 @@ public void read_missingFile_emptyResult() throws Exception { @Test public void read_notJsonFormat_exceptionThrown() { - assertThrows(DataConversionException.class, () -> readAddressBook("notJsonFormatAddressBook.json")); + assertThrows( + DataConversionException.class, + () -> readAddressBook("notJsonFormatAddressBook.json")); } @Test public void readAddressBook_invalidPersonAddressBook_throwDataConversionException() { - assertThrows(DataConversionException.class, () -> readAddressBook("invalidPersonAddressBook.json")); + assertThrows( + DataConversionException.class, + () -> readAddressBook("invalidPersonAddressBook.json")); } @Test public void readAddressBook_invalidAndValidPersonAddressBook_throwDataConversionException() { - assertThrows(DataConversionException.class, () -> readAddressBook("invalidAndValidPersonAddressBook.json")); + assertThrows( + DataConversionException.class, + () -> readAddressBook("invalidAndValidPersonAddressBook.json")); } @Test @@ -83,7 +89,6 @@ public void readAndSaveAddressBook_allInOrder_success() throws Exception { jsonAddressBookStorage.saveAddressBook(original); // file path not specified readBack = jsonAddressBookStorage.readAddressBook().get(); // file path not specified assertEquals(original, new AddressBook(readBack)); - } @Test @@ -91,9 +96,7 @@ public void saveAddressBook_nullAddressBook_throwsNullPointerException() { assertThrows(NullPointerException.class, () -> saveAddressBook(null, "SomeFile.json")); } - /** - * Saves {@code addressBook} at the specified {@code filePath}. - */ + /** Saves {@code addressBook} at the specified {@code filePath}. */ private void saveAddressBook(ReadOnlyAddressBook addressBook, String filePath) { try { new JsonAddressBookStorage(Paths.get(filePath)) diff --git a/src/test/java/seedu/address/storage/JsonSerializableAddressBookTest.java b/src/test/java/seedu/address/storage/JsonSerializableAddressBookTest.java index 188c9058d20..61a3717be5d 100644 --- a/src/test/java/seedu/address/storage/JsonSerializableAddressBookTest.java +++ b/src/test/java/seedu/address/storage/JsonSerializableAddressBookTest.java @@ -5,9 +5,7 @@ import java.nio.file.Path; import java.nio.file.Paths; - import org.junit.jupiter.api.Test; - import seedu.address.commons.exceptions.IllegalValueException; import seedu.address.commons.util.JsonUtil; import seedu.address.model.AddressBook; @@ -15,15 +13,20 @@ public class JsonSerializableAddressBookTest { - private static final Path TEST_DATA_FOLDER = Paths.get("src", "test", "data", "JsonSerializableAddressBookTest"); - private static final Path TYPICAL_PERSONS_FILE = TEST_DATA_FOLDER.resolve("typicalPersonsAddressBook.json"); - private static final Path INVALID_PERSON_FILE = TEST_DATA_FOLDER.resolve("invalidPersonAddressBook.json"); - private static final Path DUPLICATE_PERSON_FILE = TEST_DATA_FOLDER.resolve("duplicatePersonAddressBook.json"); + private static final Path TEST_DATA_FOLDER = + Paths.get("src", "test", "data", "JsonSerializableAddressBookTest"); + private static final Path TYPICAL_PERSONS_FILE = + TEST_DATA_FOLDER.resolve("typicalPersonsAddressBook.json"); + private static final Path INVALID_PERSON_FILE = + TEST_DATA_FOLDER.resolve("invalidPersonAddressBook.json"); + private static final Path DUPLICATE_PERSON_FILE = + TEST_DATA_FOLDER.resolve("duplicatePersonAddressBook.json"); @Test public void toModelType_typicalPersonsFile_success() throws Exception { - JsonSerializableAddressBook dataFromFile = JsonUtil.readJsonFile(TYPICAL_PERSONS_FILE, - JsonSerializableAddressBook.class).get(); + JsonSerializableAddressBook dataFromFile = + JsonUtil.readJsonFile(TYPICAL_PERSONS_FILE, JsonSerializableAddressBook.class) + .get(); AddressBook addressBookFromFile = dataFromFile.toModelType(); AddressBook typicalPersonsAddressBook = TypicalPersons.getTypicalAddressBook(); assertEquals(addressBookFromFile, typicalPersonsAddressBook); @@ -31,17 +34,19 @@ public void toModelType_typicalPersonsFile_success() throws Exception { @Test public void toModelType_invalidPersonFile_throwsIllegalValueException() throws Exception { - JsonSerializableAddressBook dataFromFile = JsonUtil.readJsonFile(INVALID_PERSON_FILE, - JsonSerializableAddressBook.class).get(); + JsonSerializableAddressBook dataFromFile = + JsonUtil.readJsonFile(INVALID_PERSON_FILE, JsonSerializableAddressBook.class).get(); assertThrows(IllegalValueException.class, dataFromFile::toModelType); } @Test public void toModelType_duplicatePersons_throwsIllegalValueException() throws Exception { - JsonSerializableAddressBook dataFromFile = JsonUtil.readJsonFile(DUPLICATE_PERSON_FILE, - JsonSerializableAddressBook.class).get(); - assertThrows(IllegalValueException.class, JsonSerializableAddressBook.MESSAGE_DUPLICATE_PERSON, + JsonSerializableAddressBook dataFromFile = + JsonUtil.readJsonFile(DUPLICATE_PERSON_FILE, JsonSerializableAddressBook.class) + .get(); + assertThrows( + IllegalValueException.class, + JsonSerializableAddressBook.MESSAGE_DUPLICATE_PERSON, dataFromFile::toModelType); } - } diff --git a/src/test/java/seedu/address/storage/JsonUserPrefsStorageTest.java b/src/test/java/seedu/address/storage/JsonUserPrefsStorageTest.java index 16f33f4a6bb..01b991c271b 100644 --- a/src/test/java/seedu/address/storage/JsonUserPrefsStorageTest.java +++ b/src/test/java/seedu/address/storage/JsonUserPrefsStorageTest.java @@ -8,27 +8,26 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.Optional; - import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; - import seedu.address.commons.core.GuiSettings; import seedu.address.commons.exceptions.DataConversionException; import seedu.address.model.UserPrefs; public class JsonUserPrefsStorageTest { - private static final Path TEST_DATA_FOLDER = Paths.get("src", "test", "data", "JsonUserPrefsStorageTest"); + private static final Path TEST_DATA_FOLDER = + Paths.get("src", "test", "data", "JsonUserPrefsStorageTest"); - @TempDir - public Path testFolder; + @TempDir public Path testFolder; @Test public void readUserPrefs_nullFilePath_throwsNullPointerException() { assertThrows(NullPointerException.class, () -> readUserPrefs(null)); } - private Optional readUserPrefs(String userPrefsFileInTestDataFolder) throws DataConversionException { + private Optional readUserPrefs(String userPrefsFileInTestDataFolder) + throws DataConversionException { Path prefsFilePath = addToTestDataPathIfNotNull(userPrefsFileInTestDataFolder); return new JsonUserPrefsStorage(prefsFilePath).readUserPrefs(prefsFilePath); } @@ -40,7 +39,8 @@ public void readUserPrefs_missingFile_emptyResult() throws DataConversionExcepti @Test public void readUserPrefs_notJsonFormat_exceptionThrown() { - assertThrows(DataConversionException.class, () -> readUserPrefs("NotJsonFormatUserPrefs.json")); + assertThrows( + DataConversionException.class, () -> readUserPrefs("NotJsonFormatUserPrefs.json")); } private Path addToTestDataPathIfNotNull(String userPrefsFileInTestDataFolder) { @@ -57,13 +57,15 @@ public void readUserPrefs_fileInOrder_successfullyRead() throws DataConversionEx } @Test - public void readUserPrefs_valuesMissingFromFile_defaultValuesUsed() throws DataConversionException { + public void readUserPrefs_valuesMissingFromFile_defaultValuesUsed() + throws DataConversionException { UserPrefs actual = readUserPrefs("EmptyUserPrefs.json").get(); assertEquals(new UserPrefs(), actual); } @Test - public void readUserPrefs_extraValuesInFile_extraValuesIgnored() throws DataConversionException { + public void readUserPrefs_extraValuesInFile_extraValuesIgnored() + throws DataConversionException { UserPrefs expected = getTypicalUserPrefs(); UserPrefs actual = readUserPrefs("ExtraValuesUserPref.json").get(); @@ -87,9 +89,7 @@ public void saveUserPrefs_nullFilePath_throwsNullPointerException() { assertThrows(NullPointerException.class, () -> saveUserPrefs(new UserPrefs(), null)); } - /** - * Saves {@code userPrefs} at the specified {@code prefsFileInTestDataFolder} filepath. - */ + /** Saves {@code userPrefs} at the specified {@code prefsFileInTestDataFolder} filepath. */ private void saveUserPrefs(UserPrefs userPrefs, String prefsFileInTestDataFolder) { try { new JsonUserPrefsStorage(addToTestDataPathIfNotNull(prefsFileInTestDataFolder)) @@ -108,16 +108,15 @@ public void saveUserPrefs_allInOrder_success() throws DataConversionException, I Path pefsFilePath = testFolder.resolve("TempPrefs.json"); JsonUserPrefsStorage jsonUserPrefsStorage = new JsonUserPrefsStorage(pefsFilePath); - //Try writing when the file doesn't exist + // Try writing when the file doesn't exist jsonUserPrefsStorage.saveUserPrefs(original); UserPrefs readBack = jsonUserPrefsStorage.readUserPrefs().get(); assertEquals(original, readBack); - //Try saving when the file exists + // Try saving when the file exists original.setGuiSettings(new GuiSettings(5, 5, 5, 5)); jsonUserPrefsStorage.saveUserPrefs(original); readBack = jsonUserPrefsStorage.readUserPrefs().get(); assertEquals(original, readBack); } - } diff --git a/src/test/java/seedu/address/storage/StorageManagerTest.java b/src/test/java/seedu/address/storage/StorageManagerTest.java index 99a16548970..97232e8fdb4 100644 --- a/src/test/java/seedu/address/storage/StorageManagerTest.java +++ b/src/test/java/seedu/address/storage/StorageManagerTest.java @@ -5,11 +5,9 @@ import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import java.nio.file.Path; - import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; - import seedu.address.commons.core.GuiSettings; import seedu.address.model.AddressBook; import seedu.address.model.ReadOnlyAddressBook; @@ -17,14 +15,14 @@ public class StorageManagerTest { - @TempDir - public Path testFolder; + @TempDir public Path testFolder; private StorageManager storageManager; @BeforeEach public void setUp() { - JsonAddressBookStorage addressBookStorage = new JsonAddressBookStorage(getTempFilePath("ab")); + JsonAddressBookStorage addressBookStorage = + new JsonAddressBookStorage(getTempFilePath("ab")); JsonUserPrefsStorage userPrefsStorage = new JsonUserPrefsStorage(getTempFilePath("prefs")); storageManager = new StorageManager(addressBookStorage, userPrefsStorage); } @@ -64,5 +62,4 @@ public void addressBookReadSave() throws Exception { public void getAddressBookFilePath() { assertNotNull(storageManager.getAddressBookFilePath()); } - } diff --git a/src/test/java/seedu/address/testutil/AddressBookBuilder.java b/src/test/java/seedu/address/testutil/AddressBookBuilder.java index d53799fd110..4b19ec0843c 100644 --- a/src/test/java/seedu/address/testutil/AddressBookBuilder.java +++ b/src/test/java/seedu/address/testutil/AddressBookBuilder.java @@ -4,9 +4,8 @@ import seedu.address.model.person.Person; /** - * A utility class to help with building Addressbook objects. - * Example usage:
    - * {@code AddressBook ab = new AddressBookBuilder().withPerson("John", "Doe").build();} + * A utility class to help with building Addressbook objects. Example usage:
    + * {@code AddressBook ab = new AddressBookBuilder().withPerson("John", "Doe").build();} */ public class AddressBookBuilder { @@ -20,9 +19,7 @@ public AddressBookBuilder(AddressBook addressBook) { this.addressBook = addressBook; } - /** - * Adds a new {@code Person} to the {@code AddressBook} that we are building. - */ + /** Adds a new {@code Person} to the {@code AddressBook} that we are building. */ public AddressBookBuilder withPerson(Person person) { addressBook.addPerson(person); return this; diff --git a/src/test/java/seedu/address/testutil/Assert.java b/src/test/java/seedu/address/testutil/Assert.java index 9863093bd6e..dc6c446739f 100644 --- a/src/test/java/seedu/address/testutil/Assert.java +++ b/src/test/java/seedu/address/testutil/Assert.java @@ -3,30 +3,31 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.function.Executable; -/** - * A set of assertion methods useful for writing tests. - */ +/** A set of assertion methods useful for writing tests. */ public class Assert { /** - * Asserts that the {@code executable} throws the {@code expectedType} Exception. - * This is a wrapper method that invokes {@link Assertions#assertThrows(Class, Executable)}, to maintain consistency - * with our custom {@link #assertThrows(Class, String, Executable)} method. - * To standardize API calls in this project, users should use this method instead of - * {@link Assertions#assertThrows(Class, Executable)}. + * Asserts that the {@code executable} throws the {@code expectedType} Exception. This is a + * wrapper method that invokes {@link Assertions#assertThrows(Class, Executable)}, to maintain + * consistency with our custom {@link #assertThrows(Class, String, Executable)} method. To + * standardize API calls in this project, users should use this method instead of {@link + * Assertions#assertThrows(Class, Executable)}. */ - public static void assertThrows(Class expectedType, Executable executable) { + public static void assertThrows( + Class expectedType, Executable executable) { Assertions.assertThrows(expectedType, executable); } /** - * Asserts that the {@code executable} throws the {@code expectedType} Exception with the {@code expectedMessage}. - * If there's no need for the verification of the exception's error message, call - * {@link #assertThrows(Class, Executable)} instead. + * Asserts that the {@code executable} throws the {@code expectedType} Exception with the {@code + * expectedMessage}. If there's no need for the verification of the exception's error message, + * call {@link #assertThrows(Class, Executable)} instead. * * @see #assertThrows(Class, Executable) */ - public static void assertThrows(Class expectedType, String expectedMessage, + public static void assertThrows( + Class expectedType, + String expectedMessage, Executable executable) { Throwable thrownException = Assertions.assertThrows(expectedType, executable); Assertions.assertEquals(expectedMessage, thrownException.getMessage()); diff --git a/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java b/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java index 4584bd5044e..52bd9a1462d 100644 --- a/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java +++ b/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java @@ -3,7 +3,6 @@ import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; - import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; import seedu.address.model.person.Address; import seedu.address.model.person.Email; @@ -12,9 +11,7 @@ import seedu.address.model.person.Phone; import seedu.address.model.tag.Tag; -/** - * A utility class to help with building EditPersonDescriptor objects. - */ +/** A utility class to help with building EditPersonDescriptor objects. */ public class EditPersonDescriptorBuilder { private EditPersonDescriptor descriptor; @@ -27,9 +24,7 @@ public EditPersonDescriptorBuilder(EditPersonDescriptor descriptor) { this.descriptor = new EditPersonDescriptor(descriptor); } - /** - * Returns an {@code EditPersonDescriptor} with fields containing {@code person}'s details - */ + /** Returns an {@code EditPersonDescriptor} with fields containing {@code person}'s details */ public EditPersonDescriptorBuilder(Person person) { descriptor = new EditPersonDescriptor(); descriptor.setName(person.getName()); @@ -39,41 +34,33 @@ public EditPersonDescriptorBuilder(Person person) { descriptor.setTags(person.getTags()); } - /** - * Sets the {@code Name} of the {@code EditPersonDescriptor} that we are building. - */ + /** Sets the {@code Name} of the {@code EditPersonDescriptor} that we are building. */ public EditPersonDescriptorBuilder withName(String name) { descriptor.setName(new Name(name)); return this; } - /** - * Sets the {@code Phone} of the {@code EditPersonDescriptor} that we are building. - */ + /** Sets the {@code Phone} of the {@code EditPersonDescriptor} that we are building. */ public EditPersonDescriptorBuilder withPhone(String phone) { descriptor.setPhone(new Phone(phone)); return this; } - /** - * Sets the {@code Email} of the {@code EditPersonDescriptor} that we are building. - */ + /** Sets the {@code Email} of the {@code EditPersonDescriptor} that we are building. */ public EditPersonDescriptorBuilder withEmail(String email) { descriptor.setEmail(new Email(email)); return this; } - /** - * Sets the {@code Address} of the {@code EditPersonDescriptor} that we are building. - */ + /** Sets the {@code Address} of the {@code EditPersonDescriptor} that we are building. */ public EditPersonDescriptorBuilder withAddress(String address) { descriptor.setAddress(new Address(address)); return this; } /** - * Parses the {@code tags} into a {@code Set} and set it to the {@code EditPersonDescriptor} - * that we are building. + * Parses the {@code tags} into a {@code Set} and set it to the {@code + * EditPersonDescriptor} that we are building. */ public EditPersonDescriptorBuilder withTags(String... tags) { Set tagSet = Stream.of(tags).map(Tag::new).collect(Collectors.toSet()); diff --git a/src/test/java/seedu/address/testutil/PersonBuilder.java b/src/test/java/seedu/address/testutil/PersonBuilder.java index 5eff412178b..3e29f3e567e 100644 --- a/src/test/java/seedu/address/testutil/PersonBuilder.java +++ b/src/test/java/seedu/address/testutil/PersonBuilder.java @@ -2,7 +2,6 @@ import java.util.HashSet; import java.util.Set; - import seedu.address.model.person.Address; import seedu.address.model.person.Email; import seedu.address.model.person.Name; @@ -11,9 +10,7 @@ import seedu.address.model.tag.Tag; import seedu.address.model.util.SampleDataUtil; -/** - * A utility class to help with building Person objects. - */ +/** A utility class to help with building Person objects. */ public class PersonBuilder { public static final String DEFAULT_NAME = "Alice Pauline"; @@ -35,9 +32,7 @@ public PersonBuilder() { tags = new HashSet<>(); } - /** - * Initializes the PersonBuilder with the data of {@code personToCopy}. - */ + /** Initializes the PersonBuilder with the data of {@code personToCopy}. */ public PersonBuilder(Person personToCopy) { name = personToCopy.getName(); phone = personToCopy.getPhone(); @@ -46,41 +41,34 @@ public PersonBuilder(Person personToCopy) { tags = new HashSet<>(personToCopy.getTags()); } - /** - * Sets the {@code Name} of the {@code Person} that we are building. - */ + /** Sets the {@code Name} of the {@code Person} that we are building. */ public PersonBuilder withName(String name) { this.name = new Name(name); return this; } /** - * Parses the {@code tags} into a {@code Set} and set it to the {@code Person} that we are building. + * Parses the {@code tags} into a {@code Set} and set it to the {@code Person} that we are + * building. */ - public PersonBuilder withTags(String ... tags) { + public PersonBuilder withTags(String... tags) { this.tags = SampleDataUtil.getTagSet(tags); return this; } - /** - * Sets the {@code Address} of the {@code Person} that we are building. - */ + /** Sets the {@code Address} of the {@code Person} that we are building. */ public PersonBuilder withAddress(String address) { this.address = new Address(address); return this; } - /** - * Sets the {@code Phone} of the {@code Person} that we are building. - */ + /** Sets the {@code Phone} of the {@code Person} that we are building. */ public PersonBuilder withPhone(String phone) { this.phone = new Phone(phone); return this; } - /** - * Sets the {@code Email} of the {@code Person} that we are building. - */ + /** Sets the {@code Email} of the {@code Person} that we are building. */ public PersonBuilder withEmail(String email) { this.email = new Email(email); return this; @@ -89,5 +77,4 @@ public PersonBuilder withEmail(String email) { public Person build() { return new Person(name, phone, email, address, tags); } - } diff --git a/src/test/java/seedu/address/testutil/PersonUtil.java b/src/test/java/seedu/address/testutil/PersonUtil.java index 90849945183..1b5aaf17c07 100644 --- a/src/test/java/seedu/address/testutil/PersonUtil.java +++ b/src/test/java/seedu/address/testutil/PersonUtil.java @@ -7,48 +7,45 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import java.util.Set; - import seedu.address.logic.commands.AddCommand; import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; import seedu.address.model.person.Person; import seedu.address.model.tag.Tag; -/** - * A utility class for Person. - */ +/** A utility class for Person. */ public class PersonUtil { - /** - * Returns an add command string for adding the {@code person}. - */ + /** Returns an add command string for adding the {@code person}. */ public static String getAddCommand(Person person) { return AddCommand.COMMAND_WORD + " " + getPersonDetails(person); } - /** - * Returns the part of command string for the given {@code person}'s details. - */ + /** Returns the part of command string for the given {@code person}'s details. */ public static String getPersonDetails(Person person) { StringBuilder sb = new StringBuilder(); sb.append(PREFIX_NAME + person.getName().fullName + " "); sb.append(PREFIX_PHONE + person.getPhone().value + " "); sb.append(PREFIX_EMAIL + person.getEmail().value + " "); sb.append(PREFIX_ADDRESS + person.getAddress().value + " "); - person.getTags().stream().forEach( - s -> sb.append(PREFIX_TAG + s.tagName + " ") - ); + person.getTags().stream().forEach(s -> sb.append(PREFIX_TAG + s.tagName + " ")); return sb.toString(); } - /** - * Returns the part of command string for the given {@code EditPersonDescriptor}'s details. - */ + /** Returns the part of command string for the given {@code EditPersonDescriptor}'s details. */ public static String getEditPersonDescriptorDetails(EditPersonDescriptor descriptor) { StringBuilder sb = new StringBuilder(); - descriptor.getName().ifPresent(name -> sb.append(PREFIX_NAME).append(name.fullName).append(" ")); - descriptor.getPhone().ifPresent(phone -> sb.append(PREFIX_PHONE).append(phone.value).append(" ")); - descriptor.getEmail().ifPresent(email -> sb.append(PREFIX_EMAIL).append(email.value).append(" ")); - descriptor.getAddress().ifPresent(address -> sb.append(PREFIX_ADDRESS).append(address.value).append(" ")); + descriptor + .getName() + .ifPresent(name -> sb.append(PREFIX_NAME).append(name.fullName).append(" ")); + descriptor + .getPhone() + .ifPresent(phone -> sb.append(PREFIX_PHONE).append(phone.value).append(" ")); + descriptor + .getEmail() + .ifPresent(email -> sb.append(PREFIX_EMAIL).append(email.value).append(" ")); + descriptor + .getAddress() + .ifPresent(address -> sb.append(PREFIX_ADDRESS).append(address.value).append(" ")); if (descriptor.getTags().isPresent()) { Set tags = descriptor.getTags().get(); if (tags.isEmpty()) { diff --git a/src/test/java/seedu/address/testutil/SerializableTestClass.java b/src/test/java/seedu/address/testutil/SerializableTestClass.java index f5a66340489..faddf1f9d53 100644 --- a/src/test/java/seedu/address/testutil/SerializableTestClass.java +++ b/src/test/java/seedu/address/testutil/SerializableTestClass.java @@ -5,21 +5,21 @@ import java.util.HashMap; import java.util.List; -/** - * A class used to test serialization and deserialization - */ +/** A class used to test serialization and deserialization */ public class SerializableTestClass { - public static final String JSON_STRING_REPRESENTATION = String.format("{%n" - + " \"name\" : \"This is a test class\",%n" - + " \"listOfLocalDateTimes\" : " - + "[ \"-999999999-01-01T00:00:00\", \"+999999999-12-31T23:59:59.999999999\", " - + "\"0001-01-01T01:01:00\" ],%n" - + " \"mapOfIntegerToString\" : {%n" - + " \"1\" : \"One\",%n" - + " \"2\" : \"Two\",%n" - + " \"3\" : \"Three\"%n" - + " }%n" - + "}"); + public static final String JSON_STRING_REPRESENTATION = + String.format( + "{%n" + + " \"name\" : \"This is a test class\",%n" + + " \"listOfLocalDateTimes\" : " + + "[ \"-999999999-01-01T00:00:00\", \"+999999999-12-31T23:59:59.999999999\", " + + "\"0001-01-01T01:01:00\" ],%n" + + " \"mapOfIntegerToString\" : {%n" + + " \"1\" : \"One\",%n" + + " \"2\" : \"Two\",%n" + + " \"3\" : \"Three\"%n" + + " }%n" + + "}"); private static final String NAME_TEST_VALUE = "This is a test class"; diff --git a/src/test/java/seedu/address/testutil/TestUtil.java b/src/test/java/seedu/address/testutil/TestUtil.java index 896d103eb0b..3bff790e03f 100644 --- a/src/test/java/seedu/address/testutil/TestUtil.java +++ b/src/test/java/seedu/address/testutil/TestUtil.java @@ -4,24 +4,19 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; - import seedu.address.commons.core.index.Index; import seedu.address.model.Model; import seedu.address.model.person.Person; -/** - * A utility class for test cases. - */ +/** A utility class for test cases. */ public class TestUtil { - /** - * Folder used for temp files created during testing. Ignored by Git. - */ + /** Folder used for temp files created during testing. Ignored by Git. */ private static final Path SANDBOX_FOLDER = Paths.get("src", "test", "data", "sandbox"); /** - * Appends {@code fileName} to the sandbox folder path and returns the resulting path. - * Creates the sandbox folder if it doesn't exist. + * Appends {@code fileName} to the sandbox folder path and returns the resulting path. Creates + * the sandbox folder if it doesn't exist. */ public static Path getFilePathInSandboxFolder(String fileName) { try { @@ -32,23 +27,17 @@ public static Path getFilePathInSandboxFolder(String fileName) { return SANDBOX_FOLDER.resolve(fileName); } - /** - * Returns the middle index of the person in the {@code model}'s person list. - */ + /** Returns the middle index of the person in the {@code model}'s person list. */ public static Index getMidIndex(Model model) { return Index.fromOneBased(model.getFilteredPersonList().size() / 2); } - /** - * Returns the last index of the person in the {@code model}'s person list. - */ + /** Returns the last index of the person in the {@code model}'s person list. */ public static Index getLastIndex(Model model) { return Index.fromOneBased(model.getFilteredPersonList().size()); } - /** - * Returns the person in the {@code model}'s person list at {@code index}. - */ + /** Returns the person in the {@code model}'s person list at {@code index}. */ public static Person getPerson(Model model, Index index) { return model.getFilteredPersonList().get(index.getZeroBased()); } diff --git a/src/test/java/seedu/address/testutil/TypicalIndexes.java b/src/test/java/seedu/address/testutil/TypicalIndexes.java index 1e613937657..291c5228d26 100644 --- a/src/test/java/seedu/address/testutil/TypicalIndexes.java +++ b/src/test/java/seedu/address/testutil/TypicalIndexes.java @@ -2,9 +2,7 @@ import seedu.address.commons.core.index.Index; -/** - * A utility class containing a list of {@code Index} objects to be used in tests. - */ +/** A utility class containing a list of {@code Index} objects to be used in tests. */ public class TypicalIndexes { public static final Index INDEX_FIRST_PERSON = Index.fromOneBased(1); public static final Index INDEX_SECOND_PERSON = Index.fromOneBased(2); diff --git a/src/test/java/seedu/address/testutil/TypicalPersons.java b/src/test/java/seedu/address/testutil/TypicalPersons.java index fec76fb7129..07409165057 100644 --- a/src/test/java/seedu/address/testutil/TypicalPersons.java +++ b/src/test/java/seedu/address/testutil/TypicalPersons.java @@ -14,54 +14,104 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; - import seedu.address.model.AddressBook; import seedu.address.model.person.Person; -/** - * A utility class containing a list of {@code Person} objects to be used in tests. - */ +/** A utility class containing a list of {@code Person} objects to be used in tests. */ public class TypicalPersons { - public static final Person ALICE = new PersonBuilder().withName("Alice Pauline") - .withAddress("123, Jurong West Ave 6, #08-111").withEmail("alice@example.com") - .withPhone("94351253") - .withTags("friends").build(); - public static final Person BENSON = new PersonBuilder().withName("Benson Meier") - .withAddress("311, Clementi Ave 2, #02-25") - .withEmail("johnd@example.com").withPhone("98765432") - .withTags("owesMoney", "friends").build(); - public static final Person CARL = new PersonBuilder().withName("Carl Kurz").withPhone("95352563") - .withEmail("heinz@example.com").withAddress("wall street").build(); - public static final Person DANIEL = new PersonBuilder().withName("Daniel Meier").withPhone("87652533") - .withEmail("cornelia@example.com").withAddress("10th street").withTags("friends").build(); - public static final Person ELLE = new PersonBuilder().withName("Elle Meyer").withPhone("9482224") - .withEmail("werner@example.com").withAddress("michegan ave").build(); - public static final Person FIONA = new PersonBuilder().withName("Fiona Kunz").withPhone("9482427") - .withEmail("lydia@example.com").withAddress("little tokyo").build(); - public static final Person GEORGE = new PersonBuilder().withName("George Best").withPhone("9482442") - .withEmail("anna@example.com").withAddress("4th street").build(); + public static final Person ALICE = + new PersonBuilder() + .withName("Alice Pauline") + .withAddress("123, Jurong West Ave 6, #08-111") + .withEmail("alice@example.com") + .withPhone("94351253") + .withTags("friends") + .build(); + public static final Person BENSON = + new PersonBuilder() + .withName("Benson Meier") + .withAddress("311, Clementi Ave 2, #02-25") + .withEmail("johnd@example.com") + .withPhone("98765432") + .withTags("owesMoney", "friends") + .build(); + public static final Person CARL = + new PersonBuilder() + .withName("Carl Kurz") + .withPhone("95352563") + .withEmail("heinz@example.com") + .withAddress("wall street") + .build(); + public static final Person DANIEL = + new PersonBuilder() + .withName("Daniel Meier") + .withPhone("87652533") + .withEmail("cornelia@example.com") + .withAddress("10th street") + .withTags("friends") + .build(); + public static final Person ELLE = + new PersonBuilder() + .withName("Elle Meyer") + .withPhone("9482224") + .withEmail("werner@example.com") + .withAddress("michegan ave") + .build(); + public static final Person FIONA = + new PersonBuilder() + .withName("Fiona Kunz") + .withPhone("9482427") + .withEmail("lydia@example.com") + .withAddress("little tokyo") + .build(); + public static final Person GEORGE = + new PersonBuilder() + .withName("George Best") + .withPhone("9482442") + .withEmail("anna@example.com") + .withAddress("4th street") + .build(); // Manually added - public static final Person HOON = new PersonBuilder().withName("Hoon Meier").withPhone("8482424") - .withEmail("stefan@example.com").withAddress("little india").build(); - public static final Person IDA = new PersonBuilder().withName("Ida Mueller").withPhone("8482131") - .withEmail("hans@example.com").withAddress("chicago ave").build(); + public static final Person HOON = + new PersonBuilder() + .withName("Hoon Meier") + .withPhone("8482424") + .withEmail("stefan@example.com") + .withAddress("little india") + .build(); + public static final Person IDA = + new PersonBuilder() + .withName("Ida Mueller") + .withPhone("8482131") + .withEmail("hans@example.com") + .withAddress("chicago ave") + .build(); // Manually added - Person's details found in {@code CommandTestUtil} - public static final Person AMY = new PersonBuilder().withName(VALID_NAME_AMY).withPhone(VALID_PHONE_AMY) - .withEmail(VALID_EMAIL_AMY).withAddress(VALID_ADDRESS_AMY).withTags(VALID_TAG_FRIEND).build(); - public static final Person BOB = new PersonBuilder().withName(VALID_NAME_BOB).withPhone(VALID_PHONE_BOB) - .withEmail(VALID_EMAIL_BOB).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND, VALID_TAG_FRIEND) - .build(); + public static final Person AMY = + new PersonBuilder() + .withName(VALID_NAME_AMY) + .withPhone(VALID_PHONE_AMY) + .withEmail(VALID_EMAIL_AMY) + .withAddress(VALID_ADDRESS_AMY) + .withTags(VALID_TAG_FRIEND) + .build(); + public static final Person BOB = + new PersonBuilder() + .withName(VALID_NAME_BOB) + .withPhone(VALID_PHONE_BOB) + .withEmail(VALID_EMAIL_BOB) + .withAddress(VALID_ADDRESS_BOB) + .withTags(VALID_TAG_HUSBAND, VALID_TAG_FRIEND) + .build(); public static final String KEYWORD_MATCHING_MEIER = "Meier"; // A keyword that matches MEIER private TypicalPersons() {} // prevents instantiation - /** - * Returns an {@code AddressBook} with all the typical persons. - */ + /** Returns an {@code AddressBook} with all the typical persons. */ public static AddressBook getTypicalAddressBook() { AddressBook ab = new AddressBook(); for (Person person : getTypicalPersons()) { diff --git a/src/test/java/seedu/address/ui/TestFxmlObject.java b/src/test/java/seedu/address/ui/TestFxmlObject.java index 5ecd82656f2..0d59907f6b9 100644 --- a/src/test/java/seedu/address/ui/TestFxmlObject.java +++ b/src/test/java/seedu/address/ui/TestFxmlObject.java @@ -3,8 +3,8 @@ import javafx.beans.DefaultProperty; /** - * A test object which can be constructed via an FXML file. - * Unlike other JavaFX classes, this class can be constructed without the JavaFX toolkit being initialized. + * A test object which can be constructed via an FXML file. Unlike other JavaFX classes, this class + * can be constructed without the JavaFX toolkit being initialized. */ @DefaultProperty("text") public class TestFxmlObject { @@ -31,5 +31,4 @@ public boolean equals(Object other) { || (other instanceof TestFxmlObject // instanceof handles nulls && text.equals(((TestFxmlObject) other).getText())); } - } diff --git a/src/test/java/seedu/address/ui/UiPartTest.java b/src/test/java/seedu/address/ui/UiPartTest.java index 33d82d911b8..f6a2463da2a 100644 --- a/src/test/java/seedu/address/ui/UiPartTest.java +++ b/src/test/java/seedu/address/ui/UiPartTest.java @@ -6,11 +6,9 @@ import java.net.URL; import java.nio.file.Path; - +import javafx.fxml.FXML; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; - -import javafx.fxml.FXML; import seedu.address.MainApp; public class UiPartTest { @@ -18,30 +16,33 @@ public class UiPartTest { private static final String MISSING_FILE_PATH = "UiPartTest/missingFile.fxml"; private static final String INVALID_FILE_PATH = "UiPartTest/invalidFile.fxml"; private static final String VALID_FILE_PATH = "UiPartTest/validFile.fxml"; - private static final String VALID_FILE_WITH_FX_ROOT_PATH = "UiPartTest/validFileWithFxRoot.fxml"; + private static final String VALID_FILE_WITH_FX_ROOT_PATH = + "UiPartTest/validFileWithFxRoot.fxml"; private static final TestFxmlObject VALID_FILE_ROOT = new TestFxmlObject("Hello World!"); - @TempDir - public Path testFolder; + @TempDir public Path testFolder; @Test public void constructor_nullFileUrl_throwsNullPointerException() { assertThrows(NullPointerException.class, () -> new TestUiPart((URL) null)); - assertThrows(NullPointerException.class, () -> new TestUiPart((URL) null, new Object())); + assertThrows( + NullPointerException.class, () -> new TestUiPart((URL) null, new Object())); } @Test public void constructor_missingFileUrl_throwsAssertionError() throws Exception { URL missingFileUrl = new URL(testFolder.toUri().toURL(), MISSING_FILE_PATH); assertThrows(AssertionError.class, () -> new TestUiPart(missingFileUrl)); - assertThrows(AssertionError.class, () -> new TestUiPart(missingFileUrl, new Object())); + assertThrows( + AssertionError.class, () -> new TestUiPart(missingFileUrl, new Object())); } @Test public void constructor_invalidFileUrl_throwsAssertionError() { URL invalidFileUrl = getTestFileUrl(INVALID_FILE_PATH); assertThrows(AssertionError.class, () -> new TestUiPart(invalidFileUrl)); - assertThrows(AssertionError.class, () -> new TestUiPart(invalidFileUrl, new Object())); + assertThrows( + AssertionError.class, () -> new TestUiPart(invalidFileUrl, new Object())); } @Test @@ -60,19 +61,25 @@ public void constructor_validFileWithFxRootUrl_loadsFile() { @Test public void constructor_nullFileName_throwsNullPointerException() { assertThrows(NullPointerException.class, () -> new TestUiPart((String) null)); - assertThrows(NullPointerException.class, () -> new TestUiPart((String) null, new Object())); + assertThrows( + NullPointerException.class, + () -> new TestUiPart((String) null, new Object())); } @Test public void constructor_missingFileName_throwsNullPointerException() { assertThrows(NullPointerException.class, () -> new TestUiPart(MISSING_FILE_PATH)); - assertThrows(NullPointerException.class, () -> new TestUiPart(MISSING_FILE_PATH, new Object())); + assertThrows( + NullPointerException.class, + () -> new TestUiPart(MISSING_FILE_PATH, new Object())); } @Test public void constructor_invalidFileName_throwsAssertionError() { assertThrows(AssertionError.class, () -> new TestUiPart(INVALID_FILE_PATH)); - assertThrows(AssertionError.class, () -> new TestUiPart(INVALID_FILE_PATH, new Object())); + assertThrows( + AssertionError.class, + () -> new TestUiPart(INVALID_FILE_PATH, new Object())); } private URL getTestFileUrl(String testFilePath) { @@ -83,13 +90,12 @@ private URL getTestFileUrl(String testFilePath) { } /** - * UiPart used for testing. - * It should only be used with invalid FXML files or the valid file located at {@link VALID_FILE_PATH}. + * UiPart used for testing. It should only be used with invalid FXML files or the valid file + * located at {@link VALID_FILE_PATH}. */ private static class TestUiPart extends UiPart { - @FXML - private TestFxmlObject validFileRoot; // Check that @FXML annotations work + @FXML private TestFxmlObject validFileRoot; // Check that @FXML annotations work TestUiPart(URL fxmlFileUrl, T root) { super(fxmlFileUrl, root); @@ -108,7 +114,5 @@ private static class TestUiPart extends UiPart { super(fxmlFileName); assertEquals(VALID_FILE_ROOT, validFileRoot); } - } - } From b466e7654dfc4a758b5cac73b84f72e59f0f7425 Mon Sep 17 00:00:00 2001 From: Branson Date: Sun, 8 Mar 2020 11:08:10 +0800 Subject: [PATCH 035/606] Change PREFIX_PHONE to PREFIX_PRIORITY --- .../java/seedu/address/logic/commands/AddCommand.java | 6 +++--- .../java/seedu/address/logic/commands/EditCommand.java | 6 +++--- .../java/seedu/address/logic/parser/AddCommandParser.java | 8 ++++---- src/main/java/seedu/address/logic/parser/CliSyntax.java | 2 +- .../seedu/address/logic/parser/EditCommandParser.java | 8 ++++---- .../seedu/address/logic/commands/CommandTestUtil.java | 8 ++++---- src/test/java/seedu/address/testutil/PersonUtil.java | 6 +++--- 7 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/AddCommand.java b/src/main/java/seedu/address/logic/commands/AddCommand.java index 22f807da3cd..5c7971d8783 100644 --- a/src/main/java/seedu/address/logic/commands/AddCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddCommand.java @@ -4,7 +4,7 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; -import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_PRIORITY; import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import seedu.address.logic.commands.exceptions.CommandException; @@ -22,7 +22,7 @@ public class AddCommand extends Command { + "Parameters: " + PREFIX_NAME + "NAME " - + PREFIX_PHONE + + PREFIX_PRIORITY + "PHONE " + PREFIX_EMAIL + "EMAIL " @@ -36,7 +36,7 @@ public class AddCommand extends Command { + " " + PREFIX_NAME + "John Doe " - + PREFIX_PHONE + + PREFIX_PRIORITY + "98765432 " + PREFIX_EMAIL + "johnd@example.com " diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java index 03ca8b22811..3f21e1c0c3f 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditCommand.java @@ -4,7 +4,7 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; -import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_PRIORITY; import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; @@ -40,7 +40,7 @@ public class EditCommand extends Command { + PREFIX_NAME + "NAME] " + "[" - + PREFIX_PHONE + + PREFIX_PRIORITY + "PHONE] " + "[" + PREFIX_EMAIL @@ -54,7 +54,7 @@ public class EditCommand extends Command { + "Example: " + COMMAND_WORD + " 1 " - + PREFIX_PHONE + + PREFIX_PRIORITY + "91234567 " + PREFIX_EMAIL + "johndoe@example.com"; diff --git a/src/main/java/seedu/address/logic/parser/AddCommandParser.java b/src/main/java/seedu/address/logic/parser/AddCommandParser.java index d00eb2f0438..81907b0c85f 100644 --- a/src/main/java/seedu/address/logic/parser/AddCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddCommandParser.java @@ -4,7 +4,7 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; -import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_PRIORITY; import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import java.util.Set; @@ -30,17 +30,17 @@ public class AddCommandParser implements Parser { public AddCommand parse(String args) throws ParseException { ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize( - args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_TAG); + args, PREFIX_NAME, PREFIX_PRIORITY, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_TAG); if (!arePrefixesPresent( - argMultimap, PREFIX_NAME, PREFIX_ADDRESS, PREFIX_PHONE, PREFIX_EMAIL) + argMultimap, PREFIX_NAME, PREFIX_ADDRESS, PREFIX_PRIORITY, PREFIX_EMAIL) || !argMultimap.getPreamble().isEmpty()) { throw new ParseException( String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE)); } Name name = ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get()); - Phone phone = ParserUtil.parsePhone(argMultimap.getValue(PREFIX_PHONE).get()); + Phone phone = ParserUtil.parsePhone(argMultimap.getValue(PREFIX_PRIORITY).get()); Email email = ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get()); Address address = ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS).get()); Set tagList = ParserUtil.parseTags(argMultimap.getAllValues(PREFIX_TAG)); diff --git a/src/main/java/seedu/address/logic/parser/CliSyntax.java b/src/main/java/seedu/address/logic/parser/CliSyntax.java index 4a15adecf30..9149bc96c89 100644 --- a/src/main/java/seedu/address/logic/parser/CliSyntax.java +++ b/src/main/java/seedu/address/logic/parser/CliSyntax.java @@ -5,7 +5,7 @@ public class CliSyntax { /* Prefix definitions */ public static final Prefix PREFIX_NAME = new Prefix("n/"); - public static final Prefix PREFIX_PHONE = new Prefix("p/"); + public static final Prefix PREFIX_PRIORITY = new Prefix("p/"); public static final Prefix PREFIX_EMAIL = new Prefix("e/"); public static final Prefix PREFIX_ADDRESS = new Prefix("a/"); public static final Prefix PREFIX_TAG = new Prefix("t/"); diff --git a/src/main/java/seedu/address/logic/parser/EditCommandParser.java b/src/main/java/seedu/address/logic/parser/EditCommandParser.java index ca5fc8c4fd3..891745bf51c 100644 --- a/src/main/java/seedu/address/logic/parser/EditCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/EditCommandParser.java @@ -5,7 +5,7 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; -import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_PRIORITY; import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import java.util.Collection; @@ -31,7 +31,7 @@ public EditCommand parse(String args) throws ParseException { requireNonNull(args); ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize( - args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_TAG); + args, PREFIX_NAME, PREFIX_PRIORITY, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_TAG); Index index; @@ -47,9 +47,9 @@ public EditCommand parse(String args) throws ParseException { editPersonDescriptor.setName( ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get())); } - if (argMultimap.getValue(PREFIX_PHONE).isPresent()) { + if (argMultimap.getValue(PREFIX_PRIORITY).isPresent()) { editPersonDescriptor.setPhone( - ParserUtil.parsePhone(argMultimap.getValue(PREFIX_PHONE).get())); + ParserUtil.parsePhone(argMultimap.getValue(PREFIX_PRIORITY).get())); } if (argMultimap.getValue(PREFIX_EMAIL).isPresent()) { editPersonDescriptor.setEmail( diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java index 7cb4053e10e..41151258d24 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java @@ -5,7 +5,7 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; -import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_PRIORITY; import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import static seedu.address.testutil.Assert.assertThrows; @@ -36,8 +36,8 @@ public class CommandTestUtil { public static final String NAME_DESC_AMY = " " + PREFIX_NAME + VALID_NAME_AMY; public static final String NAME_DESC_BOB = " " + PREFIX_NAME + VALID_NAME_BOB; - public static final String PHONE_DESC_AMY = " " + PREFIX_PHONE + VALID_PHONE_AMY; - public static final String PHONE_DESC_BOB = " " + PREFIX_PHONE + VALID_PHONE_BOB; + public static final String PHONE_DESC_AMY = " " + PREFIX_PRIORITY + VALID_PHONE_AMY; + public static final String PHONE_DESC_BOB = " " + PREFIX_PRIORITY + VALID_PHONE_BOB; public static final String EMAIL_DESC_AMY = " " + PREFIX_EMAIL + VALID_EMAIL_AMY; public static final String EMAIL_DESC_BOB = " " + PREFIX_EMAIL + VALID_EMAIL_BOB; public static final String ADDRESS_DESC_AMY = " " + PREFIX_ADDRESS + VALID_ADDRESS_AMY; @@ -48,7 +48,7 @@ public class CommandTestUtil { public static final String INVALID_NAME_DESC = " " + PREFIX_NAME + "James&"; // '&' not allowed in names public static final String INVALID_PHONE_DESC = - " " + PREFIX_PHONE + "911a"; // 'a' not allowed in phones + " " + PREFIX_PRIORITY + "911a"; // 'a' not allowed in phones public static final String INVALID_EMAIL_DESC = " " + PREFIX_EMAIL + "bob!yahoo"; // missing '@' symbol public static final String INVALID_ADDRESS_DESC = diff --git a/src/test/java/seedu/address/testutil/PersonUtil.java b/src/test/java/seedu/address/testutil/PersonUtil.java index 1b5aaf17c07..6f44f719e52 100644 --- a/src/test/java/seedu/address/testutil/PersonUtil.java +++ b/src/test/java/seedu/address/testutil/PersonUtil.java @@ -3,7 +3,7 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; -import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_PRIORITY; import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import java.util.Set; @@ -24,7 +24,7 @@ public static String getAddCommand(Person person) { public static String getPersonDetails(Person person) { StringBuilder sb = new StringBuilder(); sb.append(PREFIX_NAME + person.getName().fullName + " "); - sb.append(PREFIX_PHONE + person.getPhone().value + " "); + sb.append(PREFIX_PRIORITY + person.getPhone().value + " "); sb.append(PREFIX_EMAIL + person.getEmail().value + " "); sb.append(PREFIX_ADDRESS + person.getAddress().value + " "); person.getTags().stream().forEach(s -> sb.append(PREFIX_TAG + s.tagName + " ")); @@ -39,7 +39,7 @@ public static String getEditPersonDescriptorDetails(EditPersonDescriptor descrip .ifPresent(name -> sb.append(PREFIX_NAME).append(name.fullName).append(" ")); descriptor .getPhone() - .ifPresent(phone -> sb.append(PREFIX_PHONE).append(phone.value).append(" ")); + .ifPresent(phone -> sb.append(PREFIX_PRIORITY).append(phone.value).append(" ")); descriptor .getEmail() .ifPresent(email -> sb.append(PREFIX_EMAIL).append(email.value).append(" ")); From c470997d30f1f7c0995fc2b895a174e02ece9c74 Mon Sep 17 00:00:00 2001 From: Branson Date: Sun, 8 Mar 2020 11:33:35 +0800 Subject: [PATCH 036/606] remove checkstyle checks from travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 924a42eb8da..78cfc6a5dc2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ matrix: script: >- ./config/travis/run-checks.sh && - ./gradlew clean checkstyleMain checkstyleTest test coverage coveralls asciidoctor + ./gradlew clean test coverage coveralls asciidoctor deploy: skip_cleanup: true From 2a9d0c25c1fb26aa63cf7ab0e41ff6eec2a76fca Mon Sep 17 00:00:00 2001 From: Branson Date: Sun, 8 Mar 2020 11:40:52 +0800 Subject: [PATCH 037/606] update phone-> priority --- docs/LearningOutcomes.adoc | 4 +- docs/diagrams/BetterModelClassDiagram.puml | 2 +- docs/diagrams/ModelClassDiagram.puml | 8 +-- docs/tutorials/AddRemark.adoc | 2 +- .../address/logic/commands/EditCommand.java | 22 ++++----- .../logic/parser/AddCommandParser.java | 6 +-- .../logic/parser/EditCommandParser.java | 4 +- .../address/logic/parser/ParserUtil.java | 18 +++---- .../seedu/address/model/person/Person.java | 22 ++++----- .../seedu/address/model/person/Phone.java | 28 +++++------ .../seedu/address/model/person/Priority.java | 49 +++++++++++++++++++ .../address/model/util/SampleDataUtil.java | 14 +++--- .../address/storage/JsonAdaptedPerson.java | 22 ++++----- .../{PersonCard.java => PersonListCard.java} | 4 +- src/main/resources/view/PersonListCard.fxml | 2 +- .../invalidAndValidPersonAddressBook.json | 6 +-- .../invalidPersonAddressBook.json | 2 +- .../duplicatePersonAddressBook.json | 4 +- .../invalidPersonAddressBook.json | 2 +- .../typicalPersonsAddressBook.json | 14 +++--- .../logic/commands/CommandTestUtil.java | 6 +-- .../logic/commands/EditCommandTest.java | 4 +- .../commands/EditPersonDescriptorTest.java | 4 +- .../logic/parser/AddCommandParserTest.java | 10 ++-- .../logic/parser/EditCommandParserTest.java | 28 +++++------ .../address/logic/parser/ParserUtilTest.java | 24 ++++----- .../NameContainsKeywordsPredicateTest.java | 4 +- .../address/model/person/PersonTest.java | 14 +++--- .../seedu/address/model/person/PhoneTest.java | 42 ++++++++-------- .../storage/JsonAdaptedPersonTest.java | 12 ++--- .../testutil/EditPersonDescriptorBuilder.java | 10 ++-- .../seedu/address/testutil/PersonBuilder.java | 16 +++--- .../seedu/address/testutil/PersonUtil.java | 6 +-- .../address/testutil/TypicalPersons.java | 22 ++++----- 34 files changed, 243 insertions(+), 194 deletions(-) create mode 100644 src/main/java/seedu/address/model/person/Priority.java rename src/main/java/seedu/address/ui/{PersonCard.java => PersonListCard.java} (95%) diff --git a/docs/LearningOutcomes.adoc b/docs/LearningOutcomes.adoc index 436c1777617..ecc3257d8c9 100644 --- a/docs/LearningOutcomes.adoc +++ b/docs/LearningOutcomes.adoc @@ -97,7 +97,7 @@ image::ReadOnlyAddressBookUsage.png[width=500] * Add a `Printable` interface as follows. + image::PrintableInterface.png[width=400] -* `Override` the `getPrintableString` in classes `Name`, `Phone`, `Email`, and `Address` so that each produces a printable string representation of the object. e.g. `Name: John Smith`, `Phone: 12349862` +* `Override` the `getPrintableString` in classes `Name`, `Priority`, `Email`, and `Address` so that each produces a printable string representation of the object. e.g. `Name: John Smith`, `Priority: 12349862` * Add the following method in a suitable place of some other class. Note how the method depends on the Interface. + [source,java] @@ -114,7 +114,7 @@ For example, you should be able to call that method like this: [source,java] ---- // p is a Person object -return getPrintableString(p.getPhone(), p.getEmail(), p.getAddress()); +return getPrintableString(p.getPriority(), p.getEmail(), p.getAddress()); ---- == Follow Liskov Substitution Principle `[LO-LSP]` diff --git a/docs/diagrams/BetterModelClassDiagram.puml b/docs/diagrams/BetterModelClassDiagram.puml index 7790472da52..f01af547452 100644 --- a/docs/diagrams/BetterModelClassDiagram.puml +++ b/docs/diagrams/BetterModelClassDiagram.puml @@ -15,7 +15,7 @@ UniquePersonList o-right-> Person Person o-up-> "*" Tag Person *--> Name -Person *--> Phone +Person *--> Priority Person *--> Email Person *--> Address @enduml diff --git a/docs/diagrams/ModelClassDiagram.puml b/docs/diagrams/ModelClassDiagram.puml index e85a00d4107..cd45540d5eb 100644 --- a/docs/diagrams/ModelClassDiagram.puml +++ b/docs/diagrams/ModelClassDiagram.puml @@ -20,7 +20,7 @@ Class Person Class Address Class Email Class Name -Class Phone +Class Priority Class UniquePersonList } @@ -43,13 +43,13 @@ UserPrefs .up.|> ReadOnlyUserPrefs AddressBook *--> "1" UniquePersonList UniquePersonList o--> "*" Person Person *--> Name -Person *--> Phone +Person *--> Priority Person *--> Email Person *--> Address Person *--> "*" Tag -Name -[hidden]right-> Phone -Phone -[hidden]right-> Address +Name -[hidden]right-> Priority +Priority -[hidden]right-> Address Address -[hidden]right-> Email ModelManager -->"1" Person : filtered list diff --git a/docs/tutorials/AddRemark.adoc b/docs/tutorials/AddRemark.adoc index 51044c36494..67f27845777 100644 --- a/docs/tutorials/AddRemark.adoc +++ b/docs/tutorials/AddRemark.adoc @@ -361,7 +361,7 @@ Since all fields in a `Person` are immutable, we create a new instance of a `Per } Person personToEdit = lastShownList.get(index.getZeroBased()); - Person editedPerson = new Person(personToEdit.getName(), personToEdit.getPhone(), personToEdit.getEmail(), + Person editedPerson = new Person(personToEdit.getName(), personToEdit.getPriority(), personToEdit.getEmail(), personToEdit.getAddress(), remark, personToEdit.getTags()); model.setPerson(personToEdit, editedPerson); diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java index 3f21e1c0c3f..3961985b8c5 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditCommand.java @@ -22,7 +22,7 @@ import seedu.address.model.person.Email; import seedu.address.model.person.Name; import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; +import seedu.address.model.person.Priority; import seedu.address.model.tag.Tag; /** Edits the details of an existing person in the address book. */ @@ -109,13 +109,13 @@ private static Person createEditedPerson( assert personToEdit != null; Name updatedName = editPersonDescriptor.getName().orElse(personToEdit.getName()); - Phone updatedPhone = editPersonDescriptor.getPhone().orElse(personToEdit.getPhone()); + Priority updatedPriority = editPersonDescriptor.getPriority().orElse(personToEdit.getPriority()); Email updatedEmail = editPersonDescriptor.getEmail().orElse(personToEdit.getEmail()); Address updatedAddress = editPersonDescriptor.getAddress().orElse(personToEdit.getAddress()); Set updatedTags = editPersonDescriptor.getTags().orElse(personToEdit.getTags()); - return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, updatedTags); + return new Person(updatedName, updatedPriority, updatedEmail, updatedAddress, updatedTags); } @Override @@ -141,7 +141,7 @@ public boolean equals(Object other) { */ public static class EditPersonDescriptor { private Name name; - private Phone phone; + private Priority priority; private Email email; private Address address; private Set tags; @@ -151,7 +151,7 @@ public EditPersonDescriptor() {} /** Copy constructor. A defensive copy of {@code tags} is used internally. */ public EditPersonDescriptor(EditPersonDescriptor toCopy) { setName(toCopy.name); - setPhone(toCopy.phone); + setPriority(toCopy.priority); setEmail(toCopy.email); setAddress(toCopy.address); setTags(toCopy.tags); @@ -159,7 +159,7 @@ public EditPersonDescriptor(EditPersonDescriptor toCopy) { /** Returns true if at least one field is edited. */ public boolean isAnyFieldEdited() { - return CollectionUtil.isAnyNonNull(name, phone, email, address, tags); + return CollectionUtil.isAnyNonNull(name, priority, email, address, tags); } public void setName(Name name) { @@ -170,12 +170,12 @@ public Optional getName() { return Optional.ofNullable(name); } - public void setPhone(Phone phone) { - this.phone = phone; + public void setPriority(Priority priority) { + this.priority = priority; } - public Optional getPhone() { - return Optional.ofNullable(phone); + public Optional getPriority() { + return Optional.ofNullable(priority); } public void setEmail(Email email) { @@ -228,7 +228,7 @@ public boolean equals(Object other) { EditPersonDescriptor e = (EditPersonDescriptor) other; return getName().equals(e.getName()) - && getPhone().equals(e.getPhone()) + && getPriority().equals(e.getPriority()) && getEmail().equals(e.getEmail()) && getAddress().equals(e.getAddress()) && getTags().equals(e.getTags()); diff --git a/src/main/java/seedu/address/logic/parser/AddCommandParser.java b/src/main/java/seedu/address/logic/parser/AddCommandParser.java index 81907b0c85f..20a8afaf211 100644 --- a/src/main/java/seedu/address/logic/parser/AddCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddCommandParser.java @@ -15,7 +15,7 @@ import seedu.address.model.person.Email; import seedu.address.model.person.Name; import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; +import seedu.address.model.person.Priority; import seedu.address.model.tag.Tag; /** Parses input arguments and creates a new AddCommand object */ @@ -40,12 +40,12 @@ public AddCommand parse(String args) throws ParseException { } Name name = ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get()); - Phone phone = ParserUtil.parsePhone(argMultimap.getValue(PREFIX_PRIORITY).get()); + Priority priority = ParserUtil.parsePriority(argMultimap.getValue(PREFIX_PRIORITY).get()); Email email = ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get()); Address address = ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS).get()); Set tagList = ParserUtil.parseTags(argMultimap.getAllValues(PREFIX_TAG)); - Person person = new Person(name, phone, email, address, tagList); + Person person = new Person(name, priority, email, address, tagList); return new AddCommand(person); } diff --git a/src/main/java/seedu/address/logic/parser/EditCommandParser.java b/src/main/java/seedu/address/logic/parser/EditCommandParser.java index 891745bf51c..5074f591e9b 100644 --- a/src/main/java/seedu/address/logic/parser/EditCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/EditCommandParser.java @@ -48,8 +48,8 @@ public EditCommand parse(String args) throws ParseException { ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get())); } if (argMultimap.getValue(PREFIX_PRIORITY).isPresent()) { - editPersonDescriptor.setPhone( - ParserUtil.parsePhone(argMultimap.getValue(PREFIX_PRIORITY).get())); + editPersonDescriptor.setPriority( + ParserUtil.parsePriority(argMultimap.getValue(PREFIX_PRIORITY).get())); } if (argMultimap.getValue(PREFIX_EMAIL).isPresent()) { editPersonDescriptor.setEmail( diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index d272254dbc6..5614dcd1b37 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -11,7 +11,7 @@ import seedu.address.model.person.Address; import seedu.address.model.person.Email; import seedu.address.model.person.Name; -import seedu.address.model.person.Phone; +import seedu.address.model.person.Priority; import seedu.address.model.tag.Tag; /** Contains utility methods used for parsing strings in the various *Parser classes. */ @@ -49,18 +49,18 @@ public static Name parseName(String name) throws ParseException { } /** - * Parses a {@code String phone} into a {@code Phone}. Leading and trailing whitespaces will be + * Parses a {@code String priority} into a {@code Priority}. Leading and trailing whitespaces will be * trimmed. * - * @throws ParseException if the given {@code phone} is invalid. + * @throws ParseException if the given {@code priority} is invalid. */ - public static Phone parsePhone(String phone) throws ParseException { - requireNonNull(phone); - String trimmedPhone = phone.trim(); - if (!Phone.isValidPhone(trimmedPhone)) { - throw new ParseException(Phone.MESSAGE_CONSTRAINTS); + public static Priority parsePriority(String priority) throws ParseException { + requireNonNull(priority); + String trimmedPriority = priority.trim(); + if (!Priority.isValidPriority(trimmedPriority)) { + throw new ParseException(Priority.MESSAGE_CONSTRAINTS); } - return new Phone(trimmedPhone); + return new Priority(trimmedPriority); } /** diff --git a/src/main/java/seedu/address/model/person/Person.java b/src/main/java/seedu/address/model/person/Person.java index cc77a1480d9..e43851fa1d3 100644 --- a/src/main/java/seedu/address/model/person/Person.java +++ b/src/main/java/seedu/address/model/person/Person.java @@ -16,7 +16,7 @@ public class Person { // Identity fields private final Name name; - private final Phone phone; + private final Priority priority; private final Email email; // Data fields @@ -24,10 +24,10 @@ public class Person { private final Set tags = new HashSet<>(); /** Every field must be present and not null. */ - public Person(Name name, Phone phone, Email email, Address address, Set tags) { - requireAllNonNull(name, phone, email, address, tags); + public Person(Name name, Priority priority, Email email, Address address, Set tags) { + requireAllNonNull(name, priority, email, address, tags); this.name = name; - this.phone = phone; + this.priority = priority; this.email = email; this.address = address; this.tags.addAll(tags); @@ -37,8 +37,8 @@ public Name getName() { return name; } - public Phone getPhone() { - return phone; + public Priority getPriority() { + return priority; } public Email getEmail() { @@ -68,7 +68,7 @@ public boolean isSamePerson(Person otherPerson) { return otherPerson != null && otherPerson.getName().equals(getName()) - && (otherPerson.getPhone().equals(getPhone()) + && (otherPerson.getPriority().equals(getPriority()) || otherPerson.getEmail().equals(getEmail())); } @@ -88,7 +88,7 @@ public boolean equals(Object other) { Person otherPerson = (Person) other; return otherPerson.getName().equals(getName()) - && otherPerson.getPhone().equals(getPhone()) + && otherPerson.getPriority().equals(getPriority()) && otherPerson.getEmail().equals(getEmail()) && otherPerson.getAddress().equals(getAddress()) && otherPerson.getTags().equals(getTags()); @@ -97,15 +97,15 @@ public boolean equals(Object other) { @Override public int hashCode() { // use this method for custom fields hashing instead of implementing your own - return Objects.hash(name, phone, email, address, tags); + return Objects.hash(name, priority, email, address, tags); } @Override public String toString() { final StringBuilder builder = new StringBuilder(); builder.append(getName()) - .append(" Phone: ") - .append(getPhone()) + .append(" Priority: ") + .append(getPriority()) .append(" Email: ") .append(getEmail()) .append(" Address: ") diff --git a/src/main/java/seedu/address/model/person/Phone.java b/src/main/java/seedu/address/model/person/Phone.java index a6f9fb04896..9ae9e2888ac 100644 --- a/src/main/java/seedu/address/model/person/Phone.java +++ b/src/main/java/seedu/address/model/person/Phone.java @@ -4,29 +4,29 @@ import static seedu.address.commons.util.AppUtil.checkArgument; /** - * Represents a Person's phone number in the address book. Guarantees: immutable; is valid as - * declared in {@link #isValidPhone(String)} + * Represents a Person's priority number in the address book. Guarantees: immutable; is valid as + * declared in {@link #isValidPriority(String)} */ -public class Phone { +public class Priority { public static final String MESSAGE_CONSTRAINTS = - "Phone numbers should only contain numbers, and it should be at least 3 digits long"; + "Priority numbers should only contain numbers, and it should be at least 3 digits long"; public static final String VALIDATION_REGEX = "\\d{3,}"; public final String value; /** - * Constructs a {@code Phone}. + * Constructs a {@code Priority}. * - * @param phone A valid phone number. + * @param priority A valid priority number. */ - public Phone(String phone) { - requireNonNull(phone); - checkArgument(isValidPhone(phone), MESSAGE_CONSTRAINTS); - value = phone; + public Priority(String priority) { + requireNonNull(priority); + checkArgument(isValidPriority(priority), MESSAGE_CONSTRAINTS); + value = priority; } - /** Returns true if a given string is a valid phone number. */ - public static boolean isValidPhone(String test) { + /** Returns true if a given string is a valid priority number. */ + public static boolean isValidPriority(String test) { return test.matches(VALIDATION_REGEX); } @@ -38,8 +38,8 @@ public String toString() { @Override public boolean equals(Object other) { return other == this // short circuit if same object - || (other instanceof Phone // instanceof handles nulls - && value.equals(((Phone) other).value)); // state check + || (other instanceof Priority // instanceof handles nulls + && value.equals(((Priority) other).value)); // state check } @Override diff --git a/src/main/java/seedu/address/model/person/Priority.java b/src/main/java/seedu/address/model/person/Priority.java new file mode 100644 index 00000000000..43faa9bec72 --- /dev/null +++ b/src/main/java/seedu/address/model/person/Priority.java @@ -0,0 +1,49 @@ +package seedu.address.model.person; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.AppUtil.checkArgument; + +/** + * Represents a Person's priority number in the address book. Guarantees: immutable; is valid as + * declared in {@link #isValidPriority(String)} + */ +public class Priority { + + public static final String MESSAGE_CONSTRAINTS = + "Priority only contain numbers {1,2,3}"; + public static final String VALIDATION_REGEX = "[1-3]"; + public final String value; + + /** + * Constructs a {@code Priority}. + * + * @param priority A valid priority number. + */ + public Priority(String priority) { + requireNonNull(priority); + checkArgument(isValidPriority(priority), MESSAGE_CONSTRAINTS); + value = priority; + } + + /** Returns true if a given string is a valid priority number. */ + public static boolean isValidPriority(String test) { + return test.matches(VALIDATION_REGEX); + } + + @Override + public String toString() { + return value; + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof Priority // instanceof handles nulls + && value.equals(((Priority) other).value)); // state check + } + + @Override + public int hashCode() { + return value.hashCode(); + } +} diff --git a/src/main/java/seedu/address/model/util/SampleDataUtil.java b/src/main/java/seedu/address/model/util/SampleDataUtil.java index 338bdbe460e..496b476a2d3 100644 --- a/src/main/java/seedu/address/model/util/SampleDataUtil.java +++ b/src/main/java/seedu/address/model/util/SampleDataUtil.java @@ -9,7 +9,7 @@ import seedu.address.model.person.Email; import seedu.address.model.person.Name; import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; +import seedu.address.model.person.Priority; import seedu.address.model.tag.Tag; /** Contains utility methods for populating {@code AddressBook} with sample data. */ @@ -18,37 +18,37 @@ public static Person[] getSamplePersons() { return new Person[] { new Person( new Name("Alex Yeoh"), - new Phone("87438807"), + new Priority("87438807"), new Email("alexyeoh@example.com"), new Address("Blk 30 Geylang Street 29, #06-40"), getTagSet("friends")), new Person( new Name("Bernice Yu"), - new Phone("99272758"), + new Priority("99272758"), new Email("berniceyu@example.com"), new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), getTagSet("colleagues", "friends")), new Person( new Name("Charlotte Oliveiro"), - new Phone("93210283"), + new Priority("93210283"), new Email("charlotte@example.com"), new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), getTagSet("neighbours")), new Person( new Name("David Li"), - new Phone("91031282"), + new Priority("91031282"), new Email("lidavid@example.com"), new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), getTagSet("family")), new Person( new Name("Irfan Ibrahim"), - new Phone("92492021"), + new Priority("92492021"), new Email("irfan@example.com"), new Address("Blk 47 Tampines Street 20, #17-35"), getTagSet("classmates")), new Person( new Name("Roy Balakrishnan"), - new Phone("92624417"), + new Priority("92624417"), new Email("royb@example.com"), new Address("Blk 45 Aljunied Street 85, #11-31"), getTagSet("colleagues")) diff --git a/src/main/java/seedu/address/storage/JsonAdaptedPerson.java b/src/main/java/seedu/address/storage/JsonAdaptedPerson.java index 4bf8cbaad54..c0d7219e877 100644 --- a/src/main/java/seedu/address/storage/JsonAdaptedPerson.java +++ b/src/main/java/seedu/address/storage/JsonAdaptedPerson.java @@ -12,7 +12,7 @@ import seedu.address.model.person.Email; import seedu.address.model.person.Name; import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; +import seedu.address.model.person.Priority; import seedu.address.model.tag.Tag; /** Jackson-friendly version of {@link Person}. */ @@ -21,7 +21,7 @@ class JsonAdaptedPerson { public static final String MISSING_FIELD_MESSAGE_FORMAT = "Person's %s field is missing!"; private final String name; - private final String phone; + private final String priority; private final String email; private final String address; private final List tagged = new ArrayList<>(); @@ -30,12 +30,12 @@ class JsonAdaptedPerson { @JsonCreator public JsonAdaptedPerson( @JsonProperty("name") String name, - @JsonProperty("phone") String phone, + @JsonProperty("priority") String priority, @JsonProperty("email") String email, @JsonProperty("address") String address, @JsonProperty("tagged") List tagged) { this.name = name; - this.phone = phone; + this.priority = priority; this.email = email; this.address = address; if (tagged != null) { @@ -46,7 +46,7 @@ public JsonAdaptedPerson( /** Converts a given {@code Person} into this class for Jackson use. */ public JsonAdaptedPerson(Person source) { name = source.getName().fullName; - phone = source.getPhone().value; + priority = source.getPriority().value; email = source.getEmail().value; address = source.getAddress().value; tagged.addAll( @@ -74,14 +74,14 @@ public Person toModelType() throws IllegalValueException { } final Name modelName = new Name(name); - if (phone == null) { + if (priority == null) { throw new IllegalValueException( - String.format(MISSING_FIELD_MESSAGE_FORMAT, Phone.class.getSimpleName())); + String.format(MISSING_FIELD_MESSAGE_FORMAT, Priority.class.getSimpleName())); } - if (!Phone.isValidPhone(phone)) { - throw new IllegalValueException(Phone.MESSAGE_CONSTRAINTS); + if (!Priority.isValidPriority(priority)) { + throw new IllegalValueException(Priority.MESSAGE_CONSTRAINTS); } - final Phone modelPhone = new Phone(phone); + final Priority modelPriority = new Priority(priority); if (email == null) { throw new IllegalValueException( @@ -102,6 +102,6 @@ public Person toModelType() throws IllegalValueException { final Address modelAddress = new Address(address); final Set modelTags = new HashSet<>(personTags); - return new Person(modelName, modelPhone, modelEmail, modelAddress, modelTags); + return new Person(modelName, modelPriority, modelEmail, modelAddress, modelTags); } } diff --git a/src/main/java/seedu/address/ui/PersonCard.java b/src/main/java/seedu/address/ui/PersonListCard.java similarity index 95% rename from src/main/java/seedu/address/ui/PersonCard.java rename to src/main/java/seedu/address/ui/PersonListCard.java index ee514bad5f7..712367bfff0 100644 --- a/src/main/java/seedu/address/ui/PersonCard.java +++ b/src/main/java/seedu/address/ui/PersonListCard.java @@ -26,7 +26,7 @@ public class PersonCard extends UiPart { @FXML private HBox cardPane; @FXML private Label name; @FXML private Label id; - @FXML private Label phone; + @FXML private Label priority; @FXML private Label address; @FXML private Label email; @FXML private FlowPane tags; @@ -36,7 +36,7 @@ public PersonCard(Person person, int displayedIndex) { this.person = person; id.setText(displayedIndex + ". "); name.setText(person.getName().fullName); - phone.setText(person.getPhone().value); + priority.setText(person.getPriority().value); address.setText(person.getAddress().value); email.setText(person.getEmail().value); person.getTags() diff --git a/src/main/resources/view/PersonListCard.fxml b/src/main/resources/view/PersonListCard.fxml index f08ea32ad55..8a8be81f624 100644 --- a/src/main/resources/view/PersonListCard.fxml +++ b/src/main/resources/view/PersonListCard.fxml @@ -28,7 +28,7 @@