From 962b9c9a85384f358258725767d5ae5a2784a0e8 Mon Sep 17 00:00:00 2001 From: albert-github Date: Sat, 1 Jun 2019 14:01:20 +0200 Subject: Correction warning message When there is a problem with a backticjk comment block we can get the message: reached end of file while inside a ````' block! this is a bit unreadable / non understandable as we see see 4 backticks followed by a single quote, it woulb be more readable when we get reached end of file while inside a '```' block! --- src/scanner.l | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scanner.l b/src/scanner.l index f94e4f8..2634485 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -6771,7 +6771,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) } <> { warn(yyFileName,yyLineNr, - "reached end of file while inside a `%s' block!\n" + "reached end of file while inside a '%s' block!\n" "The command that should end the block seems to be missing!\n", docBlockName.data()); yyterminate(); -- cgit v0.12 From 3c3efc26e6b258ef2c3916f7e1b2c07254039ad4 Mon Sep 17 00:00:00 2001 From: albert-github Date: Sat, 1 Jun 2019 16:01:16 +0200 Subject: Correction warning message Consistency --- addon/doxmlparser/src/basehandler.h | 2 +- addon/doxmlparser/src/compoundhandler.cpp | 10 +- addon/doxmlparser/src/dochandler.cpp | 14 +- addon/doxmlparser/src/linkedtexthandler.cpp | 6 +- addon/doxmlparser/src/mainhandler.cpp | 4 +- addon/doxmlparser/src/memberhandler.cpp | 16 +- addon/doxmlparser/src/paramhandler.cpp | 8 +- addon/doxmlparser/src/sectionhandler.cpp | 6 +- addon/doxmlparser/test/main.cpp | 26 +-- addon/doxywizard/config_doxyw.l | 20 +-- src/classdef.cpp | 24 +-- src/code.l | 30 ++-- src/commentscan.l | 4 +- src/configimpl.l | 56 +++---- src/constexp.l | 2 +- src/declinfo.l | 14 +- src/defargs.l | 6 +- src/defgen.cpp | 8 +- src/definition.cpp | 12 +- src/diagram.cpp | 6 +- src/docparser.cpp | 26 +-- src/doctokenizer.l | 10 +- src/dot.cpp | 24 +-- src/doxygen.cpp | 242 ++++++++++++++-------------- src/filedef.cpp | 2 +- src/filename.cpp | 2 +- src/fortrancode.l | 2 +- src/fortranscanner.l | 2 +- src/groupdef.cpp | 8 +- src/htmldocvisitor.cpp | 2 +- src/index.cpp | 4 +- src/latexdocvisitor.cpp | 2 +- src/layout.cpp | 2 +- src/mandocvisitor.cpp | 2 +- src/markdown.cpp | 2 +- src/memberdef.cpp | 30 ++-- src/membergroup.cpp | 2 +- src/memberlist.cpp | 6 +- src/msc.cpp | 2 +- src/namespacedef.cpp | 2 +- src/perlmodgen.cpp | 6 +- src/pre.l | 56 +++---- src/pycode.l | 8 +- src/rtfdocvisitor.cpp | 2 +- src/rtfgen.cpp | 4 +- src/scanner.l | 30 ++-- src/tagreader.cpp | 116 ++++++------- src/template.cpp | 2 +- src/util.cpp | 124 +++++++------- src/vhdlcode.l | 2 +- src/xmldocvisitor.cpp | 2 +- src/xmlgen.cpp | 2 +- 52 files changed, 501 insertions(+), 501 deletions(-) diff --git a/addon/doxmlparser/src/basehandler.h b/addon/doxmlparser/src/basehandler.h index 5715dda..a82114d 100644 --- a/addon/doxmlparser/src/basehandler.h +++ b/addon/doxmlparser/src/basehandler.h @@ -175,7 +175,7 @@ template class BaseHandler : public QXmlDefaultHandler, !m_fallBackHandler->handleStartElement(name,attrib) ) { - debug(1,"line %d, col %d: found unexpected tag `%s', skipping until matching end tag\n", + debug(1,"line %d, col %d: found unexpected tag '%s', skipping until matching end tag\n", s_theLocator->lineNumber(),s_theLocator->columnNumber(), name.data()); m_skipUntil = name; diff --git a/addon/doxmlparser/src/compoundhandler.cpp b/addon/doxmlparser/src/compoundhandler.cpp index 3e729e9..42138ae 100644 --- a/addon/doxmlparser/src/compoundhandler.cpp +++ b/addon/doxmlparser/src/compoundhandler.cpp @@ -152,7 +152,7 @@ class CompoundTypeMap int *val = m_map.find(s.utf8()); if (val==0) { - debug(1,"Warning: `%s' is an invalid compound type\n",s.data()); + debug(1,"Warning: '%s' is an invalid compound type\n",s.data()); return ICompound::Invalid; } else return (ICompound::CompoundKind)*val; @@ -325,7 +325,7 @@ void CompoundHandler::startCompound(const QXmlAttributes& attrib) m_kindString = attrib.value("kind"); m_kind = s_typeMap->map(m_kindString); m_protection = attrib.value("prot"); - debug(2,"startCompound(id=`%s' type=`%s')\n",m_id.data(),m_kindString.data()); + debug(2,"startCompound(id='%s' type='%s')\n",m_id.data(),m_kindString.data()); } void CompoundHandler::endCompound() @@ -345,7 +345,7 @@ void CompoundHandler::startLocation(const QXmlAttributes& attrib) void CompoundHandler::endCompoundName() { m_name = m_curString.stripWhiteSpace(); - debug(2,"Compound name `%s'\n",m_name.data()); + debug(2,"Compound name '%s'\n",m_name.data()); } void CompoundHandler::startInnerClass(const QXmlAttributes& attrib) @@ -412,7 +412,7 @@ void CompoundHandler::startSuperClass(const QXmlAttributes& attrib) prot, kind ); - debug(2,"super class id=`%s' prot=`%s' virt=`%s'\n", + debug(2,"super class id='%s' prot='%s' virt='%s'\n", attrib.value("refid").data(), protString.data(), kindString.data()); @@ -442,7 +442,7 @@ void CompoundHandler::startSubClass(const QXmlAttributes& attrib) prot, kind ); - debug(2,"sub class id=`%s' prot=`%s' virt=`%s'\n", + debug(2,"sub class id='%s' prot='%s' virt='%s'\n", attrib.value("refid").data(), protString.data(), kindString.data()); diff --git a/addon/doxmlparser/src/dochandler.cpp b/addon/doxmlparser/src/dochandler.cpp index 4e25813..ea1abf5 100644 --- a/addon/doxmlparser/src/dochandler.cpp +++ b/addon/doxmlparser/src/dochandler.cpp @@ -842,7 +842,7 @@ void RefHandler::endRef() { m_linkText = m_curString; m_parent->setDelegate(0); - debug(2,"End ref: text=`%s'\n",m_linkText.data()); + debug(2,"End ref: text='%s'\n",m_linkText.data()); } @@ -1098,7 +1098,7 @@ void HighlightHandler::startHighlight(const QXmlAttributes& attrib) void HighlightHandler::endHighlight() { addTextNode(); - debug(2,"end highlight class=`%s'\n",m_hlString.data()); + debug(2,"end highlight class='%s'\n",m_hlString.data()); m_parent->setDelegate(0); } @@ -1297,7 +1297,7 @@ void FormulaHandler::startFormula(const QXmlAttributes& attrib) void FormulaHandler::endFormula() { m_text = m_curString; - debug(2,"formula id=`%s' text=`%s'\n",m_id.data(),m_text.data()); + debug(2,"formula id='%s' text='%s'\n",m_id.data(),m_text.data()); m_parent->setDelegate(0); } @@ -1323,7 +1323,7 @@ void AnchorHandler::startAnchor(const QXmlAttributes& attrib) void AnchorHandler::endAnchor() { - debug(2,"anchor id=`%s'\n",m_id.data()); + debug(2,"anchor id='%s'\n",m_id.data()); m_parent->setDelegate(0); } @@ -1351,7 +1351,7 @@ void ImageHandler::startImage(const QXmlAttributes& attrib) void ImageHandler::endImage() { m_caption = m_curString; - debug(2,"image name=`%s' caption=`%s'\n",m_name.data(),m_caption.data()); + debug(2,"image name='%s' caption='%s'\n",m_name.data(),m_caption.data()); m_parent->setDelegate(0); } @@ -1379,7 +1379,7 @@ void DotFileHandler::startDotFile(const QXmlAttributes& attrib) void DotFileHandler::endDotFile() { m_caption = m_curString; - debug(2,"image name=`%s' caption=`%s'\n",m_name.data(),m_caption.data()); + debug(2,"image name='%s' caption='%s'\n",m_name.data(),m_caption.data()); m_parent->setDelegate(0); } @@ -1409,7 +1409,7 @@ void IndexEntryHandler::startIndexEntry(const QXmlAttributes& /*attrib*/) void IndexEntryHandler::endIndexEntry() { - debug(2,"index entry primary=`%s' secondary=`%s'\n", + debug(2,"index entry primary='%s' secondary='%s'\n", m_primary.data(),m_secondary.data()); m_parent->setDelegate(0); } diff --git a/addon/doxmlparser/src/linkedtexthandler.cpp b/addon/doxmlparser/src/linkedtexthandler.cpp index 1164688..b774f0f 100644 --- a/addon/doxmlparser/src/linkedtexthandler.cpp +++ b/addon/doxmlparser/src/linkedtexthandler.cpp @@ -81,7 +81,7 @@ void LinkedTextHandler::end() if (!m_curString.isEmpty()) { m_children.append(new LT_Text(m_curString)); - debug(2,"LinkedTextHandler: add text `%s'\n",m_curString.data()); + debug(2,"LinkedTextHandler: add text '%s'\n",m_curString.data()); m_curString=""; } m_parent->setDelegate(0); @@ -92,7 +92,7 @@ void LinkedTextHandler::startRef(const QXmlAttributes& attrib) if (!m_curString.isEmpty()) { m_children.append(new LT_Text(m_curString)); - debug(2,"LinkedTextHandler: add text `%s'\n",m_curString.data()); + debug(2,"LinkedTextHandler: add text '%s'\n",m_curString.data()); m_curString=""; } ASSERT(m_ref==0); @@ -107,7 +107,7 @@ void LinkedTextHandler::endRef() { m_ref->setText(m_curString); m_children.append(m_ref); - debug(2,"LinkedTextHandler: add ref `%s'\n",m_ref->text()->latin1()); + debug(2,"LinkedTextHandler: add ref '%s'\n",m_ref->text()->latin1()); m_ref=0; } diff --git a/addon/doxmlparser/src/mainhandler.cpp b/addon/doxmlparser/src/mainhandler.cpp index 93525f0..51beea0 100644 --- a/addon/doxmlparser/src/mainhandler.cpp +++ b/addon/doxmlparser/src/mainhandler.cpp @@ -170,12 +170,12 @@ void MainHandler::dump() CompoundEntry *ce; for (cli.toFirst();(ce=cli.current());++cli) { - debug(2,"compound id=`%s' name=`%s'\n",ce->id.data(),ce->name.data()); + debug(2,"compound id='%s' name='%s'\n",ce->id.data(),ce->name.data()); QDictIterator mdi(ce->memberDict); MemberEntry *me; for (mdi.toFirst();(me=mdi.current());++mdi) { - debug(2," member id=`%s' name=`%s'\n",me->id.data(),me->name.data()); + debug(2," member id='%s' name='%s'\n",me->id.data(),me->name.data()); } } } diff --git a/addon/doxmlparser/src/memberhandler.cpp b/addon/doxmlparser/src/memberhandler.cpp index 7a3f228..6042f91 100644 --- a/addon/doxmlparser/src/memberhandler.cpp +++ b/addon/doxmlparser/src/memberhandler.cpp @@ -48,7 +48,7 @@ class MemberTypeMap int *val = m_map.find(s.utf8()); if (val==0) { - debug(1,"Warning: `%s' is an invalid member type\n",s.data()); + debug(1,"Warning: '%s' is an invalid member type\n",s.data()); return IMember::Invalid; } else return (IMember::MemberKind)*val; @@ -240,7 +240,7 @@ void MemberHandler::startMember(const QXmlAttributes& attrib) { m_parent->setDelegate(this); m_kindString = attrib.value("kind"); - //printf("startMember kindString=`%s'\n",m_kindString.data()); + //printf("startMember kindString='%s'\n",m_kindString.data()); m_kind = s_typeMap->map(m_kindString); m_id = attrib.value("id"); m_protection = attrib.value("prot"); @@ -254,7 +254,7 @@ void MemberHandler::startMember(const QXmlAttributes& attrib) m_isReadable = attrib.value("readable")=="yes"; m_isWritable = attrib.value("writable")=="yes"; - debug(2,"member kind=`%s' id=`%s' prot=`%s' virt=`%s'\n", + debug(2,"member kind='%s' id='%s' prot='%s' virt='%s'\n", m_kindString.data(),m_id.data(),m_protection.data(),m_virtualness.data()); } @@ -262,7 +262,7 @@ void MemberHandler::startEnumValue(const QXmlAttributes& attrib) { m_parent->setDelegate(this); m_kindString = "enumvalue"; - //printf("startEnumValue kindString=`%s'\n",m_kindString.data()); + //printf("startEnumValue kindString='%s'\n",m_kindString.data()); m_kind = s_typeMap->map(m_kindString); m_id = attrib.value("id"); m_protection = attrib.value("prot"); @@ -275,7 +275,7 @@ void MemberHandler::startEnumValue(const QXmlAttributes& attrib) m_isMutable = FALSE; m_isReadable = FALSE; m_isWritable = FALSE; - debug(2,"member kind=`%s' id=`%s' prot=`%s' virt=`%s'\n", + debug(2,"member kind='%s' id='%s' prot='%s' virt='%s'\n", m_kindString.data(),m_id.data(),m_protection.data(),m_virtualness.data()); } @@ -409,7 +409,7 @@ void MemberHandler::startName(const QXmlAttributes &) void MemberHandler::endName() { m_name = m_curString.stripWhiteSpace(); - debug(2,"member name=`%s'\n",m_name.data()); + debug(2,"member name='%s'\n",m_name.data()); } void MemberHandler::startRead(const QXmlAttributes &) @@ -420,7 +420,7 @@ void MemberHandler::startRead(const QXmlAttributes &) void MemberHandler::endRead() { m_read = m_curString.stripWhiteSpace(); - debug(2,"member read=`%s'\n",m_read.data()); + debug(2,"member read='%s'\n",m_read.data()); } void MemberHandler::startWrite(const QXmlAttributes &) @@ -431,7 +431,7 @@ void MemberHandler::startWrite(const QXmlAttributes &) void MemberHandler::endWrite() { m_write = m_curString.stripWhiteSpace(); - debug(2,"member write=`%s'\n",m_write.data()); + debug(2,"member write='%s'\n",m_write.data()); } void MemberHandler::startDefinition(const QXmlAttributes&) diff --git a/addon/doxmlparser/src/paramhandler.cpp b/addon/doxmlparser/src/paramhandler.cpp index 831d5e4..7a6f455 100644 --- a/addon/doxmlparser/src/paramhandler.cpp +++ b/addon/doxmlparser/src/paramhandler.cpp @@ -103,25 +103,25 @@ void ParamHandler::startType(const QXmlAttributes& /*attrib*/) void ParamHandler::endDeclName() { m_declName = m_curString.stripWhiteSpace(); - debug(2,"member declName=`%s'\n",m_declName.data()); + debug(2,"member declName='%s'\n",m_declName.data()); } void ParamHandler::endDefName() { m_defName = m_curString.stripWhiteSpace(); - debug(2,"member defName=`%s'\n",m_defName.data()); + debug(2,"member defName='%s'\n",m_defName.data()); } void ParamHandler::endAttrib() { m_attrib = m_curString.stripWhiteSpace(); - debug(2,"member attrib=`%s'\n",m_attrib.data()); + debug(2,"member attrib='%s'\n",m_attrib.data()); } void ParamHandler::endArray() { m_array = m_curString.stripWhiteSpace(); - debug(2,"member array=`%s'\n",m_array.data()); + debug(2,"member array='%s'\n",m_array.data()); } void ParamHandler::startDefVal(const QXmlAttributes& /*attrib*/) diff --git a/addon/doxmlparser/src/sectionhandler.cpp b/addon/doxmlparser/src/sectionhandler.cpp index 1137901..cadd82b 100644 --- a/addon/doxmlparser/src/sectionhandler.cpp +++ b/addon/doxmlparser/src/sectionhandler.cpp @@ -68,7 +68,7 @@ class SectionTypeMap int *val = m_map.find(s.utf8()); if (val==0) { - debug(1,"Warning: `%s' is an invalid section type\n",s.data()); + debug(1,"Warning: '%s' is an invalid section type\n",s.data()); return ISection::Invalid; } else return (ISection::SectionKind)*val; @@ -110,7 +110,7 @@ void SectionHandler::startSection(const QXmlAttributes& attrib) m_parent->setDelegate(this); m_kindString = attrib.value("kind"); m_kind = s_typeMap->map(m_kindString); - debug(2,"section kind=`%s'\n",m_kindString.data()); + debug(2,"section kind='%s'\n",m_kindString.data()); } void SectionHandler::startDescription(const QXmlAttributes& attrib) @@ -141,7 +141,7 @@ void SectionHandler::startHeader(const QXmlAttributes&) void SectionHandler::endHeader() { m_header = m_curString.stripWhiteSpace(); - debug(2,"member header=`%s'\n",m_header.data()); + debug(2,"member header='%s'\n",m_header.data()); } void SectionHandler::initialize(CompoundHandler *ch) diff --git a/addon/doxmlparser/test/main.cpp b/addon/doxmlparser/test/main.cpp index 5f37c81..70c79da 100644 --- a/addon/doxmlparser/test/main.cpp +++ b/addon/doxmlparser/test/main.cpp @@ -51,7 +51,7 @@ void DumpDoc(IDoc *doc,int level) if (doc==0) return; QString indent; indent.fill(' ',level); - //printf(" doc node kind=`%d'\n",doc->kind()); + //printf(" doc node kind='%d'\n",doc->kind()); switch (doc->kind()) { case IDoc::Para: @@ -73,7 +73,7 @@ void DumpDoc(IDoc *doc,int level) { IDocText *txt = dynamic_cast(doc); ASSERT(txt!=0); - InPrint(("\n", + InPrint(("\n", txt->text()->latin1(),txt->markup(),txt->headingLevel())); } break; @@ -244,21 +244,21 @@ void DumpDoc(IDoc *doc,int level) { IDocULink *ul = dynamic_cast(doc); ASSERT(ul!=0); - InPrint(("\n",ul->url()->latin1(),ul->text()->latin1())); + InPrint(("\n",ul->url()->latin1(),ul->text()->latin1())); } break; case IDoc::EMail: { IDocEMail *em = dynamic_cast(doc); ASSERT(em!=0); - InPrint(("\n",em->address()->latin1())); + InPrint(("\n",em->address()->latin1())); } break; case IDoc::Link: { IDocLink *lk = dynamic_cast(doc); ASSERT(lk!=0); - InPrint(("\n",lk->refId()->latin1(),lk->text()->latin1())); + InPrint(("\n",lk->refId()->latin1(),lk->text()->latin1())); } break; case IDoc::ProgramListing: @@ -280,7 +280,7 @@ void DumpDoc(IDoc *doc,int level) { IDocCodeLine *cl = dynamic_cast(doc); ASSERT(cl!=0); - InPrint(("\n",cl->lineNumber(),cl->refId()->latin1())); + InPrint(("\n",cl->lineNumber(),cl->refId()->latin1())); IDocIterator *cei = cl->codeElements(); IDoc *ce; for (cei->toFirst();(ce=cei->current());cei->toNext()) @@ -310,35 +310,35 @@ void DumpDoc(IDoc *doc,int level) { IDocFormula *fm = dynamic_cast(doc); ASSERT(fm!=0); - InPrint(("\n",fm->id()->latin1(),fm->text()->latin1())); + InPrint(("\n",fm->id()->latin1(),fm->text()->latin1())); } break; case IDoc::Image: { IDocImage *img = dynamic_cast(doc); ASSERT(img!=0); - InPrint(("\n",img->name()->latin1(),img->caption()->latin1())); + InPrint(("\n",img->name()->latin1(),img->caption()->latin1())); } break; case IDoc::DotFile: { IDocDotFile *df = dynamic_cast(doc); ASSERT(df!=0); - InPrint(("\n",df->name()->latin1(),df->caption()->latin1())); + InPrint(("\n",df->name()->latin1(),df->caption()->latin1())); } break; case IDoc::IndexEntry: { IDocIndexEntry *ie = dynamic_cast(doc); ASSERT(ie!=0); - InPrint(("\n",ie->primary()->latin1(),ie->secondary()->latin1())); + InPrint(("\n",ie->primary()->latin1(),ie->secondary()->latin1())); } break; case IDoc::Table: { IDocTable *tbl = dynamic_cast(doc); ASSERT(tbl!=0); - InPrint(("\n",tbl->numColumns(),tbl->caption()->latin1())); + InPrint(("
\n",tbl->numColumns(),tbl->caption()->latin1())); IDocIterator *ri = tbl->rows(); IDoc *row; for (ri->toFirst();(row=ri->current());ri->toNext()) @@ -383,7 +383,7 @@ void DumpDoc(IDoc *doc,int level) { IDocSection *sec = dynamic_cast(doc); ASSERT(sec!=0); - InPrint(("
\n", + InPrint(("
\n", sec->id()->latin1(),sec->level())); DumpDoc(sec->title(),level+1); IDocIterator *di = sec->paragraphs(); @@ -653,7 +653,7 @@ int main(int argc,char **argv) ILinkedTextIterator *lti = ev->initializer(); QString init = linkedTextToString(lti); lti->release(); - printf(" Enum value `%s' init=`%s'\n", + printf(" Enum value '%s' init='%s'\n", ev->name()->latin1(),init.latin1()); } evi->release(); diff --git a/addon/doxywizard/config_doxyw.l b/addon/doxywizard/config_doxyw.l index 960b7cb..8549e6b 100644 --- a/addon/doxywizard/config_doxyw.l +++ b/addon/doxywizard/config_doxyw.l @@ -230,7 +230,7 @@ static void readIncludeFile(const QString &incName) g_curOption = g_options->value(cmd); if (g_curOption==0) // oops not known { - config_warn("ignoring unsupported tag `%s' at line %d, file %s\n", + config_warn("ignoring unsupported tag '%s' at line %d, file %s\n", qPrintable(cmd),yylineno,qPrintable(g_yyFileName)); BEGIN(SkipInvalid); } @@ -255,7 +255,7 @@ static void readIncludeFile(const QString &incName) BEGIN(GetString); break; case Input::Obsolete: - config_warn("Tag `%s' at line %d of file %s has become obsolete.\n" + config_warn("Tag '%s' at line %d of file %s has become obsolete.\n" "To avoid this warning please update your configuration " "file using \"doxygen -u\"\n", qPrintable(cmd), yylineno,qPrintable(g_yyFileName)); @@ -269,7 +269,7 @@ static void readIncludeFile(const QString &incName) g_curOption = g_options->value(cmd); if (g_curOption==0) // oops not known { - config_warn("ignoring unsupported tag `%s' at line %d, file %s\n", + config_warn("ignoring unsupported tag '%s' at line %d, file %s\n", yytext,yylineno,qPrintable(g_yyFileName)); BEGIN(SkipInvalid); } @@ -285,12 +285,12 @@ static void readIncludeFile(const QString &incName) case Input::String: case Input::Int: case Input::Bool: - config_warn("operator += not supported for `%s'. Ignoring line at line %d, file %s\n", + config_warn("operator += not supported for '%s'. Ignoring line at line %d, file %s\n", yytext,yylineno,qPrintable(g_yyFileName)); BEGIN(SkipInvalid); break; case Input::Obsolete: - config_warn("Tag `%s' at line %d of file %s has become obsolete.\n" + config_warn("Tag '%s' at line %d of file %s has become obsolete.\n" "To avoid this warning please update your configuration " "file using \"doxygen -u\"\n", qPrintable(cmd),yylineno,qPrintable(g_yyFileName)); @@ -327,12 +327,12 @@ static void readIncludeFile(const QString &incName) } } -[a-z_A-Z0-9]+ { config_warn("ignoring unknown tag `%s' at line %d, file %s\n",yytext,yylineno,qPrintable(g_yyFileName)); } +[a-z_A-Z0-9]+ { config_warn("ignoring unknown tag '%s' at line %d, file %s\n",yytext,yylineno,qPrintable(g_yyFileName)); } \n { BEGIN(Start); } \n { if (!g_elemStr.isEmpty()) { - //printf("elemStr1=`%s'\n",qPrintable(elemStr)); + //printf("elemStr1='%s'\n",qPrintable(elemStr)); *g_arg = QVariant(g_arg->toStringList() << g_elemStr); } BEGIN(Start); @@ -340,7 +340,7 @@ static void readIncludeFile(const QString &incName) [ \t]+ { if (!g_elemStr.isEmpty()) { - //printf("elemStr2=`%s'\n",qPrintable(elemStr)); + //printf("elemStr2='%s'\n",qPrintable(elemStr)); *g_arg = QVariant(g_arg->toStringList() << g_elemStr); } g_elemStr = QString(); @@ -356,7 +356,7 @@ static void readIncludeFile(const QString &incName) "\""|"\n" { // we add a bogus space to signal that the string was quoted. This space will be stripped later on. g_tmpString+=" "; - //printf("Quoted String = `%s'\n",qPrintable(tmpString)); + //printf("Quoted String = '%s'\n",qPrintable(tmpString)); if (g_lastState==GetString) { *g_arg = g_codec->toUnicode(g_tmpString); @@ -401,7 +401,7 @@ static void substEnvVarsInString(QString &s) while ((i=re.indexIn(s,p))!=-1) { l = re.matchedLength(); - //printf("Found environment var s.mid(%d,%d)=`%s'\n",i+2,l-3,qPrintable(s.mid(i+2,l-3))); + //printf("Found environment var s.mid(%d,%d)='%s'\n",i+2,l-3,qPrintable(s.mid(i+2,l-3))); QString env=g_codec->toUnicode(getenv(s.mid(i+2,l-3).toLatin1())); substEnvVarsInString(env); // recursively expand variables if needed. s = s.left(i)+env+s.right(s.length()-i-l); diff --git a/src/classdef.cpp b/src/classdef.cpp index 3a680c5..d528848 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -3450,7 +3450,7 @@ bool ClassDefImpl::hasNonReferenceSuperClass() const void ClassDefImpl::writeDeclaration(OutputList &ol,const MemberDef *md,bool inGroup, const ClassDef *inheritedFrom,const char *inheritId) const { - //printf("ClassName=`%s' inGroup=%d\n",name().data(),inGroup); + //printf("ClassName='%s' inGroup=%d\n",name().data(),inGroup); ol.docify(compoundTypeString()); QCString cn = displayName(FALSE); @@ -3564,8 +3564,8 @@ bool ClassDefImpl::hasDocumentation() const //---------------------------------------------------------------------- // recursive function: -// returns TRUE iff class definition `bcd' represents an (in)direct base -// class of class definition `cd'. +// returns TRUE iff class definition 'bcd' represents an (in)direct base +// class of class definition 'cd'. bool ClassDefImpl::isBaseClass(const ClassDef *bcd, bool followInstances,int level) const { @@ -3630,7 +3630,7 @@ static bool isStandardFunc(MemberDef *md) } /*! - * recursively merges the `all members' lists of a class base + * recursively merges the 'all members' lists of a class base * with that of this class. Must only be called for classes without * subclasses! */ @@ -3775,7 +3775,7 @@ void ClassDefImpl::mergeMembers() { if (!isStandardFunc(srcMd)) { - //printf(" insertMember `%s'\n",srcMd->name().data()); + //printf(" insertMember '%s'\n",srcMd->name().data()); internalInsertMember(srcMd,prot,FALSE); } } @@ -3852,7 +3852,7 @@ void ClassDefImpl::mergeMembers() { if (!isStandardFunc(mi->memberDef)) { - //printf(" insertMember `%s'\n",mi->memberDef->name().data()); + //printf(" insertMember '%s'\n",mi->memberDef->name().data()); internalInsertMember(mi->memberDef,prot,FALSE); } } @@ -4113,7 +4113,7 @@ void ClassDefImpl::determineImplUsageRelation() if (md->isVariable()) // for each member variable in this class { QCString type=removeRedundantWhiteSpace(md->typeString()); - //printf("in class %s found var type=`%s' name=`%s'\n", + //printf("in class %s found var type='%s' name='%s'\n", // name().data(),type.data(),md->name().data()); int pos=0; QCString usedClassName; @@ -4121,7 +4121,7 @@ void ClassDefImpl::determineImplUsageRelation() bool found=FALSE; while (extractClassNameFromType(type,pos,usedClassName,templSpec)!=-1 && !found) { - //printf("usedClassName=`%s' templSpec=%s\n",usedClassName.data(),templSpec.data()); + //printf("usedClassName='%s' templSpec=%s\n",usedClassName.data(),templSpec.data()); // check if usedClassName is a template argument of its class ClassDef *cd=md->getClassDef(); if (cd && cd->templateArguments()) @@ -4233,11 +4233,11 @@ void ClassDefImpl::addUsedInterfaceClasses(MemberDef *md,const char *typeStr) { ucd = new UsesClassDef(cd); m_impl->usesIntfClassDict->insert(cd->name(),ucd); - //printf("in class `%s' adding used intf class `%s'\n", + //printf("in class '%s' adding used intf class '%s'\n", // name().data(),cd->name().data()); } ucd->addAccessor(md->name()); - //printf("in class `%s' adding accessor `%s' to class `%s'\n", + //printf("in class '%s' adding accessor '%s' to class '%s'\n", // name().data(),md->name().data(),ucd->classDef->name().data()); } p=i+l; @@ -4476,7 +4476,7 @@ ClassDef *ClassDefImpl::insertTemplateInstance(const QCString &fileName, ClassDef *templateClass=m_impl->templateInstances->find(templSpec); if (templateClass==0) { - Debug::print(Debug::Classes,0," New template instance class `%s'`%s'\n",qPrint(name()),qPrint(templSpec)); + Debug::print(Debug::Classes,0," New template instance class '%s''%s'\n",qPrint(name()),qPrint(templSpec)); QCString tcname = removeRedundantWhiteSpace(localName()+templSpec); templateClass = new ClassDefImpl( fileName,startLine,startColumn,tcname,ClassDef::Class); @@ -4499,7 +4499,7 @@ ClassDef *ClassDefImpl::getVariableInstance(const char *templSpec) const ClassDef *templateClass=m_impl->variableInstances->find(templSpec); if (templateClass==0) { - Debug::print(Debug::Classes,0," New template variable instance class `%s'`%s'\n",qPrint(name()),qPrint(templSpec)); + Debug::print(Debug::Classes,0," New template variable instance class '%s' '%s'\n",qPrint(name()),qPrint(templSpec)); QCString tcname = removeRedundantWhiteSpace(name()+templSpec); templateClass = new ClassDefImpl("",1,1,tcname, ClassDef::Class,0,0,FALSE); diff --git a/src/code.l b/src/code.l index ad39e0e..e9c8689 100644 --- a/src/code.l +++ b/src/code.l @@ -415,7 +415,7 @@ static void pushScope(const char *s) g_classScope += "::"; g_classScope += s; } - //printf("pushScope(%s) result: `%s'\n",s,g_classScope.data()); + //printf("pushScope(%s) result: '%s'\n",s,g_classScope.data()); } /*! remove the top class/namespace name from the scope */ @@ -431,7 +431,7 @@ static void popScope() { //err("Too many end of scopes found!\n"); } - //printf("popScope() result: `%s'\n",g_classScope.data()); + //printf("popScope() result: '%s'\n",g_classScope.data()); } static void setCurrentDoc(const QCString &anchor) @@ -482,7 +482,7 @@ static void setClassScope(const QCString &name) n = n.mid(i+2); } pushScope(n); - //printf("--->New class scope `%s'\n",g_classScope.data()); + //printf("--->New class scope '%s'\n",g_classScope.data()); } /*! start a new line of code, inserting a line number if g_sourceFileDef @@ -513,7 +513,7 @@ static void startCodeLine() g_args.resize(0); g_parmType.resize(0); g_parmName.resize(0); - //printf("Real scope: `%s'\n",g_realScope.data()); + //printf("Real scope: '%s'\n",g_realScope.data()); g_bodyCurlyCount = 0; QCString lineAnchor; lineAnchor.sprintf("l%05d",g_yyLineNr); @@ -567,7 +567,7 @@ static void nextCodeLine() } } -/*! write a code fragment `text' that may span multiple lines, inserting +/*! write a code fragment 'text' that may span multiple lines, inserting * line numbers for each line. */ static void codifyLines(const char *text) @@ -713,7 +713,7 @@ static ClassDef *stripClassName(const char *s,Definition *d=g_currentDefinition) { cd=getResolvedClass(d,g_sourceFileDef,clName); } - //printf("stripClass trying `%s' = %p\n",clName.data(),cd); + //printf("stripClass trying '%s' = %p\n",clName.data(),cd); if (cd) { return cd; @@ -768,7 +768,7 @@ static MemberDef *setCallContextForVar(const QCString &name) DBG_CTX((stderr,"local variable?\n")); if (mcd!=VariableContext::dummyContext) { - DBG_CTX((stderr,"local var `%s' mcd=%s\n",name.data(),mcd->name().data())); + DBG_CTX((stderr,"local var '%s' mcd=%s\n",name.data(),mcd->name().data())); g_theCallContext.setScope(mcd); } } @@ -786,7 +786,7 @@ static MemberDef *setCallContextForVar(const QCString &name) DBG_CTX((stderr,"Found member %s\n",md->name().data())); if (g_scopeStack.top()!=CLASSBLOCK) { - DBG_CTX((stderr,"class member `%s' mcd=%s\n",name.data(),mcd->name().data())); + DBG_CTX((stderr,"class member '%s' mcd=%s\n",name.data(),mcd->name().data())); g_theCallContext.setScope(stripClassName(md->typeString(),md->getOuterScope())); } return md; @@ -797,7 +797,7 @@ static MemberDef *setCallContextForVar(const QCString &name) // look for a global member if ((mn=Doxygen::functionNameSDict->find(name))) { - //printf("global var `%s'\n",name.data()); + //printf("global var '%s'\n",name.data()); if (mn->count()==1) // global defined only once { MemberDef *md=mn->getFirst(); @@ -865,7 +865,7 @@ static bool getLinkInScope(const QCString &c, // scope const FileDef *fd = 0; const NamespaceDef *nd = 0; const GroupDef *gd = 0; - DBG_CTX((stderr,"getLinkInScope: trying `%s'::`%s' varOnly=%d\n",c.data(),m.data(),varOnly)); + DBG_CTX((stderr,"getLinkInScope: trying '%s'::'%s' varOnly=%d\n",c.data(),m.data(),varOnly)); if (getDefs(c,m,"()",md,cd,fd,nd,gd,FALSE,g_sourceFileDef,FALSE,g_forceTagReference) && (!varOnly || md->isVariable())) { @@ -899,7 +899,7 @@ static bool getLinkInScope(const QCString &c, // scope { addDocCrossReference(g_currentMemberDef,const_cast(md)); } - //printf("d->getReference()=`%s' d->getOutputBase()=`%s' name=`%s' member name=`%s'\n",d->getReference().data(),d->getOutputFileBase().data(),d->name().data(),md->name().data()); + //printf("d->getReference()='%s' d->getOutputBase()='%s' name='%s' member name='%s'\n",d->getReference().data(),d->getOutputFileBase().data(),d->name().data(),md->name().data()); writeMultiLineCodeLink(ol,md, text ? text : memberText); addToSearchIndex(text ? text : memberText); @@ -1122,7 +1122,7 @@ static bool generateClassMemberLink(CodeOutputInterface &ol,MemberDef *xmd,const // extract class definition of the return type in order to resolve // a->b()->c() like call chains - //printf("type=`%s' args=`%s' class=%s\n", + //printf("type='%s' args='%s' class=%s\n", // xmd->typeString(),xmd->argsString(), // xmd->getClassDef()->name().data()); @@ -1250,7 +1250,7 @@ static void generateMemberLink(CodeOutputInterface &ol,const QCString &varName, vcd = getResolvedClass(g_currentDefinition,g_sourceFileDef,g_classScope); if (vcd && vcd->isLinkable()) { - //printf("Found class %s for variable `%s'\n",g_classScope.data(),varName.data()); + //printf("Found class %s for variable '%s'\n",g_classScope.data(),varName.data()); MemberName *vmn=Doxygen::memberNameSDict->find(varName); if (vmn==0) { @@ -1261,7 +1261,7 @@ static void generateMemberLink(CodeOutputInterface &ol,const QCString &varName, ClassDef *jcd = getClass(vn.left(vi)); vn=vn.right(vn.length()-vi-2); vmn=Doxygen::memberNameSDict->find(vn); - //printf("Trying name `%s' scope=%s\n",vn.data(),scope.data()); + //printf("Trying name '%s' scope=%s\n",vn.data(),scope.data()); if (vmn) { MemberNameIterator vmni(*vmn); @@ -1284,7 +1284,7 @@ static void generateMemberLink(CodeOutputInterface &ol,const QCString &varName, } if (vmn) { - //printf("There is a variable with name `%s'\n",varName); + //printf("There is a variable with name '%s'\n",varName); MemberNameIterator vmni(*vmn); MemberDef *vmd; for (;(vmd=vmni.current());++vmni) diff --git a/src/commentscan.l b/src/commentscan.l index eb1629e..bf8a37f 100644 --- a/src/commentscan.l +++ b/src/commentscan.l @@ -2972,7 +2972,7 @@ static bool handleToc(const QCString &, const QCStringList &optList) { if (sscanf(opt.right(opt.length() - i - 1).data(),"%d%c",&level,&dum) != 1) { - warn(yyFileName,yyLineNr,"Unknown option:level specified with \\tableofcontents: `%s'", (*it).stripWhiteSpace().data()); + warn(yyFileName,yyLineNr,"Unknown option:level specified with \\tableofcontents: '%s'", (*it).stripWhiteSpace().data()); opt = ""; } else @@ -3002,7 +3002,7 @@ static bool handleToc(const QCString &, const QCStringList &optList) } else { - warn(yyFileName,yyLineNr,"Unknown option specified with \\tableofcontents: `%s'", (*it).stripWhiteSpace().data()); + warn(yyFileName,yyLineNr,"Unknown option specified with \\tableofcontents: '%s'", (*it).stripWhiteSpace().data()); } } } diff --git a/src/configimpl.l b/src/configimpl.l index d114b4a..0c9d8ac 100644 --- a/src/configimpl.l +++ b/src/configimpl.l @@ -174,7 +174,7 @@ void ConfigInt::convertStrToVal() int val = m_valueString.toInt(&ok); if (!ok || valm_maxVal) { - config_warn("argument `%s' for option %s is not a valid number in the range [%d..%d]!\n" + config_warn("argument '%s' for option %s is not a valid number in the range [%d..%d]!\n" "Using the default: %d!\n",m_valueString.data(),m_name.data(),m_minVal,m_maxVal,m_value); } else @@ -199,7 +199,7 @@ void ConfigBool::convertStrToVal() } else { - config_warn("argument `%s' for option %s is not a valid boolean value\n" + config_warn("argument '%s' for option %s is not a valid boolean value\n" "Using the default: %s!\n",m_valueString.data(),m_name.data(),m_value?"YES":"NO"); } } @@ -711,7 +711,7 @@ static void readIncludeFile(const char *incName) ConfigOption *option = config->get(cmd); if (option==0) // oops not known { - config_warn("ignoring unsupported tag `%s' at line %d, file %s\n", + config_warn("ignoring unsupported tag '%s' at line %d, file %s\n", cmd.data(),yyLineNr,yyFileName.data()); BEGIN(SkipInvalid); } @@ -754,12 +754,12 @@ static void readIncludeFile(const char *incName) case ConfigOption::O_Obsolete: if (config_upd) { - config_warn("Tag `%s' at line %d of file `%s' has become obsolete.\n" + config_warn("Tag '%s' at line %d of file '%s' has become obsolete.\n" " This tag has been removed.\n", cmd.data(),yyLineNr,yyFileName.data()); } else { - config_warn("Tag `%s' at line %d of file `%s' has become obsolete.\n" + config_warn("Tag '%s' at line %d of file '%s' has become obsolete.\n" " To avoid this warning please remove this line from your configuration " "file or upgrade it using \"doxygen -u\"\n", cmd.data(),yyLineNr,yyFileName.data()); } @@ -768,12 +768,12 @@ static void readIncludeFile(const char *incName) case ConfigOption::O_Disabled: if (config_upd) { - config_warn("Tag `%s' at line %d of file `%s' belongs to an option that was not enabled at compile time.\n" + config_warn("Tag '%s' at line %d of file '%s' belongs to an option that was not enabled at compile time.\n" " This tag has been removed.\n", cmd.data(),yyLineNr,yyFileName.data()); } else { - config_warn("Tag `%s' at line %d of file `%s' belongs to an option that was not enabled at compile time.\n" + config_warn("Tag '%s' at line %d of file '%s' belongs to an option that was not enabled at compile time.\n" " To avoid this warning please remove this line from your configuration " "file or upgrade it using \"doxygen -u\", or recompile doxygen with this feature enabled.\n", cmd.data(),yyLineNr,yyFileName.data()); } @@ -787,7 +787,7 @@ static void readIncludeFile(const char *incName) ConfigOption *option = config->get(cmd); if (option==0) // oops not known { - config_warn("ignoring unsupported tag `%s' at line %d, file %s\n", + config_warn("ignoring unsupported tag '%s' at line %d, file %s\n", cmd.data(),yyLineNr,yyFileName.data()); BEGIN(SkipInvalid); } @@ -809,18 +809,18 @@ static void readIncludeFile(const char *incName) case ConfigOption::O_String: case ConfigOption::O_Int: case ConfigOption::O_Bool: - config_warn("operator += not supported for `%s'. Ignoring line at line %d, file %s\n", + config_warn("operator += not supported for '%s'. Ignoring line at line %d, file %s\n", yytext,yyLineNr,yyFileName.data()); BEGIN(SkipInvalid); break; case ConfigOption::O_Obsolete: - config_warn("Tag `%s' at line %d of file %s has become obsolete.\n" + config_warn("Tag '%s' at line %d of file %s has become obsolete.\n" "To avoid this warning please update your configuration " "file using \"doxygen -u\"\n", cmd.data(),yyLineNr,yyFileName.data()); BEGIN(SkipInvalid); break; case ConfigOption::O_Disabled: - config_warn("Tag `%s' at line %d of file %s belongs to an option that was not enabled at compile time.\n" + config_warn("Tag '%s' at line %d of file %s belongs to an option that was not enabled at compile time.\n" "To avoid this warning please remove this line from your configuration " "file, upgrade it using \"doxygen -u\", or recompile doxygen with this feature enabled.\n", cmd.data(),yyLineNr,yyFileName.data()); BEGIN(SkipInvalid); @@ -857,13 +857,13 @@ static void readIncludeFile(const char *incName) } } -[a-z_A-Z0-9]+ { config_warn("ignoring unknown tag `%s' at line %d, file %s\n",yytext,yyLineNr,yyFileName.data()); } +[a-z_A-Z0-9]+ { config_warn("ignoring unknown tag '%s' at line %d, file %s\n",yytext,yyLineNr,yyFileName.data()); } \n { yyLineNr++; BEGIN(Start); } \n { yyLineNr++; if (!elemStr.isEmpty()) { - //printf("elemStr1=`%s'\n",elemStr.data()); + //printf("elemStr1='%s'\n",elemStr.data()); l->append(elemStr); } BEGIN(Start); @@ -871,7 +871,7 @@ static void readIncludeFile(const char *incName) [ \t,]+ { if (!elemStr.isEmpty()) { - //printf("elemStr2=`%s'\n",elemStr.data()); + //printf("elemStr2='%s'\n",elemStr.data()); l->append(elemStr); } elemStr.resize(0); @@ -886,7 +886,7 @@ static void readIncludeFile(const char *incName) "\""|"\n" { // we add a bogus space to signal that the string was quoted. This space will be stripped later on. tmpString+=" "; - //printf("Quoted String = `%s'\n",tmpString.data()); + //printf("Quoted String = '%s'\n",tmpString.data()); if (lastState==GetString) { (*s)+=configStringRecode(tmpString,encoding,"UTF-8"); @@ -917,7 +917,7 @@ static void readIncludeFile(const char *incName) else { *b=FALSE; - config_warn("Invalid value `%s' for " + config_warn("Invalid value '%s' for " "boolean tag in line %d, file %s; use YES or NO\n", bs.data(),yyLineNr,yyFileName.data()); } @@ -1003,7 +1003,7 @@ static void substEnvVarsInString(QCString &s) //printf("substEnvVarInString(%s) start\n",s.data()); while ((i=re.match(s,p,&l))!=-1 || (i=re2.match(s,p,&l))!=-1) { - //printf("Found environment var s.mid(%d,%d)=`%s'\n",i+2,l-3,s.mid(i+2,l-3).data()); + //printf("Found environment var s.mid(%d,%d)='%s'\n",i+2,l-3,s.mid(i+2,l-3).data()); QCString env=portable_getenv(s.mid(i+2,l-3)); substEnvVarsInString(env); // recursively expand variables if needed. s = s.left(i)+env+s.right(s.length()-i-l); @@ -1200,7 +1200,7 @@ static QCString configFileToString(const char *name) QFileInfo fi(name); if (!fi.exists() || !fi.isFile()) { - config_err("file `%s' not found\n",name); + config_err("file '%s' not found\n",name); return ""; } f.setName(name); @@ -1221,7 +1221,7 @@ static QCString configFileToString(const char *name) } if (!fileOpened) { - config_err("cannot open file `%s' for reading\n",name); + config_err("cannot open file '%s' for reading\n",name); exit(1); } return ""; @@ -1399,7 +1399,7 @@ void Config::checkAndCorrect() QFileInfo fi(headerFile); if (!fi.exists()) { - err("tag HTML_HEADER: header file `%s' " + err("tag HTML_HEADER: header file '%s' " "does not exist\n",headerFile.data()); exit(1); } @@ -1411,7 +1411,7 @@ void Config::checkAndCorrect() QFileInfo fi(footerFile); if (!fi.exists()) { - err("tag HTML_FOOTER: footer file `%s' " + err("tag HTML_FOOTER: footer file '%s' " "does not exist\n",footerFile.data()); exit(1); } @@ -1426,7 +1426,7 @@ void Config::checkAndCorrect() QFileInfo fi(MathJaxCodefile); if (!fi.exists()) { - err("tag MATHJAX_CODEFILE file `%s' " + err("tag MATHJAX_CODEFILE file '%s' " "does not exist\n",MathJaxCodefile.data()); exit(1); } @@ -1446,7 +1446,7 @@ void Config::checkAndCorrect() QFileInfo fi(latexHeaderFile); if (!fi.exists()) { - err("tag LATEX_HEADER: header file `%s' " + err("tag LATEX_HEADER: header file '%s' " "does not exist\n",latexHeaderFile.data()); exit(1); } @@ -1458,7 +1458,7 @@ void Config::checkAndCorrect() QFileInfo fi(latexFooterFile); if (!fi.exists()) { - err("tag LATEX_FOOTER: footer file `%s' " + err("tag LATEX_FOOTER: footer file '%s' " "does not exist\n",latexFooterFile.data()); exit(1); } @@ -1470,7 +1470,7 @@ void Config::checkAndCorrect() while (s) { QFileInfo fi(s); - if (!fi.exists()) warn_uncond("tag INCLUDE_PATH: include path `%s' " + if (!fi.exists()) warn_uncond("tag INCLUDE_PATH: include path '%s' " "does not exist\n",s); s=includePath.next(); } @@ -1486,7 +1486,7 @@ void Config::checkAndCorrect() alias=alias.stripWhiteSpace(); if (alias.find(re1)!=0 && alias.find(re2)!=0) { - err("Illegal alias format `%s'. Use \"name=value\" or \"name(n)=value\", where n is the number of arguments\n", + err("Illegal alias format '%s'. Use \"name=value\" or \"name(n)=value\", where n is the number of arguments\n", alias.data()); } s=aliasList.next(); @@ -1520,7 +1520,7 @@ void Config::checkAndCorrect() } //else if (dotImageFormat!="gif" && dotImageFormat!="png" && dotImageFormat!="jpg") //{ - // err("Invalid value for DOT_IMAGE_FORMAT: `%s'. Using the default.\n",dotImageFormat.data()); + // err("Invalid value for DOT_IMAGE_FORMAT: '%s'. Using the default.\n",dotImageFormat.data()); // dotImageFormat = "png"; //} @@ -1659,7 +1659,7 @@ void Config::checkAndCorrect() QFileInfo fi(s); if (!fi.exists()) { - warn_uncond("tag INPUT: input source `%s' does not exist\n",s); + warn_uncond("tag INPUT: input source '%s' does not exist\n",s); } s=inputSources.next(); } diff --git a/src/constexp.l b/src/constexp.l index bd42104..c9b984a 100644 --- a/src/constexp.l +++ b/src/constexp.l @@ -124,7 +124,7 @@ bool parseconstexp(const char *fileName,int lineNr,const QCString &s) constexpYYrestart( yyin, yyscanner ); printlex(yy_flex_debug, TRUE, __FILE__, fileName); - //printf("Expression: `%s'\n",s.data()); + //printf("Expression: '%s'\n",s.data()); constexpYYparse(yyscanner); diff --git a/src/declinfo.l b/src/declinfo.l index d7f8743..414dd51 100644 --- a/src/declinfo.l +++ b/src/declinfo.l @@ -198,7 +198,7 @@ ID "$"?([a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF]*)|(@[0-9]+) static void addType(yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t*)yyscanner; - //printf("addType() yyextra->type=`%s' yyextra->scope=`%s' yyextra->name=`%s'\n", + //printf("addType() yyextra->type='%s' yyextra->scope='%s' yyextra->name='%s'\n", // yyextra->type.data(),yyextra->scope.data(),yyextra->name.data()); if (yyextra->name.isEmpty() && yyextra->scope.isEmpty()) return; if (!yyextra->type.isEmpty()) yyextra->type+=" "; @@ -211,7 +211,7 @@ static void addType(yyscan_t yyscanner) static void addTypeName(yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t*)yyscanner; - //printf("addTypeName() yyextra->type=`%s' yyextra->scope=`%s' yyextra->name=`%s'\n", + //printf("addTypeName() yyextra->type='%s' yyextra->scope='%s' yyextra->name='%s'\n", // yyextra->type.data(),yyextra->scope.data(),yyextra->name.data()); if (yyextra->name.isEmpty() || yyextra->name.at(yyextra->name.length()-1)==':') // end of Objective-C keyword => append to yyextra->name not yyextra->type @@ -256,7 +256,7 @@ void parseFuncDecl(const QCString &decl,bool objC,QCString &cl,QCString &t, printlex(yy_flex_debug, TRUE, __FILE__, NULL); yyextra->inputString = decl; - //printf("Input=`%s'\n",yyextra->inputString); + //printf("Input='%s'\n",yyextra->inputString); yyextra->inputPosition = 0; yyextra->classTempListFound = FALSE; yyextra->funcTempListFound = FALSE; @@ -274,7 +274,7 @@ void parseFuncDecl(const QCString &decl,bool objC,QCString &cl,QCString &t, BEGIN( Start ); declinfoYYlex(g_yyscanner); - //printf("yyextra->type=`%s' class=`%s' yyextra->name=`%s' yyextra->args=`%s'\n", + //printf("yyextra->type='%s' class='%s' yyextra->name='%s' yyextra->args='%s'\n", // yyextra->type.data(),yyextra->scope.data(),yyextra->name.data(),yyextra->args.data()); int nb = yyextra->name.findRev('['); @@ -327,7 +327,7 @@ void parseFuncDecl(const QCString &decl,bool objC,QCString &cl,QCString &t, a.prepend(")"); t=t.left(t.length()-1); } - //printf("yyextra->type=`%s' class=`%s' yyextra->name=`%s' yyextra->args=`%s'\n", + //printf("yyextra->type='%s' class='%s' yyextra->name='%s' yyextra->args='%s'\n", // t.data(),cl.data(),n.data(),a.data()); printlex(yy_flex_debug, FALSE, __FILE__, NULL); @@ -351,8 +351,8 @@ void dumpDecl(const char *s) QCString funcTNames; msg("-----------------------------------------\n"); parseFuncDecl(s,yyextra->className,classTNames,yyextra->type,yyextra->name,yyextra->args,funcTNames); - msg("yyextra->type=`%s' class=`%s' classTempl=`%s' yyextra->name=`%s' " - "funcTemplateNames=`%s' yyextra->args=`%s'\n", + msg("yyextra->type='%s' class='%s' classTempl='%s' yyextra->name='%s' " + "funcTemplateNames='%s' yyextra->args='%s'\n", yyextra->type.data(),yyextra->className.data(),classTNames.data(), yyextra->name.data(),funcTNames.data(),yyextra->args.data() ); diff --git a/src/defargs.l b/src/defargs.l index e49ef2e..85878c1 100644 --- a/src/defargs.l +++ b/src/defargs.l @@ -367,7 +367,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" { g_curArgTypeName=removeRedundantWhiteSpace(g_curArgTypeName); g_curArgDefValue=g_curArgDefValue.stripWhiteSpace(); - //printf("curArgType=`%s' curArgDefVal=`%s'\n",g_curArgTypeName.data(),g_curArgDefValue.data()); + //printf("curArgType='%s' curArgDefVal='%s'\n",g_curArgTypeName.data(),g_curArgDefValue.data()); int l=g_curArgTypeName.length(); if (l>0) { @@ -447,7 +447,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" a->defval = g_curArgDefValue.copy(); //printf("a->type=%s a->name=%s a->defval=\"%s\"\n",a->type.data(),a->name.data(),a->defval.data()); a->docs = g_curArgDocs.stripWhiteSpace(); - //printf("Argument `%s' `%s' adding docs=`%s'\n",a->type.data(),a->name.data(),a->docs.data()); + //printf("Argument '%s' '%s' adding docs='%s'\n",a->type.data(),a->name.data(),a->docs.data()); g_argList->append(a); } g_curArgAttrib.resize(0); @@ -479,7 +479,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" g_curArgTypeName+=" []"; g_curArgArray.resize(0); } - //printf("resolveName `%s'->`%s'\n",yytext,name.data()); + //printf("resolveName '%s'->'%s'\n",yytext,name.data()); g_curArgTypeName+=name; } . { diff --git a/src/defgen.cpp b/src/defgen.cpp index 6601f6e..d0553f7 100644 --- a/src/defgen.cpp +++ b/src/defgen.cpp @@ -262,7 +262,7 @@ void generateDEFForMember(MemberDef *md, t << memPrefix << "referenceto = {" << endl; t << refPrefix << "id = '" << rmd->getBodyDef()->getOutputFileBase() - << "_1" // encoded `:' character (see util.cpp:convertNameToFile) + << "_1" // encoded ':' character (see util.cpp:convertNameToFile) << rmd->anchor() << "';" << endl; t << refPrefix << "line = '" @@ -295,7 +295,7 @@ void generateDEFForMember(MemberDef *md, t << memPrefix << "referenceby = {" << endl; t << refPrefix << "id = '" << rmd->getBodyDef()->getOutputFileBase() - << "_1" // encoded `:' character (see util.cpp:convertNameToFile) + << "_1" // encoded ':' character (see util.cpp:convertNameToFile) << rmd->anchor() << "';" << endl; t << refPrefix << "line = '" @@ -576,13 +576,13 @@ void generateDEF() dir.setPath(QDir::currentDirPath()); if (!dir.mkdir(outputDirectory)) { - err("tag OUTPUT_DIRECTORY: Output directory `%s' does not " + err("tag OUTPUT_DIRECTORY: Output directory '%s' does not " "exist and cannot be created\n",outputDirectory.data()); exit(1); } else { - msg("Notice: Output directory `%s' does not exist. " + msg("Notice: Output directory '%s' does not exist. " "I have created it for you.\n", outputDirectory.data()); } dir.cd(outputDirectory); diff --git a/src/definition.cpp b/src/definition.cpp index b9c40f6..3b5fea1 100644 --- a/src/definition.cpp +++ b/src/definition.cpp @@ -231,7 +231,7 @@ static void addToMap(const char *name,Definition *d) if (!vhdlOpt && index!=-1) symbolName=symbolName.mid(index+2); if (!symbolName.isEmpty()) { - //printf("******* adding symbol `%s' (%p)\n",symbolName.data(),d); + //printf("******* adding symbol '%s' (%p)\n",symbolName.data(),d); DefinitionIntf *di=Doxygen::symbolMap->find(symbolName); //printf(" addToMap(%p): looking for symbol %s: %p\n",d,symbolName.data(),di); if (di==0) // new Symbol @@ -275,7 +275,7 @@ static void removeFromMap(Definition *d) QCString symbolName = d->_symbolName(); if (!symbolName.isEmpty()) { - //printf("******* removing symbol `%s' (%p)\n",symbolName.data(),d); + //printf("******* removing symbol '%s' (%p)\n",symbolName.data(),d); DefinitionIntf *di=Doxygen::symbolMap->find(symbolName); if (di) { @@ -438,7 +438,7 @@ void DefinitionImpl::addSectionsToDefinition(QList *anchorList) SectionInfo *si; for (;(si=it.current());++it) { - //printf("Add section `%s' to definition `%s'\n", + //printf("Add section '%s' to definition '%s'\n", // si->label.data(),name().data()); SectionInfo *gsi=Doxygen::sectionDict->find(si->label); //printf("===== label=%s gsi=%p\n",si->label.data(),gsi); @@ -594,7 +594,7 @@ void DefinitionImpl::_setDocumentation(const char *d,const char *docFile,int doc } if (!_docsAlreadyAdded(doc,m_impl->docSignatures)) { - //printf("setting docs for %s: `%s'\n",name().data(),m_doc.data()); + //printf("setting docs for %s: '%s'\n",name().data(),m_doc.data()); if (m_impl->details==0) { m_impl->details = new DocInfo; @@ -913,7 +913,7 @@ bool readCodeFragment(const char *fileName, int pc=0; while ((c=*p++)!='{' && c!=':' && c!=0) { - //printf("parsing char `%c'\n",c); + //printf("parsing char '%c'\n",c); if (c=='\n') { lineNr++,col=0; @@ -1277,7 +1277,7 @@ void DefinitionImpl::writeInlineCode(OutputList &ol,const char *scopeName) const // codeFragment.data(),m_impl->defFileExt.data()); ParserInterface *pIntf = Doxygen::parserManager->getParser(m_impl->defFileExt); pIntf->resetCodeParserState(); - //printf("Read:\n`%s'\n\n",codeFragment.data()); + //printf("Read:\n'%s'\n\n",codeFragment.data()); const MemberDef *thisMd = 0; if (definitionType()==TypeMember) thisMd = dynamic_cast (this); diff --git a/src/diagram.cpp b/src/diagram.cpp index 06480fc..08b49ca 100644 --- a/src/diagram.cpp +++ b/src/diagram.cpp @@ -1165,7 +1165,7 @@ void ClassDiagram::writeFigure(FTextStream &output,const char *path, t << " /boxwidth boxwidth str stringwidth pop max def\n"; t << "} def\n"; t << "\n"; - t << "/box % draws a box with text `arg1' at grid pos (arg2,arg3)\n"; + t << "/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n"; t << "{ gsave\n"; t << " 2 setlinewidth\n"; t << " newpath\n"; @@ -1267,7 +1267,7 @@ void ClassDiagram::writeFigure(FTextStream &output,const char *path, t << " stroke\n"; t << "} def\n"; t << "\n"; - t << "/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'\n"; + t << "/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n"; t << "{\n"; t << " /ys exch def\n"; t << " /xe exch def\n"; @@ -1337,7 +1337,7 @@ void ClassDiagram::writeFigure(FTextStream &output,const char *path, QCString epstopdfArgs(4096); epstopdfArgs.sprintf("\"%s.eps\" --outfile=\"%s.pdf\"", epsBaseName.data(),epsBaseName.data()); - //printf("Converting eps using `%s'\n",epstopdfArgs.data()); + //printf("Converting eps using '%s'\n",epstopdfArgs.data()); portable_sysTimerStart(); if (portable_system("epstopdf",epstopdfArgs)!=0) { diff --git a/src/docparser.cpp b/src/docparser.cpp index 90ace3f..8860bec 100644 --- a/src/docparser.cpp +++ b/src/docparser.cpp @@ -419,7 +419,7 @@ static void checkArgumentName(const QCString &name,bool isParam) { QCString aName=name.mid(i,l); if (lang==SrcLangExt_Fortran) aName=aName.lower(); - //printf("aName=`%s'\n",aName.data()); + //printf("aName='%s'\n",aName.data()); ArgumentListIterator ali(*al); const Argument *a; bool found=FALSE; @@ -428,7 +428,7 @@ static void checkArgumentName(const QCString &name,bool isParam) QCString argName = g_memberDef->isDefine() ? a->type : a->name; if (lang==SrcLangExt_Fortran) argName=argName.lower(); argName=argName.stripWhiteSpace(); - //printf("argName=`%s' aName=%s\n",argName.data(),aName.data()); + //printf("argName='%s' aName=%s\n",argName.data(),aName.data()); if (argName.right(3)=="...") argName=argName.left(argName.length()-3); if (aName==argName && isParam) { @@ -696,7 +696,7 @@ static bool findDocsForMemberOrCompound(const char *commandName, const GroupDef *gd=0; const PageDef *pd=0; bool found = getDefs( - g_context.find('.')==-1?g_context.data():"", // `find('.') is a hack to detect files + g_context.find('.')==-1?g_context.data():"", // find('.') is a hack to detect files name, args.isEmpty()?0:args.data(), md,cd,fd,nd,gd,FALSE,0,TRUE); @@ -718,7 +718,7 @@ static bool findDocsForMemberOrCompound(const char *commandName, { fullName.prepend(g_context.left(scopeOffset)+"::"); } - //printf("Trying fullName=`%s'\n",fullName.data()); + //printf("Trying fullName='%s'\n",fullName.data()); // try class, namespace, group, page, file reference cd = Doxygen::classSDict->find(fullName); @@ -1860,7 +1860,7 @@ DocAnchor::DocAnchor(DocNode *parent,const QCString &id,bool newAnchor) } else { - warn_doc_error(g_fileName,doctokenizerYYlineno,"Invalid cite anchor id `%s'",qPrint(id)); + warn_doc_error(g_fileName,doctokenizerYYlineno,"Invalid cite anchor id '%s'",qPrint(id)); m_anchor = "invalid"; m_file = "invalid"; } @@ -1885,7 +1885,7 @@ DocAnchor::DocAnchor(DocNode *parent,const QCString &id,bool newAnchor) } else { - warn_doc_error(g_fileName,doctokenizerYYlineno,"Invalid anchor id `%s'",qPrint(id)); + warn_doc_error(g_fileName,doctokenizerYYlineno,"Invalid anchor id '%s'",qPrint(id)); m_anchor = "invalid"; m_file = "invalid"; } @@ -2530,7 +2530,7 @@ DocRef::DocRef(DocNode *parent,const QCString &target,const QCString &context) : } } m_text = target; - warn_doc_error(g_fileName,doctokenizerYYlineno,"unable to resolve reference to `%s' for \\ref command", + warn_doc_error(g_fileName,doctokenizerYYlineno,"unable to resolve reference to '%s' for \\ref command", qPrint(target)); } @@ -2628,7 +2628,7 @@ DocCite::DocCite(DocNode *parent,const QCString &target,const QCString &) //cont } else if (cite==0) { - warn_doc_error(g_fileName,doctokenizerYYlineno,"unable to resolve reference to `%s' for \\cite command", + warn_doc_error(g_fileName,doctokenizerYYlineno,"unable to resolve reference to '%s' for \\cite command", qPrint(target)); } else @@ -2671,7 +2671,7 @@ DocLink::DocLink(DocNode *parent,const QCString &target) } // bogus link target - warn_doc_error(g_fileName,doctokenizerYYlineno,"unable to resolve link to `%s' for \\link command", + warn_doc_error(g_fileName,doctokenizerYYlineno,"unable to resolve link to '%s' for \\link command", qPrint(target)); } @@ -3274,7 +3274,7 @@ DocHtmlCaption::DocHtmlCaption(DocNode *parent,const HtmlAttribList &attribs) } else { - warn_doc_error(g_fileName,doctokenizerYYlineno,"Invalid caption id `%s'",qPrint(opt->value)); + warn_doc_error(g_fileName,doctokenizerYYlineno,"Invalid caption id '%s'",qPrint(opt->value)); } } else // copy attribute @@ -5399,7 +5399,7 @@ int DocPara::handleCommand(const QCString &cmdName, const int tok) { case CMD_UNKNOWN: m_children.append(new DocWord(this,TK_COMMAND_CHAR(tok) + cmdName)); - warn_doc_error(g_fileName,doctokenizerYYlineno,"Found unknown command `\\%s'",qPrint(cmdName)); + warn_doc_error(g_fileName,doctokenizerYYlineno,"Found unknown command '\\%s'",qPrint(cmdName)); break; case CMD_EMPHASIS: m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Italic,TRUE)); @@ -7040,7 +7040,7 @@ void DocText::parse() m_children.append(new DocSymbol(this,DocSymbol::Sym_Equal)); break; default: - warn_doc_error(g_fileName,doctokenizerYYlineno,"Unexpected command `%s' found", + warn_doc_error(g_fileName,doctokenizerYYlineno,"Unexpected command '%s' found", qPrint(g_token->name)); break; } @@ -7125,7 +7125,7 @@ void DocRoot::parse() } else { - warn_doc_error(g_fileName,doctokenizerYYlineno,"Invalid section id `%s'; ignoring section",qPrint(g_token->sectionId)); + warn_doc_error(g_fileName,doctokenizerYYlineno,"Invalid section id '%s'; ignoring section",qPrint(g_token->sectionId)); retval = 0; } } diff --git a/src/doctokenizer.l b/src/doctokenizer.l index 5346c0a..52370ac 100644 --- a/src/doctokenizer.l +++ b/src/doctokenizer.l @@ -157,7 +157,7 @@ static int computeIndent(const char *str,int length) static void processSection() { - //printf("%s: found section/anchor with name `%s'\n",g_fileName.data(),g_secLabel.data()); + //printf("%s: found section/anchor with name '%s'\n",g_fileName.data(),g_secLabel.data()); QCString file; if (g_memberGroup) { @@ -1343,7 +1343,7 @@ REFWORD_NOCV {FILEMASK}|{LABELID}|{REFWORD2_NOCV}|{REFWORD3}|{REFWORD4_NOCV} BEGIN(St_Sections); } . { - warn(g_fileName,yylineno,"Unexpected character `%s' while looking for section label or title",yytext); + warn(g_fileName,yylineno,"Unexpected character '%s' while looking for section label or title",yytext); } [^\n]+ | @@ -1358,12 +1358,12 @@ REFWORD_NOCV {FILEMASK}|{LABELID}|{REFWORD2_NOCV}|{REFWORD3}|{REFWORD4_NOCV} warn(g_fileName,yylineno,"Unexpected new line character"); } <*>[\\@<>&$#%~"=] { /* unescaped special character */ - //warn(g_fileName,yylineno,"Unexpected character `%s', assuming command \\%s was meant.",yytext,yytext); + //warn(g_fileName,yylineno,"Unexpected character '%s', assuming command \\%s was meant.",yytext,yytext); g_token->name = yytext; return TK_COMMAND_SEL(); } <*>. { - warn(g_fileName,yylineno,"Unexpected character `%s'",yytext); + warn(g_fileName,yylineno,"Unexpected character '%s'",yytext); } %% @@ -1375,7 +1375,7 @@ void doctokenizerYYFindSections(const char *input,Definition *d, if (input==0) return; printlex(yy_flex_debug, TRUE, __FILE__, fileName); g_inputString = input; - //printf("parsing --->`%s'<---\n",input); + //printf("parsing --->'%s'<---\n",input); g_inputPos = 0; g_definition = d; g_memberGroup = mg; diff --git a/src/dot.cpp b/src/dot.cpp index 5aca277..9201624 100644 --- a/src/dot.cpp +++ b/src/dot.cpp @@ -694,7 +694,7 @@ static void checkDotResult(const char *imgExt, const char *imgName) { if (!(data[1]=='P' && data[2]=='N' && data[3]=='G')) { - err("Image `%s' produced by dot is not a valid PNG!\n" + err("Image '%s' produced by dot is not a valid PNG!\n" "You should either select a different format " "(DOT_IMAGE_FORMAT in the config file) or install a more " "recent version of graphviz (1.7+)\n",imgName @@ -703,13 +703,13 @@ static void checkDotResult(const char *imgExt, const char *imgName) } else { - err("Could not read image `%s' generated by dot!\n",imgName); + err("Could not read image '%s' generated by dot!\n",imgName); } fclose(f); } else { - err("Could not open image `%s' generated by dot!\n",imgName); + err("Could not open image '%s' generated by dot!\n",imgName); } } } @@ -2311,7 +2311,7 @@ void DotNode::renumberNodes(int &number) const DotNode *DotNode::findDocNode() const { if (!m_url.isEmpty()) return this; - //printf("findDocNode(): `%s'\n",m_label.data()); + //printf("findDocNode(): '%s'\n",m_label.data()); if (m_parents) { QListIterator dnli(*m_parents); @@ -2473,7 +2473,7 @@ void DotGfxHierarchyTable::writeGraph(FTextStream &out, void DotGfxHierarchyTable::addHierarchy(DotNode *n,const ClassDef *cd,bool hideSuper) { - //printf("addHierarchy `%s' baseClasses=%d\n",cd->name().data(),cd->baseClasses()->count()); + //printf("addHierarchy '%s' baseClasses=%d\n",cd->name().data(),cd->baseClasses()->count()); if (cd->subClasses()) { BaseClassListIterator bcli(*cd->subClasses()); @@ -2481,11 +2481,11 @@ void DotGfxHierarchyTable::addHierarchy(DotNode *n,const ClassDef *cd,bool hideS for ( ; (bcd=bcli.current()) ; ++bcli ) { ClassDef *bClass=bcd->classDef; - //printf(" Trying sub class=`%s' usedNodes=%d\n",bClass->name().data(),m_usedNodes->count()); + //printf(" Trying sub class='%s' usedNodes=%d\n",bClass->name().data(),m_usedNodes->count()); if (bClass->isVisibleInHierarchy() && hasVisibleRoot(bClass->baseClasses())) { DotNode *bn; - //printf(" Node `%s' Found visible class=`%s'\n",n->m_label.data(), + //printf(" Node '%s' Found visible class='%s'\n",n->m_label.data(), // bClass->name().data()); if ((bn=m_usedNodes->find(bClass->name()))) // node already present { @@ -2695,7 +2695,7 @@ void DotClassGraph::addClass(const ClassDef *cd,DotNode *n,int prot, { className=cd->displayName(); } - //printf("DotClassGraph::addClass(class=`%s',parent=%s,prot=%d,label=%s,dist=%d,usedName=%s,templSpec=%s,base=%d)\n", + //printf("DotClassGraph::addClass(class='%s',parent=%s,prot=%d,label=%s,dist=%d,usedName=%s,templSpec=%s,base=%d)\n", // className.data(),n->m_label.data(),prot,label,distance,usedName,templSpec,base); DotNode *bn = m_usedNodes->find(className); if (bn) // class already inserted @@ -2746,7 +2746,7 @@ void DotClassGraph::addClass(const ClassDef *cd,DotNode *n,int prot, } bn->setDistance(distance); m_usedNodes->insert(className,bn); - //printf(" add new child node `%s' to %s hidden=%d url=%s\n", + //printf(" add new child node '%s' to %s hidden=%d url=%s\n", // className.data(),n->m_label.data(),cd->isHidden(),tmp_url.data()); buildGraph(cd,bn,base,distance+1); @@ -2901,7 +2901,7 @@ void DotClassGraph::buildGraph(const ClassDef *cd,DotNode *n,bool base,int dista BaseClassDef *bcd; for ( ; (bcd=bcli.current()) ; ++bcli ) { - //printf("-------- inheritance relation %s->%s templ=`%s'\n", + //printf("-------- inheritance relation %s->%s templ='%s'\n", // cd->name().data(),bcd->classDef->name().data(),bcd->templSpecifiers.data()); addClass(bcd->classDef,n,bcd->prot,0,bcd->usedName, bcd->templSpecifiers,base,distance); @@ -3022,7 +3022,7 @@ void DotClassGraph::buildGraph(const ClassDef *cd,DotNode *n,bool base,int dista DotClassGraph::DotClassGraph(const ClassDef *cd,DotNode::GraphType t) { - //printf("--------------- DotClassGraph::DotClassGraph `%s'\n",cd->displayName().data()); + //printf("--------------- DotClassGraph::DotClassGraph '%s'\n",cd->displayName().data()); m_graphType = t; QCString tmp_url=""; if (cd->isLinkable() && !cd->isHidden()) @@ -3390,7 +3390,7 @@ void DotInclDepGraph::buildGraph(DotNode *n,const FileDef *fd,int distance) { const FileDef *bfd = ii->fileDef; QCString in = ii->includeName; - //printf(">>>> in=`%s' bfd=%p\n",ii->includeName.data(),bfd); + //printf(">>>> in='%s' bfd=%p\n",ii->includeName.data(),bfd); bool doc=TRUE,src=FALSE; if (bfd) { diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 30c2001..964d9e1 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -804,7 +804,7 @@ static void buildFileList(Entry *root) { const char *fn = root->fileName.data(); QCString text(4096); - text.sprintf("the name `%s' supplied as " + text.sprintf("the name '%s' supplied as " "the argument in the \\file statement ", qPrint(root->name)); if (ambig) // name is ambiguous @@ -857,7 +857,7 @@ static void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root) ) { // explicit request QCString text; - text.sprintf("the name `%s' supplied as " + text.sprintf("the name '%s' supplied as " "the argument of the \\class, \\struct, \\union, or \\include command ", qPrint(includeFile) ); @@ -1287,7 +1287,7 @@ static void addClassToContext(Entry *root) QCString namespaceName; extractNamespaceName(fullName,className,namespaceName); - //printf("New class: fullname %s namespace `%s' name=`%s' brief=`%s' docs=`%s'\n", + //printf("New class: fullname %s namespace '%s' name='%s' brief='%s' docs='%s'\n", // fullName.data(),namespaceName.data(),className.data(),root->brief.data(),root->doc.data()); QCString tagName; @@ -1320,7 +1320,7 @@ static void addClassToContext(Entry *root) } cd=createClassDef(tagInfo?tagName:root->fileName,root->startLine,root->startColumn, fullName,sec,tagName,refFileName,TRUE,root->spec&Entry::Enum); - Debug::print(Debug::Classes,0," New class `%s' (sec=0x%08x)! #tArgLists=%d tagInfo=%p\n", + Debug::print(Debug::Classes,0," New class '%s' (sec=0x%08x)! #tArgLists=%d tagInfo=%p\n", qPrint(fullName),sec,root->tArgLists ? (int)root->tArgLists->count() : -1, tagInfo); cd->setDocumentation(root->doc,root->docFile,root->docLine); // copy docs to definition cd->setBriefDescription(root->brief,root->briefFile,root->briefLine); @@ -1368,7 +1368,7 @@ static void addClassToContext(Entry *root) } if (fd && (root->section & Entry::COMPOUND_MASK)) { - //printf(">> Inserting class `%s' in file `%s' (root->fileName=`%s')\n", + //printf(">> Inserting class '%s' in file '%s' (root->fileName='%s')\n", // cd->name().data(), // fd->name().data(), // root->fileName.data() @@ -1862,7 +1862,7 @@ static const NamespaceDef *findUsedNamespace(const NamespaceSDict *unl, { QCString uScope=und->name()+"::"; usingNd = getResolvedNamespace(uScope+name); - //printf("Also trying with scope=`%s' usingNd=%p\n",(uScope+name).data(),usingNd); + //printf("Also trying with scope='%s' usingNd=%p\n",(uScope+name).data(),usingNd); } } return usingNd; @@ -1899,7 +1899,7 @@ static void findUsingDirectives(Entry *root) } } - // find the scope in which the `using' namespace is defined by prepending + // find the scope in which the 'using' namespace is defined by prepending // the possible scopes in which the using statement was found, starting // with the most inner scope and going to the most outer scope (i.e. // file scope). @@ -1909,7 +1909,7 @@ static void findUsingDirectives(Entry *root) QCString scope=scopeOffset>0 ? nsName.left(scopeOffset)+"::" : QCString(); usingNd = getResolvedNamespace(scope+name); - //printf("Trying with scope=`%s' usingNd=%p\n",(scope+name).data(),usingNd); + //printf("Trying with scope='%s' usingNd=%p\n",(scope+name).data(),usingNd); if (scopeOffset==0) { scopeOffset=-1; @@ -2058,7 +2058,7 @@ static void findUsingDeclarations(Entry *root) } // Assume the using statement was used to import a class. - // Find the scope in which the `using' namespace is defined by prepending + // Find the scope in which the 'using' namespace is defined by prepending // the possible scopes in which the using statement was found, starting // with the most inner scope and going to the most outer scope (i.e. // file scope). @@ -2079,7 +2079,7 @@ static void findUsingDeclarations(Entry *root) //printf("%s -> %p\n",root->name.data(),usingCd); if (usingCd==0) // definition not in the input => add an artificial class { - Debug::print(Debug::Classes,0," New using class `%s' (sec=0x%08x)! #tArgLists=%d\n", + Debug::print(Debug::Classes,0," New using class '%s' (sec=0x%08x)! #tArgLists=%d\n", qPrint(name),root->section,root->tArgLists ? (int)root->tArgLists->count() : -1); usingCd = createClassDef( "",1,1, @@ -2266,7 +2266,7 @@ static MemberDef *addVariableToClass( } Debug::print(Debug::Variables,0, " class variable:\n" - " `%s' `%s'::`%s' `%s' prot=`%d ann=%d init=`%s'\n", + " '%s' '%s'::'%s' '%s' prot=%d ann=%d init='%s'\n", qPrint(root->type), qPrint(qualScope), qPrint(name), @@ -2434,7 +2434,7 @@ static MemberDef *addVariableToFile( { Debug::print(Debug::Variables,0, " global variable:\n" - " file='%s' type=`%s' scope=`%s' name=`%s' args=`%s' prot=`%d mtype=%d lang=%d\n", + " file='%s' type='%s' scope='%s' name='%s' args='%s' prot=`%d mtype=%d lang=%d\n", qPrint(root->fileName), qPrint(root->type), qPrint(scope), @@ -2835,7 +2835,7 @@ static void addVariable(Entry *root,int isFuncPtr=-1) Debug::print(Debug::Variables,0, "VARIABLE_SEC: \n" - " type=`%s' name=`%s' args=`%s' bodyLine=`%d' mGrpId=%d relates=%s\n", + " type='%s' name='%s' args='%s' bodyLine=%d mGrpId=%d relates='%s'\n", qPrint(root->type), qPrint(root->name), qPrint(root->args), @@ -2861,7 +2861,7 @@ static void addVariable(Entry *root,int isFuncPtr=-1) root->name=root->args.mid(i,l); root->args=root->args.mid(i+l,root->args.find(')',i+l)-i-l); } - //printf("new: type=`%s' name=`%s' args=`%s'\n", + //printf("new: type='%s' name='%s' args='%s'\n", // root->type.data(),root->name.data(),root->args.data()); } else @@ -3016,7 +3016,7 @@ static void addVariable(Entry *root,int isFuncPtr=-1) } } - //printf("name=`%s' scope=%s scope.right=%s\n", + //printf("name='%s' scope=%s scope.right=%s\n", // name.data(),scope.data(), // scope.right(scope.length()-si).data()); addVariableToClass(root, // entry @@ -3199,8 +3199,8 @@ static void addInterfaceOrServiceToServiceOrSingleton( Debug::print(Debug::Functions,0, " Interface Member:\n" - " `%s' `%s' proto=%d\n" - " def=`%s'\n", + " '%s' '%s' proto=%d\n" + " def='%s'\n", qPrint(root->type), qPrint(rname), root->proto, @@ -3242,7 +3242,7 @@ static void buildInterfaceAndServiceList(Entry *root) { Debug::print(Debug::Functions,0, "EXPORTED_INTERFACE_SEC:\n" - " `%s' `%s'::`%s' `%s' relates=`%s' relatesType=`%d' file=`%s' line=`%d' bodyLine=`%d' #tArgLists=%d mGrpId=%d spec=%lld proto=%d docFile=%s\n", + " '%s' '%s'::'%s' '%s' relates='%s' relatesType='%d' file='%s' line='%d' bodyLine='%d' #tArgLists=%d mGrpId=%d spec=%lld proto=%d docFile=%s\n", qPrint(root->type), qPrint(root->parent()->name), qPrint(root->name), @@ -3345,7 +3345,7 @@ static void addMethodToClass(Entry *root,ClassDef *cd, fileName = root->tagInfo->tagName; } - //printf("root->name=`%s; root->args=`%s' root->argList=`%s'\n", + //printf("root->name='%s; root->args='%s' root->argList='%s'\n", // root->name.data(),root->args.data(),argListToString(root->argList).data() // ); @@ -3446,8 +3446,8 @@ static void addMethodToClass(Entry *root,ClassDef *cd, Debug::print(Debug::Functions,0, " Func Member:\n" - " `%s' `%s'::`%s' `%s' proto=%d\n" - " def=`%s'\n", + " '%s' '%s'::'%s' '%s' proto=%d\n" + " def='%s'\n", qPrint(root->type), qPrint(qualScope), qPrint(rname), @@ -3487,7 +3487,7 @@ static void buildFunctionList(Entry *root) { Debug::print(Debug::Functions,0, "FUNCTION_SEC:\n" - " `%s' `%s'::`%s' `%s' relates=`%s' relatesType=`%d' file=`%s' line=`%d' bodyLine=`%d' #tArgLists=%d mGrpId=%d spec=%lld proto=%d docFile=%s\n", + " '%s' '%s'::'%s' '%s' relates='%s' relatesType='%d' file='%s' line='%d' bodyLine='%d' #tArgLists=%d mGrpId=%d spec=%lld proto=%d docFile=%s\n", qPrint(root->type), qPrint(root->parent()->name), qPrint(root->name), @@ -3747,7 +3747,7 @@ static void buildFunctionList(Entry *root) if (!found) /* global function is unique with respect to the file */ { Debug::print(Debug::Functions,0," --> new function %s found!\n",qPrint(rname)); - //printf("New function type=`%s' name=`%s' args=`%s' bodyLine=%d\n", + //printf("New function type='%s' name='%s' args='%s' bodyLine=%d\n", // root->type.data(),rname.data(),root->args.data(),root->bodyLine); // new global function @@ -3825,8 +3825,8 @@ static void buildFunctionList(Entry *root) } Debug::print(Debug::Functions,0, " Global Function:\n" - " `%s' `%s'::`%s' `%s' proto=%d\n" - " def=`%s'\n", + " '%s' '%s'::'%s' '%s' proto=%d\n" + " def='%s'\n", qPrint(root->type), qPrint(root->parent()->name), qPrint(rname), @@ -3892,7 +3892,7 @@ static void buildFunctionList(Entry *root) } } - //printf("unrelated function %d `%s' `%s' `%s'\n", + //printf("unrelated function %d '%s' '%s' '%s'\n", // root->parent->section,root->type.data(),rname.data(),root->args.data()); } else @@ -3919,7 +3919,7 @@ static void findFriends() MemberName *fn; for (;(fn=fnli.current());++fnli) // for each global function name { - //printf("Function name=`%s'\n",fn->memberName()); + //printf("Function name='%s'\n",fn->memberName()); MemberName *mn; if ((mn=Doxygen::memberNameSDict->find(fn->memberName()))) { // there are members with the same name @@ -4146,7 +4146,7 @@ static void transferRelatedFunctionDocumentation() /* find a matching function declaration and definition for this function */ for (mni.toFirst();(md=mni.current());++mni) // for each global function { - //printf(" Function `%s'\n",md->name().data()); + //printf(" Function '%s'\n",md->name().data()); MemberName *rmn; if ((rmn=Doxygen::memberNameSDict->find(md->name()))) // check if there is a member with the same name { @@ -4155,7 +4155,7 @@ static void transferRelatedFunctionDocumentation() MemberNameIterator rmni(*rmn); for (rmni.toFirst();(rmd=rmni.current());++rmni) // for each member with the same name { - //printf(" Member found: related=`%d'\n",rmd->isRelated()); + //printf(" Member found: related='%d'\n",rmd->isRelated()); if ((rmd->isRelated() || rmd->isForeign()) && // related function !md->isAlias() && !rmd->isAlias() && matchArguments2( md->getOuterScope(), md->getFileDef(), md->argumentList(), @@ -4164,7 +4164,7 @@ static void transferRelatedFunctionDocumentation() ) ) { - //printf(" Found related member `%s'\n",md->name().data()); + //printf(" Found related member '%s'\n",md->name().data()); if (rmd->relatedAlso()) md->setRelatedAlso(rmd->relatedAlso()); else if (rmd->isForeign()) @@ -4344,7 +4344,7 @@ static void findUsedClassesForClass(Entry *root, if (arg->name==usedName) // type is a template argument { found=TRUE; - Debug::print(Debug::Classes,0," New used class `%s'\n", qPrint(usedName)); + Debug::print(Debug::Classes,0," New used class '%s'\n", qPrint(usedName)); ClassDef *usedCd = Doxygen::hiddenClasses->find(usedName); if (usedCd==0) @@ -4361,7 +4361,7 @@ static void findUsedClassesForClass(Entry *root, Doxygen::hiddenClasses->append(usedName,usedCd); } if (isArtificial) usedCd->setArtificial(TRUE); - Debug::print(Debug::Classes,0," Adding used class `%s' (1)\n", qPrint(usedCd->name())); + Debug::print(Debug::Classes,0," Adding used class '%s' (1)\n", qPrint(usedCd->name())); instanceCd->addUsedClass(usedCd,md->name(),md->protection()); usedCd->addUsedByClass(instanceCd,md->name(),md->protection()); } @@ -4377,7 +4377,7 @@ static void findUsedClassesForClass(Entry *root, if (usedCd) { found=TRUE; - Debug::print(Debug::Classes,0," Adding used class `%s' (2)\n", qPrint(usedCd->name())); + Debug::print(Debug::Classes,0," Adding used class '%s' (2)\n", qPrint(usedCd->name())); instanceCd->addUsedClass(usedCd,md->name(),md->protection()); // class exists usedCd->addUsedByClass(instanceCd,md->name(),md->protection()); } @@ -4397,7 +4397,7 @@ static void findUsedClassesForClass(Entry *root, { type+=md->argsString(); } - Debug::print(Debug::Classes,0," New undocumented used class `%s'\n", qPrint(type)); + Debug::print(Debug::Classes,0," New undocumented used class '%s'\n", qPrint(type)); usedCd = createClassDef( masterCd->getDefFileName(),masterCd->getDefLine(), masterCd->getDefColumn(), @@ -4409,7 +4409,7 @@ static void findUsedClassesForClass(Entry *root, if (usedCd) { if (isArtificial) usedCd->setArtificial(TRUE); - Debug::print(Debug::Classes,0," Adding used class `%s' (3)\n", qPrint(usedCd->name())); + Debug::print(Debug::Classes,0," Adding used class '%s' (3)\n", qPrint(usedCd->name())); instanceCd->addUsedClass(usedCd,md->name(),md->protection()); usedCd->addUsedByClass(instanceCd,md->name(),md->protection()); } @@ -4673,7 +4673,7 @@ static bool findClassRelation( QCString biName=bi->name; bool explicitGlobalScope=FALSE; - //printf("findClassRelation: biName=`%s'\n",biName.data()); + //printf("findClassRelation: biName='%s'\n",biName.data()); if (biName.left(2)=="::") // explicit global scope { biName=biName.right(biName.length()-2); @@ -4689,7 +4689,7 @@ static bool findClassRelation( int scopeOffset=explicitGlobalScope ? 0 : scopeName.length(); do // try all parent scope prefixes, starting with the largest scope { - //printf("scopePrefix=`%s' biName=`%s'\n", + //printf("scopePrefix='%s' biName='%s'\n", // scopeName.left(scopeOffset).data(),biName.data()); QCString baseClassName=biName; @@ -4713,7 +4713,7 @@ static bool findClassRelation( ); //printf("baseClassName=%s baseClass=%p cd=%p explicitGlobalScope=%d\n", // baseClassName.data(),baseClass,cd,explicitGlobalScope); - //printf(" scope=`%s' baseClassName=`%s' baseClass=%s templSpec=%s\n", + //printf(" scope='%s' baseClassName='%s' baseClass=%s templSpec=%s\n", // cd ? cd->name().data():"", // baseClassName.data(), // baseClass?baseClass->name().data():"", @@ -4844,7 +4844,7 @@ static bool findClassRelation( //printf("3. found=%d\n",found); if (found) { - Debug::print(Debug::Classes,0," Documented base class `%s' templSpec=%s\n",qPrint(biName),qPrint(templSpec)); + Debug::print(Debug::Classes,0," Documented base class '%s' templSpec=%s\n",qPrint(biName),qPrint(templSpec)); // add base class to this class // if templSpec is not empty then we should "instantiate" @@ -4899,7 +4899,7 @@ static bool findClassRelation( else if (mode==Undocumented && (scopeOffset==0 || isATemplateArgument)) { Debug::print(Debug::Classes,0, - " New undocumented base class `%s' baseClassName=%s templSpec=%s isArtificial=%d\n", + " New undocumented base class '%s' baseClassName=%s templSpec=%s isArtificial=%d\n", qPrint(biName),qPrint(baseClassName),qPrint(templSpec),isArtificial ); baseClass=0; @@ -4959,7 +4959,7 @@ static bool findClassRelation( } else { - Debug::print(Debug::Classes,0," Base class `%s' not found\n",qPrint(biName)); + Debug::print(Debug::Classes,0," Base class '%s' not found\n",qPrint(biName)); } } else @@ -4984,7 +4984,7 @@ static bool findClassRelation( { scopeOffset=0; } - //printf("new scopeOffset=`%d'",scopeOffset); + //printf("new scopeOffset='%d'",scopeOffset); } while (scopeOffset>=0); if (parentNode==0) @@ -5329,8 +5329,8 @@ static void generateXRefPages() } //---------------------------------------------------------------------- -// Copy the documentation in entry `root' to member definition `md' and -// set the function declaration of the member to `funcDecl'. If the boolean +// Copy the documentation in entry 'root' to member definition 'md' and +// set the function declaration of the member to 'funcDecl'. If the boolean // over_load is set the standard overload text is added. static void addMemberDocs(Entry *root, @@ -5340,7 +5340,7 @@ static void addMemberDocs(Entry *root, NamespaceSDict * ) { - //printf("addMemberDocs: `%s'::`%s' `%s' funcDecl=`%s' mSpec=%d\n", + //printf("addMemberDocs: '%s'::'%s' '%s' funcDecl='%s' mSpec=%d\n", // root->parent->name.data(),md->name().data(),md->argsString(),funcDecl,root->spec); QCString fDecl=funcDecl; // strip extern specifier @@ -5485,9 +5485,9 @@ static ClassDef *findClassDefinition(FileDef *fd,NamespaceDef *nd, //---------------------------------------------------------------------- -// Adds the documentation contained in `root' to a global function -// with name `name' and argument list `args' (for overloading) and -// function declaration `decl' to the corresponding member definition. +// Adds the documentation contained in 'root' to a global function +// with name 'name' and argument list 'args' (for overloading) and +// function declaration 'decl' to the corresponding member definition. static bool findGlobalMember(Entry *root, const QCString &namespaceName, @@ -5542,10 +5542,10 @@ static bool findGlobalMember(Entry *root, if ((namespaceName.isEmpty() && nd==0) || // not in a namespace (nd && nd->name()==namespaceName) || // or in the same namespace - viaUsingDirective // member in `using' namespace + viaUsingDirective // member in 'using' namespace ) { - Debug::print(Debug::FindMembers,0,"4. Try to add member `%s' to scope `%s'\n", + Debug::print(Debug::FindMembers,0,"4. Try to add member '%s' to scope '%s'\n", qPrint(md->name()),qPrint(namespaceName)); NamespaceDef *rnd = 0; @@ -5641,7 +5641,7 @@ static bool findGlobalMember(Entry *root, ) { warn(root->fileName,root->startLine, - "documented symbol `%s' was not declared or defined.",decl + "documented symbol '%s' was not declared or defined.",decl ); } } @@ -5822,7 +5822,7 @@ static void findMember(Entry *root, ) { Debug::print(Debug::FindMembers,0, - "findMember(root=%p,funcDecl=`%s',related=`%s',overload=%d," + "findMember(root=%p,funcDecl='%s',related='%s',overload=%d," "isFunc=%d mGrpId=%d tArgList=%p (#=%d) " "spec=%lld lang=%x\n", root,qPrint(funcDecl),qPrint(root->relates),overloaded,isFunc,root->mGrpId, @@ -5891,7 +5891,7 @@ static void findMember(Entry *root, " ::","::" ).stripWhiteSpace(); - //printf("funcDecl=`%s'\n",funcDecl.data()); + //printf("funcDecl='%s'\n",funcDecl.data()); if (isFriend && funcDecl.left(6)=="class ") { //printf("friend class\n"); @@ -5910,14 +5910,14 @@ static void findMember(Entry *root, funcArgs,funcTempList,exceptions ); } - //printf("scopeName=`%s' funcType=`%s' funcName=`%s' funcArgs=`%s'\n", + //printf("scopeName='%s' funcType='%s' funcName='%s' funcArgs='%s'\n", // scopeName.data(),funcType.data(),funcName.data(),funcArgs.data()); // the class name can also be a namespace name, we decide this later. // if a related class name is specified and the class name could // not be derived from the function declaration, then use the // related field. - //printf("scopeName=`%s' className=`%s' namespaceName=`%s'\n", + //printf("scopeName='%s' className='%s' namespaceName='%s'\n", // scopeName.data(),className.data(),namespaceName.data()); if (!root->relates.isEmpty()) { // related member, prefix user specified scope @@ -5993,13 +5993,13 @@ static void findMember(Entry *root, // split scope into a namespace and a class part extractNamespaceName(scopeName,className,namespaceName,TRUE); - //printf("scopeName=`%s' className=`%s' namespaceName=`%s'\n", + //printf("scopeName='%s' className='%s' namespaceName='%s'\n", // scopeName.data(),className.data(),namespaceName.data()); //namespaceName=removeAnonymousScopes(namespaceName); if (namespaceName.find('@')!=-1) return; // skip stuff in anonymous namespace... - //printf("namespaceName=`%s' className=`%s'\n",namespaceName.data(),className.data()); + //printf("namespaceName='%s' className='%s'\n",namespaceName.data(),className.data()); // merge class and namespace scopes again scopeName.resize(0); if (!namespaceName.isEmpty()) @@ -6022,7 +6022,7 @@ static void findMember(Entry *root, { scopeName=className; } - //printf("new scope=`%s'\n",scopeName.data()); + //printf("new scope='%s'\n",scopeName.data()); QCString tempScopeName=scopeName; ClassDef *cd=getClass(scopeName); @@ -6041,7 +6041,7 @@ static void findMember(Entry *root, //printf("scopeName=%s cd=%p root->tArgLists=%p result=%s\n", // scopeName.data(),cd,root->tArgLists,tempScopeName.data()); - //printf("scopeName=`%s' className=`%s'\n",scopeName.data(),className.data()); + //printf("scopeName='%s' className='%s'\n",scopeName.data(),className.data()); // rebuild the function declaration (needed to get the scope right). if (!scopeName.isEmpty() && !isRelated && !isFriend && !Config_getBool(HIDE_SCOPE_NAMES)) { @@ -6062,7 +6062,7 @@ static void findMember(Entry *root, { funcDecl=tempScopeName+"::"+funcName+funcTempList; } - else // variable => add `argument' list + else // variable => add 'argument' list { funcDecl=tempScopeName+"::"+funcName+funcArgs; } @@ -6076,7 +6076,7 @@ static void findMember(Entry *root, { funcDecl=funcType+" "+funcName+funcTempList; } - else // variable => add `argument' list + else // variable => add 'argument' list { funcDecl=funcType+" "+funcName+funcArgs; } @@ -6099,16 +6099,16 @@ static void findMember(Entry *root, Debug::print(Debug::FindMembers,0, "findMember() Parse results:\n" - " namespaceName=`%s'\n" + " namespaceName='%s'\n" " className=`%s`\n" - " funcType=`%s'\n" - " funcSpec=`%s'\n" - " funcName=`%s'\n" - " funcArgs=`%s'\n" - " funcTempList=`%s'\n" - " funcDecl=`%s'\n" - " related=`%s'\n" - " exceptions=`%s'\n" + " funcType='%s'\n" + " funcSpec='%s'\n" + " funcName='%s'\n" + " funcArgs='%s'\n" + " funcTempList='%s'\n" + " funcDecl='%s'\n" + " related='%s'\n" + " exceptions='%s'\n" " isRelated=%d\n" " isMemberOf=%d\n" " isFriend=%d\n" @@ -6123,7 +6123,7 @@ static void findMember(Entry *root, if (!funcName.isEmpty()) // function name is valid { Debug::print(Debug::FindMembers,0, - "1. funcName=`%s'\n",funcName.data()); + "1. funcName='%s'\n",funcName.data()); if (funcName.left(9)=="operator ") // strip class scope from cast operator { funcName = substitute(funcName,className+"::",""); @@ -6154,7 +6154,7 @@ static void findMember(Entry *root, ClassDef *cd=md->getClassDef(); Debug::print(Debug::FindMembers,0, "3. member definition found, " - "scope needed=`%s' scope=`%s' args=`%s' fileName=%s\n", + "scope needed='%s' scope='%s' args='%s' fileName=%s\n", qPrint(scopeName),cd ? qPrint(cd->name()) : "", qPrint(md->argsString()), qPrint(root->fileName)); @@ -6223,7 +6223,7 @@ static void findMember(Entry *root, } Debug::print(Debug::FindMembers,0, - "5. matching `%s'<=>`%s' className=%s namespaceName=%s\n", + "5. matching '%s'<=>'%s' className=%s namespaceName=%s\n", qPrint(argListToString(argList,TRUE)),qPrint(argListToString(root->argList,TRUE)), qPrint(className),qPrint(namespaceName) ); @@ -6477,7 +6477,7 @@ static void findMember(Entry *root, declMd ? declMd->protection() : root->protection, root->virt,root->stat,Member, mtype,tArgList,root->argList,root->metaData); - //printf("new specialized member %s args=`%s'\n",md->name().data(),funcArgs.data()); + //printf("new specialized member %s args='%s'\n",md->name().data(),funcArgs.data()); md->setTagInfo(root->tagInfo); md->setLanguage(root->lang); md->setId(root->id); @@ -6540,7 +6540,7 @@ static void findMember(Entry *root, // new overloaded member function ArgumentList *tArgList = getTemplateArgumentsFromName(cd->name()+"::"+funcName,root->tArgLists); - //printf("new related member %s args=`%s'\n",md->name().data(),funcArgs.data()); + //printf("new related member %s args='%s'\n",md->name().data(),funcArgs.data()); MemberDef *md=createMemberDef( root->fileName,root->startLine,root->startColumn, funcType,funcName,funcArgs,exceptions, @@ -6595,7 +6595,7 @@ static void findMember(Entry *root, " scopeName=%s className=%s\n",qPrint(scopeName),qPrint(className)); if (className.isEmpty()) className=root->relates; ClassDef *cd; - //printf("scopeName=`%s' className=`%s'\n",scopeName.data(),className.data()); + //printf("scopeName='%s' className='%s'\n",scopeName.data(),className.data()); if ((cd=getClass(scopeName))) { bool newMember=TRUE; // assume we have a new member @@ -6668,7 +6668,7 @@ static void findMember(Entry *root, funcDecl=funcType + " " + funcName; } - //printf("New related name `%s' `%d'\n",funcName.data(), + //printf("New related name '%s' '%d'\n",funcName.data(), // root->argList ? (int)root->argList->count() : -1); // first note that we pass: @@ -6709,7 +6709,7 @@ static void findMember(Entry *root, - //printf("Related member name=`%s' decl=`%s' bodyLine=`%d'\n", + //printf("Related member name='%s' decl='%s' bodyLine='%d'\n", // funcName.data(),funcDecl.data(),root->bodyLine); // try to find the matching line number of the body from the @@ -6805,7 +6805,7 @@ static void findMember(Entry *root, else { warn_undoc(root->fileName,root->startLine, - "class `%s' for related function `%s' is not " + "class '%s' for related function '%s' is not " "documented.", className.data(),funcName.data() ); @@ -6815,12 +6815,12 @@ static void findMember(Entry *root, { localObjCMethod: ClassDef *cd; - //printf("scopeName=`%s' className=`%s'\n",scopeName.data(),className.data()); + //printf("scopeName='%s' className='%s'\n",scopeName.data(),className.data()); if (Config_getBool(EXTRACT_LOCAL_METHODS) && (cd=getClass(scopeName))) { Debug::print(Debug::FindMembers,0,"4. Local objective C method %s\n" " scopeName=%s className=%s\n",qPrint(root->name),qPrint(scopeName),qPrint(className)); - //printf("Local objective C method `%s' of class `%s' found\n",root->name.data(),cd->name().data()); + //printf("Local objective C method '%s' of class '%s' found\n",root->name.data(),cd->name().data()); MemberDef *md=createMemberDef( root->fileName,root->startLine,root->startColumn, funcType,funcName,funcArgs,exceptions, @@ -6872,14 +6872,14 @@ localObjCMethod: if (className.isEmpty() && !globMem) { warn(root->fileName,root->startLine, - "class for member `%s' cannot " + "class for member '%s' cannot " "be found.", funcName.data() ); } else if (!className.isEmpty() && !globMem) { warn(root->fileName,root->startLine, - "member `%s' of class `%s' cannot be found", + "member '%s' of class '%s' cannot be found", funcName.data(),className.data()); } } @@ -6901,7 +6901,7 @@ static void filterMemberDocumentation(Entry *root) { int i=-1,l; Debug::print(Debug::FindMembers,0, - "findMemberDocumentation(): root->type=`%s' root->inside=`%s' root->name=`%s' root->args=`%s' section=%x root->spec=%lld root->mGrpId=%d\n", + "findMemberDocumentation(): root->type='%s' root->inside='%s' root->name='%s' root->args='%s' section=%x root->spec=%lld root->mGrpId=%d\n", qPrint(root->type),qPrint(root->inside),qPrint(root->name),qPrint(root->args),root->section,root->spec,root->mGrpId ); //printf("root->parent()->name=%s\n",root->parent()->name.data()); @@ -6935,7 +6935,7 @@ static void filterMemberDocumentation(Entry *root) //printf("Member %s isFunc=%d\n",root->name.data(),isFunc); if (root->section==Entry::MEMBERDOC_SEC) { - //printf("Documentation for inline member `%s' found args=`%s'\n", + //printf("Documentation for inline member '%s' found args='%s'\n", // root->name.data(),root->args.data()); //if (root->relates.length()) printf(" Relates %s\n",root->relates.data()); if (root->type.isEmpty()) @@ -6963,7 +6963,7 @@ static void filterMemberDocumentation(Entry *root) ) ) { - //printf("Documentation for member `%s' found args=`%s' excp=`%s'\n", + //printf("Documentation for member '%s' found args='%s' excp='%s'\n", // root->name.data(),root->args.data(),root->exception.data()); //if (root->relates.length()) printf(" Relates %s\n",root->relates.data()); //printf("Inside=%s\n Relates=%s\n",root->inside.data(),root->relates.data()); @@ -7087,7 +7087,7 @@ static void findEnums(Entry *root) bool isGlobal; bool isRelated=FALSE; bool isMemberOf=FALSE; - //printf("Found enum with name `%s' relates=%s\n",root->name.data(),root->relates.data()); + //printf("Found enum with name '%s' relates=%s\n",root->name.data(),root->relates.data()); int i; QCString name; @@ -7124,7 +7124,7 @@ static void findEnums(Entry *root) if (cd && !name.isEmpty()) // found a enum inside a compound { - //printf("Enum `%s'::`%s'\n",cd->name().data(),name.data()); + //printf("Enum '%s'::'%s'\n",cd->name().data(),name.data()); fd=0; mnsd=Doxygen::memberNameSDict; isGlobal=FALSE; @@ -7265,7 +7265,7 @@ static void addEnumValuesToEnums(Entry *root) MemberNameSDict *mnsd=0; bool isGlobal; bool isRelated=FALSE; - //printf("Found enum with name `%s' relates=%s\n",root->name.data(),root->relates.data()); + //printf("Found enum with name '%s' relates=%s\n",root->name.data(),root->relates.data()); int i; QCString name; @@ -7301,21 +7301,21 @@ static void addEnumValuesToEnums(Entry *root) if (cd && !name.isEmpty()) // found a enum inside a compound { - //printf("Enum in class `%s'::`%s'\n",cd->name().data(),name.data()); + //printf("Enum in class '%s'::'%s'\n",cd->name().data(),name.data()); fd=0; mnsd=Doxygen::memberNameSDict; isGlobal=FALSE; } else if (nd && !nd->name().isEmpty() && nd->name().at(0)!='@') // found enum inside namespace { - //printf("Enum in namespace `%s'::`%s'\n",nd->name().data(),name.data()); + //printf("Enum in namespace '%s'::'%s'\n",nd->name().data(),name.data()); mnsd=Doxygen::functionNameSDict; isGlobal=TRUE; } else // found a global enum { fd=root->fileDef(); - //printf("Enum in file `%s': `%s'\n",fd->name().data(),name.data()); + //printf("Enum in file '%s': '%s'\n",fd->name().data(),name.data()); mnsd=Doxygen::functionNameSDict; isGlobal=TRUE; } @@ -7482,7 +7482,7 @@ static void findEnumDocumentation(Entry *root) && root->name.at(0)!='@' // skip anonymous enums ) { - //printf("Found docs for enum with name `%s' in context %s\n", + //printf("Found docs for enum with name '%s' in context %s\n", // root->name.data(),root->parent->name.data()); int i; QCString name; @@ -7491,7 +7491,7 @@ static void findEnumDocumentation(Entry *root) { name=root->name.right(root->name.length()-i-2); // extract name scope=root->name.left(i); // extract scope - //printf("Scope=`%s' Name=`%s'\n",scope.data(),name.data()); + //printf("Scope='%s' Name='%s'\n",scope.data(),name.data()); } else // just the name { @@ -7511,7 +7511,7 @@ static void findEnumDocumentation(Entry *root) bool found=FALSE; if (cd) { - //printf("Enum: scope=`%s' name=`%s'\n",cd->name(),name.data()); + //printf("Enum: scope='%s' name='%s'\n",cd->name(),name.data()); QCString className=cd->name().copy(); MemberName *mn=Doxygen::memberNameSDict->find(name); if (mn) @@ -7602,7 +7602,7 @@ static void findEnumDocumentation(Entry *root) if (!found) { warn(root->fileName,root->startLine, - "Documentation for undefined enum `%s' found.", + "Documentation for undefined enum '%s' found.", name.data() ); } @@ -7728,9 +7728,9 @@ static void vhdlCorrectMemberProperties() //---------------------------------------------------------------------- -// computes the relation between all members. For each member `m' -// the members that override the implementation of `m' are searched and -// the member that `m' overrides is searched. +// computes the relation between all members. For each member 'm' +// the members that override the implementation of 'm' are searched and +// the member that 'm' overrides is searched. static void computeMemberRelations() { @@ -7750,7 +7750,7 @@ static void computeMemberRelations() if (mcd && mcd->baseClasses()) { const ClassDef *bmcd = bmd->getClassDef(); - //printf("Check relation between `%s'::`%s' (%p) and `%s'::`%s' (%p)\n", + //printf("Check relation between '%s'::'%s' (%p) and '%s'::'%s' (%p)\n", // mcd->name().data(),md->name().data(),md, // bmcd->name().data(),bmd->name().data(),bmd // ); @@ -7768,7 +7768,7 @@ static void computeMemberRelations() //printf(" derived scope\n"); ArgumentList *bmdAl = bmd->argumentList(); ArgumentList *mdAl = md->argumentList(); - //printf(" Base argList=`%s'\n Super argList=`%s'\n", + //printf(" Base argList='%s'\n Super argList='%s'\n", // argListToString(bmdAl.pointer()).data(), // argListToString(mdAl.pointer()).data() // ); @@ -8097,7 +8097,7 @@ static void addSourceReferences() (fd->generateSourceFile() || Doxygen::parseSourcesNeeded) ) { - //printf("Found member `%s' in file `%s' at line `%d' def=%s\n", + //printf("Found member '%s' in file '%s' at line '%d' def=%s\n", // md->name().data(),fd->name().data(),md->getStartBodyLine(),md->getOuterScope()->name().data()); fd->addSourceRef(md->getStartBodyLine(),md->getOuterScope(),md); } @@ -8122,7 +8122,7 @@ static void addSourceReferences() (fd->generateSourceFile() || Doxygen::parseSourcesNeeded) ) { - //printf("Found member `%s' in file `%s' at line `%d' def=%s\n", + //printf("Found member '%s' in file '%s' at line '%d' def=%s\n", // md->name().data(),fd->name().data(),md->getStartBodyLine(),md->getOuterScope()->name().data()); fd->addSourceRef(md->getStartBodyLine(),md->getOuterScope(),md); } @@ -8302,7 +8302,7 @@ static void inheritDocumentation() MemberDef *md; for (;(md=mni.current());++mni) { - //printf("%04d Member `%s'\n",count++,md->name().data()); + //printf("%04d Member '%s'\n",count++,md->name().data()); if (md->documentation().isEmpty() && md->briefDescription().isEmpty()) { // no documentation yet MemberDef *bmd = md->reimplements(); @@ -8595,7 +8595,7 @@ static void findDefineDocumentation(Entry *root) root->section==Entry::DEFINE_SEC) && !root->name.isEmpty() ) { - //printf("found define `%s' `%s' brief=`%s' doc=`%s'\n", + //printf("found define '%s' '%s' brief='%s' doc='%s'\n", // root->name.data(),root->args.data(),root->brief.data(),root->doc.data()); if (root->tagInfo && !root->name.isEmpty()) // define read from a tag file @@ -8605,7 +8605,7 @@ static void findDefineDocumentation(Entry *root) Public,Normal,FALSE,Member,MemberType_Define,0,0,""); md->setTagInfo(root->tagInfo); md->setLanguage(root->lang); - //printf("Searching for `%s' fd=%p\n",filePathName.data(),fd); + //printf("Searching for '%s' fd=%p\n",filePathName.data(),fd); md->setFileDef(root->parent()->fileDef()); //printf("Adding member=%s\n",md->name().data()); MemberName *mn; @@ -8950,7 +8950,7 @@ static void resolveUserReferences() SectionInfo *si; for (;(si=sdi.current());++sdi) { - //printf("si->label=`%s' si->definition=%s si->fileName=`%s'\n", + //printf("si->label='%s' si->definition=%s si->fileName='%s'\n", // si->label.data(),si->definition?si->definition->name().data():"", // si->fileName.data()); PageDef *pd=0; @@ -9252,7 +9252,7 @@ static void generateConfigFile(const char *configFile,bool shortList, { if (!updateOnly) { - msg("\n\nConfiguration file `%s' created.\n\n",configFile); + msg("\n\nConfiguration file '%s' created.\n\n",configFile); msg("Now edit the configuration file and enter\n\n"); if (qstrcmp(configFile,"Doxyfile") || qstrcmp(configFile,"doxyfile")) msg(" doxygen %s\n\n",configFile); @@ -9262,7 +9262,7 @@ static void generateConfigFile(const char *configFile,bool shortList, } else { - msg("\n\nConfiguration file `%s' updated.\n\n",configFile); + msg("\n\nConfiguration file '%s' updated.\n\n",configFile); } } } @@ -9325,15 +9325,15 @@ static void readTagFile(Entry *root,const char *tl) QFileInfo fi(fileName); if (!fi.exists() || !fi.isFile()) { - err("Tag file `%s' does not exist or is not a file. Skipping it...\n", + err("Tag file '%s' does not exist or is not a file. Skipping it...\n", fileName.data()); return; } if (!destName.isEmpty()) - msg("Reading tag file `%s', location `%s'...\n",fileName.data(),destName.data()); + msg("Reading tag file '%s', location '%s'...\n",fileName.data(),destName.data()); else - msg("Reading tag file `%s'...\n",fileName.data()); + msg("Reading tag file '%s'...\n",fileName.data()); parseTagFile(root,fi.absFilePath().utf8()); } @@ -9692,8 +9692,8 @@ static QCString resolveSymlink(QCString path) static QDict g_pathsVisited(1009); //---------------------------------------------------------------------------- -// Read all files matching at least one pattern in `patList' in the -// directory represented by `fi'. +// Read all files matching at least one pattern in 'patList' in the +// directory represented by 'fi'. // The directory is read iff the recusiveFlag is set. // The contents of all files is append to the input string @@ -9803,7 +9803,7 @@ int readDir(QFileInfo *fi, //---------------------------------------------------------------------------- // read a file or all files in a directory and append their contents to the -// input string. The names of the files are appended to the `fiList' list. +// input string. The names of the files are appended to the 'fiList' list. int readFileOrDirectory(const char *s, FileNameList *fnList, @@ -10033,7 +10033,7 @@ void readAliases() { QCString name=alias.left(i).stripWhiteSpace(); QCString value=alias.right(alias.length()-i-1); - //printf("Alias: found name=`%s' value=`%s'\n",name.data(),value.data()); + //printf("Alias: found name='%s' value='%s'\n",name.data(),value.data()); if (!name.isEmpty()) { QCString *dn=Doxygen::aliasDict[name]; @@ -10150,13 +10150,13 @@ static void usage(const char *name) msg(" %s -f emoji outputFileName\n\n",name); msg(" If - is used for outputFileName doxygen will write to standard output.\n\n"); msg("If -s is specified the comments of the configuration items in the config file will be omitted.\n"); - msg("If configName is omitted `Doxyfile' will be used as a default.\n\n"); + msg("If configName is omitted 'Doxyfile' will be used as a default.\n\n"); msg("-v print version string\n"); } //---------------------------------------------------------------------------- -// read the argument of option `c' from the comment argument list and -// update the option index `optind'. +// read the argument of option 'c' from the comment argument list and +// update the option index 'optind'. static const char *getArg(int argc,char **argv,int &optind) { @@ -11143,14 +11143,14 @@ void parseInput() dir.setPath(QDir::currentDirPath()); if (!dir.mkdir(outputDirectory)) { - err("tag OUTPUT_DIRECTORY: Output directory `%s' does not " + err("tag OUTPUT_DIRECTORY: Output directory '%s' does not " "exist and cannot be created\n",outputDirectory.data()); cleanUpDoxygen(); exit(1); } else { - msg("Notice: Output directory `%s' does not exist. " + msg("Notice: Output directory '%s' does not exist. " "I have created it for you.\n", outputDirectory.data()); } dir.cd(outputDirectory); diff --git a/src/filedef.cpp b/src/filedef.cpp index f721c9f..dc8aa12 100644 --- a/src/filedef.cpp +++ b/src/filedef.cpp @@ -1394,7 +1394,7 @@ void FileDefImpl::insertMember(MemberDef *md) break; default: err("FileDefImpl::insertMembers(): " - "member `%s' with class scope `%s' inserted in file scope `%s'!\n", + "member '%s' with class scope '%s' inserted in file scope '%s'!\n", md->name().data(), md->getClassDef() ? md->getClassDef()->name().data() : "", name().data()); diff --git a/src/filename.cpp b/src/filename.cpp index ae3b596..637fe33 100644 --- a/src/filename.cpp +++ b/src/filename.cpp @@ -70,7 +70,7 @@ void FileName::generateDiskNames() QCString path = fd->getPath(); if (!fd->isReference()) { - //printf("i=%d j=%d fd->path=`%s' fd->name=`%s'\n",i,j,fd->path.left(i).data(),fd->name().data()); + //printf("i=%d j=%d fd->path='%s' fd->name='%s'\n",i,j,fd->path.left(i).data(),fd->name().data()); if (i==(int)path.length()) { //warning("Input file %s found multiple times!\n" diff --git a/src/fortrancode.l b/src/fortrancode.l index 926a3ff..0712afd 100644 --- a/src/fortrancode.l +++ b/src/fortrancode.l @@ -269,7 +269,7 @@ static void endCodeLine() g_code->endCodeLine(); } -/*! write a code fragment `text' that may span multiple lines, inserting +/*! write a code fragment 'text' that may span multiple lines, inserting * line numbers for each line. */ static void codifyLines(char *text) diff --git a/src/fortranscanner.l b/src/fortranscanner.l index 0ad03e3..bbbdcf0 100644 --- a/src/fortranscanner.l +++ b/src/fortranscanner.l @@ -32,7 +32,7 @@ * * - Do not like constructs like aa{BS} or {BS}bb. Should try to handle blank space * with separate rule?: It seems it is often necessary, because we may parse something like - * "functionA" or "MyInterface". So constructs like `(^|[ \t])interface({BS_}{ID})?/[ \t\n]' + * "functionA" or "MyInterface". So constructs like '(^|[ \t])interface({BS_}{ID})?/[ \t\n]' * are desired. * * - Must track yyLineNr when using REJECT, unput() or similar commands. diff --git a/src/groupdef.cpp b/src/groupdef.cpp index 01c4cc4..8b73910 100644 --- a/src/groupdef.cpp +++ b/src/groupdef.cpp @@ -532,7 +532,7 @@ bool GroupDefImpl::insertMember(MemberDef *md,bool docOnly) break; default: err("GroupDefImpl::insertMembers(): " - "member `%s' (typeid=%d) with scope `%s' inserted in group scope `%s'!\n", + "member '%s' (typeid=%d) with scope '%s' inserted in group scope '%s'!\n", md->name().data(),md->memberType(), md->getClassDef() ? md->getClassDef()->name().data() : "", name().data()); @@ -650,7 +650,7 @@ bool GroupDefImpl::findGroup(const GroupDef *def) const void GroupDefImpl::addGroup(const GroupDef *def) { - //printf("adding group `%s' to group `%s'\n",def->name().data(),name().data()); + //printf("adding group '%s' to group '%s'\n",def->name().data(),name().data()); //if (Config_getBool(SORT_MEMBER_DOCS)) // groupList->inSort(def); //else @@ -1485,7 +1485,7 @@ void addNamespaceToGroups(Entry *root,NamespaceDef *nd) for (;(g=gli.current());++gli) { GroupDef *gd=0; - //printf("group `%s'\n",s->data()); + //printf("group '%s'\n",s->data()); if (!g->groupname.isEmpty() && (gd=Doxygen::groupSDict->find(g->groupname))) { if (gd->addNamespace(nd)) nd->makePartOfGroup(gd); @@ -1502,7 +1502,7 @@ void addDirToGroups(Entry *root,DirDef *dd) for (;(g=gli.current());++gli) { GroupDef *gd=0; - //printf("group `%s'\n",g->groupname.data()); + //printf("group '%s'\n",g->groupname.data()); if (!g->groupname.isEmpty() && (gd=Doxygen::groupSDict->find(g->groupname))) { gd->addDir(dd); diff --git a/src/htmldocvisitor.cpp b/src/htmldocvisitor.cpp index e7d9d57..a059a86 100644 --- a/src/htmldocvisitor.cpp +++ b/src/htmldocvisitor.cpp @@ -775,7 +775,7 @@ void HtmlDocVisitor::visit(DocInclude *inc) void HtmlDocVisitor::visit(DocIncOperator *op) { - //printf("DocIncOperator: type=%d first=%d, last=%d text=`%s'\n", + //printf("DocIncOperator: type=%d first=%d, last=%d text='%s'\n", // op->type(),op->isFirst(),op->isLast(),op->text().data()); if (op->isFirst()) { diff --git a/src/index.cpp b/src/index.cpp index a577d9a..d563053 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -619,7 +619,7 @@ static void writeDirTreeNode(OutputList &ol, DirDef *dd, int level, FTVHelp* ftv (tocExpand && // or toc expand and dd->getFiles() && dd->getFiles()->count()>0 // there are files ); - //printf("gd=`%s': pageDict=%d\n",gd->name().data(),gd->pageDict->count()); + //printf("gd='%s': pageDict=%d\n",gd->name().data(),gd->pageDict->count()); if (addToIndex) { Doxygen::indexList->addContentsItem(isDir,dd->shortName(),dd->getReference(),dd->getOutputFileBase(),0,TRUE,TRUE); @@ -4005,7 +4005,7 @@ static void writeGroupTreeNode(OutputList &ol, GroupDef *gd, int level, FTVHelp* } bool isDir = hasSubGroups || hasSubPages || numSubItems>0; - //printf("gd=`%s': pageDict=%d\n",gd->name().data(),gd->pageDict->count()); + //printf("gd='%s': pageDict=%d\n",gd->name().data(),gd->pageDict->count()); if (addToIndex) { Doxygen::indexList->addContentsItem(isDir,gd->groupTitle(),gd->getReference(),gd->getOutputFileBase(),0,isDir,TRUE); diff --git a/src/latexdocvisitor.cpp b/src/latexdocvisitor.cpp index 2e979bd..57a4b09 100644 --- a/src/latexdocvisitor.cpp +++ b/src/latexdocvisitor.cpp @@ -557,7 +557,7 @@ void LatexDocVisitor::visit(DocInclude *inc) void LatexDocVisitor::visit(DocIncOperator *op) { - //printf("DocIncOperator: type=%d first=%d, last=%d text=`%s'\n", + //printf("DocIncOperator: type=%d first=%d, last=%d text='%s'\n", // op->type(),op->isFirst(),op->isLast(),op->text().data()); if (op->isFirst()) { diff --git a/src/layout.cpp b/src/layout.cpp index a5df6f4..890ac1a 100644 --- a/src/layout.cpp +++ b/src/layout.cpp @@ -1395,7 +1395,7 @@ class LayoutParser : public QXmlDefaultHandler } else { - err("Unexpected start tag `%s' found in scope='%s'!\n", + err("Unexpected start tag '%s' found in scope='%s'!\n", name.data(),m_scope.data()); } return TRUE; diff --git a/src/mandocvisitor.cpp b/src/mandocvisitor.cpp index 5c98c6f..a94883c 100644 --- a/src/mandocvisitor.cpp +++ b/src/mandocvisitor.cpp @@ -368,7 +368,7 @@ void ManDocVisitor::visit(DocInclude *inc) void ManDocVisitor::visit(DocIncOperator *op) { SrcLangExt langExt = getLanguageFromFileName(m_langExt); - //printf("DocIncOperator: type=%d first=%d, last=%d text=`%s'\n", + //printf("DocIncOperator: type=%d first=%d, last=%d text='%s'\n", // op->type(),op->isFirst(),op->isLast(),op->text().data()); if (op->isFirst()) { diff --git a/src/markdown.cpp b/src/markdown.cpp index c73324a..d992ca9 100644 --- a/src/markdown.cpp +++ b/src/markdown.cpp @@ -979,7 +979,7 @@ static int processCodeSpan(GrowBuf &out, const char *data, int /*offset*/, int s nl++; } else if (data[end]=='\'' && nb==1 && (end==size-1 || (endisDocsForDefinition()) ? md->argumentList() : md->declArgumentList(); - //printf("writeDefArgumentList `%s' isDocsForDefinition()=%d\n",md->name().data(),md->isDocsForDefinition()); + //printf("writeDefArgumentList '%s' isDocsForDefinition()=%d\n",md->name().data(),md->isDocsForDefinition()); if (defArgList==0 || md->isProperty()) { return FALSE; // member has no function like argument list @@ -1042,7 +1042,7 @@ static bool writeDefArgumentList(OutputList &ol,const Definition *scope,const Me } if (hasFuncPtrType) // argument type is a function pointer { - //printf("a->type=`%s' a->name=`%s'\n",a->type.data(),a->name.data()); + //printf("a->type='%s' a->name='%s'\n",a->type.data(),a->name.data()); QCString n=a->type.left(vp); if (hasFuncPtrType) n=a->type.left(wp); if (md->isObjCMethod()) { n.prepend("("); n.append(")"); } @@ -1559,7 +1559,7 @@ void MemberDefImpl::IMPL::init(Definition *def, * \param e A string representing the throw clause of the members. * \param p The protection context of the member, possible values are: * \c Public, \c Protected, \c Private. - * \param v The degree of `virtualness' of the member, possible values are: + * \param v The degree of 'virtualness' of the member, possible values are: * \c Normal, \c Virtual, \c Pure. * \param s A boolean that is true iff the member is static. * \param r The relationship between the class and the member. @@ -2102,13 +2102,13 @@ ClassDef *MemberDefImpl::getClassDefOfAnonymousType() const cname=getNamespaceDef()->name(); } QCString ltype(m_impl->type); - // strip `static' keyword from ltype + // strip 'static' keyword from ltype //if (ltype.left(7)=="static ") ltype=ltype.right(ltype.length()-7); - // strip `friend' keyword from ltype + // strip 'friend' keyword from ltype ltype.stripPrefix("friend "); static QRegExp r("@[0-9]+"); int l,i=r.match(ltype,0,&l); - //printf("ltype=`%s' i=%d\n",ltype.data(),i); + //printf("ltype='%s' i=%d\n",ltype.data(),i); // search for the last anonymous scope in the member type ClassDef *annoClassDef=0; if (i!=-1) // found anonymous scope in type @@ -2250,7 +2250,7 @@ QCString MemberDefImpl::getDeclType() const { ltype="using"; } - // strip `friend' keyword from ltype + // strip 'friend' keyword from ltype ltype.stripPrefix("friend "); if (ltype=="@") // rename type from enum values { @@ -2359,7 +2359,7 @@ void MemberDefImpl::writeDeclaration(OutputList &ol, { ltype="using"; } - // strip `friend' keyword from ltype + // strip 'friend' keyword from ltype ltype.stripPrefix("friend "); static QRegExp r("@[0-9]+"); @@ -2367,7 +2367,7 @@ void MemberDefImpl::writeDeclaration(OutputList &ol, int l,i=r.match(ltype,0,&l); if (i!=-1) // member has an anonymous type { - //printf("annoClassDef=%p annMemb=%p scopeName=`%s' anonymous=`%s'\n", + //printf("annoClassDef=%p annMemb=%p scopeName='%s' anonymous='%s'\n", // annoClassDef,annMemb,cname.data(),ltype.mid(i,l).data()); if (annoClassDef) // type is an anonymous compound @@ -2384,7 +2384,7 @@ void MemberDefImpl::writeDeclaration(OutputList &ol, ol.writeNonBreakableSpace(3); } QCString varName=ltype.right(ltype.length()-ir).stripWhiteSpace(); - //printf(">>>>>> ltype=`%s' varName=`%s'\n",ltype.data(),varName.data()); + //printf(">>>>>> ltype='%s' varName='%s'\n",ltype.data(),varName.data()); ol.docify("}"); if (varName.isEmpty() && (name().isEmpty() || name().at(0)=='@')) { @@ -3381,7 +3381,7 @@ void MemberDefImpl::writeDocumentation(const MemberList *ml, bool inFile = container->definitionType()==Definition::TypeFile; bool hasDocs = isDetailedSectionVisible(inGroup,inFile); - //printf("MemberDefImpl::writeDocumentation(): name=`%s' hasDocs=`%d' containerType=%d inGroup=%d sectionLinkable=%d\n", + //printf("MemberDefImpl::writeDocumentation(): name='%s' hasDocs='%d' containerType=%d inGroup=%d sectionLinkable=%d\n", // name().data(),hasDocs,container->definitionType(),inGroup,isDetailedSectionLinkable()); //if ( !hasDocs ) return; @@ -3423,7 +3423,7 @@ void MemberDefImpl::writeDocumentation(const MemberList *ml, QCString ldef = definition(); QCString title = name(); - //printf("member `%s' def=`%s'\n",name().data(),ldef.data()); + //printf("member '%s' def='%s'\n",name().data(),ldef.data()); if (isEnumerate()) { if (title.at(0)=='@') @@ -3497,7 +3497,7 @@ void MemberDefImpl::writeDocumentation(const MemberList *ml, } if (!found) // anonymous compound { - //printf("Anonymous compound `%s'\n",cname.data()); + //printf("Anonymous compound '%s'\n",cname.data()); ol.startDoxyAnchor(cfname,cname,memAnchor,doxyName,doxyArgs); ol.startMemberDoc(ciname,name(),memAnchor,name(),memCount,memTotal,showInline); // search for the last anonymous compound name in the definition @@ -3748,7 +3748,7 @@ void MemberDefImpl::writeDocumentation(const MemberList *ml, // ) ) { - //printf("md=%s initLines=%d init=`%s'\n",name().data(),initLines,init.data()); + //printf("md=%s initLines=%d init='%s'\n",name().data(),initLines,init.data()); ol.startBold(); if (m_impl->mtype==MemberType_Define) ol.parseText(theTranslator->trDefineValue()); @@ -6052,7 +6052,7 @@ void combineDeclarationAndDefinition(MemberDef *mdec,MemberDef *mdef) ) ) /* match found */ { - //printf("Found member %s: definition in %s (doc=`%s') and declaration in %s (doc=`%s')\n", + //printf("Found member %s: definition in %s (doc='%s') and declaration in %s (doc='%s')\n", // mn->memberName(), // mdef->getFileDef()->name().data(),mdef->documentation().data(), // mdec->getFileDef()->name().data(),mdec->documentation().data() diff --git a/src/membergroup.cpp b/src/membergroup.cpp index 04689b4..a5852e4 100644 --- a/src/membergroup.cpp +++ b/src/membergroup.cpp @@ -59,7 +59,7 @@ MemberGroup::MemberGroup(const Definition *parent, m_docFile = docFile; m_docLine = docLine; m_xrefListItems = 0; - //printf("Member group docs=`%s'\n",doc.data()); + //printf("Member group docs='%s'\n",doc.data()); } MemberGroup::~MemberGroup() diff --git a/src/memberlist.cpp b/src/memberlist.cpp index 94bb916..1869808 100644 --- a/src/memberlist.cpp +++ b/src/memberlist.cpp @@ -183,7 +183,7 @@ void MemberList::countDecMembers() m_numDecMembers++; break; default: - err("Unknown member type found for member `%s'\n!",md->name().data()); + err("Unknown member type found for member '%s'\n!",md->name().data()); } } } @@ -433,7 +433,7 @@ void MemberList::writePlainDeclarations(OutputList &ol, MemberListIterator mli(*this); for ( ; (md=mli.current()); ++mli ) { - //printf(">>> Member `%s' type=%d visible=%d\n", + //printf(">>> Member '%s' type=%d visible=%d\n", // md->name().data(),md->memberType(),md->isBriefSectionVisible()); if ((inheritedFrom==0 || !md->isReimplementedBy(inheritedFrom)) && md->isBriefSectionVisible()) @@ -612,7 +612,7 @@ void MemberList::writeDeclarations(OutputList &ol, if (ctx==0 && gd) ctx = gd; if (ctx==0 && fd) ctx = fd; - //printf("%p: MemberList::writeDeclaration(title=`%s',subtitle=`%s')=%d inheritedFrom=%p\n", + //printf("%p: MemberList::writeDeclaration(title='%s',subtitle='%s')=%d inheritedFrom=%p\n", // this,title,subtitle,numDecMembers(),inheritedFrom); int num = numDecMembers(); diff --git a/src/msc.cpp b/src/msc.cpp index 29f96ac..a7c08fd 100644 --- a/src/msc.cpp +++ b/src/msc.cpp @@ -50,7 +50,7 @@ static bool convertMapFile(FTextStream &t,const char *mapName,const QCString rel bool isRef = FALSE; int numBytes = f.readLine(buf,maxLineLen); buf[numBytes-1]='\0'; - //printf("ReadLine `%s'\n",buf); + //printf("ReadLine '%s'\n",buf); if (qstrncmp(buf,"rect",4)==0) { // obtain the url and the coordinates in the order used by graphviz-1.5 diff --git a/src/namespacedef.cpp b/src/namespacedef.cpp index 1e526ae..38e5c04 100644 --- a/src/namespacedef.cpp +++ b/src/namespacedef.cpp @@ -518,7 +518,7 @@ void NamespaceDefImpl::insertMember(MemberDef *md) break; default: err("NamespaceDefImpl::insertMembers(): " - "member `%s' with class scope `%s' inserted in namespace scope `%s'!\n", + "member '%s' with class scope '%s' inserted in namespace scope '%s'!\n", md->name().data(), md->getClassDef() ? md->getClassDef()->name().data() : "", name().data()); diff --git a/src/perlmodgen.cpp b/src/perlmodgen.cpp index 3813c56..11f1640 100644 --- a/src/perlmodgen.cpp +++ b/src/perlmodgen.cpp @@ -749,7 +749,7 @@ void PerlModDocVisitor::visit(DocInclude *inc) void PerlModDocVisitor::visit(DocIncOperator *) { #if 0 - //printf("DocIncOperator: type=%d first=%d, last=%d text=`%s'\n", + //printf("DocIncOperator: type=%d first=%d, last=%d text='%s'\n", // op->type(),op->isFirst(),op->isLast(),op->text().data()); if (op->isFirst()) { @@ -2283,13 +2283,13 @@ bool PerlModGenerator::createOutputDir(QDir &perlModDir) dir.setPath(QDir::currentDirPath()); if (!dir.mkdir(outputDirectory)) { - err("tag OUTPUT_DIRECTORY: Output directory `%s' does not " + err("tag OUTPUT_DIRECTORY: Output directory '%s' does not " "exist and cannot be created\n",outputDirectory.data()); exit(1); } else { - msg("Notice: Output directory `%s' does not exist. " + msg("Notice: Output directory '%s' does not exist. " "I have created it for you.\n", outputDirectory.data()); } dir.cd(outputDirectory); diff --git a/src/pre.l b/src/pre.l index c2954ab..564dc27 100644 --- a/src/pre.l +++ b/src/pre.l @@ -693,7 +693,7 @@ static QCString stringize(const QCString &s) } } } - //printf("stringize `%s'->`%s'\n",s.data(),result.data()); + //printf("stringize '%s'->'%s'\n",s.data(),result.data()); return result; } @@ -704,19 +704,19 @@ static QCString stringize(const QCString &s) */ static void processConcatOperators(QCString &expr) { - //printf("processConcatOperators: in=`%s'\n",expr.data()); + //printf("processConcatOperators: in='%s'\n",expr.data()); QRegExp r("[ \\t\\n]*##[ \\t\\n]*"); int l,n,i=0; if (expr.isEmpty()) return; while ((n=r.match(expr,i,&l))!=-1) { - //printf("Match: `%s'\n",expr.data()+i); + //printf("Match: '%s'\n",expr.data()+i); if (n+l+1<(int)expr.length() && expr.at(n+l)=='@' && expr.at(n+l+1)=='-') { // remove no-rescan marker after ID l+=2; } - //printf("found `%s'\n",expr.mid(n,l).data()); + //printf("found '%s'\n",expr.mid(n,l).data()); // remove the ## operator and the surrounding whitespace expr=expr.left(n)+expr.right(expr.length()-n-l); int k=n-1; @@ -729,7 +729,7 @@ static void processConcatOperators(QCString &expr) } i=n; } - //printf("processConcatOperators: out=`%s'\n",expr.data()); + //printf("processConcatOperators: out='%s'\n",expr.data()); } static void yyunput (int c,char *buf_ptr ); @@ -774,7 +774,7 @@ static bool replaceFunctionMacro(const QCString &expr,QCString *rest,int pos,int unputChar(expr,rest,j,' '); return FALSE; } - getNextChar(expr,rest,j); // eat the `(' character + getNextChar(expr,rest,j); // eat the '(' character QDict argTable; // list of arguments argTable.setAutoDelete(TRUE); @@ -954,13 +954,13 @@ static bool replaceFunctionMacro(const QCString &expr,QCString *rest,int pos,int if (key.length()>1 && (subst=argTable[key])) { QCString substArg=*subst; - //printf("substArg=`%s'\n",substArg.data()); + //printf("substArg='%s'\n",substArg.data()); // only if no ## operator is before or after the argument // marker we do macro expansion. if (!hash) expandExpression(substArg,0,0); if (inString) { - //printf("`%s'=stringize(`%s')\n",stringize(*subst).data(),subst->data()); + //printf("'%s'=stringize('%s')\n",stringize(*subst).data(),subst->data()); // if the marker is inside a string (because a # was put // before the macro name) we must escape " and \ characters @@ -999,7 +999,7 @@ static bool replaceFunctionMacro(const QCString &expr,QCString *rest,int pos,int } len=j-pos; result=resExpr; - //printf("result after substitution `%s' expr=`%s'\n", + //printf("result after substitution '%s' expr='%s'\n", // result.data(),expr.mid(pos,len).data()); return TRUE; } @@ -1098,7 +1098,7 @@ static void expandExpression(QCString &expr,QCString *rest,int pos) else if (def && def->nargs==-1) // simple macro { // substitute the definition of the macro - //printf("macro `%s'->`%s'\n",macroName.data(),def->definition.data()); + //printf("macro '%s'->'%s'\n",macroName.data(),def->definition.data()); if (g_nospaces) { expMacro=def->definition.stripWhiteSpace(); @@ -1110,7 +1110,7 @@ static void expandExpression(QCString &expr,QCString *rest,int pos) //expMacro=def->definition.stripWhiteSpace(); replaced=TRUE; len=l; - //printf("simple macro expansion=`%s'->`%s'\n",macroName.data(),expMacro.data()); + //printf("simple macro expansion='%s'->'%s'\n",macroName.data(),expMacro.data()); } else if (def && def->nargs>=0) // function macro { @@ -1125,7 +1125,7 @@ static void expandExpression(QCString &expr,QCString *rest,int pos) if (replaced) // expand the macro and rescan the expression { - //printf("replacing `%s'->`%s'\n",expr.mid(p,len).data(),expMacro.data()); + //printf("replacing '%s'->'%s'\n",expr.mid(p,len).data(),expMacro.data()); QCString resultExpr=expMacro; QCString restExpr=expr.right(expr.length()-len-p); processConcatOperators(resultExpr); @@ -1236,7 +1236,7 @@ QCString removeIdsAndMarkers(const char *s) { p = processUntilMatchingTerminator(p,result); } - else if (c=='d' && !inNum) // identifier starting with a `d' + else if (c=='d' && !inNum) // identifier starting with a 'd' { if (qstrncmp(p,"defined ",8)==0 || qstrncmp(p,"defined(",8)==0) // defined keyword @@ -1387,10 +1387,10 @@ bool computeExpression(const QCString &expr) { QCString e=expr; expandExpression(e,0,0); - //printf("after expansion `%s'\n",e.data()); + //printf("after expansion '%s'\n",e.data()); e = removeIdsAndMarkers(e); if (e.isEmpty()) return FALSE; - //printf("parsing `%s'\n",e.data()); + //printf("parsing '%s'\n",e.data()); return parseconstexp(g_yyFileName,g_yyLineNr,e); } @@ -1403,7 +1403,7 @@ QCString expandMacro(const QCString &name) QCString n=name; expandExpression(n,0,0); n=removeMarkers(n); - //printf("expandMacro `%s'->`%s'\n",name.data(),n.data()); + //printf("expandMacro '%s'->'%s'\n",name.data(),n.data()); return n; } @@ -1420,7 +1420,7 @@ Define *newDefine() def->varArgs = g_defVarArgs; //printf("newDefine: %s %s file: %s\n",def->name.data(),def->definition.data(), // def->fileDef ? def->fileDef->name().data() : def->fileName.data()); - //printf("newDefine: `%s'->`%s'\n",def->name.data(),def->definition.data()); + //printf("newDefine: '%s'->'%s'\n",def->name.data(),def->definition.data()); if (!def->name.isEmpty() && Doxygen::expandAsDefinedDict[def->name]) { def->isPredefined=TRUE; @@ -1444,11 +1444,11 @@ void addDefine() if (!g_defArgsStr.isEmpty()) { ArgumentList *argList = new ArgumentList; - //printf("addDefine() g_defName=`%s' g_defArgsStr=`%s'\n",g_defName.data(),g_defArgsStr.data()); + //printf("addDefine() g_defName='%s' g_defArgsStr='%s'\n",g_defName.data(),g_defArgsStr.data()); stringToArgumentList(g_defArgsStr,argList); md->setArgumentList(argList); } - //printf("Setting initializer for `%s' to `%s'\n",g_defName.data(),g_defText.data()); + //printf("Setting initializer for '%s' to '%s'\n",g_defName.data(),g_defText.data()); int l=g_defLitText.find('\n'); if (l>0 && g_defLitText.left(l).stripWhiteSpace()=="\\") { @@ -1528,7 +1528,7 @@ static void readIncludeFile(const QCString &inc) QCString oldFileName = g_yyFileName; FileDef *oldFileDef = g_yyFileDef; int oldLineNr = g_yyLineNr; - //printf("Searching for `%s'\n",incFileName.data()); + //printf("Searching for '%s'\n",incFileName.data()); // absIncFileName avoids difficulties for incFileName starting with "../" (bug 641336) QCString absIncFileName = incFileName; @@ -2017,7 +2017,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) if (g_roundCount==0) { QCString result=expandMacro(g_defArgsStr); - //printf("g_defArgsStr=`%s'->`%s'\n",g_defArgsStr.data(),result.data()); + //printf("g_defArgsStr='%s'->'%s'\n",g_defArgsStr.data(),result.data()); if (g_findDefArgContext==CopyLine) { outputArray(result,result.length()); @@ -2224,7 +2224,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) . { g_guardExpr+=*yytext; } \n { unput(*yytext); - //printf("Guard: `%s'\n", + //printf("Guard: '%s'\n", // g_guardExpr.data()); bool guard=computeExpression(g_guardExpr); setCaseDone(guard); @@ -2378,7 +2378,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) . { } {ID}/("\\\n")*"(" { // define with argument - //printf("Define() `%s'\n",yytext); + //printf("Define() '%s'\n",yytext); delete g_argDict; g_argDict = new QDict(31); g_argDict->setAutoDelete(TRUE); @@ -2392,7 +2392,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) BEGIN(DefineArg); } {ID}{B}+"1"/[ \r\t\n] { // special case: define with 1 -> can be "guard" - //printf("Define `%s'\n",yytext); + //printf("Define '%s'\n",yytext); delete g_argDict; g_argDict=0; g_defArgs = -1; g_defArgsStr.resize(0); @@ -2450,7 +2450,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) g_expectGuard=FALSE; } {ID}/{B}* { // define with content - //printf("Define `%s'\n",yytext); + //printf("Define '%s'\n",yytext); delete g_argDict; g_argDict=0; g_defArgs = -1; g_defArgsStr.resize(0); @@ -2852,7 +2852,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) } outputChar('\n'); Define *def=0; - //printf("Define name=`%s' text=`%s' litTexti=`%s'\n",g_defName.data(),g_defText.data(),g_defLitText.data()); + //printf("Define name='%s' text='%s' litTexti='%s'\n",g_defName.data(),g_defText.data(),g_defLitText.data()); if (g_includeStack.isEmpty() || g_curlyCount>0) { addDefine(); @@ -3198,7 +3198,7 @@ void preprocessFile(const char *fileName,BufStr &input,BufStr &output) DefineManager::instance().addDefine(g_yyFileName,def); } - //printf("#define `%s' `%s' #nargs=%d\n", + //printf("#define '%s' '%s' #nargs=%d\n", // def->name.data(),def->definition.data(),def->nargs); } else if ((i_obrace==-1 || i_obrace>i_equals) && @@ -3233,7 +3233,7 @@ void preprocessFile(const char *fileName,BufStr &input,BufStr &output) delete def; } - //printf("#define `%s' `%s' #nargs=%d\n", + //printf("#define '%s' '%s' #nargs=%d\n", // def->name.data(),def->definition.data(),def->nargs); } } diff --git a/src/pycode.l b/src/pycode.l index 1a87bca..614f8c7 100644 --- a/src/pycode.l +++ b/src/pycode.l @@ -376,7 +376,7 @@ static void startCodeLine() g_searchingForBody = TRUE; g_realScope = d->name().copy(); g_classScope = d->name().copy(); - //printf("Real scope: `%s'\n",g_realScope.data()); + //printf("Real scope: '%s'\n",g_realScope.data()); g_bodyCurlyCount = 0; QCString lineAnchor; lineAnchor.sprintf("l%05d",g_yyLineNr); @@ -549,7 +549,7 @@ static bool getLinkInScope(const QCString &c, // scope const FileDef *fd = 0; const NamespaceDef *nd = 0; const GroupDef *gd = 0; - //printf("Trying `%s'::`%s'\n",c.data(),m.data()); + //printf("Trying '%s'::'%s'\n",c.data(),m.data()); if (getDefs(c,m,"()",md,cd,fd,nd,gd,FALSE,g_sourceFileDef) && md->isLinkable()) { @@ -571,7 +571,7 @@ static bool getLinkInScope(const QCString &c, // scope { addDocCrossReference(g_currentMemberDef,const_cast(md)); } - //printf("d->getReference()=`%s' d->getOutputBase()=`%s' name=`%s' member name=`%s'\n",d->getReference().data(),d->getOutputFileBase().data(),d->name().data(),md->name().data()); + //printf("d->getReference()='%s' d->getOutputBase()='%s' name='%s' member name='%s'\n",d->getReference().data(),d->getOutputFileBase().data(),d->name().data(),md->name().data()); writeMultiLineCodeLink(ol,md, text ? text : memberText); addToSearchIndex(text ? text : memberText); @@ -753,7 +753,7 @@ static void generateFunctionLink(CodeOutputInterface &ol,char *funcName) locScope=locFunc.left(i); locFunc=locFunc.right(locFunc.length()-i-2).stripWhiteSpace(); } - //printf("generateFunctionLink(%s) classScope=`%s'\n",locFunc.data(),locScope.data()); + //printf("generateFunctionLink(%s) classScope='%s'\n",locFunc.data(),locScope.data()); if (!locScope.isEmpty() && (ccd=g_codeClassSDict[locScope])) { //printf("using classScope %s\n",g_classScope.data()); diff --git a/src/rtfdocvisitor.cpp b/src/rtfdocvisitor.cpp index 55c03a5..cdf5b57 100644 --- a/src/rtfdocvisitor.cpp +++ b/src/rtfdocvisitor.cpp @@ -529,7 +529,7 @@ void RTFDocVisitor::visit(DocInclude *inc) void RTFDocVisitor::visit(DocIncOperator *op) { - //printf("DocIncOperator: type=%d first=%d, last=%d text=`%s'\n", + //printf("DocIncOperator: type=%d first=%d, last=%d text='%s'\n", // op->type(),op->isFirst(),op->isLast(),op->text().data()); DBG_RTF("{\\comment RTFDocVisitor::visit(DocIncOperator)}\n"); SrcLangExt langExt = getLanguageFromFileName(m_langExt); diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp index bb2075b..e223de7 100644 --- a/src/rtfgen.cpp +++ b/src/rtfgen.cpp @@ -1532,7 +1532,7 @@ void RTFGenerator::startMemberDoc(const char *clname, t << rtf_Style_Reset << rtf_Style[showInline ? "Heading5" : "Heading4"]->reference; //styleStack.push(rtf_Style_Heading4); t << "{" << endl; - //printf("RTFGenerator::startMemberDoc() `%s'\n",rtf_Style["Heading4"]->reference); + //printf("RTFGenerator::startMemberDoc() '%s'\n",rtf_Style["Heading4"]->reference); startBold(); t << endl; } @@ -1541,7 +1541,7 @@ void RTFGenerator::endMemberDoc(bool) { DBG_RTF(t << "{\\comment endMemberDoc}" << endl) //const char *style = styleStack.pop(); - //printf("RTFGenerator::endMemberDoc() `%s'\n",style); + //printf("RTFGenerator::endMemberDoc() '%s'\n",style); //ASSERT(style==rtf_Style["Heading4"]->reference); endBold(); t << "}" << endl; diff --git a/src/scanner.l b/src/scanner.l index 2634485..15d0693 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -2655,7 +2655,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) } */ {ID} { - //printf("Define `%s' without args\n",yytext); + //printf("Define '%s' without args\n",yytext); if (insideCpp || insideObjC) { current->id = ClangParser::instance()->lookup(yyLineNr,yytext); @@ -2926,7 +2926,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) BEGIN(GCopyCurly); } [;,] { - //printf(">> initializer `%s' <<\n",current->initializer.data()); + //printf(">> initializer '%s' <<\n",current->initializer.data()); if (*yytext==';' && (current_root->spec&Entry::Enum)) { current->fileName = yyFileName; @@ -3820,7 +3820,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) } [^\n]* "," { - //printf("adding `%s' `%s' `%s' to enum `%s' (mGrpId=%d)\n", + //printf("adding '%s' '%s' '%s' to enum '%s' (mGrpId=%d)\n", // current->type.data(), current->name.data(), // current->args.data(), current_root->name.data(),current->mGrpId); if (!current->name.isEmpty()) @@ -3966,7 +3966,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) } QCString &cn = current->name; QCString rn = current_root->name.copy(); - //printf("cn=`%s' rn=`%s' isTypedef=%d\n",cn.data(),rn.data(),isTypedef); + //printf("cn='%s' rn='%s' isTypedef=%d\n",cn.data(),rn.data(),isTypedef); if (!cn.isEmpty() && !rn.isEmpty()) { prependScope(); @@ -3987,7 +3987,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) // was: current->args.simplifyWhiteSpace(); current->type = current->type.simplifyWhiteSpace(); current->name = current->name.stripWhiteSpace(); - //printf("adding `%s' `%s' `%s' brief=%s insideObjC=%d %x\n",current->type.data(),current->name.data(),current->args.data(),current->brief.data(),insideObjC,current->section); + //printf("adding '%s' '%s' '%s' brief=%s insideObjC=%d %x\n",current->type.data(),current->name.data(),current->args.data(),current->brief.data(),insideObjC,current->section); if (insideObjC && ((current->spec&Entry::Interface) || (current->spec==Entry::Category)) ) // method definition follows @@ -4133,7 +4133,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) { // see if the compound does not have a name or is inside another // anonymous compound. If so we insert a - // special `anonymous' variable. + // special 'anonymous' variable. //Entry *p=current_root; Entry *p=current; while (p) @@ -4141,7 +4141,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) // only look for class scopes, not namespace scopes if ((p->section & Entry::COMPOUND_MASK) && !p->name.isEmpty()) { - //printf("Trying scope `%s'\n",p->name.data()); + //printf("Trying scope '%s'\n",p->name.data()); int i=p->name.findRev("::"); int pi = (i==-1) ? 0 : i+2; if (p->name.at(pi)=='@') @@ -4226,7 +4226,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) } } - //printf("Add: type=`%s',name=`%s',args=`%s' brief=%s doc=%s\n", + //printf("Add: type='%s',name='%s',args='%s' brief=%s doc=%s\n", // varEntry->type.data(),varEntry->name.data(), // varEntry->args.data(),varEntry->brief.data(),varEntry->doc.data()); current_root->addSubEntry(varEntry); @@ -4328,7 +4328,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) } } . { - //printf("error: FuncPtr `%c' unexpected at line %d of %s\n",*yytext,yyLineNr,yyFileName); + //printf("error: FuncPtr '%c' unexpected at line %d of %s\n",*yytext,yyLineNr,yyFileName); } "("{BN}*")"{BN}*/"(" { current->name += yytext; @@ -4582,7 +4582,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) BEGIN( SkipCxxComment ); } */ - /* `)' followed by a special comment */ + /* ')' followed by a special comment */ ")"{BN}*("/*"[*!]|"//"[/!])"<" { lineCount(); if (currentArgumentContext==DefineEnd) @@ -5113,7 +5113,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) if (!current->type.isEmpty() && (!isFunction || current->type.left(8)=="typedef ")) { - //printf("Scanner.l: found in class variable: `%s' `%s' `%s'\n", current->type.data(),current->name.data(),current->args.data()); + //printf("Scanner.l: found in class variable: '%s' '%s' '%s'\n", current->type.data(),current->name.data(),current->args.data()); if (isTypedef && current->type.left(8)!="typedef ") { current->type.prepend("typedef "); @@ -5122,14 +5122,14 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) } else { - //printf("Scanner.l: found in class function: `%s' `%s' `%s'\n", current->type.data(),current->name.data(),current->args.data()); + //printf("Scanner.l: found in class function: '%s' '%s' '%s'\n", current->type.data(),current->name.data(),current->args.data()); current->section = Entry::FUNCTION_SEC ; current->proto = *yytext==';'; } } else // a global function prototype or function variable { - //printf("Scanner.l: prototype? type=`%s' name=`%s' args=`%s'\n",current->type.data(),current->name.data(),current->args.data()); + //printf("Scanner.l: prototype? type='%s' name='%s' args='%s'\n",current->type.data(),current->name.data(),current->args.data()); if (!current->type.isEmpty() && (current->type.find(re,0)!=-1 || current->type.left(8)=="typedef ")) { @@ -5147,7 +5147,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) current->proto = TRUE; } } - //printf("Adding entry `%s'\n",current->name.data()); + //printf("Adding entry '%s'\n",current->name.data()); if ( insidePHP) { if (findAndRemoveWord(current->type,"final")) @@ -5555,7 +5555,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) current->name=current->name.left(current->name.length()-1).stripWhiteSpace(); //printf("template class declaration for %s!\n",current->name.data()); QCString rn = current_root->name.copy(); - //printf("cn=`%s' rn=`%s' isTypedef=%d\n",cn.data(),rn.data(),isTypedef); + //printf("cn='%s' rn='%s' isTypedef=%d\n",cn.data(),rn.data(),isTypedef); if (!current->name.isEmpty() && !rn.isEmpty()) { prependScope(); diff --git a/src/tagreader.cpp b/src/tagreader.cpp index da2f3f1..56dbe7d 100644 --- a/src/tagreader.cpp +++ b/src/tagreader.cpp @@ -384,7 +384,7 @@ class TagFileParser : public QXmlDefaultHandler } else { - warn("Unknown compound attribute `%s' found!",kind.data()); + warn("Unknown compound attribute '%s' found!",kind.data()); m_state = Invalid; } if (isObjC=="yes" && m_curClass) @@ -412,7 +412,7 @@ class TagFileParser : public QXmlDefaultHandler case InPackage: m_tagFilePackages.append(m_curPackage); m_curPackage=0; break; default: - warn("tag `compound' was not expected!"); + warn("tag 'compound' was not expected!"); } } @@ -458,7 +458,7 @@ class TagFileParser : public QXmlDefaultHandler case InNamespace: m_curNamespace->members.append(m_curMember); break; case InGroup: m_curGroup->members.append(m_curMember); break; case InPackage: m_curPackage->members.append(m_curMember); break; - default: warn("Unexpected tag `member' found"); break; + default: warn("Unexpected tag 'member' found"); break; } } @@ -476,7 +476,7 @@ class TagFileParser : public QXmlDefaultHandler } else { - warn("Found `enumvalue' tag outside of member tag"); + warn("Found 'enumvalue' tag outside of member tag"); } } @@ -504,7 +504,7 @@ class TagFileParser : public QXmlDefaultHandler case InMember: m_curMember->docAnchors.append(new TagAnchorInfo(m_fileName,m_curString,m_title)); break; case InPackage: m_curPackage->docAnchors.append(new TagAnchorInfo(m_fileName,m_curString,m_title)); break; case InDir: m_curDir->docAnchors.append(new TagAnchorInfo(m_fileName,m_curString,m_title)); break; - default: warn("Unexpected tag `docanchor' found"); break; + default: warn("Unexpected tag 'docanchor' found"); break; } } @@ -517,7 +517,7 @@ class TagFileParser : public QXmlDefaultHandler case InNamespace: m_curNamespace->classList.append(m_curString); break; case InGroup: m_curGroup->classList.append(m_curString); break; case InPackage: m_curPackage->classList.append(m_curString); break; - default: warn("Unexpected tag `class' found"); break; + default: warn("Unexpected tag 'class' found"); break; } } @@ -528,7 +528,7 @@ class TagFileParser : public QXmlDefaultHandler case InNamespace: m_curNamespace->classList.append(m_curString); break; case InFile: m_curFile->namespaceList.append(m_curString); break; case InGroup: m_curGroup->namespaceList.append(m_curString); break; - default: warn("Unexpected tag `namespace' found"); break; + default: warn("Unexpected tag 'namespace' found"); break; } } @@ -538,7 +538,7 @@ class TagFileParser : public QXmlDefaultHandler { case InGroup: m_curGroup->fileList.append(m_curString); break; case InDir: m_curDir->fileList.append(m_curString); break; - default: warn("Unexpected tag `file' found"); break; + default: warn("Unexpected tag 'file' found"); break; } } @@ -547,7 +547,7 @@ class TagFileParser : public QXmlDefaultHandler switch(m_state) { case InGroup: m_curGroup->fileList.append(m_curString); break; - default: warn("Unexpected tag `page' found"); break; + default: warn("Unexpected tag 'page' found"); break; } } @@ -556,7 +556,7 @@ class TagFileParser : public QXmlDefaultHandler switch(m_state) { case InDir: m_curDir->subdirList.append(m_curString); break; - default: warn("Unexpected tag `dir' found"); break; + default: warn("Unexpected tag 'dir' found"); break; } } @@ -580,7 +580,7 @@ class TagFileParser : public QXmlDefaultHandler } else { - warn("Unexpected tag `type' found"); + warn("Unexpected tag 'type' found"); } } @@ -596,7 +596,7 @@ class TagFileParser : public QXmlDefaultHandler case InDir: m_curDir->name = m_curString; break; case InMember: m_curMember->name = m_curString; break; case InPackage: m_curPackage->name = m_curString; break; - default: warn("Unexpected tag `name' found"); break; + default: warn("Unexpected tag 'name' found"); break; } } @@ -630,7 +630,7 @@ class TagFileParser : public QXmlDefaultHandler } else { - warn("Unexpected tag `base' found"); + warn("Unexpected tag 'base' found"); } } @@ -642,7 +642,7 @@ class TagFileParser : public QXmlDefaultHandler } else { - warn("Unexpected tag `base' found"); + warn("Unexpected tag 'base' found"); } } @@ -659,7 +659,7 @@ class TagFileParser : public QXmlDefaultHandler } else { - warn("Unexpected tag `includes' found"); + warn("Unexpected tag 'includes' found"); } m_curString=""; } @@ -682,7 +682,7 @@ class TagFileParser : public QXmlDefaultHandler } else { - warn("Unexpected tag `templarg' found"); + warn("Unexpected tag 'templarg' found"); } } @@ -697,7 +697,7 @@ class TagFileParser : public QXmlDefaultHandler case InPage: m_curPage->filename = m_curString; break; case InPackage: m_curPackage->filename = m_curString; break; case InDir: m_curDir->filename = m_curString; break; - default: warn("Unexpected tag `filename' found"); break; + default: warn("Unexpected tag 'filename' found"); break; } } @@ -707,7 +707,7 @@ class TagFileParser : public QXmlDefaultHandler { case InFile: m_curFile->path = m_curString; break; case InDir: m_curDir->path = m_curString; break; - default: warn("Unexpected tag `path' found"); break; + default: warn("Unexpected tag 'path' found"); break; } } @@ -723,7 +723,7 @@ class TagFileParser : public QXmlDefaultHandler } else { - warn("Unexpected tag `anchor' found"); + warn("Unexpected tag 'anchor' found"); } } @@ -743,7 +743,7 @@ class TagFileParser : public QXmlDefaultHandler } else { - warn("Unexpected tag `clangid' found"); + warn("Unexpected tag 'clangid' found"); } } @@ -757,7 +757,7 @@ class TagFileParser : public QXmlDefaultHandler } else { - warn("Unexpected tag `anchorfile' found"); + warn("Unexpected tag 'anchorfile' found"); } } @@ -769,7 +769,7 @@ class TagFileParser : public QXmlDefaultHandler } else { - warn("Unexpected tag `arglist' found"); + warn("Unexpected tag 'arglist' found"); } } void endTitle() @@ -778,7 +778,7 @@ class TagFileParser : public QXmlDefaultHandler { case InGroup: m_curGroup->title = m_curString; break; case InPage: m_curPage->title = m_curString; break; - default: warn("Unexpected tag `title' found"); break; + default: warn("Unexpected tag 'title' found"); break; } } @@ -790,7 +790,7 @@ class TagFileParser : public QXmlDefaultHandler } else { - warn("Unexpected tag `subgroup' found"); + warn("Unexpected tag 'subgroup' found"); } } @@ -877,7 +877,7 @@ class TagFileParser : public QXmlDefaultHandler bool startElement( const QString&, const QString&, const QString&name, const QXmlAttributes& attrib ) { - //printf("startElement `%s'\n",name.data()); + //printf("startElement '%s'\n",name.data()); StartElementHandler *handler = m_startElementHandlers[name.utf8()]; if (handler) { @@ -885,14 +885,14 @@ class TagFileParser : public QXmlDefaultHandler } else { - warn("Unknown tag `%s' found!",name.data()); + warn("Unknown tag '%s' found!",name.data()); } return TRUE; } bool endElement( const QString&, const QString&, const QString& name ) { - //printf("endElement `%s'\n",name.data()); + //printf("endElement '%s'\n",name.data()); EndElementHandler *handler = m_endElementHandlers[name.utf8()]; if (handler) { @@ -900,7 +900,7 @@ class TagFileParser : public QXmlDefaultHandler } else { - warn("Unknown tag `%s' found!",name.data()); + warn("Unknown tag '%s' found!",name.data()); } return TRUE; } @@ -986,8 +986,8 @@ void TagFileParser::dump() TagClassInfo *cd; for (;(cd=lci.current());++lci) { - msg("class `%s'\n",cd->name.data()); - msg(" filename `%s'\n",cd->filename.data()); + msg("class '%s'\n",cd->name.data()); + msg(" filename '%s'\n",cd->filename.data()); if (cd->bases) { QListIterator bii(*cd->bases); @@ -1003,10 +1003,10 @@ void TagFileParser::dump() for (;(md=mci.current());++mci) { msg(" member:\n"); - msg(" kind: `%s'\n",md->kind.data()); - msg(" name: `%s'\n",md->name.data()); - msg(" anchor: `%s'\n",md->anchor.data()); - msg(" arglist: `%s'\n",md->arglist.data()); + msg(" kind: '%s'\n",md->kind.data()); + msg(" name: '%s'\n",md->name.data()); + msg(" anchor: '%s'\n",md->anchor.data()); + msg(" arglist: '%s'\n",md->arglist.data()); } } //============== NAMESPACES @@ -1014,8 +1014,8 @@ void TagFileParser::dump() TagNamespaceInfo *nd; for (;(nd=lni.current());++lni) { - msg("namespace `%s'\n",nd->name.data()); - msg(" filename `%s'\n",nd->filename.data()); + msg("namespace '%s'\n",nd->name.data()); + msg(" filename '%s'\n",nd->filename.data()); QCStringList::Iterator it; for ( it = nd->classList.begin(); it != nd->classList.end(); ++it ) @@ -1028,10 +1028,10 @@ void TagFileParser::dump() for (;(md=mci.current());++mci) { msg(" member:\n"); - msg(" kind: `%s'\n",md->kind.data()); - msg(" name: `%s'\n",md->name.data()); - msg(" anchor: `%s'\n",md->anchor.data()); - msg(" arglist: `%s'\n",md->arglist.data()); + msg(" kind: '%s'\n",md->kind.data()); + msg(" name: '%s'\n",md->name.data()); + msg(" anchor: '%s'\n",md->anchor.data()); + msg(" arglist: '%s'\n",md->arglist.data()); } } //============== FILES @@ -1039,8 +1039,8 @@ void TagFileParser::dump() TagFileInfo *fd; for (;(fd=lfi.current());++lfi) { - msg("file `%s'\n",fd->name.data()); - msg(" filename `%s'\n",fd->filename.data()); + msg("file '%s'\n",fd->name.data()); + msg(" filename '%s'\n",fd->filename.data()); QCStringList::Iterator it; for ( it = fd->namespaceList.begin(); it != fd->namespaceList.end(); ++it ) @@ -1058,10 +1058,10 @@ void TagFileParser::dump() for (;(md=mci.current());++mci) { msg(" member:\n"); - msg(" kind: `%s'\n",md->kind.data()); - msg(" name: `%s'\n",md->name.data()); - msg(" anchor: `%s'\n",md->anchor.data()); - msg(" arglist: `%s'\n",md->arglist.data()); + msg(" kind: '%s'\n",md->kind.data()); + msg(" name: '%s'\n",md->name.data()); + msg(" anchor: '%s'\n",md->anchor.data()); + msg(" arglist: '%s'\n",md->arglist.data()); } QListIterator mii(fd->includes); @@ -1077,8 +1077,8 @@ void TagFileParser::dump() TagGroupInfo *gd; for (;(gd=lgi.current());++lgi) { - msg("group `%s'\n",gd->name.data()); - msg(" filename `%s'\n",gd->filename.data()); + msg("group '%s'\n",gd->name.data()); + msg(" filename '%s'\n",gd->filename.data()); QCStringList::Iterator it; for ( it = gd->namespaceList.begin(); it != gd->namespaceList.end(); ++it ) @@ -1111,10 +1111,10 @@ void TagFileParser::dump() for (;(md=mci.current());++mci) { msg(" member:\n"); - msg(" kind: `%s'\n",md->kind.data()); - msg(" name: `%s'\n",md->name.data()); - msg(" anchor: `%s'\n",md->anchor.data()); - msg(" arglist: `%s'\n",md->arglist.data()); + msg(" kind: '%s'\n",md->kind.data()); + msg(" name: '%s'\n",md->name.data()); + msg(" anchor: '%s'\n",md->anchor.data()); + msg(" arglist: '%s'\n",md->arglist.data()); } } //============== PAGES @@ -1122,17 +1122,17 @@ void TagFileParser::dump() TagPageInfo *pd; for (;(pd=lpi.current());++lpi) { - msg("page `%s'\n",pd->name.data()); - msg(" title `%s'\n",pd->title.data()); - msg(" filename `%s'\n",pd->filename.data()); + msg("page '%s'\n",pd->name.data()); + msg(" title '%s'\n",pd->title.data()); + msg(" filename '%s'\n",pd->filename.data()); } //============== DIRS QListIterator ldi(m_tagFileDirs); TagDirInfo *dd; for (;(dd=ldi.current());++ldi) { - msg("dir `%s'\n",dd->name.data()); - msg(" path `%s'\n",dd->path.data()); + msg("dir '%s'\n",dd->name.data()); + msg(" path '%s'\n",dd->path.data()); QCStringList::Iterator it; for ( it = dd->fileList.begin(); it != dd->fileList.end(); ++it ) @@ -1527,7 +1527,7 @@ void TagFileParser::addIncludes() TagIncludeInfo *ii; for (;(ii=mii.current());++mii) { - //printf("ii->name=`%s'\n",ii->name.data()); + //printf("ii->name='%s'\n",ii->name.data()); FileName *ifn = Doxygen::inputNameDict->find(ii->name); ASSERT(ifn!=0); if (ifn) diff --git a/src/template.cpp b/src/template.cpp index b1435ce..228da4d 100644 --- a/src/template.cpp +++ b/src/template.cpp @@ -2832,7 +2832,7 @@ template class TemplateNodeCreator : public TemplateNode rootDir.setPath(QDir::currentDirPath()); if (!rootDir.mkdir(outputDir)) { - err("tag OUTPUT_DIRECTORY: Output directory `%s' does not " + err("tag OUTPUT_DIRECTORY: Output directory '%s' does not " "exist and cannot be created\n",outputDir.data()); return; } diff --git a/src/util.cpp b/src/util.cpp index a6ae004..944ce6a 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -184,7 +184,7 @@ QCString removeAnonymousScopes(const QCString &s) p=i+l; } result+=s.right(sl-p); - //printf("removeAnonymousScopes(`%s')=`%s'\n",s.data(),result.data()); + //printf("removeAnonymousScopes('%s')='%s'\n",s.data(),result.data()); return result; } @@ -210,7 +210,7 @@ QCString replaceAnonymousScopes(const QCString &s,const char *replacement) p=i+l; } result+=s.right(sl-p); - //printf("replaceAnonymousScopes(`%s')=`%s'\n",s.data(),result.data()); + //printf("replaceAnonymousScopes('%s')='%s'\n",s.data(),result.data()); return result; } @@ -241,7 +241,7 @@ QCString stripAnonymousNamespaceScope(const QCString &s) p=i+l; } done: - //printf("stripAnonymousNamespaceScope(`%s')=`%s'\n",s.data(),newScope.data()); + //printf("stripAnonymousNamespaceScope('%s')='%s'\n",s.data(),newScope.data()); return newScope; } @@ -383,7 +383,7 @@ QCString resolveTypeDef(const Definition *context,const QCString &qualifiedName, { // split-off scope part QCString resScopeName = qualifiedName.left(scopeIndex); - //printf("resScopeName=`%s'\n",resScopeName.data()); + //printf("resScopeName='%s'\n",resScopeName.data()); // look-up scope in context int is,ps=0; @@ -394,7 +394,7 @@ QCString resolveTypeDef(const Definition *context,const QCString &qualifiedName, QCString tmp = resolveTypeDef(mContext,qualScopePart); if (!tmp.isEmpty()) qualScopePart=tmp; resScope = resScope->findInnerCompound(qualScopePart); - //printf("qualScopePart=`%s' resScope=%p\n",qualScopePart.data(),resScope); + //printf("qualScopePart='%s' resScope=%p\n",qualScopePart.data(),resScope); if (resScope==0) break; ps=is+l; } @@ -444,7 +444,7 @@ QCString resolveTypeDef(const Definition *context,const QCString &qualifiedName, // step 3: get the member's type if (md) { - //printf(">>resolveTypeDef: Found typedef name `%s' in scope `%s' value=`%s' args='%s'\n", + //printf(">>resolveTypeDef: Found typedef name '%s' in scope '%s' value='%s' args='%s'\n", // qualifiedName.data(),context->name().data(),md->typeString(),md->argsString() // ); result=md->typeString(); @@ -461,7 +461,7 @@ QCString resolveTypeDef(const Definition *context,const QCString &qualifiedName, } else { - //printf(">>resolveTypeDef: Typedef `%s' not found in scope `%s'!\n", + //printf(">>resolveTypeDef: Typedef '%s' not found in scope '%s'!\n", // qualifiedName.data(),context ? context->name().data() : ""); } return result; @@ -2015,7 +2015,7 @@ void linkifyText(const TextGeneratorIntf &out, const Definition *scope, const char *text, bool autoBreak,bool external, bool keepSpaces,int indentLevel) { - //printf("linkify=`%s'\n",text); + //printf("linkify='%s'\n",text); static QRegExp regExp("[a-z_A-Z\\x80-\\xFF][~!a-z_A-Z0-9$\\\\.:\\x80-\\xFF]*"); static QRegExp regExpSplit("(?!:),"); QCString txtStr=text; @@ -2559,7 +2559,7 @@ QCString fileToString(const char *name,bool filter,bool isSourceCode) QFileInfo fi(name); if (!fi.exists() || !fi.isFile()) { - err("file `%s' not found\n",name); + err("file '%s' not found\n",name); return ""; } BufStr buf(fi.size()); @@ -2577,7 +2577,7 @@ QCString fileToString(const char *name,bool filter,bool isSourceCode) } if (!fileOpened) { - err("cannot open file `%s' for reading\n",name); + err("cannot open file '%s' for reading\n",name); } return ""; } @@ -2634,7 +2634,7 @@ QCString yearToString() //---------------------------------------------------------------------- // recursive function that returns the number of branches in the -// inheritance tree that the base class `bcd' is below the class `cd' +// inheritance tree that the base class 'bcd' is below the class 'cd' int minClassDistance(const ClassDef *cd,const ClassDef *bcd,int level) { @@ -2705,7 +2705,7 @@ exit: // printf("("); // for (;(a=ali.current());++ali) // { -// printf("t=`%s' n=`%s' v=`%s' ",a->type.data(),!a->name.isEmpty()>0?a->name.data():"",!a->defval.isEmpty()>0?a->defval.data():""); +// printf("t='%s' n='%s' v='%s' ",a->type.data(),!a->name.isEmpty()>0?a->name.data():"",!a->defval.isEmpty()>0?a->defval.data():""); // } // printf(")"); //} @@ -2851,7 +2851,7 @@ static QCString trimScope(const QCString &name,const QCString &s) { QCString tmp; QCString scope=name.left(scopeOffset)+"::"; - //printf("Trying with scope=`%s'\n",scope.data()); + //printf("Trying with scope='%s'\n",scope.data()); int i,p=0,l; while ((i=findScopePattern(scope,result,p,&l))!=-1) // for each occurrence @@ -2871,7 +2871,7 @@ static QCString trimScope(const QCString &name,const QCString &s) void trimBaseClassScope(BaseClassList *bcl,QCString &s,int level=0) { - //printf("trimBaseClassScope level=%d `%s'\n",level,s.data()); + //printf("trimBaseClassScope level=%d '%s'\n",level,s.data()); BaseClassListIterator bcli(*bcl); BaseClassDef *bcd; for (;(bcd=bcli.current());++bcli) @@ -2885,7 +2885,7 @@ void trimBaseClassScope(BaseClassList *bcl,QCString &s,int level=0) s.length()-spos-cd->name().length()-2 ); } - //printf("base class `%s'\n",cd->name().data()); + //printf("base class '%s'\n",cd->name().data()); if (cd->baseClasses()) trimBaseClassScope(cd->baseClasses(),s,level+1); } @@ -3042,7 +3042,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA, NamespaceSDict *usingNamespaces, SDict *usingClasses) { - //printf("match argument start `%s|%s' <-> `%s|%s' using nsp=%p class=%p\n", + //printf("match argument start '%s|%s' <-> '%s|%s' using nsp=%p class=%p\n", // srcA->type.data(),srcA->name.data(), // dstA->type.data(),dstA->name.data(), // usingNamespaces, @@ -3104,7 +3104,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA, //srcAType=stripTemplateSpecifiersFromScope(srcAType,FALSE); //dstAType=stripTemplateSpecifiersFromScope(dstAType,FALSE); - //printf("srcA=`%s|%s' dstA=`%s|%s'\n",srcAType.data(),srcAName.data(), + //printf("srcA='%s|%s' dstA='%s|%s'\n",srcAType.data(),srcAName.data(), // dstAType.data(),dstAName.data()); if (srcA->array!=dstA->array) // nomatch for char[] against char @@ -3129,7 +3129,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA, { srcAType=trimScope(className,srcAType); dstAType=trimScope(className,dstAType); - //printf("trimScope: `%s' <=> `%s'\n",srcAType.data(),dstAType.data()); + //printf("trimScope: '%s' <=> '%s'\n",srcAType.data(),dstAType.data()); ClassDef *cd; if (!namespaceName.isEmpty()) cd=getClass(namespaceName+"::"+className); @@ -3140,7 +3140,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA, trimBaseClassScope(cd->baseClasses(),srcAType); trimBaseClassScope(cd->baseClasses(),dstAType); } - //printf("trimBaseClassScope: `%s' <=> `%s'\n",srcAType.data(),dstAType.data()); + //printf("trimBaseClassScope: '%s' <=> '%s'\n",srcAType.data(),dstAType.data()); } if (!namespaceName.isEmpty()) { @@ -3233,7 +3233,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA, while (dstPos> match argument: %s::`%s|%s' (%s) <-> %s::`%s|%s' (%s)\n", + //printf(">> match argument: %s::'%s|%s' (%s) <-> %s::'%s|%s' (%s)\n", // srcScope ? srcScope->name().data() : "", // srcA->type.data(),srcA->name.data(),srcA->canType.data(), // dstScope ? dstScope->name().data() : "", @@ -3857,7 +3857,7 @@ bool matchArguments2(const Definition *srcScope,const FileDef *srcFileScope,cons // pre: the types of the arguments in the list should match. void mergeArguments(ArgumentList *srcAl,ArgumentList *dstAl,bool forceNameOverwrite) { - //printf("mergeArguments `%s', `%s'\n", + //printf("mergeArguments '%s', '%s'\n", // argListToString(srcAl).data(),argListToString(dstAl).data()); if (srcAl==0 || dstAl==0 || srcAl->count()!=dstAl->count()) @@ -3871,12 +3871,12 @@ void mergeArguments(ArgumentList *srcAl,ArgumentList *dstAl,bool forceNameOverwr { if (srcA->defval.isEmpty() && !dstA->defval.isEmpty()) { - //printf("Defval changing `%s'->`%s'\n",srcA->defval.data(),dstA->defval.data()); + //printf("Defval changing '%s'->'%s'\n",srcA->defval.data(),dstA->defval.data()); srcA->defval=dstA->defval.copy(); } else if (!srcA->defval.isEmpty() && dstA->defval.isEmpty()) { - //printf("Defval changing `%s'->`%s'\n",dstA->defval.data(),srcA->defval.data()); + //printf("Defval changing '%s'->'%s'\n",dstA->defval.data(),srcA->defval.data()); dstA->defval=srcA->defval.copy(); } @@ -3898,15 +3898,15 @@ void mergeArguments(ArgumentList *srcAl,ArgumentList *dstAl,bool forceNameOverwr //printf("1. merging %s:%s <-> %s:%s\n",srcA->type.data(),srcA->name.data(),dstA->type.data(),dstA->name.data()); if (srcA->name.isEmpty() && !dstA->name.isEmpty()) { - //printf("type: `%s':=`%s'\n",srcA->type.data(),dstA->type.data()); - //printf("name: `%s':=`%s'\n",srcA->name.data(),dstA->name.data()); + //printf("type: '%s':='%s'\n",srcA->type.data(),dstA->type.data()); + //printf("name: '%s':='%s'\n",srcA->name.data(),dstA->name.data()); srcA->type = dstA->type.copy(); srcA->name = dstA->name.copy(); } else if (!srcA->name.isEmpty() && dstA->name.isEmpty()) { - //printf("type: `%s':=`%s'\n",dstA->type.data(),srcA->type.data()); - //printf("name: `%s':=`%s'\n",dstA->name.data(),srcA->name.data()); + //printf("type: '%s':='%s'\n",dstA->type.data(),srcA->type.data()); + //printf("name: '%s':='%s'\n",dstA->name.data(),srcA->name.data()); dstA->type = srcA->type.copy(); dstA->name = dstA->name.copy(); } @@ -3960,15 +3960,15 @@ void mergeArguments(ArgumentList *srcAl,ArgumentList *dstAl,bool forceNameOverwr j2=dstA->type.length()-i2-2; if (i1!=-1 && i2==-1 && srcA->type.right(j1)==dstA->type) { - //printf("type: `%s':=`%s'\n",dstA->type.data(),srcA->type.data()); - //printf("name: `%s':=`%s'\n",dstA->name.data(),srcA->name.data()); + //printf("type: '%s':='%s'\n",dstA->type.data(),srcA->type.data()); + //printf("name: '%s':='%s'\n",dstA->name.data(),srcA->name.data()); dstA->type = srcA->type.left(i1+2)+dstA->type; dstA->name = dstA->name.copy(); } else if (i1==-1 && i2!=-1 && dstA->type.right(j2)==srcA->type) { - //printf("type: `%s':=`%s'\n",srcA->type.data(),dstA->type.data()); - //printf("name: `%s':=`%s'\n",dstA->name.data(),srcA->name.data()); + //printf("type: '%s':='%s'\n",srcA->type.data(),dstA->type.data()); + //printf("name: '%s':='%s'\n",dstA->name.data(),srcA->name.data()); srcA->type = dstA->type.left(i2+2)+srcA->type; srcA->name = dstA->name.copy(); } @@ -3980,7 +3980,7 @@ void mergeArguments(ArgumentList *srcAl,ArgumentList *dstAl,bool forceNameOverwr { dstA->docs = srcA->docs.copy(); } - //printf("Merge argument `%s|%s' `%s|%s'\n", + //printf("Merge argument '%s|%s' '%s|%s'\n", // srcA->type.data(),srcA->name.data(), // dstA->type.data(),dstA->name.data()); } @@ -3994,7 +3994,7 @@ static void findMembersWithSpecificName(MemberName *mn, const char *forceTagFile, QList &members) { - //printf(" Function with global scope name `%s' args=`%s'\n", + //printf(" Function with global scope name '%s' args='%s'\n", // mn->memberName(),args); MemberNameIterator mli(*mn); const MemberDef *md = 0; @@ -4002,7 +4002,7 @@ static void findMembersWithSpecificName(MemberName *mn, { const FileDef *fd=md->getFileDef(); const GroupDef *gd=md->getGroupDef(); - //printf(" md->name()=`%s' md->args=`%s' fd=%p gd=%p current=%p ref=%s\n", + //printf(" md->name()='%s' md->args='%s' fd=%p gd=%p current=%p ref=%s\n", // md->name().data(),args,fd,gd,currentFile,md->getReference().data()); if ( ((gd && gd->isLinkable()) || (fd && fd->isLinkable()) || md->isReference()) && @@ -4034,11 +4034,11 @@ static void findMembersWithSpecificName(MemberName *mn, } /*! - * Searches for a member definition given its name `memberName' as a string. + * Searches for a member definition given its name 'memberName' as a string. * memberName may also include a (partial) scope to indicate the scope * in which the member is located. * - * The parameter `scName' is a string representing the name of the scope in + * The parameter 'scName' is a string representing the name of the scope in * which the link was found. * * In case of a function args contains a string representation of the @@ -4047,12 +4047,12 @@ static void findMembersWithSpecificName(MemberName *mn, * * The function returns TRUE if the member is known and documented or * FALSE if it is not. - * If TRUE is returned parameter `md' contains a pointer to the member - * definition. Furthermore exactly one of the parameter `cd', `nd', or `fd' + * If TRUE is returned parameter 'md' contains a pointer to the member + * definition. Furthermore exactly one of the parameter 'cd', 'nd', or 'fd' * will be non-zero: - * - if `cd' is non zero, the member was found in a class pointed to by cd. - * - if `nd' is non zero, the member was found in a namespace pointed to by nd. - * - if `fd' is non zero, the member was found in the global namespace of + * - if 'cd' is non zero, the member was found in a class pointed to by cd. + * - if 'nd' is non zero, the member was found in a namespace pointed to by nd. + * - if 'fd' is non zero, the member was found in the global namespace of * file fd. */ bool getDefs(const QCString &scName, @@ -4107,7 +4107,7 @@ bool getDefs(const QCString &scName, // handle special the case where both scope name and member scope are equal if (mScope==scopeName) scopeName.resize(0); - //printf("mScope=`%s' mName=`%s'\n",mScope.data(),mName.data()); + //printf("mScope='%s' mName='%s'\n",mScope.data(),mName.data()); MemberName *mn = Doxygen::memberNameSDict->find(mName); //printf("mName=%s mn=%p\n",mName.data(),mn); @@ -4308,7 +4308,7 @@ bool getDefs(const QCString &scName, // maybe an namespace, file or group member ? - //printf("Testing for global symbol scopeName=`%s' mScope=`%s' :: mName=`%s'\n", + //printf("Testing for global symbol scopeName='%s' mScope='%s' :: mName='%s'\n", // scopeName.data(),mScope.data(),mName.data()); if ((mn=Doxygen::functionNameSDict->find(mName))) // name is known { @@ -4332,7 +4332,7 @@ bool getDefs(const QCString &scName, fnd->isLinkable() ) { - //printf("Symbol inside existing namespace `%s' count=%d\n", + //printf("Symbol inside existing namespace '%s' count=%d\n", // namespaceName.data(),mn->count()); bool found=FALSE; MemberNameIterator mmli(*mn); @@ -4473,8 +4473,8 @@ bool getDefs(const QCString &scName, MemberNameIterator mni(*mn); for (mni.toLast();(md=mni.current());--mni) { - //printf("Found member `%s'\n",md->name().data()); - //printf("member is linkable md->name()=`%s'\n",md->name().data()); + //printf("Found member '%s'\n",md->name().data()); + //printf("member is linkable md->name()='%s'\n",md->name().data()); fd=md->getFileDef(); gd=md->getGroupDef(); const MemberDef *tmd = md->getEnumScope(); @@ -4547,7 +4547,7 @@ static bool getScopeDefs(const char *docScope,const char *scope, cd=0;nd=0; QCString scopeName=scope; - //printf("getScopeDefs: docScope=`%s' scope=`%s'\n",docScope,scope); + //printf("getScopeDefs: docScope='%s' scope='%s'\n",docScope,scope); if (scopeName.isEmpty()) return FALSE; bool explicitGlobalScope=FALSE; @@ -4808,10 +4808,10 @@ QCString linkToText(SrcLangExt lang,const char *link,bool isFileName) #if 0 /* * generate a reference to a class, namespace or member. - * `scName' is the name of the scope that contains the documentation + * 'scName' is the name of the scope that contains the documentation * string that is returned. - * `name' is the name that we want to link to. - * `name' may have five formats: + * 'name' is the name that we want to link to. + * 'name' may have the following formats: * 1) "ScopeName" * 2) "memberName()" one of the (overloaded) function or define * with name memberName. @@ -4983,8 +4983,8 @@ bool resolveLink(/* in */ const char *scName, //---------------------------------------------------------------------- // General function that generates the HTML code for a reference to some -// file, class or member from text `lr' within the context of class `clName'. -// This link has the text 'lt' (if not 0), otherwise `lr' is used as a +// file, class or member from text 'lr' within the context of class 'clName'. +// This link has the text 'lt' (if not 0), otherwise 'lr' is used as a // basis for the link's text. // returns TRUE if a link could be generated. @@ -5719,7 +5719,7 @@ done: className=namespaceName.copy(); namespaceName.resize(0); } - //printf("extractNamespace `%s' => `%s|%s'\n",scopeName.data(), + //printf("extractNamespace '%s' => '%s|%s'\n",scopeName.data(), // className.data(),namespaceName.data()); if (/*className.right(2)=="-g" ||*/ className.right(2)=="-p") { @@ -5740,7 +5740,7 @@ QCString insertTemplateSpecifierInScope(const QCString &scope,const QCString &te ((cd=getClass(scope.left(si)))==0 || cd->templateArguments()==0) ) { - //printf("Tried `%s'\n",(scope.left(si)+templ).data()); + //printf("Tried '%s'\n",(scope.left(si)+templ).data()); pi=si+2; } if (si==-1) // not nested => append template specifier @@ -5752,7 +5752,7 @@ QCString insertTemplateSpecifierInScope(const QCString &scope,const QCString &te result=scope.left(si) + templ + scope.right(scope.length()-si); } } - //printf("insertTemplateSpecifierInScope(`%s',`%s')=%s\n", + //printf("insertTemplateSpecifierInScope('%s','%s')=%s\n", // scope.data(),templ.data(),result.data()); return result; } @@ -6672,7 +6672,7 @@ PageDef *addRelatedPage(const char *name,const QCString &ptitle, { // append documentation block to the page. pd->setDocumentation(doc,fileName,startLine); - //printf("Adding page docs `%s' pi=%p name=%s\n",doc.data(),pd,name); + //printf("Adding page docs '%s' pi=%p name=%s\n",doc.data(),pd,name); // append (x)refitems to the page. pd->setRefItems(sli); } @@ -6696,7 +6696,7 @@ PageDef *addRelatedPage(const char *name,const QCString &ptitle, pd->setFileName(tagInfo->fileName); } - //printf("Appending page `%s'\n",baseName.data()); + //printf("Appending page '%s'\n",baseName.data()); Doxygen::pageSDict->append(baseName,pd); if (gd) gd->addPage(pd); @@ -6731,7 +6731,7 @@ PageDef *addRelatedPage(const char *name,const QCString &ptitle, { si=new SectionInfo( file,-1,pd->name(),pd->title(),SectionInfo::Page,0,pd->getReference()); - //printf("si->label=`%s' si->definition=%s si->fileName=`%s'\n", + //printf("si->label='%s' si->definition=%s si->fileName='%s'\n", // si->label.data(),si->definition?si->definition->name().data():"", // si->fileName.data()); //printf(" SectionInfo: sec=%p sec->fileName=%s\n",si,si->fileName.data()); @@ -8129,8 +8129,8 @@ QCString filterTitle(const QCString &title) } //---------------------------------------------------------------------------- -// returns TRUE if the name of the file represented by `fi' matches -// one of the file patterns in the `patList' list. +// returns TRUE if the name of the file represented by 'fi' matches +// one of the file patterns in the 'patList' list. bool patternMatch(const QFileInfo &fi,const QStrList *patList) { @@ -8164,7 +8164,7 @@ bool patternMatch(const QFileInfo &fi,const QStrList *patList) re.match(fp)!=-1 || re.match(afp)!=-1; if (found) break; - //printf("Matching `%s' against pattern `%s' found=%d\n", + //printf("Matching '%s' against pattern '%s' found=%d\n", // fi->fileName().data(),pattern.data(),found); } } diff --git a/src/vhdlcode.l b/src/vhdlcode.l index 7c6cfa4..5f668c6 100644 --- a/src/vhdlcode.l +++ b/src/vhdlcode.l @@ -347,7 +347,7 @@ static void writeWord(const char *word,const char* curr_class=0,bool classLink=F }// writeWord -/*! write a code fragment `text' that may span multiple lines, inserting +/*! write a code fragment 'text' that may span multiple lines, inserting * line numbers for each line. */ static void codifyLines(const char *text,const char *cl=0,bool classlink=FALSE,bool comment=FALSE) diff --git a/src/xmldocvisitor.cpp b/src/xmldocvisitor.cpp index 1005719..5e190da 100644 --- a/src/xmldocvisitor.cpp +++ b/src/xmldocvisitor.cpp @@ -404,7 +404,7 @@ void XmlDocVisitor::visit(DocInclude *inc) void XmlDocVisitor::visit(DocIncOperator *op) { - //printf("DocIncOperator: type=%d first=%d, last=%d text=`%s'\n", + //printf("DocIncOperator: type=%d first=%d, last=%d text='%s'\n", // op->type(),op->isFirst(),op->isLast(),op->text().data()); if (op->isFirst()) { diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp index fe324be..cdb0f02 100644 --- a/src/xmlgen.cpp +++ b/src/xmlgen.cpp @@ -566,7 +566,7 @@ static void generateXMLForMember(const MemberDef *md,FTextStream &ti,FTextStream { t << memberOutputFileBase(md); } - t << "_1" // encoded `:' character (see util.cpp:convertNameToFile) + t << "_1" // encoded ':' character (see util.cpp:convertNameToFile) << md->anchor(); t << "\" prot=\""; switch(md->protection()) -- cgit v0.12 y1hcF|gO䮺bJ!.@YްͣLқIyw"G069 Hf?"u눽GICBP P+$P&c"R- :$t`Lxɕ5I%Tqd˻6=lݧaBYvVLfɖRleU$`ZBD$ arf!f<XF2J5B@F~PRT)QS Ra$(R$ &l0-ԋ*) Mb%YTHNP#wjL݂R|90Xr\ fk IBa L1Vxc60z_99 Vvp\9 ^F6F)ţBh.Dᒕ4Mf5XH!IbwB `,M21 m\,shGĖ -ɔʱf (MAҢ ya0zIGsUZ#Sy7 Ce,dNvRW;N5ډ\*-,V-H欛lƺwLW76^yAwKuNL5y ! w;S5Q]]cvRKMmeuĵ)"fI X .!2WF.lKv1fhRuuIDݷYA6wdSuo[?G^ydAV&`0 pf2#3q3[sucN\ȶE 2#$$elJ[sN`MFlhue'#h\n.Nⱬxt46 eiQ "-B"D&0 4F /fn9e-Z8DkA6cIņ DRV c0Kz|lyurHO(nYo0|5QFbg ֛FNvUIiwuIZxSB,g~g*"'z2RShKOOx1͋Ti)XCG-$k}yeFFfqӳǝߥ+޽=C#7nv(9ڨ0,wf1MUiTVʰf@ +15JNytdXMs>nqx?ˣ-+23^jd9ݘzֶ q{ b tz{4D!bhڻrM9i>bF|~%$)7q68abX)c&)O񬅹ǙT:ֵ lDzܹtYlB8k*YBl['%ѡhcQ6K,_"F䷳kbSzu\5jɅj3:udD7n-la,?o4;teSkF"ʧQ/^:/O`)mqֲox82|{Aӏ=5zL -$y{u}fvpŭ7npd u2lDFK]ĩq|gr{ɼHfe T@dJbnb.C/ak:֯vy3kQIK: sFg X.i@*8m!19CG`wa䔰s :j0*uJ'mXX_`X*LXS_ٌw{Pz`なn r&SL^:T~Aeqh|;02Ac +)HIBatnR!jK-]vJeu[(Q{q>Onn⵺|p !݄8&//鼮Ci|!nbz:Ο=_ :!6_۟d-M%"NJ 3V}@L(Sd2t|!wXzMѻVIje wĚq^MY^ksa~U'nN_O=7s6sp~i/8`4UflLمvz& 92K=c`R۩E8TƺOH"vo![+HIDEhxݙ~.A{=89G!OgWقCvy~#j0f4v\ƴޢM؝:C+E)].5.Qcy$5&fcEH)^Rbፈ`C3HSc;΀ ㍏X~!EVX&qŁ)ĻR >(gK":@@IM lz{;8ʒLEғh9h]tMN$66YN\AȴjL[FYϏͳڧUq.Kmf1i2:Z͎G*cX0yyʭ2ŨF9DZis֝\,{fZmQr- jUN'|qd;wIJsTWaXŤ~^"e/6qy_x։3$U*HfhvOA|)șFM3T3fHbp+ vHTCZCv"ڇv%6=>I4ashݯZ1~e pZ&,bzEmdhuX[k1cm-:qJeVZ'v㝳Kp'?2ɵMMi`OfbQ}9aLi|W&!]iϋU%6ߏmf~xwX[{qLRSrwOo4w\=¸ޮxaatllZkj\I}>Nl?NeHyL3I8-TݯO髕nh Q0tdSiMx_f,\ }7|朲Nk3̳0tSN;F{w1 쯓^+/l`@^tggLmh.g$78Sϭs"ʽmcor\߃#TSijd^-ͣ+W}ZpRFLs95eFOqwO#njlׂ( kY|=p})b-r9;xLf!!f;Oc'߭Y4h! <2S3`+#ed"C˶\0֠v1u sXzbёꋷ ccg) Gt6E__ +S_rad&p ;fA$]Ki<τxea\tmcD4/~ncfDxk4> _fw&?Lk u %gsTc>{ek[ͳoTcfHf؆k,Wx>=$S!aoL6L׮ UNEskz]Y>6㋑mZ/۳?FӜaZ!ռ};o I$Z,Fۧt˾_6Ϟq,?uazA3 "rZ׋d系| Yk$wOV6cm-%f$Yb9z"%#ƕD`/Kw~[-kycgGF^xFg/^j;0Ybf>$gӧ#.W?n7)-yj:P%vs\cNU1}HVʘ}5+/,14L?>6CnvΙ|wěq#.a??\~Oβ7͹Oc&$ut/kղ]NqTPB 7Gё@*Q#4O僃r[Q) ahyŝ:44SU~jM<.o΢G`LGZ"IT (*&ற7ą´8zf~3Đf;1>]RM1j.M{xݫfk97KP䙡S+Wm|5k>/?R {όOq  I$ ؛)9MCLaQ!CAkˮ'C#@$4$CVά$Z5r(5,ԅ6=z|Olo(O,#4Q5Lѱ߼${ Ϧm}j\7g9j4sΒq>JFg|eci6kDk5'Fi\֖Q-$.Uj2|=xHhNt.h澲%Ka6bQؐp~[Gʮ5pˑ=|,,v3K Yoid L:G0QRxDt^^ hǿE'DjMP=q.`:KEI{F7Ї.5%I }sI(զH7ɑs8pHc2{MnYf8a`ΌL~mb-Y_WrҔ#Jwpʉ5k^4^ۖ+k}Ŵy]ׯ= ,y˩e%+1Y]){a_kS_C>ݘ{k'æU4|dSV2bsCމ[C CNxy8 L=BŒH<!jl;]"GD{\zf"?,N^'rgjΛXzO(N{>:?e̱cHB6&%Ԫ =[o:k2,g͗̃aDUJuC$m7AD~`:]_WmL@.%kPa8Mp x^*\35gpAiL1\۷|ؘW܌}BQp\(0Sӽlu75):kl15Wu'0MiX/ 3 9i37_{DQEƻT,?.qѼ@qȢ"GP;:ceDa sq!1f [nZ/ԪTmKP1u_~eB!% Dn `.mjUEstuXJ,H\TGS3HPv"h-dasx2ZѰXw"A%3ʱiyF)~6qKNR6"y_#x<\3:[_"i]>08hY b?/Κ\bKDFvk$8F& !&)̭M @yoB:FxvRZD)̛j[^%B|02HTvYɧ*޴j5-܍9nxd3YݮR>C-U4s5ER"#\GGYU?Lq6׻Nc*o&;9Fe9Iy0MnNOϧJ=̩l֘ID5MiFcF껮>1="!1 > B3Z]f5ڴ5h6A7A9%9͕A,PtⴇpH`{ES+T`\" _Ǣ>aE6YTRfmp:%!X4S +4QDi3}ra>6{o6Q$-ףh5EW9YddI!67w|zDaRApHl;b ?? L_}%G!GcD|<AIp&!(w)@.5Ɠ]a;9DU or~=!/SULJ'[rY=w(^X̵hDu"l zi\z+g6ٶ$GhKt`<Q9=7áwZ>.<|ú4Y+OLA[2bf: 0yιUvQ_Ō[llԈTuxq%bOlIvh 4Pi t5i:Ov)0N$ik?uŶـg@&{y۵dUrb.Y>޲fz1ڋ26źݿ<&˭IF}RjU4Lk- ,k$~vadz4s&ʓFc4qTsEsw)3mQ *"}޶-4 tJaJmݟ6QC_g48CɧRRcx6S1F.AI(n9c9kMcqg٥MN*ih"Уq$ŲnBͦR{_ %RK&^&z,a̤7$1s\ܷCf>/„!c !evuT9 8[Iry[7wH펊U i& (H 𬈣=]p{Zz9cswL9z ! h<@ 4sN9А7kD(]X7$7?/f=qA-O3h$prAkJ_LaМ !r{)KLj_qfӨA@Ջay-^Eא1}#"83>~gg3MAVbzjtXĆbP+nM_'c^>Yc"ɐزeZ{VmpZL z/(X#K=G:qoQD$HEl>H`hj%5O"Ƀ0\|ILuXx3?{ߧ 6xh~]i:AwJƇVS.Q(MY=.޿>MO|h3 *كxzv (,R[IiڊIl٠26m)$Սd(l֌E)hJPLSy=Ͽwߓ9?Fy}N7{PSš&,ća_P&T!FHS2@U̓REE02n밙rAHWv߇9 ^&M\>RB} VB?Q*YT12H QL,)B  X!U_ eu8K ٗ"mRoǿL'ч:uiC8"?N?ϟ[L^ )Ě"xS'@b#@">JY_d m-,̒I?RXQ)Vd" ,L*4hSW^0Q(@R8<{57׷C=Ն/ !RkD53|v|)mT#U*Uًl3xi`13C\֙p RS IEACF]BCj wTFVR*m&ifjk5-sFjmii1,ڊfJrk,ɭ6٢b[55HJ  ,A3.1kY+LsW+cl֣hԲf[Z1fLKS5(1rޮt*ۖMIue\ U\4鶙QDJiݪXۻûa͑AM$ȁp̐X,${<P=ݍjקKA9<a?eFEk=:%ԞW&l/£|R&(Gls5%&E $Y`& Kdy}Y˒Z~lՐ1>$Ta0Xff8$cM6ϓcnm$kxmY(H%IFHaB $mCAhДLbfJ)4SE4žv Ү"F ɡ&pAJ1wА 6`b"*1}6b(-R+Vwa y;~﷫[ STԍي|npB!ܲb$y! +\gyVO$sQٳ}ݿmIubQ(GPF`9dEs%2TbT&N;j:g/Cm+zh ub:TⶾwWSi hP@1U,& td-*~x4u7:Sy8.0}H qA8{d%GIR:"G+׹!x[V۰9!`clr*CpѪolZ繮kL[dluQ4%`JЈLU[X/ D ",V$OקaH޲VQ3,f:!' (iR v.'A_MiJH;6&Jhty][n}?%Z>R~1i`I,WG; S#m1W}!5h)(!D[cHjpdj?k>9JEŚ,!Jd[uEYaead'zMYB0`ǵy%縓*łqʘ$}qPwo,02mb=X\c~N.:hvMM'W{KUɁ#K[i`$cGJ6kѭYR &|n746Gr910Y&!9.Bd V&e(XYaH.X1 __wL( LrMEP(:ke IH%>#6 Tbd-uGSn]mӷ\G ?d2d žL !zY4Gmc &*2{CZ N2!\"LFT`Ǘ{]Fd }e_#gTy\C3[ZF_oO3&I)vlz}g8R 9{6hfRT!X"PaU"ȾV0 /NBh8ݬ}|e^0^5=,>ӼL c``'ɓ#Gë}نFw{zd>6,Qa2A k^`oxҝ1h5zU2;dg£{{8r|0< |}o8$¦Ԅ)cU|aƓifzuiMSJ.g"+@4؇ 1!~ R*@q-o74}MK?BzE卮m)}||8(5QL{ /R23kMrdy~.phP P9)Oirk%Bѹ cvi񱸝u: 1RSx& K7s"}cYoW'j&/¹2ͩ.Wuj|f\Bv3EYp,My:ɒم!Rm _`* NzC(D ՎdV2!!d9m2 [ HY I&e鳃܁:4s Уc^&2# "װтgz/%$]޺Ogz&Pp Ă'{k3<Ē_7G{=;L &bMgi6ͺ[DLYgm̜aڣIȯиsXLo$Ӳ-4;<g{ݰGWg0|;[@skVd>9'興)JQr1wKqn]ɫC31M;*}AY~ dV0$hMԃ-/b;ҟl]mD.Y1Ps4GG4鐉 [k1aO93;LTO%#$!c C >0,h~̇aiCZMqkxzMPQPbᜄCg#z?F|%@*G!|O?;x : Sfp1MAt>d i-6K^%:˽տ#?*IT,IOgdτd!!6B! 7Kw29v`_f==QKhʗ4Mx^^Hg,q+)c%KPƛM~BNa@w;a/HI}GhsׂuZaiJ=ӝϻ9ƿ`+SßE IcpLzOWݖ6Hm` Ę 쁍]΃ĉ@&(ő"R ,hnNn,?gv:PjSUGnmVB%?7R)[VCg5S66=c K:**NBd;|W0T7`1> ~"HZ::u2trcGw$!11=ގa\#P.KC!OZF$&+)0@3`M㻂<'G S 9Vg""xs &}<)ѥ1YbBao?1ihڔ,6LQ6mXWI5V6}D0m#0`VfS!Pu蘆Ώ,pG%( Ooa7SWWǣդTpLmr ZDRI EcH/vyO'.^R Lk-hB0H- bR8GXo#cY}ߢgC{+zūj!ztb="W϶_+ȸ״ӠC71yhCZ#Y,Iqw $6P6gy>`G{;I)W50b}g $$ߋHO~Yz2=_ #gpoaeG\ǟ avFt,kMǼ_ rd&`k᳿<7_3ZbbɿC}Rբ} "6-4B GGq-{@&LKDPz`~,DSF84d}in~(4cϗCqd 4 14D,so\Pa66{2% Ly qk"ne ) z*ˋ2Hyi9k#'ŏY~wPǭaogQouvfh$·ym+E:b U z HZ&,G{gٞݷ>ydݾ5w>癰< go0FuPGC ;D IU4[ɵBe}b!- D<1-MQj5[_WC7~ -.1@u>nͳͽr|C4I~ІW#=$,$e% *OiwP=`?`jCZ,0I;{O.#BT]YU^Ĉm$8vǑg~v^nOA*YF;nK"qzsd1 6= C,&j7GaV?V4*6`f&ox ?aqxvc~[Y;uF^PqޓghYw' $K a,88[W#w_Yn* k ι̟2 ŽmV#~5ŭ-Go{Xޟme¬[__jD?Iސ86;N!΍Cx2,Ii?p(^Co4!BCy]q8Ayr߫w~.4^`-eΚ']Bw!D~}>!LHh:7v$!&i& ayMڪ/КlIeFYS4}iLBSI ` JuTUӞ8U2^gP}DLK)>op|i[=aߦ/;f@j"1ɪ*)I5vii\}>N#t4Z OBoLf lr>(J\<:n%}1̅-8sg tQZ3r0B`g}=:?m_7&vM6Js14s~MST O6ÛwtQ,@.Sgg)ZtYu<Ƕm(bFeksL< ]`K9Ac'|%BEyd \ 4eGXxm^f5_kg;ތOY${ßӚ&m CɻBwjU %ߺ7L3W}y8ςkWg/eO/+ey;?OvM'DK)7^DD(Wf9_wd\u UTUY$m6虶,'IM7c:Gζ?=;mC v͇ch+R.1BO3cm$#bZz]Ll[j<ȑTǫ,1Q) k0qpS, |Fik\*R.(q%7!u8_d{lm's5.L0~k#>G=Ws}B>hFH.A^A|cH~H 0DK%=i[`GԄ ā$ɒ.uoS0yAm,2u+L,7l֏a^*39OdEqtAs"!Z`1RolE1! _X"|%Yж$&abM>>u}|ZUzߧv1kz2@A|.$AH #$|} JE[*9HsTT66&B(x0͎cX9 _1Ϗ^=%+!'4>b#*]ͅXz&Uwyw~:r&gsiٳ%Tg =,D>ԯ ߇wB%Hx$Yf񆟐04hrFLdhEPw(H?qS靚GdNK`6oa<9 GE:ĩ̆ʐ:rC▐IѢuڧkŽRާ)ۏ;x)w#",*g{t9sN=s& x@єl8YW'G([>@aC33 X~z0sg^%n#6HÁ8@5 }Ą1 6&bap1Zf3-9td9) uHZg+vӿQl?bg?(/F!D."' {{^^;lGIؙ Žղƴ1ag:Q.&EcvzZFM{rѣeڙY26wg^Sh eu"M5 |C[ `U07o2:wy[=s% 6$VQfonh՞%Y42cP4kkjө ƑD!"fmzZ0Yb|C!picyMrbDA x<|,B7). N(?F65q2E.(0l JT7t-VbtkѮUCJd*XHI# bљ)GlXK a[m?$I$LI$I/7~csY$5 #ܑ?-pH*XbY\yk$^D{v|ȟs9$B`Icg<fgT%ڡGŝQ*i  `.3jF?톑qӷ".&3e1~M˝Z;iIEжI9ñ'<~'.pkPLJMm=OgoXǟ0ѣxW1֤4fTS{]O[:;8Yd,(jdaAo}O8#NxKHhDW^օgQ~@'j)o=(ujZN2m:}BMЊ1zXYhgŅO F[0a]_HPf8KMV$F/g g̵6dv3[tH˃^ݽkZcKݝݧx儛pz~B؇\v"P%!:8" &X,!/3fc=Mž-8a1&cƾbA$s H'R%pg-P|'^2؜HT<0799&WOCynQy;{S9vmd"l.LB3dS˲<;Kߏ/HI2j Lɍ@b #S2L'K^d~= bdwy</ak)nfL$&E @&vmfޖoRaM.c}wL.I8f^HtS@&@ gS mZ.HW_XXnk11,_eH CGj_ (QA@g[G>>2FDcZȻ~_%.Oe'IwbffLofN5?P¤uv㋓v)93# ?i<2r1JmRT1ga-hj)/ņ^9SQQZ(=#)/Zfm2cPA=>Γ?ܡ4dd㥌]A)%GzȘ}]<s 7Fu~n|j`}ElX&)9g$DxI.y154РbedO+|wx!/8q ƍ+a&&w隺Lʡq}':˞E$!{|T&2x{-b!_bfɇdh jG~smOyAUҏ"$|G l"~L%&{>?1/xnj^Vo_w?yI$I$wtKe ο7y؂0H')8M7Ywn}ެO5l3C=<~!n~-ŝuVQƶuFHS E.M Oo ][E2lfq@g6,kqg¼`˜LuFӊ-Sƨc\㶊~]Ck.QLWWf Qyc<,0G :iUóZvja/(:Lo< 8UeZHv#Ie!X^6,>phɷ2[yޠwUg /<EY6\o^"_8$͎[cd*P#K٠_ao$e ~2>j T=,HR1h0-&r+ȫ~Bl`U7{HbX=7ZEGkxmhEv"6m|~}=\;dT.'{;'97!K'qu&%jXNl u`q_qC uPh_SfC4ɐB0Ainy}eop " ұt=l&&N |gL 2x82 Ȇ8vej,&>wo#)VsYCbYzoL( ;1t1 iu$E.۔t+ 1~Aيb` nCj;5 37>NDvF~_Ffd1-DZΆX]*1huNbr]6S蹼 ]hj<ǫeZIY(iCӲv],ymjW7Ʊ']6|=Meva"6)+34#Xԕvp:e\JP*9ub$BL"1 *VPny/4q,C_o8W$bΝl1E`3Z 5Bc5ZfG$X豚qBB/CGu Qѥ d;dAUr4B|M|;C䫎Bdj)p#*&0we)X{k6*f @ȑi _B{h=Ԏi.R!3`Cb\ށcGs1&QSix4vc;\AL~0S SdK/@8#G()'\6:aď3PGM0`h? &:~e!y>-mv` ׉ i|E%2 #kEwUiff.J"uYcʉ[Gq:tb]C5`hJ҂tﳖV/h93Ꝇ[M>?6*Cq[?iüD앳)aVB7YT2,={=gcIo_vLqSeNno*5M~($zM)#&,R=.X"LV=o%{Lx-u+sl $j0lzWӸm"nƙ|I<~>BW5|,=rh'j顎 Nv2i7P˝la% ]tđbK4\;?Jʖi0p6p5(qZ]aMJlk%Vfe+1涿{ 0@=3 J,*S2vkZhԫ*E(JD&VB %0 Y$Mo:jRRYRMH\y^՞-FdDMn]4iK~8ݷ a]5daE!73ǁY|  lb\l&EgFT%ym5_Yzv' " PW,2 d -3sgf!wDY`AyX>bޗ>Ŋ\9LnΘj9K↔Ņ-mS*JɺibiaU =ͺYpjUgm]iC=TUε8{iRyH˩}e =Qakմg]sSoܮ qzWk91FXa`1zAZD>PѭV;FwبkYgyqG:]m<}ceٛ h >WFV5XifaC2d"3;'vdb(28Oq)=6)NtYeљ lXҚ~'t`)YVllMm^VM~:#NnG ԋKt1nnbHU2" w_Ea^xZ&!zp}PsX* _{h8"#Ӽ&|҉ ӎXB׷`1b>:fhj lh37@dI1^|SŽIe[voESQeɡ@};B| ؊xŗ ~Yjn+c| IဤYD= gr.D'd1>oEErgiiU\h~ MJP FN#A=GG'PRFQ9'A}t70|dk尧:$33\M۬Ѽ[ap@ 9ռ N[,)99~kjKL+!xC\x~cc:=?'6Gruse_7ޛvn)l+oG!\@4~Afr #ɪBH_/͏}eU!1` )'sCUjQ<ߞ'yx66ƲҸeXm1̭$ ,U{ȡ 2A1󞤉wy hLtSHRDjH2 veS cm #nq6t%Trr>lAsJfЇ@W^`;wm +wpMzf27[;ɒ}$D6&}l$< vvТ}6Hfპzat8hR5&h$kpް@lrwUWJ}0LEQe4Fؔ`%Fg(aj6QttKKDi2 m(5,9XAsk+8!+x v28C$s[B뺕ڡ%)|yer| Fe\ӊTwtwoy%fmWԻqqYn*rW'0^ڪ2K' 1(8jZV-VYv[ZZ Ih,!E6 < 76 nZ-uXɧ˦;T0lHF"EN𡁥ddnCYM=ޞ9 /#8*~j+VFv]e# Dƴ_w]piP:ϳpco"tMb88xc!q: r3gtQ~f|MHK=jrC:~KAO2v{HW>:*2&*橽fyc#0tjkg`x¬qb}k{$<4JZ3 vO0В2=sy4{AC:ǽpG+# Bo8?^,;J|Xsr@blb.ZɇNѱqafR|8nwnW9Ǝ˾;~ONQ\o/c lD124ف]3;У4@K`gn 3zjݻJO=KJY{܄G(6rX4$WC#fuN˞=t ڌB8xlۥ ҦdMJ0`#2OB)1FH}lz뾂><,Ԃc9_uj842SD&%axμtJg+$#ƺoZZityrFl"Q ?bH^k)ߓfˈt2 kfqiz[lbmViD#TW2Iu|z 6u|?SKYwgB xQ ^vCиP;Km}Atb'?/fet y[ݫ҅Bz #xV z_g@*md>b{8,k䎊JZXJdUZ>'0c>i Ϣ勼 }.N[YCZ}n[G~hhJZr9;H.RB@itNd.kYU;G9H)q.82Ϡ5Dru3Ta:C>fb4θjE|I!UWǂbz}֮҃t-o 9'޷;j2(1F:&UxLhE8_&-)=F  / R ml LI<)ZF)S}pY_MDm)e qn!' %*x \vZ}um* ֎pĉ@q Sa$:ĝ5Ң`G's+Is3UQ+܋OTLj&o_ô={1M2fNHho4<ƚh2s¸=< mR/E\RMo)J/9pUvuTh3bff7ZIoɯm%eVc2+&|#w W@2 JFCctH'u5d_WgjoیO)8c*0k| ɚ} ]4dpsUc=5y)~k${BEԿ7|a!]6+z {e 8fFw8C?CqJe[:_~s2vT>M6psyۚlgv9PfưDɯ-kW{_ºgC`JO@˳3M89hy>>Ռp7D47\"ݓ&.^BɠyJgov5꽙vi6N+-ͺy3f34r^0 w!:")ɋm&H|f ʠ1`Mk9߶:xߠ Ӊ|vsyI,"ۙbb {Z QN8Cmz[흖ˎ;Jb(HAFL' +wQlU%]Z6$v>ퟡEʺ3lHkpܳ@9mrO /:e!hD4!K"cF)"x^{B,!b~0`̎4&;s،v4 nSdvC)̓ge7h٤!M2vuh&himemޭ:vA|EZ"5#,#J( cJ|.Ogf}5]J qUcݫM$ay t29R,޺<Ք~Zd<2s ",Y5"T~k3H0JK7ݎi+[GՐ|0_K:Kj>/xҶǪ)JHA=ҦSL#5 ǧkJR8/zҩ eq r li?tRZtEb :WԛiY6 c'ʥ{x36ټTD8>~l?F( V{úبD;}BWkN^7ߠ{z׍yg/\@J kHSER fA*QMpVR $[+. ښV}HygKG R@;&уP{i7W/ѹ]EA ! c1u.9C`S|![&=HGXu$nǪ&=vaPӥFh)ha5ʖ3+tET (߫9>C0J=j |ͳ\ Zq'GN$%-bԼ\FtHn9l?@`ǧ^v5t轱Ҷ͕-c7akݖؕ0ewޮ yؙٽIH [|=z@1ͮہ`[T򈚎.i+CD$MSYGٶHaX.5Qal  7fvin9e\YFPj49}y1uʰo8&20,3,mdN ݏ+3ZbM9Hn~symVMZV2@go^ plRR dp-:f I\co59fEai;zVbJЪ Abl|ѡkv^8bȟ5mě# %P _u{0㪎l4wx^_60_Zg)k~xpmVE$pm&`X# 䠸nh9'ȬqyHGC'ퟵW8om2M} n5N$.s1.XN>}6著;/tW3Uř9xmvv L Vq;ږvU䞚,\HL-<~l7n(};GXX~_[wb%G!f/=ϳ>)@&k32CM#"O"=HgL4IkI]רënāӠ.\YUmK$w^ێ}1=˨u76m]Lp+#6ڊN"ӝ出s2&PkǸm (Q"Ekh`{E `h8g97`+)4@w֋*3XdY2!F:!{c=X}ӕy!m%M*dpMSzbj9I/>%wTD)wD p&c,]Q+ ]806бy7&9L^\/kf(&+ ,+ v5-vjM⻊Q= lXh85ygawKV7]"*g,AE3QռM0琈k t=26Š_XL$MR'׹}>CjY,hk^;-l'{OYLC<q}/m$YB$>B@! %N{<pߠw㐡riٸMMV}^hw0d b, n(a K5DBI0 pn+H[Tڪ8iK88*I(ҺZD-C<`̂҇'yNsrv10 RzJS$ &\?: 5 j߻HVZu 32F ."_^.DŢF~l{Is~.sJc4pZ~8$wB9BIr{^s22V Ș]wjSl *O1 %Dݓj/ldbK4c!cEIip!=ܵS߷q̞f$ĘÚm<&y3.\UFXZ.k'QCH)yϡ/eY{ig21_oH<}ѭdŁrLn S&-0:b,}C $Ze79"5A$,sޗ/JpZk>O)|]hck"!փL7]C 6 - 7Eӳs&_6 $gLTw 2rlc`Hf|;lΝ /Bw&nB LPyIoWzpq'mu`H.d 0>D!b=GZKP-h1\0^0{(==9`Df!31.nuϬ xd&׋cz)oRq ]7c[+B 0$>63U[xnl 8peE33-q1Lz:7s3<$j%Yp[4FdTʛb)uIK*0 >ec7JBS<2Ba&L%ߠ'1-IHmB|e',,G#F^Xv;aὐc^ v8p5q@㉞`bBM` hC<žMWeev_c_ ZUv"KX6X 2<eeVwRt_uhlلәSm. -M%F-գh*4Ndyɬ9dC3yӧ6gz&=1$Yhd4()m]˖٘{AEzT*]^8QyEg&~7u6DPYSފ ZNFsjܐ3!,gBdTwVJ~@ EҺ˧qj`)ZMq]ðhBfqES7Qf﹌(# ml{ozВp_0;&1h4h,v|ggSɠA00{`/מ-HED>ijrU";QbXZ WU^۬5@9Q":<"SkT0q?uVG뾒9L3ewJDe')#WƊ.ء Fӥ쒂9.UyKO=Ϯ>2b%4V#(~$1%m*KCgcZ4uOH=*-0vIOy Gb|zq:9qTZ)~E"iq~#cM])GG5lj`'Au){Il6A)_E8k2 ]z1CڭLC`3 >t i$}$dA}lgvlqqbrnWXP.щ?S\37#Ìuc^ E+pfcc|ōbp5%(\Yg=heSh*LLZ c ayGG-o!ט.{Ҹ-cac` YeY~ /ִaďtqGKg 0l\Rmug"i4f&{yTD%HA>|{F7ZPlѻg>{t3`i4n&uj>}@v%d},؛2Fvk20B53J]ٴ73ٛYg#fٔ5o O4&`c jƨ@ׄ9m ؉Hg,< c^]$hˇs2]MO[41Ly:53UY!:(1qya> ˝d3MRTKߴH ĺ< 9 Z쐴L%;BWGLZҚF{uѦ~wֻ60u1%ƲdR~euls 0:ٜ5zbٺv1~^Ca#=# ЏSi_=.|SGs>y YQ;#;c f-5k:O_[.G7:YѪSQ2PnAZ2N.7n3&7kF:,BP[1;nc`@G$y.ʜv\:'C01O3Z$"{5ɤ4 35Í6IRRw4G7-Wnǰ ceeI\PR8J]M׍#(٧'c7x-4^\ZVD֕=e*c $z=Uʂdj(zteGC:i_:)L~уw9 5f Ӓ3f2`A%c#G"A)+A==3[b`H' h5}Z>,GrZ6vm#\pk1&]|ib{ZٵT5}`рAg{xמFV(bcVNWL-vVL{THF0ʎLCM- -ݝ`>{:j$bWdF6sœs9xԫjjћ*qYl׋!A{Oς7 oZw}Q*X}τvqlڋ/BwtGlKn9Yo(|! 3mbE̽lG]ypsI")Q99)((Y\4EbJw/4X`cNԯ`(R6V&%/-X =!xͅ^9qͿVvWAAq2&,^'#+-f{GwJ[+ c/mq*8,`:.þV:/Ua2Fތ^|+&$? eu1ɂU',jL1Ab5"Gryѝ, 3z1ڿWE t*6|Z!Zﲅ,(oEyv},\Wʾf,Ύ`=~=fu?-~Xp}B_{P2P&JI,B! ؑ~rЦ#1vEonU.  0b+#ҿFψr"Oq;r!hjz/HyerbheUPS;Ŗ(c^>8v:;JY['F:NRA }4C!:[lBiA>ߓm7 Jhutz㑜+Md/}U[YwUtc}|)7E 뫶g$]㧮Q9T5f'/Qx DIaϔǞ!(/p i`8RnEL]4| W&h6vJ2-anN{n9zQE-HQBNQԤK c1]ܙ.25=ecay'3!\se].- 9x7ૡ'9iGdݬ$#J|̛%5VkZFydDr̗3WAAd4f3ކlL"= K3?A*i쾛%54z/PŴ% ԥAx FChdZ[fjVѴUثpB)MWwgfֳS sϾ_ͿXL.ە0[9]Y^UzUӚuWqsop7gKMڳ5Ol1Gݝ)±6<.. vێqw8눝ۢym٬Wᇺ[6(bW9~]PBM m|SNTI6'9R%aF>Vheu|+qށvSc=Th|5S*Uwn)ъ;.ƇvfmqPv|;m tm8ӓYJRۧKrCZ/a)W%ǝ|f){[ylˣO4%y夲yCR=VVQ܌>aa`MtQ9ȉy" .B9wONaKwUn1<4w ycOqL~'y%ʾ9}?ųz[kXd!Rm`r&mwLjb ?[Vz\agʉ$DS2(tCM3==xi>G xb4ZFH0($IKBP!0d% Ð'AByYȺno} jj9 ٓ2uv) VѺ#OHMZDKc? ՓBp/|3MP&:6_.`>bGgZls˩۹o=uac2&gmaI;ut(5Nm!Gݤs Mga`0A_(J`OL̷_ثT [eRB1?i&M eF,"Mu)Mo/Mj;fEJ"XJe5nmte 8-+@ADMSlyI͵tSQW#nW%Kǒ-ڕE\MTi5{5U1cd,,.wv)ͷ.,DG0Sa|k!7"D!/uO0vx^:N?!kl)ȉ`QN{qy_Kaq#m `أd/8H&QY9JH'UCHs(aRUP)B>y$^^=PD>yJ*}n87 ueceG|Jm7ٌBɝHGƛ+k +/_gٍu3D쫣Sls[6XۯIv4s{^aXd/g?XhbNy y TClAE#(~4igɕ*il)X77\U!!&L P)}O=m"E̲P&CHB RR21@)+ Q`9i`F@022봧efTVκtX͒I21 ́KS?[:cltGeN'8S${\A*!{S 5vO=gW`}TM0̏JiT1 ,/^wkܽRlH*Àh1偅f 8IxiXTe?z\B-A o Kd7wr+vdsA?peH EC}:oǿXF&g_LBVLѻ#OX0vb5[5J4eSjQ:h`0'v) #K2s`v_Ub[2NGp:iJ̀F,Dx "V2حS )XV`0ϫ2ULS6PbaJUo5SGc#1 QtB70,*)E ] wdiQ`thJYL*;ads٫f%ѣ .Djދ H#_Tb^*3]EM0b.4.ATnWjr`G)n #Jn<]:8iۺT<*Fr]1 cR :`˪u+ڬ(ETˡre*i#L罋.#5*H‡C.8%[v0bB*uIkfݷ<eA<:oxB5`ܫH]X%aI*n2d BUvjWz蓘;^F Q`'p稉C7~"{g;g3t#Ga0d Ōf1"ۿcf&EST ڈ**H`ʈ#Hg #Wfd3+Oؕ*CiĽ۱WVk0U"rZ04㘬Vοcbʃ)0,3|lf.,!0b=iD8"$)5Gh7Ih|H~qy/5򗼵rnc[]I[2MJR<ț1fUCaM,#El%ҚV>ɦwo;mTDdGH=Liv[侎AzI y1dt[U8x?nL*R{<O?ͣҟ{#RB @$Hd$&IH7~hIrI>uzp}x9숲DR,Oj] t5].#ez08LP>\k.X>( qz4GPz1(#C)wGR ? UOW{eU*hk5B(HHuhxzkz>0,^t/4_: T\eU-I˖䭻_\S7v4#C07=ib鬳F&J_e߂TATA 0h0*`yԜegt,ljJrnåG6fVljީo-%81v?IL2bioy;p GM"Y4Q0n7jh9v6gȻl?"q"c4ҽ1T 3V]naQޗ L|whoW8yk"橷M aBHC' >2K)L;҈t2kXf.dLɘ(a|L2|Z I*}Z ;I}G'n0xq!&;zg{_ ucZi (o%"1aO3lL>Bm`V:6tr IB7I 'a1O. f_IAtbX-KI)Ddq6v•E@WdlmOE|t4/#{MWBA ݦ拃]a<#A;;ykfTQN9t7z*QQJZԶU\b.%gpɕ!]0l}tB?cp>vZ?0Ӝépƽ83ZI DRG8){ D&8(X_̷wTTʨ z@}fF) \ iu1[C(CT-o4;TjtJ{$~ge|Ki+ Bb ,Fàr+: {".8v4~c9vk 1,@SO?W/_@l.:L1<={BPbnr\?NkX040XiZ]$٤M#B&ʲJ3•+l(uwcm[Wpݍ(JcL52(5Xsis'gDm¨%f4VVK%nCZcqGpMi#SB0ï|nG'^R~ vmGD[[;Qj< ~5VQcǹov b?pv-F+YLHWS?̐lmyX}GkKidKQЧ"<3 ר»s]}U,R[k5x_g,įɿoytw[0W75%㎳N 'x /$ct`BL v~Rh\N>;OLߜw9=30m~AvP֞c It/P Q18@:duaθ@sCw>Q'E%od1!$P5׽Kt9̳%n!B;}:뢞CB./dr (Yo/veuyl?F1ªiNƳgּ^5{Zx~'E.K_!|{X 4XC'srprr0*zaTZ:0PQ4z%zϋ<$saL96%?;ii1 4>l24B~zE3bXO ^E-)XQO%AjӅ#Ƒz_  *6brġnh91 8GY$0˲A2mAJLH@6H 989?L/?o+o>x_:qܞ|קOoe5jti$c]/6e U,ey+,tB9,fjś][d:l^WcwQP^ 4~7!sxh_ ͎|L~2ϪRM~GP7ب-喾\x_3q7˗y &I$+ |(nܨXc%( o]k Z]-!b*m)L4EI$ !ϫUy9E$΋|ӺtoC K~hiLvHO&*0؍j/ͮ,oicZp9fS,A1 <2T Mm 5֟w6Є@(|YLWwןYτS'IM#}>=T$nJp0!a/q#(M땺ȶ~bjcGaN7oQ|y&ڍk,;$)6(w,eYb,0VXJqLh>N[jSZ[l˚£K'=%ݡ~N'A2b펲J@]&CH@m: 2VsT͛J߶w%)hԵ}3275qڡ:uG<Kg~Ō R:5lE$eu4H>zy`hE7p?h7&4bl͛{D!)%0I6rz"z1rFȍw L_{s֭@Ut5)-Ԓ2TG&5,߂7Iף?lbXyY-8q5ًC1Ѐ&=[2ĞR_>jLUG##rGoy^ >q,4ʒyjș$Q_^[KA+qn YP[oA,s[FېcQebKKX72KS6+@/s\\MFMeGOBG.sM?VR3y&i[pZ?>@b~jc{Oysn*TN4Z~8`kٴ]1Djf{ay&z݃?vģJ1|$M 8P6~D $~ uNR$SjMwggLn$9 X"B?q'ͶZpq/\c.Tʈ8*O77$QUd=KV[iPl!"e(Jb!ً5K,eQ`aly#?fR>/Df,رT@a$у%elPLhi9 "`SsJ%"aA?!~O_˳Hop ]ݝ Ѭ+p2{OCRʩƟ.H4%!G9 Y\-3H`mZ'ձʍopfp(˕lvaID N͵nϥS~ {{|r2 ȳXy/lGYl\Gl&)0,J'Ÿrr+h BAB!QO%$@_CHBL184F:uj%O> zew]{j,g?qH0Hk痾YJ6.f0e+6aM^ >dYe$#cT5ETsa:·aǷ7p_eXչ[[).i4mӺnѪ <=Opivۇf7Xչxn]@B^MbBLzs)FK=.8{zԭRj='T^ޘkRAhշT.m~*YJmia¥AdHd2a wd2%cx_Q/( $cDT3.l02fkIt]y< %.`k<x0WxFkp <`6&;H\5EaZ􁞯j޾H:daa0oœj5RL'?_,1AfVpg/@ɷ ۜ}ۤ6iWɎX}/4KF- '?v2;-n48%,!xsnυdC2{-.:vTi zK/BkDQٳ2ElE-#cZVP헓`X !%a-Mml d`<*i{ةfU[WPQL)u!P3;\$T$5PX/!qC# <8kM&H XUIMMvLTodp\ “IBf1L7W#Eoi> =:lX\s ZSmLwZS?~u bIΥ@aTPAq]!C WT_zwhqSB@L;{^za 53\Gx#9岟Ҡ.x3fpt3z-著n,!wF'$YM=c8O%13]*x<@ƒ*y/jDrV>2, {5aR^ǟo Y [x!⒧gTZ4A(_xsR6"sFQo/n+z@Mq, v$1 @扦-Ӷ/B7jȱ p1 zrwJϖXI)3:rQ% k[@nK%Xlk4 dPŽlO]k:܎XF/'ڂ1?(Q "MFB3u9ȴ@i9n1$HO=ݳ*&vߢ"#f{Ob*YpПw E7K}C v>5t:%scp^0/Lto|;Yǎ{srm,>-i}py DZJm?0U%_2Apa?7{iSI lhS$vT "D-w<r0H;! +!9XJܝBLvGŀ)-N5>:8>oN\~v|~kpvHS4{lÕ)lD!"&"mױf_L2׾|BlX& /.;vcbC s{Kqkzq`y]lSǬ0/,_.uJc3 Oл=>?gM<W)CW@S;C ذGBIT~n> ]Hr:ržhK_O>wHrX1vFHj7rt‘^B0hF7`f6Qp3GZHRAhF#VEZf<K`ݷΈ^W9z=9nd33qLX!`ʹEBA2n;YX2hD5O6"h7 g_oYb n49 mqld>m~g%Vm;ǓbK^0'퓳Al 3AB E57 q`tō_?(hG L^7QR̨%{IyVvȆ6 @v5u2dL,f/(~]zm?s$9[=+C(w6"r%|ׯMqoҳYv .lR$ww/m燋+Ul]Ss 5u|gej0Gjng<]q$uʸK0-Yd.:ÖL8֪#RAZv({V^#*JPWF0ߌ4 ~~M(kH} lپۜݻ=Z3}O+9e+AYB# J>n[5vۖ!ocYmVJ; dȫ:X|6Zsǟ K9^k­uU!bWIl*1{00F"zE֛ƉRӶVl^=_dT7dm;1:d0qkVA;}w^Lel#qAFԌژ({h L"!Ҥ;Ӄ*B IO?<4xNs* w{Xɦ6 Sw'J܄dL`:y1Yն[0<Ѱmۦ&D|ڇZͪe՜)gC4 tphy) Xh,,1/6`%ϣJY y9Ԕѳ*b*ֵ͚7ߗ cu~ ۺtj+o e?,Xoyu;3G-x89g48NM53כ|VYF־(Pd}^;/1&d1 lƼ'h@RwgWcT孑Ư)\]e:nK֫QOud?OlFVHIې~rcVDv)ʦ;yL]f.>(Er2D+S(cCNZ7aih.q= _|$:~r]kCaΉn`96|-JDw&wÌ}<#?Ѯ}l_6ҿCn6 _6: ?2oĿٿqsghM0HTM,!"6)r߿/4wbdOCwsWW ?'Jv?L_!dpfsTL$C~ٛ! r4sbF{M>lnx4UAꁻ3!B@$'6*9fNU(?#m우뛱cj-*a2C1S3\\T$O-_bˑ{bL:]SzxѲYE0e$,7@e\f|kx6۱3X|n~yRҷAdmw?޳333$$/*ڈ9lk\ua}+[RzC ɖލg,lPm&ij/ݒpGn 0CTda%tے2:muyBMAU$k a%(CW6?|Dl}$#yyНtI#c~?̑΂HQ ĝ0sC&Q뛇\y Gyy 7l=Do \N6RlK >1aj}vٗjU#牥{F۬a6cl`ih%$s+aU@>wIEm=O2wts :6/nmlo iP HTW:R|\WQBCsEJCq[|23f1`jT =7BA6aP]*šle9L2f x7,l9{/A㏋Ûߕ? (e:{k&?tZOtFHHl&GkM"s_dhI&Eujpf`fLH}"ֶJRԐK*[R bԒF&K&,֠L6-jMfmY1 ѱm406+2aTҩ#ICU6JB=ƅv^ TqiRV]2jh H -kmY[lULf*2J0̐3>"55+Zޠ1eиyf(M! iwB с$K 2e foXk7hXl MF?h40DIhk5awLr\aV%RZL#QVlbcdEOAHh()!b)0a 1AƜ"bNT7쾯sب"P A")(wӻ'HP@U 5~LrO;L3132fp~#O ׶j-ȕ15NwooX4[= 31K'!]j/w_1kKO)=h-!z'9}!ӯ95GQ1cV ?$?T /e04*)?a?ǚp 摝0vCl7-1 D[a"~_CAroTSE:\k1|$M"Ӑt9dŋj̢hI/ǹa ~_$>7NՉ.%ńan1,)fQ[R$/Z-!"q >sj*Tr2mc&>~MOH&2&;`hj;QnZ@NRj"!qS'/^꭪rYp/ޑL6J!dvD1sa--H8B±ln0<9YIKmpx֚pn u-QQVR?͘?L毠?۲s C4:l!wU\oZ"ٓ ѩ^H &ܼXq=#!d !d%dX?_J!ٛ_#^( ؝"zxetYOuJzfa&f?!r9𝡊8`LP~7äfkśFfkၥ짝*ݤI ]'Hu[`:y$I;p$ KdGl¶bWWԆ$$%`buO E͹Nǧ)T`"KZkCsdIf1߁?ݘ'7b/VF(ҍE1$Ӊ<1T2L*yнA><h}|y81m08!َ!xY5'1i~a> ƢF,,PX}ei=,i ?oG !a*ldj1={>p/Ǐ!Ϗv 헕i; :("c\h7)<[Bzh1U*NT;Ylpc1Dw I0,,vs@+y$3. Nש;H:nuw\;PG)l..IC&aO?GƥG?>xyk{/聰@{Y_b.ǓR֕h+\?\S3E>yQoy}6 31h*^F,](/3&l@TLg\a6DwX '*a^1dt0]HYKi_ c`J{ ,oͱ#'T1ڛ.07X-8e4yЄ֓Rbg΀Q 31f?O 4>I'ށ0 RL?gd]CB~- z϶azg1pœvи+&@F# e9rskn,3_df'T zvu|t٪U _?[Pz z_>>rZI~@MlDȔW9DE^Tz%XgEKۡfAsvqMM`^5Ѱ1(mo豨m=_-6Zcqz1bTÆiq4Ǘ\S/vBXZX|H}wDDDDmZ=-؈XY>>O\[x-M3S,=GfE~Xߨf}Zᓽ+O5@0^#Z$46DS툓_! 0 O="DJ }ZT%Y ${!YX3 jIQ4ǿwǽS[-,k@@Y'%qhq ,%ۨEDƼ掬'TZ1=^[~bJDDDEEz's$>zMW任.]ԕn  #~Ͼj F7OA/9mn 7$vH'A;ʪ]:h$Ql82I$ȷƾPVeyyըpJo^y =%6 {!#0(C7ۅɜf4u\Fz)6Mt#1Ǔg~b9csoÏ!ϣhKO㿵sO<%Hhh0G \0fѤ:Uh,vBt&.t:! 0W<<[tJ@`6Âpݰ΢c36LT4d.TF $JE7V^mvsoRH,s! I Rt d%t U$\r2l102$%. jL7e7J)t."ټ.]ML1RpRƆ `tBBF`x`1%$H!f%;rѰ0{aW,* 9Ap5׳V $ ?gO_p>+ _1Y?aR]S @62ol4+m.n=gπ=Os:SSY&5m01>H2CakFĻO^Ǖ|CwfΩ%,S|:k,r!i@D硥R밆e1|I%oX0:$I%UUs֖sZG ?w>%*ht{yyTOȽغIjT?0zGwTKtZ(4rwpɣcahZ0i4j BZ 5HL$$Lj7sUF9і_`3{@md:tjه!)^u޺;t_fgB1~gAP{[1$ UpL(]+ c J3XΔFy<>ߊcO}3Al{$t{yxDC~"=;rLnBxdh6/wIw7V%5Tڳ15n b~+ \W9K;$I ͹%k &?,QotCܴ>^͵Sy1 hSLi01an-wOXAHGtORSSzSz.#vfPއ^U-۷nݻv۷n|x!GIsQt)5 65j7&l40XqbA)is|SU%I[{k{3J3s#znW;6aand_g$V堖 2s#:FݙD/$7&v=fg5"3LhEw dX!5CWf){yHa@͇,Ip4NFHMv0.l -Qm2߾M.Mې߯'\O{r]mm:3;s 3ccï ۍڹNRC!tM :44!2siNL;7 ɜ<ѴEma&nӺG ˨ƦpL79}재4OɌ[{Kۓ{qgoG1kK@|$3=nɑb*0v̅OEHMW|U б!,'y>&7 R7T]1.dbT8=;R㛭1fc~n;qRii}Pn-հ(m~~VQ}I[^`CdHM Pʹo_4Ji1$*\;3x&&qzŻKLNnlI?fhc̜"1Wpy>Ss?aLc6n[?|=ݖJ2W>i/~ۮKMXЕ׭[7xQㄿj/&_#O"d)7;Iy]ŃM -=s|{^XB Pb`n 8?brp!$9?(U*2iٳ+ɞAX'M^ik)W},^q<tw%?wqG|av )% ,AU>i4]<I@4ާ40P+8 &g SPww̪ħC-`*Q!0C DuPnDB`zB܇НAHTcdF]tQk_k\*M`1Z-ߠk m˛&ʘN\[o?>0#0w)wcclw}{no \DXl}0lӥޛ[ T<4H40.4b'c^ׁk8Օꗓy(;/7_ 1,:(sBJ`T&\x9Ne[ls|W[15ƻm)ENSFGW7yCh$9!C\ώ~ߕtkݭ8ϟ@-%%$};xQx ō5%BLA!^ ,z ۨɽO]O1֗BS&˳.ķ)lf(&5f]2 NrJpAzlIwPgw9'ŒPeUE(`,?IH}?Ϗi9xxreoJU"8ss!8Oj>w_03VE Lz»Ai_g~OLJ h6cN:l-"?٬1KVrnNؑ2~>WS"&2F75g׋]St@wϫa\[/⥑ZC[8҃J,f?3 rߛT<5/p(rGQpX)HrtЁVYlgu,(8"xkv@ xߕ$FE 3jY5Udv`DV_b4CٝibdVC}gZVk5Q KHCPG9i>BJ 4ӊ'wvTlc+sUVN.--[c4xٻ\Lh(@b$iGPp  44(#QC0 IhC'R4q#y%NY렴'K" 懆Pr?҈i e_?v%~o?N'NLF{$Gϝb_>U<>8}8C&)Y&H|!:vj}8y̯Qď9Y+[vDh}x[ETkh-QcS)Ua%K2,oG>Ȓ>x}#}SMsCMе(glB= nlb9ۋ b4:ղPS]q[>a" .μAwee ]d卛6i쒡n'G/>ͼ|w>D|9%Y9+wxH8EK bLdEtd,y:+F֊!r2 c ~`ǹQDɟH@HC꤮sٴTL顎,k ,IiRh}07,DF ?GYGGDDM30A3I$I$I$9>yܞ5L2I$`ovA1I$@Y8[gTL33w88&bb|nQ(Jפ$_nkM\1sm|!$RHfmi@&fj'QFT̚BAHʢ*=A||]^$?9t MP%I9A8ل+t!b> XYN%'KZ3V/ãE<_EdG>la& $i_T޶a!ĕũ `.  Wt,A`n( "&b%Ӧ7Z3'ʑXC5p+䐄y蛪B%M""B(iDH]]G(80:*&D܃coQW8R8I#FjBG7)WmR$;U lBTrhyk(h\J"#L` *΍%ya,hvfGh0[_SP&}@uUUI4Ĵ)${guq, 5'ںLTJ4SLETIj>I>>gwd8! !)(G@P:.ƀH~!zf(DP͉ъP`3fyX4`y)O\P~}hS$>m]<I6o9Mmڷszo1_~E6qsx9TAaSAjV*#Qu6sBˍIkt<(EAQ>_.=}VWܮ0 sF Ay_ 5.99}z6=\)l$O&RLڱVD20ɳQF'o` *7Od %;PdhO~UWO$f$${Dr)"adU:"¢.nB FdUJXrn"dԙ&)<*vHt0='IޓC!\Q5$γCzNj*͠x="p4XIdCJtVgw>I GOʊL'P^iAE2\7%5 ٨z&s(O{mG;lt*j%¢VQFh;2%$לtp1ͫKLlVJ-Z.!QHUI"`)Ta|JNН]=9Kr‘BN6,XǓDvS :N qRXTRGkk'J6lcV{Gs8:J6Aq[V%+懡l{>qsN;TZt#NN8RrNR$ҥl8i n%> \i@e{@PJm2 ]Ff÷_ LR{9CR~@q?}:fcj9ҬdeI$Y0M9N0~ZBBق1g{Lr?xs3;0;?yP 6R]m_M֓ڋ#/LP/BV! ڇ )22)#,/E,n1(ɬ]ٔ )*e^B"Ew(‡'4r m'5=0; X, !s~>3k0(e@@hAQB|>j*t5/x$Ez_rUoϡqKJ$J0n)*ci4US !ijŨ8fI;?Pu4j%Z7zcw!!Aa使4/n$ꛕ=ɑz[|c̲6B B2D9jốIs[jALQd(Y(0:^0> _7=xf骏:Ù1sy;s)&6vli,䯳f(oM\N0Ca#BH?M} QpOi o#rser)@B 5se)')ɹto4l,0̓顅,*l[D7$MtM5|0.HD0d[*`L1GH8m'{n['d2BJ[_#E*| >0}ܟ,IT Ҵ1? 7C8Uȃ WN~8A`$:(!CGx4JdR)74Tp;?'8D崴U/űd滏ksD~>XcO:xGED` I%TVBx od0ᦎ&C'i[F'u#֔i?1Fq1hB@5 $/>_VA9g<Ƌ*޵5Z|7Y`;3fc:dN\6Q߭fh4> ~ӠۢxA"AG(O5@\ȱC[*k% vxQ,a'd"4Eh%䲊fT68oboMb컻EUYavS*.mZ.-rUhkDS1 Do;{ҚQEOp95WR\argefs,X%¤4Ǣ+ K"B Mˡ 6xDd_MemzWK3ZOe7D":qht]l@AneY<XQcEEM%zRk޼T|{&Et.ˮME1`n, 1&g5dT,&b)."4t1B llzOyp ǀ˷%v9ʪ(6kV&^&##,J^ .A.WajKàtWzE$`  GyFvmָ|=W_RoCRww;w p~nGSM*R  k0xAU ]-UQKxNٓaTR"# $ H J 1aү41DdW-lfl)Tc4Un,nܪ8*I !UԫG'cOE32T !Y6J1Z-\_>)>5U|{Q<#v8a"O(#' #C@<7~lFhZQ`~Bc#֧ಞfpcx=HC6Bygk#[1Z@ٸzm4M#s(Ce~J" ]݉0A5bFrG O4vG41<hu"Vx_8+U =0ʑ{:tP1@ia/_?ȆATI$}!~]5o}~kw+lSW4hi]f#9nh6Wy:G9xx$DENkZ@ujkZbi ԋ֚ukVB,E)0!$Sֵu9Suf JPE3"HWKpѣTZøa>DUm<4GjE8F`pxl==iөڽ#6@y"*Z!NhW1󤟽W''H쑆Gg:*i}04o61Mb~M*@zM/]F dEDTTDU%{_*O|G|EA$02BVI3֚{ v",6 G>sT*j{;4dOD hؙ$ξ 2iR.@JZRXHNS.8Jփ?fo]z{^IAOĥH),ʎPa}Ft`11+,HZ p1]2WFs p:C!+ľ+DEc&wUL1I02 ݍ?QE vCI.:cdC W!ZпgqYyj4>QHML7>TasIIaQ2\'sZɞ B݅Q;fK!]Ric!'%eeDq?fy:M&b\4F/qH+mكfGeTgfBᒓwWzI$y{ 1|S&%b $ESsr r,2gF1k>Zi@boK933ɀϛ4p/>z~h(NIW7ANh̿mFE>Q%+N6󄲊>c&Omcv$,< d. LuRlMJ x KHdžXɲ471p [HKԀ0 Mn4@N b(by}QG?k9uSn.'~I&1UCRF:O ЭD~Ҥ<|HҪW?dtjK,%@TpIdOB#YOz{|ZM{M&6l|)% OL0SFn<ͧ3;wƓUUUUUˑDjb^Lip؂g7OlVjCx6Ea>W)TdµۓՎ<ƸbRr:UDy?ArKd-- ,wj$(Q{Y͕T/u вDTJv'?tT1D,j7H1KFfjN?ZOuM;gmMO{h~f'"U=}*v~Jz*٠*y"TzV\AԈ@=i&I;mfK^,ծ楉jw#׮6[whqs.ۤY[YM$*KӼf^0bcWr0`P&\J&jpaXa % qǵy4q{03{g7 al3s+ӆ:xqq g(vM;bv8ɡ;jmvsf8aL?#Dl@CsUK.OBhQ7?Smd߬6Z7тle[`2ʔ[6<'E1ąĢ`\Dy R$ԐOʜήЫ"N:!tCR8 ydJʔDFӷUWCKO,hbEaMIM@LΑ̚*uG­#k# cwN2hMG.'c?|Q:"1!gu!)w:;"e˯ h/phHHBI3!IE- $nd0$H Q& 1" 0DM*z@9?,gwC?ǼsMl,RB#?'yf]IΉ1d.Ŭ&Jɘw֣M͇(;eJA>Oi٤pWw1nqgQ%eok:/A NS&1_Ma=FdWcT I-0RRMGjKƉ lRC5 vygGbi};p=v)o)8>^#; N>b| aH;wkvvI8R='H'e2{ Ft~7g/GȜ 7Iɱ}tʜSou¶|d =CcDz{*TFc֯vL{y du"ȼ>;r1$m8c_KuY2G̬Qkm#Ai6i=bxP#}?UrACWIf&J GUdIҭU"Htt'uc>E p$@?rI$I$I$wHcCbXlvi-øX$t&K"LDZ фGzkvv;1@@&e+5VcY=̴/G)_I$5@P)0cE!IHe]) @:RT@ Hnm7'nr%Y`aܳgFK;ÒuĖˆBInAEu^B!~̷8Q3xaAcP)ϡv1 mq 12(؋HȒRDf@~4$iNH2Rzz#v `2Y%Ka9DyϯUu'&ϋnʑ? w|'~mHy$S=*Q]а"'Fh*6i;VO[9 |sb;CfP*#HCqr#I\d)"98:=>#t `aǟNӵ:|ch(i]KܠG[$A-Fb0'R4('9:TslAOW`{_|,6Xݛv6t'ze7qO;jq,Mz㫪݉M'ĉӺzs #DF8fav“![/RV 3Tw,zltI4ds:XcW-N%@D9 $D,ItA NmrI0$Mq*m$0+QV;9*oz2}|(%QD|_D_--fLLRhh KTUÚh^#&3mHW5vP# ?vUkuʈފ;"%݃0*a+`-ێ5߅?s?_1lgɝkyɘ^Duy54hѠѣ9rg7HI9¤jq1g MYjx1giiuo.͙q3FFMrg9ҰUY9LNޜ+Z 6l6loJ]K&e5cj7z 9rg*egh 0m2Yke7f*IQ \1+c-k&s \^iN3?r~2IsDF~r?12 tT'V_ؒn)OZG:?^ffffz~â_=5,P9RHd P"%?agI.޽aXXaR/8hpݕ&&Et^ylfX/9 P ^q8A. ƝO;L%6Лɕͧ^mMQmg7e-}%G3wG?دJ O?4W½=jÙjH,Yrkʈ?hTzR;G&Doa``>.N7c|ْSي,~[46ݑOx1 6C_[?nU#X{WjP~^0ظMrPZ\ jjhotz?UI{50,`Q* wwUUUUbZ X`2y7G#f|LUߌeʪJ.]\ȉs۟kT3x)XWyI|1:';3=QaF;N",5?B Lb.AM۷ AFĸk0!d90UFaH QGuwǾ<1^ڦ3!fG%T|ba{`Iڼ~X|$>#XA5NdØL.n29 %(7&yoc¨ZOgI$RX`%>>05˅3 +9o-N |2 Z1>pE !lCZt; .ި#~ҴR,RWx>D=S{d7f]P9n3w@ٛ$PaؗZ'I1P5J 0L0Lj3-ȴ]89&ڍ(efOs I2,HU438۴5"ГRr3f33[^MEk 3b QEƒ $ ag-KRl2 S] ta_1<|ӺM檥Eu:)j{Rb>،11=sgy.<,f5l~[qb MnɊ?O#=;B/z<1c;6:o]$[mkf6# yïShIs'Ԓv4R䛞I/H>uNCfȳbcCawdf7t lldFLS)e-J5Âv|gŇBx332pBU8fO,mqlrSL=^r`9N\gAXIRjC^־MN8aȤ3CꯟGʯWϟ)؝wxFlf*&1km[LъN9O/L6q,ٚĭO`#:AayQ lO^X14=` m~Ӂy$9*;V> MCxIOjyI^$O>MdwvDF[wEjm7*UNO&:ʖ6&'| Qիx18|:G^KK鈛)d[-Cf^?-}V;Um-һCz" Y̝!;Pۉ6lfl6~{qCd] Fe8*A1dCj0zpV^1X"zfl !.RCYEmeEP&U xlW4"XX4h! PYъh=%Y4ھSmKH__4NTw~R_ԛunpPC@u85 A7c8zxft@AaQiNYbOs6dEUQr7c8Ny$=GB abcjR )1j#+e</ {|SlUw(`F<j $~?#LCn;_}Ѳ4 c?;Nő=DŽI9 >9ocCm"\81lm84J|SufSnȒv©Uq%̘ʾ"tvGY`'DA˵6(vř7v)\{}JOr{S=FF SXcsFgNP37(oʇxu3+}idlbi։ED2QL S8o$oÜݧl}k,v=}W՘~D^JPFiFۀ4am(Y1+>sѨרTI_  ) ,ّtؘz*uQ߮-YEY ùB 30|c\~s_H81ѣFRT!1ܕpV't#'),R'T8r{kMa#MV/m|ޓi ٭oTIHcƊ^Ɔ*&]U^{U ?Mb?߫q蕻IIun:k/yt%Y|%"D0X4v Q3(?+0l׌$`߲1 ٚh0XUFf*e3 }Ц0˛ tW-~Կɞ0*^MJ[n@pُM X4[L74@MIКq,ɦ L1pU2 YRL2U6)]1PdV?4nDIL .eL B{RiC$+DžQ:дeLћI*abu1)6I#㧰?)Ǔn8'u -NϣI!Q~cǦd;? ==uR5,H'{=fiU|?eU@1E?*L!ѧ)FkCԒ#J5dida5#۳fʪcka(vDtP˳(Ӱ*9-xfIYxe%MI\H-PR5bHˊI 0UzP/X'}w~þAFui"dLA:x8e'h '1UzMR|J ]xSYTR* k4H^˵dz9%:N3L0“xas]l$]`KxYn]oaehBfc)$cVɹJpUHk5 4Xrfц5 jŤllGł.@ATYH4jkDž8R-Y,i, dfa0>}KB4% MQ,B=+.1xRLVOHzϪw8fLj%2pvݽmݣdOpLK$( HZ i#uL* b~pj"Ր6T KRϟ5be7tO t#s$M1Lȩ3!C gX{qe+]X{ jIN##|aHotҡ}y>+k֫ä<] 4f߭n'YBzEB~4̊M,Ru;;HAg"ݭ#Z ?TōF,3 0i^c]a ҇` ph;า"r 0s[x ' d!b:s\px/C Rm"V&$#PCGb٬i6i-ZB)DS%94HJAH+@WY"IL؄g1I =LLiWF|C8E>{8\tEX堓[71!|Q Ca:041!@)76㝆"Ce'vy_W*D 0~`RKmr36R-C$#w kԢ2e%ԅ1Ux:D_sܖUŲMQûwlEUсl 䧩m H.wtG'wr$`.tURpiGR@ͽ5̞O4} j{@/^{}|dV 'mM!{4X $ u3TC1x-b,dP{VDwBaGHr$lʴl*@I%( NS}'0$"LN؇zL6f|wRE̛e=8:QwM\2U#тG``q)4 Mw뚜'V {JP*:$kPCszu IO?M7*xY,•x ~zyBHU$mW{ꇹ_]HՈw!%P +fEz莌L (S)np&M,YIݘKwcݝzyIrܤf: Z}A J-F1h0q  s!`j@ }g]>;ӏmvd vQ eT P T%h)Z(yt.g4atE$Xx40}dpe.Ehhhz F$H5dUL R DH:~g䍇dvȈ+v(CGV%elQ%+JٴTԩ%_0 F&ZlmfZ5LI ب Vb(ZA aUʊvHH^(gLU$K:xbI)1UKJԠ4Nűd(T} #V9x֋x5TPx]#4,09sQʫN(/XÈD<@`1K*`RKp KLj(h"! )]3.pͅ7eWHwSD(YCh"<  QJ`)guĎCRZ"Q|Mi371S4xHFJ D,Ri&0eSq`˲3H1ph*VS &7`ےYE-'XN@3RX ):YHmq'ff~(a(ORGp2WAaeLcS#V!l#T'O(֧˒= ~~pZ8<|=d4 зZ7QQZ5잘DܧUQ?{>VMBR`>ߕ$THp2DԖ2O07jGǢ7D~r^"OtGfL7Z^A'HJltF&~; \Id8<G9CݕR[UbPZ>?U)h=(TlnsgliŤX1 f0tlݒ!"H ) e2Uyj5tL*9 (@vvLI !{Ā% 6LhK?Q#?ry=/T?(J+ڤQ&IiT,ZIjH-ZJ*5TmYYi4 yޒ\%020S$fBLi@dSp(ЩhJ{]kY[Z KҦ|3o=ӫ%;j!A""TB{p7$z+=CRP4F&{S1d"EWDGhi5)@ALj%,@Wce*JwWNgDB'$pY@6XA;!WBIǛCVmQZ-%!a-i_`f7 nRHl Q}D;y>_xY"U aQc<1gf0(J @tFF?ehpXdac&?MN7P 3% /|Z\\^0Ѥ&F7ӑ> :"H((hi֎X vQ#8$bHz0=R Y"n4&҂JJ*(1H,#DHFh(65Ց@z~ry 48c24"|ԛmUVӐMblȋЁa'8*'TG8RL۸|j".EJД0a80b ~BA A=dGI~3NUAK#2k/k,`MSTB38e#dl$a$I ~QKh^k ˎIأʁ邦2DIws.D XWV1fI5h*lZMj'v#}],|{s 脇Ԇ HdK&Z$teJp`F{ѵ٢$+XÚ\=a 4bE݀(4C-`:gPffiGVwg\#6#L>D;զ!yGb+d2IsRɼē\1Q8ht:ݕ(bgwk;uFws.۪ڳ9Q])* ȋ"ȣ"KDEqMbH@SB~s"m_G^/^gl%0d#ꐵM IϪuf( AG|z Qrϝ<䦋ne2eh(L@*GHQwW 3oO\2?엽2J@Dؗ$HVn&#]mH @|:C42>9anyɁ av(DxH!߼?ɭ0]1O1mUUmEY |;8zkF?{eA~|qAaсL}!* 6c) K`')ۓ;#c0ysyNTDN0H*+%6Ҥ4Y$I$jcThC.. MlX*a!)1Xmt7-I^o=W oYW_r{ym1l̡1!=FRTR)HQ-H_JOWxֳ,C< C^f:_k5m>#䥲"V@yCQYΥZ+ʠA80nxm|rS%y MffDnE\-0'`f dF7(8tmѣ>(4_m|tF&[eYݴ=;t~DUL$1^<_;6X4G> /47{t||7Չ9J;ihrfjy7֨!C$*T9OeT_R=djAx) ެ,.AIIFL8ЀR@`! NuuP(WLs\Ezq(Պ"jaJT"m&6MP˝16mu2L9r7b( L60#H(PL%LTM9 #>N"f7fHe4bI)1"qo~ʈ,0odhY9vtSO,uٲ/rXbY]y Xx`&jF(^*dwqggIs)Y&x9,~å3`z>#X&:bGͱ2^u0k3a($"A4dx|#$iAJiSNO:\KGSXRItr5|ӹ?x9;# YE6MʳIĩ]!Z| 6$;B]'ڇP:v&"tֹU&֍Ur]&$4&foA8X&~m}R֚3D #6$/nC *Uɯ谴ܔ1ܪʪO897$q? y˴cRCO0aCκ3Z%wyF7t*a sF 44MrC? 9!O0 HԁB)&hN->'W-W>7!_QOP~P>)?AETJ`V+flY$ޖ8!Y1 R֌33&st+iR^JBD@`922vx\Qj_gfyK#%؇<{wO^TxiR@fpRvd@XWϹP%JB&=>P_ kOg !AũbN0s10Vp7C&2fZ ;']HݶyǶК#|0Sp SDl|G¬s$~@dbp=0g}Kv!`,C$C _1@cDt.{t])CmJPpUuF$)h x*DBꔧ"hc!X\dǠ2oWdmQ6sl>yۤ5sNc>| Z#,Y\v  J G"_\]ּW|dTGDDOC\'?=n;5&~Uɪt65$oKSય3ssh毙DQ5" UB47 ΗajFfvˆl /,v8 ɦ|0߫=zƩI8Ђ@LS"vsgwf5:MQv2ќAS3#v(}J Vx0AiM)l%hVm`H.xlB';z:nLA 0[oŃ9vfΏ}y4fk *ď&xutx΍RN߽{'cLx)^ 2ͶHqmՉ I"OLSܱ 9޷1Ϟc=JvG@WERfy,cj A($PMBcڧG Zg4,@;HQM<u)j ~=WmK"Py:h5&=k4$tEkER98Rӫu5Z2appPNz(^) h> )}otݘEsԋ9W,*)Y ۓt8kX䠦{'=`dÍ[4{{\ 2+7dƒZe(bAI6+$]kv^ [xo/&}`Ĵ g Zf2+gz<zZ0 L'ҋ`zV*2O ӽd℆N; Yj m2jqAۙm>u}+r=ʷhVɏMDj$g!:ja0Og/C@Wl眖vFtga5|34wXGYy| b.LJ090&vsAX C}J+]v1DH3mApAS7[60A~2 dYSc+B t%&6NHU ըFn{N" wJ& ]Uʊ8Ihq| w=Z+Ǿ!v&XSHHc;S k < {aupsѓjz, gzް/#3/y|)J&A"Zó* d Ikh PΌ$pFSL4*(UIf(jl!Z6^[=,UE(8[8B'LTPI*OJ+PٞC) G)9Y- `v;gN1G>Z:-5㩵9#dD2^'Ho"2_\'C9㉋0&:;U;3ebga =+Ix 26blk@\ͮz\c 1io 2<w+^ru,2-Vi$0 WLWiιΟ~Frv;#Ɖ`s?.f@#N6&w`xލ =,@Lg2cx=New 16d^x묄1'+!ͬ]$g߯[Cg~{cO~y<كL &i }+FS T,ͅLfO\p(ƈirY-2w\sv}iz%G~,ՕpD~=j5i֗k*YK۰gamll0uv\-@,).Zэ% 5;9ytx9f#Dvu9U:Gc=w&3&+='Hח7<1:<rz $ƷdHT³`!:Y\c|7t(U2}jͼFH1|:ֱEv8QzɼΚZ/߸6yk#A{;vy ,ݠAy޺Ԯzj8hT6wY`\̕(]᥶lOdĻgAx b21Q/8?DSPJ b KֳhP IMub Fꨧ6u* sCb:q"1]֪np 6JZh<:!D&*V ֡Q$!FcW24F\U!^JW( %Im6*bίŐFev=-Up6 0(t/}y98LJ)h+bWs~5m= խo0匑%Fd9m|:Y^ըhu/I(\Gqq`gv1%f=1TEfmvi7rXm#)ogڃ$CM0ŌVW` Mm™q:8y!ϷZC6xYE4[H"X]=RvRCXwd<>W|hqv ʨFx+([^fa}g~$q1yj84 M qЋJCkq{Epm7ȱ >a Pߓ's료L8raal*s&y#ipQT0x(; d0)G^;5T E2_:LD<>"N/+S_+Ta$0sfdxv+&{w"2y:= ţ \n]Q6oSٔ}@@ӳ4C P-}r& NrXZ X EelX&:q]M;Q Q#"+!;i(Z3)ы2Xaj $ ;b &`1;٘"ّ5:O[[8/Ֆgc|wZզ.n/{,2ź_+ i*Z]x:8Jf^,πk'c癞7GXg0߹0M2&!%ma]AQZ9T<(P qݙ.)3d'y`Lf tL@QQC^߂0ʩ3z4#21{jnƹRYiZ` Y =N͐(=$LJtbdP@.@R[||%f3JIHA@\(0A{gM ^nTO3*Tx@J@&Ml Ji9k[P!d`aSؠ{"ZCAy=|϶{Ҡ)JyCzFabS!7<֐nl%QDmvf:``S-Z8Kr;ٷ@d6 %pD s1):.Cq;wpAf)Ai#96JBaX `sq'iʉp/W@hv)"hNBOIH&diy6E 9׷U~do}%IZm' IS؄J!ʰĽ& @ZF%RutBp+Xrt{a!xuӻquy*:_UJPu*'([1*Mc  AB?$Vw 6hyګdkG[T{"lD݅DW v`om W2 {AY,l3J ,|v1g)s_xa;uŶ:rcp2et1 e ɡkD##UUXxf{2g DہӬ]189Pv4zg%UoȄv4hѡ,D1F ׇeIFݽ1(1V# $84&xmDlVmn&az. W" $ )`<'LhU,vYBw2*Sf%u!oAdZ''%^rit$\`h{K$LJ$6$GOO-2[6~>fDSaG_{{9ȉ~V!K9ѹ%cE9a " ߰rݏ27cj[D~h.qXHk:Iṫ=jPrGk{Ue6$Ӏ+`59Ԧq .q: ۝tY|!hYSL%b&fQ6حݵvֽS\( %RȸbEUzv >dfgvcư<&6ov8kw"cوOт0kJc, ȝƳD =̦^8eaƠ輖P ѼU1 `I0`AԍX/ #fCGf=LQvgi!C01% 'K[Ų)gYZK4ta ڣH=5^3أ{l I^l1^ǂA"lW 8ol)9JY f^3WkiZN_zexчt2sx׵d0 q{_d)yoeHzB  +>=/'<]ܯ])/; Jld BvXH_GQ$ltjS! maISRhTbF0A9b&``:!5]*Ya.!DKz]v%ܺV!b5"&JeMEfR[6La0iSP,Y^< C03P!%RHHl&6ke$Y\~ ʚ5B^n ͰKI2[r`*#Rqeڥbf< &5jʵ$2V-[<%6s+4H&ҕnw)3%-˜$ڕ;I˺U5ddɭm H "IP @"%A")H5%T``dFfm1-Q|mY-RfR?$/>䧀E/hj&׬5;g@Џyo _;@DP'nK˵y.y tn I&h4Qut[A XbLH=u4$B)(5֙fhIm1hTXՑo9M 3CDGFIxNvUe@'QGKy#AӞWSr 2T#OS_@>"*ʬa-|CIC;tNIEdBr@hp"3%D Hg(aVN)XeqO>a2?RʅS? IB%>K[%&3 ձ>צ8,E~1FjIu/)z:t5: ; p8}Ork0&#ky!v0><1/)Î+o%O7W*A DŽ}O>a+}pk3o?k 6mԬ/Q~#sl+[**%߳%Gt4br@'OcbS4&4R"x]Q*iz4mASGw$F\cE(CFc ZOFWJT6;Y5uc3TUz\.*&[d Ѯ LK6JB20ƮE z0#" Nge:.TY[,bɕ5ً ӌPNAff2pMiE(IM\@ڄFKx$I 9JdbJdBmG" lrW-sJ.m2MQITc(dQ@X` 3hTukM9_Ɂ N%ʉ9*jv=a7M hLM$fW֎?V^5b2pa\T$/TsWAlO<aGM1Hn ΌU$؏7?6C$b_BD!neYphHv%[$tvϥ#HާU t^T&I*(RJQ1g $T] dq,{)T%9)#`RZ5~ أcIM4 }^(EP|{5ˎ Ef`K.\$b 1 SzN:+0 $0^6d)&8|j:1Тk[g̑$UV@zē%D_|gk0ItH~ b~#d!An "C{L~z1ƭ MJ=# ԙv4 @784C;W0vg4!JK,B$|WKD8T%Xr*&,F3 M'!NiY&px )Y8cs~3H_)W׵Gf$R?LPI+N\L 93X ь[EbqQt K cI YM(1]m ).؟АȒvt[|=]'M5ԳzJ Q L"(Zh# l\kص21F7Dd;fsBEI9Xgͮ T @ƒ(C d ҒGac̰YMXN(ƿz\w&CO>l00:4Qiо5V-֫E6cj(=IP娛Y cJS1 ^VloaP]C!m AW MvJ6aeSTozD:;G/`fvNnPPΉd$Qty?4a1@bG+FY9e2&L} L C6uʉ Q_q!C5q2h5M%U}vb*ۭXlO,8mIGR4p S) +oaeFTudqM[uTX[8_+(ASYJu;W)B0j81: iA` S 6pՁbnX"TEtJ(DC|'_SgПOх}Fr&r84kHdӂ!!h/0!Tb0Ãqj7.QE\yTWF*BCP ($4$TQUI!D8u#eIiS S'RHd FC &IA7+ڨ68h֒L26RvI$xVk:bp9ZL 2 BIms;d8,$Ԙh|YfrD0BCl.K dƎF ɤ)DdL7&4"=L/y \\`ixѹbLcڼ! }0))OH,0J(JGj(!`4k?__ڔ)|%%CnmWn}bRc}r˲(}nv'lշncbn1LF lUn٫vlҷ-49ع^쉽QPӻy1^us)Q11X9$7gWY8%z9b'x1b7v=9sevg2Ncg$Q o|tُ:ɢ??2ت6hVb'ffrl>c敝WM1ћJ掼8GY6j8ź+Kq&g] RTW_c{cLF Q_[9Jvw"%pd6};Ӥ9.OـR(VCLjC3B=x @M, f%K`ʲթ9St^MoiɆgޓ.rI;Lj@e?"> 꾞^k|DO捞x4PXɧZHi0t08ف+F &!Ic]ZEӽ.5sZX(CSB0v`c n Q1}*[)ki&J,jl3xadхZ %'-vSM3ˎ:(C;žXB<]]I ּGyoqIi3H&Q7+uʽ%dvӆٙ~ &,&(wfʚyɨRK!8^=ƸQ,qΩ-i`?#;A8(HzR 07XD Hħ!쓽 PT@)R) RR[U$_"}Lwo{gzG~{.>G}#]YW=u_wO?}ﻏϷ|{<y_|Ǫ}_}ayz0ѿ`i/QOHbAH2d+!J PHImR*VjTUEm$XBFƴm\أmQZ2k+m5&j+TUcZƫF%mZ-dF*Kh)B$ZVPJZdkjIIVRXEX:~0<̗-RXfYM[RmP_Ǒ g7T`C>AO.@(GqPiuT&Lή\M-y3fГ^yyىkx,J/.rqP t@e׾ aɿ@'#a6b&KH9 /Τ= u#Q}Ԗ8I Dk6řH 2&"8!#CF .I,eʞ}vl"AZ(UaJY6,ڙ6ѭ kQLi4jaVi60&b%(9OOgnR#25:-J)BoNI90oߗh&KeZv|QUUJwrfzDؒTkIVP"c} l %"<=ċB7CY$Űs =X#Pk09HOB8$>vRH,f^]]ͻLc̨I#HV,מRXynH\%b>_'_O Dbzi*dz(AG143viUH0,?~EAdO?<ȦlM6q7KkGgcIOT EFzGuA $ĜH! 4?exN#sly d@d6' @ZB F%h Ie`$ET ۬vĩI a. ,@R*m6#!FmYE05 2419!4bGf18ǭYEFB2 T(v2}pr??a<& %,D [*p qTO8ΔKu7ȅ?5$D\'C0 &R !'/G+)iJ|) J^P_]"|j#ꯉuCTe 4! R1(TO ' b!,K04fK)fQcdԖ!e!]f@BQ4$㉐, 9;WT RWJZrnZmd0%) 4(Qb 2C\BL8 RдI2HDh t=D&t s)C!$dMi)Mַi'=EFe'0CH1YUi6$8rTBPҐLU"@pnJwŭb$m{& '"\$阉(߁t;xjfZY0%s)JҔ̛| p([c`Rn_2PvB~)Q;uuD[Ae"gړBh# eK2Cj4$ud?Ȳ"zD$}='K,I]u-.#U>bOyQ?H6 ?"f~d<%;?&^CxJA*,`Q8șYrW'ܬD`3H3‡isP`c}ZBB!E"(b/(.J w:PN0Hjoy}VG~'scSyD؃2lMrm'UNՂQ c ׿Dv9E1P(hR@cMDD#K(s2$IѰKf)҆HeJS`([hp ,Fv|d%j(inPQ F(3~84gu"ED; pM9%;t&_mdvУ@1i՜wnmgEqoś;%C\A| y:bZ|cU;.wzkd[pJ{Agn(,:ASqQR{ņp ,RUJ Bt5O=k%>Udnw5(4V1{^91B v2Ԟ6k&Lir8k¾¶y5L֪ha(G'9\dW$TH0&<{2!{UR&4Ǟ.̢I% aaaL- 3\GH x$$=)m=ϐ`$ IE(TF@D T@!!w $~F'X/o5?!ď{$$Zc<4b\W;ccC>j$D>eR D"hcC񔨢 41 (E0$ 4?B4ҶDvc@ڕb:_&^ -fCQdT|n$yE#1-4*ܩ7XB0Xw+)AV36d=ѱ[&.r*m;GAku 쐸paJCv@+GytFRd৭#{;?A}ڌT["QV*6UMC6$ҎMJɪ)QbѫEfr(ѬJEiʥEFM);RTml[H%$  q!ڱRV[`Ur [hXYk\IMEnst֓VFԲ"Kfkk%&&Id&FJE3MM(OXbh$OG?gEa%VXjwڻ81GUPiT~Xp(PT@# ¤XY ǣfȟWC_§㆕"ZPt^w/* %IR o㌁P bRYVlV E*YiڨIF7+B…-!( TYLI6Vc6e*l\k)f͒J(PQ-JfV=\W~0sPc_+8/}?"9Heߓx?_& ~_<?L}R&2 I(BVRiDfI,TV:+RvMu&-kBa HRK4,IdbcNBPDJD˃GZ'f !  P"3^ Fh tuQ!{>y!,T\/X/mYІi%VerBai E#BlXĶZʍ[Tr& 7k>o?wk5(^Lr;:e< [)$'"dF<{6z."F p8plbrvbڸ$l taF<쏅DIʻpzbQZpqH3Xaܸ XEY3¦yp5$)'xlzORLTbS`tl#} Px}DLґ)IVJLͷ+ξ>zJ dD2v## !RQEL}PdH(CeO!.`SPdT(BJ قrPUI;EH=ǠM_b*jVL=\!`%V Ѧ& EDabJMRUk*ۊlj ϽgT?^ç`RY%3:II,Q냛&l̺"Ҽ ABIuߠ1<Pyq2CR,$J82I4iYu$b"& M @`N %8wnXyNzMzqL%K%/YYND&U/]|ᡈv䙂ZZ=&nA_fnBoC22I!Ă*T#6FHw Û BD1,}>ӴBLqˆݠmB fs6"34z3fcFn_"f (AK$H/38z?uJK*t4˘iX@-adә% -TBF,߬CH(yiwpuCT\ =|x.X"OiݚJ !>ۯ$ō=vLEMRi2ƓwrWY]ĐHT !A!'Z<# *Y9p}0O~[0D}O|"}dp(_(U#@"~)4QD>gqK<; /DcÎ7|~SSO_irhmjQ}6Yp':2QZ+!jr}&]IA1 ,[?>澬/:`j,Ϡ^"!tiRٿ{R?_cHcwpԑ ҳo|ubDDLP5Az *%ip2Tڤ",%&dFpB  pt+փ_K( JZ~B*kwV^V)Dc$4r0@omZ1EJ(AE i)^)\QebX)dTˢb@0V D` BUqA'$(@b I ($KHLed#<.AR«r'\-%]a8_\Z:C087Z-S1F 4 гg 2!ïxy8ﳕL|~U%x3f5+HY}o\zr0wnЋ;~(rtW" !Y+A"~*chZ5 CJCLD4D$i}`Ǹzx}®FHG0DX!V  ZU+\;M\K+3DŻu36Iѫ,i-VsYFK@1!(D7!K2ԠRK"cUdQU)FR@  62KqRL$aBX2eU5,Ң7jȆXOFU%*MV 5!ƫֳLTz'a;"CSZtmV-.eTAR* wEbҡ)2LThѷdy99MB!JpWuvӅr ¦8Co XdY*Ow׊ܨa#ʯI\ 09Fe9}Z8;U<07wa8TJyA:qʒU86"}ܶ5,MOkWQ} W#/ӍieYwM9ޏ+y U|›7k<im==4r\Dv=CX$dߍ4-)Y6ffuoy_W?֜`kT^{㤓A7170d*հ,&e"ȟ =C %iȐ%A#t'7XqY6H>GhȨ( 0, PѭR3 ui]H]rNՑVS b&D$`*4y]`XM35q ׎JlؿR66D`G  PR|'&R=_m{{Kxy|4mCliRޣABp=(w HC%aZaMjњml+D)(JOYJ[+FZ'u 99##5@[Ӧm55U攥0QlJU'1J୨Xg+$iLm7vwk{`I FwaHvcp@x曾e&H{cqaGΎkWgCch>,?,ʛfY-xԛv}sY1Zou>Ÿ57AI-&x%z,0#d~uFC=u0iRqL7YXSHv?>Qcd9b8o']LM>]8Q? C¤*Hzjق ]eJD!0a(0X#Ze"1Ua 8( 3H`2\#*1v)' ":PDRf 3P`N05"HHF5 (tYP$0n4XLABh! 1?25(q HԆv6P  'FMZL*r\4d`Jd`aIrFtf+ DrDQ5 8(U .-3hhj{^0jʳF <51iKUyI4JҫC   ݍWSVہamK B,hJC*T_WjyNP &*(1 #"kɢ(QMKeM,% )*pu0, .pcqJ٘l1d0Cm f5IM\o{ُ(Pk_N-9!]Sm|w? HЁ1=ةJf߈}$7؜J}zlt30@܎Z01^PUvn& C{J;~7I_GuAobQ9`F4h l1SSb-K&P]N!6&F& #mD!0ʭ J!C2 "Q Вh-*,(t1)kt:\UaRy245M,]]6n%4e(]x.a$52KLDҒkF!Ӓa ,LTp9:4^+ ]3]<6i%+RL`ر.ӵ ɗv4+;vx1ֿs8`JWT-P !dHJJP BT/MB[e`˲AYBЅC4)jC&D]D"iڛMf(a 4- $]qBbj(xąŬՙM펮h%C1&M `f_{GhdN|*jFvc!fփD!cҪU=#顨gN3Sl|W< TH!JHDs!LRD`A48 &\MWfǫd̔zv`g04ЁZO$rF^cVoD*B%#8H N1y@Malx8KGl+nBcpaR%d=Ǟ:#z {; ko<6tfD6f*=. bmٽ4ۼ1bHhp4=-;:bcOgM bOd3ǩKRGV=Tnvlʲú_E ?'-e3 qƸ9H8[M&&վ`#!*6Kq?w{]֞lĭג~.D}mc61&ﱇk0E "OeR2RRT( CcD>cqQ7I rRJl0`şT,O UE.?H$Ef[՚6ut5Mjkj2׼HG 7BPpH&=á;D@D DP@wKbJχ'YY-rUda H#HI ܴZkm5 eai=)VVxITȽDUP< p q :%?Hri2G0Ia3f˻0? ,BOc&K#0e  gEN~G"D~7n:=D(TJP=t:t7a+$  HbbB2+'$}PU(}?2Gɞܱ>~"I3-"w?A Hjf(V`\Gp!m !>R8S@Х R ´Lf6RZ9ZZ6e@4$ !J<H4*q)>Db|#JTFjڅr)JVFJPBP@u89.(MSȵ!2PyLzI)|_{ (+J d(x‚w`K 1!*UDO%9@6!Q WbWn@i@Zٚ np|&i(FiXICT'Px@yųOzpC3vfG W}Ŀ1^]RHӛLcmH v1a..GsE(Pyѓof۩dE`OPȇ'J4gXLx㛥d74J'Qݙ!QMB 'ä aF&aS$VRb 1X0Q*'rr#@QhZ9' ̎1Ht(9) #&^z泞0h(+8HQ޲FR&70TRm2qUPMI:!"_{:~]}8/FAPd!RaFt cbm0`b]J6fFXVI ]j|#^*BY j6J*sp}w'b6#R&He*$? ȤrZBJ퐓 SLu@#"p Nƈ$ )RPJA@Rx]:.|ag&HhG,wHR\].j(!20@RnɮD;_-E @|aURCy JD(b<9ҊDJ/0>\."f5"E iM\+r)aԷf=-)5*<`]bi'**E$M1~!@sJx;Yd-H I N:}2/ˉW͙ 3.Rv[oX%Ja=s=5VتeZ.XR%mij=9#3eiG*H Ƨ!Og;²۽$6Lk//R1F/71m7J,?u%4>ˀ筋_>Fx$l%KC|.;͙_ttc$ O{$*`Y,HK"1"U><@'( Oj/yam*՘k jc %Q} z"aLO0[8sA M hx` e03JF@Im=Pf]M8fʅQY 6$>U*%-Dm im21@k N0:hmm=0mXٌ,_c82%'<μ@\$@UCL|Ʀ&cӫ#LAcH4 އ$Mo!fMѭ `<#Hc P`)^05l^SSqoH]ǓhHu(DDOXqD# 6{!wG `)"/uMVYeR8T%a#02Wo.5kRkuw#CS-H:cO(dfV TjR-MRfYFVس )2 DsYo~߻P59/O4 b@T=r0"j𗱲IUmp2~0{jھWy1 $_le g&ⱉ$+[{kN EѬr5in$#NBt/?KQin\U류{ݨ *XFT%ER%.@4"U m,Xkd4q~q9,}*X0Q*R$PC4M欃*UBk(210#SUR C)pV鿭xm!PLJw_gLP{UNf-?4Ȁ_ۏp~?##Nc>Avrf8dc#[Z,7ڪԖrݶ*=Х`R*<RhH%T=AC=( ui!5 H ѣZֱ02A3 {Yj{ tȚz7x9w=Z,eĿ[NxFیy5<B5kSMĉ)P9;,N{IBlhm`7zڍl̍E8XfDŀwʩp!L{FQBG.vcH@Z}N1^|I ]zeq 'gZMdȥٳsU\qiT4oCrS݈liJuG/S^g>yt(LYZ֥̹wv458?k=?uL5y:Um͘=~O|t='czMQPt,H ;KQ;xaU{e)S*pRӬ6p}r&^0384ɫJ3(DL JB:IGN6ٹ[mm,F"8RdBHNLdP Q2݀CrNp5&6*Ny>vA0ᅇݭ0:֌V1nVDԱP7ԋ`Hޠ8$|DtJKmI ۢ9qGuYK(a!~~1 ڊml,A R 2Sm9*F UR)Yi 6,%L5GiyaeDe3I@dX5m*A3Xӫ[{$wqP1Ӫr=caU i!uPP!(ii6@?ȍ6 <0BtƴVo͌dҜb8"/$ &{ߊ4h5D0"~N HlŤlح2"ғ`P MKU3ʺwmڙE4-cFji&DIoGaJOA'6Gmf)TWVZ>&kl!7l(dFU™nƜ2*(!ВBcӌdTbyV]tM!QcBŌcljFE6 ,URpr]=ǝ19޴A;/C{AbtG,5+Hw$%M (6a5j!cl)eyw\ӌJʟ_nfbZӣu0|,{s#-ZdkSk+9c擶$^z#uU]^0 `bcK ЋɧB[]GYDٙQN\ّ:^Ǿw'7m>"\P6KaC2.ЗoքaV>%A=EMEo|rǭSX&áxEU5TΏdQLEdP,#G&Olh&3@؏ںU[AKV0 S'zr5syEEyxG7[NJunH턭%%tldUQU椛Xex♝^se|v # ^0PhrЁC*K@o:Gz_+;Ω UB$B?T'hALԺы̑PML?{C$E! fT@SWjTT`N@G~dS30rzI!)f!:E4$4"SbV1i@#CJN"RX+Wl.֯ _P瞧/IQA!@C DD^d_2@ `q}BUm,K!"X@OsP+ǝpxJOZ \XYQ *DT@*b")J@>(ReH B'Ǥ )$ĵ`@B(+QUHKZjQbjRR_xDϩ<&[}WlI34TKd֑S6Ɋ"AR ʌ EPx"9^I 5IC&J *Tg_QEi>9=o$"DE SPIDBʪG#i$&؉l%h`T yΫ8AS@mHfY2MI;%SY: 4& MRD @J L ܎ 8-")!JmDSCz 3Rw]2Ѷmf%J\0 Y&)01Jfe[de[4cXHHʖ%FV HsOJǕpLFpOS&JOu$YiOO0ЅA ep[bƫ QtL)tF"Mt wk&0U: x404ś0X lQWLem,ʮYv퐙LrNP]8l7 7lyS~) ҇kbQᗪ&^q{'tRyDwq:ݱ6: EͽhܱQ2kZVuM7-X͛<H1o%Rh_ wWThUtGku\[DEˈw wQSt9ݐc"hg)vH{{6U5<(ug3:~zƬxbnn&%GKGfsVeҡ9S[Qnك:a9}ZM! DiF0nDx0 ׼Ӧnj01F&Jmy;sDGh9[aԑ’Gx7@L4-XVؽb{g.9K.dsQ\;]XQUZgܟ]9=Acȧ^ ̣J.^ >c_FNOckI2bߛ}1NMo;4m!OBHُw<|Jd$SHQ|g%e WTm 9ZU >s{}@k' ;.B}BʀQsv+^jmC"A"Fsag -O=Gn{ǩ,!8 3Ijh|TY i&/ 6#LPhIS;rsƈĉq;T<6NlAk1JK̀"SW}mBz|'fD_5|Ǧٟ]Qq~(! У<fp"'|:=qMr leuت4=OQql*1g YSҒ Ũ6TūUo./DMrTV.ǖʆFZXSy(' ơMFs2F̈́ѩcBcb{vࡌhmA8pQSeۑN`~LHaM6;M.)jk̮'\Sp "ww+}\k&N\sz][v$ҋy% wQ~ %i%`^AM.d"y9:6'zrN6 vdbc,i;)GDӗ0,D̠ b#!raȌao:egRQ\ #cSDAsII >h0X[A 0i 1_׺]*,mfg7Ӎv1ڒ nk&f%b`rdG3k }\Gv]r"18lbG V馩rN^f `1,M;GD־Yc;ٺ7[9xac0ry&oe;#gIiGaMaD k{9? σdI kep$\d+fwchF9߼j Qz@RT2c痑j8`d VL>]^z t>-ֹ917] (c,,z I[C4ۋ'{ p$S*j1,CVEp[;+JԚq YeWXWT rjuCF2|W Vժ%_oXVpϑT1YD;!  3wS}`DYmG,.5iw +鎉>L(_,(=/gw̳&X06r؜4;&\dʤх"afk*|TŝAljV},DC {jpN*;ⓤ}p#I1/imo}Z}3B5o-kmFL H4h ^I蓚jNh KeUiȨ7ȵdx+·Ĝzp,rμP$:o[9IF!F@~, I1g7x84X/=taM OÏZ9/s hMgU_, 74&^n/b*j ` ԁ.6M miU"V8q/H EVxdK8L1! Ezz{~/?UGEo?.=>2 ,뉰4p~U48x*b X'enGѿplj1i "!<0<bHBoI,Ky~RvAݭ'r;C*ɽj2H #2B|p ȻচiYdb/1ccAM4z&$<'͟Wl?C?GN(bH,LY V#Ï߆ϭX}-O6)MLt92#4i!a?^>H>-d}΄AAE%'iWtM(r~EXD]Qj\pDR A/#䡳_ 3Fp9iPL";\Ѯi` ahD=fYjIPbCrQvs*%dZ={(2cB.ARcv +Fe2S)"ęT"j4eNBTHI"A+*qlWvR2> : VgH;48Dz#?hUlVP;}akN@fHqq.eԦ(DN E:gHKy0CFL-dlֳDVcYu+!p!tT0ՊU:0+F3ZcDm&5Q)<pE xN)] YcY6PgZXhA"TSĤTVS(Tcbf'XU YZX ĭ""'Rfp$P UHw9b e ^=Ot~FQ"ɡ| k!cIT1z=ݷnn]& c\|H&̻n%bý$~sBh(b0+GIR8&&X9% SQjb30?ҨAZ"MzgAG"x! Je 5hտnusMdP;FKf8%6f ݇|#v>O:ppO);xjˁƿ.,;ļws~<e'h(^>a^h:#C%}zhr=X` FA _| :uN~N0~qtS-5jMoE> VV݌GJ:_h; 1jg,[}Q#5T&Djuo4:k΍g@!+3EFatjeF0ZqIƦDz8>5}K=q#@3cKLy\GvTHZ19DFBx(K3rwo&:Vҹ񸇟9IQ\HZY;Dll*p܏5}FPmw8|cDg%AqLk=5wVJeܥ7gRYy.jl@Jfq]X38[hBCmaMcfX뮍o('5Kw)dɝ 0b,{QQQwرY:8ZA u#[UȧVY~I%%I3,AUNaE$[cyAqYI,]Kp'n:ȳ1‹%pr8X jw|^olY( As[XѩT1a1'Ra1+ed(+3Ms:Y8_-4 K|hB_}^{lHH@ *qᒖy8|71a:Km ".q]gqѤMW%4w@ :'Hlbզ 1vVo'0G+!T0J՞8T$ehDŨne8A*+4ltvEE!Zckw,4c.fbetc)tC)aVMC1$S p^045.D:We75\A\5V5 yfŲ%^\Z1<֕KHt4qô+Y QfGv)C] deT0L(6,[o4OfT0aZhm:aр҂9i"t3LjHޤ;ƭ]co=+~uD,g\2:ʢ[d0W 2@JP8q`sV@ 7\{(=3:Sa٧`mIۋ UqlQ]]JNEK70rҪL 1HMy EyE6U4M oeW䵕y.34"89A&;!KP"PK$D*$B=CDH6j?AD\#WD[zU\xk󐞙E ,|-; g/7%0Ȗo&h'5g9/x-1r%A2#j"U 5,4AmkDel8 g3Zըr08dқ TOM%}5))l"ª7-ڞPz)"QT$ُhubl ޲C'| @B:(NdPIfoti!Z)$Bv#V{zva?Ш;+0ܩSQL-ii|XFD.RvϴZ:^Te[ / 2wXy-`0ƀhVy#~I>`oϬqԙ¹]hĎ##3 F1D .bK#bq`0X҆I(OH>:`+ȿ*D Q`@L)i>+"T , JQhTS$f {JADi(Q JDZwR =(M*R@Q|2aQ9BcիjBMeåZZ\;2D!ST PiD(D_4{* R 6'ױw Ced5afj*5xx!8P8.L[fٳ ܆!.rhYpV'ݢzdxH;"[DH5(U{@wSD9_4)y> RIl\Àr&G8˪0a X6` 4MveHzQHMŶQsMf FIĬ!͂$xiXEV.sZәQ sP (Be v.8C"%9YKbPb=ІVX8BP"䠚Xa IA5օ5aI C0T\8nە-ΐb` d4Fk 4mw}SZ^ujm AK EYAvh8[ES00IL4ifHT *l 1B,7vcv'J:IBJ)BdRrĕĠTT.HS3W#a]۹Q;rW^6<֪h1bpGQ k<]ͮNw4$ ik۞syą55QN1?SY>vaVET`9NA\M2ٶ6 VׯɢH5a}8ׇF@ܖa8J-_Bmm+d̶&5P({$MHB',(MABCB19LaHH7.6ʷ15Z-R\Tjh /sٵw]}OIP=s/HDIH=2᣾&J?)5Mf )~F>Иҳ᩻dns=V*F6"`RYijHp2,$>Ŕ)"MF2&Z.*N+''< Gn|7:; ڽ#ܪ"gS@obbf Hh"+j#NFk=W0=|ĐRWfӽR#{O:MCD"l>ЅEU$MC# %I!̽ L| hzZ+UQ[)U C(z@_p*g R($ iUV S]&J,t!Ovp;/^d̻ Q+?m) L6 U )QD#aP4QB4e̮/]L0J1b16YΪwS"C䙀Vuw0 \'1W;j')GkAba (&D)& fmSUidcoyǯBN0@<JQ&4"ӮR9HYFBI"EDT8UzJ=WO{ ;ԙ@A.D`Mٲ!ĕ A3@;?2nWy}ܠi&#@FukO<*~9 "shcnWMɅRI?Z쥏1&6ĴXcnƤ)D,]\w)6K]ƹ*VYX%XٮϷY20xPl0P||y9^s o8ְi.Zi 㑄H 9 LA75d1 fJۮޜvwp9rkJ0[m(5Xa5mqP4lnňEM1[.6aIU =CfWG`;kFq5]{a?Rn0JVVCl 0S4Q#:*4*hM>pҽU0p*0ЎL$;(C;fRqBBc(apuڑ P 1Ӝkp9< N88AĢC(@Ҕ DA"uQ?tP x:D"PwGwH;LJRXOWH=1>qT{P"(7w>`-6mdd5S 5U iL20C 4LK"LͤQjך`*J]؃.6rfS'!dPm۵uh?pK *(C(* R?ؠL4P0HH*=h ⟍ه=7@b(C%ѽ/%,}TRbF0?ѥoFiIgҹ3Ugb^ OiṼ)AKiaښzp&YZR04ꘖ #$7a 6Y5F5d/ TG0Q2[V3c汆6n%Bs)x:`X50Z tZ_uG>Zwغ۳Fjkjr~=" {VR U6v D{TG_4BK&I;f ΜpiyIi>:)JbD0_o+iJfB2jYRSZ76yJCB|?ć +;>{v/8ёcdahA9"G-?aӧr-_gD$ēaYj &uîw^uWHCwE+E%2u)T0JZij BҢXgSoq0舦Gұ$iDŦĔ(*܌"JAR i GJn :+]u2]tM̟&!vʈcʗɋb2L5wT23͆egh3ቧ{( -iYىaBlF[ro]:868;"葿/*yC sB<7D-DQEK25JANaCy?;Ml\%d,WE1.Gm7|E|~T,U$9iJG Ї:7;)TB5^XXU=,@ hi"o†mC Ξ|)*NЋaW3 isA/$Y7y٥lC$*z]e0Ł>`0Ŷa: PKyș'F@Pbǯf#nfn6Aa*F"~XZPTT)hRAa*U&E Q*BUaE}D(J %RV,f|QgIԳVڨE-k dU{_]nKVּ})DOzQQfTdJױ%kHL05p4wsP&a$;ʨuX.$&3!?ϞO7С#nҺ PL6nvpg¨jQ5XL%Y` ^畢tTA8a,FhҠ]9Gݺ s<4&K O B SI<Oa bPyEA)iT>(ip¦TeђcN2_,mS")4kaFL!MfN0;3(|ILe3'ԉ;jbp졁p5$e " "%°eBE<& 'tX[m:SlHJܰ.K5LCet<(58W)1e_ma`j v #)fq5a7 V Ou;0i6g`I:_eu:ڬz/PbDHL^^.;kIpF&! nl6 H(F$-`r bmvݩp"GϧiE hXbbЗ$wC1"6w'MzdGMN v|(N /a)IwX̩`~W=#7a]g]USԒ`#}_< {i(f T&P"DfH@ @d22-њe(VL2YcViTTZ-,dhQjekFکY%lLԚMi5֊$ M2R(H@ʲ$ 2 J$(Rh!(CP P=!SbDr ZPҙwrٵht.mWq8뿬l )QQ-EVR6h6*SPV m 6b*ZC]:xx~RW6bSij9p[<_|n% 9?z4%㩏ojk%X0l[JY6Qket>;uw>pIAwyr'eG{ѓ!G"̋7$H!gPbݻ8Ox UG~'i/n;IBC?8 m >zL0]?0xk,C<\vo7z)o)iaŬQ5Mw걢RxdnL07ىl֍/d]hg6L}>Yԛ mOG'Q# @e5̍MZBVæLxb$8Vr`1v7o7Og}A@{/""(+$k?x;I`s_m9s7.t )@={Ͼת]۫=EU-n7/Xﶭ;{:s }=:n:vZ}w={ﵛwo9E uM}_w>u4>=|*NuιpQqIU5;mKAӾov{ңßWzymj >Yw3a׫vy^Z}riwgtNV}^y7^=s>̠g|lwH^ve{5cnϠ}jtI@v t[VvWNn-+{;0:KTA-z0F/]\pĭۥna}_v=A:za}sРAx}dK5|_p>@zjQ y{ukw}k{l쫻mw޹|m:wvsLn]S6@ }zo`7ڏzZko\qفuno],$0}_XȠe3^^޷w}/O+ q{׼}5]Oyn<-۵r{>7y;cS˷s`zb׻=uԅ]:kܛn{:m<_g}gzlwӝoBoݺh^8lѮCWwmSwe\ۖ,q}sr.zi>hjkmz}:<}{ϝ6{Wou7_uLw%wWsUӪYכ}ow+⽌Tn涛G;=+̀.؛}WsО׻aW]o{G{mz;ֶWsc_NŽsWMb&* 6l0ӕl ]ШŮU=Ѭ4͍h%EՀSem>MrjM|{wf_o7ݧPzkn䎗7[]/y^t4o}o=2=ෛumݧ=㹳㫬}jl}5yݾw9.޽^m{;ޱy}F׽zSsGn+6{{=JNw{MTU]]nښͥFgrî+ZjТ3Mgfɭ=wq}}=}_m{<4/mun^z;Lwq*{tg_`7fS=aη y޷fAl6փz$ z;MEݺu){x:(N,=vS([6h}-vziF[{=+Р=_wﺾ뾝Ϭ͕nٵ=U׻4zvuj:Q<}pݹu;}jGY]Tt2yqwu[R/gϫCʠ{T݀i%}=QSh[xmnu>](PBeQvi@7}v-WekѧL3 ]ox=]w{˽־6ʮ|ۣ}$@(=ԵF6l3 >k}KYmI Uk=tU1\Gzl|vv0.mvǽǖ Uf4E*{u6QymQmRWsE_@Ʋ!Uac.ƨ tۻ2GV)]^@ѮuKuku{z9A^ehW26^D@&#@@ 4M2a4hhm&b4`@ hɄ0biFh($  eSz'SyS=Mi 4ihDA ML LLd JMꟓJhSQzAC@i 4!I dAA MD0~OJS56I=M3 h@6FM4@@hD`   /|_M:񡦄1zgiZc;88ѩgIyonY*hThS̿1sQKlbmvޱWfޞV05V%$כDy=#{ $#_AX% ;N~DUJ DT (ڢT" ںfAo>A\^=U/_(GidذjkݡJ J` EY2J_ '_23e8(d~1OUQ@ M6ʳVn#=y2(_Ajiߊ R7=@Rdi$y?3RiOide" IJgi]FM Mp?q+hZ6R c[=6~T<>ACu.gsG)龂Is%^u`!"H}FLѱv:w?E\,$| ߽L7M$S4ׁP2!|/} -v=SRϺ07` ]0a[B&!R%i ؝y$X$bvTN,DC/j/Bǃ%3̥$RChȬ=8'W)XU!45(E @Jҁ(@2IH$(p00q.HAك\rq!F/lL:5wkwB}NPdw (A"j bP&4/s5`5Pi7GU J wr[;Q /W!x6M6;CQA巶m *Nbqp X ,4.nl ]E`RC7$Nb&Ja#ÈAӺ"ACN֑JAC$ (A$I&H%Olc! $k)~´$%sX c f\X7$ؽ lH@T&h rRCP"]W%(rD()IDqC@N?'s?' 7|HF+ 6u>um4b 6#?0n_[yp 숯+fPPrnX98_FpV<Ж!t#&Ed.miF"lc9U3iK @RD2>0n՚j^)Da"AЁ 1Tg?GP?SM(SpۆL^}վflW;c@?nyU(5…O] 0&WiP A憉v&)E:coк,Pm<>$9}P! ґ4K&\P$/HŎP/ë3jdF[qS:a4MvLqʠ+Zade}}#eO  Og"};$NpiFprM@%2WiM_ԄsSFN!r J3q1oB[orKDمB6RR[g\a}OF܊ժFشD'yە-ն4vc^Rb8e+5-11甭݃C@E30ͨ?j1~cY wߞxk=Gi Û@0qx7\%s8זkV2ԙ1mᷫG.VKkYTJ;:3^]hC]l?% )0bfm\ 'd=Eu/|n}˯~:XܰҾ CP=<|BL=<$V:hpKͣӱ #BR!w LEwG\Wh2W=1><@}0+TmtX<X!17݁=CÌ.)OΑejeT=DIOu UAm(f܄xy0_ k-Ovkm[G0D2ٙt>}_vI;;xL;z(H\(*㫈3Ӂ,۰oF EP30h=xm*O }gstllÊNi.=O_%zsa͕fصt||;w[w6j~V۷WDur|mMY#UHr6K*\m-A,R-Q(](ߞ[DY'q֧z*MظQ<”"6)zQ4ACU6,x鴔v1ҺƴgLHc$}ٶ]60,g{iUޥ'pk}QHK3\Iy׿&m>{{`򓖌ͷ\R-4nT3\S%}/K쨵͋J GQk7qJ(5l"9k},w39'#T+[PRTj9$VޛtoEJQnףϑȹ׼C|Aֆzxߤ( 1a~g^^=;H}z]7vn_Kϵbq۝lMf^3-;4)JhJX9 iM%9v`P|! B+O)I Rژ)?ВAd_&;/f-t,*@d_vziߋx}$";th? ,7&}}ٰL2S%nQ:T2~buPrqvϘ̘8! Uy8nn.ﮂ։Jj w4QAϫ[Mv5w[ucaME\kǧU]%4 z9#.X) wVadf$ FH5&ݺ0w8y vBFU%WsRēA2NKaw:x܉8v0]C3m6B1ys! D.@:ipM= =]Cqנ&!:u0& 9(]I.z?gvvJO+$!&V;4(ӆ?y> s0 hfCTa/gfE\&LWXǿ!5CbeuAC44uZQ@L0ɞ /kb]1ɟ:6%ض}9=gO/2~(|uNezǗҝˑ hˎLC;fDb 82WWV('p*5|! RS#-k۷#S#K]L{!~xsG ?"Cd{dxJ}Txï ktI̭O=0~ sݯzm^XޜV/Űx|kt5,69Tm6u^ܿNR] mǰRz'> wG--T2pt)co$<4fhZ_ ud r  Հ\<|Փ302OM’>+a/FpfJD{GΫTA?,F]̄3uk!Tq'kKN;tn۵ٙ{]YIG9 oao+0=7xI#qK/?u,mbw9Xڻž0*,! ͻ,Mwb`{}wvǒҾcf5(5n;A:\U3&wvDg9?.$9cod dCbibM[6 ~-/XMSϔnǶt_ftXJseu脆QjW0ly0h,;yоM#B$\a ?#WjG,ڽ3<2明 $hc?#^k/Y|0\م6ֶ@&\飋_{HC fR'zLCggf*!Ѣ04600>k2~Vyi_{a X jY]Ct$ g}8h1F0oyqVH P/R~'UK905ߨ8Yߘ\AJ(S1ֿͣ."V(t>%'V LC^ĵ׷1"}m*۝:{+gn܄O҇6Xi3GwFOW3>-oO1)LFL,+tdTd# GʔjXB,1JY0` ;2D?5֥9NNT{ ^B`a& 7'}-m#6evɯ4d;_H]*9y?h\.W|XSL8>k@+CPAϑ |h""/I1/GܪcXmFźs@14[m{MMC31JH0LR,In;!A zFB>"`ե~.m|,cc 㑯زfܿ4poW秱wR VLuTy^ 3GV7^ q#&Ɏ=d2橃>3nqeDf`.OxfO-d $G:I8Q>Souh}Vk{|FWQ/h@n3;4ͳ&} FM&jh5ogN+ ܪMrJC: 3vuy]z,eV׮l`7Ty6}bw=fmW_gώcVz06adz-^ Pk}^t=;%ԱhF yK ٚɂxT.ўPۃ;fa2=I!(@,s/.l|<ֻ[~^z,U6t0^.Bh@1d׻ rYK [D3F-s$0^zѰCι`0Y@!_J1@m:Bm}G\WHG  ٵ!v-yh25YU36F '?kwAxWlYȢBˬY4{3ף[sAHD(4gӨ{_D&1n)S֐ Oس\b( lv9@q;˦?ET3` Nx b>xHM:{k&"IR3g޻IU&޻*X=;$4w[B$5h_߫>?6k5Btu6@1F.Y </hmehL7[ݬkF"n470y`fT05=DOWH:Ճk !jl'Hp8w Ҙm?V-RwD3ˢn߆y573L@q#Yy|/SmT=Ld%RJ@!ܽDzpx& _~J4Ȑ|k#!OqvAIַYZόʔ$!.PHlێ00l E?8]ݷň:[h빆Zmw`I?~Թ}t͔D~k_> \2I! pv/AˬE6@ҹ6acrd1Xf1'!vF|Hq_qѩECPeԮ)}sc3SqfCgG 6&zDr):G3ma!&:@ZI , (.sq0r=A`oη6J'M1;f*hiQ_Թfb!@9}JHO3]+O?+5N_141oHVS;49\}?!Ǯ1]$̈́W:R7l #r¿ Qqn&^5L1 [ aktI7JbCu)N ;?+.v׎yCfC5LVlJojrkA!tܚ9xA{XIB IpFCvW?qrc͊b[Fܙe7jcߗAd55!Qn| Q09T3 4r蒲L5RXgmDVHWos]I]g:l~aL/oWE鏷~O!p.*{qMZC##$'`Dr<&nώ Ew!vuV6Jfzd^}_ٵ=W7I#YsK`^Zf)g]FOYzMI9<|,u-o:{ZfKW˥?I9nsZMW/7BMFx}\_ PιQ%±gddQq>WAMwLfkJ.Hja1z/ڌ  Z fK}.S}elT|W~,nYs O3?chZ1tݛO^j蠡xLkc 3h68C/s7qdž*]7g?WĎեoNͱPҪ'.h(d9h3/M%,0^Jqu⁒Js`(q89\Îŧq!`am9P1^VvZtF/Xx1hq [9<ݽ7oeʒI ʲV5UU+5e|AY~ F}~ו*'q- Y'CĦ>g>ouFŐi? o'~w輞+0ff-o>Xd#`^[#<'$ B3ȠCByǓ2MgnSy?\G#%` - b)I`A2!" DFaOp{ffoT|gMfMzoD#; HANn_y~qށu=o d?f<߼M|a%H EIrʓCX:_[D8}oŸwo+s_?ٻ|X#?J{. /{ȗyc?%5bb'bb;U9t$ǚ_&}]P/?ƹuyyX6\^c7ݑ?..yj[G7)gp~}GSWop_Q?]p dr2 {JN׾=/^K?27?O>__{K^s|~XuIϢƫ?W0;R$s {bO;10jbPq?}3=?rRv{^-$+Չߊ8:[:VD! 5A?~?_VD~>-A;O>?|1xu3*ʃ,mz94A ta0Kw %M2[eeP B')Lhǃ:끑_5|[MUp".Hm>FPDgAxy;:{>|(Tu H#(Fq͉"?hӥ( Z)8-ͣiHUTA QdbH2 HYhd+%JQ4_KeQ?&{Ls*{rBqZ@M>"t\ fuC$ XQC8@G[9qh+*!Ysb=x] :2_L'2u5B6 %*dg9/_n|@C٣L"!! Y8'??* U LA"Cef5WEuN" }F q42Hkgʵ*`$Bud: ^æ,VY^%CXz#v*m)C{=&Q73n 3f}Pw-'u/X0]* &~8׶טHTְB`Q@UNJ-z6r`^zVydWCˇCe;rkHOs!l PĪ]vI{hI9Ӛ3C RXsF6C%Ю 6J7G<  x l:NC6ηjٯPsY  d.#>dzH=~^1-בS=ȓ2)EKKNa vK67FPԃZ(Ov)t1@`KU6 ;&GcB앸{X]&U%(s%c1If$T[Q09 u9B RO _7\"K;W 7Im!:GbuV)"-es T>vW ΀ƃxB= Z6TsRm9Jd0NƱ"TZybg'< lB2@d@\[ъߘ3*aW fQ:0X@/jj $=0`q1W% ޑphPh̠#z0-k5 ( %`>j!fb|Ѷ(Ѵ `;iZFC}`[)rRV4QVmPAp)qRF@C|9cBmks0YdE@LK1ہq۱7Bu =x`@[Q@勃m B% Ftk&fzZ ق`ӧLtlmqaoo`Y-0'iDl=wPm5R`E8Ucw O6LRE9iIHB`empcQ9'y,[yf@_XV6I]L>H&J!)ABW4l( SHuShY`d[A* pspLp"BehP)W++.(75iJ,Ҝ#46{"ҟru>ŦDuC2쎠{iq9mF/5";Ġ$]mn22>PY,p0]k6,Gn㜆 r4\L`_rCósGgf3toӈP O Ij\5ϰ_{~AUAYU?W-8hd0b_u=dN'wtNFMk^a,+ N].ߒ׌ IT8 #- _cHP_E , p(Nd}7i 蜨ZhĢb{02c:^+G0 [ZaW.>4dE Dl+# 5rz71;D@3x[U_(5?p;c严{)EIf[2)Lfc4P2Tjގ}=z `b/گ=QԦb1>hb/HA __dG7ƞf:?~dO C\a b8PX#XӴKpAj/?t(ӰM (h!ɝGAo¥+?2)>~³3346;b$t]#0:Ը> apǔQaBq~B9ѧ$FM$n-=cps9luT &4@oĉ]^/@i?A!q8t&0 k ; mX!Q' *]aPMD4kqXGfG =j,L_v~4#찭ɞ|pT^LdWֺ@S ?0pR;'5ÏA2?<>l;To=LyVlwzr*9,VbE*{%^TsOkv܅r *'\)VGp J˪־I<9P#_ ʆ1lWtMZkTv7شK +uZt+;ytt2$;t|ё]hsT]fovr7djA BU.fD1@#!! jq0JpW)|CE 0X(ͽ'`7XO)[?ďǥ^Q i31Y]Q!rˊaN%N+[mfDKtN=kii&ZP/x$dTfn;O^\t9~vdYިE*x1hϔƒyNɏT5Ɍcvӂ76nb*/]^ބ8hɻ,hUg 1|Wȕ`]f)2릨BV üw-ffj1>1A BVS2vj-6}ϛA U\'0F ][u8(.S˟("YԨwղf[ZG4b_h.Ք>6UXjW:UB8e]P*.#;fi;E:ʸly^=IOLِؒmV!J0#"c(*R)ffIӻ=S-Vu*cŢ-#rm:YKs6#.R?#͠60Arvm|03kO($ Qڻ[֗KAr۰JZ(T wnB w%}b%' tWl;/sRu2lƗ,2 !gs==%ŏT:mNl2ĎnzKQ%qtApˮCGo@b|(ZȘIG^:=]^h`"C8-+H0=P@`h0đsCv֘Ly0yGy%]~o^X=OuY͐`?Xnca4Уc2B58 !PԖQztNkSn'pl ??\Mjۻc}91;܇T ƈ8I 8z*"wq "0` 62\(VAd!2 Z£ N;`HVڪ :#pC5j?bGJh$=E(#?\(SyBc^s7Py[tӨdjCHQŧБ 3'. !$ E{2Aj]D3P`O򪆈 `L p'si}FA#N\U4gz{%G |5\qO0 `؏ps:mI\l܏(Ō}oHrMY"A 9+#r $Oä/wSglR0[6N$s d.QRm7:Wm$J6Az\՚ :~ .a}]0c5U*UQ|vWeh[NnFF`]q݃?:WtҲ)FJFz}wto5jes:89ƺБsw/%UhZd A<3g䭘^>Imݖe8`y'8A\%G$C!{G6 pZU{~on~o,6ZV3{ '~e 1V,fw'B:"Id6Sԧosz:i#u*eNwmR3P" ҈).= vەLݜY7鏓(El _(uozs<*Sc_ƅ~Y=4M.l]'gE1\i<.bXq2dd#;lKm&6ħXQCY?Yw"Ͱa K߿I<=V?w>\{-.HqUpmjTRa^=36y<o !Ă+ģ?p)^SDPb {9 0j|/j+&B~|B#s$`oivtqU6:AV  9Tmd@Ny pЍ9rqG.GNIbx:{pv4)bS]"2C ͭNY5[ Fkɬ9$ܜ/__#آ3Ϸ*mA~u=W|@xϋ&wJ2 "X x~fIM䡓8OgqsBPдP711 'YGxi6P/ۍ .|'GNC૒P@>f\Б|PQ^$ yl3ȕލ\ΓusՒHi]au-B^7h UX} X<lٯq={)H`]T &HB(=[WV2( ৄ(5j qٽ\8lZnHU()S-5e2(aQ ʆ"[dxNj‰ShdS  Mk솧]TE@#ƁeA+Z4 C}Փ6"y2b a81l5V5ƇW|A;fTLB7&4ՆY6k  'oT&ȟFzl۩#8;H<$9¬s?~^gRl;DM *B~4nS4Y9\-Yu;g\`WlšK?!-{-{;[3՛>,oxP|Ņp񤰼h rEx0Pƌ0N0jEdRX=ѸIWBx?Q ޥ/\ d`BF o;B/kl @'W E?ʃ]۶. b,6Y2W#{S;M˛T/Ŭ\vfG;zRd9><\#EpA Ā0qa }I2+)(Z9qIX!18.A.eq?{Yr2l~kc B剹XH=5[Fl3șKu+~I+BE˖$.| }\cn9'AL00,\% .\aϰHcW?}#s0(sXt1 2"OA4\=9CXbQj:c$92b`: ,)i s%'y7sڀX|]w gaLf0c^{ټ?W<(jfI%ܪ|(^hgUa=R3Ԑ<&dF (]&TA-RYI[&M|H~T . Bb^N4Iy1mN2'$us4$-þ']ɽte#h Hk]}^:Əiڷ{s(>ϑ.̅8*- H1x+Qv3AKIDٿfS?.;к{.䋈 G)-={tظKJ0.981II A*OˉY*ԕDCP|yrqyڊl3iEC`]lcIʱ,ׯ 関Am:> 8uw6HN1GXp=:Ow:r`<>S!IL7NuswpFula})b5:$+kZS=L\ i8j$`0@ ; 0"~c4'O%A'(0Bh%#ӥҷ%2H);@rmi^g`d (u!W}P،X_/ȩ86J8MUʝ$. U*ZKCud1` f LLqݱ69|&|qZbzEsr|KՆ{m\40U\ҋ/-ru]"mq)]k $Q EaS\g vm.|dFA?>ƨҬoj==$A x?d.4^!EZEPo|HƊzwo֊R eKɰHKDuЎs B'/%zˬɳ&-.D`=mm!rڦK$B>}715(׺b[7SɁ"8n.lUxЮG$jп+v$"(/ p1KnuV@lB { !NlȚND5W4jߪq^QBn34:ѩ9 F\rm oГh7Z$%! H//iƒ,^ܢ<rYk`حگJf ).6& 14ݳT% !)^xU,Eu|y:R% RbUpϝoudxO?wUv257f.wswKEjsbv44]~T S'\eql*QA;SN9u8és?g~7OK R27>|F??']"kYZx+my__2C&zI_,oxu+{ жQ.6}{w$'g}oYYzD >O\^9,7oe!v\{ykVS2x)MݳNdu=^"\;}'Nxq}N U^bKjna۾+0^_|TqnHKJMg5k"z _V=x'q-G[ัy6eF)jeH.$+eysĘbx>)jvo'Nrt@G0!t|rH#g{|_uSKG~@~TC%I̴mnpw (.NZ.L4'Nˍ`"6]9EW=~mץ i?T 8܇@8[Sd,[``6};IfkPT}Uj u$J8cg7ًh鞦vwYxLp65fzB'r̲lH6Bm$BBLib0' ;Dl D!L;{CnH,vHr^5P{Z/3D:=H)^0Fp}xg_s<"E CNZ9|Lmv 9Mh3֬vІr(BHM18=c:vpdE@#jL;K`d 3zѺK]M^Y".^ ;VNnn;& 83މa{@\`?w$a"o424cm3ph˗1q'*ې ta~L<#Ԅ#S}MdMfx(A+ih䵂FXebe)@Y9bݪBp&IcVqzq30JHFW.t9PRK#{+4n1Ǡ ?<0d^6* Fd41Bv հ?09QcB)̈́ Q3LC0 Rl""ܠ1Pr{_kc(Ps =N1br1Dla1n3}o \K+1Tnuipf]̸|'FۯnCӸ( xчP>C MKI֩;CuRqۿeUuɊf {n*Q/ؠRY2: A&F -3pF j*#j 4ɵtYpM80qrx%  i6qk?Q7%lcyْ١5^%lCqhYwv@6cØ-5`¡7UI^û mfKka|ZւrUyRW~\XZk+6%:b{Bԧ}!Y.+:]9Wr5o_VG}+|J.z\"K"gRV/륥n/ I_tx*Ȑޮa!E+z7Ι.}p?+ n_"zȔȴdVNeCvjQ{]ԍ;bO̹׸A sǓ/s̡*:. f9OLng̹k:c1AYҿNY_e]~qg4x*üC{WZwze vcs;[׋ݐ0yf=RHCbGIz6Q8-g|b/N3b6ʻo>lj-k]_s=ҽ'z =w7J~Nzmƭ8W \vmY)!k!s|k26S^h OV˙Km흤 ybs5KK;ܩd]w\/ӗ!h᩼10=eM󯭯~RA-xFC'^-nAW]s㿍N87/\Ur)-( }ԇ`|JH]L#WojLz},?F b<%I?߯AyM|/ >OEЬ Bʚ* EP2` {(˚i>/N/[> Qdž $tbb-j9餉[҂_%595E۩6X(FoWK1NA|O.zrЎj8LҨ4[;5뢼ތ~Hu>9" huGHL op3&nАY׹@mm[y!2YN4Hw~S]H1P䤅Ě E 33kdm}upGKKt]ma؋]~r`ɭa;屮5T=v+mt ֺ >.]E$'{7L6gJDoǃ60$$!$.__'ʹ񔃆<0R^wFXFSx9?JEC`=Cb8G6hcG/F<47cby-]XL|ͅdu%0>q-MuJnV! ]t ?F dJI3g5/o pώHO9}>?nsPV0x-m`P2| kKAlz[k80cԫDTO F#{ :һHuW,j47& Ff)Wuo bS]TO"=a]\# <؎nzl8?`ǒ뫪e.!ax{'$hwc>֍q%,Z+b$ϣnM֕ VRPB<`F\w IR2D[#Yw'Xx4b%qfh=M-Qs,[X/}U.^:g{Czw51$ _:]zXm.Yhܥf_R[49~Gc¶%ix!OTኈa5\L08َ$.d;` - 1xq1@59\c>'|0(  au:-x>PFF>e{KX>x$[0!81$k T?*9o<{@Ɓ4YvwCa-Z_TA2a3q8x`p|o{[ [ -@]y=T$٧So1qGWS^Яw2`O91!P h( ]x"݁»=͸HrDŽ >1G̦`Xn7io63r>;ܥ%W}f 'J}͡FTfg%m'H%1l|]GQcwd*D{aЊR8_S?u__]kéՍ 77 ܪEёǚL*z$Ct e=”t$WMm,fyGD$>eGt%Yk CTʞ `@ ,xr 6# xxPPcW[C?0Ƽ?=5q ap$P2"m{|PܰcԆMٽ[Vf$nG 8xㆤ d6Ir<߿[4[nQo+a>"ε¢KhC,tǁϰQAqJ$*¥P33ED?/7]MCP:H c`=6sȈ\cN7780ۖ(eōw.Y~()[dvͮs DUkg7Y3sq/K&OlEݖG,1 %iҩAymʔL,󢀡22==@ 3;7Lev|`Qˌ¸3 bFI⇇tvHt3cp͵cSDJePkrzw Ƶt|arKkǽ 0FWtsvd|dc)? >>w>+$zO1nQw<Ɵ_mN9[z:?-ic1^&̑(Y]'F=ioS\Ϲ ,N~^0eiy)S,^۳aF 䒚B7|s=æWx< L01VZ  ĝF- oDYg_S]kKsh;򠷰ǟ7$Ž]'Xω=Gƃsa/;麇6@mnmQąh69m<y/ѯ.sڵUcθ!Qb9z?g%nm;b `2g}ljm]*e+I,:|0Q7۲WP[@qd.j>gh1DGJ.lln2fQfK9|YG8{߷:gVW}7R஭o!ƼO4< 5o6K UE~&nB";~W@X׎4@SCƹfdg< !״4({ݭx ݜ?B{bA 3Cu׊mBt c;"Vc|񉿔2kaoHѰ9L#G>ތ.XS+36f_DטP%YTb>3A/߉;Xڹ͓wMuM7TfHMPU.-YNvh(%] *`AC&Jm Ru7BPCtgOPQ>( տ] L#PXxqْX?an5o0lpճ;;aooW=Z+$d0;!+cvl}R;) dTibݒ,bv]1p%p330t\a=ꋔюhꍋ࿏>P{q&-?XU,ݔtr;] Qal -܏;}m1u=\__]>|!x kbzw7z|GvO$$ݪ#[NFCa!}M' Mg'}D) fcF So995\ޥ$M)Mv;o{[;tOo>W yIRiwwvkj/+Q) 2KjǵURkp,ycϽTqyWT_?G~=USذF^;A 3" $`4$f552j|S"?Ofd+{1ۮ}{L ^"nHHW\ym`fkx!0p0yXyK`(?23oOeǼ^3̼Ymc\ix+#{i!F@ɧ>#Do=qi2ac]kiL.ZZ~G{p.u/,U33 A^@,P^5(&.R±gdSQ#kP+xI_rTm#\W|[#I݃h>_7&bD21G+[jd_t72q&y^61|WT%T/K էŽ)3_s} g0'D80PHwOW4:">hoGr ʲ^?Ev9+2}ߧx;溍<8QVzXTg~ȬZj)^ֺ0PLLe\IiN,oydX)>1 N1lw{rf;l?6t˘ <4;o ?p/aJ S@ϘaQ lvJZ,δde3r~?oo#@ZNIq_MˮpS|\g^nG/Z#găOk>)woB67t[oNSEer+;&=Ҡ</n݉<9x0T%̲zg.V3^v$.;uËq>ƕҍlٿ,loേ~A Sbۊ移t)f+=Sqv:=E$g" MCx%%3Ew(mrC/[ugMn]# dAmcp`毦ih>so8VN٠'$|j;e(t^۹ჶ[W:ϧ򵀵n5ǣ/\JN:C9\N/NGOdP+^Q{7<+fşLu.ɦ8\; }k$|=~<:n^L{?dcze!k6q:lc O*kUZ_.iEb^w nUzڰg-L{ξuy}Wa-yTzכL]\7~)CW1`NXv>3Ƀ|tI Zչלm&N_qc=bR>a!Q'yާAYF 5\%&tp:W!6L-qU+<Gf{ ]; O_g??*\gkGn( 1Ļuem^[22Prm5f.OcS_Ѷ;xG<;zsw`gk^F;]k}\ʼn &i$߳<$iI^3?MAo`ݘf#ÈNsan" OA~ȿ17_}hOc}fzh6@f-kk_rvmn tbz06Ui %T2K  ݩe[gnTNi.lY~[( y~Lw6͖,q랉 ;?+.lePc8g_$k@g~6 }aϡp?Ӡx* ӴfQvGaci4aҶ}Y!(swڔוDP;&;EAgRć~`^rv6߯B[tIxi̥c׉2!b[e>~kwgMUUZ0}/G\ٿs)F`:izo=ť0eh >c4?iߢB*-?A௧8X|=Y%Gx Vk| o>nư~Փb5XK%x )|u'+.ϲ-NFy'g_TdVFH.Y/s(j/1v{԰6e${f5O|`ޮe)DuE7 nx:OgvH(aI13\@Zk&@i%a1ݮpﺤ.ɫrv0<ʟlYCCKĎݼ&pB -fu97cOMq4}?; tArQP!fƷ,ǑR,avfſ .upizn\Q^:qC\1o>4pwoKGN7 iY]skr`(=-<\-st_[h.x \Uƴ'y/[0ͬ[Ż D\l0icBIoq<.0)TYgKay9Em];#j`t1(grBkjJH+{ʸ~N ӻŭ-rhGp~ޓ΃:]?u%GuV3_ءwE.i`8g չ2Lo-Y~L8\+S(7xnӊ)`oj"ˢ0ɔ*xqyry2{ !o&` u OP|8P9MKy]! {M(0ݶRw? F(iflÿm l wPxj% VlDo6zm g9}+ڨxծ ]3oor[꾎Զ{}rW3+*.!3**ҕ)k{|h4 k儍v)) HBAqr!@ 6RAxZ !i_r#>P-NAFX0wj같`XЩg"`@VR`4C /AmP_m8^i~eELR"矤Ӑޝ>1pnPU,ng@0y"3HY596IZ!XhnR05⤿ u#.=ǻN@h hm֌vr@ܾCf+ک˶u )`镢N 3L9e's^BaV7:PHZ+Vx5=FL ,|u%!8ͮ+!#z%sssJ̈6(%GSW܌rAN:w%ikNJ]1^gtx^uD)ʤsɂ3\fBϽppӓ9\yd!8) !bL᭝6çiΈeă;7wq}oorW#ydb*D#kb'0ָ0$.rܯ> W \ed3qu:|$ Qc<{KЄei V2^N7q$_233l%:p۹|Ah-pv(|v^m\%!FіRs C5gc;yn]1^y$ߝ)'.\ژ (qS R"=\4>i0C8fOu^,<~Q2N.OΨw.Zlrظnb˖lXZ\NM²@N4kWT%$1)ll98Ģ5ntV':}_a#c*{:rI͞ɢbV$2˜* @b:Rwuϗb0 V$fybyl[޶7~?aR[_:|s : vm+˛Q5ĪɁ5D.َ*5m"D nMcNʇJ{oT>2KZe  ۳6`A(,sϷ?SsH2 ͨ(R)#`geh&d@,1*}FoW;u{m.s5AK.Q - W $I/M4OGlI$I$I$I'⊌mmlpBHm4d2Fmɬ$4mtqms,HJǏ2L!m6d}FnjeD=^/;WF[U PM*07"uJVNV ^-!nrm8>Ǚ߭Eq1`(NKnzmH"xPgRe+c,ϣSU|:ÆXB6]j,a|PG.R*qN",J͓]{_y`mgƯ%ޱ5<#CKixէs[Ekv.]DOǣB騺ǛJ83vHA-VnnA]ȷ:9;0NqPls[Ӫp"2(u滬VŝGy4j2ω=˻ZBAXopWJIagoxy0B =&\aklK;Z{;W+1Edh`xXm!mYYٗk\ŵڌK]a $:1 |U x_]e(ayIZl"\s\ `(k3F^!ߛJk35PkmGc#u.F̚DrY[7C]7| H0,eʽM)/t+-ZdY`436 . ' =9[Ѡ7vJ3,g2=S2FHMAi.T ';.{OuTQ 5z |sLZ]^|yن66 GLokg?kͻKCo#@Za$.CQGAUU)b@ǫӬU; }j`*o}`%H~Pw:n*ɮTCkNp-=$)}E_{ؿqجg{s{43Իa[ }P|O{<926oؼ}XZo1 +fkyck ޻Lo :mQn*>̈́c-نf4f#;8&}!ݶ;Z8x4}s4urE񧺞8d\:M"}ZC!qbux>U_ Yު]'uZGk5=8|m萛N=.6\Yc/9ldavR߹4gW_Fš()b6$WkU^BK3TSPsB/v<.S e//^I >h"76nS/N5JGVH%[C336g~>2mhs;r+8Ni cߡ9|#W}؆:\fQz^-琥{-›հi5[5h )2ϐ@P7ܡ2Vk`PjfT^2!{22J&4WDNhzD=Մ2fI'i]A:-7-iVQg_R~2ȭڢ9BR^cŵ m3h5ul H0]cdbAnEL&xcz㏒{7*WZ!ƳP7A%Txo~V"槽bO`2ƈݳ؞W3D" \LVAΉ!LHFi#wz Ք*" woi rN|mW\kŜ(picë5uc2R,dЪc&uC<d!T0wrYubm5u34|;_+wR_J7NY)3G\%¦+ֺ2^>nRwh ސ7?Ի^ٖ(8[!)Rٿ-dIp'94 $bֹBl A4_(jFBbM"xƇ<,[nߒ\ 9[9\䉥% cc]߷F~ֻvl7;w2jySyl8훳㣸ߖD1,cOȟr?2vw+O{\.Csvn2r~$}urx8& B샬ٰ(IJ+v'^rlXF6*5YqDe[pjNج(o¢|%o#'\qნ~]ҝoNȚ)hji M–6πa, iYVvvq9FO;hԁC /Xݍ0+):ȎeswowY"1ݫ[$eh)ng0xҍoGn ݄IrHKЅ"F2z6y- ɑH=뵂,yN;zܦWsXf^zw\Q=O!aE۱a! v.ZWw~ BmWc7Ws Lba6kOǏE $B*N' Oƻ>X\ay =i5u&,v@Ͱ\ 0IF8J`:h:*grx{NP7d$R~|ay\5e_$ >pEP4  t"9 p\rF#02!LBPۖ|kI [dX|;s3\ [{/k{\cw4>|KJi}B^Ni83 A p0?sQ( ``Ylm_!=,7%汮9:GC rJ :pnbʚU+B'O&N (` k*eso鎌y; CH~SsEܼ.<55lwYokHOmօ\`bGӤsJJ/qGFK7Zpy޸NOJ$zk=/H[4`;OZ{|gsam ҹ9Gpq;ߙY!agɂ_T+9qkNǔb{ń[K nIk+a|j&4wD&1V zUR:>山E#٨eD+XvÖM\S\ o Xmasr#O~ͼ{qK4'r_٧TU򭽽o&vʺ: +Of~[O?my KToU~zzP?moE{9N|{ukcZ5l:'N_Q8j!>&|29p"Pt؍g:SmldK];ItYX_ ޚک56~ mZXˋfZ wúsO^‡jj?(KkvD{.9Òqvҫǭ^[{6cQVm;Š̛+9Րa<ջAZO_A܇H|0D, Kó 6HlK` W j;=NRo~s+E2e[:r]5R;FfndZUmAla,1?{%f &x'!v$hzk4d9KtJ}JhVp(xgAAOq0u{K1&r#UǃzNPD|C j=s2(y: W?z~#` NaJIϙU˲:NL SQfTAQ BA!]>NoM$7wvЫx `v<~~ۉ,{t~?<mh`4[:9?qSjQ >1|}'_()O߾ZOaRE ,$BR\׽,k#?Yv $OQIwAP4 ?Ո}EG} 'G a! O<%{f3TpM#yHyûaʮNqƂe޸btN}8[޶(15:_SB~f$ЏVǘ~dtp*y~ ~6ZP>Hߔa0M$R\@Z B`&Rȇ)\TCB"*7 ((6sD+4lHLB"hegIU!1또H%hM8 BJOߴYX0 ]GHPuSIPj:uWtڅBRđ8?o5lJ0$0Ӈ ct.%\a#{ӣ" c1t=VNmdQnn5E)2a1)9$4lk?`r' 'j100 ( {s(PbT)<ꭠcqhoUeB&dIO~ Ow" j wh~`BJ "MZ(hLEaՁҚ9&=P$a9H` ZH6Q hӊjġ &*ޅ8!"! 8D5BlTLXhrE4smJU#-MQ`96m5ͰRe&ɡnX-[íT&4OOJ 4ųi@q"Ÿ\$-E iEZo[w32lL7! :0Φф5E#6c0v1D.(Y+!i- 'iRU^2!EV˄I*Y`FRPr$麡ZCQ@db7/:: ʪv$ NX`6lO 3*Xml C5K4`ZaE%))FT ZriA'8+"qx,+9Jp6 4@Ȣm,Ea ll5dbAa7ldh1XHR"AƑ $ v[󄛅o BiZ@@G5h%L[XP>-uuPwSG僨 I|ִ́ϿF.1^0O+`eO`ȉDEE!i5bg(S! #iyfH*͐$9@n(i r^.lHc_w1~ӓfP~zd5D(<@RfƂ)vtÚW5B D:p 0pc68s,1F̖(> Ϭ@ǧ%}v*L@$TW6Dth5#p%(<K` $}w bиk-?t(2>P8zE&aHNˁ3eЧ2ГR B@v4:^;;Dk"60c_Y1Drm1 Yn,~ݚi`U5 kP{L车l 0v;C .\LJy|X@kV~ u. <}63.[& CIZjtP]/6G}@J!U PI8i*6akza5[Ȳؑf_si|Pm kBZ$uԳ8 L=%D5<" [ъi# O!(ʇfR U>a6'LVGT/Lb~nk琦a+{V' kl%1 Fϴg5g3}߰dQE'Xd?`&VaIZzP9ͣŅk8Nwؠ/`[ D!0cS"vY M c8SzM, nz+HBd&p!2UT(gB"Uܴ. wZs4h/8Akz5X=/GKq$'bcD0đ`SY&SEh@t!Ribu2T!fԑ*Drha+`4uƄSD!4&éNY7717v&x_;z47>w}e]v7;è^ $[)~4L| 0H4C02iN%Rt.}<+%A2g$ 4F@(p?=؀z }\\ yU/ky ɋQ\5. LYCpykNw]_?}nxXmI˼ƒB<<(=MR6=ӱԃm.li#gɵHZK۞mc:9ޙ޻55=QΰR-kˈtj( @؆鴄59ps/(5~-S}LmFf+$Rvt)%| +o\Ȧ{ ;K\oY~~w]n_8[*Ӆ.b6`6}xOf CjtIKOVWBb)LA1W[lW=u6N) hROܯ$)׻/X1XfPJ5>ˆ*ulhT?9S\z˵Nv}ˬ]Lky4C;C7)]~H s#A0s\, Jp$3jyf4'g~7qD`||b몠C||qt0nQ0;Ih+ lBAOT"<_S(9H଴۾fizHL^pM6,?32W >:/]0LJ` |p(XD; "{~){[OsCIkNܑVbi;){j?^Gu/U:ݞQ'6Y݁g"ɻDǚ8hĕ*ڕ=ȟ-'E.M6|Р k9Og+L7xЗ z$9a}Vs)/UUUUBVHha9@{};AgmzmX-a>$Oͨ|88$bg1!E__Ӵާ`@DI gAߞyww̶kkT^<:,=*lo'|2PO ڕb)}!'Mt~Oa'k0~s3c¾G.@&6/K1U`QȢ95tv1%f`CnFzTt7lxF~k/Hʖqcɋ$q{+nxMCCS$e9 }1fcq{3=ōW>Zj)k&7#g'3Pmimˏ&\򒝲@VA|u"&@q =`B2]Ҧ8YQ:Eqyr,:gK@>XugrWiR#f 񰂋9'0 :',TƒiYf`Avy{?e>{0#5 zS'D?LO0&a&4xK@JPTVuX?dzˑT-! `ݭ `un!Hm@Żς4@^+DH'< AfeaIvI^0}xq'QdG:/}!ߠ:pu']7y d1˰U΢*x }LQ@|q9F~-bF%b>}c(ХDZ`Mfb OVˑ0X<|%KZkȏHy@4鐬Ǯgk]3 #ȉ͢!L2 0!D:id2Z4ؐ; bABo:~Wn+E"d ?%"h__~m  CjwM(B$y k=MsGaݧ`uE!h`"BdQyPs}Ῥ&X}mQt [?cC 8Xd>j9Y?N|=]F`hRq6 )m63d l߳ߛgnڨ#h#]fZiI (^ Z1mm[#IldrDؐ-#(Hqő "/Vx=_Hq=:x 3GX}"tBw_ƺva6h075Ke/p7>?J:^WȍMccmo˅jز|ZssPPyJhGPtBD}.a+qS Y:r&ht͡1|{8y}{@ڒ>~t"o3| =aDvV̲p{O J ңuYh̻bm/9ptOc^.#`{yٺ|XpI#}3P#!0~ h7A2`; 2^`AЉg/ (!ȧM[e"}?k;\\s1ޏuh|~B z#$w#kr$s.f)'7ww T*'1 5#@e2 AchU -.PsS뉆%W0#^NJ*S Č51 ̢Üg ;!+o~FUq58ґ Gr`ͱfHpαr.Ҥj1tOʻ*wucu+Z-zgTz'{b1aRqzٴh~D.=W^ }ٮ6sؼ2>ݽ݌X& JRs[RU۝ަ=,1SSHm[Uy'RSDҧemdl4] %[!ܥv|(]!rXG'S*ݩm8;%1m{qCdH? ҆a}{\^ B7|ikN=lF>i 4o m6&aiűRp12Ý=y;]#}yu7GFv/B;C3,qsxMS~|=x,oje S87v. *'k\&cZ}Hr5m&S) &~26HvX Ӆسdze5*WLEr[<ܦls4lx6\n'1]Q7ܑŠ1ɂkЁzrI$u?!Э3kSݸto/R%(~ g۸к[Xt6m'?~2%4Kqoiz&FݗGd+KiysfÕwYQr/WoK謌0֒uYrZZOrqptʳ+|hf's/k'-BޝV rW_Է>aXZx͇{ ]&h6 }"FMUIQ~MMXN "(}hMj3KwǢmkFkZE$ZZ3KMZXl0ІYݚ%2SČx_,sm~iOm3^4i-Be$5o`h-UbnblO~Kt&:=c!2et]GL 6 !5wUTšak!pKط3Nww7MU;<?ٓ9H3glYmr`k @a1Π knEh nNfd fTąZԠu2R tRGH2MbD71ֺuM<<w½_~K8`ȵi>iv&Xq%DUREǚd=*A߹1$fQ]߀bA~oe`r G2u~w,KAB2z=;rnd5BʨhTNtu]EQXP0Āle8 䢃, ;Ni:7.P!|[V7Lu(J0a-shOkIڸk5H#*$(=M'lإ5ˠ/3313~x@C0O;4xjގ!skoGR4MAw,ӋHhDkRg#{ vt\tԛ:rR^!y~n* A+|9J ҦE"qoZ`{'Ձ+EC~Tr`"*M3ۜYvLӦ^mP{ 3ocZ2_[gTgx~ǣ~J]ۏgIX˕WXf//Uc*4>9wti8f L흩>W:nxL6gQ4M\gK͏t{=>/5yTG]]\|x}Fk^.ߢF3"–C60k~Q>Mǖv.9ӳtد ywcֺ볋,+N}gïM//߳)Elf~gHgV#ow-g|՛_Y+EKLgtsU'(L!^^}vl6W vˁ"ެ@df:$adrlܚDRթS)oGlInYMKuYܡq۲[o~t!>'>AUT__AɉjRm4/5,*GF#t1橧(]+.0PG(8|.C33Jԫ!1S S[7fpl.|GA@c7|Cj'R~pCOFޡ E HD2-d]_ڪ Wd?RF`C0K8C989 " La=.;cuYE;SQx\ `) BdFk9Xb]maOR;8"0ThD 3I>&I~bO2&4,f0Z:D;tӑ3<C;)BAhӉbE}č(_Oxe>Zk4ңv׉=# Le'B[]|&x՚a1tA^PO5χ4U#9go`ˆoKAIo nFvd2Sy#+-7;a\3 -s\2bXr{NC.d+O8 VHE;ѳZ`(KH}Ðh=3Wvjubmeo ǩ%B`Mm|hdXi+,8۔|.{C߾NY~|OݞAw)EH Ck/Ӿz5au߬٪)+g1VhdRf {4VsG[/l<<[Gb)#=˷;Bs5Ix;gO3܆Ѳs[=W awY]x~J[yCnX'NY>084u6S8Q7LABiHEa)Rԋh^7̾CGebC+%jkJř]OȐwaGq)AVeI>=HVdWz?LBcF^ۮߎzMig{Y+w F Knޛ 1ݍsEyHLbaF'\f[: +ʁ mn*G0WTspm]akRH[]$vmo/0k]x/]7`<҇CWo\ɁJ$ntr.Pr7rL>竼{{UcnV:;`m) 2 ZLkJk^ _V怭@J┪?/1(TCrfQG6Gbpb,㨦 >{>P*s.,@}s+8JDҵ4jL/COW[';_N`#kxI% dⴏ Rbp\Ov?:R'ooh~{h]kwa̳LKS4N$ 0\}oZ1l&(;wlRHO3 VHAzcD7IH('}.W!#Z;qb>b Sf+9#H9>XsC$|O-/Ϙ:;s)F@j'=*$/Sm{ýodA,z /{A (js*`|bBOyƇ!NޒI$$AIGi=|iUTTyG^|(yᇳFxY'ÜNꨄ D*σe˵4z"5ANhWYtz݀̈a+^^Փ (rC^95L$,2I:_FM:@{A%x"P8QyEw;FnՕ+W|6u.XL;g`-5u(P޿q<]T{vx*szg,2\I׫2YD~ooN1U< D31]adL?xmsˎ+ΠhYg>vD}&u#~.%ClS>Pss-sh9Qϩ-\E$o ;t'.rۣ۫fKݺI|YM%Vϯ-i)u-9y9)ۿ<]03[GNvv-g{g(]3=p¿W ^\z-Ash3%NC{F9G$-uÿߞX k(^mJ$e6Ԉ5̋N}[ keR+ͲB Ɂ@Lwyk>4yZ Kj~>}ֶ}ٝڶnҨ^3e9$ ~xǴ ElQoc=HrjrCaC&a av3G^pl&[0P z ];Xۂ{zz^>=Lm2 7mQK}nY$[v+\f*k˝=*z>pDF:~ !u$e.-@}m<3잣| N\o*oh慭$.岤=_ 3YO?^v] >YwMt''~nՃ8̣HτGծـ"4j4婍o㟳{}%n„zz\ߔƚ~yX1Oԟof͠nQOq򎸝lx*+wDyNuc#K${4J󅗙'h0wolj~bشϨl g"P8m[&wׅMm:Uqz1LLYi#HgD,P$wij 8YR28iER)A@ez)7{̒2Ixd)oed2=$h&1'}Cx`:D ˒%h>ai?-g , 󛕂W c *9k" pƉtċw^VrX3X ɢx1sћvd jnK=Ahfw;3zHܵM0or:=z|4k: ʪɰԅP1McRH֚djrWaE_ "}h@1,@wz0Vޓ5I/pysן{ Is#EV"&`fjj!&R[S=/.6UTqNќw9Z&1hfI2A81!q^INuW*f~5 `p 17qar8 SlW=&'=W;o{v;L}N=cy(|71n=vwt9LZ߮wص\c1).F4 뵍GXV^g|o7wUwǿ=o!BˢǪB|U%">96:'˞rh.)eZz_ w y_=1w|Z qzI01'awwzEz">nMm9Ih=?٣G pcr1.ϧ0MBN2J tU}UDo. Dou}O3;`$'2 AL0:q$puy|4Y^zhM$ggDbxg\;/!+^_΅?fߐCdظt< \`N[nv_qCJtKBL>8 o2`d /?i5w{͐C([֫9s$Hm b >CL J̬ c2#HjR+xP)rz=J߬k&N[)WBVI 7A"Gssp77Ou岶wRqRV51dϦQn`2A ߛՂڱ쑸\1oZŶ{7 ޓ,o<fO,\Ϙ͍gJOk[!w.I :.ݿow?zM"F[$m8"랽[|;'1\ԉson44'`Af/< R$<{ OdK̸IAzO&a_] 6Wƙ6\S>HI-IdÙ"jg"R+Z7 sR0fj֝JBb_v rÀWkk; pw$z+.:^q֎z?+[>sﮜXv݅^kѼ`F9-Va<$J#*+^*q*`t$JkӦj%.uI`b1)|#؆'V^>FymH"sAa靾tO_ ?whѱ?GY8֘~]/}tb&b=(|}FC6:Qg{NZElØ;vYU?.dpNj0/ز5P|!B0"ӈlER4P@vdKJ lLQ' )6/q+kAwƨlx4q6Q9V5c?ߍqtGͥhH^13[r;#PQ#=O%N_?*uՊs_m6m9G0R}N.z9XlʌgX <# :L_=sx;JeR7Pa1vY@I>X'uylBFJO~9ЂH>J$w%.;@:=琋fbI5m=2[``94eK'O_;9j=iKCaAyhis^b0b乃g ֿlX$&+Ekh2ؑUCgio@<E/8`),5fRo9˴U沌£&Od^GԐxb~}Ԓ԰Ih3!>ˏ  5 ) KG?'!2BvumsjTPun O 1X>ן퓭6ܷbL!w}NhIqC303[[ԥkaЛC?7qt ^9vIn;f.]ۮbfvđ$~CeRsxlju} YG̕9t!,cRTKNaZeNgLuZ@HzX;{;`{׎Z -ztZ5qQpz$?0|ɀ0#IEItؘ[PfGa&Sс!9m@?*P9/02a[s.J:!КhH`dzF8 27|ASXcc7[ ā%zH5|-)Ŗ@Wn%8+ăLx8{AQ'Li#BdmZT ZU9Wq[3VgA/]h&r":E65h/I{PY0y/;^fݘ<7h'#J+dPMM5TxZ[Yj`b-VTͭ Hr!b=g?o6A{3i.g~ 39户Wz^~:w?Lgg-5X ?ݟp )A0My?)>-DKK_mۆPԅ@-%EћoɝrN {ٽti}lph6/+І#gVa>;8s7sfK2'wFKRubFx.'Tb`4k=pr d KxfbN Ouln~w{OsW0moێ4&dRu)yAl; *b[O*pW/8z0͢\D,qڧń^mѣ>[Ijw|7{&mm"{xh5LX=7StAF/d3Mvm,Rۥ3&at60uY))ʤ?njjOO>91SߍN,e]̃fzO7Ob7(#{I_xҔow9sSޥ.?%Dq[+3@@)vwk(=:jKv{N;ZǪx%EjvXD!fb Y涯^&$ؐK=Ut9tk`"6M2aNRT<}$t@pIR%wSܰ mc7t '1 V>>Ԭwwc?D5P̛gN =E4LYaZP!x|2Ŵr7?wQoۓ! F۠@^_%ZX>1AQ Q3w1ǨܖQPFBH`ٌD)"F@`I0̉`!&d:1ċ@D! h#&(")%h"|i`b5GA h%I#60sy=Ea>@e7d(U&M4iϖ,Ǟ֌,c*1.M=W-$Úc0+n\w]*l2#/ഊnWɥWˈRGt+{+A~]I]|޸cj(S4-i]Q% ! u4=މ=Pw0m KXt\Ǜ5E5X= "C/@Ӧֺ{9ё@d̢J 9%4<~_D&4$W(7!L+=jYz$"\.)"Λ'Yq.]5-G-/`%^+(l]p1vU̘vqW5f Wokc`.Ɍ] W~v3wA_e'fc2k03[d'vv~|ruހl.j B'(a ͷ? 5_xk3$)"PH*lYpc$_G*V`m1-oېTQ 75 XU)ܻ_c"DPwH- _?A =Ms]au2/ %;Ojgip3E2rT9ʎu䤕䎺tpXlC>d:FpFj W!cRJj'D`=p婩Ew0PFIF!Ȣ?zϔuݖ02. :I| CR)~lD剕#~R :$ I\>$\kţ^⹰r<&9H]H.m]L?ɑɫm(loH7?(bix\=l}м,&ߙ)6ģf),BS $<Ɓ[ -Ta T7|[G ^7V*(`F ,Q fhJb!sw$&Of$8p voUu#=}VV3gы>=vy;H<DQNe iO!RSry}gzݚa3%:MnQT }wd}ꪈ+>qbi\ ne2^+-tEE]^$ꂂܳXq,FN] ޑt#!tEb2C`͠b˚3,FtaH:N2 1yIIN3Cu-J%]HCA `H+38,(6DV!& ģ/Ebz^ڤϓ-UxûTh CK {JFd7;|q&֗( ?0ϖn[)L $hH#`l#+cbhzfE<6L;=Å~1Fq< Udcbsp,Z[%Rg&`W< Z`SK8XGu0A?Gk;yn݄{Q : ˉf48aUڴsCXq^rȠ`XuS+̖ӂ&ʨa_Zq0{3NW[#~cJTp-?>V$}ItĤ;|_Wu~d[kRv,_(A aar.Z؊ 8Cl NOTBYPߖ.4'dm] C&F0H+'y #Q2iG8.w\ m0g<e93#^FM:njizܺo,! 8ia7&_7'k3V6|MzYGuq-(7QU)Ş~4 >4*َvؖޙ$9&bD RwΤcm$-=It2k5g6Wa̤\*S7K"k٦D䉱dRS<n緿uzf?^g:3e`_7*Ds"P%`{xiLX֚ٵBE}nOrAnWQnK襁f{Y b|(<KxQtArbņ@$Zil+/7uBHL$h*G1d;./!61-C/'-\s41tA'eBڡfaȃr5y [$c-ZhkXrce],l%fHhnSEÜ&d`tw}g?EMAAՍ.4®VoiKGHdDo CMLJS3 {>n2P3&0Nr]Aw*p9a*8q>kZ9Lfn%SWv'|)l]gy0✌?Ք}[IنoAm* RHC20~ n K>C+l/Z"P>AY}l QU)c߻$LyћSP{yvS40=ȇsܾ=;{ǞxBD't0btD$B -!51Ja*~pDb!,؀bhwa)9 KV&֡"A4A"IBs!dR8^W"5A~ߏYߏ8͝A߳G1/7״ظo|0 #'B2ӑÁ)0p1;r:Vp|j%1SS=)ݎ_'7h? L8FE&'O4@y@ĂxOn8Y'T(j;#ę DpZ `dHErGdy>h>n|䑣)dM0Q q H1/fp ZT&ZU==U2DTA"AK IRohU*I!tX#>;]3-CCrN˲KW&mPa3 ƛ!խG=\`O&ԧ3Bk׍Q1.f[Zd_Q.Cx0y/Fc9^%KjG@$rcWqۻϸyT`T- q<t%5 +ӵq4-=qfƫSpq0 l Iz7ib{o:|0c.*PCq1g OD 7]flN&&UJeYt\[1E&]7x4՜7yZf væY%mv7xڷɚv%6K$:'1D5mSI'/zfōzi[=a7׶ܳ46'#oߓkud"ctj'MDLjoV[A3&f 8}nl &qCZuZ[:/y~j9~Nq~_ HS'EAZ++I  1A[hL hO@)雞0i솱=;DsJ;ۖ(3# ¢* 6KW0}!K 1 Vvid,_ 3m,(Ɋ5WQvN1AïCTh OYSh G@~_?"WiOG9UcZ:l"JgmdMף60듷 qwf:@@0I fzi 4WX=H>:ܼ1 /%@-XAKKX S{3߂x@{@UC}~=8&ӱ~ eI d9;+4G*L/ΟWs^Jo'1F9o9yܷGEQgR!-qV=0׽u {_%sgme:i?մe,gSG^:l3t|uh#:l_x_WYHYnaw?x9F{I?U- ?7}7gk۴6\g„ [q "=`w ܹrąYF$>b 019`sdd$X ˎ&Ya .Q"(ps0yW=G% X:t,8AG#AEeE 9r r$4s=9 I}~80o(MK(sR0wstA8{@;?wA̖?Tsl.Y  j dl^!/f/V1zzX/njm轊??#s}"8Pd3FK$Hd?LE XiH"?c!G1xb;uV|z8y.J< |"vCh6ENmY'qv~cL$,j"Hw?:w7WgE d  >kC7=; IyE N&m1mQ܊T9 ~2"/4CWM$H0&2 $ҩ(0L_ Ru=F9w;F(<|Ui(`t+H@s*u=ꪪ6YPWtۛ`Ҁ"NGA/T: takw~L`7M\iaK:'./PJS@ߝ6K!)PJuNs>?p̧A$a>84iS\s#?80̴n&bq˗#}(OOXͶx틖eG*>mMr柧< q{zbJ#ah?0Բ?YM'NAPbx(iC`9CEx|İ{!R(AmwLHC 8XC<3)YA2'BEIP.#:jts{A2!<TJ7[:S7(~w3P >D{ 𬧨>ʽ(1Hj$ f`>!HDx*}O+҂dQ@nS+a>z5PLP7bS@@"/rwf[E"݅R>PRQD@Q R<pV "؊zx p$ M%Cn@I1@d2REC{U{tvQA[,uj5U ]n?|Cr}WЇ8S8<O25Qu;m bM44u SyIN??Wb!iTS/1d.beЋq;@1Nn8CDuA,tb?onm} Nȉ89y~XuCL2> ۴, <)Oߝ|Ď{ 3ޱvܒI]ɱp:'L!!D!;5=ȻI@DG |__y9k'?6J>߼l6 PjW 0Q[\ -@3pwN7h\.r0mnY.vMT0V T@*ʍ 8XPBA2͎G80"b"` B^DT!Pc-MaX *^ڢU;zΤ) VPp!""s)#r0! ƳT3 $dafbJ&etB9-b0{<l<\0pǃ}((eC1߄rvK(5fiss[4HU4dNjD(6mǜshV{%:2Pm3Q5R ! 5Tӊ"J8 Ɍ$bJ@Ji'Y/(M>h;|?*#Dv*X\^GLZjjnD~3zLlQB*0閘R0Ĩ I:߈}"_0M&Ǩ}|} C " <9zvatU^F+e.a !)"PNe֝_W=b[=(' tXEBmht4N(T|Ahyb?T{,dYUQSz'ˆ@0fm1.e-1[BHBAHY !j"UlHhF9$n4%cct0=FG `Fi6(Լmph9˧#x4`5~푣ujGikR@PyGqr zjnƴR8u!3$Uج#wwDoh5"CÍbGmD+l% ]32i̪jv|$^Ǡa8'C-ŒZ!V NhXh`G(xFl QOl!2sogAC ġ; Ogh'k/R$%$Ub-<*9 )U0 X^ qq IA c6.%S~Hϊ0|7ΐ^{k@Պ刞0cɅM;7xҚ`=q4NPcGDAuCCm7c.Ӹƿw~_6`E{v܌7aO&k7<V֓EG*3^v*"Q32@tߩ|Ƈg78 O_ҁ޳5C\Α4C%KL'fegS3S)cqu6DnX:Ae}9gGJ\xD"~rE(ށO˃T=cD!FMj玽~!^j&nȿtRHS`N߳{7 Hr}aBZ*̴c{Sp`ؼ¦VX[q, iބT_}PB BPxKC~G&=A H!W Dh(GB.dژI¾9uPɢ'`ĄIrD~s!?d%h ̠nDeCw2lVgKd@&T<ر@EbH|H"^Ɗ ><"P=T3$43IѻDҔnmp~GLff"9ev6PPJ#ZD#hO_d2g4r $ V#2B!nN@<9vWDtV1Ёݛ'oW`ȦB`A٤9D 'Q*nӸȢzahio䑳$F};#a5+Cq!cnGD)#Xj<TR)ub)tit F0##3rWUryN J x  !*90L, kr:7c]LfЅ tF{$E*sVe\>mAz6Cբ'lB! c MfSޡK?]p z湸­r3Br"Ţ 0rJOF?@եD9s 6$W}G&_{ bX.m,=!m?U ٰ39R"s]5_Jm |ic >օ!f*dH$~=gQxe~,-+ia.Zйts]29뀴n{kll}\;gWFwu#69JxnOni;6AM1=,@9Ph[ CArGt"0.68`ۖ!hywZ. prnp5.A4HEZ"P8b, FvGmG38g$0(Pa9W09d`.t r,f)5WY7 P9: .!>qPAm!ݴ@ >L 3Jrx.!F!/rx]1#60bX )cC< BRswΈUsMxu9m$t܋}) 7HGAM7:Md\}DCϴ"rDr=hlq8u.`aF/Q68v;vy:DQF2 U-ȍ61LB0d㩿uG-'Ѧ# 0HHMQZQ*,@3`=E@B"rj|&;~ yt kL&=s9y60;q2Y0E*vDP(NDzKJ9DLQ!zEm{t)D`8 P!),7 8AC?Hrآ!kmF:3q*n HmtF‰0tNH`ûdZD W!WhsXy#),u* ,QF1 )H Eb,#j7Hn1] S'pEaUEYSJH؇aeW5Fr%L]eˤ<=<wuz>P|; lh11Z*Sl !1<%:4@dp及GRBXOH.q4fх!0C(,bAzb")R!/U9m\A=o9#v́iP+scm& B-cщRKP uRV<6 oHej@)-4qh:ݤEBAQ3*f8!<`X#(9!G Kz&4w A`aY%Bl_`ЦLPKh~MC '8+40YfVEYF裞OHk/`i]PUd̀0mn;pCr$FHaQ ypĘ{: ,rzJv⁓$ 3o=BbHn+H$?AئD5>Se.?1.|Hzt?'"|fDIq3 OWVdxQRB3,W„X"a:}_W5wIB܁HPc}6L7(WCӊ nJtQi/@ ]D$?850n@" waS';sKMPpm5\Ih>`?~gigKC k}nϮ -m'9]> >:Avu,blyh5#a`@]RB@CiF`z `z]a!/Iʿ~1x2o- IB=#ʓF4 f+-vl'5=!wnp6چZ(mNF66@"cFh"*Z)(јDaB\n4YDn L<+o4/4D!}M(lT{4 16$aKTEk̰Z6E)]I@蕳V j)DIGb2cc!P MR4SB6m㲂Q씖> l%$! @![TQEBY$r9463h6#~)i ;|,2t ѻ SxveliQ hb 4{GZ10'B 0A/zhѦ)eZ !bMU~Îݐt$)E=AWP]yU: I]PCl!jRJoΖ1Q@/R0O!zt(I$wӣۭ씊C#ݸ{=_!f[ ? D#Wd%]k4&N(wgv,o!*QUHN [{1`^4@7At_DKK+>kݸ܎wBLH,LIت y]|T>?DmI: T,3 ,Yz&CZ3"^oUaD5CjFCԒu44иHOp:/]܌@(#<+Mq8RX&>or0W sA6G"l=t+S;kF̻8D:80GtQ" $sTuL9 /vV%H`ӬLr /p?ExBTRrqaq%5)t]M5C`FuĤharZS3L(E! -!bo>cp~`* `u[>zׯ -'0}k@_ͨzŐ-+OS D%E1QB=`Ha;Zw8&"&J p2 =5TU<Pĉ#X#ES"fjb j`1ofco?鈞Q!!=uTϧ \\f)ϤAovrGĆB+KT1M3Y՜?5Ѕ.hm @ A 7k[N$3EĄhrƚc3˙x!.3t[6$`cufv\ i ]YC62A0!쎁5%TD@kJD= v $ ^|MtZR`P=j2v][1'VskPZzLc$q2fT :H[$9Pq}dlmTI#H~r mo?$=&I);ζIm󳼝ɥ|G6rO`'ڱlm$o$$6̃x?lmo3Vs$IO ,sun9knKzz٩mor[Godkf_ ǩo3V8[u2#IG)ԍDlYcǕZ δ*1_U/\'I$ ߜcccj!U8RYGk2I$Yc77cQzqҡ̀!1`dz^=*2al=g#`=E$F 'W@[U%>dSN؎JFF`);r("Zj9\sxЎB (*`^4 XAd" .\TOA?=1D L$|Tmz h1Bc!:4FB=) "BA11)6MHo `,C ,1\)JPB) 0ܐy` 11w vLv!`[0pg~D]$te0C|*&;PC$.PO,Ӫ(",v-o )J#|YnAGu!_l?BQ.y.^w:P8% ;hpiBVEA06# J'T^]M~܇X10.!cEmHvg1 ݂`A%M?||BqF03J{KplG!JyI"$s1Œ!# ĀpEӰ\.e$my8mM%0&Zm*Ƣlx2mHn2H1cldm:tcO2NP?H8Zl$c$PQH!WenB1#) DHEu" iB6`8ypj(d1cǏqA3A2PLDȔ %5Z.Eޢ/r>q6X Q0r~$<q ! 6bB@rN:̕Nc3~=B!Re"fB[eH "$R A"i|XGI@tt%' Cccu n;8 q=AX(DpˁTWI#M1h@BѠ;0'ຝNPC@m Ikp( XqEj(@Yg'8mFt!Jr\Zy(h MI'@, u:@ЄӰinipQE_g 0=;ec NB0R,7\F魎!(ia![!w'>Hh"")bj"Bp'`qH9'0fQQ^ZQg /fMުC_HHBA0H(MSQ(J3 PL(P1@DK.}>2ġ ?)80Gw{3@(bAF```語G@WRt? "ç_MO%/1G`F$t;U'@seX ;Rgcw&X4xz{14gRx@ _X dž9ɋ2lV@DD%h?٘T=r&)wM D0h`䡈??1L_l!J]Vx:3*s^ Wя\A=Cr"; Z[n sUa@p8LAPoiS⫒J:B2Q۷uCdqdq#4}yktF fy~?ʂe$PoPQ }V?a9E`O՗$o/w?d~a!_U0: EɯN*kyZdSj%08~ _mm@&."f9G9HD[h"WsvVd$#h&A&b8$"QLĐ2wќѯr!6q 7 14Fr ozHH HJh0<=齒1_w'oP篠6 {]dMHُli}"~fB5hrLbDmH@9tx 6Z"!|<_f p ʢ(ቫV !Ak1bd ImmL4H*J"\]AbC 0cR/3Rk/'{{!=e <"T)mX SHqb!ϡI%`%Kƒ'Pےï'_RحNP>D;B>mA!g;&7p<Ġ)esJ|Gb"<.zך2Љ[rU_H8(^ b.tbA/ HbКIjf:P IьtbpJBjJI2Q$0LaQӁ'{ԁG֢P(9bl2 A*,ihڧ ,N|6)Ψԅ&eT&@rbBhqʦ֪Eak}6mt7 (]*`r\ED"lPGC{x9oPm(}5FF2$0oF٨`09*7 g[@ #ߝQ!.s_a'YIh:GSGւ1Q0kn{KI`gL) 7G"0busr>-0tX0ϢZ;4z~2-i_OZڀ08UñaQ3%Lٶ L`Hd}$7MI6hlܡpp(2>"zD4 =uUdc`af)󄰧@44 ޔty"Xt=79aA@2# {n֨["$!vgb(B U0)A,}zCך'_͏ՇGD zF)HxJ/Y A|p=HA|ԥ&ED!D/f'< ifi$Nytq5'%ΟOu~9ӊcALM4`Ńcb[(" $XosCipq=hcifk ##6uRNKQMa='`ɲFFhCb,Pl(ud3 !B~2Z"'QAJ~ Ok/FQD C$P$$Zg&pAJe=CAoq`{GS2ihʰ%@ȉT(dj% rDU,D`h,d4,  I̍"{l1Jrv6&N@4rObzJS36Mdmp1L(@ I{66) 6ԯd{1k%^e e4D(bӐTY5 wwy=ǔƨi``aQw" $D(wz2~li2;f:2?#@/`s^(܆T0)l9Rjq lt!D E䆰9e/H@ HלDg1O`4D%f-0!@6B4 !UHO)E)'0#CsoFk?$3fE`oH< 1PQP+jfakeB&} 93IS &է@ajouFXDz2eg}G`t -#b m$b,Ȓ(7"ہ#8@8@P!F`>JcCCD8i!)"go2PD(dX@>DT*&(LP ɖR}<ߒJR@u;1yH5~?y^bκaqtxAk"C᪛Kx0ALj2Zih1C` *#%"(0?sA3e`0:/żͧSҊ Eizx|H(b!?u,kY$ch!SMo%O\4>"c!{И!fP"bBĂX`ɂ,8,N5r@b5h:R?z?>ȿhw"EHCu1 _?em0аR-R  "w.؆" B."U=>XSH9~"oSB\"(q@"l!A 8BTh([ vmwP%I"A d#T=~JTYu]h`aX 8p 7x Ptu(C v 3&&:aW n&^rD ^3SJ:^z#.h_,OǕedTy@QJEBC QJMTD؀Q%Sة `!7 ( }gLN8G]"aJH!Ҩ"<<9HǏ_ULHQjp#04hRVY(`0da"vpҎrĊ^ Ĉ'@lр!D݀p"i>VU0{L Ύʝ[x<$QJ& &L0CP! *^*o/vBBF##Bx=Lq h` bl ,JS)PLE>WO޹Ѐhǻh S ه>&0]XT`~"ۙ ll BB_vx7?X۳\@P $|!8bf*6wC @I_y?#B<;aW h٢0:4GʘP0Jj֑ŝYݕ> |{du4> ɟj"\OEf̆(SfH;C]sêfSe62߮HkP:0laZ%1{G!0^9n"͌]kE( uҞ^Gl$+ 0H9)hf>wqX鄅2Jq+x0 &Ce.9yjbH#Ks$馵CuN[-fOوLdN뭯E\2v$(^ŃgXn}sQ,cx-ڎ1ܣAssc`+w$q`a2BnA27 D7I,nQI`ͼ cd\sT]\hǸr5RFK=ɔ , dn,| :maxub5t.*NmNLdf MC40DaVɬO - ZLCe €cΘ҉'wC`C svAf`FbBW%h*Wh"ULz$m_I!,DPWL1f`4"PFыDNCe%k6kcؓJጬF(s3"@a2HK~\1$j@Q2wRw^W^K<@  |Ņv1uba` p[4"sC0zI=Rԋpɡ JG [˿Fa]pDs4:9axm5Đ$S0.<tő9;(h\ T.Prc47lnK(鐖Q[9iL,+痔Ɵf0{1bdcŧ@"@%1j$"Ebn7٘AB!l949Y"yP}ߐ u:D>@sc̠q cmoٕUT. ݫ `hͽ.<۹ jAr5 g%H]L.B,$9L$;zH#A4ǹL_zcX&hF< L7B%A4_=^p R9dBҢ!RyKG_x:} _Q0TL KxģݍG$Bdei7qbä'";#eyÆ&sD &p&-Cpy~9\v1Rw?0~;v_=Mh'}+3X'lHlAP09⁐PB0´` wjYVTAIbLkf)yCؙ";JX՜& lHZFIA6d!%`L!6ЦJ3|;yYM+y.[i[$]w9j.w b9L8L\BB'WS@_̠@aAEDTQATpa(Yd%;Cr:%dXobK l8B ( 2)ZM`bjr`|mrF,w;?j 00Wg=VKIKZX M2"ѤԯYR('x9R%BH NVCvΤm5#r2!B"{*vuD?T.d4d>Z2dPnlD<&,$(ge⌺8Mj0zɩAr ([pdsk; vPͻ ;`|ɑ"DQ4e#<T`hML`&w& ) 0 aTЊFDuWhCA՗ ٱH.~ CC]NJ"& J,D~=<@)49؁ňt"]+&U(TXVuS*CKu'm>n[aH?{b3A)8 0q熊l~S (=&$-'61pY,*SyX~0tApk wtxHN&Q>`PGQpD>;"bɭڡ:OԨ TpՒ XI3$; /%HAߏoz0ɾ<#gRFfHN0"᝜SX#xR. p졄 25ҢBdAO>Љ**/9 y+x$S?ICAX<(]xX/ad~ }Dl Gi0z_z~C䂗eRIbH4T"dX~˖T{uKXA6QM=z;u"j# s_``26slV`]I$D?f&bm틼tuu$zq`c%d1"oIܨ\s WoOЈe 8ʢ9'IDyYoXH\e aq?ÿ!6c[1Ƙ~-_p/6J?,-C`S`wD+ُeO;A@jmᅏ^Ń;my''nݰy/#$p7Vl{1E]FA昤J3R9P>w$aE$ ¾#@X r@&b!dWy.DQPz,d2h7}Π~(L !0h/灰?5?ϹthS)0!dB~߷ (/_ y7xΞ5O|R#AXVl"@E:^n6mBqxqY*CQA(}w H5"LF۩84C)U;-%: R2:a+9,\`Q_TF!&-t,y{ac~W[OS!0 ˍ\i$#v#+]OmQ\ߋ"DngVժM@N\``k?%0]&e R~h?Pqaᳮҙ:g?,0iG%`vLN3"]6nthT߳$t&: d;{UOmxd9Α7i2+;c馊̠(`Y<_n\=U]-;4z D 4b?ngw.{qtk{Pd5oE 1k9 w9 AFIS3E ?ܢ*=wϭ|/DCkjVq.T 40|ЛtJS()IEcˬXH5B"r[^әK=|^Hv@䖇ly rA[d:=$?={}o/m_n7xQޕfȩZlrDFa3p"Z+>.pGI**}S}T3vO'NI$*i+Ctkr~pdfrI5BL ˡD*Vw(!".2D#bM}JW(k;H;}Hz2$Q p>4Biy4<70R##A9i`0 )c10,żaG}aD/QW(+2@Y) eMI{iJ Hs Żո9)o  8/H0e[ 3x R a1%5EWɩOQ #`XY9j XԚ#8!0Ƌ.RBb!!HѶԓ_)JGC5Gxy|<3"Hj""IMW8\$w4p)q1@rɀzفo^Dk ~l*ֻ鞙Uhm6lcct e&j M[-M\?c'~.mt{ubBP(ML0Ʊ1I "!&`a`*By*Ql1o . I$Y 9y F7+ +5 MOL@!I+>,ab=rY7{;6Sl 6pD$¤}bi={oY|r"Vwlx>jH jp4 Ux~`'On;~&yw-q@DhK{;Σj.r~c6sc!:{uB {gIBI#LM``H)_N98R|ƍŌXaߪ9Q{酇bd&a6ƕhA"wEۼj^3h ټm)eITOBc\cֺ KYlmjx6 A$ {^ԞTSREr\:n (bHC xGDhcTe13(Vdk7HJcNY$5:dM?{ݭНKE#Pl ťr|Wq킲JK߁xbGN bH {}ff(#:vll9sW7anQcf\SJ9Eԗ)~%n'5cq~LEIQH^CLcOcǵ|Cp7.kd]4"iMRwPF&q?pPlZ-CxƳƘjT=)hyLs͝n7{X%2Pg(N&Z)Ɲ و8 YG)`a L9GiZe0 <%-(7$ϡKe [{7!ѠUg1l'Snhoo|1̝4YM5E(AR' ի-CF8vMv $I$6wwwww}6303I8\]!Oqo̔HӺ`͈PKE%p|o%!W)vx`I IkwcIH+è=4K=83v 'p{nBC»=^kU:]^ҋ{b>OF hp{a<{w(z^N Vاxq$yvh aYmw}I.x *L䠸'ia=PsW/MaM}6StKp4ƺ{+a{ksP@"NO)W$;C=a3@g w! ZڃUQE4 EZs/7~(0016F׷@JӬCkY kt!8 L%)LSPNs04Q:P G}߱⎉4J9γ#`Sq;S(k\|$1@T1~.gEv&[u 9sM;rF5 QF BA˗ua^bXwuJBIhGyx+ыėphRpd6V D C|cENXSrFMF[5Kzna4ZKlIM<Ռ>sI:rBIBo-t9Ǽ4&p{a!ڑwJӸՎgoWS[K g2DҸ]JJ;wXlDDTycn>PQUOGQ (`p:oG6@Q^/3,ø6 = wP>A;CI$vuTSQv1 hֳVm3*m2s32mS3-v33Vm998>ꯅߎ[tS :,\qёI CnΎ@ɯj=Ԍ0Mښ*t3'I) ǮeE6j*rmfkY-ˢ* 42ri)o bHN <>0C 6vE^5ߺh4^"lbA" Fb癩(q=~G(bHp@:C4NvaM [jno!9O$TSNkICN{&*=#d%:wgBE u.=3,yCF/4B1rB&$X>_vfnngBC @2 a3:a,@ ͊(6uJE  =1aGs kZ#p3eUTFm(9py^pE5ćݼCm;dv$J:I )9$ vu)(*%M0р}>ay_7"-DU( !*`0E`σh0QQ5ID;:95x ! `P3 Y £Qωgt6Jh t*a 61NBaJ$C1 X:23Pf%%0痝 <#s_'E!;3盈yyE pȹaloQUEQUEQEQvޞqiy7bѩnpn~~FE-R.ȗ/AaQ~Dly`re7+\8w9&QÁ )HMКyM,U wsQC$2-B˖%KX'R)V5FwE WOrt0~4'w@og DgvM~k>do|f5]/ΊJ;54-2a;NzoD%>Md1@ goD$eI$I}?9k˪ 洂1 $p:GPCr`Y G#lJ'~2M lZ{,Rw6F3{5!ft`jlryJU^Ty$*9gT$Q2 ^[|Geme D@Q"%A[B:'`Ogw]<5r<~gI':ÇzLjzɣը*)ޒ {ٛZŋL̖U;RUl0%s Aёi8 `x:i]Y}iM[w:ϓo[B`Li콟IlDDDCq5mۥ+]A3!iљ@ٍ#"L|l'O\\r8?NkF:֪km-clm|~'(((((><$Nj,!#-d njecFH1wV.bl(J&g}:F'&* ZUGMf $&& & & JIUET5Q5MWl$<IYM&bh)L;o,kuhi@횪3 jvcc$rOD=qN1VWKjZllm!(םDQt?#>^'ӷƏ I@:Ub]J(#RQ/wڶjlxa{pV!n|\rNU'1̇n\T= AXm'TǺCo V$"(/i;L;[QgoFCw!#[j@ԐT$ +d'8Ee$4Jmc$1&@~Os7~o|o6N-8YOصn&P~*!׽&ֿgB|tM >D:B rs+jG'a]!hCY_A1Bj`P-!IG4 a@`b_>tUO^ǢTD@ R,?=Ӟg&IR"pRd*AcX°( h'kFEji6QPX4 m,`4f"@$@ 7XƈֹB@J@ԑN)'Z#N }Ơ @$)@%`h:Hs!BLUmc"""""""*"""",13|L ܀" F$"Ȣ(h( KNY09`tE d@@Qu`2q`yXlnUjL36M(9U]jt8)$!l S@CDn >Q2&_D8 GLB+eJ4Z֐TբT($SaEFØ^FF `! T0D0 oUT5(:64\IeTt;mm [8m;eR$T 績^LBylv? !m$ӳ+֝2Dr șvaBam @qq$=A eH$ml9hި";8)x\D#$6t!h}M; yة@F(vny) b\1.҇a+]&!쒴La `Ȓo@!Z IPOtkYօQ a ˙ :& %" `D`_|~#_a9d1@!RE0ڙ% T`;lEMLhܶ61 ]h9FZ HhyyD[A;=mN (i(*h!JD`RPFQ  Q)SE5h]@̓<F.ŸQS!Έ7odVcSo5^6+b:))5J!Xن3жM7Hns5Vt٘! IHSLxmb%)θ1I%塖+`{d$DR& j9(`Ђ{?{,%OD$@0QyO j+E*H7 ^Va}M&bL&Y4H  ad *)s\Ч,4JL@a@6 y PB|VХrFB)=lh"Q`&ȋ"X]mC$ 4^D64ÔGQk 3"T*j1(IHS3ds U!U t@ñ`|nvVS$¤=k JbHC!F HE S%V0x`Y >?K$PU~#9TƦ9KD!x R!H V[de 51'B+A`ح¬im.N`tpfG;B 1xrANߞ֘Q8 РC) چdYȖ0գvvlIADP P#HiO!C(Q^@ocD:}8 PRGxF Q) AR/E:P-vCpX6toI K~fa"}Ƿ mH2( }iL5(+m -Ar;K2ʡ}wӞcEjuhE%4i$ Ґ$ #) Z-Y)q*acAŢDy*) b5R4PjQ$>_Bҁ0`ZYReļn[`mm~hrh\ʭY3 CAP!lCrx%r#@Q4abт 8h$_(!d0BJM'uFۺwE6P$4ӭF5"7&ak8֬0BPQXJ)i&F72.7X8$G*D2J쓊 AE#oY \@r YQL,4`"؂0j41$"OL " T r=Tܠ)870V ̣$jMn9 ex\< 7@.sJy.{I2K7PYDݓ%@Mrq:ET9j[TI 6087яk6Xq\'Kjb`zЧaӐ oS>@TbR(@>z1Lzm\`-lFbad#*YY }IkN2a7M XJ:r?`a$! +H f>-i7GT@%2P0yK. iDDC#5TS}PpQAAת~^'tQ~WO bEpcc2<ϟͶq)9<` @X`44QgVA,Lj , Idk.ƻG4"xXPMHCBV i(30P2L 2A 3F X J "HpGE4*z+_  P:)>u VigS4 &9U7-gw_=:Aé;#3 #CGo|^LhC D ;*(y)?.XCX 5̠:B(~H.v@"fPGAMT6#Tf!C 1c1zh7^7 R54 BH=a'@쪇4=>B,DSO>o @2/ڈpnI12 ݙ AS䃍$ۥC ̘c [ZƊ 6atp͸"Eᢉ,هBVD"b6Ǘ}qJPati;.t*,6$DoU30vEr6&-CvZj-edň4?B1rt|L3#fK0)`N3 hd lc0fd Hn5XzF0 S_]zҒIj j \ηNvw~A=*+GD;!H;!GZH$ D$h` \4qyւg/qL{&,WA(3Z\MF< pgBJHwCŝ<Ǿ+`2{=GSHݢF=qG18 ZH!zb _1@'K; (@MRZB$B cUE^eG l5MiA(hZ@i(d;^2Ѻg;:ȸb'yNߏ;a"&H!bHNVjaL%;GB :*T&!5ybd$;`Q?ݘSW?<A Y#m"mf ~&D@?I3s};>$F$@4F%DJ{X]IE5 LjE"R CTa~q66ÂV9h:N&3?mRj<">)1dhAjCή=7p9QS Kp<WP(J'&# \H:C0=^G)(zoCݔkӏ?SlC!A{)1gIIRQB J3̈,0>Aަ&Eu.C9!M$dFƄ2[Bc`8 AaNcQ H[l&M1AkpF14DhBe5AGSCԦ2rT5ɃhL pDDN9=|{y=@M !X a @@&!p10s Η~rBK;4@ jcG5x/A8!D2fY集 %v-WdM$et1e(F*ˈetC2#Mؒ JB)o^PTz~gS0vɚP2 Wp765f@8 dA`ak0V2A X)QHa-A$9C40BdDP,,@A`BPH&b d!D,8# )Hp\LEf K6,g7zY9^H4QM G8q0~ba`! 0l0HBx M4444JF Ѕb:V2wyZ ia6wzBh@1˜}Bc RӤxkI ^؉=PI)`= xJ`hq=gRI!~RM!ua)Ԙ c >(QJp-b '|O'5dAH!_(WtJlQZF ZY`Kˉm4gb^ ϝ7+ėoqn!()(0|ͻ;XUiCk @%!KJQH:[}%0'^xXu1`zQJ?>{q;U_hd*'?kLzh|Qbegq` fyywc"`d!tOr~,FJ*_Bs} y:q4)Bm  .3!. ' x uҸ8Qĕq`X)R!BI%׍SoΞ5W fk;~0_?!2"ƀ:\(0=(Iqa-*ԂR{@.1tߕ#@!eY].rdGW9ks_~q~Hj$@[4hL, "%ce" b iR MF4IxndC1!80tjBG" qAcLk1T D&Di!H):y5!İ/! 65ĩtbJo8lr- wҠ F$gi e<} ! 4ݛFl&)9hf-Bo-Dh*Ktղ!ZhEUnZ1pQDZc!aF#p)DfTa .W!yM a;M7d&cƊ9i")dm[0Y DAH&75(l1[!C ƸKksH!7C`HSxx.a!"[@"0\M89QǽZP kmif$ۃ&EBdHa4RIo8QdC ȡ4I%LXu2U$i6%Z*$5]Yj< ˹YТ"4A Ӄcsb(9c%2q@4.ԑƖ 7 VӜHiJlHF0V lpHƶL \"m6g4v`=D (I 25E$aăv7󸹸(z$ 4v%A R x?\;O0B {EV!oJzM6<_9&׬Iڀ}7w׆5oV%m5E;deFQ`(6+`A#Cm6S9ۙ꽟 57Xũ&2N\ I'︜J@(o/nc9˒u*EK\3pHeJ"s bd^wlu|jfT _ã@PWbytT!>rCi0 00 Er ,g2aKFa Mh0 htD ATfdJf`K0 ̰ӃO-hn%'#r\G|`[(hyw 8FBө;k2K)H4d+H5r(Fɢn$NE(s-@w4f}`m*l$*BĘJh֨id8XdUQ+!:w Z:ޟI?0t}#`ۭOAb=2nAC;y:tnd^$&G=r.kQѰ{e42PBB@  .un&5rSa/}n^<Ũ)֢ roOm負ނT^@)Q}nr)nQ2ZmA}m5@(' -@OCaDO AΨN2=Q%ͭ `ӊt eS텖}|a_z+mXzz1kfhYjbaƂ)Ѣ BWA&e-zNgrɶB8gMEj7\0ܹDLQg0cccLѱI{O2&BQt+-jgXjM.ndآ M΂*uI}hx|{@C x%YQ.Y  ZU䄉Ð8AF˧ $d."[kA{ݪ ݴDGff\:lg}x[h,hD2h $̆Ii,mƭx}9!c 2#`JaR H #+hCa( QU4K`@i!c؎GAR?b~hCD|aO jI~ aF=F{F1U6q* t\/HV5y˴2zbɆaFH8\>0퟽!^&$RER  $6٣mΤ#ҨS ͝O T6 yKt*s 4u 5QPoPoo|v@LmSl nh(D}N |@:uyiv 8K?0Ck\ZԬ̤5o8PL܆NL 8^mB CrZ"s%_ɀ9$ z2,e 8a"oK7jғX~1kD Nx_V8y:] NCCpQ-p]Bdͨ!%&̛/@` c滻 G@;paa=!v~Ct'&d̘. 9dcy?Ȯ/鿯}3@oĽ%єY;0uDmjXzbb,FѩTnALliM!_4.#[."3P l?A>Ԅ`ط oW; kájgTۋ H\05H7\tC͢r5ny7=w!W= }ap񐲰]+Č>YIQR^ys靍GphCOL< !7{DrGr@hkO$t1]ta=pJdoߞd݌k(͙V WH [n XYsq7nIo|h;,dꯄ£1L^ny&沎4ͩ4aPe +Ү,Ijy9e!sKT; 3n]:@^72% ,/8gu19^?K s$֧`tWK}b_ƬE$&f?, t }Ӱ1dž5ŋ(C&+A%b87qnC;鵉<5&ׁRB mPd*H66;.ل:qxn݌m6X9vK 68*e~Btd m"8 AHBZM!WLĭIC V6c }cGjO(x2 fyn<@ ^C,CX!m:Ջ[ {Z6`nDѹmqP|-JF CP:Rar]B/ڋl 2![(Q)m );t8dv`MJHliBN !pS`L̑/R`p)L r.7L$)c.dC6(08kӅmgkBnxR݀ߴg}#1HkX.P6) \αh ϕ^H@;É 4|91d7+n.Jдb2p;6Z @57d%Du0%v &0V8^ᲲLv֖ k30b껟S]CeYR=C8L%FNlv9]ĺ(3߆ @{KHl@Nϖ^b!%76I C@83>Kk,mHܞn3g}FJ H ,2ӻ 5"@QbRe<3H2Yd s6TOyZsunKD{h+.g8A/0t5m['+2A`6AdpЯrӤqh48mpWLa2%m {fL„Nʎe܇"aW|l9sQ8CG 4"DH&xw7zj ILRHb.ל 3\e8!dR e顠y%n^qڶ[, 7Z6[mJ*rЁ:Ӷ1[o tn#L 6\ÌsO܋MM(E<~Y]K ՐCoaZ,94 SX9.HX pn 7$O۫`-,&YLT+w&l"}o(fo(t'#Z\mwban:95 vtcb'5d1al(fE1r-;-oi0;O8!=vb\6{';0%sq5Cc2 fŧFcp[HwLpy4k-Ր{"!y7oFGlڇ*]"t磅ΪFI6I`s=d5)d=p0s}vCkCf\Pӑ{9ܬLhy\fэZ( 䟕r2+QI~Qg;-baciG!UIp8pYL|Bػ EZv^I7#-ݖ)?y&̔I 3HaUek³fhqW0Q6Oq;~pth,!L I"Bja0}L!Ƚ.|m0D&֣Z\,[Z aWͰj0P DԨh7G n%++w&[fN;y 6iI}7_ u~{E [V҆Fci ab]aTo Ů+k#slF]ug$Y0s_p4%ݖ|δo;e̞SMfy1307ALaݜ75&+&$2Pr1yьPƘ6Kbp^*RViݙ3 E`F kG&XhuN70Eѯ]sI4vN1VE4Na1M2bS_{NuF:Z -[(śLpU^iš|lL5H J0SbERe01tdl[ L$F h (/rH$5PkvWe*wXa!TXrxf`agRRMt۫zE"h96yuB6ɒ!0Ƙg&|X8UURIJhC*V. :܆IH{qyA0DiH$Or 1r a0FEZP!ЉB0C Ⴘ3'qp'6+dP!, t J7LLs x0: SA2DBQC5 S̄ufu^^.k1UnfY:3JZtݑØ v2@+!8q8n]i4M4O Hiu(it J* !Ɨ"O%M> j  ;CND7!зp8x ;G u eaҺoeHM`|J0Ci0p>깄>yQE."@`YC^($QOR?D0rɼu)p|z:@K2r^hɡ5+<1TX2I A4ˬj?'i"&Qr~D.%bp;G h z!c]GA˃aA1@;h` mƌ_6?YB lY*76 ؞DKzHOUMz4_wƂ2 K0xch! &("$[+AYC8t,X2Jb  =%"GDU*ƓRcd~o.@!KqՂ5[%3N([;dYC>6-g~ $d;`a0a,E>uYuma0-JL>k+0=aiWe_!Uli(olΐHqW@u$ iT&"~"$)N\k dc ;Xeءܹs Ab LHCU$>!LQ8T8/L W4ዋͳv \v_ /1]n>.3mLrfyhFumr于աg6`mC4A52 vJ )\1+Pgnsss;p0ob 5:a6$Q~wLɗn~*Z1ҨpͶǍn&sjJJ~^;6qJF!j3 BTrm0(,m"i9;捤 er6.u|:`PazXuU(Aʕ+}vVX V6 gf JQ[h8"j7!#$;y<@0 ;E* ˑIPH2cH8jՑaO5B%IO5>Ú31 0 1S! cF.<^#^)KYT@@$GWy`[TRdBLra<ؚJB(h*ZQ}gdw9%*lƇ{۬%) QȄ2z[J8؝:Rn\{1K}*:?!lI7}U/ݻW#j> TC'- r 魛KfADDD$;v[B[A$˫v|Aoݙ l  |)"% DT0* As.kiLe:kN1XR d̗3E.`A ]Vqbܪh9^P1o7r2x HqȅPAg @Ĭy|._VPqzG$&~$a3~ BcHbP}@݊a}a;Cؙ}͔X߾H|LF THBޕ B.໠6.k*`D'O<0":0߷K}HS )HjQ +OYXq=P"l6rN^ FĮ TaGE!MKTB\70cXqCK##[Z&@1!(0~Ooxg,,r!!.e@- vej?~ϧȟ(K ]ф}]A@ ]c9fB@08Pa{L0SColT?4 !:#4#3A}@=:* Rl>dsk(oԭL1zr֑KO9|؅k/V &"A5TM@ oIZT+fLs-jlCY YvwYdtX`%\R9JT6rUkɕ@NnҐgCRkLc5Ol3n wQ@ƑfagcV 91$q .eS\jPK)|lE)s"g:ʴzq20 bIVm"r ,5E;Ӂ q"6x&pgytpPX`t8e64M4yBYBPvS,AJX9 9*"buOlTSn,Z'u#iUrlr@u4x)a$.V27~FȚ,#ê_3hd4mjjƠljfT%i ]+@LN@i!GóÏ)(Gn@GJ,.mxx "}84 0M 4$#w;n[4}|0 bA{TpTCY;uHFy9㨳 FM#a=̛[XimtVv=^uohd& bgaTve*cimʍ9itBzBV*bX$B%Hof΄Aа%$:Adc`{ʹt={"-1ϤZLmn+$;af)ǩ tH8;Aq6n,t+zݶ%& '`Zi u\67Nxc+.7\.e Yk}B\Cdj dhz& iM(n-#tsnݞ%68?30YtB;Rkf8 9TgYI8B7S;S>nq#,.-M&.\sfTO&WfƆ"Ӵ(~)W eƉW1]Ї`! ֨7%}+lѝY\*sδL;y-H 0o{Dyya<!p+L} /w6dK+'rƜa*ge)d&[/D08h-HF"c3~jVU)u( ) ev`Vϡ,̙a_],ftKMxշܸ["ت &dT㍳:9hZ f HX3"s\\p)A0u 2';Bglq.Gn7T.^x֡>`X R~Wl1p r4nY/ճq"'GP~H +R$@0/pkso`Hji!91VDZQABC - ʓ HG/ a>( J£?60$Xef &YH63 `""܇W8n% *}Dy@A@!lL @3,CIAKK$0$& kE;KgL*l2H!B&O64w#5Aaj,0B̕dN 344eK,0?Cm:`!JCrESsiK" @0FQ@Xe;!-9@.՘CPl2+Y^d' X{ ҋ$4m\SP; i0 P) "Bd  .)DHؕ HCD@ %P 9/#! .Mg7J>b!qqG|!JmO4oc/6#]MM[ HVàls.IhTbEXP=4$"&;zR ?h"}1S1K =WQ=;6ƺ>)n' 'vvЀEI (mEC&;IX\ȯ9YH@*&h^}xD4a,1jo?fyc_P1]}G6^A0acWN:iP.XR~S˵Bl?<a~C|8ԟ!:D23ܟVq$,nac\pGS|`( Si jeM_M\d8vp᧖lH ҃dmv?BFۄ9HI !#p ϑ(k(, D2ǰr|R@KXD6=-j@m,V{P K߁}dt2 o\%lB8p`4nn7 FAr,кChTZA.W{bCj,Ha"ŰjIW.r~˰1)l':bXX FYF @$DkXѶp` 0{6!1TXaLf;1@.hh1Y\C01wxa :0lf$IQ3seZ|^g^K )YF7,^3T'3\뉗h1*PK(PȔB T$o FrEr$("1kNi01rP(rǍno3A1*0Td]g!ۚ=m@rknARF, d&ˉNJ ]rvE㋥xHB6NG`9 g 7E#%ɳ!C8?Ƈ:kP%}`~ߏI`1W7d1<hX5-eUMa`x$p?nM4\{A.,G4ibȝebId'DzGp.n⾁X& w B6 plҗƺ B,GLB }%!%yD '0E )OE`v!%"8LE/~<F'qA*Px)SAI[q&FyAЩLQ5U!` E0fqp e)$63ނs̒"80L]YEMfA :#B`Kvx,M%QheaRwg/d?bge΁$^3`O⪐2C%LrB*Z)t@}'T5!B=Zn8%ªd&L!2DDZx}/4K 7m]/55{F>@()x<ɴI{˃4  LB@rWVa>1A9wC06A.4'X :Ҿ!꜃f `0 c5VM/x_`=}͗Qrb+C7=2zy`8PATbHCN*' =/(H2Zm,c(!aB@;S AsrꙊo R\kHkz3 B'<2D-O>3:y[!!DJVvݝPa$:7A M\cTdЀ]6xD T DR*`cT6w$RN^`San 9^5w@purG;nQ  w }i|̌(H4,b!]K=7W]Ȟx/C@z6pA)N2PE&Fx|CR򏖶AX~iQ 佺y/P!Yu{KT2&-Fb"vK˷~%^Tr1v2x(0"M1&"qV~S wzdNBJG ArId7p0"׎.HD)!Vf0&Ab(QXPq$sZDb ,q0@ '&*c@R"BSDD**!(iGqщQ 2N'޲`;ځh`0  ^; tO*_#(;B0'MRE"%o(L /?hmnp Qq 3M2WTdtZ-Fd5|* mL#V AkZNcUK5-2` уLFN2%jR7 aA*R֕nq1e(\Fĉ:bV6wGh$2i@tH JbPua3JTc 5102WCf,Kv`'U 6nm_(chA~A`F3f# 4E4a'XXW4 >$0la'UT/ɁF%s[ѰR?ɃJB $P(D" % p|CC(u!9DIǔPB} jJv67 aMQJS5UUQkM@.?*T1%G@LT =2 ?i?4pqfd*ex?n/]?(=O?G/ۓ<^|y{3ao~/e=k._sqy+{wnzw@uv@AEQUbE4QUnfD_(ၷ:.r 1)J 02E(Ih Rd RC $b@h@)Q)DJBBH \QeJ"2%FT rpp *rAC HRhPBi!\HEf )Ĕ `!ɏ`H? t@~3U|j`R"!( &@ABaڇG۳r?a.D`OGJ: D*U%2+9P0 j@$l!- IhuYHQwhTB!@R JH'BS(7T:. $D3L0d @H:ttA-0E2N*[/S7z NsbOJ u%B%dyh`a!Z!H($f BR&b ("%$ )9LɂH!T*H"?@d i?đ<:#qYv8d1Z|0^L5=-Lazlf#=5Q+\d DFzh?[_-'sl z{f>n2M( $#0GpX xt"mWl&N5O8T+Gkt-$l*%-DF_y2p=&(-"ZVm@18T<2!Bm!ߧ h+,?H)mo7tf_q] l$M{ m֙8m7B WFF_QCೞ](N)XM,.aY z3$x(iRĽ s*f?e5;qtKmx1p94&cyhLCOFjhc!ªS -H%lo$րT֜HJ#ϟwӬRH0z62VXZ=6("鍙ƳB{-iNHI!u?(; -2zO@ꪊ*4$蠰bu?yخy8#ۄ1- -% )WF P4PY?PN'M@?2v#‰Djb`W,!U=*NOi yh7 q %hB ` P! =< Ϲ@>t7ϊLBzPsn{@,A@"(R@pr[0@ 4Y,dA0  )0t, p0#L 0$ !f Z19sҤ.Dj2rfDԃTB`A2QH`a$ J$Js&RhB10SI@eZVCTB%G4&GMFb8zͦ;$n6RM#J6kE6`] QB3F}]!EB]$"G#J&i^:uaEV-(OkX^?v7oM2B@J| %"6A4AR=p3@q9HRȻ\5)zƤZb<LJV ML gBzqͼ !CIPv/#q:'J󦖼AB(UβDoNT0KJ8S/Sdx[{0Yi]GZ9Q L43ME{Z~? ~@q AbB!)ZiB1ߞ т:Ka|C7mӐmע>p> ? #|$XۍCME4q?tKخ#b>b!xiX.ɕh3(H˜2̘n!BI (HӸ+!i3zԨN"4 b*N 17% M Pޖ dSTʼn2D1 n4!E<0R,Wu*egv%y󊤘s0 ?1%|t4P>_F>NuwzmP^E=Y 4P6vi0-+ _'fWhdld|O[$e!lˌٕpp{.J 0Rwv*/!n4Ŗ0Xz7wMN m|2vjrg!p2)Pank B hd0W 2 6۹h䘈.AX =X.(`60Ra X҆bbfbUd%`$zj')<}FOh㉢ tPg6 37'ώ~DfLoNѐ=RM[|8.*{tgJQqY.6:k4w|bJ7źqΪfoO07؜3LƂ$h8FdHj-j( %KikjmDO`cr.B{à|M"țD!j] H{5S!^4929X*iDP0uf71NȢ 屪;Y[bQ`PV5E$ ;T "~~ zLCŃ<٨4EPbZ KJo(uτ`0'6GPaҚ2OqVPA";rK-1!ߎu2vpr}U_UU A0t1C et @+úM.?mB/?8v$6Oчb8nZ"VEUlڪkb*jDZh*fTEc|`6SRe4݂NF'N߲4 d17,EzRdRxg%)ds$& "uPI IPU)D# C5Q$ %%P%L+,,P0A MP@>X$$(\fd@ Q%% j(I J(!BfRj&&` BZ `)*hfddIf]HJ "X)&BbHfD&)"B*!w},z`P 4t/C5 4h ,#&oC9ԁZG͈_υȒFXB|1tQM_@(!N56 h# APH]n+3/0@yA?N f%T$L(*i"$(" LIFhx %l!B p.BF&!~^+%6D)*TvЈU5l&وs ĉb c\s8%Hq4,%ftØW$BpPHu 92,1@(H bT$ M{hӇSݷi19s{;] Y\, P6B;*x\ABv $JTuF&h?,P^xxp̢2-)&ڠ>[Z'Oy5ڧa*#`hH"vb9[G1Ius 삷fRV6pkR= L !# b)b%K4LajEqISC0PZ%*Iჯ`d٬1]d.G ~"j1' 0* 0@Cgݲ2HeC?@?)nl}?{pRTcT4SEufGf Zcd! ]'lg;8 嘁Dٚ6 M+ 4҈6#cqJ pQ4d$j@OicRK?n03\;/|M) ;fr0>P Tm? mx2#*wƓu-y+dP0eO"&2&2E!(BMM%000U;Uy/$R(KH!eQL(oRQ@x ELCD/ ^"=Ch> e %aENyHNvR栰:;;y&(_5?=ɘVsH%{+qMƤET4|5 ?ϲt]7;N3s+d I `jLhQSӬ'Ɂ3|uцƹ[1!#@aEݭ#n@@1׮k|2f 0HNF[ q)'Se(@BuNjVc2@ I D8h2JM}1춃֍hfJݙiw1DRh\c04)'~r b* ַTaԇ&%$aV-݌ ֝l,qLR$V P8 Ƈֈ9(t04H85QdD(:+η8}!'@ 33EjXPDx8ds#K1ٲ[s)\BLLu#^dDSL(.+QfƴA*4ț& O/b<^&k]' ]LG~`\D~2S!f-,\VvV"t| (c; 7:IX!`0 '$"tU'At5$UJiF~N6kuEƋYu[ zL&ðܩr nspAu]DA@q8#nD:zG%lTR1A"(`$AI !_(lן(̥5OW#@N1[b6>Pu zI)zx8hywixʐ2"rXmDvz@twlYjy7ڈ }qMэ7v Hglb2r1`i5taA谆! l rÐiCLX@mH/ʭ+mJSC)uQA(!ۑb MFq s&IFQ&QVa:y02DC ! Հ&HR!J^lrTJ `v!4jfdmD4փMI Q*3E0ĘxFEHQ:fE1N 3-E5S20*\#aH%A0DDC"|ԅlc`zC?'fA/:Cg&F )TkuYC7oxD&c>ϓ&To_}kg& iupn݋wu L 0 v?1Q8M ?C! ?jYtⲃʇhd0Ҧ/CZ` " $%=RyU!Aϔ'`yN|鐩;+qE}sl9 Y g8G⏛ 3'=zEY;ŊC{NT-Y[v(Fy|퓻7A!7B!Ȅٽ*x{ɭVK>?>_59BFҌ7W9܋>ݼ`ay""""ڈm'2cK6Z(]3S;/f{-#GxRDx;_2O JCl5Cў{hMdL!! E!\lbx[AFӢ(1[F,BnCV`Ѡj4rC4XFc}`P  C %M J='qyL Qس3R!*!T,_0>nلpȪ@5P1E%~-b` $YG0@A`8}8NFDB44VZ}h R)LQ> ȅ(HU\MŽZunJsYK}QPK{φjLVqܠa۱9)N'g`İ1>R Ylӓze$c$z ҄7D(={2yYNme;!>Ƃ' @> Tmcqd4 Mq!\C9r2A P'>q/(l>5}!#X9O7! 4 $@JD'H68tZՆ8p pQ2M H!`"~W)x,jH"Cpa\JGSIb P3 RA@d J<:5HJK" %B13,0pH^0wЀ VO)H*ܤQ% kd9,wB@󻞄X{`lT=Z>PYdcȦVeeE4;{9OAO{uN2la@uXFĭ#iN>Q&pʮ:2f٥jN/j1(&ÃGNZHi) ~ (|zMKbt0@8%oYvb<@$NфpU"aEPRA/ d4"iبQF%,UX4 P +hb\!QkONkS0!Ƌm1#[ˎ0Vmemk{Bqj?r2 IWP5qwE_sߝ`4 ~TxMdjP7 Jr<e0WUA9($t!ˋ4:K Hdߜ^_6%2T8 U MX`A s7 wb 7F@U/zExTKvLhb_꾠v%Ȧ4Uk/+T*@S4R"J Әx )'r`s1cm(΀q`@@߇酝O hlW< FxeCG18`!)[k3Tn绸8HEi;TA@J%B,K@BG>.z`_?xь712m?KB# MQ>&:,ʘr2MaJ s0*3O`5_lg惚|@v:H}_dàn4ޠ^ g^qqBa;HNMf^\٣p%,bsOfA ik`2+$(ƍ3P:fLHJ&Nx牡𽋨 Z@e~-L(S"q0{Cݺ9kLwUϹ ܹ;vb gၳV(3ehΐUFHQ  \0҅PQ l;c/x: '1im1)15Xbi!Ȅ/ |BL? ? &#%K 7AE4oS~~%Ԥ@_yP !Գ4D~e})g PgȚm:-40`aスK$2k,FF 8R䙆@LS$[ZU5das4уaL"HĈ!uN6.Y5GUcH 3K ōϥkCմo nv6 Vx%9بfoipdKm(eJ0"lȇ7`hy+j PXU:6d6Hf`%U9R^m"J5N}Տ|9 {6)7S!!ITVFq\&"?00"0'3FBJx44bgl(78B7fǖV"h1ٙ@X45RXUS 5Do<$r uvECIxHر+m> R6'Q%jaJhT& ڈڂ U)CcW*},AA2h"cp3Ƈe1&S,]Ffm1)J.cdԒRtloLyI7JfRttl4N&4mHX Ed2W-fȒ&an,& 5r #zf 7974 l% 9c6qI%brKr6IՒ։0kAБ2TEYA[ xʊ0 #rQ8S X-W)aMA m2dm61mhQ;vc`T1g!@\yALiF A֪T64T1 gmi4hk&Z$A8Q&D}&a܁bbc{tcoL-?mYJZ6$;1+m*Oi# !QbB*fȆa \ +D;]i} ϓg0[. lLRô0; N,n``8 qG0 GĆ'9ᆰIXFQaU?Me*7co63kCI4lŌ`!H&YfdiFVAT޵)h!( 39pt"ԃPK0ՈsF!I!zl05Bc,Df4;+Ov`8Wgf͂@ Fدt>êFGva!&; "ٲ !(}S=gS #E,#40Pg0 $q1X5ZnJ6P  'N2QRo6:$~`#^靻tu]Bۯ 54#GyUTOڪ CAlWXSбE"Lf$K;{$FƸ_sqHfw\H~ԁVDPY! 8{=:H$^&u^NPڔ\AY0&b#X"h$[F%R#X&CψA"hZfFd-l:iHi7xZWNmibRh֙ $YN@ x^M4mȲZQ8Yki0Bb " 3LAd0hƖ ` vT- ԓSM2ii(K USMeB XV (qA2q@i+Mp`$*A! (WB!An`h.Vr͍t U| a:MJk!F"i :Q(mR`cH f&v(#`8h( Q@ XDN!T*4,h*"V`&$,(#|iB 584A >͋zn0Kd!Rʄ Xd+]8?ąNAqL011Ns5QmE5 oCnZ6Ģ'DaQYg}\#vuBlOBF('ve Ȥ"~~[Ar4AԘŠ~\{~V&Z+rHѐwSzS4!C>bRRx¶iѭD$ R.ƶD{:m198N,J J~  8 T(I* 2H^p; =CIX8xJ u{&S:]:`8~]XAĆO64D^ H:uzQ^}xP:Z=O}O2m熀KH)%*3"S(҉ gg׀aԀR"}!!@reO!]@&! ڍRP \FHqÊ"wGl敔I1 4ɴwBDq/=rr@s-"dL[oC .Ժ04z2m '_IP>GdҽBBi? 8TBóAp4c\ tCH\#ѹ52 #CHb@$@aׂKpTzѾgX]sѻn˞`IQ6) ]Cĺj,ǜ0fePh;M 3HְܲFQjLIćցR4A wX*PVĽ宬vL8hW yB !W B:qi9 ;M:@"; $y +5kH0pb2+c$1HHj"C hH}pHuL0|־K@ 2V)% $mPD !(6\ Πe\!^Px *ƼpEP DiDbBzS(qذ*(rΖ;C{Qa}3_+C  Z` ĆN_{$Dit:a~WlO3Rj 󾆸#MH&,wNHdCK$ c^VIjX h@ƍ !|aS{H@x !OT"54Sqh `ju|L1%b 0 CA D,s!)IJ% H@D3P),BDP4 B5@#00D #+@J,LC*%-(SIE$ $HJK"P nˉ)Ju O &KdEA9 Aظk !h )T¨eV!ZP/!HpR(dIDB>R,1LM"!Ċ bHG"Q2A(h Ĕ (' œҡcȌPHTɉLXŃ/%*A_"&7 bD'07>E% )haE(b I! EbE^x2dTH:f(vq==wTvn;R+"l*54ͅ@!x"T@=!}b CB.(JBޡJtdI?*yK0"$fd>FJ v:ȀFEM~=@9m-c% P`XE 4jfpٿQ}Oy߈ RC85T:+ǫ A ?MPOKcPD0~0,Ĺn  v?x#yL"!P0,'<׸49Ky,yÂ(5\P813F TTYM, 3] &R*%/ǝuu6 G4Ďcd"vL h ,"(ȌP|$ asHsH7ۦdfcJ1KG!6 { 63 8|r!E@1%qȢaMiHiи9CDBh`H) Igwr9$ @DHL MLX z_K"j2S2y$00,PDh7@ l8 t ~vs!xv$_>bj0V T H`D@@yFa DI۷CO* ߄j> =2+X0 G"m Q {@"6a`99H8 \~]O~%!CQ4 @ʦ([Cv8ƹQv) ]d-W(. d048 d5 mȇ1FL &Ej#`"b!(M#C ju%0}ȹE+E#r./)䕘YUYwKS3j&5!! KhR֜#r!}W=#ffB:0Y0|>!8ɼ.).L!)s?P 1P @)({\j4)1Bl A&# D&`K\Pq4>W1]2t pXd)x hk?i+u~lz~ $.X;+u 7XgixG$Fu<20t2ɣ0(!׆0fUGB齜h!G,:l;8볿,d {? 2*86 e@+ NQpW FEAMpTM%R9 )(BU@Q0dI8#4 EIL2$0R !BL$E - ?f(t!P/¿ε7o(c,Iz6&\၃ԥb~LL@j:DIc爤X'SPW4@yJyߚ O 0}鱋}ˠ(&wWܩH7z;"cXGkP~V$@(QF@% %\A( a__!HDSH,E1 =8O{N@7сal (2P3hTUdVa&= 04@ 0D߾@G;g#P,7Y 4>X-Nw}e0Er4膺Ӝ?F;>̈́Zh8@l?g%{N]5̞{D zc (LG ] ϑB`PLKɆz1܈ 3C9TّF  P̌ѩe~%R!zãtb'$Y/*>O[fvמ7ɐjmx'GAO0l\9`roqC;X0y̸ب :: [BQ[ZFR`8abH K>c!a~}Zk[&pzUՈsׄI{FOZ!ă}DnYwpAuzQŅLrc8>Ku33333kl!ĠC%(Rhhӑ+'kIɶ59kHH 'Y8; zf2d!X@: p& 0aD`ILHg ŝba50jX8bAi<9@/>L M,Pli`;}A!F?1HxM  f S$1}!# dSxakEQa;R3Z1a-(ĕA2JL &I`0~ot${mͪ՛HH%{? 9˰w!;\k?쇐d_J B!%:`vC?g7}/bW>FlE)z.$jgr1l ʁDC@m!L0H$hҧy5 lJTP&% n Qp@&֣L;nb:іH"4h pFnFtpp%a6-)D:c#4lf sh& lFKRγ ,K1^%4E9% M6a["[ͱ5ֶ1^YJE E!HXTIqZ2L f%63 R[aV< `胓hXc4cAD܂D@@Ao9cjBRs5` ʔ mL:#2XLHiMij $A"MNN&h#ZC"R u0M5 DBHQk `lCf)Ƭ Hh(I'gY@"Hb$4U$`)3L&D NT SD[!%$AfQICZl8U. `om,fjGhu )Nj.X&-7$$`>K-Hbbj,-`\:x j\"sQә y$ -wt` %b h zGJ=r1)!D"-B: .MR)%)L~AF*?F >#M#arк""*b! JjO Å$B!G` x0t)ЛghY*Yb$W'Lb$;! gjؗW`"&6(sg dB3&4$L )6R z`{SVR%Bz:S s\gim @LF i Ap uW`R\+`avU@9qL۴SPB)GޜΩr7Q:Ñ6*4Am>hdB0e!y>k^1u-I?PT:b$*CbDoh@p)H!{ٮ ٔ@!Ǚ& >*%D:?p@qH0JR-J0a BeCh^&6/QLfkF5,; </4=a.u b/S&,M `)lpG0$pU:` a`l{|C; E*isQ[E,sNd\•My$q O nlރb`HtXs`\zG󞅊(ryPSΚWDϫBƣ ǰP-8 HrD(gᢢERCWNтЄT~,C(JQPFqeDC$U־9E5#os`c`4$LIPecA1L*0KJ#2F:T\`TuCwoSrH!KD4Pd[*lK@aAHP0jJp w baD%( NQ;)f̭2m.K0~CQ:Ep<݁f =dC| , >ˁŎkrRH A #cBm$K)PbR%( 1ЈwliFFD/AJنck6_;ʁ,ye!Ц#.BҊR ʐBM+F@*F ʏx@?L@j*> )8w>Q((H/6 }ϘNB)Ya!eF PcГf\<6Xo. 8@ ('ڔ"SGd@SL212R,l?Lm<*br2 S;"Rk u lҙ,Nc#DE(6YK11;E;oBQ0I0بj+dR'ѽچe)416*aY(PP-() zun LL8Vp$10RQ & YkD&t2ʮ),!RI H"f!`8jv!ǧەDw|l>x L<&x|-D{N+s;@CR'B2A e&jaf2|X;Tq[#YA%9LcXc%<1I28iB0rAR B)` cVhGRaHL6AAZ@)ZIj&j "nbj`nQ%C)?gcr ר7%6u0˹Pj ,{4E*/X[>ɮے>& l_r44uH;fǴ`H:M4VGJºhߐѷvfox*6ŶQHFtaE_; F m6H&Sx&.qQܾ#Qb9֭M[6hn`nkNͰde`rˊl26p.2]LD'p- &W|eC%;rF)=EZLI0ߜ 9@a /PUR"RHX z>.UzDi;EPK`e:&js ߙ܋@eC3~-pźr_ݒV[:1f exCCD<=\Qy2 "<]D;ix1i{If]-f 9  -iAL(fHU49-#g^032uD=6L9 koRvL 'l2F3k|5cdHD}doĺGv*ղ(P -0It2D4Fs bjXՈ" XlN+1C݁|aG;M<bcQQG N)EM.)9v\9F(19m^a1O5Ľ}$k[TjW@8 2H[`3^:LVt9 &eY8p\ 92W邁do[JL,:5Fv-L '藡Ɩ<;aakt,zqfR;, a܄lӿ= E neN..2@#E!]%7ʓ e^#_g)aCC:N:v;2>s%`yDF672./`yQ{-*v&`&=AbnV$.Om>q0)O+=!mleʄlFignlCacZlf{mׯ=vk,φaz2s@S8;kY8l szEzk+[%TZ͆;!KLy_AWF<.b]l߈M(6(Nok% m_0 d+t.Ar(ݘV)ic,dbG &bYr݁\0_ANסJXFӖ b+>_z. y.ƒiG *\b7vח Z h  h`jff'rO׫5:/%n=E.-oEb}5{.2Ul$ n-$ ឥƧNq|Ycq=9A-3 vD]p4P;3uX;^RT饧eW)BtfU8Pr z7C/9}\s}RdK)-LxAa9޼6ݑ]Ē u#P4na{al p Hy4l^ 7*ޡR-r ~{4^n}Ǫ;Aс8rV׉4¯\셰͕߯c{"4J|"ÑmlUnܜ1Թ8nYeJa>BՍq=s툯x@nwn9džSO2o=cJ yQSH.nke?9u0@`tBp_"q=kC~]I&=sF*Ye J0]f[^/h8eVz̿Ԧ^<820kh,9$I ^C8lhqN8sdpXlRt}0;O,=D=]3++2՚o߀afv8DdfK^ˤ\g)%^ֶu8 F¥'*f@@[-Y##QD¢L4э@|J6"ֻJ4t[!0]Wg(D9d)Ayԋ@P L"!b4t;3QfdųI`7 JHm24a =,MVk+7h41 7$(愶4@ {P!/= :XYekg@|P0@,h4'!4b%M $OsaRa$`21<ѠKKL*)+@+h=Cc//֚Rz[DJY3B6$-N`H= *dc.0CEQ3$%݀j3Q2C\_ 'Ih9aеty=zK N bOdBL+ja+4Hgg+`&/C:KD<>3v)6זC H J H(ZB "&$cFa~p@F:## ! XAv"} S"04bC!uy$n BZK1\A[}$1D=' (=4p?n3H. Yw4(?{ z>#4g\>f?h ̧ B)D9Aб35vՕZ(P4ȑ*(h=vy3 xEQ` 2d3hUe1x!]Jqf*g-TB|_zDS*,`9@dCPS />c|Gi/.T: $\4Z. cD 4*%YiPNf.$L%3(MA$uI<۾nO5g4 l#I I݂ W L"؜ɝj]s/8=`RDCviFN{jF`xƭ*{^Q(f661R*y9ƕ]axLE`19cEA1eCUjfeC 6Y& k,0׏֣t}Hsnu7 )Q?p: @TS#2K<{}s}rPQZ8?56ʟ?#tdH0v]!kcW`630\,E8BȜM&)#ԺY!ERcNakڲ 9@v0s^Bx&#Yi.%x!Ҋ_#jݔpsKb FEtpT IP^Oxpb~A)"P i=}U9CO(ϋZa  Bs0)bReFF2J&`8341! 3J4RA9g-# ( |N~QB~uXr3gS1hPE ?;-WQs ISJA1JG$TrgwL9d *mņ7 haG R6"bh0uDUvfpA *fP%"b! KFeAPɏJ1%HX04UN5YQQR&Mыz:ˎ8FQmZ!2LFKP*®* K-KL(p`Qb*NB`sS*!"D0;Ѥ2N^{ 7W (`@r9v 4L(:7r`8#XQ~Cr”Ъhz];=Q央yFߎn6ڪ*",!t)<4dP}U׮, )hJHa}h7mAzW8l8Xy07])!PL S܈* N٦7T;>??H{(b"%SJ`G)՚x_g!Rx56Ŧ$1) ٤ hK[ʧ;l^bЦ4ha^olE{-kL-@[V^1K +x8[FlNt[EYxJn bKXXM-67f9S7Lx(ʒ};CefHnntKp\1'+K݅}٣ gڲ ip@b E4s'FtjC0Qݡ›q]oroҮaAq47CB @s6@bP@"w8W]}-<":grw Ba Mr>VykAQj_s*f3 3{ʡ[$KZZ eU$:HcRSLQM] [jbf;dB`AwI--0&:e8z)W1uͥE^|Fa}$,kf lTzY@"Xi.2 !xH^&p!zN" 4#fʭ}]-5 f0ted0oJ>6oi9q@c8Hnollg#%ټgv*:UA~yK,ZBIqg6xdk"pOQ4crh| 7쥄 vj01&]j/*;TUSv;BbIȶTi4)+`a2KAcYS.fPffn 0.5Hrehߞ`4>F[qh(:qdYfZöZvA)m\s.`kdml)"C9;2`\5 "'\gK~qnNi.Z)#Y7G$0kHEB]va\&δj&HfVٚEm{jĎX(4uCKoZCF8@ knN2_ߒ _,<%jiPdVedTe,X u"9s ұ%`BvV}qzb Q a]o3JɊZp[Mɹ;dX KV,Nlmb| a3r @6r=tP9 @_R }5%I GEÛ!r ۤ&an9Q|6 ҫl]Dy#Si)XV/ U1bYx|$ADp\ 2$wb:[%NG#y2%y숽%2DfI1wRȢf~NzfK8v)Av];3fk鑾)g/+o;0\Y })  %]kC;cl*`sLXy-ӾL9.0p(,e1B}h:ᛂGӎl20Veu&`wtbE،"|bhfD1칉R-^\HᶛLfD"9^(k t\휼 JԙxK(bC4_5KAdbdBɛADku4 e6kUzB`vQoӤAX4yQ\xpmA Y"i Fu6uĤ$,-Te%G\y-+~3I*R ^jfAMr˪raN &͈Z#df6F4DԌZh#A%S]Ƌ1{SmeD0r-Ɛ=x/tŋbVRokbve2ԫ6BߝʱxssN:PF:H[8LABq28a.^83& 3V V2OEoOO.|ŪHzTʐCxZ"&cijJ(ur֔A'mqN fA739 T/a.8 `۾X<'jPԘbQDLMUTQk%rՎ`(`("(NCD'0 ("( ()NݳF"/6h/oJj@A&ef|LLCiCMJ;j%Y9&겉*0"vC5R2!gX5bC1 cf PJ3A#A@D8N -4F[bhд2d4b$4i يiDX# g8cL iؓh e(U[cm`C,LNj5Ek54XDAbV) @YDJE[X@([&db PIU22R&eM& ꡱ$2!Q9C|p3M+fꕈ6$ Zk6Tq>#rss},59Jo4#7DTREӣ؆0 Qy'NxIEM9lOcahHוx5;b>rbMz 3ꏼ  -x2h=ϑE'D _yd^utT.DXjVvUYJDvS&14D\&ș$6f٦f/͡EW-"T'*'ֱCq6+fhe20#QHygR"m`2(n Y{zxc?Vlmdc28#28#tT,[Km-Km+\3.RȣFx((3D!BBObe}fKm-.F:JdG%uYuT&@RF(JfOkim[jr7e<ϪwL֍=ǀ@P'H<PʾOCcf i!!IuIU f ,{txpg(`f 20 rTĽ6AEqB5 4\JᄡhP7\ 6Bs =aܑ`spcD^=@J{A<*!_J@," |2*@|RN?ϣuHE/r24 KJ)+&*oBMd8ce+FH{68HLe Y/Ű, : RWuJcۈAxPuė"}m&IF LAE.;_3pwJ i$6RhΩCԩ? O/to=Oj-x3&KKB C:|"p'!C}Z SRlf!90fŠei\64A[Bޡ:hgG}Kz\U#m cp14N.X+H~Ԣ+LFH49bp\0ؙA6ɆBBK3)'1ͬt8`&D8FIH6`AhijeVc #;#"ĐsLƘۊ`FdNXqJJN`WGBF% cBjsYUF$L`(FNA3LF HJh8 CQZ u)AQce29&4$i A@#vH^@y|ݡs)L9 MǓ]3ԍH@HEnDCbnnLdPBW{ފ n ^p,^f45f૙TUD ! ґEHU4@N=[ȚB@.}bĔSG7U/ %ĎTя ` D Dz8{^ copa@Bע n pH Ġ/傒t/@ᰦЉ$!@D-)BHȡ @ HP h ob^bB#:c+)aJ Ӗ)`$L>M1ʄM"$Tb_BtyȂUTEy ׸"k a8u>bGPQ !Vj $9  1־*qSzڳFQ }jm%jpmN书ep5Xmq׌@Se/3T Ah,1֬&FӂLf(Cɚ2$cI@6y3f E }N_B_P,Rv5x@EJHH %$JRKB)$ -,$),@Ȓ̬0 +tvx7_qG3@{Bkh„iI/ 4!#=N&sà&4@i ,)DθVqh֍DW[3uUllM1ϮRVĔ t>}( Q GzE 2'31/_`=&cmPg$}mSܝy1jd" ==w4QޙOn8/X>\\u-x;p bKR]''Ő$<_8_'IA16+aUl&0Ė'",:bQ].R, *&}{aeȤ-Kݑ'X~ @B6=`"+ bR`cgC]2] 4>3M=)8 *R9sU' "hTba> Ъ OI =q:&zVdS9rUI~Ԃ|{a4"XA F(I1Dotvq1/dW] E5T$ ܊CFo҅"+!(gb\4J!爭A ̃*hu4CAI ` 1 UVLAPX,G00+6a.VD-!~:i!Ed@X%x!\3mH0Ef2[m GsiCe ir\8=_v߹پJ4Q1DA5D[;@2`<و!(k<W}4f[b@?a K1>J(HI hbA?/*.?fI`G&o~=gub} m\O P8v j8CHy`~ՐLw=* *F(RD*v($C{Ʃf_)%S&IxBlUrx$r| $ ۲GeA (i"_d){".6 xPmz_"(m?Ha'"X LBA^U=dG^OfeQVF 396ٚ2f( Ɉ,`3,L|HJJIb=wx$d8 a j`z5Z2>=E Qr!|ErbR! iL9hOwg4Ԉ0!֨D!ٙpoPT͢Zb#t*BRBD4KA"4Xs'9ajKB;|Ecy'TQJ*8qy^@BxP9d }:CMA,9l,+ŏ"='C: k- FjVCDQ$Yԉ![#\O %n[/װ( 7&S  \VUaUhf bE&X" ըy,ң*ن$l0y%vY_šЯAc(?PA)uPoׄ9{a sJ'% : :(m;AP2@~$ 6Qj 0' Y" df ?ρQ3\z?r%/r+XzkxNj(?H#|܄Y;$zEĥS0 "P0Q2EEhihKm#uA>=JH=֩EQrjޡ=#|Wö?/>);-n،3Emod39>.CFЩ!={mHw lE`|\1&'5WHUsY[RD q̱KsmnC0e c\t(lmC:BeL!4ړ+k=˒8 =Rެ2}[؉EgOfR »ľ*ݚSɉ}?Zճ\8F10lkT7A [Dil0smC~l:UQ BB順Ih96OC3C]P`8ܑs;N4mQ1w`p9o )3dP0Ӗ3&5: ntut9#DQjL2 x҃mZFjjdxhj>bjrqf'wRܥSdm$@0HL;M+6%N+6rC ԞE]h`ɬ%I BEh2]WL$6#k4+bLiu#u`Tl"F$ڙ f>_8Hl:qMmd6l[(~ӟ]7%p]m FA'{E 1 rkK:M Go@amx' U_6eˆ,Q=5/ݢL_@"+ 7t`ZuP̛^֟Yo캧I)DSԁu4JQ~KJ(,L!와R6((a0f AGc!J W9Ϟ\p!؝bQrO;팂YaŸ~`C>C6Yaabˆ*Q ҡ2.HDsvBKPdD4̢*f&Jt}_xB: 1@ɳ|ü%TH_l-ʡ ITIp~]?{˨:T8ǿ@: J"*PgJ>[H$ /RٸA$)X!374vom?yb^պcsqNudFqKkmA~] ~~ܿ=}%I*ھx <ZƚS~S~ }+0w ̃}[S50w;?ldpl55uw-MO5 0KeR*L7LYHL8B-dˊN϶&;ͱ P{yRdxoN#`ߣʁ$NU.56 |;pt6`^+IS!0TkN&nn%QT$b1!uޗQqu0= ĐÅ9/1wA< @ 0FEp6~|Gzh<%Els]d#: ;*&i$PPO(iQSV"j j,"IS3 Hl&'&MN1Q&^$X 7o -) ,"U+z'֧ETI![-+ގDW/&+I;ѳǍ ?|Gf_xh/7?yu=i_}?^;[쿇{9_i<~7,~>L~C>'g7=ͽ+?SO{vC~?E39ڏ"i~okm:$~Ŀrs^/>z߉?Z>w~//.8?kf^x]o~?ߋz/~}g}/'c?>Fgc{~W}}7_nW>_g3Wx_GQ?{3^ϭy_ xwc>}w_^8==~4=//Ex/x?72{?~[O35_w]:3>W3?zW7ߵo#?o7{ޯq~9{?_u~/UWk{>Vc}Wj|_ZϾi_IϏ~vyo>K03?. g=nn'ܟ_~gxzO/٣k~#={ߏ_ǻ>// >?O ޫL]y5O뾃v.z_k#?.?o|=__|/{#~1O{;o'CWt>}w \-|}/zڻS;<I__߶ig?}gOc~l{mۣ =n|}~s|/ x_}~~_} ~)ϐ{Nw_}[7FO7}C~{?O/}?}|}gx'}g7ãa/>K{?| o9Gz/r~1a={տ,~-5=*?A>rNg{^3|;u~v߅/~9?+oû~h{ˁηv>kﶏy9_km_kWw>\OutZǏ\1zor_]=7'w)7| ?o~p?b~[۟g_d|?wwuVr>e^??7~OW˧Fp/cnO~g7~Cs{^w]n?Sw~7LN7cyw"\m?뾇/W3[7Iqbh~K{>?,?cʿ|o׶4O?٧Wөq^7?oW[v\v{OC?vu+p|3w9K-[E{Cg;<<?{ϣwLJ7Ww׾WM%o ׯ*1^}qiz]|Gm }λw],}UR^;mۻu7*ێ>׳}oZWgo+]jvf7IfsCjܛm:yz>f[.Wcg]g{4sn}zU <ǭ#$vA$ ]#S1;(Q\ւaǔr{.m3׀tu|>:qZ'vWjCT7lzח ֬SRlķ]]{-϶z{[HonC)ms'M60 -} h gԀh||QѢy{t7%<-G!yySl/q A%ͺmm_|q*νzUv"9=Wg6{mΗ97]h4^uꃓ{Us:hJ@W`pTڡ'`i/yΦ>fv/6rvN;ݥtev֒/;U)繀:Ric=l}e B֌*^m8%=vK]9=rP޴s6]{/Z;*uVdۍX.[w{ovNڪmځH#현s坷Ns*C1_W3 `RݻR;{S})cOxqw\*x$kwk`{r9Q!@ =p;O{luS3lqfN7zrz젧f)g&\sT}k==owCѾt V^xI;]Ml$ M@L`C Ih!A0d44LM#OAS&j4jL 4R")MSښjzOE7T<h=L0Iꔑ zL0i5<6ɨi@044$D x(OxC@R4SSGꟊS)DJ#bL4T=OS)5uFf#k[[j?1G?~A*#psDXS&Y( ߍt4F(g./[W-K"x5wMs%i_svח}smn32ge:IIik #Xfv+y\yȒ7- t핱:x+. f4_sTjkMZșvG?;5pmtZ9w <Մo0d)nm8NqgytpYkbFF1G+^Y2@?hn&n3c3k7w j5//R-+4[X "6 4n Yx1Z"98<4ָ7+g$[患5+U3Nyũw M ÁF<,`U^y , Wlć;>Q8d^L%5_CأQozu\_;s&fR e:XMOfףwóQ M16/'$wuQEQEF gi#Ry(:JpCItE..M!Geh_ܶ|uh^@2ʓ"}}QOݠX,U M;fCg +0 NxG:\~uk (F/SC(k"kfL; .kd7Qno<,d|fF1Pt7B hL~Xv$,g+T7C,A'{~<;rWj^JB砊9L`2 48 %$Y8==y9lG@~_в8=˒6ESLU1x1Z\V'TD+U\ˆ P"Y^J6q-8iT@ʁo}t/HIR,,[Ѷo'0ABrʣcڹ$\{5zA 1s A3vp?-4-Mk(oKC&/)ƛܛkbiCN⭷6S)n{B+w "l%nK_Wd98Vqx69Mݬ<L#SԵ0%[kI*(q7ruׅiX31 L51 8gvdCk/m p!!dʁ}!P*躘[Ohƿ`ĵl"ǰKRS-,#^n7Ll׉}S.aka9[FyfSDQ >:vN0xre>&Y$܎sĴYntʦ9ݔO65#*41t={wv/e 2/Vә9]2 C_%fab` ?Ej0A83I2̿[{K?큀0aQ iBϪyW}D \-,Gp! f{/߀Vxm7j5([# BI?[оF}Þ8<ێVPlol5 3{Q&2KCdJy f*y#uA<$f xMD-ϒn 0Oh" - c,c 7%Ew0"oBoDl dֳD]Fn5)$y؆+ج5_a9:וz?J+ J+Z$FG74}Uַ +Ј3эRph–V"& ӉBU^핿jqTmJpQwd9h 3m]8>mCyhH9?G{x^3xܮ W `oW=PBL26Qhjmɻ^~DzO`yE*F@JT1ZcF0J`7xqdI;g+is?F[OCcc:_8QiYP'VV)h4RA[ل}1ܴRMC#b9gc\-NnXS#d1"gZZq*I`/aЏecmD#daZxQD.@iOH a*q"&n\JQ̷:RA_NtԍŊc2=*[JZ}J:xsyNj;,aU-C*EÁIRi.Cj+9q(+-/ T*|bDb壙,U@RsB HkɕVj"ǘ8`sM AYBI>"~g0 QeHBp Y(YEr9n=d 1@$ݘ?:w4nd);{$R֬9_c#xe\kZ4  yT pma;Ͷ_qb>gX",fn4TS_ ‚߷;wMU* " E%c_$Û)n}e=Ml@ϽvZ}F⾜ ZMS(A={I>$0l ^ oyXXp7]ww/:A4{b4j2( @ 8H֢ 1kǷu29F=G0fs0p)9Fm,e}p=†~$1DCzَBS:fRh~KNO#KMkF =NQNcV-[mm랻 Kv7S%h~(v'1fVZbdl 6ٵftzĉRP\o:\/zi/08hUzѱ=8э v$`nq ߱#pO,0+G;/ p< :Ѷn\!im&LcH}Ċʓ̀)4qҲ5णis1ג{SQʏ; ~\D6tq*"FŴ޾P{ :9 [7ܧ`Ph4  <}~:'},L ݋TЈԨh8UBtBM0Ĭknk]y` (`!ySTUhm LfQwSMQ2Ah@gcL5[ a{YuG- 3يMo"V>vy4ͽu3x/\}OGrN{&,"FG+Gت\M*FlVQkru;&lC\a"- ͽ҂O$V2q <2Pn| hwtõ̙Y}efv׍]\ǞncvA (%?*)u.M3cȝqĦPQ| P@b~^E%ڣըDD\#& xq0x BGh$ʒ^$w+Fy0=,@ Đ9HX[В FUYQ$4YZ9^M‶qDPS7T/eMAvH30>s&Цt y`R*Ň(y61/S{?R+A 1. },<3FlP|ƼT9Y hNWf$ 3 ͸RR,d){S)FҶf`?8, د`\q3333j~W i܉:a o~Z0j< {W,WJ[sk<*iP/j5? 8V-(vߍ@a@apPrq;E% PRDMi_k*uB50*rj<X }қ"A mG}Ǡo ?UF̂\?![lS,i"#LCBz1<+x&'(""A6<^\9F FİLRasGji(,z[FV=B LrD徢~xxz}oXyGffL(LLƭKBD T p^< :sE<!"Eʓ2a\Hs·^KzAD/!qA3>%02*l"%HX^Lp0I%@xԠGCś3+ZwA,c3;;gnCL ;Nf:%6ֆ$Aَ=Kfب [HH-|vsޢq|q^ݼBInou})n<'ٗ.3 `1yXc>& lo"Vp"ID7H;X~nߧ_VOd^@T%F14LAA'&8PӱĭBS4!W5A񩥿z~+E r1@x!Ig$~Ԓ?5Q]2:H*fw-J`Wty_{36篆0! !Si$7,q^ֱ\[ =ID=\>{fLn&."".# ~чƣn0d_pjxDFO{52 ɽqW,%j0RƆx ܄ш,Q-rb@ w飜 E<1.M˔y}ԫ] m}C}ZReU, 4p\/MBIj~S}?6*6> aoß'm{##gt@=J. RHARD ʪb A5B & 4T0|MQF+%%7yڿiƠ@gvV@ [ t!,H Ѕ5 dȜ %VR5 j9 jC864@ NAFtJTZU_kģIZZ‰QQgv۵s[kWMsmXEvԬYn<1 XPI&@ Y@T"ID$$ʈPC@!YJ5]_G۽^[j]AH "P0łfIXHPD$d[iR*ukm%new]m XIXJ@+lm׌ih4LvWVskcZ[^S-tY,Nqjە:;k.#( R҃&H$YRkmo{moe4K+3ZYEZOZbeIVȁ+kѬ>ۣlE0"|+YRAˁkEI{C1Fɰ/ǧ{WÌk']Zuc!.yX@"Ewx+Xw2c(@P FMY|43pKu/A՘k_ե7d%B͓!EJ0JR i2fVbq] 4FKO`' dD?981)3 1 FZG4sҔȢUQLAm imQP|LA[$bжv`DIDD]ؓZeZ6| rG\wL}"+.X \Pq<>ؒ ,,A+‹62p$T XeVp+HXBb'?rbfd^=3s$r@"pՙX@ `{Xg n""U&UeUAWg}z&JU9NDŽ΂R@DT[hvҤ(31Zr޽eTlz tƼ* Œp{20hKd6XPJ{|#j{D>dǻss&D& ,8@~q\Lq $8VS?75Qب{ƫsQ`#PT܅pv.r xӬ((K^WGwMr61Um=&WB_I 1Q* rbCLe+eHS;Z"LZK""s`(: ^,D"޶oLD@RjY*  &'XEj@(I!@ Auz9Qя˓ФqZA4IYDžDKWl CBIr@Bm Q(䞫%9 P ν+wm\V\c0 zg$1 0w҆c"Y/}Z?> AF(xab!CH] J\ [`y9Ob)!'J*SHcȥN h!+KiBJD5m iM2?mPE~ O?#y'[8z))]R>a`T|A7Ʈ={w(/,1bE`h$ؒ2sĿ/B5v}x9.SD, y.2e`пA6 /}G~bދ\5 F1>TU#Q7DEb 3P#3(܀\h O"s&L%=PhJ$I67B6Huk1W(H 61Ҡ,];sjER4cǜSk|;J*Q@-H|_?/sϋszP?!'!Qvx@q]׀oEk  A9:P~[+d(G)N\!##bG"ºBF6>DX&U{lm<%m"z;G |X'S!hU)s9.tvnӴk :mp~J ak+̠6 X(P%%&;#?fj*+Pa*?ddBu>Gހ{yzs1F4?f9Aa 6* -@QGqB"=Ň}^ đFGև\buܧBMp!t KP{M:%;VAp>$W"696&kB( X}?t iĠ֏ o[%I2BF3@r } T$&B?όyƋf) { D>JDE'&kV{z#A(NքA2%^^_A  Yfo;GB4 M=ZD.$CKbLotooW:8q=E-( 2)ԐoٽN‡ oԺEriMcx?#b8bT1 `Bu̢VV؂ ՘!mlc6l]8|yVP}-w@1:di.xq d I`"auк=KZ=.UUBmٻ%@dC6܂:F:#>‰69p!P#(ӱz Kǜz%iyF!O1reo@Vm;JVSͯGT~;*D6JXe,{_yi,Q[(g/ɔO^ /xZ[}0gB:U} - !Q# %HP 8s!ӏ?]w~Ob2%ڳOCJnSjIp6YS(tQEൿhqy`4qnT^"{DDG*E=4~u?>"ul{K%ݣIQ5=@\#u4φ$p =؆7  sGAr&)G [nuP+ b>t%RNa@|ׇr;%F\=G^s#L=gH͟^&j6sj$`Q1E#z>ugc&-W~&9(H>!=PHD8}|N4 J{5PCA2txFBD3L8iZ}ļo_ğ_=@݈q@7N*7ώ-q؍㏃Y!T{ڪ!ݜ#f1d(RL(s(97ʷ7uQY{#C +KP:u>> |NMUܕ|i}fJdջKX^;*vGzB:GLV(x<,B!?G-?e`xb FmT([~y>eՅև6ZE B}bs矨c!2<Yi!y cY(WP!']YX8γA!xƟg T__8eȢ )HԴđ҆l7`]V :YEB8C;!=(Nf-QaaC^]G[>@!)Q(zR'3Bd7P.XMM+^\0iI@3^7MHY~hۮZ&@s#.7A '/YNjݗ{p2o$s@A}͛Ts4y|n_ov<A?@֛ h3uY?iٵhGޠbeh@tXw%^T_b/)0*z2tDKQpܸ\&| IʞcKBFOƦB j^W6#O)ir߆(y1]F-glVwg=o yaԊ:aRlO38(G/1>F$ ^>zq[8`"W@WJ9"l zN2 d[w 7Y{@K/ XniݻݬCDfux9@=dP{ v/(AǬص*R,IF}:B"/}dl!Bn8IFŠ^$햇 ڂvJUȄ3ЭpQK-sل䒪{2\cgF#2"@Ae`*t.ӅT]DZK, 7H r 8` knG#> 9CQRƏfrߙjawhw,ӤXZeqZ d!о @˳jIJPnE"G` 5:έ5i K;}n}@'ިa;D? {4&HJY]q4EGh: \,.r|8vOcT\WOy/~C,l}2 +*CjZGQDF)7=嗍l/50(`.Dj P̜.<|`#DD#~x9n<9{+4 W)'7pC8}) Q+Zs܉g\8 @#/MMuVNᄆR1EhGt$ﰲ ei1NQ>+̀'otƬ)(ںN{o]uU))'9Wxf5.Yĥ }DpА$@ېP ƒ"L1%5 ^j0l/hZ\fѣu(j^,r%djc=/r:%EzPn9u+&HdCC/vc檎yR@-%1LJ!@Qp1yF$_6py/Ą I*'~:$8ȇplPXPD Pb.C;b?{ AF,47%aT,Alz3&F\l:`*,IT˩1L ym!֖f#i~IiUFE#k *ӤR`'זvUQUEreCLJCO$CH8H \y5OiAaB|GtĐQc )gqR.1HAA8A+`4WəÓݓRY L WS{!C䮴v\ *YjYE';8}䮦OyKA bCq!"\RЉQx]#}% ,9SUMU5T}ar2х%F6ףs[n!c._ ֎OúBH.C/:}  AY5Y/UQ՟'|=s٩*ww{|7NBN$8')P'x}})WMsw]Vmmm_?_ g=bm] B?w2B`O8^%Y_wrHez uG` N1hhu0$~j I3h`s(|+=rؖ~~J}u%|P(Ehp!p Q=K&=#=/SS "U`d̆]Keq^5/R't@s09;~3?c70V&$I [uTC<*3XPi2oxj ';rqm(WenmeuWʗ!uN-v0smܭa/wЖ05kxIZҡ]H'EZF ) ;3 =P>K mjgr/Ɩq>o&K.KC7<$ 77"~yh kjz 4N,0}u'i qzabsk+2 :"U=6\ɕeYG :בW$2YJ"VŘ⿱I }@ 6߫3@#< SqO{@´Yi 1?""!Pb̐!AaS1h$!zQiCs)n}Aw?/茆J9V6<є8c:nOMcAAOtp>W|)+'Z3Q2l#8Z/ íd\)C*4ѡ"ƞm) 2j &sNsM:d:-BN'$oF?&c]|%2СMh@ ˌ`9Qzc1a1[Vn BO~NYp,tg"% # Y'W"F(-⴬M/>S]qV!f_ߣ3pUoC-tMh*CÙANnB_Zg%BGaM*V CUvz뒒52y''AߤfrR(VqGҾ(E6`183 t!&#pH '<(*Д 郦lVMjE8V24lsQQaƋ{ά_8d ?P! #d=V/ aSgP8ksvD}`SֽMhh0ԀН<%p>d%!sc$|"O''e"DmU\To\|ECt55IVUKЫC)j!_&HW0aiѪq3 S2.|q֧\%t'TDwT$ 3=w'DRI/5>?޷8vrf %ȾiǤsbU)_e8&1jrޓP?I!4'Ѡ_^%`i-0$t:n V&OYa_K>$I<1!'08XQţ TMdAIECňڶ$j'}0b֘!eOtrØ7(2K2El)_⯐--Zbzv-iM: =@q[g^70.+ԊۈNm ڥJgK X'瑕T-*HY%!Z@ҭ#BYvj/v[VLߟ\PpA_}#q\FY<Ʈ]6+MB@4ٌ`AFE HQHb$0`'N=k3+B0N&sKC+٘";WH0d"!Ԫ9#`m`ВcV1Np=fƀ8&JgMkk" &`SH'DDžn5bTs -Q)b_/9OnU?)2MOCR@| EÊp4LQ/NOfꊐĂ؅g$z04c. ! dCY.]mRW0X Xt8^|2ٲ\C*qL.K?1ʃrJpf犝$JDq 2N mX"0XDtZ­39RH{#_~e;!"LRgl^mGOOMCmw_$Iw`crOiys3礙̎#❉oyN6J$(J|&)'U! Vۙ Bg,AEc-F!KIs F*Osר4a;/ǨzOī^BYmfV'@1Uf$K,d۝_ˮS tm]܊Wxm9];W,czteT@̎<\Xϻ| ̑*~1Q^np` ;`Y?H3Pp&YY`uv(]U=e^D$%ô,T \B]S>_|/d*Iwx2IWکVئ.Lz'N%.pZgSe#9D1(1&f-"vBmھ haq0k;{DQ犦#RxqzޢO81~9p9EBͩ KdSa4F6-P?F@ "h !ĉ, [鰟H'Yˋ,H ~60`bIt*FgD"eBGEK vЗgC̾3;#$Rw'$p6-μwMs9m Zcjb$&$Yu\A>X@M+U1ߓϩ$ "X^4tAHFH0w+˕ biOJue㋛>5TC?d +>FAU9L#2/i+sALa&_wABMgYK&DP9K̠˔ Yώ!ޢ` L'N~ڲzp[YB^eHɡ:4lUZ@tcG? kg}hh܌+֓@xAô[JEfC9HP1늹 \vflV̄QqK:;A($~V[V5QE梔ՙ%ҟ/9.3Tc޻+%2ޜ-eMcfKke.Z(_"gld*f ]i8Uh=wLg$ C8Ya38RLљXV0gv (`8(s;94E])v3 ?ٓ[eK3\*'WIxȲ!mzl,*՚^ͥꋀ)C'0wx Z--ε>ρGYAW ^k GDCL-_>cE|$#B*%~N̄Il7M$L )Q$Xw3WXղ7i5Ož4{Y$ozD=V9eSPfJt!'aj\c/I.ۋ粿m־$ PzAVJ Wm"䔵7 !aB:aT$2{ѕQd$3EIV6l\ ȕV5> ErS$3l@V܋_a='6{;a)  ? GI0r2z!hަ,מշmpzgc4oL;4cr-[Z ΪcHpWIF(B&wE(V|t=P§HJGe`f=]l0,z [`1 #k(jBض86rjFp5D64mbC!>v:^xiu<zUM/ntzD.r\d:zu7!=n* ԁ =,=Ljts鲫Ch`55a8らlbe-+,w(O@\)Ԙ;,&iW%&qRν7 &p;>հC %IѕA|6/Eޒ'""wϤbҥeAgXAd'3$%voPjg32Qh\( Jd`&# Bw(S)3ZqY@"GSn=C#Ž_^ӠPdjJ3ҿ|ͺ0Y0'hOߍ C%kgϾ63!T?ر1Zܰxl<+=%d"lvߗB0]y;aegŊ#.c58͈UՄ/}]\b V}mFS~4qw~?_5?wfd%k~+y^-owbR49V\ןҌEC)p<] J,.z*RxUaGiuA;D?Pn:X:LىX;LCMRhjȌ TepG; $.u#|ɯ yڢ Č=S (|TkjOvHȆrkyP@Q}^L7xWG\!Z1 9*Yyܐ4C":fW8&K@L5W9vH[ЮOϙO7fyOqZ%ųD21bNEJ&7#9| tpPGNØSK~\\+'L^-YZtu!{9edʎE/*[₦ʞ15Vcu,E V4꤅lCV}ugJyAQ|I"9pbt%f˓XB 8Y)kC.l6Sx-sܚւ!g/¥OM~D4H]L418视ņs vE ?#ŪpԌH:+~:=83NH9#J {4s!= lTBpJƸp p ӉܔJG#N{"Vjkr15[?=MK"PU1e]%kYQrI($t('\ v( zUӱ(w- $9:8DDJu))JJ((e7b pI^(ljIP5{Qr՝k 9 m#DaQ2mnha sٰ;$c DEd,aolFlZc+p╟6WfD^Oh|S T(N ?k0V^4ʲQu$KKif}(ݣB s e'-Pom%o*4d/¾L+udu n-NTt,Bq?3X{ 8Mqm.ds/Ѻ%w1ͯ;yIzqMA#3 _yb\q‚nAO 8$*^p*MNz5$tւ-, .4"ݷEܳcaHK:HLd07\5SmFEuCga^b[f(MYRF$}:sN4[ C#k.{i$-ZARzZ)ີ_8%kY+5B^CgNҲxOeOZ#/ȃPYhaL4$"to.xYzVZbhǔڶr)f9i@،/WE?uilAa7|zd{\ - Fzt@o|i&B QQmt.ִm`Ńi!~E7!F n&NsTpźN71Z].ۺЁp4_To8D1 hy53Z5т g[I3;]p auqD;0paFiv!m$trXfOd)[]X2r#ο|*HUQ%J#Q(1ZўrV"|\/2̡>gB0"r 9]k=.BN{Lfpa4޷= n=oL} 2 Jk< QSђҗRD#wH`vi 1ŋ)cŪ24"gW"KK%.(Ҁ)km,|t&4k/c2@ Tg * 8KE;=fIc;Xezp* 6gH]l~.=W@<~pmq0hE^~FH9I\\N71۝rck&MTNTP\: g)}-)ǵĨ^jo"xN5kw[TWG@y4T,Љw¨u!֝H^5ja(P0?Xc'5{ӽν40,--u! h#9U9R{-r3yHmۘ*խuV:DѭAMy9[BQў.MiV4yD? aR+?ɭntL_zߧ}j )+Tq`l㮳-eQO7ÓIR .l5c$қ bF7>Q$ Y䧳N}" N&R *!PM" XARq13a< ~^1&t=.{Hrx&boJe:ͪϫl8އh8H.eƉܬHwRXJŌ}~^3dY2he\CF2X8^!(^cY [7U_x ("LA }BJaŌ,cb87r@>ݸa@H0*J[mkZ[I`$al8ji??剢gL|H!$l'Y%1S:moux?o4uUhz1 y~-džҕI`b2vȰ FyC)#g+ Eo䝙~2-fOl06^5vџeyB?c#/Gw9fE2Gi)wEjZI4)0~=%*#ծR_Œ}tRCJ}:} .[W[Fb Ըj?Äxi΍9)`>3;n7?Je㥸D¸Ì=ח6\-VZ(z)xtjMp AN8kɩf.~>UTUzv{8ghW㪡gEpO峤*vO! Ԥ*tƴ;gnO)rCG$HHZ|Z\tɭBYnEc .dbT_ϴzZb/>&ꮶ<^?'."ⴿKU]/-ˆ~ѷZ987xu6ȷv}$vۤJgkΟ'(uwC\yf|CFS,'3Iǯy,dxl#h db#(~X.8 4 VU =whSoXpx)ҏ^U7Q޹f-]uOBA/Y@ qw9,;Wl !=0J櫁\+jc_7@ؽ>}5o>}ܣxt gasf&@ͭ$GG?6w^ ̂bܟs01갅 HLKjf~NԪZEGA+g몏SN%Ĺucv"Rvqb<PN$zo!n"EV6Zy8j٪ۯqq?rrqD.YÏBLdv#K=Q8Ռa"JI#6< 9t+8n}GGrf'ލD}b:A:^Ec/4P?}P~~mHfwQ~YdrCC؁g |Wn,AC"X!yd%aݲ+eU]#h g؆~G ,$#C*$aLDp)8(T2hǣ¨}v˴DCp²?vbĒ,@~sZ~5itPQDitmIj<'~J`вɔ~ݟ>>S]>9ͬ$ZW+˰A5HQ)rJE=wKǻrL bH; zrC;VPxy!!x_dJ/+< Oe'Gf !a0\c˻IZG?0YJz߹P~YCG/lCLQ F|u/G1cǫ۽Q;3avN2l3 O)|y;=eZ*>sy]K(=ޑclDADU""1׶gyDm*êgoo#zsſ_q-=-|[wi{?}/FZZ)(jDVHyǠF{2*J _0 OF;|_.Pq.G[/,~s3R8<\ P B C= ׬bQ'E$P\3?or B !5ӫڻMof]vǻfK46kJ̭͢Uj-v)-XTi-۳_[SmXTQb)*11ki) 6K޻ngj{ҖL! $H'rЏ\s ""I7Rn}KUy+=ٴ$H*H",MR:AµUQmI! )@ =!xXf&I-k?v&m{ZW{6M)i,Fjj2Mh11CW$@IMR,b$m G''qzXf?7i)%"  @F-}pi:x{}o~/~FA֟д+izcٗiڏӚmk67vbi/'9g νhJ )[KmucSFӎzRp6X.aiŋE|)]5$` ,pqA'ԑS p/P7y(z\^}>_sff)=F5V",>c ·#H.*v37~+.G0PziYW=~\rjW=ȉYiݚF$i2Z sUt5R=&Y>h@CG\fYBPa paeAe OIヘyF0|m~S6Ds%h99)NȄZVjb:/ShMYWH+چ.!@(D$Ng1:y|^ǯ/Y!}L 0P )m=RT:d! 0wh|=ʡ[ 4@,7(Uc 6 PDQ?*lHi# eԽ+ې 2k ܛ~LZ5ꀐ$UMd(Ơ q ( ̢"ĊK;cP.I{OibeB4D57D+cjk QeZ(pԚ-+nD2rybՕҼZ׶jCVi*k+}d~ mBŀK?ԐČ DX!IC 0TͭMaJkBʙP"0CS e\u7p7W@nS0Dj6EO!92O/nHʐjSfSJƢjV:9QDEyPESj)5EUw)%8)-k YXsp4>N"0O{}7^I$G׳Dc[Ԩ͗1ܡQCh5Q6*'q IϧOYvRo<'c~鐳…O.)GBF\ڃȑ_;~ Chd]4LS&X`RF~ -BHdr2Hdv`%PA[A2@t lkkb ,EJge6m!cZIn`RF b,()], uA1Y` /fwXQQp/_:4 jDc#mox׃乖趷H q3cCA*~G!K2A RELZ!RA^ښhd 0Cqr Є[A. K %k4ߴ,4"<D84A=7IDbIC$; cڭ0(iQRTX ?yM V ĿncܵRpL21umҮxޣUD`  Ҝ#4X74%C덷RCa/UQ*j{9q,gF*ǠG.YWP NnfI! OD^ B̽SY1LY)36cfv Rgk3b"גBQZKi9L޹j) 1H$1B)mҔ-Yemem)Km)J,XL htH("VRK?<+J $~zV?\x7rh.$c]/!0R 1{&` *)@c딌̐0 Ԑ`tJ"FDR⨘"Q(dOe IS`D D`rBǑ> rDaj@CQ&S|!hP- 撇(눥""27 w$dMkZYUUUwU}k!G/oxE ][>Զ<#ґam!xX6Ͷ4"(U zjDHl< 6^"DHhX``1xO윽9'P ЉP斅[õ5ikJ%o-5e}6̯m|*@Jt$7QQ1vb9$n#7vpbHbDFK\I˵!:>ٺNNSY7N!,27,. +1ݾCX4P0{l F !!Y#F PDVm[kږ[h- %yRRo;"=tư>ԛIJZRaJCr2OA:FR,cti]K5ԒI `$Z [|ZPW|!C{ikh3I@P@mi%j򶸲ikp]wA`4w%&0LB0KCz8Bf:LT$ !HHJ<%ADb%iӂ.I =ۖA6c.IQՖjJj|ENՌŲ@hd d,) Bqһ o58+בCBBvw C! ; {99# @G\|:0 h.ҟI4I*Gz(Ţ?Ih D"~4T54'KN ڂ 68Ai~>A: aݮ9`)s4ɥ;]?Œ]LO%La!@G?ObPUTzR?<E=@I]'E$,A,b`*>'kn ^#B@8^B?3O $mgu6#7$y?_A䈁4:mqjc|ʬ\t-&y Ddqu3G-z +E!{JmS^0 *LYAp9쉷Qy>yٰɲg32"m/7YfQ˔ph~Do>T AoOM 3rm ?2z!ï, ,+;>Cqh^(+7&Z[3U]PWLu/k~K٧扙:#"\bqI?!s);+_DZzM^B 8S}Y-: JqEDZV 'ófҐ3D"[ZbyίZCZvZ(qmEtva4XIEnu( YY:}=,WJ1i|ivɕEj/tï!L`1{[11U??gk{KH(ddx}}x%̈́eY._tk- Ѻ[WB/~mH-j3ʾ=3^(q LHWs`MlM4 &d:U0]0gj}@7"#b#_nוnQ-N>?e爈ḑ(~^͆\iYvzObIW?G9$6zm-?ÉZJZ.3af^C5}'袯9춸? %.\zaG/zk?IkW&u5/EZEWc}uRz[_#mvck{}W:~a*SSVj*ʃx#ԄD,AJ H:'_zONFH9NM}Bb:^F]5VZZɪŲ5H$< 9=XU>a٧… )%ip}8Jo$Ȓ) _12_?סJ}0f6a q@("`44SaBT_΀9asJK'5,ceY5F1MC'"wIU e+ &CJ=)Af6 5,fݦ쨦ͨhi؍ C < `H'$GL|6~o w\?9cN;T٢&PO{=e#DS7Skr]cV-vmqi`28 ABB }h)HۭӦ|h `+3=2:l,6lKݲg@pMi Hw!+z$HTj GEG,/"EɸsRnФ ${΂OWbm]L1ۃa \# !?:ԇ)ktCE>PCآ/ɠ@udžwDMOb Ѥ S1s CD;an:"Q wS$<^B!"҃𰐌%a!IgML:ۮQ 0 `PH<"ڨ4CϻƷ)}FT)Bc`$"遾aTp]wt?|"+ O} Gs?&:[EW֋zn[jlMo$GIW~G<A _kݤ?~|z,XiC:^}ST:w!84AEi\p6JR'){E$¹{ B:[8usdLb@>Ɔ'K9Q!zV\8IH4>K q#}GQ߿1'V6ٿt9R#R{$I\ˀD۪Ha>_soKL~H\fy5hjrgsqrHB^/X&X>ټ;4 xP .KÎH2(+hHˉwȃ ;,.8ӳK. >H$r!4UT!qEe_[Fc8\p,kx"*XAVfnfme`uy_&[ޗ1JOROa!4?,<[}#8 ڨZ =gYVr\M|6"x7ѧ8!L r:)[LEl։$|:#dt J.ZsD @]J4Pz?6̪"[Y&&3 q 7z3fșYQ̰c-~G-8x>K/̱Ȉ/!([1ַ%cX_>Cu|~+2eZV@!IDsǍ Z֫S##&C͊Ws+."p(+*PZQv9gNncm9sگ#- Gcń qQǁҨZ~؜ggq~sӜ6 Q|x95Rtk䎶|; z,M'7_5&ھ<& X5W*<2T,2C[%njc«, զwM PJޤ5Cณ4ۓ2 {ƘҙOqC3SRd6G>MJuŎQynN~6j"7ZlM!Q A >8FO3Z$X8]~bcLx@ W%|@/a4x ).=_ ]DOwMP|J~, wFͨj@z}!& 66Rh?]??Ȇpʋ&d+zo5Amp˰zzਙ_AK13QQ׸Z2thX7]J/so|N_6;@/=S m:.=_Raٺz3=h<.-$gx Nwnª YUqw-j?1>X'QMyViƮ+pįLBKF©Ve1hP(&TʠouLcڢ+ PHbx#A>AYX0Qg@8G"kF(\Iw›mw텀|iEjvәhaPsb Dx2'RQhgX~ }S!~(IJrUNd{d )> QV/$^e8/·,([ \P8A'lub0; L @Ie ޘTX́ҋN`9$~)<\n>Ԇ1c,]Bm6gQt;9<  H[N_*00yEĒB 2*: 5!=?"qh!79{U!қ;=Q9#!`]wx>rDaYD!"CDu 1 rjbӁJ~ yfEMiipz2[M4ߕ?"$Hɔ2:<Ʈϋq=I{#qff^XzTs碠`kT3Qbg}=7NghCn:Wą; -x"=1DJ72ZόrMFEUlv+NΌe^/qj!ߪt06M':E5FgTR|̀5CdlzJ@V`ؐ^"#Sq S] aX4rdha0`A`A<5> " ? {JLcGpG›A"z˽`syd |ၺ ]Q ەPFkS 2AU *;Y_nȇN=t16k+M%FԡcoxR*;ԏ{hNBЙtETAL/XvpK{44XjfµU%L-8Hd|ȩiLC6{,(5sBl8Ut*S'ymXP*rBQDJ{ND7 MH54E/1 >VEʉ(5+eT{MDJd*ҙjDiEHuZd:}}cc'̤[WTc*^vԆώ圿7o,+z[S>y u.W鎝5yPwC7Lc8HhǠ%:zd.yZ+W u?]2%}J'0w-!#Ye:T+E(HyJqaqF>aEg?h)T+=F }vӽPҴI0uXIԡD@KBE)b89)4\!X(^Do][10$!z/ b(T?'mj{ GDS… V}iD"_aПOONX G\L?ynw& L=77z'ӁMia:5TXUE(E zxEaP|* yH{ [hփWݛs'Bo*c]GƚHo;\!6oy4 r#{&t~+TJG:H~Poy+Б %(,c&b}L,e.G-g kDz%ho̘s%/,A"B95#31DIfAIElrm$gF >af`܅mI N~H%$9{ D&s 3re2aA$  9!PQHY̳h;9h:%0D[dIYiѶPqۄ;=;!I?r{=zR;&nħ':q0o3B&2(?/cԄ#W1^&7 JW'EHJ *D2`@rvŅ 5LZjsl, ۬g-y` 1d@]"i$VjG/^o}"_Oj_,qo_A*?"K!<ʞyRA=cK|txrlTa0+63r}&;H2'&!Y{x)k#TѱWPW] %itq.ث.PJ&xnquhap~Ϫ'C3;qk&JIPC+}ZcX%x0T4.vapI/2 ?biSIHJ0xQ?霿N;u=TWQ9:f19:f{i]*%t.gr8-]q _CϲG[Aot,IB)L*sli2}`Z|h92M"F-yq/0*4Y4$6&C>~GQ$ U 3Pf|~ g4iP:eI2Ҥ*@y>zDK*L1j qfgGL $ˊ s y{߷ҨJYK%h~7z$ԓ$R0b0 2o"t򪒪1cD3 a@ n"+3[SnR,GqO&{g'DY/ w12ac&Wja-qn#*4<)$aVA"c6pi*5Ps&J1Q;:zR N# abZ/vf٨ا2ȱ(f]? `Ta=}T hA= K =BZQW K46bۇҁT_)@xDgl *'. D7|{o,%=G=k#@Q GT:j 7"lo.vۙjq,C]I VR<|::Jub#8l(ʁ>poď4/ű/W / C@lNHq(jD0b&X@ _o_ zMv7!u)(:B=uyr&ss`cN"pi3xaˆ|}E5",$` Qíw2Mf,Xbŋ,eZs"2ؘ\!\ZHw$Fy^'p&QUI gr7rCFʊ9h!xL_ja\K5oPʃI-6q6=HH@dF^jo*p;`3(#e%47DgȒOquIgְ7eP{t6CQ.+ệo >Bp}v yƁE"lZi#@uDkZlT/H={p@BC:ǮfbGX "&W;cb5XZH#R`zKS!NhO؂[DŽ\=ۓ ;=3n0(s*Lq;̦¥<%Ze P@au|W!,ʙ牁yd0w"J )fgªx:H~I:gI 1{ N~,Syo?<_n}vϘר50H'Q>"y`$@+J}\ ˫@E@{mMd8҂dC=#J vbD4TDT+աfw: ⥮ p:\u}$9ʀ8ϫ3>7ZA "D!͙ dЉŌ8<3>/9{Ȇ]}!BG~ދ}}E, /ԎBd#߄tNw@hGQ '`hNkZq {D HPIK@NTP,qF늒'>-UGcXSE:؏f8i@Eb eÙ2NXD\NR(7l^ ^uRÉn(^3JSplxfʊ+*D^0+3ߑF|hy77(p/ɘ%Ð+_-|32ktogZQG2O뺭9<*N'5-`=3¢q{ * 1(N d+5UXm!R R+ѷl?#$% q˃vhl6 | ,w=]Z!B`@E@:HH׎͑AM<=t@d75ܖ(EV|FaL#㿺OO hZ_O;4qM:I8Ҹ,bOI63z'^T/nhR,߲?YeaUSʕ J U\]ȅ.V ^Vd(Z]$H`xO bRa"om j-MX{ x}=Ne5TP5Hx@ĎZ.jfѮVn, ."KcB5ѰM$q罾IMoIP)4c&)A蔐 ~|O"N;aL4"@WOyu_朤P1|s^jN3,:/3NB,],yx&rD|7x=c|]ߨ).­oJ#C~:XXXϠ?K%"ʼn_5%HjMk^:jůkſ4aC"eB6!rRJe%4vN8+:ą$<8t5_]/[zbԥK-FSmZi5RĪmȥjuv=9o?V)!?2|F#7v!# /eڏ?t1b"H_buۮšhnY9 KІJ*lpNNZ*Um\Ǯ~fuśjHƿ<ܑpSK‚]dVhE%PØZ`>Af'oЈnKI3ʔq"UAѠ鷽[߾mKI;~I'}EBA?cE@ a(( /fթjPlj;Æg[;;>%`]cqrիT T nEUf3?Vk㹫¿#v̾<4M3Gj"[y ;2's46gQy:>|h RG- s!Z%oQH z@X-yx$L j0?r'jL4>rHC+x,) b\N#;|-w>{ /*WN@$4euAWZeu U-+ pDk *Y,9cOoz;?]q'ۦlO^%MZ1j:2@P5Ǘ/Nhi=:XjtZP~}d +]m䜭L#DSWu:jcG+ {7Q(AX&Z93 )i ,Ā, Hldm4_O'!04 um@޿I(,GyTh<2pA6[~AijߢH;t:[JRUpuH~yYv!Gj%D1g6zkBS9 C2yO" lUimij>Kinj#-Uc,-Z[[i|'Y߫]RBեCf1mûeaJ:"%iieHjm$Y;uijfʫBknڻ3;AYyN͊h-!taT5s+I^: E;0|ST^, 5y>>za_e7ߓw'Db?F1}uss3o;cG#73GxQ۾ ygHH*>Urg LaT^)|aCG1wF)\g/T"aA-}6v5fϡ/]jGq8_8WsTi4R3CKIX<"{a F;l20[xnL^4e ~ t. ZȊkL/ZKq˲aAxYCE?5{ǎf3hU-JtF,jV]T@ g|SDUWj*H1J+efVpy5Eμ9$@}{1f*Sbջ;򢖹ޢκ남]ohW8aGeG8FU Њ6#C'%C0΍SwkHk,Qڨ"&z('Vy6v :߼ֱہǦZMP:i'%\v®*ls++.`b}:%ʲLIffa*{L?/3R΃D \ֲh' 7,&wdqEzW.NMurnYe~B͔ fAջK7dA?? 4V!5]5)3%_{c&b# \l/RWJ5zV044 * FDQE@G{܉ ~@!H i0a8d)*#`=$GMUy xʔL}9ݙ6Q B?U렞/iY߷CzUn9aY2]d}l/,KjCMziwx/ }ˎ5jb x}䢰)IXT&P "l>,Y) ̦a'ST aOo#"X#%AS8Q"|H7`$!:]CEy=vh E<CUi熭a_[B noP >w1N ;#Rb8VSa̒$aQbe:1?KF O,<{;UE HxbT84v!Z6PgNvw ¦Cn:eI$I r~^tߞ-}][ȰlbՐXܢƇ%l$Oh"X0CB2w3+p}أPb#"="AY#_f%wht u#V:u CRIi Q= Ӕ#E,Z082P_/v%HOUFXip@;O 6JFңiQu6Үj%id͑N[0Dmء#D!sq$&sCE,tE9e@$T $PoE*y EB7b ,|ؔH {<%$'>aR!"V"> > ! "-]6I&R[6cHBMz #M T@HG,%,4 = > B\w8'ߌL3WuV\RXr>+߲IRFx22BUTA^O颯A~1{! 9j@P |=֠dl!@ۆ9;^16ҁl؇ ۩Mvy\zhFOI E:G.)kVo|,fsc\K &^zj<1 Sȷ5-B4AbY7\ ^+(iB;snVɝR 9]aRa48):9c7}z ?  1R_CpT"ABwCkBU S93 m$U @(Py/ BB\HAmE΁BK"LFEB1:;~o1 0/k=WDL\HtH)4@/v NA~`,|Ň&&ryl'İ@,rɹ9"B(t!M13D k%|&wUWD/l[mnu[ƯSmy-mϭ7>"*%) ?zlWe:ƔR@*ARJIRHE:?|Qݷ¼|#DŠUDZR @Bv2'a=3BF2t[՟..,,* ӳQzbHE{S@C$ 3ASMl8] >W2LV%4S0 ]h8ء HtBRފ.z'\E hGVsOԸRJsCVa; Š4RC6b!  D:΀A  $ bef21x}{UM *;@:ñ0* r zwBH@Y$w*TeCuݩBRʋdR*>ϳ1JH{קaք (Yؒ(PQ)3PY + Dl" ~בE; '!aõ(d"nu~b?W|p6Y<ԟȞ=(Z>*jG '􌓡5x ЄY!"g۾O@ q'X(hq=mmwd3!/L6vaf/S&jJ`mah -<%AJ8I<bN Y0p4F9e'>A}oC6Z)^@,S H&g \mmm2|Tm\!BSv*l{DT&> `%&3.\>Y\/ ̋@u/'_H{0c "SөveC: $*WTljH ?$ CYPxZ@2", ;=<y4K0~ XSI$9>1<ϋʠ3B`Oi0,7|$D]$`.* .;"S!e#7$8ڪc0 08y4 <oڪ7u*1ME;TaAwEBE*?ׁ38KM D- %"5$0’,Bﯨa E^UE& R!ʦ{:#K0m|qkA&:+A֓MsM 4TAb ezB(`02eQ;Ŵj*3K6l|f7% p` }Ty$8+.@~As? б@Q mc9Q !C&8*xB9j\qA@rDqD&v$r jD!8m(H 3I$I%_Rt~P`:@hdV!0XFs^0N+NM,P8>Ū+2GC!P{i;C@U1c\>yAv"`޲.q\(0VJn>-q7e)ҫs}߼ߙsUV?TLuO}It/݊J(<-D(ؿD6Akvx4_]52lKXCJ *+Ux Xj@ÀDBtGLdtqt(!;IT^ʇpE&u56(D9=qJTw&4(x<B ǜ /ov4p*].I #+tŽ;[V.`'X RI(I) ?uɞ.;:BH]@ۘ' LU Zڛ%n1 b(v`,fwE)}6Jz>ṎeQ \n50Hb5*-z1~jUV Zz~hxN#̋hӽ?bwbsq@ wZ he J](a s |NVd'U uÀd@ HY6m̏?h++{ٹ̜4A!h'7}2& \ƾ»ЖTH+7$AdC}҂MT>s?;B66e}-s-/c BW<{іHD+t viޤ;&a5" E$WӊFFlڸELo5 =2Db4o$X 3abe@Ό:HӾ8W}S mD1b`Kײz`\+NiVuVPbܱbs |׷̈́5d[ zN1"7&}!  ȽX:8 ”LJdI 1ʤh%&#ԑb8a%Ku뾸_Ta1 *}>$NҝD N jF÷Qϐǎ4J)qZC$":Fn=Q"; dBGqb"z YRjӴ8gBNE"D〼 )JvmPHE#&"l6N@ ߅e]'s] N˦ف &^0_w[xu*S?su5m-F[Kikj[Kim-- im-۶I$IXLu!XA#\Hs(?YcÄt ޛo>DK,Yg74tU7x;PEVEOFOԎxTRҀhh `U.) ?owT|f䊙Ԧb0NG] "$^#J0 itLYԾh@Ґ@5TB(P@ODD`/Mp sIRMR91 )aW"Ҍ @֍HcQhB8 HuаQ]IY0|,Q]7NA'd* \,@HY< |eYbؙ5Z1H2*H H"5h/8""R9 XCod\y.͕fֵ_Dq[aSrj,u2X`g([>lb`A!4 j/}/,HĆ=Ƀp?T&?h  wvmku\?'J% N<ㄇRn;dd{w}9:/MJL%Ohip;IzRKN4 "HR)z-*cS 4 ;0z>{w9@^`TVFZK#! -KYlIZӯ]!h0̑k_APB#Ba@'oxQ:Rd"Q0O` Bӵa0! #drxk v)KHe4^)Z:(0P` sicTp)}!:,W9aj0[P̨PB!.!?V *C fFzC19Sɠ$/# ?"$}P}D"dzZn"p:u rlc P+FG'xVyZuT -2 9^#)Lq20Q@ =J)Fe#B!K@J9  2t=˸B1%XiM^<֜"D %`x#  LF ]j7)$5߾ Hi4k&YR@߱ J3 hk`V#񊄒Y#o(RiE#QS5%_?pw+"0ĊOE|`p>/vfC}Qd~},=4? LNg=%24(9,Ȓ=W2T-0=$ 4?ZA)- jDtb\,pXvgB|IOy?_J^7zsE޻'Wʙ"ItF4A239hc'Ṿ*e@lHQ& $fHF *?+ªKK޷q "9NQƠ{IZ"Jhgo{ T8X}Oą쉑0`*0t4^A6)<0 VPE ľPO$<ߠ&򶌄uI % 1 kiG̽"I=xBB^d2d.g/}#?R5E5H SdE%"RF$!'er/x2h |?eR _p}Pl Bw7'"ejeHc1J*)phȈ? 3.{lЩdBHeP74A4 Mj*QUR,u M 6=*lMϬc69ͯ7gbp2}C6X#!g0dpos1/9X=9@>$BdgV֡SzEw]_O|;j##M\ l3Tt,mm%EY)MӚ41e\Dx5{PhМ$wTIn5_o@o}r2޵_&4XnAO Hfhxf\\)]nŞg$Q'ЏPTPu4KA]H@I[?>&nіe`3ߌs6K4T'#c$kҧ0AP1 M᛽X=  WGf5)$!o*D"CL X-)h)vxh!NA4e.w;B!> W |"bLcM* NMLTn;:8)]|7B@Ib|MMHMWrzN-uRHHBI$l7{+Ъ5ł\X@ uԚ`m |(:&i@`_gfs^ *KǮ.NЯ7[Wx=sY@Zwwtw,a~T$eUm8ɛ0@Q>Al$oƗ(o>G?*}C3P H1ME(it lq o$`u@nvz>gD ]ܰqIa&T~)au9}m]F]ulB~o'dG I>|b 02q}Sd?ƭb}Ul!-%A؂(`FI` $tbtK^T Iu~HoB UHh {IHnQVڡ,Ba> Cu!zCL.";@XIaDJ[h+A->6h[d[4 `x7_,"TDb;u"XcNtXQT5iF7w2>:;lc Y:2(IL3.sFQmg89qV]6]8.˸!4L` JdDFACA mo]wܙkYG]Uqu2"=4H9&cE%X]^׶8k(dpCF$.ݬֲvj5E%cE! '0(E}Csr#h7 Xy耱C !G\UBQTiCH"8 BJH H%SMZݪۭMi4Jb @@@RRJPy1PﺒK*`gz M̃ͨ">d"dO_$I$h8a )" !!M"nH8H79<8 gibx =QGRC6C0Tb OY$;{ 9󓄩$ 8"jH(S @AyȇRJ!d!tfS^1ӌX3MdS hF !"I'k8($!c~+<s3-s־7Œhk.I% 7ѵJZhSgQޑUz;F$K=I 2!N &3P3E-&66ة#QmIVQ"IlOldD?h;4Xuc~p5x1}JtcfB1`I*4B%!4r X5j8j,D_f@$YPsuC#SIl#ON1fF#6"!Cv]_@ 5rQ@D~1ɌRTh!KX::!MXVT8.}T5[[o;bf KtA(0E[bz1ib2 8&"" ź2%ZHvFYR tRWpKKC.f ,NZC$ڧ mjf*F='0PƃS()*UViZ׆Ul[TY붥T`v2oVC 26مi+MaZm*%疉!&1:9׽2+UA*( Vu9a"I҂ȏjmbB ڠeB(!bu RIPHDJjH/?zLFذlJchv=I"4mL\H?#X0JpC"t w|>%^Z[%>Q+zǬZgIS$SLSU7[t'B|Z3V6JTcRn ]R+GCh94BEaemKQ֢Z8fٸ1áVLUhf ( ^!"(AnAgp"~O9 HߞF$^ @# =p_E="L46RU*QYՊge U|QXTh$jiV[lY 1L;Z9,pZp$@.l3H%Q4a%d I7; pKOe /63 -(OtZbR7|6@bhFL q˶Q m@-jX v'؁[7pK n`~ q71S&=4uE@i.4B7çrWT%ȼb - 0(u p*zPv՞yK7#i# 1L =>l1ǿ**w9VrQR)$Tg7YX{@AdwBfIda0ʂ)i"HBD$QD^{vrRQu0ICdHI!HȤ CIl#8@hmb[ A0HRoQI K#&$P:83Z#eb:j*)LR @[ )K1lgT ;}1I0d뫆ȟMPm%;nc`TBX_zY/?y]d#A8@Q$怇j_;a1!4i70ICa5]{L,~|^Q4L{k% bnĽ Љ: 9'6U<P"4h/ -i5u9gS Ftܣe@= ͅE!` <G=;#h9C4\sl d3A*{^ҋ3i+d2†U3DQt"4M+5iZNPd:΢kQAa)N (CfpR" !HGl QMB/:Wڽ**R55'0 e-y4Wl8D4a KMw&NA&Y`l?~$I,a…kḋfɆ R y (`9d}S(c\dI41;WaB0gͲuBK% %QpplE2EzHS $:bAEaĐ`~a􁌝Ǭ10!$*LjȩK>T/aSKg 6?1a,P2K98GJd'`<} kg&'=H|gyPpb`3mDafDP4:CA4;d[$G 21N W mكΊ `;ߕBȠ|e(X2BXnDM: "ڍ, HhP V??1L:u:TEDiA"&HI*ՀHww NRL "OR~R0,☤$ EׁHn̠C24r)wn'e)(Z^t 9,^< zQ@0  PBȬ"jY]0O0@(XvRuԬԕu`@((bSAc`q ,LΟ؇*}g HIS3'S(br{(ar5 {`)Xx#ÄP']LSBGR4d|2b@iJ 4II gQf6L{B@[ 7whQ1#F 14+%b3hwJ`$cLDɄސ0 `Rjs1D̙$R6<0 D D hP82R6ZV6؇0+"s :hq4bt՝=3e jFdG&SAٶ I" 3-fi6˂ (/[6-# Ŕ JhrAg2Ŋ)*I"B1ᩉ8EN}:ݩ STf)hN Y$Xł[Cc!; 9Fp_0^0JC6 HX? fAAC%pjx zG `IP9@uL cCMQ~HE@3B.̓>t>.qX,F<{1%;@դr+XE΃<#!B@"'Jl=Ya;tjYDۂ$SD>c| ="ML YpD[+t'|q cn!TIQHbqb O ["]L&p6R"޸3 #՜* {ą;aL~W[q3A%$@F4B!dXA5bآbݫumb %-oX B32ÿv@ l:;t܇(cح1-;WuaE q'R7l<`=( .BSU$PH:F4¢}f$bVB1B`A$2 R)fAD"2Gb1)dtM+WjTPhtd E  "|J<8,sO`g@ÓsHD-w&DX fԊ(K}(g!bdBh*`Jq)_< < Dl+7 F1x !Z>>VӲ\ уWm:ѝ6UeA ЅEt; %gKw7afMQR,ag~"xM9!DpX`ꌇ%D+e56tǪ# 18p;줄Iý#Y+ВYNV\0d:C ͻ܆cDB`vޑ1 Rd25*m^m_ceYT7wգfG%*^,BR;^f֋[,:M#I4+TP̠ܵ1GY _)$aԣ d0T+[볳,3$ς=To /Xn1fo(Ҧi]&N b, L#!Iz @ l+Bn_+zh6Q;v^M;r%:a#ST]VB<1^+Ӑ,APbzt(^=HtYpZ"S 5FH-omxz.T B<¢S{,H<N,cØP dk,[+$$h1^JШa R5sr+* G (%'stjCՃe#DžE1N0-EZY ݔʋ+l<AQ taڷ1$Q'wJ_NFN &(ăi0iA[ ԨKF4h.7!0 @`Ljũ)Jb)R㰶6'$hqku'Vx0ʭ(bvJM B`@O;SqG138P/;*PAsۓkB<;>Z;vJm6mv} [hg=wEzɀf;ü $$;?$эW 2\Bdjdpo쫣|fG ,|J5YnR1Ⱦ-3lL b]j50B7(qB''KolC4?AۺN{I4PѤА=h1[l{`)z6 oQl8y$$fy 2#34Hm gE" hL,6pCQE8/Mi5sp Z2FOh)GɫT`x@IGmT DP:A ޣ: Γ ,]aAa%DI " j%"2ibo}ݯdQh 5D*^ک]w(j.^(RԩZ\ :ˆ/SCP.-iKCC 5\+ ىgadܛQڄI4vN-⢉+zIJ N!tr|"& @#|YLe;;*X`UFQa Mp6SH xv7ȵ9\u[+]G$ /5M_0RT@~5[ܜ$Pb;J.FM04 ^fD ]I^HLYovfHhg` \t1Ba̪i$Pj$ Pc L01jS!ל,F䟍~iBi\Ȕ_-@w^WqaA1'^RV6).΀Gx%TwNӔ.2٭a1348 ycu=R);q ζK1kf`,j@b"D: Т,o n,;&e[Vvsg h00!2\> 2]e׃i -qL"yڝ1⠅$JUp1JMbAk2Yl1K7&/Av" CU( '*uL`(D;."v,I)*'3.I!EA*(r"2#;WBδ?B׼EM!hm_X{ $ @"P {UthwgH`X:4Rho-%)GAB *R!Q!Dc'In=1_0XDQz]ƨ[L,FIH !ǠYCYjb)!O:|VgT nF'#SwT$laTfDCz\@z`@L":P2@$A _0Y40@W)0bDȇ1z{.λ{8uF 42/۩J2\S21 1VH v l -_TeSd]l zF0("A{N(r׺Q0@A\E;nyRd*JJKܗ|Y`b!`uNC8( /#7IHٗbkϲܔMY7E4l 4R"5+_n5Fֿ6<~_dS9EU-Ebf\4C8p9Hެ9*I1kH`!/8vZvD&*̺/T(l3cuB,'>K)\Q@65)lL cQP,? }@ Φ҃8 @G("D܈!*AhA2#vAhAx d P+'*AOuمsH0P Lb(3Z `7d f*,CD $o0Rgm0b0bŐaÃ~mm)8"GVTCSaC2&1in!g2BQ]=r;Mܠw0pԥH $ P͓RJ%Ejld;*ED0LAF)o<3e!Uœ@%Y/4I{52 W f.nP%;h B gZ0;AQ3AQ€Ɔ^sH& z:x-d[-T*emGT".#\))6SdREf֫m|`EE(b  JnCT&@d IG `'if€uSAjtKGS@TqbA$5$@PCP "~ Di*o`-@E_5yvF6Eұzm}yDyLLI" 8$ WO!=9dF"(b03@-TRHvt&B,M D@({T%@'竐"bH܅o/$ZZc#:3fv XLaE@0ȫ-'4J92maď"Gv5ɤA巿X0-*Y_̠ 1'./9VvrRVA/gze(dq4,Aœ4"ꠌDBti{03!@hTQ5"U]o *aFY2\%:G&0ŅjP%^fT%"m ٣$p5Rκvv5&l) ie);̌$'TDEw@97IWtMXjBQAhY BDfpy LF%6)tq7Rך$%,{FA( n "j)b~sAY"A ,JB@=5 c􎣅A<4!;%ϳț!$F(P*",?q o:}}yH`K%`|("`:+{A0C o # *TpJ &> u(2l R, @ByXP͈u1, ɀI`PPȡS" ,eC'T5ڪ-͎DJBl‰aV(RSBQf<yH# `%A4QE$po -Rm.JĖ Hc$,l\"D4E(Jpq>iqT<M (dMf=խU' 5XuV89lu7 )4b\[7HRIsdudbVLl h6`$-C? wq(hW. 4*")d0bFBz)!`h4HTZ"q STQQVEy.Qb)*Srcr>Jr#^"z=4=8I[HȤ6 ېb% t?,\B^vm;)bH g`6p J =იy}1I1/LBlfB' Q{"HԪ6ՙƩfܶbö$; sD-d^?Mᄬ)]M K^[W6髄l5UM/Zٖ:-ERf|dяJzXMRDoq;Ea ńi,\ B̆Ra~-nJjMk/|C'% u 0 ~v4P4?=VvfiԋdߘT4'89( 11R=AMǙ'0j4<hD5) ?ݡHVO [h9q Qd(䤪)K `bRo`)B1Dwh࠻+310Ug24JE A5DTvUjPlkID F?udZmTQYJk*VTYL(@HR"g=Wbgɑ'@*0Px^5_@V&|BD"{ 6VX0a[!ׅ3"CG8@D-J)ŠPD2HJ%%gJ5) "YFLtEZ"918KM>Rz\llcnS8hpnh4":&(ZB?ʿ֖ViZb'{*\ h @\@բ'%:'dNX8hi`80z4D5S H KbXظXQ$]}9r v"T(Z(U_9:AiC@tHGRҢTjRm3Tӳ@5ՠ>ʉE \:j5E_hAè5CjUmTVUgPŵZUx5=HocbЬ84&@zddX@2IVfm}m--LZ˪5xׂزMYQ[zjK5dѡ(0z2- R_ ]*`<$I KJ)CxxB$HR=ug7̆أ| /O <0G Ȭbc4! ᠌`jz!Ed#. w3BieZl|7 f#S5N,HhCbHᓠA5)0%4NӐ;Ƿ5|J ĩ)"@  ҄P" C%J`dX9H E(N%)qL-1 ;Z<8z+jPs>jD @;( lg;l7l )QLcllhX(܅ F]R}unBo`'8cé *" RLO~Jbc /~K$PD%H'Uuov+ޯyd+AA"$!, +2l #)$DE̅lTb4P!:꣨6 ISO'y)t_}.a ZIQE%@BBBB$;=琇I4HI!=SZAB! ?@kmcVI6ƍXTRRћTV5VnkjR[ajMe)f+bkQjkY6lhmEmj*5jݷ[JI-鵫˯k_NV6u_jVMX0 "* q]8*{tL!=qA2'!5bVlmVSi (j ,4(JMd`QYP"3XX═-4A 2wfpar0ep =<x`Xa"QV"ĀGSL *s "{ntݺ,4SPm`)Ȅ" Jٶk"I)bԴ*eF"a}_S"(""""""y{hglfޛHL%ӆU2M^nSp`B |8, 0 ( *R*9);q$KE&&dgatZdnGy6Tڪ@0P}B<B/iY_s` pU.2IͪӊJy*R8j,+#PX'KW:/[¯ڼ%5Ц#aA6lC8_= ' ~dQD>@-*F2rG"ٗD!2(# ` Ql%!#`PE3XIZ m{m/RHM2^RQHRh<'HkB[Nd ;tYCSe O5,AO% 3'RT@ iՀTGǚ:NaRu*vTsj"2,"B"^쒤ԀQ YI0V~vSp'N$&%mdX$ִۭZiIJu_5HSN%d"Ec*S)BmaS"$3IŸCQ-i0x= θtY㮍EVXrQe$wc%Lnw2Aߝ@%eXdL03вt (&S RJ#HDLkRJ^NtF<G8'lP8r0ԳRy$"`oo;yw)FZ*U8Ӄ5;_L%nN(L/5\8!bH\VM$%E*p@_(\lϱL}t?tPXiFx J, t4Dz@;f yAxC; 3M"R$"|™ Op4d`Ryh¨PQ,HZkTSwXQW2NifKV5jƭ]6GPK>wQ!AY`=lO# ғPXBI$  ef`?Ԉa@($@{0s!bR {/6fLS,szS+*B-'Ȩ@1Q}7&,CXw.mRAc-ɠC_ݔV) C6sDs9= lKBjEd#FbRZk%QIm, $L4S-ͩDbr횒J@Ii4j(ŖLbjٲmfYFT4-&RT&bhoPb6-y tX `a]Cqqq(fDEbI nH-@oQKP^_; aWR_i$`#?, h}yF]nM-՛jM%_~]%HM6UeDTT4חS)T-l3f&d3*6h٫+JMbղ:ަ^(^2$ 'nà|]@C0"BH@q>\tC!:E`CE(Ж' Z |LAYQVs6SV>zKyR`0>ar0-$0{twE)HwT"Ud IbCI;/@LLhL-%5ىD`@хbۚk#p0!աҜs"A pj5Jn՗: "##"CD 8(P ܮe%eʢuB$J( и YcAh!b'E"F@0Dd'D SH@ bP)Xo)XPւjC\@R4~''!(^\%,dQE |2]uGIz&z= b!m j5jگsEMdI%۶ic2A@_$~82*AHTBP*eĊüfHxh_x4\ ;|dM҈E99+YxVjmCJ2b;8)A ea#≵1?V #3`QQ b7U z2\z -usW[DIYHHlǥX`}7(oNK6Xu֫9_HzfPyS.Z'n ͰE~Ab"GZgPiI ҝϺ(i YHX9,i^B "?|Q*>\XaӞg>9=W~ e{-zH59"t@b1 ?lcȊi|h$O -'$M"U B@dC qlaQGDwoSM7/߻eRzmHc/EBʁH}$`Bi@|U - HsrYYSxO!REzr“dJ'aBxîJ$P9x$ = µHX*" `bt+M5_eo{u^q()" @`JBrJ&`Tl$"AD"hrLPic>j1ڟB| ܋__ܑoAA8Ox0j$h%j=uD_FAA4lc~^ jb7HR.`DXAYbBFAPS]iBAQՒڥ6լZm$дUm>rY !ކ# BA -s[]+LQm[j$䟏﯒ڸh]R= 1BPJF Г1yd,`ءy,ˋ.U5AZ ,:DfKjne߿M-L蒔-)NfTvF B((TErsYmnmM |9UQ-"&bA$R,撫-ջd:$<Qyu&1sT! T?¨V#$kBcppۅ8O|vc2,DmΏRFZ_*O޸QM: |nRFZ_ SYg45MAyx۔w. DQk7 '^2CaKάa ""1AF^ht[Kd@9!d`Id&G>$$XkqSOF^1CgAB*)Uy_C ~6zႽZ8Hdx -18wciRgΜ&F $LOo8I'(5?G MV~ѢpdAhIx0BP8$A,V" !M/MTjqe(Lz`>bV,raܲbN1C^ìJL&Md ` R-1iAdImcPWvB9MLh7YK0#)7H` _4R`$L'$cc9+:h&n)UO6YVX< Y Df`vbd2I@▚>s ;!L >NO[<&rbH~2(Q~m|d(HmID "D> |>@낑H Ef/ uXl)Ɛ :@<4!m8Pv%)K=I!K0E=,I޷PT 48@N!U(I֔F Bd gR") ,@IbhFYe[d'4ҋK5a(Bh@a ylF'_Y%VIYBk$'S-#QFAJH"6@K`}։ `p-U-" )> r⭙q$XH}/ҹ.lۆ]F !*C3` E3E=C !GQ0ޟ,JWӂھZM>@l={ ܠKvR >g z7 sCc`'{}A7sT$! jF D= mT<\i\9j]sIE('ȁhOO J% ;O.qVGY0:d*9) Š$ӑ`h?bl-,!=^k[WuG4"i=1o h j#Mː-y+'|XD1@XA46m8{1=j{ qe8)q&RXdʐB$=IX/*RfN]@^E\X%<=|dCΈ܂ƠVَTI5]]CL)/RRVYfg/0, ],ӽ(0J 8ImJ)jJiLiJ5KRɤlS6lĤʳ6zXRT5j@m嗓k)i7o)yJuTA 2RBR} X),~ݴ[B,"x1^Xo,wZjLJN079(zh`kEEdQ)S0T!"&e:JBőJAh 42A"1ș;иΤ b_>:w3HZTôDJVԱa$`;L/! BPo)˓JkvS(v# 74d"v,ȓzHXk)edk'Cl8I)(|*d0(XhY PR&V *nP.9pdc*& ]dX!c#,L&FHJI[С!VO_nѣgdH91jNBg*Aj)Xi\3BTՔ*#)wRꪐ?Y5 QAYD'~v@5xz}Np/rmwGHفX#b<\շy 2u$d0@$6zi0PAWˠCub;!rh0/϶ AƲ*vieCNZmK:l@R1I` "$!D" `L;n\ eJ)HDQ (DBJ!$iwŹ#`@4P '$QDY-c#HqԂ0eA&B dDIH!RA%  (<)"20`(?lU4\aDH$F@8@€q3`x<)K! !@TdO$ /:kRRLkvYMXlb-HYouB4 C@e AȊ@` $ƅ $ t;}@`ne9 i8`mAm`{+ȑT@:P2 Xmz9 ڏ4U sOBP@G`C2DAO+EH:BҔ gAk4TFֱZmTյm MfKm-ڍkWTȶmDVKjL"Vվ-jJ2mʹR$jQCC@"$T.*A@ݒH:ԐK )l$0F0,-Oio $$ GsbwLQLb6U`)}> $QrM#CBޏ(-'tLH}R(JOG)d(OE&<$)@w*0IAIVTnUe-h0@#729UIˆ'D@=#Y$ &bV8o|SUAUżwPK-NGiE >C"Hu"D`i`olG/,GЊPquL!S GHHkCE6YM%$Ֆ*kr>@=> Mv>tI HQl8 Pc g фli&` Ja4[%@h`5EV`?@瀚 2"8@2& \HoYHcP38PTs ʆ( @P0 wWEe&P3 `kYAhnj2eKm R@m0풅,@mBbCHr Q+ s,8&'Ad9ahK\Gi7 LJ3q>CDiN6!L-L M謔iaS/SZiH1"KAE2ݧoRd[EkiZ>Jc)[ IF "bwEe" .}hA l0 ]0E DԖ*d[$JcK-5H=k}, "CnS,:+JFa#fQҐ4 4#Dt  D&@O^ 0H#,$pYO;0 1+u bȆy0F#C!ސ8@K -FEy uC  *hz7iɋtp ʍ!DA(HR$8  "\%n] UrH7*ꚴ↓̀}D)F"A 4buYhl+)6ha=vV[!Ir!19-'aGߐc9-F D n`053B*9c=jYP6hVՃk/L0UHc  =5T]J @l h0pltp#H%T(~!,ARtOt%@>f IBŒL! ) DGURڙ5ҵAȌa}.O*#Ujh BA*a`., D ]Ttl&mEѦ&ٳke |J""EsBL2,"86!TNcN}$3ԪAFA@ ˆ''Dj"A00눞Qj*"h.mf!Ǎ\Ѐ!HQ}:^Mt1ߟ.jdy{TIDT$d$  DX*/ )H$ 8Ԋrt{UNWFnmj^ON$YR[d~ԅlmܷ-l)i]MUuͫzKJJ(tDe#C$`ϴcy>P1;_[ cLI%)EB؀HR 5L/0`ad XTTQȟ(JVPRT ~>C?/Q3X rl|ka$!DDH"3ʌ2k !ꫲ} &%912 Et J|`8&r ,}QuMK|{Mr7Ika; ]rgwD`8C@!0T¦Ah\8$z m3GT)dƷoTDjH2 Ө/gX&D:ǝFCa8c2Jn`k!HL !XJYF$G]q<0rLMV-i%Xt5a*䶟ߝ#x14yȡp/Jmi(f,1gR*vSxY9l!4'&n `<4huAd9wb UFaWBѨ"Ȕ2vZ@ A4@0`6iƋ0p's6Y:%dJh` CW~} Ұ6+qljiYMV[,[kOL, BHdHf   S !x.'dP{"e@0. \JhMk{-NVV5͔HU.0D={T vqY}Q)7E`cH *@R{ۚSR}ѦDkڀ#K[A9=c]2M6G?UVY4 Fj7K}`U|D s7W2/<Ќj/ "he;X;$VU Ji_V\!hC`0S * ;` P,aR7xa(i)Ԓ&L' 1"p)h`Җ@@ wȒNI%ܜN#o3lmȑT #@.)/W{0! ;A(w޸Nl'OO5Ej8)76k1|k}[ /@XR&C#m!w2+eI3B@YC";`xRSUJ'Ub"J(}dE#BE7Twly>垌ՏhWoⰻh C!Pb$_^UrHV*+6jfͯϡæ5Df@>$`:kU+$XA @>O HD=Od͜Z^5! M?;1?KɌedG,GQϨJh|$zjOc"'ȝQ>%4Dy1Ua^ǐL'@ :;[J9uR]tF(tYʎ~zޱr;D1KMؖ"i("!$) @0&@PhĚhшd8V&L62u፰ HEB7{kSԨԒRZWޜѬ[EvY1DFaY:<̆if޻+VZ2AK ""jYʔ ، !1b z ;$V{׼m2g&[*i,XsM&t-z]!V FjV:zצ Ib0RKomCh&2wWK{+svZ)N{t$Qee;dA(lQ!٧7!@b a '-.o,bh١31h4&5LΌm{ Y؁wBّEeIt Fi `tr" g>FH&eKbP" 1 F  ]=H$dzga>2:g!F+R ]94#TIHElFʄnc6_k2mA4 l7@zcZ q*F]"Em4/=J(dk%K![æCn3K i&PP HW-۰zp0(TeEJ (F-B,-L ( V`Q"hDpP2ER@@t[PBЌV - ;ǎqAA\k^HkDh$/ct?W]=Qz"@-GFNYQ$aJQwB&)P~#0~ȸҲ1DEF *?"r=:B ň!"`U$Ϩ,0zLg0.nQ,&)*QJ! :?j$RH%9/5p^L1lF18)K&d8QK(bĉ0FXAVh JPQ?,'1G̫)WBEw>DaDBA Sjؖ d6Dlkj_[1$X.=XAeJNR=DC8!2B$,jd@d@Qު]24zA(h?%4E<70JhEZ;}q:b=t2uq  {X^U\?zWF ]$_OCǰ$e Vb 0e Ǻu<YkFIa&L3#ꛆ}C,Z[O @AG$C b,z][~&vPCY']'Z908eGU'|D yU#xisHRç6mK%A]u^};u$Dm)%,nfm2Ӡ*1SY0C (0`DŸx]X3iǐv}Q1U0I`Pfz RA˟袶Hx[+P;%KtXf H"ӕMwvpHܛβ豤•ohoWR^Vd۷DD:tfqfp(cLT0ѷԉk8ʝY)Y1AMe3Nԟ|\@!Å='5 Wưu ) !D1@E>$ψ 7h0s72݉4I:H|Fl&yeU}-*E(ԅ?~ ҧGQV%@k^o G 1::vhz`l!/&kx Hi/fwg}ׇDZo94eS ŽFýSM@6GR2@}xd'IWcq^eD|+T`'ZW–c89xJ9&U'm{NlL%NmBtB+PbŘʜ D5s \挴xh̲ 2- $L|%Q$ ݉!"_mg¨څ<@P_*bxE|nKZL1G,-K|&"j-)r ު @2v^UHy'O<}T9Y ϼ16!B:kܟJƘ;Ǔ0c0j`XQ#A?T>#vN*yO%g]GtAi4Ǩl"p@z\AryZ{$#/qy|]%lL" ]8m0 V\VpjgLLST F5!@`LALJŖ~BjMA %l)ZwHF)ޙ3Z23L٠z 81SoD@Иk\w[ڒA ڄM;D JA&Х"4,٩zqzv>8QC\#J@u7>߭z./ʤKŶ>OLxچ0֠ $&shӬ`G{B#jP?& K)M4m-biK 6ҝ~*' V9,C!ƚH`bl,;5D) 񁁊/wh2f]/:ST…ĆrB`)g%O0@F W=g+t$2#pDD0>UKRݨ] Eу l( ??HLg"9v͝!]Cqn!|=w e>h*\ Q'r.|H^`F7&o_ 32G?T/UQ1H"6.9'ڎviA#>'#A1~@H77!O Ύ落G3ZhI X{.@FޑSV<շ.ZV :HېC*mBէyWt'a'QZ%Oaqcj3&Qa4֪5րrI} z)*)%Tبa\m^C#pbĪ$e A l, dh&u;>I!`nRs b/^y9phJmHřEyMB@"2q!hYdI@RPC0@|~4eBc@yA-G7p.\Z7O|fBx its@Wb(@.0[Hq{;4MP{O̴0>NHFL J~%XF Ç`] d 9#3 LI $"UPĪޖʖ)В~HpEP } V$# HRi 0R_R$b&1;Ʉ#?˗ P97z+P@VĊ DJA^Y!) 5*bD,š!+ƲCH2`%ZʋAQ" %M*h0 U@īQ!/vQ@-YAmUxAbs@iY&.M(@RD6 ()y\Hȗ`JK[lE(@T[ @7vaH8%()#JDp9PX!pQaleu7pRfmJ]̂˥j;,[XƊ+w?yEK3^$Ty0gCPFPρE%+A`%yM&@ NA2\5AMP445,O8H8 XO7QBU]?ߘ؉>3 0ha_ .S!|eW癅 vmTxF.XW@L;GPr_D,k5'Qq9 A0@oMḌ {yF+a{CV]J`wҷq 3`:on#MLѶҡhmɉJp1|K0"kٗ xB&JBKFm_uWf.DIVRAa(|3oQ EB/Pֳw Q$CC nwtp<4*-FPti(jt nɒ@aJh2z,fR(S&4(.rX (B:ŗ\>G&߸o_R*CqMTp{Fs>"VcPChq c߄ؚ퇇'ׄFPD7Ԯ4Ϯ_X*`e& FLbPKsC ;3zD"t5eYmۓmɱTTJjTtRR6h]9bRt,CL&P!QN0n %`*! "-!TMB jJ GvzV2c{gEnO;,64!c(#t6@44dvB B` /1&@Af(`:Q;Ia M}B$R8\q` PD ,A&Mjp+YƊ1+z!`)JX!j6?@s;vq8$wєI"~F6l4 7$݆QK%YPp;IT* a2K:y4;dAm48NEH}b_tXvdgGNyw@c9m"eA `*V6 wre2oG*h(͉/ ]bnAۤaRѾ(JYF|T|9%uugk\2sxb붐K*9 lm[֝P2]Ƈ<(bqBtձzm(V(ȸ7X;[lae;L(H[$mn'PYո@+ A=f0F8hjl7V2kUe&HG< ؇Rķػ,渎I7 1梔IۦLEND&JM-U ;J JHL<7prnu%5(*`V@ ȮXf) 7zL7;8Mk[Iǖ1fQ"n2&cӥMWlvk})-׋㭷>Is*bBkO## 4t4t,,Q OKF ̓y M2$WUq\xћ$mUrqɁn+fg4B@Qz8m%% H! QN Z m$CRk $Ϋ7zz""""""""""ZݺHKfIye""""""""""=ZUj@ѹN-roHE0#U`$Lҝp3;\1( \w7d>dAl &5 -,RtApqFzƍUV*.[S@i("#"BdQ+oUvk55XjHF TۜUSTUV2]bH @i5*P)f(iL"ȢwЀYd rv05mRKN ҜB+"y0 Ń8+) "`&F+hdPCD%4 v|-Ѥ㜈JeD I0xcq D ʈZ4)T#m`q@MCy#"/AT7B#pM;upS("]+*d`"֞O7VFfC$Y, )|B`2M$tC!$څI-ƣ 7\&CljPiPDVj.)#ܩ a`iC \j^e#!ESI0I߱a)H F>ԋi/ kf][$(ĚP< =y߽Oc҄6)IQ0AfB]TALL" DN 5S5TŒ$xq8*. dd()Rz=? )xlp[&}@c% ˢO $@ldDvAC ` #pq hb*H,Y. EdBDPC0 Q ؋%,jLxL%H B'% {D ( Q(0V2(` BBS(s"0} JOrd{)[:ŽT ` ХfSeYD6eށ Nd2ZF+%sK:EFDAd(iPdP? aCPD"0 1(<U~ "XAD(a!EP `(wקH%%(0bx/Kv!)nj/@ m@fK0YU B[C .'2DbQUUPPh:C0hDL*L~#Pe*X w BF .Qŋ]pa* PĎRѝ ;5= /@OS Ч1UdJXZ`%Tfl ΃%-m-Y0\ s!RB &ˆ1 SG%$ ,3æBQALJ$A $,F6[!bA yV2,*\U()틀irb+嵐|RJ]FmĠx$R,5(jOVC2C$2%p?UF`d4ߠ9tBZXSlmo--mj٩j6U3}ۑ  CUF(XE I'7 "KnɁ("H(#)glܰUD tnֽb׿6 mw!@;@Y+ͬxܔp\۽j~BM})=lHBxa0#ܠgJjq8A.pآi8`RH m 6J72/Y[@ 0(-{64if JX*U]/ cA^bFeHJ5@ܖ),&,PXh|RAprL c$5hg@PbѭP;QjB!(eB; xw`Ȁr 6B2HtɺK[#tD’ CŨ$ Hf !ĈG8D&ݧv8)IE P9<+@߼Ù@Q'l <3EB%,baۢk"φ纛{S(bW=vuPB4*^dAHY4Sb OyܒHz#Eo0P+?4-w{АTi(D1h"h-C0_†CA2 N "$hH Q@AzI w*DIwL~KB|PH"z!"RH ?Xx䨒Q*$t掜:sGNh94t掜Ӟ~_G' < @ ~GTQч' Qkc[A]% 6}$Y{ Ȑ- "9hDC*P m(>>DaloGXW YƆIT`N~(b:\Wh )#hBԄĉF%%"VHj+~FJ*Pu 7W㐊T .Q]jPzK(@p~U’WeL107WFsİ0қ>Z@sj`M< (ID4b ~t Cҟq* _J)_^'XoIT/jW% HRFIq Rc#AiIB )v&TV2Q rNݲ6565 `(3(ts̐ A*DHjUtilu `iZbc2Vhr#$I$Q>(44zw@_QdmYm(fpۧy$B#)"=٣[,X# HZֵj#$1dbD hpۤ7g!RD0D"9P""!;{΁ (!agHUKUՕu-TJ|CuS.TB| " #$@e>m$K"I<X*KĘbft3 aDC`al P1Bd~0hVmRmQIH4}!8P*Zȸ)ߌfYHXf>>;b*hI`i($Kem`!2B؂eX1@^E9Pү$"1at@;q~*TaI,;"J" |(jxvAĔ@T>cdL('+g#OKO!GBG$BBتiZ0"E?s]֎С_M}"h Ur<ý }АPOj"{A,C (GxƖ  D s&)?l=(cBKشqp۸.*1DcG)yM$UwR1h֕Jv]x4d{`rD~DqVJKv-}h';b*^PHE"+uk&i 6q (ŝ /UjwaH ,#D@ XI@Pv'i)o&0Xuϴ<Hwt6YQJb@]( RҔ1U.h7Q 0BV'Y҈ KTJDB"b?8|Qn p)("{4F/.unkۯ7LLpD5 ?JAC|%?_P'-xlT=8!Qڞ*(P`L!k@$HC@c2C>Th ĭk%4hT- Z_:B!8PX ,QHJ)*D0kM@~ >P45 H`;ES0E S9T(iE'f̀\rE)Sy:*5#D0_aM *f,@D<ϔ\@Mb%ӁBn>,$ Z&^^$N"JYT])@{? E!))\PHy}xXz{4841h-$ ftfllЈB\jAfڵ*ZyEB2`|`;"o-Ͱyh"*[f%B en^1!o'()d*Xw. ).\FF-I 8`E!ɘ̋3òeC٘+6 z9ɛ}'/H&+x46 U< ~ # =N4IW>X8i 2s6ѓy:D$E<ų9j@dōs@)$f0 H T@( Ty a ԣDGHH9XKRE%.$M$nݫtכE%g|C2FEؠl6*dh1&S1ͼ' q4̪z"4$"s[' WeE8