From 05d2723c376e6fe91989c4aba06b5833e8152fa9 Mon Sep 17 00:00:00 2001 From: Vladyslav Goncharuk Date: Thu, 19 Sep 2024 14:56:23 +0300 Subject: [PATCH] [ISSUE-31] Grouped view highlighting - Introduce the 'grouped view highlighting' feature - Update development documentation - Update documentation - Improve the CTreeItem::sort efficiency - Rename CTreeItem::mSortedChildren to CTreeItem::mChildrenVec to reflect the meaning of the field. The collection is not always sorted - Remove the sorting of the grouped view during the search's execution. Sorting is now done only at the end of the search. - Extend CTreeItem::addData with the tAfterAppendHandleLeafFunc parameter that is called at the end of the append operation - Add signal IDLTMessageAnalyzerController::analysisFinished - Move to call IDLTMessageAnalyzerController::analysisStarted inside of the CContinuousAnalyzer - Rename IFileWrapper::getMsgRealPos to IFileWrapper::getMsgIdFromIndexInMainTable to reflect its real meaning. - Add DMA Plant UML force link to IRegexHistoryProvider class - Refactor the CSettingsManager to provide old and new data to the setting data callback - Fix the issue with regex history not changing on the regex patterns file selection - Add reset of the generated plot during canceling the search operation Signed-off-by: Vladyslav Goncharuk --- .../src/common/CTreeItem.cpp | 63 ++++--- .../src/common/CTreeItem.hpp | 16 +- .../src/common/Definitions.cpp | 39 +++- .../src/common/Definitions.hpp | 8 +- .../api/IDLTMessageAnalyzerController.hpp | 8 +- .../analyzer/src/CContinuousAnalyzer.cpp | 7 +- .../components/analyzer/src/CMTAnalyzer.cpp | 8 +- .../IDLTMessageAnalyzerControllerConsumer.cpp | 1 - .../filtersView/src/CFiltersModel.cpp | 8 +- .../groupedView/api/CGroupedView.hpp | 4 + .../groupedView/api/IGroupedViewModel.hpp | 8 +- .../groupedView/src/CGroupedView.cpp | 50 ++++++ .../groupedView/src/CGroupedViewModel.cpp | 102 ++++++++--- .../groupedView/src/CGroupedViewModel.hpp | 5 +- .../components/groupedView/src/CMakeLists.txt | 3 +- .../groupedView/src/IGroupedViewModel.cpp | 3 +- .../logsWrapper/api/IFileWrapper.hpp | 11 +- .../logsWrapper/src/CDLTFileWrapper.cpp | 12 +- .../logsWrapper/src/CDLTFileWrapper.hpp | 2 +- .../logsWrapper/src/IFileWrapper.cpp | 2 +- .../plotView/src/CCustomPlotExtended.cpp | 2 +- .../src/CRegexHistoryComponent.cpp | 5 + .../src/IRegexHistoryProvider.cpp | 4 + .../searchView/api/CSearchResultView.hpp | 9 + .../searchView/api/ISearchResultModel.hpp | 7 +- .../components/searchView/src/CMakeLists.txt | 3 +- .../src/CSearchResultHighlightingDelegate.cpp | 84 ++++++--- .../searchView/src/CSearchResultModel.cpp | 24 ++- .../searchView/src/CSearchResultModel.hpp | 12 +- .../searchView/src/CSearchResultView.cpp | 158 +++++++++++++++++ .../settings/src/CSettingsManager.cpp | 122 +++++++------ .../components/settings/src/TSettingItem.hpp | 14 +- .../src/dltmessageanalyzerplugin.cpp | 62 +++++++ .../src/plugin/src/CDLTMessageAnalyzer.cpp | 7 + md/dev_docs/puml/DMA_Analyzer_API.puml | 2 +- md/dev_docs/puml/DMA_Analyzer_API.svg | 56 +++--- md/dev_docs/puml/DMA_LogsWrapper.puml | 2 +- md/dev_docs/puml/DMA_LogsWrapper.svg | 30 ++-- md/dev_docs/puml/DMA_LogsWrapper_API.puml | 2 +- md/dev_docs/puml/DMA_LogsWrapper_API.svg | 64 +++---- .../puml/DMA_LogsWrapper_API_standalone.puml | 2 +- .../puml/DMA_LogsWrapper_API_standalone.svg | 26 +-- .../puml/DMA_LogsWrapper_standalone.puml | 2 +- .../puml/DMA_LogsWrapper_standalone.svg | 22 +-- md/dev_docs/puml/DMA_Plugin_API.puml | 2 +- md/dev_docs/puml/DMA_Plugin_API.svg | 88 +++++----- md/dev_docs/puml/DMA_SearchView.puml | 4 +- md/dev_docs/puml/DMA_SearchView.svg | 52 +++--- md/dev_docs/puml/DMA_SearchView_API.puml | 7 +- md/dev_docs/puml/DMA_SearchView_API.svg | 71 ++++---- .../puml/DMA_SearchView_standalone.puml | 3 - .../puml/DMA_SearchView_standalone.svg | 35 ++-- md/dev_docs/puml/Qt.puml | 2 +- md/dev_docs/puml/Qt.svg | 166 +++++++++--------- md/grouped_view/chrome-capture-2024-9-19.gif | Bin 0 -> 1209954 bytes md/grouped_view/grouped_view.md | 42 ++++- .../grouped_view_item_selection.png | Bin 0 -> 98802 bytes .../highlight_in_search_view_option.png | Bin 0 -> 93573 bytes md/grouped_view/highlighting_activated.png | Bin 0 -> 166360 bytes .../highlighting_feature_in_action.gif | Bin 0 -> 677578 bytes .../jump_between_highlighted_messages.png | Bin 0 -> 120635 bytes md/grouped_view/remove_highlighting.png | Bin 0 -> 121652 bytes 62 files changed, 1050 insertions(+), 503 deletions(-) create mode 100644 md/grouped_view/chrome-capture-2024-9-19.gif create mode 100644 md/grouped_view/grouped_view_item_selection.png create mode 100644 md/grouped_view/highlight_in_search_view_option.png create mode 100644 md/grouped_view/highlighting_activated.png create mode 100644 md/grouped_view/highlighting_feature_in_action.gif create mode 100644 md/grouped_view/jump_between_highlighted_messages.png create mode 100644 md/grouped_view/remove_highlighting.png diff --git a/dltmessageanalyzerplugin/src/common/CTreeItem.cpp b/dltmessageanalyzerplugin/src/common/CTreeItem.cpp index 0b5bb7a1..a20b380a 100644 --- a/dltmessageanalyzerplugin/src/common/CTreeItem.cpp +++ b/dltmessageanalyzerplugin/src/common/CTreeItem.cpp @@ -11,6 +11,8 @@ #include "DMA_Plantuml.hpp" +const int sInvalidIdx = -1; + //CTreeItem void CTreeItem::visit( const tVisitFunction& preVisitFunction, const tVisitFunction& postVisitFunction, @@ -178,7 +180,7 @@ bool CTreeItem::visitInternal( const tVisitFunction& preVisitFunction, if(true == visitSorted) { - for( auto pChild : mSortedChildren ) + for( auto pChild : mChildrenVec ) { if(nullptr != pChild) { @@ -262,20 +264,13 @@ void CTreeItem::sort(int column, Qt::SortOrder order, bool recursive) if(false == mbFirstLevelSorted) { - QVector children; - - for(const auto& pChild : mChildItems) - { - children.push_back(pChild); - } - if(mSortingFunction) { - mSortedChildren = mSortingFunction(children, mSortingColumn, mSortOrder); + mSortingFunction(mChildrenVec, mSortingColumn, mSortOrder); int counter = 0; - for(auto& sortedChild : mSortedChildren) + for(auto& sortedChild : mChildrenVec) { sortedChild->setIdx(counter++); } @@ -288,7 +283,7 @@ void CTreeItem::sort(int column, Qt::SortOrder order, bool recursive) { if( false == mbWholeSorted ) { - for( auto& child : mSortedChildren ) + for( auto& child : mChildrenVec ) { child->sort(mSortingColumn, mSortOrder, recursive); } @@ -361,10 +356,10 @@ bool CTreeItem::isFirstLevelSorted() const tTreeItemPtr CTreeItem::child(int row) { - if (row < 0 || row >= mSortedChildren.size()) + if (row < 0 || row >= mChildrenVec.size()) return nullptr; - return mSortedChildren[row]; + return mChildrenVec[row]; } @@ -392,11 +387,11 @@ void CTreeItem::removeChild( const QString& key ) { if(true == mbFirstLevelSorted) { - mSortedChildren.erase(mSortedChildren.begin() + foundChild.value()->getIdx()); + mChildrenVec.erase(mChildrenVec.begin() + foundChild.value()->getIdx()); auto counter = 0; - for( auto& pChild : mSortedChildren ) + for( auto& pChild : mChildrenVec ) { if(nullptr != pChild) { @@ -412,7 +407,7 @@ void CTreeItem::removeChild( const QString& key ) CTreeItem::~CTreeItem() { - mSortedChildren.clear(); + mChildrenVec.clear(); qDeleteAll(mChildItems); } @@ -428,10 +423,11 @@ CTreeItem::CTreeItem(CTreeItem *pParent, mFindFunc(findFunc), mHandleDuplicateFunc(handleDuplicateFunc), mData(), - mSortedChildren(), + mChildrenVec(), mpGuard(std::make_shared(0)), mpParentItem(pParent), mSortOrder(Qt::SortOrder::DescendingOrder), + mIdx(sInvalidIdx), mSortingColumn(defaultSortingColumn), mbFirstLevelSorted(true), mbWholeSorted(true) @@ -445,7 +441,14 @@ tTreeItemPtr CTreeItem::appendChild(const tDataItem& key, const tData& additionI mHandleDuplicateFunc, mFindFunc); - mChildItems.insert(key, pTreeItem); + auto it = mChildItems.insert(key, pTreeItem); + + if(it.value()->getIdx() == sInvalidIdx) + { + mChildrenVec.push_back(pTreeItem); + pTreeItem->setIdx(mChildItems.size()); + } + mbFirstLevelSorted = false; mbWholeSorted = false; @@ -488,10 +491,12 @@ tDataItem& CTreeItem::getWriteableData( int column ) void CTreeItem::addDataInternal( const tDataVec& dataVec, tTreeItemPtrVec& res, - int dataVecItemIdx ) + int dataVecItemIdx, + tAfterAppendHandleLeafFunc afterAppendHandleLeafFunc ) { if(false == dataVec.empty() ) { + tTreeItemPtr pLeafChild = nullptr; const tData& additionItems = dataVec[static_cast(dataVecItemIdx)]; if(false == additionItems.empty()) @@ -504,6 +509,8 @@ void CTreeItem::addDataInternal( const tDataVec& dataVec, { auto foundChild = findRes.pItem; + pLeafChild = foundChild; + if(mHandleDuplicateFunc) { mHandleDuplicateFunc( foundChild, *dataVec.begin() ); @@ -512,7 +519,7 @@ void CTreeItem::addDataInternal( const tDataVec& dataVec, auto newDataVecItemIdx = ++dataVecItemIdx; if(static_cast(newDataVecItemIdx) < dataVec.size() ) { - foundChild->addDataInternal( dataVec, res, newDataVecItemIdx ); + foundChild->addDataInternal( dataVec, res, newDataVecItemIdx, afterAppendHandleLeafFunc ); } } } @@ -522,10 +529,12 @@ void CTreeItem::addDataInternal( const tDataVec& dataVec, if(pChild) { + pLeafChild = pChild; + auto newDataVecItemIdx = ++dataVecItemIdx; if( static_cast(newDataVecItemIdx) < dataVec.size() ) { - pChild->addDataInternal( dataVec, res, newDataVecItemIdx ); + pChild->addDataInternal( dataVec, res, newDataVecItemIdx, afterAppendHandleLeafFunc ); } res.push_back( pChild ); @@ -535,15 +544,23 @@ void CTreeItem::addDataInternal( const tDataVec& dataVec, mbFirstLevelSorted = false; mbWholeSorted = false; } + + if(nullptr != pLeafChild && + 0 == pLeafChild->childCount() && + afterAppendHandleLeafFunc) + { + afterAppendHandleLeafFunc(pLeafChild); + } } } -tTreeItemPtrVec CTreeItem::addData( const tDataVec& dataVec ) +tTreeItemPtrVec CTreeItem::addData( const tDataVec& dataVec, + tAfterAppendHandleLeafFunc afterAppendHandleLeafFunc ) { tTreeItemPtrVec result; result.reserve( static_cast(dataVec.size()) ); - addDataInternal(dataVec, result, 0); + addDataInternal(dataVec, result, 0, afterAppendHandleLeafFunc); tTreeItemPtrVec reversedResult; reversedResult.reserve(result.size()); diff --git a/dltmessageanalyzerplugin/src/common/CTreeItem.hpp b/dltmessageanalyzerplugin/src/common/CTreeItem.hpp index 481c540d..aec57e13 100644 --- a/dltmessageanalyzerplugin/src/common/CTreeItem.hpp +++ b/dltmessageanalyzerplugin/src/common/CTreeItem.hpp @@ -24,7 +24,9 @@ class CTreeItem typedef std::function tHandleDuplicateFunc; typedef QVector tChildrenVector; - typedef std::function< tChildrenVector(const tChildrenVector&, const int& /*sortingColumn*/, Qt::SortOrder) > tSortingFunction; + typedef std::function< void(tChildrenVector&, const int& /*sortingColumn*/, Qt::SortOrder) > tSortingFunction; + + typedef std::function tAfterAppendHandleLeafFunc; /** * @brief tFindItemResult - result of search of the element. @@ -202,10 +204,13 @@ class CTreeItem /** * @brief addData - adds data to the tree * @param dataVec - data to ba added + * @param afterAppendHandleLeafFunc - optional functionl object. It will be called + * with the 'leaf' tree item of the append operation when it is over * @return - returns tTreeItemPtrVec, which represents all added elements. * Note! Elements are sorted from most bottom-level to most top-level */ - tTreeItemPtrVec addData( const tDataVec& dataVec ); + tTreeItemPtrVec addData( const tDataVec& dataVec, + tAfterAppendHandleLeafFunc afterAppendHandleLeafFunc = tAfterAppendHandleLeafFunc() ); /** * @brief data - get's data of this node by specified column @@ -236,7 +241,10 @@ class CTreeItem private: - void addDataInternal( const tDataVec& dataVec, tTreeItemPtrVec& res, int dataVecItemIdx ); + void addDataInternal( const tDataVec& dataVec, + tTreeItemPtrVec& res, + int dataVecItemIdx, + tAfterAppendHandleLeafFunc afterAppendHandleLeafFunc ); CTreeItem(const CTreeItem&) = delete; CTreeItem& operator=(const CTreeItem&) = delete; @@ -259,7 +267,7 @@ class CTreeItem tFindItemFunc mFindFunc; tHandleDuplicateFunc mHandleDuplicateFunc; tData mData; - QVector mSortedChildren; + QVector mChildrenVec; tGuarded mpGuard; tTreeItemPtr mpParentItem; Qt::SortOrder mSortOrder; diff --git a/dltmessageanalyzerplugin/src/common/Definitions.cpp b/dltmessageanalyzerplugin/src/common/Definitions.cpp index 821ff9e4..0ca40b78 100644 --- a/dltmessageanalyzerplugin/src/common/Definitions.cpp +++ b/dltmessageanalyzerplugin/src/common/Definitions.cpp @@ -920,7 +920,7 @@ fieldRanges(rhs.fieldRanges), pUMLInfo(rhs.pUMLInfo == nullptr ? nullptr : std::make_unique(*rhs.pUMLInfo)), pPlotViewInfo(rhs.pPlotViewInfo == nullptr ? nullptr : std::make_unique(*rhs.pPlotViewInfo)), msgId(rhs.msgId), -msgIdFiltered(rhs.msgIdFiltered), +msgIdxInMainTable(rhs.msgIdxInMainTable), strSize(rhs.strSize), timeStamp(rhs.timeStamp), msgSize(rhs.msgSize) @@ -938,7 +938,7 @@ tItemMetadata& tItemMetadata::operator= (const tItemMetadata& rhs) pUMLInfo = rhs.pUMLInfo == nullptr ? nullptr : std::make_unique(*rhs.pUMLInfo); pPlotViewInfo = rhs.pPlotViewInfo == nullptr ? nullptr : std::make_unique(*rhs.pPlotViewInfo); msgId = rhs.msgId; - msgIdFiltered = rhs.msgIdFiltered; + msgIdxInMainTable = rhs.msgIdxInMainTable; strSize = rhs.strSize; timeStamp = rhs.timeStamp; msgSize = rhs.msgSize; @@ -947,14 +947,14 @@ tItemMetadata& tItemMetadata::operator= (const tItemMetadata& rhs) } tItemMetadata::tItemMetadata( const tMsgId& msgId_, - const tMsgId& msgIdFiltered_, + const tMsgId& msgIdxInMainTable_, const tFieldRanges& fieldRanges_, const int& strSize_, const std::uint32_t& msgSize_, const unsigned int& timeStamp_): fieldRanges(fieldRanges_), msgId(msgId_), - msgIdFiltered(msgIdFiltered_), + msgIdxInMainTable(msgIdxInMainTable_), strSize(strSize_), timeStamp(timeStamp_), msgSize(msgSize_) @@ -1407,6 +1407,34 @@ matchedItemVec(matchedItemVec_) } +int tFoundMatchesPack::findRowByMsgId(const tMsgId& msgIdToFind) const +{ + int left = 0; + int right = static_cast(matchedItemVec.size()) - 1; + + while (left <= right) + { + int mid = left + (right - left) / 2; + tMsgId midMsgId = matchedItemVec[mid]->getItemMetadata().msgId; + + if (midMsgId == msgIdToFind) + { + return mid; + } + else if (midMsgId < msgIdToFind) + { + left = mid + 1; + } + else + { + right = mid - 1; + } + } + + // Item not found + return -1; +} + QString getName(eSearchResultColumn val) { QString result; @@ -1579,8 +1607,7 @@ bool tGroupedViewMetadata::operator== (const tGroupedViewMetadata& rhs) const tGroupedViewMetadata::tGroupedViewMetadata( const unsigned int timeStamp_, const tMsgId& msgId_ ): timeStamp(timeStamp_), msgId(msgId_) -{ -} +{} QString getName(eGroupedViewColumn val) { diff --git a/dltmessageanalyzerplugin/src/common/Definitions.hpp b/dltmessageanalyzerplugin/src/common/Definitions.hpp index 9f69d238..93ba13ac 100644 --- a/dltmessageanalyzerplugin/src/common/Definitions.hpp +++ b/dltmessageanalyzerplugin/src/common/Definitions.hpp @@ -10,6 +10,7 @@ #include #include "QMap" +#include "QSet" #include "QString" #include "QVector" #include "QMetaType" @@ -88,6 +89,7 @@ extern const QString sDefaultRegexFileName; typedef int tMsgId; extern const tMsgId INVALID_MSG_ID; +typedef std::set tMsgIdSet; typedef std::int32_t tHighlightingRangeItem; @@ -244,6 +246,7 @@ struct tGroupedViewMetadata tGroupedViewMetadata( const unsigned int timeStamp_, const tMsgId& msgId_ ); tTimeStamp timeStamp; tMsgId msgId; + nonstd::variant relatedMsgIds = 0; }; Q_DECLARE_METATYPE(tGroupedViewMetadata) @@ -573,7 +576,7 @@ struct tItemMetadata tItemMetadata(const tItemMetadata& rhs); tItemMetadata& operator= (const tItemMetadata& rhs); tItemMetadata( const tMsgId& msgId_, - const tMsgId& msgIdFiltered_, + const tMsgId& msgIdxInMainTable_, const tFieldRanges& fieldRanges_, const int& strSize_, const std::uint32_t& msgSize_, @@ -607,7 +610,7 @@ struct tItemMetadata std::unique_ptr pUMLInfo = nullptr; std::unique_ptr pPlotViewInfo = nullptr; tMsgId msgId; - tMsgId msgIdFiltered; + tMsgId msgIdxInMainTable; int strSize; unsigned int timeStamp; std::uint32_t msgSize; @@ -638,6 +641,7 @@ struct tFoundMatchesPack { tFoundMatchesPack(); tFoundMatchesPack( const tFoundMatchesPackItemVec& matchedItemVec_ ); + int findRowByMsgId(const tMsgId& msgIdToFind) const; tFoundMatchesPackItemVec matchedItemVec; }; diff --git a/dltmessageanalyzerplugin/src/components/analyzer/api/IDLTMessageAnalyzerController.hpp b/dltmessageanalyzerplugin/src/components/analyzer/api/IDLTMessageAnalyzerController.hpp index 42e39eaf..7487b45f 100644 --- a/dltmessageanalyzerplugin/src/components/analyzer/api/IDLTMessageAnalyzerController.hpp +++ b/dltmessageanalyzerplugin/src/components/analyzer/api/IDLTMessageAnalyzerController.hpp @@ -71,9 +71,15 @@ class IDLTMessageAnalyzerController: public QObject * @brief analysisStarted - signal, which notifies client about the start of the analysis. * @param requestId - the request id of the search * @param usedRegex - the regex with which the anlysis was started - * @oaram selectedAliases - the selected regex alises that were used to form the search query + * @param selectedAliases - the selected regex alises that were used to form the search query */ void analysisStarted( const tRequestId& requestId, const QString& usedRegex, const QStringList& selectedAliases ); + + /** + * @brief analysisFinished - signal, which notifies client about the finish of the analysis. + * @param requestId - the request id of the search + */ + void analysisFinished( const tRequestId& requestId ); }; typedef std::shared_ptr tDLTMessageAnalyzerControllerPtr; diff --git a/dltmessageanalyzerplugin/src/components/analyzer/src/CContinuousAnalyzer.cpp b/dltmessageanalyzerplugin/src/components/analyzer/src/CContinuousAnalyzer.cpp index 4bcb00bd..7df8de0b 100644 --- a/dltmessageanalyzerplugin/src/components/analyzer/src/CContinuousAnalyzer.cpp +++ b/dltmessageanalyzerplugin/src/components/analyzer/src/CContinuousAnalyzer.cpp @@ -80,6 +80,7 @@ void CContinuousAnalyzer::progressNotification( const tProgressNotificationData& if(eRequestState::ERROR_STATE == progressNotificationDataCopy.requestState || eRequestState::SUCCESSFUL == progressNotificationDataCopy.requestState) { + analysisFinished(foundRequest.key()); mRequestDataMap.erase(foundRequest); mSubRequestDataMap.erase(foundSubRequest); } @@ -89,6 +90,7 @@ void CContinuousAnalyzer::progressNotification( const tProgressNotificationData& if(eRequestState::ERROR_STATE == progressNotificationData.requestState || eRequestState::SUCCESSFUL == progressNotificationData.requestState) { + analysisFinished(foundRequest.key()); mRequestDataMap.erase(foundRequest); mSubRequestDataMap.erase(foundSubRequest); } @@ -200,6 +202,8 @@ tRequestId CContinuousAnalyzer::requestAnalyze( const std::weak_ptrgetMsgRealPos( msgIdxFiltered ); + auto msgIdxInMainTable = startRange + j; + auto msgIdx = pFile->getMsgIdFromIndexInMainTable( msgIdxInMainTable ); auto pMsg = pFile->getMsg(msgIdx); if(nullptr != pMsg) @@ -219,7 +219,7 @@ bool CMTAnalyzer::regexAnalysisIteration(tRequestMap::iterator& inputIt, const t } tItemMetadata itemMetadata( msgIdx, - msgIdxFiltered, + msgIdxInMainTable, fieldRanges, pStr->size(), pMsg->getSize(), @@ -231,7 +231,7 @@ bool CMTAnalyzer::regexAnalysisIteration(tRequestMap::iterator& inputIt, const t { qDebug() << "Failed to get msg with idx - " << startRange + j; tItemMetadata itemMetadata( msgIdx, - msgIdxFiltered, + msgIdxInMainTable, tFieldRanges(), 0, 0u, diff --git a/dltmessageanalyzerplugin/src/components/analyzer/src/IDLTMessageAnalyzerControllerConsumer.cpp b/dltmessageanalyzerplugin/src/components/analyzer/src/IDLTMessageAnalyzerControllerConsumer.cpp index 5e0ed8d4..4bbd5e9d 100644 --- a/dltmessageanalyzerplugin/src/components/analyzer/src/IDLTMessageAnalyzerControllerConsumer.cpp +++ b/dltmessageanalyzerplugin/src/components/analyzer/src/IDLTMessageAnalyzerControllerConsumer.cpp @@ -75,7 +75,6 @@ tRequestId IDLTMessageAnalyzerControllerConsumer::requestAnalyze( const tRequest } requestId = mpController.lock()->requestAnalyze(shared_from_this(), requestParameters, regexMetadata); - mpController.lock()->analysisStarted(requestId, requestParameters.regexStr, requestParameters.selectedAliases); mbGroupedViewFeatureActiveForCurrentAnalysis = bGroupedViewFeatureActive; } diff --git a/dltmessageanalyzerplugin/src/components/filtersView/src/CFiltersModel.cpp b/dltmessageanalyzerplugin/src/components/filtersView/src/CFiltersModel.cpp index 3a8053c2..ab159562 100644 --- a/dltmessageanalyzerplugin/src/components/filtersView/src/CFiltersModel.cpp +++ b/dltmessageanalyzerplugin/src/components/filtersView/src/CFiltersModel.cpp @@ -31,9 +31,9 @@ CFiltersModel::CFiltersModel(const tSettingsManagerPtr& pSettingsManager, mCompletionCache(), mVarGroupsMap() { - mSortingHandler = [](const QVector& children, - const int& sortingColumn, - Qt::SortOrder sortingOrder) -> QVector + mSortingHandler = [](QVector& children, + const int& sortingColumn, + Qt::SortOrder sortingOrder) { tTreeItem::tChildrenVector result; @@ -123,7 +123,7 @@ CFiltersModel::CFiltersModel(const tSettingsManagerPtr& pSettingsManager, break; } - return result; + children = result; }; connect(getSettingsManager().get(), &ISettingsManager::filterVariablesChanged, diff --git a/dltmessageanalyzerplugin/src/components/groupedView/api/CGroupedView.hpp b/dltmessageanalyzerplugin/src/components/groupedView/api/CGroupedView.hpp index 4d4849c4..a58849d9 100644 --- a/dltmessageanalyzerplugin/src/components/groupedView/api/CGroupedView.hpp +++ b/dltmessageanalyzerplugin/src/components/groupedView/api/CGroupedView.hpp @@ -21,6 +21,9 @@ class CGroupedView : public QTreeView, void copyGroupedViewSelection() const; void setModel(QAbstractItemModel *model) override; +signals: + void searchViewHighlightingRequested(const tMsgIdSet& msgIDs); + protected: virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector &roles = QVector()) override; void keyPressEvent ( QKeyEvent * event ) override; @@ -32,6 +35,7 @@ class CGroupedView : public QTreeView, void changeLevelExpansion(const QModelIndex& expandIdx, bool bExpand); void updateColumnsVisibility(); void updateWidth(); + void highlightLines(); private: enum class eUpdateRequired diff --git a/dltmessageanalyzerplugin/src/components/groupedView/api/IGroupedViewModel.hpp b/dltmessageanalyzerplugin/src/components/groupedView/api/IGroupedViewModel.hpp index 9aa4f7b7..fd416482 100644 --- a/dltmessageanalyzerplugin/src/components/groupedView/api/IGroupedViewModel.hpp +++ b/dltmessageanalyzerplugin/src/components/groupedView/api/IGroupedViewModel.hpp @@ -4,11 +4,13 @@ #include "common/Definitions.hpp" -class IGroupedViewModel +class IGroupedViewModel : public QAbstractItemModel { + Q_OBJECT + public: - IGroupedViewModel(); + IGroupedViewModel(QObject* pParent = nullptr); virtual ~IGroupedViewModel(); virtual void setUsedRegex(const QString& regex) = 0; @@ -16,4 +18,6 @@ class IGroupedViewModel virtual void addMatches( const tFoundMatches& matches, bool update ) = 0; virtual int rowCount(const QModelIndex &parent = QModelIndex()) const = 0; virtual std::pair exportToHTML(QString& resultHTML) = 0; + virtual tMsgIdSet getAllMessageIds(const QModelIndex& index) = 0; + virtual void sortByCurrentSortingColumn() = 0; }; diff --git a/dltmessageanalyzerplugin/src/components/groupedView/src/CGroupedView.cpp b/dltmessageanalyzerplugin/src/components/groupedView/src/CGroupedView.cpp index 26d2c963..2654c111 100644 --- a/dltmessageanalyzerplugin/src/components/groupedView/src/CGroupedView.cpp +++ b/dltmessageanalyzerplugin/src/components/groupedView/src/CGroupedView.cpp @@ -20,6 +20,8 @@ #include "components/log/api/CLog.hpp" #include "components/settings/api/ISettingsManager.hpp" +#include "../api/IGroupedViewModel.hpp" + #include "DMA_Plantuml.hpp" class CDoubleDelegate: public QStyledItemDelegate @@ -59,6 +61,11 @@ namespace NShortcuts { return pEvent && pEvent->modifiers() & Qt::ControlModifier && pEvent->modifiers() & Qt::ShiftModifier && pEvent->key() == Qt::Key_E; } + + static bool isHighlightLinesShortcut( QKeyEvent * pEvent ) + { + return pEvent && pEvent->modifiers() & Qt::ControlModifier && pEvent->key() == Qt::Key_H; + } } //CIndexWrapper @@ -217,6 +224,8 @@ CGroupedView::CGroupedView(QWidget *parent): isExpanded(index)? collapse(index) : expand(index); } }); + + setUniformRowHeights(true); } void CGroupedView::handleSettingsManagerChange() @@ -424,12 +433,49 @@ void CGroupedView::handleSettingsManagerChange() } } + contextMenu.addSeparator(); + + { + auto selectedRows = selectionModel()->selectedRows(); + + if(1 == selectedRows.size()) // if one row is selected + { + { + QAction* pAction = new QAction("Highlight in search view", this); + pAction->setShortcut(QKeySequence(tr("Ctrl+H"))); + connect(pAction, &QAction::triggered, [this]() + { + highlightLines(); + }); + + contextMenu.addAction(pAction); + } + } + } + contextMenu.exec(mapToGlobal(pos)); }; connect( this, &QWidget::customContextMenuRequested, showContextMenu ); } +void CGroupedView::highlightLines() +{ + auto selectedRows = selectionModel()->selectedRows(); + + if(1 == selectedRows.size()) // if one row is selected + { + auto& selectedRow = selectedRows[0]; + auto* pModel = model(); + + if(nullptr != pModel) + { + auto* pSpecificModel = static_cast(pModel); + searchViewHighlightingRequested(pSpecificModel->getAllMessageIds(selectedRow)); + } + } +} + void CGroupedView::setModel(QAbstractItemModel *model) { tParent::setModel(model); @@ -672,6 +718,10 @@ void CGroupedView::keyPressEvent ( QKeyEvent * event ) changeLevelExpansion(selectedRow, true); } } + else if(true == NShortcuts::isHighlightLinesShortcut(event)) + { + highlightLines(); + } else { tParent::keyPressEvent(event); diff --git a/dltmessageanalyzerplugin/src/components/groupedView/src/CGroupedViewModel.cpp b/dltmessageanalyzerplugin/src/components/groupedView/src/CGroupedViewModel.cpp index 89e043f3..78a851d6 100644 --- a/dltmessageanalyzerplugin/src/components/groupedView/src/CGroupedViewModel.cpp +++ b/dltmessageanalyzerplugin/src/components/groupedView/src/CGroupedViewModel.cpp @@ -19,7 +19,7 @@ static const tQStringPtr sRootItemName = std::make_shared("Root"); CGroupedViewModel::CGroupedViewModel(const tSettingsManagerPtr& pSettingsManager, QObject *parent) - : QAbstractItemModel(parent), + : IGroupedViewModel(parent), CSettingsManagerClient(pSettingsManager), mRegex(), mSortingColumn(eGroupedViewColumn::Messages), @@ -29,18 +29,15 @@ CGroupedViewModel::CGroupedViewModel(const tSettingsManagerPtr& pSettingsManager mFindHandler(), mAnalyzedValues() { - mSortingHandler = [this](const QVector& children, + mSortingHandler = [this](QVector& children, const int& sortingColumn, - Qt::SortOrder sortingOrder) -> QVector + Qt::SortOrder sortingOrder) { - auto result = children; - switch(static_cast(sortingColumn)) { case eGroupedViewColumn::SubString: { - result = children; - std::sort(result.begin(), result.end(), + std::sort(children.begin(), children.end(), [&sortingColumn](const tTreeItemPtr& lVal, const tTreeItemPtr& rVal) { const tQStringPtrWrapper& lValSubString = lVal->data(sortingColumn).get(); @@ -74,8 +71,7 @@ CGroupedViewModel::CGroupedViewModel(const tSettingsManagerPtr& pSettingsManager } } - result = children; - std::sort(result.begin(), result.end(), + std::sort(children.begin(), children.end(), [&sortingColumn](const tTreeItemPtr& lVal, const tTreeItemPtr& rVal) { const auto& lValInt = lVal->data(sortingColumn).get(); @@ -102,8 +98,7 @@ CGroupedViewModel::CGroupedViewModel(const tSettingsManagerPtr& pSettingsManager } } - result = children; - std::sort(result.begin(), result.end(), + std::sort(children.begin(), children.end(), [&sortingColumn](const tTreeItemPtr& lVal, const tTreeItemPtr& rVal) { const auto& lValInt = lVal->data(sortingColumn).get(); @@ -120,10 +115,8 @@ CGroupedViewModel::CGroupedViewModel(const tSettingsManagerPtr& pSettingsManager if( sortingOrder == Qt::SortOrder::DescendingOrder) { - std::reverse(result.begin(), result.end()); + std::reverse(children.begin(), children.end()); } - - return result; }; mDuplicatesHandler = @@ -140,14 +133,19 @@ CGroupedViewModel::CGroupedViewModel(const tSettingsManagerPtr& pSettingsManager pItem->getWriteableData(payloadColumn) = pItem->getWriteableData(payloadColumn).get() + dataItems[payloadColumn].get(); } - auto metadataColumn = static_cast(eGroupedViewColumn::Metadata); + const auto metadataColumn = static_cast(eGroupedViewColumn::Metadata); //Important to update metadata in item before further usage. - pItem->getWriteableData(metadataColumn) = dataItems[metadataColumn]; + { + auto& existingMetadata = pItem->getWriteableData(metadataColumn).get(); + const auto& incomingMetadata = dataItems[metadataColumn].get(); + existingMetadata.msgId = incomingMetadata.msgId; // it should be the same, actually, as they are duplicated + existingMetadata.timeStamp = incomingMetadata.timeStamp; + } - auto metadataVariant = pItem->data(metadataColumn); + const auto& metadataVariant = pItem->data(metadataColumn); - auto metadata = metadataVariant.get(); + const auto& metadata = metadataVariant.get(); const auto& timeStamp = metadata.timeStamp; const auto& msgId = metadata.msgId; @@ -286,7 +284,6 @@ void CGroupedViewModel::updateAverageValues(CTreeItem* pItem, bool updatePayload if(true == updateMessages) { - pItem->getWriteableData(static_cast(eGroupedViewColumn::PayloadPerSecondAverage)) = 0; } } @@ -379,7 +376,6 @@ int CGroupedViewModel::rowCount(const QModelIndex &parent) const if(nullptr != parentItem) { - parentItem->sort(static_cast(mSortingColumn), mSortOrder, false); result = parentItem->childCount(); } @@ -506,7 +502,29 @@ void CGroupedViewModel::addMatches( const tFoundMatches& matches, bool update ) dataVec.push_back( data ); } - mpRootItem->addData( dataVec ); + auto afterAppendFunction = [](CTreeItem* pItem) + { + // if it is a leaf node + if(nullptr != pItem && 0 == pItem->childCount()) + { + // we should overtake its msgId into the relatedMsgIds. + const auto metadataColumn = static_cast(eGroupedViewColumn::Metadata); + auto& existingMetadata = pItem->getWriteableData(metadataColumn).get(); + + if(existingMetadata.relatedMsgIds.index() == existingMetadata.relatedMsgIds.index_of()) + { + existingMetadata.relatedMsgIds.get().insert(existingMetadata.msgId); + } + else + { + tMsgIdSet msgIdSet; + msgIdSet.insert(existingMetadata.msgId); + existingMetadata.relatedMsgIds = msgIdSet; + } + } + }; + + mpRootItem->addData( dataVec, afterAppendFunction ); if(true == update) { @@ -781,6 +799,48 @@ void CGroupedViewModel::sort(int column, Qt::SortOrder order) updateView(); } +tMsgIdSet CGroupedViewModel::getAllMessageIds(const QModelIndex& index) +{ + tMsgIdSet result; + + if(false == index.isValid()) + return result; + + tTreeItem *pItem = static_cast(index.internalPointer()); + + if(nullptr != pItem) + { + const auto metadataColumn = static_cast(eGroupedViewColumn::Metadata); + + pItem->visit([&result](tTreeItemPtr pItem) + { + if(nullptr != pItem) + { + const auto& itemMetadata = pItem->getWriteableData(metadataColumn).get(); + + if(itemMetadata.relatedMsgIds.index() == itemMetadata.relatedMsgIds.index_of()) + { + auto& insertSet = itemMetadata.relatedMsgIds.get(); + result.insert(insertSet.begin(), insertSet.end()); + } + } + + return true; + }, + [](const tTreeItemPtr) + { + return true; + }); + } + + return result; +} + +void CGroupedViewModel::sortByCurrentSortingColumn() +{ + sort(static_cast(mSortingColumn), mSortOrder); +} + PUML_PACKAGE_BEGIN(DMA_GroupedView) PUML_CLASS_BEGIN_CHECKED(CGroupedViewModel) PUML_INHERITANCE_CHECKED(QAbstractItemModel, implements) diff --git a/dltmessageanalyzerplugin/src/components/groupedView/src/CGroupedViewModel.hpp b/dltmessageanalyzerplugin/src/components/groupedView/src/CGroupedViewModel.hpp index 7eda2a0e..63577d75 100644 --- a/dltmessageanalyzerplugin/src/components/groupedView/src/CGroupedViewModel.hpp +++ b/dltmessageanalyzerplugin/src/components/groupedView/src/CGroupedViewModel.hpp @@ -16,8 +16,7 @@ #include "../api/IGroupedViewModel.hpp" #include "components/settings/api/CSettingsManagerClient.hpp" -class CGroupedViewModel : public QAbstractItemModel, - public IGroupedViewModel, +class CGroupedViewModel : public IGroupedViewModel, public CSettingsManagerClient { public: @@ -31,6 +30,8 @@ class CGroupedViewModel : public QAbstractItemModel, void addMatches( const tFoundMatches& matches, bool update ) override; int rowCount(const QModelIndex &parent = QModelIndex()) const override; std::pair exportToHTML(QString& resultHTML) override; + tMsgIdSet getAllMessageIds(const QModelIndex& index) override; + void sortByCurrentSortingColumn() override; // Implementation of the IGroupedViewModel ( end ) QVariant data(const QModelIndex &index, int role) const override; diff --git a/dltmessageanalyzerplugin/src/components/groupedView/src/CMakeLists.txt b/dltmessageanalyzerplugin/src/components/groupedView/src/CMakeLists.txt index 4ba41075..5f1897df 100644 --- a/dltmessageanalyzerplugin/src/components/groupedView/src/CMakeLists.txt +++ b/dltmessageanalyzerplugin/src/components/groupedView/src/CMakeLists.txt @@ -1,4 +1,5 @@ -set(WRAP_SRC ../api/CGroupedView.hpp) +set(WRAP_SRC ../api/CGroupedView.hpp + ../api/IGroupedViewModel.hpp) DMA_qt_wrap_cpp(PROCESSED_MOCS WRAP_SRC) diff --git a/dltmessageanalyzerplugin/src/components/groupedView/src/IGroupedViewModel.cpp b/dltmessageanalyzerplugin/src/components/groupedView/src/IGroupedViewModel.cpp index 70885042..6ca5faae 100644 --- a/dltmessageanalyzerplugin/src/components/groupedView/src/IGroupedViewModel.cpp +++ b/dltmessageanalyzerplugin/src/components/groupedView/src/IGroupedViewModel.cpp @@ -4,7 +4,8 @@ #include "DMA_Plantuml.hpp" -IGroupedViewModel::IGroupedViewModel() +IGroupedViewModel::IGroupedViewModel(QObject* pParent): + QAbstractItemModel(pParent) { } diff --git a/dltmessageanalyzerplugin/src/components/logsWrapper/api/IFileWrapper.hpp b/dltmessageanalyzerplugin/src/components/logsWrapper/api/IFileWrapper.hpp index a4aeda3c..8c373477 100644 --- a/dltmessageanalyzerplugin/src/components/logsWrapper/api/IFileWrapper.hpp +++ b/dltmessageanalyzerplugin/src/components/logsWrapper/api/IFileWrapper.hpp @@ -78,16 +78,17 @@ class IFileWrapper : public QObject virtual bool isFiltered() const = 0; /** - * @brief getMsgRealPos - takes logical index to the file and returnes the real one. + * @brief getMsgIdFromIndexInMainTable - takes index from main table and returnes the message id. * When to use? If your file is filtered, and you need a mapping from filtered to non-filtered id - you can use this method. - * E.g. if filtered message has idx = 1000, and that message without filtering has idx 101010, then this method will take 1000 + * E.g. if filtered message has idx = 1000, and that message without filtering has id 101010, then this method will take 1000 * and provide back 101010. * In case if file is not filtered, and provided idx is within the file's range - method will return input parameter. * In case if provided idx is outside of file's range - INVALID_MSG_ID value will be returned. - * @param msgId - logical index of the message. - * @return - in bast case - the mapped "from filtered to non-filtered" id. Other variants of returned value - referenced in above part of this comment. + * @param msgId - index of the message in the main table. + * @return - in the basic case - the mapped "from filtered to non-filtered" id. + * Other variants of returned value - referenced in above part of this comment. */ - virtual int getMsgRealPos(int msgId) const = 0; + virtual int getMsgIdFromIndexInMainTable(int msgId) const = 0; //////////////////////// CACHING_FUNCTIONALITY //////////////////////// diff --git a/dltmessageanalyzerplugin/src/components/logsWrapper/src/CDLTFileWrapper.cpp b/dltmessageanalyzerplugin/src/components/logsWrapper/src/CDLTFileWrapper.cpp index c26b1844..13a87c0b 100644 --- a/dltmessageanalyzerplugin/src/components/logsWrapper/src/CDLTFileWrapper.cpp +++ b/dltmessageanalyzerplugin/src/components/logsWrapper/src/CDLTFileWrapper.cpp @@ -149,21 +149,21 @@ QString CDLTFileWrapper::getFileName(int num) return result; } -int CDLTFileWrapper::getMsgRealPos(int msgId) const +int CDLTFileWrapper::getMsgIdFromIndexInMainTable(int msgIdxInMainTable) const { int result = INVALID_MSG_ID; if(nullptr != mpFile) { - if(msgId >= 0 && msgId < size()) + if(msgIdxInMainTable >= 0 && msgIdxInMainTable < size()) { if(true == mpFile->isFilter()) { - result = mpFile->getMsgFilterPos(msgId); + result = mpFile->getMsgFilterPos(msgIdxInMainTable); } else { - result = msgId; + result = msgIdxInMainTable; } } } @@ -443,12 +443,12 @@ int CDLTFileWrapper::binarySearch(bool isFrom, const int& fromIdx, const int& to // If the element is present at the middle // itself - if (getMsgRealPos(mid) == targetIdx) + if (getMsgIdFromIndexInMainTable(mid) == targetIdx) return mid; // If element is smaller than mid, then // it can only be present in left subarray - if (getMsgRealPos(mid) > targetIdx) + if (getMsgIdFromIndexInMainTable(mid) > targetIdx) return binarySearch(isFrom, fromIdx, mid - 1, targetIdx); // Else the element can only be present diff --git a/dltmessageanalyzerplugin/src/components/logsWrapper/src/CDLTFileWrapper.hpp b/dltmessageanalyzerplugin/src/components/logsWrapper/src/CDLTFileWrapper.hpp index 358afcb7..2cf3cd5b 100644 --- a/dltmessageanalyzerplugin/src/components/logsWrapper/src/CDLTFileWrapper.hpp +++ b/dltmessageanalyzerplugin/src/components/logsWrapper/src/CDLTFileWrapper.hpp @@ -47,7 +47,7 @@ class CDLTFileWrapper : public IFileWrapper tMsgWrapperPtr getMsg(const tMsgId& msgId) override; QString getFileName(int num = 0) override; bool isFiltered() const override; - int getMsgRealPos(int msgId) const override; + int getMsgIdFromIndexInMainTable(int msgIdxInMainTable) const override; //////////////////////// CACHING_FUNCTIONALITY //////////////////////// diff --git a/dltmessageanalyzerplugin/src/components/logsWrapper/src/IFileWrapper.cpp b/dltmessageanalyzerplugin/src/components/logsWrapper/src/IFileWrapper.cpp index b9f1bccf..b2b83ac5 100644 --- a/dltmessageanalyzerplugin/src/components/logsWrapper/src/IFileWrapper.cpp +++ b/dltmessageanalyzerplugin/src/components/logsWrapper/src/IFileWrapper.cpp @@ -61,7 +61,7 @@ PUML_PACKAGE_BEGIN(DMA_LogsWrapper_API) PUML_PURE_VIRTUAL_METHOD(+, tMsgWrapperPtr getMsg(const tMsgId& msgId) ) PUML_PURE_VIRTUAL_METHOD(+, QString getFileName(int num = 0) ) PUML_PURE_VIRTUAL_METHOD(+, bool isFiltered() const ) - PUML_PURE_VIRTUAL_METHOD(+, int getMsgRealPos(int msgId) const ) + PUML_PURE_VIRTUAL_METHOD(+, int getMsgIdFromIndexInMainTable(int msgIdxInMainTable) const ) PUML_PURE_VIRTUAL_METHOD(+, void setEnableCache(bool isEnabled) ) PUML_PURE_VIRTUAL_METHOD(+, void setMaxCacheSize(const tCacheSizeB& cacheSize ) ) PUML_PURE_VIRTUAL_METHOD(+, bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) ) diff --git a/dltmessageanalyzerplugin/src/components/plotView/src/CCustomPlotExtended.cpp b/dltmessageanalyzerplugin/src/components/plotView/src/CCustomPlotExtended.cpp index c297f0bb..36b294eb 100644 --- a/dltmessageanalyzerplugin/src/components/plotView/src/CCustomPlotExtended.cpp +++ b/dltmessageanalyzerplugin/src/components/plotView/src/CCustomPlotExtended.cpp @@ -133,7 +133,7 @@ void CCustomPlotExtended::changeLegendItemVisibility(QCPPlottableLegendItem* pIt uint32_t visiblePlotsNumber = 0u; bool bIsSingleVisiblePlot = true; - for(const auto pPlottable : pAxisRect->plottables()) + for(const auto* pPlottable : pAxisRect->plottables()) { if(true == pPlottable->visible()) { diff --git a/dltmessageanalyzerplugin/src/components/regexHistory/src/CRegexHistoryComponent.cpp b/dltmessageanalyzerplugin/src/components/regexHistory/src/CRegexHistoryComponent.cpp index 49a4cf6a..10b88a9c 100644 --- a/dltmessageanalyzerplugin/src/components/regexHistory/src/CRegexHistoryComponent.cpp +++ b/dltmessageanalyzerplugin/src/components/regexHistory/src/CRegexHistoryComponent.cpp @@ -5,6 +5,8 @@ #include "DMA_Plantuml.hpp" +#include "dma/base/ForceLink.hpp" + CRegexHistoryComponent::CRegexHistoryComponent( const tSettingsManagerPtr& pSettingsManager, CRegexHistoryLineEdit* pRegexHistoryLineEdit, CPatternsView* pPatternsView, const tDLTMessageAnalyzerControllerPtr& pDLTMessageAnalyzerController ): @@ -13,6 +15,9 @@ mpRegexHistoryProvider(std::make_shared(pSettingsManager, pPatternsView, pDLTMessageAnalyzerController)) { + // force linkage references in order to have consistent diagrams + DMA_FORCE_LINK_REFERENCE(IRegexHistoryProvider) + if(nullptr != pRegexHistoryLineEdit) { pRegexHistoryLineEdit->setRegexHistoryProvider(mpRegexHistoryProvider); diff --git a/dltmessageanalyzerplugin/src/components/regexHistory/src/IRegexHistoryProvider.cpp b/dltmessageanalyzerplugin/src/components/regexHistory/src/IRegexHistoryProvider.cpp index 546258e3..271f6686 100644 --- a/dltmessageanalyzerplugin/src/components/regexHistory/src/IRegexHistoryProvider.cpp +++ b/dltmessageanalyzerplugin/src/components/regexHistory/src/IRegexHistoryProvider.cpp @@ -1,5 +1,7 @@ #include "../api/IRegexHistoryProvider.hpp" +#include "dma/base/ForceLink.hpp" + #include "DMA_Plantuml.hpp" IRegexHistoryProvider::IRegexHistoryProvider() @@ -8,6 +10,8 @@ IRegexHistoryProvider::IRegexHistoryProvider() IRegexHistoryProvider::~IRegexHistoryProvider() {} +DMA_FORCE_LINK_ANCHOR_CPP(IRegexHistoryProvider) + PUML_PACKAGE_BEGIN(DMA_RegexHistory_API) PUML_CLASS_BEGIN(IRegexHistoryProvider) PUML_INHERITANCE_CHECKED(QObject, extends) diff --git a/dltmessageanalyzerplugin/src/components/searchView/api/CSearchResultView.hpp b/dltmessageanalyzerplugin/src/components/searchView/api/CSearchResultView.hpp index bd9a6a3f..a47b4e7d 100644 --- a/dltmessageanalyzerplugin/src/components/searchView/api/CSearchResultView.hpp +++ b/dltmessageanalyzerplugin/src/components/searchView/api/CSearchResultView.hpp @@ -57,6 +57,15 @@ class CSearchResultView : public QTableView, void forceUpdateWidthAndResetContentMap(); eSearchResultColumn getLastVisibleColumn() const; + void clearGroupedViewHighlighting(); + + enum class eDirection + { + Next = 0, + Previous + }; + + void jumpToGroupedViewHighlightingMessage(eDirection direction); private: diff --git a/dltmessageanalyzerplugin/src/components/searchView/api/ISearchResultModel.hpp b/dltmessageanalyzerplugin/src/components/searchView/api/ISearchResultModel.hpp index 6583f6e7..cc3a84ad 100644 --- a/dltmessageanalyzerplugin/src/components/searchView/api/ISearchResultModel.hpp +++ b/dltmessageanalyzerplugin/src/components/searchView/api/ISearchResultModel.hpp @@ -7,8 +7,9 @@ #include "common/Definitions.hpp" -class ISearchResultModel +class ISearchResultModel : public QAbstractTableModel { + Q_OBJECT public: ISearchResultModel(); @@ -20,6 +21,10 @@ class ISearchResultModel virtual void setFile(const tFileWrapperPtr& pFile) = 0; virtual std::pair addNextMessageIdxVec(const tFoundMatchesPack& foundMatchesPack) = 0; virtual int getFileIdx( const QModelIndex& idx ) const = 0; + virtual int getRowByMsgId( const tMsgId& id ) const = 0; + virtual void setHighlightedRows( const tMsgIdSet& msgs ) = 0; + virtual const tMsgIdSet& getHighlightedRows() const = 0; + virtual const tFoundMatchesPackItem& getFoundMatchesItemPack( const QModelIndex& modelIndex ) const = 0; enum eGanttDataItemType { diff --git a/dltmessageanalyzerplugin/src/components/searchView/src/CMakeLists.txt b/dltmessageanalyzerplugin/src/components/searchView/src/CMakeLists.txt index d9493f26..11c5f985 100644 --- a/dltmessageanalyzerplugin/src/components/searchView/src/CMakeLists.txt +++ b/dltmessageanalyzerplugin/src/components/searchView/src/CMakeLists.txt @@ -1,5 +1,6 @@ set(WRAP_SRC ../api/CSearchResultView.hpp - ../api/CSearchViewComponent.hpp) + ../api/CSearchViewComponent.hpp + ../api/ISearchResultModel.hpp) DMA_qt_wrap_cpp(PROCESSED_MOCS WRAP_SRC) diff --git a/dltmessageanalyzerplugin/src/components/searchView/src/CSearchResultHighlightingDelegate.cpp b/dltmessageanalyzerplugin/src/components/searchView/src/CSearchResultHighlightingDelegate.cpp index 407de941..85ff1ae0 100644 --- a/dltmessageanalyzerplugin/src/components/searchView/src/CSearchResultHighlightingDelegate.cpp +++ b/dltmessageanalyzerplugin/src/components/searchView/src/CSearchResultHighlightingDelegate.cpp @@ -10,7 +10,7 @@ #include "CSearchResultHighlightingDelegate.hpp" #include "common/Definitions.hpp" -#include "CSearchResultModel.hpp" +#include "../api/ISearchResultModel.hpp" #include "components/settings/api/ISettingsManager.hpp" #include "DMA_Plantuml.hpp" @@ -22,6 +22,8 @@ #include #endif +const QColor sCustomHighlightingColor(237,235,178); + CSearchResultHighlightingDelegate::CSearchResultHighlightingDelegate(QObject *parent): QStyledItemDelegate(parent), mbMarkTimestampWithBold(false), @@ -37,7 +39,8 @@ CSearchResultHighlightingDelegate::~CSearchResultHighlightingDelegate() void drawText(const QString& inputStr, QPainter *painter, const QStyleOptionViewItem &option, - bool bold) + bool bold, + bool bCustomBackgroundHighlighting) { int baseShift = 0; @@ -58,13 +61,20 @@ void drawText(const QString& inputStr, } else { - if(isDarkMode()) + if(false == bCustomBackgroundHighlighting) { - painter->fillRect(option.rect, option.palette.window()); + if(isDarkMode()) + { + painter->fillRect(option.rect, option.palette.window()); + } + else + { + painter->fillRect(option.rect, QColor(255,255,255)); + } } else { - painter->fillRect(option.rect, QColor(255,255,255)); + painter->fillRect(option.rect, sCustomHighlightingColor); } QPalette::ColorGroup cg = QPalette::Normal; @@ -226,7 +236,8 @@ shift += fm.horizontalAdvance(drawDataItem.subStr); static void drawText( const tDrawDataPack& drawDataPack, QPainter *painter, - const QStyleOptionViewItem& option ) + const QStyleOptionViewItem& option, + bool bCustomBackgroundHighlighting ) { if(true == drawDataPack.isSelected) { @@ -234,13 +245,20 @@ static void drawText( const tDrawDataPack& drawDataPack, } else { - if(isDarkMode()) + if(false == bCustomBackgroundHighlighting) { - painter->fillRect(option.rect, option.palette.window()); + if(isDarkMode()) + { + painter->fillRect(option.rect, option.palette.window()); + } + else + { + painter->fillRect(option.rect, QColor(255,255,255)); + } } else { - painter->fillRect(option.rect, QColor(255,255,255)); + painter->fillRect(option.rect, sCustomHighlightingColor); } } @@ -362,7 +380,8 @@ static void drawHighlightedText(eSearchResultColumn field, QPainter *painter, const QStyleOptionViewItem& option, bool isMonoColorHighlighting, - const QColor& regexMonoHighlightingColor) + const QColor& regexMonoHighlightingColor, + bool bCustomBackgroundHighlighting) { tDrawDataPack drawDataPack; @@ -398,7 +417,7 @@ static void drawHighlightedText(eSearchResultColumn field, SEND_MSG(QString("calculateShifts - %1").arg(timer.elapsed())); timer.restart(); #endif - drawText(drawDataPack, painter, option); + drawText(drawDataPack, painter, option, bCustomBackgroundHighlighting); #ifdef DEBUG_CSearchResultHighlightingDelegate SEND_MSG(QString("drawText - %1").arg(timer.elapsed())); timer.invalidate(); @@ -406,12 +425,12 @@ static void drawHighlightedText(eSearchResultColumn field, } else { - drawText(inputStr,painter,option,false); + drawText(inputStr, painter, option, false, bCustomBackgroundHighlighting); } } else { - drawText(inputStr,painter,option,false); + drawText(inputStr, painter, option, false, bCustomBackgroundHighlighting); } { @@ -436,12 +455,24 @@ void CSearchResultHighlightingDelegate::paint(QPainter *painter, //SEND_MSG(QString("CSearchResultHighlightingDelegate::paint: row %1").arg(index.row())); - const auto* pModel = dynamic_cast(index.model()); + const auto* pModel = dynamic_cast(index.model()); if(nullptr != pModel) { auto stringData = pModel->data(index, Qt::DisplayRole).value(); + bool bCustomBackgroundHighlighting = false; + + const auto& customHighlightingRows = pModel->getHighlightedRows(); + + const auto& matchData = pModel->getFoundMatchesItemPack(index); + const auto& msgId = matchData.getItemMetadata().msgId; + + if(customHighlightingRows.find(msgId) != customHighlightingRows.end()) + { + bCustomBackgroundHighlighting = true; + } + QStyleOptionViewItem opt = option; initStyleOption(&opt, index); @@ -457,13 +488,20 @@ void CSearchResultHighlightingDelegate::paint(QPainter *painter, } else { - if(isDarkMode()) + if(false == bCustomBackgroundHighlighting) { - painter->fillRect(option.rect, option.palette.window()); + if(isDarkMode()) + { + painter->fillRect(option.rect, option.palette.window()); + } + else + { + painter->fillRect(option.rect, QColor(255,255,255)); + } } else { - painter->fillRect(option.rect, QColor(255,255,255)); + painter->fillRect(option.rect, sCustomHighlightingColor); } } @@ -484,7 +522,7 @@ void CSearchResultHighlightingDelegate::paint(QPainter *painter, else if(static_cast(index.column()) == eSearchResultColumn::Timestamp && true == mbMarkTimestampWithBold) { - drawText( stringData, painter, opt, mbMarkTimestampWithBold ); + drawText( stringData, painter, opt, mbMarkTimestampWithBold, bCustomBackgroundHighlighting ); } else { @@ -497,7 +535,6 @@ void CSearchResultHighlightingDelegate::paint(QPainter *painter, .arg(index.row()) .arg(index.column())); #endif - const auto& matchData = pModel->getFoundMatchesItemPack(index); bool isMonoColorHighlighting = getSettingsManager()->getSearchResultMonoColorHighlighting(); const QColor& regexMonoHighlightingColor = getSettingsManager()->getRegexMonoHighlightingColor(); @@ -507,7 +544,8 @@ void CSearchResultHighlightingDelegate::paint(QPainter *painter, stringData, painter, opt, isMonoColorHighlighting, - regexMonoHighlightingColor); + regexMonoHighlightingColor, + bCustomBackgroundHighlighting); #ifdef DEBUG_CSearchResultHighlightingDelegate SEND_MSG(QString("CSearchResultHighlightingDelegate::drawHighlightedText(end:): took %1 ms") .arg(elapsedTimer.elapsed()) @@ -517,7 +555,7 @@ void CSearchResultHighlightingDelegate::paint(QPainter *painter, } else { - drawText( stringData, painter, opt, false ); + drawText( stringData, painter, opt, false, bCustomBackgroundHighlighting ); } } } @@ -542,7 +580,7 @@ QSize CSearchResultHighlightingDelegate::sizeHint(const QStyleOptionViewItem &op if(foundSearchColumn != mSearchResultColumnsSearchMap.end() && true == foundSearchColumn.value()) { - const auto* pModel = dynamic_cast(index.model()); + const auto* pModel = dynamic_cast(index.model()); if(nullptr != pModel) { @@ -622,6 +660,6 @@ PUML_PACKAGE_BEGIN(DMA_SearchView) PUML_CLASS_BEGIN_CHECKED(CSearchResultHighlightingDelegate) PUML_INHERITANCE_CHECKED(QStyledItemDelegate, extends) PUML_INHERITANCE_CHECKED(CSettingsManagerClient, extends) - PUML_COMPOSITION_DEPENDENCY_CHECKED(CSearchResultModel, 1, 1, uses) + PUML_COMPOSITION_DEPENDENCY_CHECKED(ISearchResultModel, 1, 1, uses) PUML_CLASS_END() PUML_PACKAGE_END() diff --git a/dltmessageanalyzerplugin/src/components/searchView/src/CSearchResultModel.cpp b/dltmessageanalyzerplugin/src/components/searchView/src/CSearchResultModel.cpp index 06066013..68669dc4 100644 --- a/dltmessageanalyzerplugin/src/components/searchView/src/CSearchResultModel.cpp +++ b/dltmessageanalyzerplugin/src/components/searchView/src/CSearchResultModel.cpp @@ -17,7 +17,8 @@ CSearchResultModel::CSearchResultModel(const tSettingsManagerPtr& pSettingsManager, QObject *): CSettingsManagerClient(pSettingsManager), mFoundMatchesPack(), -mpFile(nullptr) +mpFile(nullptr), +mHighlightMessages() { } @@ -36,6 +37,7 @@ void CSearchResultModel::resetData() { beginResetModel(); mFoundMatchesPack.matchedItemVec.clear(); + mHighlightMessages.clear(); endResetModel(); updateView(); } @@ -261,13 +263,18 @@ int CSearchResultModel::getFileIdx( const QModelIndex& idx ) const { if(nullptr != mFoundMatchesPack.matchedItemVec[static_cast(row)]) { - result = mFoundMatchesPack.matchedItemVec[static_cast(row)]->getItemMetadata().msgIdFiltered; + result = mFoundMatchesPack.matchedItemVec[static_cast(row)]->getItemMetadata().msgIdxInMainTable; } } return result; } +int CSearchResultModel::getRowByMsgId( const tMsgId& id ) const +{ + return mFoundMatchesPack.findRowByMsgId(id); +} + QString CSearchResultModel::getStrValue(const int& row, const eSearchResultColumn& column) const { QString result; @@ -1601,7 +1608,7 @@ ISearchResultModel::tPlotContent CSearchResultModel::createPlotContent() const plotViewID, plotViewDataItemVec, result, - itemMetadata.msgIdFiltered, + itemMetadata.msgIdxInMainTable, axisNameMetadataMap, row, bXDataPresented, @@ -1664,6 +1671,17 @@ void CSearchResultModel::setPlotView_Applicability( const QModelIndex& index, bo } } +void CSearchResultModel::setHighlightedRows(const tMsgIdSet& msgs) +{ + // SEND_ERR(QString("I need to highlight \"%1\" messages!").arg(msgs.size())); + mHighlightMessages = msgs; +} + +const tMsgIdSet& CSearchResultModel::getHighlightedRows() const +{ + return mHighlightMessages; +} + PUML_PACKAGE_BEGIN(DMA_SearchView) PUML_CLASS_BEGIN_CHECKED(CSearchResultModel) PUML_INHERITANCE_CHECKED(QAbstractTableModel, implements) diff --git a/dltmessageanalyzerplugin/src/components/searchView/src/CSearchResultModel.hpp b/dltmessageanalyzerplugin/src/components/searchView/src/CSearchResultModel.hpp index 0f56b7e5..e6a45770 100644 --- a/dltmessageanalyzerplugin/src/components/searchView/src/CSearchResultModel.hpp +++ b/dltmessageanalyzerplugin/src/components/searchView/src/CSearchResultModel.hpp @@ -17,8 +17,7 @@ #include "components/settings/api/CSettingsManagerClient.hpp" -class CSearchResultModel : public QAbstractTableModel, - public ISearchResultModel, +class CSearchResultModel : public ISearchResultModel, public CSettingsManagerClient { Q_OBJECT @@ -33,9 +32,13 @@ class CSearchResultModel : public QAbstractTableModel, void updateView(const int& fromRow = 0) override; void resetData() override; int getFileIdx( const QModelIndex& idx ) const override; + int getRowByMsgId( const tMsgId& id ) const override; std::pair addNextMessageIdxVec(const tFoundMatchesPack& foundMatchesPack) override; std::pair getUMLDiagramContent() const override; - virtual tPlotContent createPlotContent() const override; + tPlotContent createPlotContent() const override; + void setHighlightedRows( const tMsgIdSet& msgs) override; + const tFoundMatchesPackItem& getFoundMatchesItemPack( const QModelIndex& modelIndex ) const override; + const tMsgIdSet& getHighlightedRows() const override; // implementation of the ISearchResultModel ( END ) int rowCount(const QModelIndex &parent) const override; @@ -44,8 +47,6 @@ class CSearchResultModel : public QAbstractTableModel, QVariant headerData(int section, Qt::Orientation orientation, int role) const override; Qt::ItemFlags flags(const QModelIndex &index) const override; - const tFoundMatchesPackItem& getFoundMatchesItemPack( const QModelIndex& modelIndex ) const; - void setUML_Applicability( const QModelIndex& index, bool checked ); void setPlotView_Applicability( const QModelIndex& index, bool checked ); @@ -55,4 +56,5 @@ class CSearchResultModel : public QAbstractTableModel, tFoundMatchesPack mFoundMatchesPack; tFileWrapperPtr mpFile; + tMsgIdSet mHighlightMessages; }; diff --git a/dltmessageanalyzerplugin/src/components/searchView/src/CSearchResultView.cpp b/dltmessageanalyzerplugin/src/components/searchView/src/CSearchResultView.cpp index 516ff8cc..1e443d47 100644 --- a/dltmessageanalyzerplugin/src/components/searchView/src/CSearchResultView.cpp +++ b/dltmessageanalyzerplugin/src/components/searchView/src/CSearchResultView.cpp @@ -871,6 +871,20 @@ void CSearchResultView::keyPressEvent ( QKeyEvent * event ) { switchToNextCheckboxItem(false, static_cast(eSearchResultColumn::UML_Applicability)); } + else if((event->modifiers() & Qt::ControlModifier) != 0 + && (event->key() == Qt::Key::Key_Down)) + { + jumpToGroupedViewHighlightingMessage(eDirection::Next); + } + else if((event->modifiers() & Qt::ControlModifier) != 0 + && (event->key() == Qt::Key::Key_Up)) + { + jumpToGroupedViewHighlightingMessage(eDirection::Previous); + } + else if(event->key() == Qt::Key::Key_Escape) + { + clearGroupedViewHighlighting(); + } else { tParent::keyPressEvent(event); @@ -1155,6 +1169,53 @@ void CSearchResultView::handleSettingsManagerChange() contextMenu.addSeparator(); + { + if(nullptr != mpSpecificModel && + false == mpSpecificModel->getHighlightedRows().empty()) + { + contextMenu.addSeparator(); + + QMenu* pSubMenu = new QMenu("'Grouped view' highlighting settings", this); + + { + QAction* pAction = new QAction("Jump to previous msg", this); + pAction->setShortcut(QKeySequence(tr("Ctrl+Up"))); + connect(pAction, &QAction::triggered, this, [this]() + { + jumpToGroupedViewHighlightingMessage(eDirection::Previous); + }); + + pSubMenu->addAction(pAction); + } + + { + QAction* pAction = new QAction("Jump to next msg", this); + pAction->setShortcut(QKeySequence(tr("Ctrl+Down"))); + connect(pAction, &QAction::triggered, this, [this]() + { + jumpToGroupedViewHighlightingMessage(eDirection::Next); + }); + + pSubMenu->addAction(pAction); + } + + { + QAction* pAction = new QAction("Remove 'grouped view' highlighting", this); + pAction->setShortcut(QKeySequence(tr("Esc"))); + connect(pAction, &QAction::triggered, this, [this]() + { + clearGroupedViewHighlighting(); + }); + + pSubMenu->addAction(pAction); + } + + contextMenu.addMenu(pSubMenu); + } + + contextMenu.addSeparator(); + } + { if(nullptr != mpFile) { @@ -1823,6 +1884,103 @@ void CSearchResultView::handleSettingsManagerChange() }); } +void CSearchResultView::clearGroupedViewHighlighting() +{ + if(nullptr != mpSpecificModel) + { + mpSpecificModel->setHighlightedRows(tMsgIdSet()); + viewport()->update(); + } +} + +void CSearchResultView::jumpToGroupedViewHighlightingMessage(eDirection direction) +{ + if(nullptr != mpSpecificModel) + { + const auto& highlightedRows = mpSpecificModel->getHighlightedRows(); + + if(false == highlightedRows.empty()) + { + auto selectedRows = selectionModel()->selectedRows(); + + auto jumpToElement = [this](const tMsgId& msgId) + { + if(nullptr != mpSpecificModel) + { + auto jumpRow = mpSpecificModel->getRowByMsgId(msgId); + + if(jumpRow >= 0) + { + clearSelection(); + selectRow(jumpRow); + + auto selectedRows = selectionModel()->selectedRows(); + if(false == selectedRows.empty()) + { + scrollTo(selectedRows[0]); + } + } + } + }; + + auto jumpToFirstHighlightedElement = [&highlightedRows, &jumpToElement]() + { + jumpToElement(*highlightedRows.begin()); + }; + + auto jumpToLastHighlightedElement = [&highlightedRows, &jumpToElement]() + { + jumpToElement(* --highlightedRows.end()); + }; + + if(false == selectedRows.empty()) + { + const auto& selectedRow = selectedRows[0]; + auto msgIdCell = selectedRow.sibling(selectedRow.row(), static_cast(eSearchResultColumn::Index)); + const auto msgId = msgIdCell.data().value(); + + switch(direction) + { + case eDirection::Next: + { + auto upper = std::upper_bound(highlightedRows.begin(), highlightedRows.end(), msgId); + + if (upper != highlightedRows.end()) + { + auto nextElementId = *upper; + jumpToElement(nextElementId); + } + else + { + jumpToFirstHighlightedElement(); + } + } + break; + case eDirection::Previous: + { + auto lower = std::lower_bound(highlightedRows.begin(), highlightedRows.end(), msgId); + + if (lower != highlightedRows.begin()) + { + auto previousElementId = *(--lower); + jumpToElement(previousElementId); + } + else + { + jumpToLastHighlightedElement(); + } + } + break; + } + } + else + { + jumpToFirstHighlightedElement(); + } + } + } +} + PUML_PACKAGE_BEGIN(DMA_SearchView_API) PUML_CLASS_BEGIN_CHECKED(CSearchResultView) PUML_INHERITANCE_CHECKED(QTableView, extends) diff --git a/dltmessageanalyzerplugin/src/components/settings/src/CSettingsManager.cpp b/dltmessageanalyzerplugin/src/components/settings/src/CSettingsManager.cpp index 753247df..b4516cfd 100644 --- a/dltmessageanalyzerplugin/src/components/settings/src/CSettingsManager.cpp +++ b/dltmessageanalyzerplugin/src/components/settings/src/CSettingsManager.cpp @@ -257,11 +257,12 @@ static const tGroupedViewColumnsVisibilityMap sDefaultGroupedViewColumnsVisibili CSettingsManager::CSettingsManager(): mSetting_SettingsManagerVersion(createArithmeticSettingsItem(sSettingsManagerVersionKey, - [this](const tSettingsManagerVersion& data){settingsManagerVersionChanged(data);}, + [this](const tSettingsManagerVersion&, + const tSettingsManagerVersion& data){settingsManagerVersionChanged(data);}, [this](){tryStoreRootConfig();}, sDefaultSettingsManagerVersion)), mSetting_Aliases(createAliasItemMapSettingsItem(sAliasesKey, - [this](const tAliasItemMap& data){ aliasesChanged(data); }, + [this](const tAliasItemMap&, const tAliasItemMap& data){ aliasesChanged(data); }, [this]() { QString regexSettingsFilePath = getRegexDirectory() + QDir::separator() + mSetting_SelectedRegexFile.getData(); @@ -269,109 +270,116 @@ CSettingsManager::CSettingsManager(): }, tAliasItemMap())), mSetting_NumberOfThreads(createRangedArithmeticSettingsItem(sNumberOfThreadsKey, - [this](const int& data){numberOfThreadsChanged(data);}, + [this](const int&, const int& data){numberOfThreadsChanged(data);}, [this](){tryStoreSettingsConfig();}, TRangedSettingItem::tOptionalAllowedRange(TRangedSettingItem::tAllowedRange(1, QThread::idealThreadCount())), 1)), mSetting_ContinuousSearch(createBooleanSettingsItem(sIsContinuousSearchKey, - [this](const bool& data){continuousSearchChanged(data);}, + [this](const bool&, const bool& data){continuousSearchChanged(data);}, [this](){tryStoreSettingsConfig();}, true)), mSetting_CopySearchResultAsHTML(createBooleanSettingsItem(sCopySearchResultAsHTMLKey, - [this](const bool& data){copySearchResultAsHTMLChanged(data);}, + [this](const bool&, const bool& data){copySearchResultAsHTMLChanged(data);}, [this](){tryStoreSettingsConfig();}, true)), mSetting_MinimizePatternsViewOnSelection(createBooleanSettingsItem(sMinimizePatternsViewOnSelectionKey, - [this](const bool& data){minimizePatternsViewOnSelectionChanged(data);}, + [this](const bool&, const bool& data){minimizePatternsViewOnSelectionChanged(data);}, [this](){tryStoreSettingsConfig();}, false)), mSetting_WriteSettingsOnEachUpdate(createBooleanSettingsItem(sWriteSettingsOnEachUpdateChangedKey, - [this](const bool& data){writeSettingsOnEachUpdateChanged(data);}, + [this](const bool&, const bool& data){writeSettingsOnEachUpdateChanged(data);}, [this](){tryStoreSettingsConfig();}, true)), mSetting_CacheEnabled(createBooleanSettingsItem(sCacheEnabledKey, - [this](const bool& data){cacheEnabledChanged(data);}, + [this](const bool&, const bool& data){cacheEnabledChanged(data);}, [this](){tryStoreSettingsConfig();}, true)), mSetting_CacheMaxSizeMB(createRangedArithmeticSettingsItem(sCacheMaxSizeMBKey, - [this](const tCacheSizeMB& data){cacheMaxSizeMBChanged(data);}, + [this](const tCacheSizeMB&, const tCacheSizeMB& data){cacheMaxSizeMBChanged(data);}, [this](){tryStoreSettingsConfig();}, TRangedSettingItem::tOptionalAllowedRange(TRangedSettingItem::tAllowedRange(0, getRAMSizeUnchecked())), 512)), mSetting_RDPMode(createBooleanSettingsItem(sRDPModeKey, - [this](const bool& data){RDPModeChanged(data);}, + [this](const bool&, const bool& data){RDPModeChanged(data);}, [this](){tryStoreSettingsConfig();}, false)), mSetting_RegexMonoHighlightingColor(createColorSettingsItem(sRegexMonoHighlightingColosKey, - [this](const QColor& data){regexMonoHighlightingColorChanged(data);}, + [this](const QColor&, const QColor& data){regexMonoHighlightingColorChanged(data);}, [this](){tryStoreSettingsConfig();}, QColor(150,0,0))), mSetting_HighlightActivePatterns(createBooleanSettingsItem(sHighlightActivePatternsKey, - [this](const bool& data){highlightActivePatternsChanged(data);}, + [this](const bool&, const bool& data){highlightActivePatternsChanged(data);}, [this](){tryStoreSettingsConfig();}, true)), mSetting_PatternsHighlightingColor(createColorSettingsItem(sPatternsHighlightingColorKey, - [this](const QColor& data){patternsHighlightingColorChanged(data);}, + [this](const QColor&, const QColor& data){patternsHighlightingColorChanged(data);}, [this](){tryStoreSettingsConfig();}, QColor(0,150,0))), mSetting_SearchResultMonoColorHighlighting(createBooleanSettingsItem(sSearchResultMonoColorHighlightingKey, - [this](const bool& data){searchResultMonoColorHighlightingChanged(data);}, + [this](const bool&, const bool& data){searchResultMonoColorHighlightingChanged(data);}, [this](){tryStoreSettingsConfig();}, false)), mSearchResultHighlightingGradientProtector(), mSetting_SearchResultHighlightingGradient(createHighlightingGradientSettingsItem(sSearchResultHighlightingGradientKey, - [this](const tHighlightingGradient& data){searchResultHighlightingGradientChanged(data);}, + [this](const tHighlightingGradient&, + const tHighlightingGradient& data){searchResultHighlightingGradientChanged(data);}, [this](){tryStoreSettingsConfig();}, tHighlightingGradient(QColor(154,0,146), QColor(1,162,165), 3))), mSetting_SearchResultColumnsVisibilityMap(createSearchResultColumnsVisibilityMapSettingsItem(sSearchResultColumnsVisibilityMapKey, - [this](const tSearchResultColumnsVisibilityMap& data){searchResultColumnsVisibilityMapChanged(data);}, + [this](const tSearchResultColumnsVisibilityMap&, + const tSearchResultColumnsVisibilityMap& data){searchResultColumnsVisibilityMapChanged(data);}, [this](){tryStoreSettingsConfig();}, sDefaultSearchResultColumnsVisibilityMap)), mSetting_SearchResultColumnsCopyPasteMap(createSearchResultColumnsVisibilityMapSettingsItem(sSearchResultColumnsCopyPasteMapKey, - [this](const tSearchResultColumnsVisibilityMap& data){searchResultColumnsCopyPasteMapChanged(data);}, + [this](const tSearchResultColumnsVisibilityMap&, + const tSearchResultColumnsVisibilityMap& data){searchResultColumnsCopyPasteMapChanged(data);}, [this](){tryStoreSettingsConfig();}, sDefaultSearchResultColumnsCopyPasteMap)), mSetting_SearchResultColumnsSearchMap(createSearchResultColumnsVisibilityMapSettingsItem(sSearchResultColumnsSearchMapKey, - [this](const tSearchResultColumnsVisibilityMap& data){searchResultColumnsSearchMapChanged(data);}, + [this](const tSearchResultColumnsVisibilityMap&, + const tSearchResultColumnsVisibilityMap& data){searchResultColumnsSearchMapChanged(data);}, [this](){tryStoreSettingsConfig();}, sDefaultSearchResultColumnsSearchMap)), mSetting_MarkTimeStampWithBold(createBooleanSettingsItem(sMarkTimeStampWithBold, - [this](const bool& data){markTimeStampWithBoldChanged(data);}, + [this](const bool&, const bool& data){markTimeStampWithBoldChanged(data);}, [this](){tryStoreSettingsConfig();}, true)), mSetting_PatternsColumnsVisibilityMap(createPatternsColumnsVisibilityMapSettingsItem(sPatternsColumnsVisibilityMapKey, - [this](const tPatternsColumnsVisibilityMap& data){patternsColumnsVisibilityMapChanged(data);}, + [this](const tPatternsColumnsVisibilityMap&, + const tPatternsColumnsVisibilityMap& data){patternsColumnsVisibilityMapChanged(data);}, [this](){tryStoreSettingsConfig();}, sDefaultPatternsColumnsVisibilityMap)), mSetting_PatternsColumnsCopyPasteMap(createPatternsColumnsVisibilityMapSettingsItem(sPatternsColumnsCopyPasteMapKey, - [this](const tPatternsColumnsVisibilityMap& data){patternsColumnsCopyPasteMapChanged(data);}, + [this](const tPatternsColumnsVisibilityMap&, + const tPatternsColumnsVisibilityMap& data){patternsColumnsCopyPasteMapChanged(data);}, [this](){tryStoreSettingsConfig();}, sDefaultPatternsColumnsCopyPasteMap)), mSetting_CaseSensitiveRegex(createBooleanSettingsItem(sCaseSensitiveRegex, - [this](const bool& data){caseSensitiveRegexChanged(data);}, + [this](const bool&, const bool& data){caseSensitiveRegexChanged(data);}, [this](){tryStoreSettingsConfig();}, false)), mSetting_RegexFiltersColumnsVisibilityMap(createRegexFiltersColumnsVisibilityMapSettingsItem(sRegexFiltersColumnsVisibilityMapKey, - [this](const tRegexFiltersColumnsVisibilityMap& data){regexFiltersColumnsVisibilityMapChanged(data);}, + [this](const tRegexFiltersColumnsVisibilityMap&, + const tRegexFiltersColumnsVisibilityMap& data){regexFiltersColumnsVisibilityMapChanged(data);}, [this](){tryStoreSettingsConfig();}, sDefaultRegexFiltersColumnsVisibilityMap)), mSetting_FilterVariables(createBooleanSettingsItem(sFilterVariablesKey, - [this](const bool& data){filterVariablesChanged(data);}, + [this](const bool&, const bool& data){filterVariablesChanged(data);}, [this](){tryStoreSettingsConfig();}, true)), mSetting_SelectedRegexFile(createStringSettingsItem(sSelectedRegexFile, - [this](const QString& data) + [this](const QString& oldData, const QString& data) { QString regexSettingsFilePath = getRegexDirectory() + QDir::separator() + data; clearRegexConfig(); loadRegexConfigCustomPath(regexSettingsFilePath); - QString regexUsageStatisticsFilePath = getRegexUsageStatisticsDirectory() + QDir::separator() + mSetting_SelectedRegexFile.getData(); + QString oldRegexUsageStatisticsFilePath = getRegexUsageStatisticsDirectory() + QDir::separator() + oldData; - if(true == mbInitialised) + if(true == mbInitialised && false == oldData.isEmpty()) { - auto result = storeRegexUsageStatisticsDataCustomPath(regexUsageStatisticsFilePath); + auto result = storeRegexUsageStatisticsDataCustomPath(oldRegexUsageStatisticsFilePath); if(false == result.bResult) { @@ -381,125 +389,129 @@ CSettingsManager::CSettingsManager(): } clearRegexUsageStatisticsData(); - loadRegexUsageStatisticsDataCustomPath(regexUsageStatisticsFilePath); + QString newRegexUsageStatisticsFilePath = getRegexUsageStatisticsDirectory() + QDir::separator() + data; + loadRegexUsageStatisticsDataCustomPath(newRegexUsageStatisticsFilePath); selectedRegexFileChanged(data); }, [this](){tryStoreSettingsConfig();}, sDefaultRegexFileName)), mSetting_GroupedViewColumnsVisibilityMap(createGroupedViewColumnsVisibilityMapSettingsItem(sGroupedViewColumnsVisibilityMapKey, - [this](const tGroupedViewColumnsVisibilityMap& data){groupedViewColumnsVisibilityMapChanged(data);}, + [this](const tGroupedViewColumnsVisibilityMap&, + const tGroupedViewColumnsVisibilityMap& data){groupedViewColumnsVisibilityMapChanged(data);}, [this](){tryStoreSettingsConfig();}, sDefaultGroupedViewColumnsVisibilityMap)), mSetting_GroupedViewColumnsCopyPasteMap(createGroupedViewColumnsVisibilityMapSettingsItem(sGroupedViewColumnsCopyPasteMapKey, - [this](const tGroupedViewColumnsVisibilityMap& data){groupedViewColumnsCopyPasteMapChanged(data);}, + [this](const tGroupedViewColumnsVisibilityMap&, + const tGroupedViewColumnsVisibilityMap& data){groupedViewColumnsCopyPasteMapChanged(data);}, [this](){tryStoreSettingsConfig();}, sDefaultGroupedViewColumnsVisibilityMap)), mSetting_SubFilesHandlingStatus(createBooleanSettingsItem(sSubFilesHandlingStatusKey, - [this](const bool& data){subFilesHandlingStatusChanged(data);}, + [this](const bool&, const bool& data){subFilesHandlingStatusChanged(data);}, [this](){tryStoreSettingsConfig();}, true)), mSetting_Font_SearchView(createFontSettingsItem(sFont_SearchView, - [this](const QFont& data){font_SearchViewChanged(data);}, + [this](const QFont&, const QFont& data){font_SearchViewChanged(data);}, [this](){tryStoreSettingsConfig();}, QFont("sans-serif", 9))), mUML_FeatureActiveProtector(), mSetting_UML_FeatureActive(createBooleanSettingsItem(sUML_FeatureActiveKey, - [this](const bool& data){UML_FeatureActiveChanged(data);}, + [this](const bool&, const bool& data){UML_FeatureActiveChanged(data);}, [this](){tryStoreSettingsConfig();}, true)), mSetting_UML_MaxNumberOfRowsInDiagram(createArithmeticSettingsItem(sUML_MaxNumberOfRowsInDiagramKey, - [this](const int& data){UML_MaxNumberOfRowsInDiagramChanged(data);}, + [this](const int&, const int& data){UML_MaxNumberOfRowsInDiagramChanged(data);}, [this](){tryStoreRootConfig();}, 1000)), mSetting_UML_ShowArguments(createBooleanSettingsItem(sUML_ShowArgumentsKey, - [this](const bool& data){UML_ShowArgumentsChanged(data);}, + [this](const bool&, const bool& data){UML_ShowArgumentsChanged(data);}, [this](){tryStoreSettingsConfig();}, true)), mSetting_UML_WrapOutput(createBooleanSettingsItem(sUML_WrapOutputKey, - [this](const bool& data){UML_WrapOutputChanged(data);}, + [this](const bool&, const bool& data){UML_WrapOutputChanged(data);}, [this](){tryStoreSettingsConfig();}, true)), mSetting_UML_Autonumber(createBooleanSettingsItem(sUML_AutonumberKey, - [this](const bool& data){UML_AutonumberChanged(data);}, + [this](const bool&, const bool& data){UML_AutonumberChanged(data);}, [this](){tryStoreSettingsConfig();}, true)), mPlotViewFeatureActiveProtector(), mSetting_PlotViewFeatureActive(createBooleanSettingsItem(sPlotViewFeatureActiveKey, - [this](const bool& data){plotViewFeatureActiveChanged(data);}, + [this](const bool&, const bool& data){plotViewFeatureActiveChanged(data);}, [this](){tryStoreSettingsConfig();}, true)), mSetting_FiltersCompletion_CaseSensitive(createBooleanSettingsItem(sFiltersCompletion_CaseSensitiveKey, - [this](const bool& data){filtersCompletion_CaseSensitiveChanged(data);}, + [this](const bool&, const bool& data){filtersCompletion_CaseSensitiveChanged(data);}, [this](){tryStoreSettingsConfig();}, false)), mSetting_FiltersCompletion_MaxNumberOfSuggestions(createRangedArithmeticSettingsItem(sFiltersCompletion_MaxNumberOfSuggestionsKey, - [this](const int& data){filtersCompletion_MaxNumberOfSuggestionsChanged(data);}, + [this](const int&, const int& data){filtersCompletion_MaxNumberOfSuggestionsChanged(data);}, [this](){tryStoreSettingsConfig();}, TRangedSettingItem::tOptionalAllowedRange(TRangedSettingItem::tAllowedRange(1, 1000)), 200)), mSetting_FiltersCompletion_MaxCharactersInSuggestion(createRangedArithmeticSettingsItem(sFiltersCompletion_MaxCharactersInSuggestionKey, - [this](const int& data){filtersCompletion_MaxCharactersInSuggestionChanged(data);}, + [this](const int&, const int& data){filtersCompletion_MaxCharactersInSuggestionChanged(data);}, [this](){tryStoreSettingsConfig();}, TRangedSettingItem::tOptionalAllowedRange(TRangedSettingItem::tAllowedRange(1, 1000)), 200)), mSetting_FiltersCompletion_CompletionPopUpWidth(createRangedArithmeticSettingsItem(sFiltersCompletion_CompletionPopUpWidthKey, - [this](const int& data){filtersCompletion_CompletionPopUpWidthChanged(data);}, + [this](const int&, const int& data){filtersCompletion_CompletionPopUpWidthChanged(data);}, [this](){tryStoreSettingsConfig();}, TRangedSettingItem::tOptionalAllowedRange(TRangedSettingItem::tAllowedRange(100, 1000)), 400)), mSetting_FiltersCompletion_SearchPolicy(createBooleanSettingsItem(sFiltersCompletion_SearchPolicyKey, - [this](const bool& data){filtersCompletion_SearchPolicyChanged(data);}, + [this](const bool&, const bool& data){filtersCompletion_SearchPolicyChanged(data);}, [this](){tryStoreSettingsConfig();}, false)), mSetting_RegexCompletion_CaseSensitive(createBooleanSettingsItem(sRegexCompletion_CaseSensitiveKey, - [this](const bool& data){regexCompletion_CaseSensitiveChanged(data);}, + [this](const bool&, const bool& data){regexCompletion_CaseSensitiveChanged(data);}, [this](){tryStoreSettingsConfig();}, false)), mSetting_RegexCompletion_SearchPolicy(createBooleanSettingsItem(sRegexCompletion_SearchPolicyKey, - [this](const bool& data){regexCompletion_SearchPolicyChanged(data);}, + [this](const bool&, const bool& data){regexCompletion_SearchPolicyChanged(data);}, [this](){tryStoreSettingsConfig();}, false)), mSetting_SearchViewLastColumnWidthStrategy(createRangedArithmeticSettingsItem(sSearchViewLastColumnWidthStrategyKey, - [this](const int& data){searchViewLastColumnWidthStrategyChanged(data);}, + [this](const int&, const int& data){searchViewLastColumnWidthStrategyChanged(data);}, [this](){tryStoreSettingsConfig();}, TRangedSettingItem::tOptionalAllowedRange(TRangedSettingItem::tAllowedRange(static_cast(eSearchViewLastColumnWidthStrategy::eReset), static_cast(eSearchViewLastColumnWidthStrategy::eFitToContent))), static_cast(eSearchViewLastColumnWidthStrategy::eFitToContent))), mSetting_PlantumlPathMode(createRangedArithmeticSettingsItem(sPlantumlPathMode, - [this](const int& data){plantumlPathModeChanged(data);}, + [this](const int&, const int& data){plantumlPathModeChanged(data);}, [this](){tryStoreSettingsConfig();}, TRangedSettingItem::tOptionalAllowedRange(TRangedSettingItem::tAllowedRange(static_cast(ePathMode::eUseDefaultPath), static_cast(ePathMode::eLast) - 1)), static_cast(ePathMode::eUseDefaultPath))), mSetting_PlantumlPathEnvVar(createStringSettingsItem(sPlantumlPathEnvVar, - [this](const QString& data){plantumlPathEnvVarChanged(data);}, + [this](const QString&, const QString& data){plantumlPathEnvVarChanged(data);}, [this](){tryStoreSettingsConfig();}, "")), mSetting_PlantumlCustomPath(createStringSettingsItem(sPlantumlCustomPath, - [this](const QString& data){plantumlCustomPathChanged(data);}, + [this](const QString&, const QString& data){plantumlCustomPathChanged(data);}, [this](){tryStoreSettingsConfig();}, "")), mSetting_JavaPathMode(createRangedArithmeticSettingsItem(sJavaPathMode, - [this](const int& data){javaPathModeChanged(data);}, + [this](const int&, const int& data){javaPathModeChanged(data);}, [this](){tryStoreSettingsConfig();}, TRangedSettingItem::tOptionalAllowedRange(TRangedSettingItem::tAllowedRange(static_cast(ePathMode::eUseDefaultPath), static_cast(ePathMode::eLast) - 1)), static_cast(ePathMode::eUseDefaultPath))), mSetting_JavaPathEnvVar(createStringSettingsItem(sJavaPathEnvVar, - [this](const QString& data){javaPathEnvVarChanged(data);}, + [this](const QString&, const QString& data){javaPathEnvVarChanged(data);}, [this](){tryStoreSettingsConfig();}, "")), mSetting_JavaCustomPath(createStringSettingsItem(sJavaCustomPath, - [this](const QString& data){javaCustomPathChanged(data);}, + [this](const QString&, const QString& data){javaCustomPathChanged(data);}, [this](){tryStoreSettingsConfig();}, "")), mSetting_GroupedViewFeatureActive(createBooleanSettingsItem(sGroupedViewFeatureActive, - [this](const bool& data){groupedViewFeatureActiveChanged(data);}, + [this](const bool&, const bool& data){groupedViewFeatureActiveChanged(data);}, [this](){tryStoreSettingsConfig();}, true)), mSetting_RegexUsageStatistics(createRegexUsageStatisticsItemMapSettingsItem(sRegexUsageStatisticsKey, - [this](const tRegexUsageStatisticsItemMap& data){ regexUsageStatisticsChanged(data); }, + [this](const tRegexUsageStatisticsItemMap&, + const tRegexUsageStatisticsItemMap& data){ regexUsageStatisticsChanged(data); }, []() { // this data is not critical and is stored to file ONLY during exit. diff --git a/dltmessageanalyzerplugin/src/components/settings/src/TSettingItem.hpp b/dltmessageanalyzerplugin/src/components/settings/src/TSettingItem.hpp index b46727c3..92cbe70a 100644 --- a/dltmessageanalyzerplugin/src/components/settings/src/TSettingItem.hpp +++ b/dltmessageanalyzerplugin/src/components/settings/src/TSettingItem.hpp @@ -16,7 +16,7 @@ class TSettingItem : public CSettingItem public: typedef T tData; - typedef std::function tUpdateDataFunc; + typedef std::function tUpdateDataFunc; typedef std::function tWriteDataFunction; typedef std::function tReadDataFunction; @@ -82,7 +82,9 @@ class TSettingItem : public CSettingItem } /** - * @brief getUpdateDataFunc - ( implementation of ISettingItem ) - reference to the update data function, to trigger update + * @brief getUpdateDataFunc - ( implementation of ISettingItem ) - reference + * to the update data function, to trigger update + * Note! Does not pass the 'old data' to an update. * @return - reference to the update data function */ tGeneralUpdateDataFunc getGeneralUpdateDataFunc() override @@ -91,7 +93,7 @@ class TSettingItem : public CSettingItem { if(mUpdateDataFunc) { - mUpdateDataFunc.operator()(mData); + mUpdateDataFunc.operator()(tData(), mData); } }; return result; @@ -109,11 +111,12 @@ class TSettingItem : public CSettingItem if(true == bUpdate) { + tData oldData = mData; mData = data; if(mUpdateDataFunc) { - mUpdateDataFunc(mData); + mUpdateDataFunc(oldData, data); } } @@ -232,11 +235,12 @@ class TRangedSettingItem: public TSettingItem { const auto& normalizedValue = normalizeData(data); + tData oldData = tParent::mData; tParent::mData = normalizedValue; if(tParent::mUpdateDataFunc) { - tParent::mUpdateDataFunc(tParent::mData); + tParent::mUpdateDataFunc(oldData, tParent::mData); } } diff --git a/dltmessageanalyzerplugin/src/dltmessageanalyzerplugin.cpp b/dltmessageanalyzerplugin/src/dltmessageanalyzerplugin.cpp index e5a7b28f..dcdbca0e 100644 --- a/dltmessageanalyzerplugin/src/dltmessageanalyzerplugin.cpp +++ b/dltmessageanalyzerplugin/src/dltmessageanalyzerplugin.cpp @@ -39,6 +39,11 @@ #include "components/filtersView/api/CFiltersView.hpp" #include "components/regexHistory/api/CRegexHistoryComponent.hpp" +#include "components/searchView/api/ISearchResultModel.hpp" +#include "components/groupedView/api/CGroupedView.hpp" +#include "components/searchView/api/CSearchResultView.hpp" +#include "components/groupedView/api/IGroupedViewModel.hpp" + #include "DMA_Plantuml.hpp" Q_DECLARE_METATYPE(tMsgWrapperPtr) @@ -343,6 +348,46 @@ QWidget* DLTMessageAnalyzerPlugin::initViewer() mComponents.push_back(pRegexHistoryComponent); } + connect(mpGroupedViewComponent->getGroupedView(), &CGroupedView::searchViewHighlightingRequested, + this, [this](const tMsgIdSet& msgs) + { + auto pSearchModel = mpSearchViewComponent->getSearchResultModel(); + auto* pSearchView = mpSearchViewComponent->getSearchResultView(); + + if(false == msgs.empty() && + nullptr != mpSearchViewComponent->getSearchResultModel() && + nullptr != mpSearchViewComponent->getSearchResultView() && + nullptr != mpGroupedViewComponent->getGroupedView()) + { + pSearchModel->setHighlightedRows(msgs); + auto jumpRow = pSearchModel->getRowByMsgId(*msgs.begin()); + + if(jumpRow >= 0) + { + pSearchView->clearSelection(); + pSearchView->selectRow(jumpRow); + + auto selectedRows = pSearchView->selectionModel()->selectedRows(); + + if(false == selectedRows.empty()) + { + pSearchView->scrollTo(selectedRows[0]); + } + + if(nullptr != mpForm) + { + auto* pMainWidget = mpForm->getMainTabWidget(); + + if(nullptr != pMainWidget) + { + // switch to search view. + pMainWidget->setCurrentIndex(0); + } + } + } + } + }); + connect( qApp, &QApplication::aboutToQuit, [this]() { for(auto& pComponent : mComponents) @@ -461,6 +506,23 @@ QWidget* DLTMessageAnalyzerPlugin::initViewer() { switchFromFileView(); } + + if( false == analysisRunning ) + { + auto* pMainWidget = mpForm->getMainTabWidget(); + + if(nullptr != pMainWidget) + { + const auto currentIndex = pMainWidget->currentIndex(); + if(2 == currentIndex) + { + if(mpGroupedViewComponent->getGroupedViewModel()) + { + mpGroupedViewComponent->getGroupedViewModel()->sortByCurrentSortingColumn(); + } + } + } + } }); } diff --git a/dltmessageanalyzerplugin/src/plugin/src/CDLTMessageAnalyzer.cpp b/dltmessageanalyzerplugin/src/plugin/src/CDLTMessageAnalyzer.cpp index 6e60dd1e..12e8025d 100644 --- a/dltmessageanalyzerplugin/src/plugin/src/CDLTMessageAnalyzer.cpp +++ b/dltmessageanalyzerplugin/src/plugin/src/CDLTMessageAnalyzer.cpp @@ -1070,6 +1070,13 @@ void CDLTMessageAnalyzer::cancel() mpGroupedViewModel->resetData(); mpSearchResultModel->resetData(); + + if(nullptr != mpCustomPlotExtended) + { + mpCustomPlotExtended->reset(); + mpCustomPlotExtended->replot(); + } + mpFiltersModel->resetCompletionData(); updateProgress(0, eRequestState::SUCCESSFUL, true); diff --git a/md/dev_docs/puml/DMA_Analyzer_API.puml b/md/dev_docs/puml/DMA_Analyzer_API.puml index 182cc186..47a5bcb0 100644 --- a/md/dev_docs/puml/DMA_Analyzer_API.puml +++ b/md/dev_docs/puml/DMA_Analyzer_API.puml @@ -69,7 +69,7 @@ class "IFileWrapper" + {abstract} virtual bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) = 0 + {abstract} virtual bool getSubFilesHandlingStatus() const = 0 + {abstract} virtual bool isFiltered() const = 0 - + {abstract} virtual int getMsgRealPos(int msgId) const = 0 + + {abstract} virtual int getMsgIdFromIndexInMainTable(int msgIdxInMainTable) const = 0 + {abstract} virtual int getNumberOfFiles() const = 0 + {abstract} virtual int size() const = 0 + {abstract} virtual int sizeNonFiltered() const = 0 diff --git a/md/dev_docs/puml/DMA_Analyzer_API.svg b/md/dev_docs/puml/DMA_Analyzer_API.svg index d2067626..658dc601 100644 --- a/md/dev_docs/puml/DMA_Analyzer_API.svg +++ b/md/dev_docs/puml/DMA_Analyzer_API.svg @@ -1,29 +1,29 @@ -DMA_AnalyzerDMA_Analyzer_APIDMA_Framework_ComponentDMA_LogsWrapper_APIDMA_PluginDMA_Plugin_APIDMA_RegexHistoryDMA_RegexHistory_APIDMA_Settings_APIQtCContinuousAnalyzerCMTAnalyzerCSubConsumerCAnalyzerComponentIDLTMessageAnalyzerControllervirtual int getMaximumNumberOfThreads() const = 0signal void progressNotification( const tProgressNotificationData& progressNotificationData )virtual tRequestId requestAnalyze( const std::weak_ptr<IDLTMessageAnalyzerControllerConsumer>&pClient, const tRequestParameters& requestParameters ) = 0virtual void cancelRequest( const std::weak_ptr<IDLTMessageAnalyzerControllerConsumer>& pClient,const tRequestId& requestId ) = 0IDLTMessageAnalyzerControllerConsumervirtual slot void progressNotification( const tProgressNotificationData& progressNotificationData ) = 0tRequestId requestAnalyze( const tRequestParameters& requestParameters )std::enable_shared_from_thisIDLTMessageAnalyzerControllerConsumerDMA::IComponentIFileWrappervirtual QString getCacheStatusAsString() const = 0virtual QString getFileName(int num = 0) = 0virtual bool cacheMsgByIndex( const tMsgId& msgId ) = 0virtual bool cacheMsgByIndexes( const QSet<tMsgId> msgIdSet ) = 0virtual bool cacheMsgByRange( const tIntRange& msgRange ) = 0virtual bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) = 0virtual bool getSubFilesHandlingStatus() const = 0virtual bool isFiltered() const = 0virtual int getMsgRealPos(int msgId) const = 0virtual int getNumberOfFiles() const = 0virtual int size() const = 0virtual int sizeNonFiltered() const = 0signal void currentSizeMbChanged(tCacheSizeMB MBytes)signal void fullChanged(bool isFull)signal void isEnabledChanged(bool isEnabled)signal void loadChanged(unsigned int percents)signal void maxSizeMbChanged(tCacheSizeMB MBytes)virtual tIntRangeProperty normalizeSearchRange( const tIntRangeProperty& inputRange) = 0virtual tMsgWrapperPtr getMsg(const tMsgId& msgId) = 0virtual virtual tIntRangeList getSubFilesSizeRanges() const = 0virtual void copyFileNameToClipboard( const int& msgId ) const = 0virtual void copyFileNamesToClipboard( const tIntRange& msgsRange ) const = 0virtual void resetCache() = 0virtual void setEnableCache(bool isEnabled) = 0virtual void setMaxCacheSize(const tCacheSizeB& cacheSize ) = 0virtual void setMessageDecoder( IMsgDecoder* pMessageDecoder ) = 0virtual void setSubFilesHandlingStatus(const bool& val) = 0DLTMessageAnalyzerPluginCDLTMessageAnalyzerCRegexHistoryProviderCRegexHistoryComponentCSettingsManagerClientQObjectDMA_AnalyzerDMA_Analyzer_APIDMA_Framework_ComponentDMA_LogsWrapper_APIDMA_PluginDMA_Plugin_APIDMA_RegexHistoryDMA_RegexHistory_APIDMA_Settings_APIQtCContinuousAnalyzerCMTAnalyzerCSubConsumerCAnalyzerComponentIDLTMessageAnalyzerControllervirtual int getMaximumNumberOfThreads() const = 0signal void progressNotification( const tProgressNotificationData& progressNotificationData )virtual tRequestId requestAnalyze( const std::weak_ptr<IDLTMessageAnalyzerControllerConsumer>&pClient, const tRequestParameters& requestParameters ) = 0virtual void cancelRequest( const std::weak_ptr<IDLTMessageAnalyzerControllerConsumer>& pClient,const tRequestId& requestId ) = 0IDLTMessageAnalyzerControllerConsumervirtual slot void progressNotification( const tProgressNotificationData& progressNotificationData ) = 0tRequestId requestAnalyze( const tRequestParameters& requestParameters )std::enable_shared_from_thisIDLTMessageAnalyzerControllerConsumerDMA::IComponentIFileWrappervirtual QString getCacheStatusAsString() const = 0virtual QString getFileName(int num = 0) = 0virtual bool cacheMsgByIndex( const tMsgId& msgId ) = 0virtual bool cacheMsgByIndexes( const QSet<tMsgId> msgIdSet ) = 0virtual bool cacheMsgByRange( const tIntRange& msgRange ) = 0virtual bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) = 0virtual bool getSubFilesHandlingStatus() const = 0virtual bool isFiltered() const = 0virtual int getMsgIdFromIndexInMainTable(int msgIdxInMainTable) const = 0virtual int getNumberOfFiles() const = 0virtual int size() const = 0virtual int sizeNonFiltered() const = 0signal void currentSizeMbChanged(tCacheSizeMB MBytes)signal void fullChanged(bool isFull)signal void isEnabledChanged(bool isEnabled)signal void loadChanged(unsigned int percents)signal void maxSizeMbChanged(tCacheSizeMB MBytes)virtual tIntRangeProperty normalizeSearchRange( const tIntRangeProperty& inputRange) = 0virtual tMsgWrapperPtr getMsg(const tMsgId& msgId) = 0virtual virtual tIntRangeList getSubFilesSizeRanges() const = 0virtual void copyFileNameToClipboard( const int& msgId ) const = 0virtual void copyFileNamesToClipboard( const tIntRange& msgsRange ) const = 0virtual void resetCache() = 0virtual void setEnableCache(bool isEnabled) = 0virtual void setMaxCacheSize(const tCacheSizeB& cacheSize ) = 0virtual void setMessageDecoder( IMsgDecoder* pMessageDecoder ) = 0virtual void setSubFilesHandlingStatus(const bool& val) = 0DLTMessageAnalyzerPluginCDLTMessageAnalyzerCRegexHistoryProviderCRegexHistoryComponentCSettingsManagerClientQObjectimplementsuses11implementscontains11gets and feeds to IDLTMessageAnalyzerControllerConsumer11uses11passes11passes11DLTDMA_LogsWrapperDMA_LogsWrapper_APIQDltFileQDltMsgCDLTFileWrapperCDLTMsgDecoderCDLTMsgWrapperCLogsWrapperComponentIFileWrappervirtual QString getCacheStatusAsString() const = 0virtual QString getFileName(int num = 0) = 0virtual bool cacheMsgByIndex( const tMsgId& msgId ) = 0virtual bool cacheMsgByIndexes( const QSet<tMsgId> msgIdSet ) = 0virtual bool cacheMsgByRange( const tIntRange& msgRange ) = 0virtual bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) = 0virtual bool getSubFilesHandlingStatus() const = 0virtual bool isFiltered() const = 0virtual int getMsgRealPos(int msgId) const = 0virtual int getNumberOfFiles() const = 0virtual int size() const = 0virtual int sizeNonFiltered() const = 0signal void currentSizeMbChanged(tCacheSizeMB MBytes)signal void fullChanged(bool isFull)signal void isEnabledChanged(bool isEnabled)signal void loadChanged(unsigned int percents)signal void maxSizeMbChanged(tCacheSizeMB MBytes)virtual tIntRangeProperty normalizeSearchRange( const tIntRangeProperty& inputRange) = 0virtual tMsgWrapperPtr getMsg(const tMsgId& msgId) = 0virtual virtual tIntRangeList getSubFilesSizeRanges() const = 0virtual void copyFileNameToClipboard( const int& msgId ) const = 0virtual void copyFileNamesToClipboard( const tIntRange& msgsRange ) const = 0virtual void resetCache() = 0virtual void setEnableCache(bool isEnabled) = 0virtual void setMaxCacheSize(const tCacheSizeB& cacheSize ) = 0virtual void setMessageDecoder( IMsgDecoder* pMessageDecoder ) = 0virtual void setSubFilesHandlingStatus(const bool& val) = 0IMsgDecodervirtual void decodeMsg(QDltMsg&, int) = 0IMsgWrappervirtual QString getApid() const = 0virtual QString getCtid() const = 0virtual QString getCtrlReturnTypeString() const = 0virtual QString getCtrlServiceIdString() const = 0virtual QString getEcuid() const = 0virtual QString getModeString() const = 0virtual QString getPayload() const = 0virtual QString getSubtypeString() const = 0virtual QString getTimeString() const = 0virtual QString getTypeString() const = 0virtual const unsigned char& getMessageCounter() const = 0virtual const unsigned int& getMicroseconds() const = 0virtual const unsigned int& getNumberOfArguments() const = 0virtual const unsigned int& getSessionid() const = 0virtual const unsigned int& getTimestamp() const = 0virtual unsigned int getInitialMessageSize() const = 0virtual unsigned int getSize() const = 0virtual void dumpPayload() const = 0virtual void dumpSize() const = 0DLTDMA_LogsWrapperDMA_LogsWrapper_APIQDltFileQDltMsgCDLTFileWrapperCDLTMsgDecoderCDLTMsgWrapperCLogsWrapperComponentIFileWrappervirtual QString getCacheStatusAsString() const = 0virtual QString getFileName(int num = 0) = 0virtual bool cacheMsgByIndex( const tMsgId& msgId ) = 0virtual bool cacheMsgByIndexes( const QSet<tMsgId> msgIdSet ) = 0virtual bool cacheMsgByRange( const tIntRange& msgRange ) = 0virtual bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) = 0virtual bool getSubFilesHandlingStatus() const = 0virtual bool isFiltered() const = 0virtual int getMsgIdFromIndexInMainTable(int msgIdxInMainTable) const = 0virtual int getNumberOfFiles() const = 0virtual int size() const = 0virtual int sizeNonFiltered() const = 0signal void currentSizeMbChanged(tCacheSizeMB MBytes)signal void fullChanged(bool isFull)signal void isEnabledChanged(bool isEnabled)signal void loadChanged(unsigned int percents)signal void maxSizeMbChanged(tCacheSizeMB MBytes)virtual tIntRangeProperty normalizeSearchRange( const tIntRangeProperty& inputRange) = 0virtual tMsgWrapperPtr getMsg(const tMsgId& msgId) = 0virtual virtual tIntRangeList getSubFilesSizeRanges() const = 0virtual void copyFileNameToClipboard( const int& msgId ) const = 0virtual void copyFileNamesToClipboard( const tIntRange& msgsRange ) const = 0virtual void resetCache() = 0virtual void setEnableCache(bool isEnabled) = 0virtual void setMaxCacheSize(const tCacheSizeB& cacheSize ) = 0virtual void setMessageDecoder( IMsgDecoder* pMessageDecoder ) = 0virtual void setSubFilesHandlingStatus(const bool& val) = 0IMsgDecodervirtual void decodeMsg(QDltMsg&, int) = 0IMsgWrappervirtual QString getApid() const = 0virtual QString getCtid() const = 0virtual QString getCtrlReturnTypeString() const = 0virtual QString getCtrlServiceIdString() const = 0virtual QString getEcuid() const = 0virtual QString getModeString() const = 0virtual QString getPayload() const = 0virtual QString getSubtypeString() const = 0virtual QString getTimeString() const = 0virtual QString getTypeString() const = 0virtual const unsigned char& getMessageCounter() const = 0virtual const unsigned int& getMicroseconds() const = 0virtual const unsigned int& getNumberOfArguments() const = 0virtual const unsigned int& getSessionid() const = 0virtual const unsigned int& getTimestamp() const = 0virtual unsigned int getInitialMessageSize() const = 0virtual unsigned int getSize() const = 0virtual void dumpPayload() const = 0virtual void dumpSize() const = 0implementsimplementsimplementsuses11creates instances1*creates instances1*creates instances1*creates instances1*DLTDMA_Analyzer_APIDMA_Framework_ComponentDMA_LogsWrapperDMA_LogsWrapper_APIDMA_PluginDMA_Plugin_APIDMA_SearchViewDMA_SearchView_APIQtQDltFileQDltMsgIDLTMessageAnalyzerControllervirtual int getMaximumNumberOfThreads() const = 0signal void progressNotification( const tProgressNotificationData& progressNotificationData )virtual tRequestId requestAnalyze( const std::weak_ptr<IDLTMessageAnalyzerControllerConsumer>&pClient, const tRequestParameters& requestParameters ) = 0virtual void cancelRequest( const std::weak_ptr<IDLTMessageAnalyzerControllerConsumer>& pClient,const tRequestId& requestId ) = 0IDLTMessageAnalyzerControllerConsumervirtual slot void progressNotification( const tProgressNotificationData& progressNotificationData ) = 0tRequestId requestAnalyze( const tRequestParameters& requestParameters )DMA::IComponentCDLTFileWrapperCDLTMsgDecoderCDLTMsgWrapperCLogsWrapperComponentIDLTLogsWrapperCreatorvirtual tFileWrapperPtr createDLTFileWrapper( QDltFile* pFile ) const = 0virtual tMsgDecoderPtr createMsgDecoder(QDltMessageDecoder* pMessageDecoder) const = 0virtual tMsgWrapperPtr createDLTMsgWrapper( QDltMsg& msg ) const = 0IFileWrappervirtual QString getCacheStatusAsString() const = 0virtual QString getFileName(int num = 0) = 0virtual bool cacheMsgByIndex( const tMsgId& msgId ) = 0virtual bool cacheMsgByIndexes( const QSet<tMsgId> msgIdSet ) = 0virtual bool cacheMsgByRange( const tIntRange& msgRange ) = 0virtual bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) = 0virtual bool getSubFilesHandlingStatus() const = 0virtual bool isFiltered() const = 0virtual int getMsgRealPos(int msgId) const = 0virtual int getNumberOfFiles() const = 0virtual int size() const = 0virtual int sizeNonFiltered() const = 0signal void currentSizeMbChanged(tCacheSizeMB MBytes)signal void fullChanged(bool isFull)signal void isEnabledChanged(bool isEnabled)signal void loadChanged(unsigned int percents)signal void maxSizeMbChanged(tCacheSizeMB MBytes)virtual tIntRangeProperty normalizeSearchRange( const tIntRangeProperty& inputRange) = 0virtual tMsgWrapperPtr getMsg(const tMsgId& msgId) = 0virtual virtual tIntRangeList getSubFilesSizeRanges() const = 0virtual void copyFileNameToClipboard( const int& msgId ) const = 0virtual void copyFileNamesToClipboard( const tIntRange& msgsRange ) const = 0virtual void resetCache() = 0virtual void setEnableCache(bool isEnabled) = 0virtual void setMaxCacheSize(const tCacheSizeB& cacheSize ) = 0virtual void setMessageDecoder( IMsgDecoder* pMessageDecoder ) = 0virtual void setSubFilesHandlingStatus(const bool& val) = 0IMsgDecodervirtual void decodeMsg(QDltMsg&, int) = 0IMsgWrappervirtual QString getApid() const = 0virtual QString getCtid() const = 0virtual QString getCtrlReturnTypeString() const = 0virtual QString getCtrlServiceIdString() const = 0virtual QString getEcuid() const = 0virtual QString getModeString() const = 0virtual QString getPayload() const = 0virtual QString getSubtypeString() const = 0virtual QString getTimeString() const = 0virtual QString getTypeString() const = 0virtual const unsigned char& getMessageCounter() const = 0virtual const unsigned int& getMicroseconds() const = 0virtual const unsigned int& getNumberOfArguments() const = 0virtual const unsigned int& getSessionid() const = 0virtual const unsigned int& getTimestamp() const = 0virtual unsigned int getInitialMessageSize() const = 0virtual unsigned int getSize() const = 0virtual void dumpPayload() const = 0virtual void dumpSize() const = 0DLTMessageAnalyzerPluginCDLTMessageAnalyzerCSearchResultModelCSearchResultViewQObjectQDltMessageDecoderDLTDMA_Analyzer_APIDMA_Framework_ComponentDMA_LogsWrapperDMA_LogsWrapper_APIDMA_PluginDMA_Plugin_APIDMA_SearchViewDMA_SearchView_APIQtQDltFileQDltMsgIDLTMessageAnalyzerControllervirtual int getMaximumNumberOfThreads() const = 0signal void progressNotification( const tProgressNotificationData& progressNotificationData )virtual tRequestId requestAnalyze( const std::weak_ptr<IDLTMessageAnalyzerControllerConsumer>&pClient, const tRequestParameters& requestParameters ) = 0virtual void cancelRequest( const std::weak_ptr<IDLTMessageAnalyzerControllerConsumer>& pClient,const tRequestId& requestId ) = 0IDLTMessageAnalyzerControllerConsumervirtual slot void progressNotification( const tProgressNotificationData& progressNotificationData ) = 0tRequestId requestAnalyze( const tRequestParameters& requestParameters )DMA::IComponentCDLTFileWrapperCDLTMsgDecoderCDLTMsgWrapperCLogsWrapperComponentIDLTLogsWrapperCreatorvirtual tFileWrapperPtr createDLTFileWrapper( QDltFile* pFile ) const = 0virtual tMsgDecoderPtr createMsgDecoder(QDltMessageDecoder* pMessageDecoder) const = 0virtual tMsgWrapperPtr createDLTMsgWrapper( QDltMsg& msg ) const = 0IFileWrappervirtual QString getCacheStatusAsString() const = 0virtual QString getFileName(int num = 0) = 0virtual bool cacheMsgByIndex( const tMsgId& msgId ) = 0virtual bool cacheMsgByIndexes( const QSet<tMsgId> msgIdSet ) = 0virtual bool cacheMsgByRange( const tIntRange& msgRange ) = 0virtual bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) = 0virtual bool getSubFilesHandlingStatus() const = 0virtual bool isFiltered() const = 0virtual int getMsgIdFromIndexInMainTable(int msgIdxInMainTable) const = 0virtual int getNumberOfFiles() const = 0virtual int size() const = 0virtual int sizeNonFiltered() const = 0signal void currentSizeMbChanged(tCacheSizeMB MBytes)signal void fullChanged(bool isFull)signal void isEnabledChanged(bool isEnabled)signal void loadChanged(unsigned int percents)signal void maxSizeMbChanged(tCacheSizeMB MBytes)virtual tIntRangeProperty normalizeSearchRange( const tIntRangeProperty& inputRange) = 0virtual tMsgWrapperPtr getMsg(const tMsgId& msgId) = 0virtual virtual tIntRangeList getSubFilesSizeRanges() const = 0virtual void copyFileNameToClipboard( const int& msgId ) const = 0virtual void copyFileNamesToClipboard( const tIntRange& msgsRange ) const = 0virtual void resetCache() = 0virtual void setEnableCache(bool isEnabled) = 0virtual void setMaxCacheSize(const tCacheSizeB& cacheSize ) = 0virtual void setMessageDecoder( IMsgDecoder* pMessageDecoder ) = 0virtual void setSubFilesHandlingStatus(const bool& val) = 0IMsgDecodervirtual void decodeMsg(QDltMsg&, int) = 0IMsgWrappervirtual QString getApid() const = 0virtual QString getCtid() const = 0virtual QString getCtrlReturnTypeString() const = 0virtual QString getCtrlServiceIdString() const = 0virtual QString getEcuid() const = 0virtual QString getModeString() const = 0virtual QString getPayload() const = 0virtual QString getSubtypeString() const = 0virtual QString getTimeString() const = 0virtual QString getTypeString() const = 0virtual const unsigned char& getMessageCounter() const = 0virtual const unsigned int& getMicroseconds() const = 0virtual const unsigned int& getNumberOfArguments() const = 0virtual const unsigned int& getSessionid() const = 0virtual const unsigned int& getTimestamp() const = 0virtual unsigned int getInitialMessageSize() const = 0virtual unsigned int getSize() const = 0virtual void dumpPayload() const = 0virtual void dumpSize() const = 0DLTMessageAnalyzerPluginCDLTMessageAnalyzerCSearchResultModelCSearchResultViewQObjectQDltMessageDecoderimplementsimplementsimplementscontains11uses11uses11uses11uses11DMA_Framework_ComponentDMA_LogsWrapper_APIQtDMA::IComponentCLogsWrapperComponentIDLTLogsWrapperCreatorvirtual tFileWrapperPtr createDLTFileWrapper( QDltFile* pFile ) const = 0virtual tMsgDecoderPtr createMsgDecoder(QDltMessageDecoder* pMessageDecoder) const = 0virtual tMsgWrapperPtr createDLTMsgWrapper( QDltMsg& msg ) const = 0IFileWrappervirtual QString getCacheStatusAsString() const = 0virtual QString getFileName(int num = 0) = 0virtual bool cacheMsgByIndex( const tMsgId& msgId ) = 0virtual bool cacheMsgByIndexes( const QSet<tMsgId> msgIdSet ) = 0virtual bool cacheMsgByRange( const tIntRange& msgRange ) = 0virtual bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) = 0virtual bool getSubFilesHandlingStatus() const = 0virtual bool isFiltered() const = 0virtual int getMsgRealPos(int msgId) const = 0virtual int getNumberOfFiles() const = 0virtual int size() const = 0virtual int sizeNonFiltered() const = 0signal void currentSizeMbChanged(tCacheSizeMB MBytes)signal void fullChanged(bool isFull)signal void isEnabledChanged(bool isEnabled)signal void loadChanged(unsigned int percents)signal void maxSizeMbChanged(tCacheSizeMB MBytes)virtual tIntRangeProperty normalizeSearchRange( const tIntRangeProperty& inputRange) = 0virtual tMsgWrapperPtr getMsg(const tMsgId& msgId) = 0virtual virtual tIntRangeList getSubFilesSizeRanges() const = 0virtual void copyFileNameToClipboard( const int& msgId ) const = 0virtual void copyFileNamesToClipboard( const tIntRange& msgsRange ) const = 0virtual void resetCache() = 0virtual void setEnableCache(bool isEnabled) = 0virtual void setMaxCacheSize(const tCacheSizeB& cacheSize ) = 0virtual void setMessageDecoder( IMsgDecoder* pMessageDecoder ) = 0virtual void setSubFilesHandlingStatus(const bool& val) = 0IMsgDecodervirtual void decodeMsg(QDltMsg&, int) = 0IMsgWrappervirtual QString getApid() const = 0virtual QString getCtid() const = 0virtual QString getCtrlReturnTypeString() const = 0virtual QString getCtrlServiceIdString() const = 0virtual QString getEcuid() const = 0virtual QString getModeString() const = 0virtual QString getPayload() const = 0virtual QString getSubtypeString() const = 0virtual QString getTimeString() const = 0virtual QString getTypeString() const = 0virtual const unsigned char& getMessageCounter() const = 0virtual const unsigned int& getMicroseconds() const = 0virtual const unsigned int& getNumberOfArguments() const = 0virtual const unsigned int& getSessionid() const = 0virtual const unsigned int& getTimestamp() const = 0virtual unsigned int getInitialMessageSize() const = 0virtual unsigned int getSize() const = 0virtual void dumpPayload() const = 0virtual void dumpSize() const = 0QObjectDMA_Framework_ComponentDMA_LogsWrapper_APIQtDMA::IComponentCLogsWrapperComponentIDLTLogsWrapperCreatorvirtual tFileWrapperPtr createDLTFileWrapper( QDltFile* pFile ) const = 0virtual tMsgDecoderPtr createMsgDecoder(QDltMessageDecoder* pMessageDecoder) const = 0virtual tMsgWrapperPtr createDLTMsgWrapper( QDltMsg& msg ) const = 0IFileWrappervirtual QString getCacheStatusAsString() const = 0virtual QString getFileName(int num = 0) = 0virtual bool cacheMsgByIndex( const tMsgId& msgId ) = 0virtual bool cacheMsgByIndexes( const QSet<tMsgId> msgIdSet ) = 0virtual bool cacheMsgByRange( const tIntRange& msgRange ) = 0virtual bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) = 0virtual bool getSubFilesHandlingStatus() const = 0virtual bool isFiltered() const = 0virtual int getMsgIdFromIndexInMainTable(int msgIdxInMainTable) const = 0virtual int getNumberOfFiles() const = 0virtual int size() const = 0virtual int sizeNonFiltered() const = 0signal void currentSizeMbChanged(tCacheSizeMB MBytes)signal void fullChanged(bool isFull)signal void isEnabledChanged(bool isEnabled)signal void loadChanged(unsigned int percents)signal void maxSizeMbChanged(tCacheSizeMB MBytes)virtual tIntRangeProperty normalizeSearchRange( const tIntRangeProperty& inputRange) = 0virtual tMsgWrapperPtr getMsg(const tMsgId& msgId) = 0virtual virtual tIntRangeList getSubFilesSizeRanges() const = 0virtual void copyFileNameToClipboard( const int& msgId ) const = 0virtual void copyFileNamesToClipboard( const tIntRange& msgsRange ) const = 0virtual void resetCache() = 0virtual void setEnableCache(bool isEnabled) = 0virtual void setMaxCacheSize(const tCacheSizeB& cacheSize ) = 0virtual void setMessageDecoder( IMsgDecoder* pMessageDecoder ) = 0virtual void setSubFilesHandlingStatus(const bool& val) = 0IMsgDecodervirtual void decodeMsg(QDltMsg&, int) = 0IMsgWrappervirtual QString getApid() const = 0virtual QString getCtid() const = 0virtual QString getCtrlReturnTypeString() const = 0virtual QString getCtrlServiceIdString() const = 0virtual QString getEcuid() const = 0virtual QString getModeString() const = 0virtual QString getPayload() const = 0virtual QString getSubtypeString() const = 0virtual QString getTimeString() const = 0virtual QString getTypeString() const = 0virtual const unsigned char& getMessageCounter() const = 0virtual const unsigned int& getMicroseconds() const = 0virtual const unsigned int& getNumberOfArguments() const = 0virtual const unsigned int& getSessionid() const = 0virtual const unsigned int& getTimestamp() const = 0virtual unsigned int getInitialMessageSize() const = 0virtual unsigned int getSize() const = 0virtual void dumpPayload() const = 0virtual void dumpSize() const = 0QObjectimplementsimplementsextendscreates1*creates1*uses11provides11provides11DMA_LogsWrapperDMA_LogsWrapper_APICDLTFileWrapperCDLTMsgDecoderCDLTMsgWrapperIFileWrappervirtual QString getCacheStatusAsString() const = 0virtual QString getFileName(int num = 0) = 0virtual bool cacheMsgByIndex( const tMsgId& msgId ) = 0virtual bool cacheMsgByIndexes( const QSet<tMsgId> msgIdSet ) = 0virtual bool cacheMsgByRange( const tIntRange& msgRange ) = 0virtual bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) = 0virtual bool getSubFilesHandlingStatus() const = 0virtual bool isFiltered() const = 0virtual int getMsgRealPos(int msgId) const = 0virtual int getNumberOfFiles() const = 0virtual int size() const = 0virtual int sizeNonFiltered() const = 0signal void currentSizeMbChanged(tCacheSizeMB MBytes)signal void fullChanged(bool isFull)signal void isEnabledChanged(bool isEnabled)signal void loadChanged(unsigned int percents)signal void maxSizeMbChanged(tCacheSizeMB MBytes)virtual tIntRangeProperty normalizeSearchRange( const tIntRangeProperty& inputRange) = 0virtual tMsgWrapperPtr getMsg(const tMsgId& msgId) = 0virtual virtual tIntRangeList getSubFilesSizeRanges() const = 0virtual void copyFileNameToClipboard( const int& msgId ) const = 0virtual void copyFileNamesToClipboard( const tIntRange& msgsRange ) const = 0virtual void resetCache() = 0virtual void setEnableCache(bool isEnabled) = 0virtual void setMaxCacheSize(const tCacheSizeB& cacheSize ) = 0virtual void setMessageDecoder( IMsgDecoder* pMessageDecoder ) = 0virtual void setSubFilesHandlingStatus(const bool& val) = 0IMsgDecodervirtual void decodeMsg(QDltMsg&, int) = 0IMsgWrappervirtual QString getApid() const = 0virtual QString getCtid() const = 0virtual QString getCtrlReturnTypeString() const = 0virtual QString getCtrlServiceIdString() const = 0virtual QString getEcuid() const = 0virtual QString getModeString() const = 0virtual QString getPayload() const = 0virtual QString getSubtypeString() const = 0virtual QString getTimeString() const = 0virtual QString getTypeString() const = 0virtual const unsigned char& getMessageCounter() const = 0virtual const unsigned int& getMicroseconds() const = 0virtual const unsigned int& getNumberOfArguments() const = 0virtual const unsigned int& getSessionid() const = 0virtual const unsigned int& getTimestamp() const = 0virtual unsigned int getInitialMessageSize() const = 0virtual unsigned int getSize() const = 0virtual void dumpPayload() const = 0virtual void dumpSize() const = 0DMA_LogsWrapperDMA_LogsWrapper_APICDLTFileWrapperCDLTMsgDecoderCDLTMsgWrapperIFileWrappervirtual QString getCacheStatusAsString() const = 0virtual QString getFileName(int num = 0) = 0virtual bool cacheMsgByIndex( const tMsgId& msgId ) = 0virtual bool cacheMsgByIndexes( const QSet<tMsgId> msgIdSet ) = 0virtual bool cacheMsgByRange( const tIntRange& msgRange ) = 0virtual bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) = 0virtual bool getSubFilesHandlingStatus() const = 0virtual bool isFiltered() const = 0virtual int getMsgIdFromIndexInMainTable(int msgIdxInMainTable) const = 0virtual int getNumberOfFiles() const = 0virtual int size() const = 0virtual int sizeNonFiltered() const = 0signal void currentSizeMbChanged(tCacheSizeMB MBytes)signal void fullChanged(bool isFull)signal void isEnabledChanged(bool isEnabled)signal void loadChanged(unsigned int percents)signal void maxSizeMbChanged(tCacheSizeMB MBytes)virtual tIntRangeProperty normalizeSearchRange( const tIntRangeProperty& inputRange) = 0virtual tMsgWrapperPtr getMsg(const tMsgId& msgId) = 0virtual virtual tIntRangeList getSubFilesSizeRanges() const = 0virtual void copyFileNameToClipboard( const int& msgId ) const = 0virtual void copyFileNamesToClipboard( const tIntRange& msgsRange ) const = 0virtual void resetCache() = 0virtual void setEnableCache(bool isEnabled) = 0virtual void setMaxCacheSize(const tCacheSizeB& cacheSize ) = 0virtual void setMessageDecoder( IMsgDecoder* pMessageDecoder ) = 0virtual void setSubFilesHandlingStatus(const bool& val) = 0IMsgDecodervirtual void decodeMsg(QDltMsg&, int) = 0IMsgWrappervirtual QString getApid() const = 0virtual QString getCtid() const = 0virtual QString getCtrlReturnTypeString() const = 0virtual QString getCtrlServiceIdString() const = 0virtual QString getEcuid() const = 0virtual QString getModeString() const = 0virtual QString getPayload() const = 0virtual QString getSubtypeString() const = 0virtual QString getTimeString() const = 0virtual QString getTypeString() const = 0virtual const unsigned char& getMessageCounter() const = 0virtual const unsigned int& getMicroseconds() const = 0virtual const unsigned int& getNumberOfArguments() const = 0virtual const unsigned int& getSessionid() const = 0virtual const unsigned int& getTimestamp() const = 0virtual unsigned int getInitialMessageSize() const = 0virtual unsigned int getSize() const = 0virtual void dumpPayload() const = 0virtual void dumpSize() const = 0implementsimplementsimplementscreates1*creates1*DMA_Analyzer_APIDMA_CommonDMA_FiltersView_APIDMA_GroupedView_APIDMA_Log_APIDMA_Logo_APIDMA_LogsWrapper_APIDMA_PatternsView_APIDMA_PlantumlView_APIDMA_PluginDMA_Plugin_APIDMA_RegexHistory_APIDMA_SearchView_APIDMA_Settings_APIQtIDLTMessageAnalyzerControllervirtual int getMaximumNumberOfThreads() const = 0signal void progressNotification( const tProgressNotificationData& progressNotificationData )virtual tRequestId requestAnalyze( const std::weak_ptr<IDLTMessageAnalyzerControllerConsumer>&pClient, const tRequestParameters& requestParameters ) = 0virtual void cancelRequest( const std::weak_ptr<IDLTMessageAnalyzerControllerConsumer>& pClient,const tRequestId& requestId ) = 0IDLTMessageAnalyzerControllerConsumervirtual slot void progressNotification( const tProgressNotificationData& progressNotificationData ) = 0tRequestId requestAnalyze( const tRequestParameters& requestParameters )CBGColorAnimationCRegexDirectoryMonitorCTableMemoryJumperCFiltersViewIFiltersModelvirtual void addCompletionData( const tFoundMatches& foundMatches ) = 0virtual void filterRegexTokens( const QString& filter ) = 0virtual void resetCompletionData() = 0virtual void resetData() = 0virtual void setUsedRegex(const QString& regexStr) = 0CGroupedViewIGroupedViewModelvirtual int rowCount(const QModelIndex &parent = QModelIndex()) const = 0virtual std::pair<bool__QString> exportToHTML(QString& resultHTML) = 0virtual void addMatches( const tFoundMatches& matches, bool update ) = 0virtual void resetData() = 0virtual void setUsedRegex(const QString& regex) = 0CConsoleViewCLogoIFileWrappervirtual QString getCacheStatusAsString() const = 0virtual QString getFileName(int num = 0) = 0virtual bool cacheMsgByIndex( const tMsgId& msgId ) = 0virtual bool cacheMsgByIndexes( const QSet<tMsgId> msgIdSet ) = 0virtual bool cacheMsgByRange( const tIntRange& msgRange ) = 0virtual bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) = 0virtual bool getSubFilesHandlingStatus() const = 0virtual bool isFiltered() const = 0virtual int getMsgRealPos(int msgId) const = 0virtual int getNumberOfFiles() const = 0virtual int size() const = 0virtual int sizeNonFiltered() const = 0signal void currentSizeMbChanged(tCacheSizeMB MBytes)signal void fullChanged(bool isFull)signal void isEnabledChanged(bool isEnabled)signal void loadChanged(unsigned int percents)signal void maxSizeMbChanged(tCacheSizeMB MBytes)virtual tIntRangeProperty normalizeSearchRange( const tIntRangeProperty& inputRange) = 0virtual tMsgWrapperPtr getMsg(const tMsgId& msgId) = 0virtual virtual tIntRangeList getSubFilesSizeRanges() const = 0virtual void copyFileNameToClipboard( const int& msgId ) const = 0virtual void copyFileNamesToClipboard( const tIntRange& msgsRange ) const = 0virtual void resetCache() = 0virtual void setEnableCache(bool isEnabled) = 0virtual void setMaxCacheSize(const tCacheSizeB& cacheSize ) = 0virtual void setMessageDecoder( IMsgDecoder* pMessageDecoder ) = 0virtual void setSubFilesHandlingStatus(const bool& val) = 0CPatternsViewIPatternsModelvirtual QModelIndex addData(const QString& alias, const QString& regex, Qt::CheckState isCombine, Qt::CheckState isDefault) = 0virtual QModelIndex addData(const QString& alias, const QString& regex, Qt::CheckState isDefault = Qt::Unchecked) = 0virtual QModelIndex editData(const QModelIndex& idx, const QString& alias, const QString& regex, Qt::CheckState isDefault, Qt::CheckState isCombine) = 0virtual QString getAliasEditName( const QModelIndex& idx ) = 0virtual removeData(const QModelIndex& idx) = 0virtual signal void patternsRefreshed() = 0virtual tSearchResult search( const QString& alias ) = 0virtual void filterPatterns( const QString& filter ) = 0virtual void refreshRegexPatterns() = 0virtual void resetData() = 0virtual void updatePatternsInPersistency() = 0virtual void updateView() = 0CUMLViewDLTMessageAnalyzerPluginCDLTMessageAnalyzerFormUi::FormCRegexHistoryLineEditCSearchResultViewISearchResultModelvirtual int getFileIdx( const QModelIndex& idx ) const = 0virtual std::pair<bool__tIntRange> addNextMessageIdxVec(const tFoundMatchesPack& foundMatchesPack) = 0virtual std::pair<int__QString > getUMLDiagramContent() const = 0virtual tPlotContent createPlotContent() const = 0virtual void resetData() = 0virtual void setFile(const tFileWrapperPtr& pFile) = 0virtual void updateView(const int& fromRow = 0) = 0CSettingsManagerClientISettingsManagerQWidgetQDltMessageDecoderDMA_Analyzer_APIDMA_CommonDMA_FiltersView_APIDMA_GroupedView_APIDMA_Log_APIDMA_Logo_APIDMA_LogsWrapper_APIDMA_PatternsView_APIDMA_PlantumlView_APIDMA_PluginDMA_Plugin_APIDMA_RegexHistory_APIDMA_SearchView_APIDMA_Settings_APIQtIDLTMessageAnalyzerControllervirtual int getMaximumNumberOfThreads() const = 0signal void progressNotification( const tProgressNotificationData& progressNotificationData )virtual tRequestId requestAnalyze( const std::weak_ptr<IDLTMessageAnalyzerControllerConsumer>&pClient, const tRequestParameters& requestParameters ) = 0virtual void cancelRequest( const std::weak_ptr<IDLTMessageAnalyzerControllerConsumer>& pClient,const tRequestId& requestId ) = 0IDLTMessageAnalyzerControllerConsumervirtual slot void progressNotification( const tProgressNotificationData& progressNotificationData ) = 0tRequestId requestAnalyze( const tRequestParameters& requestParameters )CBGColorAnimationCRegexDirectoryMonitorCTableMemoryJumperCFiltersViewIFiltersModelvirtual void addCompletionData( const tFoundMatches& foundMatches ) = 0virtual void filterRegexTokens( const QString& filter ) = 0virtual void resetCompletionData() = 0virtual void resetData() = 0virtual void setUsedRegex(const QString& regexStr) = 0CGroupedViewIGroupedViewModelvirtual int rowCount(const QModelIndex &parent = QModelIndex()) const = 0virtual std::pair<bool__QString> exportToHTML(QString& resultHTML) = 0virtual void addMatches( const tFoundMatches& matches, bool update ) = 0virtual void resetData() = 0virtual void setUsedRegex(const QString& regex) = 0CConsoleViewCLogoIFileWrappervirtual QString getCacheStatusAsString() const = 0virtual QString getFileName(int num = 0) = 0virtual bool cacheMsgByIndex( const tMsgId& msgId ) = 0virtual bool cacheMsgByIndexes( const QSet<tMsgId> msgIdSet ) = 0virtual bool cacheMsgByRange( const tIntRange& msgRange ) = 0virtual bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) = 0virtual bool getSubFilesHandlingStatus() const = 0virtual bool isFiltered() const = 0virtual int getMsgIdFromIndexInMainTable(int msgIdxInMainTable) const = 0virtual int getNumberOfFiles() const = 0virtual int size() const = 0virtual int sizeNonFiltered() const = 0signal void currentSizeMbChanged(tCacheSizeMB MBytes)signal void fullChanged(bool isFull)signal void isEnabledChanged(bool isEnabled)signal void loadChanged(unsigned int percents)signal void maxSizeMbChanged(tCacheSizeMB MBytes)virtual tIntRangeProperty normalizeSearchRange( const tIntRangeProperty& inputRange) = 0virtual tMsgWrapperPtr getMsg(const tMsgId& msgId) = 0virtual virtual tIntRangeList getSubFilesSizeRanges() const = 0virtual void copyFileNameToClipboard( const int& msgId ) const = 0virtual void copyFileNamesToClipboard( const tIntRange& msgsRange ) const = 0virtual void resetCache() = 0virtual void setEnableCache(bool isEnabled) = 0virtual void setMaxCacheSize(const tCacheSizeB& cacheSize ) = 0virtual void setMessageDecoder( IMsgDecoder* pMessageDecoder ) = 0virtual void setSubFilesHandlingStatus(const bool& val) = 0CPatternsViewIPatternsModelvirtual QModelIndex addData(const QString& alias, const QString& regex, Qt::CheckState isCombine, Qt::CheckState isDefault) = 0virtual QModelIndex addData(const QString& alias, const QString& regex, Qt::CheckState isDefault = Qt::Unchecked) = 0virtual QModelIndex editData(const QModelIndex& idx, const QString& alias, const QString& regex, Qt::CheckState isDefault, Qt::CheckState isCombine) = 0virtual QString getAliasEditName( const QModelIndex& idx ) = 0virtual removeData(const QModelIndex& idx) = 0virtual signal void patternsRefreshed() = 0virtual tSearchResult search( const QString& alias ) = 0virtual void filterPatterns( const QString& filter ) = 0virtual void refreshRegexPatterns() = 0virtual void resetData() = 0virtual void updatePatternsInPersistency() = 0virtual void updateView() = 0CUMLViewDLTMessageAnalyzerPluginCDLTMessageAnalyzerFormUi::FormCRegexHistoryLineEditCSearchResultViewISearchResultModelvirtual int getFileIdx( const QModelIndex& idx ) const = 0virtual std::pair<bool__tIntRange> addNextMessageIdxVec(const tFoundMatchesPack& foundMatchesPack) = 0virtual std::pair<int__QString > getUMLDiagramContent() const = 0virtual tPlotContent createPlotContent() const = 0virtual void resetData() = 0virtual void setFile(const tFileWrapperPtr& pFile) = 0virtual void updateView(const int& fromRow = 0) = 0CSettingsManagerClientISettingsManagerQWidgetQDltMessageDecoderextendsimplementsextendscontains11contains11contains11contains11contains11 "1" CSearchResultModel : using to create ISearchResultModel diff --git a/md/dev_docs/puml/DMA_SearchView.svg b/md/dev_docs/puml/DMA_SearchView.svg index 6ca1f480..e65cb057 100644 --- a/md/dev_docs/puml/DMA_SearchView.svg +++ b/md/dev_docs/puml/DMA_SearchView.svg @@ -1,27 +1,27 @@ -DMA_LogsWrapper_APIDMA_SearchViewDMA_SearchView_APIDMA_Settings_APIQtIFileWrappervirtual QString getCacheStatusAsString() const = 0virtual QString getFileName(int num = 0) = 0virtual bool cacheMsgByIndex( const tMsgId& msgId ) = 0virtual bool cacheMsgByIndexes( const QSet<tMsgId> msgIdSet ) = 0virtual bool cacheMsgByRange( const tIntRange& msgRange ) = 0virtual bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) = 0virtual bool getSubFilesHandlingStatus() const = 0virtual bool isFiltered() const = 0virtual int getMsgRealPos(int msgId) const = 0virtual int getNumberOfFiles() const = 0virtual int size() const = 0virtual int sizeNonFiltered() const = 0signal void currentSizeMbChanged(tCacheSizeMB MBytes)signal void fullChanged(bool isFull)signal void isEnabledChanged(bool isEnabled)signal void loadChanged(unsigned int percents)signal void maxSizeMbChanged(tCacheSizeMB MBytes)virtual tIntRangeProperty normalizeSearchRange( const tIntRangeProperty& inputRange) = 0virtual tMsgWrapperPtr getMsg(const tMsgId& msgId) = 0virtual virtual tIntRangeList getSubFilesSizeRanges() const = 0virtual void copyFileNameToClipboard( const int& msgId ) const = 0virtual void copyFileNamesToClipboard( const tIntRange& msgsRange ) const = 0virtual void resetCache() = 0virtual void setEnableCache(bool isEnabled) = 0virtual void setMaxCacheSize(const tCacheSizeB& cacheSize ) = 0virtual void setMessageDecoder( IMsgDecoder* pMessageDecoder ) = 0virtual void setSubFilesHandlingStatus(const bool& val) = 0CSearchResultHighlightingDelegateCSearchResultModelCSearchResultViewCSearchViewComponentISearchResultModelvirtual int getFileIdx( const QModelIndex& idx ) const = 0virtual std::pair<bool__tIntRange> addNextMessageIdxVec(const tFoundMatchesPack& foundMatchesPack) = 0virtual std::pair<int__QString > getUMLDiagramContent() const = 0virtual tPlotContent createPlotContent() const = 0virtual void resetData() = 0virtual void setFile(const tFileWrapperPtr& pFile) = 0virtual void updateView(const int& fromRow = 0) = 0CSettingsManagerClientQAbstractTableModelQStyledItemDelegateextendsextendsextendsimplementsimplementsuses11uses11uses11using to create ISearchResultModel11DMA_LogsWrapper_APIDMA_SearchViewDMA_SearchView_APIDMA_Settings_APIQtIFileWrappervirtual QString getCacheStatusAsString() const = 0virtual QString getFileName(int num = 0) = 0virtual bool cacheMsgByIndex( const tMsgId& msgId ) = 0virtual bool cacheMsgByIndexes( const QSet<tMsgId> msgIdSet ) = 0virtual bool cacheMsgByRange( const tIntRange& msgRange ) = 0virtual bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) = 0virtual bool getSubFilesHandlingStatus() const = 0virtual bool isFiltered() const = 0virtual int getMsgIdFromIndexInMainTable(int msgIdxInMainTable) const = 0virtual int getNumberOfFiles() const = 0virtual int size() const = 0virtual int sizeNonFiltered() const = 0signal void currentSizeMbChanged(tCacheSizeMB MBytes)signal void fullChanged(bool isFull)signal void isEnabledChanged(bool isEnabled)signal void loadChanged(unsigned int percents)signal void maxSizeMbChanged(tCacheSizeMB MBytes)virtual tIntRangeProperty normalizeSearchRange( const tIntRangeProperty& inputRange) = 0virtual tMsgWrapperPtr getMsg(const tMsgId& msgId) = 0virtual virtual tIntRangeList getSubFilesSizeRanges() const = 0virtual void copyFileNameToClipboard( const int& msgId ) const = 0virtual void copyFileNamesToClipboard( const tIntRange& msgsRange ) const = 0virtual void resetCache() = 0virtual void setEnableCache(bool isEnabled) = 0virtual void setMaxCacheSize(const tCacheSizeB& cacheSize ) = 0virtual void setMessageDecoder( IMsgDecoder* pMessageDecoder ) = 0virtual void setSubFilesHandlingStatus(const bool& val) = 0CSearchResultHighlightingDelegateCSearchResultModelCSearchResultViewCSearchViewComponentISearchResultModelvirtual int getFileIdx( const QModelIndex& idx ) const = 0virtual std::pair<bool__tIntRange> addNextMessageIdxVec(const tFoundMatchesPack& foundMatchesPack) = 0virtual std::pair<int__QString > getUMLDiagramContent() const = 0virtual tPlotContent createPlotContent() const = 0virtual void resetData() = 0virtual void setFile(const tFileWrapperPtr& pFile) = 0virtual void updateView(const int& fromRow = 0) = 0CSettingsManagerClientQAbstractTableModelQStyledItemDelegateextendsextendsextendsimplementsimplementsuses11uses11uses11using to create ISearchResultModel11 "1" CSearchResultModel : using to create ISearchResultModel diff --git a/md/dev_docs/puml/DMA_SearchView_API.svg b/md/dev_docs/puml/DMA_SearchView_API.svg index a66cccc2..1f96ff7f 100644 --- a/md/dev_docs/puml/DMA_SearchView_API.svg +++ b/md/dev_docs/puml/DMA_SearchView_API.svg @@ -1,29 +1,30 @@ -DMA_CommonDMA_Framework_ComponentDMA_LogsWrapper_APIDMA_PlotView_APIDMA_PluginDMA_Plugin_APIDMA_SearchViewDMA_SearchView_APIDMA_Settings_APIQtCTableMemoryJumperDMA::IComponentIFileWrappervirtual QString getCacheStatusAsString() const = 0virtual QString getFileName(int num = 0) = 0virtual bool cacheMsgByIndex( const tMsgId& msgId ) = 0virtual bool cacheMsgByIndexes( const QSet<tMsgId> msgIdSet ) = 0virtual bool cacheMsgByRange( const tIntRange& msgRange ) = 0virtual bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) = 0virtual bool getSubFilesHandlingStatus() const = 0virtual bool isFiltered() const = 0virtual int getMsgRealPos(int msgId) const = 0virtual int getNumberOfFiles() const = 0virtual int size() const = 0virtual int sizeNonFiltered() const = 0signal void currentSizeMbChanged(tCacheSizeMB MBytes)signal void fullChanged(bool isFull)signal void isEnabledChanged(bool isEnabled)signal void loadChanged(unsigned int percents)signal void maxSizeMbChanged(tCacheSizeMB MBytes)virtual tIntRangeProperty normalizeSearchRange( const tIntRangeProperty& inputRange) = 0virtual tMsgWrapperPtr getMsg(const tMsgId& msgId) = 0virtual virtual tIntRangeList getSubFilesSizeRanges() const = 0virtual void copyFileNameToClipboard( const int& msgId ) const = 0virtual void copyFileNamesToClipboard( const tIntRange& msgsRange ) const = 0virtual void resetCache() = 0virtual void setEnableCache(bool isEnabled) = 0virtual void setMaxCacheSize(const tCacheSizeB& cacheSize ) = 0virtual void setMessageDecoder( IMsgDecoder* pMessageDecoder ) = 0virtual void setSubFilesHandlingStatus(const bool& val) = 0CPlotViewComponentDLTMessageAnalyzerPluginCDLTMessageAnalyzerUi::FormCSearchResultModelCSearchResultViewCSearchViewComponentISearchResultModelvirtual int getFileIdx( const QModelIndex& idx ) const = 0virtual std::pair<bool__tIntRange> addNextMessageIdxVec(const tFoundMatchesPack& foundMatchesPack) = 0virtual std::pair<int__QString > getUMLDiagramContent() const = 0virtual tPlotContent createPlotContent() const = 0virtual void resetData() = 0virtual void setFile(const tFileWrapperPtr& pFile) = 0virtual void updateView(const int& fromRow = 0) = 0CSettingsManagerClientQObjectQTableViewimplementsDMA_CommonDMA_Framework_ComponentDMA_LogsWrapper_APIDMA_PlotView_APIDMA_PluginDMA_Plugin_APIDMA_SearchViewDMA_SearchView_APIDMA_Settings_APIQtCTableMemoryJumperDMA::IComponentIFileWrappervirtual QString getCacheStatusAsString() const = 0virtual QString getFileName(int num = 0) = 0virtual bool cacheMsgByIndex( const tMsgId& msgId ) = 0virtual bool cacheMsgByIndexes( const QSet<tMsgId> msgIdSet ) = 0virtual bool cacheMsgByRange( const tIntRange& msgRange ) = 0virtual bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) = 0virtual bool getSubFilesHandlingStatus() const = 0virtual bool isFiltered() const = 0virtual int getMsgIdFromIndexInMainTable(int msgIdxInMainTable) const = 0virtual int getNumberOfFiles() const = 0virtual int size() const = 0virtual int sizeNonFiltered() const = 0signal void currentSizeMbChanged(tCacheSizeMB MBytes)signal void fullChanged(bool isFull)signal void isEnabledChanged(bool isEnabled)signal void loadChanged(unsigned int percents)signal void maxSizeMbChanged(tCacheSizeMB MBytes)virtual tIntRangeProperty normalizeSearchRange( const tIntRangeProperty& inputRange) = 0virtual tMsgWrapperPtr getMsg(const tMsgId& msgId) = 0virtual virtual tIntRangeList getSubFilesSizeRanges() const = 0virtual void copyFileNameToClipboard( const int& msgId ) const = 0virtual void copyFileNamesToClipboard( const tIntRange& msgsRange ) const = 0virtual void resetCache() = 0virtual void setEnableCache(bool isEnabled) = 0virtual void setMaxCacheSize(const tCacheSizeB& cacheSize ) = 0virtual void setMessageDecoder( IMsgDecoder* pMessageDecoder ) = 0virtual void setSubFilesHandlingStatus(const bool& val) = 0CPlotViewComponentDLTMessageAnalyzerPluginCDLTMessageAnalyzerUi::FormCSearchResultHighlightingDelegateCSearchResultModelCSearchResultViewCSearchViewComponentISearchResultModelvirtual int getFileIdx( const QModelIndex& idx ) const = 0virtual std::pair<bool__tIntRange> addNextMessageIdxVec(const tFoundMatchesPack& foundMatchesPack) = 0virtual std::pair<int__QString > getUMLDiagramContent() const = 0virtual tPlotContent createPlotContent() const = 0virtual void resetData() = 0virtual void setFile(const tFileWrapperPtr& pFile) = 0virtual void updateView(const int& fromRow = 0) = 0CSettingsManagerClientQObjectQTableViewimplementsextendsextendsimplementscontains11uses11gets and uses11contains11uses11uses11using to create ISearchResultModel11contains11uses11uses11uses11using to create ISearchResultModel11uses11contains11contains11contains11DMA_SearchViewDMA_SearchView_APIDMA_Settings_APIQtCSearchResultHighlightingDelegateCSearchResultModelISearchResultModelvirtual int getFileIdx( const QModelIndex& idx ) const = 0virtual std::pair<bool__tIntRange> addNextMessageIdxVec(const tFoundMatchesPack& foundMatchesPack) = 0virtual std::pair<int__QString > getUMLDiagramContent() const = 0virtual tPlotContent createPlotContent() const = 0virtual void resetData() = 0virtual void setFile(const tFileWrapperPtr& pFile) = 0virtual void updateView(const int& fromRow = 0) = 0CSettingsManagerClientQAbstractTableModelQStyledItemDelegateextendsextendsextendsimplementsimplementsuses11DMA_SearchViewDMA_SearchView_APIDMA_Settings_APIQtCSearchResultHighlightingDelegateCSearchResultModelISearchResultModelvirtual int getFileIdx( const QModelIndex& idx ) const = 0virtual std::pair<bool__tIntRange> addNextMessageIdxVec(const tFoundMatchesPack& foundMatchesPack) = 0virtual std::pair<int__QString > getUMLDiagramContent() const = 0virtual tPlotContent createPlotContent() const = 0virtual void resetData() = 0virtual void setFile(const tFileWrapperPtr& pFile) = 0virtual void updateView(const int& fromRow = 0) = 0CSettingsManagerClientQAbstractTableModelQStyledItemDelegateextendsextendsextendsimplementsimplementsDMA_AnalyzerDMA_Analyzer_APIDMA_CommonDMA_FiltersViewDMA_FiltersView_APIDMA_GroupedViewDMA_GroupedView_APIDMA_LogDMA_Log_APIDMA_Logo_APIDMA_LogsWrapper_APIDMA_PatternsView_APIDMA_PlantumlViewDMA_PlantumlView_APIDMA_PlotView_APIDMA_PluginDMA_Plugin_APIDMA_RegexHistoryDMA_RegexHistory_APIDMA_SearchViewDMA_SearchView_APIDMA_Settings_APIQtqcustomplotCDLTRegexAnalyzerWorkerCMTAnalyzerIDLTMessageAnalyzerControllervirtual int getMaximumNumberOfThreads() const = 0signal void progressNotification( const tProgressNotificationData& progressNotificationData )virtual tRequestId requestAnalyze( const std::weak_ptr<IDLTMessageAnalyzerControllerConsumer>&pClient, const tRequestParameters& requestParameters ) = 0virtual void cancelRequest( const std::weak_ptr<IDLTMessageAnalyzerControllerConsumer>& pClient,const tRequestId& requestId ) = 0IDLTMessageAnalyzerControllerConsumervirtual slot void progressNotification( const tProgressNotificationData& progressNotificationData ) = 0tRequestId requestAnalyze( const tRequestParameters& requestParameters )CBGColorAnimationCRegexDirectoryMonitorCTableMemoryJumperCFilterItemDelegateCFiltersViewIFiltersModelvirtual void addCompletionData( const tFoundMatches& foundMatches ) = 0virtual void filterRegexTokens( const QString& filter ) = 0virtual void resetCompletionData() = 0virtual void resetData() = 0virtual void setUsedRegex(const QString& regexStr) = 0CGroupedViewModelCGroupedView«Singleton»CConsoleCtrlCConsoleInputProcessorCConsoleViewCLogoIFileWrappervirtual QString getCacheStatusAsString() const = 0virtual QString getFileName(int num = 0) = 0virtual bool cacheMsgByIndex( const tMsgId& msgId ) = 0virtual bool cacheMsgByIndexes( const QSet<tMsgId> msgIdSet ) = 0virtual bool cacheMsgByRange( const tIntRange& msgRange ) = 0virtual bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) = 0virtual bool getSubFilesHandlingStatus() const = 0virtual bool isFiltered() const = 0virtual int getMsgRealPos(int msgId) const = 0virtual int getNumberOfFiles() const = 0virtual int size() const = 0virtual int sizeNonFiltered() const = 0signal void currentSizeMbChanged(tCacheSizeMB MBytes)signal void fullChanged(bool isFull)signal void isEnabledChanged(bool isEnabled)signal void loadChanged(unsigned int percents)signal void maxSizeMbChanged(tCacheSizeMB MBytes)virtual tIntRangeProperty normalizeSearchRange( const tIntRangeProperty& inputRange) = 0virtual tMsgWrapperPtr getMsg(const tMsgId& msgId) = 0virtual virtual tIntRangeList getSubFilesSizeRanges() const = 0virtual void copyFileNameToClipboard( const int& msgId ) const = 0virtual void copyFileNamesToClipboard( const tIntRange& msgsRange ) const = 0virtual void resetCache() = 0virtual void setEnableCache(bool isEnabled) = 0virtual void setMaxCacheSize(const tCacheSizeB& cacheSize ) = 0virtual void setMessageDecoder( IMsgDecoder* pMessageDecoder ) = 0virtual void setSubFilesHandlingStatus(const bool& val) = 0CPatternsViewCTreeRepresentationDelegateIPatternsModelvirtual QModelIndex addData(const QString& alias, const QString& regex, Qt::CheckState isCombine, Qt::CheckState isDefault) = 0virtual QModelIndex addData(const QString& alias, const QString& regex, Qt::CheckState isDefault = Qt::Unchecked) = 0virtual QModelIndex editData(const QModelIndex& idx, const QString& alias, const QString& regex, Qt::CheckState isDefault, Qt::CheckState isCombine) = 0virtual QString getAliasEditName( const QModelIndex& idx ) = 0virtual removeData(const QModelIndex& idx) = 0virtual signal void patternsRefreshed() = 0virtual tSearchResult search( const QString& alias ) = 0virtual void filterPatterns( const QString& filter ) = 0virtual void refreshRegexPatterns() = 0virtual void resetData() = 0virtual void updatePatternsInPersistency() = 0virtual void updateView() = 0CImageViewerCUMLViewCPlotViewComponentDLTMessageAnalyzerPluginFormCExtendedCompleterCRegexHistoryLineEditIRegexHistoryProviderCSearchResultHighlightingDelegateCSearchResultModelCSearchResultViewCSearchViewComponentISettingsManagerQAbstractItemModelQAbstractTableModelQCompleterQElapsedTimerQFileSystemWatcherQImageQLineEditQObjectQPlainTextEditQProcessQPushButtonQStyledItemDelegateQTabWidgetQTableViewQThreadQTimerQTreeViewQWidgetQCPAxisRectQCPGraphQCPLayerableQCPLegendQCustomPlotDMA_AnalyzerDMA_Analyzer_APIDMA_CommonDMA_FiltersViewDMA_FiltersView_APIDMA_GroupedViewDMA_GroupedView_APIDMA_LogDMA_Log_APIDMA_Logo_APIDMA_LogsWrapper_APIDMA_PatternsView_APIDMA_PlantumlViewDMA_PlantumlView_APIDMA_PlotView_APIDMA_PluginDMA_Plugin_APIDMA_RegexHistoryDMA_RegexHistory_APIDMA_SearchViewDMA_SearchView_APIDMA_Settings_APIQtqcustomplotCDLTRegexAnalyzerWorkerCMTAnalyzerIDLTMessageAnalyzerControllervirtual int getMaximumNumberOfThreads() const = 0signal void progressNotification( const tProgressNotificationData& progressNotificationData )virtual tRequestId requestAnalyze( const std::weak_ptr<IDLTMessageAnalyzerControllerConsumer>&pClient, const tRequestParameters& requestParameters ) = 0virtual void cancelRequest( const std::weak_ptr<IDLTMessageAnalyzerControllerConsumer>& pClient,const tRequestId& requestId ) = 0IDLTMessageAnalyzerControllerConsumervirtual slot void progressNotification( const tProgressNotificationData& progressNotificationData ) = 0tRequestId requestAnalyze( const tRequestParameters& requestParameters )CBGColorAnimationCRegexDirectoryMonitorCTableMemoryJumperCFilterItemDelegateCFiltersViewIFiltersModelvirtual void addCompletionData( const tFoundMatches& foundMatches ) = 0virtual void filterRegexTokens( const QString& filter ) = 0virtual void resetCompletionData() = 0virtual void resetData() = 0virtual void setUsedRegex(const QString& regexStr) = 0CGroupedViewModelCGroupedView«Singleton»CConsoleCtrlCConsoleInputProcessorCConsoleViewCLogoIFileWrappervirtual QString getCacheStatusAsString() const = 0virtual QString getFileName(int num = 0) = 0virtual bool cacheMsgByIndex( const tMsgId& msgId ) = 0virtual bool cacheMsgByIndexes( const QSet<tMsgId> msgIdSet ) = 0virtual bool cacheMsgByRange( const tIntRange& msgRange ) = 0virtual bool cacheMsgWrapper( const int& msgId, const tMsgWrapperPtr& pMsgWrapper ) = 0virtual bool getSubFilesHandlingStatus() const = 0virtual bool isFiltered() const = 0virtual int getMsgIdFromIndexInMainTable(int msgIdxInMainTable) const = 0virtual int getNumberOfFiles() const = 0virtual int size() const = 0virtual int sizeNonFiltered() const = 0signal void currentSizeMbChanged(tCacheSizeMB MBytes)signal void fullChanged(bool isFull)signal void isEnabledChanged(bool isEnabled)signal void loadChanged(unsigned int percents)signal void maxSizeMbChanged(tCacheSizeMB MBytes)virtual tIntRangeProperty normalizeSearchRange( const tIntRangeProperty& inputRange) = 0virtual tMsgWrapperPtr getMsg(const tMsgId& msgId) = 0virtual virtual tIntRangeList getSubFilesSizeRanges() const = 0virtual void copyFileNameToClipboard( const int& msgId ) const = 0virtual void copyFileNamesToClipboard( const tIntRange& msgsRange ) const = 0virtual void resetCache() = 0virtual void setEnableCache(bool isEnabled) = 0virtual void setMaxCacheSize(const tCacheSizeB& cacheSize ) = 0virtual void setMessageDecoder( IMsgDecoder* pMessageDecoder ) = 0virtual void setSubFilesHandlingStatus(const bool& val) = 0CPatternsViewCTreeRepresentationDelegateIPatternsModelvirtual QModelIndex addData(const QString& alias, const QString& regex, Qt::CheckState isCombine, Qt::CheckState isDefault) = 0virtual QModelIndex addData(const QString& alias, const QString& regex, Qt::CheckState isDefault = Qt::Unchecked) = 0virtual QModelIndex editData(const QModelIndex& idx, const QString& alias, const QString& regex, Qt::CheckState isDefault, Qt::CheckState isCombine) = 0virtual QString getAliasEditName( const QModelIndex& idx ) = 0virtual removeData(const QModelIndex& idx) = 0virtual signal void patternsRefreshed() = 0virtual tSearchResult search( const QString& alias ) = 0virtual void filterPatterns( const QString& filter ) = 0virtual void refreshRegexPatterns() = 0virtual void resetData() = 0virtual void updatePatternsInPersistency() = 0virtual void updateView() = 0CImageViewerCUMLViewCPlotViewComponentDLTMessageAnalyzerPluginFormCExtendedCompleterCRegexHistoryLineEditIRegexHistoryProviderCSearchResultHighlightingDelegateCSearchResultModelCSearchResultViewCSearchViewComponentISettingsManagerQAbstractItemModelQAbstractTableModelQCompleterQElapsedTimerQFileSystemWatcherQImageQLineEditQObjectQPlainTextEditQProcessQPushButtonQStyledItemDelegateQTabWidgetQTableViewQThreadQTimerQTreeViewQWidgetQCPAxisRectQCPGraphQCPLayerableQCPLegendQCustomPlotextendsextendsextendscontains11contains12uses11contains11contains11g4HWA}%dB#c36k_5%lLu^+Le^bi&n?c zyI&cATy2G^)~!)p@iohx9Woj8zDJiJ>a1i)ubcYV`GUXd90Ez;t)q?#-uarF$%0ns zeGBCg(L8xGq$#*-3vyc#Eyf{)IcyLHE@`BiCTS0e^}pV(dHeiH<|#>plLP%P(QnYh zpV{8qQ~;)KpxPa;+NajhO^Q-}hn8)^Du6tMi;YpMnc-#Bg=`$THh2@Z9Z}$p3o)Tr zm`t-Ks)S%6a}A;alk}g0yN)Puq0xGa-2@S0eJr#NqYs$Q6~%;c%&zkd>sf3{cgZAV zm-9G1{U<(IMtC!w%rtxQ>|}UN32{O{!LREPWKmlErf=^T8w(XzY2WN7u%>`#K)(N1AwiAC8i3?ja~7>}No~h|+`tzd!Vy`^ZKJZrY<4Fq-#MT%)S4o;{0l z!06*xB_7BM4<^fE%Tnrnk!EiFoYW(MhTGwok8B^{fWBHM#Td!!y_^ES6noZMzKIc6R;B^)NFilj;dO_^ zf+=~)Ms#cHkYdtZv@xg1cjofe`%G%Kb=v&SqkD3`_gyU&1*&;cZRAr zuD?yp-n=F>vZjhId2jE};1hqH_u7VQ_U>Us&@O`PSOzoTNh?ZIPMCB#mi=QMjv#i% zFV)Xthu$Xk{c(Qd-mC?j?Nz}nceqheaB__=3@GfGWO-P&d!1$mtW z+RUAAEoRZbSdtEN9y#6a)j=NrKkTCqvgietOJcEa@>R)!!Txxor9fjTB^RAVY^S#C!Yzy{acC3;GF+ z3HumuAy@(nTsR;TxfNze28|c%rItuULqM&2_E8W3TgXSnektzj0BEty@s58C6Afd( zzIGw#HW4h8Y8+NZSGegGMrf>lBU^3>d?V}STL6A95^#=17Eu8HbP0_|C^F34eGSu zM72Oc)o1UXf^&=MnBS%LDH+V&BD8bE#m>Tc+y5@FkunMzk|Fr+`K;}PE|@`{S5%ig z1qqMHK+Ot-NY)jp1Adc75}FU#fB^d5OZyyrf()zsjAx`#Mf@OXVhx<;cix`Zu?1*x z7a$KlaqVPn9Y>lN`d6`b&`xb8t6e{)P@E@hw-_Hv^E8lE7$^krGRWP;nnW*33;5*y zF%Lt+S4%I(M{Cp8Lvv0tHAV9q3-#j^&YG|o|D3hUbEe{gNRb)a?LDDyTGKd_KcKkY3;6eW6sid5$3sx`=qB4G>cc?Dt!zN=xv|9D4-v!2O1w zp+c6|t>0Tc6$ntWg~(eyroE8@>U>6fnb-vKPXuoEzc1WO6nGEv29O5WUkB=uFv-aBmSYHH5Th1j5WHm83hq~^Hn6Dq zXDm#@Wlmo}Cys+mL}alt_BM$i)o;)@%;_eD;I1^6tV*)PzYiEzY>89- zC7B~sSG+OsRSSp%D~k$Sr@ak4=968PnA%sY0ZGG&NF**M^vA#`$Nvp4FVHovaL!ps zd*cr(Jb>A-CnlzS$hL(8qeRL62#1mBBbA`heMaSQjrTa>71uZp1rBh%fS_-vy3zas zFPx^I;1HOoua=Zlro;lPyScv9vz7W%#Vp-IhkPWf1bRVj{-pSgj=;-aF@vm(Ja`_g zJ{a=*&AWqo_ATHHT6t5H;eKyuYX&fl&z=)gAZn%zzy`3uZYBf?8i)t8JEf(j=%ndd z`9Q#b48hf?buU5^l4s=3yIX=G3a@Q}wHN%F+U4T!VqVw;#Q(-&&uQ|q51rd_h#&++ zL4k4lR+U=dDhOb-gr-f&HZllj6p!@Pk?;H)Bnxy-P!IUH}x!c{a? zOED*FC81E_cM>6-=iXXr0Okh!P<{c82R87A5T&RN=Pn!LWy5#LY4exX;1bkKW9v}+ zt#;Tp8y`?~U|v8FQGkH9i(R$52ym_-(J7Qk*g90hzk9MQOn0!&ax~0GHn6bIY2(yr zVevw6j4g3e-A(C8nAoOSn+%GJ^n`M!cy8r|g-DpVy|lz4#E+*V^DM#T12}}MoKC?! zqdkJkv+Vb1>MV`lxyh(I;r|~|Ujx=s`^SII&R*N9y;R$JT?$FEUeu~pXDup19wDTL zXi*eVk({&jvR-6}LTW0+;~|77Y%L052qCr5qY}?N-ts8>AHV4Jl{Nf;hx~tR%Ce;kW>>=B?9E$A%W?m5Bl*@O-K6)V3=CayB+^oc~HfP?B= zJ#Q<57fx|nH06`0v*W(0pNy-TpDiz1baU>9)wiM_?KV%&{rYHy;*VmJ&X#=JRf0}R zGc))@tztOj_M0xBeV@;3YbSi$a%;||v|HL1J#&5I0h2`jt&0=aZ}jXikG}kM0^je^ ziWlj(*Ho(g%G-#8cSc)pUzpXtG*9?yQe5-hlr?_`Pw!rppL{zIr&&4RRJ=z$eV@O~ zAUUQ}B)+~r7BgjAWotzA#Ky{Fn<7gOjA_gD(yH4I2apH<(M;m&x&L8ltU5{OraHLD z9k{cDO!w)`Ajd7T$;)|^x_tY$GW)L_9^_{~@21_e+!c!-rJ25N<-VS668OmZmEFrX z?h{jZ-O=RL9dWaG71*H;Yx`f3$p2Qq^Ql%!zlbV`j)1O-ZO^UnrME=(^$+f3zc9HB>cbB~C zE*>; z&m+56U8b*|2EKZ>;#K#xS1;ziN-)xao+Gbb@9JSV0-)X^f!_PT4p3unRgGJ`dG+e= zzj_~<_PspPd;0^ebywe~SAA`!y&re=e74i$KlTyk^%1M|ZWDPKf)xWl~!8w_E9(^=IDjg9gH?{@xVy?g8WNTK9o)`*$I| zZ@1rnx4>-R@~$_T8{QD;gTm5*4aU;J^y`Bqy@Rp6#BHUomGgkoQro0dV$_+}<=5Xy zqc9RPbkP3qBtCF7ZfHu*fW<;!O~U|QNvsNbw+bCfx=yUS|0ZR_o6GKl9&x~yD8eKj zIT4|y@lCYjxEu3;I0!lWotmHUU~$cK(!BU?8BAu3XLFL9EJv`B9f@e6vn0Z5dL)WSnV zILEW7ay3BIwDgNmg-DW5NLap0a6+YcpoP5NmLY?WFSPu{X^6d z&(cXtR3>NR0Fg13uw6y>=252WOo#?()Ey{}!tJF~78za>t6wKdaMRU}2?pF!^#@mX z`WgvdEWy{s5yK^TsgfA|4{?@$IFgSi1_L@QZ!BWoG8g|12H8;nTlH&+YBZ;C2a(O=-_}r_1QOQ&?^WK(Ely?_2yO%**#|< z*}>ePGl!zUHa_jA#Gq4}YXQ(o{f*A2&5Z-T7^q(mTS9}mR%d>~eRM1eF!IdlIvVjG z+Rk9}9p?WT4CZ_1{cP9M2!`);1SBBfCqC_-;q^T}?O(%Nqx#2L)z7EK-9uLN@lN$S zH-~YY+VMV2yJdL$698NFW1nqd%<4RtPjL6Q?anV`;B04lhH7)wt>_w@MNEif?%qPnBY2VDc?s7! z@lKQlYww$|1Hu%mNbTE5aB||ht@zox+DAth9P<=DUMM+apYq77K3i*Um+S1xy`7eJs)ddE{8 zifwwo-}G-y;sP66^;o0dzJc}w>@-{pXaCJMWI-m*;>_k*bfei^5MM=+t$yHmd+C34 z{pD~Xd&$-psX2|O?#iU9O;*8wk1GUi)&+Ho zCz&Nu8b}4B4GHA`Sm24GxCG7T|)!qJMq>kS;C|( zf6G>`OFLeho&Ipm(VdTOujNWd`cIf9K6-eQLwo&WA~&Z>bK+p4tLoj89kz2xRf)Z? z-#y#())82kQiM*j%h;QBOoba=IhmbUxw7ox&dQbT?44xAiONk)(*|+mbxFq&A3dX> zGI4B5f&H4wDLjYev0Ul%<%4OB?$Ccj1pDp3vL-qt#yvlAa5b=aR^{@tACnz2Qx{EI zx%M0St{Ru_IEkC5+C#FZs!oR4XO%7>9$H(bLAaT&JXQ7Tz0bj!yfzoD!n4XnUg)_s zCyjihLK0HqBYeHIq#?7(vCyZ@Q${;Ng;&o!I(MDXsc7OhSI8BL>PmX&S-JLgzGIuD zMq!h=p_Mp!+l!*aa|gm}O+6!NC+i&%^^}{3p1G_poLuy4`K^iDV&ut9y9~<#MWjXS z%^4jr3^Mo>4*7KSFLx{(@}taElq<`zhq4=(tSCJF&~h8)Snj2Ryc^|kZQ7(?%ih$2 zQP>vHi;tSF0H@nGK$L3-IlqWb>7Eb2+iV;C^MjfYBL8}1k()$Sv+Ph#p$iRmDm>5< z_L_1$$~=4OQ`4qbe^1PHiTH8g%->fg`V5!WOgdfoja=CC=lv|VA@FF*=EJ@5MXSoZ zX?)MILwCQ{?JaN6t4yZT+csZPkwoDxKuo>(@hrZvvOV^!v{o0&brvB@)ZmK5ina-} z#b7WUpvA(oR?Sk95;`>aD<`#%FMz{AEjP(mvN|?<_lqe{QDC_=?})df;&MYOW7~f# z?T&x0WDSY{a|*1APRpZ9Lo5k&wN>Ej8O^ zA)TVCMs*UCLzx;USvS!ta;3$jidHt+pb`(N7^hrBPG*i)fCOB|9aaR-YaoL${U-C% z^)Qz4>Td#Q3Im1uSiBS0&diAzF2jwYM=_aY9HviUGTaXlBY7ldQ~O?pWH)(K8xb`; zYx>p&rAe_7?BW0NS~|f=9!APrLV*Hchldk?B&?mg?UbB%$;sAz)G_Lp0&*Nz@1FLh z-vn%Gb&2*sSfl-fEu3gk_-0(F=sj(`JCDEj9CgP~jjgsp9Xtk_;)Jye{=HLh!n?6_ zfoL_St^1Z|72P~R@P_kYaHhwhbG!0RolYQR67aVicbkk%;0$!nJZ1vyUJ(l~{Dr99 zO4Gpg$~Wvg0M*+W{wqfxV*gD?2r@~fZOHo5w%d^Bb-?rN@=B`1CtVr7kwHuE?y~vD zBzr$aOA}qh?1X_Zzsx-)RJ{{t6d?&;pDW(#wtD426j7M1DNQ$M*~_iN_?JSFP1$1m zcQSZ-_=}RnM_S|AdkD-g-BX&d*_N_X{T*ee}PuGrxo#4OD}-yKPgjM36l zzb!X@480O)uq%pelmAl_P6?FoScjA~xKuOBN1G7yGJR0F#Y{32{3ri=bFQNcy1sn5 z*!xrQUH z+jbW?9aG@ik!Vp)12P))wvVN)X7f96o>42H;K~M5dqEpzx*oJOEMPtUu{vy(8ucq# zWfJSM41Zi-;FgM*5i*r_2|6;EAcBI*K&MOLblQxzeX21%HBwh3t9;Zs>)=M?Xv_CI z9Benn8hQtVnYs~Ir{)k+i6)cOwb_`!K_IqbD9_D%$->Q8`6#?M-ImlV@N*h z&)*|-_tTaLLf3r!B%8ri`ESV-UG1k+=5}Z-rMgi2`~0FEW(Xmx1CznAKWftIt3fzv`iR*pC{{NJq}J;X|c4l?jxz zLfL2MRy_MK*VM!MC6I~ubLcQdAUW5&DmOp6NYTFvXL8|;e?Z}k4*J>OP07e;taD-%Z1@yu2Lw9+=V>Pg>=L@GalNj~EJ*^;I}MYGgu=^%th#&wLD# zc@BcQnhhd6f+^RdEz2K^F+n`G3lm+2;AvL4Vb5wlX(}V`i(vfxKFOOaYQ7XG?Bv ztOMst^Okf_ab%oXOfHz2J8eR3gF&`n^r#mdsry;%l}VTe@AG|)Tdcn6M$gTB!P}{u zV5OHW>6Uwu(M1YGNJh-1d9HNCxS**+z>{a)**y+`&=n{+)n|HUu4_|%xU$4F%2}k8 z2`Xe^4RWv>32abSem=27Jgcf1m*#zpfrh-Ez;L2NNBsVJF@g8?B-Jw&$!IEYP$RZ6 zKz0Q{qRUJa05uh0rV?-+82?6=2%t*Y-jyx~6V!yHR#H~sfwWO#4%sWkKbKGuK9!D4 z70AiD+{)t1ZtA11204!(zDOV!0G$geW_UIo1?ai1Wchj^@>M1+Ukd$6bur}vZ}v@z zSCQ_y6=aiUAo0OOhw74;l!gB=oAE%P~>!d#j8=~^pcHi5i+p|(9+{rt+ zwIgqBjLGA&y#9dvRXRd))V!4N{H2NlToY-zOMXWiJ2Si>u3{n$XwKUvTWuhoe?uax zPL7Nba-^h|&v_={1?&DL?o2Hhlozbxla`JaY^o>BI#;kF^%|%uIQt)|bd$wuUAbh6 z*SF2Vl}YXv2X7qNqnW^GaA1b5z!opI_m+g(xD?Ty5x(NNU?vrU3We$85IxSF zwX%&zF7(`tC7iM)yLp<}S_cP0E~7WTy$0GN@mh3LN|D_6w#-#!4)W2dsd)#Rp@^s&`Z|c! zu*6Rq7O1-7fcOWhm0nE+LHrZ%6!NK2H6<;$ryWpgjcof@S-1jkWHtF(*T+2RmbvOC z;PercN6>bLJfg`Smx#!gJ8;5Phxd%i^C#m1>tzd4XRy?~&zaA?cu>YJN88aQ zS^eF2c=AI>8hQ1yKrGPI;R4CtyIbhCWHfvbsz6lJbwQEotL-pp`Z zmb1kjFThiYcde(1FsaFU6=H*U45Ic19LkdM1SUAznd3?4?7M3~HNaIM)~WekDui4C zI3oGZa6ZVBWf%&4!et~CuejHu3A0T2_LNSm4n_{;;BVNz^U-g9kaTsJ8ZA=$bhk8FvLT1dUkBpN?|o1P>| zEn9Yy6o&viGi4dl{K@?Mcp!hL09pwb#K(kX!;+WU%UB}CSRjANAc>ey%o!!da`I6M z5zi<7J4F8YwRbHCkRqg&nK&FmiX#)V81b86;v6n9mPh(!hs~}4crtN`R9(xV{Nm{gbP;Eft5NfIP~6I)k51uN%P)`z>@LRa%$0Di;4h&)B`b;ZY;N8a?Aj)2^YV@;Y3Iq6z){DG)R z$VK{+=0%nE0{KyAq}4+j`^frB+|5req<^>wj1~ubK679qH(UTuT_ay!a^Pv>@hM4A z>WsPD$)d;R2Y%f;WCc`LH6A%mJ^c4jyUzRgz4ndSrDcC7;VLFR;+d8cX<$?lKW)Zw z)8cFztJ)s1oV`xXcVF^n@jJ=7{iPFXKKf+8T=%G9M)j=nieIx%`aF+myWF^cUDM*B zz?Y_H=0Uc}hpyjJUKyHk-RHT(ru?2CM=_l-TQ|VMjA}72Njq!hz8NE+vb>ag>?`kvPf1vlM}jU_KxKO>!s90)3GxKAxBU4N=sS#f6lwfY15T;|d`=tWe7sw~%h zB^f~^AJu*6j3XCOS$EB-cP9Za)+R4Y&j&Jz=~=SAS?qi6bN{^a;q5J;<|FxCZ_1l_ zAE_P5Z+@jT41S=}_jxI*yy_3sfcH*b9{~oN52-hNdlH4s$bQJL*9@#n91JK5D0&&U z@lomq{rwaRpX52B)LT|SZ)sHnT<-Aidvd#yvLr?S{ESTu#pBa@oPPc8)T+3Bsj+)g zE3MKP@7|NxWRv*hKSom1H518a*D-e%N6#v6Fc>W7L$=@F+XNRL*QCuhWu@P4y}|p) zUkaIpZK7qRnLC`o*Ht>j4+Oq3^hf-~&iGWCTDVV@`d5dq+RD-K?5An*Ba_TOSx!G@ zWKG`eaWbvU#Y3t1bi-`3S$W!|riKOMpOUwwI<#-H3jSayfw;p8$0iD}REFSF;TA0EX1Zdnw+ zWwAq{R|jc0Wy{ic3eP!qdkl&j6=^2~Lw{8s1*fjt9mc)!L zJ2Ns0zE_*!)|Y2&H-5{!k+GvMBj=xt4Lb>a-!f2#@7ZDBWe%CSVWaXT87aY|dGj+B zJ2Qh@VU)(5)GIMX?TKTT`PeGS z*n~gEG!L@xRcD`dpmdxVyLV!J+l}mkj&$EtNCxkKqINuq-(ku~?`Eg}k$mWRyig${ zDm;OncDk{rAit*2rPW?>_#)-vJB2qVZ@c!(!wki|#J--49GeqqJ;oh9(-plp%6r;< z`^<}9-B9*U{y6k3$EI(*`|dBdv%fCa|2lppTIOC&NQz226<&;~1$1Sl8KD43JacuY8cueH#kKzPuFzcOSOB%bHifR6z8xGtI$ zsfAw8E_9w~1&7R9+ga(KadilMyh}OJq=0#I%6U_!$CM1udxf{c+mHV-(YocNmm2wV zPKK3WHKML}-GQ$>d0}GlDc+&TR6nP|yei(52X$@dX3jr?o31C4m1~MAPztW+ zHv~()jYmY23Q|DZP5((f`d!sj)}hnH+bzeE*NTdX6CQidh7T|BnDCGr4ir>vj}J?_ zy-6xTILBYD718{Q0nyU#s)uzEZKuGrxN!e{qZ`o$TEdZ)e^MrZf1bG*nN@b|iF(-n zc&FdynR5H9+m44nKkw3J0c@1EmPmWCx2ul)8C#yY7GU{&(cfedO*=xlLFYs~P~5G5 zvSeIkfbpP&hw{z440r~84AJ1fcQuGX-s{ygXcSJR20a)Hxm$So?fH8iII?!G2Z7%3 zg!)&bNVj{U$f9mm3e6D0fnELRd-~^kBUX#>Dh8Mcdx_lj7N5<9%_E*AUQnQ;k>+>V z0x~76$se-z?;icv$y?iV{=t&e*3DE;onCA<{VPrNhG59vSM14w;rs3uZkCe;&E8_* zpqmx%f%}d}36X*pSd0W-QEr|Te1*@0!S=d+clir(S0=lUjVT^X(~kY1;xsLufPYU* z2pt^J$?m#;qo|i?Agt^^2hO888qb9}_?~9m@_O8J zE(DII<+1}~y>mH}skiX6L%g^%t@$>KEFOE!n8vaem#y@A;=S-gBbWp*zC0OSb!^eX z75CN>7SHuuYWo-&yj4i)cwP zEkL0I^n`!YWeF_%N!r`Z2z3%gJI?$JrP3)oSQqz%+SW3Hj3(cHnKrbwK5CfGbKYgT zrk-t+9Mv$R2MAduL8{4yTnen_T1f#ywhG9y72&>jqj)|Ll9N7#d!r&RK(8^4afa*% zx(ocb_S2*lV$SUe9n|}VqJYpEGl;LTi!|Wk7!qt*2fub$nHQkDk9W+}SWbAT9qw@q zT&BpiCn7X^6LkdBv4B{Yic??%Qq^^is z@6gO?_q0l7QEhx=&u4T9LS6941j^zwa;OJ6k1t){% ziBc!~lCjrb`aQ*oqmXS`=gr!|{$il*q|x?T#l*QIX~khThiu82#GtF1lCX>Y+}_lg zO4T{D_%S)>@?Z_<8fCV246?oh+zM7Y(z42i>{?aC8NKLki7m{zPbLadQL~jjAza9C z%i|Y{h8%y)xep`$SqxfYD35c7Omw%`mu$;^!}g@h82TAJPoblW5D}T*rxWb?M}cIW zhAyRh+v7o!lrA$>>-J}Ij{->wwt0yfk3lL9TZl8;2Iu3{UBm2d zPvLwUHSGRr?;Pu7;Ex)j<2r%MP}p|0yvVeU7NSNu_jz~^MJGAX5MgsbB6m2gp(eyY zrh^3N@C*Hl)yA(8);WeJyr%qkyi`WNqkm%GF;NuK1ajNxXHN%p5sk%3(d5a~kMTOG zAwblF>=0#9$yXX>n9F?x{IO^8lgYElAxj@Ci4JX43dursRRTi?U#O|$=fTk14R~AI zx-+Yga&~5FK5vHwDM6rJ@MPk2Ck_u@yX(jwPX55&15@iFIju~!1n-HgJPiqk%(3hr zXFsN&k82PCWJ zMxk>SJjx_`+wQ?h99F%Imc>%f$Vtx)Y!q1@!saE2Fci$or%leJ0u#{CCG{F0&nwbs zvrb*1&`B(oekum6JQnW6uQcCBrx6?YhfdQ~X0@rNrq{J~UL~vC_R`U$qQQ7jveGi8 zqt)E|VbSCSkeeQZCyXgC`(*3sdtKB7f4)f+O+poSnkiSQLH81wP*$k67*pH%Tj;I# z3UX=Ij)*0e95ST|Cbp8!{|6Lq{%?C;&)8*r%?rsf1}l=AF3HEw`wQ@`I0WV@kr@mg z;g(eH70m}71QH@ssWx}#p_GPYz(iWU`z_I~RTq`k7ZrJvUpAQ8yr32o#Hbzdsd?f` z31CqHF<$Z%3ox}3h7#h=@*uJF>TO%-$hu)k0W=4fk=QX|ZHv)m&*a=avlFGa+>6lN zaXKgag0Y*02x^_kV_Fl{?RHL&i1CBC8&|tY?gv2AwFbGvAb-DyL1ely{gK1Z%reg= z$I|Sv)$Fc{nSQ@M?U&SPx$nCPht50hG8wD2?irlLcl&0U^|qCJuRA~R+fnKojym_3 z%YMIfbWWlA6gTY@DIh29KDHQR<-JksL8<91`@Y&X*hd|F2P}^5spZ~K0v>u%$qHu( zG7jG4yVGg$;g9UERUG%xuPjafvd-!vo#@>P{bjD3^aQR-COqVIXR@Aje;VU&LM zT?Ef}>;G4j(s+y-m0R%T*NXB!YbKeP%NrY%NMhvu$NJ7X3fYu-dd*V5vo9wZc&0(S zWCP`^7I+U{B8MnK2Kz0oBl{LAG@DQM&3^Ti&cj4MMUQB?tWi7@S-gCR2JN>n??E>H zB^n$ezdKpN6t>M~m?l2S{p2BHl$A*aBdtf`qBPY5`$b?AYAO(M4eAj;hhNt^Nk!ni z2#a~of!WFS)=j;*Udix^Ui|S;n_OeBbyui4pz4aXrdw!CTXW}dM63pf^rVvhX`-1l zl!XU!+d?z*Omm~CHOE51E|Fa&XeQOzlVy_nxr?#+=nABmp)RM$oEtUfk+|V>#6G;$ znJgnq4!h#jI|joK4@Xu@3BgRCahLBh(bxq(Jgn^ zi|^gr>(vMe`C@;)_SzR)VyfIXM(frl=cmiPx{pbmSJ?k0=F?zLh4xIgk>GNWL2T0s zMsY#-qWeoYkn(=1(TDdSb&36+fAmYk*J zM@+K@-^QiQwWJAnI8zOyqHXJ}a(cA=qGKXPSoICB-q>Otu6l3y!x|9LWJbj>}} zmb>CQ$tV~9W5-Q8xsUnQlG${Z?t;EgGJObubnmG5C+}{Zpcz@(O9!md%}{!>BS`0E zt?O)VsE!O|vxICq9FD&)wYaos_7&7z6$%0>dR^q!#YP9Z0Ri++Ryex+JlFpvDYC1c z_i-q0{@f>~3N-f{VAF%#cNUpl&jt2MKL)Zx^*zjl{ z7$v5u5@vdDbw$_W{b2eh1Q&9A;9Rt%{+)*FSECR=}k4xqciO)keJi=D6!z;Ow_)lm0OYz zj;SrXM4xRL%V{vaF@!!!7$+mxdm#?=`_$O5rRrO3JivSfu`6Hz$e(>Gsu2r&==U~K?D;gmp30FJv}+XKRohg9xsA@`ye&Z>f~x_1EzWU8S( z{18d|R6~L9FK?P_*?}hEQHt~+&-+h%vii&EQ%#>{GhIp>WSuEya^Ej&z3SxdgE+e> zRAPmETFY@Sz1S~C>mH*X`AeK|Ud$NRPP3J_bLFLDT7Q>mc!k&x4+Ya84`;DoncSBg zE&LMV<80j9_d|T2dnEX@+`qFGYCGbt5Z{@J_s%{(4KF5;<-TnuF1y4dK3cv)E*J@s zdfvXeRO}wDKHdcRdH>;aTK@3s>=|VcA^G^UOu1X?UHFUk_H7)t;2+d^DEKWD&^;}9 zOeS!FgoCY~OOGUPlLt3y-G!Rrb=qk{4L?Dw8xULX$Xjx!$S&=;hfcnUS=D9RJNpPY zel$1zj}u$w#p!IN`9!z8ZLR$HZFjlu8*<=O)Jx??c?4ZL75zp1#KPhK5}^C z@PT~$`3H~QxtZHNXcjCXfYPZa@tdD3LFP2VD?AXK@Mo#*XKqsny{u+W+06m{lIJvl z$<-v`FHDUpSl)yis;J6Nv)tN0D~+%VIp2GUrXoM;h`+4s*`g&y(-%TOSK+{KOyW z_!SoF;EX(;UQNGpODSmoctkV742XU|FaE6=7WB=iC4%*>@PoM#c))M>f`@VN3`;c& zlR1f;Gyk(VxTn%SXJYaGQh->LpQn*yRXDVMN5`JkM^Qu24`gcc{ki4>7yaTf_y8Ypg3!J*|?=>ipeeOSoX!p>g?^lU?^Iu zIFKHev1KYJTP#R_QOx?1xc%x0=|v3-n42NLoLOtNZM$z_ScXMe{MOGI8B<3yr{`_c zrf)x$ktJ@*X?~Nl@%tR-xmh;^rT>J>b~YAm{~kKUII{#QEZR)lT5>cd*=Vu1n*=v-nx_Z|S@Z>9p-uqR3zfx`VQ~jCiB}D$}%u+e{*G#@zv(L{u^y%R+yiH8*QLUe|xhW@d z+kA>hhW z&dkdBGYi;-O6RL54=+D$9&pa+*JKfJesc5q_Rv|eokyS1E=>PfgQc(Y-hQ5haFpn! zjRBW8ZkKNfXv$~?61F#$2Q+=pyKe+zi%gxO<0$Qq#+kv)#Yr6xktq-`=*L-Q; z&uhgfpliON4G4PQeD%T4W|B}dxutcwQ0v>G4HmYAwY1F_-dxghGhTQrvBe|tfOJbs zdqy^Z?K0mz)?N*^?-SnHJ_aaIZe7dW8^X@^md*#ld(Xx?s?qWnE%$0Qw_mngdY|3? zz2$+n_kOkLUN!m<8ox`0?-^Sj1qXJ8UF(`3_+-hoC-H$#6R$np82BvX+OwV4?muYm zn2yaiw%jg0z*V6yUOHGe3SVZ7y*Pn#d&+v+cUZ?9koE`mWMtoM-|=Gi4or>oym`Wp7@i}|k)&DXzW7+-JR`Q7*Wm+wI%UOR`Y zcfRcldb4rof76Yfk8^%Pf#1Wxk2ijGi_x*qIh|qPcrzxlysQ1QarpaK$DAd#h}at3#~PHBA|)6<+kh z2He}-xA91qRkDcFcFrmlO-@0rbg0w=wIa*LvrtZ(+6pmhK1xA02jybI=$WWhI!3ld zY^lhOevQ$FSm9A_TfbF9i*y{Z>d>%NqLf$>U3Hx;)v)V8Ryt~xStjLbs8W<&fpWSD z93^NfMK|ujuApI;iRj57wWkdG>{0=;l2NN%k?ls1-D6>z4BDxJ-qq&NrJxla954b_ z_}yHc+A>wNHVdUlP*)Xd6)UogMXf7-brgftbkPeEdT>hGXJ3b#Uy4yC?_tb=q@(Em zqQ#$oz^0=BO9?XGB4%Slj6s;m*O-$*hAsGjr7<5-Y?_1 zAR!zOk~J)Y9Iw{iuGM(Jh)|Uiq=p#09D-U*7mApXz$wN!p&Jr*h?xRxmy}#MHf4Ar zAdFNKR3d5w);>@O1Nca_;bot>T8r-~BZOnGV`x~;pfD0KXQDziL=dRjsi;t>u0AeO zb*Nb?Fi0)N$HLqW2=C%C?10^dT<9!n_YzUB0KvSV;g|8AW&Xqe?D$xVSwg}nc>GB< zWHnK_^|XKgsps-F+C6&oq;V) zbME-Y{I3&U8!-&`*r4n-kllb#8UXBpax2v~dZg!Zpece35on|x@ zwN_{-|NGg=*`jw6)VagVDpO-F(O4lUTZhGIw#E8$+7qe-=wBTR9~fVjIb_1SR)~h~Bc_ozP2U z6^q(o&20g!Vnm<%$_T}L=83Kv570v4Ht)#^X(3AG!zT4=^Fag$Bak;je~aKE0Y*J+ z+KEv4AVYi$<6iuw|w!g|7(C1J{>9tsS4O$*>Y*JW_p5n<5Ngr*x){fNUtUP zOCg-I244ova0YwI@hQ`Kt08Wq+%Fu$JEPN2i)X0BXu6OkLLHqVK#2S^&(8KLs8b7JrJpuBkkDDck|Ct96M^z49 zXs|QLGKd9@+VqJcrkjT4CSp2^n6X%Z#PdxM`|;H*C02rRgqq*wZX!UaN%7PEuLR{_ zC8xU(oWqCJ_M`jjE9{l#t@Z}c!Jx7K09C&@+f^{(lc|LZR`LPr%bdM)DA4l*tmz1-xk<84#V#wyXdsv=P&8wLJlKG&qFu| z!-D_WW2f8<`roA;KClA6l!N1se}U&5XdKsx=2(?|)>utowe(>yR@un!tM&Ck4lf~0 z2I~KQj{kZj?KRY=|Nn)*Ycy;T0$-`WYkzOaZ418rdw9P#k_p>pYr+a)XB|vSMHv!} z3w|j%6Xnu?S1;q)u_z-ngp1eMDXdua4>)DNZMa{MNeyZ?B62zpv%5`0s-->0dlr7oYZn_Fw!0%Udf zQBE(Vq#_O~l!VPkw*dg6ApZVWw>P3nG?o^|xfiA84Sms?I19HI z92o65HE!B8Cw8LRyxW0Wr-sTz%sLp4fh$~1t4GX6)zGLKUk?Nev3{q;P~bNrbMKG| zVZ^;l?T3h&b*P`W`gQSQ3n}V4a>_OqyGON^0^BO*f)!iN+)r^Ex2gcBy%I zt7WXlmcHI9SIv$=tx8%s3fL+}^tmH5t79|bx;5zhCj-LZPr-O`n$XnxgXO&UtB#< zIK}Wv&8!P#_QB@5yQW_N{Pxpe%}L1V+|Z)xTW{m`9qOIEMsoDh9H=IU>8l3=*~~sQ z#|4yRjo?BIpSPTE@3mrHp7Mw$A)c?kUuQ8s@e`Pp%HAm5}Y>EqIdiBSC4tkVoQwa{I4)T&-O12olJ z&;_C$?#l{8mf+_&Fr7p!?;*=XNx`<{j~B<(m3XWr++r(yK^03WEq6sLX76hM7mj=G zfcG_?{FF74k~Q*$>pDD5g#1x9F!9sRiJ!VJy9{qR-Qm7$Xbn%JSp0RrJ$o(h=NbvU zGU$JR418dtp-M#D3Jo(AWoK%z?qi#*p>&GKsiLhHTE-dgIegGoDQZ5Baw=hVrHC@3 zF_DNkC4ik2O`q|al8ZQFEJz2xAT7Pk0Ws2c+Xl4C1V{FRrsG#odLeFwm<5K;9avO>d3$H0h< z2qID&VyghHFgT}OA3ujFXlSU)Fm9!W5-ws_A{L`Y5jPvaEU4bC>@onzMY*AXQ?BS; z_4TzY{^#&=0oxY%Q(ts(eq2UTwuP+=>;GZ0c%7b)cXHpH|{15}8ip6K87iyT5OLpj*E(*|0P09F_#ZFZP9 zz%*e#xddm`30mm^mISm@YOE>|cA3Ux6rCEhh^$BaPKm5jf3;87{69$MLKvZXOB4st zYG9lDo`whv=F;<;iPze&E!~s!IfEyU>j0QFp3RH4og1jfsD8^vP6r$#M ztw1ei)-UkEoLL!2_nU0fcYV zPXE$smU<&lha<$QefVmDnhbTz@G)9`cePIx^3n@~rJP(SUUm%S)H8fx7$B00q z7SCbg%NF?2j+#hB4bE`SY4kLCtX5Ef*S5ft)DZqaX_xYL#18mOgo4rFiG!XZ7%lVA0=QFB2 zUcGeqA26RCyEs&{<&))S7jCHWlT&>?Qx=;tq}P_!lijnT`8D z7iz3;^wF_vO*uDyGj-I@VWMx+@VEu5vTeR2_~l_5qjCSZpN84h%RHTiAMR}JYsC0-pH*U@{7MA&@l0X5#jfsc#nVLJ)kpXNyk8o*oN_G zD6=Atyj9B5r6H}oKwK})OA`@kS=icJbI{%}LsPS;x+~HWUl5PJs2-vyGY)91!|Z`+ zys?uzz9yC2$1E3DUr~z2_GNcG9((?|g`>m9dGy8wm_4{3i$Sb%5sL)GvO)NY3R^LP@Ix3Kz3vhJ+TaS>xXebD3g>8&U75$D(Mh|dGVB1_xw-;)O zg;Q9kRe+`vkc(IMOc&9^QH(EJ)MG)_Ne&j$01ito#&AcrnIR%uK#5IkC{GKlVU`+Js?}BX15`v3WSW2 zR1Qdr64`xG6R}aI1-k)on?>*gZIEfSh=XV-Snw8$>ee?89PzNooXqN0eRjk~L2K)% zv>SCOM~UEVF;1nXc>|0=1R4Yg^#DT&K$*ranhOk#A;53{2|;)WpZplK6`Pc4&4C+) zvfn;tW8wdtC)U=^bsUUoU?a+Jpk8BCBDR?ttX4)Y$Z>PRfXc>etQuf;eF#M-;@E;1 zIkyaFw^#oPD?}XVf$#UB^wSUdbr3!~LYNB?$~0UFVxob9g(6jg+*6?Kp0m(5T5XmL z`GiA0J@TMz9Vn4|=gRR)c>qo9KY|3-ttGsb`{BjR7P7ibPHR zwLB3w`d69ZdG-DDdX}*ZnjX*U;u(JM@w-tbTy5{vH+vdy_?X3Tfdg=^&*_5n;}p&O zPq2BHJ-3bzU8WBECKbDj5S)&VcL7WXftsrOnZ^^$PQHwX{&P%&`uDY}VLT4BoU@Ci zl0d^WlX;6~|MhOt3H#w%d+1E`4YKmSK*P1br1h%MOM^9A9RFGV8}|FQC1ST{9o=W@ z&2#7jfN7o4=cLW5U(x$Pi_CYkEnNZ2;Zjc!IFfsRu=8K^^#4ccKF~B)W0{UJ5>PDK zPhW#t>eO=!v7itgA75-;0@w~}tjaJO)G}9N7OAn6Xyy(@vvndX;Z4h?*PI5mWsHWB zimqRwv5UpxPM91nv&u!KH(_!NXvM)00bV_TT6WyGj0V|l9=4o7ZZZaEz&5;f;X%Z* z5^<#&6&QK8Oh!4F5063F*{D?vN~tKO#DHu*Xi*5;m!ThGz%5Hrtd-d8ie)T_dFBtv zqQ1>R!}Fc66B)4@D+QQ=VO6OiOJOH9IPDLO6Gn>3AQpIzRR3Z|gXB&TrvtHUTJ;IT z=S3?Suan><2|u}maUyzT3mr?DfrUNzNQD^|CUyXD0v6E%budgw(;=)L!z5PFl|dk0amK6ZX< zC*bjU&N=Tr=f3B?_xH!$pM1i~%fe*H#C z(&4cx*_(kTN0m3wV>$HT4wCs6P1l(?Y?>->4|aHE-n|}rWrN-zxenmDZcGUUmi3VL z`f#w>(QH@H>tSXcp}=E8K2*J|+#tDpss(j~K%v*e(i7;8ASmeJ7ANh)QZT}34g%${ zJ!K71;mBReVWR3rIR^%!qdcB04sHqadT~t@V;AZOkpf+$Q%7+U>5dTS7{nduiF7iO z6b4Bp4zL0UbTa2ibiNd+F}h82C~5X*ZD&x@cPSVyEloLiz zbfTawDJ_&LS(WYzY9l=zhJdJKj6OxG9&6&O492xIk&eOg`&uHMG&Ev9dFP)4HGm9E&c#=+99kq#mSy)ED zjb0AL$d$5IWCZj2tv5#5VIp8nm_uV;WRJ*!(;rc7D6Xm`UM~B<_3K3z4iaB#j9$oR z`$lG~8zrt87@bbPHapxiEx^8TF?qKT`!`=S*9WCJWXRN9V;)_bwwuZEfMpez%+~q(Cu*cK}*J^pL6(3{Y%nwz~A6@3)DvBID zsJw=_?evrL8(|-R{z*DJfp50aD&6n6C25Ww`Gp(LzFw}Zdm;bk`iAM)pO54#28>ft z`OmDt+vDl*<7)6meBRKTCyQ@>SjSd0=E{F6tlWr~9D=jzep*9$H_4&I%8!$Bi;0S# zC_f%)D}0KTdqJuAVW8N!EZ4#BWg>8@P6$369o5@x<&_@`nq>r+WCG+ssBiTtmkS3AR z4!7iCPYYB*&4TLia!A|IKVIfVMW~3{04+tIbV3p8AweZ|NEV8bm)RCB0AyZfs2}MB zem#;d=kOA)0qP_;$O91MKpoOLN;ZItL}W6LG%#hNkappYP^&^}fS+>84uoE49l0vx zCz&TezQYD?B}WIdR-KR+%1f>Tzn*$$IXXP$IxJUyQtz@CiiKbzz|mnZ*TK9@Ks}N} zBsi0QHG`Rea$Da4-?nnRo+hmx>pO@)*ZIg(3m~8d4sq z#0wEt{+}xqqFCCHe=NTj(k&J)s1|+>)e(^%Ko_AE=m7tzjgn*=cchYKXb!rI^k?NP zcsj15mPez=qfyEOuHQF)|FQZhf4GtkS=3xvrlkm)O#QyByHWHfl66^k04ebIpXI+# z`sXQ^b#;IIYWpvOe8*_lYPVLhDle};vHV-HxF4r}?;P~z`S-u14DF|O_uxfln9>PX zH2i-0KfY|`fj2)V{&BJ2n*Q6le@Xne&wRqIgpzZT`_qN})7t;i*#E@OatBs2L+l6S zfBT;8AN5Ke9V3a3p%#dBsQodJbLY;zd-sZpiUP%`goK2Yl$45!imIxrfq?;y1&Br`0W1=~_qb1vTJQnufN7+FSl7t6Y+`UrVowVPB zvfrb6KM3ws`#mXQ9@S#*WHGlYF?WzD7OsJZJu44+K~~Lv&+5l+zK`AfWC+zVgqkBh z)p$4eOa6H`f^shg6`O|Uy9Y(M1V`TvD{v2uF$*ueA6Y_p9^)LDW=$+KAy%10SKp4V zwu~u<7tY^Ftht%kf=wv3Ol`1BYj91c;Ir!Nv)hxi^K%M{e9PJkO3Kn2`idI6a+(Ix zn}$l8d*J=^sr|2ehsQdHCVEDv`p2jH#%FrR=XxjR`X=TFrd|%sz3J!xcGf=BZ%2pD z%8yl%15aszv!U0 z{qwf|i%R~LtjqtqHIMuYSMiq)3{p=KU2X9l^(Rv#mUo>aCmYUnJ=asa*hSed=s6%9_x9#&P!h<_w-`kJ!bq0B6lpqieNRN9eZjL^{= z`wtdo(KQKcpB0mg-)+Uf$fR-3kXTjZyM@fl~Bk!bAIEFD?9hecbJ{nb&GGS zh;+u~3r43d8E=+WZ^(J!O+I4&ZqAlxmOqA(b&EQ<;AG#v zeE?Qqo;iN}xQU4gAQfP`w6p{;r7?8@O&7qFM)vXxrlR}B#l*#BWMwbt>D@57efy#H z6Gx{oVsz5Lg7gs?0I1<3>?7O9rnU~2kDpmS!5ze9?Q<%yc;+JIlylIfSlp!;fvj^O z;ME%EuHlj*?N%i2Rw0hB6nCrKk9^4c+^Qr1xE@sqa91I#;h7`rT?qgMn4b5}R3nrt z5lC`AWEmeoYPFp23SQ3z6qyAipA4oLhZY)z6dez1bPkCz4ljKWo@WwSahq7>9}(+9 z%(NvI07h@bH{fG)Tw`+|$Cg?o)R-sK`o*NVBoun2mRaYv08CTr`kvR171p=v{ zy~u1C1&qFE@9gRy>K>Wu8=LAIpZx{UUcl(|;_&P%fa%hQPXvN5^Xg;rmxt)T|MM5< z|COrRsSjz(KY!Ti|J(iiHChP$x2vLE5v|XEe|59}{3`yw@PCoQ6oKVh>&V80bLGaf zxVW>kaIi8ndIzxIGJJH~=%%qrWaM$NhXPl%FcZc>- ziM+z%E&NxM_E#2R8n%jFl0A@Dv~E59_HEbC9Fj@1*szJ=>`C<#hX?jpo<3*Ar!OR4 zcSCWX!N$!yr3(g5i6~#xxUj1-jhPo8&&so#Zd}AO_ZY|X!))UshE67iN0}XdBk}%( zvI4RwP_i_xDB$r17TiOJ4k;=sUcY`FsQHqUlYyNtJw3gss0e7DfUg@Eoq*Tr7x^BI zyy+LDY5YwzJm;oHR24=qEslKtxQI|V{dfb4c=_iKYwJ6BH%D0|mGio~2Dgl!x*$q9 zJi8<_D+^mS}d z_>^z4LO_**U$uf?jch=TqJOQKU((6IO7)-`m7rS1fOjjM&#X$D8Cs=zD^|Hj;4U7){SlojEHfK zOog$)G^XZaLYq}w<-^1}|HPcIZFYhtsUK610&s|)1b0pMEEZr!T-6eJ^v;MTmM6#`ro@E z+Q9U`>@#x%>Jamgz5s^oAf#Z)?_dtRb{jd}mq^iS6eb2CR(7;Xt+UStVR7>|ERKP& zePi;u-6jt1$K1L1UHTH2;4gZEvsv74=Lx@^O2N!mC8k+1sGWo%Z5?>caI{*bFf%`v zG2rl}#cGF3=g24wgXz?fDMPLc`$elF$KKI#MX4BH-{R}2;^Vd1h&{q9+vv2rn3)w( z!1B`?&YgR!KlpZF7<GOU^wm87`F|knH`TzI~xL zh3+>V&aZ%Ob`%$tdS3G@HM$47_YW&;}YBh&2DAp=pLRjgIZV zM)U=}3&+%ti|*UE9}IO#NvR`8`h|pghdj3> zre|emyOgwH$%Bb?ZN-g^i5-&w{Q9xc-jVUIV7f0apVrbAdKi7z;?eB~kCdLpi8n{9#QI`(Jfs3wD38nTysz3^NzU{t9TSjfqlMWnUkpl0!7ig90mb- zpHdm0N*Nyt%?LLmM45QU-1jA#`$b<4%u@?2Qw*pB>^}@lI1yZD8JuVql4%;8X&RDk z5}acal6y0x;6`ZSlaM%z=h=6k7u*Uf(hVnTM%H+TMjA$v&l8($qOvWC#Q^y$@h#Yx ze2;`&fV^>XdvHR!XJVdbV!^HS7l3_-v<8#xUVyxNc^|%P;AzEJMsWp>G+I>Kn%~f! z)jXWhJOb9hzx&KL{9nb|zuVh?xBMmQ$kY6fu94%nLFwh63%t=mF_)r*B(s#3aAb~+ zN^@N5(b39lHi8dK_cJ^p!!vu7 zWxK=FmHw)Dk28m^X%e*1uBW;8=p+!(b`XHaE5ZDh%yTQ5jTghnYhplmJZ6{falAOm zuwla{_b@#U!(EI7NyS=GiyTRx?FVtXA2#YFuJw;Me9de?cS9>^(-HQ-2dY!}wIX&i zCP$o@+a~se_)6+ZFt7zFI)B1%J0-(UwXfL`GP$oPYZS){xg(9)QAS4Q^y$+#ZrlK3 zIpA5OVHmg-fmo3?AEsH^G_Cv#!=RFX>0{8uuiw9c`Lva_^&=;D_t40on0Wh=PUkWN zkVV~N>HYI*BdxsMa^knQ6$ZvUl+~?U63yRS7n@ zj5q0^C*`0wVu>sGQe;>cRRw3414M0$2E0nUd`r3=Do6Y(dMGt@h4md-4ZWG5o12Ge zin+F}r*CMqcWAV4c&vYTd|+f^bb4WWcCLSZY5#t4pdJF&As`&$tc?SjAz&B+av|Uq z0!krZ69OV3;1B}(AYcvx(jedq0;(Wj2?By3;06L(AYcRnG9cgq0tz5t{{iA3;QRr) zA7J_ck{{sr0csy$^#MX3;PL?)A7JnS@*d#r0m>d=>j9!3;OGH*9$@AHQXb&r0V*C~ z;Q<03;NAh+9bnu6vK`>r0g4@9*8yT3;M4&+9bnP{5*^^r0qPuJ%>lw3;K~7-9AL-+ zavb2r0ZJTT!vP{3;J^X;8(_Wx(i`Br0je8dxdDP3;I;u;8(_2nG8^Er0SX&nuL0s3 z;H&|<8epmck{aNr0csjxr2#@3;GzK<8epIS@)_Wr0m>O*n*pL3;Ftk=85l1hY*)oGue)?n z#4}XXbz8m(-3;D;mzITb%SZx6pC9I9~9w+q1Qs+IJHGmF=)&5ZsG##8lmq? zSrU)hT`=_S)kT!LV}ThG9a->}W7o*7+6gi;j?O2UxUPSl(~@{}hC|3kA%I!A$~z=h zg)p|HUF)?)#&+hevRvFd&&`r}@qYHi*5@yXs+BCvf153T1MO^q+JlaEKsK1!*_Uo*UDr%CypnEe z82`XFNOkY1MN%#*Sg>Pd5*z1TYj?&jBhtc(br zHeo(aaY6RcpxL&kVBw!gKYuRR*rBo|xC zCwiWacNdNIMa>VoP50MNj#j)Hd;Vs)m!58V`-ia*LC03n?ZpIO_VfeWa_rf-gd_SeZAQiCwp;B$BRC(#>-U?&PG{CCAtoS6P(SnvtsPDV4aI zbl2@P5al-tD_*qAi02q1_g<4ZFF6GwB|1*hpH=UYBPQtaoJ8qRU;@NwnZ&Tk%zQgJ#^#;3GJn@@`>eIQGm)BkQE_Hf$I&<&#{m0NarH1wtsWX)oUl`B7dYKvZtnwMlnh$?$ zf3k*fe2mNP^MPiYwav3lG-}8-dz8kV`HYgrT{d2-A9qf`3QpjKgG>xX(=82wB|D{R z!b8|9rg4vWg$?VjLqUBSB8i^r?z@y2cTW-2Vv<;V)pu?*^wVTaX4#!2*>H3BbM+%} zJHrFGr+kinnrqlC;;s|7C%%aLr0As}w*-+4e1F0&Blmd?d}{cSn25-L-K@`3i8_tG ziKKVOqms%l&P5tkT-@a)#pu?!OUE#I2jL3qZg+miq|e6%o@wq8cF$MpzzaS}!{G(p z*}tl9CrYZYiQu)Cxtn|ws&S_K4}QWei0Pm3Yua7Dh`Sx+%7;@I%;FVn*c&6P!Xk>5 z>!=qhy7E9765qDRxG2uy)v~W_O`XH;I*A(~3h@dP% z)*Xdd?xr1iTUb1VJ@YIwb8?sk-Nf>*yz>xsXTB^h<~irboL{aq*2M3p@3$me%>14? zz(=G*BX-C;hjrhR>URy>84G32f@~u#GGgbyUal8Q_e{pkX7a&xHzNz?uGt?kO zw&66~l}@L!>>+%A=eom1{9Qf&6VH_T{b^S;Pww|tS8)>zw70Jpa#c!s*)V9=u}|TX=Mvy`11WVIx4-*ZsFx{M{U61`vx$pJm z)A0~0&{ApOZ_%yF+->+WrM}1gtOawEHr;!-0_E0nV*wk-4yMtAi5hHUJylgZ#pJes zN#4Us_YhAmWnKQbAn@A4O(@4ChPBSsd@Ea9QqH@&dJiSSZvM_(oJ_3?sq9Bx0^b_^ zTyY4ubs=`l@R>+ym*KNf$?L54qD3ZWBd%!YO|rB;mA|x6jJv4te3JUJB6V#%>a(lX zoET1^qjQhxc#Mwu5>H%GP5D<+iW~>)x+>N1A3ymOj~l$!d?wM!|C3ayk&ZFfRSDnY z8LTR}FWL2i#L<9d>|9cj!0q+UT-Ccx`Qk1lO}J@!#_%Spvt0}^bk}Q+;mNJ95vizh zzuGJ)s?%Phe7D*Dj3$F9kll}^y|5o9H+$tq zs&L*=aMlzSE5bWFa~h7Ba{JfbR-*UjabTE>X8KY* zb)_-Oaa3KOU7^hp<1MsS;#@TA*$~RsdV=$wW&^?7Bu60CEPfq)Q1CmBc>ag1G(*}>H59p{a^@V*rOV^UKFoOk1HY?_!mE|cQRn5Tb> z&$!KTGiSe({O2(giXSCUN6)0~*TH(Ph@Q?Oi%DTg(2si@#}&ZOAi?`Vxb&QeY6HK6 zjG86CUJ_O@(!zzidJ=tgiNvbpjuRvVu)=#KSv8k@i0lj-TlDK>+z*_!Y|Gmk|KRwc zP1O-m?@&^9e8)C(6X^~^Q>J5%8@DaFC~9?#D{tA?TKOqGTqTJl4hemW(^k0U>M@6mGGAR5&z_-x{%%avDrTU zB0<>~8X7rv9$?Iz(~r8#jJ09IVkOnl=%_%{x%kHC+o#^=q4P0(Gv*9C>Mw8_i&ybx zaB;IJb+PtpurM2<=r;4B>AtGN`;QEHIHzvzTDQca74(?H%$#ob!CUUqk%EqvqLl4F zzU<~?f6L&M6^(>gqS?){Lm>ue+0SWwJ%oM@b%QmJi}u))iS#>!$@?#x<9KS7_;!hm zvz>9ntbOXqcOXum{*$=lMm=#HPyHDBoEDkRkPCOw5KaGunINAu?q$<;gR+cuk*aOp zR85*3-qO%^?AcBNib({^ahJcEZYi0Lo}a|@I7FEK)AxQ!QGGPo=EUaXEThbA0!r4* zt+7I{=1v5y>%fzZ=#0*Kx8&q2-4<81lKTN(rsyq{kW-s#56qqAQQI=k%=EPREKx^d zY`3nBZwXz_sgJ_AQzBG5-wyP(78H!@ z-@Ett+u#_dR6*&!*A_mP(K=eB=oimXk2((oPPi48-xc*Q{j(582Fb%6mqK0ZD(GXwnT;CzM&F4(}IKYxY= zBrt;w^>mFd>DoSeKWkpBiCB;>zr!*C0*H@AHNX5OaO=mPzbdM_- z>Fb%^)PH1t2Wx)y=@VOLtex-U8+hlZ9!@sycpSm`ae$Mhhr6qv+tVFO?$z-7 z*VBKzo&5gw)AEmx%Rm0OX?*R$LsJ_Y3s+Z1Utf=a0KbTcKq4_HHsN_@W_*4@Qek0! zadA<3SvHwc+R|Lr+S=IN-99ohJTlfeF)=nhH83+XH9I>pzu58P$5&lF-HVqm-Zs5W zt|E61we^m5PArVhE=|}uJau$&cJuM{4h~38OU=&9ZSCpo9PJqx8T|b1%ja)jPiktK z-M{bX<>^ES^z`?44t(wr6zC8f!IPxHe2w z*VL5N*5)=eRy8zaw02jvx0S!>Zfx&t?C2(U4_EgN_YMrc7#bfK92^{*7@nFKnVy-R znHgW0d%3tcxA zPI<{2XyrAyE~--Is-CO92?>>!G`kq68W_;6M_<*M8>K%{lyb`(&v`Ujx1mj-h7f-! zImT0nL3M*C!+Y<3JxfkqMYbJ>%YSIR!EZiuM2D~&o2(PQFW6{UdjmbZ)iu`+)lsd^ zz|T1GnjICuCR8|_=e)(O@CWYPXMah@!O5?Z55pF6eZ~ZFb z*vw$S&aA0vrzGyluvSiqU6`vUTa(9e$9wM6Pk8gA?8Xmi&05W_UvGt4%A_+7^D zfH$;M-w|-oE4yY_saC@aHad|bN>a*3SXHz*wknF@Ql7xctx=-Ulk?Dg4M^0$7$Z;31NRcF4EP1e99=^xP8dp1u9x7Ta24YN6) zSL-CxH!YmQM#f$0M!Q*$5)Iwg>=lk_*fZIM8Q5o^)#?srxEi40m^9ho}2y4a=PxHF`?>vp+`!4#PIcP9t zAjnWF{u#CPyPVDsFnV`(cG3p$o}QlW?(V+6zJY;(p`jsIPXwRF=;-L=YC!}nyjX#jOOOdwzk~f-lD$#(%!zJ{{E7I z!RUd(vcaLU*}3$&`HYt@vtPcY+pWm-uy8@%@#MH#>+lg;KzCr}jg^PM- zmJc4;S?A>C7S~fcySsYF2Rq06U}*jP^Sd<>enge}YDY zrIRmIm#wkMZKJ!`yEaI)gv}Ei41G?XgzSQny86bNhNgzr_Kwc3cKDwR4iACGn3_S{ zYyUqug#PTq|3A|s7?wx51a78iY*mw||Dt~LHk12SF6%y)I3||$+JqoxmUwl43SL%4 z+E8e^YmdVD7^0ukypZ~~hfhi2wzp>}`0W-8Lo9-`E)kMA)^#PAV;q}yx>R`bP2$)# zA2AcV^>u2m;OQl0H6EmGcJ1$~SBKqU>=kSl+`4-OY z;SLw@{Laj$uY~Ezec;DCU`XF4z;FGNE2L~}59hX6>2ZU1)txc?j$9(@O3Kddn~$g` zhtbz)>^X7vop=%|n#{a*pJki<7eNXGN3L=BaF`TJeircZ91 zy_0iiG-HN6RLrF0A@lZ3dC$*>ejgkh(F9mQq(umTqY_322*ZO20h+t=%$YM_ycruC z-??+g+}!-pqes@(*0#2`1c*=Z_4W7n4+sbd3JMAf3xnZ;NFSQ?7<`p>S$>K;9t3P;r6wQ5A;vP z20CXYSY{Z|_0{(E75Dd-4GhE%43q-! zhey&!N7F_|6UHaf$0o>AQ=_x9nRB!0b90&V^I7xrnF|Z>$$Ghv`D<`^xtRUo!@D2f z-vd&A{`fF4H3`^<^_G0_T9%RP8XAh4+W_NW+kmSV0FGEP-@hZ!{{DUG$B#EZen7y~ zN9sDxx8>yv`nPN98k$-MItE}b)c>7B{6B%yE&qv1{->{>xfOMtdCS~{qlY82aakKF zE82yfb8Ae9`dS88_jNpiA4oW2t);4`7_3buy+mr*C+RkCvRPxrwP}XqC zx_)Nqs-IN*@o;|l(@!FID&6j)A3q6%7bjOvb3lYr7v<#2-LvbQu z0uX5nVYYyBTCe~_+QJkKtN=MVc!h`(=zk+4BLMf~$B%J19L&<9qN2bAfMtr};$pxw zD05Kb0OhHvDS$G77@!QwoTkZXIviFdL5BmB{}TIWb>GnTf%cP!#;(pz{!Vw@TpXV} z-wt)TjQ~3GUTTbGOLahFZFP5T{`?>jFugF=h`@Tf4>0}x+h-b}jg4>KyLZRe&nLjo zEH*B(pfIJRG^L7CP+J?@+??9n6w%UJ(%N46qAjnZBcrRUxV|^NuP+HyI=~vhJxJB( zgM%qULscUqDPyB$V`KT_1&MvrJyEcgI^n|!H4?%yQ`{p)2>;1P2 z>`;_Du=`P{z&6e;5oXf+EO*(u^KU|PY>ki+e;5bv68XN0eyQ6W! z6GhIcX|8zkqv+=R#1uYg@AcX(;fCK`Wqz-&FZz*&T9VVS8+%CLtFp= zSVTmGrl4t2e1KjE5KvZD1_S=yy?X#%4-ar41jNS10&XF?FC`@f&Lg|?5yy-yqto9j0#d*Wn~G86jNPYR8y1F)R_I^Mf{7_sP=YJ zYkPTDS3aP(t2>tpU9iTf8hJQlbTkiv?nuVOMB2ne)x;!eaw;8gJ3Z4jH4W`o<Eg}zbJvS3i~Xt@Jhq?t*>V}b zLE!>k<>lo;;R0l}wY7D1bxlo8 z!MKJAH`v!>V`HFO!3he105DO8$uXG5G(RX9$h4U;=+@sS$6y^_*ON29dmd1Wy)SR| z=)p5fBbP^KJ#CKyYC*$>6AVGgMg_Z-X9gAK#nk0JD=*D_QGsh~ZU7^CdLW8sLBD=E z^Y`ZSjT_f)-!`_jwZUSaxw@G8`gsKe_=JZC=VW^p7Uh+dXIECHR#Au*bs;si`3-ep zt*sTUt=U!WDIFcLU0tQUJte)p?Y(`Cebgy+e}5V>r5-FB8Y&$bNg5vq1ZRv-rcO>) zOiyLbO(xIGWX{fJ&CI0D&b3iZ?2O+`Yy`xMFSBU6_|2QwD~9%u57std;okvW9Fh~B zSe24cm6AwF`-e)I2JYJWma0k;pAHI!Mil1Cs&H+?N{ar9fHs8Zms;lLY8j)AP{tq? zMQ1`SlY+vS@*-z}aF+*!6sXV)DTCB(PR#{i^VE zMW7Ra!pMOU;HC+5{7@lspn0f&P$;@>P!Bcb?n(;!(TafKSuMP2HA`ky*t;rNtQOu5 zeMZWo*R5u4TovxD3P_j^a-jL)3pvnhX@5~@zE$DSs$kAsh>~aCqMpT1ma$>n$Q$BV z!>q)n+?MS-@j{t>tMG`{xGRx?b=~2`zP<?>}S~avSY^%(7?1=G9a3!glYCOc+oU9H6if!?Af!h zajmAN24=wE2?G?vrWly!0+vD90*Yx7dw+p2V3vkffMiE&(`aub4V6oCsqfz|e*I$# z=CUVGp3u?JzH!6A^p44WbCX9_53Fr0U0t06g0bNt55t~2r=*1Ct3{x+uBNByeMjKFYV|k>+CG=>5c6M zuT?L(x3{>rw`6c2k>&tHbnjr!$Y}A%XaUTIM< zoz0t>%>@Y0%w)~Z=E6jIb}oBvJ|A@Q#7hX(0W5<;h8Z(rSI<*T>xIP}8mQmBZ+-jj z)%*98-@ktW)A|>9Y3B6ruti~X_tPGAjNZN#;nJ#b1r#-MV6Lr}(Fb!;5E3zlPzDj` zZmyOwS`|!I3!ARggGNAvIH)jYkc9|nb85YiVzHvTFqWW{sAa5H>#^AlCE>u>L8C~W z82c4t74vjOgJG~BAes$>+q+WOX;pApsTqx5X$uW+QKueg&sD)21f&)4+0YJ{*`ZJ( zND91iizWntfHZ*)p%p=)!&XzmS5qQEK>CIzuBOC*umeenTTMw=6_Qqk6y{u%6!R7v z*J>ttdLAovZH(GBXO_(hPDx}=cdl(qOY^Z=7-t?q)Q|qj;|BChJmTg=lW{bLnOiJv z3txPK|8~^5A^r|}_ZI1UT_(F>`?sUOxhiIcO_p=m#Jx7>)>39T&L%Q)ir5&$o!ppu z%3oNoO`jz~=3z5-U1OZHH=npYD%;N}eS?_1MVG#Sa8p>SZZ^Fwj^fO*<0RUD;{it( z&#h*>*CQ+#IJPuguf_H^e>q8;2UC|PJ>iy6=fN}(gCCrxmcfh$g$zrT;N1oX7MV9!!Bsx-?y~^c0tX?gj>_F+xsGPW-Jq#yv_o4U(v98=FBM_ z9j$ZcbS~)WUcGwd>Q%kFcTFBYHh=c)sfPzHEC@AI-CP93 zR0Pk==1|d`F*BQinA9*Wp3g==Om%zFY-@n>!ppi}v*cHcJzu_jhBe6J>c?pa{zvdV zC$B?&&@j4S+r`I6qcD0jBM*hSB&S1tDlu0eB{Vn$a12671PJ;{I;g<(^MGSG9XT*J zAtgF65`{5RSV5Z!q#$6zm_j|&GIv)Cn?V)=Q;azX$bq(?{(%%rIGvhhC9~4H4G74A zu>%2_Tw?4&2#JQap31IdVOIn+ZlxYr`CfsP3kVSj@hB>ek<+O-M#cjwj;UZpaE!p6 ziem{x@Pm|th=AZYG6GIVa7@iYa2y$*K*KQ=wFr(Sk-`X$sb>*Epk^UBrnZIP7#Yvd z2#%47GWu^gW(vdd;T#1vTRY-6Zm<;Iy2;Ac4qja@wC#z#&0~LVp0&II;cGZKxOk#* znkkAbk0e!(o=i!3U~Y7r8MRC0%#FME^T|bM%uZP?{d=S;HoDfmN6r}(G&3+UitIak z@m5!%!fvrWa#Biq#v`Y64oQn1(9kv-G10Y_YGxw`uCW5-qXF6v&seCeU({b$df5C~pA z1ozNTpYX_l#H6PwsZptE#O$2-tn8?)Y+`;vazRllndDtbDr~5UtgA0?YRYeI&S+>! zY-(z3X)WvMDDUbf_jH%^^ptk@biq1OUti7&G69wYDFcJ#e()|+JyAnLMT3KBfYRaN zhT-9g;gO2r;rx-2tg*4AQDkjDcYGXBnhi7E@rmXMAtq3Pk92}vmgVILwOr^CU9W`OUlNXknPjv)dU2(OSPkeaC}-$CF)vZ_I# zb`{Awj-((>97Tk;Ac!MEKM352PzeGYZ0MCWF*fv1_^FO$Er7s-2x~x~R)}0OwI1?n zR@-V8a>>+gAT~3#Fw!Wsb>u3jjUr{>U_(>jo0>HNf(Ft=CX#_EPz0XJ! zu*;k&7|V&blM; z1-jA zMnYRfv)?=JX@1B3Aqk%WYVh}2Zr@tRUtm{D3* zTv-WA+J&VxL5+C%|rvTQ1dwUB9dQ*COVPOc|$3+7JWwhxltPKqg zf;TyBWH4)ZxP5G_X=JovY^-8pJZE$~1p(@0%k&gj#@R5fotjLWn(6?cu4-2>j%lhj z9a&47Cyg(Zf`X-LR|KV0tRmj$`T5bgmuF{uKz`Ec{VI&Kx z;-DfEDYH5paM01+IE#{jEQ~e?NEU|9@GOcGQs|7W&(a#@gLHrd2R(!SS(Fe`50U~0 z2OYf;?W|RV)4B?n=Rjjt%22alK;b|m0D$*1Ko6lFJtPHzIvljKsAZ6GYFY&EGkXNB3)SdQ`*-dZurg00qtV-hgdd%62vcRGXJFng zVk!3^MxBX;^|0BM`$qS=jebMmx#|zq8^0G1qq>t%d#V{@s$5ouz*6>Lt z5z*Q%?CZBE!D^P4vj^V}%`EKN8^7sT96B7eZpE_<(Ea76f=R84iVAqAU|AOybRn># zzrUY`RoW5|tm6V!VMhBG-?6fi!gW1aKq<~#9^A*_1cR(dGr(s%$r0SdL!AY~eMQp) zk+5*PI7ECmpC%z8e)zEDVJX-ibL7mK(^Ml_+rZ$uk+J-pJ4R0&uYlv&(+iIPIM6FJ z1RoX_^89%~OiWlz3?VwzJvkenlarB?lU70wB$4u~t8=TW6Tux-UtiSFkXheYSk(%q za#d3cxurF)wmk!!%kAxDU7h64&O)kxxvHnPxTiP2ukQs+dHed1m7@Os(mv$7qz_5Y z@9U2n9BdfqC((@RA!Jn;!TjhLX>=@Scrp+CSm4AOA0GteJU&r6Ihi{-2^KYcr%%Bs zFqJVimH7+*(=%D1pJ!&$XJ)ghj;<^i1zygi&d*iP&y!{sNYe}DRJ{%O2QM}(%-yW`d3i??sP-o5L6_payt`<{;?yRPmtO`&k zC&tkHEJ_CihMTsu(=j(!>p{>6IOL?ed4Hv5WGny>a$;`6S#W>=Sx}ynicchk?oV02 z%KRydI-(&d^s9xbr$beozp|)JFuy|WyTYg5Rz>H)%p=I_&)^xj&w%f+fqJ&!(PK8! zp`kZSe1$~4Rou56vGC^WM*e%%>puv zmTl?$hwXKQG#LF(iWzNL(pF;*SJ2R~tZ#Euk5e|0m{wO2a^V%S*Y{%=R@aV|GZx*t zk$b8pYzJ_4U2FMzIzr-RqQX{^z_n#aUWh&yl1EZA-VP@s!#77hs|aX znCo`$;?qaxu{M{S>~$cV3&L|DDmU2q90cb2x;+T-)F--WLwIhauTeZf2f}j`10AA6 zj3F==qH^OR9>C@_i2BMWxnKZQi=TA#GEz5Vd1fuqA!N0;k(4@0~!tV=&|3or``xEUJa z7!Ya}9OaY{ZyuB4n4W=8&cWwoI~U}Kl@vNwmbhh;{VFJaWp!ayEfFtII zdb9hwBiaX2z`Ph5OKh1)9UqB-7+)AVsI&4ZumGlB7Yw{B`}*zE)oWKE#`p14yQl7! z_+Y!p?0|&QkfPQc2==vkYzxu76%AF@ZA}n=X6NV#LA|tyUI^!fSYC+VrG@R%Vs>e9 zx)7lPv1kyI3lS<1gG(M5>>izf{cjMbGW7l}gxEqb3WV6wLd_t=7J_IYOg1sA6vAO! zhd#8Aed?P0)-&^SaDLg^`e_Kax5q)}Kn0(8k+{%{Np_ZY5EomeQCO~BQgNj+!Y-@e zes0{e;^&^>(QQ{=JPmXROxpCLFbG5+z4SCot~ zd-V~EF;bJa{uPB{Y&Qw-p;>Nnz_MDuiAV3U-43N3L4Q#pGZ&kM54)A=&h6Mt;H}{& zyPsj_6YJCC7%nwqpHeE)f}r8 zb?)euMDaaR%YNPTXN8-k z#ZO`VH}B!p$l*PY=S|tLpMJth%{|YQ>@Be`e%4LYN{OrC5hsaZ-En$$ak9d2SHAXD z4&gCwx-O?IEPab7E`igYyiW|U)7H9dr*%;qu9+!>)mMpgNAzLwQyj)5sI^sKe%=%-ycVNne1v&!sjFP8=)|+wNI>*k(PYPieQs)gZ zNnqLOY+5is^PKlleY+4NmpRG*h^=-U!Q%D2u`jF3dmrhB#j|w6yJqH{xvIYR8~a{a znrMtt-lOMzV8fNk(+Z4n=VP?Vl6k~PD_J7 zolfX{VonX4kDB-iGxufzoy!t@OB(ydoCvDI1#*7wf?|AJ8ls=%a1A?@mQs{FIeAst zmA$KZyb_DUmfSJVP7&4DIyHoZ?;-ZJb)aLfI63c1)>1yfkZg{j>?!D-IuQd0j{9aKvwI$ZmC#y?|bemCkPjGDO;&0q7%e#wpZ*YL2&rZ*!rEvC; zJRJ)TvqOtmMQ@w8YZRuo+-Q-?oUc*2SrABcm)K_gxn*N|G;M%H0XJ+wosJ&nOO^yL*%F4Br+*ZdLK`*={?;%;N=jD=a^76UxHV+i;J% z$GQ#4@PsB#sC0?5 z>>Rup@A0COh{U&7MRnfHg2jKle*A{zL&i}-kFITxH&icY$i8V@6J`HCXN}-v`9DMr zY8XE9MmxXtuxzj0-txx#`q9SaM3i#|Oz?H42D2#iyhTREsV^?|KRqWQ6_$t9M0mZNR$~*_eDVt>4 zUDuXH)0>(&z0Nat-d<1Uyd9#vP;9 z&FXy;bk0ebjd~7@`*;PMn_gnJnQ^&llws)~s#Ao8wO#kb zMRPmaP}p88F>lf`WRM|Jwke6b@|P()lRd67hHqf7DpRF9l@`VP$=r!oPmsZW4$ZeA zyY#3yn$eW#$k_(_w8RZKtjuG#c%zs$*Bh+am!!5mfXn3sQEAQTBz^u3Xodj|(w1o= zYF$XLv-Ecd=9|*0Tj<~7c!^k!J#oTs(ol24pRpfD|1Kg;NJ4t{LaYwQm5si;$zP16nw(xACJj& zZeZrKSLXg9G$O#fw#`K*FFJQ9LT!f(URCo$3}3v-F{#FOuboOU!QX~r6=ruerJpz+ zWf5@Vz#qF97-&ubYTTJ9m=^nBpBVDGIGO_wTz52cVs>^G=J_;p0%j0kQJg(mGjBHpNu0z~n4#$9wW4gW~&_!P3aHx>ISbpWkymk zndT>BpXd|ZusIGF3!mIbcQPb+yZZV1RJz=V^u^`*-L3JsQ{`=)6>3xEXB8LeOA35a z5n8uQxERAn%NFA>V9IMXnYmDk>&RVER7-=kDXp9+sQ8CjRHs3}W>dl_+iGJBlS?J4| z93U+Y#J(I!`PAF+$7ubhsqA<2O@GV|e|$Ol<@Mb1A1`6TB_}7VtfFXYdfUkf8}{5M zFE^=*Qc_!2*4$khVUx}+WPqU~l+I2M$n5EOR`4}02a zrb3=ZB3KJKIs~v5vS7ddsn9z0l1vjqpHg}p~fUB^+_abdM|cM zfPL>^LcqTF+~?`--gzwnIk4%Sw%xst)G<`s2^Pgz*Wmcz=+fNlFEf8EFa7}2!g`L! z!iCOz)6OMdTk*-d0J}q%KEF4ZaFIP%(X*rT)|$Zs*WVl)7wm3)QEr;Uyj3epUl~V_ z)5_a?lZoEb`2$IPZO;u>AAGggSBvT0=ZnljmE6-9Ppjh|?!HiPQ^Q29Oy#jco`{JM zg~>og56h+O7}chmQe+!8%`TjDE)BOs54Fyri{VHkJ^J7{zsuGe13&7Ol=%e2Ir^qI zTLkr#U8_)Wko(xQ8)H9kV*F*Dg|gcQRi`$Q=$PY*QWA{Q{K}dRTh=6hBV!pvFYJH1 z{4Rad;pf+zlo!+78V|+ga?zdhd6A!rB6HD;MM=$C+v6*zn7$r~V66^0FnyNdvAlh| zg6x;~)3O`%UR0ES`-6V0$$Hu3N7J{@?_Ww`uT(C7XB2lG!M3lp8M*4*9Iqt6q7$!= zWB-{jtjPQG;00%v&#?k0dDlo+j3tz-O1XeY5KXreXwc1=Y)vQ#n0Yl{jPNQBBy z5;0DS6KdW4_jT6^I_Vngi#xK&_8X|M?ao70UrapL$-XxNTiv`ftXb#ERcmc$6(%S8 z?CMj3OZ;d?eK7kNNa8Nqd$XM$dWrct-#i&Fx^^J+!k40PEW>(pR5jlYW`U#hRl>{S zwf@0+GUxWyFdLjnOyH#m$i0xvZL(sU%8uYyVphgu9C>?1jh*HmTvhx=KfdPChS!rX zxN4OOl>}<$VtopXH>pS3&isFTy?Hd$|NH+x`wTM}5<`};6Q_moBG4G(FPeswtJGd)h1eEeulfPc8jYjT4D@{nkxAQdw1t6|4=fq9 z)`(glS`+lXQag5@`6>xV?`~ZO6GV>S+hsE-_KO(h1p!zrLeMeNo+h*|`2+rGR_i0V zOKn(XU&GYx4_k`i#yx^{7KSf0ryq;IGX>AA+!UN-BSXWi3b(-(Ig1F{15uLQ>%4rI z5W7{gj|>>RjADryoH^hF-!}1!8gCN5^A<^2lWNL`SgEVv#AI}qtP~GMu#t+%Pb>$v z4eQ)VF+5|awtwpudjIxUh#q|#MK5V`^tyOAMzo}tf+TeKun~npAa^=A>`>qtN*H~m z(;ka&SmleEoLM+$u+Fiiu!nfWt*FJ0(H9D|^(ja2YNu(Jy*%W2R3*ehOJ3IUM_?$X*Dkvxj>|KD9F<>+s%w=a}WMpS&gQbhSygXpg zfiZ2+r&m{3gH5ga`g*Xe)zZ=ef^3kIffO6$W8lP0Utb^C)B?r#-(@Xez5`ni^!32m z12H$)*8-bbz>5bnXlr&nSlC!w$6XurUbE)^d)#|%cMCZ6V3u@kcWZ5npeaW*n{$y>!iF+}p9WcmaqiC2Z2i(~_0rt!FEe+)zPStP{$Fo+f4${> zpRSvjXahBUdRp)wE3yUD^!ax!^Rtcb=NkTG`g0)Jzx^I;v&>h2n6LXVclYBw7%jJ>(e5MkV$kab$V%#;}{ zo2Gp@527W-PLx(TRIL-*EZygN%g%*I@#ri`xVotTr&0K&;&Fj#5cPPo!G~O(Z6|_~ ze;CXPq;xNhArk6PQUyBW^^YySSU=O!Kdf+mQcA;K)#Y6I)j^h>bLDOdSwB~`+)>`) zNG`Ft%O-x^ULWCA59ipVT=N>z^Frsj{*q(4{1*XFPr7bB*L!tI%39C8hT4(D-e9vp z;Q0%@9~JD+tG_eR82o-(&Ab>=ONOVd4$n#TrAyAtu64jL(2+;0vg5VzvD zcwdYA{z>S(Cyp#oiA^O62X7uronp`tO8$%Z+TXE%|NLtLP9XobPW=KwVW^@~2r3t* zJhJ#Y3b!>5&Oj0X)XVoabbuQ%ZkD1lMmz|7V-?Zzoc>k+qIius@W5d)Pcl<%)Y6chl7 zs;#XBH)huask^%yY>)Q$_k(QV$&)8ww*-jO(9qC-YZ4fq`&X9M_Q-%T0S|I5e^?VI zkV1e?;@@4Ae;WR+|2m=%+tk> zvkiB=?$(tyG(|Kw20m!?zI*@L{r04Get27ZNJm#x@5AtikBgrUSB;Lg4L@rg8?6`} z8yp?$8y@TVlL@|j{0e0Gue&FwUc8zbegksAw{Pa=rsw8_U~zN$?bM?u0&rc|KLi|( zzV~YWV|;Y1%Kv<9-MaOEUdmxbM;Xr zz=Qw?0SN*K1pEik4^STfKEQea^8n!ixC2}VkPgrs06D;L0N(()0cZof22c%98UQrF zW&q0okpUP390m{!&=&wNz+3>g0BHfp0(=F~3Q!dQD!@_zqX0nxcmmu6kO|Nd042ak z0FM9}0Vo1I1W*W25C9;+J^*_F@c`HXoC6RC&!NJU;(TG zFa;0_fD^za07(Fi01yET0`LQn2Y?R18vr!`WdOhcYyq$W5Cwn$9QmMuBg3QY2|G>S_~%Wjlc6z{3Jb-S8ZQ+vniZhb>z zQ}aEG`wv?AZS5WAUBD}S*!PJ1c;JcP&sy%T(Pv}N$9IFx+}Fa%sn{Jm&8GF|-@RY> zu%NY7ONaDv>tElOSAMK$s!J;9`i~I&Q!~xo40kBd_yKXnEc_7-bs_|o7%ZV?k&mJB z;fxNWZo4=lnGRd$>t+~qyYx{O$)|pqBZTx}zeX%j+V0$Va$OS!`>?{Wgo}zAoPv0H zcRkrpDSkjWXHn@asY~*w5)0={9SqwO6t(NMp5OUw5wge=zJK0u+}@S1_@3#9!K&~F zthB%DtTXWBXYW-LAci9^JWfAdw8t)U^O5luEgeg$nr=md-m@=9 z-@o3i$>MENHdtGW7WuEKfnCsR5JiZ_|173~tu!z)0M^i~t*wEmfIE3WQ7&J;4CV#E znd*NbW{p~aJOEw+!T?kONCFs}2a*8v;9pn)qypahKm-1JC2eg+$koN==1~jaGQ>n( zD5V`uV6lL?@F0v@NoQ7Fi~+Vn9W$-vQX=pas&l#g%;esTG+t3rdwxNCQ2_`!fOjy+ zz20>5w%|tPNb!w-{DS(L@q0XBTO&w5rXRL~S<%$< z{^=J@Z(cUfKfn9#)q{_(8rOn~&%)l%lP%w-I=;Ug_)FNmCS!k?V7BS6=~h4hAi!{Q zb3Jn=ki}xArvr9O&CN}&swxCJS6f@t&`|XMkh;EyH9+kIgY_fB?Q5F%^l2-QJ>U_5 z0jK|n-yh{0`y+n66B9jPy6Mkw#CXj=Linoj)vNkfuWEsn@cMP%A6=ZRek-hfJq?_N z{y(!!Q#}Aj-p=&Co#}b|wtjZzJ{Us;Xfiib{q8Mrd3p11c=KkUg}=7xYHgHKtV#B;N$a z!9aTblQiD5$|gWRh9V(|fIsvjDf*s$b67J5t7ex^I5)C6A={{JymX(;mV`P}i~gsN ziuRBWx09PxI?)eQPK5BwrMi^vUvTbS;678&e8@glVp796bImNQ|MTCyW&PKa{HJo0 z*GZlAxMyfKZ|Z&!&Spfe4(-C)q)gOaGN@aD%-*sk1%Kilm9~!Ul2q6XQOGX*sIb-V zb4ejP?ABrNgB`+572~Xwc+aaV#{MZg_v@jMgBL4tnziKNZ(GC4$B znqR8&o&wMNtMUgPn4Wi>XvWN>6ipCkyp$rk1aw1Fp6jueQutNYIPU^1-F68adR7Gf7bEYn9gQrU-XnAW+ zCmD^}PJ(+O<e=g*q_s9gi0T=S-8R_nvk&d-CQweW2JY=RhPcG;(FRtulh!p%DIx12j)m(Ebeo!e!-<3ZN=$}X>po) z`4a6I6*lIe=tc(NGg<>g(<&nU$HqEASUmQ;czhxki0-QwC9i}PYpJmiOpgj{Ca2n`r~mP9r{_CC zyEpUh?uWT%(AK?O-~+Lo`t&DFUQ3YE3S+V>64r9$nx5+*O745sR@2|OmLvBL3=faJ z`CmHve>tveY3!Qg`mfjee;chpIRCX+fnHXgW35T%zeX#N%r&uWNz4Ocxn{8rq}2nB z3=j#iqW#fG>_$(}A@aTPq4P}Jnj)*j=Ex&2+#J<1V!8s%)f~+>b!sIdkT|jHqR10fX`BVO|pcgQ>y#Dvie}EnAEFS9%XU z_42FZMwqvInnjE)JIncfxGr*LuC}7s>&fAkt(3&Q*JAcLS9(0~sFAlHRMR`$a^h*^ z+h?OxQbKm2{PyE}MfEoIKbX!ubEN6ynXZTA@Q>ZRu&;{`qSTXZm96QvALt{~f|{Fw z*_5f0^4?VQ=#BG><{AgCoAs5`@k74$GnYP&#t(;8=S`fR9JmW+p7y`Gzx_fpM^ z{5;M0GZJ6M=50%T%|lLkU&YCl8L)F7CrC%L(ApfOEgUgxs+( zMvt)*Zoh+6e)3DjPHO&$v%RdPdb)@dgM0<6nM`B8HgL1`j>g+@7~P_udui>vy?FYT zX#H|hs;tJXC8){kBx?7*jBFTN=`uwMi@&@qjEjs}KV-AHRJ!n?X6~NP59JfT7WQbA zj+{Fv@81uNRiFtRae1_6k+cmaLWqsLvAY#+%aMM+czvbJx>-`AfElM;Y!o-dRo~S) zRLrS#@-I=pZ-7whr^*EK6=U*MCHLLGDhkytEvtN2dDDV}y~(TZ>w8y$g3!=K zx67K_Zp%3F-dFQc8>*0Un3D^odSWPNji%?_cUs`Xk^nw!8#*9Eo_VSEpg&^CQJ$_(g=M5$ANj z+^L(v1E!xAf}fCAbwUI?4)AIGJrcLR4%u%@X7p3uEBu!Ms04|Gl*70E&uu2q1cIp> zFdYlpW3YY#@D^BbASnYT8<1;lB5|+2w!`+VmB;oqcpd=(S=H$?AR}v}9lamnQyX=@ ziFFnng9a%WxB=agl@6{y_ZM)LAF7sbYm9t)SFgXetiQ$MNmK62y8O=e2V)&aUbGet_A+OBjKS&WcaJUC zjy}&kjb0eBe>0K&?OEfu3GZ3q;E!qdg*T3*ah4{)_kEpfhj!eevw#z~qarnYp_kzC3yN;mOL+mw&A+{`@7UvP)sdG1L8i z`ww~UaXsyH#Ml2c-8DFodO4pQ!&|!?M^5iJ#i=yOdhC|fWOQxV{dxy8znWIe-&^*K zT~ZfW+2wQdnM?JH8|)%^2yqu`*kYvX)E!_bBM6Iu73q_hgdI^S0g%(T@^bliX4 z*Ygq_ab|61g9({DnJcVaG0|4hDHa9U+bcnccEvR{lTuXZaQBW`Er`z=o!YX_7Bn5X zTYbEy%k93vp(E$~b&#WV2RsDvSxa#J<1>A?V%tG>R>!I3r#u{E%rs{A-n;$)1ZS<4 zeUllV-(34XUjO#posS<{7RUM~L2$M(@%gHJ_?1nUN+n}TF>#r?iGEI=6>4#}He}z> zXXforsNYm@Yuoi3c5HCdy3XNhhIh<$&(xN^H*R=ct8ptDw7CtUv2Ne0LC*%>`SLNJ z?(x8T|K?(X%MYqED~8y;PZIfkR~}3zJnAdE^R%dUqI_hwdQVi95)BdWHUhN&s)N|e<&@uIv&%_eod zBw^V$$P0$hz$)Rh(}{K*5?VFFJ^e&~jPACBzcdYIA79_isz>Z_(i|+dz9MrZ;cCTD z8RfcNsGV`((?pS5i-UckH(j+wS`$8uI}@MR_%}T;eYEw~L_O_wU-G{2+b`=y#N8?$ zx!#6dz3}PMHJBUedHY2PHJM*$souL&#IOaQ$LwHt(zX3wRW%vTJ}IzdDd{#F%@3Cy zDn5Fv+4%jl(|Iax2W0Un4m+XW zkfH%!R36-KKJ%d)9kY6Dx7EtS@t3JLK3%-_J@Wg9!JcEQmm>aNUOs(!_LlKwaC5{e z{51{oqv0?EHH9WJ2lcawH1XZpo(xpKi>JlIl@n}eCY~~>iJ-bc2;z#67{$9He%_Lz zR2#Yshha`O!w?;;sa5PLkqZ zCytyg@@?{s4KFhpmZsQek=N_wAPF#-^9{P8UHNt^Xsy?#!>|Dbq5b)+tsNC+kK=|2 zX3O@IxZNw|tCeKK6#~^gk`VMvHM~hRt2~S-K0a}3b*@+f=3-KOz+fOMTx)la-Hj*s zdwP7d;mX{hiJQO2x_t~v3|OhRp4Rl)`}A4g)7||zI{rgW0cz6zY;{56wHgt(Oq}7U z3RhzHfYafZt;sJ>ev*Dz9@tfD^yB1_8rDXhPAh-^;F*ZJAA7ICoD~FfGKWsJ5ql*A zWow!Ac{Ka@ozsJw(&$r@(fl5F==|~Ip{Ts|hOGQA(TCq$kYc%zRZfMf?kmrK%=-Ky zsMkw$_Cs;2ySdv#yKwz$Lj#Pc5O()B`B$gT9)((3Ad)66pvXp2jE0r>U|A`aJ{gvm z*{EAG5kOuY?I)gArTs&n{#fYIlO8LfUT%5tD)Wx9gJwI|QGg zq20vZ^#N`sY^*EBJ3{_=oL4MN+Y=f$>7E2q$ghg~C!}?fYI@8_zJ;hS4UgY+N?1rc zcFEWhyjGm6M@CM_{) z!Fz)e&05zfE!C@KYC{b%#&9b?`4~BNYhPZk!)A4zxVSeOX!;BJdcPdeG_6>UKHYM4 zpeLVzYlpO%i|7YRrg$yFl_r;=RS~#CoA2n## z$A2H~jHOwDmh>QDXwT3)3vo3{P9`TlG!dtD+Gtb%g!GPLjgdtsfj#K-^MO)Bd z>)eLe%&{bq2lF$qGa1!Lr$V%q;PJ6$+RekEck(}k;Ixy4oN$jqtk8%lSwiWjrj1QiVnF~^8qYj;Lc{Keeho?5buxELbWFw8CC}OYjvl(-mefNX(1Ds{`Acua4T$jv&PsJiqs}$1@At*Jjgs6=J+eWO1c)(KbXP@+_Xk*~3BWC_t1oG~4CM zh%u^E^rbpEm@z61Nxpgpx*fwH*g@j9`L{t?Jh)UJ2etIlOL_-}PVDPZh>G))z%<_S z$_e&3r3$UGUUpkg6Si(}GKWIH6|K`G<1~yqD*(Y_d07HHYD>oPG zxDc(OWOMwPdlAO}%Al?Nvke+w_2PeG&>CHm66ZX9R@XPrp($BbDQBYt6>nk)+E<|B zZe)~Pog31iDlYZ1j-|p2T9FAgEfGKDqjV@@+W3`Y>X}8D!rknw^>a01k^U^%GpBmA zn3G9?Eilgg`8V46ZK-Z=iWDboQLqSe?4`TYkMBN6hAt}D`Uy=GelL=@%4_*ubhFH< zTk6pr7)&**G*lY*x7p=yC2>hwP5GM}nnYX)xPTcUhFSW0bdn z|Nd@kb995It?4#5zG}aU{KF_MW3aHunqXJ^9dH!@lU8 zmBTYqez4?x()W@}vqHyDguUC#g6|_P=2iL5_4eG3xU@rB^wjIJN9wn~GoJiidRKA< zy7*kMnPhZX{aQ{~zg}cgkMU)*a*Oes#I3@w1v@)8GetYe^piDwoVB;744;aW*U9c5 zW3{AdUQ4>1$rKtFPHWO>j%6sQ6h`i?HK zACEH-kRKC$jJm~mT(LU3XctfXdbikn(uOx=-?s?MFdFQv0Ow9Z7rqt0Xt~Wwpb{X2 zvGCiu$3>ipsFM^#;3^gOsTlVBxCoMp9-)fpEMh`}H_RD&;xchH5M0KL4UZb|kR-9$ z7x{~fZR2cN;rRUk|EWiDyXr;TNysh^?k5G?3=zLamUsri-tLz81_YlkK8}}o#K*Sq z#j5!dqwUx!A?^)P93#LjEaJNO5<@)yJu+rXyugQav9A;f9$6xa?6c4@$kQXu4SM3Ej_p(H^?k7p~$%GIm=xZiym($w`8jiCu!6Y~$i4 zcw%FC>_e_-Em8a_PkeY$T(tz-%#rws7n|hA{3MArQE|;=>|bQ;3PfCXMf5#He2RE- z=W47@2pVAvLF^Qsb><O)F0o;M+_;nag5yFvp1A}77j}fHZV({)~2mV%f+y+6Om_6Vi45sjr+lYv< z5yitca8Iryg&(|bG+1Jz6NTt#!9`T;rMW!MRCGm}ZOS;6ll#0g+^Hw*5FfdViny9? zwhQ9YG>a(A3DymA67RY~%{jPxQz(*y$jQkm7b5uiuAQsTgCm;Y4xAt| z|4QlX+3{#6)A@{|=ONfdBsIY304Ik`L0sxVFnbW&c-mF28FwlU{C(AoIGbZHP?u#I zcX;bwhNASpZd8XAzU@L6gu0EjnQUrvvm#-Pr(hF4Fn2og1O>8*gxD*lZVn4!ct76_PKy} znTHPz;X_5+En>{Ms0#v^FBK&Yg@yCoevn{P>Jd^T^KK#hGZL;s6+u&2DqNKIBKj;3 zIRf5~cxsmhB$$fah{r5#Ge*~5PX8v`@|TF@oko<*dIb%ivatXb_G%d z`9>EF9}#=W5gT5N5pZ#m`!@bwZPa$*;l?0X9*Lec#d$$HJw+G$m@Tm&tZai^>4RV~ z53!H9qKgm-9$(^xKpb-jH;xzY!;38lu=jWp<3i}>L@`_wuGBX56BT=_5wbl18S*`N zFZVie)74pZ!)=gUPYTjdfOMe1f7inehJy`UGb}RpbDss<^JKSnWl%_F%j+_op3#(S z;QmcW=^4as9+J$JwHLzexrlW)4v+;oKYcTf&QlDoGh?gTmM(*Mv#JcQu*|eZ-a=b)BTyI=3dlphHjOg`NSlq8+@>3%t%x!zHej zWp!SV&8sAcD;4D-EJD(euYyr%2po)#dvlSl6qpJHBO<^-C?#Tj@!EJ;mO!m3I9ja! zzFX6N8)yDXJHnXcI@AW26+l%&5VA!05)s}{M(_m^@*%v+YCaWxQRaULTUQ6!QmhSQl`{`h`z*Q<=j+eI&G zNx?tAy_7I@@@n6-xXdW1n!apG+J+aKsd!Q;(OJR(F*RYd=KJ>`Tm}kQ;hLkk$eG3)%?N07TbB&YA6*Dn5;pqd68C zj;tW3u4j8^2B+VFeDkX6yof3KdWty*W%AC@;SAydY) zD)w>@@t-@BH`pA{`dQbsPmpK*t;saD?fJ-+d2C2be1??`W$E656(2=YpN#j{T4K)A zoLBNLKC}})L{x6iwk; zC6<7y*DD+CIezk$uO5||hf&2W9p4@;r3TyR!I@6mEg9;t=lOCMYuTGFA_h!KZHB!ES`{fmTCQnl9F7r<;b-} zO-G4u1L(hbBTmsuKd2va0HLseJImq8(!A>tH+gdvfXxep>hhrUfRP*3Lbgb zG2GHmPR>Ty-0)4sHB)6>(9sUN>=b@pikAZGzTvtcOFv3(ypGZ`i zS}&!SS9#w(KCK*CRm@F+MBccNT05V3R^|2cP~Fm%sMPP@zx-@@(ttlht1`P#(mH>H zD@zd&{Ho`_f6>g5SY~WdpsGyYYisXavKa7s+`HOlz)zEn=rW$Vt`aq1JbqSb^s++A ztM&Cnsz^K9j)V0;;IRmCbvJ>~JX&PEo(`rojstU%^2kv| zh*~De8J~I6TZ5I-h}z-c8?=X;vDrdeGdjq(&o*0sy9eX5rD{LIo`W$b4&UIz(0H7N z$5nr5@!kx1N~KZTP?<`Z}#KUiEW>bJ=ptAa>Ltgi(VZrZ2z=-&mie{doA!Io@NvW1@cbbXh~_v{LiL_p`z_w#25R`3>jZ+)q=+ z=bE;8AO{L}-Z*+BEO=_{*4f!tFMozFPIjekI`-<<`LFX&A6X~pPj$~3NLKxFfBpMn zK6-Ie()D8xej%*wgd3B8Oq^w83E$6?Q5!-Q%`s|MX%?c|b&D1_ty8Im-$gy~n|>Hb z*R&zNCJOi|F+aAH-9V@>((x;ak}AmPskx3M4~26!N*6kNMc0cJ*+SE-qZ0Vcf_1zE zx%J~PsJfgzeXp`uZmlg+>T5;fiXKABPP8d0NTuw>$%BQ<(vazB{RA>OdA*J~Rn&Og z9)i=S@+`S}iBzwoU3qe9$-DC9)UdjHELN#Wu;s?!1S3!Xx;S$&p(S=7hH8EQKI8_) z{m5N%O5E8)gIY6UdQ}s*Rk^8Pb@oWwGKk%T<4^<@Z|T6uJ=dmd6G}CDcI0}Id6J{F zpnb%&ipU+i+)aR6n-53Wjj2i-FO@hR-5)ZlT1!w9N1h_=Nj89X2l+~QA_vJi+3V-f1;OPq zz1Mvr&c|Ly6kWQJlUG$9dySf3qgrs(qu%@U(e%ARGt}Rctm|Q;gSnrys>b}TRovSh zpA$CFb^+?Qtc3p%`omGEcmzk7dm9uPf8+WvRN}}hCe2~Sp7nXYG$@-Q>PFqPHEGu* zyNWh-=SL-t`HG?UMYSX~iS|llQv%^i;pU`rSOPuO)qhz}$+}%6rQYOdgszBG!7`&a zc2~#d9WSP0k&T*TBDNK=aV}wE% zVS0&L3C!iEh#W=Hlj2A`8>^Q_Kh;GR^BudQiGg5(+$$k`JGzX&kg2R%jv?8ypgNN< zlF=d~skRe0OzPTl+njPTfh9IVrb|ULkO*=v<_7!bX3wrLO|i)|o+x$U2{}uO=}^4@DZf@rns6n(n6ge@Te*;j2nr zTr^C2JT>LbVM(sN|^yY#IUROGa0@t*k6xl_G{f$QLn`md1%dh)lLhK=x5aNiB_Sq}~VlB@dUACdH^U3dQXsqR}bK zOb4o$rYg7NdInhxX4)>ettV+7gonwNt01!QdvRnzCVtri5jVnsi1J|2e)D@!LWlZF z_;#6vHi%}gg?z2^76fS$Wua+dH*@msW+4@OGs$yRmc}7!kcsZ1%dx0SOQ{<@>2Rd=NMk%Ne_RNt@v(x&IAGMUJf!Jux)ucF|GFI@>=-G-M*}wC}`^2#9>H9osMH1Z{ zONy%#yZ#oYF%}$ixUN%l3cpGBjaLc@vi`QX0a9jh_!P!1#w5%!$&Hh;;RR35%rg^m zSu<2rl-sjeJ#xokx39{Kj&AD-FPtAFMS*XN+FGB6t?5=%vfLHBb*eDQ?G1B74fPsq z)O@+(H%o5T1W73dPw6D6*F<=No0id* zur^NbON~0-QI+9aZZ-$S-f1?LRe5Zq`)*Y-sr#XY>{p?-$;^`Y;W-PLJ#4mKT^iPn zmb~FLrh8!&nsPL{_}xTA&(6BbDV_?J3UABVXlC2D8@lG5o`hbFEPAYN#9&%-=ELMV8L?aZ4F}S5A2pD1EqsMpma&5UL!*Z4}_#`(E@^Z6`7JE)bou8n4Vsej+-0GpD z$W^;Qb?sMGa^J*6Mn21wWk(pMxx7LAfb1lS3(+CnC4xY^qs>Q;TuFT zri6p(n5%rKb2H=X4ikn63=?+?(F+MDD8%2>P%5Wm`LS-zbnLP==MmCf7!xpubmo)= zG$K7{d70B28GJW_-I=wD^{HqWDjplf*Q~m=5wle zLbN0WVRgQ_e4pW?1Y~G=EdM65st_4b&Zg0FBJi~%I_<{3SrHSN9TT3d^}ItWsF!_bFowd* z4dbw>W3isLijT4Pj|k8~g8U$QjB|NR1PAGE8xxp~J{*TEk4Fd5*p~#T6(e?d1pA~1 zs*rdfgHqLmx`I!+P$C5)YBVJAi-8~*>FpJ9v}4MiZWRRGh6XcNm8rKkLrV2X zOu0Fz0x@^p$wL_s7;6P8C_2c9Z?!`>u~bSA*pYtNGF9hb*yBt^A2}!JmK!E2QsF#=j0s#9%k6W32+S(%OnE2m%=n8L!=;V8O}b*Ubyt4s;6;P`YRKlYN4A+iV&FQ=;zVbo>1Cfekkc zr#4@l;~^LOw$WgQ*({xGSh(h+^C~^ZRN%qxEY&g9gU>TmBh-vZbQ^8DDxYaWfWS1F z*F&2fyrC4l{UuB+|4{!cWbA6BKWe}!c6LGz?vM5-#vmqHe$6oyA-XRI72=ksLO*&m z;z1-Ac|C!BJUdpXh>D2Veaa(tZW`@v8xv`J^CT4w=f-;TVop}Z1e4J&%lnZOrU!4p zSNPI10(=Yes1W5%MIGU?Ar2^YeR^m%>eyIp1P0~CkBRDy4UBjlN})&bP{&A$NC z?_-ej=)TG3%W<*b{d`;y8w`ncvqgE7BQMe(c=$WGYoh&nQ73HCzdd8An%ggp#W=fd zjwIT9GGb4avty<1zdUT86GTww3apH?73oT1w{9zO+bNY$IE1N4YW&^~Wj&8~PUa(M zdi3pwddHZnTID3vixJ)IRt*UJJ4{LWTE(V0?}I_i4Fr9aIjA}r_H*5qL6{TCS1Q)r ze0J)P`pbCj_>x4jg>8>-kK*_Ci%M)KK%8W#JK7a^Ox{O!+IWpH~)w z4vo2eqhN-Gd*^QX2)0kiHSH@2uZf1oaS;?&Vay|a8r^^pePkWN9I{>)1FiV^f=QxF zxv3-E-bEk1UPxyuE;9&^L@oi|US`NUK~ywP4V%+7g%B!_aW@-H9iyu)gQO(}v3NM$ z3x&&$y+MqrhsJOYwz%7(hIik)JjOmvMN+vh8VGD>xw|@JSMxeDj36qj-VcpoWYHt> zcRcms2fkd@?`09)GIXTotVE!O#NE%8!d$KPwFW8pt!bkdHm^2FVET%H2 z66r!=yF+$f;+?td7JJRn^ypa5t33LwVvHAMl4cT{t{USmQ1Dx3M{!&JJ` zFB0--i!smjH+aV(!B0D3ixTN&Q4f8 zi>P-SDm}8&d`rAxO3hr8ZX6z#>vl>q z_>_?>VX1j`Uym~bLNKx?^z!!3zH9hw0h86Kc5P+%r= z+t{cy;)d*`JMJoF&x*lc`O8U0yT8H+8ogtqG3VP>qbElhf4Q_(S=D0Z$IB%N6=^VX z0#&^y_0w|FYHZp8*WgO^8DhGWN}_5nJheLcG4Igf&ZI|NH$sh7QAOGndV214iP~(5 zam_0_HCLse;OSLAl6r~@%Ezufi3mx`Hf>icTb8Qalnysp$=vjQW1%`y@T2s5)?7q- z1|}e$^b<*wuIAyY~0U{=Tt%p=)pY zCDO&+a(W07EyM43j?~|x!#_uQL7yeyu_iF3hB1^)K6Z_MnlyYBG zIF@u?MKYvqwGeyFNvZ5AGwPQg(e6(a4;|F(MkJk%{nqoOGB8??#Hg%a;C)u7Wpk&`K;2o z=(>##1_x$VhPVH*US9P3KsxUasfbOGHDzW?-dB)YaX;e-?lK z^66Ns8U5GavP1?_K7z;;+1yCI^i_YE3xylZ5u+tt2!+uiCwgCNS}nxBj*(?H64|P` z5vmDVE+&1ko15c^7ge@uPA3|Vj|mf{GBL#DZ9hzk;&%QfP$jb+L)Ft0RGQwTqe(03 zR~#(1Yh*ZkoY%;74{TD0p-!zFr%^Z4R_STpx$)#2_pf$VHZx`%F_L-OE&55J^sB< z?RnZ>IfZwhTHxL$(#=GFec56I`8iST0P!oS&^S-;*77;*CKX%s+U};F{i@3^2_F2t zZ&z#2@5H4&GHO4c>{kd^`20|rmG}9fTzvj&P47kt?a%z&=bTPKOB$a?3*fdp3S1W)vx9@7AX0?@VxH`+VrWDL1ssu&}e{{{4Gh;)xC$ z&yMlsCoA@x&im0NaisGiVqH{(VuNo`b#!M)i3(eN>VSbup3&;r^DnF=ItOj_o_k&uC%8u37Z@4!pB_Gp+j)UxWQ&cqa^(pc~LwG z1AcgOy<7=g+DYu6g6soXLZgzR{sYa&qpMXviFHiW5ulYMFY@$K^ zjIQh2R6$BrW=uJ{9OyjE^w^}en=t1jZ>|p>YmbfE8$JN{(@op)yY`4>t$xDo5jDjs zYKN6yNYZhe_bTu4B740El8=p8GNtQK%bJ$7l&@;a8sD6o*gjEb%ky_M1SAkfv!uhz zq{Y~&_pIwtxw<${QIi#(WX&wN5c@1Iag}+J!);Mod}d&16q;_~p0DVlSNsKOsy0R*ou#xO+;Tq5<{ouhNZH z=m|;8>sDbER&c>`ZwY znC&3p?ZS`|ztpU=B?A|eB}sKqW7N&PVCP_9i7pQ4AQk|*h7Xdm7XJ6Q^@QhRIZmNi z<{zLJ0$o9X4VQ!P

>UIY|maf#{?&>fN+kcUW#c+eYxkMJXgHO01Sv;S~wg4$!G4 ziiqOyI`m{YaVM=@8BFGY1vYdmA1cs4f&=Ohmd2SO5X5XNm>bI!h#FzV|95R%Z!{0# z$oE#7qI8&g%_ZKZd++pf2f){G@j!P^#HIpI{QAzyr5&CTJO!?7(A6kepE+?R?z1eE zEdr^-Vg33L`03%6H>YH+O>}Y-Zku|` zjk?4bJ{d@k*i3N!8!jyR@e*CC)s-jdMdkqm@S}RC$1DnB_E3);afxhI>FBbyxJxj& z?L)#e{_fOm;Yo&-c=buxKuy%w+|Slh5G6^37d`^&BfC{1@|gJT7TB zbFAn-r^r(IL!n!q=802HTNSu{?K(NYL{}YenNs|I{nJv(vMy0#R$DwI2PdM61Huf) zfuLGGco%+L)P@6;mZ9^NoCvT3^d5{0EJGKs2(wuc+W|9=+VPot#3-iaP~JLg%xMm4 zze3!}p@8MdpF~Zxi91m=@S}bz^bmgndFocA5@4=aq6F0DYZIcO?I~dsFo)0Nu<8%F z1C7Q(NIhhff(Bj8B)ryI`7cYYx*cY7xC_Gugp{mI!7Nac5?ORW!ogaOhDRK^pbU`o z7kh3mrlr4VP()MbPZUZ3?6*3rA&A@50NUUWbPU{Weff*aos;{GLOawd_W{0nc}$QK zDF6`3-5$NW4(StqEvcMVZFCsn5C*u``-NlU)WDF*p+dC!HUYLuEiyGYNP)!Pj|WrW z6TyHiMWiawBBpUBm2HGAryW55;Q?!Ckt*0ZfQLz0-o#dItqd3H9Ul4W7CYM1MGcX9 z@XX%;g8xbnadFf$7rH;RLn;xdf}u;yf`O3?gz(Y+$EP_872;LyLGk_Of+aqh~E!EMQE<~YnBU8u--foq& zVFDLNL5Vz6p@5*AK58Dy1TAv4+zEtOuHvGzA)T&iLj)B9;q);g7XY(iYDUsEbjT8s zT=`nOTx9Z%w?HV93dlJny~+EL-utp}6rf9&;o?;cqR-=iNVpQw<@KjII%Ab>Z<9$@ z1VT90ARj#3g<@Mwt+>BzzKD-CIMihapoRO>j6A#H@UUM6==4V z=>c&S>tg^*xr*fgP&i)R{5}E0&~&o@xb6HEg}-`*DNU7>9VbYzdDuiEEy&eS`|W%o zKPw9g(kAHuNEV@B^XgVzI!jNswbm@dkjBF4;w?7is>X?&?_gtX(jF{$*Q%h^GMuD8 z-hvwj8~K1u7D0yEECX$TMJdyG7;M!BGBR&9UME>EGEGgvW?jU6_N|86BtsjPv3qOD z8Ef;l(*{)5B`(NfossbAv_2cGvvt~gkyQSN1zGbh{z^2WlXhcTiAHWFsjVftV4c!I z&^p)z58fL|G>8P7=d>OuXX#)_Rz@U~O`_o`|uX<^o!&;f*YktGD4u(OYQ0?4p7(vnVBZa?Yn z04Ji;iQsJsM3FtN{s24&Odpa1GA-Jrop#M(7}DAggFwi3RR|g* z`+UU@lQDiU1hzs*1B-%re zKjLL#IZk+nrhAL{aI!o;aYqT^Z)Cr$B0~)ekTxfxTw0VH@w+$xKbJAAHXTg?%bJ7k zNzrBX@W@E~_rjgoZGfGXTovxzja51TgNM9k?8xM*tUXpf0KFaZM$D{(ekjQv#&dAx zG3^*TSNNcChPoadji+l@M?tB0&?ZYH6d*;VYn{d)=*B~Gz?Qaz-5tI=puOi> z4@81MQ*AnbUD&AtE^KvPY_)ZtqxGNF42eX%d?8T8@{BxLatq=NZzL>b0@rHk0tDxx zk9tM0x6W3J{&ym70Bj0r#jPtC@>>p+#)#Icm-C670g{mq$;h2#XxfSyZ#8sk-OXk0 z7?C$!VHvhP6@Dhub*7;y$$(EZHDcue9IfbJ-E9ew4@q~OWhC2b!D)HJcD1=XVcZ6` z;1Vr4g=N1;iEmjti=?+)jlwgnMma6J8(YoX!By{D>~A@%{#vxcu#9OZtkdOnw}K7^ zw4O{;GvN~r#z9X;K<@@yI0M8d`lJJGEw4<$2h&?D-COshlXMk_EGpcNEwO~_6j$Wy znF_!oPOnEd-+Q$@pdQHBp_7imYMn@53Oagt$R{#@7@%xsKL*z-TT2Iq+K7ecQFZYW zwRqqn15}Ea@*(UpBET?orF9-gk&duo%J?uqQx)=XBCwj9eY9WR7AO%k8kA+Pa;y#I zLon2$BV`Rh)p+F<7FZmlf@i4EApu`yB<+E+p^|bKt^%%AvV@Rc#M=O<%1PhTtOmfR z9xr0vV%!N*kzByUSIgeZ~|M1%p6mU^opp4oC(2->HFxUPyQqmkR;zCES zkRTL*@C1nB#fh*Wh0?KS=<_*G4Kn2S4v&-U(Fa{f#t^VIFiWW%4+|a@qXWg)KAyu< zOcFNN8-Z|}0#!Eflnc^{1sg(+ zS%tFp2atxAz@}u9&KmexCTo8V=m132s-#7qvWVM~uwt_g#-V@YD?0`kxcupm~e^q24FKfc=uL|RU6Ydpj9W_R^Oeq-+V$3;KS8r87qbvtP`o7 zAVb_Squdr_Od+U{WV*d(#1@ct^GTpgl2O1XjilDyKCMPmcgQQG!}cVcHr~RPRW`yh zQ+#2WP9oNTjmJTzIxN$OU}GF@_!Bx6djg;S6XCLKlj;yk<(_QvnD9mA_f`KsDper0F z?`M;Llp)A*!?~?oNwT}l0)U8p8u`@^twEQ>?)}wMg34FLt*Fbt1P3&Q$ixi8dv&2|DycF{kXMV}97 zlfgGwhYAuaJ3bQ09$BufJEwt|i@gx%234>Bws14lVObi1qY;IcbhyeI z*wTPhxi-;X*4h6-r^n=T^4C_&wQNm;)}~M9ohSQ$p(?3?5+xfP@ z*PYvTm~Dz$(+>W&B|wG0pmSxdbWrlW$<}u(obc_LR@j@5>&#!Bcv0%AX4Mv9&Dn1H z&g%Cbnl^0ZeHmXXjKsr)j_1%Z?Y%DU)6U^4-Ew|xXyQ1|c^;bVbpb-)6 z4c>xeuak3!Z?6(ilpdPK z(Co*Hpgk;ehz7i#2c$Te{iip%_3i}$%2$44&N)4XJYCyTC2JG++GGY8oog4s(2P?# z*uW3v@$82u-da|J-p4qn!`N%%6^DY|BB7O*MzD>=V+q&AcFt(0(PryzGJe1h{46DA zU%Ptrj6zz4=j;0(r+*b=4g3cRj_lgr@Kyg%{6wVk!AiZ6)3~O?J!1+NA3WV~<-9)N zJ>cS89peroRPoxS_q{3?va1!ZhprAic7AzF=|WO>0%Gs?*L|$PF@{nR`8`{oXsvYAH3X$G%#vLbRbk?1Xw()c4cgP_^$O6JnB{Pjf zBxK;CHF}rWpw!WL_cS5V5rOW}F3L&k+4HOs-K+Cr>Jsl5+Q^_qjD(RQAuevyZ1pbM zp0Ja4O-!?s_06fUhA!ynckaBpcD!9h!6=ff8fPTM$E4WmcN;%%JTYKhVO~f%CV48*OHUkrK$?#FUz zWEWdG>7(b2G*XWkUo+{>kji_TntH7NWs=MvclKL+j7~^u31Yf->Y((e@6IyEm8;wf z)VmAs7zHjB@>9RL(|i(Bn!=~rjD9sD0Ri>$~8>|YLG|SOG0Rp zW#%2b^#=;6_X3;hmi#;$>)xN*^&{)JXhui)Yx$ud2=d`bQDaiZH;Ut-K|;u)blO-A z4t)Um;*O7lv1??qjbbSo*(>Sioh&7N-9DdA}crGJrW`*)`n9MWZ6eAVj8Yy5tl9GaWyXLBX2@D4Ti{(bMu6vxWu z7jedll8E{Qhz3$$6n|0;nF*L^r$A$J<=EbP7al%W1d3%=d@{wIhsdujJue{4!|CX> z5UsE>d(&iR_H1&+0n?ZF^l7*E-nb{K1QeBg^6^S26*9L-GnXra`>FW2u*Uh(M+zO> z`duL!^BfJkZHJSK-Qzj(!!O0ow$NpsNGY^XW6W&Tq_1YSDo)_zaOwLb8^9te8e3S? zNKa&l?1b_XHO9Q~yd;Mnso2Gj9y_jvya;Gl!~x?iXfenL!Fb!Q4O|SQFE8d=Ecm(h z4zojBy^#rk_e{u0i%dK^J%5q>YmY{cU*1N#YJF~QuyM1}ab{>nB1f?=95AX2LWY!R zs2h16Io+L?Hk9A0tP@gx#f*sbEI+GYBvyCGG#?Q%-l}kJSD#7gUa!#dMPOC8C`AK= z;ne!5)^Ej`DFWPSB^p}0D>`zH4OeO6mX0fF#JxDx!pNIbAO2;bibD*O!!!aoPJ@MU7{5J zpOK2S^??U9gGD}+m80IjN1ktNIuApfPaZt5FTXw>`D>UB^?HXb-yXUim$31!gcu$*|bgo)7D_&INx)TT!TJQW>B3s6#tt2=vbSUt@9zWMuN4d z`7Wbkkr**zOJHUuS%WGnHpE+VqkqV%z{VWBdx(#sY0GL`n(8mhBwFLv=03_|#5TN6 zAXOCQw1=Z%4vBF0KX*7<8XvZ!Alfdf`UWj17WWEhna3qkj4FnO1nTk=GSugICn4 z&+Guy-31;`M!>d!-ky1dwxcwKb0hxc~Xv7jUb9;EV) zz;}7X@-YdqmR>HAx~I6QhNg%)tTXa9q9NLlX|d+N^$*5s!j#+UIaxD|velf{`(v`5 zYgq$QDWQ?ddY&;Ci21|Ap#g9DEP`vBgUd!gFKFmBiykqmOc^4XYW&b$A*xYjIQ?bxmZTTdOj*p1CkoXcerYbOPR{@!O)vIL`?dW#om*)X!E`HEQ7oP)1% zWpnh-Jde{3^Y;b5k@WYJxJtw)?it(iP{~Jx0t=Ty%$@Z<$4$O-e)2Q}>WZ zh52m&M6`Vj$1uKbJ46W{MIYLHkDlSY;&y$!q;&>QmgbyCH%FCm68cOF&+!w{!|<^g z>=ih5+&#K1zpP(zu`@sySQ3aa&^@v~i+~`c_XMV5fzKwm$bjBA^z3fhHG?_7o$1bR{)-2n=01|Jf83k?V&TTWfziqmzs0nc;b+ z?nmpEs0i8JDT;F`emy8$9{3wx>H`<>8v(E1<+aFx%|8W?;Zx4-@g3ZK-w4$ifGno_ zP4(E-uVbh8lp->Zj0ztq>Vs7+;z3oqtF`JWm*CG2(A?BK-Sy&1WIQEH`MI`?n)6b85$Wr;!!oL_oW~JsPXlBaKIHB% zf}q2V=NA1wL?62K{Lp4p2LEvQw!t~_s^256$17AXoS5~x|5dF=Qe@GJYR!w=k{(Nb z8S;73>&HA#L-nr}#!{hR1-S3v8+(JfpUv$adeL0^kuy_Nw+VpFElJqdeRZLJ83z*W zI=YZyM?dw$5U7n2t-RszL)j}S%O6suN{~R#)7@@Tl0UfDO$m~rPhuk05SBp9U_jS~ z&u5%nw=EwLz9{X)M--H%+uX4n#7cyT|CC*W`bSF~S(YN(+@<>oRhVXwS$vOvj{!LT5ZAb zhRuqysr} zoT@n_&%1%eNZ}07$wh%_elY(Z?#v%<Sa#mflBWB_ZR{J1 zUdLU4Fv$U{E-})5qNaZ?%?3kn{@$0=7RPVfEiLYs6mDoHc-w`l#dR%WcdTNYr%-;# z=ZA!x(BS>t*gmSp`Y;`gcUJ*q>FqGV=`-)Xjufwq+192~@jM|Sucy`*}H23YYl zzCAkJ11H{;@d;iHSOmQA>j+aBZtT+zryovoS$@U+ltYIiwVwo}U1t^FW%+3^phUr?om-p81*HJSzHP!9L`Zr zJoDh?pc;WM%e(d#c6A>V!wmGHM$-&ETc+?i6ZBCRJK@~*=nvf?$m-C54iCqeb4Q@P z%|$o3Q8xiaSKo6`5qF(uIk#^tsVqoK_)`j2ySX%D34K*T>;jUxOL~QxnzmHozQ-jkAb1;T|M3k?#3ar` zRJy)1%rPvL&k1Atmo0Kz9k&p$d)Y2YOVz0GlO4z7cE!c*%{;9;8g%de=I$HU6D#4) zXUs7X^}Cp(qQ2p>f3+S3)~`v2j@|guyECTtMt`7i!B^tecVJf&#;!_RMTsxBCgaiBNY|)nxvcwgnQ^~r1+tLrysY%Xx_h}<_pZogHOSqUC<+pg zqw2GSqqa}bt1^q;{t7D0d1aOr^~)!wF88Y0eNxn6p=a7@_VCj$$I`6Bdce@5-S_l8 zLq)i74Tj@l)`O3A6sk$CK;w99UGBrW?4NZHUS{3btk2K=m9KK(T2EHNj{1{JzwYg< zzo#;hZ*eN6^xFL$^+m4oh2OGr?wIA;$rn7UD>RuX`g!e<{zS2zd`YKV$?^Kk)w)NA z>a)Mf1w?8w+svGlbrs*a7Q4!4&6zkQiw@b#XYE%#{P=f?e|=#}_LH60v#-e)%E?ZPF5=2zpdw1O zbbX~eumBJT-a*eWYN**gS&w&ndG-Fw8&J@Q5cFSXX+ zuLW*bfK`x=5vhBAu(HASr9K~-snBp@6}{ypj-od9-fw)PVAAK-^k%YAlGAY(*1X`> zyxbs-No)S1@amh}tDpB@{WJMWpz!LM6jyXRYVAI^o6D8V;m#f80Ttnj?!xX2j5{6x z!9t(}gnZ+x{SmLsB6wDcZ6x=$!#QoorrHD!itQ)d+nsaT-KN?-%-g%MhQhKsaRKKy zr4Cg$4x7?Ok@jIoTC_%WFQ%q4Nh@d@7w)Ah?2d#|0q)esy(|qq_0FiA&gY7~Rqnkn zb9x)5dS98VZsn{01sN)mx_OGPZ#L@E6}3yZaeaygp4IY@ts|ZNQ>M9QNn+?WutZ_wJ$yZTT}sTeJLP=Aea|3A1I$>d%k_ zUK5`?Ot|^xn9|6RKf@<-N8F}IJd{Sg&y4!#4*z0~Uc5PcaT<`XICkyN=*=^uH>XF> zSd3Xr1J>N(Fudj|i_sXR(PH{rLCBej;@pX+(-Y5?CeJ916K+mcS&TMJ59M*j5}HP& z@Ke1?)2_LVjNGY7i|Oez(?|YHodk)G|CzS>0|-}|`T1w2?##P?a^Ib>cqh_4ECDcy z^u|P!=5{`qQ<#}kQJz;nJHP9}{N9=QeaZ`lmZnAz7WP}tc>>@_jvTUi;n>WggYx?m zXWu(3&ofx>)n~+H{sJBsZO7lvR z^6I^r)fmf_hi5-rwES>cc{Qd0rjxH0)*}8R0w{k*UFXbN>w~pd&1;=AYeUMP#{RBN zp8Yia;M2RapBEl{o}2l+{P*)mKCy~m&BcYi;s2<8NTzgr1b9|{ET1b^NM5K5c=w}1T4!}Io=XF|S5*=P&!Q<@Hd zGInF|eYaJN@ZkS_2>$!*|Mw>-!B4{fbJ_oWvHurcKOX%5`gRD01qdp95UXBqsg43b z%Q&zwVxN@C*Z+GC*8c~WD(Cg)fBq(g=bnOL1RmbO1%%}TK%oD_E?fZK1?&XK{};RP zuU%_qX6EbbE0nI{i*>wgyNJ?m=R9r-rCyw=bwLsu!3+*cR>cbIOk#6!)!mQ z%Q+uv*yW1}k>T;NOd%VT6vup+7%H5woqH$denx^2vKJEe73I%gRF$??7Yo7qwpWdv zZM?C8&heq9vC)xtW3QLzx|Ww_)|X#@UY-B_Ya=8yki}x8rY00Tx?fseR8#w;t-Wq! zWMF<__RpVfS2tH74KH-z2L=bmW`~x)&O5uhB;QNtwYAoDwF)`-6HZRf9$tR_{s9** z_=kkhgld;i?23yM8u7_l_k=opX70mePEq#5yodP(@g>zEm9GOU2ZT~Qy|Vq*3*jv1 zmyEjJ%XMR=wT%U}4L4p*l+`ue=Dn?HXo_l`diJUwWJ6oK5R|{$JNdGs z_fg+?X5VZ}cXz?-iLUN$Au<2-&D&=KQ_UljJtJdnZ>NQ>*Tnnx^B+H~fBpLD>-v`; zo8N!`ay{*Kmg?!~{eRGT>sxuDHxCnC_Tb zCmiu@d8fntPN#8thuNJjd`72LdKc+#mt}gFMS6E^${pv-Ci{D>4w-G%_u6dlcHr-I z6EnN5vW2fb*E0%FX1{XG>ax!6qh(cI%5Lz=ZuHA)^1I*SoYQIjus8MI!=$W-l!twn zAJheLI^6QRu5y}%^TW^Q_naymyiwQ?@~9=SxX-hs?|N~o=i{Mkk6W%i?Y;D*C%E*D z@6+MXXM^X;M;|_^y;oWjUfvyD(O+2hf>}Kn@^b1z%~WhHKc%iOreTcLIL53WXEscR zG`*MTVS`&B(}{)cP=$^dF8wwp-ClFsp@-1 z+PizxhQ77G9%}9%c{4UMGX8FSa(em0ns6@nMO!HzL3FQ){GNzeU>8hQMwX6k8S*@w zXTG0#h&|_Roeoz$W%QK^nvB#V8yAX2UX(=2JDXEr8)S*}>$*9GbC(@J*(%t+@fD6n zKj(mkUhKe2>-Z)a9DWXEpa!j1Cmqc}`4oGAMNiz=_Rd>wA3k_kM=>*oLlBq#`x~Em z>}7DWh&T*@V^bO62KvW&T@)4&U2}U`%}v;#VQ?mt4a@8!_f~o(m<7)Cxen!-9D%~M zHxAoYJ7gbt`p73X39Wo9QeUn5$cqb?n-*wl|-dsx1wi_cHjlz3VP->*McG_Lur zP*>u)egB$4vhnL`w7ub}$gjurUa`S;w+7)P?EYu7OX9d+D6oT0RfKf3Nsm)r;_jt3 zbqB-p9K#OT+Hg~A?PQ;PS9SfPj$*q~O^F5m2mCf-)%4@l7TH3YrjWg=@pv)K);P3BQbH^=Xq5CT*qLt`VuOY`r( zep>nVbxrVR%h}l}CEdaR&+v=FfyYu?x&`wC)~|Q$;x8ie{iw5IXj;tvJw2Vm zm>it%?(cs!z;Ajp(!?L>85rsr9N~>jk4;RznVNe$Ju|WVVeZ4q^oI{CYoAs>eg5=y z{Q4yf&R>82{1gaIQ3D)(XjK1TZ@;kfp*JpFxq9_h^uf4>{qbC37V5{h zup*4=L@U?!wkrgd1Rb{@%SBi!v2W}(&H zZhBgdFbK)_x?}ESyJWpOlG80rxKj_h|BW}7{7%n@J=DB6**UqwgbT}W4a)1tc~}zk zUkT@1+<&>a@84{@P&)Fkh4FCb+=wlQR|mO zn&v8M>JytrBb&x=HZ2GPthTP9ys<6o)j)jfY*PD7TIXzY=j-Z@q1@MtnY~NGJnQW0 z5hhu8Z~trlU|;{lz{og%czj^u-NMK9{PZkgo^>_`s`Yo?HP=y$>ynlnk}wz;Z`ap| zQivmX&}8dVeUq~=u0()$Rq9EFXO62pyvNqUlPVBHxQYO(UQzvl9#=p$=;Hkni zCr^;3z0#A=xfqF#1IHAT;csIwy)jQu?bSBpa*4&rQ&wczV=~Mp2oOeQZQxtR5wrzA zPPq>NP<9*_FiwAQF=_{7P$q!JV8xiJaxhyuaT%ZlqZ5iSs??a4M^-r{;DHcM-d(0Zpv~bTPQI^_LPHZ^A;s%`qk6LPHmys((Gh$N;tYt)>oR3-3xtm0I(l&o=Uvqh-XY^+EBV{jrMMwm##2oma5!sHS1enN;?=vE0SPa#?*++GRyR+VnvFE6;2UBA^F zkz5-|dl3`+I`Ujw((Sf8DeVu6g;CS?D6hZd@knFM$JWY)H{C9dw!#}d7yQpe-gZx6 z1jR*POO9g-os+Dzn8&Hi{Cg~+b5i-h`e|Ou%R-8fI_WG#HkTZ2e`N75b<+J*sqXpR z=E|_%GLq0a>8Luvt;%bANgJt_dGpe`yOz`4aCx}iZK3>5d-H$T6MnPzXp>E6YxV0E z)|)o}F>cA*j-cr_$ARtyp@K5kb78vY$x5H~_`pMBiqgPk>LeS~w*O;FhT%nip>({7YyZhOTXF@gQ^>U{WPFelA^e>!J*WEO<`c9~( z#AiN8&$*vg(->a&rl__ljQ6&rsiUy{b!O*yZCh(aXJ<~|^uLHo$HZjr!ngX_1)-qQ zvbgc~>sO(j@=+krw>ahPe@p14>|xagFzySzlvA;VLNbM%&>##G;g;&;-5Rs3{$uxh z&p&7oswp;{E@37Jw>)VDFV8*U=RSHOv{U@c#{U~miLK%b?UcBe?_wIK3%SF^{jA}Vj+EFIi$;c)cCU8BeUZKpgwQ23Zs`mdex>{x}6 zPboiMao_97Gw0f(fXDwqRD!GP0xNlbt*_2^2>F!iTlICU&fc3t?XkSNJ1s&rWgzp7 z5KbA%e=Af|x*EEKaLNR4{9W_nYR~eAk z5t1o|cCqJqQju-J!!i{!Xw{zQLUr3 zyCZ*z)dI5j2lUbG%C%n48^NYfcC)pw2Ox9#5hr3hCYLfEO3S@2xvt+&|Cy>vIBe zRY~vi2&6<=5b)_@aBc7~;*uaoX{Q-~lB2SCR$24`-3zhGPa5xJTkH0L@#DKCbuw#JCk#yfz1>9N)dN7o^x?<^0o8K+i?A3HlXo!YqHj`s{DgOnDtSS;`G!`1r;tcx-50- zc%=5lMBHJK2Q7>a7;{m73@E335+tg~C%6DrX|!Z*kwlJ!(p4;1L{wps*Cnd7(!#K7 z2$6GwU1S?f5u)uXz$jv7UX;|qHNJ2LZn=J>+m?P3kk6T`B0(-^eTcVSxW5Evf&H2Cm;_Q&CWm0{n$t z=o7gy7L+nEwk4fp(6M;u{`8^qm+=;#;0xgv9eo8Ukx+_v;z7Z-x1B-PaO?E){iFwQ zbAN@!8vRK?hJ${8WIx=zpCbAO2cqn^H|NP-PTcSGt140dlh3yYUl!Mt?2Se+dVfrZ z)cJ|}U4196ejhP;74eO1?3twixxlNy*q7=gSK0V%#NW=|t2l;N6@ z6VDNL0WI=n^vJCXv|Da4B6u2Wwb#^BLb(+C$JmA!6+nvtwmp;+bSy_J$`Wo{$`UaY za+Gq7r?|bgC*TD;S~-l*5XtkDx!Kjq;`8C;%sB~>62iXVkc3lnMMrG!0qWN}YZy~waKj*U1&A(YN)aTGBMGAKXSpM1y>RIPc6Tz+NckKb7>fla z;@6MMm*K!hhTqym!9C!JyHq zi5XONxh5{u^n)iWWZhedn`v#8teP0Ml?WQs=33@gNL=sx9NZ1l0Y%@HY>>w*4B$nL zniMGnAha6~zo>rvRg**xcP9%&2@ z)&O|I#VIYQ7P<)RAcJf}Bc^IuN6KS8#m&M&QsS~AuoIpL$5@=OYnruJm?2)*fl`GW zS@|if_<0yhn$4Gu+2aY_ACMY*G61Sso&x(@*OFGij@IHlhX=Y;qT%JynlYXd3eXn$ zO8}M@harFoi||r#Tm`K4$ZeALWpV*(PRrJ)#c=(&v|~=RI+xyk%$lhnb}5SR&_$da zz(n^^<_Y)nj`}LMke((&4qcWfLk5Vy^Z5`Xlec0z>~)D8e3Vh9C)5PhnsPD-Dq)fb z_qzK=`X_k+QjW+(CdLn(VY@V1Gjg+Kv8ihOk8&KCDig|<+@+Ay-fGnw4T75p& zPhQNoh50BIJ{NP2mq&In$iS@UVIE*<5%CPUIkc>ExsR13MKGIZ}uCEaY$83rh}O#tTJIvPFsMv0IK~1yU?5 z;zRYc6X29MpRU_8(V)pyl?1LNK-G#;&Hij?>C5uUi5r)2G=_whsf>KEUi9S&ui2}$ zASE685s9@tFj@bwnnoG$jLQ%}earU{oXI@Bk_W0siBN1P3Be;R?By;QaR64rEuD4# zn0Cw_c}EIloGzh13)&-I#g|*8!ptqdZfl=Ao~Xq^>{}6zJry=RuIhp`OWuOD)>&aL zB#`b19r8qLDvI504Hb( z_N#dio0n1AL<-P=58OdD6{+@7WfHJTGKtj;G4jB@sQqq`3%;2Gzqq_QFTA?)nkm#! z50?ZSikAHuOR>D}sgSNwQ2rMHwY<(qp}CWceZ7so?SelYLj1!vnc~7A&s0exfY2i%v-V>+=nj~)>vCWkjWlOfOCB-O+?pfvU>|5L-&EH&! zG_d3*`_?o-(qu$pPbOes|CydymseCU-qXCD4*$(T6iFjCv4~ZGbfW7!2P5RcWE5K_NK753guvur)i}o*jGzcF~LiJq35258{-v6$!@ns{P46uk?g1aR>51uT~X6}UhqA6P{JmZPA`d{K42?mY|`H77#D zV|ywxz;1qy_ z3R@zM4FFyijc}GFvJsLd6j}vEBviJ(7K*Pp?u$=R61kRE43yx2uc!l2IAtUrXaxXT zaRCSc8!<~k%s-Zd(60C4UA+Sko9hw}e6Lme-?)%^1I&Ud(_l4pz_><)I9)<}U8IBp zD)$k6uLcRg(~_M)z9&If08kKD+Z_im8n_8R4xJs_KeZk;iWe$12QHsP{GK(OEQdc* zKe)L|^{2_{m2wH)c=;K&q;5R28HHHo!w2XlCCBCe;UfD-5LH7=2nu=g&TaPq#tQeq z3Qls9D|bmSj8QrJ#6_#M5*fhT;I zXkwu!*+PTofY}S=uUW}aKKv^e@ezx#@;17WeQSn}oWM%9txNXvT&LG1+68pU0UDwW zAi2NlU^hqd3)LuP52AM#@!K1cv6Wck;(NIxnDHYffGV;dAL}^_wZ?-_u0vMBAf;naMFsfaEPdKw2lUk-h7+RqRt z;=uOCb3|S|L7kU@P>haKP9+)5LL5*cT?cjsVZr1Y&}B9R&jy_4g4%2S#D&GH@i>gM zA70q#MhnhZf&6jtKDrLUQ2-9~J1*;>6Ld?txABg6un*-Ko_1&ZI=~VdD6!w?#Y(I* z*4xfY#B_J;=6DKe7MixDRwA3|xlTTek6C%*2hVuMS&ADKKp~n?A4O};9mXQ2SfPsq z2?BuasUl7rmcnkrB82F-@9)2DJy!o*kE`qRKD?fk)6&X~ z(bqO=SW{;%Mr1Jw$pSEc3>ySt^HG?rR`f=(xg!^0E8vrtAodAdFH?YHYFztTlk4U{ zE)B>Mn&d|ELE$1az^*pIGAQ_y%o+ka&SeRZYYWt@HNhy6F7UN-0DawX5DUA8QSe=n zfD6Rm!Um*F09B2>C;%&eqgATwdFF^K3T(2_#7T|L6UJ@Rf;D@uWvOw_(6y5gCIRAy zPf9#Xeu9@(;65gbCC*Gxn*6B4ISI&b*s&7`V4vFjjd*t3wpthMjk#^?f`dr2_9T_w z(fVmv*EZC2MX^%`NM`2<6d;)b9(qR#hY+vWAW<0-t^z0!Mkme*LLN)*UGPT`IHs-p zrea?!y1Gr}X0OCLQgTuL<}7xt{t))0VWv>*kwrl?P-?fS(f3}&7E#*nC)biBh+-4Q z>zHG$Y+?}7uT8w<^C0OSOuoh3{#!uQ8_l>2EbrvDt5vKk=!~)S%$pgO(Osn94Vs>U40Mf#}cx3_;*6n0$ZIXi@>h_3m~-mpin& zj!rGfypHr9s{gHHj8KS31hG?P^2=cQ0B%2&)X}DvJk~k<6`xX5^1fmd`c%YQQ3Xrl zP1_*JzII~c6riyBxFTx#=WFDLD%1A>sW6?CGA-y@C-J9lT%d^lO>rkGUq~VFgU?sYfqu3meL2k<)&PFfMA(^ZabSW@XfSj)`nWaQT zV!~aea;pIKm26a9uOf?znq?>rQSaj#v^GP6<>J+94m$Gpy7p`!Mjh@?LHR4rrhGT$C0*AD08glGK-UxWgY?OC5onxok%nsmUFfQ zHSEL-D4~Q_L_N2SImMc}7D#4N$QjSEuxE7{CRwLRs-+||O*Tj|D4oV_UPT8B7ojpw zW}7hP0Vh3BJL}BWX9Apz=cGX3x(7vBW_Du7bT_UQ(#&R4MxW({=N+{#9?Y>stNTxq z>@M0_9Q3fZ;$jAW_uW1F;>=HT=SefnVE2oh+8C*5`js74(=S;6JhZs`&lFY$HI*`e zV>>Q`Qc76^&>*$Q+jT%mThvI?dXpKWrnQ5l3m)@z2GUV)d%S%@(;#C&yj_;~yfU=U z>)la`#EdL?E+2c|_2>DOt$nsfHol5+mm+MCVaz`)JLH$pzdFX6CycIn94um}9clNi zmZ{CKZeVpRveCzW7^>Apr4Gm1GYN>H zx$7Ka%ZKi=O?!~_Ll@{FpG=2zv@lOQ|F&V&V@B{gU5pu1zKf3kOJg`XvgXsB5VQjq zs9%0%`kQi>)=9kGIe+?5nYT~}@@P)w$IMOcm99FULdo9B?%Yn`jk>3LGj zx0|+we;v22q#tk5^E0X1?*DSaoLN$I#>+mhLF)U)aNXkfx2xYJbYs5R{Wo{-f1P;L zS}0|-Lyy)J70*kbtncdW|F9^+@fO+q+!6h^kN*{M8!Ni>MW6KB!yLPoe&|{`ay8EJ z%n|3%`N;OL0mH-pPJdd+YW?tJ)>>aC=FwkgoM519=>Uf9h+)!Bo_lvHY=9r}sW-%I z);ZgK4>wLBPjLiY;4X?j;_90D#(i>^*V{)Y77M03(ydlKN|7=|t)r25 z25cSAk9tmiVLN=)Ozt`I5nkbw_my+>YfzrcS~lv_0vBwz_lFas_^LfK-oAQx1^M5_ zudzo*7P93byNy^J5*ir8u_*Tse_Qs*yzAz-mAhXw{P~u6zW-k6_msTvsYk!ByY)T& z=yx>JX8pkT6LvoiJ?zg~^*zJu#kPTO%XeEuz&n;YyvPdwF8chvAbebYbbQyX@zPt* zQOYGc?fBmCpB1Zq9vJu$HXoCF{#$kU&(+$Wlky)ck5Z+1KTk}4n<5=AHbd9t{aR-F z>eahf`#!!}zh|^5?>9v=rTNzH8w0;vCV#6PCXzBremWz@Jx>e~dS^*WrJMSN(mP_xIg^%k(^o$*QX#&a+H6 ze)|$W>H2C+>)>pk=fVvC^4pX`_@9DefTU8qg(IgyJIE_QGovdw-LIqmUqR{Z9*R-0 zqRO3@J|3P~;kM{pGCl*4?6SZzwQ^?4U4-BAPs7Ed0Cb3Q@wuA)2JpJte z?A!Dk+q$8Dk1V~s;mtJFLwY`0vxQMIns%r-O=~_uf10-RLfYI`t5a7#v^Qk_my>nr z>bvLvkXI!x;#@iriL%OC&xvxmeJx~3jClOZ6YHXIzfIFr8kTuIO2C0rBV8V2g3B$H zcxFepgo=X1dkWNdC-qD5sQ-)zHd(?>V1MXgCTJz*M@$;t-r(At4tSeY#cOYhz;X#V zoP)Q&ag5&X6+05dlO?9_B56>$9k-Hv?8R+ijSdzstKAV8q~$-w+VFQz zq20P8<{c#yF6LiZel3bO5ogRJobt(;v-PJ@zlzt~&-gBSdp{3FzgwMr;J?C}^#??l z8VN-{d7?7A^1)QvPQqhf+suh#OjR1){N008%)^sa**7vibmz3PijHiqFk4iUUEY1y z15MUWrKSEFn`*xm^RcKZ6@GvBaI#OqWkC{V5yVJ&OPea$v6p-2XvVVk)yfR(6*2S- z3<7&};i)V=u=Y#$+PV~3!RGpaJ95NgqynnnYAdYb|Bor;KF%aFxv6}ubf%gniO z+F!1d6uFRlS+`O5sfh`wI}pNg+g;aFyV!|S90&6IYq&P+`5hF;(nsd{M$;GqRZ|oaS9>-;JQ@d-Er`U+-Yc@ixAxU1cFy=+%AlVOUCccSYX_6I$cn66iSn0Fg@H?VIWam||yySwUkunr`; z<)krJjYK(HFiBZdBqO!-PN;H`X;yz?>BzV+sJff70jQ@v))fX`88zLg%W(LqFA9M7 z5Q+VJDzUCE-oN*lW-xWK?gk9vONHsi$???6zVYLj=Gxd5Yh@0znF#ZQd^Dm_L|T|V zk9>!To_YgFNrSnx2H?Q-<_3~yYd3w%;))$zMErsVjajyVop(UO*m2<Gsno;OaWgaEWky%m{m}$eCR;BR z$MVS4N;B?bF`8}%n2^>}tq7_Ev?G?JH2D&QzDVX$0b*temi&>kpD766aKTJE|G{ZE zVAz+G<{?Y?J`>%r!EX`_s*ec&I>Yl!H3(Kk$*r|P1$%2j61JCCZoj>t!X7@nVcQ6| za8`ZiFJCu@vm;Bi!bcg+;4uU|^YNX{W+zxhIq1il#P`xvO; zzyL?B@NXiay!CAi1(RT@jxauX^N6pMfj(-k8F5Cto4M{nh`iiop|Z{WtyYpbp#k1C z^YGRG;3TPoz8IWj$3p6KyWvD+k#Ls{039*~gq#2|*YO$;v8&G1VqfNBR zj#?jqyF!U{&UG(&xS2_;)5{zXPk=X-O&&i?H!`uq&Qvv zl50c3w6 ztXDSI?c2Xj)RnPCq0z3M8|I|#Ipt@?r6^2SMrPV}3yY?`oA)WffqCH4NaAGJPS$L+ z!72aw_}#{_dArxR@1l*X?t1OaAf=&`Y&)SCdY)Npo^t5eCTPJ|6+*nwYqLrB0 zwP_j^#4UZqC3oWU&-ot4jxDD~Jk=s>I+%nXk6ZtivSo-^5R1`qqw1BYZGS5WD+Y2b zual7nr>RK+gjPxuoPRZjYx41sgxY1F&twQ6EQ2*x6=4_;gA#~U1(|jT3g`wQCge=_ z{CA7$nD9;F#z&e1#|6McLfqlQ-_=kuGuXgn1ds{YP z_^A<;iav^ahf>JbMi2@KNM@rFza$={ss{zT=8Jv=SJKEQR6k^+=_bHF>6cR!>nWBC ziR%Oi3n2tg9aiI`%J9fqnmdBu!c<7TIn?df5L5Y5TL}3bM9^_aj|T9R z1#C_PyVaKqm+Ip;(fY{tw5b8`2si}cM+kd2T@UIttzA$ z>8nJVXuV8&Wn`hLMZG6UTR;WSNLO&a+)6nUrfy;wdBA+8WEsbcaY(jFe#9ahwUjBz z6tdUxqhz{DHgxgi1&Qf6-E0r^XS%HY_l%d9941)R#=UQ&pn%3HkaBn}1aHiS@#7L~ z2NshJr!#@=#!&d*m>HKatDAkZ#MqVD=2;Dwb|~?XQxS#LL>A^pgye@Xu|%OCaYi+P zeb_A3bD#ssg^*_l51DbumJPB8O!U%b`vF1Og4zDNbVc$11SCkX)0bMV96!DtSID0U z?9lng&%{jnp5~|EY8N4ja`k9-1ZI2u4B>xRW9@QdGghc5+}MCg(fcM{JGN0+loWq_ zo$%NOsA!7iBI(V#Tl?ap4T(oW+y{fWsLp(Mo+i6W3Gxq+>3+{y(`l7k7(V1s_ zv*d+YsYSE6m~H>F778<8ptIq^>C>oAoX~2}!vZCh>BC>wpPt$vIc5QWTQ0GMK?lwa zRWQN{LLNGVpiLgtsc*E{O8dtK0vHt8>3R| z`f@ApN#4j>ei60rgJsW-opj+hj`O6xsSkJTx=E)RGeo8SmDB2%Peb=g&u&6kf{0p+ z5b{GGXPv}~0=p}^J}v<3>!;m59fWsoWQhgNl!r(yjjnCky{p>>@c3&YWecS?`dC`L z30-`OJ}B|$BTl5v>2ADU&w;ni5OhRp_e9XC6CNc(`fm=*PcofEG7G%Mxw$v!T$SV- zd``#CuPs5ffD)tu?qtJc4t8i+q-{3RFfKdE1wA43kH?ab4$`$#r78#+7cB3lGopJL zPeI^s1A2yLkLBseLRaAHUcxErp)ed6Y5?b}pCCJsAXT!!6}g-uoykF&P|(gwWVE`R z0;3VeZ!s?f%2Cb$_}o=tZGm&(U_Eg#2}0XeE?5Cuyfl+7gGgWp+Cp3&6)#JuM17XC z3OE;|jd_CdCYJ>c%PXW+Isf#b+>Tz7z8UVaN}cB;1aNu`$xxUkgdLk6Iap4r@w0=W;nV}=`irKTIYOqLo=6ch>d%^Osh4Qe2XUsPUSm?XqxyJB|s7VR(;iRgt1qUBdVViK=o zgw$HWAZEQXFxvde>Y0`s+0Hi>VOMrH=kfbCupb;-eQ>+DZ$m0JsnUO)3drhMo~;ZZ zpT3%>yqBiDw`;sGt+^1o=XmZ9W=D2WVfrG+A8?@rej8zC&Hz|Q*87xf+^xLCNZ z7rPn8{DzNDUuQL$+p%J;0Fxo?q_j&}%7=S@cEPosKkBCCJnYn*Ir(+pb#FDu9`E`^ zYuH=WXfuOb-5u`I3x3zMyQa!78S7@vbH1;Yy{wsb8F6-(Pe`@s=+~0i1LjqK>mP1U zJlb8q#7(@!T?o1>_iTUZ@G(K=XNYs;BM-?!kC@y*sRmk?hxCoj*jjzsN8vC9mTVP) zep;!OSo#&I?%5YqdkUOV7Jh^$tv&PDYRk!8deSwh2*QJ{K zAtl#CKiHj`rUT7C#akYi?n#_iEk@e2rM}s5R)yfEWqWdRz$vbScE=^IRClNEL6$40 zwv@z9RZAvaf#3%w$mzJCtt1mhs@b+G(A_npakkV&KgUMoaLP&QMwKEGAU7QH$Y#8+ zzeRE7?aW>{Oy&8$3O(*x1PJoe#blz)lk8d)9RN6VpkG$m$F(2}wQVo?FsK6AqlCIE+r#ZxE3AWfixfh zKwi4=DVo3U%}ltM4*>Jwvh)?_DazqZ>)#^oVFV}8eu9)xNWOXsZ!MYODKGtR>6#*wV#RVUbdA$!Yusm1@&LlM_AB?Kn&XokdiD)NW*lNJDSb_IaR zuFg}!TgG8W4nU;(+NJ`t%%oc&@H-PsQUPmVjItNASuR=2E?iq|wHYePgbHW-Nf5#m zpu_u9@tS>Q`vDkbT%pH*K!#F)S?$SBv)NJV^G;15kewgSzMRj5NxI?p;=1h%u&Y#X zUL|HzePPQV%w|_?78|>!WEn%uIS39BpaN1?J8a2dP6~_OOZ)$L8gAh1o*Ix zdQ8GhyBt=K2Lai7$KI9cb;=KBz=K0w=+zBt(J*52ei(K`gN0DA|HLqQjlp3hQ{wd+ zy_o_e!&rn44JxsVatc$XgPB@jmA-(l$0RYq-@+?NW7y>Qk#r>{d%T5Z93(JaBUC9% zE-mnu(G`+wnP5>gV8e!86(G7nQYEOfY?dID(x!hTY_`mnAMC97Ts{XLE|L5wkv2KW ze3%ATm85(Q(hIKrHV5>Bqz6uc-b(RxTZ0b{`J?dj7LlZYE3;F8G=N@OI&Y( zHV$W9gdmH*iKY_URPM1~m3he);Vniu@Z0juaOgD>uvrb+AQ3xKg3;oJ+F4S*Acqjn9@QHc-fb{0)2aToxtdozA+sbuRn`o<$z&4#$Gn~N@d zaZyOVGE4L2T%Gj$+PTIPo6Kh^&c|q~B~+bFeYYQQD5IK5#7HT7YY}^EmKVYI^7lHC zX(ljx-JT!YR#_LWjmpiH)yCo1O&+L}Zw&{>bFkx6%*K=4#<#7Kdpl-xlCz6W{(x7F zPu3OxXek(9y=^>SnO(XyTNX23x_j%=nV6QR**OE*`#xuv+|ACKE8m|dKalrx(?Ib7 zn~;OMw;hpWjx@-7nd8*z1>+{llL*chmVjcB!(esq(6A;_C36 zn!sN*Cv(c;x1GI}Q>8h0Chym&C4fhR)C~^K2Y#Qug;P1;yg9=~itoN3x0X;M>Q8Oo z2W;I>`BBOw)U$VO-)Q0Y6J7@F*%^($X1eU3xw-8{h-_8St|hr0yC*8dLi@pC@-3O!Gz^@{EhIU&ALyZ4g&&h&@Yie&2A{r|$TA2h$y z@p`SDqjMq+^D=&s?JQ&C%RE`VrLPEk_5cMjClXAITUH9jEk;#!M{Xjd`|nv|)$Y6; z|0Z2LNuV*))o6E-xVFUOV!m?r3?}iiHNiHW%}02r1NV$S5X`neR4gJ-!&|bYM;SHJ zLj3j?3E&2ns!lQ^A}@07O@E3{*%$TUOA@B^)R|0MU%6oRjGT!n@7?f<3obTI#9<`1 z(w=R6?!Gbl9s^RCcdF~y*Fo$>hS0@kDXpw-y*s?=1!JrRVJf(*divsqVXlA1o+ZiVd^ zxAIcQkzAx>E>Ddj`3c*?!<*`nmd^2PF1l|H-0F8H;Ypm=FL+<hfVQ=~U1!w9XCM~tSL_*vb94>pYY{8~l zuxG4}%)#mFFQX@g>Jsl}rnu}GDK|+wbdz#K9dHwBW%{+$JlPH2QGUg8UlyzDcBM5xXyy$Y9L>30|uj#Ry zv}xne%QD@n@geI#MeQGYToZVki~}@?F}KL>R{HsN>Wi}Fl(W5I{_xWp; z#Ax}dGQA@-dT%u;T3}}0cQW*GDu|n#Q)XMOZ9&Jmg#0jJa>E+bhVD0b-b@myRaa=M zf-tD~Hc~a4>)gPXu(G;Q!F>9}plM{^lRbzF5X#A0TgV`aOs!PM81xLOWgizjPyu_) zJT}|%=VLGt@_3`*nx4!?y4{8d?2bYcvEV_HPF;Y2T7iwah`CRJ;%KH4HKkW}=8ISo z6hDjNqKLvj9mhap!zH0^JbUQdK_8Tk63PYLs1hl1V$=t@$H}SA=}=(PE_abDc;xSV zR4C37<)kdgBnVAF1%~#^gRgy4gLzz7UJ5ZQ~{s$!G zt9yowg*Z%Teg;WIX|sJzz2l3jhieAw7Dw1>W~6fox!+I>Zxxcp2aC*w1nVh!2%p(5 z38xC@XEpQc_a2vp&WQ=Y)wW`Z7n%@R#;UaZj`uNc>1Os2^$)c?{Kjbc-oN$qe|j0* z8yd1mvD%?+avU9?26rpIB~jZdqZhsDF58%!WdDR(6xdHMTSsZL{{R&RVj?7>=6~%l zIQJmkC@Bl7cStRG5LjnM%y5@bM^!QGahI~qx>jJ+^-j=@oZ5?DTDLwNFYs=yHO&&& zJE*HhJdA~zGafQprg!@K--Ao?pf*ID@12ky?ehUzHTEe7ef0HS;VpSmAg9E46ycZB+Tmt3m*z$yBZN@nu1Fo|1aM^wH6(x&`j>z z0;5>$aSWdW(Y7#UY^IvX0}!SPW&tCXi=W}DE~xD-^zMhSDSRY}pvY&`ut=Xw+N_eb z4{dv{-iZo8TCL1QIda61(9~|I-K(`*P#L8p3^>59gB8|Lu|PsSNwatnu-9eWgw#F?Qz8LdlPT){bL$9%81A`}S7 z?8hkZf=ckMkQ0UG*UC+MBqq}MnHMr|(LPjgQS;m5!0~y#xt2WoC&RJOCFG&Y3biEY=g!mHy`QnobR>x!=BwMlt`*UA077i&hE_ zZgS`&qJoB>=E@xc##;U1f-uFx)i060+P0vCwza2L@fY!u*6$Ahc-{=;>W@;tT%@U| zEMN?YAR~RKEFV2@$;ZhyV%>pYifr*&WS~-FX@F_Yuz9H@l*Xm>z-DZ^#W-NChAk9T zbR!dS8bG9i#8RVk0u{SSN?avo2_QwsGIN!n*VC+yNoah@+=ac=PPLUeXx*bO9fqup zAZMurk*Xp1X^g*(oLyz914TEGeBc?-G;)}sD(=>`I@O)D!1==1SNp3Cm{NG zrTz8SR97SKqM=r3EY)@tEvtXD)`qUR)t^r@0CYBJrZk44bIAtC(z%-6IXM*E#iA>@ zmd!TaiH=l+hQhqJqhM&puY8AUFuZUmJnj+w24HTCEff@4HLER4oeo*mS#Y?dQi;{h zS~JdbtLA4^h7)xb7n&yNABCpZNvu?GD2Z!*Ox>qBOl$<>6ExKHr8Zw`x6?FJch*@F zHM7L{t22sXaWLNXuI+8WO|JolCCny}&?D*AcP;RdGG5NYG6C~+wH*UKr-WUJ5S9^v z?$rRVujU@bt#+>+X{XEnYq22G?FG@wh#ux3|Q@kKo2Z zovEB@M+N+Arx?{8>~Mr*lLi~o`j2|{jS9ONx7E)@*x<{Kh(-;^9$F{V5G%O!WgWcv znmO(o1VCQT2T&7j<{SV$VSE7~n|J|Au0LDdp5HdKdf}4eJiqZ)e=YCrB8M3&nNRXv zs8a2o1vn9(uyPp~J@>sE;HiX&%GRrt+4j(sdLn|ZK)BMNMSbcjb!&t0z9Dq~=p3s+ zMw>5Xu`gBTSK8y-g!I8lma$}S6m9+^h{-DKpFg}XhR&Ua04%>N9GU6!k9pq5uVAFg+#Xb zH}Vcs9t5Qbt`9ymINn?l!M}Sr`S0F?aJy?+JBo3mcZj ze3W{P$h>rIp#X9`N(Sc30+hU<5#FIs5uYazgON<%5M;RXX|JZXpoML7M&hkEuhi9jnvRe^#By%BWjbQ1qyVi)>sH$OphC0t1@<<)JE^* zO3LJ!?cP(@Y8PC$uBS01=3~>%YF^X&p_xwsVhyw#)PV6C6BR(ztLHRp`s^BM1`*q( z&N`O6qg`vYa>y)!WtAYZpm0rw)rv~c$wkt7XNbrI!2+(Wisp6>>}RPhIPPb!JgJYO zoAhYUtvCkKBv9kr{>#;x)9OHa`t);Nq@trbf_k5^D{DPzuK# zpUE~>t1Dsa{dh(;h!J76zB>7 z*fCmXhyfrH;UwVBXx@t`Um({*Kqum+62SF?av+L@(NJ=oDHM&v#bio6b?fxBq zKeZ7i$5?WMQ%|DC+e`&;U@R1j182ymq77ZORH@OSWZUh8xF zf?uyJtfMUr%_1517Q=aA3$1(`*7|j{c?ypPIU|Fc+6w(1vH?~&)V6n8o8n@dS2KID z-P0vj`L+vIif{5Z|KyFG(t(j}(HY3RMr4p5a8;Dx%Oxjsqr^m98B6Zv1DUp*t%#8Sk< zJ}?#}Qz43bq-qv7_$Sr%NFvEk;+rDknQF|^$ASv|f@AzFI^kQMBc$v>$0IDd>UCfW zzhqdAytIjbDbdn0iGMK7$1{oSC!yCkS^xsu&LN9tsJ#`oDF>}@Kx%{nQ3IN)9AlmV z)9*jCaFrZfVQ!i&n*R8sn@hE|@&hrIPeF0x>OX8hm1x=HVMnGknxyp=p9KoaWBE#EBaKun=j99!nQh0+PD5N}FcyIq1n8Z;EWMl%Ni z3I-r56`))8XHcneJC+iQlU%uXXZAt} zfKp;RdKm7YjacGwqdkylq-gf7H;I~o&J#r&h3E?RFFO{lS?$zM(XCqJ+_yvzMYB{7R6Y4mM+BAzdH<{;@Ci|S*=C7MX1SZI?*unmh z$k4IOY;7f|2Y2S#+I956JC`S1+}kR8L3dq!o2B;9eRtCafW1 ze`b+d&ut~%?mrHOccryPayuiq{q0Kya=z`A?bkk_tvUC=j?*Rj?H$+o8jJi2APJE* zL1)6uL`g}w->thZtxLI6?=5^$pD zCe3T&(*Vb72f1^axrLSBKOc@+SKPGl3z<|ci&_k_FD@;JoY#qTqzi6Zt(&O-*-KT* zEsfLZ>*w~=bDued9I6dH^lAl_uIVdLiH;(3&)XmwZuQ4Qn+w9(j^ik-aiun*W#>JyRE+BtEPxJxy_omMqy&=XPmq@_mmg>Io&je$ji0k1>bhEC+_E<(vL{Y$dSq zTIqA~%lC)DaOo_Wz%OCodk*=*KuBsijKR$xE%pYB4$}1ZOZw8YCcmBVEQWf}l2Mlle4{`j3 z_0pF?ThJI{>|AZl_3wk4gPUyf?04jR`|$kg)=B%Fxj(=DXH-y*WPEwqDH$M7IzX=) zE!fZt0U*O4B7*sP700KQl6U~6H2x>~?* zuX}RauYo%5eyo9?G)bC95zBT->p5w`VxQiW;ykkcgnXwG(j6k^e<>omw#*bVT*c1| z9X4LM7vs9~+-S5cH~ITJhYc&swWwv{*zX)aKDhtxyVi~q!FFbbHE*lG-8*?S!+bbp zZ9>Or%Gx8W{&&?oT6pS|jhP>cR+oQ!9!zQhD2ZWa)Vi3#rx%y~lYfuvO#l-%CJEh|Gg~o_cGo9jr`@P~O^_Gx60zFzY~O3a zrplZ8S2ex0+g_-IHz((!?^7Zm-*`TxlUT$L?Fy(`auYxNUm6nckbmAj(5YJK6F$6d zQJ28d(JW#QvhR4kscrhGqp8#tbPIt9(UHWJVX7#5A_Y#@N-Ps$UVvk_9MuaW8^n=d zv=W*x76C5I0uMc0xIoXviB;{kx5dUfa_u6+{W~^7D#jKCSYath#4MpSJl@16LZ_Y% z%K(Rbou$PWE*?Q?L+FL5ZHfY$X7R42R0wBPc^kN4gpSEf;N-a4Ua2k!7em(HgQC#k zhQg3ipj3>5PIPRxb*hp133Civ>Ywijq!hz@R5aWf(q$Fx5w! zS_>r`_&S88621-3Finh?(ew&TI4mKr(t*vanSBTj+hKP0$Yuj&00KMPZ+rn>6n3K@47(T;XGv1$}hyETa@SA9%G5tZ%W*$PBnV@f-T+~4D}8#(W$kBSu?40tr9J6lx*8~b{|bGT8eH2v1|%_ z#C7?J0EYTvitEQ81SJ|Z;l`cc!A*19Zst(|n)oUrXccOim8*z2S0SObWKDf=08e_b zz=YnlSM_S8u`-E^AlbjQ;;@*P*9%(7J!}~rRg2#s+>rS~iN1d%;PQEYz&ht-fl;Wr z*ck=2maCD-ihIPZt)O}I-d8Uwe_X^X-Pb&roW1nftHLd)mVN8qeXtt*Q#?D3(!2Ho zRAB9@!})R$=6y^w)pE&Y^S5B$Xxe2z)Lai@%R}is$-t$`gEtNs7m5~s=rhmTsD5OU zv1?z!z(k@AWBW4iH7^az949|HqSG78NoSAs51C0i3AXv%Hz8{@0hp{6vI$w3VmsK;=*Xo6~Z4afdfCOMlTLm)Y(* zJcyX#u5obG^e=NonB(H5Gx}43$>p~Je)B2FV@!u$p?n=Yr2*}dHV=!c;q9@`z70eQ z$|IeX#5YQ$vuM~hdbv3GM_=+(2@`M!G`JfXZB}tr_YIc^(dQCc5h`pgP9bEx%KqQL zEQ}vE4$SrzqINC8{TGsS)^dTTId$O%zQr#X>@!#$<*Le<0!qlPCQPR$1L-s!@(P5T?vSeMNfmF0^!W(U4tvU%X23p#$LEa2RBOml7?mW25pW{qo@p?-*)Vt>m6-@ zrgRn4&mKd?_`I(z%ge5y-Rq4Bf>~v$4KjyM5GHKbh4N%QkFJ(u1DhU*JVu1X!^8-3 zDFx+pOoY)ENG!ri(Nrc2=Od&NOLYjtpc$r>f5 z8mf3dy+XU*`2L>|JibFoicnl{f+wU*LgtwYvKn8lCT24U{U-Pm@C2;J*XeL_CU(Tc zq(+IZhcTJP{nj%R)iH!hCbk9u#lTBg34(^~g(W6jx9eA?6Ka^K56)nP5Z9x_G^o*+ zVO*UG-LL#xts`tPpyR}ZN&q)afys%vQfG)f4d5Pp#^u}%xB>%*0n%w5exU)lGZ!CM zigje?wyYu4pSd_og_y0yE7LIid&GDFo^x+P2%vT|adF9{&hz-DGx#Skw!;``eK(*< zNUT#KZ<*kvl$WgvLI<1B3InG{IB!o1q`bw`)Yg-4)r(#M#C+H!fN6TC)OeQfqBM|N z)z+yRVt+c&r7^p&Ms<~vB`?U(6QVO=n(hhlb|H#o9>K)$MP~4jbcBfhr9>WR zWtg*``KcK#kP$X9<+FO5ihJX@HtY5l9axX5{`lO|4Sm7`b${?l9MdLoa8_nL9#Tt* z(332ez}RE^wg_?Ol<0rUUUsTqS_(~GpWST@f8x6!PDmI^;XsZK{8DRY&$Mk3AsE7e zp!by(B0E@Q(=V|(C$V?lMV)llZFcuOl?2o(ld z^CgxoW+X&M{w#<>6+KRTCSGcra zpHBB`Y-%up>rNZSYrU*?k221yTD$CeSsAX6zO=IJ`fATN)!J!6gch`KLE2rcjpmi0713YSQd{Hbny$`6Gy{WB5chR-{EgR%6SA z1ekeI1>+0Vgi}yO&v{HQ1>Xb5#jG{iphRs{VPKeO379MdFccv{2wX4MZOa~NLKR}~ zsBa3{e47hfb3T|~fX$|E#>#XAsZwyfXu&p}bsI!l2UQp+^J=s>oyy{YVIpA>{sct+ zPfH$EVY-BK&Iq@632~V)=II$spOSPAUa(0CIuu%;R3eVQGb@Hn>vh4CP4IPdSTsD= z##lsntix^jcOrerdcO`p7{eFL@XG{X(`VYuh^*_g{Ta6KLv7NYb7ra#>^dMc+jS~(@-|XLI z%^@(8X`;Z`NZdLRSt~^P94FPa<&Qzk*L8@(r^Y+s@Gl`Mz1)&m3&}SjyNv()+3}nZ4SN$9LWJvyjdTF%sRpxj zSf^u2P-soDNXcTjhBR#-XX&0YpB;Xu|DM{Bg}uvAgTkVGcUcU zWA6H^JJO;f>C`A=EQKDhQs^v4qO9M~16r8o7#PWCJ$jE1RH~6Rb7B_z(b6y3zxFg< z^Q*5&g7&ivLGK5Zdu)FZkXJz30a2qO#rB2;?c95Al_ucxEL#MY8n)ZE;q%uqFx_(@ zRVS+bBC2iy?T)bQC-d*e_(8NBjqK~QPc@zeJMP(4*5-|30@WLA-qzY40qu8+Y`$m^ z#_Dm*v+B-t^NK= zQ(HMV`#jf9DS7g~Rx%{9as5A{?me!>|BoO4b#2$Kt+i9NYOPgU2P(xnuY+9cB%xNK zgc)yiDlvO*;t;+)lcU8Wpg~@jeT?y}{xs%00S2E#J;6HN>?-V)(7(1T{4K*w1<) zzK%^?{xtdWZQR)S?7lPb)E&6UTSi0Q3Qg-tA^+y%*37&uX2|G-crIS2`Bh(FKCxXD z`dDbbLKAPkV7^4Sd(r6HC|cy%_=0?ZHn@^dn0|GAe8Q<+&_Xmhk_Hplm&(5H%Tj?m z0380Cd5t-B#jYfCAZ6>isv=`@>pdK64Ym{^wy!1{))qcc37Nox`CETi#S-&{`{ycQ zxd~u>f5{ycIpQxOX7{hoDq!+#BD@;5w@O)Cwd*)L^7dyde94S+b4cd~=>w{TdX&!U z*l_>Nh6K|)g|9id!G|dbZ49yKcAn3hyZI0MxCufUFu@Vo4cEHv3xrVLEJAj4Yt7_=I4IWZYW~Jb=3^jj(54^aY;j>*DGfh~1))1I@gx0{-X;{-&~_^=gHLir7o~xe z?pejrd|HqNB|>P?ierJnw1h`b%267 zH25R4tmBMCKtZfWS23>)9@Zy+6!SM<9psl@dfyM&rC+ zB~Y|}iBP{4C}mr6j1R}YFro>l6Fb;MijdTfu1SAxG-t`-oob`S`*wb*Cd@X%wVe^= zekPx{!RG?I)_KIl=zJ?y_r(Z|qA!z9tDZ}KNBu=}Q3{Q(*vx*RGLoZJZ?i60)B2AB zhre!ocJ$`M7#r|LExA+JchiPK2H-91LWPi2uB?mB+62*RvhY@85UGuW~mDl345;a7@F*pzUFA(ZJCm`^rsOjrHvAHSEeM3%i0d z+!Ow~h+|O{504CdloYR+sLaZ$-1=^+{W90*$d};#m0Qm}J#;R1O^EB7u-%77o*v@q z)5v%2qoa*e+%{)TvIAd1Zf?SbeTnwm@VNpRHu4 zO|bc`4*Lh{z8<{t_51aa$&P=|^YUvMSe4fn)K&9sr_;+;{>MejoV$|0AAae(c=Ii- zHlz9_5_0(a#nzO{!+wAGKc;W~e#7ttyPqeAtREcywd@`6U>PfZ*^g~Aez$EFM@Ia3 zcjJ%$+~14Zzk?WUb5ZA)9f7n@&zm8FrSzu-1#I4IblnKLNqYt2jM_5}bnRFiRx#mS z;e}MB?)P;~I2Wd`9E^gDCKg9onK{nc@8g<$TJm&K6b(a6Z>m{GcfP&bXW8ShEAlt@ z59Oi{;;k;GKR&kbn7n_Td3G!`|H-e$_vt4RPeq>jlje`>+NCC3dA#e#dC|a`CHdZ; zjnW7`%EScM*hubGD8xPdL8!Qum}#6)^a$eL1yxanQP)!S4N&r=k7pzHECC8+D^% z`qh6vKBp?J?oMy{HhRuj#fd2jT918yb>_6Gz+LONtmCyeqL&5!{Q1kk7*pA6^us%2 zHi5PcORS?KKkq5vhbP-fO`{uZCYUt)J~_RIL&Ig?y_i>0O0TG1VlAk?f7pr?_t|z! zH#ifRi|>l84I>nL)NTuS+f^Ip@hLHNI|5s#?Lcf@(kdfdw+vNA`x-gzjO!KwR`Vjh zr)__iyv1=xf~V1oJrNe@j_LsUEvN0ydvCqnzOY*%-=A^af5pM<2kVXXsAh{-sWBQ z1w$EZ&IR54tvOB4a&PBc8d$Xfn23G3Y0CZPhbR7ZzcTP?&*|(JyR)V?^`_j;ZTV+l z>&ojtKHXk<4i_YTb;!MH7J^IFj?wdwr;J z#pmDR+NFNSe##E`J$K`qWPDF8dT_#SG|BI@_izq*`S>l++qYTEL5S|H7MRm$Gp0Iu z_Jb7F0A0xQ%7*eD#R)G+?d^;9>SWJM4~R%=Mk};j@;-o(+^?~((9?X0{gp!3Et6Bb7L13b4#Dfo-ivv%c%e4hRk-7=;%Z z!q~?Yk_q=w3wb1=)dXgDn0^srrqkGP9RqYReBX&3*VEV2iWvhaCRQIIq@1ri~h1$X6GiQCeUy(Z0W;Z5)J-_e|iZ!8Dw{)Fg zLqNGPOJmzrJ=2#~2pBU$t<27LrhG7|aB_QW|0prSQ_q>-nl|6&w{lx>*;Ut zt^qHU1GILvS$1*dKK*aD9}B=@U#lWRZR1SWA`9$^w<1HL&Y7%bx7j$q$+^90QN8Du zwt(ia&3mZsnJBtl-fN_wC482n%OCgF4<+btflu(s4f)e19Y*T zK8+kou>UO2|AA1CA)s4?3LjCtV^YtTR!5D=|ES%44>69+`>>fpXvpG++NO-c95J6} zPHQKO|B}x>BB3AS0!%T#^z7aVJkijX4z_1^nlMyQ!FX-<1KO5AAa0&H4>z+_Qxe&A zB)E*C0ru@JEh|ZecF+*3y)K5m7ED!mSDOukMxYT;(%a@x$A9`HLa%wWbcb?EkI5Dw zTTeZ=MKTo;-Tb^KR7=aBNs9nF8_(ML!05s&-=J8b(?afPu`PIivP#wp8 zaWX6t%8cK7im7~w0qy{%UXL{>SZtW0n@P3cf}0{W@Q-Q~UeA_f8yJGeiEu!*2{~CM zV~&l7PuJyp!*hH*wAH>RenSK=>{i*ubjH~0}UgI+>^283-Biv3u6?@x~<``=Y4GwMm zT(MO6+Ro4!%p2c963(f$ZXfUPoH|M_lZV=U?!$S1@hC4OIas~aclpTk$ZZp$cK?Un zr7Rn}sCX`($-RD`yxP0=%`azk=)C2&B_sA$qGba?>j$5#tm|jI(&2k{4U!=tU~@@n z8z|ke{lt-jc2|WFJ|Szj=hB9mV+}WFmejd(cds#a#9X}{M3778em4WHwu zhAN9~nm6Cw1@je<7q?i*K#vYCj#7pi31IrTWto=zo|>T9oaPCq0;#Wk z42&8~FGM*WOT7|dJR*s7F3zig+(jIrXafE{6Jl4(|I`5mg(zOBz>6f&2=x0V8bHT2 zR>SKVxGY412(SrkoL}4Ww)D0BO+8WnnQx>n7%GN6 zXn@tiIX^llR=x>mdJn?b1Tj9rY?_`Et_Jq{P)yLcv{Arp6#EeYO=;j$6=*6Xn{fpW z39DAGD7>awb$&AG9%3@0C*ki0)Qo|v)ljPikcNQkfC6fPv7#RDL^Co3=8qU?M+8@Z z5@o%!v7?|&QxMPw*3mF^sNdH(z+Sg{!9w5{Li!4MP;L6Nh4kHjT|f6wms)j`O`5hg>6Q@qtR(et$*+`@7By*n zFGZ{RkKT2{Q$GW>*TvL7>!`C4XiFq>S_JNIbJWd~87nX|VxUA6>xbZ?)KVWd93+A^ z)j&b0nN=c|mADj9DmuEbzb+ZfO=${Z<82{KRWAuedBi@<*cfIm&GPSyD-kjF;e2da z^)j#->nFzXVzJ8wI4=P5*Br$Tr+69UT^c0IguT?|F4zD!<1M*-IjLe<1+*5u2~>4rv*HBQQMmM8hlzpS^?r-Z)MGLX zSTKrn15&{zMTQa^te4a>kDd*Ha{M za1GEH06RIuB7t<;W8RTr%n<^leh5mEDV!!j&b{we{owkStux)` zZ)~F>q_eXP$3Roo?fnnmRp!@CGR6q-tgY}m0e-#3EW7}-TIiM8j>EFApWPdH;jh&< z^`uAYs{)@j4~|ox?<9RwF1)#SA?GZmRSaCeWIQ}-+^nM-@ZDjZam~BKpJ?O`?!>`g zU&%iWrjpaf4k77}p8S%#s`w`9sEqP)^w3v?+M=e7WgPxXKs77`i!M@LAi!rD^&fUZ zxVP#Do1)=rh6U6yl=2*ar~{wTHvDJs8VFvL{9e^I08ll$goSS8`%3BqHE94zO^zy!pjloT zm$Ad-v&-NG25OgSc&$O+21XZws2!n8oQZ*+lGW6X7f#Hf|KUCxYJ-L-;f(P7fvXCa^MBocI3#-k<*@=jt(WN_gA8 z{{!$|zEX6`ABFko@$h8md)3Lh23!;Kwm(q%e*s<%mNbTujX>|-GcV48j|SC0Yboc- z`EfeQWmjAv4fj3>moN&2>0=gXuDN6Vh2xV(9h9=-}51fw@p2N1p&Sk#;g?z$c7c-7VtB(oS!yC%Z z#IWJn671#!Ku6}Xg}&I@vx*>KN`?@cBb0smc9;LYB;q~Rbiex(LZGmITY;FErknYa zfae%MTygkzIO55wiK@l4%qAMJQ4PJW$CEQE7LVfX#10^WPn?cv5?A>9?SE$=3Y6ro z0;Q2S=isdK+buHjO0u;T@E^d7p8YEgYXcYsyx!{|#ACUH>lT>H3qTOSECY;}(woFW z<0ehi%8%e_U8R`ZTmU>S7hr@ok3ikiSq_(2eAvzaXmgE(T+Fz6F|z zXANk0lOB`{z?L-xM|7r*OT3eivQxLCBWzOo#j8Jr2S13{WK5<^T6@sAh%`*oetK}o zilq6bEBZsD5*~H7sz|?u3-&ys{v)RLYxcLH)GaFxKG9RR&pg-zke(pgFKXlIhdMs{ zAN~fe^Y0=1R4n|>B?&fZMn*dc#h`)nZC8;YPlN7$uuVlWUJrbnRV$qT=E@ZEI&*4f z5bgXE@^7|*<6i$=(>kId{nihvCIep(k{+Qxo<(|vP$OAn5{XRYQXU)9Y(nyTE9wsc zwVO@J>))Ke_$IRf!Yk`$X97hdby&e}e^r+{Y0Ei9LtYIopx~&AIdQr)>exa#E<{=X z@J%;C3HfkwbA`8SdK$SkPz(VDCv6KFeIF@#AI&Y{>!6NJ&=_4fTLXt_u+h4P1G(@t z?r}V~w|=1UQyi}MPJP09XcfP_&DOF`a%Um?%uIbZJ)XWI68pME605m+x~6VzbNBGK zyTOU-2VIgsbvQn)>wD4t-l7wl!lN%2Hy(+^CM0!Xc(~Ei@;DFO!;9UKsu6ewkE?>r zx8b5`ke?nN-2~lKoKEi^;h{^lbrawyFGRpv1ShQXGEHZh6lX%73%_t0B)wG@0@&N;zH3Swo;_YNuMWD_!{TT_-F4| zkEONW;?I9ucEdX%-}}-iV)oi=e*P@wYwX5F(GKTXZG6~w6h0KO+D|I-u!o#==Y8^j zDCcEdPTlpChFvzpL#PXS_<+Z0wa;OT^LGHrg*azPNIZKAQwcJ;lq@~fN=LRZp$OO} zvjvlSrkQ;Fdc(bz+;Ec&hEc*uLwCN~;MjyqYELD!fAsNpJO`E=DjnjY^^ud5cYH0| zd}G;!ra!!UrdX-?Cs3n7B+$S=AHVueoPHj>@lThNfLrnMV$m~7;lr68taj+9^CuaP z(sn7Yzon#q&6nre;@?+J^!5 zTN;yI8=-jdgEMT9v83hSqg@fMhusWu$V7(qPj@#D(S-1ydE;g-F}VrLlbmjz5?z7@ zDY;)isD*9U`xDo{eh!oOd5a7&u=8;LKHud%>;{sL)*Q;}cGjdI{N=atj~Dajb!v8d z);P$r9L6rZ_dP#%|HAWfp{_gOwBjGuQ_o%49NuI?1#-wfe?4|PP@&Iy*VxU%!X!YwAf7fa9FkJFG=Jh*#XG$;!6-ZUFS zxcyk2QmV6km4ozm>uZeO!o|^`pGGTf@_dFMEkC+xXZ-&z_HyvPH)(dQ&mGgQ7|#yZ zs&fBFX<>80=Y{)^z+T;==%8oL7w!gl^|VP*@7|p$at~XxmEo^9eIWbZqhm+U{jxRw z*!9GIb}dReWhO<>9kHL+0IFTR?x<*ebLaY%WPZKlJ!Q^U0Hdq&ikbfJ(D{1-Mx$Oj zp9Inc;66ltF9^e%R_Q#cT#hM?;&D4R>|y!5n22d_F3gLWf!o!yk}Z~>5yXW1%%7j& zVVT?&_#Z!?R&^IZ8aE`hXV zTEyN(lAGc}(zcGddl!L(X0s{#S2p=CIig6rI+%++{^EFFM2lT zQPBAqU;k^?NjE0`JX{I6y?H2@xc+@X{L1BDSw)YozwD=rZ%sbdvg-D-g#& zGv^YZeXj$PpCzkSa9vwgw8udRI}a~+sB?6N1D{BXuSud(U>MyN1=FS~?9^Hsm8 zz+?{s75 z32S-xv)mtYl3CN*!3eb^lBPk43dvLeB|;5qi(`>=B2Q1mDJ90%U7>h0HbfBva^)+; zu1gQ*4~+t&Kd~5SLL&hfD)KSpC5u8cqUh|wKl{TlVTBa|3|(|u2*&&)&D=IXOm@=Y zY;sFM3KC+HuLpp;Yg_rdjEFYsaEG8osZr%|;J8r;C08h4YNJKcc~Y>S3xzN__|o@D z!S)C!j&#I4(g7GxF1WeqHD*RL0RLDeF<$)I>SqJqtBGGBYQVa;0}-A}?YAY*k*y() zhkSS+#+z}SZ&A?OTN|taqo$X!e=G4`Nv0xk=cCK&knBUY(Ikx?H}tS1nkW-&Ev`#mcV21i(y_= z_^X!PBkG+0<1D2RD6zg{NaB-R?=EMx#lMV%Hrr-Q<=flXt&APM(_>7hk;`aPdwikKB^5FKVz$uWwl}SA(IgLZHFpvy8Va zJ`|UaLP`GJq^s-iG1MpO-FX~h&57326twur^_j%jh8{*sLcI?(xG-T?_qrz5cHphM*?i2@;n=3dX!zbgU56aXIpp>8L(Klc{;z;*Xh$pYPZVkt zgxJj(?W8irWMY`mXnLaIGbjf%+~(}8gkOT}yGaE)hx%ayp|FOt-GB%<42xlZ(-oK` z25=2BL2ZlBe!h(+4Q2pV58R+6f(kR?%K&ZSwi>4JgBD+>XkFeSxao=zueE^)DF8^G zVWGGFbb zyOz3hD0TnY2$9FARn;a|YTdt#n?6S*Z^Vnu?D`1}zK>1HR|frH^d!n>{K}iVxLju2 zsyKSQ_yKwCNUOb313sYKgtD3Bz7&crs-(QO{LF4hZ!*jk``er>7DmqCp4zhv zdOf+J>f+23d9;F^SVoUBBKXIuZPGmtm>Ku~je-yDIg*AX{H(#`Rj)2V0+LBlg&^&K z8fFT#9mMJot0QVTX-TKo>zsjR-sitP{Fx8Bt^C3y%YDl*>xz$* zoL^P{Zl0fvzJ^|0E=vs*DDLfSU{7g!>3S+UdtFW)`w)FE-#7Suc_}TXguDFf+=}J> zk6cG*@J9sY%XlS>iR@%4vFiw-PW>`h{i-BLz%hOB23VleC3*MR!yBt*_Oucr4F$&m zKKC?@0eTA0XgMW*x+9Z#r+qFTF}i?T5@}CW;fxg!-IxevLXjp4KeWc?eNC{GJxPkA zvTMGWVWy(RT$L;U0Tzu)UQ4AxYSd3yY&I@44FK{Zizz(RiCgN|#aT4Yfls1I4em>L zIBbZ++Y==LTp+*C?(10@wW}l)L7koP0R)fMg%}!v&t-sdG{8I*I~fJ7bYR6i>054v zRl`~9&0vOAy>HI7S2C!y`!~~U1LvU1Q(E5Q4PnVj| zAo^DTx;AF3%LfYpUTKeaSK|oH+_-s13NWe2wAnnF6nk#BY5tDP>rm94X)2 z2Nxpv4Wam@qa~}p)UFpAWTw&$YFH@X6-B~}dBFN{T!F&ZbC9@H2d~l@I(tg<_Ls^> zoZXWyDWh(QyGoY{{cw7C{TOj$BD}GobOmxNeL^kY+8!wq98W21h`!K1)w*<Rd1K={cT%^LM>fu5GT*Q{Ijf9Q$Vd=vX4jW@}5;Ov(E(8oqEX77*owOu|;Dn6; zU^RgI45F=GG9kuHV(fPGms+VVGnM{Wj+Ctj9h))s0#`?dj3px5@v6KFLCa=|bKz`v zvD8u^wIT%DaIPHr(8KPNsIU5CYosdsIRj$M{?xkfXiweyIUYJGlZ(0dFw_f`coOQI z8LnPJ%=7-+u3Zv`2FaPStCvp(9`%%7%f8F*yE8?N**{z6AOI&v%9!fQhCU)M(Og?Z zrjM7}C@_4Ejc;7P!});dGZNy-}T(d9Xwxq|uF(lbRRv8k4@^dMVTZfPBJf#leceV6Ou zh685!TiIY~GCy{SmLtRWs3;1^Od$zP#EcuCQaQJUa%DfQ(R^_+wh!R)P-=rg{Vl=p z5V{iQL6aEZ-#9fcfCd?2$w6$w(@HzupwuxAz$hg1gphQY!QtYkp9A8M2y2PVbfUn^ znqgRJ==9S|X=*SovKY(8PFHIAk$`oNEYM(}@5G^DU0sepfH&NYyfRl^u zV^M->Lx~?l;!0|zY=9OT>|Yf<(;1%*8Mhi?y&SQ0RAxwL&d6+I(XQ8I-c~hZ?p-)L zg+ZPUJ;bqPVO!7)k?eo`FKCx)*xQz`tOoGTVF_EEm-FCcVAfJKydEh{Bu*C4&oAP1 zP{fA;9<&GnY;>{(#l*l3*jR?-tG32qAA5JnHgif$X^=PY)FkRm60dY(ORs)m=ZwM9 zj21LSflq7j6D`IsYcAWsjcU}DilNH5_RE4+l;^i&lI7O9W(Fgom)OTyk^SI>F6#}1vz7p3d@ESc_(2S-z z%dx}w(=Fr6%xs=ZICh> zW}i5B*GdT5aj|wKpd;7OtJ?qm^C>Tpd#;KlT?eGr!#!jd%E;iH+C?%8U5_OXV6kP6 z$D=Kp=j`1X>L8F<8OlArBXtLut_&e)DcWWg={TuSVkMH;6iR>Am7B8x_e9C)91C}i z1S5_e3dc-BFm4R#$=bj-j?#_-jG-U7Yv?{kv6LZ_j5Y%I5Jlo<&=^`Y(G@PbP-)A4O5zt|?3 zXi#O|a`&@7^Oae=*nHcIL`(pRb18$o*(EeCdav>bRVAY|V(l-0@uQN+aV*x$fB=`w zOO)wDrg{=Cn7aUG0OC9ALXfc7i$mZ5fXf416vxiA*IvR07x>V4 zQ|~~Wry9ot{oog71;tVGgh&(&Zw9H<2*gB+yL4!ViK|#-A zF3&CzLX8_s!g&Ayuy;6yW|AeqFfd(QWnLTWDGqSG%kx%Auxr4lS1}XCL{9~t;4H0b zhGCt=ScJD32MNRSH9|C-)_@bCInL;;czA6?>G}qE*+etEy=qITb63R?v$z74vtAl1 zvL|+7x6DVK8Iqs|ES-Sz8E7Je^(LUf`bOe7CY-175BH$Zpv7!imDA2CG)cnv&Rosn z<%#&DOnJi?apkz-B05*AJD1f}zdx)rr%%2=0>AYHOd2j-gTQ$|C(ZKeE)pr?OyRX$ zMJ51uomLnFaCCX;$}U3QSGYjD=-fdY@^F)kCr?vE1~zbXmpoTh z+R$H8)Qn#Hmc6m@T+C1Wn&y$^&$nHvKPqi4)tojyaIkx|qG@^cNP1!C#t?)3TiSCG zpM@-049FWwN{fWX5`y1CrpwuDaK=O;oTrJ|yYtRd+}&#<<9TKowaJK;C zF+9hqdG@vV*)2ocYp%@QQG5S$+V%;WjFSUi2%&sjzP;ZZdo2)k;of`B!hn7;l%trv zC$F5$I@uR4wY&|ooUv1AbDU^0H=(3F6gAiDCholSZkUTncipi;Y9ri!ayGCxl{!L- z^Bc;$_WBNoC$%J8GynG`M~s=lBL730({A6>_hzN7Wq9!J%g-Hq_TT3HX$sbfCHUnh z%ygK}p;#+x>^0B9hqKSlU5Ve7|$oEW(m??ZwV~gK$-jnB=2z)NgeZOF3sR;$N%_W z#-=%wtM@wPJa~3_-_jC@&j6-2lmKkhsq7oQfURg|PIWF_+&qKBt_kEGUeyOgD3~_m z7(TGTgXVx0g+vZF2C!w6@zrso(j;d*CGsrf4EjGq%^Ptk0Vu_AoK9SeBgi84s~2&B zMdPbuZP)?MfL+%+vcld&FJ&kF>+M-Z?E@?xNRnp)-ma%Gqwj2(YrF{(GVQ{WqsT|Y zYZ3rMvs%gO*2wYIOSr{LaW$oLA9tLs;_CkS4L+LJwV*FTHc1RxDkKNZWY*1+Kr8It z?b5r=68eM~{6w#|odSvxnQ=}p@Cg+(d0+dN^-Jp zBB?~BMIS9N=RGQ00GX$k^ApV#inkguiy8_EcajAd{iTms5%FYaZ$r7}96L({37rgV= z##c}9siP&elg*69zmlAfRTSf;)%f0N=w@-zQbeK@z-LyX>wn1CH2y<3?M^<$5!K4C;nMDe-kQxd}@gij=&v1vRktVyX<3A?0$SM zxsp3qsp3nEyJ_O2H6vX0TX-*&lgm<_3k7dM^yTA7emL9(W+0yk`5iNvxZv9UKE8^q zvxa&IFSc~P1FhmsofFMMXPZ?aU17)bP{JKg%S*ogXjmuB+lpWId9S92W|e$|@u1Ij?4mkhstizN-my=ruAuoALm7s;%Af%scgV#ZaEZ$S#}UOgbZU0ld%KGmUoY z{+DAUcJ$t=immN9Wku$PN*{Lkx!9&$6C@lptF`oYn6`Do#F`;_%Przp^2_e$f(<#Z zd`({Qh`BiFa^?5t+6ac5Uz&HuymjaDUARS6^A~DlX1Qy;OH^ zf8VkPN8=(=8XWfkO)o|tM_AUx?xI58$95N+Q3NlFEu$ENAdZ3V2U(L)P3fbW`5|8lls=?%~ z*4@Kt+h-^FJIph&@UN-lP4#ywoz2fUvfI*jUCs8(3#&QI9JU(9yW;gPtA?70O=fpX1s=FZdnN=V`}JKJOKW zJSXYl>ucqSXZXq{?TQ;~y8Gk@Ynv{gxe@W+U#!J`%{bOR9_7Y40KZ&x=0IVtoBBHa zot4^bX8$O?wRxL&XD0`4d3QZa+~a;btFfk?wyG&PERy^)?U;2c5DQ4^BrL{9bRVl%HQX!8B3`!Ag9WlaA4?HU$Q z43?O8yZh~2{rcn1hIKL3;+HvJY?}3+X2H#a^|pr!FP2e{7v8U!GAepCse2=W1C`Q~ z3gx?NelIKYZLbX1?hO9n_b9O~>#vjN2d;cLb9>2olS!$G31DtjG=25zI1}4}1Vl1r zr0w>`5;N5LklZXv7u}L1Hl|%0dl*B7zdcDkeC?m-`7f{i`%-3ief;&#W!JyIt3CW@ zJcM9h{NwL7yBoj0KD=>__UXyt8-IR&y|L-v@!M1sLlaIA$ERa{+(RFjh4d3AdtLEY zi#L_AaoTvTaf%@#-Ot7cI`jV&DrM*^HfV@lO_;5x6$g5{UCD!R9zz{rQIy?}ld6jUe2z*!(NR4X1$b_~ zbt1how7SRJkiU1Cn{_rbq<3tK_a&>jqUeeIy$^e~`E9v1chxH61Gh|93<&qm?O5%3 zD6a2CNu7Xk{c~Qy_o6#@LagpZ+rOjgH5Rkm2mu;gB0*xz(uIPq zYA_yg4Vk2X@IO$LNc%>^3?ukq63h=J1WzIM?3Q8Ai?Ei#C-D)zug<@r zxz|sEaHsBqtfoG|CatC(KFY=|bq?LQSc$=02FQ!Vp!vR4QqOW-yJ>jN8snw?ZPxb+xj`+1JH_5|LoQ* z@drCyUx`s?&Gv$EDYW$g8fbf9`%0e1@_N_I)t&b%@cFNSE<{Y-@g^SgMa0#BtjMM<=(#4(w#o*4)+;SuLSZ4YiLTXxLqe9ZFM&q?Ws?*MN} zu93gBaTri@+2_T5k=ceL!x4VwsE!p}1}<2ccKpSrf-)25Q-&c?2dWu+v_l)M4b=BJpGRts3XD>HW_C+Pc_%fE!I*5$PO4cmsrH{d^`*601zi zOhsmhjvy}V-xA7vYBh-r**0j&ul9n>KD~5GbF%R?^fcy(0UT)dWSNOjo~N$DcuWYI zcA-$VifU9;i>K-FkRo~8a#gC;w?14zJ%4-hsLVz?+R5u1oFIjK++!gCG!9TQ`d}5G zy5_(RONe7^)>3l;M8gRMpABEMUYUq_D8Adn=;H2F>{>P7KlA>RxD&G=qVN0}6*Z&` z7M9r&8R7N#J~g+jZAO=D8ttXeNUI;+ERcY;`D|cIF}}rEPkNXip^ZBy)Xy>0yEybJ zPv#Xi&yOA&q{n&)v0m)9-LU}ITj*7_)o*CPPZjC|34I=gausc+P^h;)lqq9;D ztuqXwTT7cqHg<3bJ8eveag=e(_Xex5pF2zgR4+=5um~`qn30y zt{4Ib>(NJjQqF)Vp;5|`b4x*)~0zuXj> z>vE;T&^uvBf6W8Ji3E*#kLI`y+IR~%^F7Rru!m9ndM)yr(ynRVNH=Z|v(g_SvBF*A zQZ{oPCQRF*^zwGH24SRWNd=tX;SysueeXb+g317c>uR z1-n}Pb@xpfhZubrxJCQpBmZtVpFqG6hcS-7KzhGaWH{3qlf<+mNwXAWW$QKrQ^`ST z+z=Deu6d_$1Re%6{+J28h$%*Zenku-aaV*eX!C&s26Itj)Q7Rs@h7^UN-0BH!ywW< zQDfJm#f?b%o-VOR4#2~$mT60DRlthmdgmg^)ZY0RB@(|4aToQ!aA`FPlDa7o|Is+J zDy)EPD=(G|+Mtv^jAh@k{pELvYUFV_f3<Dm z%b-ZaSA;_GZH0VoP~Ra>p77JRkg#$_K>1z_3)o_h1MRYA_js#i0{3`dLG5)~rDT zLa!Nm4RAn9;u!>n-Vv5zRYYPUN~N>3BaITPc>ccLR|bxl4oFPKvqIh=G1>o*BaW1q zR5?%paKbPXGjPE179-hV64N0KJ+XFOFF*n$zUgF>v~6@2U)P^x+NdG6Xbh8mlG_MV zr(vX#&HIy>jUY3OA7aA4WAKO>T9Y1mb1iv`5viS zdt)E}@`+A!Ze!2gXo?%vga$spK5O%kfh5+_MEw6qVn{3T)mrEP5;v9Wss-tdH#|R5 z>OhI9mZmD-s2b^FXm=#W>u9I0Kh`{63J&HDnDqm7i4x-mYZLU2xp!l0oR&HMffP0s z6Xhv8XGlP)v1F>k((A6V`EBA!t&h@vaCQL;RL$6-X`gm&k zEvEt9@`0gBKn3KSI*^nHTCxv(bzgjYFXGS$wj1&BjwlsrwP9%dtC8H+5PZ-7BZ>Q3 zfvUxJEfPf)kibEyL*TUIC6qa>ZbO}>L!d(<0qn8Bi23GkJ9BKe0UC*`34&9F0M!UX z(fVsgtErA}!`7^NCbbtKwtYat4s;6g7dYH%uXtfv9lAZ>#nCweOgrLUjvBSwlvZih z+_hn|3~7T_PCEdg+W+aqe0;X%?!n69p=0_Ig^^gB4vKDG32U=OwN>t5gZ520PUfmH zb<^y(*$N?=86p%b&`=R%?ZwauUzNlsZ4bFvrWmmGVuc2TwN>12o2rrRC{cU{Z*S@l zMYXdu$w)=;7K|Q4q%U3{fw5FdZ3zIgnZ^8N-TFxKJ@aokEX1)0+?Ar(b@!#-9Qe;B z7G`=eLZ^#erXw;hH^~foXbC?&m?aE2CF3$QK0)uN7RYJ=ufLaY>|VBUA*&NCbcR7g z)|3T1$~?wpwZCi$lVml;va$eIA7SXUUoziED!>0j6SufvehFt7DAcgf;6@pHgX=W! z6I|yh0Z5w{i(OZV4d_El#tgsGI<4{ei9Q*(Uv}~BaX;q*uij8kQRv}M7%l^Qa4^(! z1C|>mn*hY{PZ%f(=pXcJV@=)tbJad|Nqf+-vLRzZ`}CL zIZS1`af6!S#yzqEHN!H)QJGnRnwnZ-nVDK0z*UaWtjzipj?6Zdn(gDrw24hyhBmZK zW@TmZobU7dJ^%3Efj{7!>*l_%>-Bb9xb!i1_Ib&Jdtv$yxR5;Dn0(3`3N`D|>A3^Y zInG8ZSK9+V_ZJ^G3@kM{WO!9nI-ds`k{!T8i7;zX*4s|!l>K-#T;Gt{(0R{Af@C2U zf==7g-FNGG5O-EQ;Al;=xvl`ReeO$Oe{jYE$h7D1FUug8o=3l;c>XO?Z2dNZrxYv% zUD5Lb`kj$o-+iJwZ#)9Rf4604x*Hrv;^*GMIm4Jh?rcLeeu_K83ox8QyyOxr2YC7y zfw+Jv+#P5k%bOGIOGlbkVE+9IUKdIv_??Dim(^N8HH4t-Tm0TKDB(+3dgx*ARwBZ1+`Kw`)wd zR-f(^V6ifwV}?iHt#j=3z|?L}=9JD43`Y^{slf!sC<1ye#tqI0z+z?}FALnS_Wjs3 zV`2#GlPTU~no7Gbn+FSCbaS;`Im1>uFvjN+hQkil^*~+kU}6`>7c29Q>EI26D;i7Z5waSFPF%oX>e*Ik|lO z5IDAG%VBWHsYzpQlSmhW{BomXKSTE`S9lZn+1A-CA>>$p5< zx@V;yt6J92oj$L!FIG07Q;jt`(bDIR>EC5$StVfkzv-h}S<5W?2SRS#FrF80Wzndr z&?`@9ZS@ge@GOw;hAT%U`0dXKQRr^jJC?q7>hNJME`ton+A9nLj2HEc?n z=BIw;on}y^H>s$A5r;mVxRNR>*@Mg|aTAH_ek@_-O(UHi&gD>kwujM>Ds5+O$cCsZ z2Fzf??Snxu(x%I)FTA+cohQdUbOb8A8d@~4&m*O(f_%geslYbKZML_H?*p>6?D6JO z@;w_a2HWKz?I9~TV)HeZo-|vp(`1E}?f3b6;u$SB)+|B&_(SBhYVDw<$PWGafgOQuO9+<@snLmnb6HnW1 zkzf5};Eum`cvLFB)W2wP=EsH|Y~E~ts^GkGl8Q&R@4mP=?!1U&&5t&56;+R$Tx1eRB@p5$j>2< zGnM&ePR$)UU~js8zUZRq^xsKGODY52V}2J~O1u(Wp9kacOyG9MgLP$S8|(RWA75Ks z%Hrfym9HukncMfyAzSvPF0&AtKNE)fUs0uIJrF&)r|R{;!r6F+jaY-Ge6B8cqtvU3 zc}>ipV|8ywS@vsNmT6d6M0NEpFFVuF)Uf&0yq#M!BBpEm!UWa4nqAJ**paLILL>Bd z9?5>=Br=`9^iK8ew$?W;S$pR%|6ILCdpUa=>*4i_20m`NPiL$kR_(nt{8a@%dL}fu zdVQu%)ZH!D*4zJ+p1+mhxO3l&iMPI;rV&|{JNLiwI!xSf{gTMzR4v{{<^7+|-NdeM zE)x?6XFiiHe0S}B#nWFx9Ui_*)ab>I$JQ>-^g{`WnW%iuQ}kkt8#%zH+tJsLGz4j z?|xL)O}wx}zbtbMx3-tcwf(syL;tP4iuEGHDS{dhS1u%de5 zv-^WP6(G6LLQ#08_rm?n;VGxPp{3*Jv6j2om|Zs4jT~12Y;l>c4ufDQ&az!Qyv=$& z6mzn-)4`C3VxP;U5p&{aePJ zS#9L`^ahV-FxI+;x_8MS7&mbK_8IB#jh!>lJxC5_$V<>=69upv+d6Bh46;8dk|~nXg*|yS=VI(>^J6E>xv`b5NY|sqJyD zQ_BE_O&gIbSu&wz0DV;DQC8uWYJX`H~Hv{Up2v$GY(7vRFnM#{qV8E9{~70;hpUkZ(lSe)no zA_NF3=aS7Y?swn;W?An6WSIVPj?6$P$1rPoOdcb^NC@M7I)rQH2_&^Tf{Glz5HeGN z7&|pgaIPni&~!OFF{mq0TMMrufu$l!vLe{*IUWDMZOr9LjAfr@u9s@KeCyFeNGg5W zM$Uc54|=EF`km~O8{{Rk9_*UYgq@1dUh=r2{V)^{{MvVAxN;?sX!@Jq`*ugY6HZ$w zv${2j^AOJ|Urs-2lWv0FH5EzDj%|!s{Wa7h$Gt-Ar#9(l{_(vsP?4&#G@FXO?!E=2 z*sT^aKJ@*aUA%+(=GZHfTige6{~{?utgQt$wFGSnCvTm=Fs>ojz=qSC5=yu5kN)I9 zpCdPB{B2;|R4M~ik^=@bjO8_Tprl>&t#)`Z6<8)cWiHJ`LyOFnIPgQ0Ia9u@Yt^?$ z!=`<#vMEtyuN&raJ>X3TXDZEiGj&oC=8E1_*W?xBhce#x<>(8O3zH~f7^nMc-R>sb z^ki{vPtKL2(R4pq|`?OU}tW)cxzgovqp-ysKxfoT;|!TNwKlK-dGf$xLgUJL#_$B+ikcN|%pi>!FdK@(;T zH|uS@cO>^wf8E=l1s%f9{fVP}!Q@b;A61PR5^j3yfX}E$54-_CwH-PzyN;^0^)ZXXGq9uxJ@H-U7YCB!=&xkmZ_s~IB?v;hNqXnG{LJe>sWd>8Z5@t7xK2dbOBg13Auxb<=1mw zkBp|l#4au=S7@WJUhA0kjy;O&$eHa9kbmc zlR6qBr`~J~WVE`Ojul!?R3gd4Z)0RYAeR=xrJcO_A9@C$alvM=Xu7UI&l>&X3xF6I zN!W=Qx&1$F64EmL+7I6eQIE%Ox2^=uPD&UJBGVgpEo}tLYr*gOTVN%{kVj5g zU8?`A7G2kUZPl^E`rfeBIFB*T11HC)?(O(Cn90u-U2kPs4f3YmqZs3`>6U4rO5_<) zZdubAzlFzpK{YFIwk~H`H+5RxJH_}oY?U)?a+GIQ+&SZX=dVGLNv+6aWZ1f}-m)~q z0`JKkKKpxwXW7w-<|JDOd6`b|%#LPSTi|tEQwY6k8!5tEhY;@x@h5??asYqfEv^(M zBxw=KEiO4xotO#}-%BU9W zb_1jwgp!`1OHK$s1rQ$@CZvw=8x`11BaZ8k{91&VhUm}%LJl|lgiTCh3dMNWts1ps zK-`gLI{?A$A*xf=KWv*9mwy){~K5PNg&{ zmdMn=qZ(pf@uC;Wc9k^*71#OFcaeRc4mm+;HR7a=i4qC<^R?egYVjyrO}bLEyevEF zb_{5iwZL~#cpDUX9S~eSb7FT^Zk_uHX^VG8C--C3*>D7FGfZplwx;PmMv36AD$H9Z z?_L#lOz6?~e|_L29$C11y6rGU2+j=3X*Yh&MR8zmP9RqD7O4l))@|zRcAyDa&w|O0 zfX$wp`2XR+aGN0Zg~VqwgxMPN$} zUd5%zvr_}nSP`0M_dg=IL8}JUi&eOHJ#JW@xP{#UyJ}|f?5^G*5nYr1(PfuuBywf^|WhOAhY&Nhe?6f@E>9#}k z*MkmDg6K_Wb_EO>U@-(q7Ef6d+eMa$$XqV^aiLy|D#5)Hm)_2qE^l&1&(1o=iX$tm z>gv%mBXd08`nRXWz2QHw#QG`kHwpzuK$d4ZJ^rz{rf*E%mV4sAnLKsfvag_|{zHRT^@@b>x6lj@&pnu2A9(1~0uK#(op22-!*@H8E%`$Bsw%iU{SM$uqSaHth z>_X@A&o|?Xvl%H0UF--T7V?(>U^N&26k#{PxE_1r(8q;E3A#C4sRcwlDQr}=+9SQ> zS~b4fYuV_7b#KB+IZ(`;uYBu~+dUAmqgQZDiJz4k`%p-Hy@B-n0nuXDu6~I0|3Kgs z|Dk*fRB;a>=L*R~^6AB=r{^kmy;wxL#ncg=u6-t4aGFV6*J7h&E?6(L>*B7b7%i*# zZ2LP#r*tp6c@`G=%eEO{5KhGI_)d;zQjRJHN;gd-0~t@%>1wU_f<}0?;V)uO#xjD@ zatUy`RgE9V@BGip);T%qE^|%udp-?t+<$)hiUFPQUY!^l-5dB7hlGUvih0)oLOHDe zVg51^6Q2S!uIAbo-*Kkd91UG0h4@vw5S>}SSCvy2+}>^)M#&X+e;HB)R`cfHBV1v*jz8(rhJaEGS zD#Ta-lIyT3q8wm|sV|hM)i9Y%%KBq|qWZe^?oP%?Ct6}mpR!Q(cX3yz6{;C>gcd}u zS&pdNvFp+?x*;dB1mJvTvmfj*YTja;s7ZWKOQ`S!Bk=>CBk{n=gnN#66oRNLp?M7et5 zdM%(+gRES+d@Qu#X{MT$qh=+wiHQ#d`xI15|EBB6kk0EpybZcrmJaTDpm+8O!R^U3 zpCCcHjm`LS-7S2@U4Kg7N4rZNO{h2z1H@bF!V#7Qb-eH`?#{s@b^Dg0dTC|4Ce=9 zj^|-*So#IFx_(^a{o@XY4nsl6SDYez;!D;k1*@1lY95r}l|ZaxR^B)$RdF%)!jD%Z zy1i7_PLWQA+IkBNiR&p|TxbFvf`KnG7ntMHU-oWT-}?z_&D1rt=-5NvixcbEIKqj{ zeJza4&x%sLpdF2+L@Ga|zQov6E=}rWtp|$OhBD&*-%&wTG{1(BEB(#v1hB$PZxWE` zQlc7h)Yt1Df37>1uX(zNWa4honskF-@C^T@)^n?=fwo|#&yMFEnVKJecP4j#TC`a^ zaXvr!yRbb)^L({AvE${r)v^z(yaQ=g9&275#a)pbA6k+4{ldGVJzuO{SM|Rgt~>hC zDx~Sz0ZZAr+iTkLwEsF~&BvdCc|Gb?!KSwv9-XT%H1Y(Vr@FiHY2W= zEc5y$G7r&Q7w!0QNN-woV(DpHJ!>n@97)Z|E_8e7()F!;Z>Os{cf7u`I(_P;_)dgvk0ZKb428;e@bkkKxs(qNY_| z??TKM@J|=(B^SSMHZ}-#@2$(Kiwtd z%#c4e00~{q0|b}v#`_;!`T03r3=!Spm0h~p>m+5j>73`B?yuDCHRc~f%TGnG6(6ta z)2kw{>1odvn&*y=r1*2>vw%kZC0n$ z-TYY|qvrG1dc3LI@$Xmv&Xl3^qkE%ItKTaQ#;B~z4n`{jF`{o3ksgf5o+1ZBmhsB+#uDzsfviI!ocMdqc_4Ds~;N=ozy2sa=mX9xi z$ZcFq-94BZt|pLLc-n{S3N2e#xkmTjT=9E+4?=F{l!V<%FpDlc7+-r)?&Fz!(rM+L z@@B8YVYk!XX6|`3^@O~4DI7a5T6Skj=ymQLXI-+v%3-@V{*U|bD(7=`3}&}i}X`@fnq-# z&nVfe`4_jI_2$U$T6_5)XL%4V76WzcSweQ9|Cgi!4EctY9I|nyS+1?=6&|i`b0T0y z=lY2yV0pH!`AamqYNDzlxgz=K#J&$*x3<-IqtzYUtP7!eaWrY7`7@-?m&0MyZn8CJ zD9rpgO7my$8@=^@h5Gb-tq~_-goKXczSTAHYkGXZv!4im3(LxmxrnTT1Uj20Bnxiq zs?$)D>}-zH@=I$lXD6MIO{0oo0KMTs&DXG<<5mVo?JAo{!Ofz18t2?(D@ALV3w} z10q@5=c;>u!@-~B3#&)gAN7i_KjoZkCS8_+&m37#S)x(S@C%^ z!M8I&XDkN_*xvvIF+h{>c?}uaEWqmocbAA)tQW7b6P02uEJT1oAq(5ioC7*?OX&L( zsF|v6^9&J*Q`(7T(Tgs00ja#J^=L+Y_g_aqs>iSaONWr9ySj>IdF?V}F?f-Nno+uZ zB;K|UbHTZ`M6vhRjV9$BKq$d`64ccBEuIc^0XU1)07O2L<*a{_Minz@EiMSLz-3Hd z3owD!SPaom2}WALB#XWx*TD-5pi-Dx(IO<;RFzCLh{(Q!o%Fo$rmQ^@LaMNv5>ZrW z+Crk3GCQ%(T!0-egr=$2;>}=?EkN)lNZHjy*l2TLx5=-`UXR@R9jme3jCTq|bT4v; zf4B=sfx8QDa6-EdRek@B|7m(N zmkc%6muHX3EFMiR$lTdLdkH66m~e_c+V4@$8)(dW{dzqweXUu;?$(+hFXjfQCB<3r z3sc$VVh*BgE4n$;y0ibcXM#BuTW;&P7gsWSH*ZJt%H`+wY6GFXMsk|k6=U!`{r$hcZ*BTqu$6Z47rN71oUtV1KV-4zP zr;$Bv8KuEDmuy?HGbZ1wRdDgnLc~lZ#+rmCb&gzJ`Hisa2&Q8gaQ$XUr>dtNd;jp) z&ytREBgpUHS5d#IgB=E@S*4rjq*pd0#x%qb0TUo_h*U%kErS^^< z*jG8glM>k11519iWi=1R21y1mTi=yz?U^nyJH5qpcx!HSzIMO{M#r(qV^Rk{i3?Fe zZNXVj7EB&q(rtp@`hB53-fjGhz6B7C5t7n=;F{?8O#mJXLvOjdi+8zwTdxZWfGQZj zqIPZ^0#>N-_Dm=r@Y)3E2Ps$iMMCkMn60V>P2!YPn3N5WLM3hwPb+AH=B@>&?1(-~te%1T{A+?GQRPWYvSCDSDgGvAo0PE)fKpq0N$%({8R15B! z4`=WJ093)8-2|6qzrlLav0ANYvrR&xr+lp|J!y#&dJo~qTyQ>2dMTh#ab7>UZ%#Mlc!5go|W;BpiOmPd$(nONO7xN~Y;bWz07HmtQK)#EYcx{$m| zLc6XcT~(1&hmD`hDQG6xkeV`~Bpue%dkT=dVBbMG`7%sd&ssSpCnJDWkI>?`n4xo+ z_EkxmkfU5Ety@Vh*aH}H$d5Io&vKIim`amSuOQ?pjZcyuc|=8duOe^1PQxL)wH;z$ zKuNj?R85T3Tvkwyl*oHILfRAR%_4A2OyYD?J2^((n%z^X+DG&%pTo4rV#uur6yp9hdH5=g{RiPYAI1)3n1g&Us*pp(Jbl z`Z$$ss5-b^f12+Z=8-N(pHMqbrgdI5elF@cbUB`G(9^!M2}Zfy3@QF*g7viftOW^p zOEcCIISb>#j#FcaOk9Ez7mVBraS0m%Hx|2vN%3|Y zaaCf$sG3NmV>WRJvzWR88hk1YZHA#UOuUVT;LIb~asUgxMfPwRL4j#fu5Q=I^w$B6 z^P=tPQ7lEZX;pOwo}gc~SP#T$;}M+u9sojc?M$Mo7k3yTiiD(id9_Rdpxo}^SbRHL ztvLi^CBahV{8mnsBS$XKF$(p%CV3ej<#rW>!wOP^T+dEGDp^eWo=4@BKme0uC!qT8 zD$iHMy`D&ZTnnIwTIHH>`n`(N>kjDr&d*RoF#>-#ffK6jnwx<4Rrr_xSKFlsDEf*W zW=!xQCsV+bW5ae`RZ>yEmi&&2$k(IV?#yUYdk(2eNO+z{Tp0^((p0&7d*vb9;AR3S z)=j1Z`6z8F0Gl`@D<(1VLz1~z*G8!C_seh<6AJA2!XdOCr0yD>auXn5qtoy_ik3b= z>*r8n8flm5yYz;45!JLVW$gf+`cO{!i;z)nx8O9XOF-5rOj90HzN+MZ)zplo*gnIG=?W;om0;YB|$#(^Q>?|637&;|yP1|JkP)^?FKslFQli5hS1el^h)rbGc zF9Mr%lzaa>LLU1{+E5SdyG|~=N$UeBUzwD9g6y9P+M0gKEfpzt6Xl~yJ_eHyqBCqN z@=qq3>Q#GLNO=d4TaHk>pIy4lC0`QI?y2PSx%LqPOv!lD{f$_#&cWfRhcU#~g_$uz ztP=<8$pOOWVHroUqe~CylCkr|xInIbh`K3Mi5Xjp|K-lsK91T#PGhAaL5^HpoCZ=< zWA2Y)odGP`s~-^{nJd8f3oxq`Gx-?@E|y@UIG9ZraIPF&x)LG+Y#jH{YNR4jjyd6h z8GDCuXE%gbhuGc1;P_n*0d`yf?d`(yGw_f7G2U|HbY1n)V3KcM2V(|ZCcbTq_OcbGX#q&ONj@V|6_;CDwr-lNw zi-{GYITP^|o1v=k64}M?FT|`w1g;T7C_i&1fva>hj=5HS>jnYvX888bWK<3UD&NZ&4I&~r{?a2 z3R92ji=eYPz+Xq~G2K&V#V9**V%gghM(UJZK9I2?idvUqzT61xdLUe1M1a!T+DQkL>) zkeGUKJHB0A`dMb!najHX>#|dnO&SnocTTf*_e_DTtJc^>^i++f-(_;6ANKLpB^R9}v*42`IhqC|gFUUp7!Kiffjire2ks z97w3?UA36vBv%p2G zrh@@nTpIg5#b{?Hw!#1#Uw&|J)E0Ma@6|?Zzw_Jn>H{y%Th9%2e33fcUo-c8vCZQB z*g%z^oAR2!7|`y;#5wlvI@@J=TygKQeVik1%}DP;1Y@XwC>&Pok{yVEuX7d5VCC4W zrOt48!^2CML;-y8B#P;B7s)Z)!M+{)ot(;Cme6s8ylYhrGns*QJf*#t;B7J$94?JF12ofM^wku71h^>LL041M zs>h$VJ9vRP1@InH7Dkt-hJaR1oYqPeP-C`)S0b%_%Y=6djXdtNFgt94Mw^ z?1A<5K5fVU^NDS_=kb#=fDC7yCST`VJ@&!)hVY{DG^Jm2rEBw^+;_Bx%Gz6M+JG1w z5>kjq$j>=b{qzez1$Fn3-IE&1FZu8xf7+z?)pe_bh&tx|9IYeu+1s)`&tdc7mo<|V z`rVE>w(XTm&tY{9?FZY*|DE3a>nQlD?bJ(U?$vS2(&Ept?S(2Rk#zuzj{aPOZ4Kq36oOB;z#)15$N+mj;hgE!q>l zjC?wFIQ+SpP3V4dr$%{cL}IEU(%;rkA+Z-TpQiyQb!Wyz8->v17?5I#0pf zK);$?PS?5D^L?df$-a!?Pf0kbgXjL*y;Z$om6*A@qnzsQxm`ZdQjJyPs-K^oB4BLg zy`?(k(9$&L>nB2Vf7sqwEqA}0SiXE3x1l3aZSSYY>}`===sw9QCwLj&8&O*12)c2% zbL9zmTdE*I*A@Tbz2%76f%7(C{dSj#{i>bt`&D*`k68R^Z7U8 zv2ZT4Tp`uHUOIT(?M+WNr{hiwpAFi>noqjzc9$B8y$3yHB~Vjo5bEe1gMuAyZ2z$R zP61N^7u}1AmVjx?zTGZTg$QBYA-`|NZdi8(;FrM^-U%3pQNT~LITAxZI#Y2cRMCei zir#IiOvsW_Yy+=WmQt5F*LH00H8Uv$ri8Z{BfE!Cy+;Bv+gHw=z0tbGOhM(}n55$OC! zX;QG(hI>0P3|vHv)n@=vbLc7&x?6lcSQb2B*Nw&O4mUU}aZ=engs@D%+mMRe-OZ+^ zCeCpb%#-Olkkzz=MHD|KhWwishS{>6PLMc>S)==G9=R}+u;jsBo3$YkOpDEz-i03A zYJ87yFu#@8y#Uwar(T*x(?|@L@w4nAaBsuEKaa+;Fc17+s%n;H;!J-48P^u^RTA_R z^Y%;wjs3xbDbvII(ogc(O$Wc6S6fq#pTAz0xw{oVmOl0)dH?2^-Sf=1(qk`v+M2fF zS>5K}Z{ODS>1@1c-PgIPzpkJwa>nN?51%*JuTz9X5jb<#M!k zi6R+GSC@RtqN|>nb@x9Z989xWIcB{rz~n&f&J|miea^Ib$~Rw2?Z8{C{h{|Svryb@ zF?xRCmlgZc*L_ajH*}kWp?E$54*zwc$2OjM;26R0_pUi^qxQL>u=zK&d{`G>`*Meh zGrM8=@q~ZBs+Ix#;=w0)pUBu?$h8=U4e8vvx=$GNNPgM}d8=!*Utzkt<|=+Mo}!MG z8Ji8_O&lGHzwku==!&9AQ73Tc2$f;1-^DH$c!x|@O>GG&@>bM)@G~%f6Ka__OFc>$ zf4=D>AIUULzo4wm!J(qsZ9CzAwZrkA=$yP8GYqRs?Au9mW}- z%nVyVex+?eI&G6fWrAA~l&N#Y099W0KL6nFgpNaAXoj~Z0|PxsnO!8-qpYnJnvXxe ziixY*{F*IWrVH~iCnbXRO$-K6;plhh$b!=aI~!6r-Q?*}_N0C(^w>Ym1}zzp@+k)DhBBh``=A zNhvd4{EArD4C?HZjMP1XvF^ve?Im&`eGi8s*7Gyu;8>GDirLM7pSTA*!-EaR&Z|&Y z3Ahs{nnMu|7~wxOm|tVh^_^E-S^S{Ucv>(Rnio~oYv@i79L8AJeIfUShCSE zlQ}Ymv%EsFcG0m!qx7Zyd5h0hW-Ef|!Se=Gh3(B7ijv{FV{DBy|Q;&SF{&|?W_1B-3T08^6B)=@f7O1s#62Qb(Q_v`WIqnmC zML+qJ_H~(XJYn*(`6Dshhzw(cYr8D1vbKd4Bp4iKTyt8SRkn00!Q?ul*K>DP#p;4Y z^U=Y}JB>2U3Z@d7e_}85>^-XTvsM(mBgOA^hR{EhkV+yRnAU+H&?@- zcAx+FhO*fI*0^)`PIJ;5*22C0f}s<8UQ8wXU0-@4D7!#X-Km$g_{0H6>FiyOO4S4 z8DxM`Rt*o2;9pTD)Hqr;4+v4>Op+9(^PXK8T!jjP`!tCrV$t*WpAnOSczlL=K6$xX zsuMU9OV4HED?=rO0?wDbog(tI+V50&GtoJ>eyH-!Im=cKR;ay;J$q%a3@*TIF#q$y zL$J~EqyVC3^Yl_md3GIex~o`-sglcfnOMA@26JC0cYw+)%cQ|d(3h+JW&rez+Qtu) zLx4Q`?{K_Bd?MrsLq>TVP}gu+*R&SaQ-~$z6I?=?_B>2+1;EYWh$W*%>LvdwBRSie zexBqReyk!JBFzutG*ahVAK%%}?Iii`8LxA*|KPREw0(AI31$LB4X$oW!%5AxqxF;R zT7~83)Jr=WtH^{)f4S{jdi(;xZ_kmbW>pTu1JyfyfA4%cixN9MJA zppu*_G$rxzSm^I7rzT6t%sFUygBVBll39)Z0|VJ>-aVu7?a;_ovE#U^`?x$NlAFOmj zB$MAf-*L-6$)$ft9-nes=aH(fs%UsStqt=gZH_@1?)jPNT&Wja4uzc2ADC_Pip2lz z4&Oi)279nOXSDZSwW>$4J1+A+1fSq~Ayc?M*<UIiKS$ygd_S*nleWDu{V)m|>ya#rR%1w?j0rllBtdAEsa@NzNkrs6!HlFhj& z(FY^}n$xo_B+HKVxTQjlgP6@P$B?f6 z2D!Hu84v;VCpx18%J>GYUf(7e2k0GMS1(Ep$Kd&PXI|WZR|!hmE|%cvsFI5RaIuzD z3yV0#(|{Yx6*F)DDOxG8-oh_gu0*%c2<99aSx~YP4O~wx*`O@3R%y}Za`;jfAmRkd z_-HFI^v)LF-b8Th_#Zl%!jR?n%}?yO>NF|A5sRnALT%4xl4GSC1q5q_G>3Bohq4n+ z(8fXBq$dVNA*UgLu(UW|G4p5(V1O-de|@?4KB0Uvy!AfNdXu076Hs?{`D9T`HzBtJ z@6dwJ69WYu_y>)UD7E-!H?(!|_SyYF9{)~S#|51}I86+bm@+GQ@y}3Yfg538itu**14fE?NB@pvziez@Hg4t4T%b*xD0~#;h z`F1HH_!-q%UT$`ahMTGuzeYc`%m{$mh-Hs&3UCwWNu5%6Itl;RooqxJ?2vc)VZJK7 zCa~q�s@qKERo4FO+;o1{@G@gBP9k>oVhY)$ggx^KQ~WQDodR%5;Rqn%O$uA@}GL zfRSZ1O8IRxLBKNF<`9pyX{PNo8{69yM{nt8&FSwk($A%LZw!)Iwd|-ykFOUX^vieU z_}J0WAEqRru)|F(aa99O@n;@8fdOKOs(}3b2wazLcR*sm#MRxD>C^iYzQtq&K{Z}7 zhnlduM$DCq`T>4g-`FWB+HN=}HjJ+Fb6^M8UShbZFglj)eD#cFSkRh(Ues3ZT8b^r zmw9La699B)LIGSb-vEpmgWVOTgnc)Pv*DEj!c+5NywJ<~ zB0rW6`afUf78942aoph-H1BmNJI0SbDB1lHP4@x)UrPg8&Lw{Z3>gx)RIUHjbT)0Q zpZV;B6+AzmUvjhY#;Qq>jKIzJ;SF5;!q(!JK$&$Tl+$v9EiBF*!{w{sTt)FTIlPg9 zSAM_=xy5gr2s&&`{~uglM{#y6UdS(L%7(Mmw{S3o-eyG;2d&UTqY2C7mylJ26{SFd zVu5GwvJaT2D`Vj%tcUJc5s7#ucks#DT)2dTCyQCxrQojw!Uj#rHaYm?m!xkOyr!cV zrvL`ZO0tFc{Em{9^kN+`aDZKG6-y`$TzTU|e6F4BdVKh1^-@AbpBR7S>#35SS9DSSdjc7o@_2`G84mJo-G>QNjD#2uW;wQ4)RyapjI!f^G}B!TYIK z2Y&`Xbh=s#%}@uC1fxYRGEZ1$z<)$*!R>0q&?g}WqGZv1jNT;Vftt!hkcuqo7((aU zpV_RJZvGMG(E(@Y7H><%50O^9PrT(JhZ823dyOqWQg9COmXQW=8#JYd(s8n6P0|LRMT}ix5O`iH)*E?Sj@SXqD!d6WnP<23dC5yw$Zxjo!au$YtWcJ0 zQ(irnek+F=zd==kYXVkuz|#Z-WotN|Tav~t!D~*xcJX#dop<eW=9RFZ?|! z52wOEEiWc6%-$3KdnaeoB?OqrR`SAsdBt^D3o zO zKNU(GVbCsC#E7NgEGs?<(c*N+(n0Q}s$^~i9mEO1OsNSB8uv-;xZ^is!I{QOaoz$m z)p-kgR(~#JrAFojM-GV-4Xt0{ZjX10*P-u#Sqd^YO6H!FFijG>2P-Z7RNb+!U0$9C zeQ5qyCG+zkpQ|GVO2|7@cxgQAyakN{Y6m8pqyswA4!NfOQTo-sByfrmD(vBk~+y z$o`>pw1sMuH4ZM$ULt+N-1%mD=c<{lQa*&!Ui)$^S@)tYu!T3Xq4g5UT{*dl3+qjiVSy(QK7bGw5 zn-eeV*XPLU-@bKYU^;H}xB+POlA!GF_Mfn&0y7gCHD`zF)o!HGW$S@LnjB=Qik!v( zJC1~k#M!AK>)bJsPYGoVrZ9`tb2_hu{L{wBz?5GK$Dk@#TmMAKAP>^Ox2q-ElU2I4M5fr6aP|^I+ z*Y|t%J>PfEx#yfa{(J8jYcS?oYpyxxGuKLCXYXf*#@-0APqAoDO`p5sNMesYlw5G3 z8z$$8+K84{+3iDIN9?oe=Szh%Vih(Y0`^Px)v4A!wxy&PN z;@HB7as~b#M`=#@t;6+Z$k(pa%Yj|L8kbrLpyFLy zcg#V>b7DANO3d^~R$5{Wr*axpJ60eG1!tXQQe8MnUjJ!=c10-U>~i3#)$WRy3<6 z+;Q^?zU(-<>&%OOuSI^HW{8CJ>80cixlt_`Ep&x2K60={d6rL1sen7sl0%?n>u_at zg|oHhuY}ls;#&n){_9EucSpsk>iM07jMtaXSDv}NowY)wmZq-dRV1u&D>cLDtml#F zuia1O)bCv1NxN;Qu*V{63we8kTV`MdeKB+1bG_U7t)7L08@5Lya<6+hZaVBE=P`IQ zaCk7-V(zVBA&t{PA*l)xITJ4zVGb4~=J@1-5)i zMn=5ycXTR{o_8N6&9p9BYIycTv&wpP$rJTN2MZ6Z6;ROtEkeF@SB{gH>{lNORMU=) zs@R~VV(oQVGj`z%PRf$3H-H=@_dK45OE*r~zk^v7$ishf*zj=EA&f;@2n?d#pwpF% zqe=HvwhUy`{3LS~LYn~(q;@N}5z?`rC$H|cc`R-H{H^7nLSiU}Au9?laWmC&_w&Fn z*vxIv3@h?AREx;sx)p~NjUlk1L+x}__`ypcawC)mD+=YXz4Ki2MNNlt-1Qh5jI+fE z!n#7>gj&da^&6@Y&E!*xQB$nrsKEIS2rSwCxx9LKyht7!l!(bxSoY50lzQ}5)=d({ zU78F_jYQ6qSJH|j&p$K6y{*YXD~X<_Ap7Tvs~r|sE>eqm!rV>fsmv4RcqQ_cwb^~Q zQq?>V^ALoEozziM5IIMz`ofsIc1`dIm7!9bBWRR^4)W7oEk@?cR~mFTw%YE^a@E|M#&3!=K7&r?!tfu zxmD$dG)4gBkFx|hv?=@;YRu7V-sAQ87mro--AU1}YlxU(FZvWW(|oOdsGkda;9?SuM%gsc+ zqVbH}0lK2LRiniS$NU@I4WD6u6U;52i+_j7&bBVqQ@m6piY@@o^Ji0?8^dp*a!J$4 zX)HaFf-9#<{Wdv;8r@OCqGAb0sdB;2Gf`e+%7h#9_Q!UUDv8)VZhI^*5;ahZLM1tvS)9XPSFeisr%;& z11b(5hb0!U>x~Eld>2d=;o7WI>zf}i&|?%%uL!b%Q(|3_}-wMq_e4HUpupX^0PKI zX+}=CKByZxULJATw(q^4sP4H9Z`Hd4eFt-U%%_*lhgbj|ac1f&BF&r_cQ$;)l5~wd z<$EXhAi{8Ft(Q-@W&V*TRWtn^Zu=fSp?>=83q$XY+w?<=w)#^u(+8~%a8WsBsXC8dX&K(!((3be zwnnMR3Uhyl`@C@L{7Z4meEJ`@MXOHkZ@V%$Z&3&w&*vcARm@~*jVJZEkyZx~y5FR*6c`8?Ct`ss93_chzg z7fd;E>kmAJmu;*To4!rRtA8@+YFF2B?(O=W+n&DNVRu>d_3cLSf!^WE)z$sAt5^4H zK4oRNI{+*gXbtvuzpWPG&X1*9J?VSq0c+4S8_)E=@|?JD6G_Q+%^tgh{VNJK)wt{! z&)L0nVDz5-ty)t#+4U>XY^Os@gewQ$cxBLLZLRd~`W@>_USE0XDs^b(nY|O>Tn0N# z9NW>Hv{HS}3!k;0JK6x%Qtzun2roylhGojd^}RB`S=*`%d^nkRbtGnv)1!{_AF3{0 zeY0k#)02L)kG1!=113R0@8tQ9SMDc`?s&GXLuxj4U3TR_#=Z0$cVVi@>e~3;k6%FK z*wn4-NfSy&9MELn$Cg#Sz`;$EhO zy35=37rs25y!P>$^y|Qzw_6)O9vbI9sMp8xr^Pd+6KR`x69@Kf8up&^dE12@@6XMd z8u{Y#X*Co0n1}xQA|hhE)6@0y&7C{s-NVP8D9ri1UwY*0$i5w;ul8Nb%ecFfk2LDuX1o8Z-{M#@Um;}PI zG3!`pKR!&4;*i3_&EiAPSuiaMfyl2iB!+hffBYxCr86JToX8;uGgy}V-KAc^vn14oufw>2()0&daLMA z&0+mrAgFQlnQ3J2IndRHtiO_rm3sA#o)cl*x&4Yqo)exum+u7w0JVe3CVWsUUx@7C zLOpKCY?yixO{etm1R)&O$kB-xX_5h@B0#O#jg&=GY^6`wh#aQ5`uQx99LF@DqZa^} zp6JzV6=`Mx+SA;+6q?TFqfilGPZVnMX-H&)R$rL>09SDaP2Rv;H%@1XyuQXkn8_?y zZziZDV=jBbg|aw0&B+cWLZntQ5E=y{qYZ>G4LOcZqEOp}YyC>36|Ap~bOSkn+1~Ik zFSIqXIc9ui{kU*sR;dwQsE`j=Yn5?-W(qADYUQ-Pe$ob$Xh`d18Pzm0OQ_ppppiva zX%?#FbBR&|UokBmET{YG9aSDV0^`#W*20D<@e6w~oJj-6;NLdGeaPtv3u^nz6EVLhB z^e}m^K8dZ$7}QX4=nS4?hG9${&#{bWt0lAo7P%(DKaV6^j!?cVU^tTD_LYO{<}>W$ z7>-6_#l>QaQijtM1AT+@CXP2T45wBy)|)YUkQ|WAFh>d}Rsht^CtXQ!duh4u9Oo03 zWiPR_*sJQ`b|Za==QHKg;LA>njUo2V`I7A)UfQAPD&;g4a*&3RuAy0gCaO>R;*e$$ zxW?p&mS1G*#xhtOU6pRsTO}gA6JRPqY|CzCIWOfJLHfjz)VJE22XpZ)yHWPs-LJxA z922l}WhgDcutAXhyj4SXjXmpd_Gyu-JD94IzT50*_N%f!0y#BAFKY%s1dOF^LLg40 zl4PtN2b%fDYI=cKYqHj5dZBOG*Q>GlmrqgrPQk{|>WyXj*M<&-uQ>QBOv6O})2-p% zxslI{k3JXZ8RPqhY9oiuEE)=#3;tSoHiftP%wI98;7VQjW95_6(YJ##V=8iUhT_+%Q9Q+l*wb41k;@G~v@t zpU_VzfeLY}z<}9bw&*#P@Jx$@h!L=N3CAoOhK%E!EnyfKB|`(r~&=F=F~9chZt-9;C5u5 zqrF(h2CbTJghh3#CK)Sgb8zN-suNv&1+9-sygapVCD;&#| z%kmEeamYv?tGPW%INtaqET$li0t<&0LD)s833yF z!m+!adZY2D`QVHbxA9tBhwUwjb{5(TskEFNg{`|0$A)%k0K}c|+N8L%WV+(+mU%=pOw z?IV=qYqTnzbK^5C-@)3?n>$jM!^(M9+2WVR92p6;K}*AYT{onx^y2(yLwoeK20+CY zYvUm>tbl9!j!Tj;K)>VaWdmBY2F>Z`26zr4!)>C8)my+tcA6@!G5nJU8s2X!mT%!% z$rvnA3>P21>xkR)!KaQ=q&N!Ba4qExL^9^Y!JnPwZ9E2d1bCK-Vpsm4&ASHk0frr3 zMwSjYC$DwFn>lGQmh05GlEPj2aI>)&E+cPU#~N$~c+^k^47oZr2;M(~kve+F_2A$f zBe?t(c+zF@4qemUK=V%$xH$`M&Sac_EB>q@w&k0-oE6(NGAuWrcfpHooX=Y$Yi-A1 zR#dp7oPFXqSn^WNn?as4i7|%{w|)ngxSn^FamDlBTA>(L)~0&JbeIviZk&T_LHL{G zpqX>kYB|Ijfat?jI!o7xmRF7MMCE&Gp_?(ZbSxPg5ZnYsaCdJV#v=`-@xH1YSxviM zVs<)A3XLP%WKV7(+?>ZS)^yFYBK#Q5Odcdu$nG?!LD^XDcr(F3q%|3fJxfy-0?>Ux zIY6W_R)%i@2xCJU23xhn79>$NhSq+S#3gjn@MlFDEG|mRb62#LbcB=U>ZDxC^|x>3 zj1A#X-1EX4`d{}&dvT3laPZEtc9TEopY0(+YbtSwq}d`=zH&q3%G~lfPALQ@J?(Ue zq%-3!RHqBtIX&l$)aSYu9o3~Rma)^C93iv_)kz>GWouIuQ?*ERX;O$X5?#}sy934a zLmC1uM?%hmFlV|-86BG9%=DK}>g4P`0j{9=;m+38KJ(H_m!$xNN%@l!%qz$A698Y> zbQ#pT0 z(ru(&dV6a~<-JMv5tUZalm4gJ0s6ebS9bZlvUPOZ09~Jmqkxe6qd3I}qCW@wLee3Po@Ea$ZZ|OBn7K11}N8^e|rOpSe3C-5% z2!P|?+GsiHc$(DMkRJj#= z;CfW65q?$7+3;)Z_a_!io{*5P#w%inUccWnvpKo}3T142YH6RVSF3{}5=V9s||NjifVIqVu)U$Uit@a_Kkt+#4!$rYOD z*hNgeRh(2X(XfwynnHM-em>YT_Un%EyB}vSv6k*AF0MUR{Z?m@v2%+7({fO0-|YEm ztXsZmnds3KCu)QZk$cn$t4hz3ll5o-EG@gRxqxk2k`dK8#E-fD|Mx%UA_EChv?O<7vfL4}X zhBT&gZ<=Lp4al{{$HEne?Osu-MN5t8M!mSf8A(s)tLU*)_APKteD_P z6^#-a0Gh5NMeflmnJP~suPkd&^sD`#^*NRHm0fj%i+(VLk0HyOp+Jsxr;!36q?uakieKtfn{j zIZC~q6`-s$r3_QlY7OBW;n-D7#Vi3p<^h} zO-5t3gF;!hcW<8_TQ2x5tq)F_G0cF6A(+v7Va??SfNrJT}nYOsVU?0T#-Yx>=4yVQK7$HaX*hV1f`;T$@7SUN&E> zj%)@TVas!O2KO7aw5COIFbyxt=4#qa%UjGRKx9Mq9UKZSMGi%FT`Q`qa7v16TBDyDXlSS4hXP*7N$(t6f zIVx+d8Kl>-Y1ZAoD#J-P9eWfTHrBlV@!WjQ%0i{iY`7YVt6*BxP_&ZDu_m2CedfAt zEbB{&@nt*4PGxYRQu0ifj3pkiVvS(3ynHFh@aJ&B&D0uuhuuqr)+Z{m`Nz)~osn+v zqVY0A`i^QDO5_LK;OFvbJcltr!6SBmW>&oXEI^=Qxa*MPK7gnGgskLF#iZWIKVg*b zrMP!iVfl`LQwC-86itBckzLk2YEq-h=gctNX(})AXjyPjW&qTfg3yBckTzZoN)6em zF>RG94t#J|bO>*D78|k9XkQNTIL8LXp35M2y}U6jr{Bp@?3!K#tz6bd;WR4EYF$B^ zKmQ29#=Fe-bZ+65kfZ8yuMd3V?$*o(c>1y;7AEITUDoL`wTky#!ff3~Dl*hFE`5Dq zYe@t2e1rMchj+>;xAwzQnHS(F8Zw%u9GxdeEjEVCvahB_X&&Ifruv91X=@bNM+Ocv zZNWZ349L-xidBRP$r<}0Il*@BdV-Z!24&>EkhV#H>%P$kw=xfD_5DFTr2m<9~ZS`kmN05+?T!}i5Ks3?Cr0`?s+ zurN+?2jSEj z`Igs7)w1Fs$W2~-+B2_yFnVwmmdUAAiHB>_lVQ$zDbBUdD+u0$fo9k zc3Q)X5Bl%j>IiBz?~r=k!>F{ntp{{AoQcqWy=2k4SC!WiD-*BkGZ6JX^?R}BUT+Fl zC=()Ol&&AQYma1}b8Nq>v#I`>_UM-TUu;Q0G?$b99konL$aN`|9M* z^PZ|K=mEXnS-sDW_H5hzASrUi`>C>HprR$Sb?}hth1#2QhZjeT^q4N%`r!JvaE0b8 zgOc;_VcB0t5-vD(x4B+eQG0*=?m1W4o6y_(b)}=r>DQh=ZJm}LciQ=>ZS->`uxNXB zur$19|F`E=7v2wU+WBb=%Ogcwd>h~YY|Iw|Ccfe)WaqjD{k1etD)VJ=DW6 zo_MxXD%AzxOh6$UP%f9wm!MHh@bw}*G5gyGfS@%78ZxDNOwd&Jpldcvx>l+L5dzq7 z22;*6Th6;xZV@E!&y)|!mS5T`9|0j4t*b|bI0F%4Eu>&5zzKz@Gy@zJMDmzO3lKdZ zM7?4m^O%afY^;YwVLzmFjHz@oTj@-z(uHy*2MVD)TbWD6jq#Pat#}#*#VyC(&c-@R zaCKw2SrR2<5!POSI$n11Ox06k z*z$7K3+1@6a-5Kahj7Wa}=VtIm;KNS0_juyH0^wyh+uD3kb+{_z(fXjf>02;x1d_ z7E_>%i#XIp!W0ensBQMGR-9Kmc>&kVn1Y+nHhtNKZ*Irmvz+~DovDQgS5l!HVWE05 z9=C8pX;lTuw0+j@aaC!KNuHk>uN6PdG5J_Qu(u#w@zYp~CGe=mo?L8YIU%6kbO~3- zcs<2*z3JC+%UkWU;as$jFYrejPFQf`2@oB(Sa!Ff6;zo^ znBriP$Cdm+%zVM@6_d_+t!OM=xyp}F&Lrb5niaI7Be_PrF}+$0&WA#@1(9|F45@v# z%Q_cRfu^#xB0~V}@WZG~K;7ANZZ-ttVy|1!_cOH&$JJ9?u{q_kBw{(fI7f+f5Enhx zj-%pa8Q0Yezy*Vlr2tCKC%6hcqeLp&)&wK2ef>o|WbOHp1KrLw=wGMp0^(t8LYoEN zkqcQ%aMo9yqGMDA_{D4tQ3An4coL{T$|2ZF2!k9#DF&|u21U^c ziv<`}Hs)=gr6x%9pb!BH6fV1*)}^W>f&948ARq0<#$aiL={{9eE+$5VQh)^v=ol^zvWt725I=s|X7chf z2XF(tKnekLpB2^Xt8GkO?3P7v$pv=Eok6+vGtC*n04=oNf95{)T(WnW0_>3w&ulUf+}co^CRp10`E3i zuo(SC9q71?XtO-5S-ZOh-6euf#Rz7rtW&Nk*Iddb$R6s*w8B5n)ln2FDgN3CkiRQ49(uoI)V6fe^~l z1r!Xq3u1zyO*RQp6wDww%%(fvhKp6AuO242j0;VC*}D}fgiwL41xP$;rQMZ)Uf7Xx zWWRxN9^}lm^%luA38A2x`o?W*?G-zydQn{4OEw$SBAOr9GP%Y zlc;0`#srC=i(R1vQK6v?^eq8X^sofYH4+uzhGbQkx(KD?xWPWh`UFDCgU}@+Jf2Rt zW>2L0h4mNgGqpv#2reAoh`x>B{_Eq(%{Dlg0Cznl)W;cm>4Ta zIk~vtaTgF!xYW3tV$RMc2ymA-CgVV#+1){>E)(Lr^s57XaNPN$93qK=>8|205n$Xt z%s#dOLlR(JDXY~5OFM{p-XX-~kPr~uu;LN=m2lRUDm+r6YI!*z$~HvZA$TU3`;tW@ zNtR&xg3f(_+-;y48fO*RAuHI$YK}yNXd?k!^@+7|g#h1KfFp8=aSk|H3AFN0xD$aG zl%r}4dshUw^pG0l$HwqCp25*Kt$s&{6-4HgKmnql6(WW*Ju;kf(boxc)Oz)DIsv&K zeWHp7XNTE1LS{>1=Hcm=y3p4?MJ{?6Jj#;l?Af5olAJZS4NWK@1TV!9Lr{mhs*l@L zJ3I;+x7OEqag3i#7KI8!x9XNfTVKKKLe(o&`rHIO;j}r>BE%EIY zDU=Nr{@emj&`o~*ZY%m_8xV7_lfSwo#YU30Dp+~-hUE7X3eOJc$YbsGJNZ|sDLjh^ zPf4_<^?uV1r%k~~$~y0=9$oo~8|D)0r6TNMyw1&XzouYZa}Tbih|o$h+MQr3Ke6Y! zrCCtU-b}py?tCnBliD#$dnbwsxJ5eWCNoS03|4qNtE(E1FV3+NVUrz; zGYifi|9}o)?@(czuG$v+38>b!C*9o|O9xjuXv;q5@Qvk|zPb$GlwH=Zp8x|2o|s%&AAa&2we%soXy>GAjoe{Jul3a7{kWz z`l@=r;=CyY! zJ{FqSK7LA-LXI<980_NZqK(C$UYxv)CQ?3XTIX1>F|Io>Y29Jk#bxW)qsxoYvC=Ic zOGW}Ec~*3S$#n9P0N(wI=56gplQ!BFJ)ayTo|CmR_1}+bcA-BIF>dwvEc=w|{F_Y$ zW?>W7{TM4x;-38%^@6lWb|T!u?%>P`u@f%h^&Fir?92zbH`Of-x-3lcCWwI&+}Y{0 zPh@=P6YTU6$c@5Ww7z97#xtSDFrghEz@`+a@7bfy_$p-V9vAG+wN=NGSGeHEpOmTZ zhgLq`;JZ`$mapnUUv5!}KS4x~0qDK;_|BcC8#bJ_n_N5!$SDh|XWB!XZ3^n~186#q zRV?-Qe!5|Hpz*V9UFZ&LMh{QEM{(_D&*9t~?*o{k0F@)z4_=R_F?>t(cS_znFI_?p z`WP7Yu`fJ`yK2rvWPMeTCYR`DpTfS3u`VeI<7O;6l1QiDZ+h1^T8`6lnK~1IQw^MF zM^O!-D~cyxVPs{OdlVIV8q+@nqQj85^*NJUPHR%2#S&HK5oo?uj1}0X$UO^XUbZ;Q(qFsX#H9$=(ysXIfVY*z(~4mCtX}Hpt7gSb z2)|iQc!jZYxoG|snCUxByMEDpg%xpu0E*4S#pipkuG6!!AusJw7f+6QI{JU*Y*}UR zA0#rgSdahUJKM?5|B|ymw>m{V*H$t<>ascIE4kFX%E*e)r0v(Jm|xNbS#dkihkfsv zT1i|iuV25ok1lG%NjA=*KoAA9SVT5{>Yiy`xs;1_1UHNyVkv^ps(bcnZ&zLbJ{#xb zruonZKjSTV8A0H-tK|?Dd~;yjX!0?-uMKVaKIco7$%1@bytM)2qREQ&czcSkKEbov z-nKsf!JUf`tV&bAgT8u>NtEEJ^5ySqwehj1tcVa8%gymxe?)3~+!q&n$#}RB?bCr* zlH?v5qbYO+`_svaOClFMRCHNF>gYJc5YbmZGsH=9AAflvdWe?=y~Yk_L=Uw{jK$

*%y zk(rwbN}>-@m<`I3ydc2=H2%mZ0Mi%`?-Ywd- zr4B+0c(t`oU7E3bj+8`!wOj9UTE6*MbTwp%{=w+ z!&j2k%LgC6V9~w-SgHtN@uOuzyrtGihl3Hu>@H)8l`$9Vnuj%FcUk3Njkw>1@8eu- z-1_iyxmY8ag2?QTsl|t|Mj~6;)OQ_;RnQ@8{S{&4&~tuh&O`ooN#OSosqnBZ>4+ zH?p9A?6Yio{w2KqHP!Dy%e?;B99dGn$M@&o@0#qc<2e|?fy8J?e1-{O~+uyB>*FWq0K{zqiXe{DR6(($+11QhqDQ|X_}F#5lRYoTKb;<3Lj z!z}!0{asn}BW;VFjyW9{^6Ts`7^KdB+LR5B6aQxRe{Z+V@L68M|B8!$;BRX(Jn(a+ z`o&}aD<*zH`%4ynweV%){;%Diat`H4b;1$5pUd}=*8LNme_`-9&79O_w!g>FMmFDw zCjV*qH|1Xq=3tsQQlN~FY9<%`(H`wXC1?KDZgWs00E`0t)?`J~{xYP-TS-7U#Q~Izb%eOe-;w{?(%OD{NK_2 z761Po5&yDb|4zX1=vfC*Y0+MPw01JeAmOJh8)@PEV@mpS^zEMCH2$&je?~A+xlQ|r z%fI6I%XkX#m;58>b`GkH^>@wYe>0N2;y0aka?!7LCQN_p{xxNw@~5dk@XO-+D(V= z!Qb)A!us`n@@K040~7x`pugPwJeCF)Dp?CrW#ppoje|-yF1k(r{_R61{A{Pb{w4ny zyv+d`IZA&U{GaPei;_>Fn)!Wf}herqLDO_w&1vQ>c=^ZB(YxjbDMu zy1(H6yWbV48!|hYO1~Y4KVr*79h7|>{+g6O#((VGw84KG!YRe(J|$TzVg2LK{eoZi z5qLv3@iz?rCOfyuN+rLd`Zo$cfn|O_v`1N}X*tx^mg$y7K=;0{J^#P9NB_jT^k2tx z;a^Yv6GMM0qwD_(NOL6w=TC)yyY|24=-=A;uZ;XV_eWlnZ{2Y%X>U#H-n%I)8~5yN%-bg}KGt;jWMx_D{iFH!%1(7% zx%^suak}e~yPJKeJB7WFzIu6B>h|?H+vo1%#$~2$DNb8)EiL*~PV&+HybDDc{KJJ8 z4|`M`^*?d+z_p|HjirhW$97&Tn}6k8a7&qK?S;ZS=NZpSliJT~G*s+ss9b&blKs`{ z)Ek$5yQ<7?)e0J~WVT!h>8uTC5w3n(d9d@U+IDOA;7uFJ z?bT0jogKKhM_(3?j8r@yz4U&x>ixulPoIh>We?a_ox5CH`Ed09@W(;k?({Pa^|iOIUT76| z4D~KAKDevsaQ?vq{Nts$m#=ITJuJI=UNv1~WQFuHNgYYJXb&u>a=6 zu0#Ekb-lyo{jcvyo(SK(e>gt=^uwpuQmKW@;;7|2Vpnr!@oH#k<%=^)Z8NU~>^X0q z)iihSHCnDXu<&wvcA<&aLgqxz?T1)X#73z0mUb-jjFTgWu+P_%HMh*t;i3eD&GG`-4t4 zE=4x`_PQM|ayXskT~c9lQn0Y<(wvLuyerE5PacRoT^m+)VNGT2ii@Hcap}(5hE3OM zc{gvQi)!{aw-w#*Jovcl=)-|SA0J(QF?{>w;Df=D#}gkVAEe__2ddrjfY2No=bT=_ zKCf+Mj=L|8F#QhuNI1rmmLEWqNmJRUYL#*H)14JL^Tb;q`_D&{16**oG~>l)E|b0?XsUzybhf zj5E%f%3g6RFO#(}F7t$da|UsSG(VW|!avsxJ})bp+V56wDjyqW&sXBwteDn__g}Wa zLyUkfVB#(U1uMHPznxj!ZJ=>>JHxTGWi8ESr4%*R5!6(2EvfFCL(B4W33Q5ydiNgF zdPDVHRq8v=uBsS#dcM<7t;S=)Gn4Tk#|hLTI-zh0q&~L zb(&JShy|2Qqw>2(*ErB>-C&|6-_}dD>pqOPGNQ~ES?LbF`_ziy@4RQYKV%+Wjco+sn&;x4eix7gsA9 zZ`?{A+$drB)Wqs}J6R5-VOMJzMD6vOu_9YDdh>EWEP7dNFo-deOW!9a!pz+@f8#AC zVL|-xiy~zuGL+%=VkmpwI*y=gp4+3T~*KO|g^VE@#=Qo*dbAB#DR7cbIFLGV%3nOK-F0Il{7z<3rIlUvh zv)o7c4BQI2iW{0PQw7xhfql4SBt#XZ!1e4QkU&h~EV985^zmGJLaAIAjEU6(tHvi$ zDwZN2oXEZjrN78#6xE*zuOniS3DC||Ma+_MyTA*AY?f|noV%e5gYberg_N0?*kAuHE1HT~?AvO1XIRs{V_Kil&vSU7S1Yh+NF=WkE3^wuBd-;LIXhZ;6ck^@ zv*_7}qhqu*p-5@&bN>FrWAHV%#?oRMa^l+Mj@n=V`H&2TsWenC*|ZT{#O>p0T@lK= z_IWIllRZL+pk;zyd%_mCx?T6+?6z-}ppwe+p&Bw$5eY+S#ky;a2y#766d z3)7WGDCptrR0R|lp)w%Y^`Qq)f5kDO2j3t&$Z8NgR$spBVfw#)VHMNYM%b{N*M62+JZ0YK<)3h71L2#<)7$h_U6K zFa(jcK# zKUKl$24!CYAXdB8mmWQlgHFWvTixxOyDG$wyAH`SYoj8}OUL)cbgJmS99!aggM!-7 zYyxW|39WlTR7@vNYps<+j}ipl+yY-8^#WmaR-_V1J_b_}+;B{mpjY+~1RW%y<-Ht@ zixUl`6Fe{HB#hmvat5hs?54{#U)09@nYvG!Qxlspm#Q-rbl2`d%o(e=w2emAP-Y?I zk4jYHnSDAfOi!yR3_4m`7Ny-nellmX#ojG_?{#XP7Weg1_H7E#*SJ@Nu<99C4FmS8 zyAFvy?_$d7@dZlW84YL_^O{i&KPf(21f|jR^_X@C=EnLG+P_?jQn2*){dUO)(l+@lOl?WFLiCEa_&pLjG8*RY}hslbvc2^zyD(C+7z{pC~Iqp zf+y2WqkU{Z_YAkLyUFeN-G}UnqXLz|WtLmh0ioHdA9)2Jk#44q?+{fo4T>jF9RFCwV;O5>yI&?4_=X ztO(v&3=BC%(}v;!SGx~c3ho?5z$J~Ek`NrBm9Hl1YqC7g1`?g|v+2j?I>xa5LX!GW z*gmm`GL$iYoGqutOr1H!R8Zs#_C+&OhIVI>$CEKx zDQjmj>=qgEsHww#Rd$rtBpqSL7woRfWoWyfSxG(1-M5-{OsApDQ)=M;;Lv7%6zK;4 zhTGe=-8H9p>MtKO!D?hhe>=qn&syVpS`)H%athadWuY3GsE-`&}KmHA#6cz;ZV8ikT;RTV>9AJ9;ZLe=Yl%5xg(6Qpt_YU$cbs*QapWg{7{e7H9? zaR4X(ZEnQ#0R)w%FR_V`5iZcHmr)@eD4a822-hddEugtB1mJe@aCb=FC0;JbHc^Af z`?LYE(1O*U7h%GZ_w0kMAj7BS;r|~==i<-g|NsB%+O-pQbeuVDP9cY3jyY^5Br!$l zXd+3{DwU9~ZEUN=l%$h}4w7n0z16$JhD66DNm3>%ou^dlt@hpL_xlHSyLP)>uj~1` zJzkI3{l1pV!(BuMuoxs~Q6@QJB2kWZV*pVs zD4B~g%RtUzF=Ay%j!r2Js7?nWMXrt!vt-LxHlnlm$d`FYcM@fIHqxI1!<0u^C? zuvoz+p%zkNVQBDD7+VS*?}A!J(1|>>cDBfSyo^r)vNYL7;98>#&U-2&zmhQ zzMQ)Ww_%fv2JrakNj1uMWYfUw)KYfDunX$t75(lYv#nNIY_byE&Go2lP1GyIT(pQYKt6(x zS?!2S1`I`9R1+`{$wF*lp+SbrGCuk$4LI=A>CjKBqq^HTH4Ar_tM}Ux%hQQI4a9E7 zQs)iC^IJ(5qQM~mH>5GT%EI5ig}Q}|OYN~C67ilA|68e- zXYTm@(`I^6vXVb*I8hjUi&(Ll@RNmCYX~0{#J7y4-CV+bH3565c!&#rRxav;i650l zeHwfxgZPn#e{<0GuBPy(49Cr0cpt|7fqCzqK=Zi~$cw8ufMZY!Fp`YovY@b<&`27T zpg>NWA>&~vf`>HNGB3L(m8ly*{_)#g-X!@u8z_5(c2^*+AE8|}r3}4gnU9`J$@0Rc zh4N5rbp=<`2xK&EsG-Q-AgkXX{J5w&FcdFC&I3>$@=(4UF?|Bj+62u$AT@{zn*+~# zke|Le78$7wGw!P3JC~VUM$S>>WvUU9lZbc?^4T{>{k5;4d}J^W#Rxn{6|c^_lkSw1 z8V#2ulG2w6cYnXQJDbZJ`5wkIMvhYVkgAdV{&fGZP^Jdy#$=srgR<37rn2mjlwGoG z&m!PVI0>~Hea5gZT@|}>juLv}hkVKAxY4rjXP>!~0)%ssnu0S-;Xxl5S@Y~1pWno+ zLPr4=3v_!|Tm2_}kdKs!6`A(AS5&eqBb*2ZVzU~vn&$f8LgWgK!B#b%zVC>r%&oHH4OlVj;xPaPmIN>`8ZDw{$upv4u!Q2ApX7LOMZeanq0d_TSb#^^-vjiw}TRz zORC&ZsKkKU!*+1~yt^m_%888mv|l-@}Ky7=-Jz zC7*aWrLy3So^GV2ZyCiSW-n>y)t*e`-iC=)(#Py9d+YzT1;3b-{ zah@`6Sf>gGAVe2p=GxOo-k+8igjt=D0LX0DvAa%DA~qMY?x%;#8~-#S=gaQ1`RGNo z`$*n(bU_*zM7TbRMVJ5HbIHM)05WWRdSEHx&E5h+)E`h6;LAg7-qnmg|- z1vOoBr!@BBr?S<-HhJFuY1mo2&x)OKCA8)2=vE~eg3%Oqw07=kgJ0OCX|}7?PiPZQ zTq|W?HY}LCEr#%(WZ;S%bT;#=#M0@;xqqI#PBbg8lqJ&dGT0`o;nL(p{2thn&+ONu zC3r8$PZ*J@XN_hX^zS%|?FUR#ZThn`@;r9*W^cfOY_ekcVDbi2gETXcWHxhyMOd%7 zwZO!VIj?www0MKlLK?-=o|3dtYB*v+$WAX;5&Jb3`$i~(-j+#fa@RWi-J?|XCr61}ok-rBuL zMBQq!MzZndGU6Y;*T*W_^9fR?>evDc%jsWsU(aeLZ0t~K;`Bj#qX%0ygSJTFu+G~O zIbSm^utOUAPpgi-NPJ=XSA)7!r%ii-k`Zf9QKxyDulLDbo=IItZIS9l?-H#my)FL> zvUG~K*_ZaBvyMdGNKX>d^OsPZRg^17?WJrd@?LVO>ba$GEEzpC=fU&&pRJwR=>rNh zv*mT?xJA?oM?Uwp1RM%$K_}YM$s3)LYbg?!x5=IkNdB8h&)5A^S*tZB*XKDMsCk~c z;&txJvG^5~Rvq1`v=TY`+hR5>N$xe?>?vEi_YME4$L5z~SvQ_vJNs@)`CF+s9mRcv zy6}8X?YqQcdTg%oTo~#Le6QoaHIEqE;r*fH9J+lfEcdhH+%Tsd#bb$|UsHr{l3%@< zQ7KC~>PQH3Er{y#!CF;;_ul^Mz!_!Y* z*M5F~<8#K>L+|9nA8o&U4f`^ABRqn8!MPqv3H*fOBO}ztv*pmETp&{pt(^a5Vg-N* z(#Du*$s%p$M#~!S2~#hid)@@);XvBa3G0Lj#G?tC-PbC&ua2o-op*e7Ntj5f`RbaA zT5SWaV$xn4euN{+d!;|s4 zN$#-;zUen>V)Xgk$=&pcwX{i_@HG~8-+2!w_PzPW??cWo{bBaS@=Ka=&dnd5X%@M| zKQ`LE+?4ur!;bzf$9`@-|Fh`k&*I^qu|XYE!EH?wdbu ze43KkP3`(JB}z4~OfWel_*HxJmt6O&-tM zU9kHde)wa|g^w$~e#8#{H|aU}wV3(u4(;++pYUs@{cmX%XFtF7vxM93po^oZ^tS z%CR{jqoDeX(+a>^h*0;nyYQTDAt0Qoj6ZX(9kZ?VQ;)B5u6c5D*wED{5Et0RIk?c%Utlqtn%_i6gV%{6t1LF7ad30vh zzn2UNBkc%-m;qWh>zR9@r{OaNJsw23IQO`ox!*_4Nu^p~6(b!D2rpSLUAfA5p7WCT zit?G`Gj$+SFOeSED3Oz5tqEqdI($_!ZNHV-fRZ_vcPqiDcH~v*cca)QInkQybcbLY z+^ekg$%r}R#=%~5osW7zwoOJZ{I&I=s$}iJj~8DSDG|ux#u0OM~vx3?zbA@ZPGc;cGXQV@tV^v)~K^U?Sgo+OUSK1Ay9Db z@qW8u&Q2#B#q65P5}sfE&#I|%34LsCBi?owQU$?L4`tDjpbYmGDZgZN0U-0_UQ`kjJ>IDvlmASku-#9o2u?)?^ z?*V>D({YTKR~vR^U+9?WR=i)6?oTlO+(7lot3w*A{IyV%*G7)7WT2p~(6Ye=5E&p2TtcSnch&-~zt7_avj!uGC$*0t6kS3}+1^;bO3 zJrM7WLbsI~;hcL!CBzGr8UKj)x|6ml%+8`Qhw8-W);yZcCbV?Lo`$G2i_HH8sFJ=(z^Vb>&nv{ zM-%=8-VW4T-?lLL*1uh1P_hxD8J2R(VHdH^zR6y#`f;8Q(>S_@;-<_ulx(>sspLHi_T4 zmWsl-bZj^blDW}#eq6fYI=Qg04@L*H_HIUJaZH=|Zp*J|(D(^GmjI2KJg%yi3q)=P z$~(JxX_(7NC%o3bM%(sjaPct+qhdvgi>{4TvktiHVZ=i*)fhq|_Ecn}wuEk~!pR*L znq|M6yJYYJuui4|$^en0dmZpK&&GVrGQmwL*uO5YorJwAa+~Z8MFqaatCe^7R|VLB zto9I{tIS`XR(;+2Vc2OIx*VHS+tTX9Suw}%)>N9RBt-+I!_c8G=J{owXufmENtL)lM?<_U;IdkK|zjz zT1I^gEG&i0+ppYNY&h0fXiyV}U3sL^mK+(~_}*f;UX5%aHFX>aNP0>|$`ly1bjPjv$Kp*lj5 zs+3UPf#j+k2o*Gt)ItVRh$^|RRGGVN`h%VU4573R$VNhxYns`6 z>MDu3#~Tnx?QMTGSiW_#VW^vinKd2>&OSOyc|^Ny`Kv{rN`r(sya=6Xi~&R$0?=zx zBH~TTA*+%z=nx(oRHza5?nQXNK!m@9)=UqiADZRTZ|q!-o?$wdb|*(@5<4f+Ps=;0 z2Rap`$USBr2QUE|5aa`TxryNIt60vJ&V~}I21dOfW8Z;ZitJkDp|hj~h40stn5va% zR1E?zCY2xuNij7<;V5T$+uUQ)51>N5>$!@Q&249dB!!|5H?r0Vl>v+6VmZ zY@+b?VIJJR-cWh{|)S&96xh56VHMu|(=^@+q7MErf07(|ljfT({b ze}P{=PJ^2F7w`-b+;|vFZEV9{&njW^+(EUtXO|}e09lQ2G6g2ol->`9TFGF-6u{L} zqvq`K%0f0$1a~!riw7MF2hN@1lj#anzg!a5hSx-RoZ1N~pX~&u+&vpT7o?PfwbSs)r9V`+gvxC20%xsL<` zFX~{VUfZldV^RRL95&t6lFmS{pAv5#FU{({gg11^n`-$|SBlRsVNL;&Q$j=|;Ix}i zTnRT#2$v4P-2)<4qtM=}lC0VNxgF)9RZX|=Ixh=Xa4#Y@UfkNzO={% z*oH+HWl0OiFA9NHgaWfdK}){Dlut_s?{-Qn{?A0*nS61 zvSCV+osYJ!N9U%X^+v_e9{HjU$vP=|-flFMFJAf|CO-w887OgdlNL_-?Eo;F0P(su zi7s6uF3_O2Ozp}T-Itw*No9}(`LsL|T4*h?YR6;(;teujTbA*>Z>Sa8(n0`}nT6)b z(d;GrwrIrZHR#*{G!Kw$S9s$r#rZMfHI#t$+R}8EBvXn0ssUxeh%|#h`*Fbxd84Bm z42^?kWPz?c!ID@IAw#S)MA&p+qcY4YeWA(cU`|BXqJs|m7(lgyjo-kXFIl4VXWY!Q zge|?!zB0j{St3LXVmadK<+)d#X+m0xD9X`6Vy+#V230ztL zS*M8F%EGQN;}eZ>jL>mh;HCtb(y%}o2+}Hk%tYvk@Y|{JrMnULHX)wm z2yDB_0pkMs-P31_cJUvb+U6#-qukrP(PbtVq$ug0n?K?kAkG<`zxd*cI$T z;R-(^vkiR|u`JSIspik20X9(L1oom7NhsR~@>aMJDbL zV1GY1{m%jZM_cPR4keSI@?Y5Hv8 z0$!iAu^>~8P@ntX7=$J*0Wuc_B8?KT$bLCdcbGn#@ThdTT;!)fU8^KcBzjr=a{n@6 z>ja1bm8If$(1~XvK%bRUfMqn1XAIJSf$}^o>f-t`6{XQro`rIx54V}9-SZt0xvsI? z^~Ft#wo;3rQlCENMh| z)|7tvTFVQ;x@lpZ--3Ohe4iB+lSvbArZKHuP4L-hPb%zpL9zoEz*9>MY3L0aG+&O+ zYJ`hi(0mPgB@EauMz2(2!e3$LX496pVK$~dKzPtFHjo`Vm<@@#_RvHXn zT~Kjg{7#hvqH?KF*y}Q!Y=K*9{%P#N-~z~!C44haG`QfTLkw}sW*+>FP`(zCzw6?4~&)(Z--3^B}!!b|zo&H~EaF5b=7h4QynytI28p9aq>P9CkSBkTN6Z(1`$= zxyG-5&ts6Z8LF9?=*oX2+-UZ$^|~EHMet#++8_sC>@L6+);;e zl6lk`z|AA&VzoFYW;6s4F7FmDaS_aVfR0v*-4v3re4pYTgx`a*diEu9p}KkV@3rMjUj6*Q7t@&(iGn>Y%+lLR`!!pk!fW~lgy*D1q0|0E&?yU%O6YTT}0G~`EctFzIfd@ zden7J*#mKEBO0sK|8rE;3xgFJagG-CWkkZ4ib00Nc-%HylbxfG$S+H>x#Fz~$%X;( z%E0JV1LAab=~{V7RwH5?_d_-XUa3K?%a=txN7Gs4Ro&yM@@J`VtD-g=UxO~dO4cb$ zn`{oPlfQRWiBW;##uVV+b9&mj81Fh~m8KM{*=IO~`sW-Pk%dl`V-PT0Ukxm0NOHR+ zX0%UR)u?q+F*YT8Wxgc4`-2Xb-?h~x+jLxS672(*pDA}gL5Go_e&l1ge6H>)_e88Fvw`@TQ~Jpf8JYj z-t{8}>%HZOeUCwEo0G-3-cM*8z(QaX!i}P#UzwoQqB46K-)4M5atPETxq&RvOfn}SM z(LVxvXv!=GZx)b^)8LM{j;DfZnj&c<8)=_qmz8)SuF+@3me94aAzv^S=rM$mwi@HN=8d!_}rOs05d{ zCvIBQ-5zKdE;x7o*BXZ8!l#0L7Qq)p(kwc{#H{dA_)dYty+V2gd;N8@c&uwy#U-x- z*QvGDfiA1A7YbxMzg1eQ?26jGiaNrJIurEJrJ}C&MYnepbypPi1WeyLR&@8+^qreU z_lJufe3`zte){3hqDOYyd%dDEu_Wt$TpYGT`5IxPPeN-~A`QpRhCA5N@ z!+&&nU;1iq{w|kqsm}im(~C*lwm5kgr>M4vr4_&2Q9NEz{O(xs`}4&gZWdR|XYNvL z-?+7S`RwA4$BKs+6}-0leX`>B$oaun>!(JCP4{YxEev-2I;J~|(bfMm^S|LAaM15* z3>HFQjNP-ew00p1>lrt$=5_gcf3^}+L zI4XwBFPBXkpSZKvbHR<)XB+89js-gWEwbFin;RUk|9#Suq*Hh6gO0TyH`q4=JT~K! zzatzqlGM2Dw&$gtRX}ImQaqs%@z%pyz{g+PKQrK*(#@-7@t!8*84oY(rdD)hYL=uS zq$WDuH_4V$U{ID_{c-nGiBWrb7Z>)G4e--DV_LSGrxa*b_LZ8Q^FNrf`NQLrv+cIT zE%2ZJ+;z=9+mPo09gk62Gk@$U^wz#;TWobQYtNQ0!TRBA>lz&A-LfyR>)%tXn5CKl zUQItph&HtRlD)U>=m+)Ay@))&=zPQ-B5;n)WX^UX5k>}+Ps@*OYr z9nd0tY(Cc{F|xBV+E`HXD8_Y$7_kqP~T$C3bxfAWP<28*+x?g(E?^(&99rdpx@ z616?c{PM>%6O(_MS1JMhAsySi2?w`(?2GBgU{+*tcG4n_w@ETtIea6#ZBkjo9-~U0 zZnun|C1U#*U1PR;G*Mu*1(h$WBP_|fhyfA#vf0)<`Es^J>k(C{|H&kQzVzuBp~U>d zpTL@g#)?NBcjA<)qw(8IO$`A+dE3EhyHwz|jW63%kAf9tcxhe zWX=3~&rE#ZLh=j+4NYBV`Y6I^wfvEAX^*i|WN;{1g@oS0JiHn4c*8xMZb}x9ij$H+ zq%rO%VEDy!K|=72Az#@0S>HE;*R`CBLce#~cK!Bxzos&E|GQ2TRdJ%~Hf=wu=<)fS z4FUoEXxf5@UN>31dA=`lI^x#e$-0IBf8>qcJ?VO|*7yRY_wyWwN#@Nw6G6m-9N!0VKLHy&XqK~}%o7#a zupzkLG%_LZ+Smnd*wTl{gn&Wrw*>DYKsXpUloNXY{F|J02{#wwGxr4DOKKtU-M-^1 zuG6$*&*yZ#FlQKh9N{61X1k1-FAuqXsZ*2ZmzNqlO93BzdvI;-ueV5IMi(A}Jxh(( zF%FBzsy@g{@cCx^)Mdw_^K6MagSF5W_ME3`@~rN#AX4Mq@A_n6OkDzlfnHC^?B>J* zFd#B3gsoX!eqaK-!t2Hq@-}J~H(SADnR+PX9B=|M;}PS46S}Kr@j1u-e(TzL4G<@6 zXSVFNs!~9$Lo+sy8O?cTKk)AdGAR!k+-@9aY=PU36cXN%z!mVR+j0=sL=m|@P-B87 zRRqUzPGd%faS%TZsA`O`4g~i3$03YSG?ncuk^vJI+HS!D`?)mOm|sWUK#Gh@B4hSh z-zx~IYsZk%_L|kaB0JGo21uC%_$~tkHFbyQ*O!oS5i?kTh{hM}UJ{ZC)M8mSV+wQv zb_Ckf4cfs#6JbCFwKgKqUs*f-#_WwE8asgZBxzOEJ-}DZvbn+EeZ`W6Sk~U>-YW-V znGx83^$i3-jXlq!8Qs`;FhZtpj~>s^;hmJTV+JoEZ9~%Vxs(X)9TU|5tB)#VR?AqZ z!$}ZGY;5;y1i;PO2E_X|36Y?IivpFlKl!j<5lOh_nuwx~K?lel;nwpZs+JVREMb>r zPc>NI89&VWd#k~nl^EN`EnOVv1A7nEQD<7Kj^ez9_%aQ&M2(>3o!Aqc-;-FOV3%jn zN%u{Wc-z3p)s6bD8zWuM5$Our>s?;dcG7N|(G{Ybz^#z3qfOH!j1*x-8o;4KT*;Nm z#PYO2j$IcY<5&BQuzFf#_t@pOkDOhWf270uNz5Ficmpx5Sp-ZEU;?Vs_N-?(oNg9G zGp5;l`0ft2DjjKw?}JB|w#Ygt<7!Dn?IWW)GGN*6(&hJY0$*gkE^xRTm96$J-`>_> z;kP|I^lKWvz(r&*$wMQv-{8eC_cD%4m!vB!6M)dX|G-pAu~nw_CW@ zwBhmx>|x*DIwFe1K|W1kd-t)40U77<3jqYRN)6devJCvQ5MXVg*a{HnTVf)@Miw%N zBFFo{0=yx&)JDz1&Z7tyi8Vv79~?J$Jx^q8j|{gyUWc8{^8}B~EirB78RWu3qnCS2 z%yIN<6IKZ0UO8kVr{84q_@G)LvO;pqJEScK6a`#UZzCQlh_?!{a9q%kTx6lfUvtSKw~aK zV*gx&>rXpJ>W9;*%oN&>b;xo(tZSk0Bf_SsQy)ggij*ajdSGrDmIKd4~K}JEFqh*hFkwR_bW?>me#d zM97jO0|EBKAFH&iT_4k|e*)O#6b`vSDRPR*FNheA!30I_MF0ZGnlZbCtrRTAsvs+E zqVe7BlIE@GX%EN!G4+WikZ@O zdBm>J-!e&jF0jiuKN6*P<#K`31b1>|?3gUddFoIe3JYLN^p{Tqt;v}+F({2-0f+gSpDHytwq@R1_JT}Qm z!?8%J6ceZD6UMTw7_|og@Y`SB6O|;jW4STl5aqMpMFhMU9i7NmOrLQ?U)DW)N1TqQp>ZPQ8&PVDD4-Ae;l~L! z=m?zF`-4Q@46{Hf5te!!HP+VQ+TiM6bRtP$c`uFH22$l9y`MsTsWc|Bi8-%4CzRCVARVn@ zyr?lgB*4ka!9bPSWeP!>_ITcay)8(s0jU&F{DMVJTIv1+I7?3;wyN+fd;BtxW~}

H8iNEb#!8c_5%aGs@^Q9tZw)JiO_GBiSJStCQtlz^SXRaYmwxzltKOBBw!@&r ziaTId%QmB>`Tu1RHLr~G?X5NTjMuM>yJ5>C&&X}clQ9CL8qn+-NL1Ije1$EqvdAuD zECv083)|;2Z258i4|f%V%r->=RDKmFr+aoDHUX)$xUV*v1nu;z@0!x0jnv3o8Y>4H zwdz(gK=0^sAOYd7Cx9HlBSvX6-s7f;0Azp#&~ADHq)ZCtVA)*z+2;j)5&D68{Q0X4 z5pe_1`=~^@zr+eF$WSAxF-o^0z>X$xwHD5qWCI$Z4GFkKw=y=ZbW;nkK!gbyMl*%2 zbb)`T%62@~`uGqlfA5ScSccO*sA2UupH;ay36TIy%U623>+em7Jnk8ur9?iuKF2_6 zyEIAVi6@xz2Ihoxo7^EhxdcWTB8_RlTvsu4jbp~`Ks3Wd25aCnhcFExX)t0y^swf! zccZCZdgm1hy|V7eF+c_#?+Bl?@yJm+aM>2_LJJ-TrB#hs!k$N1J=Nr|f%dUF)&NcEqS>zJ}c{hu^U4|J9&YE`|KRNUi8_CqRuXQqK zOhc$55rZW6q;-8gG0tFiY`wZa10TO2dE9Tj9lzvB9HS#-zsQ^QIE4=Vnhi6jA~sq_ z`6}$fU>zrfC1MP5zfq%J`06kdmJ>xLG|Ii$2x+l%zXHq>)nv|xLp8OG^=RXkJ}N1bo0`_^FLzhOX~5N z8V{vF$9}gH?M310TgKLGkdij{PKLifTN^UsY7P)Gnv6&+V>N62Um(b{8?R8}$1}a> z3rr?qs;utE(8Kow^?^&+&9CCELh4xKb*$q}R$4grG61Hq@y7upwbD}sG{+9wN4&xh z4NA-eW?Tn?Dd?Y>AiV@z$~(>40OAqJ#dbhky68&?R{WwVwl~G&GcYS#m*CjMYW@ow zPwzEU07h7Nne@1!767N=%Mmm8{b~vwWRZ~qp9d=)%=It7#hmyq@<6t~C;Rawz^WZs zo`Q*r1#wEY)%5=)Vff>Mz?JDoHawfvmA=9604sC!Gu&X*s66Sn_H6K4Bg!DlmTg9H z54r&0m^o;vCx{Th{%1CY2!Q?0R*% zJwrS8l>T~2{O2WpNPt_<2C#w|ohqX$c<~*!LAMH9(|)Z7Ysi01VOx7nvHddGK=XWH z{OpY8OmMQ&jSokl5R|H=)=6xRpk(yi-VMddRV09vr*l%gurh8`JK_>^PIg)*3g+t> z>oPV?BcwSZqOk(3CBiUY;8wGAs9ylYuneT6wjL0}I=n0s^ti`*8D@ypc-ZAv(fUAT z(tN+pp0mv-uh4ru^4Jb}hG=bWIS)7&2&zvEtLvOF%!rX~s`_ijl}RdBpENVr&BXj} z^j~(z#Ies|(c;o10jlLg6p834c z&W^yc#yG!JX1A2pZH1j=>mR@)Uzz>4TRD)Z7i{WJpGO9Bfh4v?4Z^TlNJ9zreG)%D z@V|=dTTtXvVvO@zpucOeOb5+UYkY=8K}SU16bN$|V#uM}V^Hu}PIwh^7NCFm>3(`O zD>7|XA7|4`DEOMlQ^{F=niIwpg$#*iIf@u%=FGNQy|@z5C#s`zyjYNlyJ(iSJ*&<% z__(O}cxR{#(l5v`?Rb#2$dBU2P;kPsW zcV(36m*hUy zQl}K*1ZD#VsNI7%7RGSgS5|uKop#yM{q-wYg4^f@{N%~lB?nrjStswDcVD^0I->sM z;9}R_51wQY&#FHwb|8P8x$i`?$x4|C?s4Zic9G@X=pPiSQb`;b-L@(rB>3apMfx|= zf#?XTtC6#BFi+1CdMrSbk#wdwZ|IaH+F0jw1+Aa9Q8;e8Co%fq9U&0~5?nK)6e?QNUL_CgM zzmk-b;phyKb1?n{l`*c)u~+#IdM21rk?YyOIWuaKwU&&0<^Bq`jAWCzpfz776X$ay zU>TtS_+8JkZ8_(r%&m2=jiSH) zPA#En65ChxU>uh@m~Krdt|W~197fuJF;RpKp8**3jOnsOveKwK^LLUw+j{{AVz(UYsgc?;5#Ivyp7h*G@S zlydDK4naG?#NJPf6nTz8{Z*a58MIJX0m3Ca3RH33Y#WUZk=s6>7MD0$z_#oD9EW97 zV9>)<`60GzG*;}F4|=vih%apz$Q1~=w&$kX=CMR^+duAu6{_yzP*HA+Mn#t7f$?`)wJF;o0 zpq7qXQylqH4#?#kH7W=X(f?o)n-%QK?2x|VRL4X0-)0{TfL0omFqKffMLd%m-1x=x z_N3lj`8%9-HRAxd@&v8r`xTesh$w+qaYq>FgbD>P}QIKuZv zw&=R=oD|RmJ7yV@L2YIqJw5Qc4Kz!N5w)b5XzEO1t;oH5DHnXpm= zcvz*%_#=z7s>-9b&5Wxr6>5DyVnI0t1XL^r@+;_|C`eueI<3eEy6wz<egp{#HU!DP@uS9k_?H^6Az^nO_LTS7$3b1b<`LqENPXvh?9isz0vS z>cMrZjhzP^kn!_N;=f{K=RLAM=zdsQPm~mejqmQ$vJ`G!bO^5+I)8{lE z;NV6YU2lFjI)3km#Ml&c@Yj7eDj72>ojM!|Oy8QS*m2;X?pMRj-{)`s_wSDXZtj@w zxHAI1-Yp?Xo~}L+36O)M>zNG3=7q z)9WpNY3=9ipAm3**}J{3=N|N4qc=zNP;dKGaCl3nMYT|B40@^`E5^wYBm$%ZTk9&o62?UTzkB-m}~mE0!_eP>yCy||S5 z{m1?Pp04L9MJNmBq7?1&j@{tnrmnX0i*L(b*Pmz(NF2QT#Mxm*&9-kV@76vnBg~_I zU-RVj;`3WxP=Bm_*0Sc|<>gjC*S)y1?V)&VRbp1>L@HeAQ9%Jb~Bw(|aR z^%wtMWspsHt9O*$v7E#nv-PHr?|OCg`NW#2jMMU(LE5|2s=XUv_*X1TcQ)Q;tqk~F~xezXrvB3S& z8E4YyWxXJ|6p_DQ-)ReETpRspc$}Pw!baX$1W7w#w~sxS0I-RKT$nWCrfFVkbvgo| z8{;aHM;~OHr9d_C{>9*!{6t97&g=VQvr?CrKVMrIdLVh3k*xY@dg>E@coweUiHw|v z`-w{a>fr?#B+V%S=v-2#E`*+BNg)I|vg#^wp13Cr#;EbYvR9o;A(wp`xxFECkVe~u z(75~>b*44f?<)Grer1P{b>BufE9&g+)?Pj%K9;RckFYp!rstIHTE#(UYVC)`!87W= zA5qwAYu9vLKKv=WJ8H?>uhQD6)kO#|_*lX8!gA{Emb9UXmb0fZ$HY@o*S6YSkw0HUm}S> zA0m~D?f;h5XJj7sdickBKQDa#nsN4I*z6-NV>HA12vJ|X@7ee6Qouzc{1>+n6VwS> zY#$I=$LcGU&Fvv-P)Oo~h6p~5w3$+4y^&=QL*bzpOF52cO{rmigb*=K^L#IpSbSt- zH)Sp$teh2F+=IB z zL|Jf$omP>>Joo5gF>_S^P^Y}h=(tSlSi8;`vDX+III?lnMmO%N^Kp?MF~B)c{wl=5 zVsFBxaUu0JEh_$w0WO_88e#YP787Y-vEH=dWIH7~Sf?W7j=hR}t+^E>ZXvk6?y%}e zLBDc8wc7~mVb>8O_MB$pi{Sm#{~7_m#tp%Itb^r!Qg_(KC}2Ccy5+0oVZG_g$Jw!B z)$2_h(|%IP_k(n-XQPTdNP}8Z&KK=B-1#}v>Y9zI%AoZc`18Rcv%pDntN9vsPe^je zGPk-*9N^{8xG2=~&osw{yv3UuNXXCoPtC`-Ai&FOZ@kOiwaRX-r*$zbiaq_Y=<$=~ zR02x!>5>W;E?bx1QYU6=SQ-1N2g$iyAC2Lue;nqn&*SJmG`ybkx^Vt4o087L8~aov z#eUp#xB>>Uasjab*SVy0T-XW&YfcV#JxY%WrKWOja&S zM@(NXnlZ>ILq(vy(77)5R@~}?%N`i~B6f-5m29b2fqRQ77Orx)q|QV~r_Tg}MPLUw8u z=Do%s87m+bYLxUqJ$0iGfppR$XoOwXZZKSS=Zb;%OEP{X!@;tXS6oP1@_EvBNj!PT6bzN1?KWC|7+i7 z=$ymb63bQ%={n|p#fts3VEO7k4&^&T>Fc=*e~>VGru#~?S9dJ9MGl?4uR;6vfeWD` z=-g}eZSTK{#Pu0riVv{Z^L<)*7Bk)QBP)a{uYCHrp@Y&na68c5ux!=9U%L*5B&56P zcLpV$`id0gn^aM;*)-i&5zrNSh+ej8O8$J#z$bh)_l0xS)8brMa7RNEIca!Uv{HrV z?-n^A*%@;K!>LE$xnJM*cZ4>cTeF*?qiMFZ%_kxD4=SEJA7|q;!pS=vrdDwg<&rQXv_LrzGswf{0mxZ#25B(12|&O1%I5(EeKZ3pud7&tT>lQ8j1E1g z{Z9;F#?`>CkJw&$$6n>Nb3_E5hAq?l6+#4!7dA|dD`WjFR<|Ef8hSJv9)Yn(NSDg> zSQgSyu?9zr{Qds?)d%Md>Xj(q5nd#ZI0BpQP+z4n%+|`U=J5o3-NUMzU71;KuV7pW zY;-|sf@I;61V-CU5UOCFS+2^I8iAC0ID#NSwhmQ|x458s z79)Rl6&cicf3QiO+B&bgkBf~WM|64M3tR;XC90Pe=&k{Nm%WJ5tcw5;MKJh2%`$?9 zX&wR1Ves6!;j5=l<=5F1(5agLW9rWTV(R0+fuA$`KGQx;+f3S2YFbq)r+pD7iYS>D z?NX5z;ml0Uv}z(r$W$Z=6CwMwsjQPiTwzj(D-1%2?zz6-`+hv`zo1{vXHMt+dA*;n zalHZ_eJUnP`~H!_CR9=k(y)P`>POCK04x>zgH5=%WSYH!z%QBRcP7myi`EKh`9m~A z-lO>p7Hxp3)(HV(u9k42Yr4%_oA|f+d+4Jvx-~HdaxX)Rt!cQ*Hj>1!=A-viE6~i- zsR6B03F#Ndzx!6|&{SHx(1;+L6+U3R;?Zxg=(6`lEv<|f9~m=Uhw6EZ_Y{LGUgr=zJEw1C8miTKI0-Op^v&*bhMmA~V;fCRwwR+1D7Ts)Id&IFzTyK^PD`L-noKPVyxAW4R^?uP2`Ye>YqSV!v*p=}Rp1%M$FOzpPGSQjuutu8#mUa9+%u)BS zMx3(3iqqWmi`|%kp06Y*?e2$R<08_y{sWl)TcMWH2ed4re31a8uf-45HA(#Y4|$bQ z_YBvtux2s~*YRUOP-ozC%0q-EeLL5^0VhsEhj4#zaRW2~3 zH)}^!4a`4sF&zy=GZqm=K&JC_?6_3R$%zOV6*kbhZ;m8+HM~eu^90DoibYPx7-lxKUocU8eAKR`5~x@B@YzbEIutua;$1<`DI` zOXvQZshS2StPF1Q(s|6%9gWd{pWxDbK<5RIQSD^_^K{>aq?OS!P z1?xQP(%TzTe2DiI&|0>zgL5Zr%+2b`!acksVb z<1L&@f6|Z##Bt1C^5_;^X-Cat2tUA99jn}tMC?NeK7x6mMshO+zveSL?^wsptUH+f z68sl7SqfvAY_tL{w=xa+G4uDvr<(hkD{;CPgfK@VyVEjE+k6P^)`2-=T)tLoC7gld z0^~E_{_O4er}qxHpPBct6HEM7)8goIOmZ_9T6J_A*1~D*FkIz&0h@9To1!3o$D6qn za#28+%OsN)48;6mt|2v}jAQPOetuSaocarLNANZ{_(&!t8&g2sFU4dMtGHWXt@zfc zu{q`mVC%u8ZetB`U`jNT@=Fq4{H*0*%_@^(^=@FF4MTPJs2;|m&YQq{A&{IguCr8~ zJcp}kEF837&~&qEvqnCyP)4<*saB%)etH@Y9bD2XLl^>xHE<#mMlltJtpL993D%Hl z-dtiBQG=+BVbrq_>w|Tb4Hq_v0H$KfgnNhEqCL$Tnq@HJC=+rddX~8;j1_*Zh#L$H zp+K_w2V$oiV7R9x5}mv97%n45PA?Ui>o8ip3?F+LykZp|j5+NqSscDn_c6ueMHl^6 zm#$-??)Py<9V`Fk8;>Ph3`WPVK6Suae4@vS3~OTylwAy8E@Q4icVwJC_1mC2=BJcp zNOxz{7Xr;Jk0ZQYRbHxG#K-$jbZ7jFU+;7I;-x!(%S*Q&qxZ(kb3VqPwoCt3^UD#| zR~&3mzE;T>;OXwNm|;C}7h{HX?ZH>w#|?=0JcBx(?rcNWDL`}-RGndd1yA?N5<~B6 zZ{J-jaS z;iFHx-P&-~kng?#ttSO!A>dcZTy4H{M+y@oh^zK{TDz~GP{%Ai4&iHn3y&rDgZ|)3 zWu)eB`xZa%hB-qgnU^#TJl(9To?PypZ)|MXZ|-6ohSwe`06SFSB;_;%Q`c_+0}Mmjfo*v{kdj_c%7iCj-!bp#sqyL_dX ztKs+OMVa)U`!eEAr$-JK@NU+*^yojoIArVV;EC&`d%(F1X0GyVH|@zVW-Qs!+qhK` zeZ(YU6~D|nfrSAkP*BxmobSg?YxG|mXKe#!ouaniU_NdlM0rl_pA6etziFXyKx&L{ zlHuEx``-)+SpJ3{kD+%B^#J_(-D}3x-1?QBfp?={ypAz^e-G8J(@0R*y?^>ReoW@A z0J=Nm@yw9N^YQQWVm+pJy<2$v<9x$k2E#bPqVJPcuVdV;W!-{}L;xRB^Jcw?M^-hU z$n^E*pKNF%m`oa<(Yvb6H^^SG&D*@Gt>M$kW6jV;CUo>&cMk(~!rgo6%)-gAv%GI{ znD6V3&Mce%I=}0CK;cYW@658J-&2jg_rLw>bu<_^|9z-uX1Mul&hBriHw_1JvQmx$ zb6uZ!H-VOo`J(x6K{vm(vu1YA|C;~%Vf@7hjlOtVRaeNZIW@IzZupBmS=%>4UcoEYdhWPR-B;#Q zjFD=td*vVFU8rw<&QYAj?Ani?uOL<7j`#Og**48U6IpNX9zdF|FWi@vw5%v--R)zY zpBDxR)edPVxeVi}2mEaxI+jY8SDP-DXKZshzwik^x+%6J$*#G}Aqi7{ZOJNN{j~!8 z=xZYV6MUWbNt+4fn!M^Q(p$2NB%B_{X79szpJ1g?GYTY}awvxg$-}AQT zsDWr#)a&ejpLV4Fb7SXhw8zs+JAVHqyLZO4FRv5diev`YRdgPe1pPj2*JYX1io5x- z6VjSEU9z>`u=b;(Z_>et!g*2ft1scv)!j!g|H+^I`tF~zmGirH{h9l*z)&2x`|tC` zFW~o&OcguOX0_`QNq-ZWc}*SzN9POvxCX`u8R-KtBEx+8xQNBKh%GUxcZn@EYb}0N zYD0iosrI*9o|HR3OB%0mJ9kmB$MY{PUhGW?imz%5SCdo)?>S+@4}P|I641~dG^zUL zu`q5AbgOvNf#_ZMgxc6WK?w&F>Pr&pQqBw}9P;ZP(2LFwS_2&xlQGft`TqX0t$F9Z zAFMuaaOq(3@u0=J4L6?RYd7xjBqSf(yCOLGcujO^a`R2oSaK8f-r$K1*|*eii>lG9 zngH*SSV#+mOWy)5mcFt!6pq!uv?@&#&dy%tFHAUh-&LmjXp{jlbHB8vfr*n@*!9R` z{$=3F!O#!>No}{&HlfJO!ufO0oULH}pn6ui7GH%5oV@$6G{q#l^wft9X9!;&1ggHr zqrs9%6&!ZDv6Ox$3w6#aq4bNTx>su0*J5tdaW8Z|s>LpvK}c>pa%(vGM46K)bZtdK zJ8Mn5(~VUPL=D#0rj<9YOgg|$KPPEh!H|%+d;Uqh^>m3BQPvuN?x$66w_Ztbh3Df9 zO)EW(HNxO~b^`5h(Ia8dJs;{}kX8Xilx&rTlQln|kb?%<8~By&jp zIomAP0)0(dW;KlltK0qOvkEVa7f$@6g~4h)etzqx|4L>n9mM~9v35G=!uY%ThNjoO zg_?TXekp^AzI|U67kK`9b?Uxrhbq875l8g;K6^1MI)8cNb8w;F_*Ta+-bUF9Vx2ed znp9+ome8=Oh+YHX&zJYz=)&*@DmaQH$YeJ>%OzBlSg;Vm0zFZ$NSTlqp5a9siC|MZ z89XLR8=v3eU4R)VB6qTJN6`qKEVhinjNqp=cu{t8(4Dh1?D}adO2O!wUys-FJyo-}UP;?i?GxQnP}PJql@u3>B-5Hc~Dy0j#s6!o$5A zSuKO-oz?v>6p^{8Xt?)>r{Z)~;7R z6X2;Wlc=^B5EIgb*O2ymB)}EKZR)CUDAt|dt{1;8jzMDzUHL3(>VS{_eVM*jFz1%# zByY_`=x9Z&vbd_D0kwTrB%3o{Y!>ddBVZqlr41eE8fc=w5o4VcF{G{5uu<3!5u%t? zX&Ev>?~S;J;PXgDQE|GjYW*KMZYAf^1cvi1{dTo6mAlKE8DBV9yZ1xXgti|2Z_Imc zm7%1Z+Y^U0W&ZA^pD8=&LPVd-t)+j}z&QN{HNV*XZo%J4Tj_DSk2=dd9?yG~pL!lg zzuh@yr>UfLEcBs+vhpR}UdxkQju{PD2<_i*5ABT#i+>am;O_gKdW@3YB3c*Vm%7gB zcytfrNiBzSHuF)djThd^u2`@2QsII&FT77n7o}8+(GBBStq2VQ_Zo{KZ5CnY7*D+pVZGc9)B{S!Jy&bdSN-MdG7Q#%`E@x8k+cDzDRbRnsDzQ}XQz0IIrJKo4QTYGF!>#gvcXD{P%*%PS;O(hFb?V<%F)qD=vw(cwOk zPOleEwHt{-v|}kDMA|BX;15QET1kHuiR7yC&Fw)#pYx8`br;_ElIu(0?C|MjDE~w?mk}wrcWXq zCTHLFT}}oHl*YRA4{8rOWowXgdj*Eyl>Y3GnbZVXlkS|j-%eXf;rUM(U8DQEkL6Lb z9ee7Oqf-tq+LIF%KGSPg?w|-cDD%VdXW}ZnX(UA{7|yR5n;n9 zgIU+9Cn&>E)bG{q7+G}1xQ7Z2>{OypDXcAMp6(_XeE?%C#svcYz++XG5f{qFS687$ zpAixW3(2sqG;E#}u?t2ZGB8X4XTiZfSz}Y2iFtEg&6S3Ewi@{Gb>mJ9PIbyEB~()d zzFuk-$iaT`#=LBb!@wA0#U^T(YAoZGIEl_w;vR8}5lT-COmvmbWAkX}dI;PFVRr}O zn;O6}wkSjb#zKU7E)=tUnJ&CpWqInc5Ep4!V;J1uLUy`{*el-n6j=UCOg_b>2MbWU z5=wST2~K`Vt~lgU_F8vN1WFB^@(ojEMzev?s2C8-vDX^{s2nF20D4M*2MVD17K#FZ zR2mqfNRgV6dKBch3gRUU>5ZzME)kegrgmxjyyL1=!4N|+PECrvBcy*lzj=WSU68Ta zNRCb7U{3+4RwmfW#T5>KZyW$UIaWm>UhUQk0}vwG@>z)Vi9=N>wEgmJA2X0f9h=kw$t4z-&`#wba*VCQ@CZG)Tx3o@zK6)UEt zq}Q_4_srDt%W5yB+rk7C?IP+6W++BR9bm5-W|JRvkhYpr-T>rbfHKGd``G{0fag3sJjID zcP&a}u1fL*Fk_B;DGK~xOng@af`KB><_9WhE18%_iMz~bfd$`Sjc0KA8l)c(xcW+y za1ymxiu`tx76I&tZasnejC{Nnea#P5jX^JBu3M9lloxCze2jw4VIR(k>eO$9N3y90& zE=`hSFRPd6Owy{RHg@nmyCxm}V{{<^^mS?sbb7CjyBlgg@eI9#iP{O{L|#xfC*;D^ zra&q7JNG|E7nY#~RbZZK|3^Z7CP7L#zL}D8c|NfoM%+)bHpw6&w-W{I)B9BSfl^|Q z47@7Ep%s4f7ZO!wxtIp5gA%hP7Dcz#hAY=rXs!J|ikZP-tNm#q8NknD1{4{v<1%3N z|1r86FhCHmBkmyaJhqM&W|Igz**FFW^1%V(Ji=bX!jC-2OkFu9)K4 z1)Yj{gj_>w_MS$qyBo14s=%gKz$PvEHv;{CG2M)od;1X|P9Riwn}NJ0=g(^c*m)^Z zWC&X$fVsmLI7N$4J-6sp9Ay6i)b}LJB3RRsi{Z#4Gidoil9K_7dJhQYD@O7hQLstj zm}#IdyE{OM{Lmk8DXw{qJRn8Vyt5EZt<@KvK&}}>mHEy0>oIoz#tZ6JtDnEp=bOX$wnijOG2l9NCy*}#!8G0~b&cL37f^H+z zY0bY6Ch^uHHDYrcL{U3ikB{y5=)Aq8@~Ya#mbOGD$TP$B6cYbk0E!|?0PTt>rf`7* zzX8B)xw!ZB0H_b(487deOttte!+-tmxPu1(YQE$bKNqh1v3 zI^fx`woQG7^4RlB?|C}i!Ipt_B8e=#l~RmKO?i*XJQ|z*#G@RU3{2$&=hJeL#<$nS zbq)G3QJ3D+FV|T-+e`Fjdk*pqf7sLi>0SgRu!U?}BTe)IP29C=+_*j4n`_yxZu74X z0I@N*y}dGFL%-jrjH<19Y=&B;%{v4xtVt)4OC8O!LLr$*V9_Fa+wCmdKYOj4zoZqj zfQ#z5R}XEvRsn+#c%CuJd^iQc8U<-K*?dZ;eo1@a2Va`G2 zsoKpa^?q;{>+!M|1^}~6d+AD-t)J?y9=hVZntJYL%`7*>alx;&s__$h_=SEScXC&kvBhH5vVo!8;^!~GQ$tj^}*ZOj+lYth=%&zuwg*%uz1 zK9dIA-^)mfFza=xg&FnelTuUoQBZOT-r)V_w9lzM{87!iZ4Q9b3jU6hD98bx%zA@C zO>Q=P4uP*9p0>@&d!E1j9jY@GYZN_~`(?;-y|#qeA5sC!xHdSpI%^ob(H2t-!HnEWJhKgAT}I z;sW0xcZYO(<~2)ieZ&pTBR&G{dhI)L?RxWrcEADDtIz=E);ZA$P<>%mAS*M2unM&oPE+ANw)bk zx9XVtkC}5-F3+o1n=r5IGil+767?0HgNHRZPEV}QtL}38G#>ifp00lAhkUNdS!ws7 zBXs@rV87`yhu1SBoX|hj;hgZI@ZpHnTIWl_YL2n%yaTpn>!a|za0jYmZSlh)hti$l zYc?fsat`FlUAC`D#IhHxjo;AseHplIktA}<%@59iL6_-|$R&6D4n(aU-gIe0&dZ|3 z(Rpvtmk1{B`f@hpU+z0_W!Kfsl`p(r8~oU~?Lo!bP=QWDXN<^5=n`9E-rN~mW_!ye zu41tb_n-CMJNCH0N6e-B?^}8C<2Bvu*=Ife##^uSoQeNSeS`R;L4~Sw-ds*Rx*Ow` z)F3julJvzLbGffN)BkLI(@||*^1gKmpL!1>kFATJI_&%);Z4hqWA4pe!@4QwAH2vj ze|KgTW0SCY*OKevzj2HDI)~2uZm7Z>zM5F_?0X*bml$I^IbU~TA0UYQ1@#~|yAQ?z zQ61tY0PhT#oSlvy;O})OagB)-=1KpuNK{GuA{&l5gmAnfK?S+`Ua}K=1k2wD{1FP{ zGMA}b9Nwm*z2`=xyLpLWB%6cY6REk@&sLL--8t(4F9vXn&T)?aqh4^L2uVI;&iw+p zJ&xVx5;oLKRmIgz$}0EM4Ag(01AJ{y9^jHE@EjYaN=K@1DZolKJ`Ks~)u0Xf9*56UpL!^p4GVWQ394uz}mB}Lh z!;{|n6xPKzVO_{|lA^ro^VA$B(r8{4!7LA@rcJ%pecNK}{Dl=TuPHI;$q0B)ppmzQ z#PKsb0>EEglsI3>9!#fd8Gne9!fi4f%)lHYZ8#c>|s#HMRrdc zg5HHR>0Xf52h`r_BA zp-D+Q-%mPN>BppbmGS+8yj?!fZ4z&@0754dg~2G$^sU079!z zX9pGnlW^I~k}}jzpm13s8?*UtBjBu#uxShcSb;JPVJ=P!5sL6M>6T`3xoXqk+HlxQ zYX{fc;1~47VT47|%V=ABSy@aS8&T1CvbDo4=R{MDIqN08bTW)ul*S}R2KExqjk`J~ z%?pVAcY4;GXW<(@id@6#T~n{BDdqs*?s?+^7dTJ@z8S z=}+wKW{O;Me^%!A#?kww{tkJe6+iB(4Bx;FON+aR$+Gsnb8O+_!#v5>-Z;h+S-)pn zs0!6>(w%LwbA^A33tArDK^0>hI@KyI2Qm$xN8NY4rBTjUaj5<0iu`+rKTfzE^Im12ev~^e;UFR;=~uDII1yIsO{2+~M0~=rzhC34w>j z?kvIzd2!BuSgRw~e?b_#XIYJezmowG5|kfTG_qlHmo7()3=xR;M!UG9h;TbX6@;vH z)&#BDvT*fPN@T`W;MkHpZ-yL3cg&fw>pz!isK${FBTU>~Wp`Pz>F4k6*v%d% zUTrc!!wxYPrj9E_`CrlsHpWcYA3%^U#%?%xX&jqlSKR*Dy?ZHQSlW zvzK_spJXQI`fINy7eF+FuSX3`B&80y##=2cqPJ~)c=}Fbj5-PjYhMXR2m3Y>I&;1B z4OxYrflL6QgqbEXY*a3SEdCa)f8{vpVyg%*!P(h3id`v_G3dWOZSSW={CB-E(vC;o zj8nF5KE+#zZ#57)v1>)I#*MK9OFcd2<5wb}j4o3~Qt!Je3C~5zqDIrFACQ?~h?EK}<-miW!%LL#h6ofQiJ#Vjoch)H4&qZ`)Z|0NO1bAW+d^9c>H!T4 zn1Bnn_(Q(nqa|KP!XNSCBXLe?EeLEb7QyACivc4D$ddp+&%rrL9$v|s<746#MKQGw z(J%(uhvl*{>x{9RWSF{z;CdRk8dvCsGqRTzsY|4NxI!1EKpg_rfWr1yuo{H4Q3yPX z1rVJF(V5gv4}^jbWb}--~wiwuzB+Rvd3nH*vYDGJk!cBDHhPplIQPV88 zaJL+rt+3st5Jt}y?HCoOD(zASuo+@(5)H#Wj8!c#f)hm?@8i)fjyt$mm2rp~$HZC) z(JXk2#PNEDD0UQ^nS@#L1)U(prWRwjcOFY>xwR=*7!L^JC8lw7;U>9=OUG0{5mCGZ-cA?!mt(T%!aN1`bRcqfDc@)mEObP$D&`9k8OGkTLmDEdGHBo`$`Jp$p$J1F=8$q(RcTRir_v!JSr6(LA*HbgWjnik&o-Z>WxNQoQEtusQGfQM_1S13aP)^9u z7-T{xj&P9esKqC(5vH@?^p%Q1$CfK&gdN5R9S+}$3u<;_oW!aq%_Y-7gy!wwqhl?G zTytcGplIKc3ev*U#e<2%Er&u7b+{8u_T6_dzhZ)y9JgEsG#sqHT2YFy;<)E&+%ctl z$p(l!ZV$FB2mxym+5@-iG}UUk%Lmd{jHlf{RfedT@3ygr_Z?F^_+EOzWlE6liVPPc zUpxhZ2aGgnsOfQviM-oUf*KhX1~Or57bB`vph8)|0T0blZCWu>t+UOIR;VHvbpU}s z-BMkQoYu9Z3>TqSOX3zHAs5F?_cDAhE+}hc38sl=jZ;zM~Xz_%887us}16=)&z1Nns@O+`A+| z-2zC(fjG#P5C~ufz|?uVt%~zaVRpyWHp0_IrgOp=i(_uy*oDWu*N*}*?-1*ytDAm# zzZJtSIAqkQBoaWc#1&eO3cTpBXK{}!cd6O{--8B|AHsP3)+q^sHr4ZE)<=a4=I8ot zjlcx$J+=|&lm|B+=oAIUQ-ZDGWJS?d+!N+i;f_&ZCdV-^_tqwbnVaf}5F(U*A2!inyrf;%YdhZO!GGNtSn* zRyfIc4$@^>NuUm`Ob_NU*vRVDf}#av{fLW|$M_}#A%=m17uI(ex%Uyd$i`~~EiOpU z;0ZN~uWUx9NrSIOU1JUeo$3vu)pe>Oof@2LmQyR}K-V=0+3x|iPDY+8zhYT@`>Eu< zf#f!;IQZx^xI=yLo^{LPHh#~e+hwYb)xr^0NEc(=$1yj7<&Af;61trg{`IC?S zDb4t&uZ6GrA<)E;J|A%&-p|t>AX+4WSFJbJrGmy0hzpB=g))#naB5D;!d@gUv$PpXJ`tj|0djrFzEkin; zXvzRz<@W*{eTaqtl&HYozcYG_a zgweVQ$19MFQdE9#3ykN82ufa#6vz&Qqh_%L7XTgjCS-$Xb%AhWMnFvGx%381jD?UM z#a>^0+RP%JN>{}J1#3KzY5;l(1X4PYAl=8lg-=x?O*m*xPLcnB2S|g#SIiB8g<7e5 zEI4bNQp{pqgj?li@vz^DHq7oM%og@~1SH-f2BM4|VgMmQE{cON=~E6#?Br~=NCjvo ziJNqLL_0dMDH0$)N|Z7`AWEbOH%Wv^10pw1DJ)Aji;KWyxpcfvS|6Q@P2mFB04BNxOHc@5baR11m?QR0_;og>lZ+U^=0#xE zgf$=kE+WW$*vaxm>U;zLaGJki*ZrUO#XQqAvkTJsEFkMb0$cB;lxb~L|Lz}c9b_zbXTupN=bIHhO_4yF1G|Of_@V;Fi zqpOjPXTf3BZ5QxH#*Vp>&HHJ%!UaamZC^qCuFy;%R*?A8>`x3X_maU0;rV+r*`Epr zGDkjwlTA|=ZQ5YGXb3dvEz#9}u z(E!C}K)8X`zed)s-r-X1*lW+bt|EW7=8cD#)sP2=QV2*2BRTPw3V5|Spcf%Q zxG~-6u=SLc+SRX^o}zg@k3V-f;d=!Bvw&tU3NHud+Iu{fqBJ{;h8M#6(C{x<*F;+M zJXW^yqs-5B{rEVVO zJ9L~1k{#Xk7~@wzW7C2*;B3+}I0TNuX`MxLy!J3_VXW$7-m(~orDO5ACb|zXGFMg61(aeCL72{6u%drfe)|j&&d!HT!b3~MX7(#n-n6DgUO%8;+Vp1 zEkbbW*Jf*2#bs}X9j?=On^o_*HM6k;U>dIPDi*QBLby?G{3e38QCXDE-hqIz7y5-c z%3rCoqT`>0>baFUQ<&oA&9OLayDeO?!bHXV7QGd1b4et~=N3lh=6Cw9>JV<5Ey|pw zCC;LUY=zX5h`ER20(pU2Cl)OciINZ+3jtHM0G#4Qw$m3Vq|QA>EdP)#UQv2cQRH6@yyUzS&Vm&KLfECqo3T62~;|$Jkp@8sx?GJsF~1u zm1MaZ18VKiUF9PRc3gsM%p8p))mbjd>PYq$+&Wli5MDc>N{BLkRG;>+w7;-fI4|B^B`v76RBURWFbHFwRerl z=8NtV;>|q`2<>j(!|vqUhfE_8_oEId$d!KiBN5(Q{A~pB)D+WlyD_-Xd2EWty;!Qg z-*<%Kg)|A~K66V4=7W%(fIgUnp)Wr(1_Q%)j*9&5XFy|!aEz)L;*ZghccVJHZh8WF z;PkWpWr=~RFBini=Nc{=Q&rzSKke_YNPoHWuVvM2Kx1?S_j2Nk?5D|VU*tRs&ynO4 z>)smVKHML`EQo1nh}wx?UwZ_6bueH9tYvdRBAh+)wjpaI8HpQ=N^;-uo_sgAr zs%4N5Jkw2n;q*A;@|!x(@5OK6j5Q*~Ay1pprdq=@LCps@`X5Z-zl=F=mbbem$-;T- z$K<-I0DfKqIKO+vv-|d<*xL%H?Xj!P>+%caTG8ETFet ztYhlikwdL~E?fzWtG<5miq+}G1fqGXy}HO+dc&U3RDS>aGkeBGq!@VVPo`}B?O z*dD!RpKW^}Wa~AnrpQK=e(je=*g5C!raRuq4IM)P3&(4Lu1+z7S=@*1a2B*4wA8j~q;Pliv(yzCB^S-nwAZOx8&Wre|=a*jY zMjCdiV20?HhV> zk_Q~)A)lLbdq&=R8h-Dx3j6a3CBE!Y^=QFWk8gcTcQ^d__t1kIzd!WM-;yuT-d(uneDwx)yt?mt zgxZvh%4ZiE>$C97lDg+L8rel0l`J3ry?qijU}5J7k-!U(@UC*1L$7viLT68oSHI|i zt{T~?x<{S2(E85FhOF&VzPhm%#ere3G-7aOM|Im1tXiMxS<>C#GVer?PIfzKhg-NT zY7OvF-$y62g$RC{;I?X%+I#}4_`nWsuy11QAMOwO(^I)qbDwV0Outuidu6dnd<4Zc z&`0}=xT@fox|-{tFJbTAM0W{mb#qWnObkoKi*oCcB7<$T!WA^cdGBP{#@h>LTZVWP z9dyo2ljnbCa=pgI-RA8WH3nS1<4yn z0W67yvPqifQIjmXFz1-K;erz=MYRuT0^t{#7z28vkOATtF|wDXj#Tp97lJ~t8X{J6 zR4)-3&m#?1-!}niyAKr?O#+8^&;hzE2=i79Nq823jxzwPF5HA#Hzfe&N-*7X1n^eK zFyEzyHP0wIdQ*r+2pPwdQ?35Y#aGLPT|%Dp(pfL}HhQ*D4v=7CREwa}Uh}wGe4I{w zZs^LUl+t4f3y2jK0JibAC}7mM^=WRe)`1?>q6|65%Z%| zbO5JsNp8&g#IOnam;x@*UWIU}BbCWddecd)^RH)Sv@b4F+g?9Zws}Bcba(WYvx-wK zidtasTv6okm&JSSwx8Abr?1#ukL+VF&@q+ydvt#$s`ZvI{vGwVeIHYSogoBLxuyJfdT7x5m|`$VWe+UF_1^<+ypY$6)X9un#*P-8_J_!9jeV*}LT97$=`e34v6>rG=_@ zBfcwQOYQ}ltJ6Ghw=D~~l$c-&%fq6AziQE2aq z7$BrIlv1ZVfM*il1%+a=eFg|b76}&3pHupHEoh*KixC8r7xqMGBL2UQS_KVd$RQF# zRbzD(b0LlCLWkivPBbO#7do!{UMWJWLsTPu8K|ua%zhjPQfHZ{;r{}&Rit$00>f+n zF&B2_JF6GaAI)Ojs_l;1Ua!Fe;$GLKQld?5qwwR&S>0JKHEOz%D4dlof>iYZf&3#I zmS4i1Yp8G^W$Nt}uRxpx5Ztddj9wRihg)5wSo#9pTT&qF&u41R9N%c{bzf#vAth!m z(WqM~bUYKYM~x0My6HlPnHbXc>LCV!>wmDtYtN>;0{TO?$d#4`;M_OR`z?miotX>M z-Fu9R(&8QXne*hGg#v@GK)<8ZjvA*Lg8vHz*cVq($&Z?J?%6{2g`wrCqZ4{_G*6!! zRm3}bO-3J;MXPs0dv>N-BHqdS2oJ|eu}W{jnrMn2#%hg=*Y znAjfx`pW=KA5hz;umrN35@apxS?baQYWkqAd8wO#+O>VUA$`6UeY!Lt(!z@I3VzsxR9y3FR>0pev&s zmJxgVI321oIUc1$M$9lyDK}nrSLWLWGVaRo5{0*>R|cn0z1+)3Dx*nZa0F7n=GEUN zt612jx2jidEW&#VAcm~gn1Q%Sz8Q2s%??Pskau{|UG=-+QN<0`C9AA1%KV%_=b8~6 z%dSorlzOjL++-0Mbx{ADtZq@Su2e>B>m?qB)nz>LUC2efix~g(&?9(tN7XXp28;Aq=9wS%G8kppOhTMyo_QO>x~w_k(GWAdk$dhE>&A#4$vm7K~G9gk63ub5gaMdK-@z80-5vxABG0STF(7&H%8m zcaBNGt&=dJcLBAwOYJr^ctpRvMc>x|C~^ewbl9m-hMa}n+yzJ%h{6VustaBSa-tbH z>I>LF&tkg3))#Ou@R?tnA#kk@eYD|7Xf?1X4KkL1DxMTOha|wfQC*1H!q=bX;asXw z$}Vh+_sX9<^%ewSL=86znmPuo3J28-kL-09y#!yBD3Es7dOS!f!mVfObdMth3xd(Q{W5tJMeIE?hD{<^JxgvW>vI3idK_&65V+h!nL zI7lD;9+wED8?9&QSWm_aq?6KU@v)u(8thJg>6qr@IMP$dkU2mbL3bZlCEso|I%`bu z{SR_81G%*oxtL_`QT_5KOUG@x9*q;AtP7_;BkaOtj+#F1)<}mApP^8}zbrv+gO6i~ z#k?J^$DMhEUEZ^lj$AzBy_F}hgM4ghqwGl^N6jOy`aVkz`?xC;9ddizqmYu5zUy7O zYD_^A4OEk`{+ABc9Dp=xc?4BJ>aOgR4Azj!7`?%okRR0%RMX^Xj6v!%vbHbK`=`~?beG5=a@CmHoK(a5aZi9sD;lGWjc?KBU%3Sn zB`HLe;!6VET3DbvD>S&NxxZ02^8+o-=7gG5kIpigfYh47dxDgVi+ru@7*HXldCSQ1 z6jR@(xC(x~vy7t2uaEse>n&b*mXM-vO-hboH7;!eUHODTK-U{XdYsyUVX6NG)GI=0 z;mvFBEY_pRs4;08n%!huzFxDpzAbn=H$|^arY=b%*L_(0FGQ;YDOG&^aPXpy?0>m# z(pGX&qJBkj7lp5@qJx!ynk%0;GIPE~rti2l{I?Cokx#Vc4~4#7_7Zi`jn&@$@Yzf6 zu`re+pX5ymDMJASTE0OS=(8Qfj>v$t4Wv6*dKqBe%HK$kod;Rk@;qlHh~rFRN2Gxce%W$LhMDZ5N{ZR>FSFoS}PrYbL(#m*9}{GBHXkSI4A^Z_x+)kzSObW^Z|%%GT~SDf-w2g=$SmS9v;emm z>s#LMFz%ju*??k(O0c~*ZecGwh2m!yF@Dv=TeX(^+%97mTQkup$%uqTNBcCd^k zWBdP}?jcDJ*mpY6gex??97v1YnL>L8f2mmL#-JC38Hpil&|A20JUV%f4CPVIGnq)& z47-}Jz*R+^{0J4XojkV@iKGdqbiGPR!1jqGNB>UeGPMd#<5dczYZuZH*O{ez!6OQ3 z&-7YZ)tSYAaO|bmstW4`r%r@YuqwOLuFM#bzG$bX&}GUiDys893vyK}&-z2BUC|Z7FoIc1aRPw;v+|#xCk5G&+QVo!JE=e;d`Kz!+Mp zzN9&s@xjykq`neXk1_e57_8!jXW;H3$h`LT!qfDV>YTjh?k;swvzM`KYa5GL^!C&R zDOsLM7?hGp;N^}7O);%Ep$yZ)i$3RB0ShVQHXvrIx#v#?c}mwn0k1yuh)QdI_7Y`> zX4%=WXa;=s#76zlYr)K8H(FS|{jjF>KfTKzy{P4DN~M7+D0onD>H2-@?>WjyTJ>kg z=DR05XnAU5fC>=S%HQgaVG*J-PTGCEPMSHFn4y+$x!s%}8V>P zx;5H%f)!P|QdUFB5>Fl5N;Pbowr%q*Y0xRwlL=j7d&VoH(N~t0+5`F;6`qD-K7eBx z29LTPu~^#RX_QuwECL9Fo_l!G1>FpOXbN)w)G@#tFcxnB0hVDyhdBzyjj259!8*P) zybqlDV(xvsC3@U)X}CGw9ia}CbuQjW!{4&>*LrYf8R!oX%BJG(OK*H@zWOygg-nksGa!?iR1$QnR^l~t;-(h0KoYxud z6JX1rh2NG4oe@oI-aC()HgZ|I8680|w^P;SHu~IPSeL1_WNPCet-%hh#aLB4B9`Q7 z6w>1qz9>Ib1rWbH>1AQZ6V65;Jw(Xei z=R3;M99*I{m9`;wMt2_l;)$Zc4pgr^yRP%p^FvF#Jt`Vnj!n5}BAo_1?Mpiy8D5qS zLZfSu!ddb^#scfNn z_qY4LK5jbjQ(u12ZGhasCn#S-fvkW5AiM#hwg*z9WSiI^l{6W8ruac%9F56hQ9q)Eu+bB7$#Zo0>8#-dfy*} z9Etu;rN_XaLB<+yeoANS2!=I~cwcQkQ|mY6$M|@1O+LYuU#bC68k`?|f|50SqIy?S zMJTm0=fEHRRNR24!r|)CTz$un;;JE>L@F}c0+I=bPkrgrL`J?%_Pvp_j;#Zo|hh4kwV)`njNPA&8G)|cBwvBNX|KL zB0iSfCBx0IT0qSeb~2-E*0U-MWKPiR1;FKvjhe0lRwcBEyvAN#nI8;j?h7X~IY2SfXfkzq(3f4Bk#cJa2$PZW5FAiPWBz*a=tGEky z6xrQ%q4vh+<2E6cRVKjs5KYIeB*)zy>Lm*rT|$kpCg|eiA%gZ_Epcs7hDUMu7dw38 zw&-iwRpgkf>xxHP4>CWk+!x7TGIF%hd~%WKiuaid==Bt8T?FN#10LP=z_q>fDP)ll z=Tmdpf{R$@J2&2V0`@)lV>Y65_)_f3187d@K**;vElJNzql9}G);rEGM0aA0H*z}s z?tJb4@10ZX=+zKuk`liJN@0+e+}M}?)v7Y7#U$AHUuHXI<-rQU+mmz6H?8zWX0K3J z9dLeVWt>LpwW>^(ERuRB;cRhd{+f0L-KAYH$vt^6EJjVAaN%a+nIvYHl`&%aXAi>Q zOwQXo2g92cl|X#cd1K>kt-dF8UF;tNt_uweDbr;%O-OJxa%ct?Y47X6o24bi+at#^ zNn|U`S|QfLG{~#fhJM(z(C1$C*$^l7tU;#psVK9);$}Mh#AXyidbk?Imlaw!_@7hlqIh^PpFX@hQk`@@2XKKpBh!O;u^PJZ)&{-DZ zFtB{PH6p?#YXls+&D=bfZ^GU@v%Z|;^R3Tm*kZ7t*T9gp7BQH)dn4!Iey24qx)F1W zT?|q?*V|YInc2AlAtVoIn``X|n}6RlVsWE?=TO$8Z#xV0Dsg+bnRhxm)|4x^I@bi8 z-#qxNXSZN=oTKK)f)yQeh{Ct07LIhTe|HHppSk5uR`<<`*9Vr4PMtjxdW&(XEYj^# zJyED3L%M)E4Jk?Ux=beKB+Of)P}`YmW6|>)97_ZoXc}_w)iI z$Nd{V-Pu(VmoIy|l#%b?x}+9&dOXUrpy_9N%rckubI}DRyXRkgKD~LV|JMa)7s%=< z>(lRhVy|Tz=gN<+_;+q7V%zC&&o`DDe*b5)i~nzC#^P@IANGo)}@J>~ju z-a5l#hphjW?V8wRb?3(y@uz=(O<%qj``^szcRhNuH>d}{I}I!L@9KW6vuVHbpA&|E zzAvPj-9$_tyz}?l=e$jG|26Fq{yzWJ%H!mpg%TKTD-I!5sG>xx`Q&ghU_fW#Lq!6u zRt4H_9>OIug-K#G_TV}-S}rdK>F@32n(0Z(lH{nlBQX&pp1My(xlXO)4|yn}gR@d}omF>nS0^^b4ouAPfF{#nrjRfg`|LoyG> z6!Z>(VMp@QCg0aK_@6P{u_v}F?zwqDh0X5tl+!b>H)6aVtm^0rz4%D2*!#!jFNgXL zJ6?_Nm-YsH8C)YemSAr4c}Jk%(Y(@yJ>ylj#y=nV#o1Ss&AqW+e&JC}Y*>ZMZS$v9 ze%G5mPRHL%APr7pgDY#E9k2Xq>A3xE?v}u<;UcvSR>|cdUt0UB^plYtIS;%occfI8 z2s>SW3^!*DH|P6}o!_bKlk$}K5o5rFp5!r4hN#`KUbkr2-tmdEDP_Z%4K{g z_kzfg5`)xhsJ5_iMi<4RIST`Eq1PlijBzK6nq2hU=aqx41^CvVM$Q#HOXM4~m1t?+ zzL|mQAMOPXF^&*EmhdD}y`He2iL$+;0iSQXvgJ4QEMfJ&Q}hc{D;IUpVvP=;6+}r_ z-mR1K>$jI0-A^<=zp;O1v`~i#{Lm{oo|cxK`XWow04ySia!m)vk_Y1hp;PI39pT_S zbC@-7`eb~~<(NO3{_S!{`KtKA>gxd?*JfStR3q)YV(mJs4m%G`J~SbLcYK?o5;EXTn_>e)gL9Bn?_DPdm((bbQcu+{acHMg(6!8e zBzwxl754Qt*drM+S_>Iao7wlZCFE|Rk}U;mTUa{F8oUf*6?ptijTL_cwlU(nAtxC? zwGsuo(qOj=1m0q(BRow^UL}4*T&~QqY2)D3Ro?H$`8=EN^8RI4!x6jY(~5Iwc~o;x z0GgNDL_5D-VZNL&B<`}U2vf;Waa!nr2iTYH07D6C7W973KroTsXE`XAHlQ;pM&^I*wc9-x+HpUZ7yz zAsr8Y7^(gL;9j-=gL|X!uav4RuSk{Uo&3KnFRNsmflyC5pKBlZ#qMz=>kxsw-z~e7>4)H2UUV8BFXl2{8+8M@%x+e3ag5Ng7x1<7 zcBH6+6P6F=bD8!1)Ht4(-jgNiPDL`}mic(_CDZpnGnbs==r#UH+T;3EMX2)f^d?-f z%O*clcUKAZKQ(l?W*<>?1gaxCaNSPLH54xGEd4iQ-ql~o^Tw`dpPb$K1mPC3#)f*4Xd-Ga1XW4mk8_kt(W3w>;W``8BQcr`J3uM9B@O zr9%gdHvb6}*aaqsXg8Bpjn?WD2WJZ7cu=@v89tp6N|7+EbALkTfPI%L+e#1Au3jK` z9+=Dvoqa&){00>OX7t8oJf*un*9?QAmgFb}8Jd*)UHBNisQH(3P2NT9~%sZ;}~ zA;c;2pR8=pnUbCFgv8X)P zbasODz?8x)26$XbZV~lm5#c&88Y^Z{;>_fLjw?g$uIkoc47tMUfpCMI(L<`C%!mP= z30ChS9vVmctICM@#4JlBov$td@s3jKFH#M+?N+m%h%`R+mqI(7YvV7~o&Zp3Cfe7y z&!<3u1fs5R)zYl=r^TbrM7#&*9}>r;`}NYsr1)G2-><;tbHZyO42Cg=AyHyrLfS_l zhx1Nv0YcGK@h&NrrU0#hS6^hHl8Z26058X1iTFCbT!S3Gju+ zEo%N^N;`+D$4AZss0Q*8Qmu)U(NiDt)E!Fo;5;uF>tx1bd@lw=w^ycH&(%M= z!@06Xx5CpX$HZuQ+@OMG09<1HE;jC!(K)M)+Dwe*`TB)i-5t^uljE~W(BPLBeO3lk z%jk&J^cVA+%?frA`I;>8Nn>a)P)3kg~`h48v1mN zZaLpDmrI{u8No9B>Kff#zCo^uaW_{9o9Je8b^n52$Gkq~fQE(R%sc$WJzTxv8v0wl zOYyi-rOB){N9JsaOJc0gq5e0~N9Ksp;}GU;J(dKh(u=reDu9&|1lv^D;mU2|U+GfP z+wN_d3ijMFY~$+rS_u0kkvy%jt{=jrNJ(Ri`6M_j9LD7WtP_eTMc*1819xRxcz)@N z2EbFbZ(#SBEfC}WkMmXhj#1!hf&X#7F)(f_*JBqDsm=rc8`w~;nC~9IPpl;$VE8rx zM*4}|-BbWC#c>okRP)L^hYrl<>}X$jgTGE*Z=HdcqY1l#`3$kQmIR|36XiqX?yqa= z08BcB|80pAFbI-TAG1Z;xsWM;s5n}uRI8CC{bWV7KG7lcxO#q zXbJHcE;Flt6Hx_pxXeNK!8HkkOTZi^=b%j*}xTe5u2g&0Y(L@qc9*kt7E;N zLhrSLQY`?qFAifks7S$35SN9Oxr0^+n zNb9MXf?;XjS+J$n0-DxR>J$h48&+5ML~3&>Cn03GO!K>hT0gy*&CxyHry1yps#A+s z$-OO?)gmGFx{LZ`4%)l?ADqzOM2LJ|On#LTpAO-|wSrvYj0ON=*AqbH_db0B*eZYu zG2`#J@d;JqpA@SJBg#!sJEVFBVvr6SHIAErC8m32|08@2N^}G@fh4IJD=aSg|L6Bs zHzOkLw;&)yw^Z}46lvS>Kfm`o@BjI|mKm2Rfi`L?8Fg-4H?RLr;n7yn7sF|m(+RHb z@VLQ5jbSiVuUf-nmOGWbXtCj8ospW9OW?Ozu70`9_1Z8!pUW~>cw}JTub1&vU%-0z zmt}~f8g`Ex+ei)C#&sJ&W?zkdVA?yvfS!`8-w{NgHc{6*<~T7hpSLYq(^I39j(!ger-?*zU>{?eaKz(jHT1Y zRiVE0zpDOWkgigEGi7wg9shrd@3`Sn&~QRVAMU5CAm7%34SL_A`Wg7C)$R|D8Px!o z{L+HS#qw_x(urTR*(A-qQv+?DSB%2 zUjmG%0X$2^K_;3W@G=~I$TOMa;kPi4D^!H9Hyx`I|8MYL#K8jheO!DGZRU{$VqZ1d zw%P7&Wq`*X$Kpe!8>=BqKNNK8KDv&9&*X5MAwnHc^6nDZ=3Nvmg50~=uSt=fzdGy$ zj61rS+gcWMM-!W)Ag3^lOupd=D!*5}rb>Z*%JIWXNlH!O!r9P!nfGFH;}x9;2N{S{ z3hdMe@>Em_{u%}c2*Jc-caB-yEk(}<+3R7}4+Gevn{#~jh9p3Mb6n9YIAlY3Q657z zFhEf^|Ja>@XGXoKlmdch_(Hgw+0)JOj7*kUTc?|#gsvpnq&LU5jD)x5YGu_ABppv% zS)+!7iERv`<$?*#+Jrj8(y}MhykU|rG~nN17|xk=!m) z>WWfDpBKXnVw;$Fg+UpeMz_{boZ(>N>cC(%F-G6EgjB*6r{UI@9Cla1^=?!?=+9 zULf;GsH1mtKbuMoj&gO2OpNPmoa$5QBYfxbqlQ)c7Ew; zKu4wZ*0XLNVL5-TA$Z;}Qt0bej2k3;Sln!4lsRtLz%nf4>tvcBg1;IKzqmY_-u@Rf zysoX=&0o<{W2CneRC&F3Wpo=zr`<-iWRHk>=1StPuJUwnS%GW8Q z7>sb8ip`xhsk#{~=M!9~Q{(jCEJ2gR z4-bnm^=&U2lu@Gz>mGheZ`2j;$r!Uw3o&?utFC%6D#qz0UVN^2;N^M1_~NrkfEVaF52rbTzcr!qiviY+I|N(^i`#bsF|{uISpPNB+V2DneG4E41~YG zA98Kkq0MDD(;>m<_TH~$Wed5u`P2|aUtFc);bz5h`Zcsfftl7^lenDl_Svtuz9Gv` zZrsiIub+b-zKWjBT`6nzIUM8UEb!V?_WS`FGq#|50|Au-aG1?E((gp@(X+e_!K)Yh z;bO0K-%@VWt+fsZqp=FNNya%r5lLZ|Wc{&~2vLem)hd92ggB=eh!&_Y_z7v*PcW=6 zQdNz)fq+iT1{|-3Ity&XglMV4A`=``ej^IUcpCcGK&4rb1#VK+HOZiu1JTcFI?zY}q^>akpD1X2924t5|<;n)Bo{5j|=>8ejg z6Rel0FwO=LumG?8XpC8ajRtiPt_cBUpz)N6Fd93Fuf>nm}@xZWi-e#tOjql)Z8m& zp_*C7oOQZcb$|lA^$PTu=NqP-)tzDe89EU(%+ihYmMw;K2f2o6LZdQ}QU2!Y+qBVZ znbRd}u6_??T}d9PwrF1`g?*5y8I>`x`uUw*)6;(ju00)DvGJSw!>hadOhxGK{`Z~Q zcCp6~KB`z`E`=*@#c1OtixWc)y$=tmw+P#wy|7FD^>WFEpJ^KpCC^mYz1CSBdpu#d z+UdU@Ma9iMBOVKPclv(ZxU%SHkZW$W55{ldKpno)GWA#e`Y@jmH4C(YRC9D5 z2XEo@Jd-wPsvEEv#39f7ltTaX0USD)&G#IpQb~$T# zH0tX~C%?jqfVCEFZwfKBwu`>(EBGQ0V%}Kaf+{&_a)#LOzNYS>XfOyjAK{hIOJ?Yh zsV1KH$wv&my!{q^Iazqp;`#G%?X9_gb^CufvAO`?L1=>>yOkEBr4zCxI?;WG7oGU1 zI1$jEyPs!b5Z2Z6uU->b%?Cu(j(5?1oI8@6pNz`)^~v^8JER*ie`qY*hjv3Z!^ixc zadN0s61}fuA;8&ir@e1Yj&6totGCx%!Wi8V6r8vw?{S3hDZL0yFmETyK#i_<;lhZw zR;WR)?_rX_3Z;i^HQy41V7R8D@%=ga`sG&QW3hqO7xs5+FKSpqmU8MO53gJAKo15c`|KVK zgvE}132Gq+;^v;M8llnBYKk%9Km&Nx=6!?CalIvB62YwxwRaJxQZILnx}~+e3ak8B ze=UWWc0*fj#fM98e?`w;9xM4Twe8KXhe?-TCmx=?p=jKNDxGDZ)PH z^{)^0KXlR-{A@pWX|6MPub&xL)2;D&b8wC>FDm<;KAO%#CAS?iNX}c6Kc?Qjw5P}_ z&;2ppp-azChSalp6l0gzK3(`hzKd{YR^EXrZtV-!5zqCpPo&QDd#yHf8d|sI-`3%% zZ69|%N11ng8`(tM@O>ERzW=-24GJ62=5G5IRv(pgF)N6&9mRGH>I3gcN$1qPO^IaX(W&dlp(pkpIga%n8y_JeDX^RRmP_V&$- zdm0`^eBW_GI=Fht!2-WHjK+zcs_l|B)LeMQ+t95q$r)!Pw>0+F=oKgs> zwgP&$5=v|ICvoYas2*`>>d~(mBj(4{GZ;CU)qG4G4zfMP#H6=0P(PI=(gQ_inq>^q z@se=XvH`*d=>Zu9XShS zj0mg2sQ`brr&tZZ6%GVa_M6^~P8HWrjEAIisw;!t1Nm1|{1KdL#lqk@LS}Fz@7!ME z<5z#eMvhNyjt7cddS3kdnQzf6(8=InG&2=QHwnw|7A^NxK8xrKG}9sJgkzZkxlzti z;}sDPrE^GWuAMp=aI^6H0wqq!{)UU0?YjH-A6e8ce5dn#wGl6O%Tzc&TN;ubI}ehcObNhKCYdYA(PA zT)$k_BStMcIL`M>L*TB64!O04A^E^K@?M6^!aIKmp)uD2n0s@TP9%55^HxgpVX0H$dCzFAGbgW1w>J;@ zf7s&P`med#xc92IrxcFpgH@XpUr#R5Oej0)7$v)R;m0Kn#WB>zSFnR*o!ZQw4MLj- z{uNC5H?=y6aG}M6$>QC4w~c{*erbGu$H!S}KJAtHoiE21{@jVVcU_Apspt38 z%g(+fUUi?|>zR0EnVD{d$&W||g3P{mAohw!$D4J35B?1N`}*~&D}S}<|Dq2xS|NRy z`;^>GH_ji_7amaVIq>O(`S+d!EkCkmtT^fw`}(ZRf?#AsfA){_S(nf6AM!ged1K>6 zE8id~l2E_TgpS@c$Sv;jU!cyR*URIQ#YiJ%yrl%Yl9uSH1odcGID)-_gNf#0ETrf} zHYP-bRzabW^$A`Iyd}WaXK#*&iNQE_=sbGKFlr?nx8fXX3ln9)!zKY3mwXHZ#%%u% zg-XE9Fs3yU#Q`vCbx1=odN(6DUKM+O3mz{wbHl|O!|aU^GKPn>V#XPZaCjxbkc0FQ zfrlmFL>byqjt-Q9POaFg8|>cEGJ&%0`ZTMy`U5KkZ6O0gw@K7#ne@zX&jAgDc^!1Sn=D#oK^{{ALeG=dzECOlB9r19UM}@n_UV9b@lS&AEe}I_$WYar%qIEttsYKkzbHC!nVSQuo2W0IrVBFqmdc^S<&giVZK058 zR1ydLqNMzg0GHN-eIj5Q0$0hAXVg$5GP^_=$%IXV6o{3aO{4!5r7}*Nnx3BMv735_ z>c3DFz(#sYi+-4#etHD;;WEmwE!Or+wv8zD!?n~P=6;rBNDI;Z|qR$TSi@5Ol$Ixgbuq<5o%(+xc@?Ein3~QO}3iN0p(9*Pa;OS z=z!|H{rGyL)w@g=rf$@pxgmJdx9OQqO$Y}w@!o(*U|Ffh`iUK0e5^8$7ht`H0s%dGX#Rc&0+CFu6W%qOOCnUS0AC;975oKXrmPUC&Og}j9AwOdN+94 zyhHDopaQH>dXlwPY;3X|Q4LX-_#)zz=ma+E_&j>UcQ648%e9MhL}RkF&{jZGDo1Gk zE$MVGx~fvRk%`^%y^(MqU5v{YBq3u|dLndag@1zg2zs#sznOzEW;E{QAnHXqVInY7 zgkE@f9OMFoM3}fq?)ljXL06!;9O6D@AOi*+FaQ);xEVs+hA>7Va;601AR^Z*4kvVN zS>uXu-(8dhp&sB)yNb>y^3v9d89O41e_h^%Kb}##2W6rF>_n=_Ibgy>vUry%iu8|k z>RX_!9iqHoP*4*LaQ!RuYShK|0cc+_R9g>+XG0Lq$JE*8H$D`)xFEzFJKnRcl&3V~T!4@1EYf-$`E7VR_nyjY1=g zLz(xP0Lzb8M>aT(%-W|32_3sq+^|sKA0IDH$n+1}@)oVG!%}BFrA=NaR&3jUjkuSAF1)q&R$i!1YuJ%r zfe>310~7yk&gJD!t1o$KM7?@o=%trCr+6H4w4l$>` zCGRtu&O{i(;0_MvTqf35LgZJF^TZf^9x)3Ym5r9Hz+l{7;F7~7)A*X(*Td~4DEyZL zVPZs}GSG(yBv_b{mAP7CfJQ@_h%V#hQB;-R3rCtAzA-aQ`B!|UT|$}lMXzB~dK7!W zz1a0UOrku0BMtqA^o$n1dG8c@Rr!%>X_9p$h9iEKo*81T1b2(juN^TLBCoC6cXYvn zM){zm~8Cj@1oXn=+mFt*T%1<6uA*Fm)kcAhve}_>PGRkWv zcpL=^lEDdp@=8j4BD$j~CHE+^$7t=hH;^vBCodQ8&;+Ox5{fqC#L7L?8Hm!$qZTET zLiv=ZD=6Ah@*Iyc!6yG;g72inc`30&ey!>@C7A=B_-E{$g8YC(`7EWV=5s4~=R)9n z9x?Y$o1lMv$XW_x&|mI(anRPcs(nP&-)CM;!@9yB`|jQ!y4}`+^^et#8%YGSJ13@2{i+!hkL=m|?w>DOP0`!2tM2b1acVpA{mnCrOR^qrN3QaiG=9y0 zV&33j?U&HMZbN-5SF(9KGlW6I?4YH-OL_dUvU!aXT&#^*aD%}zWm1FNlcesZFiRYR zjg66mT*Ve6F}RV2ix-pEOR>{~2tCQi%v_>@Jg(Fk6RQAY08_dM=eT)oG!P#MV2s7j zJVkN$r_g*j!A~FK8o4^>Eq=v!&`?6~lP6}-Q(cE~ub;*xFg6>@*;-`No=Wrv8um%- zlZ*4or_0HM!O3(9x|oUjM}qDAyRJEr$mLurm_|EpP4#AX1l~RKY*CuZd9K$&A>9qO zC`l@IcQK6ekN{L*DM?HS#XN%URR(;Ce z&p?NS{EhP>>nCZAgmf;1di&AI*AkNV4blT9Ny!7Z{By!Xu6o;1Jfv4H;%RU4b-&uN z@iz<}blGullvKHy_Hny@Sdt$!=*i0amr8KDJ)=N zgw?ey#=-A^6gu`_z~Q>1A<*ZbF0`6s#9sO2{>g8{)j^WKytwSVZ~Di6w%qJ@w+z$r zs-j<5gOtQog_TAc?#P%AtF?Qv+St=&_fFlxs}C)%G$*wboH!b7x}xk#P;I{4^Y&I; zlj{o`z){{{YDHPGFv-SWao6nYywooTNp^*<@g&VYwkOFB(YvJB4hlZ&jlY|;ra-+5 ziqChG;>^4)awH}cr%Kw{(nmQ{M||wd<`5*4EZ{ZKcxV6k;bp&=LLbei{;zXZf`7dDYQg3#n2lK8X2{Hh4H7K=X3J;{BQ(PapYvcNX9dpWS8aR4s3D zbux7{J8zv`AneeO@$cGvC8ZLvnofJ zRwnWVCNfg*o)V@y`?rp>H98yY9$IH8G`#g^?zH-`w657jP|m8l8+|s1bRuvJ)zKzn zhUh%PMp`M>#hNA|aC?c3*^-B+oU9NhnKy_z73fC(`VT4DnPP;wby5YMFk9eReR2`q%?Mk+ zMp&SFdP!$*G(mC72a6;I1q97?og}NO`D+EUj~kMo$KFfX_}qzSxbb$}wFUhk!i%+3 zyLF>`-`NztI(UC3-#T}-aCl^k;bPa8VB?iGsE8ASpH_t7&|UA(efl%}dh4eH&2KLs z6xa+CN&>!FPemiLUaTv<@SiwiN{+r7q2ao9$M;6C|Wldr+%-^*R^|1$r2A>_*y$WP3%jia4TrBj3p<%of^!KMr9xlk@g0t zas2^Z)6I*5biLQs_m`aw-@JJ3gTQs&VdYorHZR$_Hz?+={fXP|Ud#6G#YD~8SKKqN zx7j-f+L_mu-JRTQn-}nCi}Tvbfx1Mei})Z};`G9rBdQfQ&HG8g zTeH?yy$wH);v}!ycx$Z~6Vc#hk+P;ZE4vI-)7! z+f?M8UlEerh~{{U)b&knVOQ&~0Vw~bwd+PB&tK7M`5nGE;=!%RwgXO0@fOn9ufNtw zF_99XMH-j9FRIHj^77%$Y4L_1M%E0Qst(yTZF({~)RP!_b-RyO{O8f(8&91sWjHNP zCPQJ81H(;dXvz8|r$(QrM_#{rZV6|7O2o0zmNaFY zDa6ExVM=)DPNTM4Ca*MEVkt3Ds|12w;AS9*E{JJjAKDiTBNpcKZoJJUrznaD12lw( zNHT1Y6KeDm#;j=I7wd2mutuNYXq#3 z!6gqbx$~x=b#UCzF|tkAUXARQe-PH-KbQr`?eVU=IX1mjgu7cmM(kVkBKE%a<*n@1 zyZYeiOJU`gLW-Sqa^yG!>i>{mCBg#*kg{<(r^xaMa1ueRfq?#?GyhpB|_M?C^VP@Vb$kA+SiLxdiwT! z!%uXbMw}#*Iv&X=gQ*2mLL4yO2aJd*h$%1pgam6rS|Dzx0k3XKe|vOsk)^zBJkJEC zK5n}cvfD(o{ec^;+LF~*Feqx@OyC85$;=kH~(CTfxzZYxVi_KR(YIefeN>8-6syzVsowhX_*^UjveIY;XXG zL-ibPS4)!4yIC*ixxd&cxm&pGrr?^cXjQa6a3BgB4`GflF?|1Al~tAut7y-Tg4gI& z-jysGhO1bX0%2oCx$H-IDJ!tsc$j@bm?Va5-@H?H5{8?fw@>M)0!~v$TC(ZbfVvyW z71;C40lU8qyYY5j_DEi$3U!1qu@aw@{Jd@dVfSWY z5=Zj(ie2`zeUli@i4}RNZMliep3D&ysfF1uxt=M`CBhgk3V{v~ikk$d9FU8rN)SB3 zBQ|0q%ef{WVGbjaoWs=)OIsQcI|F*xvuJtkH*I>gZgvQc`>P{TgklvqXpI;MD5cnw zEhK`RnB}&Bkt2*eG2rIP6P_XpOc~@4bU|r2f@cStgD0Fte2_yO{Kw%+n}Z7*;UIUe znb#7S1FBPfCtmPNz0V*R%ZZLB6m-~GQdBir_$F*YP;2&(l7cuDW8Ac_@rtd{CDe(N z;o3J%mm@@irxV1JsR&(_M+$?bWeDvC@Ztc)H5If-5)NNpd~)E{sR6e(RCOUs^t4fG zmSj`I7Sx+Pe6rg!%gJkc`wWbEi-N9aH=c|UfRg3MX990%7G6~KVakaP z^c9zy1t(`1CH6r`$x_MD6_@*$A~M0HjP`+}%oQToLlwBsM`|`)`tIi57~M4Og$(Rn zu_UU=aRlK;2bPKRTr*K7Q%JnZ3RJ@H=5m&nAx8YZa#k$-oTS?h&uGql)r&}XyF5!thlEG!2b^iZg`aI z#)O7;*jo#8W;NQ8#n1{NU!NwJyIF(~E!UMpl&%mRG2*YM04dMA)~I5E^NvKrI3Q68lXqM=k@6o_ST^0 zJR$;jZ{Aa|6hMF2scyUyMP;My8_+cIQ}q?@O`b@a>)osWM*-&s1!K5C-YyA{BF6A< zR$#eNP4PHS&jhTB0^ZBR?%?GnkK}S)bGf!X2o?FO%vIsQd>}7s zY-uI~lfuBp&tvyT!R$I46?~X>yD`!Kem0P|Lo;{NDQvv8YbGtXVBXbZ=FmoxOUAqp zR*@TTof~8ZZ*%S5x-&0Mirvn+{!xJ8adNY8J)0Y_zB$+(oIHILCP9kb1A8U*=5Zh_ zkFN4d4;8#QwD&bOm4?{^(FK#G;&yUuqU@6nzJx|dAg0*QO2sW~AN{s$oSO=ZHcxd^U0iw@5y3YwXOMCMA!Qqw= zL1osuafcAzLb9--E;RI#*0%2>(db{YB2I9ZhnohtWi$+MY)2eNpk}^41 z&=qoDNw&ci1GR()@|(8}pWe9L@^D8JAbxtS)?+yiUYfbE3jAi>ti_ke0@Ti1qHNJ2tQ4s0m$qQ&CY9Ito%% zR8)c}h@hZ|U`;5Bibw|)g;-IMB8aGHzTn>boPE!KzkAO={(Hyx$CzU=%UhoJT`P;M zxiX)b4c;Rr-2}LF8rNM~h=SjmE&}hn3^OV2V?JGcS}2+572LBK{_yW6WErX1}&GnXFD%8XS~ z*ilp3Gp+gyI?e~>awRUxcvfBJfU7enqX2Yu6Osd{F#&16Or)6OH<<%v0n*i(*0!0p zZ=gFTGF*OSaz`A&1TW12Q60KGL#{f*be!YJhf36EIq92xFJ315b!*NrdItVY_A6e& z4E82~Xw?#ts@%13o6sRi=J=(Nid3%+Z9Z?D0>fd6elRg@XDBT*(8zNa0p@=@Yiovi z5MgNB;@#NB%zgF0$$n=XcZnITO)^s)EcRzhvN^DQ)u!B1hM4I$66x!$=M*~Lv8B^t z$M)gq>`c2{NpN!J?w?tiELhM83~b8TGw!>e0B221Y+ok$&D=S1G3~kU&Kb${I`i;2 zSYUNlI3de?;O@~KnW2mC?OtcZjt_5P!FKdGl9sae6tstk$$gm-ft^`)SDRVuGu2;1 zx6EXO&_r3#ac^zs>$aE&YCV?sn?culKqru$c=5DO=>cqgOB3s6;23nU5|`jhgFlPU!&W&Tbt%n}ZJrS0%jeHjq%(S-*7t;6e=d z#dC@&^G3CCcfGwUH?_A|B27sKKs8?mB_G9qTtylIGyHV1W_MP>g%AAM$mBp5Kky!- z4B7}_O}&F20VFqc8&btnlU#*x%J3DteOA?y4sNyToB%$Dd?N#{&-wB!q4s+M$a_1oEV&y?@1FkU*ZC%Ql@7jJVq-J)AY;sU|bMz#_0|LIMa{{k=a^ zuN)FR0~WIZD>g$7dgd8`1W*rULOBM_8UB9uKy})Kv?jViuxYrFAxA`Wyy$_;QBgIj za*{lt5zehYD1ifxwFPA_GE#=-|X6x8Mc@a-aNdA zb}iydW?(sC^Es#i60%~^PM!cbZ69b$qgc~G24Z4*ID~dS72%gLpWf{-11w-A42;qh zK60AR>-&`cx)79kvC&aaT5sJ(F?rU1s^6@I9R(L3ZM*h;aeCKv#kf3#Cbh z48VfMB|~Pi_V~fJ(lXDSYiDQsoPcH}VKXEA!Z))rL&q~~-)08VG7G+BZXV4l+M7w6 z%n;K8A3qGMy398<;%G1me3v&XQCiNkj&)$?yXO8P^A$F=&o%=#@P&l&! z6mA~JU!zeZ$LvtF=qU%|Af*jpWH^@Pgs>`gr-5u63)&PVC-7W2YRQ>?1h;f1A0k>L zrP@JB0$QoJLwT2NcW00s=zFEf2FM35lit-2ICBT#7bxaV`p(M3FX57($r>d`^O*Ml zaCyCkVmzGLai-0Z$RkS+6=vB=o(tuK9P;KKl=LU4D}pXON$a9u{pNBlI~?W^r#>Vx z)>{pYcy^h0On81YyrnE+h}k`qJs+EO^?*Gw9# zF|&GBZ#`o5TL_DPtz#lJ@Ag}25W?o``T++N#3J5_=pfqz@nzU-$Rt`dqB7*;OdFWe z(evUpTYegOo;dn*rX$X=obK4S4ciMQhLalZI`~!RIiVtT3X>3!>O#g?Tu*_JXpTj8 z$U~er^gfIJD&qI-PZi`P;gZc~lMC0Q*8)yX&uNuDUX%4s*!=$2>GIM2jZP?QEQO{- z=XBtR)c2gbZyZPJ&0T$0pAtH(n;_jJYTQyWmyOMGDMVk~*?}63x#6mz>}=$f{t{fx z?UxH{?6oS~G*|9`X~P`5D-WvXwZGbjXF`0}7Q1PDEPi%-7-?Ph%lZ_vvB#4*G(%n7 zJ00oH8GB)HufW7l7>(~$daGWXIVRw3w}tx;RfL(X&=Ky5+_U-pZ69oFgJG;YQi2#k zQM^wJ&Cspw3aJsV$D}v|7ud*DT1Z>x;z~P{^dg`nT@3`M1sYGH;%ewHUFfW=eKj;L zdr_pJz9KctYdsDXS>d2~inro?Yk!0!sYB;Qf#1fPxdbWZF_jN9+SJv-7ML&-6IjT4=*S3^a~wSQI@+#HcKa}6eyc%6wE9oBKK zDBOJh`&wKr>h69Ar|dY1GX_bZs?LDSjozAom@zqvN;=?lA~;ZE0PeC$)+1M<8Z4%Y zYcs(n>_Q)WtRlBfQ6jr9Z?IajZYDU-%l?Yrb(X!U93K+lQe0AXQ?`|V|6XM6UE+E_ zEz7p|Re{fY%Blt)1+Qv*^ng|zHsE!}%=GR9m(Q<`_iAb@dvC-<5KT^&>w&eP?+#~kjt4t$+~sjXBBKb4dLJTw1uii@P-(CA-c{?|!*UPfqDWHdS{|g|+4w53 z^6&?@z@3maO_!@3ZdEF&obPvP6_QFzBoNiBC~G1UQ_0zg`j&a>;{B=*idv{#cX%x>3<n@C>|9`) z;v`E-JROHWHIuQjOeh!B+(uk5%37`W5~)jQU!h9LJfHkh?gF8MxPx+#UG`E=hK!VU zs?Sx_1ITe?B|t}z7hm>D`ciWz!`wKhu=cfviDjF;PJHpvvezrdk~3nr&NmA$i_Yk9m+^vk3i ztRHRzi|@(YF~^%u33o8O-kTblRDQT8NNo?VC)UTboU(UfL*n)RQ@>2B8TudGi?0uy zvoovltoz`7W_LGuBe*t5Kl0YCT|-Sr%(lkVecT8>KXl`lS$&%RBpY*MBsqnL5rv2-!beH zop{;s;wx>YF3u05{Bm1q+Xb~l(;T+|xkw|b0Hqptuxd#NThnsKWNO-P=ZROSqhCai zK3OLgd6LKE@|)_cV=~GfTgCV^x8iE+CC_S~e829RME@n^C*BVYX>Y>r$Nik`btX68 zF{>n2m&Sos1+XR~b#AQge39R9fj21|)`W9mO0xZb3~hje6%TZSWPx%Scq;gEbacG` zjg6mdeQ%hp|K+v6StUB;>zAj7$jHXI>uMWgm)alN?YMVhukeUk_S>Jg7Owsvj#cje z@XGS^HyN*!!!hrYS1$>^T>Yv%SFLud_L=LC&DTx}Tg_8C^YEsc>it6H3VNG(x>VF@-LlL{}KMSHwPmIME3yG(zb( zVS=xaL{}MjCN`yA!X@O=6mkV83OU*{purNpLa;!3#kf=)olxK^#o@yUt$kABHL`q# zGVY;dkRp|pG0_c65~%9YRZ{qpBXmr-6JE1b=59H$XPlrzS4gI-yx#Q43$u^VB zG@EuJa%3F^5;UyxVuZrAM%DX*y`Gq64@8(OBQlVYZ#hxAOu-BS-hZ>0p=Bi~1)+T-0hep2pay)Y^hp4)HNq zh-^JgZk~f0fQGoPxaa+LNgpKde1!Faqo@}eBAtOP4cwLxP`g&;tEJl4mF=sH+XK5# zf8%jut=`Vcz3cxH8nQ||%-~(jrgJeaTa(WVdM&v!)q>z&zL?O=-dV7evlR;wpjqc? zGgf?`4gJ3M^lmG)dr!t9L<=iYKA&R}RzzE!Ot^gRC;jBE2gi4-uLzCMMung3dvpvm zq*6Z%C5Eq=r;bBT(Fo$FR-19v(Qd8luLxom@Nj`*wm=fng9)c=RB{!3*r)-4R6AEL zPC&>76jMM7SS|su_f4m(iP`$bQwPIIs&~)GCjo?Vy7AXtlwA<4_z z2)^pmbwxEG*^(-3HAhz+Bw<7IFyex%+fZWS*jk#bG7T;!KoW0rm=2)3YHW=-)b=zn z-yKB{FpO&h>v4?4ymp*4@z2{WE8Di*Jcdi*l3#PogXx4aE-V zaMH|=wz`ZV-k1y11vc!GyXOwJOlAOU)2PV|8y&7?E`VDEsGK(IMH+u74NBrl=m0oB zjww9Nsy&Tr3bw+gwOIkwfi$C1Fwu`@8<%EPPG3C zAnRQ5T(Q6k-e#1`fa<(x?*N>$ zt&krG`-l`1JoDvVzedg*6e~;Cg5DOw*X}&mj;I7=WVu)ZeMgO8+Y2B>A0(sK{;3bx z;w&YnJQkc$5&RRtmb@*Tzvws0`S$dj%o6Rai$EmOOUF8|-Kp*>GtY5N&!F1~5VBnN z(!jVrj%9S zTJb$W+fDXdQ$?(sUi!zGDN!Z&-BLc(M0fg7J!WFYl^HvI>Z0yNE(Tfu(?EbPekl(a zi7KX%{5RFB2ueLkgf} ztO_SO>bizh3V*akgODyJvgAt+2pY|~P&{3sz*(V|qfkP}B!Q%A%cV*svRvqrn3?++AT|gL^cOYqQj{)Sxr9Jlm_ntkmC1XR6e+D z?Zp^-ud?Xq^R~QA^pg{`bAXph!D%rm297rym3k~FLqiYduqr8nZgx3iVS|Dd)tFUH3CdWgRDy!kDLH-WgF59gocBA zY6K9|$y#1oyE@mxMoa?R*7}`;5Ys9bv{^gQ#&)M!deI;QV4Mxu5CB8Q)2Jz6izo)v z##;gcMi-<}dp=!qq5*Wk0=uJEOCQbTn|FatliR?xbQ`KZj!LskPV0aA6k-%)M&j7q ztaVOEvzSQ*^N&BNh_);R<3`ggs0&0djyPJwrI#Rnn^kq1_3Ij_7tNByfR=)-XlX_^ zfMvVBg&xB)oncm%=3E8FaMCDUZRVQ#map4v;?7!@GK`gJCb?}A^^8p>AV4&g{%fJ# z?jh$}14LF6gi1-5Ex0H>5xZHLD{jhA>1aNUZO^68(~z>wUkcwv63=0}LT88gpQdPN zF|ToLI;NAh>mrE5IEkv~q-t|zmWJgtlYiN9nPnNM^+Op~0GVolb$Qxuf5#$PfT&NG zeVvF%PnQl3Lj$wE1W9|GE&Uc*EbfRBN`m~9d)##X- zTGkwGVV3hHdU20+GnW7DhvlUmtsE|l9(HQx#~TN%PV=cV)K8+%S0;{+rTQ)g7glA$ z3KUb?F#({;$Yj=m=Da!J%7G3$-RAY--|b-EF$Hvxz3PzuwfI-e{R&eElK}z*}P0dtHFdv_tEyq72H38&5Cm}9}<5me2yvUbc*~8k1 zlrehkEdQLc7CM-r>MW2X2|GHB?>Uy&;^QI1 zN$iT_3E|=$aR|v0T07ph#!RL+dMhYrHC=fuNFEW zi_$jFjwb7Fb8%=!BfvdH5miJ=gX)2e*6)W_f2EFs#qZb6a>0fLZSx;jqXEb@<#+Ag zo`JmQ7HT&+c_zbpW!FvdL%WnLgrgQ&v-r~fFvkrAn55!5l(#+MN zX3M%4u5gxFX%xJ~bk}rQM|92X9AU4JLTIl})ofwkeQ;c7+d%Ec#LCPEWWz^<-t#6A zXgulGlyXs}BUam(HOYDaUX!P!e^m26vC;{p?Y=MS)4`yul9tsm&TM-62cq^WRwbqN z<(e^)Ma{XwiX9g*st#pCdH%`pLubuKtOTHvtX`FMeSV+rAGtJk#5#0}nzQ|*+%>u> zjAF9q!}0rWK9W38hGU6ng+-M?d_#M#?8EpcH3L7|9JiYId@^`169Ox&2^g%-$z@~| zYgy(^GUWjBFNPrm365HDo9UdIDu-Whp|iT_e*t*MNpPd|$I)r*D<}l_$_a zIU6$L#OBLSDzXiBJPIt31v*#Am}Yja$i=y(pd5Fb*E4cVoU6~syR9-o$%SpMj*&V= z)O3}^_Z78P9nQ`LxDf0NH!Jy#zIrCI08ZvARF{tfP^Vy8S#sCLdoZnv_n8`TDfJJe zb~Xz$K`VS3Ummo!S}aEdTCn;s=KNa+!1`0+JQ>RC>^2#t<0Io~;z6Da_Hw6JmfXu8 zrx0U@yMqp^c8t&tJNe1_N(DCyJIbW8L3fn`6T%;*vR4?~O_fR)-W9H@wGRtS=*gBi z9etcGk~q2Z+-Gjt&H_JJX>?Z$?AUf?WN0MxGaFVGt6V+K3FQFyl(xJ$&nc_x=e5FO ziX3`#l5Y#|5~Q(d}miGICNQ|~lmeSS_+tj6l!5RF%tnPs_=8L z4ScTqab_`&?Wh~DQbzXjWyyvDN9{!V!GzsC#WRgiqjhoX@q z=7I)TnS`=kHTx3TMe3NL$x7PDGSO^ix*9yrT=yG@bF=M;F<#5~nfrQ~i1HHEY7)cx z8(sYBP4b-HSvWhL?kUl)P&>|tI_M~PNgyxwUF~#mDZm@#hvHPA>H&;w1}f$(SOro8 zkH+4(lZ_0O{9aVp_Du+N#o#tCzqaHLQ_j7F^?{i@4hTB&$sLz zDi?&cxU^a3Y+E0AN+28N7gkikOb>D*Bh5)~ZK9d#d!@OntolNTxlf4U9%te2O;J6p z_HJV@o|IK`sLA~&@NFOX;fl}SbhkxHQdTIt|R}CyQ*AS zZKMsxw5dfTFb_v<>XNu#a=@;O3Dx!j;2X+Y-E_ynGUe7FxRDXs%bReH&l5#iQ?eDwQo@C(BV#v`qF@HlFzVm>t@2#Bc`OBq4@V#yt(*>}8 z9(s57$5oeIaneQLbt8EyE7tB>HR*JId|q(GvL3!`RffW2FMX=r?7BN|wyHf2Gfb80 z@}i`$3d@quxv#v8(Xmmzs&hB*>&f?+Egymi{v$`FLgGas&aJPN)u^Wr$x+&^ESsvm zj;(^6JD<>_m!YjGr2kY=NcI#dJQxzaM zsV)rIrRboVPyn+E&|Ka20E0?6dYX=`Ecn*7ZA;>bgRO|F=5O7*UL>9tDNoQ9zW40x zmZoK=POLrJva-Y=admCQd)Iuc?v1=8AEUh!ey6P-C!YFpF;-=gt?*;y{+1nAPOE&{ z=KJI6lNUR#-P!vgKD=GU$zAHkn9B5FWQU6-PwI|HWu~+z?bat`a+}((=_Aw*ZRA+; zz16Cp3y&_nUb*@kvrz(bc=+ZDDlhBN4;5Tx=h8dJ*J@sa<1x#zd-%0)<~QIa^a+DecFFH>XXg-1#cPeR)2c=Ee}Nj+OGF zi59Qj+qa;fzw1S;X!@kZ-ibAcU!6y9e?Oy>@nPfXRx3BU@(AVi1@jmBRylI{VC9*c^m<%bNvFHX%? z=6`n);x@6dR30`!_}vbKbB@Ef&fr{lqKj@A7dF(IjxjKV`U`O42XrbA=kXX~DJIBb zW8!)w86cdi5!9UxL(E7XtA}hZm|cp&25=!}0_m+Y)2?w?YQ9uR!JG#V$LfLXXTmpg zu~eb#je> z>p=`R2%C(rK;pL;VOc_qxe({lgJW^Q?w4>Y8ZhZ`=zg)Y28;&?*O`xTWkc2?aV(yU zI~ni56YqV3XBA>R*k}s-%P&{?vFR_$`4~ds=Ly72caNmp<6j2TIOka$i!3LKfwJQz zPsjh*M8@Fgr2g(*eJI#MtfW^qNm)3+ONQA`E>UKrV3>DDY_bVhPbJ>*#7 zYz-36kCU;O{bI)!|K<;}l?%5h1k)emhbc>28kA9PaJJFs+wp4G+yT${AND+CQIDK2 z6HjWuD09E*AT+{+D9c`v6yg$=ARt_u!H49_E7c=BQ7cxH@o@gSa_LP&Z9*!T0up|hiAXT$%qIcauW#ESBx*6#z+g1pE)Qi zp^a3zHcEhs;K3AyC@;EMEEA6)dofH8t!nMAZ(UrG&_dabrOV z0Q4`+7ooz**p*4BWKSanvK+5uwOp@)0@wDZ0bZ3SLT%|sq1oT4JiAwgb019X5uoob zJU7@CxT7hSXoiK9z*mz!vlssKu<%^`sc84{I4h$|;j*Ye1u5U@lpPEC+ z^MG(HRvBb5*Whl+_Hi@yIE`HI&vT1pqgVx=+Xme+N$x+GZn5(iybyV)$K#+8_OdB< z<#vn{W_>ZrOTo-5$H+13FdQ{+c6!j$de8&*1xcE-Wj=N^$-_W_&k% z@o&52^9Z*|Xy$JS@_S~AC2{eP5=_AtwCz=w4f8%fyZyrsZ_&QG<)}AX=&O2xT7D7gwh=0xGp_|e3 z!-aCeVI%-TEySai%3XXxbR5?Hn1>y2enT{J{Xrz-3k$Ql0dqMXeGT=?!yU4jj9)58 zhJe;tqluBd+s`+OKA7{6K5R9UOO8M49T52oWuABl2EV%mB_@b)Yjk1(u?aX^SfUMvw;;k1XqZW|q+otS&CK0|1+?<)n5=A}O_#$Pn0`L-M|V{gWAHKE5a?^!4~utr4j zRuUi}Cbn|Cz;7l9KQ>;LtfxIP{ue2M zzT4)_Q7o2?ENVFPY|hq!B zPB$w&P5iBa$rK{w+eRYS#2veI6gLrvDZPSQN(k-f7u6h{yQtuF)z_%-Xhfl3c2+}x z85tMBPVF5=mwZEg*yLrlYj0$uo0OQA?@Q{SXBvX%wyr=FhZ62L;o+smtzdeSZ5E&=S$Iez3fX`MgcuSJs~|*w$C)Xzv*(mtzg{ceuw*I4 zy&XbCP4X?r`Vb>maQhk${bV5{ct4#JMSKv|GujIg$mM-Ik)d6D$JYWka11FaKon6* zvsy}(QdU!Dk&>2|SG(J86(W5>=#~F3?s4_*o54i{`#4VW45lRET zaBzNpcTOitUR})eW(qln#Zb=*MYqjDh6Z1*vOeZu_k8p zG3yGq9eRe>^{T|P9T?I_F)s@Tyym-m2ovvPf|pGkwWOm6py!B0VXU~Qioup2Jt2nvXBfvf9xHxk;x1>>E3Mlgenf;i*6(x_ioaH( z%*msOZ%XUpf08_ZWm3>VUql!t6M4nM@GH~m{0~yTd)<#2^VNGtTRd!huWiQsz|PaG z*X}F|iOugtV}g}Y^T0%qpva$l}D^N1raVmFf! z_SX@68fl8c34P1?>z^l-KsPrw&sfJ|Us_=Alr1<2Z93noi0K>U_o##Gey6Uw^68EUz;#Nr5w*i*SyXDR)EQHTZln>{K@Oj`>&k7 zc>)2t^N>n!@xuSIUVOfqPA=XQatNm?d}!8;X9-kEi7>lQk)L)7`?Ix9-)~z? z_b)`PCu0i_W7T;d6~+6rmSuclP5D~v>)83d%^&}O+7m**TeVTNk*E8ueCx*Ru<7Ch zo`(^iQ&8(cyKDz?L+C$2 zDtT#Fe_k;rc>r@VDbLLW4<{wA`#R-$Yr5@OPQ1z;H}Z|x#;$nVfkd+b`jYvyYP{~P zol3k}6kBvdX@BUet?wY#`;MvX+d4cILI;Rk*~OlPD7P6O^N>d#@E|fisWe$s?v-N! z`xaLzD%W^kk3XCE2)YlWzEwAGhiZlqe*EY6U;MyrMo~G&xYi@2oTE``CJG|fo;Fln zR`1Fn_8yS2(iLl|Al@p+f++uf^w`fSPcmM8R^{IF@F3noFa+BmfJGfJZ&2VZK>Dv|p`Nep>%a|KDsqt?g)7}uXFTXm3c~N={nDy1 zh3o2($!66bZ>@t}L!hvz%BLGWLG;zCC}w?{lrZ%y2IbJRqUBq99Rg*wcvEPtbrr2^ zoeUiu!fytx6GLBxkF#!uz)a?lyfdKwz}SK{QXpu&3M#ZA>B|_IVo=U0(S0N!XC3 zCDKlTj{5xh(S0A9BA0Y>57LbwHYICKK)JqHXfWVC{xi5G2Ajw zNVG9ty>R8qVX6E*MyuH+3S$y%X1Ceb@&_q@-S)(`dUmU z9tnK>1M9F0iu#5N69!MqW2VHVyF$DRrs!hG&u(;6FItbSL}4qvaholFyj<587Xexi zWV41W-bi&>VBj*gNGv80=?T#MesKl8^cdYl5zQHi<=9Fq6P6XkUE;cl_{dfNX*ef7 zUZc!4p)ku9x$0u06oF`}{sQ>1$XGnO++4P3#8n@=j_`dky=)YL5g%V1UlJdewSN2l zqav1c5nC3BjDLIiiNGwy&Wpty#B*YjJj#>1_dC)21_8Tu>KELDnjbqs{dcb(z z=O{=YWb?;qY3ltG;vdGv!hf0-ppB7ovO=sCPdq#D&oX6vs;?Z|=xKd*xfuJm$vb#C zIEqV>{wI&$l|P#Q?Xi(THrceS_|Jm<%hdBT-hcFq95(zh+{iEi#r+{_-H6@d>7cmX zyZ18V$=_X;jQMs*rg-Hvb(3QwBbJi#XLu#< zY&w448(z27!EvDKq2E7+{}%tBoqMe|{@FPof}oO+4)lMO7NB3ZY6bjJmUq4_VP|6iN($jR~l%Kqzr8SO?)0?2=L>MH-QJ@UxEV2l2={yGKsccCSc zywlJB-0|zBzxBIzgZ@|J|Bt!;JHr2=`d{(?51IR0YW~-u|69IZmpNRIe&Hk6-&yy{ z>d>>#`ok|bycm~z@pi-5+vveuebLya;4!OfzW!Hte_9qTgJ=zT^Czso{P`F#|E1@j(0|LcX7vBP zM=XE&FWnfefPV}fVEqTnK2v{-`F}Owe}MUKD!=3Zmr$3RP`S@5f2Tm}G*$nfxwsqp zw|M>`^Ty}07Bl9olvt$#aQ`#-vr^rxRsXn&{=L$}lJfc6J@wBa=(d7Y|Gd%uUH(6* zzd6+!@}C*eI{lvr|8*l@9tw%N{P(7o=>P8W>=D}U#6;x0X+8V5G`ha7A^)ounn(O^ z9RCNe|Em7q>N@;C^Yu@IsDBI3-$M|`C60poru9F>fA)=^>tFx&pmH_5zha(}t)T;( z{(h1CL+m$*8unk3f0z0HTm6vK-#&Z40WatDuk&9J`d17F{yvA^_*E@8_5SMgGXNw= zKndyJIvyy8i-jR#VVab<@?Rax;Rlul{w=frJ^-;~XU#H(YR&)F@`>fB{y_Y1hWCHN z@&6+1|1v4dAG#^oP7(T9l6F!K3e!q6; zQP%5jzbD;I&wF-$9B`W$;=CWO|MD#G{aD$TXOBL=N?R0Oou9b!Z8B$R`l4u|nicGm zu-$L>?j#P!JG(IQNJ((%@zk1{l!k`%#v6He?iAm?d$Dz(vcJFn*EvGB)w-sZ#z*h&J(+&|{_EScgIQJW7h3M$>VH2L zcC73`>8X;k69;d1SKqpu+CG+lcckIoz3l$UTiyLv`<@>ke0%B1hr3UooqRQSef(AZ ztB>8n(I>OB&lkRZ6p1LdK0#so!lOB>(wb?R^*-5^UU?TC4&E@#?VuI4c^_$VD7|ZX zvVUz^cjT!X8&9{zo#Fdb_N_fPeDYk)?wXFUizBI*`l@QK6mgJ z(HoC13GSa1JiXNQ?8M^_-J|ml-^>oZ{k7J~v+dT{lgDqZ&1_HLi%ZS&580n8wXDfq zcf8D@tk5I3+UDwcMlH|v>Xp@(>((_?dsdwYtf}*DJ{x|%W%JcbF^w(TE?4ev$9plylKJT0!N8?8@Lhoi3HPeNQxmmIyZ0JoKvK?aaKg z^GHj4U2o!zp%{Kk&bhYq+It6Y^d4&LI(+3>@q;Jl9^boiW4P|lM9Y)Ug15qf7vJB{ z!$knBmO`s97o>uul>?IN#aq6CR{^Zo8vpD-&1gBF9N=nE)K&S9ubbBGcRcnU-!!v0RB5qbRZ!1njE6X7=31*Xh;ctrjuPTfQ?Ac01qkcXCfW6Hwo}Ayd-i zrFpU=bNqR#!q8|-Pd#`4vzVV3ZsvV?{lK~De(uzx@up#Dh?-`7os#SR=cj*&Zp1xQ zn*S_$gFLH^|1taaMdF1uqUj^^uRdNFzQZ!xn|KYXSyiyR4@zy{(#gG=mpmnO;%wue z4WsWwNm%p~y_NA$T(XKOlvw=f+{hN3gaQl{rwoB%paHWU!C4{M4%u30>>45%yMvI| zx{}VvQ9cudIWdHB^%%c0N&!6%iCmM%bUJnv6Vp-H&Y(5Tmb%NBQhrE}*bO=I|OX#Vn(oH+ot4-W}D&YZ;(kTS#MUJ|2@mEN_S<31o z4ffTEwSqO!l+pQedSq^aBmPm3JrcJw7}Twko6THjvKz~%(sAApiXGHC^)lM?ChB^x>y z`eTU+NMa^51lA)o&n~-BJq=m&zWN|p%GWp(1f_QZS0S~a8Wu!XS%qEGF>}bildfyK z4cMacYX?sD5vjF+EgDVCr7T3f>N0+KGYv$4-X(e^Klps&Oc!NVrD{Fp;f#tKWn^Zr zvhBTzIXAnHMpquM!#zn%w%gHm#nmomI|gBV-*k#^-TwO32HU$`XCCk9s|7z!80y-b zzx)2pG)23Iol}qLsY?C%_CJuXa@}{CfR#P~*w^`1ZPVcVeM?=Bx>CXNe$VY5%U;^L zeeC1#qtVXEG=)W>^{IUp4#BbsSYMmZua_V#4NeC_V{Ju5Dw21HKL7AEAX8Ln)?-MC zOisfbLc&bS^@7}4^ui`5fi#gMA4{@F8)X{f-{hyplna34<7xS3tx-A<7X4+tI^L2j z6-OP1J_jxXPFyL!`f})Moi^NeqYSlyF|0^6h+{F%lJe^uAyfca>JCCqoHH2X(cIcG zU!MwlEu;q%vOxAu@QCu4A_He9-1maqKxGXDN+`|vIGvpA2?9_e6--+`LgLN+vbu~q!$4dy$+J5)sin8zvR zS+*14TUH&CuD#g_hsWisna&3_d09?;K6%Kh8*NjbVb8CWP+kPc#~ZkIq*e{h0tnzh z$^x0D$ySRO!|Cy1w#^KrTJ-_Rd6JZCOu58P0_WQ8paSJ^noIz&Mi*|+-5(7o*8?=k za7&1DDM{uk6HvfA!4Ni4dgs>PhxkbJbdOA==-7oY*e2Q^J7H}`Z-aL%;vJw8N_))rY*-^c1AW$ z@x?frzMc<{$mDI*q4^GbeAaO|DIuFkO0UkI0oheX07Ks;G+ZgLqh${v`xJBHcD#T1 zvX-rs=+CE2#^=TZL5c)I4>Yq!J}9nD?MqKb6f2OM1O#ba?e8#qxx#W^y#}Fo#EFtg zH;r-T6QB3oHMuLyO+lVHcfWK4NVDMjwO@?OEzO&$$S`gO38dOOo*5_<$_9p~0kh7T z38#1m<3*hdq|s`aVWT^+a$w-%4^kEdZ*+p3-iCj&7G`2Zx^ZDNNV#X^p802XUi3Iv z>6;(lrj{qWSuaRw(2rwWuppmI3Ie_PlohYQ%$w?AfM$A}`d$cS7v7pHJ=yML_I*}1 z!~u|6lg%wUh0HKl=IvceYDF0|rJF;@QfrJDShcP+2~&!sakxW~d9&mSCQmMm*~ZO} z%am}Sr$r(g{EJF6G1_FfnrkX9hLomROHOs9=E^+veW{KV$a)iI^U+-u7;9{+MYugO z1(~7Um|tP|e<(W7uq4|zj6V+#O9Vkh#f>w~5$3{jfS9AqFfB(}I5IUgQY$O12XLo` zw#=+h8)RnKwEZBaw$ZFCeGARXHjUTU%Hq%e8^^&HK5!q`eV^BPp1+a}<{=p+Cg?Fd zCY)mswGuXQlH7wcGk+f8cvAPgCkLx>P7 zl9id>Z0O%o`F&rd<=BEtU$D{2Z~IQ6W~ur+LkkA+gkKE8^$D0<^t>B;McuZd@@Np6 zB5;w?D?>+vlQGILlaG>F#rQB1(mC2}x43L{oN9<HkOEda|_S3mZ zl`083TuK&FFxIk3VRXf$xnm>EL@JXhnv&RCMV%JCST&C=EJjNp$3-mXBe|g|0@V`Tgi*o?Cp(^mBth_lQ%1=uDAJw ztP%kQiu)OIo^dK#QfdeYA-b|xhe?KY1f*!4d$^^6uLnf)a*vAmocK`pwu3uUoJ@+g zY#^V!MZU@<{RD_@iutdj$?sXj+cJ`FC;2L};tPxXiBB9+>s_XkcW<_sfLCG!pFK$Hr?7NGaO*%XXGkuYR=9E#zlE~H=|yg|>F(B|;5ObXy> zj9$XZpgr2O070ktl>hfVW4AnIEuF^}r~2|SrX0g~1htlD@2*_utHl1>awLjGWCowo{p8NVrm6Gr4o-0lVRs7*Adrb(ay2#-)t%v4rEKPyF0Oglr%OA zU`ntoWK-R~5K~WJIUUl)rbHlV3&c?7CMXPnLL`)21~!CMse6p#V!I|zg1uPC@sXv+ zgrXPlARiRQ@O5g(RP|4qDT@N#qAjQ|#4Zc3yx3LysgS+03yTIY9!O9s15*+XUC4k8 z(YR<8nrw{ubFTJqMOw7FGKvfGV{Kk8w=L*qY)vuVW{-QO8N`)Pa1jeEmT$n^M;69W zbZWSuIS&~0qN!wi5>$kG7(XP&rG>dq7)0c$C~s4!-bx%Tn!;cZ&e9j9DRH%cp_xEe zzZG*)>7CCn_-`rLAvVcCmRZQ$XX^D^)h-=ez_Ty+U<;7*T`asMtXstezIf@T^ik5{_Ps!SGWyV$ zrtM6>(>%YT{JK#Ph})!Hit>RosrFjkD7d)bcD~{Cy1<7#i|6EJrb5f<1TZ78c)JlzSi;)uF^Yz}m(GAc=)v zp)>*2+jRAd6n(}n`NRiELMud?W)UC5q~8qS1cubOtoUgdz7+S*X=So##xPjo_QN-W7`87?=EjrDsCX`@*7FH<mEj#i2tCp2HO4vE5q2$I(9wy|66O8!_=ALVg=Z z&e1&A`9Im8sc#G9*^-@b0Fy=BD9gGlY5rDhD2?}9x z9Lm}+IxS$UNKr8K^B4N_G;c#!?VN!S!)NPg@6g#TXvWlOt_=O%PMoWe)mpZuE9vOYttL97j-qq@bMJnfwIwjrZ!@NPkT7UO@aRAwBw;^rp_sv~9k&vidSCVA#Z52FUCz(ls@aMkf#Q zJQuttj)-G!$$*(<1(s$_!;`u()PfVOjx`GHaYm8}SI1h?h~Sek}qRJI|3_(6_V# z-KG@VcTgZ7T2ls5_FPyX+4(54B2yW(T>LPYhxO@(m=vDnaqfXlrx$I)E@`3t{eX5n zdDFZAJ)-Hd_ZsT(r?lVMimpq?6o+@3ys7lyp?w(js3+@2@U{!m&SsaNHR)m3F^BrP zSWM*H980k)KW*Q8rETkl>&ECf$I72grO=_$k-{t!`zJH&2EwQpyh1KKBb+&eMXzX( zU7vcaqjS+M7!3g%UZh{Vs-H_1Y8yWA`#fl(Peu^mTsnf;o<@P%HC*84?vhgrGKNNcyln^g`NV#;$$ksGTUmiP#A0=T0D|P z+1FnDTxeiY|4Bascs5Gctx-{=r;RU<87^zqKat~N*^H$(8~&yLbN0`YR1?5b{+y)o zq?LBkjNjO55An_om_B{e5`keHLOPgiwNz&MkHqAA5@r-IUMd-JeBbgW+FHW^wn2t8 zCHbF$EnZ(oyp!|Zyra;XM=SmqTwgqVr$%48*uW^zG%MfYvYS2s5ov^C)n;Uc`8qZ% zw?yACc{)J9Ge)9unaAZ8^v^BUdgInNEaq5^&+&M5cWjJmYyI@=xVPRbmizeM4Pe0M z7lh_lV6dt*#`F)rIQVmG_A)E~7bL|=3!A`~$Mwx#z^@nTS-Dx!8(I_RM87@}%}h+O zH?4cKQEBfcw2f*p5qDx2BdEoB7z~$oB-tXKUTG?L>vs0d%KA4ZJ+uuS4mlce#+(hd zkDF=lEGPTeFNAuNIcmEtFSgYGeN(SL632hB-fGfL_;%jeH}BkD{5hCfp8IYhhq~Sh zcO;4xB(!Djv<+NWXJhc*@k!-D_jeKcAF69VY<4#dZF%o*JK2?M*Y5uQO5KYOr(e9_ zznvrhV1mZ@&|fHP-`3Z@O+5Slg$lcjK6fqUMQE~*XXj*4i^Jk?ADqTX!&V;zR+Hl| zXnkKDH=u{RJa%UeS}z^Uxz+q7>)RLLjN_2GTEF|o&%aB!LbbQ;!n77OQ-Dg;&hO+e zz>zWi6btl`uVy#DT3Fj~V4}XP&obzn?gs2U*1%M5$~-aF{^d9K9h4d$J2TCChj~1^ zbv%fA1UrxJIOpYe5{U6uf60-d{TbMq&);z%t)h4&)Mnx0BL-0qe=N2Bwpkjx?u~-!v+>2~v)yl(9AOLej1u=uMnfPr#7jB!?$L1&8+`27dEj8WCW~jw^@N$vu@ubJ9nL zJ69gtetn_Cwq@>5`wn=wCSCJ6J#uN&vq5i{t)J~=g*UU#$80(?e4}yA!{bTJT1}R8 zgR0=z^@IP#xZb?g{Vc$^_Ta6a(x=Q^PsYWuZkYY(JN{XB7UM|*_hvh}|b(hp^xEIxjyaJ1;c zvlG)1jt5bU!gR}Z*D?vBt@V|-M{#e9-#^}Z#ThW$xJSOnd`qpo?9vWdMDKyjO9{&# z=hSa0v(MSxd3;6I9Jr6Rj5L{UT0$yZZo2H1^P7FXM{LS0Gp=lCGmjm67j`P)7-^mL zCj0F!wNAf&2yl-5{q@i3+aG))+C*-1sj{mM6%k!4x>`t9o2G1ZW)*a4YTKQJ65*1= z|2(d$q^s~LZ|(17iF9U<@=-NygN?+m)s5rHZ8x5_y2qEj!_xO82yvo4ObQl7n z!dit6_8WR&vrR>5Bz;%aE2;+Od}jbX#+!PFMIX!f;cOn$0RcZhC{cjBRbtNXNa z28d?>IsvS5^u@1maU=_+=>lkPH&kosEEfN&`WW5Ovw5zm7I)QQ-o0|-`jtnW9VHlW z0)P^!I#{5Be8H;)`-VGbNGJNmMQuwVl+`-YC>QHd z+gTlV%x<~qhu#2*J~552K;2bhd>8uE^6+S=M|sQpnw-4je5vKN3aqbIXWg37YCbZI z#kT2_c@6IqdnDy|&WBVNYSb-OXlbu!x5us>RF37e5*z!sb5|<0)qJ!ttex>hmNqH` zUe0wekj!1QDkGKtLn{zo86)TWE39aAIG{Uu=iUpc7T=u8=YAaQUBePtkJ7q>W(Ibx z$gr~>QHC;xlXvF+NNv42lo52Xj=cAPB6)ys;=}z#-p)(4o{>s}_BbzH_H57bg~QME zTf}8IVg-cKmhRjpC00v<$;CDVQ`=YuOl?RX=pq>naitY#qf;0-ifSty`oNUqLjIi{ z^O#a&@0cCt#zKYO z1oY(l>@!c6g)B=x#b=z(C^&WdM04}0Ouhj8)l*`R2z2JKIOc8Qvh&en*z&=31&xE) zGla*dk~ToAzGOY0T*=nP(98>tv<}Ul`P4q3vnNjf)W~4)6F`tC%K5PFpW`cS2$1sr zlX2nGX2J!RYyYgY=PO&7^>YfUWL%Iqx8bm@QpCFJ3$N(da`kAiF3?Db& zp`ioJ<^9JKRzBT??ozCr048)_1w&PmCxp2ae{veYaWE#^d{z+1YIS)ns6ndK;>WBtORhnqy6rtR#?Xa;P)5;n58pr@iU5WMRZK<5VlQil7WA08!I zaUDe-?)9r%WrrCpI?1B8N_Wa%UGcSx%hiHAyn;R0(G`Xf`!;jEGy=hHbQ+F)|j zgG?Zi<~6%tN&Ig@4xxreu_$G^pCmLR3t<1244UNowVK`HEz`IcL@yT2yt4kLKH=+x z=&o=qph1;VzmCpMk0_q$g~2kvg0H$+0MV>)dmr;-9a(rPHEnS+%j2T{sT}|hyxdS0 zlowr_lqQ;enu_(Ej@B!RwWAFN8{NKkK({dd`{JL&3;bNvr{f=pEUsoS!F~ZZ>w?|B zp8)pB&t~01$%lktX&)-mk({A|_CH}9m{;O~_Wou-<7seytd6;x0glzp$uJM(Z*`hB z&~&Gv_jYY38E?PM`i_Ip{5hk{i;>*vhOmj}H;J5>V;DA%os>W?F`3|*0b&&gH zTMs+hOzjOzq)_jbm;-X`sha}IzCyI6(>{z3gJaQhv1fMI3tR@Xg`(V7VwUS9FuZM0t^-V=V+CmI1kfu$MA-QGF1Y*y{v#x`V2SM1Hs(x`J^!Xx z1HplBX31()D}qcILB>od#2GbsH{kF%c>k5)$imYe;b(?tqr6o&(LIFDuQrpf1T;Ee zZ7X!90j3#3V}#(V28Tv&^shkdCIe@&Tn}&QAo%aGML=s_hfy_nyh}&}gmfp^ZaBbI zB`{Hg#?otNGYLN0-xea$cnt^m-n(Iv;rjl&>1}1z9Ua}f4Ld>DdVW_GgI{Vk4W~~E zH?PCGDG%#km5>?D^K}7!M!l;PFv%~q6pO6%(Nryv2>|^lg7j%1kS>Z`XrRw4QP>Eg z>UV*rcvQcDmcRdo6i%Gx5P0=MmT%Tr=cG1P2zR<=VEt&A(5|Xz#5$e$}dfiHvoZVQWsQwiZFZ9H+rxvg%9jmv2U%UJe6@EPX?p9 za49U4T>_?*S6->W%It8tV`aI+xTN^<4J_<7C1#6X*>(x0cnrG@U$%$6H{))@rtz{( z%(5M-yX&8qt&9h@P;gbv#+^U>@@3eLyErJkb;UGpYXxq*^DOCb`SDj}dGY1Rs?xPO z0cHBdt6Kj}zIH z?HI=H9>Wlom?Q=+udr-2T%Mg!4mTSmsW3@}xaHA%nXC?!3}wlLWX|4>JYi?Oz>5i) zsoCEP1Sp2kj1gqjfHG#-nsx~sc#!SnZcnER&va3J&1p>(*SiM!rMU#x~Q%n zr`p0!ZS5NdN6o!Cet{-<;cH@Q_gR}7M&aCTqu7XC=>#tW- zFf+hePJmfgkWIYEq(30!y1T71+SW9uRkZkH z7)(rJh1iIWrm+N03ZibO3>DrPk}3&ORuC7~W!eM9Vv(7Rm3KVo#=_87c;Zaqz=L&{ zGs^TX@3rU>eY(8Y0l~~ZiAnug5!!XODjuS(L!-2K7sjDEQaIWPJ=^rGJMVBh9df5M zN7F^~r4aP~5-2U5hp*H4$$SYvVSjb#iGGl;6q31hW)w6{S~_1H5ln%p8!!NZG3*x- z8%kXeOmUH6(WqBgc)dHrnEPGOng`h;0xx8?DNi_dN{He?Cei?}aCpmbnF9jrgu^z& z<>>yh%4_iEuIDZi7~;Z&No?vOyFzLC7HQck8FuXlT+`^WjjF@@_LP#e73A-HP~jlo zutG5Xw7JPTfNyUI!0CG+PbP*chC%@_PEtBsiHeta4pJJOBn#Unbqj^%sr<4OxIFGT zZoLzn3zuzxvD>m7lEep&7y9K5V|AxX^ZPL=!(~}AU^}BMA78#&S{7qqx_!9ZN_J9H z6pmY?#?>YsE1JaV(6P-saS7w)+q;3sMcCDa_fGXYHqLX{JyyPhaiBP(p<*E}n{i^B zvUJ-pb~B@luPn`w029P=j1&Co8gAV$+_JOSOA11+D*dmto2_|IUi^$(fxy-f;1lZN4ZTRIVp3fE?jIc8mOQ29a@2?%3zLCt za6J$4Dikhq6SB9MJF1+I+Mq%_U_03j{ZEE7kxNY7g!h)Fm^uPZl*gK>o*T{*H}(77 zjtyo%K8|;enPEN{N)w`wY(!n{5+1_{LnBW6PH4Zv->^}-d^(6Ml+iBibhk?Ltl=8o zGPP>~L3;Sd*@-qt0QOUWb;gpbNQ~|CN3&>n_mG1=+SAJy+-nqmUWA$|LM>nCZA}q6 zv7&AGLDV&_Zx;$pD!?NIq5Fkct7#iE+R|C7RPQ2ia&C}~R2X~uwGUr8$KpBa+ECo$ zfgkqT{f*#qf)Ll*gg;lMV<=c3?*;Uu4C*n&vt9`d0kI#BObp>qm*wY@SN01NoWN~= zu>neaaYnphc$I5-SYhC<7=EdP^zHgC$UwF>d^jEg1e)!}B_!tB5IR8Om84IX5hv^Q zf@_{`vD~(gPMR)ro8(YwrG;-qp@<~^BYn^D(v1qt6f7X}&!Q$L|1=EmS|u(zUfR%8 z8l6GXHNZDr%%ri&RHQWD9@uzs?czP}?SEo*uZFeJp>2VEyF)WAvvg76LMjuaYPl-$ zLSq2(SR*tJ7xZs{7}~ND`q|xuz-B;@O9yoLxODtpODDk&rFKtH%A}z-JApfCV5$~i zBf-^o!K+~qrv(xYHmt^%uV-QJ4cjHg3lsYRuir3n`r^TYTjUCKDdVkWgcT|SYaj@9 zhf5fjC#k0dM7YFHZ7-$49jodzJFdEBPnTZ3TAnnFS&>P|?fSTW60@TMScPO48{m_W z>{b1SJElvEXh0f}y}qk-qgZ>9#Ew0|?a273I)0@p58L*=9OPoNl=uF9lA8qJmJO7R zcfdPRv3c>ix-{X}O~y(67=C|Q@ib-?4NTfll`&kp5-BaJ*ok44{pP~|{w;s^7mI^; zrXe54Y7A3VrK^!IM}G5)8R{)G0I$O6EB7T$m#$!8wU(A709ebwqIhLVN{j*gay2j? zV3g@o@W0cYcd)Q+cLfT% zlFR5i=$rv+Y%3tI3iezk>wE{;lOR0F6n)Ya0#YG^)nw)b*z(swl<(*@C@lrZEF9&f zl}8#}&3WKliO{10G^dFI#`4U$qFMhn_ND%Cp~LiW@VJf8f-f>=3aCVSKVLOtNcd^Ahfv zuEs8ebd63s1@G)qH=dyXKD&RxssVcxa%u4RFZuM(_KF$-ecNV_-&bz_zPj4<%BA1u zUT(W|>40kvf1w>4NCKJqIdZKtG9@5{rT z(xB={J6$D>beUdrR<^ZE4eVYJH%cdVnH>9aMDtu-zFAh@cU03!Q`n&J5DI7D#V^J0 zMqy0mW>2bZdMXTN&8rSRN?1^dsgjx&_T1wzqaHZj%lKx0r!-#ZAK}a(P^{LCceVR5 z5Um!n>D$M5-)AW$!R7Dmvwk=Y9$mP9E-CT6bF6g9v8AW8{+<1#J@HcBr}zK549imb z>fP2&wGR`ZC*eeHUWx$p#$CIR`JelXM)bs+jqxyi7lf1aq9P>x&>sE=&D85fb->7t z`dKj@*+1vLx!35M|M}z3?@3K{HdpS`HoK=P+nm2Vp7E8X?CvytSR1a&$tuI-&6)V4 z{2J1Ks@!nSsz;Z=3Ci9b>9vEGzh2$gyskR;+R@32L%YBK`Tcy`H&hMv^Tn9@+(Iq) za`#O){^r{#ufB8S)mDLj{!?8)W6gX~3tqDH5f>8fm#+{^fnBS&{QKtuPk7b)+u<#! z3!%zl8lhn{=TFTEF>IJMJfdyxv5&Xl9}SPGnteP2slp;)AM5kwwPQvOufq@f2F&(i z`D*abYIcR_MNH(fvC~g1E+qF`fccCR1OBhdE;0WFI^k&juN-IPeh3qxv2RG;cl+3` zHT8ZI1*^{i!S;i1Vv)u+uGC30CSR{NT;Kw-of#ok-4&Pq>j@52pg43@bd_LHEWN^s2 z=E~k*3Fd2&td&M*%*06{$D#|&K>H%-fitQ|A~2qx*(|p_E76)rOJ<~E9TjXB4l>}~ zrLK$8qIIo59B2k-W7};|fO*;m0yvg#69%?s+n|{B;%I@r_8z{IHIF)4ZUu;5oep*w zTBxIbPG-dItz8)Juo)n2n}cr*8Xv1d4Iqhj%0yHE5R%Z^=Jk;cMv zx?ew9G)JEw^U(b&^PHpS_($6s-(MAqov9c}>!LZld98~A{SA2JIZlPGH6GW+>Lt5I zuARF(XSl#~$((n6VdP&UR7vF5XH?1JIpd5aT8D_f`kO9qY9KIkMuED@=yfBg=dbD# znPZ;y%_&IMEhP%HP5-ojp0B#VjGZu_^2npRPLP(CO8?8k{`$Dzk&>xn*_Ue5KwWxe zLMbvC2iS%EYi+(=co62>Vh9RZ*q{A<^lsZ=N*e=f+(gIZw}Rl-1$K~;hu#7z-r_k0 zZF|%P<0?C7wAm;Wij?D`yHfIMl_-WQsOOQOXhV(+kJ{{^zahz1`KBjeVK8Rl^kPcQ|C%mFt>ewynjjsNd zz|odS^~Kzo3}~~juJ1SC$PIy@7A_MU2>h?dOiUXe@IAC%X z!J65#dMTqSR00EoP7oMkul!oXSZKBAfk8MO|0kZciJpOVQ+dt-M&)bo(-k;MohUFC z&a^~CxHL9QoRl9i>JP?zX2A0sK4oBK;6>mGLC`KScA}fPK9PVC3?cDlgUG(&%6?*6 za}ZVYo@5ZH!hfz%LAgd1yatuX>wL09pcG|1O2L@6kCEIef-O2!s2lzu*nJA+Ypd2H z5^ca=lXB3CQG%OHwI-`V$ySn@E!0-CyZspd_a3z?!$npKSudk%>_h>hwO~E_(3RfD zu6(ao)IZPe1KnaASe>G04}_WE*+P<71&#hv-j%zoIFfu=DHds<+$gK!3Ssg8q7tl9+rtjo!KJp6f)Iwh0zrQqGUt_jH<$zwI+I7?F(Z^3(GW&D}s`g9)(r6 zvNuRlSB>r!(Qb3YfE6wCQb!*Qkz1*#5s5bRSs;OMH(`T@5*LHrY z^*uGtd(wuKI@1k)r{nw@n@Q<2DOUgRar+M>@A{z+TRfgDpNX2*RoWJ-RI##<~ z>}NJA!OnYOBXIjR7w;W^m+}CHjD~rnjGo!&VZ1M2Kfc_6()pa(C`vYLd6@x)-t zC?9LZZ655hhfnXKh`c0%f4UP3h_cf;@yF!Y7I(OFBma}oP*C3%a+D;5*UyW(`snHQ z%CnV}+h&LW2*eACRgB>q7ulp6Rvh_)fKrE=Z` z*zhfB1n%duGd308T|SpC)6k9-0X}Qe%am@2J|wc&dG20q>{g>T7LO6u!E*fqKGt%2 zH2BbRAL+B4yIX=rZ2jVQZi=+qkBWz(6-WThU>TT>I=7`2OSBUQhBo7%c9wxK1MO|* zQIej~oP;eDCVk=xChm~9Qe{3-yrkAeHNHmfIm+}#lY>hv&@ z<0Zl0n!|>8z=Ct3`t-gY5c6@~0=H28&cuE;`U0Gb(CSd(Xde0{tH(~Pt|_d+XXo8o ztCKCTXd;0Oxo$r~s)z|j@J5t<$qNM4U92z~La~5fcmbja5Mm)@d}Dw=OV5=Z5UF)d z!a?GFnHVi)L^Q8RFQA$;cM|1KiI_jM?_C4znjz=sXzfpk+3=(FpF%M!sn$bATAGqI zU+&y4$4N9O{d>FLZ-nU?peYe>%LV`hacakXrU6DUvN`#-Sq8_0$qJ-GUPJMW9*)n1 z$gBU>wgU&ikI%iRP#{zABDSHnioW!hb^KF6J<PNVOS`F+O_t4NVHes=dW;&<@ljF=2jf$VoInZS08OZPx5Y&5h?ZL2Lh?(|jZqE*Xe{|KSI`hdoD=m~)#Ui!~ z3_sdaDD0&KUE}jCvn~MvVMn&JjbyAAi=(DaY$8KWs+ONXMvU%_1PPBCA_s3^V$3Gf zqQ>Ef_l@LH*7?&8$vOhle*k?iIjQOOf+le3;YJF>Vb%MAu)OF97D!$xA0nk0(I@U0 zfy)jzMr^kL)s3qL)^Ikh39Ap&w+G`ACtPl8`umQ7X=-y)e9w(zY>Sen&g5vbewg`q zAaNWq#ZgYaG294w?>(wJ*tZR?M~F z__4GdB~U=W#H%Z8UY8C_)?o#} zdAZp%V%T&1*>QPbZ45a<-|I2}^3p6O8i`Ht>N_yY*bQ_NJidq+4;-{|E=l=iHX6@f zHcxQo&vShhl5a0Y2k*`&vm7Ow&pbkmfB)lfwVYHhL$I^fUB``-C^Ja{ms+&tgZxbRf>QV zLMRy5a%%tz02tFhKW-7MGNOMt3->sLt)0!LuwvYk!Buy{jFf=k0l8TZqVAPXJ%@t< z!>ISK?_5VXhhMkwCpg9|(*wEu<)9uzZrYz)(TykJVOt&coM*4sU15js`;?QWPm!?} z8|0WBWlvsdGR4UC;*&?+?vCmJRa5M!SQy_ge{HmvK7lrwkzb;*2%{h{G4$=xznf6O+MwTU5V8!Aw(V*GP4HIZ8vuYyB1(Y7XCVF_ z+xmyVtPn6A1-s)P8?Ic0h}oXVBP=Y!#tO~akw>GTZPOxbc(7f#JOK>X7=`HZ0lP`i zpn-AXa5&g&px+KYZ)2MmSx_inLc3T7V~^0+AasKYb4>x2ApX+|@*bG#kIesg_{cms zhyp)+qnPh6@|lKwEI5Hf3Xj;7Je9&eQ6Xsu>|n$xWUnjb8*cdU2O=xUC|FOaYfI^N z0$4_TwzYVY0%%?sPk?{~Bro3yR1-fdPn2z)t7!*)U0DqEY@c?~JZaq7JjFaQG~a?8 zCXwGoSz4;OA7JQf`{sIME;X4 zK@A*#b#NdB@hsuY&43!tYqJsxCo^ENAt%7%lzXgakUz)WC&7cK*mAmH_iY7GEn0T) z!#sP)V-Eyl6rQr=x$WNP-gnQR;dsm9Zw4d86!s&Jf1XaYQfAf!cL_);!YkY3!9q>X zy4eB)iNK)5UJpPLjyr_qRi!j0elBy5A%I51&v_a8tUC^@#1b-7uItY>S0TCa6X88e zg95?Kw@bmuqXzcusO}L%ewu!XkI^)1Z8tj%3y!`&X1H>VIa5HU!1~&@>YjQcup+O- zH+c4D{ZUq=YSY#u$0(BrTW_&8eM!wrtxJls|8xhwk#mfQmaihA2O6K7N^>G7It+>#5%qalL0F7g!JEN^w}F3;>N4cN0xy~FDY>De<~eHwr0QI5R2PMa zgnK!%9KnGrO|?6Ynp(;))l~c4PRe6=5VB_xehek|cUo3|-4b#SS7?>yHMctl#Er^@ ze32=>`}48cI*(4&Er%^A-Q+w37Yi)e09dORIOVfUh=_9$tTWo%;^}cmWvDR%ZVtgm zGy=c>h8|3o;E9u~kM33$?bY1|5i0;&yrsEsutmr+jDNS$54H(V=J#q5cr>4u`1lj% zED)lD(}D2~tjF!}KbDb^r{DH@akBT|*;2u`11$bO;0=nZVwSu`{oFM2w*bOgFb*xo z_8YAP`syDV{D6JJ<*$?{sXR_txLmKF44xnJ;Xy%wruRq=Cn#Q#zZ~-V%!wlP7*vN@ zi?1Ag$+p{(1r7@ziev0{GLpm~p-A9LMQA{#9fIK0JJ0%ZHjNqX3yJll3u$HmHdf&k zn-Zkr1aQx%1c~;Yj1Q2`xH{sz{1u+<8}lOJnF+`Mz8z`8>W||T$>(Du6=w`|e29Ov z@Vwhk71xg!d5g)|VNn3FidFr@6TiealH<+ifZ3dT2YJe;oLZwE%CP9J3pz-;3#10P z{N>!`aO!nRyzdoFRaAPvUy)}KDcsmKSXwrPjWy)J-EHuyS-zvg6fr0~v<(gs0-4L<2YSt@OafVmT!=_CCCn1@SYnJcLk;c*_ zds0*gSU~WJ>_lM2PBPi)-Y|c>PxursgG}?&?;rHbca(JHXY`;$Vk}r!ez1m4>a>6U zI4=(dtO5UeKfjHylxX1X)F1Og{uotfRJ1m^Fz@x<1HQi3(jzHW5>je}u(zGh46CO^ za?szYwnK;Z2N7pgQC_aw7ycz@6(0s`b%!qPxETnbrhmTDj9MdqqjbdxisVm`qm5RI zgQjRjvJ1Em2bXl~xI|_LVc$Vw0GI$I`s?5CRBKn66c09G(aO48#!2mb*e3V3`j%PF zHT^zwop6qZ)XH3`%{6WLUU!M)7c1(u*o)?q>`b#cBroC0vq1os!n@&mVaNdRzBrS& z$ZG=HeQyq=K6}sW@ygxzef}vjeBg$mc}6jBwdV&uQ{T&f=+asJ{h{w;{P`t}ciH(5 zf{l{)41`)1QwPHx4(%CS=ysj@DAMS{x9hj?A6z|NT8MTHE%p3eJ%r+Y_~`X=dGV*m zF$+$e@%!fW>i*EmjsNU@x~lk(RvRd_^zr&RFW_U$gJ5q}V0z}psf*pA7swum4qspF zm~rUB#b-HC>%Qk%nV*)g$h%tXv$Ejv>x+rm%g!xZv7zSb%N)(kyx)uCLIjYx(YYcM1;eZGl@T$n^ixuttZ2j4;ndojMy6?7y?wS! z)Lg$__bP7kEfTA7Tk&& zFvUfCKeMn_efsle=!_P~xBn_CksvPCJ7TnXX5)y_tPpyv{)+KEG4*Z$JnnW1C?!}p zOHi-J8eVCr)X>fxF9n_s0f)j@|9jr&aK(5}=hh$CX6Bs}bk4@ z%$>_rZ_dq{scQ-R8{dsNFR$4?Au@lV>_vBV))e`xjWw!rZ`%f$paC{MPEF9;>0!OX{*9?j)(_hxTnQzKu4d(QxCt%zq7E zEAEi?@oziDI*1=`ak$aI^O!!$#?7)del|DN=YB~Q;35uriHFhDA{CjTf(X+9U|8J^ zN$K~cv$=wFwE(c7DJ(;i%lsx-2DJ!k+(8{muCUp+Y>6i6O?#NxLOcA;fAwSiGbx=a22Da z@q`Lxvz#T2Y2TxJ0{_>*e&qq3wF0+3h<6+{9$WC?<{g+p#XXr=wXBjCM!SMo%#wj&^Het$D@ z$FRuap1O?gF>Ldbp|@!K&hxd?A+X;80r>>H;yIq(;CDJ|$(Bb}#O+&YFZhs^oL)9} zs;)X2uruBEF*IP@L+??R$npv=1srGB@`lsR-_ygquXWa-f7zM7`oHg2zj{r)*7vK% zVI}g~4O)BdZN7T|S5%T>FEaU$&MNlP{NDA$U4*hc2zZnXkaDkyXnm|+pNn<1sUh6+ z%1^6G1B7U7iAI^fBxAmT822U>tnIvE_*0q?e*R@p7!%SpA` zaI&hzYsH(qCj@nU`z`s}!}h^uY4j3vw7|jpUsBIfCo;6)fkb0$= zQLe9XRP*j`>p+1jUjL6Kfo<;bg2vUi_cuAY&5D&iJhGD~noWfV4!_uSa8|ML=j`&1 zq%EFD9x3;@5KjVOJb@W2iKba>l6LoZ^o274IsL&m(gx@09DE?-mHkqdVCi)(`a_IT zTAJxV;LmR-cNXt+?spih(Al)&$IQCGBaOCiLpLv8?zaDjKYMMN>!tS93E>;eOCLYf zn>u>#QAWhgXS440RC{_$8&Lfq`UG9n##0jG;AAS;CDN((Es4H2o;R;jvG_5)QZI)^ zhlYiAQUpif4vo9eOHAjf2vjeTZZQS1mV@pJ1sZ^>nh9M!Ol1f90geIw^ZBSCF zh9s@8u~aIrUXw~%edqo8-EP1C=D+#l+^*|7=XpJ!_lH3AMa&nDD`WM($xrj8Zy%s{ z^`fwCvehRZj8L?Mj?#CUyuiL&HdPY0M|-6LdFhgpa@t`<`#RH$tekWJ7%EJY^=1)sv;>SnPo zqKXKtN}HY`#r~MSZpQ7b9;d?3>vw%31{}n2 zQfTm;&5(B*eR5!iB{K*rz32B$lRxLtR zKWR-dPVnG>ARM>iJnm~FoTs zX;vo9oLZjc{?C{kL^&C1RcdNUtu@#uAlJoujwY&Z!Rtv6FRgn>F?r|L17P?(B8Q?? zsygLVvg(k`U^YQW9(}K;7^x2BQ3wLG7w;4rK%+rSTsLZs4_Y&YIgXIh>w#+&Eo}*! zQ)oIUqh4wet?Aq~gy>Ct(jv$v82_pK3s<25xVmH&0KjW}w7p~#32eu(PSPhHjU@ZH zBaGaEFvb;>Wis9Q0`G@&|2@P*DF991@F%p?V^o0o@JT00sPiEfJrjohJ6CNk)>->!||=`3hB z0#1z>`?3t{07wr3%|+iUM(8;{`lCYq!BV5F8oG89P`>#hp&K11L@_jzP&}>Ksv5vf zMs0BLUZH3RQlKD#PJozdBO}c4XgHNlkSs6+pppoHCM7%-#819Yr%h(G{;OU( z`7a`C3gt>pjl+_sD8ew{zhOcOfKEe`&&D_dt_@ z5!^p){SR#YYVoSN(%YpYOu3N$m0ipw(q%$JyRW@XLWAlW?2HbhbRYdR+jwff@o%<>H%1KaT`(gpjkL84v#bj<*O8-h z24^y0&T3w_T#GDwDmV#tZscx4SHat%(u@k2a;G zs+1)$dK&>?DBR+t0#k+H5thG7HfQz)f-f90u1&`3$c+0~7{4jO*WcUN@xVHWxQHMwJe{l~KL?$b7*49fGbBk^)Ak ziv>EqaS@uE-Ekh3z#}RJI#ulB9f;n*-QPRzjR{mbZ+XPOz?mQ(aa^UtV4wP{N(+)v z<9w{t8+S4{0BvWqaPQ~Y$n+)=Kq0R2jVGrj`Sz)F{vtq$e)+Y!cxflS6uB7ZLtIfpj2l70JjObm z)xUjqt`%Yg!#_h2QlpB(7vsW&m@rVwWDcObxnIY{S()yqSe=A)KRBVF}ows_q zdDHJq26PN@$n~7fE_N(>kB^~L;d^(aYf6aw>0_W28x?^o4*Qh-0u37znT>4vYq8-> z4XsARyyU|u7$Kbi!@tzDwTq38X^xc|zSfwYX7)iYW)=wz!sN^juxmcQY;1%++sffu z^7Y>e4J${Cdwldw3XG;l4nLV|WF*V~%QnvSxljl?x7RRoL|_NV^ju{)S7C5(gg%vQ z5UooeVjHvx(Yp+Q@f!NyPSS!+h6U^;Puu9nI)T$?+b-2~3<;Nf>?FKWML%U3^eeEw zdaJ!JYj+-mae_52jzH1?M&3u_I^g0E+_Lc4$11qBt2Eki&(a(Yhw5tVnwA&14& zaqP=VMG?#7UsB!AmV#*8N4)ec0B#Ke91}c!uBzLwSaY~`Fjs|{^*24e*+ch{OgH?D zKCxNrahd_Q&9NkEK*v1sQ7QCslL*3ntDT zQ<=OASQ<+jSD@e4T{iiklUTD=H%t#lz`(5S0v=^Z^>)^ub?x7$sILNiDg`qsgU5LY zUV%>f?o_o{P-pFc0USRE6U|3-YORT_GGewTF?}VWRV8_O!Gq8^Z%(%!TK0J=A+SzD zN~*mmQ6w!p-zF@6j(!WVSkN-Wu$l!uJO(ua_(K!e^hdeoXI;zzMjM;aI8xAhgvsF@ zj`wAhg9Z&grJ0D{*O9kjK2+L)KLY1FzYsk%Kw9H7|1A$_K}OMZa@9(7oOoxbN~wEi z^P#rb0>#LRQ@K+$g=^&|uSbk0YmOZs0V;&(4k7MX4ZX6nkRUMmdLP_`L%km9mVuGi z#Wxa^gZeVY?;1v3C)9T2N{1LaHsUth-U&|eNe9Ku;e7@_e=sLUj9(`^eeLu;Ig)#* zhPX13_OVl}0!==EAXzZ9-v=zfF^B&!Rbuc^XC5~MJk6*6S!2L(+1zpb$}p~@U5Kj{ zzPjvl!H&h$0~p6TnKF=xV;QuA%$bk);!cAWzQG4J<0m*<#WCpJ$29s2eP=WN`k3{O zlKcnoB;QT%CNs_#S0q55sjc=MpGh!au-DgcFOYu99G`i2^Z6$8y};SCY4=xbWZ6Yq zs}xE7D%_x-w-K;}0 zi|AHUx!r$dT4evxjru3>$5O11A^Eqx$R)tXow*AJdFD4z2d-7O)B+Rh71JlC%{il& z4=e5?H!Mp8EoYagAMk!gGT-jM`O*Ee!vYVBAT6c0|A;JM%2K92@ghpz4tkG(x9 zKKoj=$sTwoJO-`0?$I1I@WT5{*!A<@hAzCgv&Z`Vz_;Pzqp$awFijSvH$Gy@j0}9& z{?JbFKd6;an>+EvI;3Z*g>T;i{dvl3JG?){cjo2c z<4fujK3tif{PcBF$lH{vu}zO}kVQB4UH)=2yJzZ5^Ag$7<!Ne8Z%-LcPtXR{R!dUn76sM#goZ=P5=iJ=REq33rFt_1E` zsr>LazE>NLid}|gcaL2u>(TOQ=+xQ1azf$1Lw|SPq8(A!>t$JM*4EsjM8#uURq^2QHaWN=p`(Ta6d`ogT@h zCOJQ=*=y->B(994M?YkM@}G`43i6*M9K*;BHXM)a+*lu1tlDe1e*0g1qAZ8P;P~d6 zERI@Tz~DWurCE1y;`4t#O8|jBHrAf!^C9tgrrytu^|d97lg^y3y|mQpRb712*_IoG z=^nRBI<;hMWQZ(L!YRd;!R4srM>j`W&m}-5V=0E|XDl@QT{s&HL z?qUy@+UVPi4<`;;KiKkg-5&DR;h6nPwmwVPNzRn{QKP>etGuLx*qdSbd?S?3*T?|8KG1MEHWGDhEpR%+f4;-(iv1&V z{gWg3pqYi1fB&rZCDv3Kuw{+o6BaqWiys zGPm8QO(&y(wSS`kMi9ty-riBAbY9fJU)2a*DL1)!NsL~yB^LK{44)*G7hfRNFh$R$ zm`k7Mq)z;2J*PtEZ8LM=cf8V#Zq7RSGrVJUw%p$2_aJ67s1NZ(9)1d;e<{*60)~g{ zt4GkkRsvL;Lcp(gguov4VGh0DwQS$x+3I#q9bdRJMFySPU4CPu@#%<>k5qp8AY5Ox zd7pZoWS0I>C*Oq=x6kM7a_|@r_&04oevrzq}6Ln;M@|=hlU25=dI0d%s^}~b;a+Y%;Jd=iAT9UAjp&rq}@We({ zKDc?uAb1<{THAc2Fpws|0GgWU4K6@0@fZ4a<4rTp=*k3oVl%O= zHzZl!-eq-uFo!kZgw^U}o5tdbK9FQm_a>E2o7*X)Xzg~dhLH-6+igJOL{e!nmQjESUD83LBCPMil|*LNQ7BQq%0g3UH?Q>dv9(0y~0=PAD!)7aIGM zEk%pM>D{FVl`fkHPQv;$Evvo1$4u_>0v28xDT;3zGx*!y=cywqO3XAfyvONj^lSx$ zc4O>U1^HZgjo!e(N&3&I5~s@k=-F3e#&>$}%%1@FZy6t3@E>35$R~o&mnjUt@p?SJ zh8qy*eg>Ik0ZtX+`|&L(6WN&_kMhqY_nh)B+#K%loAx2iCMXvf5GwE3<5Wcg63ywh zD&KXwrs$G-?8=w+e=?6b9ZelanKbMQOPI1foGM3|+~cKY3Nns8ji@(V%7Un=3Y2qQ z4FSJnfH5eu&@Ef!nOp#B8Ree%a_p|{XGf~PoR@1Pv?g=rLPq7ZT)G+vv}^A=SY&>> zCA6396XeTCFv_*4IOV;t10usRG;WR_%?;SBCGhjKdgvvTudCLr3=KdQu`ROjaeOrlMXz4r>|_ey?0HftTXvSpkm zNMz=EKSG6mD}~yHuQRHD(W*Q@gY#r!^xLzUvv(hejBUF$#fa6(o3ER)H4YWq4joBpa~RdoDbTU3NbCLPQCfxvC$Di zoqGOV?N7=D0qk*90sXCp^TlbAzEB?6-PJX(!9u;luzI&e!2oaBErv`>SB3D7riE_< zdFb+CR~uNA&(4<7>e>M2S0(6~4FE|>#KhbY*tH2EZ3D6}$oB&p&R6??oG%NKL}$zD zjTd%ai2j#kN->Xx|oZ1s{G6-q~%&Q)R4nVI~lK)IYx^* zF`ZL^khwf}br2hxCA2HNbdX3i4`EW3fm9YE-sP!)zHkCu4r!Idd&bg7N?{G>OHDT# z%k37x+jhr50Z{^-*xo@xn0w`of+E`IO|Ok`{YxXhkLYZtE3B*U7A!Yv(c0sk2gvFb z7C7hg$-_O4MLw&ujr{b-qF^{^0Xn6voBmRbU6>hORi0=@??zrf+n!c@J7J9Zg&g2K zS40x9{37S@pLmVd5EI8G^wUcMHa7Vb;Q^G%?C_m==~}Nu6|u(8k;i97*re1=C+X^_ z1>P`i|CQM>gAU~)CtlRS?dsZJ%c2&1{LbDM-}DF?kuSnM?j+H}Vxcy$@@!^01RA4|EYHeYIuZLk z105(rd1awOS!gdBhI}aIwM=3?1P3Od9cbvqZkS+Mo=EeE==s|d;7B=q5SN(>#P&Jm z_xYk-8l)R!l1N%Cy9@0>cTQpzF4w~>JcLesBeHh`{7U^ zH|wjUxDxFkM{iO~Q+nV+dS0zto-Yj*o|Wg50Vk^VN^n}$ZkZbt#i_EqCphf(t>{i) z+m@`%1a4t_CAyKmFH{akB5-|TzCTx3Uy1&V()z~@;2c6PlEW*MvF9gZ^==h^pV_yt zH|Aw83Zd`))Q-m2%$G?Gy}|)qmZlStkP!nln`5&9c(odvrr2b^#aYX7NfHZh+Pw?| zptKI6PRgk1GOR5N%b{uN>>92Y+NK#!rU5x$aDSC6Ey7VJ)nOJjp*sYCJ5XK>po+O@ zj*_%i6>>cSh~sOgt5VhG(97vL39MNtn+LC!gC7QQiSh%W2>Wi3BEz>d#!Ca!hGzyI&RpG@NpnPFWoyw&z(Pe{rU0~*C;|d+LK&ThPDO^MSjMEf8?ZlrId#PatBRg`~olJ)P{@X&j4vgR&!rK zxg}fMcANaZlr$@)}XekVn>x{Y5t%M+D9F`n~qLK3JSB(81)%f z6*^U!p@DYms{)s*;3EZSPa1}|4Q|-p9Nc5e9fG{yT5RICEUDQ4XBcXyquwn>FE5oc z2H+4H=Go6i@3#{F36x-1&nptc$Z1LvoY^QS`pDQ9u0Hd^CeLxYWxl-0=~6y*1a|)x z%a{_bW}p49pd|QChG9&c2Y~ia$MHqy8dmMwRd9BBR?E)By{bSo3~hEN7Vc+v`86eO2C!6x;9kR9F>>9M3 zssVu)XA`;3x5oYt1b)Nc{qGiH{T=di8Rb9L?jIt`UB35A{?-?)ldXN>iLIHu8n0Z^j>|Iui`eC;(!J{k>pj7vJN zeM#5;4xuJG)0 zXzkD=v~7R4jmf#^ZOMW*k*N938qC^d!71ukcrALV{81Rv{9ohp(|#5v#Z5YE?)QLogSkxsr~YZb9uTeDSj};4J#Po!m@ChCpcBG;QA%jKTJ@HEOJ1 zDfsq%1xH0;y$84QH#1pK9v6C`0FUlks_}PGhf#Vigt9VJ+1|^8%7YC+WihRasRnPY zASPT*&EP$ky&{>GVnG(}m$VuLP)2I79?7cS<@xLZHc3=wq#}HLMv7(;T}0SwM>UmYA z!m2m-^7aLxS7$bFOo9W^W;Z=sL{(Xphf`x%fGoy4d699IRcPWRJ8i$J;nMz zsylEf>GhM7CEy zq3w%FRE>H+%);E`QL3Jx?g}W_pxw_|)Wwap{~rrX=hqZItbL>)cPc6Ox#SDS$grIJ zK}N*C%vSQrlOpOUyRQR>_T1G6Y|h-s8}i{PZA8)vLgDj5*i(v9cRy$@fIIHx1*`Hd z?|A5zj!H$&GNqWVjvza^?bL5|8XApG$#YZZ7a2Eu^`ZhWnT^4P@FR4c2e3C$jpq0L zoIGp1_6rYN6deT=U!U6WM;`eAMcjjuRlt6k0aJ6yg#6aNAZ(vA&2kzVY^cxF@8dn%&J&wn0wMPlh zp*OAttR6M~6<_$74d1at^SJV02jSD`r-|Ne-YX=T|Ma_?n(PkRunC#|Wi-rOJNz>7 ztI4b3$>Cv`TJSZ<_Uo#^tpmZ2e9ICwH&DUumw0X!X6|3K5A66td+^0_=VRP5byjvP zqksqN2QIkc0K_65^?bNZ(;Au!S1$7`GR0=_;P%bLEs-FGwID>2MIxMSD8&W(5c+g$c5Lt3Zun z1rcxvdjn5Q-~>FVsZ1NIT8?JSw-Zdo`5JR^;cW*4-`oY!&;5f>p5}>d!fR;-ehMpo zwfk9fbNRnr<$GRp?cS`A9lZ%HE6toIe+xxIL2YR-Eu;nG4Qs8r zGT*!^;B6^APbmcR!QLV=U#vu`^xrv6>Cu7PgngL4$oJFcKJ=D^`EAx0vGYlzN;hulC!xZdyN^_vZS3=1@x4>>oqzi|v~R zerfzv`TlQiF@b8wJd(a<@ z{gz#Kg$LIE`S$wliA{Zsu%p1myZINPLnlAjPU(!3kEXO6l+?^`P@N?}DuucW8d9Go z(@t^}#h|Kklw=Wwm=)SAjuZIV8j^ z!177K7(x4N;;ou$-ZgpPg1EXE@=;zKhhx)_XwEsYwaTfOQ$3^RXulGrb=wXC;Q{#x zUq2VJazthICb8zS`}9AXG;v}(8clo5vn$Ud)-eSa*p!W5EeXs@b=op+UXyRI-MM#O@uA4fWD0ZsWPr405#mZAbFCoA827=kHYSK=$@p?kuiSS^~uv zpY1kGIeWL{>LelTj3BxGW5R-u=Z}0^AnL?gT~p7V+1&q5uUntFy4bu=WtimBr{V1H zJIwANJ6EmCp1S^MqUwFGqt&htoIYGO88kU}?Q6^JSBX~7HXL3EK#6ybZ{3mc&iH%R z4y;$!NWRsLtg-!1Uzv`V1!ny?j?36>MLW4(a_G%bSCd~8JNIADx_BAuo&EWa)y?cL zj{?1SeS5m$=C1GmpMJ5d{i3(YMf8x&E+04eDRr z!!~a=ucz7xDO)%`ZZrk?eG=-CWt2IaAqxV>_*(a8x7@1J#ZwkI^O|zd*q=Xa_v+X! zGhz+<*}pw2nf}ST;TwhM#sNkrdEHoNB__|=jF^#_i&vy!qucj6aDjaDuL58XA|aM! z`RXP4z_}4ZVoOl3^`HV192G}dHJoEN%Efy1enu4mh@OItuhL4f#zkHk3Uf5 zcPmcX($c%Qpa4})^YdWW6NE0#^f$AZ$ni1OZSe2Q9ijbd9cFlzVpdhy&ihk($4Po& zf1J4)b4eP`tI$Sox7`@MIW5SufK9y~E`|gugFB_tUXtob%q>5=A3*`0 zs&3j@-;;(I)_W(9$HnnFW=z{3*zkY)D^l$IOk&<+7rfRwxZCX_BPbDyy(_Ll29v|)21T}uwPrWIvO$YCgeJ<~iipl`$HcgpH~;8-I(yEc%eLq{feo&Z z7nN}PGyfd+iTRR&P zb=v*RfYE9mnslQk&;{`$UR0jMd#TAmZI9W+)qeO(DjcLxp!dk5mQ*4VQ~unJ zKtWegoLuVKhWKkzWh!9+geS+ae`myyW_}&JMuwdz1+-0g;#IR_(ADZY8xNQ5+o49$ zuV^Y&J?#By92DvY3p?*x+Er<#Ael4K9RR2?l8JaLG>x}*5J0?i=zwjnkNzjQu%zNB zOR&3FKS1k9dZz%jGhtXWV@!QygKF*!y5r&hWqgM&%AFSDz zJRWKHH>k(0wzK%$^D*1s^f0e#$D)|}gY>V74`?OqCp&2hh7va$xbSayM7Cgy#dCf> zx8qAmtX-_Z3k5HH^JnS~Ap5+n59FE2Hbf0djCv{wj@4=VKZlwbUE&3MAneGjhC1f* z>w(^0Ukp>)tr)+DvD}BBkC|v9l+d_G&hq~K8#66W)gCN#`J}~qqL~o7v70jg<)7_|K6_vw&RPVPkmouR6zY@@EMp|6x6k3mdAWOFguUG0r|~HRG`}HCOG8I;QxrK zIlY&0U&p6zvTUwf@pYB>a+8haM}u;xX^>T^*p17voVczlgrJ}@D`bv=O030J__<3W zR?X3Nuh7tQyj9+2Io@uxoBRV6F5+vo6Fj@911>>1Cu_6@4|ti4-ki@XqkQGf-z)jH zy!o5$!r!er$LI&GD$Ac9D5p%G+xp|2L39Dc1IaVMN)|477+49Q79~l&Rd@;q?^RU{ z;pVv%pbLAU_hq?(EF_^9w?HEuMuEOj5LJW;NtPz?Q1&5v_Yd#2P@L~C*f*C~l%Pbs z+qny)z+kl{@rPU*jB`&s1Ohg3Od8!_PNq4bIN*w(NVJ?pR+@1UG@u67@Nyshk}eRn z>Gly7DmV-0nMq@VuxlHnwO8}gf~22=up3X#mvX^Xbn*UnRDcQq5~W`1 z`PB`8I}0_32Qn65+=p`w$^Hhwi>~?M5Ae{C5&~v$xeBHW0A?@1A64bY&WfZ- zy>@wz^EN1eR3)Xuw;k%mt`oHP3-X1fh4EQ%Mnij+3{GvwZs))_C7hwc#FoP6IAbm&*jqA-HjFRqZz;4Kbx0L25 zHAwUCV>fVYW8_G@AZV?dG{FoI%wUk;`P*>tb~own8H^wcPUK2=XJO+N*hh=uL9{eZ zg>`d-O!?Ox<<|{?9J&f*x>Xs9ybRnR1HOcl1)3_vMzi#CeYYIF$~i_s*EntrOBNLW zqyF|Ut59pNp>DAYC&v(%W7q&$DnX7&YzmaEW8bmlgX{vabC5(I2mR{0aWV~hvG^uS zHdlR3D_#h_sBLj^yJjW_Uk!jClR-nS#BF$v!9=+s7y2^qj#-wMWt6AM4DajxdQ)7^ z^T+&8I)#=hu~`A%Xdx=>g7^p@ieJTJwd)wG9~ttYpI@Y=VEE6gWu{8;yml=Mnh%N( zsbdVFKh1k$K)r+FuM(7n2n6jw}O!JBJ zF0$JIfOSPU3-@-3BhY;n7b^G)z)V@EcE~`&*Z}#aiaji6}S+B0Js;l7P!DNAe9yr z&$I4%iAk1W(}S#AoRFP4A~+YE zaav>tdeSW5vzY4#1H7VZkAFSmqLjvnkby#MT!99XhWq|t$~yAPNB8X#-8)!tul)&T zt71uA1$ABTl2|!*o!a)G@4ah8c!vT>qF>n>6uMdEo|>3n|GY#blBV=xo=jqHF^YEr zp&1BS(0*2I)Ug4W2d?_(8U$s_4n_^;YrCTTRMKUCgBmGC7pE-dcMfKgzlxFbUcFSMJ0oK2t z6hm9O%Z&+L_C|;)y=z)`%S)u zEewY2FWxXM$nntRVu{3t8~{EDTCK=Aen$ADyWh4U=EV#C8#82HyO_HU#fr-LXIYFc zSHfcF&~alBFya#BrTXv?uz=W_#s9W{8oEd?6)#M{eVrvnzG@X)iyq;gbbekV2~0yh zn~DW>p?g}8ZdA-CC&ZZsxmH6zADe!?cg;$pGK#?23NbfI!s3hRd@)Niu0m+AD9AC4 z8eJsRGrapobyd7MZh(UxSUH0v81-60y8ne z4bBmAiVp8eT)EY(Nk#@$_v0VazL-d+zhac(2K-1=2a8q?(}C=14Ng9 zt9g|q<(GuY0uRnb=Wf?bwqu-Uvl4kBAio{icg>a7i*i;13x^?R1Plg{1$U z<2hg+(Lkar5&Pa8I~E$?nw8$dgnPW7--{$4JDh$#AdvgiJqn~Wu*ILB#n&95ERmSh zfTkLo94NCEi7nJI&IMR39Wqzv8;G!bvh$5+Kx{j*EeO!y)dV*H10bmr(HawYhsFe^ zy%1!ToG%TzTNs3@3<{R}@xB1jrGVE&ke4>7SOijfQ8&3_y}!r`7UbcXmrMrcsZZOn zB$}7kZPtf5qLY%yvm#Q+~pNVi19IkKu_pIK2T$;Yoijg!eQ^HziJP z$?`~^<=E`@yQ=KXf0~QkGm*a&2WJgSvz3~R8#r5)mlZ@#%(x^Hz}q?4F?(b+f?cP8 zce^2RK-f}gAqovyZH7)ijESA znM|zDLe`xL(-rH`91Hy%Zp8O1H~+Qz;mlz+K&;AU)1b#@BI1@%$jFVeYTH+zn-$D7 zA*om~TJ_kGzt?)9gp!c6c(>BbZ8>hCL|-%*ezbq&-UwndH&lp=xU|qzAYlpSn2mmu zJyEXO4aJ`cn>Np}ns^h@Bes~SpDp@!Qmg;t(dLC|e9?v+eYb)5Bc4*e@cq%2^xa|? z`rv%Ji-|p8MI)Hdm3ZCAcPP%v#&z%_#(zw2EZ6U3vgJeYe8F&pn&t|)R z$sJ6dB`R(Zl{AqhN<`=O=PwswbY%7MrYO*_CtS2097alJ>${_8;1N=SP&#BYDdQ|hFKaa4n`7g@zY~H>}crJil(I*avtkPN~U@v4b zhC5&d&}MerkXhzy%#^^qb-v;Nu0>Ss-I8;8PBX*N>UTzhRoenQs-K#zF3k08uXjro zYbI1&L@3RU#c;0UR&buTgK;4Pz)-XQdiLJSyh`)j~9bTzN%2{ZCFaTkQQyvOKD2ZP(85 zjvz_{W-jus@sVZEzdgs6`j5{A;Q7*Bn*0m=Ox}7KP&X=l^-msI1t(2l*3$AH+9B(e z7>&CtR%2s>_8?h-&5E0=)o?U7A(ZKg?brUBgH`==ZGGSGEwPvO^K#dJYA5rDh_9L< zz1@Exf#A(zh_dy)FIINKG4mNgFsJ^06lPP;?nP#b^iyr?J8pH(1Om_RK)Od6x>n7I zc+b78Z_8BsEnK(VEFwE9&mC(`eYV?UVnsx>cf$HV*E8m;o;L6J^w)jnN%9B#%PtN31S}g;0=6Mj*NS|MR88U1v1!;cJ(i>e zZA>4g`&r!8ZiJuHI@bZ$f12yQ98TC>fmVkQxTgC|)s=hD&R=AI60H zZSZIp!&~PoxB8LIyTED&C%{cu7&$onYH>I%eD&7ErooeB6rYYx^6v}efzJ&tmm9ja z1=Y?OdCyfaIJMyh41f8RSM+4QV*t&;Q^=O4O-!#cbic)CZ9@;M1>1Z`8qzQ&;_ce3 z@WD$`FhUmOuR9A?x>ua?!w6oVI=aGz7m}Q~3II{g%XGn-5)Wj1BcrsD{}I1P!9XdU zbij(L#`t=)EL?o(WKJ}4q^;7**8V0%mfUc6nZ<|2mBD<|?T!~8F5jal?3y0LB%ir3{jkuc!_R^k2>xA$;TlD1ImNSzB9nqmr9xq$^uk!;} z)N$v>w(-ZO9?u>gC4Ie3AN`%=%8Q+FKD&_kZNJMMQttU@HM^U2I=9Yi{_<2uf9>?Z z5@u+m5t{6k1?Djy{(JMaPJb>5oVi+lQ`!yY&+%#qf1=p8JlQQolDzKVyT25p?W!8) z-^ptLZ$PIu{daivZbY}Zdha!(&OU;CD?wkGol(mcSWKrLloqJLQP z2#K9L@@4R#A%{$(glFaaC`nv|dYiwSdCXV4MA>3%S-K3Mn;G1X3UI1)EKXWuX82;F z$F<9`B>k9~@yEnF3q~FH?|2z&Y|96oryNUjjLg}@jY0EQs7edt%oyOafWWy<eL7DICT&sP2g7o69Vp{@#?c1IHu`9a5r*;hjMsKQAp3lR} zTI1?!HdQYUzjyx8k-=r`l=lIC!H=Qb!BbYo)LuBviwaA}SS z`SxSE?DXKWyM?Go@4y>ptJ@qS&5xcwl;9mvz8`S^(&*~DYQ?d#gByMkP*;qC{6n;O zlmZ#cOF~!))_zMs%owWadrxa-BG2VuHa%`wp}666x@p^sh#38k!xwB0$;-Z3uR5M^ zu6b2b(=6rKWCCh+r%fw*VI-Fs8DfZKC;$}jd=a)}ZjD}g)-8s=VtsJ7 zSkJOI$2?4k)!9@-H7vbFw^4}gUiz$ck8)tbYRpV|r>BKLZcC79awB4N?Af3jUkJEl ztF9GA?agyl{7HF&Ihp{KD=^OZx=^xhz|w?Z7%v`0+F~bR7YlMV*zjx4x z%K+Ggbp~VYCSgP?m|TA`;OZvsz==RidpGKDX_x2AkrMpxF)Uu0?`^^>#_?sqG6Zop z5|EM=e)>8SJ&reo#oH%Lhx)T}oVq%}@QwG-DaI@x*Nf6{T29O1@>ZB|-g?!Q6#c6R z03Q>Uti2{Nbj`>QtNlz(nlMkma2LC~CF!n>LdhR0Z%0hm9M*D9F;w%ndbOWN)>XtZ z3ojP7{s;%+Cj4Iy4c~TH46MYeNA=zB-E} zr-tKabW{Drp=*Rta>mT4ofF^{HM&1`VpN}7>3aX_c}ikw@tab6UgNg3!$+VD%Kkzd<2r~1++hfhb^T7EpzUpc8Q$xFNBd;}wQb8lC|}bBQ@D7q=(*)QJjm%?Mo0{Re5do2$`4+PGL9k^mD;M~u+t zwcUHgHY-(rCYx^O`9)Y@l1``N2{rG&Xx#+r8w!nv*6YrzQ2czv=+a-)PttNWjoAhu zy#x`~DH|{&iLFRJ%waKB1!9dt;E7IHhlh#lq`&NBycGY-=93e7`ZC_WW`BalV9W;G z6uuxLG3P=C*_yut=W@Gl4*Kf3<@9+z)y~#5>bpW#1@>>oX-SVN$D0KOeI=u?U zH6J2PU#}ej@BqZ)t=iJP@ES^kU3v0(R3iknMuD2>_VNT=zba6P-JUvrE_Qx%6@D5V zb#4%9Ar0kSC*g{^z3Wi3^PEFl`g6SF0P}VT%vzOOtfQHQ;gpJjuRdgF)LaqB&PHHO zb#gEV(E{|dyY(hIasQ92dyi}J|Np>$T|1w*YMocDbLg)`3ED zZR><$a*D!I2+35E^yXSil4Piaunq{RMF`PvpYQLl-|xTOcDr_6x7%*pb-fOc=lz+5 z_8JkgvUm=iC1YDjx>@k`_4})nc+PfcHialLP(CT}wT@O)N2MuKarBS{tic6{&uDbvjS*_QugsE&B zO|~VkjIMtqa8LX6G}D6VlzU7-s_~Byl8(=19R5juWcDh65LhBE zMobtegGo87P#;8KtDKUtV?nN?C01^tc`zF8ks7-3Jla7J24_nl4O~bdw2-<3tfqzY z3b~guBWQX6CA}|n1Wg(df+J!*W((RQ09@3v*AQlAK~6YmRj2Te^(_7R9&I;;9RSZ* zP4>-l6EU;6`UJ!T5rJ+znp$WY%66X?nuJ1grlY`k*dj0hOcLW@(5}yr6tU*06mpmZ zDcz#|hG*e@5RREZbO|6rB7kpU;oG8}B|h*#bzaG*v}s^Pr1WHeP9sc`A@7EJib9;OhUsi#77JJFj)(T;0LJ`^4(5PJ{vya|^6 z5r_wy=evOCFX4H4^=m9+evRFpjPwPFVg`Xjc6=69bO}( ztORvfu@kdFS{e6%gwDcn8IAJn1>Bd9lC$-MI_=1>22iU;s100ux?VuZ>BT=o0CmkI z4*a%&+r8?9QTsSr2mCg;no((@6Y*w|#x>4qH^?FuPXWfw$X69W9)Xzf`V3@&5dcnS z#!h>2U%D@z*{`0#71HC|bgLH{t6(D*mlDV|Zsn5Q#g!@V_d8uejy?2D@NksV<`Fpiw6~`$r377`o*m^CP|l0DyI? zG_LVVKIo<}a6?<#gJvUQaS<{n4o;IknI zLV*23lm!Af4r?C9A`2#h>lRT{3!(pJhap#JOAF`=aWix#2vWM3l^2YsFB@Y%FJjBV z2;hbz2%U}i3?uVG0F)gNyzz>Qy+T8bx=prR`Pkw!g1%L+Sf8W3mHa={ z7;h)~yas8}E&}aAQu`S~JZzODx0~c1{m$hcLJ=pUNh+a3ywHjfusTtLKquMxk6ynD z&SRlnSMvOfcz$kow-r*JJ3yRNL@wUKbr zjcubmmulX|jQ{Dz11@cl1-kpa!d)G(>2-*oX5}~n^6ulgW5mt(h8(KDxN1!B_E$}X zU;O#7cXhO5pV(D`26HqHxWi2Fn-HI>t?q^5MFOfv724O$xNjp`+fMArM9-6<{RBK0 ziNdieX-+EI8vy(UJ9XN5UP)r*t{Ok4_Bd6h5CoJRC-p<$QaO`@vdX~IMxGCJtA%u5`6w#dsMGPl)Y8%F`&w0y z32PaPF%Wu&YupZj-P;j~v= z8%Q-6rN0MWuD?Z*9@75>OTMw_Wpc7BIO*{J3 zwO=ScrfjELV!zT5PXP4mTXbMF$b1VBV7ILAdQ5~7v)c+l2*Yy8>6X#g zZ!cM;VVP%x$IqI$1<<5iR|7sV=ObWWVp0WKrGKqJ5aLx3h$xv;!ksb20NU-~0ZsO{ zuw@n_000n+8ki8VMRQ4whQCv{+IBe-eyvu6x|&VOn{cr8>Q9S&M)a-Q7!e z(t6`YYl{G@Y@XGK+_g?ql1$d_=4-qsw@vk^Avk>3?{OF5xhF8C9^|Anq7|;s8d<06!M`vY*0(0(%rV8V2;w^F@0Xiv3E48h69Q zDt(K1P%^=7{`3YfyTVetSTb4;ua@7e0A`OsuIe*wW`-6qTtKtsUca4j@)Eng`(irp za*^0YnZc=4I5Qn$^A#Kf?a7I8WDVDqWz2ZB^DYg4akKiu&s2C+@!T4XISjE&1mx?> zb8j{GZqN0rLf?`nxhE;SE73pecs@C3*J*_l20c&v(5uF+zVYHZtoY>*9!Db9JW;dE zEYs>R^Kw`abLi*eQs0>V#*Z5>E`B+0=dGvFbNH$aO@g5o=hAotB}-|N>b5WJ>TAgQ zT3|ACGpX-RoP7Ak=Mzb5JX3EDnta}zY;bG+>;9r6H|^hE--&BpL%yim;GV{-cp-lN zh^l1~BB~~)T2T+VhX^>c1lDawP$@ACI8_1ATybTx(B-Y2hh;7Wtq!7_iMo~HqE>_( zNTst}M805vbrBV{7yB?i3?R%Ltnoi3^I9=~0qC{+bmif&oX>`=fCbC!1;Y!pEW-9< zvbE2F?)96JPc-Q2X5BKF+?`BFJ(-+tIaljyq-Kasdg~ zN5AC!faMAob%Y%01ZN~D1mlfkLo}V)c6`8~MS314g_aCCqj4ocH0>#g!Wi|tUSXy+ z1<7fZIEEAzPLb%~{74MxW75)DVqlK}l?^Zhy>j&`B^=?QFr4h&5)=t8KWzQm>%11a zcWTJnrTG$s(E%ccm`otvYB{*tU_Oi@sNA|Zumk_GZp`&>N4+aebm4`~!sw&-dkwI! zQ2l|JS*X59oxBwWAKl@Fm5dX5UXuf2%#O1L?~dMA3RXUv_uOg~4b|KDuGej-+9JS> zP*9->%)*=O3#<-L*ZNADnLV!RuTx7oGi zm2RD>Hz!=$bNQC7am1sTA4ga8vY%sg77YBjT}iTfA)%IMINuO(+&X9g~sp}v|+&-UBi z%=@x8vp3TCx!GCoU4yr7oj2R2im2FM*JBIs-`ArKDVihMzi}h_TxRFM3zC3Go&6P$ zpItR$zBkVL zu*IlTJKs(kZEt`!Ae;;WEY+%gZz3Kt-*{g5tGkut8x%k^-vL!>v~6^O*hs~`H_Il4 zG_6=gFgC!>W&pGmlWmj_`N((cusz26(3_^FG`DT3(A*84VSYU4rh@m4lx{L^s|`Rm z$f&@y8S5##+?6S%)`2B}$v%a1jz9^Md=aOG~!wT5-DTD6q2gB%3 zpslkPrFGbQX!TrP|L#+GDQWe!ykpgmxz7h%PxaPb-d?>m_Vc>uM&Uj>%H3FSl~G^iAFvAc@_RBGDW`Q!QS5>_$>7$c7&#|EN9n zZZyu@7=9o+UVq;G%a*XxwLLXE>K60ABt{>2@uX#S{q@rhiGHOo`(OU3yRqu(ww=b2 z1GE#3_uR))4wpv0b3AeD(e|;la^qL)FPGQ!+^E@pLVD+O^3NvE;jxUH2XJ3RCz{{6 zkMDd^8uh*Ac~ckz*gbF?_o?kf?Znm3Ss(ud{uq3I=Pz}9R}ZpbhE{@LJ=8+2GCtO+ zL{8nI7Mru8iTCw^V!v%Wz{uB&KZW0BMJe*feWK{%sp6T~bKAKggUmxyt=nTK@@9x$ zZ}j#~-E&!eJ#XvipmBJ{y;&aU48OunCO@a5F-%$3-O`QLoAmE`N1=^F`txim8cDC$ zr|#KeKWzIcrF~lWn(%J*8%{-u;`KeJe6eqg`_1sSEoUZ5uZ%`}K0MiqPXAhPt2xH2 z?$_=3sISMpxpZ_rP>G0Nck&_?a!+uvw;qkN! zr<2|+$^R{vI=WwaCBu+Q^%Way=4h>E<6J9+6nDvY!&U~)CCiJ*pK>mK1!2~mC?~bh z#6|*>Jm+qA>KyhCW*dxKr!#P_0|yubY}}^DYbhMIIQxj?^Ll(VEqZFZOu?SXH+!`U zdpq0R-~wiA>|@Utx7)T;JJ{p#i`PBx@&93zYNAQDnNyy7G#qQC4yHYKC)h#4+n+C^ z^HLaUgTBabydC%b8)PoEGQ zm#EQ1wvfaufR&bv?N+`6_@C|a(*I=Ye{<#Jns&~~ z?LeO8;*(AKB?u-@jUfl|QS(Z+F^}F!pUsX&X{!bPV_e~<*?)tLOk18lhcP6n-@QM4 zAMHw+xbEgIYRb%n|0n1p-iDjaroPzG_P@o&?)`?3#->Q=LE zzuP*E3)?Q2(g}fVGvjNYb;=I@czDF{W7V78n9JA2uj@RivTI|<18(7LE6W0040i9l zt&K5nDC<5~pVD!ffi;e=Z3Bt$Iw^ps5PXz7y7s`E@>GN!6;u1i_tnw~$us~q6JW~(j;k1Vl2XPx~JdO-g zJc|DQIOO;EkngKe|7+hoA1384wfndKn)_q+f^;j#%57f3BXg&Z_`hItAAO5nl;;0% zh0pC3tv^=yXr+@73*vNLfY#9*tL^~X^uWZr8k8iU!j(!>xBPqDaSp(Gs4(J36geCF z8zxLTQ<~W1xq{A6m|OzW?*Xh&Ftr5IUi1XLoX;Fl;YR1bs^^FPo`K2!Fad!XrtirJ zJkZ2{!8t_6Xj43(QD2A}q9N~;f!195Qv_prVJPYmx*ix5xG_8t^6?@9D-_?T8f=te z{iT!w6>T|y9pPg_qtTkNdIy_)4%U*ZXi80c!%5a+sa}&t)hnleO2D}Av2)qzRzB4Y z)?NYVw@J}=${AHd#tkZ+D~Y31^-RAm^cbYOM$1{m_WJJ}wXj}q+x42Lx|%!{kgigk zk%AC^j0vD56X0cY%v!e5PY@NrCsaK#?TvP_U9SHr8f=rBPJIo2DrfzANdC&lR87)4 zAo8hlbQ7>TKMm_IBL_;+jVjs#F1daNz}54~jR3Y)g&tFZHvqyyHQI(V%uojUK<3Mm zZS_^AUFNoxsfO7qR36lP1~&1kCE2JfuO(WP#~U7(v!v0)UUO8#0N5uqFkqWirh+yq zlpbu_i)ur$D*qqL?y+HvtLlT%L<5~Urxq^x*7;^hJ0 zax@rn+;&80YMN@Q$2NFc&icVMX&+#1T&{n7fY`=0v|!^afyfmb6D%_f_eYx@*Zhmi zS%o`LXSn7zFurld(j~~!J%#TrbM^VO$WyCAvpW^Oh3$J9BDCmuWl7zImL6HaJb?wOm1f`-qLH?5T*WRu5H9Z^^h;CG83B)f7zCAo4Ii9 zx6JaH=bX%Ef%rb%6sydXO!z*(r(-d=Cf)0y8lAa>uL%`4vlnpr3&T{3mcnIo!h+=H zJ#L>(sDK>g7LQ##w2j* zYn5caJ4tnPAOslvHw!z=N27j_F)qXqHsNVC)9h+A%(S{TY@6~H2 zu+^{!sbv{jbSZqK2jrxIWvf6NHmHZ-B(Q-#8+)9+?)gl)K_}O|Rc_jR z-N6z%)ZyNCnY>=E8BIcD{s8)%RPycyH9?A5jYOHL$#+z=7KHeQLH!M2TBV=@*6im} z+WF{qHvTspeQOTUbccBljOvQsxX;{FC69S5G(8@zc^VN%%MH$~Mg=xBRq-t@@y%Gz zQ!X7G%LGj=ZkoQVHRu|^?;oprVjk(FN>h}x?AfGBHkbnvpK3nEH&dGHk45i0uGuyl znN{%vWrwgv%~3TCq85OrV!O2*Drg?`f9F8&+4nnYg)kMvrzJR zKB`S8Xo<%54X`w3r{Jmn zZ~5$sABJ7gCNEWZrMY3B5RCd^*c}b(Ni80Zq>KAp1V8s(K(;?;`z(#vu^p!N@rW?6 zIHWT3+U{b(H*E7Sg2zgtY}3NEmi8A4S|cIc@)bMJ{=Bsh+7+HdOuos*8Dw02m2vCU zy`|{6&v>||7fm}6!dgVxx#rGk&v{0Zd$0zcJ_ptKVrPu$G6^ zt-u~d2uaduDMBoS%M6FJ&|=*u6&}d|Nu(L~HD)?sS~*iq@O`%hg6CPuXzHD_nz;&4$m|bXHVauP7?|N{N!hD#Ds30Pu8u1x$$gR*Wvat zDDxuJc6hkyaPywqp16)?cbgcWwyfO3bm1O$R&Jmezp3d?Uk_qHsjV^n;Driiukceb z=E2~+5NxnF$?+7qOT`CM(e>=oU$Rg+jCsqz)bp94Y%0P>9e#xNhnL=xlJ7h+S)rmy zsbs}fy%B^srtXm`$zyO%OHow#glVFbjHuA3qOo@Xx_W|^jzry8p;Mtli!}xifOcL_ z6BuflGO$)cd;^~{*>~c~6&%9VwlSeB+J$w4HFyY14dEHrE5(K^19z$mL~ih2eRB>e zf=#@y!Bb|IVs6iQc*{ck&Id|)cJ~EB^v(MAW&qT7C0^!&yZA=2d>o69*Jgvum!TMl ziF)nX6T-&N183#OP@6YV=MDn){7&T!S{k2BC`Y$TF@xWm3INO)f9Z7Si!3Fvk-19s{xi1c-hz6CqyQ-YaD$eJw2 zXO|l^>>{YkKR*F&_YRm!qCOg*K}mq|r(DBg#~T9!st!G@i2hUr4HF1h}jXz=m? z%Xfy@eAseGDAR{fBhe-e1C8i}2S=b=E51D_^Vzje@vrKYc)d9PK9C`|P(Aeiops{g z?#jSpoYM zdc47}<>`m^{8cMYRsY^m6xA43SWozBk_Iu zjY#O&zyX6%k1W23_3f&%b8nQUpOwM-66FHzwNtuSgTzAffXr`u2CzV2fisRYaXL() z|4)m1R)2Fu=2@ammSmyP`f4QCh+CkdcEN3_a8aL$Z33D-W(v~HP>I>Lq)b4hWm0E3O7upY!<@F09m0%H_bxD^Rf(4pmjU{DhMY`c z%MrUw<$RO>v|h|N43>tP8uBGvE3+Ogt+yr}!h!jQRxr50@Htk0K9wZ}lD2XE&E<1H z_os3FI;=tuonO|R);X7LKcVos*XY`sJYKbef=&o}LihdUdmX^83`~)`>hL*2mvOIM z7yZZW>L}Qb_kT3|386BKAJOicLYv%pgn~_skQAPrH8Y|=4@wkf@ePTKOIXu99xAn>uz=Ll&V>VqAc7Zui;Mw$DWQ}&cGuI?Q3AF39&(kS+d zR6oBJ>MqoHBt-XHX2r|#BUc^h1iO5lozRrP*<9n5qiKlW%A`MCzJEg0h|UVuVT{f~ z*3rO7mV=ElylDOaraU$36I1KDwK+y-?}qe@mAAR8P7YZk`wdZ z=N7oR4U>+vTYv0JIk>ag()4@8!bQuYJ$H4_Y+5uNft`g24j$@U+|esr7<8etP}+(Z zK9}5I_3}y1N}1Ihzby+E=Y8E@Wp8cj6zs9;xAl?c>Hr(-7Z3babE&_))-gw`I@Z<* zPo}WW&t7I29CdtoQTlMK`-T@d=i-UdqjMH{-u3EA-EpMw1I6-%^3u|d!$(fPXW4qa z^M1VT+_M9tt#MJK50>p}T5H38fU0ykJaZ%4@8}~JSxFEJ2u~UE(EURELic} z&WZ~sN=m2pcW|%${(e1hm1*RXaE$!-u^flaQJVW=*f@1Zopft-vj5_j$}t8N&4#vw zC$8;nYPccWb2Vwx;#V&YHZ(Nu*_x1M{L-PTq5k$?hxl!CB2hsLZ#0`gf}K9=K&EHV zz1W)cip8%#uD#jR_n&6L_2KI;yKdfA{jJGVEPgX_>SlBQy+;5g6h_IO|Mz9jH4vqY zntB<2XJYF(Fjl(Z-|vjOfA3w}iw#i$#+eA-kt5Qto>Ad!z2t4NYO!_FTNDFs!LFW@ zN6(7JJ4M_uZWzzyb-tl3>r-IfIPD)=4CtPnx@VO)v42y@km0L{Hm{nLgWIZyOutRt z_o3Au%B2jO8{cXVvZ*aLWC8BV79jLs?a_*mx3kvm?7&8hAG?_ptDE*q1L)P2+z)y0 zQo6Il!N2a5L-l66iw%!LZGbYWbgg@aLB|+1E$e&MW``rUa?@z_Qv8yU0OQ}v(RZn5 zw6?yVzv0D`B1hLs!_)DL=r5lfNlv@qP!zj#-tSH@^h(K_L1=Q;U zX?^3`%df`jRz%YpWa!iH0D%0MOIzy*VSCpBZZm}2D1FUJOuLeRrm%s{sv8M&fKgu^ z_~joeK#9B_?_M^@EGR&`F9p$osx`p%3$8bUua0`R4|ZR-0SqU(Z&Apu{}M}h*FIcH z`0+A;Hf9Z6dvze$;o_Q(#HpKQ71c>GuZ(duJ3MNPwer2Q*3lxO8joK4Z(Hp6?hg6< zWxHQX2j+}=(rh<~PdH8ItedL%?{$P|-f({r&~8ZWmxzw{2o6}Yg~m5!$UF+1la#J7 zdx7L(hqK5@&5=XjzUQ6s^otD`k#}Yvto`o;@ZApm+l*%r;7LKKWCOp)Yr6834oN#M zE&PS*GYB|(D>{9azSLMR!U=3RTy$dS3Q z3#dzB*|UDsP3bSjZ`#M?r0kK=d(GW=>5sik)wi_A?x*u*>Su|T-y;3zjwt#kZzR4f z8gU*veK8X2G-obp{kAmLC;M2hKzYk54s6^5ta1%K{V+vM2Bl3O7W$Oua_8Qud?kn; zi!-7njQrN!G5*o%J~$P6kav-y{Nv7K|CWbuWz|sdcaP3=ghMlbUzFwzpYZNZHK1w(V?hOSlvQcIbA)c*K#qfuq^kOwW zeKTsY0RM=)pGtNeUuTZY>&`#iRLzStkB?0ZMXeE7``HP1j)-g|;5sQDs{+>mw2DytItjKhlx$tKUG536H3@J?W7y`c zUjW1j&~s(h!3<2VmIieMwuPd>AdCY8?#KXX46s|8mbD!9hXd$Kft|MCZwUOYqIR64 z|CCbxs3`Ab^nMxbHcZuGQ`!VH&3@ODP#TRNePA=HUJ_fYjB1;oHI6M(W)|sr05coD z;?Yokydb&_%da{Xw?;qCnoWGaIo4s4{*+Jo%%Hvsr9aS2ED&m@9!S!m&hWtwHTicz z91>5-T;Tdgkl_|izY9@kWOOw``2zv3l^g$yr~E>wlTykEOig}H?Sd)o2wgL6?hw$H zUZk{3$z!S=nHT77Fy*zH&g4@%REJ*ik2u9q+XR$OjwB2xxy!+fou__K(PkikEY-Z3 zh7f=ct0{Ua>K~Z0Y&9?q(>gfxo1ur_gdUy&(qFTw4%YU=)@MGrPVIbk^3Q-TdG zN#UegZU&CMzgyog$9;k;LQd}UK8fX&jN9)25sRfy zU@XhgA)M4--%o`@Xf(o@tC{E-mX2-5GUI^aH6;SJCl=xA=anrFFG)hsZ4D(ycH+2_ ztm`k5)_P{EkCmk2@PqqeYag6E^((t=-wxS}s6`Mk5{%vqV|mwc$^6s%yt8vJ`C>v( ziZ5-Clj8PoDGPglHs{jG(cIG=-r4s&OJ??+{uWn;icUKIE1Uc>3fB~WlDL8JvLyG{ z*&QS3U`fg07iXJaMAdq4IH$L{(qr?51%RCdI}^<*TCCJad7A$ZX)%H~93hb}ZoIUe zWX1uCWw?MvKz%57jf#Nfqu3mAyb{l0<8`Ij7#XStLamb~?Uhtk2uPQ2h=NCw9DaZW z&^}|B6c+?o1HvY~(qbtdbt3ldjs%tzyJ>b3OD%jPu>wg5oy;b5|) zcoQ{=Ey1Iu;4U^1Eu|YnxC~7eCMa&r3A7QL7zxm>0vY8B20pu77m@*e*sKoF0 zA_D;WtprLft<4$&T{=s_Gxr;2(z z4pqnpE7Xacx%h~e1-%9U+Y8@qqmkGM6}1>M1b-2@bgAvy#Za&&54DM-QNlK38ZjoJ zgz(;gR{}~K-(gBXY2wfx!XU>J^HND`Lyk{M$>3wR-tx!5fN&h7wKT#Er=3>-r zO23S1^NsQjp}&^8uKz`8l9C_DsBBMqvy_TuV;^%U&bR54mnrdEz?lI)Iqd|k69x@* z;-)yX#}fKY3H_Ih`b_#i8TuOps-?BB_|z^nt!0FwmQu)2)BkX28SqR-#Q@YU8SoOJ zYI)NSKcxQPgC`f$dzEzKS=1odC=LRa3W8Zyo@uUoYI$A@`M4D6>5gyNdkoRx06wk4 zI8G1@?`&Si&&uC!x>+We^w#xEnHSDEr=g(JigB}H?Ul+qfhx@7V6RnzW`}fKumBe> zi3k*+)6&q32GC(@OrT&MR)xX(dLvsfxnY<${D?d(o=|odAA;E|(f_taxAFmc6{7oV zG3)#bR6JXkwGzvf-syc65q1F=c^%W156xtUVKxgeRR;JE>yXFk5lu%TLikBL+A+^E z_AG>e@+1F8K}%6O+}7N3Kr5r%)npv#gE3OtZE0>DG&Z= zz|MG;6s!}Fib5;aF@Ox9^N|F7U=cP00z1l38v9xQ!vE~&d;e!Y$9a*;)=KR{$$JE( z8}MT+MxNW^ zNz0U^Se^j*2ggxEQF|W#f7NHiR$E2?aH>Ymq0D|rR$s1dRZ%uQr~PWWRx8DdRP^Va zAUagjP^d^(K-#Dl7b`9HC?6%N!72z>0Z}X1WD_e$6Yx#+Q27QKzu`{ERx_=yvvU%%uDD{Ps{+Uget0=uvvV!lT zQJ;yos1xjKA8KE;3NqjD9r~5D`)c~B)8rmiRF9OLpC9{E+Az(h^=imxP5*L9&H6QT zuiKPNpV&X4g)=f>LPI_)>Ep7RCjKj&rbf*;c1lG)bfrJyBxQ8%q0v*6U#f-<0X;d9 z{s*pW7Em zIxa<1Ok;rgc))0-6f>8DEeOLnsBrd>=WKRKfe;;UZ5Rw;7xEcl1L!k4+N+!oCaN)m z#@b7zcUE7=b^9=8{^Vl)gO=!C>FPgfq^ql436GLnlCtI2CF!|DAdF{gWxC=eM9`o6w0$t&i(+ zaDuZrI=0EhA5u7j+0kD1e8b}MyG~NH7a#piA0MhjT}ZpLXP=jGimBvDKu5)$`7|UN zd>5#SN)hNi1+jk4+AE}}6DerQ7)~^5W0ByO3~F!aG<24gqEs;`yDjns;^9WqjyzQ9 zB4CCs$<;3rRVWGJ4B~Seq6REq&n9DJno$~dodmy@4P5*`>^V(I@dz3RF5>F4qTkyC z@i)i6zw0Op-SFc$*wTb;2ov{g&UlV=`(48IIjfmLi^+26;ep-KxgVm^sjT=+lfxoR$1duwbEa)o{q zyH0hQl5r|oOVR3mas?Y5nZAD%e|78zh9IS1cuu7wz?qwXhIyuFViancx0=qb09N09 z_Pd34PfhucPo3n@y4Y0v&(x3b(V+jp#jW6eB?T*`Cltl4IE0$H2$QS?6*>o!)~iSh z7NPt*rqV*u>mh=%I*~e_6t0KeW>TA|r2FrzeaxpkmcHs?Q?vXq4*~isRg{jDeCgWu zPnvnsVp=PMcJ?*>ALLfIm+~W&HoCU|l_2w9=<|Mrer+q|mGtC zY$u8j$a9^ZGw9QOls#DOC5<0&Fzq9t>c|dr_#}4BO#C5Ir@*UX_C#@s(+w+j*0$9+Lx(_>)O#2_;;bxI`mW;yfWxl`N90RA2C0eHp=L3#`BZEPx%E09S z4SBF}nbuMwbif|D6iC&%^Xt9X*JGwns^@65X3*H@m^}blp;KEPVFwwB~ z+-QSUZ{viAX}_JS;Nm&2G!et5FTd2>r~p6_8h**aS*AgV-nLy34DKbATr5dADvUGR z`t{>Iqg@3r-dFD(GrzCDrD@AkK*wN~d7r<*FXLmc#Qw$VwY)! zUMi;3NVisM2L_HPFl&C_@CZh&R;p-g%B=X*%q|PFJ(59(cbqj zE}m`LcPY)G7)nUuVNxr5lrOs!s0sbjSF?U4`?7cL}12`K9}< z9^WsGOAWR$wz{>&R&Y}J`}FCJHoZPZg~tuwpUyfMmM2wR{CM%imN6m@ePDX0jVb?( z@UD5+{qk(%?dc~Q**l?4Mx%}S;2@+^s1_ljc8eAP4tS|KPNDFD2;WTi#kZy?NVah zI8fllLF?sBY?@D|cBO#^d zxQ)aVCNf0@)khwbQ6>ms1nX4N4`e!|T;wlc7d53;xDLm=rVT&Pp-7K(uQVrJUNm^* zXsgw>U9O8(kPy;)HhKB!bEuwEVt<1$z{OyHRJ;r99}0`+1wIJfq0T2PNFkk~LO@Iv zQuSU?g~A}Ax&*WZL3+raKMVL-#;cS-VQV$LYN9!0O8@r#D_C2osq9Fsb^?ltfr04I zI7`gz8NeVjF>0;^J@Mlu_?HG(~V&0-6+TVMn-N$_d&EdZvfMW;)RK_NmHK@rcmpLB*Z zcYqk|_7H0?0D-MT*ZS>XX7T`aRs^&tyVMZOlT!CiR+s^UIFIS;MSG^v!GDnZeznoZ z6Wz~|E)o=gQF&OL$yLD3QtU9QDw3{-^iV+-z;Ni=%!Yc@r{TB|OLq^eH9eS%faBWU z)c|GK(#-W$o_n>k@5}8w%rNmaepU#zWewV_w8GGXqozO9rqyBz>;0!E=-D%qmgzn1 z)t*y_4|R$%Hvg63JklEuB@9;>;~I0_oA>4X2$LGWyEmqDSx5(MZyG6h%eM#TAI}cG z28`d>23AKO!rJb;^NLWzEW1*)mjM{vheV#I5~B)7eztzV91m#(pJloDigMJt z=V~MSo8{DV-d&QHnuy_g`Gbf|k^80oyjgzSnq_Rpqh586)m~>3Z}~Fjf~k8p_k_Tf zOp)>AU~kWbXkPMml<=}d@to1LAYs9`l8bIw-@AGI4Xa&spUN8i#F7~(q2!xHvJ%TU z!!7m+L+hP6g0r;@uDLatxAdSg0kvvP^=>`t*`Jhf%`oiI_SbV_tE4#IMd5?3tI+?c zGys9%_rv(Za|k|vKe~>ua>}_7o&)jXJf}{QWLxIcKld2(qkkkF2XW#u&f5{cynXhY>J5R%_3t9wynYMb-#*>go?HJ@=vI^zgV~^_;7;i<$QvvQu(g zb%zYjK5u(cyZVr^=Wqon@!sN^%GwmEAu9As>%ypO2d;g2=X!DHqpkj_R(6)C7q@pl z)<2WytmYFP>B&N+Dy`DiWFVX!us_K(-@0(XYtVdd@i{4aw%z*A*cm5)nZWrvrzE=Y zb^k88ChF|QfW9Qg{dsx5cSqw*lP@V3clSS$^)`K2Kfe3J?zeycWgrjN1DeWaxq4}) zn_H!ExDfaE z?Q=NKnGyYM>js74{_b7eu$Ye?NI&%d?V1 z6WcaqzX9PNV0_e{7a#7t$KKha&N%xgL3(vcu{V2+41IkcH}CiBx7ky7H~gEpI5Yj_ zZMIuU`M*DB?;4rzol!6L{inDK`pyF}$i%vNz~nqkAmkbkx!K*t+0Q_lFdw-ZqBKK~ zRv?s7h}wGhdEH$)i%YlXYSNx)U#?ChmpSTB>qhjf` z%r%AhNG+aj*~I zbOxALI@sp4aI6$=D|sG~JkKPBr>3a3kTpj|mahbfV35K3Ex@~-l8Qi+^7CF~r~Q6+K_SOf_D9hIV_B(bX+cCHe; z0b-2^O&@79Qi&YdV)rVcrc=mn3}7*GlvCBh9$|VHh;#|}QqA`*g+|x641^E zQ0uhNTl+<4wCdPXa9p(?Q?nQ0eyi4Q`#M1OhGx8+;=w+)77G!R<1ih zHjOwiVqh7dEwYnI+)Aj|l4j8EnIa+#6O~s?HI{;b$gUA4*omzB@Wy@lr!qx*U?H(2 z-%OUDUx12-^3A01En&V{CTe#Co)~IwQjKD^FY<~6xrBShStzGIR7Z2bgFnLKefhTS z_)Hj29Jxubdt@dRnPlQK3oaOC<;6q*&K07BAb5{VZU==JNJV5RKC=X#9jG~H9##g> zcjsdp0gL8GJNxqNAVQ{r$TlK>dng`faMP%N$x#0l^MZVApJsId$du-P{3FChQ5vP84v#bs%*Z51jJ&d+H4f7p8uuqL*(e>4RWdU{Bx34#Qq_f7&R5drA}f)JY6 z>4Ji$&_qC*GyxL@#ST*K2}rR60)he(MZpRvA}X32+b>bw>Tm#bSFo#o=bafU7uk61_SNRT-IDVD@?j3;@1m z2-JnMkV9RmQf&k=md+5<6LBA1c-mf2>rj!QMjfAAk z0-VyWuoPIjQ%p=N_=E!xjuSnxwbN=wIC-3*6`U&L%g_lHbZMJW?Nhi_BXlje&)Pti zJZ|vVZ5DPRU5mt0?Ez@_&?DjpcF2Nk(k<1i+1t^|LhYvCEWPsQZBXb`en#fctT?aACcp?Q&)Y})3 zNf(W*i1y8pWYeRgpvFTznlm7~C{S+2RlRX02F}`&Vy#%`p^sx85M>$A84+ecogq*h zhnjcCu}l?IdZvxge+NATumac_x6^zGh!3eHj-h{c<0IBQfg& zene2Mh!P%vN1vc%u;id+G0f#LOjY4m`!ts6$z1Dq9X7}ywS}9)FXN?OZom+7?{W8O z)XAJ=yWe28tKxmbk66@4u`)yt(RJ#C zH-kWJF)(U@S&Ck*J=G0Y=<#x4YPqrGxL=>l-j!7bcUs3IJSX##o=NB}&MN%WO*0T@G^`Lk%gp@@;(L~X3gPuO)nlvtYHYWp3 za7{21o)^$qJ!lx6E*VVU<;zk|g!Wf5LVTgIX3!dMdTbq_I)$l_m=VzWnlzLVz#X|= z4ZZ#b7{rDqcaIv^WrXD2O3Zu>cJr5S^p|jBiPJOU%;?*K=}}~8TpeJW+^C#UVB8So z)SEjd3&2=%hOmt47IMaBU;56>j96;=-HZMi(n=vyz<9l}%*qONy$m6;L>}lyrM!gM z_X473fW81|B>Z7m9$;ugdP<#iz0uR_GeEg+b`uw-mMCBl+#c}g67m4PEP#oPRHHlx zI+Vl24`$0`FjYyouhwAkH}Dv1kSvK~ypWCfmMueLLhiwdeNoHxn8N!Vh3;j7A)4sS7~#MIb*9h@WN1?gSAvIp9xO_S>1L;vTg3j94xZp)nzuA5!NVqi4kgZ6GKG zg({EFevCQ_jZmq@9fgZaDsIg^43O+0&8j|U&^M_N$vGV)kofi)f_Q#|7l8DDGyReq`yq8o|A+S}fr`3i;-m8>Ki(`eKL@`7j z5ESPKYU48>hu*~;9G|kkw5s#AVGjedAOP9g51dS=uATwG7RqgKT@`15anVdSC9rgq zV-%@d1}7S4!;*( z$ywRY?N^#Q zW|)T>DadYs4H>xC1ShQHv+db}vDp-oD{3%BPv6cG)~{|!zgas6SXXybwRfP~xD=QX+6~lK(+5jw=Ua}K0h`)08b`Wd)wn+K%FH6tXEsn(hv;UFw~vT1X7{t8vs@V7$M^P)4*bW5GzT zeWS2YzWkAi3I#iOH9yOj8kO&ANq^F2wh`D9Nj^8Q)WX8(IrQNStF?J!I zIx4MCA9<4I-?l1$(7NEcMsKsJ zRhzTD2vkxbl;zCV_Z7`QwJq^FP9ZIQ1n2yIY^MIBMqz8+dc%VV{}=a3C(BG;+`KM& zsLlEKRdUu~nwNruQprJ{!wDpzK8ZA&Ke4&%$d=rZL_RVj8&?l&80W-gz3g(kbgNZf z)oHT*Ug3DR;D(~6^s#PAP|hyMp54cRHD!{{R`D45O(XCPaI$%AzNcGn5d;se<)G8? z5v{3_a=ThN9+4HmPUyy>d;5(m3(ACcsn#CpoxLs5XDHx9>s|= z#TBB6U64(uXIA3mQ+XXYm92VN;!bsUrfl?^VBPRE-Vy$_QOPUcG-cH7hA2oIQGciLuNgk7nu{N8P0iT!=d*6NAaYcHunvBXCaiJP@398IY5csXqSA(1BEmdE zpaH5>h{HWub5d;R)gbLpMfIM8vBB6p-a@cpFSy6=07>DX_^h z-}It#tzT)`!;I!LL+^pORJsVpeai5zu5G4&nrxC8J{6l3NrQ+5_5)8t9ry6VaI`pg z7HWNVNV}{es+WNa?XP33kfXbA%2Zz73smY#uNA(yttfQXzjym`wmCwo{ypfas%IOD zdKq#Ows$qKAF^kNN^Z}a&-`|W1aP172R(~GVOyY1~0{2dA&HKpm*NV_O{`? z*`PB#cSKkpg`y)th#o+_s7sO2U)7?YI`Ev^kYmmF?QgeyUSZF$fWB`3Xwl)O_a4cg z;NCTV+gB)Kjukn&1~fGkd)IQCRXy3v{npdwcaoEnzcFKD+G{=l?qq4=dkgc3e+T1y6qKSs*<*$(=c0uC23;C zsy5_Q{bX)Y>_gDevwbx(MK5JG(;3)C;ZfYLBI)nO$`nqJFz??dRwq&@9`hnix0@)w zp5%@5$rFu=0a%@ZX6I*eUQy8+I|s%gWw-X@-4`GMf?ZiO|0$Lhv^X8@+yGm>z?JPR za?y(?`1p0RWVt{YuhV=;6RtgDPa20*$}Zkm%fOy|VPHgvGf2&D^Ao#Jd1EBqNS}^E z62|FBJ-#>sw;9$~$3j~%K*S!NTsoYIp3wlkEfp?NNl#T@B;(N}hJnqbm1w5Df)s8@ z;$|Hw<|GI2KP8+QTqIn!<)zey9y{3yI#a)zf7U-TLN>$+g1jE*e8FK;j@5(+tRLhh z2a34Z!^lmckk7+s95a!G+@MylINFS>Ba;X2Ww*;-B0I`e1q0)}SmKgY3fk*bwwMt{ zvAYz2Q~&@|NMOZRJzXfxFEWx^6af&e*ADLCNJ;AP6`MzSa-(TU`Q%9qzZd~0# zAWQRgyMjcoBWREQ0k&|)#TPevOa?h$4b2jpi|X3Fmk-c*O+J6Sj&4a{7o{xPU3an1 zu-p^XuO2on#@T20C19ja zQhWy&<9hH1j6Okn@(o}GT#*&$I68jw=L5$#mf#*AbBRn^D@T4;b%5=tUQtg8wLp~^ zR-4}{9`26IyZo%RLZ3At@GyiGT&}pHT2mcrlY@B7!e3IY=^k9|Q~F*@PS22NvU-)I zd{N}}qeE%pbnJWlKm~g3+Hi9>N>ALe^G_`vbHy#TA6A%sSEYJ6?{1~fk>h?I4*HL0 z#e%oTxn8P>ER*`Iwzs({Fq8ap*@I8LcHPPVGjS)Wl$eKAbA7l1Hl!k#C*?>40kGh= z)p47uLIGU&?x;#k4zGM0dHli^^jo>`LsBN}Ud>A>5Q8bQ^U!wFmfp%5;|k)Vb^Aa$ zMNhWH9^WSxHj^M1`En*E{e#T5rH}WK|U8 z_EpQ5lodwEgyz(;l0#CfZcuQ}C(iGmUjHak?~HA52}2XytaSS(|u9dCR-{4o7__vgi#MW%ks%&r{mU z-s4AKfLH>{XR>>X&S)-vT-&;E=>fZ)rJVM8b^Txn9j>h^yGwtt{77QadE5)-XP@x~ zH_^30Da`$yZ->?i-1`J|xa!i!i@0*(nw6q+CT|pMHkaD))I`6Y2>Ql2oRAsxt>f{B zq#%xQ;I}g(^L)AtHzR5hmC0zE%0wLKW{A=P_42n-2^D2*(5KL$y#eP-BSS3cri4+z22Zeuu2chJam57f;O zlnw{IijVf-pr2G?A~@+}8s>Qg*2YKn^Ud4de4NsLIkBv)ux>yqClat)I}9DK!D(78 zFTaPTI7U=@NK;DaLnccPaH>!*IRq!7t6DE=^Dtrg6D6G^=wp=-ohJzL;r)K=d-ac~ zYzTR2-bt_kt`Sh-%Lj>wBNe3FCnOL+qe?}yTt)M&%8KSAE3T?&bso{WtD=4Lh~}V* z&hsPqks~@ULjYO~-DZ_*))l00Avy&N)nwM`8I_y*%d|kDx~q;Fxh^yIS%!y)8b>_U zS`GxL@>c8;F4lC^?5>JY#4^(?6|;*W=DEu(FNRpWJW_f()bf0YXq1QiSg3=vqRrc* zxA#fdep~kZ#WJ#tDg|3jQBt*Au1X2v2>14ysxHRW4o^ZI?5fGw3E=|jlyU}E_$amj zaI=XxhYwrnTD`hT)#+HZ(^=Iu&DCqJsycU8JKt4x8LW2ER7Gsy%iiRpm1t|fsk%XG z++@^*pCGskK;iiLu$4059-84Yt~5`jXN?>lHjHi%0g#AN^jKBnl~A*8kD70Kjc=}+ zUvZ6Jm74#t8vnCu>*vEjov&*WyFZTMCb ztdtX^@*ImKD~b?9ArVjE5tx~0jpECL{38NGGJ|u&o=)*HRG$Ygj|k~|7Rv0-m{AMA znvFSq3{&B_`DHKBT;WOhDci~k`{s#|(>3cF) zB_G*3Sc<+Gk-eF^vEsp3V95HHwXPk;2aU z*gd8Pqk6SGvGDvdf$%^>gNg?mIa)#5vxPC_9GcGon zEL#c`kK&c&_CeY75}&LC-Gv_gTy`;o-I}Qsxl+7Z3}45{4&#wBgAC4)4+$3+OD4Ao z_~K%8jodh35JnOa_o8Gu#V{Fgyn=^~qhO18GLgWlvp{i?llUl#>`*~lcsGj9Jrl*y zN)(5VI8|-unNIb|4LLzZC~{#8?+7j}hL%2_d1ef`p$5I!NS0dkDi1$Z+(DLOJGv*P ztIyLxiDWT2Pc)SbO$CTl0AF{L-D>C}&SbR6fP|Ni@pV^Y0>xkk?*B9#%Yq8K#IAg<)~ea=}iV$`e6@EdVapq=0n6!FKBat|glFR<#3l zx?T6SE4sBEIHZMC;Ob6+EEH~`vdQM`b|e)jlDYL}8&}wdJ20%R&e*kXlu)3XO|^SF z(}hG-Ezd#$U@<{YeqkqFz2RCG_;O|^T)|$K%}SA;+y*+1Hqy4XVkF8Of8qg*Qo3WY zwHOp28YLGwaTb{Dsxt{v&)z1In=p)yOwGLlXg--b+O$0L$cAix3i>vL70~fYGtJZN zL|(+JRaD1U^N}yGlWl;p6&DK9qA&x(@n6g64S9;Bjc-; z|oeH)`t@w1^eJhi+UQivh5F&<7-m-|?@lo!?*LhMd zgtNtD)i<9VU+tz}ZC;6)h7(6Igk z*<@vcPf0jXrTTu&9!5zKeZN_*?1Y$XX+cgYP)B$oM=_*@^{0o(vRtxka-l-Eo?I9i zKSP!7KA{;69McPvuckwiPeAfOM+e(bhtYCHPWT?D!f`u%Ee{_CFtgg?k=qAZh?W@P zH4KV1kQj@8JuR+`z0MTLxE?e*(}Ms63CLX3)_35`?TAILr88Gb0dOH~zbBC=l1jI^ zyx&^Yes0d$%#3_Bpj}T)1X9hiB)sM)0f`fIYM{PZBu`dsIgi8DNa9H(1B~|pWy64C zkvt;?49xM?m{hu|q9N&nh0Q$lk(?Zr0FlgF6f&kU(yUdac2G~x3tQV$`LsG~IuK9Ja(E>=+foE9Tj_WyXUTv>m`+k()uH(#= zGkT+^z%{7`n2)#H2+&g|!naDPclBpjR;6IPg0yHU*k(ppLDXBu7Xxn9HYAbFQd!VE z*#sicVv%XaW`SOVdh)@~GPmYt$2cQiR8*JhQ*?_QwPu)HB2|XuIwEW75_5T> z>;2@49HlZ%h_l>Kb;->HYUq|%(skDlho5T7%afj3l{=g&2{1u5lFMmZwy&TzJK?wA zKHxYLpZ&sN0nP|rCn*h>UsHYdsZ|SS7(mnjHbY)q5~aNC6jq9#KerX1Jxo`fR)}p` z>*Nen6`T^5s^-NW=!o1RcUoiR`C;?{O{%!DNwdVG5L0}!!SIgvMSEIc+1kylk(NYM z3++{DOY`CQ6+-7)T&F~O>gQ7*p$p7+`X~BJ8$}Vmg_TTktHyY)hc^{fQ=x?m9n!b+ z^(fd{Mvc|&qf&UVS`m#l2^Gbk5rXD5| zpcO{BGRPE?ZL z$Rnzs&umN;E_n6r^hec=2iA}}WE21u)jUu(8KVFMTXCgSxz?$|LLB6aHe4{7yq$N; zLaN=YRYsQ#n44-F(V}3+&+EuvVxPhWH%C`5+IT$UAsS>Q?gPTRpOI;#R9_@TxTcaI1YJfud)$9penJzI5Co z+uqANS9ho#HQo+e1XwsUUf%Ix#Gh__8-N*UKeq;8TLCr~7KFwrVc7Qi1d4^o0TH;R zXw-I*3A-CHq^@1X<|FpTGqLhRVCQw0rxe<6hIWg*28mh$Ey!d`0j^z?WUnK|(y^j@ z;6B_w2DYH`VA(9A$h6s1d);b)eGk~mO!{&FU9`I0;I)h8^+oGE8JjpG7h9m^1XCxt zR96*jv(V;r*xok#tMzGNk*uX6_@Fr{n;yCNqP1JL;={M3&s_mjh#;LCfzoqsjfrJ* zE4#tNFyD#PIBwq7cSUL$tB(6fHN)RERT3yOASHIdZz}iLgqj61lva zR4^f0m?8e4N6bLYDG%osH4gJiGLXM#og-G2DRJe2-?(K*u&*n8M>SM!rVQVt&zv(!)tD^!|k#9^6yIFD2H3M zu+Ynq!xz){Wx6Z!;)qX;Ix?(Wc8<`lAKO&0Bkl-Q;*pU=sV;j9J=*EINS1csS=SBk z)u6KGTUxsp+|s)%(J6y;a!rSGkyQA3hZ`JDbeRA~>M4)*KjKrO+jO;vVyI#-p@YAE zx;L*zN-`j{F?mHlqynDyM^E!xr^+3nn;gJ;0nu&xU?q2a>TM68*<*VtopVYcA4k-h4EayDa%(H z%PqJpP2>KdNd?i@<{QgGaINaNT}r{@Ok#ib$t>Zi|3o9c)9-0jK-=tnkZLiv>s~-7 z<9Nl+De>nSYQ?oGS;T%n$DWja^9Zr!dTs)Cg(TBGdj6n8< zjTPbxUg{ZYgGtcCAz>+-nSrEMvTRJu4YjJB-H7IGafyw49TjB4f zB8?dYJV`g{YrP8A5WKBM;4n|D zzPJ+Pq^7hAd*WG93Kw|IL`Lolgyc_Gfhe6Ol|^);WI}ROB74NPw{xCz#ID@f;Lkr9 zN*ayE8zp?H#SL-4M5dMIah}UNwei%{RJMb|u^Z$hpxCS|W_n>jrvJ2TrkmKz6+i4F zDDf_rae~zOd^AkCbml8(I+VIu>X8m+Q8AD9?`3Dn%766OoxJ|jod z)l>-rg^RvjB3b$}ac>C3s&^<09X$qZf{C*YUTyiUUq*kn-J2Sj0S=o3$Lj&a1qM)y z`Fg2Dt6*HaSO!Q34hzX^2V%|0*6D7!(Nii%C#jA)rHC};iI7!ynDn~hd{}4>Sdlu^ zW!A>mPODl5mE3$&WYy-}WGkY?>r4$~T)s?95!WxhfUY&YIyb77rDmwsl~oG|#t18I zA$mOZNp-o=Bdql=2oTY%d@1*51eY~>P?w}=*O?KhCTaVc9HgO}?C-)Gtd!x59m&FH5+?7=su|gkP&aXDlNgceFo%c@f-e=z z9stfSJAGPAlLWepwDaR!W-nLV4eU>t&$63XG*u^ zqN~QN=9xM8nB-_w-k!t+h}v!J#{I9#?V{Wau4$hWm5c>Shs|8Bl3JNBl~36i^t`c( zOl!_43XnTi>`z$ChTJ-{j~cvw!-2Bbu}z2CUXa@mQ+JBRJtdiv!s#apjdbapfYob@ z*r0b1pjy$vH!qXBjPob1C(`!wVguJ*GI7pnaR!`w_ieMaoUf^vbnHH-tBx06&g$?? zNI{>=nKnw7GO|N(;PstutVs?{%6{HIYF9;`N>E{hU9KOl_I82r1Hqf_1eQQ1F$O|> zH7*&J*;a^1bkKp8-HfC^##LNSS0xW`IY2ym=!CO~G1^>w3z>z#tOc2jOzI9biLo2+ zDl(#$6&Odk=buWOGCdHT9ns4;Jo;Keb;YL}A;J5PcJv@@Y@Xe5lW9ug9D%$sXK0l2 z+?%2%UKpA2r4;$%C=s zud5thLO<8hn}o$+cX>XC4$(Kt*XoJvb>M?^vWjA}q^GGw&X8p*T~0z!1y03`^yR$F z6y2kjs?$}VdAiTk4UCyKoRA-T8}aP+Nxf;M{*&rW+ds*q=jAEB4t-|rHxGkD%EO_T zBo;~Opd;*ej@pca2vd`)Ju^|^f?#M%HdC~~M#SQRrKZ?DUf(H<=(+o+ml=e%pX@qo zTL1pxz^PonQ(a>(OIJTr=j2%SSs5%diPV+$ULSv|efzx8NagFqwet^qZA7bXD{3mxr^C2rU#GhMe9{H!V?QE<3barz|W z%cE->lIvfkOot849!Obyx_q~7$|PiOgvZM&s{_hkU#t^+zHo2Pe2MMXNc!Hz(H+HM z_ia-)k$KPp-@S`R505Uc1wiuvl68O*GO&kuTq+MJ-vd;JgDBdN{y+@L9i}Vf@X#vtD10<}IRYhKkFla5%%jns z?wED?nDxDwAOtql9lJ3fyQLSq10fsh4to|1csGt(4#ctCaq2wO#A#^*AgaI}UxGl* z(`^D6_@nM}2lJ6mK>Trpe1p4uOTPT2UioYF@|HvlH(#MpA2rWbD6B`5iHe22sE7GT z8$RmhEJ~9vufaoFa1@*J(Qju_PBdk(2LW0@knAJCkVKRRQMQ06-$ztNsw^|WyK`iR z_2u{HtDQy2S4K;-^%XT3Xd@4mNA9YQ1p@hwS;Cq=gU0TJ}iPb$5&rU(b_>(P5xGD42KWwV(}J_C(aT^TNmDC@&s*u3i|h?w9jI zU4uK(M(;h)xI(?cS(I6oET0_x)t4jLzxgUi@}(O4d|KsrnW?ruYKkzhA1k~b~eWL{X6ol`!F~f z-dV47P+vdRK)I#YnsZ-%Z=a^4r+%5f63|0o9nVzM)9Oqt1ssc6B&&LIC^ZJ?yM=gr zinVc}zJ9;OI-;&Dm_Qt-lXDosaM6g(dXa z?CYl*dSW&Z(RDGlvxbhkDBH$ zrhJ`SF}7U>C?g=ez7Xxh(-Du;JB7g4#A0T~-9G|sR|3&Se0WiTj|&6&I@WeI558E4 zcH?_J^;B9<)3XJlL43Cp1E>%R%7TKr?QN*f@Ls`F(&Zp$#uel5>$r2Y_BEmJAOg1; z*;sQlOgX;ZM3W$f%l#%pX&Ow1XG@ubkD$c~%fS!9NfPZ$U zQGjqQpzx$Z?w?aQ>aOI;ftwJ~fL_>;QoyPh=Hy1;ASf8dK8U>-iA~|ZE%0$4)ShBMf&m`J*mf`mh2(;UcUbba!#D|_4(h$Zri{v>s4eib#;CD%QExsb_qJ&DKG-J7 z7j{h_8N$)P@T3x~7!5YZMXTOVc_q7dwgoK(#Ci}Tl^+-=<5IrHg?%vfl4k(m45@T) zQ^CiSNAHvUfCxR@j?sC{_JS1AolzfJ7#~b^!8Gi{`>BRFe7r9n%nJl^;ABe1of4nb z#0-7fF46uycMyBtKVZBs-Usx}GEdxlXQ!`sGiq^evmyl{!`X_Wz;Ay{0TVNWeDTH{ zjU=S%(tg zCPuqk;xY7tq4qR*Fwf4O2fu3wKi|Ck4H8@M0oiXDZqC7cdx!KjhMVw_ND3;LXojNM zj>amKy;qy=v)NRLvE!qTpiv>TgDLj|3-yyr3e=*D58m>iMbC$9)yubd=k4PmW{EK-f z7h-tE9H!Pw{l1spUL%2JU|HI=MoK6TCD)$`vJ@s+I;~Wd|bbVEV$u353l|!&&;T{X{J^l)c z9L%l)lmvNwi3cXL+T$cNdU29{)jm;+=){MV*n&*$8(z1kIzSI&=3)iV9bOwO{EB2gK#zhLdKuNm#b)R zj^Bb2G;0^25=>4W-fgQ)J8xSY`Lzr_6T2}7+niKfl=28ufrO` z4^ad5zWl!%b|uCt@rvDE;#T$ zAt5}2(Ssh#4qDQRy;l@E4qrGaNsN{yX74sYzx2COsDC)W^zf~im=zWco)pBl@e}yL z!{J02l){;8L4X)oqw;MChJnVzBQN4%QWR4l#oxtC<72TI9#zw^SgLJ;vYD^bZAMuV zGtEb%jvJWNL?64-iVh2K1yeeAJ}@nNi0;qF#(g-n-{N5q2O+`_%$F5lam1K24|r+5 z%CxzTH-@nda`=|=@hcW>?Q;9%DdBfMAHM(jT-V^4P(H>f;p|4DDhh~Q{?Ydh_bQE| zA$X{8{4&yxb_Q%58$@eN8e1PoW9-Cl3a=Pd|A;~-(pPZqeBdIPSd5MpLX59>Zf6Pc zDn^3OhH-3mJ~&=e(P;enxCX^*oh)kbAv%JCMAITdznxVtM)ZH&tmez+H?Q7*$Y-`Z z|57F0nC5(V{e&mw;#W4{bkosu@>nMX9L`%Cm;`uu74vXxn;_VH;3I68&zTSG%12dj zk&7Doyerl`#KQ|OI_7Uk2EaWo1zu1u#7F>RY=PNZQtHrn6@*aQJ9GA?I$>DDF+3Q~$5lS zz)y~#v)0F)lRG_nA5r@l)t$0cl%J>JyE2^T;V6qR;*Y*afX}lFpT?tdKa8o*+1vW{ zzA>@XPUx*P>~+}#x1!jXFVskXs?jHsrW@avjqYDZNy@K3xn>sWa}bdHUd^y&%jhuT zWU}I>c&q{q>&t`hx)x?nRPFU{GNqtwC{2Q1;e7!bPU-mwn9=1``SG1Chhyx4*nK}|fqf}sn%yZRzE-P(3FfeJ#YySAH@ax#{#tpX> zdm}F;ZaG)py23`Up&4_2aKAgJRUFq-IC~-d+dD-ba_qwNM?k_B<21Fz&W_9U)x0-v z5SuKo8Lp#Yn@b*TsX!l5L~pi)yYc5W5@9`$5HK1H351OuMvrX3`|*YJv%-~bMR@3} zOKir~Q|4nRHWqEeL0DLHwHH4<^*F{`{)r3!te_aP`NP>3{|Nq=EymYz-#lD|@O2IC zlr;@I;ti91v`v(^4FiN_efet5>&)mEn10&(5z2d-Q4W_%z+{`8)g=bDn4awj2rp^* zY(Fv#Je-|_Yi12P23>9q1tP47*ENO$^ygl)`aev6K6xdcDlkIl8aDtBKbaicpMHoF7w6l%xu0N@8G=;j*pwzyU!nq9n713Zvf;_ZoJPMFl1)L z8Ly$iEgstJZS4JOV13GOYygj%H^dGWV&shWQ&4cZI8z|4VI7CkTY{0BGuUgS>&JI| zwUY{yhoeWW*Tv}{?bQMD>l#WiR(O=kP+$iFUQvVzeiz<#A70*AxVpS@Zvq0%H&5Ax z@M5^j(#je>p7=^fTJhG(@&xeI#G6-Iw~T(+*ro4&!K8-w$+2vBTZ+lrJF{P8iEEoY zEP55-Qi0XeDR%4P%dQk+sD=;L#Z#pf;dXvBPaj%~IX-BY_v&(c0Rk0yFxiiDiqWrd z#@Y2A@XJ3)$O;t0zG*Fe)O-(+Qc({u1l=Roilvt`M?>LM&bm^k&+hXc zUyG0dpY))>wV&QqN)rXqvqgOOhYEX}eN02jaY`iQ0VL z;e@hh{o7{e%!RIO9?)1e1ee-Peb!hwTjaLe&wU*Yacl%-XFDc%chK+QT3JqOVEj#f zmFFe1wOxa7u~Lj`BEpKFu=nBdz+sKO2{*+X5i>>PGqU*)`j1QVHeO0ZoWGwTO_6~@4T|QOGW+Sk?{(M>HD5C=UYn#G&R11{1c5sUBaZTzcT0}Y%C#HB88aKLfG%A5$c|B zUrNE-z@@;J8bX#ZLSb5kto-jz{z6Y#a&;*T{@Aq8J)xoR^d;*{xf{Fn+erK)s3qce z`6XCkfPBHPqSGnlj%!brVgOEGDg7SyFE)hERU(@Ug^?7)D89rEDAF$h@HbMvLoBg= z@%4LmDg8^h-w&DZ4owS3<2R@!Ux9Ug#B;w;mb%{^U2>O!Z1#q4X;K%qznfdq5+-H( z%F^&GCFqKF4lbwn`{qu0)as}7%zbHFO(eEG$~rT&v}sc;erf!h`#TQ=wz|Aum4DGe z4F1~HHB|i-C6WAF!PTd|e9z93q_3&xqhwFZC5PAh3F8v{xh3C-U)6lGr8$q@ z_x&V!r$l926kss;=Z!4-;CGbYx)1=s>Dt_yAGgPt-&20%{CYKRNol?mwZ{{2cASBL9?{pD=#_`9DwpA^!g*5B_fr?{C5XG=59~ z4KTKhNVY$zuQE_4ViYA@sjT z|97s^e=YMXm;Fb!*gp==KL!5k!u%H*q5tup@E;EOpX2|5@lV_TpCi*6a_xE}Kz5EXXf5G}|-+oa1!}x!&@z+4V=l&MV4+ef8&rd49$^S(BPp$vA zK>j5De*^#u))1pF-BkUw0e5aHj5zn1xx3y>D0|55yZsN7G-{-MW9M6wX*PyGHnSN>G- z&j9}q)Bh;`|81WD!XFMljlu7_|Gg9(`AJi&AOF93_E+in7n!BUYQGQ(00;pfLjG+70D9ok zVZu^N!ae0%D^R*uI1&1Q{P*s6*6)emS}8Km*8W50cPhfJ;75pmW&a=I0%dyL{=$hL zto#(xKmD12{~+^2kP~j-{v{DhT7MX`aJdp;zIq5hW=en^|2dZvZU7t$!qyt33X%k^g$U{ej|Ac7p*Ae@p1IX_+66&)?+FN%ax{ zOaH#_K|eGye`x0kL;wPSmLh-%H~~%oWc2p-K7RaoVq)UOix<<=({pok z0)e2;Z(Yl_^=EhOxtg5YnwEPfb#r5O@%5a&*9#AHmL9rMb@<+qqU*;v_u0qq)}9!+ z-2AHj{HOb4pN9I$HWoBjN`A`9ed$SM>6@;lhn>i09w}jQ%5&LO#m$EejvYC4^@!Px zBg?MVI<+6uynM#@=80t;CwARAqkQ39@vXD=UG*kC=U|-;o@2-NTx>pdtFH21qxSWS zTl!l~Z(QJ9zr1gtdH?Op{-cc*4=x+@U19aK(FVC|x_FIaZAK5cwGY~}dvEL?=}sKI z;rYDF_`#i>19vJ%Z=8O5&wJ|js*%3bCwH30d(Tb{(q9h+zj#ph{88fT$9vvC3VAis z^kJMfH+pCKDf88n+Y9`rkI%NgdtUwF<>B{ldKah93g&Br!+c_5TFzz!K2Y7?-`X{FZg{wLZ0y{` zAD z`kAIP%@-Q)Om@Ba`26_wQ`}pf_ov3PN~?-04zX*hi!XH6Ug^AY?ON;g_WG`_D|hcV z^^JB74_qC2d~y8g-SLsfuV#j4XGiBhy%Gq5wkoyTyb#!QZhPZ}P3L(L?bo(+R`0#gxaZ;pR##^R@A?5=Yf1NwqMqK;d;JxUhS`G? zl^-9Rd-AaP*+bsY)UCh4*BxqeYp9PXx)glqme+C4&h&6sP|mHfLwAOc-Ro+&^x(`je#6Mrh2hETPbPbx^83dYN8f*b zF()PffW`F4b!;9J09Oo1tmASWK&huC+yM79eKIxeDgl3d>|+mkgch= z5kq2%0;I(J5L_xXVUL=uDQ2xvQ|w4(y;7 zJgK2_RJXnQwiBjybrGQ8t`(k5bOYJhgX+YiF;xwrs5?B>dSXCJV)uLiDHuQ`@BKzH zLPr8r>}hBS2oK3?E8N#QcL?%sEhKB-H&L)3NV|^AC~ru&Y?j7sV5Z6whG^*jMbepv#nk`* z|17gLOLL~Cn)Yd*(lRYHQaUp&if*Qa5T+C%OoZ%bmZphfB6N30(?;BuK?uoA3n5I| zvQLRS#Agsf%x}Ke@1JvB=UnGH*ZW-8`@GNV^?p5H&&U2N1wvNJ@y@DjPen!@--BF4 zvYnMnTAU|W#dlfZyr(4Ws1KGW>~a(=87xc7{L!&?hA;zg+n%()vUE1N2yZuM$b{5Uk^UJj^kx}O$h?nx--x_5XUV+tYf#+;B_ z?y*&8di@WJLZ-5g`nx6iEpHlVbN4700v_ceK|AR{pD8cV&r2iF`;{~crQ-trTAt$m z-RXNuG?1^dNIIYt-AG(Jh!&q%*JFTAX>19AxiQ-*8`we!lKoQQkk5v6t=l z_TQ2*w;OeT&dt)hvQ>P7Uz)u(j`(f5JL<2gva)brq5^k%))+5?6Y8i_ocQVG8U@Fa zw!9wLo~nZp0RVL|B8RXdSH3(i!D$f_`0R?jKMRnM5$i&jhM~GJJ9E#WjZGRhgO1N) z>!KLQtCHXr-d+j!LZr1M=!$Z0N!TZ&Gzsh|RRt;Op(9f)D#NI?eFXnG2pE_T1mv4M z&rXZDK0Gstt3}%B{QDj4mOlV_zpcX);o|O3AwlebavoE`&-cn_ElO7q@ zQv1Kf!gqt-_I-I2{Si2OD-`E+Zx`>--Fwp_zvqt5z+Gwna`$~}`C{sLef>Sl)nDta zlO}C&%)c9SW!Qr`xrG|KnLEr3y#*Y3G(|Q3fAV{`0&g)pc1K*%#Qc&s-o)U-YkHz4e1vg?(mG_=rDr4jIPnt__v7V zyvQ!MG2}pu(Ljeq!FO~W8nnN^vuJ0DBHWAlA*nEg$SMFmL$ z5AML*d+Ulr6k6t5w3D^i4VQFDWMzx8h%P;n(phc@*dbe2{^Tln-vddRMg^g^nZ>{^&m=lVsBUro*g*BaczZVQV7DnHQ| z^QODDBE*nyd6o;B+U=2S1@O5BSjB9285CkXDX1o?EsvWD2$4<6)MYt~?X;NUeQp1) z^idCoelan!;}aF+7@WTP`Uh-bM1FE=x2^wD1c@_dZ!zW9*>z}9P+dct+wt0Uh*T6> z>%-hCer4BPG2@x>G<6A5$FdO-!dsHTrHG96S)~ZZdMr0E>(=6i6hV9V5lfZdSiS6P zK?7wa1?ULtXY;CO-P1~(J%!|Wo|G~60~a+45T+So&{AWOph-(g@vLF&HxPec;vmz6 zZTnk+5PMb)nOD$;6sUqdm^$@nfWYNs7e2bXKS+`QBK1Z*+GHT4vN5Z2k-TeorbQ42 z+Du-88{0Zenm}^nJ8Z#4KHIJ1)qYYQ(ijB8j}SgvPFsi=+z|oYB2th&LXlThaV4f# z64zs@m$vUN;M2O`y`RG6cC3EW_8$iaR36=)z6r?|+xrBJCEX!XrQ`;AFt6;Y5$9F# z7+?ls%v!_Xxc@!Ay)DhG_d-aMI}Ef*hw_-Mh}M^2Sk_bGb$yEo`oqv%fKZmJHzr+#b8E`ZRgY zvsW+AINX(}^U6%Qa&{L=2cEerFBQ}W1=is9s$-Yruq_fuHKN9}PEty;Vy37t*(X`% z)r^uM0Lv(D1pS;oHE#BYm|mz2Fl+#)m1vpS33!0@$!by(WbM=Q;2~N4sm}~^^v}at zv)qb9!>Hs+lK|J0quQZr25eUBOjF+!D&(>OdV~rGsO@)F#zU0G3e?L!vXQ$2xxrVf{(T><~VDOyu*B1r-(?%CcFW z))7^$hn%`}oQ6i5Qjg~Teh%iLt;x9 zpy|}KTUz=Pw&jrC(hwSTT}A0t(;w^8n?>|uA-&ZYIij&Fw5G)mP|u+eAB5B)L&^s= ztxYcx^w3%h!`~Yz4@K!G76VV)DOXh6&({IhMAVDMIeNCGRzp{Y&bJX;rre`lLoLl5 zJLOr*J{!x+YT$*2YS2*hB6`1;`Yap!h*;hbQD5k(sjBQqBQAPy(IyPX!&bqFuAqBiv1#zE zc(!KgcFm#`p!ECKm?z$`n=s}aF?{(jEK@_I4p?M_(7~0_Dq@CcLx#9`pAx@@w44Wo zOhN5Yc80wz&aS-JH6EBVLAm_e?k!wGNdYb#E16}4ZZ~E>RKlrPcDW*(tIh^qD+31>(5@o|__!YsTM+p8XKPZiUW*#O#l?C~izipew)n0h z*87_c(Q3IY2pTw1C*q@wcEx%@KXK_^t+3S}^+n=`}`E ztJg2sOIqne<_3fC288uW5gbqA1Gw#{@c~-=ccnLWKqwRg6ESvJyDOOuMrnX34ESJD z!KY+^g_wR%v=QJ~c4!Jei_*SnW;giEoOzwRb%Z#(ko*WqI7U$#))5_{)RZ((!Ad#OWe>K*Km9-v-W8~J(zGBgJ` zA4f6Ma-m-OH#N=w9W94L?bK2(Kl~)KlavE416L2|EHz&W`G?irN^XC84*%%BbH1h_(4r+ zHBfcNBSq&Hu#ngvcwDk)X{44oU6j4(GqeyYfW>B*vbiCfpP)DM>AW05@#~2KiDrh9 zlu66N|BBr+TMVPuh$1OdDaxIyfpFsTGYZ^H6_jGg#0yEZWu*9t_}_2{rY<78W%IfC zWQ4Q{fX{I7!A6{6UU5BN*s}@RrNV6{5jY4b-kuPnTEs(0sJO%@9~Xh1iq@brw96Eu z%RDC*=U>Oq)WQm6S#^%!_q*c(SUHNsMr$;g=;BPnjQ69&uq8_i)WNg3OHjn?xC4PN z+C7>BuMq*hZVT z1*CCoeBZmW5R|0oD~Y$*%LnYXVemLn_C}+!WHhFVwD%18-kY6m*S zi02v1@!Xle#HT2!_yY3+&)Knxf}5l%@9Zge`y3}g%#LrwdO=``9&AKb7p)+$kL;UU zL^~q1zyr{ZEQ>fJd8wM@pJzcs1D9&8mWs)zMe&Uy!cs8@G=P2TwYQjg^gMc&h;TOq z+)+n(d!#O}>z zAIa1Pljxsao5?r;+Wil?Kty=7(+0;5!b$K>=5~JeMHe**5E2{_ZZ$%2K&Drsgg&)7 z3?d8Fp!&TXMTgh?ORhFR7s4&p&e;I|L%eN|OGAN`D>fur{Yy)o5UK|DJffTJuUySw zA3go$-yj_WS|7l#j9@Pt*ni?fEg~=1TK=OajNG?KyW!J)LExnU8!;z+FwLl@45)!00Chl1(TSvZ z1O1(v)~uQILrXc3E%mvNae1^wIh2cEEv-@7FEi-Mo;IRGSZ4v45`FRjus+CRDUN;}$JfV%#e{E`qHVN3qg z&e3scPq>sKKcKIOa#mtrZh{CimbDy;;O(mo{$>AZdzekmEMtsaPL^hg{qKD==7xDCE zF-Xr;)XmkmXh9~-`|xPo;o#r}#RuQ0P-7DYJP32PQ*h$u&*!ITh%?{AQ#6kuee^%2 z_crUZ-N)@c_(rgr-Q31+PXB_y2vA_~flfdDu#?Cvd#dJN)UNco=*)t-jP@vCi`XLX zrp9vqu#)i56C4`ly%qd=RSNp1Z2#^*LzsjuR8BCmpth2BB9PoUgv`TS$%C0hp z3?ngiTz}Un-uk1@JQUx;2(w4pYb4$fn^w;tR7*$~pVLijn(Hc>|3XKD41DS~Fwl>5 zZhc;^*|Kz|O63jX^tRU2+;XjT?h$Rw)Bw8vt-ANT~(>8Xm1#=MXj%;N&nF@UJnMp zIeq#~>dC0oKlNie7o~=NSr0rkp>KLo;0d1wp|9re0(b6mtbXv{FRi0<8$CFXX9C{@ zKXdpdaWCVSP5#8Ho9x|{(C^c?*qnv4?Tw#k=z^_P%S6pEx-7E^pFcExv|cyvqXM&Px{aJa z=rqILXY{c5HmO_tg1A7_XS- z{@h?9{^=k}qQCER`_=H$`}`vNO{Sk4H9t<8ezn~Fp$YOhOCMWH|9*Af*wwffH(!p` zlzqPA`WrdDuXoY!hueSmRsVi+_4gyw>XB!r-{oI^4-o#m+|ACv^?Tga-@4>KJug2$ zr~e*yHGPgYjVv-9U1b`rHvPP68lxk{I7`noy@4;cunElS)Az?H8D7)thY%D131O=S zn;AguF1JaxU7X&m1Q0*{WY*)}*V8J3vlX6*=*?{iw`w_)EAqKpO(2a{9i8dzUdR7y zzkDKgG^H`QVS2;72k&MbpL=fA>n9K1KdQE?J~YPKo24%oJve#d@%aDl9?Fqfc1{#F zKHrQ6?nS$@qNgPT}7)MpdVJrZXIqmYqylxmAUONIVCt0anX2#i=&L6 zeQe{0?B43}JJ!v$ee)O!T$nMl(8ty^AyGZ5c3*d+XHUqHsfQc*hp8O+cUL|V*Lh!& zR3~4foUV<-EDxu-^(G&S`8W1}_dd4AmR&O@+nIBmeDV9|bg5R=U5I$+!-Eg7BsS%L^fIE$Dg#s&umc#N zpgTyfRPF$OkmRCtV3*iCso5S|J37=Dg>9HZ*|J7kq>TM@w1!}@qsPZSvjvJ#fK|578J7+N}s4rbj|*@gly}p!q4jR8L`V(RBw3JbG>qlH2J#yim)>Z`*pZ0 z1P77SZK_A6e%X}!(O=&--rH=Y!&stJTgy^?QSSZ<-R3IffRZww7^&4gbN zWlJm*ZSykr#Cgxn#?6Wl#vN&@07O>(-P(VwB4^K)GLx-pbh>1mupLTF@r|)&1SY>K z0aJYW)*jx;Uf4ty9}kq)R=nC{$a@2@R-$Te5Yk7i&3>Xp{uW6o*L-p!L;nyi60A9C7u47qPdv75uU9( zTuw{cxDZa6+z;&!8R1yD4`GBbqlbyK67UjDcmHDsi=)RppwV{gTr-IRCm@ILq*fzp zQ<2?RKjNpCwWWy80Fi9aN=uAhuL4MsfJ@Slj^~chi2AoeJFzxu;520k5aW2gKoQua zD=84iu%3n8NNT@L;!$z_U_fbzI7fy z%gFI6+^+XOC~hA?k7*XD!$*V|wC$76T4S5t+ge3PNzKkR39y4s9d~-ngT87=z-Afn z0hM{Qts@?cUS3gv+1@U5@V)*0zA0f`;qDEFHr5YgA-5yBWY6$oyN|-xjmnzR^&bS~ z9y(&s`e53!rWn=G4ux(>2CZO7>U25bQM@p2=TcG!>-i9V{LfD`yh$%}1@0;QNm5HM zX$&h~qToq0s5v6Q!8A0*w>o3@*2oyA|5SM2{zR;xE%eYIwl=)Ap=5>lrc1Ax+4s4h zy7l;4+xO3ik(a+xw{k&J{3v8Mro{^oh=Q@CRQ6%H4X)opo&(w)Q(H$1Ef|=#&2^ii zFcRxux=k%WN`!cOHb|V^JG9rTXJ*V6kmxnowy6W@^&aGBlq@^i6;@#HX9TI%|8f%2 z92{b|=*Vb6TRc@q^yiLm+>X7o!?_duha^$>(dDd&WA~L33B`5+vaeNC9^mVCN>Z`H zV*AZPU#%f=6KR~g3WFv^9&V`bX-u(pdlaP_Z=wb~u$t1QE(%H~9N)sD?yHPf0_*|$ zc20*CHzv(7|2TeXfix~di0eH(o|;K&qg@gyQU8ZKW6w3txH2@iCw>-NzHXUY@6^g0 z^O(N!6Ar8iQ}M33Bh%9Rau!_F5UbS>=ml@3i=%$ce7r+Kk+2fPUh{i2flA6+ZNiF_ zdscmNYmaq!$)8ibt{mQgKz^2Tkg#4Csn~}6ys_$dWXDT1?&Q-65(YQ}94k#zI2(JE4 zj3q5B+hN%PS;Ji~ebUsDqyiK^s6IsK#=^bezX`J)Wbsv;Z7{)&a zwoCpddh)Emp~ZHcY1aZvYAjb8_Bf=J%w$QEZ;KwcmDNTRc~aQaf-QCS?*)YMo=C|$ z_AC3x>NpcGMFQfPb@M+Mu0;;(cCP)OVDBT077)B2eNO$hy<;Uvco91W%CJ;k!7_C0erPu zqF=Kw{g}2PvOb9rZ-_BW3Bo%Wb>zT%UCFc1A+$ww%!fDZdQ2n(N7b?vU|DCaX@`tG z#-{UDZkaQ_R<6ATQsa4ocRFD(tB+5uqzhOsG^OnjNDNRxY_S&aqctop&Gn=(@mr2Z z127$282t13)XMq0qrOx_Fp$eCJW5t!B|xmUBx3IHOFSR4SR^5DcY zyu%R1P6!(j3=!@wHAp|cr9f&)90|X#(Za2uu(bl1iZW_M@>HXHq#FFmAbSh(@gz$J zHEssmVk!W5gkqk1gQ2^8OxDG{-l7zG})nk~ec#cadhEL(p6PxAH`g73j z%Oh_Eu+&($NC+%86wW@1&uLa<0Yy1eaa&Xub|E*Q0>Xtle90Fgs3opSAgpt)#%E$auLvY1rSBlD%qcRDP*`&@i!*U+7h#Epn2uCz z5?|b|B5vR))^eup5-a}sLR_6-UNG^EliXLb2@+O>G_7b62is~OEDHu!Xo(p@uRPy< ztnHwN^=Nl`vN&yS7*6)~qdd;Ex|u z!%foNiBaR4C2wBAF|3NZ2&o?l_a25-et;wUsx3)2cn|g(1^0kbk3N(&r1k*dlgqDM zlYuq{I9e%rw^m9^2c6Y3x_OaDBP5{MJlp*ofoQWpQdNw)$D!@>qP=+1sAdVr9L`w# z?VS2IlZAOVYJ>V_IErQ0Mxh-W!IArt*B(8NTH%Sg5|7b}ATDHL;-J9MXy5z_i&V+y zF*EDCO}7)Qe+(Z?X@$4=GfP^%)1rORn0rz_TP^i&2BQsrDwfQ#5mIsG9?g=mTTtiB z6CInuyfgD^yGF`N0NY>fVKz!#d62*;@iOrL)H{?a!Rp6WE?l|isN`w8 z)UDa~*_T=`1ITRlUAVFpc_2HVQGDU?&OKcgpO88*2ln@a7L1c5Rd5G6RisU)^=|=) zD`R^AA${~*^);{{1WlJ;^p%7N3sX6OSBzC40L~&6mKx4{PrwDIga}E1*6%;w$&ni|#)P8z&^foz&u{ugV9X~u9!PC7o+fSVudBIL+;_vAo9;cgo&j$Jr0 zq008h87I~5P&Lg#i+kK<>E14TTp*vQ#}fPKGuSv9Pu6vMO4Ka`;LM?o?%LkO_GO=V z^Dh)#;s5a;hzZEA&zrSR3*(eUIZEj^6@W7XD^Sd7NJ41F)+6(w3JEMS(^&ykK5=ml zmfei^v?|(~M&HII=AS<2;Y)lhVTca`iKC1wLq!Pdrj@cVfmg>!D~#q9#%bW5iO%!_ z`Juk5A0)W0;^wh>3s6Z|WGu{cQ_S@vtX0`Uqe-i{ipvd(jhJ_Ck1~f#T-8U+Ar%dd zC~_K!IT~zX!X48BR59Did#jkRREuq}B5ug>St@+-{CN=xDazL3Hwf#O4k_yHDKZO+ z=2vu=8i?~YDW3k`pWa7Y&Q{zjRftAy^F@if5bV(h-ufZ@N_AmY1-7brVPAfCme6(` zpSX~1vzk+^rMhouRAlK13o*jpFNNQtinf7-JT-A;=Kf`R#awLvcA;WRb3@Lk0(fJ{ zn|WZPo^U|6|KGh4B6HEWqA|;>hc*EFaQ?2|1S%#*Le0{jCE&w;zF(s>Qtx|zFYL*i z;W89?7E1NZfvh?~ue4OJ(aBuIkrnGNVau6X;q*>$l1j?r04I*Ij`db@{`3bGNZE~2 z6B|VZ2{ZiIIEt13ug#FJUgpns3z$2r%Mti_zmYvYMU^qYdO_k7?1Q2p%8pE>1pF}V zo{eEKbJUC`N7=Td*r7&mVCIeXqn7jdCz35Hb)YY*dlU0&PmiAs_wN8y^7)@Vlkie@ zSFaaaPS0$M`6G231zX!;Z%g=o-Qoj+)VSZEyK};|X~~cn+C5J)k%WsjW`yAf5^uL8 zw}Jqxn@l^qo&#)^nJ1{}&rS(NerI87P2aiE) zAi3eU zDckRYDOW8kpZ!*I4cCE|m!=h#zi^HmJ-a;}vgVi*F<6iW*@$Je#nP+sl@JPAiQs?c zCJ{wMdW8a10_#}>cQ!z2ZgLP2SNlQh5zyjop#_VO7O_uk2Cxj_|9Wy>tS8Wh@F1J! zH%~eTI}38y>$?)wY%G*hcu4(r#OP=Wd{q|5!a@zz2^{<%uuwDm?aG*98nPl1zJ88s zp7YptRIyT~wi`lDz8dmf7RsS2i17@)Z%elCTDw!8a$Kybe zVk`G`;K_|W_+-#joCm@x@Sz*d8I^=1fWJ_}U-5>&S2BzAWfmjXPI$~`cx_a3q+fwd zWC@S^W6xv(9x4e`(C*`exngT453Nzpm4X1o)Pv+ppuOlzY759j%-<0hXx1uyeQ)RG z$O{5|#WF{>1RRBUCfSWi(8Qd-IRI|DX=c!l{1iIuT_%~R=hzM9cP|Eou7DYvFaecw zkfxv{oG-dQTn}frg3ctlhY-v?Rarexnskco4UUBGmVM>Qr*DT}FNV)-in7t<3w`pJ z-W{Q>kvLX3+mLi|8^Civ?fc(wMdd^;5!34HPD zl0+Nd6My`-iNvQgqvaju417G*(;v25gQicH-Zbc@{ljWT~6IVeI|##72@oP+l_ zZSMJb^nd0h!=lyg+2*XDwRS%vt@f=*%RBkMO($1xzOY?+Vd<}PM>fkEe_brv%(k#; z`QNXWDHT`eY`%Pfa^=FW=)ZxhK4aP$W4f0=ug#%#E!rv2NaGp?cBMJ^HMduDcJBbRz5eg7 z^DRcdd^2C)CxB`XSUj=HK3lzGX9Wx>xBsZ#{$mmT=hf|F7q*YRH2ory5&(jge~yve zCMVm4Es#NI*vOC`iY^O@@>8St8dHv>oLK(V?_nJd%K9)5L+7X=g4|~Q zLjXK8SC<*r@y-8U!)#(#;fn8pFIqNz|NPa! zxIJLf!_%)WlvtnmI{$#*^RBA6-QFu5R=>S>?BBzGo^BdH+*i-ozT{Hh^2JR!zwL#U z$_w+S@Le6DJHP%FpG8X@zW@Hk`>bA7bKqmZmT<{nu@wFgwdv>3(2Hsc@zk$PU;f+I zv&Lrm!ie?H@4Q;)#JtskwfnhIo#f@&s2L9VcqFBk%+(rHjg|NwYzvqf*1|lVB>ZMbNjumai zjBL?Nh~w24@no@=NcNXEUXRi2kNfkljob6=(OnIsZo}DU)rV+F8r7KuaAk#rJi)x- z8EdaeI8%-^-Ir=9-2vCh3EbDVo$ORdE7ZXws-Xiu%q&>u7D&M(QqZu=DHYu5PH z3}0U3IU4o1()o2ni1v2<@qzoU)6^n?<3@Rgoa|?i6q2_y2MD(EXQ*H^Z2SUFa!IJ` zgomj!+oPj2i@|7il2MCOW*Jcn+DPW^NskR4SWuI24K<+2Y^57EtZ(CQBb1=xO~%3^ zQTD35;KVbknCus;IwJO+^bVe!eK+6&%Dx@^IBRD2eiQZVZ3FJv+0p=xoys!cf_Mon zxT)`p(~;|aDQ)BLmaLsdV%chEOnUrmfI9xuGpjqHcXTtS1?icp4HM4bw%?kdy~ga6vdnlYbq#rWn#o>iz}HztzXw$eNmNf2V=ic-f+>4 zTp*>p&C}x96##yfaHsXBdbWV+CY;s`rk&&|9fi8$8SL8pJ!|5Em%Po>TpD;)skV*j z6Im2>f#fU%6Lg8Dt3o@h2Cym9|0*pUy-{PmRawVXT<2^9+77erZ#>j9rtB=KXZ>r0 zC(EzTntAcBa789SoO-Kjf8MI17!Ou>cX+=ZQ- z&+KA{v`m}q<_;3ThC(%&j0$lqm;wgICRtiN?|)+-@oAq`>Tw)S>CNf0BBa#sWjvi5 z>v!p_9LdV$2@udblR=rIR8kt#;{0tHgj7-uT-~Mfl(UP4npX@bQ75pFVKI|xu*yQ( ze2=fQ_(m!uI1XW+qGSuT#$e;YvG@FAI5C6Chj(%d36q0?z#NSFUDtCL(a9~9nZS5$ zY(&{NoKvbBRSrP(R-sZbRD*|ka`FpLg^j8g_>F4e#!vX|sM?vuhM?to8O$?4md(V; zPV7>bEe88froPS)X$>vIN#^(jRYd0Ns0)S#4!zv#T<_G%PS7Cwn}w1zjGd{^?gv0( zzPC~R7lSj~+Km%Ox}yr1#-4pzt(jww>PSn@2`0wq1iUD_(ggtQ@*kJ5LYB8{D^KOh zGIj?3{6x?08`#R%0TKCm)k{?}+uQ1R$Xgtlr-bc)39nD8?SE8IL5F`JMNp*~U{mGc z+**q9s%j`3(&}7)>IuR1HMGUU?H2@Pgvd4hyL05PoNpKvlSwFj5m)a#WbBMkmz8JV zAF#K!A_Q*YmpbIfxc+KXZ#oz5y+9r4tSh(^xuxH*HB4kbmZrrGGj=WP@Njz4h&P4# z>35Q**EwBn#)oVRw%it3=cw-^5=dBy*k9w?KZ>95@!@VbJiqVN;XN6F*fY+3;@ulXUJrX#BO4DE3itZ&urWgn+!{|8KhsdkcW#T@ zSm3e^T^88K#;+#9HU?^Z$}O#BG0y|ZM+o!mboc8l_E85-Mq=QY`u>)JC;J~mq`1jC z5^UfDZCW@aNJj}G;aH^P!oYWIdU)e{mPi;gIkM(HvZwv{<=gG6V{Th+5uSG<1Ei$+ zm&vPDAnT|%G3@4~XE^pNS_xLj_Scat4(R;aj7@8%NC141hpaCh|;HZO|VV!wMk8B2*x82vD>U^-l(Oj(mFg@8H5e{0qf@BI}ZL5 zdHW%y>H(Ky0G^VX3;_lmT*2Yn-&B!-bSMsF@d1i>cjEoylfu-ocfCa? z#SEY>duWb(qj*O$qJ4jJ$5Qv7I*BO+p>mQ~cAhs;LTJl#%hNmW?coysT`i8~f=j|b+_~F$ zcjlvmI;zBU*Y%JFVm(unBT4SUZ|b$_LlLih!0ada9t}Ie7c&R!79*+@8$_6w7d$g@hEVU;AxP)74utFqfucsV) zP^$G*y>PAKdzBb)oHidZ>Yb&Yp#p&;Lld2kT3ebP`{c(ZJ> zoHb{})IPBz2HzjEnpPMzBzW_-ZEH`=cu$$^Hx#UniR^;|^4r6kV#4}lQEchtQ7D|# zZpPhB)Ju7>u&}8;a1@THY6pheC+5JRv9bwbIJ~J{VVDv!C=DBonZT7r8KhAqf+*vo z@!c^H1V=mJf5h&FSnUxbg0Lpp1didOryx9mCDhBp@3)6@V>S%Ji*zwzo-tfj`$TTc zq?Y}mS{ct1WrZkA##EQ9IUef_*4X=83Eln zbD2_mELAsg0JJh_t-CO*ge(MEkYs7&t*fVxVXisJR`nRofP&OEN|L8r2g+!ybJ1dr zxsEm?4#?QNoCMdK+ccUm8z%|1<#nn(->OBIlg^();4=`&1$&jW|4n%9D+UgV zv3y{i+K@E$@GJrT5GZk>YME*;%MOVhd*0s}4f5O~7hx77O)@d1f$juamA^clC~@+< z=Bt}}??II=%u|C!O;4RSXpZY5oKW5Ul1^S6Gy@k8wLKT zlvFP9!fv@L0k18Ef{l;YkR~Ka@FJi(seY6hD8+2o_Rer(LLTbKUZAToa$Dg@kX( zJ{pW5GC{-~)Q1gCY7uaTh$$#IBkDRyjB%)ifP7I3J|XUyllv$*ulLnqL_i+Q9yBe(5rNQrlNar++!>e^l44l6WSy`Hg|E$M}BwnHrIxt6b;Z(nesHSi0ls5kuR7 z{y;<)GA!keNQ1dD9uuCFdUw%RLA02F?}MBb*C!g= z-}B-U*@Q7cNKQpmpH0AETWBsE#c2;8k(q~Hbf3lJ$tL8$0VC4M25INXTrLNjtQihy zmYLz1OR+lMo;rF-gVPq>-gB>PTTqt#uvszbrdPE#pf*$qMJaJ&X1gRDK|eMyMLIq~ z!eqsn<@>R=RddNls7^L?mJ}4%Paz1%2x`N#vF!NAstO~w087pT$YY;|03b1+r`b+>EA`?0s)22=Ft#i8kz)NPfJ2VwEJZ#B}B$*QUZV&c&H*-l7<8aIN|X zjJ>9qi85Mkm6?ayq@^Rh)=Z2!b~2}x;ii1~F+TkT1TLAnicw!Sb%*`mt(Zju-=#}S z7WG;TpQIjt6Q`)Ze-a>@l`Us(+UBo90=Q(YhgH*S{vLBN3m+?p``4{)-4Y2Ifh@a0 zR=&oK4aGZ%5rght<;#iEB|W#Z+;e<31RmTlz3^T?Xx+3F=mz5tDxJ%Lez%8D^WsmB z`RMY2rvZ?S%B1sal6o9(^TGf>k<>o&pl7}GL7~>`xa7sfMm`PYHwgMWU)pmaYl@B` zYs1MQ=7{*?Ye{)+XMCQ7e#E*cKG-Ek5KYqgEfZK^fD*zit0AD?kCxEZo^#MEvfHmu zL@Nh8Dx@9-fJaiBr-6(H?;6G>9k2Z_vxo0Hbjv>STaUg>SV9R@$_{$U3!`k<-JI}LL< z4*3{^J;!9q^AbPKeXlfU&k>ou7@}QjJ8oGxeWUBa+|Do#u;`pDw7z}fsDP`V?LHb4 zA%dj`2 z0&~h=@zyuc<@0hY7cWckJjPvhWUG#TfAIKY4B+V~qw{Q^X$KCkw@$w~eX`DONOwqn zcmv#q^kISjo3Q-Al9ZdT)_z8r7`QxKk_Q)3so-qFAX(+T`TMEk_)f34XYSQbSaPkd zvD4}G{;aiMBumbt+w0DMU(VfLRGEH;Yt!*MdNO0|oq1s4^QjLQLjKgLZ7xR_WXIf3UD6c$kux2ibY7S>6DB58zWVhQ&ndrlBf?ZzH&vEE#+s$ zOSa7aZ;wyCOYDD7&Kn!I==?gwsa$8;t*QK)FE7^t&126=V!TH_Rw#%&-Sxx&*G#{# z)Al9P_Ud&PyVm+8wawHlcofj)O+qayboL?$EuFS`5cTJ6^2^tf>hF=lToNR4K%=yu z0njSIe<&EK3i9AkJvGmxeAM2w>OaW{Y2sITrATl#5UvU_tw zvqzhC!Da5EcDzA`Peqsp+2kA(f6#(ule*qr%%_js1=6&_Xc;b1hU*Vj!uL9Is`je=t?n# zsFq3xuFnvmQO*71hhw?}|J7N;k!*N8+8&9(n@bhJ;?SsJC2r)d@PEpv?zZt+SO`b9 z>a|Svp#9X(7^9Q<8|jxlj{JfE4}##jh~L3!QQIQnwsEqs(e`^+>Cs)Xliy_B_heY% z*I?lHnK$iMy#DoF5gi>UXdw-0K6+9@ic`)GqxH6NW{F zCQJ@x#e}4peoxNXW>WuNJtPb17z>G=JT+(>TLh+=Wk!7a_tuaNH_K(n!X4K}St(h! z{DiZ1p4-TV+)O?ue{wxTS4}(OCgLLv+t!{>WY@R4i6t)D$?ik{*toTQTs!saG)c$l zn-%f=}UhkJ}q$ay@-x#b5Co~wwtnjxwRB}?BE@o)x#!loSZoul=-B~5$!Y90D z4VfB+a3<$Z;>I||UolbkpXY9zIpcQZluuMo&)2W4Pi_i27Mt^Jr_})hV-`a= zr?1WV_KN>v72^ZEAp}LI-u{OMXm8kuU4#CPIq=Y5jlJy!Q;PoFyIZ#W@!4gM&M&A$ zv8R{gtPQ2fTI{8^$dS$7a$&VOU(Qckcd2<S=9?rqMS*MDgFb+PWqmdyo^r|mZy zdcsEzxTolMZZNqtUHAELD%y9?=V_{kHQ$}wNUrF;GkVG7r)`|wMJ6chL&!sNfmtEs zio*blfO5?x%J>$&juthBbRcm~WgS+*9qk>=wKMa=?x*D^cN$XU$?dajCG`RlQS`~w zZW+haPH`!8+SBD;ID8#iR+4_EBl_LVycqN|w&#Z530&Fk=!$NuHuUfaR|WWA+LPoj z^FQq!IjTO>O$#~;pXI$Sx85`HLzDGx!vCJFogVdL%vx{G^2_xC+P=`cF*dViCU*na z*&cwslDT`EZT4&ZRFB{HX7H__Gw%!IocG;N`76riLF%jp`yR|*u+vwd?OuX$?I_ELK5T=S~}_|$}0)$==-9v^#e^CYL?;QlAePh7EmntSfb3EjNt zI@+TbKcCEaoY!-2d>PcbGT`}dtGO2zti2wv!EeLM?C`X_pqq1EZhrd8?q%yx>4lfr z>+#b~7j6?i(q3%*{(8=$Li(HBzT$w%8^#p{eWYD1o*Bw|3}k+pH6hli>BM7Y_^+>` z&G)V>`F}Lsc{o)6|3Ch7X5Tm4*auk?V+oaI#vZC6Bq@UyWoeXTOJ^30Eki14n~_SW zhE%l9AiT5$iQl~M&ZDuO4{vEpSQe~?Meg9XJu!B5|ItRW zKcJy--=(6g2-IxKo*w>j3n&sNrR-fqD(%w*YMRgU7$7rYk<;>1%zLYUO%H76Fwoo@ z(K7wUec7Ly6S_g5zIV^?oBG%PdN2H^3j1L9jaUE1yy`!=FC-*ZV7vL>F8(Z z8$>Ny*BNv5tq8CPQ_Ndv5w*0~-zdu7Vqc`YFz&=VXPScd#1rpCaoq2qApga~E##60 zZ;B;#tp>|O@W52&gn5z}Mg2Bhot6q3#Y-4^KWq4baaOqVP>F97NGz~hYJOW1>^?Kx zvpUYIID%0R2CK_!7vSCDcIU-WHbPdUDb4isE~r z@qXpA{tHF}%zGvVbY;VVcS1jjzMn5eM&0k<#1U5Ao|7-fRfHm)-oPbmW)Av(^g3kg z|1!NriPNWalrBmqr*GqMHg|E5CZGGa*bNiRDpfjxEK%Lxf*xakY=grqhEsHE+H{Xw@tbwa+Fs@ODV9}5BP_#dTB?y8QMd6*0m8K zY5meenG?%4XWSxyVI0&zagv_3*G)@(SqUu^MvLGg?4xUp)?(S1b`}!6%`02U>CtBS z`S$K1aM$K!-2_$;i4zHPOZ7)&aHhwN>Dt7Q6KH(sg0E$%n=&Rw{iKyPWaH0Zf)Xb(Gwgb^o%5o+~Mhrg@h}pOWeR!Lc z_J;|#8swB>BmDJFVv5nx7TARVx9t=c+2gK*j7kTLo45|z#Xd2vUZ7*4Wd`Dvr9=rE z-Xs>Ghom4;oLuDf${%x^frE7_n-5Dz&5vq>&;b9uH^!g(Ra&b5zu99kp0-@>0oP{G za1aYIJ1orcR)Bb}Ke?X`+IUG}G)Up+1dQj-BpWJK{Vrc+_zXsX**Gi2vq)K;mz_di z6tl#>YeK;mnVCedu_cTSWcuwKsi?2}ZV*dAOlRmEeeen& zV1Wok#p#_{Z$#*E5fNjVr8_q?*tlB&%Ul;MY$I?NsB2)PvoNtAWI=^gy$0(T$T>d~ zCEAuH&~0GAqtl3#BdETXGZ$x8?w&{9OM(%W!^FJnx5nhLJw((em@&cv*ZsURNTER& zw>2GXdjsnAK_cta1@|$1I7-vfgUg;OFmH44`9r%h*6dbVKKeFxx9!NZ-@Ge;2DPFk zi6|Z@l;P}{iq0C2sONCb{Yy5$(n|UCHem>%NYmAQ1G#VG{->64pW-k6*u|?*EO~v2 zB&5*-b&73aPbLDtyRXR550EZ?e8%bfFn0vGs=|bdvsGVM`1;J6J31#$vtF2U^0A&A z7;s813R^742s>Jddoh4LMvik$5aD%+kddZc%%SjUb*eyJF9^Hq=v)#lm)rMpsvA@3 zXwlLD{(kvJ1%^|&Fj=#9DWt?y@??aDE21oV)`P&`GK6XUd|og&%B_yAx1A>fIANtL zrOx^$RR}$g7F>u(LE9joKzT=&!s5$v&Q~3H zyh6@`H)tT#;;cO4VgI6pLTlZ{jPfEL_uAeU=9`if!bP(dHs((Q@F>X`%rY4{m(&9u zO))`1+}@54Ak2&fqF(_EO^sN9v;_`dN1R7CQtd ziP+cz4`%4wSo|6*Mr8)lzHWvaOb`~cFn86ub5UU!56yAKR%(J0?#+9@4)5NjfPYOZ zLa@wpEX?Zp2IXveE~xN2Eivme7`JfKDD~a3R_h$82(_uM+PHylq$`CrC7Fpp(>)W0 ze_QD@eDghQLz;zA<9tKJjKSa5z3L=`CZ$PX5-@9F)@fll%QntenjYr+Vi<uCIZ+M3LEr#lqbd?1?mu-GGN!i6#jw_A&WF`uYd7vY`(863XVO+_l z-<>cVmzhM(m`H}{*C$Npq#(6{izToLnE+YB>Rb<)R0D+dQrzNjY&=B1$VK{25@Q>Y zdss*eo9yrb+onbr5iv)lBe_!RJ;3-+G}$-hQ5P4J+=J?oVxMzyQ9vhc0ymFj8Oa^_ z%$VGx#x^i863FB~z+^7VDvL3e?2r2Bq7@-Ko48h6rG8x>kn0uyOSh0{WX1n_w8y^z z=sjwCJJ_Gm49tEhZarYVPl|(p(Oh7D1K0L61C^^FZ6um3*@&y(=Ih%!d0pXM$H3G! zIz-c~+W`}04X&Js)oq%DO`z^ZqWS>q8rCEvowrtSp$?dI-)4U6UxvqsAF~H{dE3Yw z=d&Mf0wdXG;qHp*QJ@8COb^Spf{14}Qqlp7t;?*Iwqhk6_&VwDJqq$~mQ^)C>H3U` zS7VQIF*X@#V?@lw8hgAOg(n@^=r;bFhQi%<%A#RLw|RowFh+ZIJ_axRj7rcQAjJ>>i*x6jf zItRdC@jl8Dh?q{wWvYw5UX2OO!@Mj48Z|P*5hx81~0%14to!N*GIs4hm{O4GVA8`+81m%w~7QDmh zC(Q!3#l3?i{B@Q5)jMqWtG&N7S)^|a8{b~?@-#wpxb-C2s$2~?P6_F15C`GZAS|B? z&d5yF7U)jxBqtZVsL_t&52Q|*Zs8lgk{PEb88|3B?KoE=>huN~x_=df#TNQ!l`s}> zeqoB<80)*gngBqwuxZ*~7R^=rRu1U+^CMIER0dyXNSe>Yp%(?9^CT686il&%J~m-G zHevEcW;#A0rhPJuf}1nie404ssWQ{s*+z}*@{S3Eefm7^GSw;VKbTqwR%eL1>b==xKXO2)NuAAa%mY7}e+CUcP83!04Pw*H$CU;GwxJ!1Ual11RnmXrP3x2< zB9)?Z!fe|oa|dYPDhO|KG|bhm3YDfRrs;E~!5#~PcM~bEC#Z*{`ybHAsmsY>pRu{n z=!oJ7iKMBj|D|B@>#zw$|>G0_ad6 zVx_=I7P14fs!^lnc$524z@H|7Ao*;U^ljc&mU(**xt75$lv)Y^barj#pN_0N?#2T^ zTFpfajPG2*!V041TQ763akWBEx{Yj0-=M%pGhWRjQ8=zBlyt||&G>IzOuCv}qPB+^ zn3It09~!el%A0@5SglE9aU)r_Rc=8Wm5~ypgw9#^G2sTLKj!lgK`x`EvI^xB zgfKqAJ&EKF=UAS%b z_hI5OzVwH(d?do?tA$}7U#BV*#{8zegN%+U&6>lFF7xS%hmt^{d6828Fle-&1NQ7Q z+CwNGx1j4P44Ov=H^v*9hndi4IE zdVfHxh*-<3k=Q+4a_nRBI$+}l?t_o*7v@S7$UZL8?mV&*sJ$aR9}i&kCyT1S*%kM^ z`q{`R1?)$XEj%B4HtSo?Ew(A?0ANY;s~>su7}^5pv$mI*7a9v6)2vHr&Y2Kp9e}B` zr`FR@e-${6B703NnY-+u_mcF-8Fp`ttp8B0|ESTqkn7F^@}2tD8Jm#h(%)x2NngL& z#jL@$1)HzQ!TQoNZ^d@*3rJtR=F*){*m-9=7taTBtH`Q<(RRza;X=D#Bfwu8evdSJ z!Dh$go&`L0*Ghn*@khQfLR$W?wAr58zRHXb)f(<4GoC!1>A;9bO!Bxs$!e?svNLzJ ziidEsYDy;KVv>Ta_MkNBGv-c57p#4R$=Pf77`}N9qTCif{|)db-o2~rC9QW5tO)zq zgccyV2)iUb?d)krowic;JSm%IW_<%-A)G-S8+LXu^eMEO8pa|@;!5c;z&ajvFr+Go z`)^cz8D5Hb?sP1eaXca^(Mh>}ayjryppn02MQ31=_s&Z>bK4thF$_gVC<}K zx1Q)EgIgx)8=XU#Bq53uO5>(eI7>^16uSK@ZzCB9$F+Ld7~?^1MT(4Y@nG2dS#p*b z@G38iwa^20tcRk>oTz<*iMTTgFD8S!#bgBx4T<=l%5DGUK&w?Ibu0Bj?F z57fHY2I9`aW0xk6!DjgM!Z9y~!eA%~)+VH~Cd_nYpDo!4CmHI`O6$M>=*_UE>xEQ~ zXy~cdgk$K@*~B7{;6ZCPJ=^OCrc^;Mxtu9M4C;`KC zEX;ELqvI4tOsVN-nNg+1(Q_aibJ1u9)L)g=x`9s@gLI9|$bt2Gfx?`nuBntoFSRpk z7&dI4ho#|>~(*cW4DrG+l`}_<( z(~bI@M`!#m`2aH255DTv0p($n<8}|Bcs*x1veHeKwJHWW@hCbW1(U|2K7!9R3J2Ns5aR{LY_?PZ~l z&rW=Km7-_GoEyb5fTriy3P8przJ4qJY8eJYS2t@W0>vms?A1{Sg4L3R$yakV6Ojx& z1)wlaqzspS!el)h?RYbQBADmAn%$N(Xm9-98aT+>GJcdeCu{3ce5^}CahxBwM)#Vsab(OSTwqSz+=g@#Uk_k8XGr zcx(uqJByb;I<|A}PXImie&}9p$+~sz;Y|_EmICX;K93FOwjgbbTU)R1{SVJ81~(bjhqMvsMV8=|+~{ygN=`kUVU2D& z=aU0GZYS;>-*#`=&SyCN`7o3tv9mxs|`Y)H6HhzUS=Nmir47lVyISyjQg= zmgl|RpSUOQO~cl^d2f$?-*w<++JTHqQzvfx$(ug%{#yQ=8oJ`^l~a7&*K@M&5NYRF z%fELE{=Gg&D%A9lR}{XHEtz@TZ?pIJzpA@_WS`sjgH|}-vrW70`t8ZeW9Kr)E8^M( zFRE7*{djY%y6EThxqC&wKHk{vHaZyoftjRb_^|Vjt&O^9TK}rJG(5G(zYYsgV%shL z>TT4kRICHvNZXa(6n>dDF^P&}d#l;{8`cz4aPCk{f`7{2HO2WK2gE9-0A)|81J@2W zEV5Iv{OL(yFfT)ZnY^`3E~Gf=^aL$^L%UB+O739>n1r43ZjCGcHg7v?e3lG^R3=-B za!ByCWFH)Hp~Yo+?FdtFyLnxLtsQ1BBj9mH| zOcY!i_-vs+1JaH%xu*0l(@(I080!zR9QVBpJ|7Zb0ueE%^{ zxh}@4>Q6XD9;}7Ur06&DOYC*p$@uk~>sx2=+Rr^nMY<+kNw*m;-|Ozw^wx^6hMC{) zsy(}Go{L7l;j3;UtdA zR%;$oKL9Etb~E%2%m!LIv4yVd8#$FMq*cijN-lU+R40EIVZc8S^R-UTZ2^Co?QjW+ zHA&7{Ae>*$#D<9!)Lm->aFN3+pF~u%wP7PePS#SVY^m=0dJ*8SDPP$oplq~5dd#Di z4_}8FuW6$sc2Ts+FVrb3Ielp+fLQc<0*|c;Fzcd-Kofs-ksU-^uR+7#9S5~zU8qJ4 zG_#zA4}?mQKP~ukChFs;$Ac`yN06W66=2pa4?#g$_)URagV*XH*QQTE79${?F+9KI zcYixEuYXaA5*E8JKz-A_#QRp-GUMBda>bOB;q=r^mv2dx*-Zi9`QHOBqwN*z32MU| zn2f|M_gY!f~>? z-{go`FLF+ZU+c2(xLlz>59lGWBVk{eg{cvbicQJa%6M z*efY_!zgrNp~Z$q-^s3(jew=N*ujKdytIo;^|$MFu*)i2I9^EIPf?f?-q+h{_txih z-iM$Uy8zX5(L^bQjkcpUGV3jAh`2!V${Jk%ZNBNr(ZEgRXGi1e9+CFc2RKF~?TkS% z^!>XQ<855-hid1z%ZUnUmh84c%{1cOOh3+P(*qSv7i>uT(J{VVw>R*Q- zMhFP!G$QUo>6Z;bm6SzOklnZPY=ze!tn-xCZHCaC_cG*AjPlG^iNGybX-ehxIBE_- z_y-Jdc1r1GCMBcCkE6)y5V8rE|G(1!g({e-)}971wU@dS?U|Dlx|Z-V#0i#0if->| zOKe2MH$8wa%<^-bT%l7^)njN=gA3e;t7O8CQK0YsyH6{yDAzg52repflO;?}zOKT5 zP~*R-@tq1{4`-uuW9XC$KcXV{YhAZG%smFFi$lL7C3UI@X8Ylfq~z<;#9us87eLTs z5N|WV2WrAc1@R`A{7Oxlq!9i9G+hSiHiYldknc)?F%DrwMSLzH-Qzg_QYHVT5GNP} z?I83|Ch?;huV@0sS@`QJe*Q4|6Bi#>5B5QL3o-eb9Djprr7tCRs7>b}(gc_Mfk6tb z$NXgBl~O`UowiIP@f(9Yz;Jt^PM+lus_lqh)TBN&=_Wu33dUb$k?*m9Sr(z6M=(^B z4M+(CD)Kjo@RL(!@J)DA1CMu^Gl-R;xl9_H3lC@N&R5YyDp)X}1xo>y2USmoKu|F5 zF8X~N5FT8_g%Jds>tr~*d9)rKD@`i`*t2yowgyoMZRy&CiPRvFR1`^u@UB7kA$5{i z2_cNCt`0PYkEYA?3n406wk0DH6Rbgs0mKpzp2c@uJyHE76_LX-iKpsc+*Xm5r5mDw zx%2%s=BL^npqdp%%TYb zd{~GYZO_ob-%D0c>y{3!c72UQ_md88e+A3`>13_FW4J~2D3c;pHIrz6E_ z1EM)p!Z{K+_YV!e1 zycD(SltB&!zvgC64ieXqhXZ)H?Rxk{3~UXAY-WP{)Y^w2_V8wmu^M|q?P9D()d9E) zY+gYm>>L2er5JlqOV?w5JUKMV%(0e&qlVHlN`4DxjTM~EQP1Twl!(0)Tt^6vNkIfl z(Ow#zKi^=xc^C&utym80*$IeJi39-l7(!|Q&_@DLm}GMa{I}Kw*8o&i$HYUW?!w&dK++}%J;=oBBpZ7NK^7d8)^*&=L)A%DJx+tRGk{EQy3Ea8D;=qU;+G;<3Dl9S6PG}mKGc)d@d$<(1_Q01S6q#PhL=_ z#$Se(Y01Yf4&kAk(1jr6IEXr>_!NEOteVjCfYc=y_W*t;cXi`v&lII8 z9i-TkK;@f{Z*(2O6D61Szctfv#!^y8lZ ziMQ3nD;k2X)aIRv^sid`1@Hq}t(ZyXNcBFTQ)jF=4<<@EN?F^(@!F&e}vL_YetLRLGU`Z;3DR$0r z85bVd3MU(8F3hUFIoiSER5BrCz6QaP$d*bjC{nj{`BQ@^m%JgQj|qNmY5w;CG`i!ymBhcG>yh_T_ms0UFBIG};H)7zB9Ml1+v%BD$#yp{o=O^(qB_-5uYoE>1L!JSrt`$K@g|6rF$!Gj9WNYS$% zB9dF2y^l-J8K87jO_b>l&$KG^f5-(Cpt>M(KGPlrAg9$Zx6fpf9DoBz9P|HYizz~? zcGyR&7E5=H8xXW==}k59WhuU2O*rq~RMcp|4MIsZXfhp-vL(j7B4Q75;oWoKWa!{d8GT74Q3f_h8kj*l&F=CKdXoz#!0uv+Rl7x zyU!zxm@HE%2-7SA9VogEkzbh*J~D+G&AtCA#=xm*R`JUr{L!xjoR%X`iC~pvW)PJOHe?dh$Cmok!&6U`xNQ;i%R{fI{F}oK=A`3JZquCE@ z-gh}LPzQfyl0PBywRkZX!)Brv=^(fj=!asehiWuLh-rF?V5yMt?dBfb^anmjGhsEwYi+s5k zLf2C8R}Y?O=Ae$T;Nc(hyHA|Z^2N;OOAi$zP1QFxLReokuz{8DY63ITLBbKdlIsp9Ul_;dlVllYjc3|kd5-GfnZ3SSy#Y3%% zxJ~NqQ+sga<{0qs$20}*;%$Q@2F#ezOZ6gZ7^JIG!1oURt%4s}OB!R4R;Ge)rNnF8 z4`pi7Gb!!e7jkx|Z^voKtUjiMJVq-rMAxl#yu)q1uty&pP{E zkMNdt>fD&&Hx2Q93%Or`PbmR^F-Xr;Bo&J=rTIc7)AZH&*77p}armDK@?|xtI}Fg- zdTx0A9BK0)z8^55t4Kl8yadWppU6!?1$t^f zmis;uO84egg~%QxJ?*B?2i5^s z1LV(gPtyXV&o8b0vtUOLAKjx!TYRWnLW3km0Zl3h;Gki4DV%x%!Y2xnpa}#x2$kH)Lrya zXP?-~;nOEXMHPd117V+>Wks=Ol{RytDB354uUFKM`erQID(<)1E16SG@b{%nQW(}@ z3^VTTSYGFTAu)WvZ%>s5FI!>wD_^j_+VD)XnyKYB&;=d2HS?V3kXJ0C5m z*mACgSV(;xV{PXGLjnfTHPsc-EWDUDscBa0RT0F1n8mNmkv)rlpC?of|9;K8N&;>e{PnhWE?A8Um3i- z=Fgf}`7}ImEN!~2E^@Qe%~LC2 zU*FXkc^y%1TIu;?(PzUgCu>$Vzq^m?rvAM$k}OHIC^?x}`hCREiRVd6O6cj|-OnKE~Q zmmIM8fv2_Px@IWAMGiCpWkI4($7?lnF&-*4|R?$WfYdLdH zk^k>Arn>YLEo0LDFq1vBXVdk(x5rA4hW%))UdNt}8T*(&b7AX(PjC0G;2>5m&OK+V z={`mI3Fd~}*!BHI>0JKi$)rvD+a?G6cK`W)&yTPulPUQAI~ijYI8pQ=Adt#|(dIu+x3@@Z+QqW)&g?X7zm^Ab7@3Y7xz1K;?F74{^V{R7Bk4_>i9kixD z;*{9+$#7Yz0cJz0QXj-5xtJbkmRTka2%N;s&2eNVW>j*)(g|t^Cdj^DQXZ4=0>9Nx z`z9_ZgR28Dhw208jc_V_5EF*~h;J^uSW~q%JH>=ghYGakIoq@$>i_CPd_N9XZ~NV= zGov_Rw_jeI$2o4M6r-urd`VfSN@vGtNZ8*`#f5VCys}Y$_D6Yb=3!yxUuIa;{@S|j zYN371=CFvfBl}tlC+BZi6dwO*WdEhU4Nfr!(MzUA4isV_=a4eAH)eZ%e|i#gN7-P) zN94f{M;oWS9}!z(?>9Uy-00BWy(}~5{-GC$O8LUg%}(jjiD7>q`3)ro2BG4(Ckw z%V1fyg0hC#Z4A;Vv|`MF0x6#j%pW!|bjoa03dXf*6Zp_g!x@dpjoV9{t`izgN|qPw2aMM@2QbRz zd{_5L%zBl=7y)AJ>-{h0a)s0(R!Pk4oRTUc@;SVEhwWON^M5Z(#%&M_);B=ft4aD@rVXLdb==Iiy$CCk^H87{4iqu%WBh zV3hOZzedjsen6&GQw1@m^GoyeZ-3Gt3+2`M1@9Ecv-zgxuR1(I;&YUn7Y?J-Q=yLY zXEym(uu9wld&m@zV(RCmx6f!-D^Y-G86k?|lg@TzL(0I@oNBTc1E<{`f}5~JPG7l$ z95H~O$AL>07{Wft(cXppYNswM6FmrUzMchb;;_NX0QkIds05C#YXMLAV_j=vx`tNi z{JGt0@L5LMF=_>$`_C)HYnqMR5tU>%;WglPnFCK0r7S4jHQ))=+;y5KH25a9Mc#D* zeG?QzWX5WSlN87T0?gx@2S7m4kJP$0EGNSoJnr7SRzo=0}7 zgxh~7V-ppnixn9AM*$|iZ(!kRv^6?Yu~WNO;iI+}ee9H0KWz31;Ghg5{zF-N35~_`1@40uj?N^u3I`t`z451~AT}o;Oh+8OUj2`h&Zt7T?XDZxiOpY*+gT!r|Q`7_o z?A3Dxaueqq=_deN*qq$r#DhCJx@`BoswAXIKRjQe!R+u=BDbVoe)f#{(6fu(nRBUt zYBrZUe2IU_g0sYMRx=xy%_42kHkedR-!+%+RMwG2f`8;-6kUceVtvrbox?q7;ls@` z1EaneBFUZKu#C`NLzU)He$OGx&}JCt+ZmCbT8Vc^^wrm6(R0pdAYp|TVYL77~%ui6-~627b%wvYoq z9u7B9T*>J%UZnQ6Qt|Oug`Qlvu9uM1tmwa@@SSCOsD;*cPKDYKG6Qr~T+>T|ak&?= zo6(7?;;rx9Fp|=(c4)gPezp{86KCsJkIqz=WM2ldq{w_J3@3-2xq|J|V$^8o4hUTc z!3vu}o95C$A-ce;bn{9m;5~mWrDUrF?Fd0Tr%I4wSZ*phgI=1w{S;2+Y6rm(>f(ee z{yauUjtaTf3&2Zk@c=5m9%>hqX427i48hj9+|t}Gz^5LaG275^NVxAV%}{0vmWhfdY+YT-eG%BO$;^Dp=10)}FtCmI7F* zz_cE4DGYK4B{_P!mteMN(HKr}z)R2!iEVRXH){pi*&(*_{vBh2 z?c+jQaqIqD*Gmw>neatClcAH?MR zF4y(?=Oov*OI$9W>-neDJ>>fI;4#9H!t~bcuLE^U8fwoA=qm+uNrirD+40qUgD?N6 z485!wgBMz`_L{+x^h@b|!Ughy{cz!V0-}p@>%{MWc0>=^b3%>9<%dL}CFwA4yP=B& zku#(0e12$E^x(|iRu-#a*YPtarSsDdS4yWB?YZ1MNCV>-i&YD1+L?t_ceP>_6y+Z42D^s4WmaG@RFcUIulbtPxM zz)dRj^%81ZvwRijC=B>Y`hqdn;^5rNtU;j%bQOJ{iTJf(*a05LEWVd7d^Q5QNfx_t zLHA~%<(wCimg+>|AfhPctD4~tZ}ExZD@&#TkJ*SF4Q=jm!d0pjEPy|=*w;$|pKgKE z#0%V1P=s1&se)Vq7x=AH2sik!_=fc~JL<1fH64*Gi>nMFabl@_OPfJ`wulj-irEJYP6u2-^1ac~1B zd@*CO8wXCQu=QbGeH;xZ^MngIB3G8sin5ZqgO6_;@r)~8!nnMU;ynGz)>;i2MK}~< zN^@r2kecF5AV`nx?SM*T?9vJs^iNQ-Qu zw_!^1;{4a7b!{NKYl!!wB@{LYq{+Hv>0sj$76$;-6ITi>q+??}HKZ%Zne18#w}d z1!&?Xm~Yp`7!~RcinBWT^<5ZyI*iVZH^j#`6)!z(Jhpd3nap&+MvkSc;3lenD(uP$ z2$4NkZ16t*Mtymrf6^v9f!5VGB$T^6F;tXO0hDdiYP>{U;^Tr^OpE^uhi- zM8$!OG70hNbp))DGuY51oTpCU9||dcf2+X}*YFZ!Mu``4#ru%q^K#1_G*9)#@rG0J zIk(o7jE^?UM-8N&Cejum>q%pCzXLt~8t=BAFyd5)t+xbzH=AX}TlqSk>A68EU= zYnS2$G%ox13D~uQ;!8CCLW;;)+~)k@ym_h+_5S?jG`P#35u%&GeHQ$I6uEibTaqgv zVL;F3#30T!r%@<^0rz3RfPDyW7JRUG-cB6fksSIaEmUf=|0K-}m}=~lmBpi;1?_&m;Q;dXdQ7Jx#ki?g1U6wC^8 zfl^$kCzctF4u9a+48)HXYj0XT8I-O@#?#TcQe>jM!%Wj_ytHI%YAL?Hbf>B~>H`ch zh_s`i*GXY^&1kLPd}nyjmco7{&H05Uwy~T zaS)xyEKTnMD*IFChnL!6Jh)y^vOKkNBRcjj`ZRyOVMJi`T-e?aG_J@pa?) zdVrux9dD)fcxjrZmn*PO1x-{!3;KIq3IB9l+owZ<-d*MLj-^fOo>)lm5B1g@cm*Dk zE;>gXvlWB&x5iq7wP+^1KJNX6$xH3pQXcx2!Cmdz^1t%g=>r789Tc9<+)`+qFkcOt z4ZiP?jb*0KSM95i?g%lA14Y1$L^th-$$VpcC`GTE_Ux%~DyRbp?4@Z!Ccpjp6KxGT zql>T10CnZTW_I(BECcgeVH4Lg^AlFj8_XDrv@P4Q)HwBN&m3v&)P?s$FB5VrKk8~@ z7zvfHPS{E-B98aKCoNCfa;|twgp|d{PEv1SGjOu>JqyhED}@rCINx) zSTn&+nNnL!phrn%+?>dNBC=r=5g-aOla89C?WW{d>&{h5X zd;VS5?cntE@*q2Y5R<>k4xX+k3F!idwh8qI9En|UAF=AyN?+;~&LS`2V@KhNPzU>? z;RT(Tj^!|2yZQF2jOjq=`%}mMd3$58mL;$>c4Ec;w<(>Ni83twEnY|$)e zJ%I9(!1aXpUt7ICdLHs#S-O@3@HprK;tm_$%Uv5l*0mIj7c=8SiP0#3*<;i?h9Iw* zZ~66x0O`&J&~Z(GC8xwXf>l_LPGAAMARz8HDn*J+;tCQTlw<=BR$sHVWcuUe_t$+v zIj09;Qon7dpt5oUceVt?Luh;|y5L0ddNH*6p_Wk>R+XTmX;Zt%=&adf78jPMcIQH{ z6#Dn=)uriYA-7i-cEz9z=hVo=I9SFYpGzsVla%f_SzI_@NPV;_rL{8C$wF8grw%==w! zFstU)-M@d9U)jPKeL|NH9LZ=eKJoF?vxM^-G15@+1;;hrT+AWeUk9RLw!n=NZ+@;f z_@tPxQeqSy>lmSe?vQVEE8OD`AFDPzxsj9Zcvdj9d#NfRuI5^L`E1%hCkD*X6-6ls;D@cZu=~O8?-J zdCRxVHVu&Q9=r#DLr)gf%)>EYv@YOHQv=1e{iglY#5_kY6HfndKnV#$95q9ZjoMO< zl49;24m|#4pW$Ms(atA8T9sLa?n{Zqnzv;KFXWGN4^7)XYIQ5D;|i@$RTJWxrqvVN z1Fc7dMdQseog!hAx36dOP|D{fld@&lG>IE6$*jb0d2LPaM)=KP)TdW2jmh71d^$FG z|7Z+ERW2&}JvbLCgJB-qk-Z?Xzcs9syy)u;hX4Ae+&Hm_CkB48yRld!M`dlwID+!J zT(`;9$#?-NQXd8D?O$$^KB~X#8P}#tDj>t(4YPxDo7>rjEpl0a-exVu>F{IUj!472 zW*~g!Uze|a9HZtQj+uEZ^Db!3`NZ;?5JN%vuT`}~LxVsbeu41=X07>Cl|SAij?3=z zq67}_$@bZAwU+o&GSCMjnshH)q|c$Q@S4#DkxQr?5atyf9Jyz2;4H}YT2u1~D0q3b z9bW4=6{$Sv6v4c^;Gb?(Xr){7!BW@^ONREo!~g&@b*J50MqJb0J03F>7bBf@wdhdt z+>1JR&|Z9?%o?*q{>6F;Hn4peRZ}M%fIYqaq`0~w9s)4XY-Fzo8Q8`?HS+)fn+pI? zL}i5zzt`~$jl4;8ebtWE4*%~D(QySVg;d}(&`ZqqPWnI$rqAysDn4`K*;gjspu2Ot zmAyK>G=vnlqOvJnuLC^QmzfX9VC^?1(-7AmO-3Tg0}d_?x}FL~h)y4jsz-BmJmlPQ z@3T~37DcdSnrUli&(ZqF7y(M;#G!UGFV@V~%NRfQ*_$!9H#!kqMXM+`ncgmaJa0@J zY-kdeE4mb8M|I8AHgll=c|HU<;=lsD@W#V+^UwECUTCuJ8?V7TUzq#$S>0}qh>$v+t&T40L!F|nvEyUi@uEK3D4(${>L z=%#KRAO1&@;{R0L!E|6nS>TuP-;J%t@ zc96Ugrr+O>JdtI=2exqE(g%;%@c6j=F6nWpTIsFWBslUVlsd^n%>|7+`wSoY=WYMM zb!v}1zq!}kEOr1*-e)8H*RX7xu9uQr1mcGx_prUElyBE^5{gs|@^OWax4YbYXtOz0 zNcXXg|0MRlYNA&;+gDV%jJ$4~p$l!KSZw*kp|DeQWa?h0lb=fU4~J;u1!#}Y8o|mY z7`ss(h(DPnUhEi(+V}s_bngKz{r?}p&)I!z*II4Ws;zrTt^2*swn`EfA%vBXgmqPf zvn>_6EJE%psraB$2w__xgyouql_Wl4B?*1>+xL&(-`l@u@158C`Fy-g!afiUAyn$S z9;MFQ98KPb^ilw(>y_ZX)P2SIH9YRCPHxm#c_Ttdb((!|UdY&fpC`6#*00DVr5DS$ zPfCsDS|rm&yO9K3!JoO*BIB?Xn5N`QOFu9aOQTW} zJ@+5z8**Q9Dk|D=np^pgi%6S#2Afd&edpf1L3-*{=^d)(=$T`K*8iS)lv8>>ed6`H zA+Ia*AAEUw5}riT^;6T3eBDXx3P*wYXH6l0{G_hfG5in%-cyS4Vb0}5;0eL9wc`cg zLjmr7Bjy1u^ArhPFTf%e98i1JdK`C(sM5emqVn2+H%{|ceSUf(;u+zFbv*P_glg!1 z7XOrR8;H5*F<|7*u~Ljms#wF*zSc5Qtxx36}#ddq%6L8#QXf3@PC%Q z{`}&K+WSKK@fj;#E_-?Xk>vcA=QCFRx&QL&U+;72a@k7c>m^NQm(TAGc3ExyZ_i!6 z&&7SmUDnLl@M;mW|NQjc+Zz(RH@teR&T2mL&?Why835W^Upl+udtmYH>q#ifQ4J`gAH%LSNq=h{Kgfi*Z}`j``-M9R%U+K@NUxV=gr?YzNP;B z_uVu?zZc1pD=~0cg%G_|q8~L#No;t?hp8sm!}-|wHwc>nHECk=PV~7qB$;1_wWa&+ zIjI9ir~Ga^uXNwLd}M&p9;f>9MYrSA91-T9Z2Ir#?s>VUpn0&f45g_@y_@D!o}yo;&TahoBeN6c6{U5PrcpnY|FKmk>`)B zKH9(j+$*zmALX%z(Xx~{n@d@LFB(9gmN=bDJLbqOIg|Hp#_Ow(a#nig8CiS`X#e>r zH^j5X>EUox;IhYChCGflj^q48d!LRy9Itbjn-abJ$b;$Dmim9(Q-Y6Pd)Bn$$7zt5 z60y0p3*(nh*9lksic;aOlr(K`2l5mCz1Ahtsv5DyxbFXc-zw1YGO|hr_>+5kP!TBV zZ*x>oQ4e)a5uz@Eh_Rz@y`AreFeU`O2VVE6n~lK;CJmrgsEI4Rk*4-Em@HS(FJ$R9 z%n}hiT&!t!etr(qi_>%qhy4f*dhhoyOt7y|(>G9+IK+uP2%(y|k1a4wlHhloOuX#x zD7fYSXl#++zzu8Mq@7_*!GdH3Du67*u`1%>qgBS=jHRYgoZVno)o`T}=^WXA$iMN_ zhZHW_$BR}_y&t4EYjJigcS*5;53F%SI&V5ELh7b$>srOk0I}iDqbT!}k@==?E%z)@ z+8R#&H?euDypu@p*k#`%a_ig0v&lfkkIEz`dm?NP5Y*jTB06mKb+aew=C zGB7PMJi>0-KCL9jr4DEijTlr)%-+@GNXtDbg|V*X4O$yU#i*KyXKKqQ>^nYflCsy!+W&il@S?(pG>DLKS#>hfN8B3<12gm6 z$6q1;TC|4-34HRAK)lRD+vzqg%bN=qcd9dk^*Eq9?LW1Ts6B)T|5}R3;~{5KMNT@SfpsUV4KVs4c;JH<-SRRvk5`;mku-DsvN$|rE z-6W0^Z&1gP8ngK{9dL!Sa$q({ph_hcYMP76h<(D`MZy_ja5{i#1|Y#JVDs3Xoir)a z5H=hJ=)Eu5nF)EP=a{9u-o8||%R)+WQ87CKLOleC`;Bt?jXHV8HyL^sa>#DL1mIbA z#4#sfdh5|`|1D|5$L*j&&iTs5G?iJ6)S#X}=8mvSQa5H*wx{u&sDMoc?+^#!RKy2i z2p`K&Kcfm3A#5vDGq1%1E`0m8m)5qd-q~vBjwQ@vym4a~6^(H0KsXiw4#`YT1>cbl zJ2N3r139NA(u)A^P1V${)!1{Af~73mOxTW%aK@>e@({FWDK%PZBUaip3T&uQw44v( zKp&C*Q>D{0R`rdS!Kr|A1>j=4TA%+_&S>RfBWpM!nNyyWl?+oW^EDiGSdseen|EXvQ25llHO)2ndbnjHimIcJ2IBx4MBm)Ds+ng zJ+1`3lxRO?@G}@0DWK#jJv-W6T?E`@8JC6BUk`Y6%KV09{(2~O3K>9b_l{(azEaH= zse#rNrqKvFhv_}VB|pKuNb?& zw7a&-+;x0+ozx8{a~qM>E@}@PM1-a)W@cKQJ}+|}t_&$c`g*l{RUkc{z4MhLJw{{! zROE@df@uUD3C0S%6tci)NH?y4TO-)WhvPp>13OJI$%4S1!=cGC_lo7-Ou-5do-0-0 zk<;#(s&MO4hqfXEQ0)Q3>>aNJGaJ`g*UMbT5#G-reT31wW2tYaG$lsnN|$-n2)J!8 z0j6H4m4%M9bM@&fVLhsk9hmb!6Vpc9J~LJ35-so>N6dsFw?2MopTIXP*_#e{3>SIn z1U|*cnSFfJc)ME#jP6sHd=>cjAx=h0D5%pk$GfCfm=LBS4J)le3JDz`A(?Hdmlos@ zC|+(*4;(a;;M*ioB9+w?%wp{|aN$`4d~(oSy8ioZ4BN##dYfdL&0L1K(oF-I*sDIwu zNmJWY=K5)-0w%{h=j~qJ{8wVxwf=a4isJPTdrW1{d`lt1L}9f-pOWChGf_f^P1SU6 z!ttR5*3cP)JXFO>CZ|K?tmPe+zTWnu%A9$ISOKxvYAdgm=Z83%vnA&2^-Pr7T*Lv# zIn^m$m2YQM7l7atOsrhb3{su7ww~_22b*h_9J&dDBcQ=BOz4pij(yrzZhhy(8LKWQ z%PElB3eh?+)r((V2P>U1%ozm9>L|pK0;N;3)SNx!`9#?nZm&`;F%uz7f|5c-f{y1k z778i4p3iKNI9I@m9LPR1$tjK>8jqNd(RV=A+pfa4$5xPp(zoaP>>=AQS5}9e)Fe}> zf3`8#Y=WxSyPz!ce(0M92tbZ7J;rm^vzSGIbKFetJA85^-&PDdN5gi02!mLuo3$E~ zBXt{V$FxYS<*V^6?_XsN+P3O>hInfjNHW`HM_10?A;oosEecyj7Z)9RnDqP(!X^g_ zm>9GQ;t^_qX#(+#-OWSBtThWhgT3cr2SXL8TpH*Bh!gcj1Mn$a8RQ3%Azo0J5(z<} z$3Fberfxm$*27123Vc&#J~gs`&I?w4wVR=5Yef>%Og?FGCefy#gzHE2tsrScK~U-Q|5L| z=41Omk~*~Y!^}8kh~B{#Uv!$5h6vY%=sjw=jH_v1e+0R~P$|FWWcVz?4Gj{59$0!w z$f+tqq^g~W7>knN>B^I2CjeF%DCaQQ;B_?UX2CPcAE2^8HWe{*1@qY2y-K>ost3?7 zz$CY>=dc^-6HbP0fYV=qOiZy>&h3V@9G%)Gw!o}YNkd=){cqIbe6D>2r)E_scXcbRanNkiO6wvBKlv(km&&$S`7XGo-A+xZ;M?Yd zKG9Mvb>p;CqZ$Pv05R;`fdGmj(>O%nokV9pJ{b8`p;|)5)ugyfZ1dF(b7h$N)uzwl zYi`)IT;TVfT@0jtF)fBuw%OSA4chtf2dmW%VG`SCu>Nty#i`Lo@W&8aBRxRPdh_kX zro8j6v($X&Am)wJe5_KvY7^ijmKr1j_CetewtWBiA<5{QZ9LxG+RLV*_Ic#Z*J?5b zAdW-!XSSmqN12tvQ-M?wI3+{60GJsNY8*n!R|XEklN<=q*Y0)fn;Wj(KS$=?hw$vw z|8YWwcrjM~Z9h~3%#iDU?RdV`YVSCuNWCQMAs?@)4y%-!3e~pf)K<~_Y5OV3jK6l~ zNou>kWA?F=lHnfA&f0N_cd$C0j7z;oEW za6-1iuxYt<{r|Y>jv+6hEN!$sU`p*Jlz2|^1HxqWZovPo z^O=#z;9<3UoQL&lWpJP6a{k3&F>+>}z)jCr+sd}`|D^pzdWmKK)25Yyh8gX_+);ZY zSxD+o2azL|{98RPPKUH#vPqa*xkXRB! z)+N1ULoL4KR1kRZrqg5MoVixTd=pU{_XKm^Drz}itFj-J=61Rk-#w8p&4 zJ?HM;Z8j1a2RyiBnVDkPr(EMZ5cqAXOV?%4xB{%qpfX?2qJT!MAHq|4eLVoN60nTU zV}TPqY>pn$C*z%8!bLW2(8Xj=O(1M-`dQ$!3Fb;qNPIsZEY&jvz&)rjZp;D|Guz zvCG1}WBQG(dyMuLoF?RmY}XrFW*_Nl^?=yWy?wEf>ovm9hS=Fa4 z-xKQ2hGl;-gyRiq)B8OGu6C6V=3InB=Zkt;Rj2n5nI6?BkN@~+Fl^p}No67g=cf_0 z?woyO-gVS}TZ807faKhUz)kOI;#5ZSs*dWp54Jow;l6Upa$5GXWckJQWpfUSJ|sMG z_Kg47xZlh9BIs&C_C!;mg}WE+ydS-1tCNZSf-pRHwSHj8R2om9D$m&l1$E}%xHo*{ zj>V?rw7aIOGHL4$C0jm#85=XxW*y1Xbl*9&U1?BjzVWRSyEwUReT3O6`PBkA`4KO| z3@z^ez)0@n)LN!Txzt*1eN<&8S<4w4o-k)Pst@zyOm<=a=uWZ2Dn0Q7=fwQRk;R>pn)QX zQYDBt)oFc-7zg1)E0Ag}h}BQzkXV+G`vT*-FRuSRctKdzj|g!+SXNS|Ikm@{TFytC zPy1n#iWuTMr*P(Z!v5V>(wx>kj;TUE(Nqp4?!HUS1#u3-N&fDh{E7Fdrzc$RQ50+9 z5-BG(atH7ZmJ`nbzF1qe%L<|50Jb7{=AN0IK8W(N+^jfEFtn|@g;P3wgvu_id{t&s zDtDo2?x5BEj2dC}Zgvuz-Jkg7ni|D&yj;DBnK-nRuyN;(f%I!96^LYd;z5bdf$D@W zV#tdS#XXBF+YOA#s}Mv}AVytu`V3%;3$)DUV1XOg#mj1k=7hB?Cgkj98ec>H$RSp1OUW1wyqv}dh_hsQ=K*R=xE`;8FdixkUPpR^;A1=?A* z?B928z%b-kqJ#jz;c-;j5`PZ%)m=36#V(&|f;DX5(Meck->LUjXJIa=DBF6F$al>V zApyI~K*xoqG&CVezzvLV}MI7BN2xEO#<#1ernpCGvqN6Q?lEm-EwNO&}$Aq zX0FM8Qw_6Q(5^%aY!So+Hj05Oe^zIRAR-ht)@t@$2yzppcf_%-Laryp55l9ipWSAKRqBhES`4_#Pw!D386oV-aQC zKqexk-9_YqWwC77vM=QoU!*^jdJe@I@5MnKG+Lo2gB|j3;hiUGl#~yt>sM_!#LYCJ z{2bshCPhUJ^kSXsIl_-%pb{1R$d=|UJ`9Q zgEJ<_1>4HodKaDL)XwM$6&`5VQ8L16!QQ-=Ghh9;Z{@BTL7~LuIZf>-Z2^y!NGq%C zh#Fk8d-g~;{b z*~vEJBeW`trZdZCL5KP4m48Y1w#ubc zT)FavFE0D@dcgkY)$Zfdo3a{?zWI{<^UC%AHsx+x{?_Q2@8yTvH*f!T^xdmRKd(){ z*({+P)1rMRRkRc0U2ezvNn0k{Ij*`znE}1VS6Xj>)D`aCJT;J~MBe2+8Z9e4HfZPj z>t4)>^aBlf?=9E;dH|MVE3t^zo^@9repePA`pA3ltVcICT8@?11%2fC{_ZY6k$Kwf z_$L-t@U+S@>&*P)pN)5Jecp89$38*Mup#F~`+1LJkqYJP5_2vyZH?U>u z+pbw{@87vj99t4HWc^cco3wfK$n?|WAHwGcZNZoQzFoItr1snONB@a>Zf5j<4=VFv z>NME>*MkSQKM(Hl5BYiU0gKu)E69p`bZe7&Xz#r%IV1B|P3#R^HTw7?GVzex)JU`C z@OhHU-Q_d3j3BM2y4U`_^LW+N)kCW$Ob%`TP}MM{eQ;~=>zdz;`|r}Yagx7|?_?8y z9)JE@HaPL^`-!q?vK(0S@87YNAj*`8K8Gd_X`q9W1R|AEFTy63#}`2+ zhm{nC2wN>$TdBZRidyoz5h+^4RyINb80bJmrVWCvWS&uADtOr6XFn<-QhwuL4rQT$}eLQ%UlQ86N`}PB20r4|mbBwgCp!B!g@%YcFh22_dXSEGGcr42

Wz3i^ zHQ1qKjy57}VO(PwVIR$+Nx^i|GM|@nWOkgga?_7hn3~5^Mf%CAwy_dM*orKxAe#qG zHZ}_E9UAp>HxuthuvTFDXx6`!mJ0=6M*6{uDg-ON#2K>sul#+h0`p{aka^K!;|0Ra znB_VJ;jC!nh&DH>X;s{X_~Gy@R2_2T5PtA6GTCLgmLYFQgKsSc0YjoS^L5D4B5pv z<9&!`kWc*(?@Hk-hyz-3qn7qiLF!Q=UjQVL2DvhU<}n|gt|dO21}OKnq%O#Chmw>I z6U{)XP#<9CQ4cDRv0CB_m_DfVe5@dj!K5czOs*$d-xj|{qrTOU?n6d9l;~y6lwt)1 zf=MpCp@R^)6Q=!!Nh`EO`vfkd+wqYG{RHruk%1b9NXI?N&j3=CmN=*&_9}?$OT7R&6U=K|6(i(S){Il5Z6MXU`2-#Rg9?=^6DEZ%DBr_Jd zcHua`8`-6xRck{7mBbyC@qKI1d|86>PWobi(gvWT+;Q_1u3uok5G7b7!cetHIvd=f zR}w+Q4j8N)1#9%@9E8w-~Q_V4hz-v5KOBKrnn)6E1TpvTyui`2ek<-QG zVz$BNM?c54y$40)WwYj%0Hj{PP^Y8}L34kx=Y3I74l3>yeKUVqM7pn~1(o5SBt$=v zARZ+|=co|XBtkFGqBVi_xtx()h5MT}uT`RRh39;fP+Yb6zc7AZ4d{5l{1I-Fbnk??1 zSn1kdw$MTc=#mL!uI3ObVUrG?#a9U-wu7{wj4&^pb+d|9)PP9_8F@T}(%3+0OekWn znkkCkK3$G;(J~GzuzxR^REa1zB_{fJOLdB5ylm)Gv!<+{;_Td0gET&$B`-dOTtLzRiE-$-lZpI;Kgdg*9*oj`C%&El zu!hrjQx`2>YhNn#clDV6=)<@Ibsshd6Y$TJA#-4oV+-mjOpI5Kb!-Yb06|%RId>Ev zT}3&eKFtzt*T|AxSG*uz!o+ z?NY<*SBM@}1A{O!03hFoiLK=UGZtdI0GCHFTHiD;)zTv&+9ZIYtLP(2!pbUrV}_D0 zLiVyrUlqt6Hg85L$qOPyXpLQ&RKh8gAB5B@DLydqvl11VlmGq--b+E`#)SEP#YR0N zhp|Jt;lE>a{4!wm8SGL7NIW5m*ja~foq_(m4@cH6dszeqK?bGMY|v7KdD4$`)FR`Q zv-gi8i$q|Jmqo{=#q0Z-blAKUWZX2ScIt1=QldE^stX_?T8U4TZizkb$CadBE$InR z8ncjgUqMV!5WAE_dOs-uAh|RXU0MZ?mBd)d7e7~m9}rVWu~PEDeITnB6tr=eTOr?0 zw866~mO^V_3!7~9D6-0GfkEa?6%$@$YN6FT*x(4qd{ZvM74Q|Ofnw0|Gl$g&vT`JP zh1S3jVpWRbzrc7FWIo9IIL2F>$0jx*;WE+$yb zP%LS$I&`T@4+tZ04dy$3T0E>`c}y#huJE9yKrBPR!HLZ}$OBjYGVcT}2POOg{kXKh zYE;6gJg{gzk690!?*I`lfWiG9mKxkY1H}w6W8Tr<{_z-(c!&<$)7urvd|77Hp-qc{ zrFu8J0@g*>79v&aa^b?zJLFn6ZW6POw{E#%#Of1J{YLnHg&9s0o~2IzCsB5Pg1sDO zqs4TJ$c7SPkK1Rqc8xYS1cSY7m~4m{9bS8;YF53TRtPD`ya1%0{f)0xqK>dJLiqkN zV5`zBiTBavL3-*9v((OIXXaeS7XZoBJ1D}-b0v1YeP+pLfmy+e@#5Ik+(WD9{9Ntw z=k#&2R%!oCBzBliXYmW=f(JuSR?N~bfzmM5^%wN!-qpiL=`0p zA|WR_aWr$+nILi(gdDiSb>YzcOAF@GN%n1>ffvHp zz*zRj@A<7s8|X7OTyx#21^lvF=n8Ng#?wW6kY*rV|K~&r_Vyzyy7$(_Rfls-q*>jOm=9GQy1_GVOE}d8fawx^R|2D2fvIl+snZ6`%beVRd6x1^ zh}PT~HbAZQ!ukbRJd-d|;2Wn(Ue5p`s1W0(%90A18*1mY&M}XNem`4u(n))C$;INU zRST&rEzCqw?^KqqY!;numd9fa^B9(pU=L(&uVpDE1h$BAjbpBmEc&D}FVde_Aay)} zCCvgKajLe1zS$~7!S%W|iuE$>ncJ7wZZxZ_!eRgpW&j}ODbUoT_Z92TEdO0ta=mb- z!+Nnvv)$0@pX~WNg-M%%jPqO3Q*2DJvi0h<^}p?}+hLo^0i4+%9PTkeEW*hFY(#hX zKWx0=o%Q=6^aM1L{;b7edgdp+%WjVIJGu38AnyKjdgJSW6~klrL`Yl%_}E`hi8N{2 z{SjNINIIeY?p>fe|L4r{?2D&wjz|>AaqiTJ<*U!as9N@;4ZXMtD82E|y7Lf${VpA4 zzA@4M%9cL~rB?Wmh9b%;LanGa?J~YbR8$U(t$CFGPatlSh_LwGh{W&9r!|zecNp8D z4VS}5j{E$`G;5v4u=DzopA6v1>`2itIDT8PkB!~PmJEv*0YMUvl)n13M^>e5|1lM= zvy|qWGNN&>t|guDQX}Ioe-! zY98)7>a~V`pi`zUeqgs&)7ig&baqcuM)9=V@5k(UCmk~0wrw>qSfB`*0|dv&?8{F0 zr$@D_R%6R(jG5hvwC0FMQB5B2755S_gZIK>y{C=mn^u8owQ>Nr$ ztf|MIK4n_7ifHPQmYEFOEf<)jHh$H1>mkF)W2_&Ij)Gb9uoY_~Q#wvzi%510CgSd{ zJWU|7=dBbSOGk979lx-q*oa+xsih&kv2wI(Rv^l?F^qYLjXi+YcI_u~2`=2nKKC4T zbI~!nrd{Z3`2v)s6&g`s_K!SUW-6~V+0QmTvo;@_?4ph^y{Ia`W4_>6Ri}Ask+Ohw z;I<0klqP>tU>=c=+h-M8QFWhhJ^g`~AJE^LK@OUISuhVJbOCQ8`dSwvO%^^u@aSg! zHuHSFpHb)e_2vk|JOZ_zWWP80-<5th9hb_2iM^+a{l0R`A0r1_R`XEXFq3mnObRs* z-Ezaa=bEpworU6Fj?@VJR4vGPl$h4XniKrS zQ8|m!>!J*ch^>4-*WD)6g+nQ0=dsWI!Sde^XrdQlm^t3ouf(D>zng^{831< z@%?8;#F@Y0?{fnQE=KbZO7+u+eq}psq7iiEelmTzj*6lNMJ6;D`b3s%jNp-OsbRo* z`79$hz)(;Yc@EYX@urp3rW-+C2}r(2P(PNrh(+(XfhDCO!xvGHl^Z)%wuKWG0o{Bn zgBeXyOX{5B24n2fEuMzPR+$$m{>#g$#QFJK8VpTBV|H1QedELVUPi%TH!YW>3d&45 z667r?bE@f~k#W9^$ZIS{5f;Sui>Yyc`enqBbHe7^I2CloGH1iXtd5{Rx_q8@A^h20y|V8OEzGK-g_5=9r!SfMv#o*d$8^6N&XEkpjCcQ2 zJBwx45>{xCI$h7XYg9z?+4mEk;w`{6wa{i+ZEBU=VTBI27Rho475B|kfW-W0n`f#@ zvnEly^@sxFS)Yh^71LO98yUF~Bxfg|j2lxF1huKQr{X#c^(Fi3ttv`-QMlQVF5f4U z!VRGA!9|I&mFGaRLqfY5U~@{<*@%o#%FLpu7XI}Kq~*U>u`-kS7waQz7EwXdX!mw2 zL!I{?4acW3jqcS~K-$hl_;{qT22=A1srAvQ>n{t)n^2V890cV>tJjGSbFwxBNv)<7 zo^XFZmXf0nSpaAptOZ>ZYKlFy%QOfg>tp=LI1%HH>1+}^YVPO61%-BvRiw>wnfc=Ku-Ww>`9hMw<#OS^z#V!xZ;dWKFTGnwcoZrRi%W<{>UWSJ=7CgDLPKM^lQ(8 zI(4G0bnyPY5VX1~Ft z_D)-NBOvOO;Spy+bmwWnTG`Hw6=H?Px|8YkNXu9`AelDPAafwLcd#E8)harf-GQ_+ zglj)HKJ~YiUkXfp-5%#@m>(1k;v`Ij@BCaT9nDMs^D`gC#9#d#&wJB zMmV?wSzl-s*$wwNv{ftG4-+k4pz?kxl9*3r>-uw0`?ptJF)CM6W5o@1?myEV0{I!? zhun%zPb5t^pCe9aF4|1aOxv7?`;c?chb@2JR{REGSfk7DPQ07JTK?W>>w^ZnIL76{ zjmz6DG45kq7dOv!bWKNZSkZgqMVq}re%49xw6<^GriMky4XbS0R(h{I*z$Nk`3J)N z28r=$e>I^g!g)NwU^|L#|2JuuFqH#!B#?=;v|sw}_v(Y2ZEQECm3lvMjHzn9YyOL0 zx+U+uRe4;eU+vqny)LT*b1H3YEuo^>tb*a(^1IQG#`J}^0#{l8{uP_jDm^`LZtu|4 z6_L&Jp7iaCxOAAaVtDAN(dk{TaOT6T%Na$UFi1@1P>g@4?+Q_4Z8X{gXJQ{75*QAL zQvDy;zTg&JDxPty#~&FFpd#IaEoP4UKR)>=GvfEi$Kv>9PlNx;O!BAD(FUe9p9a4( zmVNo0dFQIZ=@%_0-;9(E_y2y{vWd>%Z(koXy|euBF>=T8?qeGkn47;^hI2pfsoNFQ z)6Sr1)u*rP3KwoW(!1r3S7hDsPwQX%Ke~URd6&=mFN^m6dXP}CrH%35R})!o_u9+y z!=KJ?-dg7WmPhteek5(?{`~WnH9FSzXXdv8-}o-}TlG^pW03nTVMFuU);m9ghqlQQ z3>N--@$;re^p1Z6H*EIGxee~n9rQe=b$yqkHl8OgTo;z*(^Gk8)sA$}IeCQt5+m=@ z{%$UOU_RimIjz8IW+L;!!(#0jK14dd=}oiSUf8+;@r0X{uNQK_oz-_1EaT( zta|yo2cMDMFlXz?5Ynp`teT*Hl#nbUW&0mE{J47k#`KqkuGimT=TEB5|LQUd`9U60 ziAtNlqw=!0K?k?Q8QQ(g!iGmiW}9I&yi4VX_)-uW0jR$g}J!?(A;9vANTewY&c z{(ac*8%uVK)|LJDb=&kGJrgr|cmCh8qtjEv^Kbor`FO|h^1&|`*9G_VTV;RGb)A@e z9NLR+*!lGFyXo(HzBHX7ot{-8U2HFPPnHF=%2wT#g-puy z8>sny`C)PS&dK?amHAPv`KFUe7DJL*NvMWF6a9KEL1yqK2)jd{BJ?uxr{NsB7c2ti zWPZd{0NgX9n0Z53|8b0~9Gk;2_v>a|9LKEL!kbqo${9}ll96>aiD9S2*lB#ywFp%W z)>RQwy@0>8lX@|q&S(i?KP%EAu_rPNSNCIgN1EiY%>zb@I8y1>@* z;{~viX`{hd)YI&03YHEc(y4~YVV*miseNefHn>3g9!tyKxkH5t6{3=8=(|Nm3*h3d zji?0(F7`GmOl$Q#5)F$$Ne9Y>3r>4O7GYelGbc>M4ddp(p@!HjSjKL`25_0JMMkkg zWUw|#$d0{YXx*1%r!=$=+eZu3GkjcUZ$%91*9?ClGF-efPEisF(|)!hL=q+hVemIci>(OI`)uHB0m4tWZ7nX z#oR{f+~I`z^^)lqo`@tlCP0L>6Jso>*ux2!kp2+!M$F4Pqpz#=?{V0iC8mFjOf1Hc zbIZ-%8ku;~BaWTHZj@ubt~L%y!lY26B?=_E2D7E{aCQ+b!HZ`rCG8P2&K))uiLlmG zlNQsX8-&=y9Fx++TQazZQz6KLO3%@N&vUUA{np!+m~|rKOyIC_Cd14geXFU`X98uR zq&J_zbfjUoiZDtJerqG$OaY$pvbaaXT0nv4;h-Fh-2vq$V(!0xl0WT*kOTzd-F?wuAqd{D?h0Mj}B znFTS--%B^w{47A1MOV1}WthJ*mILNbYpHfgMnP@*YfpdX%X9)tYQND9=^jJ2c@pze#1 zjOTK`DD}Uq&UOLhPx`l_!{ql$@{%X)xUt%3Dw-iD-W1p-#Ucf^f0;BD#$v!pjE4Z1}aer?U5F2698()8;{TE-w+x9o!9 zLW{A}7DKeAjM%2XXK8bl6^!dNtU34Po@R6NiLi7^rM0_BH7LGU|DJsycFSxti!j4ELbO97c7Dv|{o$ArEq1*y z`qE*H9faQunQ?^1UHzD|LhJ%hzf%La53ygDogI zjf|pUTRpDSreXGeG6{f;0yN+r5o#S9xdy;*h(Uf6m>pa}3xx{w95;LC%B`e#`#4Md5rk1o@ z%olN2!anL8L~|U+G>9Zt?g59C9 z*EAwqq58pk%n@bq7a8`}_?+DbPwC;)iwOmK6)SWcS-*QugV#}tSJ*8t8}?W>qz236 zSxXPtwy`Nmi3Xp=V6RWvN<;GW%UEXt9(VjcDZrib5i%Hu&|}od$wq^B&?2bq?9g>P zI-A&{A^(6K2E^nmYAl6KrYIK1d?5E~$Z;AZRX9U%8Tm;|5^|kB3(rnc(P}ow?vnF$ z<^EIEz-1vA51@~DkQr>SS8mHtV!ailnZ~%Q2r^aS6t@u6yTRWf)T9RZ%?2q7BH9q7 zDoHkGZiDJ*B_t#$$W$1;(V8N5SwxV>98P5$G*YO#MMyh}$#b#`6!hN#H@o(rckZj4 zG~NiATO@T!;KC(pyA{WNEH)DOHrSv^+m@1iR{dA))>-AVe80~OHZt95#iOVoS5Nt*5;X9`GGnv%X}I#ikq2jJTd74`01OAhxW@2KC(wcQ7^xh)NfS3+ z49cSt7*QLI=ad`gKsG#y**YcS+o=<`o?&ejxcS{^b2&aqfeq6U4oR@dR7A_4*&GG9 zPl#w>;{*CZGcD#qu&ue~THQ?SIt3UXi>$ZUd$At#s~u}ECOn&CLDDz0K~(VN8#$UA z^8w6u;3kj@#GeJ&8Z_bu;K{v7)Pb%-l$Ee*#@1V_iVa#|@+&b>@4BkEu04_D5hdC) zhhusX7tX!b1tOlBTa%Beykej@6=v^Ol!haFZG zJ4^uJjNj;Bt$_hdGlUF0r_dio?P0LNH^?B@gW@fxoIPtW{e??uQIc}Tgft!cx58-* zc2+73)=Jmn97}~g#`;lRS3&@4s z7a)?b-+he?Ig^cj^c)evMZFuf$V3J(khB-0?n(Q*6ffgi-}<*Sd;LsA7;Q%wr6B)X z(AV-85zyRFO-6=!di@>iYI({v`i$1!s#iK_eZo%p%=hG8nHQ+H)4z>0juB}=?@^^j zD5TM|ben&p_9J{Xi2BlW{=*;-;6jkdOCeayunB5xM?T1+h9$ZmutP4T`k7jE`@v7S zIzQ_701EBP<0*^(qJpY3+!?pL*XL866cNt?a83ZyL--AbsPX&#+(e6)JoS6mZ4m(@ zcgenzn{Rk%5WeD_?@O2NdLQt5`NMy*GJ?L38OpvU8M$LdF%cUpBX6wneYtzRmXX6| zdM$?bYOz-;gtk1iM?Yi!C?*Ned$-^bIW|c_uVr67+^BMV0@`U#p4B@vlXIR)3^%1^ zI5rVhJjA*vdtcUJ{T1N!b~(1D-zNRdT)WI43CmF%G?+D1gTDRvfUQRa=@@SjrYo1Q z{TtR&LFkG>|MTaExi%zA#|n^0Z@dOmfZhxU%hnN6lwbqEYd(&5)b*}WfNMg@jT(I0 zd6A9QNTNZP`S%_0_Ky1|xUf2gE_EFNy$ z{lU5n>$fTD*ls~>$h|Doczal z$@1N0j zeOuk8xA)x`J3a+KD#iuTry(a@mWoiuj?9T1Rh`;R{2DY4^j_rS+0cx$eiG2JfChyu zW{)P+;7i%u#?5!ZntKN9ihAjFo3HOx7`vMfzU>ay=>#^RH97o{;6wmHwaa5#qixSl z$4Sa&UVDw){p+Fuzrg9*dmHKuaU&-Xp8!`844aYGx16Vd_q)jRbvB_;&^ZLoe0-QP zi?s>*HcL0J0ueElG)yf(ZO0|K4|Z|aCOxb6anWj*i1zv_Afl(6lM zU=jXkr{>-t`#c+uMT>-p$z%*QE&~k^0UT5x0bbe3{p8ct%8NUBaH!g80f|o&?Jh!$qbcty&~1eptE- z86p?Biic)nna?X;t-ZE++?{BEy>@R%vg0fXMf7G*=bDvx4cGr#&+{5s9bT|)hhSxt zR`^~a=@xeE@{->PTfJZ~=UVo={Oy3TQ{mZHuRlc`%`U2}vsm_sQ+@n)kiw!b@@`6J8oX+pZTUTi#TBXZx3e zqfj=seYIsm8rD~_sM?jMC)CgD2GqH__Wq!@NVdT{x7zio%Gc!K{kS})^jxt< zO0rN1wkKCqrHbsrE&q+9SXUIy%V&F_`|)`JY7=r;b%r%W$Bjc#_$3QI?u^`Z(t%kUQ;@gd{7CFvyRJHPL?vQ-5>T+o8jPM>Nof>`AL&{? zK}BsJJU%r)bXt0^T*Bn)R+flPf&S0`$m4iz-&SU0~G+;nfJ~KX$pY_|OH5+V-$hj+F?khErTarp_T# zTid(r|Bt=zfNE;%*4;Zhm6C)WdgzfN0R#eqgkEd`LFtAfBA^CD1Vr6QXf_B)Q&EGU z0=8fc)=)(3K~dqT7(hK>4T_32Z+krFFX#T}{`Zde-gxhg@y6KfvG!VX&H2r>*Gj@F z-`xMp3`tI0NuPIYoDk<`yD-kI!`J9u6WW6OqJ1>)wUt958eHCF?K}W#PcqR3UoVkZ zG#{Nh5#K_AHdT7~Eski(0YCUmoYxj00b|X%xeOsHS71na__J->&2tkX6wLW0VXUFYTF&ojH1n zpWBUAV!=#gf5|KyrR$oGAeh7&tkAhE#@~JJtvYnO>+^FHUFBTlAkDeNwaCdM&AO7> zb{6+TI|D_cui9uQDKye+M@>n)p!@|O?bay8<%t>E8YohNv71(Z@2uRF0lMOX6-v-1 zf##$@YIm-mq^3ur>^E}lZZB((n;eI{RoI=b}!{;^H& z4H@bJV}o|f1+yFOshx4ITWBHlknQM~#w(w0INxl?Ttn)!IH_4!ZK&VfakW21sy(kC z-K}+YZgz5sWb3;gNBmAPG z_fcZ8;uX04!9(z(>-h&y9+teBc{Yc~y=XRhdw$5wU%Go%cdeRX^G>wZgM4Pq)j`dd zOVSHS5gfshRh}=wSJ6Z-!!&APbao|PXS~2{`1Zd1XQ%BF{O29Wzk7K7>I+)hFCr8r z?g(eZ`@@%)JdeFN{J@We-6TkUnPAm=fAD*b_;TFqgvFhxfeNVWdfc0}zpj1!X;zay z+IyUg>NJ1)-E7{v2Ey%gHJU46#>GIR<`9ARot7gwhUd`R%KN)r+rJM{ZIj3&LQPdcbyy-jR=OeZBKFTKoSeJnjX&0~@Ca6aGk&n=sF_Qu&A z-_Le7eC9tJ@v!grq4&?6C3U|t$_MaWHZMC5H+Jqbb3f+mTQ2iq)OQW<@OAy_DNa^jZkh zv#0T&=JR-ic-KhYvyFV%fj@)Na4!qWsfWx;F-}a~tu)>YI^Vw+%Jty4_ThDCP$nAf zMB|5XAUrp4bslO*6ck=*l>QQ$M&s^o;is9~u4@aJB?fuzeEZZMH9@ZvS)Vxt=44E- zzk)wFj`!*Xxv@v)5rUj@(VlqFk;R`6ptZr6pl=i!;penxA6JHPfR6>O4%Z<9?AUWKV)%PB7F~*?$q@Fy;zOmpY|0*t z40Tge#d->5$|2|<0}?pKUa3^P$i934#7tp6C!p4(0=84Ao{SQNe+|RJP00?E4s5XQBm-P{oqUU>_;6?LK-?&3Wsc!pFrSO|ZN5!=8HXpN8;MM23saU}CmqlrO z-g3^Kg(?a0f9c*c^PKh)KX(fiFtgj!u&(sLCYv5TTUQ}vxxvALZYbZIUyzCHFD(iH z3e|IU8eaffK~To^*2WHgM?M`nj!4VpZ;#^2=45$DKo5J`r#M`qw&g-Z0cZ0QirlFizg-53GoKkxN0nmj8I!>X9LUcxW zozv8{5c7~~6O3aif75vFW(VY7RKSr@t4f0+sr;GL+GDz5`}H?ka3B(S=b6gd^Ckqp zPc+bN8aS@yAxCKj(aLz|Xj2LpLz!(^$3^#EB@J+O88B{uOX>~5A*54NFriMluR$e6 zhFzYDd{GqTK;Eo)VPjOUAHArCraWF0=m5`N+^ZdfolVLDZ*gV)VPm0YI@p0n8EXj>B z=CMZu$J)b7d>0@jlbi04OKeRWOsRW2r+B@Tl2j4Al3JY1=1ngJmUBRQ18UV2_Bq04 z*8(15DX^xrwvQWuwHyG*hlj}yO8}}h3?K}eON0PMTH+zaB#a%OY|XrC5_^H<;&V9RYL&+AwGqGF!)70gYOO@I5|Kx6>6Al40GwgSENY(5nvU z?AzgyV`0YM5nd2a-|E}QK zPLgXb|Ijao59v{AC;OfT^VKAyjuem~;rq>nB6>v?ES`Wi=Lah>qwINi(Mq7$NCYSg zQAM*#vPx0A;7E1%l1=+~>@jM7De7`E3Rk!H2P5%RaTeJjj{{$Mg3S{Gj-Rm{8t*3~ zu_>}JA_Bg&40=jR9;UiWxu}BPVoF!h*)1ijjasi!mP(ec+{4pM^&dO1F7&0;E&6?F|9=P zEq{ft9*yJbh`Fmr%q@Z{c0}iyBV*!Rb(kgPUhS* zcML^o&+E~-P!qVTl}jTue%|3WR2z(^Z)&mD9Rq@Lc_w9iRWf>7r0y&k;4c7H4Fe23 zmqACF*wu!UqP5S*JF%p{Sd zK=@rCLJrM66{ITQ&%Rm6Os$0tuf}hNHkCrH-dxAjC5s-tBzA05Km0TXgAj#-y zW5Tg)o`d`5e90cIypjy5leiSOk~t&kD8jc0FzZTI^@7#{Q$j0fGiPcxRKk&Aqmj^> z$OPsX_By)o@T*^LNKpl{VnXj6LNr{^Jog7<@Dw&C2vEtwDN7qNnirN`R*XNEZ9U8^ zSuO^m5fWj^Le4 z0-^lX>V0|Zo;v0ek*#0Tui8=xt$d#=Sf6+Rb-%p3yh3v<-i%tQh4+Z*Y)ab{GRsZ- zxo5>&Ik*7gPYVJma>$C#)rOb!Th_4eKx>{0em$~6SG*Fe0f&j@qBaZ=wY7KI5?<+padUH{TYU|r{y8 zk|Y;$pc5VCF)LeFn(PP{adWND3<8LNE=~VNR_!ABI}eUdnBCpcIXZWb9Zb{gxzJZ0 z8S(n^Gw{=Q^RoO~%t&5NP|9l_fbI=JsI#w*D?oIw0c|F57-!f=z~<4h`HWrL<`t`c#ge=j=89ziCtO_yaQ2%&bd0L+>NH?*50eMvshZlzz59^O4bqf zZ)Ja6KV+oLfMW+#6I0i+r?AI&ZAy>8sc{^>fM7KaO^_6=r~`JaFImBOp2r5)v48|B zbqND-+_dS42R4r?T<#x*mX_e;s-k@e>n{r5+n6aqSr0_-d4(sVhd!zGPjJ0n%AkHD*> z=`t41$h~pK)!*oTS%AZH1-5k`20d0ZDl%)A7B{Xh`R`;JOelMZ*0=sqEcfaV4PYdcf(iqH}#0zV1A;-bSV-4z-+QzVi88wyO&SCf0tP z)q=^a#N}z-ocHQY;LuKG)U8YW^}mqJ#Y+}kJDpUiVdQ2xHmm-7DJW-uvvDIIe!veO zAG%qsZq&vlE_GY(Uh`FI-u(;=&)3pqzp;^3*nE=NwDAWwv@EHt5SY@E`&Qn!S~)3< z2P>@NE~qV<(0?-}FL&g9q-z^R?*CqT_qD(F)l=Zjp0YBOpv$}blKpVZCfb_4Egobw zm%$7p`ZOcX0TV_`(sqTQ(5Gi_OyBt@`1J+BZp=EQck$cryV82|?*$O2!e_{AxlNFk z>;v+{dzui^mfAW`9pd@vx{!MhMWZd~{P|045Dw~qyLfe}UJz5y<0b@83tPbKHD!*7 zS&%~+#b3H8j0v^5FXdJR7}9$E1$rkMe~gGT%X%CIq8ZGy9&{A<;pJU3_z@C_M1w^6 z;dqDe40`RO+qI?M+h^YkH)BDFiRm{G(s=&D_t_5L!)HkN@SK^XMh{*2t!QkOi0X+2yJ{2HyjvG=zYc_c66VG@GF6)5sY#bpH#@4kNA^+^9jgP&-(%%b!+n)yxqn!(}x7L;@D6{{eAVH8GZ$zfk6n>z1IlIKLnVU%~ zIdGKA87R)`1(j%sts50=Zf0*WR0k9-1acV1awsLmJ$xjGLj!XY}{t~>BC59SD9z0{J-sUlO++L`zgQvvRDB%F!I{rXbDMXaJlKu#`T{QXy)9NJ-o z%b_`Z+-^8|=hiFstyl0v>s$}@Zxv%B=5kuQvs;sXbM>W*bb8&eZM)H>zTZS$UmPx9 z4I_Advh5kIN7qufw@%*SV-M~?`s(c$ntAnSQq^o$W6)1FSu@HZyL%9$9GP+ngsS-1 zwNQBm{WR~Ld7y=SGjv+r=EUbi=DQDCL|vU$4!Je+J?W^^doA?p4`xK6ZX-JHxXbxF zJ?K0)jy~hQyO{tw?R{i^z4dynBS>ccjjS@!&iONVj8f>|AIUabY90dY^?^ zWXS$l=eSts#Bt4`5`lp(N!)<)!D{#fIN0{q&?x1er6}B6S=qtj}CtsY~P^egSJKZ0#G`X#{{W-jV!*vtxYadx8#y@3n4!&wPvn-9& zu{jDS@mknCPs+0v#_<*^s%FKwg~*;(S~GD~+mel1;HLZ-0uT4uc28pisZ34L{ zHSdgh+RQuKV@^hlev`gWh);7)oJfcnubL2korrWcw$wJ>-5y~^ia+KOg|yd1LZWVY z#MvDQ+uI}36(=VsE=)>!#Jhx{j|oWGEY9koa%bJ3Q}ax;5gSplh=4ZAP{=(l;p7RE-TL=c@gye=S5kYJ+CtaD4Y zbq6T(DJzE4370&d@HKITERXK^Y(K{>9!{FwbIzU7zEHzz>Pq{xa4+wmdTEUp-rw_y z&;071iHzZc!=2hLmo)9W;?aegi~6RoO1&_%+b#PPpgW%!*AibPot){X?v6SXy*U5d&8x=`={*&9#e`uF~MESoy?Fk4V%l`oHPiX(@(W35et%mp?gZjhszqQ5x zTmpF~l7FpX85$ls&R;eDv($6uUx@t`?tjYP8So!rFEjtwcK@m3amWOZ{Qp#lLIQ-* z6v*G-E&!nZE&ZnifWrSN=U+Vjb@hKC{10~j50?JTe+uC7_lEdy0Rm8ze& z$^T9X4fgua4N-u_SG7Y1se^vBHJ{kU(%?;82(SOPx(tnKu^`Fa7VZXnw>-V3d3@QZWPmcA$>J->7 z=tnR33&aRW82m5vh5uUH{iFYX4gJ5S>)$uu|9yJ?zyJUDy_5g_{Rn`8Dd;!H|MdPv z&|eQ=^p64gV`Rdi^xual6jb;_{`X7(A_KlZA1N3_%0>zm4i2`9BlL{ioRP zkH4wNR8~)Kc$i?{Q zFS*|zVP+88Ph6aiIKwPVXZ~m}B=O_^+l9F5H&wC>5fEY1#aQUay*PcUBu!L|2&6Y7 z_d@zl*c^!UhuuF=0nk5z`~xjsf!2}z(Mb40r(BF`-3Jt6>9_i`{;uV3ui|$n>4-n# z;tir7a1q-Z#KpgLgu?VGTsra{&P1mpuzprYAWq?a;P{FAcb(|;-+BZhmi`-PKT+{- zo*)`ZHvI8ck@SyJqzKW^EKFJ^}ym z<~av^5V1e?g@0M`-^nIXJm;Mii{;U)B6(9OzWc_LUQw#N{_UEKi3F6-PuZH7cL)P;Lb+7NQ#4rm%Qzv5E-P# z;yX$TNAhJn=@6q#F8Fp<1~t~-Cp&iPdSBHGTNQs0DFQQk((EPRkN zzUWmb>YEq-`ZiEEl4m90dWe?zJOedLwYLQ!k*)zzB#f5BBQL?jOL;gp7heaw%ZCZM za8_h7m{^=DFUlx|lX|h7UhMs3+zL4`UB+KARLI2hz3|Xh3XCMm@cvuz{NHn?ppJq< za11})0}2nqI0Epkc9VTws9!6zQyX|m^1M9GvpD9)(pM#DWc7t}gMcqt&iYhigp0xB zw)P?f7{yBfwA~b+F4!EM+J?uMWZ^;EI_&gjAxEsh;OSdANN{P%4KE1_i92ni1fwaq zOE3>v9w|QULk3FX$8feVuo7RAD=X0hO0pu0rZb8;ksD1Blv8{H1z9`Cb%}6-{U|$R zMTmymX^e~R1qVA&i+hWg<4cmq@Tm+qhEhV1p{C>c(}mdSQq%@1N(I2?35xB7SUVYt zUWc`l&0q6p(-4qWTL#6csb}}9vNlc;Aq`xb%lkhqhG@px6hSpgi z;d}K(EX_N32RYth47p0_@{^rwQQvC0FVK*Kyj1B|aMYGujvLou3=7?BYO!=a&{i+y5{<6l&k@;~+~O~@3Sa$F(;B$zQJ3t27Y#x^Q-w6nMB9r7FROt@o?BZZ`|36ZT=(qUAhm#s-7litsPwn4YI^;d2&2xWEOe zr#$Te>wBcsh1vp`#8h6o?pf;lqV0zlRvpI00VT?^lI2F_D~b#CCD;scC{a>;2GqD} z4d$G*AxVm}KLwNOk}}3_7Z2)%lTiz3__?QUcO>!F5AEJYR@wd(^FWTNpMq?~fC@g^ ztr~*cqX1*fghh@Hh>IX(kux67YUXAQ6rmgO> z54dTHK?)tz$n`Kv{fch~b=62y)u5KBO22u%2UT5{u0>7#>dE4c`G6z`?zj6^W=v!( zfr-fHp8zzBtfY!Tm3113Jx`&B5uIcv;P!kZYe)~6u|VYbrG-=x?Iwtv{ynmcwHV^{ z)RK`}x@59ZYC(8DPhWCQU&On5iedulVh{=O4Tf^{r6k<}*7fwS`;n%RD-C6CtEe31y5jMG$tN_R2`B(tLx2OcK%PL! zvuDrVym_NgC`3_+xO84!R`&jt@tw=#&#fwMDJ{HEP$n)ayUtyDqVF7W|63G=)cN4n?5 z*cK!*Hf6YMShKKVo&SmK(9>%d?kV&Y@ncSGUV5-B@No6AD}rUh-8HB7IJWN1JGpP( z*~Y^Dotf7fp^Jw+uC|z6YRPXuS|dG5x_7u>=)n5+QwKXwuDp4QdH2-j>t~zppR<*A zCXAjdyDw>$T`GEZ+4<3xLod4bKE4t6@OI&=Yv;yqFPOOJKYm~I`r*6aRx1f<-Q=!lbyUUD{J2Jbulm;QBsl$mt|ILO%w>qYO0d!cJNwT3yz)Lbn)W0 z3q429-V)xp(ca%LzWlKDmtT5DM$h(-AAk9>?Y+G0!-ok=d$a2O#XFCdH?(gZd~>Uy zs*t~9^Ol3V4|bk?`eib5apKbL^-agyDo>r;bxxAgF}Uo~3&Ev<)mO*)H%IEPKPtWR zvh4Az?!gBK9=+Z*`tHooc;}P1H^$$cfBEkAM}>j=VmIG80m1Pz!_rfi!wIWlYrZ&@ zyOUWg3g3Ffe#@m5oA)s*yCP~%&E9z}cb6z?PnWxJU~c0bPNSr9@1gwGOGyXsH}2aX zacn5>#Jv^b5z(2RCh6M?cODMr`+jQi3<*Az+Z?)|?eYyI^nSC9PD)0B#KX|h1 z<8|@iFQ=Y9Isf!wx9shWH;U(q0;84uY3WJt*`9Fl|7vg_lci3JRT5T z`Sr-~$5z?ovB&Su+>_lHeBXQT_3$`e0o-j$@D&L=cq#n`vAHa2SBc6UT47Mz-bfBD!NXzcEY?^%l9T%{RCTI<6VKr)pm!3>taM1Q_anbY1*1hL9{GWxoVlIk@Bbmwjzrjis-mm2FQZ*d49eVEqw zcmsOlm@&-gy%ezCQ)K`m(FJN+>r!S|1dx*EB#&%ZR*<`g>`~fKtYOyb9YA6T8+x{` zRcQ|-X&N;=)}8%3Gnxg~|!VV2=*_dV|i25E(U~I4dPD zOm9A|qEOxBX$yK)Fs=K5W{5nmQp4*j9lhJnJiogDp>pz53uIj_*6>Si?NXbX!|~J9 z3gV#E)Pq=a)RxK2K=RJEiK1QgOB7258jJm!)xr{sx!9%ZCf?iw+wM7akXYoxX_&nM znce93j0Ezr4}S0Y=-Fe=exCl#nSPkv^PUu9I*q_fB#nVp-3z@~EO3uDeQlwJMi7%k zJhI$B4WqRD!7Fu*a5`D-+jsh%V*@pjD(BOh&K}YG5G3qgI1_K?jrmnizqOt0&n2lH z)0?r}!An~8>+ZE>6P&bJk~6FZ!=+VLalua*sSRtNZ|n*To|GThUF>7-M@plIj$N6! zQNN2kOL}SPHQ#CAWR`I3@E513 zVO3(_wo8<_RIVjg=@GR@yShoi^(RI5w^@)EZn5mbajrLXYrCd`#pc;vbA9xtbGXS5 zKXnL-4hI!iV03+COq4-DYa35F@kD2jT5_yOiC*}o*PZ(kMS@F)79+At+Q|i6jLMQG zu<%*-8t^0KViFjrR$1By>e}Y26>Fsm$XK0KNga^3X6FioOg{tIsO5MJ?8X^pa4@T^9(;H@{MVmLpyb=n$a^vukmp(Usp;la;zH;^{+424az=M#4tfcO5)OP za|*Kyy7b3|fP316YK&-;>g*s`_gY^$VGE?KmE@}_+kVoMtSjTqysjco1OGODjExJK@FAV$$81OoH24TXcw88g*>+FaXaAXCj`yagVU zONbNR#7r_+b+Wn0?tNllq-?gTN^bz;b7tW(ftleHr_;SP(W8I zsZS(WZ+4XCksbqIhlcr!b`p0hy_;`x$XhA*xkmmujnEeVZ2REe4xxOKW#wVQn)!s5Xe@3}p8AmQp|?1L5FD&}IJ z!zZ4ebx3Upj+S<4OId|;df{vv5u|;Sj3HGGE2RNE+>zR1yGYmBwlY8`R>E~B`(gBH zcDVSDT$_3mY&hLsi`G==nryP6y>Irik154E0`?+o$2M{rnblall}apRt2b%$x2Yun zp7e!~CfuUIWaBWo5)}%EZ%k+6)LEcfWKelFdsMr&&|mfZ1hBHOG5S~5WzrQ9?@?BR ziusriK`gj9tEB~pkTT|s2B6esfO3?SN6Qx#*|E6_mB`YV_owLYuFC=l7UU$~+iWn? zmPr}O#Z5n#IVYJF;xdnoGaRIYQBNwUWAa9ghi$}_Koa3aY7><0OPb`+b#54n0b&X8EB)jO_M{Ti?}4K=NGjfK4aMX=zL zjNlV?D(4(7#ok8$=64a{nBnuJHB{*REVVlQ`2Bvhdbd$&YtXF;+&sOtWBY&{$pa6e zQZtc;kmv4?tE zFnP*r@f0t&jk-xon!wBhc?#{C(#H<4@MK09q;yOM+tf0N6ZGxcBhn)4SQ8bT5`lPz zYUV^Cb=!1e81!fd5$-~pA6o)8s)38)g!>q5Xq&~u>cw;_&Qyq@1K1@ZY@iHv$^r)n zF|J6Y76Cej42s^Pa%AlH5!hyb^cR2JHw<@Z0Yc@5qqEp1T$BOesxLKH&B59-G07~{ zN~FW|#_4Kv7gKTBNmvJY0?s6neZa|ik*USy{IrOy9%sNG0BUao)}vL;7$AX}BdCf;Y02=tJna$-6e z^AKA+gk7O2S9N5Wey~)Q!z$x25->!0QbK&go<1f5zQf8-$eELHvY$ZJQ9>M%q1EZc z0gmc-SoIX3avC6wh=>_-NGu_WCBPX@r5b@WEKu32lQmx<$y|7u88nJ^maTRXVnZ#E zuRv^UZKhZU^3g!A4P$zf(J7qO^h;F-t<-gw*fMg&qD49J zze0}pnS^BIvuT0J{e{l=7X~hamS4fnk)ynqg~jWj5&oZ-p$h`v=k%OrhEP}K-bQ=4 z)+{Mu(ifSbJJ2asRVF&wnbT^&nWN{?bH1T#zEz=nyce$glslIb7Q%*XI#-cq?6}u~ z{+^th!d{iL#<49pY_5cPCls=Jhn^!q&tT^U$a1XiF1*&au<{dnE@!nv1bS~Eq-O3s zSG288H^O>NH7x~N90AQLT6=LRv{bSxbOJpet`AcXTv)YO^OFSyS?CSkE`9ekE!yTL z$gN{0F$n^!rv!x>DAdKTSDJtpQT@||E@z&iGqpWTVGNaxSxZHw%HtDY%vu<=w$THb z&U2NyEMsG1di+B~F$xDidkN++*<~pk>nVgoSQy6<&k!JOQRKH^s?eqS5)=)@-;Us;`=EPNf;oWVz#AM{m}m}W zq0B^23TATl#sVlqHaMwXHwGzaA&L$4AOl_kKWP<8e~@K}TGya05STB#Wo#}r^9 z1F$LsOFrGk!~h%aH5$iBpv}iq*vPylJ3f()b>(2z&{0v(>%^w$#!dPtQi#NAowtSQyALWspdD+9{v@~zqk0UZn>bc?sxv%BTc6hIsn_;%8Pb8?P5o1}S% z{zL%O`>3?$*tOpF84>{B*dW+WeAl76PoU=~A|7LbS9*yAw(^t^{o2y{g-mctl#cBq zsRGI>bo5ykaR5-AB!dr-*%lFy29xeGLvHr_WRKO&rrN6wl1Q-XsK|lDQC8bb99O`C z)Dy%hIzqXK?g!8YT+vFK4CPKc(Ew z^k}c~mW28@)eE$B;A)d4YuR_Icj@mq zy>XjzcvcaiU9fX!^yxD;YqlFLVJ2K&bzt+V6#dn8QKoLP?P2tsF}Iv$>|H?${z9*k zT?2!e@g=JcrH2#z*=#iOfSl(>8L3Cvb@Vd(iA z=Bi^-0d%Iw)n){9G9UYX=Q_3sXXn1b@;T#+!@lnpII@bX&s!u?7nC5A*f@wz_y%Mdc z5j35HsRXd!t^6;%+Y?+bjAmiuIGB$I?4CF=XVWYj`Q4tPuG`K<%OpFzx(wL9^HSee z4erIZeWXu;AVO}CB083H4%(Il%@aa;GmNe2;5-3VgBd(24VtHrke&n6Kc5L1V-eMv zy3>wr&@IJIMxnBWt+iop7CX2Ub!@U6o&FZ{0gR1fVHxB-se%{=(?l4wnZZJZ%?Oys zB8`iP>M)ulBA%54ceAEFXCGIRlDq_>=h6&GA@P(1U;&sQ0q~L8;wmSFA}c3!P=^lI zSc6vqP#uN{)WCXc@VS)eB|@u6T9ie~X9e@7iIkVkFc!o5^ElAB^g6JONDv%m3Ir+u z`jUu4lBe2i2ZrT0Z+VbZIN&@f@wtGw`4})NZSHwXytX3%6hP@}(?=@SRejv|ub;f1vtxt6cT{-jV*ek;| zYs11AI=k6-?rMZGFYd&y{B~FO{=!*WtdvKmayG3>eNS7e>%v*Hdp-xf`tV5~GRANb z?O34JoR-Y#A8P~$Lw>bc?R#Y)T>nkJTE;%OysbJ}kBmt1^#F_>L^> zVKj-0w2lNG$sE=q0=_6rsBD^;Tzw%BPX9pGL+%QLxDVyPwTkKeF2a6a!#c=(Bn2 zpBa6>?zj8tCDW&KO`dvwAD%P)sj=d9Iq8CoJTykSX{0h8GY_tt^U{f@(~$vNVb1HdH4F~%0|O`hsO7>cwTdJ+`pE&dAF==)(g>*=evfm zKJAI;tk6wEFI-z>-9xf7LobdEJ>OgQ;^@uiTXw(PM;sOtU)`Kl-${IacIaid(fDw1 zcHPYvcZSAVR*biNe|ht}EJYrW*q-^9OpdsEA9$(zr+DW8nqe7o=l z*zgAQlA{*O(JSA`*UPbs<&ziW@7Eg>?cWqN$UjV1Q}cQ=KXigKiV5GVt+QdmD05=N z#DwPjx0Z|F(l)%cHZ}~D0~a`G>)mf16&K%rT;DI$m#sQDjOkv_(eJ}f)>G57Ju^@@+MF|rCcRk(Pn zc*9ibo~cb2r?%Xh3f~|PQJYZR^Hwqa{p<~&YK$jL%0Gd|le7)So^L)Gubh~+XQFb? zr@ppNM6b8?<)4o{{wz{_K4$#ogx8l-i@%6Bd^xk{%ekZE@>{!SgHiOp-Ooe6&M?`> zY%thv@>Q$jYpwU!_F?C%UKIV|ulWhzdiH$#<>I%8ipSrE6yIdV-(~iXG$$@-cWC;{ zP#pSIdZpQH9yM{K%Y3hTpxmWV3+o}m&WpV^7bJV$6on>P&LtV74%89MEN^r=_~`8q z?KIn>>zpw_>rmUTveSY7A-O*njjb!UN)Yrl?=KB>nU^ooZOlxn+l;oT3B3dLP@L0z zc1JZfCG?nbB3sAn`mTgJ&x|3SXjcm~Xw}>LI*+10c7x&FCFZE5%)Kj&I9VK=yKP^z z%d*?z@V(|{kAyj{rg!!4r>QmhZSn~BNq$|?88YDKu&NL*SntPSBtTCBp6F{>9yD=G zm=-J`4Y$snc_yvOL22$z?XCBgrk^0~`a1A%{$<5hGxNBGbr})3R2MJnuZ(NYdY7CG zv{-{IM4s+jln~obFr+yzZ!>pX2!6 zo>6$s=lo~K8yl_WENCQLVmuM}@catsTdm$k+ik?hWn~5$9jxr^HrF&$n?_EUF?S<= zZTM}=+OXKSS8#UM@r~wzU8RA}MqynTn+xPo70QW$#4Sdrq@6{MD+WgR?v6V)Z>681 zf<$Nbfazw3P4sP>kHccqvZ4!skFuSF(S`9zXjW|7%s5H*Eww)}#cOpi{f62~c~WII z+a;2`K*i$(S5Fp3RRDx&^BV>)u_}Lj7DWu82R;T(<-itu|~)N533eAYHZ<)rV?XMBAlpL zW-(Q`&|TF5E)Htlejjk3sQc$b(_#R*v5y{S`J{OtxdH=V{X z-L=e`!>s3Yb7gp~bD>n4)Y5J&#Ns-m(YY#g_ccQ8@fp7J5ADx(vvjPAG*fbnd_UXH z>VkO0?)C*fG7n=!P2_@|QB-d$DnlXB#--Q<8aUN;Q)c zs57{$9sVeD?Vtk&N-F9TMWauUHP=GL;>^sB*vsLE1t%r4{lu|QR;{52UHw;tH9 zOR$PX&R?6+X2Y2{eAb~{3pjAg$Mt(@8PxI5p+0z%{!&xgw0^p&su^!!7CyHqw-c-9 z^f`X3JiWg;;87jkr*!Q)dBa+lCst!$j6X@HLrN$zkBy!7(%x)xr}5XZ)jEm}d%QPA z@Ku8IeiX@4^4i8D7swP6<;ueKXNKd83#GFZcWJnsJY)SW@X_zpJ(enki=#VnUbiDf z#dZ^mXKO>9--8>lkM0`wpQ1M56O@mnN2wiS70-Z8(0iG_ zI#LnJPUPsmi0P}x7Ln;NmzqT7;$KTEjo4gtQly4XFMQdCe5WjW3?%ddkoy>0IhEpV z93;0ODTKp<1hRMibpghJe$d)=3^o_ht+$?oq4S4$lx`u{_X86N!O?+TXi`i`mMFbU z3vQ>4pwxsN1Y4O#Y-;z>Z_`ZhsBm6UhE%$~g^R=}ysAc)@GcuPV8lBm1WOTw@?hdr z#2v(NxR5}X;Z(>t&w&Y*oO50Jx5z!H3t;*3Y>40`FLswSR|F3ODhzK(d4wIF(~zN( z#10DNgiWL4x#(D+tCmg1+E;;C25?oU@N6OBw-XOIZgKelbzb5c2U?qL`O^ zwPQH838+E*<>>-=Pe!4W`>*5@^z<(^O8q=wl8TyTL@&(8`=Z{knV#ly)y)3UMCC|8 z{TcXR^}t-pJV{Tq4NydQnFx}aW85iB5|-*sA&Dd?@y;zL?PS=Gvr!-Afu@tg^9e3= zQ$Al%xG?h;0oh2vUDSQvfYXPw*JN`^FB2>dg%UKh8&nI(P4C+>H$Gb1`K?gEUq3f@ zBeB2%bF%ZixrYe>v!b~q{Y1BEHp@ZtI#-qB=l!Lc6aP>#TdKB}T%=PxAkiKf^4(WI zN~K2@JWTHkP&(9LZ#*EW+HPE0Yx~S_vuJHF!v|-dQK(l}-r+XSmza+*zS^9?<~~c@ z?ATOjmo;elz-eTYeLdRg1lY|dcB*ZeddeTMC!hl=%L&Ub*zJ*8a#xI1-H|04ys*5r z^tHqJ&(&yQI1*_oTkSxd=^Xc9EoH-Tp7Oj)#oI;C=ju=RP^tvDh5|Nmb99&L7zbi# zY7q-;dD>-Hi)^>F*a=2J??hPLa+jaUVzRfvv(n;}d8=bP^>Qe9b!?m-PC1epO+PJx zkiAXHbcB?mO)}dJU@E8ibXnbai<%kRK?s#I6}s?TG)W8-SAFF%mUr@0r6AUznIFKC z<7Y0X+8T>}bR(GN}vC=z_L) zlaNM2dI&wCt018odP2tviim)cASxm%C@LUg3cU-csFVazvAhb1iVYG#Z~4LzMD69=_+B%h#e2Dgfo0x)>LmHcJ1Hu-v_0Uc5VP6s#-0#mSN*E%lXj ze@?b_o%(T6Y_EyQ_k=7vM+=ZS_)ip;b&X5i}0A1%pGCEIN|lg z1o3VzYJIZMY$|IDH+zc|mDtTlMQ5kTGvNuSwH4eHe$|=8M%+syQbaxG`6b5^81kD) zmk)PcWvM$Z(q~FizKCdFnR-jb#Quig&ujj!wIsw@%42geBeg$ljZ;%Z`X@xjVJ4v1 zo<@an_Sw!l8z(zE(vrlc>_*nzcKAzsM=9tiRoI8sq}Vp;;-F%OUd&!wFuY#v812PM zu7`aSWqZ|R^|cfFa-7e1P+l5wB20cL><#n6i!F)-_IqTgFA zje3uKd{hIAU|Hzb-e{?@thu~7Lp@+aYtHk;xmpFqp`n`o;b!zuL=W&xdm`ZSY3NduFWOEWmUn!P0oXpQD zvl@WUW6v*5E~^D4p~LqNl~JQuG_;1pK0SWk(y8t9vcg#p8Wa{!#sEwRf1=MP9oQt|2_IH?}y z&BPNEVcGyZGY59WzFxz&6!WTupsB7c~8Ya-4 zgJA4&aYmTPU7l@AJ5sLNxq-{wTt==X4h)ZCd%-m z-u{yvW{(?*mmZ^B`%J2sk1Cuq!#n+YM2-daNBHgR$V(WgyoT;7*asiW_>Or!Y*nzO z`H$Nx%vOEcg3&iMT6w?0vG(A;M@`m?8-6Fk*6wcL-Diu#>VqO1*bYW%XGr0LHAnZ| zHquuZs!*#}<;SKG*DRofHI`WqNK6w%)@-W1CHRa~7xY}XDy42=x3~s+R1>tAJ}%x} z5O9iFZe3w&KaU#qSWM^@+sZ*=H{APCj&1`oPzC!(T<4T{((XCT$`Tt8l;a}6l3HN4 zVb>NC;dVrcdhx+>S9F;@3BK+2Gfv|n6V)LO2NtN~y46hNsG_l%k~53_4-e)fUxHaF z!PIhpV!hakEwSkqE|OD-EikQ$jP!d#7fUVkdD=Qk;VS1GSvmZ~lbnjCk!ci_zaOLVZScexX@_Fe2F+ z8;~8rMeX5cS>}k%0V&o{*H{|q;~*^{rv(Y;4%VwOmwE0B|b>wZ26o zMF_)mTQlWQro5m&lk8N>Wsh!WC(1L^yOB(JkVQ%M?rx35sqBHiOhij|dp;&ritIg> zy-Vo1Z%S##srB$(O*-yOe`zn42kXc1?1Gy4okpB*JT8^Ttui7U>scow%DeqiR?EoG#imnSWcxi7}h}Ap)7-sU=#JUgD z-W+AH+RY5Z!`mY7HEcK}&P-(=SGEV@x^NwjnPP3lcP)GJ z#D1Xh&o!gK{obhpzs+e+&*p@p5--~_&K}pv&tT`}TVhX%uNCB!$#&*8Qf} zlFd6osS@pKhh?ia>L-Xc*kN3P;YA-sq71k;18raNwwgVzJ`-+p^ z>ZQ%22`Az6w3*}L*et4zDzxInK?83lDz2V_v$cM1+nJMZ0X=Z(uCio^D<2e^5n;L0 z;O&5l8-I?xgVGfWBxWTdV?c~y+B;SVQOQER0QisooCB@%t78YZne|koHD$f;t1(*{ zO3dXCpo8VOVUT3={H=G*3YYTAnxf&R$yUZfu~F{@mI?({#a(5=ps@ObTXN;;fFL1H zVSD~qPVUG0t-mVI8P#tU^fG>w0od`XcR`-$dY~s=m>LEfWwiAld!ITEmABk_M2dR2 zr$C38Wz_Ou5E6F#Mt%4S_7Vlk!DR}!GVtw=j;v&c2n(*(<=;qQlc%#`easY#4G z8&7i^2|8ro-KB-nk}NN>xnksp`4@ssqI;wabop{*d+E0e`QU*V@{U5Id5KobzZN!V znsc5kIPgXH=x6iO-HTu(jg&5n=a&t^o$9A-lI7Z6PT8g6*j-zwyR;KcEWx)r2fqor zzJ(Zr)?8g3@wc-L->xB(ylj%ZJ(F5EFeDrJ?3d(!APEY*Fia8K<}7|pY&yMhmyXsO zo;#U2ZWl<{?H)O5w$^Sx>Bs5?IoHB|SZ(>SdJ%d}@$S&59}dYnYukRTeOMa)aQFH< zyQ4nu=BsxL2z#Q9_G}>R@twbCqtVZB&z}){k8b?DJEC~cn%BGIPVc@Z|6$)v-O=%L z>)t){o%dX;*t1!^XP3?1B+tFOSNwu%lIgdc*j@Z9sb+7=#l5L*d-&knbT>MUT zO_hAmD5caUrOY#>+-7>yis|x)dk)*=6m6ca@K3phPC0gUy712Qu>;cwYo@DzrBoAA zWk#vBHZ!4%QtMWvo{UO8wIlWPfzZ-%mO zcG+YgK+|o_!RGAzOHunQZA(zjzt8_ly?$}ujkbL^AMU&LdSC13eg2Ciq1~wh!*AC% zOkG|J<{5UwZ1}lH(UP`XI?EJeUkQ{WPtf{A zb5CQ?ssypibia^G;h)AT-Of^>3)qZhd- z5bh0S%J+C)7kI)afXLcX=SCYD%OyIl%y0|d;1hSpVYzv8g|aiZsL8t)ca-OoTV#~@ zTzWfr81%q=6mnBaKHbUKJ-O#^f|t!Ygkzq!x;^N6(!|J}B~@~%<+R=7JMh5srRU8H zj~RU)8r~Is@zp}?au=6JOH{9m5jR5f%kOL#1z;zprVCaI42mp$#>`5#XW#L>2^Xqk&n z2$6f{OKo=Kw))NuzU%kADO_H?Z$(+`O53_7X;!NbW+2jaiuLf^#n(UF3-4AZA+WehpQ5J70 z>ImLgU^|Zyr)+?n+s@#wrR2IzBeHd#CpxD+# za^pLCf}36!dT#@O#I2DA!}Jk_2X6;c_m5GC#*vBJFUEfdV071mq%34gxy%P;nk4;4 zb6rdWZ$)2WeHJ;XRERtsb-uAb#7o8WA+IoPOdxMz3pzp^le!UjLG>dpHqoH514HR4 z5l14pY#*%gRUsV?xp!(U_elphLF2W9_d{4y^S5O#z9B*RE_tFO<&=on;HIZtCPu}}MX&XHia7(l8wLn*OxvPGt;~bMh2NEzIuR5rL9yFVw>RkWVX%qo zX)wXoavLhic6R()$$JQIoczkCdP=?Tk^Rpgjz*_%ZNJ4*S6k%3nlcvU*@=1KAH@ z-v=%Mo^ex4)hjfDIlRa%hEqU_8`ER2w-}+c1ud1M;P+ldd%0Y8p6`qCXaGAh_;4f3 zVT@D#Bgz1q=g8)v!`kyO2SQA8-T?Et$*@q}Q|;&3BFPF4EXYk&tCbgk@niJqRuE5; zwI&4meb|ZtVx}oWAYi4mue#pHHcJW;8^m?2;`h@iZ>30!Qbx9mX(qdG(_#y|VZ=qU zw_Z}O&$=%lzKfa35Ti2Jv5XHgp0a8j6dB=Xf;-$|>WpY0-(Zr5)_Lk>HYW7m63~v+ zd+TSB^d&ldvOBa~iQqnM^fN$=;Z}6Br&LquXop7_MU2n<#l6KF#(H&LC^LdR8r6QQ zz%pvzREKH2-BQCZrsS>7y5^<=oH~GfRGf6e^bCj$8yD;QJkhXH$~E{6IaODL8XVJq zS6EKNv`Z5*A#V(US|T=mN<4#>3-IpsaLrSGV)q7a&^op^qvUYbrg=#8Iy7zZpWJ3f zBugu99HtusMIQRB3JD971Xqxek-3XC!x{?y324yB2$N|d=Xq%d@DI8x$Bc!3RqWw z@aL8!Nn-yUQ}>!7}0oKVu}DI;f)oc z>;W&QF<~b5gK`Z=)xb=)#aMp_Q8c>3%KwcZ1aYr8Ub!0g99R%N6r3F^0)T zUyWg6&B~!rN`^N{dg!864hxr;E7InlM5JeR;>>xuI$_MbVxR!W8Rv$YNY@6Z#MBC= z%Nbe@kJ$YPB;OL=acydw_e{MZYN3tcpFO&>3G z_Y@k-A!fDceTT2H^hVTkk<^=Ds8%vu=tDM@P2DxYzS$C{bgx?i-xy7EW$8U}5wWE`gP^qy41 zv70~c8GJ-DnwxE%AjdM5;>tX8ls$U^ZcFSI?F(`ZyJRNe&S#8bzt_%}i&0lc_(H_? zMy<&6qXwhIAP)JLFp-mkr^Id#s4W?t=#JKZz`a8%P0YYVZqOgF%ywHUS=ex&z*LZY z6lAny!W8Zv#7JudsrqtjeNa%PAO~@s5O}@j4u=NxRyQDRHSpm{0ipqPXI4;5xh@q( zJFGO+tL5YjZ%%xN1GNK;@wVl|w>R*dk{RoS4EPfk~GW(L`ufd z8h4&n1!(FH9{(Z7t_=!7)M_7%2;ui>JQ1#SRLCYutDkcTjPNx93e6-U9vx1I^)RTeQv50%QTrUx*l_S)TRWN*v z^yOULPT^B1&3M86{rwo-5(8ZyKwGNtKa+>_(KeOm>E`4=w#_8#^Daqa7Dq?wGjIF6 z;w`58Xh)XOOP(5>=NkOs(kprBLC_n+LrE3B&Z`J93R1)1^6Ad&VG3FZs1IypBnZ(V zB3fl0(hbJ=4$xviRDzIICql+36bRoEw8HO}I&~j5Ch(ZjY(5a{ zp9<2;LHd}!cKp-*QX#z?WW-anCPn@N1O0I5!0aw&0O?=~sA@MpFbAxmEqgN8^%x?!&PuHTRb&hVS#iKQj zuRd`OqmXUvJzV&_SiY9n{iuVhM@c@ETOUnU5upK#xu!UJHSt(oV&?HfN3X9V-r$uI zt@KXq?!1xShq~Nr5NAqD?3P`A-u&c6`(Wq(#aRLG(Sa@$$7N6L5AyEbFAL@?oMag_ zR5 z`|rv*Wsma~yV%~=Zt>|~oKFvEcfVY@IR5eDuzo|K`O-=SDVDP6Hg{RezuFbny85D? zQtGnEZMxkb74-&N<-#x5ggRsW9wK4qNggIvj*L{q6n+fgdetYJ$N0!^B`6qt#r<}0 zjk|g!A&r*B)d<_xy=HfgZo)Bwsyp3Fi1h(z_vIhn3n_nuIF17Uho%Scu!Gxmq4HXT z#Wwo9kA_?gE_Z)JmP@3>Nlr_4@O#mv@DT7Yy`sI_{T8S5wp<=$#3SjEr?vaHx%DG- z^?je-eHs(XLv_E~kd~#3@N@3(AT@KH%O&hyKTmzRV}=B@QsB$s-?WPTfhos2Nf=I) zr#OYE8_i5^s&l+pzi$avlFK*#^k&AoksMiB)@ZOu4D`t6@TK z7euy(@EPfkP{UsSN4HUGj2dq+LO$FilLJC`m_Xj=tcVL+k7p~BMoXg<~A-%<% z^Il()9ki6#p%H&O#`k^op&U08y@cN4_?J3vC)z6%6oBWWg;|qZg~DV;9`YS9p593e`Uk!G#j1i4tK0JxB0F7$PMFN@%&AXT+<6J7cqiw5y%PA< zM0~t$`_YB&(G_Ul1*?fcJ-T7;3L9;n+ix*^(>v%~A6+XWm{w)RlPJ@1H zo@@xQ>yL%v<1U0Q^>y3p8|mLgk?-Erd1$3_H?`Ndv~#uF)|H_KBJ(N{Me0MXP^@L> zKc`u0L6xn)M|vg}zQeBfuQPq%ynB^2gB-uReVO{Oc80=78`Od9(8{FX<{eQ+;FrG4 zxO;b^p`vEmmI~V|`}Ow-etGL`A#WWGqQ+klxB8}6fn@aV9T&62(cRG}a>c2BVeL-O zr(f(a5{03E?w`G~N0k?ppJ&IwY;etrgI`V3S0wx|SFc8?JEJYLs8(5#>YQ@rhtDZK!h4RbaT*_|^G&hI;xfGX6Vk`P z5z2WUm6`1J@W%>-ih@~&{;^lMphc9=5v%uRojAT$LnG4$m$RVd0Gwl=sLI*v>oaqe z$n0wisI3AyF@>D_el4bXEyXulgugkGed?Ax3r^-Li|l$nZ4 z>T^ovOXr%hlp6K58kCC+?h;D4E;G3jVmzEG7i1p4>T+ryLMpjav16vH!}-iJ=bG0p|9nn`{vND* zdHv*XmwyP?&v&H$W8~U&$vNbB>^{Ve3n+cW4)vh#>y7KzN8!K{tUwnPz>a*W1#m@4Zt}Ux_ zIx2o&fA_ofV(J1P{95yy?IwTP7v1debnEoL*}1~)_L`fwqujbS-|X6v)@ko{=YU(c zjhha4S$7Sn!v|^c!r|1kf3M!W*XGvK_J`Dv*7NM<{nu^}wz}Pa_vgX4n-A4)Yk&T^ zU&dSTN1~_i-e=+7cbo@U-g@l1e}UVre$QKvR@{0L<^FW@t*1NOpY6T%_)guk?EL^B z9Js-IbmW#^$^PeX;fuZdU+&ufINN=BkV22Ty5HjOs~zqyPq@GSb?dd-U5RQ{5v*xp#F5sC zsC1yYed3}=-^Es-;noNLbfB{p==?je=+?y5*$KFi9uK_o^qQwkA3MkUUCGSyw>zlIHw<|mh`)9{)C{!z2-{pJ0$@Y97 z)jH#!{`*ARbH69`&4sX8_=K1lBZciqCVyYC7S1&k8zoFd7TX z10D&0T-+jh2wb|MJBRtI+#zPI0xc*U3 z@)s&=3-^fAHg>mX|K{bcR?(*tKHM%ke)o#CZ5|PNvfcdRBgJX-Fua5Rd>0ZRu-A8& zd}%rva%|=L=0PZ3HB*Zn{OtP1YO7gvXk%m=6Mx6^};D)}LcPT%s{B`ev5C zW>aK52oDz8Mg~cX#uh(^*^08xoS=Fm&>fiz`t{J+RzJfC*~vG7se*~cpxjv-7x*9( zU-iL@>Ns-7n`{sCwrd0eoLaJteCm_49WYRX#=iwuBa_8hpN9i4iLplE&8WG;k?w?l{tEGa3GhOnkY50 z2;nm`Q)hKXGBzwMk%_%t3BAPF^yeBz$rltT?D|s*e@1xhH9v+$>X)t~rR1Hm0I;D4 zZTU0D%ToBOJ(hIsblfgWL#ySPc{+m5#?0#Uu|_lfPq{_v@axb6QQ-hTZI|LwU*^ZJd)1Y&WHZrr$l z?c@@DBCw{vo|p5|j#4`zJ~d^PYdjcGi#o9{p*?G0mh1&ZZY-^}%YD(!D>NeF|Q23vpM}lvkG>oh*w_Suw+X?V1LQM>_E3$Fv6k{%qD_c z9{|sG?O`jm7`Q}HMrbmlPHn1xeJciMw|wOWP47XrHy8{Xh(3t^8PJP&x=o6MySCOJ{LOE*s=x zJd(YRXAluiOBMLw2Hx?w-nw}MQm4&aAp#~ZIMBm22;#QGpo%Xr4uByjL67hRFwG4> zw?c`ko(3202E6I_Es^l!8-GzZ-NIdd_tgOt$Ve8;#5@4KWoRr-Q+{j8#q+aS`Z3zC>1KWW$kUeGGSfHCgP zIF1*gOWG_d0Gnf*KJp$UJ-H22;6rYm-I5q2d4 zfIj)Cs9Va#U*pY7?IYM!UZ8E~v@_=0VnopILWK#2fXihW)5eShoFdZ(AnOyr6s>w% ztzCWz?U>9%o{@LpRZNpbX-v|Z1aD6dVpb3Wz%3l$dqb~g2WNofT1F0>sgT&jbA?Y! zd=?ltfZiM>UdsiBoDq7jOt(n(CuaUMHa1u5^)hkG(d~SVS|4+#H@TNt?La9_i1bkg z;Yx%W%h?i?w9$xA0w7G42uJz`?Xh|dr=-L}=aq2!#evMYUWI@EbR*3qz(=>4pJUA= zh(@t5g#gSf&FF8yD-oP{?bJ{*$aghV?!KNu$$ESyS3%2mWV?uk~bO zL89DP_v-i^?jBLmx)(5jR^jU~Xa?+akknA1@-Zc(f3V3NhA>N{%Z#XD7kldjNpZ*X zXreH>K@xQ%`L=UqaIuK3rm{LqrX43eh%xbS`kNr6ZQr9WsW&Cs-7SFob^)OPK5Edy z&03VK(A%uD?3dzC*#HI7%k^3D)yhj^`D_|95yr(PNPn&L#-_@5b}5U5CY} zpTO(+0-Or2**>{vP_Ef&0pt|mE^q-MpG+6&xG^|lnf-HmGmE#sGJya6JN||fO zSZcXMk|5LqeD1&J-$QxO)p8 z0G;E5c@G$k$njxPf;s5Q%;_$Y>n2MnfLt?y|9DS3oKXi?%FV*J5vTz9y!VrE8LFO7 zTg-)%K?0UZP7i)lM7J1auNu z27D~A=M8MTNV~!NTe67R!!y8|0P%0CIzj7OpiyVh|d`XhA(y+Nkiw*}lJ zknQ0yr!Fu{dGuBpJ=qqJN*Rl_jN*B8hPlojg&tX2UCJ}MIZRJtfu$mP4v%qDpwkT+ z&iLv;rPjZ)=m{e2RF;m9{rF9VbD4~8NpN1B%dAkMj@ABjIWb!coQXVlV?c>%m)>~6 z#m6#%V?yMnsb6PHU{NLU$9AwG*<3a9%C2LkYYJW8g$iAOMn_|#`H2nepF5eT2p&6L z7?12gwVsVHn)2S#5IBhhD&*7ZfjUgdeAKK0eWfHJp1E`Ok`LvCDPk18b_u?gZCq7+ zVa6OSmV1482y_2_2^)>Pwiw&eg=Zuzo1~mA<>DvJ&*lmLGK28>v5RW^iGq@gklk2f zjLMWRL*_TdY5wh!dYgRZBgL4b4+Buf=y5*)-4FP)(bBtqm;IQ>q^K7{5AS|dcNbhk zI(=n9LRR_3gdlXOe4AY4WzRdxej!Q@(__GbawBBNbOp<8B zPWevej0pW+sM!bo3nz5tc4|7A;#cy>*Wuj=Irv~{)?y*9iAkH0VMB0)Sr$G^@T`e@ zf4+fBrCE)jnt@>$fa>OJ`hb8wUn@tBV*~<~a?;^iS1I55 zEuTN%C#5|5L5tAy&uCh?2-T$Qy3S;bGw}@o%G4AOJvnA7i1aOl9Gu2ap{5TDk7LrB zq!xy?tUf-XUYgY{M7#&wos{_bEIbu}+wsYv!*C}6?)L~2`_Xu$3oqn`M#9j4EGX=D zvq5vz`}z1ZCaPpb>{jKk>T)DM!QEVF7D&K^k-?QpoD~48lxkq*v_T~bEd=|NMy=bl zl{}qU(5SWy+zuX&9WiJU>7}twDe)TPLex^aX6kvZ?;nkt`5RYT(0YV8^&ULXAorUT zqOUM%7lgQ(&R4SEi^mrG_~?uKC{f zO})4)7jut&#xWcIdL=CxKFizByv}q0O6ADrQ(iU>@mMx$L!8>IS^FL{nLtFe5+zwx2HLdA6u+kx?Z()Q%S%_KNy~!lgGEq z`Uh=QixkVz(ah`d(!4`_PX+cI(ijDqyY)e_w;Rx{XPsb7A9n}T%i=$=!W**#$nmcH zk6ox}>R;93pQdciAai*k+qRsEQgO8O4neY*U&zN{YcbJE)S|WMok}z|Vc={-PPzQ= z9vz4cF4J@b8mMw3h2EEMHw$#63#mtsO#K*{Z#O2S`WAO zkYeA>nCpgXPW?j7kB!#(bjD2mho>{v9&z*f#agxBx8-a1lS-?6WC&AC5+B3jk^>S@z^D)-fENbF4gu>)h*SpGYYJ;a=HRaD)G zs6LJ#i7+v~v*4KN{xR1MO4`ki8@B3pmz_bC^?{L^?_BqD^c8np!Kg^A^%Umn@Alsj zzze>ddhO=r->)JgZ!C%ICV1UGb=8C(yuGB-c41^vWtwq6KZKoq*Vcc-xwK6Y9cD3b zDF4>IH=B0C055aFj;6Z1MNQ=fAlxZx}rPD1TX8 zMW}Qi^acm-z0z9F8uaD8e12>2Ox0lHE3J{guRgpQ`fTv}+q&1ks$Tzo^;&J9gs)ek zs+E{@0`djLk~a)N);t-dTfTIFOJR#f77UHp@(6Fa_)p3a*P+n`L*xL#h-dZKlA*B` zhHqA_f3wEpjq@-y%<%2J^_1_-xAUs0Ub46IS}8k+$ZiTs^blpC;EnY#nZtUwES;J) zLM{0c=)=~bkFRIP)}_B6HKc6vc(V`T0i{As zT`o`s4^z3UFOIUA&xX{78fy9wB}hOmFr=0m(MoG50pK71*+0R&NuFrt&g^fI5vBe$ zA))oxn;O-|6DIBO<_?d;}d|6P$Py`GHwbK_PpNpQs@?iBur# zue)san)qzkM^pc^e73(QMtf@8WU#vaU zHR_Rl)f4N62%WRPK^9b|TJ@Vb^{S1~I}3H8TD7VEwvO;XV#3gy$5C(dYY3cS)wJ-h zb*rk%h*H}|;DAs)Y2tF(kK+eMoI#pO`EK3NwC(V3kT+&C^cNhSf*ON(<2)H5NJMb} zX@KnKHbWwynEo|Hoe}f3mOfY7d`yObv*?Q(w0M%%YGgo z`lTkcLDUmDAniLaHzmND(G&a#o~3H>Ui}4#m2G2cCJDLMom6uNF|q3d&N&a{`Y7u&B#HB9!m+ zJD*rx^T}q2fDlkCYep2FGsOpJrPVXuATeWzEWh>R%k0ShYC?!$X02k@diL#KK8dOz z`hhemkAwq>0Rk;Q9)&IYi>;<)sXt{O7{jYSS)@ZHL{!B! zl)eKa#Ro>Rp^tjXR`A8TS_LXT+oVr8i->d{DRh{sC8LpLw2IkJ7!eI>aRO;tEI_Mf zgdiZ%SznxoiRwwow8bn%OQ1EwrN9KFP|=(yI)g-$3NQXV3Bh>*ULXA|#EJQRk8QqikmP^X3hSrbs zsiwUZ60D*qAp$LE{4l{-pokQ%AXdH}FIKCZhgE9@#JSmdf1E`W4)hVINFV?)&g%af z7607{9p_|+1jvcYd4z?~)&K4R$< zr0lQr@YKe+_K`Wd|68qA)LZEMe} z3Rgr!4wIn)wbY*${de+Tm;bIp+^PAG3=yU4Ka%E#{jZS&5<^8)r~j5_{@)VRbHn{d z&D>4@$9VAL9A*FA_dmxF0nzC{9;>9Z*w_DGjR}f56hwf;!|7Bj*36C9zZMCmAt>VT zXwXt)*3+!O-`)`5DSma-P-dCbL7n^wwqw8fyX~Hv|$w z1p&sTg$z&8K-!!pL&~Y3(ub+gdrD-G=rc=&HuDdk_=!ov$>v}T03e$}fWKl`oJtr zKt&25Ehf2uM7oTi%fhQw03|?1nh#Qzg9J#uA&4Gik{~WZcn+xwAfS=L}RdM5Q)&-Dj}85B7Krmki5CYfBFv& zmWxO@773yfk`cO$=A|HnfI!GFl@0<>BQz;pF>A{sh6^k<=>X3~Fu}bDIV+h69Z#piK&?3;`6itd;6XqVs6s!*2-+B2K2FDTt8F zhl^-)9OXkSfMjHjQ@YSrGw1j^2>}w16smahPEMqQR5D~HpbxYd#aEt)778&1ph3%q zNLdOobZ(JUh_j!VG~)ld2G7=0JXkaNkbfnjZXY7ow*6k0PB{#zv|`RZ3*k|mpbe-d z_zV$dm@|up2}K6fNDnGxJ0XL5IDO=i`kgaRy})qVznU7L`1&`B1XU*eWRNhejMlGwTfB zt@EHl6r}$zilAALS5HNnT~AYMM`k#OLk0u@6SSSMbIZZL@(8{lf#ntS{Q?5y&?G z85-H=F-`dossIRUAfqlLKm$T37zFL^fAFE6!w=TjJAg2@D09s9p`fv&0xmiQ$ zuml7PDi}}=M8OUNTSx%#4*Zh@+@@DV3DrEeDxtDl>6Sb)0)hfC45lOBn^*R|Rf9+d zJOy9}eSl9gxCs!b0bof0gbI+tDc>QZ1jO)X0jw17R{C=#84NyDVg|St52lk^Nq~mF z0o;)_Kx+j(Zm`_1_4#CQ22jEU93BG3Lz;K@)6M7xq(J;xl-d@6Su}twz~=$zIkr|W#!jc*2 zOE7N@3>?q~Af<%t+(ZMeyLdhQjnYsIgf2fZg5uMs0DJ$q~xH=8QIXce_^gW2= zkcJ3cAio%_m(0LWfUrdU1{nifN*}*%YzgJ_Y|2fDMhE>{V&8GQjT1%N_a$%nzV zpFZ*13iQtb*-p=(e}+Ck()Wokef2FN1LW9tao`jG8>JD`y;~7a7%UvG#oBojE!rFO7_04%%I?wj@rNF%@wCg>3wpa~$d01oQU zqg19-HaCG^N0GfX)LBwMAY<8PC)uZW?^8h0h<{b6$2VZu>=+x<|&wKR89f~tXz)8gXu=Y0(uiq z3)axy@DYQ11N`FAz&r&b4`9VV0ht2$6>tgwB?$(H8qT8Yd--%rF^Qx>_GZvc#O>vm zK=h)4iQ30~`h{z@$BqU(#~UCv2(}4kfb)F^5`f!arQi($VJlq+{!IqbC6woU3ZO7Y`v*=*yIRG?Q0)L^& zgFa7AFbe~y1aQQ_GR^QB1Iq;65eGEq8K6WD+!f5I0qFDGixg1e8Z5%p9y~KJj05~O-&SNmN%Le;06snE11AD;(F_Gc6Eu(3=?#cO<$;AJ7+wkp zT5tF?Fni4tfRgk$4Om2(fqubiNT4|qkOr9vYz+aZ3-q$sjKCw)H6RKAm!yP)nVUe{ z^92MZfW*Ll1C&7EE|8Oe=nZJkqxC_pkzYUD0efM^V9yAF#4kbc7XiKnT=WuHvAo#c zOa?eK`(huQK;yQ8b^E~NjF%xAa*-XfKAsi{IWujMQV^V3NcGo`aI4`R zzD0ZJKx1&Z-)>+O*vw(|Z)pa%UI1*yiVfw9Y{8s;126^T45;bO>uF~%wJ$R)z$sL) z1ZYJN*vwl)21p4d^ce#v(U9F(bS@ZwL<}YpST<0=0!y9&raA~(&&IZbuvdVBDH@Z*2`x!&Ceyd}01;kCh8;5V z>qj54{)_U%pyoE|Ew#uK z3Bz)dBqq z06f}a1VoeiVlyz9eGphCKbs~7>nq@EAi|k(5@;qoGcYO!`9J}YnfhD#a4{7yZV0i8 znO&|hjc)t>XumbP4eV+@w573&dxqKdxZ3u(uJ3oZ>!E!++?(5^d)nNa-?myTgLILHpIG*Ru{N^G&896SN4I_F0CC?M9%g9Ipe``rH_>(-z-Ax|7+|Ptu=AVhK-$IkhVtJt zzZIDAdn<)`zTFy!>Ov%a-u(CV8pb~LIX6R2S*2DX^S zfO!tO4`c>)M~ltOLE^Wb>Yy34{U+@D%zTok#`ghCSzIP3%`-kvvW*gK3#(dBG z*2*xzpj%0QwDL{w9x!NQ#AGV#C1?u>G$`|<4u96xT}+NyO!o#v>&HVwVm3vjHN8mx zcD&{jy}xZA15yhPz2Q$hZ8+=m_v`&D4_js&D(*M z((kJLlbpYi@aHlG@qiBgwIRR}s0n1SSN-2s|JZW$9+!Cc&qs_Kv7Y(2N5eIK3x(yR_fzzxsvrSLuIg{{N?!zuW)+a`SeRV|c{7%oX;7za81co6I(c?`d!z^TVy* zGw=Rb;P=ems{e4Q|L3fKC#UE+;a?Oha{fU%&{#H667aj~zqkDlWB!rzr&@m!lD)t_ z@UIfSEAS^d*$e)3`MczQq3VBV|G$v<|E*j9r|oZ0696p#(MRC&$ASIv*7q_pKjM!C z{;2rBCy~8CfBO%o`sdm5PqVIp+3*jq`>p&xjQL%sKWhwx>{;;ptrh>6)gb@J7GM0y zq5iI+zn}kq67r+Ke=q%?j{k4o_$QCGAN<4RU(EYan}2cZZ=L*aGk+BLk2Fx=2Oa*% z|F0$dW`B|MzumjDuWTFg1Fzr`>%jpXyZ=4$Pv@A3Zw3A--%#t@VIV5Mr~l6<^#4mu z@*nRYD&wU8v>uQ|Y&%>P=}f2qg6VZ(pZ zP5<-r;(u-Y|A+Kb9|dIoA6=sy2k8AjF8`ALOW_~xHUdBW;qq_O|78Ck;=mMT{@~|- zpKjRtZxtiftB*=%{dI}*mlex@aA~lRNjw~D{O{ClH2E8g^#8>o>2EFnx2^sA&iX^< zcRdW!CP$QJ+cZc6u1EsF`Tv1K|E<;kd(BUB`%e_j`aARfHuJZRF!am+`0?HT|Dc)Q zyX>j4=+9d2hJKVr-1Vo+A8$3>Qyc1L%_o0~g2I^Mp0+uPf#*Xw_oJKn#*Xoy8OlnSz{^TsxhZ{g zfp~F_Z0!!&f)kkwFUpb*ZIT=>k}LOYJ5}sazIW1ry+57an|g6Cr{aL{V%fOs`wIk1OkAA9M(_VMH^MUBa<3%qYs=Aujzk52p zx9NIM+tOEUH+!CK7-%`s+j+9TORoP==03t~R{Ugs(v-!^q6Nt_SFRL_M3b`%78Pt> zy{#~*Xs2Yy-t@zV)5^;;PoK)YSaYnls^E(DK-K-yJNM5&xnJ<;QDxiHk{7L8oVgPeX#oHGuJL0 z*Q)QmY@WYkS8mas-3RuUo-E&d>ilZWqp}M%mDN?{SFaY;J(u6>`sMD^(~sJ(KDxiV zz2|JxOI7=;+pUf2*YBTx=zpcxy9Z23oWEYML^MPSeg>)-2r**^1QXKvz(j@oZ62w!(<@SZ*4 zn-6dm$9%Udqt=v0%6G=6S4`b{ZqoM4kvnR~m6p#d)J#8oBlcj)8rkVZdrq#}bu;PE z)pdvKR-UWMJW`im@np;O`u!KKo;>&P=%vonkJ>c%-kpCw@Uj=Lhm7f5u1cwqph(s; zQ*>%BCWdar6!O*8XxwAGT&fm{z?Z4%QE^NW6o~(|=zQtBJXm7p>vyCG**msyIc9b* zr<^&FhxdHo7}t`wS1d@|-8x!F5<&vs;t;od>VpsEjX?(e<%llP9M^4!fYoR&@$ zuXfZbj%W^hWwm)8VvFoO;oAdgYone)7qBkF-H?M5tT{6#U3X36l6>TA5Vw2+1wOSX zivIlO`3KOH%lZeiPtJSY+^H>%ob*%F>u0~LU))bkzNSj3eayZSb$QmO65g@X8RS?S zODnI1k8Nq56J9^N)PCJ~`m3o&mE9d!(D-&#Rj_wJ$V?(FTp`Cx)Dx&)O+k2Bmb7K2ZLE>ijMc8rOYQn=o3-8 z)Qf1_63sZP-1-HBSt)5yxOM7M&G^!}nVK=IJ#EntBNu72J`}r2G1{EZHlpCCC%F${ zTkanpO-UgLHM6{M&Xl9=EU9IWWnTm#91%ZsnM3pW8E`J{uQh%WNd>NYrTrF z9KB(=&LP;?DQ;gV+R?KG@}}ppiF7hlUO>jp)QJK~+LPpwwOv~x{c9rHxqh!1?Kiy$ z%zK2ex*h!Cs6Hx&k&C;s33U|fbac?gd6ym0_zT174MDe=_ihK=Z@4$Xzc=n=BTC0y zInjE+MH(SspRu{K;yrUD(dUW(fsFw#JM}#i17EwHyc1+HZDqley3C^yqxyCGBLlh} zM{a~a)+R=HK53Ma&>o&0kl#Cm6zS2;-beIGj9&?PzIL4Sfj0m?q2*QZI`O85e(}f; z9{aCVO@IRLCrEWx|C}wW8^^LYNHVKUStuo`Vgc+O@Zb*+OI7f zWTMRBsQ03mBh^6_{G3rmObmF>4#O==Hrz#Gl#7Jm-Xw3}aERtuxs*Bpd5xOwz%K~i z3#<7eYA?&2wMpt+Ex=c_xH_TwxPz==nrAYEfjdK-BcP$MoJWJ95b7uXwJ|p#GcGfe z*|KQ^IU*A+(T2i0rIBZ^7-B|MPbbX5E=$&!HmQtwv$e;Dr6hvi8`Rj>K~QY<1}dx$ z@u^UF?)3`AF?HJ^wHDW6c!{oD^SOncY1b7#+FdTS;j_7}m7+2Ds9=9vCbS6r$X%zD zk?Cwb+Rjl4e-(%V)3nf{J`sEoZ~00ceRhRtpT!4GO+c~cvLI(R&&9a=&?rqXp-^OG`=O)mlDs+`rGuP)Ibd_Q&cWtmco_RSg>2gS zn)8->Rlq><7BiAiU7VU}VLpTfpQZ5n_UutLb%cdw?TmM-9q7H$q6ON0j1Te}zs`ib zB+gbVQe~riVRyj-Hro0_EtZoUX>)O0WPM?XMb0Z+!v}by0KB%DDi8CmVTsfA4I#ES zE3qTnSme3#VU}2AjK?nbGwHQewzpJjk2Vc7pWR|vCy-5hRz7{MTNSP+5k--+F{oIU z@zOrfL?dqKxd)kASU@_YIlz3Elt#VvD5FDhO6 zk5{bwIZ81=5raoa!#g98bhO_h7K?>%-=7%B|d1 zXU>SJ4IO=6LroWHsE6vaS#4^`_;g3iX|~w;EV9_2(L!BRIeAPHdq}au$_1sp2P;=# z{1Fr;cUz`JxAnYeh3wDM2ul5LjB!^_$TZR{3B2G zF@Eck<0IrmlDssdWP2J7zY_(|`t1vE=R@hi*w8NPwTp!mK5kOOdwyna&g_K<9 z)VN!Z$}2LeVrZ0ORy2w0o)qy1>9j@^6;=X=iV)VYL+8e7;kY!|EZrrPMp}!F^RGe{ z;KjrJM7cRat4Z?@Sx%W9xCEJU`igF!UNzySko2x)-777rUP-9ok~ND57!%LTf>VOe4!B4~_;3;0pUEGpn>9?BJRU)>(4t?N zCHbf_3(Tb!z32!XdR!Ej$Hwp!=;<|qG0OPXP|O7N1bWYeNxBK6`Dj}i+K4R&A8Q}W zUa-Y{PN4odD@3yM&$9 zlZXjW1_moIzHAI99GSqyzLR1niBKk0=w(r8w_Y?h1e(O2J#PxzUm3`YGCCNZ-7bZQ z^%%w}jIRn)*p2p{2Tc_w`EX=u4BW5x(IylpPSo63?1lw=%uiEr5hC;pC)_Gw!oKkA z=c_QO^7!isvTS$RiU)HS%#(!)(P`1R(jxS%umwCQyU?4m`6_avhPm)A1*;fmk^s$9 z4m*1nmvRE@r#6WYk6xwTw5McouEH2E99PJPtXqgpN~6;%qjNffNHIyq9OtOl8Ran1 z+l9oWmL)hPnQdm%amtkCKKN_!CX~)JO$g0uG3{Fcy`O?ChcJ~AB&E$LlkbK~3>~8! zoW>WXD{$ku_`CCr9ToUlQP3(Cyj8h)ObhXiIWAsF&PNT$gAQt2euRlQX-#Da>VnWT zO|_y>Nxr1O+UQI@4jMH@8GD~bIP;BR-R9SO&57?;2DGrpg$3tsnvkqT`JYJEm116s zaItleDIXfAgr=N^rVb|iDT#;z{Jfsr0Ilv35xV$fmVo?BwC;r%T6~(gr*8QB=i#f}ASx{Abb*ZMyr*QyA0 z+&EZH-hPr?nd5gLB%thIDyEfmRgEi}OlV;f-cyL+iPIJ~$tW(awuM}(A;z$YZ=<~L zE7xuq4Xv9L-6a%1W|7`S5nH&T%aBiCE8+1&a(fG*4qA_A`#lg5v$Dv)3Vm=T>j#IB zuqLFBDnc8VNEnU0e?jZJ>UE_h@(zXgI?8+NR>G$!qLxj550xCaM>;)~{8nJ} zkQWnL&BwU6V8*Mld41Ak7u=)$^4a<+L6I$(>IQVdPPD3FLQXx(cQur(%W6%=akSV( zf#P6X)?^(zxFsh-1so~ggf?f2a$^KL@NJ5FxCnjtF=ir!rkzM0^=?8qlsg#;9$Qux zCc;>nW0n_Dy9AK#m!QSMJaj+yYB&@V_w#ZU=InH%;VMi-l*9GuN8Gu&e!2~Z`eyMU z+^W^by27(#_?RFab{Ts?z8IRIMkPmWm@Gt1=F9xbFlpSm#g)h5k$JRFq$%i+WM zE_v4uHH4W7VbzF!3?$0*_NUr2(?a# z@!al7KZCq{NtAJo1wyZs-pHUqXg{mj)h_%^*U^JKFvErD07oOL60&c1H({ebL`7j% z5s7*wLD@OcR7f;}R=-n|X#+piaN*QMvQa8|-sQ2f-lc_Fcn*RpQ+d9)3+D^51E!|e zR$!N_PG{nGn|@dz2BhTmMC)PMjN5OoU)vnLVPu7tI?DUaC1Um=oX z9MS`k2y?CL6ssRaksU&au4f5mYQj|oX>N$q5UeY=A5PQkgRBwbc;-YW=K zgk-%op=)*dImM;6?0Ftusv_P=(|!{{AltLXUFleSMTq0ZsgPJ~_=A z{0xxvfg3<$_}yib-fBs8Le3*0?s(^%m6e%m1+vMKgQ?TeSna`#amQzJFoR_1U=bQt z#uo`rrfs8!XwjjAjm}voZ^0hts_j>`pq6Oq!=n;8La5kJhE-&8xQ92?oF5s>KDq0N z?VQ7*y4kTDqXW4|rtoDF^Fwb7e;$h*iP8OBy;ELYbfowCjrva;s>5?vGLG@I=wL`5 z5r*r_I}*t%I~kGNR*yCssYPw0l0)*a>(JHs*>4u2-P!_AHs%fdI#04Q(R6I48EpfU zj$WdSA0HJ|jh{#`#Z-^82&r7~)}<^IF}l-!fL{3ba+tBfd>xV_eW~(qf4l4cSQ6W zng7~ib^zo+Vayo@o{eotk9=5e|HxBAnMr)0ns@e50(H|Zvq3y)iZRuExmg8e$7L22 zmuWU&Pn{8Mw7Qz;Tf~0W`FLd80hU{IDUt;gLSzp=9}_vF|9%IcK*=6F;!xI@7IQ zCU_gEZSnRtw=Xn)5?eOZc~nvCUZyv8w`y?8rkX>{SDWlUQS7diG@ELy%@t4ZOD*fW z$&afcf(cDeIJX()=}!V#1%9{N$FH~F3_lOOJ>O|_d&nHtB&~cFZh6<_g#ohdkPb~|&3C-Qv zPrL0ibOpP+l_fgx%d|O}4I2X95$|-H**zGp59;xZ@A1y)xmouPycyZQxhGKHV?2>f z3hBlc(}b#??CypQt+Pn+&?r=IlwG$_iyc0qH-_6AZTGOMmBwzRc~PjR;ScM|-xshx z%x!)@zj(Bb=KZ4L4+#Yymgqk$vHQ4q#K+a~A5-3bSUd4!YV*gmjIMciK1%HR<`hr{ z;E$Qj?=ecpoS=_$-db(U_;~#F$DBL%Id&FVZ>`ta^{=(FlI#0@%lnJp_U+5~SQtOB zcjCa|WdqWJfrFO@*4`P|r5`x)cHk)aQ$_K>F9n}YUjlE#{xs9hqNre?W8|j`#Z=9R zfh)^C)ii&;ssFqv==1rE{@UVC51Ky({roDzW78ZxwQJz(mlx~1nwLh-3T7aVuR}Ax zR+fCd*7W+xY^yf%*LOks-gy0o41Hg*e&CY6frOy&bZ(Tkg(pRkm`QRSq>)i9%;Q|@ z+D7MDcrEQ{sAIteEHVQ>O~u`{*=XzmPt}Qi<1yIb3D!B?6K>=qK9<@YcVA3Y^0G)y zxw_lCX^ND=c=I(N+UI?6{%7Di8&^|fqAazxNX50 zZW8QJ1~DR2`f9a>wan3&ffLD;%ofX8<0CznL!KiiWRG6*Z1tm6+-!5?9MZzuYCql% zh4M?Po1v=}jK)|MbzWQWijPbjcO~YrPD#Jw1XZMYAK2I4!2sIrv4(ECQ z_T@n5o06TKC_>k`PN&m3Z9)gR?FxB&zE381p9v?Et6R(npZq>A zfKaBDC2Dw)vSEI9y0d(NEd5>ie9N@9l6hA1Ht%pQPRh$UxHF?D`rwY%N_RQo&G5r7 z_j35l9S6(W@I2ZrMq7^6!e0+%7cc4CF?dJ%sc6@oNixF7J*z8xYr|7#hTOBu?Cb7^ zOp6u_-nn&nXSwa7Q;!DkNsaNu-&&_?)z^g2jk$TiHt7Q|T$|L@f0aFAP3b(_R4#a3 zPm=OXuX1ADp##dr&l6;&>6@dSwW;+KwQ}L(GuV4>$KkCzW;pB=P2H&D&D*m+=CDL= zm)gQIwtpP8ndO6$4>@F4SUbenH7~fGCiO8wm zNVj*?wx~9ePrl1(rk_@bF7bI|b7Q7G^X$HCFGRjZ{!FgCT$bkG$0Ry^uwjUY$k=b^ zY;5H2tCHNl9)5H;-lN4ryUlbX5|YH-Pl&~suqY29Q}F%nffP509e3tA0rn_&R7DWZ zl#1AC6!f;?D7N?{8MAzv2#O==iDdSHuHjHTSCl03j;LG;K3x&z7*zGRHfbD+gl7`s z=2$}b;AB@963nTxAS@sXLPUXg!&?^whgLmC>QJ?)&2)bEXj3%v#@dY}lrH$>Fk*~7 zZCOR!lM1(r&a4eyF`Z$waVCr}!+7JM603;M>)t8B_gOTXIrG%gL4ni=R5q(YA>C+| z$800|ER0e@t_m$Rj`q5!_}QO9b!@H!nAO;*u=7^6~=unQHs+UTxGn&~bF#$Eiq zqsKPoukduR`VfU1d7y;2Ft!S%EgR$8wB31i1KPfx8x|mI&CB3QZQpDN@w+Q7SiniL z`;{&8KEWa4i@#?a6&dE4AZcW(W$NRs^yW>Fu&Ti=(2cjQF(%D zG5j)44l9=vQXBW#js1-CauaT}d@r@ls1Ea9Sh{gZgw(FT3>%amw~=2jwN0o93p`Lx zM7l#z_f#VIv%6^VXBVr-x~qW)D4BNke0=TC!8R>iBiDMK$(19)R=UYXK8jM(QjxRI z8#Q*2zEL#PWZXQDw@@~RyK=`&vDB)cb4XFQ#IF^5yYOyedT+zTNn?pPZm~ zaJ+|~L5PyvGlJlGoufxAWl7`0#Yl?$&aj0K!ZGT-&-H)oE# zGWx|JYen@ENSo!E%tW_8a>Jc~drLw@-laC_n1&~+$)r)f&4mMZu zGV^Qh8xxuBmQPZye&x@R%*uq!aw}&(^AnjoWM~JaL}eOBa3!IP)22>LXpmnb-ZPCy zInysf5tT-;5=9Peq-BP$Y$wi#xoZ*BwB2Br-hRl%tkbZcJfI zt?!0!MS9!|93tDTG|ZZj!?^{MqeE=32*W&ci%7!;CBf5YkMa0Qfs8~|77w6o_QmLM z^X7edUl_PRB`@EjwQA!{d4&fj9WlnYZ{>;{>@1k11f9Ec8~2pSh+B)-m37!wG2u;b zcm=!#-8R=nz5bu;NUN+9ExxeB+$9vkkdS?LEuw7wh*RQ?%g!fSpC5wtZ7V0Gs-jWv zIVB#8Uss#BckdCqLMvQmQyZBWr`THJ z^#LBzraQ;1OfU}VRQP4tqFD`0V__#Rb~!&2tt~NXl1NR%n$T#`F8oqxHt8|jXw$Yr zqPy_S=qp~Cww_`hn;C4KqC=mWny`16N=zgnMpjVI{?--iy77K7tUOO+r>vLcIsTbe zElQ)sf?#SU6YY#ySz~%dJkNAa-PJ{9dwr1Elh-M*$5I4)c4dT+*Xz*sgo}8yq2XC= z>|VcK5fldPF}=&rGE>5&HQat`qn?j3p4{5LI7)D5{uQ&#v#r?c_Q9h?OIJEDVQkO~ zm^$Q?))px_5G@cROBE{}7MBrc>S3!Q1jCP6nb1CU%IGz3zGTd@O<7cix(i;x|3;eD z?_D|0Mge_xD3UxIdH$^Bg_^@dyg5=a!(ziG@cLS-B6ntpE^B0XL4?lKj6G~inf#s- z<0=>i>ty5mPR`(nc07VZxcQ^QVOStV*cfUj8ew8atCVPkn61QsQ8o3zyNdF{?&3nq zayTv!Q!8p(zGH{L(I0=DJQ96lio!-hIEP@D|0Q+m1mqm+k}XW!*M-q5rs>2LE!m1m{N;d%Yf5Gs9&c+ z#+9l9F88E&rVmt-X_k%5!0l&w_nOKhC8{*PdF;$X@M&OK8B&g>c3o zV(_39`>rLFW%FHp77MWxH(+OsmnG?N^YGZD6zu+8G66@HfR`mSWM|!TSjfzt{3tsW z!p$wh3j1WTo@{$cjjUpHzAx_bEb;c+ON&V!a4U~km{&B*Ahha+B&KX2PPc$5luj@k_L z*?wK@A`%ZcNL(AVJMH&mwcRM$7uk2@=MB?Q%sBP6h1?vm{F%;()~DdOVB#3Yo`}@- znmQbl=g=Z?tt)VW#kD(*1>KOGcB$eZmq#|B^#0IBdM8Tf2c;wETM7w!g9&=52Hl4+ zJEh|UKW#%q@hwu07P`sH@oUM`D=5S~23`EdO7t9zz&ShUVn;;^IG6(UEJUhXY za1!D@BUA&#>m1==^^{X}lJL)_zs`_64eSIB$C)?~hHRYi7U%KlAS zhk2duOSrWj?)ZiL>^VxAF;}({%3fZE6(CN@OstSAn-`9qz>`I{;TH8#R;O%T$Z%L& z^mx4-yCUUOsu~+j#m!i5x5;tr^m6-*&g|qOoKeHW4AH(K6Sm-zk!-#| zmWJR?mf`~Y!sjb&t2kI8N4Av>naE}9fH#fD3FBmemmeqbW$#;YtL3=)pT^A>Vppg{ zLDcDPA=nI|oj{H?amk*YbZU-3wkr}le~b5g7r9fX_~}TLlU%X6z0N8{s=is*<9X9u zDA7B{!G3IsnH(M@fPI-ayS7L-{d9Zbp`lI)%Ap}Z;CJL!SHz~n?nm1YjN+^l`<5Rc zW%UWxTaIcwIe2^*+|@hYHvGco;N0D#E-@MBobmpgqH{hC0e*5ZBM!C39aXaOu(v|$ zS2lao=4KOPNeXWpE6U~S&w-4%c#iV0lkURK%P=!eVh){S$Q7*0W@j!6{mX&7Arqa; z&M0XUUmilCUY`LTcWlOXMrD9ck;E24t=c&o8||`g&cyl%iF3-}4hKokP+wVVt~z9} zqYAF4+j8RCh6u%uLWy(Pp}`_?ax~wHi<%oXCgyr3&JCoG5vLFY8mh}+LeeMYf@(v1sD1u`R4Cu)KB?tnb0TW8WNM7mV< z%&HnXw_Lu~S2}J==5RI2Z7gEXhv{5+ehiAilxE9dy?LB;pGYhVLz6W!Y^TJC1895p zTu8E{K}_w#rMpy)Qesm$FHuZ5Ss|J$oH?AAJzun7QIzpY2uFyLt@%*w;PN6gg#d9* z$~NYZYcsb%Xb7L5Yb3qxf!XVv*BNY+4nYxW^p+w#Nz@U-nYL7mOA`E&A&?3Cuz~J5 zXRknWDrNH+SnzeE^r#$u%Yp>9Xo(8DOpaYF$I%%1)B9g7VB_X!vlqq5jEb~{vf9k?(-$w}n5Fm05?9LSBDhm;vW=Ot%eO1eJ{Q@sWXqUvg^PF@ zl)aRHV@VWL90(cpVUv~evv06^$LO57l}}KXUCUBR(0o}!k$4IFl`sXnNRTb;%*OLy zuYR%!CwP?{hegFL=67ZeDjLN^ISHlKOvs*t zc2$WVRY`q{E_#FSF!IrKhQv&P1{|8hhrvfq%%im1FN-;Hv`x`6rUJzQpI?nbJ88wF zGw9=!P$Lyl%oOywEvVe*Ww{>^bG+{5Iat9KF$Fqr0g6#}F8lB(D?CK;VgMGABoSDs zgbb#LB@ob=BJ>)xxm@~niVm$@K2jlZ)`~9#OU<=#pSi@cd7E?DC<{K?+eKN&)J@` z6nP>qPQeIL@`?+y?xbX2O3BCd=Vte1lh@`>-OSpH^RejPayq48eqX_$wcFP8Zx%{i z87RB0_@RjFnz#K&6ivtbjETmQopa7A$HvbQ%=LhWl|ST!u;u}C!_8zvrAD; zFkW#m^_blTOiyaY9r@b%#>I?B+mW?%9zfyrlp`*EE4orE3)bZ@3U?HKDg-FoCsx^& zu{dt$^q)o@Z!2jre?3&5XVF)4c#ZmFj*GUlkm;)5xK3PYarjW$jZ0}a@1)&oPP={Z z^KE^amYiN^mwtD|mzy8c?oCX;Hzxi5vh;@;=?(MKwcEcm98Z68DZTMd`qSogebd|Y zW_@}Kd3~$h*IQFDKcB`6*HBMik{^vvdojWyKj-5{#;45u5?_5VDeA? z`%`~e+cMInj7`(2LaU_xF{&>ok8C_~>JBzoPwN};#Cs2>J4xnZKF7xY-0-t*Desjbm?z=Q z9X4xEd*3S|4!qfYwq0Chv_;=kxH4H4V{4w9q8aEUK`25QR3b`fA*0=dnc! ztFiUqwKqe?_SR6?*Ti9S;Kx^^%#0TbnlsqD-kdFrOy12ZXm4 zvbfN!6zMoPA!T3I@F3%)VDk&m3K3z<8+)#~CDOJ9vaXhJVLnDV+FVt=Ngq67hiXbV zj-RqG$6g?~4712^$=DI0hj(1rg4(L&jVNzyjl?pPm$xu3s3lyhSwby50{v2XMS;cZ zct!pzTCNlZ@Aa5xK8-sE!e2;EP+LZxFrVwJpldaX>6+0|HqIcF4cTGAy?jK4zYAmc z*dmulTw=@-VHu1?#Z7i6&DhWaSB&&JV#Q9CIr4CjFftJVtNQ@4W{ST$VX~g1g>aW zw#ay+^ZTOQs$Ho;`MS5KrL_jO2~Zykeu%cm2sj=a&V-m;PRsfd<0!ukEA(}^E4+ant~MJr8X zUWz7t^u)}%H{t1kwPNSAJ-?h3C5~CUdhNUq1lk0=^3i~=fI0~~Kw&F|DAO=UPD$n( z$JV%v9Gle)as$b$^^F=AMCUDTjDmE_D)DG*VI}DtDZHqp;Z4=6z3jY!3}TEzYV~>dYet`@_kxS4zQ+!=OO5^tDLsFGl&sf*7U>4?fGD6$$R?`sRO@kq!)7xJ^W z3(%~2!VM!Ax0*YH&z1Xep%76Qq+(}I@;ATqla6P?OuV1gC_NgkqhC~+&Jw9c4~-z(4KmXlU8TyFF-+saw*+Ik#)gk^t2FT2=B%+qP4&U z_i{t1sY1;tObKpsCCa7=k#ZVf>@q}Q`fj8M!wE4tC>HteWW#H3s&Ov`+#s;EmhRbN z8OT?Anu`d63bb`MKg?HMM_6a=V0o2W<8?xlKQ}IHwAsEG^QFs&F6)KO*OiQguS0TJ zjUqeM2HV}`;)fMN82-3W>-u^euaFzNPAx55FHv}BGUryhLSA=E2&tt~i(27T|GRbM zoM|nV*SMWQyW9yEDb=V~9NEM^O+G(-AJm&t0}p8OmwWEByjF(uIus+k zflmsP!Wbxs98V#&exsF|H7JRR#}uY~1-9G#vEP#?wuLjc%(0?FHzJGPp>QGX{@_VZ zUk=J{7rWW13ck1mc}LZ1F>a?@p%~7xk|4}HGh!SrO@Yp^@r*|e7T?4~vnYGhAg4y< zjfr0?tR#G_kFY(B!J^o$ns zjs<0E!Lz73LP#kW@_avM&{>s3e3y8Ld#CL``8L_egLz$Gc6b;Lxl|c$eJ$+#Kf=z;m zO>c7!+Q(o=!5ac!$}pB{G{Zw7M<2VV7!m39mPm>&wV||^sFFw5R+A-r~2<2ye2Aij4=;2!sRlitP^r;fh2KA33A5; z zQNKXGIu;>KfVR7*4D(O9PB6yoV{|CSc{R_dpadPJx_EB-H*&O9oqHthQ6z+q6CoDoqmhitG=QOOYm6{kd-th8{* z%*@OtE31PjYB}IgnGFvPnayNY+6ba)W=3UYWj#1lYFXH0Wor5Ieeb&#f5KY)aUU+O zeeeC-NEemJTZMF1DSbkf9*rE|=%e1{97Zi?2_4BKt@D`Sc$RaV%U>{0B3&{?3~E2) z%Ph@z9>=?Y<4sn2=Mh|@MPohW%ctJpacmsKc3r{7H7N{Q0rMWfJgLHb0><}&hHAM% zBTT*1pJliDygq2yC*Q3v)HM?t^$5-H2zN3oNW-x>xp0EZ#+8#1ULZnCmTqJjR9GAG z;u^-~lTAW%I!I0*AmJ2v+8UDj$?gr|KQ(}%wz^MJ+}jTuu&R68gxWU~n|j~O%QJ6e zmp1dt?)J_l2w#tDZM7h^NkN=}jnse^8)(|V#?9aio7hKQ2%YPybxSPlZ-M5vZ;7_- zt4FFW55yVJp0LOuMa6c|J#H*#{iLZ3dRQb|1z2vqD3M6GIBTsh7wY%K5$_x_oMGi; z#~b1x4~nq-F1x{^+POhU4XtL_gX~>Zj9X96{Q%4-Uz=xJ5IStA83T3{kn$IPUD(eG z6`BPLEqbaME7`=9T0N5RpFeAgegKs6Q_Q2*R=PIyVBxi(Y+M_63&hgxX|;%^Hf;b+ z`}{x&%$@fzww85Ct2gqa?fVq^69~%0N8GXyx>tbKwMJ{|W+NB=K#(g~|FkMDB>|OpBB^Pt^AZqnXu-^6 z+4iwbC;aZ)>G>s{vct)vI^`JhNk5h$Q4YHE%k+DnSjZJ_muhG)g?e=JRy&q&PpdCO zj+o(~@?hkoTpRd6IKYdSgHZNa9|02irOdgN<57TgAt4z?h0b1_{V7Thxu}Pft@Fjt z{)^BkLud-4a~KQDy&5?{6ufpda>EdZ-t$jn6KBZ`$0twe1PS~$Aq&vuPIS>eXOWZa zXitUISs-%#qF$RbEB0A|^t44LCyIPQDUzq8bN}5#2mXvJm-HbS66I9Ch#$l8R*AGv z5hghB(HG>;4-U*erE?zAEl=d!m(7eSioC<|OyDreMM=M-ePkl%D1hCp^qI^Wq;Y(k zMBZd$rb8FlEhU;ob=y!NWnfobgc39O^)W z=D5~tK64H7-sxt?=%o$lw#pIywN`%ts~dClqlUKGD|9F1?q=+!N^5)jLE9U^t7m42 zJN<$_(DOYT&tN-tDy$E@THU8G*RW&{Y+ijNo8vA}Cs@^&V#4pW;vBiRbk2}TEFe1a zj!=KTCa-;@t;wPHv8b z8QTYBuy5M=nWtPn+r`plme^$jmQuw0zO`0ST~F|EHREtfiytMyuPg(!tCcTKU|F$R zN)iCmFA7(zo|Eyi^*i1!e#o+}kejkj2$(ixlXyq8aJpxJ*jP2zB$uT>M0SY&U9I#O zd53UNKnx{{0eeZG5NrV?j-{Or9$b-EugEt_$)It38jqyEgM5rQ>=yyLe1wjyCH|{l zQx5CX>umG8`bx7aHa%;DH(jxgE=@uB0o-pkJ7$IBZo0=N+G-cR3yVc+r9-ChknY5Y^^r8;+b6zy#!Vn)Zhei7|Up(-IZOS5xlMOG}5x z`;Vl#b|F2MD_w2>rFRq(?M1%iHcunYKIi2+iQ~*ZS4uCw z(lVao6vgqj<$zsEFB#G)N#s>~#C|Rk*~eu-Nbectnim{%Pmx!qc#LKH@cgLJklcRG zAf5?cw3HKNLN`1cUm+wvn|<~AS+Q40JgJY}kZ-DQySn8@M=75BQ_j}E2!@Q-5L9eO zj|YZwm=&_nymnwUneA>5UL>%~Vya2Fcmvx{tY}8yf2@MLYy$u+dQojqYwO?!zM-%U z7(!h<7&2D~^!DN>j~l67!n((N(CmhY#v@xAjktyell}Zw`Mk(@(~m&N8<>>&gwHi3 zpI&q1o!sr&lWd(Gjtw=E>zi>j`EKJlFiJZt6`Vr}R4kjs2QSVM8ZZO8{n)n%!dH>Y z+;5ESegQBxgd2F(vI7#1{9u_27zPfneSThFKD~of@A?7}-_-#6o4Q6XyGV+{>ZjD= zjci@rhDhXDSf2#zy4q42w`}laH&ogC-)2yU9Jw>L{ycMREi0s!<-a6br$WA=4!E9w zLVsjed-Iwtn`1B&;EHG^#lf$wP52#=15B`W0iiY151hO)hZ)&^_YeV=ry0Vy)*Ff! zPaEHnj-@;dQ?o6Gk=Lt?ti4KW$&1MuI$^yM%n4v0M~8e-7z%?c&#bkYY_V$%o=tyf zDo0oezD7~no>IfuKr8IV4B6Sf(%>3)d zNVISC-ef0^PgH=Ov+^HHn4$8xOw4xUit^V1({0k#OO)P|A~3~c^O&;siP~3<)c7mi zhMirwE3a?A1+`AOs+Iil`pfH)uH+>Mxx#AH#p!R=bUDvLHoJq$0B`61M;vAyZe0+v zfPLjX+xh23DvNEwQ&`nySk&)BJ>3`Z9=xk$=c7LRMJX0E@ba65MjZ;s;=%bp{pJjz z{i09jpL!}51hm^+FzoA2zr{xGWZd=4%X-I_t)sl1uW%0nqk9wv6Vu_3GV@ag!BEgV zV+L&G-Czn0c(1R_V>6!3x0;{#&(+2)NrOd4;uIKfG#+Kh0y!%c%Cr3oRw@kox?^W@ zsj{7hbcO1(*W-OyW5}yr>58aL`3rc5A_qcFaE&z6Ij#F0f6hM)-8F~aoL|9qLd-FC zC~n`nId+hhZ|41MIz?p|U}(!Wwj~*7S6*1cCg5kqogoVMOBwR@c|OlGEo5$-rd@@a zb^he1{(XuK&Ri;E@=%u#|1vN4Il6Bn^m6RdS5rYWpo4|vNB+qkb?1&h_xV28H=tFa z{&VhoF4uxbCfG8?U0c5T`u+^(3ZoAO_6bQiIbTjp>D&La26Dv@1(YA-tvc}YzNF*M zY{8xTGx0q$uY7G*pZ)Xc{@-uDv&dFZh}1D*WRPP0axeq9s7X?_9HCD%sNg+S`xiiZ zNv*@3+5Tl4RzmA+ZQ@q$2xVAlmDQ==EIQ6 zBej&0fou?1%uCBOxgLC#Agps7Y>M4$JX-@G;vA2O(jIC|nKJxPV zKGUu1t|13T+dSo0+U^N;{&So$)x_QujX1BIA*UxiEStCLMyA>J#K$L=?EZQ327q{4 z6I5)HCfzam4C8lU*Qvb&n_pks^y|OhIJ?^60 zKeoJoa&Fbl0~Y&sjlFH&{p+tqX2$s7xw1?9Dej-2b~j%QFPies?AN@zw)>yVKhr7Obq2tA8p@gDBW-6&Eo~&ZdinZn+(blx(TW`r0k#{sjt{N9 zQ=W1Dme#8LtxL)qg2=@?o(0?Qeq^v@@wMB7wFaDQWY_Dj(x<#v9ktGn`(BoFZhK}m zd=2}aE>dzme7Q>rA1AzMs`2k$Ppbb@?+EiwMXO=~c9bE|2y~~_1E5g}-R+*6xBNNN z8Bc>lNO>Hq;8H^x!Jqe`aCzwSL)WWT`I~=!;pX5dUk;UH1%;)PE%C?nF->RO`CGh? zM6O=F;%IF|cukKfyQ$fTD2|Rng2B(7X)BkVT^kNWCD0x=0Ro|26eE%kxzb)5!^Hi9 zpeo5a(`aI0t8iIJffXEc-ZRZkQU??jLx#h7^<07Y3)SIMH3X|L4_w zO3n1|_O=5*OMX*oZd#9xY^q%Py1mxF=#93mV!VBLbE2Dv`IU&TlrNb#-k;rUwf;2v zdVR4E?L?;fW8Lunnb^w4dOK~fGo|`C;ClA#(~rOb=}5$QQqkpf%5DF|9;?j*w)hYG zr`SbZgut@FJm&d4QK)-mnlj%*K$^JWk%biqu6V5qJ7j5#i_m?opO*FGS;xheusK;O zvzt%#B}nXmuh%HyT>TxJT({sd&aAGt=t?}pJddfyyGx~p=X%bwmRv3OjxfCpMT*oi{rb5h46xmH;HT;gOkF$Y^oU~J1r zR#@wao3f4MQqkhc#dv!MuGJI?6D399GbXdF(P}-D359<35`<-f3d4g~Ru*)qev+SM zWZSX^!Qz-?))~;Ws^CK~i_9V^mz|Tqe?@JJaIknIW85s3Sq0ny4ijZEWPS(2b~&sY zmDB>Pw}r@%3iN`dQG=!ZCVTtwVa##t>W(aQ6CH38&>t@k5XDr2!4IbF-*0U(eMX^1T5SIi_B)2Xl7+>aa=uz+9`YB-FmfPi;Bl^Kdih^Zg=#L z?4zy8(<2;*GmxKr4p2JqsIk>~-VU9O?u&b~3|B3KQ#uC89eM3Or4dE(w#sy@>VfxY z1Yv_9p7Is@V5oE%aT`^++?bcktlb7Dr#PCmC86EEY%ADR+eI;vp0u zu016MvCKiMt_qCH^`}oVcmh`3o(W2trC;0yBv*6H zU(o_RYJU^=!b;N>ae?%{SlkBsS*s890B^#^vXrPnih<#L&o|qiCTo=GFEs5?a(WX| zqOAF)4ghB&%C_)pu9$uZb8Q5Bn|{_l$8N6&jrOK{ zwHFmJcap7seod3LImec{lh;|OX{cvQ&k!Pp!TFCSs>l;GY;ZjXuVS4Y&snLf4FIMF zy^2chtJ2*{@*}OYJu;sR$3EF&Nrl~Go|O>5X#lSI_@ySD(dqam*yLL`cHiw9x7Wua;PYLuO!=*jXMy5GhwZhMeh`Lrsiartl3PSl6KGTJYP_A~1&-b>!HHf6+CE3a&y ze)}d{XmY2<^>h*`6!IyYygzeaX1BrCL1t=qePh0k}RK0z!)hPo!8`I%nY*D)>&ttM`(PJUh%}A z!NODFFHm~#=Pb$K4V>%4QjxsH}WQ%nF?x-`kG9h}94nuE~vJg~B$VQbEoFdf`sVX>` zF0B~HKJX~Gx+1AJp4{btUaqepY>qPo?WJ5DIV;cmpd7NLaj&4`(43QOT&jt32^&CI zz*0k7Iz*zr2LpEiFHyrH9l0cL?bAij#DspBESBJWmF!VCxa3FNw5 z1d9?n;;q7*VV8`~;%%9;f5_W%#h!;c3w9RRoI9fp!Pi|a%v23p@HYTV6IyX{UI2Bq zYq#gU%Hnk1J*%ng2aifiici}3n5p1^B^~wp^i3u8x*_b>q#PbO*y+?^T9Ojp`Rg&#KA<*fw^J|GyK~vvNZerzZVxA15 zlKU}`%+H{J1kKA#$GX!HhLyxl_i|rsK!&fwZQr%?q{1cXGB&A~evi_pzFjKCrogwN z;h8u9(+ley5H$C}I%%8V`fveGkZ$J{Os}*pTa9@m(Dj?Aa~VKa!h~okA&rJUxfngf zDl3rhn(f`%vO~b_(!09`SDq#KTL57C)PD}quxj{r0gZ3~m?;%7>fo6Jw1zj~;QeCE zy~E+<7ZfL1*9X3p9T4cK2X*$!fv&>@0gK=hR3;WEN~JnO03lh9p4y5yrN%7S+R_&o$gYK&NlKM(8J z<922Mm@+vgSB;R0La)4HOXR1H$kkgU`pf~jlAYdaG^%G88uYbvTTHueSI>z)~)nl>Hxo38+|RUL5Ik-(UTQL&8thwzcA^7m@agU73$v2_aK zp~@DISkyT}xt(a(yB}>?dBBlCrkWZ+tI~ti*f_=Vy$KuR zQj?OpKgxg;iYS2th!}5?aa)%oinF-K&z8gOn@!sqG{>f|~@jhK#B)O$duQPTci zu9FM{M<4Bk)!@?$$YTI;cRKbc4P&X#-xJ7a(1h%i>YeN9TRIMCG!RjZDN<*gRD*8; z;#H$%h45Rnlg(|AmZ{5%27k{+ z3#Ot%b;s$~Dto3Y)S=Cn&=8A}MZ?_K+z?5+sfJs8hQi;`{?he`zVm=fbbQj&j+CcN zzxXh$+TK40IPFBpw8jZ|%Xv~#k&T=5G0FCfQ=kK3;ifrioTZ1F7#e03*I)SF0ce$W zlCVTZp?fO}S3ms7t?1A~KQtDMh8h4EATP8g+)+I3QD%p-=DY+<4A{$)+aRBnxQVKb z9$AIm`F7Kxrcto5bc^XNmMKqd0?EyxDyI!nJuT`A5%3b0n@>53G-}+05XoZc-B%}uR=4tUdb8cH?Kd82c|ty*Bw z#8|1&OcFa%P_?1HpK?-29bjAC5Y}W>Z3u`*6jhNktE>k4D+*jF^;K3`#TTlr%|2E! zLmniYPNa_ZQ)U!qy^3+hT#D=%by(=}pLONss>)FXdGdk(MYfqZmSV3S8&;5~s({g0 zYEOXKN1^32Me>vw%o3WNk2M>rB4@D?v$zbaR)uBgvE%litR^23?u|| zpZ3g9zHm=npBt=+{VKhET8?fE2NHVL%+hi3K!Ne*KdExLK}On_VfLJ>L_32F8>wSJX52T{^`ipRB<&veENVGl zZ<{N)j~2dR0>L>K;;ZwglYvcpgwj>(qyi0EE6xrEdc^|t8&*RfJe{}mYSabod@;Fw zIIfMskF?*XpP;u&3G|Sd zAM~aS0BL#^lTQ2l#SA=Jj9KLG95dLFZ1eD?-1Mctt`SJQyzKngy!VUDs!P2`cV+Tq07Gj~&g#*KrM<9hR4 z6KDsRtuf=vcW6j>-MW9yh6n5sn1tsbf~C+LAb~2qe!T&as9mU}X01Q4dxMsLj|JNkpUlKT?0!!kkaT8#i0Wo2KyjTeB#7J+Fu z4KV74fPfY1O|H^H>z%dvXPXeUOD(@vHJQ?ec~V(Ns+s*K0-5%sGS>Wt0x=}CY7~O^ zOy$3~vyZSrx5d8u*BLqwYW`2hEYGQ-ytSwblX0z+; zEr+zD%X9K;6{VVOSuO;F4Z*2cvuCkp$%*C~kTqLn`K8Jt8U623_V*h?%R2Y3TqPwg z+H9c63OAZio0@%!Z7II}E1=U%S73R$|KGn=*>4q<)oin`Rc2EP%hPPel)_?VpVhF? zjGk#F7$x+=c!v-|uOPULM)2V4m;~S+ZBEm9irqUH{+hO1Ofy+RDp*3-sfh31*(3MK z$7+8z`vv;~xETY*<~|P>h+!QV-fH^b^aUUcZ{eSliyu(wsFv&Sd+@*-)Wc$6xddBB zB<8Cz=vQq&CteT*I!u1xR$90|jLwy7X-t1iF6j0F1q&oIT~Bmp|I&}-!QFw`Gnvgm zHmfL~rOUtYa`i|?DS#ge*L@dW(q^%b1QQBa8PC+ZbywPs0@_hTNMBz5F|$#*L**%% z+d-7Bc(-8cN_W39rulALB@2s%8+!j#7fRpsuP!RI@Q>GT=)H@7&jQP&_zLMXH%NEK z1hg#ZWxtKCO7QH1{EisDm2&FY?JRucruop{H~n&z(p!hciFjti6AuPt)Yy8Q{p32( zIrC!8&rV?Is!axpbti~6KpXZ)VZX!XGuLfBT1Ngm@@Y>^=zu&+%!!6jw=(b9az8N9 zSzrDg9DQ`0%4IjweX%x8f`)t??&ewz(%8~qJiH?8}cTeo}Y{pVA) zTX`E}4L)*S4y`gf$gRY1^9Jn)WN{7$S;IA7R#e+gic=v(S~O(dJ!+MhJ9fnfNT6Aq zF=xMjHuvbK(fy~t{kR9Dr`P=2`E#f3lIrB-zt$5q|E=WC0`gxJ_;$b|!Q|$IUw3Q2 zkJQD#sfpV=pYf*V_u_wk9T)$usW~gPZQ3_~a;NXF-22lf4!W)>o80~{Gw+|@kJd}~ z9ugk3+J>W9`OKfWbpQ9B`{D(&f4}8UBj=g}a|kyN&XQuh#Kel#!KfAOHlZ~6VCpSn^<`8qQzdxYv`DO3j54xD8AHypW;_WY$ zJ-1z(pSqVBHeEhQe((S_Nm9=u-!PQI4-t@i=xo3DbX!!Zg3WwOi zcl!sy!|dtV+4aCpkf%PltuaE7g}UJ+%_8_L)+-(SMFzWg)mhj`hql9x-MsihxA%GRMIK)};){L$ViP2OrS(zfY1I6LQXX0( zE?qi52rdaBEj;txP0UJpv1}z1{yms_2jt^ z73*#VZ9KjA>%)!z9Qdn~r2R_4NmXLYLrK*Mx}-DIA|Kt6noTsbO=l#*n>N)+EP3bZ zP9M-suCFc%PCi$BFZS%Yx|Vb2sav{UpTBUm)B5cBRi$g>m#(cjbgusTSKSm@3n3)s z>I2KeDGi;A9;ICC_PM>F=5DgbrgM=7>;SV(O;sGTB>6acmXg@}@KVXi&JwO!26aSy zGp#X1T(utRM}O?JnWtVZK!V8X8U{vy}$8dkaSyXNeF)|z&MQ5|G@m0#nWu+IxBW76imI! zF<${xJ$dcZCAndg^o7Hv-Wru&t831pT&BESNx5t$`{=dN(6a)cYv9>^6^3XBDIfE&wbwjQ05jYxPaLVt`IlI=yQ6CIX%=*1>y_(Y= zxwY4-b|v~!XwK*0ZLF-4NyG){(AKmgYY>=!K4jZw@>g3^t!rzI&%=eISqa1Njb5q9 z2v*<{u}Ja*sd%1@rRPzhY)+6PNCo})IG)gS2P}4y0#KGjM7Y6kaMNDy(`2!fG?M+nz1?63NIF`& z%#bW0?C2F)>0&o|pP#Kejg}8m^^&rnfmp)hCBeGi$$`$)7ugvFHk4)RqP+tnusus^ zp~+(z7VU-5tw=M1Rt6p@!C`3OI^#(gkMI3rR1c%RGcS;?etIjgSpg0w!jEV9?A)B)MZWS7gQLAdkevcy+%a>{*E1<@!R%df`%>CbcocGrvF==NFq% zSLpJY$*B1%NVipF8C<`xw{h3%M|Ic++oX3J^mecA3XW|Elcx+UOnYgKs|s2cwGMfT zw$`33#5gsvNqr=wee}5-%bH@gSh(i6_bp8con(_rwIL<{ODAc;Yq!D-&ZPbrB}4<{g>7E`K!tOiEH07N)G>P z>*T-x+K+GB&dReXGR3`BZydi5O*{Oy|0M^D%Cl!T_f0+Bb%!k-Gf$>NYB!fnzP(oa zez?E=9oKYkj_soTpWoL0UP*5GTlno#ubyDXreF76SB?wU;|6i7-0x3>`4LNH>zLS{ zdk)YMUH_d5dImDrd>S^15@gLgppVx^D9xxl9o_SUdMPS|d8i8IRv)Xgx&ujVQ3;*8 zK>Ye78>0}u*r#?0YBAS#3RdT=g-h`;nrmL`#U(ZM>#ZXpRcaX&bZAd}h0$BX>(Z;c zw#-%`m)o9cO$QK;@Ln8O(?Vzh^6a{$L`kpT94`TSP72Fl4X=gpSe?V@jYv6n9)a6? zHD}Sp9Frms_JR$^^Qbd^dIx9POz(iOOErL8tx_)f{R^>pNQk#1BguF8q3$?q^!u2s z?PatU+a`g+N%POGQ@gS=(p<2C{1JjBt=LpW1M$7>*a>fhu8IXsX+C+EYE{af8mc-; zjOb(&w^h_wc{*UCOo!{~5DOjWpd=H<#yvgeuj)r2Zgk4CQr^wM*<<}oQ}Zx$3aW7D z8SINXB(ZY^EB^TaiRh)tExM(^SQqAce5ooDK=GD_a7*%jnsBF7M4A1ALkC;ff$8O( zhZy1m?@9sj;a3}rApuO3L=bkc)Yxw9D8H==zSpg+TTzzf(y?v#H6NClny>wvuP(T^ zJ6P8EzTp>Ml)_R4hFAz2sAWVg!?;8*HpFPmg7TVv29LHpVy$6Tw*KXAy7tq(z z$gch+q6HOeDcFO>)y7U_VFL;djaXb%ZH!NVmP(LI)3gypqm>n@PAX(jO?E(C42ubk z*Z6X64u;ASf_T2Sf2{qOsFmWx7-$o&g2AP&b*w)SAUPP@i>6GX8BuZ0&0n009v|Q?!7N%x(>BziqadAhIUsEWT3`YuK)be!Baxurg?@*0b3R-fQG=ckl$5+ z4IOdxzc6)A_@^|Ycojh*B`5{^uLcsnOP733+m^cm6$@bbwa6F=I)(+=YEZYh3tY<( zbj>WvT88=;jgFzA15`D!3jK2H38mCCZ?cA`BNJGt#h@@4=AFB5m z@==jeoKqX2Bh77G%R!WRO#*~l*IaOE8Pgj4F97_Y2GY`qBY@|4E1`Uq7g2*ZkSrUQ z6Z(NlwTf_Ok8Rz}=yR_Kd>Ys$M<9Mg?X&|I`xARi!-vy|tB>KP1sTI6+?Hil5C26ce4>HBU_zH5a|p)G8iikPM|K}M_}d+x{N%e-I$Ju=>;MzMxN3>G zG-xFm$>rxXtdLH%A9(Tt+3hdwKNk9?4GMF>EKP&E6ROwrBaro}bACn}ROEgM%rzTz zuo{kW=NmC$WQy$IoihjNaOzeWV(=y+MT4Z%STAj%u|(;;9Awq9^-lHKPV9}jwy zqJ33}!B2=K>X=7ojH8lkS$mNypQa)y!hrs@xQ>I*jbki6YIXA3$F0y@Y4yk|(@!^` zHN9C;$&fEx)4l^qCZD;zLi%~xdW%YEi$=&+Be;Bsu8w}a6DitT$^j0*htBDr&$8W= zJN6S9xDuJ9s&SGab62F^YOA&TjU*j9C~L@jwxNCvb~el_4eeCwS6(qMGHX6#qmK)Q zlb}WkWGJdeZ=JvvjS9M2c4&hXl@24$523XL-MbQ0cO}{_7tMzd3GzbAz)cDCxgoVq zMFxjJB(K1${!A3&n8t5xU}S%ms0LLfh~uLimB)0UHo zXtBmW1V9+aBQ_18tzk?ey--UK=G9`E%Z>%59iuPs{757I+_YmtKpadX{w9IObmVw` zBuQFP?1w4{0*C;ibQO-JMj8R&0Bz48DSV7i{3Ii?R67DmJHNBQ8}5Yi+zj0`f}!kq z;B}&QVr@^y3EDzRLcnS1t)IVvd&dc$tQF&O+(!xV(GLfL22W&x|H{+U0-`QJm;wl$ zG`Bj_mFGU~(c=@uXDp`yaOauTAEbn^ooVCrUElejmQg*yC;pZZMp$??9l8CNrvY$$ zhJ^bfpT+%v!w07CjnKfalKVeMnGac@=jW`CE8{%pL*A^2`M;%J6l6O6{7U%X0v^QU z$GJ+7z8YjGJ;pnju`d}qTpz;|AYX8OeUowm{zEU48e4mvpKdqhsj9S0&_$ur1xZGZ zxb=32kiN34t+InoETOCBtQL{$D2+~&RexIvxoH@bi=i8mjTw^;=AlBi?5qY8H+BQk zO*A$P7SaX61$^lC^=LnNi*zrNH*;`dw9&_x?OjlP!1)-1y-3-dv!Uv>J3Bjcv2i?6 zM?nhY(JM`^_x-&JTKc@6L+{|QqO%XRWYj-!pjIuSLDL@`G8{T8Zq*_?kzu8?kgH5- zkPNMiu6wuhp+8Vogoukcg!HIDPUm(^zd{dbQPWSW5>lYo8=y_J{C~bDRHd^MHCn$z z(K^!RI1N~@a$K*{izQh`wggAh(fjof(JXZ5QJuzeM63)o+J{OLAT8(@4MtEgs-zrE z5mmk^L5*L{!oFxhQ0YfE$sezSb@xB=|Luk0NWpf8#9n4_qNYfBhzsi>$lmC6s-y)s zpWe-QoTF9KRVXohbR^T?atu{2FYLYez9XtkD)7 zsSC)k?ia&rK`Im~AKf>Z-tU(B`|MiFUMej|&7%Y&l;?vjw1|Sq8)4PZIyq{i1Zf3d zO{8-|)Tp0c+t&-81=$9}>X7yF?MDXCwldH{T__od(6$>)yd_*XjtiTMGKL9i7C~3g zti|FE^Y^5wE5Gc42rObqd*jV5#5O5zka6<<7UG*%$J*uLll(WoR74E``ltyByNQ9C zQ*8obB!BPan=ZE>p4Q@g6=9%f8cyzsY+2cd-+b=T0*R)*^CD65b@(DVzT|jujB7RU4 z#!2{sY5Fh0+sXe0;_@?%RS#V{TH2u&iszxH7~d^5uGiXUsWIL>cjbU7UDB&-kmei zZFd=7>rr%&e`rzE-h_gg*0=)cj`bN7JrmKIe*5goWF7>>x3<^vi2#ks`sDP&3tCCdF9>KzJuMeX&pBh#m z-4|8aiE}I0gk4HD`t5$6*Ef5h==)%DW++@a5_fTsm6XuAuqxc^KsW_>`eoj8-27K@ zS2n58?+jdQmpN*EK7nyA2`bJe!Ih6mh}YG5ctd|iIa;_3O+AZE6(C)Xq37;i9A8U+ zn0h5X()o?gyx()K{QK;10tpzaUc8zA_2+yi#i1{@HOQ;a9Yd?fJ||!Krj36`jyVrH z7~OVi>2OV?IVH(AzFWt!Xm^ZfZAg*%Tby~FAVJK2{W|BhFIyMGxA99CeD4sY&Yhia zn8wT;f7kulm3|!Zl%q>*{)42*!e8Il#4j!7v*>LkKd(E`P?^jX=SL9vdXdqgQ#!RB^9a1X`Z+q2z)qP3j8uK{Sn5d`_=Ysv zbq#wEvs`(>^5Jp8$IUI{YiD|we~CpY~S?qQp|lZe(G^$@AduF zHyqD~3EtLjF;xFqlQK$QbLV8Ux7Y5Ze=i9a=UT>0?HH{n&g0kB1n>O%?(RVh@r@3# zM6q9Nn_hmadzMNS4e`5Q^NK|MW4V^;@!Pl9vpfI2pVHvk2N0NucS%YX0?`}BhAcu= zcnGtQ@28&QMN;a`+pKEAc=u?OIBTjt7aPuSYBN~X$8R%PZ8Yw0_LeuuGK$4H1)^;3 zL_8qAl4@Aga9nza(GsI)?bNrbh!(dl9#~8`-uSeQd<7Q)+g|Ov%Cp-y^sLjq(DuI& zCk6F+m$UEkIQ0Hq7t$Xyl;wtDo=;k@b$h)SDqHIMmX?Ke^T_6_nA0hxg%shk>IWRF zg@;t$e`XkmKt1I`R06>o8cpbJyzR?T+d-TY~nle7j7q z-mMR*+i~M<;pU;9(*OUJeD=Hz$;$nDT@pVV1i$99z}> zbHnkCbbnWM|~W(cU~=?#2k(%BBoS`Vx(LpJ+?M$>1y#phCU?Rd}q9+ zbaSJMRiZWc*64l4!)^G*jN>N73q5*26meVW3UiW!j`Z+C+{jGcqC3rPF#QfVyBA8- z-rGk_4!4a7A{vd7`ZKmvSXocfooPw^`;SfL>NLQ);0_q6%K$W^rhwxP0kIFxao1H~ zkSW%BcUZ8&gN-`Ka++Sg0|g8XfWi_GB)iQ5Q|dO1!9+Fj@n(U&gCcif0syR*aUagi zx;fh=RTK3fKl{`5&Q;A-7;hPSWQPGXzttMMQ--7jZ_GCLy1a@Z03cl%{s2R6W~@e| z-eXZZ!yJU6`hjnvjEHd%P=4{yt~V68gissGC@s+Wd=)-XR%3RcjQwBYjn*S=3X-Jb zwK~8gmzWT1x?u3Q@2FGprj&TAhr9sBjR;1jw1JYs{h%II5H?7@NM`7-=l#%z!&NqB zgeW`2LOE_{&)|`#6}e6!_Jup>Nb^2vuE(2LVTvrC+8%{=4^9kDPz_pjpU8Dy_nNp{ zHCXmHFVI6e{2$3d*Y}=KaMHT1-rj2wAOXrm}vvtZveHPDL8a!tN0G5Ryis?(LkA5Kp z_|Jc|wCu&z6$&hbUu%)A5}#BMwy?*{$0DV7BT+2$eqOd2HUeu1X^kSh*19PT@4p@)G5ZU9l>CA%_rUE*MMFm^aE zb?V*<OC9+Cxd}!bGq)QopF<^&YfHMIJM|)+P>JL1DL-H; znEfi@DbK8Jn1{^%g%BpqXDI;C}6`fs%dCuX8)5omJK1BQ3*<~5)xT8R?nksea}bWlUVVT@3L)f zP546X5<{7k!i?|Z#mPn@Gy2CfF3W$9WOnQ;$r3Xd7pn^Q^9GB2^Ax1_(rkA!%P+a4 zWkvBVD7)!AL9k?gaE$c%JO>4SXVWD3o`$M%j!n}2m)8=w3uTFGtv9`*4Bkr;*)l+# z1(UNNH=3TdgeD&}%|)6Utjo1yDAK*Y5%rI<1m|8>>4r5i5z)_}WiME|{(?OQnI22r zDs)E*YB+{(_?UuMvDo#tgAtN@+w=S6pTbnluePOSKaM$-utFeuq7PtdYwqYEG4Cvj z)}a7llRNLfoqlnl^4@^y{g!u_(ml@} z@1T_^M=j=*YP9!TVB)Fc0h?boco=0NX?(~XA2BQsSF7WH9fDA04WV$a)etKQ#*J*NgHQMiO}0 zpAE9HDrgZ;6gG-52?lGOvcUoLoDPKJWNnAO6-kBC8_1ekB3h)%X21(DP?nX4+$=8# z=^*3|XRYZ6f;%826G4z%U;-j=KGg&eH;kZHqoa2Uas@DY-*98xtX34vz*r(J40}-qf*f*R4v~pe z_&F~Fv$T?uwT+Mqqd3EWQ@ym=8KTjk^}|`LN%$chUZizO%SE4cT%a@&iRNNAA2`U% z-2kJtU_vc%R3OD9&%b$4B~EJ*BRg_qJJ5FNx!%*cdj#lopmA>=oRTKqpDf-qDUM}f zFs#OXOknqXbY?Fmp+0vze70ouRi6;?L6SpSn%HXqlh%uwe=B#z=iF^_OcE_OE5&YY zyw;*9-qUogwB&!Ny7zdd{y%Ww=j_fd=Dyjmxy~iceJ<5zr6tu|L#2^~&`6@_bG9+7 zR3izgMwE0@sZ^@Xgl^JJl4^vIO49w}x9{)w*YE#r=keG%?{m)kb$PykIEHP0QeAcz z3I(9!mG*V|MeCiawz1LwvCxSOGYm<(zCwy^L2r|x)+NeCa+Z}fJH)x?0QGNvV zJrQ+c#g;vwuSRq(RRnK=kw{`Q2H-=~J zlc?`4j3XKd+98)#&f3Nz)wosvYfmX^-9 z4N{q7YrDv9Y~KsSnJyjJvT@Nl8*%seQtOuMwlYW0Nl|lyWOj1J@m(-d)N=Ul#_LY| z{>dF3 z@&Lk=1^j;wa886RjO*$F=u8y4dyv8Rpme_kv8d5o&Ly=x@@wKEDxfSH15OepYEb{r z0mkkx((getk^p2BglUm3DnLnmQ5k$xoXjJGh1xoGDR@9?K_M?6fW^vTbL9wTAIhI8 z3S9`fL&&REB3zd^mWE)qARTB0i{#>f7S5kvaDy(`2u$j%F&CV+iAU7KH0XpDv`*9F zsHGm;`JS9iX~5&-`8|RA#{>UI0SnOwZc8^RrTH{;LeHJ;Bx&xHZHmA%U8&W1QQK#m zfTW80ykS%>81IZAoE%tB<7G4zy(ix(rN7ulLiw9j9!|TP$Fd2ZE|M8Z6I+V1#=J8z(tQQd z+j9Czr%ogbP!vj+$`bwml}y!AQg?LDX?6W~2gllPd&t}EECMO4ru zLg!;h6=D-&v2laMTL`v3-Fx5(STJ>u-nYDvw3Ehi3>&;w;&k=qK(|&>q)uJ4P+l{M z5??*^3jF=-SP;w<0&mI16d5@2$M=oVHKS#+{)OVHNzg&2J#9-HW({|DC5If_EHaUS zW<N9~CtgV78jgtx{y_fJ znG6SzE4P`{hYt=)QcJ*qJ~+r5fwSR)oF}nA>dIXK2B(TegN(XPrHU?ueUvbjk^mtB zPHY260aI8=%k3Hqko^V)bDG-zyi`%kz*vOH<3>#z2>VlM$sG$Lj};OyoW(5h%Owa8 z0Gd06!b2+oBDefxgoz{MuJuy^rbh%<-}7Nl@lG@1HIoXegAhE)g}fAKJ@pGTgtp89 zkbPPN7}$E35EcaFC{PYlk?Z-W#1`!{Lb}8s6?pGh3JaC@t7zFk;T&OsonTb&$2wQ# zbC4zyFB1{EZn<}z?wIv0upV0wr6~Bj3J&(r;TKTT*g(b)DBgygeNvjhMm?~t%aMC< zHb-(fEV$qsV@&f?RlJu-Gu()Nf z8wiwwRPbic${I)tv(ZhSe>;%i< zo8WkhHzjc)#C;Ot5r??6hgC|DM)P_5K+kPj_KoCAO^4k*Irxw9iO#I@BZ)1AaBUBs zP0l9ou}{vKqLQTUE>66I-cCA=>BaOD{|Kro%{)TlS1U89H(OoG9UW$6aG1%fuaQfw zn#4AvEn^27c26yRod%og#;8w;?_dHCsNOCKb;38%YkL7AW6sC00@j#h^`eQg7vl6E zg*B%4TJ>ne!(2l>zP0B_1 z9vF`a%=xh{{rMRHS}>`4H(&Yn{$rS>6_7s%zG(^-$#=_Kj?jJ=KL*bn2R1>LpW}w% zM7ZU|ptEdF{RGkldLCV5`6<-OeM)K*{KQpbL6AM(&TLz2% z>k}cnZdyl4G0f3Ks3<>5n#k}LJuXTlo~TVO+A;~~P{>j8aw4_wHwcC+pTD0F$Lhm3 z@l*jsh$UB;8U$?mQ9~eY;3y?U-=8q|i-TK!ymfF-uaIVIH>5o%G#iyAL)ELKIT)!H z@7*W^;&bv!TjB8}sbEUF zYoz%y_y!(2NBANm4c$|f$F~w~(qi{~L<%c^Efd&+LusctCbQA;IX3%qQJZt}$h_q3 zJ%7^#Ksz;<7 z_u>z3O=#v2JL@S2{dE`GPVZ+&n{zNqu#H<}P{#k{aR;0x96B0`8(;_!s6m)d*`)I} zbzqh6`ZIQmXp85_Sz8MJ*bMcZA)nZ`zJ+}1z=NSC^A}2*6?}Oqg~MLHlY>a;YzX?} zJ6_}6yuu3Q8#Mc@<~f_-kU7v66=u(SE?*M*ZV|ln)U%g97+~>!yOT!cx1J28Zd7m1 zOkbad0sh%+$?(}G!89Bz=RNjZD4V%oBH1INanfx<78|UId#)e$cFD5?U|9RYgVew=1SUN*sg=Q~wA!6k7ClQP$12lJI z>PYK$`Sy<10!cS`*1O>hgHWn(N5i_^=4ZNwckyp$EGgsf=(OHv+0in*$>ksK80g+h zil{{2ZyDLjPS=U3TvZ!oWa+;nI(+BSpy;Qz!YYj2uH`1VR=c;hM4^R+Rk=!Y{_Bv= zTKZ4f$ky3ikMH0QOM5ZL>j(ZEOHM-yBo7wwId_g7M0@D7Ev1O)`1+Jz(M8oMqd#o- zdsp$s&iwb-!4dXS5T^8^|1)$f=`WaYgw;r6R-LF${5c8s^C;FAW}|$yb2FxSXX@`H zo_etJ73z1|B~6NT>d~%WzZ$_0Zij5Iw#VLE=JmD9`s4M-7VkHnc#>(@*>tWrR)WX|{l$A_uS_lmLys%p0?A949s-IE=9%kD23 zd(1gleewD1iZA{%y`IhmT@%|6rj=R5c zwUNE;4YV4xKc3SvM0|B4=VZ~t@s{EJVX;4lonnq$JzDvxB6o3Jip!^wLss2l)6)xI zw!E_=xcH2oQd?Y~y!gb$%JcpVciV^SejgF~fzXkSTcy*nt)KV4IbT3&y*@++^Q#k7n=*CG$?U6DkSWTo>bx+iJ% zF|(Il9p2Ym_X?|zQQz}A{rX+^`h?a(i=_qTI<$1fyZ;}ae_k79R{i#FIjsfcK3 zvnWpvPBxjXKh!zEb-xmAWL&kGa3{;ovpzRC`({|xhrCgX$5)pdEuWT-x6zJ zZ7w```ndbspWJ0JD%~f+WA5a}9_jpWLRz1lv7_U%-JxZ*LM6kvs;2iS4N%E=!KwQfW7@#t4e(Ewgxbn0+8I==Q{u+BW7% zQ{Jh_on7IJ%8kw(3TCX`95ye1`5-ElZ^KVGVRbwkg=-MHh{ z$z#&F2?A^atCy^ z{8)qSVkD!IZHqS!akt1mF2BUq*`fjv3J%t~|ba*fCE672p$*Byv>>`6|;yz)H8lA>OvlQ5kTcEe5?}SR-S$o0WO+pPAN=gntsfn=FdSZrKQX+4} zWUzqk@F|jmQCCXFz7?%+JDYzHW13(_%{0u)1fQ6RZ`cBz{=#n)cHXe9+>KGs6Erj7(j=&Y~^9q-? zsJ`bA3##2CG4t4rbs5n6+7srVwyp5%%Sb6ac692~9Oy`SnwI5g7o69B@Zgo-`vTj7 z%u5mPW`-XTwpOi(8&e>+k2rk#S-t!6ryAq7m&s>WEt?K)VM*zn)wThpll zrl}KBg96aN!%k(%eqZ3sZ^I8FcZfqU1ux(Aqw<*&)0^@|UOA$F2|4gwKRJq$r@}!T z3#FQ#qs#^%vm|hTt^}V0{v(U2WhG0~01Po;F6}6_49MBSo;#+b2-%-T091v@?hh<@ z2?v$KW!Lnu?--JkM1%s+OvW({kFmpZ^q8DPZPg%)6QJb;o(-JUESV>Rv*f@$Id^`On#G5ZP3o>^ z6&{QFXSeij6p^z{R`BTAuhAED&`E=r@Ci8mCGEE z7%1R6N)@6^&0<1&b=-MPL;B6pyw7mIcDQ>re0~f3))GUV(}S+fTuKysfjo{E0k9a5 zR|I4hsU%c$=dq3<*r0oZRxUI1Yf<}-abrS6TE!Jn&37x)>UnI0OtK&x3W^3;nnQce zbA6}O{y6ok^MmulCCDD|DlKwOV- z^#ThHE024o2JTuQ@k!+%Wq>ch@yk=Awb=p&LMK>6#Hfr|suehMTuWd|D_Efq#%X)& zgGKmeAoGsMu!W5y9ib=zY)c@atUcs4fW!5Mibpn9MB?QgD_<)qI1YJgKxYavrirkO zvZwj=6dO>tC2%c7ELP;J|I?(T8ZL> z-xS4vMC%PJ`^h51KhS;G_4))*@ERyjj!y77jGtORUekj=%?`7x$M>{T^6EnxiH2-j z{iH-fpDivmS~nvxG%%9CY+I+sNtzHuiww++1ttQXX6KYvuiiEskSo{Qeul$l&;sfOol}P2bCbgRddKm1{o!w?qRlN-4We_ zqtqtIZVaHF4kQG99xD6=re( zfE-W=F*O)K6&x%zFC!Hw=j4F;tw8=DvHU88jUp3pqU78)sYZiFv>NIp+t;WD@mR9L zQH1dT@LgQ(%Ea7PB8u5?;(L8)a9%Ul#|X}9Ph)5vfc`suQ6}0l4L%yFUV?tT4Ouczef63Qy_d z3?Pc(T71%{jO)*1!=2ed3>7PBwXr|s{95kYH>8E2<`<}4UQ1>XKiGZ^Z)*wl zSFD~lCDAKZ`vG`eq`mjrNV;1h(Mg)Ai;C&B{mmgO9%|*CRm#c4AWE zE26gAz*+PVkEGV`?&w3b(X0bgViA^6jG&&jpGD9XfPUbvKOHV*1e)tA` zA*kNDh$R0y*PVs1t%r%#jg+RdU$&*=67E~taYn_XlYwgp{~*B-L}}&Bd;=&ADKjZ+ z@EE18tH@Bp)@$W_fnf*(z^_0P{hW_{gi0^r6F$d954TA-V=jaf;r&7V(z!D&kfaU# zFzPbXeeT~-I!0x|41M(4F`ny;*X<^_Um4(|I(NeclR*-pv%W2q5`wf z3D;0Ur5x8=QGS7g$pU9hE7&BBh(HX$j`VC2iHuq}yQeKy{;8k{wO15y=v%DL7+_X$ zvTDMVY}7_+&B$?mVOp)i-T+LeB5#I@bxqiBK|?S+lCH3PL9U z9~U|54#b&eNvxF|lO(0x=0=@j1Jg@j?r!tJHq_%?NJCb4d z*`_6jFdixdL(4_e@ivgZW+5CggJr1BUxvRnnd~q*j9IN6PlV;0Xneit-z#U$zeeO$q z`rxX^5|~m=m{I#O)UP96!{=PqEdU5Vcae_r@ZN_-gr zvQEOn!F_lIepHY(ru5gGHsCA$A&Fk=>Fddt`~{8vW$?IL@L5)#+NVzfYvv;PCgYdv zQTM8Q@r%Y{Hi5f?Gj&0nzumiQK>q!6kMSbO1<+sy+IVTI?^0BH)%qmq*-t4=kLQJb zjubuh5pAS_|4GvY*8=s%uJqZ8zFZK-Hr6K?kN&&X@oxTT<3C|Uo0gQ-c0Mo@%R&>6 z^x}%_Aidjo$VGSK{jU>qp?~a%{x!PK*tiyUOk*SN#1DMm;g`mv{hxvDrpLcpCG|y| z5VQgQ3t}_v5{Wxj;Kp1ER@Q&op;yoeJmRdt-eaYc&7ta^KUFLWuJFJj`+|e9;_ITu z^mGAA)OfZGZ#YOv_0hi;`2FM5*WMJOl~F<)XtK0v7Fe}R&t{a;la6bz9<91E(|=a? zU;!CzU^cgOlRij`#%=bGTsy#(277?h|=-V969}@|YB>g0im;lhKm8Qx7lc}RucYs&CEN%5C z5|TLH02@l4}o$RoG2@xi7Vd!R##+XU?{~> zB;3dKyU+H2%7s(mehA6kmug=G93Is^FIdSMj)wyx-_vkbakU<#rluctci!kfDe*_Z zeWniSQQ@rn5(H+ePlYyds_j7ai(MK3&Ja=>^^gG{Z>Qi_SK%n(I5k@e!e z`qb1N#JFj`3~%qcqp3tV}#1|Itv$4<6H{o6YkOaO zVi{?HBx%qx5SdP=k#!fwQy$pX>!bWsbeYn#>OH)SRH! zjcUAiDN`)FStAyNWoNH|A9w+E&Ad;T_BRIM!Y!2iov78wERr zK`hqDbZnBuHQv;g6C!fI4DP2zXx1&+bH9bpmg+X#xds1g9UAD>zN+*(wVi(+$Gi`5 z0oOLo^1W{7H**XB$fnLlupG6_lWtvwvR|io;gksVF{DO^R-LSjWqq9>`n9$I5z{xtfjLB`D~<-z8LGrwvhFq*;(Nwup)NEf3iGKDTJLq}6Iy@x zJ0KK4w|T8F+-o~fVWnfUqluxzI<5J#XTJTe$dBF?J&YBxuRiWw-u{Y2&A7d%@5`oU z`}Oft4`velbiB%;byE-NpSr*FoQm?_vIkfeuWNN&DB07eV?Qs$C-C8Rr;?PQf$T=c zh8x`I=4{={4ut*y31&HHhf1u+X=#HlO2x=>b_+JZS*gV;C{S8w?e zsb@PuH;rLWi7zT(R!8DF-^{58RM?!BIO5hH9P&Tr&ShCchBc%`hHf;AUsL;y&i@G5 zUu~2Brcx~URl3M^@1w%G<5ou7iE{=HcSzQTW5|Pj0o_SYd3a!Xpg)8}BA;9nzqvk)dTW z8=~zX4QZ2UP|}b(Y_s4_P;^IW`NigX+gEIn?$hb=*&9Z6hSl=LoaHq(turI8dwzDs zZ!@S|&J--G81F1y?ONH@eBAIg@xhAaV8x4OyE*QCsEob)tKZ_3W_K&Qvvk>qKdiR* zdqrN6+r9tD*XDQgKA&8kGwObHY3)v;@Mo(`<5mN(pc3F}$F~$h(c9m-emx z(D*hoIwHB>F_YIELESYTdhWF>Cw|N7t*w<2ld5M2YO%8k#KNo3S`zJ#XMT0csWV%a zl44KjA07z~%e{RuF)SiEf}$4@<7E2pX`#))smiv7yH|n?rrr7Qtv;{Zy7tnx4&D3@=%V?(=pj6 zV*HGCZ>Z5lnMuqx9gsQ>tVA2_74EPeh{dmPLw~&yL7wdw4#I64aR2g!#p8Z)16K|3 z4nLTyw-?t(89S}C(-5$7Ta?k~15Fq&?v9@ukFnCuWt%Ldozt+5S6!;n*%eS_Xs2Lg zEeg{4_}A##02B0pCNT5+OpR@t=BAAouXTDN8q|XzO&|ZtO+# z>+bRAa`VepW$yGXr1ss__0ov`8S!4U7-wQ=gcQ!xGvV&>!n);$z4N<5#d84A;G?I= zR97UP`;~q(si%!JbDiim1|VXSxTg0t$N(U2B)W@BjZ%VTC+LWTACFCXh+%tq>1ry}+oZx#f%d{KZE!P7gafW!CpX-DJ6YimH|v7+*K~_w0XBBS z4*+#Rf$~a#;J3P3(H9`m+Sy4}@ar0%N3ULr<~#fNWya{l6nFX`WUSA2RZx;TY70kxQGI4n>BAOR6dhoK?_HZ`MWoPJ_iom!}Xuzm7>PyqyM&mah!*TMRVI@f)zmUKV_u$Qn{1f*n%m0tjB{$x=H!AK*R$8?g30ybPjeJnyaYVJ?OnJeSS z-&EAz8tQPIGbErsMJl=WsDO^@- zXcaV%ru%7DMF!6km)AP2s1RG9wlcCtpBYG8kWia`O~MQam}8gGKAMpBIMHgGVlG2p zI27onX*BqB{Pe=k#;*9~fv4>PPN0Rf%m8#|8^%aIhX2)}BUPYD_G!B^tj44UCj@it z7LgVg8ts16IMG3R)46bTI5)^DQ`2ZSAw87$*=ma6IEBvbKYyB;K`LCbxqCJwuj7%q zp841DXxqKc9^}`w@ky(RNk9 zaU%a#rB)~+tgc_ss98|we1om&x~w1$XyC=&Q*K1Y8st_Zn;Y{L*y($YAI@T%p@6*! zA6u0~jS`!vaohBRAbmm|ce{hn!LizlFj@0TMby17q== zKsI8M51J`{XiIkj1*kkWqAd{tDSv*fF~6|Fd@r4J_8iqrLo(tMdO-{3l81l@QFTG@ zsRDab3BL(=Y`h)a`ySh-gjZc4UQ=LG71$OfwgVcGeZ*bUEbUdo*}y2jprBMcJ96K- z0S(evN$wU|Jg&jKi!<8`U>4Tv4AhvDMnF5h-%}8NNMJD}qE>KpMzw#R0vr&To6sz8 z#+e&wVvLj)8VF{hpiY7?+-GX{;Kn*O*v)}I1CvPXUnXKpA&z6ycw60I7_qW1I>TMfl7|W@ZjTi4(coeZ*Bw=t9CUiHUxPjJqBS$ zG>h^q^GTJ3xQ0Z6EILHy9dVXVYe?NSqyVNx6&tk_cx0p?_0rA1#Zkp{i%}Kzn-cVI|;@uEl$;!b@m2JCwGu5+_=K zZ^Dpm+nCjqefngH*;;JU#-;X9YU8Y zkcc*9u%}&rTU4&n4E@$~2W@rbCAW$U&r4gZV&Cp*RJg^$eF!kL46^RHMEU#9v&!DL z#mZMYODm3frql7vemcQ^heB9&0KY?wx&O>9$r!ylzL9Ahz7c3ouofSG$D#(fou)-f z0Kc+Yt--g_GTyT?K5oHc%!KE_J$wcr94Y)NEO7k`M|Qj22v_2o zf#G&GKGPQS+RbIH21}#suoZ}3#}I$mSoxW`7d3cD0GFP{Pak7me9JV{im0|4XGXak6defVoM;(UOR zsPRii@`5z;e<`sLJNTCZR}LTy!1)2}d2LE!t6&5G$FkTs-iif3zxc&0g5?FW-*c9p ze5zdqdY?eDjey=>1|y4g?ZS1x(Mc0v-aaC}c97!YVeyepcrr-MqvoLr$NH^QDFw#g1q>NE{bg_N&ZG!PTWAi&_!vDF<|!zBUXt?7l^X1J;PG-=m&<@9~Z8eX+nbe{h zYOPb)=$o#nAKD7gw%86p4zDk5@;YXA?z3Bk0)4!aQVCSN zZS(lEA?ACnUvH(g3q1GVmTl!g*!Ee#x9UVhNTkip_iN!^sH_kM;bT+@I<4=8=gmv5 zrSPrH16E0}tu66%Xs3={FJ>E{li2A@jc3P0X4{qju>x$eODb1JW>qNamS(R_`&4sE zz#zr1UYYBZkn8z=oo-}|TWsy}9-pff^vjE$D8P}}9%ZqUW0wR9Vr=fDBFN7O-5ARE7w`#CP!GTAR z?=KYJf;hx-g=u$admn)NC0PDgtGuvL9XoGTm?3%>;{FLvZlNs@xS@A7Alhlmx&_$u zLAXsZ{PKRzk8W(1LS{6p=a;IaTxQSdq@``{#x~Qi=^`|sFzv+xH)&W8ZQ@E}+5!~@ zt?(0TJ{TRu^AuRd>8}Oe{L>+JQ-P)>0IEN2{YEiJVWWSkFf_noAQ()9w&k-e43ww= z4QK#ZWNW)ll+?ZM76qRy+T!x=s00^ANIh}rpq=#Im7*H}aUrEqbVpvt0=JtEN4Wr2ZPv8qEgR1%W16xE_mF>A@>K%M>wknQmG$B)M0vZEr(jBBHXUo zb7OWLY=};p7Rg?5EaWOQsfSmSXE7m?pzpPtLYA5uS>+Q@48qzuVCWvS0~6n=BA0^X zQsth{;F6IVSf&vfH)7E(lI*WBzxlH3tqLutllQWzSpo}#7i5}1d-Jyxgj*N^X7@Q3 z#CD6zn_%T-H|T)G30QsZQ8d{r`f6vG=@9G4DuUf*-Ow=mhG=wYTm3k?IzsGpyz=T! zW#k|GqueT|az9LDw$;LS5i4?OvGHLCE6uKoX;iDVdRDoSwc7blZWqYZJusgt*IIKc z^jStf+{B?+v;XkA7gw!3Sgjn<6+X6%Df*OzSYqS?4D1bBOt6Td>V$w{Jlk7oB%nnV>{4 z5ZcpQitxTP@istru)B+fyh#JZQ1W1A(AY+Yzt*nz;CI@9bi4?E|Ew}q18)cP+8C3a z(2Xd~{2ewpDR1L`2x|gc{D-?trtz0A3Uo|Zau*&XMxN}XMJE;D`ZPiF0pb9F6K0x< zf%k)oaW#Nxecf3+Tu-W^jax^7Qbf{fc(ZeRE@zp5~Q3oh8WWo+WZOx;b^X$tzyc!E{wYz0)Be zZo)_$bb@zkZ2v*R>-h}+M~9{!n4n-#pR`R3n055`|F(8#&QI)^)@ zh6@I!xEtU91*$U^w0uUSK0k1fZ~P6}83;Aa5iP_uJxestUuq*#;~%_u9up9vysSxW z`3x;21h%NC+sK5)FAWwnFJ5afez?3pd3^SK;7e&BD=C2(*?>t1SkfY(=DFB~#2K8v zam8Zm?IqEJ#1(f#RvV-{cfk$4VmBai8lPe4nM+$EhxP@IvDuX9kxIVV`1rW}k!>9r zH3}X57=|LEJ#MU48dC>9ig0m6>#uJJVbtvEE;*p69(5SAI6{a?I$Gt`Sb20$(6$-+s4b=J6xDGc!;4 zP9HojggPBO@g&6h@Uy0+TVG{e5ZLeD@+>0B-0MYGCjL@ySWXvQztiQfRUhxrVXxkf z7%(=cJ>A>u#nJ(J!Sjq&`CiX*UoN9Pi*#S}465<36Fjyg9h(-_NlVn||x#m^A3j zMCaVuKQqr)_~kB~`TfgiVZq7y6$L@CfmU?U^RDh4m{#+RcTLe0*Ur_5=A+~N%2OXz zHR7|U6yq8J2Nx@skPG0*1$|n1l38HBT0-G>wHaRPkuW{ta7%e=lkOg=+xH%+R7DcO@GW$xy`<@-e*5=Y)fcPXwJ&NUgOt4FPScD2(EWrdFO8A zwdn&*#r2McBCX^cU+FX*v4P*ayA-~`MGC~&O+(jBJk2Mi2C=U*MHgD=BSNOw<^^%) zTzVo~K5=xh&-nFzCBLRToY1*CB4k#NQFOA6gLde0SiCX_WqA5j(&y%&L9w@&*mDxmM^MGG<4`47@=5r-jCf|jypJD8k?`!*UyMUd4#;uPZUIZ z^+cBGyx<`6_@`c2Aso)lYg^;$7giXoLHa45q;3`7c>$~0e(hNirEFST*QN}=ccXlM zwjj!DQgT(8B%W_`YOd{=`uyTtHSWkMqK@J@T0f^Q-Bua9ThNP^o*9Y%`t`(J-S1UT zY!CeRnkcY4ZOr3p&dq(LJNx|7P~?h#OXg5}V-9)dhk52V!i3pZ5&F4dXZT+&T~1KY z_PjpdgkQ&3fB3od-_B6KOCft?le>&y&og!G6J4dz&cS&@p+}YNPq-HWlz9^!X$go3 znLXOI_XH6;7C_z$W4IM4v4uGj9kvE3&-{rM%i+Xk=6bIJ4mwsiZKjwU_LdJ~Bfp8s zJw(*pq`6n(#@M8%Q=^21Mk{QazRWp3g`6v-nQXlgYpNR(;o3(I&5GPixTzTSRM563 zcYy~x6$SoVL40agtSPNT;;|bf@KGFcpWq#n5#G3VD$wMYz~L)I!@i~=C^rGXrC|_n z-W4!+^{YbX*(@&njPAzBtfu6pFJCn9bjtNpA*(L}^io!m+6aLzqP4RZrcJ3ZJPlyg zTn7#>7wc(UCFQMbq#ipJZp9a8*CkL1tN^#0u2mU|w^V!s8-DXV#Q&E3a6CvIx>FhK z6ZK^ElQg(`-6DjQ(g**nq(#0{dBR)hKkr5sm((nju8BJZ-eIHRc2LRHKUZ|{P^S;C zr-0mSO}({D2J46`o4N~sGnnt3kVrtHo8cCENfLwd`4w3#2v(8{T`i*-W=(SEeAa@% zWj%x}1l+=Y`#t#mM+7eq6*!)Rejt*6yWwkXJ}U40Z!W?xep18uNkaRVTNvg5s#*L3 zZ?5gDrcYNB?C3^gzW#YV2wNVwYR`()A$`f2cB%LIr3>10CAHbGxPQ|}H?QblbC7A+Tw)`UG&wZwFORoebnpH${WPe z{|-|$7T*u8Zxg3D2NivbEemVP|Ek&#A85Aw{jg}q6~ol(r@wdTctTDeiv(~x>TMl8 z7uvVvO*@P?9{t8Qp1nSF?Ze;eHK;R>;2j$*yqi`|qtO@j5x>#-$5klJ29Bx0j!ze& z2M-!gUCAF;{bv_%i;?~J1HI$h*8D3Q@}FMGfBA0RB}Bq4n*{5{AuGRvtK={S4K?cv zY!LQ>@l64LX85a>s2E|w8YL>F2@x&VVxLG$CTcT;TC0Gq6QEWJQ1N_JKCysUk4j90 zr72O`>-mZzY$Fk24q(y*uxKVK9e}0tlh!fkEp0-kXi)3;$T?e5jy*%Jnkw9iEHqc9 zE{x3dCBkBqsk6h{m5qdi$?gD5-h|AdZCKa@mMW0c14u6oGMTo4zbJy)gI(2wya6R; z3Snl%)Ejb)&lEOBfjUXr2q;isAsDSdN7I*CwWHz{$W=TdK-Vb58xS)(bKwL%XoBz%|SG;%EyNYM1) zboqoCKJFd!f3n(?235U%W@Q~*MkiQ^6yk3a-YNqyruO?mnOI_xJnb_xEl$w(H(~UHA2RJ)WF`>q?}b`pD~8V4{#5U%gC7}!eRJm9yAawz! z=p#@Ho4PM)6eYi5YBK6Qu(f^JKT~%}E-D(paHxp21Q}dcX$?SSCp9v^YaHxLUd%vQ z(NKQ0buonf$qF!D4eI=NVzdltupynqhevPOH-1B~El6M^I$uK*jX>5EFt7FB>-{z$?RXV+6b|09GjRpVdXg`?y=c!8{WF4IlYIfGzMpfaQ~? zX}HSFSS)am)Yw1>$K9o&r)9W3hl)l8lviJYmuy`}C2p8~d7A+iPSeibKnzvjW&bUB!I17ALY{3%1Q5p7^3a1ocT@6ZLWprBW%4ZqwivrMN<9@6veI?j@ zmxsG8!}c-pN6^|7|Lvu%uHH7JJlJXPC;Cr0xKR&~RORKEEw@Y>LoHh2Ev`~R7H%Z@Ms`P*KU z*#pR)X3?8uH3u-eI1Moyks-3(<3`o~vTM$IN8LS-cW=Cg7eS-HAbZ92_Zy)DUk$&^ zK{9E_ziUFULW-L*8b3=LdaV2z+i@%hIeWG(gpYV|%VTMr#jG~mjc9H%M5)$XYTkf0 zUr0Zqq!tA5$;;)msHO6GlkLn#T8J9)-Uxc@s2E(*byMlFX_DR)WZFAZ=_){dGlD#1 zrm!CT_+Y^`ZS%FiJKn_Ic>1i}TdoZFx$;UauNldBwG6dZmKG0V(k1JyWiq<_g!OY| zv*+sARj5?}dM<#Vp3=x_*6@@y67w1p07N{0-8y*=?kOr2g|b>tl(zT2(}1tF@VKA< zVBMvtZ9SAz!pt8P~uuNEogen zhX*k3cPnY(Br05i>r*U8qyO2uLF&3SYM6LvOow|RJWx@dOW^$5#75+qlc+cXLQ@Zs z#YPQ$L9bN6;gfdvaxNPFIJd%J+if21n*jHX*)q*6BR4|51Uy?oBs5;iIg7i&-#Ws? zsrgtk%pg{=SgF% zzlB}=p7>gw@k=p~QG-i8-1J$E3wn#w1#r%dWuc9Df*Pk(;6tPFy?p%QIU1&E*sw9& zYbO39AODqIf)SZ`nH#ej>2EY6JENgxx4T!SXe^*vd5e$>1RcZIkUt%(C&BCh)sgDs zL(4mlUNKlPPi5rD)L8kO{$az>oA;p~7ia*(_mHL#)y=oqtQsF++z+6*&4*~Ck(B~hJKkK-Pr}RE6tI1 z^&Lv3M^HNSM${Q1r_HH;brlq(S{?ULAXzHYpsBXkHpjK6EWOT++~(Zlcp<-Hhq&S0 zi`gR^KOmra!2#h=chuWn3$EP$wXoz-t15C3^w9L0H3mniWJqEt{kVrY8k??rKQ|I+- ztdp$OVAx40Ua^jTzU#_UDP2}#jMV->i8 zfPxi{ihb|%!!$VpFpiLTxh@XgaCFT5a80d|rM~-Qr8zvcUZ7Uq-DVOTW0V4b=4vdS zhxCyHU!DQFJQbOV(4=KKs8j)3_qT%}Nr0zZ+wz-lkEP*Ws(@i}v4D-ZS&uRin-;;Co zR5-QbqMl;ETpM}75suO!H^@A>6g zlkkJG25GM@?B=f4#8t(_}<-STa2S8KdE*8lR2HalQQ2XGfrM0JnS$(BWfW z%J3P74-x=_1bgtv9h^l4Zu!%KDJK3s53dhH)-s%~8u})C=F?b)Qw-$Z!{_cns^w7g z9o_eQoL=M437DHEY|~nDW$AYKPr>!c@axxtnt{Wu8_mBORi|0CJ1UMm({YbA9Wp9; zV`yCc+)<7hQI4H$d%Dl~PRqT)IWM~wA;0SkIrl-`ht9uReeId2(R4@KyR~l?(>nPA z$P`PMH%Jr4<^<`u`DU?N9Fe_+W~|(vn)2FP#YREp?1FN?8X46z?KdH})}LSlXAIO* zFIe=@SbnItv3^B*9?peWgFI;VHK8Dd;gkoK_G(%OWZ$HY1oRY}EpQfnm|^DK%3q}J z$?J?CD=g$*S!M9R0%K(9zgixPAW5t87o;qoo4hr!Fqh-?E>zT&dfUvkWU~D~x73pJ z>15o>2kvhobCw*qXfUWRz1K&(aEz{!jKERB4=r)44V%W?le%T}&Xc#3-Rpaig5#by z##u*RH)1Zeey2K}zWy~Vdo%>cO^?wJE`5f~f3p5rBVd8jsbt3XoU5s`_(gpZw-mFE z6C^En9DGVXHggkOZTu)R$NiP{oo|lTDuw1zNr#bppX!r4WpL)BxBJaNe37NVLU9dz zoh6>H%4L5l0EBhtufFM-1wf?Zv&pc6`?&!3stUshl{ze6B=&qCyb*#6QE4MOtdii) zLc77{eG5@irZ2<2av)Y>QkfMmGRO`e(XkT9M{-R{a>a!v0$FFFiTU^~^scOk5zy|- zhGW;zR31;_HZoJ->_!f;P%wQ6@wk0j3L?(Ak2%@yG!bp#>U1;dE>?|jsVR7QlOQlB zFVJqhaet|c41uYx0JO}i@Aqr&s|+j!(Um}_0VUbIbCmvpB&`@1mlfFNG9V$sfcwCf^o1Oihe8_7*6R(w5T zBKZBGKf-o)pigR0E8rs57ai!V(3rR{G`FSk*ijp}I*-B4R{!ckuVmirHK~4DgUBjA zz%z5Nj*U0dtd*&cpiWl!=7p^1Wuf;Kg*R(i8TyEV7-x9#c>_aHqC)qQtoVIruROb8 zeu&t%U8^sl=*O+2r2+%TpoY%-n(|%NKTlSrh3(_G%Mw*d);T*2if(34JRLmxH0j4{ z+l#&__O+KWP^2yH482|h8McanJ#v9wRp)F>| z6QM6A6|>Z1jg5P9el0w*_eke0SX;WbzMPKsKJD!3e7-68&|06RV~6e)HjOWe=iYez z(YbxcMBDV=os;KJFtewI6&=3~{+q@AoYZ9M|NgjWQKPoQ-ILhS_DLT_%r;ySuZzP(E)%3R@&9bQ8+^u>+n8(NIA8F+AMMFk>xJ>8mlWE z_p=DNkh?5lME5-7hFu(SU&P=D@TTd;-1N`;yhF?do#pVA2I_M`Xv!-ZXd7T}`aqVKU}o4UX^Q6<^irXx#y5eERN#m{eLy{AhRXra~biei^l<&K&au|8a zcqAN1H!YRC^|A&BY|)5j=jt2%)^5ey!?q@0(oq+jGM@UeSb&Oc(5PDY%Vv(9#*4trK` z@a9(lmAk=Tn;@-RUUt&M`(#Lq@AlA^oYvTz`m~&LNLb6nI^%TPP_>hs= zJ706VRcJ2(4Ztu2nrtBdu$BP1O97dU(4aSur#n!&TrD<`3nAtBSOU@=>!{w7U4w6H z76UmuL#Bp&Pcbhi?OmYOKwiIkmB#M|qvV~wCFhH2Kz6^_lmhQnj5rp<4GrM)@&ND3;iQdBvBB#40PmDLI?2rA zruX?@{eLO3+oO&jd&>OoHZl2bT~DRK7plPj{E|dugxJ9E8p^p$Se%lZar;T2ZRLyV zWzjEEF`+ze?EIgo4V6u}Ut#Y|etvxFLTiCPsLqdM^Swr+1}C-=D#@u=&y+kKMyEv$ z6H?|*n!l(CBrOC?1bItrT{ss?{L@!`Qi$CK=^LveMP#q4DcO)vGUryZUV&ox?s6B` zgOA@G^2CUooTX-w`lXy$1m zWlso)WC&_&>Pw&;pzIp&IaT=@9jTB*LeD<+jL?h z;*AJUyuLdJQ3UIx864fJvGWC&6?;MTuzsc7&!`;~tznu`;uHWgDf?NmE`YZLgtYpa z)xI%DJJQDUiO<;5zUp2b$6T=qZxXe?P4Nb1IU!2p>l8TZ?^oc%L#q4dQ8EFV4{VYP zTvq}K0tuWbpEw|m2c(IO(scQ(G(H@qT`q}>l5FD5LH3+y0b(D%jn_D2kW_Ct=USW= z00M}vS8b=A>m3F(Oy;-03%&pX!r_ajyBEuFHzAXqY3+&XvXmqBhn^ zcILXWx@M(r-RS7!k~mlvt&=RigwA@1O5~$4Y$y|% z=L)TOBB-$>*9-6rM-=-3a|o55v>>T3t zF{1R>msQ?e=i5W@Y(c78_e$NU;bx@_| zt?A@K)0Lvi_e`5f%ImsdWNu)A^P;YOy(iBF@{aW|2KHasfB@(fCc~)xJ1g>#K}Skk zEE$6N<%oiI@xcs{)nv<$wnb(YeLMVu4=l-b7nC^Lde)nJ>~}ivDHG0v_xISqgy%db z22$HuNX7t60D56=d&3UtD-(qwJH9unu8yPvq68h$xzJ`_ zhk*hK8@K$uX>kn%oe*xX$srL?z{!lJH>5f*Nqklc9);t zlLU}vq*??JJt;);QHK9Z@2aK$L+=WZ1yUX?Y_cRg+ND^YB&7ZFHWeG^0tVB-h@S9Z z0Ne#Y5v+y^k%JctiUycXQqIoq%nPzME98=>xty2BdIcLuQg>15KJ14qqvf zo%~r;QmHguf!48n8+t0)FhY9+E{tTIhP?BW&_p3AeVn*|XJQ7IsTvP8xM zJ;LY$RybzEevze$RpmuzG4c;j5={vRDy#Hn4|ocrd6Bo$sucqqlzTqbLHQauIc0=p2NwR0kG>Bc3n8^tJt$ zpQBwFh-gk`@y>{Djti^DLCb+#bu$;H_lZPmusBBaIFi(mTY2VyXmi3!27e#DCl_mn z=w0nmoORo_8MF*v-5m@VKgXR){MepdAS= zPap8|&4JIy8rCzAi;|$!Tg0BJ-c zk?MONazsA40zWmR7l;g1*y3b4FPl&}nmA$x?aRn{h-k$jC9Wq_h2|iSi6r$1EGNQ) z!@-a!h%_!)$OiNj0=Mr?#jhmlpKXUoVkTS@UwPkDwa-qb-TdtScd?M)4$=Gptw1!{ z=R6T}#X5YcS-4=8F*x2TCH@n3QFHgA){QTf>Y}FQi|0uhSs0~?uaVBot1EneI2YXmtzDlu(Eb;itSWolYJtO%i?Dn9M0?DQm=yh^w z!X*0hb9CAxR6_39W*M*@knSR&69eaMy~apeGq9ntE+y(RvOtm%C@G>Wi%XL1eu0KB zX&wQcriTjFM(xHt+%q6`Et75lr1AjCZVW1Son(umX_XHA)q~!ih1O6>Ak`|CyxC^^ z?BKxrJu^0!7ey6D+GPPjVJ3B;P$?^sN5T(|^P+wb@iX z7gnsT*nkHgMCE}V;V(RR3#qw6qh293Ddymv==$^8waTD_mvh~dR@+j0&6|ZPKLLE> zp~^A(bsuh;1Pzn#dMbvhEPLtjw&wRBcK~6`7S<|y8M(r~D`0-I$Y^HM(KfJcFJ!E! z+*_AdC^sm>ytuY}l}q5+_9E!PZtef(MT5*q08qY_x$e_q;JM7Yg!{?yuqBgVf&6ijhOfkgi}}FzXb65&K0o z8gI?n5?4Rx3e%j>4}0wvfY7T4v6?3IqXN)J5!j=G>0HF5$fai_AA#7cLWEADxT;v^ z@xAjfnQ+|-pnwkm9L8bddL1whHI>fB7cE6F*^R|^z(m_Og7t#DNvy@V@UdXXkPV6I zL{RSgJoZ0y7gnrkjVMC_8Z47)!fm?Y%h#!dn|h>30Xmr>2wg7Owgr_$Lphxt&z_K` ztKYN*zqSXER)l`sWTvBh-IKwFXr3oG9Jv;_#>!2nF>*+f96XQ%0El^f7mQRoB#uTHwL2c5)zQoQs>(J{$ZDoV3lQspjLA0dh73;t2N zxzfzs4Z%&b@I6_Qto{*CMY$lQNdS6h?&}=uvE(dve4QIq4(v=qFRPU#1dgXfU5YJV zAJ4y;#*}2ST;hO$f7UL;c_$AApOBAvv`#KaXI;+nhA%dB`sC%5H<6Mrt1omcX|)nf zm~3iF-DDm0Uc?k#HH9aO7>exnJ3WEzxbR~4Cv2Sf`37CvD8%j*di&7x&NrIn!5?lM z6qm0S?f)(89_cG=*UD9WxOG`xkO2v^#g)yu-z-FR0_dRxJnbcDIH$S4Nq!P;iw@t< z3UBG4i6k?xKD^8)JowXbo}bT$`d(RqD_Q4&!)c78fQA)<&z&shccV7Two>1wWw|KtS z3$p4ADU?jj*g>dpdQ@0tXRz!$U~JioH{bY@8Y@<48X`1&m)6Iu6fFL)a*kPf3VW?S zArB?cytXm)DE=z8>@7Q&-GlJqX8q^a1IScmlSw`O$_EP&Sv=d|G(m>cFO8S^x#XD2 z9$}XJ%CXdH(b3iPl`&{|EuFLw<%21?eS#%HHI+2%BpR)rIR zcG(>9HFhnysVot*(IlgBk%@IqBHQSfZ8|%37n`(@YVvi=G^OkjT})Y}@LjvdHetV} zX_^24fJ!W{Gc(VaAK-v!x@EAm+Ph1*$w5L<6qe}`&_-^fJPA3|vIZh-HWtWmDaL#> zfjO!|A<|-A0h&0h0jPNw_>9-M_xlp0*>BA6Mi8mt0_eXF4?~=vq;Pe-98p^_?A%S&rC{9GC2Y{Pd8>q8UZM6+Kd|-wLIC%jp6jFKNvcXr z`>F)>Pp$g?2K>d)Ek-_NJq(+FzkB$U*DwvjyZw~UT3|i03ebmXtu1(4D#n|V} zImHzZyN?(6JYhWySuoXPv3S9(%WVck#z4{>d?-P{k(Wq-N^j`yPmi=D>j#@}(fjlEP1 z{^}MNAs?xZV_kpTUS;F;t7l)K(_Mnv-t*z_EqKqV4_iX#gEV<4)Qf4n{+