From df66f2fd3d1a5a08e482bbef84be429b27408a92 Mon Sep 17 00:00:00 2001 From: TotaJ Date: Sat, 18 Jul 2020 17:37:25 +0800 Subject: [PATCH] For oracle_fdw. --- GNUmakefile.in | 11 +- README.md | 1 + configure | 24 + contrib/oracle_fdw/Makefile | 59 + src/Makefile.global.in | 1 + src/common/backend/parser/analyze.cpp | 4 +- src/gausskernel/Makefile | 4 + src/gausskernel/optimizer/plan/createplan.cpp | 3 +- src/include/foreign/foreign.h | 3 + src/include/postgres.h | 4 + .../huawei_oracle_fdw-2.2.0_patch.patch | 1036 +++++++++++++++++ .../oracle_fdw-ORACLE_FDW_2_2_0.tar.gz | Bin 0 -> 123775 bytes 12 files changed, 1146 insertions(+), 4 deletions(-) create mode 100644 contrib/oracle_fdw/Makefile create mode 100644 third_party/dependency/oracle_fdw/huawei_oracle_fdw-2.2.0_patch.patch create mode 100644 third_party/dependency/oracle_fdw/oracle_fdw-ORACLE_FDW_2_2_0.tar.gz diff --git a/GNUmakefile.in b/GNUmakefile.in index d37de48367..afca2d5fd0 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -34,8 +34,15 @@ else install_mysql_fdw: endif +ifeq ($(enable_oracle_fdw), yes) +install_oracle_fdw: + $(MAKE) -C contrib/oracle_fdw install +else +install_oracle_fdw: +endif + ifeq ($(enable_multiple_nodes), yes) -install: install_mysql_fdw +install: install_mysql_fdw install_oracle_fdw $(MAKE) -C contrib/hstore $@ $(MAKE) -C src/distribute/kernel/extension/packages $@ $(MAKE) -C contrib/pagehack $@ @@ -45,7 +52,7 @@ install: install_mysql_fdw $(MAKE) -C src/distribute/kernel/extension/tsdb $@ +@echo "PostgreSQL installation complete." else -install: install_mysql_fdw +install: install_mysql_fdw install_oracle_fdw +@echo "openGauss installation complete." endif diff --git a/README.md b/README.md index 5d42be4f12..21e28892f4 100644 --- a/README.md +++ b/README.md @@ -514,6 +514,7 @@ Compilation log: **make_compile.log** > 3. On the **ARMv8.1** platform or a later version (for example, Kunpeng 920), **-D__ARM_LSE** needs to be added to **CFLAGS**. > 4. If **binarylibs** is moved to **openGauss-server** or a soft link to **binarylibs** is created in **openGauss-server**, you do not need to specify the **--3rd** parameter. However, if you do so, please note that the file is easy to be deleted by the `git clean` command. > 5. To build with mysql_fdw, add **--enable-mysql-fdw** when configure. Note that before build mysql_fdw, MariaDB's C client library is needed. + > 6. To build with oracle_fdw, add **--enable-oracle-fdw** when configure. Note that before build oracle_fdw, Oracle's C client library is needed. 4. Run the following commands to compile openGauss: diff --git a/configure b/configure index e72c69476e..c41816ff84 100755 --- a/configure +++ b/configure @@ -744,6 +744,7 @@ enable_jemalloc_debug enable_multiple_nodes enable_memory_check enable_mysql_fdw +enable_oracle_fdw enable_thread_check enable_shared default_gs_version @@ -821,6 +822,7 @@ enable_jemalloc_debug enable_multiple_nodes enable_memory_check enable_mysql_fdw +enable_oracle_fdw enable_thread_check enable_spinlocks enable_debug @@ -2869,6 +2871,28 @@ else fi +# Check whether --enable-oracle-fdw was given. +if test "${enable_oracle_fdw+set}" = set; then + enableval=$enable_oracle_fdw; + case $enableval in + yes) + : + ;; + no) + : + ;; + *) + { { $as_echo "$as_me:$LINENO: error: no argument expected for --enable-oracle-fdw option" >&5 +$as_echo "$as_me: error: no argument expected for --enable-oracle-fdw option" >&2;} + { (exit 1); exit 1; }; } + ;; + esac + +else + enable_oracle_fdw=no + +fi + # Check whether --enable-thread-check was given. if test "${enable_thread_check+set}" = set; then enableval=$enable_thread_check; diff --git a/contrib/oracle_fdw/Makefile b/contrib/oracle_fdw/Makefile new file mode 100644 index 0000000000..2dad602fd5 --- /dev/null +++ b/contrib/oracle_fdw/Makefile @@ -0,0 +1,59 @@ +# +# Copyright (c) 2020 Huawei Technologies Co.,Ltd. +# +# openGauss is licensed under Mulan PSL v2. +# You can use this software according to the terms and conditions of the Mulan PSL v2. +# You may obtain a copy of Mulan PSL v2 at: +# +# http://license.coscl.org.cn/MulanPSL2 +# +# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, +# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, +# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. +# See the Mulan PSL v2 for more details. +# --------------------------------------------------------------------------------------- +# +# Makefile +# Makefile for the oracle_fdw +# +# IDENTIFICATION +# contrib/oracle_fdw/Makefile +# +# --------------------------------------------------------------------------------------- + +all:oracle_fdw_target +install:install-data + +top_builddir ?= ../../ +ORACLE_FDW_DIR=$(top_builddir)/third_party/dependency/oracle_fdw +ORACLE_FDW_PACKAGE=oracle_fdw-ORACLE_FDW_2_2_0 +ORACLE_FDW_PATCH=huawei_oracle_fdw-2.2.0_patch +ORACLE_FDW_MEGRED_SOURCES_DIR=$(ORACLE_FDW_DIR)/code + +.PHONY: oracle_fdw_target +oracle_fdw_target: + @$(call create_oracle_fdw_sources) + @make -C $(ORACLE_FDW_MEGRED_SOURCES_DIR)/$(ORACLE_FDW_PACKAGE) NO_PGXS=1 + +.PHONY: install-data +install-data: oracle_fdw_target + @make -C $(ORACLE_FDW_MEGRED_SOURCES_DIR)/$(ORACLE_FDW_PACKAGE) NO_PGXS=1 install + +uninstall distclean clean: + @rm -rf $(ORACLE_FDW_MEGRED_SOURCES_DIR) + +define create_oracle_fdw_sources + rm -rf $(ORACLE_FDW_MEGRED_SOURCES_DIR); \ + mkdir $(ORACLE_FDW_MEGRED_SOURCES_DIR); \ + tar xfzv $(ORACLE_FDW_DIR)/$(ORACLE_FDW_PACKAGE).tar.gz -C $(ORACLE_FDW_MEGRED_SOURCES_DIR) &> /dev/null; \ + for ((i=1;i<=99;i++)); \ + do \ + file_name="$(ORACLE_FDW_DIR)/$$i-oracle_fdw-2.2.0_patch.patch"; \ + if [ ! -f "$$file_name" ]; then \ + exit 0; \ + fi; \ + patch -p0 -d $(ORACLE_FDW_MEGRED_SOURCES_DIR)/$(ORACLE_FDW_PACKAGE) < $$file_name &> /dev/null; \ + done + rename ".c" ".cpp" $(ORACLE_FDW_MEGRED_SOURCES_DIR)/$(ORACLE_FDW_PACKAGE)/*.c; \ + patch -p0 -d $(ORACLE_FDW_MEGRED_SOURCES_DIR)/$(ORACLE_FDW_PACKAGE) < $(ORACLE_FDW_DIR)/$(ORACLE_FDW_PATCH).patch &> /dev/null; +endef diff --git a/src/Makefile.global.in b/src/Makefile.global.in index 23f197a14a..273da8a6b8 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -172,6 +172,7 @@ enable_jemalloc = @enable_jemalloc@ enable_jemalloc_debug = @enable_jemalloc_debug@ enable_multiple_nodes = @enable_multiple_nodes@ enable_mysql_fdw = @enable_mysql_fdw@ +enable_oracle_fdw = @enable_oracle_fdw@ enable_memory_check = @enable_memory_check@ enable_memory_check_core = @enable_memory_check_core@ enable_thread_check = @enable_thread_check@ diff --git a/src/common/backend/parser/analyze.cpp b/src/common/backend/parser/analyze.cpp index 68386f168c..efa5a80a12 100644 --- a/src/common/backend/parser/analyze.cpp +++ b/src/common/backend/parser/analyze.cpp @@ -868,8 +868,10 @@ static void CheckUnsupportInsertSelectClause(Query* query) AssertEreport(query->commandType == CMD_INSERT, MOD_OPT, "Only deal with CMD_INSERT commondType here"); if (result->relkind == RELKIND_FOREIGN_TABLE) { - if (isMOTFromTblOid(result->relid) || isMysqlFDWFromTblOid(result->relid)) + if (isMOTFromTblOid(result->relid) || isMysqlFDWFromTblOid(result->relid) || + isOracleFDWFromTblOid(result->relid)) { return; + } if (list_length(query->rtable) == 1) ereport(ERROR, diff --git a/src/gausskernel/Makefile b/src/gausskernel/Makefile index c896bf1c98..86b64aac2b 100644 --- a/src/gausskernel/Makefile +++ b/src/gausskernel/Makefile @@ -31,6 +31,10 @@ ifeq ($(enable_mysql_fdw), yes) SUBDIRS += $(top_builddir)/contrib/mysql_fdw endif +ifeq ($(enable_oracle_fdw), yes) + SUBDIRS += $(top_builddir)/contrib/oracle_fdw +endif + ifeq ($(enable_multiple_nodes), yes) SUBDIRS += ../distribute/kernel ../distribute/kernel/extension/roach_api ../distribute/kernel/extension/dimsearch/main \ ../distribute/kernel/extension/tsdb diff --git a/src/gausskernel/optimizer/plan/createplan.cpp b/src/gausskernel/optimizer/plan/createplan.cpp index d356ff9454..9678c6c392 100644 --- a/src/gausskernel/optimizer/plan/createplan.cpp +++ b/src/gausskernel/optimizer/plan/createplan.cpp @@ -8462,7 +8462,8 @@ ModifyTable* make_modifytable(CmdType operation, bool canSetTag, List* resultRel Plan* subplan = (Plan*)(linitial(subplans)); ForeignScan* fscan = NULL; if ((fscan = (ForeignScan*)FindForeignScan(subplan)) != NULL) { - if (!isMOTFromTblOid(fscan->scan_relid) && !isMysqlFDWFromTblOid(fscan->scan_relid)) + if (!isMOTFromTblOid(fscan->scan_relid) && !isMysqlFDWFromTblOid(fscan->scan_relid) && + !isOracleFDWFromTblOid(fscan->scan_relid)) ereport(ERROR, (errmodule(MOD_OPT), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), diff --git a/src/include/foreign/foreign.h b/src/include/foreign/foreign.h index 2b270f5483..369b091bd6 100644 --- a/src/include/foreign/foreign.h +++ b/src/include/foreign/foreign.h @@ -285,6 +285,9 @@ bool isWriteOnlyFt(Oid relid); #define isMysqlFDWFromTblOid(relId) \ (IsSpecifiedFDWFromRelid(relId, MYSQL_FDW)) +#define isOracleFDWFromTblOid(relId) \ + (IsSpecifiedFDWFromRelid(relId, ORACLE_FDW)) + #define IS_OBS_CSV_TXT_FOREIGN_TABLE(relId) \ (IsSpecifiedFDWFromRelid(relId, DIST_FDW) && (is_obs_protocol(HdfsGetOptionValue(relId, optLocation)))) diff --git a/src/include/postgres.h b/src/include/postgres.h index f907032e7c..40ddaab0a1 100644 --- a/src/include/postgres.h +++ b/src/include/postgres.h @@ -78,6 +78,10 @@ #define MYSQL_FDW "mysql_fdw" #endif +#ifndef ORACLE_FDW +#define ORACLE_FDW "oracle_fdw" +#endif + #ifndef MOT_FDW #define MOT_FDW "mot_fdw" #endif diff --git a/third_party/dependency/oracle_fdw/huawei_oracle_fdw-2.2.0_patch.patch b/third_party/dependency/oracle_fdw/huawei_oracle_fdw-2.2.0_patch.patch new file mode 100644 index 0000000000..4140529a65 --- /dev/null +++ b/third_party/dependency/oracle_fdw/huawei_oracle_fdw-2.2.0_patch.patch @@ -0,0 +1,1036 @@ +diff --git Makefile Makefile +index 5f8b100..7fdd24f 100644 +--- Makefile ++++ Makefile +@@ -11,7 +11,7 @@ SHLIB_LINK = -L$(ORACLE_HOME) -L$(ORACLE_HOME)/bin -L$(ORACLE_HOME)/lib -L$(ORAC + + ifdef NO_PGXS + subdir = contrib/oracle_fdw +-top_builddir = ../.. ++top_builddir = ../../../../../ + include $(top_builddir)/src/Makefile.global + include $(top_srcdir)/contrib/contrib-global.mk + else +@@ -30,3 +30,6 @@ else + ORACLE_SHLIB=clntsh + endif + endif ++ ++exclude_option=-fPIE ++override CPPFLAGS := $(filter-out $(exclude_option),$(CPPFLAGS)) +\ No newline at end of file +diff --git oracle_fdw.cpp oracle_fdw.cpp +index e75b6ab..7e83a4f 100644 +--- oracle_fdw.cpp ++++ oracle_fdw.cpp +@@ -92,13 +92,13 @@ + #define WIDTH_THRESHOLD 1024 + #endif /* WIDTH_THRESHOLD */ + +-#if PG_VERSION_NUM < 90200 ++#if 0//PG_VERSION_NUM < 90200 + #define OLD_FDW_API + #else + #undef OLD_FDW_API + #endif /* PG_VERSION_NUM */ + +-#if PG_VERSION_NUM >= 90300 ++#if 1//PG_VERSION_NUM >= 90300 + #define WRITE_API + #else + #undef WRITE_API +@@ -153,13 +153,13 @@ PG_MODULE_MAGIC; + /* + * "true" if Oracle data have been modified in the current transaction. + */ +-static bool dml_in_transaction = false; ++static THR_LOCAL bool dml_in_transaction = false; + + /* + * PostGIS geometry type, set upon library initialization. + */ +-static Oid GEOMETRYOID = InvalidOid; +-static bool geometry_is_setup = false; ++static THR_LOCAL Oid GEOMETRYOID = InvalidOid; ++static THR_LOCAL bool geometry_is_setup = false; + + /* + * Describes the valid options for objects that use this wrapper. +@@ -219,7 +219,7 @@ static struct OracleFdwOption valid_options[] = { + * be more than one foreign table modified at the same time. + */ + +-static regproc *output_funcs; ++static THR_LOCAL regproc *output_funcs; + #endif /* WRITE_API */ + + /* +@@ -275,10 +275,10 @@ struct OracleFdwState { + /* + * SQL functions + */ +-extern PGDLLEXPORT Datum oracle_fdw_handler(PG_FUNCTION_ARGS); +-extern PGDLLEXPORT Datum oracle_fdw_validator(PG_FUNCTION_ARGS); +-extern PGDLLEXPORT Datum oracle_close_connections(PG_FUNCTION_ARGS); +-extern PGDLLEXPORT Datum oracle_diag(PG_FUNCTION_ARGS); ++extern "C" PGDLLEXPORT Datum oracle_fdw_handler(PG_FUNCTION_ARGS); ++extern "C" PGDLLEXPORT Datum oracle_fdw_validator(PG_FUNCTION_ARGS); ++extern "C" PGDLLEXPORT Datum oracle_close_connections(PG_FUNCTION_ARGS); ++extern "C" PGDLLEXPORT Datum oracle_diag(PG_FUNCTION_ARGS); + + PG_FUNCTION_INFO_V1(oracle_fdw_handler); + PG_FUNCTION_INFO_V1(oracle_fdw_validator); +@@ -306,7 +306,7 @@ static ForeignScan *oracleGetForeignPlan(PlannerInfo *root, RelOptInfo *foreignr + , Plan *outer_plan + #endif /* PG_VERSION_NUM */ + ); +-static bool oracleAnalyzeForeignTable(Relation relation, AcquireSampleRowsFunc *func, BlockNumber *totalpages); ++static bool oracleAnalyzeForeignTable(Relation relation, AcquireSampleRowsFunc *func, BlockNumber *totalpages, void* additionalData, bool estimateTableRowNum); + #endif /* OLD_FDW_API */ + static void oracleExplainForeignScan(ForeignScanState *node, ExplainState *es); + static void oracleBeginForeignScan(ForeignScanState *node, int eflags); +@@ -348,7 +348,7 @@ static struct oraTable *build_join_oratable(struct OracleFdwState *fdwState, Lis + #endif /* JOIN_API */ + static void getColumnData(Oid foreigntableid, struct oraTable *oraTable); + #ifndef OLD_FDW_API +-static int acquireSampleRowsFunc (Relation relation, int elevel, HeapTuple *rows, int targrows, double *totalrows, double *totaldeadrows); ++static int acquireSampleRowsFunc (Relation relation, int elevel, HeapTuple *rows, int targrows, double *totalrows, double *totaldeadrows, void* additionalData, bool estimateTableRowNum); + static void appendAsType(StringInfoData *dest, const char *s, Oid type); + #endif /* OLD_FDW_API */ + static char *deparseExpr(oracleSession *session, RelOptInfo *foreignrel, Expr *expr, const struct oraTable *oraTable, List **params); +@@ -375,6 +375,10 @@ static struct OracleFdwState *copyPlanData(struct OracleFdwState *orig); + static void subtransactionCallback(SubXactEvent event, SubTransactionId mySubid, SubTransactionId parentSubid, void *arg); + static void addParam(struct paramDesc **paramList, char *name, Oid pgtype, oraType oratype, int colnum); + static void setModifyParameters(struct paramDesc *paramList, TupleTableSlot *newslot, TupleTableSlot *oldslot, struct oraTable *oraTable, oracleSession *session); ++static bool hasTrigger(Relation rel, CmdType cmdtype); ++static void buildInsertQuery(StringInfo sql, struct OracleFdwState *fdwState); ++static void buildUpdateQuery(StringInfo sql, struct OracleFdwState *fdwState, List *targetAttrs); ++static void appendReturningClause(StringInfo sql, struct OracleFdwState *fdwState); + #endif /* WRITE_API */ + static void transactionCallback(XactEvent event, void *arg); + static void exitHook(int code, Datum arg); +@@ -382,10 +386,7 @@ static void oracleDie(SIGNAL_ARGS); + static char *setSelectParameters(struct paramDesc *paramList, ExprContext *econtext); + static void convertTuple(struct OracleFdwState *fdw_state, Datum *values, bool *nulls, bool trunc_lob); + static void errorContextCallback(void *arg); +-static bool hasTrigger(Relation rel, CmdType cmdtype); +-static void buildInsertQuery(StringInfo sql, struct OracleFdwState *fdwState); +-static void buildUpdateQuery(StringInfo sql, struct OracleFdwState *fdwState, List *targetAttrs); +-static void appendReturningClause(StringInfo sql, struct OracleFdwState *fdwState); ++ + #ifdef IMPORT_API + static char *fold_case(char *name, fold_t foldcase, int collation); + #endif /* IMPORT_API */ +@@ -457,7 +458,7 @@ oracle_fdw_validator(PG_FUNCTION_ARGS) + Oid catalog = PG_GETARG_OID(1); + ListCell *cell; + bool option_given[option_count] = { false }; +- int i; ++ unsigned int i; + + /* + * Check that only options supported by oracle_fdw, and allowed for the +@@ -752,9 +753,6 @@ _PG_init(void) + errmsg("PostgreSQL version \"%s\" not supported by oracle_fdw", + GetConfigOptionByName("server_version", NULL)), + errhint("You'll have to update PostgreSQL to a later minor release."))); +- +- /* register an exit hook */ +- on_proc_exit(&exitHook, PointerGetDatum(NULL)); + } + + #ifdef OLD_FDW_API +@@ -989,18 +987,18 @@ oracleGetForeignPaths(PlannerInfo *root, RelOptInfo *baserel, Oid foreigntableid + fdwState->order_clause = orderedquery.data; + + /* add the only path */ +- add_path(baserel, ++ add_path(root, baserel, + (Path *)create_foreignscan_path( + root, + baserel, + #if PG_VERSION_NUM >= 90600 + NULL, /* default pathtarget */ +-#endif /* PG_VERSION_NUM */ + baserel->rows, ++#endif /* PG_VERSION_NUM */ + fdwState->startup_cost, + fdwState->total_cost, + usable_pathkeys, +- baserel->lateral_relids, ++ NULL, + #if PG_VERSION_NUM >= 90500 + NULL, /* no extra plan */ + #endif /* PG_VERSION_NUM */ +@@ -1152,7 +1150,7 @@ ForeignScan + scan_relid = foreignrel->relid; + + /* check if the foreign scan is for an UPDATE or DELETE */ +- if (foreignrel->relid == root->parse->resultRelation && ++ if (foreignrel->relid == (unsigned int)root->parse->resultRelation && + (root->parse->commandType == CMD_UPDATE || + root->parse->commandType == CMD_DELETE)) + { +@@ -1182,8 +1180,10 @@ ForeignScan + rel = heap_open(foreigntableid, NoLock); + + /* is there an AFTER trigger FOR EACH ROW? */ +- has_trigger = (foreignrel->relid == root->parse->resultRelation) +- && hasTrigger(rel, root->parse->commandType); ++ has_trigger = (foreignrel->relid == (unsigned int)root->parse->resultRelation); ++#ifdef WRITE_API ++ has_trigger = has_trigger && hasTrigger(rel, root->parse->commandType); ++#endif + + heap_close(rel, NoLock); + +@@ -1284,7 +1284,7 @@ ForeignScan + } + + bool +-oracleAnalyzeForeignTable(Relation relation, AcquireSampleRowsFunc *func, BlockNumber *totalpages) ++oracleAnalyzeForeignTable(Relation relation, AcquireSampleRowsFunc *func, BlockNumber *totalpages, void* additionalData, bool estimateTableRowNum) + { + *func = acquireSampleRowsFunc; + /* use positive page count as a sign that the table has been ANALYZEd */ +@@ -1631,7 +1631,7 @@ oraclePlanForeignModify(PlannerInfo *root, ModifyTable *plan, Index resultRelati + #endif /* PG_VERSION_NUM */ + + /* check if the foreign table is scanned and we already planned that scan */ +- if (resultRelation < root->simple_rel_array_size ++ if (resultRelation < (unsigned int)root->simple_rel_array_size + && root->simple_rel_array[resultRelation] != NULL + && root->simple_rel_array[resultRelation]->fdw_private != NULL) + { +@@ -1682,7 +1682,7 @@ oraclePlanForeignModify(PlannerInfo *root, ModifyTable *plan, Index resultRelati + #if PG_VERSION_NUM >= 90500 + tmpset = bms_copy(rte->updatedCols); + #else +- tmpset = bms_copy(rte->modifiedCols); ++ tmpset = bms_copy(rte->updatedCols); + #endif /* PG_VERSION_NUM */ + + while ((col = bms_first_member(tmpset)) >= 0) +@@ -2492,7 +2492,7 @@ oracleImportForeignSchema(ImportForeignSchemaStmt *stmt, Oid serverOid) + struct OracleFdwState + *getFdwState(Oid foreigntableid, double *sample_percent) + { +- struct OracleFdwState *fdwState = palloc0(sizeof(struct OracleFdwState)); ++ struct OracleFdwState *fdwState = (struct OracleFdwState*)palloc0(sizeof(struct OracleFdwState)); + char *pgtablename = get_rel_name(foreigntableid); + List *options; + ListCell *cell; +@@ -3341,7 +3341,7 @@ build_join_oratable(struct OracleFdwState *fdwState, List *fdw_scan_tlist) + * exceeding this is not used by compute_scalar_stats(). + */ + int +-acquireSampleRowsFunc(Relation relation, int elevel, HeapTuple *rows, int targrows, double *totalrows, double *totaldeadrows) ++acquireSampleRowsFunc(Relation relation, int elevel, HeapTuple *rows, int targrows, double *totalrows, double *totaldeadrows, void* additionalData, bool estimateTableRowNum) + { + int collected_rows = 0, i; + struct OracleFdwState *fdw_state; +@@ -3813,7 +3813,7 @@ deparseExpr(oracleSession *session, RelOptInfo *foreignrel, Expr *expr, const st + || strcmp(opername, "|/") == 0 + || strcmp(opername, "@") == 0) + { +- left = deparseExpr(session, foreignrel, linitial(oper->args), oraTable, params); ++ left = deparseExpr(session, foreignrel, (Expr*)linitial(oper->args), oraTable, params); + if (left == NULL) + { + pfree(opername); +@@ -3823,7 +3823,7 @@ deparseExpr(oracleSession *session, RelOptInfo *foreignrel, Expr *expr, const st + if (oprkind == 'b') + { + /* binary operator */ +- right = deparseExpr(session, foreignrel, lsecond(oper->args), oraTable, params); ++ right = deparseExpr(session, foreignrel, (Expr*)lsecond(oper->args), oraTable, params); + if (right == NULL) + { + pfree(left); +@@ -3932,7 +3932,7 @@ deparseExpr(oracleSession *session, RelOptInfo *foreignrel, Expr *expr, const st + if (! canHandleType(leftargtype)) + return NULL; + +- left = deparseExpr(session, foreignrel, linitial(arrayoper->args), oraTable, params); ++ left = deparseExpr(session, foreignrel, (Expr*)linitial(arrayoper->args), oraTable, params); + if (left == NULL) + return NULL; + +@@ -4052,12 +4052,12 @@ deparseExpr(oracleSession *session, RelOptInfo *foreignrel, Expr *expr, const st + if (! canHandleType(rightargtype)) + return NULL; + +- left = deparseExpr(session, foreignrel, linitial(((NullIfExpr *)expr)->args), oraTable, params); ++ left = deparseExpr(session, foreignrel, (Expr*)linitial(((NullIfExpr *)expr)->args), oraTable, params); + if (left == NULL) + { + return NULL; + } +- right = deparseExpr(session, foreignrel, lsecond(((NullIfExpr *)expr)->args), oraTable, params); ++ right = deparseExpr(session, foreignrel, (Expr*)lsecond(((NullIfExpr *)expr)->args), oraTable, params); + if (right == NULL) + { + pfree(left); +@@ -4071,7 +4071,7 @@ deparseExpr(oracleSession *session, RelOptInfo *foreignrel, Expr *expr, const st + case T_BoolExpr: + boolexpr = (BoolExpr *)expr; + +- arg = deparseExpr(session, foreignrel, linitial(boolexpr->args), oraTable, params); ++ arg = deparseExpr(session, foreignrel, (Expr*)linitial(boolexpr->args), oraTable, params); + if (arg == NULL) + return NULL; + +@@ -4140,7 +4140,7 @@ deparseExpr(oracleSession *session, RelOptInfo *foreignrel, Expr *expr, const st + else + { + /* for CASE arg WHEN ..., use only the right branch of the equality */ +- arg = deparseExpr(session, foreignrel, lsecond(((OpExpr *)whenclause->expr)->args), oraTable, params); ++ arg = deparseExpr(session, foreignrel, (Expr*)lsecond(((OpExpr *)whenclause->expr)->args), oraTable, params); + } + + if (arg == NULL) +@@ -4245,7 +4245,7 @@ deparseExpr(oracleSession *session, RelOptInfo *foreignrel, Expr *expr, const st + + /* do nothing for implicit casts */ + if (func->funcformat == COERCE_IMPLICIT_CAST) +- return deparseExpr(session, foreignrel, linitial(func->args), oraTable, params); ++ return deparseExpr(session, foreignrel, (Expr*)linitial(func->args), oraTable, params); + + /* get function name and schema */ + tuple = SearchSysCache1(PROCOID, ObjectIdGetDatum(func->funcid)); +@@ -4325,7 +4325,7 @@ deparseExpr(oracleSession *session, RelOptInfo *foreignrel, Expr *expr, const st + first_arg = true; + foreach(cell, func->args) + { +- arg = deparseExpr(session, foreignrel, lfirst(cell), oraTable, params); ++ arg = deparseExpr(session, foreignrel, (Expr*)lfirst(cell), oraTable, params); + if (arg == NULL) + { + pfree(result.data); +@@ -4350,7 +4350,7 @@ deparseExpr(oracleSession *session, RelOptInfo *foreignrel, Expr *expr, const st + else if (strcmp(opername, "date_part") == 0) + { + /* special case: EXTRACT */ +- left = deparseExpr(session, foreignrel, linitial(func->args), oraTable, params); ++ left = deparseExpr(session, foreignrel, (Expr*)linitial(func->args), oraTable, params); + if (left == NULL) + { + pfree(opername); +@@ -4370,7 +4370,7 @@ deparseExpr(oracleSession *session, RelOptInfo *foreignrel, Expr *expr, const st + /* remove final quote */ + left[strlen(left) - 1] = '\0'; + +- right = deparseExpr(session, foreignrel, lsecond(func->args), oraTable, params); ++ right = deparseExpr(session, foreignrel, (Expr*)lsecond(func->args), oraTable, params); + if (right == NULL) + { + pfree(opername); +@@ -4608,7 +4608,7 @@ getUsedColumns(Expr *expr, struct oraTable *oraTable, int foreignrelid) + variable = (Var *)expr; + + /* ignore columns belonging to a different foreign table */ +- if (variable->varno != foreignrelid) ++ if (variable->varno != (unsigned int)foreignrelid) + break; + + /* ignore system columns */ +@@ -5195,7 +5195,7 @@ Const + struct OracleFdwState + *deserializePlanData(List *list) + { +- struct OracleFdwState *state = palloc(sizeof(struct OracleFdwState)); ++ struct OracleFdwState *state = (struct OracleFdwState*)palloc(sizeof(struct OracleFdwState)); + ListCell *cell = list_head(list); + int i, len; + struct paramDesc *param; +@@ -5213,23 +5213,23 @@ struct OracleFdwState + state->order_clause = NULL; + + /* dbserver */ +- state->dbserver = deserializeString(lfirst(cell)); ++ state->dbserver = deserializeString((Const*)lfirst(cell)); + cell = list_next(list, cell); + + /* user */ +- state->user = deserializeString(lfirst(cell)); ++ state->user = deserializeString((Const*)lfirst(cell)); + cell = list_next(list, cell); + + /* password */ +- state->password = deserializeString(lfirst(cell)); ++ state->password = deserializeString((Const*)lfirst(cell)); + cell = list_next(list, cell); + + /* nls_lang */ +- state->nls_lang = deserializeString(lfirst(cell)); ++ state->nls_lang = deserializeString((Const*)lfirst(cell)); + cell = list_next(list, cell); + + /* query */ +- state->query = deserializeString(lfirst(cell)); ++ state->query = deserializeString((Const*)lfirst(cell)); + cell = list_next(list, cell); + + /* Oracle prefetch count */ +@@ -5238,9 +5238,9 @@ struct OracleFdwState + + /* table data */ + state->oraTable = (struct oraTable *)palloc(sizeof(struct oraTable)); +- state->oraTable->name = deserializeString(lfirst(cell)); ++ state->oraTable->name = deserializeString((Const*)lfirst(cell)); + cell = list_next(list, cell); +- state->oraTable->pgname = deserializeString(lfirst(cell)); ++ state->oraTable->pgname = deserializeString((Const*)lfirst(cell)); + cell = list_next(list, cell); + state->oraTable->ncols = (int)DatumGetInt32(((Const *)lfirst(cell))->constvalue); + cell = list_next(list, cell); +@@ -5252,13 +5252,13 @@ struct OracleFdwState + for (i=0; ioraTable->ncols; ++i) + { + state->oraTable->cols[i] = (struct oraColumn *)palloc(sizeof(struct oraColumn)); +- state->oraTable->cols[i]->name = deserializeString(lfirst(cell)); ++ state->oraTable->cols[i]->name = deserializeString((Const*)lfirst(cell)); + cell = list_next(list, cell); + state->oraTable->cols[i]->oratype = (oraType)DatumGetInt32(((Const *)lfirst(cell))->constvalue); + cell = list_next(list, cell); + state->oraTable->cols[i]->scale = (int)DatumGetInt32(((Const *)lfirst(cell))->constvalue); + cell = list_next(list, cell); +- state->oraTable->cols[i]->pgname = deserializeString(lfirst(cell)); ++ state->oraTable->cols[i]->pgname = deserializeString((Const*)lfirst(cell)); + cell = list_next(list, cell); + state->oraTable->cols[i]->pgattnum = (int)DatumGetInt32(((Const *)lfirst(cell))->constvalue); + cell = list_next(list, cell); +@@ -5270,7 +5270,7 @@ struct OracleFdwState + cell = list_next(list, cell); + state->oraTable->cols[i]->pkey = (int)DatumGetInt32(((Const *)lfirst(cell))->constvalue); + cell = list_next(list, cell); +- state->oraTable->cols[i]->val_size = deserializeLong(lfirst(cell)); ++ state->oraTable->cols[i]->val_size = deserializeLong((Const*)lfirst(cell)); + cell = list_next(list, cell); + /* allocate memory for the result value */ + state->oraTable->cols[i]->val = (char *)palloc(state->oraTable->cols[i]->val_size + 1); +@@ -5288,14 +5288,14 @@ struct OracleFdwState + for (i=0; iname = deserializeString(lfirst(cell)); ++ param->name = deserializeString((Const *)lfirst(cell)); + cell = list_next(list, cell); + param->type = DatumGetObjectId(((Const *)lfirst(cell))->constvalue); + cell = list_next(list, cell); + param->bindType = (oraBindType)DatumGetInt32(((Const *)lfirst(cell))->constvalue); + cell = list_next(list, cell); + if (param->bindType == BIND_OUTPUT) +- param->value = (void *)42; /* something != NULL */ ++ param->value = (char *)42; /* something != NULL */ + else + param->value = NULL; + param->node = NULL; +@@ -5365,7 +5365,7 @@ find_em_expr_for_rel(EquivalenceClass *ec, RelOptInfo *rel) + + foreach(lc_em, ec->ec_members) + { +- EquivalenceMember *em = lfirst(lc_em); ++ EquivalenceMember *em = (EquivalenceMember*)lfirst(lc_em); + + if (bms_equal(em->em_relids, rel->relids)) + { +@@ -5511,7 +5511,7 @@ struct OracleFdwState + *copyPlanData(struct OracleFdwState *orig) + { + int i; +- struct OracleFdwState *copy = palloc(sizeof(struct OracleFdwState)); ++ struct OracleFdwState *copy = (struct OracleFdwState *)palloc(sizeof(struct OracleFdwState)); + + copy->dbserver = pstrdup(orig->dbserver); + copy->user = pstrdup(orig->user); +@@ -5565,8 +5565,8 @@ void + subtransactionCallback(SubXactEvent event, SubTransactionId mySubid, SubTransactionId parentSubid, void *arg) + { + /* rollback to the appropriate savepoint on subtransaction abort */ +- if (event == SUBXACT_EVENT_ABORT_SUB || event == SUBXACT_EVENT_PRE_COMMIT_SUB) +- oracleEndSubtransaction(arg, GetCurrentTransactionNestLevel(), event == SUBXACT_EVENT_PRE_COMMIT_SUB); ++ if (event == SUBXACT_EVENT_ABORT_SUB) ++ oracleEndSubtransaction(arg, GetCurrentTransactionNestLevel(), false); + } + + /* +@@ -5579,7 +5579,7 @@ addParam(struct paramDesc **paramList, char *name, Oid pgtype, oraType oratype, + { + struct paramDesc *param; + +- param = palloc(sizeof(struct paramDesc)); ++ param = (struct paramDesc *)palloc(sizeof(struct paramDesc)); + param->name = pstrdup(name); + param->type = pgtype; + switch (oratype) +@@ -5790,7 +5790,7 @@ setModifyParameters(struct paramDesc *paramList, TupleTableSlot *newslot, TupleT + value_len = VARSIZE(datum) - VARHDRSZ; + + /* the first 4 bytes contain the length */ +- param->value = palloc(value_len + 4); ++ param->value = (char*)palloc(value_len + 4); + memcpy(param->value, (const char *)&value_len, 4); + memcpy(param->value + 4, VARDATA(datum), value_len); + break; +@@ -5985,7 +5985,7 @@ appendReturningClause(StringInfo sql, struct OracleFdwState *fdwState) + param->name = pstrdup(paramName); + param->type = fdwState->oraTable->cols[i]->pgtype; + param->bindType = BIND_OUTPUT; +- param->value = (void *)42; /* something != NULL */ ++ param->value = (char *)42; /* something != NULL */ + param->node = NULL; + param->bindh = NULL; + param->colnum = i; +@@ -6013,20 +6013,6 @@ transactionCallback(XactEvent event, void *arg) + { + switch(event) + { +-#ifdef WRITE_API +- case XACT_EVENT_PRE_COMMIT: +-#if PG_VERSION_NUM >= 90500 +- case XACT_EVENT_PARALLEL_PRE_COMMIT: +-#endif /* PG_VERSION_NUM */ +- /* remote commit */ +- oracleEndTransaction(arg, 1, 0); +- break; +- case XACT_EVENT_PRE_PREPARE: +- ereport(ERROR, +- (errcode(ERRCODE_FDW_UNABLE_TO_CREATE_EXECUTION), +- errmsg("cannot prepare a transaction that used remote tables"))); +- break; +-#endif /* WRITE_API */ + case XACT_EVENT_COMMIT: + case XACT_EVENT_PREPARE: + #if PG_VERSION_NUM >= 90500 +@@ -6046,11 +6032,19 @@ transactionCallback(XactEvent event, void *arg) + /* remote rollback */ + oracleEndTransaction(arg, 0, 1); + break; ++ default: ++ break; + } + + dml_in_transaction = false; + } + ++void oracleProcExit(void) ++{ ++ /* register an exit hook */ ++ on_proc_exit(&exitHook, PointerGetDatum(NULL)); ++} ++ + /* + * exitHook + * Close all Oracle connections on process exit. +@@ -6254,14 +6248,14 @@ convertTuple(struct OracleFdwState *fdw_state, Datum *values, bool *nulls, bool + ora_geometry *geom = (ora_geometry *)fdw_state->oraTable->cols[index]->val; + + /* install error context callback */ +- errcb.previous = error_context_stack; +- error_context_stack = &errcb; ++ errcb.previous = t_thrd.log_cxt.error_context_stack; ++ t_thrd.log_cxt.error_context_stack = &errcb; + fdw_state->columnindex = index; + + value_len = oracleGetEWKBLen(fdw_state->session, geom); + + /* uninstall error context callback */ +- error_context_stack = errcb.previous; ++ t_thrd.log_cxt.error_context_stack = errcb.previous; + + value = NULL; /* we will fetch that later to avoid unnecessary copying */ + } +@@ -6303,8 +6297,8 @@ convertTuple(struct OracleFdwState *fdw_state, Datum *values, bool *nulls, bool + struct varlena *result = NULL; + + /* install error context callback */ +- errcb.previous = error_context_stack; +- error_context_stack = &errcb; ++ errcb.previous = t_thrd.log_cxt.error_context_stack; ++ t_thrd.log_cxt.error_context_stack = &errcb; + fdw_state->columnindex = index; + + result = (bytea *)palloc(value_len + VARHDRSZ); +@@ -6312,7 +6306,7 @@ convertTuple(struct OracleFdwState *fdw_state, Datum *values, bool *nulls, bool + SET_VARSIZE(result, value_len + VARHDRSZ); + + /* uninstall error context callback */ +- error_context_stack = errcb.previous; ++ t_thrd.log_cxt.error_context_stack = errcb.previous; + + values[j] = PointerGetDatum(result); + +@@ -6342,7 +6336,7 @@ convertTuple(struct OracleFdwState *fdw_state, Datum *values, bool *nulls, bool + if (fdw_state->oraTable->cols[index]->oratype == ORA_TYPE_INTERVALD2S + && value[0] == '-') + { +- char *newval = palloc(strlen(value) + 2); ++ char *newval = (char*)palloc(strlen(value) + 2); + char *pos = strchr(value, ' '); + + if (pos == NULL) +@@ -6367,8 +6361,8 @@ convertTuple(struct OracleFdwState *fdw_state, Datum *values, bool *nulls, bool + dat = CStringGetDatum(value); + + /* install error context callback */ +- errcb.previous = error_context_stack; +- error_context_stack = &errcb; ++ errcb.previous = t_thrd.log_cxt.error_context_stack; ++ t_thrd.log_cxt.error_context_stack = &errcb; + fdw_state->columnindex = index; + + /* for string types, check that the data are in the database encoding */ +@@ -6396,7 +6390,7 @@ convertTuple(struct OracleFdwState *fdw_state, Datum *values, bool *nulls, bool + } + + /* uninstall error context callback */ +- error_context_stack = errcb.previous; ++ t_thrd.log_cxt.error_context_stack = errcb.previous; + } + + /* free the data buffer for LOBs */ +@@ -6465,8 +6459,9 @@ oracleGetShareFileName(const char *relativename) + + get_share_path(my_exec_path, share_path); + +- result = palloc(MAXPGPATH); +- snprintf(result, MAXPGPATH, "%s/%s", share_path, relativename); ++ unsigned int result_len = strlen(share_path) + strlen(relativename) + 2; ++ result = (char*)palloc(result_len); ++ snprintf(result, result_len, "%s/%s", share_path, relativename); + + return result; + } +@@ -6655,8 +6650,7 @@ void + initializePostGIS() + { + CatCList *catlist; +- int i, argcount = 1; +- Oid argtypes[] = { INTERNALOID }; ++ int i; + + /* this needs to be done only once per database session */ + if (geometry_is_setup) +@@ -6665,10 +6659,9 @@ initializePostGIS() + geometry_is_setup = true; + + /* find all functions called "geometry_recv" with "internal" argument type */ +- catlist = SearchSysCacheList2( ++ catlist = SearchSysCacheList1( + PROCNAMEARGSNSP, +- CStringGetDatum("geometry_recv"), +- PointerGetDatum(buildoidvector(argtypes, argcount))); ++ CStringGetDatum("geometry_recv")); + + for (i = 0; i < catlist->n_members; i++) + { +diff --git oracle_fdw.h oracle_fdw.h +index c748971..a62a8b5 100644 +--- oracle_fdw.h ++++ oracle_fdw.h +@@ -223,6 +223,7 @@ extern void oracleError_i(oraError sqlstate, const char *message, int arg); + extern void oracleError(oraError sqlstate, const char *message); + extern void oracleDebug2(const char *message); + extern void initializePostGIS(void); ++extern void oracleProcExit(void); + + /* + * functions defined in oracle_gis.c +diff --git oracle_gis.cpp oracle_gis.cpp +index 31f9ea1..d97716e 100644 +--- oracle_gis.cpp ++++ oracle_gis.cpp +@@ -81,12 +81,12 @@ typedef struct + #define mapEntryValid(x) ((x)->from != 0) + + /* maps Oracle SRIDs to PostGIS SRIDs */ +-static mapEntry *srid_map = NULL; ++static THR_LOCAL mapEntry *srid_map = NULL; + + /* contains Oracle error messages, set by checkerr() */ + #define ERRBUFSIZE 500 +-static char oraMessage[ERRBUFSIZE]; +-static sb4 err_code; ++static THR_LOCAL char oraMessage[ERRBUFSIZE]; ++static THR_LOCAL sb4 err_code; + + /* + * Structures needed for managing the MDSYS.SDO_GEOMETRY Oracle type. +@@ -572,7 +572,7 @@ oracleGeometryAlloc(oracleSession *session, ora_geometry *geom) + session->envp->errhp, + session->connp->svchp, + OCI_TYPECODE_OBJECT, +- oracleGetGeometryType(session), ++ (OCIType*)oracleGetGeometryType(session), + (dvoid *)NULL, + OCI_DURATION_TRANS, + TRUE, +@@ -1419,8 +1419,8 @@ unpack(oracleSession *session, ora_geometry *geom) + oracleError(FDW_ERROR, "error converting SDO_GEOMETRY to geometry: size of SDO_ELEM_INFO must be a multiple of three"); + + /* this might be too big if some elements with etype 0 are deleted */ +- geom->elem = oracleAlloc(elemCount * sizeof(unsigned)); +- geom->coord = oracleAlloc(coordCount * sizeof(double)); ++ geom->elem = (unsigned int *)oracleAlloc(elemCount * sizeof(unsigned)); ++ geom->coord = (double *)oracleAlloc(coordCount * sizeof(double)); + + for (elem_i = 0; elem_i + 1 < elemCount; elem_i +=3) + { +@@ -1451,7 +1451,7 @@ unpack(oracleSession *session, ora_geometry *geom) + elem_pos += 3; + + /* copy ordinates for this entry */ +- for (coord_i=offset - 1; coord_i < next_offset - 1; ++coord_i) ++ for (coord_i=offset - 1; coord_i < (int)(next_offset - 1); ++coord_i) + geom->coord[coord_pos++] = coord(session, geom, coord_i); + } + } +diff --git oracle_utils.cpp oracle_utils.cpp +index 469e7b9..8d8b60e 100644 +--- oracle_utils.cpp ++++ oracle_utils.cpp +@@ -27,15 +27,15 @@ + #define LOB_CHUNK_SIZE 8132 + + /* emit no error messages when set, used for shutdown */ +-static int silent = 0; ++static THR_LOCAL int silent = 0; + + /* contains Oracle error messages, set by checkerr() */ + #define ERRBUFSIZE 500 +-static char oraMessage[ERRBUFSIZE]; +-static sb4 err_code; ++static THR_LOCAL char oraMessage[ERRBUFSIZE]; ++static THR_LOCAL sb4 err_code; + + /* set to "1" as soon as OCIEnvCreate is called */ +-static int oci_initialized = 0; ++static THR_LOCAL int oci_initialized = 0; + + /* + * Linked list for temporary Oracle handles and descriptors. +@@ -54,12 +54,12 @@ struct handleEntry + /* + * Linked list of handles for cached Oracle connections. + */ +-static struct envEntry *envlist = NULL; ++static THR_LOCAL struct envEntry *envlist = NULL; + + /* + * NULL value used for "in" callback in RETURNING clauses. + */ +-static ora_geometry null_geometry = { NULL, NULL, -1, NULL, -1, NULL }; ++static THR_LOCAL ora_geometry null_geometry = { NULL, NULL, -1, NULL, -1, NULL }; + + /* + * Helper functions +@@ -119,6 +119,11 @@ oracleSession + */ + initializePostGIS(); + ++ if (envlist == NULL) { ++ /* register an exit hook when first time connect to oracle */ ++ oracleProcExit(); ++ } ++ + /* search environment and server handle in cache */ + for (envp = envlist; envp != NULL; envp = envp->next) + { +@@ -183,7 +188,7 @@ oracleSession + } + + /* add handles to cache */ +- if ((envp = malloc(sizeof(struct envEntry))) == NULL) ++ if ((envp = (struct envEntry*)malloc(sizeof(struct envEntry))) == NULL) + { + oracleError_i(FDW_OUT_OF_MEMORY, + "error connecting to Oracle: failed to allocate %d bytes of memory", +@@ -275,7 +280,7 @@ oracleSession + } + + /* add server handle to cache */ +- if ((srvp = malloc(sizeof(struct srvEntry))) == NULL) ++ if ((srvp = (srvEntry*)malloc(sizeof(struct srvEntry))) == NULL) + { + oracleError_i(FDW_OUT_OF_MEMORY, + "error connecting to Oracle: failed to allocate %d bytes of memory", +@@ -373,8 +378,9 @@ oracleSession + sprintf(pid, "%lu", (unsigned long)getpid()); + pid[29] = '\0'; + ++ char tmpstr[30] = "postgres"; + if (checkerr( +- OCIAttrSet(userhp, OCI_HTYPE_SESSION, "postgres", (ub4)8, ++ OCIAttrSet(userhp, OCI_HTYPE_SESSION, tmpstr, (ub4)8, + OCI_ATTR_MODULE, errhp), + (dvoid *)errhp, OCI_HTYPE_ERROR) != OCI_SUCCESS) + { +@@ -394,9 +400,10 @@ oracleSession + oraMessage); + } + ++ strcpy(tmpstr, "oracle_fdw"); + /* set driver name for the Oracle session */ + if (checkerr( +- OCIAttrSet(userhp, OCI_HTYPE_SESSION, "oracle_fdw", (ub4)10, ++ OCIAttrSet(userhp, OCI_HTYPE_SESSION, tmpstr, (ub4)10, + OCI_ATTR_DRIVER_NAME, errhp), + (dvoid *)errhp, OCI_HTYPE_ERROR) != OCI_SUCCESS) + { +@@ -455,7 +462,7 @@ oracleSession + } + + /* add session handle to cache */ +- if ((connp = malloc(sizeof(struct connEntry))) == NULL) ++ if ((connp = (connEntry*)malloc(sizeof(struct connEntry))) == NULL) + { + oracleError_i(FDW_OUT_OF_MEMORY, + "error connecting to Oracle: failed to allocate %d bytes of memory", +@@ -519,7 +526,7 @@ oracleSession + } + + /* palloc a data structure pointing to the cached entries */ +- session = oracleAlloc(sizeof(struct oracleSession)); ++ session = (oracleSession*)oracleAlloc(sizeof(struct oracleSession)); + session->envp = envp; + session->srvp = srvp; + session->connp = connp; +@@ -825,7 +832,7 @@ struct oraTable + qschema = copyOraText(schema, strlen(schema), 1); + length += strlen(qschema) + 1; + } +- tablename = oracleAlloc(length + 1); ++ tablename = (char*)oracleAlloc(length + 1); + tablename[0] = '\0'; /* empty */ + if (schema != NULL) + { +@@ -839,7 +846,7 @@ struct oraTable + + /* construct a "SELECT * FROM ..." query to describe columns */ + length += 14; +- query = oracleAlloc(length + 1); ++ query = (char*)oracleAlloc(length + 1); + strcpy(query, "SELECT * FROM "); + strcat(query, tablename); + +@@ -875,7 +882,7 @@ struct oraTable + } + + /* allocate an oraTable struct for the results */ +- reply = oracleAlloc(sizeof(struct oraTable)); ++ reply = (oraTable*)oracleAlloc(sizeof(struct oraTable)); + reply->name = tablename; + reply->pgname = pgname; + reply->npgcols = 0; +@@ -955,7 +962,7 @@ struct oraTable + } + + /* create a zero-terminated copy */ +- type_name = oracleAlloc(typname_size + 1); ++ type_name = (char*)oracleAlloc(typname_size + 1); + strncpy(type_name, (char *)typname, typname_size); + type_name[typname_size] = '\0'; + +@@ -971,7 +978,7 @@ struct oraTable + } + + /* create a zero-terminated copy */ +- type_schema = oracleAlloc(typschema_size + 1); ++ type_schema = (char*)oracleAlloc(typschema_size + 1); + strncpy(type_schema, (char *)typschema, typschema_size); + type_schema[typschema_size] = '\0'; + +@@ -1211,7 +1218,7 @@ oracleExplain(oracleSession *session, const char *query, int *nrows, char ***pla + *plan = (char **)oracleRealloc(*plan, sizeof(char *) * (*nrows)); + + /* add entry */ +- (*plan)[(*nrows)-1] = oracleAlloc(strlen(res) + 1); ++ (*plan)[(*nrows)-1] = (char*)oracleAlloc(strlen(res) + 1); + strcpy((*plan)[(*nrows)-1], res); + + /* fetch next row */ +@@ -1446,7 +1453,7 @@ oracleQueryPlan(oracleSession *session, const char *query, const char *desc_quer + */ + + /* get the first part of the SQL query with '%' appended */ +- if ((p = strchr(query + 7, ' ')) == NULL) ++ if ((p = strchr(const_cast(query + 7), ' ')) == NULL) + { + oracleError(FDW_ERROR, "oracleQueryPlan internal error: no space found in query"); + } +@@ -1726,7 +1733,7 @@ oraclePrepareQuery(oracleSession *session, const char *query, const struct oraTa + + /* define the result for the named type */ + if (checkerr( +- OCIDefineObject(defnhp, session->envp->errhp, oracleGetGeometryType(session), ++ OCIDefineObject(defnhp, session->envp->errhp, (const OCIType*)oracleGetGeometryType(session), + (void **)&geom->geometry, 0, (void **)&geom->indicator, 0), + session->envp->errhp, OCI_HTYPE_ERROR) != OCI_SUCCESS) + { +@@ -1807,7 +1814,7 @@ oracleExecuteQuery(oracleSession *session, const struct oraTable *oraTable, stru + ++param_count; + + /* allocate a temporary array of indicators */ +- indicators = oracleAlloc(param_count * sizeof(sb2 *)); ++ indicators = (sb2*)oracleAlloc(param_count * sizeof(sb2 *)); + + /* bind the parameters */ + param_count = -1; +@@ -1827,13 +1834,13 @@ oracleExecuteQuery(oracleSession *session, const struct oraTable *oraTable, stru + switch (param->bindType) { + case BIND_NUMBER: + /* allocate a new NUMBER */ +- number = oracleAlloc(sizeof(OCINumber)); ++ number = (OCINumber*)oracleAlloc(sizeof(OCINumber)); + + /* + * Construct number format. + */ + value_len = strlen(param->value); +- num_format = oracleAlloc(value_len + 1); ++ num_format = (char*)oracleAlloc(value_len + 1); + /* fill everything with '9' */ + memset(num_format, '9', value_len); + num_format[value_len] = '\0'; +@@ -1955,7 +1962,7 @@ oracleExecuteQuery(oracleSession *session, const struct oraTable *oraTable, stru + + if (checkerr( + OCIBindObject((OCIBind *)param->bindh, session->envp->errhp, +- oracleGetGeometryType(session), (void **)&geom->geometry, NULL, (void **)&geom->indicator, NULL), ++ (const OCIType*)oracleGetGeometryType(session), (void **)&geom->geometry, NULL, (void **)&geom->indicator, NULL), + (dvoid *)session->envp->errhp, OCI_HTYPE_ERROR) != OCI_SUCCESS) + { + oracleError_d(FDW_UNABLE_TO_CREATE_EXECUTION, +@@ -2142,9 +2149,9 @@ oracleGetLob(oracleSession *session, void *locptr, oraType type, char **value, l + { + /* extend result buffer */ + if (*value_len == 0) +- *value = oracleAlloc(LOB_CHUNK_SIZE + 1); ++ *value = (char*)oracleAlloc(LOB_CHUNK_SIZE + 1); + else +- *value = oracleRealloc(*value, *value_len + LOB_CHUNK_SIZE + 1); ++ *value = (char*)oracleRealloc(*value, *value_len + LOB_CHUNK_SIZE + 1); + + /* + * The first time round, "amount_* = 0" tells OCILobRead to read the whole LOB. +@@ -2271,7 +2278,7 @@ int oracleGetImportColumn(oracleSession *session, char *schema, char **tabname, + { + /* the static variables will contain data returned to the caller */ + static char s_tabname[129], s_colname[129]; +- char typename[129] = { '\0' }, typeowner[129] = { '\0' }, isnull[2] = { '\0' }; ++ char type_name[129] = { '\0' }, typeowner[129] = { '\0' }, isnull[2] = { '\0' }; + int count = 0; + const char * const schema_query = "SELECT COUNT(*) FROM all_users WHERE username = :nsp"; + const char * const column_query = +@@ -2439,7 +2446,7 @@ int oracleGetImportColumn(oracleSession *session, char *schema, char **tabname, + + if (checkerr( + OCIDefineByPos(session->stmthp, &defnhp_typename, session->envp->errhp, (ub4)3, +- (dvoid *)typename, (sb4)129, ++ (dvoid *)type_name, (sb4)129, + SQLT_STR, (dvoid *)&ind_typename, + (ub2 *)&len_typename, NULL, OCI_DEFAULT), + (dvoid *)session->envp->errhp, OCI_HTYPE_ERROR) != OCI_SUCCESS) +@@ -2563,53 +2570,53 @@ int oracleGetImportColumn(oracleSession *session, char *schema, char **tabname, + *nullable = (isnull[0] == 'Y'); + + /* figure out correct data type */ +- if (strncmp(typename, "VARCHAR", 7) == 0) ++ if (strncmp(type_name, "VARCHAR", 7) == 0) + *type = ORA_TYPE_VARCHAR2; +- else if (strcmp(typename, "NUMBER") == 0) ++ else if (strcmp(type_name, "NUMBER") == 0) + *type = ORA_TYPE_NUMBER; +- else if (strcmp(typename, "DATE") == 0) ++ else if (strcmp(type_name, "DATE") == 0) + *type = ORA_TYPE_DATE; +- else if (strcmp(typename, "CHAR") == 0) ++ else if (strcmp(type_name, "CHAR") == 0) + *type = ORA_TYPE_CHAR; +- else if (strncmp(typename, "TIMESTAMP", 9) == 0) ++ else if (strncmp(type_name, "TIMESTAMP", 9) == 0) + { +- if (strlen(typename) < 17) ++ if (strlen(type_name) < 17) + *type = ORA_TYPE_TIMESTAMP; + else + *type = ORA_TYPE_TIMESTAMPTZ; + } +- else if (strcmp(typename, "RAW") == 0) ++ else if (strcmp(type_name, "RAW") == 0) + *type = ORA_TYPE_RAW; +- else if (strcmp(typename, "BLOB") == 0) ++ else if (strcmp(type_name, "BLOB") == 0) + *type = ORA_TYPE_BLOB; +- else if (strcmp(typename, "CLOB") == 0) ++ else if (strcmp(type_name, "CLOB") == 0) + *type = ORA_TYPE_CLOB; +- else if (strcmp(typename, "BFILE") == 0) ++ else if (strcmp(type_name, "BFILE") == 0) + *type = ORA_TYPE_BFILE; +- else if (strcmp(typename, "LONG") == 0) ++ else if (strcmp(type_name, "LONG") == 0) + *type = ORA_TYPE_LONG; +- else if (strcmp(typename, "LONG RAW") == 0) ++ else if (strcmp(type_name, "LONG RAW") == 0) + *type = ORA_TYPE_LONGRAW; +- else if (strcmp(typename, "SDO_GEOMETRY") == 0 ++ else if (strcmp(type_name, "SDO_GEOMETRY") == 0 + && ind_typeowner == OCI_IND_NOTNULL && strcmp(typeowner, "MDSYS") == 0) + *type = ORA_TYPE_GEOMETRY; +- else if (strcmp(typename, "XMLTYPE") == 0 ++ else if (strcmp(type_name, "XMLTYPE") == 0 + && ind_typeowner == OCI_IND_NOTNULL + && (strcmp(typeowner, "PUBLIC") == 0 || strcmp(typeowner, "SYS") == 0)) + *type = ORA_TYPE_XMLTYPE; +- else if (strcmp(typename, "FLOAT") == 0) ++ else if (strcmp(type_name, "FLOAT") == 0) + *type = ORA_TYPE_FLOAT; +- else if (strncmp(typename, "NVARCHAR", 8) == 0) ++ else if (strncmp(type_name, "NVARCHAR", 8) == 0) + *type = ORA_TYPE_NVARCHAR2; +- else if (strcmp(typename, "NCHAR") == 0) ++ else if (strcmp(type_name, "NCHAR") == 0) + *type = ORA_TYPE_NCHAR; +- else if (strncmp(typename, "INTERVAL DAY", 12) == 0) ++ else if (strncmp(type_name, "INTERVAL DAY", 12) == 0) + *type = ORA_TYPE_INTERVALD2S; +- else if (strncmp(typename, "INTERVAL YEAR", 13) == 0) ++ else if (strncmp(type_name, "INTERVAL YEAR", 13) == 0) + *type = ORA_TYPE_INTERVALY2M; +- else if (strcmp(typename, "BINARY_FLOAT") == 0) ++ else if (strcmp(type_name, "BINARY_FLOAT") == 0) + *type = ORA_TYPE_BINARYFLOAT; +- else if (strcmp(typename, "BINARY_DOUBLE") == 0) ++ else if (strcmp(type_name, "BINARY_DOUBLE") == 0) + *type = ORA_TYPE_BINARYDOUBLE; + else + *type = ORA_TYPE_OTHER; +@@ -2673,7 +2680,7 @@ char + /* if "string" is parenthized, return a copy */ + if (string[0] == '(' && string[size-1] == ')') + { +- result = oracleAlloc(size + 1); ++ result = (char*)oracleAlloc(size + 1); + memcpy(result, string, size); + result[size] = '\0'; + return result; +@@ -2688,7 +2695,7 @@ char + } + } + +- result = oracleAlloc(resultsize + 1); ++ result = (char*)oracleAlloc(resultsize + 1); + if (quote) + result[++j] = '"'; + for (i=0; igZ~xQ6&-wW||Bave-}vzKtMBZUE+4)5q@3&9SPENmC{13>o z^OL8UOt58QO!m3we(m%6;r^feoE?k6tX3+{zCFD-Jw88gUtFBcFV0V2%kzu*`6=$= z{Nm(T2EqB+{B_ux&(072w`Kmv&u{l*5*bA5ZXP}!jmDkpLGSKO_lLV<{L}j8x7vgJ z0ao?A|KoMd|If}&+FzahRswwP=kMJAKX?Dlh0gRMHi`P{_OSSW`t1GV=Ii%=adv$1 z)!#&kf9LoAJ29GlR6!=@I#TJu@0*7Hn|(Yu_?;N&St1k7Z%2BDKPA0AS;|C(!tnP} z@j}NzQ~aRg&^)H1I~b%d@njf9_%k*9NAvge&c?1W3uuwvlM3=o&g`b@Nzt2QwMbN& zY7>i0rJ2Ald6cCG{%<@Isv55dzq zF&~@IV1}*j+t}db*uH!^KmETOGC$}4*WY!9Z+nB$+rM&;&-?%B@#*Of|2w}pJNbwI z{|$cLJ7+m=9yeQu@VH3H6yAN@YQH{exA5Nb~jDBtQ<6 zi0jeq2ay?itq?MV^=$ECo|u)mHE9ONp8U%|Jha=w#4npzM2P89ry`I!?I%T$$aE=Y zik3JOGKDO(JU*LkMC0Rq6h1VX#pY7P>QOWT6Gbw^0UE-r>2H>%e{(w;PsN+jxYvI> z6qD=kdN&=BEoJ6GA!Pvq92H-PLZFBh=~iaJk~W;krCf_n8tCTU1CQ8m#E&4)2% zeP*IE@&2DCy~(6M8s1%xhQr?V^sYaAGiqKB`n}=wt~>6(?~O@OjjiJ~O4?Y-d#Fuk z0=J-nWq48p?J_+F-Yu0#9Xt|3;#Vg{if5V!Smi2T%=MFUm-I$IIjutAnG8LiibtI- z#X3)yP%dCF79Wj{#ZS2+u=mm^egoUeWPyW48h{)~z$$EEp+uM`(3*Q@9mzPxuY{zT z*dC3Sf=y|P7gl5wL*--@_NGf`pXCdD8f~D2SkHm~P()la9{V_siA%_1HjVG4UMX=c zQyH5FDJ0${9q?yUnWcGR#0R;Op==gfp|c(zF2+V1Yv~n(js=`3q(>eTe5Fu3iS{THQdA0k-m6Rg)(@TWus?iz341hAzKTVh zuVz^JsVp3CBO03qE)2rN1}5@ESE6HHWc%a4;cSDyc!POS%g+M^`Q8Q zf?})vMM06wr|~f*b(K&ol$k8d2!^qPQUqBxbU{0LZTy;$_O5xMz$6K!JGhC-lyHvp0nks8O=$T2gEp2>Sk=LV zA`{#Tl_Vx{lK1g0tKF=yS)>xD_ge%N8%~i(;5ZaiQ?gU5g_@|<&~ykHa+qVfA=M41 zQ!$!M#5F-cvL~|NXwU$tIan$P2OT*@7q*pplfluD50RljkdhVhL$%=h$fyK*M7SOj zCV&&-AKsE3ZyVVOE$tP+{ow9eM*0(pG(%FhNH{o?`%*$go4ioXMU$1imI&*!qX}T8O1+2PweGC=ysR zXczy%UG$380|c1z!egEN|J7ZE{3$~fe;B1Z*?y~iGLW@;&cE{Tn`AiRQ}rR@$s#%g6AEISH`YXp+E zbWyoMZ2m3)R-}lnDN_wZSZ!V9f%ra7I?p4LktHT12fe^;shDCS^pqfLfthsXgoH#C z){8_^Y;y+4cfj}Uc129L6mrRtoTA-2WU;o$&>2iYo;+8WcCH3J(QG!w=yr;XYa(8B z$D>=Z760WwAM6d(TckcddXyX7NL=7GZf64C3+Mn2WcFKxu#$*HksP@6F|HZPZ;A0G ztY!LZ{nQt(Adxp`;$YHZ5Mk>|k;+ZNqL6E@)^NczpQSL8AS<&UlJOQfE@J)w7P0Zs z(pqmLO?21P^brZEksdd6}ZjV1`!!ClvwI;+=$>mLnV)7pNz;>lrTGFDwl zM@p*M#6!Fax3W^kPbGWKo8O!0ekBue^~--OiJ%a^RfQUjyFl`*4;6ECAF{(Z&T@Q zd>Ux+9fUR(Y^ypa5txwBscR~?;b)JMWt5u#uBM$f&dx8z)%7=5&FdzesMGzX)9f~j z!kVRBl_Z$+;q{-Vs51i12yUhzWfM6U>5?$su( zZSXzvprad^1VAjL1_>1eDdO#eSxwd7t{^#$onO21OhkF6F*bzNc~^uo_^d z@oD$QI}xJ@qLm7QJn+T-XU=b#DcNX-q$MG&DN;8`kr99|)k@lUk`>8>Wg*hner*~- zH^&L4&o_QSo)c+KkI^T)}jiBrQTb)y25)%p(!U!)K^21dv%q^p%xp z+YV_?HB!&`2ns#Vb$M99+I>N_bZtwyUaNSQv%CQ(gzAQxz+YufuN=HB?YD>GsN|I3 z@>P0aT)^kLw_~8;)?C+#fxcEX8fiNNOxkUol+!}cW&}$y&*Q*`Ah)Qu zt%+&Y)ix%6!2wIG>~s$+I|VU&mX&$-vn}WD>ABhDj8lGOcB##H%O+>j|DC0%teYjd zYOn=B`4(g#*}fvKCvD&75uNX?$)7$`^qBDpO_>r^%O17X*P*~wM#ibQsLN2T-lcw2 zH{#}&Eb`a}Z&q|Rm=(F2MV4;v73I{8Kqva?Roe!xitsyuf5KTCR}*}|aTFj5?us(0 z>qU{%_TmMo+w!^iVhd00(-s0u#IaW8h?t6gfpr+9!Z0POh7y$$zx@H465}8~UWefzQ}nmPoBVq3*AME)N6GIaZ|*;5$SlXki+-3ug-Kfp-BJrUgaNKxP4SIdo0bma{Pz zRvV|1pR&-iGT=VspQZZv9v_=>XFYkK#-@uuKB2R%ft&`N$XZ3?4;Fm?D7eokUJ!)8 ztTZzDmI`JcBJaL0f_2Hfw{&XDl<}-VX8OtI5R>lc?rm>$)0>Vz)Z0cj=du<=Vd+Xe zKzHA(7)iHdaT9DH)`q$o<=Y}Y#2ki{6|tN87TXsu-RG&ms(`M|>g?f@LN-I6_xyZ> z5S<_}i7$-W8#%Q1q|-`s#+6F*s9-*XhIY>!0S>DKnr|BRnG)ZAgbWtbf>{?-M(>u4>po1he*yGr~RAWWZJp8 zebIuj@P)8mVB1a!xD3n-qvJJ5r0q^vV1nxI8XdswUgs5J7votPcs-iRkYJXTa7GwR(?tb zK{3-2pVLa9r-?f>&H>AmJ} zG57fOUSgY?=@lE0avsQFw6n$np{o81`(cONT8Q3WX9t?+cf6M?4iQ4Ui0 zH^sJQbUW$~r-x$DANCIM%izP?(a@U3&AY+0?>^?&^o%Xb*-!Y{-7?S!;>Mwths16z zY+9IjPt_7Z$_Q1M za||ava1Ii-+6JQzD2YXZ)5CIT%L{fo&8LAjS>cxFwg_)COa^d8tk@U6pDAfcSN*OU zN~_tjae){k*9C1@cKLmMH@YMr>9^s)8+_%fJ81}e%UnHj%cPP5yPQi_<}>&^&6@bO zS?U7ExHo;r^IYN&+l=gw4GSMxp2Rlko4W=Lb?74XRBsj^i60P6e65K@+bK5{jdMB| zRo^DrCQ?Q9zdspO+c}gJDCtcM!W_TZp|M@h(kimI;}4gNCp5QNPkp`!NDaD(Mp~NsAG4GcPUR9QMIz zN>mUgxJt8Ow~K_G4tM&hG?(o_ob4Z{+meR%DbY4k>>oTUJ7O*4-AN%%pYg-UETB3| zz1f`am0B0BULxOC6~xJPxlG!y6B>~*_te#}mRZn}R%56A?rf)ew%w@H2~9L#8Zj_D zu2NV~tNFUwZiyGbd-<|zNhh3moqk#3#UOa-Cmr{Kp=)k`3;%N=*4aDV< zL&HC*x%kN@RoX{jZKpH5376oSID3WBdMKK<;lNF`0!^yVzo@mBiQZZW}EpT?C%Bvil}3)5C1mDnli^74HOrL_jtiG z6Gc2Cp&zt$_cc|0ePwn^R$%82*RDaho%ZlUswAjuPnD*#YL@)^8AGP-=*3<`c4K$; z|65^)s<`>d=Q>E05)ij2v7fU*MtP1QNP1%~;@F(Qg*Pa(UWO`$LdAj$zOD>)zTcs{ zNbEwES3 zuGc{K?#G85EEgjm+u~pm1`76O9p1)w4x9VTAW#WqpuCL7Lar&ec@vss@tZ~z+Qhfw z#rCt8^>}87fc;L-9L!DaAR?wb24s`Ef(LICfI~mZUuu+*C%Ot*IbhY3hjtw;ON5mV zE>p|Dcpw{3*gCu|d61`<2^B{oM7>fhDo@mJRqNcp5z zxjJzOjzl1d^^&qTx;8C&UT(R^f3f#wi)~~_f~a3RzaodO9s(*5%smqy2*Ggi>M#=P(S@aXrhmjRM4avmn;nv8tV(xVD{3o2Y|0J|)6rh;ltSIcvY? z`g`t{lxOK~!q1oB!?2~-k~9m+gz2{Bdww0}7b7RgpvXgnqwF&>H@GJ2OXdxYtAf9r zBd|+}7w1kR2?Fw)!aIt7&wnLG~kReH-XB7~q(+9BzDLhz!>y-bEG`l>t*?o=3yItE2A zRfgw@P0r7qvUQA7G3cbePMoPw%uWnrs41CgFlK7XrUMaXLApr!bXD<$ z>Vliz1id|S#;lpBFdYo_pN75b30D-M)CGN0nMp~BRf!K`08UhcopiHc8bBSvPP)Iy zh(y&&hua~<*nx00Xo|QXGE+DKRKZuFB?S1h=?nlrPF1Mv3#`j5%#&$b^2#pX2^CN%JmKl%+wRmEI_x-oTC>m&8qb7TQ{~#LXhZS{2TwZ%wB? zFu9j`F&+ev!=473aL1f07t>Bbmr^(pmq>j9aK^Y3B3DYO=0x;FJcmi|PQsDugE+?D zInxenjS0i9O(d$rbN&3RebR031LvpTOvltcpf@5XVsAkLTWIH8!RX#t#d0Pqs-VDi zwA8soVMVyd*!2)Jh?K8t5bvORm34CKElQoIjVyMrg_h6&%}iK;i~+RaB79SR05Baw^wGipIispdnua&?@5ptAMjMH6=h$|DRU4igqjKQQfhJEQE zDV%0GeFv3O9P7>uadO6jpt?IGA}KPwlBOj@IK35`Fr@rB4vKz7jes18s0y;BjHfq% zyBzNaJ9(WPW3cdz@hxF41PqI(g|Z!<$}&!=z(c_!-+%7@NPs0| z4uS*FZh|M<^(8?hA`DL_Gvvg1b4L(lnBzPs2Z@p>w=0balQO1Tub3K`W7zqa`*&`% zV>w);f42}A9M|e9^T9&{&@EGq$6ciJDqhUOihxRGJ3OA1-+#WzdscAF%l~uS**`q# z9zOaT_vHVw4Bso||8bp7{-38f-VwAxS!sWGdq)G1YjK^%kwOljhQ5CXX%W&`@5Ueg z@BbO}uJ!*ZPha0eZ?xHMn9zpb(BFpFJ&3R;TP#6V!kZ-%{e3STXxcjvT9|JG2IN7M zJaHhPc4XNUm6f_Ar}#3P+ST=@E9IoZ=uH+;K~ALxk*RX-XU97eX|NlO0wM z37w{CLO?%Fq-3(CUt?GgVZcE4>m@3AM~M@AO2brjzW2bVZ_ zQ{D6S!MXmvb9kb^I@FIl=yQF3ijIlz+GpoKgG;G)&^bHYKX2%r6MoixcevkaAH${n z&H?!XoS&ZQ`=xKqn(>q7=$MvS&C1WEe z?Sr2>-NOU^p?9aB9MG1N+c<`|h|ye#_UOcW)0NX$Ki4>m7`q%-6|b zw~Ncs#--`(UmUm3^mi9$WF&`8Y)?!Wnc<(vx*X`B(6~5(0g(A50!jNs-y##z>2B$- z+TBjKp+W2SP9OoK(^tox*KHamO(2AQfxHGTASdmU{lf;C#CPC_++ZeTG6{z#Z{QXz zS{EVY?dbu|9X8bbUGI$F#xZaI=SG3Ye&e3~-*Me?{!hzrHv9h*90Z{+$f8GNFMp{f zZaaPT@7>&$=8*rGPI~>Z{7H89=1`L!Rk>ye9ckyT?CgNw=lCD}!ZkzO(8x9cpFTTm zAG|$mDvg~TzCHsgsdatI<{5>gKS?w!Te;xLQF=Y? zlO38~(%!wk+<*7(=(znFda~2`uEr4O&FS02`tCUSb(epqbaNQ@X5Sno(am`Gb{h4G zti99OosLKR;axhIU9;7+cVpVMd!O)}SJ*~(m=Cxwp z+lqN_E9Sj@F&F5Id2e6L1^Qxu3;n(8lz-~J)|`b}a~5pvzSYk^e!^(04WUHrcyI zv0(a|v?@s9S@Hxv$-l(@?$C#uH@|9Wf1KhTd3tixc}+ffdwq$X6W1DaR^NL`ni_vd ziLCowO*}{Nbm#W^^SG{j4<4^;=^*K4uz?Hbm@&;i&Npz__~RZV99Q!ru`NFC4<_Re zI&=#C&&bTB|IllsaU$rPvBrd!=)Yf@ z-76jQ_`kT9HpcWM#n)OvJ4aYRE zl??R@W3U%0$)Ugw3aK2xI}$gGO3!Ug@dKh#9L<~~QQ?68M+qPrdP(2jVhuG!EOy8MmF8}<%$|05fyLvCDvt(#nScBXJv z*IaV3Lo*ss9r+oZ4)pOL54t-&PYDlFTdx=0%NTKl_yL8F#N<*6e>y>UDw`1jA8;-U7G)ZhTqX7aWu!fFjp{3F^5g95@2v5 zN)SW7^z(4ay}HmJYlJ?!A5!h_s{2pQ@}l@b0+#;A-?QXDbZ!BGI%6SZ=u)!eK&84T5afe6OyP@uVR!$m^9rgHz$QRFxK6-*Zq9Ks?f3tT-X(XpENAD={6jCDz(HT_ z9L)Qcj)o$P@TIB#YcBN`*Uu0CdOrV6cJQR{HQQjX9vz>y&%w~P;3xeCk!JuxaM3{Y z0+%9XNy&<;&^jd$k3gYR21QQDLrElZ+Mpu%{aO3n zJ9nWx&%j0hmD z#Y9Sj@CFFLO*;87q$vfd1E>-R+t3-@v&a%&(Lm#cGRUtNFL>Wyyg_IjGUN_8 zu4*DKC`$98L1g;Db^A_PR%nWT2Wdbkj2>!6N$LfsS^9k}?0r%Laz04eE>5VYt)vK- zG;Q&yR@Z4Ng|4n#o%t4K#evw|8Z7MJ|D&N3V3bV&Xd>o8!6%VjFJu*BSmR>H6phKW z1JY{|qm*FWT38vr&}2hfi158>pBx2_vNG zL*kHEexi(YAJVFY)O%e|rZ=~{gaIVep4OYy@LQFutO$Zo;($YyQr89H3SP(lKrlpA z_66<_FTw=6Y!fOm@SNSkxy+^`+}D(?YQ_jeUJb%)9knlxDP@zR0PHG`f;z54L4X;l zI555ofU7g1bIUTJAg)oz%yB-KMx)G5=Mpd@hf6rujOT%4Vjw~3>nZioA5pT8#ev|P z68H#ks~w<;O~}rTSsYYuSr-4o6+)%q z)KxeIY_iDO**cTuG=-!dRiQbP^R#&kFWGbULzJ5LAZHe!5%s@g3=Rz=tfV3;UNtmu zyJM9m@>n#zC4i!$5SgicMipj8f@u`@nXDlADqg+>Xa)6;Z_)q^1QrBvBDnU@8=5bH zCVU2k0w*kT9ywAiqdk;;61L8rJn5jCy1i@0!585R$m1*A$vb+GxK$JnQVYPcGR>vwdt^ z7w1Poox56NaLWybFOU(Agj$Wpd9&;;??qV_>Z{Mv36L-5vi4FC&TT#k^=wD?NDV6~ zKy9=P03Inc$dE+fRPrLryW|s1tfoi{gg|g8+XZx5)a(=RMX)Zgpb6+)Ac+?zh1I$y zP7s?CPZ(Cs#}K;W3L{_RszhAzbBUy41|>mIawO5|pn0PClXSgBSpdqY0S?I!&KoA* zb3#BBWT?KxI5P4VmQT|Q(mxGZr?OuHQZ`M!Na?UHXP4z;rA0zyXQ{kX+j<55pzZTF zTlE~7)3gha9c~DkVkpm?8Km&x4%mKe#IS=BULMaKD z7zJe2SnnASOFxDW&YN-C5==R#2sr&b=8Y>{l~e@;IfrpP#mWK#-oPM>dNQ80paD^? zLiSLSwFm(ORB#iTunN>q&@I72788@poXs=RHbX@d1{|75D9yrZXhxHnNt~f1nZ~04 zxq!yRv6@IB(5E%TKpLe1#*pjtrM|sQ!EbxJzKv6RFyy3>@uyT;liX>c#v*xzr=KdN zY*LaSl|##ws$CQqHIYx|2R*lAa+w?nNR7r!W;8Rf8YwH{nKi5)%Cq2=(m2-}1zAz3 zId~eW7cUs7i?Qdo$8-KFKn)dUprbXG0P9l{KNQMnrZ}fCo+esiA|b@Z~KlJST;d}T#^Wg=c4@URdhE=!>fD_ zAi-0FH<)NzmSx~PAjWe6ERn`&j)O7el@5-nfM?rMQ-Suo!`U)B{{dx;Y>*Phld z#kHSJ3OEOZwK6H%^U@YFqY@`E&=Wz0hWcGP-W?8hK^NBKRby$*1|``Ba31&tHI^N1 zXN4S5HhB!GEe*O>zWV_Kn!#vGljG`XIO_MLz=Dx_9iB6fR%r#O(65KX1S(vIT(s{^ zX5^-2Eh2v9$O7Hnanzq6?>&_bs1O3d(^OR8X?SUD5HCkZsYr2C|&K3;M4MnR=`{ZNGhYe5k)VKHdL|Ui)0XBF)fbSZZLgGELYo zi1()=9}n@iDL<9pIq4IUhv=m|)6h+LS8T*|9B*bLJbf!`>|-xQV=r=htp3*=h_N`t z2(gis{w9QL1YT^p8Rx`@=G%wLRo7T~WI9N82uZu;i=9VXH4iI~7B5#FQ&vPxNsJ33 zp+PNcMrE!!5XV5xa*PI}R3Uv7P&lIr;uBi8bDV1xCgcrfqUJk7u4I~$>xmcSB=ZA+ zfqVY1xDDKXr?ri+sLtb#l@bddlb!^3+rDbFyUwphhX zDuT#*Y?!0Am@1U+nMYNrL3skc237gM5{`w~%?X%V0|zDfa3YhKNN#X@tbUu!vZJF; zQWNSaZW0n9pH%`3RcWhIA+GN*!ZaF$-k>5_m>RoikR%`e*y|IXMyT+q-a)2_5cS*{ z=Q=`MWoc>0QZFF9e^?O#d`ETz4dvJaCLf3|V>*JLzGEn-;n^i=>IC6UNX}YrsEP^& z6X;fE+~wIlXbo0KOhNsWgdu`_P!oDWnRYQHEn*7UkG*8dv)5p%o17sNIl`RoMq~2Q zyi{ILYOP7vO6Y;PDzHKeel=UwjRQ}#N?od|8BtWs0DC)x-x^TQD_%a33JDlmHh^d(W-L)q*moAGr)*xlJ6iq=Q;D(HPp6(o+a2VmM0ZE<}FxM)Z?Ch9pI` zALDSS*Y@PYaGX}lBupB|L6g3aHJVIOoRSk<=oAH53S>n)BtivdR79!|KmjXWDqp5f z0on_ClTxv>2B#WI*F#n#uu&Efgu)VIyVVk2f;VD`U?Ge1(_d0 zKd&T9k0hCrVNDs|B1D*weI*0t5JW9D6v&aI^#&r5hISy56Kg7k`kC(w4D4pW4e}&P z_4%R`5m_xw7VzLMLu$4(#%Y3ofDk9aR50oZBNIYe3J!1JI>u55vQ1Jz(>1VCbmhos zx$d6zek+;Y+(6|gon1{VSEH-MQ&1FijdjP<$_i08@%E$pt4+h=C#5R5i*74j^Ct;qFBBXU!2Ky zeZL@krtY}VAb3~lRmX4W3ew&@BU z!m`&3k4X6zDxsE}3Q$?icm-0%5iTBdN;JFH>~1L!VY;x{4}s1*Om+Yx>$1;Py--`F z&U2Nmiu%In1>~^5L1Q+&P)EE$sc6xHSssIELR*dpE=c>Q^A&gI2gRAadk{)#4Gwr1=PuyHOYj##81>Abh3{ zS07Rhck<~?LDMbv0hyJv<`{+nA4Ed~XeDk_s$O6!lB>7vzg~9F&pIcsFT0(;9bU;q zeqgvf!JPuePkrx!VIPVDT(H^a^S(0~sNji4=T7TQgw=*xsim(0=af;nR@n?XXfBtr zRKHvZ8bJD_(U9=Gz*jPnp39QCM5W+$Ud#`Sx-njfo~7DfOzER(3a=s*P$2h(w`ev) z7g3B2U`wOcDFBW#WEFulVejT@xGI53Wu;|BN^U8k8UA?O6a7S9l|*M9oFDO{dJJ`J z$fO}_N+TI~VP!Tu$g+>aETx74rCOwn#DZyMta_G)MCO6?TA(4JRa(g?UqD>e4g_Xt zvZMx`=ohq#E*1?zpC_8jysQM3=`NK5%o?pn2J!&TwJ_X)*mOfU<`FF#Jw!DFwKG5} zYia<9x$YehKtzV|% z4fbU?o!rve^<3A8FO4zctBCz2Nf!1j%Avn)Bir~4Wz|4uNu3@ zIq;|i)gGDx^8&t7HR(U`Ta47_To@Y~EBHz%1wJNv1ZnXK3Ok$^Q8k)dJkxoE?3C zMCcP+J)R@6^dhStT<9`#OZY6LKa}@okaWf%mPIS81?xS@ek5^D3di6zy;NT zSosvo+{Zj8yRZ=!QkSFSIxR*)iCzR=0yqXtR+(M{%D%1C+st$pEaQq@#1-MgH{0k> zgzZAT62)Z7908!XH1o`@;jY^o$k=FZ;Z8JKyHJ|smA@lR35}RWn`1mT;A&rj)mSJ^0v-2|!ae0EJx-2X&J%M7d2lyB#J z9ok1wIu*JKVTOn8{WtpA>3g17L7Fe}z{XsI=FS2gJDDp{;YdQWC>mr6oaK%py7&n;Z%gt!Mh*BcsjiyG&8*+AI50q-h}cISZf!ZwAq_T z_K-SgDhXEwj3FS_oH}ka`V;+Z0Kd^|gsaSyfF4;(o;jWpne%#p8^nN0{(ni+TR>(a zY%quXkdVN;e^L+7VmvHuPqEcg2{4=X``VanxHMWN@4)wSWjwd=(J%S25{{BO)gcB? zZvnCx89;wyoxV}UiL=#J)aFHbh;mSJhri-l_bchp{E^TQI!@R>d4m}A#*&M0jR}?q z6c`{B_{>aC_B`CX8v1ePG996A;bJz!X0+lEj)+&NM_j`d=B}jPebMe0#bU? zyP*NqWHUO%P$S+s_UT?K8Qrobd;(>@P)q@zXu=&4rX4E_h-L0V@zAgj>UG6^M2QOQ zo^=icKbx~WP`}ELP;CGxP1r=~i>9qm)#hC9pf(6^@{z!WhHxMQy>O~sjYqwtc@y4V zRfIuZVcx|nGC82lqQ3Ztz@_v-eCBC(upRQGs+cZ!qU`IK@75R?4h$EFfV=8V$b(@F z^bpYqxlF89dc!KVF$J$=-GGZw3%$RE4307x$o`wdx9$5?{Z-<;i&VX`!91Y`ayae( z%BYQ26f)>~qpO&7>lRZ*qhm0fcp!px)s<@v>W)3fdwHusy z5u;dzUUa0EN;`_1a(=n{?#%V2b*)~!fcTsjFZO75uwkD@U_nl%M1*Dv{)-9SSh<%= z<#Yk58!ZdgD+krk;&eOUyp`Tw?E#y~^c1wM%2K}&P&Lif?$u@S-W|{`e@aKBG3h!b z;HBJK0vz~!z6pXNqX}sOX{c<6y~3RFuvz(i*}g6HGRf zz5ATKWFmQa>cQcSj#E_oWt|o)Jj}!@s;j`YUm`U5ie0&4>KJ zXryG z9>tBGT%2HDrw{r5Qb$R(hBs+QjosI;wz~VL=jU5jG;H`>gy{-!!a6kINrCR_`-ks@ z=C3##jOb{rV5uxMq?!aXo+~AXo4j7SRG>(UW%cGEba_I|DrBz+dNc{tCU{e6sD*uD5A2Ce13m*M0Sg?W zSIA$xm}HhiH;hkIheXeO>a(Bo`Zz+58nT1Piw)-NFs9Bwkkyeu;}(8bT-o{S@m2$g zAydQw39Vx;#K|N}<0FJN+fFj3(Gf(?1+5@kc zDJaQ!*;lYn_Anj>m08qPLk?(%@OV9Nkl;4fTU-k4k09a0QSZ73*$KFUf{`y;I+2N? zsB~#+c}N#;K<54#5StHW!OaJTO0!VXGLZ^FC{|gKsd!cGj8cQ8ODTw&P*M>SY1X+IyJ=}*M0_$Kn@1`;#vh2L z*9x0V{hELtvPfqE^xF`0z*eKN=q?9e-G@N;K1**Tap-;T*PdSE`EajE_oor$z1;27 z?8i!thuu%)**cxg-t8Fn>#4{Wqhbsb8E8@%c?IQqnga;@v|x+`Pp(sH8zk%E<#u1K zxW_W0MXjtfz%&A^yOVVrnV72P_Zt7&yT!;z);6~@i)41p5tDrX70}FrdYUR7C)DkO zYCkaMhi$Zbi^gsi#C_!pBJZujOwCAd&S)H!HV#D=MA7fgARC3$X%7s`SOh{(g9?+lu3_%<}n_K=c;~~Fz_iWvWs0) za{JPBA~~l4NOw@6ytiTeE94Jp@K>35_>nB&EoQ!APtd7;4HXWc>lj!e>C z>mK}tH$wRux`SwxF0v>Z07FhO3R}$II`3GMB0F}(^T;$b5&y!sX`vSz-`zw*D98om zoo?1wqOM4DJiKB$85Yh~EKY)2Dwx4>+Rwn5Bp>aiOlv-0)78!n+iG_D3FzZ$GHb>M zzMs^U^nU<%K#0Hh=DaF=`AU>!xl+=My=$MpAu>LYT3lH96sym2g)7))Ic_R*n<xJ#O3|2<3U_;1K-2a8^#?#V|(`St@uSNH>J=*VrdM2Of0c zv*+Y}^;woT6@qf<)fLQOcv0-b z%16Ac9i)U)f_|TIpR)g*(;bpG-m$IjW$itbTw;T)c#tkHU9OikDA1@lv~ouH;4f95 z5R)U{n>ArD$Qp3#TmO4&%mlpwO%F-Lb}C~0Ags6liAo*9S1HjQXeXr;sNuWNK7mQd z68WB!Av%A(F-sLPNtI~J3~YhQDnSveD~9P<(~B;aMlr$PD#wbjnWUb~9r_z>I;GoN8!X(#HCO7;sG3m@sm5aS-GL@^a zVWC4?k84ePG-Ycgi>P3pCh{;9q?dA!VIwD->K${DqdO4Oc!(|opwlJb+)G7Fc{!b~ zNX-RaTI3}J#vYhC-k@U!)$=DHynUpU6}g{cc?|fTxTeu-KS<@5bX%Y3#|M|komXcN z_=k)JL_tA()NVS7cl!z9reK1zt1`C|BHPL{aP!=Cm6>``KcDj1($t5_G1P1-m>LR^&G=dfJ}>u+@)bJAbtMyzu$VgI6mWETet|>Tukm*nVLM1>A8)L#ar!C;dP&IMmX$+B!4NZM;PS*04TjplNDW!P1FJ`JJWMqO>VwbR>2PBcCII3h!!n}S1G@*bkEQD@h*8N@6R1-YHS^D$P+ z235aH9yw7S$=~hAG$BOpB9vA+Yrii&JmuHDLL(7P-;lpJlGzt>H^{?$;>6ayOHxkXImoSErc*au*4#%?!?OVjvxN@a9=-o z^|pHn4#(Z*Yr^Rro?YTV=q0_jjTY|hhQ1Av@8@LtP4a`5YcLIi)pJ_DH9}Ae?Nq9& zGKE;@8Nu<8`61IJ^`h8=l3`8B?aqxsoL!@VxqCe5CBM=2c=!x8tK5W;>@elYt7mYt zqMk7Gn^XByCGZ^rm8mlcb4TUFp>1oGdb;!Xr(_C_9^mD$+Xo>bc1 zfIY#jQK6?5YP9%68vm+kzAoYcw3*g=o)Poy>A?lmgDT7^`}$BV%*QwbtxYSMun|OI z{A)_pEXd^3&09?_hvgc1U>N7tn2wTv37Hoh8E%zm><#0T*6$#DEW#+k^v?O|SrbY> zksk+_q$ihT3)nxrJUjuA&8JU8lY!8DGe2J?6Q)c}HyudnhYE{3bcr>Y{&URsWZr<{ z+|5*NihfyGh1EQzTF$eFR%qZpJ(gi80f)fZhSKQ5%|5W>Qrtu~;xl13b54!a)4xWY zvp%u-0+dWNX49TZhgeS}k?goz;$VA3I2(^VG95R@Jt;7fLOF)$etrGwew#L*3mkgu#-*kvr z%(9FyAeW^_dYr3KT#NB-s3ypBdx?T3)cpi~V@HI~F%4X^Nh*RVSwcN@sRWrVH-%x6 zj4=Vk4SqV8LZ8JW^1>+tvZ1(OAp4-HEo1f-C1!!gT#i#PB8$Ob2Uwg(F<=AZQVNJ%a?K(Xs2LV};~~=@_d$4qnrxl+ap!Ne#9S#xyrHo$2jQAL&TA02p$zc5 z!#0I+s0geKSE4A7SrZ}a>P{mT7qF5CBi#_B>fPpp+fkW~%023bszITgFa~H^c5Q3LG?pIyPA|d_}G_3mWxuoR84*CLnt-1 z3Dt$ASg2{j17$1rSZXh{8Q)yO{2hN4n=Nymk>ObM5myIdqiVbMzUk63(J zuTQfcVO~!{q+)71e!+gAbB##O0$FW{u*agCLLQDZ1lJ|@Wu9-CtOO`hgcZ6eE%cyr z!iX(e7YTfBa&>fc#r8q9bW8T?w>U9?_bUu`Z3g= zH4TiQIlM&a=A?bx(B5}W0^gzDS%ez5yZfC^9r9fccJN$gtf|h-qRG4{dT!)OK`5nS zid6i_b~TxBRW6LOE@~ITafM6k&x&@Mazo{!g0d7-x%k;+NO=K0)Hsb4%4s_NG)1|j z(3sa-_6i4Z13Mn`GK|11&Sr)hHrWoLS{3rZAa@{PF2H1@O2TBZKoTsN&U#ikE$LZM zSu_HR!ceMaHnq>F;f%*ays8}rTz!#xu%PtJk|HlG@2%s zoPpUWhn7N8H3$gJi*cka;lx*n&ST~?SVtiaAD*3^p6%&u#Tfj-_mE%O(@*z1-O0`5 zkXGHmpjt|sSRIanMu|yxl-WY>*MIacdkK5$;PAZNIo{KG?E}Nv)3=V>-E$B_IzJs= zf@))H4=54T50!DkBUU>?B!WOz3>ntXh=2{?V`4G!t)6s_8nR4ApkjwziTNFZx({Em z4AT&pTYwQtiU=6fXvXI3xTMJkRt`b+ET)rM>1RG;0cfa$8vIXP^Os%-#(C2eM6+j~ z&$JSzBkF_5)CM>#OkGz9q|yl;`*qC3aBKn8cbCV9C$G=nfR2X=Qs9`Du(TFpi2yYZ z+V7-egjPf^g(a&tKoTY-Wf>blD+_iQY?3~$6&Od5E{CHVCb$0m>}X$yQbPZMPK
  • o=`{{(=r3 zlHvDJN~3V0t zd46CS85+RsD2dTPG|x4Jb3jp(N>lW1AtpuwyNUyni)2}k^m5bGRlS&rQK8oja31Up zp|Nf*DG6mNX4KW}2y)K@Ggx-io=7w+wLzc_M2|@&teAnX+_@&p zd7|uRLp7g0OAN{_t1k#UN8ZC&m21kQv)l?VSXx7TV9YDVF}4qcJn-j3V<6LYL)Bo~ zYoM+D{8%;W?~{&lGBhfPW+Z;0V;8rgykcNXBQkh6g>G7b>v&Gn%vBAPzVoP}ROV(d z#HNQ+f#%Y;j3VxcIzmoBhGDLNghLsQxD2P!u~AND$a7M#HC9${wmAo~m*_X3XdQ$^ z1eM`MlsHipA5T?7Cy&)$f}{tK<5Fk2m?~hDQY#1{B7ERy{T5aW(EGOEQ`_aS7@?*l z=TYW7r>npz7osbldCzcL7|5c8DTTcoq1WLP4w7UvRXhg9)9Y)hK;zpPBjlLm1~s## z@+{ZbOf}pqAtG9VvtpV0W=E4yw+WUcs^I5~o-SmCF!bSCw|pybj6g}gf+YzdIT0s2 z3neGI(opwA_Im=1YQcNVv?~h}W6viOsIf~OC^}SEiB&Qy`E4Rd`AtW!ap$JtAl(^e z8F;1?MdGe@Cc(0i3N`J;P@EI@^Z74PILY*C1svh z2o=2cV~x2z-Eqr+&}@}bwov0q9kX-A7&Kh;@Mmk4^%ywjN5VEw#_MporScgv;S=EJe4Ik>XlaF7k%)AT$D;KZx-=98lmfs6MKx z2@TkMD4%W!4_R~_ft0ae&zZ0o49LQQ@zWY=7?3rbQ0<(^?_My#N?mgYBCr=2>({->n`uPwSzBho(Tz^V`vNA> zhOmI=6tMgco8v1yv=pRs#>dT_dmZ$RZ)&vWoEIf{P`-?aW<+OFff zuIu?Gxo&!vMgFehugR69W@hvzhzm5y`le4aO}R&^cOt8Lm>)B)`*unCdf(l0!s+1M)5*v zbYw-j2N{}fR3#&{u&Z?s&zXRDdD9zQ3R}TT{e2rVdHT6r^94>YwPdN+V9?pd#JxTeFsXnu3k$b zCZ}wJG{M@sAdTs7$xD!`9MY)2yLffn*)M!Uw1I-I@NX7z9NQSj0nP60hm-9NIqC*h9uzi<~x9j@J={a?^hKK(_{$p9q$o3VZr3`OC zNQ3Zq5U~Uh%22-gQN0SXENBPiJLLB4yAZ;Fl`7!}gf3uVNBji=3s`3opNrI65S}1^ zK}-TK>xN&P-tcOKG86$q5U?U4{(_i;%5g)u0hZ!}9}s3BY6LOgTd1x2PqG#bI@e=a z3lA^c-G~cXeHM7oHCLSI2}IDayICuHaCZ7m{|Ca2aJFTMw^_t5HT`70w4aQt;e;@S zqsiR^fTRQq%Z;qqXJ8w#vt-#v;oL3*zqOJcZ=iQs=*0`4busD7tvTJEXbxs+=Kumv z6WdV$pltM*ZY(Ul-O<_UTM76-XzcmU$@!^D>7e{<+#pNZAPd-lWonSsXy~JcJ|$-n z`H!5EKV&MQ6lsG@8u_oGgZn8NcmoDo*MDjsUmSKRgqb+x?X34X#f%K2ZF*r4PPVuE z>J*(RIpF@6wyN?zQb-J|7T?<<;Tg(KcOR0F~Od;kv2iW#LX{ zCc%#Ho7qlkxb}|eIc}?Egh|q}*$cB8nsxpB?1F|y*-g_i-PYXmZL{SCJEpN?8Ej0J zVYGG(bI0;@)7>+yJ=bXlE!(v%{ayE*J!BH#yVEWG10>GTZG&Z98S7+Q!^|D{lRdoS z={Li{SV~JYo@hl807!*<_^?Vy&LO0CI`(O0-J<; zof5#2&)lUU+?olN>xDFj_5)#m`$6aTEwN{$sqO4oY1Y~?P20~eaUA&0tfjl>y4ZG& z(!b)CIN7%BJ-0>v-)!N*#$nUx$4RG~$2qv|P@TI-gW7C1Wyzoh&xndP2UVGa`w3w? zSe_`_h{p8ym1~F9cx(N*F4mA;iR$uvRKIsk8)VDG9gK1=qJ&;A`9Wjy(VlQaWZ~#$ z3#|gV3KCoR{+2X4(Wvj9taG7?4-LJ_p&F)K1HS1uT^zAIRWA?XipwA4;-!IliB&MB z_eP~A`7teDQePG)5xxw}k7x&&9`Or!9{GW!JO*|E*Hivp;Q-EO<}<(rDVIO%XqW!J z+77+=<$0IBzvscZpU9njU-3ZkSMdXjeQ=Sd=FA4ca+A!ay?!AvuWDcz=9IJ%!nV08X`t6|6N#b3n_EcU@go|-)yWDa53!(ToVHtI8BqDH@b2KI^GUi5P1C7tkFrXk=kGmM17 z;k~>S>#vzR0U+j_k8)}lLH-7^Jv+bw5tfJiJ{tA(w*)^_UI_030Fo!@kp4|)T#>2p z>o+|G=;$+)D^lQ*&LJQQ@*d?WUi5P1B|O~n9Ny2oRN^u=$uKMj6w0ssjXBU$dWy`C z%_fgf1e`p<*HCnZXBcZ!_<&Y(u1`s|%s%Hc>Uz5i+)|CP zLzKxtjja9>QqPSiqZ)a^B%FU8WP$DJb}pxcIQkKJf&4?B5nP>NY}aQzJ%Xo43qDOY z=a=Na@0mbdIwqhjCjWfT1jcQ6ik37c%*vn0e95YiJ=#uw7C0yOg0fmLRnLjhigQ5J zkJO(@?p}UUN=KRR_`bZaF1d@dEkta?)7-X+NCNwsN%yti^z&&-H#L9erp73$aukMF zxTn=D1@d!YuUP8xhny;iDFXz2ywt59l(Lt@L5dni>f{|#k9q3YvxrWCfYx>l3afm; z5sPkLJm4!A;-wX0ipb`^r%wkxaub8Q$&h=4iC#ndKvU?=F5ms-@aMYzu{We~mZH!n zR1AS(E~X=)<0-vNjpI01;GIiL2=f~E)PIzfI1>80oWxX6%;hm|j+8Nvc`ovV(>a@S zY0uGWb`Fd%egVDrSQ>3IY{2DkAWAaVcrB3}oYb`vIsHt)3@f}TU}s7o8Avxx+Ay!z z1Jr;~aRCG1r^-Gca|mF{2O8Ztrj0PqjbxaoLTacvHNug>Vm=o7JZ-tF)Na{=8Q4-{ z%FsDMD1x{0@eCa0=9?erT^im-Xc&O3R4vzxx(I3)3g#d9q{>EMVqqeMa*^;#oI%;n z&9t%sBtPW#kVO5V&v6*m$h=SW(-_ieNHz$*tkq0_8v-^QM-VA!6245|>YQwWVRGxG z-ah$x3$mfGoH;aIj#Btu7Y?@)Q;KLphxHNmXVRQrYoDF9fBrjH+YlN+Ulc0ky}gf+ zbR!(q|D#^UF^yvlV1q(Oc^GVM|FnDFCA(Z!*Po(Gt33YK#o^h{n2Khl%|580z*8R@ zWVJzVql+H<1G!u<$!eCHJ-)EJFM`;M(lE^8APHTgWkqR_wNlrz0;^?5e(S}qJ~EqI zorA3gp8T}GMPXq}>^WQH1_Ov1e+1x2K*QdxSyxt_wMY2SeI$@w9Rii1kDWnp@($vU zP0~_2nT`m)d}pxSdOJVr`WZ%C=h>)(=PR(I~t-y*(u4g651z z(tY-(i}p@3!Ysx3oRr4i((0<1g$bTJe$!o?hHU@WKjHXqf|=lE{rCTLtQPz`An)u^P}efTsB1iF+aMTKW~N<90Dsl!8#HBpoY9bW|*da^^)FDRongVG5` zX^#V>O0obXw~h&=dP&HW&%hAL61niJ%01vkX?pe8iwbmM(7zug1gWDp6p8s%&v&DGxqm_{XKrgPxu{v;pE~iJ3BgNCkOl< z|KfRsqGc%cexOQHY65Ow`1Ro<3w zr%}HbH|ZD=U@=BykIG1M_Ue|InUQ71Mrzqk62ykza%{`Z>{b{jVH}h}r)tfV4?wOD z(LQ9YqqUv;r5i32qZm>=8mtn)9BNw~I zVECz4FI+2qt8jmtytGX^E^g1&W!lwSWZqN#66r829mxNI3$VNc`8`hI z1sCmmeWPoNB?X<%NCWxBs54J_X5;yU)vsx08|uWi1)1iyayB3~IHgf(2yzKnf9!=6 zhY5`Dm{!xB5oSQ!5q$>nx}x9Ri&x$Av)V^$U$*P>M!{ZFs+Kdk0%Po@t%BFTW>YX=q}eXn4+?#!8l^?{g@NrY7k(1aC55o}$$W?s5MLX?9ZHV-5ux^;Cdq=J#-# z@tzc)RXrsglESFDId{kX(|123Ff*$R{4UB--SY#uC5;y|5e5@yU^!));z7X@y6|xC zPOlwz{-S97>N;UV&pVich|Ky~`{eZ@0GSMiqAw?DhB?yZ)2BzQ#e>76_Qmlzhc@+N z?ep{Y{u|{bWpt-!9DH%0HPRIV<+Zo%zv5-m0d-nvd+L;^xWR@7fD4Yf;EvmmkcbJ> zFW5?PN<8U+nzyIg$qO zR7osY{5{q;$p?fA2WlRoFEUW_P4?o1*6P5Cgr{nCrgrU$mk3M#`l3yU$8G=i8VbO* zyV`f(Aqu0x=tw_*eR=wh+MB4-5pa!?OR^!Kzd1Z%;=@_H(>>$?rusJj!oQOLogN>+ zDEBBi{nrLsc>a|%L>eb__M}0-(trn>fU@v6M&|C2Fe{y-AIhDfgakUny0vI$P7dEM z)*133b_V{IIzuNC?){*V%RhYgo#Z879m3wt=U7nWv(D?+gx-kd;LkDbIbW$eB(jG< zfzM9g3yJRC+3Eh_!Nu93x}JjCmW^mQI%?)o_cBLyz2ehS=tyq096CV?Hs1GseuCZ7 z`(=}U`v|rmK3^C|S)MI1KR?W#QQFX#pU`|imY&bt>kpkyw$t)9k(Wc><ZwA@Kv6d@EdRTl%ZS3wfUL2!R_DP=nkUn_XnL2XKgYlNU(&lh zHrU6T4GrIlS^@bl42{?h5<5&>*YhloupEh%_zU`J}C&gMELS{vJw$u zJ*^kq%~Zl9z1Apss+Z|g>20n~oeOXk{>hvfK^ad(oaW_E1bSMi9e(>5^|8IkbQVyPL9tveUXWSoG+b6gnK81 zJz5`!xnFM$;w`K+ycKWp9MX_iUe(kLn2JV>pxU)tX|W<$gulEst2Pzs6FN#L^{jAK zg?|OcDTw~dgzq7Rl-@w}AkHg$<;>I3NL4Rzs(*cZtZ)AbQa|7A{;0+?$ktXp9Ef=M zSab(L{=XVze%NFhUE#4z{?ZxqV=iTY?&#zBUYPFhc=%yDm@Q=}OUHOMy4C;-VYmyVc;X3k< z*}#kJkJWH3^2esX9Qwzle?0ofuakyq_?SnZCNJ6Y54-5q>tYyQVZ^M@HtC(wa9rJS z$&~4i(J&3&G8%ZDe8e(z8-Lku!^S&!MYijgCq!AA8U!WbI~KO=K${Nyh1N*R4*eQD zCEE<6(H+^{jBFY8a%3_{kv{?D)tqg?;NH~o$N?+K2@%P_D~>=X!o(5efyZ(%N?EwbCZ?VO|6 z?UpcfZ84cBuS7%L6>U^1)S!B=zTF>wqE!xfAZT-x_90V2L(j&|@#rHvpER=xE3c#B z7jCaFnV#~JD&MjRHHH2=A!Trvut?*vJ^}Y2e4Dh3ax($$UXp*5H^hoLWMlCXyYdn` z1Fuo}n{|;EswHwS9oqKZ-YC5mH^7yFJ&10kbSOD)NerpPsIX%RflO1Zjlc1UCujdP zjz6R~;Y(b!22RyWVJiD?8Ii(;w-C4JocdIHA=GQ#Lv9n@#n$ z=n|b9ToR2&e!z#OH~Npd!7hMGmR#(OlhN?@7K#>gev>{*=96_!nM2-7apAXoFO}Jx zGlRuj)Crq5$Cb#XgG}wO>D|k_bo}3%@U{L;i3BMN{GVkwhG~}gKihFP{NEECzuZDutY|n&AhD@NfA)I=LWS-y^egW5v|r#NP1@2q z|5=CN({zrRwsUfH3bq$L9EAP5e{u^bDCJ@IrN7Wp6BUvyuC0F~bUZ3H+$ZOR-dU zsV%L{KXvu4qR-cDv&vsuozyBH$9vrxQzs4r%l4uqOFb_R!YoKk(}}#y&qCibb8d|m zjrFFXf(1vy&dCW`XA}i;cPtPBYAnCbOKf9*3)CAlJ;c(~|E$%nEi?|DKKcrEb;Nj4ruj&2HAu7m;Qk zYe6wDZJ81I#|VQ~E3o3!ORSjSn_&i~6{I|8r11F_xJKQBAC7b)Im7q7l{x}h1@b*T zKo`rA2yppcE(RXV>Ze6#G&VAp>3t1oup3EvckwqJU}rAB2*IDG@8dD{&5vjf! zY^p>cz9J7rAcJg(SrVmo8W98v4J+`&)Qnx*F)brZV~Icy#T%NQNbGno9|m)! zEIWCg5@HghH!h15U|Hyk)iBtE)r3SBgEK68fG)OIeV&QxH0?gYa+suhc<9exs=CMH zkCmeAvqRJQ``PCQVPjwfW|Uc>X~c;era@)|mT6{Y5V}DeI>Fa)h!E%cz89=e6{(_VJ`Xg3 zrH3Hxs=>AriMcXTS`jKFu9afrqO9;2!p03cvSTgyXxoVsMRsi1Nh@u+b{xc(WBOUk zvfMDXtu+a3#Uew1k?RxUR)LUGmQ&0GRnpu_adS~Nd$Uu1$z!uqt{H3>-zkg2;YzV_ zQLcTnQ-0ZFvs11ca+lmGXE}hf++tNupoqOPZK;xpY&GsMGhOxi%u>@|ty}0Lar2Ad z-=cW*CLDjz|D7zDoEp5eKO7``=x`+`wJx8To9j|n(_PYImg^eX6)iiB4aZHB%rQMH z@WLb}Na^{BZ9?!0!DEkHdFMj`?{#w<5F>8CzEHh1fll^3wJfsf z$F`r-^jfoeZE3aEid<9|fcu9!sS-cGG89^(Gtu#xlz<1*; z41yqWTCP=*Xj`PXeFmf=&OFz!?bNkx!wWO76~snlwn*O{H*(ytNGg8fF1gj+U!G>H z7^xmXMkL|D|MO53s0)wvDhVA)KZgA&COz*D=fKog(V3cD7P2lixiEE3 zb=ue0qx4#oq|^18#E2d_cEn<925VPeE9NE^-j*>V{5+^NU z?$L2I!dCRLis~#hf)deGk0Ue$A>Ecln}RZ@*b<`Im3i&Wn3v2*O+v!_mLIx_Yg=h* zI;Q1^Ezfnm#PMblU7SBQ3a$!I$x(y{&{^+v07nI0@($U`10AWdJCEY0J4gd6c7UXc9}v#)p{ zD+mKGN}Ll5BOYFZw6wZ{^Rin@b3jWGQ6D@#O*={*Gme5Fj3VD}MYikOExTp-NJJgp zV}}(raImOBMb{lQXVLS*G&O~Rk~(CdT%Um&GfVc#l6$$f2jOJ9kC`O2%1V0rtO9$o z22`#+r8Lw+p^5iQxYUqs=-aA~htRiUFh6gI-0zymJt@xp&L|z^6P`x6q}1T_=|eh7 znZXHFTxA^>y6YE=RoKEK=%(~qo3)0z%qk6r1SN(JnB!H`N_wo!D)k)1RXiR-Lyuss zA525PS-R*DX*mfZH;r4V8D(Y?hjHqpPV7cm*owj;U7SG=g%!UPe&Hl zOAIUB)iCzx!?2&EqXruOmQ(nT|6w*i(?56Gto`fs;+(rW$P)E>yQ`BoTP--bD=(~7 zSTynprT{>U#1EI&4zE6jG_Hgyerbxhl#yUjF49^H>GO?N&~iM-P5sF6($tRwD|79X zoJKw&D#f6|FRJnPEyML(BS@_*HSN@~-O#YS#BOC-n1!(+sotZA-80537Mb`PX;|6` za<&5Q+79*t_^;JsHUo$L$Wf%CC;LN*5wLlL#kC7Fr6~?ie1c+_me?#a(d05TgOhQ7 zc5$dl)?2(hN;BXfun8!LV&Iuwnq+bn9?bz)wVN`168U#*9F?1J1(e{tPnHG+mZ5V^ z(({*mxRzWdJ^?HCURsmq(wC->3mugf5YrI0juWzg1T>F_!`mtvI*-26BS&R9L|oF4 zWCm!IDfn!XX(WM_yV0(;w(MR ziS>8F0na4QIlU*$-rgR|Xk6ugnkTS%u$^UH4h`STeAo5Uzzn0n^HM7@TW%0~hSiD_ zXC7PAIfp#Pd}s(sTFomEgQteWKhwk+e^x<4^xCXE z%WLq`o8As^h|5c-RmuW7y2HPA;EmanpnBkOFWjQ0;IX{c?@j@iN4hRqxN4-Usgrs? z(k)P6J&tU<)iOQHkIXa+5-YOJ#IllvumhP@F0fuLO)B7P&O^OQ4q#b9b5^DS%kVtU zZyAIqi$XUeKU$gZTVWD9ft_TGcvRC4t>#xrlk3NWQs$~$(zb9gSv?9vt%402uj9z0 zahojO292LL8m|%;6jXL{NmJv|a6Hx@hQ@PzSohCPyWL7>uhsZ|KLS0U5+N5=*(#{{ ztaY&um6DfL$$E(cYS_egoy2zI&>+|ryM$iEnQuj@JD=IsYQd5&*Gq%ze6MPgdsUm% ztD5;)=NztWe#_yvoT4vwYcc1Zho?~(P16lRZV+;TK0h@=J{WAj8pNENPGN(X3n1n! z{rm<+p9Do848UIviq1`}utCxFpy;Bq*dxI`*PVx>=#qY?k0UEfqv(SH_^UzDxv3U5 zC^`#8-=?GMw8~3zvwuF>{`p|g{c4a?k*e?W;l$8p8sfKIU!k6;aQyDHx{G;7KSr)y z5aZ)82m{|UOy9QL*l|3MpucaqhM$<0-)a?Ihkv@?b@(SN48VcnxzVUybeeI0E zI#KDNlwoH_pWY^9LG<1m|E}s36DeO2>$Wfb~5N$12tX7}Lt6d$%@& zT2?oB?^lyk-23ve&P~UWZGDE!td}4 zY(6bMpBA4_i_NFS=hG7NY0aEZOYCBnC=kzRZ9N|nCj+K!PPlyeaA>+C-PHBndJBmnbnx^>{0AxPHcRwBv_eGDLHVGOa8x4ZoKcDztJZE zv6qy&zl3x~Z5ae|pNMg9;Sq&U%TKVDRN+G2B-9vx63Kx+%*oOB0w3WpSt2EdH8%TM z2ps$LVc1W1$ZtIyB>MPnOxQ41h<&_d5K05HNKJU}QC7Mu*keR(cqJVQox4rM*xW;7 z3I$G7>93jev^-sFf|2EN$gMVjOrD z+y>ShBwnG1Tq6bm?NAPuBMrZGKb)3wq-lE1Y;4I4X<2iPGd`^N1NaBf(p@@^Qu^KHk9Ro2d6AK`^4{vyl|~8Jrvz7_ravc3JA{X zofg*!_#1*!HLr@T=&1;b{(H8X%ru(h%_L`7N;WSr-a~@uu^=I$#}_9@vd?*{ds(Do`R~tIDf@48CRbkHEkg5FfRg$U4qtk{=Rn4p7 zW-sS;BaY2Gw4&$u*CcDLOO@k=aTJm4b{=lfYgE?ce>I?l{oomM$J-zvfN z%VPcd9$t!`tnc9^DAoEN&Y5GenD1>!UL0n6s82qO(sbujc*pIuggqz}^o500lW^lJ zw0P%u5jQ}4al-;DxG?w_*UPtU+|aCMf>law_*-&avRC8s4}iYTt#1AdaGO)F0tw60u{<%O6iszm5bTsvX6gH4;iV@e zcr#KjeKCT!PGa|U5xS)aT$Kr;ip*KxESZa9yJfaott9h;I0(pJKW!zpX9O1Mv*8w5 z$FGjOJrJROSZNKq4SD;$lefnr@`K46O!{x^pM0oWHL)uc z2Yy0YHzN($hSq)YV<}p9U&Y}Kt^2*xy2m2&dT3p-I`Fc#fO{rqZW7>cQ)2z9h}=eA zT`7_Cla|%Wtk_KKH1musw9LRX9V7KE-*L=fX(A`1g2p+5#_9LbxbI6G z-V;)~jWObDIX1=!J$L=vHAXxYZm&vPS0;FCP}VIvDH~d(4ei7< z(%4Hp&x(!Iwp}MM-8e^=?t zLDp99D!k~VYz(i@^Vk?(H?-{u(fF|poKtCdt)O(PSI#XuMH}VZ^E@`nxx(i+gzkAN z=Tt(+epM^y3N&ujy1BW9fj0#2*&iE%SNQzn2wrUXZsfQ8D2QX-609Z;sV_Dg<7YzOGEq zRr(ji1T$JT`tN8$XjLMB_F1nJDE9 zkK5;mXYFHslxFED9mMGZ1a91K#uYQt5RLJwTnC-*dFOqN7k29y+Yb#daQ_^wam#-o*=8 ztD3xW8(ybl@|MwnUz6!=pZ;tbtmWanMzO0|IPFjLn2bakvKFX1IlHzmEAqag?Q6xG z)pOjNwEW(o*I+STng%(Vu~ach?WW}v`^Z{KmYAe0uRC=!XKq5%Cj4I z{1V4~@JP;V36J(y0*otyr9b_+LSXt9plK0s@+3HUi-1#{+F54DwiBhH>4%Vuzz#zr z4MR6F13O(UIFTiXR$PSb{^}K4&vGNhV^QsV zwQ}a!v1iU4<@8D+Z4D(&`sv_$@&Qa7{ixm$Kdojzt}j@y1!e_1s(;VM{8G2-Pnjre z&C1~Ci%7GNwV;?8MW!34p5uCfo496TBxdNfQY-*wTD&6C@hgU6$NSQ?=TS%}RH5HX zRVV;i1@b*TK+{hUoMR^fT)vl!frraD-JOn4;!=%73?*MOJXXjsP4hLggIwH z_rUk#-$^!k$B`H;d9dq)8j2uMS^WAoUNB$u4IQV*egXE3*nuBLZF7-2xs6kF{h0n* zropJIBP@9<8}a95eI-($dsGh!AWYS4Q;Fma3ty!(dKCS7*e2`B@A~y zz7P8J!}NTHw^d0zDCL2{m`JRO@-4E~k|!rSZo*CMy!y=evx9w^32FoAYn42+!cGd_ zNo~%P`?);7xt+FISqPT3MUOa0k#K$pTY;2?Xc{)$HMG`l6$ZQ?9Bg#n9RyMtv2z=~ z=y6?~?R^ZjfF3H5b+fS2$JeG=_<@l=h$)ID!NqW7HtC=#2x>|88o@}VY2_cjWjtAgKynIDNUcaST{*%DaYt3iddLa#AxkxCoP z%*fo;!(xqwF%b{6cV84!r}k13Y%2U(sG%`-B_*px`j2nZKiSTxkdmw z8H0f2tep2GMJOpg9a7p~@!SwWznYQ<+GfT{Y2;m!-!|^S2=B?Lg&{|pDC>`gYjhJ42{CbBplIOT5bNPZDYtV~YZ1Ly zsa-@{b<6e_mtI~;Pmdr(1rCsFb|W??D}_CtPzIj0hh+^WAT<=N3)BrjyD?4l5P?G$ z9jXa}Uqd-sae6%9iil>pR%@;o|CID08LLo+#Ee?Sx3Sn9wv?B6*F7v%pOcHxsKm>} zW8ow?Z+>`@jN*&I_Gm)+#OI^+e6WO&qJ9`*-#^>jmX652r9XYop}vdQOZ8Dw?8r%O zO}x1FD{0Ni(xZ00=bL$LgzdOK^F7*I0b|d=dC0gD9IedsR+}x+yrfsrp0802ELQ<+e0li%q+Nz z4}+mxHeIe$w;8__KjwU1UW*$q zWnC0YPW>$`Z%9Z>7Wg}Ofmuw+G!oxa9BtqS#$EAg)OhB+rQ1|e6rPjJ#YuhL;u z)rW}9$(*;aTEV)Ej4M9->O>R(pSUkKC*n~xN%DX@p#CGybDxzLQ)LCa)H=@L&DkIc zStB(|(Tq$HgX}Jf|%WyDdJq@gJ{mKa|D`A%O@ z0EYFOr2HEFrO(Pc&+9Ubm2L3L(am;J1Md;87jSWTFs%Y5cRLPgfr=94?MDF!Pk7sR zd{Aotz*uNUs(dSVab&4TqXi9yr(t$yh)MBj*)hke0Ge%`kVw% z-tfAR$(`22?4x~F-t3XVV+sApGlK%wFA?-=#`Cn1gIKG&yYRWXhh{KG)XVS#~PGwjjgcN zNX<1!GpMFM^S3CCZ}FZnKUbHR#Vno$;;!2K%@-R9tP=gj>$iF;t{3b7M8w0i)|A*6 z6cxnhaFY!NSj)fjebirawljuxSS3E)Y%5Lw3nOL(8~Yy^u`V;ti;`s23Gy2E+Ds#D zSg4(8&*g`OeyGBpM@33H4I2c{pyhBxGp!nCN=l0{d`s8o+H9@w)=loCY;MV+glLu!P>nQ%Rf~jIx76L z>4KK1RYLnxp!m@EM}y9RA2#c)HfhZk2Mc7=Fl{c1{jr9^<&r8(Jpykmwcvgi~TgB7Hm`zPcc0}r}Z3rcrdq_jqG z0vyUN$=l68OUnQM{5JxXm7)_5MMoLUi=_Ru^U)qfXW{nA!PvwC#fKiikA;GhZFvAp z#H`?K)7d#k)kDJeWtM!C4~4;#8^i6{=vWK1 zp*Ieg!Jb#>`DQ9MSL`X`(<{yD9rEIXR!!mMo!n~|+;4CQAiF#_86xL$}p3Vo6jJex0YsiT@Io; z`5&HS#;dEd#m!*qaNgW_Kf8r~V?s0f?}KfD&o6p#N#h5?og>m`96A_j7gZ`Ursm9` zbJz}JHknapEvw3)?|h@};U;`XZYIg+EjXFpd;}eVbBqRr`kv8!^Nz^jjod4Ark|WK zPAjB;M|)+y7SESK<1`$x1@k1V8@!KWetHoujx-|shUw`)THL=k zzj*;>B$3M5b7eIReiE{`Qk~ z_7l2w3KIp{dRt`zYJyHYU?Kk-F2fbAQ-{jgV*?&>>}9beiAyKxJ<2#)tcI`!3t2m( zamgi$#g&jJI6*S%HdZ|nY!+uo=VW+jMcO~%Ejb>Lr2X*g<9PV5g?9`uV0d@&)Hi7{ zljS5q{HJiV7jzs&u%>TdOEDDs16jeyTax%cnjjn7gZ>5)HjYHeP~EUTE4a5-20!TA zDdc;(PcT2~W;77mAb5318YGXEE@C<071y|+(~n1NIY@Obf3{^qG;)H6r9@$0DCsv{ zT&D6yhbBC8UA<&ffT&e!gJob!QbS?c5n-Snkw7MJB3fhJU~EAJk964Aw8vV1LU0eo zbA-hJU>@dJk7Myx^SR%gOf0i#Wojg4D!y5Hx>3uaI%(n2v+Rf+A5&t=)>^qxl(6~- z&lO9Hk!Ry86o}1lde4X4^>?p*_=Dgs{wgaAwN0r}R^|rZPv~L$7 z`5)r77LgN?f7)$YHZGkfu_NOcRBZGJxW_{hjst~6mk!cF!jN+fh zy)_zF7V*7iIamyp{fB`KJN}_!R2=Aq3Mi+WQ0e2ix-cU8z*J+#Z!*E_{0 zV;^`rfr^z^`x%_5VQ)L3hXeXWA)g0>hfToh} z>~%(#Z}ukYE|ao|(@p`bvW&~mg!7Gpyc8%YT;&xQSJPFPAE5I0IiLaP5A0dYr7aTv zg=~&X4hB)yq2~?)HJr;A+;^-og?Dv@94Bp=YRbRCRAP`xX8ZOSo4IyKwsg@=LoYl` zEHKiAL0$ zY+w*Q>$u#lWjLs?_fpyDWbD@pYP6k~Sf{wmy=+ieLFN6mfvT4a8IvRKs})jfJA?5N z>g=qGT(Dtw37NGEUOTNQR|--09VpLDD)JQZwO#h?>PQLbkvX|}mAb!K-pqg}@Q50T z4~eiUjlI>7FbuU73>MmCGaP*_>a+1Mpu{pxI4Ynb_ejP5Y{>AmH774k7|}iOP_-^@ zz2*!!AK~cq<{NjqA@o4|M~aChc9aV4J=MFA611WYZ09*VZ6mv2D~d)Vmz{TM_0YL2 zE`+?TsKSwmA(b2t-b(X0OKr3S)Tb&&C>_f($26M4vpWoXZYmJmRW>@H8e2Wp_C?4| zjNE;4M@Q~D3vA@VN8(KOvLy$tKuff`9c||+Hz-bXPa70wPo=TbZS&s z<(V}qs@)%DK`Q<}MN@$zw7;a?Up zONpHm$f6V2ANn%YrYD4&N2?uko;lBQksldP>FG=8j>0a`WNx<1M&iY0r5|>{`{lpU zcmorMA8@|wTe#-KUsi^-L&8>ZpUm+z_GDk6E|4u6i9A)Cn3@^`I@DVa5FmzDfR@}b zcA<_)V1SEws^*Ar?AAmH#CexS7OI%&l!f8&VY|PpN0ZFp)|_L}aK(O&IWDN4l-7(v z1y!SB2_$pa4q*;_gNG?Pg8+-qT!g!@XtEjQV8W~63iDj<2e9%ZGP3^^RU z+oFNd2AEKZFQ{TYytA|nREGj^I?5%n5owPhkX0=%%gN3%AiL`rvDgS@|3!$T63RF( zf5XY>;9G8Wu1W zi@IN69-AlmwbQ(UF@Uc_UXmii*999>oF%BMKn4#m@lr@E$wdb@KqDzV7uG#7E0Cko zL_fL?L()v}$6Ta4h4Rx4OM(|}R+caDS>XM7w+lmZM}R~8p%78X-R?U~W4{R!b2OE5 zZ|+6X*G8oNJ|9H|T5JQ5iSkb(?;qC!$v#+`VdQGfp@5a)3)Tj4#lW(_=uE&|JGbnQ zp!NXe{x)#(jv7TEd|;H~z0S^Ud5wdoi-X(I(>(GUxtV@5`r8%w4-3EbMEQ*?d_|p> zUUT+bcIMh8UY4F>o#1bwdVlWxHxi!my6O2G?)M=b?Y^YLH{Xd3Z94?_20j^l%+|QH zOUMd&ZtHt{3?t7Nvh)7_{Z~Hq`@NXQxBK)QcW%Cg4X10HA!8&Z2Yyd~4qK~dD?`36 zTmO8D-@@084g1R!L;mq@zlQ%igzvWJu+XRf<#;)0?AX=T#r0p>@OF>ID6zqN`Yh(d z{b}1oU+K@mO=sb~KbbEdQEPT93ZH zX>eqGH@Dx8{K9+vba|mgdVc4y5YbPcz4FR;IGzUd5%>F2i|x%n%~@V~tnab(V5>#V zpS`grL2avteoy1Qr42$oKV>?{m}hUcwWpKO$3AxYT9a`jt*R`UeOjK()yFdgH*!f& zxCu4BBtb|vOA@PhGjzrQklsH){121l7-yt&rTA#xZ$GCeybOn?cJvZrLG^k*S=uV6 z^*@vB?E?b{%rnH zvg3yR^mJpC@f7Ojx{?bZI1}sk-2iBKB_o-g%h6+_Av&`3qyB4zSz0qM^#tYjMcOmx z3^QxV0{bv6aBJ$xbSMFw*F2@VxP&oXVe_qaXW850_x5KEQkUZzcafXkH4u1liy^wT zVV7}SXY}KiMn2C@qMVed>7nYK;pbl$iQnL=UzanSjZlZ?UZ=BL{2TVVjq99L15mE( z)@u+kn%y>^+upY3L4kpf{O%k0qWZdT=)H+@j`T0_BNIGY5ZW9hjI5<;s`_hLx5Y2atyWUgSP4rU{4*<}^V`J`$#rGjN29~668Apd zVXcm$<+Bp*NwIc=?B5CtM|{^OxBt}e3caOGt^zJki@bw+OGsZt!u}^e*EUH8>?&_N zRZ5#bwW(PZA9j(ZmY>IyHlUBKZEwuSy8B5fUGBbaSwHUfY!Hy$`jXKDjt9t3{~Fpw z<`uvrmF|s>n@gtldh1LA0w~rvKODNTu$~RXbOyuyP+VSw#a9oI;JS>Lv>grq=5?F- z$!@NFm_4dpwJ%28A@Cuwbx>NELgHZQs|H#Yl|2@+`gyd^Gq^TBh& z8E1s77`8`mg?wf)>m^2|Ec=1!dh0a&d^#S)uJ9TiOSu|$wjsVUR0a_eheMWF0qdo+ zZo43#?&uQlP*P06y!y_8x^B_)(ZTNQLuC#lFURk-)rJS(pW)f#Eh8&jgSQ^Hq)x`7 zYB(r~%pzq!VplR8vn@O#`v}Lv|2kXxf}Kyj$N6!J@U3t0iJy_*+U!mi!l{V^-Pt;H z!ax>2f0DvKrKO2g%Ki25as#NGO@q7miB(#P{@iu&#N50)&Cy>EeJ`^#+_VCZD!IHT zk+|Q1@(FMINGI?T$ty!(y9jZZlm=LL0Npt}20(>!AZ^BV`?%(4<11%pe$VLBY@f#j zDfwc|Cx(+K)~*&usEIUDnVoK+g@gg$GP%Dg+ljM6Ew)K=Bxnvh7k@ReeIKlg-1yXOqjz&K($SI-OoD`}LgX=HY!;dwd#> zGMipRuIBN0_&QcV^>_EbshLh=Kf#`K<1Y7HMzY%V^-!*se=o(k)O*q4J09hD~IqDho!B*pt@+cL?IS5GXb3NA!^IF-^p*|mN6ZQCa zT?Cy99)c*vSC=i@MXy6>KlI>lmu|@P;#SMhnxtGdQ)b;RWZ`xbb|PyQ8n|0SBJ%bSpUOT6jA$NMQX zX}V%QZE3ikLgi`;IqqnyX|aqfOG-?A&v`#ER(`D30g8amq|nIO3V||pdI1SEq@{2_P_%y=B&8NPg;tkkID}^$qBQU z&v01Hg{2ccJMH_=Jy~s5V^SOb zVx01ZSskI#r5-9n9hx3p-J)tNoNI0dZUA9vRSW;-^u7xRcGDWa8X=wKPKEyb?F<*X z)EfIBMO><$ChuO0nZ$osIfRyZ#irQssH$wuQ%SBDxs!b07RFsJ`B0x4W`wH(*eS zjC>zM-+k`v3GC0>`IF}9^TrNdyLxsMU=vO(mVCY09ep!!n300l+Ii+--bm6-hy=~W z5{M@C(3E%yA*HK32s;L*D0zw##6IF5NQ&<@}|omLWC-`eeZn_+K%pR&{M#@gt@ zH|H0N)vmqV-7jS3t$TQI%!w)pzILIfO$hA;f>I}O`5$8Wuumuli1RWpG4Sf>2lw;Y z9sCxaY}~4YBaXN}k@c~09uSaVXpW{mKR$UPinV2|ClDa2Nh7N}=P;0rU|`bYd#X__ zJlT>%ukH~hYb0$*0k;D4*kXzm3z2~GbxVmAXf=p>s)!Scm9nwOUHgS#$^{4bagy_= zvOX=uPp_BhwknvNnQ3{|67xYn!Z_7}+1RWWKFi{`li_xop3B&^D*UzasKZ07HD*Lg zhYB6p@7U8q8vW9aV*E^>J~PG28nMSbkMr{SOoKmo0eFgeM5niEN8RCCcpB9p&SJ6k;i3;O+Q4>3I{q+t0tcm2!Ss zPrpa+ZXu_Bad~_`?Z1asUn*yOcU##;g|T6xmCu^za1(qNEp2BWrYMRoC2dMBgQ-R$ z^;^(2$BALmE#ATORSi9@+~}R41p%xVr+V1#X2zT$R&USi_H_7Gm%>03K~SmAyY!@+ z&>-GmJ#=|$C?n|UQsV^7kblsp2DDz%w&bp?H|&8={Akbd<<+XxqC%|t^e{Zwill-u+ zf18pPlMV~N`FMTnfAtP;&-R#fqs7x8E)|1%UtbirJ#hvOk!S8t zfVIzSYD9pKPJ>FDBm3Mdu4tRotNVK)h{5HBdMhZ5+ok0mpNwOz>T11Mrd(ErJA!Ch z&}>I?zT1^-Euxln?s?rTKOD{vyw^%!A?EbSS-B;;LOQ%7Dov-Ri8wigkaRVis>YH+ ztF5IrjV%ts)R@Qe|GDIu)I-5Y zUkMTb8U_YFmkX+7RY2@0L50G?{b3kiKy#L}Lki&zBQ&LJA_YR}%e*Icvq)2O5BMh3 zLSFBGfZ*fjbDT40Iv;})veHovkoz6Xo^;KR<+rk)%zbR+tj9|^=C57obQh!2i%rEJ zxKPA7x(_VRpKo++ZJdncsh>_sr+X8;aZg(U1fGl%u|GV$&Z{0A7i4czPgQ~1)g-f} zQELGl#+hR5x+5_|FaAk}*8kJD>cOLW=%Yz%@fu4kW9cdAcqrCH6bit^p12jtY@U9tkAi6WGKbo$Eez#O z3U*Ky`v>*tydpp{l=&VW#ge{rG4JS1FtD2`8HQwJzI`GjG0CAh*{!VXlZEu% zF*z>n6&lDs7&Tts$vW)GN(SOD(1&3#tuO1=N8K|GhJeK$2X{0w0Re8nF9pzqZjg3N zSdc+o(PYRUNf9}g^Y`R@jLz5@78p^C_z(+Yr#QMhGG%Q+v`h>Kn}LaGVo#T=$MZqMEKl1v z8Js|(6sRuqoY#%%w;JwG_ZNHowu5EPjFr)$HmVt)RtSJ{s&iZmaE!vahY*oT>-RtS zp2!i?wSj#`GXqRI>LevLYw(JDNe&L{zB|}WnDA%_)V1fhNcy+#L#k5d_<6DgNx=lj z5AwFA6!A!|JGi>e#0g^(+k1r&Ud#Dq|qfjkDGiPk+(X8E8!^R?*u6J9H)qU@O-iZ6) z>oo(6;4=qek~V(VQcPP!S5PT;fJoWUtNiBqfo=n4{OF|Bh<>dgd7FQCD@P_o&UwW? zxcD(E*Qp;Q>KY+&bpvCS6!S>x2aTI8QywdS&EBcGUPBpl~!XwpVK|L0q$T~E>jI>;Oi)EaIYp`=RUqrKWzYcXFRlV$7ir$DfOErNUa@l)s|^KUggjI9c8 zBQi#qB4+>!e1)k$i{??Z=QuWQ(v+BaGf0NC=YzH#Jdht;)U%!ZfK0^}ruQlR_KfbCAkl zI+WSzZ_DW`{SGpPoTMk}e8l~@V@#B&25{H_Q%x}31~a?Ht=)M6+s%}5ZctG4Mmo;Y(C83T#ggcOIx&2&|VhJew&{n_fJK_mYa|(;gd|VJNq7 z<9M@qm%;O!s*6klAwxA*Cjc^$2QX6AYJjDwfx}G(>R^EbFk^_C5DGw~I!l73B32yy zjX+Y0cF!*4$GCd^N+V3Id7pqHr6QyBx<7mVV>e}yQES)5X5+)7=RP%dHlKn zl!Go>DgHKq1KXx^g=tf~FZ|NDt@$e;k*VgLmlHEc3Nc1&rLly<@oMgZ#(z$sOPOp- zBY4b7;O~bk@|UN#P#o+7DE6JuWbKQpCSf`IB7Nb?cmTt;#pxts#ta1dk_yru%FS+~cFUKNn`3z`{>9PTM0k!YN9 zEApaWd%SZ$cQmAu1D%Lk;`kRa10W{afuh#hJyJWObjMF8mD|J5u4;G9XO8qIw=0*e z2~+$4xU)?xChwr(FE#@HT!#i35yrKb5`Xkr5Lx;oCIkitlVS9$7%MEqFF_CC)nPO5 z`}Oq;&zTN*cU%oy^hrOzBM@jR7QJ&CALa|BpV~_?M6P?AkT#N!V`f>ryAjA>=PEk} zYeyG_h4I53!we##uxdF^~|9geUf5xvS(VMBef}IUJ?M5!@a4_d6HE0}} zm4!yu)WK1xBj=9(7T4Y9*i6q@eL#SBV?@S3(hBw?+23~oD7^AW9|IE$RA`w8?b2wH zsfSnT0u`KX+z&@$_@<*Jjgh{j=$cLh=AA*^3K)>m7AQqYfdh@b_g z5e)1)Pp}wy=5Ou9)3g-ru*xWkm1MMI=Cjd?Nx`WyM>DQY;K*-q2Sj!=&w6BeLy(x^ z_%7tufbI5Kd_^gkfkA0Ile5}1Zp<;Ay5+vi^hY!sZT`z>vh?p&I#L{Qc;}rkgfuoU z_7zL69mZJxm4Bg*r-)DLMTfJbf^Fx+-`HBa_Ym&tY9R2p>dZ<;tO|%*mb_~)*h6XF z=jsfwFxJ#?EF*aD+{6gHYm0~LfA!xNA2U2&vFxoI6;6az%E2p+hTJ=}_fKJ-BRg+# z+6ttjy8HtUQI?L!Eo&p^qj6R7hmat(5TlzfO zMgABAo@`j81K}`1_DEUj&5`R9ek|pzfrT4HNQ_Yok)!e$275?W#i@FKFuBS3kFly; zS=fx$ANwCf-G&{bswwlgg*8|OB~e?=`B*DOUsE^T@Ea8T$+%HMyeSp2du^2DVWBBE zf32uF>&4#>)RP}{BEDk1cTHn^tAQ$DWLq>wc_%=knAM5U(79E+IqRyUi(EH~hg8SS zYLJ1Wx_m_?*4Z@)qV|+Ly*oZICkQBU`EaGAta}4Y=-wu-fJzJ>B^7|Jt-p$xVO#=H z*Qc*m^i{aaSsx_{B{Xq{urVP)GVl`0yv9^eURY5o7fD#OQ3(~k2$QDn-IHgE^3QK^RGHa*o7YtTt6lhJwy~#W7r7)0yz=wv) zqANyC@9(W8NkQ;kWAmg854u8^Q16|nK{gNpoImf`ot3vJVDjR?&X!fkLb^;*(j)6c zJF<&&pfPnJ#T3bvS@o;fi(A75uP9EQM^XSAyhFhY=z$}dDOEBjaGFs{2V9FySF0E1 zI;kPb*aru>Hn8*st4Te;lEbhGsTk0bdJUcU=iMa|25G>foFd6gx=7I}lA6vgAk_=7bjqIac8A zUW4Q297@Y;CHe81(z7DFl1=57K%fA!$`~k?o)tK8NU!mq29|p=a4|4un|gRDtWW8H zT}0u}3QrJ}&z=dlbGh^du(8M*rb#dOS|jDEogg=+@tO+YmbA1Um|E~*jj3xPFOIBX zTSM=dBbVDjPO=|ndhBien4sJ)JQy?QRKOZW z5NYR}Kg&wPrBq2xHxGo_+4pTk<;St_XM3z8(hzbn>~f!66%`e;gK6P~eCd3&JTKEfu#6`>tNPwAZ5)?LKb)_oWoJ^& z_aHrkryd5K`DivYP)o(TsF7A8I@lVI`@Aoq$n?Qy@W8hd?zm+;e>H^Eviy#p$Jq?d z=)Tc++&s8Kei(lzK3UDI=JHN<-1RzNV3{OO9sD01(+I7z>7@{TdzIXY!r35mAU%~B zk9W%6)u5ZdLr@n<(W=vRQD>@OOMVNr18%RS*pivf`0E)5UHp!3Wb+*>{kXlXTcZ^ppO75(447~ zHi$g9B#NYgKxys^(%oMNQ02fvF!Pkpt4Oio7x@F?$&>tv(wePuRr6U_QgVGL?TN52 zBJh%^Uuqgl=GfS+vSV30w_wAg^u-}Mb)_(sBto?3@ogSNqW>Ebh*c=Zb@ZBXg&`&~ zHOlW4$6MCexb8hLHwGbXRiD>4EXyExo^sz$3eO5xTr|cA=NHt{$J^kSxp8KB`2voP z^I|5aY~%v!Z}581^g_`C((x_*++FL(CTcd$oVA|@G4%)d7E!ecGC(MPoBBo$9DM^^ zekHT;XDDO_Hd<&%=Pf^%dvhxyvFt_oMmP?S6ref!ti^w_D(yT2T`~FVuff1xAvnB$ z1&+4tMS3l{ns+>+WyXzICyQxO@7x3QE{qO+f zsYN;O@tXp_r@KEA7zDh(GEC#ph zKC@ujbLJ7%3X_Ar>;FMq!>ZzF%N0`{#i7VBgBjiOd?ZdTS1+C(Jm^VKA4( zA?Bhhe+p9`0MgTaeLBA|_XUQxxhu%6ahIM9d3=Ja9s85y_if&9G*s1_mX@Cmig$_S z9GAi+ZGhxbuh2&CO1`JS>YTb?t*&kPiR;mj?2Ol3CsNQmdnKvdXp5*byyoz_N*Rm# z#Z|Rr!zFu_qII?^Wk|vl>IC8XVIVA6*NoltL-+cHYuu||HU*x@H}Cu>Q=7nfWQdQV zN!5o}N}Gm#Rp}w!(v=TjQ0S+&%p3aQ6EvPyOU`6L2dXPoh$NPz*CH$^thTfTF5U{> z0Tx2_aGn$9%h=27C3i?Up>-Xy3BH;uJH50=yYBI7rftwH$*&+HeGco_W~+!Ol$V;Y!OZ0 z?ziJ**7fM)e4fibdJf+l)W|7G-xFEPz0$o-VLl(KPIUBi!HM>tfyC$s6LxamGz?_!QSg z(_@=r1?WH41Q8Iumo&lP+M~($BkeS#^Upjb+Xa4nVgOasXL_#JPRzzhYC16!nr_;j z-47I=K<16)sb*;A&=r{SPA&ZEZ#FI(>(o!0ZX(^ir;wVSZYn3gG(Ej;?n~F*+?*U+ zkE8%A{71>io;FY-NM@QbJ*QlA7$C~r9q~8|(N_b9jCU8Hoe59|Qk?4wa5CiCy%c;| zG%A~J*Se>E@SfX;D+XmDEnOJ~ma6z;(Tn&}*3JJc(hAq=F9$R8D8K~Yui@>BEVF^J zbkc${yA$}eY~(Y(nfzg-MlZuLYr_w}5|KRu$i#gZtOfH+VOr`AWq!F;hN7)L5W-X7bJ#>*nByP|nUS5HR+;U<7!j1(?JZ^Fs zqcIK)-q(J(YXXR2Z5Vxb{_z7i_XC{!72fy(|L%&9eld>b-ILfBU`9;0e~>OG2yJ`T zddTzZ{N??}e(-~jMH+f5Cr#oy(n-f-cw1;&4MeV{b))!oPD6bh?QY;0pWF7ih5);!ddZ!;E^epUO6F6-%r6e# z8J??qWhd)f=>7YqeAUL~XM_*_Mbqy3l^&(tW$$ACkIAKLYiGh2wPHh+U`q#+EXJw# zGJ$T+`yaJNTCMj|&3&`-H^<6B>?O%F5i)ySi1kUl5WyICqGZG`Js6WwGtCs+}a%5ymS6sM!(|F|Pfk3~=6%2~akG{Z)$d$EmKwYjC z2#-Asc<%hfaIy{wddicu5!QJ*kid{UeihJk(y7xp0`v{ygC?E9;41yumMGh2p_qH%SbV6CaKbNp`LFJnxNC!#*%bShk&FP2U|oLnsA0Xp!2?}x$cWnENs)`1GcaZ^`k zhbF~kGCAB&Xhygx{Wio|qsYh9Q_N-!s7@yc*y^qf*{6#2Z z$qV?qruaLa0D9Y5;xyC-@fWdFVKj((oQKx%-xi>`5|4t>4xaYc&y+e$9TrMdV@Js9 zI7f#1$3wi%*9!#Y^pU$9R$q znZ4d_*{2dDQB{esfIUkWLok5V=|luwoxAA5nxV12F+^H8zGBDXB^$@=>mF>%>i&?N z>m79Z_V2Ki7MQr%PaYDB!&Xtjv@{6-=QzW~&v8bL1JL|iw2da&a((NzX$PDMD;1tV zJU9h>2Mdaa&7#UIGViFETLh^usugJH(UYYz{%6gt zv6PBu944=jckgk2L7zTSoCm#CBpUzW! zPO0*io(s#1mU1;lU=weM;y|gACa#zxOsq%+32l7&Z=$wmy|v?Oy=>$~YXIQ7K;j9Q zh!U>-wV0RY1;WyVvnfczpJkv(Hvde@#928A{y1ep9WYzuA%z$~wCU0DI;RR@o5G%u zI}@wElB`I`BmVT~)5x1x#>D1;Q)tuxBuOH$o}erJzhd;jfR@v|84NCT{8Aiq41vYv zPy`X@(6qP$Pf&+j2Dl$XBDcD2ahoujrDDZh=0-Oawx}SKjXDF-H5GZ{;)T9aU3_rv@1j;7AyK3Fvo8 z?G?AH!8e(>aZX;AWZ}kY1fj^eR$o_kCk5h5o^2i^q7-(u#}ovn^(3Pd15ZpCO$@Gn%oJg3%fCyqK#0#$zPy@)iN92m>MNvGo)$3iWrG#_q!l0 zVrN@q^SP4Ghfi6yNo{_hd8dletyHD+#ecXKYLcNW8Hi2xS?%QAwHmv>Kz{<8tre`- zLw5-|+>9-w#!@b@os+Nhu1QPMwx5(*Pt@j;Tsj6dg_Y$&cjuJ)^H(~UwlEF`D&_>N zgcBB^)`5FWqFCS;;>M)oNuQX41Ox_bf$7#_)eTq&vwKEYoLb_pwAl`6`%l}jbV~6O zefVHP4(m;i4)PMhB4}2F913imc%KkOn!1}9!Hz8}rC=Ilz$G;`r85@gZwKJ?))~?O z{Ea(=ToXe@C8s!^J|X;0v*MV z#NT{#(@(0dTFfjFZ4U;%*lUvOg%5Jrw3_LjO=N27M`%Rw9>~fD287|UG|`k)|J}d6 z#+^w;20n2X&cF}OPP8w2i}yC6mkH%Re|`E706jp$zl3{1)!>{NL}Ofy5#eORRcq}q z0od(NCZlUgEJyep~gz7%U$57x_w+xb>XX72aINS zPDm@MM=XD>@uo(Vwl&T=T@ZR==ns?FvkB{gai05!hY(mK3LxkpFaS|DpT?S>G<{CU zs4@a=D!$$FyQVsHIq9jM_tZx+2NYnUi4MSv>p^JhV_HG(fVQ35Exgz0_an8})UfN? z)dAslyxm#AbU2&#QRMb#O;xOSaHcN|Qb}Z~nF~a&HVE=2bqG)=1jeT2($%|M4TtYH z%+33W5~PKqe3=$v99brxIr!PeFRj3x#LVg!^6G-b_Qxhx& zi<$<#jYtSA+}~nE6vgK-$@*C?sw)pM!=Lryf%=kvDAM{~J%9rE5rHrfT8(9rW<(88 z)iaX6dI(!X6=e`{3L^s`FoEA^b-wyfq@n(?0rJins)bhj<3kEu6u4=qS9C>X;>Lu` z7JVNNdKdkyr%PvwAZO(8F}PM63^);5(iOW8Y7F5%|4qBoZM}J$|4P5={yjLB_VIVE1NDX&FK^Fq z1SFdg{gqXf!AJGFbs!A?h(K&Pw#(8-@uJ(RC4;|X^M{PIW^J^F#15j=;1ed`ZOCu{ z>@Kf(o_dYQm{<4SG=(OZ-AIZxhbnTdzCDnkw;bvQe$a{(k{P_(2iAnrXPTHciJEf! znMJ(RHKY1?ehrr57u^GJpWr8ipdEH}3O8SiTAke*wahLa)j!>9)3>2cBIHjGDfDvv zfmQEBFZYi--JAA{syJv#4G_x8mGEwY|8mZ)39$uMMlQ%JV{*3k$4Wc|$i!)+Cthtk zu3^@H4;L-!Co^qB>!WLa@=;O+Vb30B=H^z7aRujWi%-z7ej3}gfa?fUkY>c<#PID# z6upbVp7zTeQi;%20ZCFOfO4%qmPA>=I!xKmIE!cMJID_*A0tC69ELjITn8R=-DK?X z8fZ5G#RcX;k$YzanQ;`wyrV@cSHwqHamL1}9}=G8N?KWQa9jDc+{0=bo&vz+>Ol_# zvm?;h&CD(^kjU5~`-o8bsuA@RYp+|a+6V33u9HbLD3Fw;wGgdH2%R_dP9yS$UTR=od6|dz zwciAhdn=lM?er8-IczASVvQsL4>M=B1n-rCJ-xHC;wTV?cE&DS95y-9_q-hO2( z;*APW=PJ93ne4;*uH*XB%Bn3w#1NMFV4Wt+i9daydCfSmu;38u>E9;KOQC5GvVT8B6N>HF+vEutIm%cEnS*+5IY zQiuAmiE2jstth^09*a0ECPM&=OW2%rHtlDaVQW66sf_l|?n!)&3h**oNveavz;P{JaB@{z(ptBTx=W6(wE zlGoLy)-b6Vy}})Fr51;)179;K%WM&buux)BEG>69CSb*52K)_Z7ddS#RCEM-Mb*H2 zMZKkydMj)us7<%9x$WF zIU?hRl04MLc9ite&n-4y2-96|4RO@blqj{t7E(>8ol|F{G8$`lblIK;yGU_uXFsKw z8Q7q-7xWq9!6Ro;V%o_Y_Crc`pN$ZmK|dPDS9BOevM7zX5GF~x^8|zp4!bBUN=IJG zVvL2D-Bys5vKUHy;&YPt5Lxz>LV3ik@hWpa4oDmPCMRl0bKvf`LIQ#o>b!RJ()sd7 zu-_nQOn&WYfzEBLvBPC-Qmaj1!=Z+y8q&g9VuB+bYJw`VVI=F)AQz1wtZ0GE0xY5L zf6;fc$f4B(!p+t7Co;X2%GI~eFo|N$J z93M4xJwi%hO5f|GEhibtXO>XL7OZWG^`|jP!c%fkz#Rr{vNx;cbNla`L+_TxBr`_O zo|JdD)%q6kcR_;%EM$+>G3+P^I{&!;Nu;c5I7j4GfrAx8{U+`c z&tt@-0w*^C%y#40EbV-;<$8ut9u^sF>E!2;gn`KdlIl6V;EC`?pluQ(!)Lo3y;&Oy z)h$9AUf~SVzM~DOz|5q=2%)dMsRY}t%ndXpxG^+o#h;6E4a)~ zz^dZw9t&J+fswS9gRGys#N2`5pXEr9Dbe}~xkAC6AAQ>3mOhQ)ek4Uc$qFQ_Q%%6) z9;Ogn8i531tfqdjaL%3P|0A4g0calzWH-Ph6a(YwD=-4^u(V!rGd z65l8#Ia#R=@LnrADb!Ctyw)BAESlA?^6fGnYGix#9s0bx1)Y(X-!D08?#oTakIBo{ zuJ(vWY}L>=14MPxvFS7SO&mHfBn_OY5dThZA-<754LT<&!A5gg99*Yaw%Nrrou6OO z*ETz{;U%CCRIB!?x(vnfvOkTf7T^MH?MklgDQY57;~kK=$7#MZR>FDJ6?3>+8K&^O zXP4DS=>;UtaN;3kgOLpk_n^%xx>4Y4=*`{#1-ap@TiIF6_Sp6OLJp3M6_aT?oDTr# zki43sD>TB1lP;S7qBROV0NCmIlfo45wjk2_f-arfjL(V^z-yP1U8K$~0A<2efJVtTGUMCn* zA&guMssI#>W>?7o6iA>}Q(}Xu9j6N&T+3E!6&7Ej(V!VwjHQMC3x*B00IZR?OwRw9YY?P3(;k{8SI|?1KY;lG2Lf_6 z8V%Um?etN~z_uGwwpRaj6DL|eCj0XWL=fn^JzhHGm^TGoV{dv>v5o5}AeJnKJ! zQ-4U{)RG}dw#@}mOMHcooB#p{5{3nh5M%|zkP*4Ec!%hF+;u6`k;M{F1)W9mh*e=6 zvCs@{{z2*pUD;tS`r(WtHZI~zs7OYO?!s7+0V0dXe1QPV0AGSb%baojQ#NUe#|=bn z$DBQZh!b<1;FWDNQ+3wNSoFPVv2ON}AP2Iht?FCsvY`Iw(+WevP+J*^wo>y;tSodC zmsM3jT%24SKqs?Wm?S8a#I+Sn_qqn&+0Ez$NJr!c#)(?d;DTBwETVR4FkkGBwg*ho zEJ4si_>!IS!JZdo81*E3kIWF-7%8?I9H7;*YVXT!E2xd+*H0zMj~tC@KEsg?NCOUy zJxtWhPv#W7)c*eML2Li;iBX99!MIHj_0^KRIO?`8Y0jrS->Ez zn8`1fio9I!NBQ&06n{`Hsr)kbxga0qHRfDE$v5UqzU5JDF?FpdkPVG15V2wIKOT&l z^oim=ue*RHQnTl^#s|o{n3@rD{OEz3tv^?6?5X0S8#(MWUb0C2_t1uN;a2Nb&Dys# z-`WEn{DTQaaaA$1coV*`T2fHD>q+5#l)R1HIWiI88s(7H6f2 z2PyFN^_rEQwbrnM2d#+Mro#)cvY)$>j~@hf+*}FBJZnjc_LwSftA4CLB7;e z^(k1_tv+e+pWM;#hgoUE0CTcLgcRU) ziR}f|d8T7;agTTkbT+nyYO%h|Dcpf%(4`cLkU-TtXv<5}y%l8Xggv#FVG z=npMH1CoF3kCPdCqH|(xd%1;aKm(FZPz|)*!g}FRy>gvpMhI(m3NRrE>jZ2p1U2tQ z%$Tk+Ej1Io#vvVb>rpOH2Ja2k8ZfdyZf*W-5WeP+t`@?5(F2JjJTw?i6A7qL6q2?x zhgM*F7Q!Z2ER*qEXH#;l<51JJ4)1qK6v0~Q6JTya>r^zz!N&8i(FF*9F&nErJf5A^ zd58exq;9|`6U2YP-eWoanUZS=T63Z*9L^{5pjdD7jL;tK_!c8;NX&i@9p@Kl1kiI6I^(!)M+Bto9M;<;a;!P zJ>EZj1+yu>{3V6eDS6R8#%Z)lkyDC^&$1T}R)LnqdjnNpgg>H0)Ex5fRtNmSGn>KC z8IyNJ>*zhl=rTjEOPO0?O8U_m1fQBiPvsq#fOI544)ZyzXX;kyj_;s0D(7u*aqORXklBjtjAgIYzt2@hkgpo zR2hnuRP!o^8k1pZQ>10WgIBdl(5Pu)U;*-Do;@$ZfV4_FaFEt>jST5bvjq}qJ$LXT zt><~IPCjESBBikNch_L`A1c20ApQ`K>J5!~yRuc7kJEq`psz9UUM7@XP1rx;Y3k3C zDnRe?a`(iAe0p8x_Q#YS0Mb&XoD{oGHvK6Ft83&0Xa_{JEL@FnLJ}g*TZ+X zldyn*?B!ReK-NL|#;*j7Lx2ciomcow_hSd8?ddM(8Ci=Z%$&~Tn30D@F+$jxJq+`x83LJOy*L>GasGPpa?5gEVGJ49^l zdeoZmyo65d8ke{AOtTIG%4sYPW__ zk_@V1AV9sx4Ae({9&jQMJnB1o=gdd$yif)jjT(Zx)Y9Bx<{3>S3eTWc3TH_8yqnNX z`)(&2!Z05lxWy@Y{8N)x-a7S_(d;{>oFyl8JS@|~3L=tC6eLN)7pu$6wZ=;dybJPg z#4&p-avZ~Kl`Kk*a@h<@e|)VkZA7?YHy0-BMVBk$N=FFFg}&yNbAh+Ox$gZb)>yh- zvd(mx?DSdT8HDJMN@<=zVog8JRFeb)x}{a!+XgIKGgGRateHe`U^yPnTnQrQRnZQ zQG%B`JY(x4e1`~p>W}s3>OV@{h9V`YW$2-k_eGS&luepb+od{%AUZjCSu{+{z%ITg z%<`~{^rX?MIlFN98Q?d3D4 zmiM#nbRO5sa}HD58UA+VJIb9zDJc{w#?2AJz3S^}SoQah;aJ{)ro9c0JKR<<8T~H2)aT5Zzig8`dBoLkmVT zkF9m+9<&W-&pwZ!%-Y!4&|{gQe-Vtunj&pmP$Sjtp*Peh9-q%H>@m|ZMqU)4+;nl# zmr0f$eLOHzk1hswa(f`qHwy!egPjFg#PXAq0R+2Zf#C$-HzPG}-K-&9;&o0QT=XAN zkI=?KnnrmGq8el*V*m!;>ZJ)oE!QxuJG&=@vua)hP_mvJwq6{xd)=en?s2=-g=7is z-IG8<1aRia-A$I0Kb%w{oVK0S%Jn#mXZ>VUuf5c$0492(=|*h2B$ykMgoqF{>xH5V}eun5` z(TphS$)jax&(7wjP^3r3C15aiFG-~hz5~RDJd4P5sGmSsmCL?Nk?myvD8sQs-|-eceIP?2gw&;Ce?QbRwz|PBxSnVn=Z#=f*&Nt3@%Ky zLB($c7xPeCAoCoSdiEljUG^uyysphI;a~O4;xMqba`!HZ0U+Q2ak1WqJZ@bis7Hs< z?$P1PgZhLJ{sBEWwQAYCHB&ztICz5)ALbgMt!2 zx;5#9k4t^zf+)B)FJj8B(f<`lRABrT@Vus8{VYod3A(=90j9PeGB^RN8nyF8p|n`P z!6+IbrHdMf;+AYEZR0|%NN+k<7y9Ufs3)y{+5qBH!eJg+;Nf)VdZ?X>Za6-xcM^{k z498;EPd6CL>81%{LRIZKgl(jA&T1QJ0fk&%`)6l_jt#rn(Ld;bEp)k2M@)TO*W{Qt z4CEfhkV86&Pl&UJ{{m_ZI9D+N!G*vy&zH%}5xgidIbg2=294!@OZ$%N!riwKah=3L zxOF1hlvC*y3sMmT<_(sKQ6c z!6(^pnkwdc$iWltb<2Er57;>CjZ`a4ut<_R+7J~t06;i$!wxyp&RHAlfnBNYNgSDj@lA36o2$AdI@C@(kssE4XI6Avev{y?C52LPoC-&;D*a+VDBgh zjzA${8MTzQC)_tjHeGbxpCKkT$HY=B#0!%7s=E3X90^)AvZUt=j{r30)}?58IC@pW^=ED<758 zjieQv9=Ad?SF3thphR?zP<_ir)K(0rbuwSm!9YwYSUX6gH=RPd#WMzb>qiGis$1$2 z{(Ibd=c=g|x5`mFpsqSPZuPo9ylwZOE>#t4HU9a}00eM_8knF4xa}f_d;jpe*1^8o zX00yOV>BzmYRk<;yfzE@(0YCz6ep9;7<3BnFMkU~ghv0@0)OuLsxP9x2n0^)(0Iirb2`bIjTsrq1& z5}RfjVQ{8z6wt3p38iMt^Sy9bn8~x#d};&45+uxaE%uy?sS@A`l1vza1yyPeZZT&- zh60{eM}vMF8hRH*^tM#AfQ&9pM?W_q{XCR(IZ|4QmfkHfU4oh#WxRpW9yt0{3I#@x z5b-EpR`|sb>wSbBAio??4VakAg<^$NL8jbL70t-vco*`bE1}%nSYM5yi(Vcdz42qE zEn-F%htI`!l5tKeeLbwBDEEr_V8cQVhfWeNW2h>C?*aCab*q-4W;v4nTQ#myKz;ND zK;}*3Gv{Z+U2&r^Na5Rzz6B5U_mqye3c+THNwtQKb@c~cz%Sj4Rs)qo!K;O#qjB3F zGZS?;&<^jbS!(&{%cS!1IJZdA9;U??A<PCWie#%ou-ww6E{170E?E9J{NoZF>Dq z&z}`G^KTP8vQi;dgabkD)^mE(#&#(^%#nAF(Mb@?^`IPvv`*u5K-|!AUYqscsF5+i zRB{*vX1;3du;&=I^DG!1MSZyU48?c)@eKbad6ntN%!qZ zHy>(BuFTJ(PTZdkE;`rQE~E?Hssq1$w7=Jkju3`qe+XuT{%n339zNbw+%|=XnOmzN zL9h4px!upc>!Zsc{2(#W;U6()DSEQaC+Y%EMxqLYA>E(Xf-7I%3+RNswq7}kd1uQ8 ze(_8&rj=INyORXIo@5}{cH|Gn_maVqEA34540;1z@-Nkv{2$eVRv7G$yP!R)Gex#h z%QT=+S?%Y-TZsrKA=8(NYnftpVvGPnNcIaQxv!6s4{9UvYmba7PGHg-V8Bod&Ur`C zE~_%6+%?8=t163<=5|g7oa1KCEQ7ynz)f|_G#MuGh7Vo$< zEKhC958np_w5wArmqb7>`~)3az^k*dQ>6v)4rL^VYK6b7UK(SDNFns8#GU`&jniTi zoHi>4x1nSHzH=+xg1x5|Dho;f=dsh3G+WhBcY`YaW2vjK;0sDuDs&rTT}f?uYn`W6 z*8Wd67KP_Krmi?3jCswmdSP+AP^LihlP~DYOcwHlDvT{%}FX7p56V;jT>jIuT7rc9Oe)|nB9IwhAAu9(~@J|#NY+UyO zo_j8WrxKa-lAZ*zkmaXI5Tj8m{=FYOhf{6a-O90bs*KcX2*2U8~{;j!!Ip zpcLvO*Y`?0u^ELxKk`pOSpa{1mYs`IBWFBwc2|^+h68~OSze}O0Qwv4@&b&6mEq;6 zmyCNe!|`iNrq}sn2xTrf87pRB>T~C_4%)lBY1x^w-Hbw8(b69Y6mo!#P~9V4!$JrU z+7q$|7DHQjLEU9%!s@DFe|b!*+fx0*%u(cVmOQib?+l59gGQi!CF*Q_&cK<}jn@Nf zt-2TQbGBdrGK%{MdJS=TkV^+;reo?gZG7Jt!-wOFy%=bTQQ7ZCnrk_4K7BS&i&{(1FA|MaVeJ zSsbS17L0I3YFny9KV+C8o!7|9$;E~`bR<Uf<#@Ntw zMc8cMVK5q{R|0~qmTk49Q71tevWPmGv_2z`nP*gHBrV3rH<$ z!DzNi`eR2I2bVHH{hPoySM-N~POYh}M=Q4m_Fw!<@h|-J$F1#e!65uw^zf(6htVfh z>P)?jhwxHYA?{2}+f^ZOhBCjz4az(bCn|%{1^g+Pw87xaf)P|c!ZdX1*<>0I=r77| ziHr_0w2CoP9N|DCckv-;0)`i3X&YcKClwW~Oh@iLzM{}g0n#Q%@DE1YJ&Sf*oi^BV zkGn?qY2`5enxyQt1T_lNaHGjcxR4dhg9?J%w%v6~Det3-VZ ziDQ=&aAriW3ideBh^5?!rf56%OAJg`Osyi;b-mcqtdPLPU+~!NPkg$2V|rRj9}f>Y zy@S@_D+|WdIzoo{MmM6qdoL7iR7{UmyLH@dTl-1JshJP@ZEJno>U7>69q(B+TSQ}V z?d+4q`BN=8NDTo+BwrKk&hG2>o0bj)&fmB|fp2`DmJPQC1f^yMir$SxN3&`(Y1gf` zaSd|OS{1IW_+;yE?e^Q9RSu7gysv?=nU;QjaP$tcPZfNhDdBil`n^z1D?Bsk3|Z<6 z+3I$W_g|c-yIlP~F&>ekT1W`CfLS>pFQxdZ*5{-s_|AOIsihEtl}LbLyV;~aup+I|DVI5@P&~snr6NR}DSfel6E*vUsk`HGU3{b9qC0H8 zX}1q|4?Ay-%hY&|K4-d$UTT3JzlEgi@l-qCWyWiDe>{7} z+d4RU)q@Uo-nMqzf(c<`cim!Ce@wp@fQX?FqUybPAL{WjuE(G6eC~3pcF@wCj$_|I`50dZ2-hoSiLh zWSlN8gUoJGPfVEppXUMy((EO4-qJ0_z2MnWr_fV&ONT1#bMF=s)}`bc8ep0+gY+Jm z?b;B}+hX-jf^uh+p~NY!{AfsVsmYe?7C?de_&w&l=N9SoejD+2d z;_-)MnvT)>k;Su_V6RxrFMfD9$_~`ex;(cO;$?x;V+>XTR*zq}bOb$w^tB~f7 zLuj|Vt_xU1G{G=`csfaT^nqI)BHe-=nu4r{(w+89%vc) zff14)SW@x>BPKt9_)!DXHGs3azGXvm2_ytVsM~vabaJ>S2Uw1a+c@t@w-4ccXjMdqs6DoFF;R8MzNq6gOy{SVpgn~! zrx`%r#~)xjBEJfZs~Xvc2@PRo6sZr0K)~ej>}^J%)-uYHO$2KOO$m}fMJT!8R$)PS z!S|0|WmB-xu$Kq6Q+9z}PSSa{KnKO^lZQCLKoUi&NlKKNCOXzpw;|2g!~5C8ChH~P zZ}x1@ANhh!YYjqQghHd}f+*^lp=HrSxWgVY@=M`JYI?C)+aviL=s`0d71MB5(^{jt zyGYM?k%8&PiON(+Rkhyuig-%DT|Wst zKQu22I|(;Qf1o6l`u$-;b(L=xqH}*$$K#1S5+Ejx73Md`X}hECh3o$E;HcFNExTHeFBdKQ*(mML3Ig#L zjH=eRcXXmIkp&ep*99X>GE{gis{FY1E_6~~6rA7}FZZPr`J=7tD&B$Dv$(&wQyRRn zgia)v;9;T|h0O*k&mboQJdFO4j^o8m=%nzK+ff@Q&`{H+8qcGz8;VqZtw?3{J#D3@ zU%D@M+L8Uku3}VM2YcI{1sy>>o07TtFx^$dKWx9L+VEy$@e+Uk<^cX(Q02$V3P%gG8aEU1O+jZ8mKBfhl z#M1$I0I{D=K98E?G*k331Y+lOpC ze7~)^Z7=W`m(Xv)Qee1*;0GwMa&q-^Y?h@H&bHcvpLMre4c{Lk?Gr+X*`FsRS8%uc$l($2QN~;xp zJZ@VvDqO6J<(%EN-Z!o932DewZO-hir$h08POtUpzx9G1w_moqyRYp9WlB=n<3oJp zYeH|d_x>yultaiCoy9sIm!zxFQ)Hl~q!P<1OXhY*a&*{*R99x{NNQ>_Jv104(mDT9 zQhk#1W6OYF<%6`Jml)!e0O$_m8^zqQM2Z;?oMPw zcb-?xbj>=KT#q%Qvg~F?gT?Ffai+*KLRQTh*zNgUx7G4r#VfHvnn&CfBtoZ6=rNoYpat=`c7(#sjqf_H~wPRp05Xjn5J zmYdk}*GhBMzX;qXwgE2RJv7monQ4mquJ-9&t$>avJ{((xUcoE2lcLR#=D_<+7bToZ z&jjY-OHSi@ZnBz@*hHAEv4^DjB023MNCrv^`g0z$1(ATbJ%%RVTU&ZK(}4h< zC%s{jh^2ms2htV@z_{KYM-~cFNH#D|)AO-m`-`Lsn`LVnB=*XFuP*CI6$rbpHkjfA zqiEMoyiG)cV8rqu>=vIG;`oWNUek=Bam}V(K`ivn-8yU=M!F9^-)?MUU8m}nf)>saKC7X$El^N0bY0p3 zu-4IZ$zAANvh=K}^O~l7a769EoSkrfZ3GquMZqxsNW{`j!s|DvQz%;5S=Be|&!3%tnj5ev7v9( z<3%5{R!RINAbU+mt+&^GWK!9xA6|WbqYm7Q7bn-yICBrs=`K>x+Njv-Oxe8((3#c*@R~(O)e+Z=tCBw>AgEMSdV$d8l2( z1wgh^7*e*SEI>;|9bdf8h}~}hZC6BryplhP<#}WEwL@r}2t<%mFmuQ!=UM}5B*FiR zH>1-12KqSm6S&;L@rQirBsaGleMWQWv=7?5UA!9U^V0@d5ICzOK21w7-g!TPF#D0RD#0gWipeD>ZACKqVw&{jwuPHqLwBQ z(TQT*)Z}M1GhFDfBBm%nX5f^G%&Kt58T6ImQK%-)#+!^rfzJEGReN%hDj|fg(Up}J zg0CR!ggN1{+bHKv`EJY*dcHr(QnT9-0ohsv_i6?m^6Hwk1B#-MMdHB7VRgtUJep5A zZY&I;qbOtHvE7LahSO5yT{7;WTc70$$w$B%!;d|edr zxcM`vxB;#f5EN8(wc1WDPjS#L(KuYhwDNrrU0Wc7Mm4c^dy)YgZj<)%M*B*2hC(eJ5V z>nc5zZSnbfm`5qMr!s_4F1g;8%abVT$xuNDL0u2kJ4pRe($C04)awwwArmfO{}Xm4 zJcDbP$jy*UM^gYV(_pN?uhA9Q+S`Mz+xy>>*1`VE{q`|ex*#Lp2So`|!w-N)=GVFU zP)R|a8STiO-_lEJTY%NW=d4MpVjYY_p`=^+Dq!LJ_UaS zaD&j4tVy$n9IpZYJXulPF9DXT@>Tzc< zr=hj%(uU>S3rkQuxQAO0Yg#pjr6`xGl?0>sV=9Wq{2{cQ#V=K-;A|^?SKWbib0f+( z)@{iC7b_3yw!U=Qzsy8KjLM*wxf`5VpOdcQ1%62rxX~#osgpz1p2KuZ+9F*aW;8hD z@0&=;t-DMowVuqg3pLZj^lD6Ien6Hb8*OSWJ5-{1C)G8~YttWrmp5==@t7fL`={xL zm~6a?`>l2B#P9p^0@5 ztxf1$Kco;0iz&RPIYco`%5O5JsSl%v(L-YkBUCbi05kY;xcP@E`i=Al0Cc6qh;%TR zPxJKJ)52IRK<-4-2rNy7og|p#$gNGt5j;WY9V}+M7^wfNTbwO_)Ua({>~F8p&J^>7 zMkIAsp$PG3h=2pWF%Pro91xV~-mw`GgRuYAa483c6`7}VCST$T zpwFb9A17b3&lJ&J2leC+tAxAMnAQ7Y?S8iQ1qBSMK{X@yP|>P6&pg*M&LXU({NN?# z%lr2A2r4I49C3H1#D-3oE~e4bJ~#8g9r2-VTyJAI+>YnCiR zx4$A`m~Bi%AbKRw{I;~DruK1>u$JFKX7VM$hc7&J~R&<$kVY;*?CrV_njdNTAhT_N%J9>}7&Px_qs% zcZHa25%wPqT>=SLrOsqworzZ`P39i$)(Gdwn^m96m?^+Jrkr{0rHXwuUo>f4oB*9S zuHOlq{;Hiws&pc;JCRT)l3*uRS2UaJ?J%2kk+uPF1gTxco@V$ZeO`B`u@ODRszAp@&;06k>pn3KMb+~T~8q3v@ zU>&QRJ`k2i$xgs8q6!vBBeCFgU*q@yOx19>O~a>yIDjRD(Z>O{GRzPY6a{cmX$E$+ zY!NQnBtmHu$I#|#3j~(Gj2orXO+Nddipb=rympLkL%;8IxyTN;;)65wf2 z2?L@Kv+ii~oZ)?7U6584%v#cSFx^=;za-{J2_3D&J#t~d4}sg4t5yAt%3E+aAi{Mt_e=@UBPK5Jlq zNtZ&soGSWE-LRF3;(}$%l*kvV#Wnr8Co_dIOVKS1pVaiwW#O&;#)Qx4EU^I+-=4__ zFqw67w9|`9b3qT?BUsK&VATvhVAfjn^q&li$!8p?SucIh3|j`SR8R@}y=ZE58qcmk zeL&)fhOFU!t`cFev#^?n!?Y^ z8ARD#IUW(oi`9pJ{xdQ^ld{1Yz8kzD4GW&b?AF=@9nM@F^_2IoYU0 z9HoQ4t(pY?z|_5b)oqEDXxdI!rXp4&Q0Jex5cETRO$JfF_1(Bz_`2DR0Q8ILy#-T!KSQu}xT-77vrc+(-Z0Ktpu zF*YEQ9q|P9U}NipqctFOZ}v#lMTC$~Z#__J(`;^(@-pViH6!=HKL7fP+C4t%bci#l zcef%ql3(EA`vMLcz36TO#{%p@L*ll4Wvf2=!h}9UH$Z(`yK`*rUTZQhL3^Oq7W@Mc zA4WA{HDL20HZLnJ5CgJ+9igLU-?9OpVeiTf+5SR?0m0r14>ZG!@)s_vj*K;XSenG% zLGArBd(b;Mft^I7lQH0_qk}Ns#$-c)Ht3$F-?|stdSm&2P(^qcAs+=<}1`mU|f*IQoQBRKQAtT=%q7%5FfVIML$@LCf={b|U40LUoI>_zylS4hVDWxAN4rUO) z2E36e*r;)YplHpQF2(?#hO+`gC!EV@1g`WPd)FVcQ6J(*X0atHb;z_g?nOMrn z1$dc&JF!KHkQY@XI>P@Exh`@<+1g@!Pb$WQz@qa8D-$p$z4mea32v(oks6WQ4M4;P z7s+VIPgqdbjlkX1eXZ^$P-}9Fjp(ndqQ<}u%+g7Z>h1A|PeQ#bN5lk@e0m9KPkPz> z6!I6*oT)j!=)n^8`m-kYvO(oU504ULkk$Ud_#9b$<<~Ot&}Ifh6 zJ|yt~(W7MuT~zs1DKYdTNlND<;EEx7POV?6n}ilKxbIS<4#a9~UK`TD+2jmYHzPKE zbPZ~}8S5CCg&xFH*vN9XKspo{iO$Tz!EdUkaG|Q7XNuG(81_GopWtWjKuH3YN~>db zr#RkDrvkG!C|S3K8V_XX*b(&qMPQH1c$laG)f{#O;}FHm#3ZL7=LNV&z#;XrKfaDG zLB2pXrttDaTbo{&cQJQm3LdKJUQ@?3x$HAwVHT^p)v3q2v0Bgv5;>9nz$9W-tmh%c z4qB`$?Gdw37ipTs`ldvtc$!jXE@8m6G>%J0o08ZjKJP4AmdhDmtVvXv%_Lr-?crr}@ciL3c29HvIq51ObSx!g6p@Fb7VTsFcFvBGLR*nUhV;dGsaMN> zbo7|(13K^2#n0<@=NfcC)TpF7tONH3gnem8VdAp-pa;&>Mo1776Y>OVk=oN~D*3F5|0muu zFc)qssPh48MH(KXK_a=tX%$xrZ&5tgx<&DGayEdXG^j8@B?O%-i=#f9+1g7rQTm;* zw_e+H7Tk74(s9IUX*a$m1w~BdOxuJaqb=>C>(CsoS%3&dZkiG}6V04lB}#?F;SF%S zYUQz})8fv;ZgsCr>O6YU>dKS|lo1Kb3_q^l3a5{~+K9mUAOV&cNzfUbFT?ks-A+|B zA1hilnINYxslZZOeo*vUZCF*kxT0D3%a@dEOeU&p9ZqODlff6OrRM0!CJUp8IZYJz zDH$a*?M5XNbs9tc6Ez(5(R?E8lOREA5=s;lWe=n4d{WNESYd?)oQ&2!D`8d2Pp<2> z3d$4aBu7*^{+g9q-vje{NdjG{u?edexP7aMA26C zy`zuyM-$MZxsBOaXNs5TTp-6r6ae^or2u2v*244(}sY2;oO)f9=+ zccpeGpj>+AdYnjv*+SfrM7ps*EuVrKO9 zVVpD+(6+_}9=EKh+n?#UCNx?Dn`)wpjMmI|6cOWMDQkAmRR!BJX!r{oWS0`9T}~|5 z$Ev#C75eP+h^o{P_Oeh7@q@f;AWjiEXpui4udTY7^jFq$w+{DeIy!JAyl9Z53x2Yb zpup8R4qO42-dPlh+Ve#c+j-<(kUml9X90B!FR1&4N1tr9DWT0F>IHzZ!F_$H_T1(C z(v~sJ-5)aiXds)Xj?qUR7lP!3>ewj<$_dr4ab3VUn=Nt=L3}t%FZ%+Iq(02ZEa*U+ zSdd_LZ{)FKxI-uo_@7%A9y{eMcrIsz{MadL!PnSj<+1M$0{l_$LtmWY>-7MKKzP5y zbO@GCTLtJuy)~n^-|hB}+q);nop$f-L2I}D`siShrU z<(d%h)o}gG-d&`lcwGtTM*Gd=@LEYsmj?HMC39CrgG^?+mp;*k?<-xOlA@3-!Uk02 zfn&y)C+^QII;r-g>Kz6&LBMnhVeFel(kVY8{~Pqjh>qs7$$Unq69b-%Kd-r-AOaM` ziioJ>YTg$u=M6!A3)R_J?ph6>)QWgLDFqMwLWU!fQuxF#rWpq*1rKV)7e1H+&j!vLM!gr%RtWs=A*{AK?4UCBub29 zB-%FZt#F2_Pn6myB9fW8E+UzwJ+%3ARYx%m-MO2t z1l8iz`(Owf#YXFc@e)|f0FW0t+x0b;3M)#yed~LgaTviolf|Ja6Gx4x20H~}uxR)- z2WHlw)bQ>mH?t|HkzN=`U^0rE7HpR=seeVI;ILz*nmkGSyQBFuN$Yb7pbO`*<+g>T zVOVONvK>THCY^-3^+ZW#Xo7qOj$-Od^b@<4pM2iU$aj6ZmCJnIOR1pxJgATpeE>X) zHP6K#B_7XaJ~B8!R)&`xFB2@c`^@*7+5rUWZVMYajfy6uXT8!+*4cZJ=uzZDMBqG;o#6EKaEkQ5YFy! z{i=WMX=1_s)KyIuH)cM zH16RU7JaA{bL+gG&j=C3^&UaD^i##rT#-*UwWI zoy9Es%1VA;QraMq=kxE!@s%pF!>xcu0xq(1+W8A)07k$7LzSWyz7t_~8dl_Fs$}XxHaZ{R6X$33x8Q5Z#kM?uG><8m@ zOwE9Dlrj5(_KZAe}a!X%^pFVs9Di7v_oV-Z-?x{cozsriRz6bYr!bk6*bmDOVWUa zCg)$#k6T>Rb(jRia}JQYS2iBndmY1`eF~J^fttIh4Y$ zdG4keiBm8|vow33z`e1))r?&1boId-jN{+sY`mBl@Z$_s=1=(Je25vxm6Yp%FNABP_9?My z)NfU53nr`s=&D%DE>>P=Ty1C6Mgq4+7tLbGW(znB&|b|HY8@OL?RMJTUgwSav)9@G zd%Gj}A#bOk!y%<2PBpr^z%Ws(m9avmKOXhK;?pCvFf}c-N9%GfY&;Sx_lyS1mB>0t zMne|=a+L3$v~H(7$L=nSjy;Xx4q;o{)*UPKn6pEoBG+>MR08$|0fp!W4O0n;5t{hl=(zO`XV}Z(#E08W?oKB|@ea*5(_ahO@r*=6~{ zBaYp>0xM;imE-5+ndQ*iJbv6_kgAelSQ&Q3PN0#!$h0IIrireU7!RQhmfmQKdm>56 z9AGS)E7Rjygoai;COdyTH$k~)Y~(FVqAp0C@|3cmEWoqknqR2v>2Fc}{uv_W`6S$- z(nN@#Ss*$)W%oVbFpOA~<;E@4TVGvyOlpn64wo4E+ly!Nb#&PW?{eOG=VNUacx92?d>tQM7clW{kSa2xZAAuG8}F zXUGkJL*Nl2!kebpodf6WubdtOvu7MC&Z(&2lZY#3euyA+^M&)fCwPvWhuYnMW`){m ze~bt7S+#b;wF)=Wu)Mc{_+L?K4g?YdP5pc_i&}@RgCG9hCR+EQKbX%idqc%HUH2wn z;;c6qqCLP5?MPsbC&oP0B9RSihVlFeEKrlzHRB-92!k0P@=Q{Ss}E7~vshS|dViX!Uih}Doeh{vc+vIBnhWDd8 zJ0#{KVmAoY1eh+ekk?$Gp<~EK@AN#+hQNP8;|`Ki-^y)(lg$Cuq)0(;eSp#$LR11} zuu`Qsse9C-;D}*7>nC7O$|s3b+v+@>CbNr6ai>00I|Hq$EKqF>s4@-3YKd`AC0n*5 z+JQg;P6}f+++L?{OVdWwen9ev6|ig9D{d5|%>zmMJupI$s7i|^pz}~I(cpV$5ZGC7 zh*KD?&oqu{d2k)y|158BvniL`mCJ9-O8at!2ejl)T(lKMR}74fQ*0MmGPvJaiAD@qEyDzGHFYv)HN=tC z0XWQs4f@%PoR1W{5@X`$8s_Y^^0wI3*FEjg8dTkkY!@Q6DIm8?&Qr+u5&|^Rqy4=n zK_;52t?jlt-3S1+S{*Epe4gVu%$4bU*UQwXKU!RE_wP5VIC{6=eT_e(zaJe2yKj3Y z71d4n%;Ze;sVwu#7wqkmK=j&RnrZ~8(`(y@74P^VsA|uyEzT9bMTXTRS}4e{5UJ9% zL;hR!A5hd);n#{*j$+&;9~)5}{-XrxZu|Q#q_bASH$T~Z-8y!kym%|mep)3tonL&{ zI?k7dbbjuW{lo4zxhLC!`qbku-Gb_u`{3olQOhrc&%O!NcX;xqeZ0TxmgbFZJ+XIZ z=rQiDKwmL|xq8*`AUt6W8Mu=biI!G@%u}^dxqqTdXTE?g>Zb=AYVum(8A6y;9tcr zK-QY+`(!*UNT-BVSP3fBImStfs2!chfnZp{w5|T>qt5zhLfua>h1^O9%@wWbw0|vc z`tXBa@Amn8uL1R9jfegj4{8di7V50T=1! zN}@bMa`j*zFzF*=LJ9m-Sm;~7vYko0Eb67v9ftp3FW{mz?tLV<1 zyqDK{lmx=gL|XBns%mvB_iYi%*5@)Y0@EDso^DG0^2dnZFtzhWzGG&|$wr*-u^G&5 z=Ly-Dfjv>50<2aKY2p)s>vU6+8N&tm;W)@n7P>n+fquKO#na`CNB~Y&usm!{rop^5 zLyhp(LUjme%dMu2#Cp%;eXtO#S#ZkX#`hoQF8JIEaDOy-x^_B17zF8vNeHvz;MMy{ zYxIq#m(v2Pr*Xspp+&t{0uZ};*~syHYAj!uPx?RuCAGJc-r)e0?)I2timi^jec`TJ z7#sYAF)Kxu-dMmnFm#%$cuIZW@Bg#hI%Wf0{$ ziX|Z(u6EYS0g3}oqf-tg@oYXZ+2!3)8-JESrvucsz-a;zFK!$>P*O2^J1?wRH(%@? zUEBnEJTKEkA$sJBg&)nvVH-T!^?HD?Kie>cDAMF&gAgO-D{tl{r`+F^>`lvWhCrn| zWxX&{cZaXVDq%`~J=B_(rH?46`9NJ$H2}#u=|QFO;ol**Nwr z+6wUrTsi&&Dq%Dupq$Yk>zXmnREl)L{$(8Y6vdsAYQJ9FJvyjGPoJx~mC~k5_k6a_ z>7%}9b5BvdaCC&1Y{>v{%bT^7OjUTJB9dD+fruUOCQAiX0*lnwx8RfjkXS?amoH*n zpSb$1bJk9>NJ)0u=bTv7DsEDK+L>tYJ&W=y!-HC1*GZ3QK-ekGCsSw5NKh#(%ymCA zhUFDWu7g7WPpZ4;m0c%dZwu|&44C9q>&plX79o=+T;n8@ulWOs`ym`c=C7%!@f}SK z>kY4@3RS`~=8AKnV6s!F7s%Tn%qgA&yL**#u1x`=G@DoZloYP7kr;XM^LyJ;q|pqn z6z+9Vr7b9DG;6$pRv@)4_w}CT|H1{g%S%C#@)C#DDmsKRg$K28`)MKv3(=pVl?k~_ zh~-f14wIzJTK^(?=Ti-P`Gn97lnq$+d<*6|=q%fUgNn*sJEoSFLESJ0Eg? zzVULRW%$xtLb&v#%M$TYmdp|AED2LOTrOnh0!_klrZiSn()4;&B5O)FbEkSafwTO^ zEZNqcNLnT~a_4+~3TcQ@l7#yTWCT$fyE+eyCgU3|A{iF6*@_NK&*zk64)ztoAE3IE zn?+r!s+NNHI@j4Qq;cD-AH8kE#nOz9PJf99v;86XkAuFd4y~vQZ=#4%Lu&)?8OQnk z?7Kd==3>ou_H-xkp0dS_()7LJ#m~t30AX=t4EN`?W@NQxlog`Kw*n{Y^_O7Zo}BmO z`^Kwwx6?g7+3iY4pdS2Ar(c7rQ0EWRTD1nU5vXr1h4M1r!)N%tt%F{s0{jkZ;Dub` zTNr*e=?{oeIgS-s&th40E~&Sal1;!j#PCUwcbwCIFpQ>ZaiAtsEv&n%&?%4}D8}IJ ztKM#_t0>v49@zalZ(FGx32DLL2?i zZXHM6qv*}iVfQs275!?j^#i==w0DmV_xK99Og<`s3_&&>_ZMelICLB&1b5jhY7h}= zPp<=-060;U8L2h%v+3Y+QaARl+Ory(BR8=Db>ZYoJbi8#0R)~I`?p*wVwq&A1(afI z2*B2vuT3h;4fvihCI?=5jBlWX*o_0P99B5ot*3v^ZashY=j_+hKSRIr-FoEj)cGlb z_QQ4syL}d2C-DfN&%n0-qJ5m_Tf^gBFBz^l1cYY7@(d^(vFj&LGP<>eNA>^y--Si) zRVed+|L@|a?o}!De-@Uwzp%uEg(d#^#lj;0AD6Ir4xq&z_M36CwHypaz~Uu}vn7s0 zEnL=UM#iUrd1E8rQ^f%;mU6mEuS8ptGt7N5A<&u$c@{l9edx2qr^y(+4>eyTOfYV+ zN<+(HKyIltGIFz|njOO;_lHLZgO@J~2Am(U40(b6DSUzH{p|IpOqjo)MF;zTYXjh3 zyR+MR+m0Uo^wUG|-y-)99A`s!4*x-CnQ#~G-LMabN8LN^hdGi<^yB2M;^$Rw8q^i@ z^NwcbR$bCFbhq95KTG%N?a@1Izp2*h#?9Vey4g2Jd$(=$!P1Ss*zdLutGDacD=aBW z1BNlZkmN?7LM7ux?&@85Uhw}+hs+>DT_fV-yvdO$&#l9d)_It+-h@8s+o}2jbpH3a zTQ?)EzSjTW(oMBqbjn-Gtu9RsApS(_RacH$FdYrF6<(XLs*ep_M!-RnjlWvK+b8e1 zvszHp*SF-H^T?-H{PRH84*2gaRK*~-aOavB-L2nC9pg9nS#&bD)vJ7Ft%$_0L;nCi zh!7cdy5I7(1oKFEEv-@8>v%`YNT`-`CIHfoSw8J&=}a3I3QU>pmHDUCA{A@=1z!XK zwe}D36axF9{q}!-1;{6Y79F=P~*#;MCTlCsB=-)(Qbf z<^<)TsQzr!hm6>oEOV>`db>6w6L8ZB=B*Mf&H2O2`fvZu@ zeJ|XFeZ~Y$*8d?p1Fj41~m=i$Slz#NbhE5T}J@GBWw z+#MVw%jB+ksZvkj@`ZNX4f0%yHCWY0H9#b!ilFKjZ-YLyV(?taMIB?bBMw)QG??DZ zus-7Y4bh8Gq(|^CJ$VjG-c&r9h`-ty+<^Ar|JZAU>Y$I~x>VAP9-vRK`jfh| zDlt7FZ5umLkUG?tYHub33f==+1;*Ld;Scqv)+f&!5oI>CHls$4P~FulP^@t=Ni#H! z@hDn#YBMe%hCDwM1p?$IS1d?)*ae7uelo)4LfEd1B9oCxU>z9NjrW%|!^uo11}o2- z$@6CQa{W1+b70*RDO0!d{urs+Q8JV{E${*eSA;i#y7z-Gh}NSfxChasr}3yO#6RB< zM!`5sLJ4V^JSF6h=jsCaB63<+D`(C1Ss&A$5wW|c{R-_JaihJE-vxU8OIDsquaI1+ z*wEYp66$&_;Kw}8>SIqP{z7|`xs=298`GzXNGsP=g>%w(zUBK6WSUHG06=A|?-x4_ zqd2`a5rREZ{JV49b+OfGLsEx8lHOU@>lpUf(MZdw>5g@H-2NuV9BTcj+2 z-G3$7av@i177a!z0rXm;LLq>Vp3z1_*iT>A0C)EOnLcq6O5|t>ZmJrn*G=uLpJ@DE zT7r_cjl_9-?}swE^QLYDOUq2*u`Vw@{g&^KGgHeLdT!XKyxE63mDAaU56lgvIjCj- zWuY26bZ#UV7Eg`D!@?diQL>goj;K@h6_pAr%otW(Dg)nK#04_UluLIA{z@@&LD9!v z`}?=YK%RkCB8ip{fDlsi!?XuiWe;v9zAxS3H7Uy*;IPz#Z!Y5g(4P{UJXD1|FV5W=mztqAvU)S>qV*(qZqNvD%@puuI-u#AILvh^N60M|r)5ry@TcWjR+rU}X)U)B+*{AFMxz|I!%BgFDoMLgWEj?t$G& zAXmX4nKAaES!q)(aOr*2XY3xek9XTW0KeGZ-B;AI)#*AdRaXvB^~J0W_ZIYc+9L$r zVk&$4ygfeJ4XgCb(30WjP~zzhqY}?)t)ia~Kz4=HcIvt3;}h`FS@7|)QA;M)`}grT zfqH9W*mI+r)%fzEI{njZp`&|$kX9(9$mrrivwpQg+Y3t#;$&2*kUGSR%U$%RkW1iv zc2TKpe=v)ye~>~dq6)mzwm4iwmi%EbP|o=ht2 z>TG_h9(u(Bw2I1^^9g6~Z;mgG(zm0_=!ft#2K!akGxTF`5>*Wac;_e)@ z4_|d(SLu+U9E)qEsE-Pj28dkMKEJ5e={#Mma*!8yV*gOFRaLs+pXkL^cTQgTbytvR z>sF+IY}v5Chb#VD6vdHpD{3yQ2>f9|&5M8w$ow}5gbVmCNHc}rXiF#x3IjZrQ3|-B z8#(RhBE^7IP_pNMR`=8r%Uz10^&@ROq;r<&Fd8EPQ$PUW5NeYtg%yAeC&IM_Rh{EPAL0{m{lsG48?+V7(hq zhgDG>1P7JHoZ|vi!_>ymwmh--tI;f42oAIlm7o$X6$EowP}G8SC{hh+ufEH9hW?%s zwUO_&Dr!3mW3iG-Q1UYD_D7?w zx^6Z%8VaRpXu^9>-^5FqG$bY}f5QB*C_B|qDScHlceu+$7XG`K((24ajS#wNI5$xh z5?_(fyJ?In^uZ)Dy5oz+BJ|~1Jao9Um(2q^WfFQ|xO6Vzheh0F`OPQbPb}%*O5x@N(s61hjeSh{V(hq+(`&?>MCf7x zLH4dXFV7RDO-Dx>h>_r|Pf0M0B$Ve1V9k>Org&RjbHo0ubT(e&OWhqX2tD zbZzDpW{h(mZ&AJear0+{&r)K1FCUO0A_TzCjI6QZ=vhhe6K`PPF&L`n~P_{?h(U+4b~KomfLrf z-F%HG-{Nc$w?9?2 zx5w(13pZsIFfI9hf{WYHm>_PVH7A?~-222MFBs*6f|&i5bel&e2-RQ9opbeO|~M;DFciHVZ^gg2B4sBLL-w$234|D zZl$0Q9_we4r^Zh8#v?|AGC8=n%9A4*1-udIEIGj>IfY|eoFm6ckrPUC!&A?Eb)(r82HwtY5RrWwIRb%V?TZg#boLji*G%3Yzz%Ii+-A)vstemX?HPiQS@a$%g)CYK6jIc2Ezfoee8t= zeCAyo%AVr)$bs(sz527qWTmiIc7flyZyp+n-?KtUiO=1yFe0npy&_Q7->a7nCWYTQ z50~P1o4NVv+fjcUo-ca$JNKwHnt@NjEcp=Iol_iX{IP$Tj5%PLLg@RZFf*G)oibo7 z`3B4gv-zpwy~f#sj_1yWV!wv1>A7CroP=kWD1<^-+|WyK3G2k8crXjMV->hXGd|)( zKsH_sEKx;Xb^Swf&E)+(ZqiH$#xB=X9*OSeqe3P2ae4(>hvF9V#7Z}g zNyN!@<}#hd{PC~z82l2@d75>zpyQ8+;)u|_04snJAmZs15C_hn0X3p@4rW7mF$Z0V zV#ed4>7?zOAWCTRG{F;=*FZxO*ptK7i-UHrd(_)KZnwJa-f{cw!4IO87M(PjDWYIV! zb*#(=^CLSdotX(H+7SFM|6cXWD$wh(NTa*dOLF;fzM zOukB!b9#)vGZDEQq28Tb|Lw=B%Va?LZB;yF8C+WQ^|;eG6@W9E)9YDGNCB7^Lg$3H z5}zNp-ocvv^Pf@Z?Tdq>7iF(s?jN*E-X9ztzETY!y?*e32aWJ0KXltI_CPl_(l4|x zjru4!p!qx*>hTl|CvsXkIYD2LTtje9$ssQ^i|Azsa2(XEc=Pxz+Zp7Ky06>EJkZd4 zp6G(NGSNk^Wugn-^F(urx*5Ktyi^Nh9vWXN_qq1EY6PciJim;m$)L)FosH5yCbyiV z3F881<@=D*UY6`7blEA}i~EPI;~%P(+B-T?)T@!7F5?Bnb(mM$i75Q$o6xka0#)XO zo??ZCtnKN177gP;a;Zq;*|g98puwrcDj@&wIb{A;ghw!jR#!?70=KG$hg2te%28_W zc-fIEHzanb3O)ZO^jzSGa{C7Sh!9Ce$08MN8DRVPM3!z8sIg>$waZPFGTpxi_J9?1 zvb2r+WmgfzVEeyh>~LE+K~hi2>_F}LY5AYd z(V^e5C_;Ym`!@&hVX#LZFLA}7WYK)c=T39#A+{Fr|D4IdlW>)QZx8WghV_8K=NYvi zo3?+bR(XF94h{8$I5f{^fE@#h90m$pwE=$#_*9?K!Z4x{@iCgEK?csaos&1)JIDyJ z3yvE|0GW*&^|LHFgVY)F0uDyXyl@X5BOx56im=g7b~^7~0NTCvop9gKckshk9Y;@m zVV_k$N5l<73sgy8`$4=@7rMrb#Hx~v7YTT7SO?R||v%eWt_i}jEnIV$W8UNLc zj^okMggv@WmEeLgy5Mydt*u$Z)6eWF&>m{QA?gu7i@2Wk=ky0TjU}pyoq$6d_5TX` zt$)3budmW6cw*FW1|T7i=TVOz^k`<#_097xwBG~c?&Bd!ci9K-3+Cso%qmnMw00<{ zU;|#jGl?EDx$Dn$0JO|3i!;6_ovkY{9(8_gS~8^<59;O>M@{1k6jgx=P!9z>lpL#^ z^;5kck>_RIc}_sti+gBd=NOT59A9}`Hf52~@gL87d)ljIVT?z-5t_8zB!pX=1Hi@c z8O7e3LZDI+haY%cjW;?)$CnrcRJ@|I#)}7ILZ$C64bJt6yh=H8J zx-|JXN43L)PVb;~`0CkHDfhg_ROQH~#8|o?ou}!Lnz6!`A7+tMW2nRGn%$c^9WiMG z&oIZEsGC2Y_CPEKKelGHHX8I4%arxc;|zYO;&b&k&O9=yt-~Jw0si$+OBO?r2Ycdr zNA`4n7CNcwu|%Ng2{Qhxuxq`JStxqo7@v;Ml5<7F)IqD)yrMPs`)0pt+OQA@4w=IZ znH`K0%qt@ZJ5h$gHj3O{_GgMNP!JI;F&yMbcLcYy6&aeF!P-gp)`P= zzTR2Qhv?^PYM<=({^xB$UH{YC`dSrOrmFo;Z+mm|%aRH^s>~8KcHb4$_4n7^$J^C= zx8FJHee=y%-}b&LsBib+8&w91y!~p~I=?PjjALEr*UQ%Vmx4Omrk{UVw$7qWv;R)l zS#{(5?P&j-W03J^iL5MV6_s=+LPHEEQHgbX2X^ z>7s-8-J!0~TuG~J9fiR0zT#KO5OmT1fHHxS2|=Bp{`$-MX)=pio!$L?fmty%pLG6$ zZ)zlGgu@dSMJI@&VXPy&T{aJx=R9XedIyL+b7#YLM8+oV*e}F*NA3KX{Kx6&W=^ zW6|)I8zWemEojt+aZfe+*x*u4&U;u=Em6Moc|5)BkJSfXTl>?NRbI7^-zZ6i{`sM{ zQ`&Z%Ez@>3>5r4_LVfXNEzV5v| zZXNEn7c`xWmuVW}E5>n_;IwaT7PP;AxOa5e?(D0%*MBbR#%!r>%=#nhL(%N-cUuS8 zzWR63%Ky?|rtM$)YU$$)RE^&hH2yy=wf5~!yN7=)XnnHO$bk;d;poL>3-IE&_4j=k zfAsd~xO?*I1Uf?x7xZR2U#2(Hd6t#0!|_Q6_W}L8pz+yK$6z*}zArz5-IL?L!4ZUi z+lzL=KQ4N^hpMu#DmFh*#9S@IdWOjr&XRZtD^j#2I+#x3<$ilF+I_u`n*;t`G$X20 zO1fUYQ;O!27PCKsUVU3MLC3AV{qFwJVe3G5tJ~Uthnsdaq^~=jpEWIw)%|P()pb&7 zGvZsE6=uW{{8p_hRgYFq?NB&3LXYgVU!1(!0zhHy$?*g)Py9qxBe=3!K_|~pFZbWW z_zZmI)rFoYvhfcHWUqg0M3?>dF@_1(+2YuY)>SJet93K_5`NAeZ<{=^3H)rR&l~RL zm~TZ@;I=}*5Wz-r@GKww>RG#}YX@I_(5~3otvIT;KMom*sAOI|3X@jnQv5O!H~x8v=?V@A zBAZJa%MJ6E4NlJOCfTx!^ad)XkbVs3e_GgI4C-gK|E=bl!n%L9*7X)6)0MGd{m$w` z$C#?MRT-_d#qOei0xnRsLb&Y~RCuTJht*xC!#k@G008c;ckkots+Aq2i`{^10ycBQ|Mv!Yk|M4aLg&4Hp)Ivxha2`L=g^8vx%Fcj10^FrBC=x~q1ML!C z7d(IFS)Ae8-l0$UpJ(`Ab?V}e2m|owk*b>Lf$1o>R-M|Y56l(n^iQ!j(}W%SZqd)B z$c=ou#6g2|!JjR=|M4c|Z%@@)b#L)KIK{|e4sW2jVl~kR8ukh_cforlRGz#J0Mw|j z#L-D_pzagJsirfutHa;Z^a^kOCf^1a*sqGjm#XwfjL#azQ?{XFo3>FM*-977$uhBf z%i^)XgwV`_lM9Mwc~m82>me3{SbO$#^?7@kZq|uf zpOt<>zu%_lj%T2lsq;O^s{^^`GfVssc(eTU0A;B-Ie`>}b$|V(Q}@?jT6IG-hZ5SNlMXxhe$#vL!*{I%($+%5 z8ifPAao`({%s{U^|1$xOcYVzY1h)3a8E9>_cLB>bbG6sWv5iH!0WKWMUqR_hRn;1S zKg&#gco|=&ii-zohzHs@jM>g|yu3l-Y;`Tr<2uP`Ky`893&gq%|9Pfp19V8XMzAo_ zA=e)ah#6$Ux`_M3IyU9Vfjhd{0_l$(uC(eM)C2PgcyXoUF-Cv`BBW!zOLvcaSo z0hoMn)1e5LXgEg~rubt#m}@Pz)MZgX7FPLTo14C%5Bf_8Bx`<$Jl~@+;@Phsl171|+ z5_@#f9GA4ALj)oT6uj9g-=Yf?6?B^|c8kWBIIg#9g~1vBuu<|NOT%Jf_`TY`OoxBe z*cr?5kD2%P@%10ow&;o6y-jl4vOAl?E>WZD5Ys`-@fEPezI;fENxw1 zmP8f4zH|ZFI+hmfZm6iGAN!mH%TuNC1^7ZVYoF(|f|exL@U!T}{^4Hl=%oAhq>Dy* zE<$HYbqu2VRoh=~6JkULVUHIegmO?1ojcJ^cwYR;1#g}_bio(xJ!7L4| zD(3HD>x|m_nuUEEmgy(vP0H+a}oi+zjNt{QAqHFTtlHIU9rS?&x3-V@+Fc_jxMFnQ}ktg8t4;2c(`z zlpk+|B*UcQ;7e6Y$2ExTtX;=hjiv>n-B<1U9Q`o$Mka;4a>OZz_31SyH?{WN@k>FA z6^da;jU$ij9LoIcP9|qS*82lYJ-zs{2cRZBbv5*+@rWkpCC5X>zs?iY5J1pC2w#TU zL@*qiJO@p}tvCbBcSwrUp90dkx&&ZDQEf1_s={P|N=wy9f2I>85IWLos4MlhX&pmw zqqTV8MyRS%Zd!y0gVbWw|4E1^K4?bqVEuUvZc#7*iSx9Yctaywi-FEDDZ@`GN(`3s z^fK$IDd~^uv7%I}yNCsp0kIeX#vJ^>KzsIeUL_Em{WIeLdkJv+vkOdT96R&NGiyy_ ze=0aTv;KR{zHi%RwsIl-qeGOG|i-r{`eZ(OwY(Y*9O_) z4Z@=$NN9|jWNznO91W8pSbI29?mEim33DE~Jz_Qo+w?37_sLe4TjvxBjuVOvS!Cp> zVq&Mh2ZN)|Yf457ae7v>il0WwEEEild1Vme7+@jP-#fW@#Y|Fa031W_ z@Tl8+xqrCdZELa&^|$uAoCyUtLIAy}G%CK;?H=#HIOzgpz`+T}#%rJTWPAqEk}-{* zE_M?NpUu)KWg?;Zs5KhGElRR5$PZ3DBJvWAU$%#OPI3cK?DpHEPWRPuyVGmGJ=%TU z`yUuNcIiRgnyQW2We@UeH^Q$j({a(8VgH)?=m&vf#^=0qAUHGL-~4j8et&bD{u6C( zKEeM(w?Akl(6Q)wv>E+13cYy}t%n{%!sb9_mvGVogCMwrf|eVq=~`>ArrN5#*sa+f ziCHfDotFlv_yCwp%1fRClVZq8R|nTxbkWbcoF9DA;Xs>QH2X(-c9zA!o~eHZy_qQm zzY7i#+B_&%NH$6*lj|l%OlbB-df5F3+JJM<(N=;Nw)kPevDAPkp|fe#`8%9XvpBap zq%ylKq|%wyb#KouONK{1vldkC!Uwv-ClqXsWgb`y>py`-q-Ul)+Pn)7Ev$sIjY3Yo zfpZN1d7}Tbaewpc;r&OOkLl+hd$|3F7wLQ&tRTr(0P`2I0Xsjd>v}=Hh#r5vxe34n z`Vo^3{rf%^fkAnX8tUt>Hq`%CBC_L5y1qp0Zs z#w%j?fS$rsc}>9Hgalcp1=yJG6SXDX2WsNv!5RN8RwiiSSyWrE8RaWBn-SJ0qEVRW zIjaxPbA5R3_u;wUhv!xwo^x1;m$c7n;h7>s`j>f!ZRvOL%la-ETc0Ik^9GvKZ)k_& zhJ}Z`V|Cbwo|W2?jHBKp5ASF9gEZ|S?4SC#4YP&nUt?ZG)nYTU$&W>KB8$>k1P0GT zm`JdP(Ys^CpjbKz&@L4Oa17&kg6~Os180%*Ibe-9`6(V53c4g`6?Reqg)fA8jE$39 zfs2pbdQpr523>G=3Y~tiPnCUsAdq8n?Rb?)94a(u#bE46QFaha}uJ*;)~%t4CvqK#ciD!+*-8G-R-*<$q@KVn>>p?Wasfv zi)@_FHHCKaKzZ#yko$t(1irbg{Xf{ZhGzr`55O{ugnD&5JAXlq3zyN2U?{E081oA& z;UcBgh(W%v5-cG0jKWf~&#Yvyg-z-`DL0N7GZufbaNf*zE~`x&=u7IMG7BnNv;tIO zaV2CjFRwrE&IuJ9 z5nMk6xfF!*yG{j~1XC((4V2rk5@CDr)lYKI(c3@&*aH79dP$hyPb^!#<%NL00MsVX zEHAf(1GAp5AHamm>V>b$YCUef!_O^0g#dbeVfCHv@jf@8LnTUjqFP%tMDCC`ixoz> zpl(F5$2uzKnJ54-wjhj2**l-0l?D)qqPlFbQpO#v zohoF}VtraIa2W}DjD#IVe18%8!>WV4I}Eu{uhu4chYl-jY4#=^CTG`g#o;M4HyUfp z*%68fp3YRlzY{`E%0}r-P?>9re!}mX8}0;Dl|BL^y^^A_2x2jfhM@Av>>DxPu>f7P z$YOUs8O6wPbX2{HKvEy_FSzAql#>lL;xA_}>4=q;#nN&zx?(8_)h{&okROUR=iumj z6j?)LeA0~8e%&dx1XVWtteD$??eh|!=|^RXLsM~drVc+GreKaHHz=qvozEuonb{VZ z(T`Q|xPtwVjOVd7`CHe?k6S;(ClB90v`qY@VVNeEko^Q0XshAa3g?=}*)Q|)d-T)0 zW~)1{gxd4%kMTe;5C5ayw`OYAPUo|@u6KdQr#dH$x$P;lyAfgM#i+ zSMccYzV!MCk9z0vOo=|zy572r`o@xy-#<{|@r~<8vP!3s09y3viTlu8#x~U#Y5Q$ zY%d1Vy*uMUj|yDDqPdlpDe<+&`3vWhh{}>lEbgVTGP8X-)C^~)xa(nfxg>N?k)pBo z_~E06yo_PfD_;L-Z>?$tv8||)Ye8*DQx>0Dw#^J1YW3dZ39OtOPq+YXserXi8$AL> zGkhoCqnlaYf>!iBDCl#q&g5xB*BWB27V}qOQ@hkC26qhYWh=YEJvRoSAKI;BQ0Kon zI_$o#`IQJ};}Pi3(LMx6^-^5|7h-4{r{nd1#8ZS=RFbAzz5ZAq<_+Q3il!gyd>WiR zusuDsrs+4`wW4~S7uNIKp6=rLzWIdT&5YYq{)0Q)lDjTW@R~YRw^cMrvjh`Yr~F_X zpJP^PciP1u^l<&5c@~<#XF=O@;WwA4=l4HRPxTjkd%%)~%uw{d0t5Tt{&4;NP#c#5 z9m`w36^Ey*^~kQ6m-wx9#T5~bz3omJ;c%>_ftmU99C63yTX@6^_S?;mwr%ST5!QlJ zPu5@E$1qj(zqRbb^uJPKVOxMhJu9FiWD_pC3oI+K+qFLv{VCZF_I{8XJd&)!F1YP%SD55d?W!yRfnLzvfNwoRMG@`EnzZ`qrkt?|DB^7s z(3DULtG=6x#~-EeySp6Tq9l09UkgTntvZR@y)*UD=VP1fkJPZ_B?t@{N?I=RQUL8V zgOVyiIvs#2!}O;j$ILil4z~}t9&0OQCBUi>U#1_(dsOX+dB*-UF#S;2aR02IP?PYh z=%sjGcA~Wj+=LDOO9<<`$7 z!|~1vplPI}&4FyOF=%;WGXO_)cOMw#fat`%N21ie3xxrwpW<2CS2sp7!_2!eY}~%q z?P$dbx#l(AzUu9@yGN}~7Zk@QZ?puDg|*%-!c?f8{lB-x34a|Pyxu$R{M{TQM1qF^ zmFP=MsGEr%lgv8?PAxwwwxE~>A4Oj>wYiKh2a{`Oe>5W}xT*0#f7dMg3@U9xzd=W? zC1m|Ae;8UiN7G$#p(Ku&jdSn*_M)4&Cd1AraU0n;glu4;ue6aQ2YcLx_{pD#Va!cF5ZgEI&Aw%erp1uYjDV-FQ966s5y z$ZnjEG0sXOhT30!;uP5!GzV_s)8za-p4N{!ZYje2g1eWbkR4nOiH!ed!Mu&upR2p) zd>Cf~s2eh)*0~_iuH83#y_2_?)K$H5iql^`GQ{-yXX@(fP17sdONxi}tJy#7w2!+* z)sPjZLN$BsgLZLmhKk>GdPDYJv?-j3GpsLbB{8Fp%p9m95NJQa$mK7!{ezQwi!6`3ZK7Diw<*qls&8{>)EC9|`-KIP5m zTeVl7OiS$3Vi3%S97 zV%o{mX`D?U(XL|twb9!$m|k5Z>OsAfn8CGMX``!3D9F19*_Q~j0yd4Jg*&{_5};DW zQ0l9O(V?LzK@y_7g=``LBWjus2J@*fer`tVs#H@rjLrX$%-@e>=61-RhdR0%9i))# z-e-^^KL@!Curm;hQ<0;&Gn$K1uwtLpYG1~E2yZ!?k2o7W2yd)I04GKyx3H2}GzLVAJFfhjx+)^J#b zi*mMBH7t-97WY^Oc04ooyzk!}pci6U3-$Y1V?*7&gHd`4;i8So=XGJ{t4lL-ZgbQt z)1*1K9e)3PaD&SSH3qb>Bj65OQN?G;IkD0wBZsr5 zp&`eVX>&ezyl5-s2PBgj94Za-hD%j_nc%-_C-XigZ(|yqHF6YAF<}Al$Qh%5Mf>CE z+l|Mt`7e_5ix|S$FWe8&EuueC6EnQV%Wssb`D+qXh2pP=DHw8z-*#%0%%J1IIt+LZn@sse|6YWD|Gy-!-0dVumeqB0IY60M+5}yO9EjWSj5Op zY)3OWx@Yn^3T}Fi8u;ZGGAX-#wUtM825`bkf&Np-$TT@mU=;pnt>G{@V4vscs*fC| zsuH{+PSX!+EdYcOg<30DOLT>3DulSqV@Wxg`h}TZBCSTZrZ}yat#0c;q~vinQ)jw~ z-&@Jp2QY%&*X`ZE^)XM4fL-naJfq^u*5U#EwN%i~>$pF`c%f(p|5Z}qAh5UeGaU`NqdO(gjefLGqW&N@7XzeGeFXlQJcHCKXBV&)N680uY#5b%AhQf-RgXZ8+ZkL3tLUb6Sqnf2{ir4> zp7wBldsJPcZ0OjTL=6mxjVBNR)jI={!rRnKOXr6@6^A=XjWrpW1k!5(As?2+%t9L` zM{W&+9V)y8UJGzBsmUR?e1_6P(*j}XeY>$Gj6&dse;RFV!vE~=m{%^Bn%nB6_}IWK-O~hnKl=_Gm+M${!|`Wwk=IQ;u_k$kx++nYy^7L*P3m+ADf2jQAf>{Ywl=^mf#cBOgzT;>KoK2{f*;(leQ zT+YnfXLlsk{juCed1#;5?145^$Gn3?R+NYNE5+z9=-$&u#=Q%T4kPcJ47U)fB&_@E ze)jCA+WqXOnpq5^U2`4b{^~f60(M{>&u*;|4Am@Y|4th%z)B|p23ViKH5$G-&E>k_ zl4O4_7>^H^$a@QqiKt{~xAi5h2v~Y-4%on`ik6N(q^&re_OFpAv@kI6I${)Zlz*{2 zKyxeMV9*<-r-+a-ol|9KAqC+IRbV-PgVD>*IFkwHn!@EpofG1QL4;B`NNE z85#45t6P(3b7augpo{WD_X^oV3tQe$c!ckFUHHgG^9w+05X8(nq%1-9n-@;>Q^2$j zPIvs6Y+z*+AI1q?Nl=hYFyK#{C^~?Ykg%1CQz6nEkRSy+2AkNB&s1;XKu30@oRR=6 zEvcR>F&JeSWMOBSvDm3!z!vb!Q~gm0VJv#|=oicF0OE9~sXA}kUu4Sh=;3lyYI zv-v36BF}?B8`>cN{S$*_NQo>p*`5f`qhBz!jV4dH5q|vTXJheTUrm1KCxSK3t;R3F zAuiz604=itd6o4=OmdtMKjH7TUlASCvU?hU_^sO9kYDLzMCjI%dlC^_5 z0_@B3h0{n{CMmMD)IfL#HZxbwZo z#|&sT=02bt1*q>+XL){U`N^Q4|KU;BI(Aks^zE#J^cRoKiqp4vJ~ZTEEdDHWyyV$J zc!PBW2pU|&N>d)J0Z?IXR|TN`_>dHEb2atIl|VP|kKm!Chsc1hX5^=ax$%Z@{)Tau zOto>7R5)tA57JY6mc;j*7!aRqmuH#DIR_)y;Roj0{%cgv-Omlh^=vvUR&?`4 zmcy#&*gdQ8S43%}mOjDS#wu58_{!y_po>xo$RCn)p2>yURDfPD1>&sFIMa_6Jv zPdevf(wS?*i4M@40D=z=;&EsrL@;<`HJ*>Fjw#SpccfN-g#AG#^NQ~z%1nzF4?sds zfu!_tN6yD4j05n^w19F4+X7;WZg+4wDk*<<4__gj!ar1j<}wjK_Oh*U?)1tR$_{sf zA!}xE16u@SDCv03YE-Hh0)lkatXhYq!02ljPgJ)6i(%MV!*1tCJt#Yr%$J^sOIE!g zAj;(qpg_5x(Lun32xjJC7D;M{>u9EA(748(L+&%d|4{b~-$_H4puYe6 z5EL=q!}W*YA1qNCy+Zl!|23+ut9~F5Km4l|1=a~74$(O77^ET> z@r%TX%-hn`uVR_UMhcGDfL1O4e6-y}OUQljW+i_sjl}bW$s=SalSXqu?^%jd4B^SB6ilhHDY28W=xOuz zzZGL4lm&zTDslOc!77TfV_@(-M&yHGUPsjYn=2c<}OiRjgt2<+IkfY zUfOxRE4a8WrjnQOVf0Y6=eWP2h$W$WO8;@H z_>cYoP3A>FCe)&8Wei)DdZ>3O)W04{@HKmstWcpJy_aq@KBknM>H2ExR!jB^sDx_9 zw{lm~Ywre@kRBVc*}C97Ys(FcE$5b};9(Vy2kFq5iah%NcK3DbI0rze zXln3zxBY!rbC?9!r`AR7wB+o%cX_HhSf^>lrrX?dJwV%=q-nC;p2d|1+oHwywyp+Z zG4LZyMle`jhVsNbGvlxx+Q!q+W3+TyFD!sV>#5Uhh!LM?6^i#j;eogg%cAmo1Oah0X5f*_9`^lk~G9uKbjCDhMJI!i~x9?&y4O}Cwf zU2Yw?Xjnf5AFRWtaFL^)OxE1-*wdBQ?IZ>GbcX-HJDr$-AWC#HZ+VY6AFWQi_qTTY zEo^f(ZF{)}3O+hGdPgc7ovwb`o2BR`U8n9avq@8E^`o%L&YRY8S8^8MxaQCo;z?EI z^U0)A<#el$hB%vK*;VZ&Gou6&r6YEiia~?@feWfr};w7P1TiCM4ME%oDoxmBpyrtkGe3pzfCsoU!s#-Kmz^gX}tE#oh!wot> zPLwwMLyYsM9SpG69yIymo7VSlU%hR0U;o?`fg0xNJXRN+E>*w0?!_PD0sd%OpYxou z7|t@3t`ZhZhj@wntlwgM&lectV=8P$PLHi6lfHRA>BsSTlBrGUUM=!eO{c!YU5V3i zn#AB7+sPwbw|5W7YX|_+MFJ5*&4_%S^MOB7183LKm4uV<=z0obR=k-xQ9C;{H|F{6 zW+z|2H$SGp&1cBe@mc1m1sj&8rTuXNaTUCW8&={Z%~V@cux5RaL5}KLfq!g7D=P#t zA4_o@_j7GS)WkBaa~(YGlV()V5nV4A$@d17calJ$L^TKbi~uJad76R9GtqiNhp!Ye%fFea~sKKhoS?-cqK zt1Xy}L6gcK-&@e`>ATdtTf5_s-`qyTD}xTMoQ*KBl0Y(3k!j=d+hb$L;-Bhl*YOA^36l z{S#+JkgsZ(|G5X4<9pBpwRFt4v&1(+OcxLM-}}DRN``y~T3+SHb~NB((VgR~(Mt%{5e zk43)`To8Q8V`}8-Ce2h3NQ(!wxihO4$3+0B*%BOD9X=T_6ETZ3!;X0w(JFDlL3 z>?-wVE^FrIjVJRW5rH#5g{r}uPU4pRWDWYU9hz778T93DXL<|&yInfr@(x<(H`tNF zg-DW0%dm~$*yq5V$|@90bdpq_W{~q~T>RJe=b5nL!B-l)Kk}l1FFWo#K8Ho4tTM(_ ziP%*rQN3AbTK0_xb~{bSf^E?*}=;+B4+-r3Q;qCm&1*dYrZUm$gPC z0!>Q^c2vGC2PMkX#<&BYA~b|AsI_c8!uLtTQ@S!29G}k5w~JRrleAehg3P59ShJmv zzQ%g$MbnS^82VH&JLI*sPfWA{^x)NghXX*sl$5~=@ncZ*u{IupqamI;o@J4^w}4%U zbXAE>7jm_ee6ZV}?Gl{gpg$WC8VZ72;YOCUy;~d|p&p@u>qjsk{6@x?Lo~ibpLPU_ zEFm!a%tkFo4O$9l2NU*2Li3m8ke59semA`&>#0G_Cq_F+Iv4M?_RL<@##XRV7$eVs zCaI>soW_F>HKHXoRC_DgsAd=eREj}wcs6pjSeUDA!ZliXdwjHe*m~23fcwMFTQ=?Z z7EG^gu>kq*4;ay<7U~14vFb9@W*HikJ;2AZ<&LgDA47yLVBD+cj~=lO)Hq3iR|C!1 z1N{kqfOtOIi9!sz=y3u6Q7xill>Nf8^m4_bHeFreQ2wi!7UVKTBOAz&Y9sh7AxnjR zonRo%r~*~%Y5!Dh8uxSF_XL=o>LbCS6z^iTccF*g)kQM6z^~Ls1o8(*1rh>BY8q4z z7^K7KYV8wr?^$G7?Zgqq9ONy?i-~8ycQ(9w;&oG>RJ*%pY84f)t$F|))O^BNf-82j zcB?LmhnURt1lC01&pHg;x*V%gG|Mzrw?SFr_2=p@RhJGIC?0Hx5H%yWTGT9CkBI*I z9sqEh>bxJ37XH_N{`ar@KeI>HkB(cr2P80WtN*w8g?YCD+{H8<-K-68j{5rRFaL|& zq&EG3H@7#x`me3WUw!$PufF=~>%VNN=i6J`kH7k_&AT0H_mEH6vn(3+uci>qJGFCE5jXg7m3x#Ik}6` z&V)!cO2+Te37f$$KJ=&P^GUWcf;KqvfXx`W_EKFtiIRCfs_#?PHJpkpo_?SZ6b6hV z37Vai;Bgy3Ukwm}T4=!gQl0F480^kIMr+xJ!Nr6hiFga8dSuZ&G_I95GwMqBEyOLYL6q&ab|zR2+Vy$7dmz_0?5o!@2C58l9d z3P|58!@LmuZ`}&~XgVN*MbKtA6Ce1UAVjE+Y^)gjNEu--LIR!1FoO0etCz4MD863`Mg` zG`OfI9w{4WMc+mL1Lt?sM<^X68y6%EJDX1oytt(-FFP{<>aXCksJ|wK%OYEKb~#fe z)qi1fKZ$?9D(q1>g`rNkzjlbI=);-AOt2FWs9{OX@pyg-!_h92>=(S}6UWV0>y_fS&-lyE+m+l4@QI8CL#A^3N+{q0wqvMHehR@)54`0d8m z=$;1(AVz>xXY{f^n5K3Et%HN3U5H!iyitGlAatptTMNC6ep>Y&zu7;8H%-6z{^5Q% z_~K3Ldw8zxz4)l!p^!nWf3$lNG~OysRGmF6kPr&X(xVbVe{m= zZhdP;ZW<)V`H}|n-v96+jNG3m_)y$zX>d7Im%o~p-^bUX3e>f&Q*BSC$tBz$s%X~a zh!odf^v1@Jb({j7^sHqXzP&VQ#JWSELvN` zc9_p%RsiHCKq$*+BAN<1mct5w=?~Kfbh^j;c!l9FeUP;kx6Bx+@%@$aY?H01xnNt*bMyJPdh{4=H zthC8>ysAYK;5+h41T0Q}%mhIi59YMu28~p2EK0QCf9EDIV=`%>(?#|5E%@DOAGCM7 zf=wKu0xQpQ(DYdj10vupVwaZtN{x0`c z%oVad5Q|=Fw?Ho7c^~pq#}kmB1>O5}Gp_RiB8UQ;tqqn=r6p z#^dpzKT)?$e}>S5vhg&$f{B`UYmbF4JhUpwBIabGm za(a=g4R5!|#>dbCwXwJpBQ1E8mR=2ISvBYJ)Ds+|H4~;mPaH=IM-kDCjM_#125I|B zjlp$)5nY1&6lod7*dPU)Pf@4R*pZ$gv7!E88i9^b*}B(fRwosIxoeURP%v(&q|PN! zSb~A|3*UR06m)0_K;IJjSIe)9gqz!;>&*1USqvEDBDwn?CfR#V-NlaPr%2?sGk&d)!jzO z>C-f2VCe5v_sY=3|;w`0opp>UeG(wL;6V#=FI_$H$q!9uvv?y)7%`5ewq`4AU z|4^eZp*M#R$GOA-Vu-z>KGM!qGROpi>O>Nz)R4Rm9MX=&e15h@4k&gcG%Q zzay;%CInf#?EjKZdC@PEvHqK~D)Ns>Ukz9OR>DXRAB4|7s#B$jqOsm_(}vaxJPjsl zTeLQ2J=K@{mry-1{Y#xpIGS`E`8RNo_*>R+jq`iL7@!QU8UBJ7YI6^)pOg`fPoa|c zXn*2QB~LdhT~4TuwXY_PoVHZpU}$|yg5yHPOQXetiRsAny0EUQj>(}4N*rn3;(2#g-iQ^>ygFrk z<}H5I5;Ax!@Ba3pn*xx)x!-i&`9xD0ff6lhD9s_&nHp_^ zr2*NhSLBTXh(c3u&n&zZ9b~hc^f^!$5woQ#`=i|*{_{WYe--?H@a)~DjZ*)gt?jSB z{>ygW|7UyqKmI?z!~Z^;|Bq1YXk}%Z&S#3AvwM%^VmXaxSCBQ46-=PM5JfQhvWUkr z5XaBtPqWH-^e}8%F^8ZqxrqB85{!J%>U44or@#Z!31>4UPtD1F9G#A0l0@SnMTJD? zy)2&6WjEZIebkxGr8@RL!iEvk{c2#dB)mg6O- z7W(Bk)|YSIf-+aX`qsQUIsUE8_Uv^H8U$%DJ+}AC4c3!vlj#~#- zk!Z`zk?Lye@YR8-+00OPUuG4ae`VH49iPte{@%-j)~jgq<2KVL`}N4ep!RV%ksMD;YpAWK|>c6DtoHU}}Aem8rvn6>wpp?_N&R z%l+}JPTx10QGLjO{2;}{1J1ZDY>#>ZE@ot4>YW@y7R~ma`cB$Z1%8rXKviP{Vng7I z&dKg>yVF77gO${gd5qB@s`)(=ki}W5sh31G0)#YnqlO&M8{vFa3!ls^QNOzB3B;B1 zEOB3Hx+=_4H+APo##()L+*!S=Il_JgW{BD+4@I1-(itMvw!f3;>C&4C#Aj=!NHo!- z=St1Q(Syck+CR{l!1SDrQbLhOw>7Z}EVrHZu;aN6B?GLor@X1kZ7MT2x%s=h4OB2i zW(Nf)D>y|2T22Po%l>2n9|8Hx3el%*-&QEud((Q`1J^87beaq|R4ujDfU!%c z0aJ_`|0cV%jzCx%vlU2}oTWRfpP*al%(r6}R2~uf>&He^SN~amjz+F~2t5V^Q>8M^ zF5#He)CfmG5775eP1QhG3BH8Mum^DW8rGaL;*ksXk&P80*3~9@w47c?dgChDR}h(a9*;4x>5!sFkGfsrrt*uaH)Hg1$NqKg{Q3th zA6PGO8}>NtE?C>XV(NPRS$dfacJzaf=Fe;MXP{QFisou|?51v~@eTVXyH8>9!Sd=< zZ(5`BEl4@1Hi~)*=FJ}FzxCgw(;;GyWYS&BqFB;V7)sfkcwLuA!G5E$*z3D|;B{Oc z7xtQ`nD?bVqM-jNQLh)MHT+ssLwkv0=S$55m1=_i>}PM{ex}aH@b-0e)V$uV7Daq_ z!Tx-sTG)a;Sh50J;}z~wTP;84oV?u(EniExYj{^uKFk~R%u(>2rBSfnWf!68Oung- z6^Hl^l#zVDM;}F}7_m~(DK8zwFHCO>zCmNZxlHIMyqjmpta6+H`2~5S#mw63a(mOC zh{8CxY?JI9SS`8|Om~2Y6cq2K<%K!_5_*)}WJ}@q02z0}{u#^F0#|fvG>SGhHgJX; z4hlA>fwxeA(en%9q9~aBYMRVu@i_X2;z3p|robTuuThb(v<}rR zUDfBC&O2ImyS7_)mYMt(rz22;g(7MT2pVWrO*j|4$S53zgg8>Ng3~EG%}9B1qRTHu#!|7S1$ygb#8Q8tnc=&SEKhHi- z3wY{2Pt|ZzK3Au4Q9e)Qh8TUu`aj>?*hl}iEeNRhLhceIL{4J`znjs6kG={D&}iUY z^yr!QW=Dep!+V71;&v->srj~(yiPUHx_%dE-@t=0>q?fe7DwS^q+0^5ObzMHRPj(0 zqy*(LIUz%)gZ|XU%(K~HE4#Y-LR_9qj&;;x$*UbMI#N65$L-CZcPzyede(uqsfju& z4iz9EvCSq-Sl0g#_s}w=CJ(TN+y)DruN-|^BcGz(ngxRS1PV{uvzU}u5F%joS9PP+ zYFrv5YPA^h0v8Ig@AOwDah2;mV=E(#@=*e%qWeS6RjP=&+8*ijx~8{<)0(vOnuC1e_>IKJZ5 zk+SAP%7~Ul89?O{M5GqMeNnzvo z${4&Ld{z2`2eE*Gn6i_#yw2b5if5}odPIy6WRKKmHN;%p`K;X$ivol2hJcf&*%o@a z9&Ks%#jv($+bk#y2f-?ejH6f3W{5nZEOZ!bk(hZ=hfQ-_c!>HHO>cxq z!pgx9wl_a}#{Dq~tN8USwNe+6fzBUYfm;1fFg7CF1tX(vo*$co2CkjU8RQw5WG6<} zF;7z#7RQUx%IU}Hr4mXFHwAfUbnPaIBa=9P^LId>5JUw)(Lw=1^ksN-#Bn{khIm=% z7MWVHW-LyjyCh4x0{p5!#Kr#erM~khmwM^|IL1=ImOTZ$Hm_0$q;^leC>llR>=H=c zLQd+r1m5uP`g0v2teRTi(vRVhAql1^h4H#&@tKt|o&g|m!eOXQt==36!Fd@Z4u4PG=kh!brC zHeaS6tVE!)6-5V|5RkV<)`L$$j!f_wemt}kwkFye)S=+@sMW*xX&-Ykr%pE5_~V3T z)9V5Ody)SxevB>;Py=vA)TSCG7(xmAw0{aiQU9IKa*n&Yb<$g#<{KNUghMU*+oE}+ z{G!IOz~73iCey9V4lX=m&5#Zpn#rxL+E|IW0(*6!RU0XVexhy@I>d?=Xd-X2m`e`x zPd1x~#PbSnPy+e0EZ<}j!qGXTbltif?>)20X-+BVj>LGq8~=YC-4hGNfjDqf2Hc+m zSsx}~lLEqmJOC4J9FgChrqdaV10lNZaUdq@ET4aqTT!wU^@knlG?b6Jec)R=k-h3W z0%&liV9m$fCdAEgjFg)lbtO2ge^_h`qJaiEl*~yk5x&r#ITXmc5k>V%z8fAk2M}@> zC&O*Y;s@Z8hicgeBuKUUoUPXgFxh;<8cu>zN-|2Oq1Ht%0Bo|#rLf9b8C-&_YE(oP zr>lwhM&SH0P3PwqI660ry?g!P9-gRqBH$}f$P!kUntt7Jxz>Wy@7)bKwnFGUvVO)r zOO4c<-yNJ;QJcXpN|NymQe-?GLq3dWj~lVEJb!e8#^q#^z1KkM6-OKxp$KCWJE<-!g6r-W`TMS;zhjhXbCyiL~Z z0c{&cdhr!8i*?|?-9=V7eX7g>h$QBCB)R7ydgS^8<+%9(Q&7EH@$D$6)xSNL>96+2 zD5yKYI#jRTb)YG0;f53Ac)pa6;HFdLd#&VK`Ga^4>pod7rFK4Jl|*>6+JO3)@!gC1 zJiePz%z)cklEjdXU>w!Ju3QVG$-Z6icrI|<7u(Zma<0fGS+(=`I@-gZS<8%OcAt$T zFCa|}>g88oqeN6N%^6p(g4W9A1yhlB#;RCPj+M6iWW1#+))tZ+Oog6P+cI?)4cB!* zTdtRd1JC)2Ew1;^BuF6ca6p=XKOHACEmOeI*CRX}_nvWL>bsI7#B(<&N+5JA2@<9c zI{h^pxZ{{@0YEu4I-DT_1q|;!VR#*<+_H=P|ZYJ|K{KaVsu}cPqmeacGe%Z=N zD@~tW<+6eZv(TV%Ck*S|eZ`FrFl`(%D^G;QmPBT%L$h?UPKg6qTUYOA(%Er3UJr{b zkRmQZHO`nfjv&{nN?}ITfaP7T1ycm0ly>)z@Hq~d)J)t*>jSGBfTPsZP188WX|5US zVU~LRLl214n0t@`;F(&V(RE%9&@+6GRg;QItt6mn*?{dg?g)7m6<eG zP@*X0?9gvvufg4fDZh_i{7-wgtKVsThK$~3I~ux}4sb=$+OBx-AmJR!Q1p@Q$1;o;Ya2}J2oIJ|(ekornK#Us?OIE93 zNcyFBP~~ymnp>KvpQKZlH!uXs`Y*a98e@fp&pa^S}-Y)(t=Bh5J*lo3=uIwsn&h%Gbq28Xe zSY%{#d~$zlbJG^Ww``S;7FM-%xNW}{xl_M=?0&3eNL}DdUk1FJ88fIqX!O-O&YIC& zePwsemBe+KuXAN`Bm7ICn*1=o`8>ny93AZM6^`)R&(kPj7!|er8AN+X4LuIY_2)*g zzp1(oVnr;C*Xo@_V;Mc#{PfF6>^{$;wR#;MtTn{8>Jps0KGtY$wBl7xzjRJJ_p4ap zMg;B=<&rPesOgg16?A60@Z)MKF@RdStHaL8+qXx@-S!@e z81<+dH7EkG8~yixM_5f%`IMP$oI0D{KV`N5?$$!*E7u)E>Keh<8saScnnBLOF9qf- z_|^cO6~AU2vtWT7+F7uaK%RwP?yEun_nfkjc`t8Hi;9=1gciwZVl`tK#}M$sslvyf zlfA9%_&XXp^t03I2-47N+@B}#Y#luvqbJd0(mv9&GjIb_54Z54>l<)m+yEen+_5k1 z2)#Q35U?n&?Rd%>Y6LyWnU?(Wh}i;uF*bNh?yLFf7R?aMRXmR#-w_*l zmd>Z^L+MO^B(DId63q9O^|q$PI}b9(v#+eKpk5S}isHH2WECxb5$X0Q1TX_3cy^IY zhvrR_D#+5PMq{pN-?hgZ5hdF+NrgCwdv=xDW1%XOc{wi~Cc<=|=xM`~)M% zaEmJb{Nv`f(E!TRdL1q4)H85aQ^mH_hF1SGi(etK^~1q*BovQ{({?z zwMu4mg~PoTbw=tKMe_-sMNU8+P3EJKSQXWbo@43~`VjI@H6binvfu$qiFQb*q2e4r zeY&;Pc>a8A%a#Wpd+W&SxBgt>SVHS4?35kkqc=s#cI5jJ;}$CUjo)N@S7D#w^U_^T zBjG(!_x8a9Vj^G&kJaf`T?Zs(g#COx{9=3PcpL+Ffgfz^c>C1|*`0Ubbf7`N;~1H% z9Bbs!YbMNG1zD*trg0qpBr#kaMNPzB1?Cdrytp27w?XBA&oUZ-$D4RcXm#-E^Jfvj zK{uAVT#H4k{N-KI`#OFF+-bmd1yz-`V>D>h2 z%aRqh*L<)QHB~P9%UY?t=1Q8kh6r=+lwk#Nk^Q6`AR4XSGQLrvVq5xk2~ordp$#!X z-YfFR=A@bgpDbJ}`Wj-sfxJ(=86|Dn0(W2JvNx++AL@NQuesb$CbK~FsS&xpsS8K3!SA(L{!t;x6f|QWK z^UB*Y8^r7C-FF800Vt&QLi_mbal4D2DY-6@4_NM^T5%64O(fcxf8>RM$bJ~jTK&-@ zQ??N-{4>eeq^#Hm;nj!bqU$)ppz_C!2;(`b)C^Ds6rNFt_(eem)|FU+#L*Gb5HBSJ z^<&^LuVSD^-sR1FbzS_Go&_|ehdk#@HU9`v5)CnN7pGN87P7ljL%#yn21JVR(hV#l zKJsifEHB{V6}@#k*VWpAwMPx1S`$63w{H9&cH@ioZ2+;(lY{R7KoFP}gfgldI0m*o z!VWX>ysLL)9??G7I3tP)QX9%xNCMqJ*2l9_TBv&A&PNSRSnq(ZC-5ga3?ZUf(!T<> z+hxgu>~|^U3E77#c??lRY5746jL7WGQquMryLDaOEqz`~SZ(HWOQ~vT1a~!re-N@x z;TS$GkdtlzFl>uS=JG8Tl%h2&3X?O^d-Bn(v56h|D9IbyAbEfj4J!Qz6nsnI2hZrE zFK!@ciC;juoTZyG#hhSN)jGtZK59h#wS{JCvo6Wcrh-M({r2#!?o2nyv9N^N%Us+& zu_ti5+tT_m`^WfQUt6^9CFB`nd&hTrQ4oA%kh%8!e7z_roi-yE2f5WiH6rApM6c!e zBRoVlwYRD z&?`p(E~v$q*6wd}byLbxHR%rlQjC@NJo38k+apEXADOP+SF0W%_P}yhruR8c^A50{ z9da~9$YAMnp12zw?;`b?-44!gM-6cgx5Wb9R=aq84(=8w?AA07z5Qed2EMLD-MEH3 z=7tH+K1}EAWq{j|@Vum_dgnee8@`d#;>sO61xhk~s<%os)da;qto{_)-Ducm4InN~ z9}DL1a}ewWbxsLI^sf;@L!b@mu}{PSBp4|PLSypZ73#hjJr5If5{Z{4>BThNmwJV; zJG%MXXPXER`DJNM_1mE`YwIw?VS|9CR+i4cfLA@Ht49~}cvU_}NzpmNUiD5rG?cZ+ zKZELTr>HzAW|Kzkv zZ@yZ!ZPvL)DP5yx>YXY#i|2P~Szv(=*NxNQgc+L8Bwdx6+9nlfnCh;m*9{J4c)-zJF*^H!W73pa7)aqN1mRiamq+@DA5%2yN zNw$o+yhK$8>!6|IC_oKK&7(((vZ%(~dDG56*xg^KyZ5NONQsQwC&H>Nx-C|3JZa8Sw2&oTN5m@ArwIFK&g+fD$ z)!n&#Bn>sz>V@A_V^#v{h(Db|vKn)9$H(;U&tr+YB(Df9zTVjilhf2yKjtym?+_i} zPkQpJYKse*AYWUogMW`P)#NWuwhS0nJWU|a5gH%}bZ{`AqGu_S3;G;`2In(?$0Qoz zQvxekmy-8DEYL4%X`*#Q#efG>Z(NzN3Jd#-#bXxpu)h!w>nwt1TyvbP&&vMdva+}2 zWh-;3pTwcrvY(YJsUug_{qHj6Pznd~-mvWN4a@$1G0Xn`XJ=k*&w>S7$-B0QPns4f z%BpD>KcfZP&RTv)8b;M9VN2n`{DC#^kBJO3}n+=gSkN6ajCD9hriu zUojk`A(xCvmkHvh7u}%&&)j?+2mlJ8pBL$TG^AL$(-?CuL984E0dVGuhUUpAg^_xo zlNfn%+1lj2q__c^GVOmBLa75&d?}h_8JJ|9D^a^C=z!_L&w+dW_%q;1qR^z)paK@1 z?1Ztk4F>r=kUX4SXh=f7Z0~&aX^DwIt`3%lGBms(uC$G8sK$AkrlS~ABSYS3;6x43 z;aWOKdbG>w`95$++B3Iow?OI{H7m=Y_pWMy!ew_0eUzPk*+{Gh4`@Vo5d-jQMizd5 z=cuMc^v>eh-~vdVY#ChVD%%kWEHBc6%Y>`GKQGwoUaoM}RH8lgEimL#P{gI%gq$}3 ze8`Piq3g)B^7rZj5QD-OtJUH;td(TEO`DMOF1IPUSOJzH=2oEL?@Y{ZfH`Z^^HOpi z-2%&b(HZrCVBwR`O42LB!iLCt9NZ8^l>JV(g16rB@{64#@8+kf=wFk*=l0IOIDN0W zH*ZSg3+n&ubiSxvkJgVD1J^i299P~PRoch;w9?U`V@5eHO#09>NfTi@lbMt}h_HgW zc-n2Y!l{hv=E`AQm{Cg*^il&QMC(@Gcun`ko| zs#h}xKQcNhHU8AfL2V{5?=fK_DkVp>{iQXfe&D=OO3=n5#XJ8E?krCY88FYEJ@&QR z3y?cR&1jPVUN8gG5c^w#l^)b8D%Kc%(R^doi0>uiS7}w`SHBv7dsz70wsxP=kG{0$ z2uI{nx`lN(8c5{!(U*#b2m`6Zf(pTh2sA#Jw$r{h!wVhf(Wt@amLA#LWpu1*gPwy3}cF| zkZ7icYA7GVHo*~ukzRARadY!s^~@ko?8yBEmK$rz@ztY8{F2gN+In6++((b}=>3(I zkF8(?-!Aq{-W)^Q@_BjMgsHx9WCqD+YuLBk6dX!U3;hhjl}6<9Vu?365H9ju-O!3vw1!MC*2&EL@Tc)ZahDAg;Hg0h zP+@kUCMjZ<2v6?eQE#u+ZSmZxkpRT6Jr%X1g&I3sps39kN>j$Uz>L`#Pa{m!B99AjSF{w$hjl#8)WIF%2xXg6xT-EU9@ciA7s zJNGI_&a>etIrW}hXJ26UcK7jooT$>d&y$oMokf%{Vi+mfark%} zsH*+s>n~ToAP*{aDNGWSD@;X`X*y6O0;*D_-YGdUy~i_HvKjhpL z`dLr@TK(@>$)IO&MF~Lk1tI@C?WKbR+A>e99HkoLYwJ9~}3{)NcVKh+>4~|}_ z>u)}OZ}&z$?CrijIs97>sC@Lz*5hrgD85W)KbE_+J{9#v3)(pM!Sb6J?3A9!w(cDlE4i3ygGJcQ18jATt z{yDy!sJAouFHsx@|fW&5gJ&S&0o{IjvzUBWF znK8ePM{p9g`NwVpXIR+sSx1qNNok-R8hqkx*29FcjUA^RwaIDr)TU0R=@>Ruog7`p zqpUaTkI%g?sG0wr$J6V#>UCkWw$IG3P}*~&QQM%$&#{M7jEi7BJpOY~BiN_iUzG|YnYH!xlA z(!@l+&eK`!&D&s0_S_LG>Vw7ak8}OgpWK;q*h8f2fi73o#K-T9p|Ho31CsWB*6%&zq@nP zqsz?Sl_0aa9n$?NXv9ZO|>0tJeX81({ zb}}f(^N`HIaDjh8yjnBj$vT~%O}NO~T3_v8{IM0SO_F#3o#t{<(>9z5xSA$`E+u2X zN6GDaw4g)&ZcsGja1NF~qIAos40im4$}|3qSj&SneNV{wc^WSl6y5=9htQ4O$7HaO z@glJ@e~;AzE3>kq6Y~*e+Kwi;mmh-fHi&DqSpch?`4Dl2Hw|+|wZVLf6tyPK`Ql3p z5b)>IxbwdU(QMiuXMO4~7N*<6nW5D+fA9{4;f96K&_f^z^7o{lAz^b*iBNC%=?s$Q zjr*5;IAsWu$JCrnqdhS?3N*<%FFGFvyR(mKi6LLJ`^Kg<-W!LkIq$kKU8YHz^_l^0dQ0%??oDom;flTO)H_h#P#3#Ze}Ik04B}3NzgZ#4zwqs3{W-9y zR;W6tgDxj^ey0zgo_wuFM%#g$G0QmumGpANEE_mJ*NF~48Qm7wp|z#ISpfhnpZLQk zS&Bw4KKv90!Q@jhotYYVjNrkb>OYHWGK87|SFW1_qQ*U(PwIM{4XZ~Xhk>J$Ztv)2 z?@jy7(eV%Df?+i1NMV8CrcCdjL}&eEM0-JJN54O0p;h&cblx?ph?R?G&dKaVBLs0y zL`rK~a7;lin8&Cq806=a_mQ3#-yudzignFSK?-K(eo%7?ibXr8z0On*rhWMl)z=#G zcN5sm-mC!yoG+Y0k^UoB9AAXWHmFVhz-}LUL;f(jdxotPW$)p44c9;hJef6%Dd*bo>)!6s;UOixtgt^EdE9K4!o}jP;whj%@fu%YK4uj7pyn1_Mke|cmWi0Rn6V@ z@f#D>qovE&+|Rl`1^N`)w50e1Pz7WaH(Of{fZ1LTELSi*7rq&RU)^$ZdR|+<>o&Ef zB1F~f`7Gb0{ozn+L13%vD~xC}-%^)Yvjk3htWv|J)4%-zw7Q^QdZ6x23Z4hFL_7MO zb&1k7Y2BLeSZ+^xtaw02>7!c!la{&i={c8Ve)5yUQ}EcCn+q@zz-{U~oSWT=@Tq1c zxD5PL#7fXRpZ#|@Mwh7&UYkC|Uxmzr-5Za0=t9^Pr5_`8Amj(soG(+Q{WI_%Y@$hd z3>+F6ptHOYj#474chIQTb=ZbKSXW+~3DS;e%oDAYSywG5{1sB?PySv@*|Lw&)cS_6e zI8asPG?i7?1lUU@xz}mR^Ajz+8mogmw)wO3%Qv539+)+`73OIHGeInzZKb)hEssWw z@Rsi$w+=i1W-MHO4j1q7z`Wn(MyD0XZFHLbf3>MpJm$6gBLHhLP%EQUF<0bTSSOYdY?a&J z+RosmXG8??{K`bN3F)V^8Y@!1@y-kN{$K9ET&Bah9FpahtA%ZsF4qm`8dn!5nb~Lc zpy5q7wf-+R-F@wpvFvmYrwQEPAdP;GIk%i&WruJ1SHj-$J}S;yZ~pc6xjlV1n0=HI z@Z;M|GKoFBsZsjzX81(0m;aK}Yv$($ldJtPZbdY-e~%Ci@%ZrO_-(7xd3SWY_b)fc zdYYD;Vq22k!N>!|I0OT$^$N)n3dS(WxRe)48a|D|Lw!D(jFPxyfmqS~B0f*X!fNtV zx{QzdfzerXBS(M5S=~Ku@AcZ>ccUlf=keZ)H=PEp#9sSl>*S#Ouc}nE7vT3)E86Ya zmXjN*8A*7L^_1dc;pwtzeTTrX39r*riYF(>ij$YSN z?HPS8UXy>G{_C3?mAJb9w!RYjE_zExTM6i;T5ZX1z`vKl0Yrz(Z)nv${Vu=zsQ5?< zRA4ld6-(=ySJkctG{)@HNxN;T=yo;(E1tw~09h;W&{fTH?mStBWBzT_f>Hi-lihzXNf(9mz8I3Goy| z;O&5~Ol{Ntm|RCGV4WyND)H-{X_l)(v{P}~8g4|CP-E&87VZA5weHHt?W5CDXt^waNdT;<1JQHVX{zffj8aXz8<3n(3K4QVWXHJBD z_3;_B4`>Nr5h7??J68Ha)Gqb?umgJd*Zz9KM9;vy5uVs9j z^kd5-$$sn@znt>3%bBx;!bnL#T83^xsS_GO69Iz=1hARVF$qhs@EWz(|0g$OWEc0d z#6vP#13UwKt0?n7C6tIERH)Av;2f~k!dn#x@hL}^c^T8=5hh1qd8;aRilKyPE5 zB_>hgT<4D3eQE5x_dMpPpxjdaO7sC!t$a=59a7jtb+@J}Eonw8AA#rA&e$S*BZrvE0sc z)tcfL;ImM-d_S6YFiU=}+v8!^T&O(f=_Q~FK&pzAxpsutGUcpbzO!VirlvnVpChF- zsBu~tf9Qt%P=#Jo*OLW=^fXs;kD46C1SH;Fd+^fsCupf(q#CVo4RxvXu zc33_<)(Zk{dHd163?>4n6WV&K4rgm;v2;rBN2`y93wLo@Ga#w{BmHP05v$zbE9-K5-gKPk#ZAGUKmR*8q>B_zeENNTin; zK|JHRMIaDEh<4#ygbs5Mh#hoU>?^nJqBUr747xOA&~dB4hK1|E$I*Rn;po~N@*q#z z=?AtR^qLlWFmB{!YN#E0yu(}t0`}_9pNkBaby(Xc^ zjMWHgd|i;FR-}A{|0A)nd~RV`B3zf{r}sFuwM73q6AWX9*`=E{G{rKq#gn{Rq{++Q z`Fj_(-wMuJQUQ2-9>X!m3 z`PH|M2g?&nBC-i!b|1{I4$6~z$6abVZMDMiOJ718$43VTFIu~Qi@HZqr}bU??GXeU z2kKq5eF;MfDjOWAuJbC0hRQOJcHeZtC>lBZ87?ziFG0&!@WQetqLTNX*J;h>s`EJM zQ}8trW=*{8+n!11TPj?aaXGiQ#1!!alUF3$*f>HPuYT<*R)ob?4?X)>DXKO*Bl0DboJqAx?EN!`LnfYf`ADL7g zti@!uVUMj8N=n-r2zW|E28yMo3)Kq@lys;VSdW0`)Ty}aH*H)e4G48k2v6WO99{N5 z_RxLUQbJ|70~r|Ji`Q@0DV`g@@zEq7< z;j&p|BynaIyasDhLXDV97+=57!Hq3Q+~x3R#V`nbYw-lZ#U<(#==>kYriHUieNKKY z+~S=v3kGEf~g^2W=flfyk$uQ}|){jAuf)=kI;>M#8S4#X9KbN2^;BkuUw zMts?O`Z&l%V7Cor2;CWV<{6|epCuoZ06$Kr;A4qtL!$X)5>KH-W25G#|G5bQ%A%d< zF|0N{#ezXCBeSZSO!UWwonfLani1x$8r4xb=mK z^k*}*M&i{MD#1R&W$!Q3VQ~qBYA^o&eSBT~_CtSE+JE&P;KfTT=z-nOf&tX$eFEZB z48F$(b3eFLA$tq?q#*wbhrT4fbceS&o1&el*g7dVun>k+a$_2Bb=yLE)gT0?ka zSc)+@m0FKxe~2IH!av%t9LRx!eZ#tzyWBaf(9(OyQqbk_A9r83-?aXX_YY6+-EAYS zLi9G0HOb+vBx*)$Gsz?ObF-o7;g9a?!cC>B?GI*%V})$)<=t&6)Kr(>2fMFZ$DKBa z^v7@hjkZ#5QmfqzmaHW;kVb=n>dumQG|cXBfyBnJaE*GDc=F$7fmlXFC2_U2QPo2R zG1e=?q8zv0-T8`$t)~JP^>4W%F!pNep-o?RH~G5C^4WiT+}_=%u=0Pi+1C?LZ3)oY zcz4r})s;_uXSa3mZ@B4U;7iGXH1p5I-b>3ejEVn<#fXgNbS7A~-G|_?u9Df{B9dHO z#vu)~*PZ`8==NGKcb{ONRNZg~)W;2u=MD5oRl{ngqhpfr@ZQ)dC=Oa3WO|-yLwB?m zeW~-UTYhGyL%Xk!pSVxH+wJHse%CsdUc$Kf=k~I_mhbMg=PwS9Ug(a(kEOZoawwzF|L#%2~H|5d^#;|)fyG+DAlGtNKX&s!$!&AUhW^X z&FJ9Qa>Ii!{>0Z{#O?+|vDsf@jemp_?#r?TH5L9*h#qF61zw{rN1tgoJWniQ16wsi)PJ>8Sg< z&F8s%f;Vm7QXNPB+Y(Lf>J5KaJK`2w;#1+qI6Qfy_kjBQMf-TEeNUh4=*?m{8VLuZ zstIBFBAt(h;9Gy1oJa8(%^ff^b4cr{!~@JyKvibdM!oeVuasV+^78fiI^H*p=()vx z{Wa2$pP0ws=kitYk$QR1)id|<;HcHT@x)adVWj->Mp#$5Gi`(z+zX7C)H*a+> z^pmB!qQ9y#AzxPLPp|v;C;$KUzH~j2BUyC*N>5RT<7q&R7(iP~8u@&*gu1y_Ll2;~ z+x8qj1ckb61eir?&Di%}SYK^&a1(9d3% zHLz#Z${W%pECU`^f;tO;rmRx|q8U^Atn$VW(6Yd+3=&{m8WI@cvf{f&3RFk2Nz^t3 zf+%gq3yFyZOqVIznAyU8rSVZij2h#Pb+M+hPH+YTpGG(F?xg;)o=DrfJ%&fJ%ZgoQ z{iNDdDM3{QpBT9iYE%o0$Z#SN4Xk{^A`bc8hvp1%(E)z<2{uM1M5687C~?07(KIb|>Y2HAshZzAaV6aOu4Aq*JP#NEg(->8I=UV9GAk4;RJip-Q@w zH1)!U;MZS`f9W-8iqS&}YUaHD2phZy)6qjSC^Y2lPnz(#2r>n~z!@#rAjOtp3b$4`LN>qypV#}(sGW5taP zDdjDDZcCo_k>pN9qER+?a)0Wxxs9n; zb2%g`z0NrP1}Fb#D?!M#;*!5y{M_BG0py{It|Ke%q{+zGIh#_?QZdDcW^Z2Z1yk zYr+4bQl(3-`v+biY_Uon+t-%Sj1)^BZ=+Q&idms9#63G2Zsj&Y;lliZ=FB<^#J^Kc zb|D8kJA@zagY~E=fb5c=Fs{UjaL_P27+~Bs=nt%5N0tk^AjF3iK%!aU7q;#23p*Ho z0VjOO6?;4AitUSbD6Y~ofKW>*)-OBcn7xHP2A#3z_OR~D_7WLFFxn|7xCqnt@(+r3 z;8rt#ECCZ%;JF>|6BHfL-S!GvjO#4u9<-Ey&?8<3M)RI%3e5HpvSz#At9xc-b)Q3b zEKTNl5-muou($WU-MybMslq?9GqFKTSs}fX4$GXUmmH&HpOH{s0o27BS79A*@s0!mnT zxgC(Y-I3R3Uv;4F-zMIbtE&#w>C=wk z*#;>SR`=LFFhfVZIGMc_8|I-=AIHCGd>?vQIe%BGm5=Ghy?ERx)#~OQT1-?WA@!8V@1!16wM1PQHq$Hn!r}B3>cX5 zU?%B{^)k^@o8y!ZKxiNI6q)fJwPl47mcb`9xv;utB%T;Td{D+=CUR&z zrH($r&*r;#n{)xVEClnms+;e}dx;0>AvAHQR_E zcjNoF2aWIFJ?Y`=VJwP)FmF7{W}e#k!ay!MJjLFRp4yNUU<=a;$NuC-!2(L;5CVsE ztu(XZd{YRX>BQ@KlUt`d?Q=LkiTZtUtJL9RkRaIcwBy&1XI01?RMnwWmEZsZ*syZs z?l>+K_S)X0r?liI#yANb0RQhGW?jVaX0Clz~EfAwo%VaQOaV;TYY=Ry5rz6_BNhibc zzeWF##x5LM+Gj5B_NdLVikv@&2ki;_0K@Bqio3v#C_QC@@R3lu$^?mmq;I4wK4Lj3 zeadx%7GFj0b2069QT{~bKDMS}0-yq4?pbVLB*}z8!fF)`F-W~8I7w(ibfy-7UcaMZ za0b%}EFE)!BY6b;UilerxILM+dN>vsiU1^_W80)I*MW4yS0+Xkyu_u6{m9lBlVWLv zmt;zBOkePVWW(r=@iJt?=#TYR(jkx4H`F7OkV=+rqzxZI57Cz)tVdVZAv*pGKhF4d z^mG%Dnp=YI3h+jvR-#g*zc?#@Q*uyiZ`AR<)_BsyIG)#TlMV_PN+T^5M}r$^^C+J< zl*=UU?}q}a%Lv-$C%4t%=%pJHGwOsd+5ofNzKSFD8iQ(WT=YBi0FeX_@`&+Hfqrkv zEfXLyPhpk{ha9SDIC5!~HANj?$f=+TbO0JpS>>Z+oQDpyW)0h^MCWJWusC@{oJT$H zLh&6#07xiVY}yw7myg)9TIJk)4yHthJ8T^l#*D9L3u537ho4EuWo;#j(>J4X#+~&90O6yf69?->45Ug_#IisQcq} zPVp&|e@!~A;n3}OB;NrUP7OI2Vf)jF*QxW;*~>UdC+W*vd7mv4x9wr8?V5ndj8qfs zudk!yk-(wv`-hv%Iu0es9*ZOLlw6Acnv8t+GH*K^|7o{l#hF&m=53MIV(cm!rS&## zv-dBX>9emijeQ3HzaU{5C_?hG9hkqfB?c)Gv_cX4^=${V>V-r1kpt{a_qHb8cYHEvf%*Q%;ja;Qan9Qs&i~ zF5m+`wf#|uXraxwuZM^eN6N<_O(780&*%_{I%4yMfs_oH%9TcdOobqs3V$LpStf>$ zBNjhUi21uy#AgT8axUBn-bIVS5k_La!He+r&(07Xv#A$MMZzMavDI+rgg{-;k^#g# zQCkg1-Zc;uV9=e(X-0NSyj{O&jboh7mk3E3ZB4O+xUXi=%x(PPCI8yAFETvJ%|>Zy z%lXeD>}o|=OEnx4V9mQfhxkf{$nz8zGX&TCgA1;DG1C6HXKjQ&vBq}*A(3^ynDZx< zSi@8-JS-J`UIT`f`7N6&_Ys8tq=cMx^pNPoIgCDxcVBkU;h>xwX}EcBNjK%0gQLMa zx-EI^SwQ!0_+_2_&G_bx-WnRqotrME+&ZY(6E*5wh1eUDf$>@Py_f9EMgxy20CSIj z5Ggn)4TN}3!1hGM3(^3yDS$i~V=!~dBCo|eWJuhdXC?Xe#>PHHLXC)Y>s~{nlDQFW zCNXUZ)!w>qsTlm!$i(Dw(S1BxgrXJdOF+dA+Y}+pwliLgX8hRjE2C{aGC-2UD%_+HeOp#?ISd7W|SSvNoYn3uum-Z<7 zPE@;f6N%1u-x@Nau*tK$9YrXkl=_rGt7-4DPs29XzS=Cp!xnnY;Q&)H0hcE;lo%TV z#EsYH?mN?~tJ@#8|7jkhg$6y2+GDH=)OVfP{1WX72Gfa}D}3&Qd2(8< zIp^bg_!oB7-YtEGPugrE6BI(;iFJ*!A5T^WNEa(f=JS3~(3CIQ9;zxuV)V zrLEu|Iv$|3Mcz747Y8!K?U&XOrPvzy$R&(aca%cO{na>x}D4v1f+6;wNii_*n zFjm+cM1|~%w9U1SRHUYJ2Y8;#8F`Rf>vojgA=bXaT=!51Z$Ub|0mAUB)I6ozOb0`J z+L4@`4g7=>wf||%WRvJeSZ?!cUD{qU^3IGY;$?q&)kHIWlo~ekzE}7-u1b3_7L`t~i*le-gGh1d{#CGhNhaWB=ygE?RP7K}e=j=QYPRT}x0 zQj~P8mQmmmPsGT`X~t{P=J}}vT^{O)1Bo=9y}KScf07o0N}qY-Nj4k`u|1gfCp_o@ zDhOoEw!$8xN??Rbb|)R9q8?;SQVGa5sR!e`0$}|##*zx7V~%=yhAvuO(U_3+IvaX; zq>(1iJ>zLe3gpNdhoSI>s8NQ&6G{$Qw@oFRj3mheOll~4ex!RoL&hrz7J4q$6IAm0!2&O~Au_<32Ium1RMHh3EjLM$fP&6} zTurdgyIsy)E0}~VQUK=%C1!D0dZT#5ugewXjB*eq)Aik(Kqi7U9eOe%CZfiQgfd+7 z9bAub$*HW*96lchaBM3-)lQHlBn%>h_UeHFe0~pd{W0WE8eiAv%_5!i9DIVedn6)IY5Yc8I<1OGw|75VJXM);^G(HR? z4swwock-37x0DZ+b9raQ<~E!X_L#B?Y_I#br$tof5iIOwJ{AIw&KwJY#OYrSgpE{+ zVj}ovaM}t)9tPv=!|QoqJOT{IvtUqq(&gaD#dcR|e4N!?^}O-^yb&H$3FkC`r` zqCFUm-1ek*t6A^Nxvds>KoY|=l*I;doDeA_3?eHz>Rz9=F%=W%!lU48*MlD3YRZ)( zy;15I90Z7ip9VMP?v~rKL_0iCk+gciuQr`>KOp@<8-3(MJv*Y{$o*yNLEWEFjot!& zbA=j2pAl$QwTRY3tUES2)4f1184TskPt?;K4CLIhjayfue zdRW}RP(?oL)QLeB9{p5{rkp5b$*@YrL>&9GzWYXpB6mn^&ZyQ-ZejEo?oeAyO>PF% z^95S>sTnuUDnRfYobdVyQ$`HR2-}i4pvBr;HsRtyQ+y+U!&Fo)j^te2a#$R?Aq-Hc z#lc7^`!TN0wNU9m)fDmtCqO2gFHEbQS>Y)npjx1+JqPj5;BW*dsw&`S{k@)5Uyn1s z0)WHuK#wNeYesInC93meV7m3GYpt21ukdZ7qW~a**&77PhNsnmLpPtpG=j)rq16Na z*D>&r=!Qa%74wLAjxq8Pk8{3#;gyl)*t|5JL-UMtr4E?&eu+E{obp>CcylAX%Pzcwe<8sIp0KYagt-GIB)!Fvv; z2;H0e_p#8yJ9zB=ZQY7B9zDzD3QKME67_gE8eDswfSKZ=JEC5=v2#KM#=B06_?3l@ zZqP#0>o?VimZ=8#(e`-ENV0sw2+h*ajr%2FYX^DJ5k$GjlFz2R2x#C|sGmTt- zmN~Dq0W=^ZMQu$4# z`AzBLjK*H&_x2*I*Gsi>@vQtkRcoFW%V+1cl3m@Gc`t;1)oB+Rhhr_2+9t4d2ZYu*Is{!u9Tk{s7n zOi;xv>^ph;dfG{OcxO6kiK7{amFZaq5N~E0KoCy|SV8z?{}<|3n9IVGoK=gAA!=2a ztkrXLSpH)fLcH-ALR|U`AzIxon-)>#!x@nd2jhvN5cU97qwhzTzdK(-QqWEvbxU2- zc0D}Z%LTHiTWn7g<-t&A*8>lKW(9yEK?y0twP7ElVa_Bf^8@L*dSO%^yFV8v~g|3!GyVxLZOe}jG+ z*RCS|#HTkgJ{9*ogBkf{Y3ty~V~;x00F)@bSV}%t5B(&D%k;u>jtCeR`z|L%-5ql` zXzPVSH-iBK!?3^^G;5x5uJ~hI=-KE9@DDS6fDdRT=3-{L`nNiDs06UuEGJ-NMfvqA zz$_$$J(0oI;n0 z&Z(hZ$Rjl94cd)E-&`sEA(B5nvVd)^4?9o*N`=mU#mj-t!5lHq-i23@CNjJQ%hV2t zSBepY)(ouLv%v)~7!`_^eaT?T;Ee$8W%|zJ3MZ-9cj1c-t#}n9!E)D0Oh(gwJHbxI z{eQWmLB`>$H#GYSW>L7f#p@kPS}S?A#=<*7F6|6zthFG|kKUj?oQ%jzg5(2sRFYh) zqAjKr+Z&e7SZ}8EhTx|a4VZ%-&*TP#+NNvj!1IkX_j*Vo@ATr8)4DqlS{=ImxhHbpYDIL(s)x>+utrXF%;?`;%O15Xt&v*m(%@@W&Q|vJh(ovL z%y@MNSVzH3;+hQI5t*~}ZB1DO4gMVXkHS6RY@T^M9Lqa;Q2_I5f137x<^zb80UB7V z+wTO{o5s1l+SvVKZA}}w+Gd5&NAvjYdF30{gge&ID6$QBaL#O?LQg1;IeVqg$*^J&l{w8+(MwGWcY#TZsS$^}?VZf$j& z0V@b#nJBkN^4evOtu9Z(&NJwxD;kY_I=7O%+X5KBd?@xn)7!8In&l+N z;Ci2(G<7=cXtz4E#oBx9OPGf!8l>%66_JoTL;{r|h0UOl#rP+!kURZ@=`0w-UT5=O zcvqjXRa5rw<>&H~-Wc?_Y)ex5zQooXgR?IYU(vXly_E(I4abyQ_XBJMFs!g2QP;ah zjoQ@^PSkjWkjxa4k@uRbg~WSbqbW)(ebxF2?^gM<*VmtU#mbjq3x=sa4@Q$FJy7zy zzg1~a+EUF(3s&XOF{$p30PbZ+Jf>Q)Bla~Kd#+gxCd6)BK%vxOKjd?{+&{(FNnThw zcX>kT^w6l9t{c#WOl|~ZaB-26=xxpIxh;DIjYqfw;CK82vO&x^2&2y}u~hp|s=;WG=@2ZJv&-eEoNROcg84$YL7Fvza<9VenHd%+n+rA>Ryo-A7k=HtyOa9IdiJDl z*&?y=sP=c1y_TF2$uCpqUnJTmDd%RXKN;Pc1xHSU5vCtAw0S<|n=pRVTdJ+s(!!xl zG@0mfSTzPK!}`xj{Lu{|2-?og*C9L6yAg|m>?DE;c!|GD=uBjs9qn~uy|gX9piEvT z65u;=^6ou3ud#-!4l4zB7+N{FnBJ5c&9`uJgw;r;U&LW6ZO3hX?5(imTc<=Oo?`yN z&p1SiLM?7|QPaCj7m~+xt>T~Fq{NfVp~m31pXoSp$xLot(mtpJ2>UIDP#B{U)cXAtiYy>fxaI~9!-Q!KLnQeZxZ93 z-!k-OaMO23;aA=m2k}F}ek$(9mZNcGeo?}5D8DG(JEu0%oG}!})0~d+z|P4(@iW2* z6%P92VIsO|o;9jzSP80ec#);q*%XSxcPVThAZ8_xs_$!)P>}htpTHKypO;#IzMFjV zvZ^56J>>^3&xH8+UDMv*-f^*B!m(B`9Pbs(2qaZj`%#wbCaOyVOXZ!?8Pv!*rOJs@ ztW&Ml=(Y(prD2Un72Hd8**@jX`%v#2B^6F29XQuWkR)p8V@b=!dT2V1rhF%y;XCpfNp8|8skQ!PeB+{55z;p~o<~h!HSb7CK6TV?#dt zqRB^ZH2KswW`qC~l~p?)ezBMyeieR)9~IK^Gk~S~;Yb0oNtL7Sq_sCxz#A#FU(!XB zA*9{~QTR7>)SIC+Pl4oEGtE&#GA39h`;;5OgM^L+ue#^NCw`Ow#ft=pl9M6Zq@m0S zQk&~t_GRFAk5wF>%s29Mai2VomS_=(SZu#i2F*)EF8^c zvvM~Fszr0Gpd@EGO4&Icl`QVd@5m3W+>UXnaw4w>W@K1-+T^{jt5igwN6T~PuF=t& zVobV3jI1VF=6C3IK; z#}ZQP*wo^bkcIu39l4f|^omIdXEP5GkdtFP@Av z&W9kOx+I-J!&d=_UqE4h(elHzKiaQ(xA#NYJ5aac}b9@A^azl{58!VeizLF8{O1{SZ$7 zUk;&`@#&ATL!K2gNzw1IZo*86rqCSXI|Me)#DUUHnb=o(V<-7Bse){Xo1HFvgelL+ z95(k)93m9eS3g#QUKJI~gvQqDYL%?r=o}IsinZgn#abfc?4>R5T`@e={&P~SpxkvG zX)e$jr;bR>YKe=?X$N!7&uj$?%xQy$HLDFQ5Nsoeo<{jysop5Qdk+ZOH;w6Ni=u;9 zHPX)Co%|k$lL_^w+oA|A%ISGVxyJW0y=M)xR{VD6DB=AaL}B{EnN47UdB~pE#_{|% z*d1{uAXs8fD;QU5W+PZ&fi|3Zh?O)FbDHwGQE+oab>OuDYt@iFDe_~hLD4UX%gQXs zRDW|o`|jNt7GDx7RW20)+WYg@XXRsQ5OZHfl(B%1hF-v$1N`Y(wb+=61u8LbeOC&Y>6Rk(Sg;L1=g#?~ALT8tEG4Y6!_+ax z?}O$@$Rn>T4phc++!c#mgdBc?k)PNdicG23wdl*1)hK99G3qhPsVr?}95l%0&y-G$ z{0TuAV=8c%Ad&D$*3l0CJXNsCK;Wk4x8=rLK*4F1*^XUA1y;aK+ZtI)0i%vkd>DG+ zN<1qTu;p6b03_w1(bwmv6lKC52~tObB3#iM>-xfm*wxo&#!zzWV`(Xfo!QlZjM<=XAfLo}__2!nm+W&UA-K5HVaG)xN%AjVfikk}(kMnE_uQpx?)7eDM>tqn87pX7DXyk={A~MWvmWPQf{# zkBIG&d+CiiFUZ94GR{v&WID$^`J5X(gA{}oO=0?zPnbs}V;mm{ecJ1QN~CqF2!kRR&U&iy1`08g)-m zQ@x|yq2v9X@r_B4e_lQ1HKe`4fSkK(_dG^!Gyv<(&I5uk&V_=9stLzgx?us0PY5ky8)wPQ| zB}GDDpHbKntmtM2pcTaY?b=g z&W6}$R#k`rSZgEmL|k&w(G#EHf-w+rm`cvC3C)m`JT*8x)X$+Yd5*Cf%yaEk?`*I| zsIviE_BDMr?oa?jW7I;k%*p4zPiH_PNo&;pggtwsLEjgCvd?%lfq@Yys11L56c?Dj z|A)#cYu*lh321RzSXQh!k>~?WB^9Du?I+xb&&-zAj|Y3u#In=1Wv;k@n>M9F(KaIn zj5flwo9Ln2p*IClGFM`8gap!9fG>^l4#Wd}h{O~(@(7snk9Z*@ zSt}`wAvHUBr1*_-#LqR7R58&|2hb!>c}XD}_>+w(_-HQ%`fK4&o<9Nt5wyk72lcMJ zerw`qazN%^(-K6R`QQ8PlgE_0278^eESJR#!l5~l@m#&KH4R)7{YCQB`A zu%aUI#)N0_X_TW{+9s-`wSzASDG@W%FSO`MWU($21KrOu{mk)D>HH1X;}^kVfe?1W-W62PcgG!5 zj9CtL!l^p3WUqxGE&@!+2r?ut1^_gmn{q56rIbqxZEynBw69MUz63X;0Xi)^^xdM3 zozdc4S3Q=RDRpb&r!AZW2IBRA&+MH9XPS9t2OJAR&!Xjt8M~&UpmUyJD#Bz4D{}xi3bu0=VEXfq0nLxi^QipaVOA%jf;Rt^W z2tPnpz-U->qceD(y9xP_X3H=bpf9i&Nz*Rz3eBN2x|ixlGfeMOHm; zG^?l0ccpjLns09s?uXkGH+c}{+5Oj!O83!~dBEG!445n~VWXY2zHPqeF;7{0E!Pm% zDnYs!Vlp8K5zUG64o#cMtlG8Q)bHG;SZ%eVBhJc9$AKRD@tu-MA``>#qE@G)<~d+C zNN{Rv^J{?%QY$`b^R@ zAxoIIdgIPD;T3EdxA`t(1nke!sPg^?xe)!J3Lq=jVP zzUrswk(zXoo2%85Z+oTZhMC9ho&KGY2xhP7=v~s!-UI5Xi0Op@=xxnBrmam=%$lp# z%8c3#W2)HOpBLQP0_cdHywTg7y%v1M*8K}wPy9=FQsq#mGVyW#Fb$GpavCJ=-EuBH zyl<7Ts4};w7ln1xKuX0-ZH;8RkhHJ#on{SXFZG$W9T*A9A>(*u?-nSE#%JNO$|TKS z_&BQF9d3fz95M6c&BznQ zJe%Q=>&z!Nlu1)2$@pS>J=Bwgff=+XpIJVXIF#^PL>lO0B%k^n_p?f&wQ(`+Dye5< zqXj}ZeaQnu^xQVCH7TcBD!}Iv8bkP4Doj-l7mVzd{vJ80@VhhtsJ2Qj8J$BCr!88) z%qnxdK$&0$EWj-$Q)pWKDcdkB#h3(vq@-(XAS4nx8H4~9l=LQfzye7# z^~LX6AakYlM&s#4Amt_@Mxr&FimKzwfwk!mIB`AWT~I0QhnyHN*(5DsG7yU;YsW(~ z^4_hYubuTtgX}}z0#vjgW5QL(PSuJ&N_GLU#o#3tY89(vtFp8#8H93D@mf^oOw~$> zGy0^BB?&%1u2vf5%6Z8WZ_P{E_YVWi%F1*vylOPK_ByW5E>MT#XN`T|#caPVIfjJO z{Q`#R7$yvlsM;R2#+aQX$il4tg@bwb<6v_b*qwNmr+AhogP#hEu(NxwWxaL;)K(9( z9^IN;TVYF1J+J)>QBQ62O0UP@3JXqrs6ob9rh&M{u^v4!_4FINlL{182^z$t#;_`m zm2cq#gq|rWHOQhZI6ph{((0w<1MH=8wV zGboHJ@Wh-<0rkRHpXAyQ1CH+Ea6N(}`-@s6{%!p)&p&^ZAD%JIZs%qbn91>3sfmZU z0{oZz+xVB>-&WBFrf%8W+xd$mdjc=>XMzQ`4s`_O9z6D8$ zK$q|J@`-Z=R7P=q>}pLL-y$Z*z6%XL8ha#U-V8=RD**T&QhIkztF==3O~pZ*f9Km; z@%?-K4k2@@@6o5X?xZ>wa#xuo=Tm9y99nbUK`j^~w&k!VSfCT#2wCAJ>&MkbBZ=wd z#;mzdPP|KiKh1cs@#~;O*eKN-c|C5{?sv@i27On7qej!fJ7YTLOx*D#@1)ip#{tQf z?!2HY0}*C2NZz{RWLhUc$zb7M;9qAjMG&kQGnkkK|0(yOR30;d!jpbG>gl!p6cY&C zf?RLvT(@Vu?Ll42^oCzX@DFbYTJ&v-|E6At%U#&7dL#SW1^ychdTxth?@zDrpF8r} zslCh&chv3Szd?(8>RiN(yMzBQr5=8nj2%j^3oGqv$WkU{+x-{NBEz^I^Zg=-g8bn2 zNc~TP{r$q6r0VU%ods3^ucYfiC(~>ze`P3r0^U52uVZZ=2iJsf*jH4$C zoPkG^+dIsX&}3L{Xd$3KwZ;rB5PsB}2{Wc$T?xp~^LN?#OAkIf8tF?Cowupd)exqf z-iwIKmn+atgJ%G2HAC5=V1qd+ot1D3Uq=2NB9HS%mDT>fH(M;0mNi*>=_(y+WAmCJ1^CFlI3aC$*%VqcrTJY$q)Li zNix~9pIno(W6S^kTEDh@FX5c3G+6wSNS{jn`1zz%Jb7IzohF&aI9pQ5+|G_$*zLA9 zyZO$m&Aq*Rchk-7Y;ERuw|DmUbFEHie@iOFH5B)}Q9CcuhplXWJHN9(^K&x4zx!%4 zpW7_tWK4xzZhteE-z@Ap`JIDY;b3Pw`)Yq{XRF}6uQ#Mn9_HVzQ*b^FrlYa5m4j`& zJwU%R*xS7JXuw~k@aC>_HRw-1jg#x?0G$=LA|e|i70l)839u)q*pxyLGWu*lgtr?aghV ztAFP0b}kB0GYlIF{#~-%Y4NPiQ**PB-OIl!yqfbRnagc&Z{`5F9S4RSdX_I7Z@#(EZ~aPtNEWsZcJ|@_>^}X-IJOx7jCI~Z8h~qu6YOQ2 z^Y<7U#mQ!~POa29r&CA9k$r=#$Ss>~*;PRN7<;(QNGt1-tuK;#*NN#CF^z5qygIW5Oy60m%8J0M6!AdPOnBr`O{{epfmbxEtQ(ttWCxjOS>CA}V+ zlAq;@%0_aY`r!m{B>Ho$Ivv%;6CFEG;2`8gjH@`I#a4RrelVU~j@dv6sO*@a!twPP!pyPG%8iFuE zQ>5<#BKiX>lv+!Er7otI&VLs6chb=(1%Z!b2~AL0b&6?PGnC3%wA(OXbufztovH_2 zr`~RX3|}0LTDR3<2?!_l8n|F;Z|iiNg;8|f5n0$uc4xZqg8}j4JbPPToSMmh{|kS9 z1N>1i|9=KHLq)Ukbck{1WSfhkWaOmoVMp!h2*GWd^P$C&w?iD+nkaArd|d^^;RRKA z(rnoLmJy2DD`6rW_O3;Vm?f#Ty5jdKCTC4cGnmjh(ZZ3reirn+ua({xVSpITE+t3W z44;(^Z@>*#^%FxTTJm4zDLpLW>Z<~Mg#8UZZ!xp>K1(1*p49_K?6k-cv5yCP471T+ z=V*cg6K*1fTt1HiY!2ih`o5@QeKJ>hcb(V z&yn*);@Wd>5cmiUo&U<+=P zaZ2OVsTC`4O1M^Fe)=kR+%DF)N>@*%Me)W|Cjh&%Vxv(!err{-CRMejRw2!=6o3MY zHTACe9X$pB?AgfeJE-)t4Q<0DK8zx*8# zTsl2DJx1PW@l$Sh-q|^NiA+Y`@wQYE z4Na|B1`%Ga?VY6R;ji#t_3Q+LQ6Dh({%eMgO@D=kpmAX9l??Zi!Gc-D8UAe_l4cqN zit_1U7#OA`0wZ883QVQ+?P9<{K>`No30C5FQq4(F=Yt9#!yP()pvYCDgg(adDz*7q;{IF};V4xm>F^ zh%h{v4&%>R58A7brIU?CU#VP4r*qXB4v{L8Pm~r{X+#Yb#W9y9C7Q$+t&XaT33X#^ z9iS8u`HtoepRan_$N@etcU_NK3sKRuyq=wxFwt)(GAQsR+6iUmJcVPQy=(SmyVN5H zsenldMA~)TzSkeSoHRj9x6!Ro`fU3TRR%NMn>kW#!>0e;yE7;GcNZ-U{`R#DMtuML zN+n_=(KtW+<5)m1X#aWXjUUSXGq<(1w;Q(q#J{T@YV^;u{U@-e6JzCxw$22;R2?7L5SS#U1Z1}v(rJ1!@8W4p?sfhuHr>HF&bSaU# zkF(MEkf~iNo<{e*sI#os$|py!wsL!ibVr%W?`F4N<+hydSK0jD&URX^W9j~o%H|Hw z$`xSfHNbZ&zq3==&cnI!m9x87$n9+vvU?eNn0uAo-Is^??Eao^Xe->Q^F6?l-Ej)p zU1uw6if)S)4u9M6ReT4>^YZ)Z*~d54N-CAw$vOGmR~h<~%k1o!Kl1QZI+NOg!|U!| zW@p>{$!F-H{3&F13h-x(zisoM9saY+fA-SQP>PD}a%rfvW&X&+-E>+HV>d8jfq4s{ z%VoBAob4SznX{eCJ+HuZESNJ z|6*&<@;3K|rA(WzW+9ntLyG`0z|CzyyND5lZ3p|=qTced z+K-qWs7L{v0(Q-Gg!UtlibYd7ki_6E9QvIC{>eKqkDyEZM(@(;WI#*KYfP52r%%#y z+`!d?tmhK1Y1M=+y?fvIm<)&@Q56C>)Ksx)QxKd1CaK-Dui;lg9oclW+3~KJ3%7cj z4b6wz!X%I&os6=6A$AmH0JDId%XrcpkGxLmGEJXbW4w`oZ<=F;u4knq;@0Liu-!v5 zfPl#gww!Tpex3yFRrE-YE`2wO@$k&G_4vJa-{1ddLHUn!lHE}RoFo6`b6a8mpS}FE z{P!3?OL*bbkKdNw6(v0#nlZk6U#&H?h$XKRP}cc_`iTf z;#=T7hpje7M@sV8k_QJP z_fo$wV`@z%JPP;#sPZ~gkfT7sBUqZjk+o2pbTOT{(jk5q@RJ(Z+#d~doo{Ecqv;hU zQjrHJ=)yy9+!+mqLpX(N=Ey~#8RQrLvmpQfY2fwmtN@tJ|F^daJK^*H*7mdi=VSc* zI7FYwi@~S^d@R4tUwd93ILIws&9*&n{YQMrmRjY;M~rJfc4wT@F@X|^oFHSidbj^l z2Vjbb4Sb5eNMH{THH($v*~jlo5w=&yunCAAp9#5Q88@=13gV^L$NYOZNu9~fK<>$+ zbkBMp$v5kgW+Yy_q8BWI#j|7BdF9iVx-;D;X^k+V??67hVr&?In?X5(-9!> z=H>?jcC{4s=e!iqkDNk!&QKq{-#Bvf;X+s9vqi>%ZPGmK3|!VZV+4O|BHd%EL=EV? zjwh28TJV#}&b=nfJvsnX^;?ta2o8@+tc?gLDn&SM70(zHxwZ12r0!D}HTp)GCt7=2 z^_pH}M{b#Qr!+rkqbiN#pDaYg&#@?G<8#0+PRKcn@pA}U+>uq>Wsb1PY*EsTKUb}#)A+4p1r{EyBG;+<)c5vTd@Zp{XKhu z(c_SXnRmV3g!7wqJU#(!Zu;3j731wwlu7r%P`Oe8nC8Q-w`*wTYbSqCjIFp=!cdTX ztQ1X)uJ6^NX~n$~nnHYLrFdGD5v&$ZEAEx>6l6#%Mbn}jW3^~naj&rl78G7$4lRUA zV=LpdTm5k9hd9LaME>YK)G=m$2Qd6WzjuqCiHrx$<5!M`cp_g5nDCdJ7w`xpfM2X$ zX1{x%Xa%IvL;tH2HF~#^OAuho#R!6Ae}xeSd%fFPIJ;_n<|7vz+2Hh^qMnvGuR+~z zkKu;Dn(#0x^c()1L`@{g`tVVY3MNe9@CiULdoHyJ@BNU?t_DSUOl$-_BLaunBbgpT z=eF}TOZ}0@wSN2XNx*P-+|UO76cF?XfZ*lm^nyHZcr#=lPTmZOgN0cbo?e3+DYbA9 zoYO8gbEuYYJZxWSOL>5+?Ou3(pw8pOS4t)RY0&GSrzN6yx$R;6OFsLV|J<&}&6?_Y zL&@UCFABXlq2~TRez*-|q7WD*bRi6irWSP^8Z12xZYNI@#)uQwU1@=f2G-S9U~ub} z(5lAN#*wsxZn>~>;W0Kt@M8#~b+g`e<&oRXU2!^iCmV*&OjtH%Xij6W(qR@fo=3=GC&=Wa-uai}@2RqORgar|CqrDdCaC=K6e z>OQ0@Z$|SErHs4(i0<0_L#fT~Kcc%f|4atLk|* z{A77(R?Tu&4Z&)-((in8;pG7#0D(+`;^~Ms3yEdncw3Xa zKk`@rK3hHv>X{2!H2pkMF?sb(E1&0$$LeB`%@S(;_X0LdmZr^ikyVhu|HmqT~|Mqn}CRgU0J&E9PU7K>cv2=3JE-9}(BvsI4ZPR-tJ z1eTa*x>_3GMOslekrX0m(8b&WpGK~`dDFU843bj_+KW4AhC)@Au+iCCoOOx9yno$J zhhJ|I{(+^@9pV=L4Q)bOQQP3-1F)cUFax$l4P|1=X;1~yB?N}wA1G_WS@$9@gEu9Q zh~*f~!0(IYdjb`Q<)EF=BceG*UGe*(`JO<q8$!SCu>@uK5-R95^*K*b>W z0nQ+c4(L&(w?_iXcOiLJY?RPxoHB{K{q`arX5(Hq%1%9_8&emEC*^vhTtVYoRY9%{ z#u-dkM>hq^rDU9?yNzB}+yi>-yq!nqfN?KuGTqCzgZOI+jU+wKXoSl}i z{%ULgB45~X^B0}=?$*U#zEH@u+nwFLoo?&ZPNAJEyz037ZcAIf294BPXg6%EkIjn< z^0sIpv=~fT0&J!wei6Jt=v!I5V>ohB7r}DI!ES(I{KgaSsx?vZ`!LkC+jHf9-Gi6y zu`h(?@Up4jDD+KQGb1MH7=Joa6kfbTm7&Bq$z|}{1VeGs*KAH&9?WW#K<&1sJxqu< zo*3z3fvfHKdvz5~fZD%oO+EobvQQBbUxhr%pnu6fW6G`=o)tCs_phbB-#c2)^Uw3o w^Uw3o^Uw3o^Uw3o^Uw3o^Uw3o^Uw3o^Uw3o^Uw3oAM5A;18FTC4glB*03B~#-T(jq literal 0 HcmV?d00001 -- Gitee