From 9f042e13115c40bfe10e5dbf70fa81530f3d7efb Mon Sep 17 00:00:00 2001 From: David Deng Date: Wed, 15 Oct 2014 17:32:15 -0700 Subject: [PATCH] [INTERNAL] Add a tool for fixing missing TableDescriptor files. Summary: The tool try read TableDescriptor information for a table, if failed, it tries to get the HTableDescriptor information from meta table, and save it as the .tabledesc file. Test Plan: Test case: `TestUpgradeFrom89To96` It reads from a untarred file generated under a fb89 version. Reviewers: rshroff, elliott, manukranthk Reviewed By: manukranthk Subscribers: bisho, hbase-eng@ Differential Revision: https://phabricator.fb.com/D1619254 Tasks: 5305964 --- .../java/org/apache/hadoop/hbase/HRegionInfo.java | 66 +++++++-- .../hadoop/hbase/MetaMigrationConvertingToPB.java | 2 +- .../hadoop/hbase/migration/FixTableFiles.java | 152 +++++++++++++++++++++ .../apache/hadoop/hbase/migration/UpgradeTo96.java | 3 +- hbase-server/src/test/data/hbase-fb89.tgz | Bin 0 -> 55608 bytes .../hbase/migration/TestUpgradeFrom89To96.java | 113 +++++++++++++++ 6 files changed, 322 insertions(+), 14 deletions(-) create mode 100644 hbase-server/src/main/java/org/apache/hadoop/hbase/migration/FixTableFiles.java create mode 100644 hbase-server/src/test/data/hbase-fb89.tgz create mode 100644 hbase-server/src/test/java/org/apache/hadoop/hbase/migration/TestUpgradeFrom89To96.java diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java index aaa36f5..4ffee0c 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java @@ -854,12 +854,22 @@ public class HRegionInfo implements Comparable { */ @Deprecated public void readFields(DataInput in) throws IOException { - // Read the single version byte. We don't ask the super class do it - // because freaks out if its not the current classes' version. This method + readFields(in, null); + } + + /** + * @deprecated Use protobuf deserialization instead. + * @param htd if non-null and input data is version 0, it'll contain the HTableDescriptor data + * @see #parseFrom(byte[]) + */ + @Deprecated + public void readFields(DataInput in, HTableDescriptor htd) throws IOException { + // Read the single version byte. We don't ask the super class do it + // because freaks out if its not the current classes' version. This method // can deserialize version 0 and version 1 of HRI. byte version = in.readByte(); if (version == 0) { - // This is the old HRI that carried an HTD. Migrate it. The below + // This is the old HRI that carried an HTD. Migrate it. The below // was copied from the old 0.90 HRI readFields. this.endKey = Bytes.readByteArray(in); this.offLine = in.readBoolean(); @@ -868,11 +878,13 @@ public class HRegionInfo implements Comparable { this.split = in.readBoolean(); this.startKey = Bytes.readByteArray(in); try { - HTableDescriptor htd = new HTableDescriptor(); + if (htd == null) { + htd = new HTableDescriptor(); + } htd.readFields(in); this.tableName = htd.getTableName(); - } catch(EOFException eofe) { - throw new IOException("HTD not found in input buffer", eofe); + } catch (EOFException eofe) { + throw new IOException("HTD not found in input buffer", eofe); } this.hashCode = in.readInt(); } else if (getVersion() == version) { @@ -891,19 +903,23 @@ public class HRegionInfo implements Comparable { @Deprecated private void readFields(byte[] bytes, int offset, int len) throws IOException { + readFields(bytes, offset, len, null); + } + + @Deprecated + private void readFields(byte[] bytes, int offset, int len, HTableDescriptor htd) + throws IOException { if (bytes == null || len <= 0) { - throw new IllegalArgumentException("Can't build a writable with empty " + - "bytes array"); + throw new IllegalArgumentException("Can't build a writable with empty bytes array"); } DataInputBuffer in = new DataInputBuffer(); try { in.reset(bytes, offset, len); - this.readFields(in); + this.readFields(in, htd); } finally { in.close(); } } - // // Comparable // @@ -1112,8 +1128,34 @@ public class HRegionInfo implements Comparable { } /** - * Use this instead of {@link #toByteArray()} when writing to a stream and you want to use - * the pb mergeDelimitedFrom (w/o the delimiter, pb reads to EOF which may not be what you want). + * @param bytes A pb RegionInfo serialized with a pb magic prefix. + * @param offset starting point in the byte array + * @param len length to read on the byte array + * @param htd if non-null and the data is version 0, it'll contain the HTableDescriptor data. + * @return A deserialized {@link HRegionInfo} + * @throws DeserializationException + * @see #toByteArray() + * @deprecated for upgrade only + */ + @Deprecated + public static HRegionInfo parseFrom(final byte[] bytes, int offset, int len, + HTableDescriptor htd) throws DeserializationException { + if (ProtobufUtil.isPBMagicPrefix(bytes, offset, len)) { + return parseFrom(bytes, offset, len); + } else { + try { + HRegionInfo hri = new HRegionInfo(); + hri.readFields(bytes, offset, len, htd); + return hri; + } catch (IOException e) { + throw new DeserializationException(e); + } + } + } + + /** + * Use this instead of {@link #toByteArray()} when writing to a stream and you want to use the pb + * mergeDelimitedFrom (w/o the delimiter, pb reads to EOF which may not be what you want). * @return This instance serialized as a delimited protobuf w/ a magic pb prefix. * @throws IOException * @see #toByteArray() diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/MetaMigrationConvertingToPB.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/MetaMigrationConvertingToPB.java index 13bebd3..83bce79 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/MetaMigrationConvertingToPB.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/MetaMigrationConvertingToPB.java @@ -76,7 +76,7 @@ public class MetaMigrationConvertingToPB { MetaTableAccessor.putToMetaTable(this.services.getConnection(), p); if (LOG.isDebugEnabled()) { - LOG.debug("Migrated " + Bytes.toString(p.getRow())); + LOG.debug("Migrated " + Bytes.toStringBinary(p.getRow())); } numMigratedRows++; return true; diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/migration/FixTableFiles.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/migration/FixTableFiles.java new file mode 100644 index 0000000..e841b24 --- /dev/null +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/migration/FixTableFiles.java @@ -0,0 +1,152 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.hbase.migration; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.HConstants; +import org.apache.hadoop.hbase.HRegionInfo; +import org.apache.hadoop.hbase.HTableDescriptor; +import org.apache.hadoop.hbase.NamespaceDescriptor; +import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.client.ClientSideRegionScanner; +import org.apache.hadoop.hbase.client.Result; +import org.apache.hadoop.hbase.client.Scan; +import org.apache.hadoop.hbase.exceptions.DeserializationException; +import org.apache.hadoop.hbase.util.FSTableDescriptors; +import org.apache.hadoop.hbase.util.FSUtils; +import org.apache.hadoop.util.Tool; + +/** + * Tool for creating missing table files, e.g. .tabledesc files. + */ +public class FixTableFiles implements Tool { + private Log LOG = LogFactory.getLog(FixTableFiles.class); + + private Configuration conf; + private FileSystem fs; + private Path rootDir; + private Map descriptorsInMeta = null; + + @Override + public Configuration getConf() { + return conf; + } + + @Override + public void setConf(Configuration conf) { + this.conf = conf; + } + + @SuppressWarnings("deprecation") + private Map getDescriptorsInMeta() throws IOException, + DeserializationException { + if (descriptorsInMeta != null) { + return descriptorsInMeta; + } + + descriptorsInMeta = new HashMap(); + + Scan scan = new Scan().addColumn(HConstants.CATALOG_FAMILY, HConstants.REGIONINFO_QUALIFIER); + ClientSideRegionScanner scanner = + new ClientSideRegionScanner(conf, fs, rootDir, HTableDescriptor.META_TABLEDESC, + HRegionInfo.FIRST_META_REGIONINFO, scan, null); + try { + while (true) { + Result res = scanner.next(); + if (res == null) { + break; + } + + Cell cell = + res.getColumnLatestCell(HConstants.CATALOG_FAMILY, HConstants.REGIONINFO_QUALIFIER); + HTableDescriptor htd = new HTableDescriptor(); + HRegionInfo.parseFrom(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength(), + htd); + if (htd.getTableName() != null) { + descriptorsInMeta.put(htd.getTableName(), htd); + } + } + } finally { + scanner.close(); + } + + return descriptorsInMeta; + } + + private HTableDescriptor collectHTableDescriptorInfo(TableName tableName) throws IOException, + DeserializationException { + Map descriptorsInMeta = getDescriptorsInMeta(); + HTableDescriptor htd = descriptorsInMeta.get(tableName); + // TODO if we cannot find the HTableDescriptor try get information from HFiles. + return htd; + } + + private void checkAndFix() throws IOException, DeserializationException { + FSTableDescriptors fstd = new FSTableDescriptors(getConf()); + for (Path tableDir : FSUtils.getTableDirs(fs, rootDir)) { + String ns = tableDir.getParent().getName(); + if (ns.equals(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR)) { + // We cannot handle system tables. + continue; + } + + String name = tableDir.getName(); + + try { + FSTableDescriptors.getTableDescriptorFromFs(fs, tableDir); + // the table descriptor has been there, go to next one + continue; + } catch (Exception e) { + // Now we need to fix this + } + + TableName tableName = TableName.valueOf(name); + HTableDescriptor htd = collectHTableDescriptorInfo(tableName); + if (htd == null) { + LOG.error("Cannot find HTableDescriptor information for table " + tableName); + continue; + } + + fstd.createTableDescriptor(htd, true); + LOG.info("TableDescriptor created for table " + tableName); + } + } + + @Override + public int run(String[] args) throws Exception { + this.fs = FileSystem.get(conf); + this.rootDir = FSUtils.getRootDir(conf); + + if (!FSUtils.getVersion(fs, rootDir).equals(HConstants.FILE_SYSTEM_VERSION)) { + throw new IOException("Upgrade to version first: " + HConstants.FILE_SYSTEM_VERSION); + } + + checkAndFix(); + + return 0; + } +} diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/migration/UpgradeTo96.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/migration/UpgradeTo96.java index 6df2eab..76ff588 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/migration/UpgradeTo96.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/migration/UpgradeTo96.java @@ -211,6 +211,7 @@ public class UpgradeTo96 extends Configured implements Tool { executeTool("Namespace upgrade", new NamespaceUpgrade(), new String[] { "--upgrade" }, 0); executeTool("Znode upgrade", new ZKDataMigrator(), null, 0); + executeTool("Fix table files", new FixTableFiles(), null, 0); doOfflineLogSplitting(); return 0; } @@ -218,7 +219,7 @@ public class UpgradeTo96 extends Configured implements Tool { private void executeTool(String toolMessage, Tool tool, String[] args, int expectedResult) throws Exception { LOG.info("Starting " + toolMessage); - int res = ToolRunner.run(getConf(), tool, new String[] { "--upgrade" }); + int res = ToolRunner.run(getConf(), tool, args); if (res != expectedResult) { LOG.error(toolMessage + "returned " + res + ", expected " + expectedResult); throw new Exception("Unexpected return code from " + toolMessage); diff --git a/hbase-server/src/test/data/hbase-fb89.tgz b/hbase-server/src/test/data/hbase-fb89.tgz new file mode 100644 index 0000000000000000000000000000000000000000..ff2056650f78db95953f70289a513bf083af8fb7 GIT binary patch literal 55608 zcmZ^~Wmp_t)2>Z$LV(~2?rs5s1sL3dJHe6w!QFL&L$F}MEx5Y|3-0a^+}(9%`kUO( z^S<}~j(zMu{OF$5YxSztRMk~yQAVI6Y+`~m5s;2EFbrM*K)-q8uOjw8f(;t^CY6hS z=vvO6B;KkX`}GCEf@@MjQpA%{o^kVPW~=zhJF*BvvLGlunVoD(1t zsZeb&Qw4WEAcmq{P+@n5V98s0G4YyG*m7tRs4V$Vs;GSVIVucaIXDvH|YlAdDWy60Y#i0HYzzOww1edFj*6s4_h1?^f zTD;liM$JMigbMlrjZn}tw77wPo^%5ULC*ox&-Or!ECi^UFn^+aUJ8_O-j1XCZ2}j0 z6tFBrU&N{=kX~5U!9R<#;$4SLeAxvX5=otx>OdObIPy(A)_T6k17zu_E-0~o;{xJj zuMYq$4JbYU(t|o20vmF201o!eCE)Lu>E~}m4d#w{b`R!8iMa<0AV&b9e0SFX)g}-c z47&gTUFd|=SJ)HyyA%x#j1v3i8en^DZRSOtCIrx~_Ll*C??>?S*RO#<>8g7$%{Jib z6$#*eN8lp6UW5VlkJK0lNap|*H-Hr5^$47y1^}uQO|UUwojGd`Oa%k)ql`mT&Tfnc zAmiu%eOnd-<10{;(H(fgEMx@eq#@Yp;CS{EP!%}?+E+2w2Y6}ZZhGFhzEWfeSICZk zrAc0bjS^buFQljrimYAR0wdG-i%D&Q$N~z1&@)0{P!2*#bZ80q>OsYX!l0)BZZ|F%I8&*{>W3G$|pu)8gcK;c`gDY&1rp2N-`UH(VYk1>h?epxFdI;j+Q9g6@Hh zlFZw+q}lFmU{Ih3=>BQ^02T@s`?3+{LKG=Z3F4vicDqpljR< zzyX~Iz@dSGn@So1pnkS{2VgdZkIu<@0@DO5GHzP33HysNsyk3&g%(cdG`*>?9 z-aFfSg8-;V?Sj|;&K~*i>{|ea!1EdyF%fhH2$Z5p#EwH3_<`-O@Wqo`kAOrPO?EP8 zLKp*iZekU{|Go$MXL!KB!*_sK_{B;1yD!EMnr@2I;LCo(JNI~w-%o}2T9YVK{PUz3 z;=|q5tFHj#1}+SfEua_Bzy&}Cv(vDr8n0vs$VHGEeh}cZYcLCtmoQ?T4So)g;vTrn z+t76pN*oJ<{d_r4w>EBq0Luy(0lH{)AsyK8(^TrU1UA;ji3iYPAB;V&oqxKDozv78(gZLAnqS#Rbri$ssW5)thFm5cB6^L>D=IUKc|gn$?LX#I5rY5@S}IRx z!-tysZhfwP|hPip|u z#lWMn2eJx8b`^MQFbmwTfi)d~C$Q9C(^Fve0pK=Vh${v34DkPZnrJ;BAe6r!`OO*t zRLp|4D4`&l*T)Bdyc7-m*@e$*`>L7A?I|n8^!VY$R zH|<0kZ{!N9JlG#E%*r^Rc0o8R+qX4Iv2af+#2FzGuki;*VC79k21@xL6)i^ZV21P9w!52&^@)CzyxysVGgqlmFfVp6a_m)k`g=Rbi}4u@J;yybcV3h);~Y1g;k ze7y(4fjgakphN1s2UtA=%WMMY6P?F^dl{_sF$|#cS3H;ma=$wcKq%QZUsREN&`%M& zLuf(hw1r$yMn&ua<}q)QvK9>UqB!h3JZ^(s>=JQJf?wnsq{e2~J|AaNajo;IYwPY( zw=J#B56;g`4t|_tzfu=kW%C=JXRmkn9~j)KCH_;)YH`K?(eTX;C_Op&z$2sHn3B}H z`VxJuA8Q@2tM2f_snu)AU{|ZT+1OO0AD);PDa}U{ILPiErl@6O3x0P>E3`3TbP0Lu zUNNRbC%=SaeR{XdOdp*pzqRW?Oj+fz=kc%DPrX0DD%f1_T>YcNBciVQWiIAl zZ_lo;?gw1lYv7vGZNK;#AoCi;V9bigr9sPi*UtKy_OPHM?QJ_tRmz9mZ@-02LjTNi zSI!o3kSuQ8u}KJfj}ZBD1QN1ohMxD4S3XnmS6X<@ZjlkG6x48;>qvu|^45U!=bw|> z0^&Bc^c04bH^$?6-|F_( zcyuzkU{M&dI;a82*!1sfXgJ>|#3zqxHA5c*1?dS^rTC9(ZGs9+zS0Z&Ey}8S^MGy z1^wF)|Bz|{g$;#bARQ>%%8mjvJFS&G!Ex_2t`R+%VeQYRY63DB{lrH)V>+AxYaE9~ zjz15mt z{oE0ul)NM=1ry`5fBk&<6TwsG6Mbaa61wL0 za}mZT@^=@PhY;n*E+-qMm;t(Ht1<*cxqGSwr;9_NSZi2RNbdWbR0JDEQ9UXb(yc8?+(%0jljh5uc55rz@fF{6jCX15e(ilEdBgpVreu0R-tfxE@F^ab(S=bd zwOP5wiA>32`BV_?#~1x{aJ6?ZY>sfY#Enz9n;UW_I*`od`l4)^Z|mS`*^tqQU2wLc z((br-eK)=^lYTvgf;7L!EQ`(i{DYs8#Z5-F+nx-;=Mj>a=uI`xnyV&Vjn#)v{Kdn| z%@1xc{}dfwH;%@;>t#xA)*XT0=Tn)x#22BIeZqa;h6e{j*xos%Pb9cQRf>&S|;p2SRKPR@@) z4oW`l0w?F9Ud861zN3Trx%EiVV?DcZt3Pgs+qG0og|Bg>l0APwM(#CMb4`%wD@lsf zu|Zz0bcp?5b}>YS@Tl<(G8lPdK^wOefM5f5|+ApMSSnqd_BUw*w3ZEU+Z)MIWx zXdrg~DD4TIO|ufje_*6*1&hoB+l~_Q=}CVAQV2I~6CwUnXBB&`_Dgj5KC0e`u30TU zn+!Yey|aZx6FLMNRSn-l;w)* zG-7VzVr=zS})51;_e_jh4@3zr$~UzL2)OtkA*5yljL`1MP2T!&8|qVJ_0UMqq~ulG_FYBB?}Npd(zoCH zu?3zV&7m5jWC0t~UP`5hf7IO+3Z`F`pCDE%b&aU|sPFx5Q=7?8BbpOGQK`kqa&|Z! zn-4uulYe+9Kk9PZOf9k}iWeaC@H#;)H~axvq}ShlDM=D3`6dRx?|7s;{W1ZY11tTF zb4-g*`Q>0_IO*FgT*bmsOG7}}TARy7By%cl+xeq8LA}?dPaB!*!zrUQrKq-xO0$CI zvxp#s&MuEsc>c?SR@2jrseXDw@QT7_h7af2stb#~pio;~QCRdRPmfjt=1tyYasL*Nh<-2r@FlTsfez8@sv{h4x zra$Luc^l|lRvcU(9$e1cUmxS|=XS?2S2oMnVD6A?A%c=)qW8+|s_v1B*VCk0-P!ge zVfqRS)0DPp5;4bovuXFaC871HaksU-n^6TVB)X!j>W14&YaJ6yH!`J|c|%xT|Z{nhhJ5z$8hW}nPo zr1RG)=46S#W^6QW-l_1PmYlS^jlA;?@pf5#H3k*an5E?P=1NdT&fN!N;(*hgpw}WN z5l@IG1w<%D?K|=>*2vuteNR3o9_>Yu|5D#eOyoBJ;ZG!bdRHI5n_14A-uR`KwMD(X zEoi%r1x1Dyv5N@nA|x^I)^Q6GfpGGGC?l?VI2N6L z|1DvjOg+ z@z@3A2Ot2~Z0AXq$xTP&%WU{PI&NI}y`SO@0RQkafvo!W`xi9PQupq74hUO-2j1UY zT^OD%M*=t+SW__YryJwhJqRds#u`HD2}7gsO##l5pFUmxqm~@S^a88V>ubV~lt9iq zgdhMbVm%z7!UIB!Q7wUvs>jMhRv7RRM%nKPyn|mgQf9zzZOV$;_w$>17bNH|>Rd60 zn40yY*)=o@w*dz1G`~mFz-1I|KiQ6dq~Bb3;^H5;SP!V}o!yW9(W5 zl-C?$hQD`4N%n1DrDzRe?r|T3{Bi@_N#k*Uh7LG3m8{+3U;?pH8<7C@1$h4^A6TXW`DWpN)5VDkN_hgrE^vtSc@H=U5cr!b!UyB_Yup(Vk6Hy0W?E1c)~!GgN*=M2Nm3P4&AuwSv)IpLD&G%KxBh} z`@NEFACc@SV!-iBGIn!E!xH|pLHRB3=i4J(l3jOH1MPUyV&Box@t%ppe5nS+uYr&_ zAdHb3f}@M90^s~J+cNCa1_+PIgPR+M7W%k+x%L9sNEX10k|~&c_2PS;WdC$A0a38D z8JBK0HpO@zb_jqDyEy{k!nXMT`Rg#-2?5TQMP+>>0caQ?m%aY|0wi#42JL_A+k2fG z>hj>L`E7jRrwwr>9&3D9bUE|CX@(c^L=rsBn1t`hA5NMh5d3gl{IdsGBQS9PVMj^K zJ@3qg{pl%R)HSg^gbl zMK)qet~UwsN$D?r{*<`>B)F*0nmQC})rX6gk zXi;UJ%~SglknzU0XNAe^cqRa9PsVS@N#>|h)J63f^kHTG?Rs8v!jh4TUU+3&mtBHS zqL-N=ehwQ!X?2=P*UJo@Ur(2xE83#@AAECdY7CBKg;CvcPo;*!DZ_d52Yb)gxR^c~ z`eu{Xl@2z@!C1QL^y1tjPgmwOo2fv7(`wYa%kiITy(^iVA8WyPY zGyA2pxU$FK*?Bxc`s}p2aK?ak>BaB)%lhNd*EvUrsbBho`6#N1A38xbj%#yOCzymh zP`9P@h}|S@T6Xha@BRG?oqNsGZ^tN7sFobOKFn4t{Mnn~)=&3V+^(~sK1%(=|84s? zU0==mr;uo-dO|zR46^9&#tcWi`7dW&={3q`$WLm81FsrGUM#Qmi;*~3o;#c1kd*U8 zPJrpo(9nmg`CB++m^jwoaatrJmxU#|b$<4zS$W>2%ttz5nV_VjZhNaNw1;Hy=Jj}K z*)^WX+&IE`boLR5ze;DP?^QADx1UuAA;wy^k^2L5(CK6{Bom741u?9noH4stqOgI8 zH*@EFW2yFHNjkjJmt$kRXHQ^)IXAD z-Xg!iN_b(=e4|Ip#(SACN&jdNlGyp#*^lgGX-Mf74KtS@S-Ew%v^*XzEvr|Ap;|sB zgpEdCEEM_4i(R|LMHL7ncoTVL`4ctfG^0=z(0r|5Be8q~B+BaHyvUm!=lZU_Tg>aY z+Q;LgQ>efEZXiuDSuJ_9nASdsWW$8hsHXTFzG)Zhnn_qIld^Baky(X8Rw*4Sc!NJkH8t98Y%Ig;?*lCde) zxAZX)m-A#6+?Ywj-%vfLUe&jH(sI^!gk^C5G2{p(L7pw<-1OU=5J zbv5h_Xu3C-E$Cb*h@fHaqWh%_P z8q&nr6|rqOcbFQsEyAT|zavMIv5Ll?&k;kh9+;Va!zT7r!B#i&y@*-fu7wU|c076e zo$Lt(+Y*~*ny$LK&PTT`}$<`%3n*16QRXRp@BUZ2bzWL(#{^RG+rHYI|$bCyRkl-y~81qu^S9G3Co+J)wa zvF{s$tp5bI`54>;Q+P>s7?G!!0CiRyrLN<<=B|Ad^Pwe86Rq#NU>VzOgCr`v*;dFq zSr|_0s(X+)UzSfGE9e(yW$yQZM*@S9+nSY@-9cqzp)82d}F5X8&MHLu&z!ZUtpPSzP_NjH!@3ARCuLB;Y`;%bzCPj<$Fr!_s)KECi$>;Qpe6(sl8zFL03mf zb$JkLV$!k|YQplE6*03J^DEuNl7h#o!~CN{)!Ei4gfMF zQx(NekLfGQmfcA@{i7Z&YJO|?%l ziC+sGOq^>v4r3Lf+0%MlcV^!`g#~_U?-LzrZCy4W82#3wPP4Ns6iOgi7zJafrVU&XDi)44`93QDA)IKtL9c zfDgomwF0jxe&Yd-|HhiQL3Tpl?{PxguYuVQF`vRh_2Man560*Z^66poI}*q-sQ5r= zG=RP-Mh1_QUj8?Xx>uyTEk#=mQW=GLlGuQUXRBb`SPIj``0PLGJ*`PB5}}IY9k& z;GR=hq8SM|r%YKpr^M?Yx{B<7gD=F?MscCA@fEOhAvQ%3Rn&c`%awZ;|Xx(7CEx-+i51;o7l(7p; zRzZ>s0KUt6MKKp0loyoYrrXf0s{P?d95a+`ZV%h91lTI za3&|LKHdU19NC<*or8Z(D2oVO-UCVhYs4==hY36jk%gdv&moL*5_9nM#r{5q0kjK> zZf>2>?=gYLm<=fW9CNi}-zn2=yxpDF*!yDjt)Y57h-%g3e9s5_6qpr0SNAETg9zeA zMG8qtN%>t@D9qg*b#(gEqJ0#_Gp!+n7}cHCo6$PfI1Jnr_uEg#o1R`vSiX;6>NaS! z;U|Ua5wUa%&`LOV%-(s?^Rcle@e9;l%+OWPk>ws`(}HRuIYmS=Hm*<3D77 zD&9DT%An*$=YLv07{1k)N4g4bQjRH)GvHLOkqfYYh{GF!Ek13QYV$evW-#+*s}(C? zbSg}INB0Jj`isFfQ%V4e%%>ONk)174l+ljU6G|V?+B9CCZ#ZIdJ ztHwoF2~y&6TF_<%LD~cZ5sMb0_3!7Gy9>T0v-`!9^Q1fuK0HUfV;plrDN2OR%&?CS zk$5f>kpU^>la=@f@y{8Vs)=8-5S;$vn9G?dk4Z|QJJl^?;(T+E8uCY=m>HX=nFnP{ z1%Ibsv1Gc5C;TYEm%h=huFrYcR~V*&pmHd7eu)b*TED9?kh4l}fBQfd9UVPjHV4``F4JV54R~WFUxL>CJWsq=ZY}bC z-XySqUDB~R(^%KyGHgDFC%QP8CRN1l7=u$rBR?j6Hub!wSEC)u;{W>KDWlY3oO#31sceiuX_a5lMo0rgQF#cJyH*ve=s%*^`Q zwNET7pImjqilQKOmS~c|6(phW^8SUD=@_;AB%K(@-gIu#eWlg0#3(v6LZm7m(Za-z zPsq@eA=_WjyZ&7f8sgNhIr@O$s@CsZ&#Xp6)65s`7@2J;tHN$R3etGaW?Bz7^ere7 zKBQkP^iT#!Sp}OgbuBE%T{K1LJdKJp=VuKw9e<0w=+L6A+A&=2pNW>9{ncQ6{E^-3 zX=AJV)fM9KeA2}4_dQE=?4o7m`@*Ss)DPNbw@urpqesxiIQvGo%mJDs>r~Dnzdr}A zWp>h;V&~Vh-m;qa(sFUT?V9g`F10KM1pL6_-DJ5R!WmXC<5Tu>Dm{jkE$!)#FzJbL z`DZV8m0ptK|3X`F53mt_&;E5SYmbWKhHFVl2-=-@gVjm>lm@ZJqsz}-y~rQs!c$L& z)-88toiISR7a-?v4GAhFcX;l{C+NKpcO8g# ztIh2H>}|zkEiV$Xz5Gmq0A<>DLMZx@5pnIaHJ7$3JQnRj)mbIIMpt`8t3STYR=;n} zVH0=Osk%DwAa7~Kzz+RpY5$;)=M8juU<%x9A$DW0P7w-u^FEw?+)vXb`R zhkd$EnLdopMY+qiFeUYsHY{Y}<8s@+(uzRZk z75OZyo~=}(-$HlnJ{ol-?DVv2SY#0T{2;w8H@mW6k!`)$SGe2`myvKfCF^$eIiZsh z=Bz2|;rAm&awb-9q@u64M5=zy(P2$WLm%3xG}jp1=BI{7YlEy`yoGvNWw@UmI`|MG zX2efRvNP}2By$y|Z{3}qIDP2ED-mhXx7S?G;h!id&LO`7DYvngf~>n%O_@0Dm1m8A zAto;Pe(B@c*KE!{zGaluay&V{@YRWq86;gycvhd3r$3ChA8|8|d?jmo?Ph5wluiio(l3jYm}b=oZ^I-N3P z{gC3NTuPQWRVmwh$IVIV2MMFP#3YnvM50_`7la2!ip0#u+Gb(Lx#pUEG8^Z?TV*Bd zMnh!g?!J6hNscMJ+n(`{r)sh8ll-~$pG){T)DlVGzjd_5uewOOa!g}5kHmC|6#V!y zYRS>VJY#4IA5nbvz20K1vs=Qu=6Y27@P)T?vcQHmSMiJ1LciTFExY!Ioi>$G# zFUC0;cPx&D9N9+Cm6k^3So~<6nlO6!vbORNRKrNfzv>!EHqRB~^vCNsgxFt$sdjX4 zYkuaCd2Ok~#BZ-v{(U3)Yu^pJA(l=E!7+lI7hEiTMi@hz{dH`T^%OurXuf=Zg@lfP zH))*bUkOkuz-VWZdT6&m4(OQ=|A`D8o+#B}v;!Le^%Wpl3D-2oA7YR*#Lp=&1cCsB znDqg~;Uz@0xc=71P%AEq>+Whi&?(ZIedK(lcW(p^=e&Yie@YhQ& z0pO4tj5b`1iuS6*!Ga5pgx$xO3jbHIOaaI%4m$u!L>O)H-aTiyqRc9Q7Nbfg3F!e} zC*KpY-mz<8(^=oRYFYRyJkJ5qT=zfI!H@tStI^X|-)ueo1l`UndUsKFn1jY%biekA z0Uxu9BLiXUl(>*B<47=>B4E$-5Mw&DHU>Pt|35^_jSWzo9Nk}{;Xkwlt-4;O>U%Xk zs(ty-ap=6{!g6NZ;^Z%bgpo6aUcqS5VJCmpRliyo{$JG-YXkt=Pn>7^?n!;A>y5HfEjft-c<1u#BCd~`xi7e;*vIKoYj{#S?o$Mo>f z@|`xI<=X>BG`(rd1bV2iz*YOK0ImlbLecRm8U5(tU4hJRG0&&&sGN)>_e=qgw~!yp zIc@q|`r2D&752EbFNvaV*mOQ@y|&Idm%G$ms!iwn>~NDtAHf--%A@Yo*Q|=!E!S`V z=2YM`>q5MCmZ3)8)e!f)F9v&OGCA9yw&T=qmV!eDZi;x~9=>%Z-KHqoT}W zJ0zD{H#qML`Eyy#&i72`wAUyLkTR4WF7`#6@Kf2`CX&XM?{6Nn%z#Y^o3Sb|5 zu&vhKF_<1;6&~smp4KqPinbrJpmelNw8$)T+cE1e$sc+)^}>7TWYhL!mgF03zCZDi zKZb_h;>?`QkEW}gT9}&jhQ0pf`Uvv@@byCxPWq#6tzAd){&8XSQFMEp+O+E4;FQCf zL;Z+yxB60k?=SjE-n&-+XYbw$pqe>n#rhPRo(=nifA%!-j7)$T?KH1Wowiy-?e>w@ z)B)8?gihZocQ;tQ$1gk_MbD>ON$&!dSN$J-ej-fn76%i>=g;x#kQK9w_zKZ%UR!Rt zXQ<52ti2Gq{j?aKwj#zb{=`aaW*=dJR$~%4t~7)H%$d?uvxj~kbazyM7?^% zo299-p}TgK)T@*eSyoNr_T2F#%Le1^UDF>a$(v89RbspCAE{v;5>?kf!QL)3DJuJu>bt9{1s@iXZCE&<`wl-hKWj{So4(g$d(+-OXUWqku+2Je+E6IUT|Gz}nHj6-7S$k%QZtJbO@Cb_IdA9R z%ev<}v0+du7|L05R6=g=Zg4a66dkig5zf18=_fn@CHGfCx@R67OrlXG#5le z+V>TXQ%7I(SBh}YOyTY6btr68Uqs~%X_yyiYhHM7gr=D1xz;aZhm2mnOYCGP+H6oPOM|8_~S;8l2a8TgQ(HPM8|?xVWBu z+I^~^g~ZsNYv_?b9uDkcEh)5+vQd~99Jig8{n~e1PGIE;O3`RA5FuFz-0Y*ygGO%l zq25=qiMA9U+HeeG#pWk+ZgO_u;p6E`y7)-HboQF0zK;7&Lv(gMH1+M}rBiN8qDgB6 zj3^`!$=7;d3IVAF>Cfk43+6^&4B0E>I6DI&b*@WFb zWWk}VzZ%9HgMT#)kjR6v)Bruz6$qXgLvYS0M%VO5g7?7+U^dvD8#1s9ueHPk(!BVO zNYKF#ybcGtB?IdKV_m4u4I$ut)xk9I1p0)R4yknQ%;X4xiPlP&6Kl4V$7CS-bpc*& z`NY5xS}4sUJ{;LKRbhw^M+;XZ3zqNPVpb#zlrvS;^FR%kM#3=lxHmS%gQJbzG`gE0 z!VNH%&doAxV*|V)4tH`tIiX;+KZGaqSt-rc^S!2umTD4ZS3vk*72`V)%t!+T!z)w} z*?VKSa1aAHoOgr~2xF%J!IFU&fMh>_I0)xXW&e45ID82PK*$izs=cQyIVrpv7^SE$ ziHq5R-_COpfQU_s!Q!v?c~-QCfQTT8@DUy1cw9?f!7sw$CP{RnP6DI~Fk;*d5S-wA1Z!?T#C$4&BYVOSPT?;23ZS+R z_91{6YP<|hoU3joFHyKez8bTs3QK%Z_s_UuQ`C5YS1{u3D3}uvbKcRe2ZW!4LP}A0 z0r1+b;Gqem^6n9bCOU|gdJ7DX86IO^`tR5KH8@w5Tq(KFk|eMJmBYd46!2Kk~9Y8%r#v^6GIUzW-eMTtw}E8~SS`oY(_B>zLIi9&x`FDWtI zVdSzt?%6Ei{YB1#(^Ym z898t+Z>26Xh?T2wGoM97I(4`@p=E7iDOZElWZ7e~7_o=WGwQS62ffnCR;AD#B(5uw zIpk+NKV=9P3@`1&ICxnileM~LSq_anr<#V%4e$>+vK-i6nvO()8H*c7nZC4E^J?kk z=*rZU%^vUcNqM>}I+%PDIi$i5% z^Kr4??k6`DQMauyh3lg-GbttRZ&8s--QpL4ER)0?QQ;!;g$mD58CA#q$-@U(m5|eW z=Lq|&_{qNS?u-wsJ|{AW#mvrKcs0r7xYhWyHJM?pPdt~&|4g^f|J&T@PQbVLMMy}< zXE7}1Rf`G%25&4D>%4t`x!UyL*jHj!raix>A3vb{TI_WHUSoi;&I3HlJ3e$=mP2}> zlH0p+V>E7yZG7lOoh|+&D36Ajxrl>_$zl*yO7NQdL7;bNBDwrR-@CxIJ8k7pJ_^eZbGk~yj?AxF7OnV{QN6!}u{(JD zuFqs$+m4N0Cd6Z&m!;>d`zb%{RIDC0^=X!V&xc3marK+GQk6kT)t8ybnZdhG7TTN_ zgK~|uhvQDCp16tvvL6g^-!(1EGIF|LyKFDK6^fgP9?KJX{KajM^ou+;)GdJ~vasLS zD5V}GpQho%dkNDj=gjD$8jv? zqOUDSk^+m#hPa|l!=Z7+EqFt_NPJQhEFV9eysr*nMa#E}u?>pObn^Qm>~g&vIcCE_ zDjFz)zZqTH9$snCTb$l1+w{Zx45Z7xvs4axvzC7LuIIJ+$|+-Vos&46%8A8I{8bR{ z+8W05UE4SNcCMN!7_Dkh3AzxNAoC1HpYQnAS4BYsV`qoGBavpS*2rA8Y2=Z6hd)N~ zb4&>3pB%DZCOI|oB&wC)g<8;9lupfyc#)QQ1R}#hOfD}%t zbGa+}&d*tAqticnQ^YJ{?>`oa@Tsh|INa9Y7-6K*Me{Z>pCqFtPqxx>*ctp3l1*6d zagF)<))`yF?Q#jPJ;SniB(}!F`^&yUVtyKOOKxV(al@g#;h@8^(y)^~?%0-hGOF^o ztoVoR)$JPH>XEyr%K4mOzF;GXafh%mQrg3OGJbW@_uC}j%!gKE8ty)KWA^{@*(N35 zZ2df3d)g!?>3mxe-SCZ(p`3J&0&jKddyhB$;oo|~+a#0oa#cZSVtfjD+Hv=tfVe9jh5kMRH?+(vv5KK~*7DD_V$M=5> zCIrBp;6NDl-)5mfuy?7b@##_&^U7duTqY_Xr`ros>*k-NXnBt($P=-)~6y9Z3G`u)OK7x_J;kP6bc@zL`qC$ZK_n)5Cqc2!M64M2-xQ5A_&Sm-iQXq%rwXXK?tEQ*I^2X zD^!nQ$w6?p#`%A#dda_A{!g939{G7Vyocm>4y*yf-wkHN%MeEx%p`az%MhEaNiG~N zpTp&lsrX&FXBw>+O#8jFV+EjvG}_OBY5wkr{{yhr=o|g`3h3UDYrD4>5Wa+=>B5l~ z*%n%!HjWbtV^fE99zVitjPFH_aY@?n29o~)=l>;IVvro0{>M*;p0B~Z{=bz541%h? zD@tVHO9&&|Bm8U~AtE#m;@sQoWG>N9eI-0mj^N(jiqsgv{}!o{!1mK9kB*s{l@+9* zU5~EwO?mNBJVdvXrE+^9rnf|)C;(PDMtHE~&3G|5dKaUtK*yXcFRa$1sQn~5J?!K4{rBaBYjn}y7HQkpyNTiW->xou8F0xWUK0~GG_^+C-ufC@k2$}2 zW+QyKQ?jq3dgdPqx#Ic`_1JdVKzLqa-#LIEDLWXOpk=^$F&fvX@^$rhD;m)btXu-fqh{(m02opEjXx zgO$eCZn(Kq!&u2#6_}iA%t|`P>CGHxRuvm@J!^(m=fsC*vZ18UnaV23XzBS199eUb zQ3oC+)qziCr@D1ti&F*VJ({Pae-QGpb?CW(i&@q@H8L&T3(qnc+cOSH4p!J~l~;|^IUzTNjx54QTcg9ozPMAXnljZLlFX>uv)O^@L{%F_KIP_9p&BtVk zX6N-3?KXi(BGQx=F&tmYY#s2csBEE81i)lT|SkGNJ)kH+2ZA^^g*Ui z7Z=H<7Z^6A$8u&kX6`6v-n<1wFIDh1Q*3h6!^EWzDyxWR%}M1-KM}p+&_+E?s;K=z zRG7+0&cnOH(if#9&x|{y_MyLbEPN<#hM%J#g%LC8=e6)<&}fv=P~uk;e_RJ@)iKK2Ur7B16VBr&CA4ujwfv-BudmX`A9|yT4z1 zB8%M+ZSd8wvp-aZbKzBde2t@Y&plphv-JzU_b&Nn?yGP8)9c82d}R_ItHY@Y=UWJU zE9qC~vz(JvzqYA)e(Ll6eZX_uQiWKe-7Mk@e){ygls_Wtq?FYAqNli`wsH6BnHEH8 z(nHMr=(u<4kP!#;R-2`AxUa&CM^;}&5xR}7GaW=Oq%>biv~VI}EW!9k_cqz0V_H{x z;8YJbltlb_$~DV~wf+49t%b1oTHC&Sm;Si!6pwxeik2rv-t~~ugOGkfD#grWHa;px zgAfO9JkClx*vGrv%jsb!!Hu)qVfP1Q4(Ex^ESgSk++*!!Y)UH_hOEd##q{*KK{ESt z$Fh;}ZQKmuussT9Q^%TJ%l22tuK31<+jCj8oIkCqoA0C9xkY2Y_php*~h*8Tr2H{X3me?Ie;rn*W z-R5%d+mIbRCtgZ^qv4a}Z3bMPEa*?z6vIAi$f&`J=f2{My{KY>GQKa1i}^~emebpJ zH#px6FwbgYuibttBUkuRbtt-Nw388OCf=?lSlaBWhrJ6BEQ)@OQlw#!xp>C?!`I1U z3;SEkPlf!$UO^hueI~-XtH=sP;(gYM%|Lw)|IDjxt+f27h0=F7dpXvWrtNNvw7VLm z%|~uuYm1LdG0g2H>$$2WCci9_UXtxwBxI4&`^H$aSsvH=fc9Av%lUorcU6`S@T%>k zqCBIW*)THvW^HCsu2!yM-0-u{+IF*q{4Dq4d=-@ZY?N{u`vut@Y>z@C(hV!#({Iia zma1442CZmCxbNg(9_s(eg3T}w3g1l(-szK>`d|l~>1P`@kPEjDSK1P}JkAM!iXZB2 zkU$yWYm!FEN@`qjZnMc;z5s@E@SwR&`=_v;KY%377tf^wIarF9q@+s$g zd$Ai*L`AZ@h6!{b=?-81C6gSo-3w%!cqM#akMkdP1xL$oRjC<>bd2>%y$MlcWu!jYc@k7C+qx?`pYYRi({)g zx8h1mFLh7UK<@+U+x>uF?rUeb>VkRE%m}M)ykEQsnb+C^2h}wRB63kQ@hl^9t;? z^|3W*{;6vfyaM@>^4444J$Ax|~4#~-}*_V)F%d_jkiI&M$>)9EtbOyaEucv6ryJV`TMb>bKj`qRs}6i)PkP`9Y^CjEKd$Krfy-q#dw0Lih7;bUmX4iqM=ng5Ll`(k`kjiJ`13vdWw;dK@#d1Ef zx+*2yo!jHIn%7L$w^}gD$o6c%R3A{r!c@}Hbov=CZ}Z_MEmydjp?b((kt=sjTBfLu z0C~evRe4xNhy75=ejBaB0I?J2AZn!+wz!K!b=?P;VfjGeLNKNH^HX~;Fm6oa(FcAB z+k#`rCtx`^!1K}*AY~&leF74Iux|e*|0_yI0`4ww!2g5yc?rkPiQw4zJWXRcv~oBA z-49xQzqX7EN$W@01Z9SuXZ;H${}))-ft-!PQ6j;kj@Wz9bwE5Iu;z3{A^ql8nQ&u& z?;VFt85%q!_sN}!0Pg=MB>%rV$p-~qnpV5)^OCD1!?BocDCivh$GwWozo-mVbmTcD zye0wbxYElC=b4|MBOYK>HYTc*+3nyUrt#oSz6ZHLWM9fk+#CNdlLSZQ;W&5P1v-FB z1aCsdp$2fJARys@et3KfuQ$P-fSh#@o_7Tt_(9GC&>~b1IzbTGIetk0`B}2lf7^`- zv8n#j%I13It4dNAO(p-$Bhow5idlRcFB8CDH2GNAC`32xO(MAXP;jY{1|V zbr2@kd%=;{QuG@{kBJ3ix<5V(RTNH_E0ie44F=x-LhcWPU){m}F>y5B|7PO11ONg4 z-xTq`hcvK2S(`G@#Ntb#$y(*4zGYP!hZUaN?o&9>?E5`f8>0rO^tkUQ@IaXg9XwR! zxtYHnM(2fX1F!$u;J<@q;tw7zpI)oHd6JC29RZ#66zLBKYqp>KW(WPvE3em4Q7*_A zTvF$rUA1fCog6g{so{~lf%lxa$+qRmQqH@oZ7rV2T{&CJNTlT6bw!5lKNWgGF(;wI zIuF-rC@=**H7+#y;k-QgW>p9#{I#dj$e3ZuROd?EXRb+Ti|j?vG3MhT8%0RFK-0Qz z3wXAx=l6>WtFH_%xb+T8GSaqVp@RsPAKnhsJ={}P{!XJ~2iE%^p%MiB>^JWd)$TW~ zUl`6;SFn~&|NQZ1QqS^{+|wrP!g`1eIj@(%&Xlft>WJ=^Lnnz^0M$9}q6bbG{*Lz& zsZ%D80xhA3$DK>I#!XOJf|fH~j#D8{{ff+nlu~Ci38Uz9CvD!ByDz@gZEo2NKgSUD zy^N7XP4Lr+OCyORK4TXRj7d1^C~Yj66q$?m^OzcGtp#5ZCO0bRGHl0S<>bX(d?0(= zSD5k$!p|_8ml;anb${pPQ+A%F*Lh9c)q2iJO#unN$onT@`9zv@{WOnHgo|Aed~nTW zTQPkp5&c&KC*O58r&`)APWMR4oAAj`5Qf%^eiPn^b~oW_HBvpiEl+zcJo_SkLlTb( zGY;hf=ZWyOZmr2(mLcp=M=M#1oC2m$*+dJw9K}feQkwxY5_Dm2d05Fkh|j~`W-ApU zR}ypYyw#q)_Nf#XSBDsDQSXL_;mCf~Cehty=kE%-?386XB^yi6*jkqJvexeJ9%M91 zQc>((zfrim7-ohZtvI!OCU-nepT9eOBoT&Da$yN)(xYu(t@U|3+!;LU|3+u$wlmIuLST$h4cOh&AOBRZtZR4hIL z_A0VW2bf$nVVi32qFF1mpHXNmaN!$<)0yHvA_^e5Sg?cT1?FlBd+f>{mFi}O#;E8L z_Qmxm8$#Cbb#(2@^d<3SPs0>mK&jotwZ@{lS2^nzW^Zm8=?Io04Kl*v5RUyOhU zM4|NCqg7u|hWKs2gvT?ySpS7k)4_#seuSQiioxqp(Rj>E?9NZaBHI*%%wDN+^tuEN zY7sKo7yHhQKaU12)GK`-qz;fi#a`j`J!v&hX@5NxDFi7$+)>vywKmW7qK!Hh!HV5I z9~OwV&R&bAbBEgyME3N+o&C$+WTv>*>QaaECU35*DsnaN-JboNT+2^jG15)mbK{6A z+?v~)!?^kOo7&y4%;88p!!cp&L{b#N>^g5gjf)!3aF{st&N)5mD&18%t7W&WXY;Bj z16~ndD)xG4_2$aX9w_sNM9Gc|i#-nKX=?`~E3$|xyi|zmTHpNeE~Epp$(7GyKc#e) z73pp67LVu8UC^ptqD!7z3QQ15Opz^;ZaTB%9RQ|Vi6)}Rf&_#kF?(*ma}w&JJzVnn ztNU@uyzdVM=7S#+k8Z))shj&o{7co9p zUmW|Z=^4Yn&{g)|89uCL=xD27pG$eict5r_N&c3+{GFwB%WSwG=7`5h1REK~z|u1u zmq0OAQB^8TI=`K&i(Yh@U}>xsf4f1a?Mr56g(l`Z8ymrRemR7RTTovxk#&yM;hw>p z?X=*&BcXQ3Ut0D>S60Q3@M_j8JrgjemHeQsf9Yf1Nd*(^Nu={4SxYS)HW+~-(h&$B#a}5t7&r;)Fg*lUCKR4TfM8w)UWdQ6$ zyn?jK!-y{>h_;i9uVx;AsrK!4}`t?!+ zdK@67QQ~2%k)WXQ)wL?NBaKqi#zd!0Ze557Td&}bOGVpp!e2&H@xyGb;c|DhvE$t6 zuZET`_V)wf9R50}9r@j?ljP`gZ!x>r+M%=fCXIr|k%xQF`$~ zzoXtixG6QgFND?uhbEUD6Ro`)jLz&91}Cx5mCO+cC?cvdYWt(i{&2%7MP#x*X|8S+ zO|-^uk9pE6yR~|T?}<_iB+WMWC(Bp+?{;4|_rS+CqGz=)*n`;+PN@(M<=`R6&KB89 zOT%ZS2j@Y%gScs>_45{S#o@2(81I(Ykhww5PsH=jV`!52{AhWKZN4vjW%uI7LiEgz zP;n^Mkj`c@ey=>X9vm4(uzgh)n{hN@b#;(6p!(1#lr7i8U2@Zz`)+^a=~F~FeLod= zil@|1IsQ+`$Sk!Omso_5o1>h)*bHRpLF@KT>n4oXl#HFVOPiFep{UKRm4WS{;$#}t z+0zR%8T^Y}QjSX69kM-`z$3F%|0LumGoRote_^uXZt5h{WOTUN9}z>ick5Xbl5P@U zSA@|pvrb~x{DRFC+j-3ks>KR0QvL*YxaB;|ny$n?zQ=k(fgv}@syY)|P+*UeHk5_}(0mtl$lFk%I(ZR5B)l3<8(J%i)Pd#$BohmJ7r zO5NPU)DfbVKlmCRZoZ~s@>2qSmSWg$HDiSi2mEz2wyooNOblTej}j;Cg#0tkP4(xh zJ!F?@eJbeuO~o9J&ISDu6^Ky8o_15N%!jb58fq8*Jy|Q^gSYruG}lE3SbMT}NecJg z%|L+VzlE5R1K>O~JJWqQe1-onCmJ1#W&#LkU!#Bb_l#Ho{h0uB2>cuDjiNxGm2#jj zp83}=4+;E2SJVw(150Sqn2bKWL}$4N+~yfA3QGaEH)h8j4K!DLko$0e==~D%oH$Z(v&6Ee29V)Jv-Ykjv7b;QMSiX?{Bq^a(V`Z-+l^xB-7WalZ zmQF#^1cceAw&2)l^nIkQ*jBd(49A4TOIacaCAzWW>Y9 zB@O>7EgwXy%cw4Ij$JIZ`YPtx3Ai??25BsX8FR;Bfusf|#BWgyYXDJ}VVr(B=P9MWjIt#^j67K4^s-X*%JPd$ot3oti) z1&ETp#~cQCi~|J1QB}iWTFm4vu_@qKg|hbWFPIz^l-S-axC1=WcCy@xWQgsJcaD*I zttBr(8xZ#MU8q#iV}ic!Un8o|#-wrXs5=j9{#rKqJoBGI{bT?bwZuVg(F*9y0cx~K z)wkd{a^orR0@&SXpcY(mk>lV}nCa|DVGM08c1!bl9;5Ix3UG)&MBgT(^-eD!ODgx} zwK1*fE*LHJzkqGF0ANG~;1M4KxpeI- zoggT?`=L#Q|E53f<4`lH{X_CZwL%JoZ|4-Fv)|1U}A3@Y}URcr2 zcmMGcrF}KCiBa!dnH>QGnYt(A4Y&}IRxPXB6PG*o;2Of}^jjsk@G?+*5nXYypn#da z7Q$L&;aB!)BFkG+zaj>qTd{@ne$Lb0r|9nJ7i`DJw33ZqJNL&cGls*XxUR?wi>UI0 z+Mn-43>_UZmP{7E%J3CH_EV;9#YJ|B@Lve;pEA=Gp?-Q_KjBEn5_Z@3IM$AX4PNFM zr<$rZ6=w|9Ib~yDuT@mOXt6I`Sor)tf$x~t$}rLU(8lu2UFwTV4J=)xHdvwltWo`R z9dj_Q#C?lJt3vuia;S=s&? zVULRLVbNjaFT}Bh^tvTlSY$X}PH3!Bu=Q8pG8oyCEr0CuIv)R(YiXEM8a#PfGQvD+ zjv5=uGg$lM?{hbpW~EvC-Wl4#fA(i}K4>2%>b6HR!&7GDS29>;|0~yr>Zmm0@l&2w zGi~G2W*&CmmL5@CgTW@b{_Az^)SfhUd7pCIl=QB_=|1e3$^OO2C__d#}C&E6% z%5BkG#!tg7L{E}#P~A8)Qz2b3ZOl(I-l6km6*lj4P&Y)6F$Z;-e`c9e^azdshq;?9v| z=n`fxZ0SDcAN4Qkkc$r;TupxRn&dZmU$6qcDk%7c=)SNBE^OJ=sMuIeWdPLwvtVoi zMHQ7&4AV~2@%+q#OOId+TiX+Jci5Y%H3z)?9uS>)e>NDzFKZc<6*Hl7v|G%gr7j6* z%FvX}nvma0tCydQe(Z~s;HTF(!xh0**0D3AqfAj-&TBsxTJJV3Vdp>JVIP-VZ!xA= z{c+4xhuRad@(qCv;l-T=sYec&Sl2fyjI!a%;z*xwQTXa_fjC^1-ckK6fA~ z6K~P~e7~xHLcGh$+cCY&ypWsH_{u-J(rZF~WVA5$GVRMwsI*YxZE{Di9Z#FbB7I9z zlj9_Za2407CqsH_DZaz7V0ym60w0gy3cNscKcAfB!|js0QA2>w(G5IDJaz85#f08W z*Uon!+u~qY2FEvMv64~m7V$g7oBIxqCDuC;`MIgJ)k+lhs@1gSQbdRLV&BtiJg1d) z@sDk4$V=nQM$-cEM}_63hej0lhphb9XLDaXwLkF~5^!UvSh{uy4wAt{@$yo+l{Nh2 zF-^@FTjXexoW~0_#KI9wUzk|wHW$*{@@~L*?rNPjSmC)o_Z0MkigQdW z7gIEncOlIxIv#HySX~#)UdIW5s+;_oup@Cy%8-dZbE8uigxBHzH?vx~k%qaIwcycS z)18BbphA&={sTE&s`hG6r&ns(q&%+sXHEBq@Cft|soESLR7XhiDUYDf6>P}!YTHR-N7G*QOXf`{UtD(9|k9dMy9UnF5GR}Wk7+`7f- zMDWg7c_9*WwwelBCBy<#GfD+rF~?0@3dRV{Ivy1akct>ts=`J+w8VS$${!UJ$jzJm ze7M8IvCuO4M%y9TF>%4Ib1;XW@;1#XNoIJ_!{4B!vv*>qp?L5oj}mCtnxe%!z2W@N zQz1c!^8Kwo2d7R;&yQ&aCwj1QeD!z{#I@#**r(@>zk?|B_XhM_c$_}EP20P%zWHe( z++cAyyVNd+(eTJmafbbYhDDk7U8hz}&5Un+cchb*a^=2>y=Z?yvse1PA6~oPisq#6 z$E*}pA%~MRPq`i2$~y+*{Kh*igsrDsKP%QXW?*7fZq=pvKY=6rWV&21mvK=eY|_~o zPAf;>%roUf__Q9s=zwR*?*04~XfQW9;LMGMsq1D>Xb{k6l$Q;yR+8;Tagm!GRY zC2F+?il6qYe`)#2Q@5Lc-={OPU>})-;cXx0{wKwF^!w7yUZ6~+zJ>>+FFF67hS0pj z%&kTnqJ3VwPB+^3Y$saa(8bMx>UIQa!gyt}l{_idYOBd3&Co2#vGBMUwPOZ zIVsdP;)Hd#1^ObjQUv+0x&>a=-I@_uB8Et$FAH5FaJ_ zB(y0&h}Y$eyOP%^BbRhn@w`FM)%3f^M#9Rm3n1Xr*_m(O7zC_7Dtx@anEtkuXtco{Ew8tScamYcIc`z=OZ=PS%q)fw6#FZ-j6LGsJMilxqXi-2EQ zub3K_y93mvi)NO@$<vn@GGwG8{j8sMqY?FcPU1WmY#MFrsrxG2Ji(l zW0&UW9KP$DtFfRJ0ER!t{-yjhp62GKVxi*n0GdjJcd{~p&?~Vp={*#h0>@ne6i8}m zyE}&et@YWu*b_kZN7^~Sz$1G7Ht_`f!JuE`00t(lC$?hiz7ebbyC+z$OpR45ROd_F z2mY|;_*5odfL%$mQIHXW6AA!EorzZ297(MQz<@^pEYlx#8;OFfbu0tB9OUL1z`tb} zX$ShQ#N_D+FOXt{fd>fyVqYxeUC65#DO#7uIGXQiUyFx5lg{FoB3xT}MHEKjjD?AU zTu9t@_#qk4`VZcy{9C2Xa6k-vm=wXa1ZZpnjB!5>ftcs$9f9YSJ^8JvYr-nE_kg2O z&FG(avAKQ|#3oZEU@Pi=x1`p73oPs0w|MlG5clTVm@&3`S1c5VYZ&~WjfMvRzzu;z zMjAk&J3j+3cYcxzghn{tQ5&en2OC(EW$iFv22n=7UDUa&-kvN?!hQ?iV_1)rtFNw# zhPKeR&>yP2ee9~t^I2K(;xn${C91o7i!1~o>P>NTw143sTRGJ_=PGg2TGLgj>}mKB zBvEC0dG>gI;6(poG|dY|nJ#(f+g2u2KbXwm(2*JDUT`9$;y`RSFu$Rbb@2+crrUr_ z+lfuQ7>Dszk2;r_841W7{Vwibtq+N;D1VvC1Fnb293aUC_^=F}^>U9RmVfm*1fXiT z&+$E+JR7TMwjv$o?!43zGSbVz*JD{dQQbB@Q-(Y;^!0n~g08w9+oLqtk>4r=nsZ%; z5l`^Lv6~O(?TN`98%q{FQo2wEr6lpQB0gmYR!A3?4P^um3g;0!|Z@>gF=`?Y-|(Tyr4@k-GCRXUOHU>)gp+2?*-rItE|PqNX)_3n-^I?RM= z(NAypde@B{UWn}vKpQTU)lr1h<>c{rI>Vg)@juMId8u@TwGR)ekya3d8?vPwWT#ks z{>Jpe^2znFmrQQH_LF15C>kCd8G)VYrQuCz@wSwf0>W0Y-OAiuIrr;ag`SddO5TPg zaU)&j^pJMyoN3SRF#Cl$n|;T0!q_b+6Vz4J@RHu6&@yP!monK7aYlXq%G*WV+JjL#@yILnJL{%ojsZeeIsxzf!oH1_kA<4!0+S)I8o%ju(00R?7K0NTr7! z>Ro2^G1+z)8OV2$pvSqzjnvu*jsDN!EnNx#ScA;yv3h2HhDTxKBNU>kumtb zG7f|!OXR5E9%I$Ni>y**1%+RDkDAUlnq^B*4{1L4+Wc6(d0}^(=s#qF)VCe-Ii;C z)VH=aK$T>QxJ_I*ZiD3p!*b1cki%JXmHRPg+^0&cIm&8-Pdb$bYzoqKL&%=3nGMmY?W{wf4@BB)g}j5_5%I4fj=i?LtuJesJk`8xo5|RXq!Lwh4l~U(_+ns z-Iilm?KgXCjbxJqxdjs0KEyv1h99ek9ET++`QhH*Z-8anU$yw4!z&}Za9m| zC3T#@(&wXFt%Rq9m%=*qZ*fulw&Wd>633If+{c?e{Tk@9=1}nX&b30e-4_KqnUXE})!f(4qexcnT3b*zc4;$lY%tzU9(i7b zQOR-9oyx8ag+SS(MyD%*1FVAZEv(xq8AYU!1mW#ib%FUJ@TMv-cDRCwFj(C~S z^*LyC+vPy+#=hC8VfqmwDj<&hdgSdQ8mM0X!DHk! zy^`*zh4gRqzeQeBx05q5?##H4akGq9J$e9mM~bKPW88#gm1$o_iT-6QRS&-Z-p1!o zhC}6p<<#}5W`0QDgxREB2=(*H+VO~s_8tn>r%4K5Kh(CqbYyr8Tkhzmi0>?3^}3{Uq4*D9Hb0m;ZxPGv84w+!@bY0$|`u z9asimoGkz;L6jRXjsYMaqf-ZW4jrgX8qfu--UKS5to{bWJC9I6=U-OF0+b$s0=XApMoJy4+kS$k7L74F@V3p7RAUWb6h2@7m%N~2J`{Y3Y z<9oug&#L^rK^Fn)Sou=#d(oh+rU3$Ssgn*U`kHeMto_?eG&3)p2JBD(a(&>mV=DLt zmGe{!61m`36p$yUzw^I??r2`?jHct#|5wai-De7j>HV*m`?vo$=02uA48BmWM=4l- zPGkB56y5azKQ25noGKLY39Y1IeD|dDw0;$pisIgljsY7v^ zbx^4dfYj@3i6B-fcJ%Qo;mbGfs=;5^A5gw?eeABvESZcZ<-bqRncwK`!g3jart!dp zTKg4ndg-ko>6^#$tZ@uw-gyJjbEos!Oh&P*q z&-T<$o83~Tt-~QT#~Jg5yui_MM^}-ldA{}@iG!L>3WKdEf7_J(Mw;e=_T%jX*pyrA zK=G)@_lu(Vl3!UpHc!WO6c6=;*JX~@<1i*K3e4S?>ncp=ceV@Z4JladmTHrqTD^wt zHrelX7SojK%rof~t)HvU*?*S653<{Ux3L9<{NhJ!w-vg#_=~y)%@zlcIBM-L`uX6e z6HV45%8QMRCpbC&$OJ|OZP{{c&Yn}No21B1AEZKb?8H8&oY(uEm%s#u7!kDE^Op6t z>62sqgA{n|_uZqg@o7WU;JDt78W5Pb}-!(=$ILaI;$_iN!Q|Kk@x>HZ* zp04!<%<`3qn9s|e1fJ6v$-w;!P>eh2%65~KUiJ4iNM(ncE=%-d%G`}2DH4VkFR59` zPsdgR5%aY#d;^20uQY?U5^e=9TUSx1GLRQ~rIpj(D+Q(515TRZS^Rx(N-@N9o2N(I zOPJr2+C+@#fBfX;T=MQuisf9WM@~YW8Aa%nCW8idlvi*DWAIM2n4Hodvv^l~yEO+& zY6!Uz>WN4MoDp^%$;`^Pdg@AO)0BZ7CzxVgS#H0-VNp~EuI@3XEH7%AJ1q_u7segL zJ`M6M{HA=$M{lE2W}tTZYPzm@$b8@xhLC-re4T7+)QEe2Y&wH_Xp3zHp0lunJ-1s@ zJqi_Mb0I+5V@WEAd1F)#N6d%o*m`EH8o(fvuC5h6!C^Ms-Lq+2x=Z@=AeuQ=Ny);+ z$3}@27teY9@8lhPZ0;Ld{pkF5U}G8NO**QAZlwWy`rViI-VUdT>vF$1%THnsr)L?k z=8W(#{10zi+txmwKq>g}7QG!{=iHTpp-?_fT1T(Rqnv=L0S`6`j!?s~{S|tOfw_LI zt|9H+kM(db<$T!c^mLj?tKHaA!XSiwC;n|8awA?wOE90@Qd#U~Z%SJZ>s5A#;E??v zZ?N@9T!m7U%#eRtOukQ=i@iicNUYuE3w(!p;ZLgscb}}avF;@bo^LQ)@a0mmC*tzy z4;JqY+9o2Xa_NhO_X>pP+jd%W@oIdon_!AQr_~0VOTJ>Kbn!CYi#K#)*i~)K`~B6& z+)^U*URY%EbI%{mZlvQLq=8SMvY)@`lpg!jukN1OW*lyB9ZUkN!kIRe!hUfFMM0EC z4xd|sEW%hnW-8VHk(xP@j$ye|j1u$M7wxPLD>ZiJKX*6ct1-FH6f57pOJP_0<3p_L zmHcf*qK-@>tSB{#Erno8G~cPv31g^GX~74%ifr0Xs7Q4vt1;jb{b`x(0-x1#^s&&p zzNKfHs9c=o^c!9Xid)Dvt?PUlZtL4h2Y4Qt1}mWyZ7MwU??FRLZVS%E_A}pFSK>`C z|8BpzGkP?z*l7_;$_p2HR3LiUlYqVwB55MDwphP>D2C_q!A?}+q6h&$yNj)aW<6u? zBKN@EWLx%1ywR~~n|xnQI;%#-o`7Fto3om$-IeTis3SfP{uV^Ww+(#Pt2NaP2>$Kj&qlUDxzpKpo#s;s0Hre}47soE|t z<`O7^R!y!8j;W1|DOrY7YWW-!%|kLnk^A4C=#(>9*4MXgQh2#(sIC3%)5-u0mm_6Dz@&=74Srd>OSy=iT+`G|F3)MEEn0ks&FAKB;OGt1OW58pD% z;#|6Dn@D|qFg#1#2abJmaxmdH{#H=|QXN_}eU23ci6el?Qn0ZF3CTWZFV;zNGFo*54N7cWY?*MMBn~kbn^YM5#!D-zi)EcH!5;C*n-$> zttb(YWqWRnUW!ulM-M+8Kil&PWEe`t}@wWlDDPH?G zc8|5&w_QBd0_P@D85|FBd9CAT^BdOJln7vXyW_V}PPV0P4K{0jfJyflq^^gxY@TgJ ze*CN#9K|;0{OU{&Ry%sgfqQJ!;(*8raXYL(nyYeH-V9l@KO`g8DkAe;$Y`8hpZYfE zF=a9Pw2g;pxAYj38BVq9-*gvmQv-82@+q5L2P)N2=l?i0y%nQg{yFPdmmS2-OP{U1a-(s=`X+u@H~ zHs<>O2e9?z0I^gwO@Flw=oT_gRaos9cHprX2~8%l_UCh=AeG$m*J367@su5=zU_ck zYw^?A>hkxdEQHKYwUn+GiDZpEt54JdII)IfisTE-QJB@&E|%N}=}ol;W(K*TZ8vGGObZ!iG`Acv!W zY&?m;69e^=0JA7+^giK^V;>mm0mRJir0#U?7|;%dj+p!J+<*hV?Fj2G16X3j=}|SvOz_TC@omQk4`her)%p#jt#RT8KU9^~a#xJD2c55dnYc@R zPQ`ciPN5D5Nok0*7%bIl7VtTKq;_jzSXnvqL%1i~+rIRMl2oPL+JZob=h8nig1z~v zAEZ9b4OLcr851r`25)TFyO8+gtTElP>XRNmr!1|seBs~{)UwiO<}mfs5OAH*^!wGw z_X4uD$a^rOVDOoFSqLs0eg3w0e0VgG^owvv)I07xZq|787{wRh_;>e2&4Mz4aS6FEEUbdkc%^7d;+%&?D2ksorDYiYg-qk8Nd&r?{bUFot*rEobkO7QqhKszCIG;bI`wK6&42 z6?@BXZEG|dUvt~i$m?3!;&u0h8N%%)D`QuplXn^;hW@IL@%`ht)Pda#zG@QTwDr9h zv#Hz7L4_YgZ3n{bZ$&xQLoWifcrUKuqwJ@Ubjp0p!D+Bq%wu`m5ipV=W)A&FOGs{R z1SDL5&5Z#h`Fi02;Jk=FB%^Le5%qmD4aHdmq-jl!(YtBdX#l=~HA^~Fh17M;{@j2V zFwrBnL=MLh_a$4sa~$xS#3Qx#e22 z+JU*Vd{d}kQIFj;B2GZ~iJGt^KFnflB>J7nC)MaT@1L~ChMNb}zn~K`_HDuHv7*Ec z%YAxm>}K`(M&)epEjIdRGlS5b;*q&Lb4q$CM!P7M=v*MAGvW|6@>BQOeTf^XV8+`{ z15x93Thyl!A;$i>1fS2gu#N}iK|DRSriGY9=wVd>cx^-}jEobb zMEMJ5B?>9qyt`Pm=#iUCJuZrhYvG+SY?|S}4pDqU!JxI*9~2(9`Sc$1+C~L>NVPE) z1IcD&TuSEbGGl*4+)yu%z(cvf-=;oZsvoOV*Pi7OKatEM%vZc$pukAREM2m`LGkE& z+@fZ;+}sxM(s7o*uSf2!GOC10Pp3&4hg~_5<6eAJoa08vUDItLhE3CY9;vypv1Quc z#Uf9rUBXAMZ?8ME#Z9HNINw`V#$#gBy(Wy&e6jP4H6i5V+J^Tt1}t!BT(;s6Ah1;J z6dM_5mv*P6!Ik%Q{LzOrR^xlB1Ps&2py5Rl(VC7r7H(xcnF2Z1q(`Cq7?S(aIj??v zcue0X%J`oCVGZ%lGvYsALgO6w-=(D$Fe{IV0$ZK~f5BEeo#-fq>ikZ(`zMl-l3{rc zg_b!N?Ps0rSZXzk7&DwCJNBJPmLg+ZaPL=XXQ!<9IngF-8|u#(rc1)& zYKQ+1l+G&)43*#nr)uB(@1)bHtKG-XycORXfp5To93%l z5YNsJC>Vjm14*(kI%7xP6+b>*KrTtG$2k;p%H5u2cCk^=&vNz!_Zjoj#Z7PMuKzN> zJ^;o{2&KM=IVXFCiYsE#4@fIWzd;TItB~-H-`Yw?qu9QhSkzO*vN{d4ge^jKCub+X zg2UP7mrVaoTxHD@Ftb;sl)>Z^g_~cdUpqIzBBxs%VbrUTh{t{CR0oe)eQkwHc2{z9oTNe%eIBx`9h_dzyyDpIW{J$rxW@rlb5L`%ER7 z@NImFkwDOsd=h!1mXFj+ES*AkS4l;>_kH8{zD%MtG|kUU-?FwEE1EAK{S;je8eez) z#q{`{=Fh^B3l_N%e&4%!{<~5-Ev%#UWy~XEwqn5(Y5*Z!E7M0cmj3**0mY)nZ1EDv z^gJ&=S>hmh?f>?9yqC-R`qv%)6XU#y4kvkkm;S5Uf`{!l%J-=4pJUyq9FE0{^<3V) z40|rq;rPn``O-iF9ZMItAv3qa7+6^?osI)E6dNHoV%@4~nP~p1SWv+T-NY5GiEi;b z_01DRe`Zaf<3Oqi>mvP*A%n4YiL5^ID}f39ta|N<@h33P1ijcNzwx_-*cF`p+3~Jxu@oizDt6uuGy<*!#;-V}nCm zGyQc3vrRxt-3He!_j&BC_*d3DYR>rE+XvLCRI_Kg7xC{Tn>>$JyLf&j4Mo*{^|{*O z{LOlVd?nydHa&3u*!uCXYav|r{TzY`y63r7I32474Poh_{ll|#%@t|pADFju=lQn- zW^4)3hK?NX0u3!jpE~);5b#Z5YMBf<^Rf@oTV43D*}T~I8*8S5_O)4SzwCSZXJR;q zoBgpLJPWWaEam3PhoG$2Uz`%n6~8L42XfWWV#rPEorovv#RlZ&{!r9^uSiy0 z5qd>L8AktmMQ(@PpP(I!ktFjfb90ixr1{}g$pPU#toRy*tg|OE$@i?Z7wM|%BiI9m zW&J6kG+G7eV8{k|nXZa-neJ%&)zntdKH=X#k9|Vb{ZsV{EIb;|kiw+vpWMvCMmx_Pg(n(K!OIA<)-f(RmoK%d4K_8~~>~Y2YT}3&r7C7x+*|BKZfj;r( zuk@JZECH3qW8i<-n4;sajrmajZDXIN>O7F}cqrNz?05AP6NNiHDQV3JU0*a8xD*nH&06n3MizJnT1tj-0tzCJIze^Py3cy%ri?1x(9xF7k_Qj4+e5k!xydqIM# z=0*HcFsxP_)DQ#X2^tgPguZ$>DGBn3hLz#vd#r(WbD=_gW>a6rT8^Q(s_?}PkgdeF zh^L|fu?xPJA~$0jeqgbRnmZ#x^aP4f^%kSj_-=Z@0I|NGkG}@mSAz#`fY`EK?^9`f zGbN3N)qWk5<%E(j$w!z{y@u#Lm8b49lUIeCp`}W06L~5!g?W7ywxneA!-gdH) zwZUUnoX`YD`6$y2^Z+vX%q}x#Rk+Ir$Uf`rk#GS4O?F3q{dV@(-^CZkGP`H3HzC9FX7iPLd3t{>;)&PQH z5>MiEw<=MMQ^_xPn+fJXJ^IYTvd;X33y8wJGKCAC%ZvRq6U>F;_nOIPozdVFyq0dt zfBuD=Z^h21iB@ttJ zFzieMG}&wRHfZdHCtRDc0MiR@soMO2s)jdAFF?3}CVr~(;|WtgMfb#O$o9kh^JAze zV}Yobq7|e47noh3>5FKXYrvSWu%!WUoGjHii9Ce~XCz|@Wtg=T)i|y^#X87OP0{QG zdZ60OOf`<*T_#UeBM|?#`y)1EiAb2WJk>ac{Pa&V_je%MXxQ1eF@z^Pim^bz3r?y! zM+n)5nCi#E?4IP?nsAn?YBCVlka{U{FdAY(X34wDB&ljh;w!>odtXhb=peH%PfwtR*|lU;+z-0X-auw?d%M zdwBWtYakjmc>M+lBfFM^iW|H8j1EHnFdwa1t{VJe0~DC;DvM+37Pb>^>P`!Jk_vA` zV?wIJl{Y{p3XdC}QgLH;?@3T`6U%#an_b9)TF?OR=VNd}c^R2WyK!DY$T9OVj-eQ; z@OLNBRaL>q5P@giIA~Br@*yiAtZeA(4UmucwknRLQrL?K)8JTG#FsIVBd8OjCH@Jt zE!&l!%H?qwxiVD^e*8gDCr@rsHlroS3A9Q!Wu5{efYZIFghnlY*=dF+3%ZSlMFfwj zdBQ!3xx<9%_aZkhx<969Xg&y=O%g_sZKFKl1dNvGI5J38kQ5?7*d2jhUut>$-)8hV zP>epa9*OPF=Za6mllWF8p5b zPF2DCf!1(u$S2Rva29iE;JV{C~&L~ z?LrpVVabYAF8uLS;V?yM5Dcw$$k_T3lt>lsv;iW@a>b@{c@vf_LFMu=KI2PgnY3D* zD*VX?NLFH7&J*5;J}x?ehN^m_dtrwO1PNOb#%F}V(!xxY^TTIxj}dCvn-V7PKYxnW zC1Avfon^@nkdXT>MVk;T_)uZWV5J%u|~R)dqivmN7ftxmQezv@~I}A7>s!OZ&uKb`VuRj z?FfpN7s|%c%G135cK7B2V?t$q3WEC8wffmlo`XAw?Cdp>X zU&f|96>Ft_Hqb)^2;|pE_aFRyDs20dB!Hl0G{g@ifA2Ixc)x?n3*M*Ne4pws42o!2 z+Jk&2+wlAJXbj^<2Jn|I%<-gapi#p6#_y@Papl(&-(jh}{3qyPiU5KK4dVeWC%QTF zg76apI{tsDIP_(VOZcy>fnKwrZ)4avmYm(@5FI|}aKA&a%8`%>6MF7FYxQO}B5A1u*EG4(yJ>fjWHI!cPP1QMkhyZT)84aZA zf&6+3JL8VnbBg6fOuy?dNiS4N~l@I*Re)RtS<%>9@IrmaZZFB4w{y<{-A>SQ&ARV zeQC}KTez3+BtkC2G$f23s)FePk3`QJcb{`B7h3DX1vPW{IwmiSctETnN5zdLzwXWD zt(J!KUtI@P1#uuv=ob$SB>8E+&l-p<8!FOg=79F=DS|Ie&(S~yf4y{JiSMb4l2T2h zW2E1oB0xarvv?}p9)7gUfz}$xqGt&C*F8DNbj*R$B&rEReqCSo9zq>G$?jtpxG>`) ze&B5C8mlDeHU_rvB;SdW{T??3TJ|bh_WvU5%>$u|{{HbI$zGQ1OB*A_Ob8i!B*tDz zb`!G4WZx6AD-$=eWs5=*vV|-YMha!8&`7rIyZN1&@jTD>^ZEVf?Y#GM=G=Q;uX|@W zu>v7Dvv?b3p@eE)EtXH{5@iJK6C57+WKL0Jw?7wsy|y`AjvxSVyS;q0+;b$sfifzuk0)kX{$a%G zHlqpIki!(BTXkl}2cHfjJXnUNvsO`zc1qFZ46QG&3#=fq8F9FgIGZmZ?ZaB#O=v<6 zg!zoNc+>+d6kv8&eDT`)eu_sWBPQn55z|SyI>tQ7f6$ITo^cs6&RSJP5`x$mLAnKr{~W65_&#`C{>%W^}(yb2$z*i1u1zzYu;Jg5E;J!#K4a%&17=PoWvx_BI;$V~qw zQ|GymwkKsPHG!3j*ftlJ4;hAP+DE8{OnEQi0%-qBngFR^tm(h0w&V)|Kn^3J?|BpOT%>Sux1g;X7qenCgv(Hf-o{u~I99^X5@M7;6 z>Doj!w0;JUkj{FbM!G5-mpYqJ2tLs3XDD?HC%|!iV3*swAY(v^rtGhzO@KJEq`m|l zA#L`DU3S3sF{D3qg4~w)DTL>Ljn(K6(S$u$BZUrS@I@)W;>raNle(Zh9P~&oUlH3j z&rDD5@cKd)9wA2RDm^7JaZwb=^9?Jsjv`&Hitard0mZ|JHxbFzO5}ZkY8XxwQF<;G#{R zCFQC;a1qNx@;JttEN907i<870RDchc%ST`rLU47lHeNyr4&X{{Cw^#!KKlAF7y<{n z`GlqstwM8k#2&~!tVdRoGsKsvHP?mkiLaL(Ov(Ta)DNx#ymOaG2Ro8+`Ekl{`BCgb zeA9?V;ixjAHVO9zObW@hAbV2fa|R4J;_=7g>Y{9pCgG$aDSjCa{DO-X-mKEdu?jf0 z13T-*Y^g7J8mloCghN_2oOIYDr@?s;2V5whS0BRr!-QQVISEh&N!yk-&r9%N9IPeM z`00bdPB8u`TtJA8##7uI22xJG*deupF|kX~ zGd2dq+w`ozu#R_N$#c(;tc6u@g2cPI3D9Yn0(-(1Yb&3YfDvP!`w!VeD;yvaPo!M_ z5iQ&#!ZHV1nnL7(`IakBGxQImxDgHO`OuYlm;jDn>x6DR;JR5pn><*#N zgXv$f57`m`DQ-z(P_$tAwzU`ZDS|ry()i^^J?MXspaC91Ix0H6kk(bq(><`g4A!a> zUr0OXyXhnx=L{Cd4_SYhr!?r6G`RZYQ$l?Q<^BMdsx*>0b7P+}Mg74evUOpUO;2T; zbv!sblB`8NFH)?*0WxlQiP!2DP+#2a;_Ic+ntbDaDF5<7$zs@y2wa~EqTmVc0a$mm znSt0Ea2*?N0_~8;w#jWCLMZ@GVJsLtzz0qW7zwt%P$wNGC;0*n*{M^8P6~^bpR{%=qvY}>ux*2v`CsUpHy zO?C{2FMb`QHGBmA8cc&r8ie)=>5&~44snPEjdZbz9|U*a&S~_pwZCB93=0#$iIc4E z1ZI@14n7`0-2~jzxeT}Pl}nN$9Y#rlnqAm1cyWC{$)hXqJlA*|SCAHmmRl40P8MYP z8SMqy>@6DN04B^U#U`Hn5O_WSQLK-jx3zw!_WKwE{anHO^0?SzQIF@ob$_v77Ke_Q zNro4PeMla-e*W2D=Uf04tsjh94I4P`d~^Tde7{&p;()eG*v`@5f>Z4DzdfqC&k?2Y zTKi0GDc!24WDB0xYuZSpbf}+GIv$;CQw1X(7?rQn@9m4Z(quf6j)Xtu9NuLgsP3sx5P%OG&_O9q->aB(dV&Br= z<-gx;{TJ66&J8LR1A7yT|H}H`=XPKq4V~xjc zg44YL^UJA|mYVbVO;<_l@1OrMx$tGiz4(5$;ajw$dlkp!PdQB8H4V-(*(&Zk3GMM+ zxr1WwB{tHZ=W=gVPRtp7%*UnN)Ej>>++V)_uKGn^OML3E8$)b&L~E}cgXb1$VGVNeoY$?d&e$z=wy!MZm z%SE=qGaC)Jk9_$|2&T$OH|4!(eRo`-GSncn$y#gpZDZo+&#+-V@P=aGGlfrQc2M5pL8 zz8n&{C9fAB?E8->rS(xf@Krwl+TIRxMT7r%)7UK-1G_fIDb+l+w}zqyj~||GqNfcH zGrK1U^VHXRloz<9Xqr2^^kRu-`(?;_fcT#JA;WNfW) zwxa)C(>Ssovvq0d+pkmOd|RGY@pCzRn>lBi0$vFo%Is>I-WnI&+Isa*G5ZNo;KsYF zGrdX{qR-8e_2xaWc7?Ci0!?PAKK6)hmAiW`d(z)uU-oj~{`q65b@+R^C+43EzjuMx z$HOHV3k&BOXoKcPJ4Smu`-@%L>4yBg4`nhA*KGOt*2r%8`BgFBo1U1TyhUZf>hgZL zw!($><8a9o@3~KY;$y`DLp2p*TXyZSQj0e{cq}a?{uMrae^!QGJHB`8(YG(tjn$o`aaQZ#^qhYExJM_d}qix>#z=xg;hlWZr=I=aQyw|ciZ@J8t<93gF zWTBMglm5ZwyW+Sbr$duz1Zg`In?h*CL& zW!4z`#L;Q1Vzbkz@Baj*d4W@lI(%J47bp|H=9^YQ`TC9s}uL;o{ViNS4GV zE1u%flCV*o`3YD;brg)>%nr8am%F`@{or4Ms;KN^$$4!UldXqI$Z=k+LH&-19!uGC z7AL&lIXvn)lUHP|@-tNA|NT~<54p<1Mw;j7X`^xjP0WyxA?wIMXW$mWRD)LyTEJuy!R3e$8FR^NfEah3P|6< z;~xOKSn)Pwi(2u0GvQ0)g$sw8U`!^r8`GCYKT(~AzA~r93_EaH>8c^@lW>o`2F%Q; z4>i7sCtc9#=HFJY{DUO*@!&+2&3~D*>fJ|X^{%T3&P1~2NQYmD97C&_rU2WJHOAd^ zlL|iwBiJmHotnO5hEHda&XHuxyQ8Tu2`?e-cC@Ozv$$*f6%w9NPL>wvkpv_=hQ=3l zFS4t(n1&WwF~HxPLNEbns^C`*dj&Xl>QF*BH66A)8eN@?6lT#XZAOb(_dz{~^m08#R^6jb zhyp(MBFXI-`-FZe{~qH;o`I2Jfad!DVV)luoZ;7%UNxI%VP zpexXOLd(epu5w8ogmZXGT5omqczx92#L`u4@gB-m3co>~U0?2fQkzBn1C%M^^A~9R$0CKLp8S-fR1ScP?1rP=bYwHk=>%^2Jah7bLvk)d3R&-YkCt<* zXM?VTZ{v$laqyCZ z;4{-nu+C2kk9{_{e3sHEB^iVvYf&NPdaJBu<#%w#4fI2=jPgatB@i|hZ476vJ2o};83n2bjxWvw!i zNse)$1UY)G$?Xe~Mr5{O)V`e$BSm7FNyVm-7@!9TGJg=$PGWyb5zrDlE#O@M4a^7N zjW}5f86-0SC$T^ODHBbGj*;+V01uv+*We>Sq9i;yNg0qh2mdIf0L=fZzy@&k6SO3B z=?od37NH={AQz4IyZ}zn1yGyDixZ>_xW17vXgO{&Vh!*t_{-79&3qVoY@7512??~i zO2(vbQ1I@1QH_tukT#%yoLacAli)T=hyoP{YEmoUmq07{$=>pL4ghUNSXVQ;Cx;IxUC<0TQ%75XG18UsqOJVwSHHW(1N7obUd zs@Jip0C*rF;dWQBZEFmNQTza6ZvYs9FQo&X00$u9@zZJ!lE{34Xa@}v3sl)?75}nt z)c^%}TyCH!aRe>~@co@|2rd4IoPh})U=<`<_%J8PZt)#}un0OufMT*A@G}zbX>}bU z(byO|z-LGwMgbhk%M={aQJ@J{E- z974e?eYA;xPMzmIYCI__tqls@;K1O!NL;!@IEhQggRsJg5EFnAj-GAf!!Tf7<8g1| zY%Yr=RC55Ps>KjiaRo#XMv%y$2Mox3>FB|SNP-t=9V<0Nnm!#HJi=Sq!7PcZ5j>Xy zzM3Dj3V>(AWjC~n1wc=($I20ODe7zgqYgR?)SW{Bp~8xe2Xs(XD|+Z9#!E_|y1dRU??twBQ>@!**yr;plptk znEET(P~c~DMmS*VQT8OJo*)Ms1+>RALyQVy2e3#ic{{%l<_7qnDTIXb3>Pw=H<}xe z1E;a^;DMDKs0{pDW#%v!UP`N2E?O=GNw9?}97~u9wP8M;;7g;$(uM{PM1;-Q2&ll- zKM7T9o;=S^8-6rKz3FtGD(eOCDC(u~8!zuCYHFb^_AXo;2yH^Dg1337nwXcN{;XA9 zGU7jXHo=!)YZ2V*fdRm#047L=v?Ct#0-Vy}ybUXOg5h6)*T0QK5|jXXDo#V;Lu%PE z__Y6$P5(%86qR2_oI0bdJLfR05bbOnF68xpA3*~@4`v! z6*8O;Ks6J9f-V>yP%PRATmYa-|3g0ZU-FT>ZY#K+J}LkE5l8|W7KcfpqOcF<(Q4ba>gzbA%^j{)gmZX4eo)^o=P1zsMHK?(!@0cCvHP6R-? zGv_gY>M0Jx&BfaMO~kP)J18&`&S}*%L>FEYC0}%BXcpT)l znuDT%Bv@t?nr;0M37A=H(YevO1rb<*0u%);!=gBQN0TFNT zrJ(T+%LpgRqA)&KBX<%rRL~Yt2>Z{t7e{)qy$jRPXl}}^ykG>fcyk>+Wrh3*T}AP% zIL68uDcUJ$3TmS*!YHebSNRIc%2l7Q-v$p>izub+vtxEo4ufjBgvdR^t)W^xY&@rF3}O(b4Vi%WQ``LdRhSR8cU*Sh?n2 zse^OcIoHuy=1r=arO^BxWR0wLqpz)u=&B8z@LJ}n{Eqi}AGgYEq5 z{MwggG&v(dl}?`Kowr9uhAwwZGjCHXjvBQ*uyS|O#>_6|jHoNENmPA$T=zFP!7=cP z;aV`=j{nk+u<2jhg8v*}?faY1>uX7I)BIDiASU^DmGA{@mgXaa|KJPV#^Ap{Q%8Oz zE-r7dTp%v|lq(Gmo}!~ImS1~~i|6O}bNkGpEff2i$Gido51zMVsSj%J>{KNFYeSD` zDBN4M=sYiM{%yMUncKMUL`Kqn#oySZQaPK^=!-G}#60hz)@(NBLBBuLn3B51r%plg zjzrFrdI~7lRJiV@VHgZEa zP-!QsORx0Up6z5|ft$!8h=iP;77jb`(;6<4w9$!FhK1U6>Ar7TwZG~Nu;D&6|H z4Je%PInU2r(_tGMESbMEHg%hGy8A}#fxVOtL$% zVH=7LYX;M$Ci4zk3%i?Ba?|EY{>9^$gBqTrUq|fCzb_zu^q71%8vM=u>Ys+iSG>4} z2R~mE_w5!W_|o!cR#<$T4cdoaOVl`i7h?!kaQ;C^Ft>LYzhDxyM7wTmabLD!bYsYR z<<8=Hg&nNK8QZY_R>e!h#253y0#QPyVGVm5+frSQMB7I%)-9`sh!#A)--!a>w;wzh z-Y*YppWevYUbMdU^!tA2M@trJLA9zEk{NY=+ zPE+R9ANA{G|D&Qx6E<|rvZeJM-dciyF> zwl|j~_6P5!^nHJDI<}$QxI(E(k>|?&tL82)&5wHwi!GNWZi_g4uG}9_U)f)`Ej_dQ{7&s%hMAd-#VxsoLfBaV{A11LX9m_ zX*k~ft6-xAwTE-JY|)j}p_gS}m_&%19XcfgtQq}J&Ns59=5UJ%f6^@(;4vK-jgDB( znyMI4l_ENuiBQFda zDxR}zo|m_9wai{%Bu#_hf1h?R|6zOdC+3P5X;*PF!tC@Ws<2}!DbgeO-F&%pT!Uyx8xO(##n&;2QY@QZKkUvf*<1qG4 z6V?Ax(G4#c>y!3A^DpDnDf+!C(1RQT*V!|k&vqg8|~*Gr;`qUI5Qom+BfUp8IJDLOhi_V(nu zQ;=ofcrGo{dXyLcFN?HrX~S)AUpa>|Hb5~+A(&-R+|P9B%5Sn8O`>AyLq#WhM6KUN z+c-jW{=>9JUy^m{Fkq}%W?=XuwCpp3h2K<1NMCqZKOZSNtyys4sIB9N!~Vm9Mqhvz zwwvr#Y*?=!f2=yZX0YdBMtVz<9ih-WH4x6o0Hx5<4U2*QrUFj1)t64EdK}L;JDbib zTnJN)%6jmYKxdQzM8YeW;`96wAY4di%?HA>{1I-WjPvQNc0fqaAE7bI5C>L3h{?KJ zz*}q6QJ!n`X_viqx(C||Et>)N3hGN+QomiH95;% zvE|o+Cg61p0z`FYTCgcv1s4wg?sVuFMg0B^I$#$)VJr3fII0>2Qb!pCNUIDc?1hV# zf_AJJvRi5!EkucyKGUsMf?4Vr?eiH~NPzV6U>3SY3*n+E+69lUi$)u>V)sl|9*G)j z6+Ds?jdsfw4GtA`!|Ku*8M2R~j26N~-GDnuAgCHG#E7~*0Sz={FBOK-l3Gzh3T41P zu41$hDY}@bOVkfZV`d#+c4OT4mpghXA^nn%>^K$cW z>hdAfRtONHUv8dCT~>4tgSpehr)r;B4Vqo*K7cmq!e; zQ@u1!3b5I|)E6yRi-__+-}ihO0USTOB!3tB@LE;j7TH$g9%{rmTZ7{Ed$s%zu8s(} zj=VQR0-dD6s~d~r%`NpDMGlLuzevWOC*z`O#rjMro;*$fPYtRr$rN3g2byKSm>Ism z=dJli&SXtZ5;cO(PF+{y6aZ%v*F1!KO8C%uK~hqM`yLTdI~Q*B?k|5Lm-O9QQ5Vz; z%$w^D%pqXz1k52$@Pdh^kvV~p&D-=}7_cp%OBt%@i4ul2c5;_$9<{Xua{gsKXxXBkzVn9_pgVS; zdmTM7#;}H>3@b!5!reE*9k;nu$*$MP-wgpTOb4gPI^guA8<_5X<7OGYPg#-6RBK)EP@P3K;8FN<92TnEV zz;`*64k!#YfoYC#+`b3ir2*|R))VoJ-&apyDP3Fxzg5tp zz+E&W38Msex`z*g6Qs%NYgeeswaWNo5v57w8I$=6MOxu`$!Y(k=UGYN!h{E)peR*y zb#$@~{wBppn5z6vSzIF|(@t*m-%##|nNLtY3!a_4y4=82$=UIWrZuxIP z80BquD$F|@-f)Cq3P7)V^m?F3G+yL4`e9DYHhY{L4_fh@AVyqMNewL!ipYGD;7g@R zeA4*F$oV(dO2RUtsa?}t8y(*SIsHcG=Vs<1#NdSTWrV!)wl5FnLR)}^A|W6#D75j7 zvGb|et%m`48lk<@adOP)k1)ZNtBFC++xQX?mdW5Hja;HCTDK7jev(jqEZ6c3oOb}n zwIaO*#i(q1@~mjaZq)?fla#lacrd5i0>BRjx+!m8^9+ayKz3t?|Xnfg%K9 zcp0I0c*ffS&l9^<5`Z^S*$(6>KZ*V*A&8;V3|6+%z3H3;C(r^d>Y0Rl_;#+9Gh0wW z*eXuSj=yd9wjzOBXwRFcTmZdqu1I(;v_}^zr&A_vh1Z)xXVCOy_CQ8(Lcubk`{>M? z6yZi}H7HO{Xpe;l!_&4K8Gy&AY-6ZaV69&4ZM$ZQ1Ye>0(6$%x2pMp;70e~7qrWsl zM1XD_)(pOm7KlSMU=w^#X$GrXfuC!^S>a2k&=yB}ECGT<170I`t2h9!t?b7ZDyLS)AAQ#YSL6g@+pE!~bC#3WIK$i9gvW}2W+#Or!gGh6`g5yoT z6}v>mxW+myl7ndgoVXpHkp#PW(k~=fA;m&EOeF`pA8vv7ku)>GRRSmu0!3;E$NTf& zqxm=P%2w0%N2AA>d-{If0T+o&FGj+gS`mwffWk%6MxwjWR51a0KU}2&n{E4j3n9T3 z@x**oZ>hl?NW;M~)xrl~tCGq?jfcDIMI`w%0$@u4q+LrXL)u#cNpSnG@p_>^?oi)i z8=M07m(D5l7;R6VzAYuV+A|QGc18^Bm`T6t3>68~pp2V#l#*|l@U5sM=0}{jEEpgM zd-YD1p!Q!1)+7aT@F{_!3-MdWG>ty)gG=XKS)IT=2JkLcZsCdV{bF9g|CE5i#rQ3l zrqP)qZc=d`39nA#cKJ0+a}mIO?*pobpU{d&d-@oUQ0(o6U`WCuC}uM-jFi0YLg@Ge zln^E*{V&ZLv{q!J(ajw%q6`$eDBbv3B}+&W(&>5zt{)_iC67L#_Ydb5hK_e~$de+n z?4HC0(B~G)@pF+fNc}RS?}IN;NlonwC3!5E$z=`)ucG7@F3pg0sKyn`w1Px~9K z$kNld`5;1$1?@q0BdKZB>kG#-$F?h^N6HcyKx=a>^9BGaxM00H0ZBZRl8()=7H@<` zn*X#SEU6qExfGg_C(s@&Ih?ov?%YD_RYuGy5Jy8Iev4jHNyTdH)c~h8UStZrPm@bj zMvJ#W!HEgg%(;c%_8C{sf;dB#d@DB-^EGxP@#9vgg>U;4P-&=?^bk?FHRuxXG!Hyo z(IiH-A!*S2*A)qtp#AgRaJ^P&BxkP`F@9)f`W}E#SLC)Jw}-2lboexm9S5$J?q$R{ zl|u(M#5yA$QLRJQf*3za5kn8e!xS;2*aN_hvcy}8#GDbH6 zErzYWmLkY;t=!y#1Oafm1cpEYCs`&S!H27sba+#a9bc}M(q)7a)r^b-eg#2DTSgF% zg4J7TVpF4gAZY;JQ0|zgYBZw@yqA|1))$9kFR6T+{ z5GNYX@*5pQPjPbOV2I?i*(G|<5MZoJLh;oCWJ_NFh*tU>$L-Q;8l7ZeT=AfcZs{fF zUl8CTkPyoW6}}Y=Npv-yGX^kh46Qq!Nl3>83CELQSkf>9Mf>J~XeqQu6Xz@4wyUa0 zNFiyCWDk@!QOf33@jDaed$DZO8`T=UXc*Gqa9JU&K z56=rH1W%!ZsC%&9RLy2!PU_iO5Dhdl7o`aFvDE-G4OUKF*8QMeRtjKkQqR+rw`qAW z9BsQQiUd1Kgg8nB41=c87#-t^Fu?TFh2po&4gI`3hq@*65Hyi z(ahKc2Wp27`B3XIuwY23&x5U6WcOCtcsNDoC&_SpEh0Z)@rbEl;#hcF9W8p{v|zb} zCMUS0wL-1Sh@H^)T2^DP2NqkQq5%B9kOI_J$AV@~PLMm4>s^3Y#6h*4IKE>&{$C*$ zE4;!K`ef*8#t}kb^qxv=bwL1LMW~)LZtHm4h_)i3TiMTzX9ZmNssixo%6@`8D<@*B zStJM=k7g3uY!Fr5Y`s*7(RpUBx{Q3Qkuc>yj6F0(14H10UOB_tx+D)i6T@fYt0gooRndwO z2#F^NCR9CG7q;eI1@P%{Va1Jrk0GdkOSWx_oF9FU@o{MUe7p#p0B*NQl-FwX8(UYQ-7`{T9mfC2=I7I2Q1UW#$3=2nWF;Ze6k5R;H z2byqA2@$xAXuOg&{x@($N;b;61Z*y(7!80?A(awCDMcHsP8S=f8&EI9!tNy2Yw)tm zExvBBT7e8$FQZBw#+7cc$}6w)Va`%S8cHC*e37!ZJjmWPG2c0@5*D8V*aVj(*?cfJ zpb-JwXb)0*{glapN&y2yax6jdBtdc9OAB;+y`$0ml!{hKlLI^-SvJB`x$vaCZ*cNDnmg1=(@K6vr#~ z6N6&g0%*~S!h#qnikbO=*%6AUKoLzywe{X=T~ee3;RAaRY0|;AOsbVcgn{&x4jKc9 zFj9{N4|)uUuu2``O}=2jlaXd*lF}JLO3U#}q$xn)8xBM|ibySS%gK4r<<`e)*=U~YbWVrA3uBXGD2;o~-T8^T zb5}9gthzuYN2#AV$hcbx{ilv@=A~Md@N!L^y9Nx{o zc59g0xf+?0UcYVpL*~c#AD6i@TLA!T^A^8(a;IGH+D-uaN&UT_a|B<0m-((=x7NLm z`xl}+c{_Mbz}c#+iEKrisCr zzKLn?ZA%0B_S^T67m68+UKMBD;4CV&&%FBvZsqvu%k3N8`{MtLlh38+WM_9|F&){f zF_yfHfU6i;$~E6E(}NFw`;9;3!1(?9_aEP%$(;R|RV|fs!%O#TBoFu3fsXAc?gl?A zTPCr`e}`&jp0^rd^$TI8&~dH6s#h$1g_*Cc=3FnD3z=&>q$OW>w2nXRn>$Wuj*kAT zI>~L*{;FA9w@9>7P}Aap9`~fVzF3oce%L!b zFL}sw#_|jOnTlCf1~wc<>s;C5W5Y}F^O>(gM($`dJrFH+F}?g2ZvX9tS>tY<%ctF4 zCCTR-7d97(ABy*bub-OU9Z&PzU#$2-^jFtkYbgK0`SYkg%L4KC9`WfXBr(R4YW?Sa z1A*c8mZiq$cH&@nu*p_~_mP{#xI31wA{#eX8paphO~K%UTB78Y!>7mI$}HH?u&;io zx2+L)P>cR(CHu9ds9yf~G4GAoW5m7S%;Cu@(nleQ*!gCMST9vmOjNB<Be~f3|zkbx@X2u2SG?2KRpO@0WI|?@m{}Q|Y$Nr}Ebl#>u*Vd3FoL z`sIY@-Yx-eR=e!=oVRzo6rAPf{kxS4D*T3AtCw&h#)A9vElh58OB1R6r8`>~`?}SF zfjE|HYF}j5iLd_bG0kp_zY8!I998_?oyO_EAU{q(1|%%zkCpwdAX@CU*k^vZf2(0C zHfY5trHSYIY61J{fOoyt7!`N3TXx9?<*b1>esZMrwWABPJNXpj(Ka$3?n z%N14DKvknOr?vV3*UT_9g#PxU^4;SO01;Sj7m4mu zFAQxRMIzz%&3psZCI>p)C$Votj`4X`^kNqTggyrtHo^m%_1Fh+-TFNVMw_v1r*_<< zKL!czSktfRAK7aRnJGUims#-m;-9zCxlT{sS5?As*@VmXcYF2so#llTR>-5z#+!n0Ajx%Yn!jh~Aw?Uc{qJ|f8~SEqbL zHmX$n+>!)Fc!~N6mcZg4(Ddr0m{W9Xor=PQ3w<(8CsnHaoLG#n^ra}J^hLdOPGl4< zP|nzU_vY+AD)Z4fQ!m!(v7mQ|w@*JjYbic!@#?hiI%mNVlFs*i@#_JBW84?*SvgNN zfJ^gS@ zrT?sJ)&qZeTj6)fv1Lq--|~H0*chEoG{_SeoW@=mZ){E2>U>njq9#~YD~ClDc5F?q z@2VuXa27oEF}u6d-qxr!af`L;sZVzFl+0e|csn^n?Te@e5ifc5M~5<_8v6IJX>|v2>rRX(+`S%PQgZf7{oY-) z)j4;uDAVg;QVhSp+y4@KO_ou6SpggSS!+R|livL44yR3($<<@`J%}%NhA(s`-k>m8 z%_|CA8xa+6EmwA4?h7mYq?;Yf%0w+xtyKH8?3*dqbKYXr zoJE=$!P;_gd)7sh`R=-|i4R6|mt&3{uIc)uUsK=Zq4cyzTER}%|E*Z)<5K+W+M~dx z4>~&|tn_?#^$D6+DFZatNhMc4CmStwpt_n+^|dzE_m0 zF7t3E&{pQBzc%6EHI~i`QbnuTdVbz)lr_^5X0nqWRkrfW;*$wyq=B8?vG(nXP@kj{8&p_*g*ZyvlN%*AAR~(Sy^4uBIMWK zGVrqSSMnD4(SpHWEn_#{cRlBIW$}JrG1cei2-cnC&5aB#WJBexEi$3tEKiA+3uaj!g33qvh8?1i;{u+GXtMH$HfOcgLa?T zJMmm&u5%dO5c{DhP52iRznQ>TH|c-P_~ISn{O9yx1*7iUvWp)i zy>7njZeS~_zn{1TOd+Y-wH*T3dmBfwhouck!!?kzeL>qSNpjg>d!D4=toOdW?PTs+mt)O1f+{!fz5 zJFm-c*;QSt^?j0yY<_pCR+;`doLTHHp%bTYK|5i1GJgl3AyqRYT+Z<4cgGyJ-yX)! z>#zcLkj+p&5096r+O-7W zaiHvr9;k($vjHA8?VD77a*I8=Yexxq@aLv@+^Guc%|w@A&%ut(TWvBDPq8c}x9m7I z4^!FQ4aWy;$v(B6ao-_8w(Gwsxj(Nra=ZTpFP@bGekgA7IN|R9g+FVndyu-C2`Tl< zwjg!8D|XNKzW;B>`$Y~?FI_kuZ~On){=R)+>q532BiY8E2DU%`*H%X8*`6|A+-20+hj(aFySXfB0>q?nvyv&?4fiY;$XDQD`6*tYNB!e7Di)A?V3 zYFzx3J!;eVxA}I1Q=XRA4)(S=MS9CH+^5yGl=iA`tU1J-X&HsY` zZTak4j(iLmUk-k9!f@B}{ksc9&QkDu%wnJ3@AFm!iE~%2O1_1yTS|T*zF7|*js(w{ zm6M(`+xkw-=mUqz3Ziq^tNmHU%x>@$+SR~&9!haFqiKJC!(Fe`>M~Y+5WZ2-mC9v` zCDQkHyjJ~2h|m3Dn$g*>R5u%vCY(-e$EYpJU=!xD%Ei{3NFMjzWIhKeA@T@onmkpzM8U~ zS+qv;k#*`Ladv&H?(pn>Y3%2EqU6FxO;2~E`^fSP>u!H=4dHw7uEd$CRia6MaJ{rg zKT(xb$r$l_`8F{?V6+(>jN1L3ot$oycO{zzgfdlEsFHYJQ1fco&UV80;HtIV z1Z*N^FGYcvgmVPvspIp(e;3?Tq&7>5RDO+q``5G}0uld9<^SvJe50Yv;y6xHix63a zHQ2`1+GLxSA|qxGX^OK_SYc|~EH*Ud-(Vkc)@~VT2(hA7j1i3~V?@)aw%C$M%1owV zGRiWTHO&lp%yakQbawaEzPT^%J?Gy0;&;CHe!k~>?)6@SVmLSP4Yb2iwjhWs(=IYn zv_h}k9-!Z#o^ZQ`oXpI&uL61jdQ$rdh$YSd?q$8)r;l=FLIFGw%*Kw+q^PA#Kw^=&d zsBnZnlvm+%U2fmIxMAFWuaX^g(L8YKF0FP)hFI8DQ1gX~v?Z=Zq1Rr%z%TdrP{*_kGVYHp_yhn}x9sM1Q1^8sm>a#H3TI86 zfv8})BF2PBw>Nz&v{PzC%{60nZn8NSAInm{0Xl%c0)+8^n|*Z%6k$4K^+ZbyccxgrN&_=1n$BBgaKJIE70x!^?TB#a z;5=rNBSR}h%lx11UDc++S_GXan!gnARP9YX`?@MSI{&kVFWu)Hz9Uh7NRMNB^|NZ? zc6Y>W5UNb_lcsZCi3umKv5nLE2F^1k5}31(+_MiHoK8?0Q6d{ZFJcUaDLJ9MuJq}R zWsM~pi3c#{b(8h<3DCLfFw>LP8Yk-(fUAKS~c8o z_Q+)6x5B|ewj}+^+Y}@=)$#k<{=9cS5>&_5QTo7*ZYXjbLgASSa+jQdafsSg07I%A z0U6bTUsUgFw7#;^6Dx2uo)7wdLwehc@&2vOe(XAaRr&}wM#(FdnLXl-r4?(ZEZcH+G%D_1(LRmq2^0v$qvOCD8Nl5O#ae+{_10dxBaFcABd{%iFp zd7*An&Jkva4DC$;U2tmBZ#4XcHOQr@AK zngUlV`ir5Qlv=m2vGd`=0`5407kh#Ud@kPHcB9h zH@KGh1%Ni8Cdv3?tcMmUf(4#4%k}pc2fRGvfH6iiBkP`eAB0g!YX!R3w2C@