From 59b435b27be0cb7b91938b9830534f51150ff43a Mon Sep 17 00:00:00 2001 From: Sergey Krylov Date: Tue, 17 Feb 2026 05:51:47 +0300 Subject: [PATCH] feat: add logger --- lib/slf4j-api-2.0.17.jar | Bin 0 -> 69908 bytes lib/slf4j-simple-2.0.17.jar | Bin 0 -> 15716 bytes resources/WEB-INF/jsp/error.jsp | 15 ++++++++ resources/WEB-INF/web.xml | 4 ++ resources/simplelogger.properties | 7 ++++ .../back/controller/EmailController.java | 5 +++ .../controller/RegistrationController.java | 36 +++++++++++++++++- .../back/controller/filter/ErrorFilter.java | 33 ++++++++++++++++ 8 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 lib/slf4j-api-2.0.17.jar create mode 100644 lib/slf4j-simple-2.0.17.jar create mode 100644 resources/WEB-INF/jsp/error.jsp create mode 100644 resources/simplelogger.properties create mode 100644 src/ru/charm/back/controller/filter/ErrorFilter.java diff --git a/lib/slf4j-api-2.0.17.jar b/lib/slf4j-api-2.0.17.jar new file mode 100644 index 0000000000000000000000000000000000000000..26b1545546fd72ed0668ed539bc8aecb6ee4f112 GIT binary patch literal 69908 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

8`x_8Xyb-IlbaXW%}vigNNnR zlLgQoacE1E;N#%g;1TiJ`P2#tX)}wf7-(huvB3s3?2dYXZsbDi6!GPRVC}r8pQa

+ <%@ include file="footer.jsp" %> + + \ No newline at end of file diff --git a/resources/WEB-INF/web.xml b/resources/WEB-INF/web.xml index 76c1445..9bfbaaa 100644 --- a/resources/WEB-INF/web.xml +++ b/resources/WEB-INF/web.xml @@ -29,4 +29,8 @@ 400 /WEB-INF/jsp/error400.jsp + + java.lang.Exception + /WEB-INF/jsp/error.jsp + diff --git a/resources/simplelogger.properties b/resources/simplelogger.properties new file mode 100644 index 0000000..055350f --- /dev/null +++ b/resources/simplelogger.properties @@ -0,0 +1,7 @@ +org.slf4j.simpleLogger.defaultLogLevel=info +org.slf4j.simpleLogger.showDateTime=true +org.slf4j.simpleLogger.dateTimeFormat=dd-MM-yyyy HH:mm:ss:SSS +org.slf4j.simpleLogger.logFile=System.out +org.slf4j.simpleLogger.levelInBrackets=true +org.slf4j.simpleLogger.showLogName=true +org.slf4j.simpleLogger.showShortLogName=false \ No newline at end of file diff --git a/src/ru/charm/back/controller/EmailController.java b/src/ru/charm/back/controller/EmailController.java index 13dc7f9..b27dc3d 100644 --- a/src/ru/charm/back/controller/EmailController.java +++ b/src/ru/charm/back/controller/EmailController.java @@ -5,6 +5,9 @@ import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import ru.charm.back.controller.filter.ErrorFilter; import ru.charm.back.dto.ProfileGetDto; import ru.charm.back.dto.ProfileUpdateDto; import ru.charm.back.mapper.RequestToProfileUpdateDtoMapper; @@ -23,6 +26,7 @@ import static jakarta.servlet.http.HttpServletResponse.SC_BAD_REQUEST; public class EmailController extends HttpServlet { private final ProfileService service = ProfileService.getInstance(); private final RequestToProfileUpdateDtoMapper requestToProfileUpdateDtoMapper = RequestToProfileUpdateDtoMapper.getInstance(); + public static final Logger logger = LoggerFactory.getLogger(EmailController.class); @Override protected void doGet (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { @@ -44,6 +48,7 @@ public class EmailController extends HttpServlet { ProfileUpdateDto dto = requestToProfileUpdateDtoMapper.map(req, new ProfileUpdateDto()); try { service.update(dto); + logger.info("Email {} was changed in profile with id = {}", dto.getEmail(), dto.getId()); resp.sendRedirect(String.format("/profile?id=%s", dto.getId())); } catch (DuplicateEmailException e) { resp.sendError(SC_BAD_REQUEST); diff --git a/src/ru/charm/back/controller/RegistrationController.java b/src/ru/charm/back/controller/RegistrationController.java index 271f785..b014977 100644 --- a/src/ru/charm/back/controller/RegistrationController.java +++ b/src/ru/charm/back/controller/RegistrationController.java @@ -5,15 +5,47 @@ import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import ru.charm.back.dto.ProfileGetDto; +import ru.charm.back.dto.RegistrationDto; +import ru.charm.back.mapper.RequestToRegistrationDtoMapper; +import ru.charm.back.service.ProfileService; import java.io.IOException; @WebServlet("/registration") public class RegistrationController extends HttpServlet { + private final ProfileService service = ProfileService.getInstance(); + + private final RequestToRegistrationDtoMapper requestToRegistrationDtoMapper = RequestToRegistrationDtoMapper.getInstance(); + public static final Logger logger = LoggerFactory.getLogger(RegistrationController.class); + + @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - req.setAttribute("profile", new ProfileGetDto()); - req.getRequestDispatcher("/WEB-INF/jsp/profile.jsp").forward(req, resp); + req.getRequestDispatcher("/WEB-INF/jsp/registration.jsp").forward(req, resp); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { + RegistrationDto dto = requestToRegistrationDtoMapper.map(req); + Long id = service.save(dto); + logger.info("Profile with the email address {} has been registered with id {}", dto.getEmail(), id); + resp.sendRedirect(String.format("/profile?id=%s", id)); + } + + @Override + protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws IOException { + String sId = req.getParameter("id"); + boolean success = false; + if (!sId.isBlank()) { + success = service.delete(Long.parseLong(sId)); + } + resp.setStatus(HttpServletResponse.SC_NO_CONTENT); + if (success) { + logger.info("Profile with id {} has been deleted", sId); + } + resp.sendRedirect("/registration"); } } diff --git a/src/ru/charm/back/controller/filter/ErrorFilter.java b/src/ru/charm/back/controller/filter/ErrorFilter.java new file mode 100644 index 0000000..a4547b2 --- /dev/null +++ b/src/ru/charm/back/controller/filter/ErrorFilter.java @@ -0,0 +1,33 @@ +package ru.charm.back.controller.filter; + +import jakarta.servlet.*; +import jakarta.servlet.annotation.WebFilter; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; + +import static jakarta.servlet.RequestDispatcher.ERROR_EXCEPTION; + +@WebFilter(value = "/*", dispatcherTypes = DispatcherType.ERROR) +public class ErrorFilter implements Filter { + public static final Logger logger = LoggerFactory.getLogger(ErrorFilter.class); + + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + HttpServletRequest req = (HttpServletRequest) servletRequest; + HttpServletResponse res = (HttpServletResponse) servletResponse; + + Throwable trowable = (Throwable) req.getAttribute(ERROR_EXCEPTION); + + if (res.getStatus() >= 500) { + logger.error("Error 500", trowable); + } else { + logger.warn("Exception code {}", res.getStatus()); + } + + filterChain.doFilter(servletRequest, servletResponse); + } +}

$gtyRPwCJ&{EUzsO_AeW!WeKix0 zRLZ6^5Dd->MkYuXLh4=ux_Iu!+S(#frM2_cL-DA* z6UeKTC-Dp-alZM!oB>N^Vdr)MOl#wGA1W;jmifuhSkpsB4zxv&zQJ@-vlugT3Xrtt&MVQ!YR>6$g>SA{dN3ZFL&BeMKHjLZ7^7ZVEhkygp26WjbxJMS+0Egg zc(H&fpRe&QrmjeWwNd+Vj3F1Jn}g7%3=|9I(GE#}vXpnl2~9MB5_T3KKW89k|8_Xx z9puPTFf9IEzq?@-iign9$e3Di?No~cKb@Urk-g>Cyx;r1XqzFU>Wy-wWU0UW zjY(*yAmNqY`&@dU|MuTg{{to|I_Wz&nmIZ-8vWn1AWGRnaa{zN+v2@Pq$BeN+HK}0 zHZM#ZG6+>b5NR$DJbtPAk2O)PK9pgG7-QCZ=~QeQqxgE7_qX#%`FuN--uN9SlGlv+ z^_IhRtI1RK=f`!84*+$aIDvmPa6Y7dC=>L>xv2ZnTt(4E!KRnNv{7hHn)1As$%z6} z5OG_a6n;@I7-YZHB&`w7`Q)DW5<6qLHLL2jljeL?d$0;s(uBELLI#FDYLx~wkve+b zZICiZ0BXm;0cu7+8lxwe%sx zUIJuSkFvtpAEQ)ArC+R-f|R6%k$O-Ejs6(fB=QW{qI4J=#grqu(RmuplKDL4&%#`j z$Xx@!fvc%T^mi@y)AM89?KW@Cvs6f)rPMUC--`WfYDZ!nC&S|$9>xfO*7vA%sMJv1 zTa4CcA~fNwKSg?*)ee2@wcez+e~T66@zuYl{R-?Z(#^WQ>G8X*&ed?*ud`nJ=?2)0 zLAn+#GL9f|G@+pEa^BPnVolPG3h$|rnZ4+w|N91ljc%|X0O3d2Rv8Kff48wpRF=EZ za_t{&WwWZL5)F_|)|U-7ki3%&bLodGDcFEuhw@&(EV@^k)Rt}iv+sBh^)ndMN z{@teOHIk|(E6U%d8Fc|_;%DGCl&|@dAte#2o*|BJoPu;&sht5XY6Y=xENibJIItBv-YU$ga`XQ$o1P;Sd_9yw`5FE~S$?R6pAHr1AW+|j&Unr?F~ zG-^oqx(Ko1j4oH;&5n;ixu7q3zB{&d^#pT|(Wj=gqklZSxsy!R^`1W7~}ClTpR(3^9%JPQUMx zY@m*c99r1`t9=5j7r${2@&yw;CwoO%4RRvOaw5A+ zc0g{B-9@28ExpZKfG_Vzs5#=VG)v}6spv>pc|xd{%t<~biz@pLJxwB19T-+A7S_=t zi4jMoM`#h)y66YayY};zs*F%kkFdE&$UBaT5rxz~g+2o(bmBSuJ$xCFutAUTsYuB2 zVk~qbILtI~^@=Z$jYYO&nf)SN)-V={LpT!WPfScIuQm1<4<zixM-EQ^$c7V zS{L=Hi$EMIOov$_rdgu<{*zppY*A6NoOR+FN&WCKZO)EJ%R)+^+hU%Qx9shl)aemj z5Q`5DNj=^6dl7vcpGGbXSCDHdIeT3pUKk)84x4rcHVht!H zxAog%F5-2KTcfYPcd#FB6|Q67_$d5e-Oxz?ZH@e2+hYFjMbiG;$MpZp16HL&SYoSU z40oGMyL(0M8(KB5rWcE^Ge54CIUppkOWS%bh8eIm?Q13)TE;AAT<94u+ietriPy-b zU(CuW1Of}>mjnBwiYdScNnk4=Ac8{#Dg^=q`o)IF@`-8geQiaWxHxZ(ZB?SUnK-|9 zJ-u~3b-i4!+ z^uS1BYmQWvCsB4QQ!m0)z^IDB=zVl`bstW9#Nhr}fpz;>9p>6MLy8norz^*XP9aZ| z&vXZ4Y=SF|o@ZLyfay@BP!_GibO-t{5R1Mtvq6Y;R^U#@Qo11K!qCPQ!NTALFcb+Q zqMT|H_b%7qk)PcAE*CeXp7ibrSD>8tj2^%2QLrYYmV?NWQ<@Jq+o`QyGUwHpEpOlq z`jLq%-3Ye_Z+w7(b$WIsY#%W9!{4D>0&XTi?FfU06J<%(>Xgy{)|w{rX7&isjw1!m zZ0MKa1ufO_*h(Zq#__64Q>4RzAf;9Q5w*Pq>dOiw!K6%`>yIS$vMBki(e>m(=}PKq zIY79I1sRPQJ7d5d7mVO0-6PwUL~I#U0qgzC2Arzdi|pb+ zi+HF`N{xja{Bf1d_<(UPF){W8;qLMXPhuqmRs1`H5t!`raTQN%#cEv)4P67_a1R57 zR}hkhPRR>M9qK~#MTDS2vS&)3Cxcj+RK47TR6F_FJx%IBx5S>?KlTd zyqkZ+p5C^gF1)#Zh5Dl zuL(7Mn*H>(^2NWik)b*RwOL0IxCj%R|2m^-D8M!}5#||CCq7Z2$J)_MOBt3XhfT%a zlK9LeU!P~8NaX$#mFM`bO&Pb~Z0k?Lt0iFBP^V+`Y-faW8qo|;8*1HfE(C`lT64O_ z)jqs4arEyp9BI=86F9R5m9-4w0wXpip37okC|$xya8BN)i%b_93)Yu+$l^_N+@@O| zwPK^2(csWlaBCcDpH4&Q>j@(t`dl(O{et^;{ol!UI^m1qq1WNYqcQO3jv;u&k+55O zm7YzT64yw1G9Y5VkW-23HIK@kQkp0PWfe$tO5#E)kF zNv}tJyFvX9Er%t7@Q~0ISVs+t52lt=sS9rc9mnTcYzO^6DU5(JwSs*VnWL6HOoIgm zPN1_v#!sjz-pgQ*vs!|O`8z~zs&Pbv3&?CERx%-I{Q! z-ms0nJ#_3;#p?z^hZ`WnZ5e~8f?6wFTB#@CZD%0qm<^H*U`HO^u*e=)F-PlvGGcqB zo?c-oVYx=6t5LNJW4ZDl>Q5=NBjVuG;S{nsicNT>U>HqKPNM=}Lm&(;fscSd<^NE) z@^9SCk9vvi_l*Q#B*j0UEX5uXt{}(b7MCRe0lPATLK~taXJ5)_QAV}?Lt{RAj01Gd zZp=mD`h#iWXmP#6-CgA7d6mpgrAzE__wuKfdil)c%Z?&Ijz}JoB&vH__9WeXYmsgB zWCkcLxMnGUb?*?jEZxDrcB3s4YBkTycagSw#}ezW2B8^edH#_*`{f5nuQ7F18QSq` z(&J9U>w@7mQ81f^LL0=LNk29nUA%^l2>;>fY{x4iGM_cV98oYgTg%1~C)Cv%G4~U| z6|}M+4TA$Q(S$R`Y-<-H8Jpy7Wty3{)(WT%rtq8hckvJHYp00zEs?J|RQaD3rj;G9 zH8kSRm-i9)IzL{DNJgPp)1FcTG811-Lm;kV-%cpiUoq7=e{15A6!DA+81lG-#Gdp7k*7(^P)8$Y5L23M^e#;{<=9PFj>Uodqx(#rxQS?ks@ic2aFNzc7>4N5@_U|ZWY?qgYm@M-JM+4ra6=Tf-lD_@;0})e(~g2iLfory82CEj z?S#AWUUp`VSF1WkK>^Q*fD!KlIyMLBE@ICsG5*yw=Cr^I#PeSA#ye=$TPyspV>lq4 zSZ3Y;zCeRMn_TgV3VG~zG&7#KcD&&>@V_jiwaHE!R}b_wvja;<#%#(cIi{`J~H>Gq<`mjLXS$j2AWpeRLa4EDi$ z)=*&*G;c%w-S>DUzm^UIKS_EGP>zguGzKfvEQ^|z#ni)x#iT-t(cn7`zLC>B$bX-) zcWX>7y0%Kpq9ygQ@CosIq57 zkN9nlL`zPJ-=jSKJ<8&q1Asff{hM2n@rn+4ICWo3yM1F;P-~kNfY!UdPk8)aC(IQm z2zIuu93C_GJ?taZSzADNMEKWKgQ6H^F`&{nwHu;uvvZrKr(1`w}y@|j0$-$nZ1}bdqf3yU<_E`QuYcW7eu24v|yM)ZxE2(8~;A!uhDe@Y)RoC zn#`X1b&i>#B3P5VoXWnx!Du(sdbk(qfTFo6G>K{rI-P`T2lk`HGi59~FN8x9KSIhYxI*DmoJ>e)IP+5c~G zR+i$wq_Fd{ZC0xw2;C?}J59=vKfL^yXY=Cj3@7_(MPE zv8lh33i<`1Mnt0Ks5aCBI^BrNx_xl73tzZV_rU@PKw{-^oL)(7X@<)Oo z!IPldfV`Q7-6?r1kO|>W(cq-fogf%}J!T znFcWJ=&)xAR~u7G$O4G!4eKe%uBU+^b+%;|7J7)k4}(lvwQ}M?VWjpE`aiQ)F- z^Ld!B+nAhJ2tEqZ&N6lo+;Ai6Dx7MNAi~arD@6y3rH{tM6pEBzJ@07LnV*WY01QaV zT+4caz+k0tdgZO5@%dWCw{`JT$UI*E$~hQf1QV!y=Nyp!YtDh}ANMZ*zsdTq{6kjq z`nPF6_HZ{D%%*XBXY3qetYk}4qZtIb94!dVu8Np?BYdT5(<$q!b2~(P2CVQfhL^$+ z7+nF}>rMpRYcP`lm|Y@S>aC4Ew$JfJeTF5V5*d@n%jJugPtKpWk139q^PKHZ09$k_ zMncmBc;(t3m(ZONXW{7#N)3r=*%}Msu!3(b)@M^@!A%Qt`~qNt<@!mCO?9@e42nyU z<;JUN6-JVZ#|}yP<_C*s_kEECs412hh->;MfrNRI{A}*%&MaIx@>ZRxyct=ksuj`3 z4AATZtqp6F>BdaZ$4gkRg@IAf9@^-Z*8~`yC;Ri;1N5op2>1tf_N6@~%(=Quh|n62 z4VAyz3Z^jBi6Hy0G-Ibmll#FPsG=&cjM3G_Sx74ttbQ?NIW&i>FV0dKgEcV>q%49{*F^>sTRbXraFWrIH zF1B05jN)4QD-btEO5vP1b{9%?;HE_!!sOhR#zEt(-T_84Z*Dvs3m=l+hm^TZs?Reu zEgvL%ro>yA>Xs&F51@uA;hel#wf0OGjKg5eIxyoHK6lC3TH z8*JLdC`;gO-&Q8Qn0(B9PPtrM4!-MeeoB~Z5y@$k^_atbzJgmCkm6dtHyL+2AFif5 z?&)#@p`7#BIW$wTSh5@QUSl>Vfs#Ss=E{kPl4P#?M3*CM=g2`$EXE;Xg$EkQ4Z@7cph4^+;s~bH;c#3OOqw9ivxidw8m+(_=iQV%*$M7M@fVeV z^Y+k(5c*AeoKy=FjRXGD4|V*C!a=mEjeLBdupxDM=0$5G1A2TPF&LPSndOf6_EjZx z4J>e3)xzVTm4j4@IX@}bxW>ncPIYwh94HJ~3G@DedfTfRA%Y6K^yA1OtLNJr3Mqza zc4TohEn4_Y@#JnI&ODBiO_sY(ZaCq_4UtDy6-ib#)udtEVeGm%<`g&Y?a`M^l;ey9 z`^;q7mD3k9R|FV3UYnFWfmAb3q>Z8nRFeR%GJ&+mP7Oy!bEg)-BqKsmAlZ{+iUy8s zHk1fy$^v@wuuZxg4}SEUuPfjT50sr<6q-dTM&Cic(x*z$8qODW$WWMEY+{`w_xw?~ zY}=G}tT^`->3Rj@!9$d3%+2Hj9+$Svj=Y7b%19pzXvOSH?8^C+MlE%X^W+d$}Jne8NR?8eMc0A#0d(j5l#&b0kkr} z9*vZ#R!=5lh>e&_(_H0zU|qDx2tg0@#}6XM(3k;gVu8M!vX2m|G@TtqVQ^wWiGPvW zWY8amORcViyw9ylMMEVMxk2vy!Rva{V~YE!Yx(QrbN{sVRR2-*87) zsfk1zOA1CtHXCF$pGCJ>+LgDTt&6PocOmYuhLY2yLb0w!Q29Q3at22I`0;S1_^@LX z|M2W|Ogai1D9El;sG#ypaXyX<#6@jZt5gwly9_M%n^D6 zC^stfsb8#!YM;1dj{gIo78ReU1c`wR9So<#A_yP`k1G9GwV8&zCHx8Y0_xA<^ddTR zb^d1R^~GYC$?{|g21nfl!>(Vticcru;}FXXRjpmw9RuFY;Z-Z7@Nu}nh|Sdz`HDMn z{L>{(r77i6e)nk@1|kkt(#z(^ES>ov*d7LvwTgq>Gr;*$B^4Peg8>ckC2L(>*$H-z zdL{lIX-P+`>{r9G$Uk%QvA6**D-uK=LJPu-r1hpRKg7ybqL_cFOrXKYULZiw6zuW; z6jBa%KUBkU9L#uX;;yU@e?;Ika&cTP_RVPbz$C`Hz4WqwkX8OkIs2P)$iLH6=(eS2 zh@p9;keLcev^$)vV{mA-T)TXL!IumLx||*V2Z=QdK`y+}6#MbmZ!l%({n*4P(BQHH z^FrKy#S>Nf`tlo#{4piGq_)VdV%DDw_LM{PQ#}sB8GptMoUncBA|0d#1Ep*e(IW&O zBMCT;4)*mx5&$*QU2sa%i!l1b2x6q~>=Xu>*atmN4(s*gC#J6QGz?za)e@#51G8rj zrj8F~wD3DoW4K(&XZo#aAm_gQH;PI)P=rU>&enbpPG}C=N_8fh5H+02L}DYui>lEJ zHYwXVjZcnyo4#yJ%6NS&me~L=NvAp_U#Z}@ch;0OzuC~det0F?T6(gR%`h@^vNBAp zWuTJ=hEC-5XcZJ29h5`O2Rmry(7M5xqlJo+QFgrzg=#SWYI=&?y1mz{Y=ZbU>=->W z^4U+1N+pZR4eAV?lmy;ea4Q{AvXA4t$dz}F^uNMHwmz>bKTL-b*{V#1W+bQ5NfAXw zu(qBtFoOFaS+=ZLH?;Kfy=w8AIA{Y?$@??>>MlCoZS^O*PP%npDn0HC3bfdJ#{~igk}7Awp=N#{8WF_I6_Yn!Bq%zSCmQri|}sh&p$8D|dNdYC{$ek#9e@&8_^dGe(EqeEwkZ zBy9n_Jz_o@U8o5h6e!(sItSs0IO0ia4SNwtRo9*gBu)>HoY@t-^8SL>g#x7*gFg-) zeX<2=-}2R>(;krIX-5rQFJS1pF~8NrdE_85oH-YR>;NON$B4U0!gq|?i39bA*!G$< zE8Q1AJuu>gVIwie=u}NdWN8w~_rBu)2yikYN^@tqFvk=G)I2|XD0K>?=_it z`c=`RYUY8QKJDy_nwH&?vnMKG8qBsDJLnoa$nJe=BtHTNy1nW%!rJ#`nR{a3B>a{< zgV;*AN=JZ{J9X6s>pe}Amk>bU=aWa3BJ)!3@Nt--!)nMaPP+4f&`SaNiA}&A(=Lzi zi*euILoiV<5WzmilNif#b#4OdEu5Y%WCZ{Qj&XP)FGYw|1G@XRYLWZ~QGO5san`FlWJ8{+Y2O+ZHMK`g8GX=}x{caHBf zD*c*gf}86Q&?ttk!QY>Lh=GFVKJ2i$M(s8urAm30Zh1&ZCK`K3KCe7JJK-b&B;Ph1 z{ncYbSu}vCNR2lJ*t65Pi2QnPk}=w6WH@XVYeaUm*}|1G+@|aYyORY>v ztJ1P<>St=_i!dhx&GvWpMu(GuNc7ZbVk|qt_2kjDyt{Z zquK{<7IJ#;AGo>Krj&*V-oI1gGs2@0d!PUSzy2#^{=4-1A0YGJI^jeq&Dzg@C&Z~Z zQ0)^3>>%L9LInw;vVc(_t<=fN1O+5|f-yFXNilHSR8U3vlNsYDde9z%z*5bI1)1jW zfSEiMLw2jFsmi3ya0?f=I-fEdj<3!>LcR;YY=O=(z6%-)p`r07V>gdwTTgA9^>|9J zp{NYS=vJ$7s_9D`f@ok$(2es8RZO{x4_j5npMtQ`Exu`5+zaIweo#y$oB(=eXbkir z@P4Cdn^eC)&qH0UWSKy_U`I5#D=JBEvVq;bRWpBbm`)~5W$=|0Uhp`_D9zA~S{#YJ z=k0_7xGKC077G*Cr>X7W*Rnkzb?7s%YY(-ykliBMtI>|m39p;5$pWZ{3eil^hm5I2 zeSgn1Z;F)FvV=OIFWYYQfJixV@KQx*T7Wa!AF*o>Zz|;R7VZ*0?2eQ~tHHPhk50Fx z^db)xcF@6S4xt412B@^Wxc87ZjTG5xSNe5S3pU|Q50CMsKZs4edR1G*-cJ)m$_*zf29aP z;YNF?j)(iQ8c7vmPSBhki&A&r=xPk6cY{~r9MZdjqExqRgiCUIE-yrE&d5@8sG;AV z>}&Go;;9U1kZ#=w7!2ZWf2T5UIyWuUyX9gQi?&)-8opI*gmjUJBhk-t&}{@*bOf|i`3j4 zWSk>wo$xqhR6%3dj|X9DZ;{>zA?4wukO5VqE*-*0rmXxx2j(Nq=UDhXZGNWqme?Ookcn3>V(FXs$u z+Sr+e`zY?xR2A7zqKpL-xutECgaHek>3zBH8QYJFmiOVxBgpa{I4K4 zD5m{e!Gs*_gSN)kib4zus-$}onqn;#3hF0B0htGtfCXC?V4)hOSXMLiw}1%=lrm3D zjT7zdYick@=Nb>-l^uKrp54KX66(*|^g-f8=AD4HG=*ElNJ=XXm7;>Llb=j6ssyHy zB1gJm;xhn^-_@D&uk(((wO?*88IX;5T4`jCRWK0PpH^Pli%{6YMGx*G23jX!dCFb{ zw(hE220QWgB1`k*K|OZdNEJUxrrjOnVfLq&9P;wYl{+$#`m6NNw05g;oqNOEbTAq=Z;ziUmux(^}yO!Dy#!xAG`nF zI?PWR`ht8*gWA9E|9NQtnK}}&vA5E5bo?%WQF5~VUx%h3g>`F0d1Ngt@)W&Bv5=+q z$NWA%E>hN8KXXf|SLP--VZ`|ozv%v0KQq{Xq3(M5IUyw8o*2d}hg5;0gpqy@59cLy zk4vZLkKPV9l-SKb zA>Q}tH|6F}S+db6?1Iyr(ZGV~WUA_-SzYT<>8hMn+2FifSv^)uYnXTB2f3r8!UAS- zqGGBRmw<2W-zw>3h*m!?Ob%QPaveNszh=k8IstN_6bJC6fm=ka*}8BRfh~lsF8C?5 zJ_&!Xv>6<;JK6{m%byRfI>SIei49@5*ID)EKW$>ALAzmOSNG~K;WqnkbN9oS793Y$ z+ht~)1L?Z=jY-d5i2RRQXWPf|Bh4?{hy>yo-WsYX7uEZ;fwSbR+!QRnOeY)m0w3G> z-;dVp*ip5fdQzYb^onrAhdGDij(t=?LDC>pjb6OZj*jKoz@}YLi5(9AAoz6ZiG*Kw z{32@u$a2W)GvHxatRVnPSnRb7>JL^(Nm?K)N{(6t95Q@noq#%+cm-~2<>nu?l+v9@ zQce58jNUqF?V>iUA2Pj&>@b!i&9FyNAOERX9* zey+$zE$!-G0%2$n_s$si4!sC$Zx**9g@4Skpf9zx$8sS16}A92_4UZM!KDgxgo)*u zF46pn_SeN6KQT^=^G#L?ev2*s^Njm=x0lcn zzXfP~?^M!Au#-P%QIw0qfgucA;Qa@zkWd?TTxZw#&&KZ|-1*DH7Xr~JC8 z?eB>Wt*v>-Kk!~T-cmd0#=ZFY*hPhC|8}N8|7{Bpk#K8@??^|;poGmr3`>T&xvx*# zk^Dn&{-xXNfID~!5uus3@@ z;@Ld|^*l`g3Nrb0hC>piRd}Sn_Zz}RuiDZHb!vW)6X&G~5NoZOFOw@0n@?^k!z8cV zd$K8Q#?hdO;0CslhO32fvI0YcxReuQaeO!h8H1!E{i4!@0Ad3xh@#{mH7SFJB0bE$ z&lA{RGl4xML$>yN-TD1rWr_bBgZ;~DLfpjK#{PT#`6jXd#~`jKo2=#rAzi8@DQMuPJO?UqI4htrEud>LVoe=9Bs$&(4wd>4%^ zNXW+kb`rNqjt@Pc6bLa@@&z(`VIEP~g(3>n=MWOSfC>xTfq&mi0p&IBD$UPG;)jt# zAx14yO9t#Dz(@7M0}sf*-v$;Iu-Ei!*?dhk!!!;%q5wh6cani4XA;LC;1rI7_X;5- z;1ravz&k=`930L6?GXlbx@$L-OW0cyQ=j~9zv$?k)WIGX z3A%$w{mQSb3z3WgTyzZmt|p5W-kbfExK2Dn-2zAz+hLFc^(@a~O>-enF8s%;!^Tr*ANw0&cL)D2F_dUX)UwFZ9B?dFRV zl?(y?H$vqplKLA|!FLj*2~`;DChvqD z+{J3q4EwUby}P}H4Q_h8{zJ`CZNwQZ7{%yA_!sX6(s#$MkQljGXr3k*T0Je4EsNRQ z!ITj0`auLwD4@RlZu(kNd5y+W8uf)fAU*zB!AQ>)MR*>&i{f8Rm;=_)+=6U5eMIdU z)7UVNW1z#cx~3WdQTe^cH$n6($Kd0VjMN3|J&5+fM%_Or?JC1kU?fLCl2r{?fl;Mh zeMt@=$1Cawk^Ah8MQZ~!bx&ifjB7J~!TtR>9%d@9w*ySg9Y@biI{2`UwN@xokAqy+ z0l{LSUN5YrXO3)~v@X=cmt+re{JegUvM>Je}g**W1BKym;inawD`iMeI( zM{+31rXEIOi5rfEbs~)91W0nT;cAAO<2VrYcdvk8!w4?$@u6tlu+|<% zLXFLS>#OgNKLQ+2wY&j0u-o_YM%= z{yt%R&c z0Z3&DNRhEHX`ZM0z=BF!v0k_s0&Mw*n@6@(tS2)=b)OF~cx6{E7F<}jgLg&^{hoDV zMQNqbO{0;owpIZObWx;g0?$-Mkbnk1wiFc5Ttf)ImbiJZGU`mOXWt^Txj4UM)y)m1 zGY>|pT5WZ0Z}CW+Q5-TpjxctqG)RRNHvh|lk%Cp8Au)Tr*K&*JEBSuCXAl9A(GilOu$24CtP63J`frjpeFBLF0bbK71 zA402JCj=+GivJO~)LE1&$!$lrRk}wjrd$S#F&jBrq$>RnBoO32G%!q!3>F>ok;H>X zlzef>DPh`*Dj68}vxxTO;Y`KtZWARg(y{2g%2a#JbtOW^b@z z4Sf6vQ)smwp4L|9^`L(D=z(KI;!`yj+K4z;!lM^=Tfw+>1Vt?BDi*En^$62T0-;fr^3x<7E;XXs zXw+SKH;Nb}3z9kN2m~Uws`bw-F@+E2i4{vA)<(N@snn>p)$_O2%j?=# z#-Ea{kuFe_g8fPA0j0bx=VzV1vED3$DqHgv;Yvq#tqt3~xYbq>m$M=5ti7M{Kw<75 zCWJ1BQ6K2lFJOlRMMC~{M^ib*!fDRO4-YM1p0$0wsFY*fh~y%*-D064nK_AQk~gqg zo(r>nBCe$&7J+4$2i&UZpC}evL*4?YiYO#2-GNVncwi2pK*R4$(E_?W#?JBrl-D9( zPBQj@SfrW1QMyCAK^=Q=I~XHR%it^-NrJe~3gThQwR!vM6=fGd9f$8C5z7d1#{%NA zYuz@#^H6cCNRdGPMl4Y#v|6*Hy)iuHaIS^LCRG;5F@kwz@Q$Z&1JEU-=~IZ`zK8k{ zfTdcKUON))j2XkQZj_RabQ9Zi&$zh1xWSRNPs2txyuW@?qbi8oO&9W2-f_li{|>{E z*Mv%A5@p%l57|X?oS&7YK6o4ND+)Zo`F{v|2VhCIty{Qzqql9Fy=~jJZQHih+qP}n zHhbH4Z|kpf@BQ9;U&OiRkEp1q%*x8Btemyhnsbaf23X84r;C?rUxAwxe#6sNn}DUh z{+Pbe63};FzHBLv*l-?}LJ;hfIjWyDHEK$~gYVmgxMIjI*z$Hf-4yi9TI_C+6|bLy zm11dIl`PNelAIqOEFf+Z14?e8OGG4pc6hizcYV6*2`2hoH@Mt65+A@JXZGJ?r+%+m z>q#4l7O$%u>393Z1qlghRP94fb~fSQsJ8j#@<3GfY*@zD+x?iXeGoLZBHgcBshNum{__^}#?khYwLLZ{nIaBOc6#bHXrMuxq33C_$hG!ghtQ|9XK@<76dChjjb;A! z8SrSaFKzUT1~@~8I1%P!BmD5JAW-pSQ1a6jksf2Fa5xalO?S^}bEeUXRRN0Qo9@Jg zBmQ!2T+Q{L8t()?$Zkru2PdN1yrE`t3tq3e5?A!2?wJ=lIoQ1-2PV#{S=(QATXDz; z_F_#Xb0r}fz##U%x4`hF|3w){A2Vu*#- z)|ersiL0PX(yR~P?+=iF2K9mP*S#GJ(!GDlqM5nAdtr5>edR(+d$vw_>Jj9)uByF# zrY3|o~;+{?x#&JHBlyZ_&}x#uuT#PFY19dhmnjBJ0v^w*DS%| zCa=3GpD5GzA=*)uCop*W}WmtYzO-mN#`ps85hK0haH986CM42!Z-+yzRB z!~9xc%n%E8f>xyYb?H~jo+COBVN{7&{k}iSdFFu|;bqixfX9rM#kWhTk($n6 zy>Fk%x?+)SEZNW|gDViq=xpNxb~IC8s4fKtu#eOQ8OHD*tL11oY=_m7`#FTM44WvT z!@fYJuhoh+@h79`jm{_KGHOw_L2W~UcObpK3s||yYfEi0rvB<$%e>i~%xUj z!F3F$KCAlm-VsLpL*wM(OInocWY&!jJ~8ogDr0%9fyA5rWSJ->X+yFd&}EIKOH2c2 zqOX+nnbGQj8kBP};F!}PYe?bKi%mFcx}K9u-06nPs7N$p#b4@Qn27?DsA9xd^slbPBqeH@id94HhqzD`9-s<3NTRni z8$yz}qQ`UgKU;7P%hj*MUBK*TyRh434}X{Ge2YEp2!|f>Xy#VKMQzU*y`iKkaspsM zVuS1geaQ64$Kk|O$YbPa6lxS9`q5&-z(n&@B6<~K11N+ztP#IfiA3~!Mtgw?kwk@1 zd%}lZ#Ld)bMNeE+4Anw|qno7w`Cwe3QP{7&JTavZ=g$OuY=@X%$%3ClgJRDJFDv$+ z)A~0(@~4w2;btQT66~2V`x#~1`S|fEq3$UjL1-*2f_95(zw=C`Thd44-Db&S=wEL# zzEz}-h8+-!XAUrA1eNV+O`=Yp=-_{0*VL*>VgGQCnh*8(J{9i4K5{cpzD&s?gWGmL z@Ef4Cg_*cMV7o_^rB9SIh@Gl2<8lZ-B$3ubK|JlQ&j|`abRehYdtC!(K6hVLU}2 zRL6Vbw5=p`WNa`y)DS(1IM_x6zAXXU_du|Y40P$mZP1dq(zdZCbi{6a9Bc_(O&#Fk zKj~p_)Zm4^;o_R??dYuftAY)9Gq%|hJXIZRiCnFZdULkfl04xYd?vBAUgL(nX}5CX zUMX_i4C}S(3SX%vyvaCh3tz3oy#c;d!bT0*6V~32&oSS|^`Wac_J(`r$CzI0w$xQi z+?$O%j;6(xNj9_< zxqa34yo(+QDof)KEB?XzSE;Mf*f?Pm`r9`xfGNj+FM1OEErKB7(!&z~nK411#Bw$+joy5!Om(gA(X+Xrew)&mGo`27e zFJOXZ->M=Yra#ZKjHvjOr9!28$z)xiTdw*WnwfAKHq^ z)=M*tVaFmW3vt5DgV9{KRFP2&2hRU?WdQ;urr&?&bH zoEShw(Kl8wcUcV+Oxu&?wTI@C4Ry6M4STbVXF1PTbvA3yD@2;~Nxwc{UY|xj)k^8a zCOOWZAz;y{*R?Dbm!({X)G7=ledj0)WBkqCaF|HXGLlE|mFdslN$Jo>qmf&p&PBQ{ zR+HWxHk&TSi352iH0`77*=_IJo$U>EOyVl!-gg{HYF}M zPdaD^Ia#yWOqCj@?_NnjiO{FUNkGlW>Q(ObMA4516Kg}!N*N9buQ1y%uwgO;^__H? zHr1bUus(kvn?v*N>Y3HFemEX!6wG&ij5+&+$NC>q|HhJO;MU(wGV|%PyHvS{=|rTz zuRd?BLQl|z>{(8D>fG%Pfg^spEDv|Qy}7tT3-Z($$O(if`?c%((iYaVYkpif|M)%U z%!%>~?P~bANS^VM!)Je9@zA1n*eE$GM3V)L>NEJlvKrjf9oopAIs7{fu$ve7>n?dV z+)g`cAirB2ErS~m3`BRM{tU2N(caI2m4g!;y>){VdagTVc)q?oLp5-KC2+qSuKzhE z7dA*H1km0`8EyKZcD{Lj6%%eEu0MerF*!F*;_zP1b$OZrH_M6qlbLQ;|9!9s~bgAhFp)O(3xJEpM%NNRlpA%V5R?~*~m+9>)3 zKBi`BGC{Wu2waf^VCb9@Q@5DxBV@N%uZ~=T!5D8r#u@si1hoCx@ww~JMT%w|8M%Nb z*>st_)2%SRl36EPi3JL#&GmUFLqwQ>IN>kSv*n z4?^jZ1*aa7+y(RY?ZQ*1^eb2Mb^XRrJyr8ZG$OBcD8!2z#0$(RonIy^ zW{(;mF3~1Wu!Gfe7pz3JmP~J&2&*F`tJ?&t&gmcA<}O(#UvxknG7Z}t@PKDuY=7;N zHQviqZWy$TuLlkak8iM>!B;6)y?L~Grkc>!mqpLrP9mMB7ruXud&as9l4Ss(2M7J1 z#=XBU75$%a?|+djyygF;l*mmK45=cFEHoE9Opb1dR!`U0N-rRVNoTN;o)=S8*l0pd z`kB;DZ@&xhfEng2iii!G;(oHfdi&UafZ;>2#E>G$6J(4NiXd3uf7g}j{oUFdN3c^mET5dyOi;08An6If)DX{nG ztF@8dS$3MFx02CYY{U6+$1j?k$99zU5y4gMTHkfJo|w_jk{Te)jmYyk1x)rCPCcdP02&cYzR~ zg9C@)o*?kv55+1|$|8n75KSf88SSAtX&{016`pz~uh>)I{>% zrl$Yf=klM{0Yy#41wLe+^`C$)9)!W4!XOHKclf!`QaBWWaL8v;Y2CI1^Ti>=NAq=G z5;>W-f9btDaCJaPn+2ZU#BC-xzD&E)yd4AjTfWr-ud|EsF+i086%q*U=*K>mRmyh} zvHs>RW&>deEwAQK1`;ouAMZ!@CmA>!ZFXr|Na&DaOf#N1j-D|cX^Kr*bV^MM#`YiT z9b-{uuSFDFijow`Ra13#xzcG#1HfUJ781^ac^Z)#lwVIt6eShEL6Xnu)#1PkQKIFg z;x6cjyGfSTOl`lYQM|k8Z&4MX~gnH^xEY4=2)yUL~3JsAMoG_f8RWc z)0?6Li>?54$zEhQibw-B#LLb&D@lu>Ag0=s<79DE2b*1sT!tphmJ^OgP2Gd0Nz988 z%21XBaYYzPq1wQi>TN-rJ!KbeNj^ayD3wUBT;amVyll*`I-r?LrG=bU1U%w4)X>~F zRk&UU=Hh$(TKOdQK`?Tc7OwN(t!yja)qv!b9}3w1y=o2neIjm%HH>*TaB@HT8h(cB zbIc8?a{-Ij|DBKEJ17^UfVw{h7gRPdmmlHQvrlMW#va}xcAW*EQY=CJWC*-D4Bb@oj=sy9Js2EwjZP+^grfb|nowW~0kW2XhG zvtjk@^_2b{ux4ipi4BtzMomTr;zpBzEWW0wDE<)7%NN}fX8nt^NA-zFm_=PHwLWl> zvT^rwmr{vuMU?x{3phOnuAY_+g{n9(}CN;{zzYiE_7_0Pt zG(Z!DuBp~EycAqK-X8T$+Y@-EZm(?{hFMB`-^EZ<9!eqK7tUFDkaTs^?ECQHv*?8H4ozXH$mi1~sDvD#v$x(PdD&Q? zbyD;y6cJ*DUg&|T>vYz~;v(DlG4);mW6nxpBECs8OAs8SqiWRdWB;V%mMoKRdfFS8 zL=j^{6b;4X842#*D{%IM>H+621M80tk;v7zwp&Z+Uz{RWS(e1rT+omPm^@|a*{ z64(&X1mZs>xUo=w5l++wh5C>rRd%doy+*8-h~(qi+INCp+4N3`x%!3n-x!Ii4M~8p zA%q-r_Q%$q4VdF4^B7W2l4`1z_3_v+xsGKlIHCY8P~+eCk$=#A`6+GzTBwe@_0Gm4 zE#^O%cy1YZK4AVDoDsNdX2SuIZV7-}{`=tk_w*bYeQRT*e`gN=7atE+khWa_nE55N z+Q+vu1@Yw}FDj7R^P%T$1+dL3Kp26BH@4Yk4y}#esx&KpNAwNg{Q6D|5(aEK7%LEU z$@fbULY=dN)8~3>WO_z-yBm0QXp=*NJcEvkDo?;nYB1am2;p`5epko?BJWNvn9^N{ zyycP~MtM$M@^(|0ZEbFq3L?!q%Mr44}49~ti5FZgIFPN zyQ*Q89jd|%UP_m=3wqUJ-IPD0RWILomyiZwS!Vwz4>l;}MSc0mWZev`1t za*qK`$01UPf0$0^}?j{YRz&(R4L%wd(23$tjP2HiF8d6FM28)DObcv7+0K zCtem0QQJ09PmjSyW!2z%)(lu9f58iYK~{O-q5o={ARUJdYw2u z4D^CD2?u)j!8rQEMn6=Z;-xQB>(Xm@Ts4#S?&)h+_4s`~?ML2JMZ)g&`;WguMcQ5a zav3m>v;HHS;_rDiGJi3-tjs-(jpXzl0AT~@TK$hOb&-npUrL0VDIlasKO_Y6yc(H` zBE~>4K^rwBtcA%J`Q#}h9t>f|n4q(y>=+jJW^SbM-eH`m)f-*ZABx~!Q_3g2ZGVXA zpYO6zR-C)g!<)73 zxyjfm<0p^NoQv_T#4*i63hI@frQ9<=T|ImFOu4XH^(5<-zM@PxcQ;8!Cfh1s_=N&# z3{@{x)>Fq(V)IdfcJC*V8O^!?lg$$3YWlc07K~s`N}`H z1)f=+(yQ)Ysrn#d(X8qik(|-|6RS_9{j8)*dPVx$cq-b~nq)52G2SITTzGbxhKxQ8 z3R8#vhB8FQY<*sZy7p&zT$EC!jTJ;{T7mntF!t0~FN6`akv?L(71*1*jJnPk1w91@ zO}@=q3X>i>5he}h=)SXmUx7zj4V0nCIBBjLh(?-GkwHo^@{<&?+F+Uy4`n0^X;#eA z`Gv#JtwBvp8VonAYw%3=9n)=7&bwfXHmPIt7s5Cr{-dWLFUkaNNWy(-fGwUlOYri_ zK(|iHRNPdQ0ZrBxvmML|Xw+~zROWPNWi^Bph8y0(MPrNWA&A76=t1!Q<`IPdvr>~# zBNFIH0~*WEie}%AX;$S@g^h{i>(QqhI^0V3&gr!M5mrnI(HW2$Q8oU}CX2pCv}aA) zn0PvRf0nJzy)Ji4A`saS3(D1OztnwlNH`{T8;<^zAGK;lD#ax0S&)Q-yz8mM^1t3w zC|TB>)nVQ}g^p^KHvdFEMiC*MMMt>Es{kFBMUYNEpmQ8}9aRg;C^tD6I4ltyFdaCC z*wR$(Yssc{z?;~BrL%VivN#%nk>TBSLa;tx6oZ}MnS$VGn;naj8BX3UR=yd+vVLz$ zXcf35c1ZXwevvAG3-!x(o_3g7|0raLrX6-Re!K)OvjUPpyJcNe?1G3`0EFP$2Ay?A z*~gN_H=wx-uTdBWw$#u0_=qmI7c4c(&W7`X3;lGG6KmJ&uJ&FosDUQb>g3%|e7tet zh%x!#6wVBFz4(Pm2b221M|9>%?7&BGrg>Fmsw)q2vHuvoAgTdBCC&iBLp|jCbhi2u z6AB#Y(kF5TODt&qrUFUK=^ncRrnM7$svzq2uM8>|n^@s>q(4=K(-#Iis^UiyU$kcF z*Ix)#CRS|AU*N}~aNsbthC4E3USyHK1$!HUIAeuL+ZSgiw8Y9oT_T_3c1*>uiIybA zYm)x_>6s;AYCm-t4u1b6=A{@~+ch=w4H$$R61=oJ7Go7{r_JQOS_|S;z?NqLGR)tAX8r#@L;k&PlY+6Gt;1g(`u~sg z>c0$&LoW1(g(GON`Z%tW(c?;^P&T!bgVy zR9Eef|6e3ED; zy8MjVNGZkxvcbXR0{X3GVPedm%j&4860qRK@t%1kLpw$5n5z?74Rl@7Ac@^tP#}*` zQonXcC3)}t@>)^G6HEhPN(;y^AzHnubb*$P7We^nhZzbYnyntt z&~_C-)fgx{JYU&~6!bTtD&xYOa&@cj$TwVt7AYDMYjz;Q%RtoJ2J-tskl!_uC0=;% zJSRL%3~beg=tLVF%KYkj_=sJ?_hLut0iMl`;@*~%$kc60YnyS8oQ4C1qtDDh`7L=i z!CxgVBJm$k>Aac*a?bA4ycfzxeoGcU0b=r0J--J5^<_ z{5oWrO^NBC+HpL99M2r#OnAinkcFO(+omNNhTUJ($={;su5-w}%ybBv_%ygLuQNa& z0*k=K)AxgyP4Vd_^oeDnYaag==nq`ie^ zoZlo9G-)>Ok7N+U0!*0MAAq`z;haTMW5(537W?r=Y#P9?bwTx;G1mfuekz<$#p3Pb z_*)Un6KvZ_;?~UoUy#;;3-;XJt_Y_c7T5QX(r|PUbdihNv0%O0a>4SS3b?GlS`)!G zC`aANtVG84xe=*UAKnqsxg7TQ6&uA`rACFSF$81wtuROUE z5nr*{oTSpxhi5<+^gv|zJo!PgIdsx&ZyBmhKb5g^l`NF~pkOX(Z!Y6u39?pkh1-snNC#WG>M9Y0+)Orc$DJw)}xVYmSX}+O-!h7K+P3dd=0JzWV4rj z(|hE3s|i()MvOV)No`eGyVDd*C>zn`e7qxFis&OfR?y=x7Icy-8a2rzXA*mcT=LK& zvKX=}4gc=z0&>N)HwVP<^gpu8@&7S~{}Z+a{8b z1SK!vFUTDT^VLKYuoGun4c!f731`CQR{Okp{ZJ+Hir~O!!T$V0{oRCJGU3L*YsfqM zHMczrr``CbBW_5dvf)O(-FCd;IOCY(_;6~9=L58Z|B1~H2E-8nMBrr6dY@lsMEo;^ zJ7sc8i)kV|WO^Xk+Fg_hWDi)8qaV{ChBKv7nFhNvHIwzH@vGH4~T#gd>foHI?aMmfDc*m~$kjFBQm z$!QHZD^eKDzqglY@F+9iKyl;h#Ne`oX`{Zwc-l}7#h*^IF;8e-_2cu@?DP8*5HtU= zMUY(9V)%&}kQRQM8RD%OTqPvh?56gD}P= zG-Nt_hZN6BXa_Fd<|(xUj=KV1Ef$QCLAS`j5N!w~TGTT)DMX)@gFYc6TXZk#7%Wvs z92*N!XbjnmHgY$zFm$>Yu0@&@L&rV>DuXYG%yv~dBt?!aSJW%+PbKrqWIA=r!-blR zeQePKGk9&t?I(&9L}s5NW_ws7 zhYr&Q4xZV$UrYm6XWNY^S`}m;IzNOzU3Wf#!e|Vh7om?80HI_k0quqi45KSoUdUd$ z*|BC;6ub;ml1EJi)kk~GG$GnVv0e9dOkL53&>AEG>X3$)@=;bmc|#@7hBWMpB^W^O zxAS_9%FnqyZOpgCd}TQiNjH6)GMzA4YQXkn3lOF{ZKb-QO3v`1s2FlzX`?zX))#HM zDw6M3a)Mbq^xU(az}J3ncjAvOCs;DxHuABIj(Ka|pj~NA0sXA*eY){3e}dY;CJek? z&%sq#xCf%$0UK<>9#WjbUAEJ+B@t&*W2V1Ix ziLrNmvb78q&19-golc$EG6hx=#XuABrrwV(_ej5!O+pfA`GV1y*94^+O4T3L<-X&k zl-ljsOZ|As5`;=+Gkvp_>9r}H&gMyN5)9!>ZJ?{K}RR+~?YDMhMG70qi@iNo&h@Qgt#ENz-*IgRz z;e`<|&w7KtQeNq(3+uYvB#Z!wzItpAaR++C!GU=OaPyabzT)EL;N%T& z@JH!+F9|0{3AIq{B6MRd=i)rd>``_bJ;m4wzpO`S(aq!LLvJLn{8nCipz^+QHAR_j zF#0*RW*axZic=8Qx?p;IC(ap)=ghnkw!@Qz{y<5S;gQyLB!`Unds`0wO)VP-b533<;3b}nc^rl4SEUHpUN&`TWNJj7r1&C#NK_vnNMgYa~H+wj*W% zFHh<9+i|{Z%`O+Cj}Hu^Wvks(Y<~5tFr`O$nP(eG`iI-PEDAt6ZnWn2nuJxo^4k0| z3MD{|aBFK^1X|2BU)mC2z6WNr`-FH`i8!Vbs#{CV2BaQSw_IZ8)ybzN)&e3NIG zfJMfzN45CNkGCA3lMU5b3n#j6!s*?d>5=!ZHJmqg&UHPYEUxm8ea*ywJO3$KnJ`%h z+qft@ng7R!;xDjmT@IdG5ckIlS7uP+UGYzF#A-hrW!BQ9@{rKP_z&q;W>z+r1FdJ8 zRk?7`b%_tsAdd?XKIK8}$&<-Rc1FkJr-4fxfOoGeeMmrHekkI2Kw5UY5`WXdeyfx1} z+#l;a_3dyW%W18KmeM?_Dm$4Dj3(+|`Cvp0TdNKTFVAR6fj{r3H8HR(?cDk=qWSBI z=BE)s{|M+>ya#C=pK@5U!&UE5S3R|Sb958s^><$sF_O*+SNS;&L)y*klSix?jpeg> zgfbAURW3tWD?H|h_Qls`{k%F>bY7U^{sl^f_#z~!R(t|E$9905Jpgs@df&JF3CME6 zz&E3o=92)$zBs^A=f7vYe~+vFZ%z0Afjx>eAl#IeP>$y@=7tzUpe&)3%Z{V6S;7y36!JARfzf5Go1kf(9}cKxK* z8Ap%i+Lu>JRT)mQ@B{_p>xVEZL~P^5Ek^vLMig;X0mRH=RPCGr?upw# z4YuSb4{gE;CmN*!2*^ZHH|XuCi|Z;czoAJ}ft&^6~VHD4TxB)k5YgEYEYM!wUY6kskhGo5( zHK$DMa|+_J)vL;Lce3mp%{Y;(?uSkdkHbA!0Vgqb5Gii4lVyF%45p)&iG5v#tQ(%( zr6(hpl(mS$8P^hF$H=3C9mjA9Ji5(&0k0mcUU5PHyyPNVu9e8HrKE=gzW<$zkwL+G z6s62~14Iv}0N2r`IcNyroe|Ry(-e|KDMZ#13L|rF7)Nzr?=BYFS)0CFLN^eazz_@4 zvVg%*GWAQ;{a8*{W-p>zduY%IW>)E=ozoP&RO!2~Xrg3_RIuGg+o+GxG^uOKu1Z+t z2&_t2<4CA_vC5jtRkkwUX!fIq(`2?fwOXoQnqGEj?zF1XvuuFm`I$=c;nSgX!#Jj8 zn_F#Jz#Flzf&zVX@<)M_6{L+{Zeut(*NsLqVDH5WA_9$}F!x#71__zgKvM3V1+dq3 z4H21EAF$C4nZhsxO|53y)}+)RLFW+7M4#hOu#PO8X|O!p(I^r zHg%sJnIL2c?=DN<4QVsTfaWS9wC!K-1XB0i$e_5WL$9dYTr23uCY@*u++fKgU&|9v zAy(Z(*}P!1fX8^QA!1(}O4@biQ1{iP@Pm$kwE|?l-9j;2KESaE&DG-jg6> z)x%MP+>pElf(37gt=TUt8HP- zyZNGco@jeupl<>oY5Q$QRYOrv)Gllnf=5?wabMygX$O9StDC}Ec?aJOr-0V z1aJ3UBZ!Q>x$TcDe|YM#teLLVXf;>5!1SlSf_VRQzyAn?6m`3&E=q%sbcw#Y#j-}u zTnjhvF6-C4VYwXl$bw|Mu-sdk==@&dv8d83N*In1nu|G+1wDP19aAM8|J zL&mVHC{Z@EUERwIe`gpW=0AfVB5CSRo;DdWv$IY44)!UT#Aj|c8;Ik>0ZD~zpvi2> z)NTReT@VX7V@()lxQa&U1@TpIDE2;iG?ZQv*pHWHwjmluS$w<5zEW*otvnk}XOrt& z&_i)>O6R$feLmN6V;>`GTv~cl`ll%JEW@I#n@)1bDtp{u`D2yXC?Q1)^j>LFltUS| z#Zc&ca=mG)M?IFkPVJm(YnqIeLM@EWC%0{S#K|j?3zr)nVAq15rA{{974;}bHWzco z3Z17#swK+Bz30}U!ssUb0GGSL;=bO|s23I~TfRzZjsQb*_i0d8SuN$X7^wk-Roo)? zD%Ceu^W<_Goj0wrsW#z2Wi(vyqQNvU;j0-vtrwcoXyw2l39G-V7k1zLXP{ChU`sVj z6(oOFizT8${1!j2d8Z6e>h9}UJlc?!Y-H?>=$f;2vT#y%kn{PW>r^R_=bo$DFg1cb zo?$|g;~LJ^B=UqF@H5=gj?g!2uaH@7wQ2z^`cI@fz%WUgf2yI4f8AipK!y*FCfo`t zaJowc(oH9BOS%-#z&ySH!v2bAZeddGG#^LbYOi{kVA^OI{qAMZo_N020mWKC`ZI2K zF2#dAE`Iel`>)e^XUYT@14Kf(+&J4(r;)1NkGO2}%Jn_*J(BFk?{f`tH93B2I57dWji?_7Qg%LBv}!3AY`p`k+P$IwtKO1jOC(qQnB#!Z^OuPhOzzW(6kL z)!%USp;~1^FSCK5Z+ckwk`~X^S<2u1b)ai0IA=N^GLz)sM613Ra+udYq}Q>ltJ^tQsi8&rLk^xcQUN5f{V6_ zz%5Pc@g1RS7ElXYm0imW!d&N~NxXMMfLYg181b=VEHJ?>3FoTM(3psp@feCovTeiI zy$BpSjW384AEiNvp`5%z5PkXgBi{+Te{bGCVqV<_YfXW@UJ~N0z6Ksc^%uq(q$aC# zea26SopORrsqog_00Y+OPWHis6puuw>-5&U`eB(|l`$Y^Z>=B`O@E7c&@&N_Edch+ zybh%lskPc7ufLt$$j3|uU%GJEc|qv6Ndd0Z(8XsRC)gS)08U0NH}weg;Edr(tA8!2 zk-NMKxu{;x_W(`s*M8?1sXzRL9{A?|7Bcv9RSvj#dHP_A@TEsVKue@hi~GcKve+sA zI(M{#ku1XE0^r<^K>lZOn_RNrXbbV>csTuk6GJUZ+8++tlF4P&^L62(_0^)3QrGk0 zlufQ;9omHKI|Ud!qCWHj<&K!8vZA0K)HJ>!G=GhBdLbYS<3BKMDoLnZ3d${mlb z=DXK_^=G6ta;pJXiYEyad>;b;ucP=$JussyWdKJZfiFfo;98oU>>-1cbLR1F zQb8>;AeJ7EkjQO9fSjqY*Ly@%5`g-j0e<$D2^*D!3}y=OMH){3*D@+OYWqXu*et%w zWYDw8R&aey|8`B(QWeY-41wH!z&)$cTD@edCo=bk1l;qS3HRH%*=b}DN-J8qw*&ZQ z1#p+IEHTv5+Ah8if#EHY)%66_QtoD;B_gOrP{4(*>f}C72+`*M;*3WvwFBJCgnKu7 z08$GII302+a6O;42$1uOJ%kdQKOZ--=(6-L?W_R4V88_t)n{0aO*sR;r=bhbLn)OU z=l=La!%b$e9kBkrR-5)=2mU4o4KIj0$fFzk#|Fe{jNJ?WsMSslG~-DLnvXXyD@U8v z)HN;=K?1yOh*Kvhawkg2t~DL@wI973S>irTYPhQ~N-ig2K9;GX!*hcW!E|0T6IVDC zPNoDdZlFQ1-mfoNu*hTVpYu{Fxwl>y?QN`-)01MEMRXgOzA?-`OwqhvV!hZ~l0A?v z0Sw?YE+C#f@Ab8B{9 z6c-i=DaNm~nOt-C;F3VzB26{dKtc~{0+VYzLjQbG+IN!4Ot`1MZ3IYOdmfOSDp%ys zhBCCzCEyXQCxSn{Zyf|B*^^ETZ(s;6Jd+`iPSEAQ(8zny%;md5XuL2?_AM9pQBoso z1W>wh^*K^JvZ6}-UI;Al-=*vhS}0EBPNquOX7;*5^LN`R9UlyiWKxBYW9W_d(wn#B zw-zJW&s_q4*Jebxv9e)3%G-j9^r=z7&xETHXDikX?s1^hkM3g)?tw@3x0D^rql?aj zKa)!3A1ir574LS)GisuytubWAmLM`7Wx!20AXBMT>LGk2-b6PrFl;ibFds3jkn!6i zvX1noGf2L6l?seTr-wU<_qA1jf{CRJ?xum3(2iRjiT$ z@@oVDnc}}EU$lRpWB)HhEx>{vU>jrW;QsHDbCQa+?Ya^=cZ>KLsdEDteZPSXX0hvlfAQ28MukTN@LF79A~im!dnoXIjC0r6R;VEW{pjfy{HY@B|a4H~6>L zTgMspnaG?B-_H+#x+YX<30+8PKx+iZFle!BG_YVpw2I>T#uhVHcJFiiQhlefzZ#9M ztO3wpHqi-kpm#Cri@zUbp*nuYm|thuXjZ(eThH8i%~Y~Y6`xjPz|7dgf!4pttZR}b z8m}(TgqX5Zf4>#r*U+QMec+y0#+0ep?WkV6YjkjZSv0#=ivB<@hEG6bpsa5t&t3g4 zs<|Uj1ja9`-RB9^mRE~X(PY}~WyKlIU9seKl+m5mUj%!jjIwgm%{R`KYk4D+D~Ew1 znltF^Rk}ljf@dhAS1yaJxXP3^*QRAmH|6nJDc%R;k9BOy7OcJz|L`WX-nRjbj#Q5l&_x= z^7ChBsa|-72ZlDD*__doMKkn_tNI_Z511w<;+o?W5#43b?AQ$+Nrchd?_l3fTPUZ# zTXkM^G8yk{QacX#Hd(jNL|bPhTMe0`yKLG~zhGnTZ^aBnp@_oc6bB-UH(QRd%r@%( zxI<{9(_?6gQuU8uysFH^$=}2zaew!*$evp@d>tU4*XG9}*5_L5hK%akfF>mP3Iph-@G#2U(K(n`1bb zNXpSYd}2bh_0F=^GkAq+uM^e1E0CDUC-2@(D)M(9KZfo-Po#2XFm_KI?eLq|E~^xp z>`fo~XTMd`A663?`VQs77f9c6dK(qslzE6FgXg+G=@|y!PmKje6KJQ@;{n#&gWd|f z;9;g5I|OxF+w&ZV`8f5ree2U~!xdD__3hB5ZIqbsvk`6h!#CB1#x~}^; zaM-va29rTbSy48#%`d)wIdGs_?mu^28@UIb2y%zXP7~tPF+tR${fJ-rEE=U8a5Pm;a`xc0?yF5jqOSK`6opMW;Yc z%c3I*i8BdCDI)f)Ij`8)RX#Kmo#~Qr(3XZBMU*}?Z6F|%*jhdl$ei%*Bz1J)cd)Z9AjWCR09F8eQN z37nro!doql+4?-0wF+C*U7d29gE89s(EG-7J2mMe$~4=U%8@P%#_LR#z=Dvzo10Q@ zq5Z~c9g6{B!>A8RS)PZrk&F|;di(>;^2}lA29#r=t6vX%qCT`2CPF+HWNFt(+`##} z2%hMq6z?!!8wWJ%^_OA5?QrUSbo^S|EfHkG1v0ngU)e$W;kHVOO$Mw*W3IuvJMXg$ z)o<=}qL)a(&RBb+&o$v&cEh%-k7C-w1p>!^5>Gv2Rq)8;=iGYSeyDJT-hD!sp(>>p zo2Q!-NG?#M%e2IC7LB5#o^Xn@zh^=eijhQOlh%q!L^f79GtAqDi-Z^>w_9*Tf3At$ zf-PQm8I3(2Ieo)D?Gvul0?oz&uQ9OxmKoiD54`)pf*kB9?`Dqw{tZjpt>F@!&Lf5^ z>GtXxya#hf)brhBCNJqR{j&tYj_6xG?sF}U^6S5}nj8o8^&J7l#=d{#2GIO%L@Sv& z80!O=sD}Dh()xC?CW=k~?)888g;h$HvRIZ zHmp+|&nUs;mItc`-;Sp0>;>EtAT~5!Vo~(*5~$Qir7T^s>|roaYIA9NE^?(U-M8fN z=EJqnG#*dRSP0;}2qm&Y*fAkaIrZz@5sqfgZX`t3+I{( zOBh9g^8|`r^}7^BXtOj1eQ!|J8h%?K<&1k5p)G-laCRz*sh+drzSd)e&E7zrBM~`dPkWV+JZw=YVC>+3s?8XP{36Cv+>BOE{90M_g2BBa)C( zCyE{ugh|YyzvV`-nneJeO;{-WiapfRv%=&K4X#7dFmm?&nn!RL2)8Y;BVXi_Vx<^i zP2G4>XqrlGh-o36;H}S&ISlVS@6qeB_BPb3PyP&C(=|407dp4-=meQqpQI7C@z)W* zG+!~M_xMOLHWq}rSSt{?x0zTrex6;<>&bjp|F<6dE5wUcrjR%TG!wcQ^;@d>FF%lD zlA%=XsUo&xIc!2B{>cHP?*L`C@U?E|m8SrnP_-|1pm?=j(q@0@5C{WZbYh9AM+qq> z7Wb$%86Bt%>i88zd#Z#L!#fG2F{Ia=_!SGN8ugTw%88#BcXzrwC@$_VUy&)^6wRqu zC}e#$8@e+4h&YB+C+4D;7mY+N);j!-0*0M*xf+-cXNJq)?ql{~PL0)VGa6nPN$UoR zyRGw5>`qCrJ-$yjO4ClJ*_N2TEojR6|eBgotk>hupuh4I+y`0|*c=IM(9K5=1F`_Hl@ii1xj$1TKo zLB|GmTgs`R)^(cyuerAj%c}X_h5>2m2I=l@q@}yN8!0J4LApyp8tD${Mx`6+mIehx zDW&7xc!ylv$p80zd$-5txco5ZUbAM+nwd2#8c>azIP2|n%|Z!k&781;;bJZi{f8%T zYUoN*OyWNZ!S1MdzqdfX2fIK*I=K2^??5{1R|(2#H)ov`pcn1H`{#27_n-SIYGdT& zBx-NxZ06>yVrJsvXyxoKXJiNDTlzcCQmk^HJOm2{|5G9TNZ)+o_t=ch0a<|&J~(6{ zA#e@C({+WKT}e+mouRY5a_G>pUw9LlH4#X$L&|Pt9u7Nw@2CZr%0Y<`u>8ORO?734Qt0?1#=9W{ncPDzCa-Bfpn6P#V#@wrhQ( z7jrpd7Rw_m^5q0S{3kKB6Q2#qigVGDkIi0wKpE_Hef>2ozf`N>VXM58Q<@Up_>)b( z2<>=7emiumE)&>#`JqXE_w4YsVk`SZDag~Q!<~e8U91F17 zvm@Mu*u`)`FxXLD9{iA%_Rn-9Oevb(`>CPHFw{GCUiX;&NV~G#WyBF5 zD>p)k+~L$*R`lt)-Mpu)zQ?Xl0&SUbth-F%9@(*XQ*Lze=qNFliWGeL>6XCr?dnPW zQ~Vd_`&~g`4NvHNXjLBvuLoy}r(c9Vnd{aL)ay@u=OKpW;ge*NYkSfKRX97tWEl*% zC5q&fS)X*GYrz&(y08Y%CM4dhV-!UA>02x8 z=QB*?WtczlQioo(*Ki1Re&ILx2seh6Be=;+v2n5wF=&HjmL(;cCDcb-N&i}JG|fOb zNri75u-?3}J*7?hc@5F5xenS;VTGI8ORZsn$){`CVNnkuegV ziJC4m0UXOB+#nZxB`ETOOgRYt(iJFt%&FeNA}4tEs_G97g)%K&sgRLNVu)QXP5$v4 z)!!SvJGsd^QxML$IJF9L6eI*C9puEYzm6&53Kj~tN%>H5g@39W#41jz9fiPFz{{n` zQ+Xeg#PV$e19t-fX9EFuLp6LTh1HWujTtAn)U`J)mS&I(UgP*$WQ4l~gR>BEqj6x7xZtB9B9OR>n@@At6_dku3 z;2+tRrSsq!jU!vD?;9D=K%sI%a{pjhm#ZDr8EmX)cxpoaN%VbbulrgPIId6Q2%XND zm0ojOnG$@~cX;Gtfv)mwqf-7_$jnK^qJCR7!r9@Z(;)N;sucLm02)zGd!4M!UPXtr z+6&p>lR}pE_fG<0wJ-_kX|qUWFOc?7^!r9UtP%@45tSlyqV~b+Nl=Km!fKY{_3R$c zz{-ES->oc-E@?lq_K6a2Wl8wp%fkcJBf3z7+90kuI4wsrA9N|Gj!4YnonF~+KC@b4 zg(P?nU5-i>D3l=>Tb%}QRw+)Mi=~9o9ggbVx=}~LI@LRKVae*h(bx!Za7d~pUyYL&bT%Ku3MVX*@Mt4bW#J`KpRq>zj!GRbKj|4FqXsQ6CUd@JSexG<6Ya(J57m^E z#;ETkoUe~Y!`v9-ZS)@vI{e(7=x^IDTM^2w4*M$hV_tlKpk44S*3*jY5H_le0!&lN9%1BrOjV*74?z zki|@@7$cwhGUH!27-gWa(cbc#GzZ3$Iw*Q!Vxm@1YiSND8v%oHztyd!Vz>^j&sC%3hWYj3c?Z4H0g)$ zS(%ua8k!oKgMo{uzbQtrA;!AL_tMmO@v2KOu6*}2zdUOc=VMKMQt?gba2^ZjC>ke8zD)n z<;>uRiX&Z_MImf*_|T0NZ+4`L!Qn{!E5w$wP@Wb`PFJDDS$s@kJN(GMf3$!21)*8s zz?uBz*h|)z;(ce(yVY>*v)1f~Y#-TH#s}&H+O^0e z%u63=il>rzj+IQ<1h!(@jdiLcd}^ol`wVk$a-~YLLf6W&PV5wCpQe`lFi?GVTP|fd zgKo7M2|`d&EfmParM7v{va6G0gHxCFS~bgaN~x9qUUIpE_P3f?hlOT8?ym2ye0qqK zqA!$kMv3lI8F#;T&Hh?HoIKSJw>Ej^W2kA@kZP$Qa3JQ;ej5EcHh0^>z4e~PZhhTY zSlzx)q}9itse*9$Pu6KG+<%g6(^9E+9N=#Ru}`B7cN1Bb;q+cUS3wYO+kd1O^AJHS zfoV8GF#Boyo|wxQ>qot0HmG*!$s|%_i$^e1Tk#i&Ga5gcJi8)PzpyE98*39M=?}SN zCPKZFQPmkj8@7@CFcdamgb7ugA<0<-Tf2+T1Z$8P%9{~!xQol7w?fjSFM1z)Z86Mc~N#7Zk32HdGTh9L4 z1Oh2jJut=zF7#bvq&Q<9^I*f0qp;XuwW9h_di#$W`Wjk-p}IuV_qCdH0ddK0V_78{ zCF--*1?nXd1zhRSs5#mt>YHjMA{nx1~Cy?6Sp$$fwR5XhUF zwzT6#$Pbw=FS}0+!-!}{P~VMCJ!ihfY)vN4uKHZMtH#hmnb=;K8&94Q%|UI@l1WGa zp54tELj*fNvO}~wq&u#`wmKx$;akNbRu)&ZO-O*qlBMNwq#=8KHW&T|d?y_GQZc@p zj&id0m~K{}v5!^3M*61>|Ifmx(mDBN!0ldK2A{TD2)p@mvSZW;3!Vw&4@tbtW)@s# zr1pqt_ms%p9XJdeJ-rffkH#@`*#?ZyQ=C%-FqzlLIkT|6s>9L*>j`1*7*UL<`OZ6*4al;&E6!swl*ozNej)y- z@YdWf6xWmR9iR9`iqof~k02zW;OM;T(R$@UA5A)rWz3SqPCs0Z(FaM1NQE7XWJb$B zH4!(#ilDI$-1^{%^=Zd3@i=wNlYj*{!R z-YYNK>7#9y>-$JA%Y;EbN16TE^C<_-@v2-cL#+m`ie?VNIiq9EycP739(39F9PbET zIauiQg*K>hCbJ(tBY2Qq!cQ_=>UhFVknGUFQL-0yv5$nK(eYe{`<3beuV_~yw~XPl zr_6-#+C|Bku9BrJt()_{*a^?8g8P1iy)F=yplX2Jqlqcxfe?^h)s1{O<@++Qgtv97 z)6_wi;$?C;N1vu~tlH<`^>y*rMskrp-L|1!h_MQ6_^ldto5N2y6TUyQR2;zNqQ+7Y z%R?!V>~-75Tz8;0O`PGfkmm`Gu5SI-&VzU2oD#MVO=V+1in|pTt7big`!yr(MNr}7 z7V|iL(J9nXcHn&%UH`Cpr|dlCaeSZ9!kRZrre7x1v+_bu3&-Bmt|ig-aquK3<)91Z ztc;HMY17YRM&i8^(GBfm*L}MJuPfyeNXR#m_arOkpwyMxI}%D#L_cT635}_iZff{J zG~49*QB%s3pe!9@$7Nmu14Z=y_WYEi=*X|*sfG^;RirM=2pV@V#YLXc=4TT|bKyp7 z)jSD4_n~4Pu^ZV{ON?WE2$K^}{z0s(B>GcPHyhzX?uzRtqdv};;Z#UopYY{)Lw~w# zP3#~N00~@umRmwc?3dd2zNea|^_Gvaf9h-RhS+Z5caUm=ao%dtH-E;B8~&h2Q#X}h zqdIRoiR#qPO|q?x_k^O6%L$HR%9>mqW>BiPI%=Jpc+mFgYjiv$BzWRc1Le>z7yMSP zX#re*{ub)TA7%5*iHj1++hfp{b&3ziWh$A*cBaSIC)^0=Kn%o zgou!ItQjsXR)+NIY}3>oJZE%(r=QokO4wAq@_bLRTcHyg>8Hl7Ct~TwkxvSf)HiKB z7PN4O2=Mxub#sNCz&4)*B?$I2YLn^3EM0=9qB8@;n-(g03GVq}W82MVX$FJe@P`}!-NYBj%AtUC=k)e;7wI4&f zwg!`S7C2>;1T)Vz^|LS)TV~tPs20q*B|j8MSm~O?FR?M?8b(_1mg*;xGKXo8Z+|o$f0}}y_PG~f5QA`M zj%A!g5MG>1X9J(xME1NR$E&Q6^0DrW=88Ny=bapiuc!=VMwWT&)RSH7gl30jSzSGt z8*|X{v33fLTmwAMaT4*Fv*#KDN86qZc8$<@30t(E$bYs9``O9oN7p*?QKcensgfM8 zaq+VyJC4Sj46~2)K^M>2a{@vCu$5SDIB%U7^~#eX>rIg`gI;F|9|V`)w3LSdDIU*J zE|P*Wj*&AhP14N;r3nL{G7+sU%3VBz1M6Sf*2OR+?94>6f0En!DKc%@!W&NtFGF0g zi>XfM<(_SrT?iV=&JmGsZ7z|?`EwiSsArC(PzJ>>yOQW^O_2dl{C3nMiWjj^_9D>p zj>psF_vcG@9|UOlESR?>r}#W&-PNvGJV#>EcKh&!Eu?n1l}^bGhFQ%JY%CVK0ZWXV z1F@>&krD z%pQ27=XVKKwoB;+zG)0W8$hGFtne?aU0HR$KbRaEL&fX`#x?gIZiY57@N4yxcSnYj z`Q3?Lvl)($5;G={Fk{O5Cy3kdJ9>RQRabSRQ{%<8&12%Gd;7&Apyp^U4ZJnd5CctEh@!f53Yf;& zwxetp?0X9yW4(S~Ue9$O?$6XrMxGZ`VK}fk?PAS*<&S@GQ=DI#t~Jk z8Z|2{caciSLBGZ^uGHl|g{io11(B79L*2fearPWc501?@4`2>VoJ8#+V5!xP9(Oxp z|5$UZ)01n5L?X^0p;$Hb1wY(76qq@D0lyCx@F{G?&9+&9Vv#iFBUYKxY8Zssia3Qe z($h&eWK2g?GGh1u`3F%QESbSh^)(9p79ArG_U_jgM6Q2BeD#34 zDqmdc)8aw>08eeBK&^-DcdaP0JQAiIgdg60@n2}YAo)DLTPQB}(H+*$W@B@5S)Mw) zh%ob!F`tt=%cl)e|v$Kp+?_n=-7Gn z-g|bJOEHZkmsvIJHs}Clw_RA#MX=lz;`=izW0xpc%=5|XL$PjnMYtYcR(L-DFwzb9 zg8P+ek+P|s*gf&WJ%G=k!^ACuZeCHJXS^!uTWp*8)XT3lN|_^(;hCzhmEz#0vhZNI zrngb_KdvbUKIou++efy4+^doVU%xRFmHr4lE4e+08a)Z8GQsZ&e)s{t@SDJ6inBcQ zOW72&fYtg{#ph;NY&ab+J`K@!aj|Y4teA7yX{?l%q$cvZ_HVsN9^OUj>uJn4PJUfz zK59FctJAQNK-?L!`$?}umQfiso=oseyJO8o-${*=ja$+^Z?WxDGhwIdlJKX>CxYJ} zul+dh2U2>MDG0o2ZF!;fl+e}z#^d{ohcyC<+QU&)6WbT-CC!A5C~_8re*7A!e3a84 z!;R|`yK{3>&CE!2lFV!@)hqUKP(GweyxKbd1YG=41}T!Myi#qkR_`(T?8)L7_Gk%p z)yi$>9_`~eMxx0DYr50-Ia{A!(ec>}P3OI?Kwg?XKSKJcNBvU`eSyH#yUhwZp#$r_ z4P~h2yo{!n#I8eX_eyc z?Z@f835sMCacHejO1>T}9pAfX$I)uE=FeU1!QMzBUZne(rtUlz#x0FMScitHJzbuvAgcLB4mmXy80^11nul*n z8tgWN@gW*(h0UNd^+k#JMA^ci!lavM7vrp6$gUv!rS!+*#eCkk`)RSd6_O77#*yiR zt0Em9N$`;ldkVtwu`x60s?L)eDZbF}tQFvA!QZ$QbI#z^jW5KUVqc;G1A+uIO&Sdtl>f(#i4N#<%s;iN^0GrJ^Z;BIISeTzoC=Tu; zZ(dY&umINm5g*<<-+h^|Xq7ouCuN_Ra&CF#Y`FZ76xHd}96aUZ903upd|vq^fF zBUzXknt-``zwx<8-r5XDS&vgE4FAj6bBe{=UJaOX5bopz#ea-FSAzDBmFEs?)-k9x z>xvKkP0o`QV@+sx+Oj^UoH>g_iy;#EU#PyM#6U0RXv4w1)?HlOc4qpadx-;`-C*p| z;E*^z2j#3~KAH$yLeU{U_kMLP7EgIT7$Ce7c>iAq`Jb-+ZNU25u%IfV08~;-mAg-} z6k9X2_d-(ApKwzqyAZJu5|;cC3Yu`egLbr0rID7zY5HclS5eS~_eFl;ilMM+qhT}5 z;P?JRPoP4<<=Oeq2VmA^`u-4pKZk;w3;VR0$~>EzFmhzd!CA@_k2}>Sn?Y#BAIqQ?z7R(dj*!dPPh!G7^o7sii5<@ za@Wxw_$bX_TVYSL1T)s4y;gbuB%ympP6Rx+Tf=+fQ89$Q@)3N~yS5K9?dFD@0cp4+ zUTMLe-t|)-yIe_X!c4uQ^+FH(+Uv(PGsZU!s}Fu%C)1=Rb$0*)zjvq04(PS{mF4L_ z89kL{6#M{zC^-SKj3$Ka&ZLdEr1`FA(Z|AzAN<1YN3+!yLQ&n;^#!io=3P7aO@9xv*Hx) zb>RuR_s2m_xP@<{?~~k@%XYZ;#SwRdpLD^fTkzx3VH^nrMT>qLF4<5|pU}I^Z)~)R zldAd;#$iYlI!A?ZBo7!RUZYzk6}ZytEr`GdM1*{WRPBVQ9>iMFD3W!Gpski1@1w2m z4-hFVaN0N6q#a*;^20ItQ>DL9K+wbU{!aXg+Jv0-;RTuT91iT{_nHCmquF?MZzspcMeGMD*{}z_;tK*k1`~y9R3lL<)4Fn7keHFmi~A<4GmUb*nH4 ztSxZ5f)qty{j*~zxgVZH2oX6rcLMo4fgH42#@f-G%lEbpws=15FH~Ao0y&&6;lS9+ zaDBia+fYJ92*%JY`LRCw`;+D?8(Umz(&IpG#+#~f#=$|Fm>i2+dUrBE${d1Jf)Gt& zq>%1i>VE?4Xwj$N)Z)rTo2p5tg%rMGHCq!JgJb`0XU4_4@ku_eS+Y|>men^TDQgI# z1V_JBO^lsAw%Ng^7-A7KqH&XW$Y3;4$Wo3E1+L1}RINWL?=&+N{Q$G7%A(3QeHBVC z_d`94DSi(H1_eI8&HWQNsQwQ8BzlvPC|UaNG!j({%I>@Zl`l!< z9LNC24Kg`Vb+n*dZDvzBxviv*Ow!YN(aKJTNhQcfWr#D*) zEoG>-v0;8aHU6K6wcy&Hxt87a6=k#Sc>0QL0SEZ9!q%7W(!`Eu4wAeM*Bup_pY+=`?_ahL&keY+GG@2;SyEBJR|*tP}- ztm>2@5!8qub1UA2H4rE#5KH&*;lfHSCSJrHfFGuGy;2rkSo|39re_b|NUNdPB{kq9 zp$HfH)V+5C)GLIqC3X^2P8=eX^)(cIk$SUXa)_WEJcr&wS0gOhBoyGZOjEbl^I_~98`-Qi>YZHGGEZ{#l8}=9-#r%#Wtp(ffU^117Xhv(>7n$nb zV|F?Z*M3=#Nj_P(Nj#im7onfR;xoXWl7J4=342=>k05SQ#C^ZjqCMBz>QiaK6GRtmQ#(sHKi!;{r8ZSs4fgF3ON6YWVcPnRwx4QMs)7HY6OjBzfu7z zvf}L0w|YpsycCvc6G92FD6*~6E+O_^>`{6CgsI-0HqIMO3E{_k$`w`?(-qSPLusF{ zl24;i?V`{&1bOa!_H6rpdiLxR%o`;V0*9LWsf~-?!+`p?bR$yu0bFp7qBQfBkEunG z40T%Axgv%GXiDBc?`QdGto5V35{rkm;OSZ6q77%%X~5)z(LSQ(iJkq+_DCFZ%g4`5eAWZmBfH!WCTUkuKl9(_wLQ`{p&6MdQb zwOa>IB}FNz9CH<%PP4*as1WMSg{z!`-%4+US!xM~{d81RRLcrqA0LkZ;izC~sofB> ziNIjBkvqivESGUghFq19HXl^wgYQSv_Jy7$Sku>l57tUzDgW({T{v-~ONrx&8Dj#Oc*!+THZcCxKOYwe=&MT6A_ft?&ZfZ3HathWEFgc?_zqWuumG zTHv;GX<+Alh~D3zsE@OvAOJ(qx(!}J-){DKbPK)}~yfwPWJfLcX z9hXK6>@!>gjktN+38!`5k=|5n`eW;i#^|t`&jHlCmJzd9mTSUMbIjv0Yc@d)L^bbH zx%FrhoSOXoGtu10;<`NJLE2#c)>0tQvS8*?>(y-4 zwBnmw%0wi)359GJ@j_WKh6fvZOly_k%wcHsk$UTVi5r9nt3O0a2xL{9weyfJ_Hf;a z8ZN<>?Mw8qaPj%!k3;xW`)0h*U9iI2<3m&1`dw)4rY$dR%T8z z^t3&)GO~=jvgHgPrPz8#O7Sc+6o<@b4a#73(hOgkMff{@(bSg zbW;-ztBD-dsg)Ez4mCci9v8=L&4aZLK0blKvs`LFM4i#+o8N}64bWeg8e(7HDU<4M zNlvBPSt^X-Mu((NRaMLth1A%$}1-_6kvveV#xwC>`Dy(#sWFM z|E0lhVhK^OipBx6IU9&B#`;YZ@Jk7pn!mBG8^CX3O!iWVy#&gP(TM|PcR(=c013E> zac9@iTtdHE0^Onlm<>8|&_HzaAE3k?t<3C9Z|~oWWYmrrfTnWb#RQ@41K?@*8xSx- z{o_q{vwPio-Ooz^n!W)v5raU)0!tYv1OOvyWA9{UWNh=dAL30kR8>}RFJQ^P<0cVd=ds*zKzn3h5qaRWdl z62Jsf5ZtG7|HYLtb5}RAaWPXgvidth<|dulk61hv06JBHx%>bG&qwjUc-QiX-vq+m zfC?=JSjY_MT~NYs)oua0cJXlgkes_0x%C2si2U2O4!)R*%3%%aM!Sy;s%na1H*z23=61SN}At>2^1``GWl(Y z{*y9zT!<7}1VF|BOt`X_{(gR1{tvLX_kT#NCu|uS3``3E1=V^#?fwjU$NYZ9|0PKc z81^^-6jau!UH=cjJ16_-fT=eWAX1IMOZ~g+z^`%l+i*oK%}gFEn>o8U+WnIH+q)m# z-^WM*43#J#T%bHATGOGbLfJ$qo=WU>}W)?;! z?*EHqfp2c*83H0u2W+iCnOp328}eVPu#|*0}r3|V~iZK(g&z`K2{uGek@B{C}hPPjYe>Uw!C3J@Y$6aRqvd#c_} z==C~AS0}*V&sy>yAn&fyb#u6`SHA(3+QHOYKX6-dq?@4EYfFGi?MeErpnoi*a})V` zs(nx$yPIgB9NeeY-GRPhJYF zG1s5U+t5^OZsw)EN#FI1JfQR73$Vriy+8S9$pT#t|1?>zXYl~`yVoAm*8c_d&PjGX zp~967=JylWc{lj2M(>*(xgIlp6{Vp*@2BbGAF=+=IOm&RxgO7S6tREndPaQmI?~l){EyL4H_5vm zBLbX*u01qUH$iXNv)_n6x`}?>4s^rycKasiUH9}iaj#!qf$H$`{hPRd zzWlq1dff;PO6~cNJ8W3LjZc4HgWbfvZpsE#-}jIIXWZWg^_%e5&Ay=0`sOk*0el11)B%1WWB_0QDIrBZYB6bHS}8thF<~JEMH(sL*HHj~ zL`5x|6<&DHrro!#D_OsO96T{G^CQuq0wr=L1nGQnFZPpxmfZ_B7Zb!+uRBXRSTTiL zh`{wxL-q8)NsgMjUnv80^0 z+*7zO2kiM7;VF_|JP?iHAGEtnEKo%!`9#7@igI9!b)rbMhgDJwW$h;nWIakEyeEr0 zT`VNOy0Aw_M=OT!UE(BCl=3Rz@|EQZngxzPca3QZ>DuAQedD0CE=yf@9x@;Bo`397 zzM$3FHg1R+*3g%bXzf;x!4fqnZ4|t*e{EP;Hk+Y2&1{|=P#{UfSD|V(fw;;wQ{Ts~ z8Vk*llV%ET0X+qagj}M@(j1~J0;tws@kr8u$6%PFVBdjRd@vqS`DpYFbvF&Gb~X5< zk*&M^BI;$a<6P=Z*z&1lzT^-MHXDEH3E$M>Ns2&ow)WM;FKi;c;j909^%M7=CdzK_GxQUOvP{>i>De_%u{%hKQOgF1)(9={EqP0 zT-V-|)7Og_hucv&KpD_@IP>P+yadxu8}4IZr&Z?qAP4m{dC7*f)$lBk`!Bic%Gc|i zGqe=cSpNP<6gY+}5`1)e7O2{anxalCbuG6H4MUIAn!z`&=)KrNL30RZSg0KWeR0)_+t00;OF z*M#`)rhmHTKeHkJ%I08X?`&pZ;O`PP_9nmK z`2N8E;&8AuW-|W`AHrYw9L%h2EscJ|4)^O&t@NCYtbfCd@t@4!2Tk+84T)#0O7hdzD|EC{(fJyE&Gx)IA;7{ryMl0* z7XHmA5ofiuO9qJ{3LYP}!hZBs?nNN2K&(&Vx^_oh z<1Upb z@ityl>&J3>FPV6XY2#^Fmd<$dIVz{%?tq3$7tY`ZR&*wCJrPZLzXHmqf)*Nz*JD==zlH|!VZlejKDL8sDE?>-iFVnRu8 z>jH%f!yUXRq%Y66v6$III(%#D5qcTZjmnk^0{&*gky{5zmVqQq4^`Ktv`;7la5BM~ z2DKu%Ub@(m@r2u(AdvEH@>ymr~r)q5)0!DOAIYvupoSu z{1vZ2d};j@?_Yb$0QY5l=KYyrZ2e-Kv>4P4yUW_wkSp8)Ro}OMK@@K^W{8o1m3tZ- zCeu$gt1BYV*-oQU9odB<0je>qgIwFT*#diiUmhAmwV6P4Hisp59X!}qCK?~6QlSnx zS7f0+0(Js&>&LwVn1(_=Mkd2-D%s!Ypxp)j?NeOM7b8A92fo)Zp0u}j5jp99L{5yVa%brQYmxtw#eXp z!r;+N;1vgvq(lfDKA)j2dfjKIqMaed#fdBcAK$*9yWKwn{YYj=_U>Y}-;-I|_ptww zb^g1{GyNJie`cva1CGYQ){I6$QkY3x;g1X^Yj5LhW@uzTMk~HZIVr|CGDA5zPCYC( z4+W~wQz~SXI#T*h=)owJyj194Db;)aB$DX6jUVCp`%(PJOn(IVzvEQK$ZCAaBtiI zTtNhbcx#j+PUz;d7y}|cCQSB=+@M1>3MqP=(_vPIL-ut>vWJb&^YaxBFQgj=cW`R3 zf&_DA#~fds*#aCjp_+M12sKOBCSCcUVR7xl_7r$PPc?z>`+y3iPp2~rBz=~(9EnWH z5T)P_sT-a&UCOG<-{$UTU{H>Pf_n!+?{3RJY8H7&cv0wkj&!wZQ`rtlp)}F)UdHcf z+LhanH@S)tF5rnmC@LV*r^P1p%^sF z5Wf;5pD1S@vCdQ`$*mZuesmGsr|wvmbYW#$q(4<}WduTle?+1nx%9SmQpu6Bnu{dOvDuSVhxJ7RB?fw)4YW&F?US_2#~n=A>gjbB zh~6}{dZ(s6*%D-#gu@G?vLu$FJ&D;#M~x%IJ>^frW2KnoB(!za@eFx_XO$uLO>nEa>64P1OY05$rtK$=r47uld!LVKcch&ox8B} zdz2Rad&%+Nqm=M_^!zqH{wEx?WRUofxdhOXlBga1k^uSlBvwH*fS&<*-Z%7fK|eOiSBkWhuq z0piAp^Ots{4}`sOaUY$lls7lH^F`ANt_le@YL3S6yzEcHTfZ0sCp+-#jro)*UuNE^ z#xAN9X+N-A8kwe1+H&Z%N_KU)kld>m#3*{atQoAw?b6VXg3$pTzrR~oG$PU3@-@NS z$hsx1cs3rzqY*S2Ix^7^%|IUGs+H-N7z7Xjf)9rC#T~6^(3oz z9HqKtIL!4ew9meV5;&_k1VUX20-Aw&0+?D4hwL^iZ~%TB6>oFksYbk(L4p|S*|li2{nZmbPfU{ zT1Z8VDM}?bW@ZXVAGVrP7`$Ei3i;9r{Vw5+r-8*7XxPLYx45t5d5lsF z{~8hs|5}Mk+L)La+5Zs|g=$cqiYAF~*@kf(sha%YV!Ez@7m#{! zF;_JSz-0KT-BTm^BLFZ7Me(~N7%AiZsSxmU${HvQjq{DIQj6+%R&wD2F1>t*Ft$5pLIt*b^o4xJt*_VJQ6UD*%xjCURx*O^0aoSkDV)!c7@zD_qa z!Bo9pOf7SmanE#`x|q4K%Wg$H0zze(W^BpO8K0;9-Vqk{@Tr=vqGDpgVl`wQ4Xwq6 zSneK8Z4vE0se8TC3D|5JS{2OUqS1CZ91fAT4J60~#&5IVqroSiqDKk}#E7)2oanS# zKZU`8q0S66e{+(th!B1h03xI(Htm2CvNcPQx@h;JKogfO(~F8~Ay64$-OEA1W!Aq` z@1lo4!Ld3BCDrfQ2psW`X_I4GqU!xTOOFQy&gdbcPftjo@jS>!IL`iL*daMYkbrb^ zuggSIUfF{mAiKMX$BAA614anckQu5<#vn`EmVBT}(T0PtK}@1il@Ca{bU_~g_c0{p z+SI_&)RjoD#6VJ=-)?WT6nlV#(#chJU@)@0g?BEls=)r}HId2=!Q8Pz9`hFCr6<-_ zoe<5s+Z@KivBGF6$CiODo!C+k6ft15o_pClKkBwQGzJatFjOO5oYJcky3V|Wa6FZ> z!-)v_j8UJ)lD8Bo9sGJ(s5~KDdB93r3ndD+B2J6tc*!3Wm6(;&Qt%P{L+VWigHfge zEfuB{Q|L%$Xh{p1vE@Q7%qm1ZXha~}DsDIfKVp7hIs^8lGi)Uq(&>~P)HCp@E*+=- zr&~tI(~}kVZ&)3nlKs-37zULgqMdP?!lJMHdR%+a4jEyaZo^4AoPcZMYteAT==3qc z@^iHZH}XpD=8ado^-l+_Fk2l@dNw5KH<|sk=+lYdBQ9Myphy5))mH%> zHbXd=9FLok_CnS*A-@GiiqXh?UNlJ% zRz2gB1gd;b}XtJxKkf(lAd3it4n}SUNmQzLNr^I0a^?M%cQTwz0)c0l?w-Q$A&i-~cI26G z8Rj>MvpfZdNDHpSig<_`VFSmpUrpF?69eUk@#C&+vn^vH-cq7?hKj+}GEcE5BYPia z>?}$!*CaOF zRklN1D+L?>^cZ+x!QM$D$k+!6p<_rXa`ui8!DSo8Q=m`h=)NeSF)jjJUpTacHV!`d zH8Ew%_CQV?VLrbE%Wuc2E-yskU^N_b#@N5d#CEjE{tDHlCsG>6tICzA0ogMv*of3+ zaK$SkkiQtZd2JByay)4z{Y;BBxVW5j{zJR;*un9b;RVh8;e(U8zb|wKF+Cs*dew7+)?K|E?k0p5$kW(UzrZ`_|ppIVx{X#Sq&sOvs_mL z=s`)_;us~gi9SdzW#NOZ5|uV(dvR6W=INA5JDAcGQzUKlV`VEdy?da@4&S*~uH zx2$TJ*+QSbvCTTJE-W{>w#`tDVPau6d9Nw0{OWCUy3 z)VNI1rH?8CsS;qS5v;VVS@JU=p>>uCldOe`%cCA|jFNN?U>z{IS!QMp6|{DP!*iv3 zc~^^#D%Dv&Vu?D4<`y`3te#oFe(9x{tAwFO{jiCrEGfX%qHX)2Y)QhD-zOzVk#BQ#ia#N%8zq=>;M z8Fg3Gy?XwRL?u*EYY3q!=XhL_Ng8a(``7g4`)#!_mjvA9-8zL4_BYTn3SQt6# zR7Vwz_u)fvzi`FdpzF7OLV0M+sS-I{1(adJ;35P%48_Q8rk%lSh<0%xT7_t@Rb@)b zO5t(sc-<5hMSiYgg)}AYwhQh|820^1Znw&kwano60^h@M>lC{|aW zXz+8$=2s`m9X_8lpbX_YR3e5g@bEX)ReWv6aqW_mM~#Oxgl!3ry;Unk^hEm>EQk;h z8=UR=*O+NiS0;U9U=EgV!Sj>?E%rhp`W?Y)l*Y>n-4xTv;VseB+hLq|*QRWp;CYa^ zM$?ev@f=t@v^j~YFX)ijR z8okbaB{oh*x!ttJx?tU|N4oBYv7}#}W+QiQK4lGISw1sgHBUBbf8LR5yfntOsg1;P zT{FdExolo$-WW8ypT{}kzRdC$Ds3^m{hvkH}IV!fYA zy_PkyIj%5_5wKIR!(=~+e_pWC9^EAo+qe0d0F87>wm2qwmaN;s5$v;ZK)>^YnY9G9 z^$Pj8sD6?y{=mRM5#S_a^8Rx7+KvXW&KEbcxdr#hyd?!yPf%;P%pQK3c?_y=M70%# zj|`BU^ZT+R5<_%-eHqyTAK(Jr8uhjPIA3287(0i-wDfsiQyQKj);t3=K4#}4@(f`< z`?tEOw76lfi}4X3s=F~x$hTo6b3G>%BBw`ISV$&Sj&xz&yEM?8MIm!PC*-L1z8{Uq6ce|Q7h4m`Phh7S5U3S_E#x;AC)<@EA}DUNPTgZagsvh zdOmdF(B=+)ZpD6e+SgMhVKQE$HLSXG_@(5;~D<6Ns$aGyFxJPY6KMK>BGtFfiJJ^n}%nWz(%?{ zyOUaty^>aNeHnY`6stO9vVjBFve=rJXPhoIbB{fB zl3*>a6L11cU@X-Uu%rx>hdpXGv} zfgR-G`;cq0q*(-~FV5i>qkbrkDJo)IIJqw5cgj<3mGI>`cT-vv7nBFqu(jA(TH@!0 zcePz-wYw}PXM3p}$b*NFYnV|C#b6ijkH=RGwG744#!!-hHB`M(@yf@P=(Z1+(MlWLUZGzpRB&d1(~w@8XMUY@vM>`~Nb>q>=KRGbQV(QkvR5VM zTn|NiKWw=50yr6lg!ZxVf;E_-;o*EpHcuICRb_cdV@7hh?~S*_p*3^=QYMg|D!CXB zA^%IUlN*)dhTAii-=Vy5>o=U>Ubg29Gy8REy@TzL3?lCju#qzMfIw}G+3PCfXBxxO z8hq#bM~{4#x%n5z*`-l#jLh?@ZKt@#?lu+X1WZhM zG7Hf&6>3iQ$JhIp#onio@`}An$fokWiU**T;8FwFBZbO&X37CblL;te*t18v`LIxx z(U%jVa07Nfk_uWma;i=F?)%CKa=|{8Lanj=0y4?Am6|ro1!Mrz`vSFWi5sz9riL&78mnVJ@&(M6TaV$RsDE0WKElj_lS;c8A%#*OadAg?s| zb3`K(*&v)0q^gIct4ZG4MmC+n1dpg5H%?~s5v4rcBpM*<8J7`KC_*rWN*{lvQ~R)+Ib(q{W$cnxYV64fCm6*CivYs zIo*Fd2mJNWL%_z`*v!PqUeEFS?cpCMAepLQuGj-8uOe|B`?KnCi%HZixT?B`75V{o zYoakqCjs%hqIHolf@~gWQ_cIaYY!PnYT8PnTv9a4yIJ2?#!@9F!!OQ|>Ipq}FPcg{p&5 zYh0lo(ACKD%0#n)I(k?5HocQlGLd zD7O?S56PES^B*1KiK!X4uVOb4S+qoI`_1&D@(X17TiU$ zk~jIfWkp>R*UuzX3C67|7@uH{NrB1I!k@I!oT}$fC{qv{^|3GH$??`_ZcheEy+xRE z6M9)w#9}KiupFEAu%{guuGL1YGJhe`PtZomOp3_@eAjRTh=V5Xf!aU5^l`7YbeTZ} zs97|}(#FE3DZwKtN@^x)RKS>`bY|S+rKKp0&(}|^INkVB>rd^TMj2=rGuT{z!I(R@S;Fha_4`nNKua|PK!c{r6>i(O3b;gTyFumu zzzn%Hy6j}UO5wYYvWRiV@@+*~dEweArH(AQsp*>w^o>X>J1Dz{dz<8^oFP(aWH*a9@Q@nXgPZ4|&Q3X)Hnh~LRUu}7*y z(*Ah-VJ&Azcuny7nkGt>Ik{NFy^?<6li&-RphC#z_A*u)@c}jim{m9~1}BV8!Onmy z#OD^p;Ntm~TkqoHN>!3X+iF5nVpxWdKIQfgBpn8uUC^|P7mzsB{nXoAtkkiFe6^N?mK4qe-r3S|@7`P|5m@anruws8Q* zAPt}4(V81D;6N{E9?$C*ms8HS>8xRlmxkbGp9SrQA-3eA4Aa4E4FHBzF(;>Df`^RR z6CpJ$aY=0D`^a&M?SymOl($=Z#on9@p!tL}ELJC@zWH@}c>&>cbO0V3+Z>uvsHP2F zYA^SlBQ@8&`e;#~yCL2CM!|_+f7pxw;Lhl(sSzn07jg2G97R@Nt8de(%bL2pT(h5H z@{A)+rKS%Jj;}pKvi;!Mngh8EJA!>D=BeCz&8AIwt)x}Ln|N#I$tUh*Cx41|Ah&dD zR8&0`VLf!}$S~qs#meNVq&qT4u$CpZWJih8uOf@t&7vA$B|R7w5*LM~KTj;6BD&Dz z=!vztUAc@+7%8=Mqw^uMI-}#73-wHCBG>u+j9+=!iT^<(Z*2#R-TNaR1h6LQsz~^e zNqh1$Fwgu2BM#3HEy-2hpv_W-B?E*RC(DW@V`dbh zDbc5SX?4}^JdrLVx^Mt*_^u&5rf0dK>=^Kc>%UZmQLXVwi?FqrqhbY^mS zfL-0ez0JstA^}%$44iH*uTHOUPpz}3($1mVqWX1XtU`u?aGm37ypEYv z`kXR9v|v6H1Lu?c%hgE&Ei$R`ipRJj|D>0GDo5N_W|tlN6|&cRYo(I(t#AcdKCK%b z9optR_fZ_4Rk-UX&5f$}PFINAOZMP7_VMMQch4xjZ zTS5GRPPOtCWr*dXrjTLA(|Mszt*W#%DUOwrL~!hjs?>6O^oi*L#^X-%?FvcJsFPV# zz<@rnCS%f!7)=;iB|Dn&80p&|R4jAZLEmVLn)XgCu!HAokA5zrJx`h8n+ZRRGJxYQt&)W;}Zd zi*ZH)~K-t;$bOu3VzlScp%+9Hv)EytQV0T zWvij|L?rNpUV#{gOU~j|QqAbjvt5Rm8$M)UQzsYMAC7LVsr?F!Ss)poQ4NQMC9P|4 zPsM!B5n4%Fb6T>d1$^HEg7T~x#4tyXWFaeLQFhoTZ%O3DSh_mJJC;_PxzHFpBPKy; zI%K4et8$d(ML;$>PhV(ag=Tk@ATn#V;w`px0FShUp!LK$+GioN&2T8XbU>co?NE5A zXW&wbnbo(gZKFD{%`KA?+(*fIR99m+PY*4-YzG}@>9)%b8xjdaBq7r$Oz@13IalFV zZ^4;+t0%U%`KW+yWE-V-VMoCk4)nyz8Ojvkj^0DFvofgQ+9TKM%%fn73?^6R-w=}f zuJv$ffjfl29!vF|rJRu7DnvFQM>X22)<{?Eu&y%Xr&R<7I|fqdo>3j1^o z>a4<{3Zf;v!RQqRp3DrX>l)gk_5H3EYvGFn6yYE*7k;$$6^|2-SO* zut7B3eK@7}g?Rmya<$*^nP&H_EJ!aXUOUd{l$~$}>u7A+V|GTZZ8%LN)Mmk=D9vxg8(Z}#h&7k3DfPBXm~X@Wd=qGo2GiDBiwx>t3DVp{9&Y)Zl`%J<#Q z*&#Ko`I5{mTuygneF_&{62bA8uwSD7p%$C^Ye`@nUu|H%yis9PT(Mjal~ym$+C%;kagk8DkOBtB!+AzV@?_?u{b4M-qsm8P>Wynn6@j9pr{r?q zs05Z7HI>Wc9jc)rC)~hMD7fD}JQdk&(bFW5=$N-Nj(=PWU@P1iZ0p!wE8A+O&%&X_ zWWgPYQi;M6soQz9+c9|q_S=Ue~y@Z1h|y%e&y=7O*>PPj|$xLtX&^<;YT0^A9v z8V#pUxiKj1&EdRd`)*u|!kkEzG8r&Mqv~~<7Rib6e!Xs?=Cp8L6b_lsL6zl?ZAl3u1-k65yYe#XN;q!hfa#?Z;` zW+^>LA9Q)3_dAz3pjZkDc0qKP^c;Z;2)RGkLm$M534zd!o_Qg3JRw`XLf7(%pp-`J zmqr+scG$z{T~J&5cvmKCsr%uk8@@rGJl=`zYp9Vv+d6JPrvDNT>mKXjtsxdIw6bjHEk^*ohPY_uMCP$VJk`M2Q zu5af9HgOC|CXo@SPvYdkd%B(bllydR7BjL;)YwaWmnN4duQrd(uimfRuduq9tr5)q zMExj4Q>p&rLS#oDQ7_wG5}tPoIxTN` zv=8#&IBq8p;HL_eCPS<2U_h6btz*^HrS+I@HvS?nX z7YFfMMS(g>Pb3Uj*`~pPRfPP7)+~)#YGjVT9Ed?r5DBz|tx7Mez#E1_r&^=GT3w5d z6G-0?v0=IuOgYPb>4XLJWk$VF2KoA@fj09NvNgDN(`o6ZGxW8UttyPAY2&p`dM@+X zu@O>1GXS{$LmS9L8PLREnA9O0#xaIaWDJ33>dbt z%HdHv9-U*9$Gw|&jqOa@%tokU9#Jc$z{W<8hhLE&JBnvg#2a=RB0#9bhsj+73TKU> z<%&AaPau@`_r9PO+j>4Jj!)X>-!^`25oxDvMRoG4MQu*JQC+;8U)yq?#f zUg=vF-7*bPm+L+f$dcKt_D-m+T?dlt1?k<$?}@1zp|>t2W{syYp2fjh={C#Y`GduL zg|1wQ5z1J&*_~nK<8bTe&$d_=s5yZsm=GZ9;(rak*@wUI9kd4YTiY=#yofmw!+ci= zN-R;Bx{Xjou!53jmES`81ac+#4ZWiq0aX9qZ#Da<{S@DuWcR52K}56Xh(2q|jq{-B zqZ5t3R923K!xwm$^wO_bC2>w=hM7lZ9cTMYVBl<`7vO}@CVQj!-jTNM0;%@>Xnpll z4#BMECe^0rAWUJM*pKw>g&tac-FQC^GV03FbfJL&0M0;v7h_ca9AkfLH2fpVA``rR zH2Mu@k3r%Tf=95d`@VyWDy1aQhu8O~LzHx*rn#h*Z#`~as;s9ZdMp(rCQ7@1_bfX& zE8pZ4(eHEC($UnlpT)hu_WF9ggXSyLE<5Fy0xc#)+KT=tGvT06KOru*%Ei5xG&I#f zLDB0m06#X4V%U#?%W5rFzI=`*(|}~H(xNe|o&G`3D*X)X%sMS;zd0Lu_@h%kSXqQN zip$gx-70`Zo@PUfF>ue;Sxe1*)^SESfeVKF*n~W^SO=fAP?TCMeRoV}>h$E<#<#&o z_2~-tHKi$^%<-5oy$Cw8y*!jNp?M3X+z-tt*)8Q?aN`mZP7}nNhznWHL6%a&>?G-+ z@pkVvzee^w4^FRaEXd*e=vtnh(GlGQF9z?2iHCL?F?_M^FBpb^ocTClmpxh^lm3~S zb}U6NCCWP_*M_FEWxMjz88VwdHVuX6eud}wy1@0)S8x6(qZN=@lvjslGB?t^!IB5Up_e6Can^OEf@DA^8o~+BXp>PW&xg1ag z=^(w2%~(n~XBQmWDUJ7%u>C639PRJIwli8#H<3FTM;bwQJ=rAXUO0Fg0t2nPU=He> z?zIHzw>N{{%ah6{9CEdKFip`8%Bs|`E(5zPY?BT*_$4a47ExE| zb;58iL7J@g%GAR5w!kNK63ma9OI0YEWY6PxVX&9Q1)0^^9wFw#K)t+WzY(7F$j3)v z9`&2;XHN>&2o#ePb>TZ9WXuff`ws5=9nI+c@NK_9G2ilgZc=9RMnVJ=YhwG^oKA14{L z6pKM79jNiimK@9KC^)ua6Y`YV-61q`_Ngkbc(<0QBFLAg|@%HUD_daFw zdKJq!lg$@et-zvd^bUWCxUj*L7fCN@4T#=aghdDU(0_b|X;?F>19Pc(HZ)^{@Z6d? zeYSY$mRY+(DEAW_zr?VOP2DS+4GmYX1)&hHmrc@ywn2v1G6>Xetm~wKjun@3I%3&* zCK$G!FllXneXk#E`|PmuB=%`>+|WtC%I9#Pd@nNkK&T_NVR%AOvR2@TC|^M-q%D`) z$7i7Y30Vw1FeS$vzesQoY4B4-ISX?{D`Q9h{O>1Q13N*;)#e&KK?zIw&-l)EkI(Nl z(+hbB%7kD%+q_jhCmU1Vud>dTAQGU^8zycQDm3COTkO(SJ13l65uU>8L&W|_D-yN3i`}d!FwTXXq>0fXsRyKxCmPXWO*2Xq}mewr*F2#XFuK;-er4sjEiX3mz|W1fSaPVx%gPDvJ|$Qi zZ7E?*(ePaSvMl}LNg3XT?ouM?%zI1I&E!w$2!kv~d_#x(`i+u_m5xP-78IG3$2&oE zEjB}?0c})zOV2E^%hJ}0Zh+u##S>_zxdC8<WtDYirRG4Rhb zSN@nQ>?n2Wz`zws-2afHp^k+Kw8>;Px7D#}9h8+FWlKwsI z{Hf)4Vm}~AKj}wL<)31Iw)+3y<*$B~|MSKFPW}f(=_e6cJB>L}j_vdu~Hh=uk`K$l_iX8dtD|Gr*=Pv-Mziapv_3 +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + Charm Unexpected Error + <%@ include file="style.html" %> + + + <%@ include file="header.jsp" %> +